自定义 topmatter 变量

自定义 topmatter 变量

在用于家庭作业的简单文档类中,除了顶部内容title之外,我还应该如何指定一些属性?author

\begin{document}
\acadclass{Linear Algebra}
\psetnum{2}
\title{Some Title}
\author{Joe Shmoe}

我希望通过评估在标题中呈现“线性代数 - Pset 2”之类的内容\@acadclass - Pset \@psetnum。如何在 documentclass 中声明这些变量,以便可以从中访问它们\@acadclass

答案1

\author您可以在LaTeX 内核的定义中寻找灵感:

\def\author#1{\gdef\@author{#1}}

使用您的命令的示例:

\documentclass{article}
\usepackage{fancyhdr}
\pagestyle{fancy}

\makeatletter
\newcommand\acadclass[1]{\def\@acadclass{#1}}
\newcommand\psetnum[1]{\def\@psetnum{#1}}
\fancyhead[C]{\@acadclass--Pset~\@psetnum}
\makeatother

\acadclass{Linear Algebra}
\psetnum{2}


\acadclass{Linear Algebra}
\psetnum{2}
\title{Some Title}
\author{Joe Shmoe}

\begin{document}

test
\end{document}

显示标题的结果页面图像:

在此处输入图片描述

如果要使用标题\maketitle,请添加

\let\ps@plain\ps@fancy

里面

\makeatletter\makeatother

如果要在文件中使用这些定义.cls,您可以这样做

\@ifpackageloaded{fancyhdr}{}{}{\RequirePackage{fancyhdr}}
\pagestyle{fancy}

\newcommand\acadclass[1]{\def\@acadclass{#1}}
\newcommand\psetnum[1]{\def\@psetnum{#1}}
\fancyhead[C]{\@acadclass--Pset~\@psetnum}

(特别是在文件中.cls,你不是使用\makeatletter\makeatother)。

相关内容