![Vim LaTeX-suite:EFI 宏以不同的方式扩展](https://linux22.com/image/334121/Vim%20LaTeX-suite%EF%BC%9AEFI%20%E5%AE%8F%E4%BB%A5%E4%B8%8D%E5%90%8C%E7%9A%84%E6%96%B9%E5%BC%8F%E6%89%A9%E5%B1%95.png)
我正在学习 LaTeX 套件,我发现 EFI 宏对于图形环境的表现对不同的文档不同。有时图像文件行会
\psfig{figure=<+eps file+>}
有时它会
\includegraphics{<+file+>}
这两种扩展似乎是随机发生的,因为每次我都只是开始一个新的空文章文档。我认为对于“psfig”,LaTeX 套件假设我正在创建一个.dvi
文件,但我一直在使用它pdfLaTeX
。LaTeX 套件如何决定在特定文档中使用哪种扩展?
答案1
在我看来,\psfig
如果包(或者我猜是等价的)尚未加载,则使用graphicx
,这样(原则上)可以保证插入的环境可以编译。但是在我的计算机上,至少当主文档中调用的包(或至少是自己的包)反过来调用 时,它似乎会错过graphicx
。
总是根据得到\includegraphics
定义g:Tex_Env_figure
let g:Tex_Env_figure="\\begin{figure}[<+htpb+>]\<cr>\\centering\<cr>\\includegraphics{<+file+>}\<cr>\\caption{<+caption text+>}\<cr>\\label{fig:<+label+>}\<cr>\\end{figure}<++>"
\includegraphics
当调用图形环境时应该产生(无论是通过EFI
还是F5)。
答案2
我也经常遇到这个问题。vim-latex 似乎应该自动检测你正在使用的图形包,但有时会失败(就我而言,我猜是因为我在不同的文件中加载了 graphicx)。
正确的解决方案是让 latex-vim 知道您想要使用哪个包:(
let g:Tex_package_detected = 'graphicx'
在命令模式下发出,放入 vimrc 或其他)
或者添加
if !exists("g:Tex_package_detected")
let g:Tex_package_detected = 'graphicx'
elseif g:Tex_package_detected !~ '\<graphicx\>'
let g:Tex_package_detected = g:Tex_package_detected.',graphicx'
endif
到.vim/after/ftplugin/tex.vim
或者您可以自己对图形宏进行硬编码,如戴博文的回答中所建议的那样。这是手册:手册:http://vim-latex.sourceforge.net/documentation/latex-suite.html#customizing-macros
来源:https://sourceforge.net/p/vim-latex/mailman/vim-latex-devel/thread/1373471802.4529.1.camel@roddur/