Formato automático de código LaTeX (similar al formato clang)

Formato automático de código LaTeX (similar al formato clang)

Existen herramientas comoformato clangque toman, por ejemplo, un archivo de código fuente C++ "feo" (sin formato) y aplican sangrías específicas y otras reglas para hacer que el código sea más legible.

¿Existe alguna herramienta que pueda formatear automáticamente el código fuente de LaTeX? De alguna manera quiero mantener mis archivos LaTeX limpios y consistentes entre los contribuyentes.

Respuesta1

La herramientalátexdentadoEso fue sugerido por @muzimuzhi-Z en un comentario funcionó para mí. Este script Perl parece muy poderoso, pero comenzar es fácil:

Instalación

Ya tenía una versión anterior (probablemente a través de texlive-full), pero como este proyecto se está desarrollando de manera bastante activa, decidí obtener la última versión:

  1. Obtuve la fuente desu repositorio oficial GitHub
  2. Instalé las dependencias que faltaban consudo ./helper-scripts/latexindent-module-installer.pl
  3. Lo agregué a mi ruta en mi ~/.bashrc:export PATH="/path/to/latexindent.pl:$PATH"

Uso

Opciones predeterminadas, sobrescribiendo el archivo ( -w), sin escribir una copia en el terminal ( -s):

latexindent.pl -w -s myfile.tex

Esto mantendrá una copia de seguridad del archivo original .bak0(o .bak1etc.). Si tiene esto en un repositorio, es posible que desee agregarlo *.bak?en su archivo .gitignore.

También puedes especificar tu propio estilo de formato en un ymlarchivo, como este: latexindent.pl -l mysettings.yml myfile.tex.

Respuesta2

emacs (¡sorpresa!) viene con soporte LaTeX listo para usar, mucho,muchoUn soporte más sofisticado ofrece AUC-TeX (y RefTeX para referencias cruzadas y citas bibliográficas). Todos los paquetes estándar, consulte el índice de paquetes.

En cualquier caso, formateo mis archivos fuente LaTeX para que contengan una frase en cada línea, terminen con puntuación,... De esa manera (se sugiere unlargomientras que cuando escribía troff (!) para mi tesis, usando vi...) los cambios a menudo significan eliminar/insertar o mover una línea/líneas, buscando errores como "una tesis" o "un elefante" o "el "el caso" se puede hacer con herramientas orientadas a líneas (arreglar incluso automatizado con un simple reemplazo de expresiones regulares). Hoy lo guardo en git, el formato tiene el beneficio adicional de que agregar/eliminar, por ejemplo, una palabra no redistribuye el párrafo, por lo que las diferencias de versión resaltan cambios reales.

Sí, reformatear de esa manera es una tarea que debe hacerse a mano... pero es necesario una vez (y continúa así más adelante).

información relacionada