mirror of
https://github.com/kastdeur/dotfiles.git
synced 2024-12-22 17:23:33 +01:00
4666 lines
183 KiB
XML
Executable file
4666 lines
183 KiB
XML
Executable file
<?xml version='1.0' encoding='ISO-8859-1'?>
|
|
|
|
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"docbook-xml/docbookx.dtd"
|
|
[<!ENTITY dummy "dummy">
|
|
<!ENTITY date "$Date$">
|
|
<!ENTITY ls "Latex-Suite">
|
|
<!ENTITY latex "LaTeX">
|
|
<!ENTITY vim "Vim">
|
|
<!ENTITY ph "<++>">
|
|
]>
|
|
<article lang="en">
|
|
<articleinfo id="articleinfo">
|
|
|
|
<title id="articleinfo-title">&ls; Reference</title>
|
|
|
|
<author>
|
|
<firstname>Srinath</firstname>
|
|
<surname>Avadhanula</surname>
|
|
<affiliation>
|
|
<address><email>srinath AT fastmail DOT fm</email></address>
|
|
</affiliation>
|
|
</author>
|
|
<author>
|
|
<firstname>Mikolaj</firstname>
|
|
<surname>Machowski</surname>
|
|
<affiliation>
|
|
<address><email>mikmach AT wp DOT pl</email></address>
|
|
</affiliation>
|
|
</author>
|
|
|
|
<date>&date;</date>
|
|
<abstract>
|
|
<para>
|
|
&ls; attempts to provide a comprehensive set of tools to
|
|
view, edit and compile LaTeX documents in Vim. Together, they
|
|
provide tools starting from macros to speed up editing LaTeX
|
|
documents to functions for forward searching .dvi documents.
|
|
&ls; has been possible because of the contributions of many
|
|
people. Please see <link
|
|
linkend="latex-suite-credits">latex-suite-credits</link> for a list of
|
|
people who have helped.
|
|
</para>
|
|
<para>
|
|
&ls; is released under the Vim charityware license. For
|
|
license and conditions of use look at |copyright|. Replace all
|
|
occurrences of ``Vim'' with ``Latex-Suite''. The current copyright
|
|
holders of &ls; are Srinath Avadhanula and Mikolaj Machowski.
|
|
</para>
|
|
<para>
|
|
Homepage: <ulink url="http://vim-latex.sourceforge.net">http://vim-latex.sourceforge.net</ulink>
|
|
</para>
|
|
</abstract>
|
|
</articleinfo>
|
|
<section id="recommended-settings">
|
|
<title>Installation and recommended Settings</title>
|
|
<para>
|
|
If you are reading this, it most probably means that you have already
|
|
installed &ls; and the help files. If this is not the case, follow the
|
|
detailed instructions on <ulink
|
|
url="http://vim-latex.sourceforge.net/index.php?subject=download">&ls;'s
|
|
download page</ulink>.
|
|
</para>
|
|
<para>
|
|
Make sure that you create a few necessary settings in your
|
|
<literal>~/.vimrc.</literal>
|
|
<programlisting>
|
|
" REQUIRED. This makes vim invoke &ls; when you open a tex file.
|
|
filetype plugin on
|
|
|
|
" IMPORTANT: win32 users will need to have 'shellslash' set so that latex
|
|
" can be called correctly.
|
|
set shellslash
|
|
|
|
" IMPORTANT: grep will sometimes skip displaying the file name if you
|
|
" search in a singe file. This will confuse &ls;. Set your grep
|
|
" program to always generate a file-name.
|
|
set grepprg=grep\ -nH\ $*
|
|
|
|
" OPTIONAL: This enables automatic indentation as you type.
|
|
filetype indent on
|
|
|
|
" OPTIONAL: Starting with Vim 7, the filetype of empty .tex files defaults to
|
|
" 'plaintex' instead of 'tex', which results in vim-latex not being loaded.
|
|
" The following changes the default filetype back to 'tex':
|
|
let g:tex_flavor='latex'
|
|
</programlisting>
|
|
</para>
|
|
<para>
|
|
In addition, the following settings could go in your ~/.vim/ftplugin/tex.vim
|
|
file:
|
|
<programlisting>" this is mostly a matter of taste. but LaTeX looks good with just a bit
|
|
" of indentation.
|
|
set sw=2
|
|
" TIP: if you write your \label's as \label{fig:something}, then if you
|
|
" type in \ref{fig: and press <C-n> you will automatically cycle through
|
|
" all the figure labels. Very useful!
|
|
set iskeyword+=:
|
|
</programlisting>
|
|
</para>
|
|
</section>
|
|
<section id="latex-suite-templates">
|
|
<title>Inserting Templates</title>
|
|
<para>
|
|
This functionality is available via the <literal>TeX-Suite >
|
|
Templates</literal> menu.
|
|
This module provides a way to insert custom templates at the beginning of the
|
|
current file.
|
|
</para>
|
|
<para>
|
|
When &ls; first starts up, it scans the
|
|
<literal>$VIM/ftplugin/latex-suite/templates/</literal>
|
|
directory and creates menu items based on the files found there. When
|
|
you select a template from this menu, the file will be read in above
|
|
the first line of the current file.
|
|
</para>
|
|
<para>
|
|
A template file can utilize placeholders for initializing the cursor
|
|
position when the template is read in and subsequent movement. In
|
|
addition, template files can contain dynamic elements such as the
|
|
time of creation of a file etc, by using vim expressions.
|
|
</para>
|
|
<para>
|
|
You can place your own templates in the
|
|
<literal>$VIM/ftplugin/latex-suite/templates/</literal> directory in
|
|
order for them to be available via the menu. Unless &ls; releases a
|
|
template with the same name, these files should not get over-written
|
|
when you install a new release over an existing one.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Templates are also accessible for non-gui users with the command
|
|
|<literal>:TTemplate</literal>|. The argument should be name of
|
|
the corresponding template file. If the command is called
|
|
without arguments (preferred usage), then a list of available
|
|
templates is displayed and the user is asked to choose one of
|
|
them.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="latex-macros">
|
|
<title>&ls; Macros</title>
|
|
<para>
|
|
&ls; ships with a very comprehensive set of insert mode and
|
|
|visual-mode| mappings and menu items to typeset most of the LaTeX
|
|
elements.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
These mappings are are not standard mappings in the sense that
|
|
only the last character is mapped. See plugin/imaps.vim for
|
|
further documentation. For example, in the case of the mapping
|
|
<literal>EFI</literal> provided by &ls; you can press the characters
|
|
'<literal>E</literal>', '<literal>F</literal>' and '<literal>I</literal>'
|
|
as slowly as you wish (unlike the normal <literal>imap</literal> command
|
|
where <literal>timeout</literal> issues are involved). The characters are
|
|
visible as you type them (unlike normal <literal>imap</literal>s) and you
|
|
can use the movement or backspace key to correct yourself unlike normal
|
|
mappings.
|
|
</para>
|
|
</note>
|
|
<anchor id="place-holder" />
|
|
<note id="place-holders">
|
|
<title>Place Holders</title>
|
|
<para>
|
|
Almost all macros provided in &ls; implement Stephen Riem's bracketing
|
|
system and Gergely Kontra's <literal>JumpFunc()</literal> for handling
|
|
place-holders. This consists of using "place-holders" to mark off
|
|
locations where the next relevant editing has to be done. As an example,
|
|
when you type <literal>EFI</literal> in |insert-mode|, you will get the
|
|
following:
|
|
<programlisting>\begin{figure}[h]
|
|
\centerline{\psfig{figure=<+eps file+>}}
|
|
\caption{<+caption text+>}
|
|
\label{fig:<+label+>}
|
|
\end{figure}<++></programlisting>
|
|
The text <literal><+eps file+></literal> will be selected and
|
|
you will be left in |select-mode| so that you can continue typing
|
|
straight away. After having typed in the file name, you can press
|
|
<literal><Ctrl-J></literal> (while still in insert-mode). This will
|
|
take you directly to the next "place-holder". i.e, <literal><+caption
|
|
text+></literal> will be visually selected with Vim in select mode
|
|
again for typing in the caption. This saves on a lot of key presses.
|
|
</para>
|
|
</note>
|
|
<note id="overriding-macros">
|
|
<title>Over-riding &ls; Macros</title>
|
|
<para>
|
|
If you wish to change these macros from their default values, for
|
|
example, if you wish to change <literal>`w</literal> to expand to
|
|
<literal>\omega</literal> instead of its default expansion to
|
|
<literal>\wedge</literal>, you should use the <literal>IMAP</literal>
|
|
function as described in the <link linkend="ls-new-macros">Using
|
|
IMAP()</link> section.
|
|
</para>
|
|
<para>
|
|
An important thing to note is that if you wish to over-ride macros
|
|
created by &ls; rather than merely create new macros, you should place
|
|
the <literal>IMAP()</literal> calls in a script which gets sourced
|
|
after the files in &ls;. A good place typically is as a file-type
|
|
plugin file in the
|
|
<literal>~/.vim/after/ftplugin/</literal> directory. (Use
|
|
<literal>~/vimfiles</literal> if you are using
|
|
<literal>WINDOWS</literal>). For example to over-ride
|
|
<literal>`w</literal> to <literal>\omega</literal> instead of
|
|
<literal>\wedge</literal>, place the following line in (say)
|
|
<literal>~/.vim/after/ftplugin/tex_macros.vim</literal>:
|
|
<programlisting>call IMAP('`w', '\omega', 'tex')</programlisting>
|
|
</para>
|
|
<note>
|
|
<para>
|
|
It is important to use a file-name which will get sourced on a
|
|
<literal>FileType</literal> event. Therefore you must use a file-name
|
|
which conforms to the standards as described in
|
|
<literal>|ftplugin-name|</literal>.
|
|
</para>
|
|
</note>
|
|
</note>
|
|
<note id="pausing-imaps">
|
|
<title>Pausing Macro expansion</title>
|
|
<para>
|
|
If you wish to temporarily suspend the imaps functionality, then you
|
|
can set the <literal>Imap_FreezeImap</literal> to 1. If you set
|
|
<literal>g:Imap_FreezeImap</literal> to 1, then it will be a
|
|
system-wide setting. Setting <literal>b:Imap_FreezeImap</literal> will
|
|
affect only the current buffer.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
The following sections describe the various editing macros provided
|
|
by &ls;.
|
|
</para>
|
|
<section id="environment-mappings">
|
|
<title>Environment Mappings</title>
|
|
&ls; provides a rich set of mappings to insert, enclose and modify
|
|
&latex; environments, i.e, <literal>\begin{...} ... \end{...}</literal>
|
|
pairs.
|
|
<section id="inserting-environments">
|
|
<title>Inserting Environments</title>
|
|
<para>
|
|
&ls; provides the following ways to insert environments
|
|
</para>
|
|
<section id="inserting-env-f5">
|
|
<title>Method 1: Pressing <literal><F5></literal></title>
|
|
<para>
|
|
If you press <literal><F5></literal> in the insert or normal
|
|
mode while on an empty line, &ls; prompts you with a list of
|
|
environments you might want to insert. You can either choose one
|
|
from the list or type in a new environment name. If you press
|
|
<literal><F5></literal> on a line which already has a word,
|
|
then that word is used instead of prompting.
|
|
</para>
|
|
<para>
|
|
See <link linkend="Tex_Env_name">Tex_Env_name</link> for a
|
|
description of how &ls; uses the word to form the expansion and how
|
|
to modify &ls;'s behavior.
|
|
</para>
|
|
<para>
|
|
The list of environments which &ls; prompts you with (when
|
|
<literal><F5></literal> is pressed on an empty line) is formed
|
|
from the <link
|
|
linkend="Tex_PromptedEnvironments">Tex_PromptedEnvironments</link>
|
|
setting.
|
|
</para>
|
|
<para>
|
|
In addition to this setting, &ls; also lists environments found in
|
|
custom packages as described in the section <link
|
|
linkend="package-actions">Package actions.</link>
|
|
</para>
|
|
</section>
|
|
<section id="inserting-env-shift-f1">
|
|
<title>Method 2: Using <literal><S-F1></literal>-<literal><S-F4></literal></title>
|
|
<para>
|
|
The shifted function keys, <literal><S-F1></literal> to
|
|
<literal><S-F4></literal> can be mapped to insert very commonly
|
|
used environments. The environments mapped to each key can be
|
|
customized via the <link
|
|
linkend="Tex_HotKeyMappings">g:Tex_HotKeyMappings</link> setting.
|
|
</para>
|
|
</section>
|
|
<section id="inserting-env-threeletter">
|
|
<title>Method 3: Using three letter sequences</title>
|
|
<para>
|
|
Environments can also be inserted by pressing a 3 capital letter
|
|
sequence starting with an <literal>E</literal>. The sequence of 3
|
|
letters generally tries to follow the following rules:
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
All environment mappings begin with <literal>E</literal>
|
|
</listitem>
|
|
<listitem>
|
|
If the environment can be broken up into 2 distinct words,
|
|
such as flushright (flush + right), then the next 2 letters
|
|
are the first letters of the 2 words. Example:
|
|
<programlisting>flushleft (_f_lush + _l_eft) ---> EFL
|
|
flushright (_f_lush + _r_ight) ---> EFR
|
|
eqnarray (_e_qn + _a_rray) ---> EEA</programlisting>
|
|
If on the other hand, the environment name cannot be broken
|
|
up into 2 distinct words, then the next 2 letters are the
|
|
first 2 letters of the name of the environment.
|
|
Example:
|
|
<programlisting>equation (_eq_uation) ---> EEQ</programlisting>
|
|
</listitem>
|
|
</orderedlist>
|
|
<para>
|
|
Unfortunately there are some environments that cannot be
|
|
split in two words and first two letters in name are
|
|
identical. In this case shortcut is created from E, first and
|
|
last letter. Example:
|
|
<programlisting>quote (_q_uot_e_) ---> EQE
|
|
quotation (_q_uotatio_n_) ---> EQN</programlisting>
|
|
Of course, not every last one of the environments can follow
|
|
this rule because of ambiguities. In case of doubt, pull down
|
|
the Tex-Environments menu. The menu item should give the hint
|
|
for the map.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="enclosing-environments">
|
|
<title>Enclosing in Environments</title>
|
|
<para>
|
|
&ls; provides visual-mode mappings which enclose visually
|
|
selected portions of text in environments. There are two ways provided
|
|
to do this.
|
|
</para>
|
|
<section id="enclosing-env-f5">
|
|
<title>Method 1: Pressing <literal><F5></literal></title>
|
|
<para>
|
|
You can also select a portion of text visually and press
|
|
<literal><F5></literal> while still in visual mode. This will
|
|
prompt you with a list of environments. (This list can be customized
|
|
via the <link
|
|
linkend="Tex_PromptedEnvironments">g:Tex_PromptedEnvironments</link>
|
|
setting). You can either choose from this list or type in a new
|
|
environment name. Once the selection is done, &ls; encloses the
|
|
visually selected portion in the chosen environment.
|
|
</para>
|
|
</section>
|
|
<section id="enclosing-env-threeletter">
|
|
<title>Method 2: Using three letter mappings</title>
|
|
<para>
|
|
You can also select text visually and press a sequence of three
|
|
characters beginning with <literal>,</literal> (the single comma
|
|
character) and the selected text will be enclosed in the chosen
|
|
environment. The three letter sequence follows directly from the
|
|
three letter sequence used to insert environments as described <link
|
|
linkend="inserting-env-threeletter">here</link>. The following
|
|
example describes the rule used:
|
|
</para>
|
|
<para>
|
|
If <literal>ECE</literal> inserts a
|
|
<literal>\begin{center}...\end{center}</literal> environment, then to
|
|
enclose a block of selected text in
|
|
<literal>\begin{center}...\end{center}</literal>, simply select the
|
|
text and press <literal>,ce</literal>. The rule simply says that the
|
|
leading <literal>E</literal> is converted to <literal>,</literal> and
|
|
the next 2 letters are small case.
|
|
</para>
|
|
</section>
|
|
<para>
|
|
Some of the visual mode mappings are sensitive to whether you
|
|
choose line-wise or character-wise. For example, if you choose a
|
|
word and press <literal>,ce</literal>, then you get
|
|
<literal>\centerline{word}</literal>, whereas if you press
|
|
<literal>,ce</literal> on a line-wise selection, you get:
|
|
<programlisting>\begin{center}
|
|
line
|
|
\end{center}</programlisting>
|
|
</para>
|
|
</section>
|
|
<section id="changing-environments">
|
|
<title>Changing Environments</title>
|
|
<para>
|
|
Pressing <literal><S-F5></literal> in normal mode detects which
|
|
environment the cursor is presently located in and prompts you to
|
|
replace it with a new one. The innermost environment is detected. For
|
|
example, in the following source:
|
|
<programlisting>\begin{eqnarray}
|
|
\begin{array}{ccc}
|
|
2 & 3 & 4
|
|
\end{array}
|
|
\end{eqnarray}</programlisting>
|
|
if you are located in the middle "2 & 3 & 4" line, then pressing
|
|
<literal><S-F5></literal> will prompt you to change the array
|
|
environment, not the eqnarray environment. In addition, &ls; will also
|
|
try to change lines within the environment to be consistent with the
|
|
new environment. For example, if the original environment was an
|
|
<literal>eqnarray</literal> environment with a
|
|
<literal>\label</literal> command, then changing it to an
|
|
<literal>eqnarray*</literal> environment will delete the
|
|
<literal>\label</literal>.
|
|
</para>
|
|
<para>
|
|
Pressing <literal><F5></literal> in normal mode has the same
|
|
effect as pressing <literal><F5></literal> in insert-mode,
|
|
namely you will be prompted to choose an environment to insert.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="latex-command-maps">
|
|
<title>Command Mappings</title>
|
|
&ls; provides a rich set of mappings to insert, enclose and modify
|
|
&latex; commands.
|
|
<section id="inserting-commands">
|
|
<title>Inserting &latex; commands</title>
|
|
<anchor id="ls-imap-f7" />
|
|
<anchor id="ls-imap-s-f7" />
|
|
<para>
|
|
Pressing <literal><F7></literal> in insert or normal mode while
|
|
the cursor is touching a word will insert a command formed from the
|
|
word touching the cursor.
|
|
</para>
|
|
<para>
|
|
For certain common commands, &ls; will expand them to include
|
|
additional arguments as needed. For example, <literal>frac</literal>
|
|
becomes <literal>\frac{&ph;}{&ph;}&ph;</literal>. Otherwise, it will
|
|
simply change the word under the cursor as follows
|
|
<programlisting>word --> \word{&ph;}&ph;</programlisting>
|
|
You can define custom expansions
|
|
of commands using the <literal>Tex_Com_{name}</literal> setting as
|
|
described in <link linkend="Tex_Com_name">here</link>.
|
|
</para>
|
|
<para>
|
|
If <literal><F7></literal> is pressed when the cursor is on
|
|
white-space, then &ls; will prompt you to choose a command and insert
|
|
that instead.The list of commands is constructed from the <link
|
|
linkend="Tex_PromptedCommands"><literal>g:Tex_PromptedCommands</literal></link>
|
|
setting and also from commands which &ls; finds while scanning custom
|
|
packages which &ls; finds. See the <link
|
|
linkend="package-actions">Package actions</link> section for details
|
|
on which files are scanned etc.
|
|
</para>
|
|
</section>
|
|
<section id="enclosing-commands">
|
|
<title>Enclosing in a command</title>
|
|
<para>
|
|
You can select a portion of text visually and press
|
|
<literal><F7></literal> while still in visual mode. This will
|
|
prompt you with a list of commands. (This list can be customized
|
|
via the <link
|
|
linkend="Tex_PromptedCommands">g:Tex_PromptedCommands</link>
|
|
setting). You can either choose from this list or type in a new
|
|
command name. Once the selection is done, &ls; encloses the
|
|
visually selected portion in the chosen command.
|
|
</para>
|
|
</section>
|
|
<section id="changing-commands">
|
|
<title>Changing commands</title>
|
|
<anchor id="ls-vmap-f7" />
|
|
<para>
|
|
In both insert and normal mode <literal><S-F7></literal> will
|
|
find out if you are presently within an environment and then prompt you
|
|
with a list of commands to change it to.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="font-maps">
|
|
<title>Font Mappings</title>
|
|
<para>
|
|
These mappings insert font descriptions such as:
|
|
<literal>\textsf{&ph;}&ph;</literal>
|
|
with the cursor left in place of the first <link
|
|
linkend="place-holders">placeholder</link> (the &ph; characters).
|
|
</para>
|
|
<para>
|
|
Mnemonic:
|
|
<orderedlist>
|
|
<listitem>first letter is always F (F for font)</listitem>
|
|
<listitem>next 2 letters are the 2 letters describing the font.</listitem>
|
|
</orderedlist>
|
|
</para>
|
|
<para>
|
|
Example: Typing <literal>FEM</literal> in insert-mode expands to
|
|
<literal>\emph{&ph;}&ph;</literal>.
|
|
</para>
|
|
<para>
|
|
Just like environment mappings, you can visually select an area and press
|
|
<literal>`sf</literal> to have it enclosed in:
|
|
<literal>\textsf{word}</literal>
|
|
or
|
|
<programlisting>{\sffamily
|
|
line
|
|
}</programlisting>
|
|
depending on character-wise or line-wise selection.
|
|
</para>
|
|
</section>
|
|
<section id="section-mappings">
|
|
<title>Section Mappings</title>
|
|
<para>
|
|
These maps insert &latex; sections such as:
|
|
<programlisting>\section{&ph;}&ph;</programlisting>
|
|
etc. Just as in the case of environments and fonts, can be enclosed with a
|
|
visual selection. The enclosing is not sensitive to character or line-wise
|
|
selection.
|
|
</para>
|
|
<para>
|
|
Mnemonic: (make your own!)
|
|
<programlisting>SPA for part
|
|
SCH for chapter
|
|
SSE for section
|
|
SSS for subsection
|
|
SS2 for subsubsection
|
|
SPG for paragraph
|
|
SSP for subparagraph</programlisting>
|
|
</para>
|
|
<para>
|
|
Example:
|
|
SSE in insert mode inserts
|
|
<programlisting>\section{<++>}<++></programlisting>
|
|
If you select a word or line and press <literal>,se</literal>, then you
|
|
get
|
|
<programlisting>\section{section name}</programlisting>
|
|
The menu item in Tex-Environments.Sections have a sub-menu called
|
|
'Advanced'. Choosing an item from this sub-menu asks a couple of questions
|
|
(whether you want to include the section in the table of contents, whether
|
|
there is a shorter name for the table of contents) and then creates a more
|
|
intelligent template.
|
|
</para>
|
|
</section>
|
|
<section id="greek-letter-mappings">
|
|
<title>Greek Letter Mappings</title>
|
|
<para>
|
|
Lower case
|
|
</para>
|
|
<literal>`a</literal> through <literal>`z</literal> expand to
|
|
<literal>\alpha</literal> through <literal>\zeta</literal>.
|
|
<para>
|
|
Upper case:
|
|
</para>
|
|
<programlisting>`D = \Delta
|
|
`F = \Phi
|
|
`G = \Gamma
|
|
`Q = \Theta
|
|
`L = \Lambda
|
|
`X = \Xi
|
|
`Y = \Psi
|
|
`S = \Sigma
|
|
`U = \Upsilon
|
|
`W = \Omega</programlisting>
|
|
<note><para>LaTeX does not support upper case for all greek alphabets.</para></note>
|
|
<para>Just like other &ls; mappings, these mappings are not created using
|
|
the standard <literal>imap</literal> command. Thus you can type slowly,
|
|
correct using <literal><BS></literal> etc.</para>
|
|
</section>
|
|
<section id="auc-tex-mappings">
|
|
<title>Auc-Tex Key Bindings</title>
|
|
<para>
|
|
These are simple 2 key expansions for some very commonly used LaTeX
|
|
elements:
|
|
</para>
|
|
<programlisting>`^ Expands To \Hat{&ph;}&ph;
|
|
`_ expands to \bar{&ph;}&ph;
|
|
`6 expands to \partial
|
|
`8 expands to \infty
|
|
`/ expands to \frac{&ph;}{&ph;}&ph;
|
|
`% expands to \frac{&ph;}{&ph;}&ph;
|
|
`@ expands to \circ
|
|
`0 expands to ^\circ
|
|
`= expands to \equiv
|
|
`\ expands to \setminus
|
|
`. expands to \cdot
|
|
`* expands to \times
|
|
`& expands to \wedge
|
|
`- expands to \bigcap
|
|
`+ expands to \bigcup
|
|
`( expands to \subset
|
|
`) expands to \supset
|
|
`< expands to \le
|
|
`> expands to \ge
|
|
`, expands to \nonumber
|
|
`~ expands to \tilde{&ph;}&ph;
|
|
`; expands to \dot{&ph;}&ph;
|
|
`: expands to \ddot{&ph;}&ph;
|
|
`2 expands to \sqrt{&ph;}&ph;
|
|
`| expands to \Big|
|
|
`I expands to \int_{&ph;}^{&ph;}&ph;</programlisting>
|
|
<para>
|
|
(again, notice the convenient place-holders)
|
|
</para>
|
|
<para>
|
|
In addition the visual mode macros are provided:
|
|
</para>
|
|
<programlisting>`( encloses selection in \left( and \right)
|
|
`[ encloses selection in \left[ and \right]
|
|
`{ encloses selection in \left\{ and \right\}
|
|
`$ encloses selection in $$ or \[ \] depending on characterwise or
|
|
linewise selection</programlisting>
|
|
</section>
|
|
<section id="diacritic-mappings">
|
|
<title>Diacritics</title>
|
|
<para>
|
|
These mappings speed up typing European languages which contain diacritic
|
|
characters such as a-umlaut etc.
|
|
<programlisting>+<l> expands to \v{<l>}
|
|
=<l> expands to \'{<l>}</programlisting>
|
|
where <literal><l></literal> is an alphabet.
|
|
</para>
|
|
<programlisting>+} expands to \"{a}
|
|
+: expands to \^{o}</programlisting>
|
|
<para>
|
|
&ls; also ships with <link linkend="smart-backspace">smart
|
|
backspacing</link> functionality which provides another convenience while
|
|
editing languages with diacritics.
|
|
</para>
|
|
<note>
|
|
<para>Diacritics are disabled by default in &ls; because they can
|
|
sometimes be a little too intrusive. Moreover, most European users can
|
|
nowadays use font encodings which display diacritic characters directly
|
|
instead of having to rely on &ls;'s method of displaying diacritics.</para>
|
|
<para>Set the <link linkend="Tex_Diacritics">g:Tex_Diacritics</link>
|
|
variable to enable diacritics.</para>
|
|
</note>
|
|
</section>
|
|
<section id="bibtex-bindings">
|
|
<title>BibTeX Shortcuts</title>
|
|
<para>
|
|
&ls; provides an easy way of entering bibliographic entries. Four
|
|
insert-mode mappings: <literal>BBB</literal>, <literal>BBL</literal>,
|
|
<literal>BBH</literal> and <literal>BBX</literal> are provided, all of
|
|
which essentially act in the same manner. When you type any of these in
|
|
insert-mode, you will get a prompt asking you to choose a entry type
|
|
for the bibliographic entry.
|
|
</para>
|
|
<para>
|
|
When you choose an entry type, a bibliographic entry template will be
|
|
inserted. For example, if you choose the option
|
|
<literal>'book'</literal> via the map <literal>BBB</literal>, then
|
|
the following template will be inserted:
|
|
<programlisting>@BOOK{<+key+>,
|
|
author = {&ph;},
|
|
editor = {&ph;},
|
|
title = {&ph;},
|
|
publisher = {&ph;},
|
|
year = {&ph;},
|
|
otherinfo = {&ph;}
|
|
}&ph;</programlisting>
|
|
</para>
|
|
<para>
|
|
<literal><+key+></literal> will be highlighted in select-mode and
|
|
you can type in the bib-key. After that you can use
|
|
<literal><Ctrl-J></literal> to navigate to successive locations
|
|
in the template and enter new values.
|
|
</para>
|
|
<para>
|
|
<literal>BBB</literal> inserts a template with only the fields
|
|
mandatorily required for a given entry type. <literal>BBL</literal>
|
|
inserts a template with commonly used extra options.
|
|
<literal>BBH</literal> inserts a template with more options which are
|
|
not as commonly used. <literal>BBX</literal> inserts a template with
|
|
all the fields which the entry type supports.
|
|
</para>
|
|
<note>
|
|
<title>Mnemonic</title>
|
|
<para>
|
|
<literal>B</literal> for Bibliographic entry, <literal>L</literal>
|
|
for Large entry, <literal>H</literal> for Huge entry, and
|
|
<literal>X</literal> stands for all eXtras.
|
|
</para>
|
|
</note>
|
|
<section id="adding-bib-options">
|
|
<title>Customizing Bib-TeX fields</title>
|
|
<para>
|
|
If you wish the <literal>BBB</literal> command to insert a few
|
|
additional fields in addition to the fields it creates, then you will
|
|
need to define global variables of the form
|
|
<programlisting>g:Bib_{type}_options</programlisting>
|
|
in you <literal>$VIM/ftplugin/bib.vim</literal> file, where
|
|
<literal>{type}</literal> is a string like
|
|
<literal>'article'</literal>, <literal>'book'</literal> etc. This
|
|
variable should contain one of the letters defined in the following
|
|
table
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Character</entry>
|
|
<entry>Field Type</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row><entry>w</entry><entry>address</entry></row>
|
|
<row><entry>a</entry><entry>author</entry></row>
|
|
<row><entry>b</entry><entry>booktitle</entry></row>
|
|
<row><entry>c</entry><entry>chapter</entry></row>
|
|
<row><entry>d</entry><entry>edition</entry></row>
|
|
<row><entry>e</entry><entry>editor</entry></row>
|
|
<row><entry>h</entry><entry>howpublished</entry></row>
|
|
<row><entry>i</entry><entry>institution</entry></row>
|
|
<row><entry>k</entry><entry>isbn</entry></row>
|
|
<row><entry>j</entry><entry>journal</entry></row>
|
|
<row><entry>m</entry><entry>month</entry></row>
|
|
<row><entry>z</entry><entry>note</entry></row>
|
|
<row><entry>n</entry><entry>number</entry></row>
|
|
<row><entry>o</entry><entry>organization</entry></row>
|
|
<row><entry>p</entry><entry>pages</entry></row>
|
|
<row><entry>q</entry><entry>publisher</entry></row>
|
|
<row><entry>r</entry><entry>school</entry></row>
|
|
<row><entry>s</entry><entry>series</entry></row>
|
|
<row><entry>t</entry><entry>title</entry></row>
|
|
<row><entry>u</entry><entry>type</entry></row>
|
|
<row><entry>v</entry><entry>volume</entry></row>
|
|
<row><entry>y</entry><entry>year</entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
For example, by default, choosing <literal>'article'</literal> via
|
|
<literal>BBB</literal> inserts the following template by default
|
|
<programlisting>@ARTICLE{<+key+>,
|
|
author = {&ph;},
|
|
title = {&ph;},
|
|
journal = {&ph;},
|
|
year = {&ph;},
|
|
otherinfo = {&ph;}
|
|
}&ph;</programlisting>
|
|
However, if <literal>g:Bib_article_options</literal> is defined as
|
|
<literal>'mnp'</literal>, then <literal>'article'</literal> will
|
|
insert the following template
|
|
<programlisting>@ARTICLE{<+key+>,
|
|
author = {&ph;},
|
|
title = {&ph;},
|
|
journal = {&ph;},
|
|
year = {&ph;},
|
|
month = {&ph;},
|
|
number = {&ph;},
|
|
pages = {&ph;},
|
|
otherinfo = {&ph;}
|
|
}&ph;</programlisting>
|
|
</para>
|
|
<para>
|
|
If you have some other fields you wish to associate with an article
|
|
which are not listed above, then you will have to use the
|
|
<literal>Bib_{type}_extrafields</literal> option. This is a newline
|
|
separated string of complete field names which will be included in the
|
|
template. For example, if you define
|
|
<programlisting>let g:Bib_article_extrafields = "crossref\nabstract"</programlisting>
|
|
then the article template will include the lines
|
|
<programlisting>crossref = {&ph;},
|
|
abstract = {&ph;},</programlisting>
|
|
</para>
|
|
<note>
|
|
<para>
|
|
You will need to define <literal>Bib_*</literal> settings in your
|
|
<literal>$VIMRUNTIME/ftplugin/bib.vim</literal> file.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
</section>
|
|
<section id="smart-keys">
|
|
<title>Smart Key Mappings</title>
|
|
<para>
|
|
&ls; ships with the following smart keys:
|
|
</para>
|
|
<formalpara>
|
|
<anchor id="smart-backspace" />
|
|
<title>Smart Backspace</title>
|
|
Pressing <literal><BS></literal> in insert mode checks to see
|
|
whether we are just after something like <literal>\'{a}</literal> and
|
|
if so, deletes all of it. i.e, diacritics are treated as single
|
|
characters for backspacing.
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Smart Quotes</title>
|
|
Pressing <literal>"</literal> (English double quote) will insert
|
|
<literal>``</literal> or <literal>''</literal> by making an
|
|
intelligent guess about whether we intended to open or close a quote.
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Smart Space</title>
|
|
&ls; maps the <literal><space></literal> key in such a
|
|
way that $ characters are not broken across lines. It does this by
|
|
first setting <literal>tw=0</literal> so that Vim will not
|
|
automatically break lines and then maps the
|
|
<literal><space></literal> key to insert newlines keeping
|
|
<literal>$$</literal>'s on the same line.
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Smart Dots</title>
|
|
Pressing <literal>...</literal> (3 dots) results in
|
|
<literal>\ldots</literal> outside math mode and
|
|
<literal>\cdots</literal> in math mode.
|
|
</formalpara>
|
|
</section>
|
|
<section id="altkey-mappings">
|
|
<title>Alt Key Macros</title>
|
|
<para>
|
|
&ls; utilizes a set of macros originally created by Carl Mueller in
|
|
auctex.vim to make inserting all the <literal>\left ... \right</literal>
|
|
stuff very easy and to also make some use of the heavily under-utilized
|
|
<literal><Alt></literal> key.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
By default, typing <literal>Alt-<key></literal> in &vim; takes
|
|
focus to the menu bar if a menu with the hotkey
|
|
<literal><key></literal> exists. If in your case, there are
|
|
conflicts due to this behavior, you will need to set
|
|
<programlisting>set winaltkeys=no</programlisting>
|
|
in your <literal>$VIM/ftplugin/tex.vim</literal> in order to use these
|
|
maps.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<title>Customizing the maps</title>
|
|
<para>
|
|
If for some reason, you wish to not map the
|
|
<literal><Alt></literal> keys, (some European users need to use
|
|
the <literal><Alt></literal> key to enter diacritics), you can
|
|
change these maps to other keys as described in the section <link
|
|
linkend="customize-alt-key-maps">Customizing Alt-key maps</link>.
|
|
</para>
|
|
</note>
|
|
<section id="Alt-L">
|
|
<title><literal><Alt-L></literal></title>
|
|
<para>
|
|
This is a polymorphic insert-mode mapping which expands to one of the
|
|
following depending on the character just before the cursor location.
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<colspec colwidth="0.5in" align="cener" />
|
|
<colspec colwidth="0.5in" />
|
|
<thead>
|
|
<row>
|
|
<entry>Character before cursor</entry>
|
|
<entry>Expansion</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row><entry>(</entry> <entry><literal>\left( &ph; \right)</literal></entry></row>
|
|
<row><entry>[</entry> <entry><literal>\left[ &ph; \right]</literal></entry></row>
|
|
<row><entry>|</entry> <entry><literal>\left| &ph; \right|</literal></entry></row>
|
|
<row><entry>{</entry> <entry><literal>\left\{ &ph; \right\}</literal></entry></row>
|
|
<row><entry><</entry> <entry><literal>\langle &ph; \rangle</literal></entry></row>
|
|
<row><entry>q</entry> <entry><literal>\lefteqn{&ph;}&ph;</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
If the character before the cursor is none of the above, then it will
|
|
simply insert a <literal>\label{&ph;}&ph;</literal>.
|
|
</para>
|
|
</section>
|
|
<section id="Alt-B">
|
|
<title><literal><Alt-B></literal></title>
|
|
<para>
|
|
This insert-mode mapping encloses the previous character in
|
|
<literal>\mathbf{}</literal>.
|
|
</para>
|
|
</section>
|
|
<section id="Alt-C">
|
|
<title><literal><Alt-C></literal></title>
|
|
<para>
|
|
In insert mode, this key is polymorphic as follows:
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
If the previous character is a letter or number, then capitalize it and
|
|
enclose it in <literal>\mathcal{}</literal>.
|
|
</listitem>
|
|
<listitem>
|
|
otherwise insert <literal>\cite{}</literal>.
|
|
</listitem>
|
|
</orderedlist>
|
|
<para>
|
|
In visual mode, it will simply enclose the selection in
|
|
<literal>\mathcal{}</literal>
|
|
</para>
|
|
</section>
|
|
<section id="Alt-I">
|
|
<title><literal><Alt-I></literal></title>
|
|
<para>
|
|
This mapping inserts an <literal>\item</literal> command at the
|
|
current cursor location depending on which environment the cursor is
|
|
enclosed in. The style of the <literal>\item</literal> command is
|
|
dependent on the enclosing environment. By default,
|
|
<literal><Alt-I></literal> has styles defined forthe following
|
|
environments:
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Environment</entry>
|
|
<entry>Style</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row><entry>itemize</entry><entry>\item </entry></row>
|
|
<row><entry>enumerate</entry><entry>\item </entry></row>
|
|
<row><entry>theindex</entry><entry>\item </entry></row>
|
|
<row><entry>thebibliography</entry><entry>\item[<+biblabel+>]{<+bibkey+>} <++></entry></row>
|
|
<row><entry>description</entry><entry>\item[<+label+>] <++></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
<literal><Alt-I></literal> is intelligent enough to
|
|
account for nested environments. For example,
|
|
<programlisting>\begin{itemize}
|
|
\item first item
|
|
\item second item
|
|
\begin{description}
|
|
\item[label1] first desc
|
|
\item[label2] second
|
|
% <Alt-I> will insert "\item[<+label+>] <++>" if
|
|
% used here
|
|
\end{description}
|
|
\item third item
|
|
% <Alt-I> will insert "\item " when if used here.
|
|
\end{itemize}
|
|
% <Alt-I> will insert nothing ("") if used here</programlisting>
|
|
</para>
|
|
<para>
|
|
The style used by <literal><Alt-I></literal> can be customized
|
|
using the <link
|
|
linkend="Tex_ItemStyle_environment"><literal>g:Tex_ItemStyle_environment</literal></link>
|
|
variable.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="custom-macros-menu">
|
|
<title>Custom Macros</title>
|
|
<para>
|
|
This functionality available via the TeX-Suite.Macros menu, provides
|
|
a way of inserting customized macros into the current file via the
|
|
menu.
|
|
</para>
|
|
<para>
|
|
When &ls; starts up, it scans the
|
|
<literal>$VIM/ftplugin/latex-suite/macros/</literal> directory and
|
|
creates a menu from the files found there. Each file is considered as
|
|
a single macro. You can place your own macros in this directory,
|
|
using <link linkend="place-holders">placeholders</link> if wanted.
|
|
</para>
|
|
<para>
|
|
When you choose a macro from the menu, the corresponding file is read
|
|
into the current buffer after the current cursor position. In non-gui
|
|
mode, you can use the |TMacro| command instead of choosing from the
|
|
menu. This command takes the macro file name as an argument. When
|
|
called without arguments (preferred usage), then a list of available
|
|
macro files is displayed and the user is prompted to choose one of
|
|
them).
|
|
</para>
|
|
<para>
|
|
There are some other tools provided in this menu, namely:
|
|
</para>
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<colspec colwidth="0.5in" />
|
|
<colspec colwidth="0.5in" />
|
|
<tbody>
|
|
<row><entry>{New}</entry>
|
|
<entry>
|
|
Creates a new (unnamed) buffer in the
|
|
latex-suite/macros/ directory. Use the command
|
|
:TexMacroNew in non-gui mode.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>{Edit}</entry>
|
|
<entry>
|
|
Opens up the corresponding macro file for editing. Use
|
|
|:TexMacroEdit| in non-gui mode. When you try to edit {macro}
|
|
not from local directory &ls; will copy it to your local
|
|
directory with suffix "-local". If local copy already exists
|
|
&ls; prompt for overwriting it.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>{Delete}</entry>
|
|
<entry>
|
|
Deletes the corresponding macro. Use the prefixed numbers for
|
|
fast navigation of menus. Use |:TexMacroDelete| in non-gui mode.
|
|
When you choose to delete {macro} which is not in your local
|
|
directory &ls; will refuse to delete it.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>{Redraw}</entry>
|
|
<entry>
|
|
Rescans the macros/ directories and refreshes the macros list.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
<section id="ls-new-macros">
|
|
<title>Making your own Macros via <literal>IMAP()</literal></title>
|
|
<para>
|
|
If you find the need to create your own macros, then you can use the
|
|
<literal>IMAP()</literal> function provided with &ls;. See <link
|
|
linkend="why-IMAP" endterm="why-IMAP.title"></link> for a short
|
|
explanation of why you might prefer <literal>IMAP()</literal> over
|
|
&vim;'s standard <literal>:imap</literal> command. An example best
|
|
explains the usage:
|
|
<programlisting>:call IMAP('NOM', '\nomenclature{&ph;}&ph;', 'tex')</programlisting>
|
|
This will create a &ls;-style mapping, where if you type
|
|
<literal>NOM</literal> in insert mode, you will get
|
|
<literal>\nomenclature{&ph;}&ph;</literal> with the cursor left in
|
|
place of the first <literal>&ph;</literal> characters. See <link
|
|
linkend="ls-imaps-syntax" endterm="ls-imaps-syntax.title"></link> for
|
|
a detailed explanation of the <literal>IMAP()</literal> command.
|
|
</para>
|
|
<para>
|
|
For maps which are triggered for a given filetype, the
|
|
<literal>IMAP()</literal> command above should be put in the filetype
|
|
plugin script for that file. For example, for tex-specific mappings,
|
|
the <literal>IMAP()</literal> calls should go in
|
|
<literal>$VIM/ftplugin/tex.vim</literal>. For globally visible maps,
|
|
you will need to use the following in either your
|
|
<literal>~/.vimrc</literal> or a file in your
|
|
<literal>$VIM/plugin</literal> directory.
|
|
<programlisting>augroup MyIMAPs
|
|
au!
|
|
au VimEnter * call IMAP('Foo', 'foo', '')
|
|
augroup END</programlisting>
|
|
</para>
|
|
<section id="why-IMAP">
|
|
<title id="why-IMAP.title">Why use <literal>IMAP()</literal></title>
|
|
<para>
|
|
Using <literal>IMAP</literal> instead of &vim;'s built-in
|
|
<literal>:imap</literal> command has a couple of advantages:
|
|
<orderedlist>
|
|
<listitem>
|
|
The 'ttimeout' option will generally limit how easily you can type
|
|
the left hand side for a normal <literal>:imap</literal>. if you type
|
|
the left hand side too slowly, then the mapping will not be
|
|
activated.
|
|
</listitem>
|
|
<listitem>
|
|
If you mistype one of the letters of the lhs, then the mapping is
|
|
deactivated as soon as you backspace to correct the mistake.
|
|
</listitem>
|
|
<listitem>
|
|
The characters in lhs are shown on top of each other. This is fairly
|
|
distracting. This becomes a real annoyance when a lot of characters
|
|
initiate mappings.
|
|
</listitem>
|
|
</orderedlist>
|
|
</para>
|
|
</section>
|
|
<section id="ls-imaps-syntax">
|
|
<title id="ls-imaps-syntax.title">IMAP() syntax</title>
|
|
<para>
|
|
Formally, the syntax which is used for the <literal>IMAP</literal>
|
|
function is:
|
|
<programlisting>call IMAP (lhs, rhs, ft [, phs, phe])</programlisting>
|
|
</para>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Argument</entry>
|
|
<entry>Explanation</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>lhs</entry>
|
|
<entry>
|
|
<para>
|
|
This is the "left-hand-side" of the mapping. When you use
|
|
<literal>IMAP</literal>, only the last character of this word is
|
|
actually mapped, although the effect is that the whole word is
|
|
mapped.
|
|
</para>
|
|
<para>
|
|
If you have two mappings which end in a common
|
|
<literal>lhs</literal>, then the mapping with the longer
|
|
<literal>lhs</literal> is used. For example, if you do
|
|
<programlisting>call IMAP('BarFoo', 'something', 'tex')
|
|
call IMAP('Foo', 'something else', 'tex')</programlisting>
|
|
Then typing <literal>BarFoo</literal> inserts
|
|
<literal>"something"</literal>, whereas <literal>Foo</literal> by
|
|
itself inserts <literal>"something else"</literal>.
|
|
</para>
|
|
<para>
|
|
Also, the nature of <literal>IMAP()</literal> makes creating
|
|
certain combination of mappings impossible. For example if you
|
|
have
|
|
<programlisting>call IMAP('foo', 'something', 'tex')
|
|
call IMAP('foobar', 'something else', 'tex')</programlisting>
|
|
Then you will never be able to trigger <literal>"foobar"</literal>
|
|
because typing <literal>"foo"</literal> will immediately insert
|
|
<literal>"something"</literal>. This is the "cost" which you incur
|
|
over the normal <literal>:imap</literal> command for the
|
|
convenience of no 'timeout' problems, the ability to correct
|
|
<literal>lhs</literal> etc.
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>rhs</entry>
|
|
<entry>
|
|
<para>
|
|
The "right-hand-side" of the mapping. This is the expansion you
|
|
will get when you type <literal>lhs</literal>.
|
|
</para>
|
|
<para>
|
|
This string can also contain special characters such as
|
|
<literal><enter></literal> etc. To do this, you will need
|
|
to specify the second argument in double-quotes as follows:
|
|
<programlisting>:call IMAP('EFE', "\\begin{figure}\<CR>&ph;\\end{figure}&ph;", 'tex')</programlisting>
|
|
With this, typing <literal>EFE</literal> is equivalent to typing
|
|
in the right-hand side with all the special characters in
|
|
insert-mode. This has the advantage that if you have filetype
|
|
indentation set up, then the right hand side will also be
|
|
indented just as if you had typed it in normally.
|
|
</para>
|
|
<anchor id="IMAP_PutTextWithMovement" />
|
|
<para>
|
|
You can also set up a &ls; style mapping which calls a custom function
|
|
as follows:
|
|
<programlisting>:call IMAP('FOO', "\<C-r>=MyFoonction()\<CR>", 'tex')</programlisting>
|
|
where <literal>MyFoonction</literal> is a custom function you have
|
|
written. If <literal>MyFoonction</literal> also has to return a string
|
|
containing <literal>&ph;</literal> characters, then you will need to
|
|
use the function <literal>IMAP_PutTextWithMovement()</literal>. An
|
|
example best explains the usage:
|
|
</para>
|
|
<programlisting>call IMAP('FOO', "\<C-r>=AskVimFunc()\<CR>", 'vim')
|
|
" Askvimfunc: Asks For Function Name And Sets Up Template
|
|
" Description:
|
|
function! AskVimFunc()
|
|
let name = input('Name of the function : ')
|
|
if name == ''
|
|
let name = "<+Function Name+>"
|
|
end
|
|
let islocal = input('Is this function scriptlocal ? [y]/n : ', 'y')
|
|
if islocal == 'y'
|
|
let sidstr = '<SID>'
|
|
else
|
|
let sidstr = ''
|
|
endif
|
|
return IMAP_PutTextWithMovement(
|
|
\ "\" ".name.": <+short description+> \<cr>" .
|
|
\ "Description: <+long description+>\<cr>" .
|
|
\ "\<C-u>function! ".name."(<+arguments+>)&ph;\<cr>" .
|
|
\ "<+function body+>\<cr>" .
|
|
\ "endfunction \" "
|
|
\ )
|
|
endfunction</programlisting>
|
|
<para>
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>ft</entry>
|
|
<entry>
|
|
<para>
|
|
The file type for which this mapping is active. When this string
|
|
is left empty, the mapping applies for all file-types. A filetype
|
|
specific mapping will always take precedence.
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>phs, phe</entry>
|
|
<entry>
|
|
<para>
|
|
If you prefer to write the <literal>rhs</literal> with characters
|
|
other than <literal><+</literal> and <literal>+></literal>
|
|
to denote place-holders, you can use the last 2 arguments to
|
|
specify which characters in the <literal>rhs</literal> specify
|
|
place-holders. By default, these are <literal><+</literal> and
|
|
<literal>+></literal> respectively.
|
|
</para>
|
|
<para>
|
|
Note that the <literal>phs</literal> and <literal>phe</literal>
|
|
arguments do not control what characters will be displayed for
|
|
the placeholders when the mapping is actually triggered. What
|
|
characters are used to display place-holders when you trigger an
|
|
<literal>IMAP</literal> are controlled by the <link
|
|
linkend="Imap_PlaceHolderStart"><literal>Imap_PlaceHolderStart</literal></link>
|
|
and <link
|
|
linkend="Imap_PlaceHolderEnd"><literal>Imap_PlaceHolderEnd</literal></link>
|
|
settings.
|
|
</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
</section>
|
|
<section id="latex-packages">
|
|
<title>Package Handling</title>
|
|
<para>
|
|
&ls; has a lot of functionality written to ease working with packages.
|
|
Packages here refers to files which you include into the &latex;
|
|
document using the <literal>\usepackage</literal> command.
|
|
</para>
|
|
<section id="inserting-packages">
|
|
<title>Inserting package commands</title>
|
|
<para>
|
|
When you first invoke &ls;, it scans the
|
|
<literal>$VIM/ftplugin/latex-suite/packages</literal> directory for
|
|
package script files and creates a menu from all the files found there.
|
|
This menu is created under <literal>TeX-Suite > Packages >
|
|
Supported</literal>. This menu contains a list of packages "supported"
|
|
by &ls;. When you choose one of the packages from this menu (for example
|
|
the <literal>amsmath</literal> package), then a line of
|
|
the form
|
|
<programlisting>\usepackage[&ph;]{amsmath}&ph;</programlisting>
|
|
will be inserted into the current file.
|
|
</para>
|
|
<para>
|
|
The <literal>\usepackage</literal> line can also be inserted in an easy
|
|
manner in the current file by pressing <literal><F5></literal>
|
|
while in the preamble of the current document. This will set up a prompt
|
|
from the supported packages and ask you to choose from one of them. If
|
|
you do not find the package you want to insert in the list, you can type
|
|
in a package-name and it will use that. Pressing
|
|
<literal><F5></literal> in the preamble on a line containing a
|
|
single word will construct a <literal>\usepackage</literal> line from
|
|
that word.
|
|
</para>
|
|
<para>
|
|
You can also use the <link
|
|
linkend="TPackage"><literal>TPackage</literal></link> to insert the
|
|
<literal>\usepackage</literal> line.
|
|
</para>
|
|
<para>
|
|
Once you have inserted a <literal>\usepackage</literal> line, for
|
|
supported packages, you can use the Options and Commands menus
|
|
described in the <link linkend="package-actions">next section</link>.
|
|
</para>
|
|
</section>
|
|
<section id="package-actions">
|
|
<title>Actions taken for supported packages</title>
|
|
<para>
|
|
&ls; takes the following actions for packages detected when a file is
|
|
loaded, or a new <literal>\usepackage</literal> line is inserted using
|
|
one of the methods described in the <link
|
|
linkend="inserting-packages">previous section</link>.
|
|
</para>
|
|
<para>
|
|
If you are using the GUI and you have <link
|
|
linkend="Tex_Menus">g:Tex_Menus</link> set to 1, &ls; will create the
|
|
following sub-menus
|
|
<simplelist>
|
|
<member><literal>TeX-Suite > Packages > <package> Options</literal></member>
|
|
<member><literal>TeX-Suite > Packages > <package> Commands</literal></member>
|
|
</simplelist>
|
|
</para>
|
|
<para>
|
|
where <literal><package></literal> is the package you just
|
|
inserted (or was detected). You can use these menus to insert commands,
|
|
environments and options which &ls; recognizes as belonging to this
|
|
package.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
While inserting an option, you need to position yourself in the
|
|
appropriate place in the document, most commonly inside the square
|
|
braces in the <literal>\usepackage[]{packname}</literal> command. &ls;
|
|
will not navigate to that location.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
In addition to creating these sub-menus, &ls; will also scan the
|
|
<literal>$VIM/ftplugin/latex-suite/dictionaries</literal> directory and
|
|
if a dictionary file corresponding to the package file is found, then
|
|
it will add the file to the <literal>'dict'</literal> setting in &vim;
|
|
so you can use the <literal><C-X><C-K></literal> command to
|
|
complete words from that file.
|
|
</para>
|
|
<para>
|
|
For example, the <literal>SIUnits</literal> package has a custom
|
|
dictionary.
|
|
</para>
|
|
<anchor id="latex-package-scanning" />
|
|
<para>
|
|
If a package detected at startup is found by &ls; in the current
|
|
directory or in a location specified by the <link
|
|
linkend="Tex_TEXINPUTS">g:Tex_TEXINPUTS</link> variable, &ls; will
|
|
scan the package for <literal>\newenvironment</literal> and
|
|
<literal>newcommand</literal> lines and also append any commands and
|
|
environments found to the list of commands and environments which you
|
|
are prompted with when you press <link
|
|
linkend="inserting-env-f5"><literal><F5></literal></link> or <link
|
|
linkend="ls-imap-f7"><literal><F7></literal></link> in insert
|
|
mode.
|
|
</para>
|
|
</section>
|
|
<para>
|
|
In addition, the <literal>TeX-Suite > Packages</literal> menu also
|
|
contains the following submenus
|
|
</para>
|
|
<formalpara>
|
|
<title>Update</title>
|
|
This command is to be invoked with the cursor placed on the package
|
|
name. If the corresponding package is found, then a sub-menu with the
|
|
supported commands and options is created.
|
|
</formalpara>
|
|
<formalpara>
|
|
<title>Update All</title>
|
|
This function reads the preamble of the document for
|
|
<literal>\usepackage</literal> lines and if &ls; supports the detected
|
|
packages, then sub-menus containing the package options and commands
|
|
are created.
|
|
</formalpara>
|
|
<section id="automatic-package-detection">
|
|
<title>Automatic Package detection</title>
|
|
<para>
|
|
Whenever &ls; begins editing a new &latex; file, it scans it for
|
|
<literal>\usepackage{name}</literal> lines, and if a supported package
|
|
is found, then it will create sub-menus and add to the
|
|
<literal>'dict'</literal> setting as described above.
|
|
</para>
|
|
<para>
|
|
If a <link linkend="latex-master-file">master-file</link> has been specified,
|
|
then it will scan that file instead of the current file. See the section
|
|
<link linkend="custom-packages">Custom Packages</link>
|
|
to see which files &ls; will scan in more detail.
|
|
</para>
|
|
<para>
|
|
For all the packages detected in this manner, &ls; will take certain
|
|
actions as described in the section <link
|
|
linkend="package-actions">package support.</link>.
|
|
</para>
|
|
<section id="custom-packages">
|
|
<title>Custom Packages</title>
|
|
<para>
|
|
Often times, the preamble can become too long, and some people prefer
|
|
to put most of their personalization in a custom package and include
|
|
that using a <literal>\usepackage</literal> line. &ls; tries to search
|
|
such customs package for other <literal>\usepackage</literal> lines, so
|
|
that supported packages included in this indirect manner can also be
|
|
used to create sub-menus, extend the <literal>'dict'</literal> setting
|
|
etc. The most obvious place to place such custom packages is in the
|
|
same directory as the edited file. In addition, &latex; also supports
|
|
placing custom packages in places pointed to by the
|
|
<literal>$TEXINPUTS</literal> environment variable.
|
|
</para>
|
|
<para>
|
|
If you use the <literal>$TEXINPUTS</literal> variable in &latex;, and
|
|
you wish &ls; to search these custom packages for
|
|
<literal>\usepackage</literal> lines, then you need to initialize the
|
|
<link linkend="Tex_TEXINPUTS"><literal>g:Tex_TEXINPUTS</literal></link>
|
|
variable.
|
|
</para>
|
|
<para>
|
|
The <literal>g:Tex_TEXINPUTS</literal> variable needs to be set in the
|
|
same format which &vim; uses for the <literal>'path'</literal> setting.
|
|
This format is explained in detail if you do
|
|
<programlisting>:help file-searching</programlisting>
|
|
from within &vim;.
|
|
</para>
|
|
<para>
|
|
Therefore the value of <literal>g:Tex_TEXINPUTS</literal> will most
|
|
probably be different from <literal>$TEXINPUTS</literal> which your
|
|
native &latex; distribution uses.
|
|
</para>
|
|
<para>
|
|
Example:
|
|
<programlisting>let g:Tex_TEXINPUTS = '~/texmf/mypackages/**,./**'</programlisting>
|
|
The <literal>**</literal> indicates that all directories below the
|
|
directory <literal>~/texmf/mypackages</literal> and
|
|
<literal>./</literal> are to be scanned for custom packages.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
The present directory <literal>'.'</literal> is always searched. You
|
|
need not include that in <literal>g:Tex_TEXINPUTS</literal>.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
</section>
|
|
<section id="supporting-packages">
|
|
<title>Writing supporting for a package</title>
|
|
<para>
|
|
Supporting a package is easy and consists of writing a vim script with
|
|
the same name as the package and placing it in the
|
|
<literal>$VIM/ftplugin/latex-suite/packages</literal> directory. A
|
|
package script should define two variables as described in the next two
|
|
sections. In addition to these two variables, you can also define any
|
|
functions, environment definitions etc. in this file.
|
|
</para>
|
|
<section>
|
|
<title><literal>g:Tex_package_option_<package></literal></title>
|
|
<para>
|
|
This setting is a string containing a comma separated list of options
|
|
supported by this package.
|
|
</para>
|
|
<para>
|
|
Example:
|
|
<programlisting>g:Tex_package_option_mypack = 'opt1,opt2=,sbr:group1,opt3,opt4'</programlisting>
|
|
The <literal>=</literal> suffix means that the option takes a value.
|
|
Use <literal>sbr:group name</literal> to separate options into
|
|
sub-menus. All successive options will be clubbed into the
|
|
<literal>group1</literal> sub-menu till the next
|
|
<literal>sbr:</literal> option is encountered.
|
|
</para>
|
|
</section>
|
|
<section>
|
|
<title><literal>g:Tex_package_<package></literal></title>
|
|
<programlisting>
|
|
g:TeX_package_<package> = "pre:Command,pre:Command1"
|
|
More detailed example is in latex-suite/packages/exmpl file (slightly
|
|
outdated).
|
|
Here is short summary of prefixes which can be used in package files:
|
|
(x - place with cursor, &ph; - |placeholder|)
|
|
|
|
{env:command} Environment: creates simple environment template
|
|
\begin{command}
|
|
x
|
|
\end{command}&ph;
|
|
{eno:command} Environment with option:
|
|
\begin[x]{command}
|
|
&ph;
|
|
\end{command}&ph;
|
|
{ens:command[<<option>>]...} Environment special:
|
|
\begin[<<option>>]...{command}
|
|
&ph;
|
|
\end{command}&ph;
|
|
{bra:command} Brackets:
|
|
\command{x}&ph;
|
|
{brd:command} Brackets double:
|
|
\command{x}{&ph;}&ph;
|
|
{brs:command[<<option>>]...} Brackets special (as environment special:
|
|
\command[<+x+>]{&ph;}{&ph;}&ph;
|
|
{nor:command} Normal:
|
|
\command<Space
|
|
{noo:command} Normal with option:
|
|
\command[x]&ph;
|
|
{nob:command} Normal with option and brackets:
|
|
\command[x]{&ph;}&ph;
|
|
{pla:command} Plain:
|
|
command<Space
|
|
{spe:command} Special:
|
|
command <-literal insertion of command
|
|
{sep:command} creates separator. Good for aesthetics and usability :)
|
|
{sbr:command} Breaks menu into submenus. <command> will be title of submenu.
|
|
Can be used also in package variable.
|
|
|
|
Command can be also given without prefix:. The result is
|
|
\command
|
|
</programlisting>
|
|
</section>
|
|
</section>
|
|
</section>
|
|
<section id="latex-completion">
|
|
<title>Latex Completion</title>
|
|
<para>
|
|
&ls; provides an easy way to insert references to labels and
|
|
bibliographic entries and also provide filename arguments to commands
|
|
such as <literal>\includegraphics</literal>. Although the completion
|
|
capabilities are very diverse, &ls; only uses a single key
|
|
(<literal><F9></literal> by default) to do all of it. Pressing the
|
|
<literal><F9></literal> key does different things based on where
|
|
you are located. &ls; tries to guess what you might be trying to
|
|
complete at the location where you pressed
|
|
<literal><F9></literal>. For example, pressing
|
|
<literal><F9></literal> when you are within a
|
|
<literal>\ref</literal> command will try to list the
|
|
<literal>\label</literal>'s in the present directory. Pressing it when
|
|
you are in a <literal>\cite</literal> command will list bibliography
|
|
keys. &ls; also recognizes commands which need a file name argument and
|
|
will put up an explorer window for you to choose a filename.
|
|
</para>
|
|
<note id="ls-set-grepprg">
|
|
<title>Before you start with &ls;'s completion function...</title>
|
|
<para>
|
|
All of &ls;'s completion capabilities depend on a external program
|
|
being available on your system which can search through a number of
|
|
files for a reg-exp pattern. On *nix systems, the pre-installed
|
|
<literal>grep</literal> utility is more than adequate. Most windows
|
|
systems come with a utility <literal>findstr</literal>, but that has
|
|
proven to be very inadequate (for one, it does not have an option to
|
|
force the file name to be displayed when searching through a single
|
|
file). Your best bet is to install <ulink
|
|
url="http://www.cygwin.com">cygwin</ulink>, but if you think that's
|
|
overkill, you can <ulink
|
|
url="http://www.google.com/search?q=windows%20gnu%20grep">search
|
|
for</ulink> a windows implementation of GNU grep. (&ls; testing on
|
|
windows has been done with cygwin's port of GNU grep).
|
|
</para>
|
|
<para>
|
|
Once you have a <literal>grep</literal> program installed, you need to
|
|
set the <literal>'grepprg'</literal> option for vim. Make sure you use a
|
|
setting which forces the program to display file names even when you are
|
|
searching through a single file. For GNU grep, the syntax is
|
|
<programlisting>set grepprg=grep\ -nH\ $*</programlisting>
|
|
</para>
|
|
</note>
|
|
<section id="ls-completion-usage">
|
|
<title id="ls-completion-usage.title">&ls; completion example</title>
|
|
<para>
|
|
Consider the situation where you are editing a file with two equations
|
|
labelled <literal>eqn:euler</literal> and <literal>eqn:einstein</literal>.
|
|
Now you want to insert a reference to one of these equations. To do this,
|
|
you type the <literal>\ref{eqn:}</literal> command and with the cursor
|
|
placed after <literal>eqn:</literal>, press <literal><F9></literal>.
|
|
This will bring up two new windows beneath the main window you were working
|
|
in as shown in the figure below.
|
|
<programlisting>
|
|
8 These are a couple of equations:
|
|
9 +-- 4 lines: eqnarray (eqn:euler) : e^{j\pi} + 1 &=& 0---------------
|
|
13 +-- 4 lines: equation (eqn:einstein) : E = m c^2---------------------
|
|
17
|
|
18 These are a couple of figures:
|
|
19 +-- 7 lines: figure (fig:monkeys) : Monkeys can Type-------------------
|
|
26 +-- 7 lines: figure (fig:shakespeare) : Shakespeare could not type-----
|
|
33
|
|
34 This is a reference to \ref{eqn:}&ph;
|
|
35
|
|
36
|
|
37 \end{document}
|
|
38
|
|
~
|
|
~
|
|
~
|
|
newfile.tex 34,32 Bot
|
|
newfile.tex|11| \label{eqn:euler}
|
|
newfile.tex|15| \label{eqn:einstein}
|
|
~
|
|
[Error List] 1,1 All
|
|
7
|
|
8 These are a couple of equations:
|
|
9 \begin{eqnarray}
|
|
10 e^{j\pi} + 1 &=& 0
|
|
11 \label{eqn:euler}
|
|
12 \end{eqnarray}
|
|
13 \begin{equation}
|
|
14 E = m c^2
|
|
15 \label{eqn:einstein}
|
|
16 \end{equation}
|
|
newfile.tex [Preview] 11,3 21%
|
|
</programlisting>
|
|
</para>
|
|
<para>
|
|
The first window (shown as <literal>[Error List]</literal> above) is a
|
|
<literal>|cwindow|</literal> containing a list of possible matches for the
|
|
reference. The cursor will be located in the first line of this window. The
|
|
bottom window is a <literal>preview-window</literal> showing the context of
|
|
the <literal>\label</literal>. Moving around in the
|
|
<literal>[Error List]</literal> window automatically scrolls the
|
|
preview window so as to always keep showing the context of the
|
|
<literal>\label</literal> being viewed in the
|
|
<literal>[Error List]</literal> window. You can also press
|
|
<literal>J</literal> and <literal>K</literal> in the
|
|
<literal>[ErrorList]</literal> window to scroll the preview window up and
|
|
down.
|
|
</para>
|
|
<para>
|
|
To insert one of the labels, simply position the cursor in the correct line
|
|
in the <literal>[Error List]</literal> window and press
|
|
<literal><enter></literal>. This will immediately close the two newly
|
|
opened windows, get back to the correct location in the original file being
|
|
edited and insert the label into the <literal>\ref</literal> command.
|
|
</para>
|
|
<para>
|
|
If you notice carefully in the example above, the
|
|
<literal>[Error List]</literal> window only showed the matches for the
|
|
equations and did not list any of the figure labels. This is because we
|
|
pressed <literal><F9></literal> after <literal>\ref{eqn:</literal>
|
|
instead of simply after <literal>\ref{</literal>. This caused &ls; to
|
|
search only for those labels which started with the string
|
|
<literal>eqn:</literal>. If you had pressed
|
|
<literal><F9></literal> after a <literal>\ref{</literal>, you would
|
|
have been shown matches from <emphasis>all</emphasis> labels, not just
|
|
those starting with <literal>eqn:</literal>.
|
|
</para>
|
|
<para>
|
|
Thus prefixing all your labels with <literal>eqn:</literal>,
|
|
<literal>fig:</literal>, <literal>tab:</literal> etc. depending on what you
|
|
are labelling will lead to an easier time completing references.
|
|
</para>
|
|
</section>
|
|
<section id="ls-completion-ref">
|
|
<title>&ls; \ref completion</title>
|
|
<para>
|
|
Pressing <literal><F9></literal> when you are within a partially
|
|
completed <literal>\ref</literal> command will split open a window
|
|
(named <literal>__OUTLINE__</literal>) which contains a nicely
|
|
formatted list of all the <literal>\label</literal>s found in the
|
|
present project. The <literal>\label</literal>s are heirarchically
|
|
arranged according to which <literal>\section</literal>,
|
|
<literal>\subsection</literal> etc of the overall document structure
|
|
they are present in. For example, when you first press
|
|
<literal><F9></literal> after typing <literal>\ref{</literal>,
|
|
you should see something like:
|
|
<programlisting>
|
|
+-- 54 lines: 2. Kinematics--------------------------------
|
|
+-- 98 lines: 3. Aerodynamics of the MFI thorax------------
|
|
+-- 40 lines: 4. Jump Resonance in Fourbar Mechanisms------
|
|
+-- 28 lines: 5. Design and Fabrication Issues-------------
|
|
</programlisting>
|
|
Each chapter is |fold|ed away so that you can quickly jump to the
|
|
correct section/subsection in which the relevant equation is defined.
|
|
This makes inserting references significantly faster for large projects
|
|
with hundreds of equations. You can then open some of the folds to see
|
|
for example:
|
|
<programlisting>
|
|
+-- 54 lines: 2. Kinematics--------------------------------
|
|
3. Aerodynamics of the MFI thorax
|
|
3.1. Aerodynamic modeling of the MFI wing forces
|
|
3.1.1. Geometric Specification
|
|
eqn:wingnormal-pos
|
|
\nhat = T_z(\theta_2) T_y(\theta_y)T_x(\theta_x)\nhat_0,
|
|
eqn:T-1
|
|
T_1(\theta_2) &=& T_z(\theta_2)
|
|
</programlisting>
|
|
The <literal><Tab></literal> key is mapped in this window to
|
|
toggle folds so that you can quickly open/close folds in order to
|
|
navigate the heirarchy faster. Once you are positioned on a
|
|
label, press <literal><Enter></literal>. This closes the
|
|
<literal>__OUTLINE__</literal> window, returns to the window in which
|
|
you pressed <literal><F9></literal> and inserts the reference
|
|
at the current cursor position.
|
|
</para>
|
|
<note>
|
|
<title>Filtering labels by prefix</title>
|
|
<para>
|
|
You can press <literal><F9></literal> after typing part of the
|
|
<literal>\label</literal>. In this case, &ls; only presents
|
|
<literal>\label</literal>s which begin with the already filled
|
|
characters. You can use this to choose between equations, figures,
|
|
tables etc. if you consistently label equations to begin with
|
|
<literal>eqn:</literal>, figures to begin with <literal>fig:</literal>
|
|
etc. For example, with this scheme, pressing
|
|
<literal><F9></literal> after typing
|
|
<literal>\ref{eqn:</literal> will only list equations.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
&ls; works the same way if you press <literal><F9></literal>
|
|
after any command which contains the letters <literal>ref</literal>.
|
|
Thus you can complete <literal>\eqref</literal> in exactly the same
|
|
manner.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<title>Requirements</title>
|
|
<para>
|
|
This method of preseting the <literal>\label</literal>s depends on Vim
|
|
being compiled with python support. To check if you have this, see the
|
|
output of the <literal>:ver</literal> command. If you see something
|
|
like <literal>+python</literal>, you are all set. Failing this, you
|
|
will need to have <literal>python</literal> somewhere in your
|
|
<literal>$PATH</literal>.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="latex-completion-cite">
|
|
<title>&ls; <literal>\cite</literal> completion</title>
|
|
<para>
|
|
&ls; provides an easy way to insert references to bibliographic
|
|
entries. Pressing <literal><F9></literal> when the cursor is
|
|
placed inside a partially completed <literal>\cite</literal> command
|
|
will split open a new window (named <literal>__OUTLINE__</literal>)
|
|
which contains a formatted and syntax highlighted list of all bibtex
|
|
entries found. For example, pressing <literal><F9></literal>
|
|
after typing <literal>\ref{</literal> should present you with a window
|
|
which looks something like this:
|
|
<programlisting>
|
|
Article [dickinson:science:99]
|
|
"Wing rotation and aerodynamic basis of insect flight"
|
|
M. H. Dickinson and F-O. Lehman and S. P. Sane
|
|
In Science, 1999
|
|
|
|
Article [ellington:84:part1]
|
|
"The Aerodynamics of Hovering Insect Flight. I. The Quasi-Steady Analysis"
|
|
Ellington, C P
|
|
In Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences, 1984
|
|
|
|
Article [ellington:84:part2]
|
|
"The Aerodynamics of Hovering Insect Flight. II. Morphological Parameters"
|
|
Ellington, C P
|
|
In Philosophical Transactions of the Royal Society of London. Series B, Biological Sciences, 1984
|
|
</programlisting>
|
|
</para>
|
|
<para>
|
|
You can easily jump from one entry to another using the
|
|
<literal>'n'</literal> and <literal>'p'</literal> keys (to go to the
|
|
next / previous entry respectively).
|
|
</para>
|
|
<para>
|
|
You can also filter out a subset of the bibtex entries by pressing
|
|
<literal>'f'</literal> while in this window. Doing this presents the
|
|
following prompt:
|
|
<programlisting>
|
|
Field acronyms: (`:let g:Tex_EchoBibFields = 0` to avoid this message)
|
|
[t] title [a] author [b] booktitle
|
|
[j] journal [y] year [p] bibtype
|
|
(you can also enter the complete field name)
|
|
Enter filter criterion [field<space>value]:
|
|
</programlisting>
|
|
At the prompt, type
|
|
<programlisting>a ellington</programlisting>
|
|
Notice that the letter a is an acronym for <literal>author</literal>
|
|
according to the prompt above. Therefore this filter only shows those
|
|
bibtex entries whose author field contains the text
|
|
<literal>ellington</literal>. You can keep narrowing your selection by
|
|
repeatedly filtering the results. If you would like to remove all the
|
|
filters and see all entries again, press 'a', which removes
|
|
all the filters.
|
|
</para>
|
|
<para>
|
|
You can also sort the bibtex entries based on a field. To do this,
|
|
press 's'. This will present you with a prompt like in the case of the
|
|
filter and you are asked to choose a field. In this case, you would
|
|
type in a single character. This sorts the entries according to that
|
|
field.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
<literal><F9></literal> will also work in a similar way after any
|
|
command which contains the word <literal>cite</literal> in it. For
|
|
example, pressing <literal><F9></literal> will also work with
|
|
<literal>\citenum</literal> etc.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
The following logic is applied to find out which bibliographic entries
|
|
are included in the completion.
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>
|
|
Firstly, if the present file has a <link
|
|
linkend="latex-master-file">master-file</link> defined for it, then &ls;
|
|
will perform the following steps on that file instead of on the
|
|
current file.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
First, the file is scanned for a <literal>\bibliography</literal>
|
|
command. To explain better, assume that a command
|
|
<programlisting>\bibliography{file1,file2}</programlisting> is found
|
|
in the present file. For each bibliography file, say
|
|
<literal>file1</literal>, &ls; first tries to see if a
|
|
<literal>.bib</literal> file, <literal>file1.bib</literal> can be
|
|
found. If so, it will scan it for bib-keys of the form
|
|
<literal>@BOOK{</literal> etc., and add these searches to the
|
|
completion list. If a <literal>.bib</literal> file cannot be found,
|
|
then it will try to see if <literal>file1.bbl</literal> can be found.
|
|
If so, &ls; will search it for bib-keys of the form
|
|
<literal>\bibitem</literal> and add these to the completion list.
|
|
</para>
|
|
<para>
|
|
You can set the location where &ls; will search for
|
|
<literal>.bib</literal> and <literal>.bbl</literal> files using the
|
|
<link
|
|
linkend="Tex_BIBINPUTS"><literal>|Tex_BIBINPUTS|</literal></link>
|
|
variable.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
If a <literal>\bibliography</literal> command is not found, then &ls;
|
|
tries to scan the present file for a
|
|
<literal>\begin{thebibliography}</literal> environment. If found,
|
|
&ls; searches the present file for bib-keys of the form
|
|
<literal>\bibitem</literal>.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Finally, it will try to see if this file includes other files
|
|
via the <literal>\input</literal> command. For each such file found,
|
|
&ls; will repeat the previous two steps stopping at the first file
|
|
which has either a <literal>\bibliography</literal> command or a
|
|
<literal>thebibliography</literal> environment.
|
|
</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
<section id="cite-search-caching">
|
|
<title>Caching the <literal>\cite</literal> completion results</title>
|
|
<anchor id="TClearCiteHist"></anchor>
|
|
<para>
|
|
Often times, the editing cycle proceeds by first laying out a
|
|
comprehensive bibliography and then completing all the
|
|
<literal>\cite</literal> commands in one session. In such situations,
|
|
it is inefficient to scan the whole list of bibliography files for
|
|
bib-keys each time. &ls; provides a way to cache the results of the
|
|
cite completion search using the <link
|
|
linkend="Tex_RememberCiteSearch"><literal>Tex_RememberCiteSearch</literal></link>
|
|
variable. If set, &ls; will perform the search only the first time
|
|
<literal><F9></literal> is used. Next time on, it will reuse the
|
|
search results. If you wish to redo the search results, issue the
|
|
command
|
|
<programlisting>TClearCiteHist</programlisting>
|
|
This will redo the completion list next time you use
|
|
<literal><F9></literal>.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="ls-filename-completion">
|
|
<title>&ls; filename completion</title>
|
|
<para>
|
|
When you press <literal><F9></literal> at a location where &ls;
|
|
guesses a filename needs to be typed, then a new explorer window will
|
|
open up with the list of files. You can use this window to change
|
|
directories etc. Pressing <literal><enter></literal> on a filename
|
|
in the explorer window will automatically close the explorer window,
|
|
return to the location where you pressed <literal><F9></literal>
|
|
from and insert the filename into that position.
|
|
</para>
|
|
<para>
|
|
&ls; also tries to guess what kinds of files you might not want to
|
|
insert and hides those accordingly. For example, if you press
|
|
<literal><F9></literal> when you are located at
|
|
<literal>\includegraphics{</literal>, then &ls; knows that you will not
|
|
want to insert <literal>.tex</literal> files. Therefore, the explorer
|
|
window will automatically hide these files.
|
|
</para>
|
|
<para>
|
|
As of now, &ls; recognizes the following commands for filename
|
|
completion. Along with the commands, this table also lists the
|
|
files which &ls; will not show for completing each command.
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>command</entry>
|
|
<entry>hide pattern</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>\bibliography</literal></entry>
|
|
<entry><literal>'^\.,\.[^b]..$'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>\include</literal> <literal>\includeonly</literal></entry>
|
|
<entry><literal>'^\.,\.[^t]..$'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>\includegraphics</literal> <literal>\psfig</literal></entry>
|
|
<entry><literal>'^\.,\.tex$,\.bib$,\.bbl$,\.zip$,\.gz$'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>\input</literal></entry>
|
|
<entry><literal>''</literal></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
<section id="ls-completion-custom">
|
|
<title>Custom command completion</title>
|
|
<para>
|
|
&ls; also recognizes certain commonly used &latex; commands for the
|
|
<literal><F9></literal> key. At the moment, the
|
|
<literal>\bibliographystyle</literal>, <literal>\addtocontents</literal>
|
|
and the <literal>\addcontentsline</literal> commands are recognized,
|
|
although more will be added in the future. When you press the
|
|
<literal><F9></literal> after such a command, &ls; will prompt
|
|
you with a list of arguments which make sense for the command.
|
|
</para>
|
|
<para>
|
|
This functionality is available for commands for which a global
|
|
variable of the form
|
|
<literal>g:Tex_completion_{<command>}</literal> is defined where
|
|
<literal><command></literal> is the command name. This variable
|
|
is a comma separated list of values which this command takes. For
|
|
example, the argument to the <literal>\bibliographystyle</literal>
|
|
command is commonly one of <literal>abbr,alpha,plain,unsrt</literal>.
|
|
Therefore, &ls; defines
|
|
<programlisting>let g:Tex_completion_bibliographystyle = 'abbr,alpha,plain,unsrt'</programlisting>
|
|
You can define your own completion variables in a similar manner for
|
|
commands which you might use.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="latex-compiling">
|
|
<title>&latex; Compiling</title>
|
|
<para>
|
|
This functionality, available via the TeX-Suite menu, provides various tools
|
|
to compile and debug &latex; files from within &vim;.
|
|
</para>
|
|
<para>
|
|
If you are using commonly used LaTeX tools, then you should be all set
|
|
as soon as you download and install &ls;. In order to compile a
|
|
LaTeX file, simply press <literal>\ll</literal> while editing the file.
|
|
This runs latex on the current file and displays the errors in a
|
|
|quickfix-window| below the file being edited. You can then scroll
|
|
through the errors and press <literal><enter></literal> to be
|
|
taken to the location of the corresponding error. Along with the errors
|
|
being listed in the quickfix window, the corresponding log file is also
|
|
opened in |preview| mode beneath the quickfix window. It is scrolled
|
|
automatically to keep in sync with the error being viewed in the
|
|
quickfix window. You will be automatically taken to the location of the
|
|
first error/warning unless you set the <link
|
|
linkend="Tex_GotoError">g:Tex_GotoError</link> variable to 0.
|
|
</para>
|
|
<para>
|
|
&ls; also supports compiling &latex; into formats other than DVI. By
|
|
default, &ls; supports PDF and PS formats. In order to choose a format
|
|
other than DVI, use the <literal>TTarget</literal> command or the
|
|
<literal>TeX-Suite > Target Format</literal> menu item. This will ask you
|
|
to type in the name of the target format you want to compile to. If a rule
|
|
has been defined for the format (as described in the next
|
|
<link linkend="compiler-rules">section</link>), then &ls; will switch to
|
|
that format.
|
|
</para>
|
|
<para>Trying to choose a format for which no rule has been defined will
|
|
result in &ls; displaying a warning message without taking any action.
|
|
</para>
|
|
<para>
|
|
If you are using a multiple file project and need to compile a master
|
|
file while editing other files, then &ls; provides a way to specify the
|
|
file to be compiled as described in <link
|
|
linkend="latex-master-file">latex-master-file</link>.
|
|
</para>
|
|
<section id="compiler-rules">
|
|
<title>Setting Compilation rules</title>
|
|
<para>
|
|
In order to compile &latex; files into various formats, &ls; needs to know
|
|
which external programs to call and in which way they need to be called.
|
|
This information is provided to &ls; via a number of "rules". For each
|
|
format you want to compile to, you need to specify a rule. A rule is
|
|
specified by defining a variable of the form:
|
|
<programlisting>g:Tex_CompileRule_<format></programlisting>
|
|
where <literal><format></literal> is a string like
|
|
<literal>"pdf"</literal>, <literal>"dvi"</literal> etc.
|
|
</para>
|
|
<para>
|
|
Example: By default, &ls; uses the following rule for compiling &latex;
|
|
documents into DVI.
|
|
<programlisting>g:Tex_CompileRule_dvi = 'latex --interaction=nonstopmode $*'</programlisting>
|
|
</para>
|
|
<para>
|
|
Default values are also provided for ps and pdf formats. You might want to
|
|
change these rules in texrc according to your local tex environment.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
For win32 users user MikTeX, sometimes the latex compiler's output has a
|
|
bug where a single number is split across different lines. In this case,
|
|
put the included <literal>vim-latex</literal> file distributed with &ls;.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="compiler-dependency">
|
|
<title>Handling dependencies in compilation</title>
|
|
<para>
|
|
&ls; also handles compiling dependencies automatically via certain
|
|
rules which specify the "dependency chain" for each target format.
|
|
For example, if in your case, you use
|
|
<programlisting>.tex -> .dvi -> .ps -> .pdf</programlisting>
|
|
to generate <literal>pdf</literal> files from <literal>dvi</literal>
|
|
files, then you will need to specify the following setting in your
|
|
&ls; configuration (see <link
|
|
linkend="customizing-latex-suite">customizing &ls;</link> for where
|
|
these settings should go):
|
|
<programlisting>
|
|
let g:Tex_FormatDependency_pdf = 'dvi,ps,pdf'
|
|
</programlisting>
|
|
This is a comma separated string of formats specifying the order in
|
|
which the formats to be compiled into should be chosen. With this
|
|
setting, if you set the target format to <literal>pdf</literal>, then
|
|
the next time you compile via the <literal>\ll</literal> shortcut, &ls;
|
|
will first generate a <literal>dvi</literal> file, then use that to
|
|
generate the <literal>ps</literal> file and finally create the
|
|
<literal>pdf</literal> file from that.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
If any of the intermediate formats is listed in the
|
|
<literal>g:Tex_MultipleCompileFormats</literal> setting as described
|
|
in the section <link linkend="compiling-multiple">Compiling multiple
|
|
times</link>, then &ls; might make multiple calls to the compiler to
|
|
generate the output file of that format.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
Along with the <literal>g:Tex_FormatDependency_{format}</literal>
|
|
setting, you should ofcourse specify the rule for compiling to each of
|
|
the formats as described in the <link linkend="compiler-rules">previous
|
|
section</link>. For example, with the setting above, you could use:
|
|
<programlisting>
|
|
let g:Tex_CompileRule_dvi = 'latex --interaction=nonstopmode $*'
|
|
let g:Tex_CompileRule_ps = 'dvips -Ppdf -o $*.ps $*.dvi'
|
|
let g:Tex_CompileRule_pdf = 'ps2pdf $*.ps'</programlisting>
|
|
</para>
|
|
<note>
|
|
<para>
|
|
By default, &ls; does not specify any compiler dependencies. Each
|
|
target format for which a rule has been derived will be compiled
|
|
independently.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="compiling-multiple">
|
|
<title>Compiling multiple times</title>
|
|
<para>
|
|
Most &latex; compilers need to be re-run several times in several
|
|
commonly occurring situations in order to get a final camera ready copy.
|
|
For example, when <literal>\label</literal>'s change, when new
|
|
<literal>\cite</literal> commands are added etc. If the target format
|
|
you are compiling to requires multiple compilations, then you will
|
|
need to include the format in the
|
|
<literal>g:Tex_MultipleCompileFormats</literal> setting. This is a
|
|
comma separated string of formats which need multiple compilations to
|
|
be generated correctly.
|
|
</para>
|
|
<para>
|
|
By default, this setting contains just the <literal>dvi</literal>
|
|
format. If you use the <literal>pdflatex</literal> compiler to generate
|
|
<literal>pdf</literal> files, then you might want to also include
|
|
<literal>pdf</literal> into the above setting.
|
|
</para>
|
|
<para>
|
|
For every format included in the
|
|
<literal>g:Tex_MultipleCompileFormats</literal> setting described
|
|
above, &ls; will use the following logic to generate the file. Note
|
|
that although the following description uses <literal>latex</literal>
|
|
to refer to the compiler, it could be some other compiler such as
|
|
<literal>pdflatex</literal> for generating <literal>pdf</literal>
|
|
output.
|
|
</para>
|
|
<para>
|
|
<orderedlist>
|
|
<listitem>If there was a <literal>.idx</literal> file, then remember
|
|
its contents.</listitem>
|
|
<listitem>Run <literal>latex</literal>.</listitem>
|
|
<listitem>If the <literal>.idx</literal> file changed due to the latex
|
|
compiler, then run <literal>makeindex</literal> to redo the
|
|
<literal>.ind</literal> file and then remember to rerun latex.
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
If the <literal>.aux</literal> file generated by the latex
|
|
compiler contains a <literal>\bibdata</literal> line, then it
|
|
means that we are using a <literal>.bib</literal> file. Therefore,
|
|
run <literal>bibtex</literal>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
This means that we will always run <literal>bibtex</literal>
|
|
whenever we use the <literal>\bibliography</literal> command
|
|
whether or not we actually need to. At this time, &ls; does not
|
|
parse the <literal>.aux</literal> file before and after the latex
|
|
compiler to see if we are required to rerun
|
|
<literal>bibtex</literal>.
|
|
</para>
|
|
</note>
|
|
</listitem>
|
|
<listitem>
|
|
If the <literal>.bbl</literal> file changes because of this, then
|
|
remember to rerun latex again.
|
|
</listitem>
|
|
<listitem>Also, we check to see if the &latex; compiler gives certain
|
|
standard warnings which notify that we need to compile once again. In
|
|
this case also, remember to rerun &latex;.</listitem>
|
|
<listitem>If we found we had to rerun latex, then we repeat
|
|
the steps above but not running <literal>makeindex</literal> or
|
|
<literal>bibtex</literal> again.</listitem>
|
|
</orderedlist>
|
|
</para>
|
|
<para>
|
|
The &latex; file is compiled atmost 5 times using this logic. These
|
|
steps will ensure that on most platforms/environments, you will get a
|
|
clean output with all the cross-references, citations etc correctly
|
|
labelled and ordered.
|
|
</para>
|
|
</section>
|
|
<section id="compiler-output-customization">
|
|
<title>Customizing the compiler output</title>
|
|
<para>
|
|
Most &latex; compilers produce a very large amount of output during
|
|
compilation, most of which is not relevant to debugging type-setting
|
|
errors. The compiler plugin provided with &ls; (which is an enhanced
|
|
version of the standard compiler plugin maintained by Artem Chuprina),
|
|
provides a way to filter the compiler output so that the actual
|
|
errors/warnings can be presented much more concisely.
|
|
</para>
|
|
<para>
|
|
The compiler plugin is set up by default to function in a "non-verbose",
|
|
"ignore-common-warnings" mode, which means that irrelevant lines from the
|
|
compiler output will be ignored and some very common warnings are also
|
|
ignored.
|
|
&ls; does this via the global variable <link
|
|
linkend="Tex_IgnoredWarnings"><literal>g:Tex_IgnoredWarnings</literal></link>.
|
|
This is a list of patterns, which can be used to filter out (or ignore)
|
|
some or the warnings and errors reported by the compiler. See the link
|
|
above for its default value.
|
|
</para>
|
|
<para>
|
|
&ls; uses the <link
|
|
linkend="Tex_IgnoreLevel"><literal>g:Tex_IgnoreLevel</literal></link>
|
|
setting to set a default ignore level. For example, for the default
|
|
value of 4, &ls; ignores warnings and errors matching the first 4
|
|
patterns in <literal>g:Tex_IgnoredWarnings</literal>.
|
|
</para>
|
|
<para>
|
|
In addition to setting a default value of the ignore level, &ls;
|
|
provides the ability to set the level dynamically, using the
|
|
<literal>TCLevel</literal> command. For example, if you issue the
|
|
command:
|
|
<programlisting>TCLevel 3</programlisting>
|
|
from within &vim;, then the next time you compile the document, &ls; will
|
|
ignore warnings and errors which match the first three patterns in
|
|
<literal>g:Tex_IgnoredWarnings</literal>.
|
|
</para>
|
|
<para>
|
|
When TCLevel is called with the unquoted string strict as follows:
|
|
<programlisting>TClevel strict</programlisting>
|
|
then &ls; switches to a "verbose", "no-lines-ignored" mode which is useful
|
|
when you want to make final checks of your document and want to be careful
|
|
not to let things slip by.
|
|
</para>
|
|
<para>
|
|
See the explanation of the settings <link
|
|
linkend="Tex_IgnoredWarnings">g:Tex_IgnoredWarnings</link> and <link
|
|
linkend="Tex_IgnoreLevel">g:Tex_IgnoreLevel</link> to find out how to
|
|
customize the filtering done by &ls;
|
|
</para>
|
|
|
|
</section>
|
|
<section id="part-compiling">
|
|
<title>Compiling parts of a file</title>
|
|
<para>
|
|
&ls; also provides a way to compile a fragment of a document. This can be
|
|
very useful while debugging a complex equation or one chapter in a book,
|
|
etc.
|
|
</para>
|
|
<para>
|
|
To do this, visually select a portion of the text and press
|
|
<literal>\ll</literal> while in visual mode. The visually selected portion
|
|
will be saved to a temporary file with the preamble from the current
|
|
document prepended. &ls; will then switch focus to this temporary file and
|
|
compile it. Continue to debug this file as required and then replace the
|
|
portion of the original file with this one.
|
|
</para>
|
|
<para>
|
|
Pressing <literal>\lv</literal> while viewing the temporary file will
|
|
view the output file generated from the temporary file, not the original
|
|
file
|
|
</para>
|
|
<para>
|
|
Two commands |TPartComp| and |TPartView| are provided to be able to get
|
|
this functionality via the command line.
|
|
</para>
|
|
<para>
|
|
From release 1.6 onwards of &ls;, the temporary file created
|
|
for part compilation will reside in the same directory as the file from
|
|
which the fragment is being created. This ensures that any relative
|
|
path-names defined in the fragment will still work. &ls; will
|
|
attempt to clean the temporary file(s) created when Vim exits.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="latex-viewing">
|
|
<title>Latex Viewing and Searching</title>
|
|
<section id="latex-viewing-rules">
|
|
<title>Setting Viewing rules</title>
|
|
<para>
|
|
In order to view the output files created by compiling the source
|
|
files, you need to specify which external program &ls; should call. You
|
|
can specify the external program using one of two settings
|
|
<link linkend="Tex_ViewRule_format">Tex_ViewRule_format</link> or <link
|
|
linkend="Tex_ViewRuleComplete_format">Tex_ViewRuleComplete_format</link>.
|
|
By default, &ls; has default settings for viewing various common output
|
|
formats via the <literal>Tex_ViewRule_format</literal> settings, so
|
|
that if you are using commonly used programs, you should be all set to
|
|
view compiled files from within &vim; by simply pressing
|
|
<literal>\lv</literal>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
The viewing function also takes the <link
|
|
linkend="latex-master-file"><literal>*.latexmain</literal></link> file
|
|
into account to decide which file to show.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
If pressing <literal>\lv</literal> does not work, then it most probably
|
|
has to do with incorrect settings of the <link
|
|
linkend="Tex_ViewRule_format"><literal>g:Tex_ViewRule_<format></literal></link>
|
|
where <literal><format></literal> is the format you are
|
|
attempting to view. See the link above for how to set this according to
|
|
your system.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
On Windows and OS/X, you can leave the view rule empty to open the document
|
|
with the default viewer on your system. On Linux/UNIX systems, you can use
|
|
the <literal>xdg-open</literal> command to open the document with the default
|
|
viewer.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
In addition to viewing the files, &ls; also supports forward and inverse
|
|
searching for certain common tools for viewing documents.
|
|
See the next few sections for details on forward and inverse searching,
|
|
including an overview of viewers.
|
|
</para>
|
|
</section>
|
|
<section id="forward-searching">
|
|
<title>Forward Searching documents</title>
|
|
<para>
|
|
Forward searching refers to making a viewer display a given document at
|
|
a given location from within &vim;. At present, these viewers are known to support
|
|
forward searching, but viewers that are not listed here may work, too:
|
|
<informaltable frame="all">
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Viewer</entry>
|
|
<entry>OS</entry>
|
|
<entry>Supported documents</entry>
|
|
<entry>Comment</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><ulink url="http://skim-app.sourceforge.net/">Skim</ulink></entry>
|
|
<entry>Apple / OS X Tiger</entry>
|
|
<entry>PDF</entry>
|
|
<entry>Supports also inverse searching</entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://pdfview.sourceforge.net/">PDFView</ulink></entry>
|
|
<entry>Apple / OS X</entry>
|
|
<entry>PDF</entry>
|
|
<entry>No longer in development, supports also inverse searching</entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://www2.ing.unipi.it/~d9615/homepage/texniscope.html">TeXniscope</ulink></entry>
|
|
<entry>Apple</entry>
|
|
<entry>PDF, DVI</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://www.miktex.org/">YAP</ulink></entry>
|
|
<entry>Windows</entry>
|
|
<entry>DVI, PS</entry>
|
|
<entry>ships with MikTex</entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://blog.kowalczyk.info/software/sumatrapdf/">Sumatra PDF</ulink></entry>
|
|
<entry>Windows</entry>
|
|
<entry>PDF</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://developer.kde.org/~kdvi/">kdvi</ulink></entry>
|
|
<entry>Linux/UNIX</entry>
|
|
<entry>DVI</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://okular.kde.org/">okular</ulink></entry>
|
|
<entry>Linux/UNIX</entry>
|
|
<entry>DVI, PDF, PS and many more</entry>
|
|
<entry>Included in KDE 4</entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://math.berkeley.edu/~vojta/xdvi.html">xdvi</ulink></entry>
|
|
<entry>Linux/UNIX</entry>
|
|
<entry>DVI</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><ulink url="http://xdvi.sourceforge.net/">xdvik</ulink></entry>
|
|
<entry>Linux/UNIX</entry>
|
|
<entry>DVI</entry>
|
|
<entry></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
Pressing <literal>\ls</literal> from within &vim;
|
|
should make the viewer display the portion of the document where your
|
|
cursor is placed.
|
|
<note>
|
|
<para>
|
|
OS/X users need to set the <literal>g:Tex_TreatMacViewerAsUNIX</literal> flag
|
|
to <literal>1</literal> and provide a UNIX-like viewrule, that expects as
|
|
arguments the document, the linenumber and the sourcefile in this order.
|
|
</para>
|
|
</note>
|
|
</para>
|
|
<anchor id="enabling-searching" />
|
|
<note>
|
|
<title>Enabling Forward and Inverse Searching</title>
|
|
<para>
|
|
Most DVI viewers need "source-special" information in order to do
|
|
forward (and inverse) searching. This information is embedded in the
|
|
<literal>dvi</literal> file if the &latex; source is compiled with the
|
|
<literal>--src-specials</literal> option. By default, &ls; does not
|
|
supply this argument to the compiler. See the section on
|
|
<literal><link
|
|
linkend="Tex_CompileRule_format">g:Tex_CompileRule_dvi</link></literal>
|
|
to find out how this option can be set.
|
|
|
|
For pdf viewers you need to use the <ulink url="http://itexmac.sourceforge.net/pdfsync.html">pdfsync</ulink>
|
|
package in your LaTeX document.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="inverse-searching">
|
|
<title>Inverse Searching</title>
|
|
<para>
|
|
Inverse searching refers to the viewer telling &vim; to display the &latex;
|
|
source file at a given location. Usually this happens with double-clicking
|
|
or clicking while pressing the shift button in the viewer window. The
|
|
actual method depends on the viewer application.
|
|
</para>
|
|
<para>
|
|
You will need to <link linkend="enabling-searching">enable
|
|
searching</link> in order to use this functionality.
|
|
</para>
|
|
<para>
|
|
You will also need to specify certain settings to the DVI viewer
|
|
conveying the syntax which it needs to use to tell &vim; how to display
|
|
the source file. In <literal>YAP</literal>, you can set this option in
|
|
<literal>View > Options > Inverse Search</literal>. The
|
|
<literal>Command Line</literal> field needs to be set as follows:
|
|
<programlisting>"C:\Program Files\vim\vim61\gvim" -c ":RemoteOpen +%l %f"</programlisting>
|
|
The command <literal>:RemoteOpen</literal> is supplied when you install
|
|
&ls;.
|
|
</para>
|
|
<para>
|
|
On *nix machines, &ls; attempts to call the DVI viewer in such a way
|
|
that it already knows how to communicate with &vim;. If this does not
|
|
seem to be working, you can use the <literal>RemoteOpen</literal>
|
|
command described above.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="latex-folding">
|
|
<title>Latex Folding</title>
|
|
<para>
|
|
&ls; ships with the plugin SyntaxFolds.vim which is a plugin for
|
|
creating "fake" syntax folds on the fly. The fold method is actually manual
|
|
but the folding is based on &latex; syntax. This offers a speed increase over
|
|
regular syntax folding. Ofcourse it has the disadvantage that the folds are
|
|
not dynamic, i.e newly created syntax items are not automatically folded up.
|
|
(This is a compromise between speed and convenience).
|
|
</para>
|
|
<para>
|
|
When you open up a LaTeX file, all the portions will be automatically folded
|
|
up. However, no new folds will be created until you press
|
|
<literal><F6></literal> or <literal>\rf</literal>. (rf
|
|
stands for "refresh folds").
|
|
</para>
|
|
<para>
|
|
The fold-text is set to the first line of the folded text unless the fold is a
|
|
table, figure etc. (an environment). In this case, if a \caption and/or a
|
|
label is found in the folded region, then those are used to make a more
|
|
meaningful fold-text, otherwise the second line of the environment is displayed
|
|
along with the name of the environment. In other words, the following
|
|
<programlisting>\begin{figure}[h]
|
|
\centerline{\psfig{figure=slidercrank.eps,height=6cm}}
|
|
\caption{The Slider Crank Mechanism.}
|
|
\label{fig:slidercrank}
|
|
\end{figure}
|
|
% a LaTeX comment.
|
|
\begin{eqnarray}
|
|
\sin(\pi) = 0
|
|
\end{eqnarray}</programlisting>
|
|
</para>
|
|
<para>
|
|
will be shown as:
|
|
<programlisting>+--- 5 lines: figure (fig:slidercrank) : The Slider Crank Mechanism. -----
|
|
% a LaTeX comment.
|
|
+--- 3 lines: eqnarray () : \sin(\pi) = 0 --------------------------------</programlisting>
|
|
</para>
|
|
<section id="default-folding">
|
|
<title>Default Folding Scheme in &ls;</title>
|
|
<para>
|
|
By default &ls; creates folds in the following manner:
|
|
</para>
|
|
<programlisting>\chapter
|
|
\section
|
|
%%fakesection
|
|
\subsection
|
|
\subsubsection
|
|
\item
|
|
\equation
|
|
\eqnarray
|
|
\figure
|
|
\table
|
|
\footnote</programlisting>
|
|
<para>
|
|
The indentation shows the "nestedness" of the folding scheme.
|
|
See the <link linkend="customizing-what-to-fold">next section</link> to
|
|
see how you can change this scheme.
|
|
</para>
|
|
</section>
|
|
<section id="customizing-what-to-fold">
|
|
<title>Customizing what to fold</title>
|
|
<para>
|
|
From version 1.6 onwards, the folding in &ls; can be controlled
|
|
to a large extent via a number of global variables.
|
|
</para>
|
|
<section id="Tex_FoldedSections">
|
|
<title>Tex_FoldedSections</title>
|
|
<para>
|
|
This entry defines which sections will be folded. This
|
|
setting is a comma separated list of section names.
|
|
The default value is:
|
|
<programlisting>part,chapter,section,%%fakesection,
|
|
subsection,subsubsection,paragraph</programlisting>
|
|
Each of the entries in the list will fold up a section of the
|
|
corresponding name. The <literal>%%fakesection</literal> section is
|
|
provided as a means for the user to group lines into "fake" sections.
|
|
A <literal>%%fakesection</literal> is assumed to start on a line which
|
|
begins with the string <literal>%%fakesection</literal> and continue
|
|
till the start of the next <literal>\section</literal>,
|
|
<literal>\subsection</literal> or any other section.
|
|
</para>
|
|
<para>
|
|
See also <link linkend="fold-setting-advanced">advanced fold
|
|
settings</link>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_FoldedEnvironments">
|
|
<title>Tex_FoldedEnvironments</title>
|
|
<para>
|
|
This entry defines which environments will be folded. It is a
|
|
comma separated string of words each of which defines a single
|
|
environment. The default setting is
|
|
<programlisting>verbatim,comment,eq,gather,
|
|
align,figure,table,thebibliography,
|
|
keywords,abstract,titlepage</programlisting>
|
|
The words need not be standard Latex environments. You can
|
|
add any word you like. Also, each word will fold up all
|
|
environments whose name begins with that word. For example, in
|
|
the setting above, the word <literal>"eq"</literal> folds up the
|
|
<literal>\begin{equation}</literal>,
|
|
<literal>\begin{eqnarray}</literal>,
|
|
<literal>\begin{eqnarray*}</literal> environments. To avoid
|
|
this, you can replace the word <literal>"eq"</literal> with
|
|
<literal>"eq}"</literal>.
|
|
</para>
|
|
<para>
|
|
See also <link linkend="fold-setting-advanced">advanced fold
|
|
settings</link>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_FoldedCommands">
|
|
<title>Tex_FoldedCommands</title>
|
|
<para>
|
|
This entry defines which commands will be folded. It is a comma
|
|
separated string of words each of which defines a single command.
|
|
The default setting is empty, i.e no commands are folded.
|
|
The words need not be standard Latex commands. You can use whatever
|
|
words you like. Each word will fold all commands whose name begins
|
|
with that word as in the case of the <link
|
|
linkend="Tex_FoldedEnvironments">Tex_FoldedEnvironments</link>
|
|
variable.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
It is very difficult to fold commands reliably because it is very
|
|
difficult to create a regexp which will match a line containing
|
|
unmatched parentheses (or curly brackets), but will not match a line
|
|
containing matched parentheses.
|
|
</para>
|
|
<para>
|
|
Just to make things safer, only lines which start a command but do
|
|
not contain additional curly braces after the command has started are
|
|
folded. In other words, if you wanted to fold the the command
|
|
<literal>"mycommand"</literal>, then the lines
|
|
<programlisting>\mycommand{This is a line
|
|
and some more text on the next line
|
|
}</programlisting>
|
|
will be folded, but the lines
|
|
<programlisting>\mycommand{This is a \textbf{line}
|
|
and some more text
|
|
}</programlisting>
|
|
will not be folded. This is a bug which is very difficult to fix.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
See also <link linkend="fold-setting-advanced">advanced fold
|
|
settings</link>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_FoldedMisc">
|
|
<title>Tex_FoldedMisc</title>
|
|
<para>
|
|
This entry defines fold syntax for certain items which do not
|
|
naturally fit into the section, environment of command lists. It is a
|
|
comma separated list of words. The default value is:
|
|
<programlisting>item,preamble,<<<</programlisting>
|
|
<note>
|
|
<para>
|
|
Unlike the other Tex_FoldedXXXX variables, the words in this setting
|
|
are limited to take values from the following list:
|
|
</para>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Value</entry>
|
|
<entry>Meaning</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>comments</entry>
|
|
<entry>Folds up contiguous blocks of comments</entry>
|
|
</row>
|
|
<row>
|
|
<entry>item</entry>
|
|
<entry>Folds up the <literal>\item</literal>s within list
|
|
environments</entry>
|
|
</row>
|
|
<row>
|
|
<entry>preamble</entry>
|
|
<entry>Folds up the preamble of a document. (The part between
|
|
the <literal>\documentclass</literal> command and the
|
|
<literal>\begin{document}</literal> environment)</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal><<<</literal></entry>
|
|
<entry>Folds defined manually by the user using the
|
|
<literal><<<</literal> and
|
|
<literal>>>></literal> strings as fold-markers.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
Any other words in the <literal>Tex_FoldedMisc</literal> setting
|
|
are silently ignored.
|
|
</para>
|
|
</note>
|
|
</para>
|
|
<para>
|
|
See also <link linkend="fold-setting-advanced">advanced fold
|
|
settings</link>.
|
|
</para>
|
|
</section>
|
|
<section id="fold-setting-advanced">
|
|
<title>Advanced Fold setting details</title>
|
|
<para>
|
|
The order of the words in the <literal>Tex_FoldedXXXX</literal>
|
|
variables is <emphasis>important</emphasis>. The order defines the
|
|
order in which the folds are nested. For example, the value
|
|
<literal>"subsection,section"</literal> for the
|
|
<literal>Tex_FoldedSections</literal> variable will not fold any
|
|
subsections at all. This is because the folds are created in the
|
|
<emphasis>reverse</emphasis> order in which they occur in the
|
|
<literal>Tex_FoldedSections</literal> setting and also, once a fold is
|
|
created, the interior of the fold is not examined for creating
|
|
additional folds. In the above case, this means that a
|
|
<literal>\section</literal> is folded first and then its interior is
|
|
not examined further. The correct value should have been
|
|
<literal>"section,subsection"</literal>
|
|
</para>
|
|
<anchor id="fold-setting-adding" />
|
|
<para>
|
|
Each of the fold setting variables
|
|
<literal>Tex_FoldedSections</literal>,
|
|
<literal>Tex_FoldedEnvironments</literal> etc., as explained previously
|
|
is a comma separated string of variables. However, to make it easier
|
|
to <emphasis>add</emphasis> to the default settings without having to
|
|
repeat the whole default setting again, &ls; uses the following logic
|
|
in forming the complete setting string from the
|
|
<literal>Tex_FoldedXXXX</literal> variables. If the variable starts with
|
|
a comma, then <literal>Tex_FoldedXXXX</literal> is added to the end of
|
|
the default string rather than replacing it. Similarly, if it ends
|
|
with a comma, then it will be prepended to the beginning of the
|
|
default setting rather than replacing it.
|
|
</para>
|
|
<para>
|
|
For example, if <literal>Tex_FoldedEnvironments</literal> is set to the
|
|
string <literal>"myenv"</literal>, then only an environment of the
|
|
form <literal>\begin{myenv}</literal> will be folded. However, if the
|
|
<literal>Tex_FoldedEnvironments</literal> setting is
|
|
<literal>",myenv"</literal>, then the <literal>\begin{myenv}</literal>
|
|
environment will be folded after all other environments in the default
|
|
setting have been folded. On the other hand if
|
|
<literal>Tex_FoldedEnvironments</literal> is of the form
|
|
<literal>"myenv,"</literal>, the <literal>\begin{myenv}</literal>
|
|
environment will be folded before the rest of the environments in the
|
|
default setting.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="editing-folding">
|
|
<title>Editing the folding.vim file directly</title>
|
|
<para>
|
|
If you are using version 1.5 of &ls; or older, you will need to
|
|
directly edit the
|
|
<literal>$VIM/ftplugin/latex-suite/folding.vim</literal> file if you
|
|
wish to modify the folding scheme. You will need to modify the
|
|
function <literal>MakeTexFolds()</literal> defined in that file to
|
|
modify the fold syntax. <literal>MakeTexFolds</literal> makes a number
|
|
of calls to <literal>AddSyntaxFoldItem</literal>. Each such call
|
|
defines a new "fold item". The order in which these calls are made
|
|
defines how the folds are nested. For example, if you desire an
|
|
<literal>figure</literal> environment to be nested within a
|
|
<literal>section</literal>, then you should define the fold for the
|
|
<literal>figure</literal> first. The syntax of
|
|
<literal>AddSyntaxFoldItem</literal> is as follows:
|
|
<programlisting>AddSyntaxFoldItem(startpat, endpat, startoff, endoff [, startskip, endskip])</programlisting>
|
|
If the last two arguments are omitted, then they are assumed to default
|
|
to the empty strings <literal>''</literal>.
|
|
The explanation for each argument is as follows:
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Argument</entry>
|
|
<entry>Explanation</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>startpat</literal></entry>
|
|
<entry>a line matching this pattern defines
|
|
the beginning of a fold.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<literal>endpat</literal>
|
|
</entry>
|
|
<entry>
|
|
a line matching this pattern defines the end of a fold.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>startoff</literal></entry>
|
|
<entry>
|
|
this is the offset from the starting line at which folding will
|
|
actually start
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>endoff</literal></entry>
|
|
<entry>
|
|
like <literal>startoff</literal>, but gives the offset of the
|
|
actual fold end from the line satisfying <literal>endpat</literal>.
|
|
<literal>startoff</literal> and <literal>endoff</literal> are
|
|
necessary when the folding region does not have a specific end
|
|
pattern corresponding to a start pattern. for example in &latex;,
|
|
<literal>\section{Section Name}</literal> defines the beginning of
|
|
a section, but there is no command which specifically ends a
|
|
section. Thus a <literal>\section</literal> is assumed to end 1
|
|
line <emphasis>before</emphasis> another section starts.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<literal>startskip</literal>
|
|
</entry>
|
|
<entry>
|
|
A Pattern Which Defines The Beginning Of A "Skipped" Region.
|
|
|
|
For example, suppose we define a \itemize fold as follows:
|
|
<programlisting><literal>startpat</literal> = '^\s*\\item',
|
|
<literal>endpat</literal> = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}',
|
|
<literal>startoff</literal> = 0,
|
|
<literal>endoff</literal> = -1</programlisting>
|
|
|
|
This defines a fold which starts with a line beginning with an
|
|
<literal>\item</literal> and ending one line before a line beginning with an
|
|
<literal>\item</literal> or <literal>\end{enumerate}</literal> etc.
|
|
|
|
Then, as long as <literal>\item</literal>'s are not nested things are fine.
|
|
However, once items begin to nest, the fold started by one
|
|
<literal>\item</literal> can end because of an
|
|
<literal>\item</literal> in an <literal>\itemize</literal>
|
|
environment within this <literal>\item</literal>. i.e, the following can happen:
|
|
|
|
<programlisting>\begin{itemize}
|
|
\item Some text <------- fold will start here
|
|
This item will contain a nested item
|
|
\begin{itemize} <----- fold will end here because next line contains \item...
|
|
\item Hello
|
|
\end{itemize} <----- ... instead of here.
|
|
\item Next item of the parent itemize
|
|
\end{itemize}</programlisting>
|
|
|
|
Therefore, in order to completely define a folding item which
|
|
allows nesting, we need to also define a "skip" pattern.
|
|
<literal>startskip</literal> and end skip do that.
|
|
Leave '' when there is no nesting.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<literal>endskip</literal>
|
|
</entry>
|
|
<entry>
|
|
the pattern which defines the end of the "skip" pattern for
|
|
nested folds.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<note>
|
|
<title>Example 1</title>
|
|
<para>
|
|
A syntax fold region for the latex section is defined with the
|
|
following arguments to <literal>AddSyntaxFoldItem</literal>:
|
|
<programlisting>startpat = "\\section{"
|
|
endpat = "\\section{"
|
|
startoff = 0
|
|
endoff = -1
|
|
startskip = ''
|
|
endskip = ''</programlisting>
|
|
Note that the start and end patterns are thus the same and
|
|
<literal>endoff</literal> has a negative value to capture the effect
|
|
of a section ending one line before the next starts.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<title>Example 2</title>
|
|
<para>
|
|
A syntax fold region for the \itemize environment is:
|
|
<programlisting>startpat = '^\s*\\item',
|
|
endpat = '^\s*\\item\|^\s*\\end{\(enumerate\|itemize\|description\)}',
|
|
startoff = 0,
|
|
endoff = -1,
|
|
startskip = '^\s*\\begin{\(enumerate\|itemize\|description\)}',
|
|
endskip = '^\s*\\end{\(enumerate\|itemize\|description\)}'</programlisting>
|
|
Note the use of <literal>startskip</literal> and
|
|
<literal>endskip</literal> to allow nesting.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
</section>
|
|
<section id="latex-project">
|
|
<title>Multiple file &latex; projects</title>
|
|
<anchor id="latex-project-example" />
|
|
<para>
|
|
Many &latex; projects contain multiple source files which are
|
|
<literal>\include</literal>d from a master file. A typical example of
|
|
this situation is a directory layout such as the following
|
|
</para>
|
|
<para>
|
|
<programlisting>thesis/
|
|
main.tex
|
|
abstract.tex
|
|
intro/
|
|
intro.tex
|
|
figures/
|
|
fig1.eps
|
|
fig2.eps
|
|
chapter1/
|
|
chap1.tex
|
|
figures/
|
|
fig1.eps
|
|
conclusion/
|
|
conclusion.tex
|
|
figures/</programlisting>
|
|
</para>
|
|
<para>
|
|
In the above case, <literal>main.tex</literal> will typically look like
|
|
</para>
|
|
<para>
|
|
<programlisting>% file: main.tex
|
|
\documentclass{report}
|
|
\begin{document}
|
|
|
|
\input{abstract.tex}
|
|
\input{intro/intro.tex}
|
|
\input{chapter1/chap1.tex}
|
|
\input{conclusion/conclusion.tex}
|
|
|
|
\end{document}</programlisting>
|
|
</para>
|
|
<para>
|
|
<anchor id="latex-master-file-specification" /> In such situations, you will
|
|
need to convey to &ls; that <literal>main.tex</literal> is the main file
|
|
which <literal>\input</literal>s the other files. This is done by creating
|
|
an empty file called <literal>main.tex.latexmain</literal> in the same
|
|
directory in which <literal>main.tex</literal> resides. This file is called
|
|
the <emphasis>master file</emphasis> in this manual. See <link
|
|
linkend="Tex_MainFileExpression">Tex_MainFileExpression</link> for an
|
|
alternative way of specifying the master file.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Here <literal>main.tex.latexmain</literal> is (obviously) a different
|
|
file from <literal>main.tex</literal> itself.
|
|
<literal>main.tex</literal> need not be renamed. This ofcourse
|
|
restricts each directory to have a single master file.
|
|
</para>
|
|
</note>
|
|
<para>
|
|
Each time &ls; opens a new &latex; file, it will try to see if it is
|
|
part of a multiple file project by searching upwards (to the root of
|
|
the file-system) from the current file's directory to see if it finds a
|
|
file of the form <literal>*.latexmain</literal>. If such a file is
|
|
found, then it is considered that the current file is part of a larger
|
|
project. The name of the &latex; master file is inferred directly from
|
|
the first part of the <literal>*.latexmain</literal> file as described
|
|
in the example above.
|
|
</para>
|
|
<section id="latex-project-settings">
|
|
<title>&ls; project settings</title>
|
|
<para>
|
|
If a <link linkend="latex-master-file">master file</link> is found,
|
|
then &ls; <literal>:source</literal>s the file. Thus this file needs to
|
|
contain valid &vim; commands. This file is typically used to store
|
|
project specific settings.
|
|
</para>
|
|
<para>
|
|
Some typical per-project settings which are best put in the master file
|
|
are
|
|
<simplelist>
|
|
<member><link
|
|
linkend="Tex_ProjectSourceFiles">Tex_ProjectSourceFiles</link></member>
|
|
</simplelist>
|
|
</para>
|
|
</section>
|
|
<section id="latex-master-file">
|
|
<title>Specifying which file to compile</title>
|
|
<para>
|
|
In the example described <link
|
|
linkend="latex-project-example">previously</link>, if you are editing
|
|
<literal>intro/intro.tex</literal> and press <literal>\ll</literal>,
|
|
then you still want &ls; to compile <literal>main.tex</literal>,
|
|
because <literal>intro/intro.tex</literal> is merely a fragment which
|
|
is <literal>\input</literal>'ed into <literal>main.tex</literal>. If
|
|
the master file is already specified using the
|
|
<literal>*.latexmain</literal> convention described <link
|
|
linkend="latex-project-example">previously</link>, then &ls; will automatically
|
|
compile the master file when you are editing any of its
|
|
<literal>\input</literal>'ed fragments. Thus pressing
|
|
<literal>\ll</literal> while editing <literal>intro/intro.tex</literal>
|
|
will compile <literal>main.tex</literal>.
|
|
</para>
|
|
<anchor id="Tex_MainFileExpression" />
|
|
<para>
|
|
If you wish to use some different logic to specify the main file name,
|
|
you can specify a custom expression via the
|
|
<literal>Tex_MainFileExpression</literal> variable. This is a string
|
|
containing a valid vim expression. In addition, you can use a variable
|
|
<literal>modifier</literal> which is in the format used for
|
|
<literal>|filename-modifiers|</literal>, for example,
|
|
<literal>':p:h'</literal>. You should utilize this variable to modify
|
|
the filename of the main file.
|
|
<programlisting>let g:Tex_MainFileExpression = 'MainFile(modifier)'
|
|
function! MainFile(fmod)
|
|
if glob('*.latexmain') != ''
|
|
return fnamemodify(glob('*.latexmain'), a:fmod)
|
|
else
|
|
return ''
|
|
endif
|
|
endif</programlisting>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="latex-suite-commands-maps">
|
|
<title>&ls; Commands and Maps</title>
|
|
<para>
|
|
This section describes the maps and commands used in &ls;. It also
|
|
describes a way to change the map sequences according to your
|
|
preference.
|
|
</para>
|
|
<section id="latex-suite-maps">
|
|
<title>&ls; Maps</title>
|
|
<anchor id="remapping-latex-suite-keys" />
|
|
<para>
|
|
Most of the mappings used in &ls; can be mapped to a different key
|
|
combination to suit your particular needs. An example best explains the
|
|
procedure for doing this. Suppose you want to remap the
|
|
<literal><C-j></literal> key which &ls; (actually imaps.vim) uses
|
|
to jump to the next placeholder. To do this, you first need to find out
|
|
which <literal><Plug></literal> mapping
|
|
<literal><C-j></literal> is derived from. You will need to look
|
|
at the relevant section of this manual to do this. For example, the
|
|
section <link linkend="customize-imap-maps">IMAP mappings</link> has
|
|
the information that the <literal><C-j></literal> key is derived
|
|
from <literal><Plug>IMAP_JumpForward</literal>. Therefore to
|
|
remap the <literal><C-j></literal> key to say
|
|
<literal><C-space></literal>, you will need to put a
|
|
statement like the following in your <literal>~/.vimrc</literal>.
|
|
<programlisting>imap <C-space> <Plug>IMAP_JumpForward</programlisting>
|
|
</para>
|
|
<note>
|
|
<para>
|
|
To change the <literal>IMAP</literal> mappings which affect jumping
|
|
between placeholders, the <literal>map</literal> statement above has
|
|
to be placed in your <literal>~/.vimrc</literal>. For other mappings
|
|
you can place the <literal>map</literal> statement in your
|
|
<literal>$VIM/ftplugin/tex.vim</literal> file. The reason for this is
|
|
that the <literal><C-j></literal> maps are created in
|
|
<literal>plugin/imaps.vim</literal>, which is sourced as soon as &vim;
|
|
starts before sourcing any ftplugin files.
|
|
</para>
|
|
</note>
|
|
<section id="customize-imap-maps">
|
|
<title>IMAP mappings</title>
|
|
<para>
|
|
These mappings are utilized for jumping between placeholders as
|
|
described <link linkend="place-holders">here</link>. See the <link
|
|
linkend="latex-suite-maps">parent section</link> to find out how to
|
|
use this information to change the default maps.
|
|
</para>
|
|
<anchor id="Plug_IMAP_JumpForward" />
|
|
<anchor id="Plug_IMAP_JumpBack" />
|
|
<anchor id="Plug_IMAP_DeleteAndJumpForward" />
|
|
<anchor id="Plug_IMAP_DeleteAndJumBack" />
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Plug map</entry>
|
|
<entry>Default Key</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal><Plug>IMAP_JumpForward</literal></entry>
|
|
<entry><literal><C-j></literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal><Plug>IMAP_JumpBack</literal></entry>
|
|
<entry>(none)</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal><Plug>IMAP_DeleteAndJumpForward</literal></entry>
|
|
<entry>(none)</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal><Plug>IMAP_DeleteAndJumpBack</literal></entry>
|
|
<entry>(none)</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
<literal><Plug>IMAP_JumpForward</literal> takes you to the
|
|
location of the next <link
|
|
linkend="place-holders">place-holder</link>.
|
|
</para>
|
|
<para>
|
|
<literal><Plug>IMAP_JumpBack</literal> takes you to the previous
|
|
<link linkend="place-holders">place-holder</link>.
|
|
</para>
|
|
<para>
|
|
<literal><Plug>IMAP_DeleteAndJumpForward</literal> deletes the
|
|
presently selected place-holder and jumps to the next place-holder
|
|
irrespective of whether the present placeholder is empty or not and
|
|
ignoring the value of place-holder settings like <link
|
|
linkend="Imap_DeleteEmptyPlaceHolders"><literal>g:Imap_DeleteEmptyPlaceHolders</literal></link>
|
|
and <link
|
|
linkend="Imap_StickyPlaceHolders"><literal>g:Imap_StickyPlaceHolders</literal></link>
|
|
</para>
|
|
<para>
|
|
<literal><Plug>IMAP_DeleteAndJumpBack</literal> deletes the
|
|
presently selected place-holder and jumps to the previous place-holder
|
|
irrespective of whether the present placeholder is empty or not and
|
|
ignoring the value of place-holder settings like <link
|
|
linkend="Imap_DeleteEmptyPlaceHolders"><literal>g:Imap_DeleteEmptyPlaceHolders</literal></link>
|
|
and <link
|
|
linkend="Imap_StickyPlaceHolders"><literal>g:Imap_StickyPlaceHolders</literal></link>
|
|
</para>
|
|
</section>
|
|
<section id="customize-alt-key-maps">
|
|
<title>Alt-Key mappings</title>
|
|
<para>
|
|
These mappings are are described in the section <link
|
|
linkend="altkey-mappings">Alt key macros</link>. See <link
|
|
linkend="remapping-latex-suite-keys">the parent section</link> to see
|
|
how to use the following information to remap keys.
|
|
</para>
|
|
<anchor id="Plug_Tex_MathBF" />
|
|
<anchor id="Plug_Tex_MathCal" />
|
|
<anchor id="Plug_Tex_LeftRight" />
|
|
<anchor id="Plug_Tex_InsertItemOnThisLine" />
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Plug Mapping</entry>
|
|
<entry>Default Key</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal><Plug>Tex_MathBF</literal></entry>
|
|
<entry><literal><Alt-B></literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal><Plug>Tex_MathCal</literal></entry>
|
|
<entry><literal><Alt-C></literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal><Plug>Tex_LeftRight</literal></entry>
|
|
<entry><literal><Alt-L></literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal><Plug>Tex_InsertItemOnThisLine</literal></entry>
|
|
<entry><literal><Alt-I></literal></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
</section>
|
|
<section id="latex-suite-commands">
|
|
<title>Latex Suite Commands</title>
|
|
<section id="TMacro">
|
|
<title>:TMacro [{macro}]</title>
|
|
<para>
|
|
When used without any arguments lists all available macros defined
|
|
in runtime ftplugin/latex-suite/macros/ directories and prompts you
|
|
to choose one of them. With one argument |:read| this macro under
|
|
cursor position. With more than one argument it will not work :) In
|
|
Vim >= 6.2 works completion of names of macros (see 'wildmenu',
|
|
'wildmode' for more about command-line completion).
|
|
</para>
|
|
</section>
|
|
<section id="TMacroEdit">
|
|
<title>:TMacroEdit [{macro}]</title>
|
|
<para>
|
|
Splits window for editing {macro}. When used without any arguments
|
|
lists all available macros defined in runtime
|
|
ftplugin/latex-suite/macros/ directories and prompt you to choose
|
|
one of them. When you try to edit {macro} not from local directory
|
|
&ls; will copy it to your local directory with suffix
|
|
"-local". If local copy already exists &ls; prompt for
|
|
overwriting it. In Vim >= 6.2 works completion of names of macros
|
|
(see 'wildmenu', 'wildmode' for more about command-line completion).
|
|
</para>
|
|
</section>
|
|
<section id="TMacroNew">
|
|
<title>:TMacroNew</title>
|
|
<para>
|
|
Splits window to write new macro. Directory in new buffer is
|
|
locally changed to &ls;/macros/.
|
|
</para>
|
|
</section>
|
|
<section id="TMacroDelete">
|
|
<title>:TMacroDelete [{macro}]</title>
|
|
<para>
|
|
Delets {macro} from your local ftplugin/latex-suite/macros/
|
|
directory. When used without any arguments lists all available
|
|
macros defined in &ls;/macros/ directory and prompt you to
|
|
choose one of them. When you choose to delete {macro} which is not
|
|
in your local directory &ls; will refuse to delete it. In
|
|
Vim >= 6.2 works completion of names of macros (see 'wildmenu',
|
|
'wildmode' for more about command-line completion)
|
|
</para>
|
|
</section>
|
|
<section id="TPackage">
|
|
<title>:TPackage [{package, ...}]</title>
|
|
<para>
|
|
When used without any arguments lists name of the packages for
|
|
which support is available. If you are using &vim; GUI and have
|
|
<literal>Tex_Menus</literal> set to 1, then it will list all files
|
|
found in the <literal>$VIM/ftplugin/latex-suite/packages</literal>
|
|
directory. Otherwise, &ls; will list files found in the
|
|
<literal>$VIM/ftplugin/latex-suite/dictionaries</literal> directory.
|
|
Choosing a file from the list will insert a
|
|
<programlisting>\usepackage[&ph;]{<packname>}</programlisting> line into the
|
|
buffer at the current cursor location. For &vim; 6.2 and above, you
|
|
can use command-line completion to choose a package file. You can also
|
|
call <literal>TPackage</literal> with one or more package names
|
|
separated with spaces in which case, &ls; will insert
|
|
<literal>\usepackage</literal> lines for each of them in turn.
|
|
</para>
|
|
<para>
|
|
After inserting the <literal>\usepackage</literal> line(s), &ls; will
|
|
support it (them) in various ways as described in the section <link
|
|
linkend="package-actions">Actions taken for supported
|
|
packages</link>.
|
|
</para>
|
|
</section>
|
|
<section id="TPackageUpdate">
|
|
<title>:TPackageUpdate</title>
|
|
<para>
|
|
This command `reads' name of package under cursor and turns on
|
|
possible support.
|
|
</para>
|
|
</section>
|
|
<section id="TPackageUpdateAll">
|
|
<title>:TPackageUpdateAll</title>
|
|
<para>
|
|
After issuing this command latexSuite scans the file in
|
|
looking for not declared packages, removing not needed entries
|
|
from Packages menu and turning off not necessary packages'
|
|
dictionaries.
|
|
</para>
|
|
</section>
|
|
<section id="TTemplate">
|
|
<title>:TTemplate [{template}]</title>
|
|
<para>
|
|
When used without any arguments lists all available templates
|
|
from latex-suite/templates/ directory and prompts to choose
|
|
one of them.
|
|
With one argument :0|read| {template} file.
|
|
With more than one argument it will not work :)
|
|
In Vim >= 6.2 works completion of names of macros (see 'wildmenu',
|
|
'wildmode' for more about command-line completion)
|
|
</para>
|
|
</section>
|
|
<section id="TSection">
|
|
<title>:TSection [{argument}]</title>
|
|
<para>
|
|
Used without any arguments inserts last section type
|
|
(|latex-sectioning|).
|
|
Accepts arguments:
|
|
n> inserts section name in <n> logical level.
|
|
Levels are:
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>0</entry><entry>part</entry></row>
|
|
<row><entry>1</entry><entry>chapter</entry></row>
|
|
<row><entry>2</entry><entry>section</entry></row>
|
|
<row><entry>3</entry><entry>subsection</entry></row>
|
|
<row><entry>4</entry><entry>subsubsection</entry></row>
|
|
<row><entry>5</entry><entry>paragraph</entry></row>
|
|
<row><entry>6</entry><entry>subparagraph</entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row>
|
|
<entry>
|
|
+<n>
|
|
</entry>
|
|
<entry>
|
|
inserts section name <n> logical levels above the last
|
|
used comand
|
|
</entry>
|
|
</row><row>
|
|
<entry>
|
|
-<n>
|
|
</entry>
|
|
<entry>
|
|
inserts section name <n> logical levels below the last
|
|
used comand
|
|
</entry>
|
|
</row><row>
|
|
<entry>
|
|
+
|
|
</entry>
|
|
<entry>
|
|
inserts section name one logical level below the last
|
|
used command (equal to +1).
|
|
</entry>
|
|
</row><row>
|
|
<entry>
|
|
++
|
|
</entry>
|
|
<entry>
|
|
inserts section name two logical levels below the last
|
|
used command (equal to +2).
|
|
</entry>
|
|
</row><row>
|
|
<entry>
|
|
-
|
|
</entry>
|
|
<entry>
|
|
inserts section name one logical level over the last
|
|
used command (equal to -1).
|
|
</entry>
|
|
</row><row>
|
|
<entry>
|
|
--
|
|
</entry>
|
|
<entry>
|
|
inserts section name two logical levels over the last
|
|
used command (equal to -2).
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
Command accepts also latexSuite mappings (|latex-macros|)
|
|
without preceding S and in lowercase:
|
|
<programlisting>:TSection pa</programlisting>
|
|
will result in <literal>\part{}</literal>. It is possible to use full names of
|
|
sections: <literal>:TSection part</literal>
|
|
</para>
|
|
</section>
|
|
<section id="TSectionAdvanced">
|
|
<title>:TSectionAdvanced</title>
|
|
<para>
|
|
Accepts the same arguments as |TSection| but leads to a couple
|
|
of questions (whether you want to include the section in the
|
|
table of contents, whether there is a shorter name for the
|
|
table of contents) and then creates a more intelligent
|
|
template.
|
|
</para>
|
|
</section>
|
|
<section id="TLook">
|
|
<title>:TLook</title>
|
|
<para>
|
|
Accepts one argument. Will look through .tex files in
|
|
directory of edited file for argument. It can be regexp. You
|
|
don't have to enclose argument in "". <cr> takes you to
|
|
location. Other keys work as described in |latex-viewer|.
|
|
Note: TLook uses :grep command and is using 'grepprg'. Its
|
|
regular expressions can be different from those of Vim.
|
|
</para>
|
|
</section>
|
|
<section id="TLookBib">
|
|
<title>:TLookBib</title>
|
|
<para>
|
|
Accepts one argument. Will look through .bib files in
|
|
directory of edited file for argument. It can be regexp. You
|
|
don't have to enclose argument in "". <cr> takes you to
|
|
location. Other keys work as described in |latex-viewer|.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
TLookBib uses :grep command and is using 'grepprg'. Its
|
|
regular expressions can be different from those of Vim.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="TLookAll">
|
|
<title>:TLookAll</title>
|
|
<para>
|
|
Accepts one argument. Will look through all files in directory
|
|
of edited file for argument. It can be regexp. You don't have
|
|
to enclose argument in "". <cr> takes you to location. Other
|
|
keys work as described in |latex-viewer|.
|
|
Note: TLook uses :grep command and is using 'grepprg'. Its
|
|
regular expressions can be different from those of Vim.
|
|
</para>
|
|
</section>
|
|
<section id="TPartComp">
|
|
<title>:TPartComp</title>
|
|
<para>
|
|
No argument allowed but accepts range in all formats. Define
|
|
fragment of interest with :'a,'b, :/a/,/b/, :'<,'> or :20,30.
|
|
All other rules of compilation apply.
|
|
</para>
|
|
</section>
|
|
<section id="TPartView">
|
|
<title>:TPartView</title>
|
|
<para>
|
|
Show last compiled fragment. All rules of viewing apply but
|
|
|latex-searching|.
|
|
</para>
|
|
</section>
|
|
<section id="Tshortcuts">
|
|
<title>:Tshortcuts [{arg}]</title>
|
|
<para>
|
|
Show shortcuts in terminal (not using menu). Without {arg}
|
|
you will see simple menu prompting for one of them. Possible
|
|
arguments:
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>g</entry><entry>General shortcuts</entry></row>
|
|
<row><entry>e</entry><entry>Environment shortcuts</entry></row>
|
|
<row><entry>f</entry><entry>Font shortcuts</entry></row>
|
|
<row><entry>s</entry><entry>Section shortcuts</entry></row>
|
|
<row><entry>m</entry><entry>Math shortcuts</entry></row>
|
|
<row><entry>a</entry><entry>All shortcuts</entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-latex-suite">
|
|
<title>Customizing &ls;</title>
|
|
<para>
|
|
Customizing &ls; is done by defining certain global variables in
|
|
<literal>$VIM/ftplugin/tex.vim</literal>, where
|
|
<literal>$VIM</literal> corresponds to <literal>~/.vim</literal> for *nix
|
|
machines and <literal>~/vimfiles</literal> for windows machines. This file
|
|
is not part of the &ls; distribution. You will need to create this file
|
|
yourself (or modify it if it exists) if
|
|
you need to change any default settings. Since this file is not
|
|
included as part of the &ls; distribution, it will not be over-written in
|
|
subsequent updates.
|
|
</para>
|
|
<para>
|
|
The default settings in &ls; are defined in
|
|
<literal>$VIM/ftplugin/latex-suite/texrc</literal>. Please take a look at
|
|
this file if you find this documentation incomplete or confusing. That file
|
|
is also well documented.
|
|
</para>
|
|
<para>
|
|
This chapter describes the various settings which effect &ls; and their
|
|
default values. The settings are broken up into sections according to the
|
|
behavior which they influence.
|
|
</para>
|
|
<section id="ls-general-purpose-settings">
|
|
<title>General Settings</title>
|
|
<section id="Tex_Debug">
|
|
<title>Tex_Debug</title>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>0</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
If set to 1, then &ls; will create certain global debug
|
|
statements which can be printed by doing
|
|
<programlisting>:call Tex_PrintDebug()</programlisting>
|
|
</para>
|
|
</para>
|
|
</section>
|
|
<section id="Tex_UsePython">
|
|
<title>Tex_UsePython</title>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
If &ls; detects that your vim is python enabled (using
|
|
<literal>has('python')</literal>), then it tries to use python in
|
|
certain places to speed things up. If this misbehaves, you can set
|
|
this to zero, in which case, &ls; will use vimscript to accomplish
|
|
the same.
|
|
</para>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-place-holders">
|
|
<title>Place-Holder Customization</title>
|
|
<para>
|
|
&ls; uses <link linkend="place-holders">place-holders</link> to minimize
|
|
using the movement keys while typing. The following settings affect how
|
|
place-holders are used.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
These setting need to be set in your <literal>~/.vimrc</literal>, not
|
|
<literal>$VIM/ftplugin/tex.vim</literal> because these settings affect
|
|
the behavior of <literal>imaps.vim</literal>, which is a global plugin,
|
|
not a file-type plugin.
|
|
</para>
|
|
</note>
|
|
<section id="Imap_UsePlaceHolders">
|
|
<title>g:Imap_UsePlaceHolders</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Setting this to zero completely disables using place-holders.
|
|
</para>
|
|
</section>
|
|
<section id="Imap_PlaceHolderStart">
|
|
<anchor id="Imap_PlaceHolderEnd"></anchor>
|
|
<title>g:Imap_PlaceHolderStart & g:Imap_PlaceHolderEnd</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Setting</entry>
|
|
<entry>Type</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>Imap_PlaceHolderStart</literal></entry>
|
|
<entry>String</entry>
|
|
<entry><literal>'<+'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>Imap_PlaceHolderEnd</literal></entry>
|
|
<entry>String</entry>
|
|
<entry><literal>'+>'</literal></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
These settings affect the strings displayed at the beginning and end of
|
|
the place-holder string. Set these strings to a value different than a
|
|
commonly occurring sequence of characters.
|
|
</para>
|
|
<note>
|
|
<title>TIP</title>
|
|
<para>
|
|
If you use the <literal>latin1</literal> encoding and do not type in
|
|
french, then you can set these strings to the <literal>\xab</literal>
|
|
and <literal>\xbb</literal> characters (the french quotation marks).
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="Imap_DeleteEmptyPlaceHolders">
|
|
<title>g:Imap_DeleteEmptyPlaceHolders</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
When set to one, non-descriptive or empty place-holders are deleted on
|
|
pressing <literal><Ctrl-J></literal>.
|
|
</para>
|
|
</section>
|
|
<section id="Imap_StickyPlaceHolders">
|
|
<title>g:Imap_StickyPlaceHolders</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
When set to 1, in visual mode, <literal><Ctrl-J></literal> takes
|
|
you to the next placeholder without deleting the current placeholder.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-macros">
|
|
<title>Macro Customization</title>
|
|
<section id="Tex_Env_name">
|
|
<title>Tex_Env_name</title>
|
|
<para>
|
|
If you wish to wish to expand certain environments differently from
|
|
the way &ls; does it, you can define custom expansions using global
|
|
variables of the form <literal>Tex_Env_{name}</literal> where
|
|
<literal>name</literal> corresponds to the environment.
|
|
</para>
|
|
<para>
|
|
For example, if you press <literal><F5></literal> after typing
|
|
<literal>theorem</literal>, &ls; will by default expand it to
|
|
<programlisting>\begin{theorem}
|
|
\label{&ph;}&ph;
|
|
\end{theorem}&ph;</programlisting>
|
|
However, if you wish change this to
|
|
<programlisting>\begin{theorem}
|
|
&ph;
|
|
\end{theorem}&ph;</programlisting>
|
|
then define the following variable
|
|
<programlisting>let g:Tex_Env_theorem = "\\begin{theorem}\<CR>&ph;\<CR>\\end{theorem}"</programlisting>
|
|
</para>
|
|
<para>
|
|
If the expansion uses special keys such as carriage return etc, then
|
|
use double-quotes and use the <literal>"\<key>"</literal>
|
|
notation for special keys. Backslashes have to be doubled.
|
|
</para>
|
|
<para>
|
|
You could even use strings returned by functions as the expansion by
|
|
using the <link
|
|
linkend="IMAP_PutTextWithMovement">IMAP_PutTextWithMovement()</link>
|
|
function.
|
|
</para>
|
|
<para>
|
|
If the name of the environment contains special characters (for
|
|
example, the <literal>eqnarray*</literal> environment), then use the
|
|
following form:
|
|
<programlisting>let g:Tex_Env_{'eqnarray*'} =
|
|
\ "\\begin{eqnarray*}\<CR>&ph; &=& &ph;\<CR>\\end{eqnarray*}&ph;"</programlisting>
|
|
This will make pressing <literal><F5></literal> after
|
|
<literal>eqnarray*</literal> expand to
|
|
<programlisting>\begin{eqnarray*}
|
|
&ph; &=& &ph;
|
|
\end{eqnarray*}&ph;</programlisting>
|
|
</para>
|
|
</section>
|
|
<section id="Tex_Com_name">
|
|
<title>Tex_Com_name</title>
|
|
<para>
|
|
If you wish to define new expansions for fast command insertion as
|
|
described <link linkend="latex-command-maps">here</link>, or redefine
|
|
expansions from the default values in &ls;, you will need to define
|
|
variables of the form <literal>g:Tex_Com_{name}</literal> where
|
|
<literal>name</literal> is a command name. For example, with the
|
|
setting
|
|
<programlisting>let g:Tex_Com_frac = "\\frac{&ph;}{&ph;}&ph;"</programlisting>
|
|
pressing <literal><F7></literal> after typing
|
|
<literal>frac</literal> will change it to <literal>\frac{&ph;}{&ph;}&ph;</literal>
|
|
</para>
|
|
<para>
|
|
See <link linkend="Tex_Env_name">Tex_Env_name</link> for additional
|
|
details on how to create this setting in various special
|
|
circumstances.
|
|
</para>
|
|
</section>
|
|
<section id="macro-enabling">
|
|
<title>Enabling / disabling macros</title>
|
|
<para>
|
|
The following variables disable various parts of the macro functionality
|
|
of &ls;. See the links to the relevant sections to see what functionality
|
|
setting each of the variables to zero will take away.
|
|
</para>
|
|
<anchor id="Tex_EnvironmentMaps" />
|
|
<anchor id="Tex_EnvironmentMenus" />
|
|
<anchor id="Tex_FontMaps" />
|
|
<anchor id="Tex_FontMenus" />
|
|
<anchor id="Tex_SectionMaps" />
|
|
<anchor id="Tex_SectionMenus" />
|
|
<informaltable frame="all">
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row><entry>Setting</entry><entry>Link to relevant section</entry><entry>Default Value</entry></row>
|
|
</thead>
|
|
<tbody>
|
|
<row><entry><literal>g:Tex_EnvironmentMaps
|
|
</literal></entry><entry><link linkend="environment-mappings">Environment Mappings</link></entry><entry>1</entry></row>
|
|
<row><entry><literal>g:Tex_EnvironmentMenus</literal></entry><entry></entry><entry>1</entry></row>
|
|
<row><entry><literal>g:Tex_FontMaps </literal></entry><entry><link linkend="font-maps">Font Mappings</link></entry><entry>1</entry></row>
|
|
<row><entry><literal>g:Tex_FontMenus </literal></entry><entry></entry><entry>1</entry></row>
|
|
<row><entry><literal>g:Tex_SectionMaps </literal></entry><entry><link linkend="section-mappings">Section Mappings</link></entry><entry>1</entry></row>
|
|
<row><entry><literal>g:Tex_SectionMenus </literal></entry><entry></entry><entry>1</entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
<section id="Tex_UseMenuWizard">
|
|
<title>g:Tex_UseMenuWizard</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>0</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
If this variable is set to 1, then when an environment is chosen from the
|
|
menu then for selected environments, &ls; asks a series of
|
|
questions on the command line and inserts a template with the
|
|
corresponding fields already filled in. Setting this to zero will insert
|
|
a template with <link linkend="place-holders">place-holders</link>
|
|
marking off the places where fields need to be filled.
|
|
</para>
|
|
</section>
|
|
<section id="Imap_FreezeImap">
|
|
<title>g:Imap_FreezeImap</title>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>0</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This option when set to 1, temporarily freezes &ls;'s macro
|
|
expansion. It might be useful when you are using some other keymap
|
|
which is causing excessive macro expansion. Use a buffer-local
|
|
variable of the same name if you wish to affect just the present
|
|
buffer.
|
|
</para>
|
|
</para>
|
|
</section>
|
|
<section id="Tex_CatchVisMapErrors">
|
|
<title>g:Tex_CatchVisMapErrors</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
With so many visual maps, its helpful to have a way of catching typing
|
|
errors made in visual mode. What this does is to prompt you to correct
|
|
your visual mode mapping if you start out with <literal><link
|
|
linkend="Tex_Leader">g:Tex_Leader</link></literal> and then type some
|
|
illegal keys. It basically maps just the <literal>g:Tex_Leader</literal>
|
|
character to a function.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_Diacritics">
|
|
<title>g:Tex_Diacritics</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry> <entry><literal>0</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Whether or not you want to use <link
|
|
linkend="diacritic-mappings">diacritics</link>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_Leader">
|
|
<title>g:Tex_Leader</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>'`'</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
The mappings in &ls; are by default prefixed with the back-tick
|
|
character. For example, <literal>`/</literal> inserts
|
|
<literal>\frac{&ph;}{&ph;}&ph;</literal> etc. You can change the
|
|
prefix with the following setting.
|
|
<literal>','</literal>, <literal>'/'</literal>,
|
|
<literal>'`'</literal> are preferred values. <literal>''</literal> or
|
|
<literal>'\'</literal> will lead to a <emphasis>lot</emphasis> of
|
|
trouble.
|
|
</para>
|
|
<para>
|
|
g:Tex_Leader is also used for visual mode mappings for fonts.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_Leader2">
|
|
<title>g:Tex_Leader2</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>','</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
In order to avoid clashes between the large number of visual mode macros
|
|
provided, the <link linkend="enclosing-env-threeletter">visual mode
|
|
macros for environments</link> and sections start with a character
|
|
different from <literal>g:Tex_Leader</literal>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_PromptedEnvironments">
|
|
<title>g:Tex_PromptedEnvironments</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry> <entry><literal>'eqnarray*,eqnarray,equation,equation*,\[,$$,align,align*'</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This string represents a comma separated list of fields corresponding to
|
|
environments. Pressing <literal><F5></literal> in insert-mode in
|
|
the body of the document asks you to choose from one of these
|
|
environments to insert.
|
|
</para>
|
|
<para>
|
|
Leaving this string empty will leave the <literal><F5></literal>
|
|
key unmapped
|
|
</para>
|
|
</section>
|
|
<section id="Tex_HotKeyMappings">
|
|
<title>g:Tex_HotKeyMappings</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>'eqnarray*,eqnarray,bmatrix'</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This string represents a comma separated list of environments which are
|
|
mapped to <literal><Shift-F-1></literal> through
|
|
<literal><Shift-F-4></literal>. For example, pressing
|
|
<literal><Shift-F-2></literal> with this setting inserts the
|
|
<literal>eqnarray</literal> environment.
|
|
</para>
|
|
<para>
|
|
Leaving this string empty will leave <literal><Shift-F-1></literal> through
|
|
<literal><Shift-F-4></literal> unmapped.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Only the first four fields of this list are used. The rest are silently
|
|
ignored.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="Tex_PromptedCommands">
|
|
<title>g:Tex_PromptedCommands</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry>
|
|
<literal>'footnote,cite,pageref,label'</literal>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This string represents a comma separated list of &latex; commands
|
|
which &ls; uses for the <literal><F7></literal> and
|
|
<literal><S-F7></literal> maps as described <link
|
|
linkend="latex-command-maps">here</link>.
|
|
</para>
|
|
<para>
|
|
Leaving this string empty will leave the <literal><F7></literal>
|
|
key unmapped.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_ItemStyle_environment">
|
|
<title>Tex_ItemStyle_environment</title>
|
|
<para>
|
|
This setting affects the style which &ls; uses to insert an
|
|
<literal>\item</literal> when <literal><Alt-I></literal> is
|
|
pressed as described <link linkend="Alt-I">here</link>. By default
|
|
&ls; defines styles for the following environments:
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Environment</entry>
|
|
<entry>Style</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row><entry>itemize</entry><entry>\item </entry></row>
|
|
<row><entry>enumerate</entry><entry>\item </entry></row>
|
|
<row><entry>theindex</entry><entry>\item </entry></row>
|
|
<row><entry>thebibliography</entry><entry>\item[<+biblabel+>]{<+bibkey+>} <++></entry></row>
|
|
<row><entry>description</entry><entry>\item[<+label+>] <++></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Each style is defined by a variable of the form
|
|
<literal>g:Tex_ItemStyle_{envname}</literal> where
|
|
<literal>envname</literal> is the name of the environment for which
|
|
the style is defined. For example, by default
|
|
<programlisting>g:Tex_ItemStyle_description = '\item[<+label+>] <++>'</programlisting>
|
|
Redefining the style for a particular environment or defining a style
|
|
for an entirely new environment is simply a matter of setting the
|
|
value of a variable of the corresponding name.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-smart-keys">
|
|
<title>Smart Key Customization</title>
|
|
<para>
|
|
These settings affect the smart key functionality as described <link
|
|
linkend="smart-keys">here</link>.
|
|
</para>
|
|
<section id="Tex_SmartKeyBS">
|
|
<title>g:Tex_SmartKeyBS</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Whether or not <literal><Backspace></literal> deletes diacritics.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_SmartKeyQuote">
|
|
<title>g:Tex_SmartKeyQuote</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Whether or not the <link linkend="smart-keys">smart quotes</link>
|
|
functionality is available.
|
|
</para>
|
|
<para>
|
|
If enabled, the quote characters can be customized by setting the
|
|
following variables:
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Setting</entry>
|
|
<entry>Value</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>g:Tex_SmartQuoteOpen</literal></entry>
|
|
<entry><literal>"``"</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_SmartQuoteClose</literal></entry>
|
|
<entry><literal>"''"</literal></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Non-English users will want to change these settings to their locale.
|
|
These global variables will be ignored if there are buffer-local
|
|
variables (with the same name), which may be set in the language specific
|
|
package files, such as
|
|
<literal>$VIM/ftplugin/latex-suite/packages/german</literal>.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-latex-completion">
|
|
<title>Latex Completion Customization</title>
|
|
<para>
|
|
The following settings affect the <link linkend="latex-completion">
|
|
completion</link> functionality in &ls;.
|
|
</para>
|
|
<section id="completion-window-preferences">
|
|
<title>Window size settings</title>
|
|
<para>
|
|
These three settings affect the aesthetics of the completion
|
|
functionality.
|
|
</para>
|
|
<anchor id="Tex_ViewerCwindowHeight" />
|
|
<anchor id="Tex_ViewerPreviewHeight" />
|
|
<anchor id="Tex_ExplorerHeight" />
|
|
<anchor id="Tex_ImageDir" />
|
|
<informaltable frame="all">
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Setting</entry>
|
|
<entry>Explanation</entry>
|
|
<entry>Default Value</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>g:Tex_ViewerCwindowHeight</literal></entry>
|
|
<entry>The height of the <literal>cwindow</literal> which displays the
|
|
list of <literal>\label</literal>s etc.</entry>
|
|
<entry>5</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_ViewerPreviewHeight</literal></entry>
|
|
<entry>The height of the preview window which shows the context of a
|
|
<literal>\label</literal> etc.</entry>
|
|
<entry>10 </entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_ExplorerHeight</literal></entry>
|
|
<entry>The height of the explorer window which lists the files from
|
|
which to choose an image file.</entry>
|
|
<entry>10</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_ImageDir</literal></entry>
|
|
<entry>The directory to scan for images</entry>
|
|
<entry>''</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</section>
|
|
<section id="Tex_BIBINPUTS">
|
|
<title>g:Tex_BIBINPUTS</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>string</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>''</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This string describes the directories which are scanned while trying
|
|
to search for <literal>.bib</literal> and <literal>.bbl</literal>
|
|
files. See the <link linkend="latex-completion-cite">cite completion
|
|
section</link> for more details.
|
|
</para>
|
|
<para>
|
|
This string should be set in the syntax accepted by &vim;'s native
|
|
<literal>'path'</literal> setting. Do not include the present
|
|
directory <literal>'.'</literal>. While searching for
|
|
<literal>bibliography</literal> files, the present directory will be
|
|
prepended to this variable.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_UseSimpleLabelSearch">
|
|
<title>Tex_UseSimpleLabelSearch</title>
|
|
<para>
|
|
When set to 1, &ls; searches for <literal>\label</literal>s in all
|
|
<literal>.tex</literal> files in the directory containing the file
|
|
being edited when <F9> is pressed. See <link
|
|
linkend="ls-completion-ref">\ref completion</link> for details.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_ProjectSourceFiles">
|
|
<title>g:Tex_ProjectSourceFiles</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>''</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This setting is meant to be initialized on a per-project basis using
|
|
the <link linkend="latex-master-file">&ls; master file</link> as
|
|
described in <link linkend="latex-project">&ls; Project</link>
|
|
section. It is a list of source files which are used in the project.
|
|
If defined, then instead of using the logic described in
|
|
<link
|
|
linkend="Tex_UseSimpleLabelSearch">Tex_UseSimpleLabelSearch</link> to
|
|
search for files in which to search for <literal>\label</literal>s, we
|
|
simply search for <literal>\label</literal>s in this list. This
|
|
significantly reduces the time it takes to generate the list of
|
|
possible completions for large projects.
|
|
</para>
|
|
<para>
|
|
The list is specified as a whitespace separated list of filenames
|
|
relative to the location of the main file.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_RememberCiteSearch">
|
|
<title>g:Tex_RememberCiteSearch</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>0</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
When this variable is non-zero, then &ls; will try to remember results
|
|
from the <literal>\cite</literal> completion as described in <link
|
|
linkend="cite-search-caching">this section</link>.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-compiling">
|
|
<title>Compiler Customization</title>
|
|
<para>
|
|
The following settings affect &ls;'s compilation functionality
|
|
</para>
|
|
<section id="Tex_DefaultTargetFormat">
|
|
<title>g:Tex_DefaultTargetFormat</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>dvi</literal> for windows/*nix and
|
|
<literal>pdf</literal> for mac</entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Use this setting to choose the default target format. For example,
|
|
setting this to <literal>pdf</literal> makes &ls; compile a pdf file
|
|
when you press <literal>\ll</literal> and fire up the
|
|
<literal>pdf</literal> viewer on pressing <literal>\lv</literal>. Make
|
|
sure that a rules for compiling and viewing have been defined for this
|
|
target format as described <link
|
|
linkend="Tex_CompileRule_format">here</link> and <link
|
|
linkend="Tex_ViewRule_format">here</link>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_CompileRule_format">
|
|
<title>g:Tex_CompileRule_<format></title>
|
|
<para>
|
|
Here <literal><format></literal> refers to the target format for
|
|
which this rule is defined. &ls; supports compiling into
|
|
<literal>dvi</literal>, <literal>ps</literal> and <literal>pdf</literal>
|
|
by default. All these rules are strings defined by default as follows:
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>g:Tex_CompileRule_dvi</literal></entry>
|
|
<entry><literal>'latex -interaction=nonstopmode $*'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_CompileRule_ps</literal></entry>
|
|
<entry><literal>'ps2pdf $*'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_CompileRule_pdf</literal></entry>
|
|
<entry><literal>'pdflatex -interaction=nonstopmode $*'</literal></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
If you desire forward and inverse searching via &ls;, you will need to
|
|
change <literal>g:Tex_CompileRule_dvi</literal> to include
|
|
<literal>-src-specials</literal>. However, this has been known to cause
|
|
problems with the output file. Therefore, use this with care.
|
|
</para>
|
|
</section>
|
|
<section fd="Tex_FormatDependency_format">
|
|
<title>g:Tex_FormatDependency_<format></title>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>string</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>''</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
By default, there are no format dependencies defined. Each definition
|
|
is of the form above where <literal><format></literal> is a
|
|
string such as <literal>'dvi'</literal> etc.
|
|
</para>
|
|
<para>
|
|
The value of each string is a comma separated string such as 'dvi,ps'.
|
|
See the <link linkend="compiler-dependency">Compiler dependency</link>
|
|
section to see how to use/specify this setting
|
|
</para>
|
|
</section>
|
|
<section id="Tex_MultipleCompileFormats">
|
|
<title>g:Tex_MultipleCompileFormats</title>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>string</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>'dvi'</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
<para>
|
|
This is a comma separated string of formats for which the compiler
|
|
needs to be called multiple times in order to get cross-references,
|
|
citations etc right. See the <link
|
|
linkend="compiling-multiple">Compiling multiple times</link> section
|
|
for details.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_IgnoredWarnings">
|
|
<title>g:Tex_IgnoredWarnings</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>a new-line separated list of patterns as described
|
|
below</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
The default value of this setting is
|
|
<programlisting>\"Underfull\n".
|
|
\"Overfull\n".
|
|
\"specifier changed to\n".
|
|
\"You have requested\n".
|
|
\"Missing number, treated as zero.\n".
|
|
\"There were undefined references\n"
|
|
\"Citation %.%# undefined"</programlisting>
|
|
This setting defines a set of patterns which will be filtered out when
|
|
displaying the output from the latex compiler. This is to aid in
|
|
filtering out very common warnings/errors.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Remember to check the value of <link
|
|
linkend="Tex_IgnoreLevel"><literal>g:Tex_IgnoreLevel</literal></link>
|
|
when you change this setting. For example, if you append a new pattern
|
|
which you would like to ignore by default, increase the value of
|
|
<literal>g:Tex_IgnoreLevel</literal>.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="Tex_IgnoreLevel">
|
|
<title>g:Tex_IgnoreLevel</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Integer</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>7</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This setting defines a "filter level" or an "ignore level". A value of 7
|
|
for instance means that any warning/error matching with any of the first
|
|
7 fields of <link
|
|
linkend="Tex_IgnoredWarnings"><literal>g:Tex_IgnoredWarnings</literal></link>
|
|
will be ignored. Setting this value to zero will mean that no
|
|
error/warning is ignored. However, even with a value of zero, &ls; will
|
|
filter out most of the text which a &latex; compiler typically produces.
|
|
Use
|
|
<programlisting>TCLevel strict</programlisting>
|
|
from within &vim; in order to see all the lines from the compiler's
|
|
output.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_UseMakefile">
|
|
<title>g:Tex_UseMakefile</title>
|
|
<para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
When set to 1, then if a <literal>makefile</literal> or
|
|
<literal>Makefile</literal> is present in the current directory, then
|
|
&ls; sets the <literal>makeprg</literal> option to just
|
|
<literal>"make <target>"</literal>, where
|
|
<literal><target></literal> is the target format chosen using
|
|
the <literal>TCTarget</literal> or <literal>TTarget</literal>
|
|
commands.
|
|
</para>
|
|
<para>
|
|
When set to 0, then &ls; will set the <literal>makeprg</literal>
|
|
setting to whatever is defined by the <link
|
|
linkend="Tex_CompileRule_format">g:Tex_CompileRule_target</link>
|
|
setting.
|
|
</para>
|
|
</para>
|
|
</section>
|
|
<section id="Tex_GotoError">
|
|
<title>g:Tex_GotoError</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
If set to 1, then pressing <literal>\ll</literal> will take you to
|
|
the location of the first warning/error, otherwise you will remain in
|
|
the original location but the errors/warnings will be listed in the
|
|
preview window.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-viewing">
|
|
<title>Viewer Customization</title>
|
|
<para>
|
|
The following settings affect how &ls; will display compiled files.
|
|
</para>
|
|
<section id="Tex_ViewRule_format">
|
|
<title>g:Tex_ViewRule_<format></title>
|
|
<para>
|
|
Here <literal><format></literal> refers to a format such as
|
|
<literal>dvi</literal>, <literal>ps</literal>, etc. This variable defines
|
|
the program which will be called to display a file of that format.
|
|
</para>
|
|
<para>
|
|
By default, &ls; defines viewer programs for viewing DVI, PS and PDF
|
|
formats as follows:
|
|
</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry></entry>
|
|
<entry>Windows</entry>
|
|
<entry>Unix</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>g:Tex_ViewRule_dvi</literal></entry>
|
|
<entry><literal>'yap -1'</literal></entry>
|
|
<entry><literal>'xdvi'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_ViewRule_ps</literal></entry>
|
|
<entry><literal>'gsview32'</literal></entry>
|
|
<entry><literal>'ghostview'</literal></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>g:Tex_ViewRule_pdf</literal></entry>
|
|
<entry><literal>'AcroRd32'</literal></entry>
|
|
<entry><literal>'xpdf'</literal></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
For Macintosh systems, these strings are left empty by default. This lets
|
|
the system pick the program for each format. If you define these variables
|
|
for Mac, the system choice will be over-ridden.
|
|
</para>
|
|
<para>
|
|
&ls; appends <literal>file.format</literal> to the above settings
|
|
while calling the external programs. For example, with
|
|
<programlisting>let g:Tex_ViewRule_dvi = 'yap -1'</programlisting>
|
|
<literal>yap</literal> is called as
|
|
<programlisting>!start yap -1 file.dvi</programlisting> from within
|
|
&vim;. (The initial <literal>start</literal> is used on
|
|
<literal>Windows</literal> platforms is to make <literal>yap</literal>
|
|
start as a separate process.) If you find the way &ls; constructs the
|
|
command line too restrictive, you can use the <link
|
|
linkend="Tex_ViewRuleComplete_format"><literal>Tex_ViewRuleComplete_format</literal></link>
|
|
setting for more complete control on how the command line is
|
|
constructed while calling the external program for viewing.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
For windows, you will need to set the <literal>$PATH</literal> variable
|
|
to include the paths to <literal>yap</literal>,
|
|
<literal>AcroRd32</literal>, <literal>gsview32</literal> and any other
|
|
programs. See your system documentation for how to do this.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<title>Default Viewing Format</title>
|
|
<para>
|
|
To change the default format for viewing files, set the <link
|
|
linkend="Tex_DefaultTargetFormat">g:Tex_DefaultTargetFormat</link>
|
|
variable.
|
|
</para>
|
|
</note>
|
|
</section>
|
|
<section id="Tex_ViewRuleComplete_format">
|
|
<title>Tex_ViewRuleComplete_<format></title>
|
|
<para>
|
|
Here <literal><format></literal> refers to the extension of a
|
|
output format such as <literal>dvi</literal>, <literal>html</literal>
|
|
etc.
|
|
</para>
|
|
<para>
|
|
<literal>Tex_ViewRuleComplete_format</literal> takes precedence over
|
|
<literal>Tex_ViewRule_format</literal> if both are specified. By
|
|
default, &ls; does not define values for
|
|
<literal>Tex_ViewRuleComplete_format</literal> for any
|
|
<literal>format</literal>. Unlike in the case of
|
|
<literal>Tex_ViewRule_format</literal>, &ls; does not modify
|
|
<literal>Tex_ViewRuleComplete_format</literal> at all in constructing
|
|
the command line. The only modification is to substitute
|
|
<literal>'$*'</literal> everywhere in the string with the name of the
|
|
file being viewed (without the extension).
|
|
</para>
|
|
<note>
|
|
<title>IMPORTANT</title>
|
|
<para>
|
|
Make sure you make the process go into the background otherwise vim
|
|
will wait for the viewer to terminate before letting you edit the file
|
|
again.
|
|
</para>
|
|
<para>
|
|
To make a process go into the background on a <literal>*nix</literal>
|
|
platform, use a trailing <literal>&</literal> in the setting. On
|
|
<literal>Windows</literal>, use <literal>start</literal> at the
|
|
beginning of the setting. Example: Suppose you have a latex->html
|
|
converter which converts a file say foo.tex to a file foo/index.html.
|
|
Then you would use:
|
|
<programlisting>" On *nix platform
|
|
let g:Tex_ViewRuleComplete_html = 'MozillaFirebird $*/index.html &'
|
|
" On windows platform
|
|
let g:Tex_ViewRuleComplete_html = 'start MozillaFirebird $*/index.html'</programlisting>
|
|
</para>
|
|
</note>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-menus">
|
|
<title>Menu Customization</title>
|
|
<para>
|
|
In addition to using the variables defined in this section to affect
|
|
the menu-layout permanently (i.e, the layout &ls; will start with), you
|
|
can also use the <literal>TeX-Suite > Configure Menu</literal> menu to
|
|
dynamically configure the menu layout after &ls; has started.
|
|
</para>
|
|
<section id="Tex_Menus">
|
|
<title>g:Tex_Menus</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
If set to 0, &ls; will suppress showing all menus. Useful if you mostly
|
|
work in terminals.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_MainMenuLocation">
|
|
<title><literal>g:Tex_MainMenuLocation</literal></title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>number</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>80</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This setting decides the location of the first top-level &ls;
|
|
menu. You can for example shift all the menus created by &ls;
|
|
to the very end by setting this value to a large number like 990.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_MathMenus">
|
|
<title>g:Tex_MathMenus</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
The <literal>Tex-Math</literal> menu consists of hundreds of mathematical
|
|
symbols used in &latex;. This menu comprises about 75% of the menus.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_NestElementMenus">
|
|
<title>g:Tex_NestElementMenus</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This setting controls the "compactness" of the menus. If set to 1, then the
|
|
Font, Counter and Dimensioning menus are collected together in a single
|
|
menu called <literal>Tex-Elements</literal>, otherwise, they will each get
|
|
a separate menu.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_PackagesMenu">
|
|
<title>g:Tex_PackagesMenu</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Setting this to zero will stop &ls; from automatically creating the
|
|
<literal>TeX-Suite > Packages > Supported</literal> menu at startup. You
|
|
can still create the menu after startup by going to
|
|
<literal>TeX-Suite > Configure Menu</literal>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_NestPackagesMenu">
|
|
<title>g:Tex_NestPackagesMenu</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>String</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>'TeX-'</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This string is the prefix added to all the menus created by &ls;. If you
|
|
define this variable with a dot (<literal>'.'</literal>) as the last
|
|
character, then all the menus created by &ls; will be nested under a
|
|
single master menu. For example, set this to
|
|
<literal>'&LaTeX-Suite.'</literal> to nest all menus under a menu
|
|
called <literal>&LaTeX-Suite</literal>.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_UseUtfMenus">
|
|
<title>g:Tex_UseUtfMenus</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>0</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This setting controls whether &ls; uses utf-8 symbols to display some of
|
|
the mathematical symbols in the <literal>TeX-Math</literal> menu. It is
|
|
necessary for your system/GUI to support utf-8. Setting this to 1 has the
|
|
side-effect of setting the <literal>'encoding'</literal> option of &vim;
|
|
to 'utf-8'.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-folding">
|
|
<title>Folding Customization</title>
|
|
<para>
|
|
The following settings control the <link
|
|
linkend="latex-folding">folding</link> functionality of &ls;.
|
|
</para>
|
|
<section id="Tex_Folding">
|
|
<title>g:Tex_Folding</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
Setting this to zero completely disables &ls;'s folding functionality.
|
|
However, the <literal>TexFoldTextFunction()</literal> is still available
|
|
in case you want to use another folding scheme but still want to continue
|
|
using the fold text function.
|
|
</para>
|
|
</section>
|
|
<section id="Tex_AutoFolding">
|
|
<title>g:Tex_AutoFolding</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>Boolean</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>1</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This setting controls whether &ls; automatically creates manual folds for
|
|
a file when it is opened. You can still use the <literal>\rf</literal>
|
|
mapping to refresh/create folds even when this variable is set to zero.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="customizing-packages">
|
|
<title>Package Handling Customization</title>
|
|
<para>
|
|
These settings affect the <link linkend="custom-packages">custom
|
|
packages</link> functionality in &ls;
|
|
</para>
|
|
<section id="Tex_TEXINPUTS">
|
|
<title>g:Tex_TEXINPUTS</title>
|
|
<informaltable frame="all">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row><entry>Type</entry><entry>string</entry></row>
|
|
<row><entry>Default Value</entry>
|
|
<entry><literal>''</literal></entry></row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
This setting describes the directories scanned by &ls; while searching
|
|
for custom user packages as described in the <link
|
|
linkend="custom-packages">custom packages</link> section. Do not
|
|
include the present directory in this setting. The present directory
|
|
is always scanned for custom packages.
|
|
</para>
|
|
<para>
|
|
This string should be set in the syntax accepted by &vim;'s native
|
|
<literal>'path'</literal> setting.
|
|
</para>
|
|
</section>
|
|
</section>
|
|
</section>
|
|
<section id="latex-suite-credits">
|
|
<title>Credits</title>
|
|
<para>
|
|
And finally, the credits:
|
|
</para>
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<tbody>
|
|
<row>
|
|
<entry>Artur R. Czechowski</entry>
|
|
<entry>maintains the BSD package of &ls;. Lots of valuable
|
|
feedback.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Lubomir Host
|
|
</entry>
|
|
<entry>
|
|
provided the diacritics and also helped in development.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Alexander Wagner
|
|
</entry>
|
|
<entry>
|
|
valuable suggestions during development.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Luc Hermitte
|
|
</entry>
|
|
<entry>
|
|
his variation of Stephen Riehm's bracketing system is used
|
|
in &ls;.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Gergely Kontra
|
|
</entry>
|
|
<entry>
|
|
the clever little JumpFunc() in imaps.vim is due to him.
|
|
The implementation of the templates also borrows from
|
|
mu-template.vim by him.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Dimitri Antoniou
|
|
</entry>
|
|
<entry>
|
|
author of ltags and also provided the nice tip about
|
|
forward / reverse search on DVI documents.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Stephen Riehm
|
|
</entry>
|
|
<entry>
|
|
the extremely helpful bracketing system is from him.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Alan Schmitt
|
|
</entry>
|
|
<entry>
|
|
provided macros/folding elements. Continued feedback,
|
|
bug-reports/fixes.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Hari Krishna Dara
|
|
</entry>
|
|
<entry>
|
|
for ExecMap(), the clever little function which makes
|
|
typing visual mode mappings so much easier and error-free.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Alan G Isac
|
|
</entry>
|
|
<entry>
|
|
for the comprehensive BibT() function for entering bibtex
|
|
entries.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Gontran Baerts
|
|
</entry>
|
|
<entry>
|
|
for libList.vim
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Peter Heslin
|
|
</entry>
|
|
<entry>
|
|
useful discussion and also a lot of bug fixes.
|
|
the %%fakesection in folding.vim.
|
|
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
Zhang Lin-bo
|
|
</entry>
|
|
<entry>
|
|
lots of very useful additions to folding. The code for customizing
|
|
the folding scheme is due to him.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
A large number of functions in &ls; come from various other people.
|
|
Some of those people might have been missed here. Each function should however
|
|
have the author's name/e-mail above it. Thats the more authoritative place to
|
|
check out who has done what.
|
|
</para>
|
|
<anchor id="latex-suite-maintainer"></anchor>
|
|
<para>
|
|
The current maintainer(s) of &ls; is(are)
|
|
</para>
|
|
<simplelist>
|
|
<member>Srinath Avadhanula <srinath@fastmail.fm></member>
|
|
<member>Mikolaj Machowski <mikmach@wp.pl></member>
|
|
<member>Benji Fisher <benji@member.AMS.org></member>
|
|
</simplelist>
|
|
</section>
|
|
</article>
|
|
|
|
<!--
|
|
vim: et:sw=1:sts=4
|
|
-->
|