Sistema de compilación SJTUThesis: Explicación detallada de Makefile y scripts de lote

El sistema de compilación de SJTUThesis, la plantilla LaTeX para tesis de la Universidad Jiao Tong de Shanghai, utiliza Makefile y scripts de lote para ofrecer una solución de construcción de documentos interplataforma. Esta explicación profundiza en cómo funcionan estos scripts para facilitar la compilación eficiente de tesis.

Componentes principales del sistema de compilación

El sistema se compone de dos scripts específicos para cada plataforma:

  • Makefile: Herramienta de automatización para Linux/macOS.
  • Compile.bat: Script optimizado para Windows.

Ambos scripts se encuentran en el directorio raíz del proyecto y proporcionan comandos unificados para compilar, limpiar y realizar estadísticas de palabras, garantizando una experiencia de usuario consistente en todos los sistemas operativos.

Makefile para Linux/macOS: Análisis detallado

Parámetros de configuración principal

El Makefile define parámetros clave a partir de la línea 3:

# Nombre base del documento de tesis
DOCUMENTO = texto_principal

# Opciones para latexmk
OPCIONES_LATEXMK = -time -file-line-error -halt-on-error -interaction=nonstopmode

Establece el documento principal como texto_principal.tex y configura opciones de latexmk, incluyendo detención en errores y modo no interactivo.

Diseño compatible entre plataformas

Las líneas 11-17 manejan la compatibilidad entre Windows y sistemas tipo Unix:

ifdef SystemRoot
    BORRAR = del /Q
    ABRIR = start
else
    BORRAR = rm -f
    ABRIR = open
endif

Detecta variables de entorno del sistema para cambiar automáticamente los comandos de eliminación de archivos y apertura de PDF, asegurando la portabilidad del script.

Objetivos de funcionalidad principales

El Makefile define cinco objetivos clave:

  1. all (objetivo predeterminado): Ejecuta el flujo completo de compilación para generar texto_principal.pdf.
  2. pvc: Inicia modo de vista previa en tiempo real, recompilando automáticamente al modificar archivos.
  3. view: Abre el documento PDF generado.
  4. wordcount: Cuenta palabras de la tesis, con detección automática de chino e inglés.
  5. clean/cleanall: Limpia archivos intermedios o todos los archivos generados.

Compile.bat para Windows: Análisis del script de lote

Configuración de codificación y entorno

El script de lote comienza con configuraciones esenciales:

chcp 65001 >nul  # Establece codificación UTF-8
call :configurarESC  # Configura secuencias de escape ANSI para salida coloreada

Estas configuraciones garantizan una visualización correcta del chino y preparan la base para mensajes con color.

Diseño con soporte para múltiples parámetros

Las líneas 9-44 implementan un mecanismo flexible de procesamiento de parámetros, admitiendo las siguientes opciones de comando:

  • tesis (predeterminado): Compila la tesis completa.
  • limpiar: Limpia archivos intermedios.
  • limpiartodo: Limpia todos los archivos generados, incluido el PDF.
  • contarpalabras: Cuenta palabras.
  • ayuda: Muestra información de ayuda.

Este diseño permite a los usuarios cambiar entre funcionalidades mediante comandos simples, como Compile.bat contarpalabras para obtener estadísticas rápidas.

Mecanismo de manejo de errores

Las líneas 17-25 implementan un manejo de errores robusto:

if ERRORLEVEL 1 (
    echo %ESC%[31m¡Error! Consulta el archivo %ESC%[7m'%TESIS%.log'%ESC%[0;31m para más detalles . . .%ESC%[0m
    pause
) else (
    call :limpiar
    echo %ESC%[32m¡Completado!%ESC%[0m
    pause
)

Cuando ocurre un error de compilación, el script muestra una alerta destacada y se pausa, facilitando al usuario la revisión del archivo de registro para identificar problemas.

Técnicas de compilación eficiente y mejores prácticas

Principio de compilación incremental

Ambos scripts utilizan la herramienta latexmk para implementar compilación incremental, procesando solo archivos modificados. Parámetros clave incluyen:

  • -time: Registra la hora de modificación de archivos.
  • Manejo automático de referencias cruzadas y bibliografías.

Este mecanismo acelera las compilaciones posteriores en un factor de 3 a 5 en comparación con la compilación inicial, mejorando significativamente la eficiencia de escritura.

Detalles de la funcionalidad de conteo de palabras

Las líneas 32-38 del Makefile y 76-108 del Compile.bat implementan un conteo inteligente de palabras:

  • Detección automática del idioma de la tesis (chino/inglés).
  • Conteo separado de caracteres chinos puros, caracteres en inglés y palabras totales.
  • Exclusión de comentarios y comandos TeX para contar solo contenido real.

Modo de uso:

# Linux/macOS
make contarpalabras

# Windows
Compile.bat contarpalabras

Guía para usar comandos de limpieza

Seleccione el comando de limpieza adecuado según las necesidades:

  • Limpieza ligera (conserva PDF): make limpiar o Compile.bat limpiar.
  • Limpieza completa (elimina PDF): make limpiartodo o Compile.bat limpiartodo.

Se recomienda realizar una limpieza completa antes de enviar al control de versiones, conservando solo los archivos fuente.

Flujo de compilación y relación con el archivo principal

Los scripts de compilación colaboran estrechamennte con el documento principal, texto_principal.tex, en puntos clave como:

  1. Definición de estructura del documento: La declaración \documentclass en la línea 6 de texto_principal.tex determina los parámetros de compilación.
  2. Contenido modular: Se importan capítulos mediante \input{capitulos/...}, y el script gestiona automáticamente las dependencias.
  3. Referencias cruzadas: El script ejecuta LaTeX múltiples veces para resolver referencias.

El flujo de compilación típico es: LaTeX → BibTeX → LaTeX → LaTeX, asegurando que todas las referencias y numeraciones se generen correctamente.

Selección del método de compilación adecuado

El sistema de compilación de SJTUThesis ofrece soluciones consistentes y eficientes para usuarios en diferentes plataformas:

  • Usuarios de Linux/macOS: Utilicen el comando make directamente para disfrutar de una experiencia de terminal concisa y potente.
  • Usuarios de Windows: Ejecuten Compile.bat haciendo doble clic o desde la línea de comandos para obtener indicaciones intuitivas en chino.

Independientemente de la elección, el sistema gestiona automáticamente el complejo flujo de compilación de LaTeX, permitiendo a los investigadores enfocarse en la creación de contenido en lugar del manejo de formatos.

Etiquetas: LaTeX Makefile Windows batch script compilation system SJTUThesis

Publicado el 6-14 22:11