119

How can I make change a text background in LaTeX? For example using Latex code

\textsc{Extra Curricular Achievements}\

I get enter image description here

However, I want the background of this heading to be changed so that it looks like this:- enter image description here

I want the background to be extended to the right upto line break. Please ignore the underline in the previous image. Thanks.

3 Answers 3

58

I prefer using tcolorbox thinking that in future you may want the background to be fashionable. I have given many options (which are not needed for this particular case) in the tcbset so that you can play with them to suit your needs.

\documentclass{article}
\usepackage[most]{tcolorbox}

\tcbset{
    frame code={},
    center title,
    left=0pt,
    right=0pt,
    top=0pt,
    bottom=0pt,
    colback=gray!70,
    colframe=white,
    width=\dimexpr\textwidth\relax,
    enlarge left by=0mm,
    boxsep=5pt,
    arc=0pt,outer arc=0pt,
    }

\begin{document}
\begin{tcolorbox}
\textsc{Extra Curricular Achievements}
\end{tcolorbox}
\end{document}

enter image description here

Here is another option using framed package.

\documentclass{article}
\usepackage{xcolor}
\usepackage{framed}
\definecolor{shadecolor}{RGB}{180,180,180}
\begin{document}
\begin{snugshade*}
\noindent\textsc{Extra Curricular Achievements}
\end{snugshade*}
\end{document}

enter image description here

Without extra packages:

\documentclass{article}
\usepackage{xcolor}
\definecolor{shadecolor}{RGB}{150,150,150}
\begin{document}
\noindent\colorbox{shadecolor}
{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\textsc{Extra Curricular Achievements}}}

\end{document}

enter image description here

And convert it in to a macro:

\documentclass{article}
\usepackage{xcolor}
\definecolor{shadecolor}{RGB}{150,150,150}
\newcommand{\mybox}[1]{\par\noindent\colorbox{shadecolor}
{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{#1}}}
\begin{document}
\mybox{\textsc{Extra Curricular Achievements}}

\end{document}
5
  • Thanks .. btw using the tcbset approach, what can be done to remove the surrouding box .
    – sairajat
    Oct 7, 2013 at 8:14
  • @sairajat Sorry which box? I don't follow.
    – user11232
    Oct 7, 2013 at 10:37
  • the surrounding purple colored box . sorry for late reply. did it myself . Thanks anyways .. :)
    – sairajat
    Oct 13, 2013 at 5:30
  • @sairajat Never mind. That is my style of putting a picture on this site. If you run my code, you won't get it :-)
    – user11232
    Oct 13, 2013 at 13:47
  • Can we apply this to complete page?
    – alper
    Nov 2, 2022 at 12:01
250

I know this question has been answered very extensively. But not what I wanted or thought was the question based on the title. Therefore if others get in here looking for a possibility for colouring behind a word than this snippet is much easier:

\colorbox{blue!30}{blue}

or

\textcolor{blue!30}{blue}

resulting in:

Color result of the above commands

This is possible by only adding \usepackage{xcolor}. Just some extra info :)

Colour Several Lines It is correct that the above methods does not work for several lines, if you to be more than one line you can do:

{\color{green} the text you want to write}

This can however also be wrapped in a function so it is easier to use several places during edits, e.g., for colouring new text or whatever:

\newcommand{\added}[1]{{\color{green}[added]:#1}}

16
  • 30
    text inside \colorbox can not be split into several lines if it is too long. So the macro is most suited for coloring a few words. If you want to color several sentences which spread across several lines, it is better to use soul
    – jdhao
    Nov 22, 2016 at 12:31
  • 4
    The given link have some illustrating examples about how to use the soul package.
    – jdhao
    Nov 22, 2016 at 14:18
  • 3
    sorry for off-topic, but hard to resist: I like how LaTeX is not easy at all -- you need to use soul to put some colour behind some text.
    – xealits
    Jan 26, 2017 at 15:34
  • 3
    Exactly what I needed, no immense amount of packages, no huge newcommands, simply the colorbox. Thanks mate!
    – Dennis
    May 12, 2017 at 13:33
  • 17
    This example would have taken me fewer seconds to parse if you replaced the text "{blue}" with some other text. :)
    – CPBL
    Nov 9, 2017 at 2:46
8

Just to add to the last comment. One can use the `minipage' environment to extend over several lines:

\colorbox{blue!10}{
\begin{minipage}{\textwidth}
\color{RoyalBlue} 

One line.

Another line.

The final line.
\end{minipage}
}
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .