diff options
Diffstat (limited to 'macros')
-rw-r--r-- | macros/latex/contrib/asmeconf/README.md | 7 | ||||
-rw-r--r-- | macros/latex/contrib/asmeconf/asmeconf-template.pdf | bin | 471907 -> 476945 bytes | |||
-rw-r--r-- | macros/latex/contrib/asmeconf/asmeconf-template.tex | 17 | ||||
-rw-r--r-- | macros/latex/contrib/asmeconf/asmeconf.cls | 89 | ||||
-rw-r--r-- | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf | bin | 1259752 -> 1320885 bytes | |||
-rw-r--r-- | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex | 55 | ||||
-rw-r--r-- | macros/latex/contrib/proflycee/tex/ProfLycee.sty | 5 | ||||
-rw-r--r-- | macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex | 36 | ||||
-rw-r--r-- | macros/latex/contrib/recorder-fingering/README.md | 2 | ||||
-rw-r--r-- | macros/latex/contrib/recorder-fingering/recorder-fingering.pdf | bin | 108036 -> 108198 bytes | |||
-rw-r--r-- | macros/latex/contrib/recorder-fingering/recorder-fingering.sty | 184 | ||||
-rw-r--r-- | macros/latex/contrib/recorder-fingering/recorder-fingering.tex | 2 |
12 files changed, 244 insertions, 153 deletions
diff --git a/macros/latex/contrib/asmeconf/README.md b/macros/latex/contrib/asmeconf/README.md index 39f1460ad5..0a4a3a9c0c 100644 --- a/macros/latex/contrib/asmeconf/README.md +++ b/macros/latex/contrib/asmeconf/README.md @@ -1,7 +1,7 @@ #asmeconf: A latex template for ASME conference papers# - Version 1.34 dated 2022/12/30. + Version 1.35 dated 2022/10/19. ####Overview#### This class provides a LaTeX template for ASME Conference papers formatted according to @@ -79,6 +79,11 @@ --- ####Change log#### + v1.35 (2022/10/19) + - Adjust pdf-a code to accommodate recent changes to hyperxmp package. NOTE: \\DocumentMetadata{ ..} is now preferred to using class option [pdf-a]. + - Add option to not use boldface text in captions: [unboldcaption] + - Add mathversion sans for sans-serif math and set as default in unbolded captions + v1.34 (2022/12/30) - Roll back advanced metadata feature for compatibility with pre-2022 installations diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.pdf b/macros/latex/contrib/asmeconf/asmeconf-template.pdf Binary files differindex 06ceb434d8..f3cf860b33 100644 --- a/macros/latex/contrib/asmeconf/asmeconf-template.pdf +++ b/macros/latex/contrib/asmeconf/asmeconf-template.pdf diff --git a/macros/latex/contrib/asmeconf/asmeconf-template.tex b/macros/latex/contrib/asmeconf/asmeconf-template.tex index 01191471f7..318e173221 100644 --- a/macros/latex/contrib/asmeconf/asmeconf-template.tex +++ b/macros/latex/contrib/asmeconf/asmeconf-template.tex @@ -4,7 +4,7 @@ %% This file is asmeconf-template.tex, a LaTeX template to format ASME Conference papers according to %% the requirements on ASME's conference web pages, and including hypertext support for the pdf. %% -%% This file is version 1.34 dated 2022/12/30 +%% This file is version 1.35 dated 2023/10/19 %% %% As of version 1.11, this template defaults to ASME's newer conference guidelines first posted July 2019. %% Those guidelines changed the requested author block formatting to be inline. @@ -78,18 +78,19 @@ %% %% LICENSE: %% -%% Copyright (c) 2022 John H. Lienhard +%% Copyright (c) 2023 John H. Lienhard %% %% Offered under the MIT license: https://ctan.org/license/mit %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% New pdf management code (June 2021); with this, the class option [pdf-a] can be omitted. -%% This change to the LaTeX kernel is being phased-in by the LaTeX3 team. Can delete if it gives you trouble. -%% Under LuaLaTeX, choose pdfstandard=A-3b (and be cautious when loading extra fonts) +%% RECOMMENDED newpdf management code (June 2022). +%% This addition the LaTeX kernel was recently made by the LaTeX Project team +%% see https://www.latex-project.org/news/latex2e-news/ltnews35.pdf +%% Uncomment the next lines and omit the option [pdf-a] if you are using an up-to-date LaTeX platform %\DocumentMetadata{% -% pdfstandard=A-3b,% A-2b, A-2u, A-3b, or A-3u +% pdfstandard=A-3b,% A-2b, A-2u, A-3b, or A-3u (don't use u options with LuaLaTeX) % pdfversion=1.7, % lang=en-US, %} @@ -106,7 +107,7 @@ %%%%% pdf metadata %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \hypersetup{% - pdfauthor={John H. Lienhard}, + pdfauthor={John H. Lienhard}, % <=== change to YOUR name pdftitle={ASME Conference Paper LaTeX Template}, % <=== change to YOUR pdf file title pdfkeywords={ASME conference paper, LaTeX template, BibTeX style},% <=== change to YOUR pdf keywords pdfsubject = {Describes the asmeconf LaTeX template}, % <=== change to YOUR subject @@ -276,7 +277,7 @@ Sections may either be numbered or left unnumbered. Simple mathematical expressions can be used in either captions or section headings. For a section heading that includes more complicated math (and macros), you may use the optional argument of \verb|\section[..]{..}| to create a pdf bookmark without losing characters or producing warnings or errors. See the \texttt{asmeconf-template.tex} source file for examples of this procedure. These bookmarks should usually be text expressions, although some math is supported. -To override the \texttt{sansbold} math version in captions, put \verb|\NoCaseChange{\mathversion{normal}}| in the caption. +To eliminate boldface type in caption text and math, use the class option \texttt{[unboldcaption]}. To avoid \texttt{sans} math in captions, put \verb|\NoCaseChange{\mathversion{normal}}| in the caption. \subsection{Subsection and Sub-subsection Headings} diff --git a/macros/latex/contrib/asmeconf/asmeconf.cls b/macros/latex/contrib/asmeconf/asmeconf.cls index 253e27d8f9..2d523be750 100644 --- a/macros/latex/contrib/asmeconf/asmeconf.cls +++ b/macros/latex/contrib/asmeconf/asmeconf.cls @@ -5,8 +5,8 @@ %% ASME conference requirements as represented on ASME's conference web pages in 2022. %% %% This file's version and date: - \def\versionno{1.34} - \def\versiondate{2022/12/30\space} + \def\versionno{1.35} + \def\versiondate{2023/10/19\space} %% %% Author: John H. Lienhard, V %% Department of Mechanical Engineering @@ -86,7 +86,7 @@ \IfFormatAtLeastTF{2017/04/15}{% \ClassInfo{asmeconf}{Your LaTeX format is dated \fmtversion. LaTeX distributions 2020 or later are strongly recommended for best results} }{% - \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. Formats dated 2020 or later are recommended for the asmeconf class. Older formats may generate errors}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You can try to click past the errors for now.}% + \ClassIF{asmeconf}{Your LaTeX format is dated \fmtversion. Formats dated 2020 or later are recommended for the asmeconf class. Older formats may generate errors}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. You can try to click past the errors for now.}% } \DeclareDocumentCommand\LogNote{m}{% @@ -99,11 +99,10 @@ %% provide iftex command \ifpdftex for those still running old distributions \IfFormatAtLeastTF{2019/11/07}{% - \RequirePackage{iftex}% check whether pdftex or another engine is used + \RequirePackage{iftex}[2019/11/07]% check whether pdftex or another engine is used }{% \LogNote{The asmeconf class requires the missing package iftex---trying a work-around.} % Code copied from iftex package written by the LaTeX3 Project (used under LPPL). - % \csname and \let construct useful for hiding \ifzzz tokens from outer level \if tests. \def\IFTEX@let#1#2{% \expandafter\let\csname if#1\expandafter\endcsname \csname if#2\endcsname} @@ -144,6 +143,13 @@ \setboolean{DefaultSups}{#1} } +%%% set key [unboldcaption] for caption text not to use boldface type. +\newif\ifac@unboldcaption\ac@unboldcaptionfalse +\define@key{asmeconf}{unboldcaption}[false]{% + \ac@unboldcaptiontrue +} +% (with two key families active, \DeclareBoolOption has problems..) + %%% Use these switches to load other alphabets for Cyrillic, Greek, Japanese, and Vietnamese text \newif\ifac@cyrillic\ac@cyrillicfalse \newif\ifac@greek\ac@greekfalse @@ -311,17 +317,26 @@ \ClassError{asmeconf}{Your LaTeX format is dated \fmtversion. Formats dated 2018/12/01 or later are necessary for the [pdf-a] option. Older formats may generate errors}{Please UPDATE your LaTeX distribution to obtain best results. TeX Live is available for download at no charge: \string https://www.tug.org/texlive/. Meanwhile, you can remove the [pdf-a] option and try again}% } \ac@setpdfatrue - \PassOptionsToPackage{pdfa,pdfapart=3,pdfaconformance=u}{hyperref}% note: hyperref takes these options if hyperxmp is loaded +% \PassOptionsToPackage{pdfa,pdfapart=3,pdfaconformance=u}{hyperref}% note: hyperref takes these options if hyperxmp is loaded + \PassOptionsToPackage{pdfa}{hyperref}% note: hyperref takes these options if hyperxmp is loaded + \AtBeginDocument{\hypersetup{pdfapart=3,pdfaconformance=u}} } %%% to select part 1, 2 or 3 \define@key{pdfaopt}{pdfapart}[3]{% - \PassOptionsToPackage{pdfapart=#1}{hyperref}% +% \PassOptionsToPackage{pdfapart=#1}{hyperref}% + \def\asmeconf@tempa{#1} + \AtBeginDocument{\hypersetup{pdfapart=\asmeconf@tempa}} \ifthenelse{\equal{#1}{1}}{\ac@pdfaonetrue}{\relax}% } %%% to select conformance b or u. NB: a is not possible with pdfLaTeX, and u is not possible with 1. + \ExplSyntaxOn \define@key{pdfaopt}{pdfaconformance}[u]{% - \PassOptionsToPackage{pdfaconformance=#1}{hyperref}% +% \PassOptionsToPackage{pdfaconformance=#1}{hyperref}% + \str_set:Ne \l_tmp_str { \str_uppercase:n {#1} } + \typeout{\l_tmp_str} + \AtBeginDocument{\hypersetup{pdfaconformance=\l_tmp_str}} } + \ExplSyntaxOff \else \define@key{pdfaopt}{pdf-a}[true]{% \ac@setpdfatrue @@ -496,8 +511,15 @@ \DeclareCaptionLabelFormat{uppercase}{\MakeTextUppercase{#1} #2} \DeclareCaptionTextFormat{boldmath}{\mathversion{sansbold}#1} -\captionsetup[figure]{labelformat=uppercase, labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath,labelsep=colon} -\captionsetup[table]{labelformat=uppercase, labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath,labelsep=colon,skip=0.5\baselineskip} %name=TABLE, +\DeclareCaptionTextFormat{sansmath}{\mathversion{sans}#1} + +\ifac@unboldcaption + \captionsetup[figure]{labelformat=uppercase,labelfont={sf,bf,small},textfont={sf,md,small},textformat=sansmath,labelsep=colon} + \captionsetup[table]{labelformat=uppercase,labelfont={sf,bf,small},textfont={sf,md,small},textformat=sansmath,labelsep=colon,skip=0.5\baselineskip} +\else + \captionsetup[figure]{labelformat=uppercase,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath,labelsep=colon} + \captionsetup[table]{labelformat=uppercase,labelfont={sf,bf,small},textfont={sf,bf,small},textformat=boldmath,labelsep=colon,skip=0.5\baselineskip} %name=TABLE, +\fi %% This construction avoids a failure of hyperref in relation to uppercase caption %% Discussion: https://tex.stackexchange.com/questions/375695/maketextuppercase-inside-table-captions @@ -987,6 +1009,18 @@ \SetSymbolFont{operators}{sansbold}{\encodingdefault}{\sfdefault}{\bfdefault}{n} \SetMathAlphabet{\mathsf}{sansbold}{\encodingdefault}{\sfdefault}{b}{n}% changed from it, 2021/01/31: \mathsf is upright. +%% Added 2023/10/19 +\DeclareMathVersion{sans} +\SetSymbolFont{letters}{sans}{OML}{ntxsfmi}{m}{it} +\SetSymbolFont{lettersA}{sans}{U}{ntxsfmia}{m}{it} +\IfFormatAtLeastTF{2016/01/05}{% + \SetSymbolFont{symbols}{sans}{LMS}{ntxsy}{m}{n} + }{\relax} +\SetSymbolFont{largesymbols}{sans}{LMX}{ntxexx}{m}{n} +\SetSymbolFont{largesymbolsTXA}{sans}{U}{ntxexa}{m}{n} +\SetSymbolFont{operators}{sans}{\encodingdefault}{\sfdefault}{\rmdefault}{n} +\SetMathAlphabet{\mathsf}{sans}{\encodingdefault}{\sfdefault}{m}{n}% \mathsf is upright. + % Nice solution from DPC to prevent aux file errors (due to active characters from babel) when switching from pdflatex to lualatex. \ifx\directlua\undefined @@ -1130,22 +1164,6 @@ \fi \fi -\RequirePackage{hyperxmp}% improve transfer of metadata to pdf - -% Patch bug in hyperxmp, unless a more recent version is used. -\ifdefined\hyxmp@no@bad@parts% \hyxmp@no@bad@parts is not def'd in TeX Live 2019 or older - \@ifpackagelater{hyperxmp}{2022/09/14}{% no new version at present, still 2020/11/22 - \relax - }{% - \newcount\hypxmp@tempcnt - \define@key{Hyp}{pdfapart}{% - \afterassignment\hyxmp@no@bad@parts\hypxmp@tempcnt=0#1\relax - \hyxmp@pdfstringdef\@pdfapart{\the\hypxmp@tempcnt}% - } - } -\else - \relax -\fi \RequirePackage[psdextra]{hyperref} % recent kernel transition suggests providing most hyperref options via \hypersetup, % but setting psdextra here (for additional math support in bookmarks) 2021/12/01 @@ -1174,6 +1192,25 @@ \providecommand\hrefurl[2]{\href{#1}{#2}}% to address certain issues around URL recognition with new pdf management code, 2021/12/02 +\RequirePackage{hyperxmp}% improve transfer of metadata to pdf + +% Patch bug in hyperxmp, unless a more recent version is used. +\ifdefined\hyxmp@no@bad@parts% \hyxmp@no@bad@parts is not def'd in TeX Live 2019 or older + \@ifpackagelater{hyperxmp}{2022/10/15}{% v5.11 or later + \relax +% \ClassInfo{asmeconf}{hyperxmp v5.11 or later is in use} + }{% + \newcount\hypxmp@tempcnt + \define@key{Hyp}{pdfapart}{% + \afterassignment\hyxmp@no@bad@parts\hypxmp@tempcnt=0#1\relax + \hyxmp@pdfstringdef\@pdfapart{\the\hypxmp@tempcnt}% + } + } +\else + \relax +\fi + + %%% ==> recent and evolving development of \pdfstring removes all robust commands from bookmarks, so %%% the following interventions may become unnecessary over time (2021/12/01). diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex 5dfac0ad10..8b01a1641f 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex index 94e0d61436..2c4df3e623 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex @@ -5,8 +5,8 @@ % arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') \documentclass[a4paper,french,11pt]{article} -\def\PLversion{2.7.9} -\def\PLdate{18 octobre 2023} +\def\PLversion{2.8.0} +\def\PLdate{19 octobre 2023} \usepackage{amsfonts} \usepackage{ProfLycee} \useproflyclib{piton,minted,pythontex,ecritures} @@ -144,7 +144,7 @@ keywordstyle={\color{violet}},% classoffset=2,% alsoletter={-},% - morekeywords={\ResolutionApprochee,\SolutionTVI,\CalculTermeRecurrence,\ToileRecurrence,\SolutionSeuil,\IntegraleApprochee,\GrilleTikz,\AxesTikz,\AxexTikz,\AxeyTikz,\FenetreTikz,\FenetreSimpleTikz,\DeclareFonctionTikz,\CourbeTikz,\OrigineTikz,\SplineTikz,\TangenteTikz,\MiniSchemaSignes,\MiniSchemaSignesTkzTab,\IntegraleApprocheeTikz,\CartoucheCapytale,\PaveTikz,\TetraedreTikz,\CercleTrigo,\AffPoint,\AffVecteur,\TrouveEqCartPlan,\TrouveEqParamDroite,\TrouveEqCartDroite,\TrouveNorme,\TrouveDistancePtPlan,\EquationReduite,\CalculsRegLin,\PointsRegLin,\NuagePointsTikz,\PointMoyenTikz,\BoiteMoustaches,\BoiteMoustachesAxe,\Histogramme,\CalcBinomP,\CalcBinomC,\BinomP,\BinomC,\CalcPoissP,\CalcPoissC,\PoissonP,\PoissonC,\CalcGeomP,\CalcGeomC,\GeomP,\GeomC,\CalcHypergeomP,\CalcHypergeomP,\HypergeomP,\HypergeomC,\CalcNormC,\NormaleC,\CalcExpoC,\ExpoC,\ArbreProbasTikz,\LoiNormaleGraphe,\LoiExpoGraphe,\NbAlea,\VarNbAlea,\TirageAleatoireEntiers,\Arrangement,\Combinaison,\ConversionDecBin,\ConversionBinHex,\ConversionVersDec,\ConversionHexBin,\ConversionBaseDix,\ConversionDepuisBaseDix,\PresentationPGCD,\EquationDiophantienne,\ConversionFraction,\SimplificationRacine,\EcritureEnsemble,\EcritureTrinome,\MesurePrincipale,\LigneTrigo,\SudoMaths,\FonctionRepartTikz,\IntervalleFF,\IntervalleFO,\IntervalleOF,\IntervalleOO,\RepereOij,\RepereOuv,\RepereOijk,\ReperePlan,\RepereEspace,\jfalg,\jfexp,\LoiNormale,\LoiBinomiale,\LoiPoisson,\LoiExpo,\LoiUnif,\Courbe,\Suite,\CoordPtPl,\CoordPtEsp,\CoordVecPl,\CoordVecEsp,\MatDeux,\Vecteur,\Esper,\Varianc,\EcType,\dx,\Integrale,\Modulo,\Arrondi,\CodePythonLstFichier,\CodePythonLstFichierAlt,\colorlet,\PtsDiscontinuite,\ListeDiviseurs,\ArbreDiviseurs,\FractaleTikz,\EtapesFloconKoch + morekeywords={\ResolutionApprochee,\SolutionTVI,\CalculTermeRecurrence,\ToileRecurrence,\SolutionSeuil,\IntegraleApprochee,\GrilleTikz,\AxesTikz,\AxexTikz,\AxeyTikz,\FenetreTikz,\FenetreSimpleTikz,\DeclareFonctionTikz,\CourbeTikz,\OrigineTikz,\SplineTikz,\TangenteTikz,\MiniSchemaSignes,\MiniSchemaSignesTkzTab,\IntegraleApprocheeTikz,\CartoucheCapytale,\PaveTikz,\TetraedreTikz,\CercleTrigo,\AffPoint,\AffVecteur,\TrouveEqCartPlan,\TrouveEqParamDroite,\TrouveEqCartDroite,\TrouveNorme,\TrouveDistancePtPlan,\EquationReduite,\CalculsRegLin,\PointsRegLin,\NuagePointsTikz,\PointMoyenTikz,\BoiteMoustaches,\BoiteMoustachesAxe,\Histogramme,\CalcBinomP,\CalcBinomC,\BinomP,\BinomC,\CalcPoissP,\CalcPoissC,\PoissonP,\PoissonC,\CalcGeomP,\CalcGeomC,\GeomP,\GeomC,\CalcHypergeomP,\CalcHypergeomP,\HypergeomP,\HypergeomC,\CalcNormC,\NormaleC,\CalcExpoC,\ExpoC,\ArbreProbasTikz,\LoiNormaleGraphe,\LoiExpoGraphe,\NbAlea,\VarNbAlea,\TirageAleatoireEntiers,\Arrangement,\Combinaison,\ConversionDecBin,\ConversionBinHex,\ConversionVersDec,\ConversionHexBin,\ConversionBaseDix,\ConversionDepuisBaseDix,\PresentationPGCD,\EquationDiophantienne,\ConversionFraction,\SimplificationRacine,\EcritureEnsemble,\EcritureTrinome,\MesurePrincipale,\LigneTrigo,\SudoMaths,\FonctionRepartTikz,\IntervalleFF,\IntervalleFO,\IntervalleOF,\IntervalleOO,\RepereOij,\RepereOuv,\RepereOijk,\ReperePlan,\RepereEspace,\jfalg,\jfexp,\LoiNormale,\LoiBinomiale,\LoiPoisson,\LoiExpo,\LoiUnif,\Courbe,\Suite,\CoordPtPl,\CoordPtEsp,\CoordVecPl,\CoordVecEsp,\MatDeux,\Vecteur,\Esper,\Varianc,\EcType,\dx,\Integrale,\Modulo,\Arrondi,\CodePythonLstFichier,\CodePythonLstFichierAlt,\colorlet,\PtsDiscontinuite,\ListeDiviseurs,\ArbreDiviseurs,\FractaleTikz,\EtapesFloconKoch,\EtapesTapisSierpinski },% keywordstyle={\color{CouleurVertForet}},% classoffset=3,% @@ -908,6 +908,7 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent %fractales \FractaleTikz(*)[clés]<options tikz> \EtapesFloconKoch[clés]{étapes} +\EtapesTapisSierpinski[clés]{étapes} \end{PresCodeTexPL} \newpage @@ -7943,8 +7944,8 @@ Pour le moment, il est possible de : \begin{itemize} \item tracer un flocon de Koch à une étape donnée ; - \item tracer un triangle de Sierpinski \textit{classique} ; - \item présenter différentes étapes successives des flocons de Koch. + \item tracer un triangle de Sierpinski à une étape donnée ; + \item présenter différentes étapes successives des flocons de Koch ou des triangles de Sierpinski. \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{tipblock} @@ -7991,12 +7992,11 @@ Les \Cle{clés} disponibles pour cette commande sont : \item la clé \Cle{Type}, parmi \Cle{Koch / Sierp} pour choisir le type de fractale ; \hfill~défaut \Cle{Koch} \item la clé \Cle{Couleur} pour fixer la couleur des tracés ; \hfill~défaut \Cle{black} \item la clé \Cle{LongueurCote} (en cm) pour fixer la longueur des côtés ; \hfill~défaut \Cle{3} - \item la clé \Cle{Etape} (pour \Cle{Type=Koch}, et limitée à 7) pour fixer l'étape ; \hfill~défaut \Cle{1} + \item la clé \Cle{Etape} (pour \Cle{Type=Koch} elle est limitée à 7) pour fixer l'étape ; \hfill~défaut \Cle{1} \item le booléen \Cle{remplir} pour remplir la fractale ; \hfill~défaut \Cle{false} \item la clé \Cle{Remplissage} pour fixer la couleur de remplissage ; \hfill~défaut \Cle{lightgray} \item la clé \Cle{Depart} pour fixer le point de départ ; \hfill~défaut \Cle{(0,0)} - \item le booléen \Cle{AlignV} (pour \Cle{Type=Koch}) pour forcer l'alignement de la \textit{base} ; \hfill~défaut \Cle{false} - \item le booléen \Cle{Contour} (pour \Cle{Type=Sierp}) pour afficher le contour. \hfill~défaut \Cle{false} + \item le booléen \Cle{AlignV} (pour \Cle{Type=Koch}) pour forcer l'alignement de la \textit{base}.\hfill~défaut \Cle{false} \end{itemize} \vspace*{-\baselineskip}\leavevmode \end{cautionblock} @@ -8028,7 +8028,7 @@ Les \Cle{clés} disponibles pour cette commande sont : \begin{PresCodeTexPL}{} %Sierpinski par défaut -\FractaleTikz[Type=Sierp,LongueurCote=4,Couleur=blue,Remplir,Remplissage=red!5,Contour] +\FractaleTikz[Type=Sierp,LongueurCote=4,Couleur=blue] \end{PresCodeTexPL} \subsection{Affichage de plusieurs étapes pour les flocons de Koch} @@ -8068,6 +8068,43 @@ L'argument obligatoire, et entre \ctex{\{...\}}, permet de spécifier les étape \EtapesFloconKoch[Offset=5mm,Couleur=red,Remplir,Remplissage=violet!25]{0,2,4,6} \end{PresCodeTexPL} +\subsection{Affichage de plusieurs étapes pour les tapis de Sierpinski} + +\begin{tipblock} +L'idée est de présenter des étapes successives pour les tapis de Sierpinski. + +À noter que les \textit{bases} des flocons sont correctement alignées ! +\end{tipblock} + +\begin{PresCodeTexPL}{listing only} +%commande autonome, l'environnement tikz est créé +\EtapesTapisSierpinski[clés]{étapes} +\end{PresCodeTexPL} + +\begin{cautionblock} +Les \Cle{clés} disponibles sont reprises (pour celles dépendant de \Cle{Type=Sierp} !) de la commande \ctex{\textbackslash FractaleTikz}, avec en plus : + +\begin{itemize} + \item la clé \Cle{Offset} pour fixer une espacement horizontal entre les figures. \hfill~défaut \Cle{2pt} +\end{itemize} + +L'argument obligatoire, et entre \ctex{\{...\}}, permet de spécifier les étapes à afficher, sous la forme \TikZ{} : + +\begin{itemize} + \item \ctex{n1,n2,n3} pour spécifier une liste d'étapes ; + \item \ctex{n1,...,n2} pour spécifier une plage d'étapes. +\end{itemize} +\vspace*{-\baselineskip}\leavevmode +\end{cautionblock} + +\begin{PresCodeTexPL}{} +\EtapesTapisSierpinski{0,...,4} +\end{PresCodeTexPL} + +\begin{PresCodeTexPL}{} +\EtapesTapisSierpinski[LongueurCote=2.5,Offset=5mm,Couleur=red]{0,2,4,6,8} +\end{PresCodeTexPL} + \newpage \phantom{t}\par\vfill\par diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index 176a4fd187..a713a0cdce 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,8 +3,9 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2023/10/18 2.7.9 Aide pour l'utilisation de LaTeX en lycee] -% 2.7.9 Ajout de fractales (Koch + Sierpenski) +\ProvidesPackage{ProfLycee}[2023/10/19 2.8.0 Aide pour l'utilisation de LaTeX en lycee] +% 2.8.0 Amélioration du tapis de Sierpinski +% 2.7.9 Ajout de fractales (Koch + Sierpinski) % 2.7.8 Conversion hexa->bin présentée % 2.7.7 Ajout d'une commande pour matérialiser des points de discontinuité % 2.7.6 Amélioration de la gestion de la console piton diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex index 8578cf58a6..4bf8e9d32e 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex @@ -251,6 +251,13 @@ \pgfdeclarelindenmayersystem{TriangleSierpinski}{ \rule{F -> G-F-G} \rule{G -> F+G+F}} + +\pgfdeclarelindenmayersystem{SierpinskiTriangle}{ + \symbol{X}{\pgflsystemdrawforward} + \symbol{Y}{\pgflsystemdrawforward} + \rule{X -> X-Y+X+Y-X} + \rule{Y -> YY} +}% \defKV[tikzfract]{% Epaisseur=\def\fracttikzthick{#1},% @@ -272,7 +279,6 @@ Remplir=false,% Remplissage=lightgray,% Depart={(0,0)},% - Contour=false,% AlignV=false,% Offset=2pt } @@ -283,7 +289,7 @@ \def\fracttikzlgstep{\fpeval{(\fracttikzlg)/(3^\fracttikzstep)}}% \IfStrEq{\fracttikztype}{Sierp}% {% - \def\fracttikzlgstep{\fpeval{(\fracttikzlg)/(128)}}% + \def\fracttikzlgstep{\fpeval{(\fracttikzlg)/(2^\fracttikzstep)}}% }{}% \IfBooleanF{#1}{\begin{tikzpicture}[#3]} \ifboolKV[tikzfract]{Remplir}% @@ -298,13 +304,8 @@ }{}% \IfStrEq{\fracttikztype}{Sierp}% {% - \ifboolKV[tikzfract]{Contour}% - {% - \draw[shift=\fracttikzdepart,line width=\fracttikzthick,\fracttikzcolor] (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; - \clip (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; - }{}% - \draw[line width=\fracttikzthick,shift=\fracttikzdepart,draw=\fracttikzcolor,fill=\fracttikzfill,l-system={TriangleSierpinski,step=\fracttikzlgstep cm,angle=60,axiom=F,order=8}] - lindenmayer system -- cycle; + \fill[\fracttikzcolor] (0,0) -- ++(0:\fracttikzlg cm) -- ++(120:\fracttikzlg cm) -- cycle; + \draw[draw=none,shift=\fracttikzdepart,fill=white,l-system={SierpinskiTriangle,step=\fracttikzlgstep cm,angle=-120,axiom=X,order=\fracttikzstep}] lindenmayer system -- cycle; }{}% }% {% @@ -318,13 +319,8 @@ }{}% \IfStrEq{\fracttikztype}{Sierp}% {% - \ifboolKV[tikzfract]{Contour}% - {% - \draw[shift=\fracttikzdepart,line width=\fracttikzthick,\fracttikzcolor] (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; - \clip (0,0) -- (60:\fracttikzlg cm) -- (\fracttikzlg cm,0) -- cycle ; - }{}% - \draw[line width=\fracttikzthick,shift=\fracttikzdepart,\fracttikzcolor,l-system={TriangleSierpinski,step=\fracttikzlgstep cm,angle=60,axiom=F,order=8}] - lindenmayer system -- cycle; + \fill[\fracttikzcolor] (0,0) -- ++(0:\fracttikzlg cm) -- ++(120:\fracttikzlg cm) -- cycle; + \draw[draw=none,shift=\fracttikzdepart,fill=white,l-system={SierpinskiTriangle,step=\fracttikzlgstep cm,angle=-120,axiom=X,order=\fracttikzstep}] lindenmayer system -- cycle; }{}% }% \IfBooleanF{#1}{\end{tikzpicture}}% @@ -338,4 +334,12 @@ } } +\NewDocumentCommand\EtapesTapisSierpinski{ O{} D<>{} m }{% + \restoreKV[tikzfract]% + \setKV[tikzfract]{#1}% + \foreach \i in {#3} {% + \FractaleTikz[Type=Sierp,#1,Etape=\i]<#2>\hspace{\fracttikzoffset}% + } +} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/recorder-fingering/README.md b/macros/latex/contrib/recorder-fingering/README.md index bc23d7006f..0ce46ec1a0 100644 --- a/macros/latex/contrib/recorder-fingering/README.md +++ b/macros/latex/contrib/recorder-fingering/README.md @@ -1,6 +1,6 @@ # recorder-fingering -Version 1.3 July 17, 2023 +Version 1.3b October 17, 2023 The `recorder-fingering` package provides support for generating fingering diagrams for baroque fingering recorders and the tin whistle. Standard fingerings are provided for recorders in both C and F, and the tin whistle in D, along with methods to create and display alternate fingerings for trills, etc. diff --git a/macros/latex/contrib/recorder-fingering/recorder-fingering.pdf b/macros/latex/contrib/recorder-fingering/recorder-fingering.pdf Binary files differindex c365b23947..79360b17c4 100644 --- a/macros/latex/contrib/recorder-fingering/recorder-fingering.pdf +++ b/macros/latex/contrib/recorder-fingering/recorder-fingering.pdf diff --git a/macros/latex/contrib/recorder-fingering/recorder-fingering.sty b/macros/latex/contrib/recorder-fingering/recorder-fingering.sty index 7827d48a64..63e16d0ec3 100644 --- a/macros/latex/contrib/recorder-fingering/recorder-fingering.sty +++ b/macros/latex/contrib/recorder-fingering/recorder-fingering.sty @@ -26,9 +26,9 @@ % % recorder-fingering.tex, recorder-fingering.pdf % -% Version 1.3 2023/07/17 +% Version 1.3b 2023/07/17 \NeedsTeXFormat{LaTeX2e}[2022/11/01] -\ProvidesPackage{recorder-fingering}[2023/07/17 v1.3 Recorder fingering diagrams] +\ProvidesPackage{recorder-fingering}[2023/10/17 v1.3b Recorder fingering diagrams] \RequirePackage{tikz} \usetikzlibrary{calc} \RequirePackage{graphicx} @@ -100,6 +100,12 @@ nodes={anchor=center} \clist_new:N \l_fingering_topholes_clist \clist_new:N \l_fingering_botholes_clist +% some tmp macros to replace \l_tmpa_tl etc. Changed 1.3b + +\tl_new:N \l_fingering_tmpa_tl +\tl_new:N \l_fingering_tmpb_tl +\int_new:N \l_fingering_tmpa_int + % Set up the trill holes clist \clist_new:N \l_fingering_trill_holes_clist @@ -217,8 +223,8 @@ nodes={anchor=center} \l_fingering_set_hole_positions:n {R} \clist_clear:N \l_fingering_topholes_clist \int_step_inline:nn { 4 } { - \clist_pop:NNF \l_fingering_holes_clist \l_tmpa_tl { \msg_error:nn { recorder-fingering } { too-few }} - \clist_put_right:NV \l_fingering_topholes_clist \l_tmpa_tl } + \clist_pop:NNF \l_fingering_holes_clist \l_fingering_tmpa_tl { \msg_error:nn { recorder-fingering } { too-few }} + \clist_put_right:NV \l_fingering_topholes_clist \l_fingering_tmpa_tl } \resizebox{\l_fingering_size_dim}{!}{ \begin{tikzpicture}[/fingering] % display the thumb and first three topholes @@ -233,13 +239,13 @@ nodes={anchor=center} {} % now shift the bottom holes to make a small space between LH and RH holes \begin{scope}[yshift=-\l_fingering_top_bottom_space_tl] - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_four_tl)~{}; - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_five_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_four_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_five_tl)~{}; % display the bottom two paired holes - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \int_case:nnTF {\l_tmpa_tl}{ + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \int_case:nnTF {\l_fingering_tmpa_tl}{ {0} {\node[top~double=0]~at~ (\c_fingering_six_seven_x_tl,-\c_fingering_six_top_tl)~{}; \node[bottom~double=0]~at~ @@ -255,8 +261,8 @@ nodes={anchor=center} } {} {} - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \int_case:nnTF {\l_tmpa_tl}{ + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \int_case:nnTF {\l_fingering_tmpa_tl}{ {0} {\node[top~double=0,]~at~ (\c_fingering_six_seven_x_tl,-\c_fingering_seven__top_tl)~{}; \node[bottom~double=0]~at~ @@ -275,20 +281,20 @@ nodes={anchor=center} % display the bell hole if present \clist_if_empty:NTF \l_fingering_holes_clist {} - {\clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_bell_tl)~{};} + {\clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_bell_tl)~{};} % display trill arrows if present \clist_if_empty:NTF \l_fingering_trill_holes_clist {} { - \clist_map_variable:NNn \l_fingering_trill_holes_clist \l_tmpa_tl - {\int_compare:nNnTF {\l_tmpa_tl} > {7} + \clist_map_variable:NNn \l_fingering_trill_holes_clist \l_fingering_tmpa_tl + {\int_compare:nNnTF {\l_fingering_tmpa_tl} > {7} {\msg_warning:nn { recorder-fingering } { no-hole }} - {\int_compare:nNnTF {\l_tmpa_tl} > {3} + {\int_compare:nNnTF {\l_fingering_tmpa_tl} > {3} {\tl_set:Nn \l_fingering_top_bottom_space_tl {0}} {} \bool_if:nTF {\l_fingering_trill_offset_LR_bool} - {\int_compare:nNnTF {\l_tmpa_tl} > {3} + {\int_compare:nNnTF {\l_fingering_tmpa_tl} > {3} {\tl_set:Nn \l_fingering_trill_offset_tl {.5} \prop_get:NnN \l_fingering_pointer_prop {RPointer} \l_fingering_trill_pointer_tl } @@ -297,9 +303,9 @@ nodes={anchor=center} \l_fingering_trill_pointer_tl } } {} - \int_set:Nn \l_tmpb_int {\l_tmpa_tl+1} + \int_set:Nn \l_fingering_tmpa_int {\l_fingering_tmpa_tl+1} \node[overlay]~at~($(\l_fingering_trill_offset_tl, - -\l_tmpb_int/2)+(0,\l_fingering_top_bottom_space_tl) + -\l_fingering_tmpa_int/2)+(0,\l_fingering_top_bottom_space_tl) $)~{\l_fingering_trill_pointer_tl}; } } @@ -314,12 +320,12 @@ nodes={anchor=center} \resizebox{\l_fingering_size_dim}{!}{ \begin{tikzpicture}[/fingering] % display the top three holes - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_one_tl)~{}; - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_two_tl)~{}; - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_three_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_one_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_two_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_three_tl)~{}; % add the divider if selected \bool_if:NTF \l_fingering_LHRH_divider_bool {\draw[overlay]~($(-.5,-1.75)+(0,-\l_fingering_top_bottom_space_tl/2)$)~ @@ -327,29 +333,29 @@ nodes={anchor=center} {} % now shift the bottom holes to make a small space between LH and RH holes \begin{scope}[yshift=-\l_fingering_top_bottom_space_tl] - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_four_tl)~{}; - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_five_tl)~{}; - \clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\c_fingering_six_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_four_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_five_tl)~{}; + \clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\c_fingering_six_tl)~{}; % display the bell hole if present \clist_if_empty:NTF \l_fingering_holes_clist {} - {\clist_pop:NN \l_fingering_holes_clist \l_tmpa_tl - \node[hole=\l_tmpa_tl]~at~(0,-\l_fingering_bell_tl)~{};} + {\clist_pop:NN \l_fingering_holes_clist \l_fingering_tmpa_tl + \node[hole=\l_fingering_tmpa_tl]~at~(0,-\l_fingering_bell_tl)~{};} % display trill arrows if present \clist_if_empty:NTF \l_fingering_trill_holes_clist {} { - \clist_map_variable:NNn \l_fingering_trill_holes_clist \l_tmpa_tl - {\int_compare:nNnTF {\l_tmpa_tl} > {6} + \clist_map_variable:NNn \l_fingering_trill_holes_clist \l_fingering_tmpa_tl + {\int_compare:nNnTF {\l_fingering_tmpa_tl} > {6} {\msg_warning:nn { recorder-fingering } { no-hole }} - {\int_compare:nNnTF {\l_tmpa_tl} > {3} + {\int_compare:nNnTF {\l_fingering_tmpa_tl} > {3} {\tl_set:Nn \l_fingering_top_bottom_space_tl {0}} {} \bool_if:nTF {\l_fingering_trill_offset_LR_bool} - {\int_compare:nNnTF {\l_tmpa_tl} > {3} + {\int_compare:nNnTF {\l_fingering_tmpa_tl} > {3} {\tl_set:Nn \l_fingering_trill_offset_tl {.5} \prop_get:NnN \l_fingering_pointer_prop {RPointer} \l_fingering_trill_pointer_tl } @@ -358,9 +364,9 @@ nodes={anchor=center} \l_fingering_trill_pointer_tl } } {} - \int_set:Nn \l_tmpb_int {\l_tmpa_tl} + \int_set:Nn \l_fingering_tmpa_int {\l_fingering_tmpa_tl} \node[overlay]~at~($(\l_fingering_trill_offset_tl, - -\l_tmpb_int/2)+(0,\l_fingering_top_bottom_space_tl) + -\l_fingering_tmpa_int/2)+(0,\l_fingering_top_bottom_space_tl) $)~{\l_fingering_trill_pointer_tl}; } } @@ -379,8 +385,8 @@ nodes={anchor=center} \NewDocumentCommand{\Alto}{O{}m}{ \group_begin: \keys_set:nn {fingering} {#1} - \prop_get:NnNTF \l_fingering_F_prop {#2} \l_tmpa_tl - {\fingering_generate_recorder_fingering:V \l_tmpa_tl} + \prop_get:NnNTF \l_fingering_F_prop {#2} \l_fingering_tmpa_tl + {\fingering_generate_recorder_fingering:V \l_fingering_tmpa_tl} {\msg_error:nn {recorder-fingering} {key-not-found}} \group_end: } @@ -390,8 +396,8 @@ nodes={anchor=center} \NewDocumentCommand{\Soprano}{O{}m}{ \group_begin: \keys_set:nn {fingering} {#1} - \prop_get:NnNTF \l_fingering_C_prop {#2} \l_tmpa_tl - {\fingering_generate_recorder_fingering:V \l_tmpa_tl} + \prop_get:NnNTF \l_fingering_C_prop {#2} \l_fingering_tmpa_tl + {\fingering_generate_recorder_fingering:V \l_fingering_tmpa_tl} {\msg_error:nn {recorder-fingering} {key-not-found}} \group_end: } @@ -400,8 +406,8 @@ nodes={anchor=center} \NewDocumentCommand{\Whistle}{O{}m}{ \group_begin: \keys_set:nn {fingering} {#1} - \prop_get:NnNTF \l_fingering_D_prop {#2} \l_tmpa_tl - {\fingering_generate_whistle_fingering:V \l_tmpa_tl} + \prop_get:NnNTF \l_fingering_D_prop {#2} \l_fingering_tmpa_tl + {\fingering_generate_whistle_fingering:V \l_fingering_tmpa_tl} {\msg_error:nn {recorder-fingering} {key-not-found}} \group_end: } @@ -409,29 +415,29 @@ nodes={anchor=center} % Trill version of the commands; this allows you to store trill holes % with a key name, so that the trill doesn’t have to be specified manually \NewDocumentCommand{\Ftrill}{m}{ - \prop_get:NnNTF \l_fingering_trill_F_prop {#1} \l_tmpa_tl + \prop_get:NnNTF \l_fingering_trill_F_prop {#1} \l_fingering_tmpa_tl {\group_begin: - \keys_set:nx {fingering} {trill={\l_tmpa_tl}} - \prop_get:NnN \l_fingering_F_prop {#1} \l_tmpb_tl - \fingering_generate_recorder_fingering:V \l_tmpb_tl + \keys_set:nx {fingering} {trill={\l_fingering_tmpa_tl}} + \prop_get:NnN \l_fingering_F_prop {#1} \l_fingering_tmpb_tl + \fingering_generate_recorder_fingering:V \l_fingering_tmpb_tl \group_end:} {\msg_error:nn {recorder-fingering} {key-not-found}} } \NewDocumentCommand{\Ctrill}{m}{ - \prop_get:NnNTF \l_fingering_trill_C_prop {#1} \l_tmpa_tl + \prop_get:NnNTF \l_fingering_trill_C_prop {#1} \l_fingering_tmpa_tl {\group_begin: - \keys_set:nx {fingering} {trill={\l_tmpa_tl}} - \prop_get:NnN \l_fingering_C_prop {#1} \l_tmpb_tl - \fingering_generate_recorder_fingering:V \l_tmpb_tl + \keys_set:nx {fingering} {trill={\l_fingering_tmpa_tl}} + \prop_get:NnN \l_fingering_C_prop {#1} \l_fingering_tmpb_tl + \fingering_generate_recorder_fingering:V \l_fingering_tmpb_tl \group_end:} {\msg_error:nn {recorder-fingering} {key-not-found}} } \NewDocumentCommand{\Dtrill}{m}{ - \prop_get:NnNTF \l_fingering_trill_D_prop {#1} \l_tmpa_tl + \prop_get:NnNTF \l_fingering_trill_D_prop {#1} \l_fingering_tmpa_tl {\group_begin: - \keys_set:nx {fingering} {trill={\l_tmpa_tl}} - \prop_get:NnN \l_fingering_D_prop {#1} \l_tmpb_tl - \fingering_generate_recorder_fingering:V \l_tmpb_tl + \keys_set:nx {fingering} {trill={\l_fingering_tmpa_tl}} + \prop_get:NnN \l_fingering_D_prop {#1} \l_fingering_tmpb_tl + \fingering_generate_recorder_fingering:V \l_fingering_tmpb_tl \group_end:} {\msg_error:nn {recorder-fingering} {key-not-found}} } @@ -468,30 +474,30 @@ nodes={anchor=center} % Trill copy functions \cs_new_protected:Nn \fingering_F_trill_copy:nn { \clist_set:Nn \l_tmpa_clist {#2} - \clist_pop:NNTF \l_tmpa_clist \l_tmpa_tl - {\prop_put:Nnx \l_fingering_F_prop {#1}{\l_tmpa_tl}} + \clist_pop:NNTF \l_tmpa_clist \l_fingering_tmpa_tl + {\prop_put:Nnx \l_fingering_F_prop {#1}{\l_fingering_tmpa_tl}} {\show\notfound} - \clist_pop:NNTF \l_tmpa_clist \l_tmpa_tl - {\prop_put:Nnx \l_fingering_trill_F_prop {#1}{\l_tmpa_tl}} + \clist_pop:NNTF \l_tmpa_clist \l_fingering_tmpa_tl + {\prop_put:Nnx \l_fingering_trill_F_prop {#1}{\l_fingering_tmpa_tl}} {\show\notfound} } \cs_new_protected:Nn \fingering_C_trill_copy:nn { \clist_set:Nn \l_tmpa_clist {#2} - \clist_pop:NNTF \l_tmpa_clist \l_tmpa_tl - {\prop_put:Nnx \l_fingering_C_prop {#1}{\l_tmpa_tl}} + \clist_pop:NNTF \l_tmpa_clist \l_fingering_tmpa_tl + {\prop_put:Nnx \l_fingering_C_prop {#1}{\l_fingering_tmpa_tl}} {\show\notfound} - \clist_pop:NNTF \l_tmpa_clist \l_tmpa_tl - {\prop_put:Nnx \l_fingering_trill_C_prop {#1}{\l_tmpa_tl}} + \clist_pop:NNTF \l_tmpa_clist \l_fingering_tmpa_tl + {\prop_put:Nnx \l_fingering_trill_C_prop {#1}{\l_fingering_tmpa_tl}} {\show\notfound}} \cs_new_protected:Nn \fingering_D_trill_copy:nn { \clist_set:Nn \l_tmpa_clist {#2} - \clist_pop:NNTF \l_tmpa_clist \l_tmpa_tl - {\prop_put:Nnx \l_fingering_D_prop {#1}{\l_tmpa_tl}} + \clist_pop:NNTF \l_tmpa_clist \l_fingering_tmpa_tl + {\prop_put:Nnx \l_fingering_D_prop {#1}{\l_fingering_tmpa_tl}} {\show\notfound} - \clist_pop:NNTF \l_tmpa_clist \l_tmpa_tl - {\prop_put:Nnx \l_fingering_trill_D_prop {#1}{\l_tmpa_tl}} + \clist_pop:NNTF \l_tmpa_clist \l_fingering_tmpa_tl + {\prop_put:Nnx \l_fingering_trill_D_prop {#1}{\l_fingering_tmpa_tl}} {\show\notfound} } @@ -500,7 +506,7 @@ nodes={anchor=center} \NewDocumentCommand{\NewFfingering}{smm}{ \IfBooleanTF{#1} {\prop_put:Nnn \l_fingering_F_prop {#2} {#3}} - {\prop_get:NnNTF \l_fingering_F_prop {#2} \l_tmpa_tl + {\prop_get:NnNTF \l_fingering_F_prop {#2} \l_fingering_tmpa_tl {\msg_error:nn { recorder-fingering } { key-exists }} {\prop_put:Nnn \l_fingering_F_prop {#2} {#3}} }} @@ -508,7 +514,7 @@ nodes={anchor=center} \NewDocumentCommand{\NewCfingering}{smm}{ \IfBooleanTF{#1} {\prop_put:Nnn \l_fingering_C_prop {#2} {#3}} - {\prop_get:NnNTF \l_fingering_C_prop {#2} \l_tmpa_tl + {\prop_get:NnNTF \l_fingering_C_prop {#2} \l_fingering_tmpa_tl {\msg_error:nn { recorder-fingering } { key-exists }} {\prop_put:Nnn \l_fingering_C_prop {#2} {#3}} }} @@ -516,7 +522,7 @@ nodes={anchor=center} \NewDocumentCommand{\NewDfingering}{smm}{ \IfBooleanTF{#1} {\prop_put:Nnn \l_fingering_D_prop {#2} {#3}} - {\prop_get:NnNTF \l_fingering_D_prop {#2} \l_tmpa_tl + {\prop_get:NnNTF \l_fingering_D_prop {#2} \l_fingering_tmpa_tl {\msg_error:nn { recorder-fingering } { key-exists }} {\prop_put:Nnn \l_fingering_D_prop {#2} {#3}} }} @@ -528,7 +534,7 @@ nodes={anchor=center} \IfBooleanTF{#1} {\prop_put:Nnn \l_fingering_F_prop {#2} {#3} \prop_put:Nnn \l_fingering_trill_F_prop {#2} {#4}} - {\prop_get:NnNTF \l_fingering_F_prop {#2} \l_tmpa_tl + {\prop_get:NnNTF \l_fingering_F_prop {#2} \l_fingering_tmpa_tl {\msg_error:nn { recorder-fingering } { key-exists }} {\prop_put:Nnn \l_fingering_F_prop {#2} {#3} \prop_put:Nnn \l_fingering_trill_F_prop {#2} {#4}}} @@ -537,7 +543,7 @@ nodes={anchor=center} \IfBooleanTF{#1} {\prop_put:Nnn \l_fingering_C_prop {#2} {#3} \prop_put:Nnn \l_fingering_trill_C_prop {#2} {#4}} - {\prop_get:NnNTF \l_fingering_C_prop {#2} \l_tmpa_tl + {\prop_get:NnNTF \l_fingering_C_prop {#2} \l_fingering_tmpa_tl {\msg_error:nn { recorder-fingering } { key-exists }} {\prop_put:Nnn \l_fingering_C_prop {#2} {#3} \prop_put:Nnn \l_fingering_trill_C_prop {#2} {#4}}} @@ -546,7 +552,7 @@ nodes={anchor=center} \IfBooleanTF{#1} {\prop_put:Nnn \l_fingering_D_prop {#2} {#3} \prop_put:Nnn \l_fingering_trill_D_prop {#2} {#4}} - {\prop_get:NnNTF \l_fingering_D_prop {#2} \l_tmpa_tl + {\prop_get:NnNTF \l_fingering_D_prop {#2} \l_fingering_tmpa_tl {\msg_error:nn { recorder-fingering } { key-exists }} {\prop_put:Nnn \l_fingering_D_prop {#2} {#3} \prop_put:Nnn \l_fingering_trill_D_prop {#2} {#4}}} @@ -565,28 +571,28 @@ nodes={anchor=center} % fingering in the associated property list with the new key name and the existing key % fingering \cs_new_protected:Nn \fingering_copy_F:nn - {\prop_get:NnN \l_fingering_F_sharp_flat_prop {#1} \l_tmpa_tl - \prop_get:NoN \l_fingering_F_prop {\l_tmpa_tl} \l_tmpb_tl - \fingering_add_F_fingering:nV {#1} {\l_tmpb_tl}} + {\prop_get:NnN \l_fingering_F_sharp_flat_prop {#1} \l_fingering_tmpa_tl + \prop_get:NoN \l_fingering_F_prop {\l_fingering_tmpa_tl} \l_fingering_tmpb_tl + \fingering_add_F_fingering:nV {#1} {\l_fingering_tmpb_tl}} \cs_new_protected:Nn \fingering_copy_C:nn - {\prop_get:NnN \l_fingering_C_sharp_flat_prop {#1} \l_tmpa_tl - \prop_get:NoN \l_fingering_C_prop {\l_tmpa_tl} \l_tmpb_tl - \fingering_add_C_fingering:nV {#1} {\l_tmpb_tl}} + {\prop_get:NnN \l_fingering_C_sharp_flat_prop {#1} \l_fingering_tmpa_tl + \prop_get:NoN \l_fingering_C_prop {\l_fingering_tmpa_tl} \l_fingering_tmpb_tl + \fingering_add_C_fingering:nV {#1} {\l_fingering_tmpb_tl}} \cs_new_protected:Nn \fingering_copy_D:nn - {\prop_get:NnN \l_fingering_D_sharp_flat_prop {#1} \l_tmpa_tl - \prop_get:NoN \l_fingering_D_prop {\l_tmpa_tl} \l_tmpb_tl - \fingering_add_D_fingering:nV {#1} {\l_tmpb_tl}} + {\prop_get:NnN \l_fingering_D_sharp_flat_prop {#1} \l_fingering_tmpa_tl + \prop_get:NoN \l_fingering_D_prop {\l_fingering_tmpa_tl} \l_fingering_tmpb_tl + \fingering_add_D_fingering:nV {#1} {\l_fingering_tmpb_tl}} \NewDocumentCommand{\debug}{O{f}m}{ \str_case:nn {#1}{ - {f}{\prop_get:NnNTF \l_fingering_F_prop {#2} \l_tmpa_tl + {f}{\prop_get:NnNTF \l_fingering_F_prop {#2} \l_fingering_tmpa_tl {}{\msg_error:nn { recorder-fingering } { key-not-found }} - \l_tmpa_tl} - {c}{\prop_get:NnNTF \l_fingering_C_prop {#2} \l_tmpa_tl + \l_fingering_tmpa_tl} + {c}{\prop_get:NnNTF \l_fingering_C_prop {#2} \l_fingering_tmpa_tl {}{\msg_error:nn { recorder-fingering } { key-not-found }} - \l_tmpa_tl + \l_fingering_tmpa_tl } } } diff --git a/macros/latex/contrib/recorder-fingering/recorder-fingering.tex b/macros/latex/contrib/recorder-fingering/recorder-fingering.tex index 99d0f4d89f..9dc25632aa 100644 --- a/macros/latex/contrib/recorder-fingering/recorder-fingering.tex +++ b/macros/latex/contrib/recorder-fingering/recorder-fingering.tex @@ -31,7 +31,7 @@ \DefineShortVerb{\|} \title{The \texttt{recorder-fingering} package} \author{Alan Munn\\amunn@msu.edu} -\date{Version 1.3\\July 17, 2023} +\date{Version 1.3b\\October 17, 2023} \lstset{% basicstyle=\ttfamily\small, |