我有三个文件,文件main.tex
和package.sty
位于同一文件夹中,standalone
文件fig.tex
位于子文件夹中sub
,使用来自的命令package.sty
。问题是standalone
说它无法构建fig.pdf
。我使用standalone v1.1b
。我给出了选项--shell-escape
。
- 难道我做错了什么?
- 如果没有,是否有办法仍然使用该
buildnew
选项,通过设置standalone
子目录中的文件使用父目录中的文件?
文件main.tex
\documentclass{article}
\usepackage[mode=buildnew]{standalone}
\usepackage{tikz,package}
\begin{document}
\includestandalone{sub/fig}
\end{document}
文件package.sty
\newcommand{\foo}{b}
文件test.tex
\documentclass[tikz]{standalone}
\usepackage{../package}
\begin{document}
\begin{tikzpicture}
\node {$\foo$};
\end{tikzpicture}
\end{document}
编辑:一种选择似乎是将指向子文件夹中的包的符号链接放置到子文件夹中,然后使用该链接。但这不独立于平台,并且使编译更加复杂。
答案1
以下方法看起来很自然,latex
并且也适用于每个项目的方式,即当每个项目需要不同的包或位于不同的存储库时。
- 创建目录结构
texmf/tex/latex/
目录 - 让环境变量
TEXMFHOME
指向texmf
,例如通过export TEXMFHOME=<path-to-the-new-texmf-dir>
。这会将其放入texmf
编译器的搜索路径中。需要子目录tex/latex
是因为编译器希望在不同位置的文件具有不同的文件结尾 - 搬去
package.sty
texmf/tex/latex/
- 现在,您可以使用
\usepackage{package}
insub/fig.tex
和 inmain.tex
并找到文件