summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ufrgscca
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-22 03:04:08 +0000
committerNorbert Preining <norbert@preining.info>2024-02-22 03:04:08 +0000
commit286abb7dcd6c03d7edcd3d3435bb97448074c3cf (patch)
tree3685af864920886e709e60d4c0383f62d2af85fb /macros/latex/contrib/ufrgscca
parent2f56d3421e4663856409792eb5b08a2c57b38a8c (diff)
CTAN sync 202402220303
Diffstat (limited to 'macros/latex/contrib/ufrgscca')
-rw-r--r--macros/latex/contrib/ufrgscca/README.md8
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.pdfbin590459 -> 592794 bytes
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.tex26
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty24
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty149
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty54
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty26
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty26
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty70
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex204
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty26
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty26
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex11
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca.cls26
18 files changed, 362 insertions, 322 deletions
diff --git a/macros/latex/contrib/ufrgscca/README.md b/macros/latex/contrib/ufrgscca/README.md
index 6c1eac798e..10781e740f 100644
--- a/macros/latex/contrib/ufrgscca/README.md
+++ b/macros/latex/contrib/ufrgscca/README.md
@@ -107,7 +107,13 @@ The Current Maintainer of this work is Alceu Frigeri
## Changelog
-* Version 2.3 (this)
+* Version 2.4/2.4a (this)
+ - a few typos (including [l3kernel prop check](https://github.com/latex3/latex3/issues/1460))
+ - extended \studentfate possible values (see documentation).
+ - \makeforms code cleanup. switching to \prop_get:NnNTF instead of \prop_item:Nn
+ - reports: some info adjustment
+
+* Version 2.3
- adjustments to report's cover
- added two student's list related commands \studentaddtolist and \sortstudentlist (-coord)
- some code clean up
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
index 02ac40fc7c..9eca25075c 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
Binary files differ
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
index 413f1fc7d6..e7a78b4fdd 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -558,7 +558,7 @@ All data is stored in two main \tsobj[pack]{starray} defined as follow:
reviewer . struct {
first , last , name , institution , title , email , phone ,
article , Article , narticle , Narticle , carticle , Carticle ,
- pointA , pointB , pointC , pointD , grade , gradetype ,
+ pointA , pointB , pointC , pointD , grade , gradetype , flag-examreview ,
} ,
altreviewer . struct {
first , last , name , institution , title , email , phone ,
@@ -1052,7 +1052,7 @@ Those commands are only of use when using \tsobj[pkg]{ufrgscca-coord}. \tsmacro{
\end{codedescribe}
-\begin{codedescribe}[code,new=2023/11/18,update=2023/12/02]{\studentCase,\studentAdvCase,\studentCoadvCase,\studentDismissCase,\studentNewPageCase,\studentDistinctBoardCase}
+\begin{codedescribe}[code,new=2023/11/18,update=2023/12/02,update=2024/01/15]{\studentCase,\studentAdvCase,\studentCoadvCase,\studentDismissCase,\studentNewPageCase,\studentDistinctBoardCase,\studentReviewerCase}
\begin{codesyntax}%
\tsmacro{\studentCase}{if-A-B-C,if-D,if-Exam-C,if-Exam-D,if-FF}
\tsmacro{\studentAdvCase}{if-more-than-one,if-not}
@@ -1060,6 +1060,7 @@ Those commands are only of use when using \tsobj[pkg]{ufrgscca-coord}. \tsmacro{
\tsmacro{\studentDismissCase}{if-dismiss,if-not}
\tsmacro{\studentNewPageCase}{if-newpage,if-not}
\tsmacro{\studentDistinctBoardCase}{if-distinct,if-not}
+ \tsmacro{\studentReviewerCase}{if-marked,if-not}
\end{codesyntax}
These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} will execute \emph{only one} of the \tsobj[meta]{if-} accordingly.
\end{codedescribe}
@@ -1175,12 +1176,15 @@ These are a set of auxiliary conditionals, for instance, \tsobj{\StudentCase} wi
%%%%
\paragraph{Student Specific Commands}\label{student-specific-commands}
-\begin{codedescribe}[code,update=2023/11/18]{\studentfate}
+\begin{codedescribe}[code,update=2023/11/18,update=2024/02/15]{\studentfate}
\begin{codesyntax}%
\tsmacro{\studentfate}[fate]{}
\end{codesyntax}
-This assigns the \tsobj[meta]{fate} of a student, for those cases that one cannot rely on the 'calculated one' (from examiners individual grades). \tsobj[meta]{fate} can be either C or D (in case a student got in exam), FF for those that haven't finished the work or 'Dismiss' for those that, for whatever reason, got dismissed. The default is 'do nothing' (no \tsobj[meta]{fate} assigned)
+This assigns the \tsobj[meta]{fate} of a student, for those cases that one cannot rely on the 'calculated one' (from examiners individual grades). \tsobj[meta]{fate} can be either \emph{exam} (if the student is in exam, but didn't got a grade yet) \emph{C} or \emph{D} (in case a student in exam got graded), \emph{FF} for those that haven't finished the work or \emph{dismiss} for those that, for whatever reason, got dismissed. The default is 'do nothing' (no \tsobj[meta]{fate} assigned)
\end{codedescribe}
+\begin{tsremark}
+(2024/02/15) In case some other, odd, value is assigned, this command will record as if the student is in 'exam', with the given grade \tsobj[oarg]{fate} marked in bold red.
+\end{tsremark}
\begin{codedescribe}[code,new=2023/12/04]{\studentaddtolist}
\begin{codesyntax}%
@@ -1243,11 +1247,11 @@ For example:
\tscode*[emph={distinctboard}]{d.distinct}
-\begin{codedescribe}[code,update=2023/11/18]{\examinergrades}
+\begin{codedescribe}[code,update=2023/11/18,update=2024/02/15]{\examinergrades}
\begin{codesyntax}%
- \tsmacro{\examinersgrades}{N1,N2,N3}\tsargs[oarg]{N4}
+ \tsmacro{\examinersgrades}{N1,N2,N3}\tsargs[oarg]{N4}\tsverb[oarg]{*}
\end{codesyntax}
-Quite obvious, this set the grades given by an examiner (the one defined by the 'last' \tsmacro{\examiner}{} before this.). In case \tsobj[oarg]{N4} is given it's assumed the TCC-I case, otherwise TCC-II.
+Quite obvious, this set the grades given by an examiner (the one defined by the 'last' \tsmacro{\examiner}{} before this.). In case \tsobj[oarg]{N4} is given it's assumed the TCC-I case, otherwise TCC-II. (update:2024/02/15) The 'star' at the end will mark said reviewer, in red, when generating a report.
\end{codedescribe}
@@ -1299,6 +1303,12 @@ By default, the list remains unchanged (no sort).
% \describe {checklist} { a students check list.}
\end{describelist}
+\begin{codedescribe}[code,new=2024/02/18]{\suppresschecklist}
+ \begin{codesyntax}%
+ \tsmacro{\suppresschecklist}{}
+ \end{codesyntax}
+ This will suppress the “student checklist” on the general report.
+\end{codedescribe}
\section{\tightul{ufrgscca-ppc} Package (extended documentation)}
This contains a set of auxiliary commands to keep track of many \emph{indicators} whilst writing a \emph{PPC document} (which is going to be evaluated based on said \emph{indicators}, though the track of those \emph{indicators} themselves shall not appear in the final version of it). Keep in mind, when considering the use of it: “it works as is” but it hasn't being properly debugged, and it might change “as needed locally”.
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
index 74988131c7..cc62a4bc4d 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA ABNT layout}
@@ -42,23 +42,15 @@
{
name .code:n = {ufrgscca-abnt} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~ abnt~layout}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
}
%%%%%%%
%%% End of cut-n-paste
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
index 204f0845c8..c94a4d44ab 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
index 436950f70f..81648a69b8 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
index 612a5885c8..109029231e 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA coord commands}
@@ -42,24 +42,16 @@
{
name .code:n = {ufrgscca-coord} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~ coordination~ report~ commands}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
@@ -134,9 +126,9 @@
\starray_new:n {prof}
\starray_def_from_keyval:nn {prof}
{
- last = ,
- first = ,
- gender = ,
+ last = {},
+ first = {},
+ gender = {},
}
\NewDocumentCommand{\professor}{O{}mmmmO{}}
@@ -144,10 +136,10 @@
\starray_new_term:nn {prof}{#1}
\starray_set_from_keyval:nn {prof}
{
- last = {#2},
- first = {#3},
- email = {#4},
- phone = {#5},
+ last = {#2},
+ first = {#3},
+ email = {#4},
+ phone = {#5},
gender = {#6},
}
}
@@ -229,57 +221,77 @@
%
\NewDocumentCommand{\studentfate}{O{}}{%%
- \str_case:nnF {#1}
+ \tl_if_blank:nTF {#1}
{
- {C}
+ \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}]
+ \__ufrgscca_studentgrade:
+ }
+ {
+ \str_case:nnF {#1}
{
- \starray_gset_from_keyval:nn {student}
+ {C}
{
- grade = C ,
- flag-exam = \c_true_bool ,
- flag-graded = \c_true_bool ,
- flag-approved = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = C ,
+ flag-exam = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ flag-approved = \c_true_bool ,
+ }
}
- }
- {D}
- {
- \starray_gset_from_keyval:nn {student}
+ {D}
{
- grade = D ,
- flag-exam = \c_true_bool ,
- flag-graded = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = D ,
+ flag-exam = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
}
- }
- {FF}
- {
- \starray_gset_from_keyval:nn {student}
+ {exam}
{
- grade = FF ,
- flag-ff = \c_true_bool ,
- flag-graded = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = {\textcolor{red}{exame}} ,
+ flag-exam = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
}
- }
- {dismiss}
- {
- \starray_gset_from_keyval:nn {student}
+ {FF}
{
- flag-dismiss = \c_true_bool ,
- flag-graded = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = FF ,
+ flag-ff = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
+ }
+ {dismiss}
+ {
+ \starray_gset_from_keyval:nn {student}
+ {
+ flag-dismiss = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
+ }
+ {none}
+ {
+ \starray_gset_from_keyval:nn {student}
+ {
+ flag-dismiss = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
}
}
- {none}
- {
+ { %% in case of none of above...
\starray_gset_from_keyval:nn {student}
{
- flag-dismiss = \c_true_bool ,
+ grade = {\textcolor{red}{\textbf{#1}}} ,
+ flag-exam = \c_true_bool ,
flag-graded = \c_true_bool ,
- }
+ }
}
}
- { %% in case of none of above...
- \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}]
- \__ufrgscca_studentgrade:
- }
}%%
%
\tl_new:N \l__ufrgscca_tmpa_tl
@@ -464,6 +476,13 @@
}
}
+\NewDocumentCommand{\studentReviewerCase}{mmm}{
+ \starray_term_syntax:n{student.reviewer[#1]}
+ \bool_if:nTF {\starray_parsed_get_prop:n{flag-examreview}}
+ {#2}
+ {#3}
+}
+
\NewDocumentCommand{\studentDismissCase}{mm}{
\starray_term_syntax:n{student}
@@ -554,7 +573,7 @@
\cs_generate_variant:Nn \starray_gset_prop:nnn {nne}
-\NewDocumentCommand{\examinergrades}{mmmO{}}{
+\NewDocumentCommand{\examinergrades}{mmmO{}s}{
\tl_if_blank:nTF {#1}
{
\starray_gset_prop:nnn {student.reviewer}{grade}{0}
@@ -589,6 +608,8 @@
\fpeval{round((#1 * \UseConst{TCC-I.weightA} + #2 * \UseConst{TCC-I.weightB} + #3 * \UseConst{TCC-I.weightC} + #4 * \UseConst{TCC-I.weightD}) / ( \UseConst{TCC-I.weightA} + \UseConst{TCC-I.weightB} + \UseConst{TCC-I.weightC} + \UseConst{TCC-I.weightD}) , 2 , 1) }
}
}
+ \bool_if:nT {#5}
+ {\starray_gset_prop:nnn {student.reviewer}{flag-examreview}{\c_true_bool}}
}
}
@@ -840,8 +861,14 @@
\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
+ \__ufrgscca_checktable_lines:nn {L1,L2,L3}{C1,C2,C3,C4,C5,C6}\hline
}
}
}
+
+\bool_new:N \l__ufrgscca_checklist_bool
+\bool_set_true:N \l__ufrgscca_checklist_bool
+\NewDocumentCommand{\suppresschecklist}{}{
+ \bool_set_false:N \l__ufrgscca_checklist_bool
+}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
index 475ce08a95..cc531e3156 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA core commands}
@@ -42,24 +42,16 @@
{
name .code:n = {ufrgscca-core} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~core~commands/data}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
@@ -192,7 +184,8 @@
pointC = ,
pointD = ,
grade = 0 ,
- gradetype = ,
+ gradetype = ,
+ flag-examreview = \c_false_bool ,
} ,
altreviewer . struct = {
first = ,
@@ -280,9 +273,9 @@
\NewDocumentCommand{\NewActivity}{m} {
\starray_new_term:nn {activity}{#1}
\starray_new_term:nn {activity.coord}{}
- \starray_gset_prop:nnV {activity}{checkmarked}\c_empty_prop
- \starray_gset_prop:nnV {activity}{checkunmarked}\c_empty_prop
- \starray_gset_prop:nnV {activity}{checkref}\c_empty_prop
+ \starray_gset_prop:nnV {activity}{chkmarked}\c_empty_prop
+ \starray_gset_prop:nnV {activity}{chkunmarked}\c_empty_prop
+ \starray_gset_prop:nnV {activity}{chkref}\c_empty_prop
}
@@ -485,11 +478,22 @@
\cs_new_protected:Npn \__ufrgscca_set_prof:nnnnn #1#2#3#4#5
{
- \starray_gset_from_keyval:nn {student.#1}
+ \tl_if_blank:nTF {#2}
{
- last = {#3} ,
- first = {#4} ,
- name = {#2~#4~ #3} ,
+ \starray_gset_from_keyval:nn {student.#1}
+ {
+ last = {#3} ,
+ first = {#4} ,
+ name = {#4~ #3} ,
+ }
+ }
+ {
+ \starray_gset_from_keyval:nn {student.#1}
+ {
+ last = {#3} ,
+ first = {#4} ,
+ name = {#2~#4~ #3} ,
+ }
}
\__ufrgscca_setgender:nn {student.#1}{#5}
}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
index e61c119748..72349eab9d 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
index 55aae54775..fa26df00a4 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA cover commands}
@@ -42,24 +42,16 @@
{
name .code:n = {ufrgscca-cover} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~ cover~pages}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
index 381e31c73b..2d05f2dd10 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA curricula commands}
%%%%%%%
@@ -41,24 +41,16 @@
{
name .code:n = {ufrgscca-curr} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~ curricula~ commands}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
index 62c966a938..7de2244182 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA forms commands}
@@ -42,24 +42,16 @@
{
name .code:n = {ufrgscca-forms} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~ forms~commands}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
@@ -196,24 +188,40 @@
{
\centering
{
- \UseTerm{cover.topbase}\\
- {\sc \prop_item:Nn \l__ufrgscca_forms_prop {#1.heading}}
+ \prop_get:NnNTF \l__ufrgscca_forms_prop {#1.top} \l_tmpa_tl
+ { \l_tmpa_tl }
+ { \UseTerm{cover.topbase}\\ }
+ \prop_get:NnNTF \l__ufrgscca_forms_prop {#1.heading} \l_tmpa_tl
+ { {\sc \l_tmpa_tl}\\[6mm] }
+ { \par\vspace{5mm} }
}
- }\\[7mm]
- {\bf \prop_item:Nn \l__ufrgscca_forms_prop {#1.title}}
- \prop_if_in:NnTF \l__ufrgscca_forms_prop {#1.footnote}
- {\footnote[1]{\prop_item:Nn \l__ufrgscca_forms_prop {#1.footnote}}}
- {}\\
+ }\par
+ \prop_get:NnNT \l__ufrgscca_forms_prop {#1.title} \l_tmpa_tl
+ {
+ \textbf{\l_tmpa_tl}
+ \prop_get:NnNT \l__ufrgscca_forms_prop {#1.footnote} \l_tmpa_tl
+ { \footnote[1]{\l_tmpa_tl} }
+ \\
+ }
\end{center}
%
- \vfill
- \prop_item:Nn \l__ufrgscca_forms_prop {#1.opening}
- \vfill
- \prop_item:Nn \l__ufrgscca_forms_prop {#1.body}
- \vfill
- \prop_item:Nn \l__ufrgscca_forms_prop {#1.closing}
+ \prop_get:NnNT \l__ufrgscca_forms_prop {#1.opening} \l_tmpa_tl
+ {
+ \vfill
+ \l_tmpa_tl
+ }
+ \prop_get:NnNT \l__ufrgscca_forms_prop {#1.body} \l_tmpa_tl
+ {
+ \vfill
+ \l_tmpa_tl
+ }
+ \prop_get:NnNT \l__ufrgscca_forms_prop {#1.closing} \l_tmpa_tl
+ {
+ \vfill
+ \l_tmpa_tl
+ }
\pagebreak
- }
+}
\NewDocumentCommand{\SignatureDate}{m}{
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
index 6a3b6573c1..c8df3c2ce8 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -438,18 +438,21 @@ Nome do(a) Aluno(a) --- Email\\
\item \emptybox\ \textbf{Abordagem/Plano de Trabalho Proposto}. {\footnotesize(peso:2)}\\ {\footnotesize Considerar se a abordagem, plano de trabalho proposto, é adequada e factivel.}
\item \emptybox\ \textbf{Redação}. {\footnotesize(peso:1)}\\ {\footnotesize Considerar a qualidade do trabalho escrito apresentado.}
\item { O Trabalho Submetido}
- \begin{itemize}[tcc,nosep]
- \item[$\Box$] Está adequado, dispensando correções do texto.
- \item[$\Box$] Está adequado, sendo necessário correções, conforme anotações anexas.
- \item[$\Box$] Necessita ser revisto/re-escrito,\footnotemark[3] e:
- \begin{itemize}
- \item[$\Box$] basta a revisão final do texto pelo orientador,
- \item[$\Box$] revisarei o trabalho depois de corrigido.
- \end{itemize}
- \end{itemize}
+ \begin{enumerate}[tcc,nosep]
+ \item[$\Box$ a)] Está adequado,
+ \begin{enumerate}
+ \item[$\Box$ a.1)] dispensando correções do texto.
+ \item[$\Box$ a.2)] sendo necessário correções, conforme anotações anexas.
+ \end{enumerate}
+ \item[$\Box$ b)] Necessita ser revisto/re-escrito,\footnotemark[3] e:
+ \begin{enumerate}
+ \item[$\Box$ b.1)] basta a revisão final do texto pelo orientador,
+ \item[$\Box$ b.2)] revisarei o trabalho depois de corrigido.
+ \end{enumerate}
+ \end{enumerate}
\end{enumerate}
-Outras considerações, parecer (se necessário): \BlankLines{6}
+Outras considerações, parecer (se necessário): \BlankLines{5}
\footnotetext[2]{Use a escala: \begin{enumerate*}\item[0.]Péssimo \item[3.]Deficitário \item[6.]Bom \item[8.]Muito Bom \item[10.]Excelente \end{enumerate*}}%
\footnotetext[3]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}%
@@ -751,40 +754,46 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora
%%%
\SetForm{correctionsform-II}{body}{ \resizebox{0.9\textwidth}{!}{
-O texto submetido:
- \parbox[t]{.75\textwidth}{
- \begin{itemize}[tcc,nosep]
- \item[$\Box$] Está adequado, dispensando correções do texto.
- \item[$\Box$] Está adequado, sendo necessário correções, conforme a
- seguir (e anotações anexas).
- \begin{description}[tcc,noitemsep]
- \item[$\Box$] Ortográfica
- \item[$\Box$] Regras de Escrita
- \item[$\Box$] Equações
- \item[$\Box$] Resumo
- \item[$\Box$] Abstract
- \item[$\Box$] Índice
- \item[$\Box$] Introdução
- \item[$\Box$] Conclusões
- \item[$\Box$] Corpo do Trabalho
- \item[$\Box$] Resultados
- \item[$\Box$] Adicionar mais exemplos
- \item[$\Box$] Figuras
- \item[$\Box$] Tabelas
- \end{description}
- \item[$\Box$] Necessita ser revisto/re-escrito,\footnotemark[2] e:
- \begin{itemize}
- \item[$\Box$] basta a revisão final do texto pelo orientador,
- \item[$\Box$] revisarei o trabalho depois de corrigido.
- \end{itemize}
- \item[$\Box$] Outras considerações (se necessário): \\
- \begin{tabular}{p{0.7\textwidth}}
- ~\\\hline
- ~\\\hline
- ~\\\hline
- ~\\\hline
- \end{tabular}\\[-1mm]
- \end{itemize}} }
+ \parbox[t]{.9\textwidth}{
+ O texto submetido:
+
+ \begin{enumerate}[tcc,nosep]
+ \item[$\Box$ a)] Está adequado,
+ \begin{enumerate}
+ \item[$\Box$ a.1)] dispensando correções do texto.
+ \item[$\Box$ a.2)] sendo necessário correções, conforme a seguir (e anotações anexas).
+ \begin{description}[tcc,noitemsep]
+ \item[$\Box$] Ortográfica
+ \item[$\Box$] Regras de Escrita
+ \item[$\Box$] Equações
+ \item[$\Box$] Resumo
+ \item[$\Box$] Abstract
+ \item[$\Box$] Índice
+ \item[$\Box$] Introdução
+ \item[$\Box$] Conclusões
+ \item[$\Box$] Corpo do Trabalho
+ \item[$\Box$] Resultados
+ \item[$\Box$] Adicionar mais exemplos
+ \item[$\Box$] Figuras
+ \item[$\Box$] Tabelas
+ \end{description}
+ \end{enumerate}
+ \item[$\Box$ b)] Necessita ser revisto/re-escrito,\footnotemark[2] e:
+ \begin{itemize}
+ \item[$\Box$ b.1)] basta a revisão final do texto pelo orientador.
+ \item[$\Box$ b.2)] revisarei o trabalho depois de corrigido.
+ \end{itemize}
+ \item[]
+ \item[$\Box$] Outras considerações (se necessário): \\
+ \begin{tabular}{p{0.7\textwidth}}
+ ~\\\hline
+ ~\\\hline
+ ~\\\hline
+ ~\\\hline
+ \end{tabular}\\[-1mm]
+ \end{enumerate}
+}
+}
\footnotetext[2]{Neste caso \DataFields{student}{article} alun\DataFields{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.}
}
@@ -847,15 +856,15 @@ O texto submetido:
& \UseLabel{board} \\\hline%
\IfBooleanTF{#1}
{
- \multirow{4}={\DataFields{student}{name}} %
+ \multirow{3}={\DataFields{student}{name}} %
&\DataFields{student.reviewer[1]}{name}\\%
}%
{%
- \multirow{3}={\DataFields{student}{name}}%
+ \multirow{2}={\DataFields{student}{name}}%
}
&\DataFields{student.reviewer[2]}{name}\\%
- &\DataFields{student.reviewer[3]}{name}\\%
- & ~\\[-2.5ex]
+ &\DataFields{student.reviewer[3]}{name}\\[0.25ex]%
+% & ~\\[-2.5ex]
\multicolumn{2}{l}{\studentCoadvLabelCase} \\\hline%
\end{tabular}%
\end{center}%
@@ -894,7 +903,9 @@ O texto submetido:
}
\NewDocumentCommand{\ReviewerLine}{m}{%
- & \hspace{-0.4em}\DataFields{student.reviewer[#1]}{name}
+ \studentReviewerCase{#1}
+ {& \hspace{-0.4em}\textcolor{red}{\DataFields{student.reviewer[#1]}{name}}}
+ {& \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} & %
}
@@ -902,14 +913,14 @@ O texto submetido:
\NewDocumentCommand{\studentLine}{s}{%
\IfBooleanTF{#1}%
{%
- \multirow{4}={\textbf{\DataFields{student}{name}}}
+ \multirow[c]{3}={\textbf{\DataFields{student}{name}}}%
\ReviewerLine{1}\\*
- }
+ }%
{%
- \multirow{3}={\textbf{\DataFields{student}{name}}}
- }
+ \multirow[c]{2}={\textbf{\DataFields{student}{name}}}%
+ }%
\ReviewerLine{2}\\*%
- \nopagebreak\ReviewerLine{3}\\[0.75ex]%
+ \ReviewerLine{3}\\*%[0.75ex]%
\multicolumn{6}{l}{\studentCoadvLabelCase} & \textbf{\DataFields{student}{gradeavrg}} & \textbf{\DataFields{student}{grade}}%\\ \hline%
}
@@ -917,10 +928,13 @@ O texto submetido:
\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}{\ \ \ \color{darkerblue}\UseLabel{advisor.email}: \DataFields{student.advisor}{email} \UseLabel{phone}: \DataFields{student.advisor}{phone}}\\*
+%%% \multicolumn{#1}{p{#2}}{\ \ \ \color{darkerred}\UseLabel{board}: \DataFields{student.reviewer[1]}{email} (\DataFields{student.reviewer[1]}{phone}) / \DataFields{student.reviewer[2]}{email} (\DataFields{student.reviewer[2]}{phone}) / \DataFields{student.reviewer[3]}{email} (\DataFields{student.reviewer[3]}{phone})}\\*
+
+ \multicolumn{#1}{p{#2}}{{\ \ \ \color{darkerblue}\bf \DataFields{student.advisor}{email} (\DataFields{student.advisor}{phone})} ~~ - ~~
+ {\color{darkerred} \DataFields{student.reviewer[2]}{email} (\DataFields{student.reviewer[2]}{phone}) / \DataFields{student.reviewer[3]}{email} (\DataFields{student.reviewer[3]}{phone})}}\\*
- \multicolumn{#1}{l}{\ \ \ \UseLabel{remarks}: {\color{red}\textbf{\DataFields{student}{remarks}}}}%\\ \hline
+ \multicolumn{#1}{p{#2}}{\ \ \ \UseLabel{remarks}: {\color{red}\textbf{\DataFields{student}{remarks}}}}%\\ \hline
}
@@ -941,23 +955,23 @@ O texto submetido:
\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]
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, tendo sido \textbf{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}}\ 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]
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ submeteu o trabalho intitulado \emph{\DataFields{student}{worktitle}}, tendo sido \textbf{REPROVAD\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}}\ 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]
+ \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 \textbf{APROVAD\DataFields{student}{Article}} com conceito final \textbf{\DataFields{student}{grade}}.\\[2em]
\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]
+ \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 \textbf{REPROVAD\DataFields{student}{Article}} com conceito final \textbf{\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}.
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ não concluiu o trabalho de conclusão de Curso tendo sido \textbf{REPROVAD\DataFields{student}{Article}} com conceito final \textbf{FF}.
}
}
@@ -986,23 +1000,23 @@ 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-date}, tendo sido APROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+ \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 \textbf{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-date}, tendo sido REAPROVAD\DataFields{student}{Article} com conceito final \textbf{\DataFields{student}{grade}}, conforme quadro de notas abaixo.\\[2em]
+ \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 \textbf{REPROVAD\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-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]
+ \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 \textbf{APROVAD\DataFields{student}{Article}} com conceito final \textbf{\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-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]
+ \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 \textbf{REPROVAD\DataFields{student}{Article}} com conceito final \textbf{\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}.
+ \DataFields{student}{Article} alun\DataFields{student}{article} \emph{\DataFields{student}{name}}\ não concluiu o trabalho de conclusão de Curso tendo sido \textbf{REPROVAD\DataFields{student}{Article}} com conceito final \textbf{FF}.
}
}
@@ -1022,12 +1036,17 @@ O texto submetido:
\ExplSyntaxOn
+\cs_new:Npn \__ufrgscca_hline:nnn #1#2#3 {\noalign{\vskip #1\vskip 0pt\hrule height #2\arrayrulewidth\vskip #3\vskip 0pt\penalty 10000}}
+\cs_new:Npn \__ufrgscca_hline:n #1 {\__ufrgscca_hline:nnn {-0.5ex}{#1}{0.25ex}}
+\cs_new:Npn \__ufrgscca_hline: {\__ufrgscca_hline:nnn {-0.5ex}{0.5}{0.25ex}}
+
\cs_new_protected:Npn \reportBody #1#2
{
\str_case:nn {#1}
{
{I}
{
+ \ActivitySelect{tccI}
\begin{longtable}
{
p{\UseConst{report.tabA}}@{\ }
@@ -1042,6 +1061,7 @@ O texto submetido:
}
{II}
{
+ \ActivitySelect{tccII}
\begin{longtable}
{
p{\UseConst{report.tabA}}@{\ }
@@ -1059,8 +1079,17 @@ O texto submetido:
\seq_map_inline:Nn \l__ufrgscca_baselist_graded_seq
{
\studentselect{##1}
- #2\\*\hline
- \studentExtLine{7}{\UseConst{report.tabMult.#1}}\\\hline
+ #2\\\hline
+ \studentExtLine{7}{\UseConst{report.tabMult.#1}}\\\hline
+ \bool_if:nT {\l__ufrgscca_checklist_bool}
+ {
+ \multicolumn{7}{l}
+ {
+ \begin{tabular}{llllll}
+ \__ufrgscca_checktable_lines:nn {L1,L2,L3}{C1,C2,C3,C4,C5,C6}
+ \end{tabular}
+ }\\\hline
+ }
}
\__ufrgscca_miss_case:nnnnn
{7} {report.tabMult.#1}
@@ -1079,7 +1108,7 @@ O texto submetido:
{
\seq_if_empty:NF #3
{
- &\\
+ &\\\pagebreak
\multicolumn{#1}{l}{\textbf{\color{#5}#4}}\\\hline
\seq_map_inline:Nn #3
{
@@ -1097,13 +1126,14 @@ O texto submetido:
%%%%%%%%%%%%%%%
%% report TCC - I
%%%%%%%%%%%%%%%
-\SetForm{report-I}{heading}{\UseTerm{title.tccI}}
-\SetForm{report-I}{title}{Relatório Acompanhamento - \UseTerm{semester}}
+\SetForm{report-I}{top}{}
+\SetForm{report-I}{heading}{\vspace*{-5ex}\UseTerm{title.tccI}~ - ~\textbf{\UseTerm{semester}}}
+%\SetForm{report-I}{title}{}
\SetForm{report-I}{opening}{}
%%%
\SetForm{report-I}{opening}{ %
- { \tiny
+ { \vspace*{-5ex}\tiny
\reportBody {I}{\studentLine}
}
}
@@ -1115,14 +1145,16 @@ O texto submetido:
%%%%%%%%%%%%%%%
%% report TCC - II
%%%%%%%%%%%%%%%
-\SetForm{report-II}{heading}{\UseTerm{title.tccII}}
-\SetForm{report-II}{title}{Relatório Acompanhamento - \UseTerm{semester}}
+\SetForm{report-II}{top}{}
+\SetForm{report-II}{heading}{\vspace*{-5ex}\UseTerm{title.tccII}~ - ~\textbf{\UseTerm{semester}}}
+%\SetForm{report-II}{title}{Relatório Acompanhamento - \UseTerm{semester}}
+%\SetForm{report-II}{title}{\vspace*{-2ex}\UseTerm{semester}}
\SetForm{report-II}{opening}{}
%%%
\SetForm{report-II}{opening}{ %
- { \tiny
+ { \vspace{-2ex}\tiny
\reportBody {II}{\studentLine*}
}
}
@@ -1145,10 +1177,10 @@ O texto submetido:
\SetForm{checklist-I}{opening}{ %
\ActivitySelect{tccI}
{ \scriptsize
- \begin{longtable}{lllll}%
- \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]
+ \begin{longtable}{llllll}%
+ \CheckList{6}{graded}{Alunos~Com~ Conceito}[black]
+ \CheckList{6}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+ \CheckList{6}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
\end{longtable}
}
~\vfill
@@ -1169,10 +1201,10 @@ O texto submetido:
\SetForm{checklist-II}{opening}{ %
\ActivitySelect{tccII}
{ \scriptsize
- \begin{longtable}{lllll}%
- \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]
+ \begin{longtable}{llllll}%
+ \CheckList{6}{graded}{Alunos~Com~ Conceito}[black]
+ \CheckList{6}{ff}{Desistentes~ com~ conceito~ (2o ~ semestre)}[red]
+ \CheckList{6}{dismiss}{Desistentes~ sem~ conceito~ (1o ~ semestre)}[magenta]
\end{longtable}
}
~\vfill
@@ -1224,7 +1256,7 @@ O texto submetido:
& \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}) \\*
+ && ({\DataFields{student.altreviewer[1]}{name}}) \\*
\multicolumn{4}{p{\UseConst{board.tabAll}}}
{\textsc{Título:}\ \emph{\DataFields{student}{worktitle}}}\\\hline
}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
index 21f1473d18..8e075be0ca 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA auxiliary lists commands}
@@ -42,24 +42,16 @@
{
name .code:n = {ufrgscca-lists} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05} ,
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19} ,
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
index 08bba41e21..57bb8926bf 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA PPC commands}
%%%%%%%
@@ -41,24 +41,16 @@
{
name .code:n = {ufrgscca-ppc} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
index 0a5f9557b5..940f8491c0 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
index f054d3473c..84effd20e6 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -61,10 +61,10 @@
\ActivitySetCoord{Nome Coordenador}
\ActivitySetCoordTitle{Coordenador\ActivityCoord[internship]{narticle} da Atividade de Ensino de\newline Estágio Supervisionado Obrigatório}
-\ActivitySelect{internship}
-\ActivitySet{Est.Ob.}{Estágio Supervisionado Não Obrigatório}
+\ActivitySelect{internship-opt}
+\ActivitySet{Est. Não Ob.}{Estágio Supervisionado Não Obrigatório}
\ActivitySetCoord{Nome Coordenador}
-\ActivitySetCoordTitle{Coordenador\ActivityCoord[internship]{narticle} da Atividade de Ensino de\newline Estágio Supervisionado Não Obrigatório}
+\ActivitySetCoordTitle{Coordenador\ActivityCoord[internship]{narticle} da Atividade de Ensino de\newline Estágio Supervisionado Obrigatório}
\SetTerms{%
@@ -226,6 +226,7 @@
phone = {ramal} ,
board = {Banca Examinadora} ,
board.member = {Membro da Banca} ,
+ board.acro = {Banca} ,
agree = {De Acordo} ,
Nproc = {SEI} ,
remarks = {remarks} ,
@@ -272,7 +273,7 @@
report.tabF = {8mm} ,
report.tabG = {12mm} ,
report.tabMult.II = {141mm} , % A+B+C+D+E+F+G
- report.tabMult.I = {156mm} , % A+B+C+D+E+F+G + Ex
+ report.tabMult.I = {141mm} , % A+B+C+D+E+F+G + Ex
}
\SetConsts{%
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
index 12a6cea359..a0f813deb5 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% 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/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA class}
@@ -42,24 +42,16 @@
{
name .code:n = {ufrgscca} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~a~report~based~class~bundle}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%