如何在文档类中强制执行首页样式?

如何在文档类中强制执行首页样式?

我编写了一个文档类,在其中定义了第一页的样式\fancypagestylefancyhdr但我的文档类的用户需要调用\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}

在此处输入图片描述

相关内容