![列出所有页眉的方法](https://linux22.com/image/354836/%E5%88%97%E5%87%BA%E6%89%80%E6%9C%89%E9%A1%B5%E7%9C%89%E7%9A%84%E6%96%B9%E6%B3%95.png)
如果我可以获得文档中所有页眉的列表(最好按正面和背面(即右手页和左手页)列出),而无需手动浏览输出 PDF,这将很有用。
一些初步想法包括:
- 暂时使用不同的样式文件来使内容列表以不同的方式显示。
- 只需从 .tex 中删除所有正文,这样就只剩下章节和小节标题。
我正在寻找以下形式的东西:
Chapter # | Verso | Recto
1 | chapter 1 title | subsection 1 title
1 | chapter 1 title | subsection 2 title
2 | chapter 2 title | subsection 1 title
对于其他工作,我可能需要某种形式:(我将其包括在内以防它使用类似的解决方案!)
Chapter # | Verso | Recto
1 | book title | chapter 1 title
2 | book title | chapter 2 title
如果这是一个特定于编辑器的问题,那么作为参考,我使用 Texmaker。
答案1
我不确定我是否理解了您想要做什么。但我认为解决方案取决于页眉和页脚使用的类和包。
也许您可以使用包scrwfile
在新列表中克隆目录并tocbasic
格式化这个新列表中的条目。
例子:
\documentclass{book}
\usepackage{scrwfile}
\TOCclone[Running heads]{toc}{lorh}
\AtEndDocument{\listoflorh}
\usepackage{tocbasic}
\makeatletter
\AfterTOCHead[lorh]{
\let\MakeUppercase\relax
\value{tocdepth}=0
\pagestyle{plain}
\DeclareTOCStyleEntry[
pagenumberbox=\@gobble,
entryformat=\bfseries\Large
]{tocline}{chapter}%
}
\makeatother
\DeclareTOCStyleEntry[
indent=0pt,
beforeskip=3pt,
level=0,
numwidth=0pt
]{tocline}{rhverso}
\DeclareTOCStyleEntry[
indent=5.5cm,
beforeskip=3pt,
level=0,
numwidth=0pt
]{tocline}{rhrecto}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{}
\renewcommand{\subsectionmark}[1]{\markright{\thesubsection. \MakeUppercase{#1}}}
\fancyhead{}
\fancyhead[LE]{\leftmark\addcontentsline{lorh}{rhverso}{\parbox[b]{5cm}{\protect\raggedright\leftmark}}}
\fancyhead[RO]{\rightmark\addcontentsline{lorh}{rhrecto}{\parbox[b]{5cm}{\protect\raggedright\rightmark}}}
\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\end{document}
或者scrlayer-scrpage
改为fancyhdr
:
\documentclass{book}
\usepackage{scrwfile}
\TOCclone[Running heads]{toc}{lorh}
\AtEndDocument{\listoflorh}
\usepackage{tocbasic}
\makeatletter
\AfterTOCHead[lorh]{
\let\MakeUppercase\relax
\value{tocdepth}=0
\DeclareTOCStyleEntry[
pagenumberbox=\@gobble,
entryformat=\bfseries\Large
]{tocline}{chapter}%
}
\makeatother
\DeclareTOCStyleEntry[
indent=0pt,
beforeskip=5pt,
level=0,
numwidth=0pt
]{tocline}{rhverso}
\DeclareTOCStyleEntry[
indent=5.5cm,
beforeskip=5pt,
level=0,
numwidth=0pt
]{tocline}{rhrecto}
\usepackage{scrlayer-scrpage}
\automark[subsection]{chapter}
\ihead{%
\headmark
\ifodd\value{page}%
\addcontentsline{lorh}{rhrecto}{\parbox[b]{5cm}{\protect\raggedright\headmark}}%
\else
\addcontentsline{lorh}{rhverso}{\parbox[b]{5cm}{\protect\raggedright\headmark}}%
\fi
}
\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\end{document}