texlive[68960] Master/texmf-dist: ufrgscca (24nov23)

commits+karl at tug.org commits+karl at tug.org
Fri Nov 24 22:13:10 CET 2023


Revision: 68960
          https://tug.org/svn/texlive?view=revision&revision=68960
Author:   karl
Date:     2023-11-24 22:13:10 +0100 (Fri, 24 Nov 2023)
Log Message:
-----------
ufrgscca (24nov23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md
    trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf
    trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
    trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex
    trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex
    trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def

Removed Paths:
-------------
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-graph.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-tab.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-base.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-coord.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-core.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-forms.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsTR.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsintern.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-gen.sty
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-base.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-coord.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-core.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-forms.def

Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md	2023-11-24 21:13:10 UTC (rev 68960)
@@ -73,15 +73,8 @@
     - cover pages macros
 * ufrgscca-lists.sty
     - New float environments (for code listing, for instance)
-* ufrgscca-gen.sty
-    - a switch/case macro construct and
-      'macro factory', for instance to create commands used in the .def files.
 * ufrgscca-forms.sty
     - forms creation macros (course specific)
-* ufrgscca-formsTR.sty
-    - forms creation macros (course specific, include by ufrgs-forms)
-* ufrgscca-formsintern.sty
-    - forms creation macros (course specific, include by ufrgs-forms)
 * ufrgscca-coord.sty
     - student work coordenation related macros (course specific)
 * ufrgscca-ppc.sty
@@ -88,28 +81,19 @@
     - ppc specific macros (ppc stands for Course Pedagogic Project)
 * ufrgscca-curr.sty
     - curricula specific macros (as a set of semesters and class dependency lists)
-* ufrgscca-curr-tab.sty
-    - curricula tabular macros (to display the curricula as tables)
-* ufrgscca-curr-graph.sty
-    - curricula graph macros (to display the curricula as a dependency graph)
 
-* ufrgscca-en-base.def
+* ufrgscca-base-en.def
     - locale, English, base def's (for babel)
-* ufrgscca-en-core.def
-    - locale, English, for -core.sty
-* ufrgscca-en-forms.def
-    - locale, English, for -forms.sty
-* ufrgscca-en-coord.def
-    - locale, English, for -coord.sty
-
-* ufrgscca-ptBR-base.def
+* ufrgscca-base-ptBR.def
     - locale, Portuguese, base def's (for babel)
-* ufrgscca-ptBR-core.def
-    - locale, Portuguese, for -core.sty
-* ufrgscca-ptBR-forms.def
-    - locale, Portuguese, for -forms.sty
-* ufrgscca-ptBR-coord.def
-    - locale, Portuguese, for -coord.sty
+* ufrgscca-terms-ptBR.tex
+    - locale, many defaults
+* ufrgscca-terms-en.tex
+    - locale, many defaults
+* ufrgscca-cover-ptBR.tex
+    - locale, defaults, for -cover.sty
+* ufrgscca-forms.tex
+    - locale, defaults, for -forms.sty
 
 * README.md  (this file)
     - quick introduction
@@ -121,8 +105,15 @@
 
 -------------
 
+
 ## Changelog
-* Version 1.12 (this)
+* Version 2.0 (this)
+    - fully rewritten as Expl3 class/packages
+    - documentation
+    - (a few) commands changed (mostly auxiliary/background ones)
+    - some class options added and removed (see documentation)
+
+* Version 1.12
     - forms adjustments
     - documentation typo
     - expl3 initial preparation

Added: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex	2023-11-24 21:13:10 UTC (rev 68960)
@@ -0,0 +1,322 @@
+%%%==============================================================================
+%% Copyright 2022-23 by Alceu Frigeri
+%%
+%% This work may be distributed and/or modified under the conditions of
+%%
+%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+%%   version 1.3c (or later), and/or
+%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
+%%   version 3 (or later)
+%%
+%% This work has the LPPL maintenance status *maintained*.
+%%
+%% The Current Maintainer of this work is Alceu Frigeri
+%%
+%% This is version {2.0} {2023/11/23}
+%%
+%% The list of files that compose this work can be found in the README.md file at
+%% https://ctan.org/pkg/ufrgscca
+%%
+%%%==============================================================================
+%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
+%% EE    stands for "Engineering School"
+%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
+%%%==============================================================================
+
+
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+\SetTerms{%
+  advisor.descpage       = %
+  {%
+        \noindent%
+        \studentCoadvCase{%
+          \UseTerm{advisors}:\\
+          \DataFields{student.advisor}{name}\\[1ex]
+          \DataFields{student.coadvisor}{name}
+        }{%
+          \UseTerm{advisor}:\\
+          \DataFields{student.advisor}{name}
+        }
+  } ,
+  advisor.approvalpage   = %
+  {%
+        \noindent%
+          \studentCoadvCase{%
+            \UseTerm{advisors}:\\
+            \DataFields{student.advisor}{name}, \DataFields{student.advisor}{institution}\\
+            \DataFields{student.advisor}{title}\\[1ex]
+            \DataFields{student.coadvisor}{name}, \DataFields{student.coadvisor}{institution}\\
+            \DataFields{student.coadvisor}{title}
+          }{
+            \UseTerm{advisor}:\\
+            \DataFields{student.advisor}{name}, \DataFields{student.advisor}{institution}\\
+            \DataFields{student.advisor}{title}
+          }
+  } ,
+  internship.tutorapproval  =
+  {         ~\\
+            \noindent\UseTerm{tutor}:\\
+            \DataFields{student.tutor}{name}, \DataFields{student.tutor}{institution}\\
+            \DataFields{student.tutor}{title}\\[1ex]
+            
+            \noindent\UseTerm{supervisor}:\\
+            \DataFields{student.supervisor}{name}, \DataFields{student.supervisor}{institution}\\
+            \DataFields{student.supervisor}{office}\\
+            \DataFields{student.internship}{company}\\
+            
+            
+  } ,
+  cover.students        = %
+  {%
+        \eDataSet{student}
+        \centering{\MakeUppercase{\eDataFields{name}} - \eDataFields{ID}}  
+  } ,
+  cover.topbase            = %
+  {%
+        \centering
+          \MakeUppercase{\UseHeading{university}}\\
+          \MakeUppercase{\UseHeading{unit}}\\
+          \MakeUppercase{\UseHeading{course}}
+  } ,
+  cover.title             = %
+  {%
+          \eDataSet{student}
+          \centering\textbf{\MakeUppercase{\eDataFields{worktitle}}}  
+  } ,
+  cover.bottom            = {%
+          \centering \UseConst{publ.city}\\ \UseConst{publ.date}\par
+  } ,
+  ppc.top            = %
+  {%
+        \centering
+          \MakeUppercase{\UseHeading{university}}\\
+          \MakeUppercase{\UseHeading{unit}}\\
+          \MakeUppercase{\UseHeading{ppc.comgrad}}\\
+          \MakeUppercase{\UseHeading{ppc.nde}}\\
+          \MakeUppercase{\UseHeading{ppc.course}}\\
+
+  } ,
+  report.top            = %
+  {%
+        \centering
+          \MakeUppercase{\UseHeading{university}}\\
+          \MakeUppercase{\UseHeading{unit}}\\
+          \MakeUppercase{\UseHeading{department}}\\
+          \MakeUppercase{\UseHeading{class.code}~ -~ \UseHeading{class.name}}\\
+  } ,
+}
+
+\SetTerms{
+  cover.students   =
+  {
+    \studentiterate
+     {
+       \eDataSet{student}
+       \centering{\MakeUppercase{\eDataFields{name}}~ -~ \eDataFields{ID}}\\     
+     }
+  }  
+}
+
+
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+%%%
+%%%  TCC I
+%%%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+\SetCoverFields{tccI}{clist}{cover,desc,approval}
+\SetCoverFields{tccI}{top}{  \UseTerm{cover.topbase} }
+\SetCoverFields{tccI}{students}{ \UseTerm{cover.students} }
+\SetCoverFields{tccI}{title}{ \UseTerm{cover.title} }
+\SetCoverFields{tccI}{bottom}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
+
+\SetCoverFields{tccI}{text-descpage}{ \UseTerm{tccI.text-descpage} }
+
+\SetCoverFields{tccI}{advisor-descpage}{ \UseTerm{advisor.descpage} }
+
+\SetCoverFields{tccI}{bottom-descpage}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
+
+\SetCoverFields{tccI}{text-approvalpage}{ \UseTerm{tccI.text-approvalpage} }
+\SetCoverFields{tccI}{advisor-approvalpage}{ \UseTerm{advisor.approvalpage} }
+
+\SetCoverFields{tccI}{bottom-approvalpage}{ \UseTerm{cover.bottom} }
+
+
+\SetCoverFields{tccI}{board}{
+\noindent \UseTerm{board}:\\
+\indent \DataFields{student.reviewer[2]}{name}, \DataFields{student.reviewer[2]}{institution}\\
+\indent \DataFields{student.reviewer[2]}{title}\\
+\\
+\indent \DataFields{student.reviewer[3]}{name}, \DataFields{student.reviewer[2]}{institution}\\
+\indent \DataFields{student.reviewer[3]}{title}\\
+}
+
+
+\SetCoverFields{tccI}{coord}{
+\noindent\hrulefill\\
+\ActivityCoord[course]{name}\\
+\ActivityCoord[course]{title}\\
+\Activity[course]{name}
+}
+
+
+
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+%%%
+%%%  TCC II
+%%%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+\SetCoverFields{tccII}{clist}{cover,desc,approval}
+\SetCoverFields{tccII}{top}{  \UseTerm{cover.topbase} }
+\SetCoverFields{tccII}{students}{  \UseTerm{cover.students} }
+\SetCoverFields{tccII}{title}{  \UseTerm{cover.title} }
+\SetCoverFields{tccII}{bottom}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
+
+\SetCoverFields{tccII}{text-descpage}{ \UseTerm{tccII.text-descpage} }
+
+\SetCoverFields{tccII}{advisor-descpage}{ \UseTerm{advisor.descpage} }
+
+\SetCoverFields{tccII}{bottom-descpage}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
+
+\SetCoverFields{tccII}{text-approvalpage}{ \UseTerm{tccII.text-approvalpage} }
+\SetCoverFields{tccII}{advisor-approvalpage}{  \UseTerm{advisor.approvalpage} }
+
+\SetCoverFields{tccII}{bottom-approvalpage}{ \UseTerm{cover.bottom} }
+
+
+\SetCoverFields{tccII}{board}{
+\noindent \UseTerm{board}:\\
+\indent \DataFields{student.reviewer[1]}{name}, \DataFields{student.reviewer[1]}{institution}\\
+\indent \DataFields{student.reviewer[1]}{title}\\[-1ex]
+
+\indent \DataFields{student.reviewer[2]}{name}, \DataFields{student.reviewer[2]}{institution}\\
+\indent \DataFields{student.reviewer[2]}{title}\\[-1ex]
+
+\indent \DataFields{student.reviewer[3]}{name}, \DataFields{student.reviewer[2]}{institution}\\
+\indent \DataFields{student.reviewer[3]}{title}\\
+}
+
+
+\SetCoverFields{tccII}{coord}{
+\noindent\hrulefill\\
+\ActivityCoord[course]{name}\\
+\ActivityCoord[course]{title}\\
+\Activity[course]{name}
+}
+
+
+
+
+\SetCoverFields{ppc}{clist}{cover}
+\SetCoverFields{ppc}{top}{  \UseTerm{ppc.top} }
+\SetCoverFields{ppc}{students}{  }
+\SetCoverFields{ppc}{title}{ \centering PROJETO~ PEDAGÓGICO~ DO\\
+CURSO~ EM~ ENGENHARIA~ DE\\
+CONTROLE~ E~ AUTOMAÇÃO }
+\SetCoverFields{ppc}{bottom}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
+
+
+
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+%%%
+%%%  Internship
+%%%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+\SetCoverFields{internship}{clist}{cover,approval}
+\SetCoverFields{internship}{top}{  \UseTerm{cover.topbase} }
+\SetCoverFields{internship}{students}{ \UseTerm{cover.students} }
+\SetCoverFields{internship}{title}{ \centering\textbf{ RELATÓRIO DE ESTÁGIO SUPERVISIONADO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO}}
+\SetCoverFields{internship}{bottom}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
+
+\SetCoverFields{internship}{text-approvalpage}{
+    Este Relatório foi julgado adequado para a obtenção do conceito final na Atividade de Estágio Supervisionado Obrigatório em Eng. de Controle
+    e Automação e aprovado em sua forma final pel\DataFields{student.tutor}{article} Tutor\DataFields{student.tutor}{narticle}, Supervisor\DataFields{student.supervisor}{narticle} e Coordenador\DataFields{activity[internship].coord}{narticle} da Atividade.}
+
+\SetCoverFields{internship}{advisor-approvalpage}{ \UseTerm{internship.tutorapproval} }
+
+\SetCoverFields{internship}{bottom-approvalpage}{ \centering \UseConst{publ.city}\\\UseConst{publ.month}~ \UseConst{publ.year}\par }
+
+
+\SetCoverFields{internship}{board}{}
+
+
+\SetCoverFields{internship}{coord}{
+\noindent\hrulefill\\
+\ActivityCoord[internship]{name}\\
+\ActivityCoord[internship]{title}
+}
+
+
+
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+%%%
+%%%  Nonrequired / Internship-optional
+%%%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+\SetCoverFields{internship-opt}{clist}{cover,approval}
+\SetCoverFields{internship-opt}{top}{  \UseTerm{cover.topbase} }
+\SetCoverFields{internship-opt}{students}{ \UseTerm{cover.students} }
+\SetCoverFields{internship-opt}{title}{ \centering\textbf{ RELATÓRIO DE ESTÁGIO SUPERVISIONADO NÃO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO}}
+\SetCoverFields{internship-opt}{bottom}{\centering \UseConst{publ.city}\\ \UseConst{publ.year}\par}
+
+\SetCoverFields{internship-opt}{text-approvalpage}{
+    Este Relatório foi julgado adequado para uma Atividade de Estágio Supervisionado Não Obrigatório em Eng. de Controle
+    e Automação e aprovado em sua forma final pel\DataFields{student.tutor}{article} Tutor\DataFields{student.tutor}{narticle} e Supervisor\DataFields{student.supervisor}{narticle}.}
+
+\SetCoverFields{internship-opt}{advisor-approvalpage}{ \UseTerm{internship.tutorapproval} }
+
+\SetCoverFields{internship-opt}{bottom-approvalpage}{ \centering \UseConst{publ.city}\\\UseConst{publ.month}~ \UseConst{publ.year}\par }
+
+
+\SetCoverFields{internship-opt}{board}{}
+
+
+\SetCoverFields{internship-opt}{coord}{}
+
+
+
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+%%%
+%%%  class report
+%%%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+\SetCoverFields{class-report}{clist}{cover}
+\SetCoverFields{class-report}{top}{  \UseTerm{report.top} }
+\SetCoverFields{class-report}{students}{ \UseTerm{cover.students} }
+\SetCoverFields{class-report}{title}{   \UseTerm{cover.title} }
+\SetCoverFields{class-report}{bottom}{\centering \UseConst{publ.city}\\\UseConst{publ.month}~ \UseConst{publ.year}\par}
+
+\SetCoverFields{class-report}{text-approvalpage}{}
+
+\SetCoverFields{class-report}{advisor-approvalpage}{}
+
+\SetCoverFields{class-report}{bottom-approvalpage}{}
+
+
+\SetCoverFields{class-report}{board}{}
+
+
+\SetCoverFields{class-report}{coord}{}
+
+
+
+
+
+


Property changes on: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex	2023-11-24 21:13:10 UTC (rev 68960)
@@ -0,0 +1,1277 @@
+%%%==============================================================================
+%% Copyright 2022-23 by Alceu Frigeri
+%%
+%% This work may be distributed and/or modified under the conditions of
+%%
+%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+%%   version 1.3c (or later), and/or
+%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
+%%   version 3 (or later)
+%%
+%% This work has the LPPL maintenance status *maintained*.
+%%
+%% The Current Maintainer of this work is Alceu Frigeri
+%%
+%% This is version {2.0} {2023/11/23}
+%%
+%% The list of files that compose this work can be found in the README.md file at
+%% https://ctan.org/pkg/ufrgscca
+%%
+%%%==============================================================================
+%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
+%% EE    stands for "Engineering School"
+%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
+%%%==============================================================================
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% Internship
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  req form - Internship
+%%%%%%%%%%%%%%%
+\SetForm{internshiprequest}{heading}{\UseTerm{title.internship}}
+\SetForm{internshiprequest}{title}{\UseTerm{title.requestform}}
+
+%%%
+\SetForm{internshiprequest}{opening}{
+
+  \UseTerm{opening.requestform}}
+
+%%%
+\SetForm{internshiprequest}{body}{
+  \UseTerm{desc.requestform} \Activity[internship]{name}.
+    \vfill%
+   \UseLabel{student.email}: {\bf \DataFields{student}{email}} %
+\vspace{2mm}
+
+\UseLabel{tutor}: \textbf{\DataFields{student.tutor}{name}}%
+
+\UseLabel{tutor.email}: {\bf \DataFields{student.tutor}{email}}%
+\hfill \UseLabel{phone}: {\bf \DataFields{student.tutor}{phone}}%
+\vspace{2mm}
+
+
+Empresa: {\bf \DataFields{student.internship}{company}}%
+
+Área de Atividade: {\bf \DataFields{student.internship}{field}}%
+\vspace{2mm}
+
+\UseTerm{desc.supervisor}
+
+Cargo: {\bf \DataFields{student.supervisor}{office}}\hfill Email: {\bf \DataFields{student.supervisor}{email}} \hfill Fone: {\bf \DataFields{student.supervisor}{phone}}   %
+\vspace{2mm}
+
+Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de Término: {\bf \DataFields{student.internship}{end}}\hfill Duração: {\bf \DataFields{student.internship}{length}}
+
+}
+
+%%%
+\SetForm{internshiprequest}{closing}{
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.supervisor}}}\hfill%
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.tutor}}}%
+
+    \hfill%
+    \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.student}}}
+}
+
+
+%%%%%%%%%%%%%%%
+%%  supervisor`s form - Internship
+%%%%%%%%%%%%%%%
+\SetForm{internshipsupervisorform}{heading}{\UseTerm{title.internship}}
+\SetForm{internshipsupervisorform}{title}{\UseTerm{title.internsupervisorform}}
+\SetForm{internshipsupervisorform}{footnote}{\UseTerm{footnote.supervisorsform}}
+
+%%%
+\SetForm{internshipsupervisorform}{opening}{
+    \UseTerm{desc.student}\\%
+    \noindent\UseTerm{desc.supervisor}\\%
+    \UseTerm{desc.internshipperiod}
+}
+
+%%%
+\SetForm{internshipsupervisorform}{body}{
+\begin{itemize}[tcc,nosep]
+ \item Grupo I - Aspectos Profissionais
+   \begin{enumerate}[tcc,nosep]
+     \item \textbf{Qualidade do Trabalho}:\emptybox\\ {\footnotesize considerar a qualidade do trabalho tendo em vista o que seria desejável}
+     \item \textbf{Engenhosidade}:\emptybox\\ {\footnotesize capacidade de sugerir, projetar ou executar modificações ou inovações.}
+     \item \textbf{Conhecimentos}:\emptybox\\ {\footnotesize conhecimento demonstrado no desenvolvimento das atividades programadas.}
+     \item \textbf{Cumprimentos das Tarefas}:\emptybox\\ {\footnotesize     considerar o volume de atividades cumpridas dentro de um padrão razoável.}
+     \item \textbf{Iniciativa}:\emptybox\\ {\footnotesize iniciativa para desenvolver suas atividades sem dependências de outros.}
+   \end{enumerate}
+ \item Grupo II - Aspectos Humanos
+    \begin{enumerate}[tcc,nosep]
+     \item \textbf{Assiduidade}:\emptybox\\ {\footnotesize cumprimento do horário do estágio e ausência de falhas}
+\item \textbf{Disciplina}:\emptybox\\ {\footnotesize observância das normas e regulamentos internos da empresa.}
+\item \textbf{Sociabilidade}:\emptybox\\ {\footnotesize facilidade de se integrar com colegas e ambiente de trabalho.}
+\item \textbf{Cooperação}:\emptybox\\ {\footnotesize     disposição para cooperar com colegas e para atender a atividades..}
+\item \textbf{Senso de Responsabilidade}:\emptybox\\ {\footnotesize zelo pelo material, equipamentos e bens da empresa.}
+    \end{enumerate}
+\end{itemize}
+
+    \vfill%
+
+    Considerações Complementares: \BlankLines{5}
+}
+
+%%%
+\SetForm{internshipsupervisorform}{closing}{
+\hfill\parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.supervisor}}}
+}
+
+%%%%%%%%%%%%%%%
+%%  tutor`s form - Internship
+%%%%%%%%%%%%%%%
+\SetForm{internshiptutorform}{heading}{\UseTerm{title.internship}}
+\SetForm{internshiptutorform}{title}{\UseTerm{title.interntutorform}}
+
+%%%
+\SetForm{internshiptutorform}{opening}{
+    \UseTerm{desc.student}\\%
+    \UseLabel{tutor}: \textbf{\DataFields{student.tutor}{name}}\\%
+    \UseTerm{desc.internshipperiod}
+}
+
+%%%
+\SetForm{internshiptutorform}{body}{
+    Avaliação d\DataFields{student.tutor}{article} Prof\DataFields{student.tutor}{narticle}. Tutor\DataFields{student.tutor}{narticle}:\emptybox
+
+    \vfill%
+
+    Considerações d\DataFields{student.tutor}{article} Prof\DataFields{student.tutor}{narticle}. Tutor\DataFields{student.tutor}{narticle} sobre o Estágio: 
+    
+    \BlankLines{5}%
+
+    \vfill%
+
+    \hfill\parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.tutor}}}
+
+ %   \hline
+    \vfill%
+
+    Avaliação d\ActivityCoord[internship]{article} Prof\ActivityCoord[internship]{narticle}. Coordenador\ActivityCoord[internship]{narticle}:\emptybox%
+    \vfill
+
+    Considerações d\ActivityCoord[internship]{article} Prof\ActivityCoord[internship]{narticle}. Coordenador\ActivityCoord[internship]{narticle} sobre o Estágio:
+    
+     \BlankLines{5}%
+    \vfill%
+
+    \hfill\parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.internshipcoord}}}
+}
+
+%%%
+\SetForm{internshiptutorform}{closing}{}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% TCCs - Calendar - EVENTS
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\SetActivityNewEvent{}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% TCCs - Calendar
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\SetForm{calendar-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{calendar-I}{title}{\UseTerm{title.calendar}}
+\SetForm{calendar-I}{opening}{}
+
+%%%
+  \ExplSyntaxOn
+  \bool_new:N \l__ufrgscca_tmp_bool
+\SetForm{calendar-I}{body}{%
+  \starray_set_iter_from_hash:nn {activity}{tccI}
+  \starray_reset_iter:n {activity.calendar}
+  \bool_set_true:N \l__ufrgscca_tmp_bool
+  { \footnotesize%
+    \begin{center}
+%
+      \resizebox{\textwidth}{!}{%%
+        \begin{tabular}{ccp{11.5cm}}%
+        Data/Período & Semana~ Letiva & Evento\\\hline
+        \bool_do_while:Nn \l__ufrgscca_tmp_bool
+          {
+            \textbf{\starray_get_prop:nn {activity.calendar}{date}} & \starray_get_prop:nn {activity.calendar}{week} & \starray_get_prop:nn {activity.calendar}{event}\\\hline
+            \starray_next_iter:nF {activity.calendar}{\bool_set_false:N \l__ufrgscca_tmp_bool}
+          }
+        \end{tabular}}%
+%
+    \end{center}%
+    \scriptsize \UseTerm{notes.calendarI}
+  }%
+}
+  \ExplSyntaxOff
+
+%%%
+\SetForm{calendar-I}{closing}{\vfill}%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+\SetForm{calendar-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{calendar-II}{title}{\UseTerm{title.calendar}}
+\SetForm{calendar-II}{opening}{}
+
+%%%
+  \ExplSyntaxOn
+%  \bool_new:N \l__ufrgscca_tmp_bool
+\SetForm{calendar-II}{body}{%
+  \starray_set_iter_from_hash:nn {activity}{tccII}
+  \starray_reset_iter:n {activity.calendar}
+  \bool_set_true:N \l__ufrgscca_tmp_bool
+  { \footnotesize%
+    \begin{center}
+%
+      \resizebox{\textwidth}{!}{%%
+        \begin{tabular}{ccp{11.5cm}}%
+        Data/Período & Semana~ Letiva & Evento\\\hline
+        \bool_do_while:Nn \l__ufrgscca_tmp_bool
+          {
+            \textbf{\starray_get_prop:nn {activity.calendar}{date}} & \starray_get_prop:nn {activity.calendar}{week} & \starray_get_prop:nn {activity.calendar}{event}\\\hline
+            \starray_next_iter:nTF {activity.calendar}{}{\bool_set_false:N \l__ufrgscca_tmp_bool}
+          }
+        \end{tabular}}%
+%
+    \end{center}%
+    \scriptsize \UseTerm{notes.calendarII}
+  }%
+}
+  \ExplSyntaxOff
+
+%%%
+\SetForm{calendar-II}{closing}{\vfill}%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% TCC - I
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  req form - I
+%%%%%%%%%%%%%%%
+\SetForm{request-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{request-I}{title}{\UseTerm{title.requestform}}
+\SetForm{request-I}{opening}{\UseTerm{opening.requestform}}
+
+%%%
+\SetForm{request-I}{body}{%
+  \UseTerm{desc.requestform} \Activity[tccI]{name}.
+  \vfill%
+
+  \UseLabel{worktitle.temp}: \DataFields{student}{worktitle}%\@title %
+
+  \UseLabel{student.email}: {\bf \DataFields{student}{email}} %
+
+  \UseLabel{advisor}: \DataFields{student.advisor}{name}%
+
+  \UseLabel{advisor.email}: {\bf \DataFields{student.advisor}{email}}%
+  \hfill \UseLabel{phone}: {\bf \DataFields{student.advisor}{phone}}%
+
+  {\bf Resumo}:\footnote[1]{\UseTerm{footnote.requestform}}%
+
+  \vfill%
+
+  \DataFields{student}{brief}
+}
+
+%%%
+\SetForm{request-I}{closing}{%
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.student}}}\hfill%
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.advisor}}}%
+}%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  coadvisor - I
+%%%%%%%%%%%%%%%
+\SetForm{coadvisor-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{coadvisor-I}{title}{\UseTerm{title.coadvisorform}}
+\SetForm{coadvisor-I}{opening}{%
+
+  \UseTerm{opening.requestform}
+  \coadvisoremptyifnone
+}
+
+%%%
+\SetForm{coadvisor-I}{body}{%
+  \UseTerm{desc.coadvisorform}
+  \vfill%
+
+  \UseLabel{worktitle.temp}: \DataFields{student}{worktitle}%\@title %
+
+  \UseLabel{advisor}: \DataFields{student.advisor}{name}
+
+  \UseLabel{coadvisor}: \DataFields{student.coadvisor}{name}%
+
+  \UseLabel{coadvisor.email}: {\bf \DataFields{student.coadvisor}{email}}%
+  \hfill \UseLabel{phone}: {\bf \DataFields{student.coadvisor}{phone}}\\%
+
+  {\bf Justificativa}:%
+  \vfill
+
+ \DataFields{student.coadvisor}{reason}
+ 
+}
+
+%%%
+\SetForm{coadvisor-I}{closing}{%
+
+  \SignatureDate{\UseLabel{signature.student}}
+
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.advisor}}}\hfill%
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.coadvisor}}}%
+}%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  board approval - I
+%%%%%%%%%%%%%%%
+\SetForm{boardapproval-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{boardapproval-I}{title}{\UseTerm{title.boardapproval}}
+\SetForm{boardapproval-I}{opening}{\UseTerm{desc.studentwork.full}}
+
+%%%
+\SetForm{boardapproval-I}{body}{  \begin{center}
+    \UseLabel{board}
+  \end{center}%
+
+%%% TODO: That's do be done... convert it to starray!!!
+ 
+  \BoardDescSignature{Avaliador\DataFields{student.reviewer[2]}{narticle}}{student.reviewer[2]}
+
+  \BoardDescSignature{Avaliador\DataFields{student.reviewer[3]}{narticle}}{student.reviewer[3]}
+
+  \vfill%
+
+  Indicamos a nominata da Banca Examinadora acima relacionada.%
+}
+
+%%%
+\SetForm{boardapproval-I}{closing}{\hfill\parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.advisor}}}}
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  advisor's approval - I
+%%%%%%%%%%%%%%%
+\SetForm{advisorsapproval-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{advisorsapproval-I}{title}{\UseTerm{title.advisorsapproval-I}}
+\SetForm{advisorsapproval-I}{opening}{\UseTerm{desc.studentwork.full}}
+
+%%%
+\SetForm{advisorsapproval-I}{body}{%
+  {\bf Parecer d\DataFields{student.advisor}{article} Orientador\DataFields{student.advisor}{narticle}}\footnote{Preenchimento Obrigatório}
+
+  \vfill%
+
+
+  \DataFields{student.advisor}{assessment}
+}
+
+%%%
+\SetForm{advisorsapproval-I}{closing}{
+  \SignatureDate{\UseLabel{signature.advisor}}\vfill%
+  \SignatureDate{\UseLabel{signature.student}}%
+
+}%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  examiner's form - I
+%%%%%%%%%%%%%%%
+\SetForm{examinersform-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{examinersform-I}{title}{\UseTerm{title.reviewersform}}
+\SetForm{examinersform-I}{footnote}{\UseTerm{footnote.reviewersform}}
+\SetForm{examinersform-I}{opening}{%
+  \UseTerm{desc.studentwork}\\[2mm]
+  
+  \UseLabel{reviewer}: \textbf{\DataFields{student.reviewer}{name}}\\[-4mm]%
+  
+  {\scriptsize {\textsl{(favor retornar este diretamente à coordenação de TCC.)}}}
+  }
+
+%%%
+\SetForm{examinersform-I}{body}{%  
+   O trabalho submetido\footnotemark[2]:
+
+     \begin{enumerate}[tcc,nosep]
+     \item \emptybox\  \textbf{Enquadramento do Tema}. {\footnotesize(peso:2)}\\ {\footnotesize Quão bem o mesmo se enquadra no perfil de um formando em Eng. de Controle e Automação.}
+     \item \emptybox\ \textbf{Revisão Bibliográfica}. {\footnotesize(peso:2)}\\ {\footnotesize A revisão apresentada é adequada, suficiente, para o tema do trabalho?}
+     \item \emptybox\ \textbf{Abordagem/Plano de Trabalho Proposto}. {\footnotesize(peso:2)}\\ {\footnotesize Considerar se a abordagem, plano de trabalho proposto, é adequada e factivel.}
+     \item \emptybox\ \textbf{Redação}. {\footnotesize(peso:1)}\\ {\footnotesize     Considerar a qualidade do trabalho escrito apresentado.}
+     \item { O Trabalho Submetido}
+     \begin{itemize}[tcc,nosep]
+       \item[$\Box$] Está adequado, dispensando correções do texto.
+       \item[$\Box$] Está adequado, sendo necessário correções, conforme anotações anexas.
+       \item[$\Box$] Necessita ser revisto/re-escrito,\footnotemark[3] e: 
+       \begin{itemize}
+         \item[$\Box$] basta a revisão final do texto pelo orientador,
+         \item[$\Box$] revisarei o trabalho depois de corrigido.
+       \end{itemize}
+     \end{itemize} 
+   \end{enumerate}
+   
+Outras considerações, parecer (se necessário): \BlankLines{6}
+
+  \footnotetext[2]{Use a escala: \begin{enumerate*}\item[0.]Péssimo  \item[3.]Deficitário \item[6.]Bom \item[8.]Muito Bom \item[10.]Excelente \end{enumerate*}}%
+  \footnotetext[3]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}%
+}
+
+%%%
+\SetForm{examinersform-I}{closing}{%signature.reviewer
+  \SignatureDate{\UseLabel{signature.reviewer}}%
+}
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  rectify approval - I
+%%%%%%%%%%%%%%%
+\SetForm{rectifyapproval-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{rectifyapproval-I}{title}{\UseTerm{title.rectifyapproval}}
+\SetForm{rectifyapproval-I}{opening}{\UseTerm{desc.studentwork.full}}
+
+%%%
+\SetForm{rectifyapproval-I}{body}{  %
+  \SetTerms{temp.formrefname = {Formulário de Avaliação}}
+  \UseTerm{desc.rectifyapproval}
+
+  \vfill%
+
+  \ApprovalSignature[\UseLabel{advisor}]{\DataFields{student.advisor}{name}}
+
+}
+
+%%%
+\SetForm{rectifyapproval-I}{closing}{ 
+
+  \SetReviewer{2}
+  \ApprovalSignature{\DataFields{student.reviewer}{name}}\vfill
+
+  \SetReviewer{3}
+  \ApprovalSignature{\DataFields{student.reviewer}{name}}\vfill
+
+ }
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% TCC - II
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  req form - II
+%%%%%%%%%%%%%%%
+\SetForm{request-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{request-II}{title}{\UseTerm{title.requestform}}
+
+\SetForm{request-II}{opening}{
+
+\UseTerm{opening.requestform}}
+
+%%%
+\SetForm{request-II}{body}{
+  \UseTerm{desc.requestform} \Activity[tccII]{name}.
+  \vfill%
+
+  \UseLabel{worktitle.temp}: \DataFields{student}{worktitle}%\@title %
+
+  \UseLabel{student.email}: {\bf \DataFields{student}{email}} %
+
+  \UseLabel{advisor}: \DataFields{student.advisor}{name}%
+
+  \UseLabel{advisor.email}: {\bf \DataFields{student.advisor}{email}}%
+  \hfill \UseLabel{phone}: {\bf \DataFields{student.advisor}{phone}}%
+
+  \UseLabel{coadvisor}: \DataFields{student.coadvisor}{name}%
+
+  \UseLabel{coadvisor.email}: {\bf \DataFields{student.coadvisor}{email}}%
+  \hfill \UseLabel{phone}: {\bf \DataFields{student.coadvisor}{phone}}%
+
+
+  \vfill%
+  O Tema do Trabalho e Orientador (Coorientador) seguem sendo os mesmos de TCC I ?
+\begin{itemize}[tcc,noitemsep]
+ \item[$\Box$] SIM
+ \item[$\Box$] NÃO, neste caso \textbf{justifique} a mudança no espaço a seguir:
+ \end{itemize}
+  
+
+  \DataFields{student}{reason}
+
+}
+
+%%%
+\SetForm{request-II}{closing}{
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.student}}}\hfill%
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.advisor}}}%
+}
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%
+%%  coadvisor - II
+%%%%%%%%%%%%%%%
+\SetForm{coadvisor-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{coadvisor-II}{title}{\UseTerm{title.coadvisorform}}
+\SetForm{coadvisor-II}{opening}{%
+
+  \UseTerm{opening.requestform}
+  \coadvisoremptyifnone
+}
+
+%%%
+\SetForm{coadvisor-II}{body}{%
+  \UseTerm{desc.coadvisorform}
+  \vfill%
+
+  \UseLabel{worktitle.temp}: \DataFields{student}{worktitle}%\@title %
+
+  \UseLabel{advisor}: \DataFields{student.advisor}{name}
+
+  \UseLabel{coadvisor}: \DataFields{student.coadvisor}{name}%
+
+  \UseLabel{coadvisor.email}: {\bf \DataFields{student.coadvisor}{email}}%
+  \hfill \UseLabel{phone}: {\bf \DataFields{student.coadvisor}{phone}}\\%
+
+  {\bf Justificativa}:%
+  \vfill
+
+  \DataFields{student.coadvisor}{reason}
+}
+
+%%%
+\SetForm{coadvisor-II}{closing}{%
+
+  \SignatureDate{\UseLabel{signature.student}}
+
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.advisor}}}\hfill%
+  \parbox[t]{.45\textwidth}{\SignatureDate{\UseLabel{signature.coadvisor}}}%
+}
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+
+
+%%%%%%%%%%%%%%%
+%%  board approval - II
+%%%%%%%%%%%%%%%
+\SetForm{boardapproval-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{boardapproval-II}{title}{\UseTerm{title.boardapproval}}
+\SetForm{boardapproval-II}{opening}{\UseTerm{desc.studentwork.full}}
+
+%%%
+\SetForm{boardapproval-II}{body}{%
+  \begin{center}
+    \UseLabel{board}%
+  \end{center}%
+
+  \BoardDescSignature{Avaliador\DataFields{student.reviewer[1]}{narticle}}{student.reviewer[1]}
+  
+  \BoardDescSignature{Avaliador\DataFields{student.reviewer[2]}{narticle}}{student.reviewer[2]}
+  
+  \BoardDescSignature{Avaliador\DataFields{student.reviewer[3]}{narticle}}{student.reviewer[3]}
+
+  \BoardDescSignature{Suplente}{student.altreviewer[1]}
+
+  \vfill%
+
+    Indicamos a nominata da Banca Examinadora acima relacionada.%
+}
+
+%%%
+\SetForm{boardapproval-II}{closing}{  \SignatureDate{\UseLabel{signature.advisor}}}
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+
+
+%%%%%%%%%%%%%%%
+%%  advisor's approval - II
+%%%%%%%%%%%%%%%
+\SetForm{advisorsapproval-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{advisorsapproval-II}{title}{\UseTerm{title.advisorsapproval-II}}
+\SetForm{advisorsapproval-II}{opening}{\UseTerm{desc.studentwork.full}}
+
+%%%
+\SetForm{advisorsapproval-II}{body}{%
+  {\bf Parecer d\DataFields{student.advisor}{article} Orientador\DataFields{student.advisor}{narticle}}\footnote{Preenchimento Obrigatório}
+
+  \vfill%
+
+   \DataFields{student.advisor}{assessment}
+}
+
+%%%
+\SetForm{advisorsapproval-II}{closing}{%
+  \SignatureDate{\UseLabel{signature.advisor}}%
+  \vfill%
+
+  \SignatureDate{\UseLabel{signature.student}}%
+ }
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  receipts - II
+%%%%%%%%%%%%%%%
+\SetForm{receipts-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{receipts-II}{title}{\UseTerm{title.receipts}}
+\SetForm{receipts-II}{footnote}{\UseTerm{footnote.receipts}}
+
+%%%
+\SetForm{receipts-II}{opening}{%
+  \UseTerm{desc.studentwork.full}\\%
+
+  \noindent Membro da Banca : {\bf \DataFields{student.reviewer}{name} }%
+}
+
+%%%
+\SetForm{receipts-II}{body}{ %
+  Declaro que encontra-se em minha posse cópia da versão final do \Activity[tccII]{name} em \Activity[course]{name}  d\DataFields{student}{article} alun\DataFields{student}{article} 
+  \textbf{\DataFields{student}{name}}.
+
+  \vfill%
+
+ \SignatureDate{\UseLabel{signature.board}}%
+ 
+}
+
+%%%
+\SetForm{receipts-II}{closing}{}
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  examiner's form - II
+%%%%%%%%%%%%%%%
+\SetForm{examinersform-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{examinersform-II}{title}{\UseTerm{title.reviewersform}}
+\SetForm{examinersform-II}{footnote}{\UseTerm{footnote.reviewersform}}
+
+%%%
+\SetForm{examinersform-II}{opening}{\UseTerm{desc.studentwork}
+  
+  \noindent\UseLabel{reviewer}: \textbf{\DataFields{student.reviewer}{name}}
+}
+
+%%%
+\SetForm{examinersform-II}{body}{ 
+A nota (variando de zero a dez) atribuída por cada membro da banca examinadora será dada considerando o desempenho d\DataFields{student}{article} alun\DataFields{student}{article} nos 3 pontos apresentados na tabela abaixo.
+
+  \vfill%
+
+  \begin{center}
+    \begin{tabular}{|c|c|c|}%
+      \hline%
+      \UseLabel{TCC-II.pointA} & \UseLabel{TCC-II.pointB} & \UseLabel{TCC-II.pointC} \\\hline%
+      & & \\\hline
+    \end{tabular}%
+  \end{center}%
+}
+
+%%%
+\SetForm{examinersform-II}{closing}{ 
+  
+ \SignatureDate{\UseLabel{signature.reviewer}}%
+  \vfill%
+  \begin{description}
+    \item[Observações:] \ \\A nota final, de cada membro da banca examinadora, será calculada conforme:\\[2mm] {\bf Nota Final = \UseConst{TCC-II.weightA}\ x \UseLabel{TCC-II.pointA}\  + \UseConst{TCC-II.weightB}\ x \UseLabel{TCC-II.pointB}\  + \UseConst{TCC-II.weightC}\ x \UseLabel{TCC-II.pointC}\ }\\[2mm] A média final da atividade será dada pela média das notas finais atribuidas por cada um dos membros da banca examinadora.
+  \end{description}%
+}
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%
+%%  examiner's form - II
+%%%%%%%%%%%%%%%
+\SetForm{correctionsform-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{correctionsform-II}{title}{\UseTerm{title.correctionsform}}
+\SetForm{correctionsform-II}{footnote}{\UseTerm{footnote.correctionsform}}
+
+%%%
+\SetForm{correctionsform-II}{opening}{\UseTerm{desc.studentwork}
+  
+    \noindent\UseLabel{reviewer}: \textbf{\DataFields{student.reviewer}{name}}
+
+}
+
+%%%
+\SetForm{correctionsform-II}{body}{  \resizebox{0.9\textwidth}{!}{%%
+O texto submetido:
+ \parbox[t]{.75\textwidth}{
+    \begin{itemize}[tcc,nosep]
+     \item[$\Box$] Está adequado, dispensando correções do texto.
+     \item[$\Box$] Está adequado, sendo necessário correções, conforme a
+      seguir (e anotações anexas).
+      	\begin{description}[tcc,noitemsep]
+        	\item[$\Box$] Ortográfica
+        	\item[$\Box$] Regras de Escrita
+        	\item[$\Box$] Equações
+        	\item[$\Box$] Resumo
+        	\item[$\Box$] Abstract
+        	\item[$\Box$] Índice
+        	\item[$\Box$] Introdução
+        	\item[$\Box$] Conclusões
+        	\item[$\Box$] Corpo do Trabalho
+        	\item[$\Box$] Resultados
+        	\item[$\Box$] Adicionar mais exemplos
+        	\item[$\Box$] Figuras
+        	\item[$\Box$] Tabelas
+        \end{description}
+     \item[$\Box$] Necessita ser revisto/re-escrito,\footnotemark[2] e: 
+       \begin{itemize}
+         \item[$\Box$] basta a revisão final do texto pelo orientador,
+         \item[$\Box$] revisarei o trabalho depois de corrigido.
+       \end{itemize}
+	\item[$\Box$] Outras considerações (se necessário): \\
+	\begin{tabular}{p{0.7\textwidth}}
+	~\\\hline
+	~\\\hline
+	~\\\hline
+	~\\\hline
+	\end{tabular}\\[-1mm]
+	\end{itemize}}  }%
+  \footnotetext[2]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}%
+}
+
+%%%
+\SetForm{correctionsform-II}{closing}{  \SignatureDate{\UseLabel{signature.reviewer}}%
+ }
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+
+%%%%%%%%%%%%%%%
+%%  rectify approval - II
+%%%%%%%%%%%%%%%
+\SetForm{rectifyapproval-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{rectifyapproval-II}{title}{\UseTerm{title.rectifyapproval}}
+\SetForm{rectifyapproval-II}{opening}{\UseTerm{desc.studentwork.full}}
+
+%%%
+\SetForm{rectifyapproval-II}{body}{  %
+  \SetTerms{temp.formrefname = {Formulário de Correções}}
+  \UseTerm{desc.rectifyapproval}
+
+  \vfill%
+
+  \ApprovalSignature[\UseLabel{advisor}]{\DataFields{student.advisor}{name}}
+}
+
+%%%
+\SetForm{rectifyapproval-II}{closing}{%
+  \studentDistinctBoardCase
+    {
+      \SetReviewer{1}
+      \ApprovalSignature{\DataFields{student.reviewer}{name}}\vfill
+    }
+    {}
+
+  \SetReviewer{2}
+  \ApprovalSignature{\DataFields{student.reviewer}{name}}\vfill
+
+  \SetReviewer{3}
+  \ApprovalSignature{\DataFields{student.reviewer}{name}}\vfill
+
+
+  \ApprovalSignature[\UseLabel{altreviewer.sig}]{\DataFields{student.altreviewer}{name}}
+}
+
+%%%%%%%%%%%%%%%
+%%  referall letter- I
+%%%%%%%%%%%%%%%
+\SetForm{referral-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{referral-I}{title}{\UseTerm{semester}}
+\SetForm{referral-I}{opening}{\UseTerm{desc.sacad}}
+
+%%%
+\SetForm{referral-I}{body}{  %
+
+\studentCase%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, tendo sido APROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+    \studentBoardGradedI
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, tendo sido REAPROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+    \studentBoardGradedI
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi APROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
+    \studentBoardI
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi REPROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
+    \studentBoardI
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ não concluiu o trabalho de conclusão de Curso tendo sido REPROVAD\DataFields{student}{Article}  com conceito final \textbf{FF}.
+  }
+}
+
+%%%
+\SetForm{referral-I}{closing}{%
+    \begin{flushright}
+    Porto Alegre, \UseConst{publ.day} de \UseConst{publ.month} de \UseConst{publ.year}.\\[2em]
+
+    \ActivitySelect{tccI}
+    \DataFields{activity.coord}{name}
+    
+    \DataFields{activity.coord}{title}
+    \end{flushright}
+  \vfill
+}
+
+
+\NewDocumentCommand{\studentCoadvLabelCase}{}{%%
+  \studentCoadvCase{\UseLabel{advisors} : \DataFields{student.advisor}{name} / \DataFields{student.coadvisor}{name}}{\UseLabel{advisor} : \DataFields{student.advisor}{name}}%%
+}
+
+\NewDocumentCommand{\studentBoardI}{}{
+  {%%
+    \footnotesize%
+    \begin{center}%
+      \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline%
+        & \UseLabel{board} \\\hline%
+        \multirow{2}={\DataFields{student}{name}} %
+        &\DataFields{student.reviewer[2]}{name}\\%
+        &\DataFields{student.reviewer[3]}{name}\\%
+        \multicolumn{2}{l}{\ \ \studentCoadvLabelCase} \\\hline%
+      \end{tabular}%
+    \end{center}%
+  }%
+}
+
+\NewDocumentCommand{\studentBoardGradedI}{}{
+  {\footnotesize%
+    \begin{center}%
+      \resizebox{\textwidth}{!}{%
+        \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline%
+          \HeaderLineI
+          \studentLineI\\*\hline
+        \end{tabular}%
+      }%
+    \end{center}%
+  }%
+}
+
+
+\NewDocumentCommand{\HeaderLineI}{}{%
+    & \UseLabel{board} & \UseLabel{TCC-I.pointA} & \UseLabel{TCC-I.pointB} & \UseLabel{TCC-I.pointC} & \UseLabel{TCC-I.pointD}  &%
+    \UseLabel{Ngrade} & \UseLabel{grade}\\\hline%
+}
+\NewDocumentCommand{\studentLineI}{}{%
+   \multirow{2}={\textbf{\DataFields{student}{name}}} %
+    \ReviewerLineI{2}\\*%
+    \ReviewerLineI{3}\\*%
+    \multicolumn{6}{l}{\ \ \ \studentCoadvLabelCase} & \textbf{\DataFields{student}{gradeavrg}} & \textbf{\DataFields{student}{grade}}%\\* \hline%   
+}
+
+\NewDocumentCommand{\ReviewerLineI}{m}{%
+   & \hspace{-0.4em}\DataFields{student.reviewer[#1]}{name} & \DataFields{student.reviewer[#1]}{pointA} & \DataFields{student.reviewer[#1]}{pointB} & \DataFields{student.reviewer[#1]}{pointC} & \DataFields{student.reviewer[#1]}{pointD} & \DataFields{student.reviewer[#1]}{grade} &%
+ }
+
+
+\NewDocumentCommand{\studentExtLine}{m}{%
+   \\[-1em]%
+   \multicolumn{#1}{l}{\ \ \ \UseLabel{worktitle}: \DataFields{student}{worktitle}}\\*       
+   \multicolumn{#1}{l}{\ \ \ (\UseLabel{Nproc}: \DataFields{student}{Nproc}) \UseLabel{student.ID}: \DataFields{student}{ID} / \DataFields{student}{email}}\\*       
+   \multicolumn{#1}{l}{\ \ \ \UseLabel{remarks}: \DataFields{student}{remarks}}%\\ \hline
+}
+
+
+
+
+
+%%%%%%%%%%%%%%%
+%%  referall letter- II
+%%%%%%%%%%%%%%%
+\SetForm{referral-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{referral-II}{title}{\UseTerm{semester}}
+\SetForm{referral-II}{opening}{\UseTerm{desc.sacad}}
+
+%%%
+\SetForm{referral-II}{body}{  %
+
+\studentCase%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\  no dia \DataFields{student}{board-day}, tendo sido APROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+    \studentBoardGradedII
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\  no dia \DataFields{student}{board-day}, tendo sido REAPROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+    \studentBoardGradedII
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\  no dia  \DataFields{student}{board-day}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi APROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
+    \studentBoardII
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\  no dia  \DataFields{student}{board-day}, não tendo sido considerad\DataFields{student}{article} apt\DataFields{student}{article} pela banca listada abaixo. Posto em exame, \DataFields{student}{article} mesm\DataFields{student}{article} foi REPROVAD\DataFields{student}{Article} com conceito final \DataFields{student}{grade}.\\[2em]
+    \studentBoardII
+  }%
+  {
+    \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ não concluiu o trabalho de conclusão de Curso tendo sido REPROVAD\DataFields{student}{Article}  com conceito final \textbf{FF}.
+  }
+}
+
+%%%
+\SetForm{referral-II}{closing}{%
+    \begin{flushright}
+    Porto Alegre, \UseConst{publ.day} de \UseConst{publ.month} de \UseConst{publ.year}.\\[2em]
+
+    \ActivitySelect{tccII}
+    \DataFields{activity.coord}{name}
+    
+    \DataFields{activity.coord}{title}
+    \end{flushright}
+  \vfill
+}
+
+
+
+
+
+\NewDocumentCommand{\studentBoardII}{}{
+  {%%
+    \footnotesize%
+    \begin{center}%
+      \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline%
+        & \UseLabel{board} \\\hline%
+        \multirow{3}={\DataFields{student}{name}} %
+        &\DataFields{student.reviewer[1]}{name}\\%
+        &\DataFields{student.reviewer[2]}{name}\\%
+        &\DataFields{student.reviewer[3]}{name}\\%
+        \multicolumn{2}{l}{\ \ \studentCoadvLabelCase} \\\hline%
+      \end{tabular}%
+    \end{center}%
+  }%
+}
+\NewDocumentCommand{\studentBoardGradedII}{}{
+  {%
+    \footnotesize%
+    \begin{center}%
+      \resizebox{\textwidth}{!}{%
+        \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline%
+          \HeaderLineII
+          \studentLineII\\*\hline    
+        \end{tabular}%
+      }%
+    \end{center}%
+  }%
+}
+
+\NewDocumentCommand{\HeaderLineII}{}{%
+  & \UseLabel{board} & \UseLabel{TCC-II.pointA} & \UseLabel{TCC-II.pointB} & \UseLabel{TCC-II.pointC} &%
+  \UseLabel{Ngrade} & \UseLabel{grade}\\\hline%
+}
+\NewDocumentCommand{\studentLineII}{}{%
+   \multirow{3}={\textbf{\DataFields{student}{name}}} %
+    \ReviewerLineII{1}\\*%
+    \ReviewerLineII{2}\\*%
+    \ReviewerLineII{3}\\*%
+    \multicolumn{5}{l}{\ \ \ \studentCoadvLabelCase} & \textbf{\DataFields{student}{gradeavrg}} & \textbf{\DataFields{student}{grade}}%\\ \hline%   
+}
+
+\NewDocumentCommand{\ReviewerLineII}{m}{%
+   & \hspace{-0.4em}\DataFields{student.reviewer[#1]}{name} & \DataFields{student.reviewer[#1]}{pointA} & \DataFields{student.reviewer[#1]}{pointB} & \DataFields{student.reviewer[#1]}{pointC}  & \DataFields{student.reviewer[#1]}{grade} &%
+ }
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%
+%%  report TCC - I
+%%%%%%%%%%%%%%%
+\SetForm{report-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{report-I}{title}{Relatório Acompanhamento - \UseTerm{semester}}
+\SetForm{report-I}{opening}{}
+
+\ExplSyntaxOn
+%%%
+\SetForm{report-I}{opening}{  %
+  { \tiny
+    \begin{longtable}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }p{\UseConst{report.tabC}}@{\ }p{\UseConst{report.tabD}}@{\ }p{\UseConst{report.tabE}}@{\ }p{\UseConst{report.tabEx}}@{\ }p{\UseConst{report.tabF}}@{\ }p{\UseConst{report.tabG}}}%
+    \HeaderLineI
+    \seq_map_inline:cn {l__ufrgscca_baselist_graded_seq} 
+      {
+        \starray_set_iter_from_hash:nn {student} {#1}
+        \studentLineI\\*\hline
+        \studentExtLine{8}\\\hline        
+      }
+    \reportMissCase{8}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}
+    \reportMissCase{8}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
+    \end{longtable}  
+  }
+}
+
+%%%
+\SetForm{report-I}{closing}{}
+
+
+\NewDocumentCommand{\reportMissCase}{mmmO{red}}{
+    \seq_if_empty:NF #2
+      {
+        &\\
+        \multicolumn{#1}{l}{\textbf{\color{#4}#3}}\\\hline
+        \seq_map_inline:Nn #2 
+          {
+            \studentselect{##1}
+            &\\*
+            \multicolumn{#1}{l}{\textbf{\color{#4}\DataFields{student}{name}}}\\*
+            \studentExtLine{#1}\\*
+            \multicolumn{#1}{l}{\studentCoadvLabelCase}\\ \hline
+          }     
+      }
+}
+
+\ExplSyntaxOff
+
+
+
+%%%%%%%%%%%%%%%
+%%  report TCC - II
+%%%%%%%%%%%%%%%
+\SetForm{report-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{report-II}{title}{Relatório Acompanhamento - \UseTerm{semester}}
+\SetForm{report-II}{opening}{}
+
+\ExplSyntaxOn
+%%%
+\SetForm{report-II}{opening}{  %
+  { \tiny
+    \begin{longtable}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }p{\UseConst{report.tabC}}@{\ }p{\UseConst{report.tabD}}@{\ }p{\UseConst{report.tabE}}@{\ }p{\UseConst{report.tabF}}@{\ }p{\UseConst{report.tabG}}}%
+    \HeaderLineII
+    \seq_map_inline:cn {l__ufrgscca_baselist_graded_seq} 
+      {
+        \starray_set_iter_from_hash:nn {student} {#1}
+        \studentLineII\\*\hline
+        \studentExtLine{7}\\\hline        
+      }
+    \reportMissCase{7}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}
+    \reportMissCase{7}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
+    \end{longtable}
+  }
+}
+
+%%%
+\SetForm{report-II}{closing}{}
+
+
+\NewDocumentCommand{\CheckList}{mmmO{red}}{
+    \seq_if_empty:NF #2
+      {
+        &\\
+        \multicolumn{#1}{l}{\textbf{\color{#4}#3}}\\\hline
+        \seq_map_inline:Nn #2 
+          {
+            \studentselect{##1}
+            &\\[-2ex]
+            ~\multicolumn{#1}{l}{\textbf{\color{#4}\DataFields{student}{name}}}\\*
+            \__ufrgscca_checktable_lines:nn {L1,L2,L3,L4}{C1,C2,C3,C4,C5}\hline
+          }     
+      }
+      
+}
+
+
+%%%%%%%%%%%%%%%
+%%  Check List TCC - I
+%%%%%%%%%%%%%%%
+\SetForm{checklist-I}{heading}{\UseTerm{title.tccI}}
+\SetForm{checklist-I}{title}{Check~ List~ TCC~ I~ -~ \UseTerm{semester}}
+\SetForm{checklist-I}{opening}{}
+
+%%%
+\SetForm{checklist-I}{opening}{  %
+  \ActivitySelect{tccI}
+  { \scriptsize
+    \begin{longtable}{lllll}%
+    \CheckList{5}{\l__ufrgscca_baselist_graded_seq}{Alunos~Com~ Conceito}[black]
+    \CheckList{5}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+    \CheckList{5}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
+    \end{longtable}
+  }
+  ~\vfill
+}
+
+%%%
+\SetForm{checklist-I}{closing}{}
+
+
+%%%%%%%%%%%%%%%
+%%  Check List TCC - II
+%%%%%%%%%%%%%%%
+\SetForm{checklist-II}{heading}{\UseTerm{title.tccII}}
+\SetForm{checklist-II}{title}{Check~ List~ TCC~ II~ -~ \UseTerm{semester}}
+\SetForm{checklist-II}{opening}{}
+
+%%%
+\SetForm{checklist-II}{opening}{  %
+  \ActivitySelect{tccII}
+  { \scriptsize
+    \begin{longtable}{lllll}%
+    \CheckList{5}{\l__ufrgscca_baselist_graded_seq}{Alunos~Com~ Conceito}[black]
+    \CheckList{5}{\l__ufrgscca_baselist_ff_seq}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+    \CheckList{5}{\l__ufrgscca_baselist_dismiss_seq}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
+    \end{longtable}
+  }
+  ~\vfill
+}
+
+%%%
+\SetForm{checklist-II}{closing}{}
+
+\ExplSyntaxOff
+
+
+
+
+
+
+%%%%%%%%%%%%%%%
+%%  Boards TCC - II
+%%%%%%%%%%%%%%%
+\SetForm{boards}{heading}{\UseTerm{title.tccII}}
+\SetForm{boards}{title}{\UseTerm{board.title}}
+\SetForm{boards}{opening}{}
+
+\ExplSyntaxOn
+%%%
+\SetForm{boards}{opening}{  %
+  {\footnotesize
+    \begin{longtable}{p{\UseConst{board.tabA}}p{\UseConst{board.tabB}}p{\UseConst{board.tabC}}p{\UseConst{board.tabD}}}%
+    %\multicolumn{4}{c}{\UseTerm{board.title}}\\\hline
+    \hline
+    \tl_gclear:N \l__ufrgscca_daytmpa_tl
+    \tl_gclear:N \l__ufrgscca_daytmpb_tl
+    \seq_map_inline:cn {l__ufrgscca_baselist_seq} 
+      {
+        \starray_set_iter_from_hash:nn {student} {#1}
+        \starray_term_syntax:n {student}
+        \tl_gset:Ne \l__ufrgscca_daytmpb_tl {\starray_parsed_get_prop:n{board-date}}
+        \tl_gset:Ne \l__ufrgscca_daytmpc_tl {\UseConst{date:\l__ufrgscca_daytmpb_tl}}
+        %\tl_gset:Ne \l__ufrgscca_daytmpD_tl {date:\l__ufrgscca_daytmpb_tl}
+        %\tl_gset:Ne \l__ufrgscca_daytmpc_tl {\UseConst{\l__ufrgscca_daytmpD_tl}}
+        \studentNewPageCase
+          {\kill\pagebreak\tl_gset:Nn \l__ufrgscca_daytmpa_tl {}}
+          {}
+        \tl_if_eq:NNF \l__ufrgscca_daytmpa_tl \l__ufrgscca_daytmpb_tl
+          {
+            &\multicolumn{3}{r}{\textbf{\l__ufrgscca_daytmpc_tl\  ~- ~ \l__ufrgscca_daytmpb_tl}}\\*
+            \textsc{\UseLabel{student.gen}} & \textsc{\UseLabel{advisor.gen}} & \textsc{\UseLabel{board}} & \textsc{\UseLabel{boardtime.gen}}\\*\hline
+            \tl_gset:Ne \l__ufrgscca_daytmpa_tl \l__ufrgscca_daytmpb_tl
+          }
+        \multirow{4}={\textbf{\DataFields{student}{name}}} & \multirow{4}={\studentCoadvCase{\hspace{-0.6em}\DataFields{student.advisor}{name}\\[1mm]\hspace{-0.6em}\DataFields{student.coadvisor}{name}}{\hspace{-0.6em}\DataFields{student.advisor}{name}}} & \DataFields{student.reviewer[1]}{name} & \multirow{4}={\DataFields{student}{board-time}\\[1mm]\DataFields{student}{board-local}}\\*
+        && \DataFields{student.reviewer[2]}{name} \\*
+        && \DataFields{student.reviewer[3]}{name} \\*
+        && (\DataFields{student.altreviewer[1]}{name}) \\*
+        \multicolumn{4}{l}{\textsc{Título:}\ \emph{\DataFields{student}{worktitle}}}\\\hline      
+      }
+    \end{longtable} 
+    
+    {\scriptsize\UseTerm{board.obs}}
+  }
+}
+\ExplSyntaxOff
+
+%%%
+\SetForm{boards}{body}{~}
+\SetForm{boards}{closing}{~}
+
+
+%%%%%%%%%%%%%%%
+%%  cocertificate
+%%%%%%%%%%%%%%%
+\SetForm{cocertificate}{heading}{\UseTerm{title.tcc}}
+\SetForm{cocertificate}{title}{\UseTerm{semester}}
+\SetForm{cocertificate}{opening}{À quem interessar possa,\\ certificamos que}
+\SetForm{cocertificate}{body}{%
+  \begin{center}
+    \textsc{\DataFields{student.coadvisor}{name}}
+  \end{center}
+  \vfill
+  atuou como coorientador\DataFields{student.coadvisor}{narticle} d\DataFields{student}{article} alun\DataFields{student}{article}\ \emph{\DataFields{student}{name}}\ no Trabalho de Conclusão de Curso intitulado \emph{\DataFields{student}{worktitle}}\ no semestre \UseTerm{semester}.
+}
+
+\SetForm{cocertificate}{closing}{%
+    \begin{flushright}
+    Porto Alegre, \UseConst{publ.day} de \UseConst{publ.month} de \UseConst{publ.year}.\\[2em]
+
+    \ActivitySelect{tccII}
+    \DataFields{activity.coord}{name}
+    
+    \DataFields{activity.coord}{title}
+    \end{flushright}
+  \vfill
+}
+
+
+
+
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+%%
+%%%%%%%%%%%%%%%
+% examiners approval (or not) signature (for rectify approval form)%
+%%%%%%%%%%%%%%%
+\ExplSyntaxOn
+\NewDocumentCommand{\ApprovalSignature}{O{\UseLabel{reviewer}}m}{%%
+  \UseTerm{corrections.ok}  \hfill Data:\rule{\l__ufrgscca_date_rule_dim}{.1pt}\\[3mm]%
+  #1: #2 \hfill  \UseLabel{signature.gen}:\rule{\l__ufrgscca_name_rule_dim}{.1pt}%
+}%
+\ExplSyntaxOff
+
+
+


Property changes on: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex	2023-11-24 21:13:10 UTC (rev 68960)
@@ -0,0 +1,103 @@
+%%%==============================================================================
+%% Copyright 2022-23 by Alceu Frigeri
+%%
+%% This work may be distributed and/or modified under the conditions of
+%%
+%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+%%   version 1.3c (or later), and/or
+%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
+%%   version 3 (or later)
+%%
+%% This work has the LPPL maintenance status *maintained*.
+%%
+%% The Current Maintainer of this work is Alceu Frigeri
+%%
+%% This is version {2.0} {2023/11/23}
+%%
+%% The list of files that compose this work can be found in the README.md file at
+%% https://ctan.org/pkg/ufrgscca
+%%
+%%%==============================================================================
+%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
+%% EE    stands for "Engineering School"
+%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
+%%%==============================================================================
+
+
+\SetHeadings{%
+    university              = Federal University of Rio Grande do Sul ,
+    acronym                 = UFRGS ,
+    unit                    = Engineering School ,
+    secretary               = SACAD/EE ,
+    course                  = Control and Automation Engineering  ,
+    course.title            = Bachelor in Control and Automation Engineering ,
+    department              = {Dept. of Electrical Systems} ,
+}
+
+
+
+\ActivitySelect{course}
+\ActivitySet{CCA}{Control and Automation Engineering}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Head of Course}
+
+\ActivitySelect{tccI}
+\ActivitySet{TCC~-~I}{Final Course Work I}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Final Course Work Coordinator}
+
+\ActivitySelect{tccII}
+\ActivitySet{TCC~-~II}{Final Course Work II}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Final Course Work Coordinator}
+
+\ActivitySelect{internship}
+\ActivitySet{Est.Ob.}{Estágio Supervisionado Obrigatório}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Coordenador\ActivityCoord[internship]{narticle} da Atividade de Ensino de\newline Estágio Supervisionado Obrigatório}
+
+
+
+\SetTerms{%
+  title.tcc                 = Completions's Course Work ,
+  title.tccI                = Completions's Course Work I ,
+  title.tccII               = Completions's Course Work II ,  
+}
+
+
+\SetLabels{%
+  advisor                   = Advisor ,
+  advisors                  = Advisors ,
+  advisor.gen               = Advisor ,
+  advisor.email             = Advisor's Email ,
+  coadvisor                 = Co-advisor ,
+  coadvisor.gen             = Co-advisor ,
+  coadvisor.email           = Co-advisor's Email ,
+  reviewer.base             = Reviewer ,
+  reviewer                  = Reviewer ,
+  tutor                     = Tutor\DataFields{student.tutor}{narticle} ,
+  tutor.gen                 = Tutor(a) ,
+  tutor.email               = Email d\DataFields{student.tutor}{article} Tutor\DataFields{student.tutor}{narticle} ,  
+  supervisor                = Supervisor\DataFields{student.supervisor}{narticle} ,
+  supervisor.gen            = Supervisor(a) ,  
+  student                   = Student ,
+  student.gen               = Student ,
+  student.email             = Student's Email ,
+  student.ID                = Card N. ,
+  board                     = Exam's Board ,
+}
+
+\SetTerms{%
+  tccI.text-descpage         = {  This work's proposal was submitted to COMGRAD/\Activity[course]{acronym}\   -- \UseHeading{acronym}\  
+                                  as part of the requirements to obtain the title of \emph{\UseHeading{course.title}.}
+                               } ,
+  tccI.text-approvalpage     = { This work's proposal was considered adequate to finish the \emph{\Activity[tccI]{name}} and approved, in it's final form, by the  
+		                            \studentCoadvCase{Advisors}{Advisor} and Exam's Board below. } ,                               
+  tccII.text-descpage         = { This work was submitted to COMGRAD/\Activity[course]{acronym}\   -- \UseHeading{acronym}\  
+                                  as part of the requirements to obtain the title of \emph{\UseHeading{course.title}.}
+                                } ,
+  tccII.text-approvalpage    = { 	 This work  was considered adequate to finish the \emph{\Activity[tccII]{name}} and approved, in it's final form, by the  
+		                            \studentCoadvCase{Advisors}{Advisor} and Exam's Board below.
+                               } ,
+}
+


Property changes on: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex	2023-11-24 21:13:10 UTC (rev 68960)
@@ -0,0 +1,267 @@
+%%%==============================================================================
+%% Copyright 2022-23 by Alceu Frigeri
+%%
+%% This work may be distributed and/or modified under the conditions of
+%%
+%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+%%   version 1.3c (or later), and/or
+%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
+%%   version 3 (or later)
+%%
+%% This work has the LPPL maintenance status *maintained*.
+%%
+%% The Current Maintainer of this work is Alceu Frigeri
+%%
+%% This is version {2.0} {2023/11/23}
+%%
+%% The list of files that compose this work can be found in the README.md file at
+%% https://ctan.org/pkg/ufrgscca
+%%
+%%%==============================================================================
+%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
+%% EE    stands for "Engineering School"
+%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
+%%%==============================================================================
+
+
+\location{Porto~Alegre}{RS}
+
+\SetHeadings{%
+    university              = Universidade Federal do Rio Grande do Sul ,
+    acronym                 = UFRGS ,
+    unit                    = Escola de Engenharia ,
+    secretary               = SACAD/EE ,
+    course                  = Engenharia de Controle e Automação ,
+    course.title            = Bacharel em Engenharia de Controle e Automação ,
+    ppc.comgrad             = {COMISSÃO DE GRADUAÇÃO - COMGRAD/CCA} ,
+    ppc.nde                 = {NÚCLEO DOCENTE ESTRUTURANTE - NDE/CCA} ,
+    ppc.course              = {DO CURSO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO} ,
+    department              = {Depto. de Sistemas Elétricos de Automação e Energia} ,
+}
+
+
+
+\ActivitySelect{course}
+\ActivitySet{CCA}{Eng. de Controle e Automação}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Coordenador\ActivityCoord[course]{narticle} de Curso}
+
+\ActivitySelect{tccI}
+\ActivitySet{TCC~-~I}{Trabalho de Conclusão de Curso CCA - I}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Coordenador\ActivityCoord[tccI]{narticle} da Atividade de Ensino de\break Trabalho de Conclusão de Curso}
+
+\ActivitySelect{tccII}
+\ActivitySet{TCC~-~II}{Trabalho de Conclusão de Curso CCA - II}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Coordenador\ActivityCoord[tccII]{narticle} da Atividade de Ensino de\break Trabalho de Conclusão de Curso}
+
+\ActivitySelect{internship}
+\ActivitySet{Est.Ob.}{Estágio Supervisionado Obrigatório}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Coordenador\ActivityCoord[internship]{narticle} da Atividade de Ensino de\newline Estágio Supervisionado Obrigatório}
+
+\ActivitySelect{internship}
+\ActivitySet{Est.Ob.}{Estágio Supervisionado Não Obrigatório}
+\ActivitySetCoord{Nome Coordenador}
+\ActivitySetCoordTitle{Coordenador\ActivityCoord[internship]{narticle} da Atividade de Ensino de\newline Estágio Supervisionado Não Obrigatório}
+
+
+\SetTerms{%
+  title.tcc                 = Trabalho de Conclusão de Curso ,
+  title.tccI                = Trabalho de Conclusão de Curso I ,
+  title.tccII               = Trabalho de Conclusão de Curso II ,  
+  title.internship          = Estágio Supervisionado Obrigatório ,
+  %
+  title.calendar            = {Calendário - \UseTerm{semester}} , 
+  title.requestform         = Formulário de Requerimento de Matrícula ,
+  title.coadvisorform       = Requerimento de Autorização de Coorientação ,
+  title.boardapproval       = Formulário de Indicação da Banca Examinadora ,
+  title.advisorsapproval-I  = Formulário de Aprovação para Avaliação ,
+  title.advisorsapproval-II = Formulário de Aprovação para Apresentação ,
+  title.receipts            = Recibo de entrega de cópia da versão final do Trabalho de Conclusão ,
+  title.reviewersform       = Formulário de Avaliação ,
+  title.correctionsform     = Formulário de Correções ,
+  title.rectifyapproval     = Formulário de Aprovação das Correções ,
+  title.internsupervisorform = Formulário de Avaliação do Supervisor (Pela Empresa) ,
+  title.interntutorform      = Formulário de Avaliação do Tutor e Coordenador ,
+  %
+  %footnote.reviewersform
+  footnote.reviewersform    = {Entregar a cada membro da banca juntamente com a cópia do trabalho.} , %%% TCC I / II
+  footnote.receipts         = {Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar à coordenação de TCC.} , %%% TCC II
+  footnote.correctionsform  = {Entregar a cada membro da banca juntamente com a cópia do trabalho. Após apresentação, retornar este à coordenação de TCC.} ,%%% TCC II
+   %
+  footnote.supervisorsform = {Favor utilizar a seguinte grade discreta: \begin{enumerate*}[start=0]\item Sofrível \item Regular \item Bom \item Muito Bom \item Excelente \end{enumerate*}} ,
+   %
+  opening.requestform       = { Ilm\ActivityCoord[course]{article}. Sr\ActivityCoord[course]{narticle}.\par
+ Coordenador\ActivityCoord[course]{narticle} da  Comissão de Graduação do Curso em \Activity[course]{name}\  da \UseHeading{university}.   } ,
+  localdate                 = {\UseConst{publ.city},\hspace{4mm} de \hspace{1.2cm} de 20\hspace{4mm}.} ,
+  %
+  %
+  %
+  %
+ footnote.requestform       = { O resumo deve ser curto, i.e., não deve exceder este espaço. O texto deve ser escrito em parágrafo único, 
+                                e por se tratar de proposta, poderá utilizar  tempo futuro e não necessita ter motivação ou justificativa.\break  Deve conter:
+                                \begin{enumerate*}[alpha)] 
+                                	\item O QUE será feito - descrição e objetivos.
+                                   \item COMO será feito - metodologia.
+                                	\item Resultados esperados.
+                                \end{enumerate*}%
+                                } ,   %%% TCC I
+  desc.requestform          = { \DataFields{student}{Article} alun\DataFields{student}{article} \DataFields{student}{name}, 
+                              REGULARMENTE MATRICULAD\DataFields{student}{Article} neste período letivo no curso \emph{\Activity[course]{name}}, desta universidade, 
+                              portador\DataFields{student}{narticle} do cartão de identificação n$^o$ \DataFields{student}{ID}, 
+                              vem por meio deste solicitar matrícula na atividade de ensino} ,
+  desc.coadvisorform            = {\DataFields{student}{Article} alun\DataFields{student}{article} \DataFields{student}{name}, 
+                              REGULARMENTE MATRICULAD\DataFields{student}{Article} na atividade de TCC neste período letivo, 
+                              vem por meio deste solicitar autorização para registro de coorientação de TCC, conforme justificativa abaixo.} ,
+  desc.rectifyapproval      = { \begin{description}
+                              \item[Observação 1:] Caso a versão final corrigida do trabalho, mais este formulário, não sejam entregues até a data estipulada, o conceito final passará a ser {\bf D}.
+                              \item[Observação 2:] Caso as correções sejam satisfatórias, a nota final será a já atribuída pela Banca Examinadora. 
+                              \item[Observação 3:] A assinatura d\DataFields{student.advisor}{article} orientador\DataFields{student.advisor}{narticle} é obrigatória, entretanto a assinatura dos membros da banca só é necessária caso tenham marcado a opção ''$\Box$ Revisarei o trabalho depois de corrigido'' no \emph{\UseTerm{temp.formrefname}}.
+                            \end{description}
+                              } ,
+  desc.studentwork          = { 
+                              \noindent\UseLabel{student}: {\bf \DataFields{student}{name}}\hfill \UseLabel{student.ID}: {\bf \DataFields{student}{ID}}\\%
+                              \noindent\UseLabel{worktitle}: \DataFields{student}{worktitle} } , 
+  desc.studentwork.full     = {\UseTerm{desc.studentwork}\\[2.5mm]\UseTerm{desc.advisor}} ,  
+  desc.advisor              = {\noindent\UseLabel{advisor}:  \textbf{\DataFields{student.advisor}{name}}} ,
+  desc.coadvisor            = {\noindent\UseLabel{coadvisor}:  \textbf{\DataFields{student.advisor}{name}}} ,
+  desc.reviewer             = {\noindent\UseLabel{reviewer}:  \textbf{\DataFields{student.advisor}{name}}} ,
+  desc.student              = {\noindent\UseLabel{student}: {\bf \DataFields{student}{name}}\hfill 
+                              \UseLabel{student.ID}: {\bf \DataFields{student}{ID}}} ,
+  desc.internshipperiod     = {\noindent Período do Estágio: {\bf \DataFields{student.internship}{start}} até: {\bf \DataFields{student.internship}{end}}} ,
+  desc.supervisor           = {\UseLabel{supervisor}: \textbf{\DataFields{student.supervisor}{name}} \hfill CREA: \textbf{\DataFields{student.supervisor}{register}}} ,
+  desc.sacad                = {\noindent Ao\par\noindent SACAD da Escola de Engenharia} ,
+  corrections.ok            = {Correções satisfatórias: \hspace*{1cm}$\Box$\ sim\hspace*{2cm}$\Box$\ não} , 
+}
+
+
+
+\SetTerms{%
+  tccI.text-descpage         = {  Proposta de Trabalho de Conclusão de Curso submetida à
+		                              COMGRAD/\Activity[course]{acronym}\   da \UseHeading{acronym}\  como parte dos requisitos para a
+		                              obtenção do título de \emph{\UseHeading{course.title}.}
+                               } ,
+  tccI.text-approvalpage     = { Esta Proposta de Trabalho de Conclusão de Curso foi julgada adequada para a
+                            		obtenção dos créditos da Atividade de \emph{\Activity[tccI]{name}} e aprovada em sua forma final 
+		                            \studentCoadvCase{pelos Orientadores}{pel\DataFields{student.advisor}{article} Orientador\DataFields{student.advisor}{narticle}} 
+                                e Banca Examinadora abaixo.
+                              } ,                               
+  tccII.text-descpage         = { Trabalho de Conclusão de Curso submetido à
+		                              COMGRAD/\Activity[course]{acronym}\   da \UseHeading{acronym}\  como parte dos requisitos para a
+		                              obtenção do título de \emph{\UseHeading{course.title}.}
+                                } ,
+  tccII.text-approvalpage    = { 	Este Trabalho de Conclusão de Curso foi julgado adequado para a
+		                              obtenção dos créditos da Atividade de \emph{\Activity[tccII]{name}} e aprovado em sua forma final 
+                                  \studentCoadvCase{pelos Orientadores}{pel\DataFields{student.advisor}{article}
+		                              Orientador\DataFields{student.advisor}{narticle}} e Banca Examinadora abaixo.
+                               } ,
+}
+
+
+
+
+%\SetTerms{%
+%  
+%}
+
+
+\SetLabels{%
+  advisor                   = Orientador\DataFields{student.advisor}{narticle} ,
+  advisors                  = Orientadores ,
+  advisor.gen               = Orientador(a) ,
+  advisor.email             = Email d\DataFields{student.advisor}{article} Orientador\DataFields{student.advisor}{narticle} ,
+  coadvisor                 = Coorientador\DataFields{student.coadvisor}{narticle} ,
+  coadvisor.gen             = Coorientador(a) ,
+  coadvisor.email           = Email d\DataFields{student.coadvisor}{article} Coorientador\DataFields{student.coadvisor}{narticle} ,
+  reviewer.base             = Avaliador ,
+  reviewer                  = Avaliador\DataFields{student.reviewer}{narticle} ,
+  altreviewer               = Suplente ,  
+  altreviewer.sig           = Avaliador\DataFields{student.altreviewer}{narticle} ,
+  tutor                     = Tutor\DataFields{student.tutor}{narticle} ,
+  tutor.gen                 = Tutor(a) ,
+  tutor.email               = Email d\DataFields{student.tutor}{article} Tutor\DataFields{student.tutor}{narticle} ,  
+  supervisor                = Supervisor\DataFields{student.supervisor}{narticle} ,
+  supervisor.gen            = Supervisor(a) ,  
+  student                   = Alun\DataFields{student}{article} ,
+  student.gen               = Aluno(a) ,
+  student.email             = Email d\DataFields{student}{article} Alun\DataFields{student}{article} ,
+  student.ID                = Cartão ,
+  signature.gen             = Assinatura , 
+  signature.student         = Assinatura\ \ d\DataFields{student}{article}\ \ Alun\DataFields{student}{article} ,
+  signature.student.gen     = Assinatura\ \ do(a)\ \ Aluno(a) ,
+  signature.advisor         = Assinatura\ \ d\DataFields{student.advisor}{article}\ \ Orientador\DataFields{student.advisor}{narticle} ,
+  signature.coadvisor       = Assinatura\ \ d\DataFields{student.coadvisor}{article}\ \ Coorientador\DataFields{student.coadvisor}{narticle} ,
+  signature.reviewer        = Assinatura\ \ d\DataFields{student.reviewer}{article}\ \ Avaliador\DataFields{student.reviewer}{narticle} ,
+  signature.board           = Assinatura\ \ do\ \ Membro\ \ da\ \ Banca ,
+  signature.gen             = Assinatura ,
+  signature.supervisor      = Assinatura\ \ d\DataFields{student.supervisor}{article}\ \ Supervisor\DataFields{student.supervisor}{narticle} ,
+  signature.tutor           = Assinatura\ \ d\DataFields{student.tutor}{article}\ \ Tutor\DataFields{student.tutor}{narticle} ,
+  signature.internshipcoord = Assinatura\ \ d\ActivityCoord[internship]{article}\ \ Coordenador\ActivityCoord[internship]{narticle} ,
+  worktitle                 = Título do Trabalho ,
+  worktitle.temp            = Título Provisório ,
+  email                     = Email ,
+  phone                     = ramal ,
+  board                     = Banca Examinadora ,
+  board.member              = Membro da Banca ,
+  agree                     = De Acordo ,
+  Nproc                     = SEI ,
+  remarks                   = remarks ,
+  boardtime.gen             = Horário , 
+}
+
+\SetLabels{%
+  TCC-I.pointA              = {Tema} ,
+  TCC-I.pointB              = {Biblio.} ,
+  TCC-I.pointC              = {Plano Trab.} ,
+  TCC-I.pointD              = {Texto} ,
+  TCC-II.pointA              = {Conteúdo} , 
+  TCC-II.pointB              = {Trab. Escrito} ,
+  TCC-II.pointC              = {Apresentação} ,
+  Ngrade                  = {Nota} ,
+  grade                      = {Conceito} ,
+}
+
+\SetConsts{%
+  TCC-I.weightA              = {2} ,
+  TCC-I.weightB              = {2} ,
+  TCC-I.weightC              = {2} ,
+  TCC-I.weightD              = {1} ,
+  TCC-II.weightA              = {0.35} , 
+  TCC-II.weightB              = {0.35} ,
+  TCC-II.weightC              = {0.3} ,
+  NgradeA                      = {9.0} ,
+  NgradeB                      = {7.5} ,
+  NgradeC                      = {6.0} ,  
+}
+
+
+
+\SetConsts{%
+  report.tabA = {32mm} ,
+  report.tabA* = {42mm} ,
+  report.tabB = {42mm} ,
+  report.tabB* = {62mm} ,
+  report.tabC = {15mm} ,
+  report.tabD = {15mm} ,
+  report.tabE = {15mm} ,
+  report.tabEx = {15mm} ,
+  report.tabF = {8mm} ,
+  report.tabG = {12mm} , 
+}
+
+\SetConsts{%
+  board.tabA = {38mm} ,
+  board.tabB = {38mm} ,
+  board.tabC = {60mm} ,
+  board.tabD = {13mm} ,
+}
+
+\SetConsts{%
+  cover.winwidth          = {95mm} ,
+  cover.winheight         = {64mm} ,
+  cover.winvoffset        = {112mm} ,
+  form.winvoffset         = {24mm} ,
+}
+


Property changes on: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex	2023-11-24 21:13:10 UTC (rev 68960)
@@ -15,7 +15,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -28,7 +28,6 @@
 \documentclass[article,nogeometry,english,tocdepth=3,secdepth=3]{ufrgscca} % tcbundle  tcpack tcmain
 \usepackage[a4paper,margin=5cm,right=2cm,marginparwidth=3.5cm,asymmetric,top=2.5cm,bottom=1.5cm]{geometry}
 \usepackage{codedescribe}
-\usepackage{ufrgscca-curr}
 
 %\maxdeadcycles=500 %% the many marginpar statements are actually a pain.
 
@@ -36,6 +35,19 @@
 %\fulldocfalse
 \fulldoctrue
 
+\newif\ifversiontest
+\versiontestfalse
+%\versiontesttrue
+
+
+\ifversiontest
+\usepackage{ufrgscca-lists}
+\usepackage{ufrgscca-coord}
+\usepackage{ufrgscca-forms}
+\usepackage{ufrgscca-ppc}
+\usepackage{ufrgscca-curr}
+\fi
+
 \begin{document}
 
 
@@ -43,16 +55,22 @@
 \tstitle{
   author={Alceu Frigeri\footnote{\tsverb{https://github.com/alceu-frigeri/ufrgscca}}},
   date={\monthname\space\number\year},
-  title={The ufrgscca, and associated, Packages\\ Version \ufrgsccaversion \\(extended documentation)}
+  title={The ufrgscca, and associated, Packages\\ Version \PkgInfo{ufrgscca}{version} \\(extended documentation)}
   }
 \else
 \tstitle{
   author={Alceu Frigeri\footnote{\tsverb{https://github.com/alceu-frigeri/ufrgscca}}},
   date={\monthname\space\number\year},
-  title={The ufrgscca, and associated, Packages\\ Version \ufrgsccaversion}
+  title={The ufrgscca, and associated, Packages\\ Version \PkgInfo{ufrgscca}{version}}
   }
 \fi
 
+\ifversiontest
+\ExplSyntaxOn
+\clist_map_inline:nn {ufrgscca,ufrgscca-abnt,ufrgscca-core,ufrgscca-cover,ufrgscca-lists,ufrgscca-forms,ufrgscca-coord,ufrgscca-curr,ufrgscca-ppc}{\PkgDescription{#1}}
+\ExplSyntaxOff
+\fi
+
 	\begin{tsabstract}
 		This bundled is aimed at producing undergraduate students final work/report at UFRGS/EE (Engineering School at the Federal University of Rio Grande do Sul), closely following ABNT rules (Brazilian Association for Technical Norms). It is composed of a main class, \tsobj[pkg]{ufrgscca}, and a set of auxiliary packages, some of which can be used independently.
 
@@ -61,29 +79,37 @@
 \tableofcontents
 
 	\section{Introduction}
-	\emph{ABNT} rules can be quite challenging some times (read: bibliography style/references) and sometimes just odd (line spacing, front matter, page layout), nevertheless it is a \emph{Brazilian Standard} for typography whose students at UFRGS should grow cherished to follow.
+	\emph{ABNT} rules can be quite challenging at times (read: bibliography style/references) and sometimes just odd (line spacing, front matter, page layout), nevertheless it is a \emph{Brazilian Standard} for typography whose students at UFRGS should grow cherished to follow.
 
-	In short, as of version \ufrgsccaversion\space the bundle is composed of a class, \tsobj[pkg]{ufrgscca} (based on the standard \LaTeX2e \tsobj[pkg]{report} class), which pre-loads all other, as needed, packages: \tsobj[pkg]{ufrgscca-abnt, ufrgscca-core, ufrgscca-cover, ufrgscca\-forms, ufrgscca-gen, ufrgscca-lists, ufrgscca-curr, ufrgscca-coord, ufrgscca-ppc}.
+	In short, as of version \PkgInfo{ufrgscca}{version}\space the bundle is composed of a class, \tsobj[pkg]{ufrgscca} (based on \tsobj[pkg]{report} class), which pre-loads, as needed: \tsobj[pkg]{ufrgscca-abnt, ufrgscca\-core, ufrgscca-cover, ufrgscca-forms, ufrgscca-lists}. The packages \tsobj[pkg]{ufrgscca-curr, ufrgscca-coord, ufrgscca-ppc} need to be loaded explicitly, thought.
 
 \begin{tsremark}[N.B.:]
 	This bundle requires a quite recent \LaTeX2e kernel, at least as recent as June 2022, which allows to declare package options using the \tsobj[key]{key}~=\tsobj[key]{value} system and declare commands with \tsmacro{\NewDocumentCommand}{}, out-of-the-box.
 \end{tsremark}
 
+\begin{tsremark}[\color{red}Version 2.0:]
+	Starting with Version 2.0, this bundle has been fully re-written with \tsobj[pkg]{Expl3,starray}.
+\end{tsremark}
+
+\begin{tsremark}[Version 1.12a:]
+	In case you need the old version, for some odd \tsobj[pkg]{expl3} compatibility issue, you can find it at \tsverb{https://github.com/ alceu-frigeri/ufrgscca/releases/tag/v1.12}
+\end{tsremark}
+
 \subsection{Current Version}
-For the sake of the “maintainer's sanity”, since this is a bundle, all files are saved with the same version (bundle version), with two exceptions: \tsobj[pkg]{ufrgscca-curr.sty} \tsobj[pkg]{ufrgscca-ppc.sty} which are less tested than the others, and somewhat in what one would call 'beta' state. Better said, all files are version \ufrgsccaversion, except \tsobj[pkg]{ufrgscca-curr} and \tsobj[pkg]{ufrgscca-ppc} whose versions are \ufrgsccacurrversion.
+For the sake of the “maintainer's sanity”, since this is a bundle, all files are saved with the same version (bundle version: \PkgInfo{ufrgscca}{version})
 
 \section{\tightul{ufrgscca} Class}
 
-The following packages are always pre-loaded: \tsobj[pkg]{etex, etoolbox, lmodern, fontenc (T1), inputenc (utf8), silence, ufrgscca-abnt, ufrgscca-gen}, \tsobj[pkg]{ ufrgscca-cover, ufrgscca-core, hyperref} and (if it exists) a \emph{local.tex} file.
+The following packages are always pre-loaded: \tsobj[pkg]{etex, etoolbox, lmodern, fontenc (T1), inputenc (utf8), silence, ufrgscca-abnt}, \tsobj[pkg]{ ufrgscca-cover, ufrgscca-core, hyperref} and (if it exists) a \emph{local.tex} file.
 
-Other set of auxiliary packages are also pre-loaded, depending on the class options used, and finally it loads (normally) the \tsobj[pkg]{report} class (the exception being if one uses the \tsobj[option]{dctools} option).
+Other, auxiliary, packages are also pre-loaded, depending on the class options used, and finally  \tsobj[pkg]{report} class (the exception being in case of the \tsobj[option]{article} class option).
 
-Being based on the report class, one can use all class options one would with a report, plus the ones listed below.
+Being based on the report class, all report class options are valid, in addition to the ones below.
 \subsection{Class Options}
 \begin{describelist}{option}
-	\describe {tocdepth} { use: \tsobj[key]Use{tocdepth}{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to appears in the Table of Contents (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default value being 3 (\tsmacro{\subsubsection}{}).}
+	\describe {tocdepth} { use: \tsobj[key]{tocdepth}=\tsobj[value]{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to appears in the Table of Contents (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default  is 3 (\tsmacro{\subsubsection}{}).}
 
-	\describe {secdepth} { use: \tsobj[key]Use{secdepth}{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to be numbered. (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default value being 4 (\tsmacro{\paragraph}{}).}
+	\describe {secdepth} { use: \tsobj[key]{secdepth}=\tsobj[value]{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to be numbered. (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default is 4 (\tsmacro{\paragraph}{}).}
 
 	\describe {english} { the default language being Portuguese, this option changes locale to English.}
 
@@ -91,7 +117,7 @@
 
 	\describe {relnum} { by default, figures, tables, etc. are numbered as a continuous series. With this switch, those lists are reset at each chapter, e.g. Figure 5.1 instead of Figure 23.}
 
-	\describe {openright} { in case of printed material, this will assure that a \tsmacro{\chapter}{} always starts at an odd page, which is relevant in case of printing out (double sided) the document.}
+	\describe {openright} { in case of printed material, this assures that a \tsmacro{\chapter}{} always starts at an odd page, which is relevant in case of printing out (double sided) the document.}
 
 	\describe {oneside} { in case the document will be printed in single side sheets, otherwise it's assumed a two-sided printing.}
 
@@ -99,7 +125,7 @@
 
     \describe {pretextontoc} { “pre-text” elements, like “list of$\dots$” will be inserted in the “table of contents”.}
 
-    \describe {yearsonly} { Cover pages, at their bottom, will display the years only (instead of the default mouth year construct).}
+    \describe {yearsonly} { Approval page, at it’s bottom,  will display the years only (instead of the default mouth year construct).}
 
     \describe {timesroman} { will set the default font to Roman (using the obsolete mathptmx package, based on  a free replacement of the proprietary 
     Times New Roman (by Microsoft) and Times Roman (By Adobe)) instead of the default Latin Modern Roman font. 
@@ -120,14 +146,6 @@
 %\begin{describelist}{option}
  %some random text, inserted here...
 
-	\describe {report} { in case the doc is just a class assignment with, possibly, many co-authors. It changes mainly the front matter, which is simplified (no referral page, for instance).}
-
-	\describe {internship} { in case the doc is an internship report.}
-
-	\describe {nonrequired} { in case the internship report is related to a “non required” / “optional” internship. This option is ignored otherwise.}
-
-	\describe {forms} { in the process of submitting a student final work/report, there is a series of forms to be submitted, this allows the customization  of said forms in a simple  way.}
-
 	\describe {chapternopagenum} { to suppress the page numbers at chapters begin.}
 
 	\describe {nomicrotype} { in some rare cases, \tsobj[pkg]{microtype} might hurt page layout, this allows the suppression of \tsobj[pkg]{microtype}.}
@@ -144,6 +162,8 @@
 
 	\describe {nogeometry} { the package \tsobj[pkg]{geometry} won't be loaded. In case one wants to fully customize the page geometry}
 
+	\describe {oldrenews} { Some, deprecated, renews will be in effect: \tsobj{\maketitle}, \tsobj{\author} \tsobj{\begin{abstract}}. For backwards compatibility only. }
+
 	\describe {texlive} { this is a reserved key, in case some workaround for texlive is needed.}
 
 	\describe {overleaf} { this is a reserved key, in case some workaround for overleaf is needed.}
@@ -154,9 +174,9 @@
 \subsection{Class Declared Commands}
 \begin{codedescribe}{\autonameref,\annexref,\autoannexref}
 	\begin{codesyntax}%
-		\tsobj[code]{\autonameref}{\tsobj[oarg]{sep}\tsobj[marg]{label}\tsobj[oarg]{spc}}
+		\tsobj[code]{\autonameref}{\tsargs[oarg]{sep}\tsargs[marg]{label}\tsargs[oarg]{spc}}
 		\tsmacro{\annexref}{label}
-		\tsobj[code]{\autoannexref}{\tsobj[oarg]{sep}\tsobj[marg]{label}\tsobj[oarg]{spc}}
+		\tsobj[code]{\autoannexref}{\tsargs[oarg]{sep}\tsargs[marg]{label}\tsargs[oarg]{spc}}
 	\end{codesyntax}
 The \tsobj[pkg]{hyperref} package, sometimes, gets the \tsmacro{\autoref}{} name wrong (when referencing an annex), the \tsmacro{\annexref}{label} will assure the correct annex name is used.
 
@@ -175,7 +195,7 @@
         \tsmacro{\overleafHack}{}
         \tsmacro{\livetexHack}{}
     \end{codesyntax}
-    In case some workaround is needed due an unexpected error (when upgrading packages/\TeX system) the class “knows” about those three hooks.
+    Case some workaround is needed due an unexpected error (when upgrading packages/\TeX system) the class “knows” about those three hooks.
     They will be executed if, and only if, they are user defined and the corresponding package option is used, i.e., for example, for the hook \tsmacro{\miktexHack}{} to be used/called by the class \tsobj[pkg]{ufrgscca}, one has to: a)~define it and b)~use the class option \tsobj[option]{miktex}.
 \end{codedescribe}
 
@@ -200,9 +220,7 @@
 
 	\describe {repeatfields} { in case of authors with multiple publications, their names will be repeated for each entry. In the default setting the author's name is written only in the first entry, and replaced by underscores in the other entries.}
 
-    \describe {yearsonly} { Cover pages, at their bottom, will display the years only (instead of the default mouth year construct).}
-    
-  \describe {yearsonly}{ Cover pages, at their bottom, will display the years only, instead of the default mouth year construct.}
+    \describe {yearsonly} { Approval page, at it's bottom, will display the years only (instead of the default mouth year construct).}
   
 	\describe {nomicrotype} { in some rare cases, \tsobj[pkg]{microtype} might hurt page layout, this allows the suppression of \tsobj[pkg]{microtype}.}
 
@@ -210,22 +228,25 @@
 
 	\describe {showlabels} { it will put a reference mark in each label created, and print out it's name.}
 
-	\describe {tocdepth} { use: \tsobj[key]{tocdepth}=\tsobj[meta]{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to appears in the Table of Contents (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default value being 3 (\tsmacro{\subsubsection}{}).}
+	\describe {tocdepth} { use: \tsobj[key]{tocdepth} = \tsobj[meta]{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to appears in the Table of Contents (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default value being 3 (\tsmacro{\subsubsection}{}).}
 
-	\describe {secdepth} { use: \tsobj[key]{secdepth}=\tsobj[meta]{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to be numbered. (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default value being 4 (\tsmacro{\paragraph}{}).}
+	\describe {secdepth} { use: \tsobj[key]{secdepth} = \tsobj[meta]{number}, whereas \tsobj[meta]{number} indicates the deepest sectioning to be numbered. (0 being the top section, which is \tsmacro{\chapter}{} for report based classes, 1 being \tsmacro{\section}{}, and so on.) The default value being 4 (\tsmacro{\paragraph}{}).}
 
-	\describe {dctools} {  this will change page layout and base class to article, it is meant to document the class itself.}
 \end{describelist}
 
 
 \subsection{Commands}
 
-\begin{codedescribe}{\keyword}
+\begin{codedescribe}[code,new=2023/11/18]{\mainkeyword,\otherkeyword}
 	\begin{codesyntax}%
-		\tsmacro{\keyword}{keyword}
+		\tsmacro{\mainkeyword}{keyword}
+    \tsmacro{\otherkeyword}{keyword}
 	\end{codesyntax}
-  This command can be invoked many times, it will construct a list of keywords to be used when printing out the abstract environment.
+  These command can be invoked many times, it will construct a list of keywords  to be used when printing out the (main/other)abstract environment.
 \end{codedescribe}
+\begin{tsremark}
+  the old \tsmacro{\keyword}{keyword} gets defined, as an allias to \tsobj{\mainkeyword}, in case one use the \tsobj[key]{oldrenews} class option is used.
+\end{tsremark}
 
 \begin{codedescribe}{\sourcecitation,\note}
 	\begin{codesyntax}
@@ -269,7 +290,7 @@
 		\tsmacro{\NewChapListEnv}{envname,displayname}
 	\end{codesyntax}
 \end{codedescribe}
-This is the command used to created those \emph{chapter like} lists, like `List of Symbols' or `List of acronyms'. With it, a new environment is created, \tsobj[meta]{envname}, with an associated `numberless' chapter name \tsobj[meta]{displayname}. The newly created environment will implement a \emph{description} like environment (thanks to \tsobj[pkg]{enumitem}) with an optional and a mandatory argument (see below).
+Creates those \emph{chapter like} lists, like `List of Symbols' or `List of acronyms'. With it, a new environment is created, \tsobj[meta]{envname}, with an associated `numberless' chapter name \tsobj[meta]{displayname}. The newly created environment will implement a \emph{description} like environment (thanks to \tsobj[pkg]{enumitem}) with an optional and a mandatory argument (see below).
 
 \begin{codestore}[st=d.newchapenv]
 	\def\listabbrvname{Lista de Abreviaturas}
@@ -288,32 +309,33 @@
 
 
 \subsection{Environments}
-
-\begin{codedescribe}[env]{abstract}
+\begin{codedescribe}[env,new=2023/11/18]{mainabstract}
 	\begin{codesyntax}%
-		\tsmacro{\begin{abstract}}[lang]{keywords}\ldots\tsmacro{\end{abstract}}{}
+		\tsmacro{\begin{mainabstract}}[lang]{keywords}\ldots\tsmacro{\end{mainabstract}}{}
 	\end{codesyntax}
-	The standard environment \tsobj[env]{abstract} is redefined as a numberless chapter based on the current locale (default: Portuguese), at the end of it the keywords list created with \tsmacro{\keyword}{} will be added.
+	\tsobj[env]{mainabstract} is defined as a numberless chapter based on the current locale (default: Portuguese), at the end of it the keywords list created with \tsmacro{\mainkeyword}{} will be added.
 \end{codedescribe}
 
 \begin{codestore}[st=d.abstract]
-	\keyword{a keyword}
-	\keyword{another keyword}
-	\begin{abstract} some short summary of things\ldots
-	\end{abstract}
+	\mainkeyword{a keyword}
+	\mainkeyword{another keyword}
+	\begin{mainabstract} some short summary of things\ldots
+	\end{mainabstract}
 \end{codestore}
 \tscode*{d.abstract}
 
-\begin{codedescribe}[env]{otherabstract}
+\begin{codedescribe}[env,update=2023/11/18]{otherabstract}
 	\begin{codesyntax}%
-		\tsmacro{\begin{otherabstract}}[lang]{keywords}\ldots\tsmacro{\end{otherabstract}}{}
+		\tsmacro{\begin{otherabstract}}[lang]\ldots\tsmacro{\end{otherabstract}}{}
 	\end{codesyntax}
 This is the environment to create an abstract in a language other than the default one.
-The default value for \tsobj[meta]{lang} is english, and it can be any value that \tsobj[pkg]{babel} understands. The \tsobj[meta]{keywords} are just a list of keywords which will be added at the end of the \emph{otherabstract}.
+The default value for \tsobj[meta]{lang} is english, and it can be any value that \tsobj[pkg]{babel} understands. A keywords list created with \tsmacro{\otherkeyword}{} will be added at the end of it.
 \end{codedescribe}
 
 \begin{codestore}[st=d.oabstract]
-	\begin{otherabstract}[english]{a keyword, another keyword} some short summary of things\ldots
+	\otherkeyword{a keyword}
+	\otherkeyword{another keyword}
+	\begin{otherabstract}[english] some short summary of things\ldots
 	\end{otherabstract}
 \end{codestore}
 \tscode*{d.oabstract}
@@ -484,69 +506,181 @@
 
 
 \section{\tightul{ufrgscca-core} Package}
-The \tsobj[pkg]{ufrgscca-core} package defines a set of commands for author's, student's, advisor's examiner's names and related info. It is needed by most/all of the bundled packages.
+The \tsobj[pkg]{ufrgscca-core} package defines a set of commands for  student's and activity's related info. It is needed by most/all of the bundled packages.
 
-\subsection{Core Forms Commands}
-\begin{codedescribe}{\tccbrief,\tcccoadvisorbrief,\tccadvisorsreview}
+All data is stored in two main \tsobj[pack]{starray} defined as follow:
+
+\begin{codestore}[st=activitydef]
+  {
+    name , acronym ,
+    coord . struct 
+      {
+        name , title ,
+        article , Article , narticle , Narticle , carticle , Carticle ,
+      } ,
+    calendar . struct
+      {
+        date ,  week , event ,
+      } ,
+      chkmarked , chkunmarked , chkref
+  }
+\end{codestore}
+
+\tscode*[codeprefix={Activity's Structure Definition:},basicstyle={\scriptsize\ttfamily}]{activitydef}\label{activity-def}
+
+
+\begin{codestore}[st=studentdef]
+ {
+  first , last , name , Nproc , ID , email , worktitle ,
+        article , Article , narticle , Narticle , carticle , Carticle ,
+  remarks , checklist , brief , reason , 
+  board-local , board-date , board-time , gradeavrg , grade ,
+  flag-graded , %%% IF gradeavrg AND finalgrade already calculated (or defined)
+  flag-exam ,
+  flag-ff ,
+  flag-dismiss , %%% IF it was the 1st semester.
+  flag-newpage , %% if it should go in a new page (board)
+  flag-distinctboard , %% if advisor isn't in the board
+  flag-approved ,
+  flag-coadvisor ,
+  advisor . struct {
+    first , last , name , institution , title , email , phone ,    
+        article , Article , narticle , Narticle , carticle , Carticle ,
+    assessment 
+  } ,
+  coadvisor . struct {
+    first , last , name , institution , title , email , phone ,    
+        article , Article , narticle , Narticle , carticle , Carticle ,
+    reason 
+  } ,
+  reviewer . struct {
+    first , last , name , institution , title , email , phone ,    
+        article , Article , narticle , Narticle , carticle , Carticle ,
+    pointA , pointB , pointC , pointD , grade , gradetype ,    
+  } ,
+  altreviewer . struct {
+    first , last , name , institution , title , email , phone ,    
+        article , Article , narticle , Narticle , carticle , Carticle ,
+  } ,
+  internship . struct {
+    company , field , start , end , length , 
+  } ,
+  tutor . struct {
+    first , last , name , title , email , phone ,    
+        article , Article , narticle , Narticle , carticle , Carticle ,
+  } ,
+  supervisor . struct {
+    first , last , name , register , title , office , email , phone ,    
+        article , Article , narticle , Narticle , carticle , Carticle ,
+  } ,
+ }
+\end{codestore}
+
+\tscode*[codeprefix={Student's Structure Definition:},basicstyle={\scriptsize\ttfamily}]{studentdef}\label{student-def}
+
+
+
+\subsection{Core Commands}\label{core-commands}
+
+
+
+\begin{codedescribe}[code,new=2023/11/18]{\NewActivity}
 	\begin{codesyntax}%
-		\tsmacro{\tccbrief}{brief}
-		\tsmacro{\tcccoadvisorbrief}{brief}
-		\tsmacro{\tccadvisorsreview}{brief}
+		\tsmacro{\NewActivity}{act-hash}
 	\end{codesyntax}
-Those commands are only of use when using \tsobj[pkg]{ufrgscca-forms}. \tsmacro{\tccbrief}{} sets the work initial summary, \tsmacro{\tcccoadvisorbrief}{} sets the justification for having a co-advisor, \tsmacro{\tccadvisorsreview}{} sets the advisor's review.
+This will create a new 'activity'. Predefined ones being: \tsobj[option]{course,tccI,tccII,internship,internship-opt}.
 \end{codedescribe}
+\begin{tsremark}
+This will create a \tsobj[pack]{starray}, the \tsobj[meta]{act-hash} being it's \tsobj[meta]{hash}.
+\end{tsremark}
 
-\subsection{Core Global Commands}\label{core-commands}
 
-\begin{codedescribe}{\location}
+
+\begin{codedescribe}[code,new=2023/11/18]{\ActivitySet,\ActivitySetCoordTitle,\ActivitySetCoord}
 	\begin{codesyntax}%
-		\tsmacro{\location}{city,state}
+    \tsmacro{\ActivitySet}[act-hash]{acronym,name}
+    \tsmacro{\ActivitySetCoordTitle}[act-hash]{title}
+    \tsmacro{\ActivitySetCoord}[act-hash]{name}\tsargs[oarg]{gender}
 	\end{codesyntax}
-	To redefine the default values of \tsobj[meta]{city} and \tsobj[meta]{state} (Porto Alegre and RS).\\
+These will set an Activity many fields. \tsobj[meta]{acronym,name} being the short (acronym) and long name of an activity. \tsobj[meta]{title} is the coordinator formal title, and so on.
 \end{codedescribe}
 
-\begin{codedescribe}{\TCCcoord,\TCCcoordtitle}
+
+
+\begin{codedescribe}[code,new=2023/11/18]{\ActivitySelect,\Activity,\ActivityCoord}
 	\begin{codesyntax}%
-		\tsobj[code]{\TCCcoord}{\tsobj[marg]{(title) full name}\tsobj[oarg]{gender}}
-		\tsmacro{\TCCcoordtitle}{coordinator denomination}
+    \tsmacro{\ActivitySelect}{act-hash}
+    \tsmacro{\Activity}[act-hash]{act-field}
+    \tsmacro{\ActivityCoord}[act-hash]{coord-field}
 	\end{codesyntax}
+\tsobj{\ActivitySelect} just sets \tsobj[meta]{act-hash} as the current activity (set's the \tsobj[pack]{starray} iter). \tsobj{\Activity,\ActivityCoord} gets the corresponding field.
+Possible values for \tsobj[meta]{act-field} are: \tsobj[option]{name,acronym}.
+Possible values for \tsobj[meta]{coord-field} are: \tsobj[option]{name,title,article,Article,narticle,Narticle,carticle,Carticle}, as defined by \emph{Activity's structure} (see \ref{activity-def}).
+
 \end{codedescribe}
 
-\begin{codedescribe}{\coursecoord,\coursecoordtitle}
+\subsection{Core Auxiliary Commands}
+
+
+\begin{codedescribe}[code,new=2023/11/18]{\studentselect}
 	\begin{codesyntax}%
-		\tsobj[code]{\coursecoord}{\tsobj[oarg]{(title) full name}\tsobj[oarg]{gender}}
-		\tsmacro{\coursecoordtitle}{course coordinator denomination}
+    \tsmacro{\studentselect}{student-hash}
 	\end{codesyntax}
+Select a student based on it's hash.
 \end{codedescribe}
- \tsobj[meta]{coordinator denomination} and \tsobj[meta]{course coordinator denomination} are the full 'job title' of their position. \tsobj[meta]{gender} can be either 'm' or 'f'.
 
-\begin{codedescribe}{\internshipcoord,\internshipcoordtitle}
-    \begin{codesyntax}%
-        \tsobj[code]{\internshipcoord}{\tsobj[oarg]{(title) full name}\tsobj[oarg]{gender}}
-        \tsmacro{\internshipcoordtitle}{internship coordinator denomination}
-    \end{codesyntax}
+
+
+
+\begin{codedescribe}[code,new=2023/11/18]{\DataFields,\eDataSet,\eDataFields}
+	\begin{codesyntax}%
+    \tsmacro{\DataFields}{starray-ref,field}
+    \tsmacro{\eDataSet}[act-hash]{starray-ref}
+    \tsmacro{\eDataFields}{field}
+	\end{codesyntax}
+These are, respectively, \tsobj{\starray_get_prop:nn, \starray_term_syntax:n,\starray_parsed_get_prop:n} from \tsobj[pack]{starray}. One can reference/get any field from the main \tsobj[pack]{starray} defined structures: \tsobj[key]{student,activity} as defined at chapter \ref{activity-def}.
 \end{codedescribe}
-\tsobj[meta]{coordinator denomination} and \tsobj[meta]{internship coordinator denomination} are the full 'job title' of their position. \tsobj[meta]{gender} can be either 'm' or 'f'.
 
 
+\begin{codedescribe}[code,new=2023/11/18]{\studentiterate}
+	\begin{codesyntax}%
+    \tsmacro{\studentiterate}{code}
+	\end{codesyntax}
+This is \tsobj{\starray_iterate_over:nn} from \tsobj[pack]{starray}. \tsobj[meta]{code} will be executed for every defined student.
+\end{codedescribe}
+
+
+
 \subsection{Core Specific Commands}\label{core-specific-commands}
 
 The following commands are more or less self-explanatory, \tsobj[meta]{ID} is the student's university ID. \tsobj[meta]{Nproc} is the process/request number. \tsobj[meta]{gender} can be either 'm' or 'f'.
 
 
-\begin{codedescribe}{\author,\authorinfo,\student,\studentinfo}%,\studentgender}
+\begin{codedescribe}[code,update=2023/11/18]{\student,\studentinfo}%,\studentgender}
 	\begin{codesyntax}
-		\tsobj[code]{ \author}{\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
-		\tsmacro{\authorinfo}[Nproc]{ID,email}
-		\tsobj[code]{\student}{\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
+		\tsobj[code]{\student}{\tsargs[oarg]{student-hash}\tsargs[marg]{last,first}\tsargs[oarg]{gender}}
 		\tsmacro{\studentinfo}[Nproc]{ID,email}
 	\end{codesyntax}
 \end{codedescribe}
+\begin{tsremark}[N.B.:]
+ If the package option \tsobj[option]{oldrenews} is used, the command \tsobj{\author,\authorinfo} will be redefined as an allias to \tsobj{\student,\studentinfo}.
+\end{tsremark}
 
 
+
+\begin{codedescribe}[code,new=2023/11/18]{\workbrief,\advisorreview,\coadvisorreason,\workchange}
+	\begin{codesyntax}%
+		\tsmacro{\workbrief}{work-summary}
+		\tsmacro{\advisorreview}{advisor's-review}
+		\tsmacro{\coadvisorreason}{reason-for-a-coadvisor}
+    \tsmacro{\workchange}{reason-for-the-change}
+	\end{codesyntax}
+Those commands are only of use when using \tsobj[pkg]{ufrgscca-forms}. \tsmacro{\workbrief}{} sets the work initial summary, \tsmacro{\coadvisorreason}{} sets the justification for having a co-advisor, \tsmacro{\advisorreview}{} sets the advisor's review, \tsmacro{\workchange}{} sets the reason for the work's theme change.
+\end{codedescribe}
+
 \begin{codedescribe}{\advisor,\advisorinfo}%,\advisorgender}
 	\begin{codesyntax}
-		\tsobj[code]{\advisor}{\tsobj[oarg]{title}\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
+		\tsobj[code]{\advisor}{\tsargs[oarg]{title}\tsargs[marg]{last,first}\tsargs[oarg]{gender}}
 		\tsmacro{\advisorinfo}{Institut,title-info,email,phone}
 	\end{codesyntax}
 \end{codedescribe}
@@ -553,14 +687,22 @@
 
 \begin{codedescribe}{\coadvisor,\coadvisorinfo}%,\coadvisorgender}
 	\begin{codesyntax}
-		\tsobj[code]{\coadvisor}{\tsobj[oarg]{title}\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
+		\tsobj[code]{\coadvisor}{\tsargs[oarg]{title}\tsargs[marg]{last,first}\tsargs[oarg]{gender}}
 		\tsmacro{\coadvisorinfo}{Institut,title-info,email,phone}
 	\end{codesyntax}
 \end{codedescribe}
 
+\begin{codedescribe}[code,new=2023/11/18]{\distinctboard}
+	\begin{codesyntax}%
+		\tsmacro{\distinctboard}{}
+	\end{codesyntax}
+For the rare case in which the advisor won't take part in the examiner's board.
+\end{codedescribe}
+
+
 \begin{codedescribe}{\examiner,\examinerinfo}%,\examinergender}
 	\begin{codesyntax}
-		\tsobj[code]{\examiner}{\tsobj[oarg]{title}\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
+		\tsobj[code]{\examiner}{\tsargs[oarg]{title}\tsargs[marg]{last,first}\tsargs[oarg]{gender}}
 		\tsmacro{\examinerinfo}{Institut,title-info,email,phone}
 	\end{codesyntax}
 \end{codedescribe}
@@ -567,14 +709,20 @@
 
 \begin{codedescribe}{\altexaminer,\altexaminerinfo}%,\altexaminergender}
 	\begin{codesyntax}
-		\tsobj[code]{\altexaminer}{\tsobj[oarg]{title}\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
+		\tsobj[code]{\altexaminer}{\tsargs[oarg]{title}\tsargs[marg]{last,first}\tsargs[oarg]{gender}}
 		\tsmacro{\altexaminerinfo}{Institut,title-info,email,phone}
 	\end{codesyntax}
 \end{codedescribe}
 
+\begin{codedescribe}[code,new=2023/11/18]{\internship}%,\tutorgender}
+\begin{codesyntax}
+    \tsmacro{\internship}{company,field,start,end,length}
+\end{codesyntax}
+\end{codedescribe}
+
 \begin{codedescribe}{\tutor,\tutorinfo}%,\tutorgender}
 \begin{codesyntax}
-    \tsobj[code]{\tutor}{\tsobj[oarg]{title}\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
+    \tsobj[code]{\tutor}{\tsargs[oarg]{title}\tsargs[marg]{last,first}\tsargs[oarg]{gender}}
     \tsmacro{\tutorinfo}{Institut,title-info,email,phone}
 \end{codesyntax}
 \end{codedescribe}
@@ -581,54 +729,101 @@
 
 \begin{codedescribe}{\supervisor,\supervisorinfo}%,\tutorgender}
 \begin{codesyntax}
-    \tsobj[code]{\supervisor}{\tsobj[oarg]{title}\tsobj[marg]{last}\tsobj[marg]{first}\tsobj[oarg]{gender}}
+    \tsobj[code]{\supervisor}{\tsargs[oarg]{title}\tsargs[marg]{last,first}\tsargs[oarg]{gender}}
     \tsmacro{\supervisorinfo}{register,office,email,phone}
 \end{codesyntax}
 \end{codedescribe}
 
 \begin{tsremark}[N.B.:]
-The commands \tsmacro{\advisor}{}, \tsmacro{\coadvisor}{}, \tsmacro{\examiner}{} and \tsmacro{\altexaminer}{} are meant to be used in a 'final work' doc. The Macros \tsmacro{\tutor}{} and \tsmacro{\supervisor}{} in case of an internship report.
+The commands \tsobj{\advisor,\coadvisor,\examiner,\altexaminer} are meant to be used in a 'final work' doc. The Macros \tsobj{\internship,\tutor,\supervisor} in case of an internship report.
 \end{tsremark}
 
 
 \section{\tightul{ufrgscca-cover} Package}
-This package is the one that sets the front pages, depending on the kind of 'report' being generated. The default being to generate 3 cover pages: an identification on, followed by presentation one, then an referral/approval one.
+This package is the one that sets the front pages, depending on the kind of 'report' being generated. 
 
-\subsection{Package Options}
+%%%\subsection{Package Options}
+%%%\begin{describelist}{option}
+%%%	\describe {report} { in case the doc is just a class assignment with, possibly, many co-authors. It changes mainly the front matter, which is simplified (no referral page, for instance).}
+%%%    \describe {internship} { in case the doc is an internship report.}
+%%%    \describe {nonrequired} { in case the internship report is related to a “non required” / “optional” internship. This option is ignored otherwise.}
+%%%
+%%%\end{describelist}
+
+\subsection{Defined Commands}
+\begin{codedescribe}[code,new=2023/11/18]{\MakeCoverPages}
+	\begin{codesyntax}%
+		\tsmacro{\MakeCoverPages}{type}
+	\end{codesyntax}
+This is the main command, which will typeset the front matter, from the information already given. \tsobj[meta]{type} sets the 'kind' of cover pages to be generated. Currently, it can be one of:
+\end{codedescribe}
 \begin{describelist}{option}
-	\describe {report} { in case the doc is just a class assignment with, possibly, many co-authors. It changes mainly the front matter, which is simplified (no referral page, for instance).}
-    \describe {internship} { in case the doc is an internship report.}
-    \describe {nonrequired} { in case the internship report is related to a “non required” / “optional” internship. This option is ignored otherwise.}
-
+\describe{tccI}{Generate 3 pages, a first cover one, a second with work's description and third last one with work's approval for TCC-I}
+\describe{tccII}{Generate 3 pages, a first cover one, a second with work's description and third last one with work's approval for TCC-II}
+\describe{internship}{Generate 2 pages, a first cover one, a second with work's approval for internship report}
+\describe{internship-opt}{Generate 2 pages, a first cover one, a second with work's approval for optional internship report}
+\describe{class-report}{Generate 1  cover page}
 \end{describelist}
+\begin{tsremark}[N.B.:]
+ If the package option \tsobj[option]{oldrenews} is used, the command \tsobj{\maketitle} will be redefined as an allias to \tsobj{\MakeCoverPages}.
+\end{tsremark}
 
-\subsection{Defined Commands}
-\begin{codedescribe}{\maketitle}
+
+\begin{codedescribe}{\location}
 	\begin{codesyntax}%
-		\tsmacro{\maketitle}{}
+		\tsmacro{\location}{city,state}
 	\end{codesyntax}
-This is the only main command, which will typeset the front matter. It requires that all \emph{specific info} be already set up (like work title, author's name, affiliation, etc.)
+	To redefine the default values of \tsobj[meta]{city} and \tsobj[meta]{state} (Porto Alegre and RS).\\
 \end{codedescribe}
 
+\begin{codedescribe}[code,new=2023/11/18]{\class}
+	\begin{codesyntax}%
+		\tsmacro{\class}{code,name}
+	\end{codesyntax}
+	To set the class code and name, for the cover page, in case of a class report.
+\end{codedescribe}
 
-\begin{codedescribe}{\course,\courseacronym,\graduationtitle,\university,\universityacronym,%
-		\universitydivision,\divisiongradcouncil,\department,\classcode,\classname,\subject}
-\begin{codesyntax}%
-	\tsmacro{\course}{arg}
-	\tsmacro{\courseacronym}{arg}
-	\tsmacro{\graduationtitle}{arg}
-	\tsmacro{\university}{arg}
-	\tsmacro{\universityacronym}{arg}
-	\tsmacro{\universitydivision}{arg}
-	\tsmacro{\divisiongradcouncil}{arg}
-	\tsmacro{\department}{arg}
-	\tsmacro{\classcode}{arg}
-	\tsmacro{\classname}{arg}
-	\tsmacro{\subject}{arg}
-\end{codesyntax}
-In case some customization is needed, one can change them as needed. The default values are set for the \emph{control and automation} course at UFRGS/EE.
+
+\begin{codedescribe}[code,new=2023/11/18]{\SetCoverFields}
+	\begin{codesyntax}%
+		\tsmacro{\SetCoverFields}{type,field,value}
+	\end{codesyntax}
+	This allows to redefine the aforementioned \tsobj[meta]{types} and create new types of cover pages. \tsobj[meta]{field} is one of:
 \end{codedescribe}
+\begin{describelist}{option}
+\describe{clist}{this defines which kind, and order, of pages will be generated. Possible values are: \tsobj[option]{cover,desc,approval}.}
+\describe{top}{This will be the common top matter used.}
+\describe{students}{How students names, authors, will be presented}
+\describe{title}{The title to be used}
+\describe{bottom}{The bottom of the cover page.}
+\describe{text-descpage}{The text presented in the desc page.}
+\describe{advisor-descpage}{Advisor's matter.}
+\describe{bottom-descpage}{The bottom of the desc page.}
+\describe{text-approvalpage}{The text presented in the approval page.}
+\describe{advisor-approvalpage}{Advisor´s matter in the approval page.}
+\describe{bottom-approvalpage}{The bottom of the approval page.}
+\end{describelist}
 
+
+%%
+%%\begin{codedescribe}{\course,\courseacronym,\graduationtitle,\university,\universityacronym,%
+%%		\universitydivision,\divisiongradcouncil,\department,\classcode,\classname,\subject}
+%%\begin{codesyntax}%
+%%	\tsmacro{\course}{arg}
+%%	\tsmacro{\courseacronym}{arg}
+%%	\tsmacro{\graduationtitle}{arg}
+%%	\tsmacro{\university}{arg}
+%%	\tsmacro{\universityacronym}{arg}
+%%	\tsmacro{\universitydivision}{arg}
+%%	\tsmacro{\divisiongradcouncil}{arg}
+%%	\tsmacro{\department}{arg}
+%%	\tsmacro{\classcode}{arg}
+%%	\tsmacro{\classname}{arg}
+%%	\tsmacro{\subject}{arg}
+%%\end{codesyntax}
+%%In case some customization is needed, one can change them as needed. The default values are set for the \emph{control and automation} course at UFRGS/EE.
+%%\end{codedescribe}
+
 \section{\tightul{ufrgscca-forms} Package}
 This package defines just two user commands to generate specific forms needed at UFRGS/EE.
 \subsection{Forms Defined Commands}\label{forms.commands}
@@ -641,7 +836,7 @@
 
 \end{codedescribe}
 
-\tsobj[meta]{formslist} is a csv list of any of:
+\tsobj[meta]{formslist} is a csv list of:
 \begin{describelist*}{option}
     \describe {reqform-I} {}
     \describe {reqform-II} { Registration requirement form.}
@@ -662,10 +857,18 @@
 \end{describelist*}
 Please note that those '-I' regards TCC-I, while '-II' regards TCC-II.
 
+\begin{codedescribe}[code,new=2023/11/18]{\SetForm,\MakeForm}
+	\begin{codesyntax}%
+\tsmacro{\SetForm}{form-hash,field,code}
+\tsmacro{\MakeForm}{form-hash}
+\end{codesyntax}
+\tsobj{\SetForm} can be used to set new forms (or redefine existent ones). \tsobj[meta]{form-hash} being a free identifier. Possible \tsobj[meta]{field} values are \tsobj[key]{heading,title,opening,body,closing,footnone}. \tsobj{\MakeForm} typesets the selected form.
+\end{codedescribe}
 
+
 \section{\tightul{ufrgscca-lists} Package}
 The following packages are always pre-loaded: \tsobj[pkg]{ newfloat, listings, xcolor}.
-It defines a new \emph{floating environment}. Combined with \tsobj[pkg]{listings} one can typeset exempts of \emph{code listing}.
+It defines a new \emph{floating environment} \tsobj[env]{codelist}. Combined with \tsobj[pkg]{listings} one can typeset exempts of a \emph{code listing}.
 
 \subsection{Environment}
 \begin{codedescribe}[env]{codelist}
@@ -723,73 +926,58 @@
 \fi
 
 \iffulldoc
-\section{\tightul{ufrgscca-gen} Package (extended documentation)}
-Just two set of commands are defined, one is kind of a 'command factory' aimed at creating macros in a standard way, while the other helps create 'case like' commands.
-
-
-\subsection{Package Options}
-\begin{describelist}{option}
-	\describe {family} { sets the family name, defaults to \tsobj[value]{tcdef}.}
-	\describe {group} { sets the group name, defaults to \tsobj[value]{gen}.}
-\end{describelist}
-
-\subsection{Defined Commands}
-\begin{codedescribe}{\cmdfactory,\factory,\tcgen at cdef}
-	\begin{codesyntax}%
-		\tsobj[code]{\cmdfactory}{\tsobj[oarg]{fam}\tsobj[xarg]{grp}\tsobj[marg]{cmd-list}}
-		\tsobj[code]{\factory}{\tsobj[oarg]{fam}\tsobj[xarg]{grp}\tsobj[marg]{cmd}}
-		\tsobj[code]{\tcgen at cdef}{\tsobj[oarg]{fam}\tsobj[xarg]{grp}\tsobj[marg]{cmd}\tsobj[marg]{new-val}}
-	\end{codesyntax}
-	\tsmacro{\cmdfactory}{} is the actual command meant to be used (the other two are just auxiliary ones). \tsobj[meta]{cmd-lst} is a csv list of commands. \tsobj[meta]{fam} is the command \emph{family} (defaults to \emph{tcdef}) and \tsobj[meta]{grp} is the family group (defaults to \emph{gen}).
-
-	The newly created commands will be based on \tsmacro{\tcgen at cdef}{} (the actual assigment command) having the form \tsmacro{\cmd}{new-val}, accepting a single mandatory value. Internally \tsobj[meta]{new-val} will be stored in a macro likely named \tsmacro{\fam at grp@cmd}{}.
-
-    \tsmacro{\factory}{} is basically the same as \tsmacro{\cmdfactory}{}, whilst to create just one new command (it is the command called by \tsmacro{\cmdfactory}{} via \tsmacro{\forcsvlist}{}.)
-\end{codedescribe}
-
-\begin{codedescribe}{\mkswitch,\addcase}
-	\begin{codesyntax}%
-		\tsmacro{\mkswitch}[default]{sw-name}
-		\tsmacro{\addcase}{sw-name,str-case,code}
-	\end{codesyntax}
-	\tsmacro{mkswitch}{} will create a command, \tsmacro{\sw-name}{case}, which will behave like a switch/case in other programming languages. \tsobj[meta]{default} is the code to be executed in case a \emph{switching value} isn't defined.
-	\tsmacro{\addcase}{} adds \emph{cases}, one by one, to the switch. \tsobj[meta]{str-case} can be any \tsmacro{\csname}{} valid name. \tsobj[meta]{code} is the code to be executed.
-
-	\begin{codestore}[st=d.switch]
-		\mkswitch[\gr at depcut]\gr at case@angle
-		\addcase\gr at case@angle{}{\def\gr at ANG{0}}
-		\addcase\gr at case@angle{A}{\def\gr at ANG{\gr at A}}
-		%%
-		%% actual use of the switch
-		\gr at case@angle{A}  % this will result in \def\gr at ANG{\gr at A}
-	\end{codestore}
-	\tscode*{d.switch}
-\end{codedescribe}
+%%%%\section{\tightul{ufrgscca-gen} Package (extended documentation)}
+%%%%Just two set of commands are defined, one is kind of a 'command factory' aimed at creating macros in a standard way, while the other helps create 'case like' commands.
+%%%%
+%%%%
+%%%%\subsection{Package Options}
+%%%%\begin{describelist}{option}
+%%%%	\describe {family} { sets the family name, defaults to \tsobj[value]{tcdef}.}
+%%%%	\describe {group} { sets the group name, defaults to \tsobj[value]{gen}.}
+%%%%\end{describelist}
+%%%%
+%%%%\subsection{Defined Commands}
+%%%%\begin{codedescribe}{\cmdfactory,\factory,\tcgen at cdef}
+%%%%	\begin{codesyntax}%
+%%%%		\tsobj[code]{\cmdfactory}{\tsobj[oarg]{fam}\tsobj[xarg]{grp}\tsobj[marg]{cmd-list}}
+%%%%		\tsobj[code]{\factory}{\tsobj[oarg]{fam}\tsobj[xarg]{grp}\tsobj[marg]{cmd}}
+%%%%		\tsobj[code]{\tcgen at cdef}{\tsobj[oarg]{fam}\tsobj[xarg]{grp}\tsobj[marg]{cmd}\tsobj[marg]{new-val}}
+%%%%	\end{codesyntax}
+%%%%	\tsmacro{\cmdfactory}{} is the actual command meant to be used (the other two are just auxiliary ones). \tsobj[meta]{cmd-lst} is a csv list of commands. \tsobj[meta]{fam} is the command \emph{family} (defaults to \emph{tcdef}) and \tsobj[meta]{grp} is the family group (defaults to \emph{gen}).
+%%%%
+%%%%	The newly created commands will be based on \tsmacro{\tcgen at cdef}{} (the actual assigment command) having the form \tsmacro{\cmd}{new-val}, accepting a single mandatory value. Internally \tsobj[meta]{new-val} will be stored in a macro likely named \tsmacro{\fam at grp@cmd}{}.
+%%%%
+%%%%    \tsmacro{\factory}{} is basically the same as \tsmacro{\cmdfactory}{}, whilst to create just one new command (it is the command called by \tsmacro{\cmdfactory}{} via \tsmacro{\forcsvlist}{}.)
+%%%%\end{codedescribe}
+%%%%
+%%%%\begin{codedescribe}{\mkswitch,\addcase}
+%%%%	\begin{codesyntax}%
+%%%%		\tsmacro{\mkswitch}[default]{sw-name}
+%%%%		\tsmacro{\addcase}{sw-name,str-case,code}
+%%%%	\end{codesyntax}
+%%%%	\tsmacro{mkswitch}{} will create a command, \tsmacro{\sw-name}{case}, which will behave like a switch/case in other programming languages. \tsobj[meta]{default} is the code to be executed in case a \emph{switching value} isn't defined.
+%%%%	\tsmacro{\addcase}{} adds \emph{cases}, one by one, to the switch. \tsobj[meta]{str-case} can be any \tsmacro{\csname}{} valid name. \tsobj[meta]{code} is the code to be executed.
+%%%%
+%%%%	\begin{codestore}[st=d.switch]
+%%%%		\mkswitch[\gr at depcut]\gr at case@angle
+%%%%		\addcase\gr at case@angle{}{\def\gr at ANG{0}}
+%%%%		\addcase\gr at case@angle{A}{\def\gr at ANG{\gr at A}}
+%%%%		%%
+%%%%		%% actual use of the switch
+%%%%		\gr at case@angle{A}  % this will result in \def\gr at ANG{\gr at A}
+%%%%	\end{codestore}
+%%%%	\tscode*{d.switch}
+%%%%\end{codedescribe}
 \fi
 
 \iffulldoc
 \section{\tightul{ufrgscca-coord} Package (extended documentation)}
 This package defines a set of auxiliary commands meant to support the Professor coordinating students work.
-it will always pre-load the \tsobj[pkg]{longtable} and \tsobj[pkg]{ufrgscca-forms} packages. One can select the reports/forms to be generated using the package options or the command \tsmacro{\setreports}{keys}
+it will always pre-load the \tsobj[pkg]{longtable} and \tsobj[pkg]{ufrgscca-forms} packages.
 
 N.B. It might be also useful to use the commands defined at \autonameref{forms.commands}.
 
-\subsection{Package/Report Options}\label{ufrgscca-coord.options}
-\begin{describelist}{option}
-	\describe {calendar} { Calendar for the period.}
-	\describe {checklist} { a students check list.}
-	\describe {report} { a student control report.}
-	\describe {reportxinfo} { report additional info.}
-	\describe {boards} { exam board dates.}
-	\describe {boarddates} { exam board dates with highlighted dates.}
-	\describe {studentlist} { a simple student list.}
-	\describe {revforms} { per student reviews forms.}
-	\describe {referral} { per student referral letters.}
-	\describe {cocertificate} { per student coadvisor certificate letter (if any).}
-\end{describelist}
-
-\subsection{Defined Commands}
-The \emph{report document} to be created is composed of 2 main parts:
+A \emph{report document}  is composed of 2 main parts:
 \begin{enumerate}[tcc,arabic,miditemsep]
 	\item A global preamble, where one sets
 	\begin{enumerate}[tcc,alpha*,noitemsep]
@@ -800,25 +988,28 @@
     \item A 'final part' whereas one set which reports are to be generated.
 \end{enumerate}
 
-\subsubsection{Global Commands I}
-One can (should) use the commands listed at \autonameref{core-commands}, and these below:
+One can (should) use the commands listed at \autonameref{core-commands}[], and these below:
 
-\begin{codedescribe}{\checkdef}%,\checklist}
+\paragraph{Check List}
+\begin{codedescribe}[code,update=2023/11/18]{\checkdef,\checklist}%,\checklist}
 \begin{codesyntax}%
-    \tsmacro{\checkdef}{checkLC,check-item,check-text}
+    \tsmacro{\checkdef}{LxCy,check-item,check-text}
+    \tsmacro{\checklist}{check-items-list}
 \end{codesyntax}
-Whereas one has a '4x5 alphabetic matrix', lines A to D, columns A to E. \tsobj[meta]{checkLC} being one element of that matrix (from checkAA up to checkDE), \tsobj[meta]{chek-item} is a free identifier (to be used with the \tsmacro{\checklist}{}), and \tsobj[meta]{check-text} the text to appear in the 'check list report'.  So, for instance:
+Whereas one has a '4x5 matrix' (\tsobj[meta]{checkLC} being one of L1C1...L1C5, ... , L4C1...L4C5). \tsobj[meta]{chek-item} is a free identifier (to be used with the \tsmacro{\checklist}{}), and \tsobj[meta]{check-text} the text to appear in the 'check list report'.  Note this is a list \textbf{per activity} (the current one being set).
 
+\tsmacro{\checklist}{} set's those items for the current student. \tsobj[marg]{check-items-list} is a comma separated list of \tsobj[marg]{check-item}.
+
 \begin{codestore}[st=d.check]
-    \checkdef{checkAA}{tcc-part}{Rel. Parcial}        % this creates the 'check item' tcc-part and associates it with the AA position (first line, first column), display text 'Rel. Parcial'
-    \checkdef{checkBA}{partOK}{Aprov. Rel. Parcial}   % this creates 'partOK' and associates it with BA position
+    \checkdef{L1C1}{tcc-part}{Rel. Parcial}        % this creates the 'check item' tcc-part and associates it with the L1C1 position (first line, first column), display text 'Rel. Parcial'
+    \checkdef{L2C1}{partOK}{Aprov. Rel. Parcial}   % this creates 'partOK' and associates it with L2C1 position
 
-    \checkdef{checkAB}{board}{Banca def.}             %
-    \checkdef{checkBB}{board-date}{Data defesa}       % 'board-date' is associated with the BB position
+    \checkdef{L1C2}{board}{Banca def.}             %
+    \checkdef{L2C2}{board-date}{Data defesa}       % 'board-date' is associated with the L2C2 position
 
-    \checkdef{checkAE}{tcc-final}{TCC final}          %
-    \checkdef{checkBE}{approval}{Aprovação Correções} %
-    \checkdef{checkDE}{exam}{Em Exame}                % 'exam' (display 'Em Exame') is associated with the DE position
+    \checkdef{L1C5}{tcc-final}{TCC final}          %
+    \checkdef{L2C5}{approval}{Aprovação Correções} %
+    \checkdef{L4C5}{exam}{Em Exame}                % 'exam' (display 'Em Exame') is associated with the L4C5 position
     %%
     %%
     %% later on, one can use (inside a \NewStudent command)
@@ -828,129 +1019,141 @@
 
 \tscode*[emph={{tcc-part},partOK,board,board-date,{tcc-final},approval,exam}]{d.check}
 
-Be aware that, \tsmacro{\checkdef}{} can and should be only used at the preamble, whereas \tsmacro{\checklist}{} can only be used at the 'student data definition' context (meaning, inside the \tsmacro{\NewStudent}{} command).
 \end{codedescribe}\\
 
 
-\paragraph{Final Work Specific}
+\paragraph{Auxiliary / Report Specific}
 
-\begin{codedescribe}{\boardstitleB,\boardsOBS,\TCCperiod}
+\begin{codedescribe}[code,new=2023/11/18]{\ActivitySetNewEvent,\ActivitySetEventDay}
 	\begin{codesyntax}%
-		\tsmacro{\boardstitleB}{titleB}
-		\tsmacro{\boardsOBS}{obs}
-		\tsmacro{\TCCperiod}{semester}
+    \tsmacro{\ActivitySetNewEvent}[act-hash]{event-hash,event-desc}
+    \tsmacro{\ActivitySetEventDay}[act-hash]{event-hash,day,week}
 	\end{codesyntax}
- \tsmacro{boardstitleB}{} sets a 2nd title line for the 'boards schedule report'. \tsmacro{\boardsOBS}{} allows to add an observation (\tsobj[meta]{obs}) for the 'boards schedule report', finally, \tsmacro{\TCCperiod} sets the current semester value.
+An activity may have a calendar/set of associated events. \tsobj[meta]{event-hash} is just a hash to reference it (\tsobj[pack]{starray} hash). \tsobj[meta]{event-desc} is the text associated with it. \tsobj[meta]{day,week} the associated date.
 \end{codedescribe}
 
-\begin{codedescribe}[code,update=2023/05/29]{\tcccalendarreset,\tcccalendarevent,\tcccalendareventdate}
+
+\begin{codedescribe}[code,new=2023/11/18]{\studentremark,\studentnewpage,\distinctboard}
 	\begin{codesyntax}%
-    \tsmacro{\tcccalendarreset}{}
-    \tsmacro{\tcccalendarevent}{week,description}
-		\tsmacro{\tcccalendareventdate}{date}
+		\tsmacro{\studentremark}{remarks}
+		\tsmacro{\studentnewpage}[student-hash]{}
+		\tsmacro{\distinctboard}{}
 	\end{codesyntax}
-With \tsobj{\tcccalendarevent} one defines the many calendar events. \tsobj[marg]{week} defines the event's week, and  \tsobj[marg]{description} the associated text. Furthermore \tsobj{\tcccalendareventdate} defines the associated \tsobj[marg]{date}. \tsobj{\tcccalendarevent} is, normally, pre-set in the \emph{ufrgscca-ptBR-coord.def} file, but can be redefined using first \tsobj{\tcccalendarreset}.
+Those commands are only of use when using \tsobj[pkg]{ufrgscca-coord}. \tsmacro{\studentremark}{} sets a free remark text (notes about). Whilst, \tsobj{\distinctboard,\studentnewpage} set the \tsobj[key]{flag-distinctboard,flag-newpage} flags..
 \end{codedescribe}
 
 
-\begin{codedescribe}{\tcceventAweek,\tcceventBweek,.,.,.,.,\tcceventJweek}
-    \begin{codesyntax}%
-        \tsmacro{\tcceventAweek}{week num.}
-        \tsmacro{\tcceventBweek}{week num.}
-        \ensuremath{\cdots}
-        \tsmacro{\tcceventJweek}{week num.}
-    \end{codesyntax}
-    Those macros allow to change the default week value for the calendar's events.
+\begin{codedescribe}[code,new=2023/11/18]{\studentCase,\studentCoadvCase,\studentDismissCase,\studentNewPageCase,\studentDistinctBoardCase}
+	\begin{codesyntax}%
+    \tsmacro{\studentCase}{if-A-B-C,if-D,if-Exam-C,if-Exam-D,if-FF}
+    \tsmacro{\studentCoadvCase}{if-defined,if-not}
+    \tsmacro{\studentDismissCase}{if-dismiss,if-not}
+    \tsmacro{\studentNewPageCase}{if-new,if-not}
+    \tsmacro{\studentDistinctBoardCase}{if-distinct,if-not}
+	\end{codesyntax}
+These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} will execute \emph{only one} of the \tsobj[meta]{if-} accordingly.
 \end{codedescribe}
 
-\paragraph{Internship Specific}
 
-\begin{codedescribe}{\intershipcommitdates}
-    \begin{codesyntax}%
-        \tsmacro{\intershipcommitdates}{date I}{date II}
-    \end{codesyntax}
-    Use \tsmacro{\intershipcommitdates}{} to set the semester deadlines. Both dates must be given in the dd/mm/yyyy format.
-    \tsobj[meta]{date I} is the deadline for a given report still be fully evaluated. After \tsobj[meta]{date I} the given internship will be in “exam”. If the student report isn't submitted until \tsobj[meta]{date II} the student will fail with an “FF” grade.
-\end{codedescribe}
 
-
-
-\subsubsection{Global Commands II}\label{new-student}
-
-\begin{codedescribe}{\NewStudent}
+\begin{codedescribe}[code,new=2023/11/18]{\boardtitle,\boardobs,\semester}
 	\begin{codesyntax}%
-		\tsmacro{\NewStudent}{studentname,code}
+		\tsmacro{\boardtitle}{title}
+		\tsmacro{\boardobs}{obs}
+		\tsmacro{\semester}{semester}
 	\end{codesyntax}
-	This is the main command describing each \tsobj[meta]{student} associated work, advisor and exam board. In \tsobj[meta]{code} one should use the commands defined in \autonameref{core-specific-commands}, and \autonameref{student-specific-commands} (although one can use  any valid \LaTeXe~ preamble code, keep in mind those will be executed BEFORE \tsmacro{\begin{document}}{}), to describe a student work.
+ \tsmacro{\boardobs}{} allows to add an observation (\tsobj[meta]{obs}) for the 'boards schedule report', and \tsmacro{\semester} sets the current semester value.
 \end{codedescribe}
-	So, for instance:
-	\begin{codestore}[st=d.newstudent]
-\NewStudent{Artur}{
-	\student{last}{first}[m]
 
-	\studentinfo[]{243716}{email at somewhere}
-	\TCCtitle{work title}
-	\advisor{de Amorin}{Heraldo José}[m]
-	\coadvisor{Camargo Nardelli}{Vítor}[m]
-	\examinergrades{9.2}{8.5}{9.2}
-	\examiner{Götz}{Marcelo}[m]
-	\examinergrades{10}{9.5}{9.5}
-	\examiner{Comparsi Laranja}{Rafael Antônio}
-	\examinergrades{8.5}{8.5}{8}
-	\altexaminer{Ventura Bayan Henriques}{Renato}
-	%%
-	%%
-	\timeslot[Teams]{12/11}{15:30}
 
-	\studentFate[Dismiss]  %% FF or Dismiss ??
-}
-\end{codestore}
+%%%%\paragraph{Internship Specific}
+%%%%
+%%%%\begin{codedescribe}{\intershipcommitdates}
+%%%%    \begin{codesyntax}%
+%%%%        \tsmacro{\intershipcommitdates}{date I}{date II}
+%%%%    \end{codesyntax}
+%%%%    Use \tsmacro{\intershipcommitdates}{} to set the semester deadlines. Both dates must be given in the dd/mm/yyyy format.
+%%%%    \tsobj[meta]{date I} is the deadline for a given report still be fully evaluated. After \tsobj[meta]{date I} the given internship will be in “exam”. If the student report isn't submitted until \tsobj[meta]{date II} the student will fail with an “FF” grade.
+%%%%\end{codedescribe}
 
-\tscode*{d.newstudent}
 
-\begin{tsremark}[N.B.:]
-Internally, \tsmacro{\NewStudent}{} will create a command named \tsmacro{\studentname}{}, with a \emph{hook} named \tsmacro{\studentname.hook}{} (the dot is part of the hook's name).
-\end{tsremark}
 
+%%\subsubsection{Global Commands II}\label{new-student}
 
-\begin{codedescribe}{\NewInternshipStudent}
-    \begin{codesyntax}%
-        \tsmacro{\NewInternshipStudent}{studentname,code}
-    \end{codesyntax}
-    This is the main command describing each \tsobj[meta]{student} associated internship, tutor and advisor. In \tsobj[meta]{code} one should use the commands defined in \autonameref{core-specific-commands}, and \autonameref{student-specific-commands} (although one can use  any valid \LaTeXe~ preamble code, keep in mind those will be executed BEFORE \tsmacro{\begin{document}}{}), to describe a student internship.
-    \end{codedescribe}
-        So, for instance:
-        \begin{codestore}[st=d.newstudentB]
-  \NewStudent{Artur}{
-      \student{last}{first}[m]
-      \studentinfo[]{243716}{email at somewhere}
-      \internship{Empresa I}{P\&D}{10/10/22}{20/12/22}{2 Meses}
+%%%%\begin{codedescribe}{\NewStudent}
+%%%%	\begin{codesyntax}%
+%%%%		\tsmacro{\NewStudent}{studentname,code}
+%%%%	\end{codesyntax}
+%%%%	This is the main command describing each \tsobj[meta]{student} associated work, advisor and exam board. In \tsobj[meta]{code} one should use the commands defined in \autonameref{core-specific-commands}, and \autonameref{student-specific-commands} (although one can use  any valid \LaTeXe~ preamble code, keep in mind those will be executed BEFORE \tsmacro{\begin{document}}{}), to describe a student work.
+%%%%\end{codedescribe}
+%%%%	So, for instance:
+%%%%	\begin{codestore}[st=d.newstudent]
+%%%%\NewStudent{Artur}{
+%%%%	\student{last}{first}[m]
+%%%%
+%%%%	\studentinfo[]{243716}{email at somewhere}
+%%%%	\TCCtitle{work title}
+%%%%	\advisor{de Amorin}{Heraldo José}[m]
+%%%%	\coadvisor{Camargo Nardelli}{Vítor}[m]
+%%%%	\examinergrades{9.2}{8.5}{9.2}
+%%%%	\examiner{Götz}{Marcelo}[m]
+%%%%	\examinergrades{10}{9.5}{9.5}
+%%%%	\examiner{Comparsi Laranja}{Rafael Antônio}
+%%%%	\examinergrades{8.5}{8.5}{8}
+%%%%	\altexaminer{Ventura Bayan Henriques}{Renato}
+%%%%	%%
+%%%%	%%
+%%%%	\timeslot[Teams]{12/11}{15:30}
+%%%%
+%%%%	\studentFate[Dismiss]  %% FF or Dismiss ??
+%%%%}
+%%%%\end{codestore}
+%%%%
+%%%%\tscode*{d.newstudent}
+%%%%
+%%%%\begin{tsremark}[N.B.:]
+%%%%Internally, \tsmacro{\NewStudent}{} will create a command named \tsmacro{\studentname}{}, with a \emph{hook} named \tsmacro{\studentname.hook}{} (the dot is part of the hook's name).
+%%%%\end{tsremark}
+%%%%
+%%%%
+%%%%\begin{codedescribe}{\NewInternshipStudent}
+%%%%    \begin{codesyntax}%
+%%%%        \tsmacro{\NewInternshipStudent}{studentname,code}
+%%%%    \end{codesyntax}
+%%%%    This is the main command describing each \tsobj[meta]{student} associated internship, tutor and advisor. In \tsobj[meta]{code} one should use the commands defined in \autonameref{core-specific-commands}, and \autonameref{student-specific-commands} (although one can use  any valid \LaTeXe~ preamble code, keep in mind those will be executed BEFORE \tsmacro{\begin{document}}{}), to describe a student internship.
+%%%%    \end{codedescribe}
+%%%%        So, for instance:
+%%%%        \begin{codestore}[st=d.newstudentB]
+%%%%  \NewStudent{Artur}{
+%%%%      \student{last}{first}[m]
+%%%%      \studentinfo[]{243716}{email at somewhere}
+%%%%      \internship{Empresa I}{P\&D}{10/10/22}{20/12/22}{2 Meses}
+%%%%
+%%%%      \supervisor[Eng. I]{do Supervisor}{Nome}[m]
+%%%%      \supervisorinfo{crea I}{posição/cargo}{email}{ramal}
+%%%%
+%%%%      \internshipsupervisorgrades{4}{4}{4}{4}{5}
+%%%%      \internshipsupervisorgrades{4}{4}{4}{4}{5}
+%%%%      \internshiptutorgrades{90}
+%%%%      \internshipcoordgrades{90}
+%%%%
+%%%%      \tutor[Prof.~Dr.]{do Tutor I}{Nome}[m]
+%%%%      \tutorinfo{UFRGS}{Instituição I-- Cidade, País}{email}{ramal}
+%%%%
+%%%%      \studentFate[Dismiss]  %% FF or Dismiss ??
+%%%%  }
+%%%%\end{codestore}
+%%%%
+%%%%        \tscode*{d.newstudentB}
+%%%%\begin{tsremark}[N.B.:]
+%%%%         Internally, \tsmacro{\NewInternshipStudent}{} will create a command named \tsmacro{\studentname}{}, with a \emph{hook} named \tsmacro{\studentname.hook}{} (the dot is part of the hook's name).
+%%%%\end{tsremark}         
+%%%%
 
-      \supervisor[Eng. I]{do Supervisor}{Nome}[m]
-      \supervisorinfo{crea I}{posição/cargo}{email}{ramal}
-
-      \internshipsupervisorgrades{4}{4}{4}{4}{5}
-      \internshipsupervisorgrades{4}{4}{4}{4}{5}
-      \internshiptutorgrades{90}
-      \internshipcoordgrades{90}
-
-      \tutor[Prof.~Dr.]{do Tutor I}{Nome}[m]
-      \tutorinfo{UFRGS}{Instituição I-- Cidade, País}{email}{ramal}
-
-      \studentFate[Dismiss]  %% FF or Dismiss ??
-  }
-\end{codestore}
-
-        \tscode*{d.newstudentB}
-\begin{tsremark}[N.B.:]
-         Internally, \tsmacro{\NewInternshipStudent}{} will create a command named \tsmacro{\studentname}{}, with a \emph{hook} named \tsmacro{\studentname.hook}{} (the dot is part of the hook's name).
-\end{tsremark}         
-
-
-\subsubsection{Student Specific Commands}\label{student-specific-commands}
-\begin{codedescribe}{\studentFate}
+\paragraph{Student Specific Commands}\label{student-specific-commands}
+\begin{codedescribe}[code,update=2023/11/18]{\studentfate}
 	\begin{codesyntax}%
-		\tsmacro{\studentFate}[fate]{}
+		\tsmacro{\studentfate}[fate]{}
 	\end{codesyntax}
 This assigns the \tsobj[meta]{fate} of a student, for those cases that one cannot rely on the 'calculated one' (from examiners individual grades). \tsobj[meta]{fate} can be either C or D (in case a student got in exam), FF for those that haven't finished the work or 'Dismiss' for those that, for whatever reason, got dismissed. The default is 'do nothing' (no \tsobj[meta]{fate} assigned)
 \end{codedescribe}
@@ -963,108 +1166,61 @@
 \end{codedescribe}
 
 
-\paragraph{Final Student Work Specific ones}
-
-\begin{codedescribe}{\studenttimeslot,\timeslot}
+\begin{codedescribe}[code,update=2023/11/18]{\timeslot}
 	\begin{codesyntax}%
-		\tsmacro{\studenttimeslot}[local]{date,time}
 		\tsmacro{\timeslot}[local]{date,time}
 	\end{codesyntax}
-\tsmacro{\timeslot}{} is just an alias of \tsmacro{\studenttimeslot}{}. They set, for the Boards Report, the \tsobj[meta]{local}, \tsobj[meta]{date} and \tsobj[meta]{time} in which a student will have its work presented. Those commands are meant to be used 'inside' a \tsmacro{\NewStudent}{} command.
+To set, for the Boards Report, the \tsobj[meta]{local}, \tsobj[meta]{date} and \tsobj[meta]{time} of a student's presentation work.
 \end{codedescribe}
 
 
 
-\begin{codedescribe}{\studentTCCtitle,\TCCtitle,\studentremark}
+\begin{codedescribe}[code,update=2023/11/18]{\worktitle,\studentremark}
 	\begin{codesyntax}%
-		\tsmacro{\studentTCCtitle}{title}
-		\tsmacro{\TCCtitle}{title}
+		\tsmacro{\worktitle}{title}
 		\tsmacro{\studentremark}{remark}
 	\end{codesyntax}
 \end{codedescribe}
-\tsmacro{\TCCtitle}{} is also just an alias to \tsmacro{\studentTCCtitle}{} which just 'defines' the current student “work's title”. \tsmacro{\studentremark}{} just inserts a \tsobj[meta]{remark}, which will appear in the \emph{report}'s report (\ldots report option).
+\tsmacro{\worktitle}{} sets the current student “work's title”. \tsmacro{\studentremark}{} just inserts a \tsobj[meta]{remark}, which will appear in the \emph{report}'s report.
 
 
-\begin{codedescribe}{\DistinctBoard,\DefaultBoard}
+\begin{codedescribe}[code,update=2023/11/18]{\distinctboard}
 	\begin{codesyntax}%
-		\tsmacro{\DistinctBoard}{}
-		\tsmacro{\DefaultBoard}{}
+		\tsmacro{\distinctboard}{}
 	\end{codesyntax}
-Normally, the default, it's assumed that the student's advisor will also be a member of the student's exam board. For the ones in which this doesn't holds true, one should use the \tsmacro{\DistinctBoard}{} after informing a student's name (via \tsmacro{\student}{}) and before informing its advisor name (via \tsmacro{\advisor}{}). 
+Normally, the default, it's assumed that the student's advisor will also be a member of the student's exam board. For the ones in which this doesn't holds true, one should use the \tsmacro{\DistinctBoard}{} after setting a student's name (via \tsmacro{\student}{}) and before setting its advisor name (via \tsmacro{\advisor}{}). 
 \end{codedescribe}
 For example:
 
 	\begin{codestore}[st=d.distinct]
-	\NewStudent{Artur}{
-		\student{last}{first}[m]
+	
+		\student[Arthur]{last}{first}[m]
 
 		\studentinfo[]{243716}{email at somewhere}
-		\TCCtitle{work title}
-		\DistinctBoard
+		\worktitle{work title}
+		\distinctboard
 		\advisor{de Amorin}{Heraldo José}[m]
 		\examiner{Götz}{Marcelo}[m]                 % He will be the 1st examiner
 		\examiner{Comparsi Laranja}{Rafael Antônio} % the 2nd
 		\examiner{Ventura Bayan Henriques}{Renato}  % the 3rd
-	}
 \end{codestore}
 
-\tscode*[emph={DistinctBoard}]{d.distinct}
+\tscode*[emph={distinctboard}]{d.distinct}
 
 
-\begin{codedescribe}{\examinergrades}
+\begin{codedescribe}[code,update=2023/11/18]{\examinergrades}
 	\begin{codesyntax}%
-		\tsmacro{\examinersgrades}{N1,N2,N3}
+		\tsmacro{\examinersgrades}{N1,N2,N3}\tsargs[oarg]{N4}
 	\end{codesyntax}
-Quite obvious, this set the grades given by an examiner (the one defined by the 'last' \tsmacro{\examiner}{} before this.).
+Quite obvious, this set the grades given by an examiner (the one defined by the 'last' \tsmacro{\examiner}{} before this.). In case \tsobj[oarg]{N4} is given it's assumed the TCC-I case, otherwise TCC-II.
 \end{codedescribe}
 
-\paragraph{Internship Specific Ones}
 
-\begin{codedescribe}{\studentturnindate}
-    \begin{codesyntax}%
-        \tsmacro{\studentturnindate}{date}
-    \end{codesyntax}
-    The date, in which, the student submitted the Internship Report. Beware, the date must be in the day/month/year format.
-\end{codedescribe}
+\paragraph{Reports Command}
 
-\begin{codedescribe}{\internshipsupervisorgrades}
-    \begin{codesyntax}
-        \tsmacro{\internshipsupervisor}{N1,N2,N3,N4,N5}
-    \end{codesyntax}
-    Quite obvious, this set the grades given by the supervisor, it's meant to be used twice for the two 'grades blocks'.
-\end{codedescribe}
 
-\begin{codedescribe}{\internshiptutorgrades}
-    \begin{codesyntax}%
-        \tsmacro{\internshipgrades}{N1}
-    \end{codesyntax}
-    Quite obvious, this set the grade given by the student tutor.
-\end{codedescribe}
 
-\begin{codedescribe}{\internshipcoordgrades}
-    \begin{codesyntax}%
-        \tsmacro{\internshipcoordgrades}{N1}
-    \end{codesyntax}
-    Quite obvious, this set the grade given by the Internship Coordinator.
-\end{codedescribe}
 
-\paragraph{Setting Commands}
-
-
-\begin{codedescribe}{\addtostudent}
-	\begin{codesyntax}%
-		\tsmacro{\addtostudent}{student,code}
-	\end{codesyntax}
-\tsobj[meta]{code} will be appended to the command created with \tsmacro{\NewStudent}{}. \tsobj[meta]{student} must be an already defined one, whilst \tsobj[meta]{code} can be anything valid in the context of a \tsmacro{\NewStudent}{} as described in \autonameref{new-student}.
-\end{codedescribe}
-
-\begin{codedescribe}{\setreports}
-	\begin{codesyntax}%
-		\tsmacro{\setreports}{rep-list}
-	\end{codesyntax}
-	\tsobj[meta]{rep-list} is a csv list of keys as defined at \autonameref{ufrgscca-coord.options}.
-\end{codedescribe}
-
 \begin{codedescribe}{\setstudentlist}
 	\begin{codesyntax}%
 		\tsmacro{\setstudentlist}{listID,list}
@@ -1076,19 +1232,29 @@
 	\begin{codesyntax}%
 		\tsmacro{\tcreports}[rep-list]{listID}
 	\end{codesyntax}
-	This is the main command (final work reports), to be used only once, at the end of the file. It will typeset the reports, as set by \tsmacro{\setreports}{}, using the student list identified by \tsobj[meta]{listID}.
-    \tsobj[meta]{rep-list} is a csv list of keys as defined at \autonameref{ufrgscca-coord.options}.
+	This will typeset the many reports, using the student list defined by \tsobj[meta]{listID}.
+    \tsobj[meta]{rep-list} is a csv list of keys as follow:
 \end{codedescribe}
 
-\begin{codedescribe}{\internshipreports}
-    \begin{codesyntax}%
-        \tsmacro{\internshipreports}[rep-list]{listID}
-    \end{codesyntax}
-    This is the main command (internship reports), to be used only once, at the end of the file. It will typeset the reports, as set by \tsmacro{\setreports}{}, using the student list identified by \tsobj[meta]{listID}.
-    \tsobj[meta]{rep-list} is a csv list of keys as defined at \autonameref{ufrgscca-coord.options}.
-\end{codedescribe}
+\begin{describelist}{option}
+	\describe {calendar-I} { Calendar for the period, TCC-I.}
+	\describe {report-I} { a student control report, for TCC-I.}
+	\describe {checklist-I} { a student check list, for TCC-I.}
+	\describe {revforms-I} { per student reviews forms, TCC-I.}
+	\describe {referral-I} { per student referral letters, TCC-I.}
+	\describe {calendar-II} { Calendar for the period, TCC-II.}
+	\describe {report-II} { a student control report, for TCC-II.}
+	\describe {checklist-II} { a student check list, for TCC-II.}
+	\describe {revforms-II} { per student reviews forms, TCC-II.}
+	\describe {referral-II} { per student referral letters, TCC-II.}
+	\describe {boards} { exam board dates, TCC-II.}
+	\describe {studentlist} { a simple student list.}
+	\describe {cocertificate} { per student coadvisor certificate letter (if any).}
+%	\describe {checklist} { a students check list.}
+\end{describelist}
 
-\section{\tightul{ufrgscca-ppc} Package (beta) (extended documentation)}
+
+\section{\tightul{ufrgscca-ppc} Package (extended documentation)}
 This contains a set of auxiliary commands to keep track of many \emph{indicators} whilst writing  a \emph{PPC document} (which is going to be evaluated based on said \emph{indicators}, though the track of those \emph{indicators} themselves shall not appear in the final version of it). Keep in mind, when considering the use of it: “it works as is” but it hasn't being properly debugged, and it might change “as needed locally”.
 
 The packages \tsobj[pkg]{longtable}, \tsobj[pkg]{pdfcomment}, \tsobj[pkg]{mdframed} and \tsobj[pkg]{ufrgscca-curr} will always be pre-loaded.
@@ -1101,12 +1267,6 @@
 \end{describelist}
 
 \subsection{Defined Commands}
-\begin{codedescribe}{\maketitle}
-    \begin{codesyntax}%
-        \tsmacro{\maketitle}{}
-    \end{codesyntax}
-The command \tsmacro{\maketitle}{} is redefined for the specifics of a \emph{PPC document}.
-\end{codedescribe}
 
 The next few commands use a finite set of \tsobj[meta]{status} which are a pre-defined list of:
 \begin{describelist*}{value}
@@ -1124,11 +1284,11 @@
 
 \begin{codedescribe}{\declareindicator, \indicatorDesc, \indicatorText}
 	\begin{codesyntax}%
-		\tsmacro{\declareindicator}<*+>[status]{fam,ID,text}
+		\tsobj{\declareindicator}\tsverb{*+}\tsargs[oarg]{status}\tsargs[marg]{fam,ID,text}
 		\tsmacro{\indicatorDesc}{longdesc,extra}
 		\tsmacro{\indicatorText}{text}
 	\end{codesyntax}
-\tsmacro{\declareindicator}{} is the command to create/define a given “indicator”. \tsobj[meta]{fam} set's its \emph{family} group, \tsobj[meta]{ID} is the particular ID/term used to reference it (in a family of indicators), \tsobj[meta]{text} is a short text describing it (it is the text displayed when using the \tsmacro{\indref}{} below.). \tsmacro{\indicatorDesc}{} adds a \tsobj[meta]{longdesc} (long description) and \tsobj[meta]{extra} (extra long description) to a defined \tsmacro{\declareindicator}{} (it will add those text fields to the “last declared one”). \tsobj[meta]{longdesc} will also be displayed when using the \tsmacro{\indref}{} commands, but only if the \tsobj[option]{indlong} option was used. The \tsobj[meta]{extra} will only be used/displayed with the \tsmacro{\PrintIndicators}{} command. Finally, \tsmacro{indicatorText}{} adds a remark \tsobj[meta]{text}, which will be also printed out when using  \tsmacro{\lstind}{} (akin of an explanation/remark field.)
+\tsmacro{\declareindicator}{} is the command to create/define a given “indicator”. \tsobj[meta]{fam} set's its \emph{family} group, \tsobj[meta]{ID} is the particular ID/term used to reference it (in a family of indicators), \tsobj[meta]{text} is a short text describing it (it is the text displayed when using the \tsmacro{\indref}{} below.). \tsmacro{\indicatorDesc}{} adds a \tsobj[meta]{longdesc} (long description) and \tsobj[meta]{extra} (extra long description) to a defined \tsmacro{\declareindicator}{} (it will add those text fields to the “last declared one”). \tsobj[meta]{longdesc} will also be displayed when using the \tsmacro{\indref}{} commands, but only if the \tsobj[option]{indlong} option was used. The \tsobj[meta]{extra} will only be used/displayed with the \tsmacro{\PrintIndicators}{} command. Finally, \tsmacro{\indicatorText}{} adds a remark \tsobj[meta]{text}, which will be also printed out when using  \tsmacro{\lstind}{} (akin of an explanation/remark field.)
 \end{codedescribe}
 
 \begin{codedescribe}{\indsetstatus, \indsetview, \indsethide}
@@ -1233,14 +1393,51 @@
 \end{codedescribe}
 This is just a tailored “quote” environment, using almost all page width, just in a smaller font size.
 
-\section{\tightul{ufrgscca-curr} Package (beta) (extended documentation)}
-This package is mostly in beta state, some parts of it should be identified as  alpha state. Those are mostly rushed out adaptations of other “solutions at hand”. Literally, try to use it at your own peril.
+\section{\tightul{ufrgscca-curr} Package (extended documentation)}
+The background of it: To have the ability to “describe” (store the information in a “structured way”) an University Course Curricula and  have the possibility, later, to presented that same information in many different ways (including a dependence graph).  All data is captured/stored in a set of 3 \tsobj[pkg]{starrays}:
 
-The background of it: To have the ability to “describe” (store the information in a “structured way”) an University Course Curricula and  have the possibility, later, to presented that same information in many different ways (including a dependence graph). To an extended, most of it is done (and working), but hopeless lacking more testing and debugging.
 
-Why is it included in the bundle? Well, it is needed, in part for completeness, by \tsobj[pkg]{ufrgscca-ppc}, which is “locally important”.
+\begin{codestore}[st=topicsdef]
+  {
+    self  = , name = , color = , class lst = , %list (sequence) of classes
+  }
+\end{codestore}
 
-\subsection{Commands Creating the many lists}
+\tscode*[codeprefix={topics' Structure Definition:},basicstyle={\scriptsize\ttfamily}]{topicsdef}\label{topics-def}
+
+
+\begin{codestore}[st=classdef]
+  {
+   cred = , self = , name = , summary = , topic = , remark = ,
+   bib seq = ,  bib basic seq = ,  bib compl seq = ,
+   ref . struct = {
+     curr = , sem = , kind = ,
+   } ,
+  }
+\end{codestore}
+
+\tscode*[codeprefix={Classes' Structure Definition:},basicstyle={\scriptsize\ttfamily}]{classdef}\label{class-def}
+
+\begin{codestore}[st=curriculadef]
+  {
+    self = , name = , text = ,
+    sem.struct = {
+      pos = , self = , name = ,
+      class . struct = {
+        name = , kind = , obs = , pos = , color = ,
+        prereqset . struct = {
+          prereq . struct = {
+            starred = , name = , ang = ,
+          }
+        } ,
+      } ,
+    } ,
+  }
+\end{codestore}
+
+\tscode*[codeprefix={Curricula's Structure Definition:},basicstyle={\scriptsize\ttfamily}]{curriculadef}\label{curricula-def}
+
+
 The following commands “describe” a curricula, whereas one is a sequence of semesters \tsobj[meta]{semID}, each semester is composed by a list of classes, \tsobj[meta]{classID}, and each class has a list of dependencies, \tsobj[meta]{classID} as \tsmacro{\depdef}{}. All those lists are stored as csv lists, so “processing them” can be systematized.
 
 \begin{codedescribe}{\topicdef,\defaulttopic}
@@ -1252,83 +1449,66 @@
 \end{codedescribe}
 
 
-\begin{codedescribe}{\semdef}
+\begin{codedescribe}[code,update=2023/11/18]{\classdef,\classset}
     \begin{codesyntax}%
-        \tsobj[code]{\semdef}{\tsobj[oarg]{pos}\tsobj[xarg]{cod}\tsobj[marg]{semID}}
+        \tsmacro{\classdef}[topicID]{classID,cred,name}
+        \tsmacro{\classset}{classID}
     \end{codesyntax}
-This “defines” a semester, \tsobj[meta]{semID}, and associates with it a \tsobj[meta]{cod} (for reference) and a \tsobj[meta]{pos} (to be used by, for instance, \tsobj[pkg]{ufrgscca-curr-graph}.)
+\tsmacro{\classdef}{} defines a class \tsobj[meta]{classID} (with a given \tsobj[marg]{name} and number of \tsobj[marg]{name}) associated  with a given \tsobj[meta]{topicID}. \tsmacro{\classset}{} sets the current class.
+
+The following commands always refer to the “last defined” \tsmacro{\classdef}{} unless \tsmacro{\setclass}{} is used, which changes the “current class” for the following commands.
 \end{codedescribe}
 
-
-\begin{codedescribe}{\classdef,\setclass,\classremark}
+\begin{codedescribe}[code,new=2023/11/18]{\csummary,\classremark,\bibdef}
     \begin{codesyntax}%
-        \tsobj[code]{\classdef}{\tsobj[oarg]{topicID}\tsobj[xarg]{pos}\tsobj[marg]{classID}\tsobj[marg]{cred}\tsobj[marg]{typ}\tsobj[marg]{name}\tsobj[marg]{desc}}
-        \tsmacro{\setclass}{classID}
+        \tsmacro{\csummary}{desc}
         \tsmacro{\classremark}{remark}
+        \tsmacro{\bibdef}[type]{text}
     \end{codesyntax}
-\tsmacro{\classdef}{} defines a class, associating with a \tsobj[meta]{topicID}, \tsobj[meta]{pos} (for \tsobj[pkg]{ufrgscca-curr-graph}), \tsobj[meta]{classID}, number and type, \tsobj[meta]{typ}, of credits, \tsobj[meta]{cred}, a long name, \tsobj[meta]{name} and description, \tsobj[meta]{desc}. \tsmacro{\classremark}{} adds an extra remark to it.
-
-The following commands always refer to the “last defined” \tsmacro{\classdef}{} unless \tsmacro{\setclass}{} is used, which changes the “current class” for the following commands.
+    \tsobj{\csummary} sets a class summary, whilst \tsobj{\classremark} annotates a 'note/remark'. \tsobj{\bibdef}
+ is used to set a list of bibliographies, one per issued command. The default \tsobj[meta]{type} value is  \tsobj[key]{main}, other possible values  \tsobj[key]{basic} and \tsobj[key]{compl}.
 \end{codedescribe}
 
-\begin{codedescribe}{\depdef,\altdef}
-    \begin{codesyntax}%
-        \tsobj[code]{\depdef}{\tsobj[oarg]{topicID}\tsobj[xarg]{pos}\tsobj[marg]{classID}}
-        \tsmacro{\altdef}{}
-    \end{codesyntax}
-\tsmacro{\depdef}{} inserts/creates a “class dependency” list. The highlight color (if used) is usually defined by the current class topic (informing \tsobj[meta]{topicID} changes the highlight color). \tsobj[meta]{pos} is used by \tsobj[pkg]{ufrgscca-curr-graph} to determine the incident line angle.
 
-\tsmacro{\altdef}{} defines/start and alternate dependency list.
-\end{codedescribe}
 
-\begin{codedescribe}{\bibdef}
+\begin{codedescribe}[code,update=2023/11/18]{\currdef,\semdef}
     \begin{codesyntax}%
-        \tsmacro{\bibdef}[type]{text}
+        \tsmacro{\currdef}{curr-ID,short name,long name}
+        \tsmacro{\semdef}{semID,name,pos}
     \end{codesyntax}
-This is used to set a list of bibliographies, one per issued command. The default \tsobj[meta]{type} value is just \emph{bib}, possible values (as understood by \tsobj[pkg]{ufrgscca-curr-tab}) are \emph{bib}, \emph{basic} and \emph{comp}.
+\tsobj{\currdef}  creates a curricula (with a set of semesters defined as following).
+\tsobj{\semdef} creates a semester, \tsobj[meta]{semID}, \tsobj[meta]{pos} being a position 'hint' when creating a dependency graph (see below).
 \end{codedescribe}
 
-\subsection{List Processing Commands}
-Those are the main loop commands that go through the lists.
-\begin{codedescribe}{\LstClass,\LstDep,\LstTopic}
-    \begin{codesyntax}
-        \tsmacro{\LstClass}[cmd]{semID}
-        \tsobj[code]{\LstDep}{\tsobj[oarg]{cmd}\tsobj[xarg]{ang}\tsobj[marg]{classID}}
-        \tsmacro{\LstTopic}[cmd]{topicID}
+
+\begin{codedescribe}[code,update=2023/11/18]{\depdef,\altdep}
+    \begin{codesyntax}%
+        \tsobj[code]{\depdef}\tsverb[oarg]{*}\tsargs[xarg]{pos}\tsargs[marg]{classID}
+        \tsmacro{\altdep}{}
     \end{codesyntax}
-\tsobj[meta]{cmd} can be any command accepting a single argument. It will, in fact, be the one defining the way the data will, effectively, be presented.
+\tsmacro{\depdef}{} inserts/creates a “class dependency” list. \tsobj[meta]{pos} is used as a 'hint' for the incident (dependency) line angle. The starred version is meant to be used when the 'dependency' isn't another class but rather, for instance, a number of credits.
 
-\tsmacro{\LstClass}{} will process \tsobj[meta]{cmd} over all classes associated with \tsobj[meta]{semID}.
-
-\tsmacro{\LstDep}{} will process \tsobj[meta]{cmd} over all dependency classes associated with \tsobj[meta]{classID}.
-
-\tsmacro{\LstTopic}{} will process \tsobj[meta]{cmd} over all classes associated with \tsobj[meta]{topicID}.
-
+\tsmacro{\altdep}{} defines/start and alternate dependency list.
 \end{codedescribe}
 
-\section{\tightul{ufrgscca-curr-tab} Package (beta) (ex\-tend\-ed documentation)}
-This is truly a work in progress (based on some old ideas), not really tested. It shall be revised and, mostly sure, it will be changed (no compatibility guaranties).  It always pre-load \tsobj[pkg]{ufrgscca-curr} and \tsobj[pkg]{longtable}.
 
-\subsection{Tabular Presentation Commands}
-\begin{codedescribe}{\TabEtp,\TabTopic}
+\begin{codedescribe}[code,update=2023/11/18]{\TabEtp,\TabTopic}
     \begin{codesyntax}%
-        \tsobj[code]{\TabEtp}{\tsobj[xarg]{type}\tsobj[oarg]{sectioning}c\tsobj[marg]{semID}}
-        \tsmacro{\TabTopic}[type]{topicID}
+        \tsobj[code]{\TabEtp}\tsverb[oarg]{*}\tsargs[oarg]{sectioning}\tsargs[marg]{semID}\tsargs[oarg]{font-fmt}
+        \tsmacro{\TabTopic}{topicID}
     \end{codesyntax}
-\tsmacro{\TabEtp}{} will construct a longtable with all classes associated with \tsobj[meta]{semID} (including it's dependencies and bibliography).
+\tsmacro{\TabEtp}{} will construct a longtable with all classes associated with \tsobj[meta]{semID}. The default 'font size', \tsobj[oarg]{font-fmt}, is \tsobj{\footnotesize}.
+The default \tsobj[oarg]{sectioning} is \tsobj{\notoc\section}.
+The non-star version includes the bibliography lists as well.
 
-\tsmacro{\TabTopic}{} will construct a longtable with all classes associated with \tsobj[meta]{topicID}.
+\tsmacro{\TabTopic}{} will construct a longtable with all classes associated with a \tsobj[meta]{topicID}.
 
 \end{codedescribe}
 
-\section{\tightul{ufrgscca-curr-graph} Package (beta) (extended documentation)}
 
-\subsection{Graph Presentation Command}
-Ironically, this is the “oldest” of the \tsobj[pkg]{-curr-} packages, but it is the less tested one, and the one whose code is more prone to fail in unexpected ways, be advised: do not try to use it, unless you know the internal code well. It always pre-load \tsobj[pkg]{ufrgscca-curr} (N.B. it also depends on \tsobj[pkg]{tikz}).
-
-\begin{codedescribe}{\GraphSem}
+\begin{codedescribe}[code,update=2023/11/18]{\GraphEtp}
     \begin{codesyntax}%
-        \tsmacro{\GraphSem}[type]{semID}
+        \tsmacro{\GraphEtp}{semID}
     \end{codesyntax}
 It will create a dependency graph for a given \tsobj[meta]{semId}. N.B. to start with, it is highly dependent on the semester sequence, one shall start with first semester and go from there.
 \end{codedescribe}

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,73 +23,127 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-abnt}
-\def\tc at tmp@altpackname{ufrgsccaabnt}
-\def\tc at tmp@packdesc{UFRGS/CCA ABNT layout}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
-\def\tc at tocdepth{3}  % Table of Contents depth
-\def\tc at secdepth{4} % Sectioning numbers depth (3 -> subsubsection)
 
-\DeclareKeys[ufrgscca-abnt]{
-    strict-abnt.usage = load,
-		strict-abnt.if = tcif at strictabnt,
+\ProvidesExplPackage
+    {ufrgscca-abnt}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA ABNT layout}
 
-        pretextontoc.usage = load,
-        pretextontoc.if = tcif at pretextontoc,
 
-        yearsonly.usage = load,
-        yearsonly.if = tcif at yearsonly,
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-abnt / pkg info}
+  {
+     name        .code:n = {ufrgscca-abnt} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~ abnt~layout}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }  
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
 
 
-		chapternopagenum.usage = load,
-		chapternopagenum.if = tcif at chapternopagenum,
 
-		english.usage = load,
-		english.if = tcif at english,
-		relnum.usage = load,
-		relnum.if = tcif at relnum,
-		repeatfields.usage = load,
-		repeatfields.if = tcif at repeatfields,
+\keys_define:nn { ufrgscca.abnt }
+  {
+        strict-abnt   .usage:n          = load ,
+		strict-abnt   .bool_set:N       = \l__ufrgscca_strictabnt_bool ,
 
-		showframes.usage = load,
-		showframes.if = tcif at showframes,
-		showlabels.usage = load,
-		showlabels.if = tcif at showlabels,
+        pretextontoc  .usage:n          = load ,
+        pretextontoc  .bool_set:N       = \l__ufrgscca_pretextontoc_bool ,
 
-		tocdepth.usage = load,
-		tocdepth.store = \tc at tocdepth,
-		secdepth.usage = load,
-		secdepth.store = \tc at secdepth,
+        yearsonly     .usage:n          = load ,
+        yearsonly     .bool_set:N       = \l__ufrgscca_yearsonly_bool ,
 
-		nomicrotype.usage = load,
-		nomicrotype.if = tcif at nomicrotype,
+		chapternopagenum  .usage:n      = load ,
+		chapternopagenum  .bool_set:N   = \l__ufrgscca_chapternopagenum_bool ,
 
-		article.usage = load,
-		article.if = tcif at article,
-}
+%		english       .usage:n          = load ,
+%		english       .bool_set:N       = \l__ufrgscca_english_bool ,
 
-\ProcessKeyOptions[ufrgscca-abnt]\relax
+		relnum        .usage:n          = load ,
+		relnum        .bool_set:N       = \l__ufrgscca_relnum_bool ,
 
+		repeatfields  .usage:n          = load ,
+		repeatfields  .bool_set:N       = \l__ufrgscca_repeatfields_bool ,
+
+		showframes    .usage:n          = load ,
+		showframes    .bool_set:N       = \l__ufrgscca_showframes_bool ,
+
+		showlabels    .usage:n          = load ,
+		showlabels    .bool_set:N       = \l__ufrgscca_showlabels_bool ,
+
+		tocdepth      .usage:n          = load ,
+		tocdepth      .tl_set:N         = \l__ufrgscca_tocdepth_tl ,
+
+		secdepth      .usage:n          = load ,
+		secdepth      .tl_set:N         = \l__ufrgscca_secdepth_tl ,
+
+		nomicrotype   .usage:n          = load ,
+		nomicrotype   .bool_set:N       = \l__ufrgscca_nomicrotype_bool ,
+
+		article       .usage:n          = load ,
+		article       .bool_set:N       = \l__ufrgscca_article_bool ,
+  }
+
+\tl_set:Nn \l__ufrgscca_tocdepth_tl {3}
+\tl_set:Nn \l__ufrgscca_secdepth_tl {4}
+
+\ProcessKeyOptions[ufrgscca.abnt]\relax
+
+
+
+
 %%%%%%%%%%%%%%%%%%%%%
 %%% Packages Loading
 %%%%%%%%%%%%%%%%%%%%%
-\RequirePackage[english,brazilian]{babel}% see ufrgscca.cls in case of newtx* being loaded!
+\bool_if:NTF \l__ufrgscca_english_bool
+  {
+    \RequirePackage[brazilian,english]{babel}% see ufrgscca.cls in case of newtx* being loaded!
+    %\addto\extraenglish{\input{ufrgscca-base-en.def}}
+    \AtBeginDocument{\selectlanguage{english}\input{ufrgscca-base-en.def}}%
+  }
+  {
+    \RequirePackage[english,brazilian]{babel}% see ufrgscca.cls in case of newtx* being loaded!
+    %\addto\extrabrazilian{\input{ufrgscca-base-ptBR.def}}
+    \AtBeginDocument{\selectlanguage{brazilian}\input{ufrgscca-base-ptBR.def}}%
+  }
+  
+  
 \RequirePackage{csquotes}%
 
-\iftcif at strictabnt
-  \RequirePackage[a4paper,inner=2cm,outer=3cm,top=3cm,bottom=2cm,twoside]{geometry}
-\else
-  \iftcif at nogeometry
-%    \RequirePackage[a4paper,margin=5cm,right=2cm,marginparwidth=3.75cm,asymmetric,top=2.5cm,bottom=1.5cm]{geometry}
-  \else
-    \RequirePackage[a4paper,inner=2.5cm,outer=2.5cm,top=3cm,bottom=2cm,twoside]{geometry}
-  \fi
-\fi
+\bool_if:NTF \l__ufrgscca_strictabnt_bool
+  {
+    \RequirePackage[a4paper,inner=2cm,outer=3cm,top=3cm,bottom=2cm,twoside]{geometry}
+  }
+  {
+    \bool_if:NF \l__ufrgscca_nogeometry_bool
+      {
+        \RequirePackage[a4paper,inner=2.5cm,outer=2.5cm,top=3cm,bottom=2cm,twoside]{geometry}
+      }
+  }
 
 \RequirePackage[toc,page,title]{appendix}
 \RequirePackage[pagestyles,clearempty]{titlesec}
@@ -98,9 +152,16 @@
 
 \RequirePackage{chngcntr}
 
-\def\tc at captionwidth{0.75\textwidth}
-\def\tc at notewidth{0.635\textwidth}  %% 0.84666667\tc at captionwidth
-\RequirePackage[position=above,font=small,labelfont=bf,textfont=md,textfont+=sl,width=\tc at captionwidth]{caption}%
+
+%
+% using Expl3
+\SetConsts{%
+    caption.width   = 0.75\textwidth ,
+    note.width      =  0.635\textwidth ,
+}
+
+\RequirePackage[position=above,font=small,labelfont=bf,textfont=md,textfont+=sl,width=\UseConst{caption.width}]{caption}%
+
 %%%
 %%% commands for 'floats'
 %%%
@@ -108,7 +169,19 @@
 \NewDocumentCommand{\sourcecitation}{m}{{\small{\sourcename\ #1}}}%
 %
 \newlength{\noteindent}%%auxiliary length
-\NewDocumentCommand{\note}{O{}+m}{{\footnotesize\settowidth{\noteindent}{\notename#1:}\addtolength{\noteindent}{3pt}\begin{center}\begin{minipage}{\tc at notewidth}{\parindent=-\the\noteindent\notename#1:\hspace{2.9pt}#2}\end{minipage}\end{center}}}%%
+\NewDocumentCommand{\note}{O{}+m}
+  {
+    {
+      \footnotesize
+      \settowidth{\noteindent}{\notename#1:}
+      \addtolength{\noteindent}{3pt}
+      \begin{center}
+        \begin{minipage}{\UseConst{note.width}}
+          { \parindent=-\the\noteindent\notename#1:\hspace{2.9pt}#2 }
+        \end{minipage}
+      \end{center}
+    }
+  }%%
 %
 %
 
@@ -133,32 +206,32 @@
 %%%%%%%%%%%%%%%%%%%%%
 \WarningFilter{biblatex}{File 'brazilian-abnt-abnt.lbx'}%
 \WarningFilter{biblatex}{Conflicting options}%
-\iftcif at repeatfields%
-	\RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear,repeatfields]{biblatex}%
-\else%
-	\RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear]{biblatex}%
-\fi%
+
+\bool_if:NTF \l__ufrgscca_repeatfields_bool
+  {
+    \RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear,repeatfields]{biblatex}%
+  }
+  {
+    \RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear]{biblatex}%
+  }
+
+
 %%
-%%%
-%%% Language selection {package babel}
-%%%
-\iftcif at english%%
-  \selectlanguage{english}%
-  \AtBeginDocument{\selectlanguage{english}}%
-\else
-  \selectlanguage{brazilian}%
-  \AtBeginDocument{\selectlanguage{brazilian}}%
-\fi%
 
 
+
 %%%
 %%% typeset adjusting {package microtype}
 %%%
-\iftcif at timesroman\else%
-\iftcif at nomicrotype\else\RequirePackage[tracking,kerning,spacing,babel]{microtype}\fi%
-\fi
-%\iftcif at nomicrotype\else\RequirePackage[babel]{microtype}\fi%
-%
+\bool_if:NF \l__ufrgscca_timesroman_bool
+  {
+    \bool_if:NF \l__ufrgscca_nomicrotype_bool
+      {
+        \RequirePackage[tracking,kerning,spacing,babel]{microtype}
+      }
+  }
+
+
 % pdftex native protruding
 %
 \pdfprotrudechars=2
@@ -171,53 +244,73 @@
 \RequirePackage{soul}
 
 
-\iftcif at showframes%
-  \RequirePackage{showframe}%%
-\fi
-%%
-\iftcif at showlabels%
-	\RequirePackage{showlabels}%%
-	\showlabels{cite}%%
-	\showlabels{textcite}%%
-	\RenewDocumentCommand{\showlabelfont}{}{\tiny\ttfamily\color{blue}}%%
-\fi%%
+\bool_if:NT \l__ufrgscca_showframes_bool
+  {
+    \RequirePackage{showframe}
+  }
+\bool_if:NT \l__ufrgscca_showlabels_bool
+  {
+	\RequirePackage{showlabels}
+	\showlabels{cite}
+	\showlabels{textcite}
+	\RenewDocumentCommand{\showlabelfont}{}{\tiny\ttfamily\color{blue}}
+  }
 
 
+
+
 %%%
 %%% ToC and Headings format. {package titlesec/titletoc/titleps}
 %%%
 
-\setcounter{tocdepth}{\tc at tocdepth}  % Table of Contents depth
-\setcounter{secnumdepth}{\tc at secdepth} % Sectioning numbers depth (3 -> subsubsection)
+\setcounter{tocdepth}{\l__ufrgscca_tocdepth_tl}  % Table of Contents depth
+\setcounter{secnumdepth}{\l__ufrgscca_secdepth_tl} % Sectioning numbers depth (3 -> subsubsection)
 
-\NewDocumentEnvironment{tocless}{}%
-   {\setcounter{secnumdepth}{-1}\addtocontents{toc}{\protect\setcounter{tocdepth}{-1}\ignorespaces}}%
-   {\setcounter{secnumdepth}{\tc at secdepth}\addtocontents{toc}{\protect\setcounter{tocdepth}{\tc at tocdepth}\ignorespaces}}%
+\NewDocumentEnvironment{tocless}{}
+   {
+     \setcounter{secnumdepth}{-1}
+     \addtocontents{toc}{\protect\setcounter{tocdepth}{-1}\ignorespaces}
+   }
+   {
+     \setcounter{secnumdepth}{\l__ufrgscca_secdepth_tl}
+     \addtocontents{toc}{\protect\setcounter{tocdepth}{\l__ufrgscca_tocdepth_tl}\ignorespaces}
+   }
+   
 \def\notoc#1#2{\begin{tocless}#1{#2}\end{tocless}}
 
-\NewDocumentEnvironment{numberless}{}{\setcounter{secnumdepth}{-1}}{\setcounter{secnumdepth}{\tc at secdepth}}
+
+\NewDocumentEnvironment{numberless}{}
+  {
+    \setcounter{secnumdepth}{-1}
+  }
+  {
+    \setcounter{secnumdepth}{\l__ufrgscca_secdepth_tl}
+  }
+  
 \def\nonum#1#2{\begin{numberless}#1{#2}\end{numberless}}
 
+
+
 %%%
 %%% Relative/Absolute numbering... argh !!!
 %%%
-  \def\tc at chapterspc{\vspace{2.5mm}}
-  \def\tc at sectionspc{\vspace{0.75mm}}
   
-\iftcif at article
-\else
-\iftcif at relnum%
-%  \def\tc at chapterspc{\vspace{2.5mm}}
-%  \def\tc at sectionspc{\vspace{0.75mm}}
-\else%
-%  \def\tc at chapterspc{}
-%  \def\tc at sectionspc{}
-  \patchcmd{\@chapter}{\addtocontents{lof}{\protect\addvspace{10\p@}}}{}{}{{PATCH FAILED}}% LoF ... to supress extra space (figures of diverse chapters)
-  \patchcmd{\@chapter}{\addtocontents{lot}{\protect\addvspace{10\p@}}}{}{}{{PATCH FAILED}}% LoT
-\fi
-\fi
+  \def\l__ufrgscca_chapter_spacing_tl{\vspace{2.5mm}}
+  \def\l__ufrgscca_section_spacing_tl{\vspace{0.75mm}}
+  
+  
+\makeatletter  
+\bool_if:NF \l__ufrgscca_article_bool
+  {
+    \bool_if:NF \l__ufrgscca_relnum_bool
+      {
+        \patchcmd{\@chapter}{\addtocontents{lof}{\protect\addvspace{10\p@}}}{}{}{{PATCH ~FAILED}}% LoF ... to supress extra space (figures of diverse chapters)
+        \patchcmd{\@chapter}{\addtocontents{lot}{\protect\addvspace{10\p@}}}{}{}{{PATCH ~FAILED}}% LoT
+      }
+  }  
 
 
+
 %%%
 %%% ToC definitions {package titletoc}
 %%%
@@ -224,120 +317,277 @@
 \def\tc at lblmargin{22mm}
 \contentsmargin{2.2em}
 \def\tc at dotspacing{0.5pc}
-\titlecontents{chapter}[\tc at lblmargin]{\tc at chapterspc\normalfont\scshape\selectfont}{\contentslabel{\tc at lblmargin}}{\hspace{-\tc at lblmargin}}{\titlerule*[\tc at dotspacing]{.}\normalsize\normalfont\contentspage}
-\titlecontents{section}[\tc at lblmargin]{\tc at sectionspc}{\contentslabel{\tc at lblmargin}}{\hspace{-\tc at lblmargin}}{\titlerule*[\tc at dotspacing]{.}\contentspage}
 
-\dottedcontents{subsection}[\tc at lblmargin]{}{\tc at lblmargin}{\tc at dotspacing}
+%%%\def\tc at lblmargin{22mm}
+%%%\contentsmargin{2.2em}
+%%%\def\tc at dotspacing{0.5pc}
 
-\dottedcontents{subsubsection}[\tc at lblmargin]{}{\tc at lblmargin}{\tc at dotspacing}
 
-\dottedcontents{figure}[\tc at lblmargin]{}{\tc at lblmargin}{\tc at dotspacing}
-\dottedcontents{table}[\tc at lblmargin]{}{\tc at lblmargin}{\tc at dotspacing}
+\titlecontents{chapter}[\tc at lblmargin]
+  {\l__ufrgscca_chapter_spacing_tl\normalfont\scshape\selectfont}
+  {\contentslabel{\tc at lblmargin}}
+  {\hspace{-\tc at lblmargin}}
+  {\titlerule*[\tc at dotspacing]{.}\normalsize\normalfont\contentspage}
+  
+\titlecontents{section}[\tc at lblmargin]
+  {\l__ufrgscca_section_spacing_tl}
+  {\contentslabel{\tc at lblmargin}}
+  {\hspace{-\tc at lblmargin}}
+  {\titlerule*[\tc at dotspacing]{.}\contentspage}
 
+\dottedcontents{subsection}[\tc at lblmargin]
+  {}
+  {\tc at lblmargin}
+  {\tc at dotspacing}
+
+\dottedcontents{subsubsection}[\tc at lblmargin]
+  {}
+  {\tc at lblmargin}
+  {\tc at dotspacing}
+
+\dottedcontents{figure}[\tc at lblmargin]
+  {}
+  {\tc at lblmargin}
+  {\tc at dotspacing}
+  
+\dottedcontents{table}[\tc at lblmargin]
+  {}
+  {\tc at lblmargin}
+  {\tc at dotspacing}
+
+
+
+
+
 \renewcommand{\restoreapp}{} % to reset appendix counters each time (from appendix doc)
-\RenewDocumentEnvironment{appendix}{O{\defappendixpagename}O{\defappendixname}}{%
-       \titleformat{\chapter}{\bfseries\Large\sffamily}{#2 \thechapter\hspace{1.5ex}-}{2ex}{\MakeUppercase}%
-			 \titlecontents{chapter}[\tc at lblmargin]{\vspace{3mm}\sc}{\hspace{-\tc at lblmargin}{#2~\thecontentslabel\ -\enspace}}{\hspace{-\tc at lblmargin}}{\titlerule*[\tc at dotspacing]{.}\normalsize\normalfont\contentspage}
-		   \def\appendixname{#2}%
-			 \def\appendixpagename{#1}%
-			 \def\appendixtocname{#1}%
+\RenewDocumentEnvironment{appendix}{O{\defappendixpagename}O{\defappendixname}}
+    {
+      \titleformat{\chapter}
+        {\bfseries\Large\sffamily}
+        {#2~ \thechapter\hspace{1.5ex}-}
+        {2ex}
+        {\MakeUppercase}%
+			\titlecontents{chapter}[\tc at lblmargin]
+        {\vspace{3mm}\sc}
+        {\hspace{-\tc at lblmargin}{#2\ ~\thecontentslabel\ ~ -\enspace}}
+        {\hspace{-\tc at lblmargin}}
+        {\titlerule*[\tc at dotspacing]{.}\normalsize\normalfont\contentspage}
+		  \def\appendixname{#2}%
+			\def\appendixpagename{#1}%
+			\def\appendixtocname{#1}%
 			\begin{appendices}%
-			\let\tc at appendixautorefname@tmp\appendixautorefname
-			\def\appendixautorefname{#2}
-		}%
-		{\let\appendixautorefname\tc at appendixautorefname@tmp\end{appendices}}
+			  \let\tc at appendixautorefname@tmp\appendixautorefname
+			  \def\appendixautorefname{#2}
+		}
+		{
+        \let\appendixautorefname\tc at appendixautorefname@tmp
+      \end{appendices}
+    }
 
-\NewDocumentEnvironment{annex}{O{\defannexpagename}O{\defannexname}}{\begin{appendix}[#1][#2]}{\end{appendix}}
+\NewDocumentEnvironment{annex}{O{\defannexpagename}O{\defannexname}}
+    {\begin{appendix}[#1][#2]}
+    {\end{appendix}}
 
+
+\makeatother
+
+
+
 %%%
 %%% Headings definitions {package titlesec}
 %%%
+%%%%\def\tc at chapbefore{70pt plus 12pt minus 8pt}
+%%%%\def\tc at chapafter{36pt plus 8pt minus 8pt}
+%%%%\def\tc at secbefore{27pt plus 6pt minus 6pt}
+%%%%\def\tc at secafter{18pt plus 4pt minus 4pt}
+
+\def\l__ufrgscca_chapter_before_skip{70pt plus 12pt minus 8pt}
+\def\l__ufrgscca_chapter_after_skip{36pt plus 8pt minus 8pt}
+\def\l__ufrgscca_section_before_skip{27pt plus 6pt minus 6pt}
+\def\l__ufrgscca_section_after_skip{18pt plus 4pt minus 4pt}
+
+
 %\RenewDocumentCommand{\thechapter}{}{\arabic{chapter}}
-\titleformat{\chapter}{\sffamily\bfseries\selectfont\Large}{\thechapter}{2ex}{\MakeUppercase}
-\titleformat{name=\chapter,numberless}{\sffamily\bfseries\selectfont\Large\center}{}{0pt}{\MakeUppercase}
-\titlespacing{\chapter}{0pt}{\tc at chapbefore}{\tc at chapafter}
+\titleformat{\chapter}
+    {\sffamily\bfseries\selectfont\Large}
+    {\thechapter}
+    {2ex}
+    {\MakeUppercase}
+    
+\titleformat{name=\chapter,numberless}
+    {\sffamily\bfseries\selectfont\Large\center}
+    {}
+    {0pt}
+    {\MakeUppercase}
+    
+\titlespacing{\chapter}
+    {0pt}
+    {\l__ufrgscca_chapter_before_skip}
+    {\l__ufrgscca_chapter_after_skip}
 
-%\def\tc at chapbefore{18pt plus 3pt minus 6pt}
-%\def\tc at chapafter{9pt plus 3pt minus 3pt}
-%\def\tc at secbefore{12pt plus 6pt minus 3pt}
-%\def\tc at secafter{6pt plus 2pt minus 2pt}
+%\def\l__ufrgscca_chapter_before_skip{18pt plus 3pt minus 6pt}
+%\def\l__ufrgscca_chapter_after_skip{9pt plus 3pt minus 3pt}
+%\def\l__ufrgscca_section_before_skip{12pt plus 6pt minus 3pt}
+%\def\l__ufrgscca_section_after_skip{6pt plus 2pt minus 2pt}
 
-\def\tc at chapbefore{70pt plus 12pt minus 8pt}
-\def\tc at chapafter{36pt plus 8pt minus 8pt}
-\def\tc at secbefore{27pt plus 6pt minus 6pt}
-\def\tc at secafter{18pt plus 4pt minus 4pt}
 
-\titleformat{\section}[hang]{\normalfont\scshape\selectfont\large}{\thesection}{.5em}{}
-\titlespacing{\section}{0pt}{\tc at secbefore}{\tc at secafter}
+\titleformat{\section}[hang]
+    {\normalfont\scshape\selectfont\large}
+    {\thesection}
+    {.5em}
+    {}
+    
+\titlespacing{\section}
+    {0pt}
+    {\l__ufrgscca_section_before_skip}
+    {\l__ufrgscca_section_after_skip}
 
-\titleformat{name=\section,numberless}[hang]{\normalfont\large\bfseries\scshape\selectfont\center}{}{0pt}{}
-\titlespacing{name=\section,numberless}{0pt}{\tc at secbefore}{\tc at secafter}
+\titleformat{name=\section,numberless}[hang]
+    {\normalfont\large\bfseries\scshape\selectfont\center}
+    {}
+    {0pt}
+    {}
+    
+\titlespacing{name=\section,numberless}
+    {0pt}
+    {\l__ufrgscca_section_before_skip}
+    {\l__ufrgscca_section_after_skip}
 
-\titleformat{\subsection}[hang]{\normalfont\sffamily\bfseries\slshape\selectfont}{\thesubsection}{.5em}{}
-\titlespacing{\subsection}{0pt}{\tc at secbefore}{\tc at secafter}
+\titleformat{\subsection}[hang]
+    {\normalfont\sffamily\bfseries\slshape\selectfont}
+    {\thesubsection}
+    {.5em}
+    {}
+    
+\titlespacing{\subsection}
+    {0pt}
+    {\l__ufrgscca_section_before_skip}
+    {\l__ufrgscca_section_after_skip}
 
-\titleformat{\subsubsection}[hang]{\normalfont\sffamily\slshape\selectfont}{\thesubsubsection}{.5em}{}
-\titlespacing{\subsubsection}{0pt}{\tc at secbefore}{\tc at secafter}
+\titleformat{\subsubsection}[hang]
+    {\normalfont\sffamily\slshape\selectfont}
+    {\thesubsubsection}
+    {.5em}
+    {}
+    
+\titlespacing{\subsubsection}
+    {0pt}
+    {\l__ufrgscca_section_before_skip}
+    {\l__ufrgscca_section_after_skip}
 
-\titleformat{\paragraph}[hang]{\normalfont\sffamily\selectfont}{\theparagraph}{.5em}{\tightul}
-\titlespacing{\paragraph}{0pt}{\tc at secbefore}{\tc at secafter}
+\titleformat{\paragraph}[hang]
+    {\normalfont\sffamily\selectfont}
+    {\theparagraph}
+    {.5em}
+    {\tightul}
+    
+\titlespacing{\paragraph}
+    {0pt}
+    {\l__ufrgscca_section_before_skip}
+    {\l__ufrgscca_section_after_skip}
 
-\titleformat{\subparagraph}[hang]{\normalfont\sffamily\selectfont}{\thesubparagraph}{.5em}{\tightul}
-\titlespacing{\subparagraph}{0pt}{\tc at secbefore}{\tc at secafter}
+\titleformat{\subparagraph}[hang]
+    {\normalfont\sffamily\selectfont}
+    {\thesubparagraph}
+    {.5em}
+    {\tightul}
+    
+\titlespacing{\subparagraph}
+    {0pt}
+    {\l__ufrgscca_section_before_skip}
+    {\l__ufrgscca_section_after_skip}
 
 %%%
 %%% Relative/Absolute counters... {package chngcntr}
 %%%
-\iftcif at article
-\else
-\iftcif at relnum%
-  \counterwithin{figure}{chapter}%
-  \counterwithin{table}{chapter}%
-  \counterwithin{equation}{chapter}%
-\else%
-  \counterwithout{figure}{chapter}%
-  \counterwithout{table}{chapter}%
-  \counterwithout{equation}{chapter}%
-  %\meaning\@chapter
-  %\patchcmd{\@chapter}{\addtocontents{lof}{\protect\addvspace{10\p@}}}{}{}{{PATCH FAILED}}% LoF
-  %\patchcmd{\@chapter}{\addtocontents{lot}{\protect\addvspace{10\p@}}}{}{}{{PATCH FAILED}}% LoT
-\fi
-\fi
+\bool_if:NF \l__ufrgscca_article_bool
+  {
+    \bool_if:NTF \l__ufrgscca_relnum_bool
+      {
+          \counterwithin{figure}{chapter}
+          \counterwithin{table}{chapter}
+          \counterwithin{equation}{chapter}
+      }
+      {
+          \counterwithout{figure}{chapter}
+          \counterwithout{table}{chapter}
+          \counterwithout{equation}{chapter}
+      }
+  }
+
+
+
 %%%
 %%% Page Heading format {titlesec/titleps}
 %%%
-\renewpagestyle{plain}{\sethead[\ifthechapter{\sffamily\thepage}{}][][]{}{}{\ifthechapter{\sffamily\thepage}{}}}
-\newpagestyle{main}{\sethead[\ifthechapter{\sffamily\thepage}{}][][]{}{}{\ifthechapter{\sffamily\thepage}{}}}
-\newpagestyle{bibliography}{\sethead[\sffamily\thepage][][]{}{}{\sffamily\thepage}}
+\renewpagestyle{plain}
+    {
+      \sethead[\ifthechapter{\sffamily\thepage}{}]  []  []
+          {}
+          {}
+          {  
+            \ifthechapter{\sffamily\thepage}
+              {}  
+          }
+    }
+    
+\newpagestyle{main}
+    {
+      \sethead[\ifthechapter{\sffamily\thepage}{}]  []  []
+          {}
+          {}
+          {
+            \ifthechapter{\sffamily\thepage}
+              {}
+          }
+    }
+    
+\newpagestyle{bibliography}
+    {
+      \sethead[\sffamily\thepage]  []  []
+          {}
+          {}
+          {
+            \sffamily\thepage
+          }
+    }
+    
 \pagestyle{main}
 
-\iftcif at chapternopagenum\renewpagestyle{plain}{\sethead[][][]{}{}{}}\fi
 
-\let\tc at temp@printbibliography\printbibliography
+\bool_if:NF \l__ufrgscca_chapternopagenum_bool
+  {
+    \renewpagestyle{plain}{\sethead[][][]{}{}{}}
+  }
 
+%%\iftcif at chapternopagenum\renewpagestyle{plain}{\sethead[][][]{}{}{}}\fi
+
+%% ????
+%\let\tc at temp@printbibliography\printbibliography
+
 \defbibheading{bibliography}[\refname]{\nonum\chapter{#1}\pagestyle{bibliography}}
 
-\iftcif at pretextontoc
-    \let\tc at temp@listoffigures\listoffigures
-    \def\listoffigures{\tc at temp@listoffigures\addcontentsline{toc}{chapter}{\textsc\listfigurename}}
-%%
-    \let\tc at temp@listoftables\listoftables
-    \def\listoftables{\tc at temp@listoftables\addcontentsline{toc}{chapter}{\textsc\listtablename}}
-\fi
 
-%%
+\bool_if:NT \l__ufrgscca_pretextontoc_bool
+  {
+    \gappto{\listoffigures}{\addcontentsline{toc}{chapter}{\textsc\listfigurename}}
+    \gappto{\listoftables}{\addcontentsline{toc}{chapter}{\textsc\listtablename}}
+  }
 
 
-\newlength{\tc at lblwidth}
+
+\newlength{\l__ufrgscca_label_width_dim}
 \NewDocumentCommand{\NewChapListEnv}{mm}{
     \NewDocumentEnvironment{#1}{O{}m}{%
-        \settowidth{\tc at lblwidth}{##2***}%
-        \iftcif at pretextontoc
-            \nonum\chapter{\textsc{#2}}%
-        \else
-            \notoc\chapter{\textsc{#2}}%
-        \fi
-        \begin{description}[tcc,noindent,leftmargin=\tc at lblwidth,labelwidth=!,##1]%
+        \settowidth{\l__ufrgscca_label_width_dim}{##2***}%
+        \bool_if:NTF \l__ufrgscca_pretextontoc_bool
+          {
+            \nonum\chapter{\textsc{#2}}
+          }
+          {
+            \notoc\chapter{\textsc{#2}}
+          }
+        \begin{description}[tcc,noindent,leftmargin=\l__ufrgscca_label_width_dim,labelwidth=!,##1]%
 		}{\end{description}}
 }
 
@@ -349,25 +599,32 @@
 %%% lists formating {package enumitem}
 %%%
 
-\def\tc at enumbase{6mm}
-\def\tc at enummarging{12mm}
-\def\tc at enummargingB{18mm}
-\def\tc at enumlabelsep{2.5mm}
-\setlength{\parindent}{\tc at enummarging}
 
+\def\l__ufrgscca_enum_base_dim{6mm}
+\def\l__ufrgscca_enum_margin_dim{12mm}
+\def\l__ufrgscca_enum_margin_dimB{18mm}
+\def\l__ufrgscca_enum_label_sep_dim{2.5mm}
+\setlength{\parindent}{\l__ufrgscca_enum_margin_dim}
+
 \SetEnumitemValue{label}{arabic}{\arabic*.}
 \SetEnumitemValue{label}{roman}{\roman*.}
 \SetEnumitemValue{label}{alpha}{\alph*.}
 \SetEnumitemValue{label}{bullet}{\hfill\textopenbullet}
 
-\SetEnumitemKey{ppc}{leftmargin=\tc at enummarging,labelindent=\tc at enumbase,labelsep=\tc at enumlabelsep,labelwidth=!,style=nextline}
-\SetEnumitemKey{tcc}{leftmargin=\tc at enummarging,labelindent=\tc at enumbase,labelsep=\tc at enumlabelsep,labelwidth=!,style=nextline}
+\SetEnumitemKey{ppc}
+    {leftmargin=\l__ufrgscca_enum_margin_dim,labelindent=\l__ufrgscca_enum_base_dim,labelsep=\l__ufrgscca_enum_label_sep_dim,labelwidth=!,style=nextline}
+\SetEnumitemKey{tcc}
+    {leftmargin=\l__ufrgscca_enum_margin_dim,labelindent=\l__ufrgscca_enum_base_dim,labelsep=\l__ufrgscca_enum_label_sep_dim,labelwidth=!,style=nextline}
 %
-\SetEnumitemKey{parindent}{leftmargin=\tc at enummargingB,labelindent=\tc at enummarging,labelwidth=!}
-\SetEnumitemKey{noindent}{labelindent=0pt,labelwidth=!}
-\SetEnumitemKey{tight}{leftmargin=0pt,listparindent=5mm,labelwidth=5mm}
+\SetEnumitemKey{parindent}
+    {leftmargin=\l__ufrgscca_enum_margin_dimB,labelindent=\l__ufrgscca_enum_margin_dim,labelwidth=!}
+\SetEnumitemKey{noindent}
+    {labelindent=0pt,labelwidth=!}
+\SetEnumitemKey{tight}
+    {leftmargin=0pt,listparindent=5mm,labelwidth=5mm}
 %
-\SetEnumitemKey{miditemsep}{parsep=0ex,itemsep=0.4ex}
+\SetEnumitemKey{miditemsep}
+    {parsep=0ex,itemsep=0.4ex}
 
 %\SetEnumitemKey{ppctight}{leftmargin=0pt,listparindent=5mm,labelwidth=5mm}
 
@@ -414,98 +671,157 @@
 %%%
 %%% keyword command definition (for abstract)
 %%%
-\newcounter{tc at kwcounter}%
-\NewDocumentCommand{\keyword}{m}{%%
-        \stepcounter{tc at kwcounter}%%
-        \expandafter\gdef\csname keyw\alph{tc at kwcounter}\endcsname{#1}%%
-}%
-\NewDocumentCommand{\tcabnt at abstractkw}{}{%%
-        \@ifundefined{keywa}{}{\expandafter\MakeUppercase\keywa}%%
-        \@ifundefined{keywb}{}{, \keywb}%%
-        \@ifundefined{keywc}{}{, \keywc}%%
-        \@ifundefined{keywd}{}{, \keywd}%
-        \@ifundefined{keywe}{}{, \keywe}%
-        \@ifundefined{keywf}{}{, \keywf}%
-        \@ifundefined{keywg}{}{, \keywg}%
-        \@ifundefined{keywh}{}{, \keywh}%
-        \@ifundefined{keywi}{}{, \keywi}%
-        \@ifundefined{keywj}{}{, \keywj}%
-}%
 
-\let\tc at org@abstract\abstract
-\let\tc at org@endabstract\endabstract
+\seq_new:N \l__ufrgscca_keywords_seq
+\seq_new:N \l__ufrgscca_other_keywords_seq
+\seq_new:N \l__ufrgscca_keywords_tmpa_seq
+\seq_new:N \l__ufrgscca_keywords_tmpb_seq
 
-\RenewDocumentEnvironment{abstract}{}{%%
-        \notoc\chapter{\abstractname}%
-}{%%
-        \par\vspace{2ex} %\vfill%
-        \noindent\textbf{\keywordsname:} \tcabnt at abstractkw.%
-}%
+\NewDocumentCommand{\mainkeywords}{m}
+  {
+    \seq_set_from_clist:Nn \l__ufrgscca_keywords_tmpa_seq {#1}
+    \seq_set_eq:NN \l__ufrgscca_keywords_tmpb_seq \l__ufrgscca_keywords_seq
+    \seq_gconcat:NNN \l__ufrgscca_keywords_seq \l__ufrgscca_keywords_tmpb_seq \l__ufrgscca_keywords_tmpa_seq
+  }
+\let\keyword\mainkeywords
 
-\NewDocumentEnvironment{otherabstract}{O{english}m}{%%
-        \gdef\tc at otherkeywords{#2}%%
-        \begin{otherlanguage}{#1}%
-        \notoc\chapter{\abstractname}%
-}{%
-        \par\vspace{2ex} %\vfill%
-        \noindent\textbf{\keywordsname:} \tc at otherkeywords.%
-        \end{otherlanguage}%
-}%
+\NewDocumentCommand{\lstkeywords}{O{,~ }}
+  {
+    \seq_sort:Nn \l__ufrgscca_keywords_seq 
+      {
+        \str_compare:nNnTF { ##1 } > { ##2 }
+          { \sort_return_swapped: }
+          { \sort_return_same: }
+      }
+    \seq_use:Nn \l__ufrgscca_keywords_seq {#1}
+  }
 
+\NewDocumentCommand{\otherkeywords}{m}
+  {
+    \seq_set_from_clist:Nn \l__ufrgscca_keywords_tmpa_seq {#1}
+    \seq_set_eq:NN \l__ufrgscca_keywords_tmpb_seq \l__ufrgscca_other_keywords_seq
+    \seq_gconcat:NNN \l__ufrgscca_other_keywords_seq \l__ufrgscca_keywords_tmpb_seq \l__ufrgscca_keywords_tmpa_seq
+  }
 
+\NewDocumentCommand{\lstotherkeywords}{O{,~ }}
+  {
+    \seq_sort:Nn \l__ufrgscca_other_keywords_seq 
+      {
+        \str_compare:nNnTF { ##1 } > { ##2 }
+          { \sort_return_swapped: }
+          { \sort_return_same: }
+      }
+    \seq_use:Nn \l__ufrgscca_other_keywords_seq {#1}
+  }
 
+
+\bool_if:NTF \l__ufrgscca_oldrenews_bool
+  {
+    \RenewDocumentEnvironment{abstract}{}
+      {
+        \notoc\chapter{\abstractname}
+      }
+      {
+        \par\vspace{2ex}
+        \noindent\textbf{\keywordsname :\ ~} \lstkeywords
+      }
+  }
+  {
+    \NewDocumentEnvironment{mainabstract}{}
+      {
+        \notoc\chapter{\abstractname}
+      }
+      {
+        \par\vspace{2ex}
+        \noindent\textbf{\keywordsname :\ ~} \lstkeywords
+      }
+  }
+
+\NewDocumentEnvironment{otherabstract}{O{english}}
+  {
+    \begin{otherlanguage}{#1}
+      \notoc\chapter{\abstractname}
+  }
+  {
+      \par\vspace{2ex}
+      \noindent\textbf{\keywordsname :\ ~} \lstotherkeywords
+    \end{otherlanguage}%
+  }
+
+
+
+%%
+%% if needed to be, double side.
+%%
+\cs_new_protected:Npn \__ufrgscca_clearpage: 
+  { 
+    \if at openright
+      \cleardoublepage
+    \else
+      \clearpage
+    \fi 
+  }
+
+%
+\bool_if:NTF \l__ufrgscca_yearsonly_bool
+  {
+    \SetConsts
+      {
+        publ.date = {\UseConst{publ.year}} ,
+        publ.monthyear = {\UseConst{publ.month} ~ - ~ \UseConst{publ.year}} ,
+      }
+  }
+  {
+    \SetConsts
+      {
+        publ.date = {\UseConst{publ.month} ~ - ~ \UseConst{publ.year}} ,
+        publ.monthyear = {\UseConst{publ.month} ~ - ~ \UseConst{publ.year}} ,
+      }
+  }
+
 %==============================================================================%
 % date redefinition (separated month and year)
 %==============================================================================%
 \RenewDocumentCommand{\date}{O{\number\day}mm}{%
-	\gdef\tc at publmonth{#2}%
-	\gdef\tc at publyear{#3}%
-	\gdef\tc at publday{\ifnum #1<10 0\fi #1}%
+  \int_compare:nNnTF {#1} < {10}
+    {
+      \SetConsts{%
+        publ.month = {#2} ,
+        publ.year = {#3} ,
+        publ.day = {0#1} ,
+      }
+    }
+    {
+      \SetConsts{%
+        publ.month = {#2} ,
+        publ.year = {#3} ,
+        publ.day = {#1} ,
+      }
+    }
 }%
 \date{\monthname}{\number\year}%
 
-%for english%
-\@namedef{captionsenglish}{%%
- \input{ufrgscca-en-base.def}%%
-}%
-\@namedef{dateenglish}{%%
-	\def\today{\monthname\space\number\day,\space\number\year}%%
-	\def\monthname{%%
-		\ifcase\month\or%%
-			January\or February\or March\or April\or%%
-			May\or June\or July\or August\or September\or%%
-			October\or November\or December%%
-		\fi%%
-	}%%
-    \iftcif at yearsonly
-        \def\tc at date{\tc at publyear}%%
-    \else
-    	\def\tc at date{\tc at publmonth~\tc at publyear}%%
-    \fi
-}%
-%
-%para portugues%
-\@namedef{captionsbrazilian}{%%
- \input{ufrgscca-ptBR-base.def}%%
-}%
-\@namedef{datebrazilian}{%%
-	\def\today{\number\day\space de\space\monthname\space de\space\number\year}%%
-	\def\monthname{%%
-		\ifcase\month\or%%
-			Janeiro\or Fevereiro\or Março\or Abril\or%%
-			Maio\or Junho\or Julho\or Agosto\or Setembro\or%%
-			Outubro\or Novembro\or Dezembro%%
-		\fi%%
-	}%%
-    \iftcif at yearsonly
-        \def\tc at date{\tc at publyear}%%
-    \else
-        \def\tc at date{\tc at publmonth~\tc at publyear}%%
-    \fi
-}%
-%
-\def\tc at monthyeardate{\tc at publmonth~\tc at publyear}
-%
-% Mainly for 'cover pages'
-\def\tc at pagebreak{\if at openright\cleardoublepage\else\clearpage\fi}
 
+\bool_if:NTF \l__ufrgscca_english_bool
+  {
+  	\def\today{\monthname\space\number\day,\space\number\year}
+  	\def\monthname{
+  		\ifcase\month\or
+  			January\or February\or March\or April\or
+  			May\or June\or July\or August\or September\or
+  			October\or November\or December
+  		\fi
+    }
+  }
+  {
+  	\def\today{\number\day\space de\space\monthname\space de\space\number\year}
+  	\def\monthname{
+  		\ifcase\month\or
+  			Janeiro\or Fevereiro\or Março\or Abril\or
+  			Maio\or Junho\or Julho\or Agosto\or Setembro\or
+  			Outubro\or Novembro\or Dezembro
+  		\fi
+    }
+  }
+
+

Added: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -0,0 +1,59 @@
+%%%==============================================================================
+%% Copyright 2022-23 by Alceu Frigeri
+%%
+%% This work may be distributed and/or modified under the conditions of
+%%
+%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+%%   version 1.3c (or later), and/or
+%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
+%%   version 3 (or later)
+%%
+%% This work has the LPPL maintenance status *maintained*.
+%%
+%% The Current Maintainer of this work is Alceu Frigeri
+%%
+%% This is version {2.0} {2023/11/23}
+%%
+%% The list of files that compose this work can be found in the README.md file at
+%% https://ctan.org/pkg/ufrgscca
+%%
+%%%==============================================================================
+%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
+%% EE    stands for "Engineering School"
+%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
+%%%==============================================================================
+
+
+%%%%%
+%%
+%% those are loaded, on the fly, when selecting, or switching, to english (\@namedef{captionsenglish} vis-à-viz \begin{otherlanguage}{})
+%%
+%%%%%
+
+%	\def\bibname{References}% deprecated by biber
+%	\def\refname{\bibname}
+%  \setlocalecaption{english}{refname}{References}
+  \defbibheading{bibliography}[References]{\nonum\chapter{#1}\pagestyle{bibliography}}
+	\def\abstractname{Abstract}%
+	\def\englishabstractname{Abstract}%
+	\def\contentsname{Contents}%
+	\def\listfigurename{List of Figures}%
+	\def\listtablename{List of Tables}%
+	\def\figurename{Figure}%
+	\def\tablename{Table}%
+	\def\byname{by}%
+	\def\keywordsname{Keywords}%
+
+	\def\listabbrvname{List of Abbreviations}%
+	\def\listsymbolname{List of Symbols}%
+
+	\def\listingname{Listing}
+  	\def\listlistingname{List of Listings}
+
+	\def\defappendixname{Appendix}%
+	\def\defappendixpagename{Appendices}%
+	\def\defannexname{Annex}%
+	\def\defannexpagename{Annexe}%
+	\def\sourcename{Source:}
+	\def\notename{Note}%%
+


Property changes on: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -0,0 +1,55 @@
+%%%==============================================================================
+%% Copyright 2022-23 by Alceu Frigeri
+%%
+%% This work may be distributed and/or modified under the conditions of
+%%
+%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+%%   version 1.3c (or later), and/or
+%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
+%%   version 3 (or later)
+%%
+%% This work has the LPPL maintenance status *maintained*.
+%%
+%% The Current Maintainer of this work is Alceu Frigeri
+%%
+%% This is version {2.0} {2023/11/23}
+%%
+%% The list of files that compose this work can be found in the README.md file at
+%% https://ctan.org/pkg/ufrgscca
+%%
+%%%==============================================================================
+%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
+%% EE    stands for "Engineering School"
+%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
+%%%==============================================================================
+
+
+%%%
+%%
+%% those are loaded, on the fly, when selecting, or switching, to portuguese (\@namedef{captionsbrazilian}  vis-à-viz \begin{otherlanguage}{})
+%%
+%%%%%
+
+	\def\abstractname{Resumo}%
+	\def\englishabstractname{Abstract}%
+	\def\contentsname{Sum{\'{a}}rio}%
+	\def\listfigurename{Lista de Ilustra\c{c}\~oes}%
+	\def\listtablename{Lista de Tabelas}%
+	\def\figurename{Figura}%
+	\def\tablename{Tabela}%
+	\def\byname{por}%
+	\def\keywordsname{Palavras-chave}%
+
+	\def\listabbrvname{Lista de Abreviaturas}%
+	\def\listsymbolname{Lista de S{\'{\i}}mbolos}%
+
+	\def\listingname{Listagem}
+	\def\listlistingname{Lista de Listagens}
+
+	\def\defappendixname{Ap{\^{e}}ndice}%
+	\def\defappendixpagename{Ap{\^{e}}ndices}%
+	\def\defannexname{Anexo}%
+	\def\defannexpagename{Anexos}%
+	\def\sourcename{Fonte:}
+	\def\notename{Nota}%%
+


Property changes on: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,1186 +23,593 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-coord}
-\def\tc at tmp@altpackname{ufrgsccacoord}
-\def\tc at tmp@packdesc{UFRGS/CCA coord commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
-\newif\iftcif at coord@emptyforms\tcif at coord@emptyformsfalse
-\DeclareKeys[ufrgscca-coord]{
-    calendar-I.usage = general,
-    calendar-I.if = tcif at coord@calendarI,
-    calendar-II.usage = general,
-    calendar-II.if = tcif at coord@calendarII,
-    checklist.usage = general,
-    checklist.if = tcif at coord@checklist,
-    report.usage = general,
-    report.if = tcif at coord@report,
-    report-II.usage = general,
-    report-II.if = tcif at coord@report,
-    report-I.usage = general,
-    report-I.if = tcif at coord@reportI,
-    reportxinfo.usage = general,
-    reportxinfo.if = tcif at coord@reportxinfo,
-    boards.usage = general,
-    boards.if = tcif at coord@boards,
-    boarddates.usage = general,
-    boarddates.if = tcif at coord@boarddates,
-    studentlist.usage = general,
-    studentlist.if = tcif at coord@studentlist,
-    revforms.usage = general,
-    revforms.if = tcif at coord@forms at revforms,
-    referral-I.usage = general,
-    referral-I.if = tcif at coord@forms at referralI,
-    referral-II.usage = general,
-    referral-II.if = tcif at coord@forms at referralII,
-    referral.usage = general,
-    referral.if = tcif at coord@forms at referralII,
-    cocertificate.usage = general,
-    cocertificate.if = tcif at coord@forms at cocertificate,
-}
-\ProcessKeyOptions[ufrgscca-coord]\relax
-\NewDocumentCommand{\setreports}{m}{\SetKeys[ufrgscca-coord]{#1}}
 
+\ProvidesExplPackage
+    {ufrgscca-coord}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA coord commands}
 
-\def\c at one#1:#2:{\csname #1\endcsname}
-\def\c at two#1:#2:{\csname #1\endcsname[newpage]}
-\def\tccoord at split#1:#2:#3#4#5,{#4#1:#2:}
-\NewDocumentCommand{\tccoord at student@exec}{m}{\tccoord at split#1::\c at two\c at one\empty,}
 
-\RequirePackage{longtable}
-\RequirePackage{ufrgscca-gen}
-\RequirePackage{ufrgscca-core}
-\RequirePackage{ufrgscca-forms}
-\RequirePackage{pgfcalendar}
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-coord / pkg info}
+  {
+     name        .code:n = {ufrgscca-coord} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~ coordination~ report~ commands}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
 
-%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%
-\cmdfactory<coord>{boardstitle}
-\cmdfactory<coord>{boardsworklabel}
-\cmdfactory<coord>{TCCgradesNlabel,TCCgradesClabel}%
 
-\cmdfactory<coord>{calendartitle,tcccalendardesc}%
-\cmdfactory<coord>{tccreporttitle,tccreportopening,tccreportdesc,tccreportabsents,tccreportdismiss}%
-\cmdfactory<coord>{tccreferralopening}
-\cmdfactory<coord>{referralfailed,referralapproved}
-\cmdfactory<coord>{referralfailFF}
-\cmdfactory<coord>{referralexamapprovedtext,referralexamfailtext,referralfatetext}%
-\cmdfactory<coord>{referralexamapprovedtextTR,referralexamfailtextTR,referralfatetextTR}%
-\cmdfactory<coord>{boardlabel,cocertificatetitle,cocertificateopenning,cocertificatetext}%
-\cmdfactory<coord>{TCCperiod,boardstitleB,boardsOBS}%
-\cmdfactory<coord>{studentlistformtitle,studentlistactivity,studentlistdate}%
 
-\cmdfactory<coord>{advisornamegen,advisornameplural}
-\cmdfactory<coord>{tcceventAweek,tcceventBweek,tcceventCweek,tcceventDweek}
-\cmdfactory<coord>{tcceventEweek,tcceventFweek,tcceventGweek,tcceventHweek}
-\cmdfactory<coord>{tcceventIweek,tcceventJweek,tcceventKweek,tcceventLweek}
 
+\cs_generate_variant:Nn \tl_set:Nn {Ne}
 
-\cmdfactory<coord>{internshipreferralopening,internshipreferralfatetext,internshipgrades,internshipreferralfailFF}
-\cmdfactory<coord>{internshipreferralexamapprovedtext,internshipreferralexamfailtext}
-\cmdfactory<coord>{internshipreferralexamhardapprovedtext,internshipreferralexamhardfailtext}
+\keys_define:nn { ufrgscca / coord }
+  {
+    calendar-I. bool_set:N   = \l__ufrgscca_calendarI_bool ,
+    calendar-I. usage:n       = general , 
+    
+    calendar-II. bool_set:N  = \l__ufrgscca_calendarII_bool ,
+    calendar-II. usage:n      = general , 
+    
+    report-I. bool_set:N     = \l__ufrgscca_reportI_bool ,
+    report-I. usage:n         = general , 
+    
+    report-II. bool_set:N    = \l__ufrgscca_reportII_bool ,
+    report-II. usage:n        = general , 
+    
+    checklist-I. bool_set:N    = \l__ufrgscca_checklistI_bool ,
+    checklist-I. usage:n        = general , 
 
+    checklist-II. bool_set:N    = \l__ufrgscca_checklistII_bool ,
+    checklist-II. usage:n        = general , 
 
-%%% this should go to ufrgscca-coord !!!!
+    boards. bool_set:N       = \l__ufrgscca_boards_bool ,
+    boards. usage:n           = general , 
+    
+    revforms-I. bool_set:N   = \l__ufrgscca_revformsI_bool ,
+    revforms-I. usage:n       = general , 
+    
+    revforms-II. bool_set:N  = \l__ufrgscca_revformsII_bool ,
+    revforms-II. usage:n      = general , 
+    
+    referral-I. bool_set:N   = \l__ufrgscca_referralI_bool ,
+    referral-I. usage:n       = general , 
+    
+    referral-II. bool_set:N  = \l__ufrgscca_referralII_bool ,
+    referral-II. usage:n      = general , 
+    
+    cocertificate. bool_set:N  = \l__ufrgscca_cocertificate_bool ,
+    cocertificate. usage:n      = general , 
+  }
 
-\NewDocumentCommand{\grades}{mmmmm}{%
-  \gdef\tc at TCCgradeA{#1}%
-  \gdef\tc at TCCgradeB{#2}%
-  \gdef\tc at TCCgradeC{#3}%
-  \gdef\tc at TCCgradeD{#4}%
-  \gdef\tc at TCCgradeFF{#5}%
-  \gdef\tc at gradeA{#1}%
-  \gdef\tc at gradeB{#2}%
-  \gdef\tc at gradeC{#3}%
-  \gdef\tc at gradeD{#4}%
-  \gdef\tc at gradeFF{#5}%
-}%
-\let\TCCgrades\grades%
-%%% this should go to ufrgscca-coord !!!!
+\cs_new_protected:Npn \__ufrgscca_set_reports:n #1 
+  {  \keys_set:nn { ufrgscca / coord }{#1}  }
 
-\NewDocumentCommand{\gradesN}{mmm}{%
-  \gdef\tc at TCCgradeAN{#1}%
-  \gdef\tc at TCCgradeBN{#2}%
-  \gdef\tc at TCCgradeCN{#3}%
-  \gdef\tc at gradeAN{#1}%
-  \gdef\tc at gradeBN{#2}%
-  \gdef\tc at gradeCN{#3}%
-}%
-\let\TCCgradesN\gradesN
+\def\c at one#1:#2:{\csname #1\endcsname}
+\def\c at two#1:#2:{\csname #1\endcsname[newpage]}
+\def\tccoord at split#1:#2:#3#4#5,{#4#1:#2:}
+\NewDocumentCommand{\tccoord at student@exec}{m}{\tccoord at split#1::\c at two\c at one\empty,}
 
+\RequirePackage{longtable}
+\RequirePackage{multirow}
 
-%%%%%%%%%
-%%%%%%%%% ufrgscca-coord !!!
-%%%%%%%%%
-\NewDocumentCommand{\tccoord at studentExam}{m}{%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}Exam\endcsname{#1}%
-}%
-\NewDocumentCommand{\tccoord at studentFF}{}{%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}FF\endcsname{1}%
-  \gdef\tc at TCCff@flag{1}%
-  \gdef\tc at ff@flag{1}%
-}%
-\NewDocumentCommand{\tccoord at studentDismiss}{}{%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}Dismiss\endcsname{1}%
-  \gdef\tc at TCCdismiss@flag{1}%
-  \gdef\tc at dismiss@flag{1}%
-}%
-\NewDocumentCommand{\studentFate}{O{}}{%%
-  \ifthenelse{\equal{#1}{C}}{%%
-    \tccoord at studentExam{C}%%
-  }{%%
-    \ifthenelse{\equal{#1}{D}}{%%
-      \tccoord at studentExam{D}%%
-    }{%%
-      \ifthenelse{\equal{#1}{FF}}{%%
-        \tccoord at studentFF%%
-      }{%%
-        \ifthenelse{\equal{#1}{Dismiss}}{%%
-          \tccoord at studentDismiss%%
-        }{%%
-        }%%
-      }%%
-    }%%
-  }%%
-}%%
+\RequirePackage{ufrgscca-core}
+\RequirePackage{ufrgscca-forms}
+%\RequirePackage{pgfcalendar}
+
 %
-%
-\NewDocumentCommand{\studenttimeslot}{O{}mm}{%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}date\endcsname{#2}%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}time\endcsname{#3}%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}local\endcsname{#1}%
-}%
-\let\timeslot\studenttimeslot%
-%
-\NewDocumentCommand{\tccdate}{mm}{%%
-  \expandafter\gdef\csname date:#1\endcsname{#2}%
-}%
-%
 
-%\def\c at one#1:#2:{\csname #1\endcsname}
-%\def\c at two#1:#2:{\csname #1\endcsname[newpage]}
-
-\NewDocumentCommand{\studentturnindate}{m}{\tccoord at studentdatesplit#1,}
-%23/12/2022
-
-\def\tccoord at studentdatesplit#1/#2/#3,{
-   \pgfcalendarifdate{#3-#2-#1}{at least=\tc at internshipcommitB+1}{\tccoord at studentFF}{}
-   \pgfcalendarifdate{#3-#2-#1}{between=\tc at internshipcommitA+1 and \tc at internshipcommitB}{\tccoord at studentExam{X}}{}
-   \expandafter\gdef\csname tc at student\Alph{tc at studentcount}date\endcsname{#1/#2/#3}%
+\NewDocumentCommand{\ActivitySetNewEvent}{O{}mm}{
+  \tl_if_blank:nTF {#1}
+    {
+      \starray_new_term:nn {activity.calendar}{#2}
+      \starray_gset_prop:nnn {activity.calendar}{event}{#3}
+    }
+    {
+      \starray_new_term:nn {activity[#1].calendar}{#2}
+      \starray_gset_prop:nnn {activity[#1].calendar}{event}{#3}
+    }
 }
 
-\NewDocumentCommand{\intershipcommitdates}{mm}{%
-    \tccoord at commitdatesplit#1,A,%
-    \tccoord at commitdatesplit#2,B,%
+\NewDocumentCommand{\ActivitySetEventDay}{O{}mmm}{
+  \tl_if_blank:nTF {#1}
+    {
+      \starray_gset_from_keyval:nn {activity.calendar[#2]}
+        {
+            date = {#3} ,
+            week = {#4} ,
+        }
+    }
+    {
+      \starray_gset_from_keyval:nn {activity[#1].calendar[#2]}
+        {
+            date = {#3} ,
+            week = {#4} ,
+        }
+    }
 }
 
-\def\tccoord at commitdatesplit#1/#2/#3,#4,{
-   \expandafter\xdef\csname tc at internshipcommit#4\endcsname{#3-#2-#1}%
-   \expandafter\xdef\csname tc at internshipcommit#4#4\endcsname{#1/#2/#3}%
-}
-
-%%%%%%%%%
-%%%%%%%%% ufrgscca-coord !?!!
-%%%%%%%%%
-\NewDocumentCommand{\studentTCCtitle}{m}{%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}title\endcsname{#1}%
-}%
-\let\TCCtitle\studentTCCtitle%
 %
-%%%%%%%%%
-%%%%%%%%% ufrgscca-coord !!!
-%%%%%%%%%
-\NewDocumentCommand{\studentremark}{m}{%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}remark\endcsname{#1}%
-}%
+\NewDocumentCommand{\studentfate}{O{}}{%%
+  \str_case:nnF  {#1}
+    {
+      {C}
+        {
+          \starray_gset_from_keyval:nn {student} 
+            {
+              grade = C ,
+              flag-exam = \c_true_bool ,
+              flag-graded = \c_true_bool ,
+              flag-approved = \c_true_bool ,
+            }
+        }
+      {D}
+        {
+          \starray_gset_from_keyval:nn {student} 
+            {
+              grade = D ,
+              flag-exam = \c_true_bool ,
+              flag-graded = \c_true_bool ,
+            }
+        }
+      {FF}
+        {
+          \starray_gset_from_keyval:nn {student} 
+            {
+              grade = FF ,
+              flag-ff = \c_true_bool ,
+              flag-graded = \c_true_bool ,
+            }
+        }
+      {dismiss}
+        {
+          \starray_gset_from_keyval:nn {student} 
+            {
+              flag-dismiss = \c_true_bool ,
+              flag-graded = \c_true_bool ,
+            }
+        }
+      {none}
+        {
+          \starray_gset_from_keyval:nn {student} 
+            {
+              flag-dismiss = \c_true_bool ,
+              flag-graded = \c_true_bool ,
+            }
+        }
+    }
+    { %% in case of none of above...
+      \__ufrgscca_studentgrade:
+    }
+}%%
 %
+\tl_new:N \l__ufrgscca_tmpa_tl
+\tl_new:N \l__ufrgscca_tmpb_tl
+\tl_new:N \l__ufrgscca_tmpc_tl
+\tl_new:N \l__ufrgscca_tmpd_tl
+\cs_new_protected:Npn \__ufrgscca_studentgrade: 
+    {
+      %(\DataFields{student}{name})\par
+      \starray_term_syntax:n {student.reviewer[1]}
+      \tl_set:Ne \l__ufrgscca_tmpa_tl {\starray_parsed_get_prop:n {grade}}
+      \starray_term_syntax:n {student.reviewer[2]}
+      \tl_set:Ne \l__ufrgscca_tmpb_tl {\starray_parsed_get_prop:n {grade}}
+      \starray_term_syntax:n {student.reviewer[3]}
+      \tl_set:Ne \l__ufrgscca_tmpc_tl {\starray_parsed_get_prop:n {grade}}
+      \int_case:nn {\starray_parsed_get_prop:n {gradetype}}
+        {
+          {1}
+            {
+              \tl_set:Ne \l__ufrgscca_tmpd_tl
+                {\fpeval{round(((\l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/2),2,1)}}
+            }
+          {2}
+            {
+              \tl_set:Ne \l__ufrgscca_tmpd_tl
+                {\fpeval{round(((\l__ufrgscca_tmpa_tl + \l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/3),2,1)}}
+            }
+        }
+      \starray_gset_prop:nne {student}{gradeavrg}{\l__ufrgscca_tmpd_tl}
+      \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeC}}
+        { % D
+          \starray_gset_prop:nnn {student}{grade}{D}
+        }
+        {
+          \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeB}}
+            { % C
+              \starray_gset_prop:nnn {student}{grade}{C}
+              \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool}
+            }
+            {
+              \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeA}}
+                { % B
+                  \starray_gset_prop:nnn {student}{grade}{B}
+                  \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool}
+                }
+                { % A
+                  \starray_gset_prop:nnn {student}{grade}{A}
+                  \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool}
+                }
+            }
+        }
 
-
-
+        \starray_gset_prop:nnn {student}{flag-graded}{\c_true_bool}
+    }
 %
-\NewDocumentCommand{\tccoord at checklist}{m}{\expandafter\gdef\csname tc at student\Alph{tc at studentcount}:#1\endcsname{}}%
-\NewDocumentCommand{\checklist}{m}{\forcsvlist{\tccoord at checklist}{#1}}%
-%
-\NewDocumentCommand{\addtostudent}{mm}{\@ifundefined{#1}{}{\csappto{#1.hook}{#2}}}
-%
-\NewDocumentCommand{\checkedbox}{}{\ooalign{$\square$\cr\hidewidth\raise.3ex\hbox{$\checkmark\mkern-7mu$}\hidewidth\cr}}%
-\NewDocumentCommand{\uncheckedbox}{}{$\square$}%
-\NewDocumentCommand{\tccoord@@check}{mm}{\@ifundefined{tc at student#1:#2}{\uncheckedbox}{\checkedbox}}%
-\NewDocumentCommand{\tccoord at check}{mm}{\@ifundefined{#2}{}{\tccoord@@check{#1}{\csname #2\endcsname} \csname @\csname #2\endcsname\endcsname}}%
-\NewDocumentCommand{\checkdef}{mmm}{\expandafter\gdef\csname #1\endcsname{#2}\expandafter\gdef\csname @#2\endcsname{#3}}%
-%\chekmark%
-
-%%%%%
-%%%%% ufrgscca-coord !!!!
-%%%%%
-\NewDocumentCommand{\tccoord at studentboardsnewpage}{}{%  %%% see ufrgscca-core for counters...
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}BoardsNP\endcsname{1}%
+\NewDocumentCommand{\timeslot}{O{}mm}{%%
+  \starray_gset_from_keyval:nn {student}
+    {
+      board-local = #1 ,
+      board-date = #2 ,
+      board-time = #3 ,
+    }
 }%
-
-\NewDocumentCommand{\NewStudent}{m+m}{%%
-  \expandafter\NewDocumentCommand\csname #1\endcsname{O{}}{%%
-    #2%
-    \csname #1.hook\endcsname%
-    \@ifundefined{tccoord at studentboards##1}{}{\csname tccoord at studentboards##1\endcsname}%%
-    \iftcif at coord@forms at revforms%
-      \tcforms at examinersForms%
-    \fi%
-    \iftcif at coord@forms at referralII%
-      \tccoord at TCCreferralletter%
-    \fi%
-    \iftcif at coord@forms at referralI%
-      \tccoord at TCCIreferralletter%
-    \fi%
-    \iftcif at coord@forms at cocertificate%
-      \tccoord at TCCcocertificateletter%
-    \fi%
 %
-    \@defaultboard%
-  }%%
-  \expandafter\NewDocumentCommand\csname #1.hook\endcsname{}{}%
-}%
 
 
-\NewDocumentCommand{\NewInternshipStudent}{m+m}{%%
-    \expandafter\NewDocumentCommand\csname #1\endcsname{O{}}{%%
-        #2%
-        \csname #1.hook\endcsname%
-        \iftcif at coord@forms at referralII%
-        \tccoord at internshipreferalletter%
-        \fi%
-    }%%
-    \expandafter\NewDocumentCommand\csname #1.hook\endcsname{}{}%
-}%
 
-
-
-\NewDocumentCommand{\@distinctboard}{}{\def\tc at nBoard{}}%
-\NewDocumentCommand{\@defaultboard}{}{\let\tc at nBoard\undefined}%
-%
-%
-\newcounter{tc at calendareventcount}%
-\NewDocumentCommand{\tcccalendarevent}{mm}{%%
-        \stepcounter{tc at calendareventcount}%%
-        \expandafter\gdef\csname tc at tcccalendarevent\Alph{tc at calendareventcount}week\endcsname{#1}%%
-        \expandafter\gdef\csname tc at tcccalendarevent\Alph{tc at calendareventcount}desc\endcsname{#2}%%
-}%
-\NewDocumentCommand{\tcccalendarhead}{mmm}{\gdef\tc at tcccalendarhead{#1 & #2 & #3\\}}%
-%
-\newcounter{tc at calendareventdatecount}%
-\NewDocumentCommand{\tcccalendareventdate}{m}{%%
-        \stepcounter{tc at calendareventdatecount}%%
-        \expandafter\gdef\csname tc at tcccalendarevent\Alph{tc at calendareventdatecount}date\endcsname{#1}%%
-}%
-%
-\NewDocumentCommand{\tccoord at calendarlinereset}{m}{\@ifundefined{tc at tcccalendarevent#1week}{}{\csundef{tc at tcccalendarevent#1week}}}%
-%
-\NewDocumentCommand{\tcccalendarreset}{}{
-  \forcsvlist{\tccoord at calendarlinereset}{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O}%
-  \setcounter{tc at calendareventcount}{0}%%
-  \setcounter{tc at calendareventdatecount}{0}%
+\NewDocumentCommand{\studentCase}{mmmmm}{
+    \starray_term_syntax:n{student}
+    \bool_case:nF
+    {
+      {\starray_parsed_get_prop:n{flag-ff}}
+        {#5}
+      {\starray_parsed_get_prop:n{flag-exam}}
+        {
+          \bool_if:nTF{\starray_parsed_get_prop:n{flag-approved}}
+            {#3}
+            {#4}
+        }
+    }
+    {
+      \bool_if:nTF{\starray_parsed_get_prop:n{flag-approved}}
+        {#1}
+        {#2}
+    }
 }
 
-%
-\NewDocumentCommand{\examinergrades}{mmmO{0}}{%%
-  \ifthenelse{\equal{#1}{}}{%%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}grade\endcsname{0}%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}gradeI\endcsname{0}%
-  }{%
-    \ifthenelse{\equal{#4}{0}}{%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointA\endcsname{#1}%%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointB\endcsname{#2}%%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointC\endcsname{#3}%%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointD\endcsname{#4}%%
-          \expandafter\edef\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}grade\endcsname{\fpeval{round((\tc at TCCpointAweight * #1 + \tc at TCCpointBweight * #2 + \tc at TCCpointCweight * #3) / (\tc at TCCpointAweight + \tc at TCCpointBweight + \tc at TCCpointCweight),2,1)} }%
-          \expandafter\edef\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}gradeI\endcsname{0}%
-    }{%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointA\endcsname{\fpeval{#1}}%% * \tc at TCCIpointscale}}%%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointB\endcsname{\fpeval{#2}}%% * \tc at TCCIpointscale}}%%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointC\endcsname{\fpeval{#3}}%% * \tc at TCCIpointscale}}%%
-          \expandafter\def\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}pointD\endcsname{\fpeval{#4}}%% * \tc at TCCIpointscale}}%%
-          \expandafter\edef\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}grade\endcsname{0}%
-          \expandafter\edef\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}gradeI\endcsname{\fpeval{round((\tc at TCCIpointAweight * #1 + \tc at TCCIpointBweight * #2 + \tc at TCCIpointCweight * #3 + \tc at TCCIpointDweight * #4) / (\tc at TCCIpointAweight + \tc at TCCIpointBweight + \tc at TCCIpointCweight + \tc at TCCIpointDweight),2,1)} }%
-%          \expandafter\edef\csname tc at student\Alph{tc at studentcount}@examiner\Alph{tc at examinercount}gradeI\endcsname{\fpeval{round((\tc at TCCIpointAweight * #1 + \tc at TCCIpointBweight * #2 + \tc at TCCIpointCweight * #3 + \tc at TCCIpointDweight * #4)  * \tc at TCCIpointscale / (\tc at TCCIpointAweight + \tc at TCCIpointBweight + \tc at TCCIpointCweight + \tc at TCCIpointDweight),2,1)} }%
-    }%
-  }%
-}%
 
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC calendar%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\tc at calendartab{11.5cm}%
-\NewDocumentCommand{\tccoord at TCCcalendarline}{m}{\@ifundefined{tc at tcccalendarevent#1week}{}{\textbf{\csname tc at tcccalendarevent#1date\endcsname} & \csname tc at tcccalendarevent#1week\endcsname & \csname tc at tcccalendarevent#1desc\endcsname\\\hline}}%
-%%%
-%%
-%%%
-\NewDocumentCommand{\tccoord at TCCcalendarI}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitleTR}{\tcdef at coord@calendartitle}%
-%
-  { \footnotesize%
-    \begin{center}
-%
-      \resizebox{\textwidth}{!}{%%
-        \begin{tabular}{ccp{\tc at calendartab}}%
-          \tc at tcccalendarhead\hline%
-          \forcsvlist{\tccoord at TCCcalendarline}{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O}%
-        \end{tabular}}%
-%
-    \end{center}%
-    %\if at lmodern
-      \tiny
-    %\fi
-    \tcdef at coord@tcccalendardesc%
-  }%
-  \vfill%
-%
-  \pagebreak%
-}%
-%
-\NewDocumentCommand{\tccoord at TCCcalendarII}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at coord@calendartitle}%
-%
-  { \footnotesize%
-    \begin{center}
-%
-      \resizebox{\textwidth}{!}{%%
-        \begin{tabular}{ccp{\tc at calendartab}}%
-          \tc at tcccalendarhead\hline%
-          \forcsvlist{\tccoord at TCCcalendarline}{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O}%
-        \end{tabular}}%
-%
-    \end{center}%
-    %\if at lmodern
-      \tiny
-    %\fi
-    \tcdef at coord@tcccalendardesc%
-  }%
-  \vfill%
-%
-  \pagebreak%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% Student list form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\tc at stlistrule{65mm}%
-\def\tc at stlisttab{70mm}%
-%%%
-%%
-%%%
-\NewDocumentCommand{\tccoord at studentlistrow}{m}{%%
-  \@ifundefined{tc at student#1}{\rule{\tc at stlistrule}{.1pt}}{\csname tc at student#1\endcsname}\hrulefill & \rule{\tc at stlistrule}{.1pt}\\%
-}%
-%
-\NewDocumentCommand{\tccoord at studentlistform}{}{%
-  \stepcounter{tc at studentcount}%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at coord@studentlistformtitle}%
-  \vspace{20mm}%
-%
-  {\small%
-  \begin{tabular}{p{\tc at stlisttab}@{ }p{\tc at stlisttab}}%
-  \tcdef at forms@formsstudentlabelgen & \tcdef at forms@studentsignaturegen\\\hline\\[2mm]%
-
-%
-  \forcsvlist{\tccoord at studentlistrow}{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y}
-  \end{tabular}}%
-  \vfill%
-%
-  \pagebreak%
-}%
-%
-%%%
-%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% student info row (for reports and referral letters)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\tc at BoardTabA{38mm}%
-\def\tc at BoardTabB{38mm}%
-\def\tc at BoardTabC{60mm}%
-\def\tc at BoardTabD{13mm}%
-%%%
-%%
-%%%
-\NewDocumentCommand{\tccoord at studentboardrow}{m}{%%
-  \@ifundefined{tc at student#1}{}{%
-    \@ifundefined{tc at student#1Dismiss}{%%
-      \@ifundefined{tc at student#1FF}{%%
-        \@ifundefined{tc at student#1time}{}{%%
-          \multirow{4}{\tc at BoardTabA}{\textbf{\csname tc at student#1\endcsname}}  & \multirow{4}{\tc at BoardTabB}{{\hspace{-0.4em}\csname tc at student#1 at advisor\endcsname}\ifcsdef{tc at student#1 at coadvisor}{\break\csname tc at student#1 at coadvisor\endcsname}{}} & \break\csname tc at student#1 at examinerA\endcsname  & \multirow{5}{\tc at BoardTabD}{\iftcif at coord@boarddates\else\csname tc at student#1date\endcsname\\\fi
-             \csname tc at student#1time\endcsname\\[1mm]\csname tc at student#1local\endcsname
-            }\\*%
-          & & \csname tc at student#1 at examinerB\endcsname & \\*%
-          & & \csname tc at student#1 at examinerC\endcsname & \\*%
-          & & (\csname tc at student#1 at altexaminerA\endcsname\ ) & \\*%
-          \multicolumn{3}{l}{\textsc{\tcdef at coord@boardsworklabel:} \begin{minipage}{0.90\textwidth}\textit{\csname tc at student#1title\endcsname}\end{minipage}} & \\[2mm]\hline%
-        }%
-      }{}%
-    }{}%
-  }%
-}%
-%
-\NewDocumentCommand{\tccoord at testdaterow}{mm}{%%
-%  \@ifundefined{tcif at coord@boarddates}{}{%%
-  \iftcif at coord@boarddates%
-    \@ifundefined{tc at student#2}{}{%%
-      \@ifundefined{tc at student#2Dismiss}{%%
-        \@ifundefined{tc at student#2FF}{%%
-          \@ifundefined{tc at student#2BoardsNP}{%%
-            \tccoord@@testdaterow{\csname tc at student#1date\endcsname}{\csname tc at student#2date\endcsname}%%
-          }{\kill\pagebreak\tccoord at daterow{#2}}%%
-        }{}%%
-      }{}%%
-    }%%
-  \fi
-  %}%%@boarddates
-}%%
-%
-\NewDocumentCommand{\tccoord@@testdaterow}{mm}{\ifthenelse{\equal{#1}{#2}}{\\[-4.35mm]\hline\\[-4mm]}{\tccoord@@daterow{#2}}}%
-\NewDocumentCommand{\tccoord at daterow}{m}{\gdef\tc at date{\csname tc at student#1date\endcsname}\tccoord@@daterow{\tc at date}}%
-\NewDocumentCommand{\tccoord@@daterow}{m}{& & \multicolumn{2}{r}{\textsc{\textbf{\csname date:#1\endcsname\ --- #1}}} \\*%
-          \textsc{\tcdef at forms@formsstudentlabelgen} & \textsc{\tcdef at forms@formsadvisorlabelgen} & \textsc{\tcdef at forms@formsboardtitle} & \textsc{\tcdef at forms@formstimelabel}\\*\hline}%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Boards announce table%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcounter{tccoord@@auxA}%
-\newcounter{tccoord@@auxB}%
-\NewDocumentCommand{\tccoord@@studenttestrow}{m}{%
-    \setcounter{tccoord@@auxA}{#1}\setcounter{tccoord@@auxB}{#1}\stepcounter{tccoord@@auxB} \tccoord at studentboardrow{\Alph{tccoord@@auxA}}\tccoord at testdaterow{\Alph{tccoord@@auxA}}{\Alph{tccoord@@auxB}}%
-}%
-\NewDocumentCommand{\tccoord at TCCboards}{}{%
-  \stepcounter{tc at studentcount}%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at coord@TCCperiod}%
-%
-  {%%
-    \footnotesize\gdef\tc at date{\csname tc at studentAdate\endcsname}%
-    \setlength\LTleft{-8mm} \begin{center}%
-      {%%
-        \begin{longtable}{p{\tc at BoardTabA}p{\tc at BoardTabB}p{\tc at BoardTabC}p{\tc at BoardTabD}}%
-          \multicolumn{4}{c}{\textbf{\textsc{\tcdef at coord@boardstitle}}}\\\hline%
-          \iftcif at coord@boarddates\else\textsc{\tcdef at forms@formsstudentlabelgen} & \textsc{\tcdef at forms@formsadvisorlabelgen} & \textsc{\tcdef at forms@formsboardtitle} & \textsc{\tcdef at forms@formstimelabel}\\\hline\fi%
-          \endhead%
-           \tccoord at testdaterow{T}{A}%
-           \forcsvlist{\tccoord@@studenttestrow}{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
-          \tccoord at studentboardrow{T}% letter 'T' is 20 !
-%
-        \end{longtable}%
-      }%
-    \end{center}%
-    {\bf \tcdef at coord@boardsOBS}%
-  }%
-  \vfill%
-  \pagebreak%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% \tccoord at fate => A,B,C,D as a function of student grade%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at fate}{m}{%
-    \ifthenelse{1 = \fpeval{#1 < \tc at TCCgradeCN}}%
-        {\tc at TCCgradeD}%
-        {
-          \ifthenelse{1 = \fpeval{#1 < \tc at TCCgradeBN}}%
-              {\tc at TCCgradeC}%
-              {
-                \ifthenelse{1 = \fpeval{#1 < \tc at TCCgradeAN}}%
-                {\tc at TCCgradeB}%
-                {\tc at TCCgradeA}%
-              }%
-        }%
+\NewDocumentCommand{\studentDismissCase}{mm}{
+    \starray_term_syntax:n{student}
+    \bool_if:nTF {\starray_parsed_get_prop:n{flag-dismiss}}
+      {#1}
+      {#2}
 }
-\NewDocumentCommand{\tccoord@@fate}{m}{\tccoord at fate{\csname tc at student#1Temp\endcsname}}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% \tc at student grade => average of the 3 examiners grade%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at studentgrade}{m}{%%
-  \@ifundefined{tc at student#1}{}{%
-    \expandafter\edef\csname tc at student#1Temp\endcsname{%%
-\fpeval{round((\csname tc at student#1 at examinerAgrade\endcsname + \csname tc at student#1 at examinerBgrade\endcsname + \csname tc at student#1 at examinerCgrade\endcsname )/3,2,1)}%
-    }%
-  }%
-}%
-%
-%%
-% TCC-I
-% \tc at student grade => average of the 2 examiners grade%
-%%
-\NewDocumentCommand{\tccoord at studentgradeI}{m}{%%
-  \@ifundefined{tc at student#1}{}{%
-    \expandafter\edef\csname tc at student#1Temp\endcsname{%%
-\fpeval{round((\csname tc at student#1 at examinerBgradeI\endcsname + \csname tc at student#1 at examinerCgradeI\endcsname )/2,2,1)}%
-    }%
-  }%
-}%
-%
 
-\NewDocumentCommand{\tccoord at internshipstudentgrade}{m}{%
-  \@ifundefined{tc at student#1}{}{%
-    \expandafter\edef\csname tc at student#1Temp\endcsname{%%
-        \fpeval{round((2 * (\csname tc at student#1 at supervisorgradeA\endcsname + \csname tc at student#1 at supervisorgradeB\endcsname) + \csname tc at student#1 at tutorgrade\endcsname + \csname tc at student#1 at internshipcoordgrade\endcsname )/28,2,1)}%
-    }%
-  }%
+\NewDocumentCommand{\studentremark}{m}{
+  \starray_gset_prop:nnn {student}{remarks}{#1}
 }
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% examiners info (grades) for report/referral letters%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at examinersline}{mm}{%%
-& \hspace{-0.4em}\csname tc at student#1 at examiner#2\endcsname & \csname tc at student#1 at examiner#2pointA\endcsname & \csname tc at student#1 at examiner#2pointB\endcsname & \csname tc at student#1 at examiner#2pointC\endcsname & \csname tc at student#1 at examiner#2grade\endcsname &%
-}%
-%
-%%
-% TCC-I
-% examiners info (grades) for report/referral letters%
-%%
-\NewDocumentCommand{\tccoord at examinerslineI}{mm}{%%
-& \hspace{-0.4em}\csname tc at student#1 at examiner#2\endcsname & \csname tc at student#1 at examiner#2pointA\endcsname & \csname tc at student#1 at examiner#2pointB\endcsname & \csname tc at student#1 at examiner#2pointC\endcsname & \csname tc at student#1 at examiner#2pointD\endcsname & \csname tc at student#1 at examiner#2gradeI\endcsname &%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% student extra info (process number, ID, email) for report%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at studentextrainfo}{m}{%%
-   (\csname tc at student#1Nproc\endcsname )\  \ \csname tc at student#1ID\endcsname\ / \csname tc at student#1email\endcsname%%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% student info (all examiners, advisor, etc.) for report and referral letters.%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord@@studentrow}{m}{%
-  \setcounter{tc at studentcount}{#1}%
-  \tccoord at studentrow[tc at studentextrainfo]{\Alph{tc at studentcount}}%
-}%
-\NewDocumentCommand{\tccoord at studentrow}{O{}m}{%%
-  \@ifundefined{tc at student#2}{}{%%
-    \@ifundefined{tc at student#2FF}{%%
-      \@ifundefined{tc at student#2Dismiss}{%%
-        \multirow{4}{\tc at ReportTabA}{\csname tc at student#2\endcsname} %%
-        \tccoord at examinersline{#2}{A}\\*%%
-        \tccoord at examinersline{#2}{B}\\*%%
-        \tccoord at examinersline{#2}{C}\\*%%
-        & \multicolumn{4}{c}{\ifcsdef{tc at student#2 at coadvisor}{\tcdef at coord@advisornameplural}{\tcdef at cover@advisorname} : \csname tc at student#2 at advisor\endcsname \ifcsdef{tc at student#2 at coadvisor}{ /\csname tc at student#2 at coadvisor\endcsname}}{} & \textbf{\csname tc at student#2Temp\endcsname} & %%
-          \textbf{\tccoord@@fate{#2}}%%
-          \ifblank{#1}{\\}{\\*%%
-            \multicolumn{7}{l}{\tcdef at coord@boardsworklabel: \csname tc at student#2title\endcsname}\\*%%
-            \iftcif at coord@reportxinfo%
-              \multicolumn{7}{l}{\tccoord at studentextrainfo{#2}}\\*%
-              \ifcsdef{tc at student#2remark}{\multicolumn{6}{c}{{\bf \csname tc at student#2remark\endcsname}}\\}{}%
-            \fi%
-          }%%
-          \hline%%
-      }{%%
-      }%%
-    }{%%
-    }%%
-  }%%
-}%
-%
-%
-%%
-% TCC-I
-% student info (all examiners, advisor, etc.) for report and referral letters.%
-%%
-\NewDocumentCommand{\tccoord@@studentrowI}{m}{%
-  \setcounter{tc at studentcount}{#1}%
-  \tccoord at studentrowI[tc at studentextrainfo]{\Alph{tc at studentcount}}%
-}%
-\NewDocumentCommand{\tccoord at studentrowI}{O{}m}{%%
-  \@ifundefined{tc at student#2}{}{%%
-    \@ifundefined{tc at student#2FF}{%%
-      \@ifundefined{tc at student#2Dismiss}{%%
-        \multirow{3}{\tc at ReportTabA}{\csname tc at student#2\endcsname} %%
-        \tccoord at examinerslineI{#2}{B}\\*%%
-        \tccoord at examinerslineI{#2}{C}\\*%%
-        & \multicolumn{5}{c}{\ifcsdef{tc at student#2 at coadvisor}{\tcdef at coord@advisornameplural}{\tcdef at cover@advisorname} : \csname tc at student#2 at advisor\endcsname \ifcsdef{tc at student#2 at coadvisor}{ /\csname tc at student#2 at coadvisor\endcsname}}{} & \textbf{\csname tc at student#2Temp\endcsname} & %%
-          \textbf{\tccoord@@fate{#2}}%%
-          \ifblank{#1}{\\}{\\*%%
-            \multicolumn{8}{l}{\tcdef at coord@boardsworklabel: \csname tc at student#2title\endcsname}\\*%%
-            \iftcif at coord@reportxinfo%
-              \multicolumn{8}{l}{\tccoord at studentextrainfo{#2}}\\*%
-              \ifcsdef{tc at student#2remark}{\multicolumn{6}{c}{{\bf \csname tc at student#2remark\endcsname}}\\}{}%
-            \fi%
-          }%%
-          \hline%%
-      }{%%
-      }%%
-    }{%%
-    }%%
-  }%%
-}%
-%
-%
-%
-\NewDocumentCommand{\tccoord at studentxinforow}{m}{%
-    \multicolumn{7}{l}{\tccoord at studentextrainfo{#1}}\\*%
-    \ifcsdef{tc at student#1remark}{\multicolumn{6}{c}{{\bf \csname tc at student#1remark\endcsname}}\\}{}%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% student FF info (report)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord@@studentFFrow}{m}{%%
-  \setcounter{tc at studentcount}{#1}%
-  \tccoord at studentFFrow{\Alph{tc at studentcount}}%
-}%
-\NewDocumentCommand{\tccoord at studentFFrow}{m}{%%
-  \@ifundefined{tc at student#1}{}{%%
-    \@ifundefined{tc at student#1Dismiss}{%%
-      \@ifundefined{tc at student#1FF}{%%
-      }{\\*%%
-        \multicolumn{6}{l}{\csname tc at student#1\endcsname }  & \tc at TCCgradeFF\\*%%
-        \iftcif at coord@reportxinfo%
-          \multicolumn{6}{l}{\tccoord at studentextrainfo{#1}}\\*%
-          \ifcsdef{tc at student#1remark}{\multicolumn{6}{c}{{\bf \csname tc at student#1remark\endcsname}}\\}{}%
-        \fi%
-        \multicolumn{6}{l}{\ifcsdef{tc at student#1 at coadvisor}{\tcdef at coord@advisornameplural}{\tcdef at cover@advisorname} : \csname tc at student#1 at advisor\endcsname\ifcsdef{tc at student#1 at coadvisor}{ /\csname tc at student#1 at coadvisor\endcsname}{}} & \\\hline%%
-      }%%
-    }{}%%
-  }%%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% student info (report), dimiss case%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord@@studentDismissrow}{m}{%%
-    \setcounter{tc at studentcount}{#1}%
-    \tccoord at studentDismissrow{\Alph{tc at studentcount}}%
-}%
-\NewDocumentCommand{\tccoord at studentDismissrow}{mO{}}{%%
-  \@ifundefined{tc at student#1}{}{%%
-    \@ifundefined{tc at student#1FF}{%%
-      \@ifundefined{tc at student#1Dismiss}{%%
-      }{\ifblank{#2}{}{\setcounter{tc at studentcount}{#2}}\\*%%
-        \multicolumn{6}{l}{\csname tc at student#1\endcsname} & \\*%%
-           \iftcif at coord@reportxinfo%
-             \multicolumn{6}{l}{\tccoord at studentextrainfo{#1}}\\*%
-             \ifcsdef{tc at student#1remark}{\multicolumn{6}{c}{{\bf \csname tc at student#1remark\endcsname}}\\}{}%
-           \fi%
-        \multicolumn{6}{l}{\ifcsdef{tc at student#1 at coadvisor}{\tcdef at coord@advisornameplural}{\tcdef at cover@advisorname} : \csname tc at student#1 at advisor\endcsname\ifcsdef{tc at student#1 at coadvisor}{ /\csname tc at student#1 at coadvisor\endcsname}{}} & \\\hline%%
-      }%%
-    }{}%%
-  }%%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC report (student grades, FF, dismiss)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\tc at ReportTabA{32mm}%
-\def\tc at ReportTabB{42mm}%
-\def\tc at ReportTabC{15mm}%
-\def\tc at ReportTabD{15mm}%
-\def\tc at ReportTabE{15mm}%
-\def\tc at ReportTabEx{15mm}%
-\def\tc at ReportTabF{8mm}%
-\def\tc at ReportTabG{12mm}%
-%%%%
-%%
-%%%%
-\NewDocumentCommand{\tccoord at TCCreport}{}{%
-  \stepcounter{tc at studentcount}%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at coord@tccreporttitle\ - \tcdef at coord@TCCperiod}%
-  {%%
-%    \footnotesize%
-    \tiny%
-    \forcsvlist{\tccoord at studentgrade}{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,X,Y}%
-    \begin{center}%
-        \begin{longtable}{p{\tc at ReportTabA}@{\ }p{\tc at ReportTabB}@{\ }p{\tc at ReportTabC}@{\ }p{\tc at ReportTabD}@{\ }p{\tc at ReportTabE}@{\ }p{\tc at ReportTabF}@{\ }p{\tc at ReportTabG}}%
-          \multicolumn{7}{c}{\tcdef at forms@formstitle\ \tcdef at coord@TCCperiod}\\\hline%
-          & \tcdef at coord@boardlabel & \tc at TCCpointAlabel & \tc at TCCpointBlabel & \tc at TCCpointClabel &%
-            \tcdef at coord@TCCgradesNlabel & \tcdef at coord@TCCgradesClabel\\\hline%
-          \endhead%
-          \forcsvlist{\tccoord@@studentrow}{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}
-          \@ifundefined{tc at TCCff@flag}{}{%
-            & & & & & & \\%
-            & & & & & & \\%
-            \multicolumn{6}{l}{{\bf \tcdef at coord@tccreportabsents}}\\\hline%
-            \forcsvlist{\tccoord@@studentFFrow}{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}%
-          }%
-          \@ifundefined{tc at TCCdismiss@flag}{}{%
-            & & & & & & \\%
-            & & & & & & \\%
-            \multicolumn{6}{l}{{\bf \tcdef at coord@tccreportdismiss}}\\\hline%
-            \forcsvlist{\tccoord@@studentDismissrow}{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}
-          }%%
-        \end{longtable}%%
-    \end{center}%%
-  } %end of footnotesize%
 
-  \vfill%
-  \pagebreak%
-}%
-%
-%%%%
-\NewDocumentCommand{\tccoord at TCCIreport}{}{%
-  \stepcounter{tc at studentcount}%
-  \tc at formtopbox{\tcdef at forms@formstitleTR}{\tcdef at coord@tccreporttitle\ - \tcdef at coord@TCCperiod}%
-  {%%
-%    \footnotesize%
-    \tiny%
-    \forcsvlist{\tccoord at studentgradeI}{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,X,Y}%
-    \begin{center}%
-        \begin{longtable}{p{\tc at ReportTabA}@{\ }p{\tc at ReportTabB}@{\ }p{\tc at ReportTabC}@{\ }p{\tc at ReportTabD}@{\ }p{\tc at ReportTabE}@{\ }p{\tc at ReportTabEx}@{\ }p{\tc at ReportTabF}@{\ }p{\tc at ReportTabG}}%
-          \multicolumn{7}{c}{\tcdef at forms@formstitleTR\ \tcdef at coord@TCCperiod}\\\hline%
-          & \tcdef at coord@boardlabel & \tc at TCCIpointAlabel & \tc at TCCIpointBlabel & \tc at TCCIpointClabel & \tc at TCCIpointDlabel &%
-            \tcdef at coord@TCCgradesNlabel & \tcdef at coord@TCCgradesClabel\\\hline%
-          \endhead%
-          \forcsvlist{\tccoord@@studentrowI}{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}
-          \@ifundefined{tc at TCCff@flag}{}{%
-            & & & & & & \\%
-            & & & & & & \\%
-            \multicolumn{6}{l}{{\bf \tcdef at coord@tccreportabsents}}\\\hline%
-            \forcsvlist{\tccoord@@studentFFrow}{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}%
-          }%
-          \@ifundefined{tc at TCCdismiss@flag}{}{%
-            & & & & & & \\%
-            & & & & & & \\%
-            \multicolumn{6}{l}{{\bf \tcdef at coord@tccreportdismiss}}\\\hline%
-            \forcsvlist{\tccoord@@studentDismissrow}{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}
-          }%%
-        \end{longtable}%%
-    \end{center}%%
-  } %end of footnotesize%
 
-  \vfill%
-  \pagebreak%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% student check list row%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord@@LCcheck}{mmm}{%
-    & \tccoord at check{#1}{check#2#3}%
-}%
-\NewDocumentCommand{\tccoord@@Lcheck}{mm}{%
-    \forcsvlist{\tccoord@@LCcheck{#1}{#2}}{A,B,C,D,E}\\*%
-}%
-\NewDocumentCommand{\tccoord at studentcheckrow}{m}{%%
-  \@ifundefined{tc at student#1}{}{%%
-    \@ifundefined{tc at student#1FF}{%%
-      \@ifundefined{tc at student#1Dismiss}{\\[-2ex]%%
-        \multirow{4}{\tc at ReportTabA}{\csname tc at student#1\endcsname} %
-              \forcsvlist{\tccoord@@Lcheck{#1}}{A,B,C,D}\hline%%
-      }{}%%
-    }{}%%
-  }%%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC check list%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at TCCchecklist}{}{%
-  \stepcounter{tc at studentcount}%
-  \tc at formtopbox{\tcdef at forms@formstitle}{Check List - \tcdef at coord@TCCperiod}%
-  {%%
-%    \footnotesize%
-    \scriptsize%
-    \setlength\LTleft{-10mm}%
-    \begin{center}%
-        \begin{longtable}{p{\tc at ReportTabA}lllll}%
-          \\\hline%
-          \endhead%
-          \forcsvlist{\tccoord at studentcheckrow}{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,X,Y}%
-        \end{longtable}%%
-    \end{center}%%
-  } %end of footnotesize%
 
-  \vfill%
-  \pagebreak%
+\NewDocumentCommand{\studentNewPageCase}{mm}
+  {
+    \starray_term_syntax:n{student}
+    \bool_if:nTF {\starray_parsed_get_prop:n{flag-newpage}}
+      {#1}
+      {#2}
+  }
+
+\NewDocumentCommand{\studentnewpage}{O{}}{
+  \tl_if_blank:nTF {#1}
+    { \starray_gset_prop:nnn {student}{flag-newpage}{\c_true_bool} }
+    { \starray_gset_prop:nnn {student[#1]}{flag-newpage}{\c_true_bool} }
 }%
-%
-%
-%
-%
-%
-%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%
-%
-%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC referral letters :: approved/failed/FF%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at TCCcocertificateletter}{}{% tc at student\Alph{tc at studentcount}@#1
-  \@ifundefined{tc at student\Alph{tc at studentcount}@coadvisor}{}{%
-    \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at coord@cocertificatetitle}%
 
-    \noindent \tcdef at coord@cocertificateopenning%
-    \vfill%
-\begin{center}
-{\sc \csname tc at student\Alph{tc at studentcount}@coadvisor\endcsname}
-\end{center}
 
-\vfill
 
-\tcdef at coord@cocertificatetext
+\NewDocumentCommand{\boardtitle}{m}{%%
+  \SetTerms{%
+    board.title = {#1} ,
+  }
+}%
 
 
+\NewDocumentCommand{\boardobs}{m}{%%
+  \SetTerms{%
+    board.obs = {#1} ,
+  }
+}%
 
-    \vfill%
-    \begin{flushright}%
-      \tc at city, \tc at publday\ de \tc at publmonth\ de \tc at publyear .%
-      \vfill %
 
-%      \vfill%
-
-      $\overline{\text{\tcdef at core@TCCcoord}}$\\%
-      \tcdef at core@TCCcoordtitle%
-    \vfill
-        $\overline{\text{\tcdef at core@coursecoord}}$\\%
-    \tcdef at core@coursecoordtitle\\%
-    \tcdef at cover@course%
-
-    \end{flushright}%
-    \vfill%
-    \pagebreak%
-  }{}%
+\NewDocumentCommand{\boarddate}{mm}{%%
+  \SetConsts{%
+    date:#1 = {#2} ,
+  }
 }%
 %
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% referral fate :: failed or approved as per student grade%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at referralfate}{m}{\ifthenelse{1 = \fpeval{#1 <= \tc at TCCgradeCN}}{\tcdef at coord@referralfailed}{\tcdef at coord@referralapproved}}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC referral letters :: approved/failed/FF%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at TCCreferralletter}{}{%
-  \@ifundefined{tc at student\Alph{tc at studentcount}Dismiss}{%
-    \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at coord@TCCperiod}%
-
-    \noindent\tcdef at coord@tccreferralopening%
-    \vfill%
-
-    \@ifundefined{tc at student\Alph{tc at studentcount}FF}{%
-      \@ifundefined{tc at student\Alph{tc at studentcount}Exam}{%
-        \tccoord at studentgrade{\Alph{tc at studentcount}}%
-         \tcdef at coord@referralfatetext%
-
-        \vfill%
-
-        {\footnotesize%
-          \begin{center}%
-            \resizebox{\textwidth}{!}{%
-              \begin{tabular}{p{\tc at ReportTabA}@{\ }p{\tc at ReportTabB}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline%
-                & \tcdef at coord@boardlabel & \tc at TCCpointAlabel & \tc at TCCpointBlabel & \tc at TCCpointClabel &%
-                \tcdef at coord@TCCgradesNlabel & \tcdef at coord@TCCgradesClabel\\\hline%
-                \tccoord at studentrow{\Alph{tc at studentcount}}%
-              \end{tabular}%
-            }%
-          \end{center}%
-        }%
-      }{%
-        \ifthenelse{\equal{\csname tc at student\Alph{tc at studentcount}Exam\endcsname}{D}}{%
-          \tcdef at coord@referralexamfailtext%
-          \vfill%
-        }{%
-          \tcdef at coord@referralexamapprovedtext%
-          \vfill%
-        }%
-        {%%
-          \footnotesize%
-          \begin{center}%
-            \begin{tabular}{p{\tc at ReportTabA}@{\ }p{\tc at ReportTabB}@{\ }c}%\hline%
-              & \tcdef at coord@boardlabel \\\hline%
-              \multirow{3}{\tc at ReportTabA}{\csname tc at student\Alph{tc at studentcount}\endcsname} %
-              &\csname tc at student\Alph{tc at studentcount}@examinerA\endcsname\\%
-              &\csname tc at student\Alph{tc at studentcount}@examinerB\endcsname\\%
-              &\csname tc at student\Alph{tc at studentcount}@examinerC\endcsname\\%
-              \multicolumn{2}{l}{\tcdef at forms@formsadvisorlabel : \csname tc at student\Alph{tc at studentcount}@advisor\endcsname} \\\hline%
-            \end{tabular}%
-          \end{center}%
-        }%
-      }%
-    }{%
-      \tcdef at coord@referralfailFF%
-    }%
-
-    \vfill%
-    \begin{flushright}%
-      \tc at city, \tc at publday\ de \tc at publmonth\ de \tc at publyear .%
-      \vfill %
-
-      \tcdef at core@TCCcoordtitle%
-      \vfill%
-
-      $\overline{\text{\tcdef at core@TCCcoord}}$%
-    \end{flushright}%
-    \vfill%
-    \pagebreak%
-  }{}%
+\NewDocumentCommand{\semester}{m}{%%
+  \SetTerms{%
+    semester = {#1} ,
+  }
 }%
 %
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC-I referral letters :: approved/failed/FF%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at TCCIreferralletter}{}{%
-  \@ifundefined{tc at student\Alph{tc at studentcount}Dismiss}{%
-    \tc at formtopbox{\tcdef at forms@formstitleTR}{\tcdef at coord@TCCperiod}%
 
-    \noindent\tcdef at coord@tccreferralopening%
-    \vfill%
+%%%%%%\NewDocumentCommand{\studentturnindate}{m}{\tccoord at studentdatesplit#1,}
+%%%%%%%23/12/2022
+%%%%%%
+%%%%%%\def\tccoord at studentdatesplit#1/#2/#3,{
+%%%%%%   \pgfcalendarifdate{#3-#2-#1}{at least=\tc at internshipcommitB+1}{\tccoord at studentFF}{}
+%%%%%%   \pgfcalendarifdate{#3-#2-#1}{between=\tc at internshipcommitA+1 and \tc at internshipcommitB}{\tccoord at studentExam{X}}{}
+%%%%%%   \expandafter\gdef\csname tc at student\Alph{tc at studentcount}date\endcsname{#1/#2/#3}%
+%%%%%%}
+%%%%%%
+%%%%%%\NewDocumentCommand{\intershipcommitdates}{mm}{%
+%%%%%%    \tccoord at commitdatesplit#1,A,%
+%%%%%%    \tccoord at commitdatesplit#2,B,%
+%%%%%%}
+%%%%%%
+%%%%%%\def\tccoord at commitdatesplit#1/#2/#3,#4,{
+%%%%%%   \expandafter\xdef\csname tc at internshipcommit#4\endcsname{#3-#2-#1}%
+%%%%%%   \expandafter\xdef\csname tc at internshipcommit#4#4\endcsname{#1/#2/#3}%
+%%%%%%}
 
-    \@ifundefined{tc at student\Alph{tc at studentcount}FF}{%
-      \@ifundefined{tc at student\Alph{tc at studentcount}Exam}{%
-        \tccoord at studentgradeI{\Alph{tc at studentcount}}%
-         \tcdef at coord@referralfatetextTR%
 
-        \vfill%
+\cs_new_protected:Npn \__ufrgscca_checkedbox: 
+  {  $\checkmark$  }
 
-        {\footnotesize%
-          \begin{center}%
-            \resizebox{\textwidth}{!}{%
-              \begin{tabular}{p{\tc at ReportTabA}@{\ }p{\tc at ReportTabB}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline%
-                & \tcdef at coord@boardlabel & \tc at TCCIpointAlabel & \tc at TCCIpointBlabel & \tc at TCCIpointClabel & \tc at TCCIpointDlabel  &%
-                \tcdef at coord@TCCgradesNlabel & \tcdef at coord@TCCgradesClabel\\\hline%
-                \tccoord at studentrowI{\Alph{tc at studentcount}}%
-              \end{tabular}%
-            }%
-          \end{center}%
-        }%
-      }{%
-        \ifthenelse{\equal{\csname tc at student\Alph{tc at studentcount}Exam\endcsname}{D}}{%
-          \tcdef at coord@referralexamfailtextTR%
-          \vfill%
-        }{%
-          \tcdef at coord@referralexamapprovedtextTR%
-          \vfill%
-        }%
-        {%%
-          \footnotesize%
-          \begin{center}%
-            \begin{tabular}{p{\tc at ReportTabA}@{\ }p{\tc at ReportTabB}@{\ }c}%\hline%
-              & \tcdef at coord@boardlabel \\\hline%
-              \multirow{3}{\tc at ReportTabA}{\csname tc at student\Alph{tc at studentcount}\endcsname} %
-              &\csname tc at student\Alph{tc at studentcount}@examinerB\endcsname\\%
-              &\csname tc at student\Alph{tc at studentcount}@examinerC\endcsname\\%
-              \multicolumn{2}{l}{\tcdef at forms@formsadvisorlabel : \csname tc at student\Alph{tc at studentcount}@advisor\endcsname} \\\hline%
-            \end{tabular}%
-          \end{center}%
-        }%
-      }%
-    }{%
-      \tcdef at coord@referralfailFF%
-    }%
+\cs_new_protected:Npn \__ufrgscca_uncheckedbox: 
+  {  $\square$  }
 
-    \vfill%
-    \begin{flushright}%
-      \tc at city, \tc at publday\ de \tc at publmonth\ de \tc at publyear .%
-      \vfill %
 
-      \tcdef at core@TCCIcoordtitle%
-      \vfill%
+\cs_generate_variant:Nn \starray_gset_prop:nnn {nne}
 
-      $\overline{\text{\tcdef at core@TCCcoord}}$%
-    \end{flushright}%
-    \vfill%
-    \pagebreak%
-  }{}%
-}%
-%
 
+\NewDocumentCommand{\examinergrades}{mmmO{}}{
+  \tl_if_blank:nTF {#1}
+    { \starray_gset_prop:nnn {student.reviewer}{grade}{0} }
+    {
+      \tl_if_blank:nTF {#4}
+        { %% 3 grades, TCC II
+            \starray_gset_from_keyval:nn {student.reviewer}
+              {
+                pointA = #1 ,
+                pointB = #2 ,
+                pointC = #3 ,
+                gradetype = 2 ,
+              }
+            \starray_gset_prop:nne {student.reviewer}{grade}
+                {%
+                    \fpeval{round((#1 * \UseConst{TCC-II.weightA} + #2 * \UseConst{TCC-II.weightB} + #3 * \UseConst{TCC-II.weightC}) / ( \UseConst{TCC-II.weightA} + \UseConst{TCC-II.weightB} + \UseConst{TCC-II.weightC}) , 2 , 1) }
+                }
+        }
+        { %% 4 grades, TCC I
+            \starray_gset_from_keyval:nn {student.reviewer}
+              {
+                pointA = #1 ,
+                pointB = #2 ,
+                pointC = #3 ,
+                pointD = #4 ,
+                gradetype = 1 ,
+              }
+            \starray_gset_prop:nne {student.reviewer}{grade}
+                {%
+                    \fpeval{round((#1 * \UseConst{TCC-I.weightA} + #2 * \UseConst{TCC-I.weightB} + #3 * \UseConst{TCC-I.weightC} + #4 * \UseConst{TCC-I.weightD}) / ( \UseConst{TCC-I.weightA} + \UseConst{TCC-I.weightB} + \UseConst{TCC-I.weightC} + \UseConst{TCC-I.weightD}) , 2 , 1) }
+                }
+    
+        }
+    }
+  
+}
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% Internship referal letter%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tccoord at internshipreferalletter}{}{%
- \@ifundefined{tc at student\Alph{tc at studentcount}Dismiss}{%
-  \tc at formtopbox{\tcdef at forms@formsinternshiptitle}{}%
+\NewDocumentCommand{\setstudentlist}{O{tcc}mm}{
+  \seq_new:c {l__ufrgscca_#2_seq}
+  \seq_new:c {l__ufrgscca_#2_ff_seq}
+  \seq_new:c {l__ufrgscca_#2_dismiss_seq}
+  \seq_new:c {l__ufrgscca_#2_graded_seq}
+  
+  \seq_gset_from_clist:cn {l__ufrgscca_#2_seq}{#3}
+  \str_case:nn {#1}
+  {
+    {tcc} 
+      {
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}}
+      }
+    {tccI} 
+      {
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}}
+      }
+    {tccII} 
+      {
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}}
+      }
+    {intern}
+      {  %% TO BE IMPLEMENTED !!!
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}}
+      }
+  }
+}
 
-  \noindent\tcdef at coord@internshipreferralopening%
-  \vfill%
-  \tccoord at internshipstudentgrade{\Alph{tc at studentcount}}
+\cs_new_protected:Npn \__ufrgscca_grade:n #1 
+    {
+      \starray_set_iter_from_hash:nn {student}{#1}
+      \starray_term_syntax:n {student[#1]}
+      \bool_if:nF {\starray_parsed_get_prop:n {flag-graded}}
+        { \__ufrgscca_studentgrade: }        
+    }
 
-  \@ifundefined{tc at student\Alph{tc at studentcount}FF}{%
-    \@ifundefined{tc at student\Alph{tc at studentcount}Exam}{%
-        \tcdef at coord@internshipreferralfatetext
 
-        \vfill%
-        \tcdef at coord@internshipgrades%
-    }{
-    %%% in Exam...
-      \ifthenelse{\equal{\csname tc at student\Alph{tc at studentcount}Exam\endcsname}{X}}{%..report past due date
-        \ifthenelse{1 = \fpeval{\tccore@@ref{student}{Temp} < \tc at TCCgradeCN}}{%
-            \tccoord at studentExam{D}%
-            \tcdef at coord@internshipreferralexamfailtext
-            \vfill%
-            \tcdef at coord@internshipgrades%
-            \vfill%
-        }{%
-            \tccoord at studentExam{C}%
-            \tcdef at coord@internshipreferralexamapprovedtext
-            \vfill%
-            \tcdef at coord@internshipgrades%
-            \vfill%
+\cs_new_protected:Npn \__ufrgscca_listclassify:nn #1#2
+    {
+      \starray_set_iter_from_hash:nn {student}{#2}
+      \starray_term_syntax:n {student}
+      \bool_case:nF
+        {
+          {\starray_parsed_get_prop:n {flag-ff}}{\seq_gput_right:cn {l__ufrgscca_#1_ff_seq}{#2}}
+          {\starray_parsed_get_prop:n {flag-dismiss}}{\seq_gput_right:cn {l__ufrgscca_#1_dismiss_seq}{#2}}
         }
-      }{%%... in Exam due 'report form'
-            \ifthenelse{\equal{\csname tc at student\Alph{tc at studentcount}Exam\endcsname}{D}}{%
-                \tcdef at coord@internshipreferralexamhardfailtext
-                \vfill%
-                \tcdef at coord@internshipgrades%
-                \vfill%
-            }{%
-                \tcdef at coord@internshipreferralexamhardapprovedtext
-                \vfill%
-                \tcdef at coord@internshipgrades%
-                \vfill%
-            }%
-      }
+        {\seq_gput_right:cn {l__ufrgscca_#1_graded_seq}{#2}}
+      
     }
-  }{
-   %%% FF... failed/report not delivered.
-   \tcdef at coord@internshipreferralfailFF
-  }
 
-    \vfill%
 
+\NewDocumentCommand{\tcreports}{O{}m}{
+  {
+      \__ufrgscca_set_reports:n {#1}
+      \seq_gset_eq:Nc \l__ufrgscca_baselist_seq {l__ufrgscca_#2_seq}
+      \seq_gset_eq:Nc \l__ufrgscca_baselist_ff_seq {l__ufrgscca_#2_ff_seq}
+      \seq_gset_eq:Nc \l__ufrgscca_baselist_dismiss_seq {l__ufrgscca_#2_dismiss_seq}
+      \seq_gset_eq:Nc \l__ufrgscca_baselist_graded_seq {l__ufrgscca_#2_graded_seq}
+    
+      \bool_if:NT \l__ufrgscca_calendarI_bool
+        { \MakeForm{calendar-I} }
+      \bool_if:NT \l__ufrgscca_calendarII_bool
+        { \MakeForm{calendar-II} }
+      \bool_if:NT \l__ufrgscca_reportI_bool
+        { \MakeForm{report-I} }
+      \bool_if:NT \l__ufrgscca_reportII_bool
+        { \MakeForm{report-II} }
+      \bool_if:NT \l__ufrgscca_checklistI_bool
+        { \MakeForm{checklist-I} }
+      \bool_if:NT \l__ufrgscca_checklistII_bool
+        { \MakeForm{checklist-II} }
+      \bool_if:NT \l__ufrgscca_boards_bool
+        { \MakeForm{boards} }      
+      \seq_map_inline:cn {l__ufrgscca_baselist_seq} 
+        {
+          \studentselect{##1}
+          \bool_if:NT \l__ufrgscca_cocertificate_bool
+            {
+              \studentCoadvCase
+                {\MakeForm{cocertificate}}
+                {}
+            }
+          \bool_if:NT \l__ufrgscca_referralI_bool
+            {
+              \studentDismissCase
+                {}
+                { \MakeForm{referral-I} }
+            }
+          \bool_if:NT \l__ufrgscca_revformsI_bool
+            {
+              \SetReviewer{2}
+              \MakeForm{examinersform-I}
+              \SetReviewer{3}
+              \MakeForm{examinersform-I}
+              \MakeForm{rectifyapproval-I}
+            }
+          \bool_if:NT \l__ufrgscca_referralII_bool
+            {
+              \MakeForm{referral-II}
+            }
+          \bool_if:NT \l__ufrgscca_revformsII_bool
+            {
+              \SetReviewer{1}
+              \MakeForm{examinersform-II}
+              \MakeForm{correctionsform-II}
+              \SetReviewer{2}
+              \MakeForm{examinersform-II}
+              \MakeForm{correctionsform-II}
+              \SetReviewer{3}
+              \MakeForm{examinersform-II}
+              \MakeForm{correctionsform-II}
+              \MakeForm{rectifyapproval-II}
+            }
+        }
+  }
+}
 
-    \vfill%
-\begin{flushright}%
-    \tc at city, \tc at publday\ de \tc at publmonth\ de \tc at publyear .%
-    \vfill %
 
-    \tcdef at core@internshipcoordtitle%
-    \vfill%
+\prop_new:N \l__ufrgscca_check_prop
+\prop_new:N \l__ufrgscca_checkA_prop
+\prop_new:N \l__ufrgscca_checkB_prop
+\prop_new:N \l__ufrgscca_checkref_prop
 
-    $\overline{\text{\tcdef at core@internshipcoord}}$%
-\end{flushright}%
-\vfill%
+\NewDocumentCommand{\checkdef}{mmm}{
+  \starray_get_prop:nnN {activity}{chkmarked}\l__ufrgscca_check_prop
+  \prop_gput:Nnn \l__ufrgscca_check_prop {#1}{\__ufrgscca_checkedbox:~\ #3}
+  \starray_gset_prop:nnV {activity}{chkmarked}\l__ufrgscca_check_prop
 
-
-\pagebreak%
-}{}
+  \starray_get_prop:nnN {activity}{chkunmarked}\l__ufrgscca_check_prop
+  \prop_gput:Nnn \l__ufrgscca_check_prop {#1}{\__ufrgscca_uncheckedbox:~\ #3}
+  \starray_gset_prop:nnV {activity}{chkunmarked}\l__ufrgscca_check_prop
+  
+  \starray_get_prop:nnN {activity}{chkref}\l__ufrgscca_check_prop
+  \prop_gput:Nnn \l__ufrgscca_check_prop {#2}{#1}
+  \starray_gset_prop:nnV {activity}{chkref}\l__ufrgscca_check_prop
 }
-%
-%
-%
 
+\cs_generate_variant:Nn \prop_gput:Nnn {Nee}
 
 
-
-\NewDocumentCommand{\tccoord at calendarfill}{}{%
-%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
-  \@ifundefined{tc at tcccalendareventdateh}{\tcccalendareventdate{---}}{}%
+\tl_new:N \l__ufrgscca_checkB_tl
+\tl_new:N \l__ufrgscca_checkref_tl
+\NewDocumentCommand{\checklist}{O{}m}{
+  \tl_if_blank:nF {#1}
+    {  \starray_set_iter_from_hash:nn {activity}{#1}  }
+  \starray_get_prop:nnN {student}{checklist}\l__ufrgscca_check_prop
+  \starray_get_prop:nnN {activity}{chkmarked}\l__ufrgscca_checkB_prop
+  \starray_get_prop:nnN {activity}{chkref}\l__ufrgscca_checkref_prop
+  \clist_map_inline:nn {#2}
+    {
+      \prop_get:NnNT \l__ufrgscca_checkref_prop {##1} \l__ufrgscca_checkref_tl
+        {
+          \prop_get:NeN \l__ufrgscca_checkB_prop {\l__ufrgscca_checkref_tl} \l__ufrgscca_checkB_tl
+          \prop_gput:Nee \l__ufrgscca_check_prop {\l__ufrgscca_checkref_tl} {\l__ufrgscca_checkB_tl}
+        }
+    }
+    \starray_gset_prop:nnV {student}{checklist}{\l__ufrgscca_check_prop}
 }
 
+\prop_new:N \l__ufrgscca_check_list_prop
+\tl_new:N \l__ufrgscca_tmpx_tl
+\tl_new:N \l__ufrgscca_tmpy_tl
+\tl_new:N \l__ufrgscca_table_tl
 
-\NewDocumentCommand{\setstudentlist}{mm}{\tcgen at cdef<coord>{list#1}{#2}}
 
-\NewDocumentCommand{\tcreports}{O{}m}{%%
-  \setreports{#1}
-  \tccoord at calendarfill%
-  \iftcif at coord@calendarI%
-    \tccoord at TCCcalendarI%
-  \fi%
-  \iftcif at coord@calendarII%
-    \tccoord at TCCcalendarII%
-  \fi%
-  \@ifundefined{tcdef at coord@list#2}{}{%
-  \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tccoord at student@exec\expandafter\expandafter\expandafter{\csname tcdef at coord@list#2\endcsname}
-  }
-  \iftcif at coord@checklist%
-    \tccoord at TCCchecklist%
-  \fi%
-  \iftcif at coord@reportI%
-    \tccoord at TCCIreport%
-  \fi%
-  \iftcif at coord@report%
-    \tccoord at TCCreport%
-  \fi%
-  \iftcif at coord@boards%
-    \tccoord at TCCboards%
-  \fi%
-  \iftcif at coord@studentlist%
-    \tccoord at studentlistform%
-  \fi%
-}%%
+\cs_new_protected:Npn \__ufrgscca_checktable_lines:nn #1#2 {
+  \starray_get_prop:nnN {activity} {chkunmarked} \l__ufrgscca_checkA_prop
+  \starray_get_prop:nnN {student}{checklist}\l__ufrgscca_check_prop
+  
+  \prop_map_inline:Nn \l__ufrgscca_check_prop
+    { \prop_gput:Nnn \l__ufrgscca_checkA_prop {##1}{##2}  }  
 
-
-\NewDocumentCommand{\internshipreports}{O{}m}{%%
-    \setreports{#1}
-    \@ifundefined{tcdef at coord@list#2}{}{%
-        \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tccoord at student@exec\expandafter\expandafter\expandafter{\csname tcdef at coord@list#2\endcsname}
+  \tl_gclear:N \l__ufrgscca_table_tl
+  \clist_map_inline:nn {#1}    
+    { 
+      \tl_gclear:N \l_tmpa_tl    
+      \clist_map_inline:nn {#2}
+        {       
+         \tl_gset:Nn \l__ufrgscca_tmpx_tl {##1####1} 
+         \prop_get:NeNTF \l__ufrgscca_checkA_prop {\l__ufrgscca_tmpx_tl} \l__ufrgscca_tmpy_tl
+           {\tl_gput_right:Ne \l__ufrgscca_table_tl {\l_tmpa_tl~ \l__ufrgscca_tmpy_tl}}
+           {\tl_gput_right:Ne \l__ufrgscca_table_tl {\l_tmpa_tl~ }}
+         \tl_gset:Nn \l_tmpa_tl {~&~}
+        }
+      \tl_put_right:Nn \l__ufrgscca_table_tl {\\*}
     }
-    \iftcif at coord@checklist%
-    \tccoord at TCCchecklist%
-    \fi%
-    \iftcif at coord@report%
-    \tccoord at TCCreport%
-    \fi%
-}%%
+    \l__ufrgscca_table_tl   
+}
 
-
-%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%
-%
-\iftcif at english%
-\input{ufrgscca-en-coord.def}%
-\else%
-\input{ufrgscca-ptBR-coord.def}%
-\fi%
-

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,288 +23,573 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-core}
-\def\tc at tmp@altpackname{ufrgsccacore}
-\def\tc at tmp@packdesc{UFRGS/CCA core commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
+
+\ProvidesExplPackage
+    {ufrgscca-core}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA core commands}
+
+
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-core / pkg info}
+  {
+     name        .code:n = {ufrgscca-core} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~core~commands/data}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
+
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%
-% student commands%
+% starray based student commands%
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%\def\tc at IDrule{30mm}%
+%%%%\def\tc at emailrule{40mm}%
+%%%%\def\tc at namerule{50mm}%
+%%%%\def\tc at titlerule{40mm}%
+%%%%\def\tc at phonerule{20mm}%
+%%%%\def\tc at agreerule{25mm}%
+%%%%\def\tc at daterule{15mm}%
+
+\dim_new:N \l__ufrgscca_ID_rule_dim
+\dim_new:N \l__ufrgscca_email_rule_dim
+\dim_new:N \l__ufrgscca_name_rule_dim
+\dim_new:N \l__ufrgscca_title_rule_dim
+\dim_new:N \l__ufrgscca_worktitle_rule_dim
+\dim_new:N \l__ufrgscca_phone_rule_dim
+\dim_new:N \l__ufrgscca_agree_rule_dim
+\dim_new:N \l__ufrgscca_date_rule_dim
+\dim_new:N \l__ufrgscca_register_rule_dim
+\dim_new:N \l__ufrgscca_office_rule_dim
+\dim_new:N \l__ufrgscca_field_rule_dim
+
+\dim_set:Nn \l__ufrgscca_ID_rule_dim {30mm}
+\dim_set:Nn \l__ufrgscca_email_rule_dim {40mm}
+\dim_set:Nn \l__ufrgscca_name_rule_dim {50mm}
+\dim_set:Nn \l__ufrgscca_title_rule_dim {30mm}
+\dim_set:Nn \l__ufrgscca_worktitle_rule_dim {60mm}
+\dim_set:Nn \l__ufrgscca_phone_rule_dim {20mm}
+\dim_set:Nn \l__ufrgscca_agree_rule_dim {25mm}
+\dim_set:Nn \l__ufrgscca_date_rule_dim {15mm}
+\dim_set:Nn \l__ufrgscca_register_rule_dim {20mm}
+\dim_set:Nn \l__ufrgscca_office_rule_dim {25mm}
+\dim_set:Nn \l__ufrgscca_field_rule_dim {30mm}
+
+
+
+
+\starray_new:n {student}
+\starray_def_from_keyval:nn {student}
+ {
+  first = ,
+  last = ,
+  name = \rule{\l__ufrgscca_name_rule_dim}{.1pt} ,
+  Nproc = \rule{\l__ufrgscca_ID_rule_dim}{.1pt} ,
+  ID    = \rule{\l__ufrgscca_ID_rule_dim}{.1pt} , 
+  email = \rule{\l__ufrgscca_email_rule_dim}{.1pt} ,
+  worktitle = \rule{\l__ufrgscca_worktitle_rule_dim}{.1pt} ,
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) ,
+  remarks = ,
+  checklist = , %%% This shall be a property list of check items
+  brief = \BlankLines{6} ,
+  reason = \BlankLines{6} ,
+  board-local = {local ~da~ apresentação} ,
+  board-date   = {dia~ da~ apresentação} ,
+  board-time  = {hora~da~apresentação} ,
+  gradeavrg = 0,
+  grade = ,
+  flag-graded = \c_false_bool , %%% IF gradeavrg AND finalgrade already calculated (or defined)
+  flag-exam = \c_false_bool ,
+  flag-ff = \c_false_bool ,
+  flag-dismiss = \c_false_bool , %%% IF it was the 1st semester.
+  flag-newpage = \c_false_bool , %% if it should go in a new page (board)
+  flag-distinctboard = \c_false_bool , %% if advisor isn't in the board
+  flag-approved = \c_false_bool ,
+  flag-coadvisor = \c_false_bool ,
+  advisor . struct = {
+    first = ,
+    last =  ,
+    name = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    institution = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    title = \rule{\l__ufrgscca_title_rule_dim}{.1pt} ,
+    email = \rule{\l__ufrgscca_email_rule_dim}{.1pt} ,
+    phone = \rule{\l__ufrgscca_phone_rule_dim}{.1pt} ,    
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) ,
+    assessment = \BlankLines{6}
+  } ,
+  coadvisor . struct = {
+    first = ,
+    last =  ,
+    name = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    institution = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    title = \rule{\l__ufrgscca_title_rule_dim}{.1pt} ,
+    email = \rule{\l__ufrgscca_email_rule_dim}{.1pt} ,
+    phone = \rule{\l__ufrgscca_phone_rule_dim}{.1pt} ,    
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) ,
+    reason = \BlankLines{6}
+  } ,
+  reviewer . struct = {
+    first = ,
+    last =  ,
+    name = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    institution = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    title = \rule{\l__ufrgscca_title_rule_dim}{.1pt} ,
+    email = \rule{\l__ufrgscca_email_rule_dim}{.1pt} ,
+    phone = \rule{\l__ufrgscca_phone_rule_dim}{.1pt} ,    
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) ,
+    pointA = ,
+    pointB = ,
+    pointC = ,
+    pointD = ,
+    grade = 0 ,
+    gradetype = ,    
+  } ,
+  altreviewer . struct = {
+    first = ,
+    last =  ,
+    name = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    institution = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    title = \rule{\l__ufrgscca_title_rule_dim}{.1pt} ,
+    email = \rule{\l__ufrgscca_email_rule_dim}{.1pt} ,
+    phone = \rule{\l__ufrgscca_phone_rule_dim}{.1pt} ,    
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) 
+  } ,
+  internship . struct = {
+    company = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    field = \rule{\l__ufrgscca_field_rule_dim}{.1pt},
+    start = \rule{\l__ufrgscca_date_rule_dim}{.1pt},
+    end = \rule{\l__ufrgscca_date_rule_dim}{.1pt},
+    length = \rule{\l__ufrgscca_date_rule_dim}{.1pt},  
+  } ,
+  tutor . struct = {
+    first = ,
+    last =  ,
+    name = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    title = \rule{\l__ufrgscca_title_rule_dim}{.1pt} ,
+    email = \rule{\l__ufrgscca_email_rule_dim}{.1pt} ,
+    phone = \rule{\l__ufrgscca_phone_rule_dim}{.1pt} ,    
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) 
+  } ,
+  supervisor . struct = {
+    first = ,
+    last =  ,
+    name = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    register = \rule{\l__ufrgscca_name_rule_dim}{.1pt},
+    title = \rule{\l__ufrgscca_title_rule_dim}{.1pt} ,
+    office = \rule{\l__ufrgscca_office_rule_dim}{.1pt} ,
+    email = \rule{\l__ufrgscca_email_rule_dim}{.1pt} ,
+    phone = \rule{\l__ufrgscca_phone_rule_dim}{.1pt} ,    
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) 
+  } ,
+ }
+
+
+\prop_new:N \l__ufrgscca_forms_prop
+\starray_new:n {activity}
+\starray_def_from_keyval:nn {activity}
+  {
+    name = Nome~ da~ Atividade ,
+    acronym = ACRO ,
+    coord . struct = 
+      {
+        name = Nome~ do(a)~ Coordenador(a) ,
+        title = Coordenador(a)~ de ,
+        article = o(a) ,
+        Article = O(A) ,
+        narticle = (a) ,
+        Narticle = (A) ,
+        carticle = ao(à) ,
+        Carticle = Ao(À) 
+      } ,
+    calendar . struct =
+      {
+        date = {-Dia-} ,
+        week = {-semana-} ,
+        event = {-Descrição-} ,
+      } ,
+    chkmarked = ,    %%% This shall be a prop list of   marked itens
+    chkunmarked = ,  %%% This shall be a prop list of unmarked itens
+    chkref = ,       %%% This shall be a prop list of ref      itens
+  }
+
+\NewDocumentCommand{\NewActivity}{m} {
+    \starray_new_term:nn {activity}{#1}
+    \starray_new_term:nn {activity.coord}{}
+    \starray_gset_prop:nnV {activity}{checkmarked}\c_empty_prop
+    \starray_gset_prop:nnV {activity}{checkunmarked}\c_empty_prop
+    \starray_gset_prop:nnV {activity}{checkref}\c_empty_prop
+}
+
+
+\NewDocumentCommand{\ActivitySet}{O{}mm} {
+  \tl_if_blank:nTF {#1}
+    {
+      \starray_set_prop:nnn {activity}{name}{#3}
+      \starray_set_prop:nnn {activity}{acronym}{#2}
+    }
+    {
+      \starray_set_prop:nnn {activity[#1]}{name}{#3}
+      \starray_set_prop:nnn {activity[#1]}{acronym}{#2}
+    }
+}
+ 
+\NewDocumentCommand{\ActivitySetCoordTitle}{O{}m} {
+  \tl_if_blank:nTF {#1}
+    { \starray_set_prop:nnn {activity.coord}{title}{#2} }
+    { \starray_set_prop:nnn {activity[#1].coord}{title}{#2} }
+}
+
+\NewDocumentCommand{\ActivitySetCoord}{O{}mO{}}{
+  \tl_if_blank:nTF {#1}
+    {
+      \starray_gset_prop:nnn {activity.coord}{name}{#2}
+      \__ufrgscca_setgender:nn {activity.coord}{#3}
+    }
+    {
+      \starray_gset_prop:nnn {activity[#1].coord}{name}{#2}
+      \__ufrgscca_setgender:nn {activity[#1].coord}{#3}
+    }
+}
+
+\NewDocumentCommand{\ActivitySelect}{m}{ \starray_set_iter_from_hash:nn {activity}{#1} }
+
+
+\NewDocumentCommand{\Activity}{O{}m}{
+  \tl_if_blank:nTF {#1}
+    { \starray_get_prop:nn {activity}{#2} }
+    { \starray_get_prop:nn {activity[#1]}{#2} }
+}
+\NewDocumentCommand{\ActivityCoord}{O{}m}{
+  \tl_if_blank:nTF {#1}
+    { \starray_get_prop:nn {activity.coord}{#2} }
+    { \starray_get_prop:nn {activity[#1].coord}{#2} }
+}
+
+
+\NewDocumentCommand{\ActivityCalLine}{O{}m}{
+  \tl_if_blank:nF {#1}
+    {\starray_set_iter_from_hash:nn {activity}{#1}}
+  \starray_set_iter_from_hash:nn {activity.calendar}{#2}
+  \starray_get_prop:nn {activity.calendar}{date} & \starray_get_prop:nn {activity.calendar}{week} & \starray_get_prop:nn {activity.calendar}{event}
+}
+
+
 %
-%
-\NewDocumentCommand{\tccore at articledefx}{mmmmm}{%
-  \expandafter\gdef\csname #1article\endcsname{#2}%
-  \expandafter\gdef\csname #1narticle\endcsname{#3}%
-  \expandafter\gdef\csname #1Article\endcsname{#4}%
-  \expandafter\gdef\csname #1Narticle\endcsname{#5}%
+\cs_new_protected:Npn \__ufrgscca_setgender:nn #1#2 
+  {
+    \str_if_eq:nnT {#2}{m}
+      {
+        \starray_gset_from_keyval:nn {#1}
+          {
+            article = o ,
+            Article = O ,
+            narticle =  ,
+            Narticle =  ,
+            carticle = ao ,
+            Carticle = Ao 
+          }
+      } 
+    \str_if_eq:nnT {#2}{f}
+      {
+        \starray_gset_from_keyval:nn {#1}
+          {
+            article = a ,
+            Article = A ,
+            narticle = a ,
+            Narticle = A ,
+            carticle = à ,
+            Carticle = À 
+          }
+      } 
+  }
+
+
+
+\NewDocumentCommand{\student}{O{}mmO{}}{%
+  \tl_if_blank:nTF {#1}
+    {\starray_new_term:nn {student}{}}
+    {\starray_new_term:nn {student}{#1}}
+  \starray_gset_from_keyval:nn {student}
+    {
+      first = {#3} ,
+      last = {#2} ,
+      name = {#3~ #2} ,
+    }
+  \__ufrgscca_setgender:nn {student}{#4}
+  \starray_gset_prop:nnV {student}{checklist}\c_empty_prop
 }%
-\NewDocumentCommand{\tccore at articledefn}{m}{%
-	\tccore at articledefx{#1}{o(a)}{(a)}{O(A)}{(A)}%
-}%
-\NewDocumentCommand{\tccore at articledefm}{m}{%
-	\tccore at articledefx{#1}{o}{}{O}{}%
-}%
-\NewDocumentCommand{\tccore at articledeff}{m}{%
-	\tccore at articledefx{#1}{a}{a}{A}{A}%
-}%
-\NewDocumentCommand{\tccore at articledef}{mm}{%
-	\ifthenelse{\equal{#2}{m}}{%%
-		\tccore at articledefm{#1}%%
-	}{%%
- 		\ifthenelse{\equal{#2}{f}}{%%
-	 	  \tccore at articledeff{#1}%%
-		}{%%
-		  \tccore at articledefn{#1}%%
-		}%%
-	}%%
-}%
+  %
+\NewDocumentCommand{\eDataSet}{m}{
+  \starray_term_syntax:n{#1}
+}  
 
-%
-% Exception:: those are only used at ufrgscca-forms, but, it make sense to be used at 'local.tex'
-%
-\cmdfactory<core>{formlocal}
-\cmdfactory<core>{tccbrief,tcccoadvisorbrief,tccadvisorsreview}
-\cmdfactory<core>{tccArgument}
+\cs_new:Npn \eDataFields #1 
+  { \starray_parsed_get_prop:n{#1} }
 
-\cmdfactory<core>{TCCcoordtitle,TCCIcoordtitle}
-\NewDocumentCommand{\TCCcoord}{mO{}}{%
-	\tcgen at cdef<core>{TCCcoord}{#1}%
-	\tccore at articledef{tcdef at core@TCCcoord}{#2}%%
+
+\NewDocumentCommand{\DataFields}{mm}{
+  \starray_get_prop:nn{#1}{#2}
+}  
+\NewDocumentCommand{\SetReviewer}{m}{
+  \starray_set_iter:nn {student.reviewer}{#1}
 }
+  %
 
-\cmdfactory<core>{internshipcoordtitle}
-\NewDocumentCommand{\internshipcoord}{mO{}}{%
-    \tcgen at cdef<core>{internshipcoord}{#1}%
-    \tccore at articledef{tcdef at core@internshipcoord}{#2}%%
+\NewDocumentCommand{\studentCoadvCase}{mm}{
+    \starray_term_syntax:n{student}
+    \bool_if:nTF {\starray_parsed_get_prop:n{flag-coadvisor}}
+      {#1}
+      {#2}
 }
 
-\cmdfactory<core>{coursecoordtitle}%
-\NewDocumentCommand{\coursecoord}{mO{}}{%
-	\tcgen at cdef<core>{coursecoord}{#1}%
-	\tccore at articledef{tcdef at core@coursecoord}{#2}%%
+
+
+\NewDocumentCommand{\distinctboard}{}{
+  \starray_gset_prop:nnn {student}{flag-distinctboard}{\c_true_bool}
 }
-%
-%
-\def\tccore at ref@advisor{tc at student\Alph{tc at studentcount}@advisor}
-\def\tccore at ref@coadvisor{tc at student\Alph{tc at studentcount}@coadvisor}
-\def\tccore at ref@tutor{tc at student\Alph{tc at studentcount}@tutor}
-\def\tccore at ref@supervisor{tc at student\Alph{tc at studentcount}@supervisor}
-\def\tccore at ref@internship{tc at student\Alph{tc at studentcount}@internship}
 
-\NewDocumentCommand{\tccore at examiners}{m}{\def\tc@@examiners{tc at student\Alph{tc at studentcount}@#1}}%
-\def\tccore at ref@examiner{\tc@@examiners}
-\def\tccore at ref@student{tc at student\Alph{tc at studentcount}}
-\def\tccore at ref@coursecoord{tcdef at core@coursecoord}
-\def\tccore at ref@TCCcoord{tcdef at core@TCCcoord}
-\def\tccore at ref@internshipcoord{tcdef at core@internshipcoord}
+\NewDocumentCommand{\studentDistinctBoardCase}{mm}
+  {
+    \starray_term_syntax:n{student}
+    \bool_if:nTF {\starray_parsed_get_prop:n{flag-distinctboard}}
+      {#1}
+      {#2}
+  }
 
-\NewDocumentCommand{\tccore@@ref}{mm}{\expandafter\csname\csname tccore at ref@#1\endcsname#2\endcsname}%
-%
-%
-\let\tc at org@author\author
-%
-\newcounter{tc at studentcount}%
-\RenewDocumentCommand{\author}{mmO{}}{%
-        \stepcounter{tc at studentcount}%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}last\endcsname{#1}%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}first\endcsname{#2}%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}\endcsname{#2 #1}%
-		\tccore at articledef{tc at student\Alph{tc at studentcount}}{#3}%%
+
+\NewDocumentCommand{\studentiterate}{m}{
+    \starray_iterate_over:nn{student}{#1}
+}
+
+
+\NewDocumentCommand{\worktitle}{m}{%%
+  \starray_gset_prop:nnn {student}{worktitle}{#1}
+}
+
+\NewDocumentCommand{\workbrief}{m}{
+  \starray_gset_prop:nnn {student}{brief}{#1}
+}
+
+\NewDocumentCommand{\workchange}{m}{
+  \starray_gset_prop:nnn {student}{reason}{#1}
+}
+
+\NewDocumentCommand{\advisorreview}{m}{
+  \starray_gset_prop:nnn {student.advisor}{assessment}{#1}
+}
+
+\NewDocumentCommand{\coadvisorreason}{m}{
+  \starray_gset_prop:nnn {student.coadvisor}{reason}{#1}
+}
+
+
+
+\NewDocumentCommand{\studentinfo}{O{}mm}{%
+  \starray_gset_from_keyval:nn {student}
+    {
+      Nproc = {#1} ,
+      ID    = {#2} ,
+      email = {#3} ,
+    }
 }%
-%
-\NewDocumentCommand{\authorinfo}{O{}mm}{%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}Nproc\endcsname{#1}%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}ID\endcsname{#2}%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}email\endcsname{#3}%
-}%
-\NewDocumentCommand{\student}{mmO{}}{\author{#1}{#2}[#3]}%
-\NewDocumentCommand{\studentinfo}{O{}mm}{\authorinfo[#1]{#2}{#3}}%
-%----------
-%----------
-%
-\NewDocumentCommand{\tccore at ProfFields}{mmmmm}{%%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@#1last\endcsname{#3}%%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@#1first\endcsname{#4}%%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@#1\endcsname{#2~#4 #3}%%
-		\tccore at articledef{tc at student\Alph{tc at studentcount}@#1}{#5}%
 
-}%
-\NewDocumentCommand{\tccore at ProfInfo}{mmmmm}{%%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@#1institution\endcsname{#2}%%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@#1titleinfo\endcsname{#3}%%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@#1email\endcsname{#4}%%
-        \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@#1phone\endcsname{#5}%%
-}%
-%
-%
-%
-\newcounter{tc at examinercount}[tc at studentcount]%
-%
+
+\bool_if:NT \l__ufrgscca_oldrenews_bool
+  {
+    \RenewDocumentCommand{\author}{O{}mmO{}}{\student[#1]{#2}{#3}[#4]}%
+    \NewDocumentCommand{\authorinfo}{O{}mm}{\studentinfo[#1]{#2}{#3}}%
+    \NewDocumentCommand{\title}{m}{\worktitle{#1}}%
+  }
+
+
+\NewDocumentCommand{\studentselect}{m}{ \starray_set_iter_from_hash:nn {student}{#1} }
+
+\cs_new_protected:Npn \__ufrgscca_set_prof:nnnnn #1#2#3#4#5 
+  {
+    \starray_gset_from_keyval:nn {student.#1}
+      {
+        last = {#3} ,
+        first = {#4} ,
+        name = {#2~#4~ #3} ,
+      }
+   \__ufrgscca_setgender:nn {student.#1}{#5}
+  }
+
+
+\cs_new_protected:Npn \__ufrgscca_set_prof_info:nnnnn #1#2#3#4#5
+  {
+    \starray_gset_from_keyval:nn {student.#1}
+      {
+        institution = {#2} ,
+        title = {#3} ,
+        email = {#4} ,
+        phone = {#5} ,
+      }
+  }
+
+
 \NewDocumentCommand{\advisor}{O{}mmO{}}{%%
-	\tccore at ProfFields{advisor}{#1}{#2}{#3}{#4}%%
-%%% the advisor is also the first examiner if not @nBoard%
-	\@ifundefined{tc at nBoard}{\examiner[#1]{#2}{#3}[#4]}{}%%
-}%
+  \starray_new_term:nn {student.advisor}{}
+  \__ufrgscca_set_prof:nnnnn {advisor}{#1}{#2}{#3}{#4}
+  \starray_term_syntax:n{student}
+  \bool_if:nF {\starray_parsed_get_prop:n{flag-distinctboard}}
+    { \examiner[#1]{#2}{#3}[#4] }
+}
+
 \NewDocumentCommand{\advisorinfo}{mmmm}{%%
-	\tccore at ProfInfo{advisor}{#1}{#2}{#3}{#4}%%
-%%% the advisor is also the first examiner if not @nBoard%
-	\@ifundefined{tc at nBoard}{\examinerinfo{#1}{#2}{#3}{#4}}{}%%
+  \__ufrgscca_set_prof_info:nnnnn {advisor}{#1}{#2}{#3}{#4}
+  \starray_term_syntax:n{student}
+  \bool_if:nF {\starray_parsed_get_prop:n{flag-distinctboard}}
+    { \examinerinfo{#1}{#2}{#3}{#4} }
 }%
-%
+
+
 \NewDocumentCommand{\coadvisor}{O{}mmO{}}{%%
-				\tccore at ProfFields{coadvisor}{#1}{#2}{#3}{#4}%%
+  \starray_new_term:nn {student.coadvisor}{}
+  \__ufrgscca_set_prof:nnnnn {coadvisor}{#1}{#2}{#3}{#4}
+  \starray_set_prop:nnn {student}{flag-coadvisor}{\c_true_bool}
 }%
+
 \NewDocumentCommand{\coadvisorinfo}{mmmm}{%%
-				\tccore at ProfInfo{coadvisor}{#1}{#2}{#3}{#4}%%
+  \__ufrgscca_set_prof_info:nnnnn {coadvisor}{#1}{#2}{#3}{#4}
 }%
-%
-%
+
+
+\NewDocumentCommand{\coadvisoremptyifnone}{}{%%
+  \starray_get_cnt:nN {student.coadvisor} \l_tmpa_int
+  \int_if_zero:nTF \l_tmpa_int
+    { \starray_new_term:nn {student.coadvisor}{} }
+    {}
+}%
+
+
 \NewDocumentCommand{\tutor}{O{}mmO{}}{%%
-    \tccore at ProfFields{tutor}{#1}{#2}{#3}{#4}%%
+  \starray_new_term:nn {student.tutor}{}
+  \__ufrgscca_set_prof:nnnnn {tutor}{#1}{#2}{#3}{#4}
 }%
+
 \NewDocumentCommand{\tutorinfo}{mmmm}{%%
-    \tccore at ProfInfo{tutor}{#1}{#2}{#3}{#4}%%
+  \__ufrgscca_set_prof_info:nnnnn {tutor}{#1}{#2}{#3}{#4}
 }%
-%
-%
+
 \NewDocumentCommand{\supervisor}{O{}mmO{}}{%%
-    \tccore at ProfFields{supervisor}{#1}{#2}{#3}{#4}%%
+  \starray_new_term:nn {student.supervisor}{}
+  \__ufrgscca_set_prof:nnnnn {supervisor}{#1}{#2}{#3}{#4}
 }%
 \NewDocumentCommand{\supervisorinfo}{mmmm}{%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@supervisorregister\endcsname{#1}%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@supervisoroffice\endcsname{#2}%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@supervisoremail\endcsname{#3}%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@supervisorphone\endcsname{#4}%%
+    \starray_gset_from_keyval:nn {student.supervisor}
+      {
+        register = {#1} ,
+        office = {#2} ,
+        email = {#3} ,
+        phone = {#4} ,
+      }
 }%
 \NewDocumentCommand{\internship}{mmmmm}{%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@internshipcompany\endcsname{#1}%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@internshipfield\endcsname{#2}%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@internshipstart\endcsname{#3}%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@internshipend\endcsname{#4}%%
-  \expandafter\gdef\csname tc at student\Alph{tc at studentcount}@internshiplength\endcsname{#5}%%
+    \starray_new_term:nn {student.internship}{}
+    \starray_gset_from_keyval:nn {student.internship}
+      {
+        company = {#1} ,
+        field = {#2} ,
+        start = {#3} ,
+        end = {#4} ,
+        length = {#5} ,
+      }
 }%
-%
-%
+
 \NewDocumentCommand{\examiner}{O{}mmO{}}{%%
-        \stepcounter{tc at examinercount}%%
-				\tccore at ProfFields{examiner\Alph{tc at examinercount}}{#1}{#2}{#3}{#4}%%
+  \starray_new_term:nn {student.reviewer}{}
+  \__ufrgscca_set_prof:nnnnn {reviewer}{#1}{#2}{#3}{#4}
 }%
 \NewDocumentCommand{\examinerinfo}{mmmm}{%%
-				\tccore at ProfInfo{examiner\Alph{tc at examinercount}}{#1}{#2}{#3}{#4}%%
+  \__ufrgscca_set_prof_info:nnnnn {reviewer}{#1}{#2}{#3}{#4}
 }%
-%
-\newcounter{tc at altexaminercount}[tc at studentcount]%
+
 \NewDocumentCommand{\altexaminer}{O{}mmO{}}{%%
-        \stepcounter{tc at altexaminercount}%%
-				\tccore at ProfFields{altexaminer\Alph{tc at altexaminercount}}{#1}{#2}{#3}{#4}%%
+  \starray_new_term:nn {student.altreviewer}{}
+  \__ufrgscca_set_prof:nnnnn {altreviewer}{#1}{#2}{#3}{#4}
 }%
 \NewDocumentCommand{\altexaminerinfo}{mmmm}{%%
-				\tccore at ProfInfo{altexaminer\Alph{tc at altexaminercount}}{#1}{#2}{#3}{#4}%%
+  \__ufrgscca_set_prof_info:nnnnn {altreviewer}{#1}{#2}{#3}{#4}
 }%
-%
-%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% assure that student/advisor/examiners... commands are defined with underlines (if not already defined)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\tc at IDrule{30mm}%
-\def\tc at emailrule{40mm}%
-\def\tc at namerule{50mm}%
-\def\tc at titlerule{40mm}%
-\def\tc at phonerule{20mm}%
-\def\tc at agreerule{25mm}%
-\def\tc at daterule{15mm}%
-%%%
-%%
-%%%
-\NewDocumentCommand{\tccore at emptyfields}{}{%
 
-	\@ifundefined{tc at studentA}{%
-		\student{\rule{\tc at namerule}{.1pt}}{}%
-		\studentinfo{\rule{\tc at IDrule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}%
-	}{}%
-	\@ifundefined{tc at studentA@advisor}{%
-		\advisor{\rule{\tc at namerule}{.1pt}}{}%
-		\advisorinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-	}{}%
-%
-	\@ifundefined{tc at studentA@examinerC}{%
-		\examiner{\rule{\tc at namerule}{.1pt}}{}%
-		\examinerinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-	}{}%
-	\@ifundefined{tc at studentA@examinerC}{%
-		\examiner{\rule{\tc at namerule}{.1pt}}{}%
-		\examinerinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-	}{}%
-	\@ifundefined{tc at studentA@examinerC}{%
-		\examiner{\rule{\tc at namerule}{.1pt}}{}%
-		\examinerinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-	}{}%
-	\@ifundefined{tc at studentA@altexaminerA}{%
-		\altexaminer{\rule{\tc at namerule}{.1pt}}{}%
-		\altexaminerinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-	}{}%
-	%
-	\@ifundefined{tc at studentA@supervisor}{%
-        \supervisor{\rule{\tc at namerule}{.1pt}}{}%
-        \supervisorinfo{\rule{\tc at phonerule}{.1pt}}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-    }{}%
-    %
-    \@ifundefined{tc at studentA@tutor}{%
-        \tutor{\rule{\tc at namerule}{.1pt}}{}%
-        \tutorinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-    }{}%
-    %
-    %
-    \@ifundefined{tc at studentA@internshipcompany}{%
-        \internship{\rule{\tc at namerule}{.1pt}}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at daterule}{.1pt}}{\rule{\tc at daterule}{.1pt}}{\rule{\tc at daterule}{.1pt}}%
-    }{}%
 
-    %
-	% add an \iftcif at forms !!!
-	%
-	\@ifundefined{tcdef at core@tccbrief}{%
-		\tccbrief{\tcdef at core@formsblanklines}%
-	}{}%
-	\@ifundefined{tcdef at core@tccArgument}{%
-		\tccArgument{\tcdef at core@formsblanklines}%
-	}{}%
-	\@ifundefined{tcdef at core@tcccoadvisorbrief}{%
-		\tcccoadvisorbrief{\tcdef at core@formsblanklines}%
-	}{}%
-	\@ifundefined{tcdef at core@tccadvisorsreview}{%
-		\tccadvisorsreview{\tcdef at core@formsblanklines}%
-	}{}%
-}%
+\cs_new_protected:Npn \__ufrgscca_emptyfields:
+  {
+    \starray_new_term:nn {student}{empty}
+    \starray_new_term:nn {student.advisor}{}
+    \starray_new_term:nn {student.coadvisor}{}
+    \starray_new_term:nn {student.reviewer}{}
+    \starray_new_term:nn {student.reviewer}{}
+    \starray_new_term:nn {student.reviewer}{}
+    \starray_new_term:nn {student.altreviewer}{}
+    \starray_new_term:nn {student.supervisor}{}
+    \starray_new_term:nn {student.tutor}{}
+    \starray_new_term:nn {student.internship}{}
+  }
 
-\NewDocumentCommand{\tccore at resetfields}{}{%
-	\setcounter{tc at studentcount}{0}
-	\csundef{tc at studentA}
-	\csundef{tc at studentA@advisor}
-	\csundef{tc at studentA@coadvisor}
-	\csundef{tc at studentA@examinerC}
-	\csundef{tc at studentA@altexaminerA}
-    \csundef{tc at studentA@supervisor}
-    \csundef{tc at studentA@tutor}
-    \csundef{tc at studentA@internshipcompany}
-%    \csundef{tc at studentA@internshipfield}
-%    \csundef{tc at studentA@internshipstart}
-%    \csundef{tc at studentA@internshipend}
-%    \csundef{tc at studentA@internshiplength}
-	\csundef{tcdef at core@tccbrief}
-	\csundef{tcdef at core@tccArgument}
-	\csundef{tcdef at core@tcccoadvisorbrief}
-	\csundef{tcdef at core@tccadvisorsreview}
-}
+\def\emptybox{\framebox[3em]{\color{white}W}}
+  

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,382 +23,217 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-cover}
-\def\tc at tmp@altpackname{ufrgsccacover}
-\def\tc at tmp@packdesc{UFRGS/CCA cover commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
-\DeclareKeys[ufrgscca-cover]{
-    report.usage = load,
-    report.if = tcif at report,
-    internship.usage = load,
-	internship.if = tcif at internship,
-    nonrequired.usage = load,
-    nonrequired.if = tcif at nonrequired,
-}
-\ProcessKeyOptions[ufrgscca-cover]\relax
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% student commands%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\cmdfactory<cover>{course}
-\cmdfactory<cover>{courseacronym}%
-\cmdfactory<cover>{graduationtitle}
-\cmdfactory<cover>{university,universityacronym,universitydivision}
-\cmdfactory<cover>{divisiongradcouncil}%
-\cmdfactory<cover>{department,classcode,classname,subject}%
-\cmdfactory<cover>{secretaryacronym,secdivisionacronym}%
-\cmdfactory<cover>{advisorname,coadvisorname}
-\cmdfactory<cover>{examinername}%
-\cmdfactory<cover>{reportspecificinfo,approvalspecificinfo}%
-\cmdfactory<cover>{advisorwidth}
-\cmdfactory<cover>{profname,coprofname}%
-\cmdfactory<cover>{tutorname,supervisorname}%
-\cmdfactory<cover>{internshiptitle}%
-\cmdfactory<cover>{internshipinfo}%
-%
-\advisorwidth{0.55\textwidth}%
-%
-\NewDocumentCommand{\class}{mm}{\classcode{#1}\classname{#2}}%
-%
+\ProvidesExplPackage
+    {ufrgscca-cover}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA cover commands}
 
 
-%%%%%%%%%%%%%%%%%%%%%%%
-%%%%
-%%% cover pages and related macros%
-%%%%
-%%%%%%%%%%%%%%%%%%%%%%%
-\newlength{\tc at formwinvoffset}%
-\setlength{\tc at formwinvoffset}{24mm}%
-\NewDocumentCommand\tc at formtopbox{O{}+m+m}{%%
-	\begin{center}%%
-		\noindent%%
-		\parbox[t]{\textwidth}{%%
-      \centering%%
-      \vbox to \tc at formwinvoffset{%%
-        \tccover at covertopinfo%%
-				{\sc #2}%
-      }%%
-    }%
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-cover / pkg info}
+  {
+     name        .code:n = {ufrgscca-cover} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~ cover~pages}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }  
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
 
-		{\bf #3}\@ifundefined{#1}{}{\footnote[1]{\csname #1\endcsname}}%%
-	\end{center}%%
+
+\NewDocumentCommand{\class}{mm}{%
+  \SetHeadings{%
+    class.code = {#1} ,
+    class.name = {#2} ,
+  }
 }%
-
-
 %
-\NewDocumentCommand{\tccover at covertopinfo}{}{%%
-        \@ifundefined{tcdef at cover@university}{}{\MakeUppercase{\tcdef at cover@university}\\}%
-        \@ifundefined{tcdef at cover@universitydivision}{}{\MakeUppercase{\tcdef at cover@universitydivision}\\}%
-        \@ifundefined{tcdef at cover@course}{}{\MakeUppercase{\tcdef at cover@course}\\}%
-        \@ifundefined{tcdef at cover@department}{}{\MakeUppercase{\tcdef at cover@department}\\}%%
-        \@ifundefined{tcdef at cover@classname}{}{\MakeUppercase{\tcdef at cover@classcode\ --\ \tcdef at cover@classname}\\}%
-        \@ifundefined{tcdef at cover@subject}{}{\MakeUppercase{\tcdef at cover@subject}}%
-}%
 
+\cs_generate_variant:Nn \text_uppercase:n {e}
 
-\NewDocumentCommand{\tccover at coveradvisorinfo}{}{%%
-        \@ifundefined{tc at studentA@advisor}{}{\vfill{\scshape\tcdef at cover@advisorname}:\\\null\hfill\tc at studentA@advisor}%
-        \@ifundefined{tc at studentA@coadvisor}{}{\\[6ex]{\scshape\tcdef at cover@coadvisorname}:\\\null\hfill\tc at studentA@coadvisor}%
-}%
-%
-\NewDocumentCommand{\tccover at reportadvisorinfo}{}{%%
-        \@ifundefined{tc at studentA@advisor}{}{\vfill{\scshape\iftcif at internship\tcdef at cover@advisorname\else\tcdef at cover@profname\fi}:\\\null\hfill\tc at studentA@advisor}%
-        \@ifundefined{tc at studentA@coadvisor}{}{\\[6ex]{\scshape\iftcif at internship\tcdef at cover@coadvisorname\else\tcdef at cover@coprofname\fi}:\\\null\hfill\tc at studentA@coadvisor}%
-}%
-%
+\NewDocumentCommand{\location}{mm}{%%
+  \SetConsts{%
+    publ.city = {#1} ,
+    publ.state = {#2} ,
+  }
+}%%
 
-%%%%%%%%%%%%%%%%%%%
-\let\tc at org@maketitle\maketitle
-\RenewDocumentCommand{\maketitle}{}{\coverpages}%
 
+\prop_new:N \l__ufrgscca_coverpages_prop
 
-\NewDocumentCommand{\coverpages}{}{%%
-    \thecoverpage%that´s the first page%
-    \thetitlepage%that´s the second page (for tcc)%
-    \tccapprovalpage%that´s the third page (for tcc)%
-}%
 
-\iftcif at report
-  \RenewDocumentCommand{\coverpages}{}{%%
-    \thecoverpage%that´s the first page%
-  }%
-\fi
+\NewDocumentCommand{\SetCoverFields}{mm+m}{
+  \prop_put:Nnn \l__ufrgscca_coverpages_prop {#1.#2}{#3}
+}
 
-\iftcif at internship
-  \AtBeginDocument{\title{\tcdef at cover@internshiptitle}}
-  \RenewDocumentCommand{\coverpages}{}{%%
-    \thecoverpage%that´s the first page%
-    \internapprovalpage%that´s the second page (for internship)%
-  }%
-\fi
+\NewDocumentCommand{\MakeCoverPages}{m} 
+  {
+    \seq_set_from_clist:Ne \l__ufrgscca_tmp_seq {\prop_item:Nn \l__ufrgscca_coverpages_prop {#1.clist} }
 
-%
+    \seq_map_inline:Nn \l__ufrgscca_tmp_seq 
+      {
+        \keys_set:nn { ufrgscca / layout }{##1 = #1}
+      }
 
-%%%%%%%%%
-%%%
-%% 1st cover page%
-%%%
-%%%%%%%%%
-%%
-\newlength{\tc at coverwinwidth}\setlength{\tc at coverwinwidth}{95mm}%%
-\newlength{\tc at coverwinheight}\setlength{\tc at coverwinheight}{64mm}%%
-\newlength{\tc at coverwinvoffset}\setlength{\tc at coverwinvoffset}{112mm}%%
-\NewDocumentCommand{\location}{mm}{%%
-        \gdef\tc at city{#1}%%
-        \gdef\tc at state{#2}%%
-}%%
+  }
 
 
-\NewDocumentCommand{\thecoverpage}{}{%%
-  \begin{titlepage}%
-    \noindent\tc at covertopbox%
-    \vfill%
-	  \iftcif at report{%%
-		\@ifundefined{tc at studentA@advisor}{}{%%
-          \hspace*{\fill}\parbox[b]{\tcdef at cover@advisorwidth}{\tccover at reportadvisorinfo}%
-		  \vfill%
-        }%%
-	  }%%
-     \else\fi
-    \centerline{\tc at city}%
-	  \centerline{\tc at date}%
-  \end{titlepage}%%
-	\tc at pagebreak
-}%
-%
-%
-%%%%%%%%%
-%%%
-%% 2nd cover page (title page)%
-%%%
-%%%%%%%%%
-\NewDocumentCommand{\thetitlepage}{}{%%
-	\begin{titlepage}%
-    \noindent\tc at covertopbox%
-    \vfill%
-    \@ifundefined{tcdef at cover@reportspecificinfo}{}{%
-      \hspace*{\fill}\makebox[.55\textwidth][l]{%%
-        \parbox[b]{8.5cm}{\tcdef at cover@reportspecificinfo}%%
-      }%
-      \vfill%
-    }%
-    \@ifundefined{tc at studentA@advisor}{}{%
-      \hspace*{\fill}\parbox[b]{\tcdef at cover@advisorwidth}{%%
-        \tccover at coveradvisorinfo%
-      }%
-      \vfill%
-    }%
-    \centerline{\tc at city}%
-	  \centerline{\tc at date}%
-	\end{titlepage}%
-	\tc at pagebreak
-}%
-%
-%
-%
-\NewDocumentCommand{\tccover at studentdesc}{m}{\@ifundefined{#1}{}{\MakeUppercase{\textbf{\csname #1\endcsname\ - \csname #1ID\endcsname}}\\}}
-%
+\keys_define:nn { ufrgscca / layout }
+  {
+    cover        .usage:n    = general,
+	cover        .code:n     = {\__ufrgscca_cover_page:n{#1}},
+    desc        .usage:n    = general,
+	desc        .code:n     = {\__ufrgscca_desc_page:n{#1}},
+    approval    .usage:n    = general,
+    approval    .code:n     = {\__ufrgscca_approval_page:n{#1}},
+  }
+  
+\cs_generate_variant:Nn \seq_map_inline:Nn {Ne}
+\cs_generate_variant:Nn \seq_set_from_clist:Nn {Ne}
 
+\coffin_new:N \l__ufrgscca_top_coffin 
+\coffin_new:N \l__ufrgscca_student_coffin
+\coffin_new:N \l__ufrgscca_title_coffin
+\coffin_new:N \l__ufrgscca_desc_coffin
+\coffin_new:N \l__ufrgscca_adv_coffin
+\coffin_new:N \l__ufrgscca_board_coffin
+\coffin_new:N \l__ufrgscca_coord_coffin
 
-\NewDocumentCommand\tc at covertopbox{}{%%
-  \parbox[t]{\textwidth}{%%
-    \centering%%
-    \vbox to \tc at coverwinvoffset{%%
-      \tccover at covertopinfo\vfill\tc at winbox%
-    }%
-  }%
-}%
+\dim_new:N \l__ufrgscca_top_ht_dim
 
+\dim_new:N \l__ufrgscca_student_voffset_dim
+\dim_new:N \l__ufrgscca_student_ht_dim
 
- \NewDocumentCommand\tc at winbox{}{%%
-       %\fbox{%
-     \parbox[b]{\tc at coverwinwidth}{%%
-       \centering\vbox to \tc at coverwinheight{%%
-         \vspace*{\fill}%
-         \iftcif at report%
-  		   \tccover at studentdesc{tc at studentA}%
-           \tccover at studentdesc{tc at studentB}%
-           \tccover at studentdesc{tc at studentC}%
-           \tccover at studentdesc{tc at studentD}%%
-         \else%
-           \tccover at studentdesc{tc at studentA}%%
-         \fi%
-         \vspace{\stretch{4}}%
-         {\large\MakeUppercase{\textbf{\@title}}\par}%
-         \vfill%
-       }%%
-	   %}%%
-       }%%
- }%
+\dim_new:N \l__ufrgscca_title_voffset_dim
+\dim_new:N \l__ufrgscca_title_wd_dim
+\dim_new:N \l__ufrgscca_title_ht_dim
 
+\dim_new:N \l__ufrgscca_desc_wd_dim
+\dim_new:N \l__ufrgscca_desc_ht_dim
+\dim_new:N \l__ufrgscca_desc_voffset_dim
 
+\dim_new:N \l__ufrgscca_adv_wd_dim
+\dim_new:N \l__ufrgscca_adv_ht_dim
+\dim_new:N \l__ufrgscca_adv_voffset_dim
 
-%
-%%%%%%%%%
-%%%
-%% 3rd cover page (approval page)%
-%%%
-%%%%%%%%%
-\NewDocumentCommand{\tccapprovalpage}{}{%%
-	\begin{center}%
-    \noindent\tc at covertopbox%
-    \vfill%
-    \@ifundefined{tcdef at cover@approvalspecificinfo}{}{%
-      \hspace*{\fill}\makebox[.55\textwidth][l]{%%
-        \parbox[b]{8.5cm}{\tcdef at cover@approvalspecificinfo}%%
-      }%
-      \vfill%
-    }%
-    \@ifundefined{tc at studentA@advisor}{}{%
-      \hspace*{\fill}\parbox[b]{.70\textwidth}{%%
-        \tccover at approvalpageadvisorinfo%
-      }%
-      \vfill%
-    }%
-	\@ifundefined{tc at studentA@examinerA}{}{%
-		\hspace*{\fill}\parbox[b]{1.0\textwidth}{\tcdef at cover@examinername:}%
-		\vfill%
-    \hspace*{\fill}\parbox[b]{.90\textwidth}{%%
-      \tccover at approvalpageexaminerinfo%
-    }%
-    \vfill%
-  }%
-  \@ifundefined{tcdef at core@coursecoord}{}{%
-    \hspace*{\fill}\parbox[b]{.70\textwidth}{%%
-      \tccover at approvalpagecoordinfo%
-    }%
-    \vfill%
-  }%
-  \vfill%
-  \hfill\tc at city, \tc at monthyeardate
-	\end{center}%
-	\tc at pagebreak
-}%
-%
-%
-%
-%
-%
-%%%%%%%%%
-%%%
-%% 2nd cover page (internship, approval page)%
-%%%
-%%%%%%%%%
-\NewDocumentCommand{\internapprovalpage}{}{%%
-    \begin{center}%
-        \noindent\tc at covertopbox%
-        \vfill%
-        \@ifundefined{tcdef at cover@internshipinfo}{}{%
-            \hspace*{\fill}\makebox[.55\textwidth][l]{%%
-                \parbox[b]{8.5cm}{\tcdef at cover@internshipinfo}%%
-            }%
-            \vfill%
-        }%
-        \@ifundefined{tc at studentA@tutor}{}{%
-            \hspace*{\fill}\parbox[b]{.70\textwidth}{%%
-                \tccover at approvalpagetutorinfo%
-            }%
-            \vfill%
-        }%
-        \@ifundefined{tc at studentA@supervisor}{}{%
-            \vfill%
-            \hspace*{\fill}\parbox[b]{.70\textwidth}{%%
-                \tccover at approvalpagesupervisorinfo%
-            }%
-            \vfill%
-        }%
-        \iftcif at nonrequired
-        \else
-        \@ifundefined{tcdef at core@coursecoord}{}{%
-            \hspace*{\fill}\parbox[b]{.70\textwidth}{%%
-                \tccover at approvalpageinternshipcoordinfo%
-            }%
-            \vfill%
-        }%
-        \fi
-        \vfill%
-        \hfill\tc at city, \tc at monthyeardate
-    \end{center}%
-    \tc at pagebreak
-}%
-%
-%
-%
-%
-%
-\NewDocumentCommand{\tccover at approvalpageadvisorinfo}{}{%%
-  \@ifundefined{tc at studentA@advisor}{}{%%
-		\vfill%
-		\tcdef at cover@advisorname: \hrulefill\\%
-		\tc at studentA@advisor, \tc at studentA@advisorinstitution\\%
-		\tc at studentA@advisortitleinfo %
-	}%
-}%
-\NewDocumentCommand{\tccover at approvalpagetutorinfo}{}{%%
-    \@ifundefined{tc at studentA@tutor}{}{%%
-        \vfill%
-        \tcdef at cover@tutorname: \hrulefill\\%
-        \tc at studentA@tutor, \tc at studentA@tutorinstitution\\%
-        \tc at studentA@tutortitleinfo %
-    }%
-}%
 
-\NewDocumentCommand{\tccover@@aprovalexaminerinfo}{m}{
-  \@ifundefined{#1}{}{%%
-  	\csname #1\endcsname, \csname #1institution\endcsname\\%
-		\csname #1titleinfo\endcsname\\%
-	}%
-}%
-\NewDocumentCommand{\tccover at approvalpageexaminerinfo}{}{%%
-		\vfill%
-		\tccover@@aprovalexaminerinfo{tc at studentA@examinerA}%
+\cs_new_protected:Npn \__ufrgscca_cover_page_base:n #1
+  {
+    \dim_gset:Nn \l__ufrgscca_title_wd_dim {0.6\textwidth}% {95mm}
+    \dim_gset:Nn \l__ufrgscca_desc_wd_dim {0.6\textwidth}% {95mm}
+    \dim_gset:Nn \l__ufrgscca_adv_wd_dim {0.68\textwidth}% {95mm}
+  
+    \vcoffin_gset:Nnn \l__ufrgscca_top_coffin {\textwidth}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.top} }
+  
+    \vcoffin_gset:Nnn \l__ufrgscca_student_coffin {\l__ufrgscca_title_wd_dim}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.students} }
+      
+    \vcoffin_gset:Nnn \l__ufrgscca_title_coffin {\l__ufrgscca_title_wd_dim}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.title} }
+  
+    \dim_gset:Nn \l__ufrgscca_student_ht_dim {\coffin_ht:N \l__ufrgscca_student_coffin}
+    \dim_gset:Nn \l__ufrgscca_top_ht_dim {\coffin_ht:N \l__ufrgscca_top_coffin}
+    \dim_gset:Nn \l__ufrgscca_title_voffset_dim {0.29\textheight} %%{0.3\textheight} 
+    \dim_gset:Nn \l__ufrgscca_desc_voffset_dim {0.42\textheight} %%{0.45\textheight}   
+    \dim_gset:Nn \l__ufrgscca_adv_voffset_dim {0.54\textheight} 
+    \dim_gset:Nn \l__ufrgscca_student_voffset_dim {(\l__ufrgscca_title_voffset_dim + \l__ufrgscca_top_ht_dim - \l__ufrgscca_student_ht_dim)/2}
+  
+    \coffin_gjoin:NnnNnnnn \l__ufrgscca_top_coffin {hc}{t} \l__ufrgscca_student_coffin {hc}{t} {0pt} {-\l__ufrgscca_student_voffset_dim} 
+    \coffin_gjoin:NnnNnnnn \l__ufrgscca_top_coffin {hc}{t} \l__ufrgscca_title_coffin {hc}{t} {0pt} {-\l__ufrgscca_title_voffset_dim} 
+  }
 
-		\tccover@@aprovalexaminerinfo{tc at studentA@examinerB}%
 
-		\tccover@@aprovalexaminerinfo{tc at studentA@examinerC}%
 
-		\tccover@@aprovalexaminerinfo{tc at studentA@examinerD}%
 
-		\tccover@@aprovalexaminerinfo{tc at studentA@examinerE}%
-}%
-%
-\NewDocumentCommand{\tccover at approvalpagesupervisorinfo}{}{%%
-  \vfill%
-  \@ifundefined{tc at studentA@supervisor}{}{%%
-      \tcdef at cover@supervisorname: \hrulefill\\%
-    \tc at studentA@supervisor, \tc at studentA@supervisorregister\\%
-    \tc at studentA@supervisoroffice\\%
-  }%
-}%
-%
+\cs_new_protected:Npn \__ufrgscca_cover_page:n #1 
+  {
+    \__ufrgscca_cover_page_base:n{#1}
+      
+    \noindent\coffin_typeset:Nnnnn \l__ufrgscca_top_coffin {l}{b} {0pt}{0pt}
+  
+    \vfill
+    { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.bottom} }
+    %\newpage
+    \__ufrgscca_clearpage:
+  }
 
+\cs_new_protected:Npn \__ufrgscca_desc_page:n #1 
+  {
+    \__ufrgscca_cover_page_base:n{#1}      
+  
+    \vcoffin_gset:Nnn \l__ufrgscca_desc_coffin {\l__ufrgscca_desc_wd_dim}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.text-descpage} }
+  
+    \vcoffin_gset:Nnn \l__ufrgscca_adv_coffin {\l__ufrgscca_adv_wd_dim}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.advisor-descpage} }
+    
+    \coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {r}{t} \l__ufrgscca_desc_coffin {r}{t} {0pt} {-\l__ufrgscca_desc_voffset_dim} 
+     
+    %\coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {r}{b} \l__ufrgscca_adv_coffin {r}{t} {0pt} {-3\parsep} 
+    \coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {r}{t} \l__ufrgscca_adv_coffin {r}{t} {0pt} {-\l__ufrgscca_adv_voffset_dim}   
+      
+    \noindent\coffin_typeset:Nnnnn \l__ufrgscca_top_coffin {l}{b} {0pt}{0pt}
+  
+    \vfill
+    { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.bottom-descpage} }
+    %\newpage
+    \__ufrgscca_clearpage:
+  }
 
-\NewDocumentCommand{\tccover at approvalpagecoordinfo}{}{%%
-  \@ifundefined{tcdef at core@coursecoord}{}{%%
-		\vfill%
-		\hrulefill\\%
-		\tcdef at core@coursecoord\\%
-		\tcdef at core@coursecoordtitle\\%
-		\tcdef at cover@course%
-	}%
-}%
-%
-\NewDocumentCommand{\tccover at approvalpageinternshipcoordinfo}{}{%%
-    \@ifundefined{tcdef at core@internshipcoord}{}{%%
-        \vfill%
-        \hrulefill\\%
-        \tcdef at core@internshipcoord\\%
-        \tcdef at core@internshipcoordtitle\\%
-        \tcdef at cover@course%
-    }%
-}%
 
+\cs_new_protected:Npn \__ufrgscca_approval_page:n #1 
+  {
+    \__ufrgscca_cover_page_base:n{#1}        
+    \vcoffin_gset:Nnn \l__ufrgscca_desc_coffin {\l__ufrgscca_desc_wd_dim}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.text-approvalpage} }
+  
+    \vcoffin_gset:Nnn \l__ufrgscca_adv_coffin {\l__ufrgscca_adv_wd_dim}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.advisor-approvalpage} }
+  
+    \vcoffin_gset:Nnn \l__ufrgscca_board_coffin {\textwidth}
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.board} }
+  
+    \vcoffin_gset:Nnn \l__ufrgscca_coord_coffin {\l__ufrgscca_adv_wd_dim} 
+      { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.coord} }
+  
+    \coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {r}{t} \l__ufrgscca_desc_coffin {r}{t} {0pt} {-\l__ufrgscca_desc_voffset_dim} 
+     
+    %\coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {r}{b} \l__ufrgscca_adv_coffin {r}{t} {0pt} {-3\parsep} 
+    \coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {r}{t} \l__ufrgscca_adv_coffin {r}{t} {0pt} {-\l__ufrgscca_adv_voffset_dim}   
+      
+    \coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {l}{b} \l__ufrgscca_board_coffin {l}{t} {0pt} {-3\parsep} 
+    \coffin_join:NnnNnnnn \l__ufrgscca_top_coffin {r}{b} \l__ufrgscca_coord_coffin {r}{t} {0pt} {-3\parsep} 
+      
+    \noindent\coffin_typeset:Nnnnn \l__ufrgscca_top_coffin {l}{b} {0pt}{0pt}
+  
+    \vfill
+    { \prop_item:Nn \l__ufrgscca_coverpages_prop {#1.bottom-approvalpage} }
+    %\newpage
+    \__ufrgscca_clearpage:
+  }
 
-

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-graph.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-graph.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-graph.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,101 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-curr-graph}
-\def\tc at tmp@altpackname{tccurrgraph}
-\def\tc at tmp@packdesc{UFRGS/CCA graph curricula commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12beta}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
-
-
-\RequirePackage{ufrgscca-curr}
-
-
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
-
-\NewDocumentEnvironment{tikzGraphSem}{O{4.2:2.1}D<>{11.5:-18.5}}{%
-    \StrCut{#1}{:}{\gr at dX}{\gr at dY}
-    \StrCut{#2}{:}{\gr at xX}{\gr at yY}
-    \def\gr at Xa{0}\def\gr at Xb{\gr at xX*\gr at dX}
-    \def\gr at Ya{0}\def\gr at Yb{\gr at yY*\gr at dY}
-    \begin{tikzpicture}[%
-        disc/.style={%
-          ellipse split, double, draw, line width=2pt,%
-          every text node part/.style={font=\small\bfseries},%
-          every lower node part/.style={font=\large\bfseries,color=blue}},%
-        dep/.style={->,dotted,line width=3pt}]%
-      \begin{scope}\clip(\gr at Xa,\gr at Ya) -- (\gr at Xa,\gr at Yb) -- (\gr at Xb,\gr at Yb) -- (\gr at Xb,\gr at Ya);%
-         \filldraw[color=red](0.5*\gr at xX*\gr at dX,-0.25*\gr at dY)node{\Huge\textbf{\GraphTitle}};%
-}{%
-      \end{scope}%
-    \end{tikzpicture}%
-}
-
-\NewDocumentCommand\GraphSem{O{ob}m}{%
-    \LstClass[\GraphClass]{#2}%
-    \draw (\csname gr at etidx:\csname gr at et:\gr at sem.idx\endcsname.pos\endcsname*\gr at dX-0.5*\gr at dX,-\gr at dY) node[disc](Et. #2){Etapa #2 \nodepart{lower} \arabic{gr at cred#1},#1};%
-}
-
-\NewDocumentCommand\GraphClass{m}{%
-    \edef\gr at topic{\csname gr at class:#1.topic\endcsname}%
-    \edef\gr at color{\csname gr at topic:\gr at topic.color\endcsname}%
-    \draw[\gr at color] (\csname gr at etidx:\csname gr at et:\gr at sem.idx\endcsname.pos\endcsname*\gr at dX-0.5*\gr at dX,\csname gr at class:#1.pos\endcsname*\gr at dY-1.25*\gr at dY) node[disc](#1){#1 \nodepart{lower} \csname gr at class:#1.cred\endcsname,\csname gr at class:#1.typ\endcsname};%
-    \LstDep[\GraphDep]{#1}%
-}
-
-\NewDocumentCommand\GraphDep{m}{%
-      \edef\gr at topic{\csname gr at class:\gr at disc.dep\gr at depSeq:#1.topic\endcsname}%
-      \xdef\gr at DepColor{\csname gr at topic:\gr at topic.color\endcsname}%
-       %\xdef\gr at DepColor{\csname gr at class:\gr at disc.dep\gr at depSeq:#1.topic\endcsname}%
-       \def\gr at angOUT{\gr at ANG} \def\gr at angIN{180-\gr at ANG}%
-       \xdef\gr at deppos{\csname gr at class:\gr at disc.dep\gr at depSeq:#1.pos\endcsname}%
-       \def\gr at depcut{\StrCut{\gr at deppos}{:}{\gr at angOUT}{\gr at ANG}}%
-       \gr at case@angle{\gr at deppos}%
-      \path[dep,\gr at DepColor] (#1)edge[out=\gr at angOUT,in=\gr at angIN] (\gr at disc);%
-}
-
-\def\gr at Z{0} \def\gr at A{30}  \def\gr at B{60}  \def\gr at C{80}
-
-\mkswitch[\gr at depcut]\gr at case@angle
-\addcase\gr at case@angle{}{\def\gr at ANG{0}}
-\addcase\gr at case@angle{A}{\def\gr at ANG{\gr at A}}
-\addcase\gr at case@angle{B}{\def\gr at ANG{\gr at B}}
-\addcase\gr at case@angle{C}{\def\gr at ANG{\gr at C}}
-\addcase\gr at case@angle{-A}{\def\gr at ANG{-\gr at A}}
-\addcase\gr at case@angle{-B}{\def\gr at ANG{-\gr at B}}
-\addcase\gr at case@angle{-C}{\def\gr at ANG{-\gr at C}}
-\addcase\gr at case@angle{A*}{\def\gr at ANG{\gr at A}\def\gr at angIN{180+\gr at ANG}}
-\addcase\gr at case@angle{B*}{\def\gr at ANG{\gr at B}\def\gr at angIN{180+\gr at ANG}}
-\addcase\gr at case@angle{C*}{\def\gr at ANG{\gr at C}\def\gr at angIN{180+\gr at ANG}}
-\addcase\gr at case@angle{-A*}{\def\gr at ANG{-\gr at A}\def\gr at angIN{180+\gr at ANG}}
-\addcase\gr at case@angle{-B*}{\def\gr at ANG{-\gr at B}\def\gr at angIN{180+\gr at ANG}}
-\addcase\gr at case@angle{-C*}{\def\gr at ANG{-\gr at C}\def\gr at angIN{180+\gr at ANG}}
-
-

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-tab.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-tab.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr-tab.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,163 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-curr-tab}
-\def\tc at tmp@altpackname{ufrgsccacurrtab}
-\def\tc at tmp@packdesc{UFRGS/CCA curricula tabular commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12beta}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
-
-\RequirePackage{longtable}
-\RequirePackage{ufrgscca-curr}
-
-\NewDocumentCommand\TabClass{m}{%
- & #1 & \csname gr at class:#1.cred\endcsname & \csname gr at class:#1.typ\endcsname & \multicolumn{2}{J{11cm}}{\csname gr at class:#1.nam\endcsname}\\*%
-    \edef\gr at disc{#1}%
-		\ifcsdef{gr at class:#1.depA}{%
-			& & & & %
-   		& \def\gr at tab{\ }%
-			\LstDep[\TabDepX]<A>{#1}\\*%
-    }{}%
-		\ifcsdef{gr at class:#1.depB}{%
-			& & & & OU\\*%
-			& & & & %
-   		& \def\gr at tab{\ }%
-			\LstDep[\TabDepX]<B>{#1}\\*%
-		}{}%
-		\ifcsdef{gr at class:#1.depC}{%
-			& & & & OU\\*%
-			& & & & %
-   		& \def\gr at tab{\ }%
-			\LstDep[\TabDepX]<C>{#1}\\*%
-		}{}%
-		\ifshowind{\ifcsundef{gr at class:#1.remark}%
-		    {}{&       &       &  & \multicolumn{2}{l}{{\larger[2]{\color{red} \csname gr at class:#1.remark\endcsname}}}\\*}}{}%
-\xdef\gr at topic{\csname gr at class:#1.topic\endcsname}%
-&       &       &   & \multicolumn{2}{J{11cm}}{{\sc\color{\csname gr at topic:\gr at topic.color\endcsname} \csname gr at topic:\gr at topic.txt\endcsname}}\\*
-&       &       &  & \multicolumn{2}{l}{{\smaller{\sc Súmula: }}}\\*%
-&       &       &  & & {{\smaller\csname gr at class:#1.desc\endcsname}}\\ %
-\ifcsundef{gr at class:#1.bibA}{}{&       &       &  & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Básica Essencial: }}}\\* &       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibA\endcsname}\\*}%
-\ifcsundef{gr at class:#1.bibB}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibB\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibC}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibC\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibD}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibD\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibE}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibE\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibF}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibF\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibG}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibG\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibH}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibH\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibI}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibI\endcsname}\\}%
-\ifcsundef{gr at class:#1.bibJ}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.bibJ\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicA}{}{&       &       &  & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Básica: }}}\\* &       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicA\endcsname}\\*}%
-\ifcsundef{gr at class:#1.basicB}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicB\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicC}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicC\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicD}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicD\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicE}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicE\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicF}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicF\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicG}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicG\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicH}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicH\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicI}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicI\endcsname}\\}%
-\ifcsundef{gr at class:#1.basicJ}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.basicJ\endcsname}\\}%
-\ifcsundef{gr at class:#1.compA}{}{&       &       &  & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Complementar: }}}\\* &       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compA\endcsname}\\*}%
-\ifcsundef{gr at class:#1.compB}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compB\endcsname}\\}%
-\ifcsundef{gr at class:#1.compC}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compC\endcsname}\\}%
-\ifcsundef{gr at class:#1.compD}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compD\endcsname}\\}%
-\ifcsundef{gr at class:#1.compE}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compE\endcsname}\\}%
-\ifcsundef{gr at class:#1.compF}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compF\endcsname}\\}%
-\ifcsundef{gr at class:#1.compG}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compG\endcsname}\\}%
-\ifcsundef{gr at class:#1.compH}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compH\endcsname}\\}%
-\ifcsundef{gr at class:#1.compI}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compI\endcsname}\\}%
-\ifcsundef{gr at class:#1.compJ}{}{&       &       &  & &{\smaller \textopenbullet\ \csname gr at class:#1.compJ\endcsname}\\}%
- \\[-1.5ex]%
-}
-
-
-%%%gr at class:\gr at disc.bib\Alph{gr at class:\gr at disc.bibcnt}
-
-\NewDocumentCommand\TabDepX{m}{%
-  {
-    \ifshowind{\ifcsundef{gr at class:#1.remark}{}{\color{red}\bfseries}}{}
-     \gr at tab\    #1 (\csname gr at class:#1.et\endcsname) %
-	}
-	\def\gr at tab{E}%
-}
-
-\NewDocumentCommand\TabDep{m}{%
-    & & & & & #1 - \csname gr at class:#1.nam\endcsname\ (\csname gr at class:#1.et\endcsname)\\[-0.1ex]%
-}
-
-\NewDocumentCommand\TabEtp{D<>{ob}O{\notoc\section}m}{%
-    #2{Etapa #3}%
-    \begin{longtable}{l@{\,}l@{\ }c@{\ }c@{\ }J{5mm}@{}J{10.7cm}}%
-        \LstClass[\TabClass]{#3}%
-%        & \textbf{Total} & \textbf{\arabic{gr at cred#1}} & \textbf{#1}\\%
-    \end{longtable}%
-}
-
-\NewDocumentCommand\@TabTopic{m}{%
- #1 & \csname gr at class:#1.cred\endcsname & \csname gr at class:#1.typ\endcsname & \csname gr at class:#1.nam\endcsname & (\csname gr at class:#1.et\endcsname)\\%
-}
-
-\NewDocumentCommand\TabTopic{O{ob}m}{%
-
-\noindent\csname gr at topic:#2.txt\endcsname
-\@ifundefined{gr at topic:#2}{\\\textbf{--No Classes Associated--}}{
-    \begin{longtable}{l@{\,}l@{\ }c@{\ }J{11.2cm}@{\,}l}\smaller%
-        \LstTopic[\@TabTopic]{#2}%
-    \end{longtable}%
-		}
-}
-
-
-\NewDocumentCommand\TabClassCompact{m}{%
- & #1 & \csname gr at class:#1.cred\endcsname & \csname gr at class:#1.typ\endcsname & \multicolumn{2}{J{11cm}}{\csname gr at class:#1.nam\endcsname}\\*%
-    \edef\gr at disc{#1}%
-		\ifcsdef{gr at class:#1.depA}{%
-			\LstDep[\TabDep]<A>{#1}%
-    }{}%
-		\ifcsdef{gr at class:#1.depB}{%
-			& & & & OU\\*%
-			& & & & %
-   		& \def\gr at tab{\ }%
-			\LstDep[\TabDepX]<B>{#1}%
-		}{}%
-		\ifcsdef{gr at class:#1.depC}{%
-			& & & & OU\\*%
-			& & & & %
-   		& \def\gr at tab{\ }%
-			\LstDep[\TabDepX]<C>{#1}%
-		}{}%
-}
-
-\NewDocumentCommand\TabEtpCompact{D<>{ob}O{}m}{%
-    %#2{Etapa #3}%
-    \begin{tabular}{l@{\,}l@{\ }c@{\ }c@{\ }J{4mm}@{}J{10cm}}%
-    &{\larger\textbf{Etapa #3}}\\
-        \LstClass[\TabClassCompact]{#3}%
-%        & \textbf{Total} & \textbf{\arabic{gr at cred#1}} & \textbf{#1}\\%
-    \end{tabular}%
-}
-

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,128 +23,659 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-curr}
-\def\tc at tmp@altpackname{ufrgsccacurr}
-\def\tc at tmp@packdesc{UFRGS/CCA curricula commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12beta}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
 
-\newcounter{gr at credob}
-\newcounter{gr at credel}
-\newcounter{gr at credalt}
-\newcounter{gr at credad}
-\NewDocumentCommand{\gr at setcred}{}{\setcounter{gr at credob}{0}\setcounter{gr at credel}{0}\setcounter{gr at credalt}{0}}
-\NewDocumentCommand{\gr at addclasscred}{m}{\addtocounter{gr at cred\csname gr at class:#1.typ\endcsname}{\csname gr at class:#1.cred\endcsname}}
+\ProvidesExplPackage
+    {ufrgscca-curr}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA curricula commands}
 
-\let\@ex\expandafter
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-curr / pkg info}
+  {
+     name        .code:n = {ufrgscca-curr} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~ curricula~ commands}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
 
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
 
-\NewDocumentCommand\topicdef{O{black}mm}{
-    \expandafter\gdef\csname gr at topic:#2.txt\endcsname{#3}%
-    \expandafter\gdef\csname gr at topic:#2.color\endcsname{#1}%
-}
+\starray_new:n {topics}
+\starray_new:n {classes}
+\starray_new:n {curricula}
 
-\NewDocumentCommand\defaulttopic{m}{\xdef\gr at defaulttopic{#1}}
+\starray_def_from_keyval:nn {topics}
+  {
+    self  = ,
+    name = ,
+    color = ,
+    class lst = , %list (sequence) of classes
+  }
 
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
+\starray_def_from_keyval:nn {classes}
+  {
+   cred = ,
+   self = ,
+   name = ,
+   summary = ,
+   topic = ,
+   remark = ,
+   bib seq = ,
+   bib basic seq = ,
+   bib compl seq = ,
+   ref . struct = {
+     curr = ,
+     sem = ,
+     kind = ,
+   } ,
+  }
 
-\NewDocumentCommand\semdef{O{#3}D<>{#3}m}{%
-    \expandafter\gdef\csname gr at et:#3.idx\endcsname{x#3}%
-    \expandafter\gdef\csname gr at etidx:x#3.cod\endcsname{#2}%
-    \expandafter\gdef\csname gr at etidx:x#3.nam\endcsname{#3}%
-    \expandafter\gdef\csname gr at etidx:x#3.pos\endcsname{#1}%
-    \gdef\gr at sem{#3}%
-    \gdef\gr at semcod{#2}%
-}
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
+\starray_def_from_keyval:nn {curricula}
+  {
+    self = ,
+    name = ,
+    text = ,
+    sem.struct = {
+      pos = ,
+      self = ,
+      name = ,
+      class . struct = {
+        name = ,
+        kind = ,
+        obs = ,
+        pos = ,
+        color = ,
+        prereqset . struct = {
+          prereq . struct = {
+            starred = ,
+            name = ,
+            ang = ,
+          }
+        } ,
+      } ,
+    } ,
+  }
 
-\NewDocumentCommand\classdef{O{\gr at defaulttopic}D<>{}mmmmm}{%
-    \@ifundefined{gr at topic:#1.txt}%
-		    {\expandafter\gdef\csname gr at class:#3.topic\endcsname{\gr at defaulttopic}}%
-				{\expandafter\gdef\csname gr at class:#3.topic\endcsname{#1}}%
-    \expandafter\gdef\csname gr at class:#3.pos\endcsname{#2}%
-    \expandafter\gdef\csname gr at class:#3.cred\endcsname{#4}%
-    \expandafter\gdef\csname gr at class:#3.typ\endcsname{#5}%
-    \expandafter\gdef\csname gr at class:#3.nam\endcsname{#6}%
-    \expandafter\gdef\csname gr at class:#3.desc\endcsname{#7}%
-    \expandafter\xdef\csname gr at class:#3.et\endcsname{\gr at semcod}%
-    \gdef\gr at disc{#3}
-		\newcounter{gr at class:#3.bibcnt}
-		\newcounter{gr at class:#3.basiccnt}
-		\newcounter{gr at class:#3.compcnt}
-		\newcounter{gr at class:#3.dep}
-		\stepcounter{gr at class:#3.dep}
-    \ifcsundef{gr at et:\gr at sem}{\csgdef{gr at et:\gr at sem}{#3}}{\csgappto{gr at et:\gr at sem}{,#3}}
-    \ifcsundef{gr at topic:#1}{\csgdef{gr at topic:#1}{#3}}{\csgappto{gr at topic:#1}{,#3}}
-}
-\NewDocumentCommand{\setclass}{m}{\ifcsundef{gr at class:#1.et}{{\color{red} #1 undef\\}}{\gdef\gr at disc{#1}}}
+\NewDocumentCommand{\currdef}{mmm}
+  {
+    \starray_new_term:nn {curricula}{#1}
+    \starray_set_from_keyval:nn {curricula}
+      {
+        self = {#1} ,
+        name = {#2} ,
+        text = {#3} ,
+      }
+  }
 
-\NewDocumentCommand{\classremark}{m}{%
-   \expandafter\gdef\csname gr at class:\gr at disc.remark\endcsname{#1}%
-}
+\NewDocumentCommand{\semdef}{mmm}
+  {
+    \starray_new_term:nn {curricula.sem}{#1}
+    \starray_set_from_keyval:nn {curricula.sem}
+      {
+        self       = {#1} ,
+        name       = {#2} ,
+        pos        = {#3} ,
+      }
+  }
 
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
+\NewDocumentCommand{\addclass}{O{}D<>{}mmO{}}
+  {
+    \starray_new_term:nn {curricula.sem.class}{#3}
+    \starray_set_from_keyval:nn {curricula.sem.class}
+      {
+        color = {#1} ,
+        pos   = {#2} ,
+        name  = {#3} ,
+        kind  = {#4} ,
+        obs   = {#5} ,
+      }
+    \starray_new_term:nn {curricula.sem.class.prereqset}{}
+    \starray_set_iter_from_hash:nn {classes}{#3}
 
-\NewDocumentCommand\depdef{O{\csname gr at class:\gr at disc.topic\endcsname}D<>{}m}{%
-    \ifcsundef{gr at class:\gr at disc.dep\Alph{gr at class:\gr at disc.dep}}{\csgdef{gr at class:\gr at disc.dep\Alph{gr at class:\gr at disc.dep}}{#3}}{\csgappto{gr at class:\gr at disc.dep\Alph{gr at class:\gr at disc.dep}}{,#3}}
-    \expandafter\gdef\csname gr at class:\gr at disc.dep\Alph{gr at class:\gr at disc.dep}:#3.topic\endcsname{#1}%
-    \expandafter\gdef\csname gr at class:\gr at disc.dep\Alph{gr at class:\gr at disc.dep}:#3.pos\endcsname{#2}%
-}
+    \starray_new_term:nn {classes.ref}{}
+    \starray_get_prop:nnN {curricula}{self} \l_tmpa_tl
+    \starray_set_prop:nnV {classes.ref}{curr} \l_tmpa_tl
+    \starray_get_prop:nnN {curricula.sem}{self} \l_tmpa_tl
+    \starray_set_prop:nnV {classes.ref}{sem} \l_tmpa_tl
+    \starray_set_prop:nnn {classes.ref}{kind}{#4}
+  }
 
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
+\NewDocumentCommand{\depdef}{sD<>{}m}
+  {
+    \starray_new_term:nn {curricula.sem.class.prereqset.prereq}{#3}
+    \starray_set_from_keyval:nn {curricula.sem.class.prereqset.prereq}
+      {
+        starred = {#1} ,
+        name = {#3} ,
+        ang  = {#2}
+      }
+  }
 
-\NewDocumentCommand\bibdef{O{bib}m}{%
-		\stepcounter{gr at class:\gr at disc.#1cnt}%
-    \expandafter\gdef\csname gr at class:\gr at disc.#1\Alph{gr at class:\gr at disc.#1cnt}\endcsname{#2}%
-}
+\NewDocumentCommand{\altdep}{}
+  {
+    \starray_new_term:nn {curricula.sem.class.prereqset}{}
+  }
 
 
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
 
 
-\NewDocumentCommand\altdef{}{%
-	\stepcounter{gr at class:\gr at disc.dep}%
-}
+\NewDocumentCommand\topicdef{O{}mm}
+  {
+    \starray_new_term:nn {topics}{#2}
+    \starray_set_from_keyval:nn {topics}
+      {
+        self = {#2} ,
+        name = {#3} ,
+        color = {#1} ,
+      }
+%    \seq_clear:N \l_tmpa_seq
+    \starray_set_prop:nnV {topics}{class lst} \c_empty_seq
+  }
 
-%%%%%%%%%%%
-%%%%%%%%%%%
-%%%%%%%%%%%
+\tl_new:N \l__ufrgscca_default_topic_tl
+\NewDocumentCommand\defaulttopic{m}
+  { \tl_set:Ne \l__ufrgscca_default_topic_tl{#1} }
 
-\NewDocumentCommand\goo{m}{}
-\NewDocumentCommand\gooble{m}{}
 
-\NewDocumentCommand\LstDep{O{\goo}D<>{A}m}{%
-    \xdef\gr at disc{#3}%
-    \xdef\gr at depSeq{#2}%
-    \ifcsdef{gr at class:#3.dep#2}{\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr at class:#3.dep#2\endcsname}}{}
-}
+\NewDocumentCommand{\classdef}{O{\l__ufrgscca_default_topic_tl}mmm}
+  {
+    \starray_new_term:nn {classes}{#2}
+    \starray_set_from_keyval:nn {classes}
+      {
+        self = {#2} ,
+        cred = {#3} ,
+        name = {#4} ,
+        topic = {#1} ,
+      }
+%    \seq_clear:N \l_tmpa_seq
+    \starray_set_prop:nnV {classes}{bib seq} \c_empty_seq
+    \starray_set_prop:nnV {classes}{bib basic seq} \c_empty_seq
+    \starray_set_prop:nnV {classes}{bib compl seq} \c_empty_seq
 
-\NewDocumentCommand\LstClass{O{\gooble}m}{%
-\xdef\gr at sem{#2}%
-\gr at setcred%
-\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex\gr at addclasscred\@ex\@ex\@ex{\csname gr at et:#2\endcsname}%
-\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr at et:#2\endcsname}%
+    \starray_set_iter_from_hash:nn {topics}{#1}
+    \starray_get_prop:nnN {topics}{class lst} \l_tmpa_seq
+    \seq_put_right:Nn \l_tmpa_seq{#2}
+    \starray_set_prop:nnV {topics}{class lst} \l_tmpa_seq
+  }
+\NewDocumentCommand{\csummary}{m}
+  {
+    \starray_set_prop:nnn {classes}{summary}{#1}
+  }
+
+
+\NewDocumentCommand{\classremark}{m}
+  {
+    \starray_set_prop:nnn {classes}{remark}{#1}
+  }
+
+\NewDocumentCommand{\bibdef}{O{main}m}
+  {
+    \str_case:nnF {#1}
+      {
+        {main}
+          {
+            \starray_get_prop:nnN {classes}{bib seq} \l_tmpa_seq
+            \seq_put_right:Nn \l_tmpa_seq {#2}
+            \starray_set_prop:nnV {classes}{bib seq} \l_tmpa_seq
+          }
+        {basic}%{ \starray_get_prop:nnN {classes}{bib basic seq} \l_tmpa_seq }
+          {
+            \starray_get_prop:nnN {classes}{bib basic seq} \l_tmpa_seq
+            \seq_put_right:Nn \l_tmpa_seq {#2}
+            \starray_set_prop:nnV {classes}{bib basic seq} \l_tmpa_seq
+          }
+        {compl}%{ \starray_get_prop:nnN {classes}{bib compl seq} \l_tmpa_seq }
+          {
+            \starray_get_prop:nnN {classes}{bib compl seq} \l_tmpa_seq
+            \seq_put_right:Nn \l_tmpa_seq {#2}
+            \starray_set_prop:nnV {classes}{bib compl seq} \l_tmpa_seq
+          }
+      }
+      {
+        \starray_get_prop:nnN {classes}{bib seq} \l_tmpa_seq
+        \seq_put_right:Nn \l_tmpa_seq {#2}
+        \starray_set_prop:nnV {classes}{bib seq} \l_tmpa_seq
+      }
+  }
+
+\NewDocumentCommand{\classset}{m}
+  {
+    \starray_set_iter_from_hash:nn {classes}{#1}
+  }
+\let\setclass\classset
+
+%\NewDocumentCommand\xTabEtp{O{\notoc\section}m}{%
+
+\cs_generate_variant:Nn \starray_set_iter_from_hash:nn {ne}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%
+%%%
+%%%
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\tl_new:N \l__ufrgscca_tmp_class_tl
+\tl_new:N \l__ufrgscca_tmp_name_tl
+\tl_new:N \l__ufrgscca_tmp_obs_tl
+\tl_new:N \l__ufrgscca_tmp_kind_tl
+\tl_new:N \l__ufrgscca_tmp_cred_tl
+\tl_new:N \l__ufrgscca_tmp_topic_tl
+\tl_new:N \l__ufrgscca_tmp_color_tl
+\tl_new:N \l__ufrgscca_tmp_summary_tl
+\tl_new:N \l__ufrgscca_tmp_OR_tl
+\seq_new:N \l__ufrgscca_tmp_bib_seq
+\seq_new:N \l__ufrgscca_tmp_bibB_seq
+\seq_new:N \l__ufrgscca_tmp_prereq_seq
+\bool_new:N \l__ufrgscca_tmp_second_bool
+
+\NewDocumentCommand\TabEtp{sO{\notoc\section}mO{\footnotesize}}{%
+    \starray_set_iter_from_hash:nn {curricula.sem}{#3}
+    \bool_if:nTF {#1}
+      {
+        #4
+        \begin{tabular}{l@{\,}l@{\ }c@{\ }c@{\ }J{5mm}@{}J{10.2cm}}%
+        \starray_get_prop:nnN {curricula.sem}{name} \l__ufrgscca_tmp_name_tl
+        \use:e { & \exp_not:N \multicolumn{5}{J{11cm}}{\exp_not:N \textbf{\l__ufrgscca_tmp_name_tl}}}\\*
+      }
+      {
+        \starray_term_syntax:n {curricula.sem}
+        #2{\starray_parsed_get_prop:n {name}}
+        #4
+        \begin{longtable}{l@{\,}l@{\ }c@{\ }c@{\ }J{5mm}@{}J{10.2cm}}%
+      }
+
+    \starray_iterate_over:nn {curricula.sem.class}
+      {
+        \starray_get_prop:nnN {curricula.sem.class}{name} \l__ufrgscca_tmp_class_tl
+        \starray_get_prop:nnN {curricula.sem.class}{kind} \l__ufrgscca_tmp_kind_tl
+        \starray_get_prop:nnN {curricula.sem.class}{color} \l__ufrgscca_tmp_color_tl
+        \starray_set_iter_from_hash:ne {classes}{\l__ufrgscca_tmp_class_tl}
+        \starray_get_prop:nnN {classes}{name} \l__ufrgscca_tmp_name_tl
+        \starray_get_prop:nnN {classes}{cred} \l__ufrgscca_tmp_cred_tl
+        \tl_if_empty:NT \l__ufrgscca_tmp_color_tl
+          {
+            \tl_set:Nn \l__ufrgscca_tmp_color_tl {black}
+          }
+
+          %% class identification
+        \bool_if:NTF \l__ufrgscca_showind_bool
+          {
+            \use:e { & \l__ufrgscca_tmp_class_tl
+                     & \l__ufrgscca_tmp_cred_tl
+                     & \l__ufrgscca_tmp_kind_tl
+                     &  \exp_not:N \multicolumn{2}{J{10.5cm}}{\exp_not:N \textcolor{\l__ufrgscca_tmp_color_tl}{\l__ufrgscca_tmp_name_tl}}\\*
+                   }
+          }
+          {
+            \use:e { & \l__ufrgscca_tmp_class_tl
+                     & \l__ufrgscca_tmp_cred_tl
+                     & \l__ufrgscca_tmp_kind_tl
+                     &  \exp_not:N \multicolumn{2}{J{10.5cm}}{\l__ufrgscca_tmp_name_tl}\\*
+                   }
+          }
+
+          %% Pre-reqs
+        \bool_gset_false:N \l__ufrgscca_tmp_second_bool
+        \starray_iterate_over:nn {curricula.sem.class.prereqset}
+          {
+            \seq_gclear:N \l__ufrgscca_tmp_prereq_seq
+            \starray_iterate_over:nn {curricula.sem.class.prereqset.prereq}
+              {
+                \starray_get_prop:nnN {curricula.sem.class.prereqset.prereq}{name} \l_tmpa_tl
+                \seq_gput_right:Ne \l__ufrgscca_tmp_prereq_seq {\l_tmpa_tl}
+              }
+            \seq_if_empty:NF \l__ufrgscca_tmp_prereq_seq
+              {
+                \bool_if:NTF \l__ufrgscca_tmp_second_bool
+                  {
+                    &  &   &   & \multicolumn{2}{J{11cm}}{\smaller\makebox[10mm][l]{~\ ~OU}\seq_use:Nn  \l__ufrgscca_tmp_prereq_seq {~E~} }\\*
+                  }
+                  {
+                    &  &   &   & \multicolumn{2}{J{11cm}}{\smaller\makebox[10mm][l]{}\seq_use:Nn  \l__ufrgscca_tmp_prereq_seq {~E~} }\\*
+                    \bool_gset_true:N \l__ufrgscca_tmp_second_bool
+                  }
+              }
+          }
+        \starray_get_prop:nnN {curricula.sem.class}{obs} \l__ufrgscca_tmp_obs_tl
+        \tl_if_empty:NF \l__ufrgscca_tmp_obs_tl
+          {
+            \use:e { &  &  &  &  & {\exp_not:N \scriptsize{\exp_not:N \emph{\l__ufrgscca_tmp_obs_tl}}}\\* }
+          }
+        \bool_if:nF {#1}
+        {
+          %% Topic
+        \starray_get_prop:nnN {classes}{topic} \l__ufrgscca_tmp_topic_tl
+        \starray_set_iter_from_hash:ne {topics}{\l__ufrgscca_tmp_topic_tl}
+        \starray_get_prop:nnN {topics}{name} \l__ufrgscca_tmp_topic_tl
+        \starray_get_prop:nnN {topics}{color} \l__ufrgscca_tmp_color_tl
+        \tl_if_empty:NT \l__ufrgscca_tmp_color_tl
+          {
+            \tl_set:Nn \l__ufrgscca_tmp_color_tl {black}
+          }
+
+        \use:e { &  &  &   & \exp_not:N \multicolumn{2}{J{11cm}}{\exp_not:N \smaller \exp_not:N \scshape\exp_not:N \textcolor{\l__ufrgscca_tmp_color_tl}{\l__ufrgscca_tmp_topic_tl}}\\* }
+
+         %% class summary
+         &  &  &   & \multicolumn{2}{J{11cm}}{\smaller\scshape Súmula}\\*
+
+        \starray_get_prop:nnN {classes}{summary} \l__ufrgscca_tmp_summary_tl
+        \use:e   { &  &  &   &  & \exp_not:N \smaller \l__ufrgscca_tmp_summary_tl\\*}
+
+         %% bibliography I
+        \starray_get_prop:nnN {classes}{bib seq} \l__ufrgscca_tmp_bib_seq
+        \seq_gset_eq:NN \l__ufrgscca_tmp_bibB_seq \l__ufrgscca_tmp_bib_seq
+        \seq_if_empty:NF \l__ufrgscca_tmp_bibB_seq
+          {
+            &  &  &   & \multicolumn{2}{J{11cm}}{\smaller\scshape Bibliografia~ Básica~ Essencial}\\*
+            \seq_map_inline:Nn \l__ufrgscca_tmp_bibB_seq
+              {
+                &  &  &   &  &  \smaller\textopenbullet  ~\ ~  ##1\\
+              }
+          }
+
+         %% bibliography II
+        \starray_get_prop:nnN {classes}{bib basic seq} \l__ufrgscca_tmp_bib_seq
+        \seq_gset_eq:NN \l__ufrgscca_tmp_bibB_seq \l__ufrgscca_tmp_bib_seq
+        \seq_if_empty:NF \l__ufrgscca_tmp_bibB_seq
+          {
+            &  &  &   & \multicolumn{2}{J{11cm}}{\smaller\scshape Bibliografia~ Básica}\\*
+            \seq_map_inline:Nn \l__ufrgscca_tmp_bibB_seq
+              {
+                &  &  &   &  &  \smaller\textopenbullet  ~\ ~  ##1\\
+              }
+          }
+
+         %% bibliography III
+        \starray_get_prop:nnN {classes}{bib compl seq} \l__ufrgscca_tmp_bib_seq
+        \seq_gset_eq:NN \l__ufrgscca_tmp_bibB_seq \l__ufrgscca_tmp_bib_seq
+        \seq_if_empty:NF \l__ufrgscca_tmp_bibB_seq
+          {
+           &  &  &   & \multicolumn{2}{J{11cm}}{\smaller\scshape Bibliografia~ Complementar}\\*
+            \seq_map_inline:Nn \l__ufrgscca_tmp_bibB_seq
+              {
+                 &  &  &   &  &  \smaller\textopenbullet  ~\ ~  ##1\\
+              }
+          }
+          \\[-1.5mm]
+          }
+      }
+    \bool_if:nTF {#1}
+      {
+        \end{tabular}
+      }
+      {
+        \end{longtable}
+      }
 }
 
-\NewDocumentCommand\LstTopic{O{\goo}m}{%
-\xdef\gr at topic{#2}%
-\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr at topic:#2\endcsname}%
+
+\seq_new:N \l__ufrgscca_tmp_classlst_seq
+
+\NewDocumentCommand{\TabTopic}{m}
+  {
+    \starray_set_iter_from_hash:nnTF {topics}{#1}
+      {
+        \begin{tabular}{l@{\,}l@{\ -\ }J{11.5cm}}
+            \starray_get_prop:nnN {topics}{name} \l__ufrgscca_tmp_name_tl
+            \starray_get_prop:nnN {topics}{color} \l__ufrgscca_tmp_color_tl
+            \tl_if_empty:NF \l__ufrgscca_tmp_color_tl
+              {
+                \tl_set:Nn \l__ufrgscca_tmp_color_tl {black}
+              }
+            \use:e { & \exp_not:N \multicolumn{2}{J{11cm}}{\exp_not:N \textcolor{\l__ufrgscca_tmp_color_tl}{\exp_not:N \textbf{\l__ufrgscca_tmp_name_tl} }}}\\\hline
+            \starray_get_prop:nnN {topics}{class lst} \l__ufrgscca_tmp_classlst_seq
+            \seq_map_inline:Nn \l__ufrgscca_tmp_classlst_seq
+              {
+                \starray_set_iter_from_hash:nn {classes}{##1}
+                \starray_get_prop:nnN {classes}{name} \l__ufrgscca_tmp_name_tl
+                \use:e { & ##1 & \l__ufrgscca_tmp_name_tl\\}
+
+              }
+        \end{tabular}
+      }
+      {
+        \textbf{--Topic #1 non existant--}
+      }
+  }
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%
+%%%
+%%%
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\bool_new:N \l__ufrgscca_colors_topic_bool
+\bool_new:N \l__ufrgscca_colors_class_bool
+
+\keys_define:nn { ufrgscca / curr graph}
+  {
+  	deltaX        .usage:n              = general,
+    deltaX        .fp_set:N             = \l__ufrgscca_graph_deltaX_fp,
+  	deltaX        .value_required:n     = true,
+  	deltaX        .initial:n            = {4.2},
+
+  	deltaY        .usage:n              = general,
+    deltaY        .fp_set:N             = \l__ufrgscca_graph_deltaY_fp,
+  	deltaY        .value_required:n     = true,
+  	deltaY        .initial:n            = {2.1},
+
+  	clipminX          .usage:n              = general,
+    clipminX          .fp_set:N             = \l__ufrgscca_graph_clip_minX_fp,
+  	clipminX          .value_required:n     = true,
+  	clipminX          .initial:n            = {0},
+
+  	maxX          .usage:n              = general,
+    maxX          .fp_set:N             = \l__ufrgscca_graph_maxX_fp,
+  	maxX          .value_required:n     = true,
+  	maxX          .initial:n            = {11.5},
+
+  	clipminY          .usage:n              = general,
+    clipminY          .fp_set:N             = \l__ufrgscca_graph_clip_minY_fp,
+  	clipminY          .value_required:n     = true,
+  	clipminY          .initial:n            = {0},
+
+  	maxY          .usage:n              = general,
+    maxY          .fp_set:N             = \l__ufrgscca_graph_maxY_fp,
+  	maxY          .value_required:n     = true,
+  	maxY          .initial:n            = {-18.5},
+
+    graph~ title   .usage:n              = general,
+    graph~ title   .tl_set:N             = \l__ufrgscca_graph_title_tl,
+  	graph~ title   .value_required:n     = true,
+  	graph~ title   .initial:n            = {Graph Title},
+
+    default~ color .usage:n              = general,
+    default~ color .tl_set:N             = \l__ufrgscca_graph_default_color_tl,
+  	default~ color .value_required:n     = true,
+  	default~ color .initial:n            = {black},
+
+    colors         .usage:n              = general,
+    colors         .choice: ,
+    colors / none  .code:n               = {
+                                             \bool_set_false:N \l__ufrgscca_colors_topic_bool
+                                             \bool_set_false:N \l__ufrgscca_colors_class_bool
+                                           } ,
+    colors / topic .code:n               = {
+                                             \bool_set_true:N \l__ufrgscca_colors_topic_bool
+                                             \bool_set_false:N \l__ufrgscca_colors_class_bool
+                                           } ,
+    colors / class .code:n               = {
+                                             \bool_set_false:N \l__ufrgscca_colors_topic_bool
+                                             \bool_set_true:N \l__ufrgscca_colors_class_bool
+                                           } ,
+    colors / both .code:n                = {
+                                             \bool_set_true:N \l__ufrgscca_colors_topic_bool
+                                             \bool_set_true:N \l__ufrgscca_colors_class_bool
+                                           } ,
+    colors / unknown .code:n             = {
+                                             \bool_set_false:N \l__ufrgscca_colors_topic_bool
+                                             \bool_set_false:N \l__ufrgscca_colors_class_bool
+                                           } ,
+  }
+
+\keys_define:nn { ufrgscca / graph angles}
+  {
+  }
+
+\NewDocumentEnvironment{tikzGraphSem}{O{}}{%
+    \bool_set_false:N \l__ufrgscca_colors_topic_bool
+    \bool_set_false:N \l__ufrgscca_colors_class_bool
+
+    \keys_set:nn {ufrgscca / curr graph}{#1}
+    \fp_set:Nn \l__ufrgscca_graph_clip_maxX_fp {\l__ufrgscca_graph_maxX_fp * \l__ufrgscca_graph_deltaX_fp }
+    \fp_set:Nn \l__ufrgscca_graph_clip_maxY_fp {\l__ufrgscca_graph_maxY_fp * \l__ufrgscca_graph_deltaY_fp }
+    \begin{tikzpicture}[%
+        disc/.style={%
+          ellipse~ split, double, draw, line~ width=2pt,%
+          every~ text~ node part/.style={font=\small\bfseries},%
+          every~ lower~ node part/.style={font=\large\bfseries,color=blue}},%
+        dep/.style={->,dotted,line~ width=3pt}]%
+      \begin{scope}
+        \clip ( \fp_use:N \l__ufrgscca_graph_clip_minX_fp , \fp_use:N \l__ufrgscca_graph_clip_minY_fp )
+           -- ( \fp_use:N \l__ufrgscca_graph_clip_minX_fp , \fp_use:N \l__ufrgscca_graph_clip_maxY_fp )
+           -- ( \fp_use:N \l__ufrgscca_graph_clip_maxX_fp , \fp_use:N \l__ufrgscca_graph_clip_maxY_fp )
+           -- ( \fp_use:N \l__ufrgscca_graph_clip_maxX_fp , \fp_use:N \l__ufrgscca_graph_clip_minY_fp );
+         \filldraw[color=red]
+           ( \fp_eval:n {0.5*\l__ufrgscca_graph_clip_maxX_fp} , \fp_eval:n {-0.25*\l__ufrgscca_graph_deltaY_fp} ) node{\Huge\textbf{\l__ufrgscca_graph_title_tl}};%
+}{%
+      \end{scope}%
+    \end{tikzpicture}%
 }
 
+
+
+\fp_new:N \l__ufrgscca_tmp_posX_fp
+\bool_new:N \l__ufrgscca_tmp_starred_bool
+\tl_new:N \l__ufrgscca_tmp_prereq_name_tl
+\tl_new:N \l__ufrgscca_graph_color_tl
+
+\NewDocumentCommand{\GraphEtp}{m}
+  {
+    \starray_set_iter_from_hash:nn {curricula.sem}{#1}
+    \starray_get_prop:nnN {curricula.sem}{pos} \l__ufrgscca_tmp_pos_tl
+    \starray_get_prop:nnN {curricula.sem}{name} \l__ufrgscca_tmp_name_tl
+    \fp_set:Nn \l__ufrgscca_tmp_posX_fp {\l__ufrgscca_tmp_pos_tl * \l__ufrgscca_graph_deltaX_fp - 0.5*\l__ufrgscca_graph_deltaX_fp}
+    \draw
+      ( \fp_use:N \l__ufrgscca_tmp_posX_fp , \fp_eval:n {-\l__ufrgscca_graph_deltaY_fp} )
+      node[disc](#1) {\l__ufrgscca_tmp_name_tl };
+    \starray_iterate_over:nn {curricula.sem.class}
+      {
+        \starray_get_prop:nnN {curricula.sem.class}{pos} \l__ufrgscca_tmp_pos_tl
+        \starray_get_prop:nnN {curricula.sem.class}{name} \l__ufrgscca_tmp_name_tl
+        \starray_set_iter_from_hash:ne {classes}{\l__ufrgscca_tmp_name_tl}
+        \starray_get_prop:nnN {classes}{cred} \l__ufrgscca_tmp_cred_tl
+        \starray_get_prop:nnN {classes}{topic} \l__ufrgscca_tmp_topic_tl
+        \tl_set:Ne \l__ufrgscca_graph_color_tl {\l__ufrgscca_graph_default_color_tl}
+        \bool_if:NT \l__ufrgscca_colors_topic_bool
+          {
+            \starray_set_iter_from_hash:ne {topics}{\l__ufrgscca_tmp_topic_tl}
+            \starray_get_prop:nnN {topics}{color} \l__ufrgscca_tmp_color_tl
+            \tl_if_empty:NF \l__ufrgscca_tmp_color_tl
+              {
+                \tl_set:Ne \l__ufrgscca_graph_color_tl {\l__ufrgscca_tmp_color_tl}
+              }
+          }
+        \bool_if:NT \l__ufrgscca_colors_class_bool
+          {
+            \starray_get_prop:nnN {curricula.sem.class}{color} \l__ufrgscca_tmp_color_tl
+            \tl_if_empty:NF \l__ufrgscca_tmp_color_tl
+              {
+                \tl_set:Ne \l__ufrgscca_graph_color_tl {\l__ufrgscca_tmp_color_tl}
+              }
+          }
+
+        \draw
+          ( \fp_use:N \l__ufrgscca_tmp_posX_fp  , \fp_eval:n {\l__ufrgscca_tmp_pos_tl * \l__ufrgscca_graph_deltaY_fp - 1.25 * \l__ufrgscca_graph_deltaY_fp} )
+          node[disc,\l__ufrgscca_graph_color_tl](\l__ufrgscca_tmp_name_tl) {\l__ufrgscca_tmp_name_tl \nodepart{lower} \l__ufrgscca_tmp_cred_tl ~\ ~créd.};%
+        \starray_iterate_over:nn {curricula.sem.class.prereqset}
+          {
+            \starray_iterate_over:nn {curricula.sem.class.prereqset.prereq}
+              {
+                \starray_get_prop:nnN {curricula.sem.class.prereqset.prereq}{starred} \l__ufrgscca_tmp_starred_bool
+                \bool_if:NF \l__ufrgscca_tmp_starred_bool
+                  {
+                    \starray_get_prop:nnN {curricula.sem.class.prereqset.prereq}{name} \l__ufrgscca_tmp_prereq_name_tl
+                    \starray_get_prop:nnN {curricula.sem.class.prereqset.prereq}{ang} \l__ufrgscca_tmp_ang_tl
+                    \StrCut{\l__ufrgscca_tmp_ang_tl}{:}{\l__ufrgscca_partA_tl}{\l__ufrgscca_partB_tl}
+                    \tl_if_empty:NTF \l__ufrgscca_partB_tl
+                      {
+                        \str_case:NnF \l__ufrgscca_partA_tl
+                          {
+                            {A}   { \tl_set:Nn \l__ufrgscca_angOUT_tl {30}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180-30} }
+                            {B}   { \tl_set:Nn \l__ufrgscca_angOUT_tl {60}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180-60} }
+                            {C}   { \tl_set:Nn \l__ufrgscca_angOUT_tl {80}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180-80} }
+                            {-A}  { \tl_set:Nn \l__ufrgscca_angOUT_tl {-30}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180+30} }
+                            {-B}  { \tl_set:Nn \l__ufrgscca_angOUT_tl {-60}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180+60} }
+                            {-C}  { \tl_set:Nn \l__ufrgscca_angOUT_tl {-80}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180+80} }
+                            {A*}  { \tl_set:Nn \l__ufrgscca_angOUT_tl {30}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180+30} }
+                            {B*}  { \tl_set:Nn \l__ufrgscca_angOUT_tl {60}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180+60} }
+                            {C*}  { \tl_set:Nn \l__ufrgscca_angOUT_tl {80}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180+80} }
+                            {-A*} { \tl_set:Nn \l__ufrgscca_angOUT_tl {-30}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180-30} }
+                            {-B*} { \tl_set:Nn \l__ufrgscca_angOUT_tl {60}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180-60} }
+                            {-C*} { \tl_set:Nn \l__ufrgscca_angOUT_tl {80}
+                                    \tl_set:Nn \l__ufrgscca_angIN_tl {180-80} }
+                          }
+                          {
+                            \tl_set:Nn \l__ufrgscca_angOUT_tl {0}
+                            \tl_set:Nn \l__ufrgscca_angIN_tl {180}
+                          }%didn't match
+                      }
+                      {
+                        \tl_set:Nn \l__ufrgscca_angOUT_tl {\l__ufrgscca_partA_tl}
+                        \tl_set:Nn \l__ufrgscca_angIN_tl {180-\l__ufrgscca_partB_tl}
+                      }
+                    \path[dep,\l__ufrgscca_graph_color_tl] (\l__ufrgscca_tmp_prereq_name_tl)edge[out=\l__ufrgscca_angOUT_tl,in=\l__ufrgscca_angIN_tl] (\l__ufrgscca_tmp_name_tl);
+                  }
+              }
+          }
+
+      }
+
+  }
+

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-base.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-base.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-base.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,64 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-en-base}
-\def\tc at tmp@altpackname{ufrgsccaenbase}
-\def\tc at tmp@packdesc{UFRGS/CCA English base defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-%%%%%
-%%
-%% those are loaded, on the fly, when selecting, or switching, to english (\@namedef{captionsenglish} vis-à-viz \begin{otherlanguage}{})
-%%
-%%%%%
-
-%	\def\bibname{References}% deprecated by biber
-%	\def\refname{\bibname}
-	\def\abstractname{Abstract}%
-	\def\englishabstractname{Abstract}%
-	\def\contentsname{Contents}%
-	\def\listfigurename{List of Figures}%
-	\def\listtablename{List of Tables}%
-	\def\figurename{Figure}%
-	\def\tablename{Table}%
-	\def\byname{by}%
-	\def\keywordsname{Keywords}%
-
-	\def\listabbrvname{List of Abbreviations}%
-	\def\listsymbolname{List of Symbols}%
-
-	\def\listingname{Listing}
-  	\def\listlistingname{List of Listings}
-
-	\def\defappendixname{Appendix}%
-	\def\defappendixpagename{Appendices}%
-	\def\defannexname{Annex}%
-	\def\defannexpagename{Annexe}%
-	\def\sourcename{Source:}
-	\def\notename{Note}%%
-

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-coord.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-coord.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-coord.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,101 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-en-coord}
-\def\tc at tmp@altpackname{ufrgsccaencoord}
-\def\tc at tmp@packdesc{UFRGS/CCA English coord defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-
-\calendartitle{Calendário – \tcdef at coord@TCCperiod}
-
-\tcccalendarhead{Data/Período}{Semana Letiva}{Evento}
-\tcccalendarevent{01}{Apresentação da disciplina. Informações gerais. Reunião presencial com início às 18:30h, no Salão de Eventos do DELET.\newline {\bf Presença obrigatória.}}
-\tcccalendarevent{02}{Requerimento de matrícula. O(A) aluno(a) deve preencher o \emph{Formulário de Requerimento de Matrícula}, já com o resumo do trabalho, e encaminhá-lo ao setor de protocolos da UFRGS para abertura de processo. Posteriormente, o número do processo deve ser encaminhado por e-mail para \tccore@@ref{TCCcoord}{article} coordenador\tccore@@ref{TCCcoord}{narticle} da atividade. \newline{\bf Obs.~1}}
-%\tcccalendarevent{03}{Entrega do \emph{Formulário de Inscrição}, juntamente com o resumo do trabalho, no \tcdef at cover@secdivisionacronym .}
-\tcccalendarevent{09}{Encontro presencial: Como redigir um TCC, melhores práticas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}}
-\tcccalendarevent{09}{Entrega VIA MOODLE do \emph{Relatório Parcial}, juntamente com o \emph{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} assinado pelo orientador. \newline{\bf Obs.~2}}
-\tcccalendarevent{15}{Entrega de uma cópia impressa (ou eletrônica) do Trabalho de Conclusão a cada membro da banca, juntamente com os \emph{Formulários de Avaliação} e \emph{Formulários de correções} do trabalho. Entrega VIA MOODLE de uma cópia eletrônica do trabalho juntamente com o \emph{Formulário de Aprovação para Apresentação} e os recibos de recebimento assinados e datados pelos membros das bancas.}
-\tcccalendarevent{16}{Encontro presencial: Como apresentar um TCC, melhores técnicas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}}
-\tcccalendarevent{17}{Apresentações dos Trabalhos de Conclusão de Curso. \newline{\bf Obs.~3}}
-\tcccalendarevent{17}{Entrega VIA MOODLE dos \emph{Formulários de correções} dos membros da banca.}
-\tcccalendarevent{18}{Entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~4}}
-\tcccalendarevent{19}{Para os TCCs em RECUPERAÇÃO, entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~5}}
-
-
-\tcccalendardesc{\begin{description}
-\item[Obs. 1]: Caso o aluno(a) já tenha um processo aberto de TCC, reusar o mesmo apenas anexando o novo requerimento de matrícula, caso necessário.
-\item[Obs. 2]: O relatório deve conter as declarações de concordância em participar da banca da parte dos professores convidados.
-\item[Obs. 3]: As bancas serão marcadas após a entrega do relatório parcial, de acordo com a disponibilidade dos professores convidados.
-\item[Obs. 4]: O \emph{Formulário de Aprovação das Correções} deve estar assinado pelo(a) orientador(a). Para relatórios em que o campo “Revisarei o trabalho depois de corrigido” tiver sido assinalado por algum membro da banca, a assinatura do(a) mesmo(a) também deverá constar no \emph{Formulário de Aprovação das Correções}.
-\item[Obs. 5]: Trabalho em RECUPERAÇÃO é aquele cuja nota final quando da defesa é insuficiente para aprovação OU aquele em que o campo “Reescrever tudo” do formulário de correções foi marcado por algum membro da banca. Neste caso, o \emph{Formulário de Aprovação das Correções} deve estar assinado tanto pelo(a) orientador(a) como pelo(s) membro(s) da banca designado(s) para reavaliar o trabalho, incluindo obrigatoriamente aqueles que tiverem marcado o campo “Revisarei o trabalho depois de corrigido”.\\\hrule
-\item[IMPORTANTE]: O(A) aluno(a) estará {\bf REPROVADO(A)} \emph{se falhar na entrega de qualquer um dos documentos aqui citados dentro dos prazos estipulados}.
-\end{description}}
-
-
-\studentlistformtitle{Lista de presença, \tcdef at coord@studentlistactivity, dia \tcdef at coord@studentlistdate}
-\studentlistactivity{apresentação da atividade de TCC}
-\studentlistdate{\number\day/\number\month}
-
-\tccreporttitle{Relatório parcial/final}
-\tccreportopening{Para registro}
-\tccreportdesc{Relatório parcial/final referente aos alunos matriculados na atividade de ensino de \tcdef at forms@formstitle\  semestre \tcdef at coord@TCCperiod .}
-
-\tccreportabsents{Desistentes com conceito (segundo semestre)}
-\tccreportdismiss{Desistentes sem conceito (primeiro semestre)}
-\tccreferralopening{Ao\\ \tcdef at cover@secretaryacronym\ da \tcdef at cover@universitydivision}
-
-\referralfailed{{REPROVAD\tccore@@ref{student}{Article}}}
-\referralapproved{{APROVAD\tccore@@ref{student}{Article}}}
-
-\referralexamapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\  no dia  \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef at coord@referralapproved\ com conceito final \tc at TCCgradeC .}
-
-\referralexamfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\  no dia  \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article}  pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef at coord@referralfailed\ com conceito final \tc at TCCgradeD .}
-
-\referralfatetext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\  no dia \tccore@@ref{student}{date}, tendo sido \tccoord at referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc at studentcount}}}, conforme quadro de notas abaixo. }
-
-\referralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o concluiu o trabalho de conclus\~{a}o de Curso tendo sido \tcdef at coord@referralfailed\  com conceito final \textbf{FF}.}
-
-\boardlabel{Banca Examinadora}
-\boardstitle{Apresentações TCC em \tcdef at cover@course\ \tcdef at coord@TCCperiod\ \tcdef at coord@boardstitleB\ }
-\boardsworklabel{Título}
-\TCCgradesNlabel{Nota}
-\TCCgradesClabel{Conceito}
-\TCCgrades{A}{B}{C}{D}{FF}
-\TCCgradesN{9}{7.5}{6}
-
-\cocertificatetitle{CERTIFICADO}
-\cocertificateopenning{\`{A} quem interessar possa,\\ certificamos que}
-\cocertificatetext{atuou como co-orientador\tccore@@ref{coadvisor}{narticle} d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article}\ \emph{\tccore@@ref{student}{}}\ no trabalho de conclus\~{a}o de curso intitulado \emph{\tccore@@ref{student}{title}}\ no semestre \tcdef at coord@TCCperiod.}
-
-\TCCcoordtitle{Coordenador\tccore@@ref{TCCcoord}{narticle} da atividade de ensino de\\ \tcdef at forms@formstitle\ }
-
-
-
-\advisornamegen{Orientador(a)}
-\advisornameplural{Orientadores}

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-core.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-core.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-core.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,68 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-en-core}
-\def\tc at tmp@altpackname{ufrgsccaencore}
-\def\tc at tmp@packdesc{UFRGS/CCA English core defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-
-\location{Porto~Alegre}{RS}
-
-\university{Federal University of Rio Grande do Sul}
-\universityacronym{UFRGS}
-\universitydivision{Engineering School}
-\divisiongradcouncil{\tcdef at cover@universitydivision Undergraduate Council}
-
-\secretaryacronym{SACAD}
-\secdivisionacronym{\tcdef at cover@secretaryacronym/EE}
-\graduationtitle{Control and Automation Engineering}
-\course{Control and Automation Engineering}
-\courseacronym{CCA}
-\coursecoord{current course coordinator}
-\coursecoordtitle{Course Coordinator}
-\advisorname{Advisor}%
-\coadvisorname{Coadvisor}%
-\examinername{Exam Committee}%
-
-\reportspecificinfo{%
-	Graduation Project presented to COMGRAD-\tcdef at cover@courseacronym\ of \tcdef at cover@university\
-		in partial fulfillment of the requirements for the
-		degree of \emph{\tcdef at cover@graduationtitle }.
-}%
-
-\approvalspecificinfo{%
-		This Project was considered adequate for obtaining the
-		credits of the course TCC (Diplom Project) of \emph{\tcdef at cover@course }
-		and approved in its final form by the Advisor and the Examination Committee.
-}%
-
-\profname{Professor}
-\coprofname{Professor}
-
-

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-forms.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-forms.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-en-forms.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,183 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-en-forms}
-\def\tc at tmp@altpackname{ufrgsccaenforms}
-\def\tc at tmp@packdesc{UFRGS/CCA English forms defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-
-%%%%%%
-%%%%%%
-%%%%%% forms
-%%%%%%
-%%%%%%
-%%%%%%
-
-\formlocal{\tc at city,\hspace{4mm} de \hspace{1.2cm} de 20\hspace{4mm}.}
-
-\formssignaturelabel{Assinatura}
-\examinersignature{Assinatura\ \ d\tccore@@ref{examiner}{article}\ \ Avaliador\tccore@@ref{examiner}{narticle}}
-\boardsignature{Assinatura\ \ do\ \ Membro\ \ da\ \ Banca}
-\advisorsignature{Assinatura\ \ d\tccore@@ref{advisor}{article}\ \ Orientador\tccore@@ref{advisor}{narticle}}
-\coadvisorsignature{Assinatura\ \ d\tccore@@ref{coadvisor}{article}\ \ Co-orientador\tccore@@ref{coadvisor}{narticle}}
-\studentsignature{Assinatura\ \ d\tccore@@ref{student}{article}\ \ Alun\tccore@@ref{student}{article}}
-\studentsignaturegen{Assinatura\ \ do(a)\ \ Aluno(a)}
-\formsstudentlabel{Alun\tccore@@ref{student}{article}}
-\formsstudentlabelgen{Aluno(a)}
-\formproflabel{Professor(a)}
-\profname{Professor\tccore@@ref{advisor}{narticle}}
-\coprofname{Professor\tccore@@ref{coadvisor}{narticle}}
-\formsboardlabel{Membro da Banca}
-\formsadvisorlabel{Orientador\tccore@@ref{advisor}{narticle}}
-\formsadvisorlabelgen{Orientador(a)}
-\formscoadvisorlabel{Co-orientador\tccore@@ref{advisor}{narticle}}
-\formsexaminerlabel{Avaliador\tccore@@ref{examiner}{narticle}}
-\formsaltexaminerlabel{Suplente}
-\formstimelabel{Horário}
-
-
-%\formstopicAlabel{Conteúdo}
-%\formstopicBlabel{Trabalho Escrito}
-%\formstopicClabel{Apresentação}
-\formsworktitlelabel{Título do Trabalho}
-\formstemptitlelabel{Título Provisório}
-\formsstudentIDlabel{Cartão}
-\formsemaillabel{e-mail}
-\formsphonelabel{ramal}
-\agreelabel{De Acordo}
-
-\continuelabel{Continua...}
-
-\formsdatelabel{Data}
-\formstitle{Trabalho de Conclusão de Curso em \tcdef at cover@course}
-\formsfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho.}
-
-
-
-\renewreqformtitle{Formulário de Renovação da Inscrição na Atividade de Ensino Trabalho de Conclusão em \tcdef at cover@course}
-
-\renewreqformnotes{O resumo deve ser curto, i.e., não deve exceder este espaço. O texto deve ser escrito em parágrafo único, e por se tratar de proposta, poderá utilizar tempo futuro e não necessita ter motivação ou justificativa.\\
-Deve conter:
-\begin{enumerate*}[alpha)]
-\item O QUE será feito - descrição e objetivos.
-\item COMO será feito - metodologia.
-\item Resultados esperados.
-\end{enumerate*}
-}
-
-\reqformtitle{Formul\'{a}rio de Requerimento de Matr\'{i}cula}
-\reqformopening{Ilm\tccore@@ref{coursecoord}{article}. Sr\tccore@@ref{coursecoord}{narticle}.\par
-Coordenador\tccore@@ref{coursecoord}{narticle} da  Comissão de Graduação do Curso em \tcdef at cover@course  {da \tcdef at cover@universityacronym\ }}
-%\reqformopening{algo}
-
-\reqformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc at studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} neste período letivo no curso \emph{\tcdef at cover@course\ }, desta universidade, portador\tccore@@ref{student}{narticle} do cartão de identificação n$^o$ \tc at studentAID\ vem por meio desta solicitar matrícula na atividade de ensino de \tcdef at forms@formstitle}
-
-\coadvisorformtitle{Requerimento de Autorização de Co-Orientação}
-\coadvisorformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc at studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} na atividade de TCC neste período letivo, vem por meio desta solicitar autorização para registro de co-orientador de TCC, conforme justificativa abaixo.}
-
-\formsbrieflabel{Resumo}
-
-\formsstudentemaillabel{Email d\tccore@@ref{student}{article} Alun\tccore@@ref{student}{article}}
-
-\formsadvisoremaillabel{Email d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}
-
-\formsreasonlabel{Justificativa}
-
-
-\examformtitle{Formul\'{a}rio de Avalia\c{c}\~{a}o}
-
-\examformdesc{A nota (variando de zero a dez) atribuída por cada membro da banca examinadora será dada considerando o desempenho d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} nos 3 pontos apresentados na tabela abaixo.}
-
-\examformnoteslabel{Observações}
-
-\examformnotes{\ \\Posteriormente, \tccore@@ref{TCCcoord}{article} professor\tccore@@ref{TCCcoord}{narticle} coordenador\tccore@@ref{TCCcoord}{narticle} calculará a nota final atribuída por cada membro da banca examinadora, de acordo com a seguinte ponderação:\\[2mm] {\bf Nota Final Banca = \tc at TCCpointAweight\ x \tc at TCCpointAlabel\  + \tc at TCCpointBweight\ x \tc at TCCpointBlabel\  + \tc at TCCpointCweight\ x \tc at TCCpointClabel\ } \\[2mm] A média final da atividade será dada pela média das notas finais (calculadas com a expressão acima) atribuidas por cada um dos membros da banca examinadora.}
-
-\examboardformtitle{Formulário de Aprovação do Relatório Parcial e Banca Examinadora}
-
-\examboardformdesc{Aprovo o Relatório Parcial e nominata da Banca Examinadora acima relacionada.}
-
-\formsboardtitle{Banca Examinadora}
-
-\advisorapprovalformtitle{Formulário de Aprovação para Apresentação}
-
-\advisorapprovalformdesc{{\bf Parecer d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}\footnote{Preenchimento Obrigatório}}
-
-\advisorapprovalformdescB{Aprovo a versão final do trabalho submetido pel\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} e considero \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} para apresentação.}
-
-\rectifyapprovalformtitle{Formulário de Aprovação das Correções}
-
-\rectifyapprovalformdesc{\begin{description}
-\item[Observação 1:] A nota final será a já atribuída pela Banca Examinadora no momento da Defesa. Caso a versão final corrigida do trabalho mais este formulário não sejam entregues até a data estipulada, o conceito do aluno passará a ser {\bf D}.
-\item[Observação 2:] A assinatura d\tccore@@ref{advisor}{article} orientador\tccore@@ref{advisor}{narticle} é obrigatória, entretanto a assinatura dos membros da banca só é necessária caso o(a) mesmo(a) tenha marcado a opção "$\Box$ Revisarei o trabalho depois de corrigido" no \emph{Formulário de Correções}.
-\end{description}}
-
-\receiptformtitle{Recibo de entrega de cópia da versão final do Trabalho de Conclusão}
-
-\receiptformfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar ao \tcdef at cover@secretaryacronym .}
-
-\receiptformdesc{Declaro que encontra-se em minha posse cópia da versão final do Trabalho de Conclusão de Curso em \tcdef at cover@course\  d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} }
-
-
-\reviewformtitle{Formulário de Correções}
-\reviewformdesc{Correções: \parbox[t]{.8\textwidth}{
-\begin{description}[tcc,noitemsep]
-\item[$\Box$] Nenhuma
-\item[$\Box$] Ortográfica
-\item[$\Box$] Regras de Escrita
-\item[$\Box$] Equações
-\item[$\Box$] Resumo
-\item[$\Box$] Abstract
-\item[$\Box$] Índice
-\item[$\Box$] Introdução
-\item[$\Box$] Conclusões
-\item[$\Box$] Corpo do Trabalho
-\item[$\Box$] Resultados
-\item[$\Box$] Adicionar mais exemplos
-\item[$\Box$] Figuras
-\item[$\Box$] Tabelas
-\item[$\Box$] {\bf Reescrever tudo}\footnotemark[2]
-\item[$\Box$] Outras: \\
-\begin{tabular}{p{0.7\textwidth}}
-~\\\hline
-~\\\hline
-~\\\hline
-~\\\hline
-\end{tabular}\\[-1mm]
-\item[$\Box$] {\bf Revisarei o trabalho depois de corrigido}%\footnotemark[2]
-\end{description}}
-}
-
-\reviewformfootnoteB{Neste caso \tccore@@ref{student}{article} alun\tccore@@ref{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}
-
-\reviewformfootnote{\tcdef at forms@formsfootnote\ Após a apresentação, retornar este à coordenação do TCC.}
-
-\formsrectifyOKdesc{Correções satisfatórias: \hspace*{1cm}$\Box$\ sim\hspace*{2cm}$\Box$\ não}
-
-\TCCpointsweight{0.35}{0.35}{0.3}
-\TCCpointslabel{Conteúdo}{Trab. Escrito}{Apresentação}

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,716 +23,225 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-forms}
-\def\tc at tmp@altpackname{ufrgsccaforms}
-\def\tc at tmp@packdesc{UFRGS/CCA forms commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
+
+\ProvidesExplPackage
+    {ufrgscca-forms}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA forms commands}
+   
+    
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-forms / pkg info}
+  {
+     name        .code:n = {ufrgscca-forms} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~ forms~commands}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
+    
+    
+    
+    
+\RequirePackage{starray}
 \RequirePackage{amsfonts}
 
 
-%% local for tc at formsigdate {ufrgscca-forms}
+\cs_generate_variant:Nn \tl_gset:Nn {Ne}
 
-\cmdfactory<forms>{formssignaturelabel,examinersignature,boardsignature,advisorsignature,coadvisorsignature}
-\cmdfactory<forms>{studentsignature,studentsignaturegen}%
-\cmdfactory<forms>{formsstudentlabel,formsstudentlabelgen,formproflabel}%
-\cmdfactory<forms>{formsboardlabel,formsadvisorlabel,formsadvisorlabelgen}%
-\cmdfactory<forms>{formscoadvisorlabel,formsexaminerlabel,formsaltexaminerlabel}
-\cmdfactory<forms>{formstimelabel,formsworktitlelabel,formstemptitlelabel}
-\cmdfactory<forms>{formsstudentIDlabel,formsemaillabel,formsphonelabel}
-\cmdfactory<forms>{agreelabel,continuelabel}
-\cmdfactory<forms>{formsdatelabel,formstitle,formstitleTR,formsfootnote}
-\cmdfactory<forms>{renewreqformtitle,renewreqformnotes,reqformtitle,reqformopening,reqformdesc}%
-\cmdfactory<forms>{reqformdescTR}%
-\cmdfactory<forms>{coadvisorformtitle,coadvisorformdesc}
-\cmdfactory<forms>{formsbrieflabel,formsstudentemaillabel,formsadvisoremaillabel,formscoadvisoremaillabel}
-\cmdfactory<forms>{formsreasonlabel}
-\cmdfactory<forms>{examformtitle,examformdesc,examformnoteslabel}
-\cmdfactory<forms>{examformnotes,examboardformtitle,examboardformdesc}%
-\cmdfactory<forms>{examboardformtitleTMP,examboardformdescTMP}%
-\cmdfactory<forms>{formsboardtitle,advisorapprovalformtitle,advisorapprovalformdesc,advisorapprovalformdescB}
-\cmdfactory<forms>{rectifyapprovalformtitle,rectifyapprovalformdesc}%
-\cmdfactory<forms>{rectifyapprovalTRformdesc}%
-\cmdfactory<forms>{receiptformtitle,receiptformfootnote,receiptformdesc}%
-\cmdfactory<forms>{reviewformtitle,reviewformdesc,reviewformfootnoteB,reviewformfootnote}
-\cmdfactory<forms>{formsTRtitle,TRformfootnote}
-\cmdfactory<forms>{TRboardformtitle,TRformfootnote}
-\cmdfactory<forms>{reqArgument}
+\DeclareKeys[forms]{
+  internreqform.usage = general,
+  internreqform.code = {
+        \MakeForm{internshiprequest}
+        },
+  internsupervisorform.usage = general,
+  internsupervisorform.code = {
+        \MakeForm{internshipsupervisorform}
+        },
+  interntutorform.usage = general,
+  interntutorform.code = {
+        \MakeForm{internshiptutorform}
+        },
+  reqform-I.usage = general,
+  reqform-I.code = {
+        \MakeForm{request-I}
+        },
+  reqform-II.usage = general,
+  reqform-II.code = {
+        \MakeForm{request-II}
+        },
+  coadvisor-I.usage = general,
+  coadvisor-I.code = {
+        \MakeForm{coadvisor-I}
+        },
+  coadvisor-II.usage = general,
+  coadvisor-II.code = {
+        \MakeForm{coadvisor-II}
+        },
+  boardapproval-I.usage = general,
+  boardapproval-I.code = {
+        \MakeForm{boardapproval-I}
+        },
+  boardapproval-II.usage = general,
+  boardapproval-II.code = {
+        \MakeForm{boardapproval-II}
+        },
+  advisorsapproval-I.usage = general,
+  advisorsapproval-I.code = {
+        \MakeForm{advisorsapproval-I}
+        },
+  advisorsapproval-II.usage = general,
+  advisorsapproval-II.code = {
+        \MakeForm{advisorsapproval-II}
+        },
+  receipts-I.usage = general,
+  receipts-I.code = {
+        \MakeForm{receipts-II}
+        },
+  receipts-II.usage = general,
+  receipts-II.code = {
+        \MakeForm{receipts-II}
+        },
+  examinersforms-I.usage = general,
+  examinersforms-I.code = {
+        \SetReviewer{2}
+        \MakeForm{examinersform-I}
+        \SetReviewer{3}
+        \MakeForm{examinersform-I}
+        },
+  examinersforms-II.usage = general,
+  examinersforms-II.code = {
+        \SetReviewer{1}
+        \MakeForm{receipts-II}
+        \MakeForm{examinersform-II}
+        \MakeForm{correctionsform-II}
+        \SetReviewer{2}
+        \MakeForm{receipts-II}
+        \MakeForm{examinersform-II}
+        \MakeForm{correctionsform-II}
+        \SetReviewer{3}
+        \MakeForm{receipts-II}
+        \MakeForm{examinersform-II}
+        \MakeForm{correctionsform-II}
+        },
+  rectifyapproval-I.usage = general,
+  rectifyapproval-I.code = {
+        \MakeForm{rectifyapproval-I}
+        },
+  rectifyapproval-II.usage = general,
+  rectifyapproval-II.code = {
+        \MakeForm{rectifyapproval-II}
+        },
+}
 
-\cmdfactory<forms>{formsrectifyOKdesc}
 
-\cmdfactory<forms>{reqformdescgen}
-\cmdfactory<forms>{formsinternshiptitle,reqforminternshipdesc,internshipreqformnotes}
-\cmdfactory<forms>{formstutorlabel,formstutoremaillabel}
-\cmdfactory<forms>{formssupervisorlabel,formssupervisoremaillabel}
-\cmdfactory<forms>{formsinternshipstartlabel,formsinternshipendlabel,formsinternshiplengthlabel,formsinternshipregisterlabel}
-\cmdfactory<forms>{reqforminternshipinfo}
-\cmdfactory<forms>{supervisorsignature,tutorsignature,internshipcoordsignature}
-\cmdfactory<forms>{formssupervisorlabel}
-\cmdfactory<forms>{supervisorformtitle}
-\cmdfactory<forms>{tutorformtitle}
-\cmdfactory<forms>{internshipstudentinfo,internshipsupervisorinfo,internshiptutorinfo,internshipcompanyinfo,internshipperiod}
-\cmdfactory<forms>{internshipcoordinfo}
+\NewDocumentCommand{\tcforms}{m}{%
+  \SetKeys[forms]{#1}%
+}
 
-\cmdfactory<forms>{internsupervisorgradesform,internsupervisornote,internsupervisorcomments}
-\cmdfactory<forms>{internshiptutorcomments,internshipcoordcomments}
-\cmdfactory<forms>{interntutorgrade,interncoordgrade}
 
-\NewDocumentCommand{\TCCpointsweight}{mmm}{%
-  \gdef\tc at TCCpointAweight{#1}%
-  \gdef\tc at TCCpointBweight{#2}%
-  \gdef\tc at TCCpointCweight{#3}%
-}%
+\NewDocumentCommand{\tcemptyforms}{m}
+  {
+    \__ufrgscca_emptyfields:
+    \SetKeys[forms]{#1}%
+  }
 
-\NewDocumentCommand{\TCCpointslabel}{mmm}{%
-  \gdef\tc at TCCpointAlabel{#1}%
-  \gdef\tc at TCCpointBlabel{#2}%
-  \gdef\tc at TCCpointClabel{#3}%
-}%
-%
-\NewDocumentCommand{\TCCIpointsweight}{mmmm}{%
-  \gdef\tc at TCCIpointAweight{#1}%
-  \gdef\tc at TCCIpointBweight{#2}%
-  \gdef\tc at TCCIpointCweight{#3}%
-  \gdef\tc at TCCIpointDweight{#4}%
-%%  \gdef\tc at TCCIpointscale{#5}%
-}%
 
-\NewDocumentCommand{\TCCIpointslabel}{mmmm}{%
-  \gdef\tc at TCCIpointAlabel{#1}%
-  \gdef\tc at TCCIpointBlabel{#2}%
-  \gdef\tc at TCCIpointClabel{#3}%
-  \gdef\tc at TCCIpointDlabel{#4}%
-}%
 
+\int_new:N \l__ufrgscca_a_int
+\int_new:N \l__ufrgscca_b_int
+\NewDocumentCommand{\BlankLines}{m}{
+  \int_zero:N \l__ufrgscca_a_int
+  \int_set:Nn \l__ufrgscca_b_int {#1}
+  \int_do_until:nNnn {\l__ufrgscca_a_int} {=} {\l__ufrgscca_b_int}
+    {
+      \int_incr:N \l__ufrgscca_a_int
+      \hrulefill\\\par%
 
-
-
-\iftcif at english%
-\input{ufrgscca-en-forms.def}%
-\else%
-\input{ufrgscca-ptBR-forms.def}%
-\fi%
-
-\input{ufrgscca-formsTR.sty}
-\input{ufrgscca-formsintern.sty}
-
-
-
-
-
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% Examiners forms%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at examinersForms}{}{%
-  \tccore at examiners{examinerA}%
-  \tcforms at examinersform{examinerA}%
-  \tcforms at reviewform{examinerA}%
-  \tccore at examiners{examinerB}%
-  \tcforms at examinersform{examinerB}%
-  \tcforms at reviewform{examinerB}%
-  \tccore at examiners{examinerC}%
-  \tcforms at examinersform{examinerC}%
-  \tcforms at reviewform{examinerC}%
-  \tccore at examiners{altexaminerA}%
-  \tcforms at examinersform{altexaminerA}%
-  \tcforms at reviewform{altexaminerA}%
-}%
-%
-\NewDocumentCommand{\tcforms at examinerforms}{m}{%
-  \tcforms at examinersform{#1}%
-  \tcforms at reviewform{#1}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% Board receipt forms%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at receiptforms}{}{%
-  \tcforms at receiptform{examinerA}%
-  \tcforms at receiptform{examinerB}%
-  \tcforms at receiptform{examinerC}%
-  \tcforms at receiptform{altexaminerA}%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% Aux commands%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at formsigdate}{m}{%%
-  \begin{flushright} \tcdef at core@formlocal %
-    ~\vspace*{6mm}\\%
-%
-    $\overline{#1}$%%
-  \end{flushright}%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% examiners description (for Board approval forms)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at examinerdesc}{O{\tcdef at forms@formsexaminerlabel}mm}{%%
- \tccore at examiners{#3}%
- \@ifundefined{tc@#2@#3}{--}{#1: {\bf \csname tc@#2@#3\endcsname}%
-
- \hfill \tcdef at forms@formsemaillabel: {\bf \csname tc@#2@#3email\endcsname}  ~\tcdef at forms@formsphonelabel: {\bf \csname tc@#2@#3phone\endcsname} ~\tcdef at forms@agreelabel: \rule{\tc at agreerule}{.1pt}\\}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC description (for many forms)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\NewDocumentCommand{\tcforms at tccdesc}{}{%%
-%  \noindent\tcdef at forms@formsstudentlabel : {\bf \tc at studentA} \hfill \tcdef at forms@formsstudentIDlabel : {\bf \tc at studentAID}%
-%
-%  \noindent\tcdef at forms@formsworktitlelabel : {\bf \@title}\\[-4mm]%
-%
-%  \noindent\tcdef at forms@formsadvisorlabel : {\bf \tc at studentA@advisor}\\%
-%}%
-%
-\NewDocumentCommand{\tcforms at tccdesc}{}{%%
-  \tcforms at studentIDheader
-  
-  \tcforms at advisorIDheader
-}%
-
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC (new) generic form %
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% parameters:
-% #1 : footnote for 'form title'
-% #2 : form 'heading title' (TCC I, for instance)
-% #3 : 'form title'
-% #4 : form oppening
-% #5 : form body
-% #6 : form closing
-%
-\NewDocumentCommand{\tcforms at genform}{O{}mmmmm}{%
-  \tc at formtopbox[tcdef at forms@formsfootnote]{\tcdef at forms@formstitle}{\tcdef at forms@examformtitle}%
-%
-  \vfill%
-   #4
-  \vfill%
-  #5
-  \vfill%
-  #6
-  \pagebreak
+    }
 }
 
-
-\NewDocumentCommand{\tcforms at studentIDheader}{}{
-  \noindent\tcdef at forms@formsstudentlabel : {\bf \csname tc at student\Alph{tc at studentcount}\endcsname}\hfill \tcdef at forms@formsstudentIDlabel : {\bf \tc at studentAID}\\%
-  \noindent\tcdef at forms@formsworktitlelabel : \@ifundefined{tc at student\Alph{tc at studentcount}title}{\textsl{\@title}}{\textsl{\csname tc at student\Alph{tc at studentcount}title\endcsname}}\\
+\NewDocumentCommand{\SetForm}{mm+m}{
+  \prop_put:Nnn \l__ufrgscca_forms_prop {#1.#2}{#3}
 }
 
-\NewDocumentCommand{\tcforms at examinerIDheader}{m}{
-  %\tccore at examiners{#1}
-  \noindent\tcdef at forms@formsexaminerlabel :  \textbf{\csname tc at student\Alph{tc at studentcount}@#1\endcsname}%
-}
-
-\NewDocumentCommand{\tcforms at advisorIDheader}{}{
-  \noindent\tcdef at forms@formsadvisorlabel :  \textbf{\csname tc at student\Alph{tc at studentcount}@advisor\endcsname}%
-}
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC examiner form (grades)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at examinersform}{m}{%
-  \tc at formtopbox[tcdef at forms@formsfootnote]{\tcdef at forms@formstitle}{\tcdef at forms@examformtitle}%
-%
-  \vfill%
-%  \tcdef at forms@formsstudentlabel : {\bf \csname tc at student\Alph{tc at studentcount}\endcsname}\\%
-%  \tcdef at forms@formsexaminerlabel :  \csname tc at student\Alph{tc at studentcount}@#1\endcsname%
-  \tcforms at studentIDheader
-  
-  \tcforms at examinerIDheader{#1}
-  \vfill%
-  \tcdef at forms@examformdesc%
-
-  \vfill%
-
+\NewDocumentCommand{\MakeForm}{m} {
   \begin{center}
-    \begin{tabular}{|c|c|c|}%
-      \hline%
-      \tc at TCCpointAlabel & \tc at TCCpointBlabel & \tc at TCCpointClabel \\\hline%
-      & & \\\hline
-    \end{tabular}%
-  \end{center}%
-
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@examinersignature}%
-  \vfill%
-  \begin{description}
-    \item[\tcdef at forms@examformnoteslabel:] \tcdef at forms@examformnotes
-  \end{description}%
-
-  \vfill%
-  \pagebreak%
-}%
+    \noindent
+    \parbox[t]{\textwidth}
+      {
+        \centering
+          {
+            \UseTerm{cover.topbase}\\
+			{\sc \prop_item:Nn \l__ufrgscca_forms_prop {#1.heading}}
+          }
+      }\\[7mm]
+    {\bf \prop_item:Nn \l__ufrgscca_forms_prop {#1.title}}
+    \prop_if_in:NnTF \l__ufrgscca_forms_prop {#1.footnote}
+      {\footnote[1]{\prop_item:Nn \l__ufrgscca_forms_prop {#1.footnote}}}
+      {}\\
+  \end{center}
 %
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC examiners reviewer form (corrections)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at reviewform}{m}{%
-  \tc at formtopbox[tcdef at forms@reviewformfootnote]{\tcdef at forms@formstitle}{\tcdef at forms@reviewformtitle}%
-
-  \vfill%
-%  \tcdef at forms@formsstudentlabel : {\bf \expandafter\csname tc at student\Alph{tc at studentcount}\endcsname}\\%
-%  \tcdef at forms@formsexaminerlabel : \expandafter\csname tc at student\Alph{tc at studentcount}@#1\endcsname%
-  \tcforms at studentIDheader
-  
-  \tcforms at examinerIDheader{#1}
-  \vfill%
-  \resizebox{0.9\textwidth}{!}{%%
-    \tcdef at forms@reviewformdesc%
-  }%
-  \footnotetext[2]{\tcdef at forms@reviewformfootnoteB}%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@examinersignature}%
-  \vfill%
-  \pagebreak%
-}%
-%
-
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC requirement form (TCC register)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at reqform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at forms@reqformtitle}%
-
-  \vfill%
-
-  \tcdef at forms@reqformopening%
-  \vfill%
-
-  \tcdef at forms@reqformdesc%
-  \vfill%
-
-  \tcdef at forms@formstemptitlelabel : \@title %
-
-  \tcdef at forms@formsstudentemaillabel : {\bf \tc at studentAemail} %
-
-  \tcdef at forms@formsadvisorlabel : \tc at studentA@advisor%
-
-  \tcdef at forms@formsadvisoremaillabel : {\bf \tc at studentA@advisoremail}%
-  \hfill \tcdef at forms@formsphonelabel : {\bf \tc at studentA@advisorphone}%
-
-
-  \@ifundefined{tc at studentA@coadvisor}{%
-    \tcdef at forms@formscoadvisorlabel : \rule{\tc at namerule}{.1pt}%
-  
-    \tcdef at forms@formscoadvisoremaillabel : {\bf \rule{\tc at emailrule}{.1pt}}%
-    \hfill \tcdef at forms@formsphonelabel : {\bf \rule{\tc at phonerule}{.1pt}}%
-	}
-  {
-    \tcdef at forms@formscoadvisorlabel : \tc at studentA@coadvisor%
-  
-    \tcdef at forms@formscoadvisoremaillabel : {\bf \tc at studentA@coadvisoremail}%
-    \hfill \tcdef at forms@formsphonelabel : {\bf \tc at studentA@coadvisorphone}%
-  }%
-
-  %{\bf \tcdef at forms@formsbrieflabel}:\footnote[1]{\tcdef at forms@renewreqformnotes}%
-
-  \vfill%
-  \tcdef at forms@reqArgument
-  
-
-  \tcdef at core@tccArgument%
-
   \vfill
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@studentsignature}}\hfill%
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@advisorsignature}}%
-  \pagebreak%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC co-advisor requirement form (TCC register)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at coadvisorform}{}{%
-  \@ifundefined{tc at studentA@coadvisor}{%
-    \coadvisor{\rule{\tc at namerule}{.1pt}}{}%
-    \coadvisorinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-    }{}%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at forms@coadvisorformtitle}%
+   \prop_item:Nn \l__ufrgscca_forms_prop {#1.opening}
+  \vfill
+  \prop_item:Nn \l__ufrgscca_forms_prop {#1.body}
+  \vfill
+  \prop_item:Nn \l__ufrgscca_forms_prop {#1.closing}
+  \pagebreak
+  }
 
-  \vfill%
 
-  \tcdef at forms@reqformopening%
-  \vfill%
-
-  \tcdef at forms@coadvisorformdesc%
-  \vfill%
-
-  \tcdef at forms@formstemptitlelabel : \@title %
-
-  \tcdef at forms@formsadvisorlabel: \tc at studentA@advisor
-
-  \tcdef at forms@formscoadvisorlabel: \tc at studentA@coadvisor%
-
-  \tcdef at forms@formscoadvisoremaillabel : {\bf \tc at studentA@coadvisoremail}%
-  \hfill \tcdef at forms@formsphonelabel : {\bf \tc at studentA@coadvisorphone}%
-
-
-  \vfill%
-  {\bf \tcdef at forms@formsreasonlabel}:%
-
-  \tcdef at core@tcccoadvisorbrief%    !!!! What a Hell ?!?!?!
-
-  \tcforms at formsigdate{\tcdef at forms@studentsignature}%
-
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@advisorsignature}}\hfill%
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@coadvisorsignature}}%
-  \pagebreak%
-}%
+\NewDocumentCommand{\SignatureDate}{m}{
+  \begin{flushright} \UseTerm{localdate}%
+    ~\vspace*{6mm}\\
 %
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC renew requirement form (TCC register)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at renewreqform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at forms@renewreqformtitle}%
+    $\overline{\text{\emph{#1}}}$
+  \end{flushright}
+}
 
-  \vfill%
-  \tcforms at tccdesc%
+\NewDocumentCommand{\BoardDescSignature}{mm}{
+  #1:~ \textbf{\DataFields{#2}{name}}\vspace{-2ex}
+    \begin{flushright}%~ \hfill
+    \UseLabel{email}:~ \textbf{\DataFields{#2}{email}}~ 
+    \UseLabel{phone}:~ \textbf{\DataFields{#2}{phone}}~
+    \UseLabel{agree}:~ \rule{\l__ufrgscca_agree_rule_dim}{.1pt}
+    \end{flushright}
+}
 
-  \tcdef at forms@formsstudentemaillabel : {\bf \tc at studentAemail} %
 
-  \hfill \tcdef at forms@formsadvisoremaillabel : {\bf \tc at studentA@advisoremail}%
+%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%  loading defaults
+%%%
+%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%
+\ExplSyntaxOff
+  \input{ufrgscca-forms.tex}
+\ExplSyntaxOn  
 
-  \hfill \tcdef at forms@formsphonelabel : {\bf \tc at studentA@advisorphone}%
-  \vfill%
-  {\bf \tcdef at forms@formsbrieflabel}:\footnote[1]{\tcdef at forms@renewreqformnotes}%
-
-  \tcdef at core@tccbrief%
-  \vfill%
-  \tcforms at formsigdate{\tcdef at forms@studentsignature}%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@advisorsignature}%
-  \vfill%
-  \pagebreak%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Board approval form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at examboardform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at forms@examboardformtitle}%
-
-  \vfill%
-
-  \tcforms at tccdesc%
-
-  \vfill%
-  \begin{center}
-    \tcdef at forms@formsboardtitle
-  \end{center}%
-
-  \tcforms at examinerdesc{studentA}{examinerA}%
-
-  \tcforms at examinerdesc{studentA}{examinerB}%
-
-  \tcforms at examinerdesc{studentA}{examinerC}%
-
-  \tcforms at examinerdesc[\tcdef at forms@formsaltexaminerlabel]{studentA}{altexaminerA}%
-
-  \vfill%
-
-  \tcdef at forms@examboardformdesc%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@advisorsignature}%
-  \vfill%
-
-  \pagebreak%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Board approval form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at examboardformTMP}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at forms@examboardformtitleTMP}%
-
-  \vfill%
-
-  \tcforms at tccdesc%
-
-  \vfill%
-  \begin{center}
-    \tcdef at forms@formsboardtitle
-  \end{center}%
-
-  \tcforms at examinerdesc{studentA}{examinerA}%
-
-  \tcforms at examinerdesc{studentA}{examinerB}%
-
-  \tcforms at examinerdesc{studentA}{examinerC}%
-
-  \tcforms at examinerdesc[\tcdef at forms@formsaltexaminerlabel]{studentA}{altexaminerA}%
-
-  \vfill%
-
-  \tcdef at forms@examboardformdescTMP%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@advisorsignature}%
-  \vfill%
-
-  \pagebreak%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Board receipts form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at receiptform}{m}{%
-  \tc at formtopbox[tcdef at forms@receiptformfootnote]{\tcdef at forms@formstitle}{\tcdef at forms@receiptformtitle}%
-
-  \vfill%
-
-  \tcforms at tccdesc\\%
-
-  \noindent\tcdef at forms@formsboardlabel : {\bf \csname tc at student\Alph{tc at studentcount}@#1\endcsname }%
-
-  \vfill%
-  \tcdef at forms@receiptformdesc {\bf \tc at studentA},\ \ \ \tcdef at forms@formsstudentIDlabel : {\bf \tc at studentAID}.%
-
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@boardsignature}%
-  \vfill%
-  \pagebreak%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% examiners approval/not signature (for rectify approval form)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at approvalsigdate}{mm}{%%
-  \tcdef at forms@formsrectifyOKdesc%
-  \hfill\tcdef at forms@formsdatelabel:\rule{\tc at daterule}{.1pt}\\[3mm]%
-  #1: #2 \hfill  \tcdef at forms@formssignaturelabel:\rule{\tc at namerule}{.1pt}%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Board rectify approval form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at rectifyexaminersig}{O{\tcdef at forms@formsexaminerlabel}m}{\@ifundefined{#2}{}{\tcforms at approvalsigdate{#1}{\csname #2\endcsname}}\\[3mm]}%
-%
-\NewDocumentCommand{\tcforms at rectifyapprovalform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at forms@rectifyapprovalformtitle}%
-
-  \vfill%
-
-  \tcforms at tccdesc%
-
-  \vfill%
-  \tcdef at forms@rectifyapprovalformdesc%
-
-  \vfill%
-
-  \tcforms at rectifyexaminersig[\tcdef at forms@formsadvisorlabel]{tc at studentA@advisor}%
-
-  \vfill%
-
-  \@ifundefined{tc at nBoard}{}{%
-    \tcforms at rectifyexaminersig{tc at studentA@examinerA}%
-  }%
-
-  \tcforms at rectifyexaminersig{tc at studentA@examinerB}%
-
-  \tcforms at rectifyexaminersig{tc at studentA@examinerC}%
-
-  \tcforms at rectifyexaminersig{tc at studentA@altexaminerA}%
-  \vfill%
-  \pagebreak%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Advisor approval form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at advisorapprovalform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitle}{\tcdef at forms@advisorapprovalformtitle}%
-
-  \vfill%
-
-  \tcforms at tccdesc%
-
-  \vfill%
-  \tcdef at forms@advisorapprovalformdesc%
-
-  \vfill%
-
-  \tcdef at core@tccadvisorsreview%
-
-  \vfill%
-  \tcdef at forms@advisorapprovalformdescB%
-
-  \tcforms at formsigdate{\tcdef at forms@advisorsignature}%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@studentsignature}%
-  \vfill%
-  \pagebreak%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%
-%
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% set of blank lines%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\cmdfactory<core>{formsblanklines,formsblanklinesB}
-\formsblanklines{\hrulefill\\%
-
-\hrulefill\\%
-
-\hrulefill\\%
-
-\hrulefill\\%
-
-\hrulefill\\%
-
-\hrulefill\\%
-
-\hrulefill%
-}%
-%
-\formsblanklinesB{\hrulefill\\%
-
-    \hrulefill\\%
-
-    \hrulefill\\%
-
-    \hrulefill\\%
-
-    \hrulefill\\%
-}%
-%
-
-
-\DeclareKeys[forms]{
-  internreqform.usage = general,
-  internreqform.code = {\tcforms at internreqform},
-  internsupervisorform.usage = general,
-  internsupervisorform.code = {\tcforms at internsupervisorform},
-  interntutorform.usage = general,
-  interntutorform.code = {\tcforms at interntutorform},
-  reqform.usage = general,
-  reqform.code = {\tcforms at reqform},
-  reqform-II.usage = general,
-  reqform-II.code = {\tcforms at reqform},
-  coadvisor.usage = general,
-  coadvisor.code = {\tcforms at coadvisorform},
-  coadvisor-II.usage = general,
-  coadvisor-II.code = {\tcforms at coadvisorform},
-  boardapproval.usage = general,
-  boardapproval.code = {\tcforms at examboardform},
-  boardapproval-II.usage = general,
-  boardapproval-II.code = {\tcforms at examboardform},
-  boardapproval-IIb.usage = general,
-  boardapproval-IIb.code = {\tcforms at examboardformTMP},
-  advisorsapproval.usage = general,
-  advisorsapproval.code = {\tcforms at advisorapprovalform},
-  advisorsapproval-II.usage = general,
-  advisorsapproval-II.code = {\tcforms at advisorapprovalform},
-  receipts.usage = general,
-  receipts.code = {\tcforms at receiptforms},
-  receipts-II.usage = general,
-  receipts-II.code = {\tcforms at receiptforms},
-  examinersforms.usage = general,
-  examinersforms.code = {\tcforms at examinersForms},
-  examinersforms-II.usage = general,
-  examinersforms-II.code = {\tcforms at examinersForms},
-  rectifyapproval.usage = general,
-  rectifyapproval.code = {\tcforms at rectifyapprovalform},
-  rectifyapproval-II.usage = general,
-  rectifyapproval-II.code = {\tcforms at rectifyapprovalform},
-  reqform-I.usage = general,
-  reqform-I.code = {\tcforms at reqTRform},
-  coadvisor-I.usage = general,
-  coadvisor-I.code = {\tcforms at coadvisorTRform},
-  examinersforms-I.usage = general,
-  examinersforms-I.code = {\tcforms at examinersTRforms},
-  advisorsapproval-I.usage = general,
-  advisorsapproval-I.code = {\tcforms at advisorTRapprovalform},
-  boardapproval-I.usage = general,
-  boardapproval-I.code = {\tcforms at advisorTRboardform},
-  rectifyapproval-I.usage = general,
-  rectifyapproval-I.code = {\tcforms at rectifyTRapprovalform},
-  }
-
-
-\NewDocumentCommand{\tcforms}{m}{%
-  \SetKeys[forms]{#1}%
-}
-
-\NewDocumentCommand{\tcemptyforms}{m}{%
-  \tccore at resetfields%
-  \title{\rule{\tc at namerule}{.1pt}}%
-  \tccore at emptyfields%
-  \SetKeys[forms]{#1}%
-}

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsTR.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsTR.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsTR.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,313 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-
-%
-\NewDocumentCommand{\tcforms at examinersTRforms}{}{%
-  \tccore at examiners{examinerB}%
-  \tcforms at reviewTRform{examinerB}%
-  \tccore at examiners{examinerC}%
-  \tcforms at reviewTRform{examinerC}%
-}%
-%
-
-
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC examiner form (grades)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at examinersTRform}{m}{%
-  \tc at formtopbox[tcdef at forms@formsfootnote]{\tcdef at forms@formstitleTR}{\tcdef at forms@examformtitle}%
-%
-  \vfill%
-  \tcdef at forms@formsstudentlabel : {\bf \csname tc at student\Alph{tc at studentcount}\endcsname}\\%
-  \tcdef at forms@formsexaminerlabel :  \csname tc at student\Alph{tc at studentcount}@#1\endcsname%
-  \vfill%
-  \tcdef at forms@examformdesc%
-
-  \vfill%
-
-  \begin{center}
-    \begin{tabular}{|c|c|c|}%
-      \hline%
-      \tc at TCCpointAlabel & \tc at TCCpointBlabel & \tc at TCCpointClabel \\\hline%
-      & & \\\hline
-    \end{tabular}%
-  \end{center}%
-
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@examinersignature}%
-  \vfill%
-  \begin{description}
-    \item[\tcdef at forms@examformnoteslabel:] \tcdef at forms@examformnotes
-  \end{description}%
-
-  \vfill%
-  \pagebreak%
-}%
-%
-
-%\def\emptybox{\framebox[3em]{\color{white}W}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC I reviewer form (corrections)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at reviewTRform}{m}{%
-  \tc at formtopbox[tcdef at forms@TRformfootnote]{\tcdef at forms@formstitleTR}{\tcdef at forms@formsTRtitle}%
-
-  \vfill%
-  \tcdef at forms@formsstudentlabel : {\bf \expandafter\csname tc at student\Alph{tc at studentcount}\endcsname}\\[-4mm]%
-  
-  \tcdef at forms@formsworktitlelabel : {\bf \@title}\\%
-  
-  \tcdef at forms@formsexaminerlabel : \expandafter\csname tc at student\Alph{tc at studentcount}@#1\endcsname\\[-4mm]%
-  
-  {\scriptsize {\textsl{(favor retornar este diretamente à coordenação de TCC.)}}}
-  \vfill%
-%  \resizebox{0.9\textwidth}{!}{%%
-   O trabalho submetido\footnotemark[2]:
-
-     \begin{enumerate}[tcc,nosep]
-     \item \emptybox\  \textbf{Enquadramento do Tema}. {\footnotesize(peso:2)}\\ {\footnotesize Quão bem o mesmo se enquadra no perfil de um formando em Eng. de Controle e Automação.}
-     \item \emptybox\ \textbf{Revisão Bibliográfica}. {\footnotesize(peso:2)}\\ {\footnotesize A revisão apresentada é adequada, suficiente, para o tema do trabalho?}
-     \item \emptybox\ \textbf{Abordagem/Plano de Trabalho Proposto}. {\footnotesize(peso:2)}\\ {\footnotesize Considerar se a abordagem, plano de trabalho proposto, é adequada e factivel.}
-     \item \emptybox\ \textbf{Redação}. {\footnotesize(peso:1)}\\ {\footnotesize     Considerar a qualidade do trabalho escrito apresentado.}
-     \item { O Trabalho Submetido}
-     \begin{itemize}[tcc,nosep]
-       \item[$\Box$] Está adequado, dispensando correções do texto.
-       \item[$\Box$] Está adequado, sendo necessário correções, conforme anotações anexas.
-       \item[$\Box$] Necessita ser revisto/re-escrito,\footnotemark[3] e: 
-       \begin{itemize}
-         \item[$\Box$] basta a revisão final do texto pelo orientador,
-         \item[$\Box$] revisarei o trabalho depois de corrigido.
-       \end{itemize}
-     \end{itemize} 
-   \end{enumerate}
-   
-Outras considerações, parecer (se necessário): \\
-
-	\begin{tabular}{p{0.9\textwidth}}
-	~\\\hline
-	~\\\hline
-	~\\\hline
-	~\\\hline
-  ~\\\hline
-	~\\\hline
-	\end{tabular}\\[-1mm]
- % }%
-  \footnotetext[2]{Use a escala 0-10: \begin{enumerate*}\item[0.] Péssimo  \item[3.] Deficitário \item[6.] Bom \item[8.] Muito Bom \item[10.] Excelente \end{enumerate*}}
-  \footnotetext[3]{\tcdef at forms@reviewformfootnoteB}%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@examinersignature}%
-  \vfill%
-  \pagebreak%
-}%
-%
-% TODO: THIS ONE, as the reference for 'work submission a board approaval'
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Board approval form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC Advisor approval form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at advisorTRapprovalform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitleTR}{Formulário de Aprovação para Avaliação}%
-
-  \vfill%
-
-  \tcforms at tccdesc%
-
-  \vfill%
-  \tcdef at forms@advisorapprovalformdesc%
-
-  \vfill%
-
-  \tcdef at core@tccadvisorsreview%
-
-  \vfill%
-  %Aprovo a versão final do trabalho submetido pel\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} e 
-  %considero \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} para avaliação pela Banca Examinadora.%
-
-  \tcforms at formsigdate{\tcdef at forms@advisorsignature}%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@studentsignature}%
-  \vfill%
-  \pagebreak%
-}%
-%
-\NewDocumentCommand{\tcforms at advisorTRboardform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitleTR}{Formulário de Aprovação de Banca Examinadora}%
-
-  \vfill%
-
-  \tcforms at tccdesc%
-
-  \vfill%
-  \begin{center}
-    \tcdef at forms@formsboardtitle
-  \end{center}%
-
-  \tcforms at examinerdesc{studentA}{examinerB}%
-
-  \tcforms at examinerdesc{studentA}{examinerC}%
-
-
-  \vfill%
-
-  Aprovo a Banca Examinadora acima relacionada.%
-  \vfill%
-
-  \tcforms at formsigdate{\tcdef at forms@advisorsignature}%
-  \vfill%
-
-  \pagebreak%
-}%
-%
-
-
-
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC requirement form (TCC register)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at reqTRform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitleTR}{\tcdef at forms@reqformtitle}%
-
-  \vfill%
-
-  \tcdef at forms@reqformopening%
-  \vfill%
-
-  \tcdef at forms@reqformdescTR%
-  \vfill%
-
-  \tcdef at forms@formstemptitlelabel : \@title %
-
-  \tcdef at forms@formsstudentemaillabel : {\bf \tc at studentAemail} %
-
-  \tcdef at forms@formsadvisorlabel : \tc at studentA@advisor%
-
-  \tcdef at forms@formsadvisoremaillabel : {\bf \tc at studentA@advisoremail}%
-  \hfill \tcdef at forms@formsphonelabel : {\bf \tc at studentA@advisorphone}%
-  
-
-  {\bf \tcdef at forms@formsbrieflabel}:\footnote[1]{\tcdef at forms@renewreqformnotes}%
-
-  \vfill%
-  \tcdef at core@tccbrief%
-
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@studentsignature}}\hfill%
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@advisorsignature}}%
-  \pagebreak%
-}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% TCC co-advisor requirement form (TCC register)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at coadvisorTRform}{}{%
-  \@ifundefined{tc at studentA@coadvisor}{%
-    \coadvisor{\rule{\tc at namerule}{.1pt}}{}%
-    \coadvisorinfo{}{\rule{\tc at titlerule}{.1pt}}{\rule{\tc at emailrule}{.1pt}}{\rule{\tc at phonerule}{.1pt}}%
-    }{}%
-  \tc at formtopbox{\tcdef at forms@formstitleTR}{\tcdef at forms@coadvisorformtitle}%
-
-  \vfill%
-
-  \tcdef at forms@reqformopening%
-  \vfill%
-
-  \tcdef at forms@coadvisorformdesc%
-  \vfill%
-
-  \tcdef at forms@formstemptitlelabel : \@title %
-
-  \tcdef at forms@formsadvisorlabel: \tc at studentA@advisor
-
-  \tcdef at forms@formscoadvisorlabel: \tc at studentA@coadvisor%
-
-  \tcdef at forms@formscoadvisoremaillabel : {\bf \tc at studentA@coadvisoremail}%
-  \hfill \tcdef at forms@formsphonelabel : {\bf \tc at studentA@coadvisorphone}%
-
-
-  \vfill%
-  {\bf \tcdef at forms@formsreasonlabel}:%
-
-  \tcdef at core@tcccoadvisorbrief%    !!!! What a Hell ?!?!?!
-
-  \tcforms at formsigdate{\tcdef at forms@studentsignature}%
-
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@advisorsignature}}\hfill%
-  \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@coadvisorsignature}}%
-  \pagebreak%
-}%
-%
-%
-
-
-\NewDocumentCommand{\tcforms at rectifyTRapprovalform}{}{%
-  \tc at formtopbox{\tcdef at forms@formstitleTR}{\tcdef at forms@rectifyapprovalformtitle}%
-
-  \vfill%
-
-  \tcforms at tccdesc%
-
-  \vfill%
-  \tcdef at forms@rectifyapprovalTRformdesc%
-
-  \vfill%
-
-  \tcforms at rectifyexaminersig[\tcdef at forms@formsadvisorlabel]{tc at studentA@advisor}%
-
-  \vfill%
-
-  \@ifundefined{tc at nBoard}{}{%
-    \tcforms at rectifyexaminersig{tc at studentA@examinerA}%
-  }%
-
-  \tcforms at rectifyexaminersig{tc at studentA@examinerB}%
-
-  \tcforms at rectifyexaminersig{tc at studentA@examinerC}%
-  \vfill%
-  \pagebreak%
-}%
-%
-%
-%

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsintern.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsintern.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-formsintern.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,148 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% Internship requirement form%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at internreqform}{}{%
-    \tc at formtopbox[tcdef at forms@internshipreqformnotes]{\tcdef at forms@formsinternshiptitle}{\tcdef at forms@reqformtitle}%
-
-    \vfill%
-
-    \tcdef at forms@reqformopening%
-    \vfill%
-
-    \tcdef at forms@reqforminternshipdesc%
-    \vfill%
-
-    \tcdef at forms@reqforminternshipinfo%
-
-
- %   {\bf \tcdef at forms@formsbrieflabel}:%\footnote[1]{\tcdef at forms@renewreqformnotes}%
-
-    \vfill%
-%    \tcdef at core@tccbrief%
-
-    \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@supervisorsignature}}\hfill%
-    \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@tutorsignature}}%
-
-    \hfill%
-    \parbox[t]{.45\textwidth}{\tcforms at formsigdate{\tcdef at forms@studentsignature}}%
-    \pagebreak%
-}%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% Internship Supervisor's form (grades)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at internsupervisorform}{}{%
-    \tc at formtopbox[tcdef at forms@internsupervisornote]{\tcdef at forms@formsinternshiptitle}{\tcdef at forms@supervisorformtitle}%
-    %
-    \vfill%
-    \tcdef at forms@internshipstudentinfo\\%
-    \tcdef at forms@internshipsupervisorinfo\\%
-    \tcdef at forms@internshipperiod
-    \vfill%
-    \tcdef at forms@internsupervisorgradesform%
-
-    \vfill%
-
-    \tcdef at forms@internsupervisorcomments \tcdef at core@formsblanklinesB
-
-   \vfill%
-
-    \tcforms at formsigdate{\tcdef at forms@supervisorsignature}%
-
-    \pagebreak%
-}%
-%
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% Internship tutor's form (grades)%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NewDocumentCommand{\tcforms at interntutorform}{}{%
-    \tc at formtopbox{\tcdef at forms@formsinternshiptitle}{\tcdef at forms@tutorformtitle}%
-    %
-    \vfill%
-    \tcdef at forms@internshipstudentinfo\\%
-    \tcdef at forms@internshiptutorinfo\\%
-    \tcdef at forms@internshipperiod
-    \vfill%
-    \tcdef at forms@interntutorgrade%
-
-    \vfill%
-
-    \tcdef at forms@internshiptutorcomments \tcdef at core@formsblanklinesB
-
-    \vfill%
-
-    \tcforms at formsigdate{\tcdef at forms@tutorsignature}%
- %   \hline
-    \vfill%
-
-    \tcdef at forms@interncoordgrade%
-    \vfill
-
-    \tcdef at forms@internshipcoordcomments \tcdef at core@formsblanklinesB
-    \vfill%
-
-    \tcforms at formsigdate{\tcdef at forms@internshipcoordsignature}%
-
-    \pagebreak%
-}%
-%
-%
-%
-\newcounter{tc at supervisorgradecount}[tc at studentcount]%
-\NewDocumentCommand{\internshipsupervisorgrades}{mmmmm}{%%
-    \stepcounter{tc at supervisorgradecount}%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@supervisorpoint\Alph{tc at supervisorgradecount}A\endcsname{#1}%%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@supervisorpoint\Alph{tc at supervisorgradecount}B\endcsname{#2}%%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@supervisorpoint\Alph{tc at supervisorgradecount}C\endcsname{#3}%%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@supervisorpoint\Alph{tc at supervisorgradecount}D\endcsname{#4}%%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@supervisorpoint\Alph{tc at supervisorgradecount}E\endcsname{#5}%%
-    \ifthenelse{\equal{#1}{}}{%%
-        \expandafter\def\csname tc at student\Alph{tc at studentcount}@supervisorgrade\Alph{tc at supervisorgradecount}\endcsname{0}%
-    }{%%
-        \expandafter\edef\csname tc at student\Alph{tc at studentcount}@supervisorgrade\Alph{tc at supervisorgradecount}\endcsname{\fpeval{ #1 + #2 +  #3 + #4 + #5} }%
-    }%
-}%
-
-\NewDocumentCommand{\internshiptutorgrades}{m}{%%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@tutorgrade\endcsname{#1}%%
-}%
-\NewDocumentCommand{\internshipcoordgrades}{m}{%%
-    \expandafter\def\csname tc at student\Alph{tc at studentcount}@internshipcoordgrade\endcsname{#1}%%
-}%
-

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-gen.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-gen.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-gen.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,120 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-gen}
-\def\tc at tmp@altpackname{ufrgsccagen}
-\def\tc at tmp@packdesc{UFRGS/CCA generic/miscellany commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
-
-\def\tcgen at fam{tcdef}
-\def\tcgen at factgrp{gen}%
-%
-
-\DeclareKeys[ufrgscca-gen]{
-    family.usage = load,
-	family.store = \tcgen at fam,
-
-    group.usage = load,
-	group.store = \tcgen at factgrp,
-}
-\ProcessKeyOptions[ufrgscca-gen]\relax
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-% \tcgen at cdef[fam]{#1}{#2} => \gdef\<fam>@#1{#2}%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-\NewDocumentCommand{\tcgen at cdef}{O{\tcgen at fam}D<>{\tcgen at factgrp} m +m}{%
-    \expandafter\gdef\csname #1@#2@#3\endcsname{#4}%
-}%
-%
-\NewDocumentCommand{\factory}{O{\tcgen at fam}D<>{\tcgen at factgrp}m}{%
-				\expandafter\long\expandafter\xdef\csname #3\endcsname##1{\noexpand\tcgen at cdef[#1]<#2>{#3}{##1}}%
-				%\csname #3\endcsname{-default-}
-				\expandafter\def\csname #3.fam\endcsname{#1}%
-				\@ifundefined{#3undef}{}{\expandafter\gdef\csname tc at factdup@#3\endcsname{}}
-         \expandafter\def\csname #3undef\endcsname{\expandafter\let\csname #1@#2@#3\endcsname\undefined}%
-}%
-\NewDocumentCommand{\cmdfactory}{O{\tcgen at fam}D<>{\tcgen at factgrp}m}{%
-		\forcsvlist{\factory[#1]<#2>}{#3}%
-		\ifcsundef{tc at factgrplist@#2}{%
-		    \ifcsundef{tc at factgrplist}{\csgdef{tc at factgrplist}{#2}}{\csgappto{tc at factgrplist}{,#2}}%
-		    \csgdef{tc at factgrplist@#2}{#3}%
-		}{\csgappto{tc at factgrplist@#2}{,#3}}%
-}%
-%
-%
-% 'debug' auxiliary commands (mainly to find out dups, defined/undefined ones)
-%
-%
-\NewDocumentCommand{\tcgen at factcmd@prt}{m}{\@ifundefined{tc at factdup@#1}{#1}{#1 (dup)}
-\expandafter\@ifundefined\expandafter{\csname #1.fam\endcsname @#1}{\textbf{ NOT Defined} \\}{ {\csname\csname #1.fam\endcsname @#1\endcsname} \\}}
-\NewDocumentCommand{\tcgen at factcmd@def}{m}{\csname #1.fam\endcsname @\@ifundefined{tc at factdup@#1}{#1}{#1 (dup)} %
-	\expandafter\@ifundefined\expandafter{\csname #1.fam\endcsname @#1}{\textbf{ NOT Defined} \\}{ {\slshape Defined} \\} }
-%\NewDocumentCommand{\tcgen at factcmd@prt}{m}{{#1}  \\}
-%\NewDocumentCommand{\tcgen at factcmd@def}{m}{{#1} :: \@ifundefined{tc@#1}{-- \textbf{NOT Defined} --\\}{Defined \\} }
-\NewDocumentCommand{\tcgen at factgrp@prt}{m}{\tightul{#1}  \\%
-    		\expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tcgen at do\expandafter\expandafter\expandafter{\csname tc at factgrplist@#1\endcsname}%
-}
-\NewDocumentCommand{\listfactorycmds}{sO{}}{%
-    \IfBooleanTF{#1}{\def\tcgen at do##1{\tcgen at factcmd@def{##1}}}{\def\tcgen at do##1{\tcgen at factcmd@prt{##1}}}
-    \ifblank{#2}{%
-		    \ifcsundef{tc at factgrplist}{Factories Groups: \textbf{empty list}\\ }{%
-				     Factories:  \\ %
-				    \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tcgen at factgrp@prt\expandafter\expandafter\expandafter{\csname tc at factgrplist\endcsname}%
-						%
-				}
-		}{%
-		}%
-}
-
-
-%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%
-%
-%  \mkswitch creates a switch (somewhat 'like' a programming switch)
-%    a 'default case' is associated with the switch when creating it
-%    one can add many 'cases' later on.
-%    one can have any code associated with a 'switch/case'
-%
-%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%
-
-
-\NewDocumentCommand\mkswitch{O{}m}{%
-    \NewDocumentCommand{#2}{m}{%
-        \ifcsname\string#2 at case@##1\endcsname\csname\string#2 at case@##1\endcsname\else#1\fi%
-    }%
-}%
-\NewDocumentCommand{\addcase}{mmm}{\expandafter\def\csname\string#1 at case@#2\endcsname{#3}}%
-\let\addswitchcase\addcase
-

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,64 +23,105 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-lists}
-\def\tc at tmp@altpackname{ufrgsccalists}
-\def\tc at tmp@packdesc{UFRGS/CCA auxiliary lists commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
 
-\DeclareKeys[ufrgscca-lst]{
-    relnum.usage = load,
-	relnum.if = tcif at relnum,
-}
-\ProcessKeyOptions[ufrgscca-lst]\relax
+\ProvidesExplPackage
+    {ufrgscca-lists}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA auxiliary lists commands}
 
+
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-lists / pkg info}
+  {
+     name        .code:n = {ufrgscca-lists} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23} ,
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
+
+
+
+%==============================================================================
+% Declaração de opções
+%==============================================================================
+\keys_define:nn { ufrgscca  / lists}
+  {
+    relnum      .usage:n        = load ,
+	relnum      .bool_set:N     = \l__ufrgscca_relnum_bool ,
+  }
+
+\ProcessKeyOptions[ufrgscca / lists]\relax
+
+
 %%%%%%%%%%%%%%%%%%%%%
 %%% Packages Loading
 %%%%%%%%%%%%%%%%%%%%%
 
 \RequirePackage{newfloat}
-\RequirePackage{listings}%
-\RequirePackage{xcolor}%
+\RequirePackage{listings}
+\RequirePackage{xcolor}
 
 %%%
 %%% command to declare a new 'list of ...' things {package newfloat}
 %%%
-\NewDocumentCommand{\DeclareNewFloat}{mmmm}{%
- \DeclareFloatingEnvironment[%
-  fileext={#2},%
-	listname={#4},%
-	name={#3},%
-	placement=htb,%
-	chapterlistsgaps=off]{#1} %
- \iftcif at relnum\SetupFloatingEnvironment{#1}{within=chapter}%
-   \else\SetupFloatingEnvironment{#1}{within=none}%
- \fi %
-}%
+\NewDocumentCommand{\DeclareNewFloat}{mmmm}{
+ \DeclareFloatingEnvironment[
+  fileext={#2},
+	listname={#4},
+	name={#3},
+	placement=htb,
+	chapterlistsgaps=off]{#1} 
+    \bool_if:NTF \l__ufrgscca_relnum_bool
+        { \SetupFloatingEnvironment{#1}{within=chapter} }
+        { \SetupFloatingEnvironment{#1}{within=none} }
+}
 
 
 %
 %%%%\def\listoflistings{\lstlistoflistings}%
-\definecolor{lstgray}{rgb}{0.965,0.965,0.965}%
-\lstset{basicstyle=\ttfamily\small,%
-  columns=fullflexible,%
-  keepspaces=true,%
-  frame=tb,%
-  inputencoding=latin1,%
-%  inputencoding=utf8,%
-  extendedchars=true,%
-  backgroundcolor=\color{lstgray},%
-	breaklines=true,%
-%	xleftmargin=7pt,%
-%	xrightmargin=7pt%
-}%
-%
-\def\listingname{Listing}%
-\def\listlistingname{List of Listings}%
-\DeclareNewFloat{codelist}{lox}{\listingname}{\listlistingname}%%
+\definecolor{lstgray}{rgb}{0.965,0.965,0.965}
+\lstset{basicstyle=\ttfamily\small,
+  columns=fullflexible,
+  keepspaces=true,
+  frame=tb,
+  inputencoding=latin1,
+%  inputencoding=utf8,
+  extendedchars=true,
+  backgroundcolor=\color{lstgray},
+	breaklines=true,
+%	xleftmargin=7pt,
+%	xrightmargin=7pt
+}
 
 
+\def\listingname{Listing}
+\def\listlistingname{List~ of~ Listings}
+\DeclareNewFloat{codelist}{lox}{\listingname}{\listlistingname}
+
+
+

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,34 +23,67 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\def\tc at tmp@packname{ufrgscca-ppc}
-\def\tc at tmp@altpackname{ufrgsccappc}
-\def\tc at tmp@packdesc{UFRGS/CCA PPC commands}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
 
-\DeclareKeys[ufrgscca-ppc]{
-    showind.usage = load,
-    showind.if = @showindicators,
+\ProvidesExplPackage
+    {ufrgscca-ppc}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA PPC commands}
 
-    indlong.usage = load,
-    indlong.if = @indlongtext,
-    nocomments.usage = load,
-    nocomments.if = @indnocomments,
-}
-\ProcessKeyOptions[ufrgscca-ppc]\relax
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca-ppc / pkg info}
+  {
+     name        .code:n = {ufrgscca-ppc} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
 
+
+
+\keys_define:nn { ufrgscca / ppc}
+  {
+  	showind        .usage:n     = load,
+    showind        .bool_set:N  = \l__ufrgscca_showind_bool,
+  	indlong        .usage:n     = load,
+    indlong        .bool_set:N  = \l__ufrgscca_indlong_bool,
+  	nocomments     .usage:n     = load,
+    nocomments     .bool_set:N  = \l__ufrgscca_nocomments_bool,
+  }
+\ProcessKeyOptions[ufrgscca / ppc]\relax
+
+
 \RequirePackage{longtable}
 \RequirePackage{pdfcomment}
-\WarningFilter{latex}{name}%
-\RequirePackage[tikz]{mdframed}%
+\WarningFilter{latex}{name}
+\RequirePackage[tikz]{mdframed}
 \RequirePackage{ufrgscca-abnt}
-%\RequirePackage{ufrgscca-curr}
-\RequirePackage{ufrgscca-curr-tab}
+\RequirePackage{ufrgscca-curr}
+\RequirePackage{codedescribe}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%
@@ -69,365 +102,581 @@
 %      * (undefined, copy text)
 %%
 %%%%%%%%%%%%%%%%%%%
-%\iftc at ppc
-  \RenewDocumentCommand{\maketitle}{}{\tcppc at PPCcoverpages}%
-%\fi
 
-%
-\NewDocumentCommand{\tcppc at PPCcoverpages}{}{
-  \begin{titlepage}%
-    \noindent\tc at covertopbox%
-    \vfill%
-    \centerline{\tc at city}%
-	  \centerline{\tc at publyear}%
-  \end{titlepage}%%
-	\if at openright\cleardoublepage\else\clearpage\fi%%
-}%
- \RenewDocumentCommand\tc at winbox{}{%%
-    \parbox[b]{\tc at coverwinwidth}{%%
-        \centering\vbox to \tc at coverwinheight{%%
-            \vspace*{\fill}%
-            {\large\MakeUppercase{\textbf{\@title}}\par}%
-            \vfill%
-        }%%
-    }%%
-}%
 
-%
-%
-\NewDocumentCommand{\set at statuscolor}{m}{%%
-  \@ifundefined{#1 at txtcolor}{%
-    \gdef\ind at txtcolor{\csname default at txtcolor\endcsname}%%
-    \gdef\ind at bgcolor{\csname default at bgcolor\endcsname}%%
-	}{%
-    \gdef\ind at txtcolor{\csname #1 at txtcolor\endcsname}%%
-    \gdef\ind at bgcolor{\csname #1 at bgcolor\endcsname}%%
-  }%
-}%
-%
-%
-\newcounter{@indcounter}%
-%
-\NewDocumentCommand{\declareindicator}{st+O{noref}mmm}{%
-%#3: status #4:org #5:mark #6:short text #7:long text #8:extra text #9:'clarification text'(for inep/mec)
-  \stepcounter{@indcounter}%
-	\IfBooleanTF{#1}{\expandafter\gdef\csname @indicator#4#5star\endcsname{#1}\ifcsundef{@indicator#4lst}{\csgdef{@indicator#4lst}{#5}}{\csgappto{@indicator#4lst}{,#5}}}{}
-	\IfBooleanTF{#2}{\ifcsundef{@indicator#4lst}{\csgdef{@indicator#4lst}{#5}}{\csgappto{@indicator#4lst}{,#5}}}{}
-  \expandafter\gdef\csname @indicator#4#5status\endcsname{#3}%
-  \expandafter\gdef\csname @indicator#4#5short\endcsname{#6}%
-  \expandafter\gdef\csname @indicator#4#5long\endcsname{}%
-  \expandafter\gdef\csname @indicator#4#5extra\endcsname{}%
-  \expandafter\gdef\csname @indicator#4#5text\endcsname{}%
-  \expandafter\gdef\csname @indrefA\arabic{@indcounter}\endcsname{#4}%
-  \expandafter\gdef\csname @indrefB\arabic{@indcounter}\endcsname{#5}%
-	\newcounter{@indcount#4#5}%
-	\@ifundefined{iftcppc at indset#4view}{\expandafter\newif\csname iftcppc at indset#4view\endcsname\csname tcppc at indset#4viewtrue\endcsname}{}
-	\gdef\tcppc at indindex{#4#5}
-}%
-\NewDocumentCommand{\indicatorDesc}{+m+m}{%
-  \expandafter\gdef\csname @indicator\tcppc at indindex long\endcsname{#1}
-  \expandafter\gdef\csname @indicator\tcppc at indindex extra\endcsname{#2}
-}
-\NewDocumentCommand{\indicatorText}{+m}{%
-  \expandafter\gdef\csname @indicator\tcppc at indindex text\endcsname{#1}
-}
 
-\NewDocumentCommand{\lstind}{O{\section}O{\subsection}m}{%
- \def\doit##1{\ifcsundef{@indicator#3##1star}{#2{\csname @indicator#3##1short\endcsname}}{#1{\csname @indicator#3##1short\endcsname}} \csname @indicator#3##1text\endcsname\par}%
-\expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\doit\expandafter\expandafter\expandafter{\csname @indicator#3lst\endcsname}
-}
+\starray_new:n {indicator}
+\starray_def_from_keyval:nn {indicator}
+ {
+    self        = ,
+    view        = \c_true_bool ,
+    has_lst     = \c_false_bool , 
+    seqlst      = , %this is going to be a sequence of 'ind'
+    ind.struct  = 
+      {
+        self            = ,
+        short           = ,
+        long            = ,
+        extra           = , %some extra long text, monstly unused
+        desc            = , %expanded text for 'MEC' (inep questionaire)
+        status          = ,
+        is_section      = \c_false_bool ,
+        is_subsection   = \c_false_bool ,
+        cnt             = 0 , %auxiliar 'counter' (num of references)
+        seqlst          = , %auxiliar list (references' list)
+        labelref        = , %this will contain the 'hyperref label' (at doc's end) to be used.        
+        ref.struct      =
+          {
+            reflabel    = , %this will contain the 'hyperref label' (in doc) to be used.
+          } ,
+      } ,
+ }
 
-%
-%\newcommand{\indsetstatus}[3][attention]{\expandafter\gdef\csname @indicator#2#3status\endcsname{#1}}
-\NewDocumentCommand{\indsetstatus}{O{attention}mm}{%
-  \gdef\tcppc at indsetstatus##1{\expandafter\gdef\csname @indicator#2##1status\endcsname{#1}}%
-  \expandafter\forcsvlist\expandafter\tcppc at indsetstatus\expandafter{#3}%
+\starray_new:n {status}
+\starray_def_from_keyval:nn {status}
+ {
+    bgcolor     = ,
+    txtcolor    = ,
+    self        = ,
+    text        = ,
+    view        = \c_false_bool ,
+    refcnt      = 0 , % 'counter'
+ }
+
+\starray_new:n {acrolist}
+\starray_def_from_keyval:nn {acrolist}
+ {
+    acronym     = ,
+    long        = ,
+ }
+
+
+\NewDocumentCommand{\declareindicator}{st+O{noref}mmm}
+  {
+    %#3: status #4:org #5:mark #6:short text 
+      \starray_set_iter_from_hash:nnF {indicator}{#4}
+        {
+          \starray_new_term:nn {indicator}{#4}
+          \seq_clear:N \l_tmpa_seq
+          \starray_set_prop:nnV {indicator}{seqlst}{\l_tmpa_seq}
+          %\seq_new:c {l__ufrgscca_ind_ #4 _seq}
+          \starray_set_prop:nnn {indicator}{self}{#4}
+        }
+      \starray_new_term:nn {indicator.ind}{@#5}
+      \starray_set_from_keyval:nn {indicator.ind}
+        {
+          short  = {#6} ,
+          status = {#3} ,
+          self   = {#5} ,
+          labelref = {@ufrgscca@ #4 @ #5} , %% to be issued when "printing the indicators' list"
+          %seqlst   = {l__ufrgscca_ind_ #4 _ #5 _seq} ,
+          %cnt      = {l__ufrgscca_ind_ #4 _ #5 _cnt_int} ,
+        }
+      \seq_clear:N \l_tmpa_seq
+      \starray_set_prop:nnV {indicator.ind}{seqlst}{\l_tmpa_seq}
+      %\seq_new:c {l__ufrgscca_ind_ #4 _ #5 _seq}
+      %\int_new:c {l__ufrgscca_ind_ #4 _ #5 _cnt_int}
+      \IfBooleanTF{#1}
+        {
+          \starray_get_prop:nnN {indicator}{seqlst}\l_tmpa_seq
+          \seq_put_right:Nn \l_tmpa_seq {@#5}
+          \starray_set_prop:nnV {indicator}{seqlst}\l_tmpa_seq
+          %\seq_put_right:cn {l__ufrgscca_ind_ #4 _seq}{@#5}
+          \starray_set_prop:nnn {indicator.ind}{is_section}{\c_true_bool}
+          \starray_set_prop:nnn {indicator}{has_lst}{\c_true_bool}
+        }
+        {}
+      \IfBooleanTF{#2}
+        {
+          \starray_get_prop:nnN {indicator}{seqlst}\l_tmpa_seq
+          \seq_put_right:Nn \l_tmpa_seq {@#5}
+          \starray_set_prop:nnV {indicator}{seqlst}\l_tmpa_seq
+          %\seq_put_right:cn {l__ufrgscca_ind_ #4 _seq}{@#5}
+          \starray_set_prop:nnn {indicator.ind}{is_subsection}{\c_true_bool}
+          \starray_set_prop:nnn {indicator}{has_lst}{\c_true_bool}
+        }
+        {}
+
+
+  }
+  
+  
+\NewDocumentCommand{\indicatorDesc}{+m+m}
+  {
+    \starray_set_from_keyval:nn {indicator.ind}
+    {
+      long  = {#1} ,
+      extra = {#2} ,
+    }
+  }
+
+\NewDocumentCommand{\indicatorText}{+m}
+  {
+    \starray_set_prop:nnn {indicator.ind}{text}{#1}
+  }
+
+
+\NewDocumentCommand{\lstind}{O{\section}O{\subsection}m}
+  {
+    \starray_set_iter_from_hash:nnT {indicator}{#3}
+      {
+        \starray_get_prop:nnN {indicator}{seqlst}\l_tmpa_seq
+        \seq_map_inline:Nn \l_tmpa_seq
+          {
+            \starray_set_iter_from_hash:nn {indicator.ind}{##1}
+            \starray_term_syntax:n {indicator.ind}
+            \bool_if:nTF {\starray_parsed_get_prop:n{is_section}}
+              { #1 {\starray_parsed_get_prop:n{short}} }
+              { #2 {\starray_parsed_get_prop:n{short}} }
+            \starray_parsed_get_prop:n{text}  
+          }
+      }
+  }
+
+
+\NewDocumentCommand{\indsetstatus}{O{attention}mm}
+  {
+    \starray_set_iter_from_hash:nn {indicator}{#2}
+    \seq_set_from_clist:Nn \l_tmpa_seq {#3}
+    \seq_map_inline:Nn \l_tmpa_seq
+      {
+        \starray_set_iter_from_hash:nn {indicator.ind}{@##1}
+        \starray_gset_prop:nnn {indicator.ind}{status}{#1}
+      }
+  }
+
+\NewDocumentCommand{\indsetview}{m} 
+  {
+    \starray_set_iter_from_hash:nn {indicator}{#1}
+    \starray_gset_prop:nnn {indicator}{view}{\c_true_bool}
+    
+  }
+
+\NewDocumentCommand{\indsethide}{m}
+  {
+    \starray_set_iter_from_hash:nn {indicator}{#1}
+    \starray_gset_prop:nnn {indicator}{view}{\c_false_bool}
+  }
+
+
+
+\NewDocumentEnvironment{listofindicators}{m}
+  {
+    \begin{list}{\textbf{??}}
+      {
+        \settowidth{\labelwidth}{#1}
+        \setlength{\labelsep}{1em}
+        \setlength{\itemindent}{0mm}
+        \setlength{\leftmargin}{\labelwidth}
+        \addtolength{\leftmargin}{\labelsep}
+        \setlength{\rightmargin}{0mm}
+        \setlength{\itemsep}{.1\baselineskip}
+        \renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}
+      }
+  }
+  {
+    \end{list}
+  }
+
+
+\NewDocumentCommand{\helpindicators}{}
+  {
+    \bool_if:NT \l__ufrgscca_showind_bool 
+      {
+    	\begin{itemize}[nosep,label=,leftmargin=0mm]
+    	  \item \tsmacro{\indsethide}{set} ~-~ Hide~ an~ indicator's~ set
+    		\item \tsmacro{\comment}[status]{title,comment}  ~-~ Just~ a~ comment
+    		\item \tsmacro{\indref}[status]{set,ref,comment}  ~-~ Single~ indicator's~ reference
+    		\item \tsmacro{\indref*}[status]{set,ref,comment}  ~-~  (Short~ text~ only)
+    		\item \tsmacro{\indsetstatus}[status]{set,ref's-clist} ~-~ Set~ the~ status~ of~ a~(comma~separated)~ list~ of~ indicators.
+    	\end{itemize}
+    	where~ status:\newline
+        \starray_iterate_over:nn {status}
+        {
+          \starray_term_syntax:n {status}
+          \makebox[5mm]{} \makebox[17mm][r]{\textbf{\starray_parsed_get_prop:n{self}}}\ \ \starray_parsed_get_prop:n{text}\newline
+        }   
+     }
+  }
+
+
+\NewDocumentCommand{\ifshowind}{+m+m}
+  {
+    \bool_if:NTF \l__ufrgscca_showind_bool 
+      {#1}
+      {#2}
+  }
+
+
+
+\cs_new:Npn \__ufrgscca_status_refincr:n #1 
+    {
+     \int_incr:c {#1}
+    }
+\cs_generate_variant:Nn \__ufrgscca_status_refincr:n {e}
+
+\cs_generate_variant:Nn \starray_get_prop:nnN {enN}
+\bool_new:N \l__ufrgscca_statuslst_bool
+\seq_new:N \l__ufrgscca_statuslst_seq
+
+\cs_new_protected:Npn \__ufrgscca_hypertarget:nn #1#2
+  {
+    \hypertarget{#1}{#2}
+  }
+\cs_generate_variant:Nn \__ufrgscca_hypertarget:nn {ee , en}
+
+\cs_new_protected:Npn \__ufrgscca_hyperlink:nn #1#2
+  {
+    \hyperlink{#1}{#2}
+  }
+\cs_generate_variant:Nn \__ufrgscca_hyperlink:nn {ee , en}
+
+\NewDocumentCommand{\PrintIndicators}{O{}}
+{
+  \bool_if:NT \l__ufrgscca_showind_bool 
+  {
+    {
+      \footnotesize
+      \if at openright\cleardoublepage\else\clearpage\fi%%% TO BE CONVERTED Expl3
+      
+      \phantomsection
+      \chapter*{Indicadores #1}
+      \begin{listofindicators}{EMPTY LIST . . .}
+          \tl_if_empty:nTF {#1}
+            {
+              \bool_set_false:N \l__ufrgscca_statuslst_bool
+              \__ufrgscca_set_statuscolor:n{attention}
+            }
+            {
+              \bool_set_true:N \l__ufrgscca_statuslst_bool
+              \seq_set_from_clist:Nn \l__ufrgscca_statuslst_seq {#1}
+              \seq_map_inline:Nn \l__ufrgscca_statuslst_seq 
+                {
+                  \starray_set_prop:nnn {status[##1]}{view}{\c_true_bool}
+                }
+            }
+        \starray_iterate_over:nn {indicator}
+          {
+            \starray_term_syntax:n {indicator}
+            \bool_if:nT {\starray_parsed_get_prop:n {view}}
+              {
+                \starray_iterate_over:nn {indicator.ind}
+                  {
+                    \starray_term_syntax:n{indicator.ind}
+                    \starray_get_prop:enN {status[\starray_parsed_get_prop:n{status}]}{view} \l_tmpb_tl
+                    \bool_if:nT {!\l__ufrgscca_statuslst_bool || \l_tmpb_tl}
+                      {
+                        \starray_term_syntax:n{indicator.ind}
+                        \__ufrgscca_set_statuscolor:e{\starray_parsed_get_prop:n{status}}
+                       
+                        \starray_get_prop:nnN {status}{refcnt}\l_tmpa_int
+                        \int_set:Nn \l_tmpb_int {\l_tmpa_int + 1}
+                        \starray_set_prop:nnV {status}{refcnt}\l_tmpb_int
+                        
+                        \starray_term_syntax:n {indicator.ind}
+                        \item[
+                            \textbf{
+                              \color{\l__ufrgscca_txtcolor_tl}
+                              \__ufrgscca_hypertarget:en
+                                {\starray_parsed_get_prop:n{labelref}}
+                                {\starray_get_prop:nn {indicator}{self}:~\starray_get_prop:nn {indicator.ind}{self}}
+                            }] 
+                            {\color{\l__ufrgscca_txtcolor_tl}\starray_get_prop:nn {indicator.ind}{short} \dotfill \normalsize\starray_get_prop:nn {indicator.ind}{status}}
+                            
+                        \newline \starray_get_prop:nn {indicator.ind}{long} \starray_get_prop:nn {indicator.ind}{extra}
+                        \starray_get_prop:nnN {indicator.ind}{seqlst} \l_tmpa_seq
+                        \seq_if_empty:NF \l_tmpa_seq
+                          {
+                            \newline
+                            \tl_set:Nn \l_tmpa_tl {} .\dotfill
+                            \seq_map_inline:Nn \l_tmpa_seq
+                              {
+                                \l_tmpa_tl \ref{##1} ~(\pageref{##1})
+                                \tl_set:Nn \l_tmpa_tl {,~}
+                              }
+                          }
+                      }
+                  }
+                  
+              }
+          }
+          \starray_iterate_over:nn {status}
+            {
+              \starray_term_syntax:n {status}
+              \item[\textbf{\starray_parsed_get_prop:n{self}}]  \starray_parsed_get_prop:n {refcnt}
+            }
+      \end{listofindicators}
+    }
+  }
 }
-%
-\NewDocumentCommand{\indsetview}{m}{\csname tcppc at indset#1viewtrue\endcsname}%
-%
-\NewDocumentCommand{\indsethide}{m}{\csname tcppc at indset#1viewfalse\endcsname}%
-%
-\NewDocumentEnvironment{listofindicators}{m}{%
-        \begin{list}{\textbf{??}}{%
-                \settowidth{\labelwidth}{#1}%
-                \setlength{\labelsep}{1em}%
-                \setlength{\itemindent}{0mm}%
-                \setlength{\leftmargin}{\labelwidth}%
-                \addtolength{\leftmargin}{\labelsep}%
-                \setlength{\rightmargin}{0mm}%
-                \setlength{\itemsep}{.1\baselineskip}%
-                \renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}%
-        }%
-}{%
-        \end{list}%
-}%
-%
-\NewDocumentCommand{\tcppc at indrefitem}{O{, }m}{%
-  \@ifundefined{r@@indlabel\tcppc at indA\tcppc at indB:#2}{}{#1 \ref{@indlabel\tcppc at indA\tcppc at indB:#2} (\pageref{@indlabel\tcppc at indA\tcppc at indB:#2})}%
-}%
-%
-\newif\iftcppc at itemdisp%
-\NewDocumentCommand{\tcppc at indicatorsitem}{m}{%%
-  \@ifundefined{@indrefA#1}{}{%%
-	  \gdef\tcppc at indA{\csname @indrefA#1\endcsname}%%
-		\gdef\tcppc at indB{\csname @indrefB#1\endcsname}%%
-		 \csname iftcppc at indset\tcppc at indA view\endcsname%
-		  \gdef\tcppc at status{\csname @indicator\tcppc at indA\tcppc at indB status\endcsname}%%
-			\iftcppc at ind@filter\expandafter\tcppc at ind@filtercase\expandafter{\tcppc at status}\else\tcppc at itemdisptrue\fi%
-			\iftcppc at itemdisp%
-  		  \set at statuscolor{\tcppc at status}%%
-	  	  \@ifundefined{theind@\tcppc at status @count}{\stepcounter{ind at default@count}}{\stepcounter{ind@\tcppc at status @count}}%%
-	      \item[\textbf{\color{\ind at txtcolor}\hypertarget{@indlabel\tcppc at indA\tcppc at indB\tcppc at ind@filterstatus}{\tcppc at indA: \tcppc at indB}}]%
-				  {\color{\ind at txtcolor}\emph{\csname @indicator\tcppc at indA\tcppc at indB short\endcsname}} \dotfill %
-					{\normalsize\color{\ind at txtcolor}\textbf{\csname @indicator\tcppc at indA\tcppc at indB status\endcsname}} %
-					\ifthenelse{\equal{\csname @indicator\tcppc at indA\tcppc at indB long\endcsname}{}}{\break}{\newline\csname @indicator\tcppc at indA\tcppc at indB long\endcsname \csname @indicator\tcppc at indA\tcppc at indB extra\endcsname\hfill\break}%%
-  		  \tcppc at indrefitem[.\dotfill]{1}%%
-	  	  \forcsvlist\tcppc at indrefitem{2,3,4,5,6,7,8,9,10,11,12,13}%
-			\fi%
-		 \fi%
-	}%%
-}%
-%
-\NewDocumentCommand{\tcppc at indicatorsbatch}{m}{\forcsvlist\tcppc at indicatorsitem{#10,#11,#12,#13,#14,#15,#16,#17,#18,#19}}%
-%
-\NewDocumentCommand{\tcppc at indicatorsBatch}{m}{\forcsvlist\tcppc at indicatorsbatch{#10,#11,#12,#13,#14,#15,#16,#17,#18,#19}}%
-%
-%
-\NewDocumentCommand{\tcppc at helpstatus}{+m}{\makebox[5mm]{}\makebox[17mm][r]{\textbf{#1}}\ \ \csname #1 at text\endcsname\newline}%
-%
-\NewDocumentCommand{\tcppc at helpbf}{+m}{\textbf{\color{black}\textbackslash #1}$\,\,$}%
-\NewDocumentCommand{\tcppc at helpO}{+m}{{\color{darkteal}\textbf{[}<status>#1\textbf{]}}$\,\,$}%
-\NewDocumentCommand{\tcppc at helpM}{+m}{{\color{darkblue}\textbf{\{}#1\textbf{\}}}$\,\,$}%
-%
-\NewDocumentCommand{\helpindicators}{}{{\footnotesize%
-  \if at showindicators%
-	\begin{itemize}[nosep,label=,leftmargin=0mm]%
-	  \item \tcppc at helpbf{indsethide}\tcppc at helpM{<set>} - Hide an indicator's set%
-		\item \tcppc at helpbf{comment}\tcppc at helpO{}\tcppc at helpM{<title>}\tcppc at helpM{<comment>} - Just a comment%
-		\item \tcppc at helpbf{indref}\tcppc at helpO{}\tcppc at helpM{<set>}\tcppc at helpM{<ref>}\tcppc at helpM{<comment>} - Single indicator's reference%
-		\item \tcppc at helpbf{indref*}\tcppc at helpO{}\tcppc at helpM{<set>}\tcppc at helpM{<ref>}\tcppc at helpM{<comment>} -  (Short text only)%
-		\item \tcppc at helpbf{indreflst}\tcppc at helpO{}\tcppc at helpM{<set>}\tcppc at helpM{\tcppc at helpO{:}<ref> , \tcppc at helpO{:}<ref> , ...}\tcppc at helpM{<comment>} - Referece list %
-		\item \tcppc at helpbf{indreflst*}\tcppc at helpO{}\tcppc at helpM{<set>}\tcppc at helpM{\tcppc at helpO{:}<ref> , \tcppc at helpO{:}<ref> , ...}\tcppc at helpM{<comment>} - (Single box)%
-		\item \tcppc at helpbf{indsetstatus}\tcppc at helpO{}\tcppc at helpM{<set>}\tcppc at helpM{<ref> , <ref> , ...} - Set the status of a list of indicators.%
-	\end{itemize}%
-	where status:\newline%
-		\expandafter\forcsvlist\expandafter\tcppc at helpstatus\expandafter{\ind at statuslst}%
-	\fi%
-}}%
-%
-\NewDocumentCommand{\tcppc at printcount}{+m}{\item[ ] {\color{\attention at txtcolor}\large\textbf{\makebox[15mm][r]{#1 :} \csname theind@#1 at count\endcsname}}%
-}%
-%
-%
-%
-%\NewDocumentCommand{\ifshowindicators}{m}{\if at showindicators#1\fi}
-%\NewDocumentCommand{\ifthenelseshowindicators}{+m+m}{\if at showindicators#1\else#2\fi}
-\NewDocumentCommand{\ifshowind}{+m+m}{\if at showindicators#1\else#2\fi}
-%
-%
-\newif\iftcppc at ind@filter%
-\mkswitch[\tcppc at itemdispfalse]\tcppc at ind@filtercase%
-\NewDocumentCommand{\tcppc at ind@filteraux}{+m}{\addcase\tcppc at ind@filtercase{#1}{\tcppc at itemdisptrue}}%
-\NewDocumentCommand{\PrintIndicators}{O{}}{\footnotesize%
-  \if at showindicators%%
-		\def\tcppc at ind@filterstatus{#1}%
-		\ifthenelse{\equal{#1}{}}{\tcppc at ind@filterfalse}{\tcppc at ind@filtertrue\expandafter\forcsvlist\expandafter\tcppc at ind@filteraux\expandafter{#1}}%
-    \if at openright\cleardoublepage\else\clearpage\fi%%%
-  	\phantomsection%%
-		\chapter*{Indicadores #1}%\newpage%%
-    \begin{listofindicators}{EMPTY LIST . . .}%%
-		  \iftcppc at ind@filter\else\item[ ] {\color{\attention at txtcolor}\large\textbf{\the at indcounter}\ Indicadores.}\fi%%
-		  \tcppc at indicatorsbatch{}%
-		  \tcppc at indicatorsBatch{}%
-			\forcsvlist\tcppc at indicatorsBatch{1,2,3,4,5,6,7,8,9}%
-			\iftcppc at ind@filter\else\expandafter\forcsvlist\expandafter\tcppc at printcount\expandafter{\ind at statuslst}\fi%
-    \end{listofindicators}%
-  \fi%
-}%
-%
-%
-\NewDocumentCommand{\textmark}{O{attention}m}{\set at statuscolor{#1}{\color\ind at txtcolor {\textbf{!! #2 !!}}}}
 
 
-\NewDocumentCommand{\comment}{O{attention}m+m}{%
-  \if at showindicators%
-		\if at indnocomments\else%
-	    \set at statuscolor{#1}%
-      \ \hfill\parbox{0.9\textwidth}{\small%
-        \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{#2}]%
-          {\footnotesize #3\par}%
-          \hfill\emph{status: }\textbf{\color{\ind at txtcolor}#1}%
- 	      \end{mdframed}%
-        }\\[-2.7mm]%
-		\fi%
-  \fi%
-}%
+\NewDocumentCommand{\textmark}{O{attention}m}
+  {
+    \bool_if:NT \l__ufrgscca_showind_bool 
+      {
+        {
+          \__ufrgscca_set_statuscolor:n {#1}
+          \color{\l__ufrgscca_txtcolor_tl}
+          \textbf{!!~ #2~ !!}
+        }
+      }
+  }
+
+
+\NewDocumentCommand{\comment}{O{attention}m+m}
+  {
+      \bool_if:NT \l__ufrgscca_showind_bool 
+        {
+          \bool_if:NF \l__ufrgscca_nocomments_bool
+          {
+    	    \__ufrgscca_set_statuscolor:n {#1}
+            \ \hfill\parbox{0.9\textwidth}{\small
+            \begin{mdframed}[style=NEWindicatorsTikZ,frametitle=\__ufrgscca_tikz_title:n{#2}]
+              {\footnotesize #3\par}
+              \hfill\emph{status:~}\textbf{\color{\l__ufrgscca_txtcolor_tl}#1}
+     	      \end{mdframed}
+            }\\[-2.7mm]  
+    	  }
+        }
+  }
+
+
+
 \let\remark\comment
-%
-\NewDocumentCommand{\indtext}{mm}{\csname @indicator#1#2short\endcsname}
-%
-\NewDocumentCommand{\tcppc at indhack}{smm+m}{%
-	  \csname iftcppc at indset#2view\endcsname%
-	    \set at statuscolor{\tcppc at status}%
-      \ \hfill\parbox{0.9\textwidth}{\small%%
-          \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{\hyperlink{@indlabel#2#3}{#2 : #3}}]%%
-            \pdftooltip{\emph{\csname @indicator#2#3short\endcsname}}{\csname @indicator#2#3long\endcsname}\par%%
-              \if at indlongtext%%
-					      \IfBooleanF{#1}{%%
-						      \ifthenelse{\equal{\csname @indicator#2#3long\endcsname}{}}{}{\enquote{\footnotesize\csname @indicator#2#3long\endcsname}\par}%%
-						    }%
- 				      \fi%%
-					    \if at indnocomments\else\ifthenelse{\equal{#4}{}}{}{{\emph{\color{\comments at txtcolor}{#4}}}\par}\fi%%
-            \hfill\emph{status: }\textbf{\color{\ind at txtcolor}\tcppc at status}%%
- 	        \end{mdframed}%%
-      }\\[-2.7mm]%%
-		\fi%
+
+\NewDocumentCommand{\indtext}{mm}
+  {
+    \bool_if:NT \l__ufrgscca_showind_bool 
+      {
+        \starray_get_prop:nn {#1}{#2}{short}
+      }
+  }
+
+
+%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%%
+%%%
+%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%
+
+
+\tl_new:N \l__ufrgscca_tmp_indref_tl
+\NewDocumentCommand{\indref}{sO{}mm+m}
+  {
+    \bool_if:NT \l__ufrgscca_showind_bool
+    {
+    \starray_set_iter_from_hash:nn {indicator}{#3}
+    \starray_set_iter_from_hash:nn {indicator.ind}{@#4}
+    \tl_if_empty:nF {#2}
+    {
+      \starray_gset_prop:nnn {indicator.ind}{status}{#2}
+    }
+    \starray_get_prop:nnN {indicator.ind}{seqlst} \l_tmpa_seq
+    \starray_get_prop:nnN {indicator.ind}{cnt} \l_tmpb_tl
+    \int_set:Nn \l_tmpa_int {\l_tmpb_tl + 1}
+    \starray_set_prop:nnV {indicator.ind}{cnt} \l_tmpa_int
+    \tl_set:Ne \l__ufrgscca_tmp_indref_tl {@indlabel@ #3 @ #4 - \int_use:N \l_tmpa_int }
+    \seq_put_right:Ne \l_tmpa_seq{\l__ufrgscca_tmp_indref_tl}
+    \starray_set_prop:nnV {indicator.ind}{seqlst} \l_tmpa_seq
+    \label{\l__ufrgscca_tmp_indref_tl}
+    \starray_term_syntax:n {indicator}
+    \bool_if:nT {\starray_parsed_get_prop:n {view}}
+    {
+      \starray_term_syntax:n {indicator.ind}
+      \__ufrgscca_set_statuscolor:e {\starray_parsed_get_prop:n {status}}
+      \starray_term_syntax:n {indicator.ind}
+      \ \hfill
+      \parbox{0.9\textwidth}
+        {
+          \small
+          \begin{mdframed}[style=NEWindicatorsTikZ,frametitle=\__ufrgscca_tikz_title:n{\__ufrgscca_hyperlink:en{\starray_parsed_get_prop:n {labelref}}{#3 ~:~ #4}}]
+            \pdftooltip{\emph{\starray_parsed_get_prop:n {short}}}{\starray_parsed_get_prop:n {long}}\par
+            \bool_if:NT \l__ufrgscca_indlong_bool 
+              {
+    		      \IfBooleanF{#1}{
+    	            \ifthenelse{\equal{\starray_parsed_get_prop:n {long}}{}}{}{\enquote{\footnotesize\starray_parsed_get_prop:n {long}}\par}
+    			   }
+              }
+            \bool_if:NF \l__ufrgscca_nocomments_bool
+              {
+                \ifthenelse{\equal{#5}{}}{}{{\emph{\color{\l__ufrgscca_comment_color_tl}{#5}}}\par}
+              }
+            \hfill\emph{status: }\textbf{\color{\l__ufrgscca_txtcolor_tl}\starray_parsed_get_prop:n {status}}
+     	  \end{mdframed}
+        }\\[-2.7mm]
+    }
+    }  
+  }
+  
+\definecolor{grayblack}{rgb}{0.8,0.8,0.8}
+
+
+\tl_new:N \l__ufrgscca_txtcolor_tl
+\tl_new:N \l__ufrgscca_bgcolor_tl
+\tl_new:N \l__ufrgscca_comment_color_tl
+\tl_set:Nn \l__ufrgscca_comment_color_tl {darkblue}
+
+\cs_new_protected:Npn \__ufrgscca_set_statuscolor:n #1
+  {
+    \starray_set_iter_from_hash:nnF {status}{#1}
+      { \starray_set_iter_from_hash:nn {status}{default} }
+      \starray_get_prop:nnN {status}{txtcolor}\l__ufrgscca_txtcolor_tl
+      \starray_get_prop:nnN {status}{bgcolor}\l__ufrgscca_bgcolor_tl
+  }
+
+\cs_generate_variant:Nn \__ufrgscca_set_statuscolor:n {e}
+
+
+\cs_new_protected:Npn \__ufrgscca_set_txtcolor:n #1
+  {
+    \starray_set_iter_from_hash:nnF {status}{#1}
+      {
+        \starray_set_iter_from_hash:nn {status}{default}
+      }
+        \starray_term_syntax:n{status}
+        \color{\starray_parsed_get_prop:n{txtcolor}}
+  }
+
+\NewDocumentCommand{\SetStatusColor}{m}
+  {
+    \__ufrgscca_set_txtcolor:n {#1}
+  }
+
+\cs_new:Npn \__ufrgscca_def_colorpair:n #1
+  {
+    \colorlet{light#1}{white!85!#1}
+    \colorlet{dark#1}{#1!70!black!100}
+  }
+
+\cs_new:Npn \__ufrgscca_def_status:nnn #1#2#3
+  {
+    \starray_new_term:nn {status}{#1}
+    \starray_set_from_keyval:nn {status}
+      {
+        txtcolor    = {dark#2} ,
+        bgcolor    = {light#2} ,
+        text        = {#3~ (#2)} ,
+        self        = {#1} ,
+      }
+    \__ufrgscca_def_colorpair:n {#2}
+  }
+
+\__ufrgscca_def_status:nnn{tbd}{gray}{To~ Be~ Done}
+\__ufrgscca_def_status:nnn{done}{green}{Done}
+\__ufrgscca_def_status:nnn{review}{yellow}{to~ be~ reviewed}
+\__ufrgscca_def_status:nnn{attention}{red}{needs~ Attention}
+\__ufrgscca_def_status:nnn{NSA}{brown}{NSA}
+\__ufrgscca_def_status:nnn{noref}{magenta}{no~ references}
+\__ufrgscca_def_status:nnn{EAD}{violet}{EAD}
+\__ufrgscca_def_status:nnn{MDi}{teal}{(courseware)...}
+\__ufrgscca_def_status:nnn{DOCs}{blue}{other~ DOCs}
+\__ufrgscca_def_status:nnn{default}{cyan}{everything~ else}
+\__ufrgscca_def_status:nnn{comment}{blue}{a~ comment}
+
+
+
+\mdfdefinestyle{NEWindicatorsTikZ}{
+  linecolor=grayblack,
+  linewidth=0.4pt,
+%  skipabove=0.65\baselineskip,
+%  skipbelow=0.5\baselineskip,
+  skipabove=0pt,
+  skipbelow=0pt,
+  leftmargin =-3.5pt,
+  rightmargin=-3.5pt,
+  innerleftmargin=3pt,
+  innerrightmargin=3pt,
+  needspace=3\baselineskip,
+  backgroundcolor=\l__ufrgscca_bgcolor_tl,
+  usetwoside=false,
+%	innertopmargin = 3pt,
+%	innerbottommargin = 2pt,
+	innertopmargin = 2pt,
+	innerbottommargin = 2pt,
+	roundcorner = 4pt,
+	frametitle={\__ufrgscca_tikz_title:n{TITLE}},
+	frametitleaboveskip=-0.6\baselineskip,
+	frametitlebelowskip=0pt,
+  frametitlealignment = \raggedleft,
+	leftline = true,
+	rightline = true,
+	nobreak = true,
 }
 
-\NewDocumentCommand{\indref}{sO{}mm+m}{%%
-  \ifthenelse{\equal{#2}{}}{}{\expandafter\gdef\csname @indicator#3#4status\endcsname{#2}}%%
-	\expandafter\gdef\expandafter\tcppc at status{\csname @indicator#3#4status\endcsname}%
-	\stepcounter{@indcount#3#4}\label{@indlabel#3#4:\csname the at indcount#3#4\endcsname}%%
-  \if at showindicators%%
-		\IfBooleanTF{#1}{\tcppc at indhack*{#3}{#4}{#5}}{\tcppc at indhack{#3}{#4}{#5}}
-  \fi%	%
-}%
-%
-%
-%\newcommand{\tcppc at indreflstitem}[4][]{%
-\NewDocumentCommand{\tcppc at indreflstitem}{O{}mmm}{%
-  \ifthenelse{\equal{#1}{}}{}{\expandafter\gdef\csname @indicator#2#3status\endcsname{#1}}%
-	\expandafter\gdef\expandafter\tcppc at status{\csname @indicator#2#3status\endcsname}%
-	\stepcounter{@indcount#2#3}\label{@indlabel#2#3:\csname the at indcount#2#3\endcsname}%%
-  \set at statuscolor{\tcppc at status}%
-	\hyperlink{@indlabel#2#3}{\textbf{#3 :}}\pdftooltip{\emph{\csname @indicator#2#3short\endcsname}}{\csname @indicator#2#3long\endcsname}\par%%
-  \if at indlongtext%%
-    \ifthenelse{\equal{\csname @indicator#2#3long\endcsname}{}}{}{\enquote{\footnotesize\csname @indicator#2#3long\endcsname}\par}%%
-  \fi%%
-  \hfill\emph{status: }\textbf{\color{\ind at txtcolor}\tcppc at status\break}%%
-}%
+\tl_new:N \l__ufrgscca_TikZ_pos_tl
+\tl_set:Nn \l__ufrgscca_TikZ_pos_tl {0.44}
+\cs_new_protected:Npn \__ufrgscca_tikz_title:n #1
+  {
+    \tikz[baseline=(current~ bounding~ box.east),outer~ sep=0pt,xshift=1cm,thin,color=grayblack]  
+      \draw  (0,0) (\l__ufrgscca_TikZ_pos_tl,0) 
+        node[anchor=west,rectangle,rounded~ corners,fill=white,draw] at (\l__ufrgscca_TikZ_pos_tl,0) {#1} 
+        node[anchor=west,rectangle,rounded~ corners,color=black] at (\l__ufrgscca_TikZ_pos_tl,0) {#1};
+  }
 
-\NewDocumentCommand{\indreflst}{sO{}mmm}{%
-  \IfBooleanTF{#1}{%
-    \gdef\tcppc at indreflst##1{\StrCut{##1}{:}\tcppc at parA\tcppc at parB\IfStrEq{\tcppc at parB}{}{\tcppc at indreflstitem{#3}{\tcppc at parA}{#5}}{\expandafter\tcppc at indreflstitem\expandafter[\tcppc at parA]{#3}{\tcppc at parB}{#5}}}%
-    \if at showindicators%
-	    \csname iftcppc at indset#3view\endcsname%
-		    \ \hfill\parbox{0.9\textwidth}{\small%
-			    \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{#3}]%%
-            \expandafter\forcsvlist\expandafter\tcppc at indreflst\expandafter{#4}%
-			      \if at indnocomments\else\ifthenelse{\equal{#5}{}}{}{{\emph{\color{\comments at txtcolor}{#5}}}\par}\fi%%
-				    \set at statuscolor{#2}%
-			    \end{mdframed}%
-			  }%
-		  \fi%
-	  \fi%
-	}{%
-  	\gdef\tcppc at indreflst##1{\StrCut{##1}{:}\tcppc at parA\tcppc at parB\IfStrEq{\tcppc at parB}{}{\indref{#3}{\tcppc at parA}{}}{\indref[\tcppc at parA]{#3}{\tcppc at parB}{}}}%
-	  \expandafter\forcsvlist\expandafter\tcppc at indreflst\expandafter{#4}%
-	  \comment[#2]{comment}{#5}%
-	}%
-}%
-%
-% other default colors (xcolor pack): lime, olive, orange, pink, purple.
-%
-\def\tcppc at defcolorpair#1{\colorlet{light#1}{white!85!#1}\colorlet{dark#1}{#1!70!black!100}}
-%
-%
-\definecolor{grayblack}{rgb}{0.8,0.8,0.8}%
-%
-%
-\NewDocumentCommand{\ind at defstatus}{mmm}{%
-  \newcounter{ind@#1 at count}%
-  \tcppc at defcolorpair{#2}%
-	\expandafter\gdef\csname #1 at txtcolor\endcsname{dark#2}%
-	\expandafter\gdef\csname #1 at bgcolor\endcsname{light#2}%
-	\expandafter\gdef\csname #1 at text\endcsname{#3 (#2)}%
-	\@ifundefined{ind at statuslst}{\gdef\ind at statuslst{#1}}{\edef\ind at statuslst{\ind at statuslst,#1}}%
-}%
-%
-\ind at defstatus{tbd}{gray}{To Be Done}%
-\ind at defstatus{done}{green}{Done}%
-\ind at defstatus{review}{yellow}{to be reviewed}%
-\ind at defstatus{attention}{red}{needs Attention}%
-\ind at defstatus{NSA}{brown}{NSA}%
-\ind at defstatus{noref}{magenta}{no references}%
-\ind at defstatus{EAD}{violet}{EAD}%
-\ind at defstatus{MDi}{teal}{(courseware)...}%
-\ind at defstatus{DOCs}{blue}{other DOCs}%
-\ind at defstatus{default}{cyan}{everything else}%
-%
-\def\comments at txtcolor{darkblue}%
-%
-%
-\def\ind at TikZpos{0.44}%
-\NewDocumentCommand{\tikztitle}{m}{\tikz[baseline=(current bounding box.east),outer sep=0pt,xshift=1cm,thin,color=grayblack]  \draw  (0,0) (\ind at TikZpos,0) node[anchor=west,rectangle,rounded corners,fill=white,draw] at (\ind at TikZpos,0) {#1} node[anchor=west,rectangle,rounded corners,color=black] at (\ind at TikZpos,0) {#1};}%%
-%
-%
-\mdfdefinestyle{indicatorsTikZ}{%
-  linecolor=grayblack,%%
-  linewidth=0.4pt,%
-%  skipabove=0.65\baselineskip,%
-%  skipbelow=0.5\baselineskip,%
-  skipabove=0pt,%
-  skipbelow=0pt,%
-  leftmargin =-3.5pt,%
-  rightmargin=-3.5pt,%
-  innerleftmargin=3pt,%
-  innerrightmargin=3pt,%
-  needspace=3\baselineskip,%
-  backgroundcolor=\ind at bgcolor,%
-  usetwoside=false,%
-%	innertopmargin = 3pt,%
-%	innerbottommargin = 2pt,%
-	innertopmargin = 2pt,%
-	innerbottommargin = 2pt,%
-	roundcorner = 4pt,%
-	frametitle={\tikztitle{TITLE}},%
-	frametitleaboveskip=-0.6\baselineskip,%
-	frametitlebelowskip=0pt,%
-  frametitlealignment = \raggedleft,%
-	leftline = true,%
-	rightline = true,%
-	nobreak = true,%
-}%
 
-\NewDocumentCommand{\fancyquote}{O{-2\topsep-2\parsep-2\partopsep-2\parskip}+mmm}{%
- \vspace{#1}{%
-  \ \hfill\begin{minipage}{0.5\textwidth}\noindent\scriptsize\emph{''#2''}%
-	  {\vspace{-\parsep}\begin{flushright}\footnotesize#3\\\sc #4\end{flushright}} \end{minipage}\\
- }}
 
 
+\NewDocumentCommand{\fancyquote}{O{-2\topsep-2\parsep-2\partopsep-2\parskip}+mmm}
+  {
+    \vspace{#1}
+    {
+      \ \hfill
+      \begin{minipage}{0.5\textwidth}
+        \noindent\scriptsize\emph{''#2''}
+    	{ \vspace{-\parsep}
+          \begin{flushright}
+            \footnotesize 
+              #3\\
+              \sc #4
+          \end{flushright}
+        } 
+      \end{minipage}\\
+    }
+  }
+
+
 \NewDocumentEnvironment{ppc.quote}{}{\begin{displayquote}\begin{itshape}\smaller}{\end{itshape}\end{displayquote}}
 %\preto\displayquote{\begingroup\setlength{\leftmargini}{0mm}}
 %\appto\enddisplayquote{\endgroup}
-\RenewDocumentEnvironment{quote}{}{%
-  \list{}{\leftmargin20mm\rightmargin0mm}%
-  \item\relax%
-}{\endlist}
+\RenewDocumentEnvironment{quote}{}
+  {
+    \list{}{\leftmargin20mm\rightmargin0mm}
+    \item\relax
+  }
+  { \endlist }
 %
 
 \NewDocumentCommand{\labelhack}{m}{\def\@currentlabelname{#1}}
 
-\NewDocumentCommand{\acrolist}{}{}
-\NewDocumentCommand{\acrodef}{mmm}{%
-  %\expandafter\DeclareFixedFootnote\expandafter{\csname #1\endcsname}{#3}%
-	\expandafter\def\csname #1\endcsname{\footnote{#3}}%
-	\expandafter\def\csname acrolsti:#1\endcsname{\item[#2] #3}%
-	\appto\acrolist{\item[#2] #3}%
-	\expandafter\def\csname acroS:#1\endcsname{#2}%
-	\expandafter\def\csname acroL:#1\endcsname{#3}%
+
+
+\NewDocumentCommand{\acrodef}{mmm}
+  {
+    \starray_new_term:nn {acrolist}{#1}
+    \starray_set_from_keyval:nn {acrolist}
+    {
+      short = {#2} ,
+      long    = {#3}
+    }
+  }
+
+\NewDocumentCommand{\acro}{m}{\starray_get_prop:nn{acrolist[#1]}{short}}
+\NewDocumentCommand{\acrol}{m}{\starray_get_prop:nn{acrolist[#1]}{long}}
+\NewDocumentCommand{\acrols}{m}{\starray_get_prop:nn{acrolist[#1]}{long}, \starray_get_prop:nn{acrolist[#1]}{short}}
+\NewDocumentCommand{\acrosl}{m}{\starray_get_prop:nn{acrolist[#1]}{short}, \starray_get_prop:nn{acrolist[#1]}{long}}
+\NewDocumentCommand{\acrofoot}{m}{\starray_get_prop:nn{acrolist[#1]}{short}\footnote{\starray_get_prop:nn{acrolist[#1]}{long}}}
+\NewDocumentCommand{\printacrolist}{O{}m}{
+    \begin{listofabbrv}[#1]{#2}
+    \starray_iterate_over:nn {acrolist}
+      { \item[\starray_get_prop:nn{acrolist}{short}] \starray_get_prop:nn{acrolist}{long} }
+    \end{listofabbrv}
 }
-\NewDocumentCommand{\acroitem}{m}{\csname acrolsti:#1\endcsname}
-\NewDocumentCommand{\printacrolist}{O{}m}{\begin{listofabbrv}[#1]{#2}\acrolist\end{listofabbrv}}
-\NewDocumentCommand{\acro}{m}{\csname acroS:#1\endcsname}
-\NewDocumentCommand{\acrol}{m}{\csname acroL:#1\endcsname}
-\NewDocumentCommand{\acrols}{m}{\csname acroL:#1\endcsname, \csname acroS:#1\endcsname}
-\NewDocumentCommand{\acrosl}{m}{\csname acroS:#1\endcsname, \csname acroL:#1\endcsname}
-\NewDocumentCommand{\acrofoot}{m}{\csname acroS:#1\endcsname\csname #1\endcsname}
 
 
+
 \RenewDocumentCommand{\subparagraph}{m}{}
 \RenewDocumentCommand{\part}{m}{}
 %

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-base.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-base.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-base.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,62 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-ptBR-base}
-\def\tc at tmp@altpackname{ufrgsccaptbrbase}
-\def\tc at tmp@packdesc{UFRGS/CCA Portuguese base defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-%%%
-%%
-%% those are loaded, on the fly, when selecting, or switching, to portuguese (\@namedef{captionsbrazilian}  vis-à-viz \begin{otherlanguage}{})
-%%
-%%%%%
-
-	\def\abstractname{Resumo}%
-	\def\englishabstractname{Abstract}%
-	\def\contentsname{Sum{\'{a}}rio}%
-	\def\listfigurename{Lista de Ilustra\c{c}\~oes}%
-	\def\listtablename{Lista de Tabelas}%
-	\def\figurename{Figura}%
-	\def\tablename{Tabela}%
-	\def\byname{por}%
-	\def\keywordsname{Palavras-chave}%
-
-	\def\listabbrvname{Lista de Abreviaturas}%
-	\def\listsymbolname{Lista de S{\'{\i}}mbolos}%
-
-	\def\listingname{Listagem}
-	\def\listlistingname{Lista de Listagens}
-
-	\def\defappendixname{Ap{\^{e}}ndice}%
-	\def\defappendixpagename{Ap{\^{e}}ndices}%
-	\def\defannexname{Anexo}%
-	\def\defannexpagename{Anexos}%
-	\def\sourcename{Fonte:}
-	\def\notename{Nota}%%
-

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-coord.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-coord.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-coord.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,167 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-ptBR-coord}
-\def\tc at tmp@altpackname{ufrgsccaptbrcoord}
-\def\tc at tmp@packdesc{UFRGS/CCA Portuguese coord defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-
-\calendartitle{Calendário – \tcdef at coord@TCCperiod}
-
-\tcccalendarhead{Data/Período}{Semana Letiva}{Evento}
-\tcceventAweek{01}
-\tcccalendarevent{\tcdef at coord@tcceventAweek}{Apresentação da disciplina. Informações gerais. Reunião presencial com início às 18:30h, no Salão de Eventos do DELET.\newline {\bf Presença obrigatória.}}
-\tcceventBweek{02}
-\tcccalendarevent{\tcdef at coord@tcceventBweek}{Requerimento de matrícula. O(A) aluno(a) deve abrir processo/petição de matrícula em TCC no porta TuaUFRGS, adicionando ao mesmo o \emph{Formulário de Requerimento de Matrícula}, já com o resumo do trabalho,  a ser encaminhado a\tccore@@ref{TCCcoord}{article} coordenador\tccore@@ref{TCCcoord}{narticle} da atividade. \newline{\bf Obs.~1}}
-%\tcccalendarevent{03}{Entrega do \emph{Formulário de Inscrição}, juntamente com o resumo do trabalho, no \tcdef at cover@secdivisionacronym .}
-\tcceventCweek{07}
-\tcccalendarevent{\tcdef at coord@tcceventCweek}{Encontro presencial: Como redigir um TCC, melhores práticas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}}
-\tcceventDweek{09}
-\tcccalendarevent{\tcdef at coord@tcceventDweek}{Entrega VIA MOODLE do \emph{Relatório Parcial}, juntamente com o \emph{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} assinado pelo orientador. \newline{\bf Obs.~2}}
-\tcceventEweek{15}
-\tcccalendarevent{\tcdef at coord@tcceventEweek}{Entrega de uma cópia impressa (ou eletrônica) do Trabalho de Conclusão a cada membro da banca, juntamente com os \emph{Formulários de Avaliação} e \emph{Formulários de correções} do trabalho. Entrega VIA MOODLE de uma cópia eletrônica do trabalho juntamente com o \emph{Formulário de Aprovação para Apresentação} e os recibos de recebimento assinados e datados pelos membros das bancas.}
-\tcceventFweek{16}
-\tcccalendarevent{\tcdef at coord@tcceventFweek}{Encontro presencial: Como apresentar um TCC, melhores técnicas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}}
-\tcceventGweek{17}
-\tcccalendarevent{\tcdef at coord@tcceventGweek}{Apresentações dos Trabalhos de Conclusão de Curso. \newline{\bf Obs.~3}}
-\tcceventHweek{17}
-\tcccalendarevent{\tcdef at coord@tcceventHweek}{Entrega VIA MOODLE dos \emph{Formulários de correções} dos membros da banca.}
-\tcceventIweek{18}
-\tcccalendarevent{\tcdef at coord@tcceventIweek}{Entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~4}}
-\tcceventJweek{19}
-\tcccalendarevent{\tcdef at coord@tcceventJweek}{Para os TCCs em RECUPERAÇÃO, entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~5}}
-
-
-\tcccalendardesc{\begin{description}
-\item[Obs. 1]: Caso o aluno(a) já tenha um processo aberto de TCC, reusar o mesmo apenas anexando o novo requerimento de matrícula, caso necessário.
-\item[Obs. 2]: O relatório deve conter as declarações de concordância em participar da banca da parte dos professores convidados.
-\item[Obs. 3]: As bancas serão marcadas após a entrega do relatório parcial, de acordo com a disponibilidade dos professores convidados.
-\item[Obs. 4]: O \emph{Formulário de Aprovação das Correções} deve estar assinado pelo(a) orientador(a). Para relatórios em que o campo “Revisarei o trabalho depois de corrigido” tiver sido assinalado por algum membro da banca, a assinatura do(a) mesmo(a) também deverá constar no \emph{Formulário de Aprovação das Correções}.
-\item[Obs. 5]: Trabalho em RECUPERAÇÃO é aquele cuja nota final quando da defesa é insuficiente para aprovação OU aquele em que o campo “Reescrever tudo” do formulário de correções foi marcado por algum membro da banca. Neste caso, o \emph{Formulário de Aprovação das Correções} deve estar assinado tanto pelo(a) orientador(a) como pelo(s) membro(s) da banca designado(s) para reavaliar o trabalho, incluindo obrigatoriamente aqueles que tiverem marcado o campo “Revisarei o trabalho depois de corrigido”.\\\hrule
-\item[IMPORTANTE]: O(A) aluno(a) estará {\bf REPROVADO(A)} \emph{se falhar na entrega de qualquer um dos documentos aqui citados dentro dos prazos estipulados}.
-\end{description}}
-
-
-\studentlistformtitle{Lista de presença, \tcdef at coord@studentlistactivity, dia \tcdef at coord@studentlistdate}
-\studentlistactivity{apresentação da atividade de TCC}
-\studentlistdate{\number\day/\number\month}
-
-\tccreporttitle{Relatório parcial/final}
-\tccreportopening{Para registro}
-\tccreportdesc{Relatório parcial/final referente aos alunos matriculados na atividade de ensino de \tcdef at forms@formstitle\  semestre \tcdef at coord@TCCperiod .}
-
-\tccreportabsents{Desistentes com conceito (segundo semestre)}
-\tccreportdismiss{Desistentes sem conceito (primeiro semestre)}
-\tccreferralopening{Ao\\ \tcdef at cover@secretaryacronym\ da \tcdef at cover@universitydivision}
-
-\internshipreferralopening{Ao\\ \tcdef at cover@secretaryacronym\ da \tcdef at cover@universitydivision}
-
-
-\internshipgrades{%
-    \noindent\tcdef at forms@internshipsupervisorinfo\\%
-    \noindent Avaliação do Supervisor:
-    {\small\begin{center} \begin{tabular}{rcrcrc}
-    Qualidade do Trabalho: & \textbf{\tccore@@ref{supervisor}{pointAA}} & Engenhosidade: &\textbf{\tccore@@ref{supervisor}{pointAB}} &  Conhecimentos: & \textbf{\tccore@@ref{supervisor}{pointAC}} \\
-    Cumprimento de Tarefas: & \textbf{\tccore@@ref{supervisor}{pointAD}} &
-    Iniciativa: & \textbf{\tccore@@ref{supervisor}{pointAE}} & \textsc{Total I:} & \textbf{\tccore@@ref{supervisor}{gradeA}}\\\hline
-    Assiduidade: & \textbf{\tccore@@ref{supervisor}{pointBA}} &  Disciplina: & \textbf{\tccore@@ref{supervisor}{pointBB}} & Sociabilidade: & \textbf{\tccore@@ref{supervisor}{pointBC}} \\  Cooperação: & \textbf{\tccore@@ref{supervisor}{pointBD}} & Responsabilidade: & \textbf{\tccore@@ref{supervisor}{pointBE}} & \textsc{Total II:} & \textbf{\tccore@@ref{supervisor}{gradeB}}
-    \end{tabular}\end{center}}
-    \noindent\tcdef at forms@internshiptutorinfo\\%
-    \noindent Avaliação do Tutor: \textbf{\tccore@@ref{tutor}{grade}}\\%
-
-    \noindent Coordenador: \textbf{\tcdef at core@internshipcoord}\\%
-    \noindent Avaliação do Coordenador: \textbf{\tccore@@ref{internship}{coordgrade}}\\[5mm]%
-    \noindent \textsc{Nota Final:} \textbf{\tccore@@ref{student}{Temp}}\\%
-    \noindent {\footnotesize $\frac{2 * (Total~I + Total~II) + Tutor + Coord.}{28}$}\\%
-}
-
-\internshipreferralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o entregou o Relatório de Estágio Supervisionado Obrigatório até a data limite de \tc at internshipcommitBB\ sendo, portanto, considerado \tcdef at coord@referralfailed\  com conceito final \textbf{FF}.}
-
-
-\referralfailed{{REPROVAD\tccore@@ref{student}{Article}}}
-\referralapproved{{APROVAD\tccore@@ref{student}{Article}}}
-
-\referralexamapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\  no dia  \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef at coord@referralapproved\ com conceito final \tc at TCCgradeC .}
-
-\referralexamfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\  no dia  \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article}  pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef at coord@referralfailed\ com conceito final \tc at TCCgradeD .}
-
-\referralfatetext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\  no dia \tccore@@ref{student}{date}, tendo sido \tccoord at referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc at studentcount}}}, conforme quadro de notas abaixo. }
-
-\referralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o concluiu o trabalho de conclus\~{a}o de Curso tendo sido \tcdef at coord@referralfailed\  com conceito final \textbf{FF}.}
-
-
-%%% for TCC-I
-\referralexamapprovedtextTR{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ submeteu o trabalho intitulado \emph{\tccore@@ref{student}{title}}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef at coord@referralapproved\ com conceito final \tc at TCCgradeC .}
-
-\referralexamfailtextTR{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ submeteu o trabalho intitulado \emph{\tccore@@ref{student}{title}}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article}  pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef at coord@referralfailed\ com conceito final \tc at TCCgradeD .}
-
-\referralfatetextTR{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ submeteu o trabalho intitulado \emph{\tccore@@ref{student}{title}}, tendo sido \tccoord at referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc at studentcount}}}, conforme quadro de notas abaixo. }
-
-%%\referralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o concluiu o trabalho de conclus\~{a}o de Curso tendo sido \tcdef at coord@referralfailed\  com conceito final \textbf{FF}.}
-
-
-
-
-
-
-\internshipreferralfatetext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tccore@@ref{student}{}, cartão No. \tccore@@ref{student}{ID}, Matriculado na Atividade de Estágio Supervisionado Obrigatório, estagiou na Empresa \tccore@@ref{internship}{company}, no período de \tccore@@ref{internship}{start} até \tccore@@ref{internship}{end}, tendo entregue o Relatório de Estágio Supervisionado Obrigatório em
-\tccore@@ref{student}{date}, tendo sido considerado \tccoord at referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc at studentcount}}}, conforme notas abaixo.}
-
-
-\internshipreferralexamapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}, cartão No. \tccore@@ref{student}{ID}, matriculado na Atividade de Estágio Supervisionado Obrigatório, estagiou na Empresa \tccore@@ref{internship}{company}, no período de \tccore@@ref{internship}{start} até \tccore@@ref{internship}{end}, tendo entregue o relatório de Estágio Supervisionado Obrigatório
-em data posterior a data limite de \tc at internshipcommitAA, estando em Exame. Conforme notas abaixo o mesmo foi considerado \tcdef at coord@referralapproved\  com conceito final \textbf{\tc at TCCgradeC}.}
-
-\internshipreferralexamfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}, cartão No. \tccore@@ref{student}{ID}, matriculado na Atividade de Estágio Supervisionado Obrigatório, estagiou na Empresa \tccore@@ref{internship}{company}, no período de \tccore@@ref{internship}{start} até \tccore@@ref{internship}{end}, tendo entregue o relatório de Estágio Supervisionado Obrigatório em
-em data posterior a data limite de \tc at internshipcommitAA, estando em Exame. Conforme notas abaixo o mesmo foi considerado \tcdef at coord@referralfailed\  com conceito final \textbf{\tc at TCCgradeD}.}
-
-\internshipreferralexamhardapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}, cartão No. \tccore@@ref{student}{ID}, matriculado na Atividade de Estágio Supervisionado Obrigatório, estagiou na Empresa \tccore@@ref{internship}{company}, no período de \tccore@@ref{internship}{start} até \tccore@@ref{internship}{end}. O mesmo foi posto em Exame pois o relatório de Estágio Supervisionado Obrigatório
-inicialmente submetido apresentava diversos problemas formais, tendo re-submetido o mesmo em \tccore@@ref{student}{date}. Conforme notas abaixo o mesmo foi considerado \tcdef at coord@referralapproved\  com conceito final \textbf{\tc at TCCgradeC}.}
-
-\internshipreferralexamhardfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}, cartão No. \tccore@@ref{student}{ID}, matriculado na Atividade de Estágio Supervisionado Obrigatório, estagiou na Empresa \tccore@@ref{internship}{company}, no período de \tccore@@ref{internship}{start} até \tccore@@ref{internship}{end}. O mesmo foi posto em Exame pois o relatório de Estágio Supervisionado Obrigatório
-inicialmente submetido apresentava diversos problemas formais, tendo re-submetido o mesmo em \tccore@@ref{student}{date}. Conforme notas abaixo o mesmo foi considerado  \tcdef at coord@referralfailed\  com conceito final \textbf{\tc at TCCgradeD}.}
-
-
-\boardlabel{Banca Examinadora}
-\boardstitle{Apresentações TCC em \tcdef at cover@course\ \tcdef at coord@TCCperiod\ \tcdef at coord@boardstitleB\ }
-\boardsworklabel{Título}
-\TCCgradesNlabel{Nota}
-\TCCgradesClabel{Conceito}
-\TCCgrades{A}{B}{C}{D}{FF}
-\TCCgradesN{9}{7.5}{6}
-
-\cocertificatetitle{CERTIFICADO}
-\cocertificateopenning{\`{A} quem interessar possa,\\ certificamos que}
-\cocertificatetext{atuou como co-orientador\tccore@@ref{coadvisor}{narticle} d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article}\ \emph{\tccore@@ref{student}{}}\ no trabalho de conclus\~{a}o de curso intitulado \emph{\tccore@@ref{student}{title}}\ no semestre \tcdef at coord@TCCperiod.}
-
-\TCCcoordtitle{Coordenador\tccore@@ref{TCCcoord}{narticle} da atividade de ensino de\\ \tcdef at forms@formstitle\ }
-\TCCIcoordtitle{Coordenador\tccore@@ref{TCCcoord}{narticle} da atividade de ensino de\\ \tcdef at forms@formstitleTR\ }
-
-
-\advisornamegen{Orientador(a)}
-\advisornameplural{Orientadores}

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-core.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-core.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-core.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,95 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-ptBR-core}
-\def\tc at tmp@altpackname{ufrgsccaptbrcore}
-\def\tc at tmp@packdesc{UFRGS/CCA Portuguese core defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-
-\location{Porto~Alegre}{RS}
-
-\university{Universidade Federal do Rio Grande do Sul}
-\universityacronym{UFRGS}
-\universitydivision{Escola de Engenharia}
-\divisiongradcouncil{Conselho de Graduação da \tcdef at cover@universitydivision}
-
-\secretaryacronym{SACAD}
-\secdivisionacronym{\tcdef at cover@secretaryacronym/EE}
-\graduationtitle{Bacharel em Eng. de Controle e Automa\c{c}\~{a}o}
-\course{Eng. de Controle e Automa\c{c}\~{a}o}
-\courseacronym{CCA}
-\coursecoord{Atual Coordenador(a) do Curso}
-\coursecoordtitle{Coordenador\tccore@@ref{coursecoord}{narticle} de curso}
-\advisorname{Orientador\tccore@@ref{advisor}{narticle}}%
-\coadvisorname{Co-orientador\tccore@@ref{coadvisor}{narticle}}%
-
-\iftcif at nonrequired
-  \internshiptitle{Relatório de Estágio Não Obrigatório}
-\else
-  \internshiptitle{Relatório de Estágio Supervisionado Obrigatório em \tcdef at cover@course}
-\fi
-
-\internshipcoord{Atual Coordenador(a) de Estágios}
-\internshipcoordtitle{Coord\tccore@@ref{internshipcoord}{narticle}. da Atividade de Estágio Supervisionado Obrigatório}
-
-\iftcif at nonrequired
-    \internshipinfo{%
-    Este Relatório foi julgado adequado para a \textsl{Atividade de Estágio Não Obrigatório}
-    em \emph{\tcdef at cover@course\ } e aprovado em sua forma final pel\tccore@@ref{tutor}{article} Tutor\tccore@@ref{tutor}{narticle} e
-    Supervisor\tccore@@ref{supervisor}{narticle}.
-}%
-\else
-    \internshipinfo{%
-    Este Relatório foi julgado adequado para a obtenção do conceito final na \textsl{Atividade de Estágio Supervisionado Obrigatório}
-    em \emph{\tcdef at cover@course\ } e aprovado em sua forma final pel\tccore@@ref{tutor}{article} Tutor\tccore@@ref{tutor}{narticle},
-    Supervisor\tccore@@ref{supervisor}{narticle} e Coordenador\tccore@@ref{internshipcoord}{narticle} da Atividade.
-    }%
-\fi
-
-
-\examinername{Banca Examinadora}%
-
-\reportspecificinfo{%
-		Trabalho de Conclus\~{a}o de Curso (TCC-\tcdef at cover@courseacronym ) apresentado \`{a}
-		COMGRAD-\tcdef at cover@courseacronym\  da \tcdef at cover@university\ como parte dos requisitos para a
-		obten{\c{c}}{\~a}o do t\'{\i}tulo de \emph{\tcdef at cover@graduationtitle\ }.
-}%
-
-\approvalspecificinfo{%
-		Este Trabalho de Conclus\~{a}o de Curso foi julgado adequado para a
-		obten\c{c}\~ao dos cr\'editos da Disciplina de TCC do curso \emph{\tcdef at cover@course\ } e aprovado em sua forma final pel\tccore@@ref{advisor}{article}
-		Orientador\tccore@@ref{advisor}{narticle} e pela Banca Examinadora.
-}%
-
-\profname{Professor\tccore@@ref{advisor}{narticle}}
-\coprofname{Professor\tccore@@ref{coadvisor}{narticle}}
-\tutorname{Tutor\tccore@@ref{tutor}{narticle}}
-\supervisorname{Supervisor\tccore@@ref{supervisor}{narticle}}
-
-

Deleted: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-forms.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-forms.def	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ptBR-forms.def	2023-11-24 21:13:10 UTC (rev 68960)
@@ -1,319 +0,0 @@
-%%%==============================================================================
-%% Copyright 2022-23 by Alceu Frigeri
-%%
-%% This work may be distributed and/or modified under the conditions of
-%%
-%% * The [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
-%%   version 1.3c (or later), and/or
-%% * The [GNU Affero General Public License](https://www.gnu.org/licenses/agpl-3.0.html),
-%%   version 3 (or later)
-%%
-%% This work has the LPPL maintenance status *maintained*.
-%%
-%% The Current Maintainer of this work is Alceu Frigeri
-%%
-%% This is version 1.12 (2023/09/23)
-%%
-%% The list of files that compose this work can be found in the README.md file at
-%% https://ctan.org/pkg/ufrgscca
-%%
-%%%==============================================================================
-%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil
-%% EE    stands for "Engineering School"
-%% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
-%%%==============================================================================
-\makeatletter
-\def\tc at tmp@packname{ufrgscca-ptBR-forms}
-\def\tc at tmp@altpackname{ufrgsccaptbrforms}
-\def\tc at tmp@packdesc{UFRGS/CCA Portuguese forms defs}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-
-
-%%%%%%
-%%%%%%
-%%%%%% forms
-%%%%%%
-%%%%%%
-%%%%%%
-
-\formlocal{\tc at city,\hspace{4mm} de \hspace{1.2cm} de 20\hspace{4mm}.}
-
-\formssignaturelabel{Assinatura}
-\examinersignature{Assinatura\ \ d\tccore@@ref{examiner}{article}\ \ Avaliador\tccore@@ref{examiner}{narticle}}
-\boardsignature{Assinatura\ \ do\ \ Membro\ \ da\ \ Banca}
-\advisorsignature{Assinatura\ \ d\tccore@@ref{advisor}{article}\ \ Orientador\tccore@@ref{advisor}{narticle}}
-\coadvisorsignature{Assinatura\ \ d\tccore@@ref{coadvisor}{article}\ \ Co-orientador\tccore@@ref{coadvisor}{narticle}}
-\studentsignature{Assinatura\ \ d\tccore@@ref{student}{article}\ \ Alun\tccore@@ref{student}{article}}
-\studentsignaturegen{Assinatura\ \ do(a)\ \ Aluno(a)}
-\formsstudentlabel{Alun\tccore@@ref{student}{article}}
-\formsstudentlabelgen{Aluno(a)}
-\formproflabel{Professor(a)}
-\profname{Professor\tccore@@ref{advisor}{narticle}}
-\coprofname{Professor\tccore@@ref{coadvisor}{narticle}}
-\formsboardlabel{Membro da Banca}
-\formsadvisorlabel{Orientador\tccore@@ref{advisor}{narticle}}
-\formsadvisorlabelgen{Orientador(a)}
-\formscoadvisorlabel{Co-orientador\tccore@@ref{advisor}{narticle}}
-\formsexaminerlabel{Avaliador\tccore@@ref{examiner}{narticle}}
-\formsaltexaminerlabel{Suplente}
-\formstimelabel{Horário}
-
-\formssupervisorlabel{Supervisor\tccore@@ref{supervisor}{narticle}}
-
-
-%\formstopicAlabel{Conteúdo}
-%\formstopicBlabel{Trabalho Escrito}
-%\formstopicClabel{Apresentação}
-\formsworktitlelabel{Título do Trabalho}
-\formstemptitlelabel{Título Provisório}
-\formsstudentIDlabel{Cartão}
-\formsemaillabel{e-mail}
-\formsphonelabel{ramal}
-\agreelabel{De Acordo}
-
-\continuelabel{Continua...}
-
-\formsdatelabel{Data}
-\formstitle{Trabalho de Conclusão de Curso II}% em  \tcdef at cover@course}
-\formstitleTR{Trabalho de Conclusão de Curso I}% em  \tcdef at cover@course}
-\formsfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho.}
-
-
-\renewreqformtitle{Formulário de Renovação da Inscrição na Atividade de Ensino Trabalho de Conclusão em \tcdef at cover@course}
-
-\reqArgument{ \noindent O Tema do Trabalho e Orientador (Co-orientador) seguem sendo os mesmos de TCC I ?
-\begin{itemize}[tcc,noitemsep]
- \item[$\Box$] SIM
- \item[$\Box$] NÃO, neste caso \textbf{justifique} a mudança no espaço a seguir:
- \end{itemize}}
-
-\renewreqformnotes{O resumo deve ser curto, i.e., não deve exceder este espaço. O texto deve ser escrito em parágrafo único, e por se tratar de proposta, poderá utilizar tempo futuro e não necessita ter motivação ou justificativa.\\
-Deve conter:
-\begin{enumerate*}[alpha)]
-	\item O QUE será feito - descrição e objetivos.
-   \item COMO será feito - metodologia.
-	\item Resultados esperados.
-\end{enumerate*}
-}
-
-\reqformtitle{Formul\'{a}rio de Requerimento de Matr\'{i}cula}
-\reqformopening{Ilm\tccore@@ref{coursecoord}{article}. Sr\tccore@@ref{coursecoord}{narticle}.\par
- Coordenador\tccore@@ref{coursecoord}{narticle} da  Comissão de Graduação do Curso em \tcdef at cover@course\  {da \tcdef at cover@universityacronym\ }}
-%\reqformopening{algo}
-
-\reqformdescgen{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc at studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} neste período letivo no curso \emph{\tcdef at cover@course\ }, desta universidade, portador\tccore@@ref{student}{narticle} do cartão de identificação n$^o$ \tc at studentAID\ vem por meio deste solicitar matrícula na atividade de ensino}
-
-
-\reqformdesc{\tcdef at forms@reqformdescgen\ \tcdef at forms@formstitle}
-
-\reqformdescTR{\tcdef at forms@reqformdescgen\ \tcdef at forms@formstitleTR}
-
-\formsinternshiptitle{Estágio Supervisionado Obrigatório}% em \tcdef at cover@course}
-
-\reqforminternshipdesc{\tcdef at forms@reqformdescgen\ \tcdef at forms@formsinternshiptitle}
-
-\supervisorsignature{Assinatura\ \ d\tccore@@ref{supervisor}{article}\ \ Supervisor\tccore@@ref{supervisor}{narticle}}
-\tutorsignature{Assinatura\ \ d\tccore@@ref{tutor}{article}\ \ Tutor\tccore@@ref{tutor}{narticle}}
-\internshipcoordsignature{Assinatura\ \ d\tccore@@ref{internshipcoord}{article}\ \ Coordenador\tccore@@ref{internshipcoord}{narticle}}
-
-\supervisorformtitle{Formulário de Avaliação do Supervisor (Pela Empresa)}
-\tutorformtitle{Formulário de Avaliação do Tutor e Coordenador}
-
-\interntutorgrade{Avaliação d\tccore@@ref{tutor}{article} Prof\tccore@@ref{tutor}{narticle}. Tutor\tccore@@ref{tutor}{narticle}:\emptybox}
-
-\interncoordgrade{Avaliação d\tccore@@ref{internshipcoord}{article} Prof\tccore@@ref{internshipcoord}{narticle}. Coordenador\tccore@@ref{internshipcoord}{narticle}:\emptybox}
-
-
-\reqforminternshipinfo{%
-   \tcdef at forms@formsstudentemaillabel : {\bf \tc at studentAemail} %
-\vspace{2mm}
-
-Tutor : \tc at studentA@tutor%
-
-Email do Tutor: {\bf \tccore@@ref{tutor}{email}}%
-\hfill Ramal: {\bf \tccore@@ref{tutor}{phone}}%
-\vspace{2mm}
-
-
-Empresa: {\bf \tccore@@ref{internship}{company}}%
-
-Área de Atividade: {\bf \tccore@@ref{internship}{field}}%
-\vspace{2mm}
-
-Supervisor\tccore@@ref{supervisor}{narticle}: {\bf \tccore@@ref{supervisor}{}} \hfill CREA: {\bf \tccore@@ref{supervisor}{register}}
-
-Cargo: {\bf \tccore@@ref{supervisor}{office}}\hfill Email: {\bf \tccore@@ref{supervisor}{email}} \hfill Fone: {\bf \tccore@@ref{supervisor}{phone}}   %
-\vspace{2mm}
-
-Data de Início: {\bf \tccore@@ref{internship}{start}}\hfill Previsão de Término: {\bf \tccore@@ref{internship}{end}}\hfill Duração: {\bf \tccore@@ref{internship}{length}}
-}
-
-\internshipreqformnotes{O prazo final de entrega do relatório é até 21 dias antes do término do período letivo posterior à    inscrição na atividade. Relatórios não entregues até esta data serão considerados \textbf{\emph{Em Exame}}. Relatórios não entregues até 14 dias antes do término do período letivo considerado implicam a atribuição de \textbf{\emph{conceito FF}}, com o consequente encerramento do processo.}
-
-\internshipstudentinfo{
-    Aluno: \textbf{\tccore@@ref{student}{}}\hfill Cartão:\textbf{\tccore@@ref{student}{ID}}%
-}
-\internshipcompanyinfo{%
-    Empresa: {\bf \tccore@@ref{internship}{company}}\\%
-Área de Atividade: {\bf \tccore@@ref{internship}{field}}%
-}
-\internshipsupervisorinfo{
-    Supervisor:  \textbf{\tccore@@ref{supervisor}{}} \hfill crea:\textbf{\tccore@@ref{supervisor}{register}}%
-}
-\internshiptutorinfo{
-Tutor:  \textbf{\tccore@@ref{tutor}{}}%
-}
-\internshipcoordinfo{
-Coordenador da Atividade:  \textbf{\tccore@@ref{internshipcoord}{}}%
-}
-
-
-\internshipperiod{
-    Período do Estágio de: {\bf \tccore@@ref{internship}{start}} até: {\bf \tccore@@ref{internship}{end}}
-}
-
-\def\emptybox{\framebox[3em]{\color{white}W}}
-
-\internsupervisorgradesform{
-\begin{itemize}[tcc,nosep]
- \item Grupo I - Aspectos Profissionais
-   \begin{enumerate}[tcc,nosep]
-     \item \textbf{Qualidade do Trabalho}:\emptybox\\ {\footnotesize considerar a qualidade do trabalho tendo em vista o que seria desejável}
-     \item \textbf{Engenhosidade}:\emptybox\\ {\footnotesize capacidade de sugerir, projetar ou executar modificações ou inovações.}
-     \item \textbf{Conhecimentos}:\emptybox\\ {\footnotesize conhecimento demonstrado no desenvolvimento das atividades programadas.}
-     \item \textbf{Cumprimentos das Tarefas}:\emptybox\\ {\footnotesize     considerar o volume de atividades cumpridas dentro de um padrão razoável.}
-     \item \textbf{Iniciativa}:\emptybox\\ {\footnotesize iniciativa para desenvolver suas atividades sem dependências de outros.}
-   \end{enumerate}
- \item Grupo II - Aspectos Humanos
-    \begin{enumerate}[tcc,nosep]
-     \item \textbf{Assiduidade}:\emptybox\\ {\footnotesize cumprimento do horário do estágio e ausência de falhas}
-\item \textbf{Disciplina}:\emptybox\\ {\footnotesize observância das normas e regulamentos internos da empresa.}
-\item \textbf{Sociabilidade}:\emptybox\\ {\footnotesize facilidade de se integrar com colegas e ambiente de trabalho.}
-\item \textbf{Cooperação}:\emptybox\\ {\footnotesize     disposição para cooperar com colegas e para atender a atividades..}
-\item \textbf{Senso de Responsabilidade}:\emptybox\\ {\footnotesize zelo pelo material, equipamentos e bens da empresa.}
-    \end{enumerate}
-\end{itemize}
-}
-
-\internsupervisorcomments{Considerações Complementares:}
-\internshiptutorcomments{Considerações do Prof. Tutor sobre o Estágio:}
-\internshipcoordcomments{Considerações Finais do Prof. Coordenador sobre o Estágio:}
-
-\internsupervisornote{Favor utilizar a seguinte grade discreta: \begin{enumerate*}[start=0]\item Sofrível \item Regular \item Bom \item Muito Bom \item Excelente \end{enumerate*}
-}
-\coadvisorformtitle{Requerimento de Autorização de Co-Orientação}
-\coadvisorformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc at studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} na atividade de TCC neste período letivo, vem por meio deste solicitar autorização para registro de co-orientação de TCC, conforme justificativa abaixo.}
-
-\formsbrieflabel{Resumo}
-
-\formsstudentemaillabel{Email d\tccore@@ref{student}{article} Alun\tccore@@ref{student}{article}}
-
-\formsadvisoremaillabel{Email d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}
-
-\formscoadvisoremaillabel{Email d\tccore@@ref{coadvisor}{article} Co-Orientador\tccore@@ref{coadvisor}{narticle}}
-
-\formsreasonlabel{Justificativa}
-
-
-\examformtitle{Formul\'{a}rio de Avalia\c{c}\~{a}o}
-
-\examformdesc{A nota (variando de zero a dez) atribuída por cada membro da banca examinadora será dada considerando o desempenho d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} nos 3 pontos apresentados na tabela abaixo.}
-
-\examformnoteslabel{Observações}
-
-\examformnotes{\ \\Posteriormente, \tccore@@ref{TCCcoord}{article} professor\tccore@@ref{TCCcoord}{narticle} coordenador\tccore@@ref{TCCcoord}{narticle} calculará a nota final atribuída por cada membro da banca examinadora, de acordo com a seguinte ponderação:\\[2mm] {\bf Nota Final Banca = \tc at TCCpointAweight\ x \tc at TCCpointAlabel\  + \tc at TCCpointBweight\ x \tc at TCCpointBlabel\  + \tc at TCCpointCweight\ x \tc at TCCpointClabel\ } \\[2mm] A média final da atividade será dada pela média das notas finais (calculadas com a expressão acima) atribuidas por cada um dos membros da banca examinadora.}
-
-\examboardformtitle{Formulário de Aprovação da Banca Examinadora}
-
-\examboardformtitleTMP{Formulário de Aprovação do Relatório Parcial e Banca Examinadora}
-
-\examboardformdescTMP{Aprovo o Relatório Parcial e nominata da Banca Examinadora acima relacionada.}
-
-\examboardformdesc{Aprovo a nominata da Banca Examinadora acima relacionada.}
-
-\formsboardtitle{Banca Examinadora}
-
-\advisorapprovalformtitle{Formulário de Aprovação para Apresentação}
-
-\advisorapprovalformdesc{{\bf Parecer d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}\footnote{Preenchimento Obrigatório}}
-
-%\advisorapprovalformdescB{Aprovo a versão final do trabalho submetido pel\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} e considero \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} para apresentação.}
-\advisorapprovalformdescB{}
-
-\rectifyapprovalformtitle{Formulário de Aprovação das Correções}
-
-\rectifyapprovalformdesc{\begin{description}
-\item[Observação 1:] A nota final será a já atribuída pela Banca Examinadora no momento da Defesa. Caso a versão final corrigida do trabalho mais este formulário não sejam entregues até a data estipulada, o conceito do aluno passará a ser {\bf D}.
-\item[Observação 2:] A assinatura d\tccore@@ref{advisor}{article} orientador\tccore@@ref{advisor}{narticle} é obrigatória, entretanto a assinatura dos membros da banca só é necessária caso o(a) mesmo(a) tenha marcado a opção ''$\Box$ Revisarei o trabalho depois de corrigido'' no \emph{Formulário de Correções}.
-\end{description}}
-
-\rectifyapprovalTRformdesc{\begin{description}
-\item[Observação 1:] A nota final será a já atribuída pela Banca Examinadora via o \emph{\tcdef at forms@formsTRtitle}. 
-Caso a versão final corrigida do trabalho mais este formulário não sejam entregues até a data estipulada, o conceito do aluno passará a ser {\bf D}.
-\item[Observação 2:] A assinatura d\tccore@@ref{advisor}{article} orientador\tccore@@ref{advisor}{narticle} é obrigatória, 
-entretanto a assinatura dos membros da banca só é necessária caso o(a) mesmo(a) tenha marcado a opção ''$\Box$ Revisarei o trabalho depois de corrigido'' no \emph{\tcdef at forms@formsTRtitle}.
-\end{description}}
-
-
-\receiptformtitle{Recibo de entrega de cópia da versão final do Trabalho de Conclusão}
-
-\receiptformfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar ao \tcdef at cover@secretaryacronym .}
-
-\receiptformdesc{Declaro que encontra-se em minha posse cópia da versão final do Trabalho de Conclusão de Curso em \tcdef at cover@course\  d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} }
-
-
-\reviewformtitle{Formulário de Correções}
-\reviewformdesc{O texto submetido:
- \parbox[t]{.75\textwidth}{
-    \begin{itemize}[tcc,nosep]
-     \item[$\Box$] Está adequado, dispensando correções do texto.
-     \item[$\Box$] Está adequado, sendo necessário correções, conforme a
-      seguir (e anotações anexas).
-      	\begin{description}[tcc,noitemsep]
-        	\item[$\Box$] Ortográfica
-        	\item[$\Box$] Regras de Escrita
-        	\item[$\Box$] Equações
-        	\item[$\Box$] Resumo
-        	\item[$\Box$] Abstract
-        	\item[$\Box$] Índice
-        	\item[$\Box$] Introdução
-        	\item[$\Box$] Conclusões
-        	\item[$\Box$] Corpo do Trabalho
-        	\item[$\Box$] Resultados
-        	\item[$\Box$] Adicionar mais exemplos
-        	\item[$\Box$] Figuras
-        	\item[$\Box$] Tabelas
-        \end{description}
-     \item[$\Box$] Necessita ser revisto/re-escrito,\footnotemark[2] e: 
-       \begin{itemize}
-         \item[$\Box$] basta a revisão final do texto pelo orientador,
-         \item[$\Box$] revisarei o trabalho depois de corrigido.
-       \end{itemize}
-	\item[$\Box$] Outras considerações (se necessário): \\
-	\begin{tabular}{p{0.7\textwidth}}
-	~\\\hline
-	~\\\hline
-	~\\\hline
-	~\\\hline
-	\end{tabular}\\[-1mm]
-	\end{itemize}}
-}
-
-
-\formsTRtitle{Formulário de Avaliação do Trabalho}
-\TRformfootnote{Entregar a cada revisor do texto, juntamente com uma cópia do trabalho.}
-
-\reviewformfootnoteB{Neste caso \tccore@@ref{student}{article} alun\tccore@@ref{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}
-
-\reviewformfootnote{\tcdef at forms@formsfootnote\ Após a apresentação, retornar este à coordenação do TCC.}
-
-\formsrectifyOKdesc{Correções satisfatórias: \hspace*{1cm}$\Box$\ sim\hspace*{2cm}$\Box$\ não}
-
-\TCCpointsweight{0.35}{0.35}{0.3}
-\TCCpointslabel{Conteúdo}{Trab. Escrito}{Apresentação}
-
-\TCCIpointsweight{2.0}{2.0}{2.0}{1.0}
-\TCCIpointslabel{Tema}{Biblio.}{Plano Trab.}{Texto}

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls	2023-11-24 21:12:41 UTC (rev 68959)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls	2023-11-24 21:13:10 UTC (rev 68960)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version 1.12 (2023/09/23)
+%% This is version {2.0} {2023/11/23}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -23,17 +23,51 @@
 %% CCA   stands for "Control and Automation Engineering Course" (Portuguese acronym)
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
-\RequirePackage{expl3}
-\def\tc at tmp@packname{ufrgscca}
-\def\tc at tmp@altpackname{ufrgscca}
-\def\tc at tmp@packdesc{UFRGS/CCA  class}
-\def\tc at tmp@packdate{2023/09/23}
-\def\tc at tmp@packversion{1.12}
-\let\@exp\expandafter
-\@exp\edef\csname\tc at tmp@altpackname version\endcsname{\tc at tmp@packversion}
-\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc at tmp@packname\@exp}\@exp[\tc at tmp@packdate\space v\tc at tmp@packversion\space\tc at tmp@packdesc]
 
 
+\ProvidesExplClass
+    {ufrgscca}
+    {2023/11/23}
+    {2.0}
+    {UFRGS/CCA class}
+
+
+%%%%%%%
+%%%
+%%% Just an attempt of having my packages info in a regular way
+%%% Idea being: { <pck-name> / pkg info } for each and all.
+%%%
+%%%%%%%
+\keys_define:nn { ufrgscca / pkg info}
+  {
+     name        .code:n = {ufrgscca} ,
+     prefix      .code:n = {ufrgscca} ,
+     date        .code:n = {2023/11/23},
+     version     .code:n = {2.0} ,
+     description .code:n = {UFRGS/CCA~a~report~based~class~bundle}
+  }
+\cs_if_exist:NF \__codedesc_pkg_info:nn 
+  {
+    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
+      { \keys_set:nn {#1 / pkg info}{#2} }
+  }
+\cs_if_exist:NF \PkgInfo
+  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
+\cs_if_exist:NF \PkgDescription
+  { 
+    \NewDocumentCommand \PkgDescription {m} 
+      { 
+        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
+      } 
+  }
+%%%%%%%
+%%% End of cut-n-paste
+%%%%%%%
+
+
+
+
+
 \RequirePackage{etex}
 \RequirePackage{etoolbox}
 \RequirePackage{starray}
@@ -40,137 +74,226 @@
 \RequirePackage[T1]{fontenc}
 \RequirePackage[utf8]{inputenc}
 
+%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% TODO: to be decided, where to leave that !! 
+%%%       general purpose _propeties !!
+%%% 
+%%%%%%%%%%%%%%%%%%%%%%
 
+\prop_new:N \l__ufrgscca_terms_prop
+  
+\NewDocumentCommand{\SetHeadings}{m}
+  {
+    \prop_put_from_keyval:Nn \l__ufrgscca_terms_prop {#1}
+  }
 
+  %%
+  %% No protection, so it can be used in a fully expandable context (like \MakeUppercase)
+\cs_new:Npn \UseHeading #1 
+  { \prop_item:Nn \l__ufrgscca_terms_prop {#1} }
+
+
+%\prop_new:N \l__ufrgscca_terms_prop
+
+\NewDocumentCommand{\SetTerms}{+m}
+  {
+    \prop_put_from_keyval:Nn \l__ufrgscca_terms_prop {#1} 
+  } 
+  
+  %%
+  %% No protection, so it can be used in a fully expandable context (like \MakeUppercase)
+\cs_new:Npn \UseTerm #1 
+  { \prop_item:Nn \l__ufrgscca_terms_prop {#1} }
+
+\cs_new_protected:Npn \TermCase #1#2#3
+  {
+    \prop_if_in:NnTF \l__ufrgscca_terms_prop {#1} {#2} {#3}
+  } 
+
+%\prop_new:N \l__ufrgscca_labels_prop
+
+
+
+\NewDocumentCommand{\SetLabels}{m}
+  {
+    \prop_put_from_keyval:Nn \l__ufrgscca_terms_prop {#1} 
+  }
+
+  %%
+  %% No protection, so it can be used in a fully expandable context (like \MakeUppercase)
+\cs_new:Npn \UseLabel #1 
+  { \prop_item:Nn \l__ufrgscca_terms_prop {#1} }
+
+
+\prop_new:N \l__ufrgscca_const_prop
+
+\NewDocumentCommand{\SetConsts}{m}
+  {
+    \prop_put_from_keyval:Nn \l__ufrgscca_const_prop {#1}
+  }
+
+\cs_generate_variant:Nn \prop_item:Nn {Ne}
+
+  %%
+  %% No protection, so it can be used in a fully expandable context (like \MakeUppercase)
+\cs_new:Npn \UseConst #1 
+  { \prop_item:Ne \l__ufrgscca_const_prop {#1} }
+
+
+\bool_new:N \l__ufrgscca_repeatfields_bool
+\bool_new:N \l__ufrgscca_timesroman_bool
+\bool_new:N \l__ufrgscca_nolocal_bool
+
 %==============================================================================
 % Declaração de opções
 %==============================================================================
-\DeclareKeys[tc]{
-    tocdepth.usage = load,
-	tocdepth.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
-    secdepth.usage = load,
-	secdepth.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+\keys_define:nn { ufrgscca }
+  {
+    tocdepth        .usage:n    = load,
+	tocdepth        .code:n     = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+    secdepth        .usage:n    = load,
+	secdepth        .code:n     = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
 
-    english.usage = load,
-    english.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\OptionNotUsed},
-    relnum.usage = load,
-    relnum.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\PassOptionsToPackage{\CurrentOption}{ufrgscca-lists}\OptionNotUsed},
+%    english        .usage:n     = load,
+%    english        .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\OptionNotUsed},
 
-    pretextontoc.usage = load,
-    pretextontoc.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
-	timesroman.usage = load,
-    timesroman.if = tcif at timesroman,
-    yearsonly.usage = load,
-    yearsonly.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+		english       .usage:n          = load ,
+		english       .bool_set:N       = \l__ufrgscca_english_bool ,
+    
+    relnum         .usage:n     = load,
+    relnum         .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\PassOptionsToPackage{\CurrentOption}{ufrgscca-lists}\OptionNotUsed},
 
-    oneside.usage = load,
-    oneside.code = {\AtEndOfClass{\@twosidefalse}\OptionNotUsed},
-    strict-abnt.usage = load,
-    strict-abnt.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
-    repeatfields.usage = load,
-    repeatfields.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
-	chapternopagenum.usage = load,
-	chapternopagenum.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+    pretextontoc   .usage:n     = load,
+    pretextontoc   .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+	timesroman     .usage:n     = load,
+    timesroman     .bool_set:N  = \l__ufrgscca_timesroman_bool,
+    yearsonly      .usage:n     = load,
+    yearsonly      .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
 
-    nomicrotype.usage = load,
-    nomicrotype.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+    oneside        .usage:n     = load,
+    oneside        .code:n      = {\AtEndOfClass{\@twosidefalse}\OptionNotUsed},
+    strict-abnt    .usage:n     = load,
+    strict-abnt    .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+    repeatfields   .usage:n     = load,
+    repeatfields   .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+	chapternopagenum .usage:n   = load,
+	chapternopagenum .code:n    = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
 
-    showframes.usage = load,
-    showframes.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
-    showlabes.usage = load,
-    showlabes.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+    nomicrotype    .usage:n     = load,
+    nomicrotype    .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
 
-	xlists.usage = load,
-    xlists.if = tc at xlists,
-	xpacks.usage = load,
-	xpacks.if = tc at xpacks,
+    showframes     .usage:n     = load,
+    showframes     .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
+    showlabes      .usage:n     = load,
+    showlabes      .code:n      = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}},
 
-	nolocal.usage = load,
-	nolocal.if = tcif at nolocal,
+	xlists         .usage:n     = load,
+    xlists         .bool_set:N  = \l__ufrgscca_xlists_bool,
+	xpacks         .usage:n     = load,
+	xpacks         .bool_set:N  = \l__ufrgscca_xpacks_bool,
 
-    nofontwarning.usage = load,
-    nofontwarning.if = @nofontwarning,
+	nolocal        .usage:n     = load,
+	nolocal        .bool_set:N  = \l__ufrgscca_nolocal_bool,
 
-    report.usage = load,
-    report.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}},
-    internship.usage = load,
-	internship.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}},
-    nonrequired.usage = load,
-    nonrequired.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}},
+    nofontwarning  .usage:n     = load,
+    nofontwarning  .bool_set:N  = \l__ufrgscca_nofontwarning_bool,
 
-	texlive.usage = load,
-	texlive.if = tcif at texlive,
-	overleaf.usage = load,
-	overleaf.if = tcif at overleaf,
-	miktex.usage = load,
-	miktex.if = tcif at miktex,
+    report        .usage:n      = load,
+    report        .code:n       = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}},
+    internship    .usage:n      = load,
+	internship    .code:n       = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}},
+    nonrequired   .usage:n      = load,
+    nonrequired   .code:n       = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}},
 
-	article.usage = load,
-	article.if = tcif at article,
+	texlive       .usage:n      = load,
+	texlive       .bool_set:N   = \l__ufrgscca_texlive_bool,
+	overleaf      .usage:n      = load,
+	overleaf      .bool_set:N   = \l__ufrgscca_overleaf_bool,
+	miktex        .usage:n      = load,
+	miktex        .bool_set:N   = \l__ufrgscca_miktex_bool,
 
-	nogeometry.usage = load,
-	nogeometry.if = tcif at nogeometry,
-}
+	article       .usage:n      = load,
+	article       .bool_set:N   = \l__ufrgscca_article_bool,
 
-\DeclareUnknownKeyHandler[tc]{\PassOptionsToClass{\CurrentOption}{report}}
-\ProcessKeyOptions[tc]\relax
+	nogeometry    .usage:n      = load,
+	nogeometry    .bool_set:N   = \l__ufrgscca_nogeometry_bool,
 
-\iftcif at timesroman
-    \RequirePackage[english,brazilian]{babel}% babel has to be loaded BEFORE newtx*
+    oldrenews     .usage:n      = load,
+	oldrenews     .bool_set:N   = \l__ufrgscca_oldrenews_bool,
+
+    unknown       .code:n       = {\PassOptionsToClass{\CurrentOption}{report}},
+  }
+\ProcessKeyOptions[ufrgscca]\relax
+
+
+
+\bool_if:NTF \l__ufrgscca_timesroman_bool
+  {
+    \bool_if:NTF \l__ufrgscca_english_bool
+      {
+        \RequirePackage[brazilian,english]{babel}% babel has to be loaded BEFORE newtx*
+      }
+      {
+        \RequirePackage[english,brazilian]{babel}% babel has to be loaded BEFORE newtx*
+      }
     \RequirePackage{mathptmx}
-%    \RequirePackage[scale=1.05,looser]{newtxtext}%
-%    \RequirePackage[scale=1.05]{newtxmath}%
-%    \PackageWarning{ufrgscca}{Fonts newtxtext and newtxmath loaded. Those are free 'implementantion/interpletation' of the proprietary Times Roman (by Adobe) and Times New Roman (by Microsoft)}
-%    \PackageWarning{ufrgscca}{newtxtext and newtxmath are based on URW Nimbus Roman with some extra math support. Again, those are not real Times Roman nor Times New Roman}
     \PackageWarning{ufrgscca}{(obsolete) package mathptmx loaded. It loads a free 'implementantion/interpletation' of the proprietary Times Roman (by Adobe) and Times New Roman (by Microsoft)}
     \PackageWarning{ufrgscca}{package microtype is suppressed, resulting in a subpar layout. Again, the “Roman” font used isn't a true Times Roman nor Times New Roman}
-
-\else
+  }
+  {
     \RequirePackage{lmodern}%
-\fi
-
-\iftcif at article
+  }
+\bool_if:NTF \l__ufrgscca_article_bool
+  {
     \LoadClass[12pt]{article}
-\else
+  }
+  {
     \LoadClass[12pt,twoside,openright]{report}
-%    \LoadClass[12pt]{report}
-\fi
+  }
 
-\iftcif at miktex
-% \def\BabelCaseHack{}
- \ifcsdef{miktexHack}{\miktexHack}{}
-\fi
+\bool_if:NT \l__ufrgscca_miktex_bool
+  {
+    \ifcsdef{miktexHack}{\miktexHack}{}
+  }
+\bool_if:NT \l__ufrgscca_overleaf_bool
+  {
+    \ifcsdef{overleafHack}{\overleafHack}{}
+  }
+\bool_if:NT \l__ufrgscca_texlive_bool
+  {
+    \ifcsdef{texliveHack}{\texliveHack}{}
+  }
 
-\iftcif at overleaf
- \ifcsdef{overleafHack}{\overleafHack}{}
-\fi
 
-\iftcif at texlive
- \ifcsdef{texliveHack}{\texliveHack}{}
-\fi
-
-
 %%%%%%%%%%%%%%%%%%%%%
 %%% Packages Loading
 %%%%%%%%%%%%%%%%%%%%%
 \RequirePackage{silence}%
-\if at nofontwarning%
+
+\bool_if:NT \l__ufrgscca_nofontwarning_bool
+  {
   \WarningFilter{latexfont}{Font shape}%
   \WarningFilter{latexfont}{Size substitutions with differences}%
   \WarningFilter{latexfont}{Some font shapes were not available}%
-\fi%
+  }
 
 
 \RequirePackage{ufrgscca-abnt}
 
-\iftc at xlists\RequirePackage{ufrgscca-lists}\fi
+\bool_if:NT \l__ufrgscca_xlists_bool
+  {
+    \RequirePackage{ufrgscca-lists}
+  }
 
-\RequirePackage{ufrgscca-gen}
+
 \RequirePackage{ufrgscca-cover}
 \RequirePackage{ufrgscca-core}
 
 
-\iftc at xpacks
+\bool_if:NT \l__ufrgscca_xpacks_bool
+  {
+  \ExplSyntaxOff
     \RequirePackage{relsize}
     \RequirePackage{keyval,graphicx}
     \RequirePackage{mathtools}
@@ -193,31 +316,54 @@
 	\usetikzlibrary{shadows}%
 	\usetikzlibrary{babel}
     \RequirePackage{steinmetz}%
-\fi
+    \ExplSyntaxOn
+  }
 
 
+
+
+
 \WarningFilter{hyperref}{Option `pdftex' has already}
 
-\RequirePackage[hidelinks,hypertexnames=false]{hyperref}%
+\RequirePackage[hidelinks,hypertexnames=false]{hyperref}
+
 %%
 %% A few (hyperref related) commands
 %%
-\NewDocumentCommand{\autonameref}{O{, }mO{\space}}{\autoref{#2}#1\nameref{#2}#3}
+\NewDocumentCommand{\autonameref}{O{,\space}mO{}}{\autoref{#2}#1\nameref{#2}#3}
 \gdef\annexref#1{\hyperref[#1]{\defannexname\   \ref*{#1}}}
-\NewDocumentCommand{\autoannexref}{O{, }mO{\space}}{\annexref{#2}#1\nameref{#2}#3}
+\NewDocumentCommand{\autoannexref}{O{,~ }mO{}}{\annexref{#2}#1\nameref{#2}#3}
 
 
-\iftcif at english%
- \input{ufrgscca-en-core.def}%
-\else%
- \input{ufrgscca-ptBR-core.def}%
-\fi%
+\NewActivity{course} % yeah, CCA as an activity...
+\NewActivity{tccI}
+\NewActivity{tccII}
+\NewActivity{internship}
+\NewActivity{internship-opt}
 
 
-\iftcif at nolocal%
-\else%
-    \IfFileExists{local.tex}{\input{local.tex}}{}%
-    \tccore at emptyfields%
-\fi
 
+\ExplSyntaxOff
+    \input{ufrgscca-terms-ptBR.tex}
+    \input{ufrgscca-cover-ptBR.tex}
+\ExplSyntaxOn
 
+
+\bool_if:NT \l__ufrgscca_english_bool
+  {
+    \AtBeginDocument{\input{ufrgscca-terms-en.tex}}
+  }
+
+
+\bool_if:NF \l__ufrgscca_nolocal_bool
+  {
+    \ExplSyntaxOff
+      \IfFileExists{local.tex}
+        { \AtBeginDocument{ \input{local.tex} } }
+        {}%
+    \ExplSyntaxOn
+  }
+
+
+
+



More information about the tex-live-commits mailing list.