doomemacs/modules/lang/latex
Yubao Liu 404b994caf Bump adaptive-wrap
emacs-straight/adaptive-wrap@8f60ee7 -> emacs-straight/adaptive-wrap@91e939b

Handle non-symbol values of `face` property and don't require `easymenu`
2021-02-12 11:12:45 +08:00
..
+fontification.el lang/latex: general refactor 2018-07-30 03:43:43 +02:00
+ref.el Remove redundant abstraction 2020-04-07 13:16:13 -04:00
+viewers.el Fix #808: latex-preview-pane reopens itself 2020-10-21 19:29:31 -04:00
autoload.el Fix latex item indent ignore LaTeX item indent (#4516) 2021-02-11 17:34:10 -05:00
config.el Fix #4288: no which-key label for TeX-view 2020-11-20 14:10:29 -05:00
packages.el Bump adaptive-wrap 2021-02-12 11:12:45 +08:00
README.org Update package name for TeXLive on Arch Linux 2020-10-13 01:11:42 -07:00

lang/latex

Description

Provide a helping hand when working with LaTeX documents.

  • Sane defaults
  • Fontification of many popular commands
  • Pretty indentation of wrapped lines using the adaptive-wrap package
  • Spell checking with flycheck
  • Change PDF viewer to Okular or latex-preview-pane
  • Bibtex editor
  • Autocompletion using company-mode
  • Compile your .tex code only once using LatexMk

Module Flags

  • +latexmk Use LatexMk instead of LaTeX to compile documents.
  • +cdlatex Enable cdlatex for fast math insertion.
  • +lsp Start LSP automatically in `tex-mode-hook`. This requires the :tools lsp module. Supported servers are `digestif` and `TexLab`.
  • +fold Use TeX-fold (from auctex) to fold LaTeX macros to unicode, and make folding hook-based and less manual.

Prerequisites

You will need ghostscript and a latex compiler. All this is provided by the texlive bundle, available through many OS package managers.

Ghostscript <= 9.27 is reported buggy and doesn't work with auctex's math previews. (You can check you ghostscript version with gs --version.) Most package managers already have newer versions, but if not you might have to build gs from source.

Ubuntu

apt-get install texlive

Arch Linux

pacman -S texlive-core

TODO macOS

brew cask install basictex
# If the above doesn't work, then
brew cask install mactex  # WARNING: large 4gb download!

This has not been verified.

NixOS

environment.systemPackages = [ pkgs.texlive.combined.scheme-medium ];

TODO Features

Customization

Specifying the location of a bibtex file & corresponding PDFs

Reftex has a variable that allow you to specify where it should find your bibliography file(s):

(setq reftex-default-bibliography "/your/bib/file.bib")

Changing the PDFs viewer

This module provides integration for four supported pdf viewers. They are

  • Skim.app (MacOS only)
  • Evince
  • Sumatra PDF
  • Zathura
  • Okular
  • pdf-tools (requires :tools pdf module)

They are searched for in this order. See +latex-viewers to change the order, or remove tools from the search altogether. If you want to exclusively use one tool, for instance:

(setq +latex-viewers '(zathura))

If none of these tools are found, latex-preview-pane (uses DocView in Emacs) is used as a fallback. You can use this exclusively by setting +latex-viewers to nil.

Using cdlatex's snippets despite having yasnippet

cdlatex has a snippet insertion capability which is disabled in favor of yasnippet when using :editor snippets. If you still wanna use it, simply rebind the TAB key for cdlatex, which takes care of snippet-related stuff:

(map! :map cdlatex-mode-map
    :i "TAB" #'cdlatex-tab)

This would favor yasnippet's expansion and cursor movement over cdlatex's expansion and movement, but that shouldn't matter if you're not using yasnippet in latex buffers.