使用 titlesec 和 \setcounter{secnumdepth} 破坏 pdf 内容元数据

使用 titlesec 和 \setcounter{secnumdepth} 破坏 pdf 内容元数据

在写这个问题时,我找到了一种解决方法,使用sectsty而不是titlesec。但由于这是一种解决方法,而不是真正的解决方案,我想知道问题是什么以及如何直接修复它。

因此,我有一本按时间顺序组织的长日记,其中大量使用了分段。因此,我经常使用 PDF 元数据中生成的目录来浏览文档。这一切都很好,在正常编译时,Okular 会显示以下内容,这是应该的:

在此处输入图片描述

(等等)。

但是,我不希望这些部分被编号。我知道这\setcounter{secnumdepth}{-2}可以用来完全删除编号,而且确实有效。但是,我想更改部分标题的大小。从这个答案我得到了以下代码:

\usepackage{titlesec}

\titleformat*{\section}{\LARGE\bfseries}
\titleformat*{\subsection}{\Large\bfseries}
\titleformat*{\subsubsection}{\large\bfseries}
\titleformat*{\paragraph}{\large\bfseries}
\titleformat*{\subparagraph}{\large\bfseries}

它可以工作了,但是突然内容变得一团糟:

在此处输入图片描述

(等等)。

调试表明,只有当行\setcounter{secnumdepth}{-2}\usepackage{titlesec}都存在时,问题才会出现。文档本身的目录是完整的,并且内容中保留编号的所有内容也不会发生变化。

正如开头所述,我最终只是切换到使用 调整节标题的大小sectsty,这解决了问题。但我很好奇 - 是什么导致了这个问题?有没有办法同时使用\setcounter{secnumdepth}titlesec而不破坏元数据内容?

最小可重复示例

代码

\documentclass{article}
\usepackage{hyperref}

\setcounter{secnumdepth}{0}
\usepackage{titlesec}


\begin{document}

\part{Example Part}

\section{Examle Section}

\subsection{Example subsection}

\subsubsection{Example Paragraph}

\section{Example Second section}

\subsection{Example second subsection}

\part{Example Second Part}

\section{Example Second section}

\subsection{Example second subsection}
\end{document}

输出

在此处输入图片描述

在此处输入图片描述

答案1

除少数例外情况外,hyperref应将其作为最后一个包加载,然后它可以根据正在加载的包进行自我调整。

在给定的 MWE 中,如果hyperref移动 titlesec事情似乎按预期进行

相关内容