texlive[69025] Master/texmf-dist: ufrgscca (3dec23)

commits+karl at tug.org commits+karl at tug.org
Sun Dec 3 22:08:43 CET 2023


Revision: 69025
          https://tug.org/svn/texlive?view=revision&revision=69025
Author:   karl
Date:     2023-12-03 22:08:42 +0100 (Sun, 03 Dec 2023)
Log Message:
-----------
ufrgscca (3dec23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md
    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/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-base-en.def
    trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def
    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

Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/README.md	2023-12-03 21:08:42 UTC (rev 69025)
@@ -107,7 +107,12 @@
 
 
 ## Changelog
-* Version 2.1 (this)
+* Version 2.2 (this)
+    - fixed the reports table broken by last update :/
+    - added an option to sort student's list (-coord) by presentation's date
+    - further code clean up
+
+* Version 2.1
     - A few typos corrected
     - better error handling
     - a bit of code clean up (private macro/functions only)

Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -31,30 +31,30 @@
 \SetTerms{%
   advisor.descpage       = %
   {%
-        \noindent%
-        \studentCoadvCase{%
-          \UseTerm{advisors}:\\
-          \DataFields{student.advisor}{name}\\[1ex]
-          \DataFields{student.coadvisor}{name}
-        }{%
-          \UseTerm{advisor}:\\
-          \DataFields{student.advisor}{name}
-        }
+    \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}
-          }
+    \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  =
   {         ~\\
@@ -71,12 +71,12 @@
   } ,
   cover.students        = %
   {%
-        \eDataSet{student}
+        \eDataSet{student}%
         \centering{\MakeUppercase{\eDataFields{name}} - \eDataFields{ID}}  
   } ,
   cover.topbase            = %
   {%
-        \centering
+        \centering%
           \MakeUppercase{\UseHeading{university}}\\
           \MakeUppercase{\UseHeading{unit}}\\
           \MakeUppercase{\UseHeading{course}}
@@ -83,7 +83,7 @@
   } ,
   cover.title             = %
   {%
-          \eDataSet{student}
+          \eDataSet{student}%
           \centering\textbf{\MakeUppercase{\eDataFields{worktitle}}}  
   } ,
   cover.bottom            = {%
@@ -91,7 +91,7 @@
   } ,
   ppc.top            = %
   {%
-        \centering
+        \centering%
           \MakeUppercase{\UseHeading{university}}\\
           \MakeUppercase{\UseHeading{unit}}\\
           \MakeUppercase{\UseHeading{ppc.comgrad}}\\
@@ -101,7 +101,7 @@
   } ,
   report.top            = %
   {%
-        \centering
+        \centering%
           \MakeUppercase{\UseHeading{university}}\\
           \MakeUppercase{\UseHeading{unit}}\\
           \MakeUppercase{\UseHeading{department}}\\
@@ -111,10 +111,10 @@
 
 \SetTerms{
   cover.students   =
-  {
-    \studentiterate
-     {
-       \eDataSet{student}
+  {%
+    \studentiterate%
+     {%
+       \eDataSet{student}%
        \centering{\MakeUppercase{\eDataFields{name}}~ -~ \eDataFields{ID}}\\     
      }
   }  
@@ -147,7 +147,7 @@
 \SetCoverFields{tccI}{bottom-approvalpage}{ \UseTerm{cover.bottom} }
 
 
-\SetCoverFields{tccI}{board}{
+\SetCoverFields{tccI}{board}{%
 \noindent \UseTerm{board}:\\
 \indent \DataFields{student.reviewer[2]}{name}, \DataFields{student.reviewer[2]}{institution}\\
 \indent \DataFields{student.reviewer[2]}{title}\\
@@ -157,7 +157,7 @@
 }
 
 
-\SetCoverFields{tccI}{coord}{
+\SetCoverFields{tccI}{coord}{%
 \noindent\hrulefill\\
 \ActivityCoord[course]{name}\\
 \ActivityCoord[course]{title}\\
@@ -187,7 +187,7 @@
 \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}{advisor-approvalpage}{ \UseTerm{advisor.approvalpage} }
 
 \SetCoverFields{tccII}{bottom-approvalpage}{ \UseTerm{cover.bottom} }
 
@@ -236,12 +236,10 @@
 \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}{title}{ \centering\textbf{ \UseTerm{internship.title} } }
 \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}{text-approvalpage}{ \UseTerm{internship.text-approvalpage} }
 
 \SetCoverFields{internship}{advisor-approvalpage}{ \UseTerm{internship.tutorapproval} }
 
@@ -270,12 +268,10 @@
 \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}{title}{ \centering\textbf{ \UseTerm{internship-opt.title} } }
 \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}{text-approvalpage}{ \UseTerm{internship-opt.text-approvalpage} }
 
 \SetCoverFields{internship-opt}{advisor-approvalpage}{ \UseTerm{internship.tutorapproval} }
 

Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -172,16 +172,32 @@
 \SetForm{internshiptutorform}{closing}{}
 
 
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%
-%%% TCCs - Calendar - EVENTS
+%%% TCCs - attendancelist
 %%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\SetActivityNewEvent{}
+\SetForm{attendancelist}{heading}{\UseTerm{title.tcc}}
+\SetForm{attendancelist}{title}{\UseTerm{title.attendancelist}}
+\SetForm{attendancelist}{opening}{}
 
+%%%
 
+\SetForm{attendancelist}{body}{%
+Nome do(a) Aluno(a) --- Email\\
+\BlankLines[-1.8ex]{30}
+}
+
+%%%
+\SetForm{attendancelist}{closing}{\vfill}%
+%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%
+
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%
@@ -265,8 +281,10 @@
 %%%%%%%%%%%%%%%
 \SetForm{request-I}{heading}{\UseTerm{title.tccI}}
 \SetForm{request-I}{title}{\UseTerm{title.requestform}}
-\SetForm{request-I}{opening}{\UseTerm{opening.requestform}}
+\SetForm{request-I}{opening}{
 
+\UseTerm{opening.requestform}}
+
 %%%
 \SetForm{request-I}{body}{%
   \UseTerm{desc.requestform} \Activity[tccI]{name}.
@@ -302,9 +320,9 @@
 %%%%%%%%%%%%%%%
 \SetForm{coadvisor-I}{heading}{\UseTerm{title.tccI}}
 \SetForm{coadvisor-I}{title}{\UseTerm{title.coadvisorform}}
-\SetForm{coadvisor-I}{opening}{%
+\SetForm{coadvisor-I}{opening}{
 
-  \UseTerm{opening.requestform}
+\UseTerm{opening.requestform}
   \emptytermifnone{student.coadvisor}
 }
 
@@ -511,15 +529,17 @@
   \UseLabel{advisor.email}: {\bf \DataFields{student.advisor}{email}}%
   \hfill \UseLabel{phone}: {\bf \DataFields{student.advisor}{phone}}%
 
-  \UseLabel{coadvisor}: \DataFields{student.coadvisor}{name}%
+  \studentCoadvCase{
+    \UseLabel{coadvisor}: \DataFields{student.coadvisor}{name}%
+    
+    \UseLabel{coadvisor.email}: {\bf \DataFields{student.coadvisor}{email}}%
+    \hfill \UseLabel{phone}: {\bf \DataFields{student.coadvisor}{phone}}%
+  }{}
 
-  \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]
+ Os Objetivos do Trabalho e Orientador\DataFields{student.advisor}{narticle}\studentCoadvCase{/Coorientador\DataFields{student.coadvisor}{narticle}}{} seguem sendo os mesmos de TCC I ?
+\begin{itemize}[tcc,nosep]
  \item[$\Box$] SIM
  \item[$\Box$] NÃO, neste caso \textbf{justifique} a mudança no espaço a seguir:
  \end{itemize}
@@ -812,6 +832,99 @@
   \ApprovalSignature[\UseLabel{altreviewer.sig}]{\DataFields{student.altreviewer}{name}}
 }
 
+
+
+\NewDocumentCommand{\studentCoadvLabelCase}{}{
+  \studentCoadvCase{\UseLabel{advisors}: \color{darkerblue}\DataFields{student.advisor}{name} / \DataFields{student.coadvisor}{name}}{\UseLabel{advisor}: \color{darkerblue}\DataFields{student.advisor}{name}}
+}
+
+
+\NewDocumentCommand{\studentBoard}{s}{
+  {%%
+    \footnotesize%
+    \begin{center}%
+      \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline%
+        & \UseLabel{board} \\\hline%
+        \IfBooleanTF{#1}
+          {
+            \multirow{4}={\DataFields{student}{name}} %
+            &\DataFields{student.reviewer[1]}{name}\\%
+          }%
+          {%
+            \multirow{3}={\DataFields{student}{name}}%
+          }
+        &\DataFields{student.reviewer[2]}{name}\\%
+        &\DataFields{student.reviewer[3]}{name}\\%
+        & ~\\[-2.5ex]
+        \multicolumn{2}{l}{\studentCoadvLabelCase} \\\hline%
+      \end{tabular}%
+    \end{center}%
+  }%
+}
+
+
+\NewDocumentCommand{\studentBoardGraded}{s}
+  {
+    {\footnotesize%
+      \begin{center}%
+        \resizebox{\textwidth}{!}{%
+          \IfBooleanTF{#1}
+            {%
+              \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }p{0pt}@{}c@{\ }c}
+              \HeaderLine{II}
+              \studentLine*
+            }
+            {%
+              \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}
+              \HeaderLine{I}
+              \studentLine
+            }%
+            \\*\hline
+          \end{tabular}%
+        }%
+      \end{center}%
+    }%  
+  }
+
+
+
+\NewDocumentCommand{\HeaderLine}{m}{%
+     & \UseLabel{board} & \UseLabel{TCC-#1.pointA} & \UseLabel{TCC-#1.pointB} 
+     & \UseLabel{TCC-#1.pointC} & \UseLabel{TCC-#1.pointD} & \UseLabel{Ngrade} & \UseLabel{grade} \\\hline%
+}
+
+\NewDocumentCommand{\ReviewerLine}{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{\studentLine}{s}{%
+  \IfBooleanTF{#1}%
+    {%
+      \multirow{4}={\textbf{\DataFields{student}{name}}}
+      \ReviewerLine{1}\\*
+    }
+    {%
+      \multirow{3}={\textbf{\DataFields{student}{name}}}    
+    }
+    \ReviewerLine{2}\\*%
+    \nopagebreak\ReviewerLine{3}\\[0.75ex]%
+    \multicolumn{6}{l}{\studentCoadvLabelCase} & \textbf{\DataFields{student}{gradeavrg}} & \textbf{\DataFields{student}{grade}}%\\ \hline%   
+}
+
+\NewDocumentCommand{\studentExtLine}{mm}{%
+   \kill\nopagebreak\\[-2ex]%
+   \multicolumn{#1}{p{#2}}{\ \ \ \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}{\ \ \ \color{darkerblue}\UseLabel{advisor.email}: \DataFields{student.advisor}{email} \UseLabel{phone}: \DataFields{student.advisor}{phone}}\\*          
+   \multicolumn{#1}{l}{\ \ \ \color{darkerred}\UseLabel{board}: \DataFields{student.reviewer[1]}{email} / \DataFields{student.reviewer[2]}{email} / \DataFields{student.reviewer[3]}{email}}\\*          
+
+   \multicolumn{#1}{l}{\ \ \ \UseLabel{remarks}: {\color{red}\textbf{\DataFields{student}{remarks}}}}%\\ \hline
+}
+
+
+
 %%%%%%%%%%%%%%%
 %%  referall letter- I
 %%%%%%%%%%%%%%%
@@ -822,22 +935,26 @@
 %%%
 \SetForm{referral-I}{body}{  
 
+\SetConsts{%
+  report.tabspec = {p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}
+}
+
 \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
+    \studentBoardGraded
   }
   {
     \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
-  }
+     \studentBoardGraded
+ }
   {
     \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
+    \studentBoard
   }
   {
     \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
+    \studentBoard
   }
   {
     \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}.
@@ -857,69 +974,6 @@
   \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{3}={\DataFields{student}{name}} %
-        &\DataFields{student.reviewer[2]}{name}\\%
-        &\DataFields{student.reviewer[3]}{name}\\%
-        & ~\\[-2.5ex]
-        \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{3}={\textbf{\DataFields{student}{name}}} %
-    \ReviewerLineI{2}\\*%
-    \ReviewerLineI{3}\\*%
-    \nopagebreak & ~\\[-2.5ex]
-    \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}{mm}{%
-   \\[-1em]%
-   \multicolumn{#1}{p{#2}}{\ \ \ \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
 %%%%%%%%%%%%%%%
@@ -932,20 +986,20 @@
 
 \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-date}, tendo sido APROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+    \studentBoardGraded*
   }%
   {
-    \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-date}, tendo sido REAPROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+    \studentBoardGraded*
   }%
   {
-    \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-date}, 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]
+    \studentBoard*
   }%
   {
-    \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}}\ apresentou o trabalho intitulado \emph{\DataFields{student}{worktitle}}\  no dia  \DataFields{student}{board-date}, 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]
+    \studentBoard*
   }%
   {
     \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}.
@@ -966,65 +1020,80 @@
 }
 
 
