我是 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}
它完美地适用于部分和页面,但子部分根本没有出现。我设法重新定义\rightmark
via \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
有效和页面样式设置为headings
或myheadings
。但是,这与当前任务无关,因为页面样式已声明为fancy
。