Universidad de Alicante
Plantilla LaTeX moderna y profesional para la elaboración de Trabajos de Fin de Grado (TFG) y Trabajos de Fin de Máster (TFM) de la Escuela Politécnica Superior de la Universidad de Alicante.
- 🎨 Portadas oficiales a color y en blanco/negro con diseño profesional
- 🎓 21 titulaciones preconfiguradas (8 grados + 13 másteres)
- ⚙️ Configuración simple mediante un único archivo
- 📝 Bibliografía APA 7 con BibLaTeX + Biber
- 💻 Resaltado de código para 25+ lenguajes con Minted
- 📊 Gráficas y diagramas con TikZ/PGFPlots
- 📖 Glosarios y acrónimos integrados
- 🚀 Optimización TikZ con caché de figuras
- 🔧 Compatible con Overleaf y editores locales
Si nunca has usado LaTeX, no te preocupes. Hemos preparado una guía completa para principiantes:
📖 Guía de LaTeX para Principiantes
Incluye:
- Qué es LaTeX y por qué usarlo
- Instalación paso a paso (Windows, macOS, Linux)
- Elegir un editor
- Tu primera compilación
- Errores comunes y soluciones
- Recursos de aprendizaje
Esta plantilla incluye una documentación exhaustiva para cada aspecto de tu TFG/TFM. Puedes acceder al índice completo o ir directamente a las guías específicas:
👉 ÍNDICE DE DOCUMENTACIÓN (Empieza aquí si tienes dudas)
Ver lista de guías disponibles
| Guía | Descripción |
|---|---|
| 📝 Código Fuente | Insertar y resaltar código con minted (40+ lenguajes) |
| 📊 Figuras y Gráficas | Crear gráficos con pgfplots y TikZ |
| 🖼️ Imágenes y Subfiguras | Incluir imágenes, subfiguras y posicionamiento |
| 📋 Tablas | Tablas profesionales con booktabs |
| ✍️ Texto y Listas | Formato de texto, listas y descripciones |
| 🔢 Ecuaciones | Fórmulas matemáticas con amsmath |
| 📖 Bibliografía | Gestión de referencias con BibLaTeX |
| 📓 Glosarios y Acrónimos | Términos, siglas y símbolos |
| 🔗 Referencias Cruzadas | Etiquetas, referencias y hyperref |
| ♿ Accesibilidad PDF | PDFs accesibles (PDF/UA-2) |
| 🤖 Contexto IA | Referencia técnica completa para asistentes de IA |
| 🔄 Flujos de trabajo IA | Guías paso a paso para tareas comunes |
¿Usas ChatGPT, Claude, Copilot u otro asistente de IA? Este proyecto incluye archivos de contexto para que las IAs te ayuden mejor:
| Archivo | Propósito |
|---|---|
| AGENTS.md | Instrucciones para agentes de código autónomos (Codex, Devin, etc.) |
| CLAUDE.md | Instrucciones específicas para Claude |
| .github/copilot-instructions.md | Instrucciones para GitHub Copilot |
| docs/AI_CONTEXT.md | Referencia técnica completa |
| docs/AI_WORKFLOWS.md | Flujos de trabajo paso a paso para tareas comunes |
| Agente | Para Copilot | Para Claude | Prompts |
|---|---|---|---|
| Instalación guiada | .github/agents/instalacion.md | docs/agents/instalacion-claude.md | docs/agents/prompts-instalacion.md |
| Redacción de capítulos | .github/agents/redaccion.md | docs/agents/redaccion-claude.md | docs/agents/prompts-redaccion.md |
| Revisor tipo tribunal | .github/agents/revisor.md | docs/agents/revisor-claude.md | docs/agents/prompts-revisor.md |
Revisión automática: python3 scripts/revision-rapida.py genera un informe estático sin necesidad de IA.
Tip: Si usas ChatGPT, Gemini u otra IA sin integración directa, copia el contenido de docs/AI_CONTEXT.md en el chat para obtener respuestas precisas sobre esta plantilla.
La forma más sencilla de preparar el entorno es ejecutar el script de instalación incluido:
# Linux / macOS
python3 scripts/instalar.py
# Windows
python scripts/instalar.pyEl script detecta qué falta, ofrece instalarlo automáticamente cuando es posible y guía paso a paso cuando requiere intervención manual. Si Python no está instalado aún, consulta la Guía para Principiantes.
Para ayuda interactiva, usa el agente de instalación:
- GitHub Copilot: carga
.github/agents/instalacion.mden Copilot Chat - Claude: consulta docs/agents/instalacion-claude.md o usa los prompts listos
- TeX Live 2024 o superior (recomendado: TeX Live 2025)
- LuaLaTeX como motor de compilación
- Biber para bibliografía
- Python + latexminted para resaltado de código (minted 3.x)
# Ubuntu/Debian (instalación manual)
sudo apt install texlive-full
pip3 install latexminted
# macOS con Homebrew
brew install --cask mactex
pip3 install latexminted
# Windows con MiKTeX
# Descargar desde https://miktex.org/download
pip install latexminted# Opción 1: Usando Make (recomendado)
make # Compilación completa
make quick # Compilación rápida (sin bibliografía)
make clean # Limpiar archivos auxiliares
make view # Abrir PDF generado
# Opción 2: Usando latexmk (compilación continua)
latexmk main.tex # Compilar una vez
latexmk -pvc main.tex # Compilar automáticamente al guardar
# Opción 3: Compilación manual
lualatex -shell-escape main.tex
biber main
lualatex -shell-escape main.tex
lualatex -shell-escape main.texTFG-TFM_EPS/
├── main.tex # Documento principal
├── configuracion.tex # Configuración del usuario
├── referencias.bib # Bibliografía
├── Makefile # Comandos de compilación
├── .latexmkrc # Configuración de latexmk
├── .env.example # Plantilla de credenciales (Copyleaks/Turnitin)
│
├── scripts/
│ ├── instalar.py # Script de instalación y diagnóstico del entorno
│ └── revision-rapida.py # Revisor estático del documento
│
├── cls/
│ └── eps-tfg.cls # Clase principal
│
├── sty/
│ ├── eps-portadas.sty # Paquete de portadas
│ ├── eps-codigo.sty # Estilos de código
│ └── ... # Otros paquetes de estilo
│
├── contenido/
│ ├── frontmatter/
│ │ └── preliminares.tex # Agradecimientos, resumen...
│ ├── capitulos/
│ │ ├── introduccion.tex
│ │ ├── marco-teorico.tex
│ │ ├── objetivos.tex
│ │ ├── metodologia.tex
│ │ ├── desarrollo.tex
│ │ ├── resultados.tex
│ │ └── conclusiones.tex
│ └── anexos/
│ ├── acronimos.tex
│ └── anexo-X.tex # Tus anexos
│
├── recursos/
│ ├── logos/ # Logos institucionales (PDF)
│ ├── fuentes/ # Fuentes tipográficas
│ ├── figuras/ # Tus figuras e imágenes
│ └── ejemplos/ # Ejemplos de código fuente
│
├── docs/ # Documentación detallada
│ ├── GUIA_PRINCIPIANTES.md
│ ├── CODIGO_FUENTE.md
│ ├── ECUACIONES.md
│ ├── agents/ # Agentes IA y prompts listos
│ └── ... # Más guías especializadas
│
├── .github/
│ ├── agents/ # Agentes para GitHub Copilot
│ └── workflows/
│ ├── build.yml # CI: compilar PDF
│ └── revision.yml # CI: revisión estática automática en PR
│
├── .vscode/ # Tareas y configuración para VS Code
├── AGENTS.md # Contexto para asistentes IA
├── CLAUDE.md # Instrucciones para Claude
├── CHANGELOG.md # Historial de cambios
└── CONTRIBUTING.md # Guía de contribución
Toda la configuración se realiza en el archivo configuracion.tex:
\EPSsetup{
% Información del trabajo
titulo = {Mi Título del Trabajo},
subtitulo = {Subtítulo opcional},
% Autor
autor = {Nombre Apellido1 Apellido2},
genero = m, % m = masculino, f = femenino, n = neutro
email = nombre@alu.ua.es,
% Tutor/es
tutor = {Dr. Nombre Apellido},
tutor-genero = m, % m = masculino, f = femenino, n = neutro
tutor-departamento = {Departamento de Ejemplo},
% cotutor = {Dra. Nombre Apellido}, % Opcional
% cotutor-genero = f,
% Titulación (ver lista completa abajo)
titulacion = informatica,
% Opciones
optimizar-tikz = true,
borrador = true, % Muestra notas TODO
}| ID | Titulación |
|---|---|
teleco |
Ingeniería en Sonido e Imagen en Telecomunicación |
civil |
Ingeniería Civil |
quimica |
Ingeniería Química |
informatica |
Ingeniería Informática |
multimedia |
Ingeniería Multimedia |
arquitectura-tecnica |
Arquitectura Técnica |
arquitectura |
Arquitectura |
robotica |
Ingeniería Robótica |
| ID | Titulación |
|---|---|
master-teleco |
Ingeniería de Telecomunicación |
master-caminos |
Caminos, Canales y Puertos |
master-edificacion |
Gestión de la Edificación |
master-web |
Desarrollo de Aplicaciones y Servicios Web |
master-materiales |
Materiales, Agua y Terreno |
master-informatica |
Ingeniería Informática |
master-robotica |
Automática y Robótica |
master-prevencion |
Prevención de Riesgos Laborales |
master-agua |
Gestión Sostenible y Tecnologías del Agua |
master-moviles |
Software para Dispositivos Móviles |
master-quimica |
Ingeniería Química |
master-ciberseguridad |
Ciberseguridad |
master-geologica |
Ingeniería Geológica |
La plantilla genera automáticamente portadas a color y en blanco/negro según la titulación seleccionada.
Cada titulación tiene su propio diseño con colores y logotipos oficiales:
### Comandos de Portada% Ambas portadas (por defecto)
\generarportada[ambas]
% Solo portada a color
\generarportada[solo-color]
% Solo portada en blanco y negro
\generarportada[solo-bn]
% Portadas individuales
\portadacolor
\portadabnLa plantilla incluye estilos de código basados en Visual Studio Code con temas Light y Dark, números de línea opcionales e iconos de lenguajes.
| Tema | Descripción | Sufijo |
|---|---|---|
| VS Code Light | Fondo blanco, ideal para impresión | (ninguno) |
| VS Code Dark | Fondo oscuro, ideal para presentaciones | Dark |
| Variante | Descripción | Sufijo |
|---|---|---|
| Con números | Muestra números de línea | (ninguno) |
| Sin números | Oculta números de línea | NN |
| Lenguaje | Entorno Light | Entorno Dark | Icono |
|---|---|---|---|
| Python | pythoncode |
pythoncodeDark |
🐍 |
| JavaScript | jscode |
jscodeDark |
📜 |
| TypeScript | tscode |
tscodeDark |
📜 |
| Java | javacode |
javacodeDark |
☕ |
| C | ccode |
ccodeDark |
© |
| C++ | cppcode |
cppcodeDark |
© |
| C# | csharpcode |
csharpcodeDark |
🪟 |
| Go | gocode |
gocodeDark |
🔵 |
| Rust | rustcode |
rustcodeDark |
🦀 |
| PHP | phpcode |
phpcodeDark |
🐘 |
| Ruby | rubycode |
rubycodeDark |
💎 |
| R | rcode |
rcodeDark |
📊 |
| Swift | swiftcode |
swiftcodeDark |
🍎 |
| Kotlin | kotlincode |
kotlincodeDark |
🤖 |
| HTML | htmlcode |
htmlcodeDark |
🌐 |
| CSS | csscode |
csscodeDark |
🎨 |
| SQL | sqlcode |
sqlcodeDark |
🗃️ |
| JSON | jsoncode |
jsoncodeDark |
📋 |
| YAML | yamlcode |
yamlcodeDark |
📄 |
| Bash | bashcode |
bashcodeDark |
💻 |
| Docker | dockercode |
dockercodeDark |
🐳 |
| LaTeX | latexcode |
— | 📝 |
| Git | gitcode |
— | 🔀 |
% ===== TEMA LIGHT (fondo blanco) =====
% Python con números de línea
\begin{pythoncode}
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
\end{pythoncode}
% Python SIN números de línea
\begin{pythoncodeNN}
print("Hola mundo")
\end{pythoncodeNN}
% JavaScript con título personalizado
\begin{jscode}[title={Validación de email}]
function validateEmail(email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}
\end{jscode}
% ===== TEMA DARK (fondo oscuro) =====
% Python Dark con números
\begin{pythoncodeDark}
import numpy as np
resultado = np.array([1, 2, 3])
\end{pythoncodeDark}
% Python Dark SIN números
\begin{pythoncodeDarkNN}
print("Sin números de línea")
\end{pythoncodeDarkNN}
% ===== ENTORNO GENÉRICO (cualquier lenguaje) =====
% Light con números
\begin{codigo}{swift}
let mensaje = "Hola desde Swift"
print(mensaje)
\end{codigo}
% Light sin números
\begin{codigoNN}{kotlin}
fun main() = println("Hola")
\end{codigoNN}
% Dark con números
\begin{codigoDark}{scala}
object Main extends App {
println("Hola Scala")
}
\end{codigoDark}
% Dark sin números
\begin{codigoDarkNN}{haskell}
main = putStrLn "Hola Haskell"
\end{codigoDarkNN}entorno → Light + números de línea
entornoNN → Light + sin números
entornoDark → Dark + números de línea
entornoDarkNN → Dark + sin números
La plantilla usa BibLaTeX con Biber y estilo APA 7.
@book{autor2024,
author = {García, María},
title = {Título del Libro},
publisher = {Editorial},
year = {2024},
isbn = {978-0000000000}
}
@article{ejemplo2024,
author = {López, Juan},
title = {Título del Artículo},
journal = {Revista Científica},
year = {2024},
volume = {10},
pages = {1--15},
doi = {10.1234/ejemplo}
}Según \textcite{autor2024}, el tema es importante...
Esto ha sido estudiado previamente \parencite{ejemplo2024}.Define acrónimos en contenido/anexos/acronimos.tex:
\newacronym{api}{API}{Application Programming Interface}
\newacronym{ml}{ML}{Machine Learning}Usa en el texto:
La \gls{api} permite... % Primera vez: Application Programming Interface (API)
Usando \gls{api}... % Después: API
La \acrlong{ml} es... % Machine LearningPara añadir una titulación que no esté incluida, contacta con el mantenedor o edita cls/eps-tfg.cls:
% En la sección de definición de titulaciones
\__eps_define_titulacion:nnnnnnn {mi-titulacion}
{Nombre Completo de Mi Titulación}
{tfg} % o tfm
{mi-color} % definir color previamente
{blanco} % o negro, según el fondo
{Blanco} % variante del logo para portada
{Negro} % variante del logo normalLos colores de las titulaciones se definen en la clase. Para personalizar:
% En configuracion.tex, después de \EPSsetup
\definecolor{mi-color}{RGB}{100,150,200}- Sube todos los archivos del proyecto a Overleaf
- Configura el compilador como LuaLaTeX
- Activa shell-escape en la configuración del proyecto
- Compila
main.tex
⚠️ Nota: Algunas funcionalidades como minted requieren shell-escape habilitado.
- ✅ Motor actualizado a LuaLaTeX
- ✅ Bibliografía migrada a BibLaTeX + Biber
- ✅ Sistema de configuración key-value moderno
- ✅ Código con Minted (25+ lenguajes)
- ✅ Logos convertidos a PDF
- ✅ Estructura de carpetas reorganizada
- ✅ Eliminado conflicto babel/polyglossia
- ✅ Clase modular con paquetes separados
- ✅ Soporte mejorado para personalización
Si tienes un documento con la versión anterior:
- Copia tu contenido a los nuevos archivos en
contenido/ - Adapta la configuración al nuevo formato
\EPSsetup{} - Convierte tu bibliografía al formato BibLaTeX si usabas
apacite - Actualiza los entornos de código a los nuevos (ej:
lstlisting→pythoncode)
Instalar el paquete de Python latexminted:
pip3 install latexmintedAsegúrate de usar la opción -shell-escape:
lualatex -shell-escape main.tex
# O simplemente usa:
makeLa plantilla usa fuentes del sistema con fallbacks. Si aparecen warnings sobre fuentes:
- El documento compilará con fuentes alternativas (DejaVu Sans)
- Para mejores resultados, instala las fuentes del sistema
Ejecuta Biber entre compilaciones:
lualatex -shell-escape main.tex
biber main
lualatex -shell-escape main.texVerifica que latexminted esté instalado:
latexminted --version
# Si no está: pip3 install latexmintedActiva la caché de figuras TikZ en configuracion.tex:
\EPSsetup{
optimizar-tikz = true,
}¡Las contribuciones son bienvenidas! Por favor:
- Haz fork del repositorio
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Añade nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Consulta la Guía de Contribución para más detalles.
| Herramienta | Cómo ejecutar | Para qué sirve |
|---|---|---|
scripts/instalar.py |
python3 scripts/instalar.py |
Comprueba e instala dependencias del entorno |
scripts/revision-rapida.py |
python3 scripts/revision-rapida.py |
Análisis estático del documento; genera informe-revision.md |
.env.example |
Copiar a .env y rellenar |
Credenciales para Copyleaks y Turnitin (opcional) |
La revisión estática también se ejecuta automáticamente en cada push/PR mediante el workflow de GitHub Actions (.github/workflows/revision.yml).
| Editor | Plataforma | Descripción |
|---|---|---|
| VS Code + LaTeX Workshop | Win/Mac/Linux | Editor moderno con excelente soporte LaTeX |
| TeXstudio | Win/Mac/Linux | Editor dedicado a LaTeX, muy completo |
| Texmaker | Win/Mac/Linux | Similar a TeXstudio, más sencillo |
| Overleaf | Web | Editor online, sin instalación |
| Herramienta | Para qué sirve |
|---|---|
| Detexify | Dibuja un símbolo → obtén el comando LaTeX |
| Tables Generator | Crea tablas visualmente |
| Mathpix | Convierte imágenes de ecuaciones a LaTeX |
| doi2bib | Genera BibTeX desde DOI |
| Zotero + Better BibTeX | Gestión bibliográfica |
| JabRef | Gestor de bibliografía BibLaTeX |
| arXiv TeX Live Info | Compatibilidad con arXiv |
| Recurso | Descripción |
|---|---|
| Overleaf Learn | Tutoriales completos (EN/ES) |
| LaTeX Wikibook | Referencia exhaustiva |
| TeX StackExchange | Preguntas y respuestas |
| CTAN | Repositorio de paquetes LaTeX |
| LaTeX Project | Documentación oficial de LaTeX |
| TikZ & PGF Manual | Documentación oficial de TikZ |
| PGFPlots Manual | Manual oficial de PGFPlots |
| BibLaTeX Manual | Documentación de bibliografía |
Este proyecto está bajo la licencia GNU General Public License v3.0.
Puedes:
- ✅ Usar la plantilla para tu TFG/TFM
- ✅ Modificar y adaptar a tus necesidades
- ✅ Compartir con otros estudiantes
Debes:
- 📝 Mantener la atribución al autor original
- 🔄 Compartir modificaciones bajo la misma licencia
- A la Escuela Politécnica Superior de la Universidad de Alicante
- A todos los estudiantes que han usado y mejorado esta plantilla
- A la comunidad LaTeX por las herramientas utilizadas
¡Buena suerte con tu TFG/TFM! 🎓





















