LaTeX Coder
AI-assisted writing, math generation and debugging are coming in later versions. This version compiles with pdfLaTeX and BibTeX.
LaTeX Coder turns VS Code into a LaTeX workspace for papers, CVs and proposals: one tab per project, with your code on the left and the PDF on the right. Everything runs on your machine.
- Editing: a Code Editor or a Word-like Visual Editor, a live PDF that updates when you save, jumps both ways between code and PDF, and errors in the Problems panel.
- Templates: the official NeurIPS, ICLR, ICML, CVPR, ICCV, ECCV, AAAI and IEEE templates, downloaded from each venue, plus a blank article, an academic CV and two proposals.
- Compiling: in the LaTeX Coder container (about 140 MB, no network access), or with your own TeX installation.
Report problems in the Q&A tab.
Getting started
- Open the LaTeX Coder view in the activity bar: Quick Actions has the buttons you need most.
- In Document Structure, click Open LaTeX Project to open a folder with your own
.tex files, or New Project from Template to start a paper, CV or proposal.
- Click the LaTeX Coder button at the top right of the editor. The project's tab opens (or comes to the front) and compiles; drag the divider to resize. The first time, choose Setup Now to download the container once (about 140 MB). It runs in Docker Desktop, OrbStack or Colima.
- Select some LaTeX and click → View in PDF. In the PDF, double-click, click the yellow highlight, or select text and click ← View in Code.
If TeX Live or MacTeX with latexmk is installed, LaTeX Coder compiles with it instead, and Docker isn't needed.
Templates
| Group |
Templates |
| General |
Blank Article |
| Research Papers: Machine Learning |
NeurIPS 2026, ICLR 2027, ICML 2026 |
| Research Papers: Computer Vision |
CVPR 2027, ICCV 2025, ECCV 2026 |
| Research Papers: Artificial Intelligence |
AAAI-27 |
| Research Papers: IEEE |
IEEE Conference, IEEE Journal |
| CV |
Academic CV |
| Proposals |
Research Proposal, Project Proposal |
Research paper templates are downloaded from each venue. The Blank Article, Academic CV and the two proposals come with the extension, so they work offline, and are free to use and change (CC0 1.0).
The container has every package these templates need, plus ones papers often add: subcaption, multirow, TikZ, pgfplots, algorithm2e, siunitx, cleveref and more.
Privacy & Security
- Your papers stay on your machine: they are compiled 100% locally, in the container or by your own TeX, and never uploaded.
- The only network requests are the one-time container download from the GitHub Container Registry, the template download from a venue's official site when you start a paper, and your own template list, if you set
latexCoder.templates.manifestUrl. There is no telemetry.
- Downloaded templates come over HTTPS only, and are used only if their SHA-256 hash matches the one built into the extension; if a venue has changed its file since, you are asked first.
- The container has no network access, runs as a non-root user without Linux capabilities, and sees only the open folder.
- Shell escape (
\write18) is off and latexmkrc files are ignored, so a paper can't run commands while it compiles.
- Nothing compiles in Restricted Mode, and workspace settings can't change the container, shell escape or latexmkrc.
- The PDF and editor views load no remote content, and text from your papers is shown as text, never as HTML; math is drawn by KaTeX with its
trust option off.
- No packages are installed at run time, and the extension needs no account, token or sign-in.
Commands & Settings
| Commands & Settings |
Functionality |
| Document Structure (side bar, top) |
Every LaTeX document in the folder; expand one for its sections, figures, tables, equations and included files, and click to jump there. With no project open: Open LaTeX Project and New Project from Template |
| Quick Actions (side bar) |
Compile & Open this PDF, Open Another LaTeX Project and Start a New Project from Template, in one place |
| LaTeX Coder button (top right of the editor) |
Open the project's LaTeX Coder tab, or bring it to the front, and compile |
| Open Compiled PDF (Command Palette) |
Open the project's LaTeX Coder tab with the last compiled PDF, without compiling again |
| LaTeX Coder tab |
One per project. Left: Code Editor / Visual Editor switch (it remembers your choice), Style, bold, italic, math, lists and → PDF; Document Structure and PDF clicks switch the file shown, and Cmd/Ctrl+S saves it. Right: Recompile, zoom and the PDF. Files opened from the Explorer still open in VS Code's text editor, with the same header as links above line 1 |
View Selection in PDF (→, and the bubble at the cursor) |
Compile if needed and highlight the selected LaTeX in the PDF |
| Open LaTeX Project |
Open a folder with .tex files, in this window or a new one, and show its main file |
| New Project from Template |
Start a project folder from a template, chosen from a list grouped by type and field |
| LaTeX Container (side bar) |
Whether Docker and the container are ready; Setup Now (about 140 MB, once), and Start, Attach (a terminal inside the container) and Stop for the open folder's container |
| Build Container Locally, Add Dev Container, Check Environment |
In the LaTeX Container view's ... menu |
latexCoder.compile.trigger |
onSave (default), onType for a real-time preview, or off |
latexCoder.compile.engine |
pdflatex (default); xelatex and lualatex need your own TeX installation |
latexCoder.sync.selectionAction |
The → View in PDF link: bubble at the cursor (default), codeLens above the line, or off |
latexCoder.editorSwitch |
Show the header links above line 1 when a .tex file is open in VS Code's own text editor (default on) |
latexCoder.templates.location |
Folder suggested for new projects (default: the open folder) |
latexCoder.backend |
auto (default): your own TeX if it is installed, otherwise the container |
latexCoder.rootFile |
The main .tex file, if the one found is wrong |
latexCoder.compile.shellEscape, latexCoder.compile.useLatexmkrc |
Off by default; turn on only for papers you trust (e.g. minted needs shell escape) |
© Hasitha Gallella. Licensed under CC BY-NC-ND 4.0; the licence text is in LICENSE in the extension package. The LaTeX Coder container's build files (container/) and image are under the MIT License; TeX Live and Debian inside the image keep their own licences.
| |