![使用 titlesec 在双面报告中显示 \chaptertitle 和 \sectiontitle](https://linux22.com/image/292905/%E4%BD%BF%E7%94%A8%20titlesec%20%E5%9C%A8%E5%8F%8C%E9%9D%A2%E6%8A%A5%E5%91%8A%E4%B8%AD%E6%98%BE%E7%A4%BA%20%5Cchaptertitle%20%E5%92%8C%20%5Csectiontitle.png)
我想自定义报告的标题。这些应该包含 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}
结果的前两个页面是: