我试图编写一个自定义 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
包裹如果你有兴趣的话,也可以做类似的事情。