目录结构

目录结构

请注意,尽管这听起来非常类似于我应该将自己的 .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 项目中时,这种本地静态表示法非常有用。这样,任何人都可以访问非原生库

相关内容