git clone --depth 1 https://github.com/fcakyon/phd-skills /tmp/latex-setup && cp -r /tmp/latex-setup/plugin/skills/latex-setup ~/.claude/skills/latex-setupSKILL.md
# LaTeX Environment Setup
You are helping a researcher set up or fix their LaTeX compilation environment. Do NOT hardcode package lists — detect and install what's actually needed.
## Step 1: Detect Current State
Before installing anything:
1. **Check installed TeX distribution**:
```
which pdflatex && pdflatex --version
which xelatex && xelatex --version
which lualatex && lualatex --version
```
2. **Check bibliography processor**:
```
which biber && biber --version
which bibtex && bibtex --version
```
3. **Check package manager**:
```
which tlmgr && tlmgr --version
```
## Step 2: Analyze the Project
Read the main .tex file to determine requirements:
1. **Document class**: `\documentclass{article}`, `\documentclass{IEEEtran}`, etc.
2. **Bibliography system**:
- `\usepackage{biblatex}` → needs `biber`
- `\usepackage{natbib}` or `\bibliographystyle{...}` → needs `bibtex`
3. **Required packages**: extract from all `\usepackage{...}` declarations
4. **Special requirements**: TikZ, minted (needs pygments), algorithm2e, etc.
## Step 3: Venue Template Detection
If the user mentions a venue, search for the official template:
- Download from the venue's official website (NOT third-party mirrors)
- Check if the template specifies a required TeX distribution or class
- Note any venue-specific compilation instructions
Common venues and their requirements:
| Venue | Class | Bib system | Notes |
|-------|-------|-----------|-------|
| CVPR/ECCV | Custom class file | bibtex | Usually provided in template |
| NeurIPS | neurips_20XX.sty | natbib + bibtex | Style file changes yearly |
| ICLR | iclr20XX_conference.sty | natbib + bibtex | OpenReview format |
| ACL/EMNLP | acl.cls | bibtex | ACL Anthology format |
| IEEE | IEEEtran.cls | bibtex | Column formatting specific |
| Springer | llncs.cls | bibtex or biblatex | Depends on series |
## Step 4: Install Missing Components
Based on analysis, install only what's missing:
### On Ubuntu/Debian
```bash
# Base installation (if nothing installed)
sudo apt install texlive-base texlive-latex-recommended
# Common extras
sudo apt install texlive-latex-extra # most \usepackage needs
sudo apt install texlive-fonts-recommended texlive-fonts-extra
sudo apt install texlive-bibtex-extra biber # if biblatex used
sudo apt install texlive-science # algorithm2e, etc.
```
### On macOS
```bash
# Full installation (recommended)
brew install --cask mactex
# Minimal
brew install --cask basictex
sudo tlmgr update --self
sudo tlmgr install <package-name>
```
### Individual packages via tlmgr
```bash
# If specific packages are missing
sudo tlmgr install <package-name>
```
## Step 5: Configure Compilation
Set up the correct compilation pipeline:
### For bibtex projects
```bash
pdflatex main.tex
bibtex main
pdflatex main.tex
pdflatex main.tex
```
### For biblatex/biber projects
```bash
pdflatex main.tex
biber main
pdflatex main.tex
pdflatex main.tex
```
### Common compilation issues
- **Missing .bib file**: check `\bibliography{...}` path is correct
- **Undefined citations**: run bibtex/biber + pdflatex twice
- **Missing packages**: install via tlmgr, not apt (apt packages are coarse-grained)
- **Font errors**: install texlive-fonts-extra
- **TikZ externalize errors**: ensure write18 is enabled
## Step 6: Verify Setup
After configuration:
1. Run the full compilation pipeline
2. Check the PDF opens correctly
3. Verify bibliography entries appear
4. Check for any remaining warnings in the .log file
## Output Format
Produce:
1. **Current state**: what's installed, what's missing
2. **Project requirements**: detected from .tex files
3. **Installation commands**: only what's needed, OS-specific
4. **Compilation command**: the exact pipeline for this project
5. **Verification**: confirm successful compilationSame-epoch comparison of training runs across wandb, neptune, tensorboard, or mlflow. Aligns runs at the student's current step (never current-vs-final-of-baseline) and separates proxy metrics from downstream targets. Use when the user asks to compare runs, check if a run is improving, track lag against a baseline, rank experiments, or evaluate run-vs-run performance.
>
Evidence-before-action diagnosis of failing ML experiments. Probes the system before guessing causes, process list, dmesg, GPU stats, log scrollback, checkpoint state, then states a hypothesis as a hypothesis and runs a smoke before claiming a root cause. Use when the user asks why a run is failing, diverging, OOMing, hanging, slow, producing weird metrics, has crashed, or asks to debug, diagnose, troubleshoot, or investigate a training issue.
>
Pre-flight checklist for long-running ML training jobs covering config diff, run naming, path verification, monitoring setup, and restart-cleanup. Use when the user asks to launch, kick off, start, restart, or kill a training run, or mentions launching a multi-hour or multi-day GPU job (python train, accelerate launch, torchrun, deepspeed, sbatch, tmux training).
>
>
>