235

I am writing an article in LaTeX 2e. Part of the article describes the Sieve of Eratosthenes, and I want to show examples of how multiples of a prime are removed from the sieve by showing them in a strikethrough font. How do I create a strikethrough font in LaTeX 2e?

migrated from stackoverflow.com Jul 21 '11 at 14:38

This question came from our site for professional and enthusiast programmers.

287

I'm not quite sure what you mean with creating a strikethrough font. However, for striking through text horizontally see:

https://stackoverflow.com/questions/2663944/how-to-strike-out-inside-latex-equations

So with the ulem package this becomes:

\usepackage[normalem]{ulem}
\sout{Hello World}

With the soul package this is:

\usepackage{soul}
\st{Hellow world}

enter image description here

The ulem package seems more up to date so I would use that.

  • 14
    Soul is not available on my machine. I tried ulem. It worked, producing strikethrough text, but also converted emphasized text from italic to underline, which I do not want. So I added a \normalem declaration, and now everything works properly. Thanks! – user448810 Jul 21 '11 at 12:57
  • 25
    Just to clarify on the above comment- using the command "\usepackage[normalem]{ulem}" will prevent \emph from being changed, as stated in Section 1 of the documentation (mirrors.med.harvard.edu/ctan/macros/latex/contrib/ulem/ulem.pdf) – obfuscation Feb 11 '13 at 13:29
  • 2
    Strangely enough soul seems to have trouble with non-ASCII characters (for instance UTF-8 French). – tiktak Jan 9 '14 at 20:41
  • 8
    The ulem package has the highly undesirable side-effect of redefining \emph{} to produce underlined text, rather than italic. (I guess "ulem" stands for something like "underlined emph".) – David Richerby Oct 21 '14 at 12:21
  • 3
    This didn't work for me... \sout{} is just underlining the text. – MichaelChirico Mar 17 '16 at 19:42
38

There is also the cancel package:

\usepackage{cancel}
...
\cancel{text}

The solution to Diagonal strikeout starting too low and ending too high is another option to consider.

  • 7
    Is it possible to do strikeout without importing a package? – tommy.carstensen Mar 19 '15 at 16:38
  • 1
    @tommy.carstensen: Well a package is just a set of macros, so if you define the necessary macros then you don't need to import the complete package. I'd suggest you post a separate question as some others who are more familiar with Plain TeX can probably do a much better job. – Peter Grill Apr 6 '15 at 1:36
23

This is for within an equation (I got it off of another forum) and requires amsmath and ulem to be active. The strike is quite long, so using it next to an arrow is troublesome.

\text{\sout{$TEXT$}}
  • 1
    And to make it work properly in math environment, use \text{\sout{\ensuremath{...}}}, which may be what you meant by $TEXT$. Reference. – Rubens Oct 28 '14 at 6:45
  • 1
    This was very helpful. It works on my Texmaker. Thanks. Do you know how to make such a thing work for Math Stack Exchange? – Nikos Oct 9 '15 at 10:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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