summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-11-30 21:05:30 +0000
committerKarl Berry <karl@freefriends.org>2023-11-30 21:05:30 +0000
commit76076c576544105bf92ac40ae089ed73327fa120 (patch)
treea8a3fe403238a9ce82a0012e136e4cac6b89cc54 /Master/texmf-dist/tex/latex
parent345654654ff7d496bd0c7a5b88203623205276b4 (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')
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty38
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-en.def2
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-base-ptBR.def2
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-coord.sty263
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty66
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty11
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty11
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls18
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}
%%