在文档中编辑 `\@title`

在文档中编辑 `\@title`

我正在使用一个info.tex包含标题、作者姓名等的文件:

\author{my name}
\title{my title}
\date{\today}

我在其他文件中读到了这个文件:

\documentclass{article}
\input{info}
\begin{document}
    \maketitle
\end{document}

现在我有另一个文件,该文件具有相同的作者姓名等,但标题略有不同:对于之前的标题,我必须添加“第二部分”(好像是\title{my title part II})。我不想再次重写标题(因为我有许多这样的文件),而是想从此文档编辑标题名称。

我试过

\makeatlettezr
\let\newtitle\@title
\makeatother
\renewcommand{\newtitle}{\@title part II}
\makeatletter
\renewcommand{\@title}{\newtitle}
\makeatother

但正如您所预料的,我得到了错误。有人能帮忙吗?

答案1

您可以使用\edef尽可能扩展定义的方法来重新定义它。因此,您可以执行以下操作:

\makeatletter
\edef\@title{\@title\ part II}
\makeatother

如果你的\title宏确实包含不应该扩展的宏,你可以进行设置,以便\@title只扩展一次\unexpanded\expandafter

\makeatletter
\edef\@title{\unexpanded\expandafter{\@title\ part II}}
\makeatother

在这种情况下,只有括号后的第一个标记(\@title在本例中)将被扩展一次。

相关内容