仅检索 fancyhdr 中的章节名称

仅检索 fancyhdr 中的章节名称

tufte-book文档类中,我很难弄清楚如何使用包将章节名称插入到右侧奇数页的页眉中fancyhdr。类似这样的内容:

第 2 章。章节标题。

从.def 文件中:

% The 'fancy' page style is the default style for all pages.
\fancyhf{} % clear header and footer fields
\ifthenelse{\boolean{@tufte@twoside}}
  {\fancyhead[LE]{\thepage\quad\smallcaps{\newlinetospace{\plaintitle}}}
    \fancyhead[RO]{\smallcaps{\newlinetospace{\chaptername{}~\thechapter}}\quad\thepage}}
  {\fancyhead[RE,RO]{\smallcaps{\newlinetospace{\chaptername{}~\thechapter}}\quad\thepage}}

我理解这一点\leftmark,并且\rightmark通常也能起到这样的作用,但究竟什么是命令才能仅获取章节的标题呢?

答案1

每章有三条信息:

  1. \thechapter,即数字。(例如,“第 2 章”中的 2。)
  2. \chaptername,这是当前语言中与“章节”一词对应的词。
  3. 以及\chaptermark该章节的实际标题。

您似乎正在寻找\chaptermark。另请参阅fancyhdr 文档尤其图 3 显示了一种实现此目的的方法:

\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}

编辑:再次查看后,它似乎tufte-book甚至没有章节编号。(这时 MWE 可以提供帮助。)这怎么样?

\documentclass{tufte-book}
\usepackage{fancyhdr}
\usepackage{lipsum}

\setcounter{secnumdepth}{0}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[RO]{\textsc{\nouppercase{\newlinetospace{{\leftmark}}\quad\thepage}}}

\begin{document}

\chapter{Sample Title}
\lipsum[1-9]

\chapter{Another Sample Title}
\lipsum[1-9]

\chapter{And One More}
\lipsum[1-9]

\end{document}

答案2

最后,我将 Sam 给出的答案整合到我在问题中建议的代码片段中。以下有效:

\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}  
\fancyhf{} % clear header and footer fields
\ifthenelse{\boolean{@tufte@twoside}}
  {\fancyhead[LE]{\thepage\quad\smallcaps{\newlinetospace{\plaintitle}}}%
    \fancyhead[RO]{\smallcaps{\newlinetospace{\chaptername{}~\thechapter. \leftmark}}\quad\thepage}}
  {\fancyhead[RE,RO]{\smallcaps{\newlinetospace{\chaptername{}~\thechapter. \leftmark}}\quad\thepage}}

这样,左页就显示书名,右页就显示章节标题。

由于某种原因, \smallcaps 与 chaptermark 的重新定义一起使用,它仅提供章节标题:

\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}

... 而不是下面的那个,它产生了单词chapter,后跟章节号和全名:

\renewcommand{\chaptermark}[1]{%
\markboth{\MakeUppercase{%
\chaptername\ \thechapter.%
\ #1}}{}}

相关内容