+\ExplSyntaxOn
 
+\cs_new_protected:Npn \reportBody #1#2
+  {
+    \str_case:nn {#1}
+      {
+        {I} 
+          {
+            \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}}
+              }
+          }
+        {II}
+          {
+            \begin{longtable}
+              {
+                p{\UseConst{report.tabA}}@{\ }
+                p{\UseConst{report.tabB}}@{\ }
+                p{\UseConst{report.tabC}}@{\ }
+                p{\UseConst{report.tabD}}@{\ }
+                p{\UseConst{report.tabE}}@{\ }
+                p{0pt}@{}
+                p{\UseConst{report.tabF}}@{\ }
+                p{\UseConst{report.tabG}}
+              }
+          }
+      }
+    \HeaderLine{#1}
+    \seq_map_inline:Nn \l__ufrgscca_baselist_graded_seq
+      {
+        \studentselect{##1}
+        #2\\*\hline
+        \studentExtLine{7}{\UseConst{report.tabMult.#1}}\\\hline        
+      }
+    \__ufrgscca_miss_case:nnnnn 
+      {7} {report.tabMult.#1}
+      {\l__ufrgscca_baselist_ff_seq}
+      {Desistentes~ com~ conceito~ (2o ~ semestre)}
+      {red}
+    \__ufrgscca_miss_case:nnnnn 
+      {7} {report.tabMult.#1}
+      {\l__ufrgscca_baselist_dismiss_seq}
+      {Desistentes~ sem~ conceito~ (1o ~ semestre)}
+      {magenta}
+    \end{longtable}  
+  }
 
+\cs_new_protected:Npn \__ufrgscca_miss_case:nnnnn #1#2#3#4#5
+  {
+    \seq_if_empty:NF #3
+      {
+        &\\
+        \multicolumn{#1}{l}{\textbf{\color{#5}#4}}\\\hline
+        \seq_map_inline:Nn #3 
+          {
+            \studentselect{##1}
+            &\\*
+            \multicolumn{#1}{l}{\textbf{\color{#5}\DataFields{student}{name}}}\\*
+            \studentExtLine{#1}{\UseConst{#2}}\\*
+            \multicolumn{#1}{l}{\studentCoadvLabelCase}\\ \hline
+          }     
+      }
+  }
 
-\NewDocumentCommand{\studentBoardII}{}{
-  {%%
-    \footnotesize%
-    \begin{center}%
-      \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline%
-        & \UseLabel{board} \\\hline%
-        \multirow{4}={\DataFields{student}{name}} %
-        &\DataFields{student.reviewer[1]}{name}\\%
-        &\DataFields{student.reviewer[2]}{name}\\%
-        &\DataFields{student.reviewer[3]}{name}\\%
-        & ~\\[-2.5ex]
-        \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}%
-  }%
-}
+\ExplSyntaxOff
 
-\NewDocumentCommand{\HeaderLineII}{}{%
-  & \UseLabel{board} & \UseLabel{TCC-II.pointA} & \UseLabel{TCC-II.pointB} & \UseLabel{TCC-II.pointC} &%
-  \UseLabel{Ngrade} & \UseLabel{grade}\\\hline%
-}
-\NewDocumentCommand{\studentLineII}{}{%
-   \multirow{4}={\textbf{\DataFields{student}{name}}} %
-    \ReviewerLineII{1}\\*%
-    \ReviewerLineII{2}\\*%
-    \ReviewerLineII{3}\\*%
-    \nopagebreak & ~\\[-2.5ex]
-    \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} &%
- }
-
-
-
-
-
-
-
-\ExplSyntaxOn
-
-
 %%%%%%%%%%%%%%%
 %%  report TCC - I
 %%%%%%%%%%%%%%%
@@ -1035,17 +1104,7 @@
 %%%
 \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:Nn \l__ufrgscca_baselist_graded_seq
-      {
-        \studentselect{#1}
-        \studentLineI\\*\hline
-        \studentExtLine{8}{\UseConst{report.tabMult.I}}\\\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}  
+    \reportBody {I}{\studentLine}
   }
 }
 
@@ -1053,24 +1112,6 @@
 \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
-          }     
-      }
-}
-
-
-
 %%%%%%%%%%%%%%%
 %%  report TCC - II
 %%%%%%%%%%%%%%%
@@ -1078,42 +1119,19 @@
 \SetForm{report-II}{title}{Relatório Acompanhamento - \UseTerm{semester}}
 \SetForm{report-II}{opening}{}
 
+
 %%%
 \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:Nn \l__ufrgscca_baselist_graded_seq
-      {
-        \studentselect{#1}
-        \studentLineII\\*\hline
-        \studentExtLine{7}{\UseConst{report.tabMult.II}}\\\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}
+    \reportBody {II}{\studentLine*}
   }
 }
 
+
 %%%
 \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
-          }     
-      }
-      
-}
 
 
 %%%%%%%%%%%%%%%
