\@currname 在 MikTeX 中不起作用

\@currname 在 MikTeX 中不起作用

几周前(大概是 5 周前?)还\@currname运行正常。后来我猜我更新了 MikTeX,我经常更新,但现在不行了。MWE:

% scrap.sty
\title{1\@currname2}

% scrap.tex
\documentclass{article}
\usepackage{scrap}
\begin{document}
\maketitle
\end{document}

标题最终变成 12。我这里做错了什么吗?

答案1

写入的默认结果\title{<stuff>}<stuff>存储在 内\@title,最终由 使用\maketitle。此外,<stuff>根本没有扩展,因此使用根据上下文而变化的宏可能会导致不必要的结果。

解决此问题的方法可以是明确地将扩展\@currname作为标题的一部分。两种方法如下:

\xdef\@title{1\@currname2}

或者

\begingroup\edef\x{\endgroup\noexpand\title{1\@currname2}}\x

在此处输入图片描述

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents*}{scrap.sty}
%\xdef\@title{1\@currname2}% Option 1
\begingroup\edef\x{\endgroup\noexpand\title{1\@currname2}}\x% Option 2
\end{filecontents*}

\usepackage{scrap}

\begin{document}
\maketitle
\end{document}

相关内容