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.