Texmaker

Texmaker existe porque su autor se apartó de otro editor LaTeX. Pascal Brachet fundó Kile, el entorno LaTeX del escritorio KDE, y en 2003 cedió su mantenimiento a otro desarrollador; el 29 de mayo de ese mismo año apareció la primera versión de Texmaker: esta vez un entorno multiplataforma escrito solo en Qt y no atado a ningún escritorio concreto. Esta página recorre el mecanismo de documento maestro que sostiene un manuscrito repartido en varios archivos, la cadena Quick Build que hay detrás de F1, la vista de estructura que crece mientras se escribe, y en qué se diferencia Texmaker de TeXstudio, que a su vez nació de Texmaker.

El autor de Texmaker también fundó Kile

Ese vínculo está registrado del lado de Kile. El primer nombre del archivo AUTHORS de Kile es Pascal Brachet, y la página de manual kile(1) afirma que «Kile was written by Pascal Brachet and Jeroen Wijnhout». En una entrevista de octubre de 2003, Wijnhout contó que escribió a Brachet porque quería añadir funciones: «It turned out that he wanted to stop the development of Kile. So I got more than I bargained for, the project was in my hands now». Lo que Brachet soltó fue un editor soldado a KDE; lo que escribió a continuación fue Texmaker, que prescinde de las bibliotecas de KDE y funciona solo sobre Qt. La misma idea, desprendida de un entorno de escritorio.

El resultado es un editor que mete un entorno integrado entero en una sola ventana: vista de estructura a la izquierda, código en el centro, registro y mensajes debajo, vista previa del PDF a la derecha. La licencia es GPL v2, la base es Qt, y las compilaciones para Windows, macOS y Linux vienen del mismo autor. Dentro hay Unicode con varias codificaciones, plegado de código para \part, \chapter, \section y los bloques \begin{...}…\end{...}, una paleta de unos 370 símbolos matemáticos, un visor de PDF integrado con desplazamiento continuo, corrección ortográfica, autocompletado, selección rectangular de bloques, búsqueda por carpetas, expresiones regulares, compatibilidad con Asymptote y fragmentos definidos por el usuario: es decir, casi todo lo que TeXworks dejó fuera a propósito.

Texmaker frente a TeXstudio: TeXstudio es un fork de Texmaker

Se parecen porque uno nació del código fuente del otro. En 2008, un proyecto se separó de la base de código de Texmaker y publicó su primera versión en febrero de 2009 con el nombre de TexMakerX. La confusión entre los nombres llegó a tal punto que en junio de 2011 pasó a llamarse TeXstudio. Por eso la disposición de la pantalla y la forma de los ajustes siguen pareciendo cosa de hermanos. Lo que el fork añadió después atañe sobre todo a la edición —comprobación gramatical, cursores espejo, plegado y autocompletado más potentes—, mientras que Texmaker sigue siendo lo que era el original: menos ajustes, más franqueza. Dominar uno da acceso inmediato al otro; en la práctica, empiece por el más ligero, Texmaker, y pase a TeXstudio cuando deje de bastarle.

El documento maestro: sostener un manuscrito repartido en archivos

En cuanto el manuscrito se reparte en archivos por capítulo, lo primero es designar un documento maestro desde el menú «Options». Ese es el eje del trabajo con varios archivos en Texmaker. En modo maestro la compilación arranca siempre desde el maestro, sea cual sea el archivo en primer plano: pulsar F1 mientras se edita chapter3.tex compila igualmente main.tex. Se sale del modo por el mismo menú «Options»; al estar la entrada y la salida en un solo sitio, cuesta perder de vista en qué estado se está.

