\IfFileExists 的错误文件位置

\IfFileExists 的错误文件位置

下面的代码是我的内容main.tex

该文件位于目录下的a.tex子目录中,也就是说:和。tmpmain.tex./main.tex./tmp/a.tex

我的代码的问题是:\IfFileExists找不到文件./tmp/a.tex。由于没有文件./a.tex,我认为排版应该是NO FILE。但实际排版是a.tex

LaTex这是我的、、MikTexxelatex其他版本的问题吗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依赖于系统

相关内容