我有许多文件包含在各种 latex 文档中(使用\include
)。我认为将它们保存在一个位置的最佳方法是将它们放在 下的目录中~/Library/texmf
。如果我将它们放在texmf
( ~/Library/texmf/Common_stuff
) 下,则找不到它们(即使运行 之后也是如此texhash
)。如果我将它们放在 下,~/Library/texmf/tex/latex
它会抱怨无法写入.aux
该目录中的文件。有没有办法让它工作?我正在使用 texlive。
谢谢。
答案1
在我看来,使用\include
和\includeonly
是错误的方法。
如果您的文件在TEXMFHOME
(对于 TeX Live,这意味着下面~/texmf/tex/latex
,除非使用 MacTeX,在那里它会变成~/Library/texmf/tex/latex
),您不需要通过完整路径调用它们。
然后可以轻松创建类似于的命令,\include
而\includeonly
无需创建.aux
文件并发出\clearpage
。
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\commoninclude}{m}
{
\clist_gset:Nn \g_ozsu_common_include_clist { #1 }
}
\NewDocumentCommand{\commoninput}{m}
{
\clist_if_in:NnT \g_ozsu_common_include_clist { #1 }
{
\input{#1}
}
}
\clist_new:N \g_ozsu_common_include_clist
\ExplSyntaxOff
\commoninclude{a,b,d}
\begin{document}
\commoninput{a}
\commoninput{b}
\commoninput{c}
\end{document}
这只会输入a.tex
和b.tex
。