一般问题
如何在 Vim 中手动从 Vim-LaTeX 加载特定包以及如何为每个 LaTeX 文件自动执行此操作?
.vimrc
我对从特定包的脚本中复制相关部分来作为解决方法不感兴趣。
具体问题
这只是一个补充部分,用来解释解决此类问题如何有用。
简短提醒
在LaTeX 2ε 的简短介绍您可以阅读:
波浪符号“~”会生成一个无法放大的空格,并且禁止换行。
在波兰语中,我们不应该在行末留下短连词。~
在这里很有用,但是在连词后写它很麻烦(并且会破坏打字流程,有时您可能会忘记它)。
Vim-LaTeX(vim-latexsuite
Debian 中的软件包;我在 squeeze 中使用了 20100129-2 版本,以防万一)为每个包提供额外的定制。对于波兰语文本,我们使用包波兰语LaTeX 及其 Vim-LaTeX 对应部分会修改空格,因此它会自动在短单词后用波浪号替换空格。
问题
对于较大的 LaTeX 文档,将文本拆分到多个文件之间是一种常见的做法。而 Vim-LaTeX 中的包检测问题就出现了。如果我打开主文件.tex
(即包含其他.tex
文件的文件),其中\usepackage{polski}
存在,那么空格替换可以正常工作。它不是您要写很多内容的文件,因此在这里它没什么用。但是如果我打开任何其他.tex
文件(包含在主.tex
文件中),该文件显然没有前言(因此其中没有前言\usepackage{polski}
),包检测就会失败,因此空格替换在这里不起作用。
部分解决方案
我已经找到了一些有部分缺陷的解决方案。
au FileType tex call Tex_pack_one('polski')
.tex
这很糟糕,因为如果您在新窗口中打开另一个文件(例如通过:sp
或),它就不起作用:vs
,即使这个文件有\usepackage{polski}
(所以这是一个回归)。
简单测试。进入插入模式并写入i i i
。您应该看到i~i~i
。在新窗口中打开完整的 LaTeX 文档(包含前言和\usepackage{polski}
)。在那里重复测试。打开第三个 LaTeX 文档(不包含前言)并再次重复测试。
引用我在 vim-latex 邮件列表中关于使用 latex-master-file 的邮件
发送时间:2011 年 5 月 22 日星期日 11:23(GMT+02:00)
我删除了之前提到的au FileType tex call Tex_pack_one('polski')
行以.vim.rc
避免任何冲突并添加了空main.tex.latexmain
文件。从 polski 包 PoV 情况与我的部分解决方案相同。只有第一个打开的文件可以正常工作,另一个带有.tex
文件的窗口则不能。
我开始认为问题在于 vim-latex 内部的包加载方式(因为主要面向很少使用的菜单 [如果我错了请纠正我],应该只扩展一次)阻止多次执行包的脚本。此外,polski 包可能有一些错误。我了解 Vim,可以方便地使用它的编辑功能,但我还没有学过 Vim 脚本语言(编写简单的脚本.vimrc
不需要任何特殊知识),因此我无法在这里判断,需要高级 Vim 用户/程序员的帮助。
答案1
添加这一行可以~/.vim/after/ftplugin/tex.vim
起作用吗?
call Tex_pack_one('polski')