Agregue la extensión LaTeX Workshop a Visual Studio Code y un editor de código de propósito general se convierte en un entorno LaTeX serio: compila en cada guardado, muestra PDF en una pestaña de lado a lado y le permite saltar entre la fuente y PDF en ambas direcciones. Esta página explica la configuración, cómo funcionan las compilaciones (recetas y herramientas) y la integración de SyncTeX.
¿Qué es LaTeX Workshop?
VS Code no escribe TeX. La compilación real la realiza una distribución que instala en su máquina: TeX Live (o MiKTeX/MacTeX). LaTeX Workshop, de James Yu, es el puente entre el editor y esa distribución: inicia compilaciones, obtiene una vista previa de PDF y agrega finalización, resaltado de sintaxis, salto a la definición para \ref/\cite, una vista de esquema y más. Su Marketplace ID es James-Yu.latex-workshop, con más de 5 millones de instalaciones; efectivamente, la extensión LaTeX predeterminada en el ecosistema VS Code.
El único requisito previo es que los comandos TeX sean accesibles en su PATH. La extensión simplemente genera ejecutables como latexmk o pdflatex como procesos secundarios, por lo que si latexmk --version funciona en una terminal, es casi seguro que la extensión también funcionará. Por el contrario, elegir un motor o configurar fuentes japonesas es asunto de la distribución, no de la extensión.
Primero compila una vez en la terminal.
Antes de ajustar la configuración de VS Code, cree el mismo proyecto una vez en una terminal. Si latexmk no puede ejecutarse allí, LaTeX Workshop tampoco puede iniciarlo. Para un primer documento, pruebe uno de estos desde la carpeta del proyecto:
latexmk -pdf main.tex
# 日本語 upLaTeX を .latexmkrc に書いた場合 / if .latexmkrc selects upLaTeX
latexmk main.texUna vez que se resuelven allí los errores de PATH y de paquetes faltantes, cualquier falla del lado de VS Code se limita a recetas, detección de archivos raíz o el visor PDF. Si la compilación del terminal funciona pero la extensión falla, inspeccione settings.json: el directorio de salida, el nombre de la receta y los marcadores de posición son los sospechosos habituales.
Configuración
Los pasos son simples. Instale VS Code, instale una distribución como TeX Live (en 2026, TeX Live 2026) y asegúrese de que esté en su PATH. Luego abra la vista Extensiones (Ctrl/Cmd+Shift+X), busque “LaTeX Workshop” e instálela. Inmediatamente después de cambiar PATH, reinicie VS Code (idealmente todo OS) para que se retome el nuevo entorno. Abra un archivo .tex y el ícono de la barra de actividad TeX a la izquierda le brindará comandos de compilación y vista previa.
Settings vive en settings.json (desde Ctrl/Cmd+, Settings UI, use “Abrir Settings (JSON)” en la parte superior derecha; puede editar el archivo de usuario global o un .vscode/settings.json por proyecto). Las tres claves que vale la pena conocer primero son:
latex-workshop.latex.outDir: donde van los archivos intermedios y PDF. Predeterminado%DIR%(al lado de.tex). Configurándolo en, p.e.outmantiene su carpeta de origen ordenada.latex-workshop.latex.autoBuild.run: qué desencadena una compilación automática:onFileChange(predeterminado; observa las dependencias),onSave(al guardar) onever(solo manual). Si desea un comportamiento predecible,onSavees una elección segura.latex-workshop.view.pdf.viewer: donde aparece PDF:tab(predeterminado; una pestaña dentro de VS Code),browseroexternal. Para SyncTeX sin fricción,tabes la mejor opción.
Un punto de partida mínimo es simplemente este: recopilar la salida en out/, compilarla al guardar y mostrar PDF en la pestaña incorporada:
{
"latex-workshop.latex.outDir": "%DIR%/out",
"latex-workshop.latex.autoBuild.run": "onSave",
"latex-workshop.view.pdf.viewer": "tab"
}%DIR% es un marcador de posición que se expande al directorio del archivo raíz que se está procesando; reaparece en las recetas a continuación. Después de una compilación, la extensión también puede ordenar o conservar archivos intermedios (.aux, .log,…) a través de latex-workshop.latex.autoClean.run, pero establecer el directorio de salida y el disparador es suficiente para tener una idea.
Crear recetas y herramientas
Las compilaciones en LaTeX Workshop tienen dos capas: “herramientas” y “recetas”. Una herramienta (latex-workshop.latex.tools) define un único comando para ejecutar: name, command (el ejecutable) y args. Una receta (latex-workshop.latex.recipes) es una secuencia ordenada de herramientas, con una matriz name y tools que enumera los nombres de las herramientas. Un flujo como “pdflatex → bibtex → pdflatex → pdflatex” (ejecutar el pase de bibliografía y luego volver a ejecutarlo) se expresa como una receta.
Sin configuración, la extensión utiliza sus recetas predeterminadas integradas. El primero es un latexmk solitario, y ese es el valor predeterminado previsto (cuando latex-workshop.latex.recipe.default es "first", se elige la receta superior en la lista; configúrelo en "lastUsed" para recordar la receta que eligió por última vez). Debido a que latexmk inspecciona las dependencias y vuelve a ejecutar exactamente tantas veces como sea necesario, nunca tendrá que contar los pases para las referencias cruzadas, la tabla de contenido o la bibliografía. La herramienta latexmk predeterminada se define más o menos así:
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
}Leyendo los argumentos: -synctex=1 emite los datos de SyncTeX que se analizan a continuación; -interaction=nonstopmode se ejecuta directamente en lugar de detenerse para ingresar un error; -file-line-error imprime los errores como “archivo:línea: mensaje”, lo que facilita saltar al lugar infractor. -pdf le dice a latexmk que produzca PDF directamente a través de pdfLaTeX. %OUTDIR% se expande a su outDir y %DOC% a la ruta del archivo raíz sin su extensión (otros marcadores de posición incluyen %DOCFILE% = nombre de archivo sin extensión y %DIR% = el directorio raíz).
Las recetas predeterminadas también incluyen variantes de motor latexmk (lualatex) y latexmk (xelatex), además de latexmk (latexmkrc), que ejecuta latexmk %DOC% sin argumentos adicionales y difiere todo a .latexmkrc. Para los japoneses, ese enfoque de “ponerlo todo en .latexmkrc” es el más claro. Coloque un .latexmkrc en la raíz del proyecto y asigne un nombre al motor y al convertidor. Aquí hay una configuración upLaTeX + dvipdfmx: la combinación clásica para artículos japoneses sobre ciencias:
$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;En esencia, asigna uplatex a $latex, dvipdfmx a $dvipdf y configura $pdf_mode = 3 para elegir la ruta "construir un DVI, luego convertir a PDF con dvipdfmx" ($pdf_mode = 1 es pdfLaTeX directamente, 4 es LuaLaTeX). El índice pasa por upmendex y la bibliografía por upbibtex, que maneja bien el japonés. %S, %O y %D son los marcadores de posición de latexmk para el archivo fuente, de opciones y de salida. Ahora, en el lado VS Code, simplemente elige la receta latexmk (latexmkrc) y nunca codifica la elección del motor en settings.json.
Si prefiere mantener todo en settings.json sin .latexmkrc, defina su propia herramienta y receta y ponga primero la receta japonesa. Aquí hay un ejemplo independiente para componer japonés con LuaLaTeX (que configura japonés mediante luatexja/ltjsclasses, sin necesidad de .latexmkrc ni dvipdfmx):
{
"latex-workshop.latex.tools": [
{
"name": "lualatexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-lualatex",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
}
],
"latex-workshop.latex.recipes": [
{
"name": "lualatexmk",
"tools": ["lualatexmk"]
}
],
"latex-workshop.latex.outDir": "%DIR%/out",
"latex-workshop.latex.autoBuild.run": "onSave"
}También puedes poner comentarios mágicos como % !TEX program = ... o % !TEX root = ... en la parte superior de un archivo, y LaTeX Workshop los honra (deshabilitar a través de latex-workshop.latex.build.enableMagicComments). El sistema de recetas es el camino recomendado hoy en día; % !TEX root se gana la vida en proyectos de varios archivos, cuando desea compilar el documento principal mientras edita un subarchivo incluido.
Fijar el archivo raíz
En un proyecto de varios archivos, si LaTeX Workshop adivina mal, puede intentar compilar el archivo secundario que está editando directamente. La extensión infiere la raíz buscando relaciones \documentclass, \begin{document} y \input/\include, pero para proyectos del tamaño de una tesis con muchos archivos de capítulos, la dirección explícita es más estable.
% !TEX root = ../main.tex
\section{実験方法}
この章だけを編集中でも、ビルドは main.tex から始めます。- Coloque
% !TEX root = ...en la parte superior de los archivos secundarios para que el archivo de entrada sea explícito. - Abra el espacio de trabajo en la raíz del proyecto que contiene
main.tex, no en una carpeta de capítulo aislada. - La selección manual de recetas puede anular los comentarios mágicos, así que mantenga el nombre de la receta diaria coherente en todo el equipo.
- Si la selección de raíz sigue apareciendo, fije la política en el archivo
.vscode/settings.jsondel proyecto.
integración SyncTeX
SyncTeX registra la correspondencia entre las líneas de origen y las posiciones en PDF (el -synctex=1 anterior escribe ese mapeo en un .synctex.gz). Le permite mantener sincronizados su lugar de escritura y la vista PDF, en ambos sentidos. Usar el visor PDF incorporado (viewer configurado en tab) es la ruta más sencilla y sin configuración.
La búsqueda directa (fuente → PDF) salta desde su posición de edición al lugar correspondiente en PDF. El atajo es Ctrl+Alt+J (en Mac, Cmd+Option+J); en la paleta de comandos es "LaTeX Workshop: SyncTeX from cursor". Para ejecutar la búsqueda directa automáticamente inmediatamente después de una compilación, configure latex-workshop.synctex.afterBuild.enabled en true.
La búsqueda inversa (PDF → fuente) va en sentido contrario, desde un lugar en PDF hasta la línea fuente coincidente. En el visor de pestañas incorporado, Ctrl-click (Cmd-click en Mac) en PDF mueve el cursor a esa línea. El estilo de clic lo establece latex-workshop.view.pdf.internal.synctex.keybinding, ya sea ctrl-click (predeterminado) o double-click. Aprenda el par directo/inverso juntos y podrá saltar al lugar correcto al instante, incluso en un documento largo.
Para SyncTeX en japonés, dos cosas son suficientes: pasar -synctex=1 a $latex en su .latexmkrc (ya hecho en el ejemplo anterior), y saber que incluso a través de DVI ($pdf_mode = 3), upLaTeX + dvipdfmx transporta los datos de SyncTeX. SyncTeX con un visor externo (latex-workshop.view.pdf.external.synctex.*) necesita más configuración, por lo que la pestaña incorporada es el lugar recomendado para comenzar.