请注意,尽管这听起来非常类似于我应该将自己的 .sty 或 .cls 文件放在哪里,以使它们可供我的所有 .tex 文件使用?这是不同的问题。
我需要生成 PDF 作为复杂构建过程的一个步骤(在文档生成期间)。我有额外的 STY 和 CLS 文件,它们是由第三方软件(Sphinx、Python 文档生成器)创建的,这些文件由程序放置在特定于项目的目录中(./_build/latex
更具体地说)。
目录结构
$ tree
.
├── _build
│ ├── doctrees
│ │ ├── environment.pickle
│ │ └── index.doctree
│ └── latex
│ ├── included.tex
│ ├── fncychap.sty
│ ├── Makefile
│ ├── python.ist
│ ├── sphinxhowto.cls
│ ├── sphinxmanual.cls
│ ├── sphinx.sty
│ └── tabulary.sty
├── conf.py
├── index.rst
├── Makefile
├── index.tex
├── _static
└── _templates
稍后,如果我启动该latexmk
工具来构建此目录中的文件,该工具可以毫无问题地找到 STY 和 CLS。当我需要从父目录调用时,问题就开始了latexmk
:无法再找到 STY。
我试过了:
TEXINPUTS="$TEXINPUTS:./_build/latex:" latexmk \
-pdflatex='pdflatex -shell-escape -interaction \
nonstopmode' -pdf -f ./index.tex
但这并没有什么效果。
我正在使用 TexLive LaTeX 发行版。我可以通过将此目录符号链接到我的目录来解决问题~/texmf
,但我需要构建独立于我的特定设置。
答案1
初始化时,您始终可以在本地添加 .cls 文件。假设我们需要添加IEEEtran
一种 latex 文章。
如果句子
\documentclass[10pt,journal,compsoc]{IEEEtran}
由于未找到 IEEEtran.cls 文件,因此出现错误,您始终可以在声明中添加本地路径:
\documentclass[10pt,journal,compsoc]{./libs/IEEEtran}
如果您需要相同的 cls 文件,您可以将其本地添加到 latex 主目录中。但是,当您需要将 cls 保留在 github 项目中时,这种本地静态表示法非常有用。这样,任何人都可以访问非原生库