#+TITLE: LaTeX Layer for Spacemacs
#+HTML_HEAD_EXTRA:
[[file:img/latex.png]]
* Table of Contents :TOC_4_org:noexport:
- [[Description][Description]]
- [[Features][Features]]
- [[Install][Install]]
- [[Layer][Layer]]
- [[Auto-completion][Auto-completion]]
- [[Previewing][Previewing]]
- [[Build command][Build command]]
- [[Auto-fill][Auto-fill]]
- [[Keybindings][Keybindings]]
- [[RefTeX][RefTeX]]
* Description
This layer adds support for LaTeX files with [[https://savannah.gnu.org/projects/auctex/][AucTeX]].
** Features
- Auto-build with [[https://github.com/tom-tan/auctex-latexmk/][auctex-latexmk]]
- Auto-completion with [[https://github.com/alexeyr/company-auctex][company-auctex]]
- Tags navigation on ~%~ with [[https://github.com/redguardtoo/evil-matchit][evil-matchit]]
- Labels, references, citations and index entries management with [[http://www.gnu.org/software/emacs/manual/html_node/reftex/index.html][RefTeX]]
* Install
** Layer
To use this contribution add it to your =~/.spacemacs=
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(latex))
#+END_SRC
** Auto-completion
Add the layer =auto-completion= to the variable
=dotspacemacs-configuration-layers= of your dotfile =~/.spacemacs=.
** Previewing
To perform full-document previews (that is, aside from the inline previewing
under ~SPC m p~), add the following to your =.spacemacs=
under =dotspacemacs/user-config=:
#+BEGIN_SRC emacs-lisp
(add-hook 'doc-view-mode-hook 'auto-revert-mode)
#+END_SRC
Then when you open up a compiled PDF, the preview will update automatically
when you recompile.
** Build command
A build command can be specified via the layer variable =latex-build-command=.
If =LatexMk= is specified, the appropriate =LatexMk= configuration
will be applied. (the default on systems with =latexmk= in the path)
This variable can be set to any of the entities in =TeX-command-list=,
including any custom entries you may have added there. To use the
regular =AucTeX= command set =latex-build-command= to =LaTeX= as shown
below.
#+BEGIN_SRC emacs-lisp
dotspacemacs-configuration-layers '(
(latex :variables latex-build-command "LaTeX"))
#+END_SRC
** Auto-fill
To enable auto-fill set the variable =latex-enable-auto-fill= to =t=.
The variable =latex-nofill-env= provide the list of environment names where
=auto-fill-mode= will be inhibited.
#+BEGIN_SRC emacs-lisp
dotspacemacs-configuration-layers '(
(latex :variables latex-enable-auto-fill t))
#+END_SRC
* Keybindings
| Key Binding | Description |
|---------------+-------------------------------------|
| ~SPC m -~ | open output buffer |
| ~SPC m b~ | build |
| ~SPC m c~ | close LaTeX environment |
| ~SPC m C~ | TeX command on master file |
| ~SPC m e~ | insert LaTeX environment |
| ~SPC m i~ | insert =\item= |
| ~SPC m h d~ | TeX documentation, can be very slow |
| ~SPC m p r~ | preview region |
| ~SPC m p b~ | preview buffer |
| ~SPC m p d~ | preview document |
| ~SPC m p e~ | preview environment |
| ~SPC m p s~ | preview section |
| ~SPC m p p~ | preview at point |
| ~SPC m p f~ | cache preamble for preview |
| ~SPC m p c~ | clear previews |
| ~SPC m v~ | view |
| ~SPC m x b~ | make font bold |
| ~SPC m x B~ | make font medium weight |
| ~SPC m x c~ | make font monospaced (for code) |
| ~SPC m x e~ | make font emphasised |
| ~SPC m x i~ | make font italic |
| ~SPC m x o~ | make font oblique |
| ~SPC m x r~ | remove font properties |
| ~SPC m x f a~ | use calligraphic font |
| ~SPC m x f c~ | use small-caps font |
| ~SPC m x f f~ | use sans serif font |
| ~SPC m x f n~ | use normal font |
| ~SPC m x f r~ | use serif font |
| ~SPC m x f u~ | use upright font |
** RefTeX
| Key Binding | Description |
|---------------+---------------------------------------|
| ~SPC m r c~ | reftex-citation |
| ~SPC m r g~ | reftex-grep-document |
| ~SPC m r i~ | reftex-index-selection-or-word |
| ~SPC m r I~ | reftex-display-index |
| ~SPC m r C-i~ | reftex-index |
| ~SPC m r l~ | reftex-label |
| ~SPC m r p~ | reftex-index-phrase-selection-or-word |
| ~SPC m r P~ | reftex-index-visit-phrases-buffer |
| ~SPC m r r~ | reftex-reference |
| ~SPC m r s~ | reftex-search-document |
| ~SPC m r t~ | reftex-toc |
| ~SPC m r T~ | reftex-toc-recenter |
| ~SPC m r v~ | reftex-view-crossref |