diff options
author | Norbert Preining <norbert@preining.info> | 2024-05-12 03:01:16 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-05-12 03:01:16 +0000 |
commit | 0140cc7eb697ba5925de5312dd0419e7717acca9 (patch) | |
tree | cb7751d3c8cda806166e8a6d17f1a901bdf760ac /macros | |
parent | f04305edb464261c7040b9ba9c1ebf0747536190 (diff) |
CTAN sync 202405120301
Diffstat (limited to 'macros')
72 files changed, 906 insertions, 1101 deletions
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf Binary files differindex b2c61b2f61..000537a0d4 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 deleted file mode 100644 index 34da7d98f8..0000000000 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex +++ /dev/null @@ -1,314 +0,0 @@ -% !TeX TXS-program:compile = txs:///arara -% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} -% arara: pythontex: {rerun: always} -% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} -% 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{3.03d} -\def\PLdate{20 avril 2024} -\usepackage{amsfonts} -\usepackage{ProfLycee} -\useproflyclib{piton,minted,pythontex,ecritures,espace} -\usepackage[math-style=french]{fourier-otf} -\usepackage{mathrsfs}%pour mathscr -\usepackage{awesomebox} -\usepackage[lua]{tkz-euclide} -\usepackage{tkz-tab} -\tikzstyle{every picture}+=[remember picture] -\usetikzlibrary{hobby} -\usepackage[group-minimum-digits=4]{siunitx} -\sisetup{locale=FR} -\usepackage{enumitem} -\usepackage{fancyvrb} -\usepackage{fancyhdr} -\usepackage{tabularray} -\usepackage{multicol} -\DeclareMathSymbol{;}\mathbin{operators}{'73} %espacement avec ; -%fancy -\fancyhf{} -\renewcommand{\headrulewidth}{0pt} -\lfoot{\sffamily \small [ProfLycee]} -\cfoot{\sffamily \small - \thepage{} -} -\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} - -\usepackage{graphics} -\usepackage{hologo} -\providecommand\tikzlogo{Ti\textit{k}Z} -\providecommand\TeXLive{\TeX{}Live\xspace} -\providecommand\PSTricks{\textsf{PSTricks}\xspace} -\let\pstricks\PSTricks -\let\TikZ\tikzlogo -\newcommand\TableauDocumentation{% - \begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\huge\sffamily}} - {\LaTeX} & {\hologo{pdfLaTeX}} & {\hologo{LuaLaTeX}} & {\TikZ} & {\TeXLive} & {\hologo{MiKTeX}} \\ - \end{tblr} -} -\usepackage{simplekv} -\usepackage{menukeys} -\let\tab\relax -\usepackage{tabto} -\usepackage{pgf,pgfplots} -\pgfplotsset{compat=newest,xlabel near ticks,ylabel near ticks} -\usepackage{listofitems} -\usepackage{xintexpr} -\usepackage{codehigh} -\usepackage{scontents} -\usepackage{hyperref} -\urlstyle{same} -\hypersetup{pdfborder=0 0 0} -\usepackage{geometry} -\geometry{margin=1.5cm} -\usepackage{babel} -\usepackage{newverbs} - -\input{ProfLycee-doc-macropreamb.tex} - -\input{ProfLycee-doc-pagegarde.tex} - -\newpage - -\phantomsection -\hypertarget{matoc}{} - -\tableofcontents - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Introduction} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-introduction.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Liste des commandes} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-listecommandes.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Écritures mathématiques} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-ecritures.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Outils pour l'analyse} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-outilsanalyse.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Outils graphiques} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-outilsgraphiques.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Présentation de codes} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-prescodes.tex} - -\pagebreak - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Outils pour la géométrie} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-outilsgeom.tex} - -\pagebreak - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Outils pour la géométrie analytique} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-outilsgeomanalyt.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Outils pour les statistiques} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-stats.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Outils pour les probabilités} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-probas.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Outils pour l'arithmétique} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-arithm.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Écritures, simplifications} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-simplif.tex} - -\pagebreak - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Jeux et récréations} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-jeuxrecreat.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Compétences en lycée} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-competences.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Examens} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-exams.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Projets, en test} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-projets.tex} - -\newpage - -\phantom{t}\par\vfill\par -\begin{PART} - \begin{center} - \Huge\MakeUppercase{Historique} - \end{center} -\end{PART} -\par\vfill\par\phantom{t} - -\newpage - -\input{ProfLycee-doc-historique.tex} - -\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf Binary files differindex f8e331e0a6..5e6698109f 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex deleted file mode 100644 index 03648eea0c..0000000000 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex +++ /dev/null @@ -1,427 +0,0 @@ -% !TeX TXS-program:compile = txs:///arara -% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} -% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') - -\documentclass[french,a4paper,10pt]{article} -\def\PLver{3.03c} -\usepackage[margin=1.5cm]{geometry} -\usepackage{ProfLycee} -\useproflyclib{piton} -\usepackage[executable=python,ignoreerrors]{pyluatex} -\usepackage{babel} -\sisetup{locale=FR,output-decimal-marker={,},group-minimum-digits=4} -\usepackage{codehigh} - -\begin{document} - -\part*{ProfLycee (\PLver), Piton et Pyluatex} - -\section{Code \og Piton \fg{}, indépendant de Pyluatex} - -\subsection{Préambule basique} - -{\small \begin{codehigh} -\documentclass[french,a4paper,10pt]{article} -\usepackage{ProfLycee} -\useproflyclib{piton} % lua -\end{codehigh}} - -\subsection{Exemples} - -{\small \begin{codehigh} -%Sortie par défaut -\begin{CodePiton}{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} -\end{codehigh}} - -\begin{CodePiton}{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} - -{\small \begin{codehigh} -%Sortie avec style Classique, Largeur=10cm -\begin{CodePiton}[Largeur=10cm]{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} -\end{codehigh}} - -\begin{CodePiton}[Largeur=10cm]{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} - -\pagebreak - -{\small \begin{codehigh} -%Sortie avec Style=Moderne, Sans Titre, Largeur=10cm, centré -\begin{CodePiton}[Style=Moderne,Largeur=10cm,BarreTitre=false,Alignement=center]{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} -\end{codehigh}} - -\begin{CodePiton}[Style=Moderne,Largeur=10cm,BarreTitre=false,Alignement=center]{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} - -{\small \begin{codehigh} -%Sortie avec Style=Classique, Largeur=0.5\linewidth, aligné à droite, sans Cadre, avec Filigrane -\begin{CodePiton}% - [Largeur=0.5\linewidth,Cadre=false,Alignement=flush right,Filigrane,Titre={Script}]{} -#environnement piton avec numéros de ligne, pleine largeur, style moderne -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} -\end{codehigh}} - -\begin{CodePiton}[Largeur=0.5\linewidth,Cadre=false,Alignement=flush right,Filigrane,Titre={Script}]{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} - -{\small \begin{codehigh} -%Sortie Moderne, Largeur=11cm, avec Filigrane, aligné à gauche, sans ligne -\begin{CodePiton}[Style=Moderne,Largeur=11cm,Filigrane,Alignement=flush left,Lignes=false]{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} -\end{codehigh}} - -\begin{CodePiton}[Style=Moderne,Largeur=11cm,Filigrane,Alignement=flush left,Lignes=false]{} -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{CodePiton} - -\pagebreak - -\section{Console \og Piton \fg{}, dépendant de Pyluatex} - -\subsection{Préambule, avec le package pyluatex} - -{\small \begin{codehigh} -\documentclass[french,a4paper,10pt]{article} -\usepackage{ProfLycee} -\useproflyclib{piton} -\usepackage[executable=python]{pyluatex} % lua + shell-escape -\end{codehigh}} - -\subsection{Commande} - -{\small \begin{codehigh} -\begin{ConsolePiton}[Options piton]<Clés>{Options tcbox} -... -... -\end{ConsolePiton} -\end{codehigh}} - -\medskip - -Les clés, à placer entre \texttt{<...>}, sont : - -\begin{itemize} - \item \textbf{\textsf{$\langle$Logo$\rangle$}} pour afficher un petit logo dans les \textit{titres} de la console REPL ; \hfill{}défaut : \textbf{\textsf{$\langle$true$\rangle$}} - \item \textbf{\textsf{$\langle$Largeur$\rangle$}} pour spécifier la largeur de la console REPL ; \hfill{}défaut : \textbf{\textsf{$\langle$\textbackslash{}linewidth$\rangle$}} - \item \textbf{\textsf{$\langle$Alignement$\rangle$}} pour spécifier l'alignement de la console REPL.\hfill{}défaut : \textbf{\textsf{$\langle$flush left$\rangle$}} -\end{itemize} - -\subsection{Exemples} - -{\small \begin{codehigh} -%Déclaration d'une fonction python + librairie random pour utilisation ultérieure -\begin{python} -from random import randint - -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{python} -\end{codehigh}} - -\begin{python} -from random import randint - -def valeur_absolue(x) : - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0 : - return x - else: - return -x -\end{python} - -{\small \begin{codehigh} -\begin{ConsolePiton}{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -\end{ConsolePiton} -\end{codehigh}} - -\begin{ConsolePiton}{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -\end{ConsolePiton} - -\pagebreak - -{\small \begin{codehigh} -\begin{ConsolePiton}<Largeur=11cm,Alignement=center,Logo=false>{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -liste = [randint(1,20) for i in range(10)] -print(liste) -print(max(liste), min(liste), sum(liste)) -\end{ConsolePiton} -\end{codehigh}} - -\begin{ConsolePiton}<Largeur=11cm,Alignement=center,Logo=false>{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -liste = [randint(1,20) for i in range(10)] -print(liste) -print(max(liste), min(liste), sum(liste)) -\end{ConsolePiton} - -{\small \begin{codehigh} -\begin{ConsolePiton}<Largeur=10cm,Alignement=center>{} -[i**2 for i in range(50)] -\end{ConsolePiton} -\end{codehigh}} - -\begin{ConsolePiton}<Largeur=10cm,Alignement=center>{} -[i**2 for i in range(50)] -\end{ConsolePiton} - -\pagebreak - -\section{Présentation, et exécution, comme avec Thonny} - -\subsection{Préambule, avec le package pyluatex} - -{\small \begin{codehigh} -\documentclass[french,a4paper,10pt]{article} -\usepackage{ProfLycee} -\useproflyclib{piton} -\usepackage[executable=python]{pyluatex} % lua + shell-escape -\end{codehigh}} - -\subsection{Commandes} - -{\small \begin{codehigh} -\begin{PitonThonnyEditor}<clé>[options tcbox]{largeur} -... -\end{PitonThonnyEditor} -\end{codehigh}} - -\medskip - -La clé, à placer entre \texttt{<...>}, est : - -\begin{itemize} - \item la clé \textbf{\textsf{$\langle$Gobble$\rangle$}} pour spécifier des options liées au \textsf{gobble}, parmi \textbf{\textsf{$\langle$nb/auto$\rangle$}} ; - - \hfill{}à adapter en fonction des situations (!) - \item la clé \textbf{\textsf{$\langle$NomFichier$\rangle$}} pour afficher le nom du fichier dans le cartouche \textit{éditeur}. - - \hfill{}défaut : \textbf{\textsf{$\langle$script.py$\rangle$}} -\end{itemize} - -{\small \begin{codehigh} -\begin{PitonThonnyConsole}<clés>[options tcbox]{largeur} -... -\end{PitonThonnyConsole} -\end{codehigh}} - -\medskip - -Les clés, à placer entre \texttt{<...>}, sont : - -\begin{itemize} - \item la clé \textbf{\textsf{$\langle$NomConsole$\rangle$}} pour afficher le nom de la \textit{console} ; \hfill{}défaut \textbf{\textsf{$\langle$console$\rangle$}} - \item la clé \textbf{\textsf{$\langle$IntroConsole$\rangle$}} pour afficher le message d'accueil de la console. -\end{itemize} - -\subsection{Exemples} - -{\small\begin{codehigh} -\begin{python} -from math import gcd - -def est_duffy(n) : - nb_div, somme_div = 0, 0 - for i in range(1, n+1) : - if n % i == 0 : - nb_div += 1 - somme_div += i - if gcd(somme_div, n) == 1 : - return True - else : - return False - -\end{python} -\end{codehigh}} - -{\small\begin{codehigh} -\begin{PitonThonnyEditor}<NomFichier=tpcapytale.py>{12cm} -#PROJET CAPYTALE -from math import gcd - -def est_duffy(n) : - nb_div = 0 - somme_div = 0 - for i in range(1, n+1) : - if n % i == 0 : - nb_div += 1 - somme_div += i - if gcd(somme_div, n) == 1 : - return True - else : - return False -\end{PitonThonnyEditor} -\end{codehigh}} - -\begin{PitonThonnyEditor}<NomFichier=tpcapytale.py>{12cm} -#PROJET CAPYTALE -from math import gcd - -def est_duffy(n) : - nb_div = 0 - somme_div = 0 - for i in range(1, n+1) : - if n % i == 0 : - nb_div += 1 - somme_div += i - if gcd(somme_div, n) == 1 : - return True - else : - return False -\end{PitonThonnyEditor} - -{\small\begin{codehigh} -\begin{PitonThonnyConsole}<IntroConsole={python 3.8.10}>{12cm} -#Run tpcapytale.py -est_duffy(6) -est_duffy(13) -est_duffy(265) - -from random import randint -nb = randint(1,100000) -nb, est_duffy(nb) -\end{PitonThonnyConsole} -\end{codehigh}} - -\begin{python} -from math import gcd - -def est_duffy(n) : - nb_div, somme_div = 0, 0 - for i in range(1, n+1) : - if n % i == 0 : - nb_div += 1 - somme_div += i - if gcd(somme_div, n) == 1 : - return True - else : - return False - -\end{python} -\begin{PitonThonnyConsole}<IntroConsole={python 3.8.10}>{12cm} -#Run tpcapytale.py -est_duffy(6) -est_duffy(13) -est_duffy(265) - -from random import randint -nb = randint(1,100000) -nb, est_duffy(nb) -\end{PitonThonnyConsole} - -{\small\begin{codehigh} -\begin{PitonThonnyConsole}{8cm} -[i**2 for i in range(50)] -\end{PitonThonnyConsole} -\end{codehigh}} - -\begin{PitonThonnyConsole}{8cm} -[i**2 for i in range(50)] -\end{PitonThonnyConsole} - -\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex deleted file mode 100644 index e418300cae..0000000000 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex +++ /dev/null @@ -1,242 +0,0 @@ -% !TeX TXS-program:compile = txs:///arara -% arara: lualatex: {shell: no, synctex: yes, interaction: batchmode} -% arara: pythontex: {rerun: always} if found('pytxcode', 'PYTHONTEX#py') -% arara: lualatex: {shell: no, synctex: yes, interaction: batchmode} if found('pytxcode', 'PYTHONTEX#py') -% arara: lualatex: {shell: no, synctex: yes, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') - -\documentclass[french,a4paper,10pt]{article} -\def\PLver{2.7.5} -\usepackage[margin=1.5cm]{geometry} -\usepackage{ProfLycee} -\useproflyclib{pythontex} -\usepackage{babel} -\sisetup{locale=FR,output-decimal-marker={,},group-minimum-digits=4} -\usepackage{codehigh} - -\begin{document} - -\part*{ProfLycee (\PLver), Pythontex} - -\section{Code \og Pythontex \fg{}} - -\subsection{Préambule basique} - -{\small \begin{codehigh} -\documentclass[french,a4paper,10pt]{article} -\usepackage{ProfLycee} -\useproflyclib{pythontex} % compilation spécifique -\end{codehigh}} - -\subsection{Exemples} - -{\small \begin{codehigh} -%Sortie par défaut -\begin{CodePythontex}{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontex} -\end{codehigh}} - -\begin{CodePythontex}{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x - -#bla -#bla -#bla -\end{CodePythontex} - -{\small \begin{codehigh} -%Sortie avec Style=Classique, Largeur=10cm, centré -\begin{CodePythontexAlt}[Largeur=10cm,Centre,PremLigne=10]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontexAlt} -\end{codehigh}} - -\begin{CodePythontexAlt}[Largeur=10cm,Centre,PremLigne=10]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x - -#bla -#bla -#bla -\end{CodePythontexAlt} - -\pagebreak - -{\small \begin{codehigh} -%Sortie avec Style=Classique, Largeur=10cm -\begin{CodePythontexAlt}[Largeur=10cm]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontexAlt} -\end{codehigh}} - -\begin{CodePythontexAlt}[Largeur=10cm]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontexAlt} - -{\small \begin{codehigh} -%Sortie avec Style=Classique, Largeur=0.5\linewidth, centré, sans numéro -\begin{CodePythontexAlt}[Largeur=0.5\linewidth,Centre,Lignes=false]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontexAlt} -\end{codehigh}} - -\begin{CodePythontexAlt}[Largeur=0.5\linewidth,Centre,Lignes=false]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontexAlt} - -{\small \begin{codehigh} -%Sortie Moderne, Largeur=11cm, sans ligne -\begin{CodePythontex}[Largeur=11cm,Lignes=false]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontex} -\end{codehigh}} - -\begin{CodePythontex}[Largeur=11cm,Lignes=false]{} -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x -\end{CodePythontex} - -\pagebreak - -\section{Console \og Pythontex \fg{}} - -{\small \begin{codehigh} -%Déclaration d'une fonction python + librairie random pour utilisation ultérieure -\begin{pyconcode} -from random import randint - -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x - -\end{pyconcode} -\end{codehigh}} - -\begin{pyconcode} -from random import randint - -def valeur_absolue(x): - "Renvoie la valeur absolue de x" - #le petit test qui va bien - if x > 0: - return x - else: - return -x - -\end{pyconcode} - -{\small \begin{codehigh} -\begin{ConsolePythontex}{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -\end{ConsolePythontex} -\end{codehigh}} - -\begin{ConsolePythontex}{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -\end{ConsolePythontex} - -\pagebreak - -{\small \begin{codehigh} -\begin{ConsolePythontex}[Largeur=12cm,Centre]{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -liste = [randint(1,20) for i in range(10)] -print(liste) -print(max(liste), min(liste), sum(liste)) -\end{ConsolePythontex} -\end{codehigh}} - -\begin{ConsolePythontex}[Largeur=12cm,Centre]{} -1+1 -2**10 -valeur_absolue(-3) -valeur_absolue(0) -valeur_absolue(5) -print(f"La valeur absolue de 5 est {valeur_absolue(5)}") -print(f"La valeur absolue de -4 est {valeur_absolue(-4)}") -liste = [randint(1,20) for i in range(10)] -print(liste) -print(max(liste), min(liste), sum(liste)) -\end{ConsolePythontex} - -\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty index 25a212e65a..f622238309 100644 --- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty +++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty @@ -3,7 +3,9 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfLycee}[2024/04/20 3.03d Aide pour l'utilisation de LaTeX en lycee] +\ProvidesPackage{ProfLycee}[2024/05/09 3.04b Aide pour l'utilisation de LaTeX en lycee] +% 3.04b Travail sur la loi binomiale + Ajout de clés pour les environnements graphiques +% 3.04a Améliorations de la partie graphiques tikz (intégrales, axes) + Factorielle % 3.03d Page de garde type BAC % 3.03c Correction du fonctionnement gobble avec piton + compatibilité luamplib PfC % 3.03b Compétences Maths Lycées + \pflnum pour num+xint :-) + correction de bugs (div eucl) diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex index 19d13ab932..4d4a50eca3 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex @@ -85,8 +85,18 @@ \newcommand\NbAlea[4][0]{%entier ou décimal \xintifboolexpr{#1 == 0}% - {\xdef#4{\fpeval{randint(#2,#3)}}}% - {\xdef#4{\fpeval{round(randint(#2,#3)+rand(),#1)}}}% + {% + \xdef#4{\fpeval{randint(#2,#3)}}% + }% + {% + \xintifboolexpr{(#3-#2) == 1}% + {% + \xdef#4{\fpeval{round(#2+rand(),#1)}}% + }% + {% + \xdef#4{\fpeval{round(randint(#2,#3)+rand(),#1)}}% + }% + }% } \newcommand\VarNbAlea[2]{% \xdef#1{\fpeval{#2}}% diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex index 5e1f246ab3..ade88434c2 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex @@ -574,6 +574,36 @@ }% } +%===intégrale 'brute' +\NewDocumentCommand\CalcIntegrale{ s O{} D<>{50} m m m }{% + \xintdeffloatfunc varfct(x) := #4 ;% + \def\TmpNmU{\xinteval{(#3)-1}}% + \def\TmpRes{\xintfloateval{(#6-#5)/(6*(#3))*(2*add(varfct(#5+i*(#6-#5)/(#3)),i=1..\TmpNmU)+varfct(#5)+varfct(#6)+4*add(varfct(#5+(i+0.5)*(#6-#5)/(#3)), i=0..\TmpNmU))}}% + \IfStrEq{#2}{}% + {% + \IfBooleanTF{#1}{\num{\TmpRes}}{\TmpRes}% + }% + {% + \IfBooleanTF{#1}{\num{\xintfloateval{round(\TmpRes,#2)}}}{\xintfloateval{round(\TmpRes,#2)}}% + }% + \relax +} + +%===intégrale 'brute' +\NewDocumentCommand\ValeurMoyenneIntg{ s O{} D<>{50} m m m }{% + \xintdeffloatfunc varfct(x) := #4 ;% + \def\TmpNmU{\xinteval{(#3)-1}}% + \def\TmpRes{\xintfloateval{(1)/(6*(#3))*(2*add(varfct(#5+i*(#6-#5)/(#3)),i=1..\TmpNmU)+varfct(#5)+varfct(#6)+4*add(varfct(#5+(i+0.5)*(#6-#5)/(#3)), i=0..\TmpNmU))}}% + \IfStrEq{#2}{}% + {% + \IfBooleanTF{#1}{\num{\TmpRes}}{\TmpRes}% + }% + {% + \IfBooleanTF{#1}{\num{\xintfloateval{round(\TmpRes,#2)}}}{\xintfloateval{round(\TmpRes,#2)}}% + }% + \relax +} + %==intégrale tikz== \defKV[methodeintegrtkz]{% diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex index db3f2bc8ac..a021fea937 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex @@ -1512,4 +1512,394 @@ {}% } +%====FACTORIELLE +\defKV[calcfactorielle]{ChSignif=\def\factochfsign{#1},Sens=\def\factochfsens{#1}} +\setKVdefault[calcfactorielle]{% + Complet=false,% + Enonce=false,% + Partiel=false,% + Grand=false,% + ChSignif=9,% + Espace=\mkern1.5mu\relax,% + Sens=m +} + +\NewDocumentCommand\Factorielle{ s O{} m }{% + \restoreKV[calcfactorielle]% + \setKV[calcfactorielle]{#2}% + \ifboolKV[calcfactorielle]{Grand}% + {% + \xdef\tmpres{\xintfloateval[\factochfsign]{factorial(#3)}}% + }% + {% + \xdef\tmpres{\xinteval{factorial(#3)}}% + }% + \ensuremath{% + \ifboolKV[calcfactorielle]{Enonce}% + {% + \IfBooleanTF{#1}{#3\useKV[calcfactorielle]{Espace}!}{\num{#3}\useKV[calcfactorielle]{Espace}!}= + }% + {}% + \ifboolKV[calcfactorielle]{Partiel}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEqCase{\factochfsens}{% + {m}{1 \times 2 \times \ldots \times \xinteval{#3-1} \times #3 \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + {d}{#3 \times \xinteval{#3-1} \times \ldots \times 2 \times 1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + }% + }% + {% + \IfStrEqCase{\factochfsens}{% + {m}{1 \times 2 \times \ldots \times \num{\xinteval{#3-1}} \times \num{#3} \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + {d}{\num{#3} \times \num{\xinteval{#3-1}} \times \ldots \times 2 \times 1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + }% + }% + }% + {}% + \ifboolKV[calcfactorielle]{Complet}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEq{\factochfsens}{m}% + {% + 1 \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\times ##1} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{2}}\do{##1 \times} 1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + {% + \IfStrEq{\factochfsens}{m}% + {% + 1 \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\times \num{##1}} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{2}}\do{\num{##1} \times} 1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + }% + {}% + \IfBooleanTF{#1}% + {% + \tmpres% + }% + {% + \ifboolKV[calcfactorielle]{Grand}% + {% + \num[scientific-notation=true]{\tmpres}% + }% + {% + \num{\tmpres}% + }% + }% + }% +} + +\NewDocumentCommand\Primorielle{ s O{} m }{% + \restoreKV[calcfactorielle]% + \setKV[calcfactorielle]{#2}% + \def\tmpres{1}% + \xintFor* ##1 in {\xintSeq{1}{#3}}\do{% + \pgfmathisprime{##1}\ifnum\pgfmathresult=1\xdef\tmpres{\xinteval{\tmpres*##1}}\fi% + }% + \ifboolKV[calcfactorielle]{Grand}% + {% + \xdef\tmpres{\xintfloateval[\factochfsign]{\tmpres}}% + }% + {}% + \ensuremath{% + \ifboolKV[calcfactorielle]{Enonce}% + {% + \IfBooleanTF{#1}{#3\#}{\num{#3}\#}= + }% + {}% + \ifboolKV[calcfactorielle]{Complet}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEq{\factochfsens}{m}% + {% + 2 \xintFor* ##1 in {\xintSeq{3}{#3}}\do{\pgfmathisprime{##1}\ifnum\pgfmathresult=1\times##1\fi} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{3}}\do{\pgfmathisprime{##1}\ifnum\pgfmathresult=1##1\times\fi} 2 \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + {% + \IfStrEq{\factochfsens}{m}% + {% + 2 \xintFor* ##1 in {\xintSeq{3}{#3}}\do{\pgfmathisprime{##1}\ifnum\pgfmathresult=1\times\num{##1}\fi} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{3}}\do{\pgfmathisprime{##1}\ifnum\pgfmathresult=1\num{##1}\times\fi} 2 \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + }% + {}% + \IfBooleanTF{#1}% + {% + \tmpres% + }% + {% + \ifboolKV[calcfactorielle]{Grand}% + {% + \num[scientific-notation=true]{\tmpres}% + }% + {% + \num{\tmpres}% + }% + }% + }% +} + +\NewDocumentCommand\DoubleFactorielle{ s O{} m }{% + \restoreKV[calcfactorielle]% + \setKV[calcfactorielle]{#2}% + \def\tmpres{1}% + \xintFor* ##1 in {\xintSeq{1}{#3}}\do{% + \xintifboolexpr{\xintiiOdd{#3} == \xintiiOdd{##1} 'or' \xintiiEven{#3} == \xintiiEven{##1}}% + {% + \xdef\tmpres{\xinteval{\tmpres*##1}}% + }% + {}% + }% + \ifboolKV[calcfactorielle]{Grand}% + {% + \xdef\tmpres{\xintfloateval[\factochfsign]{\tmpres}}% + }% + {}% + \ensuremath{% + \ifboolKV[calcfactorielle]{Enonce}% + {% + \IfBooleanTF{#1}{#3\useKV[calcfactorielle]{Espace}!!}{\num{#3}\useKV[calcfactorielle]{Espace}!!}= + }% + {}% + \ifboolKV[calcfactorielle]{Complet}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEq{\factochfsens}{m}% + {% + \xintifboolexpr{\xintiiOdd{#3} == 1}% + {% + 1 \xintFor* ##1 in {\xintSeq{3}{#3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} == 1}{\times##1}{}% + }% + }% + {% + 2 \xintFor* ##1 in {\xintSeq{3}{#3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} != 1}{\times##1}{}% + }% + }% + \ifboolKV[calcfactorielle]{Grand}{\approx}{=}% + }% + {% + \xintifboolexpr{\xintiiOdd{#3} == 1}% + {% + \xintFor* ##1 in {\xintSeq{#3}{3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} == 1}{##1\times}{}% + }1% + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} != 1}{##1\times}{}% + }2% + }% + \ifboolKV[calcfactorielle]{Grand}{\approx}{=}% + }% + }% + {% + \IfStrEq{\factochfsens}{m}% + {% + \xintifboolexpr{\xintiiOdd{#3} == 1}% + {% + 1 \xintFor* ##1 in {\xintSeq{3}{#3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} == 1}{\times\num{##1}}{}% + }% + }% + {% + 2 \xintFor* ##1 in {\xintSeq{3}{#3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} != 1}{\times\num{##1}}{}% + }% + }% + \ifboolKV[calcfactorielle]{Grand}{\approx}{=}% + }% + {% + \xintifboolexpr{\xintiiOdd{#3} == 1}% + {% + \xintFor* ##1 in {\xintSeq{#3}{3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} == 1}{\num{##1}\times}{}% + }1% + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{3}}\do{% + \xintifboolexpr{\xintiiOdd{##1} != 1}{\num{##1}\times}{}% + }2% + }% + \ifboolKV[calcfactorielle]{Grand}{\approx}{=}% + }% + }% + }% + {}% + \IfBooleanTF{#1}% + {% + \tmpres% + }% + {% + \ifboolKV[calcfactorielle]{Grand}% + {% + \num[scientific-notation=true]{\tmpres}% + }% + {% + \num{\tmpres}% + }% + }% + }% +} + +\NewDocumentCommand\HyperFactorielle{ s O{} m }{% + \restoreKV[calcfactorielle]% + \setKV[calcfactorielle]{#2}% + \def\tmpres{1}% + \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\xdef\tmpres{\xinteval{\tmpres*(##1)^(##1)}}}% + \ifboolKV[calcfactorielle]{Grand}% + {% + \xdef\tmpres{\xintfloateval[\factochfsign]{\tmpres}}% + }% + {}% + \ensuremath{% + \ifboolKV[calcfactorielle]{Enonce}% + {% + \IfBooleanTF{#1}{\text{H}(#3)}{\text{H}(\rm{#3})}= + }% + {}% + \ifboolKV[calcfactorielle]{Partiel}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEqCase{\factochfsens}{% + {m}{1^1 \times 2^2 \times \ldots \times \xinteval{#3-1}^{\xinteval{#3-1}} \times #3^{#3} \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + {d}{#3^{#3} \times \xinteval{#3-1}^{\xinteval{#3-1}} \times \ldots \times 2^2 \times 1^1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + }% + }% + {% + \IfStrEqCase{\factochfsens}{% + {m}{1 \times 2 \times \ldots \times \num{\xinteval{#3-1}}^{\num{\xinteval{#3-1}}} \times \num{#3}^{\num{#3}} \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + {d}{\num{#3}^{\num{#3}} \times \num{\xinteval{#3-1}}^{\num{\xinteval{#3-1}}} \times \ldots \times 2^2 \times 1^1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + }% + }% + }% + {}% + \ifboolKV[calcfactorielle]{Complet}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEq{\factochfsens}{m}% + {% + 1^1 \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\times ##1^{##1}} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{2}}\do{##1^{##1} \times} 1^1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + {% + \IfStrEq{\factochfsens}{m}% + {% + 1^1 \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\times \num{##1}^{\num{##1}}} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{2}}\do{\num{##1}^{\num{##1}} \times} 1^1 \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + }% + {}% + \IfBooleanTF{#1}% + {% + \tmpres% + }% + {% + \ifboolKV[calcfactorielle]{Grand}% + {% + \num[scientific-notation=true]{\tmpres}% + }% + {% + \num{\tmpres}% + }% + }% + }% +} + +\NewDocumentCommand\SuperFactorielle{ s O{} m }{% + \restoreKV[calcfactorielle]% + \setKV[calcfactorielle]{#2}% + \def\tmpres{1}% + \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\xdef\tmpres{\xinteval{\tmpres*factorial(##1)}}}% + \ifboolKV[calcfactorielle]{Grand}% + {% + \xdef\tmpres{\xintfloateval[\factochfsign]{\tmpres}}% + }% + {}% + \ensuremath{% + \ifboolKV[calcfactorielle]{Enonce}% + {% + \IfBooleanTF{#1}{\text{sf}(#3)}{\text{sf}(\num{#3})}= + }% + {}% + \ifboolKV[calcfactorielle]{Partiel}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEqCase{\factochfsens}{% + {m}{1\useKV[calcfactorielle]{Espace}! \times 2\useKV[calcfactorielle]{Espace}! \times \ldots \times \xinteval{#3-1}\useKV[calcfactorielle]{Espace}! \times #3\useKV[calcfactorielle]{Espace}! \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + {d}{#3\useKV[calcfactorielle]{Espace}! \times \xinteval{#3-1}\useKV[calcfactorielle]{Espace}! \times \ldots \times 2\useKV[calcfactorielle]{Espace}! \times 1\useKV[calcfactorielle]{Espace}! \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + }% + }% + {% + \IfStrEqCase{\factochfsens}{% + {m}{1\useKV[calcfactorielle]{Espace}! \times 2\useKV[calcfactorielle]{Espace}! \times \ldots \times \num{\xinteval{#3-1}}\useKV[calcfactorielle]{Espace}! \times \num{#3}\useKV[calcfactorielle]{Espace}! \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + {d}{\num{#3}\useKV[calcfactorielle]{Espace}! \times \num{\xinteval{#3-1}}\useKV[calcfactorielle]{Espace}! \times \ldots \times 2\useKV[calcfactorielle]{Espace}! \times 1\useKV[calcfactorielle]{Espace}! \ifboolKV[calcfactorielle]{Grand}{\approx}{=}}% + }% + }% + }% + {}% + \ifboolKV[calcfactorielle]{Complet}% + {% + \IfBooleanTF{#1}% + {% + \IfStrEq{\factochfsens}{m}% + {% + 1\useKV[calcfactorielle]{Espace}! \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\times ##1\useKV[calcfactorielle]{Espace}!} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{2}}\do{##1\useKV[calcfactorielle]{Espace}! \times} 1\useKV[calcfactorielle]{Espace}! \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + {% + \IfStrEq{\factochfsens}{m}% + {% + 1\useKV[calcfactorielle]{Espace}! \xintFor* ##1 in {\xintSeq{2}{#3}}\do{\times \num{##1}\useKV[calcfactorielle]{Espace}!} \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + {% + \xintFor* ##1 in {\xintSeq{#3}{2}}\do{\num{##1}\useKV[calcfactorielle]{Espace}! \times} 1\useKV[calcfactorielle]{Espace}! \ifboolKV[calcfactorielle]{Grand}{\approx}{=} + }% + }% + }% + {}% + \IfBooleanTF{#1}% + {% + \tmpres% + }% + {% + \ifboolKV[calcfactorielle]{Grand}% + {% + \num[scientific-notation=true]{\tmpres}% + }% + {% + \num{\tmpres}% + }% + }% + }% +} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex index 22775038e7..74a3e827ed 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex @@ -36,7 +36,7 @@ } \NewDocumentCommand\PtsDiscontinuite{ O{} m }{% - \useKVdefault[ptdiscont] + \restoreKV[ptdiscont] \setKV[ptdiscont]{#1}% \setsepchar[.]{§./}% \readlist*\SPLlisteDiscont{#2}% @@ -101,7 +101,7 @@ %1=liste %2=num point début %3=num point fin - \useKVdefault[genspline]% + \restoreKV[genspline]% \setKV[genspline]{#1}% \setsepchar[.]{§./}% \readlist*\SPLlistepoints{#2}% @@ -156,7 +156,7 @@ \NewDocumentCommand\SplineTikz{ O{} m }{% %\newcommand\SplineTikz[2][]{% - \useKVdefault[spline] + \restoreKV[spline] \setKV[spline]{#1}% on paramètres les nouvelles clés et on les simplifie %on lit la liste des points/nbderivés et on stocke dans \listepoints \setsepchar[.]{§./}% @@ -219,7 +219,7 @@ } \newcommand\TangenteTikz[2][]{% - \useKVdefault[tgte]% + \restoreKV[tgte]% \setKV[tgte]{#1}% on paramètres les nouvelles clés et on les simplifie \setsepchar[.]{§./}% \readlist*\TGTlistepoints{#2}% @@ -308,26 +308,36 @@ } \DeclareDocumentCommand\AxexTikz{ O{} m }{% - \useKVdefault[PLaxextkz] + \restoreKV[PLaxextkz] \setKV[PLaxextkz]{#1}% on paramètres les nouvelles clés et on les simplifie %récupération des tickwidth H/B \IfSubStr{\axextickwidth}{/} {\StrCut{\axextickwidth}{/}{\axextickwidthA}{\axextickwidthB}} {\def\axextickwidthA{\axextickwidth}\def\axextickwidthB{\axextickwidth}} + %====test==== + \IfEq{#2}{auto}% + {% + \xdef\tmprangexvalues{\xintfloateval{seq(i,i=\xmin..[\xgrille]..\xmax)}}\StrDel{\tmprangexvalues}{ }[\tmprangexvalues]% + \setKV[PLaxextkz]{Trigo=false}% + }% + {% + \xdef\tmprangexvalues{#2}% + }% + %====fintest= %en fonction de Trigo ou non \ifboolKV[PLaxextkz]{Trigo} - { - \foreach \x in {#2}{% + {% + \foreach \x in \tmprangexvalues {% \draw[line width=\axexwidth] ({\x-\axexOx},{\axextickwidthA}) -- ({\x-\axexOx},{-\axextickwidthB})% \ifboolKV[PLaxextkz]{AffGrad}%on affiche les graduations {% node[\axexposlabel,font=\axexfont] {\ifboolKV[PLaxextkz]{Dfrac}{$\AffAngleRadian*{\x}$}{$\AffAngleRadian{\x}$}} }% {}% - ;} - } - { - \foreach \x in {#2}{% + ;}% + }% + {% + \foreach \x in \tmprangexvalues {% \draw[line width=\axexwidth] ({\x-\axexOx},{\axextickwidthA}) -- ({\x-\axexOx},{-\axextickwidthB})% \ifboolKV[PLaxextkz]{AffGrad}%on affiche les graduations {% @@ -336,16 +346,16 @@ {\ifboolKV[PLaxextkz]{Annee}% {\num[group-digits=none]{\x}}% {\num[text-family-to-math=true,text-series-to-math=true]{\x}}% - } - } + }% + }% {\xintifboolexpr{\x==\axexOx}{}{node[\axexposlabel,font=\axexfont] {\ifboolKV[PLaxextkz]{Annee}% {\num[group-digits=none]{\x}}% {\num[text-family-to-math=true,text-series-to-math=true]{\x}}% - } - } - } - } - {} + }% + }% + }% + }% + {}% ;} } @@ -371,26 +381,36 @@ } \DeclareDocumentCommand\AxeyTikz{ O{} m }{% - \useKVdefault[PLaxeytkz] + \restoreKV[PLaxeytkz] \setKV[PLaxeytkz]{#1}% on paramètres les nouvelles clés et on les simplifie \IfSubStr{\axeytickwidth}{/} - {\StrCut{\axeytickwidth}{/}{\axeytickwidthA}{\axeytickwidthB}} - {\def\axeytickwidthA{\axeytickwidth}\def\axeytickwidthB{\axeytickwidth}} + {\StrCut{\axeytickwidth}{/}{\axeytickwidthA}{\axeytickwidthB}} + {\def\axeytickwidthA{\axeytickwidth}\def\axeytickwidthB{\axeytickwidth}} + %====test==== + \IfEq{#2}{auto}% + {% + \xdef\tmprangeyvalues{\xintfloateval{seq(i,i=\ymin..[\ygrille]..\ymax)}}\StrDel{\tmprangeyvalues}{ }[\tmprangeyvalues]% + }% + {% + \xdef\tmprangeyvalues{#2}% + }% + %====fintest= + \ifboolKV[PLaxeytkz]{Frac}% {% \ifboolKV[PLaxeytkz]{AffGrad}%on affiche les graduations {% - \foreach \y in {#2} + \foreach \y in \tmprangeyvalues {\draw[line width=\axeywidth] ({\axeytickwidthA},{\y-\axeyOy}) -- ({-\axeytickwidthB},{\y-\axeyOy}) % \xintifboolexpr{\y==\axeyOy}{}{node[\axeyposlabel,font=\axeyfont] {\ConversionFraction{\y}}} ;} }% {% - \foreach \y in {#2} + \foreach \y in \tmprangeyvalues {\draw[line width=\axeywidth] ({\axeytickwidthA},{\y-\axeyOy}) -- ({-\axeytickwidthB},{\y-\axeyOy}) ;} }% }% {% - \foreach \y in {#2}{% + \foreach \y in \tmprangeyvalues {% \draw[line width=\axeywidth] ({\axeytickwidthA},{\y-\axeyOy}) -- ({-\axeytickwidthB},{\y-\axeyOy})% \ifboolKV[PLaxeytkz]{AffGrad}%on affiche les graduations {% @@ -414,6 +434,12 @@ }% } +%axesOxoy +\DeclareDocumentCommand\AxexyTikz{ O{} O{} m m }{% + \AxexTikz[#1]{#3} + \AxeyTikz[#2]{#4} +} + %axes \defKV[PLaxestkz]{% Epaisseur=\def\axeswidth{#1},% @@ -444,7 +470,7 @@ } \DeclareDocumentCommand\AxesTikz{ O{} }{% - \useKVdefault[PLaxestkz] + \restoreKV[PLaxestkz] \setKV[PLaxestkz]{#1}% %les petits élargissements \IfSubStr{\axeselargx}{/} @@ -490,7 +516,7 @@ } \DeclareDocumentCommand\OrigineTikz{ O{} }{% - \useKVdefault[PLaxesorig]% + \restoreKV[PLaxesorig]% \setKV[PLaxesorig]{#1}% \draw (0,0) node[\axesorpos=\axesordecal,font=\axesorfont] {\axesorval} ; } @@ -498,11 +524,12 @@ %grilles \setKVdefault[PLgrillestkz]{% Affp=true,% - Affs=true + Affs=true,% + Dernier=false } \DeclareDocumentCommand\GrilleTikz{ O{} O{thin,lightgray} O{ultra thin,lightgray} }{% - \useKVdefault[PLgrillestkz] + \restoreKV[PLgrillestkz] \setKV[PLgrillestkz]{#1}% \ifboolKV[PLgrillestkz]{Affs} {\draw[xstep=\xgrilles,ystep=\ygrilles,#3] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});} @@ -510,6 +537,12 @@ \ifboolKV[PLgrillestkz]{Affp} {\draw[xstep=\xgrille,ystep=\ygrille,#2] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});} {} + \ifboolKV[PLgrillestkz]{Dernier} + {% + \draw[#2] ({\xmin-\axexOx},{\ymax-\axeyOy}) -- ({\xmax-\axexOx},{\ymax-\axeyOy});% + \draw[#2] ({\xmax-\axexOx},{\ymin-\axeyOy}) -- ({\xmax-\axexOx},{\ymax-\axeyOy});% + } + {} } %point(s) avec changement origines @@ -526,7 +559,7 @@ } \newcommand\PLnuagepoints[2][]{% - \useKVdefault[PLpts] + \restoreKV[PLpts] \setKV[PLpts]{#1}% \setsepchar{§}% \readlist\listepointsaffiches{#2} @@ -546,7 +579,7 @@ } \newcommand\NuagePointsTikz[3][]{% - \useKVdefault[PLpts] + \restoreKV[PLpts] \setKV[PLpts]{#1}% on paramètres les nouvelles clés et on les simplifie \def\xliste{#2} \def\yliste{#3} @@ -597,7 +630,7 @@ } \newcommand\PointMoyenTikz[1][]{% - \useKVdefault[PLptmoy] + \restoreKV[PLptmoy] \setKV[PLptmoy]{#1}% on paramètres les nouvelles clés et on les simplifie \IfStrEq{\ptmoystyle}{o}% { @@ -648,7 +681,7 @@ } \DeclareDocumentCommand\FenetreSimpleTikz{ O{} D(){} D<>{} m D<>{} m }{% - \useKVdefault[PLsimplewindow]% + \restoreKV[PLsimplewindow]% \setKV[PLsimplewindow]{#1}% on paramètres les nouvelles clés et on les simplifie \ifboolKV[PLsimplewindow]{Grille}% {\GrilleTikz}% @@ -664,6 +697,10 @@ \tikzset{declare function={#1(\x)=#2;}} } +\NewDocumentCommand\DeclareFonctionTikzXint{ O{f} m }{%nom_fonction+langage xint + \xintdeffloatfunc #1(x) := #2 ;% +} + %====INTERVALLES TIKZ \usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing} @@ -821,4 +858,92 @@ \end{scope}% } +%====Intégrale TikZ +\defKV[IntegrDomainTikz]{% + Epaisseur=\def\intgdomtikzthick{#1},% + Couleurs=\def\intgdomtikzcolors{#1},% + Style=\def\intgdomtikzstyle{#1},% + Opacite=\def\intgdomtikzopac{#1},% + Samples=\def\intgdomtikzsamples{#1},% + Hachures=\def\intgdomtikzhatch{#1},% + Type=\def\intgdomtikztype{#1},% + Pas=\def\intgdomtikzstep{#1},% + Jonction=\def\intgdomtikzjoin{#1} +} +\setKVdefault[IntegrDomainTikz]{% + Epaisseur=1pt,% + Couleurs={gray/teal},% + Style=remplissage,% + Opacite=0.5,% + Samples=250,% + Hachures={north west lines},% + Type=dessous,% + Pas=0.1,% + Jonction=bevel +} + +\NewDocumentCommand\IntegraleTikz{ O{} D<>{} m O{0} m m }{% + %1 = clés + %2 = options particulières tikz + %3 = fonction, en tikz + %4 = fonction n°2 éventuelle + %de #5 à #6 + \restoreKV[IntegrDomainTikz]% revenir au valeurs par défaut + \setKV[IntegrDomainTikz]{#1}% lit les arguments optionnels + \StrCut{\intgdomtikzcolors}{/}{\intgcolbord}{\intcolhach}% + \IfStrEq{\intgcolbord}{}{\xdef\intgcolbord{none}}{}% + \IfStrEq{\intgdomtikzstyle}{hachures}% + {% + \tikzset{integraletikzstyle/.style={line width=\intgdomtikzthick,draw=\intgcolbord,pattern=\intgdomtikzhatch,pattern color=\intcolhach,line join=\intgdomtikzjoin}} + }% + {}% + \IfStrEq{\intgdomtikzstyle}{remplissage}% + {% + \tikzset{integraletikzstyle/.style={line width=\intgdomtikzthick,draw=\intgcolbord,fill=\intcolhach,fill opacity=\intgdomtikzopac,line join=\intgdomtikzjoin}} + }% + {}% + \IfStrEq{\intgdomtikztype}{dessous}% + {% + \draw[integraletikzstyle,#2] (#5,0) -- plot[samples=\intgdomtikzsamples,domain=#5:#6] (\x,{#3}) --(#6,0) -- cycle ; + }% + {}% + \IfStrEq{\intgdomtikztype}{entre}% + {% + \draw[integraletikzstyle,#2] plot[samples=\intgdomtikzsamples,domain=#5:#6] (\x,{#3}) -- plot[samples=\intgdomtikzsamples,domain=#6:#5] (\x,{#4}) -- cycle ; + }% + {}% +} + +\NewDocumentCommand\IntegraleTikzXint{ O{} D<>{} m O{0} m m }{% + %1 = clés + %2 = options particulières tikz + %3 = fonction, en tikz + %4 = fonction n°2 éventuelle + %de #5 à #6 + \restoreKV[IntegrDomainTikz]% revenir au valeurs par défaut + \setKV[IntegrDomainTikz]{#1}% lit les arguments optionnels + \StrCut{\intgdomtikzcolors}{/}{\intgcolbord}{\intcolhach}% + \IfStrEq{\intgcolbord}{}{\xdef\intgcolbord{none}}{}% + \IfStrEq{\intgdomtikzstyle}{hachures}% + {% + \tikzset{integraletikzstyle/.style={line width=\intgdomtikzthick,draw=\intgcolbord,pattern=\intgdomtikzhatch,pattern color=\intcolhach,line join=\intgdomtikzjoin}} + }% + {}% + \IfStrEq{\intgdomtikzstyle}{remplissage}% + {% + \tikzset{integraletikzstyle/.style={line width=\intgdomtikzthick,draw=\intgcolbord,fill=\intcolhach,fill opacity=\intgdomtikzopac,line join=\intgdomtikzjoin}} + }% + {}% + \IfStrEq{\intgdomtikztype}{dessous}% + {% + \draw[integraletikzstyle,#2] (#5,0) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=#5..[\intgdomtikzstep]..#6)\relax} -- (#6,0) -- cycle ; + }% + {}% + \IfStrEq{\intgdomtikztype}{entre}% + {% + \draw[integraletikzstyle,#2] plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=#5..[\intgdomtikzstep]..#6)\relax} -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=#6..[-\intgdomtikzstep]..#5)\relax} -- cycle ; + }% + {}% +} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex index e817af767e..92cff33772 100644 --- a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex +++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex @@ -1041,4 +1041,187 @@ }% } +%===BINOMIALE +\defKV[HistoBinom]{% + Largeur=\def\GraphBinomLarg{#1},% + Hauteur=\def\GraphBinomHaut{#1},% + PasX=\def\GraphBinomPasX{#1},% + PasY=\def\GraphBinomPasY{#1},% + Plage=\def\GraphBinomPlage{#1},% + CouleurPlage=\def\GraphBimomColPlage{#1},% + Epaisseur=\def\GraphBinomThick{#1},% + ClipX=\def\GraphBinomXminmax{#1},% + Police=\def\GraphBinomFonte{#1},% + CouleurNormale=\def\GraphBinomColNorm{#1} +} +\setKVdefault[HistoBinom]{% + Largeur=10,% + Hauteur=5,% + PasX=5,% + PasY=0.01,% + Plage={},% + CouleurPlage=teal!50,% + Epaisseur=0.8pt, + ClipX={},% + Police=\normalfont\normalsize,% + AffNormale=false,% + CouleurNormale=red +} + +\NewDocumentCommand\HistogrammeBinomiale{ O{} D<>{} m m }{% + \restoreKV[HistoBinom]% + \setKV[HistoBinom]{#1} + \def\GraphBinomN{#3}% + \def\GraphBinomP{#4}% + \IfStrEq{\GraphBinomXminmax}{}% + {% + \xdef\GraphBinomXmin{0}% + \xdef\GraphBinomXmax{\GraphBinomN}% + }% + {% + \StrCut{\GraphBinomXminmax}{-}{\GraphBinomXmin}{\GraphBinomXmax}% + \IfStrEq{\GraphBinomXmin}{*}{\xdef\GraphBinomXmin{0}}{}% + \IfStrEq{\GraphBinomXmax}{*}{\xdef\GraphBinomXmax{\GraphBinomN}}{}% + }% + \IfStrEq{\GraphBinomPlage}{}% + {}% + {% + \StrCut{\GraphBinomPlage}{-}{\GraphBinomColorMin}{\GraphBinomColorMax}% + \IfStrEq{\GraphBinomColorMin}{*}{\xdef\GraphBinomColorMin{\GraphBinomXmin}}{}% + \IfStrEq{\GraphBinomColorMax}{*}{\xdef\GraphBinomColorMax{\GraphBinomXmax}}{}% + }% + %test d'unités + \xdef\GraphBinomXunit{\xintfloateval{round((\GraphBinomLarg)/(\GraphBinomXmax-\GraphBinomXmin+1),3)}}% + \xdef\grphbinommedA{\xintfloateval{trunc(\GraphBinomN*\GraphBinomP,0)}}% + \xdef\grphbinommedB{\xintfloateval{\grphbinommedA+1}}% + \xdef\GraphBinomYmaxA{\xintfloateval{binomial(\GraphBinomN,\grphbinommedA)*(\GraphBinomP)^(\grphbinommedA)*(1-(\GraphBinomP))^((\GraphBinomN)-(\grphbinommedA))}}% + \xdef\GraphBinomYmaxB{\xintfloateval{binomial(\GraphBinomN,\grphbinommedB)*(\GraphBinomP)^(\grphbinommedB)*(1-(\GraphBinomP))^((\GraphBinomN)-(\grphbinommedB))}}% + \xdef\GraphBinomMaxY{\xintfloateval{1.1*max(\GraphBinomYmaxA,\GraphBinomYmaxB)}}% + \xdef\GraphBinomNbPrecision{\xinteval{abs(ilog10(\GraphBinomMaxY))+1}}% + \xdef\GraphBinomYunit{\xintfloateval{round((\GraphBinomHaut)/(max(\GraphBinomYmaxA,\GraphBinomYmaxB)),3)}}% + \begin{tikzpicture}[x=\GraphBinomXunit cm,y=\GraphBinomYunit cm,#2] + %coloriage éventuel + \IfStrEq{\GraphBinomPlage}{}% + {}% + {% + \xintFor* ##1 in {\xintSeq{\GraphBinomColorMin}{\GraphBinomColorMax}}\do{% + \xdef\tmpYYY{\xintfloateval{binomial(\GraphBinomN,##1)*(\GraphBinomP)^(##1)*(1-(\GraphBinomP))^((\GraphBinomN)-(##1))}}% + \draw[draw=none,fill=\GraphBimomColPlage,fill opacity=0.5] ({##1-0.5},0) rectangle++ (1,{\tmpYYY}) ; + }% + }% + %axes + \draw[line width=\GraphBinomThick,->,>=latex] ({\GraphBinomXmin-0.5},0)--({\GraphBinomXmax+1},0) ; + \draw[line width=\GraphBinomThick,->,>=latex] ({\GraphBinomXmin-0.5},0)--({\GraphBinomXmin-0.5},{1.1*(\GraphBinomHaut)/(\GraphBinomYunit)}) ; + \foreach \x in {\GraphBinomXmin,\inteval{\GraphBinomXmin+\GraphBinomPasX},...,\GraphBinomXmax}{% + \draw[line width=\GraphBinomThick] (\x,2pt)--++(0,-4pt) node[below,font=\GraphBinomFonte] {\num{\x}} ; + }% + \xdef\GraphBinomNbPrecisionAxeY{\xinteval{abs(ilog10(\GraphBinomPasY))+1}}% + \foreach \y in {0,\GraphBinomPasY,...,\GraphBinomMaxY}{% + \draw[line width=\GraphBinomThick] ($({\GraphBinomXmin-0.5},\y)+(2pt,0)$)--++(-4pt,0) node[left,font=\GraphBinomFonte] {\num{\xintfloateval{round(\y,\GraphBinomNbPrecisionAxeY)}}} ; + }% + %tracé + \xintFor* ##1 in {\xintSeq{\GraphBinomXmin}{\GraphBinomXmax}}\do{% + \xdef\tmpYYY{\xintfloateval{binomial(\GraphBinomN,##1)*(\GraphBinomP)^(##1)*(1-(\GraphBinomP))^((\GraphBinomN)-(##1))}}% + \draw[line width=\GraphBinomThick] ({##1-0.5},0) rectangle++ (1,{\tmpYYY}) ; + } + \ifboolKV[HistoBinom]{AffNormale}% + {% + \xdef\MinNormHistoBinom{\xintfloateval{{\GraphBinomXmin-0.5}}}% + \xdef\MaxNormHistoBinom{\xintfloateval{{\GraphBinomXmax+0.5}}}% + \TraceLoiNormale*[line width={1.25*\GraphBinomThick},\GraphBinomColNorm]<\MinNormHistoBinom..[0.1]..\MaxNormHistoBinom>{#3}{#4} + }% + {}% + \end{tikzpicture} +} + +\NewDocumentEnvironment{HistoBinomiale}{ O{} D<>{} m m }% +{% + \restoreKV[HistoBinom]% + \setKV[HistoBinom]{#1} + \def\GraphBinomN{#3}% + \def\GraphBinomP{#4}% + \IfStrEq{\GraphBinomXminmax}{}% + {% + \xdef\GraphBinomXmin{0}% + \xdef\GraphBinomXmax{\GraphBinomN}% + }% + {% + \StrCut{\GraphBinomXminmax}{-}{\GraphBinomXmin}{\GraphBinomXmax}% + \IfStrEq{\GraphBinomXmin}{*}{\xdef\GraphBinomXmin{0}}{}% + \IfStrEq{\GraphBinomXmax}{*}{\xdef\GraphBinomXmax{\GraphBinomN}}{}% + }% + \IfStrEq{\GraphBinomPlage}{}% + {}% + {% + \StrCut{\GraphBinomPlage}{-}{\GraphBinomColorMin}{\GraphBinomColorMax}% + \IfStrEq{\GraphBinomColorMin}{*}{\xdef\GraphBinomColorMin{\GraphBinomXmin}}{}% + \IfStrEq{\GraphBinomColorMax}{*}{\xdef\GraphBinomColorMax{\GraphBinomXmax}}{}% + }% + %test d'unités + \xdef\GraphBinomXunit{\xintfloateval{round((\GraphBinomLarg)/(\GraphBinomXmax-\GraphBinomXmin+1),3)}}% + \xdef\grphbinommedA{\xintfloateval{trunc(\GraphBinomN*\GraphBinomP,0)}}% + \xdef\grphbinommedB{\xintfloateval{\grphbinommedA+1}}% + \xdef\GraphBinomYmaxA{\xintfloateval{binomial(\GraphBinomN,\grphbinommedA)*(\GraphBinomP)^(\grphbinommedA)*(1-(\GraphBinomP))^((\GraphBinomN)-(\grphbinommedA))}}% + \xdef\GraphBinomYmaxB{\xintfloateval{binomial(\GraphBinomN,\grphbinommedB)*(\GraphBinomP)^(\grphbinommedB)*(1-(\GraphBinomP))^((\GraphBinomN)-(\grphbinommedB))}}% + \xdef\GraphBinomMaxY{\xintfloateval{1.1*max(\GraphBinomYmaxA,\GraphBinomYmaxB)}}% + \xdef\GraphBinomNbPrecision{\xinteval{abs(ilog10(\GraphBinomMaxY))+1}}% + \xdef\GraphBinomYunit{\xintfloateval{round((\GraphBinomHaut)/(max(\GraphBinomYmaxA,\GraphBinomYmaxB)),3)}}% + \begin{tikzpicture}[x=\GraphBinomXunit cm,y=\GraphBinomYunit cm,#2] + %coloriage éventuel + \IfStrEq{\GraphBinomPlage}{}% + {}% + {% + \xintFor* ##1 in {\xintSeq{\GraphBinomColorMin}{\GraphBinomColorMax}}\do{% + \xdef\tmpYYY{\xintfloateval{binomial(\GraphBinomN,##1)*(\GraphBinomP)^(##1)*(1-(\GraphBinomP))^((\GraphBinomN)-(##1))}}% + \draw[draw=none,fill=\GraphBimomColPlage,fill opacity=0.5] ({##1-0.5},0) rectangle++ (1,{\tmpYYY}) ; + }% + }% + %axes + \draw[line width=\GraphBinomThick,->,>=latex] ({\GraphBinomXmin-0.5},0)--({\GraphBinomXmax+1},0) ; + \draw[line width=\GraphBinomThick,->,>=latex] ({\GraphBinomXmin-0.5},0)--({\GraphBinomXmin-0.5},{1.1*(\GraphBinomHaut)/(\GraphBinomYunit)}) ; + \foreach \x in {\GraphBinomXmin,\inteval{\GraphBinomXmin+\GraphBinomPasX},...,\GraphBinomXmax}{% + \draw[line width=\GraphBinomThick] (\x,2pt)--++(0,-4pt) node[below,font=\GraphBinomFonte] {\num{\x}} ; + }% + \xdef\GraphBinomNbPrecisionAxeY{\xinteval{abs(ilog10(\GraphBinomPasY))+1}}% + \foreach \y in {0,\GraphBinomPasY,...,\GraphBinomMaxY}{% + \draw[line width=\GraphBinomThick] ($({\GraphBinomXmin-0.5},\y)+(2pt,0)$)--++(-4pt,0) node[left,font=\GraphBinomFonte] {\num{\xintfloateval{round(\y,\GraphBinomNbPrecisionAxeY)}}} ; + }% + %tracé + \xintFor* ##1 in {\xintSeq{\GraphBinomXmin}{\GraphBinomXmax}}\do{% + \xdef\tmpYYY{\xintfloateval{binomial(\GraphBinomN,##1)*(\GraphBinomP)^(##1)*(1-(\GraphBinomP))^((\GraphBinomN)-(##1))}}% + \draw[line width=\GraphBinomThick] ({##1-0.5},0) rectangle++ (1,{\tmpYYY}) ; + } + %loi normale ? + \ifboolKV[HistoBinom]{AffNormale}% + {% + \xdef\MinNormHistoBinom{\xintfloateval{{\GraphBinomXmin-0.5}}}% + \xdef\MaxNormHistoBinom{\xintfloateval{{\GraphBinomXmax+0.5}}}% + \TraceLoiNormale*[line width={1.25*\GraphBinomThick},\GraphBinomColNorm]<\MinNormHistoBinom..[0.1]..\MaxNormHistoBinom>{#3}{#4} + }% + {}% + }% + {% + \end{tikzpicture} +} + +\xintdeffloatfunc fctreploinorm(x,mu,sigma):=1/(sigma*sqrt(2*Pi))*exp(-1/2*((x-mu)/sigma)^2); + +\NewDocumentCommand\TraceLoiNormale{ s O{} D<>{} m m }{% + \IfBooleanTF{#1}% + {% + \draw[#2] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,fctreploinorm(x,#4*#5,sqrt(#4*#5*(1-#5)))),x=#3) + \relax + }; + }% + {% + \draw[#2] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,fctreploinorm(x,#4,#5)),x=#3) + \relax + }; + }% +} + \endinput
\ No newline at end of file diff --git a/macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx b/macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx index 12594049c6..fc3427bf80 100644 --- a/macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx +++ b/macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx @@ -246,7 +246,7 @@ % \cs{ledsubsection} & \cs{eledsubsection} \\ % \cs{ledsubsubsection} & \cs{eledsubsubsection} \\ % \cs{noeledsec} & Package option \verb+noeledsec+ \\ -% \cs{noendnotes} & Package option \verb+noendnotes+ \\ +% \cs{noendnotes} & Package option \verb+noend+ \\ % \cs{pageparbreak} & \cs{ledpb} \\ % \end{longtable} % diff --git a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf Binary files differindex 18605ab2db..1ae91515fb 100644 --- a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf +++ b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf Binary files differindex 9c77ee92d8..58f1d6981d 100644 --- a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf +++ b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf Binary files differindex e25e9f9fd2..ea2f749d32 100644 --- a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf +++ b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf Binary files differindex 22b5bd2729..2d7130fcb9 100644 --- a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf +++ b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-tabular.pdf b/macros/latex/contrib/reledmac/examples/1-tabular.pdf Binary files differindex 2e09c62414..d7a945978b 100644 --- a/macros/latex/contrib/reledmac/examples/1-tabular.pdf +++ b/macros/latex/contrib/reledmac/examples/1-tabular.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf Binary files differindex f4641e8ed2..75b679b50d 100644 --- a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf +++ b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/1-verses.pdf b/macros/latex/contrib/reledmac/examples/1-verses.pdf Binary files differindex 345486a466..e1d1b6af19 100644 --- a/macros/latex/contrib/reledmac/examples/1-verses.pdf +++ b/macros/latex/contrib/reledmac/examples/1-verses.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf Binary files differindex 725b561e91..f7b843c631 100644 --- a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf +++ b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf Binary files differindex bb84710a9b..1c53f875a0 100644 --- a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf Binary files differindex b1fb90d576..c9e6daca45 100644 --- a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf Binary files differindex bc1cc26fa3..f702632cf3 100644 --- a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf +++ b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-indexing.pdf b/macros/latex/contrib/reledmac/examples/2-indexing.pdf Binary files differindex bd9a1ac760..ca3b90abcc 100644 --- a/macros/latex/contrib/reledmac/examples/2-indexing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-indexing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf Binary files differindex 785306eb4c..95a09523d9 100644 --- a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf +++ b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf Binary files differindex 20a2c5d6a8..0021b1cbd3 100644 --- a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf +++ b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf Binary files differindex 4d32ac79ca..67424c3e0c 100644 --- a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf +++ b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf Binary files differindex 4deece32c7..362ff7012a 100644 --- a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf +++ b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf Binary files differindex be687afa88..0fe795532a 100644 --- a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf +++ b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf Binary files differindex 9e5b0624aa..ad48933ba2 100644 --- a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf +++ b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-performances.pdf b/macros/latex/contrib/reledmac/examples/2-performances.pdf Binary files differindex 822f29af7e..e68f4f3b49 100644 --- a/macros/latex/contrib/reledmac/examples/2-performances.pdf +++ b/macros/latex/contrib/reledmac/examples/2-performances.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf Binary files differindex fdf1ad93f5..ed0755c95b 100644 --- a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf +++ b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf Binary files differindex 1a079d07da..a0e92d1b90 100644 --- a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf +++ b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf Binary files differindex 16d3cc7f02..22f3ac9ed3 100644 --- a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf Binary files differindex 1021f61ecb..6edc466546 100644 --- a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf +++ b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf Binary files differindex d9ca46f8e5..ae6daea2f3 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf Binary files differindex d62f7e46a6..65e77b6045 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf Binary files differindex 79e086308e..7864905fc5 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf Binary files differindex e5aaa63498..147ece9039 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf Binary files differindex 9b95c6bfdd..bc2e485aa7 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf Binary files differindex 18d3b9814b..a53aafd365 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf Binary files differindex 333e6b906a..b873ef2634 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf Binary files differindex f908766e8f..4437bcd188 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf Binary files differindex 0635fef82c..0c36cb9564 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf Binary files differindex c4936a579f..073be3c769 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf Binary files differindex 687871bf30..7a13994ca4 100644 --- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf +++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf Binary files differindex 6436851359..5dbce10161 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf Binary files differindex 125c76967c..4c574e496b 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf Binary files differindex 36a70b5322..012bb74b4e 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf Binary files differindex 4d07ca87f3..fc67986e5a 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf Binary files differindex 610ba2241f..58d08bf3bd 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf Binary files differindex be6f88912c..36f6321386 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf Binary files differindex 89396d832c..db1ccbc5a7 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf Binary files differindex e62fa711ad..d71f06d80e 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf Binary files differindex d1eec4642f..c6186efd4d 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf Binary files differindex 1bc32688b6..a36ab701dd 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf Binary files differindex 90675794b5..33338d8f63 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf Binary files differindex 21c417fdaa..c8200f5ff5 100644 --- a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf +++ b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf diff --git a/macros/latex/contrib/reledmac/migration.pdf b/macros/latex/contrib/reledmac/migration.pdf Binary files differindex 3bb51a2f91..50d46b721e 100644 --- a/macros/latex/contrib/reledmac/migration.pdf +++ b/macros/latex/contrib/reledmac/migration.pdf diff --git a/macros/latex/contrib/reledmac/reledmac.dtx b/macros/latex/contrib/reledmac/reledmac.dtx index 2bce791494..2109ca38b5 100644 --- a/macros/latex/contrib/reledmac/reledmac.dtx +++ b/macros/latex/contrib/reledmac/reledmac.dtx @@ -602,6 +602,9 @@ % \changes{v2.39.7}{2023/08/21}{Again fix with hyperref, footnote and tabular environment} % \changes{v2.40.0}{2023/09/30}{Add\protect\cs{Xonlyonerule} and \protect\cs{onlyoneruleX} hooks} % \changes{v2.40.0}{2023/09/30}{Add\protect\option{onlyonerule} option} +% \changes{v2.40.1}{2024/05/11}{Reset \protect\cs{parfillskip} after paragraphed and columned footnote} +% \changes{v2.40.1}{2024/05/11}{Fix bug when using \protect\cs{edlabel} in \protect\env{edtabular} and related} +% \changes{v2.40.1}{2024/05/11}{Dealing with direction in \protect\cs{footnoteXtxt} when using LuaLaTeX} % Typeset scholarly editions with \LaTeX\thanks{This file (\dtxfilename) % has version number \fileversion, last revised \filedate.}} % @@ -4528,7 +4531,7 @@ % \begin{macrocode} %<*code> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{reledmac}[2023/08/21 v2.39.7 typesetting critical editions]% +\ProvidesPackage{reledmac}[2024/05/11 v2.40.1 typesetting critical editions]% % \end{macrocode} % % \subsection{Loading packages} @@ -10872,6 +10875,7 @@ % \item \protect\cs{splitmaxdepth}. % \item \protect\cs{floatingpenalty}, that is penalty values being added when a long note flows from one page to another. % Here, we let it to 0 when we process parallel pages in \protect\package{eledpar}, in order to allow notes to flow from left to right pages and \emph{vice-versa}. +% \item\cs{parfillskip} for ending of paragraph. % Otherwise, we let it to \protect\cs{@MM}, which is the standard \LaTeX\ \protect\cs{floatingpenalty}. % \end{itemize} % \changes{v0.7.0}{2005/02/18}{Added \protect\cs{footsplitskips} for use in many @@ -10883,8 +10887,12 @@ \unless\ifl@dprintingpages% \floatingpenalty=\@MM% \fi% - \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox - \leftskip=\z@skip \rightskip=\z@skip} + \splittopskip=\ht\strutbox% + \splitmaxdepth=\dp\strutbox% + \leftskip=\z@skip% + \rightskip=\z@skip% + \parfillskip=0pt plus 1fil% +} % \end{macrocode} % \end{macro} @@ -11169,6 +11177,7 @@ % Read \reff{width2columns} for the general description of the problem. % \begin{macrocode} \leftskip0pt \rightskip0pt + \parfillskip=0pt plus 1fil \ifl@dpairing\else% \hsize=\old@hsize% \fi% @@ -11349,6 +11358,7 @@ \let\bidi@RTL@everypar\@empty% \noindent\leavevmode% \let\bidi@RTL@everypar\old@bidi@RTL@everypar% + \parfillskip=0pt plus 1fil% }% % \end{macrocode} % \end{macro} @@ -13917,6 +13927,7 @@ }% \leftskip=\z@ \rightskip=\z@ + \parfillskip=0pt plus 1fil \setparindentX{#1}% \vskip\skip\@nameuse{footins#1}% \setnoteswidthliketwocolumnsX@{#1}% @@ -15589,6 +15600,10 @@ }% \expandafter\newcommand\csname footnote#1text\endcsname[2][]{% \begingroup% + \ifluatex% + \xdef\footnote@luatextextdir{\the\textdir}% + \xdef\footnote@luatexpardir{\the\pardir}% + \fi% \csuse{vfootnote#1}{#1}{\expandonce{##2}}{##1}% \endgroup% }% @@ -19897,8 +19912,8 @@ \listxadd{\@msdata@list}{% \@msd@options@iffullpage% \ifluatex% - \csxdef{footnote@luatextextdir}{\the\textdir}% - \csxdef{footnote@luatexpardir}{\the\pardir}% + \xdef\footnote@luatextextdir{\the\textdir}% + \xdef\footnote@luatexpardir{\the\pardir}% \fi% \csdef{@this@crossref@start}{\add@msd@c:start:msdata}% \csdef{@this@crossref@end}{\add@msd@c:end:msdata}% @@ -20457,12 +20472,12 @@ % \begin{macro}{\restore@edlabel} % We need to be able to modify and restore the \protect\cs{edlabel} macro. % \begin{macrocode} +\let\original@edlabel\edlabel% \newcommand{\disable@edlabel}{% - \let\old@edlabel\edlabel% \let\edlabel\@gobble% }% \newcommand{\restore@edlabel}{% - \let\edlabel\old@edlabel% + \let\edlabel\original@edlabel% }% % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/reledmac/reledmac.pdf b/macros/latex/contrib/reledmac/reledmac.pdf Binary files differindex fcc8c9d698..bc1f8b20f9 100644 --- a/macros/latex/contrib/reledmac/reledmac.pdf +++ b/macros/latex/contrib/reledmac/reledmac.pdf diff --git a/macros/latex/contrib/reledmac/reledpar.dtx b/macros/latex/contrib/reledmac/reledpar.dtx index 9040bb3630..aff1d03da1 100644 --- a/macros/latex/contrib/reledmac/reledpar.dtx +++ b/macros/latex/contrib/reledmac/reledpar.dtx @@ -347,7 +347,7 @@ % \changes{v2.24.1}{2020/08/19}{Fix incompatibility between lineation by \protect\cs{pstart} and (a)stanza.} % \changes{v2.24.2}{2020/09/16}{Fix some bugs with lineation by page, when a numbered section starts at the very beginning of page.} % \changes{v2.24.3}{2020/11/08}{Fix bug with hanging verse in parallel typesetting.} -% \changes{v2.25.0}{2020/11/29}{Add compatibility with \protect\cs{linenumannotationothersidetrue} of \protect\macpackage.}. +% \changes{v2.25.0}{2020/11/29}{Add compatibility with \protect\cs{linenumannotationothersidetrue} of \protect\macpackage.} % \changes{v2.25.1}{2021/01/21}{\protect\cs{ifsublines@R} migrated to \protect\macpackage} % \changes{v2.25.2}{2021/09/27}{Fix incompatibility with \protect\package{babel} v3.61} % \changes{v2.25.3}{2022/04/22}{Fix incompatibility with \protect\package{polyglossia} v1.55} @@ -1410,7 +1410,7 @@ % \begin{macrocode} %<*code> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{reledpar}[2024/02/26 v2.25.6 reledmac extension for parallel texts]% +\ProvidesPackage{reledpar}[2024/05/11 v2.25.6a reledmac extension for parallel texts]% % \end{macrocode} % \subsection{Package's requirement} diff --git a/macros/latex/contrib/reledmac/reledpar.pdf b/macros/latex/contrib/reledmac/reledpar.pdf Binary files differindex 787452ce62..84a3fd4ec0 100644 --- a/macros/latex/contrib/reledmac/reledpar.pdf +++ b/macros/latex/contrib/reledmac/reledpar.pdf diff --git a/macros/unicodetex/latex/fontspec/CHANGES.md b/macros/unicodetex/latex/fontspec/CHANGES.md index 47c3b7128e..638e456356 100644 --- a/macros/unicodetex/latex/fontspec/CHANGES.md +++ b/macros/unicodetex/latex/fontspec/CHANGES.md @@ -1,6 +1,19 @@ Change history ============== +## v2.9e (2024/05/11) + + * Fix regression with automatic detection and selection of small caps when the font + script or language was requested but not found. (#517) + + * Add additional tests to check against regressions. (#516, #518) + + * Improve message in log file when defining a font without small caps. + + * Demote warnings when Script or Language are requested but not found to the log file + instead of the console. (#421) + + ## v2.9d (2024/05/07) * Now that `Script` and `Language` are retained even if the font doesn't support them, diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx index 2b21012472..3ce9edc230 100644 --- a/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx +++ b/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx @@ -233,7 +233,7 @@ \prop_get:cnN {g_@@_fontinfo_ \f@family _prop} {script-tag} \l_@@_script_tl \prop_get:cnN {g_@@_fontinfo_ \f@family _prop} {lang-tag} \l_@@_lang_tl - \@@_check_ot_feat:NnTF \font {#1} {\prg_return_true:} {\prg_return_false:} + \@@_check_ot_feat:NnnnTF \font {#1} {\l_@@_lang_tl} {\l_@@_script_tl} {\prg_return_true:} {\prg_return_false:} } { \prg_return_false: diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx index 5fbd797f44..b4d5db73f3 100644 --- a/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx +++ b/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx @@ -476,7 +476,7 @@ \bool_if:NF \l_@@_scriptlang_exist_bool { %<debug>\typeout{Script~not~found!} - \@@_warning:nxx {no-script} {\l_fontspec_fontname_tl} {#1} + \@@_info:nxx {script-not-exist} {\l_fontspec_fontname_tl} {#1} \clist_set:Nn \l_tmpa_clist {#2} \clist_get:NN \l_tmpa_clist \l_@@_script_tl \exp_args:Noo \@@_check_script:NnF \l_@@_fontface_cs_tl \l_@@_script_tl @@ -489,37 +489,42 @@ } } } -\cs_new:Nn \fontspec_default_script:nn +% \end{macrocode} +% When script is not explicitly requested, use this list: +% \begin{macrocode} +\clist_new:N \g_@@_default_scripts_clist +\cs_new:Nn \fontspec_default_script:n { - \keys_define:nn {fontspec-opentype} { Script / #1 .code:n = + \clist_gset:Nn \g_@@_default_scripts_clist {#1} + } +\fontspec_default_script:n {latn,DFLT} +% \end{macrocode} +% +% \begin{macrocode} +\keys_define:nn {fontspec-opentype} { Script / CustomDefault .code:n = + { +%<debug>\typeout{Trying~CustomDefault~Script} + \bool_set_false:N \l_@@_scriptlang_exist_bool + \clist_map_inline:Nn \g_@@_default_scripts_clist { -%<debug>\typeout{Trying~[Script=#1:#2]} - \bool_set_false:N \l_@@_scriptlang_exist_bool - \clist_map_inline:nn {#2} + \exp_args:No \@@_check_script:NnT \l_@@_fontface_cs_tl {##1} { - \exp_args:No \@@_check_script:NnT \l_@@_fontface_cs_tl {####1} - { -%<debug>\typeout{Script~tag~found:~####1} - \tl_set:Nn \l_@@_script_name_tl {#1} - \tl_set:Nn \l_@@_script_tl {####1} - \int_set:Nn \l_@@_script_int {\l_@@_strnum_int} - \bool_set_true:N \l_@@_scriptlang_exist_bool - \tl_gset:Nx \g_@@_single_feat_tl { script=####1 } - \clist_map_break: - } +%<debug>\typeout{Script~tag~found:~##1} + \tl_set:Nn \l_@@_script_name_tl {Default (##1)} + \tl_set:Nn \l_@@_script_tl {##1} + \int_set:Nn \l_@@_script_int {\l_@@_strnum_int} + \bool_set_true:N \l_@@_scriptlang_exist_bool + \tl_gset:Nx \g_@@_single_feat_tl { script=##1 } + \clist_map_break: } - \bool_if:NF \l_@@_scriptlang_exist_bool - { + } + \bool_if:NF \l_@@_scriptlang_exist_bool + { %<debug>\typeout{Script~not~found!} - \tl_clear:N \l_@@_script_name_tl - } + \tl_clear:N \l_@@_script_name_tl } - } } -% \end{macrocode} -% When script is not explicitly requested, use this list: -% \begin{macrocode} -\fontspec_default_script:nn {CustomDefault} {latn,DFLT} +} % \end{macrocode} % % @@ -553,7 +558,7 @@ \bool_if:NF \l_@@_scriptlang_exist_bool { %<debug>\typeout{Lang~not~found!} - \@@_warning:nx {language-not-exist} {#1} + \@@_info:nx {language-not-exist} {#1} \clist_set:Nn \l_tmpa_clist {#2} \clist_get:NN \l_tmpa_clist \l_@@_lang_tl \exp_args:Noo \@@_check_lang:NnF \l_@@_fontface_cs_tl \l_@@_lang_tl @@ -574,6 +579,12 @@ % language is hardcoded to have a zero value, % although this might be some \XeTeX-specific thing. % \begin{macrocode} +\clist_new:N \g_@@_default_langs_clist +\cs_new:Nn \fontspec_default_lang:n + { + \clist_gset:Nn \g_@@_default_langs_clist {#1} + } +\fontspec_default_lang:n {dflt} \@@_keys_define_code:nnn {fontspec-opentype} { Language / Default } { \tl_set:Nn \l_@@_lang_tl {dflt} diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx index fd52183c18..b454143ef5 100644 --- a/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx +++ b/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx @@ -787,7 +787,7 @@ % "normal" \@@_load_fontname:Nn \l_fontspec_fontname_tl {\l_@@_sizedfont_tl} - \@@_setup_nfss:Nnnn \l_@@_nfss_tl {#1} {\l_@@_sizing_leftover_clist} {} + \@@_setup_nfss:Nn \l_@@_nfss_tl { #1 , \l_@@_sizing_leftover_clist } %<debug> \typeout{===~ sized~ font:~ \l_@@_sizedfont_tl} % small caps @@ -812,20 +812,22 @@ \bool_if:NF \l_@@_nosc_bool { - \@@_setup_nfss:Nnnn \l_@@_nfss_sc_tl - {#1} {\l_@@_sizing_leftover_clist} {\l_@@_fontfeat_curr_clist} + \@@_setup_nfss:Nn \l_@@_nfss_sc_tl + {#1 , \l_@@_sizing_leftover_clist , \l_@@_fontfeat_curr_clist} } } % \end{macrocode} % \end{macro} % -% \begin{macro}{\@@_setup_nfss:Nnnn} +% \begin{macro}{\@@_setup_nfss:Nn} % \begin{macrocode} -\cs_new:Nn \@@_setup_nfss:Nnnn +\cs_new:Nn \@@_setup_nfss:Nn { %<debug>\typeout{====~Setup~NFSS~shape:~<\l_@@_size_tl>~\l_fontspec_fontname_tl} +%<debug>\typeout{====~Requested~features:~#2} + + \@@_get_features:n { #2 } - \@@_get_features:n { #2 , #3 , #4 } %<debug>\typeout{====~Gathered~features:~\g_@@_rawfeatures_sclist \@@_get_variations:} \tl_if_empty:NF \l_@@_scale_tl @@ -976,22 +978,25 @@ } (#1/#2)~ with~ NFSS~ spec.:~ \l_@@_nfss_tl - \exp_not:n { \\ } - -~ \exp_not:N \str_case:nn { #1 / \@@_combo_sc_shape:n {#2} } - { - {\mddefault/\scdefault} {'small~ caps'~} - {\bfdefault/\scdefault} {'bold~ small~ caps'~} - {\mddefault/\scitdefault} {'italic~ small~ caps'~} - {\bfdefault/\scitdefault} {'bold~ italic~ small~ caps'~} - {\mddefault/\scsldefault} {'slanted~ small~ caps'~} - {\bfdefault/\scsldefault} {'bold~ slanted~ small~ caps'~} - }~( #1 / \@@_combo_sc_shape:n {#2} )~ - with~ NFSS~ spec.:~ - \l_@@_nfss_sc_tl - \tl_if_empty:fF {\l_@@_postadjust_tl} + \tl_if_empty:NF \l_@@_nfss_sc_tl { - \exp_not:N \\ and~ font~ adjustment~ code: - \exp_not:N \\ \l_@@_postadjust_tl + \exp_not:n { \\ } + -~ \exp_not:N \str_case:nn { #1 / \@@_combo_sc_shape:n {#2} } + { + {\mddefault/\scdefault} {'small~ caps'~} + {\bfdefault/\scdefault} {'bold~ small~ caps'~} + {\mddefault/\scitdefault} {'italic~ small~ caps'~} + {\bfdefault/\scitdefault} {'bold~ italic~ small~ caps'~} + {\mddefault/\scsldefault} {'slanted~ small~ caps'~} + {\bfdefault/\scsldefault} {'bold~ slanted~ small~ caps'~} + }~( #1 / \@@_combo_sc_shape:n {#2} )~ + with~ NFSS~ spec.:~ + \l_@@_nfss_sc_tl + \tl_if_empty:fF {\l_@@_postadjust_tl} + { + \exp_not:N \\ and~ font~ adjustment~ code: + \exp_not:N \\ \l_@@_postadjust_tl + } } } } @@ -1028,16 +1033,30 @@ % \end{macro} % % +% \begin{macro}{\@@_make_smallcaps:TF} % \begin{macro}{\@@_make_ot_smallcaps:TF} % \label{mac:makesmallcaps} % This macro checks if the font contains small caps. % \begin{macrocode} -%<LU>\cs_new:Nn \@@_make_smallcaps:TF -%<XE>\cs_new:Nn \@@_make_ot_smallcaps:TF +\cs_new:Nn \@@_make_ot_smallcaps:TF { - \exp_args:No \@@_check_ot_feat:NnTF \l_@@_fontface_cs_tl {smcp} {#1} {#2} + \bool_set_false:N \l_@@_tmpa_bool + \exp_args:Ne \clist_map_inline:nn { \l_@@_lang_tl , \g_@@_default_langs_clist } + { + \exp_args:Ne \clist_map_inline:nn { \l_@@_script_tl , \g_@@_default_scripts_clist } + { + \exp_args:No \@@_check_ot_feat:NnnnT \l_@@_fontface_cs_tl {smcp} {##1} {####1} + { +%<debug>\typeout{SMCP~found~for~script/lang: ####1/##1~-~assuming~okay} + \bool_set_true:N \l_@@_tmpa_bool + \clist_map_break: + } + } + } + \bool_if:NTF \l_@@_tmpa_bool {#1} {#2} } -%<*XE> +% \end{macrocode} +% \begin{macrocode} \cs_new:Nn \@@_make_smallcaps:TF { \bool_if:NTF \l_@@_ot_bool @@ -1050,9 +1069,9 @@ } } } -%</XE> % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\@@_update_featstr:n} % \cmd{\g_@@_rawfeatures_sclist} is the string used to define the list of specific diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx index 2904f7350e..9def7adde6 100644 --- a/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx +++ b/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx @@ -153,6 +153,12 @@ { '#1' doesn't appear to have an Optical Size axis. } +\@@_msg_new:nn {script-not-exist} + { + Script '#2' not explicitly supported within font '#1'. + Check the typeset output, and if it is okay then ignore this warning. + Otherwise a different font should be chosen. + } \@@_msg_new:nn {language-not-exist} { Language '#1' not explicitly supported @@ -232,12 +238,6 @@ { Adjusting the maths setup (use [no-math] to avoid this). } -\@@_msg_new:nn {no-script} - { - Script '#2' not explicitly supported within font '#1'. - Check the typeset output, and if it is okay then ignore this warning. - Otherwise a different font should be chosen. - } \@@_msg_new:nn {opa-twice} { Opacity set twice, in both Colour and Opacity.\\ diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx index dab45952c6..81c1d2b041 100644 --- a/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx +++ b/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx @@ -258,7 +258,6 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_check_ot_feat:NnTF} % \begin{macro}{\@@_check_ot_feat:NnnnTF} % This macro takes an OpenType feature tag and checks if it exists in the current % font/script/language. @@ -267,15 +266,7 @@ % number corresponding to `|latn|'. The language used is \cmd\l_@@_language_int, % by default |0|, the `default language'. % \begin{macrocode} -\prg_new_conditional:Nnn \@@_check_ot_feat:Nn {TF,F} - { - \@@_check_ot_feat:NnnnTF #1 {#2} {\l_@@_lang_tl} {\l_@@_script_tl} - {\prg_return_true:} {\prg_return_false:} - } -% \end{macrocode} -% -% \begin{macrocode} -\prg_new_conditional:Nnn \@@_check_ot_feat:Nnnn {TF,F} +\prg_new_conditional:Nnn \@@_check_ot_feat:Nnnn {TF,T,F} { \bool_if:NTF \l_@@_never_check_bool { \prg_return_true: } @@ -325,7 +316,6 @@ } % \end{macrocode} % \end{macro} -% \end{macro} % % \subsection{OpenType feature information} % diff --git a/macros/unicodetex/latex/fontspec/fontspec-code.pdf b/macros/unicodetex/latex/fontspec/fontspec-code.pdf Binary files differindex cf04b4a6a2..8c60948f4c 100644 --- a/macros/unicodetex/latex/fontspec/fontspec-code.pdf +++ b/macros/unicodetex/latex/fontspec/fontspec-code.pdf diff --git a/macros/unicodetex/latex/fontspec/fontspec.dtx b/macros/unicodetex/latex/fontspec/fontspec.dtx index ea7bbffe55..4a9e99b18f 100644 --- a/macros/unicodetex/latex/fontspec/fontspec.dtx +++ b/macros/unicodetex/latex/fontspec/fontspec.dtx @@ -70,7 +70,7 @@ \ProvidesExplFile{fontspec.dtx} %</dtx> %<*fontspec> - {2024/05/07}{2.9d}{Font selection for XeLaTeX and LuaLaTeX} + {2024/05/11}{2.9e}{Font selection for XeLaTeX and LuaLaTeX} %</fontspec> % \end{macrocode} % @@ -89,8 +89,8 @@ %<lua>local fontspec = fontspec %<lua>fontspec.module = { %<lua> name = "fontspec", -%<lua> version = "2.9d", -%<lua> date = "2024/05/07", +%<lua> version = "2.9e", +%<lua> date = "2024/05/11", %<lua> description = "Font selection for XeLaTeX and LuaLaTeX", %<lua> author = "Khaled Hosny, Philipp Gesang, Will Robertson", %<lua> copyright = "Khaled Hosny, Philipp Gesang, Will Robertson", diff --git a/macros/unicodetex/latex/fontspec/fontspec.pdf b/macros/unicodetex/latex/fontspec/fontspec.pdf Binary files differindex 643375da1e..1f883d80f1 100644 --- a/macros/unicodetex/latex/fontspec/fontspec.pdf +++ b/macros/unicodetex/latex/fontspec/fontspec.pdf |