@@ -1128,9 +1146,9 @@
   \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]
+    \CheckList{5}{graded}{Alunos~Com~ Conceito}[black]
+    \CheckList{5}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+    \CheckList{5}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
     \end{longtable}
   }
   ~\vfill
@@ -1152,9 +1170,9 @@
   \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]
+    \CheckList{5}{graded}{Alunos~Com~ Conceito}[black]
+    \CheckList{5}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+    \CheckList{5}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
     \end{longtable}
   }
   ~\vfill
@@ -1173,6 +1191,7 @@
 \SetForm{boards}{title}{\UseTerm{board.title}}
 \SetForm{boards}{opening}{}
 
+\ExplSyntaxOn
 %%%
 \SetForm{boards}{opening}{  %
   {\footnotesize
@@ -1181,7 +1200,7 @@
     \hline
     \tl_gclear:N \l__ufrgscca_daytmpa_tl
     \tl_gclear:N \l__ufrgscca_daytmpb_tl
-    \seq_map_inline:cn {l__ufrgscca_baselist_seq} 
+    \seq_map_inline:cn {l__ufrgscca_baselist_graded_seq} 
       {
         \starray_set_iter_from_hash:nn {student} {#1}
         \starray_term_syntax:n {student}
@@ -1196,11 +1215,18 @@
             \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}}\\*
+        \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}{p{\UseConst{board.tabAll}}}{\textsc{Título:}\ \emph{\DataFields{student}{worktitle}}}\\\hline      
+        \multicolumn{4}{p{\UseConst{board.tabAll}}}
+           {\textsc{Título:}\ \emph{\DataFields{student}{worktitle}}}\\\hline      
       }
     \end{longtable} 
     

Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca

