Skip to content

Write latex with neovim

\(\latex\)

vimtex

vimtex基本上是提供了全套的功能,包括

  • 目录,标签等
  • 各种环境,insert模式下的各种snippets,normal模式下的文本对象和命令
  • 编译,报错
  • 正向搜索(从tex定位到pdf)和反向搜索(从pdf定位到tex)
  • conceal (有点影响性能)

而且帮助文档非常详尽,维护积极,而且vim上也能用

缺点几乎没有,除了对与某些信奉unix哲学做一件事并做到最好的人(比如说我)来说有些臃肿。另一个是预设置的快捷键很多,但不一定符合所有人习惯(又是我)。

latex

首先需要一个latex发行版,比如texlive或者miktex。实际编译过程很复杂,为了生成目录和参考文献需要多次编译。但是latexmk可以帮助完成复杂的顺序。最重要的是,latexmk可以监听文本变化,自动重新编译,以此实现“实时”预览。

实际上不是实时。会在每次保存文件时编译,所以insert模式下敲字时并不会更新。另一方面还取决于编译速度。

archlinux上,可以安装整个texlive,如果觉得太臃肿也可以安装其中部分包,例如我只安装了

texlive-bibtexextra
texlive-binextra
texlive-langchinese
texlive-latexextra
texlive-mathscience
texlive-pstricks
texlive-xetex

除此之外还有tectonic等可用,但是难以实现实时预览。

lsp

texlab

tex-fmt

compile

原则上可以直接用命令行编译。但是既然在neovim里,可以用插件封装的命令。

vimtextexlab

snippets

mathzone

为了在文本和数学公式环境中使用不同的片段,例如CC只在数学公式中自动展开为\mathbb{C},需要对能检测数学环境。

最简单的方法是调用vimtex的功能。

python检测。

用treesitter检测。

engine

UltiSnip

LuaSnip