3

我正在使用乳胶套装gvim。我想使用 output-dir 选项。我定义:

let g:Tex_MultipleCompileFormats='pdf'
let g:Tex_CompileRule_pdf = 'pdflatex --output-directory=output --synctex=-1 -src-specials -interaction=nonstopmode $*'

问题是,--output-directory如果需要,latex-suit 选项不会编译多次,只能编译一次。而且,如果引用发生变化,我必须手动编译它。

如何使用 ? 配置 latex-suit 多个编译选项--output-directory

4

1 回答 1

2

您有两个选择:使用 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 相关的答案通常更快。

于 2016-07-14T01:06:48.243 回答