独立且包位于父目录中

独立且包位于父目录中

我有三个文件,文件main.texpackage.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.stytexmf/tex/latex/
  • 现在,您可以使用\usepackage{package}insub/fig.tex和 inmain.tex并找到文件

相关内容