% \iffalse meta-comment
%
% Copyright (C) 2026 Guilherme Ivo
%
% This file 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/
%
% and version 1.3c or later is part of all distributions of
% LaTeX version 2008-05-04 or later.
%
% \fi
%
% \iffalse
%
%<driver>\ProvidesFile{siicusp-abstracts.dtx}
%
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{siicusp-abstracts}
%<package>    [2026/08/17 v1.1.2 SIICUSP Abstracts]
%
%<*driver>
    \listfiles
    \documentclass{ltxdoc}

    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[brazilian]{babel}

    \usepackage{siunitx}

    \usepackage{makeidx}

    \usepackage{hypdoc}

    \EnableCrossrefs
    \RecordChanges

    \GlossaryPrologue{\section*{Histórico de Alterações}}

    \IndexPrologue{\section*{Índice Remissivo} Números em itálico referem-se à página de descrição; números sublinhados referem-se à linha de definição.}

    \makeindex

    \begin{document}
        \DocInput{siicusp-abstracts.dtx}
    \end{document}
%</driver>
% \fi
%
% \iffalse
%
%<*package>

%</package>
%
% \fi
%
% \title{O pacote \texttt{siicusp-abstracts}\footnote{Simpósio Internacional de Iniciação Científica e Tecnológica da USP}\\Esse documento corresponde a \texttt{siicusp-abstracts.sty}.}
% \author{Guilherme Ivo}
% 
% \maketitle
%
% \newcommand{\idxtext}[1]{#1\index{#1}}
% \setlength{\MacroIndent}{0pt}
%
% \changes{v1.1.1}{2026/08/12}{
%   Ajusta medidas, espaçamentos e posicionamento do logotipo e dos títulos,
%   aprimorando a correspondência visual com o modelo oficial do SIICUSP.
% }
%
% \changes{v1.1.0}{2026/08/05}{
%   Aprimora a documentação do pacote, ajusta a formatação para maior
%   conformidade com o modelo do SIICUSP, adiciona formatação automática
%   das legendas de figuras e tabelas, melhora o tratamento do logotipo
%   oficial e realiza correções para publicação no CTAN.
% }
%
% \changes{v1.0.0}{2026/07/30}{Versão inicial}
% 
% \PrintChanges
%    \tableofcontents
%
% \iffalse
%<*package>
\RequirePackage{graphicx}
\RequirePackage[brazilian]{babel}

\newcommand{\siicuspabstracts@logofile}{siicusp-abstracts-logo.png}

%</package>
% \fi
%
% \section{Introdução}
%
% O pacote \texttt{siicusp-abstracts} fornece uma configuração de \LaTeX{} para
% elaboração de resumos científicos de acordo com as diretrizes de formatação do
% \idxtext{SIICUSP} (Simpósio Internacional de Iniciação Científica e
% Tecnológica da USP).
%
% O pacote configura automaticamente aspectos como margens, tipografia,
% cabeçalho, informações do título e referências bibliográficas, permitindo que
% o autor concentre seus esforços no conteúdo do trabalho.
%
% Este é um projeto independente e não oficial. Ele não possui qualquer vínculo
% da comissão organizadora do SIICUSP ou da Universidade de São Paulo (USP).
% 
% Antes da submissão de um resumo, recomenda-se consultar o edital e as
% instruções oficiais mais recentes, pois as exigências de formatação podem ser
% alteradas ao longo do tempo.
%
% \paragraph{Importante}
%
% Este pacote procura reproduzir o modelo de formatação publicado pelo
% SIICUSP, porém não inclui materiais protegidos por direitos autorais,
% como o logotipo do evento.
% Cabe ao usuário obter esses arquivos a partir do edital ou dos materiais
% oficiais disponibilizados pela organização e verificar se houve alterações na
% identidade visual ou nas normas de formatação da edição em que o resumo será
% submetido.
%
% \subsection{Arquivos necessários}
%
% O pacote não distribui o logotipo oficial do SIICUSP.
%
% O usuário deve obter o modelo oficial disponibilizado pela organização do
% evento e copiar o arquivo de imagem do logotipo para o mesmo diretório do
% documento ou para um diretório acessível pelo \LaTeX.
%
% Por padrão, o pacote procura pelo arquivo
% \texttt{siicusp-abstracts-logo.png}.
%
% Como a identidade visual do SIICUSP pode ser alterada entre diferentes
% edições do simpósio, recomenda-se sempre utilizar o logotipo correspondente
% ao edital vigente.
%
% \begin{macro}{geometry (package)}
%
% Configura automaticamente a geometria da página conforme o modelo de resumo
% disponibilizado pelo \idxtext{SIICUSP}. São definidos o tamanho do papel, as
% margens e a área reservada ao cabeçalho contendo o logotipo do evento.
%
%    \begin{macrocode}
\RequirePackage{geometry}

\geometry{
    a4paper,
    inner=2.6cm,
    outer=2.6cm,
    top=0cm,
    bottom=8.4cm,
    bindingoffset=0cm
}
%    \end{macrocode}
% \end{macro}
%
% Define o espaçamento de \SI{0.8}{cm} entre as colunas, conforme as orientações
% do edital. Para produzir o resumo em duas colunas é necessário utilizar a
% opção \texttt{twocolumn} na classe do documento.
%
%    \begin{macrocode}
\setlength{\columnsep}{0.8cm}
%    \end{macrocode}
%
% \begin{macro}{headings}
%
% Configura o estilo da página para incluir o logotipo do SIICUSP no
% cabeçalho e remove a numeração das páginas, reproduzindo o modelo oficial do
% resumo.
%
% O logotipo é carregado a partir do arquivo
% \texttt{siicusp-abstracts-logo.png}. Esse arquivo não faz parte deste pacote
% e deve ser fornecido pelo usuário, utilizando a versão correspondente ao
% edital vigente do SIICUSP.
%
% \changes{v1.1.2}{2026/08/17}{
%   Corrige a composição do cabeçalho para evitar \texttt{Underfull hbox}.
% }
%
%    \begin{macrocode}
\setlength{\headheight}{4.6cm}
\setlength{\headsep}{1.4cm}

\def\ps@headings{%
    \def\@oddhead{%
        \makebox[\textwidth][l]{%
            \raisebox{-0.68cm}{%
                % O usuário deve fornecer este arquivo.
                \IfFileExists{\siicuspabstracts@logofile}{%
                    \includegraphics[height=3.56cm]{\siicuspabstracts@logofile}%
                }{%
                    \PackageError
                        {siicusp-abstracts}
                        {File '\siicuspabstracts@logofile' not found}
                        {Download the official SIICUSP logo corresponding to\MessageBreak
                        the current call for papers and place it in the document\MessageBreak
                        directory.}%
                }%
            }%
        }%
    }
    \let\@evenhead\@oddhead
    \def\@oddfoot{}%
    \let\@evenfoot\@oddfoot
}
%    \end{macrocode}
% \end{macro}
%
% \iffalse
%<*package>
\pagestyle{headings}
%</package>
% \fi
%
% \section{Tipografia}
%
% \begin{macro}{\section}
% \begin{macro}{\subsection}
%
% Configura a tipografia exigida pelo modelo do SIICUSP.
%
% Redefine os tamanhos de fonte utilizados no documento, incluindo o
% texto principal e os títulos de seção.
%
%    \begin{macrocode}
% 15.6pt = 13pt * 1.2
\newcommand{\siicuspabstracts@thirteenpt}{%
    \fontsize{13pt}{15.6pt}\selectfont%
}

% 12pt = 10pt * 1.2
\newcommand{\siicuspabstracts@tenpt}{%
    \fontsize{10pt}{12pt}\selectfont%
}

% 10.8pt = 9pt * 1.2
\newcommand{\siicuspabstracts@ninept}{%
    \fontsize{9pt}{10.8pt}\selectfont%
}
%    \end{macrocode}
%
% Quando compilado com Xe\LaTeX{} ou Lua\LaTeX{}, utiliza a fonte Arial
% instalada no sistema. Em pdf\LaTeX{}, utiliza uma fonte sans-serif compatível
% como alternativa.
%
%    \begin{macrocode}
\RequirePackage{iftex}

\ifPDFTeX
    \RequirePackage[T1]{fontenc}
    \RequirePackage[utf8]{inputenc}
    \RequirePackage{lmodern} % ou helvet, newtxtext, etc.

    \renewcommand{\familydefault}{\sfdefault}
\else
    \RequirePackage{fontspec}

    \setmainfont{Arial}
    \setsansfont{Arial}
    \renewcommand{\familydefault}{\sfdefault}

    \RequirePackage{unicode-math}

    \setmathfont{Latin Modern Math}
\fi

\renewcommand{\normalsize}{%
    \@setfontsize\normalsize{10pt}{12pt}%
}

\renewcommand\section{%
    \@startsection{section}{1}%
        {\z@ }%
        {-5.0ex\@plus -1ex\@minus -.2ex}%
        {1.25ex\@plus .2ex}%
        {\centering\normalfont\siicuspabstracts@thirteenpt\bfseries}%
}

\renewcommand\subsection{%
    \@startsection{subsection}{2}
        {\z@ }%
        {-3.25ex\@plus -1ex\@minus -.2ex}%
        {1.0ex\@plus .2ex}%
        {\centering\normalfont\siicuspabstracts@thirteenpt\bfseries}%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@makecaption}
%
% Configura as legendas de figuras e tabelas conforme o modelo do SIICUSP.
%
% As legendas utilizam fonte de \SI{9}{pt}, são centralizadas e não utilizam
% negrito ou itálico. Para legendas com largura superior à coluna, o
% comportamento padrão do \LaTeX{} é preservado, permitindo quebra automática
% de linhas.
%
%    \begin{macrocode}
\long\def\@makecaption#1#2{%
    \vskip\abovecaptionskip
    \begingroup
        \siicuspabstracts@ninept
        \sbox\@tempboxa{#1: #2}%
        \ifdim\wd\@tempboxa>\hsize
            #1: #2\par
        \else
            \global\@minipagefalse
            \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
        \fi
    \endgroup
    \vskip\belowcaptionskip
}
%    \end{macrocode}
% \end{macro}
%
% \section{Informações do título}
%
% O pacote fornece comandos para definir as informações apresentadas no
% cabeçalho do resumo, incluindo autores, colaboradores, orientador,
% instituição e endereço de e-mail.
%
% \DescribeMacro{\title}
% Define o título do trabalho. O pacote utiliza a informação fornecida por
% \cs{title} para produzir o cabeçalho conforme o modelo do SIICUSP.
%
% \DescribeMacro{\author}
% Define o(s) autor(es) do trabalho. O conteúdo é utilizado pelo comando
% \cs{maketitle} sem alterações na sintaxe da classe do documento.
%
% \DescribeMacro{\collaborators}
% Define os colaboradores do trabalho. O regulamento do SIICUSP permite até
% três colaboradores que tenham participado do desenvolvimento do projeto.
%
%    \begin{macrocode}
\newcommand*{\collaborators}[1]{\gdef\@collaborators{#1}}
%    \end{macrocode}
%
% \DescribeMacro{\advisor}
% Define o nome do orientador do trabalho.
%
%    \begin{macrocode}
\newcommand*{\advisor}[1]{\gdef\@advisor{#1}}
%    \end{macrocode}
%
% \DescribeMacro{\institution}
% Define a unidade, instituto ou faculdade e a universidade às quais o trabalho
% está vinculado.
%
%    \begin{macrocode}
\newcommand*{\institution}[1]{\gdef\@institution{#1}}
%    \end{macrocode}
%
% \DescribeMacro{\emailauthor}
% Define o endereço de e-mail do primeiro autor.
%
%    \begin{macrocode}
\newcommand*{\emailauthor}[1]{\gdef\@emailauthor{#1}}
%    \end{macrocode}
%
% \DescribeMacro{\maketitle}
% Produz o bloco de identificação do resumo conforme o modelo do SIICUSP,
% utilizando as informações definidas por \cs{title}, \cs{author},
% \cs{collaborators}, \cs{advisor}, \cs{institution} e
% \cs{emailauthor}.
%
%    \begin{macrocode}
\renewcommand{\@maketitle}{%
\newpage%
\renewcommand{\baselinestretch}{1.75}\selectfont%
\begin{center}
    \let\footnote\thanks%
    {\siicuspabstracts@thirteenpt\bfseries\MakeUppercase{\@title}\par}
    {\normalfont\siicuspabstracts@thirteenpt\bfseries\lineskip .5em
    \begin{tabular}[t]{c}%
        \@author
    \end{tabular}\par}
    \ifdefined\@collaborators
        {\normalfont\siicuspabstracts@thirteenpt\bfseries\@collaborators\par}
    \fi
    {\normalfont\siicuspabstracts@thirteenpt\bfseries\@advisor\par}
    {\normalfont\siicuspabstracts@thirteenpt\@institution\par}
    {\normalfont\siicuspabstracts@tenpt\@emailauthor\par}
    \vspace{0.3em}
\end{center}
\par
\vspace{2em}
}
%    \end{macrocode}
%
% \begin{macro}{\captionsbrazilian}
%
% Ajusta os textos gerados automaticamente pelo \LaTeX{} para corresponder
% à nomenclatura utilizada pelo modelo do SIICUSP.
%
%    \begin{macrocode}
\addto\captionsbrazilian{%
    \renewcommand{\refname}{Referências bibliográficas}
}
%    \end{macrocode}
% \end{macro}
%
% \section{Exemplo}
%
% Um documento mínimo utilizando o pacote:
%
% \begin{verbatim}
% \documentclass[twocolumn]{article}
% \usepackage{siicusp-abstracts}
%
% \title{TÍTULO}
% \author{Autor(es) - Estudante(s) de Graduação}
% \advisor{Orientador(a)}
% \institution{Faculdade/Universidade}
% \emailauthor{E-mail do primeiro autor}
%
% \begin{document}
% \maketitle\thispagestyle{headings}
%
% Texto do resumo...
%
% \end{document}
% \end{verbatim}
%
% \printindex
%
% \Finale