排版文件时(在 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