Automated Arch-focused workflow that installs NeoVim, LaTeX tooling, and a tuned configuration for writing, compiling, and previewing TeX documents.
- Overview
- Requirements
- Quick Start
- Installation Profiles
- Components
- Usage Essentials
- Snippet Tips
- Troubleshooting
- Contributing
- License
- One-command bootstrap that provisions NeoVim, TeX Live, texlab, and supporting tooling
- Opinionated config built on
lazy.nvim, VimTeX, LuaSnip, Telescope, Treesitter, and Git utilities - Zathura viewer integration with forward and inverse SyncTeX search out of the box
- Arch Linux or a compatible Arch-based distribution
- Internet connectivity for package downloads
- ≥ 2 GB free disk space (more for full TeX Live)
- Clone the repo:
git clone git@github.com:jorgemunozl/arch-nvim-latex.git cd arch-nvim-latex - Run the installer:
chmod +x setup.sh ./setup.sh # guided ./setup.sh --yes # defaults to medium profile ./setup.sh --level full --yes --skip-aur # example with flags
- Launch NeoVim, wait for plugins to sync, and open a
.texbuffer to begin.
During execution the script prompts for a TeX Live scope unless provided via --level:
| Profile | Contents (summary) | Footprint* |
|---|---|---|
| minimal | Core TeX Live plus latexmk and Zathura | ~200 MB |
| medium | Core + recommended + math + fonts + biber | ~700 MB |
| full | Full TeX Live collection with publishers extras | ~2–3 GB |
* Approximate download size; actual usage varies with mirrors and dependencies.
Profiles can be extended later with pacman or tlmgr if required.
System packages: NeoVim, Git, build toolchain, Python, Node.js, ripgrep, fd, fzf, tree-sitter.
LaTeX stack: TeX Live per profile, latexmk, biber (medium/full), Zathura with SyncTeX inverse search via nvr.
NeoVim configuration:
lazy.nvimplugin manager with plugin set defined innvim/lua/plugins/- VimTeX, texlab LSP, LuaSnip, Treesitter, Telescope, nvim-tree, Fugitive, and UI refinements
- Custom LuaSnip snippets installed under
~/.config/nvim/snippets
Live workflow
<leader>ll— start/stop latexmk (continuous build)<leader>lv— open current PDF in Zathura<leader>lc— clean auxiliary files
Navigation & search
<leader>fffind files,<leader>fgripgrep,<leader>efile explorer,<leader>ggGit statusttcompile,tvview,tctoggle VimTeX TOC,te/tainsert equation or align blocks (normal mode,.texbuffers)
Inverse search
- Ctrl+Left Click (or configured Zathura shortcut) jumps back to the matching line in Neovim via
nvr.
- Snippets live in
~/.config/nvim/snippets - Expand or jump forward with
Tab/Ctrl-l, backward withShift-Tab/Ctrl-h - Choice nodes cycle with
Ctrl-k - Autosnippets in math mode:
@a → \alpha,fra → \frac{…}{…},sq → \sqrt{…} - Reload without restarting NeoVim:
:lua require('luasnip.loaders.from_lua').load({ paths = vim.fn.stdpath('config') .. '/snippets/lua/' })
- Inspect the latest installer log:
ls -1t install_*.log | head -n1 | xargs -r tail -n +1 - Verify tooling after manual changes:
./setup.sh --verify - Reset the NeoVim configuration from this repo:
./setup.sh --reset - Snippets not expanding?
- Check VimTeX math context:
:echo exists('*vimtex#syntax#in_mathzone') - Reload snippets using the command above
- Check VimTeX math context:
Issues and pull requests are welcome. Please describe your environment, profile, and reproduction steps when reporting problems.
Released under the MIT License—see LICENSE.