toc/hyperref 标题问题

toc/hyperref 标题问题

我文档中的参考书目使用 hyperref“合并”了目录中的附录和书签结构。目录中参考书目的页码也比所有其他页码都大,这真的很烦人。

这是部分新的独立帖子lyx hyper-ref toc 附录和参考书目附录A.0.1 图形标签。我认为值得将其分开,因为它与发布的其他内容不同。

这是我在论文中使用的带有自定义类文件的 MWE。既是 lyx 文件,也是 .tex 文件这里

答案1

您的示例文件有几个错误,您的类文件有一个错误。

首先,您的测试文件有以下代码:

\appendix
\appendices

这是不正确的。由于您正在使用该appendix包,因此您应该使用appendices 环境(它不是一个宏。)但是,由于您的类文件使用附录命令做了一些有趣的事情,因此您需要添加一些代码\begin{appendices}使附录显示字母的行:因此您应该有:

\begin{appendices}
\makeatletter
\renewcommand*{\th@DefTheChapter}{\Alph{chapter}}
\makeatother
...
\end{appendices}

此外,(虽然这在输出中并不明显)您对\begin{thebibliography}环境的使用是不正确的。你有:

\begin{thebibliography}{Bibliography}

但环境的论点thebibliography不是标题(这是自动生成的),但字符串表示您将拥有的最大标签。由于您使用的是数字书目样式,因此您应该使用类似以下内容:

 \begin{thebibliography}{99} % assuming you have less than 100 references

(我假设您正在使用natbibbibtex编制实际的参考书目,而不是手工编制。)

您的参考书目看起来不正确(包括页码)的原因是您的类文件将其标题放在目录中,part而不是级别chapter。 可以通过输入以下代码来修复此问题开始文档(即不在序言中。)

(或者,您可以简单地在您的类文件版本本身中修复此代码,在这种情况下,您不需要将代码添加到您的文档中,并且您不应该将代码包装在中\makeatletter/makeatother。)

\makeatletter
\renewenvironment*{thebibliography}[1]{
        \begin{th@OldBib}{#1}
        \ULforem%  set \em to underline
        \begin{singlespace}
        \addcontentsline{toc}{chapter}{\bibnameToC} % changed from part to chapter
    }{
        \end{singlespace}
        \EmphReset% set \em back to the user-specified default.
        \end{th@OldBib}
    }
\makeatother

(这个定义很糟糕。你的大学真的要求您使用下划线而不是斜体?)

参考书目的 TOC 条目中也有一个虚假空格。这是由类文件中以下定义(第 389 行)中的额外空格引起的:

\newcommand*{\bibnameToC}{% put a comment marker here to remove the space
    \normalsize\th@HdFnt Bibliography\normalfont}

相关内容