Commits
* chore: completar bump de versión a 2.2.1 en marcadores restantes
Actualiza los marcadores de versión de la plantilla que quedaban en 2.1.0:
- llms.txt (cabecera descriptiva)
- Makefile (cabecera)
- .herramientas/generar_portadas.py y actualizar_previews.py (cabeceras)
- scripts/revision-rapida.py (X-Turnitin-Integration-Version)
No se tocan versiones ajenas (schema de .vscode/tasks.json, pdfversion,
versiones de dependencias en referencias.bib, ni los ejemplos \version{}).
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
* chore: completar migración de licencia GPL→MIT en cabeceras restantes
Corrige las referencias de licencia que quedaron como GPL tras #32 (que
solo cubrió .cls/.sty):
- Makefile
- .herramientas/generar_portadas.py (cabecera y docstring)
- .herramientas/actualizar_previews.py (cabecera y docstring)
Auditoría posterior: cero referencias GPL en el repo. LICENSE ya contiene
el texto de la licencia MIT (verificado).
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
- DOI: badge real (10.5281/zenodo.21315904, DOI de concepto) en README y
campo doi en CITATION.cff. La primera release (v2.2.1) ya disparó el
webhook de Zenodo y acuñó el DOI.
- Versión: bump de 2.1.0 a 2.2.1 en todos los marcadores (README badge,
cabeceras .cls/.sty y \ProvidesXXX, main.tex, configuracion.tex,
CLAUDE.md, AGENTS.md, copilot-instructions, docs/agents, CITATION.cff),
alineando el árbol con el tag v2.2.1. No se tocan CHANGELOG histórico
ni los ejemplos ilustrativos de \version{}.
- CI: actions/checkout@v6 -> v7 (build, release, revision).
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
* feat: integración Zenodo (DOI) y cambio de licencia a MIT
Zenodo (método webhook GitHub↔Zenodo, igual que phonometry):
- Añade .zenodo.json con metadatos del depósito (título, descripción,
autor + ORCID, keywords, related_identifiers).
- Añade CITATION.cff (citación estándar y botón "Cite" en GitHub).
- Añade badge de DOI en el README (placeholder hasta la 1ª release).
Licencia GPL-3.0 → MIT (con consentimiento de contribuidores):
- LICENSE reescrito a MIT (© 2018-2026 José Manuel Requena Plens).
- Actualiza license en .zenodo.json y CITATION.cff.
- Actualiza badge y sección de licencia en README.
- Actualiza cláusula de contribución en CONTRIBUTING.md.
- Actualiza cabeceras de licencia en 11 archivos .cls/.sty.
El DOI del badge y el campo doi de CITATION.cff se rellenarán tras
la primera release publicada en Zenodo.
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
* fix: badge DOI estático "pendiente" y versión correcta en CITATION.cff
Atiende el feedback de los revisores automáticos (Gemini, Copilot): el
badge con placeholder zenodo.XXXXXXXX.svg renderizaba una imagen rota.
Se sustituye por un badge estático de Shields.io ("DOI pendiente") que
renderiza correctamente; se cambiará por el DOI real tras la primera
release en la PR de seguimiento.
Corrige también version/date-released en CITATION.cff a 2.2.0 (última
release real) en lugar de 2.1.0.
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
Actualiza las versiones de GitHub Actions propuestas por Dependabot y añade al README la insignia por defecto de awesome-comunitat-valenciana.
* fix(docs): corregir errores de markdownlint y activar reglas MD036/MD045/MD051/MD060
- Activa MD036, MD045, MD051 y MD060 (elimina de la lista disabled)
- MD036: elimina negrita usada como subtítulo en README.md
- MD045: añade atributo alt= a todas las imágenes de portadas en README.md
- MD051: corrige anclas rotas en CONTRIBUTING.md, docs/AI_CONTEXT.md,
docs/COMPONENTES.md y docs/GUIA_PRINCIPIANTES.md
- MD060: normaliza separadores de tabla |---| -> | --- | en 29 archivos
- Mantiene MD013, MD033 y MD041 deshabilitadas (justificadas)
* fix(docs): corregir problemas de anchors y emojis en markdownlint
- .herramientas/README.md: eliminar emoji con carácter de reemplazo del heading
- docs/AI_CONTEXT.md: mover emoji al final del heading Índice y corregir anchor
- docs/GUIA_PRINCIPIANTES.md: simplificar heading con signo $ y eliminar disable comment
Mejoras en el contenido de ejemplo de la plantilla TFG/TFM EPS UA:
- Corrige títulos de bloques de código (descriptivos en lugar de genérico "Ejemplo")
- Corrige entorno anidado codigosimple en desarrollo.tex
- Añade \label a todos los elementos sin etiquetar (figuras, tablas, ecuaciones)
para que los alumnos que copien ejemplos sigan buenas prácticas
- Amplia sección de bibliografía con todos los formatos de cita BibLaTeX/APA7
(\textcite, \parencite, \footcite, etc.) usando entradas reales del .bib
- Corrige argumentos de \metricbox en marco-teorico.tex (icono, no color)
- Corrige cabecera faltante <algorithm> en ejemplo C++ con std::sort
- Añade \SuspendTagging/\ResumeTagging con guard \IfPackageLoadedTF{tagpdf}
en eps-arquitectura.sty para compatibilidad con LaTeX sin tagpdf
- Corrige colores de \apibody y \apiresponse en eps-software.sty
- Corrige captions en mineraltable/geotechdata en eps-geologia.sty
- Mejora revision-rapida.py: añade latexcode, codigo/codigoDark, preserva
líneas al vaciar bloques, filtra \label en código, elimina \verb inline
- El script sale con código 0 en CI (variable CI=true que GitHub Actions
define automáticamente). En local sigue saliendo con 1 si hay errores.
- El workflow usa set +e para que informe_existe siempre se registre en
GITHUB_OUTPUT aunque ocurra un error inesperado.
- Eliminado continue-on-error innecesario del step de revisión.
- Actualizado actions/upload-artifact de v4 a v7 en revision.yml.
Closes #19
Añade agentes IA para redacción y revisión, script de instalación
guiada, integración con Copyleaks/Turnitin y correcciones de estilo.
### Cambios incluidos
- Agente de redacción LaTeX (.github/agents/redaccion.md + docs/agents/redaccion-claude.md)
- Agente revisor tipo tribunal (.github/agents/revisor.md + docs/agents/revisor-claude.md)
- Prompts listos para usar (prompts-redaccion.md, prompts-revisor.md)
- Script de instalación guiada scripts/instalar.py
- Agente de instalación (.github/agents/instalacion.md + docs/agents/instalacion-claude.md)
- Integración Copyleaks y Turnitin en scripts/revision-rapida.py
- Documentación actualizada (README, AGENTS.md, GUIA_PRINCIPIANTES.md, docs/)
- Configuración markdownlint (.markdownlint.json) y corrección de todos los archivos MD
Closes #18
- Cambiar todos los snippets de código a preview:2 (minted 3.x requiere 2 pasadas)
- Actualizar tabla de lenguajes: luacode → lualangcode (evitar conflicto con paquete luacode)
- Regenerar todas las 222 previsualizaciones con código visible
- Añadir variantes Dark para Lua: lualangcodeDark, lualangcodeDarkNN
* ci: mejoras en workflows de build y release
- build.yml:
- run-name dinámico para mejor visibilidad en UI
- concurrency con cancel-in-progress para cancelar builds obsoletos
- filtros paths para solo compilar con cambios relevantes
- timeout-minutes: 30 para evitar builds colgados
- upload de logs en caso de fallo
- comentario de PR mejorado con tabla informativa
- release.yml:
- run-name dinámico mostrando versión
- timeout-minutes: 30
- nombre descriptivo al job
- release notes mejoradas con versión dinámica
- Actualización de TEXLIVE_VERSION a 2025
* fix: añadir --break-system-packages para pip en Alpine (PEP 668)
* fix: cambiar a imagen Debian TeX Live 2025 para mejor compatibilidad
* fix: usar os: debian con latest (incluye TeX Live 2025)
* fix: reemplazar noitemsep por itemsep=0pt, parsep=0pt para compatibilidad con block package
* docs: añadir alternativa itemsep=0pt,parsep=0pt compatible con PDF/UA-2
* fix: eliminar opciones itemize incompatibles con PDF/UA-2 y corregir sort de glosario
* chore: eliminar archivos de logs temporales
* docs: advertencia sobre incompatibilidad de enumitem con PDF/UA-2
* fix: deshabilitar PDF/UA-2 en CI para compatibilidad con enumitem
* debug: añadir logs de diagnóstico en pre_compile
* fix: deshabilitar testphase en CI (block package incompatible con enumitem)
* chore: trigger CI
* fix(ci): deshabilitar pdfstandard además de testphase
TeX Live 2025 activa automáticamente testphase cuando se usa pdfstandard=ua-2.
Se deshabilitan ambos para evitar conflictos con enumitem.
* fix(ci): comentar todo DocumentMetadata para evitar block
El paquete latex-lab-testphase-latest se carga automáticamente con
\DocumentMetadata{} incluso sin testphase explícito. Comentamos todo
el bloque para evitar el conflicto con enumitem.
* fix(ci): eliminar input eps-metadata completamente
Prueba: eliminar la línea \input{eps-metadata} de main.tex en CI
para verificar que el problema es DocumentMetadata.
* fix: eliminar input eps-metadata temporalmente para CI
Prueba para verificar que DocumentMetadata causa el conflicto con block/enumitem en TeX Live 2025.
* fix(ci): eliminar claves hyperxmp que requieren DocumentMetadata
Sin DocumentMetadata, las claves pdfcopyright, pdfcontactemail, etc.
de hyperxmp no están disponibles. Las eliminamos del hypersetup.
* fix(ci): usar texlive de Ubuntu en lugar de xu-cheng/latex-action
La imagen Docker de xu-cheng tiene TeX Live 2025 bleeding edge con el
paquete 'block' experimental que rompe enumitem. Ubuntu 24.04 tiene
una versión más estable que coincide con lo que los usuarios tendrán.
* fix(ci): añadir hyperxmp y deshabilitar DocumentMetadata en CI
- Añade hyperxmp a eps-tfg.cls para metadatos XMP sin DocumentMetadata
- CI comenta \input{eps-metadata} para evitar paquete block experimental
- Vuelve a xu-cheng/latex-action con TeX Live 2025
- Mantiene compatibilidad: local usa DocumentMetadata, CI usa hyperxmp
* fix: renombrar luacode a lualangcode para evitar conflicto
El paquete 'luacode' de LaTeX define \luacode, que entra en conflicto
con el entorno luacode de eps-codigo.sty. Renombrado a lualangcode.
* feat: comentario de CI aparece al inicio del PR
- Nuevo job init-comment que crea el comentario inmediatamente al abrir el PR
- El comentario muestra estado 'en progreso' mientras compila
- Se actualiza con resultado final (éxito o error) al terminar
- Comentario con información de error si falla la compilación
* fix: restaurar itemsep=0pt, parsep=0pt en tipbox
El problema solo ocurría con 'noitemsep' en el paquete block experimental.
Las opciones itemsep=0pt y parsep=0pt funcionan correctamente.
* fix: CI comenta solo testphase en lugar de todo DocumentMetadata
- Mantiene DocumentMetadata activo con pdfstandard=ua-2 y pdfversion=2.0
- Solo deshabilita testphase (el paquete block experimental)
- Restaura noitemsep en itemize (funciona sin testphase)
- En local: PDF taggeado con accesibilidad completa
- En CI: PDF sin tagging pero con metadatos correctos
* fix: volver a comentar eps-metadata completo en CI
El pdfstandard=ua-2 también carga el paquete block experimental,
no solo testphase. Por tanto hay que deshabilitar todo DocumentMetadata
en CI para evitar conflictos con enumitem.
* fix: implementar sugerencias de revisión del PR
- Añadir variantes Dark para Lua (lualangcodeDark, lualangcodeDarkNN)
- Cambiar pip a pip3 en workflows para mayor robustez
- Quitar dependencia needs de build para que funcione en push/dispatch
- Simplificar condición de check-links (el workflow ya tiene path filters)
✨ Nuevos componentes especializados por disciplina (software, telecom, arquitectura, química, geología, prevención)\n📚 Documentación actualizada para TeX Live 2025 y minted 3.x\n♿ Nueva guía de accesibilidad PDF/UA-2\n🎨 222 previews regenerados\n📄 21 portadas actualizadas
ci(deps): actualizar actions (upload-artifact v6, github-script v8)
- actions/upload-artifact v4 → v6
- actions/github-script v7 → v8
Closes #9, closes #10
## Cambios principales
### Nueva arquitectura
- Nueva clase eps-tfg.cls con configuración simplificada via \EPSsetup{}
- Estilos modulares en sty/: eps-codigo.sty, eps-portadas.sty
- Estructura de carpetas reorganizada: contenido/, recursos/, docs/
### Documentación completa
- 11 guías de documentación en docs/ con ejemplos visuales
- Archivos de contexto para IA: AGENTS.md, CLAUDE.md, copilot-instructions.md
- CHANGELOG.md, CONTRIBUTING.md
### CI/CD
- GitHub Actions para compilación automática
- Workflow de releases con PDF adjunto
- Dependabot para actualizaciones
### Mejoras técnicas
- Logos convertidos de EPS a PDF (mejor rendimiento)
- Soporte para género neutro en autor/tutor
- Previews visuales en documentación
BREAKING CHANGE: Nueva estructura incompatible con v1.x
Añadidas opciones género y número tutores
Añadidas opciones género y número tutores
Actualización para género y número tutores
Actualización del main para que indique género y número de tutores en base a las opciones añadidas en portada_bn y portada_color.
Posibilidad de añadir género para modificar la etiqueta Autor/Autora/Autores y comprobación del número de tutores para indicar automáticamente Tutor o Tutores
Posibilidad de añadir género para modificar la etiqueta Autor/Autora/Autores y comprobación del número de tutores para indicar automáticamente Tutor o Tutores
Se han añadido comandos para aprovechar la externalización de TikZ y PGF si se desea para acelerar el tiempo de ejecución.
Se han añadido más gráficas PGF de ejemplo.
Se han añadido dos tablas de ejemplo más.
Se han incluido algunos paquetes útiles.
* chore: completar bump de versión a 2.2.1 en marcadores restantes
Actualiza los marcadores de versión de la plantilla que quedaban en 2.1.0:
- llms.txt (cabecera descriptiva)
- Makefile (cabecera)
- .herramientas/generar_portadas.py y actualizar_previews.py (cabeceras)
- scripts/revision-rapida.py (X-Turnitin-Integration-Version)
No se tocan versiones ajenas (schema de .vscode/tasks.json, pdfversion,
versiones de dependencias en referencias.bib, ni los ejemplos \version{}).
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
* chore: completar migración de licencia GPL→MIT en cabeceras restantes
Corrige las referencias de licencia que quedaron como GPL tras #32 (que
solo cubrió .cls/.sty):
- Makefile
- .herramientas/generar_portadas.py (cabecera y docstring)
- .herramientas/actualizar_previews.py (cabecera y docstring)
Auditoría posterior: cero referencias GPL en el repo. LICENSE ya contiene
el texto de la licencia MIT (verificado).
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
- DOI: badge real (10.5281/zenodo.21315904, DOI de concepto) en README y
campo doi en CITATION.cff. La primera release (v2.2.1) ya disparó el
webhook de Zenodo y acuñó el DOI.
- Versión: bump de 2.1.0 a 2.2.1 en todos los marcadores (README badge,
cabeceras .cls/.sty y \ProvidesXXX, main.tex, configuracion.tex,
CLAUDE.md, AGENTS.md, copilot-instructions, docs/agents, CITATION.cff),
alineando el árbol con el tag v2.2.1. No se tocan CHANGELOG histórico
ni los ejemplos ilustrativos de \version{}.
- CI: actions/checkout@v6 -> v7 (build, release, revision).
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
* feat: integración Zenodo (DOI) y cambio de licencia a MIT
Zenodo (método webhook GitHub↔Zenodo, igual que phonometry):
- Añade .zenodo.json con metadatos del depósito (título, descripción,
autor + ORCID, keywords, related_identifiers).
- Añade CITATION.cff (citación estándar y botón "Cite" en GitHub).
- Añade badge de DOI en el README (placeholder hasta la 1ª release).
Licencia GPL-3.0 → MIT (con consentimiento de contribuidores):
- LICENSE reescrito a MIT (© 2018-2026 José Manuel Requena Plens).
- Actualiza license en .zenodo.json y CITATION.cff.
- Actualiza badge y sección de licencia en README.
- Actualiza cláusula de contribución en CONTRIBUTING.md.
- Actualiza cabeceras de licencia en 11 archivos .cls/.sty.
El DOI del badge y el campo doi de CITATION.cff se rellenarán tras
la primera release publicada en Zenodo.
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
* fix: badge DOI estático "pendiente" y versión correcta en CITATION.cff
Atiende el feedback de los revisores automáticos (Gemini, Copilot): el
badge con placeholder zenodo.XXXXXXXX.svg renderizaba una imagen rota.
Se sustituye por un badge estático de Shields.io ("DOI pendiente") que
renderiza correctamente; se cambiará por el DOI real tras la primera
release en la PR de seguimiento.
Corrige también version/date-released en CITATION.cff a 2.2.0 (última
release real) en lugar de 2.1.0.
Claude-Session: https://claude.ai/code/session_017FNei3ZR5BDE1eTWpCDS9d
* fix(docs): corregir errores de markdownlint y activar reglas MD036/MD045/MD051/MD060
- Activa MD036, MD045, MD051 y MD060 (elimina de la lista disabled)
- MD036: elimina negrita usada como subtítulo en README.md
- MD045: añade atributo alt= a todas las imágenes de portadas en README.md
- MD051: corrige anclas rotas en CONTRIBUTING.md, docs/AI_CONTEXT.md,
docs/COMPONENTES.md y docs/GUIA_PRINCIPIANTES.md
- MD060: normaliza separadores de tabla |---| -> | --- | en 29 archivos
- Mantiene MD013, MD033 y MD041 deshabilitadas (justificadas)
* fix(docs): corregir problemas de anchors y emojis en markdownlint
- .herramientas/README.md: eliminar emoji con carácter de reemplazo del heading
- docs/AI_CONTEXT.md: mover emoji al final del heading Índice y corregir anchor
- docs/GUIA_PRINCIPIANTES.md: simplificar heading con signo $ y eliminar disable comment
Mejoras en el contenido de ejemplo de la plantilla TFG/TFM EPS UA:
- Corrige títulos de bloques de código (descriptivos en lugar de genérico "Ejemplo")
- Corrige entorno anidado codigosimple en desarrollo.tex
- Añade \label a todos los elementos sin etiquetar (figuras, tablas, ecuaciones)
para que los alumnos que copien ejemplos sigan buenas prácticas
- Amplia sección de bibliografía con todos los formatos de cita BibLaTeX/APA7
(\textcite, \parencite, \footcite, etc.) usando entradas reales del .bib
- Corrige argumentos de \metricbox en marco-teorico.tex (icono, no color)
- Corrige cabecera faltante <algorithm> en ejemplo C++ con std::sort
- Añade \SuspendTagging/\ResumeTagging con guard \IfPackageLoadedTF{tagpdf}
en eps-arquitectura.sty para compatibilidad con LaTeX sin tagpdf
- Corrige colores de \apibody y \apiresponse en eps-software.sty
- Corrige captions en mineraltable/geotechdata en eps-geologia.sty
- Mejora revision-rapida.py: añade latexcode, codigo/codigoDark, preserva
líneas al vaciar bloques, filtra \label en código, elimina \verb inline
- El script sale con código 0 en CI (variable CI=true que GitHub Actions
define automáticamente). En local sigue saliendo con 1 si hay errores.
- El workflow usa set +e para que informe_existe siempre se registre en
GITHUB_OUTPUT aunque ocurra un error inesperado.
- Eliminado continue-on-error innecesario del step de revisión.
- Actualizado actions/upload-artifact de v4 a v7 en revision.yml.
Closes #19
Añade agentes IA para redacción y revisión, script de instalación
guiada, integración con Copyleaks/Turnitin y correcciones de estilo.
### Cambios incluidos
- Agente de redacción LaTeX (.github/agents/redaccion.md + docs/agents/redaccion-claude.md)
- Agente revisor tipo tribunal (.github/agents/revisor.md + docs/agents/revisor-claude.md)
- Prompts listos para usar (prompts-redaccion.md, prompts-revisor.md)
- Script de instalación guiada scripts/instalar.py
- Agente de instalación (.github/agents/instalacion.md + docs/agents/instalacion-claude.md)
- Integración Copyleaks y Turnitin en scripts/revision-rapida.py
- Documentación actualizada (README, AGENTS.md, GUIA_PRINCIPIANTES.md, docs/)
- Configuración markdownlint (.markdownlint.json) y corrección de todos los archivos MD
Closes #18
- Cambiar todos los snippets de código a preview:2 (minted 3.x requiere 2 pasadas)
- Actualizar tabla de lenguajes: luacode → lualangcode (evitar conflicto con paquete luacode)
- Regenerar todas las 222 previsualizaciones con código visible
- Añadir variantes Dark para Lua: lualangcodeDark, lualangcodeDarkNN
* ci: mejoras en workflows de build y release
- build.yml:
- run-name dinámico para mejor visibilidad en UI
- concurrency con cancel-in-progress para cancelar builds obsoletos
- filtros paths para solo compilar con cambios relevantes
- timeout-minutes: 30 para evitar builds colgados
- upload de logs en caso de fallo
- comentario de PR mejorado con tabla informativa
- release.yml:
- run-name dinámico mostrando versión
- timeout-minutes: 30
- nombre descriptivo al job
- release notes mejoradas con versión dinámica
- Actualización de TEXLIVE_VERSION a 2025
* fix: añadir --break-system-packages para pip en Alpine (PEP 668)
* fix: cambiar a imagen Debian TeX Live 2025 para mejor compatibilidad
* fix: usar os: debian con latest (incluye TeX Live 2025)
* fix: reemplazar noitemsep por itemsep=0pt, parsep=0pt para compatibilidad con block package
* docs: añadir alternativa itemsep=0pt,parsep=0pt compatible con PDF/UA-2
* fix: eliminar opciones itemize incompatibles con PDF/UA-2 y corregir sort de glosario
* chore: eliminar archivos de logs temporales
* docs: advertencia sobre incompatibilidad de enumitem con PDF/UA-2
* fix: deshabilitar PDF/UA-2 en CI para compatibilidad con enumitem
* debug: añadir logs de diagnóstico en pre_compile
* fix: deshabilitar testphase en CI (block package incompatible con enumitem)
* chore: trigger CI
* fix(ci): deshabilitar pdfstandard además de testphase
TeX Live 2025 activa automáticamente testphase cuando se usa pdfstandard=ua-2.
Se deshabilitan ambos para evitar conflictos con enumitem.
* fix(ci): comentar todo DocumentMetadata para evitar block
El paquete latex-lab-testphase-latest se carga automáticamente con
\DocumentMetadata{} incluso sin testphase explícito. Comentamos todo
el bloque para evitar el conflicto con enumitem.
* fix(ci): eliminar input eps-metadata completamente
Prueba: eliminar la línea \input{eps-metadata} de main.tex en CI
para verificar que el problema es DocumentMetadata.
* fix: eliminar input eps-metadata temporalmente para CI
Prueba para verificar que DocumentMetadata causa el conflicto con block/enumitem en TeX Live 2025.
* fix(ci): eliminar claves hyperxmp que requieren DocumentMetadata
Sin DocumentMetadata, las claves pdfcopyright, pdfcontactemail, etc.
de hyperxmp no están disponibles. Las eliminamos del hypersetup.
* fix(ci): usar texlive de Ubuntu en lugar de xu-cheng/latex-action
La imagen Docker de xu-cheng tiene TeX Live 2025 bleeding edge con el
paquete 'block' experimental que rompe enumitem. Ubuntu 24.04 tiene
una versión más estable que coincide con lo que los usuarios tendrán.
* fix(ci): añadir hyperxmp y deshabilitar DocumentMetadata en CI
- Añade hyperxmp a eps-tfg.cls para metadatos XMP sin DocumentMetadata
- CI comenta \input{eps-metadata} para evitar paquete block experimental
- Vuelve a xu-cheng/latex-action con TeX Live 2025
- Mantiene compatibilidad: local usa DocumentMetadata, CI usa hyperxmp
* fix: renombrar luacode a lualangcode para evitar conflicto
El paquete 'luacode' de LaTeX define \luacode, que entra en conflicto
con el entorno luacode de eps-codigo.sty. Renombrado a lualangcode.
* feat: comentario de CI aparece al inicio del PR
- Nuevo job init-comment que crea el comentario inmediatamente al abrir el PR
- El comentario muestra estado 'en progreso' mientras compila
- Se actualiza con resultado final (éxito o error) al terminar
- Comentario con información de error si falla la compilación
* fix: restaurar itemsep=0pt, parsep=0pt en tipbox
El problema solo ocurría con 'noitemsep' en el paquete block experimental.
Las opciones itemsep=0pt y parsep=0pt funcionan correctamente.
* fix: CI comenta solo testphase en lugar de todo DocumentMetadata
- Mantiene DocumentMetadata activo con pdfstandard=ua-2 y pdfversion=2.0
- Solo deshabilita testphase (el paquete block experimental)
- Restaura noitemsep en itemize (funciona sin testphase)
- En local: PDF taggeado con accesibilidad completa
- En CI: PDF sin tagging pero con metadatos correctos
* fix: volver a comentar eps-metadata completo en CI
El pdfstandard=ua-2 también carga el paquete block experimental,
no solo testphase. Por tanto hay que deshabilitar todo DocumentMetadata
en CI para evitar conflictos con enumitem.
* fix: implementar sugerencias de revisión del PR
- Añadir variantes Dark para Lua (lualangcodeDark, lualangcodeDarkNN)
- Cambiar pip a pip3 en workflows para mayor robustez
- Quitar dependencia needs de build para que funcione en push/dispatch
- Simplificar condición de check-links (el workflow ya tiene path filters)
## Cambios principales
### Nueva arquitectura
- Nueva clase eps-tfg.cls con configuración simplificada via \EPSsetup{}
- Estilos modulares en sty/: eps-codigo.sty, eps-portadas.sty
- Estructura de carpetas reorganizada: contenido/, recursos/, docs/
### Documentación completa
- 11 guías de documentación en docs/ con ejemplos visuales
- Archivos de contexto para IA: AGENTS.md, CLAUDE.md, copilot-instructions.md
- CHANGELOG.md, CONTRIBUTING.md
### CI/CD
- GitHub Actions para compilación automática
- Workflow de releases con PDF adjunto
- Dependabot para actualizaciones
### Mejoras técnicas
- Logos convertidos de EPS a PDF (mejor rendimiento)
- Soporte para género neutro en autor/tutor
- Previews visuales en documentación
BREAKING CHANGE: Nueva estructura incompatible con v1.x