\expandafter\thecomment

\expandafter\thecomment

许多人编写的 makefile 都是这样的

paper.pdf: paper.tex
        pdflatex paper
        bibtex paper
        pdflatex paper
        pdflatex paper

处理重新运行 TeX 以获取新的/更改的引用等等。有没有更好的方法可以做到这一点?

答案1

乳胶是一种可能性,尽管我自己从未使用过它。

答案2

尝试阿拉拉。它还有一本很棒的手册。

\expandafter\thecomment

Arara 为我们提供了特定于文档的编译方法(规则)。编译规则放在文档中。因此,编译归结为一个简单的arara yourtexfile

首先,安装 arara 并确保 arara 可执行文件包含在系统路径中。Arara 还需要java runtime environment安装 (jre)。要使用 arara,我们应该在文档本身内添加规则,如以下代码所示。将此代码另存为yourfile.tex并执行arara yourfile

% arara: pdflatex: {synctex: yes}
% arara: makeindex: { style: yourfile }
% arara: biber
% arara: pdflatex: {synctex: yes}
% arara: pdflatex: {synctex: yes}
% arara: clean: {files: [yourfile.aux, yourfile.idx, yourfile.ilg, yourfile.ind, yourfile.log, yourfile.bbl, yourfile.bcf, yourfile.ist, yourfile.blg, yourfile.run.xml]}
%
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage{makeidx}
\begin{filecontents}{\jobname.ist}
 heading_prefix "{\\bfseries "
 heading_suffix "\\hfil}\\nopagebreak\n"
 headings_flag  1
 delim_0 "\\dotfill "
 delim_1 "\\dotfill "
 delim_2 "\\dotfill "
 delim_r "\\textendash"
 suffix_2p "\\nohyperpage{\\,f.}"
 suffix_3p "\\nohyperpage{\\,ff.}"
\end{filecontents}
\usepackage[backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeindex
\begin{document}
A citation\cite{companion} and an index entry\index{bla} and some arbitrary text.
\printbibliography
\printindex
\end{document}

要注释掉 arara 指令,只需!输入

% !arara: makeindex

欲了解更多详情,请查阅优秀的 arara 指南。

答案3

我做了大量的研究非常相似的 StackOverflow 问题总结一下各个工具的问题:

  • latexmk会覆盖您的文档,经常导致您的查看器显示不完整的文档(例如,当出现错误时)。它的错误支持很差。

  • rubber将会覆盖您的文档(见上文)。它还经常无法充分更新您的文档。

  • rubber-info打印错误效果惊人,比其他所有工具都好。它可以与橡胶分开使用,也可以与任何其他工具一起使用。

  • vim-latexsuite构建系统很糟糕。避免使用。

  • 我无法让 ltx 工作。

  • MikTeX 仅适用于 Windows。

  • latex-makefile不允许您使用 pdflatex,只允许 latex -> ps -> pdf。有时它还会漏掉 bibtex。

我的最终解决方案通过 pdflatex 不断重建文档,仅在文档发生变化时进行覆盖(为了您的观看乐趣)。它依靠 rubber-info 来处理错误。我将 vim 设置为每 X 次击键后保存文件,这样我的脚本就会不断重建。

答案4

斯康斯似乎是终极的 LaTeX 构建工具。

让我详细说明一下Karsten W. 的回答在配置文件上。

构建 LaTeX 的典型构建脚本如下。将其放在名为 的文件中SConstruct

# make sure scons finds tex executables:
import os
env = Environment(ENV=os.environ)
# target and source:
pdf_output = env.PDF(target='main.pdf', source='main.tex')
# Add synctex
env.AppendUnique(PDFLATEXFLAGS='-synctex=1')
# make sure that the pdf is reloaded properly (e.g., in Skim)
env.Precious(pdf_output)

您只需运行

scons

请注意,相当令人惊奇的是main.tex,scons 将检测文件中 \included 文件以及参考书目文件中的变化!

相关内容