JuliaEditorSupport/julia-emacs@2aca8cf585 -> JuliaEditorSupport/julia-emacs@0f4d74f904 ProofGeneral/PG@b30d65de80 -> ProofGeneral/PG@d668946929 abicky/nodejs-repl.el@03d0b64768 -> abicky/nodejs-repl.el@130d49b073 agda/agda@819993172d -> agda/agda@3344ca8058 ardumont/markdown-toc@3d724e518a -> ardumont/markdown-toc@d2fb4cbd95 babashka/neil@78ffab1868 -> babashka/neil@0b7373dd1b clojure-emacs/cider@c228dec27d -> clojure-emacs/cider@f00e83d338 clojure-emacs/clojure-mode@59888c84b6 -> clojure-emacs/clojure-mode@eabe29b076 davazp/graphql-mode@c3baca9280 -> davazp/graphql-mode@ee49531935 dgutov/robe@6bc8a07fc4 -> dgutov/robe@ec4b7e74e9 diml/utop@b490baca21 -> diml/utop@3322adaa52 emacs-ess/ESS@8b4664e4a7 -> emacs-ess/ESS@c72b911d70 emacs-geiser/chicken@a480598b59 -> emacs-geiser/chicken@5f2c1bb446 emacs-geiser/geiser@97ce88463f -> emacs-geiser/geiser@74eed1669a emacs-jupyter/jupyter@e966c5d3d6 -> emacs-jupyter/jupyter@db8a9e233a emacs-lsp/lsp-metals@b5139c9593 -> emacs-lsp/lsp-metals@6a6a345a8a emacs-php/php-mode@31f702ee2d -> emacs-php/php-mode@0f756a8c07 emacs-rustic/rustic@9fdf5c76b2 -> emacs-rustic/rustic@e5c0271f1e emacs-straight/auctex@0de9730957 -> emacs-straight/auctex@f00256cbfd emacs-straight/org-mode@6a5d0ed342 -> emacs-straight/org-mode@5a4686915e emacsorphanage/macrostep@419873665f -> emacsorphanage/macrostep@44faf4f7bf erlang/otp@094260aba7 -> erlang/otp@3e7f126fe4 fxbois/web-mode@0c83581d1e -> fxbois/web-mode@be2d59c8fa gcv/julia-snail@dff92c4250 -> gcv/julia-snail@24f79a067b godotengine/emacs-gdscript-mode@bee7f99c6f -> godotengine/emacs-gdscript-mode@c3d9988984 greghendershott/racket-mode@c5bee6895b -> greghendershott/racket-mode@f2645aadd2 hakimel/reveal.js@0d02d8a303 -> hakimel/reveal.js@e15cf92ccd hvesalai/emacs-scala-mode@bd0638c32a -> hvesalai/emacs-scala-mode@661337d8aa jrblevin/markdown-mode@b8637bae07 -> jrblevin/markdown-mode@e100778594 jwiegley/emacs-async@af47d6f930 -> jwiegley/emacs-async@b99658e831 jwiegley/nix-update-el@aab70a3816 -> jwiegley/nix-update-el@77022ccd91 nonsequitur/inf-ruby@6399a36682 -> nonsequitur/inf-ruby@dad78a13f1 ocaml/dune@5ac095c7c0 -> ocaml/dune@098117d229 ocaml/merlin@a36f42a5b1 -> ocaml/merlin@3a806ef87f oer/org-re-reveal@91610ba9b0 -> oer/org-re-reveal@ab1422c163 org-roam/org-roam@2a630476b3 -> org-roam/org-roam@cad3518788 polymode/poly-R@e4a39caaf4 -> polymode/poly-R@8024e852cf polymode/polymode@15b6c1e94a -> polymode/polymode@74ba75d4bc psibi/dhall-mode@87ab69fe76 -> psibi/dhall-mode@fca383a9c4 purescript-emacs/purescript-mode@d187b3d4bb -> purescript-emacs/purescript-mode@07e4d6ecfe rwv/android-mode@d5332e339a -> rwv/android-mode@67f7c0d7d3 seagle0128/grip-mode@d6c7e33e40 -> seagle0128/grip-mode@df0ba7589d technomancy/fennel-mode@259470b297 -> technomancy/fennel-mode@3632cc77de tpapp/julia-repl@bb90cc1fce -> tpapp/julia-repl@317d560218
:lang latex
Description unfold
Provide a helping hand when working with LaTeX documents.
- Sane defaults
- Fontification of many popular commands
- Pretty indentation of wrapped lines using the doom-package:adaptive-wrap package
- Spell checking with doom-package:flycheck
- Change PDF viewer to Okular or doom-package:latex-preview-pane
- Bibtex editor
- Autocompletion using doom-package:company-mode
- Compile your
.tex
code only once using LatexMk
Maintainers
Module flags
- +cdlatex
- Enable doom-package:cdlatex for fast math insertion.
- +fold
- Use TeX-fold (from doom-package:auctex) to fold LaTeX macros to unicode, and make folding hook-based and less manual.
- +lsp
- Enable LSP support in latex buffers. Requires doom-module::tools lsp and a langserver (supports digestif and TexLab).
Packages
- doom-package:adaptive-wrap
- doom-package:auctex
- doom-package:cdlatex if doom-module:+cdlatex
- doom-package:evil-tex if doom-module::editor evil +everywhere
- doom-package:latex-preview-pane
-
if doom-module::completion company
TODO Hacks
This module's hacks haven't been documented yet. Document them?
TODO Changelog
This module does not have a changelog yet.
Installation
Enable this module in your doom!
block.
This module requires ghostscript and a latex compiler. These are provided by the
texlive
bundle, available through many OS package managers.
Ghostscript <= 9.27 is reportedly 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-basic texlive-latexrecommended texlive-plaingeneric
TODO macOS
brew install --cask basictex
# If the above doesn't work, then
brew install --cask mactex # WARNING: large 4gb download!
This has not been verified.
NixOS
environment.systemPackages = [ pkgs.texlive.combined.scheme-medium ];
Formatter
Formatting is handled using the doom-module::editor format module via latexindent.
TODO Usage
This module has no usage documentation yet. Write some?
Configuration
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):
;; in $DOOMDIR/config.el
(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 doom-module::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:
;; in $DOOMDIR/config.el
(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
doom-package:cdlatex has a snippet insertion capability which is disabled in favor of doom-package:yasnippet when using doom-module::editor snippets. If you still wanna use it, simply rebind the TAB key for cdlatex, which takes care of snippet-related stuff:
;; in $DOOMDIR/config.el
(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.
Troubleshooting
There are no known problems with this module. Report one?
Frequently asked questions
This module has no FAQs yet. Ask one?
TODO Appendix
This module has no appendix yet. Write one?