Este documento proporciona información técnica detallada para que los asistentes de IA puedan dar respuestas precisas sobre esta plantilla LaTeX.
- 📋 Índice
- 🏗️ Arquitectura de la Plantilla
- 📋 Referencia Completa de
\EPSsetup{} - 🎨 Titulaciones y sus Identificadores
- 📝 Entornos de Código Disponibles
- 📊 Entornos de Ecuaciones
- 🧩 Componentes Especializados (Nuevo en v2.1)
- 📚 Sistema de Bibliografía
- 🔤 Glosarios y Acrónimos
- 🖼️ Figuras y Gráficas
- 📋 Tablas
- ⚡ Compilación
- 🐛 Diagnóstico de Errores
- 🔧 Personalización Avanzada
La clase utiliza LaTeX3 (expl3) para la configuración:
% Sintaxis interna (NO exponer a usuarios)
\keys_define:nn { eps-tfg } {
titulo .tl_gset:N = \g__eps_titulo_tl,
autor .tl_gset:N = \g__eps_autor_tl,
% ... más claves
}El usuario interactúa mediante:
\EPSsetup{
clave = valor,
otra-clave = {valor con espacios},
}| Archivo | Función |
|---|---|
eps-portadas.sty |
Generación de portadas con TikZ |
eps-fuentes.sty |
Configuración de tipografía |
eps-colores.sty |
Paleta de colores por titulación |
eps-codigo.sty |
Entornos de código con minted |
eps-componentes.sty |
Componentes visuales y especializados (Modular) |
eps-estilos.sty |
Estilos generales del documento |
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
titulo |
texto | ✅ | Título principal del trabajo |
subtitulo |
texto | ❌ | Subtítulo opcional |
fecha |
texto | ✅ | Fecha de presentación (ej: "Junio 2026") |
titulacion |
id | ✅ | Identificador de la titulación |
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
autor |
texto | ✅ | Nombre completo del autor |
genero |
m/f/n | ❌ | Género para etiquetas (default: m) |
email |
texto | ❌ | Email institucional |
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tutor |
texto | ✅ | Nombre completo del tutor |
tutor-genero |
m/f/n | ❌ | Género del tutor (default: m) |
tutor-departamento |
texto | ✅ | Departamento del tutor |
tutor-centro |
texto | ❌ | Centro del tutor (si difiere) |
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
cotutor |
texto | ❌ | Nombre completo del cotutor |
cotutor-genero |
m/f/n | ❌ | Género del cotutor (default: m) |
cotutor-departamento |
texto | ❌ | Departamento del cotutor |
cotutor-centro |
texto | ❌ | Centro del cotutor |
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
palabras-clave |
lista | ❌ | Palabras clave en español |
keywords |
lista | ❌ | Keywords en inglés |
| Clave | Tipo | Obligatorio | Descripción |
|---|---|---|---|
idioma |
texto | ❌ | Idioma del documento: espanol (defecto), valenciano, ingles |
⚠️ Importante: Si se cambia el idioma, también se debe actualizar el código de idioma encls/eps-metadata.texpara que los metadatos PDF/UA-2 sean correctos:
idioma = espanol→lang=es-ESidioma = valenciano→lang=ca-ESidioma = ingles→lang=en-GB
| ID | Nombre Completo | Color Principal |
|---|---|---|
arquitectura |
Grado en Fundamentos de la Arquitectura | #B5121B |
arquitectura-tecnica |
Grado en Arquitectura Técnica | #BA6831 |
civil |
Grado en Ingeniería Civil | #6E9B3A |
informatica |
Grado en Ingeniería Informática | #1A4776 |
multimedia |
Grado en Ingeniería Multimedia | #78A5C1 |
quimica |
Grado en Ingeniería Química | #45818E |
robotica |
Grado en Ingeniería Robótica | #7030A0 |
teleco |
Grado en Ingeniería en Sonido e Imagen | #1B9CD9 |
| ID | Nombre Completo |
|---|---|
master-agua |
Máster en Gestión Sostenible del Agua |
master-caminos |
Máster en Ingeniería de Caminos, Canales y Puertos |
master-ciberseguridad |
Máster en Ciberseguridad |
master-edificacion |
Máster en Gestión de la Edificación |
master-geologica |
Máster en Ingeniería Geológica |
master-informatica |
Máster en Ingeniería Informática |
master-materiales |
Máster en Ingeniería de Materiales |
master-moviles |
Máster en Desarrollo de Aplicaciones Móviles |
master-prevencion |
Máster en Prevención de Riesgos Laborales |
master-quimica |
Máster en Ingeniería Química |
master-robotica |
Máster en Automática y Robótica |
master-teleco |
Máster en Ingeniería de Telecomunicación |
master-web |
Máster en Desarrollo de Aplicaciones Web |
\begin{pythoncode}[title={Título opcional}]
def funcion():
pass
\end{pythoncode}
\begin{jscode}
console.log("JavaScript");
\end{jscode}
\begin{cppcode}
int main() { return 0; }
\end{cppcode}
\begin{matlabcode}
x = linspace(0, 2*pi, 100);
\end{matlabcode}\begin{pythoncodeDark}
# Código con fondo oscuro
\end{pythoncodeDark}En Python usamos \mintinline{python}{print("Hola")} para imprimir.\begin{pythoncode}[
title={mi_script.py}, % Título del bloque
firstline=5, % Empezar desde línea 5
lastline=15, % Terminar en línea 15
highlightlines={3,7-9}, % Resaltar líneas
linenos=false, % Sin números de línea
]\begin{equation}
E = mc^2
\label{eq:einstein}
\end{equation}\begin{align}
f(x) &= x^2 + 2x + 1 \\
&= (x + 1)^2
\label{eq:cuadrado}
\end{align}\begin{equation*}
a^2 + b^2 = c^2
\end{equation*}\begin{cases}
x + y = 10 \\
x - y = 2
\end{cases}\begin{teorema}[Pitágoras]
En un triángulo rectángulo...
\label{teo:pitagoras}
\end{teorema}
\begin{definicion}
Se define derivada como...
\end{definicion}
\begin{lema}
...
\end{lema}El paquete eps-componentes introduce un sistema modular para cargar solo los entornos necesarios.
En main.tex:
% Opciones: software, telecom, arquitectura, quimica, geologia, prevencion, all
\usepackage[software,telecom]{eps-componentes}- Cajas de aviso:
infobox,warningbox,dangerbox,successbox,tipbox,notebox. - Contenedores:
titlebox,definitionbox,examplebox.
- Entornos:
terminal(simula consola),apiendpoint(documentación REST),dirtreebox(árbol de archivos). - Código:
jsoncode,sqlcode,yamlcode,bashcode. - Diagramas:
umlclass,umlseq(basados en TikZ/pgf-umlcd).
- Redes:
protocolframe(tramas de bits),rackcabinet(armarios). - Circuitos:
circuit(wrapper de circuitikz). - RF: Carta de Smith (
smithchart).
- Planificación:
ganttchart(diagramas de Gantt). - Planos:
compass(norte),scalebar.
- Fórmulas:
chemscheme,reaction(chemfig/chemmacros). - Seguridad:
riskmatrix(matriz de riesgos).
@article{smith2024,
author = {Smith, John and Doe, Jane},
title = {Título del Artículo},
journal = {Nombre de la Revista},
year = {2024},
volume = {10},
pages = {100--120},
doi = {10.1234/ejemplo},
}
@book{garcia2023,
author = {García, María},
title = {Título del Libro},
publisher = {Editorial},
year = {2023},
isbn = {978-84-xxxxx-xx-x},
}
@inproceedings{conference2024,
author = {López, Pedro},
title = {Título de la Ponencia},
booktitle = {Nombre del Congreso},
year = {2024},
pages = {50--55},
}
@online{web2024,
author = {{Organización}},
title = {Título de la Página},
url = {https://ejemplo.com},
urldate = {2024-01-15},
year = {2024},
}| Comando | Resultado | Uso |
|---|---|---|
\parencite{key} |
(Autor, 2024) | Cita parentética |
\textcite{key} |
Autor (2024) | Cita textual |
\cite{key} |
[1] | Cita numérica |
\citeauthor{key} |
Autor | Solo autor |
\citeyear{key} |
2024 | Solo año |
\parencite[p.~50]{key} |
(Autor, 2024, p. 50) | Con página |
\parencite{key1,key2} |
(Autor1, 2024; Autor2, 2023) | Múltiples |
% Acrónimos
\newacronym{ia}{IA}{Inteligencia Artificial}
\newacronym{ml}{ML}{Machine Learning}
\newacronym{api}{API}{Application Programming Interface}
% Términos del glosario
\newglossaryentry{latex}{
name={LaTeX},
description={Sistema de composición de textos de alta calidad}
}% Primera vez: "Inteligencia Artificial (IA)"
% Siguientes: "IA"
La \gls{ia} está revolucionando...
% Forzar forma específica
\acrshort{ia} % IA
\acrlong{ia} % Inteligencia Artificial
\acrfull{ia} % Inteligencia Artificial (IA)
% Términos del glosario
\gls{latex} % LaTeX (enlazado al glosario)\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{archivos/figuras/imagen}
\caption{Descripción de la figura.}
\label{fig:ejemplo}
\end{figure}\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{imagen1}
\caption{Primera imagen}
\label{fig:sub1}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{imagen2}
\caption{Segunda imagen}
\label{fig:sub2}
\end{subfigure}
\caption{Figura con dos subfiguras.}
\label{fig:conjunto}
\end{figure}\begin{figure}[htbp]
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel={Eje X},
ylabel={Eje Y},
grid=major,
]
\addplot[blue, thick] {x^2};
\addlegendentry{$f(x) = x^2$}
\end{axis}
\end{tikzpicture}
\caption{Gráfica de función cuadrática.}
\label{fig:grafica}
\end{figure}\begin{table}[htbp]
\centering
\caption{Título de la tabla.}
\label{tab:ejemplo}
\begin{tabular}{lcc}
\toprule
Columna 1 & Columna 2 & Columna 3 \\
\midrule
Dato 1 & 100 & 50\% \\
Dato 2 & 200 & 75\% \\
Dato 3 & 150 & 60\% \\
\bottomrule
\end{tabular}
\end{table}\begin{longtable}{lcc}
\caption{Tabla que ocupa varias páginas.}
\label{tab:larga} \\
\toprule
Col 1 & Col 2 & Col 3 \\
\midrule
\endfirsthead
\multicolumn{3}{c}{Continuación de la tabla} \\
\toprule
Col 1 & Col 2 & Col 3 \\
\midrule
\endhead
\bottomrule
\endfoot
% Datos aquí...
Fila 1 & A & B \\
Fila 2 & C & D \\
\end{longtable}lualatex -shell-escape main.tex # Primera pasada
biber main # Procesar bibliografía
makeglossaries main # Procesar glosarios (si se usan)
lualatex -shell-escape main.tex # Segunda pasada
lualatex -shell-escape main.tex # Tercera pasada (resolver referencias)latexmk -lualatex -shell-escape main.tex$pdf_mode = 4; # LuaLaTeX
$lualatex = 'lualatex -shell-escape %O %S';| Error | Causa probable | Solución |
|---|---|---|
Undefined control sequence |
Comando no definido | Verificar paquete cargado |
Missing $ inserted |
Símbolo matemático fuera de math mode | Añadir $...$ |
File not found |
Ruta incorrecta | Verificar nombre y ubicación |
Missing \begin{document} |
Error en preámbulo | Revisar sintaxis antes de \begin{document} |
Font ... not found |
Fuente no instalada | Usar TeX Live completo |
| Error | Solución |
|---|---|
You must invoke LaTeX with -shell-escape |
Añadir -shell-escape al comando |
Pygments not found |
Instalar: pip install latexminted |
Cannot find ... lexer |
Verificar nombre del lenguaje |
| Error | Solución |
|---|---|
Citation undefined |
Ejecutar biber main |
I couldn't open file |
Verificar nombre del archivo .bib |
Biber error |
Revisar sintaxis del archivo .bib |
Para generar PDFs que cumplan con PDF/UA-2, añadir antes de \documentclass:
\DocumentMetadata{
lang = es-ES,
pdfstandard = ua-2,
testphase = {phase-III, math, table, title, firstaid}
}| Requisito | Descripción |
|---|---|
| LuaLaTeX | Obligatorio para MathML automático |
| TeX Live 2025+ | Soporte completo del LaTeX Tagging Project |
| Texto alternativo | Usar alt={...} en \includegraphics |
Ver la guía completa en docs/ACCESIBILIDAD.md.
-
Crear archivo en
capitulos/nuevo_capitulo.tex -
Añadir en
main.tex:\include{capitulos/nuevo_capitulo}
-
Crear archivo en
anexos/anexo_X.tex -
Añadir en
main.texdespués de\appendix:\include{anexos/anexo_X}
En configuracion.tex, antes de cargar la clase:
% No recomendado cambiar, pero posible:
\PassOptionsToPackage{style=ieee}{biblatex}Este documento se actualiza con cada versión de la plantilla. Última actualización: Febrero 2026.