summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-03-23 03:01:23 +0000
committerNorbert Preining <norbert@preining.info>2024-03-23 03:01:23 +0000
commitf3da2d2d43f8edbd18674b2ca6fa6b1a2012f7d0 (patch)
treea57993cc4795ae5ebfde93c042a0230c6911d7a7 /macros
parentafa6b76072e6106ffd418c05eff7da555eebb605 (diff)
CTAN sync 202403230301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/biblatex/doc/examples/01-introduction.run.xml93
-rw-r--r--macros/latex/contrib/hvextern/Changes2
-rw-r--r--macros/latex/contrib/hvextern/doc/hvextern.pdfbin1481699 -> 1492062 bytes
-rw-r--r--macros/latex/contrib/hvextern/doc/hvextern.tex6
-rw-r--r--macros/latex/contrib/hvextern/latex/hvextern.sty12
-rw-r--r--macros/latex/contrib/starray/README.md9
-rw-r--r--macros/latex/contrib/starray/doc/starray.pdfbin284852 -> 285149 bytes
-rw-r--r--macros/latex/contrib/starray/doc/starray.tex2
-rw-r--r--macros/latex/contrib/starray/latex/starray.sty81
-rw-r--r--macros/latex/contrib/ufrgscca/README.md9
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.pdfbin593583 -> 593642 bytes
-rw-r--r--macros/latex/contrib/ufrgscca/doc/ufrgscca.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty12
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty101
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty40
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty14
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty16
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty12
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty12
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty12
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex2
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca.cls16
-rw-r--r--macros/luatex/latex/bezierplot/README4
-rw-r--r--macros/luatex/latex/bezierplot/bezierplot-doc.pdfbin251276 -> 266461 bytes
-rwxr-xr-xmacros/luatex/latex/bezierplot/bezierplot.lua176
-rw-r--r--macros/luatex/latex/bezierplot/bezierplot.sty4
31 files changed, 228 insertions, 419 deletions
diff --git a/macros/latex/contrib/biblatex/doc/examples/01-introduction.run.xml b/macros/latex/contrib/biblatex/doc/examples/01-introduction.run.xml
deleted file mode 100644
index 4b744a395c..0000000000
--- a/macros/latex/contrib/biblatex/doc/examples/01-introduction.run.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<!-- logreq request file -->
-<!-- logreq version 1.0 / dtd version 1.0 -->
-<!-- Do not edit this file! -->
-<!DOCTYPE requests [
- <!ELEMENT requests (internal | external)*>
- <!ELEMENT internal (generic, (provides | requires)*)>
- <!ELEMENT external (generic, cmdline?, input?, output?, (provides | requires)*)>
- <!ELEMENT cmdline (binary, (option | infile | outfile)*)>
- <!ELEMENT input (file)+>
- <!ELEMENT output (file)+>
- <!ELEMENT provides (file)+>
- <!ELEMENT requires (file)+>
- <!ELEMENT generic (#PCDATA)>
- <!ELEMENT binary (#PCDATA)>
- <!ELEMENT option (#PCDATA)>
- <!ELEMENT infile (#PCDATA)>
- <!ELEMENT outfile (#PCDATA)>
- <!ELEMENT file (#PCDATA)>
- <!ATTLIST requests
- version CDATA #REQUIRED
- >
- <!ATTLIST internal
- package CDATA #REQUIRED
- priority (9) #REQUIRED
- active (0 | 1) #REQUIRED
- >
- <!ATTLIST external
- package CDATA #REQUIRED
- priority (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8) #REQUIRED
- active (0 | 1) #REQUIRED
- >
- <!ATTLIST provides
- type (static | dynamic | editable) #REQUIRED
- >
- <!ATTLIST requires
- type (static | dynamic | editable) #REQUIRED
- >
- <!ATTLIST file
- type CDATA #IMPLIED
- >
-]>
-<requests version="1.0">
- <internal package="biblatex" priority="9" active="1">
- <generic>latex</generic>
- <provides type="dynamic">
- <file>01-introduction.aux</file>
- <file>01-introduction-blx.bib</file>
- </provides>
- <requires type="dynamic">
- <file>01-introduction.bbl</file>
- </requires>
- <requires type="static">
- <file>blx-dm.def</file>
- <file>blx-compat.def</file>
- <file>blx-bibtex.def</file>
- <file>biblatex.def</file>
- <file>standard.bbx</file>
- <file>authoryear.bbx</file>
- <file>authoryear.cbx</file>
- <file>biblatex.cfg</file>
- <file>english.lbx</file>
- <file>american.lbx</file>
- </requires>
- </internal>
- <external package="biblatex" priority="5" active="1">
- <generic>bibtex</generic>
- <cmdline>
- <binary>bibtex</binary>
- <option>-min-crossrefs 2</option>
- <infile>01-introduction</infile>
- </cmdline>
- <input>
- <file>01-introduction.aux</file>
- </input>
- <output>
- <file>01-introduction.bbl</file>
- </output>
- <provides type="dynamic">
- <file>01-introduction.bbl</file>
- </provides>
- <requires type="dynamic">
- <file>01-introduction.aux</file>
- <file>01-introduction-blx.bib</file>
- </requires>
- <requires type="editable">
- <file>biblatex-examples.bib</file>
- </requires>
- <requires type="static">
- <file>biblatex.bst</file>
- </requires>
- </external>
-</requests>
diff --git a/macros/latex/contrib/hvextern/Changes b/macros/latex/contrib/hvextern/Changes
index 2d7f41812e..430476f263 100644
--- a/macros/latex/contrib/hvextern/Changes
+++ b/macros/latex/contrib/hvextern/Changes
@@ -1,5 +1,7 @@
hvextern.sty ----------------
+v 0.40 2024-03-22 - added option mposttex for metapost program which
+ can be tex (default) | latex
v 0.39 2024-01-30 - fixed bug with check for force option
v 0.38 2023-12-08 - change internal macroname \Write@Ex to \hv@Write@EX
v 0.37b 2023-11-22 - fix typo in documentation
diff --git a/macros/latex/contrib/hvextern/doc/hvextern.pdf b/macros/latex/contrib/hvextern/doc/hvextern.pdf
index 793507b058..cc8d172784 100644
--- a/macros/latex/contrib/hvextern/doc/hvextern.pdf
+++ b/macros/latex/contrib/hvextern/doc/hvextern.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvextern/doc/hvextern.tex b/macros/latex/contrib/hvextern/doc/hvextern.tex
index 7172969db8..77181285d0 100644
--- a/macros/latex/contrib/hvextern/doc/hvextern.tex
+++ b/macros/latex/contrib/hvextern/doc/hvextern.tex
@@ -1,4 +1,4 @@
-%% $Id: hvextern.tex 853 2024-01-30 20:34:00Z herbert $
+%% $Id: hvextern.tex 883 2024-03-22 19:29:21Z herbert $
\DocumentMetadata{}% for lualatex and pstricks
\documentclass[english,paper=a4,twoside,usegeometry]{scrartcl}
\usepackage{babel}
@@ -1657,7 +1657,9 @@ endfig;
end;
\end{externalDocument}
-
+For \MP\ exists an optional argument \Lkeyword{mposttex} which is preset
+to \Lkeyval{tex}. If you want to run the \MP\ part with \LaTeX\ instead of
+\TeX\ then use \texttt{mposttex=latex}.
\subsection{plain\TeX\ example}
diff --git a/macros/latex/contrib/hvextern/latex/hvextern.sty b/macros/latex/contrib/hvextern/latex/hvextern.sty
index bfe8f75e8f..16e127376f 100644
--- a/macros/latex/contrib/hvextern/latex/hvextern.sty
+++ b/macros/latex/contrib/hvextern/latex/hvextern.sty
@@ -1,4 +1,4 @@
-%% $Id: hvextern.sty 853 2024-01-30 20:34:00Z herbert $
+%% $Id: hvextern.sty 882 2024-03-22 19:23:40Z herbert $
%% This is file `hvextern.sty',
%%
%% Copyright (C) 2016-24
@@ -12,8 +12,8 @@
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-\def\hvexternFileversion{0.39}
-\ProvidesFile{hvextern}[2024/01/30 v\hvexternFileversion: package for running external documents (HV)]
+\def\hvexternFileversion{0.40}
+\ProvidesFile{hvextern}[2024/03/22 v\hvexternFileversion: package for running external documents (HV)]
\newif\ifhv@extern@checkCode
\hv@extern@checkCodefalse
@@ -148,6 +148,7 @@
\define@key{hv}{belowpreambleskip}[2pt]{\setlength\hv@extern@belowpreambleskip{#1}}
\define@key{hv}{belowbodyskip}[\smallskipamount]{\setlength\hv@extern@belowbodyskip{#1}}
\define@key{hv}{belowskip}[\medskipamount]{\setlength\hv@extern@belowskip{#1}}
+\define@key{hv}{mposttex}[tex]{\def\hv@extern@mposttex{#1 }}
\def\hvExternSetKeys#1{\setkeys{hv}{#1}}
@@ -175,7 +176,7 @@
ext=tex,% file extension
float=false,% nicht als Gleitumgebung
floatsetting=!htb,% placement
- force=false,% Compiler, auch wenn PDF existiert?
+ force=true,% Compiler, auch wenn PDF existiert?
frame=false,% keinen Rahmen um Abbildung
framesep=\the\fboxsep,%
grfOptions={},% Optionen der einzubindenden Grafik
@@ -206,6 +207,7 @@
vshift=\z@,% raise object (pdf) with \raisebox{}{}
xindex=false,% xindex laufen lassen?
xindexOptions={},% options for xindex
+ mposttex=tex,% mpost program tex or latex
}%
}
@@ -345,7 +347,7 @@
\def\hv@extern@runMP#1#2#3#4{% path compiler file extension
\hv@ex@typeout{running #1#2 #3#4}%
- \ShellEscape{#1#2\space -tex=tex\space #3#4}%
+ \ShellEscape{#1#2\space -tex=\hv@extern@mposttex\space #3#4}%
\hv@ex@typeout{running #1tex #3}%
\ShellEscape{#1tex\space "\string\input\space epsf\string\relax\string\nopagenumbers\string\epsfbox{#3.1}\string\bye"}%
\hv@ex@typeout{running #1dvips #3}%
diff --git a/macros/latex/contrib/starray/README.md b/macros/latex/contrib/starray/README.md
index 7522d5faee..c36549c601 100644
--- a/macros/latex/contrib/starray/README.md
+++ b/macros/latex/contrib/starray/README.md
@@ -9,8 +9,8 @@ For more details, see the documentation,
--------------
## Requirements
-* none besides a fairly recent LaTeX distribution as recent as 2022/06/01
-(with the new in kernel *\ProcessKeyOptions* and *\NewDocumentCommand*)
+* none besides a fairly recent LaTeX distribution as recent as 2023/11/01
+(with the new in kernel *\ProcessKeyOptions* and *\NewDocumentCommand* and *\prop_new_linked:*)
## Installation
The stable version is available at [CTAN](https://ctan.org/pkg/starray).
@@ -72,7 +72,10 @@ The Current Maintainer of this work is Alceu Frigeri
-------------
## Changelog
-* Version 1.7 (this)
+* Version 1.8 (this)
+ - code speedup thanks to 'linked' property lists. Code now relies on a more recent l3kernel.
+
+* Version 1.7
- code cleanup. Still related to issues: #6, https://github.com/latex3/latex3/issues/1460 and https://github.com/latex3/latex3/issues/1466
- documented \starray_get_uniqueID (helper function, see documentation)
diff --git a/macros/latex/contrib/starray/doc/starray.pdf b/macros/latex/contrib/starray/doc/starray.pdf
index 4d8645bdab..8302c0d0d9 100644
--- a/macros/latex/contrib/starray/doc/starray.pdf
+++ b/macros/latex/contrib/starray/doc/starray.pdf
Binary files differ
diff --git a/macros/latex/contrib/starray/doc/starray.tex b/macros/latex/contrib/starray/doc/starray.tex
index d6ef94da90..171cd37038 100644
--- a/macros/latex/contrib/starray/doc/starray.tex
+++ b/macros/latex/contrib/starray/doc/starray.tex
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.7} {2024/03/17}
+%% This is version {1.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/starray
diff --git a/macros/latex/contrib/starray/latex/starray.sty b/macros/latex/contrib/starray/latex/starray.sty
index 72cd150410..43b2f39851 100644
--- a/macros/latex/contrib/starray/latex/starray.sty
+++ b/macros/latex/contrib/starray/latex/starray.sty
@@ -12,22 +12,22 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.7} {2024/03/17}
+%% This is version {1.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/starray
%%
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
-
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{starray}
- {2024/03/17}
- {1.7}
+ {2024/03/22}
+ {1.8}
{A structured array/hash of properties}
+
%%%%%%%
%%%
%%% Just an attempt of having my packages info in a regular way
@@ -38,8 +38,8 @@
{
name .code:n = {starray} ,
prefix .code:n = {starray} ,
- date .code:n = {2024/03/17},
- version .code:n = {1.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {1.8} ,
description .code:n = {A~structured~array/hash~of~properties}
}
\cs_if_exist:NF \PkgInfo
@@ -167,6 +167,14 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
+\msg_new:nnnn {starray} {strict / Expl}
+ {
+ Expl~ version~ too~ old.~ Update~ needed!
+ }
+ {
+ Expl~ version~ too~ old.~ Update~ needed!
+ }
+
\msg_new:nnnn {starray} {strict / (re)define}
{
(ID:#1)~'#2'~already~defined!
@@ -291,6 +299,7 @@
+\IfExplAtLeastTF{2024-03-14}{}{\msg_warning:nn {starray} {strict / Expl} }
\cs_new_protected:Npn \__starray_msg:nnnnn #1#2#3#4#5
@@ -417,32 +426,28 @@
%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%
-%
-%
-\prg_new_conditional:Npnn \__starray_if_free:n #1 {p, T, F, TF}
- {
- \prop_if_exist:cTF {#1}
- { \prg_return_false: }
- { \prg_return_true: }
- }
-\prg_generate_conditional_variant:Nnn \__starray_if_free:n {e} {p, T, F, TF}
+\prg_new_eq_conditional:NNn \__starray_if_exist:n \prop_if_exist:c {p, T, F, TF}
+
+\prg_generate_conditional_variant:Nnn \__starray_if_exist:n {e} {p, T, F, TF}
\prg_new_conditional:Npnn \starray_if_exist:n #1 {p, T, F, TF}
{
- \__starray_if_free:nTF {\l__starray_prefix_tl #1 _def_prop}
- { \prg_return_false: }
+ \__starray_if_exist:nTF {\l__starray_prefix_tl #1 _def_prop}
{ \prg_return_true: }
+ { \prg_return_false: }
}
-\prg_new_conditional:Npnn \__starray_if_valid:n #1 {p, T, F, TF}
- {
- \bool_lazy_and:nnTF {\prop_if_exist_p:c {#1}} {\prop_item:cn {#1} {is_starray}}
- { \prg_return_true: }
- { \prg_return_false: }
- }
+%\prg_new_conditional:Npnn \__starray_if_valid:n #1 {p, T, F, TF}
+% {
+% \bool_lazy_and:nnTF {\prop_if_exist_p:c {#1}} {\prop_item:cn {#1} {is_starray}}
+% { \prg_return_true: }
+% { \prg_return_false: }
+% }
+
+\prg_new_eq_conditional:NNn \__starray_if_valid:n \prop_if_exist:c {p, T, F, TF}
\prg_generate_conditional_variant:Nnn \__starray_if_valid:n {e} {p, T, F, TF}
@@ -485,19 +490,9 @@
is_starray = \c_true_bool ,
}
- \prop_gput:cne
- { \l__starray_prefix_tl #2 _base_prop }
- { cnt }
- { \use:c { \l__starray_prefix_tl #2 _base_cnt_int } }
-
- \prop_gput:cne
- { \l__starray_prefix_tl #2 _base_prop }
- { iter }
- { \use:c {\l__starray_prefix_tl #2 _base_iter_int} }
-
- \prop_new:c {\l__starray_prefix_tl #2 _base_idxhash_prop}
+ \prop_new_linked:c {\l__starray_prefix_tl #2 _base_idxhash_prop}
- \prop_new:c {\l__starray_prefix_tl #2 _base_iterhash_prop}
+ \prop_new_linked:c {\l__starray_prefix_tl #2 _base_iterhash_prop}
}
\cs_generate_variant:Nn \__starray_base_new:nn { ee }
@@ -541,13 +536,13 @@
% needs protection.
\cs_new_protected:Npn \starray_new:n #1
{
- \__starray_if_free:nTF {\l__starray_prefix_tl #1 _def_prop}
+ \__starray_if_exist:nTF {\l__starray_prefix_tl #1 _def_prop}
{
- \__starray_new:e {#1 }
- \__starray_base_new:ee {#1}{#1} % TODO: might be incomplete !!!
+ \msg_warning:nnnn {starray} {strict / (re)define} {new:1} {#1}
}
{
- \msg_warning:nnnn {starray} {strict / (re)define} {new:1} {#1}
+ \__starray_new:e {#1 }
+ \__starray_base_new:ee {#1}{#1} % TODO: might be incomplete !!!
}
}
@@ -555,13 +550,13 @@
% needs protection.
\prg_new_protected_conditional:Npnn \starray_new:n #1 {T, F, TF}
{
- \__starray_if_free:nTF {\l__starray_prefix_tl #1 _def_prop}
+ \__starray_if_exist:nTF {\l__starray_prefix_tl #1 _def_prop}
+ { \prg_return_false: }
{
\__starray_new:e {#1 }
\__starray_base_new:ee {#1}{#1} % TODO: might be incomplete !!!
\prg_return_true:
}
- { \prg_return_false: }
}
%%%%%%%%%%%%%%%
@@ -915,7 +910,7 @@
{ \int_use:c {\l__starray_prefix_tl #1 _base_cnt_int} }
}
- \prop_new:c
+ \prop_new_linked:c
{ \l__starray_prefix_tl #1 _ \l__starray_tmpa_tl _term_prop }
\prop_get:cnN {\l__starray_prefix_tl #1 _base_prop} {def_ref} \l_tmpb_tl
diff --git a/macros/latex/contrib/ufrgscca/README.md b/macros/latex/contrib/ufrgscca/README.md
index 7de453521e..7c4834e2e7 100644
--- a/macros/latex/contrib/ufrgscca/README.md
+++ b/macros/latex/contrib/ufrgscca/README.md
@@ -13,8 +13,8 @@ For more details, see the documentation,
--------------
## Requirements
-* a fairly recent LaTeX distribution as recent as 2022/06/01
-(with the new in kernel *\ProcessKeyOptions* and *\NewDocumentCommand*)
+* a fairly recent LaTeX distribution as recent as 2023/11/01
+(with the new in kernel *\ProcessKeyOptions* and *\NewDocumentCommand* and *\prop_new_linked:*)
## Installation
The stable version is available at [CTAN](https://ctan.org/pkg/ufrgscca).
@@ -107,7 +107,10 @@ The Current Maintainer of this work is Alceu Frigeri
## Changelog
-* Version 2.7 (this)
+* Version 2.8 (this)
+ - code speedup thanks to 'linked' property lists. Code now relies on a more recent l3kernel.
+
+* Version 2.7
- 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
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
index 91e81cb140..b0f6dcc88a 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf
Binary files differ
diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
index 9905684720..c230090a62 100644
--- a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
+++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
index fcb7856e39..7be544b628 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-abnt}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA ABNT layout}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-abnt} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~ abnt~layout}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
index 3b3fca1df7..281a093f06 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
index a3a71fe6bb..5eea80143b 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
index c258ab8b34..f487134fef 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-coord}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA coord commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-coord} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~ coordination~ report~ commands}
}
\cs_if_exist:NF \PkgInfo
@@ -58,16 +58,6 @@
-%%%%%%%
-%%%
-%%% 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}
@@ -123,7 +113,6 @@
\RequirePackage{ufrgscca-core}
\RequirePackage{ufrgscca-forms}
-%\RequirePackage{pgfcalendar}
\starray_new:n {prof}
@@ -788,28 +777,11 @@
}
-\prop_new:N \l__ufrgscca_check_prop
-\prop_new:N \l__ufrgscca_checkA_prop
-\prop_new:N \l__ufrgscca_checkB_prop
-\prop_new:N \l__ufrgscca_checkref_prop
-
\tl_new:N \l__ufrgscca_chkID_tl
\tl_new:N \l__ufrgscca_chkIDa_tl
\tl_new:N \l__ufrgscca_chkIDb_tl
\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}{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}
@@ -824,64 +796,47 @@
\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
- %% 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
+ \prop_get:cnNT {l__ufrgscca_ \l__ufrgscca_chkIDb_tl _chkref_prop} {##1} \l__ufrgscca_checkref_tl
{
- \prop_get:NeN \l__ufrgscca_checkB_prop {\l__ufrgscca_checkref_tl} \l__ufrgscca_checkB_tl
- \prop_gput:Nee \l__ufrgscca_check_prop {\l__ufrgscca_checkref_tl} {\l__ufrgscca_checkB_tl}
+ \prop_get:ceN {l__ufrgscca_ \l__ufrgscca_chkIDb_tl _chkmarked_prop} {\l__ufrgscca_checkref_tl} \l__ufrgscca_checkB_tl
+ \prop_gput:cee {l__ufrgscca_ \l__ufrgscca_chkIDa_tl _checklist_prop} {\l__ufrgscca_checkref_tl} {\l__ufrgscca_checkB_tl}
}
}
-% \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
\tl_new:N \l__ufrgscca_tmpx_tl
\tl_new:N \l__ufrgscca_tmpy_tl
\tl_new:N \l__ufrgscca_table_tl
\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
- %% 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:cn {l__ufrgscca_ \l__ufrgscca_chkIDa_tl _checklist_prop}
+ { \prop_put:cnn {l__ufrgscca_ \l__ufrgscca_chkIDb_tl _chkunmarked_prop} {##1}{##2} }
- \prop_map_inline:Nn \l__ufrgscca_check_prop
- { \prop_gput:Nnn \l__ufrgscca_checkA_prop {##1}{##2} }
-
- \tl_gclear:N \l__ufrgscca_table_tl
- \clist_map_inline:nn {#1}
- {
- \tl_gclear:N \l_tmpa_tl
- \clist_map_inline:nn {#2}
- {
- \tl_gset:Nn \l__ufrgscca_tmpx_tl {##1####1}
- \prop_get:NeNTF \l__ufrgscca_checkA_prop {\l__ufrgscca_tmpx_tl} \l__ufrgscca_tmpy_tl
- {\tl_gput_right:Ne \l__ufrgscca_table_tl {\l_tmpa_tl~ \l__ufrgscca_tmpy_tl}}
- {\tl_gput_right:Ne \l__ufrgscca_table_tl {\l_tmpa_tl~ }}
- \tl_gset:Nn \l_tmpa_tl {~&~}
- }
- \tl_put_right:Nn \l__ufrgscca_table_tl {\\*}
+ \tl_gclear:N \l__ufrgscca_table_tl
+ \clist_map_inline:nn {#1}
+ {
+ \tl_gclear:N \l_tmpa_tl
+ \clist_map_inline:nn {#2}
+ {
+ \tl_gset:Nn \l__ufrgscca_tmpx_tl {##1####1}
+ \prop_get:ceNTF {l__ufrgscca_ \l__ufrgscca_chkIDb_tl _chkunmarked_prop} {\l__ufrgscca_tmpx_tl} \l__ufrgscca_tmpy_tl
+ {\tl_gput_right:Ne \l__ufrgscca_table_tl {\l_tmpa_tl~ \l__ufrgscca_tmpy_tl}}
+ {\tl_gput_right:Ne \l__ufrgscca_table_tl {\l_tmpa_tl~ }}
+ \tl_gset:Nn \l_tmpa_tl {~&~}
+ }
+ \tl_gput_right:Nn \l__ufrgscca_table_tl {\\*}
+ }
}
\l__ufrgscca_table_tl
}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
index f250c0d27c..17235f5ed3 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-core}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA core commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-core} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~core~commands/data}
}
\cs_if_exist:NF \PkgInfo
@@ -63,13 +63,6 @@
% starray based student commands%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%\def\tc@IDrule{30mm}%
-%%%%\def\tc@emailrule{40mm}%
-%%%%\def\tc@namerule{50mm}%
-%%%%\def\tc@titlerule{40mm}%
-%%%%\def\tc@phonerule{20mm}%
-%%%%\def\tc@agreerule{25mm}%
-%%%%\def\tc@daterule{15mm}%
\dim_new:N \l__ufrgscca_ID_rule_dim
\dim_new:N \l__ufrgscca_email_rule_dim
@@ -245,7 +238,7 @@
}
-\prop_new:N \l__ufrgscca_forms_prop
+\prop_new_linked:N \l__ufrgscca_forms_prop
\starray_new:n {activity}
\starray_def_from_keyval:nn {activity}
{
@@ -286,13 +279,9 @@
{}
{}
\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
+ \prop_new_linked:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _chkmarked_prop}
+ \prop_new_linked:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _chkunmarked_prop}
+ \prop_new_linked:c {l__ufrgscca_ \l__ufrgscca_tmpID_tl _chkref_prop}
}
@@ -401,7 +390,6 @@
{}
\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}{
@@ -650,14 +638,6 @@
}%
-%%%\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{}}{%%
\starray_new_term:nn {student.tutor}{}
\__ufrgscca_set_prof:nnnnn {tutor}{#1}{#2}{#3}{#4}
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
index b88c90d7b5..9193806500 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
index e4f32e9687..8ab5c32e66 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-cover}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA cover commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-cover} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~ cover~pages}
}
\cs_if_exist:NF \PkgInfo
@@ -83,7 +83,7 @@
}%%
-\prop_new:N \l__ufrgscca_coverpages_prop
+\prop_new_linked:N \l__ufrgscca_coverpages_prop
\NewDocumentCommand{\SetCoverFields}{mm+m}{
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
index 892d0f0e51..1ae0a418a3 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-curr}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA curricula commands}
%%%%%%%
@@ -41,8 +41,8 @@
{
name .code:n = {ufrgscca-curr} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~ curricula~ commands}
}
\cs_if_exist:NF \PkgInfo
@@ -361,11 +361,13 @@
\starray_iterate_over:nn {curricula.sem.class.prereqset}
{
\seq_gclear:N \l__ufrgscca_tmp_prereq_seq
- \starray_iterate_over:nn {curricula.sem.class.prereqset.prereq}
+ \starray_iterate_over:nnTF {curricula.sem.class.prereqset.prereq}
{
\starray_get_prop:nnN {curricula.sem.class.prereqset.prereq}{name} \l_tmpa_tl
\seq_gput_right:Ne \l__ufrgscca_tmp_prereq_seq {\l_tmpa_tl}
}
+ {}
+ {}
\seq_if_empty:NF \l__ufrgscca_tmp_prereq_seq
{
\bool_if:NTF \l__ufrgscca_tmp_second_bool
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
index 1406013d02..c22bee9a44 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-forms}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA forms commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-forms} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~ forms~commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
index d4cb25ac4d..141f97a4fe 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
index ab15881f3f..c6c5ff88a7 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-lists}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA auxiliary lists commands}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca-lists} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10} ,
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22} ,
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~Auxiliary~ lists~ commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
index 75d1ba6f22..3b46f85eaa 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplPackage
{ufrgscca-ppc}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA PPC commands}
%%%%%%%
@@ -41,8 +41,8 @@
{
name .code:n = {ufrgscca-ppc} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~ auxiliary~ PPC-related~ (indicators)~ commands}
}
\cs_if_exist:NF \PkgInfo
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
index 040dbb0fa0..66bf0efaff 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
index c0f1de91cc..50bc04014e 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
index eaa190443c..245ac20f40 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.7} {2024/03/10}
+%% This is version {2.8} {2024/03/22}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -22,13 +22,13 @@
%% EE stands for "Engineering School"
%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym)
%%%==============================================================================
-\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplClass
{ufrgscca}
- {2024/03/10}
- {2.7}
+ {2024/03/22}
+ {2.8}
{UFRGS/CCA class}
@@ -42,8 +42,8 @@
{
name .code:n = {ufrgscca} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2024/03/10},
- version .code:n = {2.7} ,
+ date .code:n = {2024/03/22},
+ version .code:n = {2.8} ,
description .code:n = {UFRGS/CCA~a~report~based~class~bundle}
}
\cs_if_exist:NF \PkgInfo
@@ -73,7 +73,7 @@
%%%
%%%%%%%%%%%%%%%%%%%%%%
-\prop_new:N \l__ufrgscca_terms_prop
+\prop_new_linked:N \l__ufrgscca_terms_prop
\NewDocumentCommand{\SetHeadings}{m}
{
@@ -118,7 +118,7 @@
{ \prop_item:Nn \l__ufrgscca_terms_prop {#1} }
-\prop_new:N \l__ufrgscca_const_prop
+\prop_new_linked:N \l__ufrgscca_const_prop
\NewDocumentCommand{\SetConsts}{m}
{
diff --git a/macros/luatex/latex/bezierplot/README b/macros/luatex/latex/bezierplot/README
index 493bfe5c65..c472443d7a 100644
--- a/macros/luatex/latex/bezierplot/README
+++ b/macros/luatex/latex/bezierplot/README
@@ -8,13 +8,13 @@ points such as extreme points and inflection points and reduces the
number of used points.
VERSION:
-1.4 2019-06-18
+1.5 2024-03-21
LICENSE:
The package and the program are distributed on CTAN under the terms of
the LaTeX Project Public License (LPPL) version 1.3c.
-Copyright (c) 2018 Linus Romer
+Copyright (c) 2018-2024 Linus Romer
Please write to
linus dot romer at gmx dot ch
diff --git a/macros/luatex/latex/bezierplot/bezierplot-doc.pdf b/macros/luatex/latex/bezierplot/bezierplot-doc.pdf
index c93fd5f102..7ebb1dbcdd 100644
--- a/macros/luatex/latex/bezierplot/bezierplot-doc.pdf
+++ b/macros/luatex/latex/bezierplot/bezierplot-doc.pdf
Binary files differ
diff --git a/macros/luatex/latex/bezierplot/bezierplot.lua b/macros/luatex/latex/bezierplot/bezierplot.lua
index 382da2d74e..d023923d45 100755
--- a/macros/luatex/latex/bezierplot/bezierplot.lua
+++ b/macros/luatex/latex/bezierplot/bezierplot.lua
@@ -1,6 +1,6 @@
#!/usr/bin/env lua
-- Linus Romer, published 2018 under LPPL Version 1.3c
--- version 1.4 2019-06-18
+-- version 1.5 2024-03-31
abs = math.abs
acos = math.acos
asin = math.asin
@@ -277,99 +277,25 @@ end
-- f(x)=a*x^3+b*x+c
local function parameters_cubic(xp,yp,xq,yq,xr,yr,xs,ys)
- local a = (((xp^2 * xq) * yr) - ((xp^2 * xq) * ys)
- - ((xp^2 * xr) * yq) + ((xp^2 * xr) * ys) + ((xp^2 * xs) * yq)
- - ((xp^2 * xs) * yr) - ((xp * xq^2) * yr) + ((xp * xq^2) * ys)
- + ((xp * xr^2) * yq) - ((xp * xr^2) * ys) - ((xp * xs^2) * yq)
- + ((xp * xs^2) * yr) + ((xq^2 * xr) * yp) - ((xq^2 * xr) * ys)
- - ((xq^2 * xs) * yp) + ((xq^2 * xs) * yr) - ((xq * xr^2) * yp)
- + ((xq * xr^2) * ys) + ((xq * xs^2) * yp) - ((xq * xs^2) * yr)
- + ((xr^2 * xs) * yp) - ((xr^2 * xs) * yq) - ((xr * xs^2) * yp)
- + ((xr * xs^2) * yq)) /
- (((xp^3 * xq^2) * xr) - ((xp^3 * xq^2) * xs)
- - ((xp^3 * xq) * xr^2) + ((xp^3 * xq) * xs^2)
- + ((xp^3 * xr^2) * xs) - ((xp^3 * xr) * xs^2)
- - ((xp^2 * xq^3) * xr) + ((xp^2 * xq^3) * xs)
- + ((xp^2 * xq) * xr^3) - ((xp^2 * xq) * xs^3)
- - ((xp^2 * xr^3) * xs) + ((xp^2 * xr) * xs^3)
- + ((xp * xq^3) * xr^2) - ((xp * xq^3) * xs^2)
- - ((xp * xq^2) * xr^3) + ((xp * xq^2) * xs^3)
- + ((xp * xr^3) * xs^2) - ((xp * xr^2) * xs^3)
- - ((xq^3 * xr^2) * xs) + ((xq^3 * xr) * xs^2)
- + ((xq^2 * xr^3) * xs) - ((xq^2 * xr) * xs^3)
- - ((xq * xr^3) * xs^2) + ((xq * xr^2) * xs^3))
- local b = ((((-xp^3) * xq) * yr) + ((xp^3 * xq) * ys)
- + ((xp^3 * xr) * yq) - ((xp^3 * xr) * ys) - ((xp^3 * xs) * yq)
- + ((xp^3 * xs) * yr) + ((xp * xq^3) * yr) - ((xp * xq^3) * ys)
- - ((xp * xr^3) * yq) + ((xp * xr^3) * ys) + ((xp * xs^3) * yq)
- - ((xp * xs^3) * yr) - ((xq^3 * xr) * yp) + ((xq^3 * xr) * ys)
- + ((xq^3 * xs) * yp) - ((xq^3 * xs) * yr) + ((xq * xr^3) * yp)
- - ((xq * xr^3) * ys) - ((xq * xs^3) * yp) + ((xq * xs^3) * yr)
- - ((xr^3 * xs) * yp) + ((xr^3 * xs) * yq) + ((xr * xs^3) * yp)
- - ((xr * xs^3) * yq)) /
- (((xp^3 * xq^2) * xr) - ((xp^3 * xq^2) * xs)
- - ((xp^3 * xq) * xr^2) + ((xp^3 * xq) * xs^2)
- + ((xp^3 * xr^2) * xs) - ((xp^3 * xr) * xs^2)
- - ((xp^2 * xq^3) * xr) + ((xp^2 * xq^3) * xs)
- + ((xp^2 * xq) * xr^3) - ((xp^2 * xq) * xs^3)
- - ((xp^2 * xr^3) * xs) + ((xp^2 * xr) * xs^3)
- + ((xp * xq^3) * xr^2) - ((xp * xq^3) * xs^2)
- - ((xp * xq^2) * xr^3) + ((xp * xq^2) * xs^3)
- + ((xp * xr^3) * xs^2) - ((xp * xr^2) * xs^3)
- - ((xq^3 * xr^2) * xs) + ((xq^3 * xr) * xs^2)
- + ((xq^2 * xr^3) * xs) - ((xq^2 * xr) * xs^3)
- - ((xq * xr^3) * xs^2) + ((xq * xr^2) * xs^3))
- local c = (((xp^3 * xq^2) * yr) - ((xp^3 * xq^2) * ys)
- - ((xp^3 * xr^2) * yq) + ((xp^3 * xr^2) * ys)
- + ((xp^3 * xs^2) * yq) - ((xp^3 * xs^2) * yr)
- - ((xp^2 * xq^3) * yr) + ((xp^2 * xq^3) * ys)
- + ((xp^2 * xr^3) * yq) - ((xp^2 * xr^3) * ys)
- - ((xp^2 * xs^3) * yq) + ((xp^2 * xs^3) * yr)
- + ((xq^3 * xr^2) * yp) - ((xq^3 * xr^2) * ys)
- - ((xq^3 * xs^2) * yp) + ((xq^3 * xs^2) * yr)
- - ((xq^2 * xr^3) * yp) + ((xq^2 * xr^3) * ys)
- + ((xq^2 * xs^3) * yp) - ((xq^2 * xs^3) * yr)
- + ((xr^3 * xs^2) * yp) - ((xr^3 * xs^2) * yq)
- - ((xr^2 * xs^3) * yp) + ((xr^2 * xs^3) * yq)) /
- (((xp^3 * xq^2) * xr) - ((xp^3 * xq^2) * xs)
- - ((xp^3 * xq) * xr^2) + ((xp^3 * xq) * xs^2)
- + ((xp^3 * xr^2) * xs) - ((xp^3 * xr) * xs^2)
- - ((xp^2 * xq^3) * xr) + ((xp^2 * xq^3) * xs)
- + ((xp^2 * xq) * xr^3) - ((xp^2 * xq) * xs^3)
- - ((xp^2 * xr^3) * xs) + ((xp^2 * xr) * xs^3)
- + ((xp * xq^3) * xr^2) - ((xp * xq^3) * xs^2)
- - ((xp * xq^2) * xr^3) + ((xp * xq^2) * xs^3)
- + ((xp * xr^3) * xs^2) - ((xp * xr^2) * xs^3)
- - ((xq^3 * xr^2) * xs) + ((xq^3 * xr) * xs^2)
- + ((xq^2 * xr^3) * xs) - ((xq^2 * xr) * xs^3)
- - ((xq * xr^3) * xs^2) + ((xq * xr^2) * xs^3))
- local d = ((((xp^(3) * xq^(2)) * xr) * ys)
- - (((xp^(3) * xq^(2)) * xs) * yr) - (((xp^(3) * xq) * xr^(2)) * ys)
- + (((xp^(3) * xq) * xs^(2)) * yr) + (((xp^(3) * xr^(2)) * xs) * yq)
- - (((xp^(3) * xr) * xs^(2)) * yq) - (((xp^(2) * xq^(3)) * xr) * ys)
- + (((xp^(2) * xq^(3)) * xs) * yr) + (((xp^(2) * xq) * xr^(3)) * ys)
- - (((xp^(2) * xq) * xs^(3)) * yr) - (((xp^(2) * xr^(3)) * xs) * yq)
- + (((xp^(2) * xr) * xs^(3)) * yq) + (((xp * xq^(3)) * xr^(2)) * ys)
- - (((xp * xq^(3)) * xs^(2)) * yr) - (((xp * xq^(2)) * xr^(3)) * ys)
- + (((xp * xq^(2)) * xs^(3)) * yr) + (((xp * xr^(3)) * xs^(2)) * yq)
- - (((xp * xr^(2)) * xs^(3)) * yq) - (((xq^(3) * xr^(2)) * xs) * yp)
- + (((xq^(3) * xr) * xs^(2)) * yp) + (((xq^(2) * xr^(3)) * xs) * yp)
- - (((xq^(2) * xr) * xs^(3)) * yp) - (((xq * xr^(3)) * xs^(2)) * yp)
- + (((xq * xr^(2)) * xs^(3)) * yp)) /
- (((xp^(3) * xq^(2)) * xr) -
- ((xp^(3) * xq^(2)) * xs) - ((xp^(3) * xq) * xr^(2))
- + ((xp^(3) * xq) * xs^(2)) + ((xp^(3) * xr^(2)) * xs)
- - ((xp^(3) * xr) * xs^(2)) - ((xp^(2) * xq^(3)) * xr)
- + ((xp^(2) * xq^(3)) * xs) + ((xp^(2) * xq) * xr^(3))
- - ((xp^(2) * xq) * xs^(3)) - ((xp^(2) * xr^(3)) * xs)
- + ((xp^(2) * xr) * xs^(3)) + ((xp * xq^(3)) * xr^(2))
- - ((xp * xq^(3)) * xs^(2)) - ((xp * xq^(2)) * xr^(3))
- + ((xp * xq^(2)) * xs^(3)) + ((xp * xr^(3)) * xs^(2))
- - ((xp * xr^(2)) * xs^(3)) - ((xq^(3) * xr^(2)) * xs)
- + ((xq^(3) * xr) * xs^(2)) + ((xq^(2) * xr^(3)) * xs)
- - ((xq^(2) * xr) * xs^(3)) - ((xq * xr^(3)) * xs^(2))
- + ((xq * xr^(2)) * xs^(3)))
- return a, b, c, d
+ return (((xq-xp)*xr^2+(xp^2-xq^2)*xr+xp*xq^2-xp^2*xq)*ys+((xp-xq)
+ *xs^2+(xq^2-xp^2)*xs-xp*xq^2+xp^2*xq)*yr+((xr-xp)*xs^2+(xp^2-xr^2)
+ *xs+xp*xr^2-xp^2*xr)*yq+((xq-xr)*xs^2+(xr^2-xq^2)*xs-xq*xr^2+xq^2
+ *xr)*yp)/((xq-xp)*(xr-xp)*(xr-xq)*(xs-xp)*(xs-xq)*(xs-xr)),
+ -(((xq-xp)*xr^3+(xp^3-xq^3)*xr+xp*xq^3-xp^3*xq)*ys+((xp-
+ xq)*xs^3+(xq^3-xp^3)*xs-xp*xq^3+xp^3*xq)*yr+((xr-xp)*xs^3+(xp^3
+ -xr^3)*xs+xp*xr^3-xp^3*xr)*yq+((xq-xr)*xs^3+(xr^3-xq^3)*xs-xq*xr^3
+ +xq^3*xr)*yp)/((xq-xp)*(xr-xp)*(xr-xq)*(xs-xp)*(xs-xq)*(xs-xr)),
+ (((xq^2-xp^2)*xr^3+(xp^3-xq^3)*xr^2+xp^2*xq^3-xp^3*xq^2)
+ *ys+((xp^2-xq^2)*xs^3+(xq^3-xp^3)*xs^2-xp^2*xq^3+xp^3*xq^2)*yr
+ +((xr^2-xp^2)*xs^3+(xp^3-xr^3)*xs^2+xp^2*xr^3-xp^3*xr^2)*yq+((xq^2
+ -xr^2)*xs^3+(xr^3-xq^3)*xs^2-xq^2*xr^3+xq^3*xr^2)*yp)/((xq-xp)
+ *(xr-xp)*(xr-xq)*(xs-xp)*(xs-xq)*(xs-xr)),
+ -(((xp*xq^2-xp^2*xq)*xr^3+(xp^3*xq-xp*xq^3)*xr^2+(xp^2
+ *xq^3-xp^3*xq^2)*xr)*ys+((xp^2*xq-xp*xq^2)*xs^3+(xp*xq^3-xp^3*xq)
+ *xs^2+(xp^3*xq^2-xp^2*xq^3)*xs)*yr+((xp*xr^2-xp^2*xr)*xs^3+(xp^3*xr
+ -xp*xr^3)*xs^2+(xp^2*xr^3-xp^3*xr^2)*xs)*yq+((xq^2*xr-xq*xr^2)*xs^3
+ +(xq*xr^3-xq^3*xr)*xs^2+(xq^3*xr^2-xq^2*xr^3)*xs)*yp)/((xq-xp)
+ *(xr-xp)*(xr-xq)*(xs-xp)*(xs-xq)*(xs-xr))
end
-- f(x)=a*x+b
@@ -521,24 +447,47 @@ local function graphtobezierapprox(f,g,starti,endi,maxerror)
-- we compute the corner point c, where the controls would meet
local cx = ((dp * px) - (ds * sx) - py + sy) / (dp - ds)
local cy = (dp * ((ds * px) - (ds * sx) - py + sy) / (dp - ds)) + py
+ local delta_cpx = .01*(cx-px)
+ local delta_cpy = .01*(cy-py)
+ local delta_csx = .01*(cx-sx)
+ local delta_csy = .01*(cy-sy)
-- now we slide q between p and c & r between s and c
-- and search for the best qx and best rx
- local qx = px+.01*(cx-px)
- local qy = py+.01*(cy-py)
- local rx = sx+.01*(cx-sx)
- local ry = sy+.01*(cy-sy)
+ local qx = px+delta_cpx
+ local qy = py+delta_cpy
+ local rx = sx+delta_csx
+ local ry = sy+delta_csy
local err = squareerror(f,g,starti,endi,qx,qy,rx,ry)
+ local newerror
+ local best_j = 1
for i = 2, 99 do
- for j = 2, 99 do
- xa = px+i*.01*(cx-px)
- ya = py+i*.01*(cy-py)
- xb = sx+j*.01*(cx-sx)
- yb = sy+j*.01*(cy-sy)
+ xa = px+i*delta_cpx
+ ya = py+i*delta_cpy
+ for j = 10, 90, 10 do -- determine j roughly
+ xb = sx+j*delta_csx
+ yb = sy+j*delta_csy
-- now check, if xa and xb fit better
-- than the last qx and rx did
-- (sum of squares must be smaller)
- local newerror = squareerror(f,g,starti,endi,xa,ya,xb,yb)
+ newerror = squareerror(f,g,starti,endi,xa,ya,xb,yb)
if newerror < err then
+ best_j = j
+ qx = xa
+ qy = ya
+ rx = xb
+ ry = yb
+ err = newerror
+ end
+ end
+ for j = best_j-9, best_j+9 do -- determine j better
+ xb = sx+j*delta_csx
+ yb = sy+j*delta_csy
+ -- now check, if xa and xb fit better
+ -- than the last qx and rx did
+ -- (sum of squares must be smaller)
+ newerror = squareerror(f,g,starti,endi,xa,ya,xb,yb)
+ if newerror < err then
+ best_j = j
qx = xa
qy = ya
rx = xb
@@ -903,10 +852,20 @@ function bezierplot(functionstring,xminstring,xmaxstring,yminstring,ymaxstring,s
return beziertabletostring(bezierpoints,rndx,rndy,isreverse,notation)
end
--- main program --
+-- This Lua script has to work as a "main" with an external
+-- call from pdfLaTeX as well as a "library" with a direct lua use
+-- of the function bezierplot() when used with LuaLaTeX
+-- However, Lua does not seem to support a natural distinction
+-- of the main and the library:
+-- https://stackoverflow.com/questions/4521085/main-function-in-lua
+-- As https://www.tug.org/pipermail/luatex/2024-February/007935.html
+-- states, LuaTeX 1.18 has disabled the use of the debug library.
+-- Hence, using "pcall(debug.getlocal, 4, 1)" is no longer possible
+-- without restriction. The problem with the now chosen method is
+-- that arg could be defined as a global variable in the calling code.
-if not pcall(debug.getlocal, 4, 1) then
---if debug.getinfo(3) == nil then
+-- main program --
+if (arg ~= nil and arg[-1] ~= nil) then
if #arg >= 1 then
local xmin = -5
local xmax = 5
@@ -935,6 +894,3 @@ if not pcall(debug.getlocal, 4, 1) then
print(bezierplot(arg[1],xmin,xmax,ymin,ymax,samples,notation))
end
end
-
-
-
diff --git a/macros/luatex/latex/bezierplot/bezierplot.sty b/macros/luatex/latex/bezierplot/bezierplot.sty
index 94be30b4dc..c3d0963de2 100644
--- a/macros/luatex/latex/bezierplot/bezierplot.sty
+++ b/macros/luatex/latex/bezierplot/bezierplot.sty
@@ -1,5 +1,7 @@
+% Linus Romer, published 2018 under LPPL Version 1.3c
+% version 1.5 2024-03-31
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{bezierplot}[2019/06/18 bezierplot]
+\ProvidesPackage{bezierplot}[2024/03/21 bezierplot]
\RequirePackage{xparse}
\RequirePackage{iftex}
\ifLuaTeX