FStarLang/fstar-mode.el@6e5d3ea858 -> FStarLang/fstar-mode.el@36ffb46259 ProofGeneral/PG@d668946929 -> ProofGeneral/PG@e0ec3db200 Wilfred/helpful@4ba24cac9f -> Wilfred/helpful@5ad8a9ce57 agda/agda@3344ca8058 -> agda/agda@10a0ca0516 bastibe/org-journal@17b34ce8df -> bastibe/org-journal@115b9c0354 beancount/beancount-mode@452621fa1f -> beancount/beancount-mode@ddd4b87257 clojure-emacs/cider@f00e83d338 -> clojure-emacs/cider@a0d6169026 crystal-lang-tools/emacs-crystal-mode@ea89b108fa -> crystal-lang-tools/emacs-crystal-mode@d913fea6f0 emacs-ess/ESS@c72b911d70 -> emacs-ess/ESS@0eb240bcb6 emacs-geiser/geiser@74eed1669a -> emacs-geiser/geiser@c1c27072a4 emacs-lsp/lsp-haskell@6981f8d122 -> emacs-lsp/lsp-haskell@b2edf1a9f8 emacs-lsp/lsp-metals@6a6a345a8a -> emacs-lsp/lsp-metals@567089f7f4 emacs-rustic/rustic@e5c0271f1e -> emacs-rustic/rustic@fbbf0a7192 emacs-straight/auctex@f00256cbfd -> emacs-straight/auctex@53f80ba36c emacs-straight/org-mode@5a4686915e -> emacs-straight/org-mode@ff33d9ec2e emacs-typescript/typescript.el@dd10f702d4 -> emacs-typescript/typescript.el@481df3ad2c emacsorphanage/dart-mode@02e919c1cf -> emacsorphanage/dart-mode@88b6683f43 emacsorphanage/macrostep@44faf4f7bf -> emacsorphanage/macrostep@d0928626b4 erlang/otp@3e7f126fe4 -> erlang/otp@64185e73b0 fuxialexander/org-pdftools@4e420233a1 -> fuxialexander/org-pdftools@5613b7ae56 greghendershott/racket-mode@f2645aadd2 -> greghendershott/racket-mode@eef5e9ab2c hakimel/reveal.js@e15cf92ccd -> hakimel/reveal.js@2059d388f7 haskell/haskell-mode@1a285fc4c5 -> haskell/haskell-mode@7f452cc9e6 joaotavora/sly@742355f755 -> joaotavora/sly@c48defcf58 jorgenschaefer/emacs-buttercup@bf01a33f8b -> jorgenschaefer/emacs-buttercup@c467c659b2 jrblevin/markdown-mode@e100778594 -> jrblevin/markdown-mode@ee9d6de1d2 js-emacs/js2-refactor.el@a0977c4ce1 -> js-emacs/js2-refactor.el@e1177c728a kaushalmodi/ox-hugo@98421a1298 -> kaushalmodi/ox-hugo@e3365cb4e6 ljos/jq-mode@a0f79eba78 -> ljos/jq-mode@eeb86b4d5a magit/orgit@59d21fdb21 -> magit/orgit@3b6b34bd11 nonsequitur/inf-ruby@dad78a13f1 -> nonsequitur/inf-ruby@b8076aad10 ocaml/dune@098117d229 -> ocaml/dune@b74586e909 ocaml/merlin@3a806ef87f -> ocaml/merlin@92c3ba9473 oer/org-re-reveal@ab1422c163 -> oer/org-re-reveal@88e9d9e679 org-roam/org-roam@cad3518788 -> org-roam/org-roam@0037daaf3e purescript-emacs/purescript-mode@07e4d6ecfe -> purescript-emacs/purescript-mode@b076bafe94 pythonic-emacs/anaconda-mode@f900bd7656 -> pythonic-emacs/anaconda-mode@5c6eff4645 pythonic-emacs/company-anaconda@169252fca7 -> pythonic-emacs/company-anaconda@0f7984b3be pythonic-emacs/pyenv-mode@76787ea44f -> pythonic-emacs/pyenv-mode@f7d53796d6 seagle0128/grip-mode@df0ba7589d -> seagle0128/grip-mode@ffce7f78eb swift-emacs/swift-mode@ab189d6e89 -> swift-emacs/swift-mode@2c0b2b72dc technomancy/fennel-mode@3632cc77de -> technomancy/fennel-mode@4ccb6d5944 weijiangan/flycheck-golangci-lint@91c59b128a -> weijiangan/flycheck-golangci-lint@424ba1b3a1
: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?