diff options
author | Karl Berry <karl@freefriends.org> | 2023-11-30 21:05:30 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-11-30 21:05:30 +0000 |
commit | 76076c576544105bf92ac40ae089ed73327fa120 (patch) | |
tree | a8a3fe403238a9ce82a0012e136e4cac6b89cc54 /Master/texmf-dist/tex/latex | |
parent | 345654654ff7d496bd0c7a5b88203623205276b4 (diff) |
ufrgscca (30nov23)
git-svn-id: svn://tug.org/texlive/trunk@69009 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
11 files changed, 321 insertions, 120 deletions
diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty index eba4667270b..dce7de584a0 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-abnt} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA ABNT layout} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-abnt} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~ abnt~layout} } \cs_if_exist:NF \__codedesc_pkg_info:nn @@ -812,6 +812,20 @@ October\or November\or December \fi } + \cs_new_protected:Npn \__ufrgscca_weekday:n #1 + { + \int_case:nnF {#1} + { + {0}{Monday} + {1}{Tuesday} + {2}{Wednsday} + {3}{Thursday} + {4}{Friday} + {5}{Saturday} + {6}{Sunday} + } + {-none-} + } } { \def\today{\number\day\space de\space\monthname\space de\space\number\year} @@ -822,6 +836,20 @@ Outubro\or Novembro\or Dezembro \fi } + \cs_new_protected:Npn \__ufrgscca_weekday:n #1 + { + \int_case:nnF {#1} + { + {0}{Segunda} + {1}{Terça} + {2}{Quarta} + {3}{Quinta} + {4}{Sexta} + {5}{Sábado} + {6}{Domingo} + } + {-none-} + } } diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def index 014860c78f8..fcbb6748152 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def index 8854c1ded8e..a75f798851f 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty index ffb88727a47..a232b458912 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-coord} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA coord commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-coord} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~ coordination~ report~ commands} } \cs_if_exist:NF \__codedesc_pkg_info:nn @@ -118,6 +118,8 @@ \RequirePackage{longtable} \RequirePackage{multirow} +\RequirePackage{pgfcalendar} + \RequirePackage{ufrgscca-core} \RequirePackage{ufrgscca-forms} @@ -125,6 +127,57 @@ % + +\starray_new:n {prof} +\starray_def_from_keyval:nn {prof} + { + last = , + first = , + gender = , + } + +\NewDocumentCommand{\professor}{O{}mmO{}} + { + \starray_new_term:nn {prof}{#1} + \starray_set_from_keyval:nn {prof} + { + last = {#2}, + first = {#3}, + gender = {#4}, + } + } + +\cs_new_protected:Npn \__ufrgscca_prof_ref_set:nnnn #1#2#3#4 + { #1 {#2}{#3}[#4] } + +\cs_generate_variant:Nn \__ufrgscca_prof_ref_set:nnnn {eeee} + +\cs_new_protected:Npn \__ufrgscca_prof_ref:nn #1#2 + { + \starray_set_iter_from_hash:nnTF {prof}{#2} + { + \starray_term_syntax:n {prof} + \__ufrgscca_prof_ref_set:eeee {#1}{\starray_parsed_get_prop:n{last}}{\starray_parsed_get_prop:n{first}}{\starray_parsed_get_prop:n{gender}} + } + { + #1{definido:(#2)}{não} + } + } + +\NewDocumentCommand{\advisorprof}{m} + { \__ufrgscca_prof_ref:nn {\advisor}{#1} } + +\NewDocumentCommand{\coadvisorprof}{m} + { \__ufrgscca_prof_ref:nn {\coadvisor}{#1} } + +\NewDocumentCommand{\examinerprof}{m} + { \__ufrgscca_prof_ref:nn {\examiner}{#1} } + +\NewDocumentCommand{\altexaminerprof}{m} + { \__ufrgscca_prof_ref:nn {\altexaminer}{#1} } + + + \NewDocumentCommand{\ActivitySetNewEvent}{O{}mm}{ \tl_if_blank:nTF {#1} { @@ -205,6 +258,7 @@ } } { %% in case of none of above... + \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}] \__ufrgscca_studentgrade: } }%% @@ -215,62 +269,101 @@ \tl_new:N \l__ufrgscca_tmpd_tl \cs_new_protected:Npn \__ufrgscca_studentgrade: { - %(\DataFields{student}{name})\par - \starray_term_syntax:n {student.reviewer[1]} - \tl_set:Ne \l__ufrgscca_tmpa_tl {\starray_parsed_get_prop:n {grade}} - \starray_term_syntax:n {student.reviewer[2]} - \tl_set:Ne \l__ufrgscca_tmpb_tl {\starray_parsed_get_prop:n {grade}} - \starray_term_syntax:n {student.reviewer[3]} - \tl_set:Ne \l__ufrgscca_tmpc_tl {\starray_parsed_get_prop:n {grade}} - \int_case:nn {\starray_parsed_get_prop:n {gradetype}} + \starray_term_syntax:n {student} + \bool_if:nTF {\starray_parsed_get_prop:n {flag-null}} { - {1} - { - \tl_set:Ne \l__ufrgscca_tmpd_tl - {\fpeval{round(((\l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/2),2,1)}} - } - {2} - { - \tl_set:Ne \l__ufrgscca_tmpd_tl - {\fpeval{round(((\l__ufrgscca_tmpa_tl + \l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/3),2,1)}} - } - } - \starray_gset_prop:nne {student}{gradeavrg}{\l__ufrgscca_tmpd_tl} - \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeC}} - { % D - \starray_gset_prop:nnn {student}{grade}{D} + \starray_gset_prop:nnn {student}{grade}{D*} } { - \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeB}} - { % C - \starray_gset_prop:nnn {student}{grade}{C} - \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool} + %(\DataFields{student}{name})\par + \starray_term_syntax:n {student.reviewer[1]} + \tl_set:Ne \l__ufrgscca_tmpa_tl {\starray_parsed_get_prop:n {grade}} + \starray_term_syntax:n {student.reviewer[2]} + \tl_set:Ne \l__ufrgscca_tmpb_tl {\starray_parsed_get_prop:n {grade}} + \starray_term_syntax:n {student.reviewer[3]} + \tl_set:Ne \l__ufrgscca_tmpc_tl {\starray_parsed_get_prop:n {grade}} + \str_case:nnF {\starray_parsed_get_prop:n {gradetype}} + { + {1} + { + \tl_set:Ne \l__ufrgscca_tmpd_tl + {\fpeval{round(((\l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/2),2,1)}} + } + {2} + { + \tl_set:Ne \l__ufrgscca_tmpd_tl + {\fpeval{round(((\l__ufrgscca_tmpa_tl + \l__ufrgscca_tmpb_tl + \l__ufrgscca_tmpc_tl)/3),2,1)}} + } + } + { \tl_set:Nn \l__ufrgscca_tmpd_tl {0} } + + \starray_gset_prop:nne {student}{gradeavrg}{\l__ufrgscca_tmpd_tl} + \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeC}} + { % D + \starray_gset_prop:nnn {student}{grade}{D} } { - \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeA}} - { % B - \starray_gset_prop:nnn {student}{grade}{B} + \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeB}} + { % C + \starray_gset_prop:nnn {student}{grade}{C} \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool} } - { % A - \starray_gset_prop:nnn {student}{grade}{A} - \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool} + { + \fp_compare:nNnTF {\l__ufrgscca_tmpd_tl} < {\UseConst{NgradeA}} + { % B + \starray_gset_prop:nnn {student}{grade}{B} + \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool} + } + { % A + \starray_gset_prop:nnn {student}{grade}{A} + \starray_gset_prop:nnn {student}{flag-approved}{\c_true_bool} + } } } } + \starray_gset_prop:nnn {student}{flag-graded}{\c_true_bool} + } + - \starray_gset_prop:nnn {student}{flag-graded}{\c_true_bool} +\cs_new_protected:Npn \__ufrgscca_set_timeslot:nnnn #1#2#3#4 + { + \starray_gset_from_keyval:nn {student} + { + board-local = {#1} , + board-time = {#2} , + board-date = {#3} , } -% + \SetConsts { + date:#3 = {\__ufrgscca_weekday:n {#4}} , + } + } +\cs_generate_variant:Nn \__ufrgscca_set_timeslot:nnnn {nnee} + + +\seq_new:N \l__ufrgscca_cal_seq +\newcount\l__ufrgscca_day_counter +\newcount\l__ufrgscca_weekday_counter \NewDocumentCommand{\timeslot}{O{}mm}{%% - \starray_gset_from_keyval:nn {student} + \seq_set_split:Nnn \l__ufrgscca_cal_seq {/} {#2} + \int_case:nnF {\seq_count:N \l__ufrgscca_cal_seq} + { + {2}{ \seq_put_right:Ne \l__ufrgscca_cal_seq {\number\year} } + {3}{} + } { - board-local = #1 , - board-date = #2 , - board-time = #3 , + \seq_clear:N \l__ufrgscca_cal_seq + \seq_put_right:Nn \l__ufrgscca_cal_seq {31} + \seq_put_right:Nn \l__ufrgscca_cal_seq {12} + \seq_put_right:Ne \l__ufrgscca_cal_seq {\number\year} } + \seq_reverse:N \l__ufrgscca_cal_seq + \pgfcalendardatetojulian{\seq_use:Nn \l__ufrgscca_cal_seq {-}}{\l__ufrgscca_day_counter} + \pgfcalendarjuliantoweekday{\the\l__ufrgscca_day_counter}{\l__ufrgscca_weekday_counter} + \seq_reverse:N \l__ufrgscca_cal_seq + \seq_pop_right:NN \l__ufrgscca_cal_seq \l_tmpa_tl + + \__ufrgscca_set_timeslot:nnee {#1}{#3}{\seq_use:Nn \l__ufrgscca_cal_seq {/}}{\the\l__ufrgscca_weekday_counter} }% -% @@ -337,12 +430,14 @@ } }% - -\NewDocumentCommand{\boarddate}{mm}{%% - \SetConsts{% - date:#1 = {#2} , - } -}% +%% +%% DEPRECATED, to be removed. +%% +%\NewDocumentCommand{\boarddate}{mm}{%% +% \SetConsts{% +% date:#1 = {#2} , +% } +%}% % \NewDocumentCommand{\semester}{m}{%% \SetTerms{% @@ -384,7 +479,10 @@ \NewDocumentCommand{\examinergrades}{mmmO{}}{ \tl_if_blank:nTF {#1} - { \starray_gset_prop:nnn {student.reviewer}{grade}{0} } + { + \starray_gset_prop:nnn {student.reviewer}{grade}{0} + \starray_gset_prop:nnn {student}{flag-null}{\c_true_bool} + } { \tl_if_blank:nTF {#4} { %% 3 grades, TCC II @@ -419,35 +517,64 @@ } +\tl_new:N \l__ufrgscca_sortA_tl +\tl_new:N \l__ufrgscca_sortB_tl + +\NewDocumentCommand{\setstudentlist}{sO{tcc}mm}{ + \seq_new:c {l__ufrgscca_#3_seq} + \seq_new:c {l__ufrgscca_#3_ff_seq} + \seq_new:c {l__ufrgscca_#3_dismiss_seq} + \seq_new:c {l__ufrgscca_#3_graded_seq} + + \clist_map_inline:nn {#4} + { + \starray_set_iter_from_hash:nnT {student}{##1} + { + \seq_put_right:cn {l__ufrgscca_#3_seq} {##1} + \emptytermifnone{student.advisor} + \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}] + \emptytermifnone{student.altreviewer} + } + } +% \seq_gset_from_clist:cn {l__ufrgscca_#3_seq}{#4} -\NewDocumentCommand{\setstudentlist}{O{tcc}mm}{ - \seq_new:c {l__ufrgscca_#2_seq} - \seq_new:c {l__ufrgscca_#2_ff_seq} - \seq_new:c {l__ufrgscca_#2_dismiss_seq} - \seq_new:c {l__ufrgscca_#2_graded_seq} + \bool_if:nT {#1} + { + \seq_gsort:cn {l__ufrgscca_#3_seq } + { + \starray_set_iter_from_hash:nn {student}{##1} + \starray_get_prop:nnN {student}{name} \l__ufrgscca_sortA_tl + \starray_set_iter_from_hash:nn {student}{##2} + \starray_get_prop:nnN {student}{name} \l__ufrgscca_sortB_tl + \str_compare:eNeTF { \l__ufrgscca_sortA_tl } > { \l__ufrgscca_sortB_tl } + { \sort_return_swapped: } + { \sort_return_same: } + } + } + - \seq_gset_from_clist:cn {l__ufrgscca_#2_seq}{#3} - \str_case:nn {#1} + + \str_case:nn {#2} { {tcc} { - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n} - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}} } {tccI} { - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n} - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}} } {tccII} { - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n} - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}} } {intern} { %% TO BE IMPLEMENTED !!! - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_grade:n} - \seq_map_tokens:cn {l__ufrgscca_#2_seq} {\__ufrgscca_listclassify:nn {#2}} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_grade:n} + \seq_map_tokens:cn {l__ufrgscca_#3_seq} {\__ufrgscca_listclassify:nn {#3}} } } } @@ -455,7 +582,7 @@ \cs_new_protected:Npn \__ufrgscca_grade:n #1 { \starray_set_iter_from_hash:nn {student}{#1} - \starray_term_syntax:n {student[#1]} + \starray_term_syntax:n {student} \bool_if:nF {\starray_parsed_get_prop:n {flag-graded}} { \__ufrgscca_studentgrade: } } diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty index 1972c1d2501..92b211cf5c5 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-core} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA core commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-core} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~core~commands/data} } \cs_if_exist:NF \__codedesc_pkg_info:nn @@ -126,11 +126,12 @@ checklist = , %%% This shall be a property list of check items brief = \BlankLines{6} , reason = \BlankLines{6} , - board-local = {local ~da~ apresentação} , - board-date = {dia~ da~ apresentação} , - board-time = {hora~da~apresentação} , + board-local = {local} , + board-date = {dia} , + board-time = {hora} , gradeavrg = 0, grade = , + flag-null = \c_false_bool , %% IF no grade was given flag-graded = \c_false_bool , %%% IF gradeavrg AND finalgrade already calculated (or defined) flag-exam = \c_false_bool , flag-ff = \c_false_bool , @@ -336,6 +337,10 @@ \starray_get_prop:nn {activity.calendar}{date} & \starray_get_prop:nn {activity.calendar}{week} & \starray_get_prop:nn {activity.calendar}{event} } +\NewDocumentCommand{\ActivityCalendarIterate}{m}{ + \starray_iterate_over:nn{activity.calendar}{#1} +} + % \cs_new_protected:Npn \__ufrgscca_setgender:nn #1#2 @@ -490,6 +495,33 @@ } } +\cs_new_protected:Npn \__ufrgscca_emptyterm_if_none:nnn #1#2#3 + { + \starray_get_cnt:nN {#2} \l_tmpa_int + \int_while_do:nNnn {\l_tmpa_int} < {#1} + { + \starray_new_term:nn {#2}{} + #3 + \starray_get_cnt:nN {#2} \l_tmpa_int + } + } + +\NewDocumentCommand{\emptytermifnone}{O{1}mO{}} + { + \__ufrgscca_emptyterm_if_none:nnn {#1}{#2}{#3} + } + +\cs_new_protected:Npn \__ufrgscca_student_emptyfields_if_none: + { + \__ufrgscca_emptyterm_if_none:nnn {1}{student}{} + \__ufrgscca_emptyterm_if_none:nnn {1}{student.advisor}{} + \__ufrgscca_emptyterm_if_none:nnn {3}{student.reviewer}{} + \__ufrgscca_emptyterm_if_none:nnn {1}{student.altreviewer}{} + \__ufrgscca_emptyterm_if_none:nnn {1}{student.tutor}{} + \__ufrgscca_emptyterm_if_none:nnn {1}{student.supervisor}{} + \__ufrgscca_emptyterm_if_none:nnn {1}{student.internship}{} + } + \NewDocumentCommand{\advisor}{O{}mmO{}}{%% \starray_new_term:nn {student.advisor}{} @@ -518,12 +550,12 @@ }% -\NewDocumentCommand{\coadvisoremptyifnone}{}{%% - \starray_get_cnt:nN {student.coadvisor} \l_tmpa_int - \int_if_zero:nTF \l_tmpa_int - { \starray_new_term:nn {student.coadvisor}{} } - {} -}% +%%%\NewDocumentCommand{\coadvisoremptyifnone}{}{%% +%%% \starray_get_cnt:nN {student.coadvisor} \l_tmpa_int +%%% \int_if_zero:nTF \l_tmpa_int +%%% { \starray_new_term:nn {student.coadvisor}{} } +%%% {} +%%%}% \NewDocumentCommand{\tutor}{O{}mmO{}}{%% @@ -535,10 +567,12 @@ \__ufrgscca_set_prof_info:nnnnn {tutor}{#1}{#2}{#3}{#4} }% + \NewDocumentCommand{\supervisor}{O{}mmO{}}{%% \starray_new_term:nn {student.supervisor}{} \__ufrgscca_set_prof:nnnnn {supervisor}{#1}{#2}{#3}{#4} -}% +} + \NewDocumentCommand{\supervisorinfo}{mmmm}{%% \starray_gset_from_keyval:nn {student.supervisor} { @@ -548,6 +582,7 @@ phone = {#4} , } }% + \NewDocumentCommand{\internship}{mmmmm}{%% \starray_new_term:nn {student.internship}{} \starray_gset_from_keyval:nn {student.internship} @@ -564,6 +599,7 @@ \starray_new_term:nn {student.reviewer}{} \__ufrgscca_set_prof:nnnnn {reviewer}{#1}{#2}{#3}{#4} }% + \NewDocumentCommand{\examinerinfo}{mmmm}{%% \__ufrgscca_set_prof_info:nnnnn {reviewer}{#1}{#2}{#3}{#4} }% diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty index 9cfd99a620a..5f33f075588 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-cover} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA cover commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-cover} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~ cover~pages} } \cs_if_exist:NF \__codedesc_pkg_info:nn @@ -92,6 +92,7 @@ \NewDocumentCommand{\MakeCoverPages}{m} { + \__ufrgscca_student_emptyfields_if_none: \seq_set_from_clist:Ne \l__ufrgscca_tmp_seq {\prop_item:Nn \l__ufrgscca_coverpages_prop {#1.clist} } \seq_map_inline:Nn \l__ufrgscca_tmp_seq diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty index 51dd5a43efa..c1d47459071 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-curr} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA curricula commands} %%%%%%% @@ -41,8 +41,8 @@ { name .code:n = {ufrgscca-curr} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~ curricula~ commands} } \cs_if_exist:NF \__codedesc_pkg_info:nn diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty index c5f3afe8e9b..38380a97c32 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-forms} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA forms commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-forms} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~ forms~commands} } \cs_if_exist:NF \__codedesc_pkg_info:nn @@ -160,6 +160,7 @@ \NewDocumentCommand{\tcforms}{m}{% + \__ufrgscca_student_emptyfields_if_none: \SetKeys[forms]{#1}% } diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty index 3d34c7c927b..0e00613fe42 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-lists} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA auxiliary lists commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-lists} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23} , - version .code:n = {2.0} , + date .code:n = {2023/11/30} , + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands} } \cs_if_exist:NF \__codedesc_pkg_info:nn diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty index 34939ff17e0..4a176fd236e 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplPackage {ufrgscca-ppc} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA PPC commands} %%%%%%% @@ -41,8 +41,8 @@ { name .code:n = {ufrgscca-ppc} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands} } \cs_if_exist:NF \__codedesc_pkg_info:nn diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls index dd87d1ea352..4aa296e5c42 100644 --- a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls +++ b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.0} {2023/11/23} +%% This is version {2.1} {2023/11/30} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -27,8 +27,8 @@ \ProvidesExplClass {ufrgscca} - {2023/11/23} - {2.0} + {2023/11/30} + {2.1} {UFRGS/CCA class} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca} , prefix .code:n = {ufrgscca} , - date .code:n = {2023/11/23}, - version .code:n = {2.0} , + date .code:n = {2023/11/30}, + version .code:n = {2.1} , description .code:n = {UFRGS/CCA~a~report~based~class~bundle} } \cs_if_exist:NF \__codedesc_pkg_info:nn @@ -133,6 +133,14 @@ \prop_put_from_keyval:Nn \l__ufrgscca_const_prop {#1} } +\cs_generate_variant:Nn \prop_put:Nnn {Nee} +\NewDocumentCommand{\eSetConst}{mm} + { + \prop_put:Nee \l__ufrgscca_const_prop {#1}{#2} + } + + + \cs_generate_variant:Nn \prop_item:Nn {Ne} %% |