我正在为我们办公室的出版物系列编写一个基于 book.cls 的自定义类,但是在如何设置条件方面遇到了问题。
有些出版物的格式是部分->章节->节,而有些则只是章节->节。我们的出版物格式要求交替的页脚是短标题(奇数页)和部分或章节(偶数页)。
我的问题是:如何确定文档结构是否有各个部分,如果有,如何相应地更改页脚?
答案1
以下是修改版https://tex.stackexchange.com/a/241999/4427
\documentclass{book}
\usepackage{fancyhdr,etoolbox}
\usepackage{hyperref}
\usepackage{lipsum} % just for the example
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[CE]{Short title}
\fancyfoot[CO]{\leftmark}
\fancyfoot[LE,RO]{\thepage}
\newif\ifpartused
\newcommand{\partmark}[1]{%
\markboth{Part \thepart: #1}{}%
\global\partusedtrue
}
\renewcommand{\chaptermark}[1]{%
\ifpartused\else
\markboth{Chapter \thechapter: #1}{}%
\fi
}
\newcommand{\stopparts}{\global\partusedfalse}
\makeatletter
\@ifundefined{H@old@part}
{\patchcmd{\@part}}
{\patchcmd{\H@old@part}}
{\markboth{}{}}
{\partmark{#1}}
{}{}
\makeatother
\begin{document}
\mainmatter
\chapter{Introduction}
\lipsum[1-30]
\part{First Part}
\chapter{Title A}
\lipsum[1-30]
\stopparts
\chapter{\bibname}
\lipsum[1-30]
\end{document}
如果注释掉\part
,则会在页脚中显示章节。无论有没有 都可以使用hyperref
。