This tutorial will remind you of your childhood. When doing cross out algebra, where you intersect the numerator and denominator with a diagonal strikethrough. Along with that, horizontal strikethrough is a popular method for text formatting.
Indeed, there is more than one type of strikethrough that we use in text and math. Of course, we will represent each usage by LaTeX.
Use strikethrough in text mode
So, let’s say you want to cross out a word or sentence. LaTeX doesn’t have a default command for that, but no worries! We can use a few simple packages to do this. My two favorites are ulem
and soul
.
Use sout command from ulem package
The ulem
package has a cool command called sout
, which adds a horizontal line over your text, letting you easily cross out paragraphs or lines.
If you want to put a diagonal line over each letter, then use \xout
. Sounds fun, right?
\documentclass[12pt]{article}
\usepackage[margin=1.5cm]{geometry}
\usepackage{ulem,xcolor,tikz}
\newcommand{\colorstrikethrough}[2]{\textcolor{#1}{\sout{#2}}}
\begin{document}
\pagecolor{olive!14!white}
\section*{For Single Word}
Donec ac luctus dolor. \sout{Vestibulum vitae mattis erat}, in ullamcorper mauris. Morbi ut felis ut velit mattis dictum. Aenean ut luctus leo. Duis nunc mi, \sout{convallis non lectus vitae}, molestie sollicitudin tortor. Sed quis varius erat. Maecenas placerat mauris eget risus congue consequat. Donec iaculis mattis dui, \sout{et semper libero tempus sit amet}. Sed a nibh ut elit fringilla volutpat tempor at elit.
\section*{For multiline}
Nulla vel velit sollicitudin, bibendum eros sit amet, euismod metus. \sout{Maecenas sed lorem ut magna viverra pharetra non ac ante. Proin non ante a ante luctus ultrices. Vivamus facilisis ornare risus, non porttitor lorem viverra sed. Aenean in mauris vitae augue euismod ultrices ut eget urna. Vivamus at faucibus libero. Aliquam venenatis orci magna, nec ultrices diam sagittis non. Sed et eros id odio pulvinar bibendum a non leo}. Duis vel lacus mauris. Sed varius maximus turpis, vitae ultrices nunc molestie in. Fusce fringilla sapien a dui ultrices, vitae vestibulum erat malesuada. Morbi ac nisi et massa egestas pellentesque sed quis augue.
\section*{Diagonal on each letter}
Duis nunc mi, convallis non \xout{lectus vitae, molestie sollicitudin tortor}. Nulla vel velit sollicitudin, bibendum eros sit amet, euismod metus. Maecenas sed lorem ut magna viverra pharetra non ac ante. Proin non ante a ante luctus ultrices. Ut elementum vitae sapien eu rutrum.D onec ante eros, lacinia eu lorem eget, fringilla feugiat nisi. Vivamus facilisis ornare risus, non porttitor lorem viverra sed. \xout{Aenean in mauris vitae augue euismod ultrices ut eget urna. Pellentesque dui nisl, elementum quis massa vel, pretium ultrices eros. Aenean feugiat ut nunc ac rutrum. Duis venenatis nisl et lobortis varius}.
\section*{Colored Strikethrough}
Sed in ipsum tempus, posuere nunc ac, maximus sapien. \colorstrikethrough{red}{Nulla egestas}, felis quis semper hendrerit, libero mauris commodo tellus, facilisis malesuada erat erat eu leo. Fusce in risus accumsan, placerat nibh sit amet, placerat magna. Donec congue tincidunt leo, eget tincidunt libero varius non. Integer fermentum, justo nec finibus placerat, mauris tellus gravida purus, \colorstrikethrough{red}{eu luctus tortor tortor lacinia libero}.
\end{document}
Output :
When changing color of strikethrough, the color of text is also changing. This is not best practice. But, the following soul package has the best solution for this problem.
Use st command from Soul package
Now, if you want to style your strikethrough lines with different colors, the soul
package is perfect. With \st
, you can easily add strikethrough and using \setstcolor{color_name}
, you can even change the color of the line! Cool, right?
\documentclass[12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{soul,xcolor}
\begin{document}
\pagecolor{olive!14!white}
\section*{On word and paragraph}
Lorem ipsum dolor sit amet, \st{consectetur} adipiscing elit. Aenean iaculis venenatis nisl iaculis vehicula. \st{Cras rutrum, sem eget pulvinar congue}, augue quam viverra libero, hendrerit scelerisque lectus arcu a massa. In elementum vestibulum justo, id lacinia ex ornare non. Donec ac lacinia arcu. \st{Nullam dapibus lobortis leo}, eu tincidunt lorem pulvinar sit amet. Curabitur quis erat at ligula sodales posuere quis et purus. \st{Vestibulum fermentum lorem augue, et aliquet est porta ut}. Fusce gravida vestibulum eros, in varius quam mollis quis.
\vspace{1cm}
\st{Nulla egestas, felis quis semper hendrerit, libero mauris commodo tellus, facilisis malesuada erat erat eu leo. Fusce in risus accumsan, placerat nibh sit amet, placerat magna. Donec congue tincidunt leo, eget tincidunt libero varius non. Integer fermentum, justo nec finibus placerat, mauris tellus gravida purus, eu luctus tortor tortor lacinia libero}.
\setstcolor{red}
\section*{Use color by \textit{setstcolor} cmd}
\st{Nulla facilisi}. Curabitur iaculis tortor et tellus egestas sagittis.\st {Vivamus mi nulla, ultrices ut convallis id, vestibulum vel orci}. Vivamus urna orci, posuere vel nibh a, lacinia semper sapien. Suspendisse fringilla, purus nec hendrerit congue, massa nisl tempor augue, non faucibus ex lectus ut massa. Aliquam facilisis euismod lorem nec posuere. \st{Aliquam sagittis pharetra quam, vitae pharetra tellus ultrices vel.}
\setstcolor{blue}
\section*{Use color by \textit{setstcolor} cmd}
\st{Nulla facilisi}. Curabitur iaculis tortor et tellus egestas sagittis.\st {Vivamus mi nulla, ultrices ut convallis id, vestibulum vel orci}. Vivamus urna orci, posuere vel nibh a, lacinia semper sapien. Suspendisse fringilla, purus nec hendrerit congue, massa nisl tempor augue, non faucibus ex lectus ut massa. Aliquam facilisis euismod lorem nec posuere. \st{Aliquam sagittis pharetra quam, vitae pharetra tellus ultrices vel.}
\end{document}
Output :
Use strikethrough or cancel out in math mode
ulem
and soul
packages will not work in math mode. For example.
\documentclass[11pt]{article}
\usepackage{ulem,sou}
\begin{document}
\noindent sout and st commands work on text. But, it doesn't work in \sout{math} \st{mode}. See the example below. \\[5pt]
\[ a^2 + \sout{nab} + b^2 = \st{nab} \]
\noindent But, xout command works properly in math mode which is applicable on single character like \xout{math mode}. \\[5pt]
\[ \frac{\xout{a}\, \xout{b}\, \xout{c}}{\xout{a}\, \xout{b}\, \xout{c}} \]
\end{document}
Output :
For this, we will explore the cancel package which properly defines all commands for math mode.
Cancel command for cancel out an equation
If you want to cancel out parts of an equation, you can use \cancel
along with other math expressions. Its shape is like a forward slash.
\documentclass[11pt]{article}
\usepackage{cancel}
\begin{document}
\[ x^2 + \cancel{2xy} + y^2 = \cancel{2xy} + c \]
\[ \frac{\cancel{(x-n)}\cancel{(x-k)}}{\cancel{(x-n)}a} = \frac{\cancel{(x-k)}}{n} \]
\[ \frac{n!}{n} = \frac{\cancel{n}\,(n-1)!}{\cancel{n}} \]
\end{document}
Output :
bcancel command for cancel out equation
Structurally, output of bcancel
is exact opposite of cancel
command. Like backslash
\documentclass[11pt]{article}
\usepackage{cancel}
\begin{document}
\end{document}
\[ x^2 + \bcancel{4x} + 4 = \bcancel{4x} + 8\]
\[ \frac{\bcancel{(x-a)}\bcancel{(x-b)}}{\bcancel{(x-a)}\bcancel{(x-b)}(x-c)} \]
\[\frac{\bcancel{a}\cdot\bcancel{b}}{\bcancel{ab}\,c}\]
\end{document}
Output :
xcancel command for cross out equation
xcancel
command returns cross out or x cancel out. Which is shaped like an X.
\documentclass[11pt]{article}
\usepackage{cancel}
\begin{document}
\[ \frac{(n-1)\xcancel{(n-k)}}{\xcancel{(n-k)}}\]
\[\frac{\xcancel{x}\cdot(x-1)}{2\xcancel{x}}=\frac{x-1}{2}\]
\[\frac{a \cdot \xcancel{b} \cdot \xcancel{c}}{\xcancel{b} \cdot \xcancel{c}}\]
\end{document}
Output :
cancelto command for a diagonal arrow
cancelto
is used to draw a diagonal arrow from the canceled expression to a specified replacement. Although the remaining three commands of this package work in text mode. but, cancelto
command does not work for text.
\documentclass[11pt]{article}
\usepackage{cancel}
\begin{document}
\[ \frac{\cancelto{\,(x-1)^{n-1}}{(x-1)^n}}{x-1} =(x-1)^{n-1} \]
\[ \frac{\cancelto{m^4}{m^6}}{\cancel{m^2}} \qquad \frac{\cancelto{\,m^3}{m^6}}{\cancel{m^3}} \qquad\frac{\cancelto{\;m^2}{m^6}}{\cancel{m^4}} \]
\end{document}
Output :
Conclusion
Soul package is best practice for horizontal lines. Because you can easily change the color of a horizontal line. And for diagonal cancel out or cross out, there is nothing better than the cancel
package.