为什么 rightmark 没有出现在标题中?

为什么 rightmark 没有出现在标题中?

我是 LaTeX 的新手,我找不到以下问题的解决方案:我希望部分出现在标题的左侧,子部分出现在中间,页面出现在左侧。我想使用以下内容:

\usepackage{fancyhdr}  
\usepackage[a4paper,left=2.5cm,right=2.5cm,top=3.0cm,bottom=1.5cm,headsep=1cm{geometry}  
\pagestyle{fancy}  
\fancyhf{}  
\fancyhead[R]{\thepage}  
\fancyhead[C]{\nouppercase{\rightmark}}  
\fancyhead[L]{\nouppercase{\leftmark}}  
\fancyheadoffset[R,L]{1cm}  
\renewcommand{\headrulewidth}{0.5pt}  

它完美地适用于部分和页面,但子部分根本没有出现。我设法重新定义\rightmarkvia \renewcommand{\rightmark}{\thesubsection},以便至少显示子部分的编号,但我如何将子部分的标题也放到标题的中心?

答案1

当 LaTeX 处理指令时,宏\rightmark会自动更新\markright,因此您不必自己重新定义它。

默认情况下,对于article类,\section问题通过自动调用的宏\markboth设置\leftmark(和,但通常将其设置为空) 。\rightmark\sectionmark\section

您必须重新定义\subsectionmark,默认情况下,不执行任何操作\markright

\renewcommand{\subsectionmark}[1]{\markright{\thesubsection\ #1}}

完整示例:

\documentclass{article}
\usepackage[
  a4paper,
  left=2.5cm,
  right=2.5cm,
  top=3.0cm,
  bottom=1.5cm,
  headsep=1cm
]{geometry}
\usepackage{fancyhdr}

\usepackage{blindtext}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\thepage}
\fancyhead[C]{\nouppercase{\rightmark}}
\fancyhead[L]{\nouppercase{\leftmark}}
\fancyheadoffset[R,L]{1cm}
\renewcommand{\headrulewidth}{0.5pt}

\renewcommand{\subsectionmark}[1]{\markright{\thesubsection\ #1}}

\begin{document}

\title{Title}
\author{Author}
\maketitle

\blinddocument

\end{document}

在此处输入图片描述

正如 Gustavo Mezzetti 所说,宏观\subsectionmark 执行\markright,前提是twoside有效页面样式设置为headingsmyheadings。但是,这与当前任务无关,因为页面样式已声明为fancy

相关内容