0

I currently have problems making the \rule operation be automated to be the same width as the title when the document is in \twocolumns. Is there a way for the grey box to follow the next line of the section title at all for multiline names? I would like to still use the package titlesec if possible. Thankyou!

This is the current code that I am using right now.The look of the subsection I currently have

\titleformat{\subsection}{\Large\sffamily\bfseries}{\rlap{\color{black!10}\rule[-0.255cm]{8.225cm}{0.9cm}} \thesubsection}{0.8em}{}

I have referred to this article which is the closest I can find to a solution but the title names do not align as I want it to.

Format section titles as white text on black background

Please help!

  • 1
    That's not what "rules" are for. It looks to me that you want to have background color for the section headings? Since you are running into issues with line breaking, you probably want to use tcolorbox to do the background color or use soul to do is as highlighting. See https://tex.stackexchange.com/questions/312574/colorbox-does-not-linebreak for some ideas. – Willie Wong Feb 26 '21 at 20:15
  • Oh okay. Thank you so much for the suggestion! – Ms Thanh Feb 27 '21 at 22:31
  • @WillieWong I've been trying to incorporate the options into the section titles but it is not working. I have tried using \parbox but the parameter do not work within the \twocolumn layout. Can you help me? Thank you – Ms Thanh Feb 28 '21 at 00:45

1 Answers1

1

EDIT: I have replaced the code with a slighly simpler version. The old version is in comments.

Here is something that works. It is a bit tricky to calculate the proper widths, but this does it. The trick is you have to pick up \linewidth (or \columnwidth) while in the twocolumn mode, to get the proper width.

\documentclass{article}

\usepackage{titlesec} \usepackage{lipsum} \usepackage{xcolor}

\newlength\myboxwidth

% This is my original version % % \newcommand\mylabel{} % \newcommand\myformat{\Large\sffamily\bfseries}

% \newcommand\formatmytitle[1]{% % \renewcommand\mylabel{\thesubsection\hspace{10pt}} % \setlength{\fboxsep}{5pt}% % \settowidth{\myboxwidth}{\myformat\mylabel}% % \setlength{\myboxwidth}{\dimexpr \linewidth -2\fboxsep-\myboxwidth} % \colorbox{black!10}{\mylabel{\parbox[t]{\myboxwidth}{\raggedright #1}}}}

% \titleformat{\subsection}[display]{\myformat}{}{0pt}{\formatmytitle}

% This is the new version, which is a bit simpler.

\newcommand\formatmytitle[1]{% \setlength{\fboxsep}{5pt}% \setlength{\myboxwidth}{\dimexpr \linewidth-2\fboxsep} \colorbox{black!10}{{\parbox[t]{\myboxwidth}{% \setbox0\hbox{\thesubsection\hspace{0.5em}}\hangindent\wd0\hangafter1 \raggedright\leavevmode\box0 #1}}}}

\titleformat{\subsection}[display]{\Large\sffamily\bfseries}{}{0pt}{\formatmytitle}

\begin{document}

\twocolumn \sloppy

\section{Whatever}

\subsection{Subtracting Fractions}

\lipsum[1-4]

\end{document}

enter image description here

  • Thank you so much! This is exactly what I needed! I tried using tikz as well but i think this is a simpler solution to my problem! @pietvo – Ms Thanh Mar 01 '21 at 16:29
  • but I realised it affected my Table of Contents when I switched over to your solution. – Ms Thanh Mar 01 '21 at 16:46
  • What is the problem with the table of contents? For me it looks normal. – Pieter van Oostrum Mar 01 '21 at 20:09
  • The section number disappears for some reason but subsection and subsubsection is fine. – Ms Thanh Mar 02 '21 at 05:22
  • So I suppose you use the same solution for \section. When I do that, the section numbers are in the table of contents, so it must be some other code. I do have to add a \titleformat for unnumbered sections, however. If you still have problems with the section numbers in the table of contents, you may look into the titletoc package. – Pieter van Oostrum Mar 02 '21 at 11:18
  • Oh, I found the problem. Thank you so much for your help! You have been my saviour. – Ms Thanh Mar 02 '21 at 14:44