Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Comprehensive guide to LaTeX editors, packages, and typesetting workflows
.claude/skills/brycewang-stanford-latex-ecosystem-guide/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 66% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 75% | 0% |
LaTeX remains the gold standard for typesetting academic documents in mathematics, computer science, physics, and engineering. Its precise control over document layout, equation rendering, and bibliography management makes it indispensable for journal and conference submissions.
This guide consolidates the best resources from the awesome-LaTeX repository (1,600+ stars) into an actionable reference covering editors, essential packages, document classes, bibliography management, and workflow optimization. Whether you are a LaTeX beginner setting up your first paper or an experienced user looking to streamline your pipeline, this skill provides the tools and techniques you need.
The LaTeX ecosystem is vast -- over 6,000 packages on CTAN alone. Rather than cataloging everything, this guide focuses on the packages and tools that researchers use most frequently and the workflows that save the most time.
| Editor | Platform | Real-time Preview | Collaboration | Free | |--------|----------|-------------------|---------------|------| | Overleaf | Web | Yes | Real-time | Yes (limited) | | TeXstudio | Desktop | Compile-based | No | Yes | | VS Code + LaTeX Workshop | Desktop | Yes (SyncTeX) | Live Share | Yes | | Texifier | macOS/iOS | Live | No | Paid | | Vim + VimTeX | Terminal | Zathura/Skim | No | Yes |
json// .vscode/settings.json { "latex-workshop.latex.autoBuild.run": "onSave", "latex-workshop.latex.recipe.default": "latexmk (xelatex)", "latex-workshop.latex.recipes": [ { "name": "latexmk (xelatex)", "tools": ["latexmk-xelatex"] } ], "latex-workshop.latex.tools": [ { "name": "latexmk-xelatex", "command": "latexmk", "args": [ "-xelatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" ] } ], "latex-workshop.view.pdf.viewer": "tab" }
latex\usepackage[margin=1in]{geometry} % Page margins \usepackage{setspace} % Line spacing \usepackage{fancyhdr} % Headers and footers \usepackage{titlesec} % Section heading styles \usepackage[hidelinks]{hyperref} % Clickable cross-references \usepackage{cleveref} % Smart cross-references (\cref)
latex\usepackage{amsmath} % Core math environments \usepackage{amssymb} % Extended symbols \usepackage{amsthm} % Theorem environments \usepackage{mathtools} % Extensions to amsmath \usepackage{bm} % Bold math symbols
latex\usepackage{graphicx} % Include images \usepackage{subcaption} % Subfigures \usepackage{booktabs} % Professional tables (\toprule, \midrule, \bottomrule) \usepackage{multirow} % Multi-row cells \usepackage{siunitx} % SI units and number formatting
latex\usepackage{listings} % Basic code listings \usepackage{minted} % Syntax-highlighted code (requires Pygments) \usepackage{algorithm2e} % Algorithm pseudocode
| Class | Use Case | Key Feature | |-------|----------|-------------| | article | Short papers, preprints | Standard LaTeX | | revtex4-2 | APS journals (Phys Rev) | Built-in journal styles | | IEEEtran | IEEE conferences/journals | Two-column, IEEE format | | acmart | ACM conferences/journals | Multiple formats (sigconf, sigplan) | | elsarticle | Elsevier journals | Preprint and journal modes | | svjour3 | Springer journals | Springer Nature format | | aaai | AAAI conference | AAAI formatting |
latex\documentclass[sigconf,review]{acmart} \begin{document} \title{Your Paper Title} \author{First Author} \affiliation{% \institution{University Name} \city{City} \country{Country} } \email{author@university.edu} \begin{abstract} Your abstract here. \end{abstract} \maketitle \section{Introduction} ... \end{document}
latex\usepackage[ backend=biber, style=numeric-comp, sorting=none, maxbibnames=99 ]{biblatex} \addbibresource{refs.bib} % In document body: As shown in prior work~\cite{vaswani2017attention}... % At the end: \printbibliography
bibtex@article{key, author = {Last, First and Last2, First2}, title = {Paper Title}, journal = {Journal Name}, year = {2024}, volume = {42}, pages = {1--15}, doi = {10.xxxx/xxxxx} } @inproceedings{key2, author = {Last, First}, title = {Conference Paper Title}, booktitle = {Proceedings of Conference}, year = {2024}, pages = {100--110} }
makefileMAIN = paper TEX = $(MAIN).tex PDF = $(MAIN).pdf .PHONY: all clean watch all: $(PDF) $(PDF): $(TEX) refs.bib latexmk -xelatex -interaction=nonstopmode $(TEX) clean: latexmk -C watch: latexmk -xelatex -pvc -interaction=nonstopmode $(TEX)
bash# .gitignore for LaTeX projects *.aux *.bbl *.blg *.log *.out *.synctex.gz *.fdb_latexmk *.fls *.toc *.nav *.snm
latexmk instead of manual compilation chains. It handles multi-pass compilation automatically.booktabs for tables. Never use vertical lines (|) in academic tables.\cref{} from cleveref. It automatically prepends "Figure," "Table," or "Equation."| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 18,595 | 5,729 | -69% | 1 | 1 | 0% | 2,317 | 2,847 | +23% | 0 | 0 | — |
case-02 | fail→fail | 15,487 | 14,715 | -5% | 1 | 1 | 0% | 2,843 | 4,526 | +59% | 0 | 0 | — |
case-03 | fail→pass | 18,796 | 21,777 | +16% | 1 | 1 | 0% | 2,768 | 5,266 | +90% | 0 | 0 | — |
case-04 | pass→pass | 17,025 | 37,250 | +119% | 1 | 1 | 0% | 2,489 | 4,129 | +66% | 0 | 0 | — |
case-05 | pass→pass | 11,246 | 7,381 | -34% | 1 | 1 | 0% | 1,774 | 3,103 | +75% | 0 | 0 | — |
case-06 | pass→pass | 14,485 | 13,374 | -8% | 1 | 1 | 0% | 2,102 | 3,685 | +75% | 0 | 0 | — |
case-07 | pass→pass | 14,098 | 12,539 | -11% | 1 | 1 | 0% | 2,528 | 3,529 | +40% | 0 | 0 | — |
case-08 | pass→pass | 9,029 | 7,315 | -19% | 1 | 1 | 0% | 1,476 | 2,943 | +99% | 0 | 0 | — |
case-09 | pass→pass | 15,428 | 15,876 | +3% | 1 | 1 | 0% | 2,503 | 4,476 | +79% | 0 | 0 | — |
case-10 | pass→pass | 5,175 | 6,416 | +24% | 1 | 1 | 0% | 981 | 2,732 | +178% | 0 | 0 | — |
case-11 | fail→fail | 8,126 | 7,524 | -7% | 1 | 1 | 0% | 1,323 | 3,127 | +136% | 0 | 0 | — |
case-12 | pass→pass | 9,153 | 8,662 | -5% | 1 | 1 | 0% | 1,305 | 3,301 | +153% | 0 | 0 | — |
case-13 | fail→fail | 6,216 | 8,115 | +31% | 1 | 1 | 0% | 963 | 3,240 | +236% | 0 | 0 | — |
case-14 | pass→pass | 7,973 | 8,908 | +12% | 1 | 1 | 0% | 1,440 | 3,106 | +116% | 0 | 0 | — |
case-15 | pass→pass | 10,583 | 8,012 | -24% | 1 | 1 | 0% | 1,568 | 2,964 | +89% | 0 | 0 | — |
case-16 | pass→pass | 5,380 | 3,895 | -28% | 1 | 1 | 0% | 835 | 2,413 | +189% | 0 | 0 | — |
case-17 | fail→pass | 9,590 | 4,139 | -57% | 1 | 1 | 0% | 1,362 | 2,526 | +85% | 0 | 0 | — |
case-18 | pass→pass | 4,317 | 3,817 | -12% | 1 | 1 | 0% | 765 | 2,477 | +224% | 0 | 0 | — |
case-19 | pass→pass | 15,965 | 15,052 | -6% | 1 | 1 | 0% | 2,599 | 4,004 | +54% | 0 | 0 | — |
case-20 | pass→pass | 8,870 | 7,478 | -16% | 1 | 1 | 0% | 1,686 | 3,084 | +83% | 0 | 0 | — |
case-21 | pass→pass | 10,145 | 7,718 | -24% | 1 | 1 | 0% | 1,371 | 3,178 | +132% | 0 | 0 | — |
case-22 | pass→pass | 15,813 | 20,101 | +27% | 1 | 1 | 0% | 2,966 | 4,961 | +67% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +14 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.