我是gvim
的usgin latex-suit。
我想使用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不会多次编译,只会编译一次。并且,如果引用更改,我必须手动编译它。
如何使用--output-directory
配置latex-suit多个编译选项?
答案 0 :(得分:2)
您有两个选择:使用makefile(我建议使用)或在g:Tex_CompileRule_pdf
内多次运行命令。
LaTeX文档,当它们变大时,可能很难管理:
{draft}
模式下以不同方式编译的gnuplot图,\input
文件。如果您尝试使用单个命令行管理它,很快就无法维护。使用Makefile可以在文件之间进行更好的依赖性检查,Vim也可以使用:make
编译LaTeX文档(默认:makeprg
,设置为make
)。 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 $*'
当您按pdflatex
时,它会运行<leader>ll
两次(请注意分号)。
额外注意:我们确实有针对Vim特定问题的网站vi.SE部分。在那里获得与Vim相关的答案通常会更快。