我正在使用 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 有时会更薄,这是应该的:
这是我正在处理的 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}}%