I know I can use TeXShop or any other word processing program to spell check my document, but I was wondering, if there are any spell checking scripts, which run in a shell/Terminal.

I saw that there is a program called aspell, but it hasn't been updated for a long time. Are there any good programs/scrips out there?



Although aspell has been mentioned, I would like to give some usage examples.

Basic usage

aspell --mode=tex -c sample-file.tex


List all dictionaries:

aspell dump dicts

Change language to check:

aspell --lang=de --mode=tex -c sample-file.tex

Downsides of aspell

The following is from a German document I've just written. It has 413 lines, so it is rather small.

This should have been recognized as LaTeX, but wasn't:

Before \begin{document}:

  • \sisetup{locale=DE} - "locale"
  • \pgfmathdeclarefunction{strrepeat}{2}{% - "strrepeat"
    • pgfmathint{#2}\pgfmath@count\pgfmathresult and twice later - 3x"count"
    • \let\pgfmathresult\pgfutil@empty - "empty"
    • \pgfutil@loop - "loop"
    • \pgfutil@repeat - "repeat"
  • \pgfmath@smuggleone - "smuggleone"
  • \algtext*{EndIf} - "EndIf", "EndWhile", "EndFunction"
  • \usetikzlibrary{arrows, positioning, calc, shapes} - "arrows", "positioning", "calc", "shapes"
  • \DeclareMathOperator{\ggT}{ggT} - "ggT" (That is valid in a German document about math)

25x words in:

  Stern Brocot at/.style={at/.pgfmath={
      strcat("([rotate around=180:(!", strrepeat("#1",\SBLevel),")] !",
  Stern Brocot at*/.style n args={3}{
    at/.pgfmath={strcat("(!",strrepeat("#1",#2),"-| SB@#3)")},
    append after command/.expanded={\ifnum#2<\SBLevel(\noexpand\tikzlastnode)
      edge[densely dotted] (SB@#3@\the\numexpr\SBLLoop+1\relax)\fi}}}

After \begin{document}:

  • Almost everything within TikZ
  • Much in algorithm environment
  • \begin{tabular}{l||ccl} - "ccl"

aspell also has problems with hyphenated words (source)


Create a file called my_def.tex and put your whole preamble in it. Then add \include{my_def} to your preamble. It should be your file in there.

However, this does not solve the TikZ / table issue. But you can apply the same workaround for TikZ images. I guess it is not convenient to do so for tables.


The fact that aspell has not been updated for a long time IMHO means that it is good. I use it regularly. You only face a problem of recognizing LaTeX keywords, but after couple documents, you add most of them into your dictionary and then you happily spell-check ;)

  • how do you add them to your dictionary permanently?
    – Meneldur
    Apr 15 '14 at 17:07
  • There's a shortcut for that: l if I remember correctly.
    – yo'
    Apr 15 '14 at 17:39

While aspell still works well, the new rage seems to be hunspell. It can also check LaTeX files.

  • Do you know how to install dictionaries for hunspell? Can' seem to figure it out. Running hunspell -d en_US $FILENAME gives me the error: Can't open affix or dictionary files for dictionary named "en_US"
    – cherrung
    Jan 24 '13 at 13:37
  • @cherrung My dictionaries came with packages like myspell-american etc., since hunspell is based on myspell. I don't know how those packages are called on the Mac (you are on a Mac, right?).
    – mafp
    Jan 24 '13 at 15:46

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.