How can I strikeout words in math mode (similar to \sout with \usepackage{ulem} in text mode)? I've tried \usepackage{cancel} and \(\cancel{1+1=2}\) but that draws a diagonal line.

up vote 8 down vote accepted

Use something like

\sout{$a^2+b^2=c^2$}

or

\[
  \hbox{\sout{$a^2+b^2$}}=c^2
\]

And you can of course define a command for convenience.

  • This does not work inside math mode, e.g. if I want to strikeout a portion of a phrase in math mode. – N.N. Jun 13 '11 at 12:20
  • @N.N.: It's easy to generalize the solution. See update. – Leo Liu Jun 13 '11 at 12:28
  • This method does not really work well. The ulem package is necessary, and it changes \emph{} to underlining. – Jeff Aug 29 '13 at 19:35
  • 1
    @Jeff: Use \normalem. – Leo Liu Aug 30 '13 at 2:20

version 2 (fine remark from Martin)

\documentclass{scrartcl}
\usepackage{xcolor,cancel}

\newcommand\hcancel[2][black]{\setbox0=\hbox{$#2$}%
\rlap{\raisebox{.45\ht0}{\textcolor{#1}{\rule{\wd0}{1pt}}}}#2} 

\begin{document}

\[
  x+\hcancel[red]{ \sum_a \mathcal{D}^a\mathcal{D}_a}=2x+ \sum_a \mathcal{D}^a\mathcal{D}_a+3 
\]

\end{document}

enter image description here

  • 1
    \hbox{#2} will typeset #2 in textmode, which is fine with y (except maybe a slightly wrong width), but will break horrible with real math expressions. – Martin Scharrer Jun 13 '11 at 12:44
  • @Martin yes you are right, I forgot $...$ – Alain Matthes Jun 13 '11 at 12:56
  • Does this solution rely on \documentclass{scrartcl}? – N.N. Jun 13 '11 at 17:16
  • @N.N. no I think the package `cancel is independent – Alain Matthes Jun 13 '11 at 17:47
  • I removed the $$ from the \hbox and included them in the parameter (e.g., \hcancel{$2+2=4$} and it worked fine. Thanks! – cxw Dec 30 '16 at 21:26

Works in math and text mode

\documentclass{article}
\usepackage{calc}
\newsavebox\CBox
\newcommand\hcancel[2][0.5pt]{%
  \ifmmode\sbox\CBox{$#2$}\else\sbox\CBox{#2}\fi%
  \makebox[0pt][l]{\usebox\CBox}%  
  \rule[0.5\ht\CBox-#1/2]{\wd\CBox}{#1}}
\begin{document}

\hcancel{Test}
\hcancel[2pt]{Test}

\end{document}

enter image description here

  • Indeed, but you need to restart the mathmode, don't you? E.g. `$x+\hcancel{$y$}+z$. – Martin Scharrer Jun 13 '11 at 12:43

I'm using this hack with the ulem package in the preamble.

\usepackage[normalem]{ulem}
\usepackage{amsmath}
\newcommand{\stkout}[1]{\ifmmode\text{\sout{\ensuremath{#1}}}\else\sout{#1}\fi}

In the document, I use the command thus defined, \stkout

Lorem \stkout{ipsum}. $x + \stkout{y + z} = 1$.
\begin{equation}
    A + \stkout{B + C + D} = E.
\end{equation}

Screen capture of the example document

Reference: Opposite of \ensuremath: ensure that I'm *not* in math mode?

  • If find the cancel package much more practical, but your method is anyway interesting :) – loved.by.Jesus Jul 7 '16 at 13:20

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.