14

I would like to redefine the \section and \section* to produce section titles that look roughly like this: illustration of desired section title formatting that is, text in white over a black bar that extends from left to right margin. I don't anticipate any section titles being longer than one line.

JohnReed
  • 2,627

1 Answers1

21

Here's one possible solution using the explicit option for the titlesec package:

\documentclass{article}
\usepackage[explicit]{titlesec}
\usepackage{xcolor}
\usepackage{lipsum}

\titleformat{\section}
{\normalfont\Large\bfseries}{}{0em}{\colorbox{black}{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\textcolor{white}{\thesection\quad#1}}}}
\titleformat{name=\section,numberless}
{\normalfont\Large\bfseries}{}{0em}{\colorbox{black}{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\textcolor{white}{#1}}}}

\begin{document}

\section{A Test Section}
\lipsum[4]
\section{Another Test Section}
\lipsum[4]
\section{Another Test Section with a long title spanning more than one line}
\lipsum[4]
\section*{An Unnumbered Test Section}
\lipsum[4]

\end{document}

The idea is to use a \parbox of width equal to \textwidth (-2\fboxsep) inside a black \colorbox; inside this \colorbox the text is set to white using \textcolor.

enter image description here

pluton
  • 16,421
Gonzalo Medina
  • 505,128