以下是我想要定制的 MWE(包含我正在使用的的基本软件包):
\documentclass[a4paper,twosides,openany,12pt]{book}
\usepackage[T3,T1]{fontenc}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\fancypagestyle{main}{%
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[LO]{\nouppercase{\bf\sffamily{\rightmark}}}
\fancyhead[RE]{\small\sffamily{\leftmark}}
}
\usepackage[bf,sf]{titlesec}
\RequirePackage{fix-cm}
\usepackage{appendix}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\mainmatter
\pagestyle{main}
\chapter{One}
\section{One.one}
\lipsum[1-7]
\section{One.two}
\lipsum[8-9]
\begin{appendices}
\chapter{Two}
\section{Two.one}
\lipsum[10-19]
\section{Two.two}
\lipsum[19-25]
\end{appendices}
\end{document}
下面我展示上述代码的结果。
作为我感兴趣的一个实例,我只有一个附录,所以我不需要它被称为“附录 A”,因为没有“附录 B”。我想达到以下定制级别:
- 在章节标题中,我希望它被称为“附录”(没有“编号”字母 A);但是,在章节(章节、小节、方程式等)中,我希望它用一个字母表示,比如说“Ô;
- 在标题中,我希望以不同的方式调用它,比如说“App.”,同时保持与以前相同的标题样式(在我的情况下,大写无衬线字体,见上图第二张图);
- 在目录中,我希望它能被另一个不同的名字所称呼,比如说“Appen”。
现在,通过复制和粘贴其他问题解决方案的摘录,我“能够”在某种程度上获得(1)和(2)(参见下面 MWE 后的图);我不知道如何获得(3),而我的代码介于可悲和可怕之间,MWE:
\documentclass[a4paper,twosides,openany,12pt]{book}
\usepackage[T3,T1]{fontenc}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\fancypagestyle{main}{%
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[LO]{\nouppercase{\bf\sffamily{\rightmark}}}
\fancyhead[RE]{\small\sffamily{\leftmark}}
}
\usepackage[bf,sf]{titlesec}
\RequirePackage{fix-cm}
\usepackage{appendix}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\mainmatter
\pagestyle{main}
\chapter{One}
\section{One.one}
\lipsum[1-7]
\section{One.two}
\lipsum[8-9]
\begin{appendices}
\makeatletter
\renewcommand{\chaptermark}[1]{%
\markboth{APP.\quad{TWO}}{}}
\makeatother
\chapter{Two}
\renewcommand\thechapter{\~{A}}
\section{Two.one}
\lipsum[10-19]
\section{Two.two}
\lipsum[19-25]
\end{appendices}
\end{document}
下面我展示一下上面这段糟糕代码的结果。
“成功”定制章节标题和分段(为此,我手动调整了“附录”和附录标题之间的垂直间距),如下:
“成功”自定义页眉(为此,我手动修改了章节标记,并手动调整了“App.”与其名称之间的水平间距,手工添加),如下:
所以问题是:应该如何正确地做这件事?或者至少如何不那么不正确地做?
附言:我尽力避免重复的问题;我阅读了很多不同的问题;很多问题都与这个问题非常接近,但没有一个是我想要达到的;很可能我想要的不是那么复杂,只需调整其中一个答案就可以得到,但我恐怕我不够熟练。
答案1
请原谅我迟了一年才来发帖,但我在收件箱中发现了这个。虽然我猜你不再需要它了,但我仍然为后人提供了一个解决方案。以下是一些观察结果:
- 使用您提供的代码作为解决方案,我仍然得到附录 A作为章节标题,所以我不明白为什么你只得到了附录。为了解决这个问题,我在命令
\renewcommand\thechapter{}
前添加了\chapter
。 - /不是必需的。事实上,没有必要重新定义。只需在命令后面加上就足够了,因为
\makeatletter
总是取其中的最后一个。\makeatother
\chaptermark
\markboth
\chapter
\leftmark
- 目录条目可以指定为
\chapter
命令的可选参数。通常,这也将用于页眉,但由于您指定了单独的条目,\markboth
因此该条目将被覆盖。
这就是完整的解决方案。
\documentclass[a4paper,twosides,openany,12pt]{book}
\usepackage[T3,T1]{fontenc}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\fancypagestyle{main}{%
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[LO]{\nouppercase{\bf\sffamily{\rightmark}}}
\fancyhead[RE]{\small\sffamily{\leftmark}}
}
\usepackage[bf,sf]{titlesec}
\RequirePackage{fix-cm}
\usepackage{appendix}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\mainmatter
\pagestyle{main}
\chapter{One}
\section{One.one}
\lipsum[1-7]
\section{One.two}
\lipsum[8-9]
\begin{appendices}
\renewcommand\thechapter{}
\chapter[Appen. \~{A}]{Two}
\markboth{APP.\quad TWO}{}
\renewcommand\thechapter{\~{A}}
\section{Two.one}
\lipsum[10-19]
\section{Two.two}
\lipsum[19-25]
\end{appendices}
\end{document}
顺便说一下,使用当前的 LaTeX,你可以这样写Ã
:\~{A}
目录
章节标题
页眉