我目前正在使用以下代码在 LaTeX 中生成一个漂亮的章节标题。但是,我很难弄清楚如何去掉标题(简介)前后的额外水平空间。我希望下划线只延伸到标题末尾,没有额外的空间。我还希望蓝色框的宽度根据其中章节编号的宽度而变化(因此没有多余的空间,如下图所示)。我该如何实现这一点?
\documentclass{article}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{calc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor, lipsum}
\renewcommand*\thesection{\arabic{section}}
\usepackage[explicit,calcwidth]{titlesec}
\definecolor{myBlue}{HTML}{0088FF}
\titleformat{\section}[block]{\Large\bfseries\sffamily}
{\rlap{\color{red}\rule[-6pt]{\titlewidth}{1pt}}\colorbox{myBlue}{
\raisebox{0pt}[13pt][3pt]{\makebox[60pt]{
\selectfont\color{white}{\thesection}}
}}}
{15pt}
{\color{myBlue}#1}
\titlespacing*{\section}{0pt}{0mm}{0mm}
\begin{document}
\section{Introduction}
\lipsum[1]
\end{document}
答案1
不要忘记由结束线产生的空格。
几乎总是不需要explicit
选项titlesec
,就像您的情况一样。
我重新格式化了代码,以便更清楚地显示各种嵌套。请注意,%
末尾会产生空格。
您所拥有的声明\selectfont
毫无用处并且已被删除。
\titleformat{\section}[block]
{\Large\bfseries\sffamily}
{%
\rlap{\color{red}\rule[-6pt]{\titlewidth}{1pt}}%
\colorbox{myBlue}{%
\raisebox{0pt}[13pt][3pt]{%
\makebox[60pt]{%
\color{white}\thesection
}%
}%
}%
}
{15pt}
{\color{myBlue}}
\documentclass{article}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage{calc}
\usepackage[T1]{fontenc}
\usepackage[calcwidth]{titlesec}
\usepackage{lipsum}
\renewcommand*\thesection{\arabic{section}}
\definecolor{myBlue}{HTML}{0088FF}
\titleformat{\section}[block]
{\Large\bfseries\sffamily}
{%
\rlap{\color{red}\rule[-6pt]{\titlewidth}{1pt}}%
\colorbox{myBlue}{%
\raisebox{0pt}[13pt][3pt]{\makebox[60pt]{%
\color{white}\thesection}%
}%
}%
}
{15pt}
{\color{myBlue}}
\titlespacing*{\section}{0pt}{0mm}{0mm}
\begin{document}
\section{Introduction}
\lipsum[1]
\end{document}