我正在考虑制作一个 Perl 模块,以便轻松地从 Perl 脚本中格式化文本数据:Perl data structure + LaTeX template file -> LaTeX file -> run latex command on it -> produce pdf/ps output.
我的问题是,当 LaTeX 文件依赖于某些.sty
,文件时,.cls
这些文件是该文件的私有/特定文件,并且未在系统范围内安装,而不是 , graphicx
。(并且我不希望它们安装在系统范围内,甚至安装在我自己的用户范围内的目录中)。
假设 LaTeX 文件依赖于此目录层次结构中所有生活/提供/分发的A.sty
文件B.cls
,其主要特征是它们始终位于lib
相对于主 LaTeX 文件的子目录中:
/usr/share/templates/XYZ/main.tex.t
/usr/share/templates/XYZ/lib/A.sty
/usr/share/templates/XYZ/lib/B.cls
理想情况下,我想使用相对路径表示法导入A.sty
和B.cls
导入main.tex
。怎么做?不将这些文件安装在系统范围、当前用户范围或 LaTeX 知道的位置?
关于这个“模板”系统的更多信息:
该文件是一个模板,这意味着它包含LaTeX main.tex.t
,但也可以包含诸如、、等内容。The title is "<: title :>"
这些模板变量将被 Perl 替换,以生成然后进行处理的(例如,在 Perl 中使用模块)。这意味着我也可以控制环境变量。\textit{<: author :>}
\usepackage{<: package :>}
main.tex
LaTeX::Driver
因此,甚至可以通过模板变量包含.sty
最终 LaTeX 源文件中文件的绝对位置。
我使用 xelatex 是因为它支持多种语言,但也许我也可以按照您的建议使用 pdflatex?但我还不太喜欢 LuaTeX。