我编写了一个文档类,在其中定义了第一页的样式\fancypagestyle
。fancyhdr
但我的文档类的用户需要调用\thispagestyle{firstpagestyle}
才能使这种特殊的页面样式生效。
我怎样才能让 documentclass 自动应用特殊的首页样式(需要 documentclass 用户干预)?
梅威瑟:
% myclass.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[v1.0]
\LoadClass[12pt]{article}
% no options yet
\DeclareOption*{\OptionNotUsed}
\ProcessOptions\relax
% header
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{Center header}
\fancypagestyle{firstpagestyle}{
\fancyhead[C]{First page center header}
}
% main.tex
\documentclass{myclass}
\usepackage{blindtext}
\begin{document}
\thispagestyle{firstpagestyle} % how to refactor this into myclass.cls?
\Blinddocument
\end{document}
答案1
我会用一次性钩子begindocument/end
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[v1.0]
\LoadClass[12pt]{article}
% no options yet
\DeclareOption*{\OptionNotUsed}
\ProcessOptions\relax
% header
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{Center header}
\fancypagestyle{firstpagestyle}{
\fancyhead[C]{First page center header}
}
\setlength{\headheight}{15pt}
\AddToHook{begindocument/end}{\thispagestyle{firstpagestyle}}
您的文件:
\documentclass{myclass}
\usepackage{blindtext}
\begin{document}
\Blinddocument
\end{document}