如何根据文章访问我自定义类中的标题和作者,以便将它们插入到我自动设置的页脚中?
我试过了\@title
,\@author
但是什么也没有出现。
答案1
\@title
从技术上讲,只有在使用and\@author
时才定义:\title
\author
\def\title#1{\gdef\@title{#1}}
\def\@title{\@latex@error{No \noexpand\title given}\@ehc}
\def\author#1{\gdef\@author{#1}}
\def\@author{\@latex@warning@no@line{No \noexpand\author given}}
也就是说,如果你引用\@title
和/或\@author
没有调用时\title
,\author
首先应该产生警告。为了避免这种情况,基于您正在编写特殊类的事实,您可以使用不同的方法:
\let\@title\@empty
\let\@author\@empty
\fancyfoot[C]{\ifx\@author\@empty\else\@author~--~\fi\ifx\@title\@empty\else\@title\fi}
如果两者都已定义,则上述代码将页脚设置为。只有未定义作者时AUTHOR - TITLE
才会这样。如果给出了作者但没有标题,则可以扩展它以正常工作。TITLE
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\makeatletter
\fancyfoot{}
\fancyfoot[C]{\ifx\@author\@empty\else\@author~--~\fi\ifx\@title\@empty\else\@title\fi}
\let\@title\@empty
\let\@author\@empty
\makeatother
\title{My title}
\author{Me}
\pagestyle{fancy}%
\begin{document}
\lipsum[1-3]
\end{document}
如果你实际上也使用\maketitle
as ,那么你需要做更多的工作。下面的 MWE 添加\@@title
and\@@author
而不是\@title
and \@author
:
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\makeatletter
\def\title#1{\gdef\@title{#1}\gdef\@@title{#1}}
\def\author#1{\gdef\@author{#1}\gdef\@@author{#1}}
\let\@@title\@empty
\let\@@author\@empty
\fancyfoot{}
\fancyfoot[C]{\ifx\@@author\@empty\else\@@author~--~\fi\ifx\@@title\@empty\else\@@title\fi}
\title{My title}
\author{Me}
\begin{document}
\maketitle
\thispagestyle{fancy}%
\lipsum[1-3]
\end{document}