页面样式 myheadings 如何工作?

页面样式 myheadings 如何工作?

我不明白如何使用基本标题。为什么以下不创建左标题和右标题?(\markright给出了同样的问题。)

\documentclass[oneside]{article}
\pagestyle{myheadings}
\markboth{left}{right}

\begin{document}
.
\end{document}

生成:

在此处输入图片描述

我正在使用 Kopka 和 Daly 的书,第 4 版第 46 页。

答案1

\markboth不设置当前页面的左右标题部分,但分数用于偶数/左页和奇数/右页的页眉。标记是为页面存储的某种内部标签,可在以后构建页面时访问。

您的文档以奇数页开始,因此页眉中的页码为“右”。此外,oneside启用此选项后,所有后续页面也会显示“右”,因为它们都被视为右页。如果您将类选项更改为并添加一些新的空白页,则可以看到效果twoside。现在,页眉中的页码在“右”和“左”之间切换。

内部发生了什么?如果您选择myheadings页面样式,LaTeX 会调用一个宏\ps@myheadings来完成所有相关设置。其中我们看到

\def \@evenhead {\thepage \hfil \slshape \leftmark }
\def \@oddhead {{\slshape \rightmark }\hfil \thepage }

\@oddhead设置奇数页/右页页眉时调用的宏在哪里。格式与您在示例文档的输出中看到的格式完全相同。\rightmark这是由设置的文本(隐式)\markboth

请注意,调用不会直接设置和标记\markboth的文本,而是在内部使用 TeX 的标记系统。因此,LaTeX 的基本上对应于 TeX 的(页面上的最后一个标记)和(页面上的第一个标记)。因此,您可能希望第二次调用会将第一页的标题更改为新的正确文本,但实际上使用的是第一次调用中的文本,即 的值。\leftmark\rightmarkleftmark\botmark\rightmark\firstmark\markboth\firstmark

另请参阅fancyhdr软件包文档它更详细地解释了标记系统。我强烈建议通过此包更改页面样式,而不是手动更改。

相关内容