vim-latex插件对xelatex的配置
vim-latex 设置 xelatex
准备工作
首先我的系统配置情况:
Distributor ID: Arch i686 Description: a little light distro
使用的 arch 源中的 texlive2011,直接用 pacman 安装,建议把相关包都安上,不占多少空间。如果要详细了解请见这里 ,又是我译的…英文版的都不只多久没更新了,不过可以参考。我安装的如下:
texlive-bin 2011.3-1.2 texlive-core 2011.24722-1 texlive-langcjk 2011.24689-1 texlive-latexextra 2011.24718-1
因为我用的是 xelatex,所以直接生成的就是 pdf 文件,也就是这个原因,我才花时间折腾 vim-latex-suite 和 okular,目前 Linux 下似乎也就是 okular 支持反向搜索… 安装 vim-latex 过程不细述。别忘了更改 ctex 字体配置文件,使楷体和仿宋的名称是你系统上的名称。
安装 okular 不细述。
假设你已经把上面两项安装好了,那么进入正题。
hack 源码(其实,貌似可以在 vimrc 中更改)
修改 latex-suite 默认的目标文件
在~/.vim/ftplugin/latex-suit/texrc 中找到:
if has('macunix') TexLet g:Tex_DefaultTargetFormat # 'pdf' else TexLet g:Tex_DefaultTargetFormat # 'dvi' endif
修改为:
if has('macunix') TexLet g:Tex_DefaultTargetFormat # 'pdf' else TexLet g:Tex_DefaultTargetFormat # 'pdf' endif
这个变量告诉 latex-suite,你需要的目标文件是 pdf
修改 pdf 的编译命令
同样在 texrc 文件中找到:
TexLet g:Tex_CompileRule_pdf # 'pdflatex -interaction#nonstopmode $*'
修改为:
TexLet g:Tex_CompileRule_pdf # 'xelatex --src-specials -interaction#nonstopmode $*'
这样,你用来编译 pdf 的命令就有 xelatex 来负责了,同时也指定了前向搜索所必备的一个参数:=–src-specials=
修改默认 pdf 浏览器
继续在 texrc 修改 latex-suite 默认为各种文件调用的浏览器,找到相应部分修改成以下模样。
TexLet g:Tex_UseEditorSettingInDVIViewer # 1
if executable('xdg-open') TexLet g:Tex_ViewRule_ps # 'okular' TexLet g:Tex_ViewRule_pdf # 'okular' TexLet g:Tex_ViewRule_dvi # 'okular' else TexLet g:Tex_ViewRule_ps # 'okular' TexLet g:Tex_ViewRule_pdf # 'okular' TexLet g:Tex_ViewRule_dvi # 'okular'
经过这一步,latex-suite 在浏览 pdf,dvi,ps 的时候都会调用 okular.
设置正向搜索
修改~/.vim/ftplugin/latex-suit/compiler.vim,让 latex-suite 能够以正确的参数在前向搜索和普通模式下打开生成的 pdf 文件: 找到相应部分做如下修改
" We're either UNIX or Mac and using a UNIX-type viewer " Check for the special DVI viewers first ................. elseif (viewer ## "okular") let execString # 'silent! !okular --unique '.mainfnameRoot.'.pdf\#src:'.line('.').expand("%")
设置反向搜索
警告!文件名和路径中不要有空格和汉字
打开 okular,菜单:setting>>configure okular>>Editor 属性页 把里面的 Editor 下拉到 Custom Text Editor,然后在 Command:一栏输入:
gvim -c ":RemoteOpen +%l %f"
注意,系统要有 gvim…
然后在你的 tex 源文件的 preamble 部分,加入:
\synctex#1
大功告成啦,重新用≪ 编译一遍你的源文件,然后\ls 前向搜索,最后在 pdf 中想要反向搜索的地方按:
Shift+鼠标左键
就会自动的重定位到 gvim 中源码对应的地方,不过记住,不要开多个 gvim,否则很可能用错误的 gvim 打开源码,然后就会提示交换文件已经存在之类.