
此網站(以及網路上的其他地方)上有許多問題如何定義 $TEXINPUTS 以及其他包含 TeX 搜尋的非標準位置的策略。例如,請參閱討論 這裡, 這裡(對於 texmaker), 這裡(用於 Texstudio), 這裡, 這裡(針對 MikTeX), 這裡(對於 TeXShop), 在這裡(macOS), 或者 這裡。從所有這些討論(隱藏在註釋中的許多有用的解釋)中,我了解到定義變數有許多不同的方法,並且它取決於作業系統、TeX 發行版以及程序,哪些可以工作,哪些不能。
我在 macOS 上使用 TeXShop。我有一個位置,~/custompath/input/
其中有一堆子資料夾graphics
等figures
,我希望 TeX 可以存取這些子資料夾,而無需指定顯式路徑(我知道我可以透過 來完成\def\input@path{...}
)。
暫時,我了解到我可以透過命令列定義變數
export TEXINPUTS=.:~/custompath/input//:
更永久的解決方案應該是TEXINPUTS = .:~/custompath/input//:
將
~/.bashrc
或者
/usr/local/texlive/YYYY/texmf.cnf
當我從同一命令列視窗運行時,第一種方法(通過export TEXINPUTS=.:~/custompath/input//:
)確實按預期工作。pdflatex
我明白,因為它是暫時的,所以我不能指望它在 TeXShop 中起作用。
但我無法讓任何其他方法發揮作用。放置魔線~/.bashrc
沒有任何效果。
當我將其添加到 時texmf.cnf
,我可以從命令列運行
kpsexpand '$TEXINPUTS'
並確實返回 .:~/custompath/input//:
但是,編譯(再次從命令列pdflatex ~/custompath/testing.tex
)給了我:
`! LaTeX Error: File `testinput.tex' not found.`
而且,不用說,TeXShop 沒有任何作用。
是否有一種萬無一失的方法來定義由 TeX 搜尋的附加位置,無論我是從命令列、使用 TeXShop 還是其他前端呼叫 LaTeX,該位置始終有效?我的預感是答案是否定的,但也許有人可以解釋如何讓它適用於不同的系統/安裝/前端。 (當然,我對 TeXShop 特別感興趣,但其他平台上的人們似乎經常遇到類似的問題,所以也許值得為所有場景提供權威的答案...)。
MWE 的價值testinput.tex
在於~/custompath/input/figures/project1/
:)
\documentclass{article}
\begin{document} test document \par
\input{testinput.tex}
%\input{~/custompath/input/figures/project1/testinput.tex} %
\end{document}