auctex: Completion

 
 2.6 Completion
 ==============
 
 Emacs lisp programmers probably know the 'lisp-complete-symbol' command
 which was bound to 'M-<TAB>' until completion-at-point became the new
 standard completion facility (see below).  Users of the wonderful ispell
 mode know and love the 'ispell-complete-word' command from that package.
 Similarly, AUCTeX has a 'TeX-complete-symbol' command, by default bound
 to 'M-<TAB>' which is equivalent to 'M-C-i'.  Using
 'TeX-complete-symbol' makes it easier to type and remember the names of
 long LaTeX macros.
 
    In order to use 'TeX-complete-symbol', you should write a backslash
 and the start of the macro.  Typing 'M-<TAB>' will now complete as much
 of the macro, as it unambiguously can.  For example, if you type
 ''\renewc'' and then 'M-<TAB>', it will expand to ''\renewcommand''.
 But there's more: if point is just after '\begin{', then
 'TeX-complete-symbol' will complete LaTeX environments, etc.  This is
 controlled by 'TeX-complete-list'.
 
  -- Command: TeX-complete-symbol
      ('M-<TAB>') Complete TeX symbol before point.
 
  -- Variable: TeX-complete-list
      List of ways to complete the preceding text.
 
      Each entry is a list with the following elements:
 
        1. Regexp matching the preceding text or a predicate of arity 0
           which returns non-nil and sets 'match-data' appropriately if
           it is applicable.
        2. A number indicating the subgroup in the regexp containing the
           text.
        3. A function returning an alist of possible completions.
        4. Text to append after a succesful completion.
 
      Or alternatively:
 
        1. Regexp matching the preceding text.
        2. Function to do the actual completion.
 
    More recent Emacs versions have a new completion mechanism.  Modes
 may define and register custom completion-at-point functions and when
 the user invokes 'completion-at-point' (usually bound to 'M-<TAB>'), all
 such registered functions are consulted for checking for possible
 completions.  Modern completion UIs like company-mode support this
 completion-at-point facility.
 
  -- Function: TeX--completion-at-point
      AUCTeX's completion-at-point function which is automatically added
      to 'completion-at-point-functions' in TeX and LaTeX buffers.
 
      It offers the same completion candidates as would
      'TeX-complete-symbol' (and is also controlled by
      'TeX-complete-list') except that it doesn't fall back on
      'ispell-complete-word' which would be awkward with completion UIs
      like company-mode.
 
    A more direct way to insert a macro is with 'TeX-insert-macro', bound
 to 'C-c C-m' which is equivalent to 'C-c <RET>'.  It has the advantage
 over completion that it knows about the argument of most standard LaTeX
 macros, and will prompt for them.  It also knows about the type of the
 arguments, so it will for example give completion for the argument to
 '\include'.  Some examples are listed below.
 
  -- Command: TeX-insert-macro
      ('C-c C-m' or 'C-c <RET>') Prompt (with completion) for the name of
      a TeX macro, and if AUCTeX knows the macro, prompt for each
      argument.
 
    As a default selection, AUCTeX will suggest the macro last inserted
 or, as the first choice the value of the variable 'TeX-default-macro'.
 
  -- User Option: TeX-insert-macro-default-style
      Specifies whether 'TeX-insert-macro' will ask for all optional
      arguments.
 
      If set to the symbol 'show-optional-args', 'TeX-insert-macro' asks
      for optional arguments of TeX marcos, unless the previous optional
      argument has been rejected.  If set to 'show-all-optional-args',
      'TeX-insert-macro' asks for all optional arguments.
      'mandatory-args-only', 'TeX-insert-macro' asks only for mandatory
      arguments.  When 'TeX-insert-macro' is called with prefix argument
      ('C-u'), it's the other way round.
 
      Note that for some macros, there are special mechanisms, e.g.
      'LaTeX-includegraphics-options-alist' and 'TeX-arg-cite-note-p'.
 
  -- User Option: TeX-default-macro
      Default macro to insert when invoking 'TeX-insert-macro' first
      time.
 
    A faster alternative is to bind the function 'TeX-electric-macro' to
 '\'.  This can be done by setting the variable 'TeX-electric-escape'
 
  -- User Option: TeX-electric-escape
      If this is non-nil when AUCTeX is loaded, the TeX escape character
      '\' will be bound to 'TeX-electric-macro'
 
    The difference between 'TeX-insert-macro' and 'TeX-electric-macro' is
 that space will complete and exit from the minibuffer in
 'TeX-electric-macro'.  Use <TAB> if you merely want to complete.
 
  -- Command: TeX-electric-macro
      Prompt (with completion) for the name of a TeX macro, and if AUCTeX
      knows the macro, prompt for each argument.  Space will complete and
      exit.
 
    By default AUCTeX will put an empty set braces '{}' after a macro
 with no arguments to stop it from eating the next whitespace.  This can
 be stopped by entering 'LaTeX-math-mode', SeeMathematics, or by
 setting 'TeX-insert-braces' to nil.
 
  -- User Option: TeX-insert-braces
      If non-nil, append a empty pair of braces after inserting a macro.
 
  -- User Option: TeX-insert-braces-alist
      Control the insertion of a pair of braces after a macro on a per
      macro basis.
 
      This variable is an alist.  Each element is a cons cell, whose car
      is the macro name, and the cdr is non-nil or nil, depending on
      whether a pair of braces should be, respectively, appended or not
      to the macro.
 
      If a macro has an element in this variable, 'TeX-parse-macro' will
      use its value to decided what to do, whatever the value of the
      variable 'TeX-insert-braces'.
 
    Completions work because AUCTeX can analyze TeX files, and store
 symbols in Emacs Lisp files for later retrieval.  SeeAutomatic, for
 more information.
 
    AUCTeX distinguishes normal and expert macros.  By default, it will
 offer completion only for normal commands.  This behavior can be
 controlled using the user option 'TeX-complete-expert-commands'.
 
  -- User Option: TeX-complete-expert-commands
      Complete macros and environments marked as expert commands.
 
      Possible values are nil, t, or a list of style names.
 
      nil
           Don't complete expert commands (default).
      t
           Always complete expert commands.
      (STYLES ...)
           Only complete expert commands of STYLES.
 
    AUCTeX will also make completion for many macro arguments, for
 example existing labels when you enter a '\ref' macro with
 'TeX-insert-macro' or 'TeX-electric-macro', and BibTeX entries when you
 enter a '\cite' macro.  For this kind of completion to work, parsing
 must be enabled as described in SeeParsing Files.  For '\cite' you
 must also make sure that the BibTeX files have been saved at least once
 after you enabled automatic parsing on save, and that the basename of
 the BibTeX file does not conflict with the basename of one of TeX files.