423

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?

4

3 Answers 3

505

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 is:

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

With the soul package this is:

\usepackage{soul}
\st{Hello World}

enter image description here

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

7
  • 24
    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, 2011 at 12:57
  • 45
    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) Feb 11, 2013 at 13:29
  • 18
    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".) Oct 21, 2014 at 12:21
  • 11
    This didn't work for me... \sout{} is just underlining the text. Mar 17, 2016 at 19:42
  • 30
    I am amazed you need an extra package for such a basic function.
    – luchonacho
    May 26, 2020 at 15:44
62

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.

5
  • 45
    Is it possible to do strikeout without importing a package? Mar 19, 2015 at 16:38
  • 4
    @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. Apr 6, 2015 at 1:36
  • 40
    I am amazed you need an extra package for such a basic function.
    – luchonacho
    May 26, 2020 at 15:44
  • \cancel{} fails with an error message: "! You can't use \/' in vertical mode.". \st{}` functions with the same inputs. I work with pdfTeX 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) May 23 at 9:35
  • @LuísdeSousa: I suggest you port a new question with a fully compilable MWE that duplicates the problem including the \documentclass and the appropriate packages. May 23 at 20:16
30

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$}}
3
  • 2
    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, 2014 at 6:45
  • 3
    This was very helpful. It works on my Texmaker. Thanks. Do you know how to make such a thing work for Math Stack Exchange?
    – KeyC0de
    Oct 9, 2015 at 10:09
  • 1
    @Nikos You can use ~ between the text you want to strikeout, or \cancel when striking out equations. Aug 15, 2020 at 0:58

You must log in to answer this question.

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