页眉中的备用章节标题,当新章节从页面顶部开始时也是如此

页眉中的备用章节标题,当新章节从页面顶部开始时也是如此

我使用fancyhdr在偶数页的页眉中显示当前章节标题book。我使用以下代码实现此目的:

\setlength{\headheight}{14pt}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[EL]{\leftmark}
\fancyhead[OR]{\scshape\nouppercase\rightmark}
\renewcommand{\chaptermark}[1]{%
    \markboth{\scshape #1}{}}

有些章节标题很长,我必须在标题中显示较短的标题(但不在目录中)。通常以下方法有效:

\section[Long section title]{Long section title}
\marksection{Short section title}

但是,当奇数页以新部分开始时,这将导致long section name第一页上出现。在这个答案,该问题通过以下方法解决:

\section[Long section title]{Long section title%
\sectionmark{Short section title}}
\sectionmark{Short section title}

(另请参阅答案中提供的宏)。但这对我来说也不起作用。我注意到他们使用了scrartcldocument 类,而我正在使用book,这可能是原因。这是我的 MWE(希望足够小):

\documentclass[a4paper, 11pt, openany]{book}
\usepackage[english]{babel}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{lipsum}% just for the example

\setlength{\headheight}{14pt}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\fancyhead[EL]{\leftmark}
\fancyhead[OR]{\scshape\nouppercase\rightmark}
\renewcommand{\chaptermark}[1]{%
    \markboth{\scshape #1}{}}

\newcommand{\markedsection}[2]{\section[#2]{#2% See the linked answer
\sectionmark{#1}}
\sectionmark{#1}}

\author{Author}
\title{Test book}

\begin{document}    
\maketitle    
\tableofcontents

\chapter[Test chapter]{Test chapter}
\section{First section}
\lipsum[4-11]

% Method 1
%\sectionmark{Short section title}
%\section[Long section title]{Long section title}
%\sectionmark{Short section title}

% Method 2
\markedsection{Short section title}{Long section title}    

\lipsum[1-6]    
\end{document}

(如果有帮助的话我可以提供 .pdf)。有些答案建议使用 KOMA-script 书籍课程,但这不是一个选择,因为这本书几乎已经完成,而且切换课程已经太晚了。

答案1

如果您切换到titleps,则可以使用当前代码,而且它似乎可以工作。更好的方法可能是使用软件包对其他标记集的扩展支持,从而避免需要解决方法。

或者,由于您正在使用titlesec,您可能只需设置分段命令即可避免采取特殊措施。但是,如果不了解您如何使用它,很难确定。

\documentclass[a4paper, 11pt, openany]{book}
\usepackage[english]{babel}
\usepackage[pagestyles]{titlesec}
\usepackage{lipsum}% just for the example

\newcommand{\markedsection}[2]{\section[#2]{#2% See the linked answer
\sectionmark{#1}}
\sectionmark{#1}}

\newpagestyle{myfancy}[\normalfont\normalsize\scshape]{%
  \setheadrule{.4pt}%
  \sethead[\toptitlemarks\chaptertitle][][]{}{}{\toptitlemarks\thesection\space\sectiontitle}%
  \setfoot*{}{}{\thepage}%
}
\pagestyle{myfancy}

\author{Author}
\title{Test book}

\begin{document}
\maketitle
\tableofcontents

\chapter[Test chapter]{Test chapter}
\section{First section}
\lipsum[4-11]

\markedsection{Short section title}{Long section title}

\lipsum[1-6]
\end{document}

最高分

相关内容