Modified: trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -86,6 +86,8 @@
   title.internsupervisorform = Formulário de Avaliação do Supervisor (Pela Empresa) ,
   title.interntutorform      = Formulário de Avaliação do Tutor e Coordenador ,
   %
+  title.attendancelist       = {Lista de Preseça - 1$^o$ Encontro do Semestre \UseTerm{semester}} ,
+  %
   %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
@@ -139,24 +141,37 @@
 
 
 \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.
-                               } ,
+  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.%
+      } ,
+  internship.title = 
+      { RELATÓRIO DE ESTÁGIO SUPERVISIONADO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO } ,
+  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.%
+      } , 
+  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}.%
+      } ,
+  internship-opt.title = 
+      { RELATÓRIO DE ESTÁGIO SUPERVISIONADO NÂO OBRIGATÓRIO EM ENG. DE CONTROLE E AUTOMAÇÃO } ,
 }
 
 
@@ -212,14 +227,15 @@
 }
 
 \SetLabels{%
-  TCC-I.pointA              = {Tema} ,
-  TCC-I.pointB              = {Biblio.} ,
-  TCC-I.pointC              = {Plano Trab.} ,
-  TCC-I.pointD              = {Texto} ,
+  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} ,
+  TCC-II.pointD              = {} ,
+  Ngrade                     = {Nota} ,
   grade                      = {Conceito} ,
 }
 
@@ -228,19 +244,19 @@
   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} ,  
+  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 = {34mm} ,
-  report.tabA* = {42mm} ,
+  report.tabA = {40mm} ,
+  report.tabA* = {44mm} ,
   report.tabB = {42mm} ,
   report.tabB* = {62mm} ,
   report.tabC = {15mm} ,

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-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex	2023-12-03 21:08:42 UTC (rev 69025)
@@ -15,7 +15,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -81,7 +81,7 @@
 	\section{Introduction}
 	\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 \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.
+	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-lists}. The packages \tsobj[pkg]{ufrgscca-forms,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.
@@ -220,7 +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} { Approval page, at it's bottom, will display the years only (instead of the default mouth year construct).}
+    \describe {yearsonly} { In some cover pages (like the ones for TCC) the bottom of the approval's page, will only displays the year (instead of the default mouth year construction).}
   
 	\describe {nomicrotype} { in some rare cases, \tsobj[pkg]{microtype} might hurt page layout, this allows the suppression of \tsobj[pkg]{microtype}.}
 
@@ -298,16 +298,18 @@
 \end{codestore}
 \tscode*{d.newchapenv}
 
-\begin{codedescribe}{\date,\today,\monthname}
+\begin{codedescribe}[code,update=2023/11/30]{\pubdate,\today,\monthname}
 	\begin{codesyntax}%
-		\tsmacro{\date}[day]{month,year}
+		\tsmacro{\pubdatedate}[day]{month,year}
 		\tsmacro{\today}{}
 		\tsmacro{\monthname}{}
 	\end{codesyntax}
 \end{codedescribe}
-The command \tsmacro{\date}{} is redefined, to allow a separation between the many arguments \tsobj[meta]{day}, \tsobj[meta]{month} and \tsobj[meta]{year}. If not called by the user it \emph{defaults} to current month / year. \tsmacro{\today}{} returns the current \emph{locale} date, whilst \tsmacro{\monthname}{} returns the \emph{locale} name of the current month.
+\tsmacro{\pubdate}{} sets the publication date. If not called by the user it \emph{defaults} to current month / year. \tsmacro{\today}{} returns the current \emph{locale} date, whilst \tsmacro{\monthname}{} returns the \emph{locale} name of the current month.
+\begin{tsremark}[N.B.:]
+ If the package option \tsobj[option]{oldrenews} is used, the command \tsobj{\date} will be redefined as an allias to \tsobj{\pubdate}.
+\end{tsremark}
 
-
 \subsection{Environments}
 \begin{codedescribe}[env,new=2023/11/18]{mainabstract}
 	\begin{codesyntax}%
@@ -1002,7 +1004,7 @@
     \tsmacro{\checkdef}{LxCy,check-item,check-text}
     \tsmacro{\checklist}{check-items-list}
 \end{codesyntax}
-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).
+Whereas one has a '5x5 matrix' (\tsobj[meta]{checkLC} being one of L1C1...L1C5, ... , L5C1...L5C5). \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}.
 
@@ -1063,13 +1065,13 @@
 
 \begin{codedescribe}[code,new=2023/11/30]{\professor,\advisorprof,\coadvisorprof,\examinerprof,\altexaminerprof}
 	\begin{codesyntax}%
-		\tsobj[code]{\professor}\tsargs[oarg]{prof-ref}\tsargs[marg]{last,first}\tsargs[oarg]{gender}
+		\tsobj[code]{\professor}\tsargs[oarg]{prof-ref}\tsargs[marg]{last,first,email,phone}\tsargs[oarg]{gender}
 		\tsmacro{\advisorprof}{prof-ref}
 		\tsmacro{\coadvisorprof}{prof-ref}
 		\tsmacro{\examinerprof}{prof-ref}
 		\tsmacro{\altexaminerprof}{prof-ref}
 	\end{codesyntax}
-\tsobj{\professor} creates a \tsobj[oarg]{prof-ref} alias to a person's full name.  \tsobj{\advisorprof} expands to a call for \tsobj{\advisor} using the properties stored by \tsobj{\professor}. Similarly, \tsobj{\coadvisorprof,\examinerprof,\altexaminerprof} results in call to \tsobj{\coadvisor,\examinerprof,\altexaminerprof} respectively.
+\tsobj{\professor} creates a \tsobj[oarg]{prof-ref} alias to a person's full name.  \tsobj{\advisorprof} expands to a call for \tsobj{\advisor,\advisorinfo} using the properties stored by \tsobj{\professor}. Similarly, \tsobj{\coadvisorprof,\examinerprof,\altexaminerprof} results in call to \tsobj{\coadvisor,\coadvisorinfo,\examiner,\examinerinfo,\altexaminer,\altexaminerinfo} respectively.
 \end{codedescribe}
 \begin{tsremark}
 \tsobj{\professor} creates/uses an auxiliary \tsobj[pkg]{starray}, just mapping names for users convenience.
@@ -1082,7 +1084,7 @@
 		\tsmacro{\boardobs}{obs}
 		\tsmacro{\semester}{semester}
 	\end{codesyntax}
- \tsmacro{\boardobs}{} allows to add an observation (\tsobj[meta]{obs}) for the 'boards schedule report', and \tsmacro{\semester} sets the current semester value.
+ \tsmacro{\boardobs}{} allows to add an observation (\tsobj[meta]{obs}) for the 'boards schedule report', and \tsobj{\semester} sets the current semester value.
 \end{codedescribe}
 
 
