summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-03-11 20:00:07 +0000
committerKarl Berry <karl@freefriends.org>2024-03-11 20:00:07 +0000
commit52d7a2f426653fc153c3935a8626d7f108bceb46 (patch)
treee14fc1e4d0811ad38bafce970245da5c7eefce7a
parent9b283ffdd707fca4cdb630bbdda4e2a0a8284f21 (diff)
ufrgscca (11mar24)
git-svn-id: svn://tug.org/texlive/trunk@70600 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/README.md8
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex2
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-forms.tex83
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-en.tex2
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex2
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdfbin593730 -> 593583 bytes
-rw-r--r--Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.tex2
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-abnt.sty10
-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.sty88
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-core.sty38
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-cover.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-curr.sty110
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-forms.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-lists.sty10
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca-ppc.sty87
-rw-r--r--Master/texmf-dist/tex/latex/ufrgscca/ufrgscca.cls18
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
index b5c3f0418bd..91e81cb1406 100644
--- a/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf
+++ b/Master/texmf-dist/doc/latex/ufrgscca/ufrgscca.pdf
Binary files differ
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