请考虑以下文档:
\documentclass[11pt,a4paper,twoside]{book}
\usepackage[titletoc,toc,page]{appendix}
\begin{document}
\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{3}
\tableofcontents
\chapter{First chapter}
\begin{appendices}
\chapter[]{Name of appendix}
\label{ap1}
blah blah
\end{appendices}
\end{document}
这会产生TOC
:
Contents
1 First chapter......3
Appendices...........5
Appendix A...........7
并在文档正文中写道:
Chapter 1
First chapter
Appendices
Appendix A
Name of appendix
blah blah
我不想给附录命名,我觉得这无关紧要。但我被迫使用命令来做到这一点\chapter[]{Name of appendix}
。
有没有办法不是必须给每个附录命名吗?这是我希望在文档正文中获得的结果(保持TOC
不变):
Chapter 1
First chapter
Appendices
Appendix A
blah blah
现在,我知道我可以将\chapter[]{}
命令留空,这样标题就不会显示,但我正在寻找一个更完整的解决方案,而不仅仅是一个丑陋的黑客。
PD:这个问题起源于这里。
编辑
抱歉,我忘记了我的文档是西班牙语的,所以我没有添加特定的包。这是添加了 Werner 的新定义的文档现在的样子:
\documentclass[11pt,a4paper,twoside]{book}
\makeatletter
\newcommand{\nonameappendix}{%
\def\@makechapterhead##1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
%\vskip 20\p@ % <--- Removed
\fi
\fi
%\interlinepenalty\@M % <--- Removed
%\Huge \bfseries ##1\par\nobreak % <--- Removed
\vskip 40\p@
}}%
\def\chaptermark##1{%
\markboth {\MakeUppercase{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\@chapapp\ \thechapter%
\fi
\fi
}}{}}}
\makeatother
\newcommand{\newappendix}{\chapter[]{}}%
\usepackage[titletoc,toc,page]{appendix}
\usepackage[latin1]{inputenc}
\usepackage[spanish,activeacute]{babel}
\begin{document}
\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{3}
\tableofcontents
\chapter{First chapter}
\renewcommand{\appendixtocname}{Ap\'endices}
\renewcommand{\appendixpagename}{Ap\'endices}
\begin{appendices}
\nonameappendix
\newappendix
\label{ap1}
\include{apendiceA}
\end{appendices}
\end{document}
文件中apendiceA.tex
只有文本(即:没有章节命令、没有标签等)
我遇到的问题是:
1-我进入了Apéndice A.
目录(注意末尾的点)。这其实是小问题,但仍然困扰着我。
2- 在文档正文中,Apéndice A
标题显示后,文本才从下一页开始。这种情况比较严重。
答案1
\nonameappendix
这是一个提供和的选项\newappendix
。第一个命令设置章节标题宏(删除章节标题中包含的名称),有效地将其视为\chapter*
。第二个命令这样做是\chapter[]{}
为了方便。
\documentclass[11pt,a4paper,twoside]{book}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\makeatletter
\newcommand{\nonameappendix}{%
\def\@makechapterhead##1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
%\vskip 20\p@ % <--- Removed
\fi
\fi
%\interlinepenalty\@M % <--- Removed
%\Huge \bfseries ##1\par\nobreak % <--- Removed
\vskip 40\p@
}}%
\def\chaptermark##1{%
\markboth {\MakeUppercase{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\@chapapp\ \thechapter%
\fi
\fi
}}{}}}
\makeatother
\newcommand{\newappendix}{\chapter[]{}}%
\usepackage[titletoc,toc,page]{appendix}% http://ctan.org/pkg/appendix
\begin{document}
\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{3}
\tableofcontents
\chapter{First chapter}
\begin{appendices}
\nonameappendix
\newappendix
\label{ap1}
\lipsum[1]
\newappendix
\lipsum[2]
\end{appendices}
\end{document}
还有\chaptermark
通常APPENDIX <num>.\ TITLE
在标题中设置的对 的要求修改。现在它只是设置APPENDIX <num>
。这也被 修改\nonameappendix
,其定义取自book.cls
。