Sublime Text (LaTeXTools)

Sublime Text es el único editor de esta sección por el que se espera que pague, y el único que, sin instalar nada, no sabe de LaTeX más que una definición de sintaxis. Nunca ha existido una edición gratuita, solo una evaluación sin límite de tiempo impuesto, y una licencia personal sigue costando 99 dólares en un mercado cuyo competidor obvio es gratis. Lo que convierte al editor en un entorno de LaTeX es LaTeXTools. Esta página trata lo que LaTeXTools añade, por qué Ctrl+B acaba ejecutando latexmk, el panel rápido de \ref y \cite que es la mejor baza del paquete, la vía .latexmkrc para upLaTeX y —porque esa es la pregunta real del lector— qué significa elegir Sublime Text hoy.

Quién escribió LaTeXTools y quién lo mantiene ahora

A la sospecha de que LaTeXTools esté muerto, la respuesta es un no rotundo. El repositorio se creó en marzo de 2011; el README acredita a Ian Bacher, Marciano Siniscalchi y Richard Stein como creadores y señala a DeathAxe como mantenedor actual. La versión estable 4.5.14 salió el 30 de julio de 2026, y no hay en ninguna parte aviso de abandono ni llamada a mantenedores. Conviene fijarse en dónde reside: está en una organización de GitHub llamada SublimeText, pero esa es una organización comunitaria y no Sublime HQ —su propia descripción habla de una colección de paquetes mantenidos por la comunidad—. El editor y el paquete pertenecen, pues, a gente distinta.

La instalación pasa por Package Control. Package Control no es código incluido sino un instalador de arranque; la entrada de menú y la de la paleta de comandos que lo descargan están presentes desde el build 3124 de Sublime Text 3, en septiembre de 2016. Se abre la paleta de comandos (Ctrl+Shift+P en Windows y Linux, Cmd+Shift+P en macOS), se ejecuta Install Package Control, luego Package Control: Install Package y se elige LaTeXTools. No hace falta reiniciar: se abre un archivo .tex, la sintaxis cambia a LaTeX y las funciones cobran vida.

Después hay que hacer dos cosas. La primera, preparar un archivo de ajustes: Preferences → Package Settings → LaTeXTools → Settings – User crea un LaTeXTools.sublime-settings editable en el directorio User. Nunca toque el archivo por omisión de la carpeta del complemento: se sobrescribe en cada actualización. La segunda, revisar la instalación: LaTeXTools: Check system, ejecutado desde la paleta de comandos, indica si los comandos de TeX, el visor de PDF y el ejecutable subl son visibles para LaTeXTools. Ese comando no tiene atajo y solo se alcanza desde la paleta. Es lo primero que hay que ejecutar cuando algo falla.

Qué ejecuta realmente Ctrl+B: el builder traditional y latexmk

La compilación usa la tecla propia de Sublime Text, Ctrl+B (Cmd+B en macOS). LaTeXTools no añade un atajo propio: sustituye el sistema de compilación en sí. El builder por omisión es traditional, y una sola compilación guarda el archivo actual, invoca el comando de compilación de TeX, analiza el registro y lista errores, avisos y —si se activan— las cajas desbordadas en un panel inferior, para luego abrir el visor de PDF y hacer búsqueda directa hasta el cursor. Un clic en un error del panel salta a esa línea; Shift+Escape devuelve el panel tras cerrarlo.

El hecho clave es que el builder traditional es latexmk por debajo. Llama a latexmk en TeX Live y MacTeX, y a texify en MiKTeX. Su línea de comandos por omisión se lee así: -cd entra en el directorio de la fuente antes de procesar, -f continúa cuanto puede tras un error, -interaction=nonstopmode evita paradas interactivas y -synctex=1 genera los datos de sincronización que necesitan la búsqueda directa e inversa de más abajo. %E es un marcador que se expande a -pdf (pdfLaTeX), -lualatex o -xelatex según el motor elegido. Elegir motor, en otras palabras, no es más que cambiar en qué se expande %E.

terminal
latexmk -cd -f -%E -interaction=nonstopmode -synctex=1

