不同的目录和页眉标题(使用 titlesec 和 titleps)

不同的目录和页眉标题(使用 titlesec 和 titleps)

我尝试添加第二个可选参数来\section指定不同的目录和标题(例如在memoir类中)。

我使用titlesec(并titleps通过pagestyles选项)。我的代码运行良好除非该部分位于页面的最开始处(在我的 MWE 中,第四部分显示了这个问题)。

\documentclass[a4paper]{book}
\usepackage[pagestyles]{titlesec}
\usepackage[colorlinks]{hyperref}
\usepackage{xparse}
% my new \section macro
\LetLtxMacro\origsection\section
\RenewDocumentCommand\section{o o m}{%
  \IfValueTF{#1}{\def\titleintoc{#1}}{\def\titleintoc{#3}}%
  \IfValueTF{#2}{\def\titleinheader{#2}}{\def\titleinheader{\titleintoc}}%
  \pretitlemark{section}{\titleinheader}%
  \origsection[\titleintoc]{#3}%
  \sectionmark{\titleinheader}%
}
% page style
\newpagestyle{section-section}[]{
  \sethead[\firsttitlemarks\sectiontitle][][]{}{}{\firsttitlemarks\sectiontitle}
  \setheadrule{.4pt}
  \setfoot*{}{\thepage}{}
}
\pagestyle{section-section}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{Test}
\lipsum
\section{section 1 everywhere}
\lipsum[10-19]
\section[section 2 in toc and in header]{section 2 in text}
\lipsum[10-20]
\section[section 3 in toc][section  3 in header]{section 3 in text}
\lipsum[10-20]
\section[section 4 in toc][section  4 in header]{section 4 in text}
\lipsum[10-19]
\end{document}

第 8 页顶部显示“页眉中的第 3 节”,符合预期: 在此处输入图片描述

第 10 页的页面顶部显示“目录中的第 4 节”,而不是“页眉中的第 4 节”(预期结果): 在此处输入图片描述

如何修补titlesec(或titleps)以获得预期结果?

答案1

您可以\pretitlemark在下一页发货开始时\AtBeginShipoutNext使用阿特别格什包裹。

\documentclass[a4paper]{book}
\usepackage[pagestyles]{titlesec}
\usepackage[colorlinks]{hyperref}
\usepackage{atbegshi}
\usepackage{xparse}
% my new \section macro
\LetLtxMacro\origsection\section
\RenewDocumentCommand\section{o o m}{%
  \IfValueTF{#1}{\def\titleintoc{#1}}{\def\titleintoc{#3}}%
  \IfValueTF{#2}{\def\titleinheader{#2}}{\def\titleinheader{\titleintoc}}%
  \AtBeginShipoutNext{\pretitlemark{section}{\titleinheader}}%
  \pretitlemark{section}{\titleinheader}%
  \origsection[\titleintoc]{#3}%
  \sectionmark{\titleinheader}%
}
% page style
\newpagestyle{section-section}[]{
  \sethead[\firsttitlemarks\sectiontitle][][]{}{}{\firsttitlemarks\sectiontitle}
  \setheadrule{.4pt}
  \setfoot*{}{\thepage}{}
}
\pagestyle{section-section}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\chapter{Test}
\lipsum
\section{section 1 everywhere}
\lipsum[10-19]
\section[section 2 in toc and in header]{section 2 in text}
\lipsum[10-20]
\section[section 3 in toc][section  3 in header]{section 3 in text}
\lipsum[10-20]
\section[section 4 in toc][section  4 in header]{section 4 in text}
\lipsum[10-19]
\end{document}

相关内容