From 286abb7dcd6c03d7edcd3d3435bb97448074c3cf Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 22 Feb 2024 03:04:08 +0000 Subject: CTAN sync 202402220303 --- macros/latex/contrib/ufrgscca/README.md | 8 +- macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf | Bin 590459 -> 592794 bytes macros/latex/contrib/ufrgscca/doc/ufrgscca.tex | 26 ++- .../latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty | 24 +-- .../contrib/ufrgscca/latex/ufrgscca-base-en.def | 2 +- .../contrib/ufrgscca/latex/ufrgscca-base-ptBR.def | 2 +- .../contrib/ufrgscca/latex/ufrgscca-coord.sty | 149 +++++++++------ .../latex/contrib/ufrgscca/latex/ufrgscca-core.sty | 54 +++--- .../contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex | 2 +- .../contrib/ufrgscca/latex/ufrgscca-cover.sty | 26 +-- .../latex/contrib/ufrgscca/latex/ufrgscca-curr.sty | 26 +-- .../contrib/ufrgscca/latex/ufrgscca-forms.sty | 70 +++---- .../contrib/ufrgscca/latex/ufrgscca-forms.tex | 204 ++++++++++++--------- .../contrib/ufrgscca/latex/ufrgscca-lists.sty | 26 +-- .../latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty | 26 +-- .../contrib/ufrgscca/latex/ufrgscca-terms-en.tex | 2 +- .../contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex | 11 +- macros/latex/contrib/ufrgscca/latex/ufrgscca.cls | 26 +-- 18 files changed, 362 insertions(+), 322 deletions(-) (limited to 'macros/latex/contrib/ufrgscca') 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 Binary files a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf and b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf 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 %%%%%%% -- cgit v1.2.3