我正在尝试使用该getfiledate
包来CTAN
获取建议的最后文件修改日期。
我已经正确导入了该包并使用另一个文件进行了测试,该文件已命名table/classe.tex
并且运行良好。
当按照以下方式测试时,我收到错误
\getfiledate{tables/classification_Full.tex}
PS:当文件不存在时,错误会按预期正确显示。
答案1
打印文件名时会出现此问题。
如果你没有特殊需求(例如文件名中的宏),最简单的解决方法是
\getfiledate{\detokenize{tables/classification_Full.tex}}
否则,必须采用不同的方式制作字符串:
\begin{filecontents*}{clifte_test.tex}
Hello
\end{filecontents*}
\documentclass{article}
\usepackage{getfiledate}
\makeatletter
\def\gfd@prefix@a#1{%
\ifcsempty{gfd@marker}{}{\gfd@marker@a}%
\begingroup\edef\x{\endgroup
\unexpanded{\gfd@prefix\space\textcolor{\gfd@filenamecolor}}%
{\noexpand\ttfamily\noexpand\detokenize{#1}}%
\unexpanded{\space\gfd@postfix\space}%
}\x
}
\makeatother
\begin{document}
\getfiledate{clifte_test.tex}
\newcommand{\MYPREFIX}{clifte}% just to see macros can be used
\getfiledate{\MYPREFIX_test.tex}
\end{document}
我添加了\noexpand\ttfamily
,这样文件名就会以等宽字体打印(原始定义中并非如此)。如果您不想要等宽字体,请删除这两个标记;但是,如果您想要,请记住这样做,\usepackage[T1]{fontenc}
否则下划线将不会被打印(而是会出现一个点)。如果您使用较短的解决方法(并且文件名中没有宏),情况也是如此。