我想要在我的项目中使用以下文件夹结构:
/template
template.tex
template.sty
/doc1
doc1.tex
/doc2
doc2.tex
这些doc
文档应该访问定义序言部分的模板。因此,doc
看起来像
\input{../template/template.tex}
\usepackage{...} %additional packages to load
\begin{document}
...
\end{document}
template.tex 如下所示:
\documentclass[12pt]{scrartcl}
\usepackage{template}
\usepackage{...}
但是,这不起作用,因为template.sty
没有找到,这似乎是相对/绝对路径的问题。 有没有什么好办法可以解决这个问题?
答案1
TeX 宏级别的搜索路径
宏\input@path
可以包含额外的搜索路径:
\makeatletter
\providecommand*{\input@path}{}
\g@addto@macro\input@path{{../template/}}
\makeatother
\input{template.tex}
% ...
\begin{document}
...
\end{document}
环境变量
另一种方法是设置环境变量TEXINPUTS
以将路径添加../template
到 TeX 输入文件的搜索路径,例如 TeX Live/Linux/bash:
export TEXINPUTS=:../template
也可以使用绝对路径代替相对路径。开头的冒号(在 Windows 中可能是分号)表示首先TEXINPUTS
搜索配置的路径,然后 TeX 查看../template
。
泰克家居
模板文件也可以安装在主 TEXMF 树中,例如 TeX Live/Linux:
~/texmf/tex/latex/template/template.tex
~/texmf/tex/latex/template/template.sty