我正在使用appendix
和titlesec
包来控制章节标题和格式。我想重新定义附录章节标题的外观:如何将附录标题样式定义为 (1) 右对齐、(2) 垂直居中和 (3) 单独出现在一页上?如何在不重新定义文档正文中章节标题外观的情况下实现此目的?
以下是 MWE:
\documentclass{article}
\usepackage[title,toc,titletoc]{appendix}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage} % To make each section start on a new page
\usepackage{lipsum}
\begin{document}
\section{Section title}
\lipsum[4]
\begin{appendices}
\section{Appendix title}
\lipsum[4]
\end{appendices}
\end{document}
答案1
这是我尝试评论中的建议的结果,使用来自的选项appendix
在附录之前创建页面。不幸的是,这并不像人们想象的那么简单……
作为第一步,文档建议page
在加载类时添加选项可能会奏效。对于监控,我还添加了一个,\tableofcontents
因为问题中的 MWE 建议这是需要的。
结果:
这是因为appendix
使用文档类的\part
来生成附录页面并且article.cls
不会为新的部分开始新的页面。
我以为这可能不是那么糟糕,因为titlesec
可以重新定义\part
以及其他部分划分。然而,这没有用。它对\part{}
附录页面有效,但对附录页面无效。
我也尝试了和etoolbox
。然而,结果却与 不兼容,而且无论如何都没有得到预期的结果。\apptocmd
\pretocmd
titlesec
查看 的代码appendix.sty
,发现文档有点误导。它所做的是使用“页面”的格式,它认为给定文档类时必须有该格式。如果有章节,它会发出\clearpage
。否则,它不会发出 。
appendix
不是,它看起来是为了灵活性而设计的。
然后我尝试重新定义\appendixpage
以发出显式的\part*{}
。 结合titlesec
,这让我获得了正确的页面本身的格式。
遗憾的是,这对内容造成了严重破坏。附录不是一次性添加到内容中,而是添加了四次。
最后,我选择了蛮力破解的方法。首先,安装包:
\usepackage[title,toc,page]{appendix}
我们不使用,titletoc
因为我们会自己添加。现在,重新定义用于创建页面的命令:
\renewcommand\appendixpage{\clearpage\thispagestyle{empty}\mbox{}\vfill\begin{flushright}\LARGE\bfseries\addappheadtotoc\appendixpagename\vfill\mbox{}\end{flushright}\clearpage}
这实际上完成了所有工作。\addappheadtotoc
正在将附录内容添加到内容中。其余的只是格式化页面。您可以根据需要在此处调整格式。
为了使标题更加灵活,最好能够以与获取“附录 A 附录标题”相同的方式获取“附录 附录标题”之类的内容。为此,我们保存了\appendixpagename
和的当前定义\appendixtocname
:
\let\oldappendixtocname\appendixtocname
\let\oldappendixpagename\appendixpagename
然后根据新\appendixtitle
命令重新定义它们:
\renewcommand*\appendixtocname{\protect\large \oldappendixtocname\quad \appendixtitle}
\renewcommand*\appendixpagename{\oldappendixpagename\\\appendixtitle}
最后,创建新命令以使用占位符保存标题:
\newcommand*\appendixtitle{Title of Appendices}% title of appendices goes here
最后结果:
完整代码:
\documentclass{article}
\usepackage{titlesec}
% % wouldn't it be easier to use titlesec to do this rather than a manual intervention for each section? (Assuming that's what this is for)
\newcommand{\sectionbreak}{\clearpage} % To make each section start on a new page
\usepackage[title,toc,page]{appendix}
\renewcommand\appendixpage{\clearpage\thispagestyle{empty}\mbox{}\vfill\begin{flushright}\LARGE\bfseries\addappheadtotoc\appendixpagename\vfill\mbox{}\end{flushright}\clearpage}
\let\oldappendixtocname\appendixtocname
\let\oldappendixpagename\appendixpagename
\renewcommand*\appendixtocname{\protect\large \oldappendixtocname\quad \appendixtitle}
\renewcommand*\appendixpagename{\oldappendixpagename\\\appendixtitle}
\newcommand*\appendixtitle{Title of Appendices}% title of appendices goes here
\usepackage{lipsum}
\begin{document}
\tableofcontents
\section{Section title}
\lipsum[4]
\begin{appendices}
\section{Appendix title}
\lipsum[4]
\end{appendices}
\end{document}
答案2
那这个呢?
\documentclass{article}
\usepackage[title,toc,titletoc]{appendix}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage} % To make each section start on a new page
\usepackage{lipsum}
\begin{document}
\section{Section title}
\lipsum[4]
\begin{appendices}
\titleformat{\section}[block]{\null\vfill\hfill}{\thesection}{2em}{}[\vfill\aftergroup\clearpage]
\section{Appendix title}
\lipsum[4]
\end{appendices}
\end{document}
这个想法是,您只能在组\titleformat
内使用appendices
来更改环境内的格式。附录之后的部分将正常格式化。
您可以在 后添加格式化命令来调整格式以满足您的需要\hfill
。