The quick start guide for AUCTeX says

As nearly everywhere in AUCTeX, you can use the TAB or SPC key to get a list of available level names, and to auto-complete what you started typing.

Which tantalizingly makes me thing AUCTeX has an auto-complete feature. But pressing TAB does nothing. I apologize for the simple question, but I've spent more time searching for it than I am ever likely to save so this is a last resort before I give up on it.

So, is there in fact an auto-complete feature in Emacs AUCTeX? How does one turn it on if so?

Edit: I just figured out M-TAB is problematic since it is bound to a OS GUI action. I saw a website discuss this problem and it notes that there are two key bindings which are supposed to be equivalent: c-[ c-I and ESC TAB. Except these for some reason give me dictionary spelling corrections for the word I wrote which is not exactly what I was expecting.

  • Can you please share the way of turning off this flyspell mode? I tried the two methods given elsewhere on this site ....Latex-mode-hook 'turn-off-flyspell and '(flyspell-mode f)
    – Anusha
    Commented Jul 5, 2012 at 3:24
  • Why are you trying to use M-TAB for autocomplete? As you quoted: AUCTeX uses TAB or SPC to prompt for possible autocomplete actions (i.e., no Meta-<something>).
    – jon
    Commented Jul 5, 2012 at 5:29
  • 1
    @jon The manual lists M-Tab as the default binding for TeX-complete-symbol.
    – N.N.
    Commented Oct 2, 2012 at 19:07
  • 1
    @N.N. -- huh, never noticed that. I always just use C-c C-m or C-c <RET> (if I want to insert something like \footnote) at which point <TAB> and <SPC> will do tab-completion to the point where further disambiguation is needed (e.g., there are a lot of known commands starting with \foot-).
    – jon
    Commented Oct 2, 2012 at 19:24

4 Answers 4


It does have auto-complete powers. (It has more than any one person knows about.) Try, e.g., C-c C-m (for calling macros like \footnote or \ref); type the letter 's' and hit TAB. The rest will become clear. C-c C-e will prompt for for starting new environments. And so on.

If you use AUCTeX with reftex, try things like C-c [ to prompt you for a bibliographical \cite{<key>} command.

You should skim the manual for the sections that are most relevant for your work.

  • 3
    Thank you. I figured out why the key binding given in the manual wasn't working. Flyspell is bound to the same key as the auto-complete function so it has to be disabled for auto-complete to work. Commented Jun 8, 2012 at 5:57
  • 1
    @AwnaniMaus You should post that as an answer to your question.
    – N.N.
    Commented Jun 9, 2012 at 7:03
  • Can you please share the way of turning off this flyspell mode? I tried the two methods given elsewhere on this site ....Latex-mode-hook 'turn-off-flyspell and '(flyspell-mode f)
    – Anusha
    Commented Jul 5, 2012 at 3:23
  • @Anusha -- Let's start with this: Can you turn off flyspell-mode when you are in a .tex buffer with the following command: M-x flyspell-mode RET? (If it is on, this should turn it off; if it is off, this should turn it on.)
    – jon
    Commented Jul 5, 2012 at 5:27
  • @jon Thanks. This works. I guess autocomplete in emacs means working with macros or defined key bindings.
    – Anusha
    Commented Jul 5, 2012 at 18:39

As you mention AUCTeX has an auto-complete function which per default is bound to M-Tab which conflicts with many window managers. The function is called TeX-complete-symbol and you can use it via M-x TeX-complete-symbol or bind it to any other key you prefer. By inserting the following into your .emacs you bind it to C-Tab in LaTeX-mode (i.e. AUCTeX):

(add-hook 'LaTeX-mode-hook
        (local-set-key [C-tab] 'TeX-complete-symbol)))

Still, I think it may be more effective to use C-c Ret (for TeX-insert-macro), C-c C-e (for LaTeX-environment) and YASnippet.


As of recently, AucTEX seems to work out of the box with Predictive Mode, providing "full "Intellisense" features for writing LaTeX documents in Emacs." (See the AucTeX entry on the EmacsWiki for more info). I have not tried this yet, but surely will when I get home in the evening.


You can use Emacs's native Dynamic Abbrev Expansion for most auto completions.

Just try M-/. You can keep repeating M-/ to cycle through all possible completions.

For more details: https://www.gnu.org/software/emacs/manual/html_node/emacs/Dynamic-Abbrevs.html

You must log in to answer this question.

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