使用 titlesec,titlerule 和 colorbox 之间的空格

使用 titlesec,titlerule 和 colorbox 之间的空格

我正在使用 titlesec 包来格式化文档中的标题。由于我不想将标题放在封闭的框中(为此,我们可以使用“frame”作为 \titleformat 的格式参数),因此我在两个 \titlerule 之间使用了 \colorbox:

\usepackage[explicit]{titlesec}

\titleformat{name=\section}[block]
  {\titlerule\normalfont\bfseries\large}
  {}
  {0pt}
  {\colorbox{LightSteelBlue!75}{\parbox{\dimexpr\columnwidth-2\fboxsep}{\strut\thesection .~#1\strut}}}[\titlerule]

想要的结果如下: 在此处输入图片描述

不幸的是,顶部的 \titlerule 和 \colorbox 之间有时会出现一个微小的空白: 在此处输入图片描述

此外,顶部的 \titlerule 有时会更薄,这是应该的:

在此处输入图片描述

提醒一下, \titleformat 定义如下: 在此处输入图片描述

这是我正在处理的 tex 文件:

https://www.overleaf.com/read/qwksdgfjgbjt

有人能解决这个问题吗?谢谢 :)

答案1

我最后用的是彩色盒子使用 boxrule 而不是 colorbox + titlerule 的环境:

\usepackage[explicit]{titlesec}
\usepackage[svgnames]{xcolor}

\usepackage{tcolorbox}

\titleformat{name=\section}[block]
  {\vspace{0pt}\normalfont\bfseries\large}
  {}
  {0pt}
  {\begin{tcolorbox}[arc=0pt,outer arc=0pt,
  colback=LightSteelBlue!75,
boxsep=0pt,left=1pt,right=1pt,top=5pt,bottom=4pt, before=\hfill,after=\hfill,
boxrule=0pt,bottomrule=0.5pt,toprule=0.5pt]{\strut~\thesection .~#1\strut}\end{tcolorbox}}[]

答案2

我建议使用longfbox包来制作带框的章节标题,它与键系统一起工作,并且易于使用,并在您的序言中使用代码。此外,如果需要,您可以选择框高度:

%%% Section titles %%%
\usepackage{longfbox} 
\usepackage[explicit]{titlesec}

\titleformat{name=\section}[block]
{\normalfont\bfseries\large}%\vspace{0pt}
{}
{0pt}
{\lfbox[border-style={solid, none, solid, none},background-color=LightSteelBlue!75,width =\linewidth-2\fboxsep]{\strut\thesection .~#1\strut}}%

在此处输入图片描述

相关内容