titlesec 的行为很奇怪,带有彩色的 titlerule

titlesec 的行为很奇怪,带有彩色的 titlerule

通过以下 MWE,我得到了带黑色下划线的章节标题:

\documentclass[12pt]{article}
\usepackage[explicit]{titlesec}
\usepackage[dvipsnames]{xcolor}

\titleformat{\section}%
{\large\sffamily\bfseries}%
{Section \arabic{section}}%
{0.5em}%
{#1}%
[{\titlerule[2.5pt]}]

\begin{document}
\section{mon titre}
\end{document}

我的第一个问题:如果我删除{ }封闭的内容\titlerule,就会出现编译错误

! LaTeX Error: Missing \begin{document}

这很奇怪,因为内容[ ]是排版在章节标题后的文本。例如

[some-after-text]

有效。我的第二个问题是:如果我用

[\textcolor{blue}{\titlerule[2.5pt]}]

我得到了一条蓝色下划线,但标题和下划线之间有一个额外的垂直空间(约 0.5 厘米)。如果我使用

[{\color{blue}\titlerule[2.5pt]}]

相反,垂直空间消失了...我不得不承认,我不明白这一点。

答案1

这并不奇怪:没有括号,在第一种情况下,第一个结束符与宣布可选参数的]开头匹配。可选参数总是从到第一个(在同一括号级别)。[\titleformat[]

第二个问题是由于\textcolor开始一个段落,而\color不开始。但是,正如您已经发现的,使用\color会插入一个断点,并且规则可能会在下一页继续。

解决方案:

\titleformat{\section}
  {\large\sffamily\bfseries}
  {Section \arabic{section}}
  {0.5em}
  {#1}
  [\titleline{\color{blue}\titlerule[2.5pt]}]

相关内容