![自定义 topmatter 变量](https://linux22.com/image/274957/%E8%87%AA%E5%AE%9A%E4%B9%89%20topmatter%20%E5%8F%98%E9%87%8F.png)
在用于家庭作业的简单文档类中,除了顶部内容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
)。