在页眉上显示所有章节标记

在页眉上显示所有章节标记

使用包输入文档titlesec, pagestyles可以轻松标记第一的最后的页眉中的章节标题。但如何显示全部页面中出现的分节标记与页眉有什么关系?谢谢!

这里是 MWE:

\documentclass[a4paper]{book}

\usepackage[pagestyles]{titlesec}
\newpagestyle{mapage}{%
    \setheadrule{1pt}
    \sethead[\color{red}\bfseries\toptitlemarks\sectiontitle--\bottitlemarks\sectiontitle][][\thepage/page header]
    {\thepage/page header}{}{\color{red}\bfseries\toptitlemarks\sectiontitle--\bottitlemarks\sectiontitle}%odd head
    \setfoot[][][]%even foot
    {}{\thepage}{}
}

\usepackage{blindtext,multicol,xcolor}
\begin{document}
\pagestyle{mapage}

\begin{multicols}{3}
\section{AA}
\blindtext
\section{BB}
\blindtext
\section{CC}
\blindtext
\section{DD}
\blindtext
\section{EE}
\blindtext
\section{FF}
\section{GG}
\section{HH}
\blindtext
\section{II}
\section{JJ}
\section{KK}
\section{LL}
\end{multicols}

\begin{multicols}{3}
    \section{MM}
    \section{NN}
    \section{OO}
    \blindtext
    \section{PP}
    \section{QQ}
    \section{RR}
    \section{SS}
    \section{TT}
    \section{UU}
    \blindtext
    \section{VV}
    \section{WW}
    \section{XX}
\end{multicols}

\end{document}

在此处输入图片描述

答案1

我有一个使用的解决方案fancyhdr,因为我对它比对 s 标头内容更熟悉titlesec。我甚至不知道我的解决方案是否易于转换为titlesec

我的解决方案是将所有章节标题放入 LaTeX3 seq(序列)中,并将章节标题的索引放入seq标记中。然后,在页眉中,我从中提取页面第一个标记和最后一个标记之间的章节标题seq。当然,这是通过一些 LaTeX3 编程完成的。

\documentclass[a4paper]{book}

\usepackage{fancyhdr}
\usepackage{extramarks}

\pagestyle{fancy}

\ExplSyntaxOn

\seq_new:N \section_list
\int_new:N \section_index

\renewcommand{\sectionmark}[1]{%
  \seq_gput_right:Nn \section_list {#1}
  \int_gincr:N \section_index
  \markright{\int_use:N \section_index}
}

\fancyhead[LO,RE]{\thepage/page~header}
\fancyhead[LE,RO]{
  \color{red}\bfseries
  \seq_map_indexed_inline:Nn \section_list {
    \int_compare:nNnF {##1} < {\firstrightmark} {
        \int_compare:nNnTF {##1} < {\lastrightmark}
          {##2--}
          {
            \int_compare:nNnT {##1} = {\lastrightmark}
              {##2}
          }
      }
    }
}

\ExplSyntaxOff

\usepackage{blindtext,multicol,xcolor}
\begin{document}
\begin{multicols}{3}
\section{AA}
\blindtext
\section{BB}
\blindtext
\section{CC}
\blindtext
\section{DD}
\blindtext
\section{EE}
\blindtext
\section{FF}
\section{GG}
\section{HH}
\blindtext
\section{II}
\section{JJ}
\section{KK}
\section{LL}
\end{multicols}

\begin{multicols}{3}
    \section{MM}
    \section{NN}
    \section{OO}
    \blindtext
    \section{PP}
    \section{QQ}
    \section{RR}
    \section{SS}
    \section{TT}
    \section{UU}
    \blindtext
    \section{VV}
    \section{WW}
    \section{XX}
\end{multicols}
\end{document}

在此处输入图片描述

在此处输入图片描述

相关内容