您有两个选择:使用 makefile(我会推荐)或在g:Tex_CompileRule_pdf
.
使用 Makefile
当 LaTeX 文档变大时,管理起来可能会很麻烦:
- 几个 BibTeX 参考文件,
{draft}
在模式下以不同方式编译的 gnuplot 图,
- 和一般
\input
文件。
如果您尝试使用单个命令行来管理它,它将很快变得无法维护。使用 Makefile 可以更好地检查文件之间的依赖关系,而且 Vim 可以使用:make
(默认:makeprg
设置为make
) 编译 LaTeX 文档。一个示例 Makefile 可能如下所示:
# Makefile for my LaTeX doc
LATEX = pdflatex -output-directory=output -synctex=-1 -src-specials -interaction=nonstopmode
BIBTEX = bibtex
RM = rm -f
BIB = mybibs.bib
LTFS = *.aux *.lof *.log *.lot *.fls *.out *.toc
DOCS = *.dvi *.pdf
BIBS = *.bbl *.blg
IDXS = *.idx *.ilg *.ind *.ist
OTHER = *.acn *.acr *.glg *.glo *.gls *.brf *.lol
all: document.pdf
%.pdf: %.tex %.bbl
$(LATEX) $<
$(LATEX) $<
.PRECIOUS: %.aux
%.aux: %.tex
$(LATEX) $<
.PRECIOUS: %.bbl
%.bbl: %.aux $(BIB)
$(BIBTEX) $<
.PHONY: clean
clean:
$(RM) $(LTFS) $(DOCS) $(BIBS) $(IDXS) $(OTHER)
这个 Makefilepdflatex
默认运行两次:一次是构建章节和页码,第二次是进行正确的交叉引用。如果引用发生更改,则.aux
文件将被更改并pdflatex
运行 3 次。
如果您不使用 BibTeX,则不需要有关%.bbl
文件的部分。
将几个命令放入g:Tex_CompileRule_pdf
我将再次警告,这将很快变得无法维护。通过很长的命令行跟踪文件之间的依赖关系非常困难。
总之,你可以$*
在 Vim 的外部命令中多次使用。本质上,您可以这样做:
let g:Tex_CompileRule_pdf = 'pdflatex -output-directory=output '
\. '-synctex=-1 -src-specials -interaction=nonstopmode $*; '
\. 'pdflatex -output-directory=output '
\. '-synctex=-1 -src-specials -interaction=nonstopmode $*'
当您按 时,它将运行pdflatex
两次(注意分号)<leader>ll
。
额外说明:我们确实在网站的vi.SE部分提供 Vim 特定问题。在那里获得与 Vim 相关的答案通常更快。