使用 \jobname 或 \currfilename 时避免使用引号

使用 \jobname 或 \currfilename 时避免使用引号

排版文件时(在 Windows 机器上使用 TeXworks),如果文件包含空格,则jobname将包含用双引号括起来的文件名。pdflatex Local\ Guide.tex将设置 jobname 为 ,"Local Guide"并将 currfilename 设置为"Local Guide".tex

这对我来说有点不合需要。有什么方法可以消除引号吗?我的公司设计要求文件名出现在页脚中 - 包括文件扩展名 .tex 但不包括引号。

答案1

这些引号是(或应该)在“幕后”平衡的。因此,我们可以剥去一组引号,例如

\documentclass{article}
\newcommand*{\myjobname}{}
\newcommand*{\setmyjobname}{%
  \edef\myjobname{\jobname}%
  \expandafter\expandafter\expandafter\setmyjobnameaux
    \expandafter\myjobname\expandafter"\myjobname"\relax
}
\newcommand*{\setmyjobnameaux}{}
\def\setmyjobnameaux#1"#2"#3\relax{\def\myjobname{#2}}
\setmyjobname
\begin{document}
[\jobname][\myjobname]
\end{document}

这里的想法是,"#2"无论原始名称周围是否有引号,它都会匹配“真实”名称。我们无法更改(或者说我们无法更改它使用的内部数据),因此我将“简化”值称为不同的名称。这也避免了其他内容使用并需要引号的\jobname情况。\jobname

相关内容