使用 fancyhdr 包含书名和部分名称的标题

使用 fancyhdr 包含书名和部分名称的标题

我目前正在用法语写一本由三部分组成的书(使用 \part{})。使用 fancyhdr 包,我希望将书的标题放在偶数页上,将部分的名称(而不是其中部分的名称)放在奇数页上。我该如何实现这一点,尤其是因为书名(“Éléments de Géométrie”)包含 fancyhdr 无法很好地呈现的重音符号。

这是这两个问题的图片,标题未正确呈现(左),并且我只想打印部分的名称而不是部分的名称(右)。

在此处输入图片描述

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[ER]{\nouppercase\leftmark{Éléments de Géométrie}}
\fancyhead[OL]{\nouppercase\rightmark}
\fancyhead[EL,OR]{\thepage}

对于字符编码我使用

\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8]{inputenc}

值得注意的是,包含重音符号的部分名称可以正常工作,例如: 在此处输入图片描述

答案1

我已成功解决了这两个问题。我通过确保在序言的最开始声明这一点来解决了编码问题:

\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}

然后,为了正确命名各个部分,我根据这个答案使用了这段代码这里

%%%%%%%%%%%%%%%%%%
% Set up headers %
%%%%%%%%%%%%%%%%%%

\newcommand*\parttitle{}
\let\origpart\part
\renewcommand*{\part}[2][]{%
\ifx\\#1\\% optional argument not present?
  \origpart{#2}%
  \renewcommand*\parttitle{#2}%
\else
  \origpart[#1]{#2}%
  \renewcommand*\parttitle{#1}%
\fi
}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[ER]{\nouppercase{Éléments de Géométrie}}
\fancyhead[OL]{\nouppercase\parttitle}
\fancyhead[EL,OR]{\thepage}

结果如下:

在此处输入图片描述

相关内容