Texforge
CLI tool for compiling LaTeX documents to PDF without TeX Live, MiKTeX, or any external LaTeX distribution. Use this skill whenever the user wants to create a LaTeX project, compile .tex files to PDF, format or lint LaTeX documents, manage templates, or work with the texforge CLI. Activate when the user mentions "texforge new", "texforge build", "texforge fmt", "texforge check", "texforge init", "texforge template", creating a thesis or academic document, compiling LaTeX without installing TeX Live, using tectonic as a LaTeX engine, project.toml configuration, or any workflow involving .tex files and the texforge tool.From its SKILL.md
npx -y skills add UniverLab/skills --skill texforgeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.7 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it
texforge CLI
CLI para compilar LaTeX a PDF. Usa tectonic como motor interno — no requiere TeX Live ni MiKTeX. Tectonic se instala automáticamente en el primer texforge build.
Instalación
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/UniverLab/texforge/main/scripts/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/UniverLab/texforge/main/scripts/install.ps1 | iex
# Via cargo
cargo install texforge
Tectonic se descarga e instala automáticamente en ~/.texforge/bin/ la primera vez que se ejecuta texforge build. No se requiere ningún paso adicional.
Comandos
texforge new <name>
texforge new mi-tesis # template "general" (embebido, funciona offline)
texforge new mi-tesis -t apa-general # template específico
Estructura generada:
mi-tesis/
├── project.toml
├── main.tex
├── sections/body.tex
├── bib/references.bib
└── assets/images/
project.toml:
[documento]
titulo = "mi-tesis"
autor = "Author"
template = "general"
[compilacion]
entry = "main.tex"
bibliografia = "bib/references.bib"
texforge init
Wizard interactivo. Si detecta un .tex con \documentclass, ofrece migrar el proyecto existente. Si no, guía la creación de uno nuevo pidiendo nombre y template.
# En un directorio vacío — crea proyecto nuevo
cd mis-documentos/
texforge init
# En un proyecto LaTeX existente — migra
cd mi-tesis-existente/
texforge init
# Detectado: main.tex, refs.bib
# Pide titulo y autor, genera project.toml
Después de init, todos los comandos (build, fmt, check) funcionan normalmente.
texforge build
texforge build
Compila main.tex → PDF en build/. Los errores se muestran con archivo, línea y sugerencia — nunca logs crudos de tectonic.
Antes de compilar, intercepta entornos de diagramas embebidos, los renderiza, y trabaja sobre copias en build/ — los .tex originales nunca se modifican.
texforge build --watch
texforge build --watch # recompila al guardar (debounce 2s por defecto)
texforge build --watch --delay 5 # debounce de 5s
Sesión persistente con timer en vivo, contador de builds y solo el último resultado (sin acumular logs). Salida coloreada; Ctrl+C para salir.
texforge clean
texforge clean # elimina build/ (PDF, logs, diagramas renderizados)
Diagramas embebidos — Mermaid
% Sin opciones (defaults: width=\linewidth, pos=H, sin caption)
\begin{mermaid}
flowchart LR
A[Input] --> B[Process] --> C[Output]
\end{mermaid}
% Con opciones
\begin{mermaid}[width=0.6\linewidth, caption=Flujo del sistema, pos=t]
flowchart TD
X --> Y --> Z
\end{mermaid}
Renderizado a PNG en Rust puro — sin browser, sin Node.js, sin Inkscape.
| Opción | Default | Descripción |
|---|---|---|
width | \linewidth | Ancho de la imagen |
pos | H | Posición del figure (H, t, b, h, p) |
caption | (ninguno) | Pie de figura |
Diagramas embebidos — Graphviz / DOT
\begin{graphviz}[caption=Pipeline, width=0.8\linewidth]
digraph G {
rankdir=LR
A -> B -> C
B -> D
}
\end{graphviz}
Mismas opciones que mermaid. Renderizado via layout-rs — Rust puro, sin binario dot externo.
Diagramas embebidos — D2
\begin{d2}[caption=Arquitectura, width=0.7\linewidth]
user -> api: request
api -> db: query
db -> api: rows
api -> user: response
\end{d2}
Sintaxis D2 (contenedores, shapes, sql_table, etc.). Mismas opciones que mermaid/graphviz. Renderizado via d2-little — Rust puro, sin binario d2 externo ni Node.js.
texforge fmt [--check]
texforge fmt # formatea en lugar
texforge fmt --check # solo verifica, útil en CI
Formateador determinista (estilo cargo fmt): re-indenta .tex por nivel de
anidamiento — entornos (\begin/\end) y llaves sin cerrar (p.ej.
\hypersetup{...} o un \subsection*{...} multilínea) — recortando espacios
finales y colapsando líneas en blanco repetidas. No reflowea el texto de
párrafos ni toca el contenido de entornos verbatim/lstlisting/minted.
También formatea archivos .bib: un campo por línea, indentación de 2 espacios,
= alineados, tipos y nombres de campo en minúscula, y coma final tras cada
campo. Es conservador — si un .bib no se puede parsear con seguridad, lo deja
intacto en vez de arriesgar corromper las referencias.
texforge check
Linter estático — valida sin compilar. Detecta:
- Archivos
\inputfaltantes - Imágenes
\includegraphicsno encontradas - Archivos
\lstinputlistingno encontrados - Archivos
\inputminted{lang}{file}no encontrados - Claves
\citeno definidas en el.bib - Pares
\ref/\labelrotos - Entornos sin cerrar
ERROR [main.tex:47]
\includegraphics{missing.png} — file not found
ERROR [main.tex:12]
\cite{smith2020} — key not found in .bib
texforge config
Gestiona la configuración global (~/.texforge/), usada para rellenar placeholders al crear proyectos (autor, institución, etc.).
texforge config # wizard interactivo
texforge config list # muestra toda la configuración actual
texforge config name # muestra el valor de una clave
texforge config name "Jane Doe" # asigna un valor
Claves disponibles: name, email, institution, language.
texforge template
texforge template list # instalados + disponibles en el registry remoto (por defecto)
texforge template list --local # solo los instalados localmente (sin consultar el registry)
texforge template add apa-general # descarga desde registry
texforge template remove apa-general
texforge template validate apa-general
Para conocer los templates disponibles, siempre consultá la CLI — no asumas una lista fija, el registry remoto se actualiza por separado:
texforge template list # fuente de verdad: instalados + registry remoto (por defecto)
Cada entrada muestra nombre y descripción. Usá ese nombre con texforge new -t <nombre>
o texforge template add <nombre>.
Flujo típico — proyecto nuevo
texforge new mi-documento
cd mi-documento
texforge check # detectar errores antes de compilar
texforge fmt # formatear
texforge build # compilar a PDF
Flujo típico — proyecto existente
cd mi-proyecto-latex/
texforge init # genera project.toml detectando entry y bib
texforge check
texforge build
Si texforge build falla
- Correr
texforge checkprimero — resuelve la mayoría de errores sin compilar - Si es el primer build, tectonic se está descargando — verificar conexión a internet
- Para errores de sintaxis LaTeX, el output indica archivo y línea exacta
What ships with it: 3 files
5.5 KB alongside SKILL.md
- CHANGELOG.md3.5 KB
- LICENSE1.0 KB
- README.md976 B