使用 titlesec 在双面报告中显示 \chaptertitle 和 \sectiontitle

使用 titlesec 在双面报告中显示 \chaptertitle 和 \sectiontitle

我想自定义报告的标题。这些应该包含 chaptertitle 和 sectiontitle。从这里开始:

由于小节原因,标题在章节页面上显示不正确

我已经使用 fancyhdr{} 制作了一个可以工作的 MWE

\documentclass[10pt,twoside]{report}
\usepackage{blindtext}
\usepackage{fancyhdr}
\pagestyle{fancy}

\renewcommand{\chaptermark}[1]{% 
\markboth{#1}{}} 

% Allows calling chapter and section names in headers and footers.
\renewcommand{\chaptermark}[1]{%
 \markboth{#1}
  {\noexpand\firstsectiontitle}}
\renewcommand{\sectionmark}[1]{}
\renewcommand{\sectionmark}[1]{%
  \markright{#1}\gdef\firstsectiontitle{#1}}
\newcommand\firstsectiontitle{}

% General Header and Footer
\fancyhf{}
\fancyhead[LE]{\leftmark \space - \space \rightmark}
\fancyhead[RO]{\rightmark \space - \space \leftmark}
\fancyfoot[LE]{\thepage}
\fancyfoot[RO]{\thepage}

% Chapter Header and Footer
\fancypagestyle{plain}{%
\fancyhf{}
\fancyhead[LE]{\leftmark \space - \space \rightmark}
\fancyhead[RO]{\rightmark \space - \space \leftmark}
\fancyfoot[LE]{\thepage}
\fancyfoot[RO]{\thepage}
}

%DOCUMENT
\begin{document}

\chapter{First chapter}
\section{First section}
\blindtext[6]
\pagebreak
\section{Second section}
\blindtext[6]
\pagebreak
\chapter{Second chapter}
\section{First section}
\blindtext[4]
\pagebreak
\section{Second section}
\blindtext[4]

\end{document}

无论如何,我都在使用 titlesec,所以我想知道我是否可以实现类似的功能。在这里得到了很大的帮助: 如何使章节/节页面的页眉中显示小节标题 我已经这样做了:

\documentclass[10pt,twoside]{report}
%\documentclass[10pt]{report}
\usepackage[a4paper]{geometry}
\usepackage{blindtext}
\usepackage{ifthen}
\usepackage[pagestyles,extramarks]{titlesec}

\settitlemarks*{chapter,section}

\newpagestyle{mystyle}{
\sethead
    [\chaptertitle\ifthesection{\ --\ \firstextramarks{section}\sectiontitle}{}]
    [][]
    {}{}
    {\chaptertitle\ifthesection{\ --\ \firstextramarks{section}\sectiontitle}{}}
\setfoot[\thepage][][]{}{}{\thepage}
}
\pagestyle{mystyle}
\assignpagestyle{\chapter}{mystyle}

\begin{document}

\chapter{First chapter}
\section{First section}
\blindtext[6]
\pagebreak
\section{Second section}
\blindtext[6]
\pagebreak
\chapter{Second chapter}
\section{First section}
\blindtext[4]
\pagebreak
\section{Second section}
\blindtext[4]

\end{document}

使用默认(单面)布局效果很好。但是,当我转到双面布局时,章节名称不会显示在章节页面上。我在 titlesec 文档中找不到任何内容,所以我的问题是:

  • 为了简单起见,尝试避免使用 fancyhdr{} 是否有意义?
  • 如果是,我该如何显示部分名称?

提前致谢!

答案1

您需要的是outermarks选项,而不是extramarks。并且您拥有的代码只能在每一页上产生相同顺序的标题。

这是一个可行的代码,我使其尽可能简单:

\documentclass[twoside]{report}%
\usepackage[utf8]{inputenc}
\usepackage{fourier, heuristica}
\usepackage[a4paper]{geometry}
\usepackage{blindtext}

\usepackage[pagestyles, outermarks]{titlesec}

\newpagestyle{mystyle}{
\sethead
    [\chaptertitle\ifthesection{~--~\sectiontitle}{}][][]
    {}{}{\ifthesection{\sectiontitle~--~}{}\chaptertitle}
\setfoot[\thepage][][]{}{}{\thepage}
}
\pagestyle{mystyle}
\assignpagestyle{\chapter}{mystyle}

\begin{document}

\chapter{First chapter}
\section{First section}
\blindtext[6]
\pagebreak
\section{Second section}
\blindtext[6]
\pagebreak

\chapter{Second chapter}
\section{First section}
\blindtext[4]
\pagebreak
\section{Second section}
\blindtext[4]

\end{document} 

结果的前两个页面是:

在此处输入图片描述

在此处输入图片描述

相关内容