我的大学提供了一个论文项目模板,里面有大量文件。我当前的工作目录看起来有点像这样:
package1.sty
package2.sty
package3.sty
classFile.bst
classFile.cls
ttlps.def
logo.ps
... lots of other stuff ...
mythesis.tex <-- these are the only files I work with
chapter01.tex <--
chapter02.tex <--
我想知道是否有一个好方法可以将所有这些文件“移开”,而无需全局安装它们(所有这些包仅对此特定项目有用)。有没有办法让我的目录结构看起来更像这样?
out/ <--- .pdf, .dvi, .aux, .log, etc go here
stuff/ <--- all the custom packages, logos, etc go here.
mythesis.tex
chapter01.tex
chapter02.tex
我在调用 latex 时通过传递一个标志来分离输出文件--output-directory
,但我不知道是否有办法将所有其他内容移动到单独的文件夹中。到目前为止,我最接近的方法是运行 latex 时将其移动cd
到stuff
文件夹中,但这迫使我将所有 tex 文件引用为 而../chapterXX
不是chapterXX
,即使在include
指令和类似的东西中也是如此。
我想知道是否有办法做我想做的事情,而不需要借助于额外的工具,如快照或 arlatex,如建议的那样另一个问题
答案1
笔记:以下内容适用于所有基于 TeXLive 的发行版,但不适用于 MikTeX。
我通常将此类内容放在项目本地texmf
子文件夹中。为了让pdflatex
其他人真正搜索此文件夹,必须将其添加到TEXINPUTS
环境变量中。我通常在 shell 中有一个sourceme.bash
文件:source
export TEXINPUTS=./texmf//:${TEXINPUTS}
export BSTINPUTS=./texmf//:${BSTINPUTS}
export BIBINPUTS=./texmf//:${BIBINPUTS}
但是,由于我已经在几乎每个项目中开始这样做,因此我最近将这些行添加到我的登录脚本中,以便在每种情况下pdflatex
都会查找一个./texmf
文件夹。
如果您使用 Makefile,当然您也可以这样做:
export TEXINPUTS := ./texmf//:${TEXINPUTS}
export BSTINPUTS := ./texmf//:${BSTINPUTS}
export BIBINPUTS := ./texmf//:${BIBINPUTS}
路径末尾的双斜杠允许pdflatex
递归搜索相应的文件夹,因此您可以在其中维护完整的符合 TDS 的 texmf 树。与TEXINPUTS
LaTeX 样式文件、图像和\input
s 类似,还有更多可用的环境变量。最重要的是:
BSTINPUTS
用于 BibTeX(和biblatex
)样式文件。BIBINPUTS
用于.bib
文件。TEXFONTS
用于附加(矢量)字体。