@@ -1212,7 +1214,7 @@
 	\begin{codesyntax}%
 		\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 setting a student's name (via \tsmacro{\student}{}) and before setting 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:
 
@@ -1249,8 +1251,9 @@
 	\begin{codesyntax}%
 		\tsmacro{\setstudentlist}{listID,list}
 		\tsmacro{\setstudentlist*}{listID,list}
+    \tsmacro{\setstudentlist+}{listID,list}
 	\end{codesyntax}
-This command will define/create a list named \tsobj[meta]{listID} composed of a csv \tsobj[meta]{list}~ of student names (as defined by \tsmacro{\Newstudent}{}). The star version sorts the list first (by student's name).
+This command will define/create a list named \tsobj[meta]{listID} composed of a csv \tsobj[meta]{list}~ of student hashes (as defined by \tsmacro{\student}[student-hash]{...}). The star version sorts the list by student's full name, the \emph{plus} version sorts the list by student's presentation date.
 \end{codedescribe}
 
 \begin{codedescribe}{\tcreports}
@@ -1273,7 +1276,7 @@
 	\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 {attendance} { a simple student's attendance list.}
 	\describe {cocertificate} { per student coadvisor certificate letter (if any).}
 %	\describe {checklist} { a students check list.}
 \end{describelist}

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-abnt}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA ABNT layout}
 
 
@@ -42,8 +42,8 @@
   {
      name        .code:n = {ufrgscca-abnt} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~ abnt~layout}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 
@@ -782,7 +782,7 @@
 %==============================================================================%
 % date redefinition (separated month and year)
 %==============================================================================%
