美文网首页LaTeX
vim-latex-suite使用手册

vim-latex-suite使用手册

作者: tau | 来源:发表于2015-08-09 18:13 被阅读4213次

    vim-latex-suite使用手册

    tau@2015.8.2

    导语

    快捷键是提高效率的不二法则,毕竟十个手指头比两个手指头要快得多。
    使用vim-latex-suite的关键亦是如此。

    说明:

    • ||中为在普通模式下输入的命令;
    • <>中为按键,C表示Ctrl,A表示Alt,S表示Shift;

    一、模板

    1. 使用方法

    模板存放在$VIM/ftplugin/latex-suite/templates/中,使用命令|:TTemplate|或者从菜单中可以调出可用的模板。

    2. 定制方法

    在$VIM/ftplugin/latex-suite/templates/中建立相应的文件即可。

    二、包

    1. 使用方法

    宏包存放在$VIM/ftplugin/latex-suite/packages/中,从菜单中或者使用按键<F5>、命令|:TPackage|都可以调出可用宏包。

    2. 定制方法

    在$VIM/ftplugin/latex-suite/packages/中建立相应的文件即可,可参考exmpl。

    三、环境

    1. 使用方法

    (1)插入

    • 方法1:<F5>,读取当前行的单词并形成环境,如果是空行,则给出环境列表;
    • 方法2:<S-F1>-<S-F4>,每一个对应一个自定义的环境;
    • 方法3:使3字母序列Exx,第一个字母E代表Environment,后两个字母是环境名的简写,比如EFI插入figure环境。

    (2)包围

    • 方法1:选中需要放入环境中的内容,按<F5>
    • 方法2:选中需要放入环境中的内容,按3字母序列,这里的3字母序列和插入中不同的在于首字母需要改为<,>,后两个字母保持不变(小写即可);

    (3)修改

    • 方法1:选中需要修改环境名的内容,然后按<S-F5>,多重环境时先改变最内层环境;

    2.定制方法

    设置变量g:Tex_Env_name即可,其中'name'是环境名,例如

    let g:Tex_Env_frame = "\\begin{frame}\<cr>\\frametitle{<+title+>}\<cr><++>\<cr>\\end{frame}<++>"
    

    有些带标签的环境可设置变量g:Tex_EnvLabelprefix_name,例如

    figure, table, theorem, definition,lemma, proposition, corollary, assumption, remark, equation, eqnarray, align, multline
    

    默认给出的环境列表由变量g:Tex_PromptedEnvironments设置,默认值为

    'eqnarray\*,eqnarray, equation,equation\*,\[,$$,align,align\*'
    

    <S-F1>-<S-F4>对应的环境名由g:Tex_HotKeyMappings设置,默认值为

    'eqnarray*,eqnarray,bmatrix'
    

    四、命令

    1. 使用方法

    (1)插入

    • 方法1:<F7>,提取当前光标所在单词构成命令,如果是空单词,则给出命令列表;

    (2)包围

    • 方法1:选中需要放入命令的内容,按<F7>

    (3)修改

    • 方法1:选中需要修改命令名的内容,按<S-F7>

    2. 定制方法

    设置变量g:Tex_Com_name即可,其中'name'是变量名。

    默认给出的命令列表由变量g:Tex_PromptedCommands控制,默认值为

    'footnote,cite,pageref,label'
    

    五、参考文献

    1. 使用方法

    共提供四种插入模式:BBBBBLBBHBBX
    它们的插入方式是一致的,输入后会提示需要插入的文献类型。

    • BBB仅插入该种文献所需的最少字段;
    • BBL插入该种文献常用的字段;
    • BBH插入一些更多的字段;
    • BBX则插入所有的字段。

    2. 定制方法

    如果需要定制不同插入模式下的字段,那么需要修改全局变量g:Bib_{type}_options

    该变量在文件$VIM/ftplugin/bib.vim中定义,{type}是文献类型,比如'article'、'book'等。
    变量取值如下表所示:

    字符 对应的字段
    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',则使用BBB插入'article'为

    @ARTICLE{<+key+>,
        author = {<++>},
        title = {<++>},
        journal = {<++>},
        year = {<++>},
        month = {<++>},
        number = {<++>},
        pages = {<++>},
        otherinfo = {<++>}
    }<++>
    

    如果还有一些上面没有列出来的字段需要插入,则需要定义全局变量
    g:Bib_article_extrafields

    比如定义

    let g:Bib_article_extrafields = "crossref\nabstract"
    

    则'article'的模板会多出两个字段

    crossref = {<++>},
    abstract = {<++>},
    

    六、编译及查看

    使用按键\ll开始编译。
    变量g:Tex_CompileRule_<format>设置编译规则,<format>是"pdf"、"dvi"等。
    设置编译依赖,比如

    .tex -> .dvi -> .ps -> .pdf
    

    可以设置为

    let g:Tex_FormatDependency_pdf = 'dvi,ps,pdf'
    

    同时需要设定编译规则

    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'
    

    只编译部分文件,选择模式下选择一部分内容,然后使用\ll编译这一部分内容,用\lv来查看结果。对应的命令是|:TPartComp||:TPartView|

    查看使用\lv。规则使用变量g:Tex_ViewRule_<format>来定义。

    前向搜索使用\ls。在Mac上,需要设置g:Tex_TreatMacViewerAsUNIX为1

    反向搜索需要设置查看器与vim的沟通方式,比如

    "C:\Program Files\vim\vim61\gvim" -c ":RemoteOpen +%l %f"
    

    七、折叠

    Latex-Suite用插件SyntaxFolds.vim来进行语法折叠。
    折叠是手动的,新写的内容需要按<F6>\rf来开启折叠。

    有一系列变量用来控制折叠
    g:Tex_FoldedSections控制哪些节需要折叠,默认值为

    part,chapter,section,subsection,subsubsection,paragraph
    

    g:Tex_FoldedEnvironments控制哪些环境需要折叠,默认值为

    verbatim,comment,eq,gather,
    align,figure,table,thebibliography,
    keywords,abstract,titlepage
    

    g:Tex_FoldedCommands控制哪些命令需要折叠,默认值为空。
    g:Tex_FoldedMisc控制一些其他需要折叠的内容,默认值为

    item,preamble,<<<
    

    八、多文件工程

    假设有如下工程结构

    thesis/
        main.tex
        abstract.tex
        intro/
            intro.tex
            figures/
                fig1.eps
                fig2.eps
        chapter1/
            chap1.tex
            figures/
                fig1.eps
        conclusion/
            conclusion.tex
            figures/
    

    main.tex文件如下

    % file: main.tex
    \documentclass{report}
    \begin{document}
    
    \input{abstract.tex}
    \input{intro/intro.tex}
    \input{chapter1/chap1.tex}
    \input{conclusion/conclusion.tex}
    
    \end{document}
    

    只需要创建一个空文件main.tex.latexmain就可以表明main.tex是主文件。

    九、常用快捷键

    1. 章节

    可使用3字母序列Sxx进行插入和修改。

    2. 字体

    可使用3字母序列Fxx进行插入和修改。

    3. 希腊字母

    `a至`z分别代表\alpha到\zeta,大写情况也类似(但不支持所有大写希腊字母)。

    4. 智能按键

    ...在数学模式外是\ldots,在数学模式中是\cdots

    5. 补全

    <F9>可以进行各种类型的补全,包括引用补全(\ref、\eqref、\cite)、文件名补全、命令参数补全。通常需要设置

    set grepprg=grep\ -nH\ $*
    

    6. Auc-Tex中的一些快捷键

    数学环境中:

    快捷键 对应的命令
    `^ \Hat{<++>}<++>
    `_ \bar{<++>}<++>
    `6 \partial
    `8 \infty
    `/ \frac{<++>}{<++>}<++>
    `% \frac{<++>}{<++>}<++>
    `@ \circ
    `0 ^\circ
    `= \equiv
    `\ \setminus
    `. \cdot
    `* \times
    `& \wedge
    `- \bigcap
    `+ \bigcup
    `( \subset
    `) \supset
    `< \le
    `> \ge
    `, \nonumber
    `~ \tilde{<++>}<++>
    `; \dot{<++>}<++>
    `: \ddot{<++>}<++>
    `2 \sqrt{<++>}<++>
    ` \Big
    `I \int_{<++>}^{<++>}<++>

    visual模式下:

    快捷键 对应的命令
    `( \left( \right)
    `[ \left[ \right]
    `{ \left\{ \right\}
    `$ 普通选择 $$,行选择 \[ \]

    7. Alt相关

    默认条件下Alt键是菜单栏的热键,如果有冲突则需要设置

    set winaltkeys=no
    
    • <Alt-L>
      在插入模式下,根据当前光标前的字符,插入不同的命令
    光标之前的字符 对应的命令
    ( \left( <++> \right)
    [ \left[ <++> \right]
    \left <++> \right
    { \left{ <++> \right}
    < \langle <++> \rangle
    q \lefteqn{<++>}<++>

    如果当前光标前面没有任何字符,则插入\label{<++>}。

    • <Alt-B>
      插入模式中将前面的字符包含在命令\mathbf{}中。

    • <Alt-C>
      在插入模式下,
      如果前面的字符是字母或数字,则变成大写并包含在命令\mathcal{}中;
      其它情况下插入\cite{}。
      在选择模式下,将选择的字符包含在\mathcal{}中。

    • <Alt-I>
      根据不同的环境插入\item

    环境名 样式
    itemize \item
    enumerate \item
    theindex \item
    thebibliography \item[<+biblabel+>]{<+bibkey+>} <++>
    description \item[<+label+>] <++>

    可以通过变量g:TeX_ItemStyle_environment进行修改。

    十、宏定制方法

    1. 宏文件

    在$VIM/ftplugin/latex-suite/macros/中,每一个文件就是一个宏。
    用命令|:TMacro|或从菜单上可以选择使用哪个宏。
    可以用|:TMacroNew||:TMacroEdit||:TMacroDelete|进行操作。

    2. IMAP

    可以通过IMAP()定制宏,其语法为

    call IMAP (lhs, rhs, ft [, phs, phe])
    lhs 缩写
    rhs 展开的代码
    ft 适用的文件类型
    phs,phe 用来表示插入点的起始和终止符号,默认为<+和+>
    

    例如

    :call IMAP('EFE', "\\begin{figure}\<CR><++>\\end{figure}<++>", 'tex')
    

    复杂一点的情况

    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+>)<++>\<cr>" .
            \       "<+function body+>\<cr>" .
            \ "endfunction \" "
            \ )
    endfunction
    

    相关文章

      网友评论

        本文标题:vim-latex-suite使用手册

        本文链接:https://www.haomeiwen.com/subject/ynciqttx.html