如何使用 KOMA 类在运行页眉和页边距中以字典形式打印第一个或最后一个 \label{string} 的“字符串”?

如何使用 KOMA 类在运行页眉和页边距中以字典形式打印第一个或最后一个 \label{string} 的“字符串”?

我需要排版一本书,其中的各个章节由字符串标识,例如“PLA 1”,如该书的编辑所规定(出版商将这些字符串称为“cite-keys”。)

有时,一本书的版面会包含几个章节,这意味着几个引用关键词。

  • 这些引用关键字需要打印在外边缘,与章节位于同一行。
  • 此外,左页的第一个当前引用键必须打印在偶数页的页眉中。
  • 出现在右页的最后一个当前引用键必须位于奇数页的运行页眉中。

如何在页眉和页边距中打印这些特殊字符串?

我曾想过使用\label{SCA 1},但后来我意识到\labels实际上是计数器。

我尝试使用\marks(与emarks包一起),但我不明白。

正在进行的 MWE:

\documentclass{scrbook}

\usepackage{lipsum}

\documentclass{scrbook}

\usepackage{lipsum}

\usepackage{scrpage2}

\pagestyle{scrheadings}
\ihead[]{}
\chead[]{\pagemark}
\ohead[\headmark]{\headmark}


\begin{document}
\section*{Section title}\label{PLA 1}
\lipsum[1]

Label string should be here \nameref{PLA 1}

\end{document}

我需要使用 Koma 类。我看到有人在某处使用fancyhdrtitlesec,但 Koma 手册建议不要使用其中任何一个或它们(例如,该titlesec包会干扰选项headings=optiontotoc)。

我看到了几个问题的答案http://tex.stackexchange.com,但没有一个能给我足够的指引来帮助我入门。

答案1

这是使用包的建议scrlayer-scrpage

\documentclass{scrbook}

\usepackage{lipsum}% dummy text
\usepackage{needspace}
\usepackage[manualmark]{scrlayer-scrpage}
\clearpairofpagestyles

%%% alternatively:
%\usepackage[manualmark]{scrpage2}
%\clearscrheadfoot
%\pagestyle{scrheadings}

\chead{\pagemark}
\lehead*{\rightmark}\rohead*{\leftmark}
\renewcommand\chaptermark[1]{\markboth{}{}}

\newcommand\myaddsec[2]{%
  \needspace{3\baselineskip}%
  \addsec[#1]{#1\markboth{#2}{#2}\marginpar[\raggedright#2]{\raggedleft#2}}%
}

\begin{document}
\tableofcontents
\chapter{Chapter Title}
\myaddsec{Section title}{PLA1}
\lipsum[1]
\myaddsec{Section title}{PLA2}
\lipsum[1-3]
\myaddsec{Section title}{PLA3}
\lipsum[1]
\myaddsec{Section title}{PLA4}
\lipsum[1-5]
\myaddsec{Section title}{PLA5}
\lipsum[1]
\myaddsec{Section title}{PLA6}
\lipsum[1-2]

Label string should be here 

\end{document}

结果 在此处输入图片描述

相关内容