首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有texlive和gvim的output-dir

带有texlive和gvim的output-dir
EN

Stack Overflow用户
提问于 2016-07-14 01:47:25
回答 1查看 535关注 0票数 3

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

代码语言:javascript
复制
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多个编译选项

EN

回答 1

Stack Overflow用户

发布于 2016-07-14 09:06:48

您有两种选择:使用makefile (我推荐这样做)或在g:Tex_CompileRule_pdf中多次运行该命令。

使用Makefile

当LaTeX文档变得很大时,管理起来可能会很麻烦:

  • 多个BibTeX参考文件、在{draft}模式下以不同方式编译的
  • gnuplot图形、
  • 和常规\input文档。

如果你试图用一个命令行来管理它,它很快就会变得不可能维护。使用Makefile可以更好地检查文件之间的依赖关系,而且Vim可以使用:make (使用默认的:makeprg,设置为make)编译LaTeX文档。Makefile示例可能如下所示:

代码语言:javascript
复制
# 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的外部命令中多次使用$*。从本质上讲,你可以这样做:

代码语言:javascript
复制
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相关的答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38358507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档