-\RenewDocumentCommand{\date}{O{\number\day}mm}{%
+\NewDocumentCommand{\pubdate}{O{\number\day}mm}{%
   \int_compare:nNnTF {#1} < {10}
     {
       \SetConsts{%
@@ -799,7 +799,11 @@
       }
     }
 }%
-\date{\monthname}{\number\year}%
+\pubdate{\monthname}{\number\year}%
+\bool_if:NT \l__ufrgscca_oldrenews_bool
+  {
+    \RenewDocumentCommand{\date}{O{\number\day}mm}{\pubdate[#1]{#2}{#3}}%
+  }
 
 
 \bool_if:NTF \l__ufrgscca_english_bool

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-coord}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA coord commands}
 
 
@@ -42,8 +42,8 @@
   {
      name        .code:n = {ufrgscca-coord} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~ coordination~ report~ commands}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 
@@ -71,6 +71,9 @@
 
 \keys_define:nn { ufrgscca / coord }
   {
+    attendance. bool_set:N   = \l__ufrgscca_attendance_bool ,
+    attendance. usage:n       = general , 
+    
     calendar-I. bool_set:N   = \l__ufrgscca_calendarI_bool ,
     calendar-I. usage:n       = general , 
     
@@ -136,7 +139,7 @@
    gender = ,
  }
  
-\NewDocumentCommand{\professor}{O{}mmO{}}
+\NewDocumentCommand{\professor}{O{}mmmmO{}}
   {
     \starray_new_term:nn {prof}{#1}
     \starray_set_from_keyval:nn {prof}
@@ -143,41 +146,57 @@
       {
         last = {#2},
         first = {#3},
-        gender = {#4},
+        email = {#4},
+        phone = {#5},
+        gender = {#6},
       }
   }
 
-\cs_new_protected:Npn \__ufrgscca_prof_ref_set:nnnn #1#2#3#4
-  {  #1 {#2}{#3}[#4]  }
+\cs_new_protected:Npn \__ufrgscca_prof_ref_set:nnnnnnn #1#2#3#4#5#6#7
+  {  
+    #1 {#3}{#4}[#5]  
+    #2 {}{}{#6}{#7}
+  }
   
-\cs_generate_variant:Nn \__ufrgscca_prof_ref_set:nnnn {eeee}  
+\cs_generate_variant:Nn \__ufrgscca_prof_ref_set:nnnnnnn {nneeeee}  
 
-\cs_new_protected:Npn \__ufrgscca_prof_ref:nn #1#2
+\cs_new_protected:Npn \__ufrgscca_prof_ref:nnn #1#2#3
   {
-    \starray_set_iter_from_hash:nnTF {prof}{#2}
+    \starray_set_iter_from_hash:nnTF {prof}{#3}
       {
         \starray_term_syntax:n {prof}
-        \__ufrgscca_prof_ref_set:eeee {#1}{\starray_parsed_get_prop:n{last}}{\starray_parsed_get_prop:n{first}}{\starray_parsed_get_prop:n{gender}}
+        \__ufrgscca_prof_ref_set:nneeeee {#1}{#2}
+          {\starray_parsed_get_prop:n{last}}{\starray_parsed_get_prop:n{first}}{\starray_parsed_get_prop:n{gender}}
+          {\starray_parsed_get_prop:n{email}}{\starray_parsed_get_prop:n{phone}}
       }
       {
-        #1{definido:(#2)}{não}
+        #1{definido:(#3)}{não}
       }    
   }
 
 \NewDocumentCommand{\advisorprof}{m}
-  {  \__ufrgscca_prof_ref:nn {\advisor}{#1}  }
+  {  \__ufrgscca_prof_ref:nnn {\advisor}{\advisorinfo}{#1}  }
 
 \NewDocumentCommand{\coadvisorprof}{m}
-  {  \__ufrgscca_prof_ref:nn {\coadvisor}{#1}  }
+  {  \__ufrgscca_prof_ref:nnn {\coadvisor}{\coadvisorinfo}{#1}  }
   
 \NewDocumentCommand{\examinerprof}{m}
-  {  \__ufrgscca_prof_ref:nn {\examiner}{#1}  }
+  {  \__ufrgscca_prof_ref:nnn {\examiner}{\examinerinfo}{#1}  }
   
 \NewDocumentCommand{\altexaminerprof}{m}
-  {  \__ufrgscca_prof_ref:nn {\altexaminer}{#1}  }
+  {  \__ufrgscca_prof_ref:nnn {\altexaminer}{\altexaminerinfo}{#1}  }
 
+%%% from -ppc
+\cs_new:Npn \__ufrgscca_def_colorpair:n #1
+  {
+    \colorlet{light#1}{white!85!#1}
+    \colorlet{dark#1}{#1!70!black!100}
+    \colorlet{darker#1}{#1!40!black!100}
+  }
+\__ufrgscca_def_colorpair:n {red}
+\__ufrgscca_def_colorpair:n {green}
+\__ufrgscca_def_colorpair:n {blue}
 
-
 \NewDocumentCommand{\ActivitySetNewEvent}{O{}mm}{
   \tl_if_blank:nTF {#1}
     {
@@ -267,12 +286,14 @@
 \tl_new:N \l__ufrgscca_tmpb_tl
 \tl_new:N \l__ufrgscca_tmpc_tl
 \tl_new:N \l__ufrgscca_tmpd_tl
+\tl_new:N \l__ufrgscca_tmpe_tl
+\prg_generate_conditional_variant:Nnn \str_case:nn {en}{T,F,TF}
 \cs_new_protected:Npn \__ufrgscca_studentgrade: 
     {
       \starray_term_syntax:n {student}
       \bool_if:nTF {\starray_parsed_get_prop:n {flag-null}}
         {
-           \starray_gset_prop:nnn {student}{grade}{D*}
+           \starray_gset_prop:nnn {student}{grade}{\color{red}D*}
         }
         {
           %(\DataFields{student}{name})\par
@@ -282,7 +303,8 @@
           \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}}
-          \str_case:nnF {\starray_parsed_get_prop:n {gradetype}}
+          \tl_set:Ne \l__ufrgscca_tmpe_tl {\starray_parsed_get_prop:n {gradetype}}
+          \str_case:enF {\l__ufrgscca_tmpe_tl}
             {
               {1}
                 {
@@ -295,7 +317,9 @@
                     {\fpeval{round(((\l__ufrgscca_tmpa_tl + \l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/3),2,1)}}
                 }
             }
-            {  \tl_set:Nn \l__ufrgscca_tmpd_tl {0} }
+            {  \tl_set:Nn \l__ufrgscca_tmpd_tl {7.99}
+               \starray_gset_prop:nne {student}{reason}{\l__ufrgscca_tmpa_tl-\l__ufrgscca_tmpb_tl-\l__ufrgscca_tmpc_tl-\l__ufrgscca_tmpe_tl}
+             }
             
           \starray_gset_prop:nne {student}{gradeavrg}{\l__ufrgscca_tmpd_tl}
           \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeC}}
@@ -324,8 +348,7 @@
       \starray_gset_prop:nnn {student}{flag-graded}{\c_true_bool}
     }
 
-
-\cs_new_protected:Npn \__ufrgscca_set_timeslot:nnnn #1#2#3#4
+\cs_new_protected:Npn \__ufrgscca_set_timeslot:nnnnn #1#2#3#4#5
   {
   \starray_gset_from_keyval:nn {student}
     {
@@ -332,41 +355,95 @@
       board-local = {#1} ,
       board-time = {#2} ,
       board-date = {#3} ,
+      board-datetime = {#5} ,
     }
     \SetConsts {
       date:#3 = {\__ufrgscca_weekday:n {#4}} ,
     }    
   }
-\cs_generate_variant:Nn \__ufrgscca_set_timeslot:nnnn {nnee}    
+\cs_generate_variant:Nn \__ufrgscca_set_timeslot:nnnnn {neeee}    
 
+\cs_generate_variant:Nn \int_set:Nn {Ne}
 
-\seq_new:N \l__ufrgscca_cal_seq
+\seq_new:N \l__ufrgscca_date_seq
+\seq_new:N \l__ufrgscca_time_seq
 \newcount\l__ufrgscca_day_counter
 \newcount\l__ufrgscca_weekday_counter
-\NewDocumentCommand{\timeslot}{O{}mm}{%%
-  \seq_set_split:Nnn \l__ufrgscca_cal_seq {/} {#2}
-  \int_case:nnF {\seq_count:N \l__ufrgscca_cal_seq}
-    {
-      {2}{ \seq_put_right:Ne \l__ufrgscca_cal_seq {\number\year}  }
-      {3}{}
-    }
-    {
-      \seq_clear:N \l__ufrgscca_cal_seq
-      \seq_put_right:Nn \l__ufrgscca_cal_seq {31}
-      \seq_put_right:Nn \l__ufrgscca_cal_seq {12}
-      \seq_put_right:Ne \l__ufrgscca_cal_seq {\number\year}
-    }
-  \seq_reverse:N \l__ufrgscca_cal_seq
-  \pgfcalendardatetojulian{\seq_use:Nn \l__ufrgscca_cal_seq {-}}{\l__ufrgscca_day_counter}
-  \pgfcalendarjuliantoweekday{\the\l__ufrgscca_day_counter}{\l__ufrgscca_weekday_counter}
-  \seq_reverse:N \l__ufrgscca_cal_seq
-  \seq_pop_right:NN \l__ufrgscca_cal_seq \l_tmpa_tl
+\tl_new:N \l__ufrgscca_cal_datetime_tl
+\int_new:N \l__ufrgscca_day_tmp_int
+\int_new:N \l__ufrgscca_month_tmp_int
+\int_new:N \l__ufrgscca_year_tmp_int
+\int_new:N \l__ufrgscca_hour_tmp_int
+\int_new:N \l__ufrgscca_min_tmp_int
+\cs_generate_variant:Nn \seq_set_split:Nnn {Nen}
+\NewDocumentCommand{\timeslot}{O{}mm}
+  {%%
+    \tl_set:Ne \l_tmpa_tl {\tl_to_str:n{:}}
+    \seq_set_split:Nen \l__ufrgscca_time_seq {\l_tmpa_tl} {#3}
+    \int_case:nnF {\seq_count:N \l__ufrgscca_time_seq}
+      {
+        {2}{
+             \seq_pop_left:NNTF \l__ufrgscca_time_seq \l_tmpa_tl 
+               { \int_set:Ne \l__ufrgscca_hour_tmp_int {\l_tmpa_tl} }
+               {}
+             \seq_pop_left:NNTF \l__ufrgscca_time_seq \l_tmpa_tl 
+               { \int_set:Ne \l__ufrgscca_min_tmp_int {\l_tmpa_tl} }
+               {}
+           }
+      }
+      {
+        \int_set:Nn \l__ufrgscca_hour_tmp_int {12}
+        \int_set:Nn \l__ufrgscca_min_tmp_int {12}
+      }
+    \seq_clear:N \l__ufrgscca_time_seq
+    \int_compare:nNnTF {\l__ufrgscca_hour_tmp_int} < {10}
+      {\seq_put_right:Ne \l__ufrgscca_time_seq {0 \int_use:N \l__ufrgscca_hour_tmp_int}}
+      {\seq_put_right:Ne \l__ufrgscca_time_seq {  \int_use:N \l__ufrgscca_hour_tmp_int}}  
+    \int_compare:nNnTF {\l__ufrgscca_min_tmp_int} < {10}
+      {\seq_put_right:Ne \l__ufrgscca_time_seq {0 \int_use:N \l__ufrgscca_min_tmp_int}}
+      {\seq_put_right:Ne \l__ufrgscca_time_seq {  \int_use:N \l__ufrgscca_min_tmp_int}}  
+  
+    \seq_set_split:Nnn \l__ufrgscca_date_seq {/} {#2}
+    \int_case:nnF {\seq_count:N \l__ufrgscca_date_seq}
+      {
+        {2}{ \seq_put_right:Ne \l__ufrgscca_date_seq {\number\year}  }
+        {3}{}
+      }
+      {
+        \seq_clear:N \l__ufrgscca_date_seq
+        \seq_put_right:Nn \l__ufrgscca_date_seq {31}
+        \seq_put_right:Nn \l__ufrgscca_date_seq {12}
+        \seq_put_right:Ne \l__ufrgscca_date_seq {\number\year}
+      }
+    \seq_pop_left:NNTF \l__ufrgscca_date_seq \l_tmpa_tl 
+      { \int_set:Ne \l__ufrgscca_day_tmp_int {\l_tmpa_tl} }
+      {}
+    \seq_pop_left:NNTF \l__ufrgscca_date_seq \l_tmpa_tl 
+      { \int_set:Ne \l__ufrgscca_month_tmp_int {\l_tmpa_tl} }
+      {}
+    \seq_pop_left:NNTF \l__ufrgscca_date_seq \l_tmpa_tl 
+      { \int_set:Ne \l__ufrgscca_year_tmp_int {\l_tmpa_tl} }
+      {}
+    \seq_clear:N \l__ufrgscca_date_seq
+    \seq_put_right:Ne \l__ufrgscca_date_seq {\int_use:N \l__ufrgscca_year_tmp_int}
+    \int_compare:nNnTF {\l__ufrgscca_month_tmp_int} < {10}
+      {\seq_put_right:Ne \l__ufrgscca_date_seq {0 \int_use:N \l__ufrgscca_month_tmp_int}}
+      {\seq_put_right:Ne \l__ufrgscca_date_seq {  \int_use:N \l__ufrgscca_month_tmp_int}}  
+    \int_compare:nNnTF {\l__ufrgscca_day_tmp_int} < {10}
+      {\seq_put_right:Ne \l__ufrgscca_date_seq {0 \int_use:N \l__ufrgscca_day_tmp_int}}
+      {\seq_put_right:Ne \l__ufrgscca_date_seq {  \int_use:N \l__ufrgscca_day_tmp_int}}  
+         
+    \tl_set:Ne \l__ufrgscca_cal_datetime_tl {\seq_use:Nn \l__ufrgscca_date_seq {-} - \seq_use:Nn \l__ufrgscca_time_seq {:}}
+    \pgfcalendardatetojulian{\seq_use:Nn \l__ufrgscca_date_seq {-}}{\l__ufrgscca_day_counter}
+    \pgfcalendarjuliantoweekday{\the\l__ufrgscca_day_counter}{\l__ufrgscca_weekday_counter}
+    \seq_greverse:N \l__ufrgscca_date_seq
+    \seq_gpop_right:NN \l__ufrgscca_date_seq \l_tmpa_tl
+  
+    \__ufrgscca_set_timeslot:neeee {#1}{\seq_use:Nn \l__ufrgscca_time_seq {:}}{\seq_use:Nn \l__ufrgscca_date_seq {/}}{\the\l__ufrgscca_weekday_counter}{\l__ufrgscca_cal_datetime_tl}
+  }%
 
-  \__ufrgscca_set_timeslot:nnee {#1}{#3}{\seq_use:Nn \l__ufrgscca_cal_seq {/}}{\the\l__ufrgscca_weekday_counter}
-}%
 
 
-
 \NewDocumentCommand{\studentCase}{mmmmm}{
     \starray_term_syntax:n{student}
     \bool_case:nF
@@ -517,20 +594,36 @@
   
 }
 
+
+
 \tl_new:N \l__ufrgscca_sortA_tl
 \tl_new:N \l__ufrgscca_sortB_tl
+\cs_new_protected:Npn \__ufrgscca_seq_sort:nn #1#2
+  {
+    \seq_gsort:cn {l__ufrgscca_#1_seq }
+      {
+        \starray_set_iter_from_hash:nn {student}{##1}
+        \starray_get_prop:nnN {student}{#2} \l__ufrgscca_sortA_tl
+        \starray_set_iter_from_hash:nn {student}{##2}
+        \starray_get_prop:nnN {student}{#2} \l__ufrgscca_sortB_tl          
+        \str_compare:eNeTF { \l__ufrgscca_sortA_tl } > { \l__ufrgscca_sortB_tl }
+          { \sort_return_swapped: }
+          { \sort_return_same: }
+      }  
+  }
 
-\NewDocumentCommand{\setstudentlist}{sO{tcc}mm}{
-  \seq_new:c {l__ufrgscca_#3_seq}
-  \seq_new:c {l__ufrgscca_#3_ff_seq}
-  \seq_new:c {l__ufrgscca_#3_dismiss_seq}
-  \seq_new:c {l__ufrgscca_#3_graded_seq}
+
+\NewDocumentCommand{\setstudentlist}{st+O{tcc}mm}{
+  \seq_new:c {l__ufrgscca_#4_seq}
+  \seq_new:c {l__ufrgscca_#4_ff_seq}
+  \seq_new:c {l__ufrgscca_#4_dismiss_seq}
+  \seq_new:c {l__ufrgscca_#4_graded_seq}
   
-  \clist_map_inline:nn {#4}
+  \clist_map_inline:nn {#5}
     {
       \starray_set_iter_from_hash:nnT {student}{##1}
         {  
-          \seq_put_right:cn {l__ufrgscca_#3_seq} {##1} 
+          \seq_put_right:cn {l__ufrgscca_#4_seq} {##1} 
           \emptytermifnone{student.advisor}
           \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}]
           \emptytermifnone{student.altreviewer}
@@ -538,43 +631,34 @@
     }
 %  \seq_gset_from_clist:cn {l__ufrgscca_#3_seq}{#4}
 
-  \bool_if:nT {#1}
-    {  
-      \seq_gsort:cn {l__ufrgscca_#3_seq }
-        {
-          \starray_set_iter_from_hash:nn {student}{##1}
-          \starray_get_prop:nnN {student}{name} \l__ufrgscca_sortA_tl
-          \starray_set_iter_from_hash:nn {student}{##2}
-          \starray_get_prop:nnN {student}{name} \l__ufrgscca_sortB_tl          
-          \str_compare:eNeTF { \l__ufrgscca_sortA_tl } > { \l__ufrgscca_sortB_tl }
-            { \sort_return_swapped: }
-            { \sort_return_same: }
-        }
+  \bool_if:nTF {#1}
+    { \__ufrgscca_seq_sort:nn {#4}{name}  }
+    { 
+      \bool_if:nT {#2}
+        { \__ufrgscca_seq_sort:nn {#4}{board-datetime} }
     }
   
-  
-  
-  \str_case:nn {#2}
+  \str_case:nn {#3}
   {
     {tcc} 
       {
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
       }
     {tccI} 
       {
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
       }
     {tccII} 
       {
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
       }
     {intern}
       {  %% TO BE IMPLEMENTED !!!
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n}
-        \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_grade:n}
+        \seq_map_tokens:cn {l__ufrgscca_#4_seq} {\__ufrgscca_listclassify:nn {#4}}
       }
   }
 }
@@ -609,6 +693,10 @@
       \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_attendance_bool
+        { \MakeForm{attendancelist} 
+          \MakeForm{attendancelist} }
     
       \bool_if:NT \l__ufrgscca_calendarI_bool
         { \MakeForm{calendar-I} }
@@ -649,7 +737,9 @@
             }
           \bool_if:NT \l__ufrgscca_referralII_bool
             {
-              \MakeForm{referral-II}
+              \studentDismissCase
+                {}
+                { \MakeForm{referral-II} }
             }
           \bool_if:NT \l__ufrgscca_revformsII_bool
             {
@@ -740,3 +830,18 @@
     \l__ufrgscca_table_tl   
 }
 
+\NewDocumentCommand{\CheckList}{mmmO{red}}{
+    \seq_if_empty:cF {l__ufrgscca_baselist_#2_seq}
+      {
+        &\\
+        \multicolumn{#1}{l}{\textbf{\color{#4}#3}}\\\hline
+        \seq_map_inline:cn {l__ufrgscca_baselist_#2_seq}
+          {
+            \studentselect{##1}
+            &\\[-2ex]
+            ~\multicolumn{#1}{l}{\textbf{\color{#4}\DataFields{student}{name}}}\\*
+            \__ufrgscca_checktable_lines:nn {L1,L2,L3,L4,L5}{C1,C2,C3,C4,C5}\hline
+          }     
+      }
+      
+}

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-core}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA core commands}
 
 
@@ -42,8 +42,8 @@
   {
      name        .code:n = {ufrgscca-core} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~core~commands/data}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 
@@ -403,7 +403,7 @@
 }
   %
 
-\NewDocumentCommand{\studentCoadvCase}{mm}{
+\NewDocumentCommand{\studentCoadvCase}{+m+m}{
     \starray_term_syntax:n{student}
     \bool_if:nTF {\starray_parsed_get_prop:n{flag-coadvisor}}
       {#1}
@@ -457,7 +457,7 @@
     {
       Nproc = {#1} ,
       ID    = {#2} ,
-      email = {#3} ,
+      email = {\tl_to_str:n{#3}} ,
     }
 }%
 
@@ -466,7 +466,7 @@
   {
     \RenewDocumentCommand{\author}{O{}mmO{}}{\student[#1]{#2}{#3}[#4]}%
     \NewDocumentCommand{\authorinfo}{O{}mm}{\studentinfo[#1]{#2}{#3}}%
-    \NewDocumentCommand{\title}{m}{\worktitle{#1}}%
+    \RenewDocumentCommand{\title}{m}{\worktitle{#1}}%
   }
 
 
@@ -490,7 +490,7 @@
       {
         institution = {#2} ,
         title = {#3} ,
-        email = {#4} ,
+        email = {\tl_to_str:n{#4}} ,
         phone = {#5} ,
       }
   }
@@ -578,7 +578,7 @@
       {
         register = {#1} ,
         office = {#2} ,
-        email = {#3} ,
+        email = {\tl_to_str:n{#3}} ,
         phone = {#4} ,
       }
 }%

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-cover}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA cover commands}
 
 
@@ -42,8 +42,8 @@
   {
      name        .code:n = {ufrgscca-cover} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~ cover~pages}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 
@@ -106,11 +106,11 @@
 \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}},
+	  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}

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-curr}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA curricula commands}
 
 %%%%%%%
@@ -41,8 +41,8 @@
   {
      name        .code:n = {ufrgscca-curr} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~ curricula~ commands}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-forms}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA forms commands}
    
     
@@ -42,8 +42,8 @@
   {
      name        .code:n = {ufrgscca-forms} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~ forms~commands}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 
@@ -175,14 +175,13 @@
 
 \int_new:N \l__ufrgscca_a_int
 \int_new:N \l__ufrgscca_b_int
-\NewDocumentCommand{\BlankLines}{m}{
+\NewDocumentCommand{\BlankLines}{O{0pt}m}{
   \int_zero:N \l__ufrgscca_a_int
-  \int_set:Nn \l__ufrgscca_b_int {#1}
+  \int_set:Nn \l__ufrgscca_b_int {#2}
   \int_do_until:nNnn {\l__ufrgscca_a_int} {=} {\l__ufrgscca_b_int}
     {
       \int_incr:N \l__ufrgscca_a_int
-      \hrulefill\\\par%
-
+      \hrulefill\\[#1]\par%
     }
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-lists}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA auxiliary lists commands}
 
 
@@ -42,8 +42,8 @@
   {
      name        .code:n = {ufrgscca-lists} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30} ,
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02} ,
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplPackage
     {ufrgscca-ppc}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA PPC commands}
 
 %%%%%%%
@@ -41,8 +41,8 @@
   {
      name        .code:n = {ufrgscca-ppc} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 

Modified: trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls	2023-12-03 21:08:31 UTC (rev 69024)
+++ trunk/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls	2023-12-03 21:08:42 UTC (rev 69025)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {2.1} {2023/11/30}
+%% This is version {2.2} {2023/12/02}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
 
 \ProvidesExplClass
     {ufrgscca}
-    {2023/11/30}
-    {2.1}
+    {2023/12/02}
+    {2.2}
     {UFRGS/CCA class}
 
 
@@ -42,8 +42,8 @@
   {
      name        .code:n = {ufrgscca} ,
      prefix      .code:n = {ufrgscca} ,
-     date        .code:n = {2023/11/30},
-     version     .code:n = {2.1} ,
+     date        .code:n = {2023/12/02},
+     version     .code:n = {2.2} ,
      description .code:n = {UFRGS/CCA~a~report~based~class~bundle}
   }
 \cs_if_exist:NF \__codedesc_pkg_info:nn 



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