El modo maestro cambia el significado de los tokens que se escriben en los argumentos de una orden. El más usado en los ajustes de Texmaker, %, significa «el nombre de archivo sin extensión», pero en modo maestro se expande al nombre del documento maestro. Justamente por eso existe otro token, #, que devuelve el archivo abierto en ese momento, también en modo maestro. Desconocer esa diferencia es tropezar en cuanto se quiere ejecutar algo capítulo a capítulo. Los mismos campos admiten @ para el número de línea actual y ! para el directorio actual.

TokenA qué se expande
%el nombre de archivo sin extensión; el del documento maestro en modo maestro
#el nombre, sin extensión, del archivo abierto ahora; no cambia ni en modo maestro
@el número de la línea actual; sirve al pasar una búsqueda directa a un visor externo
!el directorio actual
%% ## @@ !!cómo escribir el carácter mismo: al duplicar un token queda una sola copia literal

Quick Build: decidir qué ejecuta F1

La compilación en Texmaker la deciden dos secciones de Options → Configure Texmaker (llamado Preferences en macOS). Commands guarda qué es realmente cada orden —con qué argumentos se lanza pdflatex o dvipdfmx— y Quick Build guarda el orden en que se ejecutan. Como el reparto es limpio, un cambio como pasar a los motores japoneses, que conserva el orden y solo sustituye el contenido, ocurre en un único sitio. Lo que dispara la cadena es el botón de la barra de herramientas, o la tecla F1.

La sección Quick Build presenta las combinaciones habituales como botones de opción, de los que se elige uno. Para armar la propia se usa el campo User de abajo, enlazando las órdenes con |.

  • PdfLaTeX + View Pdf: ir directo al PDF con pdfLaTeX y mostrarlo. El ajuste de fábrica; basta para texto sobre todo occidental.
  • LaTeX + dvips + View Ps: pasar por un DVI, convertirlo en PostScript con dvips y mostrarlo.
  • LaTeX + dvipdfm + View Pdf: pasar por un DVI y convertirlo en PDF con dvipdfm(x). La vía habitual para el japonés.
  • User: enlazar en el campo de arriba las órdenes que se quiera con | para construir un flujo propio.

El campo PdfLaTeX de la sección Commands contiene por defecto algo parecido a esto. -interaction=nonstopmode evita que LaTeX se detenga en un aviso interactivo al encontrar un error, y -synctex=1 hace que emita la información que SyncTeX necesitará. Merece la pena conservar ambos, sea cual sea la vía elegida.

terminal
pdflatex -synctex=1 -interaction=nonstopmode %.tex

Si prefiere que la bibliografía, el índice y el número de pasadas se resuelvan solos, una opción es poner una única llamada a latexmk en el campo User de Quick Build. latexmk resuelve las dependencias y repite cada paso tantas veces como haga falta, de modo que aquí no queda nada que alinear. La configuración de latexmk es tema de otra página.

terminal
latexmk -pdf -synctex=1 -interaction=nonstopmode %.tex

Configurar la compilación para japonés: upLaTeX y LuaLaTeX

El estándar asentado para el japonés es upLaTeX + dvipdfmx, y en Texmaker solo exige cambios en dos sitios. En la sección Commands, reescriba el campo LaTeX como uplatex y el campo Dvipdfm como dvipdfmx, y luego elija «LaTeX + dvipdfm + View Pdf» en Quick Build. Al pulsar F1 la cadena va upLaTeX → dvipdfmx y termina con el PDF en pantalla. -kanji=utf8 fija la codificación de entrada en UTF-8 y -no-guess-input-enc desactiva la adivinación de codificación. Omitir aquí -synctex=1 produce un síntoma desconcertante: todo funciona salvo la búsqueda inversa.

terminal
uplatex -no-guess-input-enc -kanji=utf8 -synctex=1 -interaction=nonstopmode %.tex
terminal
dvipdfmx %.dvi

