diff options
author | Karl Berry <karl@freefriends.org> | 2024-03-11 20:00:07 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-03-11 20:00:07 +0000 |
commit | 52d7a2f426653fc153c3935a8626d7f108bceb46 (patch) | |
tree | e14fc1e4d0811ad38bafce970245da5c7eefce7a | |
parent | 9b283ffdd707fca4cdb630bbdda4e2a0a8284f21 (diff) |
ufrgscca (11mar24)
git-svn-id: svn://tug.org/texlive/trunk@70600 c570f23f-e606-0410-a88d-b1316a301751
18 files changed, 317 insertions, 167 deletions
diff --git a/Master/texmf-dist/doc/latex/ufrgscca/README.md b/Master/texmf-dist/doc/latex/ufrgscca/README.md index dc63bf969a2..7de453521ee 100644 --- a/Master/texmf-dist/doc/latex/ufrgscca/README.md +++ b/Master/texmf-dist/doc/latex/ufrgscca/README.md @@ -107,7 +107,13 @@ The Current Maintainer of this work is Alceu Frigeri ## Changelog -* Version 2.6 (this) +* Version 2.7 (this) + - fixing issue https://github.com/alceu-frigeri/ufrgscca/issues/1 + - removing all V-expansion of property/sequence lists to avoid further issues with l3kernel + issues: https://github.com/alceu-frigeri/starray/issues/6, https://github.com/latex3/latex3/issues/1460 and https://github.com/latex3/latex3/issues/1466 + - Remarks: code is operational but needs further cleanup! + +* Version 2.6 - Added other's case (student fate) for record keeping. - Report adjustments (other's case). diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex index e73a06aef2e..b88c90d7b53 100644 --- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex +++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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/doc/latex/ufrgscca/ufrgscca-forms.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex index 8e225d5edfa..d4cb25ac4d1 100644 --- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex +++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% The list of files that compose this work can be found in the README.md file at %% https://ctan.org/pkg/ufrgscca @@ -23,6 +23,19 @@ %% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) %%%============================================================================== +\ExplSyntaxOn + \tl_new:N \tmpTabA + \tl_new:N \tmpTabB + \tl_new:N \tmpTabC + \tl_new:N \tmpTabD + \tl_new:N \tmpTabE + \tl_new:N \tmpTabEx + \tl_new:N \tmpTabF + \tl_new:N \tmpTabG + \tl_new:N \tmpTabMult + \tl_new:N \tmpTabAll +\ExplSyntaxOff + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -881,7 +894,9 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora {%% \footnotesize% \begin{center}% - \begin{tabular}{p{\UseConst{report.tabA*}}@{\ }p{\UseConst{report.tabB*}}@{\ }c}%\hline% + \GetConst{report.tabA*}{\tmpTabA} + \GetConst{report.tabB*}{\tmpTabB} + \begin{tabular}{p{\tmpTabA}@{\ }p{\tmpTabB}@{\ }c}%\hline% & \UseLabel{board} \\\hline% \IfBooleanTF{#1} { @@ -906,14 +921,16 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora {\footnotesize% \begin{center}% \resizebox{\textwidth}{!}{% + \GetConst{report.tabA}{\tmpTabA} + \GetConst{report.tabB}{\tmpTabB} \IfBooleanTF{#1} {% - \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }p{0pt}@{}c@{\ }c} + \begin{tabular}{p{\tmpTabA}@{\ }p{\tmpTabB}@{\ }c@{\ }c@{\ }c@{\ }p{0pt}@{}c@{\ }c} \HeaderLine{II} \studentLine* } {% - \begin{tabular}{p{\UseConst{report.tabA}}@{\ }p{\UseConst{report.tabB}}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c} + \begin{tabular}{p{\tmpTabA}@{\ }p{\tmpTabB}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c} \HeaderLine{I} \studentLine }% @@ -1080,6 +1097,14 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \cs_new_protected:Npn \reportBody #1#2 { + \GetConst{report.tabA}{\tmpTabA} + \GetConst{report.tabB}{\tmpTabB} + \GetConst{report.tabC}{\tmpTabC} + \GetConst{report.tabD}{\tmpTabD} + \GetConst{report.tabE}{\tmpTabE} + \GetConst{report.tabEx}{\tmpTabEx} + \GetConst{report.tabF}{\tmpTabF} + \GetConst{report.tabG}{\tmpTabG} \str_case:nn {#1} { {I} @@ -1087,14 +1112,14 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \ActivitySelect{tccI} \begin{longtable} { - p{\UseConst{report.tabA}}@{\ } - p{\UseConst{report.tabB}}@{\ } - p{\UseConst{report.tabC}}@{\ } - p{\UseConst{report.tabD}}@{\ } - p{\UseConst{report.tabE}}@{\ } - p{\UseConst{report.tabEx}}@{\ } - p{\UseConst{report.tabF}}@{\ } - p{\UseConst{report.tabG}} + p{\tmpTabA}@{\ } + p{\tmpTabB}@{\ } + p{\tmpTabC}@{\ } + p{\tmpTabD}@{\ } + p{\tmpTabE}@{\ } + p{\tmpTabEx}@{\ } + p{\tmpTabF}@{\ } + p{\tmpTabG} } } {II} @@ -1102,25 +1127,26 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \ActivitySelect{tccII} \begin{longtable} { - p{\UseConst{report.tabA}}@{\ } - p{\UseConst{report.tabB}}@{\ } - p{\UseConst{report.tabC}}@{\ } - p{\UseConst{report.tabD}}@{\ } - p{\UseConst{report.tabE}}@{\ } + p{\tmpTabA}@{\ } + p{\tmpTabB}@{\ } + p{\tmpTabC}@{\ } + p{\tmpTabD}@{\ } + p{\tmpTabE}@{\ } p{0pt}@{} - p{\UseConst{report.tabF}}@{\ } - p{\UseConst{report.tabG}} + p{\tmpTabF}@{\ } + p{\tmpTabG} } } } \HeaderLine{#1} + \GetConst{report.tabMult.#1}{\tmpTabMult} \seq_map_inline:Nn \l__ufrgscca_baselist_graded_seq { \studentselect{##1} % \__ufrgscca_student_emptyfields_if_none: \__ufrgscca_emptyterm_if_none:nnn {3}{student.reviewer}{} #2\\\hline - \studentExtLine{7}{\UseConst{report.tabMult.#1}}\\\hline + \studentExtLine{7}{\tmpTabMult}\\\hline \bool_if:nT {\l__ufrgscca_checklist_bool} { \multicolumn{7}{l} @@ -1132,17 +1158,17 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora } } \__ufrgscca_miss_case:nnnnn - {7} {report.tabMult.#1} + {7} {\tmpTabMult} {\l__ufrgscca_baselist_ff_seq} {Desistentes~ com~ conceito~FF~ (2o ~ semestre)} {red} \__ufrgscca_miss_case:nnnnn - {7} {report.tabMult.#1} + {7} {\tmpTabMult} {\l__ufrgscca_baselist_dismiss_seq} {Desistentes~ sem~ conceito~ (1o ~ semestre)} {magenta} \__ufrgscca_miss_case:nnnnn - {7} {report.tabMult.#1} + {7} {\tmpTabMult} {\l__ufrgscca_baselist_other_seq} {Outros~ (não~ matriculados)} {teal} @@ -1161,7 +1187,7 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora \__ufrgscca_emptyterm_if_none:nnn {3}{student.reviewer}{} &\\* \multicolumn{#1}{l}{\textbf{\color{#5}\DataFields{student}{name}}}\\* - \studentExtLine{#1}{\UseConst{#2}}\\* + \studentExtLine{#1}{#2}\\* \multicolumn{#1}{l}{\studentCoadvLabelCase}\\ \hline } } @@ -1230,7 +1256,12 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora %%% \SetForm{boards}{opening}{ % {\footnotesize - \begin{longtable}{p{\UseConst{board.tabA}}p{\UseConst{board.tabB}}p{\UseConst{board.tabC}}p{\UseConst{board.tabD}}}% + \GetConst{board.tabA}{\tmpTabA} + \GetConst{board.tabB}{\tmpTabB} + \GetConst{board.tabC}{\tmpTabC} + \GetConst{board.tabD}{\tmpTabD} + \GetConst{board.tabAll}{\tmpTabAll} + \begin{longtable}{p{\tmpTabA}p{\tmpTabB}p{\tmpTabC}p{\tmpTabD}}% %\multicolumn{4}{c}{\UseTerm{board.title}}\\\hline \hline \tl_gclear:N \l__ufrgscca_daytmpa_tl @@ -1260,7 +1291,7 @@ A nota (variando de zero a dez) atribuída por cada membro da banca examinadora && \DataFields{student.reviewer[2]}{name} \\* && \DataFields{student.reviewer[3]}{name} \\* && ({\DataFields{student.altreviewer[1]}{name}}) \\* - \multicolumn{4}{p{\UseConst{board.tabAll}}} + \multicolumn{4}{p{\tmpTabAll}} {\textsc{Título:}\ \emph{\DataFields{student}{worktitle}}}\\\hline } \end{longtable} diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex index 8223ae33db3..040dbb0fa0f 100644 --- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex +++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex index 14d59b4505a..c0f1de91ccf 100644 --- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex +++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex @@ -12,7 +12,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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/doc/latex/ufrgscca/ufrgscca.pdf b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf Binary files differindex b5c3f0418bd..91e81cb1406 100644 --- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf +++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf diff --git a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex index 3ce27a7913b..99056847206 100644 --- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex +++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex @@ -15,7 +15,7 @@ %% %% The Current Maintainer of this work is Alceu Frigeri %% -%% This is version {2.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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-abnt.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty index 6e008fe159e..fcb7856e394 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA ABNT layout} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-abnt} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~ abnt~layout} } \cs_if_exist:NF \PkgInfo 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 3af375f915f..3b3fca1df7d 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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 7aba05c370e..a3a71fe6bbb 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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 e03a338b2f0..c258ab8b343 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA coord commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-coord} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~ coordination~ report~ commands} } \cs_if_exist:NF \PkgInfo @@ -58,6 +58,17 @@ +%%%%%%% +%%% +%%% V-less : Blocks of code affected: +%%% Coord (checklist) 'kind of easy' +%%% curr (all!) 'to be seen how' +%%% ppc (all!) 'to be seen how' +%%% +%%%%%%% + + + \cs_generate_variant:Nn \tl_set:Nn {Ne} @@ -656,7 +667,13 @@ \NewDocumentCommand{\tcreports}{O{}m}{ { - + \seq_map_inline:cn {l__ufrgscca_#2_list_seq} + { + \starray_set_iter_from_hash:nn {student}{##1} + \emptytermifnone{student.advisor} + \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}] + \emptytermifnone{student.altreviewer} + } \__ufrgscca_set_reports:n {#1} \bool_if:cF {l__ufrgscca_#2_classified_bool} { \sortstudentlist{#2} } @@ -776,18 +793,27 @@ \prop_new:N \l__ufrgscca_checkB_prop \prop_new:N \l__ufrgscca_checkref_prop -\NewDocumentCommand{\checkdef}{mmm}{ - \starray_get_prop:nnN {activity}{chkmarked}\l__ufrgscca_check_prop - \prop_gput:Nnn \l__ufrgscca_check_prop {#1}{\__ufrgscca_checkedbox:~\ #3} - \starray_gset_prop:nnV {activity}{chkmarked}\l__ufrgscca_check_prop +\tl_new:N \l__ufrgscca_chkID_tl +\tl_new:N \l__ufrgscca_chkIDa_tl +\tl_new:N \l__ufrgscca_chkIDb_tl - \starray_get_prop:nnN {activity}{chkunmarked}\l__ufrgscca_check_prop - \prop_gput:Nnn \l__ufrgscca_check_prop {#1}{\__ufrgscca_uncheckedbox:~\ #3} - \starray_gset_prop:nnV {activity}{chkunmarked}\l__ufrgscca_check_prop +\NewDocumentCommand{\checkdef}{mmm}{ +% \starray_get_prop:nnN {activity}{chkmarked}\l__ufrgscca_check_prop +% \prop_gput:Nnn \l__ufrgscca_check_prop {#1}{\__ufrgscca_checkedbox:~\ #3} +% \starray_gset_prop:nnV {activity}{chkmarked}\l__ufrgscca_check_prop +% +% \starray_get_prop:nnN {activity}{chkunmarked}\l__ufrgscca_check_prop +% \prop_gput:Nnn \l__ufrgscca_check_prop {#1}{\__ufrgscca_uncheckedbox:~\ #3} +% \starray_gset_prop:nnV {activity}{chkunmarked}\l__ufrgscca_check_prop +% +% \starray_get_prop:nnN {activity}{chkref}\l__ufrgscca_check_prop +% \prop_gput:Nnn \l__ufrgscca_check_prop {#2}{#1} +% \starray_gset_prop:nnV {activity}{chkref}\l__ufrgscca_check_prop - \starray_get_prop:nnN {activity}{chkref}\l__ufrgscca_check_prop - \prop_gput:Nnn \l__ufrgscca_check_prop {#2}{#1} - \starray_gset_prop:nnV {activity}{chkref}\l__ufrgscca_check_prop + \starray_get_prop:nnN {activity}{chkID}\l__ufrgscca_chkID_tl + \prop_gput:cnn {l__ufrgscca_ \l__ufrgscca_chkID_tl _chkmarked_prop} {#1}{\__ufrgscca_checkedbox:~\ #3} + \prop_gput:cnn {l__ufrgscca_ \l__ufrgscca_chkID_tl _chkunmarked_prop} {#1}{\__ufrgscca_uncheckedbox:~\ #3} + \prop_gput:cnn {l__ufrgscca_ \l__ufrgscca_chkID_tl _chkref_prop} {#2}{#1} } \cs_generate_variant:Nn \prop_gput:Nnn {Nee} @@ -798,9 +824,16 @@ \NewDocumentCommand{\checklist}{O{}m}{ \tl_if_blank:nF {#1} { \starray_set_iter_from_hash:nn {activity}{#1} } - \starray_get_prop:nnN {student}{checklist}\l__ufrgscca_check_prop - \starray_get_prop:nnN {activity}{chkmarked}\l__ufrgscca_checkB_prop - \starray_get_prop:nnN {activity}{chkref}\l__ufrgscca_checkref_prop +% \starray_get_prop:nnN {student}{checklist}\l__ufrgscca_check_prop +% \starray_get_prop:nnN {activity}{chkmarked}\l__ufrgscca_checkB_prop +% \starray_get_prop:nnN {activity}{chkref}\l__ufrgscca_checkref_prop + %% V-less : checklists as hash_.... prop + \starray_get_prop:nnN {student} {chkID} \l__ufrgscca_chkIDa_tl + \starray_get_prop:nnN {activity} {chkID} \l__ufrgscca_chkIDb_tl + \prop_set_eq:Nc \l__ufrgscca_check_prop {l__ufrgscca_ \l__ufrgscca_chkIDa_tl _checklist_prop} + \prop_set_eq:Nc \l__ufrgscca_checkB_prop {l__ufrgscca_ \l__ufrgscca_chkIDb_tl _chkmarked_prop} + \prop_set_eq:Nc \l__ufrgscca_checkref_prop {l__ufrgscca_ \l__ufrgscca_chkIDb_tl _chkref_prop} + \clist_map_inline:nn {#2} { \prop_get:NnNT \l__ufrgscca_checkref_prop {##1} \l__ufrgscca_checkref_tl @@ -809,7 +842,9 @@ \prop_gput:Nee \l__ufrgscca_check_prop {\l__ufrgscca_checkref_tl} {\l__ufrgscca_checkB_tl} } } - \starray_gset_prop:nnV {student}{checklist}{\l__ufrgscca_check_prop} +% \starray_gset_prop:nnV {student}{checklist}{\l__ufrgscca_check_prop} + %% V-less : could be improved, direct reference + \prop_set_eq:cN {l__ufrgscca_ \l__ufrgscca_chkIDa_tl _checklist_prop} \l__ufrgscca_check_prop } \prop_new:N \l__ufrgscca_check_list_prop @@ -819,8 +854,17 @@ \cs_new_protected:Npn \__ufrgscca_checktable_lines:nn #1#2 { - \starray_get_prop:nnN {activity} {chkunmarked} \l__ufrgscca_checkA_prop - \starray_get_prop:nnN {student}{checklist}\l__ufrgscca_check_prop +% \starray_get_prop:nnN {activity} {chkunmarked} \l__ufrgscca_checkA_prop +% \starray_get_prop:nnN {student} {checklist} \l__ufrgscca_check_prop + + %% V-less : checklists as hash_.... prop + \starray_get_prop:nnN {student} {chkID} \l__ufrgscca_chkIDa_tl + \starray_get_prop:nnN {activity} {chkID} \l__ufrgscca_chkIDb_tl + \prop_set_eq:Nc \l__ufrgscca_check_prop {l__ufrgscca_ \l__ufrgscca_chkIDa_tl _checklist_prop} + \prop_set_eq:Nc \l__ufrgscca_checkA_prop {l__ufrgscca_ \l__ufrgscca_chkIDb_tl _chkunmarked_prop} + +% \prop_show:N \l__ufrgscca_check_prop +% \prop_show:c {l__ufrgscca_ \l__ufrgscca_chkIDa_tl _checklist_prop} \prop_map_inline:Nn \l__ufrgscca_check_prop { \prop_gput:Nnn \l__ufrgscca_checkA_prop {##1}{##2} } diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty index 7a7f3602792..f250c0d27c8 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA core commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-core} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~core~commands/data} } \cs_if_exist:NF \PkgInfo @@ -116,6 +116,7 @@ carticle = ao(à) , Carticle = Ao(À) , remarks = , + chkID = , %%% 'unique ID' for checklist checklist = , %%% This shall be a property list of check items brief = \BlankLines{6} , reason = \BlankLines{6} , @@ -267,17 +268,31 @@ week = {-semana-} , event = {-Descrição-} , } , + chkID = , %%% 'unique ID' for checklists chkmarked = , %%% This shall be a prop list of marked itens chkunmarked = , %%% This shall be a prop list of unmarked itens chkref = , %%% This shall be a prop list of ref itens } +%% workaround (V-less) +%% => \starray_get_uniqueID {starray-ref} .... +%% (might just be parser construct...) and use it to define a unique prop name. + +\tl_new:N \l__ufrgscca_tmpID_tl \NewDocumentCommand{\NewActivity}{m} { \starray_new_term:nn {activity}{#1} \starray_new_term:nn {activity.coord}{} - \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 + \starray_get_unique_id:nNTF {activity} \l__ufrgscca_tmpID_tl + {} + {} + \starray_gset_prop:nnV {activity}{chkID} \l__ufrgscca_tmpID_tl + \prop_new:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _chkmarked_prop} + \prop_new:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _chkunmarked_prop} + \prop_new:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _chkref_prop} +% \prop_show:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _chkmarked_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 } @@ -381,7 +396,12 @@ name = {#3~ #2} , } \__ufrgscca_setgender:nn {student}{#4} - \starray_gset_prop:nnV {student}{checklist}\c_empty_prop + \starray_get_unique_id:nNTF {student}\l__ufrgscca_tmpID_tl + {} + {} + \starray_gset_prop:nnV {student}{chkID} \l__ufrgscca_tmpID_tl + \prop_new:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _checklist_prop} + %\starray_gset_prop:nnV {student}{checklist}\c_empty_prop }% % \NewDocumentCommand{\eDataSet}{m}{ diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty index 0231265c6e7..e4f32e96879 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA cover commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-cover} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~ cover~pages} } \cs_if_exist:NF \PkgInfo diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty index afcdb1aabe2..892d0f0e519 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA curricula commands} %%%%%%% @@ -41,8 +41,8 @@ { name .code:n = {ufrgscca-curr} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~ curricula~ commands} } \cs_if_exist:NF \PkgInfo @@ -56,6 +56,18 @@ %%%%%%% +%%%%%%% +%%% +%%% V-less nightmare TO BE DONE! +%%% => convert all V referenced sequences into 'starray sub structures' +%%% less efficient, but 'portable' and V-safe. +%%% +%%% => Alternative approach: convert a _seq into a clist then store it into starray (argh! double damm) +%%% => or just use ..._clist instead of _seq (replacing all _seq that are stored in starrays by a _clist) +%%% +%%%%%%% + + \starray_new:n {topics} \starray_new:n {classes} \starray_new:n {curricula} @@ -65,7 +77,7 @@ self = , name = , color = , - class lst = , %list (sequence) of classes + uniqueID = , % to replace class list (V-less) } \starray_def_from_keyval:nn {classes} @@ -76,9 +88,7 @@ summary = , topic = , remark = , - bib seq = , - bib basic seq = , - bib compl seq = , + uniqueID = , % to replace the many V sequences (bib) ref . struct = { curr = , sem = , @@ -184,8 +194,13 @@ name = {#3} , color = {#1} , } -% \seq_clear:N \l_tmpa_seq - \starray_set_prop:nnV {topics}{class lst} \c_empty_seq + %% V-less : replacing / new seq + \starray_get_unique_id:nNTF {topics}\l__ufrgscca_uniqueID_tmpa_tl + {} + {\tl_set:Nn \l__ufrgscca_uniqueID_tmpa_tl {}} + \starray_set_prop:nnV {topics}{uniqueID} \l__ufrgscca_uniqueID_tmpa_tl + \seq_new:c {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpa_tl _seq} + } \tl_new:N \l__ufrgscca_default_topic_tl @@ -203,16 +218,22 @@ name = {#4} , topic = {#1} , } -% \seq_clear:N \l_tmpa_seq - \starray_set_prop:nnV {classes}{bib seq} \c_empty_seq - \starray_set_prop:nnV {classes}{bib basic seq} \c_empty_seq - \starray_set_prop:nnV {classes}{bib compl seq} \c_empty_seq + %% V-less : new + \starray_get_unique_id:nNTF {classes}\l__ufrgscca_uniqueID_tmpb_tl + {} + {\tl_set:Nn \l__ufrgscca_uniqueID_tmpb_tl {}} + \starray_set_prop:nnV {classes}{uniqueID} \l__ufrgscca_uniqueID_tmpb_tl + \seq_new:c {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib _seq} + \seq_new:c {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib basic _seq} + \seq_new:c {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib compl _seq} + \starray_set_iter_from_hash:nn {topics}{#1} - \starray_get_prop:nnN {topics}{class lst} \l_tmpa_seq - \seq_put_right:Nn \l_tmpa_seq{#2} - \starray_set_prop:nnV {topics}{class lst} \l_tmpa_seq + %% V-less : new seq + \starray_get_prop:nnN {topics}{uniqueID} \l__ufrgscca_uniqueID_tmpa_tl + \seq_put_right:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpa_tl _seq} {#2} } + \NewDocumentCommand{\csummary}{m} { \starray_set_prop:nnn {classes}{summary}{#1} @@ -226,31 +247,30 @@ \NewDocumentCommand{\bibdef}{O{main}m} { + %% V-less + \starray_get_prop:nnN {classes}{uniqueID} \l__ufrgscca_uniqueID_tmpb_tl + \str_case:nnF {#1} { {main} { - \starray_get_prop:nnN {classes}{bib seq} \l_tmpa_seq - \seq_put_right:Nn \l_tmpa_seq {#2} - \starray_set_prop:nnV {classes}{bib seq} \l_tmpa_seq + %% V-less + \seq_gput_right:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib _seq} {#2} } {basic}%{ \starray_get_prop:nnN {classes}{bib basic seq} \l_tmpa_seq } { - \starray_get_prop:nnN {classes}{bib basic seq} \l_tmpa_seq - \seq_put_right:Nn \l_tmpa_seq {#2} - \starray_set_prop:nnV {classes}{bib basic seq} \l_tmpa_seq + %% V-less + \seq_gput_right:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib basic _seq} {#2} } {compl}%{ \starray_get_prop:nnN {classes}{bib compl seq} \l_tmpa_seq } { - \starray_get_prop:nnN {classes}{bib compl seq} \l_tmpa_seq - \seq_put_right:Nn \l_tmpa_seq {#2} - \starray_set_prop:nnV {classes}{bib compl seq} \l_tmpa_seq + %% V-less + \seq_gput_right:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib compl _seq} {#2} } } { - \starray_get_prop:nnN {classes}{bib seq} \l_tmpa_seq - \seq_put_right:Nn \l_tmpa_seq {#2} - \starray_set_prop:nnV {classes}{bib seq} \l_tmpa_seq + %% V-less + \seq_put_right:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib _seq} {#2} } } @@ -382,38 +402,36 @@ \starray_get_prop:nnN {classes}{summary} \l__ufrgscca_tmp_summary_tl \use:e { & & & & & \exp_not:N \smaller \l__ufrgscca_tmp_summary_tl\\*} + + %% V-less + \starray_get_prop:nnN {classes}{uniqueID} \l_tmpa_tl + \tl_gset:Ne \l__ufrgscca_uniqueID_tmpb_tl {\l_tmpa_tl} %% bibliography I - \starray_get_prop:nnN {classes}{bib seq} \l__ufrgscca_tmp_bib_seq - \seq_gset_eq:NN \l__ufrgscca_tmp_bibB_seq \l__ufrgscca_tmp_bib_seq - \seq_if_empty:NF \l__ufrgscca_tmp_bibB_seq - { + \seq_if_empty:cF {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib _seq} + { & & & & \multicolumn{2}{J{11cm}}{\smaller\scshape Bibliografia~ Básica~ Essencial}\\* - \seq_map_inline:Nn \l__ufrgscca_tmp_bibB_seq + \seq_map_inline:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib _seq} { & & & & & \smaller\textopenbullet ~\ ~ ##1\\ } } %% bibliography II - \starray_get_prop:nnN {classes}{bib basic seq} \l__ufrgscca_tmp_bib_seq - \seq_gset_eq:NN \l__ufrgscca_tmp_bibB_seq \l__ufrgscca_tmp_bib_seq - \seq_if_empty:NF \l__ufrgscca_tmp_bibB_seq + \seq_if_empty:cF {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib basic _seq} { & & & & \multicolumn{2}{J{11cm}}{\smaller\scshape Bibliografia~ Básica}\\* - \seq_map_inline:Nn \l__ufrgscca_tmp_bibB_seq + \seq_map_inline:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib basic _seq} { & & & & & \smaller\textopenbullet ~\ ~ ##1\\ } } %% bibliography III - \starray_get_prop:nnN {classes}{bib compl seq} \l__ufrgscca_tmp_bib_seq - \seq_gset_eq:NN \l__ufrgscca_tmp_bibB_seq \l__ufrgscca_tmp_bib_seq - \seq_if_empty:NF \l__ufrgscca_tmp_bibB_seq + \seq_if_empty:cF {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib compl _seq} { & & & & \multicolumn{2}{J{11cm}}{\smaller\scshape Bibliografia~ Complementar}\\* - \seq_map_inline:Nn \l__ufrgscca_tmp_bibB_seq + \seq_map_inline:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpb_tl _bib compl _seq} { & & & & & \smaller\textopenbullet ~\ ~ ##1\\ } @@ -445,8 +463,10 @@ \tl_set:Nn \l__ufrgscca_tmp_color_tl {black} } \use:e { & \exp_not:N \multicolumn{2}{J{11cm}}{\exp_not:N \textcolor{\l__ufrgscca_tmp_color_tl}{\exp_not:N \textbf{\l__ufrgscca_tmp_name_tl} }}}\\\hline - \starray_get_prop:nnN {topics}{class lst} \l__ufrgscca_tmp_classlst_seq - \seq_map_inline:Nn \l__ufrgscca_tmp_classlst_seq + + %% V-less : to be replaced + \starray_get_prop:nnN {topics}{uniqueID} \l__ufrgscca_uniqueID_tmpa_tl + \seq_map_inline:cn {l__ufrgscca_curr_ \l__ufrgscca_uniqueID_tmpa_tl _seq} { \starray_set_iter_from_hash:nn {classes}{##1} \starray_get_prop:nnN {classes}{name} \l__ufrgscca_tmp_name_tl diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty index 7d7916ba0f0..1406013d027 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA forms commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-forms} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~ forms~commands} } \cs_if_exist:NF \PkgInfo diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty index 600d25e9203..ab15881f3f2 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA auxiliary lists commands} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca-lists} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29} , - version .code:n = {2.6} , + date .code:n = {2024/03/10} , + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands} } \cs_if_exist:NF \PkgInfo diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty index eb8b23dcb0b..75d1ba6f226 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA PPC commands} %%%%%%% @@ -41,8 +41,8 @@ { name .code:n = {ufrgscca-ppc} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands} } \cs_if_exist:NF \PkgInfo @@ -56,6 +56,17 @@ %%%%%%% +%%%%%%% +%%% +%%% V-less nightmare TO BE DONE! +%%% => convert all V referenced sequences into 'starray sub structures' +%%% less efficient, but 'portable' and V-safe. +%%% +%%% => Alternative approach: convert a _seq into a clist then store it into starray (argh! double damm) +%%% => or just use ..._clist instead of _seq (replacing all _seq that are stored in starrays by a _clist) +%%% +%%%%%%% + \keys_define:nn { ufrgscca / ppc} { @@ -103,7 +114,7 @@ self = , view = \c_true_bool , has_lst = \c_false_bool , - seqlst = , %this is going to be a sequence of 'ind' + seqID = , %this will have an unique hash (for a sequence) ind.struct = { self = , @@ -115,7 +126,7 @@ is_section = \c_false_bool , is_subsection = \c_false_bool , cnt = 0 , %auxiliar 'counter' (num of references) - seqlst = , %auxiliar list (references' list) + seqID = , %this will have an unique hash (for a sequence) labelref = , %this will contain the 'hyperref label' (at doc's end) to be used. ref.struct = { @@ -143,15 +154,20 @@ } +\tl_new:N \l__ufrgscca_uniqueID_tmpa_tl +\tl_new:N \l__ufrgscca_uniqueID_tmpb_tl \NewDocumentCommand{\declareindicator}{st+O{noref}mmm} { %#3: status #4:org #5:mark #6:short text \starray_set_iter_from_hash:nnF {indicator}{#4} { \starray_new_term:nn {indicator}{#4} - \seq_clear:N \l_tmpa_seq - \starray_set_prop:nnV {indicator}{seqlst}{\l_tmpa_seq} - %\seq_new:c {l__ufrgscca_ind_ #4 _seq} + \starray_get_unique_id:nNTF {indicator}\l__ufrgscca_uniqueID_tmpa_tl + {} + {\tl_set:Nn \l__ufrgscca_uniqueID_tmpa_tl {}} + \starray_set_prop:nnV {indicator}{seqID}\l__ufrgscca_uniqueID_tmpa_tl + \seq_new:c {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpa_tl _seq} + \starray_set_prop:nnn {indicator}{self}{#4} } \starray_new_term:nn {indicator.ind}{@#5} @@ -161,29 +177,26 @@ status = {#3} , self = {#5} , labelref = {@ufrgscca@ #4 @ #5} , %% to be issued when "printing the indicators' list" - %seqlst = {l__ufrgscca_ind_ #4 _ #5 _seq} , - %cnt = {l__ufrgscca_ind_ #4 _ #5 _cnt_int} , } - \seq_clear:N \l_tmpa_seq - \starray_set_prop:nnV {indicator.ind}{seqlst}{\l_tmpa_seq} - %\seq_new:c {l__ufrgscca_ind_ #4 _ #5 _seq} - %\int_new:c {l__ufrgscca_ind_ #4 _ #5 _cnt_int} + \starray_get_unique_id:nNTF {indicator.ind}\l__ufrgscca_uniqueID_tmpb_tl + {} + {\tl_set:Nn \l__ufrgscca_uniqueID_tmpb_tl {}} + \starray_set_prop:nnV {indicator.ind}{seqID}\l__ufrgscca_uniqueID_tmpb_tl + \seq_new:c {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpb_tl _seq} \IfBooleanTF{#1} { - \starray_get_prop:nnN {indicator}{seqlst}\l_tmpa_seq - \seq_put_right:Nn \l_tmpa_seq {@#5} - \starray_set_prop:nnV {indicator}{seqlst}\l_tmpa_seq - %\seq_put_right:cn {l__ufrgscca_ind_ #4 _seq}{@#5} + %% V-less : 'unique' seq + \seq_put_right:cn {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpa_tl _seq}{@#5} + \starray_set_prop:nnn {indicator.ind}{is_section}{\c_true_bool} \starray_set_prop:nnn {indicator}{has_lst}{\c_true_bool} } {} \IfBooleanTF{#2} { - \starray_get_prop:nnN {indicator}{seqlst}\l_tmpa_seq - \seq_put_right:Nn \l_tmpa_seq {@#5} - \starray_set_prop:nnV {indicator}{seqlst}\l_tmpa_seq - %\seq_put_right:cn {l__ufrgscca_ind_ #4 _seq}{@#5} + %% V-less : 'unique' seq + \seq_put_right:cn {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpa_tl _seq}{@#5} + \starray_set_prop:nnn {indicator.ind}{is_subsection}{\c_true_bool} \starray_set_prop:nnn {indicator}{has_lst}{\c_true_bool} } @@ -212,8 +225,9 @@ { \starray_set_iter_from_hash:nnT {indicator}{#3} { - \starray_get_prop:nnN {indicator}{seqlst}\l_tmpa_seq - \seq_map_inline:Nn \l_tmpa_seq + %% V-less : new seq + \starray_get_prop:nnN {indicator}{seqID}\l__ufrgscca_uniqueID_tmpa_tl + \seq_map_inline:cn {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpa_tl _seq} { \starray_set_iter_from_hash:nn {indicator.ind}{##1} \starray_term_syntax:n {indicator.ind} @@ -376,12 +390,14 @@ {\color{\l__ufrgscca_txtcolor_tl}\starray_get_prop:nn {indicator.ind}{short} \dotfill \normalsize\starray_get_prop:nn {indicator.ind}{status}} \newline \starray_get_prop:nn {indicator.ind}{long} \starray_get_prop:nn {indicator.ind}{extra} - \starray_get_prop:nnN {indicator.ind}{seqlst} \l_tmpa_seq - \seq_if_empty:NF \l_tmpa_seq + %% V-less : new seq + \starray_get_prop:nnN {indicator.ind}{seqID}\l__ufrgscca_uniqueID_tmpb_tl + \seq_if_empty:cF {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpb_tl _seq} { \newline \tl_set:Nn \l_tmpa_tl {} .\dotfill - \seq_map_inline:Nn \l_tmpa_seq + %% V-less : new seq + \seq_map_inline:cn {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpb_tl _seq} { \l_tmpa_tl \ref{##1} ~(\pageref{##1}) \tl_set:Nn \l_tmpa_tl {,~} @@ -466,13 +482,20 @@ { \starray_gset_prop:nnn {indicator.ind}{status}{#2} } - \starray_get_prop:nnN {indicator.ind}{seqlst} \l_tmpa_seq + %% V-less : replacing / new seq + \starray_get_unique_id:nNTF {indicator.ind}\l__ufrgscca_uniqueID_tmpb_tl + {} + {\tl_set:Nn \l__ufrgscca_uniqueID_tmpb_tl {}} + % {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpb_tl _seq} + \starray_get_prop:nnN {indicator.ind}{cnt} \l_tmpb_tl \int_set:Nn \l_tmpa_int {\l_tmpb_tl + 1} \starray_set_prop:nnV {indicator.ind}{cnt} \l_tmpa_int \tl_set:Ne \l__ufrgscca_tmp_indref_tl {@indlabel@ #3 @ #4 - \int_use:N \l_tmpa_int } - \seq_put_right:Ne \l_tmpa_seq{\l__ufrgscca_tmp_indref_tl} - \starray_set_prop:nnV {indicator.ind}{seqlst} \l_tmpa_seq + + \seq_put_right:ce {l__ufrgscca_ind_ \l__ufrgscca_uniqueID_tmpb_tl _seq} {\l__ufrgscca_tmp_indref_tl} + + \label{\l__ufrgscca_tmp_indref_tl} \starray_term_syntax:n {indicator} \bool_if:nT {\starray_parsed_get_prop:n {view}} diff --git a/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls b/Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls index 5a5af3cbbea..eaa190443ca 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.6} {2024/02/29} +%% This is version {2.7} {2024/03/10} %% %% 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} - {2024/02/29} - {2.6} + {2024/03/10} + {2.7} {UFRGS/CCA class} @@ -42,8 +42,8 @@ { name .code:n = {ufrgscca} , prefix .code:n = {ufrgscca} , - date .code:n = {2024/02/29}, - version .code:n = {2.6} , + date .code:n = {2024/03/10}, + version .code:n = {2.7} , description .code:n = {UFRGS/CCA~a~report~based~class~bundle} } \cs_if_exist:NF \PkgInfo @@ -69,7 +69,7 @@ %%%%%%%%%%%%%%%%%%%%%% %%% %%% TODO: to be decided, where to leave that !! -%%% general purpose _propeties !! +%%% general purpose _properties !! %%% %%%%%%%%%%%%%%%%%%%%%% @@ -140,6 +140,12 @@ \cs_new:Npn \UseConst #1 { \prop_item:Ne \l__ufrgscca_const_prop {#1} } +\NewDocumentCommand{\GetConst}{mm} + { + \prop_get:NnNTF \l__ufrgscca_const_prop {#1} \l_tmpa_tl + {\tl_gset:Ne #2 \l_tmpa_tl} + {\tl_gset:Nn #2 {}} + } \bool_new:N \l__ufrgscca_repeatfields_bool \bool_new:N \l__ufrgscca_timesroman_bool |