我正在为gvim使用乳胶套装。我想使用output-dir选项。我定义了:
let g:Tex_MultipleCompileFormats='pdf'
let g:Tex_CompileRule_pdf = 'pdflatex --output-directory=output --synctex=-1 -src-specials -interaction=nonstopmode $*'问题是,使用latex选项时,latex- --output-directory不会在必要时多次编译,只编译一次。而且,如果引用发生变化,我必须手动编译它。
如何使用--output-directory配置latex-suit多个编译选项
发布于 2016-07-14 09:06:48
您有两种选择:使用makefile (我推荐这样做)或在g:Tex_CompileRule_pdf中多次运行该命令。
使用Makefile
当LaTeX文档变得很大时,管理起来可能会很麻烦:
{draft}模式下以不同方式编译的\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)默认情况下,这个Makefile运行pdflatex两次:一次用于构建部分和页码,另一次用于进行正确的交叉引用。如果引用发生变化,.aux文件也会发生变化,并且pdflatex将运行三次。
如果您不使用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 $*'当您按<leader>ll时,它将运行pdflatex两次(注意分号)。
额外注意:我们在网站的vi.SE部分有专门针对Vim的问题。在那里通常可以更快地获得Vim相关的答案。
https://stackoverflow.com/questions/38358507
复制相似问题