La otra vía es LuaLaTeX: menos pasos si el documento japonés empieza de cero, y salto directo al PDF sin pasar por DVI. Tras comprobar el campo LuaLaTeX de Commands, basta con escribir lualatex -synctex=1 -interaction=nonstopmode %.tex en el campo User de Quick Build (de la composición japonesa se encargan el paquete luatexja o la clase ltjsarticle). Para reunir toda la configuración en un solo lugar, describa el flujo de upLaTeX o de LuaLaTeX en un .latexmkrc y deje que Texmaker se limite a llamar a latexmk.

Vista de estructura, autocompletado y asistentes

La vista de estructura (Structure view), a la izquierda, es un mapa del documento que se refresca a medida que se escribe. Los títulos (\section y afines), las etiquetas (\label) y los archivos traídos por \input e \include se despliegan en jerarquía, y un clic lleva al punto deseado. En un proyecto con documento maestro, el contenido de los archivos de capítulo se suma al mismo árbol, de modo que un manuscrito largo se recorre sin perder la visión de conjunto. Esa superficie de mirada global es precisamente lo que le falta a TeXworks, y es una de las cosas que hacen de Texmaker un entorno integrado.

El autocompletado ahorra pulsaciones. Al escribir \ seguido de una letra aparece una lista de órdenes candidatas que se estrecha con cada carácter; las órdenes con argumentos muestran huecos que rellenar, de modo que las llaves se van completando una tras otra. No se trata solo de nombres de órdenes: tras \ref{...} o \pageref{...} se ofrecen las etiquetas presentes en el documento, y tras \cite{...} las claves de la base bibliográfica; se acabó detenerse ante un nombre a medio recordar. A ello se añaden los asistentes: Quick Start resuelve de una vez \documentclass, el tamaño de papel y la codificación, mientras que Tabular, Tabbing y Array (que deja elegir entre array, matrix y pmatrix) escriben el armazón que nadie retiene palabra por palabra.

Qué mirar, y en qué orden, cuando F1 falla

Antes de reescribir la cadena de Quick Build, separe la pregunta en dos: ¿qué dice el registro y pudo siquiera arrancar la orden externa? Las causas y los remedios son del todo distintos, aunque en pantalla ambos casos se parecen: «pulsé F1 y no apareció ningún PDF». En particular, Could not start the command no es un error de LaTeX: significa que Texmaker no encontró el ejecutable, y releer el registro no lo aclarará. El orden vale igual para una tesis larga que para un informe breve.

  • Empiece por el panel Messages / Log file y localice el primer error. Si los números de línea son pulsables, el clic lleva directo al punto culpable del código.
  • Ante Could not start the command, escriba pdflatex --version o uplatex --version en una terminal y arregle el PATH; los ajustes de Texmaker no intervienen.
  • Si solo el PDF se niega a refrescarse, mire si el visor integrado retiene un archivo antiguo y si el Quick Build elegido incluye realmente View Pdf.
  • Si solo falla el japonés, confirme que los campos LaTeX y Dvipdfm forman una pareja coherente de upLaTeX + dvipdfmx.

Las dos condiciones para que SyncTeX funcione

Solo hacen falta dos cosas: -synctex=1 en la orden de compilación y el PDF abierto en el visor integrado. Lo primero hace que LaTeX escriba el archivo de sincronización (.synctex.gz); basta con escribir las órdenes como se mostró arriba. Lo segundo consiste en elegir el built-in viewer como Pdf Viewer en la sección Commands, y activar además Embed si se quiere anclado en la ventana principal. Si el PDF se abre en un visor externo, los saltos dejan de funcionar en ambos sentidos.

Los gestos son sencillos. Como describe el manual, con -synctex=1 en la orden de compilación el visor integrado se desplaza por sí solo al punto del PDF que corresponde a la línea actual: eso es la búsqueda directa, y no hay ningún botón que pulsar. En sentido contrario, la búsqueda inversa se hace con clic derecho sobre una palabra en el visor integrado y una elección del menú contextual; el editor salta entonces a la línea correspondiente. El mecanismo de sincronización en sí tiene su propia página.