De aquí se sigue una advertencia, porque golpea justamente a quien instala lo mínimo imprescindible: LaTeXTools depende de latexmk, y latexmk no siempre está. BasicTeX en macOS no lo incluye, así que ejecute sudo tlmgr install latexmk, añádalo desde TeX Live Utility o apunte builder a uno que no lo necesite. En Ubuntu ocurre lo mismo: apt-get install texlive no lo trae, hace falta además apt-get install latexmk. En MiKTeX el builder llama a texify, que no admite ni output_directory, ni aux_directory, ni jobname; si los necesita, pase al builder basic, que sí los admite pero no maneja makeindex. builder_settings acepta también una clave env, un diccionario de variables de entorno definidas solo para la compilación.

La forma más cómoda de elegir motor es un comentario mágico al principio del archivo. Puesto en la primera línea del .tex, determina el motor usado; sin él, el valor por omisión es pdfLaTeX. En un proyecto de varios archivos, esa línea va en el archivo raíz (maestro). Por compatibilidad con TeXShop, TS-program significa lo mismo. Solo se aceptan tres valores: pdflatex, lualatex y xelatex. La familia tiene más miembros: %!TEX options = ... pasa opciones adicionales al motor (--shell-escape, por ejemplo), %!TEX root = <master> nombra el archivo raíz, y %!TEX output_directory y %!TEX jobname deciden dónde van los archivos generados y cómo se llaman. El orden de prioridad merece recordarse: una directiva gana al archivo de ajustes, y una variante de compilación elegida con Ctrl+Shift+B gana a la directiva. De ahí que a veces el motor se niegue a cambiar mientras hay una variante seleccionada.

latex
%!TEX program = lualatex
%!TEX root = main.tex
%!TEX options = --shell-escape

El otro punto crucial es texpath: el PATH que sirve para encontrar los comandos de TeX al lanzar latexmk y compañía. En macOS sobre todo, un Sublime Text arrancado desde la interfaz gráfica tiene un PATH distinto del de la shell, así que un valor equivocado acaba en «command not found». La regla es que texpath debe incluir $PATH: sus rutas primero y luego $PATH. Un valor típico en macOS es "/Library/TeX/texbin:$PATH"; en Windows se parece a "C:\\texlive\\2026\\bin\\windows;$PATH", ajustado a su instalación. En Windows, además, ponga distro en "texlive" o "miktex". Para cambiar de builder, ponga builder en basic (mínimo: el motor más bibtex o biber) o script (donde uno escribe la secuencia en script_commands).

terminal
{
  // LaTeXTools.sublime-settings (User)
  "texpath": "/Library/TeX/texbin:$PATH",
  "builder": "traditional",
  "builder_settings": {
    "program": "lualatex",
    "options": ["--shell-escape"]
  }
}

