页眉和目录中的附录名称

页眉和目录中的附录名称

我的问题很简单:我想要一个这样的目录:

第 1 章 - 部分章节标题

附件 A - 部分附录标题

但我得到了:

第 1 章 - 部分章节标题

A章-一些附录标题

事实上我重新定义了目录(下面的代码)

标题有同样的问题:我想要:

附件 A - 部分附录标题

不是

A章-一些附录标题

以下 MWE 向您展示了该问题:

\documentclass[12pt,a4paper]{book}

% Ecrire en français
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{lmodern}
\usepackage{xspace} % Pour les espaces automatiques

% En têtes
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{\markright{\thesection~- ~#1}}
\renewcommand{\chaptermark}[1]{\markboth{\chaptername~\thechapter~-~ #1}{}}

\fancypagestyle{main}{
\fancyhead{} % clear all header fields
\fancyhead[LE]{\footnotesize{\scshape\nouppercase{\leftmark}}}
\fancyhead[RO]{\footnotesize{\scshape\nouppercase{\rightmark}}}
\fancyfoot{} % clear all footer fields
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0 pt}
\renewcommand{\footrulewidth}{0 pt}

}


% Part name in TOC
\usepackage{tocloft}
\usepackage{xpatch}
\renewcommand\cftpartpresnum{\hfill}
\renewcommand\cftpartleader{\hfill}
\addtocontents{toc}{\cftpagenumbersoff{part}}
\renewcommand{\thepart}{Partie \Roman{part} --\hspace{-.4cm}}
\renewcommand\cftchappresnum{Chapitre\ }
\renewcommand\cftchapaftersnum{\hfill--\hfill}
\renewcommand\cftchapnumwidth{3.2cm}
\renewcommand\cftdotsep{2}
%\renewcommand{\cftpartleader}{\cftdotfill{\cftdotsep}} %Si on veut mettre des pointillés
%\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} 
\newcommand\Bpart[1]{\part{\texorpdfstring{}{}#1}}
\newcommand\Bchapter[1]{\chapter{\texorpdfstring{}{Chapitre \arabic{chapter} -- }#1}}

% Nouvelles commandes
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}


\begin{document}

\tableofcontents

\pagestyle{main}

\chapter{Some plain stuff}

\appendix 

\chapter{Some appendix stuff}

\chapter{Some other}
\end{document} 

一个聪明的做法是重新定义代码中的\chapternamewhen ,但我没有成功。\appendix

如果有人知道如何修复此问题,请告诉我。谢谢。

答案1

这是一个解决方案

  1. 对于需要设置的标题

\makeatletter
\renewcommand{\chaptermark}[1]{\markboth{\@chapapp~\thechapter~-~ #1}{}}
\makeatother

  1. 对于目录,您需要设置

\makeatletter
\renewcommand\cftchappresnum{\@chapapp\ }
\makeatother

并添加\appendix

\makeatletter
\addtocontents{toc}{\protect\renewcommand\protect\cftchappresnum{\@chapapp\ }}
\makeatother

笔记您可以简单地使用\renewcommand\cftchappresnum{\chaptername\ } ,然后在后面添加\appendix\addtocontents{toc}{\protect\renewcommand\protect\cftchappresnum{\appendixname\ }} 以避免使用\makeatletter--\makeatother


完整代码

\documentclass[12pt,a4paper]{book}

% Ecrire en français
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{lmodern}
\usepackage{xspace} % Pour les espaces automatiques

% En têtes
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{\markright{\thesection~- ~#1}}
\makeatletter
\renewcommand{\chaptermark}[1]{\markboth{\@chapapp~\thechapter~-~ #1}{}}
\makeatother

\fancypagestyle{main}{
\fancyhead{} % clear all header fields
\fancyhead[LE]{\footnotesize{\scshape\nouppercase{\leftmark}}}
\fancyhead[RO]{\footnotesize{\scshape\nouppercase{\rightmark}}}
\fancyfoot{} % clear all footer fields
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0 pt}
\renewcommand{\footrulewidth}{0 pt}

}


% Part name in TOC
\usepackage{tocloft}
\usepackage{xpatch}
\renewcommand\cftpartpresnum{\hfill}
\renewcommand\cftpartleader{\hfill}
\addtocontents{toc}{\cftpagenumbersoff{part}}
\renewcommand{\thepart}{Partie \Roman{part} --\hspace{-.4cm}}
\makeatletter
\renewcommand\cftchappresnum{\@chapapp\ }
\makeatother
\renewcommand\cftchapaftersnum{\hfill--\hfill}
\renewcommand\cftchapnumwidth{3.2cm}
\renewcommand\cftdotsep{2}
%\renewcommand{\cftpartleader}{\cftdotfill{\cftdotsep}} %Si on veut mettre des pointillés
%\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} 
\newcommand\Bpart[1]{\part{\texorpdfstring{}{}#1}}
\newcommand\Bchapter[1]{\chapter{\texorpdfstring{}{Chapitre \arabic{chapter} -- }#1}}

% Nouvelles commandes
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}


\begin{document}



\tableofcontents

\pagestyle{main}

\chapter{Some plain stuff}

\appendix \makeatletter
\addtocontents{toc}{\protect\renewcommand\protect\cftchappresnum{\@chapapp\ }}
\makeatother

\chapter{Some appendix stuff}

\chapter{Some other}
\end{document}

相关内容