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:
- Obtuve la fuente desu repositorio oficial GitHub
- Instalé las dependencias que faltaban con
sudo ./helper-scripts/latexindent-module-installer.pl
- 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 .bak1
etc.). 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 yml
archivo, 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).