我正在使用以下 fancyhdr 包来操作论文中的标题:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyfoot{}
\fancyhead[RO,LE]{\thepage}
\fancyhead[LO]{\leftmark}
\fancyhead[RE]{\rightmark}
\renewcommand{\headrulewidth}{1pt}
\renewcommand{\footrulewidth}{0pt}
如果现在我想更改章节中的标题(章节名称太长),那么我会写下\chapter[chapter short name]{full name of chapter}
与章节相同的内容
但这样的公式在目录中给出了“章节简称”。如何在不改变目录中原有名称的情况下更改标题?
答案1
您可以使用\chaptermark{...}
来设置标题。
\sectionmark
比较棘手,因为它出现在同一个页面上。它旨在显示第一部分,并且由于\section
调用\sectionmark
,因此默认名称是第一部分。所以我创建了\mysection
不调用的\sectionmark
。
\documentclass{book}
\usepackage{lipsum}
\makeatletter
\newcommand{\mysection}[2][\empty]{\bgroup
\let\sectionmark=\@gobble
\edef\temp{#1}%
\ifx\empty\temp\relax \edef\temp{#2}\fi
\section[\temp]{#2}%
\egroup}
\makeatother
\begin{document}
\tableofcontents
\chapter[Short title]{Long title}
\chaptermark{Short header}
\lipsum[1-9]
\mysection[Short section title]{Long section title}
\sectionmark{Short section header}
\lipsum[10-12]
\end{document}
答案2
该类(和memoir
的超集)通过两个可选参数提供目录、标题和常规分段命令。例如:book
report
\documentclass{memoir}
\begin{document}
\tableofcontents
\chapter[title-in-toc][title-in-header]{main-title}
\section[title-in-toc-and-header]{main-title}
\subsection{main-title-in-toc-and-header}
\subsubsection[title-in-toc][title-in-header]{main-title}
...