在我的主 LaTeX 文件中,我使用了许多动态(内容不断更改)的输入文件。我想将其中一些文件放在更高级别的文件夹中,但同时又不想更改其名称。
Filefolder\Latexmainfile
我怎样才能改变它,以便它看起来像 Latexmainfile 中的文件以及 仅有的在(文件夹)中
\input{./deckblatt.tex}
答案1
以下内容是根据 Mac OS X 的 FHS 实现编写的。这原则上适用于任何类 UNIX 操作系统。Pdflatex 允许您指定完整路径:
\input{/Users/user_name/some/path}
在类 Unix 系统下你甚至可以在路径中使用 shell(bash) 变量:
\input{$HOME/some/path}
或常见缩写
\intput{\string~/some/path}
(注意:\string
这里使用 来告诉 latex 将字符传递给 shell 而不是采取“含义”)
当然,您也可以指定相对路径。这意味着您当然需要知道您的活动路径是什么。对于 pdflatex,这通常是您的主文档所在的路径(或目录)(以 pdflatex 作为参数给出)。
\input{some_file}
这将告诉 pdflatex 使用some_file
位于活动目录中的那个。(如果不是,则会引发错误。)
\input{./some_file}
会做同样的事情,同时
\input{../some_file}
将告诉 pdflatex 使用some_file
位于父文件夹(上一级)中的文件夹。
那么有人可能会问为什么?在 UNIX 或 Windows 等常见操作系统下,点表示法占主导地位,因此它.
代表当前/活动文件夹和..
父文件夹。因此../../
将代表上两级文件夹(父文件夹的父文件夹)。这是可能的,因为目录树只知道某一级别的一个父文件夹。因此“向上”在任何级别都是一样的。
答案2
您可以按如下方式定义输入文件:
\makeatletter
\def\input@path{{/path/folder/}}
\makeatother
如果有多个目录,你可以使用
\makeatletter
\def\input@path{{/path/folder1/}{/path/folder2/}}
\makeatother