超过一行的目录项在自定义类中居中

超过一行的目录项在自定义类中居中

注意:该问题已由 Jhor 在下面回答,并且我下面链接到的类文件现已修复,因此该问题不再可重现。

我正在使用专为我大学的论文要求而创建的课程,该课程可免费获取https://github.com/lotten/uci-thesis-latex/blob/master/ucithesis.cls

我的问题是章节标题太长,无法在目录中的一行中显示。此类标题的目录条目最终会左对齐,看起来很奇怪,所以我希望它们右对齐。您可以在我下面提供的最小工作示例中清楚地看到这一点,但它需要具有上面链接中的 ucithesis.cls。

% Minimum working example
\documentclass{ucithesis}
\begin{document}
\tableofcontents
\chapter{This chapter title fits on one line and is aligned to the left, as I want it}
\chapter{This chapter title is too long to fit on one line in the table of contents, and 
requires multiple lines, so the text gets aligned to the right, and the ragged left looks 
very strange. I would like for this text to be left aligned and ragged right instead. The 
last line appears centered, which I don't necessarily mind, as long as all of the other 
lines are aligned to the left.}
\end{document}

注意:该示例包含非常我使用长标题来阐明发生了什么。实际上,我最长的章节标题不到 1.5 行。但目录条目没有从左侧开始仍然看起来很奇怪。

理想情况下,我希望找到一个不涉及任何额外软件包的解决方案。我能够得到我想要的结果

\usepackage{tocstyle}
\usetocstyle{standard}

但它伴随着一些关于 tocstyle 包是 alpha 版本的非常详细的警告,包括警告

也许最好不要加载这个包。

提前感谢任何帮助或建议!

答案1

您的问题来自课堂上的以下几行:

\addtocontents{toc}{\protect\raggedleft Page\\}
\addtocontents{lof}{\protect\raggedleft Page\\}
\addtocontents{lot}{\protect\raggedleft Page\\}
\addtocontents{loa}{\protect\raggedleft Page\\}

这是错误的编码。要解决这个问题,你可以隐藏这些行,或者你应该保留“页面”标题,替换每行有问题的

{\protect\raggedleft Page\\}

经过

{{\protect\flushright Page\par}}

我不确定\protect这里是否需要。

另一个选择是替换 {\protect\raggedleft Page\\}{\hfill Page\\}

相关内容