![附录包 ToC 控件](https://linux22.com/image/265850/%E9%99%84%E5%BD%95%E5%8C%85%20ToC%20%E6%8E%A7%E4%BB%B6.png)
我想更改附录的对齐方式。我正在使用
\documentclass[12pt]{report}
...
\usepackage{titletoc}
\usepackage[toc,titletoc]{appendix}
\usepackage{tocloft}
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % for chapters
\renewcommand{\cftchapfont}{\uppercase}
\renewcommand{\cftchappagefont}{}
\renewcommand{\cfttoctitlefont}{\hfill\uppercase}
\renewcommand{\cftaftertoctitle}{\hfill}
\setlength{\cftbeforetoctitleskip}{-3em}
\renewcommand{\cftloftitlefont}{\hfill\uppercase}
\renewcommand{\cftafterloftitle}{\hfill}
\setlength{\cftbeforeloftitleskip}{-3em}
\renewcommand{\cftlottitlefont}{\hfill\uppercase}
\renewcommand{\cftafterlottitle}{\hfill}
\setlength{\cftbeforelottitleskip}{-3em}
我必须修改其他一些东西。这是我所拥有的。
APPENDICES................. 10
APPENDIX A ................ 13
APPENDIX B ................ 15
这就是我需要的。
APPENDICES................. 10
APPENDIX A ............. 13
APPENDIX B ............. 15
答案1
\titlecontents
一种可能性是使用titletoc
包裹。
评论:
请注意,不再需要
titletoc
该包的选项。appendix
\uppercase
是一个 TeX 命令,不应在 LaTeX 文档中使用;可以改用;但是,这两个命令都接收一个参数,因此在问题中提供的示例中\MakeUppercase
使用\uppercase
(或) 会产生错误。\MakeUppercase
还请注意,我的答案中的一些原始设置已被一些重新定义和补丁所取代;特别是,我使用了重新定义来
\l@chapter
使用带点的引线并使用大写字母设置章节条目的样式。内部命令\@cftmaketoctitle
、\@cftmakeloftitle
和\@cftmakelottitle
fromtocloft
被修补(在包的帮助下etoolbox
)以分别使用大写字体作为 ToC、LoF 和 LoT 的标题。
代码:
\documentclass{report}
\usepackage[toc]{appendix}
\usepackage{titletoc}
\usepackage{tocloft}
\usepackage{etoolbox}
\usepackage{textcase}
\makeatletter
\renewcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode
\advance\leftskip\@tempdima
\hskip -\leftskip
\MakeTextUppercase{#1}\nobreak\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
\patchcmd{\@cftmaketoctitle}{\cfttoctitlefont\contentsname}{\cfttoctitlefont\MakeUppercase{\contentsname}}{}{}
\patchcmd{\@cftmakeloftitle}{\cftloftitlefont\listfigurename}{\cftloftitlefont\MakeUppercase{\listfigurename}}{}{}
\patchcmd{\@cftmakelottitle}{\cftlottitlefont\listtablename}{\cftlottitlefont\MakeUppercase{\listtablename}}{}{}
\makeatother
\renewcommand{\cfttoctitlefont}{\hfill}
\renewcommand{\cftaftertoctitle}{\hfill}
\setlength{\cftbeforetoctitleskip}{-3em}
%
\renewcommand{\cftloftitlefont}{\hfill}
\renewcommand{\cftafterloftitle}{\hfill}
\setlength{\cftbeforeloftitleskip}{-3em}
%
\renewcommand{\cftlottitlefont}{\hfill}
\renewcommand{\cftafterlottitle}{\hfill}
\setlength{\cftbeforelottitleskip}{-3em}
\begin{document}
\tableofcontents
\chapter{Test Regular Chapter}
\begin{appendices}
\titlecontents{chapter}[10em]
{\addvspace{10pt}}
{\contentslabel[\MakeUppercase{\appendixname~\thecontentslabel}]{8em}\MakeUppercase}
{\hspace*{-8em}}{\titlerule*[.754em]{.}\contentspage}
\chapter{First Test Appendix}
\chapter{Second Test Appendix}
\end{appendices}
\end{document}
最后要说的是(只是作为一个建议),我认为目录中的条目最好使用小写字母而不是大写字体;这还有一个额外的好处:实施起来会容易得多。