toc 相关命令有什么\@mkboth
作用\markboth
?
答案1
\markboth
以下是LaTeX 内核:
\def\markboth#1#2{%
\begingroup
\let\label\relax \let\index\relax \let\glossary\relax
\unrestored@protected@xdef\@themark {{#1}{#2}}%
\@temptokena \expandafter{\@themark}%
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
它需要两个参数,旨在帮助设置twoside
模式下的页眉 - 第一个设置为左页眉,而第二个设置为右页眉。
相反,\@mkboth
被用作内部内核工具,并可能承担多种功能。从source2e
(部分65.3 标记约定,第 310 页):
像这样的命令
\tableofcontents
应该在某些页面样式中设置标记,使用\@mkboth
命令,即\let
通过 pagestyle 命令 (\ps@...
) 来\markboth
设置标题或\@gobbletwo
不执行任何操作。
例如,empty
页面样式(在 中latex.ltx
)设置
\def\ps@empty{%
\let\@mkboth\@gobbletwo\let\@oddhead\@empty\let\@oddfoot\@empty
\let\@evenhead\@empty\let\@evenfoot\@empty}
而headings
页面样式(在article.cls
) 套
\if@twoside
\def\ps@headings{%
\let\@oddfoot\@empty\let\@evenfoot\@empty
\def\@evenhead{\thepage\hfil\slshape\leftmark}%
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
\let\@mkboth\markboth
...