Latex-Suite Reference 中文版
helptags ~/.vim/doc (for *nix users)
helptags ~/vimfiles/doc (for windows users)
Step 4 of 4: 补全!
好了!安装补全了!现在开始在vim中编辑一个latex文件。Latex-Suite将自 动启动。在vim中可以通过
:help latex-suite.txt
命令获得Latex-Suite的在线参考。
其它保持更新的方法
源代码使用subversion (svn)管理。要访问代码库,遵循链接在导航栏(要到真正的下载页面)中的指令。
高级安装指令
如果已有一系列针对'tex'文件设置的文件类型相关的文件(如ftplugin, indent等文件), 那么请确保Latex-Suite没有覆盖已有的文件。
上面获得的文件包将解压成下面的样子:
latexSuite.zip
|
| ltags
|
+---plugin
| imaps.vim
| SyntaxFolds.vim
| libList.vim
|
+---ftplugin
| | tex_latexSuite.vim
| |
| \---latex-suite
| ... latex suite files ...
| includes templates,
| macros etc
+---doc
| latex-suite.txt
| latexhelp.txt
|
+---indent
| tex.vim
|
\---compiler
tex.vim
用红色表示的文件是可能被覆盖的文件。在这种情况下, 先将文件解压到一个临时目录,然后拷贝所需的文件。然而需注意的是,这种方式没被支持,用户必须自己处理遇到的bug。确认在~/.vimrc.中建立了一些必要的设置(译者注:注释已翻译好附在其相应英文后面,修改.vimrc文件时最好照原来英文写)。
" REQUIRED. This makes vim invoke Latex-Suite when you open a tex file. 【必需。这使得打开tex文件时,vim调用Latex-Suite。】
filetype plugin on
" IMPORTANT: win32 users will need to have 'shellslash' set so that latex
" can be called correctly.【重要:win32用户需要设置好'shellslash',以便latex能被正确的调用。】
set shellslash
" IMPORTANT: grep will sometimes skip displaying the file name if you
" search in a singe file. This will confuse Latex-Suite. Set your grep
" program to always generate a file-name.【重要:在单个文件中搜索时,grep有时候略过文件名的显示。这将令Latex-Suite无所适从。因此设置grep为总是产生文件名。】
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':【从Vim 7开始,空.tex文件的类型缺省为'plaintex',而非'tex'。这将导致vim-latex不会被加载。下面设置将缺省类型改回到'tex':】
let g:tex_flavor='latex'
此外,下面的设置可以写入~/.vim/ftplugin/tex.vim文件中(不存在则新建文件再写入):
" this is mostly a matter of taste. but LaTeX looks good with just a bit
" of indentation.【这个设置仅仅是与个人喜好相关。但是有点缩进的话,LaTeX会看起来美观。】
set sw=2
" TIP: if you write your \label's as \label{fig:something}, then if you
" type in \ref{fig: and press
" all the figure labels. Very useful!【提示:如果用户将\label写作\label{fig:something},那么在用户输入\ref{fig:并按
2 插入模板
可通过TeX-Suite -> Templates执行该功能。此模块提供了一种插入指定模板到当前文件开头的方法。
当Latex-Suite启动时,它扫描$VIM/ftplugin/latex-suite/templates/目录并基于在该目录下发现的文件创建菜单项。当从该菜单选择一个模板时,相应文件会读入到当前文件第一行的上方。
模板文件可以利用占位符在读入模板时初始化鼠标的位置及其随后的移动。此外,通过使用vim表达式,模板文件可以包含动态元素,比如创建文件的时间等。
可以将用户自己的模板放到$VIM/ftplugin/latex-suite/templates/目录下,如此便可通过菜单使用它们。除非模板文件与Latex-Suite发布的模板同名,否则这些文件在已存在的版本上安装新的版本时不会被覆盖。
注意
对于非gui用户,也可以通过命令|:TTemplate|使用模板。该命令的参数必须是相应的模板文件名。如果调用该命令时没有参数(较好的用法),那么将会显示一个可用的模板列表,并提示用户在其中选择一个。
3 Latex-Suite的宏
Latex-Suite带有一套非常广泛的insert mode、|visual-mode|下的宏映射(mapping,与“宏(macro)”是同义词——译者注)以及菜单项,以输入LaTeX大多数的元素(elements)。
注意
这些宏映射不是标准的宏映射。标准的宏映射在某种意义上只有最后一个字符被映射。进一步的文档参见plugin/imaps.vim。比如, 以Latex-Suite提供的宏映射EFI为例,可以以任意慢的速度按下'E','F'和'I' (不像一般的imap命令涉及到timeout的问题)。 当这些字符被按下的时候是可见的(不像一般的imap),并且可以使用移动或 退格键来修正按键,这也与一般宏映射不同。
占位符
几乎所有Latex-Suite中的宏都实现了Stephen Riem的方括号系统和Gergely Kontra的JumpFunc() 来处理占位符。这主要包括使用"占位符"标记文档中执行下个相关编辑动作的位置。比如,当在|insert-mode|下输入 EFI,会显示下面的内容:
SS2 映射到 subsubsection
SPG 映射到 paragraph
SSP 映射到 subparagraph
例如: SSE在插入模式下插入
\section{<++>}<++>
如果选择了一个单词或一行后,按,se,然后就得到
\section{section name}
相关菜单项在Tex-Environments。对于“节(section)“有一个名为'Advanced'的子菜单。从该子菜单选择一项将询问两个问题(是否将本节包括进目录,是否在目录中使用缩名),然后创建一个更智能的模板。
3.5 关于希腊字母的宏映射
小写:
`a到`z分别展开为 \alpha到\zeta.
大写:
`D = \Delta
`F = \Phi
`G = \Gamma
`Q = \Theta
`L = \Lambda
`X = \Xi
`Y = \Psi
`S = \Sigma
`U = \Upsilon
`W = \Omega
注意
LaTeX不支持所有希腊字母的大写。
正如其他Latex-Suite的宏映射,这些宏映射不是通过标准的imap命令创建的。因此,用户可以缓慢地输入、使用退格键(
3.6 Auc-Tex键帮定
这些是某些极经常使用的LaTeX元素的简单两键展开:
`^ 展开为 \Hat{<++>}<++>
`_ 展开为 \bar{<++>}<++>
`6 展开为 \partial
`8 展开为 \infty
`/ 展开为 \frac{<++>}{<++>}<++>
`% 展开为 \frac{<++>}{<++>}<++>
`@ 展开为 \circ
`0 展开为 ^\circ
`= 展开为 \equiv
`\ 展开为 \setminus
`. 展开为 \cdot
`* 展开为 \times
`& 展开为 \wedge
`- 展开为 \bigcap
<+key+>将被选中并且高亮,用户立即可输入参考书目键值(bib-key)。之后,可用
BBB插入的模板仅具有该书目类型所强制要求的域。BBL插入的模板具有经常使用的额外的参数。BBH插入的模板具有更多的不太常使用的参数。BBX插入的模板具有该书目类型所支持的所有域。
助记
B代表书目条目(Bibliographic entry), L 表示大条目(Large entry), H表示巨条目(Huge entry),以及 X表示所有其他项(all eXtras)。
3.8.1 定制Bib-TeX域
如果希望BBB命令插入的模板在其创建的域基础上插入一些额外的域,则需要在$VIM/ftplugin/bib.vim文件中以
g:Bib_{type}_options
的形式定义全局变量,其中{type}是诸如'article','book'之类的字符串。该变量应该包含下表中定义的字母之一
Character Field Type
w address
a author
b booktitle
c chapter
d edition
e editor
h howpublished
i institution
k isbn
j journal
m month
z note
n number
o organization
p pages
q publisher
r school
s series
t title
u type
v volume
y year
例如,缺省时,通过BBB选择'article'将缺省插入下面的模板
@ARTICLE{<+key+>,
author = {<++>},
title = {<++>},
journal = {<++>},
year = {<++>},
otherinfo = {<++>}
}<++>
然而,如果g:Bib_article_options定义为'mnp',那么'article'将插入下面的模板
光标之前的字符展开
(\left( <++> \right)
[\left[ <++> \right]
|\left| <++> \right|
{\left\{ <++> \right\}
<\langle <++> \rangle
q\lefteqn{<++>}<++>
如果光标之前的字符并非上述之一,那么将简单地插入\label{<++>}<++>。
3.10.2
此插入模式宏映射将前一个字符包括进\mathbf{}之中。
3.10.3
插入模式下,该键的多态性如下所示:
如果前一个字符是一个字母或数字,那么将它转为大写并将其包括进\mathcal{}。
1.
否则插入\cite{}。
2.
在可视模式下,它简单地将所选部分包括进\mathcal{}。
3.10.4
此宏映射根据光标包括在哪个环境中在光标处插入\item命令。\item命令的风格(style)取决于包括它的环境。缺省时,
itemize\item
enumerate\item
theindex\item
thebibliography\item[<+biblabel+>]{<+bibkey+>} <++>
description\item[<+label+>] <++>
\begin{itemize}
\item first item
\item second item
\begin{description}
\item[label1] first desc
\item[label2] second
% 若在此处使用
\end{description}
\item third item
% 若在此处使用
在windows上的测试是通过cygwin中的GNU grep移植版来实现的)。
安装了某个grep程序之后,需要在vim中设置'grepprg'参数。确认所采用的设置可以强制搜索程序(比如,grep。——译者注)显示文件名,其实只在一个文件中搜索。对于GNU grep,相应的语法是set grepprg=grep\ -nH\ $*
5.1 Latex-Suite自动补全示例
考虑一种情况,用户正在编辑有两个标注了标签(labelled)的公式eqn:euler和eqn:einstein。现在需要插入对其中一个的引用。为达到此目的,输入\ref{eqn:}命令,光标处在eqn:之后,按
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:}<++>
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%
第一个窗口(上图中显示为处于上方的[Error List])是个|cwindow|,其中包含了此引用的可能匹配的列表。光标将定位在该窗口的首行。底部的窗口是个preview-window,显示了\label命令的上下文。在[Error List]窗口中光标的移动会自动滚动preview窗口,保证它总是显示在[Error List]窗口中查看的\label命令的上下文。用户也可以在[ErrorList]窗口中按J和K命令来上下滚动preview窗口。
为插入某个标签,只需在[Error List]窗口中将光标放到正确的行中,并按
细心的读者可能注意到,在上面的例子中[Error List]窗口仅显示针对公式的匹配,而没有列出任何图标签(figure labels)。这是因为我们是在\ref{eqn:按的
因此为所有标签根据所标注的对象分别加上eqn:、fig:、tab:等前缀,将会使得交叉引用的自动补全更快速。
5.2 Latex-Suite \ref命令的补全
当光标处在某个部分补全的\ref命令中时,按
\section,\subsection等而分层次地排列的。比如,在输入\ref{命令之后按
+-- 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-------------
每章都折叠(|fold|)起来以便快速跳到定义了相关方程的正确的section/subsection。这使得在有几百个方程的大项目中插入交叉引用明显要快很多。也可以打开一些折叠来看,比如:
+-- 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)
在此窗口中,
通过前缀过滤标签
也可在输入\label的部分字符之后按
注意
在任何包含字母ref的命令后面按
要求
预先(preset)准备\label命令的方法依赖于Vim编译进了python支持。在Vim执行:ver可以检查是否具有这个特征。如果该命令的输出中可以看到+python这类的字样,那么就已经设置了。如果没有这个,那么需要在$PATH变量中某处可以找到python。
5.3 Latex-Suite \cite命令的补全
Latex-Suite为插入对参考文献的引用提供了一种简单的方法。当光标处在某个只输入了一部分的\cite后按
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