如何从自定义类访问 \@title

如何从自定义类访问 \@title

我试图编写一个自定义 LaTeX 类,我需要在其中访问 的值\@title。我写道

\newcommand{\makeack}{Hello World  \@title World}

但是当我在文件中\@title使用时,不会打印出的值。但我可以在修改后的定义中成功使用,例如\makeack.tex\@title\@maketitle

\def\@maketitle{% 
....
....
}

我是写作课的初学者。

答案1

调用 后,默认文档类会将与标题相关的宏(\@title\@date和)清空。如果您希望保留它们的副本,则需要将它们存储在其他地方。一种方法是更新(和朋友)宏,使其不仅将其内容存储在(是的,就是这样\@author\maketitle\title\@title\title做的),而且还存储在某个地方你的使用,例如\stored@title说:

\def\title#1{\gdef\@title{#1}\gdef\stored@title{#1}}
\def\author#1{\gdef\@author{#1}\gdef\stored@author{#1}}
\def\date#1{\gdef\@date{#1}\gdef\stored@date{#1}}

titling包裹如果你有兴趣的话,也可以做类似的事情。

相关内容