spacemacs/layers/+lang/latex
Maximilian Wolff 0d609c09d4
[latex] Fix broken binding for SPC m R TAB
Fixes key warning mentioned in #12975
2020-11-12 22:03:47 +01:00
..
img Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
config.el Add lsp support to latex layer 2020-10-30 21:06:34 +01:00
funcs.el Add lsp support to latex layer 2020-10-30 21:06:34 +01:00
layers.el Add lsp support to latex layer 2020-10-30 21:06:34 +01:00
packages.el [latex] Fix broken binding for SPC m R TAB 2020-11-12 22:03:47 +01:00
README.org documentation formatting: Sat Oct 31 08:55:13 UTC 2020 2020-10-31 13:07:55 +01:00

LaTeX layer

/TakeV/spacemacs/media/commit/bdcf359c2f266c5adc34653b1cc0eeadbb658280/layers/+lang/latex/img/latex.png

Description

This layer adds support for LaTeX files with AucTeX.

Features:

  • Auto-build with auctex-latexmk
  • Syntax highlighting
  • Auto-completion
  • Tags navigation on % with evil-matchit
  • Labels, references, citations and index entries management with RefTeX

BibTeX

For more extensive support of BibTeX files than RefTeX provides, have a look at the BibTeX layer.

Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add latex to the existing dotspacemacs-configuration-layers list in this file.

Configuration

Most layer configurations can be done by setting layer variables in your dotfile. Some however require adding lines to your user-config.

Choosing a backend

This layer provides two alternative backends to choose from.

Company-auctex

This is the default choice if nothing is set and no lsp layer is loaded in your dotfile. This mode only provides very limited IDE capabilities. Used best for smaller documents. To set explicitly set the following in your dotfile:

  (latex :variables latex-backend 'company-auctex)

LSP

For proper IDE support this backend should be used. It is based on an external server which will be started automatically by emacs, once a latex file is opened. The key bindings are the same for all lsp modes so if you are already familiar with one you should be able to work the same in all modes.

To set explicitly do the following in your dotfile:

  (latex :variables
  	 latex-backend 'lsp)

For this to work you will also need to obtain the latest version of the lsp server from here and put it into your PATH.

NOTE: Key bindings for LSP are defined in the LSP layer. Also it is advisable to have a look at the autocomplete layer for an optimal intellisense config for LSP.

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:

  (add-hook 'doc-view-mode-hook 'auto-revert-mode)

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.

  dotspacemacs-configuration-layers '(
    (latex :variables latex-build-command "LaTeX"))

Auto-fill

To disable auto-fill (which is on by default) set the variable latex-enable-auto-fill to nil.

The variable latex-nofill-env provide the list of environment names where auto-fill-mode will be inhibited.

  dotspacemacs-configuration-layers '(
    (latex :variables latex-enable-auto-fill nil))

Folding

Enable folding of text by setting latex-enable-folding to t. Default value is nil.

  dotspacemacs-configuration-layers '(
    (latex :variables latex-enable-folding t))

Magic latex buffer

To enable "magic" symbols in latex buffers, set the variable latex-enable-magic to t.

  dotspacemacs-configuration-layers '(
    (latex :variables latex-enable-magic t))

The precise effect of this feature can be modified by adjusting the following variables:

  • magic-latex-enable-block-highlight: show font properties like \large (default t).
  • magic-latex-enable-block-align: reflect block alignment such as \center (default nil).
  • magic-latex-enable-pretty-symbols: substitute symbols in place of code, e.g. greek letters (default t).
  • magic-latex-enable-suscript: show subscripts and superscripts (default t).
  • magic-latex-enable-inline-image: show images inline (default nil).

By default, the underlying latex code is echoed in the echo area.

Key bindings

Key binding Description
SPC m - recenter output buffer
SPC m , TeX command on master file
SPC m . mark LaTeX environment
SPC m * mark LaTeX section
SPC m % comment or uncomment a paragraph
SPC m ; comment or uncomment a region
SPC m a or with LSP SPC m a u run all commands (compile and open viewer)
SPC m b or with LSP SPC m c build the document (compile)
SPC m c or with LSP SPC m i c close LaTeX environment
SPC m e or with LSP SPC m i e insert LaTeX environment
SPC m i i insert \item
SPC m k kill TeX job
SPC m l recenter output buffer
SPC m m insert LaTeX macro
SPC m n goto next error
SPC m N goto previous error
SPC m s insert LaTeX section
SPC m v view output
SPC m h d TeX documentation, can be very slow
SPC m f e fill LaTeX environment
SPC m f p fill LaTeX paragraph
SPC m f r fill LaTeX region
SPC m f s fill LaTeX section
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

Folding

Available only when latex-enable-folding is non nil.

Key binding Description
SPC m z = fold TeX math
SPC m z b fold TeX buffer
SPC m z e fold TeX environment
SPC m z m fold TeX macro
SPC m z r fold TeX region

RefTeX

Key binding Description
SPC m r c or with LSP SPC m R c reftex-citation
SPC m r g or with LSP SPC m R g reftex-grep-document
SPC m r i or with LSP SPC m R i reftex-index-selection-or-word
SPC m r I or with LSP SPC m R I reftex-display-index
SPC m r TAB or with LSP SPC m R TAB reftex-index
SPC m r l or with LSP SPC m R l reftex-label
SPC m r p or with LSP SPC m R p reftex-index-phrase-selection-or-word
SPC m r P or with LSP SPC m R P reftex-index-visit-phrases-buffer
SPC m r r or with LSP SPC m R r reftex-reference
SPC m r s or with LSP SPC m R s reftex-search-document
SPC m r t or with LSP SPC m R t reftex-toc
SPC m r T or with LSP SPC m R T reftex-toc-recenter
SPC m r v or with LSP SPC m R v reftex-view-crossref