在写这个问题时,我找到了一种解决方法,使用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
事情似乎按预期进行