下面的代码是我的内容main.tex
。
该文件位于目录下的a.tex
子目录中,也就是说:和。tmp
main.tex
./main.tex
./tmp/a.tex
我的代码的问题是:\IfFileExists
找不到文件./tmp/a.tex
。由于没有文件./a.tex
,我认为排版应该是NO FILE
。但实际排版是a.tex
。
LaTex
这是我的、、MikTex
或xelatex
其他版本的问题吗auctex
?
PS:该子目录tmp
用于存放编译过程中的那些tmpt和aux文件。
代码:
\documentclass{article}
\begin{document}
\makeatletter
\IfFileExists{a.tex}
{\filename@parse{a.tex}\filename@area\filename@base.\filename@ext}
{NO FILE}
\makeatother
\end{document}
答案1
\IfFileExists
测试“将会\input
有效”。
所以正如你所说,你已经配置好了一些东西,所以\input{a.tex}
输入了一个文件,那么测试就是正确的。
通常情况下,我们不希望(或不可能)知道文件位于输入路径的哪个位置。例如,此测试允许 LaTeX 检测到缺少的包,\usepackage{mistake}
但有一个工作示例,例如\usepackage{longtable}
works portably,即使绝对文件路径longtable.sty
依赖于系统