%% iesibai-template.sty
%% Copyright (2026) TheBiotechScientist
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
%   https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008-05-04 or later.
%
% This work has the LPPL maintenance status `maintained'.
% 
% The Current Maintainer of this work is F. Javier Morales M. (TheBiotechScientist)
%
% This work consists of the files
%   - iesibai-template.sty
%   - iesibai-doc.tex
%   - iesibai-doc.pdf
%   - README.md
%   - LICENSE
%
% and the files in directory assets/.

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{iesibai-template}[2026/09/27 v1.0.0 Plantilla Institucional IESIBAI (No Oficial)]

% 1. Configuración de márgenes y tamaño de página
\RequirePackage[letterpaper, margin=2.5cm]{geometry}

% 2. Configuración del idioma, epígrafes e Índice
\RequirePackage[spanish,es-tabla]{babel}
\RequirePackage{caption} % Soluciona el error de hooks en \@makecaption con babel-spanish
\addto\captionsspanish{\renewcommand{\contentsname}{Contenido}}

% 3. Manejo de Colores
\RequirePackage{xcolor}
\definecolor{iesblue}{HTML}{0F2C59}
\definecolor{iesblueprimary}{HTML}{1A365D}   % Azul marino profundo (Institucional)
\definecolor{iesgray}{HTML}{4A5568}          % Gris oscuro para subtítulos
\definecolor{iesaccent}{HTML}{DD6B20}        % Toque naranja/coral sutil

% 4. Configuración Tipográfica (XeLaTeX + fontspec)
\RequirePackage{fontspec}
\setsansfont{Noto Sans}
\newfontfamily\titlefont{Helvetica}
\newfontfamily\bodyfont{Arial}
\setmainfont{Arial}

% 5. Paquetes para Gráficos, Fondo y Espaciado
\RequirePackage{graphicx}
\RequirePackage{eso-pic}
\RequirePackage{setspace}
\RequirePackage{metalogo}

% 6. Formato de Capítulos y Secciones (titlesec)
\RequirePackage{titlesec}

\titleformat{\chapter}[display]
  {\normalfont\sffamily\bfseries\color{iesblue}} 
  {\LARGE \chaptertitlename\ \thechapter}        
  {10pt}                                        
  {\fontsize{20pt}{30pt}\selectfont}           

\titlespacing*{\chapter}{0pt}{20pt}{30pt}

\titleformat{\section}
  {\normalfont\sffamily\Large\bfseries\color{iesblue}}
  {\thesection}{1em}{\fontsize{16}{20}\selectfont}

\titleformat{\subsection}
  {\normalfont\sffamily\large\bfseries\color{iesaccent}}
  {\large \thesubsection}{1em}{}

\RequirePackage{tikz}

% ==============================================================================
% 7. SISTEMA DE PORTADA Y CONFIGURACIÓN PGFKEYS
% ==============================================================================
\RequirePackage{pgfkeys}

\pgfkeys{
  /iesibai/.cd,
  institucion/.initial={Nombre del Instituto},
  campus/.initial={Nombre/Tipo de Campus},
  programa/.initial={Maestría en Educación},
  materia/.initial={Titulo de la Materia},
  subtitulo/.initial={Un subtitulo opcional para la portada},
  trabajo/.initial={Trabajo de Investigación - Módulo X},
  alumno/.initial={Nombre del Alumno},
  profesor/.initial={Dr. Jorge Ruiz Mondragon},
  ubicacion/.initial={Estado, México},
  fecha/.initial={Septiembre, 2026},
  engine/.initial={Elaborado en \XeLaTeX},
  logo/.initial={assets/logo_iesibai.png},
  fondo/.initial={assets/fondo_portada_redes_2.jpeg},
}

% Comandos auxiliares para leer/escribir variables
\newcommand{\iesibaisetup}[1]{\pgfqkeys{/iesibai}{#1}}
\newcommand{\iesibaiget}[1]{\pgfkeysvalueof{/iesibai/#1}}


% Interruptor para la generación automática de la portada
\newif\ifgenerarportada
\generarportadatrue

\newcommand{\sinportadaiesibai}{\generarportadafalse}

% Comando principal para construir la Portada
\newcommand{\portadaiesibai}[1][]{%
  \iesibaisetup{#1}%
  \begin{titlepage}
    \bodyfont

    \AddToShipoutPictureBG*{%
      \AtPageLowerLeft{%
        \IfFileExists{\iesibaiget{fondo}}{%
          \includegraphics[width=\paperwidth,height=\paperheight]{\iesibaiget{fondo}}%
        }{}%
      }%
    }%

    \begin{tikzpicture}[remember picture, overlay]
        \draw[line width=4pt, iesblueprimary] 
          ([xshift=1.5cm, yshift=-2cm]current page.north west) -- 
          ([xshift=1.5cm, yshift=2cm]current page.south west);
    \end{tikzpicture}

    \begin{tikzpicture}[remember picture, overlay]
        \node[anchor=center, xshift=-5cm, yshift=-4cm] at (current page.north east) {
          \IfFileExists{\iesibaiget{logo}}{%
            \includegraphics[width=6cm]{\iesibaiget{logo}}%
          }{}%
        };
    \end{tikzpicture}

    \flushleft
    \vspace*{-1cm}

    \begin{minipage}{0.6\textwidth}
        \onehalfspacing
        {\fontsize{18}{40}\selectfont\color{iesblueprimary}\textbf{\MakeUppercase{\iesibaiget{institucion}}}}\\[0.3cm]
        {\LARGE\color{iesaccent}\iesibaiget{campus}}\\[2cm]
    \end{minipage}

    {\fontsize{25}{35}\selectfont\color{iesgray}\iesibaiget{programa}}

    \vspace{1cm}

    {\fontsize{40}{55}\selectfont\titlefont\color{iesblueprimary} \iesibaiget{materia}}\\[0.5cm]
    {\fontsize{20}{30}\selectfont\color{iesaccent}\bfseries \textit{\iesibaiget{subtitulo}}}
    
    \vfill

    {\Huge \iesibaiget{trabajo}}\\[2cm]

    \begin{minipage}{0.45\textwidth}
        \large
        \flushleft
        \textbf{Alumno:}\\
        \iesibaiget{alumno}\\[0.5cm]
    \end{minipage}
    \begin{minipage}{0.45\textwidth}
        \large
        \flushleft
        \textbf{Profesor:}\\
        \iesibaiget{profesor}
    \end{minipage}

    \vspace{2cm}

    {\large\color{iesgray} \iesibaiget{ubicacion}}\\[0.2cm] {\large\color{iesgray} \iesibaiget{fecha}}\\[1cm]
    {\color{iesgray} \iesibaiget{engine}}

  \end{titlepage}
  \ClearShipoutPictureBG
}

\AtBeginDocument{%
  \ifgenerarportada
    \portadaiesibai
  \fi
}