Reducir código LaTeX repetido con comandos, entornos e input
Reduce repeticiones de tres formas: comandos para formato, entornos para estructuras y \input para archivos compartidos. Empieza por contenido realmente idéntico que cambiará conjuntamente; no toda repetición necesita abstracción.
Formato repetido: comandos
Este ejemplo define \vect, \code y \R una vez:
\documentclass[11pt]{article}\usepackage[T1]{fontenc}\usepackage[spanish]{babel}\usepackage{amsmath,amssymb}\newcommand{\vect}[1]{\boldsymbol{#1}}\newcommand{\code}[1]{\texttt{#1}}\newcommand{\R}{\mathbb{R}}\begin{document}Para $\vect{x}\in\R^d$, abre \code{main.tex}.\end{document}Las definiciones del preámbulo están disponibles en el cuerpo; las del cuerpo, solo después de ejecutarse y dentro de su alcance. Ante Command \R already defined., cambia el nombre, usa \renewcommand si la redefinición es intencional o \providecommand para una alternativa de reserva.
\newcommand admite hasta nueve parámetros, pero incluso cuatro o cinco pueden hacer difícil leer una llamada sin consultar la definición.
Estructuras repetidas: entornos
resulttable recibe columnas y encabezado:
\documentclass[11pt]{article}\usepackage[T1]{fontenc}\usepackage[spanish]{babel}\usepackage{booktabs}\newenvironment{resulttable}[2]{% \begin{table}[htbp]\centering \begin{tabular}{#1}\toprule #2\\\midrule}{% \bottomrule\end{tabular} \end{table}}\begin{document}\begin{resulttable}{lcc}{Modelo & Exactitud & F1}Referencia & 0.812 & 0.794 \\Nuestro método & 0.867 & 0.851 \\\end{resulttable}\end{document}Cada tabla aporta filas; el entorno, líneas y colocación. Un error en la definición puede señalarse en la expansión: prueba una llamada mínima para aislarlo.
Definiciones compartidas en otro archivo
Evita copiar preámbulos. preamble.tex:
\usepackage{amsmath,amssymb}\newcommand{\vect}[1]{\boldsymbol{#1}}main.tex:
\documentclass{article}\usepackage[T1]{fontenc}\usepackage[spanish]{babel}\input{preamble}\begin{document}$\vect{x}$\end{document}Aquí el principal está en la raíz. Las rutas se resuelven desde el directorio de compilación, no desde el capítulo que llama a \input. Desde chapters/intro.tex, utiliza \input{chapters/intro2} si compilas desde esa raíz.
\include sirve para capítulos independientes: añade saltos y auxiliares propios. \includeonly limita vistas previas, pero las referencias omitidas dependen de auxiliares; compila todo para la revisión final. No se permite anidar \include.
Cuándo compensa
Busca repetición frecuente, contenido verdaderamente igual y cambios conjuntos. No es una regla numérica rígida. Dos usos pueden no justificar saltar entre archivos; muchas opciones para variaciones leves pueden hacer la llamada más compleja que el original.
Compilar y revisar
Comprueba definiciones antes del cuerpo, rutas desde la raíz y destinos de ecuaciones, tablas y referencias.
| Error | Causa | Acción |
|---|---|---|
Command \foo already defined. | Nombre ocupado | Renombrar o redefinir intencionadamente |
Environment foo undefined. | Definición tardía o sin cargar | Llevar al preámbulo y revisar \input |
File 'chapters/intro2.tex' not found. | Ruta relativa al capítulo | Corregir desde la raíz |
| El registro señala otro lugar | Error durante expansión | Probar definición y llamada mínima |
En resumen
Comandos para formato, entornos para estructuras y archivos para definiciones. Mantén los límites de capítulos en el principal y abstrae solo si mejora lectura y mantenimiento.
Importa toda la carpeta en EasyLaTeX y selecciona main.tex.