summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-12-03 21:08:42 +0000
committerKarl Berry <karl@freefriends.org>2023-12-03 21:08:42 +0000
commitf301a9f32ac9a287615fb0d80fbfd49b0c17f1c8 (patch)
treeab4d52c1f1d8be7d68e40c05d27d1123b4a598ea
parente9800175c3dd0bc97f50e3fcd9da85d43811612e (diff)
ufrgscca (3dec23)
git-svn-id: svn://tug.org/texlive/trunk@69025 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/README.md7
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex80
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex440
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex2
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex80
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdfbin588653 -> 588902 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex31
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty18
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def2
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def2
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty261
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty20
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty20
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty17
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls10
18 files changed, 587 insertions, 433 deletions
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/README.md b/Master/texmf-dist/doc/latex/ufrgscca/README.md
index 9ce0b4dcf14..16b72a2b73d 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/README.md
+++ b/Master/texmf-dist/doc/latex/ufrgscca/README.md
@@ -107,7 +107,12 @@ The Current Maintainer of this work is Alceu Frigeri
## 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)
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
index 1cb8f472939..c0bfe2c643b 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
+++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex
@@ -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,19 +71,19 @@
} ,
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}}
} ,
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 @@ CONTROLE~ E~ AUTOMAÇÃO }
\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 @@ CONTROLE~ E~ AUTOMAÇÃO }
\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} }
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex
index e6e47ec34eb..c2eff7eaf93 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex
+++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex
@@ -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,14 +172,30 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de
\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,7 +281,9 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de
%%%%%%%%%%%%%%%
\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}{%
@@ -302,9 +320,9 @@ Data de Início: {\bf \DataFields{student.internship}{start}}\hfill Previsão de
%%%%%%%%%%%%%%%
\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 @@ Outras considerações, parecer (se necessário): \BlankLines{6}
\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}}%
+ \studentCoadvCase{
+ \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]
+ 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 @@ O texto submetido:
\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 @@ O texto submetido:
%%%
\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 @@ O texto submetido:
\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 @@ O texto submetido:
\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,64 +1020,79 @@ O texto submetido:
}
+\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}%
- }%
-}
-
-\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
-
+\ExplSyntaxOff
%%%%%%%%%%%%%%%
%% report TCC - I
@@ -1035,17 +1104,7 @@ O texto submetido:
%%%
\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 @@ O texto submetido:
\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 @@ O texto submetido:
\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 @@ O texto submetido:
\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 @@ O texto submetido:
\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 @@ O texto submetido:
\SetForm{boards}{title}{\UseTerm{board.title}}
\SetForm{boards}{opening}{}
+\ExplSyntaxOn
%%%
\SetForm{boards}{opening}{ %
{\footnotesize
@@ -1181,7 +1200,7 @@ O texto submetido:
\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 @@ O texto submetido:
\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}
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex
index c061c01555d..357a65e9910 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex
+++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex
@@ -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
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex
index d8cd5d3b243..4001c9ba940 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex
+++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex
@@ -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} ,
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf
index b6146a3339d..b00760ede4e 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf
+++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex
index 3f274311546..9b5171802b6 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex
+++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex
@@ -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 @@ Take note that \tsobj[pkg]{biblatex} is loaded with the \textbf{\tsobj[option]{b
\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,15 +298,17 @@ Creates those \emph{chapter like} lists, like `List of Symbols' or `List of acro
\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}
@@ -1002,7 +1004,7 @@ One can (should) use the commands listed at \autonameref{core-commands}[], and t
\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 @@ These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} wi
\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 @@ These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} wi
\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 @@ To set the \tsobj[meta]{local}, \tsobj[meta]{date} and \tsobj[meta]{time} of a s
\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 @@ Quite obvious, this set the grades given by an examiner (the one defined by the
\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 @@ This command will define/create a list named \tsobj[meta]{listID} composed of a
\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}
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty
index dce7de584a0..9eb2b1b127f 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty
@@ -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
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def
index fcbb6748152..e1fa48bde03 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def
@@ -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
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def
index a75f798851f..3f92982697d 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def
@@ -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
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty
index a232b458912..2ac06980144 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty
@@ -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,47 +139,63 @@
gender = ,
}
-\NewDocumentCommand{\professor}{O{}mmO{}}
+\NewDocumentCommand{\professor}{O{}mmmmO{}}
{
\starray_new_term:nn {prof}{#1}
\starray_set_from_keyval:nn {prof}
{
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,46 +348,99 @@
\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}
{
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
-
- \__ufrgscca_set_timeslot:nnee {#1}{#3}{\seq_use:Nn \l__ufrgscca_cal_seq {/}}{\the\l__ufrgscca_weekday_counter}
-}%
+\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}
+ }%
@@ -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
+ }
+ }
+
+}
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty
index 92b211cf5c5..a303a53a2ad 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty
@@ -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} ,
}
}%
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty
index 5f33f075588..ab87aa84b82 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty
@@ -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}
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty
index c1d47459071..05380271f62 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty
@@ -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
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty
index 38380a97c32..4acd2de65b5 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty
@@ -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%
}
}
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty
index 0e00613fe42..732b0ed3a57 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty
@@ -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
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty
index 4a176fd236e..67724e318ce 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty
@@ -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
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls
index 4aa296e5c42..4b49363841f 100644
--- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls
+++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls
@@ -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