summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-05-12 03:01:16 +0000
committerNorbert Preining <norbert@preining.info>2024-05-12 03:01:16 +0000
commit0140cc7eb697ba5925de5312dd0419e7717acca9 (patch)
treecb7751d3c8cda806166e8a6d17f1a901bdf760ac /macros
parentf04305edb464261c7040b9ba9c1ebf0747536190 (diff)
CTAN sync 202405120301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin1691169 -> 1783164 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex314
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdfbin73910 -> 74004 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex427
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex242
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty4
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex14
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex30
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex390
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex189
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex183
-rw-r--r--macros/latex/contrib/reledmac/doc-include/migrate-mac.dtx2
-rw-r--r--macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdfbin40793 -> 40800 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdfbin201564 -> 201562 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalnotes.pdfbin197819 -> 197818 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-sidenotes.pdfbin295209 -> 295212 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-tabular.pdfbin285556 -> 285559 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdfbin198959 -> 198959 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses.pdfbin198794 -> 198796 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-antilabe.pdfbin210969 -> 210970 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-cross_referencing.pdfbin198304 -> 198303 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdfbin201443 -> 201445 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-glossaries.pdfbin285503 -> 285501 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-indexing.pdfbin278070 -> 278069 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdfbin276219 -> 276219 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdfbin292434 -> 292435 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-linespacing.pdfbin286626 -> 286624 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdfbin288123 -> 288122 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-notes-width.pdfbin204669 -> 204669 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdfbin212242 -> 212239 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-performances.pdfbin284583 -> 284580 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdfbin36940 -> 36941 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdfbin310603 -> 310601 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdfbin288795 -> 288795 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdfbin199918 -> 199919 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdfbin23442 -> 23444 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdfbin175650 -> 175645 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdfbin32047 -> 32049 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdfbin289211 -> 289211 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdfbin200041 -> 200045 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdfbin199278 -> 199281 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdfbin177110 -> 177110 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdfbin199681 -> 199684 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdfbin198615 -> 198615 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdfbin198665 -> 198673 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdfbin198797 -> 198798 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdfbin214377 -> 214375 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdfbin210488 -> 210491 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdfbin204974 -> 204973 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdfbin298422 -> 298425 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdfbin204015 -> 204015 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdfbin225555 -> 225554 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdfbin251002 -> 251039 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdfbin202381 -> 202382 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdfbin198565 -> 198565 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdfbin302774 -> 302779 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdfbin206955 -> 206948 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdfbin194198 -> 194201 bytes
-rw-r--r--macros/latex/contrib/reledmac/migration.pdfbin368423 -> 368433 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledmac.dtx29
-rw-r--r--macros/latex/contrib/reledmac/reledmac.pdfbin2159903 -> 2162033 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledpar.dtx4
-rw-r--r--macros/latex/contrib/reledmac/reledpar.pdfbin1046923 -> 1041243 bytes
-rw-r--r--macros/unicodetex/latex/fontspec/CHANGES.md13
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-api.dtx2
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx63
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx71
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx12
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx12
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code.pdfbin704184 -> 686785 bytes
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec.dtx6
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec.pdfbin496860 -> 524650 bytes
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
index b2c61b2f61..000537a0d4 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
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
index f8e331e0a6..5e6698109f 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
Binary files differ
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
index 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
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
index 9c77ee92d8..58f1d6981d 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
index e25e9f9fd2..ea2f749d32 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
index 22b5bd2729..2d7130fcb9 100644
--- a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-tabular.pdf b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
index 2e09c62414..d7a945978b 100644
--- a/macros/latex/contrib/reledmac/examples/1-tabular.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
index f4641e8ed2..75b679b50d 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses.pdf b/macros/latex/contrib/reledmac/examples/1-verses.pdf
index 345486a466..e1d1b6af19 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
index 725b561e91..f7b843c631 100644
--- a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
index bb84710a9b..1c53f875a0 100644
--- a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
index b1fb90d576..c9e6daca45 100644
--- a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
index bc1cc26fa3..f702632cf3 100644
--- a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-indexing.pdf b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
index bd9a1ac760..ca3b90abcc 100644
--- a/macros/latex/contrib/reledmac/examples/2-indexing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
index 785306eb4c..95a09523d9 100644
--- a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
Binary files differ
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
index 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
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
index 4d32ac79ca..67424c3e0c 100644
--- a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
index 4deece32c7..362ff7012a 100644
--- a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
index be687afa88..0fe795532a 100644
--- a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
Binary files differ
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
index 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
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-performances.pdf b/macros/latex/contrib/reledmac/examples/2-performances.pdf
index 822f29af7e..e68f4f3b49 100644
--- a/macros/latex/contrib/reledmac/examples/2-performances.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-performances.pdf
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
index d62f7e46a6..65e77b6045 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
diff --git a/macros/latex/contrib/reledmac/migration.pdf b/macros/latex/contrib/reledmac/migration.pdf
index 3bb51a2f91..50d46b721e 100644
--- a/macros/latex/contrib/reledmac/migration.pdf
+++ b/macros/latex/contrib/reledmac/migration.pdf
Binary files differ
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
index fcc8c9d698..bc1f8b20f9 100644
--- a/macros/latex/contrib/reledmac/reledmac.pdf
+++ b/macros/latex/contrib/reledmac/reledmac.pdf
Binary files differ
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
index 787452ce62..84a3fd4ec0 100644
--- a/macros/latex/contrib/reledmac/reledpar.pdf
+++ b/macros/latex/contrib/reledmac/reledpar.pdf
Binary files differ
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
index cf04b4a6a2..8c60948f4c 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code.pdf
+++ b/macros/unicodetex/latex/fontspec/fontspec-code.pdf
Binary files differ
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
index 643375da1e..1f883d80f1 100644
--- a/macros/unicodetex/latex/fontspec/fontspec.pdf
+++ b/macros/unicodetex/latex/fontspec/fontspec.pdf
Binary files differ