El panel rápido que aparece en cuanto se teclea \ref{ o \cite{

Aquí es donde LaTeXTools resulta más agradable. En cuanto se termina de teclear \ref{ o \cite{, baja por la parte superior de la pantalla un panel rápido: la lista de filtrado propia de Sublime Text. Para \ref{ contiene todas las \label del documento; para \cite{, todas las entradas de las bibliografías referenciadas mediante \bibliography{} o el \addbibresource{} de biblatex. Unos pocos caracteres filtran de forma difusa; se elige, se pulsa Enter y se inserta el comando entero, por ejemplo \ref{my-label}. Una coma justo antes de la llave de cierre, como en \cite{paper1,, permite elegir del mismo modo la segunda clave y las siguientes de una cita múltiple.

Dos trampas. Primera: LaTeXTools reúne sus candidatos del archivo guardado, así que si una etiqueta o clave recién añadida no aparece, guarde antes. Segunda: solo se admiten archivos .bib externos; los \bibitem escritos directamente en el documento no se recogen. Si el panel automático estorba, puede desactivarse en los ajustes, y para invocarlo a mano se pulsa Ctrl+l, x (Cmd+l, x en macOS) o Ctrl+l, Ctrl+f justo después de \ref{ y similares. También se reconocen los comandos de referencia y cita de cleveref, fancyref, varioref, natbib y biblatex.

Hay dos familias más de finalización. La finalización de comandos incorpora las listas de palabras procedentes de TeXStudio (CWL) y ofrece candidatos en cuanto un comando empieza por \: teclee \te y aparecen \textit y sus parientes. Su comportamiento lo rige el ajuste command_completionprefixed (predeterminado: solo tras una \), always o never—. Los candidatos de los paquetes que carga el documento los añade automáticamente cwl_autoload, activo por omisión, y env_auto_trigger completa además los nombres de entorno tras \begin{ y \end{. La otra familia es el Fill Helper: tras \usepackage{, \include{, \input{ o \includegraphics{ ofrece los paquetes instalados o los archivos del directorio actual, filtrados a imágenes para \includegraphics. A mano: Ctrl+l, Ctrl+f. Solo la finalización de paquetes exige preparación: ejecute una vez LaTeXTools: Build cache for LaTeX packages desde la paleta de comandos.

upLaTeX y dvipdfmx: escriba la vía en .latexmkrc

Aquí es donde tropiezan los documentos en japonés. %!TEX program solo acepta pdflatex, lualatex y xelatex, de modo que no se puede nombrar directamente uplatex ni platex. Componer japonés con LuaLaTeX es fácil: escriba %!TEX program = lualatex y use una clase de la familia luatexja / ltjsclasses. El caso incómodo es upLaTeX + dvipdfmx, la vía que genera un DVI y después lo convierte en PDF.

La solución limpia es dejar que .latexmkrc elija el motor. Como el builder traditional es latexmk por debajo, colocar un .latexmkrc en el directorio del proyecto (o en el personal) conmuta la cadena de herramientas a la vía japonesa casi sin tocar los ajustes de LaTeXTools. Los puntos clave: asignar uplatex a $latex y dvipdfmx a $dvipdf, y luego elegir con $pdf_mode = 3 la vía «construir un DVI y convertirlo con dvipdfmx». Pasando también -synctex=1 a $latex, los datos de sincronización llegan al PDF incluso por el rodeo del DVI, y la búsqueda de más abajo funciona. Del lado de LaTeXTools lo más seguro es no escribir ninguna línea %!TEX program: seleccionaría el %E de pdfLaTeX.

latexmkrc
$latex = 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'upbibtex %O %B';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$makeindex = 'upmendex %O -o %D %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;
$max_repeat = 5;

Si se quiere ser más explícito, la clave command de builder_settings permite nombrar latexmk directamente. Escribir "command": "latexmk" —dejando las opciones en .latexmkrc— garantiza que se ejecuta el latexmk configurado para japonés. Personalizar command desactiva, eso sí, la selección automática de motor mediante %!TEX program, pero en un montaje que fija la vía en .latexmkrc, como hacen los flujos japoneses, no se pierde nada. La configuración de latexmk en sí pertenece a la página de compilaciones automatizadas.

La búsqueda directa es Ctrl+l, j; la inversa se configura en el visor

El comando de compilación por omisión de LaTeXTools ya contiene -synctex=1, de modo que un Ctrl+B normal escribe los datos de sincronización (.synctex.gz) por usted. Después basta una pulsación: al editar un .tex, Ctrl+l, j (Cmd+l, j en macOS) muestra la página del PDF que corresponde al cursor. La búsqueda directa también se ejecuta automáticamente justo después de compilar, así que Ctrl+B por sí solo ya abre el punto correcto. Para abrir el PDF sin sincronizar, Ctrl+l, v. Tenga en cuenta que Ctrl+l es normalmente el «ampliar la selección a la línea» de Sublime Text, pero en un .tex con LaTeXTools activo pasa a ser el prefijo de los comandos del paquete. Cómo funciona SyncTeX en sí se trata en su propia página.

La búsqueda inversa (PDF → fuente) se basa en que el visor llame de vuelta a Sublime Text, así que la configuración vive del lado del visor. El visor por omisión está fijado por plataforma y se cambia con el ajuste viewer: SumatraPDF en Windows, Skim en macOS, Evince en Linux (XReader en Linux Mint), y en Linux también pueden elegirse Okular y Zathura. Sioyek funciona en las tres plataformas, y todos los visores citados hasta aquí admiten búsqueda directa e inversa. La excepción que hay que vigilar es Preview.app de macOS, que no admite ninguna de las dos. El gesto de clic también varía: Cmd+Mayús+clic en Skim, un doble clic en SumatraPDF, Ctrl+clic izquierdo en Evince y Zathura, Mayús+clic izquierdo en Okular.

Valor de viewerSistemaNotas
skimmacOSEl predeterminado en macOS y, de hecho, el único visor de macOS con búsqueda directa e inversa
previewmacOSSolo abre Preview.app. No hay búsqueda directa ni inversa
sumatraWindowsEl predeterminado en Windows. Evite el visor PDF de Adobe: bloquea el PDF abierto y rompe la compilación
evinceLinuxEl predeterminado en Linux. El Python del sistema necesita los enlaces de dbus
okularLinuxPara la búsqueda inversa, registre subl "%f:%l" en Settings → Configure Okular → Editor
zathuraLinuxFunciona casi sin configuración; wmctrl o xdotool hacen fiable el manejo del foco
xreaderLinuxEl predeterminado en Linux Mint; se trata casi como Evince
sioyekLinux / macOS / WindowsUn visor pensado para libros técnicos y artículos; disponible en las tres plataformas
commandLinux / macOS / WindowsLa salida de emergencia para cualquier otro visor: escriba usted view_command y forward_sync_command

Con Skim en macOS basta con elegir el preajuste «Sublime Text» en la pestaña Sync de sus preferencias. En versiones antiguas sin ese preajuste, elija Custom, ponga en Command la ruta absoluta de subl (/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl) y en Arguments "%file":%line. Con SumatraPDF en Windows, el campo de configuración de la búsqueda inversa solo aparece al abrir un PDF que tenga datos de sincronización: compile una vez con Ctrl+B, abra ese PDF en Sumatra y registre entonces la línea de comandos de abajo en Settings → Options. Cuando falle, compruebe en este orden: si la compilación usó -synctex=1, si el preajuste o el comando del visor son correctos y —mediante LaTeXTools: Check system— si sublime_executable, la ubicación de subl, es visible.

terminal
"C:\\Program Files\\Sublime Text\\sublime_text.exe" "%f:%l"

¿Sigue mereciendo la pena comprar Sublime Text para LaTeX?

Empecemos por precisar la forma de la licencia. Según las palabras de la propia Sublime HQ, Sublime Text puede descargarse y evaluarse gratis, pero hay que comprar una licencia para seguir usándolo, y actualmente no se impone límite de tiempo a la evaluación. La licencia es por usuario: según el EULA vale en todos los sistemas operativos admitidos y puede emplearse en varios ordenadores mientras su titular sea el usuario principal. Una licencia personal es una compra única con tres años de actualizaciones; recibir actualizaciones más allá exige una mejora de licencia. Las licencias de empresa siguen otro modelo: una suscripción anual por puesto, desde 65 dólares por puesto y año para los diez primeros, con precio decreciente a partir de ahí. (En agosto de 2026 la licencia personal cuesta 99 dólares.)

Dicho esto, dos cifras merecen una mirada honesta. La primera, el ritmo de desarrollo: el canal estable no se mueve desde el build 4200 del 21 de mayo de 2025, más de un año a fecha de agosto de 2026. (Las versiones de desarrollo han llegado a 4207, pero están reservadas a quienes tienen licencia.) La segunda, dónde están los usuarios: en la encuesta de desarrolladores de Stack Overflow de 2025, el 75,9 % de los encuestados citó Visual Studio Code entre los entornos de desarrollo que usa, frente al 10,5 % de Sublime Text: una diferencia de unas siete veces.

La decisión, aun así, sale limpia. Si ya tiene Sublime Text y su rapidez forma parte de por qué trabaja como trabaja, LaTeXTools es un paquete acabado y mantenido: la compilación, la finalización, los paneles de referencias; está todo lo necesario. En cambio, si hoy elige editor solo por LaTeX, las extensiones y las respuestas ya escritas están del lado de VS Code. Vistos desde el manuscrito, sus .tex, .bib y .latexmkrc son idénticos en ambos casos, y el coste de cambiar son un par de archivos de configuración. Con lo que se llega al punto de verdad: amarrar la compilación al proyecto importa mucho más que qué editor se elija.

Primera revisión: cuatro cosas que comprobar

  • El primer comando que ejecutar: LaTeXTools: Check system desde la paleta, para confirmar que los comandos de TeX, el visor de PDF y el ejecutable subl son visibles.
  • La bifurcación japonesa: para LuaLaTeX, %!TEX program = lualatex; para upLaTeX, no escriba ningún %!TEX program y deje la vía a .latexmkrc.
  • Cuando falla: si Ctrl+B dice que falta un comando, revise texpath. Si las referencias no se actualizan, guarde y recompile. Si del PDF a la fuente no ocurre nada, revise el ajuste de búsqueda inversa del visor.
  • Cuándo convertirlo en proyecto: en cuanto se multipliquen las figuras o los archivos de capítulo, fije el maestro con un proyecto de Sublime o %!TEX root para que Ctrl+B desde cualquier pestaña produzca el mismo PDF.