summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CTAN.sites3
-rw-r--r--FILES.byname987
-rw-r--r--FILES.byname.gzbin2526978 -> 2527483 bytes
-rw-r--r--FILES.last07days1123
-rw-r--r--biblio/ctan-bibdata/ctan.bib26
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3665661 -> 3664264 bytes
-rw-r--r--graphics/pstricks/contrib/luapstricks/README.md32
-rw-r--r--graphics/pstricks/contrib/luapstricks/luapstricks-plugin-pstmarble.lua662
-rw-r--r--graphics/pstricks/contrib/luapstricks/luapstricks.lua67
-rw-r--r--macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdfbin9028642 -> 9138986 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex177
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex2
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFactorisation.tex236
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex104
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPythagore.tex119
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex516
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCReperage.tex215
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex1
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex18
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex37
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCStatistiques.tex9
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrio.tex273
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty8
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp2
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCObjets.mp285
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCSolid.mp27
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin815001 -> 848758 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex2805
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdfbin60451 -> 61451 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex2
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdfbin44183 -> 44184 bytes
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty3178
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex149
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex386
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex311
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex139
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex525
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex146
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex16
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex748
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex246
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex198
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex213
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex760
-rw-r--r--macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-en.pdfbin0 -> 234048 bytes
-rw-r--r--macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-sc.pdfbin0 -> 307743 bytes
-rw-r--r--macros/luatex/generic/evangelion-jfm/Evangelion-JFM.dtx361
-rw-r--r--macros/luatex/generic/evangelion-jfm/Evangelion-doc.pdfbin291718 -> 0 bytes
-rw-r--r--macros/luatex/generic/evangelion-jfm/Evangelion-doc.tex225
-rw-r--r--macros/luatex/generic/evangelion-jfm/README.md78
-rw-r--r--macros/luatex/generic/evangelion-jfm/figure/fig-jp.pdfbin0 -> 10077 bytes
-rw-r--r--macros/luatex/generic/evangelion-jfm/figure/fig-tc.pdfbin0 -> 10535 bytes
-rw-r--r--macros/luatex/generic/evangelion-jfm/figure/fig.tex18
-rw-r--r--macros/luatex/generic/evangelion-jfm/jfm-eva.lua128
-rw-r--r--macros/luatex/generic/evangelion-jfm/make.sh22
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb100
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2443060 -> 2444660 bytes
-rw-r--r--systems/win32/miktex/tm/packages/files.csv.lzmabin758088 -> 761928 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/files.csv.lzmabin758119 -> 762157 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini10
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini12
-rw-r--r--timestamp2
69 files changed, 9607 insertions, 6145 deletions
diff --git a/CTAN.sites b/CTAN.sites
index 6be4184568..8fac4449c8 100644
--- a/CTAN.sites
+++ b/CTAN.sites
@@ -563,9 +563,6 @@ by country):
URL: http://mirror.mwt.me/ctan/
URL: https://mirror.mwt.me/ctan/
- mirrors.concertpass.com (USA)
- URL: https://mirrors.concertpass.com/tex-archive/
-
mirrors.mit.edu (USA)
URL: https://mirrors.mit.edu/CTAN/
URL: http://mirrors.mit.edu/CTAN/
diff --git a/FILES.byname b/FILES.byname
index 4d66de6ec4..cba9192d67 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2056,12 +2056,12 @@
2023/04/13 | 1675 | biblio/citation-style-language/README.md
2023/04/13 | 11957 | biblio/citation-style-language/vancouver.csl
2023/04/13 | 4516625 | biblio/citation-style-language.zip
-2023/04/14 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/04/15 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/04/14 | 2778051 | biblio/ctan-bibdata/ctan.bib
-2023/04/14 | 3664255 | biblio/ctan-bibdata/ctan.pdf
+2023/04/15 | 2778849 | biblio/ctan-bibdata/ctan.bib
+2023/04/15 | 3665661 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/04/14 | 4061669 | biblio/ctan-bibdata.zip
+2023/04/15 | 4063520 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5417,7 +5417,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2023/04/14 | 158601 | FILES.last07days
+2023/04/15 | 185841 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -163502,10 +163502,11 @@
2023/03/21 | 100214 | graphics/pstricks/contrib/egpeirce/egpeirce.sty
2023/03/21 | 2377 | graphics/pstricks/contrib/egpeirce/README.md
2023/03/21 | 5374404 | graphics/pstricks/contrib/egpeirce.zip
-2023/02/18 | 132439 | graphics/pstricks/contrib/luapstricks/luapstricks.lua
-2023/02/18 | 7624 | graphics/pstricks/contrib/luapstricks/PSTricksDotFont.otf
-2023/02/18 | 3369 | graphics/pstricks/contrib/luapstricks/README.md
-2023/02/18 | 31970 | graphics/pstricks/contrib/luapstricks.zip
+2023/04/15 | 134212 | graphics/pstricks/contrib/luapstricks/luapstricks.lua
+2023/04/15 | 18964 | graphics/pstricks/contrib/luapstricks/luapstricks-plugin-pstmarble.lua
+2023/04/15 | 7624 | graphics/pstricks/contrib/luapstricks/PSTricksDotFont.otf
+2023/04/15 | 1667 | graphics/pstricks/contrib/luapstricks/README.md
+2023/04/15 | 36968 | graphics/pstricks/contrib/luapstricks.zip
2009/08/26 | 42811 | graphics/pstricks/contrib/makeplot/makeplot.dtx
2009/08/26 | 2006 | graphics/pstricks/contrib/makeplot/makeplot.ins
2009/08/26 | 147019 | graphics/pstricks/contrib/makeplot/makeplot.pdf
@@ -201632,11 +201633,11 @@
2022/12/30 | 103780 | macros/context/contrib/context-calendar-examples/doc/context/third/calendar-examples/t-intervalcalendar-module-doc.pdf
2023/03/09 | 13 | macros/context/contrib/context-calendar-examples/LICENSE
2023/01/20 | 12406 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/A5-day_per_page.tex
-2023/01/20 | 9791 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/A6-1week_per_2pages.tex
+2023/04/14 | 10288 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/A6-1week_per_2pages.tex
2023/03/23 | 7452 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/Menu-calendar.tex
2023/01/20 | 4579 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/Photocalendar.tex
-2023/01/20 | 12441 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/Sundata-calendar.tex
-2023/03/23 | 10 | macros/context/contrib/context-calendar-examples/VERSION
+2023/04/14 | 12308 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/Sundata-calendar.tex
+2023/04/14 | 10 | macros/context/contrib/context-calendar-examples/VERSION
2008/04/05 | 162815 | macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-demo.pdf
2008/04/05 | 81559 | macros/context/contrib/context-chromato/doc/context/third/chromato/chromato-doc.pdf
2008/04/05 | 4603 | macros/context/contrib/context-chromato/tex/context/third/chromato/t-chromato.tex
@@ -201852,71 +201853,71 @@
2013/02/24 | 32828 | macros/context/contrib/context-simplefonts/tex/context/third/simplefonts/t-simplefonts.mkiv
2022/09/17 | 11 | macros/context/contrib/context-simplefonts/VERSION
2022/09/18 | 12712 | macros/context/contrib/context-simplefonts.zip
-2022/07/14 | 7913 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/example.pdf
-2022/07/14 | 313 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/example.tex
-2022/07/14 | 3422868 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/simpleslides.pdf
-2022/07/14 | 39262 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/simpleslides.tex
-2022/07/14 | 6100 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/generic-talk-15min-45min.tex
-2022/07/14 | 2325 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/speaker_introduction-2min.tex
-2022/07/14 | 4879 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/style-template.tex
-2022/07/14 | 189532 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BigNumber-blue.pdf
-2022/07/14 | 189531 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BigNumber-red.pdf
-2022/07/14 | 188009 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BottomSquares.pdf
-2022/07/14 | 201446 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Boxed.pdf
-2022/07/14 | 187600 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Ellipse.pdf
-2022/07/14 | 190594 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Embossed.pdf
-2022/07/14 | 188262 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Framed-square.pdf
-2022/07/14 | 185906 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Framed-stripe.pdf
-2022/07/14 | 186955 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/FramedTitle.pdf
-2022/07/14 | 185500 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-blue.pdf
-2022/07/14 | 185513 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-green.pdf
-2022/07/14 | 185494 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-red.pdf
-2022/07/14 | 188296 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-blue.pdf
-2022/07/14 | 188333 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-green.pdf
-2022/07/14 | 188310 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-red.pdf
-2022/07/14 | 185424 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/RainbowStripe.pdf
-2022/07/14 | 192564 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Rounded.pdf
-2022/07/14 | 187382 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-blue.pdf
-2022/07/14 | 187329 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-bluered.pdf
-2022/07/14 | 187256 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-green.pdf
-2022/07/14 | 188985 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/SideSquares.pdf
-2022/07/14 | 191756 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/SideToc.pdf
-2022/07/14 | 190849 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Split.pdf
-2022/07/14 | 185983 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Sunrise.pdf
-2022/07/14 | 196000 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Swoosh.pdf
-2022/07/14 | 187515 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/ThickStripes.pdf
-2022/07/14 | 17337 | macros/context/contrib/context-simpleslides/LICENSE
-2022/07/14 | 4709 | macros/context/contrib/context-simpleslides/README.md
-2022/07/14 | 5736 | macros/context/contrib/context-simpleslides/scripts/context/lua/third/simpleslides/mtx-simpleslides.lua
-2022/07/14 | 9672 | macros/context/contrib/context-simpleslides/tex/context/interface/third/t-simpleslides.xml
-2022/07/14 | 6555 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BigNumber.tex
-2022/07/14 | 4469 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BlackBoard.tex
-2022/07/14 | 5014 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BottomSquares.tex
-2022/07/14 | 4812 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Boxed.tex
-2022/07/14 | 5823 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BoxedTitle.tex
-2022/07/14 | 32655 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-default.tex
-2022/07/14 | 3697 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Ellipse.tex
-2022/07/14 | 4777 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Embossed.tex
-2022/07/14 | 6474 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-fontsdefault.mkiv
-2022/07/14 | 6017 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Framed.tex
-2022/07/14 | 4648 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FramedTitle.tex
-2022/07/14 | 7440 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FuzzyFrame.tex
-2022/07/14 | 13835 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FuzzyTopic.tex
-2022/07/14 | 5671 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-HorizontalStripes.tex
-2022/07/14 | 5347 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-NarrowStripes.tex
-2022/07/14 | 4766 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-PlainCounter.tex
-2022/07/14 | 7804 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-RainbowStripe.tex
-2022/07/14 | 6090 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Rounded.tex
-2022/07/14 | 4826 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Shaded.tex
-2022/07/14 | 4457 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-SideSquares.tex
-2022/07/14 | 9359 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-SideToc.tex
-2022/07/14 | 6242 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Split.tex
-2022/07/14 | 6085 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Sunrise.tex
-2022/07/14 | 9037 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Swoosh.tex
-2022/07/14 | 4209 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-ThickStripes.tex
-2022/07/14 | 2825 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/t-simpleslides.mkiv
-2022/07/14 | 11 | macros/context/contrib/context-simpleslides/VERSION
-2022/07/15 | 8320949 | macros/context/contrib/context-simpleslides.zip
+2023/04/14 | 7913 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/example.pdf
+2023/04/14 | 313 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/example.tex
+2023/04/14 | 3422868 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/simpleslides.pdf
+2023/04/14 | 39262 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/simpleslides.tex
+2023/04/14 | 6100 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/generic-talk-15min-45min.tex
+2023/04/14 | 2325 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/speaker_introduction-2min.tex
+2023/04/14 | 4879 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/style-template.tex
+2023/04/14 | 189532 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BigNumber-blue.pdf
+2023/04/14 | 189531 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BigNumber-red.pdf
+2023/04/14 | 188009 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BottomSquares.pdf
+2023/04/14 | 201446 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Boxed.pdf
+2023/04/14 | 187600 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Ellipse.pdf
+2023/04/14 | 190594 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Embossed.pdf
+2023/04/14 | 188262 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Framed-square.pdf
+2023/04/14 | 185906 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Framed-stripe.pdf
+2023/04/14 | 186955 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/FramedTitle.pdf
+2023/04/14 | 185500 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-blue.pdf
+2023/04/14 | 185513 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-green.pdf
+2023/04/14 | 185494 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-red.pdf
+2023/04/14 | 188296 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-blue.pdf
+2023/04/14 | 188333 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-green.pdf
+2023/04/14 | 188310 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-red.pdf
+2023/04/14 | 185424 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/RainbowStripe.pdf
+2023/04/14 | 192564 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Rounded.pdf
+2023/04/14 | 187382 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-blue.pdf
+2023/04/14 | 187329 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-bluered.pdf
+2023/04/14 | 187256 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-green.pdf
+2023/04/14 | 188985 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/SideSquares.pdf
+2023/04/14 | 191756 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/SideToc.pdf
+2023/04/14 | 190849 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Split.pdf
+2023/04/14 | 185983 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Sunrise.pdf
+2023/04/14 | 196000 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Swoosh.pdf
+2023/04/14 | 187515 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/ThickStripes.pdf
+2023/04/14 | 17337 | macros/context/contrib/context-simpleslides/LICENSE
+2023/04/14 | 4757 | macros/context/contrib/context-simpleslides/README.md
+2023/04/14 | 5736 | macros/context/contrib/context-simpleslides/scripts/context/lua/third/simpleslides/mtx-simpleslides.lua
+2023/04/14 | 9750 | macros/context/contrib/context-simpleslides/tex/context/interface/third/t-simpleslides.xml
+2023/04/14 | 6555 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BigNumber.tex
+2023/04/14 | 4469 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BlackBoard.tex
+2023/04/14 | 5014 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BottomSquares.tex
+2023/04/14 | 4812 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Boxed.tex
+2023/04/14 | 5823 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BoxedTitle.tex
+2023/04/14 | 32655 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-default.tex
+2023/04/14 | 3697 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Ellipse.tex
+2023/04/14 | 4777 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Embossed.tex
+2023/04/14 | 6719 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-fontsdefault.mkiv
+2023/04/14 | 6017 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Framed.tex
+2023/04/14 | 4648 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FramedTitle.tex
+2023/04/14 | 7440 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FuzzyFrame.tex
+2023/04/14 | 13835 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FuzzyTopic.tex
+2023/04/14 | 5671 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-HorizontalStripes.tex
+2023/04/14 | 5347 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-NarrowStripes.tex
+2023/04/14 | 4766 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-PlainCounter.tex
+2023/04/14 | 7804 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-RainbowStripe.tex
+2023/04/14 | 6090 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Rounded.tex
+2023/04/14 | 4826 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Shaded.tex
+2023/04/14 | 4457 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-SideSquares.tex
+2023/04/14 | 9359 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-SideToc.tex
+2023/04/14 | 6242 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Split.tex
+2023/04/14 | 6085 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Sunrise.tex
+2023/04/14 | 9037 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Swoosh.tex
+2023/04/14 | 4209 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-ThickStripes.tex
+2023/04/14 | 2825 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/t-simpleslides.mkiv
+2023/04/14 | 11 | macros/context/contrib/context-simpleslides/VERSION
+2023/04/15 | 8321040 | macros/context/contrib/context-simpleslides.zip
2017/08/27 | 25415 | macros/context/contrib/context-title/doc/context/third/title/title-doc.pdf
2017/08/27 | 2538 | macros/context/contrib/context-title/tex/context/interface/third/t-title.xml
2017/08/27 | 3343 | macros/context/contrib/context-title/tex/context/third/title/t-title.mkvi
@@ -233203,110 +233204,115 @@
2022/05/05 | 80898 | macros/latex/contrib/prociagssymp/TestprocIAGssymp.pdf
2022/05/05 | 6335 | macros/latex/contrib/prociagssymp/TestprocIAGssymp.tex
2022/05/06 | 86110 | macros/latex/contrib/prociagssymp.zip
-2023/03/23 | 9028642 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
-2023/03/23 | 2636015 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
-2023/03/23 | 10951 | macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
-2023/03/23 | 2939 | macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
-2023/03/23 | 3431 | macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
-2023/03/23 | 8271 | macros/latex/contrib/profcollege/latex/PfCBillard.tex
-2023/03/23 | 2072 | macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
-2023/03/23 | 4034 | macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
-2023/03/23 | 14927 | macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
-2023/03/23 | 10530 | macros/latex/contrib/profcollege/latex/PfCCalisson.tex
-2023/03/23 | 14157 | macros/latex/contrib/profcollege/latex/PfCCAN.tex
-2023/03/23 | 20113 | macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
-2023/03/23 | 1528 | macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
-2023/03/23 | 9699 | macros/latex/contrib/profcollege/latex/PfCCartographie.tex
-2023/03/23 | 7088 | macros/latex/contrib/profcollege/latex/PfCColorilude.tex
-2023/03/23 | 11250 | macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
-2023/03/23 | 8180 | macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
-2023/03/23 | 3618 | macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
-2023/03/23 | 22985 | macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
-2023/03/23 | 9367 | macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
-2023/03/23 | 14131 | macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
-2023/03/23 | 9986 | macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
-2023/03/23 | 4664 | macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
-2023/03/23 | 58462 | macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
-2023/03/23 | 4117 | macros/latex/contrib/profcollege/latex/PfCDomino.tex
-2023/03/23 | 9413 | macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
-2023/03/23 | 2473 | macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
-2023/03/23 | 11419 | macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
-2023/03/23 | 3043 | macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
-2023/03/23 | 10633 | macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
-2023/03/23 | 3765 | macros/latex/contrib/profcollege/latex/PfCEnquete.tex
+2023/04/15 | 9138986 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2023/04/15 | 2647945 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
+2023/04/15 | 10951 | macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
+2023/04/15 | 2939 | macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
+2023/04/15 | 3431 | macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
+2023/04/15 | 8271 | macros/latex/contrib/profcollege/latex/PfCBillard.tex
+2023/04/15 | 2072 | macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
+2023/04/15 | 4034 | macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+2023/04/15 | 14927 | macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
+2023/04/15 | 6148 | macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
+2023/04/15 | 10530 | macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+2023/04/15 | 14157 | macros/latex/contrib/profcollege/latex/PfCCAN.tex
+2023/04/15 | 20192 | macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+2023/04/15 | 1528 | macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
+2023/04/15 | 9699 | macros/latex/contrib/profcollege/latex/PfCCartographie.tex
+2023/04/15 | 7088 | macros/latex/contrib/profcollege/latex/PfCColorilude.tex
+2023/04/15 | 11250 | macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
+2023/04/15 | 8180 | macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
+2023/04/15 | 3618 | macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
+2023/04/15 | 22985 | macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
+2023/04/15 | 9367 | macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
+2023/04/15 | 14131 | macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
+2023/04/15 | 9986 | macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
+2023/04/15 | 4664 | macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
+2023/04/15 | 58462 | macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
+2023/04/15 | 4117 | macros/latex/contrib/profcollege/latex/PfCDomino.tex
+2023/04/15 | 9413 | macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
+2023/04/15 | 2473 | macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
+2023/04/15 | 11417 | macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
+2023/04/15 | 3043 | macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
+2023/04/15 | 10633 | macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
+2023/04/15 | 3765 | macros/latex/contrib/profcollege/latex/PfCEnquete.tex
2021/08/22 | 23478 | macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex
2021/08/22 | 19350 | macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex
2021/08/22 | 20438 | macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex
2021/08/22 | 27165 | macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex
2021/08/22 | 15309 | macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex
2021/08/22 | 22791 | macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex
-2023/03/23 | 3280 | macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
-2023/03/23 | 15575 | macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
-2023/03/23 | 7244 | macros/latex/contrib/profcollege/latex/PfCFrise.tex
-2023/03/23 | 4692 | macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
-2023/03/23 | 2155 | macros/latex/contrib/profcollege/latex/PfCGaram.tex
-2023/03/23 | 1596 | macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
-2023/03/23 | 2285 | macros/latex/contrib/profcollege/latex/PfCGrades.tex
-2023/03/23 | 2211 | macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
-2023/03/23 | 2605 | macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
-2023/03/23 | 2276 | macros/latex/contrib/profcollege/latex/PfCKakuro.tex
-2023/03/23 | 3835 | macros/latex/contrib/profcollege/latex/PfCKenKen.tex
-2023/03/23 | 9427 | macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
-2023/03/23 | 23088 | macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
-2023/03/23 | 2837 | macros/latex/contrib/profcollege/latex/PfCMentalo.tex
-2023/03/23 | 5365 | macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
-2023/03/23 | 11943 | macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
-2023/03/23 | 4548 | macros/latex/contrib/profcollege/latex/PfCMosaique.tex
-2023/03/23 | 2815 | macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
-2023/03/23 | 2222 | macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
-2023/03/23 | 1862 | macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
-2023/03/23 | 6428 | macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
-2023/03/23 | 15546 | macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
-2023/03/23 | 4730 | macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
-2023/03/23 | 15169 | macros/latex/contrib/profcollege/latex/PfCPapiers.tex
-2023/03/23 | 4138 | macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
-2023/03/23 | 8113 | macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
-2023/03/23 | 7695 | macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
-2023/03/23 | 6260 | macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
-2023/03/23 | 15260 | macros/latex/contrib/profcollege/latex/PfCPropor.tex
-2023/03/23 | 11026 | macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
-2023/03/23 | 7072 | macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
-2023/03/23 | 7102 | macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
-2023/03/23 | 9453 | macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
-2023/03/23 | 28937 | macros/latex/contrib/profcollege/latex/PfCPythagore.tex
-2023/03/23 | 25302 | macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
-2023/03/23 | 2305 | macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
-2023/03/23 | 2617 | macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
-2023/03/23 | 2724 | macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
-2023/03/23 | 1777 | macros/latex/contrib/profcollege/latex/PfCRapido.tex
-2023/03/23 | 28434 | macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
-2023/03/23 | 65296 | macros/latex/contrib/profcollege/latex/PfCReperage.tex
-2023/03/23 | 14836 | macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
-2023/03/23 | 5561 | macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
-2023/03/23 | 27597 | macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
-2023/03/23 | 5248 | macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
-2023/03/23 | 7797 | macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
-2023/03/23 | 16197 | macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
-2023/03/23 | 4736 | macros/latex/contrib/profcollege/latex/PfCRLE.tex
-2023/03/23 | 16349 | macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
-2023/03/23 | 10074 | macros/latex/contrib/profcollege/latex/PfCRose.tex
-2023/03/23 | 1488 | macros/latex/contrib/profcollege/latex/PfCScratch.tex
-2023/03/23 | 8711 | macros/latex/contrib/profcollege/latex/PfCShikaku.tex
-2023/03/23 | 6866 | macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
-2023/03/23 | 28303 | macros/latex/contrib/profcollege/latex/PfCSolides.tex
-2023/03/23 | 11740 | macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
-2023/03/23 | 2634 | macros/latex/contrib/profcollege/latex/PfCSquaro.tex
-2023/03/23 | 62627 | macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
-2023/03/23 | 76753 | macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
-2023/03/23 | 2975 | macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
-2023/03/23 | 6030 | macros/latex/contrib/profcollege/latex/PfCTectonic.tex
-2023/03/23 | 56986 | macros/latex/contrib/profcollege/latex/PfCThales.tex
-2023/03/23 | 8221 | macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
-2023/03/23 | 24665 | macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
-2023/03/23 | 9951 | macros/latex/contrib/profcollege/latex/PfCTriominos.tex
-2023/03/23 | 9815 | macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
-2023/03/23 | 8676 | macros/latex/contrib/profcollege/latex/PfCYohaku.tex
-2023/03/23 | 17950 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2023/04/15 | 15072 | macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
+2023/04/15 | 3280 | macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
+2023/04/15 | 15575 | macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
+2023/04/15 | 7244 | macros/latex/contrib/profcollege/latex/PfCFrise.tex
+2023/04/15 | 4692 | macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
+2023/04/15 | 2155 | macros/latex/contrib/profcollege/latex/PfCGaram.tex
+2023/04/15 | 1596 | macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
+2023/04/15 | 2285 | macros/latex/contrib/profcollege/latex/PfCGrades.tex
+2023/04/15 | 2211 | macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
+2023/04/15 | 3751 | macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
+2023/04/15 | 2605 | macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
+2023/04/15 | 2276 | macros/latex/contrib/profcollege/latex/PfCKakuro.tex
+2023/04/15 | 3835 | macros/latex/contrib/profcollege/latex/PfCKenKen.tex
+2023/04/15 | 9427 | macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
+2023/04/15 | 23088 | macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
+2023/04/15 | 2837 | macros/latex/contrib/profcollege/latex/PfCMentalo.tex
+2023/04/15 | 5365 | macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
+2023/04/15 | 11943 | macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
+2023/04/15 | 4548 | macros/latex/contrib/profcollege/latex/PfCMosaique.tex
+2023/04/15 | 2815 | macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
+2023/04/15 | 2222 | macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
+2023/04/15 | 1862 | macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
+2023/04/15 | 6428 | macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
+2023/04/15 | 15573 | macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+2023/04/15 | 4730 | macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
+2023/04/15 | 15169 | macros/latex/contrib/profcollege/latex/PfCPapiers.tex
+2023/04/15 | 4138 | macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
+2023/04/15 | 8113 | macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
+2023/04/15 | 7695 | macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
+2023/04/15 | 6260 | macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
+2023/04/15 | 15260 | macros/latex/contrib/profcollege/latex/PfCPropor.tex
+2023/04/15 | 11026 | macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
+2023/04/15 | 7072 | macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
+2023/04/15 | 7102 | macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
+2023/04/15 | 9453 | macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
+2023/04/15 | 28776 | macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex
+2023/04/15 | 25143 | macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+2023/04/15 | 25302 | macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
+2023/04/15 | 2305 | macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
+2023/04/15 | 2617 | macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
+2023/04/15 | 2980 | macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
+2023/04/15 | 1777 | macros/latex/contrib/profcollege/latex/PfCRapido.tex
+2023/04/15 | 28434 | macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
+2023/04/15 | 71255 | macros/latex/contrib/profcollege/latex/PfCReperage.tex
+2023/04/15 | 14930 | macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
+2023/04/15 | 5561 | macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
+2023/04/15 | 27597 | macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+2023/04/15 | 5248 | macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
+2023/04/15 | 7797 | macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
+2023/04/15 | 16190 | macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+2023/04/15 | 4736 | macros/latex/contrib/profcollege/latex/PfCRLE.tex
+2023/04/15 | 16349 | macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
+2023/04/15 | 10074 | macros/latex/contrib/profcollege/latex/PfCRose.tex
+2023/04/15 | 1488 | macros/latex/contrib/profcollege/latex/PfCScratch.tex
+2023/04/15 | 8711 | macros/latex/contrib/profcollege/latex/PfCShikaku.tex
+2023/04/15 | 7808 | macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+2023/04/15 | 28303 | macros/latex/contrib/profcollege/latex/PfCSolides.tex
+2023/04/15 | 11740 | macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
+2023/04/15 | 2634 | macros/latex/contrib/profcollege/latex/PfCSquaro.tex
+2023/04/15 | 62633 | macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+2023/04/15 | 76753 | macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
+2023/04/15 | 2975 | macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
+2023/04/15 | 6030 | macros/latex/contrib/profcollege/latex/PfCTectonic.tex
+2023/04/15 | 56986 | macros/latex/contrib/profcollege/latex/PfCThales.tex
+2023/04/15 | 8221 | macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
+2023/04/15 | 24665 | macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
+2023/04/15 | 9951 | macros/latex/contrib/profcollege/latex/PfCTriominos.tex
+2023/04/15 | 19900 | macros/latex/contrib/profcollege/latex/PfCTrio.tex
+2023/04/15 | 9815 | macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
+2023/04/15 | 8676 | macros/latex/contrib/profcollege/latex/PfCYohaku.tex
+2023/04/15 | 18043 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
2021/11/06 | 8247 | macros/latex/contrib/profcollege/metapost/datastest/PfCafganistan.dat
2021/11/06 | 10915 | macros/latex/contrib/profcollege/metapost/datastest/PfCafriquesud1.dat
2021/11/06 | 218 | macros/latex/contrib/profcollege/metapost/datastest/PfCafriquesud2.dat
@@ -233515,20 +233521,20 @@
2023/01/28 | 13345 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
2022/05/26 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
2023/01/01 | 2335 | macros/latex/contrib/profcollege/metapost/PfCEngrenages.mp
-2023/03/05 | 52777 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+2023/04/10 | 52774 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
2022/10/12 | 6547 | macros/latex/contrib/profcollege/metapost/PfCLabyNombre.mp
2022/08/16 | 1682 | macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
2022/05/27 | 42844 | macros/latex/contrib/profcollege/metapost/PfCMonde-futurenew.mp
2022/05/26 | 9412 | macros/latex/contrib/profcollege/metapost/PfCMosaique.mp
-2022/11/26 | 67988 | macros/latex/contrib/profcollege/metapost/PfCObjets.mp
+2023/04/15 | 78075 | macros/latex/contrib/profcollege/metapost/PfCObjets.mp
2022/11/02 | 63245 | macros/latex/contrib/profcollege/metapost/PfCPseudo.mp
2023/03/05 | 106514 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
2023/03/05 | 108388 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
-2023/01/01 | 26975 | macros/latex/contrib/profcollege/metapost/PfCSolid.mp
+2023/04/15 | 27287 | macros/latex/contrib/profcollege/metapost/PfCSolid.mp
2022/05/26 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp
2022/11/02 | 1683 | macros/latex/contrib/profcollege/metapost/PfCTurtleTestRemplis.mp
2021/01/18 | 435 | macros/latex/contrib/profcollege/README
-2023/03/23 | 13960286 | macros/latex/contrib/profcollege.zip
+2023/04/15 | 14093611 | macros/latex/contrib/profcollege.zip
2022/04/26 | 130555 | macros/latex/contrib/proflabo/doc/ProfLabo-doc.pdf
2022/04/26 | 16528 | macros/latex/contrib/proflabo/doc/ProfLabo-doc.tex
2022/04/26 | 323 | macros/latex/contrib/proflabo/README.md
@@ -233550,23 +233556,33 @@
2023/01/02 | 9215 | macros/latex/contrib/proflycee/doc/graphics/pl-solve_b.png
2023/01/02 | 10175 | macros/latex/contrib/proflycee/doc/graphics/pl-solve_c.png
2023/01/02 | 10145 | macros/latex/contrib/proflycee/doc/graphics/pl-solve_d.png
-2023/04/06 | 815001 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
-2023/04/06 | 234001 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
-2023/04/06 | 60451 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
-2023/04/06 | 6656 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex
-2023/04/06 | 44183 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf
-2023/04/05 | 5409 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex
+2023/04/15 | 848758 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+2023/04/15 | 243037 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+2023/04/15 | 61451 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
+2023/04/15 | 6656 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex
+2023/04/15 | 44184 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf
+2023/04/15 | 5409 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex
2022/11/06 | 712614 | macros/latex/contrib/proflycee/doc/ProfLycee-old-doc.pdf
2022/11/06 | 192682 | macros/latex/contrib/proflycee/doc/ProfLycee-old-doc.tex
-2023/04/06 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
+2023/04/15 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
2022/08/10 | 439 | macros/latex/contrib/proflycee/README.md
2022/11/06 | 112967 | macros/latex/contrib/proflycee/tex/ProfLycee-old.sty
-2023/04/06 | 119333 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
-2023/04/06 | 10867 | macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
+2023/04/15 | 5769 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
+2023/04/13 | 4195 | macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex
+2023/04/13 | 14230 | macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
+2023/04/13 | 9518 | macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
+2023/04/13 | 4823 | macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex
+2023/04/13 | 15518 | macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
+2023/04/13 | 15681 | macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
2023/04/06 | 3130 | macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
-2023/04/06 | 5828 | macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
+2023/04/11 | 6057 | macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
+2023/04/13 | 33384 | macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
2023/04/06 | 6012 | macros/latex/contrib/proflycee/tex/proflycee-tools-pythontex.tex
-2023/04/06 | 1870590 | macros/latex/contrib/proflycee.zip
+2023/04/13 | 8967 | macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
+2023/04/13 | 6616 | macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
+2023/04/13 | 6608 | macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex
+2023/04/14 | 42525 | macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
+2023/04/15 | 1911889 | macros/latex/contrib/proflycee.zip
1996/02/05 | 1760 | macros/latex/contrib/progkeys/demo/demo.tex
1996/02/05 | 459 | macros/latex/contrib/progkeys/demo/prog1.tex
1996/02/05 | 347 | macros/latex/contrib/progkeys/demo/prog2.tex
@@ -243923,12 +243939,17 @@
2013/04/08 | 1519 | macros/luatex/generic/enigma/README
2013/04/08 | 4300 | macros/luatex/generic/enigma/t-enigma.mkvi
2013/04/08 | 288194 | macros/luatex/generic/enigma.zip
-2023/02/13 | 291718 | macros/luatex/generic/evangelion-jfm/Evangelion-doc.pdf
-2023/02/13 | 15329 | macros/luatex/generic/evangelion-jfm/Evangelion-doc.tex
-2023/02/13 | 17158 | macros/luatex/generic/evangelion-jfm/jfm-eva.lua
-2023/02/13 | 1063 | macros/luatex/generic/evangelion-jfm/LICENSE
-2023/02/13 | 1355 | macros/luatex/generic/evangelion-jfm/README.md
-2023/02/13 | 297718 | macros/luatex/generic/evangelion-jfm.zip
+2023/04/15 | 234048 | macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-en.pdf
+2023/04/15 | 307743 | macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-sc.pdf
+2023/04/15 | 30855 | macros/luatex/generic/evangelion-jfm/Evangelion-JFM.dtx
+2023/04/15 | 10077 | macros/luatex/generic/evangelion-jfm/figure/fig-jp.pdf
+2023/04/15 | 10535 | macros/luatex/generic/evangelion-jfm/figure/fig-tc.pdf
+2023/04/15 | 449 | macros/luatex/generic/evangelion-jfm/figure/fig.tex
+2023/04/15 | 19322 | macros/luatex/generic/evangelion-jfm/jfm-eva.lua
+2023/04/15 | 1063 | macros/luatex/generic/evangelion-jfm/LICENSE
+2023/04/15 | 505 | macros/luatex/generic/evangelion-jfm/make.sh
+2023/04/15 | 2866 | macros/luatex/generic/evangelion-jfm/README.md
+2023/04/15 | 569274 | macros/luatex/generic/evangelion-jfm.zip
2011/12/03 | 8984 | macros/luatex/generic/interpreter/i-doc.lua
2012/06/10 | 110003 | macros/luatex/generic/interpreter/interpreter-doc.pdf
2012/06/10 | 2828 | macros/luatex/generic/interpreter/interpreter-doc.tex
@@ -290180,8 +290201,8 @@
2023/04/04 | 49736 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r66752.tar.xz
2023/03/08 | 173876 | systems/texlive/tlnet/archive/biblatex-german-legal.doc.r66461.tar.xz
2023/03/08 | 6148 | systems/texlive/tlnet/archive/biblatex-german-legal.r66461.tar.xz
-2021/05/09 | 999720 | systems/texlive/tlnet/archive/biblatex-gost.doc.r59135.tar.xz
-2021/05/09 | 21160 | systems/texlive/tlnet/archive/biblatex-gost.r59135.tar.xz
+2023/04/15 | 1002908 | systems/texlive/tlnet/archive/biblatex-gost.doc.r66847.tar.xz
+2023/04/15 | 21168 | systems/texlive/tlnet/archive/biblatex-gost.r66847.tar.xz
2019/02/28 | 578372 | systems/texlive/tlnet/archive/biblatex-historian.doc.r19787.tar.xz
2019/02/28 | 24464 | systems/texlive/tlnet/archive/biblatex-historian.r19787.tar.xz
2021/12/08 | 566908 | systems/texlive/tlnet/archive/biblatex-ieee.doc.r61243.tar.xz
@@ -290387,9 +290408,9 @@
2019/02/28 | 362388 | systems/texlive/tlnet/archive/bitelist.doc.r25779.tar.xz
2019/02/28 | 5352 | systems/texlive/tlnet/archive/bitelist.r25779.tar.xz
2019/02/28 | 6228 | systems/texlive/tlnet/archive/bitelist.source.r25779.tar.xz
-2023/04/05 | 1091688 | systems/texlive/tlnet/archive/bithesis.doc.r66765.tar.xz
-2023/04/05 | 24092 | systems/texlive/tlnet/archive/bithesis.r66765.tar.xz
-2023/04/05 | 44748 | systems/texlive/tlnet/archive/bithesis.source.r66765.tar.xz
+2023/04/15 | 1105612 | systems/texlive/tlnet/archive/bithesis.doc.r66849.tar.xz
+2023/04/15 | 24496 | systems/texlive/tlnet/archive/bithesis.r66849.tar.xz
+2023/04/15 | 45424 | systems/texlive/tlnet/archive/bithesis.source.r66849.tar.xz
2019/02/28 | 175700 | systems/texlive/tlnet/archive/bitpattern.doc.r39073.tar.xz
2019/02/28 | 2156 | systems/texlive/tlnet/archive/bitpattern.r39073.tar.xz
2019/02/28 | 6764 | systems/texlive/tlnet/archive/bitpattern.source.r39073.tar.xz
@@ -291251,7 +291272,7 @@
2023/02/14 | 588 | systems/texlive/tlnet/archive/collection-langcjk.r65824.tar.xz
2020/03/04 | 608 | systems/texlive/tlnet/archive/collection-langcyrillic.r54074.tar.xz
2020/03/04 | 372 | systems/texlive/tlnet/archive/collection-langczechslovak.r54074.tar.xz
-2023/01/09 | 864 | systems/texlive/tlnet/archive/collection-langenglish.r65496.tar.xz
+2023/04/15 | 880 | systems/texlive/tlnet/archive/collection-langenglish.r66846.tar.xz
2023/03/08 | 724 | systems/texlive/tlnet/archive/collection-langeuropean.r66432.tar.xz
2022/04/27 | 616 | systems/texlive/tlnet/archive/collection-langfrench.r63147.tar.xz
2020/07/01 | 628 | systems/texlive/tlnet/archive/collection-langgerman.r55706.tar.xz
@@ -291267,7 +291288,7 @@
2022/06/10 | 700 | systems/texlive/tlnet/archive/collection-latex.r63515.tar.xz
2023/01/11 | 744 | systems/texlive/tlnet/archive/collection-latexrecommended.r65512.tar.xz
2023/04/06 | 984 | systems/texlive/tlnet/archive/collection-luatex.r66777.tar.xz
-2023/02/08 | 1664 | systems/texlive/tlnet/archive/collection-mathscience.r65753.tar.xz
+2023/04/15 | 1668 | systems/texlive/tlnet/archive/collection-mathscience.r66844.tar.xz
2023/03/26 | 560 | systems/texlive/tlnet/archive/collection-metapost.r66670.tar.xz
2023/02/18 | 496 | systems/texlive/tlnet/archive/collection-music.r65862.tar.xz
2023/03/28 | 1588 | systems/texlive/tlnet/archive/collection-pictures.r66684.tar.xz
@@ -292320,6 +292341,8 @@
2019/02/28 | 34464 | systems/texlive/tlnet/archive/dramatist.source.r35866.tar.xz
2019/02/28 | 12052 | systems/texlive/tlnet/archive/dratex.doc.r15878.tar.xz
2019/02/28 | 45280 | systems/texlive/tlnet/archive/dratex.r15878.tar.xz
+2023/04/15 | 15682724 | systems/texlive/tlnet/archive/drawing-with-metapost.doc.r66846.tar.xz
+2023/04/15 | 572 | systems/texlive/tlnet/archive/drawing-with-metapost.r66846.tar.xz
2019/02/28 | 313708 | systems/texlive/tlnet/archive/drawmatrix.doc.r44471.tar.xz
2019/02/28 | 2456 | systems/texlive/tlnet/archive/drawmatrix.r44471.tar.xz
2019/02/28 | 5136 | systems/texlive/tlnet/archive/drawmatrix.source.r44471.tar.xz
@@ -296224,9 +296247,9 @@
2020/02/18 | 20788 | systems/texlive/tlnet/archive/luatodonotes.source.r53825.tar.xz
2022/09/26 | 95932 | systems/texlive/tlnet/archive/luatruthtable.doc.r64508.tar.xz
2022/09/26 | 2236 | systems/texlive/tlnet/archive/luatruthtable.r64508.tar.xz
-2023/03/10 | 256892 | systems/texlive/tlnet/archive/lua-typo.doc.r66513.tar.xz
-2023/03/10 | 10152 | systems/texlive/tlnet/archive/lua-typo.r66513.tar.xz
-2023/03/10 | 26388 | systems/texlive/tlnet/archive/lua-typo.source.r66513.tar.xz
+2023/04/15 | 281612 | systems/texlive/tlnet/archive/lua-typo.doc.r66848.tar.xz
+2023/04/15 | 11396 | systems/texlive/tlnet/archive/lua-typo.r66848.tar.xz
+2023/04/15 | 27080 | systems/texlive/tlnet/archive/lua-typo.source.r66848.tar.xz
2021/11/11 | 75516 | systems/texlive/tlnet/archive/lua-uca.doc.r61023.tar.xz
2021/11/11 | 74192 | systems/texlive/tlnet/archive/lua-uca.r61023.tar.xz
2021/11/11 | 1136 | systems/texlive/tlnet/archive/lua-uca.source.r61023.tar.xz
@@ -297878,12 +297901,12 @@
2019/02/28 | 364 | systems/texlive/tlnet/archive/pdfcrop.amd64-freebsd.r16472.tar.xz
2019/02/28 | 360 | systems/texlive/tlnet/archive/pdfcrop.amd64-netbsd.r30191.tar.xz
2019/02/28 | 360 | systems/texlive/tlnet/archive/pdfcrop.armhf-linux.r30015.tar.xz
-2020/06/07 | 10228 | systems/texlive/tlnet/archive/pdfcrop.doc.r55435.tar.xz
+2023/04/15 | 4552 | systems/texlive/tlnet/archive/pdfcrop.doc.r66850.tar.xz
2019/02/28 | 364 | systems/texlive/tlnet/archive/pdfcrop.i386-freebsd.r16472.tar.xz
2019/02/28 | 360 | systems/texlive/tlnet/archive/pdfcrop.i386-linux.r14387.tar.xz
2019/02/28 | 360 | systems/texlive/tlnet/archive/pdfcrop.i386-netbsd.r30191.tar.xz
2019/02/28 | 360 | systems/texlive/tlnet/archive/pdfcrop.i386-solaris.r14387.tar.xz
-2020/06/07 | 10888 | systems/texlive/tlnet/archive/pdfcrop.r55435.tar.xz
+2023/04/15 | 11036 | systems/texlive/tlnet/archive/pdfcrop.r66850.tar.xz
2021/02/25 | 360 | systems/texlive/tlnet/archive/pdfcrop.universal-darwin.r57908.tar.xz
2023/02/20 | 2352 | systems/texlive/tlnet/archive/pdfcrop.windows.r65891.tar.xz
2019/02/28 | 364 | systems/texlive/tlnet/archive/pdfcrop.x86_64-cygwin.r33557.tar.xz
@@ -298720,8 +298743,8 @@
2019/02/28 | 7608 | systems/texlive/tlnet/archive/pst-fr3d.source.r15878.tar.xz
2022/10/16 | 21927176 | systems/texlive/tlnet/archive/pst-fractal.doc.r64714.tar.xz
2022/10/16 | 10716 | systems/texlive/tlnet/archive/pst-fractal.r64714.tar.xz
-2023/04/04 | 3543368 | systems/texlive/tlnet/archive/pst-func.doc.r66750.tar.xz
-2023/04/04 | 20396 | systems/texlive/tlnet/archive/pst-func.r66750.tar.xz
+2023/04/15 | 3578532 | systems/texlive/tlnet/archive/pst-func.doc.r66845.tar.xz
+2023/04/15 | 20956 | systems/texlive/tlnet/archive/pst-func.r66845.tar.xz
2019/02/28 | 380444 | systems/texlive/tlnet/archive/pst-fun.doc.r17909.tar.xz
2019/02/28 | 24440 | systems/texlive/tlnet/archive/pst-fun.r17909.tar.xz
2019/02/28 | 932 | systems/texlive/tlnet/archive/pst-fun.source.r17909.tar.xz
@@ -299104,6 +299127,8 @@
2022/12/12 | 24896 | systems/texlive/tlnet/archive/quantumarticle.r65242.tar.xz
2022/09/14 | 147688 | systems/texlive/tlnet/archive/quattrocento.doc.r64372.tar.xz
2022/09/14 | 729176 | systems/texlive/tlnet/archive/quattrocento.r64372.tar.xz
+2023/04/15 | 251568 | systems/texlive/tlnet/archive/quickreaction.doc.r66844.tar.xz
+2023/04/15 | 1704 | systems/texlive/tlnet/archive/quickreaction.r66844.tar.xz
2019/02/28 | 181576 | systems/texlive/tlnet/archive/quicktype.doc.r42183.tar.xz
2019/02/28 | 1024 | systems/texlive/tlnet/archive/quicktype.r42183.tar.xz
2019/10/04 | 212988 | systems/texlive/tlnet/archive/quiz2socrative.doc.r52276.tar.xz
@@ -299725,8 +299750,8 @@
2019/02/28 | 292656 | systems/texlive/tlnet/archive/simplecv.doc.r35537.tar.xz
2019/02/28 | 2112 | systems/texlive/tlnet/archive/simplecv.r35537.tar.xz
2019/02/28 | 5844 | systems/texlive/tlnet/archive/simplecv.source.r35537.tar.xz
-2023/04/08 | 2014252 | systems/texlive/tlnet/archive/simpleicons.doc.r66795.tar.xz
-2023/04/08 | 2747624 | systems/texlive/tlnet/archive/simpleicons.r66795.tar.xz
+2023/04/15 | 2017796 | systems/texlive/tlnet/archive/simpleicons.doc.r66843.tar.xz
+2023/04/15 | 2751480 | systems/texlive/tlnet/archive/simpleicons.r66843.tar.xz
2019/02/28 | 224844 | systems/texlive/tlnet/archive/simpleinvoice.doc.r45673.tar.xz
2019/02/28 | 2420 | systems/texlive/tlnet/archive/simpleinvoice.r45673.tar.xz
2023/03/24 | 130936 | systems/texlive/tlnet/archive/simplekv.doc.r66655.tar.xz
@@ -300669,7 +300694,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2023/04/14 | 423776 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66837.tar.xz
+2023/04/15 | 423772 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66842.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -300691,7 +300716,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2023/04/14 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r66837.tar.xz
+2023/04/15 | 114052 | systems/texlive/tlnet/archive/texlive-scripts.r66842.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2023/03/08 | 60300 | systems/texlive/tlnet/archive/texlive-scripts.windows.r66427.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -302547,16 +302572,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2023/03/12 | 125532 | systems/texlive/tlnet/install-tl
-2023/04/14 | 5735816 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/04/14 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/04/14 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/04/15 | 5735787 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/04/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/04/15 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/02/19 | 5098 | systems/texlive/tlnet/install-tl-windows.bat
-2023/04/14 | 21036524 | systems/texlive/tlnet/install-tl-windows.exe
-2023/04/14 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/04/14 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/04/14 | 26025692 | systems/texlive/tlnet/install-tl.zip
-2023/04/14 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/04/14 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/04/15 | 21037584 | systems/texlive/tlnet/install-tl-windows.exe
+2023/04/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/04/15 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/04/15 | 26025673 | systems/texlive/tlnet/install-tl.zip
+2023/04/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/04/15 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2023/03/19 | 1229 | systems/texlive/tlnet/README.md
2023/03/19 | 0 | systems/texlive/tlnet/TEXLIVE_2023
2023/01/17 | 8401 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -302566,7 +302591,7 @@
2023/01/17 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2023/01/17 | 49938 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2023/04/13 | 7356 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/04/14 | 7285 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/01/11 | 216583 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -302608,12 +302633,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2023/04/14 | 18041201 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/04/14 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/04/15 | 18072846 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/04/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/02/20 | 86803 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/04/14 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/04/14 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/04/14 | 2440632 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/04/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/04/15 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/04/15 | 2443060 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/02/26 | 42350 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -306714,7 +306739,9 @@
2023/02/23 | 169070 | systems/win32/miktex/tm/packages/biblatex-german-legal__doc.tar.lzma
2023/02/23 | 6760 | systems/win32/miktex/tm/packages/biblatex-german-legal__source.tar.lzma
2023/02/23 | 6356 | systems/win32/miktex/tm/packages/biblatex-german-legal.tar.lzma
-2021/05/18 | 1022019 | systems/win32/miktex/tm/packages/biblatex-gost.tar.lzma
+2023/04/15 | 969585 | systems/win32/miktex/tm/packages/biblatex-gost__doc.tar.lzma
+2023/04/15 | 35604 | systems/win32/miktex/tm/packages/biblatex-gost__source.tar.lzma
+2023/04/15 | 21465 | systems/win32/miktex/tm/packages/biblatex-gost.tar.lzma
2010/08/24 | 601778 | systems/win32/miktex/tm/packages/biblatex-historian.tar.lzma
2021/12/14 | 568069 | systems/win32/miktex/tm/packages/biblatex-ieee__doc.tar.lzma
2021/12/14 | 5815 | systems/win32/miktex/tm/packages/biblatex-ieee.tar.lzma
@@ -306823,9 +306850,9 @@
2016/07/20 | 229228 | systems/win32/miktex/tm/packages/biocon.tar.lzma
2016/10/07 | 6473 | systems/win32/miktex/tm/packages/biolett-bst.tar.lzma
2012/04/04 | 373402 | systems/win32/miktex/tm/packages/bitelist.tar.lzma
-2023/04/07 | 1090890 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
-2023/04/07 | 46921 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
-2023/04/07 | 26611 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
+2023/04/15 | 1104728 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
+2023/04/15 | 47591 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
+2023/04/15 | 27023 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
2015/12/15 | 184658 | systems/win32/miktex/tm/packages/bitpattern.tar.lzma
2019/12/13 | 638837 | systems/win32/miktex/tm/packages/bitset.tar.lzma
2022/10/06 | 42850 | systems/win32/miktex/tm/packages/bitter__doc.tar.lzma
@@ -306954,7 +306981,6 @@
2020/10/03 | 7540 | systems/win32/miktex/tm/packages/bxpapersize.tar.lzma
2022/05/04 | 5296 | systems/win32/miktex/tm/packages/bxpdfver__doc.tar.lzma
2022/05/04 | 7655 | systems/win32/miktex/tm/packages/bxpdfver.tar.lzma
-2012/12/20 | 8334 | systems/win32/miktex/tm/packages/bxpict2e.tar.lzma
2022/05/15 | 530662 | systems/win32/miktex/tm/packages/bxtexlogo__doc.tar.lzma
2022/05/15 | 2011 | systems/win32/miktex/tm/packages/bxtexlogo__source.tar.lzma
2022/05/15 | 6742 | systems/win32/miktex/tm/packages/bxtexlogo.tar.lzma
@@ -307169,9 +307195,9 @@
2023/02/23 | 1784056 | systems/win32/miktex/tm/packages/circuitikz__doc.tar.lzma
2023/02/23 | 191044 | systems/win32/miktex/tm/packages/circuitikz.tar.lzma
2004/11/28 | 18758 | systems/win32/miktex/tm/packages/cirth.cab
-2023/04/07 | 237679 | systems/win32/miktex/tm/packages/citation-style-language__doc.tar.lzma
+2023/04/15 | 237786 | systems/win32/miktex/tm/packages/citation-style-language__doc.tar.lzma
2022/01/24 | 1742 | systems/win32/miktex/tm/packages/citation-style-language__source.tar.lzma
-2023/04/07 | 2799542 | systems/win32/miktex/tm/packages/citation-style-language.tar.lzma
+2023/04/15 | 2807948 | systems/win32/miktex/tm/packages/citation-style-language.tar.lzma
2017/12/04 | 112354 | systems/win32/miktex/tm/packages/citeall.tar.lzma
2018/04/09 | 67716 | systems/win32/miktex/tm/packages/citeref.tar.lzma
2015/03/10 | 238603 | systems/win32/miktex/tm/packages/cite.tar.lzma
@@ -307198,6 +307224,9 @@
2022/09/23 | 1327019 | systems/win32/miktex/tm/packages/clearsans.tar.lzma
2020/08/09 | 822023 | systems/win32/miktex/tm/packages/clefval.tar.lzma
2018/04/22 | 493341 | systems/win32/miktex/tm/packages/cleveref.tar.lzma
+2023/04/15 | 313229 | systems/win32/miktex/tm/packages/cleveref-usedon__doc.tar.lzma
+2023/04/15 | 8585 | systems/win32/miktex/tm/packages/cleveref-usedon__source.tar.lzma
+2023/04/15 | 3666 | systems/win32/miktex/tm/packages/cleveref-usedon.tar.lzma
2022/10/06 | 245975 | systems/win32/miktex/tm/packages/clicks__doc.tar.lzma
2022/10/06 | 3554 | systems/win32/miktex/tm/packages/clicks__source.tar.lzma
2022/10/06 | 1783 | systems/win32/miktex/tm/packages/clicks.tar.lzma
@@ -307600,9 +307629,9 @@
2010/03/08 | 212305 | systems/win32/miktex/tm/packages/dichokey.tar.lzma
2014/02/14 | 6978045 | systems/win32/miktex/tm/packages/dickimaw.tar.lzma
2004/08/15 | 54075 | systems/win32/miktex/tm/packages/dictsym.cab
-2023/01/27 | 1274365 | systems/win32/miktex/tm/packages/diffcoeff__doc.tar.lzma
-2023/01/27 | 54410 | systems/win32/miktex/tm/packages/diffcoeff__source.tar.lzma
-2023/01/27 | 11273 | systems/win32/miktex/tm/packages/diffcoeff.tar.lzma
+2023/04/15 | 1280733 | systems/win32/miktex/tm/packages/diffcoeff__doc.tar.lzma
+2023/04/15 | 55160 | systems/win32/miktex/tm/packages/diffcoeff__source.tar.lzma
+2023/04/15 | 11523 | systems/win32/miktex/tm/packages/diffcoeff.tar.lzma
2022/12/09 | 3401 | systems/win32/miktex/tm/packages/digestif__doc.tar.lzma
2022/12/09 | 487249 | systems/win32/miktex/tm/packages/digestif__source.tar.lzma
2022/12/09 | 643617 | systems/win32/miktex/tm/packages/digestif.tar.lzma
@@ -307670,6 +307699,8 @@
2020/12/12 | 314588 | systems/win32/miktex/tm/packages/draftwatermark.tar.lzma
2014/12/22 | 455753 | systems/win32/miktex/tm/packages/dramatist.tar.lzma
2008/09/22 | 56454 | systems/win32/miktex/tm/packages/dratex.tar.lzma
+2023/04/15 | 9525331 | systems/win32/miktex/tm/packages/drawing-with-metapost__source.tar.lzma
+2023/04/15 | 8413938 | systems/win32/miktex/tm/packages/drawing-with-metapost.tar.lzma
2017/06/07 | 321408 | systems/win32/miktex/tm/packages/drawmatrix.tar.lzma
2012/12/20 | 107736 | systems/win32/miktex/tm/packages/drawstack.tar.lzma
2015/08/22 | 15988251 | systems/win32/miktex/tm/packages/drm.tar.lzma
@@ -307810,9 +307841,12 @@
2021/05/18 | 394450 | systems/win32/miktex/tm/packages/els-cas-templates.tar.lzma
2006/12/10 | 10930 | systems/win32/miktex/tm/packages/elsevier-bib.tar.bz2
2007/08/27 | 272202 | systems/win32/miktex/tm/packages/elsevier.tar.lzma
-2022/05/04 | 748125 | systems/win32/miktex/tm/packages/elteikthesis__doc.tar.lzma
-2022/05/04 | 360379 | systems/win32/miktex/tm/packages/elteikthesis__source.tar.lzma
-2022/05/04 | 6016 | systems/win32/miktex/tm/packages/elteikthesis.tar.lzma
+2023/04/15 | 661175 | systems/win32/miktex/tm/packages/elteiktdk__doc.tar.lzma
+2023/04/15 | 354540 | systems/win32/miktex/tm/packages/elteiktdk__source.tar.lzma
+2023/04/15 | 2986 | systems/win32/miktex/tm/packages/elteiktdk.tar.lzma
+2023/04/15 | 763803 | systems/win32/miktex/tm/packages/elteikthesis__doc.tar.lzma
+2023/04/15 | 354645 | systems/win32/miktex/tm/packages/elteikthesis__source.tar.lzma
+2023/04/15 | 6032 | systems/win32/miktex/tm/packages/elteikthesis.tar.lzma
2009/06/30 | 190108 | systems/win32/miktex/tm/packages/eltex.tar.lzma
2016/07/15 | 29978 | systems/win32/miktex/tm/packages/elvish.tar.lzma
2019/08/22 | 213081 | systems/win32/miktex/tm/packages/elzcards.tar.lzma
@@ -308130,7 +308164,7 @@
2022/11/01 | 5115 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2023/04/09 | 758088 | systems/win32/miktex/tm/packages/files.csv.lzma
+2023/04/15 | 761928 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -309056,9 +309090,9 @@
2023/04/07 | 11990400 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
2023/04/07 | 602832 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
2023/04/07 | 175629 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
-2023/01/17 | 1834934 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
-2023/01/17 | 46190 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
-2023/01/17 | 22116 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
+2023/04/15 | 1833509 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
+2023/04/15 | 46317 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
+2023/04/15 | 22168 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
2008/04/02 | 115132 | systems/win32/miktex/tm/packages/labbook.tar.lzma
2006/11/14 | 45130 | systems/win32/miktex/tm/packages/labelcas.cab
2019/05/15 | 27323 | systems/win32/miktex/tm/packages/labels4easylist.tar.lzma
@@ -309086,9 +309120,9 @@
2023/02/23 | 56149 | systems/win32/miktex/tm/packages/langsci.tar.lzma
2011/09/03 | 2544277 | systems/win32/miktex/tm/packages/lapdf.tar.lzma
2014/06/30 | 259313 | systems/win32/miktex/tm/packages/lastpackage.tar.lzma
-2023/03/17 | 556079 | systems/win32/miktex/tm/packages/lastpage__doc.tar.lzma
-2023/03/17 | 21282 | systems/win32/miktex/tm/packages/lastpage__source.tar.lzma
-2023/03/17 | 4218 | systems/win32/miktex/tm/packages/lastpage.tar.lzma
+2023/04/15 | 556069 | systems/win32/miktex/tm/packages/lastpage__doc.tar.lzma
+2023/04/15 | 21392 | systems/win32/miktex/tm/packages/lastpage__source.tar.lzma
+2023/04/15 | 4219 | systems/win32/miktex/tm/packages/lastpage.tar.lzma
2022/09/07 | 573333 | systems/win32/miktex/tm/packages/latex2e-help-texinfo-fr__source.tar.lzma
2022/09/07 | 1874130 | systems/win32/miktex/tm/packages/latex2e-help-texinfo-fr.tar.lzma
2023/01/17 | 2563534 | systems/win32/miktex/tm/packages/latex2e-help-texinfo__source.tar.lzma
@@ -309133,9 +309167,9 @@
2022/11/15 | 2505297 | systems/win32/miktex/tm/packages/latex-graphics-dev__doc.tar.lzma
2022/11/15 | 57406 | systems/win32/miktex/tm/packages/latex-graphics-dev__source.tar.lzma
2022/11/15 | 16011 | systems/win32/miktex/tm/packages/latex-graphics-dev.tar.lzma
-2023/04/09 | 1195094 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
-2023/04/09 | 125618 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
-2023/04/09 | 72979 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
+2023/04/15 | 1196500 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
+2023/04/15 | 125612 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
+2023/04/15 | 72982 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
2023/03/17 | 5333350 | systems/win32/miktex/tm/packages/latex-lab-dev__doc.tar.lzma
2023/04/09 | 75478 | systems/win32/miktex/tm/packages/latex-lab-dev__source.tar.lzma
2023/04/09 | 27801 | systems/win32/miktex/tm/packages/latex-lab-dev.tar.lzma
@@ -309481,9 +309515,9 @@
2021/06/06 | 4099 | systems/win32/miktex/tm/packages/luatex85__source.tar.lzma
2021/06/06 | 2000 | systems/win32/miktex/tm/packages/luatex85.tar.lzma
2015/10/06 | 276167 | systems/win32/miktex/tm/packages/luatexbase.tar.lzma
-2023/02/23 | 3126894 | systems/win32/miktex/tm/packages/luatexja__doc.tar.lzma
-2023/02/23 | 221837 | systems/win32/miktex/tm/packages/luatexja__source.tar.lzma
-2023/02/23 | 193381 | systems/win32/miktex/tm/packages/luatexja.tar.lzma
+2023/04/15 | 3112704 | systems/win32/miktex/tm/packages/luatexja__doc.tar.lzma
+2023/04/15 | 221713 | systems/win32/miktex/tm/packages/luatexja__source.tar.lzma
+2023/04/15 | 194102 | systems/win32/miktex/tm/packages/luatexja.tar.lzma
2022/11/15 | 339220 | systems/win32/miktex/tm/packages/luatexko__doc.tar.lzma
2022/11/15 | 12540 | systems/win32/miktex/tm/packages/luatexko__source.tar.lzma
2022/11/15 | 23665 | systems/win32/miktex/tm/packages/luatexko.tar.lzma
@@ -309492,9 +309526,9 @@
2022/09/23 | 92646 | systems/win32/miktex/tm/packages/luatruthtable__doc.tar.lzma
2022/09/23 | 4835 | systems/win32/miktex/tm/packages/luatruthtable__source.tar.lzma
2022/10/06 | 2496 | systems/win32/miktex/tm/packages/luatruthtable.tar.lzma
-2023/03/17 | 254868 | systems/win32/miktex/tm/packages/lua-typo__doc.tar.lzma
-2023/03/17 | 28110 | systems/win32/miktex/tm/packages/lua-typo__source.tar.lzma
-2023/03/17 | 10295 | systems/win32/miktex/tm/packages/lua-typo.tar.lzma
+2023/04/15 | 279567 | systems/win32/miktex/tm/packages/lua-typo__doc.tar.lzma
+2023/04/15 | 28807 | systems/win32/miktex/tm/packages/lua-typo__source.tar.lzma
+2023/04/15 | 11553 | systems/win32/miktex/tm/packages/lua-typo.tar.lzma
2021/09/18 | 73725 | systems/win32/miktex/tm/packages/lua-uca__doc.tar.lzma
2021/09/18 | 3843 | systems/win32/miktex/tm/packages/lua-uca__source.tar.lzma
2021/09/18 | 72763 | systems/win32/miktex/tm/packages/lua-uca.tar.lzma
@@ -309752,241 +309786,241 @@
2016/07/16 | 344819 | systems/win32/miktex/tm/packages/midnight.tar.lzma
2010/03/16 | 190135 | systems/win32/miktex/tm/packages/midpage.tar.lzma
2022/07/26 | 51788 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma
-2023/01/28 | 36411 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma
+2023/04/15 | 36595 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma
2022/07/26 | 1023495 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma
-2023/01/28 | 1166476 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma
+2023/04/15 | 1169151 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma
2022/07/26 | 28812 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma
-2023/01/28 | 31683 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma
+2023/04/15 | 31731 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma
2022/07/26 | 30075 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma
-2023/01/28 | 36564 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 36525 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma
2022/07/26 | 56698 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma
-2023/01/28 | 67101 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma
+2023/04/15 | 67236 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma
2022/07/26 | 83765 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma
-2023/01/28 | 102850 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2023/04/15 | 102906 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2022/07/26 | 69127 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma
-2023/01/28 | 78647 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma
+2023/04/15 | 78656 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma
2022/07/26 | 27365 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma
-2023/01/28 | 31580 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma
+2023/04/15 | 31586 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/07/26 | 332598 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma
-2023/01/28 | 395125 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma
+2023/04/15 | 394768 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma
2013/06/24 | 447360 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x86-2.9.tar.lzma
2022/07/26 | 32659 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma
-2023/01/28 | 40127 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 40087 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma
2022/07/26 | 51394 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma
-2023/01/28 | 58460 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2023/01/28 | 5195 | systems/win32/miktex/tm/packages/miktex-config-2.9.tar.lzma
+2023/04/15 | 58507 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 5262 | systems/win32/miktex/tm/packages/miktex-config-2.9.tar.lzma
2022/07/26 | 244550 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma
-2023/01/28 | 271855 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma
+2023/04/15 | 271487 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma
2022/07/26 | 179664 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma
-2023/01/28 | 221221 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma
+2023/04/15 | 221021 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma
2022/07/26 | 93078 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma
-2023/01/28 | 106244 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma
+2023/04/15 | 106212 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma
2022/07/26 | 21304 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma
-2023/01/28 | 25400 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma
+2023/04/15 | 25357 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma
2020/02/07 | 785398 | systems/win32/miktex/tm/packages/miktex-dict-british.tar.lzma
2016/11/02 | 171725 | systems/win32/miktex/tm/packages/miktex-dict-english.tar.lzma
2016/11/02 | 292320 | systems/win32/miktex/tm/packages/miktex-dict-french.tar.lzma
2016/11/02 | 967418 | systems/win32/miktex/tm/packages/miktex-dict-german.tar.lzma
2020/05/17 | 460366 | systems/win32/miktex/tm/packages/miktex-doc-2.9.tar.lzma
-2023/01/28 | 473562 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma
+2023/04/15 | 473688 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma
2022/07/26 | 46387 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma
-2023/01/28 | 53977 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2023/04/15 | 54073 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/07/26 | 285874 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma
-2023/01/28 | 328941 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 328747 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2021/11/30 | 5049 | systems/win32/miktex/tm/packages/miktex-dvipdfmx.tar.lzma
2022/07/26 | 41442 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma
-2023/01/28 | 47038 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma
+2023/04/15 | 47029 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma
2022/07/26 | 120742 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma
-2023/01/28 | 137698 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma
+2023/04/15 | 137400 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma
2017/04/09 | 4195 | systems/win32/miktex/tm/packages/miktex-dvips.tar.lzma
2022/07/26 | 1311595 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma
-2023/01/28 | 1454126 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2023/04/15 | 1427074 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2022/07/26 | 99307 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma
-2023/01/28 | 100067 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2023/04/15 | 100165 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma
2016/11/03 | 672 | systems/win32/miktex/tm/packages/miktex-etex.tar.lzma
2022/07/26 | 43659 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma
-2023/01/28 | 49573 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma
+2023/04/15 | 49651 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma
2022/07/26 | 25280 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma
-2023/01/28 | 28744 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2023/04/15 | 28898 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma
2022/07/26 | 56918 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma
-2023/01/28 | 77539 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma
+2023/04/15 | 77624 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma
2015/09/08 | 11241 | systems/win32/miktex/tm/packages/miktex-fontconfig-base.tar.lzma
2022/07/26 | 136111 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma
-2023/01/28 | 157372 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2023/04/15 | 157334 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma
2016/11/04 | 3555 | systems/win32/miktex/tm/packages/miktex-fontconfig.tar.lzma
2022/07/26 | 74078 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma
-2023/01/28 | 81358 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma
+2023/04/15 | 81444 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma
2022/07/26 | 71907 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma
-2023/01/28 | 81928 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma
+2023/04/15 | 81843 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma
2022/07/26 | 259267 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma
-2023/01/28 | 305340 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma
+2023/04/15 | 305414 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/07/26 | 22141 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma
-2023/01/28 | 25462 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 25456 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2022/07/26 | 97375 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma
-2023/01/28 | 105322 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma
+2023/04/15 | 105619 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma
2018/09/25 | 10777812 | systems/win32/miktex/tm/packages/miktex-ghostscript-bin.tar.lzma
2018/09/25 | 11056498 | systems/win32/miktex/tm/packages/miktex-ghostscript-bin-x64.tar.lzma
2022/07/26 | 64580 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma
-2023/01/28 | 73263 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma
+2023/04/15 | 73295 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma
2022/07/26 | 96681 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma
-2023/01/28 | 117150 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma
+2023/04/15 | 116989 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma
2022/07/26 | 38665 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma
-2023/01/28 | 44056 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 44157 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2022/07/26 | 484112 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma
-2023/01/28 | 699533 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2023/04/15 | 697161 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma
2019/09/28 | 1103778 | systems/win32/miktex/tm/packages/miktex-harftex-bin-2.9.tar.lzma
2019/09/28 | 1272652 | systems/win32/miktex/tm/packages/miktex-harftex-bin-x64-2.9.tar.lzma
2022/07/26 | 204264 | systems/win32/miktex/tm/packages/miktex-hitex-bin.tar.lzma
-2023/01/28 | 249802 | systems/win32/miktex/tm/packages/miktex-hitex-bin-x64.tar.lzma
+2023/04/15 | 249657 | systems/win32/miktex/tm/packages/miktex-hitex-bin-x64.tar.lzma
2022/07/26 | 152533 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma
-2023/01/28 | 216657 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma
+2023/04/15 | 209338 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma
2017/11/02 | 7484214 | systems/win32/miktex/tm/packages/miktex-icu-bin.tar.lzma
2022/11/25 | 9247550 | systems/win32/miktex/tm/packages/miktex-icu-bin-x64.tar.lzma
2022/07/26 | 95516 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma
-2023/01/28 | 109709 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma
+2023/04/15 | 109734 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma
2022/07/26 | 16454 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma
-2023/01/28 | 19673 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2023/04/15 | 19638 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma
2022/07/26 | 28492 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma
-2023/01/28 | 32648 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma
+2023/04/15 | 32614 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma
2021/03/18 | 1262 | systems/win32/miktex/tm/packages/miktex-latex.tar.lzma
2022/07/26 | 631347 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2023/01/28 | 705732 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2023/04/15 | 706008 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2022/07/26 | 532312 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma
-2023/01/28 | 599891 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma
+2023/04/15 | 600941 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma
2022/07/26 | 477940 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma
-2023/01/28 | 529099 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2023/04/15 | 531301 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma
2019/01/02 | 71265 | systems/win32/miktex/tm/packages/miktex-lua52-bin-2.9.tar.lzma
2019/01/02 | 80005 | systems/win32/miktex/tm/packages/miktex-lua52-bin-x64-2.9.tar.lzma
2022/07/26 | 94055 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma
-2023/01/28 | 103819 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
+2023/04/15 | 103848 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
2022/07/26 | 1733266 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma
-2023/01/28 | 2001199 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma
+2023/04/15 | 1993960 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma
2016/11/06 | 11511 | systems/win32/miktex/tm/packages/miktex-luatex.tar.lzma
2022/07/26 | 67910 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma
-2023/01/28 | 81514 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma
+2023/04/15 | 81494 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma
2022/07/26 | 27717 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma
-2023/01/28 | 33634 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma
+2023/04/15 | 33664 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/07/26 | 7735 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma
-2023/01/28 | 8772 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma
+2023/04/15 | 8783 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma
2022/07/26 | 190604 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma
-2023/01/28 | 231148 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma
+2023/04/15 | 231486 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma
2016/11/04 | 675 | systems/win32/miktex/tm/packages/miktex-metafont.tar.lzma
2022/07/26 | 251086 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma
-2023/01/28 | 288182 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma
+2023/04/15 | 288251 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma
2016/11/04 | 687 | systems/win32/miktex/tm/packages/miktex-metapost.tar.lzma
2022/07/26 | 99463 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma
-2023/01/28 | 108126 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
+2023/04/15 | 108026 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
2023/04/09 | 23183 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma
2021/12/09 | 64527 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma
2021/12/09 | 74601 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma
2022/07/26 | 126901 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma
-2023/01/28 | 139634 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 140411 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
2022/07/26 | 287501 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma
-2023/01/28 | 287982 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma
+2023/04/15 | 290302 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma
2022/07/26 | 199806 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma
-2023/01/28 | 182569 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma
+2023/04/15 | 182711 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma
2022/07/26 | 49743 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma
-2023/01/28 | 55703 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2023/04/15 | 56022 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma
2022/07/26 | 31439 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma
-2023/01/28 | 35188 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma
+2023/04/15 | 35249 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma
2022/07/26 | 38309 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma
-2023/01/28 | 43716 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 43746 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma
2022/07/26 | 43447 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma
-2023/01/28 | 47992 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma
+2023/04/15 | 48089 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma
2022/07/26 | 45780 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma
-2023/01/28 | 52507 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma
+2023/04/15 | 52549 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma
2006/05/19 | 1267123 | systems/win32/miktex/tm/packages/miktex-omega-base.cab
2020/05/12 | 354540 | systems/win32/miktex/tm/packages/miktex-omega-bin-2.9.tar.lzma
2020/05/12 | 387734 | systems/win32/miktex/tm/packages/miktex-omega-bin-x64-2.9.tar.lzma
2016/11/04 | 746 | systems/win32/miktex/tm/packages/miktex-omega.tar.lzma
2022/07/26 | 197278 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma
-2023/01/28 | 217518 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma
+2023/04/15 | 217617 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma
2022/07/26 | 36415 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma
-2023/01/28 | 43026 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma
+2023/04/15 | 43056 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma
2022/07/26 | 754258 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma
-2023/01/28 | 829864 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma
+2023/04/15 | 830204 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma
2016/11/10 | 1683 | systems/win32/miktex/tm/packages/miktex-pdftex.tar.lzma
2022/07/26 | 200463 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma
-2023/01/28 | 203395 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma
+2023/04/15 | 203510 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma
2022/07/26 | 210552 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma
-2023/01/28 | 245724 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 246287 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma
2022/07/26 | 79370 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma
-2023/01/28 | 88408 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma
+2023/04/15 | 88452 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma
2022/07/26 | 1180255 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma
-2023/01/28 | 1340084 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma
+2023/04/15 | 1341745 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma
2022/07/26 | 20173 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma
-2023/01/28 | 24002 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma
+2023/04/15 | 23987 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma
2022/07/26 | 31551 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma
-2023/01/28 | 37451 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma
+2023/04/15 | 37417 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma
2022/07/26 | 64801 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma
-2023/01/28 | 74515 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 74694 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma
2016/07/29 | 121451 | systems/win32/miktex/tm/packages/miktex-psutils-base.tar.lzma
2022/07/26 | 50923 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma
-2023/01/28 | 59707 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 60009 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma
2022/07/26 | 699984 | systems/win32/miktex/tm/packages/miktex-ptex-bin.tar.lzma
-2023/01/28 | 500516 | systems/win32/miktex/tm/packages/miktex-ptex-bin-x64.tar.lzma
+2023/04/15 | 500443 | systems/win32/miktex/tm/packages/miktex-ptex-bin-x64.tar.lzma
2021/03/08 | 8242908 | systems/win32/miktex/tm/packages/miktex-qt5-bin.tar.lzma
2021/03/08 | 9576187 | systems/win32/miktex/tm/packages/miktex-qt5-bin-x64.tar.lzma
2022/07/26 | 1355602 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma
-2023/01/28 | 1522804 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
+2023/04/15 | 1531088 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
2022/07/26 | 42689 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma
-2023/01/28 | 54563 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma
+2023/04/15 | 54520 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma
2020/05/17 | 74366 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-2.9.tar.lzma
2022/07/26 | 57357 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma
2020/05/17 | 82298 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64-2.9.tar.lzma
-2023/01/28 | 63915 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma
+2023/04/15 | 64593 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma
2022/07/26 | 25544 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma
-2023/01/28 | 27678 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma
+2023/04/15 | 27807 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma
2022/07/26 | 16512 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma
-2023/01/28 | 19739 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2023/04/15 | 19734 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/07/26 | 64457 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma
-2023/01/28 | 72811 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2023/04/15 | 72804 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma
2020/01/26 | 4527 | systems/win32/miktex/tm/packages/miktex-tex4ht.tar.lzma
2022/07/26 | 157170 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma
-2023/01/28 | 174171 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma
+2023/04/15 | 174318 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma
2022/07/26 | 58378 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma
-2023/01/28 | 69211 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma
+2023/04/15 | 69639 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma
2016/11/05 | 748 | systems/win32/miktex/tm/packages/miktex-texinfo.tar.lzma
2016/11/05 | 724 | systems/win32/miktex/tm/packages/miktex-tex.tar.lzma
2022/07/26 | 100549 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma
-2023/01/28 | 111815 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma
+2023/04/15 | 112016 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma
2022/07/26 | 2697009 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma
-2023/01/28 | 2831412 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma
+2023/04/15 | 2831034 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma
2022/07/26 | 55433 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma
-2023/01/28 | 63216 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2023/04/15 | 63666 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/07/30 | 466661 | systems/win32/miktex/tm/packages/miktex-ucrt-bin.tar.lzma
2021/12/05 | 474134 | systems/win32/miktex/tm/packages/miktex-ucrt-bin-x64.tar.lzma
2022/07/26 | 37062 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma
-2023/01/28 | 43720 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma
+2023/04/15 | 43696 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma
2022/07/26 | 28691 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma
-2023/01/28 | 33799 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma
+2023/04/15 | 33787 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma
2015/10/12 | 2312969 | systems/win32/miktex/tm/packages/miktex-vc120-bin.tar.lzma
2015/10/12 | 2544479 | systems/win32/miktex/tm/packages/miktex-vc120-bin-x64.tar.lzma
2022/07/30 | 2787012 | systems/win32/miktex/tm/packages/miktex-vc140-bin.tar.lzma
2021/12/05 | 3085218 | systems/win32/miktex/tm/packages/miktex-vc140-bin-x64.tar.lzma
2022/07/26 | 67924 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma
-2023/01/28 | 75908 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma
+2023/04/15 | 76042 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma
2016/04/19 | 634372 | systems/win32/miktex/tm/packages/miktex-xetex-base.tar.lzma
2022/07/26 | 316671 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma
-2023/01/28 | 353525 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 354162 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma
2016/11/05 | 2089 | systems/win32/miktex/tm/packages/miktex-xetex.tar.lzma
2015/06/27 | 136065 | systems/win32/miktex/tm/packages/miktex-xindy-base.tar.lzma
2015/06/19 | 1712962 | systems/win32/miktex/tm/packages/miktex-xindy-bin.tar.lzma
2015/06/19 | 1714958 | systems/win32/miktex/tm/packages/miktex-xindy-bin-x64.tar.lzma
2015/06/19 | 369481 | systems/win32/miktex/tm/packages/miktex-xindy-doc.tar.lzma
2022/07/26 | 55762 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma
-2023/01/28 | 58726 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma
+2023/04/15 | 58734 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma
2022/07/26 | 591407 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma
-2023/01/28 | 607505 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma
+2023/04/15 | 607517 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma
2018/01/12 | 138155 | systems/win32/miktex/tm/packages/miktex-zip-bin.tar.lzma
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/07/26 | 39695 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
-2023/01/28 | 45889 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2023/04/09 | 318162 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2023/04/09 | 1897404 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2023/04/09 | 1655032 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2023/04/15 | 46041 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
+2023/04/15 | 318719 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2023/04/15 | 1904175 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2023/04/15 | 1658655 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/07/26 | 13519 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
-2023/01/28 | 14475 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
+2023/04/15 | 14449 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
2004/11/11 | 10497 | systems/win32/miktex/tm/packages/miller.cab
2016/07/06 | 405919 | systems/win32/miktex/tm/packages/milog.tar.lzma
@@ -310216,9 +310250,6 @@
2022/07/14 | 8322 | systems/win32/miktex/tm/packages/ndsu-thesis-2022.tar.lzma
2018/02/15 | 143232 | systems/win32/miktex/tm/packages/ndsu-thesis.tar.lzma
2013/04/08 | 162000 | systems/win32/miktex/tm/packages/needspace.tar.lzma
-2022/10/15 | 1539775 | systems/win32/miktex/tm/packages/neo-euler__doc.tar.lzma
-2022/10/15 | 11180 | systems/win32/miktex/tm/packages/neo-euler__source.tar.lzma
-2022/10/15 | 226612 | systems/win32/miktex/tm/packages/neo-euler.tar.lzma
2013/08/27 | 646870 | systems/win32/miktex/tm/packages/neuralnetwork.tar.lzma
2015/12/08 | 217634 | systems/win32/miktex/tm/packages/nevelok.tar.lzma
2016/07/16 | 223351 | systems/win32/miktex/tm/packages/newalg.tar.lzma
@@ -310250,103 +310281,102 @@
2022/11/01 | 230073 | systems/win32/miktex/tm/packages/newverbs__doc.tar.lzma
2022/11/01 | 7969 | systems/win32/miktex/tm/packages/newverbs__source.tar.lzma
2022/11/01 | 3030 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2023/04/09 | 758119 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2023/04/09 | 57261 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2023/04/09 | 1168643 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2023/04/09 | 31683 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2023/04/09 | 35318 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2023/04/09 | 65887 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2023/04/09 | 101615 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2023/04/09 | 77598 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2023/04/09 | 31613 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2023/04/09 | 394741 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2023/04/09 | 37084 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2023/04/09 | 57895 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2023/04/09 | 5219 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2023/04/09 | 271169 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2023/04/09 | 196566 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2023/04/09 | 103608 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2023/04/09 | 24084 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2023/04/09 | 473095 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2023/04/09 | 52677 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2023/04/09 | 327501 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2023/04/09 | 45763 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2023/04/09 | 135905 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2023/04/09 | 1455707 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2023/04/09 | 121075 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2023/04/09 | 48951 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2023/04/09 | 28752 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2023/04/09 | 62751 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2023/04/09 | 156041 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2023/04/09 | 79791 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2023/04/09 | 81521 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2023/04/09 | 296280 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2023/04/09 | 25213 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2023/04/09 | 112942 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2023/04/09 | 73334 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2023/04/09 | 115710 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2023/04/09 | 44081 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2023/04/09 | 572018 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2023/04/09 | 247483 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2023/04/09 | 175385 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2023/04/09 | 109695 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2023/04/09 | 18370 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2023/04/09 | 30514 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2023/04/09 | 702738 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2023/04/09 | 598410 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2023/04/09 | 530060 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2023/04/09 | 103723 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2023/04/09 | 2018459 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2023/04/09 | 73952 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2023/04/09 | 32343 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2023/04/09 | 8831 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2023/04/09 | 209039 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2023/04/09 | 287036 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2023/04/09 | 105428 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2023/04/09 | 140765 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2023/04/09 | 326904 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2023/04/09 | 181661 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2023/04/09 | 55782 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2023/04/09 | 35220 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2023/04/09 | 43848 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2023/04/09 | 48164 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2023/04/09 | 52548 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2023/04/09 | 213593 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2023/04/09 | 41749 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2023/04/09 | 825903 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2023/04/09 | 203602 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2023/04/09 | 245743 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2023/04/09 | 88423 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2023/04/09 | 1338191 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2023/04/09 | 24023 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2023/04/09 | 37416 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2023/04/09 | 72919 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2023/04/09 | 58712 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2023/04/09 | 759286 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2023/04/09 | 1515013 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2023/04/09 | 52721 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2023/04/09 | 64327 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2023/04/09 | 27711 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2023/04/09 | 18486 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2023/04/09 | 71228 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2023/04/09 | 173400 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2023/04/09 | 69248 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2023/04/09 | 109303 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2023/04/09 | 2832096 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2023/04/09 | 61653 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2023/04/09 | 42507 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2023/04/09 | 33880 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2023/04/09 | 74342 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2023/04/09 | 352353 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2023/04/09 | 57409 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2023/04/09 | 637440 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2023/04/09 | 43718 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2023/04/09 | 318154 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2023/04/09 | 1896552 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2023/04/09 | 1654538 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2023/04/09 | 14447 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2023/04/15 | 762157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2023/04/15 | 36636 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2023/04/15 | 1167828 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2023/04/15 | 31776 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2023/04/15 | 36587 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 67150 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2023/04/15 | 102937 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2023/04/15 | 78642 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2023/04/15 | 31607 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2023/04/15 | 395080 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2023/04/15 | 40137 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 58488 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 271766 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2023/04/15 | 221129 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2023/04/15 | 106298 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2023/04/15 | 25375 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2023/04/15 | 473077 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2023/04/15 | 54106 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2023/04/15 | 329053 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 47050 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2023/04/15 | 137417 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2023/04/15 | 1429824 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2023/04/15 | 100136 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2023/04/15 | 49651 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2023/04/15 | 28926 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2023/04/15 | 77663 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2023/04/15 | 157821 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2023/04/15 | 81480 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2023/04/15 | 82215 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2023/04/15 | 305119 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2023/04/15 | 25456 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 105547 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2023/04/15 | 73293 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2023/04/15 | 117038 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2023/04/15 | 44150 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 697351 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2023/04/15 | 249726 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2023/04/15 | 216718 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2023/04/15 | 109746 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2023/04/15 | 19679 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2023/04/15 | 32631 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2023/04/15 | 705562 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2023/04/15 | 601000 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2023/04/15 | 530527 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2023/04/15 | 103804 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2023/04/15 | 1994470 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2023/04/15 | 81523 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2023/04/15 | 33669 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2023/04/15 | 8793 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2023/04/15 | 231266 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2023/04/15 | 288237 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2023/04/15 | 108157 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2023/04/15 | 140303 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 290040 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2023/04/15 | 182863 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2023/04/15 | 56013 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2023/04/15 | 35264 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2023/04/15 | 43817 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 48136 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2023/04/15 | 52541 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2023/04/15 | 217700 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2023/04/15 | 43064 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2023/04/15 | 831644 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2023/04/15 | 203672 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2023/04/15 | 246204 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 88421 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2023/04/15 | 1338453 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2023/04/15 | 24014 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2023/04/15 | 37634 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2023/04/15 | 74511 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 60711 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 500896 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2023/04/15 | 1528865 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2023/04/15 | 54545 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2023/04/15 | 64609 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2023/04/15 | 27670 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2023/04/15 | 19766 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2023/04/15 | 72779 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2023/04/15 | 174340 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2023/04/15 | 69742 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2023/04/15 | 111990 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2023/04/15 | 2831248 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2023/04/15 | 63374 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2023/04/15 | 43760 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2023/04/15 | 33798 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2023/04/15 | 76027 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2023/04/15 | 353744 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 58747 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2023/04/15 | 608246 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2023/04/15 | 46017 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2023/04/15 | 318718 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2023/04/15 | 1903941 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2023/04/15 | 1658835 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2023/04/15 | 14470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2023/04/09 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
+2023/04/15 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2023/02/23 | 608421 | systems/win32/miktex/tm/packages/nicefilelist__doc.tar.lzma
@@ -310404,7 +310434,9 @@
2011/04/19 | 792767 | systems/win32/miktex/tm/packages/nonumonpart.tar.lzma
2010/05/10 | 171659 | systems/win32/miktex/tm/packages/nopageno.tar.lzma
2016/03/29 | 161961 | systems/win32/miktex/tm/packages/normalcolor.tar.lzma
-2008/06/17 | 433267 | systems/win32/miktex/tm/packages/nostarch.tar.lzma
+2023/04/15 | 583040 | systems/win32/miktex/tm/packages/nostarch__doc.tar.lzma
+2023/04/15 | 28522 | systems/win32/miktex/tm/packages/nostarch__source.tar.lzma
+2023/04/15 | 9284 | systems/win32/miktex/tm/packages/nostarch.tar.lzma
2019/10/04 | 258768 | systems/win32/miktex/tm/packages/notes2bib.tar.lzma
2006/09/13 | 19016 | systems/win32/miktex/tm/packages/notes.cab
2016/08/23 | 905508 | systems/win32/miktex/tm/packages/notespages.tar.lzma
@@ -310573,7 +310605,9 @@
2023/03/17 | 5077 | systems/win32/miktex/tm/packages/pangram__source.tar.lzma
2023/03/17 | 2102 | systems/win32/miktex/tm/packages/pangram.tar.lzma
2006/08/13 | 31919 | systems/win32/miktex/tm/packages/papercdcase.tar.bz2
-2011/08/28 | 427524 | systems/win32/miktex/tm/packages/papermas.tar.lzma
+2023/04/15 | 413805 | systems/win32/miktex/tm/packages/papermas__doc.tar.lzma
+2023/04/15 | 13498 | systems/win32/miktex/tm/packages/papermas__source.tar.lzma
+2023/04/15 | 4195 | systems/win32/miktex/tm/packages/papermas.tar.lzma
2008/12/22 | 169585 | systems/win32/miktex/tm/packages/paper.tar.lzma
2010/07/05 | 457035 | systems/win32/miktex/tm/packages/papertex.tar.lzma
2019/01/03 | 2322123 | systems/win32/miktex/tm/packages/paracol.tar.lzma
@@ -310629,7 +310663,8 @@
2022/09/23 | 3013 | systems/win32/miktex/tm/packages/pdfcol.tar.lzma
2018/11/02 | 1216834 | systems/win32/miktex/tm/packages/pdfcomment.tar.lzma
2005/06/13 | 408363 | systems/win32/miktex/tm/packages/pdfcprot.cab
-2020/06/09 | 20406 | systems/win32/miktex/tm/packages/pdfcrop.tar.lzma
+2023/04/15 | 4898 | systems/win32/miktex/tm/packages/pdfcrop__doc.tar.lzma
+2023/04/15 | 11222 | systems/win32/miktex/tm/packages/pdfcrop.tar.lzma
2019/12/13 | 355594 | systems/win32/miktex/tm/packages/pdfescape.tar.lzma
2022/12/07 | 618218 | systems/win32/miktex/tm/packages/pdfextra__doc.tar.lzma
2022/12/07 | 12647 | systems/win32/miktex/tm/packages/pdfextra__source.tar.lzma
@@ -310757,9 +310792,9 @@
2022/07/14 | 70887 | systems/win32/miktex/tm/packages/phonenumbers.tar.lzma
2020/10/03 | 68746 | systems/win32/miktex/tm/packages/phonetic.tar.lzma
2017/04/23 | 45295 | systems/win32/miktex/tm/packages/phonrule.tar.lzma
-2023/03/19 | 139280 | systems/win32/miktex/tm/packages/photobook__doc.tar.lzma
-2023/03/19 | 14281 | systems/win32/miktex/tm/packages/photobook__source.tar.lzma
-2023/03/19 | 30959 | systems/win32/miktex/tm/packages/photobook.tar.lzma
+2023/04/15 | 140490 | systems/win32/miktex/tm/packages/photobook__doc.tar.lzma
+2023/04/15 | 14438 | systems/win32/miktex/tm/packages/photobook__source.tar.lzma
+2023/04/15 | 31685 | systems/win32/miktex/tm/packages/photobook.tar.lzma
2004/07/22 | 25826 | systems/win32/miktex/tm/packages/photo.cab
2021/04/07 | 234098 | systems/win32/miktex/tm/packages/physconst.tar.lzma
2016/07/18 | 48144 | systems/win32/miktex/tm/packages/physe.tar.lzma
@@ -310785,9 +310820,9 @@
2011/12/07 | 296908 | systems/win32/miktex/tm/packages/pinlabel.tar.lzma
2020/08/09 | 78642 | systems/win32/miktex/tm/packages/pinoutikz.tar.lzma
2011/11/22 | 131707 | systems/win32/miktex/tm/packages/pitex.tar.lzma
-2023/04/07 | 596844 | systems/win32/miktex/tm/packages/piton__doc.tar.lzma
-2023/04/07 | 48254 | systems/win32/miktex/tm/packages/piton__source.tar.lzma
-2023/04/07 | 12936 | systems/win32/miktex/tm/packages/piton.tar.lzma
+2023/04/15 | 597535 | systems/win32/miktex/tm/packages/piton__doc.tar.lzma
+2023/04/15 | 48959 | systems/win32/miktex/tm/packages/piton__source.tar.lzma
+2023/04/15 | 12967 | systems/win32/miktex/tm/packages/piton.tar.lzma
2004/08/23 | 126341 | systems/win32/miktex/tm/packages/pittetd.cab
2016/07/18 | 57109 | systems/win32/miktex/tm/packages/pitthesis.tar.lzma
2023/02/23 | 374936 | systems/win32/miktex/tm/packages/pixelart__doc.tar.lzma
@@ -310908,7 +310943,7 @@
2023/03/17 | 425296 | systems/win32/miktex/tm/packages/principia__doc.tar.lzma
2023/03/17 | 16206 | systems/win32/miktex/tm/packages/principia__source.tar.lzma
2023/03/17 | 8606 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2023/04/09 | 948 | systems/win32/miktex/tm/packages/pr.ini
+2023/04/15 | 1152 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -311013,9 +311048,9 @@
2022/10/15 | 21910158 | systems/win32/miktex/tm/packages/pst-fractal__doc.tar.lzma
2022/10/15 | 12346 | systems/win32/miktex/tm/packages/pst-fractal__source.tar.lzma
2022/10/15 | 10984 | systems/win32/miktex/tm/packages/pst-fractal.tar.lzma
-2023/04/07 | 3511446 | systems/win32/miktex/tm/packages/pst-func__doc.tar.lzma
-2023/04/07 | 32685 | systems/win32/miktex/tm/packages/pst-func__source.tar.lzma
-2023/04/07 | 20618 | systems/win32/miktex/tm/packages/pst-func.tar.lzma
+2023/04/15 | 3545795 | systems/win32/miktex/tm/packages/pst-func__doc.tar.lzma
+2023/04/15 | 33436 | systems/win32/miktex/tm/packages/pst-func__source.tar.lzma
+2023/04/15 | 21128 | systems/win32/miktex/tm/packages/pst-func.tar.lzma
2010/04/27 | 406251 | systems/win32/miktex/tm/packages/pst-fun.tar.lzma
2014/12/22 | 91090 | systems/win32/miktex/tm/packages/pst-gantt.tar.lzma
2021/09/06 | 118497332 | systems/win32/miktex/tm/packages/pst-geo__doc.tar.lzma
@@ -311557,9 +311592,9 @@
2023/01/08 | 2877 | systems/win32/miktex/tm/packages/simplebnf.tar.lzma
2013/03/01 | 939150 | systems/win32/miktex/tm/packages/simplecd.tar.lzma
2014/11/20 | 300788 | systems/win32/miktex/tm/packages/simplecv.tar.lzma
-2023/04/09 | 2020501 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
-2023/04/09 | 18079 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
-2023/04/09 | 2772170 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
+2023/04/15 | 2023921 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
+2023/04/15 | 18081 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
+2023/04/15 | 2775201 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
2017/11/03 | 228224 | systems/win32/miktex/tm/packages/simpleinvoice.tar.lzma
2022/10/06 | 125688 | systems/win32/miktex/tm/packages/simplekv__doc.tar.lzma
2022/10/06 | 6337 | systems/win32/miktex/tm/packages/simplekv__source.tar.lzma
@@ -311583,9 +311618,9 @@
2008/07/22 | 360807 | systems/win32/miktex/tm/packages/sistyle.tar.lzma
2011/04/21 | 76017 | systems/win32/miktex/tm/packages/sitem.tar.lzma
2007/12/09 | 81490 | systems/win32/miktex/tm/packages/siunits.tar.lzma
-2023/04/07 | 1272492 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma
-2023/04/07 | 118257 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma
-2023/04/07 | 66285 | systems/win32/miktex/tm/packages/siunitx.tar.lzma
+2023/04/15 | 1272857 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma
+2023/04/15 | 118276 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma
+2023/04/15 | 66284 | systems/win32/miktex/tm/packages/siunitx.tar.lzma
2009/02/21 | 477338 | systems/win32/miktex/tm/packages/skaknew.tar.lzma
2018/02/08 | 221377 | systems/win32/miktex/tm/packages/skak.tar.lzma
2011/06/23 | 1471957 | systems/win32/miktex/tm/packages/skb.tar.lzma
@@ -311629,7 +311664,6 @@
2021/10/21 | 3424 | systems/win32/miktex/tm/packages/soulpos.tar.lzma
2023/02/23 | 41009 | systems/win32/miktex/tm/packages/soul__source.tar.lzma
2023/02/23 | 9146 | systems/win32/miktex/tm/packages/soul.tar.lzma
-2019/12/20 | 359442 | systems/win32/miktex/tm/packages/soulutf8.tar.lzma
2019/04/07 | 123822 | systems/win32/miktex/tm/packages/soup.tar.lzma
2019/05/20 | 4282908 | systems/win32/miktex/tm/packages/sourcecodepro.tar.lzma
2020/05/06 | 5790444 | systems/win32/miktex/tm/packages/sourcesanspro.tar.lzma
@@ -312267,9 +312301,9 @@
2022/10/06 | 25773 | systems/win32/miktex/tm/packages/tzplot.tar.lzma
2009/01/10 | 238964 | systems/win32/miktex/tm/packages/uaclasses.tar.lzma
2012/12/20 | 41389 | systems/win32/miktex/tm/packages/uafthesis.tar.lzma
-2022/08/24 | 4349281 | systems/win32/miktex/tm/packages/uantwerpendocs__doc.tar.lzma
-2022/08/24 | 44298 | systems/win32/miktex/tm/packages/uantwerpendocs__source.tar.lzma
-2022/08/24 | 6486524 | systems/win32/miktex/tm/packages/uantwerpendocs.tar.lzma
+2023/04/15 | 4366723 | systems/win32/miktex/tm/packages/uantwerpendocs__doc.tar.lzma
+2023/04/15 | 44608 | systems/win32/miktex/tm/packages/uantwerpendocs__source.tar.lzma
+2023/04/15 | 6496042 | systems/win32/miktex/tm/packages/uantwerpendocs.tar.lzma
2015/09/29 | 109371 | systems/win32/miktex/tm/packages/uassign.tar.lzma
2023/03/27 | 275177 | systems/win32/miktex/tm/packages/ucalgmthesis__doc.tar.lzma
2023/03/27 | 3523 | systems/win32/miktex/tm/packages/ucalgmthesis.tar.lzma
@@ -312482,7 +312516,8 @@
2022/03/17 | 5390107 | systems/win32/miktex/tm/packages/vntex.tar.lzma
2005/09/02 | 28650 | systems/win32/miktex/tm/packages/volumes.cab
2014/02/14 | 4573914 | systems/win32/miktex/tm/packages/voss-mathmode.tar.lzma
-2012/04/27 | 14154 | systems/win32/miktex/tm/packages/vpe.tar.lzma
+2023/04/15 | 7234 | systems/win32/miktex/tm/packages/vpe__doc.tar.lzma
+2023/04/15 | 8351 | systems/win32/miktex/tm/packages/vpe.tar.lzma
2018/04/03 | 81424 | systems/win32/miktex/tm/packages/vpp.tar.lzma
2016/07/18 | 2789 | systems/win32/miktex/tm/packages/vrb.tar.lzma
2011/03/04 | 226798 | systems/win32/miktex/tm/packages/vruler.tar.lzma
@@ -313017,7 +313052,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2023/04/15 | 186 | timestamp
+2023/04/16 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index a8c6ae764b..d08c3f2f65 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 6974c47f35..70e7d86ba2 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,8 +1,437 @@
+2023/04/15 | 9986 | macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
+2023/04/15 | 9951 | macros/latex/contrib/profcollege/latex/PfCTriominos.tex
+2023/04/15 | 9815 | macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
+2023/04/15 | 9699 | macros/latex/contrib/profcollege/latex/PfCCartographie.tex
+2023/04/15 | 969585 | systems/win32/miktex/tm/packages/biblatex-gost__doc.tar.lzma
+2023/04/15 | 9525331 | systems/win32/miktex/tm/packages/drawing-with-metapost__source.tar.lzma
+2023/04/15 | 9453 | macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
+2023/04/15 | 9427 | macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
+2023/04/15 | 9413 | macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
+2023/04/15 | 9367 | macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
+2023/04/15 | 9284 | systems/win32/miktex/tm/packages/nostarch.tar.lzma
+2023/04/15 | 9138986 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2023/04/15 | 88452 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma
+2023/04/15 | 88421 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2023/04/15 | 880 | systems/texlive/tlnet/archive/collection-langenglish.r66846.tar.xz
+2023/04/15 | 8793 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2023/04/15 | 8783 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma
+2023/04/15 | 8711 | macros/latex/contrib/profcollege/latex/PfCShikaku.tex
+2023/04/15 | 8676 | macros/latex/contrib/profcollege/latex/PfCYohaku.tex
+2023/04/15 | 8585 | systems/win32/miktex/tm/packages/cleveref-usedon__source.tar.lzma
+2023/04/15 | 848758 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+2023/04/15 | 8413938 | systems/win32/miktex/tm/packages/drawing-with-metapost.tar.lzma
+2023/04/15 | 8351 | systems/win32/miktex/tm/packages/vpe.tar.lzma
+2023/04/15 | 8321040 | macros/context/contrib/context-simpleslides.zip
+2023/04/15 | 831644 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2023/04/15 | 830204 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma
+2023/04/15 | 8271 | macros/latex/contrib/profcollege/latex/PfCBillard.tex
+2023/04/15 | 8221 | macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
+2023/04/15 | 82215 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2023/04/15 | 81843 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma
+2023/04/15 | 8180 | macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
+2023/04/15 | 81523 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2023/04/15 | 81494 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma
+2023/04/15 | 81480 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2023/04/15 | 81444 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma
+2023/04/15 | 8113 | macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
+2023/04/15 | 78656 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma
+2023/04/15 | 78642 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2023/04/15 | 7808 | macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+2023/04/15 | 78075 | macros/latex/contrib/profcollege/metapost/PfCObjets.mp
+2023/04/15 | 7797 | macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
+2023/04/15 | 77663 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2023/04/15 | 77624 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma
+2023/04/15 | 7695 | macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
+2023/04/15 | 76753 | macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
+2023/04/15 | 763803 | systems/win32/miktex/tm/packages/elteikthesis__doc.tar.lzma
+2023/04/15 | 7624 | graphics/pstricks/contrib/luapstricks/PSTricksDotFont.otf
+2023/04/15 | 762157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2023/04/15 | 761928 | systems/win32/miktex/tm/packages/files.csv.lzma
+2023/04/15 | 76042 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma
+2023/04/15 | 76027 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2023/04/15 | 74694 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 74511 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 73295 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma
+2023/04/15 | 73293 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2023/04/15 | 72982 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
+2023/04/15 | 72804 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2023/04/15 | 72779 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2023/04/15 | 7244 | macros/latex/contrib/profcollege/latex/PfCFrise.tex
+2023/04/15 | 7234 | systems/win32/miktex/tm/packages/vpe__doc.tar.lzma
+2023/04/15 | 71255 | macros/latex/contrib/profcollege/latex/PfCReperage.tex
+2023/04/15 | 7102 | macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
+2023/04/15 | 7088 | macros/latex/contrib/profcollege/latex/PfCColorilude.tex
+2023/04/15 | 7072 | macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
+2023/04/15 | 706008 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2023/04/15 | 705562 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2023/04/15 | 69742 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2023/04/15 | 697351 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2023/04/15 | 697161 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2023/04/15 | 69639 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma
+2023/04/15 | 67236 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma
+2023/04/15 | 67150 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2023/04/15 | 6656 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex
+2023/04/15 | 66284 | systems/win32/miktex/tm/packages/siunitx.tar.lzma
+2023/04/15 | 661175 | systems/win32/miktex/tm/packages/elteiktdk__doc.tar.lzma
+2023/04/15 | 6496042 | systems/win32/miktex/tm/packages/uantwerpendocs.tar.lzma
+2023/04/15 | 64609 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2023/04/15 | 64593 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma
+2023/04/15 | 6428 | macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
+2023/04/15 | 63666 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2023/04/15 | 63374 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2023/04/15 | 62633 | macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+2023/04/15 | 6260 | macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
+2023/04/15 | 6148 | macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
+2023/04/15 | 61451 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
+2023/04/15 | 608246 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2023/04/15 | 607517 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma
+2023/04/15 | 60711 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 6032 | systems/win32/miktex/tm/packages/elteikthesis.tar.lzma
+2023/04/15 | 6030 | macros/latex/contrib/profcollege/latex/PfCTectonic.tex
+2023/04/15 | 601000 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2023/04/15 | 600941 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma
+2023/04/15 | 60009 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 597535 | systems/win32/miktex/tm/packages/piton__doc.tar.lzma
+2023/04/15 | 58747 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2023/04/15 | 58734 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma
+2023/04/15 | 58507 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 58488 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2023/04/15 | 58462 | macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
+2023/04/15 | 583040 | systems/win32/miktex/tm/packages/nostarch__doc.tar.lzma
+2023/04/15 | 5769 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
+2023/04/15 | 5735787 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/04/15 | 572 | systems/texlive/tlnet/archive/drawing-with-metapost.r66846.tar.xz
+2023/04/15 | 56986 | macros/latex/contrib/profcollege/latex/PfCThales.tex
+2023/04/15 | 569274 | macros/luatex/generic/evangelion-jfm.zip
+2023/04/15 | 56022 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2023/04/15 | 56013 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2023/04/15 | 5561 | macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
+2023/04/15 | 556069 | systems/win32/miktex/tm/packages/lastpage__doc.tar.lzma
+2023/04/15 | 55160 | systems/win32/miktex/tm/packages/diffcoeff__source.tar.lzma
+2023/04/15 | 54545 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2023/04/15 | 54520 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma
+2023/04/15 | 54106 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2023/04/15 | 5409 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex
+2023/04/15 | 54073 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2023/04/15 | 5365 | macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
+2023/04/15 | 531301 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2023/04/15 | 530527 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2023/04/15 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
+2023/04/15 | 5262 | systems/win32/miktex/tm/packages/miktex-config-2.9.tar.lzma
+2023/04/15 | 52549 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma
+2023/04/15 | 52541 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2023/04/15 | 5248 | macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
+2023/04/15 | 505 | macros/luatex/generic/evangelion-jfm/make.sh
+2023/04/15 | 500896 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2023/04/15 | 500443 | systems/win32/miktex/tm/packages/miktex-ptex-bin-x64.tar.lzma
+2023/04/15 | 49651 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2023/04/15 | 49651 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma
+2023/04/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/04/15 | 4898 | systems/win32/miktex/tm/packages/pdfcrop__doc.tar.lzma
+2023/04/15 | 48959 | systems/win32/miktex/tm/packages/piton__source.tar.lzma
+2023/04/15 | 48136 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2023/04/15 | 48089 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma
+2023/04/15 | 47591 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
+2023/04/15 | 4736 | macros/latex/contrib/profcollege/latex/PfCRLE.tex
+2023/04/15 | 473688 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma
+2023/04/15 | 4730 | macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
+2023/04/15 | 473077 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2023/04/15 | 47050 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2023/04/15 | 47029 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma
+2023/04/15 | 4692 | macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
+2023/04/15 | 4664 | macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
+2023/04/15 | 46317 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
+2023/04/15 | 46041 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
+2023/04/15 | 46017 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2023/04/15 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/04/15 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/04/15 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/04/15 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/04/15 | 4552 | systems/texlive/tlnet/archive/pdfcrop.doc.r66850.tar.xz
+2023/04/15 | 4548 | macros/latex/contrib/profcollege/latex/PfCMosaique.tex
+2023/04/15 | 45424 | systems/texlive/tlnet/archive/bithesis.source.r66849.tar.xz
+2023/04/15 | 449 | macros/luatex/generic/evangelion-jfm/figure/fig.tex
+2023/04/15 | 44608 | systems/win32/miktex/tm/packages/uantwerpendocs__source.tar.lzma
+2023/04/15 | 44184 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf
+2023/04/15 | 44157 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 44150 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2023/04/15 | 43817 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 43760 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2023/04/15 | 43746 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 43696 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma
+2023/04/15 | 4366723 | systems/win32/miktex/tm/packages/uantwerpendocs__doc.tar.lzma
+2023/04/15 | 43064 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2023/04/15 | 43056 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma
+2023/04/15 | 423772 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66842.tar.xz
+2023/04/15 | 4219 | systems/win32/miktex/tm/packages/lastpage.tar.lzma
+2023/04/15 | 4195 | systems/win32/miktex/tm/packages/papermas.tar.lzma
+2023/04/15 | 4138 | macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
+2023/04/15 | 413805 | systems/win32/miktex/tm/packages/papermas__doc.tar.lzma
+2023/04/15 | 4117 | macros/latex/contrib/profcollege/latex/PfCDomino.tex
+2023/04/15 | 4063520 | biblio/ctan-bibdata.zip
+2023/04/15 | 4034 | macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+2023/04/15 | 40137 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 40087 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 395080 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2023/04/15 | 394768 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma
+2023/04/15 | 3835 | macros/latex/contrib/profcollege/latex/PfCKenKen.tex
+2023/04/15 | 3765 | macros/latex/contrib/profcollege/latex/PfCEnquete.tex
+2023/04/15 | 37634 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2023/04/15 | 3751 | macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
+2023/04/15 | 37417 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma
+2023/04/15 | 36968 | graphics/pstricks/contrib/luapstricks.zip
+2023/04/15 | 3666 | systems/win32/miktex/tm/packages/cleveref-usedon.tar.lzma
+2023/04/15 | 3665661 | biblio/ctan-bibdata/ctan.pdf
+2023/04/15 | 36636 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2023/04/15 | 36595 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma
+2023/04/15 | 36587 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 36525 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma
+2023/04/15 | 3618 | macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
+2023/04/15 | 3578532 | systems/texlive/tlnet/archive/pst-func.doc.r66845.tar.xz
+2023/04/15 | 35604 | systems/win32/miktex/tm/packages/biblatex-gost__source.tar.lzma
+2023/04/15 | 354645 | systems/win32/miktex/tm/packages/elteikthesis__source.tar.lzma
+2023/04/15 | 3545795 | systems/win32/miktex/tm/packages/pst-func__doc.tar.lzma
+2023/04/15 | 354540 | systems/win32/miktex/tm/packages/elteiktdk__source.tar.lzma
+2023/04/15 | 354162 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 353744 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 35264 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2023/04/15 | 35249 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma
+2023/04/15 | 3431 | macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
+2023/04/15 | 33798 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2023/04/15 | 33787 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma
+2023/04/15 | 33669 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2023/04/15 | 33664 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma
+2023/04/15 | 33436 | systems/win32/miktex/tm/packages/pst-func__source.tar.lzma
+2023/04/15 | 329053 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 328747 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 3280 | macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
+2023/04/15 | 32631 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2023/04/15 | 32614 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma
+2023/04/15 | 318719 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2023/04/15 | 318718 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2023/04/15 | 31776 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2023/04/15 | 31731 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma
+2023/04/15 | 31685 | systems/win32/miktex/tm/packages/photobook.tar.lzma
+2023/04/15 | 31607 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2023/04/15 | 31586 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma
+2023/04/15 | 313229 | systems/win32/miktex/tm/packages/cleveref-usedon__doc.tar.lzma
+2023/04/15 | 3112704 | systems/win32/miktex/tm/packages/luatexja__doc.tar.lzma
+2023/04/15 | 30855 | macros/luatex/generic/evangelion-jfm/Evangelion-JFM.dtx
+2023/04/15 | 307743 | macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-sc.pdf
+2023/04/15 | 305414 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma
+2023/04/15 | 305119 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2023/04/15 | 3043 | macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
+2023/04/15 | 2986 | systems/win32/miktex/tm/packages/elteiktdk.tar.lzma
+2023/04/15 | 2980 | macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
+2023/04/15 | 2975 | macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
+2023/04/15 | 2939 | macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
+2023/04/15 | 290302 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma
+2023/04/15 | 290040 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2023/04/15 | 28926 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2023/04/15 | 28898 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2023/04/15 | 288251 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma
+2023/04/15 | 288237 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2023/04/15 | 28807 | systems/win32/miktex/tm/packages/lua-typo__source.tar.lzma
+2023/04/15 | 28776 | macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex
+2023/04/15 | 2866 | macros/luatex/generic/evangelion-jfm/README.md
+2023/04/15 | 28522 | systems/win32/miktex/tm/packages/nostarch__source.tar.lzma
+2023/04/15 | 28434 | macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
+2023/04/15 | 2837 | macros/latex/contrib/profcollege/latex/PfCMentalo.tex
+2023/04/15 | 2831248 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2023/04/15 | 2831034 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma
+2023/04/15 | 28303 | macros/latex/contrib/profcollege/latex/PfCSolides.tex
+2023/04/15 | 281612 | systems/texlive/tlnet/archive/lua-typo.doc.r66848.tar.xz
+2023/04/15 | 2815 | macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
+2023/04/15 | 2807948 | systems/win32/miktex/tm/packages/citation-style-language.tar.lzma
+2023/04/15 | 279567 | systems/win32/miktex/tm/packages/lua-typo__doc.tar.lzma
+2023/04/15 | 27807 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma
+2023/04/15 | 2778849 | biblio/ctan-bibdata/ctan.bib
+2023/04/15 | 2775201 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
+2023/04/15 | 27670 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2023/04/15 | 27597 | macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+2023/04/15 | 2751480 | systems/texlive/tlnet/archive/simpleicons.r66843.tar.xz
+2023/04/15 | 27287 | macros/latex/contrib/profcollege/metapost/PfCSolid.mp
+2023/04/15 | 271766 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2023/04/15 | 271487 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma
+2023/04/15 | 27080 | systems/texlive/tlnet/archive/lua-typo.source.r66848.tar.xz
+2023/04/15 | 27023 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
+2023/04/15 | 2647945 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
+2023/04/15 | 2634 | macros/latex/contrib/profcollege/latex/PfCSquaro.tex
+2023/04/15 | 2617 | macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
+2023/04/15 | 2605 | macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
+2023/04/15 | 26025673 | systems/texlive/tlnet/install-tl.zip
+2023/04/15 | 25456 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 25456 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2023/04/15 | 25375 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2023/04/15 | 25357 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma
+2023/04/15 | 25302 | macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
+2023/04/15 | 251568 | systems/texlive/tlnet/archive/quickreaction.doc.r66844.tar.xz
+2023/04/15 | 25143 | macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+2023/04/15 | 249726 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2023/04/15 | 249657 | systems/win32/miktex/tm/packages/miktex-hitex-bin-x64.tar.lzma
+2023/04/15 | 2473 | macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
+2023/04/15 | 24665 | macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
+2023/04/15 | 246287 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 246204 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2023/04/15 | 24496 | systems/texlive/tlnet/archive/bithesis.r66849.tar.xz
+2023/04/15 | 2443060 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/04/15 | 243037 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+2023/04/15 | 24014 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2023/04/15 | 23987 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma
+2023/04/15 | 237786 | systems/win32/miktex/tm/packages/citation-style-language__doc.tar.lzma
+2023/04/15 | 234048 | macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-en.pdf
+2023/04/15 | 231486 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma
+2023/04/15 | 231266 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2023/04/15 | 23088 | macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
+2023/04/15 | 2305 | macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
+2023/04/15 | 22985 | macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
+2023/04/15 | 2285 | macros/latex/contrib/profcollege/latex/PfCGrades.tex
+2023/04/15 | 2276 | macros/latex/contrib/profcollege/latex/PfCKakuro.tex
+2023/04/15 | 2222 | macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
+2023/04/15 | 221713 | systems/win32/miktex/tm/packages/luatexja__source.tar.lzma
+2023/04/15 | 22168 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
+2023/04/15 | 2211 | macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
+2023/04/15 | 221129 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2023/04/15 | 221021 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma
+2023/04/15 | 217700 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2023/04/15 | 217617 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma
+2023/04/15 | 216718 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2023/04/15 | 2155 | macros/latex/contrib/profcollege/latex/PfCGaram.tex
+2023/04/15 | 21465 | systems/win32/miktex/tm/packages/biblatex-gost.tar.lzma
+2023/04/15 | 21392 | systems/win32/miktex/tm/packages/lastpage__source.tar.lzma
+2023/04/15 | 21168 | systems/texlive/tlnet/archive/biblatex-gost.r66847.tar.xz
+2023/04/15 | 21128 | systems/win32/miktex/tm/packages/pst-func.tar.lzma
+2023/04/15 | 21037584 | systems/texlive/tlnet/install-tl-windows.exe
+2023/04/15 | 20956 | systems/texlive/tlnet/archive/pst-func.r66845.tar.xz
+2023/04/15 | 209338 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma
+2023/04/15 | 2072 | macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
+2023/04/15 | 203672 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2023/04/15 | 203510 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma
+2023/04/15 | 2023921 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
+2023/04/15 | 20192 | macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+2023/04/15 | 2017796 | systems/texlive/tlnet/archive/simpleicons.doc.r66843.tar.xz
+2023/04/15 | 1994470 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2023/04/15 | 1993960 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma
+2023/04/15 | 19900 | macros/latex/contrib/profcollege/latex/PfCTrio.tex
+2023/04/15 | 19766 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2023/04/15 | 19734 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2023/04/15 | 19679 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2023/04/15 | 19638 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2023/04/15 | 194102 | systems/win32/miktex/tm/packages/luatexja.tar.lzma
+2023/04/15 | 19322 | macros/luatex/generic/evangelion-jfm/jfm-eva.lua
+2023/04/15 | 1911889 | macros/latex/contrib/proflycee.zip
+2023/04/15 | 1904175 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2023/04/15 | 1903941 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2023/04/15 | 18964 | graphics/pstricks/contrib/luapstricks/luapstricks-plugin-pstmarble.lua
+2023/04/15 | 1862 | macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
+2023/04/15 | 1833509 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
+2023/04/15 | 182863 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2023/04/15 | 182711 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma
+2023/04/15 | 18081 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
+2023/04/15 | 18072846 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/04/15 | 18043 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2023/04/15 | 1777 | macros/latex/contrib/profcollege/latex/PfCRapido.tex
+2023/04/15 | 174340 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2023/04/15 | 174318 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma
+2023/04/15 | 1704 | systems/texlive/tlnet/archive/quickreaction.r66844.tar.xz
+2023/04/15 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/04/15 | 1668 | systems/texlive/tlnet/archive/collection-mathscience.r66844.tar.xz
+2023/04/15 | 1667 | graphics/pstricks/contrib/luapstricks/README.md
+2023/04/15 | 1658835 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2023/04/15 | 1658655 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2023/04/15 | 16349 | macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
+2023/04/15 | 16190 | macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+2023/04/15 | 1596 | macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
+2023/04/15 | 157821 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2023/04/15 | 157334 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2023/04/15 | 15682724 | systems/texlive/tlnet/archive/drawing-with-metapost.doc.r66846.tar.xz
+2023/04/15 | 15575 | macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
+2023/04/15 | 15573 | macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+2023/04/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/04/15 | 1531088 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
+2023/04/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/04/15 | 1528 | macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
+2023/04/15 | 1528865 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2023/04/15 | 15260 | macros/latex/contrib/profcollege/latex/PfCPropor.tex
+2023/04/15 | 15169 | macros/latex/contrib/profcollege/latex/PfCPapiers.tex
+2023/04/15 | 15072 | macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
+2023/04/15 | 14930 | macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
+2023/04/15 | 14927 | macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
+2023/04/15 | 1488 | macros/latex/contrib/profcollege/latex/PfCScratch.tex
+2023/04/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/04/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/04/15 | 14470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2023/04/15 | 14449 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
+2023/04/15 | 14438 | systems/win32/miktex/tm/packages/photobook__source.tar.lzma
+2023/04/15 | 1429824 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2023/04/15 | 1427074 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2023/04/15 | 14157 | macros/latex/contrib/profcollege/latex/PfCCAN.tex
+2023/04/15 | 14131 | macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
+2023/04/15 | 14093611 | macros/latex/contrib/profcollege.zip
+2023/04/15 | 140490 | systems/win32/miktex/tm/packages/photobook__doc.tar.lzma
+2023/04/15 | 140411 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 140303 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2023/04/15 | 137417 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2023/04/15 | 137400 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma
+2023/04/15 | 13498 | systems/win32/miktex/tm/packages/papermas__source.tar.lzma
+2023/04/15 | 134212 | graphics/pstricks/contrib/luapstricks/luapstricks.lua
+2023/04/15 | 1341745 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma
+2023/04/15 | 1338453 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2023/04/15 | 12967 | systems/win32/miktex/tm/packages/piton.tar.lzma
+2023/04/15 | 1280733 | systems/win32/miktex/tm/packages/diffcoeff__doc.tar.lzma
+2023/04/15 | 1272857 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma
+2023/04/15 | 125612 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
+2023/04/15 | 1196500 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
+2023/04/15 | 11943 | macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
+2023/04/15 | 118276 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma
+2023/04/15 | 11740 | macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
+2023/04/15 | 117038 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2023/04/15 | 116989 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma
+2023/04/15 | 1169151 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma
+2023/04/15 | 1167828 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2023/04/15 | 11553 | systems/win32/miktex/tm/packages/lua-typo.tar.lzma
+2023/04/15 | 1152 | systems/win32/miktex/tm/packages/pr.ini
+2023/04/15 | 11523 | systems/win32/miktex/tm/packages/diffcoeff.tar.lzma
+2023/04/15 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
+2023/04/15 | 11417 | macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
+2023/04/15 | 114052 | systems/texlive/tlnet/archive/texlive-scripts.r66842.tar.xz
+2023/04/15 | 11396 | systems/texlive/tlnet/archive/lua-typo.r66848.tar.xz
+2023/04/15 | 11250 | macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
+2023/04/15 | 11222 | systems/win32/miktex/tm/packages/pdfcrop.tar.lzma
+2023/04/15 | 112016 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma
+2023/04/15 | 111990 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2023/04/15 | 1105612 | systems/texlive/tlnet/archive/bithesis.doc.r66849.tar.xz
+2023/04/15 | 1104728 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
+2023/04/15 | 11036 | systems/texlive/tlnet/archive/pdfcrop.r66850.tar.xz
+2023/04/15 | 11026 | macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
+2023/04/15 | 109746 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2023/04/15 | 109734 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma
+2023/04/15 | 10951 | macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
+2023/04/15 | 108157 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2023/04/15 | 108026 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
+2023/04/15 | 1063 | macros/luatex/generic/evangelion-jfm/LICENSE
+2023/04/15 | 10633 | macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
+2023/04/15 | 106298 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2023/04/15 | 106212 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma
+2023/04/15 | 105619 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma
+2023/04/15 | 105547 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2023/04/15 | 10535 | macros/luatex/generic/evangelion-jfm/figure/fig-tc.pdf
+2023/04/15 | 10530 | macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+2023/04/15 | 103848 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
+2023/04/15 | 103804 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2023/04/15 | 102937 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2023/04/15 | 102906 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2023/04/15 | 10077 | macros/luatex/generic/evangelion-jfm/figure/fig-jp.pdf
+2023/04/15 | 10074 | macros/latex/contrib/profcollege/latex/PfCRose.tex
+2023/04/15 | 1002908 | systems/texlive/tlnet/archive/biblatex-gost.doc.r66847.tar.xz
+2023/04/15 | 100165 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2023/04/15 | 100136 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
2023/04/14 | 998 | info/drawing-with-metapost/src/whatever.mp
2023/04/14 | 988 | info/drawing-with-metapost/src/eggs-moss.mp
2023/04/14 | 9844 | info/drawing-with-metapost/src/curves-spiral-gnomon-trig.pdf
2023/04/14 | 979 | info/drawing-with-metapost/src/mediation-sallows.mp
2023/04/14 | 9765 | info/drawing-with-metapost/src/conway.pdf
+2023/04/14 | 9750 | macros/context/contrib/context-simpleslides/tex/context/interface/third/t-simpleslides.xml
2023/04/14 | 96 | info/drawing-with-metapost/src/ruler-pt.mp
2023/04/14 | 969 | info/drawing-with-metapost/src/little-hexagon.pdf
2023/04/14 | 968 | info/drawing-with-metapost/src/arch-4-8-8.mp
@@ -15,6 +444,7 @@
2023/04/14 | 942 | info/drawing-with-metapost/src/explode.mp
2023/04/14 | 941 | info/drawing-with-metapost/src/arch-triangle.mp
2023/04/14 | 936 | info/drawing-with-metapost/src/tiling-kepler-x.mp
+2023/04/14 | 9359 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-SideToc.tex
2023/04/14 | 934 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
2023/04/14 | 9308 | info/drawing-with-metapost/src/circumcircle.pdf
2023/04/14 | 9301 | info/drawing-with-metapost/src/intersection-all-three.pdf
@@ -25,6 +455,7 @@
2023/04/14 | 914 | info/drawing-with-metapost/src/tiling-simple.mp
2023/04/14 | 9120 | info/drawing-with-metapost/src/intersection-only-two.pdf
2023/04/14 | 9102 | info/drawing-with-metapost/src/dice.pdf
+2023/04/14 | 9037 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Swoosh.tex
2023/04/14 | 885 | info/drawing-with-metapost/src/area-under-graph.mp
2023/04/14 | 882 | info/drawing-with-metapost/src/curves-limacon-durer.mp
2023/04/14 | 881 | info/drawing-with-metapost/src/eggs-fried.mp
@@ -61,9 +492,11 @@
2023/04/14 | 794 | info/drawing-with-metapost/src/illusions-impossible-triangle.mp
2023/04/14 | 7945 | info/drawing-with-metapost/src/tangents-on-path.pdf
2023/04/14 | 7920 | graphics/pstricks/contrib/pst-func/Changes
+2023/04/14 | 7913 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/example.pdf
2023/04/14 | 787 | info/drawing-with-metapost/src/tiling-kepler-k.mp
2023/04/14 | 7878 | info/drawing-with-metapost/src/closed-points.pdf
2023/04/14 | 784 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsOneZero.tfm
+2023/04/14 | 7804 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-RainbowStripe.tex
2023/04/14 | 776 | info/drawing-with-metapost/src/bisection-euclidean.mp
2023/04/14 | 775 | info/drawing-with-metapost/src/bisection-vector.mp
2023/04/14 | 774 | info/drawing-with-metapost/src/shadows.mp
@@ -77,12 +510,14 @@
2023/04/14 | 749 | info/drawing-with-metapost/src/func-maurer-rose.mp
2023/04/14 | 748 | info/drawing-with-metapost/src/greek-default-encoding.mp
2023/04/14 | 74542 | info/drawing-with-metapost/src/rec-bush.pdf
+2023/04/14 | 7440 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FuzzyFrame.tex
2023/04/14 | 742 | info/drawing-with-metapost/src/random-function.mp
2023/04/14 | 742 | info/drawing-with-metapost/src/euler-sampler.mp
2023/04/14 | 738 | info/drawing-with-metapost/src/shady-circles.mp
2023/04/14 | 737 | info/drawing-with-metapost/src/minus.mp
2023/04/14 | 733 | info/drawing-with-metapost/src/gons.mp
2023/04/14 | 7299 | info/drawing-with-metapost/src/color-blend-toy.pdf
+2023/04/14 | 7285 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/04/14 | 727 | info/drawing-with-metapost/src/rec-heighway-stages.mp
2023/04/14 | 726 | info/drawing-with-metapost/src/porson.mp
2023/04/14 | 72306 | info/drawing-with-metapost/src/tiling.pdf
@@ -94,12 +529,14 @@
2023/04/14 | 688 | info/drawing-with-metapost/src/rec-bush.mp
2023/04/14 | 678 | info/drawing-with-metapost/src/greek-homer.mp
2023/04/14 | 677 | info/drawing-with-metapost/src/eggs-shaded.mp
+2023/04/14 | 6719 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-fontsdefault.mkiv
2023/04/14 | 666 | info/drawing-with-metapost/src/multi-line-labels.mp
2023/04/14 | 665 | fonts/simpleicons/README.md
2023/04/14 | 663 | info/drawing-with-metapost/src/arch-square.mp
2023/04/14 | 66152 | systems/texlive/tlnet/archive/siunitx.r66840.tar.xz
2023/04/14 | 659 | info/drawing-with-metapost/src/saturn-code.mp
2023/04/14 | 659 | info/drawing-with-metapost/src/bisection-interior.mp
+2023/04/14 | 6555 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BigNumber.tex
2023/04/14 | 65222 | info/drawing-with-metapost/src/trad-font-changes.pdf
2023/04/14 | 648 | info/drawing-with-metapost/src/trisection-simple.mp
2023/04/14 | 647 | info/drawing-with-metapost/src/random-selection.mp
@@ -111,24 +548,31 @@
2023/04/14 | 634675 | macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf
2023/04/14 | 6312 | info/drawing-with-metapost/src/arch-4-8-8-parts.pdf
2023/04/14 | 629 | info/drawing-with-metapost/src/illusions-fraser-spiral.mp
+2023/04/14 | 6242 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Split.tex
2023/04/14 | 622 | info/drawing-with-metapost/src/illusions-pinna.mp
2023/04/14 | 619 | graphics/pstricks/contrib/pst-func/latex/pst-func.sty
2023/04/14 | 61953 | info/drawing-with-metapost/src/escher.pdf
2023/04/14 | 6142 | info/drawing-with-metapost/src/curves-astroid-family.pdf
2023/04/14 | 6119 | info/drawing-with-metapost/src/corners.pdf
2023/04/14 | 610 | info/drawing-with-metapost/src/rec-sierpinski-triangle.mp
+2023/04/14 | 6100 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/generic-talk-15min-45min.tex
+2023/04/14 | 6090 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Rounded.tex
+2023/04/14 | 6085 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Sunrise.tex
2023/04/14 | 60432 | info/drawing-with-metapost/src/archimedes.pdf
+2023/04/14 | 6017 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Framed.tex
2023/04/14 | 59925 | info/drawing-with-metapost/src/greek-gfs-encoding.pdf
2023/04/14 | 592 | info/drawing-with-metapost/src/illusions-cafe-wall.mp
2023/04/14 | 5904 | info/drawing-with-metapost/src/split-labels.pdf
2023/04/14 | 58852 | info/drawing-with-metapost/src/rec-general-tree-deviate.pdf
2023/04/14 | 586 | info/drawing-with-metapost/src/curves-astroid.mp
2023/04/14 | 582 | info/drawing-with-metapost/src/eggs-super.mp
+2023/04/14 | 5823 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BoxedTitle.tex
2023/04/14 | 578 | info/drawing-with-metapost/src/tangent-times-on-circle.mp
-2023/04/14 | 5735816 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/04/14 | 5736 | macros/context/contrib/context-simpleslides/scripts/context/lua/third/simpleslides/mtx-simpleslides.lua
2023/04/14 | 57306 | info/drawing-with-metapost/src/curves-spiral-archimedes.pdf
2023/04/14 | 568 | info/drawing-with-metapost/src/trad-font-changes.mp
2023/04/14 | 567 | info/drawing-with-metapost/src/callout.mp
+2023/04/14 | 5671 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-HorizontalStripes.tex
2023/04/14 | 562 | info/drawing-with-metapost/src/geometry-triangles-on-circle.mp
2023/04/14 | 562 | info/drawing-with-metapost/src/conway.mp
2023/04/14 | 560 | info/drawing-with-metapost/src/closed-polygon-chain.mp
@@ -138,6 +582,7 @@
2023/04/14 | 553 | info/drawing-with-metapost/src/intersection-only-two.mp
2023/04/14 | 5478 | info/drawing-with-metapost/src/multi-line-labels.pdf
2023/04/14 | 535 | info/drawing-with-metapost/src/greek-gfs-encoding.mp
+2023/04/14 | 5347 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-NarrowStripes.tex
2023/04/14 | 5344 | info/drawing-with-metapost/src/archimedes.mp
2023/04/14 | 529 | info/drawing-with-metapost/src/random-shapes.mp
2023/04/14 | 5250 | info/drawing-with-metapost/src/brexit-map.mp
@@ -152,23 +597,28 @@
2023/04/14 | 508002 | info/drawing-with-metapost/src/rec-mink-sausage.pdf
2023/04/14 | 505 | info/drawing-with-metapost/src/func-parametric.mp
2023/04/14 | 5021 | info/drawing-with-metapost/src/eggs-five-point.pdf
+2023/04/14 | 5014 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BottomSquares.tex
2023/04/14 | 5014417 | fonts/simpleicons.zip
2023/04/14 | 498779 | info/drawing-with-metapost/src/rec-general-tree.pdf
2023/04/14 | 4968 | info/drawing-with-metapost/src/apollonius.mp
-2023/04/14 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/04/14 | 489 | graphics/pgf/contrib/quickreaction/README.txt
2023/04/14 | 488 | info/drawing-with-metapost/src/verbatim-with-infont.mp
+2023/04/14 | 4879 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/style-template.tex
2023/04/14 | 484 | info/drawing-with-metapost/src/color-blend-toy.mp
+2023/04/14 | 4826 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Shaded.tex
+2023/04/14 | 4812 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Boxed.tex
2023/04/14 | 479 | info/drawing-with-metapost/src/curves-astroid-family.mp
2023/04/14 | 478812 | info/drawing-with-metapost/src/rec-dragon-golden.pdf
+2023/04/14 | 4777 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Embossed.tex
+2023/04/14 | 4766 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-PlainCounter.tex
+2023/04/14 | 4757 | macros/context/contrib/context-simpleslides/README.md
+2023/04/14 | 4648 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FramedTitle.tex
2023/04/14 | 4600 | info/drawing-with-metapost/src/random-freehand-through.pdf
2023/04/14 | 459 | info/drawing-with-metapost/src/color-hsv-macro.mp
2023/04/14 | 4583 | info/drawing-with-metapost/src/curves-spiral-gnomon-sq.pdf
-2023/04/14 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/04/14 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/04/14 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/04/14 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/04/14 | 45218 | info/drawing-with-metapost/src/rec-simple-tree.pdf
+2023/04/14 | 4469 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-BlackBoard.tex
+2023/04/14 | 4457 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-SideSquares.tex
2023/04/14 | 44424 | info/drawing-with-metapost/src/func-sines.pdf
2023/04/14 | 4425 | info/drawing-with-metapost/src/random-freehand-circumcircle.pdf
2023/04/14 | 441 | info/drawing-with-metapost/src/curves-spiral-archimedes.mp
@@ -177,7 +627,8 @@
2023/04/14 | 4367 | info/drawing-with-metapost/src/rec-sierpinski-triangle.pdf
2023/04/14 | 43633 | info/drawing-with-metapost/src/ifs-heigh-open.pdf
2023/04/14 | 4339 | info/drawing-with-metapost/src/graph-paper.pdf
-2023/04/14 | 423776 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66837.tar.xz
+2023/04/14 | 42525 | macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
+2023/04/14 | 4209 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-ThickStripes.tex
2023/04/14 | 419 | info/drawing-with-metapost/src/infont-example.mp
2023/04/14 | 4190 | info/drawing-with-metapost/src/qed.pdf
2023/04/14 | 41868 | info/drawing-with-metapost/src/pole-and-polar.pdf
@@ -185,7 +636,6 @@
2023/04/14 | 41679 | info/drawing-with-metapost/src/linear-graph.pdf
2023/04/14 | 4109072 | graphics/pstricks/contrib/pst-func/doc/pst-func-doc.pdf
2023/04/14 | 40752 | support/pdfcrop/pdfcrop.pl
-2023/04/14 | 4061669 | biblio/ctan-bibdata.zip
2023/04/14 | 4028 | info/drawing-with-metapost/src/axis-of-similitude.mp
2023/04/14 | 4026 | info/drawing-with-metapost/src/eggs-super.pdf
2023/04/14 | 40019 | info/drawing-with-metapost/src/minus.pdf
@@ -198,6 +648,7 @@
2023/04/14 | 3952 | info/drawing-with-metapost/src/tiling-simple.pdf
2023/04/14 | 393 | info/drawing-with-metapost/src/ifs-heigh-open.mp
2023/04/14 | 392 | info/drawing-with-metapost/src/torn-edge-circle.mp
+2023/04/14 | 39262 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/simpleslides.tex
2023/04/14 | 391 | info/drawing-with-metapost/src/ifs-heigh.mp
2023/04/14 | 3893 | macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/ltxdockit.cls
2023/04/14 | 38506 | info/drawing-with-metapost/src/arch-hst.pdf
@@ -208,14 +659,15 @@
2023/04/14 | 3720 | macros/unicodetex/latex/bithesis/bithesis.ins
2023/04/14 | 37103 | info/drawing-with-metapost/src/func-powers.pdf
2023/04/14 | 369 | info/drawing-with-metapost/src/tangent-times.mp
+2023/04/14 | 3697 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-Ellipse.tex
2023/04/14 | 368 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
2023/04/14 | 3683934 | graphics/pstricks/contrib/pst-func.zip
-2023/04/14 | 3664255 | biblio/ctan-bibdata/ctan.pdf
2023/04/14 | 360 | info/drawing-with-metapost/src/plain-axes.mp
2023/04/14 | 357 | info/drawing-with-metapost/src/eggs-common.mp
2023/04/14 | 35075 | info/drawing-with-metapost/src/tiling-kepler-k.pdf
2023/04/14 | 346 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
2023/04/14 | 346 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
+2023/04/14 | 3422868 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/simpleslides.pdf
2023/04/14 | 339 | info/drawing-with-metapost/src/torn-edge-straight.mp
2023/04/14 | 338 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
2023/04/14 | 338442 | macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.bib
@@ -227,9 +679,11 @@
2023/04/14 | 330 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
2023/04/14 | 33034 | info/drawing-with-metapost/src/cycloids.pdf
2023/04/14 | 3271 | info/drawing-with-metapost/src/fake-transparency.pdf
+2023/04/14 | 32655 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-default.tex
2023/04/14 | 3187 | info/drawing-with-metapost/src/penrose.mp
2023/04/14 | 31873 | info/drawing-with-metapost/src/arbelos.pdf
2023/04/14 | 316 | info/drawing-with-metapost/src/simple-number-line.mp
+2023/04/14 | 313 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/example.tex
2023/04/14 | 31330 | info/drawing-with-metapost/src/func-epi-v-pie.pdf
2023/04/14 | 31262 | info/drawing-with-metapost/src/euler-sampler.pdf
2023/04/14 | 31251 | info/drawing-with-metapost/src/curves-parabola-directrix.pdf
@@ -250,13 +704,13 @@
2023/04/14 | 286 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
2023/04/14 | 286 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
2023/04/14 | 2839 | fonts/simpleicons/enc/simpleiconsOne.enc
+2023/04/14 | 2825 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/t-simpleslides.mkiv
2023/04/14 | 2806936 | systems/texlive/tlnet/archive/citation-style-language.r66838.tar.xz
2023/04/14 | 28048 | info/drawing-with-metapost/src/twister.pdf
2023/04/14 | 2787 | info/drawing-with-metapost/src/draw-picture.mp
2023/04/14 | 27823 | info/drawing-with-metapost/src/func-exponential.pdf
2023/04/14 | 277 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
2023/04/14 | 277 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
-2023/04/14 | 2778051 | biblio/ctan-bibdata/ctan.bib
2023/04/14 | 2751 | fonts/simpleicons/enc/simpleiconsFour.enc
2023/04/14 | 274 | fonts/simpleicons/tex/usimpleiconsOneZero.fd
2023/04/14 | 2740 | info/drawing-with-metapost/src/tiling-hex-trig.mp
@@ -283,7 +737,6 @@
2023/04/14 | 262 | info/drawing-with-metapost/src/arch-snub-hexagon-unit.mp
2023/04/14 | 26260 | info/drawing-with-metapost/src/random-walks-red-blue.pdf
2023/04/14 | 26100 | info/drawing-with-metapost/src/curves-astroid-construction.pdf
-2023/04/14 | 26025692 | systems/texlive/tlnet/install-tl.zip
2023/04/14 | 259 | fonts/simpleicons/tex/usimpleiconsNine.fd
2023/04/14 | 259 | fonts/simpleicons/tex/usimpleiconsFour.fd
2023/04/14 | 259 | fonts/simpleicons/tex/usimpleiconsFive.fd
@@ -302,7 +755,6 @@
2023/04/14 | 2472 | fonts/simpleicons/enc/simpleiconsFive.enc
2023/04/14 | 24682 | info/drawing-with-metapost/src/icosahedron.pdf
2023/04/14 | 2454 | fonts/simpleicons/enc/simpleiconsThree.enc
-2023/04/14 | 2440632 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/04/14 | 24306 | info/drawing-with-metapost/src/numbered-axes.pdf
2023/04/14 | 2416 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
2023/04/14 | 2410 | fonts/simpleicons/enc/simpleiconsOneZero.enc
@@ -313,6 +765,7 @@
2023/04/14 | 2337 | info/drawing-with-metapost/src/picture_frame.mp
2023/04/14 | 232 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
2023/04/14 | 232 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
+2023/04/14 | 2325 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/solutions/speaker_introduction-2min.tex
2023/04/14 | 22816 | info/drawing-with-metapost/src/apollonius.pdf
2023/04/14 | 2278 | info/drawing-with-metapost/src/gaussian.mp
2023/04/14 | 22750 | info/drawing-with-metapost/src/whatever.pdf
@@ -333,7 +786,6 @@
2023/04/14 | 2163 | info/drawing-with-metapost/src/saturn.pdf
2023/04/14 | 215760 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
2023/04/14 | 21407 | info/drawing-with-metapost/src/infont-annotated.pdf
-2023/04/14 | 21036524 | systems/texlive/tlnet/install-tl-windows.exe
2023/04/14 | 20980 | systems/texlive/tlnet/archive/lastpage.source.r66839.tar.xz
2023/04/14 | 20979752 | info/drawing-with-metapost.zip
2023/04/14 | 2087 | info/drawing-with-metapost/src/cycloids-code.mp
@@ -346,6 +798,7 @@
2023/04/14 | 20402 | info/drawing-with-metapost/src/gons.pdf
2023/04/14 | 20334 | info/drawing-with-metapost/src/closed-triangles.pdf
2023/04/14 | 2019 | info/drawing-with-metapost/src/arbelos.mp
+2023/04/14 | 201446 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Boxed.pdf
2023/04/14 | 2007925 | fonts/simpleicons/doc/simpleicons.pdf
2023/04/14 | 2001 | macros/latex/contrib/biblatex-contrib/biblatex-gost/README.md
2023/04/14 | 19973 | info/drawing-with-metapost/src/desargues.pdf
@@ -355,25 +808,50 @@
2023/04/14 | 1973 | info/drawing-with-metapost/src/arch-3-4-3-4.mp
2023/04/14 | 196384 | info/drawing-with-metapost/src/pinwheel.pdf
2023/04/14 | 19610 | info/drawing-with-metapost/src/neo-labels.pdf
+2023/04/14 | 196000 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Swoosh.pdf
2023/04/14 | 1946 | macros/unicodetex/latex/bithesis/README.md
2023/04/14 | 1940 | info/drawing-with-metapost/src/tangents-two-circles-interior.mp
2023/04/14 | 19403 | info/drawing-with-metapost/src/greek-default-encoding.pdf
2023/04/14 | 19329 | info/drawing-with-metapost/src/intersection-algorithm.pdf
2023/04/14 | 192887 | info/drawing-with-metapost/src/rec-dragon.pdf
+2023/04/14 | 192564 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Rounded.pdf
2023/04/14 | 19239 | info/drawing-with-metapost/src/eggs-gold.pdf
+2023/04/14 | 191756 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/SideToc.pdf
+2023/04/14 | 190849 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Split.pdf
2023/04/14 | 19082 | info/drawing-with-metapost/src/eggs-357.pdf
+2023/04/14 | 190594 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Embossed.pdf
2023/04/14 | 1905676 | fonts/simpleicons/opentype/SimpleIcons.otf
2023/04/14 | 1903 | info/drawing-with-metapost/src/func-epi-v-pie.mp
2023/04/14 | 189 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
2023/04/14 | 189 | info/drawing-with-metapost/src/torn-edge.mp
2023/04/14 | 189 | info/drawing-with-metapost/src/little-hexagon.mp
2023/04/14 | 189 | info/drawing-with-metapost/src/cycloids-extra.mp
+2023/04/14 | 189532 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BigNumber-blue.pdf
+2023/04/14 | 189531 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BigNumber-red.pdf
+2023/04/14 | 188985 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/SideSquares.pdf
+2023/04/14 | 188333 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-green.pdf
+2023/04/14 | 188310 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-red.pdf
+2023/04/14 | 188296 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/NarrowStripes-blue.pdf
+2023/04/14 | 188262 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Framed-square.pdf
+2023/04/14 | 188009 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/BottomSquares.pdf
2023/04/14 | 187 | info/drawing-with-metapost/src/cycloids.mp
2023/04/14 | 1878 | info/drawing-with-metapost/src/curves-ellipse-tangents.mp
+2023/04/14 | 187600 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Ellipse.pdf
+2023/04/14 | 187515 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/ThickStripes.pdf
+2023/04/14 | 187382 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-blue.pdf
+2023/04/14 | 187329 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-bluered.pdf
2023/04/14 | 1872 | info/drawing-with-metapost/src/curves-astroid-construction.mp
+2023/04/14 | 187256 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Shaded-green.pdf
2023/04/14 | 186 | info/drawing-with-metapost/src/projections.mp
+2023/04/14 | 186955 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/FramedTitle.pdf
+2023/04/14 | 185983 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Sunrise.pdf
+2023/04/14 | 185906 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/Framed-stripe.pdf
2023/04/14 | 18589 | info/drawing-with-metapost/src/arch-3-4-6-4.pdf
2023/04/14 | 185735 | info/drawing-with-metapost/src/eggs-shaded.pdf
+2023/04/14 | 185513 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-green.pdf
+2023/04/14 | 185500 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-blue.pdf
+2023/04/14 | 185494 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/HorizontalStripes-red.pdf
+2023/04/14 | 185424 | macros/context/contrib/context-simpleslides/doc/context/third/simpleslides/styles/RainbowStripe.pdf
2023/04/14 | 1852 | info/drawing-with-metapost/src/func-addition-of-sines.mp
2023/04/14 | 1844 | fonts/simpleicons/doc/simpleicons.tex
2023/04/14 | 1826 | info/drawing-with-metapost/README.md
@@ -383,7 +861,6 @@
2023/04/14 | 1812 | info/drawing-with-metapost/src/rec-flowsnake-construction.mp
2023/04/14 | 1812 | info/drawing-with-metapost/src/brachisto.mp
2023/04/14 | 18072 | info/drawing-with-metapost/src/arch-3-4-3-4.pdf
-2023/04/14 | 18041201 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2023/04/14 | 1801 | info/drawing-with-metapost/src/curves-limacon-durer.pdf
2023/04/14 | 1800 | info/drawing-with-metapost/src/closed-polygons.mp
2023/04/14 | 17991 | info/drawing-with-metapost/src/projections.pdf
@@ -398,6 +875,7 @@
2023/04/14 | 174 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
2023/04/14 | 17473 | info/drawing-with-metapost/src/func-reflection.pdf
2023/04/14 | 17454 | info/drawing-with-metapost/src/tangents-two-circles-exterior.pdf
+2023/04/14 | 17337 | macros/context/contrib/context-simpleslides/LICENSE
2023/04/14 | 172 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
2023/04/14 | 1728 | info/drawing-with-metapost/src/arch-3-4-6-4.mp
2023/04/14 | 1727 | info/drawing-with-metapost/src/closed-reuleaux-set.pdf
@@ -424,7 +902,6 @@
2023/04/14 | 167 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
2023/04/14 | 16797 | info/drawing-with-metapost/src/trisection-classical.pdf
2023/04/14 | 1678 | info/drawing-with-metapost/src/tufte-mpg.mp
-2023/04/14 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2023/04/14 | 16742 | info/drawing-with-metapost/src/radical-axis.pdf
2023/04/14 | 166 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
2023/04/14 | 1668 | info/drawing-with-metapost/src/workflow-plain.mp
@@ -457,12 +934,10 @@
2023/04/14 | 1551980 | info/drawing-with-metapost/src/youth.pdf
2023/04/14 | 1546 | info/drawing-with-metapost/src/dwmpcode.sty
2023/04/14 | 15438 | info/drawing-with-metapost/src/verbatim-with-infont.pdf
-2023/04/14 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2023/04/14 | 15388 | info/drawing-with-metapost/src/func-maurer-rose.pdf
2023/04/14 | 153501 | info/drawing-with-metapost/src/penrose-P3.pdf
2023/04/14 | 1534 | info/drawing-with-metapost/src/tikzcd-example.mp
2023/04/14 | 15337 | info/drawing-with-metapost/src/complex-inverse-and-sqrt.pdf
-2023/04/14 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2023/04/14 | 15260 | info/drawing-with-metapost/src/blended-color-circles.pdf
2023/04/14 | 1520 | info/drawing-with-metapost/src/curves-hyperbola-construction.mp
2023/04/14 | 1516 | info/drawing-with-metapost/src/eggs-pentagons.pdf
@@ -473,10 +948,8 @@
2023/04/14 | 1472 | info/drawing-with-metapost/src/curves-ellipse.mp
2023/04/14 | 1470 | info/drawing-with-metapost/src/complex-inverse-and-sqrt.mp
2023/04/14 | 1464 | info/drawing-with-metapost/src/eggs-357.mp
-2023/04/14 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2023/04/14 | 1452 | info/drawing-with-metapost/src/trisection-triangles.mp
2023/04/14 | 1452 | info/drawing-with-metapost/src/fake-transparency.mp
-2023/04/14 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2023/04/14 | 144 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
2023/04/14 | 14493 | info/drawing-with-metapost/src/curves-cardioid-simple.pdf
2023/04/14 | 144876 | info/drawing-with-metapost/src/arch-snub-hexagon.pdf
@@ -486,6 +959,7 @@
2023/04/14 | 1436 | info/drawing-with-metapost/src/ifs-heighway-stages.pdf
2023/04/14 | 14278 | info/drawing-with-metapost/src/color-hsv-gamut.pdf
2023/04/14 | 1407 | info/drawing-with-metapost/src/rec-heighway-stages.pdf
+2023/04/14 | 13835 | macros/context/contrib/context-simpleslides/tex/context/third/simpleslides/s-simpleslides-FuzzyTopic.tex
2023/04/14 | 1380 | info/drawing-with-metapost/src/arch-snub-hex-parts.mp
2023/04/14 | 1377 | info/drawing-with-metapost/src/icosahedron.mp
2023/04/14 | 1376 | info/drawing-with-metapost/src/eggs-thom.mp
@@ -528,6 +1002,7 @@
2023/04/14 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsFour.tfm
2023/04/14 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsFive.tfm
2023/04/14 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsEight.tfm
+2023/04/14 | 12308 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/Sundata-calendar.tex
2023/04/14 | 12302 | info/drawing-with-metapost/src/overlaps-missing-filler.pdf
2023/04/14 | 1228 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsTwo.tfm
2023/04/14 | 1228 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsOne.tfm
@@ -537,6 +1012,7 @@
2023/04/14 | 1221 | info/drawing-with-metapost/src/corners.mp
2023/04/14 | 12057 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
2023/04/14 | 120198 | info/drawing-with-metapost/src/trad-font-samples.pdf
+2023/04/14 | 11 | macros/context/contrib/context-simpleslides/VERSION
2023/04/14 | 1197 | info/drawing-with-metapost/src/unicode.mp
2023/04/14 | 11891 | info/drawing-with-metapost/src/eggs-thom.pdf
2023/04/14 | 118698 | info/drawing-with-metapost/src/tiling-hex-trig.pdf
@@ -552,7 +1028,6 @@
2023/04/14 | 11512 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
2023/04/14 | 1150 | info/drawing-with-metapost/src/excircle.mp
2023/04/14 | 11419 | info/drawing-with-metapost/src/tangent-times-on-circle.pdf
-2023/04/14 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r66837.tar.xz
2023/04/14 | 1137 | info/drawing-with-metapost/src/incircle.mp
2023/04/14 | 1136 | info/drawing-with-metapost/src/dice.mp
2023/04/14 | 113584 | info/drawing-with-metapost/src/rec-sierpinski-pentagon.pdf
@@ -568,6 +1043,7 @@
2023/04/14 | 11073 | info/drawing-with-metapost/src/eggs-moss.pdf
2023/04/14 | 110222 | graphics/pstricks/contrib/pst-func/doc/pst-func-doc.tex
2023/04/14 | 1100 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
+2023/04/14 | 10 | macros/context/contrib/context-calendar-examples/VERSION
2023/04/14 | 1098 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
2023/04/14 | 1093 | info/drawing-with-metapost/src/complex-operators.mp
2023/04/14 | 10934 | info/drawing-with-metapost/src/curves-parabola.pdf
@@ -590,15 +1066,18 @@
2023/04/14 | 10351 | info/drawing-with-metapost/src/incircle.pdf
2023/04/14 | 1031 | info/drawing-with-metapost/src/rec-h-tree.mp
2023/04/14 | 1028 | info/drawing-with-metapost/src/closed-reuleaux-set.mp
+2023/04/14 | 10288 | macros/context/contrib/context-calendar-examples/tex/context/third/calendar-examples/A6-1week_per_2pages.tex
2023/04/14 | 1027 | info/drawing-with-metapost/src/eggs-pentagons.mp
2023/04/14 | 10225 | info/drawing-with-metapost/src/verbatim-listing.pdf
2023/04/14 | 1005 | info/drawing-with-metapost/src/rec-general-tree.mp
2023/04/14 | 1002 | info/drawing-with-metapost/src/ifs-heighway-stages.mp
2023/04/14 | 1000 | info/drawing-with-metapost/src/rec-general-tree-deviate.mp
2023/04/13 | 996 | macros/latex/contrib/siunitx/README.md
+2023/04/13 | 9518 | macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
2023/04/13 | 9361 | biblio/citation-style-language/citeproc-unicode.lua
2023/04/13 | 9198 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
2023/04/13 | 90472 | biblio/citation-style-language/citeproc-bibtex-data.lua
+2023/04/13 | 8967 | macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
2023/04/13 | 8866 | macros/latex/contrib/siunitx/siunitx-command.dtx
2023/04/13 | 8686 | biblio/citation-style-language/citeproc-context.lua
2023/04/13 | 8672 | biblio/citation-style-language/citation-style-language-init.sty
@@ -606,11 +1085,12 @@
2023/04/13 | 8052 | biblio/citation-style-language/american-political-science-association.csl
2023/04/13 | 8008 | systems/texlive/tlnet/archive/cleveref-usedon.source.r66833.tar.xz
2023/04/13 | 7698 | biblio/citation-style-language/citeproc-node-choose.lua
-2023/04/13 | 7356 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/04/13 | 72443 | macros/latex/contrib/siunitx/CHANGELOG.md
2023/04/13 | 70022 | biblio/citation-style-language/apa.csl
2023/04/13 | 691511 | macros/latex/contrib/siunitx/siunitx.pdf
2023/04/13 | 6852 | systems/texlive/tlnet/archive/collection-latexextra.r66833.tar.xz
+2023/04/13 | 6616 | macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
+2023/04/13 | 6608 | macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex
2023/04/13 | 6535 | biblio/citation-style-language/citeproc-node-sort.lua
2023/04/13 | 642810 | macros/latex/contrib/siunitx/siunitx-code.pdf
2023/04/13 | 6392 | biblio/citation-style-language/citeproc-cli.lua
@@ -625,6 +1105,7 @@
2023/04/13 | 5131 | biblio/citation-style-language/CHANGELOG.md
2023/04/13 | 5121 | biblio/citation-style-language/citeproc-node-style.lua
2023/04/13 | 48969 | biblio/citation-style-language/chicago-fullnote-bibliography.csl
+2023/04/13 | 4823 | macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex
2023/04/13 | 48147 | biblio/citation-style-language/citeproc-node-citation.lua
2023/04/13 | 4805 | biblio/citation-style-language/citeproc-ir-node.lua
2023/04/13 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
@@ -633,6 +1114,7 @@
2023/04/13 | 4525526 | install/biblio/citation-style-language.tds.zip
2023/04/13 | 4516625 | biblio/citation-style-language.zip
2023/04/13 | 4359 | biblio/citation-style-language/citeproc-latex.lua
+2023/04/13 | 4195 | macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex
2023/04/13 | 41743 | macros/luatex/latex/lua-typo/lua-typo-2023-03-08.sty
2023/04/13 | 413200 | systems/texlive/tlnet/archive/papermas.doc.r66835.tar.xz
2023/04/13 | 3936 | systems/texlive/tlnet/archive/papermas.r66835.tar.xz
@@ -644,6 +1126,7 @@
2023/04/13 | 34070 | biblio/citation-style-language/citeproc-node-names.lua
2023/04/13 | 33867 | macros/latex/contrib/siunitx/siunitx-compound.dtx
2023/04/13 | 333903 | macros/luatex/latex/lua-typo.zip
+2023/04/13 | 33384 | macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
2023/04/13 | 31776 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
2023/04/13 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
2023/04/13 | 312296 | systems/texlive/tlnet/archive/cleveref-usedon.doc.r66833.tar.xz
@@ -734,12 +1217,15 @@
2023/04/13 | 16063 | biblio/citation-style-language/modern-humanities-research-association.csl
2023/04/13 | 160377 | macros/latex/contrib/siunitx/siunitx.tex
2023/04/13 | 15952 | biblio/citation-style-language/ieee.csl
+2023/04/13 | 15681 | macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
2023/04/13 | 1566859 | install/macros/latex/contrib/siunitx.tds.zip
+2023/04/13 | 15518 | macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
2023/04/13 | 153028 | macros/latex/contrib/siunitx/siunitx-number.dtx
2023/04/13 | 1521403 | macros/latex/contrib/siunitx.zip
2023/04/13 | 14969 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
2023/04/13 | 14774984 | biblio/citation-style-language/citeproc-journal-data.lua
2023/04/13 | 1451516 | systems/texlive/tlnet/archive/tex4ht.source.r66831.tar.xz
+2023/04/13 | 14230 | macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
2023/04/13 | 13836 | biblio/citation-style-language/citeproc-node-date.lua
2023/04/13 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r66831.tar.xz
2023/04/13 | 13576 | biblio/citation-style-language/citeproc-bibtex-parser.lua
@@ -934,6 +1420,7 @@
2023/04/11 | 60 | support/texlab/crates/parser/src/test_data/latex/structure/structure_enum_item.txt
2023/04/11 | 60 | support/texlab/crates/citeproc/src/field.rs
2023/04/11 | 608 | support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_prenote_postnote.txt.snap
+2023/04/11 | 6057 | macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
2023/04/11 | 604 | support/texlab/crates/texlab/src/features/hover/field.rs
2023/04/11 | 6018 | support/texlab/crates/texlab/src/util/capabilities.rs
2023/04/11 | 5993 | support/texlab/crates/parser/src/latex/lexer/commands.rs
@@ -1441,6 +1928,7 @@
2023/04/10 | 5878 | macros/latex/contrib/elteiktdk/elteiktdk.cls
2023/04/10 | 587852 | systems/texlive/tlnet/archive/nostarch.doc.r66812.tar.xz
2023/04/10 | 528 | macros/latex/contrib/elteikthesis/elteikthesis_minted.tex
+2023/04/10 | 52774 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
2023/04/10 | 463564 | macros/latex/contrib/elteikthesis/elteikthesis_hu.pdf
2023/04/10 | 434374 | macros/latex/contrib/elteikthesis/elteikthesis_en.pdf
2023/04/10 | 4135 | biblio/bibtex/bibtex-x/tests/testsubstr.bst
@@ -1491,653 +1979,60 @@
2023/04/10 | 1060 | macros/latex/contrib/elteikthesis/samples_en/sum.tex
2023/04/10 | 10304 | systems/texlive/tlnet/archive/nostarch.r66812.tar.xz
2023/04/09 | 9982680 | systems/texlive/tlnet/archive/context.r66802.tar.xz
-2023/04/09 | 948 | systems/win32/miktex/tm/packages/pr.ini
-2023/04/09 | 945 | macros/luatex/generic/luatexja/tool/table_ivd_aj1.lua
-2023/04/09 | 945 | macros/luatex/generic/luatexja/doc/jfm-testf.lua
2023/04/09 | 91292 | macros/latex/contrib/nostarch/nostarch.dtx
-2023/04/09 | 896 | macros/luatex/generic/luatexja/tool/otf-KozMinPr6N-Regular.txt
-2023/04/09 | 885 | macros/luatex/generic/luatexja/src/patches/lltjp-stfloats.sty
-2023/04/09 | 88423 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2023/04/09 | 8831 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2023/04/09 | 8695 | macros/luatex/generic/luatexja/src/ltj-otf.lua
-2023/04/09 | 8660 | macros/luatex/generic/luatexja/src/ltjltxdoc.dtx
2023/04/09 | 84245980 | systems/texlive/tlnet/archive/context.doc.r66802.tar.xz
-2023/04/09 | 825 | macros/luatex/generic/luatexja/src/patches/lltjp-collcell.sty
-2023/04/09 | 825903 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2023/04/09 | 81521 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2023/04/09 | 81275 | systems/texlive/tlnet/tlpkg/translations/es.po
-2023/04/09 | 8103 | macros/luatex/generic/luatexja/src/jfm-min.lua
2023/04/09 | 80858 | macros/latex/contrib/uantwerpendocs/uantwerpencoursetext-example.pdf
-2023/04/09 | 79791 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2023/04/09 | 7790 | macros/luatex/generic/luatexja/tool/jfm-convert.lua
-2023/04/09 | 77598 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2023/04/09 | 7691 | macros/luatex/generic/luatexja/src/ltj-unicode-ccfix.lua
-2023/04/09 | 759286 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
2023/04/09 | 758989 | systems/win32/miktex/tm/packages/yquant__doc.tar.lzma
-2023/04/09 | 758119 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2023/04/09 | 758088 | systems/win32/miktex/tm/packages/files.csv.lzma
2023/04/09 | 756 | systems/texlive/tlnet/archive/context-texlive.r66802.tar.xz
2023/04/09 | 75478 | systems/win32/miktex/tm/packages/latex-lab-dev__source.tar.lzma
-2023/04/09 | 7546 | macros/luatex/generic/luatexja/src/ltj-math.lua
-2023/04/09 | 74342 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2023/04/09 | 740 | macros/latex/contrib/nostarch/README
-2023/04/09 | 73952 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2023/04/09 | 73334 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2023/04/09 | 72979 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
-2023/04/09 | 72919 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2023/04/09 | 71228 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2023/04/09 | 702738 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2023/04/09 | 702568 | macros/latex/contrib/nostarch.zip
-2023/04/09 | 701830 | macros/luatex/generic/luatexja/doc/luatexja-en.pdf
2023/04/09 | 69562 | systems/win32/miktex/tm/packages/yquant__source.tar.lzma
-2023/04/09 | 6952 | macros/luatex/generic/luatexja/src/ltj-pretreat.lua
-2023/04/09 | 69248 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2023/04/09 | 6922 | macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty
-2023/04/09 | 69217 | macros/luatex/generic/luatexja/doc/ltjltxdoc.pdf
-2023/04/09 | 65887 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2023/04/09 | 6571 | macros/luatex/generic/luatexja/src/ltj-latex.sty
-2023/04/09 | 6529 | macros/luatex/generic/luatexja/src/patches/lltjdefs.sty
2023/04/09 | 64884 | macros/latex/contrib/uantwerpendocs/uantwerpenexam-example2.pdf
-2023/04/09 | 64327 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2023/04/09 | 637440 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2023/04/09 | 62751 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2023/04/09 | 6246 | macros/luatex/generic/luatexja/src/ltj-base.sty
2023/04/09 | 62425 | macros/latex/contrib/uantwerpendocs/uantwerpenexam-example1.pdf
-2023/04/09 | 617 | macros/luatex/generic/luatexja/src/patches/lltjp-array.sty
-2023/04/09 | 61653 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2023/04/09 | 6135 | macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty
-2023/04/09 | 6060 | macros/luatex/generic/luatexja/tool/kyoikukanjiChars.tex
-2023/04/09 | 598410 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2023/04/09 | 5931 | macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua
2023/04/09 | 588 | systems/texlive/tlnet/archive/collection-context.r66802.tar.xz
-2023/04/09 | 58712 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2023/04/09 | 5850 | macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty
-2023/04/09 | 58140 | macros/luatex/generic/luatexja/doc/luatexja-ruby.tex
-2023/04/09 | 580 | macros/luatex/generic/luatexja/tool/blocks2defcharrange.rb
-2023/04/09 | 57895 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2023/04/09 | 57409 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
2023/04/09 | 57279 | systems/win32/miktex/tm/packages/yquant.tar.lzma
-2023/04/09 | 57261 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2023/04/09 | 572018 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2023/04/09 | 55782 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2023/04/09 | 55401 | macros/luatex/generic/luatexja/src/ltj-jfmglue.lua
-2023/04/09 | 551 | macros/luatex/generic/luatexja/tool/jfm-readable.rb
-2023/04/09 | 54427 | macros/luatex/generic/luatexja/src/ltj-jisx0208.lua
-2023/04/09 | 543188 | macros/luatex/generic/luatexja/doc/luatexja.dtx
-2023/04/09 | 5302 | macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty
-2023/04/09 | 530060 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2023/04/09 | 52721 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2023/04/09 | 52677 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2023/04/09 | 52548 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2023/04/09 | 5219 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2023/04/09 | 5215 | macros/luatex/generic/luatexja/src/ltj-debug.lua
-2023/04/09 | 50090 | macros/luatex/generic/luatexja/src/patches/lltjfont.sty
2023/04/09 | 497253 | macros/latex/contrib/uantwerpendocs/uantwerpendocs.pdf
-2023/04/09 | 48961 | macros/luatex/generic/luatexja/src/ltj-jfont.lua
-2023/04/09 | 48951 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2023/04/09 | 48262 | systems/win32/miktex/tm/packages/thuthesis__source.tar.lzma
-2023/04/09 | 48164 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2023/04/09 | 4808 | macros/luatex/generic/luatexja/src/jfm-tmin.lua
2023/04/09 | 47872 | systems/texlive/tlnet/archive/thuthesis.source.r66804.tar.xz
-2023/04/09 | 473095 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2023/04/09 | 460413 | macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
-2023/04/09 | 45763 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2023/04/09 | 4521 | macros/luatex/generic/luatexja/src/ltj-stack.lua
-2023/04/09 | 4480 | macros/luatex/generic/luatexja/src/ltj-plain.sty
2023/04/09 | 4463 | systems/win32/miktex/tm/packages/ifptex.tar.lzma
-2023/04/09 | 4452 | macros/luatex/generic/luatexja/doc/jfm-ujisc33.lua
-2023/04/09 | 44081 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2023/04/09 | 43848 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
2023/04/09 | 4382 | systems/win32/miktex/tm/packages/ifptex__doc.tar.lzma
2023/04/09 | 43797 | systems/win32/miktex/tm/packages/thuthesis.tar.lzma
-2023/04/09 | 43718 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
2023/04/09 | 43548 | systems/texlive/tlnet/archive/thuthesis.r66804.tar.xz
-2023/04/09 | 4308 | macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
-2023/04/09 | 4262 | macros/luatex/generic/luatexja/tool/kyoikukanji.txt
-2023/04/09 | 425 | macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
-2023/04/09 | 42507 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2023/04/09 | 4215 | macros/luatex/generic/luatexja/src/ltj-charrange.lua
2023/04/09 | 4212 | systems/texlive/tlnet/archive/ifptex.r66803.tar.xz
2023/04/09 | 42038 | systems/win32/miktex/tm/packages/nahuatl__source.tar.lzma
2023/04/09 | 4182 | systems/win32/miktex/tm/packages/pst-bar.tar.lzma
-2023/04/09 | 41749 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2023/04/09 | 4126 | macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty
2023/04/09 | 4076 | systems/texlive/tlnet/archive/ifptex.doc.r66803.tar.xz
-2023/04/09 | 40540 | macros/luatex/generic/luatexja/src/ltj-direction.lua
-2023/04/09 | 403681 | macros/luatex/generic/luatexja/doc/ltjclasses.pdf
-2023/04/09 | 394741 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2023/04/09 | 391556 | macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf
-2023/04/09 | 3879 | macros/luatex/generic/luatexja/src/ltj-lineskip.lua
-2023/04/09 | 385 | macros/luatex/generic/luatexja/src/ltjsclasses.ins
2023/04/09 | 3833446 | macros/luatex/generic/luatexja.zip
-2023/04/09 | 3796 | macros/luatex/generic/luatexja/README
-2023/04/09 | 3756 | macros/luatex/generic/luatexja/src/ltj-compat.lua
-2023/04/09 | 37416 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2023/04/09 | 37084 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2023/04/09 | 3674 | macros/luatex/generic/luatexja/src/ltj-inputbuf.lua
-2023/04/09 | 355 | macros/luatex/generic/luatexja/tool/otf-AdobeMingStd-Light.txt
-2023/04/09 | 355 | macros/luatex/generic/luatexja/doc/luatexja.ins
-2023/04/09 | 35318 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2023/04/09 | 352353 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2023/04/09 | 35220 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2023/04/09 | 34916 | systems/win32/miktex/tm/packages/gelasio__doc.tar.lzma
2023/04/09 | 34616 | systems/texlive/tlnet/archive/gelasio.doc.r66805.tar.xz
-2023/04/09 | 3451 | macros/luatex/generic/luatexja/src/luatexja-compat.sty
-2023/04/09 | 33880 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2023/04/09 | 3371 | macros/luatex/generic/luatexja/src/patches/lltjp-xunicode.sty
-2023/04/09 | 33461 | macros/luatex/generic/luatexja/src/addons/luatexja-ajmacros.sty
-2023/04/09 | 3313 | macros/luatex/generic/luatexja/tool/ltj-unicode-ccfix_make2.pl
-2023/04/09 | 327501 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2023/04/09 | 326 | macros/luatex/generic/luatexja/tool/otf-AdobeMyungjoStd-Medium.txt
-2023/04/09 | 326904 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2023/04/09 | 3238 | macros/luatex/generic/luatexja/doc/jfm-test.lua
-2023/04/09 | 32343 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2023/04/09 | 3225047 | macros/latex/contrib/uantwerpendocs/beamerthemeuantwerpenuserguide.pdf
-2023/04/09 | 32227 | macros/luatex/generic/luatexja/src/ltj-ruby.lua
-2023/04/09 | 318162 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2023/04/09 | 318154 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2023/04/09 | 317 | macros/luatex/generic/luatexja/tool/otf-AdobeSongStd-Light.txt
-2023/04/09 | 31683 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2023/04/09 | 31613 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2023/04/09 | 3100 | macros/luatex/generic/luatexja/tool/table_jisx0208.tex
-2023/04/09 | 30514 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2023/04/09 | 29748 | macros/luatex/generic/luatexja/src/luatexja-core.sty
-2023/04/09 | 296280 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2023/04/09 | 29612 | macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty
2023/04/09 | 290838 | macros/latex/contrib/nostarch/nostarch.pdf
-2023/04/09 | 28752 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2023/04/09 | 287036 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2023/04/09 | 2832096 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2023/04/09 | 279615 | macros/latex/contrib/nostarch/nssample.pdf
2023/04/09 | 27801 | systems/win32/miktex/tm/packages/latex-lab-dev.tar.lzma
2023/04/09 | 27725 | macros/latex/contrib/uantwerpendocs/uantwerpenletter-example.pdf
-2023/04/09 | 2772170 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
-2023/04/09 | 27711 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2023/04/09 | 271169 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2023/04/09 | 27058 | macros/luatex/generic/luatexja/src/lltjext.sty
-2023/04/09 | 2599 | macros/luatex/generic/luatexja/src/jfm-banjiao.lua
-2023/04/09 | 2582 | macros/luatex/generic/luatexja/src/jfm-kaiming.lua
-2023/04/09 | 2573 | macros/luatex/generic/luatexja/src/jfm-quanjiao.lua
2023/04/09 | 2521 | systems/win32/miktex/tm/packages/nahuatl.tar.lzma
-2023/04/09 | 25213 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2023/04/09 | 247483 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2023/04/09 | 245743 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2023/04/09 | 24084 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2023/04/09 | 24023 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2023/04/09 | 2374 | macros/luatex/generic/luatexja/src/patches/lltjp-unicode-math.sty
-2023/04/09 | 2340 | macros/luatex/generic/luatexja/src/jfm-jis.lua
2023/04/09 | 23183 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma
-2023/04/09 | 22714 | macros/luatex/generic/luatexja/src/luatexja.lua
-2023/04/09 | 22125 | macros/luatex/generic/luatexja/src/ltj-adjust.lua
-2023/04/09 | 2203 | macros/luatex/generic/luatexja/src/jfm-CCT.lua
-2023/04/09 | 2193 | macros/luatex/generic/luatexja/src/addons/luatexja-zhfonts.sty
2023/04/09 | 215722 | macros/latex/contrib/uantwerpendocs/uantwerpendocs.dtx
-2023/04/09 | 213593 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2023/04/09 | 209039 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2023/04/09 | 2057 | macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty
-2023/04/09 | 2042 | macros/luatex/generic/luatexja/src/luatexja.sty
-2023/04/09 | 203602 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2023/04/09 | 2020501 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
-2023/04/09 | 2018459 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2023/04/09 | 200 | macros/luatex/generic/luatexja/src/jfm-prop.lua
2023/04/09 | 1996 | systems/texlive/tlnet/archive/collection-fontsextra.r66805.tar.xz
2023/04/09 | 19919 | systems/win32/miktex/tm/packages/mpchess.tar.lzma
-2023/04/09 | 196 | macros/luatex/generic/luatexja/src/jfm-propw.lua
-2023/04/09 | 196 | macros/luatex/generic/luatexja/src/jfm-propv.lua
-2023/04/09 | 196566 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2023/04/09 | 19588 | systems/win32/miktex/tm/packages/mpchess__source.tar.lzma
-2023/04/09 | 192 | macros/luatex/generic/luatexja/src/jfm-mono.lua
-2023/04/09 | 19234 | macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty
-2023/04/09 | 189 | macros/luatex/generic/luatexja/src/patches/lltjp-preview.sty
-2023/04/09 | 1897404 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2023/04/09 | 1896552 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2023/04/09 | 189539 | macros/luatex/generic/luatexja/src/ltjsclasses.dtx
2023/04/09 | 187881 | macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example1.pdf
-2023/04/09 | 18722 | macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
-2023/04/09 | 18486 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2023/04/09 | 18370 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2023/04/09 | 18231 | CTAN.sites
-2023/04/09 | 181661 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2023/04/09 | 18079 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
-2023/04/09 | 178115 | macros/luatex/generic/luatexja/src/ltjclasses.dtx
2023/04/09 | 175938 | macros/latex/contrib/uantwerpendocs/uantwerpenreport-example.pdf
-2023/04/09 | 175385 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2023/04/09 | 1740 | macros/luatex/generic/luatexja/tool/test_exist_nodelib.tex
-2023/04/09 | 173400 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2023/04/09 | 166557 | macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf
-2023/04/09 | 1655032 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2023/04/09 | 1654980 | systems/win32/miktex/tm/packages/thuthesis__doc.tar.lzma
-2023/04/09 | 1654538 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
2023/04/09 | 1646024 | systems/texlive/tlnet/archive/thuthesis.doc.r66804.tar.xz
-2023/04/09 | 1637 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty
-2023/04/09 | 1611 | macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty
2023/04/09 | 15958 | systems/win32/miktex/tm/packages/tikz-trackschematic.tar.lzma
-2023/04/09 | 15839 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty
2023/04/09 | 1574909 | systems/win32/miktex/tm/packages/gelasio.tar.lzma
2023/04/09 | 1565056 | systems/texlive/tlnet/archive/gelasio.r66805.tar.xz
-2023/04/09 | 156041 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2023/04/09 | 154928 | macros/luatex/generic/luatexja/src/ltj-ivd_aj1.lua
-2023/04/09 | 15429 | macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua
-2023/04/09 | 1536 | macros/luatex/generic/luatexja/COPYING
2023/04/09 | 151736 | systems/texlive/tlnet/archive/texlive-msg-translations.r66808.tar.xz
-2023/04/09 | 1515013 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2023/04/09 | 14914 | macros/luatex/generic/luatexja/src/patches/lltjp-listings.sty
2023/04/09 | 14573 | systems/win32/miktex/tm/packages/tikz-trackschematic__source.tar.lzma
-2023/04/09 | 1455707 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2023/04/09 | 14447 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2023/04/09 | 140765 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2023/04/09 | 1397 | macros/luatex/generic/luatexja/tool/ivslist.tex
2023/04/09 | 1395565 | systems/win32/miktex/tm/packages/mpchess__doc.tar.lzma
-2023/04/09 | 13895 | macros/luatex/generic/luatexja/src/jfm-ujis.lua
2023/04/09 | 13815 | macros/latex/contrib/nostarch/nssample.tex
-2023/04/09 | 13726 | macros/luatex/generic/luatexja/doc/lltjp-geometry.tex
2023/04/09 | 1367 | macros/latex/contrib/nostarch/Makefile
-2023/04/09 | 135905 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
2023/04/09 | 134137 | systems/win32/miktex/tm/packages/pst-bar__doc.tar.lzma
-2023/04/09 | 1338191 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2023/04/09 | 133725 | macros/latex/contrib/uantwerpendocs/uantwerpenphdthesis-example2.pdf
-2023/04/09 | 13316 | macros/luatex/generic/luatexja/src/ltj-setwidth.lua
-2023/04/09 | 13279 | macros/luatex/generic/luatexja/src/patches/lltjcore.sty
2023/04/09 | 13181593 | install/macros/latex/contrib/uantwerpendocs.tds.zip
2023/04/09 | 13093195 | macros/latex/contrib/uantwerpendocs.zip
-2023/04/09 | 1278 | macros/luatex/generic/luatexja/src/ltjclasses.ins
-2023/04/09 | 126 | macros/luatex/generic/luatexja/src/ltjltxdoc.ins
2023/04/09 | 126855 | macros/latex/contrib/uantwerpendocs/uantwerpenbamathesis-example.pdf
-2023/04/09 | 125618 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
-2023/04/09 | 12463 | macros/luatex/generic/luatexja/src/ltj-base.lua
-2023/04/09 | 1224 | macros/luatex/generic/luatexja/tool/chars2defcharrange.rb
-2023/04/09 | 121075 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2023/04/09 | 1195094 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
-2023/04/09 | 1168643 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2023/04/09 | 115710 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2023/04/09 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
-2023/04/09 | 11506 | macros/luatex/generic/luatexja/src/jfm-ujisv.lua
-2023/04/09 | 1148687 | macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
-2023/04/09 | 11335 | macros/luatex/generic/luatexja/tool/unicodeBlocks.tex
-2023/04/09 | 1130 | macros/luatex/generic/luatexja/tool/function_uax50.lua
-2023/04/09 | 112942 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2023/04/09 | 109695 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2023/04/09 | 109303 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2023/04/09 | 10628 | macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty
-2023/04/09 | 105428 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2023/04/09 | 103723 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2023/04/09 | 103608 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2023/04/09 | 101615 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2023/04/09 | 10148 | systems/win32/miktex/tm/packages/pst-bar__source.tar.lzma
-2023/04/08 | 9552 | macros/generic/ifptex.zip
-2023/04/08 | 85208 | fonts/gelasio/opentype/Gelasio-SemiBoldItalic.otf
-2023/04/08 | 84680 | fonts/gelasio/opentype/Gelasio-MediumItalic.otf
-2023/04/08 | 84032 | fonts/gelasio/opentype/Gelasio-SemiBold.otf
-2023/04/08 | 83692 | fonts/gelasio/opentype/Gelasio-Medium.otf
-2023/04/08 | 826836 | systems/texlive/tlnet/archive/yquant.doc.r66795.tar.xz
-2023/04/08 | 74416 | fonts/gelasio/opentype/Gelasio-BoldItalic.otf
-2023/04/08 | 74004 | fonts/gelasio/opentype/Gelasio-Italic.otf
-2023/04/08 | 72708 | fonts/gelasio/opentype/Gelasio-Bold.otf
-2023/04/08 | 72436 | fonts/gelasio/opentype/Gelasio-Regular.otf
-2023/04/08 | 645 | fonts/gelasio/doc/gelasio-samples.tex
-2023/04/08 | 6168 | macros/generic/ifptex/README-ja.md
-2023/04/08 | 588 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-tosf-ts1.vf
-2023/04/08 | 588 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-tlf-ts1.vf
-2023/04/08 | 588 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-osf-ts1.vf
-2023/04/08 | 588 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-lf-ts1.vf
-2023/04/08 | 588 | fonts/gelasio/vf/Gelasio-MediumItalic-tosf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-SemiBold-tosf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-MediumItalic-tlf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-MediumItalic-osf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-MediumItalic-lf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-BoldItalic-tosf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-BoldItalic-tlf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-BoldItalic-osf-ts1.vf
-2023/04/08 | 584 | fonts/gelasio/vf/Gelasio-BoldItalic-lf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-SemiBold-tlf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-SemiBold-osf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-SemiBold-lf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Regular-tosf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Regular-tlf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Regular-osf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Regular-lf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Medium-tosf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Medium-tlf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Medium-osf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Medium-lf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Italic-tosf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Italic-tlf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Italic-osf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Italic-lf-ts1.vf
-2023/04/08 | 580 | fonts/gelasio/vf/Gelasio-Bold-tosf-ts1.vf
-2023/04/08 | 576 | fonts/gelasio/vf/Gelasio-Bold-tlf-ts1.vf
-2023/04/08 | 576 | fonts/gelasio/vf/Gelasio-Bold-osf-ts1.vf
-2023/04/08 | 576 | fonts/gelasio/vf/Gelasio-Bold-lf-ts1.vf
-2023/04/08 | 57224 | systems/texlive/tlnet/archive/yquant.r66795.tar.xz
-2023/04/08 | 514684 | systems/texlive/tlnet/archive/regstats.doc.r66795.tar.xz
-2023/04/08 | 5014 | macros/generic/ifptex/README.md
-2023/04/08 | 4387 | fonts/gelasio/doc/OFL.txt
-2023/04/08 | 3956 | systems/texlive/tlnet/archive/regstats.r66795.tar.xz
-2023/04/08 | 37599 | fonts/gelasio/doc/gelasio-samples.pdf
-2023/04/08 | 3713 | fonts/gelasio/latex/gelasio.sty
-2023/04/08 | 3187 | fonts/gelasio/enc/gls_ro7vi7.enc
-2023/04/08 | 31196 | systems/texlive/tlnet/archive/proflycee.r66795.tar.xz
-2023/04/08 | 3036 | fonts/gelasio/enc/gls_yyujwf.enc
-2023/04/08 | 3034 | fonts/gelasio/latex/TS1Gelasio-TOsF.fd
-2023/04/08 | 3034 | fonts/gelasio/latex/OT1Gelasio-TOsF.fd
-2023/04/08 | 3034 | fonts/gelasio/latex/LY1Gelasio-TOsF.fd
-2023/04/08 | 3025 | fonts/gelasio/enc/gls_uw7g7y.enc
-2023/04/08 | 3024 | fonts/gelasio/enc/gls_mx2b4h.enc
-2023/04/08 | 3015 | fonts/gelasio/enc/gls_ocoxw4.enc
-2023/04/08 | 3014 | fonts/gelasio/enc/gls_7rleul.enc
-2023/04/08 | 3013 | fonts/gelasio/enc/gls_6qeh6o.enc
-2023/04/08 | 3003 | fonts/gelasio/enc/gls_k4bbiq.enc
-2023/04/08 | 3002 | fonts/gelasio/enc/gls_jgoly6.enc
-2023/04/08 | 2999 | fonts/gelasio/latex/T1Gelasio-TOsF.fd
-2023/04/08 | 2995 | fonts/gelasio/enc/gls_u2frii.enc
-2023/04/08 | 2984 | fonts/gelasio/enc/gls_ags7qn.enc
-2023/04/08 | 2983 | fonts/gelasio/latex/TS1Gelasio-TLF.fd
-2023/04/08 | 2983 | fonts/gelasio/latex/TS1Gelasio-OsF.fd
-2023/04/08 | 2983 | fonts/gelasio/latex/OT1Gelasio-TLF.fd
-2023/04/08 | 2983 | fonts/gelasio/latex/OT1Gelasio-Sup.fd
-2023/04/08 | 2983 | fonts/gelasio/latex/OT1Gelasio-OsF.fd
-2023/04/08 | 2983 | fonts/gelasio/latex/LY1Gelasio-TLF.fd
-2023/04/08 | 2983 | fonts/gelasio/latex/LY1Gelasio-Sup.fd
-2023/04/08 | 2983 | fonts/gelasio/latex/LY1Gelasio-OsF.fd
-2023/04/08 | 2974 | fonts/gelasio/enc/gls_gldhmf.enc
-2023/04/08 | 2973 | fonts/gelasio/enc/gls_gww56v.enc
-2023/04/08 | 2948 | fonts/gelasio/latex/T1Gelasio-TLF.fd
-2023/04/08 | 2948 | fonts/gelasio/latex/T1Gelasio-Sup.fd
-2023/04/08 | 2948 | fonts/gelasio/latex/T1Gelasio-OsF.fd
-2023/04/08 | 2932 | fonts/gelasio/latex/TS1Gelasio-LF.fd
-2023/04/08 | 2932 | fonts/gelasio/latex/OT1Gelasio-LF.fd
-2023/04/08 | 2932 | fonts/gelasio/latex/LY1Gelasio-LF.fd
-2023/04/08 | 2923 | fonts/gelasio/enc/gls_wlsyn3.enc
-2023/04/08 | 2914 | fonts/gelasio/enc/gls_cy3ufi.enc
-2023/04/08 | 2912 | fonts/gelasio/enc/gls_ttjzpe.enc
-2023/04/08 | 2902 | fonts/gelasio/enc/gls_7npxgm.enc
-2023/04/08 | 2901 | fonts/gelasio/enc/gls_vgwtwr.enc
-2023/04/08 | 2897 | fonts/gelasio/latex/T1Gelasio-LF.fd
-2023/04/08 | 2873 | fonts/gelasio/enc/gls_qndjqi.enc
-2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2023/04/08 | 2801 | fonts/gelasio/enc/gls_5xld5w.enc
-2023/04/08 | 2747624 | systems/texlive/tlnet/archive/simpleicons.r66795.tar.xz
-2023/04/08 | 2107404 | install/fonts/gelasio.tds.zip
-2023/04/08 | 2076924 | fonts/gelasio.zip
-2023/04/08 | 20547 | fonts/gelasio/map/gelasio.map
-2023/04/08 | 2014252 | systems/texlive/tlnet/archive/simpleicons.doc.r66795.tar.xz
-2023/04/08 | 1996 | fonts/gelasio/tfm/Gelasio-MediumItalic-lf-ly1.tfm
-2023/04/08 | 1992 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-osf-ly1.tfm
-2023/04/08 | 1992 | fonts/gelasio/tfm/Gelasio-MediumItalic-osf-ly1.tfm
-2023/04/08 | 19908 | systems/texlive/tlnet/archive/mpchess.r66795.tar.xz
-2023/04/08 | 1988 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-lf-ly1.tfm
-2023/04/08 | 1984 | fonts/gelasio/tfm/Gelasio-MediumItalic-osf-t1.tfm
-2023/04/08 | 1984 | fonts/gelasio/tfm/Gelasio-MediumItalic-lf-t1.tfm
-2023/04/08 | 1980 | fonts/gelasio/tfm/Gelasio-BoldItalic-osf-ly1.tfm
-2023/04/08 | 1980 | fonts/gelasio/tfm/Gelasio-BoldItalic-lf-ly1.tfm
-2023/04/08 | 1964 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tosf-ly1.tfm
-2023/04/08 | 1964 | fonts/gelasio/tfm/Gelasio-MediumItalic-tlf-ly1.tfm
-2023/04/08 | 1960 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tlf-ly1.tfm
-2023/04/08 | 1960 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-osf-t1.tfm
-2023/04/08 | 1960 | fonts/gelasio/tfm/Gelasio-MediumItalic-tosf-ly1.tfm
-2023/04/08 | 1956 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-lf-t1.tfm
-2023/04/08 | 1956 | fonts/gelasio/tfm/Gelasio-Italic-lf-ly1.tfm
-2023/04/08 | 1952 | fonts/gelasio/tfm/Gelasio-Italic-osf-ly1.tfm
-2023/04/08 | 1952 | fonts/gelasio/tfm/Gelasio-BoldItalic-tosf-ly1.tfm
-2023/04/08 | 1948 | fonts/gelasio/tfm/Gelasio-MediumItalic-tosf-t1.tfm
-2023/04/08 | 1948 | fonts/gelasio/tfm/Gelasio-MediumItalic-tlf-t1.tfm
-2023/04/08 | 1948 | fonts/gelasio/tfm/Gelasio-BoldItalic-tlf-ly1.tfm
-2023/04/08 | 1940 | fonts/gelasio/tfm/Gelasio-BoldItalic-osf-t1.tfm
-2023/04/08 | 1940 | fonts/gelasio/tfm/Gelasio-BoldItalic-lf-t1.tfm
-2023/04/08 | 1932 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tosf-t1.tfm
-2023/04/08 | 1928 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tlf-t1.tfm
-2023/04/08 | 1928 | fonts/gelasio/tfm/Gelasio-Italic-tlf-ly1.tfm
-2023/04/08 | 1924 | fonts/gelasio/tfm/Gelasio-Italic-tosf-ly1.tfm
-2023/04/08 | 1924 | fonts/gelasio/tfm/Gelasio-Italic-osf-t1.tfm
-2023/04/08 | 1924 | fonts/gelasio/tfm/Gelasio-Italic-lf-t1.tfm
-2023/04/08 | 1916 | fonts/gelasio/tfm/Gelasio-MediumItalic-osf-t1--base.tfm
-2023/04/08 | 1916 | fonts/gelasio/tfm/Gelasio-MediumItalic-lf-t1--base.tfm
-2023/04/08 | 1912 | fonts/gelasio/tfm/Gelasio-BoldItalic-tosf-t1.tfm
-2023/04/08 | 1908 | fonts/gelasio/tfm/Gelasio-BoldItalic-tlf-t1.tfm
-2023/04/08 | 1896 | fonts/gelasio/tfm/Gelasio-Italic-tlf-t1.tfm
-2023/04/08 | 1892 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-osf-t1--base.tfm
-2023/04/08 | 1892 | fonts/gelasio/tfm/Gelasio-Italic-tosf-t1.tfm
-2023/04/08 | 1888 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-lf-t1--base.tfm
-2023/04/08 | 1880 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-sup-ly1.tfm
-2023/04/08 | 1880 | fonts/gelasio/tfm/Gelasio-MediumItalic-tosf-t1--base.tfm
-2023/04/08 | 1880 | fonts/gelasio/tfm/Gelasio-MediumItalic-tlf-t1--base.tfm
-2023/04/08 | 1876 | fonts/gelasio/tfm/Gelasio-MediumItalic-sup-ly1.tfm
-2023/04/08 | 1872 | fonts/gelasio/tfm/Gelasio-BoldItalic-osf-t1--base.tfm
-2023/04/08 | 1872 | fonts/gelasio/tfm/Gelasio-BoldItalic-lf-t1--base.tfm
-2023/04/08 | 1868 | fonts/gelasio/tfm/Gelasio-Medium-osf-ly1.tfm
-2023/04/08 | 1868 | fonts/gelasio/tfm/Gelasio-Medium-lf-ly1.tfm
-2023/04/08 | 1864 | fonts/gelasio/tfm/Gelasio-SemiBold-osf-ly1.tfm
-2023/04/08 | 1864 | fonts/gelasio/tfm/Gelasio-SemiBold-lf-ly1.tfm
-2023/04/08 | 1864 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tosf-t1--base.tfm
-2023/04/08 | 1864 | fonts/gelasio/tfm/Gelasio-Regular-osf-ly1.tfm
-2023/04/08 | 1864 | fonts/gelasio/tfm/Gelasio-Regular-lf-ly1.tfm
-2023/04/08 | 1864 | fonts/gelasio/tfm/Gelasio-MediumItalic-sup-t1.tfm
-2023/04/08 | 1860 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tlf-t1--base.tfm
-2023/04/08 | 1860 | fonts/gelasio/tfm/Gelasio-MediumItalic-sup-t1--base.tfm
-2023/04/08 | 1860 | fonts/gelasio/tfm/Gelasio-BoldItalic-sup-ly1.tfm
-2023/04/08 | 1856 | fonts/gelasio/tfm/Gelasio-Italic-osf-t1--base.tfm
-2023/04/08 | 1856 | fonts/gelasio/tfm/Gelasio-Italic-lf-t1--base.tfm
-2023/04/08 | 1856 | fonts/gelasio/tfm/Gelasio-Bold-osf-ly1.tfm
-2023/04/08 | 1856 | fonts/gelasio/tfm/Gelasio-Bold-lf-ly1.tfm
-2023/04/08 | 1852 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-sup-t1.tfm
-2023/04/08 | 1848 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-sup-t1--base.tfm
-2023/04/08 | 1844 | fonts/gelasio/tfm/Gelasio-Italic-sup-ly1.tfm
-2023/04/08 | 1844 | fonts/gelasio/tfm/Gelasio-BoldItalic-tosf-t1--base.tfm
-2023/04/08 | 1840 | fonts/gelasio/tfm/Gelasio-SemiBold-tosf-ly1.tfm
-2023/04/08 | 1840 | fonts/gelasio/tfm/Gelasio-SemiBold-tlf-ly1.tfm
-2023/04/08 | 1840 | fonts/gelasio/tfm/Gelasio-Medium-tosf-ly1.tfm
-2023/04/08 | 1840 | fonts/gelasio/tfm/Gelasio-Medium-tlf-ly1.tfm
-2023/04/08 | 1840 | fonts/gelasio/tfm/Gelasio-BoldItalic-tlf-t1--base.tfm
-2023/04/08 | 1832 | fonts/gelasio/tfm/Gelasio-Regular-tosf-ly1.tfm
-2023/04/08 | 1832 | fonts/gelasio/tfm/Gelasio-Regular-tlf-ly1.tfm
-2023/04/08 | 1828 | fonts/gelasio/tfm/Gelasio-Regular-osf-t1.tfm
-2023/04/08 | 1828 | fonts/gelasio/tfm/Gelasio-Regular-lf-t1.tfm
-2023/04/08 | 1828 | fonts/gelasio/tfm/Gelasio-Medium-osf-t1.tfm
-2023/04/08 | 1828 | fonts/gelasio/tfm/Gelasio-Medium-lf-t1.tfm
-2023/04/08 | 1828 | fonts/gelasio/tfm/Gelasio-Italic-tlf-t1--base.tfm
-2023/04/08 | 1828 | fonts/gelasio/tfm/Gelasio-Bold-tosf-ly1.tfm
-2023/04/08 | 1828 | fonts/gelasio/tfm/Gelasio-Bold-tlf-ly1.tfm
-2023/04/08 | 1824 | fonts/gelasio/tfm/Gelasio-SemiBold-osf-t1.tfm
-2023/04/08 | 1824 | fonts/gelasio/tfm/Gelasio-SemiBold-lf-t1.tfm
-2023/04/08 | 1824 | fonts/gelasio/tfm/Gelasio-Italic-tosf-t1--base.tfm
-2023/04/08 | 1824 | fonts/gelasio/tfm/Gelasio-BoldItalic-sup-t1.tfm
-2023/04/08 | 1820 | fonts/gelasio/tfm/Gelasio-Bold-osf-t1.tfm
-2023/04/08 | 1820 | fonts/gelasio/tfm/Gelasio-Bold-lf-t1.tfm
-2023/04/08 | 1820 | fonts/gelasio/tfm/Gelasio-BoldItalic-sup-t1--base.tfm
-2023/04/08 | 1812 | fonts/gelasio/tfm/Gelasio-Italic-sup-t1.tfm
-2023/04/08 | 1808 | fonts/gelasio/tfm/Gelasio-Italic-sup-t1--base.tfm
-2023/04/08 | 1800 | fonts/gelasio/tfm/Gelasio-SemiBold-tosf-t1.tfm
-2023/04/08 | 1800 | fonts/gelasio/tfm/Gelasio-SemiBold-tlf-t1.tfm
-2023/04/08 | 1800 | fonts/gelasio/tfm/Gelasio-Medium-tosf-t1.tfm
-2023/04/08 | 1800 | fonts/gelasio/tfm/Gelasio-Medium-tlf-t1.tfm
-2023/04/08 | 1796 | fonts/gelasio/tfm/Gelasio-Regular-tosf-t1.tfm
-2023/04/08 | 1796 | fonts/gelasio/tfm/Gelasio-Regular-tlf-t1.tfm
-2023/04/08 | 1792 | fonts/gelasio/tfm/Gelasio-Bold-tosf-t1.tfm
-2023/04/08 | 1792 | fonts/gelasio/tfm/Gelasio-Bold-tlf-t1.tfm
-2023/04/08 | 1760 | fonts/gelasio/tfm/Gelasio-Regular-osf-t1--base.tfm
-2023/04/08 | 1760 | fonts/gelasio/tfm/Gelasio-Regular-lf-t1--base.tfm
-2023/04/08 | 1760 | fonts/gelasio/tfm/Gelasio-Medium-osf-t1--base.tfm
-2023/04/08 | 1760 | fonts/gelasio/tfm/Gelasio-Medium-lf-t1--base.tfm
-2023/04/08 | 1756 | fonts/gelasio/tfm/Gelasio-SemiBold-osf-t1--base.tfm
-2023/04/08 | 1756 | fonts/gelasio/tfm/Gelasio-SemiBold-lf-t1--base.tfm
-2023/04/08 | 1755 | macros/generic/ifptex/ifuptex.sty
-2023/04/08 | 1755225 | macros/latex/contrib/thuthesis.zip
-2023/04/08 | 1752 | fonts/gelasio/tfm/Gelasio-SemiBold-sup-ly1.tfm
-2023/04/08 | 1752 | fonts/gelasio/tfm/Gelasio-Bold-osf-t1--base.tfm
-2023/04/08 | 1752 | fonts/gelasio/tfm/Gelasio-Bold-lf-t1--base.tfm
-2023/04/08 | 1748 | fonts/gelasio/tfm/Gelasio-Medium-sup-ly1.tfm
-2023/04/08 | 1740 | fonts/gelasio/tfm/Gelasio-Regular-sup-ly1.tfm
-2023/04/08 | 1740 | fonts/gelasio/tfm/Gelasio-Bold-sup-ly1.tfm
-2023/04/08 | 1732 | fonts/gelasio/tfm/Gelasio-SemiBold-tosf-t1--base.tfm
-2023/04/08 | 1732 | fonts/gelasio/tfm/Gelasio-SemiBold-tlf-t1--base.tfm
-2023/04/08 | 1732 | fonts/gelasio/tfm/Gelasio-Medium-tosf-t1--base.tfm
-2023/04/08 | 1732 | fonts/gelasio/tfm/Gelasio-Medium-tlf-t1--base.tfm
-2023/04/08 | 1728 | fonts/gelasio/tfm/Gelasio-Regular-tosf-t1--base.tfm
-2023/04/08 | 1728 | fonts/gelasio/tfm/Gelasio-Regular-tlf-t1--base.tfm
-2023/04/08 | 1724 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-tosf-t1.vf
-2023/04/08 | 1724 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-tlf-t1.vf
-2023/04/08 | 1724 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-osf-t1.vf
-2023/04/08 | 1724 | fonts/gelasio/tfm/Gelasio-Bold-tosf-t1--base.tfm
-2023/04/08 | 1724 | fonts/gelasio/tfm/Gelasio-Bold-tlf-t1--base.tfm
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-lf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-MediumItalic-tosf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-MediumItalic-tlf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-MediumItalic-osf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-MediumItalic-lf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-BoldItalic-tosf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-BoldItalic-tlf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/vf/Gelasio-BoldItalic-osf-t1.vf
-2023/04/08 | 1720 | fonts/gelasio/tfm/Gelasio-SemiBold-sup-t1.tfm
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-SemiBold-tosf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-SemiBold-tlf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-SemiBold-osf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-SemiBold-lf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Regular-tosf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Regular-tlf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Regular-osf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Regular-lf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Medium-tosf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Medium-tlf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Medium-osf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Italic-tosf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Italic-tlf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-Italic-osf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/vf/Gelasio-BoldItalic-lf-t1.vf
-2023/04/08 | 1716 | fonts/gelasio/tfm/Gelasio-SemiBold-sup-t1--base.tfm
-2023/04/08 | 1712 | fonts/gelasio/vf/Gelasio-Medium-lf-t1.vf
-2023/04/08 | 1712 | fonts/gelasio/vf/Gelasio-Italic-lf-t1.vf
-2023/04/08 | 1712 | fonts/gelasio/vf/Gelasio-Bold-tosf-t1.vf
-2023/04/08 | 1712 | fonts/gelasio/vf/Gelasio-Bold-tlf-t1.vf
-2023/04/08 | 1712 | fonts/gelasio/vf/Gelasio-Bold-osf-t1.vf
-2023/04/08 | 1712 | fonts/gelasio/vf/Gelasio-Bold-lf-t1.vf
-2023/04/08 | 1712 | fonts/gelasio/tfm/Gelasio-Medium-sup-t1.tfm
-2023/04/08 | 1712 | fonts/gelasio/tfm/Gelasio-Bold-sup-t1.tfm
-2023/04/08 | 1708 | fonts/gelasio/tfm/Gelasio-Regular-sup-t1.tfm
-2023/04/08 | 1708 | fonts/gelasio/tfm/Gelasio-Medium-sup-t1--base.tfm
-2023/04/08 | 1708 | fonts/gelasio/tfm/Gelasio-Bold-sup-t1--base.tfm
-2023/04/08 | 1704 | fonts/gelasio/tfm/Gelasio-Regular-sup-t1--base.tfm
-2023/04/08 | 1700632 | systems/texlive/tlnet/archive/proflycee.doc.r66795.tar.xz
-2023/04/08 | 1692 | fonts/gelasio/vf/Gelasio-SemiBoldItalic-sup-t1.vf
-2023/04/08 | 1692 | fonts/gelasio/vf/Gelasio-MediumItalic-sup-t1.vf
-2023/04/08 | 1688 | fonts/gelasio/vf/Gelasio-SemiBold-sup-t1.vf
-2023/04/08 | 1688 | fonts/gelasio/vf/Gelasio-BoldItalic-sup-t1.vf
-2023/04/08 | 1684 | fonts/gelasio/vf/Gelasio-Regular-sup-t1.vf
-2023/04/08 | 1684 | fonts/gelasio/vf/Gelasio-Medium-sup-t1.vf
-2023/04/08 | 1684 | fonts/gelasio/vf/Gelasio-Italic-sup-t1.vf
-2023/04/08 | 1684 | fonts/gelasio/vf/Gelasio-Bold-sup-t1.vf
-2023/04/08 | 164198 | fonts/gelasio/type1/Gelasio-MediumItalic.pfb
-2023/04/08 | 1638 | fonts/gelasio/README
-2023/04/08 | 160722 | fonts/gelasio/type1/Gelasio-BoldItalic.pfb
-2023/04/08 | 159406 | fonts/gelasio/type1/Gelasio-SemiBoldItalic.pfb
-2023/04/08 | 15936 | systems/texlive/tlnet/archive/regstats.source.r66795.tar.xz
-2023/04/08 | 155182 | fonts/gelasio/type1/Gelasio-Italic.pfb
-2023/04/08 | 154337 | fonts/gelasio/type1/Gelasio-SemiBold.pfb
-2023/04/08 | 1492 | fonts/gelasio/tfm/Gelasio-MediumItalic-osf-ot1.tfm
-2023/04/08 | 1492 | fonts/gelasio/tfm/Gelasio-MediumItalic-lf-ot1.tfm
-2023/04/08 | 1476 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-osf-ot1.tfm
-2023/04/08 | 1472 | fonts/gelasio/tfm/Gelasio-BoldItalic-osf-ot1.tfm
-2023/04/08 | 1472 | fonts/gelasio/tfm/Gelasio-BoldItalic-lf-ot1.tfm
-2023/04/08 | 1468 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-lf-ot1.tfm
-2023/04/08 | 1464 | fonts/gelasio/tfm/Gelasio-Italic-osf-ot1.tfm
-2023/04/08 | 1464 | fonts/gelasio/tfm/Gelasio-Italic-lf-ot1.tfm
-2023/04/08 | 1460 | fonts/gelasio/tfm/Gelasio-MediumItalic-tlf-ot1.tfm
-2023/04/08 | 1456 | fonts/gelasio/tfm/Gelasio-MediumItalic-tosf-ot1.tfm
-2023/04/08 | 1448 | fonts/gelasio/tfm/Gelasio-BoldItalic-tosf-ts1.tfm
-2023/04/08 | 1448 | fonts/gelasio/tfm/Gelasio-BoldItalic-tlf-ts1.tfm
-2023/04/08 | 1448 | fonts/gelasio/tfm/Gelasio-BoldItalic-osf-ts1.tfm
-2023/04/08 | 1448 | fonts/gelasio/tfm/Gelasio-BoldItalic-lf-ts1.tfm
-2023/04/08 | 1444 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tosf-ts1.tfm
-2023/04/08 | 1444 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tosf-ot1.tfm
-2023/04/08 | 1444 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tlf-ts1.tfm
-2023/04/08 | 1444 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-osf-ts1.tfm
-2023/04/08 | 1444 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-lf-ts1.tfm
-2023/04/08 | 1444 | fonts/gelasio/tfm/Gelasio-BoldItalic-tosf-ot1.tfm
-2023/04/08 | 1444 | fonts/gelasio/tfm/Gelasio-BoldItalic-tlf-ot1.tfm
-2023/04/08 | 1440 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tlf-ot1.tfm
-2023/04/08 | 1440 | fonts/gelasio/tfm/Gelasio-MediumItalic-tosf-ts1.tfm
-2023/04/08 | 1440 | fonts/gelasio/tfm/Gelasio-MediumItalic-tlf-ts1.tfm
-2023/04/08 | 1440 | fonts/gelasio/tfm/Gelasio-MediumItalic-osf-ts1.tfm
-2023/04/08 | 1440 | fonts/gelasio/tfm/Gelasio-MediumItalic-lf-ts1.tfm
-2023/04/08 | 143936 | fonts/gelasio/type1/Gelasio-Medium.pfb
-2023/04/08 | 1436 | fonts/gelasio/tfm/Gelasio-Italic-tlf-ot1.tfm
-2023/04/08 | 143697 | fonts/gelasio/type1/Gelasio-Bold.pfb
-2023/04/08 | 1432 | fonts/gelasio/tfm/Gelasio-Italic-tosf-ot1.tfm
-2023/04/08 | 1428 | fonts/gelasio/tfm/Gelasio-BoldItalic-tosf-ts1--base.tfm
-2023/04/08 | 1428 | fonts/gelasio/tfm/Gelasio-BoldItalic-tlf-ts1--base.tfm
-2023/04/08 | 1428 | fonts/gelasio/tfm/Gelasio-BoldItalic-osf-ts1--base.tfm
-2023/04/08 | 1428 | fonts/gelasio/tfm/Gelasio-BoldItalic-lf-ts1--base.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tosf-ts1--base.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-tlf-ts1--base.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-osf-ts1--base.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-lf-ts1--base.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-Italic-tosf-ts1.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-Italic-tlf-ts1.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-Italic-osf-ts1.tfm
-2023/04/08 | 1424 | fonts/gelasio/tfm/Gelasio-Italic-lf-ts1.tfm
-2023/04/08 | 142197 | fonts/gelasio/type1/Gelasio-Regular.pfb
-2023/04/08 | 1420 | fonts/gelasio/tfm/Gelasio-MediumItalic-tosf-ts1--base.tfm
-2023/04/08 | 1420 | fonts/gelasio/tfm/Gelasio-MediumItalic-tlf-ts1--base.tfm
-2023/04/08 | 1420 | fonts/gelasio/tfm/Gelasio-MediumItalic-osf-ts1--base.tfm
-2023/04/08 | 1420 | fonts/gelasio/tfm/Gelasio-MediumItalic-lf-ts1--base.tfm
-2023/04/08 | 1415136 | systems/texlive/tlnet/archive/mpchess.doc.r66795.tar.xz
-2023/04/08 | 14078 | macros/generic/ifptex/ifptex.sty
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Italic-tosf-ts1--base.tfm
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Italic-tlf-ts1--base.tfm
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Italic-osf-ts1--base.tfm
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Italic-lf-ts1--base.tfm
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Bold-tosf-ts1.tfm
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Bold-tlf-ts1.tfm
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Bold-osf-ts1.tfm
-2023/04/08 | 1404 | fonts/gelasio/tfm/Gelasio-Bold-lf-ts1.tfm
-2023/04/08 | 1396 | fonts/gelasio/tfm/Gelasio-Regular-osf-ot1.tfm
-2023/04/08 | 1396 | fonts/gelasio/tfm/Gelasio-Regular-lf-ot1.tfm
-2023/04/08 | 1396 | fonts/gelasio/tfm/Gelasio-Medium-tosf-ts1.tfm
-2023/04/08 | 1396 | fonts/gelasio/tfm/Gelasio-Medium-tlf-ts1.tfm
-2023/04/08 | 1396 | fonts/gelasio/tfm/Gelasio-Medium-osf-ts1.tfm
-2023/04/08 | 1396 | fonts/gelasio/tfm/Gelasio-Medium-lf-ts1.tfm
-2023/04/08 | 1392 | fonts/gelasio/tfm/Gelasio-SemiBold-tosf-ts1.tfm
-2023/04/08 | 1392 | fonts/gelasio/tfm/Gelasio-SemiBold-tlf-ts1.tfm
-2023/04/08 | 1392 | fonts/gelasio/tfm/Gelasio-SemiBold-osf-ts1.tfm
-2023/04/08 | 1392 | fonts/gelasio/tfm/Gelasio-SemiBold-lf-ts1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-SemiBold-osf-ot1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-SemiBold-lf-ot1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Regular-tosf-ts1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Regular-tlf-ts1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Regular-osf-ts1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Regular-lf-ts1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Medium-osf-ot1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Medium-lf-ot1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-MediumItalic-sup-ot1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Bold-osf-ot1.tfm
-2023/04/08 | 1388 | fonts/gelasio/tfm/Gelasio-Bold-lf-ot1.tfm
-2023/04/08 | 1384 | fonts/gelasio/tfm/Gelasio-Bold-tosf-ts1--base.tfm
-2023/04/08 | 1384 | fonts/gelasio/tfm/Gelasio-Bold-tlf-ts1--base.tfm
-2023/04/08 | 1384 | fonts/gelasio/tfm/Gelasio-Bold-osf-ts1--base.tfm
-2023/04/08 | 1384 | fonts/gelasio/tfm/Gelasio-Bold-lf-ts1--base.tfm
-2023/04/08 | 1376 | fonts/gelasio/tfm/Gelasio-SemiBoldItalic-sup-ot1.tfm
-2023/04/08 | 1376 | fonts/gelasio/tfm/Gelasio-Medium-tosf-ts1--base.tfm
-2023/04/08 | 1376 | fonts/gelasio/tfm/Gelasio-Medium-tlf-ts1--base.tfm
-2023/04/08 | 1376 | fonts/gelasio/tfm/Gelasio-Medium-osf-ts1--base.tfm
-2023/04/08 | 1376 | fonts/gelasio/tfm/Gelasio-Medium-lf-ts1--base.tfm
-2023/04/08 | 1372 | fonts/gelasio/tfm/Gelasio-SemiBold-tosf-ts1--base.tfm
-2023/04/08 | 1372 | fonts/gelasio/tfm/Gelasio-SemiBold-tlf-ts1--base.tfm
-2023/04/08 | 1372 | fonts/gelasio/tfm/Gelasio-SemiBold-osf-ts1--base.tfm
-2023/04/08 | 1372 | fonts/gelasio/tfm/Gelasio-SemiBold-lf-ts1--base.tfm
-2023/04/08 | 1368 | fonts/gelasio/tfm/Gelasio-Regular-tosf-ts1--base.tfm
-2023/04/08 | 1368 | fonts/gelasio/tfm/Gelasio-Regular-tlf-ts1--base.tfm
-2023/04/08 | 1368 | fonts/gelasio/tfm/Gelasio-Regular-osf-ts1--base.tfm
-2023/04/08 | 1368 | fonts/gelasio/tfm/Gelasio-Regular-lf-ts1--base.tfm
-2023/04/08 | 1368 | fonts/gelasio/tfm/Gelasio-BoldItalic-sup-ot1.tfm
-2023/04/08 | 1364 | fonts/gelasio/tfm/Gelasio-Regular-tosf-ot1.tfm
-2023/04/08 | 1364 | fonts/gelasio/tfm/Gelasio-Regular-tlf-ot1.tfm
-2023/04/08 | 1364 | fonts/gelasio/tfm/Gelasio-Italic-sup-ot1.tfm
-2023/04/08 | 1364 | fonts/gelasio/tfm/Gelasio-Bold-tosf-ot1.tfm
-2023/04/08 | 1364 | fonts/gelasio/tfm/Gelasio-Bold-tlf-ot1.tfm
-2023/04/08 | 1360 | fonts/gelasio/tfm/Gelasio-SemiBold-tosf-ot1.tfm
-2023/04/08 | 1360 | fonts/gelasio/tfm/Gelasio-SemiBold-tlf-ot1.tfm
-2023/04/08 | 1360 | fonts/gelasio/tfm/Gelasio-Medium-tosf-ot1.tfm
-2023/04/08 | 1360 | fonts/gelasio/tfm/Gelasio-Medium-tlf-ot1.tfm
-2023/04/08 | 1292 | fonts/gelasio/tfm/Gelasio-SemiBold-sup-ot1.tfm
-2023/04/08 | 1292 | fonts/gelasio/tfm/Gelasio-Bold-sup-ot1.tfm
-2023/04/08 | 1288 | fonts/gelasio/tfm/Gelasio-Regular-sup-ot1.tfm
-2023/04/08 | 1284 | fonts/gelasio/tfm/Gelasio-Medium-sup-ot1.tfm
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 4c73b4863b..73ad03b2d0 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 15-04-2023, 02:00:10
+%% created at 16-04-2023, 02:00:10
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -14622,7 +14622,7 @@
title = {The \texttt{context-calendar-examples} package},
subtitle = {Collection of calendars based on the PocketDiary-module},
author = {Willi Egger},
- date = {2023-03-30},
+ date = {2023-04-15},
version = {},
license = {pd},
mirror = {https://mirror.ctan.org/macros/context/contrib/context-calendar-examples},
@@ -14967,7 +14967,7 @@
title = {The \texttt{context-simpleslides} package},
subtitle = {A module for preparing presentations},
author = {Aditya Mahajan and Thomas A. Schmitz},
- date = {2022-07-15},
+ date = {2023-04-15},
version = {},
license = {gpl},
mirror = {https://mirror.ctan.org/macros/context/contrib/context-simpleslides},
@@ -19258,7 +19258,7 @@
title = {The \texttt{Drawing-with-Metapost} package},
subtitle = {How to draw technical diagrams with MetaPost},
author = {Toby Thurston},
- date = {2023-04-14},
+ date = {2023-04-15},
version = {},
license = {opl},
mirror = {https://mirror.ctan.org/info/drawing-with-metapost},
@@ -23335,8 +23335,8 @@
title = {The \texttt{Evangelion-JFM} package},
subtitle = {A Japanese font metric supporting many advanced features},
author = {Jing Huang},
- date = {2023-02-24},
- version = {1.0.0 (b)},
+ date = {2023-04-15},
+ version = {1.0.2 (h)},
license = {mit},
mirror = {https://mirror.ctan.org/macros/luatex/generic/evangelion-jfm},
url = {https://ctan.org/pkg/evangelion-jfm},
@@ -41385,8 +41385,8 @@
title = {The \texttt{luapstricks} package},
subtitle = {A PSTricks backend for LuaLaTeX},
author = {Marcel Krüger},
- date = {2023-02-18},
- version = {0.8},
+ date = {2023-04-15},
+ version = {0.9},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/graphics/pstricks/contrib/luapstricks},
url = {https://ctan.org/pkg/luapstricks},
@@ -54224,8 +54224,8 @@
title = {The \texttt{ProfCollege} package},
subtitle = {A \LaTeX{} package for French maths teachers in college},
author = {Christophe Poulain},
- date = {2023-04-10},
- version = {0.99-z-h},
+ date = {2023-04-15},
+ version = {0.99-z-i},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/profcollege},
url = {https://ctan.org/pkg/profcollege},
@@ -54246,8 +54246,8 @@
title = {The \texttt{ProfLycee} package},
subtitle = {A \LaTeX{} package for French maths teachers in high school},
author = {Cédric Pierquet},
- date = {2023-04-06},
- version = {2.5.8},
+ date = {2023-04-15},
+ version = {2.6.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/proflycee},
url = {https://ctan.org/pkg/proflycee},
@@ -57213,7 +57213,7 @@
title = {The \texttt{quickreaction} package},
subtitle = {A simple and fast way to typeset chemical reactions},
author = {Francesco Lambertini},
- date = {2023-04-14},
+ date = {2023-04-15},
version = {1.02},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/pgf/contrib/quickreaction},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index 736245696e..1299d40e19 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/luapstricks/README.md b/graphics/pstricks/contrib/luapstricks/README.md
index 9e2f2a5397..5ebcc04883 100644
--- a/graphics/pstricks/contrib/luapstricks/README.md
+++ b/graphics/pstricks/contrib/luapstricks/README.md
@@ -30,34 +30,4 @@ Also many thanks to Herbert Voß for adapting PSTricks and related packages to w
## Demos
-Documentation of PSTricks packages, created by `lualatex` and `luapstricks.lua`:
-
-- [pst-user](https://hvoss.org/PSTexa/pst-user.pdf) Main (historical) documentation without overlay stuff (is now in pst-ovl)
-- [pstricks-add](https://hvoss.org/PSTexa/pstricks-add-doc.pdf)
-- [pst-3d](https://hvoss.org/PSTexa/pst-3d-doc.pdf)
-- [pst-3dplot](https://hvoss.org/PSTexa/pst-3dplot-doc.pdf)
-- [pst-am](https://hvoss.org/PSTexa/pst-am-doc.pdf)
-- [pst-antiprism](https://hvoss.org/PSTexa/pst-antiprism-doc.pdf)
-- [pst-barcode](https://hvoss.org/PSTexa/pst-barcode-doc.pdf)
-- [pst-bezier](https://hvoss.org/PSTexa/pst-bezier-doc.pdf)
-- [pst-cie](https://hvoss.org/PSTexa/pst-cie-doc.pdf)
-- [pst-circ](https://hvoss.org/PSTexa/pst-circ-doc.pdf)
-- [pst-coil](https://hvoss.org/PSTexa/pst-coil-doc.pdf)
-- [pst-dart](https://hvoss.org/PSTexa/pst-dart-doc.pdf)
-- [pst-eucl](https://hvoss.org/PSTexa/pst-eucl-doc.pdf)
-- [pst-func](https://hvoss.org/PSTexa/pst-func-doc.pdf)
-- [pst-knot](https://hvoss.org/PSTexa/pst-knot-doc.pdf)
-- [pst-node](https://hvoss.org/PSTexa/pst-node-doc.pdf)
-- [pst-ovl](https://hvoss.org/PSTexa/pst-ovl-doc.pdf)
-- [pst-platon](https://hvoss.org/PSTexa/pst-platon-doc.pdf)
-- [pst-plot](https://hvoss.org/PSTexa/pst-plot-doc.pdf)
-- [pst-poly](https://hvoss.org/PSTexa/pst-poly-doc.pdf)
-- [pst-solarsystem](https://hvoss.org/PSTexa/pst-solarsystem-doc.pdf)
-- [pst-soroban](https://hvoss.org/PSTexa/pst-soroban-doc.pdf)
-- [pst-spinner](https://hvoss.org/PSTexa/pst-spinner-doc.pdf)
-- [pst-stru](https://hvoss.org/PSTexa/pst-stru-doc.pdf)
-- [pst-tools](https://hvoss.org/PSTexa/pst-tools-doc.pdf)
-- [pst-tree](https://hvoss.org/PSTexa/pst-tree-doc.pdf)
-- [pst-turtle](https://hvoss.org/PSTexa/pst-turtle-doc.pdf)
-- [pst-vehicle](https://hvoss.org/PSTexa/pst-vehicle-doc.pdf)
-- [pst-venn](https://hvoss.org/PSTexa/pst-venn-doc.pdf)
+Documentation of PSTricks packages, created by `lualatex` and `luapstricks.lua`, can be found at <https://luapstricks.typesetting.eu/>.
diff --git a/graphics/pstricks/contrib/luapstricks/luapstricks-plugin-pstmarble.lua b/graphics/pstricks/contrib/luapstricks/luapstricks-plugin-pstmarble.lua
new file mode 100644
index 0000000000..d1213a4586
--- /dev/null
+++ b/graphics/pstricks/contrib/luapstricks/luapstricks-plugin-pstmarble.lua
@@ -0,0 +1,662 @@
+---- luapstricks-plugin-pstmarble.lua
+-- Copyright 2021--2023 Marcel Krüger <tex@2krueger.de>
+-- Converted from PostScript in pst-marble.pro version 1.6
+-- pst-marble.pro: Copyright 2018--2019 Aubrey Jaffer
+--
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+--
+-- This work has the LPPL maintenance status `maintained'.
+--
+-- The Current Maintainer of this work is M. Krüger
+--
+-- This work consists of the files luapstricks.lua and luapstricks-plugin-pstmarble.lua
+
+local loader, version, plugininterface = ...
+assert(loader == 'luapstricks' and version == 0)
+
+local push = plugininterface.push
+local pop = plugininterface.pop
+local pop_array = plugininterface.pop_array
+local pop_num = plugininterface.pop_num
+local pop_proc = plugininterface.pop_proc
+local exec = plugininterface.exec
+
+local newtable = lua.newtable
+local abs = math.abs
+local exp = math.exp
+local cos = math.cos
+local sin = math.sin
+local rad = math.rad
+local max = math.max
+local deg = math.deg
+local atan = math.atan
+
+local function spread(px, py, cx, cy, rad2)
+ local pc2 = (px - cx)^2 + (py - cy)^2 -- (p-c)^2
+ local a = (rad2 / pc2 + 1)^0.5
+ return (px - cx) * a + cx, (py - cy) * a + cy
+end
+
+local e_inv = math.exp(-1)
+local function rake_deformation(px, py, dx, dy, rs, V, tU, Linv)
+ local a = 0
+ for i = 1, #rs do
+ local r = rs[i]
+ local bx, by = dy * r, -dx * r
+ a = a + exp(-abs((px - bx) * dy - (py - by) * dx) * Linv) * tU
+ end
+ return px + dx * a, py + dy * a
+end
+
+local function stir_deformation(px, py, cx, cy, rs, th, Linv, oversample)
+ local dx, dy = (px - cx), (py - cy)
+ local dist = (dx^2 + dy^2)^.5
+ if dist <= 1e-6 then return px, py end
+
+ local a = 0
+ for i = 1, #rs do
+ local r = rs[i]
+ local positive = r > 0
+ if not positive then r = -r end
+ local delta = exp(-abs(dist - r) * (Linv / r)) * th
+ if positive then
+ a = a - delta
+ else
+ a = a + delta
+ end
+ end
+ if oversample > 0 then
+ a = -a
+ end
+ a = rad(a)
+ local cos_a, sin_a = cos(a), sin(a)
+ return cos_a * dx - sin_a * dy + cx, sin_a * dx + cos_a * dy + cy
+end
+
+local function symmod(x, m)
+ local x = x % m
+ if 2 * x >= m then
+ x = x - m
+ end
+ return x
+end
+
+-- Common code to compute inverse of non-linear deformation
+local function g1(mdls, a, mf, af, major, pw, freq)
+ local tmp = mdls / 2
+ if a < 0 then tmp = -tmp end
+
+ local tmp2
+ if mf > 0 then
+ tmp2 = 1 - max(1 - abs(af / 180), 0)^pw
+ else
+ tmp2 = abs(af / 180)^pw
+ end
+ local g0 = tmp * tmp2
+--[[
+ %% one iteration of Newton-Raphson
+ %% g_1=g_0-(g_0-a+(m/2)*sin(g_0*f))/(1+pi*m*f/360*cos(g_0*f))
+]]
+ local gf = rad(g0 * freq)
+ return g0 - (g0 - a + major * sin(gf)) / (1 + mf/2 * cos(gf))
+end
+
+local function jiggle_deformation(px, py, dx, dy, freq, ofst, trv, major, minor, mf, mdls, pw)
+ local a = symmod(py * dx + px * dy + ofst, mdls)
+ local af = a * freq
+ local x, y
+ if mf ~= 0 then
+ --[[
+ % find the minor axis displacement from the major axis value
+ % where it was moved from.
+ ]]
+ local g = g1(mdls, a, mf, af, major, pw, freq)
+ x, y = g - a, cos(rad(g * freq)) * minor
+ else
+ local ang = rad(af)
+ x, y = sin(ang), -cos(ang)
+ -- x, y = x * major, y * minor
+ end
+ return trv[1] * x + trv[3] * y + px, trv[2] * x + trv[4] * y + py
+end
+
+local function wriggle_deformation(px, py, cx, cy, freq, major, minor, mf, mdls, pw)
+ local rd = ((px - cx)^2 + (py - cy)^2)^.5
+ if rd <= 1e-6 then return px, py end
+
+ local a = symmod(rd, mdls)
+ local af = a * freq
+
+ -- x, y are radial and angular displacements from cx,cy
+ -- The naming is used to demonstrate the similarity with jiggle.
+ local x, y
+ if mf ~= 0 then
+ local g = g1(mdls, a, mf, af, major, pw, freq)
+ x, y = g - a, cos(rad(g * freq)) * minor
+ else
+ local ang = rad(af)
+ x, y = sin(ang) * major, -cos(ang) * minor
+ end
+ rd = rd + x
+ local ang = rad(y) + atan(px - cx, py - cy)
+
+ return sin(ang) * rd + cx, cos(ang) * rd + cy
+end
+
+local function stylus_deformation(px, py, bx, by, ex, ey, L, tU, steps, nx, ny, step_x, step_y)
+ for _ = 1, steps do
+ local dxB, dyB = bx - px, by - py
+ local dxE, dyE = ex - px, ey - py
+ local r = (dxB^2 + dyB^2)^.5
+ local denr = r / L
+ if 0 < denr and denr < 6 then
+ local s = (dxE^2 + dyE^2)^.5
+ local txB = dxB * nx + dyB * ny
+ local txE = dxE * nx + dyE * ny
+ local ty = dxB * ny - dyB * nx
+ denr = 2*L*r * exp(denr)
+ local dens = 2*L*s * exp(s / L)
+ local ty2 = ty^2
+ local inx = (L*r - ty2) * tU / denr
+ + (L*s - ty2) * tU / dens
+ local iny = txB * ty * tU / denr
+ + txE * ty * tU / dens
+ px = px + inx * nx + iny * ny
+ py = py + inx * ny - iny * nx
+ end
+ bx, by = ex, ey
+ ex, ey = ex + step_x, ey + step_y
+ end
+ return px, py
+end
+
+-- An irrotational vortex. circ is circulation; t is time in seconds
+local m4o3 = -4/3
+local function vortex_deformation(px, py, cx, cy, circ, t, nuterm)
+ local pc2 = (px - cx)^2 + (py - cy)^2
+ if pc2 < 1e-6 then return px, py end
+ local a = rad((nuterm + (pc2 * t)^.75)^m4o3 * circ)
+ px, py = px - cx, py - cy
+ local cos_a, sin_a = cos(a), sin(a)
+ return cos_a * px - sin_a * py + cx, sin_a * px + cos_a * py + cy
+end
+
+-- We don't actually gain much from moving this one to Lua, but it's more consistent
+local function offset_deformation(px, py, dx, dy)
+ return px + dx, py + dy
+end
+
+local function do_turn(px, py, cx, cy, trv)
+ px, py = px - cx, py - cy
+ return trv[1] * px + trv[3] * py + trv[5], trv[2] * px + trv[4] * py + trv[6]
+end
+
+local function ct_handler(handler)
+ return function(px, py, args, count)
+ push(px)
+ push(py)
+
+ for j = 1, count do
+ push(args[j])
+ end
+ exec(handler)
+ py = pop_num()
+ px = pop_num()
+ return px, py
+ end
+end
+
+local function ct_dispatch_fallback(fallback)
+ local handler = ct_handler(fallback)
+ return function(ct, px, py, args, count)
+ push{kind = 'name', value = 'ct'}
+ push{kind = 'name', value = ct}
+ exec'def'
+
+ return handler(px, py, args, count)
+ end
+end
+
+local ct_handlers = {
+ offset = function(px, py, args, count)
+ assert(count == 2)
+ return offset_deformation(px, py, args[1], args[2])
+ end,
+ -- offset = ct_handler'offset-deformation',
+ turn = function(px, py, args, count)
+ assert(count == 3)
+ return do_turn(px, py, args[1], args[2], args[3].value)
+ end,
+ -- turn = ct_handler'do-turn',
+ jiggle = function(px, py, args, count)
+ assert(count == 10)
+ return jiggle_deformation(px, py, args[1], args[2], args[3], args[4], args[5].value, args[6], args[7], args[8], args[9], args[10])
+ end,
+ -- jiggle = ct_handler'jiggle-deformation',
+ rake = function(px, py, args, count)
+ assert(count == 6)
+ return rake_deformation(px, py, args[1], args[2], args[3].value, args[4], args[5], args[6])
+ end,
+ -- rake = ct_handler'rake-deformation',
+ vortex = function(px, py, args, count)
+ assert(count == 4)
+ exec'nuterm'
+ local nuterm = pop_num()
+ return vortex_deformation(px, py, args[1], args[2], args[3], args[4], nuterm)
+ end,
+ -- vortex = ct_handler'vortex-deformation',
+ stir = function(px, py, args, count)
+ assert(count == 5)
+ exec'oversample'
+ local oversample = pop_num()
+ return stir_deformation(px, py, args[1], args[2], args[3].value, args[4], args[5], oversample)
+ end,
+ -- stir = ct_handler'stir-deformation',
+ wriggle = function(px, py, args, count)
+ assert(count == 8)
+ return wriggle_deformation(px, py, args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8])
+ end,
+ -- wriggle = ct_handler'wriggle-deformation',
+ stylus = function(px, py, args, count)
+ assert(count == 11)
+ return stylus_deformation(px, py, args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11])
+ end,
+ -- stylus = ct_handler'stylus-deformation',
+}
+local function ct_dispatch(fallback)
+ fallback = ct_dispatch_fallback(fallback)
+ return function(ct, px, py, args, count)
+ local handler = ct_handlers[ct]
+ if handler then
+ return handler(px, py, args, count)
+ else
+ return fallback(ct, px, py, args, count)
+ end
+ end
+end
+
+local function sharpen(x)
+ x = x - 0.5
+ if abs(x) >= 1e-8 then
+ x = x / abs(x)^.66 * .63
+ end
+ return x + 0.5
+end
+
+local function Vmap2(v1, v2, func)
+ local result = newtable(#v2, 0)
+ for i=1, #v1 do
+ result[i] = func(v1[i], v2[i])
+ end
+ return result
+end
+
+local function paper_shading(rgb, pwr, paper)
+ return Vmap2(rgb, paper, function(c1, c2)
+ if c2 >= c1 then
+ local a = 1 - c1/c2
+ if a >= 1e-30 then
+ a = a^pwr
+ end
+ return (1 - a) * c2
+ else
+ local a = (1 - c1) / (1 - c2)
+ if a >= 1e-30 then
+ a = a^(2-pwr)
+ end
+ return 1 - a * (1 - c2)
+ end
+ end)
+end
+
+local function actions2rgb(fallback)
+ local dispatch = ct_dispatch(fallback)
+ return function(px, py, actions, acnt, paper)
+ local cdx = acnt
+ for cdx = acnt, 1, -1 do
+ local action = actions[cdx]
+ local kind = action.kind
+ if kind == 'executable' then
+ action = action.value
+ kind = action.kind
+ end
+ assert(kind == 'array')
+ action = action.value
+ local count = #action
+ local ct = action[count].value
+ if ct == 'drop' then
+ assert(count == 8)
+ local cx, cy = action[1], action[2]
+ local rad2 = action[3]
+ local bgc, rgb = action[4].value, action[5].value
+ local sr2, gc = action[6], action[7]
+
+ local a2 = (px - cx)^2 + (py - cy)^2
+ local disc = a2 < 1e-10 and 0 or 1 - rad2 / a2
+ if disc <= 0 then
+ if gc ~= 0 then
+ rgb = paper_shading(rgb, exp(a2 * sr2) * gc, paper)
+ end
+ if disc > -0.001 then
+ local a = sharpen((-disc)^.5)
+ rgb = Vmap2(rgb, bgc, function(v1, v2) return v1 * a + v2 * (1-a) end)
+ end
+ return rgb
+ else
+ local a = disc^.5
+ px, py = (px - cx) * a + cx, (py - cy) * a + cy
+ end
+ else
+ px, py = dispatch(ct, px, py, action, count - 1)
+ end
+ end
+ end
+end
+
+-- At this point, fx and fy contain the raster coordinates;
+-- [ r g b ] is on top of the stack.
+local function do_shadings(rgb, fx, fy, shadings, paper)
+ local scnt = #shadings
+ if scnt > 0 then
+ for idx = 1, scnt do
+ local shading = shadings[idx]
+ local kind = shading.kind
+ if kind == 'executable' then
+ shading = shading.value
+ kind = shading.kind
+ end
+ assert(kind == 'array')
+ shading = shading.value
+ local count = #shading
+ local ct = shading[count].value
+ if ct == 'jiggle-shade' then
+ assert(count == 9)
+ local dx, dy = shading[1], shading[2]
+ local freq, ofst = shading[3], shading[4]
+ local major, mf = shading[5], shading[6]
+ local mdls, pw = shading[7], shading[8]
+
+ local a = symmod(fy * dx + fx * dy + ofst, mdls)
+ local af = a * freq
+
+ if mf ~= 0 then
+ local g = g1(mdls, a, mf, af, major, pw, freq)
+ rgb = paper_shading(rgb, max(cos(rad(g * freq)) * mf + 1, 0), paper)
+ end
+ elseif ct == 'wriggle-shade' then
+ assert(count == 9)
+ local cx, cy = shading[1], shading[2]
+ local freq, ofst = shading[3], shading[4]
+ local major, mf = shading[5], shading[6]
+ local mdls, pw = shading[7], shading[8]
+
+ local a = symmod(((fx - cx)^2 + (fy - cy)^2)^.5 + ofst, mdls)
+ local af = a * freq
+
+ if mf ~= 0 then
+ local g = g1(mdls, a, mf, af, major, pw, freq)
+ rgb = paper_shading(rgb, max(cos(rad(g * freq)) * mf + 1, 0), paper)
+ end
+ else
+ print(string.format('unrecognized shade token %s', ct))
+ end
+ end
+ end
+
+ return rgb
+end
+
+local function do_raster(dispatch)
+ local actions2rgb = actions2rgb(dispatch)
+ return function(lox, hix, loy, hiy, oversample, actions, acnt, shadings, paper, scl, background)
+ local sampleover = 1 / oversample
+ local width = (hix - lox) // sampleover
+ local height = (hiy - loy) // sampleover
+ local raster = newtable(width * height, 0)
+
+ local factor = sampleover / scl
+
+ for y = 0, height do
+ local fy = loy / scl + y * factor
+ for x = 0, width do
+ local fx = lox / scl + x * factor
+
+ local rgb = actions2rgb(fx, fy, actions, acnt, paper) or background
+ rgb = do_shadings(rgb, fx, fy, shadings, paper)
+ raster[1 + y*(width+1) + x] = {kind = 'array', value = rgb}
+ end
+ end
+ return raster, width + 1, height + 1
+ end
+end
+
+return {
+ spread = function()
+ local rad2 = pop_num() -- rad^2
+ local cy = pop_num()
+ local cx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+ px, py = spread(px, py, cx, cy, rad2)
+ push(px)
+ push(py)
+ end,
+ ['.actions2rgb'] = function() -- px py actions acnt paper fallback .composite-map exec
+ local _, fallback = pop_proc()
+ local actions2rgb = actions2rgb(fallback)
+ push(function()
+ local paper = pop_array().value
+ local acnt = pop_num()
+ local actions = pop_array().value
+
+ local py = pop_num()
+ local px = pop_num()
+
+ local rgb = actions2rgb(px, py, actions, acnt, paper)
+ if rgb then
+ push{kind = 'array', value = rgb}
+ push(true)
+ else
+ push(false)
+ end
+ end)
+ end,
+ ['.paper-shading'] = function() -- rgb pwr paper
+ local paper = pop_array().value
+ local pwr = pop_num()
+ local rgb = pop_array().value
+ rgb = paper_shading(rgb, pwr, paper)
+ push{kind = 'array', value = rgb}
+ end,
+ ['.composite-map'] = function() -- acnt idx actions fallback .composite-map exec
+ local _, fallback = pop_proc()
+ local dispatch = ct_dispatch(fallback)
+ push(function()
+ local actions = pop_array().value
+ local idx = pop_num()
+ local acnt = pop_num()
+
+ local py = pop_num()
+ local px = pop_num()
+
+ for i = idx + 1, acnt - 1 do
+ local action = actions[i+1]
+ local kind = action.kind
+ if kind == 'executable' then
+ action = action.value
+ kind = action.kind
+ end
+ assert(kind == 'array')
+ action = action.value
+ local count = #action
+ local ct = action[count].value
+ if ct == 'drop' then
+ assert(count == 8)
+ px, py = spread(px, py, action[1], action[2], action[3])
+ else
+ px, py = dispatch(ct, px, py, action, count - 1)
+ end
+ end
+ push(px)
+ push(py)
+ end)
+ end,
+ ['stir-deformation'] = function()
+ local Linv = pop_num()
+ local th = pop_num()
+ local rs = pop_array().value
+ local cy = pop_num()
+ local cx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+
+ exec'oversample'
+ local oversample = pop_num()
+ px, py = stir_deformation(px, py, cx, cy, rs, th, Linv, oversample)
+ push(px)
+ push(py)
+ end,
+ ['rake-deformation'] = function()
+ local Linv = pop_num()
+ local tU = pop_num()
+ local V = pop_num()
+ local rs = pop_array().value
+ local dy = pop_num()
+ local dx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+ px, py = rake_deformation(px, py, dx, dy, rs, V, tU, Linv)
+ push(px)
+ push(py)
+ end,
+ ['jiggle-deformation'] = function()
+ local pw = pop_num()
+ local mdls = pop_num()
+ local mf = pop_num()
+ local minor = pop_num()
+ local major = pop_num()
+ local trv = pop_array().value
+ local ofst = pop_num()
+ local freq = pop_num()
+ local dy = pop_num()
+ local dx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+ px, py = jiggle_deformation(px, py, dx, dy, freq, ofst, trv, major, minor, mf, mdls, pw)
+ push(px)
+ push(py)
+ end,
+ ['wriggle-deformation'] = function()
+ local pw = pop_num()
+ local mdls = pop_num()
+ local mf = pop_num()
+ local minor = pop_num()
+ local major = pop_num()
+ local freq = pop_num()
+ local cy = pop_num()
+ local cx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+ px, py = wriggle_deformation(px, py, cx, cy, freq, major, minor, mf, mdls, pw)
+ push(px)
+ push(py)
+ end,
+ ['stylus-deformation'] = function()
+ local step_y = pop_num()
+ local step_x = pop_num()
+ local ny = pop_num()
+ local nx = pop_num()
+ local steps = pop_num()
+ local tU = pop_num()
+ local L = pop_num()
+ local ey = pop_num()
+ local ex = pop_num()
+ local by = pop_num()
+ local bx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+ px, py = stylus_deformation(px, py, bx, by, ex, ey, L, tU, steps, nx, ny, step_x, step_y)
+ push(px)
+ push(py)
+ end,
+ ['.vortex-deformation'] = function()
+ local nuterm = pop_num()
+ local t = pop_num()
+ local circ = pop_num()
+ local cy = pop_num()
+ local cx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+
+ px, py = vortex_deformation(px, py, cx, cy, circ, t, nuterm)
+ push(px)
+ push(py)
+ end,
+ ['offset-deformation'] = function()
+ local dy = pop_num()
+ local dx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+
+ px, py = offset_deformation(px, py, dx, dy)
+ push(px)
+ push(py)
+ end,
+ ['do-turn'] = function()
+ local trv = pop_array().value
+ local cy = pop_num()
+ local cx = pop_num()
+ local py = pop_num()
+ local px = pop_num()
+
+ px, py = do_turn(px, py, cx, cy, trv)
+ push(px)
+ push(py)
+ end,
+ ['.Minsky-circle'] = function()
+ local eps = pop_num()
+ local y = pop_num()
+ local x = pop_num()
+ x = x - eps * y
+ y = y + eps * x
+ push(x)
+ push(y)
+ end,
+ ['.do-shadings'] = function()
+ local paper = pop_array().value
+ local shadings = pop_array().value
+ local fy = pop_num()
+ local fx = pop_num()
+ local rgb = pop_array().value
+ rgb = do_shadings(rgb, fx, fy, shadings, paper)
+ push{kind = 'array', value = rgb}
+ end,
+ ['.do-raster'] = function()
+ local _, fallback = pop_proc()
+ local do_raster = do_raster(fallback)
+ push(function()
+ local background = pop_array().value
+ local scl = pop_num()
+ local paper = pop_array().value
+ local shadings = pop_array().value
+ local acnt = pop_num()
+ local actions = pop_array().value
+ local oversample = pop_num()
+ local hiy = pop_num()
+ local loy = pop_num()
+ local hix = pop_num()
+ local lox = pop_num()
+
+ local raster, width, height = do_raster(lox, hix, loy, hiy, oversample, actions, acnt, shadings, paper, scl, background)
+ push{kind = 'array', value = raster}
+ push(width)
+ push(height)
+ end)
+ end,
+}, 0
diff --git a/graphics/pstricks/contrib/luapstricks/luapstricks.lua b/graphics/pstricks/contrib/luapstricks/luapstricks.lua
index ee88e48993..9797073d2d 100644
--- a/graphics/pstricks/contrib/luapstricks/luapstricks.lua
+++ b/graphics/pstricks/contrib/luapstricks/luapstricks.lua
@@ -1,5 +1,5 @@
---- luapstricks.lua
--- Copyright 2021--2022 Marcel Krüger <tex@2krueger.de>
+-- Copyright 2021--2023 Marcel Krüger <tex@2krueger.de>
--
-- This work may be distributed and/or modified under the
-- conditions of the LaTeX Project Public License, either version 1.3
@@ -13,13 +13,13 @@
--
-- The Current Maintainer of this work is M. Krüger
--
--- This work consists of the file luapstricks.lua.
+-- This work consists of the files luapstricks.lua and luapstricks-plugin-pstmarble.lua
if luatexbase then
luatexbase.provides_module {
name = 'luapstricks',
- version = 'v0.8',
- date = '2023-02-17',
+ version = 'v0.9',
+ date = '2023-04-14',
description = 'PSTricks backend for LuaLaTeX',
}
end
@@ -917,6 +917,17 @@ local function num_to_base(num, base, ...)
return num_to_base(remaining, base, digit, ...)
end
+local plugin_interface = {
+ push = push,
+ pop = pop,
+ pop_num = pop_num,
+ pop_dict = pop_dict,
+ pop_array = pop_array,
+ pop_key = pop_key,
+ pop_proc = pop_proc,
+ exec = nil, -- execute_tok, -- filled in later
+}
+
local systemdict
local function generic_show(str, ax, ay)
local state = graphics_stack[#graphics_stack]
@@ -3846,7 +3857,52 @@ systemdict = {kind = 'dict', value = {
{kind = 'name', value = 'yacute'},
{kind = 'name', value = 'thorn'},
{kind = 'name', value = 'ydieresis'},
- }}
+ }},
+
+ -- In internal interface to allow package specific commands to be defined in separate file.
+ -- This does not provide a stable interface for external extensions
+ ['.loadplugin'] = function()
+ local name = pop_key()
+ local found = kpse.find_file(string.format('luapstricks-plugin-%s', name), 'lua')
+ if not found then
+ return push(false)
+ end
+ local loader = assert(loadfile(found))
+ local plugin, version = loader('luapstricks', 0, plugin_interface)
+ push{kind = 'dict', value = plugin}
+ push(version)
+ push(true)
+ end,
+
+ ['.build-image'] = function()
+ local y = pop_num()
+ local x = pop_num()
+ local image = pop_array().value
+ for i = 1, x*y do
+ local rgb = image[i].value
+ image[i] = string.pack('BBB', (rgb[1] * 255 + .5) // 1, (rgb[2] * 255 + .5) // 1, (rgb[3] * 255 + .5) // 1)
+ end
+ local i = img.scan {
+ stream = table.concat(image),
+ attr = string.format("/Type /XObject /Subtype /Image /Width %i /Height %i /BitsPerComponent 8 /ColorSpace /DeviceRGB", x, y),
+ notype = true,
+ nobbox = true,
+ bbox = {0, 0, 65781.76, 65781.76}
+ }
+ push(function()
+ flush_delayed()
+ local state = graphics_stack[#graphics_stack]
+ register_point(state, 0, 0)
+ register_point(state, 1, 1)
+ vf.push()
+ local n = node.new'hlist'
+ n.dir = 'TLT'
+ n.head = img.node(i)
+ vf.node(node.direct.todirect(n))
+ node.free(n)
+ vf.pop()
+ end)
+ end,
}}
systemdict.value.systemdict = systemdict
dictionary_stack = {systemdict, globaldict, userdict, userdict.value.TeXDict}
@@ -4040,6 +4096,7 @@ function execute_tok(tok, suppress_proc)
return push(tok)
end
end
+plugin_interface.exec = execute_tok
function execute_ps(tokens)
for i=1, #tokens do
diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
index bdf8e69752..0d70c7ff9d 100644
--- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
new file mode 100644
index 0000000000..94e3a8d120
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
@@ -0,0 +1,177 @@
+\setKVdefault[CalculsFractions]{Couleur=Crimson}
+
+\NewDocumentCommand\tofrac{m}{%
+ \IfDecimal{#1}{#1}{%
+ \StrBefore{#1}{/}[\PfCnum]%
+ \StrBehind{#1}{/}[\PfCden]%
+ \frac{\PfCnum}{\PfCden}%
+ }%
+}%
+
+\NewDocumentCommand\AddFraction{soommo}{%
+ \useKVdefault[CalculsFractions]%
+ \setKV[CalculsFractions]{#2}%
+ \IfBooleanTF{#1}{%
+ \xdef\PfCFractionOp{-}%
+ }{%
+ \xdef\PfCFractionOp{+}%
+ }%
+ \IfDecimal{#4}{%
+ \xdef\PfCNumA{#4}%
+ \xdef\PfCNumB{1}%
+ }{%
+ \StrCut{#4}{/}\PfCNumA\PfCNumB%
+ }%
+ \IfDecimal{#5}{%
+ \xdef\PfCNumC{#5}%
+ \xdef\PfCNumD{1}%
+ }{%
+ \StrCut{#5}{/}\PfCNumC\PfCNumD%
+ }
+ \xdef\PfCAddFoo{\PfCNumA/\PfCNumB,\PfCNumC/\PfCNumD}%
+ \setsepchar[*]{,*/}\ignoreemptyitems%
+ \readlist*\ListeFractions{\PfCAddFoo}%
+ \reademptyitems
+ \setsepchar{,}%
+ % Partie calculs
+ \PGCD{\ListeFractions[1,2]}{\ListeFractions[2,2]}%
+ \xdef\PfCPremierMul{\fpeval{\ListeFractions[2,2]/\the\pgcd}}%
+ \xdef\PfCDeuxiemeMul{\fpeval{\ListeFractions[1,2]/\the\pgcd}}%
+ \xdef\PfCAddNumFin{\fpeval{(\ListeFractions[1,1])*(\PfCPremierMul)\PfCFractionOp(\ListeFractions[2,1])*(\PfCDeuxiemeMul)}}%
+ \xdef\PfCAddDenoFin{\fpeval{(\ListeFractions[1,2])*(\PfCPremierMul)}}%
+ \PGCD{\fpeval{abs(\PfCAddNumFin)}}{\fpeval{abs(\PfCAddDenoFin)}}\xdef\PfCAddPgcd{\the\pgcd}%
+ \xdef\PfCAddNumSimp{\fpeval{\PfCAddNumFin/\PfCAddPgcd}}%
+ \xdef\PfCAddDenoSimp{\fpeval{\PfCAddDenoFin/\PfCAddPgcd}}%
+ \xdef\PfCAddSumSimp{\PfCAddNumSimp/\PfCAddDenoSimp}%
+ \IfValueT{#6}{\xdef#6{\PfCAddSumSimp}}%
+ % Partie affichage
+ \ensuremath{%
+ \IfValueTF{#3}{%
+ \ifnum#3=4\relax%
+ \tofrac{\PfCAddSumSimp}%
+ \else%
+ \ifnum#3=3\relax%
+ \SSimpliTest{\fpeval{abs(\PfCAddNumFin)}}{\fpeval{abs(\PfCAddDenoFin)}}\ifthenelse{\boolean{Simplification}}{\tofrac{\PfCAddNumFin/\PfCAddDenoFin}}{\tofrac{\PfCAddSumSimp}}%
+ \else%
+ \ifnum#3=1\relax%
+ \ifnum\PfCPremierMul>1\relax%
+ \frac{\ListeFractions[1,1]_{\times\num{\PfCPremierMul}}}{\ListeFractions[1,2]_{\times\num{\PfCPremierMul}}}
+ \else%
+ \tofrac{#4}%
+ \fi%
+ \PfCFractionOp%
+ \ifnum\PfCDeuxiemeMul>1\relax%
+ \frac{\ListeFractions[2,1]_{\times\num{\PfCDeuxiemeMul}}}{\ListeFractions[2,2]_{\times\num{\PfCDeuxiemeMul}}}%
+ \else%
+ \tofrac{#5}%
+ \fi%
+ \else%
+ \ifnum#3=2\relax%
+ \frac{\num{\fpeval{\ListeFractions[1,1]*\PfCPremierMul}}}{\num{\fpeval{\ListeFractions[1,2]*\PfCPremierMul}}}\PfCFractionOp\frac{\num{\fpeval{\ListeFractions[2,1]*\PfCDeuxiemeMul}}}{\num{\fpeval{\ListeFractions[2,2]*\PfCDeuxiemeMul}}}%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ }{\tofrac{#4}\PfCFractionOp\tofrac{#5}
+ }%
+ }%
+}%
+
+\NewDocumentCommand\SousFraction{oomm}{%
+ \AddFraction*[#1][#2]{#3}{#4}%
+}%
+
+\NewDocumentCommand\MulFraction{oommo}{%
+ \useKVdefault[CalculsFractions]%
+ \setKV[CalculsFractions]{#1}%
+ \IfDecimal{#3}{%
+ \xdef\PfCNumA{#3}%
+ \xdef\PfCNumB{1}%
+ }{%
+ \StrCut{#3}{/}{\PfCNumA}{\PfCNumB}%
+ }%
+ \IfDecimal{#4}{%
+ \xdef\PfCNumC{#4}%
+ \xdef\PfCNumD{1}%
+ }{%
+ \StrCut{#4}{/}{\PfCNumC}{\PfCNumD}%
+ }%
+ \xdef\PfCMulFoo{\PfCNumA/\PfCNumB,\PfCNumC/\PfCNumD}%
+ \setsepchar[*]{,*/}\ignoreemptyitems%
+ \readlist*\ListeFractions{\PfCMulFoo}%
+ \reademptyitems
+ \setsepchar{,}%
+ % Calculs
+ \xdef\PfCMulNumFin{\fpeval{(\ListeFractions[1,1])*(\ListeFractions[2,1])}}
+ \xdef\PfCMulDenoFin{\fpeval{\ListeFractions[1,2]*\ListeFractions[2,2]}}
+ \PGCD{\fpeval{abs(\PfCMulNumFin)}}{\fpeval{abs(\PfCMulDenoFin)}}\xdef\PfCMulPgcd{\pgcd}%
+ \xdef\PfCMulNumSimp{\fpeval{\PfCMulNumFin/\PfCMulPgcd}}%
+ \xdef\PfCMulDenoSimp{\fpeval{\PfCMulDenoFin/\PfCMulPgcd}}%
+ \xdef\PfCMulPdtSimp{\PfCMulNumSimp/\PfCMulDenoSimp}%
+ \IfValueT{#5}{\xdef#5{\PfCMulPdtSimp}}%
+ \ensuremath{%
+ \IfValueTF{#2}{%
+ \ifnum#2=3\relax
+ \tofrac{\PfCMulPdtSimp}%
+ \else
+ \ifnum#2=2\relax%
+ \SSimpliTest{\PfCMulNumFin}{\PfCMulDenoFin}\ifthenelse{\boolean{Simplification}}{\frac{\ifnum\PfCMulNumFin<0\relax-\fi\Decomposition[Longue]{\fpeval{abs(\PfCMulNumFin)}}}{\ifnum\PfCMulDenoFin<0\relax-\fi\Decomposition[Longue]{\fpeval{abs(\PfCMulDenoFin)}}}}{\tofrac{\PfCMulPdtSimp}}%
+ \else%
+ \ifnum#2=1\relax%
+ \frac{\ListeFractions[1,1]\times\ifnum\ListeFractions[2,1]<0\relax(\fi\ListeFractions[2,1]\ifnum\ListeFractions[2,1]<0\relax)\fi}{\ListeFractions[1,2]\times\ifnum\ListeFractions[2,2]<0\relax(\fi\ListeFractions[2,2]\ifnum\ListeFractions[2,2]<0\relax)\fi}
+ \fi
+ \fi
+ \fi
+ }{\tofrac{#3}\times\tofrac{#4}
+ }
+ }%
+}%
+
+\NewDocumentCommand\DivFraction{oommo}{%
+ \useKVdefault[CalculsFractions]%
+ \setKV[CalculsFractions]{#1}%
+ \IfDecimal{#3}{%
+ \xdef\PfCNumA{#3}%
+ \xdef\PfCNumB{1}%
+ }{%
+ \StrCut{#3}{/}{\PfCNumA}{\PfCNumB}%
+ }%
+ \IfDecimal{#4}{%
+ \xdef\PfCNumC{#4}%
+ \xdef\PfCNumD{1}%
+ }{%
+ \StrCut{#4}{/}{\PfCNumC}{\PfCNumD}%
+ }%
+ \xdef\PfCDivFoo{\PfCNumA/\PfCNumB,\PfCNumC/\PfCNumD}%
+ \setsepchar[*]{,*/}\ignoreemptyitems%
+ \readlist*\ListeFractions{\PfCDivFoo}%
+ \reademptyitems%
+ \setsepchar{,}%
+ % Calculs
+ \xdef\PfCDivNumFin{\fpeval{(\ListeFractions[1,1])*(\ListeFractions[2,2])}}%
+ \xdef\PfCDivDenoFin{\fpeval{\ListeFractions[1,2]*\ListeFractions[2,1]}}%
+ \PGCD{\fpeval{abs(\PfCDivNumFin)}}{\fpeval{abs(\PfCDivDenoFin)}}\xdef\PfCDivPgcd{\pgcd}%
+ \xdef\PfCDivNumSimp{\fpeval{\PfCDivNumFin/\PfCDivPgcd}}%
+ \xdef\PfCDivDenoSimp{\fpeval{\PfCDivDenoFin/\PfCDivPgcd}}%
+ \xdef\PfCDivPdtSimp{\PfCDivNumSimp/\PfCDivDenoSimp}%
+ \IfValueT{#5}{\xdef#5{\PfCDivPdtSimp}}%
+ \ensuremath{%
+ \IfValueTF{#2}{%
+ \ifnum#2=4\relax
+ \tofrac{\PfCDivPdtSimp}%
+ \else\ifnum#2=3\relax
+ \MulFraction[][\fpeval{#2-1}]{\ListeFractions[1,1]/\ListeFractions[1,2]}{\ListeFractions[2,2]/\ListeFractions[2,1]}%
+ \else
+ \ifnum#2=2\relax%
+ \MulFraction[][\fpeval{#2-1}]{\ListeFractions[1,1]/\ListeFractions[1,2]}{\ListeFractions[2,2]/\ListeFractions[2,1]}%
+ \else%
+ \ifnum#2=1\relax%
+ \tofrac{\ListeFractions[1,1]/\ListeFractions[1,2]}\times\tofrac{\ListeFractions[2,2]/\ListeFractions[2,1]}
+ \fi
+ \fi
+ \fi
+ \fi
+ }{\tofrac{#3}\div\tofrac{#4}
+ }
+ }%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
index 7edbe8ab13..100807c748 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
@@ -38,6 +38,9 @@
colbacktitle=TrameCouleur,%
}%
+\newcommand\PfCTexteJai{J'ai}
+\newcommand\PfCTexteQuia{Qui a ?}
+
\makeatletter
\newtcolorbox{MyboxJQ}[2]{%
enhanced,%
@@ -65,9 +68,9 @@
\coordinate[yshift=3mm] (C3) at (frame.south);
\coordinate[xshift=\largeurcarte/2] (A3) at (A1);
\node[rounded corners, draw=black, rectangle,minimum height=1cm,text width=\largeurcarte-6mm,fill=TrameCouleur] (T1) at (A3){};
- \node[TexteCouleur] (T1a) at (T1){\Large J'ai};
+ \node[TexteCouleur] (T1a) at (T1){\Large \PfCTexteJai};
\node[rounded corners, draw=black, rectangle,minimum height=1cm,text width=\largeurcarte-6mm,fill=TrameCouleur] (T2) at (S3){};
- \node[TexteCouleur] (T2a) at (T2){\Large Qui a ?};
+ \node[TexteCouleur] (T2a) at (T2){\Large \PfCTexteQuia};
\node[minimum height=1cm,text width=\largeurcarte-6mm] (PointTexte1) at ($(A3)!0.5!(S3)$) {\begin{minipage}{\largeurcarte-6mm}%
\begin{center}%
#1%
diff --git a/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex b/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
index 1c8c944c48..3bd25ff4dc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
@@ -128,7 +128,7 @@
% \SI[round-mode=places,round-precision=#1]{#2}{\EuRo}%
%}
-\NewDocumentCommand\Prix{O{} O{2} m}{%
+\NewDocumentCommand\Prix{o O{2} m}{%
\useKVdefault[Unites]%
\setKV[Unites]{#1}%
\ifboolKV[Unites]{Nombre}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
new file mode 100644
index 0000000000..b56e4f4dfd
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
@@ -0,0 +1,236 @@
+\setKVdefault[Facto]{Aide=false,AideMul=false,Couleur=Crimson,NomExpression=A,Lettre=x,Details,Formel=false,VariableSup=false,ParenthesesFin=false,Finale=false}
+\defKV[Facto]{Litteral=\setKV[Facto]{Details=false}}
+\defKV[Facto]{AutreVariable=\setKV[Facto]{VariableSup}}
+\defKV[Facto]{Resultat=\setKV[Facto]{Finale}}
+
+\NewDocumentCommand\PfCEcrireFacteur{mm}{%
+ \StrCount{#1}{+}[\PfCCountArgTroisPlus]%
+ \StrCount{#1}{-}[\PfCCountArgTroisMoins]%
+ \xdef\PfCCountArgTrois{\fpeval{\PfCCountArgTroisPlus+\PfCCountArgTroisMoins}}%
+ \ensuremath{%
+ \IfDecimal{#1}{%
+ \ifboolKV[Facto]{Aide}{%
+ \phantom{(}\print{#2}\phantom{)}%
+ }{%
+ \print{#2}%
+ }%
+ }{%
+ \xintifboolexpr{\PfCCountArgTrois==0}{%
+ \ifboolKV[Facto]{Aide}{%
+ \phantom{(}\print{#2}\phantom{)}%
+ }{%
+ \print{#2}%
+ }%
+ }{
+ (\print{#2})%
+ }
+ }%
+ }%
+}%
+
+\NewDocumentCommand\Factorisation{sommm}{%
+ \directlua{dofile('poly_render_fix.lua')}
+ \useKVdefault[Facto]%
+ \setKV[Facto]{#2}%
+ \colorlet{Csymbole}{\useKV[Facto]{Couleur}}%
+ \IfBooleanTF{#1}{%
+ \xdef\PfCFactoSymbole{-}%
+ }{%
+ \xdef\PfCFactoSymbole{+}%
+ }%
+ \xdef\PfCFactoNE{\useKV[Facto]{NomExpression}}%
+ \ifx\bla#5\bla%
+ % Cas a^2-b^2
+ \begin{CAS}
+ % La variable
+ vars('\useKV[Facto]{Lettre}')
+ % Les facteurs
+ Ka=#3
+ Kb=#4
+ Kc=(#3)^2
+ Kd=(#4)^2
+ Ke=(#3)-(#4)
+ Kf=(#3)+(#4)
+ % Les dérivées pour savoir si ce sont des facteurs littéraux ou pas.
+ PfCDDn=DD(Ka,\useKV[Facto]{Lettre}):autosimplify()
+ PfCDDm=DD(Kb,\useKV[Facto]{Lettre}):autosimplify()
+ PfCDDo=DD(Ke,\useKV[Facto]{Lettre}):autosimplify()
+ PfCDDp=DD(Kf,\useKV[Facto]{Lettre}):autosimplify()
+ % opposé
+ Ko=topoly(-Kb)
+ %
+ \end{CAS}
+ \setsepchar{,}\ignoreemptyitems
+ \readlist\ListeElementDeriveeA{\fetch{PfCDDn}}
+ \readlist\ListeElementDeriveeB{\fetch{PfCDDm}}
+ \readlist\ListeElementDeriveeE{\fetch{PfCDDo}}
+ \readlist\ListeElementDeriveeF{\fetch{PfCDDp}}
+ \reademptyitems
+ \xdef\TestCASA{\ListeElementDeriveeA[1]}
+ \xdef\TestCASB{\ListeElementDeriveeB[1]}
+ \ifboolKV[Facto]{Details}{%Version monome mais pas deux nombres
+ \begin{align*}
+ \PfCFactoNE&=\print{Kc:expand()}-\print{Kd:expand()}\\
+ \PfCFactoNE&=\ifboolKV[Facto]{Aide}{\xintifboolexpr{\TestCASA>1}{(\,}{}{\underbrace{\Fdash{$\print{Ka}$}}_{A}}\xintifboolexpr{\TestCASA>1}{\,)}{}^{\,2}-\xintifboolexpr{\TestCASB>1}{(\,}{}{\underbrace{\Fdash{$\print{Kb}$}}_{B}}\xintifboolexpr{\TestCASB>1}{\,)}{}^{\,2}}{\IfDecimal{#3}{\print{Ka}^2}{\print{Kc}}-\IfDecimal{#4}{\print{Kb}^2}{\print{Kd}}}\\
+ \PfCFactoNE&=(\print{Ke})\times(\print{Kf})%
+ \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=(\print{Ke})(\print{Kf})}{}%
+ \end{align*}
+ }{%Avec au moins un des facteurs polynomes
+ \begin{align*}
+ \ifboolKV[Facto]{Aide}{\IfDecimal{#3}{\PfCFactoNE&=\print{Kc}-\print{Kd}}{\IfDecimal{#4}{\PfCFactoNE&=\print{Kc}-\print{Kd}}{\PfCFactoNE&={\underbrace{\Fdash{$(\print{Ka})$}}_{A}}^{\,2}-{\underbrace{\Fdash{$(\print{Kb})$}}_{B}}^{\,2}}}}{\PfCFactoNE&=\print{Kc}-\print{Kd}}\\
+ \IfDecimal{#3}{\PfCFactoNE\uppercase{&}=\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$\phantom{(}\print{Ka}\phantom{)}$}}_{A}}^{\,2}}{\print{Ka}^2}-\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$(\print{Kb})$}}_{B}}^{\,2}}{\print{Kd}}\\}{\IfDecimal{#4}{\PfCFactoNE\uppercase{&}=\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$(\print{Ka})$}}_{A}}^{\,2}}{\print{Kc}}-\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$\phantom{(}\print{Kb}\phantom{)}$}}_{B}}^{\,2}}{\print{Kb}^2}\\}{}}
+ \PfCFactoNE&=\left[\IfDecimal{#3}{\print{Ka}}{(\print{Ka})}-\IfDecimal{#4}{\print{Kb}}{(\print{Kb})}\right]\times\left[\IfDecimal{#3}{\print{Ka}}{(\print{Ka})}+\IfDecimal{#4}{\print{Kb}}{(\print{Kb})}\right]\\
+ \PfCFactoNE&=\left[\print{Ka}\xintifboolexpr{\TestCASB<0}{+}{}\print{Ko}\right]\times\left[\print{Ka}\StrChar{#4}{1}[\PfCTestCaracUn]\StrCompare{\PfCTestCaracUn}{-}[\PfCTestCaracRetour]\xintifboolexpr{\PfCTestCaracRetour==0}{}{+}\print{Kb}\right]\\
+ \PfCFactoNE&=\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ke:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Kf:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}%
+ \ifboolKV[Facto]{Finale}{\\\PfCFactoNE&=\useKV[Facto]{Resultat}}{\ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ke:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Kf:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}}{}}%
+ \end{align*}
+ }
+ \else%k*a+-k*b=k(a+-b)
+ \begin{CAS}
+ % La variable
+ vars('\useKV[Facto]{Lettre}'\ifboolKV[Facto]{VariableSup}{%
+ ,'\useKV[Facto]{AutreVariable}'
+ }{})
+ % Les facteurs
+ Kk=#3
+ Ka=#4
+ Kb=#5
+ Kka=Kk*Ka
+ Kkb=Kk*Kb
+ % Les dérivées pour savoir si ce sont des facteurs littéraux ou pas.
+ PfCDDn=DD(Ka,\useKV[Facto]{Lettre}):autosimplify()
+ PfCDDm=DD(Kb,\useKV[Facto]{Lettre}):autosimplify()
+ % opposé
+ Ko=topoly(-Kb)
+ Ke=(#4)\PfCFactoSymbole(#5)
+ \end{CAS}
+ \setsepchar{,}\ignoreemptyitems
+ \readlist\ListeElementDeriveeA{\fetch{PfCDDn}}
+ \readlist\ListeElementDeriveeB{\fetch{PfCDDm}}
+ \reademptyitems
+ \xdef\TestCAS{\ListeElementDeriveeA[1]}
+ \xdef\TestCASB{\ListeElementDeriveeB[1]}
+ \ifboolKV[Facto]{Details}{%Version monome mais pas des nombres
+ \begin{align*}
+ \PfCFactoNE&=\print{Kka:expand()}\PfCFactoSymbole\print{Kkb:expand()}\\
+ \PfCFactoNE&=\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{Kk}\phantom{)}$}}_{k}}{\print{Kk}}\times\xintifboolexpr{\TestCAS<0}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$(\print{Ka}$}}_{a}}{(\print{Ka})}}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{Ka}\phantom{)}$}}_{a}}{\print{Ka}}}\PfCFactoSymbole\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{Kk}\phantom{)}$}}_{k}}{\print{Kk}}\times\xintifboolexpr{\TestCASB<0}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$(\print{Kb}$}}_{b}}{(\print{Kb})}}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{Kb}\phantom{)}$}}_{b}}{\print{Kb}}}\\
+ \PfCFactoNE&=\print{Kk}\times(\print{Ka\PfCFactoSymbole Kb})%
+ \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\print{Kk}(\print{Ka\PfCFactoSymbole Kb})}{}%
+ \end{align*}
+ }{%Avec au moins un des facteurs polynomes
+ \StrCompare{\PfCFactoSymbole}{-}[\PfCRetiensSigneFacteurDeux]
+ \begin{align*}
+ \ifboolKV[Facto]{Aide}{\PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#4}{Ka}\PfCFactoSymbole\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#5}{Kb}\\\setKV[Facto]{Aide}}{}%
+ \PfCFactoNE&=\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{\PfCEcrireFacteur{#3}{Kk}}}_{k}\times\underbrace{\Fdash{\PfCEcrireFacteur{#4}{Ka}}}_{a}\PfCFactoSymbole\underbrace{\Fdash{\PfCEcrireFacteur{#3}{Kk}}}_{k}\times\underbrace{\Fdash{\PfCEcrireFacteur{#5}{Kb}}}_{b}}{\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#4}{Ka}\PfCFactoSymbole\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#5}{Kb}}\setKV[Facto]{Aide=false}\\
+ \PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\times\left[\PfCEcrireFacteur{#4}{Ka}\PfCFactoSymbole\PfCEcrireFacteur{#5}{Kb}\right]\\
+ \PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ka}\xintifboolexpr{\PfCRetiensSigneFacteurDeux==1}{\xintifboolexpr{\TestCASB<0}{}{+}\print{Kb}}{\xintifboolexpr{\TestCASB<0}{+}{}\print{Ko}}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}\\
+ \PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ke:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}%
+ \ifboolKV[Facto]{Finale}{\\\PfCFactoNE&=\useKV[Facto]{Resultat}}{\ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ke:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}}{}}%
+ \end{align*}
+ }
+ \fi
+}%
+
+\NewDocumentCommand\Factorisationold{sommm}{%
+ \directlua{dofile('poly_render_fix.lua')}
+ \useKVdefault[Facto]%
+ \setKV[Facto]{#2}%
+ \colorlet{Csymbole}{\useKV[Facto]{Couleur}}%
+ \IfBooleanTF{#1}{%
+ \xdef\PfCFactoSymbole{-}%
+ }{%
+ \xdef\PfCFactoSymbole{+}%
+ }%
+ \xdef\PfCFactoNE{\useKV[Facto]{NomExpression}}%
+ \ifx\bla#5\bla%
+ % Cas a^2-b^2
+ \begin{CAS}
+ % La variable
+ vars('\useKV[Facto]{Lettre}')
+ % Les facteurs
+ a=#3
+ b=#4
+ % Les dérivées pour savoir si ce sont des facteurs littéraux ou pas.
+ PfCDDn=DD(a,\useKV[Facto]{Lettre}):autosimplify()
+ PfCDDm=DD(b,\useKV[Facto]{Lettre}):autosimplify()
+ % opposé
+ o=topoly(-b)
+ %
+ c=(#3)^2
+ d=(#4)^2
+ e=(#3)-(#4)
+ f=(#3)+(#4)
+ \end{CAS}
+ \setsepchar{,}\ignoreemptyitems
+ \readlist\ListeElementDeriveeA{\fetch{PfCDDn}}
+ \readlist\ListeElementDeriveeB{\fetch{PfCDDm}}
+ \reademptyitems
+ \xdef\TestCASA{\ListeElementDeriveeA[1]}
+ \xdef\TestCASB{\ListeElementDeriveeB[1]}
+ \ifboolKV[Facto]{Details}{%Version monome mais pas deux nombres
+ \begin{align*}
+ \PfCFactoNE&=\print{c:expand()}-\print{d:expand()}\\
+ \PfCFactoNE&=\ifboolKV[Facto]{Aide}{\xintifboolexpr{\TestCASA>1}{(\,}{}{\underbrace{\Fdash{$\print{a}$}}_{A}}\xintifboolexpr{\TestCASA>1}{\,)}{}^{\,2}-\xintifboolexpr{\TestCASB>1}{(\,}{}{\underbrace{\Fdash{$\print{b}$}}_{B}}\xintifboolexpr{\TestCASB>1}{\,)}{}^{\,2}}{\print{c}-\print{d}}\\
+ \PfCFactoNE&=(\print{e})\times(\print{f})%
+ \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=(\print{e})(\print{f})}{}%
+ \end{align*}
+ }{%Avec au moins un des facteurs polynomes
+ Ici
+ \begin{align*}
+ \ifboolKV[Facto]{Aide}{\IfDecimal{#3}{\PfCFactoNE&=\print{c}-\print{d}}{\IfDecimal{#4}{\PfCFactoNE&=\print{c}-\print{d}}{\PfCFactoNE&={\underbrace{\Fdash{$(\print{a})$}}_{A}}^{\,2}-{\underbrace{\Fdash{$(\print{b})$}}_{B}}^{\,2}}}}{\PfCFactoNE&=\print{c}-\print{d}}\\
+ \IfDecimal{#3}{\PfCFactoNE\uppercase{&}=\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$\phantom{(}\print{a}\phantom{)}$}}_{A}}^{\,2}}{\print{a}^2}-\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$(\print{b})$}}_{B}}^{\,2}}{\print{d}}\\}{\IfDecimal{#4}{\PfCFactoNE\uppercase{&}=\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$(\print{a})$}}_{A}}^{\,2}}{\print{c}}-\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$\phantom{(}\print{b}\phantom{)}$}}_{B}}^{\,2}}{\print{b}^2}\\}{}}
+ \PfCFactoNE&=\left[\IfDecimal{#3}{\print{a}}{(\print{a})}-\IfDecimal{#4}{\print{b}}{(\print{b})}\right]\times\left[\IfDecimal{#3}{\print{a}}{(\print{a})}+\IfDecimal{#4}{\print{b}}{(\print{b})}\right]\\
+ \PfCFactoNE&=\left[\print{a}\xintifboolexpr{\TestCASB<0}{+}{}\print{o}\right]\times\left[\print{a}%
+ \xintifboolexpr{\TestCASB<0}{\StrChar{\print{b}}{1}[\PfCTestCaracUn]\StrCompare*{\PfCTestCaracUn}{-}[\PfCTestCaracRetour]\xintifboolexpr{\PfCTestCaracRetour==0}{}{+}}{+}\print{b}\right]\\
+ \PfCFactoNE&=\left[\print{e:expand():topolynomial()}\right]\times\left[\print{f:expand():topolynomial()}\right]%
+ \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\left[\print{e:expand():topolynomial()}\right]\left[\print{f:expand():topolynomial()}\right]}{}%
+ \end{align*}
+ }
+ \else%k*a+-k*b=k(a+-b)
+ \begin{CAS}
+ % La variable
+ vars('\useKV[Facto]{Lettre}'\ifboolKV[Facto]{VariableSup}{%
+ ,'\useKV[Facto]{AutreVariable}'
+ }{})
+ % Les facteurs
+ k=#3
+ a=#4
+ b=#5
+ ka=k*a
+ kb=k*b
+ % Les dérivées pour savoir si ce sont des facteurs littéraux ou pas.
+ PfCDDn=DD(a,\useKV[Facto]{Lettre}):autosimplify()
+ PfCDDm=DD(b,\useKV[Facto]{Lettre}):autosimplify()
+ % opposé
+ o=topoly(-b)
+ e=(#4)\PfCFactoSymbole(#5)
+ \end{CAS}
+ \setsepchar{,}\ignoreemptyitems
+ \readlist\ListeElementDeriveeA{\fetch{PfCDDn}}
+ \readlist\ListeElementDeriveeB{\fetch{PfCDDm}}
+ \reademptyitems
+ \xdef\TestCAS{\ListeElementDeriveeA[1]}
+ \xdef\TestCASB{\ListeElementDeriveeB[1]}
+ \ifboolKV[Facto]{Details}{%Version monome mais pas des nombres
+ \begin{align*}
+ \PfCFactoNE&=\print{ka:expand()}\PfCFactoSymbole\print{kb:expand()}\\
+ \PfCFactoNE&=\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{k}\phantom{)}$}}_{k}}{\print{k}}\times\xintifboolexpr{\TestCAS<0}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$(\print{a}$}}_{a}}{(\print{a})}}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{a}\phantom{)}$}}_{a}}{\print{a}}}\PfCFactoSymbole\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{k}\phantom{)}$}}_{k}}{\print{k}}\times\xintifboolexpr{\TestCASB<0}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$(\print{b}$}}_{b}}{(\print{b})}}{\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{$\phantom{(}\print{b}\phantom{)}$}}_{b}}{\print{b}}}\\
+ \PfCFactoNE&=\print{k}\times(\print{a\PfCFactoSymbole b})%
+ \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\print{k}(\print{a\PfCFactoSymbole b})}{}%
+ \end{align*}
+ }{%Avec au moins un des facteurs polynomes
+ \StrCompare{\PfCFactoSymbole}{-}[\PfCRetiensSigneFacteurDeux]
+ \begin{align*}
+ \ifboolKV[Facto]{Aide}{\PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{k}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#4}{a}\PfCFactoSymbole\PfCEcrireFacteur{#3}{k}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#5}{b}\\\setKV[Facto]{Aide}}{}%
+ \PfCFactoNE&=\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{\PfCEcrireFacteur{#3}{k}}}_{k}\times\underbrace{\Fdash{\PfCEcrireFacteur{#4}{a}}}_{a}\PfCFactoSymbole\underbrace{\Fdash{\PfCEcrireFacteur{#3}{k}}}_{k}\times\underbrace{\Fdash{\PfCEcrireFacteur{#5}{b}}}_{b}}{\PfCEcrireFacteur{#3}{k}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#4}{a}\PfCFactoSymbole\PfCEcrireFacteur{#3}{k}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#5}{b}}\\
+ \PfCFactoNE&=\PfCEcrireFacteur{#3}{k}\times\left[\PfCEcrireFacteur{#4}{a}\PfCFactoSymbole\PfCEcrireFacteur{#5}{b}\right]\\
+ \PfCFactoNE&=\PfCEcrireFacteur{#3}{k}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{a}\xintifboolexpr{\PfCRetiensSigneFacteurDeux==1}{\xintifboolexpr{\TestCASB<0}{}{+}\print{b}}{\xintifboolexpr{\TestCASB<0}{+}{}\print{o}}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}\\
+ \PfCFactoNE&=\PfCEcrireFacteur{#3}{k}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{e:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}%
+ \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\PfCEcrireFacteur{#3}{k}\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{e:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}}{}%
+ \end{align*}
+ }
+ \fi
+}%
+
+
+
diff --git a/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex b/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
new file mode 100644
index 0000000000..f9530be658
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
@@ -0,0 +1,104 @@
+\setKVdefault[JeuRgt]{Creation=false,Deno=12,Graines=false,Largeur=15pt,Hauteur=20pt,Negatif=false,Decimaux=false,Solution=false}
+\defKV[JeuRgt]{Graine=\setKV[JeuRgt]{Graines}}%
+
+\newlength{\PfCJeuRgtH}
+
+\NewDocumentCommand\DefiRangement{omm}{%
+ \useKVdefault[JeuRgt]%
+ \setKV[JeuRgt]{#1}%
+ \setlength{\PfCJeuRgtH}{\useKV[JeuRgt]{Hauteur}+\tabcolsep}%
+ \ifboolKV[JeuRgt]{Graines}{\PfCGraineAlea{\useKV[JeuRgt]{Graine}}}{}%
+ % On décompose la phrase
+ \xdef\PfCFooDepart{}%
+ \StrLen{#2}[\LongueurMot]%
+ \xintFor* ##1 in{\xintSeq{1}{\LongueurMot}}\do{%
+ \StrChar{#2}{##1}[\LettreMot]%
+ \xdef\PfCFooDepart{\PfCFooDepart\LettreMot/}%
+ }%
+ \setsepchar[*]{/}\reademptyitems%
+ \readlist*\ListeDesLettres{\PfCFooDepart}%
+% La liste des Lettres est \showitems\ListeDesLettres[]%
+ % Liste des nombres
+ \ifboolKV[JeuRgt]{Creation}{%
+ \xdef\ListeDesChoix{}%
+ \ifboolKV[JeuRgt]{Negatif}{%
+ \xdef\ListeDesChoix{-1}%
+ \xintFor* ##1 in{\xintSeq{2}{50}}\do{%
+ \xdef\ListeDesChoix{\ListeDesChoix,-##1}%
+ }%
+ \xintFor* ##1 in{\xintSeq{2}{50}}\do{%
+ \xdef\ListeDesChoix{\ListeDesChoix,##1}%
+ }%
+ }{%
+ \xintFor* ##1 in{\xintSeq{2}{100}}\do{%
+ \xdef\ListeDesChoix{\ListeDesChoix,##1}%
+ }%
+ }%
+ \MelangeListe{\ListeDesChoix}{\LongueurMot}%
+ % Liste des nombres \faa et maintenant rangée
+ \Rangement[Seul]{\faa}% \PfCListeRgtRecup
+ \setsepchar{,}%
+ % Liste des nombres
+ \readlist*\ListeDesNombres{\PfCListeRgtRecup}
+ }{%
+ \setsepchar{,}%
+ % Liste des nombres
+ \readlist*\ListeDesNombres{#3}
+ }%
+ % \\La liste des nombres est \showitems\ListeDesNombres[]
+ % On crée la liste des compteurs mélangés
+ \xdef\PfCFooListe{}%
+ \xintFor* ##1 in{\xintSeq{1}{\LongueurMot}}\do{%
+ \xdef\PfCFooListe{\PfCFooListe ##1,}
+ }%
+ % On mélange la liste des compteurs
+ \MelangeListe{\PfCFooListe}{\LongueurMot}
+ % On obtient la liste demandée
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\ListeCompteursMelanges{\faa}
+ \reademptyitems
+ % \\La liste des compteurs mélangés est \showitems\ListeCompteursMelanges[]
+ % Les associations
+ % \foreachitem\Lettre\in\ListeCompteursMelanges{%
+ % \xdef\Compteur{\ListeCompteursMelanges[\Lettrecnt]}
+ % \ListeDesLettres[\Compteur] -- \ListeDesNombres[\Compteur]\\
+ % }%
+ % \begin{center}
+ \begin{NiceTabular}{*{\LongueurMot}{m{\useKV[JeuRgt]{Largeur}}}}[vlines]%
+ \hline
+ \rule{0pt}{\PfCJeuRgtH}\xintFor* ##1 in{\xintSeq{1}{\LongueurMot}}\do{%
+ \xintifForFirst{}{&}\Block{}{\xdef\Compteur{\ListeCompteursMelanges[##1]}\ListeDesLettres[\Compteur]}%
+ }%
+ \\
+ \hline
+ \rule{0pt}{\PfCJeuRgtH}\xintFor* ##1 in{\xintSeq{1}{\LongueurMot}}\do{%
+ \xintifForFirst{}{&}\Block{}{%
+ \xdef\Compteur{\ListeCompteursMelanges[##1]}%
+ \ifboolKV[JeuRgt]{Creation}{%
+ \ifboolKV[JeuRgt]{Decimaux}{\num{\fpeval{\ListeDesNombres[\Compteur]/\useKV[JeuRgt]{Deno}}}}{\Simplification{\ListeDesNombres[\Compteur]}{\useKV[JeuRgt]{Deno}}}}{%
+ \ListeDesNombres[\Compteur]%
+ }%
+ }
+ }%
+ \\
+ \ifboolKV[JeuRgt]{Solution}{%
+ \hline
+ \rule{0pt}{\PfCJeuRgtH}\xintFor* ##1 in{\xintSeq{1}{\LongueurMot}}\do{%
+ \xintifForFirst{}{&}\Block{}{\ListeDesLettres[##1]}%
+ }%
+ \\
+ \hline
+ \rule{0pt}{\PfCJeuRgtH}\xintFor* ##1 in{\xintSeq{1}{\LongueurMot}}\do{%
+ \xintifForFirst{}{&}\Block{}{%
+ \ifboolKV[JeuRgt]{Creation}{%
+ \ifboolKV[JeuRgt]{Decimaux}{\num{\fpeval{\ListeDesNombres[##1]/\useKV[JeuRgt]{Deno}}}}{\Simplification{\ListeDesNombres[##1]}{\useKV[JeuRgt]{Deno}}}}{%
+ \ListeDesNombres[##1]%
+ }%
+ }%
+ }%
+ \\
+ }{}%
+ \hline
+ \end{NiceTabular}
+ % \end{center}
+} \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
index bb3305deb1..d37ac5e042 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
@@ -1,7 +1,3 @@
-
-
-
-
%%%
% Fonction
%%%
@@ -574,7 +570,7 @@
\hline%
\useKV[ClesFonction]{Variable}\xintFor* ##1 in {\xintSeq {1}{\ListeFonctionlen}}\do{&\num{\ListeFonction[##1]}}\\
\hline%
- \useKV[ClesFonction]{Nom}(\useKV[ClesFonction]{Variable})\xintFor* ##1 in {\xintSeq {1}{\ListeFonctionlen}}\do{& \StrSubstitute{\useKV[ClesFonction]{Calcul}}{\useKV[ClesFonction]{Variable}}{(\ListeFonction[##1])}[\tempab]\num{\fpeval{\tempab}}}%
+ \useKV[ClesFonction]{Nom}(\useKV[ClesFonction]{Variable})\xintFor* ##1 in {\xintSeq {1}{\ListeFonctionlen}}\do{&\ifboolKV[ClesFonction]{Vide}{}{\StrSubstitute{\useKV[ClesFonction]{Calcul}}{\useKV[ClesFonction]{Variable}}{(\ListeFonction[##1])}[\tempab]\num{\fpeval{\tempab}}}}%
\\\hline
\end{array}%
\]%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
index ae8dda031e..45a20b80c7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
@@ -270,6 +270,48 @@
\newcommand\RedactionCalculsReciPythagore{}%
\newcommand\RedactionConclusionReciPythagore{}%
+\NewDocumentCommand\CalculsPythagore{o m m m m}{
+ \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4%
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
+ \begin{align*}
+ \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
+ \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opcopy{\useKV[ClesPythagore]{ValeurA}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomC&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomC&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }
+ \end{align*}
+ }{%\else
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}%
+ \ifboolKV[ClesPythagore]{Soustraction}{%
+ \begin{align*}
+ \NomA\NomB^2&=\NomA\NomC^2-\NomB\NomC^2\\
+ \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}-\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }
+ \end{align*}
+ }{%
+ \begin{align*}
+ \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
+ \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}%
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }
+ \end{align*}
+ }%
+ }%\fi%
+}
+
% \newcommand\Pythagore[5][]{%
\NewDocumentCommand\Pythagore{o m m m m}{%
% #1 Param\`etres sous forme de cl\'es
@@ -277,8 +319,8 @@
% #3 Premi\`ere longueur
% #4 Deuxi\`eme longueur
% #5 Troisi\`eme longueur (\'eventuellement vide)
- \useKVdefault[ClesPythagore]%obligatoire car la macro n'est pas dans un groupe.
- \setKV[ClesPythagore]{#1}%On lit les arguments optionnels
+ \useKVdefault[ClesPythagore]%
+ \setKV[ClesPythagore]{#1}%
\DeclareSIUnit{\PfCPythaUnit}{\useKV[ClesPythagore]{Unite}}%
\ifboolKV[ClesPythagore]{Reciproque}{%
% On retient les noms des sommets
@@ -407,14 +449,14 @@
\xdef\NomSommetC{\NomC}%
% On trace une figure ou pas ?
\ifboolKV[ClesPythagore]{FigureSeule}{%
- \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4%
+ \xintifboolexpr{#3<#4 || #3==#4}{%
\xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
}{%
\xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}%
}%
\MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}
}{%
- \ifboolKV[ClesPythagore]{Figure}{%Utilisation obligatoire de l'option --shell-escape de la compilation
+ \ifboolKV[ClesPythagore]{Figure}{%
\begin{multicols}{2}%
{\em La figure est donn\'ee \`a titre indicatif.}%
\[\MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}\]
@@ -430,33 +472,8 @@
\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
}%
}
- \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4%
- \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
- \begin{align*}
- \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
- \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opcopy{\useKV[ClesPythagore]{ValeurA}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
- \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
- \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
- \ifboolKV[ClesPythagore]{AvantRacine}{}{%
- \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
- \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomC&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomC&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
- }%
- \end{align*}
- }{%\else%
- \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}%
- \begin{align*}
- \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
- \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
- \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
- \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
- \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
- \ifboolKV[ClesPythagore]{AvantRacine}{}{%
- \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
- \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
- }%
- \end{align*}
- }%\fi%
- }
+ \CalculsPythagore[#1]{#2}{#3}{#4}{}
+ }%
\end{multicols}
}{%
% On d\'emarre la r\'esolution
@@ -469,45 +486,7 @@
}{%
\ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
}}%
- \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4%
- \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
- \begin{align*}
- \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
- \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opcopy{\useKV[ClesPythagore]{ValeurA}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
- \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
- \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
- \ifboolKV[ClesPythagore]{AvantRacine}{}{%
- \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
- \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomC&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomC&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
- }
- \end{align*}
- }{%\else
- \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}%
- \ifboolKV[ClesPythagore]{Soustraction}{%
- \begin{align*}
- \NomA\NomB^2&=\NomA\NomC^2-\NomB\NomC^2\\
- \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}-\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
- \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
- \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
- \ifboolKV[ClesPythagore]{AvantRacine}{}{%
- \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
- \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
- }
- \end{align*}
- }{%
- \begin{align*}
- \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
- \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
- \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
- \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
- \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
- \ifboolKV[ClesPythagore]{AvantRacine}{}{%
- \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}%
- \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
- }
- \end{align*}
- }%
- }%\fi%
+ \CalculsPythagore[#1]{#2}{#3}{#4}{}
}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex b/macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex
new file mode 100644
index 0000000000..c416595207
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex
@@ -0,0 +1,516 @@
+%%%
+% Le th\'eor\`eme de Pythagore
+%%%
+\setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Echelle=1cm,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,ValeurA=0,ValeurB=0,ValeurC=0,Perso=false,AllPerso=false,SansMots=false}
+
+% On d\'efinit les figures \`a utiliser
+\def\MPFigurePytha#1#2#3#4#5#6{%
+ % #1 Premier sommet
+ % #2 Sommet de l'angle droit
+ % #3 troisi\`eme sommet
+ % #4 1ere longueur
+ % #5 2eme longueur
+ % #6 angle de rotation de la figure
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ u:=\useKV[ClesPythagore]{Echelle};
+ pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit
+ O=u*(2.5,2.5);
+ path cc;
+ cc=(fullcircle scaled 4u) shifted O;
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=point(0.9*length cc) of cc;
+ B=A rotatedabout(O,-120);
+ C=2[A,O];
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#6);
+ B:=B rotatedabout(O,#6);
+ C:=C rotatedabout(O,#6);
+ % On d\'efinit l'angle droit
+ D-B=7*unitvector(C-B);
+ F-B=7*unitvector(A-B);
+ E-D=F-B;
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ draw D--E--F;
+ numeric decalage;
+ decalage=3mm;
+ if (#4<#5) or (#4=#5) :
+ if ypart(B)>ypart(O) :
+ label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B)));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B)));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi
+ else:
+ if ypart(B)>ypart(O) :
+ label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C)
+ rotated 90));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ fi;
+ label(btex #3 etex,1.2[O,A]);
+ label(btex #2 etex,1.2[O,B]);
+ label(btex #1 etex,1.2[O,C]);
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={u:=\useKV[ClesPythagore]{Echelle};}]
+ pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit
+ O=u*(2.5,2.5);
+ path cc;
+ cc=(fullcircle scaled 4u) shifted O;
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=point(0.9*length cc) of cc;
+ B=A rotatedabout(O,-120);
+ C=2[A,O];
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#6);
+ B:=B rotatedabout(O,#6);
+ C:=C rotatedabout(O,#6);
+ % On d\'efinit l'angle droit
+ D-B=7*unitvector(C-B);
+ F-B=7*unitvector(A-B);
+ E-D=F-B;
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ draw D--E--F;
+ decalage=3mm;
+ if (#4<#5) or (#4=#5) :
+ if ypart(B)>ypart(O) :
+ label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B)));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#4} etex,1/2[C,B]-decalage*(unitvector(A-B)));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi
+ else:
+ if ypart(B)>ypart(O) :
+ label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C)
+ rotated 90));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ fi;
+ fi;
+ label(btex #3 etex,1.2[O,A]);
+ label(btex #2 etex,1.2[O,B]);
+ label(btex #1 etex,1.2[O,C]);
+ \end{mpost}
+ \fi
+}
+
+\def\MPFigureReciPytha#1#2#3#4#5#6#7{%
+ % #1 Premier sommet
+ % #2 Sommet de l'angle droit
+ % #3 troisi\`eme sommet
+ % #4 1ere longueur
+ % #5 2eme longueur
+ % #6 3eme longueur
+ % #7 angle de rotation de la figure
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ u:=\useKV[ClesPythagore]{Echelle};
+ pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit
+ O=u*(2.5,2.5);
+ path cc;
+ cc=(fullcircle scaled 4u) shifted O;
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=point(0.8*length cc) of cc;
+ B=A rotatedabout(O,-100);
+ C=2[A,O];
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#7);
+ B:=B rotatedabout(O,#7);
+ C:=C rotatedabout(O,#7);
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ decalage=3mm;
+ if ypart(B)>ypart(O) :
+ label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90));
+ label(btex \num{#5} etex,1/2[C,B]-decalage*(unitvector(C-B)));
+ label(btex \num{#6} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C) rotated 90));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ label(btex \num{#6} etex,1/2[C,B]-decalage*(unitvector(A-B)));
+ fi;
+ label(btex #1 etex,1.2[O,A]);
+ label(btex #2 etex,1.2[O,B]);
+ label(btex #3 etex,1.2[O,C]);
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={u:=\useKV[ClesPythagore]{Echelle};}]
+ pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit
+ O=u*(2.5,2.5);
+ path cc;
+ cc=(fullcircle scaled 4u) shifted O;
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=point(0.8*length cc) of cc;
+ B=A rotatedabout(O,-100);
+ C=2[A,O];
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#7);
+ B:=B rotatedabout(O,#7);
+ C:=C rotatedabout(O,#7);
+ draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
+ draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ decalage=3mm;
+ if ypart(B)>ypart(O) :
+ label(LATEX("\num{"&decimal(#4)&"}") rotated angle(C-A),1/2[C,A]-decalage*(unitvector(C-A) rotated 90));
+ label(LATEX("\num{"&decimal(#5)&"}") rotated(angle(C-B)),1/2[C,B]-decalage*(unitvector(C-B)));
+ label(LATEX("\num{"&decimal(#6)&"}") rotated(angle(B-A)),1/2[A,B]-decalage*(unitvector(C-B)));
+ else:
+ label(LATEX("\num{"&decimal(#4)&"}") rotated angle(A-C),1/2[A,C]+decalage*(unitvector(A-C) rotated 90));
+ label(LATEX("\num{"&decimal(#5)&"}") rotated(angle(A-B)),1/2[A,B]-decalage*(unitvector(C-B)));
+ label(LATEX("\num{"&decimal(#6)&"}") rotated angle(C-B),1/2[C,B]-decalage*(unitvector(A-B)));
+ fi;
+ label(btex #1 etex,1.2[O,A]);
+ label(btex #2 etex,1.2[O,B]);
+ label(btex #3 etex,1.2[O,C]);
+ \end{mpost}
+ \fi
+}
+
+\def\MPFigurePythaSansMots#1#2#3#4#5#6{%
+ % #1 Premier sommet
+ % #2 Sommet de l'angle droit
+ % #3 troisi\`eme sommet
+ % #4 1ere longueur
+ % #5 2eme longueur
+ % #6 angle de rotation de la figure
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ u:=\useKV[ClesPythagore]{Echelle};
+ pair A,B,C,O,D,E,F,L[],M[],N[];%B est le sommet de l'angle droit
+ O=u*(2.5,2.5);
+ path cc;
+ cc=(fullcircle scaled 4u) shifted O;
+ % On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
+ A=point(0.9*length cc) of cc;
+ B=A rotatedabout(O,-120);
+ C=2[A,O];
+ % On tourne pour \'eventuellement moins de lassitude :)
+ A:=A rotatedabout(O,#6);
+ B:=B rotatedabout(O,#6);
+ C:=C rotatedabout(O,#6);
+ % On d\'efinit l'angle droit
+ D-B=7*unitvector(C-B);
+ F-B=7*unitvector(A-B);
+ E-D=F-B;
+ trace polygone(A,B,C);
+ draw D--E--F;
+ L1=rotation(B,A,90);
+ L2-L1=B-A;
+ trace chemin(A,L1,L2,B);
+ M1=rotation(C,B,90);
+ M2-M1=C-B;
+ trace chemin(B,M1,M2,C);
+ N1=rotation(A,C,90);
+ N2-N1=A-C;
+ trace chemin(C,N1,N2,A);
+ numeric decalage;
+ decalage=3mm;
+ if (#4<#5) or (#4=#5) :
+ if ypart(B)>ypart(O) :
+ label(btex \num{#4} etex,1/2[C,B]+decalage*(unitvector(A-B)));
+ label(btex \num{#5} etex,1/2[A,B]+decalage*(unitvector(C-B)));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(B,M2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}+\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4+#5*#5}}$\\\end{tabular}"),iso(C,N2));
+ else:
+ label(btex \num{#4} etex,1/2[C,B]+decalage*(unitvector(A-B)));
+ label(btex \num{#5} etex,1/2[A,B]+decalage*(unitvector(C-B)));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(B,M2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}+\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4+#5*#5}}$\\\end{tabular}"),iso(C,N2));
+ drawarrow 2/10[iso(A,L2),iso(C,N2)]--8/10[iso(A,L2),iso(C,N2)];
+ drawarrow 2/10[iso(B,M2),iso(C,N2)]--8/10[iso(B,M2),iso(C,N2)];
+ fi
+ else:
+ if ypart(B)>ypart(O) :
+ label(btex \num{#4} etex,1/2[C,A]-decalage*(unitvector(C-A) rotated 90));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(C,N2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}-\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4-#5*#5}}$\\\end{tabular}"),iso(B,M2));
+ drawarrow 2/10[iso(A,L2),iso(B,M2)]--8/10[iso(A,L2),iso(B,M2)];
+ drawarrow 2/10[iso(C,N2),iso(B,M2)]--8/10[iso(C,N2),iso(B,M2)];
+ else:
+ label(btex \num{#4} etex,1/2[A,C]+decalage*(unitvector(A-C) rotated 90));
+ label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B)));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#5}\times\num{#5}$\\$\num{\fpeval{#5*#5}}$\\\end{tabular}"),iso(A,L2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{#4}\times\num{#4}$\\$\num{\fpeval{#4*#4}}$\\\end{tabular}"),iso(C,N2));
+ label(TEX("\begin{tabular}{c}Aire\\$\num{\fpeval{#4*#4}}-\num{\fpeval{#5*#5}}$\\$\num{\fpeval{#4*#4-#5*#5}}$\\\end{tabular}"),iso(B,M2));
+ drawarrow 2/10[iso(A,L2),iso(B,M2)]--8/10[iso(A,L2),iso(B,M2)];
+ drawarrow 2/10[iso(C,N2),iso(B,M2)]--8/10[iso(C,N2),iso(B,M2)];
+ fi;
+ fi;
+ label(btex #3 etex,1.2[O,A]);
+ label(btex #2 etex,1.2[O,B]);
+ label(btex #1 etex,1.2[O,C]);
+ \end{mplibcode}
+ \fi
+}
+
+\newcommand\RedactionPythagore{}%
+\newcommand\RedactionReciPythagore{}%
+\newcommand\RedactionCalculsPythagore{}%
+\newcommand\RedactionCalculsReciPythagore{}%
+\newcommand\RedactionConclusionReciPythagore{}%
+
+% \newcommand\Pythagore[5][]{%
+\NewDocumentCommand\Pythagore{o m m m m}{%
+ % #1 Param\`etres sous forme de cl\'es
+ % #2 Nom "complet" du triangle : ABC par exemple
+ % #3 Premi\`ere longueur
+ % #4 Deuxi\`eme longueur
+ % #5 Troisi\`eme longueur (\'eventuellement vide)
+ \useKVdefault[ClesPythagore]%
+ \setKV[ClesPythagore]{#1}%
+ \DeclareSIUnit{\PfCPythaUnit}{\useKV[ClesPythagore]{Unite}}%
+ \ifboolKV[ClesPythagore]{Reciproque}{%
+ % On retient les noms des sommets
+ \StrMid{#2}{1}{1}[\NomA]%
+ \StrMid{#2}{2}{2}[\NomB]%
+ \StrMid{#2}{3}{3}[\NomC]%
+ \xdef\NomTriangle{\NomA\NomB\NomC}%
+ % on stocke les valeurs donn\'ees
+ \opcopy{#3}{A1}%
+ \opcopy{#4}{A2}%
+ \opcopy{#5}{A3}%
+ \xdef\GrandCote{#3}%
+ \xdef\PetitCote{#4}%
+ \xdef\MoyenCote{#5}%
+ % On trace une figure ou pas ?
+ \ifboolKV[ClesPythagore]{FigureSeule}{%
+ \MPFigureReciPytha{\NomA}{\NomB}{\NomC}{#3}{#4}{#5}{\useKV[ClesPythagore]{Angle}}%
+ }{%
+ \ifboolKV[ClesPythagore]{Figure}{%Utilisation obligatoire de l'option --shell-escape de la compilation
+ \begin{multicols}{2}
+ {\em La figure est donn\'ee \`a titre indicatif.}%
+ \[\MPFigureReciPytha{\NomA}{\NomB}{\NomC}{#3}{#4}{#5}{\useKV[ClesPythagore]{Angle}}\]%
+ \par\columnbreak\par%
+ \ifboolKV[ClesPythagore]{AllPerso}{%
+ \RedactionReciPythagore%
+ \RedactionCalculsReciPythagore%
+ \RedactionConclusionReciPythagore%
+ }{%
+ % on r\'edige
+ \ifboolKV[ClesPythagore]{Perso}{%
+ \RedactionReciPythagore%
+ }{%
+ Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.%
+ }
+ \ifboolKV[ClesPythagore]{ReciColonnes}{%
+ \[
+ \begin{array}{cccc|cccc}
+ &&\NomA\NomC^2&&&\NomA\NomB^2&+&\NomB\NomC^2\\
+ &&\opexport{A1}{\Aun}\num{\Aun}^2&&&\opexport{A2}{\Adeux}\num{\Adeux}^2&+&\opexport{A3}{\Atrois}\num{\Atrois}^2\\
+ &&\opmul*{A1}{A1}{a1}&&&\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}&+&\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}\\
+ &&\opexport{a1}{\Aun}\num{\Aun}&&&\multicolumn{3}{c}{\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}}\\
+ \end{array}
+ \]
+ }{%
+ \[\left.
+ \begin{array}{l}
+ \NomA\NomC^2=\opexport{A1}{\Aun}\num{\Aun}^2=\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}\\
+ \\
+ \NomA\NomB^2+\NomB\NomC^2=\opexport{A2}{\Adeux}\num{\Adeux}^2+\opexport{A3}{\Atrois}\num{\Atrois}^2=\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}+\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}=\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}\\
+ \end{array}
+ \right\}\opcmp{a1}{a4}\ifopeq\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2\fi\opcmp{a1}{a4}\ifopneq\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2\fi
+ \]
+ }
+ \ifboolKV[ClesPythagore]{Egalite}{%
+ \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
+ \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore n'est pas v\'erifi\'ee. Donc le triangle $#2$ n'est pas rectangle.\fi%
+ }{%
+ \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors le triangle $#2$ est rectangle
+ en $\NomB$ d'apr\`es la r\'eciproque du th\'eor\`eme de Pythagore.\fi%
+ \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors le
+ triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'apr\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi%
+ }
+ }
+ \end{multicols}
+ }{%
+ \ifboolKV[ClesPythagore]{AllPerso}{%
+ \RedactionReciPythagore%
+ \RedactionCalculsReciPythagore%
+ \RedactionConclusionReciPythagore%
+ }{%
+ \ifboolKV[ClesPythagore]{Perso}{\RedactionReciPythagore}{%
+ Dans le triangle $#2$, $[\NomA\NomC]$ est le plus grand c\^ot\'e.%
+ }
+ \ifboolKV[ClesPythagore]{ReciColonnes}{%
+ \[
+ \begin{array}{cccc|cccc}
+ &&\NomA\NomC^2&&&\NomA\NomB^2&+&\NomB\NomC^2\\
+ &&\opexport{A1}{\Aun}\num{\Aun}^2&&&\opexport{A2}{\Adeux}\num{\Adeux}^2&+&\opexport{A3}{\Atrois}\num{\Atrois}^2\\
+ &&\opmul*{A1}{A1}{a1}&&&\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}&+&\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}\\
+ &&\opexport{a1}{\Aun}\num{\Aun}&&&\multicolumn{3}{c}{\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}}\\
+ \end{array}
+ \]
+ }{%
+ \[\left.
+ \begin{array}{l}
+ \NomA\NomC^2=\opexport{A1}{\Aun}\num{\Aun}^2=\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}\\
+ \\
+ \NomA\NomB^2+\NomB\NomC^2=\opexport{A2}{\Adeux}\num{\Adeux}^2+\opexport{A3}{\Atrois}\num{\Atrois}^2=\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}+\opmul*{A3}{A3}{a3}\opexport{a3}{\Atrois}\num{\Atrois}=\opadd*{a2}{a3}{a4}\opexport{a4}{\Aquatre}\num{\Aquatre}\\
+ \end{array}
+ \right\}\opcmp{a1}{a4}\ifopeq\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2\fi\opcmp{a1}{a4}\ifopneq\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2\fi
+ \]
+ }%
+ \ifboolKV[ClesPythagore]{Egalite}{%
+ \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee. Donc le triangle $#2$ est rectangle en $\NomB$.\fi%
+ \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors l'\'egalit\'e de Pythagore n'est pas v\'erifi\'ee. Donc le triangle $#2$ n'est pas rectangle.\fi%
+ }{%
+ \opcmp{a1}{a4}\ifopeq Comme $\NomA\NomC^2=\NomA\NomB^2+\NomB\NomC^2$, alors le triangle $#2$ est rectangle
+ en $\NomB$ d'apr\`es la r\'eciproque du th\'eor\`eme de Pythagore.\fi%
+ \opcmp{a1}{a4}\ifopneq Comme $\NomA\NomC^2\not=\NomA\NomB^2+\NomB\NomC^2$, alors le
+ triangle $#2$ n'est pas rectangle\ifboolKV[ClesPythagore]{Faible}{.}{ d'apr\`es la contrapos\'ee du th\'eor\`eme de Pythagore.}\fi%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ % [xlop] param\`etres de calcul
+ \opcopy{#3}{A1}%
+ \opcopy{#4}{A2}%
+ \opcopy{\useKV[ClesPythagore]{Precision}}{pres}%
+ \xintifboolexpr{#3<#4 || #3==#4}{
+ \xdef\PetitCote{#3}%
+ \xdef\MoyenCote{#4}%
+ \xdef\GrandCote{}%
+ }{%
+ \xdef\GrandCote{#3}%
+ \xdef\MoyenCote{#4}%
+ \xdef\PetitCote{}% Pour la personnalisation
+ }
+ % On retient les noms des sommets
+ \StrMid{#2}{1}{1}[\NomA]%
+ \StrMid{#2}{2}{2}[\NomB]%
+ \StrMid{#2}{3}{3}[\NomC]%
+ \xdef\NomTriangle{\NomA\NomB\NomC}%
+ \xdef\NomAngleDroit{\NomB}%
+ \xdef\NomSommetA{\NomA}%
+ \xdef\NomSommetC{\NomC}%
+ % On trace une figure ou pas ?
+ \ifboolKV[ClesPythagore]{FigureSeule}{%
+ \xintifboolexpr{#3<#4 || #3==#4}{%
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
+ }{%
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}%
+ }%
+ \MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}
+ }{%
+ \ifboolKV[ClesPythagore]{Figure}{%
+ \begin{multicols}{2}%
+ {\em La figure est donn\'ee \`a titre indicatif.}%
+ \[\MPFigurePytha{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}\]
+ \par\columnbreak\par%
+ % On d\'emarre la r\'esolution
+ \ifboolKV[ClesPythagore]{AllPerso}{%
+ \RedactionPythagore%
+ \RedactionCalculsPythagore%
+ }{%
+ \ifboolKV[ClesPythagore]{Perso}{%
+ \RedactionCalculsPythagore%
+ }{%
+ \ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
+ }%
+ }
+ \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4%
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
+ \begin{align*}
+ \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
+ \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opcopy{\useKV[ClesPythagore]{ValeurA}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomC&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomC&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }%
+ \end{align*}
+ }{%\else%
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}%
+ \begin{align*}
+ \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
+ \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }%
+ \end{align*}
+ }%\fi%
+ }
+ \end{multicols}
+ }{%
+ % On d\'emarre la r\'esolution
+ \ifboolKV[ClesPythagore]{SansMots}{%
+ \MPFigurePythaSansMots{\NomA}{\NomB}{\NomC}{#3}{#4}{\useKV[ClesPythagore]{Angle}}%
+ }{%
+ \ifboolKV[ClesPythagore]{AllPerso}{%
+ \RedactionPythagore%
+ \RedactionCalculsPythagore%
+ }{%
+ \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :%
+ }}%
+ \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4%
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}%
+ \begin{align*}
+ \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
+ \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opcopy{\useKV[ClesPythagore]{ValeurA}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomC&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomC&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }
+ \end{align*}
+ }{%\else
+ \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2-#4^2),\useKV[ClesPythagore]{Precision})}}%
+ \ifboolKV[ClesPythagore]{Soustraction}{%
+ \begin{align*}
+ \NomA\NomB^2&=\NomA\NomC^2-\NomB\NomC^2\\
+ \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}-\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }
+ \end{align*}
+ }{%
+ \begin{align*}
+ \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\
+ \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opexport{A1}{\Aun}\num{\Aun}^2}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opcopy{\useKV[ClesPythagore]{ValeurB}}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}{\opexport{A2}{\Adeux}\num{\Adeux}^2}\\
+ \ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}&=\NomA\NomB^2+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\ifboolKV[ClesPythagore]{EnchaineC}{\opcopy{\useKV[ClesPythagore]{ValeurC}}{a1}\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}-\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
+ \NomA\NomB^2&=\opsub*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
+ \ifboolKV[ClesPythagore]{AvantRacine}{}{%
+ \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomB&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}%
+ \ifboolKV[ClesPythagore]{Racine}{}{\\\ifboolKV[ClesPythagore]{Exact}{\NomA\NomB&=\opsqrt[maxdivstep=3]{a3}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}{\NomA\NomB&\approx\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}}%\\
+ }
+ \end{align*}
+ }%
+ }%\fi%
+ }%
+ }%
+ }%
+ }%
+ }%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex b/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
index f44525f170..436511bcf5 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
@@ -1,7 +1,7 @@
%%%
% Rangement des nombres
%%%
-\setKVdefault[ClesRgt]{Croissant,Decroissant=false,Strict,Fraction=false,Details=false}
+\setKVdefault[ClesRgt]{Croissant,Decroissant=false,Strict,Fraction=false,Details=false,Seul=false}
\dtlexpandnewvalue%
\DTLgnewdb{mtnumedb}%
@@ -53,7 +53,12 @@
\itemtomacro\ListeRgt[\xcnt]\y%
\DTLnewdbentry{mtRGTdb}{numeric}{\y}%
}%
-% %
+% %
+ \ifboolKV[ClesRgt]{Seul}{%
+ \xdef\PfCListeRgtRecup{}%
+ \dtlsort{numeric}{mtRGTdb}{\dtlicompare}%
+ \DTLforeach{mtRGTdb}{\numeroDonnee=numeric}{\xdef\PfCListeRgtRecup{\PfCListeRgtRecup \numeroDonnee\DTLiflastrow{}{,}}}%
+ }{%
\ifboolKV[ClesRgt]{Decroissant}{%
% On trie la liste
\dtlsort{numeric=descending}{mtRGTdb}{\dtlicompare}%
@@ -64,4 +69,5 @@
\ensuremath{\DTLforeach{mtRGTdb}{\numeroDonnee=numeric}{\num{\numeroDonnee}\DTLiflastrow{}{\ifboolKV[ClesRgt]{Strict}{<}{\leqslant}}}}%
}%
}%
+}%
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCReperage.tex b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
index 347ed19498..32e1fac093 100644
--- a/macros/latex/contrib/profcollege/latex/PfCReperage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
@@ -1,7 +1,7 @@
%%%
% Reperage
%%%
-\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,Celsius,Kelvin=false,Farenheit=false,ValeurMin=-4000,ValeurMax=4000,Etages=4,Code=false}
+\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,Celsius,Kelvin=false,Farenheit=false,ValeurMin=-4000,ValeurMax=4000,Etages=4,Code=false,Globe=false,Rho=1500,Phi=22,Theta=10,CouleurE=orange,CouleurG=green,Axes=false,TypeProj="persp"}
\defKV[ClesReperage]{Traces=\setKV[ClesReperage]{Code}}
% ValeurOrigine permet de faire des morceaux de demi-droite gradu\'ee en passant par droite :)
@@ -20,27 +20,214 @@
% Pour construire le rep\`ere de l'espace
\def\buildespace{%
\toklistepointespace{}%
- \ifboolKV[ClesReperage]{Sphere}{%
+ \ifboolKV[ClesReperage]{Globe}{%
\foreachitem\compteur\in\ListePointEspace{\expandafter\Updatetoksrepere\compteur\nil}%
- \[\MPEspaceSphere{\the\toklistepointrepere}{\useKV[ClesReperage]{EchelleEspace}}\]
+ \[\MPGlobe{\the\toklistepointrepere}{\useKV[ClesReperage]{EchelleEspace}}\]
}{%
- \foreachitem\compteur\in\ListePointEspace{\expandafter\Updatetoksespace\compteur\nil}%
- \ifboolKV[ClesReperage]{AffichageNom}{%
- \ifboolKV[ClesReperage]{AffichageCoord}{%
- \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{3}{\useKV[ClesReperage]{EchelleEspace}}\]%
- }{%
- \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{2}{\useKV[ClesReperage]{EchelleEspace}}\]%
- }%
+ \ifboolKV[ClesReperage]{Sphere}{%
+ \foreachitem\compteur\in\ListePointEspace{\expandafter\Updatetoksrepere\compteur\nil}%
+ \[\MPEspaceSphere{\the\toklistepointrepere}{\useKV[ClesReperage]{EchelleEspace}}\]
}{%
- \ifboolKV[ClesReperage]{AffichageCoord}{%
- \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{1}{\useKV[ClesReperage]{EchelleEspace}}\]%
+ \foreachitem\compteur\in\ListePointEspace{\expandafter\Updatetoksespace\compteur\nil}%
+ \ifboolKV[ClesReperage]{AffichageNom}{%
+ \ifboolKV[ClesReperage]{AffichageCoord}{%
+ \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{3}{\useKV[ClesReperage]{EchelleEspace}}\]%
+ }{%
+ \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{2}{\useKV[ClesReperage]{EchelleEspace}}\]%
+ }%
}{%
- \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{0}{\useKV[ClesReperage]{EchelleEspace}}\]%
+ \ifboolKV[ClesReperage]{AffichageCoord}{%
+ \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{1}{\useKV[ClesReperage]{EchelleEspace}}\]%
+ }{%
+ \[\MPEspacePave{\useKV[ClesReperage]{Unitex}}{\useKV[ClesReperage]{Pasx}}{\useKV[ClesReperage]{Unitey}}{\useKV[ClesReperage]{Pasy}}{\useKV[ClesReperage]{Unitez}}{\useKV[ClesReperage]{Pasz}}{\the\toklistepointespace}{0}{\useKV[ClesReperage]{EchelleEspace}}\]%
+ }%
}%
}%
}%
}%
+\def\MPGlobe#1#2{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ input PfCSolid;
+ % Pour convertir les (Long,lat) données en degrés en (Long,lat) données en radians
+ vardef ConvDeg(expr fa,fl)=
+ Famille((fa*pi/180),(fl*pi/180))
+ enddef;
+ %Initialisation
+ PfCRho=\useKV[ClesReperage]{Rho};
+ PfCPhi=\useKV[ClesReperage]{Phi};
+ PfCTheta=\useKV[ClesReperage]{Theta};
+ color CouleurE,CouleurG;
+ CouleurE=\useKV[ClesReperage]{CouleurE};
+ CouleurG=\useKV[ClesReperage]{CouleurG};
+ boolean AffichageNom,Axes;
+ AffichageNom=\useKV[ClesReperage]{AffichageNom};
+ Axes=\useKV[ClesReperage]{Axes};
+ Initialisation(PfCRho,PfCTheta,PfCPhi,#2);
+ eclairage:=false;
+ nb:=18;%
+ subh:=36;%
+ %angx:=-23.5;%anglerotationx;
+ TR:=(0,0,0);
+ Ferme2:=true;
+ typerepre:=\useKV[ClesReperage]{TypeProj};
+ if typerepre="persp":
+ ObjetSphereNew2("R=2");
+ ObjetEquateur3("R=2");
+ ObjetGreenwich4("R=2");
+ elseif typerepre="proj":
+ ObjetSpherePfC2("R=20");
+ ObjetEquateur3("R=20");
+ ObjetGreenwich4("R=20");
+ else:
+ ObjetSphereCabinet2("R=5");
+ ObjetEquateur3("R=5");
+ ObjetGreenwich4("R=5");
+ fi;
+ AffichagePfC2;
+% AffichageObjet2;
+ if \useKV[ClesReperage]{Axes}:
+ drawoptions(withpen pencircle scaled 1.05 withcolor CouleurE);
+ AffichageEquateur3;
+ drawoptions(withpen pencircle scaled 1 withcolor CouleurG);
+ AffichageGreenwich4;
+ drawoptions();
+ fi;
+ % Label
+% labeloffset:=labeloffset*2;
+% label.urt(btex Nord etex,Projette(Image(ConvDeg(90,0))));%(0,0,2))));
+% label.llft(btex Sud etex,Projette(Image(ConvDeg(-90,0))));%(0,0,-2))));
+% label.lft(btex Ouest etex,Projette(Image(ConvDeg(0,-90))));%(0,-2,0))));
+% label.rt(btex Est etex,Projette(Image(ConvDeg(0,90))));%(0,2,0))));
+% labeloffset:=labeloffset/2;
+ dotlabel.llft(btex \tiny\ang{0} etex,Projette(Image(ConvDeg(0,0))));
+ dotlabel.llft(btex \tiny\ang{10} etex,Projette(Image(ConvDeg(10,0))));
+ dotlabel.llft(btex \tiny\ang{10} etex,Projette(Image(ConvDeg(0,10))));
+ color M[],N[];
+ vardef toto(text t)=
+ n:=1;
+ for p_=t:
+ if (n mod 3)=1:
+ k:=p_;
+ fi;
+ if (n mod 3)=2:
+ l:=p_;
+ fi;
+ if (n mod 3)=0:
+ M[n]=Image(ConvDeg(l,k));
+ if l>0:
+ if k>0:
+ N[n]=Image(ConvDeg(l+3,k+3));
+ else:
+ N[n]=Image(ConvDeg(l+3,k-3));
+ fi;
+ else:
+ if k>0:
+ N[n]=Image(ConvDeg(l-3,k+3));
+ else:
+ N[n]=Image(ConvDeg(l-3,k-3));
+ fi;
+ fi;
+ label(TEX(p_),Projette(N[n]));
+ dotlabel.urt("",Projette(M[n]));
+ fi;
+ n:=n+1;
+ endfor;
+ enddef;
+ if AffichageNom:
+ toto(#1);
+ fi;
+% label.top(TEX(decimal(redpart(Oeil))&","&decimal(greenpart(Oeil))&","&decimal(bluepart(Oeil))),Projette(Image(ConvDeg(90,0)))+(0,3cm));%&),(0,1cm));
+% TraceAxes;
+% label.top(btex Oeil etex,Projette(Image(Oeil)));
+% label.top(TEX("Oeil="&decimal(greenpart(Oeil))),(0,2cm));
+% label.top(TEX("Oeil="&decimal(bluepart(Oeil))),(0,3cm));
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={PfCRho=\useKV[ClesReperage]{Rho};PfCPhi=\useKV[ClesReperage]{Phi};PfCTheta=\useKV[ClesReperage]{Theta};color CouleurE,CouleurG;CouleurE=\useKV[ClesReperage]{CouleurE};CouleurG=\useKV[ClesReperage]{CouleurG};boolean AffichageNom,Axes;AffichageNom=\useKV[ClesReperage]{AffichageNom};Axes=\useKV[ClesReperage]{Axes};}]
+ input PfCSolid;
+ %
+ % Pour convertir les (Long,lat) données en degrés en (Long,lat) données en radians
+ vardef ConvDeg(expr fa,fl)=
+ Famille((fa*pi/180),(fl*pi/180))
+ enddef;
+ %Initialisation
+ Initialisation(PfCRho,PfCTheta,PfCPhi,#2);
+ nb:=18;%
+ subh:=36;%
+ %angx:=-23.5;%anglerotationx;
+ TR:=(0,0,0);
+ Ferme2:=true;
+ typerepre:=\useKV[ClesReperage]{TypeProj};
+ if typerepre="proj":
+ ObjetSphereNew2("R=10");
+ ObjetEquateur3("R=10");
+ ObjetGreenwich4("R=10");
+ else:
+ ObjetSphereNew2("R=2");
+ ObjetEquateur3("R=2");
+ ObjetGreenwich4("R=2");
+ fi;
+ AffichagePfC2;
+ if Axes:
+ drawoptions(withpen pencircle scaled 1.05 withcolor CouleurE);
+ ObjetEquateur3("R=2");
+ AffichageEquateur3;
+ drawoptions(withpen pencircle scaled 1 withcolor CouleurG);
+ ObjetGreenwich4("R=2");
+ AffichageGreenwich4;
+ drawoptions();
+ fi;
+ % Label
+% labeloffset:=labeloffset*2;
+% label.urt(btex Nord etex,Projette(Image(ConvDeg(90,0))));%(0,0,2))));
+% label.llft(btex Sud etex,Projette(Image(ConvDeg(-90,0))));%(0,0,-2))));
+% label.lft(btex Ouest etex,Projette(Image(ConvDeg(0,-90))));%(0,-2,0))));
+% label.rt(btex Est etex,Projette(Image(ConvDeg(0,90))));%(0,2,0))));
+% labeloffset:=labeloffset/2;
+ dotlabel.llft(btex \tiny\ang{0} etex,Projette(Image(ConvDeg(0,0))));
+ dotlabel.llft(btex \tiny\ang{10} etex,Projette(Image(ConvDeg(10,0))));
+ dotlabel.llft(btex \tiny\ang{10} etex,Projette(Image(ConvDeg(0,10))));
+ color M[],N[];
+ vardef toto(text t)=
+ n:=1;
+ for p_=t:
+ if (n mod 3)=1:
+ k:=p_;
+ fi;
+ if (n mod 3)=2:
+ l:=p_;
+ fi;
+ if (n mod 3)=0:
+ M[n]=Image(ConvDeg(l,k));
+ if l>0:
+ if k>0:
+ N[n]=Image(ConvDeg(l+3,k+3));
+ else:
+ N[n]=Image(ConvDeg(l+3,k-3));
+ fi;
+ else:
+ if k>0:
+ N[n]=Image(ConvDeg(l-3,k+3));
+ else:
+ N[n]=Image(ConvDeg(l-3,k-3));
+ fi;
+ fi;
+ label(TEX(p_),Projette(N[n]));
+ dotlabel.urt("",Projette(M[n]));
+ fi;
+ n:=n+1;
+ endfor;
+ enddef;
+ if AffichageNom:
+ toto(#1);
+ fi;
+ \end{mpost}
+ \fi
+}%
+
\def\MPEspaceSphere#1#2{%
\ifluatex
\begin{mplibcode}
@@ -62,7 +249,7 @@
trace (subpath((0.75+anglephi/360)*length Equateur,(1.25+anglephi/360)*length Equateur) of Equateur) withcolor 0.7white;
path greenwich;
greenwich=cercles(O,C,O,C,Z);
- trace subpath(3*length greenwich/4,5*length greenwich/4) of greenwich withcolor 0.7white;
+ trace subpath(3*length greenwich/4,5*length greenwich/4) of greenwich withcolor 0.2white;
clip currentpicture to cercles(O,A,O,A,Z);
trace chemin(C,O,Z) dashed evenly withcolor 0.85white;
trace chemin(O,2[Z,O]) dashed evenly withcolor 0.85white;
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex b/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
index 2eeb1209c5..605cb35397 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
@@ -321,6 +321,7 @@
label.llft(btex 0 etex,u*Origine);
drawoptions();
if Vide:
+ clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax));
else:
draw courbe1(borneinf,bornesup,nbpointsCourbe)(#2) withpen (pencircle scaled Epaisseur) withcolor colortrace;
% labelisation
diff --git a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
index ae3896a98e..b88aa3d582 100644
--- a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
@@ -47,9 +47,9 @@
\setcounter{Nbequa}{0}
%CT
-\newdimen\fdashwidth \fdashwidth = 0.8pt % \'epaisseur traits
-\newdimen\fdashlength \fdashlength = 0.5mm % longueur des pointill\'es et s\'eparation entre pointill\'es
-\newdimen\fdashsep \fdashsep = 3pt % s\'eparateur entre contenu et traits
+\newdimen\fdashwidth\fdashwidth = 0.8pt % \'epaisseur traits
+\newdimen\fdashlength\fdashlength = 0.5mm % longueur des pointill\'es et s\'eparation entre pointill\'es
+\newdimen\fdashsep\fdashsep = 3pt % s\'eparateur entre contenu et traits
\def\fdash#1{%
\leavevmode\begingroup%
@@ -57,19 +57,19 @@
\def\hdash{\vrule height\fdashwidth width\fdashlength\relax}%
\def\vdash{\hrule height\fdashlength width\fdashwidth\relax}%
\def\dashblank{\kern\fdashlength}%
- \ifdim\fdashsep>0pt
+ \ifdim\fdashsep>0pt%
\setbox0\hbox{\vrule width0pt height\dimexpr\ht0+\fdashsep depth\dimexpr\dp0+\fdashsep\kern\fdashsep\unhbox0 \kern\fdashsep}%
- \fi
+ \fi%
\edef\hdash{\hbox to\the\wd0{\noexpand\color{Csymbole}\hdash\kern.5\fdashlength\xleaders\hbox{\hdash\dashblank}\hfil\hdash}}%
\edef\vdash{\vbox to\the\dimexpr\ht0+\dp0+2\fdashwidth{\noexpand\color{Csymbole}\vdash\kern.5\fdashlength\xleaders\vbox{\vdash\dashblank}\vfil\vdash}}%
\hbox{%
- \vdash
+ \vdash%
\vtop{\vbox{\offinterlineskip\hdash\hbox{\unhbox0 }\hdash}}%
\vdash}%
- \endgroup
-}
+ \endgroup%
+}%
% fin CT
-\def\Fdash#1{\raisebox{-2\fdashsep+\fdashwidth}{\fdash{#1}}}
+\def\Fdash#1{\raisebox{-2\fdashsep+\fdashwidth}{\fdash{#1}}}%
%Une simplification de a/b est possible ou non ?
\newboolean{Simplification}
diff --git a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
index db49992c46..fa7363c750 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
@@ -127,7 +127,6 @@
\newcommand\DiviseurCommun[2]{%
% #1 : le premier nombre entier
% #2 : le deuxi\`eme nombre entier
- % nombre 1 vaut #1 - Nombre 2 vaut #2
\anpdc=#1%
\cnpdc=#2%
\bnpdc=2\relax%
@@ -153,19 +152,36 @@
\newcommand\LongueSimplification[2]{%
\xdef\NumerateurDiv{#1}%
\xdef\DenominateurDiv{#2}%
- \DiviseurCommun{#1}{#2}%
- \ensuremath{%
- \whiledo{\DivCom>1}{%
- \frac{\num{\fpeval{\NumerateurDiv/\the\DivCom}}\times\num{\the\DivCom}}{\num{\fpeval{\DenominateurDiv/\the\DivCom}}\times\num{\the\DivCom}}=\frac{\num{\fpeval{\NumerateurDiv/\DivCom}}}{\num{\fpeval{\DenominateurDiv/\DivCom}}}%
- \xdef\NumerateurDiv{\fpeval{\NumerateurDiv/\DivCom}}%
- \xdef\DenominateurDiv{\fpeval{\DenominateurDiv/\DivCom}}%
- \DiviseurCommun{\NumerateurDiv}{\DenominateurDiv}%
- \xintifboolexpr{\DivCom>1}{=}{}%
+ \ifboolKV[ClesSimplification]{Impose}{%
+ \DivCom=\useKV[ClesSimplification]{Nombre}%
+ }{%
+ \DiviseurCommun{#1}{#2}%
+ }%
+ \ifboolKV[ClesSimplification]{Debut}{%
+ \ensuremath{%
+ \whiledo{\DivCom>1}{%
+ \frac{\mathcolor{PfCSimpliCol}{\num{\the\DivCom}}\times\num{\fpeval{\NumerateurDiv/\the\DivCom}}}{\mathcolor{PfCSimpliCol}{\num{\the\DivCom}}\times\num{\fpeval{\DenominateurDiv/\the\DivCom}}}=\frac{\num{\fpeval{\NumerateurDiv/\DivCom}}}{\num{\fpeval{\DenominateurDiv/\DivCom}}}%
+ \xdef\NumerateurDiv{\fpeval{\NumerateurDiv/\DivCom}}%
+ \xdef\DenominateurDiv{\fpeval{\DenominateurDiv/\DivCom}}%
+ \DiviseurCommun{\NumerateurDiv}{\DenominateurDiv}%
+ \xintifboolexpr{\DivCom>1}{=}{}%
+ }%
+ }%
+ }{%
+ \ensuremath{%
+ \whiledo{\DivCom>1}{%
+ \frac{\num{\fpeval{\NumerateurDiv/\the\DivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\DivCom}}}{\num{\fpeval{\DenominateurDiv/\the\DivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\DivCom}}}=\frac{\num{\fpeval{\NumerateurDiv/\DivCom}}}{\num{\fpeval{\DenominateurDiv/\DivCom}}}%
+ \xdef\NumerateurDiv{\fpeval{\NumerateurDiv/\DivCom}}%
+ \xdef\DenominateurDiv{\fpeval{\DenominateurDiv/\DivCom}}%
+ \DiviseurCommun{\NumerateurDiv}{\DenominateurDiv}%
+ \xintifboolexpr{\DivCom>1}{=}{}%
+ }%
}%
}%
}%
-\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0}
+\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0,Couleur=black,Debut=false,Impose=false}
+\defKV[ClesSimplification]{Nombre=\setKV[ClesSimplification]{Impose}}
\newcounter{NbFrac}%
\setcounter{NbFrac}{0}%
@@ -200,6 +216,7 @@
}%
}{%
\ifboolKV[ClesSimplification]{Longue}{%
+ \colorlet{PfCSimpliCol}{\useKV[ClesSimplification]{Couleur}}%
\LongueSimplification{#2}{#3}%
}{%
\ifboolKV[ClesSimplification]{Details}{\SSimpli{#2}{#3}}{\ifboolKV[ClesSimplification]{All}{\ensuremath{\SSimpli{#2}{#3}=\SSimplifie{#2}{#3}}}{\SSimplifie{#2}{#3}}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
index 3b86cd3892..03fb0f7ec6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
@@ -664,9 +664,9 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
unitey:=\useKV[ClesStat]{Unitey}*cm;
xpartorigine:=\useKV[ClesStat]{Origine};
AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
- boolean Rotation;
+ boolean Rotation,Lecture;
Rotation=\useKV[ClesStat]{AbscisseRotation};
- boolean Lecture;
+% boolean Lecture;
Lecture:=\useKV[ClesStat]{Lecture};
boolean LectureFine;
LectureFine:=\useKV[ClesStat]{LectureFine};
@@ -682,9 +682,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
boolean Tiret;
Tiret=\useKV[ClesStat]{Tiret};
color CoulDefaut;
- CoulDefaut=\useKV[ClesStat]{CouleurDefaut};}
- Depart=\useKV[ClesStat]{Depart};
- ]
+ CoulDefaut=\useKV[ClesStat]{CouleurDefaut};
+ Depart=\useKV[ClesStat]{Depart};}]
maxx:=0;
maxy:=0;
% on r\'ecup\`ere les couleurs
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrio.tex b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
new file mode 100644
index 0000000000..e847c48aff
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
@@ -0,0 +1,273 @@
+\newlength\PfCTrioHauteur%
+\newcounter{PfCTrioLettre}%
+
+\setKVdefault[Trio]{Largeur=15pt,Graines=false,Repere=false,Cibles=false,Ligne=1,Colonne=1,Vide=false,VideRepere=false}%
+\defKV[Trio]{Graine=\setKV[Trio]{Graines}}%
+\defKV[Trio]{Cible=\setKV[Trio]{Cibles}}%
+
+\NewDocumentCommand\TrioCalculs{mmm}{%
+ Les combinaisons Trio de #1, #2 et #3 sont :%
+ \begin{enumerate}%
+ \item $#1\times#2+#3=\fpeval{#1*#2+#3}$%
+ \item $#1\times#2-#3=\fpeval{#1*#2-#3}$%
+ \item $#2\times#3+#1=\fpeval{#2*#3+#1}$%
+ \item $#2\times#3-#1=\fpeval{#2*#3-#1}$%
+ \item $#3\times#1+#2=\fpeval{#3*#1+#2}$%
+ \item $#3\times#1-#2=\fpeval{#3*#1-#2}$%
+ \end{enumerate}%
+}%
+
+\NewDocumentCommand\Trio{o}{%
+ \setcounter{PfCTrioLettre}{0}
+ \useKVdefault[Trio]%
+ \setKV[Trio]{#1}%
+ \ifboolKV[Trio]{Graines}{\PfCGraineAlea{\useKV[Trio]{Graine}}}{}%
+ \ifboolKV[Trio]{Repere}{\xdef\PfCTrioNbCases{8}}{\xdef\PfCTrioNbCases{7}}%
+ % On définit la liste de nombres
+ \xdef\PfCTrioFoo{1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9}%
+ \MelangeListe{\PfCTrioFoo}{49}%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\PfCTrioMelange{\faa}%
+ \reademptyitems%
+ \setlength{\PfCTrioHauteur}{\useKV[Trio]{Largeur}+\tabcolsep}%
+ \begin{NiceTabular}{*{\PfCTrioNbCases}{m{\useKV[Trio]{Largeur}}}}[hvlines]%
+ \CodeBefore%
+ \ifboolKV[Trio]{Cibles}{%
+ \ifboolKV[Trio]{Repere}{%
+ \xdef\PfCTrioAjout{1}%
+ }{%
+ \xdef\PfCTrioAjout{0}
+ }%
+ % Calculs des horizontaux
+ \xintFor* ##2 in{\xintSeq{1}{7}}\do{%
+ \xintFor* ##1 in{\xintSeq{1}{5}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{\tikz\draw[fill=Cornsilk,line width=2pt] (\fpeval{##2+\PfCTrioAjout}-|\fpeval{##1+\PfCTrioAjout}) rectangle (\fpeval{##2+1+\PfCTrioAjout}-|\fpeval{##1+3+\PfCTrioAjout});\xintBreakFor}{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ % Calculs des verticaux
+ \xintFor* ##2 in{\xintSeq{1}{7}}\do{%
+ \xintFor* ##1 in{\xintSeq{1}{5}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1)+##2}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1+1)+##2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{\tikz\draw[fill=LightSteelBlue,line width=2pt] (\fpeval{##1+\PfCTrioAjout}-|\fpeval{##2+\PfCTrioAjout}) rectangle (\fpeval{##1+3+\PfCTrioAjout}-|\fpeval{##2+1+\PfCTrioAjout});\xintBreakFor}{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ % Calculs des diag positives (descendantes)
+ \xintFor* ##2 in{\xintSeq{1}{5}}\do{%
+ \xintFor* ##1 in{\xintSeq{1}{5}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2+1)+##1+2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \tikz\draw[fill=MistyRose,line width=2pt] (\fpeval{##2+\PfCTrioAjout}-|\fpeval{##1+\PfCTrioAjout}) rectangle (\fpeval{##2+1+\PfCTrioAjout}-|\fpeval{##1+1+\PfCTrioAjout});%
+ \tikz\draw[fill=MistyRose,line width=2pt] (\fpeval{##2+1+\PfCTrioAjout}-|\fpeval{##1+1+\PfCTrioAjout}) rectangle (\fpeval{##2+2+\PfCTrioAjout}-|\fpeval{##1+2+\PfCTrioAjout});%
+ \tikz\draw[fill=MistyRose,line width=2pt] (\fpeval{##2+2+\PfCTrioAjout}-|\fpeval{##1+2+\PfCTrioAjout}) rectangle (\fpeval{##2+3+\PfCTrioAjout}-|\fpeval{##1+3+\PfCTrioAjout});%
+ \xintBreakFor}{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ % Calculs des diagonale négatives (montantes)
+ \xintFor* ##2 in{\xintSeq{1}{5}}\do{%
+ \xintFor* ##1 in{\xintSeq{2}{6}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1-1)+##2+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1-2)+##2+2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \tikz\draw[fill=LavenderBlush,line width=2pt] (\fpeval{##1+\PfCTrioAjout+1}-|\fpeval{##2+\PfCTrioAjout}) rectangle (\fpeval{##1+2+\PfCTrioAjout}-|\fpeval{##2+1+\PfCTrioAjout});%
+ \tikz\draw[fill=LavenderBlush,line width=2pt] (\fpeval{##1+\PfCTrioAjout}-|\fpeval{##2+1+\PfCTrioAjout}) rectangle (\fpeval{##1+1+\PfCTrioAjout}-|\fpeval{##2+2+\PfCTrioAjout});%
+ \tikz\draw[fill=LavenderBlush,line width=2pt] (\fpeval{##1-1+\PfCTrioAjout}-|\fpeval{##2+2+\PfCTrioAjout}) rectangle (\fpeval{##1+\PfCTrioAjout}-|\fpeval{##2+3+\PfCTrioAjout});%
+ \xintBreakFor%
+ }{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ }{}%
+ \Body
+ \ifboolKV[Trio]{Repere}{%
+ \rule{0pt}{\PfCTrioHauteur}\Block[fill=gray!15]{}{}\xintFor* ##1in{\xintSeq{1}{7}}\do{%
+ &\Block[fill=gray!15]{}{\stepcounter{PfCTrioLettre}\Alph{PfCTrioLettre}}%
+ }\\
+ }{}%
+ \xintFor* ##1 in{\xintSeq{1}{7}}\do{%
+ \rule{0pt}{\PfCTrioHauteur}%
+ \ifboolKV[Trio]{Repere}{\Block[fill=gray!15]{}{##1}}{}%
+ \ifboolKV[Trio]{Repere}{&}{}\xintFor* ##2 in{\xintSeq{1}{7}}\do{%
+ \xintifForFirst{}{&}\Block{}{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}%
+ }\\
+ }%
+ \end{NiceTabular}%
+}%
+
+\NewDocumentCommand\TrioCourt{o}{%
+ \useKVdefault[Trio]%
+ \setKV[Trio]{#1}%
+ \setcounter{PfCTrioLettre}{\useKV[Trio]{Colonne}-1}%
+ \ifboolKV[Trio]{Repere}{\xdef\PfCTrioNbCases{4}}{\xdef\PfCTrioNbCases{3}}%
+ \setlength{\PfCTrioHauteur}{\useKV[Trio]{Largeur}+\tabcolsep}%
+ \begin{NiceTabular}{*{\PfCTrioNbCases}{m{\useKV[Trio]{Largeur}}}}[hvlines]%
+ \CodeBefore%
+ \ifboolKV[Trio]{Cibles}{%
+ \ifboolKV[Trio]{Repere}{%
+ \xdef\PfCTrioAjout{1}%
+ }{%
+ \xdef\PfCTrioAjout{0}
+ }%
+ % Calculs des horizontaux
+ \xintFor* ##2 in{\xintSeq{\fpeval{\useKV[Trio]{Ligne}}}{\fpeval{\useKV[Trio]{Ligne}+2}}}\do{%
+ \xintFor* ##1 in{\xintSeq{\fpeval{\useKV[Trio]{Colonne}}}{\fpeval{\useKV[Trio]{Colonne}}}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{\tikz\draw[fill=Cornsilk,line width=2pt] (\fpeval{##2+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##2+1+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+3+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});\xintBreakFor}{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ % Calculs des verticaux
+ \xintFor* ##2 in{\xintSeq{\fpeval{\useKV[Trio]{Colonne}}}{\fpeval{\useKV[Trio]{Colonne}+2}}}\do{%
+ \xintFor* ##1 in{\xintSeq{\useKV[Trio]{Ligne}}{\useKV[Trio]{Ligne}}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1)+##2}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1+1)+##2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ || \fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{\tikz\draw[fill=LightSteelBlue,line width=2pt] (\fpeval{##1+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##1+3+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+1+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});\xintBreakFor}{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ % Calculs des diag positives (descendantes)
+ \xintFor* ##2 in{\xintSeq{\useKV[Trio]{Ligne}}{\useKV[Trio]{Ligne}}}\do{%
+ \xintFor* ##1 in{\xintSeq{\useKV[Trio]{Colonne}}{\useKV[Trio]{Colonne}}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2+1)+##1+2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \tikz\draw[fill=MistyRose,line width=2pt] (\fpeval{##2+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##2+1+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+1+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});%
+ \tikz\draw[fill=MistyRose,line width=2pt] (\fpeval{##2+1+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+1+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##2+2+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+2+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});%
+ \tikz\draw[fill=MistyRose,line width=2pt] (\fpeval{##2+2+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+2+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##2+3+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##1+3+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});%
+ \xintBreakFor}{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ % Calculs des diagonale négatives (montantes)
+ \xintFor* ##2 in{\xintSeq{\useKV[Trio]{Colonne}}{\useKV[Trio]{Colonne}}}\do{%
+ \xintFor* ##1 in{\xintSeq{\fpeval{\useKV[Trio]{Ligne}}}{\fpeval{\useKV[Trio]{Ligne}}}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1+1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1)+##2+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1-1)+##2+2}]}%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \tikz\draw[fill=LavenderBlush,line width=2pt] (\fpeval{##1+2+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##1+3+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+1+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});%
+ \tikz\draw[fill=LavenderBlush,line width=2pt] (\fpeval{##1+1+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+1+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##1+2+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+2+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});%
+ \tikz\draw[fill=LavenderBlush,line width=2pt] (\fpeval{##1+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+2+\PfCTrioAjout-\useKV[Trio]{Colonne}+1}) rectangle (\fpeval{##1+1+\PfCTrioAjout-\useKV[Trio]{Ligne}+1}-|\fpeval{##2+3+\PfCTrioAjout-\useKV[Trio]{Colonne}+1});%
+ \xintBreakFor%
+ }{}%
+ }%
+ \xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC-\PfCTrioNombreA}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA+\PfCTrioNombreB}==\useKV[Trio]{Cible}%
+ ||\fpeval{\PfCTrioNombreC*\PfCTrioNombreA-\PfCTrioNombreB}==\useKV[Trio]{Cible}}{%
+ \xintBreakFor}{}%
+ }%
+ }{}%
+ \Body
+ \ifboolKV[Trio]{Repere}{%
+ \rule{0pt}{\PfCTrioHauteur}\Block[fill=gray!15]{}{}\xintFor* ##1in{\xintSeq{1}{3}}\do{%
+ &\Block[fill=gray!15]{}{\ifboolKV[Trio]{VideRepere}{}{\stepcounter{PfCTrioLettre}\Alph{PfCTrioLettre}}}%
+ }\\%
+ }{}%
+ \xintFor* ##1 in{\xintSeq{\fpeval{\useKV[Trio]{Ligne}}}{\fpeval{\useKV[Trio]{Ligne}+2}}}\do{%%
+ \rule{0pt}{\PfCTrioHauteur}%
+ \ifboolKV[Trio]{Repere}{\Block[fill=gray!15]{}{\ifboolKV[Trio]{VideRepere}{}{##1}}}{}%
+ \ifboolKV[Trio]{Repere}{&}{}\xintFor* ##2 in{\xintSeq{\fpeval{\useKV[Trio]{Colonne}}}{\fpeval{\useKV[Trio]{Colonne}+2}}}\do{%
+ \xintifForFirst{}{&}\Block{}{\ifboolKV[Trio]{Vide}{}{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}}%
+ }\\
+ }%
+ \end{NiceTabular}%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index 04fdb56eeb..c40b96f846 100644
--- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty
+++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
@@ -2,9 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2023/03/24}%
+\def\filedate{2023/04/15}%
\let\PfCfiledate\filedate%
-\def\fileversion{0.99-z-g}%
+\def\fileversion{0.99-z-i}%
\let\PfCfileversion\fileversion%
\ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
@@ -570,6 +570,9 @@
}%\raisebox
}
+\input{PfCJeuRangement}
+\input{PfCTrio}
+\input{PfCCalculsFractions}
\input{PfCDecDeci}
\input{PfCKakurasu}
\input{PfCMidpoint}
@@ -638,6 +641,7 @@
\input{PfCSommeAngles}
\input{PfCPythagore}
\input{PfCDistributivite}
+\input{PfCFactorisation}
\input{PfCDecomposerNombrePremier}
\input{PfCSimplifierFraction}
\input{PfCThales}
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index dd49ba8c3b..e19152c695 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -1559,7 +1559,7 @@ vardef axes=
axx=image(
drawarrow (x.so*cm,y.origine)--(x.ne*cm,y.origine);
drawarrow (x.origine,y.so*cm)--(x.origine,y.ne*cm);
- label.llft(btex $O$ etex,z.origine);
+ label.llft(LATEX($O$),z.origine);
);
axx
enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCObjets.mp b/macros/latex/contrib/profcollege/metapost/PfCObjets.mp
index 964cfedd8a..3d6571c808 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCObjets.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCObjets.mp
@@ -42,6 +42,120 @@ Transparence:=false;
boolean couleurz;%pour grer l'affichage "des lignes" de niveaux
couleurz:=false;
+vardef AffichagePfC[]=
+ save _affi;
+ picture _affi;
+ color Fc[][];color cou[];
+ tapj:=0;
+ for k=0 upto apj.@:
+ cpt[tapj]:=tapj;
+ Fc[tapj].nb:=OTFc.@[k].nb;
+ for l=1 upto Fc[tapj].nb:
+ Fc[tapj][l]:=OTFc.@[k][l];
+ endfor;
+ Fc[tapj].iso:=OTFc.@[k].iso;
+ ALT[tapj]:=ALT.@[k];
+ Vue[tapj]:=Vue.@[k];
+ tapj:=tapj+1;
+ endfor;
+ tapj:=tapj-1;
+ QS(0,tapj);
+ %if Transparence :
+ for k=0 upto tapj:
+ if Vue[cpt[k]]=false:
+% fill for l=1 upto Fc[cpt[k]].nb:
+% Projette(Fc[cpt[k]][l])--
+% endfor
+% cycle withcolor abs(lumin(cpt[k]))*cou[cpt[k]];
+% if traits=true:
+ draw Projette(Fc[cpt[k]][1]) for l=2 upto Fc[cpt[k]].nb-1:
+ --Projette(Fc[cpt[k]][l])
+ endfor
+ dashed evenly withpen pencircle scaled0.25 withcolor 0.7white;
+% fi;
+ fi;
+ endfor;
+ for k=0 upto tapj:
+ if Vue[cpt[k]]:
+% transparence for l=1 upto Fc[cpt[k]].nb:
+% Projette(Fc[cpt[k]][l])--
+% endfor
+% cycle;
+% if traits=true:
+ draw for l=1 upto Fc[cpt[k]].nb:
+ Projette(Fc[cpt[k]][l])--
+ endfor
+ cycle withpen pencircle scaled0.5 withcolor 0.25white;
+% fi;
+ fi;
+ endfor;
+enddef;
+
+vardef AffichageEquateur[]=
+ save _affi;
+ picture _affi;
+ color Fc[][];color cou[];
+ tapj:=0;
+ for k=0 upto apj.@:
+ cpt[tapj]:=tapj;
+ Fc[tapj].nb:=OTFc.@[k].nb;
+ for l=1 upto Fc[tapj].nb:
+ Fc[tapj][l]:=OTFc.@[k][l];
+ endfor;
+ Fc[tapj].iso:=OTFc.@[k].iso;
+ ALT[tapj]:=ALT.@[k];
+ Vue[tapj]:=Vue.@[k];
+ tapj:=tapj+1;
+ endfor;
+ tapj:=tapj-1;
+ QS(0,tapj);
+ for k=0 upto tapj:
+ % if Vue[cpt[k]]=false:
+ draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][4])
+ if Vue[cpt[k]]=false:
+ dashed evenly;
+ fi;
+% endfor;
+% for k=0 upto tapj:
+% if Vue[cpt[k]]:
+% else:
+% draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][4]);
+% fi;
+ endfor;
+ drawoptions();
+enddef;
+
+vardef AffichageGreenwich[]=
+ save _affi;
+ picture _affi;
+ color Fc[][];color cou[];
+ tapj:=0;
+ for k=0 upto apj.@:
+ cpt[tapj]:=tapj;
+ Fc[tapj].nb:=OTFc.@[k].nb;
+ for l=1 upto Fc[tapj].nb:
+ Fc[tapj][l]:=OTFc.@[k][l];
+ endfor;
+ Fc[tapj].iso:=OTFc.@[k].iso;
+ ALT[tapj]:=ALT.@[k];
+ Vue[tapj]:=Vue.@[k];
+ tapj:=tapj+1;
+ endfor;
+ tapj:=tapj-1;
+ QS(0,tapj);
+ for k=0 upto tapj:
+ draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2])
+ if Vue[cpt[k]]=false:
+ dashed evenly;
+ fi;% withpen pencircle scaled0.75;
+ endfor;
+% for k=0 upto tapj:
+% if Vue[cpt[k]]:
+% draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);
+% fi;
+% endfor;
+enddef;
+
vardef AffichageObjet[]=
save _affi;
picture _affi;
@@ -668,6 +782,177 @@ vardef ObjetSphereNew[](expr Rn)=
apj.@:=apj-1;
enddef;
+vardef ObjetSpherePfC[](expr Rn)=
+% subh:=12;
+% NewOeil:=(0,0,0);
+ Outcolor.@:=outcolor;
+ Incolor.@:=incolor;
+ if creux:Ferme.@:=false else: Ferme.@:=true fi;
+ scantokens("numeric "&substring(0,1) of Rn&"; "&Rn&";");
+ vardef Famille(expr u,v)=(R*(cos(u)*cos(v),cos(u)*sin(v),sin(u))) enddef;
+ umin:=-pi/2; upas:=pi/nb;% umax:=0;
+ vmin:=-pi; vpas:=2*pi/subh;% vmax:=2*pi;
+ apj:=0;
+ %On cre les facettes et on calcule la profondeur en Z.
+ for k=0 upto nb-1:
+ for l=0 upto (subh-1):
+ tcpt.@[apj]:=apj;
+ OTFc.@[apj].nb:=4;
+ OTFc.@[apj][1]:=Image(Famille(umin+(k+1)*upas,vmin+l*vpas));%1
+ OTFc.@[apj][2]:=Image(Famille(umin+k*upas,vmin+l*vpas));%2
+ OTFc.@[apj][3]:=Image(Famille(umin+k*upas,vmin+(l+1)*vpas));%3
+ OTFc.@[apj][4]:=Image(Famille(umin+(k+1)*upas,vmin+(l+1)*vpas));%4
+ OTFc.@[apj].iso:=(OTFc.@[apj][1]+OTFc.@[apj][2]+OTFc.@[apj][3]+OTFc.@[apj][4])/4;
+ ALT.@[apj]:=Zpart(GCoord(OTFc.@[apj].iso));
+ if ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]))<0:%OTFc.@[apj][1]
+ Vue.@[apj]:=false;coul.@[apj]:=outcolor;
+ else:
+ Vue.@[apj]:=true;coul.@[apj]:=incolor;
+% drawarrow Projette(OTFc.@[apj].iso)--Projette(OTFc.@[apj].iso+Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]));
+% drawarrow Projette(OTFc.@[apj].iso)--Projette(NewOeil-OTFc.@[apj].iso);
+ fi;
+ apj:=apj+1;
+ endfor;
+ endfor;
+ apj.@:=apj-1;
+enddef;
+
+vardef ObjetSphereCabinet[](expr Rn)=
+% Oeil:=(0,0,0);
+% subh:=subh;
+ % nb:=8;
+ Outcolor.@:=outcolor;
+ Incolor.@:=incolor;
+ if creux:Ferme.@:=false else: Ferme.@:=true fi;
+ scantokens("numeric "&substring(0,1) of Rn&"; "&Rn&";");
+ vardef Famille(expr u,v)=(R*(cosd(u)*cosd(v),cosd(u)*sind(v),sind(u))) enddef;
+ umin:=-90; upas:=180/nb;% umax:=0;
+ vmin:=-180; vpas:=360/subh;% vmax:=2*pi;
+ apj:=0;
+ %On cre les facettes et on calcule la profondeur en Z.
+ for k=0 upto nb-1:%nb-1:
+ for l=0 upto (subh-1):
+ tcpt.@[apj]:=apj;
+ OTFc.@[apj].nb:=4;
+ OTFc.@[apj][1]:=(Famille(umin+(k+1)*upas,vmin+l*vpas));%1
+ OTFc.@[apj][2]:=(Famille(umin+k*upas,vmin+l*vpas));%2
+ OTFc.@[apj][3]:=(Famille(umin+k*upas,vmin+(l+1)*vpas));%3
+ OTFc.@[apj][4]:=(Famille(umin+(k+1)*upas,vmin+(l+1)*vpas));%4
+ OTFc.@[apj].iso:=(OTFc.@[apj][1]+OTFc.@[apj][2]+OTFc.@[apj][3]+OTFc.@[apj][4])/4;
+ ALT.@[apj]:=-Zpart(GCoord(OTFc.@[apj].iso));
+ PfCPS:=ProduitScalaire(Oeil-OTFc.@[apj][1],Normal(OTFc.@[apj][1],OTFc.@[apj][2],OTFc.@[apj][3]))/1000;
+% PfCPS:=ProduitScalaire(Oeil,-OTFc.@[apj].iso)/1000;
+ if PfCPS<0:%ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]))<0:%OTFc.@[apj][1]
+ Vue.@[apj]:=false;coul.@[apj]:=incolor;
+ %label(TEX("visible"&decimal(floor(0.01*ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj][1],OTFc.@[apj][2],OTFc.@[apj][3]))))),(0,0)+5mm*(0,-apj));
+% dotlabel.llft(decimal(1),Projette(OTFc.@[apj][1]));
+% dotlabel.llft(decimal(2),Projette(OTFc.@[apj][2]));
+% dotlabel.llft(decimal(4),Projette(OTFc.@[apj][4]));
+% drawarrow Projette(OTFc.@[apj][1])--Projette(OTFc.@[apj][1]+Normal(OTFc.@[apj][1],OTFc.@[apj][2],OTFc.@[apj][3]));
+% drawarrow Projette(OTFc.@[apj][1])--Projette(Oeil+OTFc.@[apj][1]);
+% label.rt(decimal(PfCPS)&"/Oeil-P1",Projette(OTFc.@[apj][1]+Normal(OTFc.@[apj][1],OTFc.@[apj][2],OTFc.@[apj][3])));
+ apj:=apj+1;
+ else:%if PfCPS>0:
+ Vue.@[apj]:=true;coul.@[apj]:=outcolor;
+% dotlabel.llft(decimal(1),Projette(OTFc.@[apj][1]));
+% dotlabel.llft(decimal(2),Projette(OTFc.@[apj][2]));
+% dotlabel.llft(decimal(3),Projette(OTFc.@[apj][3]));
+% dotlabel.llft(decimal(4),Projette(OTFc.@[apj][4]));
+% drawarrow Projette(OTFc.@[apj][1])--Projette(OTFc.@[apj][1]+Normal(OTFc.@[apj][1],OTFc.@[apj][2],OTFc.@[apj][3]));
+% drawarrow Projette(OTFc.@[apj][1])--Projette(Oeil+OTFc.@[apj][1]);
+% label(TEX(decimal(floor(ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]))))),Projette(OTFc.@[apj].iso));
+% drawarrow Projette(OTFc.@[apj].1)--Projette(OTFc.@[apj].iso+Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]));
+% drawarrow Projette(OTFc.@[apj].iso)--Projette(NewOeil-OTFc.@[apj].iso);
+ apj:=apj+1;
+ fi;
+ endfor;
+ endfor;
+ apj.@:=apj-1;
+enddef;
+
+vardef ObjetEquateur[](expr Rn)=
+ Outcolor.@:=outcolor;
+ Incolor.@:=incolor;
+ if creux:Ferme.@:=false else: Ferme.@:=true fi;
+ scantokens("numeric "&substring(0,1) of Rn&"; "&Rn&";");
+ vardef Famille(expr u,v)=(R*(cos(u)*cos(v),cos(u)*sin(v),sin(u))) enddef;
+% umin:=-pi/2; upas:=pi/nb; umax:=pi/2;
+ umin:=-pi/nb; upas:=pi/nb; umax:=0;
+ vmin:=-pi; vpas:=2*pi/subh; vmax:=-pi+vpas;
+ apj:=0;
+ %On cre les facettes et on calcule la profondeur en Z.
+ for k=0 upto 0:%(nb-1):
+ for l=0 upto (subh-1):%(subh-1):
+ tcpt.@[apj]:=apj;
+ OTFc.@[apj].nb:=4;
+ OTFc.@[apj][1]:=Image(Famille(umin+(k+1)*upas,vmin+l*vpas));
+ OTFc.@[apj][2]:=Image(Famille(umin+k*upas,vmin+l*vpas));
+ OTFc.@[apj][3]:=Image(Famille(umin+k*upas,vmin+(l+1)*vpas));
+ OTFc.@[apj][4]:=Image(Famille(umin+(k+1)*upas,vmin+(l+1)*vpas));
+ OTFc.@[apj].iso:=(OTFc.@[apj][1]+OTFc.@[apj][2]+OTFc.@[apj][3]+OTFc.@[apj][4])/4;
+ ALT.@[apj]:=-Zpart(GCoord(OTFc.@[apj].iso));
+ if ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]))>=0:
+ Vue.@[apj]:=true;coul.@[apj]:=outcolor;
+ else:
+ Vue.@[apj]:=false;coul.@[apj]:=incolor;
+ fi;
+ apj:=apj+1;
+ endfor;
+ endfor;
+ apj.@:=apj-1;
+enddef;
+
+vardef ObjetGreenwich[](expr Rn)=
+ Outcolor.@:=outcolor;
+ Incolor.@:=incolor;
+ if creux:Ferme.@:=false else: Ferme.@:=true fi;
+ scantokens("numeric "&substring(0,1) of Rn&"; "&Rn&";");
+ vardef Famille(expr u,v)=(R*(cos(u)*cos(v),cos(u)*sin(v),sin(u))) enddef;
+ umin:=-pi/2; upas:=pi/nb; umax:=pi;
+ vmin:=0; vpas:=2*pi/subh; vmax:=2*pi;
+ apj:=0;
+ %On cre les facettes et on calcule la profondeur en Z.
+ for l=0 upto 0:%(subh-1):
+ for k=0 upto nb-1:%(nb-1):
+ tcpt.@[apj]:=apj;
+ OTFc.@[apj].nb:=4;
+ OTFc.@[apj][1]:=Image(Famille(umin+(k+1)*upas,vmin+l*vpas));
+ OTFc.@[apj][2]:=Image(Famille(umin+k*upas,vmin+l*vpas));
+ OTFc.@[apj][3]:=Image(Famille(umin+k*upas,vmin+(l+1)*vpas));
+ OTFc.@[apj][4]:=Image(Famille(umin+(k+1)*upas,vmin+(l+1)*vpas));
+ OTFc.@[apj].iso:=(OTFc.@[apj][1]+OTFc.@[apj][2]+OTFc.@[apj][3]+OTFc.@[apj][4])/4;
+ ALT.@[apj]:=-Zpart(GCoord(OTFc.@[apj].iso));
+ if ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]))>=0:
+ Vue.@[apj]:=true;coul.@[apj]:=outcolor;
+ else:
+ Vue.@[apj]:=false;coul.@[apj]:=incolor;
+ fi;
+ apj:=apj+1;
+ endfor;
+ endfor;
+ umin:=-pi/2; upas:=pi/nb; umax:=pi;
+ vmin:=pi; vpas:=2*pi/subh; vmax:=2*pi;
+ for l=0 upto 0:
+ for k=0 upto nb-1:%(nb-1):
+ tcpt.@[apj]:=apj;
+ OTFc.@[apj].nb:=4;
+ OTFc.@[apj][1]:=Image(Famille(umin+(k+1)*upas,vmin+l*vpas));
+ OTFc.@[apj][2]:=Image(Famille(umin+k*upas,vmin+l*vpas));
+ OTFc.@[apj][3]:=Image(Famille(umin+k*upas,vmin+(l+1)*vpas));
+ OTFc.@[apj][4]:=Image(Famille(umin+(k+1)*upas,vmin+(l+1)*vpas));
+ OTFc.@[apj].iso:=(OTFc.@[apj][1]+OTFc.@[apj][2]+OTFc.@[apj][3]+OTFc.@[apj][4])/4;
+ ALT.@[apj]:=-Zpart(GCoord(OTFc.@[apj].iso));
+ if ProduitScalaire(Oeil-OTFc.@[apj].iso,Normal(OTFc.@[apj].iso,OTFc.@[apj][1],OTFc.@[apj][2]))>=0:
+ Vue.@[apj]:=true;coul.@[apj]:=outcolor;
+ else:
+ Vue.@[apj]:=false;coul.@[apj]:=incolor;
+ fi;
+ apj:=apj+1;
+ endfor;
+ endfor;
+ apj.@:=apj-1;
+enddef;
+
vardef Objetcalotte[](expr Rn,Phib,Phih)=
Outcolor.@:=outcolor;
Incolor.@:=incolor;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCSolid.mp b/macros/latex/contrib/profcollege/metapost/PfCSolid.mp
index 342b992167..bc4b9517ee 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCSolid.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCSolid.mp
@@ -54,12 +54,18 @@ vardef Initialisation(expr r,t,p,d)=
Aux6:=Aux1*Aux2;
Aux7:=Aux3*Aux4;
Aux8:=Aux1*Aux4;
+ color Oeil;
+% if typerepre="cabinet":
+% Oeil=(Rho,0,0);
+% else:
+ Oeil=(Aux7,Aux8,Aux2)*Rho;
+% fi;
pointilles:="oui";
Lumiere:=Oeil;
enddef;
-vardef Oeil=(Rho*Aux7,Rho*Aux8,Rho*Aux2)
-enddef;
+%vardef Oeil=(Rho*Aux7,Rho*Aux8,Rho*Aux2)
+%enddef;
vardef sin(expr t) = sind(c*t) enddef;
@@ -104,11 +110,17 @@ enddef;
unit:=1;%pour les mises l'chelle :) Merci pst-solides3d
vardef Projette(expr M)=
- %if typerepre="proj":
- % unit*(DE*(Xpart(GCoord(M)/Zpart(GCoord(M))),(Ypart(GCoord(M))/Zpart(GCoord(M)))))
- %elseif typerepre="persp":
- unit*(DE*(Xpart(GCoord(M)),Ypart(GCoord(M))))
- %fi
+ if typerepre="proj":
+ ((Xpart(GCoord(M)),Ypart(GCoord(M)))/Zpart(GCoord(M)))*DE*10%
+ elseif typerepre="persp":
+ (Xpart(GCoord(M)),Ypart(GCoord(M)))*unit*DE
+ elseif typerepre="cabinet":
+% (0.5*cosd(30)*Xpart(GCoord(M)),0.75*sind(30)*Ypart(GCoord(M)))*unit*DE
+ (Xpart(GCoord(M))+0.5*cosd(30)*Zpart(GCoord(M)),Ypart(GCoord(M))+0.5*sind(30)*Zpart(GCoord(M)))*20
+% (0.5*cosd(45)*Xpart(GCoord(M)),0.5*sind(45)*Ypart(GCoord(M)))*unit*DE
+% (Xpart(GCoord(M)),Ypart(GCoord(M)))*unit*DE
+ %(Xpart(GCoord(M)),Ypart(GCoord(M)))*10
+ fi
enddef;
vardef TraceAxes=
@@ -181,7 +193,6 @@ vardef Normal(expr vecun,vecde,vectr)=
enddef;
vardef ProduitScalaire(expr wec,mor)=
- %Mexp(Mlog redpart(wec) Mmul Mlog redpart(mor))+Mexp(Mlog greenpart(wec) Mmul Mlog greenpart(mor))+Mexp(Mlog bluepart(wec) Mmul Mlog bluepart(mor))
Xpart(wec)*Xpart(mor)+Ypart(wec)*Ypart(mor)+Zpart(wec)*Zpart(mor)
enddef;
%pour les rotations et translations
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index 67586db55b..3eb3746590 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
index 1aa8261b74..f834c4545c 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -5,14 +5,12 @@
% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
\documentclass[a4paper,french,11pt]{article}
-\def\PLversion{2.5.8}
-\def\PLdate{6 Avril 2023}
+\def\PLversion{2.6.0}
+\def\PLdate{13 Avril 2023}
\usepackage{ProfLycee}
\useproflyclib{piton,minted,pythontex}
-%\usepackage{lualatex-math}
-%\usepackage{luatexbase}
\usepackage[math-style=french]{fourier-otf}
-%\setsansfont{Fira Sans}[Scale=MatchLowercase]
+\usepackage{awesomebox}
\usepackage[lua]{tkz-euclide}
\usepackage{tkz-tab}
\tikzstyle{every picture}+=[remember picture]
@@ -73,6 +71,16 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
+\newtcolorbox{PART}[1][]{%
+ enhanced,top=3mm,bottom=3mm,
+ bottomtitle=2mm,arc=2pt,outer arc=0pt,
+ colframe=LightSteelBlue,colback=white,bicolor,
+ colbacklower=LightSteelBlue!15,coltitle=black,
+ fonttitle=\large\sffamily,
+ title=\centering Thème,
+ #1%
+}%
+
\tcbset{vignettes/.style={%
nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
boxrule=0.75pt,left=7pt,right=1pt,top=0pt,bottom=0.25pt,%
@@ -108,6 +116,22 @@
}
}
+\NewTCBListing{PresentationCodePL}{ O{blue} m }{%
+ enhanced,width=0.93\linewidth,flush right,boxrule=0.75pt,colframe=#1!75!Black,%
+ sharp corners,top=0mm,bottom=0mm,left=0.4em,right=5mm,%
+ before skip=\baselineskip,after skip=\baselineskip,%
+ colback=white,
+ fontupper=\footnotesize,fontlower=\footnotesize,%
+ watermark text={\faCode},watermark opacity=0.25,watermark zoom=0.50,%
+ title={{\scriptsize\faCode} Code \LaTeX},
+ lefttitle=0.4em,
+ fonttitle=\bfseries\footnotesize\sffamily,colbacktitle=darkgray!50!#1,%
+ listing engine=minted,minted style=colorful,minted language=tex,
+ minted options={tabsize=4,fontsize=\footnotesize,autogobble,breaklines=true},
+ #2,%
+ overlay={\draw[#1!75!black] ($(frame.north west)+(-0.035\linewidth,-0.025\linewidth)$) node[scale=1.66] {\faCogs} ;}
+}
+
\newtcblisting{codetex}[1][]{%
colback=white,colframe=red!75!black,title={\small \faCode} Code \LaTeX,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1}
@@ -117,7 +141,7 @@
\newtcolorbox{codesortie}[1][]{%
colback=white,colframe=red!75!black,title={\small \faArrowAltCircleRight[regular]} Sortie \LaTeX,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1}
-\newtcolorbox{codeidee}[1][]{%
+\newtcolorbox{condeidee}[1][]{%
colback=white,colframe=PeachPuff!75!black,title={\small \faLightbulb[regular]} Idée(s),fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1}
\newtcolorbox{codeinfo}[1][]{%
@@ -232,6 +256,10 @@
\begin{document}
+\setlength{\aweboxleftmargin}{0.07\linewidth}
+\setlength{\aweboxcontentwidth}{0.93\linewidth}
+\setlength{\aweboxvskip}{8pt}
+
\pagestyle{fancy}
\maketitle
@@ -260,6 +288,7 @@
{\deblst} créer des arbres de probas \og classiques \fg \\
{\deblst} générer des listes d'entiers aléatoires (avec ou sans répétitions)\\
{\deblst} déterminer la mesure principale d'un angle \\
+{\deblst} calculer les lignes trigonométriques d'angles \og classiques \fg{} \\
{\deblst} \ldots}
~
@@ -295,13 +324,23 @@
\newpage
+\phantom{t}\par\vfill\par
+\begin{PART}
+ \begin{center}
+ \Huge\MakeUppercase{Introduction}
+ \end{center}
+\end{PART}
+\par\vfill\par\phantom{t}
+
+\newpage
+
\part{Introduction}
\section{Le package ProfLycee}
\subsection{\og Philosophie \fg{} du package}
-\begin{codeidee}
+\begin{noteblock}
Ce \ctex{package}, très largement inspiré (et beaucoup moins abouti) de l'excellent \ctex{ProfCollege} de C. Poulain et des excellents \ctex{tkz-*} d'A. Matthes, va définir quelques outils pour des situations particulières qui ne sont pas encore dans \ctex{ProfCollege}.
On peut le voir comme un (maigre) complément à \ctex{ProfCollege}, et je précise que la syntaxe est très proche (car pertinente de base) et donc pas de raison de changer une \textit{équipe qui gagne} !
@@ -311,9 +350,9 @@ On peut le voir comme un (maigre) complément à \ctex{ProfCollege}, et je préc
Il se charge de manière classique, dans le préambule, par \ctex{\textbackslash usepackage\{ProfLycee\}}. Il charge des {packages} utiles, mais j'ai fait le choix de laisser l'utilisateur gérer ses autres {packages}, comme notamment \ctex{amssymb} qui peut poser souci en fonction de la \textit{position} de son chargement.
L'utilisateur est libre de charger ses autres {packages} utiles et habituels, ainsi que ses \textsf{polices} et \textsf{encodages} habituels !
-\end{codeidee}
+\end{noteblock}
-\begin{codeinfo}
+\begin{importantblock}
Le {package} \ctex{ProfLycee} charge et utilise les {packages} :
\begin{itemize}
@@ -324,43 +363,44 @@ Le {package} \ctex{ProfLycee} charge et utilise les {packages} :
\item \ctex{listofitems}, \ctex{xintexpr} , \ctex{xintbinhex}, \ctex{xintgcd} ;
\item \ctex{tabularray}, \ctex{fontawesome5}, \ctex{randomlist}, \ctex{fancyvrb}.
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{importantblock}
-\begin{codeidee}
+\begin{tipblock}
J'ai utilisé les {packages} de C. Tellechea, je vous conseille d'aller jeter un œil sur ce qu'il est possible de faire en \LaTeX{} avec \ctex{listofitems}, \ctex{randomlist}, \ctex{simplekv} ou encore \ctex{xstring} !
-\end{codeidee}
+\end{tipblock}
\subsection{Chargement du package}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%exemple de chargement pour une compilation en (pdf)latex
\documentclass{article}
\usepackage{ProfLycee}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
...
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%exemple de chargement pour une compilation en (xe/lua)latex
\documentclass{article}
\usepackage{ProfLycee}
\usepackage{fontspec}
...
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Librairies, option du package}\label{librairies}
-\begin{codeattention}
+\begin{warningblock}
\cmaj{2.5.0} Le package fonctionne désormais avec un système de \clib{librairies}, qui utilisent et chargent des packages spécifiques, avec des compilations particulières, donc l'utilisateur utilisera un système de chargement similaire à celui de \textsf{tcolorbox} ou \textsf{tikz}, dans le préambule, et une fois le package appelé.
-\end{codeattention}
+\end{warningblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\usepackage{ProfLycee}
\useproflyclib{...,...}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Les librairies disponibles seront indiquées dans les sections spécifiques. Pour le moment, il existe :
\begin{itemize}
@@ -368,13 +408,14 @@ Les librairies disponibles seront indiquées dans les sections spécifiques. Pou
\item \clib{minted} (page \pageref{pytminted}) ;
\item \clib{pythontex} (page \pageref{pythontex}).
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
-\begin{codeattention}
+\begin{warningblock}
\cmaj{2.5.8} Pour le package \ctex{piton}, la version minimale requise est la \ctex{1.5} pour bénéficier d'un rendu optimal (au niveau des marges) de la présentation du code \textsf{Python}.
-\end{codeattention}
+\end{warningblock}
-\begin{codeinfo}
+\begin{noteblock}
En compilant (notamment avec les librairies \clib{minted} et \clib{pythontex}) on peut spécifier des répertoires particuliers pour les (ou des) fichiers auxiliaires.
Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichiers temporaires de \clib{minted} et \clib{pythontex} dans un répertoire \menu{build} du répertoire courant.
@@ -382,23 +423,24 @@ Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichier
\smallskip
Dans ce cas il faut créer au préalable le répertoire \menu{build} avant de compiler un fichier, pour éviter toute erreur !
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
...
\usepackage[build]{ProfLycee}
\useproflyclib{...}
...
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
L'option \Cle{build} charge certains packages (librairies \clib{minted} et \clib{pythontex}) avec les options :
\begin{itemize}
\item \ctex{\textbackslash setpythontexoutputdir\{./build/pythontex-files-\textbackslash jobname\}}
\item \ctex{\textbackslash RequirePackage[outputdir=build]\{minted\}}
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
\pagebreak
@@ -406,7 +448,7 @@ L'option \Cle{build} charge certains packages (librairies \clib{minted} et \clib
\subsection{Le système de \og clés/options \fg}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de conserver -- autant que faire se peut -- l'idée de \Cle{Clés} qui sont :
%
\begin{itemize}
@@ -424,27 +466,22 @@ Pour certaines commandes, le système de \Cle{Clés} pose quelques soucis, de ce
\item les \Cle{Clés} peuvent être mises dans n'importe quel ordre, elles peuvent être omises lorsque la valeur par défaut est conservée ;
\item les \textsf{arguments} doivent, eux, être positionnés dans le \textit{bon ordre}.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeinfo}
+\begin{noteblock}
Les \textsf{commandes} et \textsf{environnements} présentés seront explicités via leur \textsf{syntaxe} avec les \textsf{options/clés} ou \textsf{arguments}.
Autant que faire se peut, des exemples/illustrations/remarques seront proposés à chaque fois.
+\end{noteblock}
-\smallskip
-
-Les \textsf{codes} seront présentés dans des \textsf{boîtes} \textcolor{red!75!black}{{\small \faCode} Code \LaTeX}, si possible avec la \textsf{sortie} dans la même boîte, et sinon la \textsf{sortie} sera visible dans des \textsf{boîtes} \textcolor{red!75!black}{{\small \faArrowAltCircleRight[regular]} Sortie \LaTeX}.
-
-Les \textsf{clés} ou \textsf{options} seront présentées dans des \textsf{boîtes} \textcolor{ForestGreen}{{\small \faPaperclip} Clés}.
-\end{codeinfo}
-
-\begin{codeinfo}
+\begin{noteblock}
À noter que certaines commandes disponibles sont liées à un environnement \ctex{tikzpicture}, elles peuvent ne pas être autonomes mais permettent de conserver -- en parallèle -- toute commande liée à \TikZ{} !
-\end{codeinfo}
+\end{noteblock}
\subsection{Compilateur(s)}
-\begin{codeinfo}
+\begin{noteblock}
Le package \ctex{ProfLycee} est compatible avec les compilateurs classiques : \textsf{latex}, \textsf{pdflatex} ou encore \textsf{lualatex}.
\smallskip
@@ -456,11 +493,12 @@ En ce qui concerne les codes \textsf{librairies}, il faudra :
\item \clib{minted} : compiler avec \textsf{shell-escape} (ou \textsf{write18}) ;
\item \clib{piton} : compiler en \hologo{LuaLaTeX} et \textsf{shell-escape} (ou \textsf{write18}).
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
\subsection{Problèmes éventuels\ldots}
-\begin{codeinfo}
+\begin{noteblock}
Certaines \textsf{commandes} sont à intégrer dans un environnement \TikZ, afin de pouvoir rajouter des éléments, elles ont été testés dans des environnement \ctex{tikzpicture}, à vérifier que la gestion des axes par l'environnement \ctex{axis} est compatible\ldots
\smallskip
@@ -470,7 +508,7 @@ Certains packages ont une fâcheuse tendance à être tatillons sur leurs option
\smallskip
En dehors de cela, ce sont des tests multiples et variés qui permettront de détecter d'éventuels bugs !
-\end{codeinfo}
+\end{noteblock}
\pagebreak
@@ -486,15 +524,25 @@ En dehors de cela, ce sont des tests multiples et variés qui permettront de dé
\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
+
\part{Liste des commandes, par thème}
-\begin{codeinfo}
+\begin{noteblock}
\cmaj{2.0.0} Cette section contient un \textit{résumé} des différentes commandes et environnements disponibles dans \ctex{ProfLycee}.
Elles sont présentées de manière \textit{succincte}, mais elles sont présentées de manière \textit{détaillée} dans la suite de la documentation.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%Résolution approchée d'une équation f(x)=k
\ResolutionApprochee[clés]{équation}[macro]
@@ -507,9 +555,9 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%Mise en forme de la conclusion d'un seuil
\SolutionSeuil[options]{fonction associée}{seuil}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%fenêtre de repérage en tikz et courbe
\GrilleTikz[options][options grille ppale][options grille second.]
\AxesTikz[options] \AxexTikz[options]{valeurs} \AxeyTikz[options]{valeurs}
@@ -523,9 +571,9 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%schémas pour le signe affine/trinôme, dans un environnement tikz
\MiniSchemaSignes(*)[clés]<options tikz>
\MiniSchemaSignesTkzTab[options]{numligne}[échelle][décalage horizontal]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%présentation de code Python
\begin{CodePythonLst}(*)[largeur]{commandes tcbox}...\end{CodePythonLst}
\begin{CodePythonLstAlt}(*)[largeur]{commandes tcbox}...\end{CodePythonLstAlt}
@@ -543,11 +591,11 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%présentation de pseudocode
\begin{PseudoCode}(*)[largeur]{commandes tcbox}...\end{PseudoCode}
\begin{PseudoCodeAlt}(*)[largeur]{commandes tcbox}...\end{PseudoCodeAlt}
-\end{codetex}
+\end{PresentationCodePL}
\pagebreak
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%terminal OS
\begin{TerminalWin}[largeur]{clés}[options]...\end{TerminalWin}
\begin{TerminalUnix}[largeur]{clés}[options]...\end{TerminalUnix}
@@ -555,18 +603,18 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%code Capytale
\CartoucheCapytale(*)[options]{code capytale}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%pavé et tétraèdre, dans un environnement tikz
\PaveTikz[options]
\TetraedreTikz[options]
%cercle trigo, dans un environnement tikz
\CercleTrigo[clés]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%paramètres d'une régression linéaire, nuage de points
\CalculsRegLin[clés]{listeX}{listeY}
\PointsRegLin[clés]{listeX}{listeY}
@@ -584,9 +632,9 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%boîte à moustaches, dans un environnement tikz
\BoiteMoustaches[options]
\BoiteMoustachesAxe[options]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%loi binomiale B(n,p)
\CalcBinomP{n}{p}{k}
\CalcBinomC{n}{p}{a}{b}
@@ -598,9 +646,9 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
\CalcPoissC{l}{a}{b}
\PoissonP(*)[prec]{l}{k}
\PoissonC(*)[prec]{l}{a}{b}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%loi géométrique G(p)
\CalcGeomP{p}{k}
\CalcGeomC{l}{a}{b}
@@ -612,9 +660,9 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
\CalcHypergeomP{N}{n}{m}{a}{b}
\HypergeomP{N}{n}{m}{k}
\HypergeomC{N}{n}{m}{a}{b}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%loi normale N(m,s)
\CalcNormC{m}{s}{a}{b}
\NormaleC(*)[prec]{m}{s}{a}{b}
@@ -630,9 +678,9 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%schémas lois continues
\LoiNormaleGraphe[options]<options tikz>{m}{s}{a}{b}
\LoiExpoGraphe[options]<options tikz>{l}{a}{b}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%entier aléatoire entre a et b
\NbAlea{a}{b}{macro}
%nombre décimal (n chiffres après la virgule) aléatoire entre a et b+1 (exclus)
@@ -641,17 +689,17 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
\VarNbAlea{macro}{calcul}
%liste d'entiers aléatoires
\TirageAleatoireEntiers[options]{macro}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%arrangement Anp
\Arrangement(*)[option]{p}{n}
%arrangement Cnp (p parmi n)
\Combinaison(*)[option]{p}{n}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%conversions
\ConversionDecBin(*)[clés]{nombre}
\ConversionBinHex[clés]{nombre}
@@ -661,9 +709,9 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%PGCD présenté
\PresentationPGCD[options]{a}{b}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%conversion en fraction, simplification de racine
\ConversionFraction(*)[option]{argument}
\SimplificationRacine{expression}
@@ -674,15 +722,26 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
%trinôme, trinôme aléatoire
\EcritureTrinome[options]{a}{b}{c}
-%mesure principale
+%mesure principale, lignes trigo
\MesurePrincipale[options]{angle}
-\end{codetex}
+\LigneTrigo(*)[booléens]{cos/sin/tan}(angle)
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%sudomaths
\SudoMaths[options]{liste}
\begin{EnvSudoMaths}[options]{grille}...\end{EnvSudoMaths}
-\end{codetex}
+\end{PresentationCodePL}
+
+\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
@@ -692,30 +751,30 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.1.4} L'idée est de proposer une commande pour résoudre, de manière approchée, une équation du type $f(x)=k$ sur un intervalle (fermé) donné.
\smallskip
La méthode utilisée est la \textbf{dichotomie}, pour plus de rapidité que la méthode \textit{simple} par balayage.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\ResolutionApprochee[clés]{équation}[macro]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\ResolutionApprochee[Intervalle=0:10]{x**3-2*x**2-x-1=2}%
$x_0 \approx \num[minimum-decimal-digits=2]{\masolutiond}$ par défaut ;\\
$x_0 \approx \num[minimum-decimal-digits=2]{\masolutione}$ par excès ;\\
$x_0 \approx \num[minimum-decimal-digits=2]{\masolutiona}$ arrondi à $10^{-2}$.\\
\hfill\includegraphics[scale=0.45]{./graphics/pl-solve_a}\hfill~
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Clés et options}
-\begin{codecles}
+\begin{cautionblock}
Quelques explications sur les \Cle{clés} et sur les arguments :
\begin{itemize}
@@ -723,16 +782,19 @@ Quelques explications sur les \Cle{clés} et sur les arguments :
\item la clé (obligatoire !) \Cle{Intervalle} qui permet de préciser l'intervalle initial de recherche ;
\item la clé \Cle{Variable} qui permet de spécifier la variable de l'équation ;\hfill{}défaut \Cle{x}
\item l'argument \textit{obligatoire} est l'équation, sous la forme $f(\ldots)=k$ (ou $f(\ldots)$ pour $f(\ldots)=0$) ;
- \item l'argument \textit{optionnel} est la base de la \textit{<macro>} qui sert à stocker les valeurs :\hfill{}défaut \Cle{masolution}
+ \item l'argument \textit{optionnel} est la base de la \textit{<macro>} qui sert à stocker les valeurs :
+
+ \hfill{}défaut \Cle{masolution}
\begin{itemize}
\item \ctex{\textbackslash<macro>d} pour la valeur approchée par défaut ;
\item \ctex{\textbackslash<macro>e} pour la valeur approchée par excès ;
\item \ctex{\textbackslash<macro>a} pour la valeur approchée.
\end{itemize}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\ResolutionApprochee[Precision=4,Intervalle=0:2]{exp(0.5*x)+x**2-4=0}%
Une valeur approchée, à $10^{-4}$ près, d'une solution de $\text{e}^{0,5x}+x^2-4=0$ sur $\left[0;2\right]$ est $\beta$ avec :
\begin{itemize}
@@ -747,7 +809,7 @@ Une valeur approchée, à $10^{-2}$ près d'une solution de $3t\,\rm{e}^{-0,5t+1
\item $t_1 \approx \num[minimum-decimal-digits=2]{\SolAe}$ par excès ;
\item $t_1 \approx \num[minimum-decimal-digits=2]{\SolAa}$.
\end{itemize}
-\ResolutionApprochee[Precision=3,Variable=t,Intervalle=2:10]{3*t*exp(-0.5*t+1)=4}[SolB]%
+\ResolutionApprochee[Precision=3,Variable=t,Intervalle=2:10]{3*t*exp(-0.5*t+1)=4}[SolB]
Une valeur approchée, à $10^{-2}$ près d'une solution de $3t\,\text{e}^{-0,5t+1}=4$ est $t_2$ avec :
\begin{itemize}
\item $t_2 \approx \num[minimum-decimal-digits=2]{\SolBd}$ par défaut ;
@@ -760,7 +822,7 @@ Une valeur approchée, à $10^{-2}$ près d'une solution de $3t\,\text{e}^{-0,5t
\hfill\includegraphics[scale=0.45]{./graphics/pl-solve_b}~~
\includegraphics[scale=0.45]{./graphics/pl-solve_c}~~
\includegraphics[scale=0.45]{./graphics/pl-solve_d}\hfill~
-\end{codetex}
+\end{PresentationCodePL}
\newpage
@@ -768,22 +830,22 @@ Une valeur approchée, à $10^{-2}$ près d'une solution de $3t\,\text{e}^{-0,5t
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.0.4} L'idée est de présenter l'obtention d'une solution approchée d'équation par balayage, dans le cadre du TVI par exemple. Les calculs et tests sont effectués grâce au package \ctex{xinttools}, et le formatage par \ctex{tabularray} et \ctex{sinuitx}.
-\end{codeidee}
+\end{tipblock}
-\begin{codeattention}
+\begin{warningblock}
Le code ne trouve pas la solution, il met \textit{juste} en forme mais effectue quand même les calculs d'images et les tests.
-\end{codeattention}
+\end{warningblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\SolutionTVI[options]{fonction}{valeur}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Clés et arguments}
-\begin{codecles}
-Plusieurs \Cle{Clés} sont disponibles pour cette commande, relative donc à une équation du type $f(x)=k$ :
+\begin{cautionblock}
+Plusieurs \Cle{Clés} sont disponibles pour cette commande, relative à une équation du type $f(x)=k$ :
\begin{itemize}
\item la clé \Cle{NomFct} qui permet de spécifier le nom de la fonction ;\hfill{}défaut \Cle{f}
@@ -799,41 +861,42 @@ Plusieurs \Cle{Clés} sont disponibles pour cette commande, relative donc à une
\smallskip
Le premier argument \textit{obligatoire} est la fonction, en syntaxe \ctex{xint} et avec comme variable $x$, et le second la valeur de $k$.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
Pour $f(x)=0$ avec $f(x)=x^2-2$. On obtient \SolutionTVI[va=1.414,vb=1.415,Precision=3]{x**2-2}{0}.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
Avec $\varphi(t)=3t\,\rm{e}^{-0,5t+1}=5$,
-\SolutionTVI[Majuscule=false,Calculatrice,va=1.02,vb=1.03,NomFct=\varphi]{3*x*exp(-0.5*x+1)}{5}
-\end{codetex}
+\SolutionTVI[Majuscule=false,Calculatrice,va=1.02,vb=1.03,NomFct=\varphi]
+ {3*x*exp(-0.5*x+1)}{5}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
On s'intéresse à $g(x)=\num{1,5}$ avec $g(x)=\ln(x)$.\\
\SolutionTVI%
[Balayage,Stretch=1.5,va=4.48,vb=4.49,NomFct=g,Precision=4,NomSol={x_0}]{log(x)}{1.5}.
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Interaction avec la commande de résolution approchée}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.1.4} L'idée est de récupérer les valeurs par défaut et par excès pour le TVI grâce à la commande \ctex{\textbackslash ResolutionApprochee}.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
On s'intéresse à $g(x)=\num{1,5}$ avec $g(x)=\ln(x)$ sur l'intervalle $\left[3;5\right]$.
\ResolutionApprochee[Intervalle=3:5]{log(x)=1.5}[SolLn]
\SolutionTVI%
[Balayage,Stretch=1.5,va={\SolLnd},vb={\SolLne},
NomFct=g,Precision=4,NomSol={x_0}]{log(x)}{1.5}.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
À terme, peut-être que la commande \ctex{\textbackslash ResolutionApprochee} sera intégrée dans la commande \ctex{\textbackslash SolutionTVI} afin d'automatiser encore plus le procédé.
-\end{codeinfo}
+\end{noteblock}
\newpage
@@ -841,34 +904,35 @@ On s'intéresse à $g(x)=\num{1,5}$ avec $g(x)=\ln(x)$ sur l'intervalle $\left[3
\subsection{Idées}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.0.3} L'idée est de proposer des commandes pour effectuer des calculs avec des suites récurrentes du type $u_{n+1}=f\big(u_n\big)$ :
\begin{itemize}
\item calcul de termes avec possibilité d'arrondir ;
\item présentation de la conclusion de la recherche d'un seuil du type $u_n > S$ ou $u_n < S$.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeattention}
+\begin{warningblock}
\cmaj{2.1.0} Le code pour le seuil \textbf{trouve} également le rang cherché, il met en forme et effectue les calculs d'images.
\smallskip
\cmaj{2.0.5} Le choix a été fait de faire les calculs en mode \ctex{float} pour éviter les dépassements de capacité de \ctex{xint} liés aux boucles\ldots
-\end{codeattention}
+\end{warningblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%commande pour calculer et formater
\CalculTermeRecurrence[options]{fonction associée}
%mise en forme de la conclusion d'un seuil
\SolutionSeuil[options]{fonction associée}{seuil}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Clés et arguments}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{Clés} sont disponibles pour la commande du calcul d'un terme :
\begin{itemize}
@@ -881,9 +945,9 @@ Plusieurs \Cle{Clés} sont disponibles pour la commande du calcul d'un terme :
\smallskip
L'argument \textit{obligatoire} est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
Avec $\begin{dcases} u_0 = 50 \\ u_{n+1}=\dfrac{1}{u_n+2} \end{dcases}$.
On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$.
@@ -891,9 +955,9 @@ On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$.
On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{1/(x+2)}$.
On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
Avec $u_0 = 50$ et $u_{n+1}=\dfrac{1}{u_n+2}$.
\smallskip
@@ -907,9 +971,9 @@ On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{
\smallskip
On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$ \hfill~avec choix de la précision à $10^{-6}$.
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{Clés} sont disponibles pour la commande du seuil :
\begin{itemize}
@@ -930,18 +994,20 @@ Plusieurs \Cle{Clés} sont disponibles pour la commande du seuil :
\smallskip
Le premier argument \textit{obligatoire} est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$, et le second est le seuil à dépasser.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
on cherche $n$ tel que $u_n > 5$.\\
\SolutionSeuil[Balayage,No=1,UNo=2]{1+(1+x**2)/(1+x)}{5}.
-~\SolutionSeuil[Calculatrice,Precision=4,No=1,UNo=2,Conclusion=false]{1+(1+x**2)/(1+x)}{5}.\\
-\end{codetex}
+
+\SolutionSeuil[Calculatrice,Precision=4,No=1,UNo=2,Conclusion=false]%
+{1+(1+x**2)/(1+x)}{5}.
+\end{PresentationCodePL}
\subsection{Exemple d'utilisation}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
on obtient le tableau de valeurs suivant :
\begin{tabular}{c|c}
@@ -951,35 +1017,47 @@ on obtient le tableau de valeurs suivant :
\end{tabular}\\
\SolutionSeuil[Precision=4,No=1,UNo=2,Simple]{1+(1+x**2)/(1+x)}{10} (Ainsi $u_n > 10$ à partir de $n=\the\CompteurSeuil$)
-\end{codetex}
+\end{PresentationCodePL}
\newpage
-\part{Outils graphiques, via \TikZ}
+\phantom{t}\par\vfill\par
+\begin{PART}
+ \begin{center}
+ \Huge\MakeUppercase{Outils graphiques}
+ \end{center}
+\end{PART}
+\par\vfill\par\phantom{t}
-\section{Repérage et tracé de courbes, en \TikZ}\label{reperagetikz}
+\newpage
+
+\part{Outils graphiques}
+
+\section{Repérage et tracé de courbes}\label{reperagetikz}
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.1.1} L'idée est de proposer des commandes \textit{simplifiées} pour tracer un repère, en \TikZ, avec :
\begin{itemize}
\item axes et graduations, grille ;
\item courbe.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeinfo}
+\begin{noteblock}
Au niveau du code, il y aura donc plusieurs \textit{aspects} :
\begin{itemize}
\item le paramétrage de la fenêtre graphique directement dans la déclaration de l'environnement ;
\item les commandes de tracés avec options et clés.
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%version basique
\begin{tikzpicture}[paramètres]
%grille et axes
@@ -990,9 +1068,9 @@ Au niveau du code, il y aura donc plusieurs \textit{aspects} :
%courbe
\CourbeTikz[options]{fonction}{valxmin:valxmax}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%version simplifiée
\begin{tikzpicture}[<paramètres>]
%grille et axes
@@ -1000,9 +1078,9 @@ Au niveau du code, il y aura donc plusieurs \textit{aspects} :
%courbe
\CourbeTikz[options]{fonction}{valxmin:valxmax}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{tikzpicture}%
[x=0.1cm,y=0.0167cm, %unités
xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
@@ -1011,13 +1089,11 @@ Au niveau du code, il y aura donc plusieurs \textit{aspects} :
\CourbeTikz[line width=1.25pt,ForestGreen,samples=250]%
{\x*\x*exp(-0.05*\x)+1}{0:60} %courbe
\end{tikzpicture}
-\end{codesortie}
-
-\pagebreak
+\end{PresentationCodePL}
\subsection{Commandes, clés et options}
-\begin{codeinfo}
+\begin{noteblock}
Les \Cle{paramètres} nécessaires à la bonne utilisation des commandes suivantes sont à déclarer directement dans l'environnement \ctex{tikzpicture}, seules les versions \og x \fg{} sont présentées ici:
\begin{itemize}
@@ -1033,23 +1109,24 @@ La fenêtre d'affichage (de sortie) sera donc \textit{portée} par le rectangle
\smallskip
Les commandes ont -- pour certaines -- pas mal de \Cle{clés} pour des réglages fins, mais dans la majorité des cas elles ne sont pas forcément \textit{utiles}.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\GrilleTikz[options][options grille ppale][options grille second.]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande permet de tracer une grille principale et/ou une grille secondaire :
\begin{itemize}
\item les premières \Cle{clés} sont les booléens \Cle{Affp} et \Cle{Affs} qui affichent ou non les grilles ;\hfill~défaut \Cle{true}
\item les options des grilles sont en \TikZ. \hfill~défaut \Cle{thin,lightgray} et \Cle{very thin,lightgray}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}%
[x=0.1cm,y=0.0167cm, %unités
xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
@@ -1063,9 +1140,9 @@ Cette commande permet de tracer une grille principale et/ou une grille secondair
ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
\GrilleTikz[Affp=false][][orange,densely dotted]
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill~
\begin{tikzpicture}%
[x=0.1cm,y=0.0167cm, %unités
@@ -1081,32 +1158,41 @@ Cette commande permet de tracer une grille principale et/ou une grille secondair
\GrilleTikz[Affp=false][][orange,densely dotted]
\end{tikzpicture}
\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
+
+\pagebreak
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\AxesTikz[options]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande permet de tracer les axes, avec des \Cle{clés} :
\begin{itemize}
\item \Cle{Epaisseur} qui est l'épaisseur des axes ; \hfill~défaut \Cle{1pt}
\item \Cle{Police} qui est le style des labels des axes ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont}
- \item \cmaj{2.1.2} \Cle{ElargirOx} qui est le \% l'élargissement \Cle{global} ou \Cle{G/D} de l'axe $(Ox)$ ;\hfill~défaut \Cle{0/0.05}
- \item \cmaj{2.1.2} \Cle{ElargirOy} qui est le \% l'élargissement \Cle{global} ou \Cle{B/H} de l'axe $(Oy)$ ;\hfill~défaut \Cle{0/0.05}
+ \item \cmaj{2.1.2} \Cle{ElargirOx} qui est le \% l'élargissement \Cle{global} ou \Cle{G/D} de l'axe $(Ox)$ ;
+
+ \hfill~défaut \Cle{0/0.05}
+ \item \cmaj{2.1.2} \Cle{ElargirOy} qui est le \% l'élargissement \Cle{global} ou \Cle{B/H} de l'axe $(Oy)$ ;
+
+ \hfill~défaut \Cle{0/0.05}
\item \Cle{Labelx} qui est le label de l'axe $(Ox)$ ; \hfill~défaut \Cle{\${}x\$}
\item \Cle{Labely} qui est le label de l'axe $(Oy)$ ; \hfill~défaut \Cle{\${}y\$}
- \item \Cle{AffLabel} qui est le code pour préciser quels labels afficher, entre \Cle{x}, \Cle{y} ou \Cle{xy} ; \hfill~défaut \Cle{vide}
+ \item \Cle{AffLabel} qui est le code pour préciser quels labels afficher, entre \Cle{x}, \Cle{y} ou \Cle{xy} ;
+
+ \hfill~défaut \Cle{vide}
\item \Cle{PosLabelx} pour la position du label de $(Ox)$ en bout d'axe ; \hfill~défaut \Cle{right}
\item \Cle{PosLabely} pour la position du label de $(Oy)$ en bout d'axe ; \hfill~défaut \Cle{above}
\item \Cle{EchelleFleche} qui est l'échelle de la flèche des axes ; \hfill~défaut \Cle{1}
\item \Cle{TypeFleche} qui est le type de la flèche des axes.\hfill~défaut \Cle{latex}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%code tikz
\AxesTikz
@@ -1115,9 +1201,9 @@ Cette commande permet de tracer les axes, avec des \Cle{clés} :
[AffLabel=xy,Labelx={Nombre de jours},Labely={Nombre d'individus infectés, en centaines},%
PosLabelx={above left},PosLabely={above right},%
Police=\small\sffamily,ElargirOx=0,ElargirOy=0]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill~
\begin{tikzpicture}%
[x=0.1cm,y=0.0167cm, %unités
@@ -1138,24 +1224,26 @@ Cette commande permet de tracer les axes, avec des \Cle{clés} :
Police=\small\sffamily]
\end{tikzpicture}
\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
-%les axes
+\pagebreak
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\AxexTikz[options]{valeurs}
\AxeyTikz[options]{valeurs}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} identiques pour les deux directions :
\begin{itemize}
\item \Cle{Epaisseur} qui est l'épaisseur des graduations ; \hfill~défaut \Cle{1pt}
\item \Cle{Police} qui est le style des labels des graduations ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont}
\item \Cle{PosGrad} qui est la position des graduations par rapport à l'axe ; \hfill~défaut \Cle{below} et \Cle{left}
- \item \Cle{HautGrad} qui est la position des graduations (sous la forme \Cle{lgt} ou \Cle{lgta/lgtb}) ; \hfill~défaut \Cle{4pt}
+ \item \Cle{HautGrad} qui est la position des graduations (sous la forme \Cle{lgt} ou \Cle{lgta/lgtb}) ;
+
+ \hfill~défaut \Cle{4pt}
\item le booléen \Cle{AffGrad} pour afficher les valeurs (formatés avec \ctex{num} donc dépendant de \ctex{sisetup}) des graduations ; \hfill~défaut \Cle{true}
\item le booléen \Cle{AffOrigine} pour afficher la graduation de l'origine ; \hfill~défaut \Cle{true}
\item le booléen \Cle{Annee} qui permet de ne pas formater les valeurs des graduations (type \textsf{année}) ;
@@ -1168,9 +1256,10 @@ Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} ide
\hfill~défaut \Cle{false}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%code tikz
\AxexTikz[Police=\small]{0,5,...,55}
\AxeyTikz[Police=\small]{0,30,...,210}
@@ -1178,9 +1267,9 @@ Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} ide
\AxexTikz[Police=\small,HautGrad=0pt/4pt]{0,5,...,55}
\AxeyTikz[AffGrad=false,HautGrad=6pt]{0,30,...,210}
%des axes fictifs (en gris) sont rajoutés pour la lisibilité du code de sortie
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill~
\begin{tikzpicture}%
[x=0.1cm,y=0.0167cm, %unités
@@ -1202,39 +1291,41 @@ Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} ide
\AxeyTikz[AffGrad=false,HautGrad=6pt]{0,30,...,210}
\end{tikzpicture}
\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}[x=2cm,y=1cm,xmin=0,xmax={2*pi},xgrille=0.5,xgrilles=0.25,
ymin=-1.15,ymax=1.15,ygrille=0.5,ygrilles=0.25]
\GrilleTikz \AxesTikz
- \AxexTikz[Trigo]{{pi/6},{pi/4},{pi/3},{pi/2},{2*pi/3},{3*pi/4},{5*pi/6},pi,{7*pi/6},{5*pi/4}}
+ \AxexTikz[Trigo]{{pi/6},{pi/4},{pi/3},{pi/2},{2*pi/3},%
+ {3*pi/4},{5*pi/6},pi,{7*pi/6},{5*pi/4}}
\CourbeTikz[thick,blue,samples=250]{cos(deg(\x))}{0:2*pi}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{tikzpicture}
[x=2cm,y=1cm,xmin=0,xmax={2*pi},xgrille=0.5,xgrilles=0.25,
ymin=-1.15,ymax=1.15,ygrille=0.5,ygrilles=0.25]
\GrilleTikz \AxesTikz
- \AxexTikz[Trigo]{{pi/6},{pi/4},{pi/3},{pi/2},{2*pi/3},{3*pi/4},{5*pi/6},pi,{7*pi/6},{5*pi/4}}
+ \AxexTikz[Trigo]{{pi/6},{pi/4},{pi/3},{pi/2},{2*pi/3},%
+ {3*pi/4},{5*pi/6},pi,{7*pi/6},{5*pi/4}}
\CourbeTikz[thick,blue,samples=250]{cos(deg(\x))}{0:2*pi}
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
La clé \Cle{Trigo} utilise, en interne, une commande qui permet de \textit{transformer} les abscisses, données en langage \TikZ, en fraction en \LaTeX.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}
+\begin{PresentationCodePL}{}
$\AffAngleRadian{0}$ \quad $\AffAngleRadian{pi}$ \quad $\AffAngleRadian{pi/4}$ \quad
$\AffAngleRadian{2*pi/3}$ \quad $\AffAngleRadian{-2*pi/3}$ \quad $\AffAngleRadian*{-2*pi/3}$
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Commandes annexes}
-\begin{codeinfo}
+\begin{noteblock}
Il existe, de manière marginale, quelques commandes complémentaires qui ne seront pas trop détaillées mais qui sont existent :
\begin{itemize}
@@ -1242,25 +1333,26 @@ Il existe, de manière marginale, quelques commandes complémentaires qui ne ser
\item \ctex{FenetreSimpleTikz} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ;
\item \ctex{OrigineTikz} pour rajouter le libellé de l'origine si non affiché par les axes.
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%code tikz
\FenetreTikz %on restreint les tracés
\FenetreSimpleTikz%
[options](opt axes)<opt axe Ox>{valeurs Ox}<opt axe Oy>{valeurs Oy}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer, en \textit{complément}, une commande simplifiée pour tracer une courbe en \TikZ.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\CourbeTikz[options]{formule}{domaine}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande permet de rajouter une courbe sur le graphique (sans se soucier de la transformation de son expression) avec les arguments :
\begin{itemize}
@@ -1268,9 +1360,10 @@ Cette commande permet de rajouter une courbe sur le graphique (sans se soucier d
\item le premier \textit{obligatoire}, est - en langage \TikZ{} - l'expression de la fonction à tracer, donc avec \ctex{\textbackslash{}x} comme variable ;
\item le second \textit{obligatoire} est le domaine du tracé, sous la forme \ctex{valxmin:valxmax}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}[x=0.1cm,y=0.0167cm, %unités
xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
@@ -1280,9 +1373,9 @@ Cette commande permet de rajouter une courbe sur le graphique (sans se soucier d
\CourbeTikz[line width=1.25pt,ForestGreen,samples=250]%
{\x*\x*exp(-0.05*\x)+1}{0:60} %courbe
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{tikzpicture}%
[x=0.1cm,y=0.0167cm, %unités
xmin=0,xmax=60,xgrille=5,xgrilles=5,ymin=0,ymax=240,ygrille=30,ygrilles=30]
@@ -1291,22 +1384,22 @@ Cette commande permet de rajouter une courbe sur le graphique (sans se soucier d
\CourbeTikz[line width=1.25pt,ForestGreen,samples=250]%
{\x*\x*exp(-0.05*\x)+1}{0:60} %courbe
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Repère non centré en O}
-\begin{codeidee}
+\begin{tipblock}
Parfois on est amené à travailler dans des repères qui n'ont pas forcément pour origine $(0\,;\,0)$. De ce fait - pour éviter des erreurs de \ctex{dimension too large} liées à \TikZ{} - il faut \textit{décaler les axes} pour se ramener à une origine en $O$. L'idée est donc d'utiliser les commandes précédentes, sans se soucier des éventuelles transformations !
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2010,%
xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1710,ygrille=10,ygrilles=5]
\FenetreSimpleTikz<Annee,Police=\scriptsize>{1992,1994,...,2008}{1640,1650,...,1700}
\FenetreTikz
\CourbeTikz[line width=1.25pt,orange,samples=500]{-(\x-2000)*(\x-2000)+1700}{\xmin:\xmax}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
\pagebreak
@@ -1314,7 +1407,7 @@ Parfois on est amené à travailler dans des repères qui n'ont pas forcément p
\subsection{Courbe d'interpolation}
-\begin{codeinfo}
+\begin{noteblock}
On va utiliser les notions suivantes pour paramétrer le tracé \og automatique \fg{} grâce à \ctex{..controls} :
%
\begin{itemize}
@@ -1337,19 +1430,20 @@ Pour déclarer les paramètres :
\item on peut mixer avec \averb|coeffs=C1§C2G/C2D§...|.
\end{itemize}
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
\subsection{Code, clés et options}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}
...
\SplineTikz[options]{liste}
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Certains paramètres et \Cle{clés} peuvent être gérés directement dans la commande \ctex{splinetikz} :
%
\begin{itemize}
@@ -1360,11 +1454,12 @@ Certains paramètres et \Cle{clés} peuvent être gérés directement dans la co
\item les points de contrôle , affichés ou non par la {clé booléenne} \Cle{AffPoints} ;\hfill{}défaut \Cle{false}
\item la taille des points de contrôle est géré par la {clé} \Cle{TaillePoints}.\hfill{}défaut \Cle{2pt}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
\subsection{Compléments sur les coefficients de \og compensation \fg}
-\begin{codeidee}
+\begin{tipblock}
Le choix a été fait ici, pour \textit{simplifier} le code, le travailler sur des courbes de Bézier.
Pour \textit{simplifier} la gestion des nombres dérivés, les points de contrôle sont gérés par leurs coordonnées \textit{polaires}, les \textsf{coefficients de compensation} servent donc -- grosso modo -- à gérer la position radiale.
@@ -1382,11 +1477,11 @@ Pour des intervalles \textit{étroits}, la \textit{pente} peut paraître abrupte
\medskip
Si jamais il existe (un ou) des points \textit{anguleux}, le plus simple est de créer les splines en plusieurs fois.
-\end{codeidee}
+\end{tipblock}
\subsection{Exemples}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\def\x{0.9cm}\def\y{0.9cm}
\def\xmin{-1}\def\xmax{11}\def\xgrille{1}\def\xgrilles{0.5}
@@ -1402,9 +1497,9 @@ Si jamais il existe (un ou) des points \textit{anguleux}, le plus simple est de
%splines
\def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10}
\SplineTikz[AffPoints,Coeffs=3,Couleur=red]{\LISTE}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Avec des explications utiles à la compréhension :
\begin{center}
@@ -1416,11 +1511,11 @@ Avec des explications utiles à la compréhension :
\listecoeffs{3}{3}{3}{3}
\end{tikzpicture}
\end{center}
-\end{codeinfo}
+\end{noteblock}
\subsection{Avec une gestion plus fine des \og coefficients \fg}
-\begin{codeinfo}
+\begin{noteblock}
Dans la majorité des cas, le \textit{coefficient} \textcircled{3} permet d'obtenir une courbe (ou une portion) très satisfaisante !
Dans certains cas, il se peut que la portion paraisse un peu trop \og abrupte \fg{}.
@@ -1438,17 +1533,17 @@ On peut dans ce cas \textit{jouer} sur les coefficients de cette portion pour \t
\listecoeffs{3/3}{3/3}{3/3}{2/1}
\end{tikzpicture}
\end{center}
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
...
%splines
\def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10}
\SplineTikz[AffPoints,Coeffs=3§3§3§2/1]{\LISTE}
...
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=5,ygrille=1,ygrilles=0.5]
%axes et grilles
@@ -1464,11 +1559,11 @@ On peut dans ce cas \textit{jouer} sur les coefficients de cette portion pour \t
\SplineTikz[AffPoints,Coeffs=3§3§3§2/1]{\LISTE}
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Conclusion}
-\begin{codeinfo}
+\begin{noteblock}
Le plus \og simple \fg{} est donc:
%
\begin{itemize}
@@ -1476,7 +1571,8 @@ Le plus \og simple \fg{} est donc:
\item de saisir la commande \ctex{\textbackslash SplineTikz[...]\{\textbackslash LISTE\}} ;
\item d'ajuster les options et coefficients en fonction du rendu !
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
\newpage
@@ -1484,23 +1580,23 @@ Le plus \og simple \fg{} est donc:
\subsection{Définitions}
-\begin{codeidee}
+\begin{tipblock}
En parallèle de l'outil \ctex{SplineTikz}, il existe l'outil \ctex{TangenteTikz} qui va permettre de tracer des tangentes à l'aide de la liste de points précédemment définie pour l'outil \ctex{SplineTikz}.
\smallskip
NB : il peut fonctionner indépendamment de l'outil \ctex{SplineTikz} puisque la liste des points de travail est gérée de manière autonome !
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}
...
\TangenteTikz[options]{liste}
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cela permet de tracer la tangente :
%
\begin{itemize}
@@ -1508,11 +1604,12 @@ Cela permet de tracer la tangente :
\item avec une épaisseur de \Cle{Epaisseur}, une couleur \Cle{Couleur} et un style additionnel \Cle{Style} ;
\item en la traçant à partir de \Cle{xl} avant \textsf{xi} et jusqu'à \Cle{xr} après \textsf{xi}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
\subsection{Exemple et illustration}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}
...
\def\LISTE{0/1.5/0§1/2/-0.333§2/0/-5}
@@ -1524,9 +1621,9 @@ Cela permet de tracer la tangente :
\TangenteTikz[xl=0.33,xr=0,Couleur=blue,Style=densely dashed,Point=3]{\LISTE}
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
On obtient le résultat suivant (avec les éléments rajoutés utiles à la compréhension) :
\begin{center}
@@ -1551,11 +1648,11 @@ On obtient le résultat suivant (avec les éléments rajoutés utiles à la comp
\draw[thick,darkgray] (4pt,1)--(-4pt,1) node[left,font=\sffamily] {1} ;
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Exemple avec les deux outils, et \og personnalisation \fg}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\tikzset{%
xmin/.store in=\xmin,xmin/.default=-5,xmin=-5,
xmax/.store in=\xmax,xmax/.default=5,xmax=5,
@@ -1585,9 +1682,9 @@ On obtient le résultat suivant (avec les éléments rajoutés utiles à la comp
%la courbe en elle-même
\SplineTikz[AffPoints,Coeffs=3,Couleur=cyan,Style=densely dotted]{\liste}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[x=0.5cm,y=0.5cm,xmin=0,xmax=16,xgrilles=1,ymin=0,ymax=16,ygrilles=1]
\draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray] (\xmin,\ymin) grid (\xmax,\ymax) ;
@@ -1608,7 +1705,7 @@ On obtient le résultat suivant (avec les éléments rajoutés utiles à la comp
\SplineTikz[AffPoints,Coeffs=3,Couleur=cyan,Style=densely dotted]{\liste}
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -1616,7 +1713,7 @@ On obtient le résultat suivant (avec les éléments rajoutés utiles à la comp
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir une commande pour tracer (en \TikZ) un petit schéma pour \textit{visualiser} le signe d'une fonction affine ou d'un trinôme.
Le code est largement inspiré de celui du package \ctex{tnsana} même si la philosophie est un peu différente.
@@ -1628,27 +1725,27 @@ Comme pour les autres commandes \TikZ, l'idée est de laisser la possibilité à
\smallskip
\cmaj{2.1.9} Il est à noter que la version \textit{étoilée} rend la commande autonome, sans besoin de créer l'environnement \TikZ.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\MiniSchemaSignes*
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}[<options>]
\MiniSchemaSignes[clés]
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
{\tikz[options] \MiniSchemaSignes[clés]}
%ou
\MiniSchemaSignes*[clés]<options tikzpicture>
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
\cmaj{2.1.9} La version \textit{étoilée} de la commande permet de basculer en mode \textit{autonome}, c'est-à-dire sans avoir besoin de créer son environnement \TikZ.
\smallskip
@@ -1665,9 +1762,9 @@ Le premier argument, \textit{optionnel} et entre \textsf{[...]}, contient les \C
\end{itemize}
Le second argument, \textit{optionnel} et entre \textsf{<...>}, permet de spécifier (pour la commande \textit{étoilée}), des options à passer à l'environnement \ctex{tikzpicture}.
-\end{codecles}
+\end{cautionblock}
-\begin{codecles}
+\begin{cautionblock}
Pour la clé \Cle{code}, il est construit par le type (\textsf{a} pour affine ou \textsf{p} comme parabole) puis les éléments caractéristiques (\textsf{a+} pour $a>0$, \textsf{d0} pour $\Delta=0$, etc) :
\begin{itemize}
@@ -1676,11 +1773,12 @@ Pour la clé \Cle{code}, il est construit par le type (\textsf{a} pour affine ou
\item \Cle{Code=pa+d+} := une parabole \textit{souriante} avec deux racines ;
\item etc
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
\pagebreak
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\MiniSchemaSignes*[Code=da+,Racines=-4]
~~~~
@@ -1702,9 +1800,9 @@ Pour la clé \Cle{code}, il est construit par le type (\textsf{a} pour affine ou
~~~~
\MiniSchemaSignes*[Code=pa-d0,Racines={-1},Couleur=magenta]
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\MiniSchemaSignes*[Code=da+,Racines=-4]
~~~~
@@ -1726,34 +1824,34 @@ Pour la clé \Cle{code}, il est construit par le type (\textsf{a} pour affine ou
~~~~
\MiniSchemaSignes*[Code=pa-d0,Racines={-1},Couleur=magenta]
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{tikzpicture}
\MiniSchemaSignes[Largeur=3.5,Hauteur=1.5,Code=da-,Racines=\tfrac{-b}{a},Couleur=Plum]
\end{tikzpicture}
\MiniSchemaSignes*[Code=da-,Racines=\tfrac{-b}{a},Couleur=Plum]<x=1.75cm,y=1.5cm>
-\end{codetex}
+\end{PresentationCodePL}
\pagebreak
\subsection{Intégration avec tkz-tab}
-\begin{codeidee}
+\begin{tipblock}
Ces schémas peuvent être de plus utilisés, via la commande \ctex{MiniSchemaSignesTkzTab} pour illustrer les signes obtenus dans un tableau de signes présentés grâce au package \ctex{tkz-tab}.
Pour des raisons internes, le fonctionnement de la commande \ctex{MiniSchemaSignesTkzTab} est légèrement différent et, pour des raisons que j'ignore, le code est légèrement différent en \textit{interne} (avec une \textit{déconnexion} des caractères \textsf{:} et \textsf{\textbackslash}) pour que la librairie \TikZ{} \ctex{calc} puisse fonctionner (mystère pour le moment\ldots)
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}
%commandes tkztab
\MiniSchemaSignesTkzTab[options]{numligne}[echelle][décalage horizontal]
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Les \Cle{Clés} pour le premier argument \textit{optionnel} sont les mêmes que pour la version \textit{initiale} de la commande précédente.
En ce qui concerne les autres arguments :
@@ -1765,9 +1863,9 @@ En ce qui concerne les autres arguments :
\end{itemize}
À noter que si l'un des arguments optionnels (le n°3 et/ou le n°4) sont utilisés, il vaut mieux préciser les 2 !
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\begin{tikzpicture}
\tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
@@ -1776,12 +1874,13 @@ En ce qui concerne les autres arguments :
\tkzTabLine{,-,z,+,z,-,}
\MiniSchemaSignesTkzTab[Code=da-,Racines={\tfrac{5}{2}},Couleur=blue]{1}
\MiniSchemaSignesTkzTab[Code=da+,Racines={-2},Couleur=purple]{2}
- \MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/{\tfrac{5}{2}}},Couleur=orange]{3}[0.85][2]
+ \MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/{\tfrac{5}{2}}},Couleur=orange]%
+ {3}[0.85][2]
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}
\tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
@@ -1793,7 +1892,7 @@ En ce qui concerne les autres arguments :
\MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/{\tfrac{5}{2}}},Couleur=orange]{3}[0.85][2]
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -1801,26 +1900,26 @@ En ce qui concerne les autres arguments :
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir une commande pour tracer (en \TikZ) la \og toile \fg{} permettant d'obtenir -- graphiquement -- les termes d'une suite récurrente définie par une relation $u_{n+1}=f(u_n)$.
\smallskip
Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{ToileRecurrence} pour afficher la \og toile \fg.
-\end{codeidee}
+\end{tipblock}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
...
\begin{tikzpicture}[options]
...
\ToileRecurrence[clés][options du tracé][options supplémentaires des termes]
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{arguments} (optionnels) sont disponibles :
\begin{itemize}
@@ -1832,9 +1931,13 @@ Plusieurs \Cle{arguments} (optionnels) sont disponibles :
\item la clé \Cle{Uno} qui est la valeur du terme initial ;\hfill{}défaut \Cle{vide}
\item la clé \Cle{Nb} qui est le nombre de termes à construire ;\hfill{}défaut \Cle{5}
\item la clé \Cle{PosLabel} qui est le placement des labels par rapport à l'axe $(Ox)$ ;\hfill{}défaut \Cle{below}
- \item la clé \Cle{DecalLabel} qui correspond au décalage des labels par rapport aux abscisses ;\hfill{}défaut \Cle{6pt}
+ \item la clé \Cle{DecalLabel} qui correspond au décalage des labels par rapport aux abscisses ;
+
+ \hfill{}défaut \Cle{6pt}
\item la clé \Cle{TailleLabel} qui correspond à la taille des labels ;\hfill{}défaut \Cle{small}
- \item un booléen \Cle{AffTermes} qui permet d'afficher les termes de la suite sur l'axe $(Ox)$.\hfill{}défaut \Cle{true}
+ \item un booléen \Cle{AffTermes} qui permet d'afficher les termes de la suite sur l'axe $(Ox)$.
+
+ \hfill{}défaut \Cle{true}
\end{itemize}
\item le deuxième argument optionnel concerne les \Cle{options} du tracé de l'\textit{escalier} en \textit{langage \TikZ} ;
@@ -1843,9 +1946,10 @@ Plusieurs \Cle{arguments} (optionnels) sont disponibles :
\hfill{}défaut \Cle{dotted}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
Il est à noter que le \textsf{code} n'est pas autonome, et doit être intégré dans un environnement \ctex{tikzpicture}.
\smallskip
@@ -1857,15 +1961,16 @@ L'utilisateur est donc libre de définir ses styles pour l'affichage des éléme
La macro ne permet -- pour le moment -- ni de tracer la bissectrice, ni de tracer la courbe$\ldots$
En effet, il y aurait trop d'options pour ces deux éléments, et l'idée est quand même de conserver une commande \textit{simple} ! Donc l'utilisateur se chargera de tracer et de personnaliser sa courbe et sa bissectrice !
-\end{codeinfo}
+\end{noteblock}
\subsection{Exemples}
-\begin{codeinfo}
-On va tracer la \textit{toile} des 4 premiers termes de la suite récurrente $\begin{dcases} u_1 = 1 \\ u_{n+1} = \sqrt{5u_n}+1 \text{ pour tout entier } n \geqslant 1\end{dcases}$.
-\end{codeinfo}
+\begin{noteblock}
+On va tracer la \textit{toile} des 4 premiers termes de la suite récurrente :\\
+$\begin{dcases} u_1 = 1 \\ u_{n+1} = \sqrt{5u_n}+1 \text{ pour tout entier } n \geqslant 1\end{dcases}$.
+\end{noteblock}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\def\x{1.5cm}\def\y{1.5cm}
\def\xmin{0}\def\xmax{10}\def\xgrille{1}\def\xgrilles{0.5}
@@ -1883,15 +1988,15 @@ On va tracer la \textit{toile} des 4 premiers termes de la suite récurrente $\b
%éléments supplémentaires
\draw[very thick,blue,domain=0:8,samples=250] plot (\x,{\f}) ;
\draw[very thick,ForestGreen,domain=0:8,samples=2] plot (\x,\x) ;
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Peut-être que -- ultérieurement -- des options \textit{booléennes} seront disponibles pour un tracé \textit{générique} de la courbe et de la bissectrice, mais pour le moment la \textsf{macro} ne fait \textit{que} l'escalier.
-\end{codeinfo}
+\end{noteblock}
\subsection{Influence des paramètres}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\begin{tikzpicture}[x=4cm,y=3cm]
%axes + grilles + graduations
@@ -1906,9 +2011,9 @@ Peut-être que -- ultérieurement -- des options \textit{booléennes} seront dis
\ToileRecurrence[Fct={\f},No=0,Uno=2,Nb=5,PosLabel=above right,DecalLabel=0pt]
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[x=4cm,y=3cm]
\draw[xstep=0.25,ystep=0.25,line width=0.3pt,lightgray!50] (0,0) grid (2.5,1.25);
@@ -1929,9 +2034,9 @@ Peut-être que -- ultérieurement -- des options \textit{booléennes} seront dis
\ToileRecurrence[Fct={\f},No=0,Uno=2,Nb=5,PosLabel=above right,DecalLabel=0pt]
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\begin{tikzpicture}[x=5cm,y=1.5cm]
...
@@ -1943,9 +2048,9 @@ Peut-être que -- ultérieurement -- des options \textit{booléennes} seront dis
\draw[line width=1.25pt,red,domain=0.8:2.5,samples=250] plot(\x,{\f});
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[x=5cm,y=1.5cm]
%axes et grille
@@ -1966,7 +2071,17 @@ Peut-être que -- ultérieurement -- des options \textit{booléennes} seront dis
\draw[line width=1.25pt,red,domain=0.8:2.5,samples=250] plot(\x,{\f});
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
+
+\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
@@ -1976,43 +2091,43 @@ Peut-être que -- ultérieurement -- des options \textit{booléennes} seront dis
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
Le {package} \ctex{listings} permet d'insérer et de formater du code, notamment du code \textsf{Python}.
En \textit{partenariat} avec \ctex{tcolorbox}, on peut donc présenter \textit{joliment} du code \textsf{Python} !
-\end{codeidee}
+\end{tipblock}
-\begin{codeinfo}
+\begin{noteblock}
Le package \ctex{listings} ne nécessite pas de compilation particulière, au contraire d'autres (comme \ctex{pythontex} ou \ctex{minted} ou \ctex{piton}) qui seront présentés ultérieurement.
-\end{codeinfo}
+\end{noteblock}
-\begin{codeinfo}
+\begin{noteblock}
Les styles utilisés pour formater le code \textsf{Python} ne sont pas modifiables. Ils donnent un rendu proche de celui des packages comme \ctex{pythontex} ou \ctex{minted} ou \ctex{piton}.
\smallskip
Donc, si plusieurs \textit{méthodes} sont utilisées pour insérer du code \textsf{Python} (via les \textit{méthodes} suivantes), le rendu pourra être légèrement différent.
-\end{codeinfo}
+\end{noteblock}
\subsection{Commande et options}
-\begin{codeidee}
+\begin{tipblock}
L'environnement \ctex{CodePythonLst} permet de présenter du code \textsf{Python}, dans une \ctex{tcolorbox} avec deux styles particuliers (\cmaj{2.5.8}).
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonLst}(*)[largeur]{commandes tcbox}
...
\end{CodePythonLst}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonLstAlt}(*)[largeur]{commandes tcbox}
...
\end{CodePythonLstAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{arguments} sont disponibles :
\begin{itemize}
@@ -2020,15 +2135,16 @@ Plusieurs \Cle{arguments} sont disponibles :
\item le premier argument (\textit{optionnel}), concerne la \Cle{largeur} de la \ctex{tcbox} ;\hfill{}défaut \Cle{\textbackslash linewidth}
\item le second argument (\textit{obligatoire}), concerne des \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}, comme l'alignement.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeattention}
+\begin{warningblock}
Les environnements \ctex{DeclareTCBListing} créés par \ctex{tcolorbox} et \ctex{listings} ne sont pas compatibles avec les options \Cle{gobble} (pour supprimer les tabulations d'environnement), donc il faut bien penser à \og aligner \fg{} le code à gauche, pour éviter des tabulations non esthétiques !
-\end{codeattention}
+\end{warningblock}
\subsection{Insertion via un fichier \og externe \fg}
-\begin{codeidee}
+\begin{tipblock}
Pour des raison pratiques, il est parfois intéressant d'avoir le code \textsf{Python} dans un fichier externe au ficher \ctex{tex}, ou bien créé directement par le fichier \ctex{tex} (via \ctex{scontents}, notamment, mais non chargé par \ctex{ProfLycee}).
Dans ce cas, il n'est pas nécessaire d'aligner le code \og à gauche \fg, en utilisant une commande alternative.
@@ -2036,17 +2152,17 @@ Dans ce cas, il n'est pas nécessaire d'aligner le code \og à gauche \fg, en ut
\smallskip
Si cette méthode est utilisée, il ne faut oublier de charger le package \ctex{scontents}.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\usepackage{scontents} %si script déclaré dans le fichier tex
...
\CodePythonLstFichier(*)[largeur]{commandes tcbox}{script}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Exemples}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonLst}{} %les {}, même vides, sont nécessaires (bug avec # sinon !)
#environnement par défaut
nb = int(input("Saisir un entier positif"))
@@ -2057,9 +2173,9 @@ if (nb %7 == 0) :
def f(x) :
return x**2
\end{CodePythonLst}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{CodePythonLst}{}
#environnement par défaut
nb = int(input("Saisir un entier positif"))
@@ -2070,9 +2186,9 @@ if (nb %7 == 0) :
def f(x) :
return x**2
\end{CodePythonLst}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonLstAlt}*[0.75\linewidth]{flush right}
#largeur de 50%, sans numéro, et aligné à droite
nb = int(input("Saisir un entier Python positif"))
@@ -2083,9 +2199,9 @@ if (nb %7 == 0) :
def f(x) :
return x**2
\end{CodePythonLstAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{CodePythonLstAlt}*[0.75\linewidth]{flush right}
#largeur de 50%, sans numéro, et aligné à droite
nb = int(input("Saisir un entier Python positif"))
@@ -2096,9 +2212,9 @@ if (nb %7 == 0) :
def f(x) :
return x**2
\end{CodePythonLstAlt}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{scontents}[overwrite,write-out=testscript.py]
# Calcul de la factorielle en langage Python
def factorielle(x):
@@ -2128,9 +2244,9 @@ def trace_parabole_tableaux():
%environnement centré, avec numéros, largeur 9cm
\CodePythonLstFichier[9cm]{center}{testscript.py}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{scontents}[overwrite,write-out=testscript.py]
# Calcul de la factorielle en langage Python
def factorielle(x):
@@ -2159,7 +2275,7 @@ def trace_parabole_tableaux():
\end{scontents}
\CodePythonLstFichier[9cm]{center}{testscript.py}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -2167,18 +2283,18 @@ def trace_parabole_tableaux():
\subsection{Introduction}
-\begin{codeinfo}
+\begin{noteblock}
\cmaj{2.5.0} Cette section nécessite de charger la \textsf{librairie} \clib{piton} dans le préambule.
\cmaj{2.5.7} Une console \textsf{Python} est disponible, elle nécessite le package \ctex{pyluatex}, qui n'est pas chargé par \ctex{ProfLycee}, du fait de l'obligation de spécifier le \textit{chemin} pour l'exécutable \textsf{Python} !
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\usepackage[executable=...]{pyluatex} %si utilisation de la console REPL
\useproflyclib{piton}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
La \textsf{librairie} \clib{piton} (qui charge \ctex{piton}, est compatible uniquement avec \hologo{LuaLaTeX} !) permet d'insérer du code \textsf{Python} avec une coloration syntaxique en utilisant la bibliothèque \textsf{Lua LPEG}.
\smallskip
@@ -2192,9 +2308,9 @@ Depuis la version \ctex{0.95} de \ctex{piton}, \Cle{left-margin=auto} est dispon
Depuis la version \ctex{0.99} de \ctex{piton}, \Cle{break-lines} est disponible et activée dans \ctex{ProfLycee}.
Depuis la version \ctex{1.0} de \ctex{piton}, \Cle{tabs-auto-gobble} est disponible et activée dans \ctex{ProfLycee}.
-\end{codeinfo}
+\end{noteblock}
-\begin{codeattention}
+\begin{warningblock}
Le package \ctex{piton} nécessite donc obligatoirement l’emploi de \hologo{LuaLaTeX} !
Ce package n'est chargé que si la compilation détectée est en \hologo{LuaLaTeX} !
@@ -2204,17 +2320,17 @@ Ce package n'est chargé que si la compilation détectée est en \hologo{LuaLaTe
\cmaj{2.5.7} L'utilisation de la console \textbf{REPL} nécessite une compilation en \ctex{--shell-escape} ou \ctex{-write18} !
\cmaj{2.5.7} Les packages \ctex{pyluatex} et \ctex{pythontex} utilisent des commandes de même nom, donc la présente documentation n'utilisera pas le package \ctex{pyluatex}. Une documentation annexe spécifique est disponible.
-\end{codeattention}
+\end{warningblock}
\subsection{Présentation de code Python}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePiton}[options]{options tcbox}
...
\end{CodePiton}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{clés} sont disponibles :
\begin{itemize}
@@ -2223,22 +2339,26 @@ Plusieurs \Cle{clés} sont disponibles :
\item la clé \Cle{Largeur} qui correspond à la largeur de la \ctex{tcbox} ; \hfill{}défaut \Cle{\textbackslash linewidth}
\item la clé \Cle{TaillePolice} pour la taille des caractères ; \hfill{}défaut \Cle{\textbackslash footnotesize}
\item la clé \Cle{Alignement} qui paramètre l'alignement de la \ctex{tcbox} ; \hfill{}défaut \Cle{center}
- \item \cmaj{2.5.7} la clé \Cle{Style} (parmi \Cle{Moderne / Classique}) pour changer le style ; \hfill{}défaut \Cle{Moderne}
+ \item \cmaj{2.5.7} la clé \Cle{Style} (parmi \Cle{Moderne / Classique}) pour changer le style ;
+
+ \hfill{}défaut \Cle{Moderne}
\item \cmaj{2.5.7} le boolén \Cle{Filigrane} pour afficher, le logo {\small \faPython} en filigrane ; \hfill{}défaut \Cle{false}
\item \cmaj{2.5.7} le boolén \Cle{BarreTitre} (si \Cle{Style=Moderne}) pour afficher le titre ; \hfill{}défaut \Cle{true}
- \item \cmaj{2.5.7} le boolén \Cle{Cadre} (si \Cle{Style=Moderne}) pour afficher le cadre. \hfill{}défaut \Cle{true}
+ \item \cmaj{2.5.7} le boolén \Cle{Cadre} (si \Cle{Style=Moderne}) pour afficher le cadre ; \hfill{}défaut \Cle{true}
+ \item \cmaj{2.5.9} la clé \Cle{CouleurNombres} pour la couleur des nombres.\hfill{}défaut \Cle{orange}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
Du fait du paramétrage des boîtes \ctex{tcolorbox}, il se peut que le rendu soit non conforme si elle doit être insérée dans une autre \ctex{tcolorbox}\ldots{} !
-\end{codeinfo}
+\end{noteblock}
-\begin{codeinfo}
+\begin{noteblock}
Pour éviter des problèmes avec le code interprété par \textsf{piton}, les \ctex{\{\}} de l'argument obligatoire sont nécessaires au bon fonctionnement du code.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePiton}{}
#environnement piton avec numéros de ligne, pleine largeur, style moderne
def arctan(x,n=10):
@@ -2249,7 +2369,7 @@ def arctan(x,n=10):
else:
return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
\end{CodePiton}
-\end{codetex}
+\end{PresentationCodePL}
\begin{CodePiton}{}
#environnement piton avec numéros de ligne, pleine largeur, style moderne
@@ -2262,7 +2382,7 @@ def arctan(x,n=10):
return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
\end{CodePiton}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePiton}[Style=Classique,Filigrane]{}
#environnement piton avec numéros, style classique, filigrane
def arctan(x,n=10):
@@ -2273,7 +2393,7 @@ def arctan(x,n=10):
else:
return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
\end{CodePiton}
-\end{codetex}
+\end{PresentationCodePL}
\begin{CodePiton}[Style=Classique,Filigrane]{}
#environnement piton avec numéros, style classique, filigrane
@@ -2286,7 +2406,7 @@ def arctan(x,n=10):
return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
\end{CodePiton}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePiton}[Alignement=flush right,Largeur=13cm]{}
def f(x) :
return x**2
@@ -2312,7 +2432,8 @@ def f(x) :
return x**2
\end{CodePiton}
\end{itemize}
-\end{codetex}
+\vspace*{-\baselineskip}\leavevmode
+\end{PresentationCodePL}
\begin{CodePiton}[Alignement=flush right,Largeur=13cm]{}
#avec numéros, de largeur 13cm, aligné à droite
@@ -2345,9 +2466,9 @@ def f(x) :
\subsection{Console en partenariat avec Pyluatex}
-\begin{codeinfo}
+\begin{noteblock}
\cmaj{2.5.7} Une console d'exécution (type REPL) est disponible, et la documentation associée est en marge de la présente documentation.
-\end{codeinfo}
+\end{noteblock}
\pagebreak
@@ -2355,20 +2476,20 @@ def f(x) :
\subsection{Librairies}
-\begin{codeinfo}
+\begin{noteblock}
\cmaj{2.5.0} Cette section nécessite de charger les librairies \clib{minted} et/ou \clib{pythontex} dans le préambule.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\useproflyclib{minted}
\useproflyclib{pythontex}
%ou
\useproflyclib{minted,pythontex}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.5.0} La \textsf{librairie} \clib{pythontex} permet d'insérer et d'exécuter du code \textsf{Python}. On peut :
\begin{itemize}
@@ -2376,39 +2497,40 @@ def f(x) :
\item exécuter du code \textsf{Python} dans un environnement type \og console \fg{} ;
\item charger du code \textsf{Python}, et éventuellement l'utiliser dans la console.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeattention}
+\begin{warningblock}
\textbf{Attention : }il faut dans ce cas une compilation en plusieurs étapes, comme par exemple \textsf{pdflatex puis pythontex puis pdflatex} !
Voir par exemple \url{http://lesmathsduyeti.fr/fr/informatique/latex/pythontex/} !
-\end{codeattention}
+\end{warningblock}
-\begin{codeinfo}
+\begin{noteblock}
Compte tenu de la \textit{relative complexité} pour gérer les options (par paramètres/clés\ldots) des \textit{tcbox} et des \textit{fancyvrb}, les style sont \og fixés \fg{} tels quels, et seules la taille et la position de la \textit{tcbox} sont modifiables. Si toutefois vous souhaitez personnaliser davantage, il faudra prendre le code correspondant et appliquer vos modifications !
Cela peut donner -- en tout cas -- des idées de personnalisation en ayant une base \textit{pré}existante !
-\end{codeinfo}
+\end{noteblock}
\subsection{Présentation de code Python grâce au package pythontex}\label{pythontex}
-\begin{codeidee}
+\begin{tipblock}
L'environnement \ctex{CodePythontex} est donc lié à \ctex{pythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code \textsf{Python}, dans une \ctex{tcolorbox} avec deux styles particuliers (\cmaj{2.5.8}).
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythontex}[options]{} %les {} vides sont nécessaires
...
\end{CodePythontex}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythontexAlt}[options]{} %les {} vides sont nécessaires
...
\end{CodePythontexAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Comme précédemment, des \Cle{Clés} qui permettent de \textit{légèrement} modifier le style :
\begin{itemize}
@@ -2418,67 +2540,68 @@ Comme précédemment, des \Cle{Clés} qui permettent de \textit{légèrement} mo
\item \Cle{EspacementVertical} : option (\textit{stretch}) pour l'espacement entre les lignes ;\hfill{}défaut \Cle{1}
\item \Cle{Lignes} : booléen pour afficher ou non les numéros de ligne.\hfill{}défaut \Cle{true}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythontex}{} %bien mettre les {} !!
#environnement Python(tex) par défaut
def f(x) :
return x**2
\end{CodePythontex}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{CodePythontex}{}
#environnement Python(tex) par défaut
def f(x) :
return x**2
\end{CodePythontex}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythontexAlt}[Largeur=12cm,Centre,Lignes=false]{}
#environnement Python(tex) classique, centré, sans lignes
def f(x) :
return x**2
\end{CodePythontexAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{CodePythontexAlt}[Largeur=12cm,Centre,Lignes=false]{}
#environnement Python(tex) classique, centré, sans lignes
def f(x) :
return x**2
\end{CodePythontexAlt}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Présentation de code Python via le package minted}\label{pytminted}
-\begin{codeinfo}
+\begin{noteblock}
Pour celles et ceux qui ne sont pas à l'aise avec le {package} \ctex{pythontex} et notamment sa spécificité pour compiler, il existe le {package} \ctex{minted} qui permet de présenter du code, et notamment \textsf{Python}.
\cmaj{2.5.8} Deux styles sont désormais disponibles.
\cmaj{2.5.0} C'est donc la \textsf{librairie} \clib{minted} qu'il faudra charger.
-\end{codeinfo}
+\end{noteblock}
-\begin{codeattention}
+\begin{warningblock}
Le package \ctex{minted} nécessite quand même une compilation avec l'option \ctex{--shell-escape} ou \ctex{-write18} !
-\end{codeattention}
+\end{warningblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonMinted}(*)[largeur]{options}
...
\end{CodePythonMinted}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonMintedAlt}(*)[largeur]{options}
...
\end{CodePythonMintedAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{arguments} sont disponibles :
\begin{itemize}
@@ -2486,55 +2609,56 @@ Plusieurs \Cle{arguments} sont disponibles :
\item le 1\up{er} argument \textit{optionnel} concerne la \Cle{largeur} de la \ctex{tcbox} ;\hfill{}défaut \Cle{12cm}
\item le 2\up{nd} argument \textit{obligatoire} concerne les \Cle{options} de la \ctex{tcbox} en \textit{langage tcbox}.\hfill{}défaut \Cle{vide}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonMinted}[13cm]{center}
#environnement Python(minted) centré avec numéros, de largeur 13cm
def f(x) :
return x**2
\end{CodePythonMinted}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{CodePythonMinted}[13cm]{center}
#environnement Python(minted) centré avec numéros
def f(x) :
return x**2
\end{CodePythonMinted}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{CodePythonMintedAlt}*[0.8\linewidth]{}
#environnement Python(minted), style alt, sans numéro, de largeur 0.8\linewidth
def f(x) :
return x**2
\end{CodePythonMintedAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{CodePythonMintedAlt}*[0.8\linewidth]{}
- #environnement Python(minted), style alt, sans numéro, de largeur 0.8\linewidth
+ #environnement Python(minted), style alt, sans numéro, 0.8\linewidth
def f(x) :
return x**2
\end{CodePythonMintedAlt}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Console d'exécution Python}
-\begin{codeidee}
+\begin{tipblock}
\ctex{pythontex} permet également de \textit{simuler} (en exécutant également !) du code \textsf{Python} dans une \textit{console}, avec la \textsf{librairie} \clib{pythontex} du coup !
C'est l'environnement \ctex{ConsolePythontex} qui permet de le faire.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{ConsolePythontex}[options]{} %les {} vides sont nécessaires
...
\end{ConsolePythontex}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Les \Cle{Clés} disponibles sont :
\begin{itemize}
@@ -2544,18 +2668,19 @@ Les \Cle{Clés} disponibles sont :
\item \Cle{EspacementVertical} : option (\textit{stretch}) pour l'espacement entre les lignes ;\hfill{}défaut \Cle{1}
\item \Cle{Label} : booléen pour afficher ou non le titre.\hfill{}défaut \Cle{true}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{ConsolePythontex}{}
#console Python(tex) par défaut
from math import sqrt
1+1
sqrt(12)
\end{ConsolePythontex}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\smallskip
\begin{ConsolePythontex}{}
#console Python(tex) par défaut
@@ -2563,9 +2688,9 @@ Les \Cle{Clés} disponibles sont :
1+1
sqrt(12)
\end{ConsolePythontex}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{ConsolePythontex}[Largeur=14cm,Label=false,Centre]{}
#console Python(tex) centrée sans label, 14cm
table = [[1,2],[3,4]]
@@ -2576,9 +2701,9 @@ Les \Cle{Clés} disponibles sont :
tableau
len(tableau), len(tableau[0]), tableau[1][4]
\end{ConsolePythontex}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\smallskip
\begin{ConsolePythontex}[Largeur=14cm,Label=false,Centre]{}
#console Python(tex) centrée sans label, 14cm
@@ -2590,11 +2715,11 @@ Les \Cle{Clés} disponibles sont :
tableau
len(tableau), len(tableau[0]), tableau[1][4]
\end{ConsolePythontex}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Le package \ctex{pythontex} peut donc servir à présenter du code Python, comme \ctex{minted} ou \ctex{piton}, sa particularité est toutefois de pouvoir \textit{exécuter} du code \textsf{Python} pour une présentation de type \textit{console}.
-\end{codeinfo}
+\end{noteblock}
\newpage
@@ -2602,35 +2727,35 @@ Le package \ctex{pythontex} peut donc servir à présenter du code Python, comme
\subsection{Introduction}
-\begin{codeinfo}
+\begin{noteblock}
Le {package} \ctex{listings} permet d'insérer et de présenter du code, et avec \ctex{tcolorbox} on peut obtenir une présentation similaire à celle du code \textsf{Python}. Pour le moment la \textit{philosophie} de la commande est un peu différente de celle du code \textsf{Python}, avec son système de \Cle{Clés}.
-\end{codeinfo}
+\end{noteblock}
\subsection{Présentation de Pseudo-Code}
-\begin{codeidee}
+\begin{tipblock}
Les environnements \ctex{PseudoCode} ou \ctex{PseudoCodeAlt} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}, avec deux styles à disposition (\cmaj{2.5.8}).
-\end{codeidee}
+\end{tipblock}
-\begin{codeattention}
+\begin{warningblock}
De plus, le package \ctex{listings} avec \ctex{tcolorbox} ne permet pas de gérer le paramètre \textit{autogobble}, donc il faudra être vigilant quant à la position du code (pas de tabulation en fait\ldots)
-\end{codeattention}
+\end{warningblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{PseudoCode}(*)[largeur]{options tcbox}
%attention à l'indentation, gobble ne fonctionne pas...
...
\end{PseudoCode}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{PseudoCodeAlt}(*)[largeur]{options tcbox}
%attention à l'indentation, gobble ne fonctionne pas...
...
\end{PseudoCodeAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{arguments} (optionnels) sont disponibles :
\begin{itemize}
@@ -2638,9 +2763,10 @@ Plusieurs \Cle{arguments} (optionnels) sont disponibles :
\item le premier argument optionnel concerne la \Cle{largeur} de la \ctex{tcbox} ;\hfill{}défaut \Cle{12cm}
\item \cmaj{2.5.8} l'argument obligatoire entre \ctex{\{...\}} concerne les \Cle{options} de la \ctex{tcbox}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%en pas oublier les {}, même vides !
\begin{PseudoCode}{} %non centré, de largeur par défaut (12cm) avec lignes
List = [...] # à déclarer au préalable
@@ -2649,9 +2775,9 @@ Pour i allant de 0 à n-1 Faire
Afficher(List[i])
FinPour
\end{PseudoCode}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{PseudoCode}{}
List = [...] # à déclarer au préalable
n = longueur(List)
@@ -2659,9 +2785,9 @@ Pour i allant de 0 à n-1 Faire
Afficher(List[i])
FinPour
\end{PseudoCode}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{PseudoCodeAlt}[15cm]{center} %centré, de largeur 15cm
List = [...] # à déclarer au préalable
n = longueur(List)
@@ -2669,9 +2795,9 @@ Pour i allant de 0 à n-1 Faire
Afficher(List[i])
FinPour
\end{PseudoCodeAlt}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{PseudoCodeAlt}[15cm]{center}
List = [...] # à déclarer au préalable
n = longueur(List)
@@ -2679,37 +2805,37 @@ Pour i allant de 0 à n-1 Faire
Afficher(List[i])
FinPour
\end{PseudoCodeAlt}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Compléments}
-\begin{codeattention}
+\begin{warningblock}
À l'instar de packages existants, la \textit{philosophie} ici est de laisser l'utilisateur gérer \textit{son} langage pseudo-code.
J'ai fait le choix de ne pas définir des \textsf{mots clés} à mettre en valeur car cela reviendrait à \textit{imposer} des choix ! Donc ici, pas de coloration syntaxique ou de mise en évidence de mots clés, uniquement un formatage basique !
-\end{codeattention}
+\end{warningblock}
-\begin{codeinfo}
+\begin{noteblock}
Le style \ctex{listings} utilisé par la commande a l'option \Cle{mathescape} activée, et accessible grâce aux délimiteurs \Cle{(*...*)}.
Cela permet d'insérer du code \LaTeX{} dans l'environnement \ctex{PseudoCode} (attention au fontes par contre !).
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{PseudoCode}*[12cm]{}
#Utilisation du mode mathescape
Afficher (*\og*) .........(*\fg*)
m = (*$\tfrac{\texttt{1}}{\texttt{2}}$*)
\end{PseudoCode}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{PseudoCode}*[12cm]{}
#Utilisation du mode mathescape
Afficher (*\og*) .........(*\fg*)
m = (*$\tfrac{\texttt{1}}{\texttt{2}}$*)
\end{PseudoCode}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -2717,7 +2843,7 @@ m = (*$\tfrac{\texttt{1}}{\texttt{2}}$*)
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée des \textsf{commandes} suivantes est de permettre de simuler des fenêtres de \textsf{Terminal}, que ce soit pour Windows, Ubuntu ou OSX.
\smallskip
@@ -2727,15 +2853,15 @@ L'idée de base vient du {package} \ctex{termsim}, mais ici la gestion du \texts
\smallskip
Le \textsf{contenu} est géré par le package \ctex{listings}, sans langage particulier, et donc sans coloration syntaxique particulière.
-\end{codeidee}
+\end{tipblock}
-\begin{codeattention}
+\begin{warningblock}
Comme pour le pseudo-code, pas d'\textsf{autogobble}, donc commandes à aligner à gauche !
-\end{codeattention}
+\end{warningblock}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{TerminalWin}[largeur]{titre=...}[options tcbox]
...
\end{TerminalWin}
@@ -2747,9 +2873,9 @@ Comme pour le pseudo-code, pas d'\textsf{autogobble}, donc commandes à aligner
\begin{TerminalOSX}[largeur]{titre=...}[options tcbox]
...
\end{TerminalOSX}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Peu d'options pour ces commandes :
\begin{itemize}
@@ -2757,29 +2883,30 @@ Peu d'options pour ces commandes :
\item le deuxième, \textit{obligatoire}, permet de spécifier le titre par la clé \Cle{titre}.\hfill{}défaut \Cle{Terminal Windows/UNiX/OSX}
\item le troisième, \textit{optionnel}, concerne les \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}.\hfill{}défaut \Cle{vide}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
Le \textsf{code} n'est pas formaté, ni mis en coloration syntaxique.
De ce fait tous les caractères sont autorisés : même si l'éditeur pourra détecter le \% comme le début d'un commentaire, tout sera intégré dans le code mis en forme !
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{TerminalUnix}[12cm]{Titre=Terminal Ubuntu}[center] %12cm, avec titre modifié et centré
test@DESKTOP:~$ ping -c 2 ctan.org
PING ctan.org (5.35.249.60) 56(84) bytes of data.
\end{TerminalUnix}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{TerminalUnix}[12cm]{Titre=Terminal Ubuntu}[center]
test@DESKTOP:~$ ping -c 2 ctan.org
PING ctan.org (5.35.249.60) 56(84) bytes of data.
\end{TerminalUnix}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{TerminalWin}[15cm]{} %largeur 15cm avec titre par défaut
Microsoft Windows [version 10.0.22000.493]
(c) Microsoft Corporation. Tous droits réservés.
@@ -2801,9 +2928,9 @@ Minimum = 35ms, Maximum = 39ms, Moyenne = 36ms
[test@server]$ ping -c 2 ctan.org
PING ctan.org (5.35.249.60) 56(84) bytes of data.
\end{TerminalOSX}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{TerminalWin}[15cm]{}
Microsoft Windows [version 10.0.22000.493]
(c) Microsoft Corporation. Tous droits réservés.
@@ -2830,7 +2957,7 @@ PING ctan.org (5.35.249.60) 56(84) bytes of data.
[test@server]$ ping -c 2 ctan.org
PING ctan.org (5.35.249.60) 56(84) bytes of data.
\end{TerminalOSX}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -2838,17 +2965,17 @@ PING ctan.org (5.35.249.60) 56(84) bytes of data.
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir des \textsf{cartouches} tels que \textsf{Capytale} les présente, pour partager un code afin d'accéder à une activité \textsf{Python}.
-\end{codeidee}
+\end{tipblock}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\CartoucheCapytale(*)[options]{code capytale}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Peu d'options pour ces commandes :
\begin{itemize}
@@ -2858,9 +2985,10 @@ Peu d'options pour ces commandes :
\hfill{}défaut \Cle{vide}
\item le troisième, \textit{obligatoire}, est le \textsf{code capytale} à afficher.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\CartoucheCapytale{abcd-12345} %lien simple, en sf
\CartoucheCapytale[~]{abcd-12345} %lien avec ~ à la fin, en sf
@@ -2868,9 +2996,9 @@ Peu d'options pour ces commandes :
\CartoucheCapytale*{abcd-12345} %lien simple, en tt
\CartoucheCapytale*[~]{abcd-12345} %lien avec ~ à la fin, en tt
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\CartoucheCapytale{abcd-12345}
\CartoucheCapytale[~]{abcd-12345}
@@ -2878,22 +3006,22 @@ Peu d'options pour ces commandes :
\CartoucheCapytale*{abcd-12345}
\CartoucheCapytale*[~]{abcd-12345}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Le \textsf{cartouche} peut être \og cliquable \fg{} grâce à \ctex{href}.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\usepackage{hyperref}
\urlstyle{same}
...
\href{https://capytale2.ac-paris.fr/web/c/abcd-12345}{\CartoucheCapytale{abcd-12345}}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\href{https://capytale2.ac-paris.fr/web/c/abcd-12345}{\CartoucheCapytale{abcd-12345}}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -2901,40 +3029,41 @@ Le \textsf{cartouche} peut être \og cliquable \fg{} grâce à \ctex{href}.
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.0.6} L'idée est de proposer un environnement pour présenter du code \LaTeX. Ce n'est pas forcément lié à l'enseignement en Lycée mais pourquoi pas !
\smallskip
Il s'agir d'un environnement créé en \ctex{tcolorbox}, et utilisant la présentation \textit{basique} de code via \ctex{listings}.
-\end{codeidee}
+\end{tipblock}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{PresentationCode}[Couleur]{options tcbox}
...
\end{PresentationCode}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Peu de personnalisations pour ces commandes :
\begin{itemize}
\item le premier argument, \textit{optionnel}, permet de préciser la \textit{couleur} de la présentation ;\hfill{}défaut \Cle{ForestGreen}
\item le second, \textit{obligatoire}, correspond aux éventuelles options liées à la \ctex{tcolorbox}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
Il est à noter que, même dans le cas d'option vide pour la \ctex{tcolorbox}, les \ctex{\{\}} sont nécessaires.
\smallskip
On peut par exemple utiliser l'option \Cle{listing only} pour ne présenter \textit{que} le code source.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{PresentationCode}{}
\xdef\ValAleaA{\fpeval{randint(1,100)}}
\xdef\ValAleaB{\fpeval{randint(1,100)}}
@@ -2945,30 +3074,40 @@ Avec $A=\ValAleaA$ et $B=\ValAleaB$, on a $A\times B=\inteval{\ValAleaA * \ValAl
\begin{PresentationCode}[DarkBlue]{}
On peut faire beaucoup de choses avec \LaTeX{} !
\end{PresentationCode}
-\end{codetex}
+\end{PresentationCodePL}
\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
+
\part{Outils pour la géométrie}
\section{Pavé droit \og simple \fg}\label{pave}
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir un pavé droit, dans un environnement \TikZ, avec les nœuds créés et nommés directement pour utilisation ultérieure.
-\end{codeidee}
+\end{tipblock}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}[options tikz]
\PaveTikz[options]
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -2982,41 +3121,44 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\item \Cle{Epaisseur} : épaisseur des arêtes (en \textit{langage simplifié} \TikZ) ;\hfill{}défaut \Cle{thick}
\item \Cle{Aff} : booléen pour afficher les noms des sommets ;\hfill{}défaut \Cle{false}
\item \Cle{Plein} : booléen pour ne pas afficher les arêtes \textit{invisibles} ;\hfill{}défaut \Cle{false}
- \item \Cle{Cube} : booléen pour préciser qu'il s'agit d'un cube (seule la valeur \Cle{Largeur} est util(isé)e).\hfill{}défaut \Cle{false}
+ \item \Cle{Cube} : booléen pour préciser qu'il s'agit d'un cube (seule la valeur \Cle{Largeur} est util(isé)e).
+
+ \hfill{}défaut \Cle{false}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\PaveTikz
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\PaveTikz[Cube,Largeur=2]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
La ligne est de ce fait à insérer dans un environnement \TikZ, avec les options au choix pour cet environnement.
Le code crée les nœuds relatifs aux sommets, et les nomme comme les sommets, ce qui permet de les réutiliser pour éventuellement compléter la figure !
-\end{codeinfo}
+\end{noteblock}
\subsection{Influence des paramètres}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}[line join=bevel]
\PaveTikz[Aff,Largeur=4,Profondeur=3,Hauteur=2,Epaisseur={ultra thick}]
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{tikzpicture}[line join=bevel]
\PaveTikz[Aff,Largeur=4,Profondeur=3,Hauteur=2,Epaisseur={ultra thick}]
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\begin{tikzpicture}[line join=bevel]
\PaveTikz[Plein,Aff,Largeur=7,Profondeur=3.5,Hauteur=4,Sommets=Q§S§D§F§G§H§J§K]
@@ -3024,9 +3166,9 @@ Le code crée les nœuds relatifs aux sommets, et les nomme comme les sommets, c
\draw[thick,blue,densely dotted] (K)--(H) ;
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[line join=bevel]
\PaveTikz[Plein,Aff,Largeur=7,Profondeur=3.5,Hauteur=4,Sommets=Q§S§D§F§G§H§J§K]
@@ -3034,7 +3176,7 @@ Le code crée les nœuds relatifs aux sommets, et les nomme comme les sommets, c
\draw[thick,blue,densely dotted] (K)--(H) ;
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -3042,20 +3184,20 @@ Le code crée les nœuds relatifs aux sommets, et les nomme comme les sommets, c
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir un tétraèdre, dans un environnement \TikZ, avec les nœuds créés et nommés directement pour utilisation ultérieure.
-\end{codeidee}
+\end{tipblock}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}[options tikz]
\TetraedreTikz[options]
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -3070,26 +3212,27 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\item \Cle{Aff} : booléen pour afficher les noms des sommets ;\hfill{}défaut \Cle{false}
\item \Cle{Plein} : booléen pour ne pas afficher l'arête \textit{invisible} .\hfill{}défaut \Cle{false}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\TetraedreTikz
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\TetraedreTikz[Aff,Largeur=2,Profondeur=0.625,Hauteur=1.5]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\TetraedreTikz[Plein,Aff,Largeur=5,Beta=60]
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Influence des paramètres}
-\begin{codeinfo}
+\begin{noteblock}
Pour \textit{illustrer} un peu les \Cle{clés}, un petit schéma, avec les différents paramètres utiles.
\begin{center}
@@ -3104,25 +3247,25 @@ Pour \textit{illustrer} un peu les \Cle{clés}, un petit schéma, avec les diff
\draw (35:0.75) node[orange,right] {$\beta$} ;
\end{tikzpicture}
\end{center}
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\begin{tikzpicture}[line join=bevel]
\TetraedreTikz[Aff,Largeur=7,Profondeur=3,Hauteur=5,Epaisseur={ultra thick},Alpha=20,Beta=30]
\draw[very thick,ForestGreen,<->,>=latex] ($(A)!0.5!(D)$)--($(B)!0.5!(D)$) ;
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[line join=bevel]
\TetraedreTikz[Aff,Largeur=7,Profondeur=3,Hauteur=5,Epaisseur={ultra thick},Alpha=20,Beta=30]
\draw[very thick,ForestGreen,<->,>=latex] ($(A)!0.5!(D)$)--($(B)!0.5!(D)$) ;
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -3130,31 +3273,31 @@ Pour \textit{illustrer} un peu les \Cle{clés}, un petit schéma, avec les diff
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir une commande pour tracer (en \TikZ) un cercle trigonométrique, avec personnalisation des affichages.
\smallskip
Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{CercleTrigo} pour afficher le cercle.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[tikz lower]
+\begin{PresentationCodePL}{tikz lower}
%code tikz
\CercleTrigo
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Commandes}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
...
\begin{tikzpicture}[options tikz]
...
\CercleTrigo[clés]
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Plusieurs \Cle{Clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -3170,11 +3313,12 @@ Plusieurs \Cle{Clés} sont disponibles pour cette commande :
\item un booléen \Cle{AffTraits} qui permet d'afficher les \textit{traits de construction} ;\hfill{}défaut \Cle{true}
\item un booléen \Cle{AffValeurs} qui permet d'afficher les valeurs remarquables.\hfill{}défaut \Cle{true}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
\pagebreak
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\begin{tikzpicture}[line join=bevel]
\CercleTrigo[Rayon=2.5,AffValeurs=false,Decal=8pt]
@@ -3188,9 +3332,9 @@ Plusieurs \Cle{Clés} sont disponibles pour cette commande :
\CercleTrigo[Rayon=2.5,MoinsPi=false,CouleurFond=orange!15]
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[line join=bevel]
\CercleTrigo[Rayon=2.5,AffValeurs=false,Decal=8pt]
@@ -3204,15 +3348,15 @@ Plusieurs \Cle{Clés} sont disponibles pour cette commande :
\CercleTrigo[Rayon=2.5,MoinsPi=false,CouleurFond=orange!15,TailleValeurs=\tiny]
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Équations trigos}
-\begin{codeinfo}
+\begin{noteblock}
En plus des \Cle{Clés} précédentes, il existe un complément pour \textit{visualiser} des solutions d'équations simples du type $\cos(x)=\ldots$ ou $\sin(x)=\ldots$.
-\end{codeinfo}
+\end{noteblock}
-\begin{codecles}
+\begin{cautionblock}
Les \Cle{Clés} pour cette possibilité sont :
\begin{itemize}
@@ -3222,13 +3366,14 @@ Les \Cle{Clés} pour cette possibilité sont :
\item la clé \Cle{cos} qui est la valeur de l'angle (en degrés) cos ;\hfill{}défaut \Cle{45}
\item la clé \Cle{CouleurSol} qui est la couleur des \textit{solutions}.\hfill{}défaut \Cle{blue}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{center}
\begin{tikzpicture}
\CercleTrigo[%
- AffAngles=false,AffValeurs=false,AffTraits=false,Rayon=2,Equationsin,sin=-30,CouleurSol=red]
+ AffAngles=false,AffValeurs=false,AffTraits=false,Rayon=2,Equationsin,sin=-30, CouleurSol=red]
\end{tikzpicture}
~~~~
\begin{tikzpicture}
@@ -3243,9 +3388,9 @@ Les \Cle{Clés} pour cette possibilité sont :
AffTraits=false,AffAngles=false,Rayon=2.5,Equationcos,cos=60,CouleurSol=purple, TailleValeurs=\tiny]
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}
\CercleTrigo[%
@@ -3264,7 +3409,7 @@ Les \Cle{Clés} pour cette possibilité sont :
AffTraits=false,AffAngles=false,Rayon=2.5,Equationcos,cos=60,CouleurSol=purple,TailleValeurs=\tiny]
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -3272,26 +3417,26 @@ Les \Cle{Clés} pour cette possibilité sont :
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de \textit{proposer} un style \textit{tout prêt} pour simuler un tracé, en \TikZ, à \og main levée \fg.
Il s'agit d'un style \textit{basique} utilisant la librairie \ctex{decorations} avec \textsf{random steps}.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\tikzset{%
mainlevee/.style args={#1et#2}{decorate,decoration={random steps, segment length=#1,amplitude=#2}},
mainlevee/.default={5mm et 0.6pt}
}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Utilisation basique}
-\begin{codeinfo}
+\begin{noteblock}
Il s'agit ni plus ni moins d'un style \TikZ{} à intégrer dans les tracés et constructions \TikZ !
-\end{codeinfo}
+\end{noteblock}
-\begin{codecles}
+\begin{cautionblock}
Concernant le style en lui-même, deux paramètres peuvent être précisés via \Cle{mainlevee=\#1 et \#2} :
\begin{itemize}
@@ -3300,9 +3445,9 @@ Concernant le style en lui-même, deux paramètres peuvent être précisés via
\end{itemize}
Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -- satisfaisants, mais l'utilisateur pourra modifier à loisir ces paramètres !
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%la grille a été rajoutée pour la sortie
\begin{tikzpicture}
\draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
@@ -3315,25 +3460,35 @@ Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -
\begin{tikzpicture}
\draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill~\begin{tikzpicture}
\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
\draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
\end{tikzpicture}
-\hspace{1.5cm}
+\hspace{1cm}
\begin{tikzpicture}
\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
\draw[thick,mainlevee=5mm et 2pt] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
\end{tikzpicture}
-\hspace{1.5cm}
+\hspace{1cm}
\begin{tikzpicture}
\draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
\draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
\end{tikzpicture}
\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
+
+\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
@@ -3343,7 +3498,7 @@ Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'utiliser une commande qui va permettre de calculer les paramètres principaux d'un régression linéaire par la méthode des moindres carrés.
Le package \ctex{pgfpots} permet de le faire nativement, mais le moteur de calculs de \textsf{pgf} peut poser souci avec de grandes valeurs, donc ici cela passe par \ctex{xfp} qui permet de \textit{gagner} en précision !
@@ -3359,21 +3514,22 @@ L'idée est que cette macro calcule et stocke les paramètres dans des variables
\item dans un environnement \hologo{METAPOST} (à vérifier quand même) ;
\item \ldots
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
...
\CalculsRegLin[clés]{listeX}{listeY} %listes avec éléments séparés par des ,
...
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
La commande \ctex{CalculsRegLin} va définir également des \textsf{macros} pour chaque coefficient, qui de ce fait seront réutilisables après !
-\end{codeinfo}
+\end{noteblock}
\subsection{Commandes}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour \textit{renommer} les paramètres :
\begin{itemize}
@@ -3384,16 +3540,17 @@ Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour
\item la clé \Cle{NomXmin} qui permet de définir la variable qui contiendra $x_{\text{min}}$ ;\hfill{}défaut \Cle{LXmin}
\item la clé \Cle{NomXmax} qui permet de définir la variable qui contiendra $x_{\text{max}}$.\hfill{}défaut \Cle{LXmax}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%les espaces verticaux n'ont pas été écrits ici
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
+\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
\CalculsRegLin{\LLX}{\LLY}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%vérif des calculs (noms non modifiables...)
Liste des X := \showitems\LX.
Liste des Y := \showitems\LY.
@@ -3407,9 +3564,9 @@ Coefficient $a=\COEFFa$.
Coefficient $b=\COEFFb$.
Coefficient $r=\COEFFr$.
Coefficient $r^2=\COEFFrd$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
\CalculsRegLin{\LLX}{\LLY}
@@ -3455,17 +3612,17 @@ Coefficient $r=\COEFFr$.\tabto{0.5\textwidth}Coefficient $r^2=\COEFFrd$.
%\smallskip
%
%Coefficient $r^2=\COEFFrd$.
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-stats_a}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_b}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_c}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_c2}\hfill~
-\end{codeinfo}
+\end{noteblock}
-\begin{codeinfo}
+\begin{noteblock}
Les \textsf{macros} qui contiennent les paramètres de la régression sont donc réutilisables, en tant que nombres réels, donc exploitables par \ctex{siunitx} et \ctex{xfp} pour affichage \textit{fin} ! Ci-dessous un exemple permettant de visualiser tout cela.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%les espaces verticaux n'ont pas été écrits ici
\def\LstX{0,1,3,4,5,6}
\def\LstY{-35,-37.4,-37.7,-39.9,-39,-39.6}
@@ -3479,9 +3636,9 @@ Les \textsf{macros} qui contiennent les paramètres de la régression sont donc
%paramètres
Les valeurs extr. de X sont \TESTmin{} et \TESTmax. Une éq. est $y=\arrond[3]{\TESTa}x \arrond*[3]{\TESTb}$.
Le coeff. de corrélation est $r=\arrond[4]{\TESTr}$, et son carré est $r^2=\arrond[4]{\TESTrd}$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\LstX{0,1,3,4,5,6}\def\LstY{-35,-37.4,-37.7,-39.9,-39,-39.6}
\CalculsRegLin[NomCoeffa=TESTa,NomCoeffb=TESTb,NomCoeffr=TESTr,NomCoeffrd=TESTrd,NomXmin=TESTmin,NomXmax=TESTmax]{\LstX}{\LstY}
\DeclareDocumentCommand\arrond{ s O{3} m }{
@@ -3496,19 +3653,19 @@ Les valeurs extrêmes de $x$ sont \TESTmin{} et \TESTmax. Une équation de la dr
\smallskip
Le coefficient de corrélation linéaire est $r=\arrond[4]{\TESTr}$, et son carré est $r^2=\arrond[4]{\TESTrd}$.
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-stats_d}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_e}\hfill~
-\end{codeinfo}
+\end{noteblock}
\subsection{Intégration dans un environnement \TikZ}
-\begin{codeinfo}
+\begin{noteblock}
La commande étant \og autonome \fg{}, elle va pouvoir être intégrée dans des environnements graphiques pour permettre un tracé \textit{facile} de la droite de régression.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}
\begin{axis}[options des axes, non présentées ici...]
\addplot[teal, only marks] table{
@@ -3516,17 +3673,17 @@ La commande étant \og autonome \fg{}, elle va pouvoir être intégrée dans des
1994 1718 1995 1710 1996 1708 1997 1700 1998 1698 1999 1697 2000 1691 2001 1688
2002 1683 2004 1679 2005 1671 2006 1670 2007 1663 2008 1661 2009 1656 2010 1649
};
- \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
- \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+ \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
+ \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
\CalculsRegLin{\LLX}{\LLY}
\addplot [thick,orange,domain=\LXmin:\LXmax,samples=2]{\COEFFa*x+\COEFFb};
\addlegendentry{$y = \fpeval{round(\COEFFa,3)}\,x + \fpeval{round(\COEFFb,3)}$};
\addlegendentry{$R^2=\fpeval{round(\COEFFrd,5)}$};
\end{axis}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{tikzpicture}
\begin{axis}[
/pgf/number format/.cd,
@@ -3575,22 +3732,22 @@ La commande étant \og autonome \fg{}, elle va pouvoir être intégrée dans des
\addlegendentry{$R^2=\fpeval{round(\COEFFrd,5)}$};
\end{axis}
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Il existe également une commande auxiliaire, \ctex{PointsRegLin} pour afficher le nuage de points avec quelques options, dans un environnement \TikZ{} classique (sans \textsf{pgfplot})\ldots
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
...
\begin{tikzpicture}[<options>]
...
\PointsRegLin[clés]{listeX}{listeY}
...
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour la mise en forme du nuage :
\begin{itemize}
@@ -3599,9 +3756,10 @@ Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour
\item la clé \Cle{Ox} pour spécifier la valeur initiale Ox (si changement d'origine) ;\hfill{}défaut \Cle{0}
\item la clé \Cle{Oy} pour spécifier la valeur initiale Oy (si changement d'origine).\hfill{}défaut \Cle{0}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}[x=0.5cm,y=0.05cm]
\draw[xstep=1,ystep=5,lightgray!50,very thin] (0,0) grid (20,100);
\draw[xstep=2,ystep=10,lightgray,thin] (0,0) grid (20,100);
@@ -3609,8 +3767,8 @@ Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour
\draw[thick,->,>=latex] (0,0)--(0,100) ;
\foreach \x in {1992,1994,...,2010} \draw[thick] ({\x-1992},4pt)--({\x-1992},-4pt) node[below] {$\x$} ;
\foreach \y in {1640,1650,...,1730} \draw[thick] (4pt,{\y-1640})--(-4pt,{\y-1640}) node[left] {$\y$} ;
- \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
- \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+ \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
+ \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
\def\Ox{1992}\def\Oy{1640}
\CalculsRegLin{\LLX}{\LLY}
\PointsRegLin[Ox=1992,Oy=1640,Couleur=blue,Taille=3pt]{\LLX}{\LLY}
@@ -3620,9 +3778,9 @@ Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour
\node {$R^2=\num{\fpeval{round(\COEFFrd,5)}}$} ; \\
};
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{tikzpicture}[x=0.5cm,y=0.05cm]
\draw[xstep=1,ystep=5,lightgray!50,very thin] (0,0) grid (20,100);
\draw[xstep=2,ystep=10,lightgray,thin] (0,0) grid (20,100);
@@ -3641,7 +3799,7 @@ Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour
\node {$R^2=\num{\fpeval{round(\COEFFrd,5)}}$} ; \\
};
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -3649,7 +3807,7 @@ Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour
\subsection{Idées}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de \textit{prolonger} le paragraphe précédent pour proposer un environnement \TikZ{} adapté à des situations venant de statistiques à deux variables.
\smallskip
@@ -3678,36 +3836,37 @@ En utilisant les commandes de \textsf{régression linéaire} du paragraphe préc
\item placer le point moyen ;
\item tracer la droite d'ajustement (obtenue par \ctex{ProfLycee}) ou une autre courbe.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeinfo}
+\begin{noteblock}
Le package \ctex{pgfplots} peut être utilisé pour traiter ce genre de situation, mais ne l'utilisant pas, j'ai préféré préparer des \textsf{macros} permettant de s'affranchir de ce package (est-ce pertinent, ça c'est une autre question\ldots).
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%Listes et calculs
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
+\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
\CalculsRegLin{\LLX}{\LLY}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%tracé (simple), les options seront présentées juste après
\begin{tikzpicture}%
- [x=0.5cm,y=0.1cm, %unités
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1, %axe Ox
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5] %axe Oy
- \GrilleTikz \AxesTikz %grilles et axes
- \AxexTikz[Annee]{1992,1994,...,2010} %axeOx
- \AxeyTikz{1640,1650,...,1720} %axeOy
- \NuagePointsTikz{\LLX}{\LLY} %nuage
+ [x=0.5cm,y=0.1cm, %unités
+ Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1, %axe Ox
+ Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5] %axe Oy
+ \GrilleTikz \AxesTikz %grilles et axes
+ \AxexTikz[Annee]{1992,1994,...,2010} %axeOx
+ \AxeyTikz{1640,1650,...,1720} %axeOy
+ \NuagePointsTikz{\LLX}{\LLY} %nuage
\CourbeTikz[line width=1.25pt,ForestGreen,samples=2]%
- {\COEFFa*\x+\COEFFb}{\LXmin:\LXmax} %droite de régression
- \PointMoyenTikz %point moyen
+ {\COEFFa*\x+\COEFFb}{\LXmin:\LXmax} %droite de régression
+ \PointMoyenTikz %point moyen
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%tracé avec options fenêtre par défaut
\begin{tikzpicture}%
[....] %paramètres
@@ -3717,9 +3876,9 @@ Le package \ctex{pgfplots} peut être utilisé pour traiter ce genre de situatio
{\COEFFa*\x+\COEFFb}{\LXmin:\LXmax} %droite de régression
\PLnuageptmoy %point moyen
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
\CalculsRegLin{\LLX}{\LLY}
@@ -3732,11 +3891,11 @@ Le package \ctex{pgfplots} peut être utilisé pour traiter ce genre de situatio
\CourbeTikz[line width=1.25pt,ForestGreen,samples=2]{\COEFFa*\x+\COEFFb}{\LXmin:\LXmax}
\PointMoyenTikz
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Commandes, clés et options}
-\begin{codeinfo}
+\begin{noteblock}
Les \Cle{paramètres} nécessaires à la bonne utilisation des commandes suivantes sont à déclarer directement dans l'environnement \ctex{tikzpicture}, seules les versions \og x \fg{} sont présentées ici:
\begin{itemize}
@@ -3752,27 +3911,30 @@ La fenêtre d'affichage (de sortie) sera donc \textit{portée} par le rectangle
\smallskip
Les commandes ont -- pour certaines -- pas mal de \Cle{clés} pour des réglages fins, mais dans la majorité des cas elles ne sont pas forcément \textit{utiles}.
-\end{codeinfo}
+\end{noteblock}
-\begin{codeinfo}
+\begin{noteblock}
Pour illustrer les commandes et options de ce paragraphe, la base sera le graphique présenté précédemment.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\GrilleTikz[options][options grille ppale][options grille second.]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande permet de tracer une grille principale et/ou une grille secondaire :
\begin{itemize}
- \item les premières \Cle{clés} sont les booléens \Cle{Affp} et \Cle{Affs} qui affichent ou non les grilles ;\hfill~défaut \Cle{true}
+ \item les premières \Cle{clés} sont les booléens \Cle{Affp} et \Cle{Affs} qui affichent ou non les grilles ;
+
+ \hfill~défaut \Cle{true}
\item les options des grilles sont en \TikZ. \hfill~défaut \Cle{thin,lightgray} et \Cle{very thin,lightgray}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\begin{tikzpicture}%
[x=0.3cm,y=0.06cm,%
Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
@@ -3786,9 +3948,9 @@ Cette commande permet de tracer une grille principale et/ou une grille secondair
Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
\GrilleTikz[Affp=false][][orange,densely dotted]
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill~
\begin{tikzpicture}%
[x=0.3cm,y=0.06cm,%
@@ -3804,32 +3966,39 @@ Cette commande permet de tracer une grille principale et/ou une grille secondair
\GrilleTikz[Affp=false][][orange,densely dotted]
\end{tikzpicture}
\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\AxesTikz[options]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande permet de tracer les axes, avec des \Cle{clés} :
\begin{itemize}
\item \Cle{Epaisseur} qui est l'épaisseur des traits ; \hfill~défaut \Cle{1.25pt}
\item \Cle{Police} qui est le style des labels des axes ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont}
- \item \cmaj{2.1.2} \Cle{ElargirOx} qui est le \% l'élargissement \Cle{global} ou \Cle{G/D} de l'axe $(Ox)$ ;\hfill~défaut \Cle{0/0.05}
- \item \cmaj{2.1.2} \Cle{ElargirOy} qui est le \% l'élargissement \Cle{global} ou \Cle{B/H} de l'axe $(Oy)$ ;\hfill~défaut \Cle{0/0.05}
+ \item \cmaj{2.1.2} \Cle{ElargirOx} qui est le \% l'élargissement \Cle{global} ou \Cle{G/D} de l'axe $(Ox)$ ;
+
+ \hfill~défaut \Cle{0/0.05}
+ \item \cmaj{2.1.2} \Cle{ElargirOy} qui est le \% l'élargissement \Cle{global} ou \Cle{B/H} de l'axe $(Oy)$ ;
+
+ \hfill~défaut \Cle{0/0.05}
\item \Cle{Labelx} qui est le label de l'axe $(Ox)$ ; \hfill~défaut \Cle{\${}x\$}
\item \Cle{Labely} qui est le label de l'axe $(Oy)$ ; \hfill~défaut \Cle{\${}y\$}
- \item \Cle{AffLabel} qui est le code pour préciser quels labels afficher, entre \Cle{x}, \Cle{y} ou \Cle{xy} ; \hfill~défaut \Cle{vide}
+ \item \Cle{AffLabel} qui est le code pour préciser quels labels afficher, entre \Cle{x}, \Cle{y} ou \Cle{xy} ;
+
+ \hfill~défaut \Cle{vide}
\item \Cle{PosLabelx} pour la position du label de $(Ox)$ en bout d'axe ; \hfill~défaut \Cle{right}
\item \Cle{PosLabely} pour la position du label de $(Oy)$ en bout d'axe ; \hfill~défaut \Cle{above}
\item \Cle{EchelleFleche} qui est l'échelle de la flèche des axes ; \hfill~défaut \Cle{1}
\item \Cle{TypeFleche} qui est le type de la flèche des axes.\hfill~défaut \Cle{latex}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%code tikz
\AxesTikz
@@ -3838,9 +4007,9 @@ Cette commande permet de tracer les axes, avec des \Cle{clés} :
[AffLabel=xy,Labelx={Année},Labely={Altitude},%
PosLabelx={below right},PosLabely={above left},%
Police=\small\sffamily]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill~
\begin{tikzpicture}%
[x=0.3cm,y=0.06cm,%
@@ -3859,17 +4028,17 @@ Cette commande permet de tracer les axes, avec des \Cle{clés} :
Police=\small\sffamily]
\end{tikzpicture}
\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
%les axes
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\AxexTikz[options]{valeurs}
\AxeyTikz[options]{valeurs}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} identiques pour les deux directions :
\begin{itemize}
@@ -3881,9 +4050,10 @@ Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} ide
\item le booléen \Cle{AffOrigine} pour afficher la graduation de l'origine ; \hfill~défaut \Cle{true}
\item le booléen \Cle{Annee} qui permet de ne pas formater les valeurs des graduations (type \textsf{année}). \hfill~défaut \Cle{false}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%code tikz
\AxexTikz[Police=\small]{1992,1994,...,2010}
\AxexTikz{1640,1650,...,1720}
@@ -3893,35 +4063,35 @@ Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} ide
\AxeyTikz[AffGrad=false,HautGrad=6pt]{1640,1650,...,1720}
%des axes fictifs (en gris) sont rajoutés pour la lisibilité du code de sortie
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill~
\begin{tikzpicture}%
- [x=0.35cm,y=0.07cm,%
+ [x=0.3cm,y=0.06cm,%
Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
\draw[gray,line width=1.25pt,->,>=latex] ({\xmin-\axexOx},0) -- ({\xmax-\axexOx},0) ;
\draw[gray,line width=1.25pt,->,>=latex] (0,{\ymin-\axeyOy}) -- (0,{\ymax-\axeyOy}) ;
- \AxexTikz[Police=\small]{1992,1994,...,2010}
+ \AxexTikz[Police=\tiny]{1992,1994,...,2010}
\AxeyTikz{1640,1650,...,1720}
\end{tikzpicture}
~~
\begin{tikzpicture}%
- [x=0.35cm,y=0.07cm,%
+ [x=0.3cm,y=0.06cm,%
Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
\draw[gray,line width=1.25pt,->,>=latex] ({\xmin-\axexOx},0) -- ({\xmax-\axexOx},0) ;
\draw[gray,line width=1.25pt,->,>=latex] (0,{\ymin-\axeyOy}) -- (0,{\ymax-\axeyOy}) ;
- \AxexTikz[Police=\small,Annee,HautGrad=0pt/4pt]{1992,1994,...,2010}
+ \AxexTikz[Police=\tiny,Annee,HautGrad=0pt/4pt]{1992,1994,...,2010}
\AxeyTikz[AffGrad=false,HautGrad=6pt]{1640,1650,...,1720}
\end{tikzpicture}
\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Commandes annexes}
-\begin{codeinfo}
+\begin{noteblock}
Il existe, de manière marginale, quelques commandes complémentaires qui ne seront pas trop détaillées mais qui sont présentes dans l'introduction :
\begin{itemize}
@@ -3929,29 +4099,30 @@ Il existe, de manière marginale, quelques commandes complémentaires qui ne ser
\item \ctex{FenetreSimpleTikz} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ;
\item \ctex{OrigineTikz} pour rajouter le libellé de l'origine si non affiché par les axes.
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%code tikz
\FenetreTikz %on restreint les tracés
\FenetreSimpleTikz[opt](opt axes)<opt axe Ox>{liste valx}<opt axe Oy>{liste valy}
-\end{codetex}
+\end{PresentationCodePL}
%%l'origine
%
-%\begin{codetex}[listing only]
+%\begin{PresentationCodePL}{listing only}
%%...code tikz
% \PLorigine[<options>]
-%\end{codetex}
+%\end{PresentationCodePL}
\subsection{Interactions avec CalculsRegLin}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\NuagePointsTikz[options]{listeX}{listeY}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande, liée à la commande \ctex{CalculsRegLin} permet de représenter le nuage de points associé aux deux listes, avec les \Cle{clés} suivantes :
\begin{itemize}
@@ -3959,11 +4130,12 @@ Cette commande, liée à la commande \ctex{CalculsRegLin} permet de représenter
\item \Cle{Style} parmi \Cle{o} (rond) ou \Cle{x} (croix) ou \Cle{+} (plus) ; \hfill~défaut \Cle{o}
\item \Cle{Couleur} qui est la couleur (éventuellement \Cle{couleurA/couleurB} pour les ronds). \hfill~défaut \Cle{blue}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+\begin{PresentationCodePL}{listing only}
+\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
+\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
\begin{tikzpicture}[...]
\NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY}
@@ -3972,9 +4144,9 @@ Cette commande, liée à la commande \ctex{CalculsRegLin} permet de représenter
\begin{tikzpicture}[...]
\NuagePointsTikz[Couleur=ForestGreen,Style=x,Taille=6pt]{\LLX}{\LLY}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
\CalculsRegLin{\LLX}{\LLY}
@@ -3985,22 +4157,22 @@ Cette commande, liée à la commande \ctex{CalculsRegLin} permet de représenter
\AxeyTikz{1640,1650,...,1720}
\NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY}
\end{tikzpicture}
-~~
+
\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
\GrilleTikz \AxesTikz
\AxexTikz[Annee,Police=\small]{1992,1994,...,2010}
\AxeyTikz{1640,1650,...,1720}
\NuagePointsTikz[Couleur=ForestGreen,Style=x,Taille=6pt]{\LLX}{\LLY}
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
%point moyen
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\PointMoyenTikz[options]
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande permet de rajouter le point moyen du nuage, calculé par la commande \ctex{CalculsRegLin}, avec les \Cle{clés} :
\begin{itemize}
@@ -4015,11 +4187,12 @@ Cette commande permet de rajouter le point moyen du nuage, calculé par la comma
\item \Cle{Decal} qui est l'éloignement de la position du label par rapport au point ; \hfill~défaut \Cle{0pt}
\item la booléen \Cle{AffNom} qui affiche ou non le libellé.\hfill~défaut \Cle{true}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+\begin{PresentationCodePL}{listing only}
+\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
+\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
\CalculsRegLin{\LLX}{\LLY}
\begin{tikzpicture}[...]
@@ -4031,9 +4204,9 @@ Cette commande permet de rajouter le point moyen du nuage, calculé par la comma
\NuagePointsTikz[Couleur=ForestGreen,Style=x,Taille=6pt]{\LLX}{\LLY}
\PointMoyenTikz[Couleur=orange,Taille=8pt,Style=+,Nom={$G_1$},Pos=below]
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
\CalculsRegLin{\LLX}{\LLY}
@@ -4045,7 +4218,7 @@ Cette commande permet de rajouter le point moyen du nuage, calculé par la comma
\NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY}
\PointMoyenTikz
\end{tikzpicture}
-~~
+
\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
\GrilleTikz \AxesTikz
\AxexTikz[Annee,Police=\small]{1992,1994,...,2010}
@@ -4053,15 +4226,15 @@ Cette commande permet de rajouter le point moyen du nuage, calculé par la comma
\NuagePointsTikz[Couleur=ForestGreen,Style=x,Taille=6pt]{\LLX}{\LLY}
\PointMoyenTikz[Couleur=orange,Taille=8pt,Style=+,Nom={$G_1$},Pos=below]
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
%courbe
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%...code tikz
\CourbeTikz[options]{formule}{domaine}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Cette commande permet de rajouter une courbe sur le graphique (sans se soucier de la transformation de son expression) avec les arguments :
\begin{itemize}
@@ -4069,28 +4242,29 @@ Cette commande permet de rajouter une courbe sur le graphique (sans se soucier d
\item le premier \textit{obligatoire}, est -- en langage \TikZ{} -- l'expression de la fonction à tracer, donc avec \ctex{\textbackslash{}x} comme variable ;
\item le second \textit{obligatoire} est le domaine du tracé , sous la forme \ctex{valxmin:valxmax}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
L'idée principale est de récupérer les variables de la régression linéaire pour tracer la droite d'ajustement \textit{à moindres frais} !
-\end{codeinfo}
+\end{noteblock}
-\begin{codeinfo}
+\begin{noteblock}
Toute courbe peut être tracée sur ce principe, par contre il faudra saisir la fonction \textit{à la main}.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
+\begin{PresentationCodePL}{listing only}
+\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
+\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
\CalculsRegLin{\LLX}{\LLY}
\begin{tikzpicture}[...]
\NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \PointMoyenTikz
\CourbeTikz[line width=1.25pt,ForestGreen,samples=2]{\COEFFa*\x+\COEFFb}{\xmin:\xmax}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
\CalculsRegLin{\LLX}{\LLY}
@@ -4102,11 +4276,11 @@ L'idée principale est de récupérer les variables de la régression linéaire
\NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \PointMoyenTikz
\CourbeTikz[line width=1.25pt,ForestGreen,samples=2]{\COEFFa*\x+\COEFFb}{\xmin:\xmax}
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Exemple complémentaire, pour illustration}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
@@ -4117,9 +4291,9 @@ L'idée principale est de récupérer les variables de la régression linéaire
\NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \FenetreTikz %on fixe la fenêtre
\CourbeTikz[line width=1.25pt,orange,samples=250]{-(\x-2000)*(\x-2000)+1700}{\xmin:\xmax}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
@@ -4130,7 +4304,7 @@ L'idée principale est de récupérer les variables de la régression linéaire
\NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \FenetreTikz
\CourbeTikz[line width=1.25pt,orange,samples=250]{-(\x-2000)*(\x-2000)+1700}{\xmin:\xmax}
\end{tikzpicture}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -4138,27 +4312,27 @@ L'idée principale est de récupérer les variables de la régression linéaire
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer une commande, à intégrer dans un environnement \TikZ, pour tracer une boîte à moustaches grâce aux paramètres, saisis par l'utilisateur.
\smallskip
Le code ne calcule pas les paramètres, il ne fait \textit{que} tracer la boîte à moustaches !
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{tikzpicture}
\BoiteMoustaches{10/15/17/19/20}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Étant donnée que la commande est intégrée dans un environnement \TikZ, les unités peuvent/doivent donc être précisées, \textit{comme d'habitude}, si besoin.
-\end{codeinfo}
+\end{noteblock}
\subsection{Clés et options}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -4176,16 +4350,17 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\hfill~défaut \Cle{false}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{tikzpicture}
\BoiteMoustaches[Epaisseur=very thick,Moyenne=18.5,Couleur=blue,AffMoyenne,%
Pointilles,Valeurs,Hauteur=2.25,Elevation=2]{10/15/17/19/20}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%une grille a été rajoutée pour visualiser la "position verticale"
\begin{center}
\begin{tikzpicture}[x=0.1cm]
@@ -4195,9 +4370,9 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
[Elevation=4,Couleur=ForestGreen,Remplir=ForestGreen!25]{100/140/145/160/210}
\end{tikzpicture}
\end{center}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{center}
\begin{tikzpicture}[x=0.1cm]
\draw[xstep=10,ystep=0.5,very thin,lightgray] (80,0) grid (210,4.5) ;
@@ -4208,29 +4383,29 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\BoiteMoustaches[Elevation=4,Couleur=ForestGreen,Remplir=ForestGreen!25]{100/140/145/160/210}
\end{tikzpicture}
\end{center}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Commande pour placer un axe horizontal}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer, en parallèle de la commande précédente, une commande pour tracer un axe horizontal \og sous \fg{} les éventuelles boîtes à moustaches.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{tikzpicture}
\BoiteMoustachesAxe[Min=10,Max=20]
\BoiteMoustaches{10/15/17/19/20}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{tikzpicture}
\BoiteMoustachesAxe[Min=10,Max=20]
\BoiteMoustaches[Valeurs,Pointilles]{10/15/17/19/20}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -4240,22 +4415,33 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\item la clé \Cle{Epaisseur} qui est l'épaisseur des traits de la boîte ; \hfill~défaut \Cle{thick}
\item la clé \Cle{Valeurs} qui est la liste (compréhensible en \TikZ) des valeurs à afficher.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\begin{tikzpicture}
\BoiteMoustachesAxe[Min=8,Max=21,AffValeurs,Valeurs={8,9,...,21},Elargir=0.02]
\BoiteMoustaches[Moyenne=18.5,Couleur=blue]{10/15/17/19/20}
\BoiteMoustaches[Elevation=2.5,Couleur=red]{8/10/11/12/15}
\BoiteMoustaches[Elevation=4,Couleur=ForestGreen,Remplir=ForestGreen!25]{10/14/14.5/16/21}
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Le placement des différentes boîtes n'est pas automatique, donc il faut penser à cela avant de se lancer dans le code.
Sachant que la hauteur par défaut est de 1, il est -- a priori -- intéressant de placer les boîtes à des \Cle{élévations} de \num{1} puis \num{2.5} puis \num{4} etc
-\end{codeinfo}
+\end{noteblock}
+
+\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
@@ -4265,7 +4451,7 @@ Sachant que la hauteur par défaut est de 1, il est -- a priori -- intéressant
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer des commandes permettant de calculer des probabilités avec des lois classiques :
\begin{itemize}
@@ -4276,9 +4462,10 @@ L'idée est de proposer des commandes permettant de calculer des probabilités a
\item géométrique ;
\item hypergéométrique.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeinfo}
+\begin{noteblock}
Les commandes sont de deux natures :
\begin{itemize}
@@ -4287,11 +4474,11 @@ Les commandes sont de deux natures :
\end{itemize}
De ce fait, les options de \ctex{siunitx} de l'utilisateur affecterons les formatages du résultat, la commande va \og forcer \fg{} les arrondis et l'écriture scientifique.
-\end{codeinfo}
+\end{noteblock}
\subsection{Calculs \og simples \fg}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%loi binomiale B(n,p)
\CalcBinomP{n}{p}{k} %P(X=k)
\CalcBinomC{n}{p}{a}{b} %P(a<=X<=b)
@@ -4313,17 +4500,17 @@ De ce fait, les options de \ctex{siunitx} de l'utilisateur affecterons les forma
%loi exponentielle E(l)
\CalcExpoC{l}{a}{b} %P(a<=X<=b)
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Les probabilités calculables sont donc -- comme pour beaucoup de modèles de calculatrices -- les probabilités \textbf{P}onctuelles ($P(X=k)$) et \textbf{C}umulées ($P(a\leqslant X\leqslant b)$).
\smallskip
Pour les probabilités cumulées, on peut utiliser le caractère \ctex{*} comme borne ($a$ ou $b$), pour les probabilités du type $P(X\leqslant b)$ et $P(X \geqslant a)$.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
% X -> B(5,0.4)
$P(X=3) \approx \CalcBinomP{5}{0.4}{3}$.
$P(X\leqslant1) \approx \CalcBinomC{5}{0.4}{*}{1}$.
@@ -4343,9 +4530,9 @@ $P(T\leqslant5) \approx \CalcPoissC{0.5}{*}{5}$.
% W -> H(50,10,5)
$P(W=4) \approx \CalcHypergeomP{50}{10}{5}{4}$.
$P(1\leqslant W\leqslant3) \approx \CalcHypergeomC{50}{10}{5}{1}{3}$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}[listing only]
+\begin{PresentationCodePL}{text only}
$\bullet~~~~X \hookrightarrow \mathcal{B}(5\,; 0,4)$ :\\
$P(X=3) \approx \CalcBinomP{5}{0.4}{3}$.\\
$P(X\leqslant1) \approx \CalcBinomC{5}{0.4}{*}{1}$.
@@ -4373,9 +4560,9 @@ $P(T\leqslant5) \approx \CalcGeomC{0.5}{*}{5}$.
$\bullet~~~~W \hookrightarrow \mathcal{H}(50\,; 10\,; 5)$ :\\
$P(W=4) \approx \CalcHypergeomP{50}{10}{5}{4}$.\\
$P(1\leqslant W\leqslant3) \approx \CalcHypergeomC{50}{10}{5}{1}{3}$.
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
% X -> N(0,1)
$P(X\leqslant1) \approx \CalcNormC{0}{1}{*}{1}$.
$P(-1,96\leqslant Z\leqslant1,96) \approx \CalcNormC{0}{1}{-1.96}{1.96}$.
@@ -4387,9 +4574,9 @@ $P(500\leqslant Y\leqslant600) \approx \CalcNormC{550}{30}{500}{600}$.
% Z -> E(0.001)
$P(Z\geqslant400) \approx \CalcExpoC{0.001}{400}{*}$.
$P(300\leqslant Z\leqslant750) \approx \CalcExpoC{0.001}{300}{750}$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
$\bullet~~~~X \hookrightarrow \mathcal{N}(0\,; 1)$ :\\
$P(X\leqslant1) \approx \CalcNormC{0}{1}{*}{1}$.\\
$P(-1,96\leqslant Z\leqslant1,96) \approx \CalcNormC{0}{1}{-1.96}{1.96}$.
@@ -4405,30 +4592,30 @@ $P(500\leqslant Y\leqslant600) \approx \CalcNormC{550}{30}{500}{600}$.
$\bullet~~~~Z \hookrightarrow \mathcal{E}_{0,001}$ :\\
$P(Z\geqslant400) \approx \CalcExpoC{0.001}{400}{*}$.\\
$P(300\leqslant Z\leqslant750) \approx \CalcExpoC{0.001}{300}{750}$.
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Complément avec sortie \og formatée \fg}
-\begin{codeidee}
+\begin{tipblock}
L'idée est ensuite de formater le résultat obtenu par \ctex{xintexpr}, pour un affichage homogène.
\smallskip
L'utilisateur peut donc utiliser \og sa \fg{} méthode pour formater les résultats obtenus par \ctex{xintexpr} !
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%avec un formatage manuel
\num[exponent-mode=scientific]{\CalcBinomP{100}{0.02}{10}}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{}
$\bullet~~~~X \hookrightarrow \mathcal{B}(100\,; 0,02)$ :
$P(X=10) \approx \num[exponent-mode=scientific]{\CalcBinomP{100}{0.02}{10}}$.
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeidee}
+\begin{tipblock}
Le package \ctex{ProfLycee} propose -- en complément -- des commandes pour formater, grâce à \ctex{siunitx}, le résultat.
Les commandes ne sont donc, dans ce cas, pas préfixées par \ctex{calc} :
@@ -4437,9 +4624,10 @@ Les commandes ne sont donc, dans ce cas, pas préfixées par \ctex{calc} :
\item formatage sous forme décimale \textit{pure} : $0,00\ldots$ ;
\item formatage sous forme scientifique : $n,\ldots\times10^{\ldots}$.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%loi binomiale B(n,p)
\BinomP(*)[prec]{n}{p}{k} %P(X=k)
\BinomC(*)[prec]{n}{p}{a}{b} %P(a<=X<=b)
@@ -4461,18 +4649,19 @@ Les commandes ne sont donc, dans ce cas, pas préfixées par \ctex{calc} :
%loi exponentielle E(l)
\ExpoC(*)[prec]{l}{a}{b} %P(a<=X<=b)
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques précisions sur les commandes précédentes :
\begin{itemize}
\item la version étoilée \Cle{*} des commandes formate le résultat en mode scientifique ;
\item l'argument optionnel (par défaut \Cle{3}) correspond à quant à lui à l'arrondi.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
% X -> N(550,30)
$P(Y\geqslant600) \approx \NormaleC[4]{550}{30}{600}{*}$.
$P(500\leqslant Y\leqslant600) \approx \NormaleC[4]{550}{30}{500}{600}$.
@@ -4488,9 +4677,9 @@ $P(300\leqslant Z\leqslant750) \approx \ExpoC{0.001}{300}{750}$.
% T -> P(5)
$P(T=3) \approx \PoissonP{5}{3}$.
$P(T\geqslant2) \approx \PoissonC[4]{5}{2}{*}$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
$\bullet~~~~Y \hookrightarrow \mathcal{N}(550\,; 30)$ :
$P(Y\geqslant600) \approx \NormaleC[4]{550}{30}{600}{*}$.
@@ -4528,11 +4717,11 @@ $\bullet~~~~T \hookrightarrow \mathcal{P}_5$ :
$P(T=3) \approx \PoissonP{5}{3}$.
$P(T\geqslant2) \approx \PoissonC[4]{5}{2}{*}$.
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-probas_a}~~\includegraphics[height=3cm]{./graphics/pl-doc-probas_c}~~\includegraphics[height=3cm]{./graphics/pl-doc-probas_e}~~\includegraphics[height=3cm]{./graphics/pl-doc-probas_f}\hfill~
-\end{codeinfo}
+\end{noteblock}
\newpage
@@ -4540,7 +4729,7 @@ $P(T\geqslant2) \approx \PoissonC[4]{5}{2}{*}$.
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer des commandes pour créer des arbres de probabilités classiques (et homogènes), en \TikZ, de format :
\begin{itemize}
@@ -4549,9 +4738,9 @@ L'idée est de proposer des commandes pour créer des arbres de probabilités cl
\end{itemize}
Les (deux) commandes sont donc liées à un environnement \ctex{tikzpicture}, et elles créent les nœuds de l'arbre, pour exploitation ultérieure éventuelle.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%commande simple pour tracé de l'arbre
\ArbreProbasTikz[options]{donnees}
@@ -4559,11 +4748,11 @@ Les (deux) commandes sont donc liées à un environnement \ctex{tikzpicture}, et
\begin{EnvArbreProbasTikz}[options]{donnees}
code tikz supplémentaire
\end{EnvArbreProbasTikz}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Options et arguments}
-\begin{codeinfo}
+\begin{noteblock}
Les \Cle{donnees} seront à préciser sous forme
\hfill\ctex{<sommet1>/<proba1>/<position1>,<sommet2>/<proba2>/<position2>,...}\hfill~
@@ -4574,9 +4763,10 @@ avec comme \og sens de lecture \fg{} de la gauche vers la droite puis du haut ve
\item \cmaj{2.5.3} une donnée \Cle{proba} peut être laissée vide ou spécifiée avec des \textsf{macros} ;
\item une donnée \Cle{position} peut valoir \Cle{above} (au-dessus), \Cle{below} (en-dessous) ou être laissée \Cle{vide} (sur).
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{Clés} (communes) pour les deux commandes :
\begin{itemize}
@@ -4591,9 +4781,10 @@ Quelques \Cle{Clés} (communes) pour les deux commandes :
\item la clé \Cle{StyleTrait} pour les branches, en langage \TikZ{} ; \hfill~défaut \Cle{vide}
\item la clé \Cle{EpaisseurTrait} pour l'épaisseur des branches, en langage \TikZ{} ; \hfill~défaut \Cle{semithick}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\def\ArbreDeuxDeux{
$A$/\num{0.5}/,
$B$/\num{0.4}/,
@@ -4606,9 +4797,9 @@ Quelques \Cle{Clés} (communes) pour les deux commandes :
\ArbreProbasTikz{\ArbreDeuxDeux}
%des éléménts, en gris, ont été rajoutés pour illustrer certaines options
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{EnvArbreProbasTikz}{$A$/\num{0.5}/,$B$/\num{0.4}/,$\overline{B}$/.../,$\overline{A}$/.../,$B$/.../,$\overline{B}$/$\frac{1}{3}$/}
\draw[lightgray] (R) node[left,font=\ttfamily\small] {(R)} ;
\draw[lightgray] (A11) node[below,font=\ttfamily\small] {(A11)} ;
@@ -4623,9 +4814,9 @@ Quelques \Cle{Clés} (communes) pour les deux commandes :
\draw[lightgray,<->,>=latex] (7,-1) -- (7,-2) node[midway,right,font=\ttfamily\small] {EspaceFeuille} ;
\draw[lightgray,<->,>=latex] (7,-2) -- (7,-3) node[midway,right,font=\ttfamily\small] {EspaceFeuille} ;
\end{EnvArbreProbasTikz}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Les nœuds crées par les commandes sont :
\begin{itemize}
@@ -4633,11 +4824,12 @@ Les nœuds crées par les commandes sont :
\item \ctex{A1x} pour les nœuds du 1\up{er} niveau (de haut en bas) ;
\item \ctex{A2x} pour les nœuds du 2\up{d} niveau (de haut en bas).
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
\subsection{Exemples complémentaires}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\def\ArbreTroisDeux{
$A_1$/\num{0.5}/above,
$B$/\num{0.4}/above,
@@ -4650,18 +4842,19 @@ Les nœuds crées par les commandes sont :
$\overline{B}$/$\frac{4}{15}$/below
}
-\begin{EnvArbreProbasTikz}[Type=3x2,Fleche,EspaceNiveau=5,EspaceFeuille=1.25]{\ArbreTroisDeux}
+\begin{EnvArbreProbasTikz}[Type=3x2,Fleche,EspaceNiveau=5,EspaceFeuille=1.25]%
+ {\ArbreTroisDeux}
\draw[ForestGreen,->] (A24)--($(A24)+(2.5,0)$) node[right,font=\sffamily] {code tikz rajouté} ;
\end{EnvArbreProbasTikz}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\begin{EnvArbreProbasTikz}[Type=3x2,Fleche,EspaceNiveau=5,EspaceFeuille=1.25]{$A_1$/\num{0.5}/above,$B$/\num{0.4}/above,$\overline{B}$/.../below,$A_2$/.../above,$B$/.../above,$\overline{B}$/$\frac{1}{3}$/below,$A_3$/.../below,$B$/.../above,$\overline{B}$/$\frac{4}{15}$/below}
\draw[ForestGreen,->] (A24)--($(A24)+(2.5,0)$) node[right,font=\sffamily] {code tikz rajouté} ;
\end{EnvArbreProbasTikz}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\def\ArbreDeuxTrois{
$A$/\num{0.05}/above,
$B_1$/\num{0.4}/above,$B_2$/\num{0.35}/,$B_3$//below,
@@ -4677,13 +4870,13 @@ Les nœuds crées par les commandes sont :
}
\ArbreProbasTikz[Type=3x3,StyleTrait={densely dashed},EspaceFeuille=0.7,PoliceProbas=\scriptsize,Police=\small]{\ArbreTroisTrois}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\ArbreProbasTikz[Type=2x3,InclineProbas=false,EspaceFeuille=1.15]{$A$/\num{0.05}/above,$B_1$/\num{0.4}/above,$B_2$/\num{0.35}/,$B_3$//below,$\overline{A}$/.../below,$B_1$/$\frac{2}{15}$/above,$B_2$/.../,$B_3$/$\frac{1}{3}$/below}
~~
\ArbreProbasTikz[Type=3x3,StyleTrait={densely dashed},EspaceFeuille=0.7,PoliceProbas=\scriptsize,Police=\small]{$A_1$/\num{0.05}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,$A_2$/\num{0.80}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,$A_3$/\num{0.15}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/}
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -4691,35 +4884,35 @@ Les nœuds crées par les commandes sont :
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer des commandes pour illustrer, sous forme de schémas en \TikZ, des probabilités avec des lois continues (normales et exponentielles).
\smallskip
Ces \og schémas \fg{} peuvent être insérés en tant que graphique explicatif, ou bien en tant que petite illustration rapide !
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\LoiNormaleGraphe[options]<options tikz>{m}{s}{a}{b}
\LoiExpoGraphe[options]<options tikz>{l}{a}{b}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\hfill\LoiNormaleGraphe{100}{20}{80}{120}\hspace{3cm}\LoiExpoGraphe{0.001}{250}{1500}\hfill~
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Les probabilités \textit{illustrables} sont donc des probabilités \textbf{C}umulées ($P(a\leqslant X\leqslant b)$).
\smallskip
On peut utiliser \ctex{*} comme borne ($a$ ou $b$), pour les probabilités du type $P(X\leqslant b)$ et $P(X \geqslant a)$.
-\end{codecles}
+\end{cautionblock}
\subsection{Commandes et options}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{Clés} sont disponibles pour ces commandes :
\begin{itemize}
@@ -4730,19 +4923,21 @@ Quelques \Cle{Clés} sont disponibles pour ces commandes :
\item un booléen \Cle{AfficheM} qui affiche la moyenne ; \hfill{}défaut \Cle{true}
\item un booléen \Cle{AfficheCadre} qui affiche un cadre pour délimiter le schéma. \hfill{}défaut \Cle{true}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
Les commandes sont donc des environnements \TikZ, sans possibilité de \og rajouter \fg{} des éléments. Ces petis \textit{schémas} sont donc vraiment dédiés à \textit{montrer} rapidement une probabilité continue, sans fioriture.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}
+\begin{PresentationCodePL}{}
Avec centrage vertical sur l'axe des abscisses :
\LoiNormaleGraphe
- [AfficheM=false,CouleurCourbe=Blue,CouleurAire=LightBlue]<baseline=0pt>{1000}{100}{950}{*}
-\end{codetex}
+ [AfficheM=false,CouleurCourbe=Blue,CouleurAire=LightBlue]<baseline=0pt>%
+ {1000}{100}{950}{*}
+\end{PresentationCodePL}
-\begin{codetex}
+\begin{PresentationCodePL}{}
Avec quelques modifications :
\LoiNormaleGraphe[Largeur=4,Hauteur=2]{150}{12.5}{122}{160}
@@ -4761,13 +4956,13 @@ Avec centrage vertical sur l'axe des abscisses :
\medskip
\LoiExpoGraphe[Largeur=4,Hauteur=2]{0.00025}{5000}{*}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Remarques et compléments}
-\begin{codeinfo}
+\begin{noteblock}
Pour le moment, seules les lois (continues) exponentielles et normales sont disponibles, peut-être que d'autres lois seront ajoutées, mais il ne me semble pas très pertinent de proposer des schémas similaires pour des lois discrètes, qui ont des \textit{représentations} assez variables\ldots
-\end{codeinfo}
+\end{noteblock}
\newpage
@@ -4775,20 +4970,21 @@ Pour le moment, seules les lois (continues) exponentielles et normales sont disp
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.0.9} L'idée est de proposer des commandes pour générer des nombres aléatoires, pour exploitation ultérieure :
\begin{itemize}
\item un entier ou un nombre décimal ;
\item des nombres entiers, avec ou sans répétitions.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeinfo}
+\begin{noteblock}
Pour chacune des commandes, le ou les résultats sont stockés dans une \textsf{macro} dont le nom est choisi par l'utilisateur.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%entier aléatoire entre a et b
\NbAlea{a}{b}{macro}
@@ -4800,34 +4996,34 @@ Pour chacune des commandes, le ou les résultats sont stockés dans une \textsf{
%liste d'entiers aléatoires
\TirageAleatoireEntiers[options]{macro}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
%nombre aléatoire entre 1 et 50, stocké dans \PremierNbAlea
-Entier entre 1 et 50 : \NbAlea{1}{50}{\PremierNbAlea}\PremierNbAlea
+Entier entre 1 et 50 : \NbAlea{1}{50}{\PremierNbAlea}\PremierNbAlea \\
%nombre aléatoire créé à partir du 1er, stocké dans \DeuxiemeNbAlea
-Entier à partir du précédent : \VarNbAlea{\DeuxiemeNbAlea}{\PremierNbAlea+randint(0,10)}\DeuxiemeNbAlea
+Entier à partir du précédent : \VarNbAlea{\DeuxiemeNbAlea}{\PremierNbAlea+randint(0,10)}\DeuxiemeNbAlea \\
%nombre aléatoire décimal (au millième) entre 0 et 10+1 (exclus), stocké dans \PremierDecAlea
-Décimal entre 0 et $10,999\ldots$ : \NbAlea[3]{0}{10}{\PremierDecAlea}\PremierDecAlea
+Décimal entre 0 et $10,999\ldots$ : \NbAlea[3]{0}{10}{\PremierDecAlea}\PremierDecAlea \\
%liste de 6 nombres, sans répétitions, entre 1 et 50
Liste par défaut (6 entre 1 et 50) : \TirageAleatoireEntiers{\PremiereListeAlea}\PremiereListeAlea
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Les listes créées sont exploitables, \textit{a posteriori}, par le package \ctex{listofitems} par exemple !
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
Liste générée : \TirageAleatoireEntiers{\TestListeA}\TestListeA
Liste traitée : \readlist*\LISTEa{\TestListeA}\showitems{\LISTEa}
-\end{codetex}
+\end{PresentationCodePL}
\pagebreak
\subsection{Clés et options}
-\begin{codecles}
+\begin{cautionblock}
Quelques clés sont disponibles pour la commande \ctex{TirageAleatoireEntiers} :
\begin{itemize}
@@ -4839,29 +5035,32 @@ Quelques clés sont disponibles pour la commande \ctex{TirageAleatoireEntiers} :
;\hfill{}défaut \Cle{non}
\item le booléen \Cle{Repetition} pour autoriser la répétition d'éléments.\hfill{}défaut \Cle{false}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
Une liste de 15 valeurs (différentes), entre 10 et 100, stockée dans la macro MaListeA : \\
Liste : \TirageAleatoireEntiers[ValMin=10,ValMax=100,NbVal=15]{\MaListeA}\MaListeA \\
Une liste de 12 valeurs (différentes), entre 1 et 50, ordre croissant : \\
-Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=croissant]{\MaListeB}\MaListeB \\
+Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=croissant]%
+ {\MaListeB}\MaListeB \\
Une liste de 12 valeurs (différentes), entre 1 et 50, ordre décroissant : \\
-Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=decroissant]{\MaListeC}\MaListeC \\
+Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=decroissant]%
+ {\MaListeC}\MaListeC \\
15 tirages de dé à 6 faces : \\ \TirageAleatoireEntiers[ValMin=1,ValMax=6,NbVal=15,Repetition]{\TestDes}\TestDes
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
Une liste (10) pour le Keno\textcopyright, ordonnée, et séparée par des \texttt{-} :
\TirageAleatoireEntiers[ValMin=1,ValMax=70,NbVal=10,Tri=croissant,Sep={-}]{\ListeKeno}
$\ListeKeno$
\setsepchar{-}\readlist*\KENO{\ListeKeno}\showitems{\KENO}
-\end{codetex}
+\end{PresentationCodePL}
\newpage
@@ -4869,19 +5068,19 @@ $\ListeKeno$
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer une commande pour calculer un arrangement ou une combinaison, en utilisant les capacités de calcul du package \ctex{xint} (\cmaj{2.5.4}).
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\Arrangement(*)[option]{p}{n}
\Combinaison(*)[option]{p}{n}
\CalculAnp{p}{n} ou \CalculCnp{p}{n} dans un calcul via \xinteval{...}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Utilisation}
-\begin{codecles}
+\begin{cautionblock}
Peu de paramétrage pour ces commandes qui permettent de calculer $A_n^p$ et $\binom{n}{p}$ :
\begin{itemize}
@@ -4891,26 +5090,37 @@ Peu de paramétrage pour ces commandes qui permettent de calculer $A_n^p$ et $\b
\item le premier argument, \textit{obligatoire}, est la valeur de $p$ ;
\item le second argument, \textit{obligatoire}, est la valeur de $n$.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
On a $A_{20}^3=\Arrangement*{3}{20}$ en non formaté,
et $\Arrangement[Notation]{3}{20}$ en formaté avec la notation au début.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
On a $\displaystyle\binom{20}{3}=\Combinaison*{3}{20}$ en non formaté,~
et $\displaystyle\Combinaison[Notation]{3}{20}$ en formaté avec la notation au début.\\
Et $\dbinom{20}{3}+\dbinom{20}{4} = \num{\xinteval{\CalculCnp{3}{20}+\CalculCnp{4}{20}}}$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
On a $\displaystyle\Arrangement[Notation,Formule]{3}{20}$.
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
On a $\displaystyle\Combinaison[NotationAncien,Formule]{3}{20}$. %ancienne notation FR
-\end{codetex}
+\end{PresentationCodePL}
+
+\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
@@ -4920,24 +5130,25 @@ On a $\displaystyle\Combinaison[NotationAncien,Formule]{3}{20}$. %ancienne notat
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de \textit{compléter} les possibilités offertes par le package \ctex{xintbinhex}, en mettant en forme quelques conversions :
\begin{itemize}
\item décimal en binaire avec blocs de 4 chiffres en sortie ;
\item conversion binaire ou hexadécimal en décimal avec écriture polynomiale.
\end{itemize}
-\end{codeidee}
+\vspace*{-\baselineskip}\leavevmode
+\end{tipblock}
-\begin{codeinfo}
+\begin{noteblock}
Le package \ctex{xintbinhex} est la base de ces macros, puisqu'il permet de faire des conversions directes !
\smallskip
Les macros présentées ici ne font que les intégrer dans un environnement adapté à une correction ou une présentation !
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\xintDecToHex{100}
\xintDecToBin{51}
\xintHexToDec{A4C}
@@ -4945,9 +5156,9 @@ Les macros présentées ici ne font que les intégrer dans un environnement adap
\xintBinToHex{11111111}
\xintHexToBin{ACDC}
\xintCHexToBin{3F}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\xintDecToHex{100}
\xintDecToBin{51}
@@ -4961,15 +5172,15 @@ Les macros présentées ici ne font que les intégrer dans un environnement adap
\xintHexToBin{ACDC}
\xintCHexToBin{3F}
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Conversion décimal vers binaire}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\ConversionDecBin(*)[clés]{nombre}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Concernant la commande en elle même, peu de paramétrage :
\begin{itemize}
@@ -4983,9 +5194,9 @@ Le formatage est géré par \ctex{sinuitx}, le mieux est donc de positionner la
\smallskip
Les nombres écrits en binaire sont, par défaut, présentés en bloc(s) de 4 chiffres.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
% Conversion avec affichage de la base et par bloc de 4
$\ConversionDecBin{415}$
% Conversion avec affichage de la base et sans forcément des blocs de 4
@@ -4994,9 +5205,9 @@ $\ConversionDecBin*{415}$
$\ConversionDecBin[AffBase=false]{415}$
% Conversion sans affichage de la base et sans forcément des blocs de 4
$\ConversionDecBin*[AffBase=false]{415}$
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
$\ConversionDecBin{415}$
\smallskip
@@ -5010,11 +5221,11 @@ $\ConversionDecBin[AffBase=false]{415}$
\smallskip
$\ConversionDecBin*[AffBase=false]{415}$
-\end{codesortie}
+\end{PresentationCodePL}
\subsection{Conversion binaire vers hexadécimal}
-\begin{codeinfo}
+\begin{noteblock}
L'idée est ici de présenter la conversion, grâce à la conversion \og directe \fg{} par blocs de 4 chiffres :
\begin{itemize}
@@ -5023,13 +5234,14 @@ L'idée est ici de présenter la conversion, grâce à la conversion \og directe
\item elle présente la conversion de chacun des blocs de 4 chiffres binaires ;
\item elle affiche la conversion en binaire.
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\ConversionBinHex[clés]{nombre}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -5039,30 +5251,30 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\end{itemize}
Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%conversion avec détails et affichage de la base
$\ConversionBinHex{110011111}$
%conversion sans détails et affichage de la base
$\ConversionBinHex[Details=false]{110011111}$
%conversion sans détails et sans affichage de la base
$\ConversionBinHex[AffBase=false,Details=false]{110011111}$
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
$\ConversionBinHex{110011111}$
$\ConversionBinHex[Details=false]{110011111}$
$\ConversionBinHex[AffBase=false,Details=false]{110011111}$
-\end{codesortie}
+\end{PresentationCodePL}
\pagebreak
\subsection{Conversion binaire ou hexadécimal en décimal}
-\begin{codeinfo}
+\begin{noteblock}
L'idée est ici de présenter la conversion, grâce à l'écriture polynômiale :
\begin{itemize}
@@ -5070,13 +5282,14 @@ L'idée est ici de présenter la conversion, grâce à l'écriture polynômiale
\item convertir si besoin les \textit{chiffres} hexadécimal ;
\item peut ne pas afficher les monômes de coefficient 0.
\end{itemize}
-\end{codeinfo}
+\vspace*{-\baselineskip}\leavevmode
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\ConversionVersDec[clés]{nombre}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -5087,9 +5300,9 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\end{itemize}
Le formatage est toujours géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%conversion 16->10 avec détails et affichage de la base et zéros
$\ConversionVersDec[BaseDep=16]{19F}$
%conversion 2->10 avec détails et affichage de la base et zéros
@@ -5100,9 +5313,9 @@ $\ConversionVersDec[Zeros=false]{110011}$
$\ConversionVersDec[BaseDep=16,Details=false]{AC0DC}$
%conversion 16->10 avec détails et sans affichage de la base et sans zéros
$\ConversionVersDec[Eeros=false,Basedep=16]{AC0DC}$
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
$\ConversionVersDec[BaseDep=16]{19F}$
$\ConversionVersDec{110011}$
@@ -5112,7 +5325,7 @@ $\ConversionVersDec[Zeros=false]{110011}$
$\ConversionVersDec[BaseDep=16,Details=false]{AC0DC}$
$\ConversionVersDec[Zeros=false,BaseDep=16]{AC0DC}$
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -5120,7 +5333,7 @@ $\ConversionVersDec[Zeros=false,BaseDep=16]{AC0DC}$
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer une \og présentation \fg{} par divisions euclidiennes pour la conversion d'un entier donné en base 10 dans une base quelconque.
\smallskip
@@ -5130,30 +5343,30 @@ Les commandes de la section précédente donne \textit{juste} les résultats, da
\smallskip
La commande utilise -- par défaut -- du code \TikZ{} en mode \ctex{overlay}, donc on pourra déclarer -- si ce n'est pas fait -- dans le préambule, la commande qui suit.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
...
\tikzstyle{every picture}+=[remember picture]
...
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Code et clés}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
%conversion basique
\ConversionDepuisBaseDix{78}{2}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
La \og tableau \fg, qui est géré par \ctex{array} est inséré dans un \ctex{ensuremath}, donc les \ctex{\$...\$} ne sont pas utiles.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\ConversionDepuisBaseDix[options]{nombre en base 10}{base d'arrivée}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codecles}
+\begin{cautionblock}
Quelques options pour cette commande :
\begin{itemize}
@@ -5168,9 +5381,10 @@ Quelques options pour cette commande :
\hfill{}défaut \Cle{false}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%conversion avec changement de couleur
\ConversionDepuisBaseDix[Couleur=DarkBlue]{45}{2}
@@ -5185,9 +5399,9 @@ Par divisions euclidiennes successives, \ConversionDepuisBaseDix[Rect=false]{54}
\begin{tikzpicture}
\draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\ConversionDepuisBaseDix[Couleur=DarkBlue]{45}{2}
\medskip
@@ -5208,7 +5422,7 @@ On obtient donc \ConversionDepuisBaseDix[Couleur=ForestGreen,CouleurRes,Noeud=TE
\vspace{1.5cm}
~
-\end{codesortie}
+\end{PresentationCodePL}
\newpage
@@ -5216,39 +5430,41 @@ On obtient donc \ConversionDepuisBaseDix[Couleur=ForestGreen,CouleurRes,Noeud=TE
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer une \og présentation \fg{} de l'algorithme d'Euclide pour le calcul du PGCD de deux entiers.
Le package \ctex{xintgcd} permet déjà de le faire, il s'agit ici de travailler sur la \textit{mise en forme}.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\PresentationPGCD[options]{a}{b}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\tikzstyle{every picture}+=[remember picture]
...
\PresentationPGCD{150}{27}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{}
\PresentationPGCD{150}{27}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeattention}
+\begin{warningblock}
La mise en valeur du dernier reste non nul est géré par du code \TikZ, en mode \ctex{overlay}, donc il faut bien penser à déclarer dans le préambule : \ctex{\textbackslash{}tikzstyle\{every picture\}+=[remember picture]}
-\end{codeattention}
+\end{warningblock}
\subsection{Options et clés}
-\begin{codecles}
+\begin{cautionblock}
Quelques options disponibles pour cette commande :
\begin{itemize}
\item la clé \Cle{Couleur} qui correspond à la couleur pour la mise en valeur ; \hfill{}défaut \Cle{red}
\item la clé \Cle{DecalRect} qui correspond à l'écartement du rectangle de mise en valeur ; \hfill{}défaut \Cle{2pt}
- \item le booléen \Cle{Rectangle} qui gère l'affichage ou non du rectangle de mise ne valeur ; \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{Rectangle} qui gère l'affichage ou non du rectangle de mise ne valeur ;
+
+ \hfill{}défaut \Cle{true}
\item la clé \Cle{Noeud} qui gère le préfixe du nom du nœud \TikZ{} du rectangle (pour exploitation ultérieure) ;
\hfill{}défaut \Cle{FFF}
@@ -5266,39 +5482,49 @@ Le rectangle de mise en valeur est donc un nœud \TikZ{} qui sera nommé, par d
\medskip
La présentation est dans un environnement \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas indispensables.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\PresentationPGCD[CouleurResultat]{150}{27}
-\end{codetex}
+\end{PresentationCodePL}
\pagebreak
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\PresentationPGCD[CouleurResultat,Couleur=ForestGreen]{1250}{450}.
\PresentationPGCD[CouleurResultat,Couleur=DarkBlue]{13500}{2500}.
\PresentationPGCD[Rectangle=false]{420}{540}. \\
-D'après l'algorithme d'Euclide, on a $\left| \PresentationPGCD[Couleur=LightSkyBlue,AfficheConclusion=false,AfficheDelimiteurs=false]%
+D'après l'algorithme d'Euclide, on a $\left| \PresentationPGCD[Couleur=LightSkyBlue,AfficheConclusion=false, AfficheDelimiteurs=false]%
{123456789}{9876} \right.$
\begin{tikzpicture}
- \draw[overlay,LightSkyBlue,thick,<-] (FFF1.east) to[bend right] ++ (2cm,0.75cm) node[right] {dernier reste non nul} ;
+ \draw[overlay,LightSkyBlue,thick,<-] (FFF1.east) to[bend right] ++ (1cm,0.75cm) node[right] {dernier reste non nul} ;
\end{tikzpicture}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Compléments}
-\begin{codeinfo}
+\begin{noteblock}
La présentation des divisions euclidiennes est gérée par un tableau du type \ctex{array}, avec alignement vertical de symboles \ctex{=} et \ctex{+}.
Par défaut, les délimiteurs choisis sont donc l'accolade gauche et le trait droit, mais la clé booléenne \Cle{AfficheDelimiteurs=false} permet de choisir des délimiteurs différents.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
$\left[ \PresentationPGCD[AfficheConclusion=false,AfficheDelimiteurs=false]{1234}{5} \right]$
-\end{codetex}
+\end{PresentationCodePL}
+
+\newpage
+
+\phantom{t}\par\vfill\par
+\begin{PART}
+ \begin{center}
+ \Huge\MakeUppercase{Écritures, simplifications}
+ \end{center}
+\end{PART}
+\par\vfill\par\phantom{t}
\newpage
@@ -5308,17 +5534,17 @@ $\left[ \PresentationPGCD[AfficheConclusion=false,AfficheDelimiteurs=false]{1234
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir une commande pour \textit{simplifier} un calcul sous forme de fraction irréductible.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\ConversionFraction(*)[option de formatage]{calcul}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Commande et options}
-\begin{codecles}
+\begin{cautionblock}
Quelques explications sur cette commande :
\begin{itemize}
@@ -5335,9 +5561,9 @@ Quelques explications sur cette commande :
\end{itemize}
À noter que la macro est dans un bloc \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas nécessaires.
-\end{codecles}
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\ConversionFraction{-10+1/3*(-5/16)} %sortie par défaut
\ConversionFraction*{-10+1/3*(-5/16)} %sortie fraction avec - sur numérateur
\ConversionFraction[d]{-10+1/3*(-5/16)} %sortie en displaystyle
@@ -5346,9 +5572,9 @@ Quelques explications sur cette commande :
\ConversionFraction{2+91/7} %entier formaté
\ConversionFraction{111/2145}
\ConversionFraction{111/3}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\ConversionFraction{-10+1/3*(-5/16)}
\smallskip
@@ -5378,47 +5604,31 @@ Quelques explications sur cette commande :
\smallskip
\ConversionFraction{111/3}
-\end{codesortie}
-
-\begin{codetex}[]
-$\frac{111}{2145}=\ConversionFraction{111/2145}$
-
-\smallskip
-
-$\frac{3}{15}=\ConversionFraction[]{3/15}$
-
-\smallskip
+\end{PresentationCodePL}
-$\tfrac{3}{15}=\ConversionFraction[t]{3/15}$
+\begin{PresentationCodePL}{}
+$\frac{111}{2145}=\ConversionFraction{111/2145}$ \\
-\smallskip
+$\frac{3}{15}=\ConversionFraction[]{3/15}$ \\
-$\dfrac{3}{15}=\ConversionFraction[d]{3/15}$
+$\tfrac{3}{15}=\ConversionFraction[t]{3/15}$ \\
-\smallskip
+$\dfrac{3}{15}=\ConversionFraction[d]{3/15}$ \\
-$\dfrac{0,42}{0,015}=\ConversionFraction[d]{0.42/0.015}$
+$\dfrac{0,42}{0,015}=\ConversionFraction[d]{0.42/0.015}$ \\
-\smallskip
+$\dfrac{0,41}{0,015}=\ConversionFraction[d]{0.41/0.015}$ \\
-$\dfrac{0,41}{0,015}=\ConversionFraction[d]{0.41/0.015}$
+$\dfrac{1}{7}-\dfrac{3}{8}=\ConversionFraction[d]{1/7-3/8}$ \\
-\smallskip
-
-$\dfrac{1}{7}-\dfrac{3}{8}=\ConversionFraction[d]{1/7-3/8}$
-
-\smallskip
-
-$\ConversionFraction[d]{1+1/2}$
-
-\smallskip
+$\ConversionFraction[d]{1+1/2}$ \\
$\ConversionFraction{0.1/0.7+30/80}$
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
A priori le package \ctex{xint} permet de s'en sortir pour des calculs \og simples \fg, je ne garantis pas que tout calcul ou toute division donne un résultat \textit{satisfaisant} !
-\end{codeinfo}
+\end{noteblock}
\pagebreak
@@ -5426,19 +5636,19 @@ A priori le package \ctex{xint} permet de s'en sortir pour des calculs \og simpl
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est d'obtenir une commande pour simplifier l'écriture d'un ensemble d'éléments, en laissant gérer les espaces.
Les délimiteurs de l'ensemble créé sont toujours \textsf{\{~~\}}.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\EcritureEnsemble[clés]{liste}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Commande et options}
-\begin{codecles}
+\begin{cautionblock}
Peu d'options pour ces commandes :
\begin{itemize}
@@ -5452,17 +5662,18 @@ Peu d'options pour ces commandes :
\end{itemize}
\item le second, \textit{obligatoire}, est la \textsf{liste} des éléments, séparés par \textsf{/}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
$\EcritureEnsemble{a/b/c/d/e}$
$\EcritureEnsemble[Mathpunct=false]{a/b/c/d/e}$
$\EcritureEnsemble[Sep={,}]{a/b/c/d/e}$
$\EcritureEnsemble[Option={\strut}]{a/b/c/d/e}$ % \strut pour "augmenter" un peu la hauteur des {}
$\EcritureEnsemble{ \frac{1}{1+\frac{1}{3}} / b / c / d / \frac{1}{2} }$
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
$\EcritureEnsemble{a/b/c/d/e}$
\smallskip
@@ -5480,11 +5691,11 @@ $\EcritureEnsemble[Option={\strut}]{a/b/c/d/e}$
\smallskip
$\EcritureEnsemble{ \displaystyle\frac{1}{1+\frac{1}{3}} / b / c / d / \displaystyle\frac{1}{2} }$
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
Attention cependant au comportement de la commande avec des éléments en mode \textsf{mathématique}, ceux-ci peuvent générer une erreur si \textsf{displaystyle} n'est pas utilisé\ldots
-\end{codeinfo}
+\end{noteblock}
\newpage
@@ -5492,7 +5703,7 @@ Attention cependant au comportement de la commande avec des éléments en mode \
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de proposer une commande pour écrire, sous forme développée réduite, un trinôme en fonction de ses coefficients $a$, $b$ et $c$ (avec $a\neq0$), avec la gestion des coefficients nuls ou égaux à $\pm1$.
\smallskip
@@ -5502,47 +5713,45 @@ En combinant avec le package \ctex{xfp} et fonction de générateur d'entiers al
\smallskip
L'affichage des monômes est géré par le package \ctex{siunitx} et le tout est dans un environnement \ctex{ensuremath}.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\EcritureTrinome[options]{a}{b}{c}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\EcritureTrinome{1}{7}{0}\\
\EcritureTrinome{1.5}{7.3}{2.56}\\
\EcritureTrinome{-1}{0}{12}\\
\EcritureTrinome{-1}{-5}{0}
-\end{codetex}
+\end{PresentationCodePL}
\subsection{Clés et options}
-\begin{codecles}
+\begin{cautionblock}
Quelques clés et options sont disponibles :
\begin{itemize}
\item la clé booléenne \Cle{Alea} pour autoriser les coefficients aléatoires ;\hfill{}défaut \Cle{false}
\item la clé booléenne \Cle{Anegatif} pour autoriser $a$ à être négatif.\hfill{}défaut \Cle{true}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
La clé \Cle{Alea} va modifier la manière de saisir les coefficients, il suffira dans ce cas de préciser les bornes, sous la forme \ctex{valmin,valmax}, de chacun des coefficients. C'est ensuite le package \ctex{xfp} qui va se charger de générer les coefficients.
-\end{codeinfo}
-
-\begin{codetex}[]
-Avec $a$ entre 1 et 5 (et signe aléatoire) puis $b$ entre $-2$ et 7 puis $c$ entre $-10$ et 20 :
+\end{noteblock}
+\begin{PresentationCodePL}{}
+Avec $a$ entre 1 et 5 (et signe aléatoire) puis $b$ entre $-2$ et 7 puis $c$ entre $-10$ et 20 : \\
$f(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
$g(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
$h(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
-
-Avec $a$ entre 1 et 10 (forcément positif) puis $b$ entre $-2$ et 2 puis $c$ entre 0 et 4 :
-
+Avec $a$ entre 1 et 10 (forcément positif) puis $b$ entre $-2$ et 2 puis $c$ entre 0 et 4 : \\
\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}\\
\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}\\
\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}
-\end{codetex}
+\end{PresentationCodePL}
\newpage
@@ -5550,30 +5759,30 @@ Avec $a$ entre 1 et 10 (forcément positif) puis $b$ entre $-2$ et 2 puis $c$ en
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.1.0} L'idée est de proposer une commande pour simplifier \textit{automatiquement} une racine carrée, sous la forme $\frac{a\sqrt{b}}{c}$ avec $\frac{a}{c}$ irréductible et $b$ le \frquote{plus petit possible}.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\SimplificationRacine{expression ou calcul}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
\SimplificationRacine{48} \\ \SimplificationRacine{100/34}\\
\SimplificationRacine{99999} \\ \SimplificationRacine{1500*0.31*(1-0.31)}\\
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
C'est -- comme souvent -- le package \ctex{xint} qui s'occupe en interne des calculs, et qui devrait donner des résultats satisfaisants dans la majorité des cas (attention aux \textit{grands nombres}\ldots)
\smallskip
La commande ne fait pas office de \textit{calculatrice}, elle ne permet \textit{que} de simplifier \textit{une} racine carrée (donc transformer si besoin !).
-\end{codeinfo}
+\end{noteblock}
\subsection{Exemples}
-\begin{codetex}[]
+\begin{PresentationCodePL}{}
%Simplification d'un module de complexe
$\left| 4+6\text{i}\right| = \sqrt{4^2+6^2} = \sqrt{\xinteval{4**2+6**2}}=\SimplificationRacine{4**2+6**2}$
@@ -5585,7 +5794,7 @@ $\frac{42}{\sqrt{5}}=\left(\sqrt{\frac{42^2}{5}}\right)=\SimplificationRacine{(4
%Écart-type d'une loi binomiale
$\sqrt{\num{150}\times\num{0.35}\times(1-\num{0.35})} = \displaystyle\SimplificationRacine{150*0.35*(1-0.35)}$
-\end{codetex}
+\end{PresentationCodePL}
\newpage
@@ -5593,35 +5802,37 @@ $\sqrt{\num{150}\times\num{0.35}\times(1-\num{0.35})} = \displaystyle\Simplifica
\subsection{Idée}
-\begin{codeidee}
+\begin{tipblock}
\cmaj{2.1.2} L'idée est de proposer (sur une suggestion de Marylyne Vignal) une commande pour déterminer la mesure principale d'un angle en radian.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
\MesurePrincipale[booléens]{angle} %dans un mode mathématique
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
La commande est à insérer dans un environnement mathématique, via \ctex{\$...\$} ou \ctex{\textbackslash[...\textbackslash]}.
-L'angle peut être donné sous forme \textit{explicite} avec la chaîne \ctex{pi}.
-\end{codeinfo}
+L'angle est donné sous forme \textit{explicite} avec la chaîne \ctex{pi}.
+\end{noteblock}
\subsection{Exemples}
-\begin{codecles}
+\begin{cautionblock}
Pour cette commande :
\begin{itemize}
- \item le booléen \Cle{d} permet de forcer l'affichage en \ctex{displaystyle} ;\hfill{}défaut \Cle{false}
- \item le booléen \Cle{Crochets} permet d'afficher le \textit{modulo} entre crochets plutôt qu'entre parenthèses ;
+ \item le booléen \Cle{d} permet de forcer l'affichage en \ctex{displaystyle} ; \hfill{}défaut \Cle{false}
+ \item le booléen \Cle{Crochets} permet d'afficher le \textit{modulo} entre crochets (sinon parenthèses) ;
\hfill{}défaut \Cle{false}
+ \item \cmaj{2.6.0} le booléen \Cle{Brut} pour afficher uniquement la mesure principale ; \hfill{}défaut \Cle{false}
\item l'argument \textit{obligatoire} est en écriture \textit{en ligne}.
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
$\MesurePrincipale[d]{54pi/7}$
$\MesurePrincipale[d]{-128pi/15}$
$\MesurePrincipale{3pi/2}$
@@ -5630,9 +5841,10 @@ $\MesurePrincipale{-13pi}$
$\MesurePrincipale{28pi}$
$\MesurePrincipale[d]{14pi/4}$
$\MesurePrincipale[Crochets]{14pi/7}$
-\end{codetex}
+$\dfrac{121\pi}{12} = \MesurePrincipale[Brut]{121pi/12}$ à $2\pi$ près
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
$\MesurePrincipale[d]{54pi/7}$
\medskip
@@ -5662,381 +5874,187 @@ $\MesurePrincipale[d]{14pi/4}$
\medskip
$\MesurePrincipale[Crochets]{14pi/7}$
-\end{codesortie}
+
+\medskip
+
+$\dfrac{121\pi}{12} = \MesurePrincipale[d,Brut]{121pi/12}$ à $2\pi$ près
+\end{PresentationCodePL}
\pagebreak
-\part{Jeux et récréations}
+\section{Lignes trigonométriques}\label{lignestrigo}
-%\section{PixelART via un fichier csv, en \TikZ}\label{pixelart}
-%
-%\subsection{Introduction}
-%
-%\begin{codeidee}
-%L'idée est de \textit{proposer}, dans un environnement \TikZ, une commande permettant de générer des grilles PixelART.
-%
-%Les données sont \textit{lues} à partir d'un fichier \textsf{csv}, externe au fichier \textsf{tex} ou déclaré en interne grâce à l'environnement \ctex{filecontents}.
-%\end{codeidee}
-%
-%\begin{codeinfo}
-%Avant toute chose, quelques petites infos sur les données au format \textsf{csv}, surtout dans l'optique de sa lecture et de son traitement par \ctex{ProfLycee} :
-%
-%\begin{itemize}
-% \item le fichier de données \textsf{csv} doit être formaté avec le séparateur décimal \og , \fg ;
-% \item des cases vides seront codées par \og \texttt{-} \fg.
-%\end{itemize}
-%
-%Le fichier \textsf{csv} peut être déclaré directement dans le fichier \textsf{tex}, grâce à l'environnement \ctex{filecontents} (intégré en natif sur les dernières versions de \LaTeX) :
-%
-%\begin{Verbatim}[tabsize=2,fontsize=\scriptsize]
-%\begin{filecontents*}{<nomfichier>.csv}
-%A,B,C,D
-%A,B,D,C
-%B,A,C,D
-%B,A,D,C
-%\end{filecontents*}
-%\end{Verbatim}
-%
-%À la compilation, le fichier \textsf{<nomfichier>.csv} sera créé automatiquement, et l'option \Cle{[overwrite]} permet (logiquement) de propager les modifications au fichier \textsf{csv}.
-%\end{codeinfo}
-%
-%\subsection{Package csvsimple et option}
-%
-%\begin{codeinfo}
-%Le package \textit{central} est ici \ctex{csvsimple}, qui permet de lire et traiter le fichier \textsf{csv}.
-%
-%Il est \og disponible \fg{} en version \LaTeXe{} ou en version \LaTeXIII. Par défaut, \ctex{ProfLycee} le charge en version \LaTeXIII{}, mais une \Cle{option} est disponible pour une \textit{rétro-compatibilité} avec la version \LaTeXe.
-%
-%\smallskip
-%
-%L'option \Cle{csvii} permet de passer l'appel au package en version \LaTeXe.
-%\end{codeinfo}
-%
-%\begin{codetex}[listing only]
-%\usepackage{ProfLycee} %chargement du package version 3
-%%qui charge :
-%%\RequirePackage{expl3}
-%%\RequirePackage[l3]{csvsimple}
-%
-%\usepackage[csvii]{ProfLycee} %chargement du package version 2
-%%qui charge :
-%%\RequirePackage[legacy]{csvsimple}
-%\end{codetex}
-%
-%\subsection{Exemple simple, clés et options}
-%
-%\begin{codetex}[listing only]
-%%déclaration du fichier csv
-%\begin{filecontents*}[overwrite]{basique.csv}
-%A,B,C,D
-%A,B,D,C
-%B,A,D,C
-%C,A,B,D
-%\end{filecontents*}
-%
-%\begin{tikzpicture}%avec lettres
-% \PixelArtTikz[Codes=ABCD,Style=\large\sffamily]{basique.csv}
-%\end{tikzpicture}
-%\begin{tikzpicture}%avec chiffres
-% \PixelArtTikz[Codes=ABCD,Symboles={45,22,1,7},Symb,Style=\large\sffamily]{basique.csv}
-%\end{tikzpicture}
-%\begin{tikzpicture}%avec correction
-% \PixelArtTikz[codes=ABCD,Couleurs={Black,Green,Yellow,Red},Correction]{basique.csv}
-%\end{tikzpicture}
-%\begin{tikzpicture}%avec correction sans bordure
-% \PixelArtTikz[Codes=ABCD,Couleurs={Black,Green,Yellow,Red},Correction,BordCases=false]{basique.csv}
-%\end{tikzpicture}
-%\end{codetex}
-%
-%\begin{codesortie}
-%\begin{filecontents*}[overwrite]{basique.csv}
-%A,B,C,D
-%A,B,D,C
-%B,A,D,C
-%C,A,B,D
-%\end{filecontents*}
-%
-%\begin{center}
-% \begin{tblr}{colspec={*{4}{Q[1.25cm,c,m]}},hlines,vlines,rows={1.15em}}
-% \SetCell[c=4]{c} Notice & & & \\
-% A & B & C & D \\
-% 45 & 22 & 1 & 7 \\
-% Noir & Vert & Jaune & Rouge \\
-% \end{tblr}
-%\end{center}
-%
-%\hfill\begin{tikzpicture}[scale=0.9]
-% %avec lettres
-% \PixelArtTikz[Codes=ABCD,Style=\large\sffamily]{basique.csv}
-%\end{tikzpicture}
-%\begin{tikzpicture}[scale=0.9]
-% %avec chiffres
-% \PixelArtTikz[Codes=ABCD,Symboles={45,22,1,7},Symb,Style=\large\sffamily]{basique.csv}
-%\end{tikzpicture}
-%\begin{tikzpicture}[scale=0.9]
-% %avec correction
-% \PixelArtTikz[Codes=ABCD,Couleurs={Black,Green,Yellow,Red},Correction]{basique.csv}
-%\end{tikzpicture}
-%\begin{tikzpicture}[scale=0.9]
-% %avec correction
-% \PixelArtTikz[Codes=ABCD,Couleurs={Black,Green,Yellow,Red},Correction,BordCases=false]{basique.csv}
-%\end{tikzpicture}
-%\hfill~
-%\end{codesortie}
-%
-%\begin{codeinfo}
-%La commande \ctex{PixelArtTikz} nécessite de connaître :
-%
-%\begin{itemize}
-% \item le fichier \textsf{csv} à traiter ;
-% \item la liste (en fait sous forme de chaîne) des codes utilisés dans le fichier \textsf{csv} (comme \ctex{234679} ou \ctex{ABCDJK}\ldots);
-% \item la liste des symboles (éventuellement !) à afficher dans les cases s'il y a ambiguïté, comme \ctex{25,44,12} ou \ctex{AA,AB,AC};
-% \item la liste des couleurs (si la correction est demandée), dans le même ordre que la liste des caractères.
-%\end{itemize}
-%\end{codeinfo}
-%
-%\begin{codetex}[listing only]
-%%environnement tikz
-%\PixelArtTikz[clés]{<fichier>.csv}
-%\end{codetex}
-%
-%\begin{codecles}
-%Quelques \Cle{Clés} sont nécessaires au bon fonctionnement de la commande :
-%
-%\begin{itemize}
-% \item la clé \Cle{Codes} contient la \textsf{chaîne} des codes \textit{simples} du fichier \textsf{csv} ;
-% \item la clé \Cle{Couleurs} qui contient la \textsf{liste} des couleurs associées ;
-% \item la clé \Cle{Symboles} qui contient la \textsf{liste éventuelles} des caractères alternatifs à afficher dans les cases ;
-% \item la clé booléenne \Cle{Correction} qui permet de colorier le PixelART ;\hfill{}défaut \Cle{false}
-% \item la clé booléenne \Cle{Symb} qui permet d'afficher les caractères \textit{alternatifs} ;\hfill{}défaut \Cle{false}
-% \item la clé booléenne \Cle{BordCases} qui permet d'afficher les bords des cases de la correction ;\hfill{}défaut \Cle{true}
-% \item la clé \Cle{Style} qui permet de spécifier le style des caractères. \hfill{}défaut \Cle{scriptsize}
-%\end{itemize}
-%\end{codecles}
-%
-%\begin{codetex}[listing only]
-%%codes simples et sans ambiguïté
-%%une case vide sera codée par -
-%
-%\begin{filecontents*}[overwrite]{perroquet.csv}
-%-,-,-,-,-,-,4,4,4,4,-,-,-,-,-,-
-%-,-,-,-,4,4,1,1,1,1,4,4,-,-,-,-
-%-,-,-,4,1,1,1,1,1,1,1,1,4,-,-,-
-%-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
-%-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
-%-,4,1,9,9,1,1,1,1,1,1,9,9,1,4,-
-%-,4,9,9,9,9,4,4,4,4,9,9,9,9,4,-
-%-,4,9,4,9,9,4,4,4,4,9,4,9,9,4,-
-%-,4,1,9,9,9,4,4,4,4,9,9,9,1,4,-
-%-,-,4,1,1,9,4,4,4,4,9,1,1,4,-,-
-%-,-,4,1,1,1,4,4,4,4,1,1,1,4,-,-
-%-,-,-,4,1,1,1,4,4,1,1,1,4,-,-,-
-%-,-,4,3,1,1,1,1,1,1,1,1,3,4,-,-
-%-,4,6,3,1,1,1,1,1,1,1,1,3,6,4,-
-%-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
-%-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
-%-,4,6,4,1,1,1,4,4,1,1,1,4,6,4,-
-%2,2,4,2,4,4,4,2,2,4,4,4,2,4,2,2
-%2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
-%2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
-%-,-,-,-,-,4,1,1,1,1,4,-,-,-,-,-
-%-,-,-,-,-,-,4,1,1,4,-,-,-,-,-,-
-%-,-,-,-,-,-,-,4,4,-,-,-,-,-,-,-
-%\end{filecontents*}
-%
-%\begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=123469,Style=\ttfamily]{perroquet.csv}
-%\end{tikzpicture}
-%
-%\begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=123469,Couleurs={Red,Brown,Yellow,Black,Blue,White},Correction]{perroquet.csv}
-%\end{tikzpicture}
-%\end{codetex}
-%
-%\subsection{Exemples complémentaires}
-%
-%\begin{codeinfo}
-%Les symboles affichés dans les cases sont situés aux nœuds de coordonnées $(c\,;\,-l)$ où $l$ et $c$ sont les numéros de ligne et de colonne correspondants à la position de la donnée dans le fichier \textsf{csv}.
-%\end{codeinfo}
-%
-%\begin{codesortie}
-%\begin{filecontents*}[overwrite]{perroquet.csv}
-%-,-,-,-,-,-,4,4,4,4,-,-,-,-,-,-
-%-,-,-,-,4,4,1,1,1,1,4,4,-,-,-,-
-%-,-,-,4,1,1,1,1,1,1,1,1,4,-,-,-
-%-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
-%-,-,4,1,1,1,1,1,1,1,1,1,1,4,-,-
-%-,4,1,9,9,1,1,1,1,1,1,9,9,1,4,-
-%-,4,9,9,9,9,4,4,4,4,9,9,9,9,4,-
-%-,4,9,4,9,9,4,4,4,4,9,4,9,9,4,-
-%-,4,1,9,9,9,4,4,4,4,9,9,9,1,4,-
-%-,-,4,1,1,9,4,4,4,4,9,1,1,4,-,-
-%-,-,4,1,1,1,4,4,4,4,1,1,1,4,-,-
-%-,-,-,4,1,1,1,4,4,1,1,1,4,-,-,-
-%-,-,4,3,1,1,1,1,1,1,1,1,3,4,-,-
-%-,4,6,3,1,1,1,1,1,1,1,1,3,6,4,-
-%-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
-%-,4,6,6,1,1,1,1,1,1,1,1,6,6,4,-
-%-,4,6,4,1,1,1,4,4,1,1,1,4,6,4,-
-%2,2,4,2,4,4,4,2,2,4,4,4,2,4,2,2
-%2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
-%2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
-%-,-,-,-,-,4,1,1,1,1,4,-,-,-,-,-
-%-,-,-,-,-,-,4,1,1,4,-,-,-,-,-,-
-%-,-,-,-,-,-,-,4,4,-,-,-,-,-,-,-
-%\end{filecontents*}
-%
-%\begin{center}
-% \begin{tblr}{colspec={*{6}{Q[1.25cm,c,m]}},hlines,vlines,rows={1.15em}}
-% \SetCell[c=6]{c} Notice & & & & & \\
-% 1 & 2 & 3 & 5 & 6 & 9 \\
-% Rouge & Marron & Jaune & Noir & Bleu & Blanc \\
-% \end{tblr}
-%% \renewcommand\arraystretch{1.25}
-%% \begin{tabular}{|c|c|c|c|c|c|}
-%% \hline
-%% \multicolumn{6}{|c|}{Notice} \\ \hline
-%% 1 & 2 & 3 & 5 & 6 & 9 \\ \hline
-%% Rouge & Marron & Jaune & Noir & Bleu & Blanc \\ \hline
-%% \end{tabular}
-%\end{center}
-%
-%\begin{center}
-% \begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=123469,Style=\ttfamily]{perroquet.csv}
-% \end{tikzpicture}
-% \begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=123469,Couleurs={Red,Brown,Yellow,Black,Blue,White},Correction]{perroquet.csv}
-% \end{tikzpicture}
-%\end{center}
-%
-%\begin{center}
-% \begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \draw[very thin,gray,xstep=1,ystep=1] (0,0) grid (17,-24) ;
-% \foreach \x in {0,1,...,17} \draw[very thin,gray] (\x,-3pt)--(\x,3pt) node[above,font=\scriptsize\sffamily] {\x} ;
-% \foreach \y in {0,-1,...,-24} \draw[very thin,gray] (3pt,\y)--(-3pt,\y) node[left,font=\scriptsize\sffamily] {\y} ;
-% \PixelArtTikz[Codes=123469,Couleurs={Red,Brown,Yellow,Black,Blue,White},Correction]{perroquet.csv}
-% \filldraw[Blue] (14,-1) circle[radius=1] ;
-% \filldraw[Yellow] (14,-1) circle[radius=0.8] ;
-% \draw[ForestGreen,very thick,<-,>=latex] (15,-1) to[bend left=30] (18,-2) node[right,font=\scriptsize\sffamily] {rajouté en \TikZ} ;
-% \end{tikzpicture}
-%\end{center}
-%\end{codesortie}
-%
-%\begin{codetex}[listing only]
-%%code tikz et pixelart
-%\filldraw[Blue] (14,-1) circle[radius=1] ;
-%\filldraw[Yellow] (14,-1) circle[radius=0.8] ;
-%\draw[ForestGreen,very thick,<-,>=latex] (15,-1) to[bend left=30] (18,-2)
-% node[right,font=\scriptsize\sffamily] {rajouté en \TikZ} ;
-%\end{codetex}
-%
-%\pagebreak
-%
-%\begin{codetex}[listing only]
-%%codes avec ambiguïté
-%
-%\begin{filecontents*}[overwrite]{cap.csv}
-%-,-,-,-,-,-,-,-,D,-,D,-,D,-,-,-,-,-,-,-,-,-
-%-,D,D,-,-,-,-,D,D,D,D,D,D,-,-,D,D,D,D,-,-,-
-%D,-,-,D,-,D,D,F,F,F,F,F,F,D,D,-,-,-,-,D,-,-
-%-,D,-,-,D,F,F,F,-,-,F,F,F,F,F,D,-,D,D,-,-,-
-%-,-,D,D,F,F,F,-,F,F,-,F,F,F,F,F,D,D,-,-,-,-
-%-,-,-,D,F,F,F,F,F,F,F,F,F,F,F,F,D,-,-,-,-,-
-%-,-,-,D,F,J,J,J,J,J,J,J,F,F,F,F,D,-,-,-,-,-
-%-,-,-,D,J,-,-,-,J,-,-,-,J,J,F,F,D,-,-,-,-,-
-%-,-,-,D,J,-,D,-,J,-,D,-,J,J,B,B,D,-,-,-,-,-
-%-,-,-,D,J,-,-,-,J,-,-,-,J,J,B,B,D,-,-,-,-,-
-%-,-,-,D,C,J,J,J,J,J,J,J,J,C,C,C,D,-,-,-,-,-
-%-,-,-,D,C,C,C,C,C,C,C,C,C,C,C,D,D,D,-,-,-,-
-%-,-,-,D,C,C,C,D,D,D,D,D,D,C,D,A,A,A,D,-,-,-
-%-,-,-,D,F,C,C,C,C,C,C,C,C,D,A,-,-,-,A,D,-,-
-%-,-,-,D,F,C,F,C,C,C,C,F,D,A,-,A,A,A,-,A,D,-
-%-,-,D,C,F,F,F,F,C,C,F,D,A,-,A,F,F,F,A,-,A,D
-%-,-,D,C,F,F,F,F,F,F,F,D,A,-,A,F,-,F,A,-,A,D
-%-,-,D,A,D,-,A,-,A,-,A,D,A,-,A,F,F,F,A,-,A,D
-%-,-,-,D,D,-,A,-,A,-,A,-,D,A,-,A,A,A,-,A,D,-
-%-,-,-,-,-,D,D,F,D,D,D,D,F,D,A,-,-,-,A,D,-,-
-%-,-,-,-,-,-,D,A,D,-,-,D,-,-,D,A,A,A,D,-,-,-
-%-,-,-,-,-,-,D,D,D,-,-,D,D,D,D,D,D,D,-,-,-,-
-%\end{filecontents*}
-%
-%\begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=ABCDFJ,Symboles={1,2,3,4,6,10},Symb,Style=\tiny\sffamily]{cap.csv}
-%\end{tikzpicture}
-%
-%\begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=ABCDFJ,Couleurs={Red,Brown,Yellow,Black,Blue,Gray},Correction]{cap.csv}
-%\end{tikzpicture}
-%\end{codetex}
-%
-%\begin{codesortie}
-%\begin{filecontents*}[overwrite]{cap.csv}
-%-,-,-,-,-,-,-,-,D,-,D,-,D,-,-,-,-,-,-,-,-,-
-%-,D,D,-,-,-,-,D,D,D,D,D,D,-,-,D,D,D,D,-,-,-
-%D,-,-,D,-,D,D,F,F,F,F,F,F,D,D,-,-,-,-,D,-,-
-%-,D,-,-,D,F,F,F,-,-,F,F,F,F,F,D,-,D,D,-,-,-
-%-,-,D,D,F,F,F,-,F,F,-,F,F,F,F,F,D,D,-,-,-,-
-%-,-,-,D,F,F,F,F,F,F,F,F,F,F,F,F,D,-,-,-,-,-
-%-,-,-,D,F,J,J,J,J,J,J,J,F,F,F,F,D,-,-,-,-,-
-%-,-,-,D,J,-,-,-,J,-,-,-,J,J,F,F,D,-,-,-,-,-
-%-,-,-,D,J,-,D,-,J,-,D,-,J,J,B,B,D,-,-,-,-,-
-%-,-,-,D,J,-,-,-,J,-,-,-,J,J,B,B,D,-,-,-,-,-
-%-,-,-,D,C,J,J,J,J,J,J,J,J,C,C,C,D,-,-,-,-,-
-%-,-,-,D,C,C,C,C,C,C,C,C,C,C,C,D,D,D,-,-,-,-
-%-,-,-,D,C,C,C,D,D,D,D,D,D,C,D,A,A,A,D,-,-,-
-%-,-,-,D,F,C,C,C,C,C,C,C,C,D,A,-,-,-,A,D,-,-
-%-,-,-,D,F,C,F,C,C,C,C,F,D,A,-,A,A,A,-,A,D,-
-%-,-,D,C,F,F,F,F,C,C,F,D,A,-,A,F,F,F,A,-,A,D
-%-,-,D,C,F,F,F,F,F,F,F,D,A,-,A,F,-,F,A,-,A,D
-%-,-,D,A,D,-,A,-,A,-,A,D,A,-,A,F,F,F,A,-,A,D
-%-,-,-,D,D,-,A,-,A,-,A,-,D,A,-,A,A,A,-,A,D,-
-%-,-,-,-,-,D,D,F,D,D,D,D,F,D,A,-,-,-,A,D,-,-
-%-,-,-,-,-,-,D,A,D,-,-,D,-,-,D,A,A,A,D,-,-,-
-%-,-,-,-,-,-,D,D,D,-,-,D,D,D,D,D,D,D,-,-,-,-
-%\end{filecontents*}
-%
-%\begin{center}
-% \begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=ABCDFJ,Symboles={1,2,3,4,6,10},Symb,Style=\tiny\sffamily]{cap.csv}
-% \end{tikzpicture}
-% ~~
-% \begin{tikzpicture}[x=0.35cm,y=0.35cm]
-% \PixelArtTikz[Codes=ABCDFJ,Couleurs={Red,Brown,Yellow,Black,Blue,Gray},Correction]{cap.csv}
-% \end{tikzpicture}
-%\end{center}
-%\end{codesortie}
-%
-%\newpage
+\subsection{Idée}
+
+\begin{tipblock}
+\cmaj{2.6.0} L'idée est de proposer pour déterminer les lignes trigonométriques (cos, sin et tan) d'angles classiques, formés des \og $\pi$ \fg{} et \og $\pi$ sur 2 ; 3 ; 4 ; 5 ; 6 ; 8 ; 10 ; 12 \fg{}.
+
+\smallskip
+
+La commande détermine -- et affiche si demandée la réduction -- et la valeur exacte de la ligne trigonométrique demandée.
+\end{tipblock}
+
+\begin{PresentationCodePL}{listing only}
+\LigneTrigo(*)[booléens]{cos/sin/tan}(angle)
+\end{PresentationCodePL}
+
+\subsection{Commande}
+
+\begin{cautionblock}
+Pour cette commande :
+
+\begin{itemize}
+ \item la version \textit{étoilée} n'affiche pas l'angle initial ;
+ \item le booléen \Cle{d} permet de forcer l'affichage en \ctex{displaystyle} ; \hfill{}défaut \Cle{false}
+ \item le booléen \Cle{Etapes} permet d'afficher la réduction avant le résultat ; \hfill{}défaut \Cle{false}
+ \item le premier argument \textit{obligatoire}, entre \ctex{\{...\}} est le type de calcul demandé, parmi \Cle{cos / sin / tan} ;
+ \item le second argument \textit{obligatoire}, entre \ctex{(...)} est l'angle, donné en ligne, avec \ctex{pi}.
+\end{itemize}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo{cos}(56pi/3)$ et $\LigneTrigo{sin}(56pi/3)$ et $\LigneTrigo{tan}(56pi/3)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo[d,Etapes]{cos}(56pi/3)$ et $\LigneTrigo[d,Etapes]{sin}(56pi/3)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo*[d,Etapes]{cos}(2pi/3)$ et $\LigneTrigo*[d,Etapes]{sin}(2pi/3)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo[d,Etapes]{cos}(146pi)$ et $\LigneTrigo[d,Etapes]{sin}(146pi)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo[d,Etapes]{cos}(-551pi/12)$ et $\LigneTrigo[d,Etapes]{sin}(-551pi/12)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo[d,Etapes]{cos}(447pi/8)$ et $\LigneTrigo[d,Etapes]{sin}(447pi/8)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo*[d,Etapes]{cos}(-pi/8)$ et $\LigneTrigo*[d,Etapes]{sin}(-pi/8)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo[d,Etapes]{cos}(-595pi/12)$ et $\LigneTrigo[d,Etapes]{sin}(-595pi/12)$ et $\LigneTrigo[d,Etapes]{tan}(-595pi/12)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo[d,Etapes]{cos}(33pi/10)$ et $\LigneTrigo[d,Etapes]{sin}(33pi/10)$\\
+$\LigneTrigo[d,Etapes]{tan}(33pi/10)$
+\end{PresentationCodePL}
+
+\begin{PresentationCodePL}{}
+$\LigneTrigo[d,Etapes]{cos}(-14pi/5)$ et $\LigneTrigo[d,Etapes]{sin}(-14pi/5)$\\
+$\LigneTrigo[d,Etapes]{tan}(-14pi/5)$
+\end{PresentationCodePL}
+
+\subsection{Valeurs disponibles}
+
+\begin{noteblock}
+Les valeurs disponibles sont :
+
+\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{9}{Q[1.195cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
+ angle & $0$ & $\nicefrac{\pi}{6}$ & $\nicefrac{\pi}{4}$ & $\nicefrac{\pi}{3}$ & $\nicefrac{\pi}{2}$ & $\nicefrac{2\pi}{3}$ & $\nicefrac{3\pi}{4}$ & $\nicefrac{5\pi}{6}$ & $\pi$ \\
+ cos & $\LigneTrigo{cos}(0)$ & $\LigneTrigo{cos}(pi/6)$ & $\LigneTrigo{cos}(pi/4)$ & $\LigneTrigo{cos}(pi/3)$ & $\LigneTrigo{cos}(pi/2)$ & $\LigneTrigo{cos}(2pi/3)$ & $\LigneTrigo{cos}(3pi/4)$ & $\LigneTrigo{cos}(5pi/6)$ & $\LigneTrigo{cos}(pi)$ \\
+ sin & $\LigneTrigo{sin}(0)$ & $\LigneTrigo{sin}(pi/6)$ & $\LigneTrigo{sin}(pi/4)$ & $\LigneTrigo{sin}(pi/3)$ & $\LigneTrigo{sin}(pi/2)$ & $\LigneTrigo{sin}(2pi/3)$ & $\LigneTrigo{sin}(3pi/4)$ & $\LigneTrigo{sin}(5pi/6)$ & $\LigneTrigo{sin}(pi)$ \\
+ tan & $\LigneTrigo{tan}(0)$ & $\LigneTrigo{tan}(pi/6)$ & $\LigneTrigo{tan}(pi/4)$ & $\LigneTrigo{tan}(pi/3)$ & $\LigneTrigo{tan}(pi/2)$ & $\LigneTrigo{tan}(2pi/3)$ & $\LigneTrigo{tan}(3pi/4)$ & $\LigneTrigo{tan}(5pi/6)$ & $\LigneTrigo{tan}(pi)$ \\
+\end{tblr}
+
+\medskip
+
+\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{9}{Q[1.195cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
+ angle & & $\nicefrac{-\pi}{6}$ & $\nicefrac{-\pi}{4}$ & $\nicefrac{-\pi}{3}$ & $\nicefrac{-\pi}{2}$ & $\nicefrac{-2\pi}{3}$ & $\nicefrac{-3\pi}{4}$ & $\nicefrac{-5\pi}{6}$ & \\
+ cos & & $\LigneTrigo{cos}(-pi/6)$ & $\LigneTrigo{cos}(-pi/4)$ & $\LigneTrigo{cos}(-pi/3)$ & $\LigneTrigo{cos}(-pi/2)$ & $\LigneTrigo{cos}(-2pi/3)$ & $\LigneTrigo{cos}(-3pi/4)$ & $\LigneTrigo{cos}(-5pi/6)$ & \\
+ sin & & $\LigneTrigo{sin}(-pi/6)$ & $\LigneTrigo{sin}(-pi/4)$ & $\LigneTrigo{sin}(-pi/3)$ & $\LigneTrigo{sin}(-pi/2)$ & $\LigneTrigo{sin}(-2pi/3)$ & $\LigneTrigo{sin}(-3pi/4)$ & $\LigneTrigo{sin}(-5pi/6)$ & \\
+ tan & & $\LigneTrigo{tan}(-pi/6)$ & $\LigneTrigo{tan}(-pi/4)$ & $\LigneTrigo{tan}(-pi/3)$ & $\LigneTrigo{tan}(-pi/2)$ & $\LigneTrigo{tan}(-2pi/3)$ & $\LigneTrigo{tan}(-3pi/4)$ & $\LigneTrigo{tan}(-5pi/6)$ & \\
+\end{tblr}
+
+\medskip
+
+\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
+ angle & $\nicefrac{\pi}{8}$ & $\nicefrac{3\pi}{8}$ & $\nicefrac{5\pi}{8}$ & $\nicefrac{7\pi}{8}$ & $\nicefrac{\pi}{12}$ & $\nicefrac{5\pi}{12}$ & $\nicefrac{7\pi}{12}$ & $\nicefrac{11\pi}{12}$ \\
+ cos & $\LigneTrigo{cos}(pi/8)$ & $\LigneTrigo{cos}(3pi/8)$ & $\LigneTrigo{cos}(5pi/8)$ & $\LigneTrigo{cos}(7pi/8)$ & $\LigneTrigo{cos}(pi/12)$ & $\LigneTrigo{cos}(5pi/12)$ & $\LigneTrigo{cos}(7pi/12)$ & $\LigneTrigo{cos}(11pi/12)$ \\
+ sin & $\LigneTrigo{sin}(pi/8)$ & $\LigneTrigo{sin}(3pi/8)$ & $\LigneTrigo{sin}(5pi/8)$ & $\LigneTrigo{sin}(7pi/8)$ & $\LigneTrigo{sin}(pi/12)$ & $\LigneTrigo{sin}(5pi/12)$ & $\LigneTrigo{sin}(7pi/12)$ & $\LigneTrigo{sin}(11pi/12)$ \\
+ tan & $\LigneTrigo{tan}(pi/8)$ & $\LigneTrigo{tan}(3pi/8)$ & $\LigneTrigo{tan}(5pi/8)$ & $\LigneTrigo{tan}(7pi/8)$ & $\LigneTrigo{tan}(pi/12)$ & $\LigneTrigo{tan}(5pi/12)$ & $\LigneTrigo{tan}(7pi/12)$ & $\LigneTrigo{tan}(11pi/12)$ \\
+\end{tblr}
+
+\medskip
+
+\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
+ angle & $\nicefrac{-\pi}{8}$ & $\nicefrac{-3\pi}{8}$ & $\nicefrac{-5\pi}{8}$ & $\nicefrac{-7\pi}{8}$ & $\nicefrac{-\pi}{12}$ & $\nicefrac{-5\pi}{12}$ & $\nicefrac{-7\pi}{12}$ & $\nicefrac{-11\pi}{12}$ \\
+ cos & $\LigneTrigo{cos}(-pi/8)$ & $\LigneTrigo{cos}(-3pi/8)$ & $\LigneTrigo{cos}(-5pi/8)$ & $\LigneTrigo{cos}(-7pi/8)$ & $\LigneTrigo{cos}(-pi/12)$ & $\LigneTrigo{cos}(-5pi/12)$ & $\LigneTrigo{cos}(-7pi/12)$ & $\LigneTrigo{cos}(-11pi/12)$ \\
+ sin & $\LigneTrigo{sin}(-pi/8)$ & $\LigneTrigo{sin}(-3pi/8)$ & $\LigneTrigo{sin}(-5pi/8)$ & $\LigneTrigo{sin}(-7pi/8)$ & $\LigneTrigo{sin}(-pi/12)$ & $\LigneTrigo{sin}(-5pi/12)$ & $\LigneTrigo{sin}(-7pi/12)$ & $\LigneTrigo{sin}(-11pi/12)$ \\
+ tan & $\LigneTrigo{tan}(-pi/8)$ & $\LigneTrigo{tan}(-3pi/8)$ & $\LigneTrigo{tan}(-5pi/8)$ & $\LigneTrigo{tan}(-7pi/8)$ & $\LigneTrigo{tan}(-pi/12)$ & $\LigneTrigo{tan}(-5pi/12)$ & $\LigneTrigo{tan}(-7pi/12)$ & $\LigneTrigo{tan}(-11pi/12)$ \\
+\end{tblr}
+
+\medskip
+
+\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
+ angle & $\nicefrac{-4\pi}{5}$ & $\nicefrac{-3\pi}{5}$ & $\nicefrac{-2\pi}{5}$ & $\nicefrac{-\pi}{5}$ & $\nicefrac{\pi}{5}$ & $\nicefrac{2\pi}{5}$ & $\nicefrac{3\pi}{5}$ & $\nicefrac{4\pi}{5}$ \\
+ cos & $\LigneTrigo{cos}(-4pi/5)$ & $\LigneTrigo{cos}(-3pi/5)$ & $\LigneTrigo{cos}(-2pi/5)$ & $\LigneTrigo{cos}(-pi/5)$ & $\LigneTrigo{cos}(pi/5)$ & $\LigneTrigo{cos}(2pi/5)$ & $\LigneTrigo{cos}(3pi/5)$ & $\LigneTrigo{cos}(4pi/5)$ \\
+ sin & $\LigneTrigo{sin}(-4pi/5)$ & $\LigneTrigo{sin}(-3pi/5)$ & $\LigneTrigo{sin}(-2pi/5)$ & $\LigneTrigo{sin}(-pi/5)$ & $\LigneTrigo{sin}(pi/5)$ & $\LigneTrigo{sin}(2pi/5)$ & $\LigneTrigo{sin}(3pi/5)$ & $\LigneTrigo{sin}(4pi/5)$ \\
+ tan & $\LigneTrigo{tan}(-4pi/5)$ & $\LigneTrigo{tan}(-3pi/5)$ & $\LigneTrigo{tan}(-2pi/5)$ & $\LigneTrigo{tan}(-pi/5)$ & $\LigneTrigo{tan}(pi/5)$ & $\LigneTrigo{tan}(2pi/5)$ & $\LigneTrigo{tan}(3pi/5)$ & $\LigneTrigo{tan}(4pi/5)$ \\
+\end{tblr}
+
+\medskip
+
+\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
+ angle & $\nicefrac{-9\pi}{10}$ & $\nicefrac{-7\pi}{10}$ & $\nicefrac{-3\pi}{10}$ & $\nicefrac{-\pi}{10}$ & $\nicefrac{\pi}{10}$ & $\nicefrac{3\pi}{10}$ & $\nicefrac{7\pi}{10}$ & $\nicefrac{9\pi}{10}$ \\
+ cos & $\LigneTrigo{cos}(-9pi/10)$ & $\LigneTrigo{cos}(-7pi/10)$ & $\LigneTrigo{cos}(-3pi/10)$ & $\LigneTrigo{cos}(-pi/10)$ & $\LigneTrigo{cos}(pi/10)$ & $\LigneTrigo{cos}(3pi/10)$ & $\LigneTrigo{cos}(7pi/10)$ & $\LigneTrigo{cos}(9pi/10)$ \\
+ sin & $\LigneTrigo{sin}(-9pi/10)$ & $\LigneTrigo{sin}(-7pi/10)$ & $\LigneTrigo{sin}(-3pi/10)$ & $\LigneTrigo{sin}(-pi/10)$ & $\LigneTrigo{sin}(pi/10)$ & $\LigneTrigo{sin}(3pi/10)$ & $\LigneTrigo{sin}(7pi/10)$ & $\LigneTrigo{sin}(9pi/10)$ \\
+ tan & $\LigneTrigo{tan}(-9pi/10)$ & $\LigneTrigo{tan}(-7pi/10)$ & $\LigneTrigo{tan}(-3pi/10)$ & $\LigneTrigo{tan}(-pi/10)$ & $\LigneTrigo{tan}(pi/10)$ & $\LigneTrigo{tan}(3pi/10)$ & $\LigneTrigo{tan}(7pi/10)$ & $\LigneTrigo{tan}(9pi/10)$ \\
+\end{tblr}
+\end{noteblock}
+
+\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
+
+\part{Jeux et récréations}
\section{SudoMaths, en \TikZ}\label{sudomaths}
\subsection{Introduction}
-\begin{codeidee}
+\begin{tipblock}
L'idée est de \textit{proposer} un environnement \TikZ, une commande permettant de tracer des grilles de SudoMaths.
L'environnement créé, lié à \TikZ, trace la grille de SudoMaths (avec les blocs démarqués), et peut la remplir avec une liste d'éléments.
-\end{codeidee}
+\end{tipblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%grille classique non remplie, avec légendes H/V, {} nécessaires pour préciser que les cases seront "vides"
\SudoMaths{}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{}
\SudoMaths{}
-\end{codesortie}
+\end{PresentationCodePL}
-\begin{codeinfo}
+\begin{noteblock}
La commande \ctex{SudoMaths} crée donc la grille (remplie ou non), dans un environnement \TikZ, c'est \textit{c'est tout} !
\smallskip
On peut également utiliser l'\textit{environnement} \ctex{EnvSudoMaths} dans lequel on peut rajouter du code \TikZ{} !
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%grille "toute seule"
\SudoMaths[clés]{liste}
@@ -6044,13 +6062,13 @@ On peut également utiliser l'\textit{environnement} \ctex{EnvSudoMaths} dans le
\begin{EnvSudoMaths}[clés]{grille}
%commandes tikz
\end{EnvSudoMaths}
-\end{codetex}
+\end{PresentationCodePL}
\pagebreak
\subsection{Clés et options}
-\begin{codecles}
+\begin{cautionblock}
Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
@@ -6070,21 +6088,22 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\item la clé \Cle{ListeLegH} qui est la liste de la légende horizontale ; \hfill~défaut \Cle{abcd...wxyz}
\item la clé \Cle{DecalLegende} qui est le décalage de la légende par rapport à la grille. \hfill~défaut \Cle{0.45}
\end{itemize}
-\end{codecles}
+\vspace*{-\baselineskip}\leavevmode
+\end{cautionblock}
-\begin{codeinfo}
+\begin{noteblock}
La liste éventuelle des éléments à rentrer dans le tableau est traitée par le package \ctex{listofitems}, et se présente sous la forme suivante : \ctex{ / / / ... / / § / / / ... / / § ... § / / / ... / / }
\smallskip
Il peut donc être intéressant de \textit{déclarer} la liste au préalable pour simplifier la saisie de la commande !
-\end{codeinfo}
+\end{noteblock}
-\begin{codeinfo}
+\begin{noteblock}
La \Cle{CouleurCase} est gérée -- en interne -- par le caractère \ctex{*} qui permet de préciser qu'on veut que la case soit coloriée.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%grille 6x6 avec blocs 2x3, avec coloration de cases (présentée sous forme de "cases")
\def\grilleSuMa{%
(a)* / (b)* / / / (c)* / (d)* §%
@@ -6096,10 +6115,11 @@ La \Cle{CouleurCase} est gérée -- en interne -- par le caractère \ctex{*} qui
}
\SudoMaths[Unite=0.75cm,NbCol=6,NbSubCol=2,NbLig=6,NbSubLig=3,%
- Police=\small\bfseries\ttfamily,CouleurTexte=red,CouleurCase=yellow!50,Legendes=false]{\grilleSuMa}
-\end{codetex}
+ Police=\small\bfseries\ttfamily,CouleurTexte=red,CouleurCase=yellow!50,%
+ Legendes=false]{\grilleSuMa}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\grilleSuMa{%
(a)* / (b)* / / / (c)* / (d)* §%
(e)* / / / (f)* / (g)* / (h)* §%
@@ -6109,16 +6129,17 @@ La \Cle{CouleurCase} est gérée -- en interne -- par le caractère \ctex{*} qui
/ / / (q)* / / §%
}
-\SudoMaths[Unite=0.75cm,NbCol=6,NbSubCol=2,NbLig=6,NbSubLig=3,Police=\small\bfseries\ttfamily,CouleurTexte=red,CouleurCase=yellow!50,Legendes=false]{\grilleSuMa}
-\end{codesortie}
+\SudoMaths[Unite=0.75cm,NbCol=6,NbSubCol=2,NbLig=6,NbSubLig=3,Police=\small\bfseries\ttfamily,CouleurTexte=red,CouleurCase=yellow!50,%
+Legendes=false]{\grilleSuMa}
+\end{PresentationCodePL}
\pagebreak
-\begin{codeinfo}
+\begin{noteblock}
La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0\,;\,0)$ et $(\text{nbcol}\,;\,-\text{nblig})$, de sorte que les labels des cases sont situés au nœuds de coordonnées $(x,5\,;\,-y,5)$.
-\end{codeinfo}
+\end{noteblock}
-\begin{codetex}[listing only]
+\begin{PresentationCodePL}{listing only}
%grille classique avec coloration de cases et commande tikz
%graduations rajoutées pour la lecture des coordonnées
\def\grilleSuMaB{%
@@ -6138,9 +6159,9 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
ListeLegV=QSDFGHJKL,ListeLegH=poiuytrez]{\grilleSuMaB}
\draw[red,very thick,<-,>=latex] (7.5,-4.5) to[bend right] ++ (4,-1) node[right] {code rajouté...} ;
\end{EnvSudoMaths}
-\end{codetex}
+\end{PresentationCodePL}
-\begin{codesortie}
+\begin{PresentationCodePL}{text only}
\def\grilleSuMaB{%
*/////4///§%
/*///3////§%
@@ -6161,13 +6182,29 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
\foreach \y in {-1,-2,...,-9} \draw[lightgray] (9,\y) node[right,font=\scriptsize\ttfamily] {\y} ;
\draw[lightgray] (9,0) node[right,font=\scriptsize\ttfamily] {~0} ;
\end{EnvSudoMaths}
-\end{codesortie}
+\end{PresentationCodePL}
+
+\newpage
+
+\phantom{t}\par\vfill\par
+\begin{PART}
+ \begin{center}
+ \Huge\MakeUppercase{Historique}
+ \end{center}
+\end{PART}
+\par\vfill\par\phantom{t}
\newpage
\part{Historique}
-{\small \bverb|v 2.5.8|~:~~~~Ajout d'un style \textsf{Alt} pour les codes (pages \pageref{pythonsimple} et \pageref{pytminted})
+{\small \bverb|v 2.6.0|~:~~~~Ajout d'une clé [Brut] pour les mesures principales + correction d'un bug} + Refonte de la doc
+
+{\small \bverb| |~:~~~~Commande calcul ligne trigo (pages \pageref{mesureprincipale} et \pageref{lignestrigo})
+
+{\small \bverb|v 2.5.9|~:~~~~Ajout clé [CouleurNombres] pour \textsf{Piton} (v1.5 mini) (page \pageref{pythonpiton})
+
+{\small \bverb|v 2.5.8|~:~~~~Ajout d'un style \textsf{Alt} pour les codes (pages \pageref{pythonsimple} et \pageref{pytminted})
{\small \bverb| |~:~~~~Modification de la syntaxe des commandes avec \textsf{Pythontex} et \textsf{PseudoCode} (pages \pageref{pythontex} et \pageref{pseudocode})
@@ -6279,7 +6316,7 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
{\small \bverb|v 1.1.7|~:~~~~Conversions bin/hex/dec (basées sur \textsf{xintbinhex}) avec quelques détails (page \pageref{conversions})
-{\small \bverb|v 1.1.6|~:~~~~Ajout d'une commande pour déterminer les paramètres d'une régression linéaire par moindres carrés (page \pageref{reglin})
+{\small \bverb|v 1.1.6|~:~~~~Commande pour déterminer les paramètres d'une régression linéaire par moindres carrés (page \pageref{reglin})
{\small \bverb|v 1.1.5|~:~~~~Ajout de deux commandes pour, en \TikZ, créer des petits schémas \og de signe \fg{} (page \pageref{aidesigne})
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
index 757afb51d9..3d0d3e043b 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
index 63ea75ebb5..dc7c4cbf98 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex
@@ -2,7 +2,7 @@
% !TeX TXS-program:compile = txs:///lualatex/[--shell-escape]
\documentclass[french,a4paper,10pt]{article}
-\def\PLver{2.5.8}
+\def\PLver{2.6.0}
\usepackage[margin=1.5cm]{geometry}
\usepackage{ProfLycee}
\useproflyclib{piton}
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf
index b658a1adfd..b8ba967585 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index f553031e8c..11c7d596db 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,11 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2023/04/06 2.5.8 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2023/04/13 2.6.0 Aide pour l'utilisation de LaTeX en lycee]
+% 2.6.0 Ajout d'une clé [Brut] pour les mesures principales + commande calcul ligne trigo
+% Refonte des fichiers inclus + correction de bugs mineurs
+% Split des thèmes en fichiers 'input'
+% 2.5.9 Ajout clé [CouleurNombres] pour CodePiton
% 2.5.8 Ajout du style Classique pour PythonLst (externalisation listings) + Modification marges CodePiton (1.5)
% Refonte des commandes pour les codes pour éviter des soucis avec les étoilées
% 2.5.7 Ajout d'un style classique pour le code python (Piton) + console piton/pyluatex
@@ -118,3157 +122,25 @@
%%------Codes listings
\input{proflycee-tools-listings.tex}
-
-%%------SPLINES
-%commande utile pour extraire des infos d'une liste
-\newcommand\extractcoeff[2]{%1=liste,2=numero
- \setsepchar{§}%
- \readlist*\lcoeffs{#1}
- \ifnum \lcoeffslen=1
- \def\COEFFA{#1}
- \def\COEFFB{#1}
- \else
- \itemtomacro\lcoeffs[#2]\COEFF
- \IfSubStr{\COEFF}{/}%
- {\StrCut{\COEFF}{/}{\COEFFA}{\COEFFB}}%
- {\def\COEFFA{\COEFF}\def\COEFFB{\COEFF}}
- \fi
-}
-
-%splines en tikz avec ..controls
-\defKV[spline]{%
- Epaisseur=\def\SPLepaisseur{#1},%
- Couleur=\def\SPLcouleur{#1},%
- Coeffs=\def\SPLcoeffs{#1},%
- CouleurPoints=\def\SPLcouleurpoints{#1},%
- TaillePoints=\def\SPLtaillepoints{#1},%
- Style=\def\SPLstyle{#1}
-}
-
-\setKVdefault[spline]{%
- Epaisseur=1.25pt,%
- Couleur=red,%
- Coeffs=3,%
- CouleurPoints=black,%
- TaillePoints=2pt,%
- AffPoints=false,%
- Style={}
-}
-
-\newcommand\SplineTikz[2][]{%
- \useKVdefault[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[.]{§./}%
- \readlist*\SPLlistepoints{#2}%
- \def\SPLnbsplines{\inteval{\SPLlistepointslen-1}}%
- %si uniquement deux points, pas de boucle...
- \ifnum \SPLlistepointslen=2
- %extraction des coeffs de compensation
- \extractcoeff{\SPLcoeffs}{1}%
- %extraction des coordonnées
- \itemtomacro\SPLlistepoints[1,1]\xa
- \itemtomacro\SPLlistepoints[1,2]\ya
- \itemtomacro\SPLlistepoints[1,3]\fprimea
- \itemtomacro\SPLlistepoints[2,1]\xb
- \itemtomacro\SPLlistepoints[2,2]\yb
- \itemtomacro\SPLlistepoints[2,3]\fprimeb
- \draw[line width=\SPLepaisseur,\SPLcouleur,\SPLstyle] (\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFA}).. (\xb,\yb) ;%
- %sinon on construit bout par bout !
- \else
- \foreach \i in {1,2,...,\SPLnbsplines}{
- %extraction des coeffs de compensation
- \extractcoeff{\SPLcoeffs}{\i}
- \def\j{\inteval{\i+1}}
- \itemtomacro\SPLlistepoints[\i,1]\xa
- \itemtomacro\SPLlistepoints[\i,2]\ya
- \itemtomacro\SPLlistepoints[\i,3]\fprimea
- \itemtomacro\SPLlistepoints[\j,1]\xb
- \itemtomacro\SPLlistepoints[\j,2]\yb
- \itemtomacro\SPLlistepoints[\j,3]\fprimeb
- \draw[line width=\SPLepaisseur,\SPLcouleur,\SPLstyle] (\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFB}).. (\xb,\yb) ;%
- }
- \fi
- \ifboolKV[spline]{AffPoints}%on affiche les points de contrôle
- {%
- \foreach \i in {1,2,...,\SPLlistepointslen}{%
- \itemtomacro\SPLlistepoints[\i,1]\xa
- \itemtomacro\SPLlistepoints[\i,2]\ya
- \filldraw[\SPLcouleurpoints] (\xa,\ya) circle[radius=\SPLtaillepoints] ;%
- }
- }
- {}
-}
-
-%tangente(s) en TikZ, avec point/dérivée ou liste points/dérivées
-\defKV[tgte]{%
- Epaisseur=\def\TGTepaisseur{#1},%
- Couleur=\def\TGTcouleur{#1},%
- xl=\def\TGTXL{#1},%
- xr=\def\TGTXR{#1},%
- Style=\def\TGTstyle{#1},%
- Point=\def\TGTnumpt{#1}
-}
-
-\setKVdefault[tgte]{
- Epaisseur=1.25pt,%
- Couleur=red,%
- xl=0.5,xr=0.5,%
- Style={},%
- Point=1
-}
-
-\newcommand\TangenteTikz[2][]{%
- \useKVdefault[tgte]%
- \setKV[tgte]{#1}% on paramètres les nouvelles clés et on les simplifie
- \setsepchar[.]{§./}%
- \readlist*\TGTlistepoints{#2}%
- \itemtomacro\TGTlistepoints[\TGTnumpt,1]\xa
- \itemtomacro\TGTlistepoints[\TGTnumpt,2]\ya
- \itemtomacro\TGTlistepoints[\TGTnumpt,3]\fprimea
- \def\TGTDEB{\fpeval{\xa-\TGTXL}}\def\TGTFIN{\fpeval{\xa+\TGTXR}}%
- \draw[line width=\TGTepaisseur,\TGTcouleur,domain=\TGTDEB:\TGTFIN,\TGTstyle] plot (\x,{\fprimea*(\x-\xa)+\ya}) ;%
-}
-
-%%------FENÊTRE CALCUL FORMEL
-\newcommand\CFchap{\textasciicircum}
-\newcounter{CFnum}
-%def des clés
-\defKV[paramfenxcas]{%
- Largeur=\def\CFlarg{#1},%
- EspaceLg=\def\CFesplg{#1},%
- PremCol=\def\CFpremcol{#1},%
- HautPremCol=\def\CFhpremcol{#1},%
- Taille=\def\CFtaille{#1},%
- Couleur=\def\CFcouleur{#1},%
- TailleTitre=\def\CFtailletitre{#1},%
- CouleurCmd=\def\CFcoulcmd{#1},%
- CouleurRes=\def\CFcoulres{#1},%
- PosCmd=\def\CFposcmd{#1},%
- PosRes=\def\CFposres{#1},%
- LabelTitre=\def\CFlabeltitre{#1}%
-}
-\setKVdefault[paramfenxcas]{%
- Largeur=16,EspaceLg=2pt,PremCol=0.3,HautPremCol=0.4,%
- Couleur=darkgray,Menu=true,Titre=false,TailleTitre=\normalsize,Taille=\normalsize,%
- Sep=true,PosRes=centre,PosCmd=gauche,%
- CouleurCmd=red,CouleurRes=blue,%
- LabelTitre={Résultats obtenus avec un logiciel de Calcul Formel}%
-}
-
-\newcommand\CalculFormelParametres[1][]{%
- \setcounter{CFnum}{0}
- \useKVdefault[paramfenxcas]%
- \setKV[paramfenxcas]{#1}% on paramètres les nouvelles clés et on les simplifie
-}
-
-\defKV[paramlgxcas]{%
- HautCmd=\def\CFhle{#1},%
- HautRes=\def\CFhlr{#1}
-}
-\setKVdefault[paramlgxcas]{%
- HautCmd=0.75,%
- HautRes=0.75
-}
-
-\newcommand\CalculFormelLigne[3][]{%
- \addtocounter{CFnum}{1}
- \def\CFL{\theCFnum}%
- \def\CFLA{\inteval{\CFL-1}}%
- \useKVdefault[paramlgxcas]%
- \setKV[paramlgxcas]{#1}% on paramètres les nouvelles clés et on les simplifie
- \def\CFLA{\inteval{\CFL-1}}%
- %DÉCLARATION DES NŒUDS (les "6" coins des lignes commande et résultat)
- \xintifboolexpr{\CFL == 1}%si c'est la première ligne
- {\coordinate (A0\CFL) at (0,0);}
- {\coordinate (A0\CFL) at ($(A2\CFLA) + (0,{-\CFesplg})$);}
- \coordinate (A1\CFL) at ($(A0\CFL) + (0,{-\CFhle})$);
- \coordinate (A2\CFL) at ($(A1\CFL) + (0,{-\CFhlr})$);
- \coordinate (A3\CFL) at ($(A0\CFL) + ({\CFlarg},0)$);
- \coordinate (A4\CFL) at ($(A1\CFL) + ({\CFlarg},0)$);
- \coordinate (A5\CFL) at ($(A2\CFL) + ({\CFlarg},0)$);
- %DÉCLARATION DES NŒUDS INTERMÉDIAIRES (pour les commandes et les résultats)
- \coordinate (C1\CFL) at ($(A0\CFL) + (0,{-0.5*\CFhle})$);
- \coordinate (C2\CFL) at ($(A0\CFL) + ({0.5*\CFlarg},{-0.5*\CFhle})$);
- \coordinate (C3\CFL) at ($(A0\CFL) + ({\CFlarg},{-0.5*\CFhle})$);
- \coordinate (R1\CFL) at ($(A1\CFL) + (0,{-0.5*\CFhlr})$);
- \coordinate (R2\CFL) at ($(A1\CFL) + ({0.5*\CFlarg},{-0.5*\CFhlr})$);
- \coordinate (R3\CFL) at ($(A1\CFL) + ({\CFlarg},{-0.5*\CFhlr})$);
- %RECTANGLE DE BASE
- \draw[\CFcouleur] (A0\CFL) rectangle (A5\CFL) ;
- %LA COMMANDE EN ROUGE
- \IfStrEq{\CFposcmd}{centre}%si poscmd=center
- {\draw (C2\CFL) node[\CFcoulcmd,font=\CFtaille] {#2} ;}
- {}
- \IfStrEq{\CFposcmd}{gauche}%si poscmd=left
- {\draw (C1\CFL) node[right,\CFcoulcmd,font=\CFtaille] {#2} ;}
- {}
- \IfStrEq{\CFposcmd}{right}%si poscmd=right
- {\draw (C3\CFL) node[left,\CFcoulcmd,font=\CFtaille] {#2} ;}
- {}
- %LE RÉSULTAT
- \IfStrEq{\CFposres}{centre}%si posrep=center
- {\draw (R2\CFL) node[\CFcoulres,font=\CFtaille] {#3} ;}
- {}
- \IfStrEq{\CFposres}{gauche}%si posrep=left
- {\draw (R1\CFL) node[right,\CFcoulres,font=\CFtaille] {#3} ;}
- {}
- \IfStrEq{\CFposres}{right}%si posrep=right
- {\draw (R3\CFL) node[left,\CFcoulres,font=\CFtaille] {#3} ;}
- {}
- \ifboolKV[paramfenxcas]{Sep}%si sep=true
- {\draw[\CFcouleur] (A1\CFL) -- (A4\CFL);}%
- {}
- %LE PETIT NUMÉRO
- \draw[\CFcouleur] (A0\CFL) rectangle ++ ({-\CFpremcol},{-\CFhpremcol}) node[\CFcouleur,midway,font=\small\sffamily\bfseries] {\CFL} ;
- %LE RECTANGLE "MENU"
- \ifboolKV[paramfenxcas]{Menu}%si menu=true
- {\draw[\CFcouleur,fill=\CFcouleur!25] (A5\CFL) rectangle ++ (-0.65,0.25) node[black,midway,font=\tiny\sffamily\bfseries] {MENU} ;}%
- {}
- %LE BLOC "TITRE"
- \ifboolKV[paramfenxcas]{Titre}%si titre=true
- {\draw[\CFcouleur,fill=lightgray!25,rounded corners] ($(A01) + (0,2pt)$) rectangle ++ ($({\CFlarg},2em)$) node[ForestGreen!50!\CFcouleur,midway,font=\CFtailletitre\ttfamily\bfseries] {\CFlabeltitre};}
- {}
-}
-
-%%------FakeTerm
-%couleurs (inspirées par termsim !)
-\definecolor{PLmpurple}{RGB}{48,10,36}
-\definecolor{PLmgray}{RGB}{70,72,67}
-\definecolor{PLogray}{RGB}{148,147,141}
-\definecolor{PLoorange}{RGB}{233,101,56}
-\definecolor{PLterminal}{RGB}{80,78,70}
-\definecolor{PLlinux}{RGB}{0,39,51}
-\definecolor{PLwinblue}{HTML}{1883D7}
-\definecolor{PLosxgray}{HTML}{D8D6D9}
-
-%WINDOWS
-\tcbset{PLfaketermwin/.style={%
- enhanced,boxrule=1pt,sharp corners,before skip=12pt,after skip=12pt,%
- colframe=PLwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
-\setKVdefault[fakeTERMwin]{Titre={Terminal Windows}}
-
-\newcommand\PLcommandeswin{%
- \begin{tikzpicture}[thick,scale=0.66]
- \draw (0,0)--(1em,0) ; \draw (2em,0) rectangle (3em,1em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
- \end{tikzpicture}%
-}
-
-\newcommand\termwintitre[1][]{%
- \restoreKV[fakeTERMwin]
- \setKV[fakeTERMwin]{#1}
- \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
- {\footnotesize\faTerminal}~~\useKV[fakeTERMwin]{Titre} & \PLcommandeswin \\ %
- \end{tblr}
-}
-
-\DeclareTCBListing{TerminalWin}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
- PLfaketermwin,title={\termwintitre[#2]},%
- listing only,listing engine=listings,%
- listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
- width=#1,#3
-}
-
-%LINUX
-\newcommand{\PLUbuntuWhite}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[PLmgray] (0,0.25em) circle[radius=0.5em] ;
- \end{tikzpicture}%
-}
-\newcommand{\PLUbuntuMin}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=PLogray!50!white] (0,0.25em) circle[radius=0.5em];
- \draw[PLterminal](-0.35em,0.25em)--(0.35em,0.25em);
- \end{tikzpicture}%
-}
-\newcommand{\PLUbuntuClose}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=PLoorange!70!white] (0,0.25em) circle[radius=0.5em];
- \draw[PLterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
- \draw[PLterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
- \end{tikzpicture}%
-}
-\newcommand{\PLUbuntuMax}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[color=PLogray!50!white] (0,0.25em) circle[radius=0.5em];
- \draw[PLterminal] (-0.32em,0.5em) rectangle (0.32em,0);
- \end{tikzpicture}%
-}
-
-\tcbset{PLtermlinux/.style={%
- enhanced,boxrule=1pt,arc=4pt,before skip=12pt,after skip=12pt,%
- colframe=PLmgray,colback=PLmpurple,colbacktitle=PLmgray,colupper=white,coltitle=white,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
-\setKVdefault[fakeTERMnux]{Titre={Terminal UNiX}}
-
-\newcommand\termnuxtitre[1][]{%
- \restoreKV[fakeTERMnux]
- \setKV[fakeTERMnux]{#1}
- \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
- \PLUbuntuWhite~~\PLUbuntuWhite~~\PLUbuntuWhite & \vphantom{p}\useKV[fakeTERMnux]{Titre} & \PLUbuntuMin~~\PLUbuntuMax~~\PLUbuntuClose \\
- \end{tblr}
-}
-
-\DeclareTCBListing{TerminalUnix}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
- PLtermlinux,title={\termnuxtitre[#2]},%
- listing only,listing engine=listings,%
- listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
- width=#1,#3
-}
-
-%OSX
-\tcbset{PLfaketermosx/.style={%
- enhanced,boxrule=1pt,arc=6pt,before skip=12pt,after skip=12pt,%
- colframe=PLosxgray,colback=lightgray!15,colbacktitle=PLosxgray,colupper=black,coltitle=black,%
- titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
- fonttitle=\bfseries\small\sffamily
- }
-}
-
-\newcommand{\PLOSXRed}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[red] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\PLOSXOrange}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\PLOSXGreen}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[ForestGreen] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\newcommand{\PLOSXLG}{%
- \begin{tikzpicture}[thick,anchor=base,baseline]
- \filldraw[PLosxgray] (0,0.25em) circle[radius=0.45em] ;
- \end{tikzpicture}%
-}
-
-\setKVdefault[fakeTERMosx]{titre={Terminal OSX}}
-
-\newcommand\termosxtitre[1][]{%
- \restoreKV[fakeTERMosx]
- \setKV[fakeTERMosx]{#1}
- \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
- \PLOSXRed~\PLOSXOrange~\PLOSXGreen & \vphantom{p}\useKV[fakeTERMosx]{Titre} & \PLOSXLG~\PLOSXLG~\PLOSXLG \\
- \end{tblr}
-}
-
-\DeclareTCBListing{TerminalOSX}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
- PLfaketermosx,title={\termosxtitre[#2]},%
- listing only,listing engine=listings,%
- listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
- width=#1,#3
-}
-
-%%------CartoucheCapytale
-\definecolor{vertcapyt}{rgb}{0.0,0.5,0.0}
-%\definecolor{vertcapyt}{HTML}{008000}
-\DeclareTotalTCBox{\CartoucheCapytale}{ s O{} m }
- {enhanced,size=fbox,on line,arc=3pt,colback=vertcapyt,colframe=vertcapyt,fontupper=\IfBooleanTF{#1}{\ttfamily}{\sffamily}\bfseries,colupper=white}%
- {#3#2~{\scriptsize\faLink}}
-
-%%------PaveDroitTikZ
-\defKV[paramspave]{%
- Largeur=\xdef\PFPaveLg{#1},%
- Profondeur=\xdef\PFPavePf{#1},%
- Hauteur=\xdef\PFPaveHt{#1},%
- Angle=\xdef\PFPaveAngl{#1},%
- Fuite=\xdef\PFPaveFuite{#1},%
- Sommets=\def\PFPaveSommets{#1},%
- Epaisseur=\xdef\PFPaveThick{#1}
-}
-\setKVdefault[paramspave]{%
- Aff=false,%
- Plein=false,%
- Largeur=2,%
- Profondeur=1,%
- Hauteur=1.25,%
- Angle=30,%
- Fuite=0.5,%
- Epaisseur=thick,%
- Sommets=A§B§C§D§E§F§G§H,%
- Cube=false,%
- Math=false
-}
-
-\newcommand\PaveTikz[1][]{%
- \useKVdefault[paramspave]%
- \setKV[paramspave]{#1}%
- \ifboolKV[paramspave]{Cube}
- {\xdef\PFPavePf{\PFPaveLg}%
- \xdef\PFPaveHt{\PFPaveLg}}
- {}
- \setsepchar{§}%
- \readlist*\PFListeSommets\PFPaveSommets
- \itemtomacro\PFListeSommets[1]\PaveA
- \itemtomacro\PFListeSommets[2]\PaveB
- \itemtomacro\PFListeSommets[3]\PaveC
- \itemtomacro\PFListeSommets[4]\PaveD
- \itemtomacro\PFListeSommets[5]\PaveE
- \itemtomacro\PFListeSommets[6]\PaveF
- \itemtomacro\PFListeSommets[7]\PaveG
- \itemtomacro\PFListeSommets[8]\PaveH
- %les nœuds du pave
- \coordinate (\PaveA) at (0,0) ;
- \coordinate (\PaveB) at ({\PFPaveLg},0) ;
- \coordinate (\PaveC) at ($(\PaveB) + ({\PFPaveAngl}:{\PFPaveFuite*\PFPavePf})$) ;
- \coordinate (\PaveD) at ($(\PaveA) + ({\PFPaveAngl}:{\PFPaveFuite*\PFPavePf})$) ;
- \coordinate (\PaveE) at ($(\PaveA) + (0,{\PFPaveHt})$) ;
- \coordinate (\PaveF) at ($(\PaveB) + (0,{\PFPaveHt})$) ;
- \coordinate (\PaveG) at ($(\PaveC) + (0,{\PFPaveHt})$) ;
- \coordinate (\PaveH) at ($(\PaveD) + (0,{\PFPaveHt})$) ;
- \ifboolKV[paramspave]{Aff}
- {\draw (\PaveA) node[below left] {\ifboolKV[paramspave]{Math}{$\PaveA$}{\PaveA}} ;
- \draw (\PaveB) node[below right] {\ifboolKV[paramspave]{Math}{$\PaveB$}{\PaveB}} ;
- \draw (\PaveC) node[above right] {\ifboolKV[paramspave]{Math}{$\PaveC$}{\PaveC}} ;
- \ifboolKV[paramspave]{Plein}
- {}
- {\draw (\PaveD) node[above left] {\ifboolKV[paramspave]{Math}{$\PaveD$}{\PaveD}} ;}
- \draw (\PaveE) node[below left] {\ifboolKV[paramspave]{Math}{$\PaveE$}{\PaveE}} ;
- \draw (\PaveF) node[below right] {\ifboolKV[paramspave]{Math}{$\PaveF$}{\PaveF}} ;
- \draw (\PaveG) node[above right] {\ifboolKV[paramspave]{Math}{$\PaveG$}{\PaveG}} ;
- \draw (\PaveH) node[above left] {\ifboolKV[paramspave]{Math}{$\PaveH$}{\PaveH}} ;}
- {}%on affiche rien
- \draw[\PFPaveThick] (\PaveA)--(\PaveB)--(\PaveF)--(\PaveE)--cycle
- (\PaveB)--(\PaveC)--(\PaveG)--(\PaveF)--cycle
- (\PaveG)--(\PaveH)--(\PaveE) ;
- \ifboolKV[paramspave]{Plein}
- {}
- {\draw[dashed,\PFPaveThick] (\PaveA)--(\PaveD)--(\PaveC)
- (\PaveD)--(\PaveH) ;}
-}
-
-%%------TétraèdreTikZ
-\defKV[paramstetra]{%
- Largeur=\xdef\PFTetraLg{#1},%
- Profondeur=\xdef\PFTetraPf{#1},%
- Hauteur=\xdef\PFTetraHt{#1},%
- Alpha=\xdef\PFTetraAlpha{#1},%
- Beta=\xdef\PFTetraBeta{#1},%
- Sommets=\def\PFTetraSommets{#1},%
- Epaisseur=\xdef\PFTetraThick{#1}
-}
-\setKVdefault[paramstetra]{%
- Aff=false,%
- Plein=false,%
- Largeur=4,%
- Profondeur=1.25,%
- Hauteur=3,%
- Alpha=40,%
- Beta=60,%
- Epaisseur=thick,%
- Sommets=A§B§C§D,%
- Math=false
-}
-
-\newcommand\TetraedreTikz[1][]{%
- \useKVdefault[paramstetra]%
- \setKV[paramstetra]{#1}%
- \setsepchar{§}%
- \readlist*\PFListeSommets\PFTetraSommets
- \itemtomacro\PFListeSommets[1]\TetraA
- \itemtomacro\PFListeSommets[2]\TetraB
- \itemtomacro\PFListeSommets[3]\TetraC
- \itemtomacro\PFListeSommets[4]\TetraD
- %les nœuds du tétraèdre
- \coordinate (\TetraA) at (0,0) ;
- \coordinate (\TetraB) at ($(\TetraA) + ({-\PFTetraAlpha}:{\PFTetraPf})$) ;
- \coordinate (\TetraC) at ({\PFTetraLg},0) ;
- \coordinate (\TetraD) at ($(\TetraA) + ({\PFTetraBeta}:{\PFTetraHt})$) ;
- \ifboolKV[paramstetra]{Aff}
- {\draw (\TetraA) node[left] {\ifboolKV[paramstetra]{Math}{$\TetraA$}{\TetraA}} ;
- \draw (\TetraB) node[below] {\ifboolKV[paramstetra]{Math}{$\TetraB$}{\TetraB}} ;
- \draw (\TetraC) node[right] {\ifboolKV[paramstetra]{Math}{$\TetraC$}{\TetraC}} ;
- \draw (\TetraD) node[above] {\ifboolKV[paramstetra]{Math}{$\TetraD$}{\TetraD}} ;}
- {}%on affiche rien
- \draw[\PFTetraThick] (\TetraA)--(\TetraD)--(\TetraC)--(\TetraB)--cycle
- (\TetraD)--(\TetraB) ;
- \ifboolKV[paramstetra]{Plein}
- {}
- {\draw[dashed,\PFTetraThick] (\TetraA)--(\TetraC) ;}
-}
-
-%%------EnsembleList
-\defKV[kvensemble]{%
- Sep=\def\PLenssep{#1},%
- Option=\def\PLensopt{#1}
-}
-
-\setKVdefault[kvensemble]{%
- Sep={;},%
- Mathpunct=true,%
- Option={}
-}
-
-\newcommand\EcritureEnsemble[2][]{%
- \useKVdefault[kvensemble]%
- \setKV[kvensemble]{#1}%
- \ifboolKV[kvensemble]{Mathpunct}%
- {\left\lbrace \PLensopt{} \mathpunct{} \StrSubstitute{#2}{/}{\mathpunct{}{\PLenssep}\mathpunct{}} \mathpunct{} \right\rbrace}%
- {\left\lbrace \PLensopt{} \StrSubstitute{#2}{/}{{\PLenssep}} \right\rbrace}
-}
-
-%%------SimplFrac ancienne version
-%\DeclareDocumentCommand\ConversionFraction{ O{} m }{% argument optionnel [d ou t] puis argument mandataire {calcul ou fraction}
-% \def\calculargument{\xintPRaw{\xintIrr{\xinteval{#2}}}}%on calcule et on transforme en A/B
-% \IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît
-% {%si oui := fraction
-% \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
-% \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
-% \ifblank{#1}{\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'argument optionnel est vide
-% \IfStrEq{#1}{d}{\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'arg opt est d
-% \IfStrEq{#1}{t}{\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}{}%si l'arg opt est t
-% }{%si non := entier
-% \num{\calculargument}%on affiche l'entier, avec le package siunitx
-% }%
-%}
-
-%%------SimplFrac nouvelle version
-\NewDocumentCommand\ConversionFraction{ s O{} m }{%
- %*=moins sur le numérateur
- %2=argument.optionnel[d/t/dec=...]
- %3=argument mandataire {calcul ou fraction}
- \def\calculargument{\xintPRaw{\xintIrr{\xinteval{#3}}}}%on calcule et on transforme en A/B
- \IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît
- {%si oui := fraction
- \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
- \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
- \ifblank{#2}%
- {%
- \IfBooleanTF{#1}%
- {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
- {%
- \ifthenelse{\numerateur < 0}%
- {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
- {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
- }%
- }%
- {}%si l'argument optionnel est vide
- \IfStrEq{#2}{d}%
- {%
- \IfBooleanTF{#1}%
- {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
- {%
- \ifthenelse{\numerateur < 0}%
- {\ensuremath{-\dfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
- {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
- }%
- }%
- {}%si l'argument optionnel est vide
- \IfStrEq{#2}{t}%
- {%
- \IfBooleanTF{#1}%
- {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
- {%
- \ifthenelse{\numerateur < 0}%
- {\ensuremath{-\tfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
- {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
- }%
- }%
- {}%si l'argument optionnel est vide
- \IfStrEq{#2}{n}%
- {%
- %\IfBooleanTF{#1}%
- {\ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}}%
- %{%
- % \ifthenelse{\numerateur < 0}%
- % {\ensuremath{-\nicefrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
- % {\ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}}%
- %}%
- }%
- {}%si l'argument optionnel est vide
- \IfSubStr{#2}{dec}%on veut la forme décimale
- {%
- \IfSubStr{#2}{=}%si on rajoute une précision
- {%
- \StrBehind{#2}{=}[\precdecimal]%
- \ensuremath{\num{\xintfloateval{round(#3,\precdecimal)}}}%
- }%
- {%
- \ensuremath{\num{\xintfloateval{#3}}}%
- }%
- }%
- {}%si l'argument optionnel est vide
- }{%si non := entier
- \num{\calculargument}%on affiche l'entier, avec le package siunitx
- }%
-}
-
-%%------CabWeb
-\defKV[webrecurr]{%
- Fct=\def\PLRecurfct{#1},%
- Nom=\def\PLRecurnom{#1},%
- No=\def\PLRecurno{#1},%
- Nb=\def\PLRecurnb{#1},%
- Uno=\def\PLRecuruno{#1},%
- PosLabel=\def\PLRecurposlab{#1},%
- DecalLabel=\def\PLRecuroffset{#1},%
- TailleLabel=\def\PLRecurlabelsize{#1}
-}
-
-\setKVdefault[webrecurr]{
- No=0,%
- Nom=u,%
- Nb=5,%
- AffTermes=true,%
- PosLabel=below,%
- DecalLabel=6pt,%
- TailleLabel=\small
-}
-
-\NewDocumentCommand\ToileRecurrence{ O{} O{thick,color=magenta} O{dotted} }{
- %<clés> + <style cabweb> + <style supplémentaire pointillés>
- \useKVdefault[webrecurr]%
- \setKV[webrecurr]{#1}% on paramètres les nouvelles clés et on les simplifie
- \foreach \i [remember=\i as \x (initially \PLRecuruno)] in {1,...,\PLRecurnb}{%
- \def\y{\fpeval{\PLRecurfct}}
- %test de la position courbe / bissectrice ?
- \ifnum \i=1
- \newdimen \X
- \newdimen \Y
- \X = \x pt
- \Y = \y pt
- \ifdim \Y < \X
- \draw[#2] (\x,\y)--(\y,\y) ;
- \else
- \draw[#2] (\x,\x)--(\x,\y)--(\y,\y) ;
- \fi
- \else
- \draw[#2] (\x,\x)--(\x,\y)--(\y,\y) ;
- \fi
- \ifboolKV[webrecurr]{AffTermes}
- {\def\indice{\fpeval{\i+\PLRecurno-1}}
- \draw[#2,#3] (\x,\y)--(\x,0) node[\PLRecurposlab=\PLRecuroffset,font=\PLRecurlabelsize]{$\PLRecurnom_\indice$};}
- {}
- \def\i{\fpeval{\y}}%
- }
-}
-
-%%------CercleTrigo
-\defKV[cercletrigo]{%
- Rayon=\def\PLcerclerayon{#1},%
- Epaisseur=\def\PLcerclethick{#1},%
- EpaisseurSol=\def\PLcerclesolthick{#1},%
- Marge=\def\PLcerclemarge{#1},%
- TailleValeurs=\def\PLcerclevaleurs{#1},%
- TailleAngles=\def\PLcercleangles{#1},%
- CouleurFond=\def\PLcerclefond{#1},%
- Decal=\def\PLcercledecal{#1},%
- cos=\def\PLcerclevalcos{#1},%
- sin=\def\PLcerclevalsin{#1},%
- CouleurSol=\def\PLcerclecoleq{#1}
-}
-
-\setKVdefault[cercletrigo]{
- Rayon=3,%
- Marge=0.25,%
- Decal=10pt,%
- Epaisseur=thick,%
- EpaisseurSol=very thick,%
- AffAngles=true,%
- AffTraits=true,%
- AffValeurs=true,%
- MoinsPi=true,%
- TailleValeurs=\scriptsize,%
- TailleAngles=\footnotesize,%
- CouleurFond=white,%
- Equationcos=false,%
- Equationsin=false,%
- cos=45,%
- sin=30,%
- CouleurSol=blue
-}
-
-\newcommand\CercleTrigo[1][]{%
- \useKVdefault[cercletrigo]
- \setKV[cercletrigo]{#1}
- \tikzset{PLval/.style={inner sep=1pt,font=\PLcerclevaleurs,fill=\PLcerclefond}}
- \tikzset{PLagl/.style={inner sep=1pt,font=\PLcercleangles,fill=\PLcerclefond}}
- %valeurs remarquables
- \ifboolKV[cercletrigo]{AffAngles}
- {%valeursdudessus
- \draw ({\PLcerclerayon},0) node[above right=2pt,font=\PLcercleangles] {0} ;
- \draw ($(30:{\PLcerclerayon})+(30:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{6}$} ;
- \draw ($(45:{\PLcerclerayon})+(45:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{4}$} ;
- \draw ($(60:{\PLcerclerayon})+(60:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{3}$} ;
- \draw (0,{\PLcerclerayon}) node[above right=2pt,PLagl] {$\tfrac{\pi}{2}$} ;
- \draw ({-\PLcerclerayon},0) node[above left=2pt,PLagl] {$\pi$} ;
- \draw ($(150:{\PLcerclerayon})+(150:\PLcercledecal)$) node[PLagl] {$\tfrac{5\pi}{6}$} ;
- \draw ($(135:{\PLcerclerayon})+(135:\PLcercledecal)$) node[PLagl] {$\tfrac{3\pi}{4}$} ;
- \draw ($(120:{\PLcerclerayon})+(120:\PLcercledecal)$) node[PLagl] {$\tfrac{2\pi}{3}$} ;
- \draw ($(30:{\PLcerclerayon})+(30:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{6}$} ;
- %valeursdudessous
- \draw ($(-30:{\PLcerclerayon})+(-30:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{11}\pi}{6}$} ;
- \draw ($(-45:{\PLcerclerayon})+(-45:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{7}\pi}{4}$} ;
- \draw ($(-60:{\PLcerclerayon})+(-60:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{5}\pi}{3}$} ;
- \draw (0,{-\PLcerclerayon}) node[below right=2pt,PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{3}\pi}{2}$} ;
- \draw ($(-120:{\PLcerclerayon})+(-120:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-2}{4}\pi}{3}$} ;
- \draw ($(-135:{\PLcerclerayon})+(-135:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-3}{5}\pi}{4}$} ;
- \draw ($(-150:{\PLcerclerayon})+(-150:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-5}{7}\pi}{6}$} ;
- \ifboolKV[cercletrigo]{MoinsPi}
- {\draw ({-\PLcerclerayon},0) node[below left=2pt,PLagl] {$-\pi$} ;}
- {\draw ({\PLcerclerayon},0) node[below right=2pt,PLagl] {$2\pi$} ;}
- }%
- {}
- %tracés
- \draw[\PLcerclethick,->,>=latex] ({-\PLcerclerayon-\PLcerclemarge},0)--({\PLcerclerayon+\PLcerclemarge},0) ;
- \draw[\PLcerclethick,->,>=latex] (0,{-\PLcerclerayon-\PLcerclemarge})--(0,{\PLcerclerayon+\PLcerclemarge}) ;
- \draw[\PLcerclethick] (0,0) circle[radius=\PLcerclerayon] ;
- \draw (0,0) node[below left=2pt,PLval] {0} ;
- %equations
- \ifboolKV[cercletrigo]{Equationcos}
- {%traitsdeconstructioncos
- \draw[\PLcerclethick,dotted,gray] (-45:\PLcerclerayon) -- (135:\PLcerclerayon)
- (-135:\PLcerclerayon) -- (45:\PLcerclerayon)
- (30:\PLcerclerayon) -- (150:\PLcerclerayon)
- (-30:\PLcerclerayon) -- (-150:\PLcerclerayon)
- (-60:\PLcerclerayon)--(60:\PLcerclerayon)
- (-120:\PLcerclerayon)--(120:\PLcerclerayon) ;
- \draw[\PLcerclesolthick,\PLcerclecoleq] ({\PLcerclevalcos}:\PLcerclerayon)--({-\PLcerclevalcos}:\PLcerclerayon) ;
- \filldraw[\PLcerclecoleq] ({\PLcerclevalcos}:\PLcerclerayon) circle[radius=2pt] ({-\PLcerclevalcos}:\PLcerclerayon) circle[radius=2pt] ;%
- }
- {}
- \ifboolKV[cercletrigo]{Equationsin}
- {%traitsdeconstructioncos
- \draw[\PLcerclethick,dotted,gray] (-45:\PLcerclerayon) -- (135:\PLcerclerayon)
- (-135:\PLcerclerayon) -- (45:\PLcerclerayon)
- (30:\PLcerclerayon) -- (150:\PLcerclerayon)
- (-30:\PLcerclerayon) -- (-150:\PLcerclerayon)
- (-60:\PLcerclerayon)--(60:\PLcerclerayon)
- (-120:\PLcerclerayon)--(120:\PLcerclerayon) ;
- \draw[\PLcerclesolthick,\PLcerclecoleq] ({\PLcerclevalsin}:\PLcerclerayon)--({180-\PLcerclevalsin}:\PLcerclerayon) ;
- \filldraw[\PLcerclecoleq] ({\PLcerclevalsin}:\PLcerclerayon) circle[radius=2pt] ({180-\PLcerclevalsin}:\PLcerclerayon) circle[radius=2pt] ;%
- }
- {}
- %valeurs
- \ifboolKV[cercletrigo]{AffValeurs}
- {%
- \draw ({0.5*\PLcerclerayon},0) node[below=2pt,PLval] {$\tfrac{1}{2}$} ;
- \draw ({-0.5*\PLcerclerayon},0) node[below=2pt,PLval] {$-\tfrac{1}{2}$} ;
- \draw (0,{0.5*\PLcerclerayon}) node[left=2pt,PLval] {$\tfrac{1}{2}$} ;
- \draw (0,{-0.5*\PLcerclerayon}) node[left=2pt,PLval] {$-\tfrac{1}{2}$} ;
- \draw ({0.866*\PLcerclerayon},0) node[below=2pt,PLval] {$\tfrac{\sqrt{3}}{2}$} ;
- \draw ({-0.866*\PLcerclerayon},0) node[below=2pt,PLval] {$-\tfrac{\sqrt{3}}{2}$} ;
- \draw (0,{0.866*\PLcerclerayon}) node[left=2pt,PLval] {$\tfrac{\sqrt{3}}{2}$} ;
- \draw (0,{-0.866*\PLcerclerayon}) node[left=2pt,PLval] {$-\tfrac{\sqrt{3}}{2}$} ;
- \draw ({0.707*\PLcerclerayon},0) node[above=2pt,PLval] {$\tfrac{\sqrt{2}}{2}$} ;
- \draw ({-0.707*\PLcerclerayon},0) node[above=2pt,PLval] {$-\tfrac{\sqrt{2}}{2}$} ;
- \draw (0,{0.707*\PLcerclerayon}) node[right=2pt,PLval] {$\tfrac{\sqrt{2}}{2}$} ;
- \draw (0,{-0.707*\PLcerclerayon}) node[right=2pt,PLval] {$-\tfrac{\sqrt{2}}{2}$} ;
- %\draw[\PLcerclethick] (0,0) circle[radius=\PLcerclerayon] ; %on retrace par dessus ?
- }%
- {}
- %valeurs remarquables en dernier
- \ifboolKV[cercletrigo]{AffTraits}
- {%
- \draw[\PLcerclethick,dotted,gray] (-120:\PLcerclerayon) rectangle (60:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (-150:\PLcerclerayon) rectangle (30:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (-135:\PLcerclerayon) rectangle (45:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (-120:\PLcerclerayon)--(60:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (-150:\PLcerclerayon)--(30:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (-135:\PLcerclerayon)--(45:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (120:\PLcerclerayon)--(-60:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (150:\PLcerclerayon)--(-30:\PLcerclerayon) ;
- \draw[\PLcerclethick,dotted,gray] (135:\PLcerclerayon)--(-45:\PLcerclerayon) ;
- }%
- {}
-}
-
-%%------AideTds
-\defKV[aidetds]{%
- Code=\def\tdsparam{#1},%
- Couleur=\def\tdscouleur{#1},%
- Racines=\def\tdsracine{#1},%
- Largeur=\def\tdslarg{#1},%
- Hauteur=\def\tdshaut{#1}
-}
-
-\setKVdefault[aidetds]{%
- Code=da+,
- Couleur=red,%
- Largeur=2,%
- Hauteur=1,%
- Cadre=true,%
- Racines=2
-}
-
-\NewDocumentCommand\schematdsaff{ s m m m m }{%pour les droites (interne)
- % * = étoilée -> a négatif
- % #2 = couleur
- % #3 = largeur
- % #4 = hauteur
- % #5 = racine
- \IfBooleanTF{#1}%si étoile := droite qui descend
- {%
- \def\possgnavant{above right}\def\possgnapres{below left}\def\sgnavant{\strut+}\def\sgnapres{\strut-}%
- \draw[thick,#2] ({-0.5*#3},{0.5*#4})--({0.5*#3},{-0.5*#4});
- }
- {%
- \def\possgnavant{below right}\def\possgnapres{above left}\def\sgnavant{\strut-}\def\sgnapres{\strut+}%
- \draw[thick,#2] ({-0.5*#3},{-0.5*#4})--({0.5*#3},{0.5*#4});
- }
- \draw[#2] ({-0.5*#3},0) node[inner sep=0pt,\possgnavant=1pt,font=\scriptsize] {\textcircled{$\sgnavant$}};
- \draw[#2] ({0.5*#3},0) node[inner sep=0pt,\possgnapres=1pt,font=\scriptsize] {\textcircled{$\sgnapres$}};
- \draw[#2] (0,0) node[inner sep=0pt,above=3pt,font=\scriptsize] {$\strut#5$} ;
- \filldraw[#2] (0,0) circle[radius=2pt] ;
-}
-
-\NewDocumentCommand\schematdsparab{ m m m m m o }{%pour les paraboles (interne)
- % #1 = signe de a (1 ou -1) ?
- % #2 = couleur
- % #3 = largeur
- % #4 = hauteur
- % #5 = nb racine
- % #6 = liste racines (option)
- \xintifboolexpr{ #1 > 0 'and' #5 == 2 } %a>0 et delta>0
- {%
- \saveexpandmode\expandarg
- \StrCut{#6}{/}{\xun}{\xdeux}
- \restoreexpandmode
- \draw[thick,#2] ({-0.375*#3},{0.5*#4}) parabola bend (0,{-0.5*#4}) ({0.375*#3},{0.5*#4}) ;
- \draw[#2] ({-0.5*#3},0) node[above right=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
- \draw[#2] ({0.5*#3},0) node[above left=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
- \draw[#2] (0,0) node[below=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
- \filldraw[#2] ({0.2625*#3},0) circle[radius=2pt] node[below right=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xdeux$};
- \filldraw[#2] ({-0.2625*#3},0) circle[radius=2pt] node[below left=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xun$};%
- }
- {}
- \xintifboolexpr{ #1 < 0 'and' #5 == 2 } %a<0 et delta>0
- {%
- \saveexpandmode\expandarg
- \StrCut{#6}{/}{\xun}{\xdeux}
- \restoreexpandmode
- \draw[thick,#2] ({-0.375*#3},{-0.5*#4}) parabola bend (0,{0.5*#4}) ({0.375*#3},{-0.5*#4}) ;
- \draw[#2] ({-0.5*#3},0) node[below right=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
- \draw[#2] ({0.5*#3},0) node[below left=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
- \draw[#2] (0,0) node[above=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
- \filldraw[#2] ({0.2625*#3},0) circle[radius=2pt] node[above right=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xdeux$};
- \filldraw[#2] ({-0.2625*#3},0) circle[radius=2pt] node[above left=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xun$};%
- }
- {}
- \xintifboolexpr{ #1 > 0 'and' #5 == 1 } %a>0 et delta=0
- {%
- \draw[thick,#2] ({-0.375*#3},{0.5*#4}) parabola bend (0,0) ({0.375*#3},{0.5*#4}) ;
- \filldraw[#2] (0,0) circle[radius=2pt] node[below=3pt,inner sep=1pt,font=\scriptsize] {$#6$};
- \draw[#2] (0,0) node[above=3pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
- }
- {}
- \xintifboolexpr{ #1 < 0 'and' #5 == 1 } %a>0 et delta=0
- {%
- \draw[thick,#2] ({-0.375*#3},{-0.5*#4}) parabola bend (0,0) ({0.375*#3},{-0.5*#4}) ;
- \filldraw[#2] (0,0) circle[radius=2pt] node[above=3pt,inner sep=0pt,font=\scriptsize] {$#6$};
- \draw[#2] (0,0) node[below=3pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
- }
- {}
- \xintifboolexpr{ #1 > 0 'and' #5 == 0 } %a>0 et delta<0
- {%
- \draw[thick,#2] ({-0.375*#3},{0.5*#4}) parabola bend (0,{0.075*#4}) ({0.375*#3},{0.5*#4}) ;
- \draw[#2] (0,{0.075*#4}) node[above=2pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
- }
- {}
- \xintifboolexpr{ #1 < 0 'and' #5 == 0 } %a>0 et delta<0
- {%
- \draw[thick,#2] ({-0.375*#3},{-0.5*#4}) parabola bend (0,{-0.075*#4}) ({0.375*#3},{-0.5*#4}) ;
- \draw[#2] (0,{-0.075*#4}) node[below=2pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
- }
- {}
-}
-
-\NewDocumentCommand\MiniSchemaSignes{ s O{} D<>{} }{%
- \useKVdefault[aidetds]
- \setKV[aidetds]{#2}
- %simplification des codes
- \IfEq{\tdsparam}{da+}{\def\xcode{1}}{}
- \IfEq{\tdsparam}{da-}{\def\xcode{-1}}{}
- \IfEq{\tdsparam}{pa+d+}{\def\xcode{12}}{}
- \IfEq{\tdsparam}{pa-d+}{\def\xcode{-12}}{}
- \IfEq{\tdsparam}{pa+d0}{\def\xcode{11}}{}
- \IfEq{\tdsparam}{pa-d0}{\def\xcode{-11}}{}
- \IfEq{\tdsparam}{pa+d-}{\def\xcode{10}}{}
- \IfEq{\tdsparam}{pa-d-}{\def\xcode{-10}}{}
- %si commande étoilée := commande autonome
- \IfBooleanTF{#1}%
- {\begin{tikzpicture}[#3]}{}%
- %cadre si booléen true
- \ifboolKV[aidetds]{Cadre}
- {\draw[lightgray] ({-0.5*\tdslarg},{-0.5*\tdshaut}) rectangle ({0.55*\tdslarg},{0.5*\tdshaut}) ;}
- {}
- %restriction de la petite fenêtre
- \clip ({-0.5*\tdslarg},{-0.5*\tdshaut}) rectangle ({0.55*\tdslarg},{0.5*\tdshaut}) ;
- %axe (Ox)
- \draw[thick,->] ({-0.5*\tdslarg},0)--({0.55*\tdslarg},0);
- %1er degré a+ code = 1
- \ifnum\xcode=1
- \schematdsaff{\tdscouleur}{\tdslarg}{\tdshaut}{\tdsracine}
- \fi
- %1er degré a- code = -1
- \ifnum\xcode=-1
- \schematdsaff*{\tdscouleur}{\tdslarg}{\tdshaut}{\tdsracine}
- \fi
- %2d degré a+delta+ code = 12
- \ifnum\xcode=12
- \schematdsparab{1}{\tdscouleur}{\tdslarg}{\tdshaut}{2}[\tdsracine]
- \fi
- %2d degré a-delta+ code = -12
- \ifnum\xcode=-12
- \schematdsparab{-1}{\tdscouleur}{\tdslarg}{\tdshaut}{2}[\tdsracine]
- \fi
- %2d degré a+delta0 code = 11
- \ifnum\xcode=11
- \schematdsparab{1}{\tdscouleur}{\tdslarg}{\tdshaut}{1}[\tdsracine]
- \fi
- %2d degré a-delta0 code = -11
- \ifnum\xcode=-11
- \schematdsparab{-1}{\tdscouleur}{\tdslarg}{\tdshaut}{1}[\tdsracine]
- \fi
- %2d degré a+delta- code = 10
- \ifnum\xcode=10
- \schematdsparab{1}{\tdscouleur}{\tdslarg}{\tdshaut}{0}
- \fi
- %2d degré a-delta- code = -10
- \ifnum\xcode=-10
- \schematdsparab{-1}{\tdscouleur}{\tdslarg}{\tdshaut}{0}
- \fi
- \IfBooleanTF{#1}%
- {\end{tikzpicture}}{}%
-}
-
-%pour l'interaction avec tkz-tab
-\defKV[aidetdstkz]{%
- Echelle=\def\tdstkzscale{#1},%
- Decal=\def\tdstkzoffset{#1}
-}
-
-\setKVdefault[aidetdstkz]{%
- Echelle=1,%
- Decal=1.25
-}
-
-\NewDocumentCommand\MiniSchemaSignesTkzTab{ o m O{0.85} O{1.5} }{%
- %#1 = codeaidetikz
- %#2 = numligne
- %#3 = échelle
- %#4 = décalage
- %\shorthandoff{:}\shorthandoff{!} %bizzzzzzzzare
- %\NoAutoSpacing
- \coordinate (ZZZ) at ($(T2#2)!.5!(T2\the\numexpr#2+1\relax)$) ;
- %\shorthandon{:}\shorthandon{!}
- \path (ZZZ.east) + (#4,0) pic[right,scale=#3,every node/.style={scale=#3}] {code={\MiniSchemaSignes[#1]}} ;
-}
-
-%%------RegressionLinéaire
-%calcul des paramètres
-\defKV[coeffreglin]{%
- NomCoeffa=\def\RegLinCoeffa{#1},%
- NomCoeffb=\def\RegLinCoeffb{#1},%
- NomCoeffr=\def\RegLinCoeffr{#1},%
- NomCoeffrd=\def\RegLinCoeffrd{#1},%
- NomXmin=\def\RegLinCoeffXmin{#1},%
- NomXmax=\def\RegLinCoeffXmax{#1}
-}
-
-\setKVdefault[coeffreglin]{%
- NomCoeffa=COEFFa,%
- NomCoeffb=COEFFb,%
- NomCoeffr=COEFFr,%
- NomCoeffrd=COEFFrd,%
- NomXmin=LXmin,%
- NomXmax=LXmax
-}
-
-\newcommand\CalculsRegLin[3][]{%
- \useKVdefault[coeffreglin]%
- \setKV[coeffreglin]{#1}% on paramètres les nouvelles clés et on les simplifie
- %xmin et xmax
- \expandafter\def\csname\RegLinCoeffXmin\endcsname{\fpeval{min(#2)}}
- \expandafter\def\csname\RegLinCoeffXmax\endcsname{\fpeval{max(#2)}}
- %listes des données
- \def\xliste{#2}
- \def\yliste{#3}
- \readlist*\LX{\xliste}
- \readlist*\LY{\yliste}
- %taille des listes
- \def\LNB{\inteval{\LXlen}}
- %somme des LX et des LY OK
- \xdef\LXSomme{0}
- \xdef\LYSomme{0}
- \foreach \i in {1,2,...,\LNB}{
- \xdef\LXSomme{\fpeval{\LXSomme+\LX[\i]}}
- }
- \foreach \i in {1,2,...,\LNB}{
- \xdef\LYSomme{\fpeval{\LYSomme+\LY[\i]}}
- }
- %moyenne des LX et des LY OK
- \xdef\LXmoy{\fpeval{\LXSomme/\LNB}}
- \xdef\LYmoy{\fpeval{\LYSomme/\LNB}}
- %variance des LX et des LY OK
- \xdef\LXvar{0}
- \foreach \i in {1,2,...,\LNB}{
- \xdef\LXvar{\fpeval{\LXvar+(\LX[\i]-\LXmoy)*(\LX[\i]-\LXmoy)}}
- }
- \xdef\LXvar{\fpeval{\LXvar/\LNB}}
- \xdef\LYvar{0}
- \foreach \i in {1,2,...,\LNB}{
- \xdef\LYvar{\fpeval{\LYvar+(\LY[\i]-\LYmoy)*(\LY[\i]-\LYmoy)}}
- }
- \xdef\LYvar{\fpeval{\LYvar/\LNB}}
- %covariance des XY OK
- \xdef\LXYvar{0}
- \foreach \i in {1,2,...,\LNB}{
- \xdef\LXYvar{\fpeval{\LXYvar+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}}
- }
- \xdef\LXYvar{\fpeval{\LXYvar/\LNB}}
- %COEFFS OK
- \expandafter\def\csname\RegLinCoeffa\endcsname{\fpeval{\LXYvar/\LXvar}}
- \expandafter\def\csname\RegLinCoeffb\endcsname{\fpeval{\LYmoy-\csname\RegLinCoeffa\endcsname*\LXmoy}}
- \expandafter\def\csname\RegLinCoeffr\endcsname{\fpeval{\LXYvar/sqrt(\LXvar*\LYvar)}}
- \expandafter\def\csname\RegLinCoeffrd\endcsname{\fpeval{\csname\RegLinCoeffr\endcsname*\csname\RegLinCoeffr\endcsname}}
-}
-
-%pour un nuage en TiKz
-\defKV[nuagereglin]{%
- Couleur=\def\RegLinNuageCouleur{#1},%
- Taille=\def\RegLinNuageTaille{#1},
- Ox=\def\RegLinNuageOx{#1},%
- Oy=\def\RegLinNuageOy{#1},%
-}
-
-\setKVdefault[nuagereglin]{%
- Couleur=teal,%
- Taille=2pt,%
- Ox=0,%
- Oy=0
-}
-
-\newcommand\PointsRegLin[3][]{%
- \useKVdefault[nuagereglin]
- \setKV[nuagereglin]{#1}% on paramètres les nouvelles clés et on les simplifie
- \def\xliste{#2}
- \def\yliste{#3}
- \readlist*\LX{\xliste}
- \readlist*\LY{\yliste}
- %taille des listes
- \def\LNB{\inteval{\LXlen}}
- \foreach \i in {1,2,...,\LNB} {\filldraw[\RegLinNuageCouleur] ({\LX[\i]-\RegLinNuageOx},{\LY[\i]-\RegLinNuageOy}) circle[radius=\RegLinNuageTaille] ;}
-}
-
-%%------ConversionsBases
-%dec->bin avec blocs de 4 chiffres
-\setKVdefault[CONVDECBIN]{%
- AffBase=true
-}
-\NewDocumentCommand\ConversionDecBin{ s O{} m }{%
- \useKVdefault[CONVDECBIN]
- \setKV[CONVDECBIN]{#2}% on paramètres les nouvelles clés et on les simplifie
- \def\resbrut{\xintDecToBin{#3}}
- \StrLen{\resbrut}[\nbchiffres]
- \def\nbgrp{\fpeval{4*ceil(\nbchiffres/4,0)}}
- \IfBooleanTF{#1}
- {\num{#3}\ifboolKV[CONVDECBIN]{AffBase}{_{10}}{}=\num[digit-group-size=4]{\resbrut}\ifboolKV[CONVDECBIN]{AffBase}{_{2}}{}}
- {\num{#3}\ifboolKV[CONVDECBIN]{AffBase}{_{10}}{}=\num[digit-group-size=4,minimum-integer-digits=\nbgrp]{\resbrut}\ifboolKV[CONVDECBIN]{AffBase}{_{2}}{}}
-}
-
-\setKVdefault[CONVBINHEX]{%
- %trait=0.5pt,%
- AffBase=true,%
- Details=true
-}
-%bourrage de 0 avant
-\ExplSyntaxOn
-\NewExpandableDocumentCommand{\PLstrzeros}{m}
-{
- \int_compare:nT { #1 > 0 }
- {
- 0 \prg_replicate:nn { #1 - 1 } { 0 }
- }
-}
-\ExplSyntaxOff
-
-
-%la conversion complète
-\newcommand\ConversionBinHex[2][]{%
- \useKVdefault[CONVBINHEX]
- \setKV[CONVBINHEX]{#1}% on paramètres les nouvelles clés et on les simplifie
- \def\chbrut{#2}
- \StrLen{\chbrut}[\nbchiffres] %nb de chiffres du binaire
- \xdef\nbgrp{\fpeval{4*ceil(\nbchiffres/4,0)}} %nb de chiffres avec blocs de 4
- \xdef\nbblocs{\fpeval{\nbgrp/4}} %nb de blocs
- %on rajoute des zeros si besoin := OK
- \xdef\resinter{\chbrut}
- \num[digit-group-size=4]{\chbrut}\ifboolKV[CONVBINHEX]{AffBase}{_{2}}{}=
- \ifboolKV[CONVBINHEX]{Details}{%
- \ifnum\nbchiffres<\nbgrp
- \xdef\nbz{\inteval{\nbgrp-\nbchiffres}}
- \xdef\resinter{\PLstrzeros{\nbz}\chbrut}
- \num[digit-group-size=4,minimum-integer-digits=\nbgrp]{\resinter}=
- \fi
- %découpage par blocs et conversion en hexa := OK
- \newcount\cpt
- \cpt0
- \loop\ifnum \cpt<\nbblocs
- \def\iinit{\fpeval{4*\cpt+1}}%
- \def\ifinal{\fpeval{4*(\cpt+1)}}%
- \StrMid{\resinter}{\iinit}{\ifinal}[\blocinter]%
- {\underbracket{\blocinter}_{\xintBinToHex{\blocinter}}\,}
- \advance\cpt by 1
- \repeat
- \!=
- }%
- {}
- \xintBinToHex{\chbrut}\ifboolKV[CONVBINHEX]{AffBase}{_{16}}{}
-}
-
-%hexa/bin->dec avec écriture polynomiale
-\defKV[CONVTODEC]{%
- BaseDep=\def\basedepart{#1}
-}
-\setKVdefault[CONVTODEC]{%
- BaseDep=2,%
- AffBase=true,%
- Details=true,%
- Zeros=true
-}
-
-\ExplSyntaxOn
-\newcommand\convertbasetobasedix[2]{%
- \int_from_base:nn {#1}{#2}
-}
-\ExplSyntaxOff
-
-\newcommand\ConversionVersDec[2][]{%
- \useKVdefault[CONVTODEC]
- \setKV[CONVTODEC]{#1}% on paramètres les nouvelles clés et on les simplifie
- \def\nbdepart{#2}
- \StrLen{\nbdepart}[\nbchiffres]
- \StrChar{\nbdepart}{1}[\chiffre]
- %si on est en base 16
- \xintifboolexpr{\basedepart == 16}%
- {%
- \nbdepart\ifboolKV[CONVTODEC]{AffBase}{_{\basedepart}}{} =
- \ifboolKV[CONVTODEC]{Details}{%
- \xintHexToDec{\chiffre}\times\basedepart^{\inteval{\nbchiffres-1}}%
- \newcount\cpt
- \cpt2
- \loop\ifnum \cpt<\inteval{\nbchiffres+1}
- \def\puiss{\inteval{\nbchiffres-\cpt}}
- \StrChar{\nbdepart}{\cpt}[\chiffre]
- \ifboolKV[CONVTODEC]{Zeros}%
- {%
- +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
- }
- {
- \ifnum\xintHexToDec{\chiffre} > 0
- +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
- \fi
- }
- \advance\cpt by 1
- \repeat
- =
- }
- {}
- \num{\xintHexToDec{\nbdepart}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}
- }%
- {}
- \xintifboolexpr{\basedepart == 2}%
- {%
- \num[digit-group-size=4]{\nbdepart}\ifboolKV[CONVTODEC]{AffBase}{_{\basedepart}}{} =
- \ifboolKV[CONVTODEC]{Details}{%
- \chiffre\times\basedepart^{\inteval{\nbchiffres-1}}%
- \newcount\cpt
- \cpt2
- \loop\ifnum \cpt<\inteval{\nbchiffres+1}
- \def\puiss{\inteval{\nbchiffres-\cpt}}
- \StrChar{\nbdepart}{\cpt}[\chiffre]
- \ifboolKV[CONVTODEC]{Zeros}%
- {%
- +\chiffre\times\basedepart^{\puiss}%
- }
- {
- \ifnum\chiffre > 0
- +\chiffre\times\basedepart^{\puiss}%
- \fi
- }
- \advance\cpt by 1
- \repeat
- =
- }
- {}
- \num{\xintBinToDec{\nbdepart}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}
- }%
- {}%
-}
-
-\newcommand\ConversionBaseDix[3][]{%1=options,%2=nb,%3=basedep ??
- \useKVdefault[CONVTODEC]
- \setKV[CONVTODEC]{#1}% on paramètres les nouvelles clés et on les simplifie
- \def\NBdepart{#2}
- \def\basedepart{#3}
- \StrLen{\NBdepart}[\nbchiffres]
- \StrChar{\NBdepart}{1}[\chiffre]
- \NBdepart\ifboolKV[CONVTODEC]{AffBase}{_{\basedepart}}{} =
- \ifboolKV[CONVTODEC]{Details}{%
- \xintHexToDec{\chiffre}\times\basedepart^{\inteval{\nbchiffres-1}}%
- \newcount\cpt
- \cpt2
- \loop\ifnum \cpt<\inteval{\nbchiffres+1}
- \def\puiss{\inteval{\nbchiffres-\cpt}}
- \StrChar{\NBdepart}{\cpt}[\chiffre]
- \ifboolKV[CONVTODEC]{Zeros}%
- {%
- +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
- }
- {
- \ifnum\xintHexToDec{\chiffre} > 0
- +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
- \fi
- }
- \advance\cpt by 1
- \repeat
- =
- }%
- {}%
- \num{\convertbasetobasedix{#2}{#3}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}%
-}
-
-%%------MainLevée TikZ
-\tikzset{%
- mainlevee/.style args={#1et#2}{decorate,decoration={random steps,segment length=#1,amplitude=#2}},
- mainlevee/.default={5mm et 0.6pt}
-}
-
-%%------STATS2VAR
-%variables directement dans tikzpicture
-\tikzset{%
- Ox/.store in=\axexOx,Ox/.default=0,Ox=0,%essai
- Oy/.store in=\axeyOy,Oy/.default=0,Oy=0,%essai
- xmin/.store in=\xmin,xmin/.default=-5,xmin=-5,
- xmax/.store in=\xmax,xmax/.default=5,xmax=5,
- ymin/.store in=\ymin,ymin/.default=-5,ymin=-5,
- ymax/.store in=\ymax,ymax/.default=5,ymax=5,
- xgrille/.store in=\xgrille,xgrille/.default=1,xgrille=1,
- xgrilles/.store in=\xgrilles,xgrilles/.default=0.5,xgrilles=0.5,
- ygrille/.store in=\ygrille,ygrille/.default=1,ygrille=1,
- ygrilles/.store in=\ygrilles,ygrilles/.default=0.5,ygrilles=0.5,
- xunit/.store in=\xunit,xunit/.default=1,xunit=1,
- yunit/.store in=\yunit,yunit/.default=1,yunit=1
-}
-
-%style point croix
-\tikzset{pics/PLdotcross/.style args={#1/#2}{
- code={
- \draw[line width={0.5*#1},rotate=#2] (-#1,0) -- (#1,0);
- \draw[line width={0.5*#1},rotate=#2] (0,-#1) -- (0, #1);
- }
- },
- pics/PLdotcross/.default={4pt/0}
-}
-
-%affichage d'un label en radians
-\NewDocumentCommand\AffAngleRadian{ s m }{%étoilée en dfrac
- \IfStrEq{#2}{0}%cas où l'argument vaut 0
- {\def\restmp{0}}%
- {%
- \StrDel{#2}{*}[\restmpsansmoins]%
- \StrSubstitute{\restmpsansmoins}{pi}{\pi}[\restmppi]%
- \IfSubStr{#2}{/}%
- {%
- \StrCut{\restmppi}{/}\tmpnum\tmpdenom%
- \IfSubStr{\tmpnum}{-}
- {%
- \StrDel{\tmpnum}{-}[\restmppinum]%
- \IfBooleanTF{#1}
- {\def\restmp{-\dfrac{\restmppinum}{\tmpdenom}}}
- {\def\restmp{-\frac{\restmppinum}{\tmpdenom}}}
- }%
- {%
- \IfBooleanTF{#1}
- {\def\restmp{\dfrac{\tmpnum}{\tmpdenom}}}
- {\def\restmp{\frac{\tmpnum}{\tmpdenom}}}
- }%
- }%
- {%
- \def\restmp{\restmppi}%
- }%
- }%
- \restmp%
-}
-
-%axeOx
-\defKV[PLaxextkz]{%
- Epaisseur=\def\axexwidth{#1},%
- Police=\def\axexfont{#1},%
- HautGrad=\def\axextickwidth{#1},%
- PosGrad=\def\axexposlabel{#1}
-}
-
-\setKVdefault[PLaxextkz]{%
- Epaisseur=1pt,%
- Police=\normalsize\normalfont,%
- PosGrad=below,%
- HautGrad=4pt,%
- AffGrad=true,%
- AffOrigine=true,%
- Annee=false,%
- Dfrac=false,%
- Trigo=false
-}
-
-\DeclareDocumentCommand\AxexTikz{ O{} m }{%
- \useKVdefault[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}}
- %en fonction de Trigo ou non
- \ifboolKV[PLaxextkz]{Trigo}
- {
- \foreach \x in {#2}{%
- \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}{%
- \draw[line width=\axexwidth] ({\x-\axexOx},{\axextickwidthA}) -- ({\x-\axexOx},{-\axextickwidthB})%
- \ifboolKV[PLaxextkz]{AffGrad}%on affiche les graduations
- {%
- \ifboolKV[PLaxextkz]{AffOrigine}%si on demande d'afficher l'origine
- {node[\axexposlabel,font=\axexfont]
- {\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}}%
- }
- }
- }
- }
- {}
- ;}
- }
-
-}
-
-%axeOy
-\defKV[PLaxeytkz]{%
- Epaisseur=\def\axeywidth{#1},%
- Police=\def\axeyfont{#1},%
- HautGrad=\def\axeytickwidth{#1},%
- PosGrad=\def\axeyposlabel{#1}
-}
-
-\setKVdefault[PLaxeytkz]{%
- Epaisseur=1pt,%
- Police=\normalsize\normalfont,%
- PosGrad=left,%
- HautGrad=4pt,%
- AffGrad=true,%
- AffOrigine=true,%
- Annee=false
-}
-
-\DeclareDocumentCommand\AxeyTikz{ O{} m }{%
- \useKVdefault[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}}
- \foreach \y in {#2}{%
- \draw[line width=\axeywidth] ({\axeytickwidthA},{\y-\axeyOy}) -- ({-\axeytickwidthB},{\y-\axeyOy})%
- \ifboolKV[PLaxeytkz]{AffGrad}%on affiche les graduations
- {%
- \ifboolKV[PLaxeytkz]{AffOrigine}%si on demande d'afficher l'origine
- {node[\axeyposlabel,font=\axeyfont]
- {\ifboolKV[PLaxeytkz]{Annee}%
- {\num[group-digits=none]{\y}}%
- {\num[text-family-to-math=true,text-series-to-math=true]{\y}}%
- }
- }
- {\xintifboolexpr{\y==\axeyOy}{}{node[\axeyposlabel,font=\axeyfont] {\ifboolKV[PLaxeytkz]{Annee}%
- {\num[group-digits=none]{\y}}%
- {\num[text-family-to-math=true,text-series-to-math=true]{\y}}%
- }
- }
- }
- }
- {}
- ;}
-}
-
-%axes
-\defKV[PLaxestkz]{%
- Epaisseur=\def\axeswidth{#1},%
- Police=\def\axesfont{#1},%
- Labelx=\def\axeslabelx{#1},%
- Labely=\def\axeslabely{#1},%
- PosLabelx=\def\axesposlabelx{#1},%
- PosLabely=\def\axesposlabely{#1},%
- EchelleFleche=\def\axesechellefleche{#1},%
- TypeFleche=\def\axestypefleche{#1},%
- AffLabel=\def\axesafflabel{#1},%
- ElargirOx=\def\axeselargx{#1},%
- ElargirOy=\def\axeselargy{#1}
-}
-
-\setKVdefault[PLaxestkz]{%
- Epaisseur=1pt,%
- Police=\normalsize\normalfont,%
- Labelx=$x$,%
- Labely=$y$,%
- AffLabel=z,%
- PosLabelx=right,%
- PosLabely=above,%
- EchelleFleche=1,%
- TypeFleche=latex,%
- ElargirOx=0/0.05,%
- ElargirOy=0/0.05
-}
-
-\DeclareDocumentCommand\AxesTikz{ O{} }{%
- \useKVdefault[PLaxestkz]
- \setKV[PLaxestkz]{#1}%
- %les petits élargissements
- \IfSubStr{\axeselargx}{/}
- {\StrCut{\axeselargx}{/}{\axeselargxG}{\axeselargxD}}
- {\def\axeselargxG{\axeselargx}\def\axeselargxD{\axeselargx}}
- \def\axesenlargxG{\fpeval{\axeselargxG*(\xmax-\xmin)}}
- \def\axesenlargxD{\fpeval{\axeselargxD*(\xmax-\xmin)}}
- \IfSubStr{\axeselargy}{/}
- {\StrCut{\axeselargy}{/}{\axeselargyG}{\axeselargyD}}
- {\def\axeselargyG{\axeselargy}\def\axeselargyD{\axeselargy}}
- \def\axesenlargyG{\fpeval{\axeselargyG*(\ymax-\ymin)}}
- \def\axesenlargyD{\fpeval{\axeselargyD*(\ymax-\ymin)}}
- %on affiche les deux axes
- \draw[line width=\axeswidth,-{\axestypefleche[scale=\axesechellefleche]}] ({\xmin-\axexOx-\axesenlargxG},0) -- ({\xmax-\axexOx+\axesenlargxD},0) ;
- \draw[line width=\axeswidth,-{\axestypefleche[scale=\axesechellefleche]}] (0,{\ymin-\axeyOy-\axesenlargyG}) -- (0,{\ymax-\axeyOy++\axesenlargyD}) ;
- %les labels éventuels
- \IfSubStr{\axesafflabel}{x}%
- {\draw ({\xmax-\axexOx},0) node[\axesposlabelx,font=\axesfont] {\axeslabelx} ;}
- {}
- \IfSubStr{\axesafflabel}{y}%
- {\draw (0,{\ymax-\axeyOy}) node[\axesposlabely,font=\axesfont] {\axeslabely} ;}
- {}
-}
-
-%fenêtre clippée
-\newcommand\FenetreTikz{%
- \clip ({\xmin-\axexOx},{\ymin-\axeyOy}) rectangle ({\xmax-\axexOx},{\ymax-\axeyOy}) ;
-}
-
-%origine
-\defKV[PLaxesorig]{%
- Police=\def\axesorfont{#1},%
- Pos=\def\axesorpos{#1},%
- Decal=\def\axesordecal{#1},%
- Valeur=\def\axesorval{#1}
-}
-
-\setKVdefault[PLaxesorig]{%
- Police=\normalsize\normalfont,%
- Pos={below left},%
- Decal=2pt,%
- Valeur=0
-}
-
-\DeclareDocumentCommand\OrigineTikz{ O{} }{%
- \useKVdefault[PLaxesorig]%
- \setKV[PLaxesorig]{#1}%
- \draw (0,0) node[\axesorpos=\axesordecal,font=\axesorfont] {\axesorval} ;
-}
-
-%grilles
-\setKVdefault[PLgrillestkz]{%
- Affp=true,%
- Affs=true
-}
-
-\DeclareDocumentCommand\GrilleTikz{ O{} O{thin,lightgray} O{ultra thin,lightgray} }{%
- \useKVdefault[PLgrillestkz]
- \setKV[PLgrillestkz]{#1}%
- \ifboolKV[PLgrillestkz]{Affs}
- {\draw[xstep=\xgrilles,ystep=\ygrilles,#3] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});}
- {}
- \ifboolKV[PLgrillestkz]{Affp}
- {\draw[xstep=\xgrille,ystep=\ygrille,#2] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});}
- {}
-}
-
-%point(s) avec changement origines
-\defKV[PLpts]{%
- Taille=\def\ptstaille{#1},%
- Couleur=\def\ptscouleur{#1},%
- Style=\def\ptsstyle{#1}
-}
-
-\setKVdefault[PLpts]{%
- Taille=2pt,%
- Couleur=blue,%
- Style=o
-}
-
-\newcommand\PLnuagepoints[2][]{%
- \useKVdefault[PLpts]
- \setKV[PLpts]{#1}%
- \setsepchar{§}%
- \readlist\listepointsaffiches{#2}
- \foreachitem\point\in\listepointsaffiches{%
- \StrBetween{\point}{(}{,}[\XPT]
- \StrBetween{\point}{,}{)}[\YPT]
- \IfStrEq{\ptsstyle}{o}%
- {\filldraw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) circle[radius=\ptstaille] ;}
- {}
- \IfStrEq{\ptsstyle}{x}%
- {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;}
- {}
- \IfStrEq{\ptsstyle}{+}%
- {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;}
- {}
- }
-}
-
-\newcommand\NuagePointsTikz[3][]{%
- \useKVdefault[PLpts]
- \setKV[PLpts]{#1}% on paramètres les nouvelles clés et on les simplifie
- \def\xliste{#2}
- \def\yliste{#3}
- \readlist*\LX{\xliste}
- \readlist*\LY{\yliste}
- %taille des listes
- \def\LNB{\inteval{\LXlen}}
- \foreach \i in {1,2,...,\LNB} {
- \IfStrEq{\ptsstyle}{o}%
- {
- \IfSubStr{\ptscouleur}{/}
- {\StrCut{\ptscouleur}{/}{\ptscouleurA}{\ptscouleurB}\draw[thick,\ptscouleurA,fill=\ptscouleurB] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;}
- {\draw[\ptscouleur,fill=\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;}
- }
- {}
- \IfStrEq{\ptsstyle}{x}%
- {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;}
- {}
- \IfStrEq{\ptsstyle}{+}%
- {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;}
- {}
- }
-}
-
-\defKV[PLptmoy]{%
- Police=\def\ptmoyfont{#1},%
- Taille=\def\ptmoytaille{#1},%
- Couleur=\def\ptmoycouleur{#1},%
- Style=\def\ptmoystyle{#1},%
- xg=\def\ptmoyx{#1},%
- yg=\def\ptmoyy{#1},%
- Nom=\def\ptmoynom{#1},%
- Pos=\def\ptmoypos{#1},%
- Decal=\def\ptmoydecal{#1}%
-}
-
-\setKVdefault[PLptmoy]{%
- Police=\normalsize\normalfont,%
- Taille=4pt,%
- Couleur=red,%
- Style=x,%
- xg=\LXmoy,%
- yg=\LYmoy,%
- Nom=G,%
- Pos=above,%
- Decal=0pt,%
- AffNom=true
-}
-
-\newcommand\PointMoyenTikz[1][]{%
- \useKVdefault[PLptmoy]
- \setKV[PLptmoy]{#1}% on paramètres les nouvelles clés et on les simplifie
- \IfStrEq{\ptmoystyle}{o}%
- {
- \IfSubStr{\ptmoycouleur}{/}
- {\StrCut{\ptmoycouleur}{/}{\ptmoycouleurA}{\ptmoycouleurB}\draw[thick,\ptmoycouleurA,fill=\ptmoycouleurB] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;}
- {\draw[\ptmoycouleur,fill=\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;}
- }
- {}
- \IfStrEq{\ptmoystyle}{x}%
- {\draw[\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) pic {PLdotcross=\ptmoytaille/45} ;}
- {}
- \IfStrEq{\ptmoystyle}{+}%
- {\draw[\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) pic {PLdotcross=\ptmoytaille/0} ;}
- {}
- \ifboolKV[PLptmoy]{AffNom}
- {\draw ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) node[\ptmoypos={\ptmoytaille+\ptmoydecal},font=\ptmoyfont] {\ptmoynom} ;}
- {}
-
-}
-
-%courbe ?
-\newcommand\CourbeTikz[3][]{%
- \setsepchar{:}%
- \readlist\PLdomaine{#3}
- \itemtomacro\PLdomaine[1]\PLDm
- \itemtomacro\PLdomaine[2]\PLDM
- \saveexpandmode\noexpandarg
- \StrSubstitute{#2}{\x}{(\x+\axexOx)}[\fctdecx]
- \restoreexpandmode % restore the previous mode
- \draw[#1] plot[domain={\PLDm-\axexOx}:{\PLDM-\axexOx}] (\x,{\fctdecx-\axeyOy}) ;
-}
-
-\setKVdefault[PLsimplewindow]{%
- Axes=true,%
- Grille=true,%
-}
-
-\DeclareDocumentCommand\FenetreSimpleTikz{ O{} D(){} D<>{} m D<>{} m }{%
- \useKVdefault[PLsimplewindow]%
- \setKV[PLsimplewindow]{#1}% on paramètres les nouvelles clés et on les simplifie
- \ifboolKV[PLsimplewindow]{Grille}%
- {\GrilleTikz}%
- {}%
- \ifboolKV[PLsimplewindow]{Axes}%
- {\AxesTikz[#2]%
- \AxexTikz[#3]{#4}
- \AxeyTikz[#5]{#6}}%
- {}%
-}
-
-\NewDocumentEnvironment{StatsTikz}{ O{} }
-{%
- \begin{tikzpicture}[#1]
- }%
- {%
- \end{tikzpicture}%
-}
-
-%%------BOITES MOUSTACHES
-\defKV[boiteamoustaches]{%
- Couleur=\def\BaMCouleur{#1},%
- Elevation=\def\BaMElevation{#1},%
- Hauteur=\def\BaMHauteur{#1},%
- Moyenne=\def\BaMMoyenne{#1},%
- Epaisseur=\def\BaMEpaisseur{#1},%
- Remplir=\def\BaMRemplissage{#1}
-}
-
-\setKVdefault[boiteamoustaches]{%
- Couleur=black,%
- Elevation=1,%
- Hauteur=1,%
- AffMoyenne=false,%
- Epaisseur=thick,%
- Pointilles=false,%
- Valeurs=false,%
- Remplir=white
-}
-
-\defKV[boiteamoustachesaxe]{%
- Min=\def\BaMAxeMin{#1},%
- Max=\def\BaMAxeMax{#1},%
- Elargir=\def\BaMAxeElarg{#1},%
- Epaisseur=\def\BaMAxeEpaisseur{#1},%
- Valeurs=\def\BaMAxeValeurs{#1}
-}
-
-\setKVdefault[boiteamoustachesaxe]{%
- Elargir=0.05,%
- Epaisseur=thick,%
- AffValeurs=false
-}
-
-\newcommand\BoiteMoustachesAxe[1][]{
- \useKVdefault[boiteamoustachesaxe]
- \setKV[boiteamoustachesaxe]{#1}
- \def\BaMaxelargeur{\fpeval{\BaMAxeMax-\BaMAxeMin}}
- \def\BaMaxexmin{\fpeval{\BaMAxeMin-\BaMAxeElarg*\BaMaxelargeur}}
- \def\BaMaxexmax{\fpeval{\BaMAxeMax+\BaMAxeElarg*\BaMaxelargeur}}
- \draw[\BaMAxeEpaisseur,->,>=latex] (\BaMaxexmin,0) -- (\BaMaxexmax,0) ;
- \ifboolKV[boiteamoustachesaxe]{AffValeurs}
- {\foreach \x in \BaMAxeValeurs \draw[\BaMAxeEpaisseur] (\x,3pt)--(\x,-3pt) node[below=3pt] {\num{\x}} ;}
- {}
-}
-
-\newcommand\BoiteMoustaches[2][]{
- \useKVdefault[boiteamoustaches]
- \setKV[boiteamoustaches]{#1}
- \setsepchar[.]{/}%
- \readlist*\BaMListeparams{#2}%
- \itemtomacro\BaMListeparams[1]\BaMmin%
- \itemtomacro\BaMListeparams[2]\BaMqu%
- \itemtomacro\BaMListeparams[3]\BaMmed%
- \itemtomacro\BaMListeparams[4]\BaMqt%
- \itemtomacro\BaMListeparams[5]\BaMmax%
- \draw[draw,\BaMEpaisseur,\BaMCouleur,fill=\BaMRemplissage] ({\BaMqu},{\BaMElevation-0.5*\BaMHauteur}) rectangle ({\BaMqt},{\BaMElevation+0.5*\BaMHauteur}) ;
- \draw[\BaMEpaisseur,\BaMCouleur] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmin,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmax,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmax,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmed,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmed,{\BaMElevation+0.5*\BaMHauteur});
- \draw[\BaMEpaisseur,\BaMCouleur] ({\BaMmin},{\BaMElevation})--({\BaMqu},{\BaMElevation}) ({\BaMqt},{\BaMElevation})--({\BaMmax},{\BaMElevation}) ;
- \ifboolKV[boiteamoustaches]{AffMoyenne}
- {\filldraw[\BaMCouleur] ({\BaMMoyenne},{\BaMElevation}) circle[radius=2.5pt] ;}
- {}
- \ifboolKV[boiteamoustaches]{Pointilles}
- {
- \draw[\BaMEpaisseur,densely dashed] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmin,0) ;
- \draw[\BaMEpaisseur,densely dashed] (\BaMqu,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqu,0) ;
- \draw[\BaMEpaisseur,densely dashed] (\BaMmed,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmed,0) ;
- \draw[\BaMEpaisseur,densely dashed] (\BaMqt,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqt,0) ;
- \draw[\BaMEpaisseur,densely dashed] (\BaMmax,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmax,0) ;
- }
- {}
- \ifboolKV[boiteamoustaches]{Valeurs}
- {
- \filldraw (\BaMmin,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmin}} ;
- \filldraw (\BaMqu,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqu}} ;
- \filldraw (\BaMmed,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmed}} ;
- \filldraw (\BaMqt,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqt}} ;
- \filldraw (\BaMmax,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmax}} ;
- }
- {}
-}
-
-%%------SUDOMATHS
-\defKV[PLTIKZSUDOM]{%
- CouleurTexte=\def\PLSMcoultexte{#1},%
- Epaisseur=\def\PLSMepf{#1},%
- Epaisseurg=\def\PLSMepg{#1},%
- Unite=\def\PLSMunite{#1},%
- CouleurCase=\def\PLSMcoulcase{#1},%
- NbCol=\def\PLSMnbcol{#1},%
- NbSubCol=\def\PLSMnbsubcol{#1},%
- NbLig=\def\PLSMnblig{#1},%
- NbSubLig=\def\PLSMnbsublig{#1},%
- Police=\def\PLSMfonte{#1},%
- PoliceLeg=\def\PLSMfonteleg{#1},%
- ListeLegV=\def\PLSMlistelegv{#1},%
- ListeLegH=\def\PLSMlistelegh{#1},%
- DecalLegende=\def\PLSMdecalleg{#1}
-}
-
-\setKVdefault[PLTIKZSUDOM]{%
- Epaisseurg=1.5pt,%
- Epaisseur=0.5pt,%
- Unite=1cm,%
- CouleurCase=LightBlue!50,%
- CouleurTexte=blue,%
- NbCol=9,%
- NbSubCol=3,%
- NbLig=9,%
- NbSubLig=3,
- Police=\normalfont\normalsize,%
- PoliceLeg=\normalfont\sffamily,%
- Legendes=true,%
- ListeLegV=ABCDEFGHIJKLMNOPQRSTUVWXYZ,%
- ListeLegH=abcdefghijklmnopqrstuvwxyz,%
- DecalLegende=0.45
-}
-
-\NewDocumentEnvironment{EnvSudoMaths}{ O{} m }
- {
- \useKVdefault[PLTIKZSUDOM]
- \setKV[PLTIKZSUDOM]{#1}% on paramètres les nouvelles clés et on les simplifie
- %calculs intermédiaires
- \def\larcolinter{\inteval{\PLSMnbcol/\PLSMnbsubcol}}
- \def\larliginter{\inteval{\PLSMnblig/\PLSMnbsublig}}
- %lecture liste
- \IfEq{#2}{}{}%
- {%
- \setsepchar[.]{§./}%
- \readlist*\SPGrilleSudoMaths{#2}%
- }
- %débt envtik
- \begin{tikzpicture}[x=\PLSMunite,y=\PLSMunite,line join=miter]
- %cases
- \IfEq{#2}{}{}%
- {%
- \foreach \i in {1,2,...,\PLSMnblig}{%
- \foreach \j in {1,2,...,\PLSMnbcol}{%
- \itemtomacro\SPGrilleSudoMaths[\i,\j]\SMcase
- \IfSubStr{\SMcase}{*}%si on veut colorier via *
- {%
- \StrDel{\SMcase}{*}[\SMcaseb]%
- \draw[draw=none,fill=\PLSMcoulcase] ({\j-1},{1-\i}) rectangle++ (1,-1) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte,midway] {\SMcaseb} ;%
- }
- {%
- \draw ({\j-0.5},{0.5-\i}) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte] {\SMcase} ;%
- }
- }
- }%
- }
- %grilles
- \draw[line width=\PLSMepg] (0,0) rectangle ({\PLSMnbcol},{-\PLSMnblig}) ;
- \draw[line width=\PLSMepf,xstep=1,ystep=1] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
- \draw[line width=\PLSMepg,xstep=\larcolinter,ystep=\larliginter] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
- %légendes
- \ifboolKV[PLTIKZSUDOM]{Legendes}
- {%
- \foreach \i in {1,2,...,\PLSMnbcol}{\draw ({\i-0.5},{\PLSMdecalleg}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\strut\StrChar{\PLSMlistelegh}{\i}} ;}
- \foreach \j in {1,2,...,\PLSMnblig}{\draw ({-\PLSMdecalleg},{0.5-\j}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\StrChar{\PLSMlistelegv}{\j}} ;}
- }{}
- }
- {
- \end{tikzpicture}
- }
-
-\NewDocumentCommand\SudoMaths{ O{} m }{%
- \useKVdefault[PLTIKZSUDOM]
- \setKV[PLTIKZSUDOM]{#1}% on paramètres les nouvelles clés et on les simplifie
- %calculs intermédiaires
- \def\larcolinter{\inteval{\PLSMnbcol/\PLSMnbsubcol}}
- \def\larliginter{\inteval{\PLSMnblig/\PLSMnbsublig}}
- %lecture liste
- \IfEq{#2}{}{}%
- {%
- \setsepchar[.]{§./}%
- \readlist*\SPGrilleSudoMaths{#2}%
- }
- %débt envtik
- \begin{tikzpicture}[x=\PLSMunite,y=\PLSMunite,line join=miter]
- %cases
- \IfEq{#2}{}{}%
- {%
- \foreach \i in {1,2,...,\PLSMnblig}{%
- \foreach \j in {1,2,...,\PLSMnbcol}{%
- \itemtomacro\SPGrilleSudoMaths[\i,\j]\SMcase
- \IfSubStr{\SMcase}{*}%si on veut colorier via *
- {%
- \StrDel{\SMcase}{*}[\SMcaseb]%
- \draw[draw=none,fill=\PLSMcoulcase] ({\j-1},{1-\i}) rectangle++ (1,-1) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte,midway] {\SMcaseb} ;%
- }
- {%
- \draw ({\j-0.5},{0.5-\i}) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte] {\SMcase} ;%
- }
- }
- }%
- }
- %grilles
- \draw[line width=\PLSMepg] (0,0) rectangle ({\PLSMnbcol},{-\PLSMnblig}) ;
- \draw[line width=\PLSMepf,xstep=1,ystep=1] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
- \draw[line width=\PLSMepg,xstep=\larcolinter,ystep=\larliginter] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
- %légendes
- \ifboolKV[PLTIKZSUDOM]{Legendes}
- {%
- \foreach \i in {1,2,...,\PLSMnbcol}{\draw ({\i-0.5},{\PLSMdecalleg}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\strut\StrChar{\PLSMlistelegh}{\i}} ;}
- \foreach \j in {1,2,...,\PLSMnblig}{\draw ({-\PLSMdecalleg},{0.5-\j}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\StrChar{\PLSMlistelegv}{\j}} ;}
- }{}
- \end{tikzpicture}
-}
-
-%%------LOISPROBAS
-%calculs "simples"
-\newcommand\CalcBinomP[3]{%npk
- \xintFloatToDecimal{\xintfloateval{binomial(#1,#3)*#2^#3*(1-#2)^(#1-#3)}}
-}
-\newcommand\CalcBinomC[4]{%npab
- \def\BorneInf{#3}\def\BorneSup{#4}
- \ifthenelse{\equal{#3}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#4}{*}}%
- {\def\BorneSup{#1}}
- {}
- \xintFloatToDecimal{\xintfloateval{add(binomial(#1,i)*#2^i*(1-#2)^(#1-i), i=\BorneInf..\BorneSup)}}
-}
-\newcommand\CalcGeomP[2]{%pk
- \xintFloatToDecimal{\xintfloateval{(1-#1)^(#2-1)*(#1)}}
-}
-\newcommand\CalcGeomC[3]{%pab
- \def\BorneInf{#2}\def\BorneSup{#3}
- \ifthenelse{\equal{#2}{*}}%
- {\def\BorneInf{1}}
- {}
- \ifthenelse{\equal{#3}{*}}%
- {\def\BorneSup{\fpeval{trunc(1/#1*10,0)}}}
- {}
- \xintFloatToDecimal{\xintfloateval{add((1-#1)^(i-1)*(#1), i=\BorneInf..\BorneSup)}}
-}
-\newcommand\CalcHypergeomP[4]{%Nnmk
- \xintFloatToDecimal{\xintfloateval{binomial(#3,#4)*binomial(#1-#3,#2-#4)/binomial(#1,#2)}}
-}
-\newcommand\CalcHypergeomC[5]{%Nnmab
- \def\BorneInf{#4}\def\BorneSup{#5}
- \ifthenelse{\equal{#4}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#5}{*}}%
- {\def\BorneSup{#1}}
- {}
- \xintFloatToDecimal{\xintfloateval{add(binomial(#3,i)*binomial(#1-#3,#2-i)/binomial(#1,#2), i=\BorneInf..\BorneSup)}}
-}
-\newcommand\CalcPoissP[2]{%lk
- \xintFloatToDecimal{\xintfloateval{exp(-#1)*#1^#2/factorial(#2)}}
-}
-\newcommand\CalcPoissC[3]{%lab
- \def\BorneInf{#2}\def\BorneSup{#3}
- \ifthenelse{\equal{#2}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#3}{*}}%
- {\def\BorneSup{10*#1}}
- {}
- \xintFloatToDecimal{\xintfloateval{add(exp(-#1)*#1^i/factorial(i), i=\BorneInf..\BorneSup)}}
-}
-%utiles idée de https://tex.stackexchange.com/questions/355574/im-searching-for-a-table-with-cdf-of-standard-normal-distribution
-\xintdeffloatvar a_1,a_2,a_3,a_4,a_5,a_6 :=
-0.0705230784,0.0422820123,0.0092705272,0.0001520143,0.0002765672,0.0000430638;
-\xintdeffloatvar rac2inv := sqrt(2)/2 ;
-\xintdeffloatfunc erfc(x) := % uniquement pour x positif
-((((((a_6*x+a_5)*x+a_4)*x+a_3)*x+a_2)*x+a_1)*x+1)**-16 ; % fin de définition de erfc(x)
-\xintdeffloatfunc Phi(z) := (z>=0)?{1 - 0.5 * erfc(rac2inv * z)}{0.5 * erfc(-rac2inv * z)};
-
-\newcommand\CalcNormC[4]{%msab
- %def des bornes de l'intervalle suivant l'absence de a ou de b...
- \def\BorneInf{#3}\def\BorneSup{#4}
- \ifthenelse{\equal{#3}{*}}%
- {\def\BorneInf{#4-10*#2}}
- {}
- \ifthenelse{\equal{#4}{*}}%
- {\def\BorneSup{#3+10*#2}}
- {}
- \xintFloatToDecimal{\xintfloateval{Phi((\BorneSup-#1)/#2)-Phi((\BorneInf-#1)/#2)}}
-}
-%calculs "simples" fiabilite
-\newcommand\CalcExpoC[3]{%lab
- \def\BorneInf{#2}\def\BorneSup{#3}
- \ifthenelse{\equal{#2}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#3}{*}}%
- {\def\BorneSup{100/#1}}
- {}
- \xintFloatToDecimal{\xintfloateval{exp(-#1*\BorneInf)-exp(-#1*\BorneSup)}}
-}
-
-%calculs formatés
-\NewDocumentCommand{\BinomP}{ s O{3} m m m }{%*=sci,2=prec,3=n,4=p,5=k
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(binomial(#3,#5)*#4^#5*(1-#4)^(#3-#5),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(binomial(#3,#5)*#4^#5*(1-#4)^(#3-#5),#2)}}}
- }
-}
-
-\NewDocumentCommand{\BinomC}{ s O{3} m m m m }{%*=sci,2=prec,3=n,4=p,5=a,6=b
- \def\BorneInf{#5}\def\BorneSup{#6}
- \ifthenelse{\equal{#5}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#6}{*}}%
- {\def\BorneSup{#3}}
- {}
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#3,i)*#4^i*(1-#4)^(#3-i), i=\BorneInf..\BorneSup),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#3,i)*#4^i*(1-#4)^(#3-i), i=\BorneInf..\BorneSup),#2)}}}
- }
-}
-
-\NewDocumentCommand{\GeomP}{ s O{3} m m }{%*=sci,2=prec,3=p,4=k
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round((1-#3)^(#4-1)*(#3),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round((1-#3)^(#4-1)*(#3),#2)}}}
- }
-}
-
-\NewDocumentCommand{\GeomC}{ s O{3} m m m }{%*=sci,2=prec,3=p,4=a,5=b
- \def\BorneInf{#4}\def\BorneSup{#5}
- \ifthenelse{\equal{#4}{*}}%
- {\def\BorneInf{1}}
- {}
- \ifthenelse{\equal{#5}{*}}%
- {\def\BorneSup{\fpeval{trunc(1/#3*10,0)}}}
- {}
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add((1-#3)^(i-1)*(#3), i=\BorneInf..\BorneSup),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add((1-#3)^(i-1)*(#3), i=\BorneInf..\BorneSup),#2)}}}
- }
-}
-
-\NewDocumentCommand{\HypergeomP}{ s O{3} m m m m }{%*=sci,2=prec,3=N,4=n,5=m,6=k
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(binomial(#5,#6)*binomial(#3-#5,#4-#6)/binomial(#3,#4),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(binomial(#5,#6)*binomial(#3-#5,#4-#6)/binomial(#3,#4),#2)}}}
- }
-}
-
-\NewDocumentCommand{\HypergeomC}{ s O{3} m m m m m }{%*=sci,2=prec,3=N,4=n,5=m,6=a,7=b
- \def\BorneInf{#6}\def\BorneSup{#7}
- \ifthenelse{\equal{#6}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#7}{*}}%
- {\def\BorneSup{#3}}
- {}
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#5,i)*binomial(#3-#5,#4-i)/binomial(#3,#4), i=\BorneInf..\BorneSup),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#5,i)*binomial(#3-#5,#4-i)/binomial(#3,#4), i=\BorneInf..\BorneSup),#2)}}}
- }
-}
-
-\NewDocumentCommand{\PoissonP}{ s O{3} m m }{%*=sci,2=prec,3=lbda,4=k
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(exp(-#3)*#3^#4/factorial(#4),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(exp(-#3)*#3^#4/factorial(#4),#2)}}}
- }
-}
-
-\NewDocumentCommand{\PoissonC}{ s O{3} m m m }{%*=ing,2=prec,3=lbda,4=a,5=b
- \def\BorneInf{#4}\def\BorneSup{#5}
- \ifthenelse{\equal{#4}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#5}{*}}%
- {\def\BorneSup{10*#3}}
- {}
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add(exp(-#3)*#3^i/factorial(i), i=\BorneInf..\BorneSup),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add(exp(-#3)*#3^i/factorial(i), i=\BorneInf..\BorneSup),#2)}}}
- }
-}
-
-\NewDocumentCommand{\NormaleC}{ s O{3} m m m m }{%
- %*=ing,2=prec,3=mu,4=sigma,5=a,6=b
- %def des bornes de l'intervalle suivant l'absence de a ou de b...
- \def\BorneInf{#5}\def\BorneSup{#6}
- \ifthenelse{\equal{#5}{*}}%
- {\def\BorneInf{#6-10*#4}}
- {}
- \ifthenelse{\equal{#6}{*}}%
- {\def\BorneSup{#5+10*#4}}
- {}
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(Phi((\BorneSup-#3)/#4)-Phi((\BorneInf-#3)/#4),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(Phi((\BorneSup-#3)/#4)-Phi((\BorneInf-#3)/#4),#2)}}}
- }
-}
-
-\NewDocumentCommand{\ExpoC}{ s O{3} m m m }{%*=ing,2=prec,3=lbda,4=a,5=b
- \def\BorneInf{#4}\def\BorneSup{#5}
- \ifthenelse{\equal{#4}{*}}%
- {\def\BorneInf{0}}
- {}
- \ifthenelse{\equal{#5}{*}}%
- {\def\BorneSup{100/#3}}
- {}
- \IfBooleanTF{#1}%
- {%
- \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(exp(-#3*\BorneInf)-exp(-#3*\BorneSup),#2)}}}
- }%
- {%
- \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintFloatToDecimal{\xintfloateval{round(exp(-#3*\BorneInf)-exp(-#3*\BorneSup),#2)}}}}
- }
-}
-
-%%------CONVFROMDEC
-\newcommand\PLnoeud[2]{\tikz[remember picture,baseline=(#1.base)]\node[shape=rectangle,inner sep=0pt](#1){#2};}
-\ExplSyntaxOn
-\newcommand\convertbasedixtobase[2]{%
- \int_to_Base:nn {#1}{#2}
-}
-\ExplSyntaxOff
-
-\defKV[convfromten]{%
- Couleur=\def\PLConvCouleur{#1},%
- DecalH=\def\PLConvDecalH{#1},%
- DecalV=\def\PLConvDecalV{#1},%
- Noeud=\def\PLConvNoeud{#1}
-}
-
-\setKVdefault[convfromten]{%
- Couleur=red,%
- DecalH=2pt,%
- DecalV=3pt,%
- Rect=true,%
- Noeud=EEE,%
- CouleurRes=false
-}
-
-\newcommand\ConversionDepuisBaseDix[3][]{%
- \useKVdefault[convfromten]%
- \setKV[convfromten]{#1}%
- \xdef\ValRes{\xintDecToHex{#2}}%
- \xdef\ValA{#2}\xdef\ValB{#3}%
- \xdef\ValTMP{#2}%
- \xdef\ValMU{\inteval{#3-1}}%
- \ensuremath{%
- \left\lbrace\begin{array}{@{\,}r@{\;=\;}l@{\;+\;}r}
- %1ere division
- \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}
- \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\PLnoeud{\PLConvNoeud1}{\num{\ValR}}%
- \xdef\ValTMP{\ValQ}%
- \whiledo {\ValTMP > \ValMU}%
- {%
- \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}%
- \\ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\num{\ValR}
- \xdef\ValTMP{\ValQ}%
- }
- %dernière
- \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}%
- \\ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\PLnoeud{\PLConvNoeud2}{\num{\ValR}}
- \end{array} \right| \Rightarrow \num{#2}_{10}=\ifboolKV[convfromten]{CouleurRes}{\mathcolor{\PLConvCouleur}{\convertbasedixtobase{#2}{#3}_{#3}}}{\convertbasedixtobase{#2}{#3}_{#3}}}%
- \ifboolKV[convfromten]{Rect}%
- {%
- \IfSubStr{\PLConvDecalH}{/}%
- {\StrCut{\PLConvDecalH}{/}{\PLConvDecalHg}{\PLConvDecalHd}}%
- {\def\PLConvDecalHg{\PLConvDecalH}\def\PLConvDecalHd{\PLConvDecalH}}%
- \begin{tikzpicture}
- \draw[overlay,rounded corners=4pt,\PLConvCouleur,thick] ($(\PLConvNoeud1.north west)+(-\PLConvDecalHg,\PLConvDecalV)$) rectangle ($(\PLConvNoeud2.south east)+(\PLConvDecalHd,-\PLConvDecalV)$) ;
- \draw[overlay,rounded corners=4pt,\PLConvCouleur,thick,->,>=latex] ($(\PLConvNoeud2.east)+(\PLConvDecalHd,0)$)--++(0,{0.75\baselineskip}) ;
- \end{tikzpicture}%
- }{}%
-}
-
-%%------ARBRESPROBAS
-\defKV[PLTIKZARBRE]{%
- Unite=\def\PLAPunite{#1},%
- EspaceNiveau=\def\PLAPespniv{#1},%
- EspaceFeuille=\def\PLAPespfeuille{#1},%
- Type=\def\PLAPtype{#1},%
- Police=\def\PLAPfont{#1},%
- PoliceProbas=\def\PLAPfontproba{#1},%
- StyleTrait=\def\PLAPtypetrait{#1},%
- EpaisseurTrait=\def\PLAPeptrait{#1}
-}
-
-\setKVdefault[PLTIKZARBRE]{%
- Unite=1cm,%
- EspaceNiveau=3.25,%
- EspaceFeuille=1,%
- Type=2x2,%
- Police=\normalfont\normalsize,%
- PoliceProbas=\normalfont\small,%
- InclineProbas=true,%
- Fleche=false,%
- StyleTrait={},%
- EpaisseurTrait=semithick
-}
-
-\NewDocumentCommand\ArbreProbasTikz{ O{} m }{%1=options,2=libellés
- \useKVdefault[PLTIKZARBRE]%
- \setKV[PLTIKZARBRE]{#1}%
- \setsepchar[.]{,./}%
- \readlist*\PLARBREDONNES{#2}%
- \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
- %styles
- \tikzstyle{noeud} = [font=\PLAPfont]
- \tikzstyle{probas}= [font=\PLAPfontproba]
- \ifboolKV[PLTIKZARBRE]{InclineProbas}
- {\tikzstyle{PLetiquette}=[pos=0.525,sloped,fill=white]}
- {\tikzstyle{PLetiquette}=[pos=0.525,fill=white]}
- \ifboolKV[PLTIKZARBRE]{Fleche}
- {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
- {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
- %arbre2x2
- \IfEq{\PLAPtype}{2x2}
- {%
- \coordinate (R) at ({0*\PLAPespniv},{-1.5*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \ifstrempty{\PLARBREDONNES[1,2]}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}
- {\draw[PLfleche] (A12)--(A23) ;}
- {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- }{}
- %arbre3x2
- \IfEq{\PLAPtype}{3x2}
- {%
- %sommets
- \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \node[noeud] (A13) at ({1*\PLAPespniv},{-4.5*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
- \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
- \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
- %branches
- \ifstrempty{\PLARBREDONNES[1,2]}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}
- {\draw[PLfleche] (A12)--(A23) ;}
- {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- \ifstrempty{\PLARBREDONNES[7,2]}
- {\draw[PLfleche] (R)--(A13) ;}
- {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
- \ifstrempty{\PLARBREDONNES[8,2]}
- {\draw[PLfleche] (A13)--(A25) ;}
- {\draw[PLfleche] (A13)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
- \ifstrempty{\PLARBREDONNES[9,2]}
- {\draw[PLfleche] (A13)--(A26) ;}
- {\draw[PLfleche] (A13)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
- }{}
- %arbre2x3
- \IfEq{\PLAPtype}{2x3}
- {%
- %sommets
- \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
- \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
- %branches
- \ifstrempty{\PLARBREDONNES[1,2]}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (A11)--(A23) ;}
- {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- \ifstrempty{\PLARBREDONNES[7,2]}
- {\draw[PLfleche] (A12)--(A25) ;}
- {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
- \ifstrempty{\PLARBREDONNES[8,2]}
- {\draw[PLfleche] (A12)--(A26) ;}
- {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
- }{}
- %arbre2x3
- \IfEq{\PLAPtype}{3x3}
- {%
- %sommets
- \coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
- \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
- \node[noeud] (A27) at ({2*\PLAPespniv},{-6*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
- \node[noeud] (A28) at ({2*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[11,1]};
- \node[noeud] (A29) at ({2*\PLAPespniv},{-8*\PLAPespfeuille}) {\PLARBREDONNES[12,1]};
- %branches
- \ifstrempty{\PLARBREDONNES[1,2]}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[9,2]}
- {\draw[PLfleche] (R)--(A13) ;}
- {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
- %N2
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (A11)--(A23) ;}
- {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- \ifstrempty{\PLARBREDONNES[7,2]}
- {\draw[PLfleche] (A12)--(A25) ;}
- {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
- \ifstrempty{\PLARBREDONNES[8,2]}
- {\draw[PLfleche] (A12)--(A26) ;}
- {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
- \ifstrempty{\PLARBREDONNES[10,2]}
- {\draw[PLfleche] (A13)--(A27) ;}
- {\draw[PLfleche] (A13)--(A27) node[probas,PLetiquette,{\PLARBREDONNES[10,3]}] {{\PLARBREDONNES[10,2]}} ;}
- \ifstrempty{\PLARBREDONNES[11,2]}
- {\draw[PLfleche] (A13)--(A28) ;}
- {\draw[PLfleche] (A13)--(A28) node[probas,PLetiquette,{\PLARBREDONNES[11,3]}] {{\PLARBREDONNES[11,2]}} ;}
- \ifstrempty{\PLARBREDONNES[12,2]}
- {\draw[PLfleche] (A13)--(A29) ;}
- {\draw[PLfleche] (A13)--(A29) node[probas,PLetiquette,{\PLARBREDONNES[12,3]}] {{\PLARBREDONNES[12,2]}} ;}
- }{}
- \end{tikzpicture}
-}
-
-\NewDocumentEnvironment{EnvArbreProbasTikz}{ O{} m }%1=options,2=libellés
-{
- \useKVdefault[PLTIKZARBRE]
- \setKV[PLTIKZARBRE]{#1}
- \setsepchar[.]{,./}%
- \readlist*\PLARBREDONNES{#2}
- \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
- %styles
- \tikzstyle{noeud} = [font=\PLAPfont]
- \tikzstyle{probas}= [font=\PLAPfontproba]
- \ifboolKV[PLTIKZARBRE]{InclineProbas}
- {\tikzstyle{PLetiquette}=[pos=0.525,sloped,fill=white]}
- {\tikzstyle{PLetiquette}=[pos=0.525,fill=white]}
- \ifboolKV[PLTIKZARBRE]{Fleche}
- {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
- {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
- %arbre2x2
- \IfEq{\PLAPtype}{2x2}
- {%
- \coordinate (R) at ({0*\PLAPespniv},{-1.5*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \ifstrempty{\PLARBREDONNES[1,2]}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}
- {\draw[PLfleche] (A12)--(A23) ;}
- {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- }{}
- %arbre3x2
- \IfEq{\PLAPtype}{3x2}
- {%
- %sommets
- \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \node[noeud] (A13) at ({1*\PLAPespniv},{-4.5*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
- \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
- \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
- %branches
- \ifstrempty{\PLARBREDONNES[1,2]}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}
- {\draw[PLfleche] (A12)--(A23) ;}
- {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- \ifstrempty{\PLARBREDONNES[7,2]}
- {\draw[PLfleche] (R)--(A13) ;}
- {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
- \ifstrempty{\PLARBREDONNES[8,2]}
- {\draw[PLfleche] (A13)--(A25) ;}
- {\draw[PLfleche] (A13)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
- \ifstrempty{\PLARBREDONNES[9,2]}
- {\draw[PLfleche] (A13)--(A26) ;}
- {\draw[PLfleche] (A13)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
- }{}
- %arbre2x3
- \IfEq{\PLAPtype}{2x3}
- {%
- %sommets
- \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
- \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
- %branches
- \ifstrempty{\PLARBREDONNES[1,2]}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (A11)--(A23) ;}
- {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- \ifstrempty{\PLARBREDONNES[7,2]}
- {\draw[PLfleche] (A12)--(A25) ;}
- {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
- \ifstrempty{\PLARBREDONNES[8,2]}
- {\draw[PLfleche] (A12)--(A26) ;}
- {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
- }{}
- %arbre2x3
- \IfEq{\PLAPtype}{3x3}
- {%
- %sommets
- \coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
- \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
- \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
- \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
- \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
- \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
- \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
- \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
- \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
- \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
- \node[noeud] (A27) at ({2*\PLAPespniv},{-6*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
- \node[noeud] (A28) at ({2*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[11,1]};
- \node[noeud] (A29) at ({2*\PLAPespniv},{-8*\PLAPespfeuille}) {\PLARBREDONNES[12,1]};
- %branches
- \ifstrempty{\PLARBREDONNES[1,2]}{}
- {\draw[PLfleche] (R)--(A11) ;}
- {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
- \ifstrempty{\PLARBREDONNES[5,2]}{}
- {\draw[PLfleche] (R)--(A12) ;}
- {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
- \ifstrempty{\PLARBREDONNES[9,2]}{}
- {\draw[PLfleche] (R)--(A13) ;}
- {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
- %N2
- \ifstrempty{\PLARBREDONNES[2,2]}
- {\draw[PLfleche] (A11)--(A21) ;}
- {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
- \ifstrempty{\PLARBREDONNES[3,2]}
- {\draw[PLfleche] (A11)--(A22) ;}
- {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
- \ifstrempty{\PLARBREDONNES[4,2]}
- {\draw[PLfleche] (A11)--(A23) ;}
- {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
- \ifstrempty{\PLARBREDONNES[6,2]}
- {\draw[PLfleche] (A12)--(A24) ;}
- {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
- \ifstrempty{\PLARBREDONNES[7,2]}
- {\draw[PLfleche] (A12)--(A25) ;}
- {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
- \ifstrempty{\PLARBREDONNES[8,2]}
- {\draw[PLfleche] (A12)--(A26) ;}
- {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
- \ifstrempty{\PLARBREDONNES[10,2]}
- {\draw[PLfleche] (A13)--(A27) ;}
- {\draw[PLfleche] (A13)--(A27) node[probas,PLetiquette,{\PLARBREDONNES[10,3]}] {{\PLARBREDONNES[10,2]}} ;}
- \ifstrempty{\PLARBREDONNES[11,2]}
- {\draw[PLfleche] (A13)--(A28) ;}
- {\draw[PLfleche] (A13)--(A28) node[probas,PLetiquette,{\PLARBREDONNES[11,3]}] {{\PLARBREDONNES[11,2]}} ;}
- \ifstrempty{\PLARBREDONNES[12,2]}
- {\draw[PLfleche] (A13)--(A29) ;}
- {\draw[PLfleche] (A13)--(A29) node[probas,PLetiquette,{\PLARBREDONNES[12,3]}] {{\PLARBREDONNES[12,2]}} ;}
- }{}
- }
- {
- \end{tikzpicture}
-}
-
-%%------SCHEMASPROBAS
-%densites utiles
-\def\densnorm#1{1/(sqrt(2*pi))*exp(-0.5*(#1*#1))}
-\def\densexpo#1{exp(-#1)}
-
-\defKV[GRPHPROBCONTINUES]{%
- CouleurAire=\def\GRPHPROBcoulsurf{#1},%
- CouleurCourbe=\def\GRPHPROBcoulcbe{#1},%
- Largeur=\def\GRPHPROBlarg{#1},%
- Hauteur=\def\GRPHPROBhauteur{#1}
-}
-
-\setKVdefault[GRPHPROBCONTINUES]{%
- CouleurAire=LightGray,%
- CouleurCourbe=red,%
- Largeur=2,%
- Hauteur=1,%
- AfficheM=true,%
- AfficheCadre=true
-}
-
-\NewDocumentCommand\LoiNormaleGraphe{ O{} D<>{} m m m m }{%1=options,2=optionstikz,3=m,4=s,5=a,6=b
- %simplekv
- \useKVdefault[GRPHPROBCONTINUES]%
- \setKV[GRPHPROBCONTINUES]{#1}%
- %unites
- \def\UNITEX{\fpeval{\GRPHPROBlarg/8}}\def\UNITEY{\fpeval{\GRPHPROBhauteur/0.5}}%
- %bornes
- \def\BorneInf{\fpeval{(#5-#3)/#4}}\def\BorneSup{\fpeval{(#6-#3)/#4}}%
- \ifthenelse{\equal{#5}{*}}{\def\BorneInf{-4}}{}%
- \ifthenelse{\equal{#6}{*}}{\def\BorneSup{4}}{}%
- %tikzpicture
- \begin{tikzpicture}[x=\UNITEX cm,y=\UNITEY cm,#2]
- \ifboolKV[GRPHPROBCONTINUES]{AfficheM}%
- {\draw (0,-0.0375) node[font=\tiny,scale={2*\UNITEX}] {#3} ;}
- {}
- \ifboolKV[GRPHPROBCONTINUES]{AfficheCadre}%
- {\draw[Gray] (-4,-0.075) rectangle (4,0.425) ;}
- {}
- \clip (-4,-0.075) rectangle (4,0.425) ;
- \draw[black,semithick,fill=\GRPHPROBcoulsurf] ({\BorneInf},0) -- plot [domain={\BorneInf}:{\BorneSup},samples=100] (\x,{\densnorm{\x}}) -- ({\BorneSup},0) -- cycle;
- \draw[thick,->,>=latex] (-4,0)--(4,0) ;
- \draw[thick,densely dotted] (0,0)--(0,0.39894) ;
- \draw[thick,domain=-4:4,samples=100,\GRPHPROBcoulcbe] plot (\x,{\densnorm{\x}}) ;
- \end{tikzpicture}
-}
-
-\NewDocumentCommand\LoiExpoGraphe{ O{} D<>{} m m m }{%1=options,2=optionstikz,3=l,4=a,5=b
- %simplekv
- \useKVdefault[GRPHPROBCONTINUES]%
- \setKV[GRPHPROBCONTINUES]{#1}%
- %unites
- \def\UNITEX{\fpeval{\GRPHPROBlarg/4}}\def\UNITEY{\fpeval{\GRPHPROBhauteur/1}}%
- \def\MOYENNE{\fpeval{trunc(1/#3,0)}}%
- %bornes
- \def\BorneInf{\fpeval{#3*#4}}\def\BorneSup{\fpeval{#3*#5}}%
- \ifthenelse{\equal{#4}{*}}{\def\BorneInf{0}}{}%
- \ifthenelse{\equal{#5}{*}}{\def\BorneSup{4}}{}%
- %tikzpicture
- \begin{tikzpicture}[x=\UNITEX cm,y=\UNITEY cm,#2]
- \ifboolKV[GRPHPROBCONTINUES]{AfficheCadre}%
- {\draw[Gray] (-0.2,-0.15) rectangle (3.8,0.85) ;}
- {}
- \clip (-0.2,-0.15) rectangle (3.8,0.85) ;
- \draw[black,semithick,fill=\GRPHPROBcoulsurf] ({\BorneInf},0) -- plot [domain={\BorneInf}:{\BorneSup},samples=100] (\x,{0.7*\densexpo{\x}}) -- ({\BorneSup},0) -- cycle;
- \ifboolKV[GRPHPROBCONTINUES]{AfficheM}%
- {\draw (1,-0.075) node[font=\tiny,scale={\UNITEX}] {\MOYENNE} ;
- \draw[thick,densely dotted] (1,0)--(1,{0.7*\densexpo{1}}) ;}
- {}
- \draw[thick,->,>=latex] (-0.2,0)--(3.8,0) ;
- \draw[thick,->,>=latex] (0,-0.15)--(0,0.85) ;
- \draw[thick,domain=0:3.8,samples=100,\GRPHPROBcoulcbe] plot (\x,{0.7*\densexpo{\x}}) ;
- \end{tikzpicture}
-}
-
-%%------TRINOMEALEA
-\setKVdefault[trinomealea]{%
- Alea=false,%
- Anegatif=true
-}
-
-\NewDocumentCommand\EcritureTrinome{ O{} m m m }{%
- \useKVdefault[trinomealea]%
- \setKV[trinomealea]{#1}%
- \ifboolKV[trinomealea]{Alea}%
- {%
- \xdef\Coeffa{\fpeval{randint(#2)}}\xdef\Coeffb{\fpeval{randint(#3)}}\xdef\Coeffc{\fpeval{randint(#4)}}%
- \xdef\AleaSigneA{\fpeval{randint(1,2)}}%
- \ifboolKV[trinomealea]{Anegatif}%
- {\xintifboolexpr{\AleaSigneA == 1}{\def\TriSigneA{}}{\def\TriSigneA{-}}}%
- {\def\TriSigneA{}}%forcément a>0
- }%
- {%
- \xdef\Coeffa{#2}\xdef\Coeffb{#3}\xdef\Coeffc{#4}%
- \def\TriSigneA{}%
- }%
- \def\TriPartieA{\num{\TriSigneA\Coeffa} x^2}%
- \xintifboolexpr{\Coeffa == 1}%
- {\def\TriPartieA{x^2}}{}%
- \xintifboolexpr{\Coeffa == -1}%
- {\def\TriPartieA{-x^2}}{}%
- \def\TriPartieB{\num[print-implicit-plus]{\Coeffb}x}%
- \xintifboolexpr{\Coeffb == 0}%
- {\def\TriPartieB{}}{}%
- \xintifboolexpr{\Coeffb == 1}%
- {\def\TriPartieB{+x}}{}%
- \xintifboolexpr{\Coeffb == -1}%
- {\def\TriPartieB{-x}}{}%
- \xintifboolexpr{\Coeffc == 0}%
- {\def\TriPartieC{}}{\def\TriPartieC{\num[print-implicit-plus]{\Coeffc}}}%
- %formatage
- \ensuremath{\TriPartieA\TriPartieB\TriPartieC}%
-}
-
-
-%%------PRESPGCD
-\DeclareMathOperator{\PLpgcd}{PGCD}
-\defKV[prespgcd]{%
- Couleur=\def\PLPGCDCouleur{#1},%
- DecalRect=\def\PLPGCDDecal{#1},%
- Noeud=\def\PLPGCDNoeud{#1}
-}
-
-\setKVdefault[prespgcd]{%
- Couleur=red,%
- DecalRect=2pt,%
- Rectangle=true,%
- Noeud=FFF,%
- CouleurResultat=false,%
- AfficheConclusion=true,%
- AfficheDelimiteurs=true
-}
-
-\newcommand\PresentationPGCD[3][]{%
- \useKVdefault[prespgcd]%
- \setKV[prespgcd]{#1}%
- \xdef\respgcd{\xinteval{gcd(#2,#3)}}
- \xdef\ValA{#2}\xdef\ValB{#3}%on stocke les valeurs du départ
- \ensuremath{%
- \ifboolKV[prespgcd]{AfficheDelimiteurs}%
- {\left\lbrace}%
- {}%
- \begin{array}{@{\,}r@{\;=\;}l@{\;+\;}r}
- %1ère division
- \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}}
- \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}%
- \xintifboolexpr{\ValR == \respgcd}%
- {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd
- {\num{\ValR}}%
- \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs
- \whiledo {\ValR > 0}%
- {%
- \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}}%
- \\%
- \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}%
- \xintifboolexpr{\ValR == \respgcd}%
- {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd
- {\num{\ValR}}%
- \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs
- }%
- \end{array}%
- \ifboolKV[prespgcd]{AfficheDelimiteurs}%
- {\right|}%
- {}%
- \ifboolKV[prespgcd]{AfficheConclusion}%
- {%
- \Rightarrow \PLpgcd\left(\num{#2};\num{#3}\right)=\ifboolKV[prespgcd]{CouleurResultat}{\mathcolor{\PLPGCDCouleur}{\num{\respgcd}}}{\num{\respgcd}}%
- }%
- {}%
- }%
- \ifboolKV[prespgcd]{Rectangle}%
- {%
- \begin{tikzpicture}
- \draw[overlay,rounded corners=4pt,\PLPGCDCouleur,thick] ($(\PLPGCDNoeud1.north west)+(-\PLPGCDDecal,\PLPGCDDecal)$) rectangle ($(\PLPGCDNoeud1.south east)+(\PLPGCDDecal,-\PLPGCDDecal)$) ;
- \end{tikzpicture}%
- }{}%
-}
-
-%%------TVISOLUTION
-\defKV[dichoto]{%
- NomFct=\def\DHTnomfct{#1},%
- va=\def\DHTva{#1},%
- vb=\def\DHTvb{#1},%
- Precision=\def\DHTprec{#1},%
- NomSol=\def\DHTnomsol{#1},%
- Stretch=\def\DHTstretch{#1}
-}
-
-\setKVdefault[dichoto]{%
- NomFct=f,%
- Precision=2,%
- NomSol=\alpha,%
- Stretch=1.15,%
- Balayage=false,%
- Calculatrice=false,%
- Majuscule=true
-}
-
-\newcommand\SolutionTVI[3][]{%
- \useKVdefault[dichoto]%
- \setKV[dichoto]{#1}%
- \xintdeffloatfunc varfct(x) := #2 ;%
- \ifboolKV[dichoto]{Balayage}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar balayage, on obtient }{}%
- \ifboolKV[dichoto]{Calculatrice}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
- \ensuremath{%
- \left\lbrace \begin{tblr}{stretch=\DHTstretch,colsep=1pt,rll}%
- {\DHTnomfct}{\left( \num{\DHTva} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTva),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTva)-#3}}{0}{> \num{#3}}{< \num{#3}} \: \\ %
- {\DHTnomfct}{\left( \num{\DHTvb} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTvb),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTvb)-#3}}{0}{> \num{#3}}{< \num{#3}} \:%
- \end{tblr}%
- \right|%
- \Rightarrow%
- \num{\DHTva} < \DHTnomsol < \num{\DHTvb}%
- }%
-}
-
-%%------CALCSRECUR
-\NewDocumentCommand\CalculInterneTermeRecurrence{ m m m m }{%pas forcément utile
- \xintdeffloatfunc varfctrecur(x) := #1 ;%
- \xdef\vartmp{#3}%
- \IfEq{#4}{\inteval{#2+1}}%
- {\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
- {%
- \foreach \i in {1,2,...,\inteval{#4-#2}}%
- {\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
- }%
- \xintFloatToDecimal{\vartmp}%
-}
-
-\newcount\CompteurSeuil%
-\NewDocumentCommand\CalculSeuil{ m m m m m }{%N0 / UN0 / fct / sgn / seuil := en interne
- \xintdeffloatfunc varfct(x) := #3 ;%
- \xdef\vartmp{\fpeval{#2}}%
- \CompteurSeuil=#1%
- %symbole de comparaison inversé et boucle
- \IfEq{#4}{>}%
- {%
- \whiledo{\xintLtorEq{\vartmp}{#5} = 1}%
- {%
- \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
- \CompteurSeuil=\numexpr\CompteurSeuil+1%
- }%
- }{}%
- \IfEq{#4}{<}%
- {%
- \whiledo{\xintGtorEq{\vartmp}{#5} = 1}%
- {%
- \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
- \CompteurSeuil=\numexpr\CompteurSeuil+1%
- }%
- }{}%
- \IfEq{#4}{>=}%
- {%
- \whiledo{\xintLt{\vartmp}{#5} = 1}%
- {%
- \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
- \CompteurSeuil=\numexpr\CompteurSeuil+1%
- }%
- }{}%
- \IfEq{#4}{<=}%
- {%
- \whiledo{\xintGt{\vartmp}{#5} = 1}%
- {%
- \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
- \CompteurSeuil=\numexpr\CompteurSeuil+1%
- }%
- }{}%
-}
-
-\defKV[calculsuiterecur]{%
- No=\def\SRninit{#1},%
- UNo=\def\SRuninit{#1},%
- Precision=\def\SRprec{#1},%
- N=\def\SRnfinal{#1}
- %Format=\def\SRformat{#1},%
- %OptionFrac=\def\SRoptfrac{#1}
-}
-
-\setKVdefault[calculsuiterecur]{%
- Precision=3
- %Format=Arrondi,%
- %OptionFrac={}
-}
-
-\NewDocumentCommand\CalculTermeRecurrence{ O{} m }{%attention avec les calculs en exact :-(
- \useKVdefault[calculsuiterecur]%
- \setKV[calculsuiterecur]{#1}%
- \xintdeffloatfunc varfct(x) := #2 ;%
- \xdef\vartmp{\fpeval{\SRuninit}}%
- \IfEq{\SRnfinal}{\inteval{\SRninit+1}}%
- {\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
- {%
- \foreach \i in {1,2,...,\inteval{\SRnfinal-\SRninit}}%
- {\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
- }%
- %\num[minimum-decimal-digits=\SRprec]{\xintfloateval{round(\vartmp,\SRprec)}}%
- \num{\xintfloateval{round(\vartmp,\SRprec)}}%
- %\IfStrEq{\SRformat}{Fraction}{\ConversionFraction[\SRoptfrac]{\xinteval{\vartmp}}}{}%
- %\IfStrEq{\SRformat}{Brut}{\xinteval{\vartmp}}{}%
- %\IfStrEq{\SRformat}{Decimal}{\num{\xintfloateval{\vartmp}}}{}%
- %\IfStrEq{\SRformat}{BrutDecimal}{\xintFloatToDecimal{\vartmp}}{}%
-}
-
-\defKV[suiteseuil]{%
- No=\def\SEUILindiceinit{#1},%
- UNo=\def\SEUILtermeinit{#1},%
- NomSuite=\def\SEUILnomsuite{#1},%
- %SolN=\def\SEUILn{#1},%
- Precision=\def\SEUILprec{#1},%
- Stretch=\def\SEUILstretch{#1},%
- Sens=\def\SEUILsens{#1}
-}
-
-\setKVdefault[suiteseuil]{%
- NomSuite=u,%
- Precision=3,%
- Stretch=1.15,%
- Balayage=false,%
- Calculatrice=false,%
- Majuscule=true,%
- Sens={>},%
- Exact=false,%
- Conclusion=true,%
- Simple=false
-}
-
-\newcommand\SolutionSeuil[3][]{%1=options + %2 = fonction + %3 = seuil
- \useKVdefault[suiteseuil]%
- \setKV[suiteseuil]{#1}%
- %on détermine le seuil, directement et on stocke les bascules !!!
- \CalculSeuil{\SEUILindiceinit}{\SEUILtermeinit}{#2}{\SEUILsens}{#3}%
- \def\SEUILn{\inteval{\the\CompteurSeuil}}%
- \def\SEUILnmu{\inteval{\the\CompteurSeuil-1}}%
- %formatage de la sortie des signes
- \IfEq{\SEUILsens}{>}%
- {\def\SensDeb{\leqslant}\def\SensFin{>}}%
- {}%
- \IfEq{\SEUILsens}{<}%
- {\def\SensDeb{\geqslant}\def\SensFin{<}}%
- {}%
- \IfEq{\SEUILsens}{>=}%
- {\def\SensDeb{<}\def\SensFin{\geqslant}}%
- {}%
- \IfEq{\SEUILsens}{<=}%
- {\def\SensDeb{>}\def\SensFin{\leqslant}}%
- {}%
- %formatage
- \ifboolKV[suiteseuil]{Balayage}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar balayage, on obtient }{}%
- \ifboolKV[suiteseuil]{Calculatrice}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
- \ifboolKV[suiteseuil]{Simple}%
- {%
- \ensuremath{\SEUILnomsuite_{\SEUILnmu} \ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} \SensDeb\num{#3}}%
- \text{~et~}%
- \ensuremath{\SEUILnomsuite_{\SEUILn} \ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} \SensFin\num{#3}}%
- }%
- {%
- \ensuremath{%
- \left\lbrace \begin{tblr}{stretch=\SEUILstretch,colsep=1pt,rll}%
- \SEUILnomsuite_{\SEUILnmu} &\ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} & \SensDeb\num{#3} \: \\ %
- \SEUILnomsuite_{\SEUILn} &\ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} & \SensFin\num{#3} \: %
- \end{tblr}%
- \ifboolKV[suiteseuil]{Conclusion}%
- {\right| \Rightarrow n \geqslant \SEUILn}%
- {\right.}%
- }%
- }%
-}
-
-%%------ALEATOIRES
-\ExplSyntaxOn
-\NewDocumentCommand\TriListeCroiss{m}
-{
- \clist_sort:Nn #1
- {
- \fp_compare:nNnTF {##1} > {##2}
- { \sort_return_swapped: }
- { \sort_return_same: }
- }
-}
-\NewDocumentCommand\TriListeDecroiss{m}
-{
- \clist_sort:Nn #1
- {
- \fp_compare:nNnTF {##1} < {##2}
- { \sort_return_swapped: }
- { \sort_return_same: }
- }
-}
-\ExplSyntaxOff
-
-\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)}}}%
-}
-\newcommand\VarNbAlea[2]{%
- \xdef#1{\fpeval{#2}}%
-}
-
-\defKV[TirageAleatoireEntiersEntre]{%
- ValMin=\def\TAEEmin{#1},%
- ValMax=\def\TAEEmax{#1},%
- NbVal=\def\TAEEnb{#1},%
- Sep=\def\TAEEsep{#1},%
- Tri=\def\TAEEtri{#1}
-}
-
-\setKVdefault[TirageAleatoireEntiersEntre]{%
- ValMin=1,%
- ValMax=50,%
- NbVal=6,%
- Sep={,},%
- Tri=non,%
- Repetition=false
-}
-
-\NewList{TirageEntiersAleatoires}
-\NewDocumentCommand\TirageAleatoireEntiers{ O{} m }{%1=options,2=nomliste triée ou non
- \useKVdefault[TirageAleatoireEntiersEntre]%
- \setKV[TirageAleatoireEntiersEntre]{#1}%
- \ifboolKV[TirageAleatoireEntiersEntre]{Repetition}%suivant la possibilité de répéter
- {%répétitions autorisées
- %création de la liste (le 1er puis les autres)
- \xdef#2{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
- \foreach \i in {2,3,...,\TAEEnb}%
- {\xdef#2{#2,\fpeval{randint(\TAEEmin,\TAEEmax)}}}%
- }%
- {%pas de répétitions
- %melange des nombres
- \ClearList{TirageEntiersAleatoires}%on vide la liste aléatoire
- \xintFor* ##1 in {\xintSeq{\TAEEmin}{\TAEEmax}}%
- \do{\InsertRandomItem{TirageEntiersAleatoires}{##1}}%
- %création de la liste (le 1er puis les autres)
- \xdef#2{\TirageEntiersAleatoires[0]}%
- \foreach \i in {1,2,...,{\inteval{\TAEEnb-1}}}%
- {\xdef#2{#2,\TirageEntiersAleatoires[\i]}}%
- }%
- %on trie si besoin
- \IfStrEq{\TAEEtri}{croissant}%si tri croissant
- {\TriListeCroiss{#2}}%
- {}%
- \IfStrEq{\TAEEtri}{decroissant}%si tri décroissant
- {\TriListeDecroiss{#2}}%
- {}%
- \StrSubstitute{#2}{,}{\TAEEsep}[#2]%on change le séparateur si besoin
-}
-
-%%------SIMPLIFRACINES
-\DeclareDocumentCommand\SimplificationRacine{ m }{% argument mandataire {calcul ou fraction}
- \xdef\calculargument{\xintIrr{\xinteval{#1}}}%
- \IfEndWith{\calculargument}{/1}%
- {%si c'est un entier !
- \xdef\calculargument{\xintiieval{#1}}%
- \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\calculargument)}}}%
- \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
- \xintifboolexpr{ \xintiiRem{\calculargument}{\xintiieval{##1*##1}} == 0}%si le carré divise
- {\xdef\ExtractRacID{##1}}%
- {}%
- }%
- \xdef\ExtracReste{\xintiieval{\calculargument/(\ExtractRacID*\ExtractRacID)}}%
- \ensuremath{\xintifboolexpr{\ExtractRacID == 1 && \ExtracReste == 1}%
- {1}%
- { \xintifboolexpr{\ExtractRacID == 1}{}{\num{\xintiieval{\ExtractRacID}}}%
- \xintifboolexpr{\ExtracReste == 1}{}{\sqrt{\num{\ExtracReste}}} }}%
-% }%
- }%
- {%on va mettre sous forme a\sqrt(d)/b := buggue avec des millièmes...
- \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
- \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
- \xdef\ExtractRacNNum{\xintiieval{\numerateur*\denominateur}}%
- \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\ExtractRacNNum)}}}%
- \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
- \xintifboolexpr{ \xintiiRem{\ExtractRacNNum}{\xintiieval{##1*##1}} == 0}%si le carré divise
- {\xdef\ExtractRacID{##1}}%
- {}
- }%
- \xdef\ExtractRacGCD{\xintiiGCD{\ExtractRacID}{\denominateur}}%
- \xdef\RacNumSimpl{\xintiieval{\ExtractRacID/\ExtractRacGCD}}%simpl num
- \xdef\RacDenomSimpl{\xintiieval{\denominateur/\ExtractRacGCD}}%
- \xdef\RacRacSimpl{\xintiieval{\ExtractRacNNum/(\ExtractRacID*\ExtractRacID)}}%
- \ensuremath{\frac{%
- \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
- {1}%
- { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\RacRacSimpl}} }%
- }%
- { \RacDenomSimpl }}%
- }%
-}
-
-%%------MESUREPPALE
-\setKVdefault[MesurePpale]{%
- Crochets=false,
- d=false
-}
-
-\newcommand{\MesurePrincipale}[2][]{%fraction sous la forme a/b ou entier :-)
- \useKVdefault[MesurePpale]%
- \setKV[MesurePpale]{#1}%
- \StrDel{#2}{pi}[\MPargument]%
- %on conserve les données initiales
- \IfSubStr{\MPargument}{/}%on coupe numérateur/dénominateur
- { \StrCut{\MPargument}{/}\MPnumerateurinit\MPdenominateurinit }%
- { \xdef\MPnumerateurinit{\MPargument}\xdef\MPdenominateurinit{1} }%
- %on affiche le début, avant simplification
- \ifboolKV[MesurePpale]{d}%
- {\displaystyle}%
- {}%
- \xintifboolexpr{\MPdenominateurinit == 1}%
- { \num{\MPnumerateurinit}\pi = }%
- { \frac{\num{\MPnumerateurinit}\pi}{\num{\MPdenominateurinit}}= }%
- %on simplifie puis on réduit
- \xdef\MPsimpl{\xintPRaw{\xintIrr{\MPargument}}}%
- %test si l'argument est une fraction ou un entier
- \IfSubStr{\MPsimpl}{/}%
- { \StrCut{\MPsimpl}{/}\MPnumerateur\MPdenominateur }%
- { \xdef\MPnumerateur{\MPsimpl}\xdef\MPdenominateur{1} }%
- %calculs
- \xdef\MPtour{\inteval{2*\MPdenominateur}}%
- \xdef\MPreste{\xintiiRem{\MPnumerateur}{\MPtour}}%reste
- \xintifboolexpr{\MPreste>\MPdenominateur}%
- {\xdef\MPreste{\inteval{\MPreste-\MPtour}}}{}%
- \xintifboolexpr{\MPreste<-\MPdenominateur}%
- {\xdef\MPreste{\inteval{\MPreste+\MPtour}}}{}%
- %sortie suivant fraction ou non...
- \xintifboolexpr{\MPdenominateur == 1}%
- {%entier
- \xintifboolexpr{\MPreste == 1}{\pi \: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)} }{}%
- \xintifboolexpr{\MPreste == 0}{0 \: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)} }{}%
- \xintifboolexpr{\MPreste != 0 && \MPreste != 1}{\MPreste\pi \: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)} }{}%
- }%
- {%fraction
- \frac{%
- \xintifboolexpr{\xinteval{\MPreste == 1}}{}{}%
- \xintifboolexpr{\xinteval{\MPreste == -1}}{-}{}%
- \xintifboolexpr{\xinteval{abs(\MPreste) != 1}}{\num{\MPreste}}{}%
- \pi}{\num{\MPdenominateur}} \: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)}%
- }%
-}
-
-%%------DICHOTOMIE
-\defKV[SolDichoto]{%
- Precision=\xdef\DICHOTOstep{#1},%
- Intervalle=\xdef\DICHOTOinterv{#1},%
- Variable=\xdef\DICHOTOvar{#1}
-}
-
-\setKVdefault[SolDichoto]{%
- Precision=2,%
- Variable=x,%
- Intervalle={0:10}
-}
-
-\NewDocumentCommand\ResolutionApprochee{ O{} m O{masolution} }{%1=options,2=equation,3=macro
- \useKVdefault[SolDichoto]%
- %extraction fonction + valeur
- \setKV[SolDichoto]{#1}%
- \IfSubStr{#2}{=}%on coupe mmb gauche / mmb droit
- {\StrCut{#2}{=}{\SolDiFCT}{\SolDiVal}}%
- {\xdef\SolDiFCT{#2}\xdef\SolDiVal{0}}%
- %création des variables temporaires
- \xintdeffloatfunc dichotovarfct(\DICHOTOvar) := \SolDiFCT ;%
- \StrCut{\DICHOTOinterv}{:}{\varvala}{\varvalb}%
- \xdef\varstep{\fpeval{10**(-\DICHOTOstep-1)}}%un chiffre en plus :-)
- %boucles
- \whiledo{\xintGt{\xintfloateval{\varvalb-\varvala-\varstep}}{0} = 1}%
- {%
- \xdef\varvalm{\xintfloateval{(\varvala+\varvalb)*0.5}}%
- \xintifboolexpr{\xintGt{\xintfloateval{(dichotovarfct(\varvala)-\SolDiVal)*(dichotovarfct(\varvalm)-\SolDiVal)}}{0}==1}%
- {\xdef\varvala{\fpeval{\varvalm}}}%
- {\xdef\varvalb{\fpeval{\varvalm}}}%
- }%
- \xdef\varvalm{\xintfloateval{(\varvala+\varvalb)*0.5}}%
- \xdef\vartmpmd{\fpeval{floor(\varvalm,\DICHOTOstep)}}%
- \xdef\vartmpme{\fpeval{\vartmpmd+10**(-\DICHOTOstep)}}%
- %les variables créées
- \expandafter\def\csname#3d\endcsname{\fpeval{\vartmpmd}}%
- \expandafter\def\csname#3e\endcsname{\fpeval{\vartmpme}}%
- %valeur approchée
- \expandafter\def\csname#3a\endcsname{\fpeval{round(\varvalm,\DICHOTOstep)}}%
-}
-
-%%------aNp/Cnp
-\NewDocumentCommand\CalculAnp{ m m }{%avec et pour xint, p/n
- pfactorial(#2-#1,#2)
-}
-
-\NewDocumentCommand\CalculCnp{ m m }{%avec et pour xint, p/n
- binomial(#2,#1)
-}
-
-\setKVdefault[anpCnp]{%
- Formule=false,%
- Notation=false,%
- NotationAncien=false
-}
-\NewDocumentCommand\Arrangement{ s O{} m m }{%p/n
- \useKVdefault[anpCnp]%
- \setKV[anpCnp]{#2}%
- \ifboolKV[anpCnp]{Notation}{A_{#4}^{#3}=}{}%
- \ifboolKV[anpCnp]{Formule}{\frac{#4!}{\inteval{#4-#3}!}=}{}%
- \IfBooleanTF{#1}%
- {\xinteval{\CalculAnp{#3}{#4}}}%non formaté
- {\num{\xinteval{\CalculAnp{#3}{#4}}}}%formaté
-}
-\NewDocumentCommand\Combinaison{ s O{} m m }{%p/n
- \useKVdefault[anpCnp]%
- \setKV[anpCnp]{#2}%
- \ifboolKV[anpCnp]{Notation}{\binom{#4}{#3} =}{}%
- \ifboolKV[anpCnp]{NotationAncien}{C_{#4}^{#3}=}{}%
- \ifboolKV[anpCnp]{Formule}{\frac{#4!}{#3! \times \inteval{#4-#3}!}=}{}%
- \IfBooleanTF{#1}%
- {\xinteval{\CalculCnp{#3}{#4}}}%non formaté
- {\num{\xinteval{\CalculCnp{#3}{#4}}}}%formaté
-}
+%%------Trigo
+\input{proflycee-tools-trigo.tex}
+%%------Probas
+\input{proflycee-tools-probas.tex}
+%%------Stats
+\input{proflycee-tools-stats.tex}
+%%------Arithm
+\input{proflycee-tools-arithm.tex}
+%%------Graphiques
+\input{proflycee-tools-graphiques.tex}
+%%------Analyse
+\input{proflycee-tools-analyse.tex}
+%%------Aléatoire
+\input{proflycee-tools-aleatoire.tex}
+%%------Suites
+\input{proflycee-tools-suites.tex}
+%%------Géométrie
+\input{proflycee-tools-geom.tex}
+%%------Récréations diverses
+\input{proflycee-tools-recreat.tex}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex
new file mode 100644
index 0000000000..943a28d0fb
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex
@@ -0,0 +1,149 @@
+% proflycee-tools-aleatoire.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------EnsembleList
+\defKV[kvensemble]{%
+ Sep=\def\PLenssep{#1},%
+ Option=\def\PLensopt{#1}
+}
+
+\setKVdefault[kvensemble]{%
+ Sep={;},%
+ Mathpunct=true,%
+ Option={}
+}
+
+\newcommand\EcritureEnsemble[2][]{%
+ \useKVdefault[kvensemble]%
+ \setKV[kvensemble]{#1}%
+ \ifboolKV[kvensemble]{Mathpunct}%
+ {\left\lbrace \PLensopt{} \mathpunct{} \StrSubstitute{#2}{/}{\mathpunct{}{\PLenssep}\mathpunct{}} \mathpunct{} \right\rbrace}%
+ {\left\lbrace \PLensopt{} \StrSubstitute{#2}{/}{{\PLenssep}} \right\rbrace}
+}
+
+%%------TRINOMEALEA
+\setKVdefault[trinomealea]{%
+ Alea=false,%
+ Anegatif=true
+}
+
+\NewDocumentCommand\EcritureTrinome{ O{} m m m }{%
+ \useKVdefault[trinomealea]%
+ \setKV[trinomealea]{#1}%
+ \ifboolKV[trinomealea]{Alea}%
+ {%
+ \xdef\Coeffa{\fpeval{randint(#2)}}\xdef\Coeffb{\fpeval{randint(#3)}}\xdef\Coeffc{\fpeval{randint(#4)}}%
+ \xdef\AleaSigneA{\fpeval{randint(1,2)}}%
+ \ifboolKV[trinomealea]{Anegatif}%
+ {\xintifboolexpr{\AleaSigneA == 1}{\def\TriSigneA{}}{\def\TriSigneA{-}}}%
+ {\def\TriSigneA{}}%forcément a>0
+ }%
+ {%
+ \xdef\Coeffa{#2}\xdef\Coeffb{#3}\xdef\Coeffc{#4}%
+ \def\TriSigneA{}%
+ }%
+ \def\TriPartieA{\num{\TriSigneA\Coeffa} x^2}%
+ \xintifboolexpr{\Coeffa == 1}%
+ {\def\TriPartieA{x^2}}{}%
+ \xintifboolexpr{\Coeffa == -1}%
+ {\def\TriPartieA{-x^2}}{}%
+ \def\TriPartieB{\num[print-implicit-plus]{\Coeffb}x}%
+ \xintifboolexpr{\Coeffb == 0}%
+ {\def\TriPartieB{}}{}%
+ \xintifboolexpr{\Coeffb == 1}%
+ {\def\TriPartieB{+x}}{}%
+ \xintifboolexpr{\Coeffb == -1}%
+ {\def\TriPartieB{-x}}{}%
+ \xintifboolexpr{\Coeffc == 0}%
+ {\def\TriPartieC{}}{\def\TriPartieC{\num[print-implicit-plus]{\Coeffc}}}%
+ %formatage
+ \ensuremath{\TriPartieA\TriPartieB\TriPartieC}%
+}
+
+%%------ALEATOIRES
+\ExplSyntaxOn
+\NewDocumentCommand\TriListeCroiss{m}
+{
+ \clist_sort:Nn #1
+ {
+ \fp_compare:nNnTF {##1} > {##2}
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+}
+\NewDocumentCommand\TriListeDecroiss{m}
+{
+ \clist_sort:Nn #1
+ {
+ \fp_compare:nNnTF {##1} < {##2}
+ { \sort_return_swapped: }
+ { \sort_return_same: }
+ }
+}
+\ExplSyntaxOff
+
+\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)}}}%
+}
+\newcommand\VarNbAlea[2]{%
+ \xdef#1{\fpeval{#2}}%
+}
+
+\defKV[TirageAleatoireEntiersEntre]{%
+ ValMin=\def\TAEEmin{#1},%
+ ValMax=\def\TAEEmax{#1},%
+ NbVal=\def\TAEEnb{#1},%
+ Sep=\def\TAEEsep{#1},%
+ Tri=\def\TAEEtri{#1}
+}
+
+\setKVdefault[TirageAleatoireEntiersEntre]{%
+ ValMin=1,%
+ ValMax=50,%
+ NbVal=6,%
+ Sep={,},%
+ Tri=non,%
+ Repetition=false
+}
+
+\NewList{TirageEntiersAleatoires}
+\NewDocumentCommand\TirageAleatoireEntiers{ O{} m }{%1=options,2=nomliste triée ou non
+ \useKVdefault[TirageAleatoireEntiersEntre]%
+ \setKV[TirageAleatoireEntiersEntre]{#1}%
+ \ifboolKV[TirageAleatoireEntiersEntre]{Repetition}%suivant la possibilité de répéter
+ {%répétitions autorisées
+ %création de la liste (le 1er puis les autres)
+ \xdef#2{\fpeval{randint(\TAEEmin,\TAEEmax)}}%
+ \foreach \i in {2,3,...,\TAEEnb}%
+ {\xdef#2{#2,\fpeval{randint(\TAEEmin,\TAEEmax)}}}%
+ }%
+ {%pas de répétitions
+ %melange des nombres
+ \ClearList{TirageEntiersAleatoires}%on vide la liste aléatoire
+ \xintFor* ##1 in {\xintSeq{\TAEEmin}{\TAEEmax}}%
+ \do{\InsertRandomItem{TirageEntiersAleatoires}{##1}}%
+ %création de la liste (le 1er puis les autres)
+ \xdef#2{\TirageEntiersAleatoires[0]}%
+ \foreach \i in {1,2,...,{\inteval{\TAEEnb-1}}}%
+ {\xdef#2{#2,\TirageEntiersAleatoires[\i]}}%
+ }%
+ %on trie si besoin
+ \IfStrEq{\TAEEtri}{croissant}%si tri croissant
+ {\TriListeCroiss{#2}}%
+ {}%
+ \IfStrEq{\TAEEtri}{decroissant}%si tri décroissant
+ {\TriListeDecroiss{#2}}%
+ {}%
+ \StrSubstitute{#2}{,}{\TAEEsep}[#2]%on change le séparateur si besoin
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
new file mode 100644
index 0000000000..921a053556
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
@@ -0,0 +1,386 @@
+% proflycee-tools-analyse.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------SimplFrac nouvelle version
+\NewDocumentCommand\ConversionFraction{ s O{} m }{%
+ %*=moins sur le numérateur
+ %2=argument.optionnel[d/t/dec=...]
+ %3=argument mandataire {calcul ou fraction}
+ \def\calculargument{\xintPRaw{\xintIrr{\xinteval{#3}}}}%on calcule et on transforme en A/B
+ \IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît
+ {%si oui := fraction
+ \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+ \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+ \ifblank{#2}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{d}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\dfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\dfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{t}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\tfrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{n}%
+ {%
+ %\IfBooleanTF{#1}%
+ {\ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ %{%
+ % \ifthenelse{\numerateur < 0}%
+ % {\ensuremath{-\nicefrac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ % {\ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ %}%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfSubStr{#2}{dec}%on veut la forme décimale
+ {%
+ \IfSubStr{#2}{=}%si on rajoute une précision
+ {%
+ \StrBehind{#2}{=}[\precdecimal]%
+ \ensuremath{\num{\xintfloateval{round(#3,\precdecimal)}}}%
+ }%
+ {%
+ \ensuremath{\num{\xintfloateval{#3}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ }{%si non := entier
+ \num{\calculargument}%on affiche l'entier, avec le package siunitx
+ }%
+}
+
+%%------AideTds
+\defKV[aidetds]{%
+ Code=\def\tdsparam{#1},%
+ Couleur=\def\tdscouleur{#1},%
+ Racines=\def\tdsracine{#1},%
+ Largeur=\def\tdslarg{#1},%
+ Hauteur=\def\tdshaut{#1}
+}
+
+\setKVdefault[aidetds]{%
+ Code=da+,
+ Couleur=red,%
+ Largeur=2,%
+ Hauteur=1,%
+ Cadre=true,%
+ Racines=2
+}
+
+\NewDocumentCommand\schematdsaff{ s m m m m }{%pour les droites (interne)
+ % * = étoilée -> a négatif
+ % #2 = couleur
+ % #3 = largeur
+ % #4 = hauteur
+ % #5 = racine
+ \IfBooleanTF{#1}%si étoile := droite qui descend
+ {%
+ \def\possgnavant{above right}\def\possgnapres{below left}\def\sgnavant{\strut+}\def\sgnapres{\strut-}%
+ \draw[thick,#2] ({-0.5*#3},{0.5*#4})--({0.5*#3},{-0.5*#4});
+ }
+ {%
+ \def\possgnavant{below right}\def\possgnapres{above left}\def\sgnavant{\strut-}\def\sgnapres{\strut+}%
+ \draw[thick,#2] ({-0.5*#3},{-0.5*#4})--({0.5*#3},{0.5*#4});
+ }
+ \draw[#2] ({-0.5*#3},0) node[inner sep=0pt,\possgnavant=1pt,font=\scriptsize] {\textcircled{$\sgnavant$}};
+ \draw[#2] ({0.5*#3},0) node[inner sep=0pt,\possgnapres=1pt,font=\scriptsize] {\textcircled{$\sgnapres$}};
+ \draw[#2] (0,0) node[inner sep=0pt,above=3pt,font=\scriptsize] {$\strut#5$} ;
+ \filldraw[#2] (0,0) circle[radius=2pt] ;
+}
+
+\NewDocumentCommand\schematdsparab{ m m m m m o }{%pour les paraboles (interne)
+ % #1 = signe de a (1 ou -1) ?
+ % #2 = couleur
+ % #3 = largeur
+ % #4 = hauteur
+ % #5 = nb racine
+ % #6 = liste racines (option)
+ \xintifboolexpr{ #1 > 0 'and' #5 == 2 } %a>0 et delta>0
+ {%
+ \saveexpandmode\expandarg
+ \StrCut{#6}{/}{\xun}{\xdeux}
+ \restoreexpandmode
+ \draw[thick,#2] ({-0.375*#3},{0.5*#4}) parabola bend (0,{-0.5*#4}) ({0.375*#3},{0.5*#4}) ;
+ \draw[#2] ({-0.5*#3},0) node[above right=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
+ \draw[#2] ({0.5*#3},0) node[above left=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
+ \draw[#2] (0,0) node[below=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
+ \filldraw[#2] ({0.2625*#3},0) circle[radius=2pt] node[below right=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xdeux$};
+ \filldraw[#2] ({-0.2625*#3},0) circle[radius=2pt] node[below left=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xun$};%
+ }
+ {}
+ \xintifboolexpr{ #1 < 0 'and' #5 == 2 } %a<0 et delta>0
+ {%
+ \saveexpandmode\expandarg
+ \StrCut{#6}{/}{\xun}{\xdeux}
+ \restoreexpandmode
+ \draw[thick,#2] ({-0.375*#3},{-0.5*#4}) parabola bend (0,{0.5*#4}) ({0.375*#3},{-0.5*#4}) ;
+ \draw[#2] ({-0.5*#3},0) node[below right=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
+ \draw[#2] ({0.5*#3},0) node[below left=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
+ \draw[#2] (0,0) node[above=1pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
+ \filldraw[#2] ({0.2625*#3},0) circle[radius=2pt] node[above right=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xdeux$};
+ \filldraw[#2] ({-0.2625*#3},0) circle[radius=2pt] node[above left=1pt,inner sep=0pt,font=\scriptsize] {$\strut\xun$};%
+ }
+ {}
+ \xintifboolexpr{ #1 > 0 'and' #5 == 1 } %a>0 et delta=0
+ {%
+ \draw[thick,#2] ({-0.375*#3},{0.5*#4}) parabola bend (0,0) ({0.375*#3},{0.5*#4}) ;
+ \filldraw[#2] (0,0) circle[radius=2pt] node[below=3pt,inner sep=1pt,font=\scriptsize] {$#6$};
+ \draw[#2] (0,0) node[above=3pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
+ }
+ {}
+ \xintifboolexpr{ #1 < 0 'and' #5 == 1 } %a>0 et delta=0
+ {%
+ \draw[thick,#2] ({-0.375*#3},{-0.5*#4}) parabola bend (0,0) ({0.375*#3},{-0.5*#4}) ;
+ \filldraw[#2] (0,0) circle[radius=2pt] node[above=3pt,inner sep=0pt,font=\scriptsize] {$#6$};
+ \draw[#2] (0,0) node[below=3pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
+ }
+ {}
+ \xintifboolexpr{ #1 > 0 'and' #5 == 0 } %a>0 et delta<0
+ {%
+ \draw[thick,#2] ({-0.375*#3},{0.5*#4}) parabola bend (0,{0.075*#4}) ({0.375*#3},{0.5*#4}) ;
+ \draw[#2] (0,{0.075*#4}) node[above=2pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut+$}};
+ }
+ {}
+ \xintifboolexpr{ #1 < 0 'and' #5 == 0 } %a>0 et delta<0
+ {%
+ \draw[thick,#2] ({-0.375*#3},{-0.5*#4}) parabola bend (0,{-0.075*#4}) ({0.375*#3},{-0.5*#4}) ;
+ \draw[#2] (0,{-0.075*#4}) node[below=2pt,inner sep=0pt,font=\scriptsize] {\textcircled{$\strut-$}};
+ }
+ {}
+}
+
+\NewDocumentCommand\MiniSchemaSignes{ s O{} D<>{} }{%
+ \useKVdefault[aidetds]
+ \setKV[aidetds]{#2}
+ %simplification des codes
+ \IfEq{\tdsparam}{da+}{\def\xcode{1}}{}
+ \IfEq{\tdsparam}{da-}{\def\xcode{-1}}{}
+ \IfEq{\tdsparam}{pa+d+}{\def\xcode{12}}{}
+ \IfEq{\tdsparam}{pa-d+}{\def\xcode{-12}}{}
+ \IfEq{\tdsparam}{pa+d0}{\def\xcode{11}}{}
+ \IfEq{\tdsparam}{pa-d0}{\def\xcode{-11}}{}
+ \IfEq{\tdsparam}{pa+d-}{\def\xcode{10}}{}
+ \IfEq{\tdsparam}{pa-d-}{\def\xcode{-10}}{}
+ %si commande étoilée := commande autonome
+ \IfBooleanTF{#1}%
+ {\begin{tikzpicture}[#3]}{}%
+ %cadre si booléen true
+ \ifboolKV[aidetds]{Cadre}
+ {\draw[lightgray] ({-0.5*\tdslarg},{-0.5*\tdshaut}) rectangle ({0.55*\tdslarg},{0.5*\tdshaut}) ;}
+ {}
+ %restriction de la petite fenêtre
+ \clip ({-0.5*\tdslarg},{-0.5*\tdshaut}) rectangle ({0.55*\tdslarg},{0.5*\tdshaut}) ;
+ %axe (Ox)
+ \draw[thick,->] ({-0.5*\tdslarg},0)--({0.55*\tdslarg},0);
+ %1er degré a+ code = 1
+ \ifnum\xcode=1
+ \schematdsaff{\tdscouleur}{\tdslarg}{\tdshaut}{\tdsracine}
+ \fi
+ %1er degré a- code = -1
+ \ifnum\xcode=-1
+ \schematdsaff*{\tdscouleur}{\tdslarg}{\tdshaut}{\tdsracine}
+ \fi
+ %2d degré a+delta+ code = 12
+ \ifnum\xcode=12
+ \schematdsparab{1}{\tdscouleur}{\tdslarg}{\tdshaut}{2}[\tdsracine]
+ \fi
+ %2d degré a-delta+ code = -12
+ \ifnum\xcode=-12
+ \schematdsparab{-1}{\tdscouleur}{\tdslarg}{\tdshaut}{2}[\tdsracine]
+ \fi
+ %2d degré a+delta0 code = 11
+ \ifnum\xcode=11
+ \schematdsparab{1}{\tdscouleur}{\tdslarg}{\tdshaut}{1}[\tdsracine]
+ \fi
+ %2d degré a-delta0 code = -11
+ \ifnum\xcode=-11
+ \schematdsparab{-1}{\tdscouleur}{\tdslarg}{\tdshaut}{1}[\tdsracine]
+ \fi
+ %2d degré a+delta- code = 10
+ \ifnum\xcode=10
+ \schematdsparab{1}{\tdscouleur}{\tdslarg}{\tdshaut}{0}
+ \fi
+ %2d degré a-delta- code = -10
+ \ifnum\xcode=-10
+ \schematdsparab{-1}{\tdscouleur}{\tdslarg}{\tdshaut}{0}
+ \fi
+ \IfBooleanTF{#1}%
+ {\end{tikzpicture}}{}%
+}
+
+%pour l'interaction avec tkz-tab
+\defKV[aidetdstkz]{%
+ Echelle=\def\tdstkzscale{#1},%
+ Decal=\def\tdstkzoffset{#1}
+}
+
+\setKVdefault[aidetdstkz]{%
+ Echelle=1,%
+ Decal=1.25
+}
+
+\NewDocumentCommand\MiniSchemaSignesTkzTab{ o m O{0.85} O{1.5} }{%
+ %#1 = codeaidetikz
+ %#2 = numligne
+ %#3 = échelle
+ %#4 = décalage
+ %\shorthandoff{:}\shorthandoff{!} %bizzzzzzzzare
+ %\NoAutoSpacing
+ \coordinate (ZZZ) at ($(T2#2)!.5!(T2\the\numexpr#2+1\relax)$) ;
+ %\shorthandon{:}\shorthandon{!}
+ \path (ZZZ.east) + (#4,0) pic[right,scale=#3,every node/.style={scale=#3}] {code={\MiniSchemaSignes[#1]}} ;
+}
+
+%%------TVISOLUTION
+\defKV[dichoto]{%
+ NomFct=\def\DHTnomfct{#1},%
+ va=\def\DHTva{#1},%
+ vb=\def\DHTvb{#1},%
+ Precision=\def\DHTprec{#1},%
+ NomSol=\def\DHTnomsol{#1},%
+ Stretch=\def\DHTstretch{#1}
+}
+
+\setKVdefault[dichoto]{%
+ NomFct=f,%
+ Precision=2,%
+ NomSol=\alpha,%
+ Stretch=1.15,%
+ Balayage=false,%
+ Calculatrice=false,%
+ Majuscule=true
+}
+
+\newcommand\SolutionTVI[3][]{%
+ \useKVdefault[dichoto]%
+ \setKV[dichoto]{#1}%
+ \xintdeffloatfunc varfct(x) := #2 ;%
+ \ifboolKV[dichoto]{Balayage}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar balayage, on obtient }{}%
+ \ifboolKV[dichoto]{Calculatrice}{\ifboolKV[dichoto]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
+ \ensuremath{%
+ \left\lbrace \begin{tblr}{stretch=\DHTstretch,colsep=1pt,rll}%
+ {\DHTnomfct}{\left( \num{\DHTva} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTva),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTva)-#3}}{0}{> \num{#3}}{< \num{#3}} \: \\ %
+ {\DHTnomfct}{\left( \num{\DHTvb} \right)} &\approx \num[minimum-decimal-digits=\DHTprec]{\xintFloatToDecimal{\xintfloateval{round(varfct(\DHTvb),\DHTprec)}}} & \xintifGt{\xintfloateval{varfct(\DHTvb)-#3}}{0}{> \num{#3}}{< \num{#3}} \:%
+ \end{tblr}%
+ \right|%
+ \Rightarrow%
+ \num{\DHTva} < \DHTnomsol < \num{\DHTvb}%
+ }%
+}
+
+%%------SIMPLIFRACINES
+\DeclareDocumentCommand\SimplificationRacine{ m }{% argument mandataire {calcul ou fraction}
+ \xdef\calculargument{\xintIrr{\xinteval{#1}}}%
+ \IfEndWith{\calculargument}{/1}%
+ {%si c'est un entier !
+ \xdef\calculargument{\xintiieval{#1}}%
+ \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\calculargument)}}}%
+ \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+ \xintifboolexpr{ \xintiiRem{\calculargument}{\xintiieval{##1*##1}} == 0}%si le carré divise
+ {\xdef\ExtractRacID{##1}}%
+ {}%
+ }%
+ \xdef\ExtracReste{\xintiieval{\calculargument/(\ExtractRacID*\ExtractRacID)}}%
+ \ensuremath{\xintifboolexpr{\ExtractRacID == 1 && \ExtracReste == 1}%
+ {1}%
+ { \xintifboolexpr{\ExtractRacID == 1}{}{\num{\xintiieval{\ExtractRacID}}}%
+ \xintifboolexpr{\ExtracReste == 1}{}{\sqrt{\num{\ExtracReste}}} }}%
+% }%
+ }%
+ {%on va mettre sous forme a\sqrt(d)/b := buggue avec des millièmes...
+ \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+ \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+ \xdef\ExtractRacNNum{\xintiieval{\numerateur*\denominateur}}%
+ \xdef\ExtractRacStop{\xintiFloor{\xintfloateval{sqrt(\ExtractRacNNum)}}}%
+ \xintFor* ##1 in {\xintSeq{1}{\ExtractRacStop}}\do{%
+ \xintifboolexpr{ \xintiiRem{\ExtractRacNNum}{\xintiieval{##1*##1}} == 0}%si le carré divise
+ {\xdef\ExtractRacID{##1}}%
+ {}
+ }%
+ \xdef\ExtractRacGCD{\xintiiGCD{\ExtractRacID}{\denominateur}}%
+ \xdef\RacNumSimpl{\xintiieval{\ExtractRacID/\ExtractRacGCD}}%simpl num
+ \xdef\RacDenomSimpl{\xintiieval{\denominateur/\ExtractRacGCD}}%
+ \xdef\RacRacSimpl{\xintiieval{\ExtractRacNNum/(\ExtractRacID*\ExtractRacID)}}%
+ \ensuremath{\frac{%
+ \xintifboolexpr{\RacNumSimpl == 1 && \RacRacSimpl == 1}%
+ {1}%
+ { \xintifboolexpr{\RacNumSimpl == 1}{}{\RacNumSimpl} \xintifboolexpr{\RacRacSimpl == 1}{}{\sqrt{\RacRacSimpl}} }%
+ }%
+ { \RacDenomSimpl }}%
+ }%
+}
+
+%%------DICHOTOMIE
+\defKV[SolDichoto]{%
+ Precision=\xdef\DICHOTOstep{#1},%
+ Intervalle=\xdef\DICHOTOinterv{#1},%
+ Variable=\xdef\DICHOTOvar{#1}
+}
+
+\setKVdefault[SolDichoto]{%
+ Precision=2,%
+ Variable=x,%
+ Intervalle={0:10}
+}
+
+\NewDocumentCommand\ResolutionApprochee{ O{} m O{masolution} }{%1=options,2=equation,3=macro
+ \useKVdefault[SolDichoto]%
+ %extraction fonction + valeur
+ \setKV[SolDichoto]{#1}%
+ \IfSubStr{#2}{=}%on coupe mmb gauche / mmb droit
+ {\StrCut{#2}{=}{\SolDiFCT}{\SolDiVal}}%
+ {\xdef\SolDiFCT{#2}\xdef\SolDiVal{0}}%
+ %création des variables temporaires
+ \xintdeffloatfunc dichotovarfct(\DICHOTOvar) := \SolDiFCT ;%
+ \StrCut{\DICHOTOinterv}{:}{\varvala}{\varvalb}%
+ \xdef\varstep{\fpeval{10**(-\DICHOTOstep-1)}}%un chiffre en plus :-)
+ %boucles
+ \whiledo{\xintGt{\xintfloateval{\varvalb-\varvala-\varstep}}{0} = 1}%
+ {%
+ \xdef\varvalm{\xintfloateval{(\varvala+\varvalb)*0.5}}%
+ \xintifboolexpr{\xintGt{\xintfloateval{(dichotovarfct(\varvala)-\SolDiVal)*(dichotovarfct(\varvalm)-\SolDiVal)}}{0}==1}%
+ {\xdef\varvala{\fpeval{\varvalm}}}%
+ {\xdef\varvalb{\fpeval{\varvalm}}}%
+ }%
+ \xdef\varvalm{\xintfloateval{(\varvala+\varvalb)*0.5}}%
+ \xdef\vartmpmd{\fpeval{floor(\varvalm,\DICHOTOstep)}}%
+ \xdef\vartmpme{\fpeval{\vartmpmd+10**(-\DICHOTOstep)}}%
+ %les variables créées
+ \expandafter\def\csname#3d\endcsname{\fpeval{\vartmpmd}}%
+ \expandafter\def\csname#3e\endcsname{\fpeval{\vartmpme}}%
+ %valeur approchée
+ \expandafter\def\csname#3a\endcsname{\fpeval{round(\varvalm,\DICHOTOstep)}}%
+}
+
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
new file mode 100644
index 0000000000..5b83b2a4d0
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
@@ -0,0 +1,311 @@
+% proflycee-tools-arithm.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------ConversionsBases
+%dec->bin avec blocs de 4 chiffres
+\setKVdefault[CONVDECBIN]{%
+ AffBase=true
+}
+\NewDocumentCommand\ConversionDecBin{ s O{} m }{%
+ \useKVdefault[CONVDECBIN]
+ \setKV[CONVDECBIN]{#2}% on paramètres les nouvelles clés et on les simplifie
+ \def\resbrut{\xintDecToBin{#3}}
+ \StrLen{\resbrut}[\nbchiffres]
+ \def\nbgrp{\fpeval{4*ceil(\nbchiffres/4,0)}}
+ \IfBooleanTF{#1}
+ {\num{#3}\ifboolKV[CONVDECBIN]{AffBase}{_{10}}{}=\num[digit-group-size=4]{\resbrut}\ifboolKV[CONVDECBIN]{AffBase}{_{2}}{}}
+ {\num{#3}\ifboolKV[CONVDECBIN]{AffBase}{_{10}}{}=\num[digit-group-size=4,minimum-integer-digits=\nbgrp]{\resbrut}\ifboolKV[CONVDECBIN]{AffBase}{_{2}}{}}
+}
+
+\setKVdefault[CONVBINHEX]{%
+ %trait=0.5pt,%
+ AffBase=true,%
+ Details=true
+}
+%bourrage de 0 avant
+\ExplSyntaxOn
+\NewExpandableDocumentCommand{\PLstrzeros}{m}
+{
+ \int_compare:nT { #1 > 0 }
+ {
+ 0 \prg_replicate:nn { #1 - 1 } { 0 }
+ }
+}
+\ExplSyntaxOff
+
+
+%la conversion complète
+\newcommand\ConversionBinHex[2][]{%
+ \useKVdefault[CONVBINHEX]
+ \setKV[CONVBINHEX]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\chbrut{#2}
+ \StrLen{\chbrut}[\nbchiffres] %nb de chiffres du binaire
+ \xdef\nbgrp{\fpeval{4*ceil(\nbchiffres/4,0)}} %nb de chiffres avec blocs de 4
+ \xdef\nbblocs{\fpeval{\nbgrp/4}} %nb de blocs
+ %on rajoute des zeros si besoin := OK
+ \xdef\resinter{\chbrut}
+ \num[digit-group-size=4]{\chbrut}\ifboolKV[CONVBINHEX]{AffBase}{_{2}}{}=
+ \ifboolKV[CONVBINHEX]{Details}{%
+ \ifnum\nbchiffres<\nbgrp
+ \xdef\nbz{\inteval{\nbgrp-\nbchiffres}}
+ \xdef\resinter{\PLstrzeros{\nbz}\chbrut}
+ \num[digit-group-size=4,minimum-integer-digits=\nbgrp]{\resinter}=
+ \fi
+ %découpage par blocs et conversion en hexa := OK
+ \newcount\cpt
+ \cpt0
+ \loop\ifnum \cpt<\nbblocs
+ \def\iinit{\fpeval{4*\cpt+1}}%
+ \def\ifinal{\fpeval{4*(\cpt+1)}}%
+ \StrMid{\resinter}{\iinit}{\ifinal}[\blocinter]%
+ {\underbracket{\blocinter}_{\xintBinToHex{\blocinter}}\,}
+ \advance\cpt by 1
+ \repeat
+ \!=
+ }%
+ {}
+ \xintBinToHex{\chbrut}\ifboolKV[CONVBINHEX]{AffBase}{_{16}}{}
+}
+
+%hexa/bin->dec avec écriture polynomiale
+\defKV[CONVTODEC]{%
+ BaseDep=\def\basedepart{#1}
+}
+\setKVdefault[CONVTODEC]{%
+ BaseDep=2,%
+ AffBase=true,%
+ Details=true,%
+ Zeros=true
+}
+
+\ExplSyntaxOn
+\newcommand\convertbasetobasedix[2]{%
+ \int_from_base:nn {#1}{#2}
+}
+\ExplSyntaxOff
+
+\newcommand\ConversionVersDec[2][]{%
+ \useKVdefault[CONVTODEC]
+ \setKV[CONVTODEC]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\nbdepart{#2}
+ \StrLen{\nbdepart}[\nbchiffres]
+ \StrChar{\nbdepart}{1}[\chiffre]
+ %si on est en base 16
+ \xintifboolexpr{\basedepart == 16}%
+ {%
+ \nbdepart\ifboolKV[CONVTODEC]{AffBase}{_{\basedepart}}{} =
+ \ifboolKV[CONVTODEC]{Details}{%
+ \xintHexToDec{\chiffre}\times\basedepart^{\inteval{\nbchiffres-1}}%
+ \newcount\cpt
+ \cpt2
+ \loop\ifnum \cpt<\inteval{\nbchiffres+1}
+ \def\puiss{\inteval{\nbchiffres-\cpt}}
+ \StrChar{\nbdepart}{\cpt}[\chiffre]
+ \ifboolKV[CONVTODEC]{Zeros}%
+ {%
+ +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
+ }
+ {
+ \ifnum\xintHexToDec{\chiffre} > 0
+ +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
+ \fi
+ }
+ \advance\cpt by 1
+ \repeat
+ =
+ }
+ {}
+ \num{\xintHexToDec{\nbdepart}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}
+ }%
+ {}
+ \xintifboolexpr{\basedepart == 2}%
+ {%
+ \num[digit-group-size=4]{\nbdepart}\ifboolKV[CONVTODEC]{AffBase}{_{\basedepart}}{} =
+ \ifboolKV[CONVTODEC]{Details}{%
+ \chiffre\times\basedepart^{\inteval{\nbchiffres-1}}%
+ \newcount\cpt
+ \cpt2
+ \loop\ifnum \cpt<\inteval{\nbchiffres+1}
+ \def\puiss{\inteval{\nbchiffres-\cpt}}
+ \StrChar{\nbdepart}{\cpt}[\chiffre]
+ \ifboolKV[CONVTODEC]{Zeros}%
+ {%
+ +\chiffre\times\basedepart^{\puiss}%
+ }
+ {
+ \ifnum\chiffre > 0
+ +\chiffre\times\basedepart^{\puiss}%
+ \fi
+ }
+ \advance\cpt by 1
+ \repeat
+ =
+ }
+ {}
+ \num{\xintBinToDec{\nbdepart}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}
+ }%
+ {}%
+}
+
+\newcommand\ConversionBaseDix[3][]{%1=options,%2=nb,%3=basedep ??
+ \useKVdefault[CONVTODEC]
+ \setKV[CONVTODEC]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\NBdepart{#2}
+ \def\basedepart{#3}
+ \StrLen{\NBdepart}[\nbchiffres]
+ \StrChar{\NBdepart}{1}[\chiffre]
+ \NBdepart\ifboolKV[CONVTODEC]{AffBase}{_{\basedepart}}{} =
+ \ifboolKV[CONVTODEC]{Details}{%
+ \xintHexToDec{\chiffre}\times\basedepart^{\inteval{\nbchiffres-1}}%
+ \newcount\cpt
+ \cpt2
+ \loop\ifnum \cpt<\inteval{\nbchiffres+1}
+ \def\puiss{\inteval{\nbchiffres-\cpt}}
+ \StrChar{\NBdepart}{\cpt}[\chiffre]
+ \ifboolKV[CONVTODEC]{Zeros}%
+ {%
+ +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
+ }
+ {
+ \ifnum\xintHexToDec{\chiffre} > 0
+ +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
+ \fi
+ }
+ \advance\cpt by 1
+ \repeat
+ =
+ }%
+ {}%
+ \num{\convertbasetobasedix{#2}{#3}}\ifboolKV[CONVTODEC]{AffBase}{_{10}}{}%
+}
+
+%%------CONVFROMDEC
+\newcommand\PLnoeud[2]{\tikz[remember picture,baseline=(#1.base)]\node[shape=rectangle,inner sep=0pt](#1){#2};}
+\ExplSyntaxOn
+\newcommand\convertbasedixtobase[2]{%
+ \int_to_Base:nn {#1}{#2}
+}
+\ExplSyntaxOff
+
+\defKV[convfromten]{%
+ Couleur=\def\PLConvCouleur{#1},%
+ DecalH=\def\PLConvDecalH{#1},%
+ DecalV=\def\PLConvDecalV{#1},%
+ Noeud=\def\PLConvNoeud{#1}
+}
+
+\setKVdefault[convfromten]{%
+ Couleur=red,%
+ DecalH=2pt,%
+ DecalV=3pt,%
+ Rect=true,%
+ Noeud=EEE,%
+ CouleurRes=false
+}
+
+\newcommand\ConversionDepuisBaseDix[3][]{%
+ \useKVdefault[convfromten]%
+ \setKV[convfromten]{#1}%
+ \xdef\ValRes{\xintDecToHex{#2}}%
+ \xdef\ValA{#2}\xdef\ValB{#3}%
+ \xdef\ValTMP{#2}%
+ \xdef\ValMU{\inteval{#3-1}}%
+ \ensuremath{%
+ \left\lbrace\begin{array}{@{\,}r@{\;=\;}l@{\;+\;}r}
+ %1ere division
+ \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}
+ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\PLnoeud{\PLConvNoeud1}{\num{\ValR}}%
+ \xdef\ValTMP{\ValQ}%
+ \whiledo {\ValTMP > \ValMU}%
+ {%
+ \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}%
+ \\ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\num{\ValR}
+ \xdef\ValTMP{\ValQ}%
+ }
+ %dernière
+ \xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}%
+ \\ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\PLnoeud{\PLConvNoeud2}{\num{\ValR}}
+ \end{array} \right| \Rightarrow \num{#2}_{10}=\ifboolKV[convfromten]{CouleurRes}{\mathcolor{\PLConvCouleur}{\convertbasedixtobase{#2}{#3}_{#3}}}{\convertbasedixtobase{#2}{#3}_{#3}}}%
+ \ifboolKV[convfromten]{Rect}%
+ {%
+ \IfSubStr{\PLConvDecalH}{/}%
+ {\StrCut{\PLConvDecalH}{/}{\PLConvDecalHg}{\PLConvDecalHd}}%
+ {\def\PLConvDecalHg{\PLConvDecalH}\def\PLConvDecalHd{\PLConvDecalH}}%
+ \begin{tikzpicture}
+ \draw[overlay,rounded corners=4pt,\PLConvCouleur,thick] ($(\PLConvNoeud1.north west)+(-\PLConvDecalHg,\PLConvDecalV)$) rectangle ($(\PLConvNoeud2.south east)+(\PLConvDecalHd,-\PLConvDecalV)$) ;
+ \draw[overlay,rounded corners=4pt,\PLConvCouleur,thick,->,>=latex] ($(\PLConvNoeud2.east)+(\PLConvDecalHd,0)$)--++(0,{0.75\baselineskip}) ;
+ \end{tikzpicture}%
+ }{}%
+}
+
+%%------PRESPGCD
+\DeclareMathOperator{\PLpgcd}{PGCD}
+\defKV[prespgcd]{%
+ Couleur=\def\PLPGCDCouleur{#1},%
+ DecalRect=\def\PLPGCDDecal{#1},%
+ Noeud=\def\PLPGCDNoeud{#1}
+}
+
+\setKVdefault[prespgcd]{%
+ Couleur=red,%
+ DecalRect=2pt,%
+ Rectangle=true,%
+ Noeud=FFF,%
+ CouleurResultat=false,%
+ AfficheConclusion=true,%
+ AfficheDelimiteurs=true
+}
+
+\newcommand\PresentationPGCD[3][]{%
+ \useKVdefault[prespgcd]%
+ \setKV[prespgcd]{#1}%
+ \xdef\respgcd{\xinteval{gcd(#2,#3)}}
+ \xdef\ValA{#2}\xdef\ValB{#3}%on stocke les valeurs du départ
+ \ensuremath{%
+ \ifboolKV[prespgcd]{AfficheDelimiteurs}%
+ {\left\lbrace}%
+ {}%
+ \begin{array}{@{\,}r@{\;=\;}l@{\;+\;}r}
+ %1ère division
+ \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}}
+ \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}%
+ \xintifboolexpr{\ValR == \respgcd}%
+ {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd
+ {\num{\ValR}}%
+ \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs
+ \whiledo {\ValR > 0}%
+ {%
+ \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}}%
+ \\%
+ \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}%
+ \xintifboolexpr{\ValR == \respgcd}%
+ {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd
+ {\num{\ValR}}%
+ \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs
+ }%
+ \end{array}%
+ \ifboolKV[prespgcd]{AfficheDelimiteurs}%
+ {\right|}%
+ {}%
+ \ifboolKV[prespgcd]{AfficheConclusion}%
+ {%
+ \Rightarrow \PLpgcd\left(\num{#2};\num{#3}\right)=\ifboolKV[prespgcd]{CouleurResultat}{\mathcolor{\PLPGCDCouleur}{\num{\respgcd}}}{\num{\respgcd}}%
+ }%
+ {}%
+ }%
+ \ifboolKV[prespgcd]{Rectangle}%
+ {%
+ \begin{tikzpicture}
+ \draw[overlay,rounded corners=4pt,\PLPGCDCouleur,thick] ($(\PLPGCDNoeud1.north west)+(-\PLPGCDDecal,\PLPGCDDecal)$) rectangle ($(\PLPGCDNoeud1.south east)+(\PLPGCDDecal,-\PLPGCDDecal)$) ;
+ \end{tikzpicture}%
+ }{}%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex
new file mode 100644
index 0000000000..5b041fcd0f
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex
@@ -0,0 +1,139 @@
+% proflycee-tools-geom.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------PaveDroitTikZ
+\defKV[paramspave]{%
+ Largeur=\xdef\PFPaveLg{#1},%
+ Profondeur=\xdef\PFPavePf{#1},%
+ Hauteur=\xdef\PFPaveHt{#1},%
+ Angle=\xdef\PFPaveAngl{#1},%
+ Fuite=\xdef\PFPaveFuite{#1},%
+ Sommets=\def\PFPaveSommets{#1},%
+ Epaisseur=\xdef\PFPaveThick{#1}
+}
+\setKVdefault[paramspave]{%
+ Aff=false,%
+ Plein=false,%
+ Largeur=2,%
+ Profondeur=1,%
+ Hauteur=1.25,%
+ Angle=30,%
+ Fuite=0.5,%
+ Epaisseur=thick,%
+ Sommets=A§B§C§D§E§F§G§H,%
+ Cube=false,%
+ Math=false
+}
+
+\newcommand\PaveTikz[1][]{%
+ \useKVdefault[paramspave]%
+ \setKV[paramspave]{#1}%
+ \ifboolKV[paramspave]{Cube}
+ {\xdef\PFPavePf{\PFPaveLg}%
+ \xdef\PFPaveHt{\PFPaveLg}}
+ {}
+ \setsepchar{§}%
+ \readlist*\PFListeSommets\PFPaveSommets
+ \itemtomacro\PFListeSommets[1]\PaveA
+ \itemtomacro\PFListeSommets[2]\PaveB
+ \itemtomacro\PFListeSommets[3]\PaveC
+ \itemtomacro\PFListeSommets[4]\PaveD
+ \itemtomacro\PFListeSommets[5]\PaveE
+ \itemtomacro\PFListeSommets[6]\PaveF
+ \itemtomacro\PFListeSommets[7]\PaveG
+ \itemtomacro\PFListeSommets[8]\PaveH
+ %les nœuds du pave
+ \coordinate (\PaveA) at (0,0) ;
+ \coordinate (\PaveB) at ({\PFPaveLg},0) ;
+ \coordinate (\PaveC) at ($(\PaveB) + ({\PFPaveAngl}:{\PFPaveFuite*\PFPavePf})$) ;
+ \coordinate (\PaveD) at ($(\PaveA) + ({\PFPaveAngl}:{\PFPaveFuite*\PFPavePf})$) ;
+ \coordinate (\PaveE) at ($(\PaveA) + (0,{\PFPaveHt})$) ;
+ \coordinate (\PaveF) at ($(\PaveB) + (0,{\PFPaveHt})$) ;
+ \coordinate (\PaveG) at ($(\PaveC) + (0,{\PFPaveHt})$) ;
+ \coordinate (\PaveH) at ($(\PaveD) + (0,{\PFPaveHt})$) ;
+ \ifboolKV[paramspave]{Aff}
+ {\draw (\PaveA) node[below left] {\ifboolKV[paramspave]{Math}{$\PaveA$}{\PaveA}} ;
+ \draw (\PaveB) node[below right] {\ifboolKV[paramspave]{Math}{$\PaveB$}{\PaveB}} ;
+ \draw (\PaveC) node[above right] {\ifboolKV[paramspave]{Math}{$\PaveC$}{\PaveC}} ;
+ \ifboolKV[paramspave]{Plein}
+ {}
+ {\draw (\PaveD) node[above left] {\ifboolKV[paramspave]{Math}{$\PaveD$}{\PaveD}} ;}
+ \draw (\PaveE) node[below left] {\ifboolKV[paramspave]{Math}{$\PaveE$}{\PaveE}} ;
+ \draw (\PaveF) node[below right] {\ifboolKV[paramspave]{Math}{$\PaveF$}{\PaveF}} ;
+ \draw (\PaveG) node[above right] {\ifboolKV[paramspave]{Math}{$\PaveG$}{\PaveG}} ;
+ \draw (\PaveH) node[above left] {\ifboolKV[paramspave]{Math}{$\PaveH$}{\PaveH}} ;}
+ {}%on affiche rien
+ \draw[\PFPaveThick] (\PaveA)--(\PaveB)--(\PaveF)--(\PaveE)--cycle
+ (\PaveB)--(\PaveC)--(\PaveG)--(\PaveF)--cycle
+ (\PaveG)--(\PaveH)--(\PaveE) ;
+ \ifboolKV[paramspave]{Plein}
+ {}
+ {\draw[dashed,\PFPaveThick] (\PaveA)--(\PaveD)--(\PaveC)
+ (\PaveD)--(\PaveH) ;}
+}
+
+%%------TétraèdreTikZ
+\defKV[paramstetra]{%
+ Largeur=\xdef\PFTetraLg{#1},%
+ Profondeur=\xdef\PFTetraPf{#1},%
+ Hauteur=\xdef\PFTetraHt{#1},%
+ Alpha=\xdef\PFTetraAlpha{#1},%
+ Beta=\xdef\PFTetraBeta{#1},%
+ Sommets=\def\PFTetraSommets{#1},%
+ Epaisseur=\xdef\PFTetraThick{#1}
+}
+\setKVdefault[paramstetra]{%
+ Aff=false,%
+ Plein=false,%
+ Largeur=4,%
+ Profondeur=1.25,%
+ Hauteur=3,%
+ Alpha=40,%
+ Beta=60,%
+ Epaisseur=thick,%
+ Sommets=A§B§C§D,%
+ Math=false
+}
+
+\newcommand\TetraedreTikz[1][]{%
+ \useKVdefault[paramstetra]%
+ \setKV[paramstetra]{#1}%
+ \setsepchar{§}%
+ \readlist*\PFListeSommets\PFTetraSommets
+ \itemtomacro\PFListeSommets[1]\TetraA
+ \itemtomacro\PFListeSommets[2]\TetraB
+ \itemtomacro\PFListeSommets[3]\TetraC
+ \itemtomacro\PFListeSommets[4]\TetraD
+ %les nœuds du tétraèdre
+ \coordinate (\TetraA) at (0,0) ;
+ \coordinate (\TetraB) at ($(\TetraA) + ({-\PFTetraAlpha}:{\PFTetraPf})$) ;
+ \coordinate (\TetraC) at ({\PFTetraLg},0) ;
+ \coordinate (\TetraD) at ($(\TetraA) + ({\PFTetraBeta}:{\PFTetraHt})$) ;
+ \ifboolKV[paramstetra]{Aff}
+ {\draw (\TetraA) node[left] {\ifboolKV[paramstetra]{Math}{$\TetraA$}{\TetraA}} ;
+ \draw (\TetraB) node[below] {\ifboolKV[paramstetra]{Math}{$\TetraB$}{\TetraB}} ;
+ \draw (\TetraC) node[right] {\ifboolKV[paramstetra]{Math}{$\TetraC$}{\TetraC}} ;
+ \draw (\TetraD) node[above] {\ifboolKV[paramstetra]{Math}{$\TetraD$}{\TetraD}} ;}
+ {}%on affiche rien
+ \draw[\PFTetraThick] (\TetraA)--(\TetraD)--(\TetraC)--(\TetraB)--cycle
+ (\TetraD)--(\TetraB) ;
+ \ifboolKV[paramstetra]{Plein}
+ {}
+ {\draw[dashed,\PFTetraThick] (\TetraA)--(\TetraC) ;}
+}
+
+%%------MainLevée TikZ
+\tikzset{%
+ mainlevee/.style args={#1et#2}{decorate,decoration={random steps,segment length=#1,amplitude=#2}},
+ mainlevee/.default={5mm et 0.6pt}
+}
+
+
+\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
new file mode 100644
index 0000000000..8f827908ae
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
@@ -0,0 +1,525 @@
+% proflycee-tools-graphiques.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------SPLINES
+%commande utile pour extraire des infos d'une liste
+\newcommand\extractcoeff[2]{%1=liste,2=numero
+ \setsepchar{§}%
+ \readlist*\lcoeffs{#1}
+ \ifnum \lcoeffslen=1
+ \def\COEFFA{#1}
+ \def\COEFFB{#1}
+ \else
+ \itemtomacro\lcoeffs[#2]\COEFF
+ \IfSubStr{\COEFF}{/}%
+ {\StrCut{\COEFF}{/}{\COEFFA}{\COEFFB}}%
+ {\def\COEFFA{\COEFF}\def\COEFFB{\COEFF}}
+ \fi
+}
+
+%splines en tikz avec ..controls
+\defKV[spline]{%
+ Epaisseur=\def\SPLepaisseur{#1},%
+ Couleur=\def\SPLcouleur{#1},%
+ Coeffs=\def\SPLcoeffs{#1},%
+ CouleurPoints=\def\SPLcouleurpoints{#1},%
+ TaillePoints=\def\SPLtaillepoints{#1},%
+ Style=\def\SPLstyle{#1}
+}
+
+\setKVdefault[spline]{%
+ Epaisseur=1.25pt,%
+ Couleur=red,%
+ Coeffs=3,%
+ CouleurPoints=black,%
+ TaillePoints=2pt,%
+ AffPoints=false,%
+ Style={}
+}
+
+\newcommand\SplineTikz[2][]{%
+ \useKVdefault[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[.]{§./}%
+ \readlist*\SPLlistepoints{#2}%
+ \def\SPLnbsplines{\inteval{\SPLlistepointslen-1}}%
+ %si uniquement deux points, pas de boucle...
+ \ifnum \SPLlistepointslen=2
+ %extraction des coeffs de compensation
+ \extractcoeff{\SPLcoeffs}{1}%
+ %extraction des coordonnées
+ \itemtomacro\SPLlistepoints[1,1]\xa
+ \itemtomacro\SPLlistepoints[1,2]\ya
+ \itemtomacro\SPLlistepoints[1,3]\fprimea
+ \itemtomacro\SPLlistepoints[2,1]\xb
+ \itemtomacro\SPLlistepoints[2,2]\yb
+ \itemtomacro\SPLlistepoints[2,3]\fprimeb
+ \draw[line width=\SPLepaisseur,\SPLcouleur,\SPLstyle] (\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFA}).. (\xb,\yb) ;%
+ %sinon on construit bout par bout !
+ \else
+ \foreach \i in {1,2,...,\SPLnbsplines}{
+ %extraction des coeffs de compensation
+ \extractcoeff{\SPLcoeffs}{\i}
+ \def\j{\inteval{\i+1}}
+ \itemtomacro\SPLlistepoints[\i,1]\xa
+ \itemtomacro\SPLlistepoints[\i,2]\ya
+ \itemtomacro\SPLlistepoints[\i,3]\fprimea
+ \itemtomacro\SPLlistepoints[\j,1]\xb
+ \itemtomacro\SPLlistepoints[\j,2]\yb
+ \itemtomacro\SPLlistepoints[\j,3]\fprimeb
+ \draw[line width=\SPLepaisseur,\SPLcouleur,\SPLstyle] (\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFB}).. (\xb,\yb) ;%
+ }
+ \fi
+ \ifboolKV[spline]{AffPoints}%on affiche les points de contrôle
+ {%
+ \foreach \i in {1,2,...,\SPLlistepointslen}{%
+ \itemtomacro\SPLlistepoints[\i,1]\xa
+ \itemtomacro\SPLlistepoints[\i,2]\ya
+ \filldraw[\SPLcouleurpoints] (\xa,\ya) circle[radius=\SPLtaillepoints] ;%
+ }
+ }
+ {}
+}
+
+%tangente(s) en TikZ, avec point/dérivée ou liste points/dérivées
+\defKV[tgte]{%
+ Epaisseur=\def\TGTepaisseur{#1},%
+ Couleur=\def\TGTcouleur{#1},%
+ xl=\def\TGTXL{#1},%
+ xr=\def\TGTXR{#1},%
+ Style=\def\TGTstyle{#1},%
+ Point=\def\TGTnumpt{#1}
+}
+
+\setKVdefault[tgte]{
+ Epaisseur=1.25pt,%
+ Couleur=red,%
+ xl=0.5,xr=0.5,%
+ Style={},%
+ Point=1
+}
+
+\newcommand\TangenteTikz[2][]{%
+ \useKVdefault[tgte]%
+ \setKV[tgte]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \setsepchar[.]{§./}%
+ \readlist*\TGTlistepoints{#2}%
+ \itemtomacro\TGTlistepoints[\TGTnumpt,1]\xa
+ \itemtomacro\TGTlistepoints[\TGTnumpt,2]\ya
+ \itemtomacro\TGTlistepoints[\TGTnumpt,3]\fprimea
+ \def\TGTDEB{\fpeval{\xa-\TGTXL}}\def\TGTFIN{\fpeval{\xa+\TGTXR}}%
+ \draw[line width=\TGTepaisseur,\TGTcouleur,domain=\TGTDEB:\TGTFIN,\TGTstyle] plot (\x,{\fprimea*(\x-\xa)+\ya}) ;%
+}
+
+%%------STATS2VAR
+%variables directement dans tikzpicture
+\tikzset{%
+ Ox/.store in=\axexOx,Ox/.default=0,Ox=0,%essai
+ Oy/.store in=\axeyOy,Oy/.default=0,Oy=0,%essai
+ xmin/.store in=\xmin,xmin/.default=-5,xmin=-5,
+ xmax/.store in=\xmax,xmax/.default=5,xmax=5,
+ ymin/.store in=\ymin,ymin/.default=-5,ymin=-5,
+ ymax/.store in=\ymax,ymax/.default=5,ymax=5,
+ xgrille/.store in=\xgrille,xgrille/.default=1,xgrille=1,
+ xgrilles/.store in=\xgrilles,xgrilles/.default=0.5,xgrilles=0.5,
+ ygrille/.store in=\ygrille,ygrille/.default=1,ygrille=1,
+ ygrilles/.store in=\ygrilles,ygrilles/.default=0.5,ygrilles=0.5,
+ xunit/.store in=\xunit,xunit/.default=1,xunit=1,
+ yunit/.store in=\yunit,yunit/.default=1,yunit=1
+}
+
+%style point croix
+\tikzset{pics/PLdotcross/.style args={#1/#2}{
+ code={
+ \draw[line width={0.5*#1},rotate=#2] (-#1,0) -- (#1,0);
+ \draw[line width={0.5*#1},rotate=#2] (0,-#1) -- (0, #1);
+ }
+ },
+ pics/PLdotcross/.default={4pt/0}
+}
+
+%affichage d'un label en radians
+\NewDocumentCommand\AffAngleRadian{ s m }{%étoilée en dfrac
+ \IfStrEq{#2}{0}%cas où l'argument vaut 0
+ {\def\restmp{0}}%
+ {%
+ \StrDel{#2}{*}[\restmpsansmoins]%
+ \StrSubstitute{\restmpsansmoins}{pi}{\pi}[\restmppi]%
+ \IfSubStr{#2}{/}%
+ {%
+ \StrCut{\restmppi}{/}\tmpnum\tmpdenom%
+ \IfSubStr{\tmpnum}{-}
+ {%
+ \StrDel{\tmpnum}{-}[\restmppinum]%
+ \IfBooleanTF{#1}
+ {\def\restmp{-\dfrac{\restmppinum}{\tmpdenom}}}
+ {\def\restmp{-\frac{\restmppinum}{\tmpdenom}}}
+ }%
+ {%
+ \IfBooleanTF{#1}
+ {\def\restmp{\dfrac{\tmpnum}{\tmpdenom}}}
+ {\def\restmp{\frac{\tmpnum}{\tmpdenom}}}
+ }%
+ }%
+ {%
+ \def\restmp{\restmppi}%
+ }%
+ }%
+ \restmp%
+}
+
+%axeOx
+\defKV[PLaxextkz]{%
+ Epaisseur=\def\axexwidth{#1},%
+ Police=\def\axexfont{#1},%
+ HautGrad=\def\axextickwidth{#1},%
+ PosGrad=\def\axexposlabel{#1}
+}
+
+\setKVdefault[PLaxextkz]{%
+ Epaisseur=1pt,%
+ Police=\normalsize\normalfont,%
+ PosGrad=below,%
+ HautGrad=4pt,%
+ AffGrad=true,%
+ AffOrigine=true,%
+ Annee=false,%
+ Dfrac=false,%
+ Trigo=false
+}
+
+\DeclareDocumentCommand\AxexTikz{ O{} m }{%
+ \useKVdefault[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}}
+ %en fonction de Trigo ou non
+ \ifboolKV[PLaxextkz]{Trigo}
+ {
+ \foreach \x in {#2}{%
+ \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}{%
+ \draw[line width=\axexwidth] ({\x-\axexOx},{\axextickwidthA}) -- ({\x-\axexOx},{-\axextickwidthB})%
+ \ifboolKV[PLaxextkz]{AffGrad}%on affiche les graduations
+ {%
+ \ifboolKV[PLaxextkz]{AffOrigine}%si on demande d'afficher l'origine
+ {node[\axexposlabel,font=\axexfont]
+ {\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}}%
+ }
+ }
+ }
+ }
+ {}
+ ;}
+ }
+
+}
+
+%axeOy
+\defKV[PLaxeytkz]{%
+ Epaisseur=\def\axeywidth{#1},%
+ Police=\def\axeyfont{#1},%
+ HautGrad=\def\axeytickwidth{#1},%
+ PosGrad=\def\axeyposlabel{#1}
+}
+
+\setKVdefault[PLaxeytkz]{%
+ Epaisseur=1pt,%
+ Police=\normalsize\normalfont,%
+ PosGrad=left,%
+ HautGrad=4pt,%
+ AffGrad=true,%
+ AffOrigine=true,%
+ Annee=false
+}
+
+\DeclareDocumentCommand\AxeyTikz{ O{} m }{%
+ \useKVdefault[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}}
+ \foreach \y in {#2}{%
+ \draw[line width=\axeywidth] ({\axeytickwidthA},{\y-\axeyOy}) -- ({-\axeytickwidthB},{\y-\axeyOy})%
+ \ifboolKV[PLaxeytkz]{AffGrad}%on affiche les graduations
+ {%
+ \ifboolKV[PLaxeytkz]{AffOrigine}%si on demande d'afficher l'origine
+ {node[\axeyposlabel,font=\axeyfont]
+ {\ifboolKV[PLaxeytkz]{Annee}%
+ {\num[group-digits=none]{\y}}%
+ {\num[text-family-to-math=true,text-series-to-math=true]{\y}}%
+ }
+ }
+ {\xintifboolexpr{\y==\axeyOy}{}{node[\axeyposlabel,font=\axeyfont] {\ifboolKV[PLaxeytkz]{Annee}%
+ {\num[group-digits=none]{\y}}%
+ {\num[text-family-to-math=true,text-series-to-math=true]{\y}}%
+ }
+ }
+ }
+ }
+ {}
+ ;}
+}
+
+%axes
+\defKV[PLaxestkz]{%
+ Epaisseur=\def\axeswidth{#1},%
+ Police=\def\axesfont{#1},%
+ Labelx=\def\axeslabelx{#1},%
+ Labely=\def\axeslabely{#1},%
+ PosLabelx=\def\axesposlabelx{#1},%
+ PosLabely=\def\axesposlabely{#1},%
+ EchelleFleche=\def\axesechellefleche{#1},%
+ TypeFleche=\def\axestypefleche{#1},%
+ AffLabel=\def\axesafflabel{#1},%
+ ElargirOx=\def\axeselargx{#1},%
+ ElargirOy=\def\axeselargy{#1}
+}
+
+\setKVdefault[PLaxestkz]{%
+ Epaisseur=1pt,%
+ Police=\normalsize\normalfont,%
+ Labelx=$x$,%
+ Labely=$y$,%
+ AffLabel=z,%
+ PosLabelx=right,%
+ PosLabely=above,%
+ EchelleFleche=1,%
+ TypeFleche=latex,%
+ ElargirOx=0/0.05,%
+ ElargirOy=0/0.05
+}
+
+\DeclareDocumentCommand\AxesTikz{ O{} }{%
+ \useKVdefault[PLaxestkz]
+ \setKV[PLaxestkz]{#1}%
+ %les petits élargissements
+ \IfSubStr{\axeselargx}{/}
+ {\StrCut{\axeselargx}{/}{\axeselargxG}{\axeselargxD}}
+ {\def\axeselargxG{\axeselargx}\def\axeselargxD{\axeselargx}}
+ \def\axesenlargxG{\fpeval{\axeselargxG*(\xmax-\xmin)}}
+ \def\axesenlargxD{\fpeval{\axeselargxD*(\xmax-\xmin)}}
+ \IfSubStr{\axeselargy}{/}
+ {\StrCut{\axeselargy}{/}{\axeselargyG}{\axeselargyD}}
+ {\def\axeselargyG{\axeselargy}\def\axeselargyD{\axeselargy}}
+ \def\axesenlargyG{\fpeval{\axeselargyG*(\ymax-\ymin)}}
+ \def\axesenlargyD{\fpeval{\axeselargyD*(\ymax-\ymin)}}
+ %on affiche les deux axes
+ \draw[line width=\axeswidth,-{\axestypefleche[scale=\axesechellefleche]}] ({\xmin-\axexOx-\axesenlargxG},0) -- ({\xmax-\axexOx+\axesenlargxD},0) ;
+ \draw[line width=\axeswidth,-{\axestypefleche[scale=\axesechellefleche]}] (0,{\ymin-\axeyOy-\axesenlargyG}) -- (0,{\ymax-\axeyOy++\axesenlargyD}) ;
+ %les labels éventuels
+ \IfSubStr{\axesafflabel}{x}%
+ {\draw ({\xmax-\axexOx},0) node[\axesposlabelx,font=\axesfont] {\axeslabelx} ;}
+ {}
+ \IfSubStr{\axesafflabel}{y}%
+ {\draw (0,{\ymax-\axeyOy}) node[\axesposlabely,font=\axesfont] {\axeslabely} ;}
+ {}
+}
+
+%fenêtre clippée
+\newcommand\FenetreTikz{%
+ \clip ({\xmin-\axexOx},{\ymin-\axeyOy}) rectangle ({\xmax-\axexOx},{\ymax-\axeyOy}) ;
+}
+
+%origine
+\defKV[PLaxesorig]{%
+ Police=\def\axesorfont{#1},%
+ Pos=\def\axesorpos{#1},%
+ Decal=\def\axesordecal{#1},%
+ Valeur=\def\axesorval{#1}
+}
+
+\setKVdefault[PLaxesorig]{%
+ Police=\normalsize\normalfont,%
+ Pos={below left},%
+ Decal=2pt,%
+ Valeur=0
+}
+
+\DeclareDocumentCommand\OrigineTikz{ O{} }{%
+ \useKVdefault[PLaxesorig]%
+ \setKV[PLaxesorig]{#1}%
+ \draw (0,0) node[\axesorpos=\axesordecal,font=\axesorfont] {\axesorval} ;
+}
+
+%grilles
+\setKVdefault[PLgrillestkz]{%
+ Affp=true,%
+ Affs=true
+}
+
+\DeclareDocumentCommand\GrilleTikz{ O{} O{thin,lightgray} O{ultra thin,lightgray} }{%
+ \useKVdefault[PLgrillestkz]
+ \setKV[PLgrillestkz]{#1}%
+ \ifboolKV[PLgrillestkz]{Affs}
+ {\draw[xstep=\xgrilles,ystep=\ygrilles,#3] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});}
+ {}
+ \ifboolKV[PLgrillestkz]{Affp}
+ {\draw[xstep=\xgrille,ystep=\ygrille,#2] ({\xmin-\axexOx},{\ymin-\axeyOy}) grid ({\xmax-\axexOx},{\ymax-\axeyOy});}
+ {}
+}
+
+%point(s) avec changement origines
+\defKV[PLpts]{%
+ Taille=\def\ptstaille{#1},%
+ Couleur=\def\ptscouleur{#1},%
+ Style=\def\ptsstyle{#1}
+}
+
+\setKVdefault[PLpts]{%
+ Taille=2pt,%
+ Couleur=blue,%
+ Style=o
+}
+
+\newcommand\PLnuagepoints[2][]{%
+ \useKVdefault[PLpts]
+ \setKV[PLpts]{#1}%
+ \setsepchar{§}%
+ \readlist\listepointsaffiches{#2}
+ \foreachitem\point\in\listepointsaffiches{%
+ \StrBetween{\point}{(}{,}[\XPT]
+ \StrBetween{\point}{,}{)}[\YPT]
+ \IfStrEq{\ptsstyle}{o}%
+ {\filldraw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) circle[radius=\ptstaille] ;}
+ {}
+ \IfStrEq{\ptsstyle}{x}%
+ {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;}
+ {}
+ \IfStrEq{\ptsstyle}{+}%
+ {\draw[\ptscouleur] ({\XPT-\axexOx},{\YPT-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;}
+ {}
+ }
+}
+
+\newcommand\NuagePointsTikz[3][]{%
+ \useKVdefault[PLpts]
+ \setKV[PLpts]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\xliste{#2}
+ \def\yliste{#3}
+ \readlist*\LX{\xliste}
+ \readlist*\LY{\yliste}
+ %taille des listes
+ \def\LNB{\inteval{\LXlen}}
+ \foreach \i in {1,2,...,\LNB} {
+ \IfStrEq{\ptsstyle}{o}%
+ {
+ \IfSubStr{\ptscouleur}{/}
+ {\StrCut{\ptscouleur}{/}{\ptscouleurA}{\ptscouleurB}\draw[thick,\ptscouleurA,fill=\ptscouleurB] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;}
+ {\draw[\ptscouleur,fill=\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) circle[radius=\ptstaille] ;}
+ }
+ {}
+ \IfStrEq{\ptsstyle}{x}%
+ {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/45} ;}
+ {}
+ \IfStrEq{\ptsstyle}{+}%
+ {\draw[\ptscouleur] ({\LX[\i]-\axexOx},{\LY[\i]-\axeyOy}) pic {PLdotcross=\ptstaille/0} ;}
+ {}
+ }
+}
+
+\defKV[PLptmoy]{%
+ Police=\def\ptmoyfont{#1},%
+ Taille=\def\ptmoytaille{#1},%
+ Couleur=\def\ptmoycouleur{#1},%
+ Style=\def\ptmoystyle{#1},%
+ xg=\def\ptmoyx{#1},%
+ yg=\def\ptmoyy{#1},%
+ Nom=\def\ptmoynom{#1},%
+ Pos=\def\ptmoypos{#1},%
+ Decal=\def\ptmoydecal{#1}%
+}
+
+\setKVdefault[PLptmoy]{%
+ Police=\normalsize\normalfont,%
+ Taille=4pt,%
+ Couleur=red,%
+ Style=x,%
+ xg=\LXmoy,%
+ yg=\LYmoy,%
+ Nom=G,%
+ Pos=above,%
+ Decal=0pt,%
+ AffNom=true
+}
+
+\newcommand\PointMoyenTikz[1][]{%
+ \useKVdefault[PLptmoy]
+ \setKV[PLptmoy]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \IfStrEq{\ptmoystyle}{o}%
+ {
+ \IfSubStr{\ptmoycouleur}{/}
+ {\StrCut{\ptmoycouleur}{/}{\ptmoycouleurA}{\ptmoycouleurB}\draw[thick,\ptmoycouleurA,fill=\ptmoycouleurB] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;}
+ {\draw[\ptmoycouleur,fill=\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) circle[radius=\ptmoytaille] ;}
+ }
+ {}
+ \IfStrEq{\ptmoystyle}{x}%
+ {\draw[\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) pic {PLdotcross=\ptmoytaille/45} ;}
+ {}
+ \IfStrEq{\ptmoystyle}{+}%
+ {\draw[\ptmoycouleur] ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) pic {PLdotcross=\ptmoytaille/0} ;}
+ {}
+ \ifboolKV[PLptmoy]{AffNom}
+ {\draw ({\ptmoyx-\axexOx},{\ptmoyy-\axeyOy}) node[\ptmoypos={\ptmoytaille+\ptmoydecal},font=\ptmoyfont] {\ptmoynom} ;}
+ {}
+
+}
+
+%courbe ?
+\newcommand\CourbeTikz[3][]{%
+ \setsepchar{:}%
+ \readlist\PLdomaine{#3}
+ \itemtomacro\PLdomaine[1]\PLDm
+ \itemtomacro\PLdomaine[2]\PLDM
+ \saveexpandmode\noexpandarg
+ \StrSubstitute{#2}{\x}{(\x+\axexOx)}[\fctdecx]
+ \restoreexpandmode % restore the previous mode
+ \draw[#1] plot[domain={\PLDm-\axexOx}:{\PLDM-\axexOx}] (\x,{\fctdecx-\axeyOy}) ;
+}
+
+\setKVdefault[PLsimplewindow]{%
+ Axes=true,%
+ Grille=true,%
+}
+
+\DeclareDocumentCommand\FenetreSimpleTikz{ O{} D(){} D<>{} m D<>{} m }{%
+ \useKVdefault[PLsimplewindow]%
+ \setKV[PLsimplewindow]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \ifboolKV[PLsimplewindow]{Grille}%
+ {\GrilleTikz}%
+ {}%
+ \ifboolKV[PLsimplewindow]{Axes}%
+ {\AxesTikz[#2]%
+ \AxexTikz[#3]{#4}
+ \AxeyTikz[#5]{#6}}%
+ {}%
+}
+
+
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
index c6d706417a..0e39796c76 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
@@ -1,4 +1,4 @@
-% proflycee-tools-piton.tex
+% proflycee-tools-listings.tex
% Copyright 2023 Cédric Pierquet
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -330,4 +330,148 @@
#2
}
+%%------FakeTerm
+%couleurs (inspirées par termsim !)
+\definecolor{PLmpurple}{RGB}{48,10,36}
+\definecolor{PLmgray}{RGB}{70,72,67}
+\definecolor{PLogray}{RGB}{148,147,141}
+\definecolor{PLoorange}{RGB}{233,101,56}
+\definecolor{PLterminal}{RGB}{80,78,70}
+\definecolor{PLlinux}{RGB}{0,39,51}
+\definecolor{PLwinblue}{HTML}{1883D7}
+\definecolor{PLosxgray}{HTML}{D8D6D9}
+
+%WINDOWS
+\tcbset{PLfaketermwin/.style={%
+ enhanced,boxrule=1pt,sharp corners,before skip=12pt,after skip=12pt,%
+ colframe=PLwinblue,colback=black,colbacktitle=white,colupper=white,coltitle=black,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+
+\setKVdefault[fakeTERMwin]{Titre={Terminal Windows}}
+
+\newcommand\PLcommandeswin{%
+ \begin{tikzpicture}[thick,scale=0.66]
+ \draw (0,0)--(1em,0) ; \draw (2em,0) rectangle (3em,1em) ; \draw (4em,1em)--(5em,0) (4em,0)--(5em,1em) ;
+ \end{tikzpicture}%
+}
+
+\newcommand\termwintitre[1][]{%
+ \restoreKV[fakeTERMwin]
+ \setKV[fakeTERMwin]{#1}
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={X[l]r}}
+ {\footnotesize\faTerminal}~~\useKV[fakeTERMwin]{Titre} & \PLcommandeswin \\ %
+ \end{tblr}
+}
+
+\DeclareTCBListing{TerminalWin}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
+ PLfaketermwin,title={\termwintitre[#2]},%
+ listing only,listing engine=listings,%
+ listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
+ width=#1,#3
+}
+
+%LINUX
+\newcommand{\PLUbuntuWhite}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[PLmgray] (0,0.25em) circle[radius=0.5em] ;
+ \end{tikzpicture}%
+}
+\newcommand{\PLUbuntuMin}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=PLogray!50!white] (0,0.25em) circle[radius=0.5em];
+ \draw[PLterminal](-0.35em,0.25em)--(0.35em,0.25em);
+ \end{tikzpicture}%
+}
+\newcommand{\PLUbuntuClose}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=PLoorange!70!white] (0,0.25em) circle[radius=0.5em];
+ \draw[PLterminal] (-0.32em,-0.07em)--(0.32em,0.57em);
+ \draw[PLterminal] (-0.32em,0.57em)--(0.32em,-0.07em);
+ \end{tikzpicture}%
+}
+\newcommand{\PLUbuntuMax}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[color=PLogray!50!white] (0,0.25em) circle[radius=0.5em];
+ \draw[PLterminal] (-0.32em,0.5em) rectangle (0.32em,0);
+ \end{tikzpicture}%
+}
+
+\tcbset{PLtermlinux/.style={%
+ enhanced,boxrule=1pt,arc=4pt,before skip=12pt,after skip=12pt,%
+ colframe=PLmgray,colback=PLmpurple,colbacktitle=PLmgray,colupper=white,coltitle=white,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+
+\setKVdefault[fakeTERMnux]{Titre={Terminal UNiX}}
+
+\newcommand\termnuxtitre[1][]{%
+ \restoreKV[fakeTERMnux]
+ \setKV[fakeTERMnux]{#1}
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+ \PLUbuntuWhite~~\PLUbuntuWhite~~\PLUbuntuWhite & \vphantom{p}\useKV[fakeTERMnux]{Titre} & \PLUbuntuMin~~\PLUbuntuMax~~\PLUbuntuClose \\
+ \end{tblr}
+}
+
+\DeclareTCBListing{TerminalUnix}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
+ PLtermlinux,title={\termnuxtitre[#2]},%
+ listing only,listing engine=listings,%
+ listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
+ width=#1,#3
+}
+
+%OSX
+\tcbset{PLfaketermosx/.style={%
+ enhanced,boxrule=1pt,arc=6pt,before skip=12pt,after skip=12pt,%
+ colframe=PLosxgray,colback=lightgray!15,colbacktitle=PLosxgray,colupper=black,coltitle=black,%
+ titlerule=0.4pt,left=2pt,top=2pt,bottom=2pt,right=2pt,middle=2pt,%
+ fonttitle=\bfseries\small\sffamily
+ }
+}
+
+\newcommand{\PLOSXRed}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[red] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+
+\newcommand{\PLOSXOrange}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[orange] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+
+\newcommand{\PLOSXGreen}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[ForestGreen] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+
+\newcommand{\PLOSXLG}{%
+ \begin{tikzpicture}[thick,anchor=base,baseline]
+ \filldraw[PLosxgray] (0,0.25em) circle[radius=0.45em] ;
+ \end{tikzpicture}%
+}
+
+\setKVdefault[fakeTERMosx]{titre={Terminal OSX}}
+
+\newcommand\termosxtitre[1][]{%
+ \restoreKV[fakeTERMosx]
+ \setKV[fakeTERMosx]{#1}
+ \begin{tblr}{colsep=0pt,rowsep=0pt,width=\linewidth,colspec={lX[c]r}}
+ \PLOSXRed~\PLOSXOrange~\PLOSXGreen & \vphantom{p}\useKV[fakeTERMosx]{Titre} & \PLOSXLG~\PLOSXLG~\PLOSXLG \\
+ \end{tblr}
+}
+
+\DeclareTCBListing{TerminalOSX}{ O{\linewidth} m !O{} }{%<taille> puis {Titre=...} puis [option]
+ PLfaketermosx,title={\termosxtitre[#2]},%
+ listing only,listing engine=listings,%
+ listing options={style=tcblatex,language={},basicstyle=\footnotesize\ttfamily},%
+ width=#1,#3
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
index f3f00ecd5e..4e0511aa83 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
@@ -8,6 +8,7 @@
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
+%2.5.9 Ajout d'une clé pour la couleur des nombres
%2.5.8 Modification des marges
%2.5.7 Style alternatif
@@ -21,7 +22,9 @@
Alignement=\def\CODPITalign{#1},%
TaillePolice=\def\CODPITfonte{#1},%
Style=\def\CODPITstyle{#1},%
- Titre=\def\CODPITtitre{#1}
+ Titre=\def\CODPITtitre{#1},%
+ EspacementV=\def\CODPITespV{#1},%
+ CouleurNombres=\def\CODPITcolnb{#1}
}
\setKVdefault[envpiton]{%
@@ -34,14 +37,16 @@
Style=Moderne,%
Cadre=true,%
BarreTitre=true,%
- Titre={{\scriptsize\faCode} Code Python}
+ Titre={{\scriptsize\faCode} Code Python},%
+ EspacementV=\baselineskip,%
+ CouleurNombres=orange
}
%==Style Moderne
\tcbset{stylepiton/.style={%
enhanced,boxrule=1.25pt,%
sharp corners=downhill,arc=12pt,
- before skip=\baselineskip,after skip=\baselineskip,%
+ before skip=\CODPITespV,after skip=\CODPITespV,%
top=\baselineskip,bottom=0mm,left=0.6em,right=5mm,%
attach boxed title to top right={yshift=-\tcboxedtitleheight},
boxed title style={
@@ -60,7 +65,7 @@
\tcbset{thonnystyle/.style={%
enhanced,boxrule=0.75pt,colframe=DarkGray!50!Black,%
sharp corners,top=0mm,bottom=0mm,left=0.4em,right=5mm,%
- before skip=\baselineskip,after skip=\baselineskip,%
+ before skip=\CODPITespV,after skip=\CODPITespV,%
colback=white
}
}
@@ -84,6 +89,7 @@
\useKVdefault[envpiton]%
\setKV[envpiton]{#1}% on paramètres les nouvelles clés et on les simplifie
%------les styles piton
+ \SetPitonStyle{ Number = \color{\CODPITcolnb} }%
\ifboolKV[envpiton]{Lignes}%si lignes=true
{\PitonOptions{left-margin=0.75em,all-line-numbers}}%left-margin=auto,
{}%
@@ -136,7 +142,7 @@
%======CONSOLE PYLUATEX (package à charger manuellement !!)
\tcbset{consolepylua/.style={%base de la boîte
enhanced,colback=white,colframe=ForestGreen,sharp corners,boxrule=1pt,%
- top=1.5mm,bottom=1.5mm,left=2mm,right=2mm,fontupper=\small,%
+ top=1.5mm,bottom=1.5mm,left=2mm,right=2mm,fontupper=\footnotesize,%
before skip=\baselineskip,after skip=\baselineskip,%
}
}
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
new file mode 100644
index 0000000000..270e99e3cc
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-probas.tex
@@ -0,0 +1,748 @@
+% proflycee-tools-probas.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------LOISPROBAS
+%calculs "simples"
+\newcommand\CalcBinomP[3]{%npk
+ \xintFloatToDecimal{\xintfloateval{binomial(#1,#3)*#2^#3*(1-#2)^(#1-#3)}}
+}
+\newcommand\CalcBinomC[4]{%npab
+ \def\BorneInf{#3}\def\BorneSup{#4}
+ \ifthenelse{\equal{#3}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#4}{*}}%
+ {\def\BorneSup{#1}}
+ {}
+ \xintFloatToDecimal{\xintfloateval{add(binomial(#1,i)*#2^i*(1-#2)^(#1-i), i=\BorneInf..\BorneSup)}}
+}
+\newcommand\CalcGeomP[2]{%pk
+ \xintFloatToDecimal{\xintfloateval{(1-#1)^(#2-1)*(#1)}}
+}
+\newcommand\CalcGeomC[3]{%pab
+ \def\BorneInf{#2}\def\BorneSup{#3}
+ \ifthenelse{\equal{#2}{*}}%
+ {\def\BorneInf{1}}
+ {}
+ \ifthenelse{\equal{#3}{*}}%
+ {\def\BorneSup{\fpeval{trunc(1/#1*10,0)}}}
+ {}
+ \xintFloatToDecimal{\xintfloateval{add((1-#1)^(i-1)*(#1), i=\BorneInf..\BorneSup)}}
+}
+\newcommand\CalcHypergeomP[4]{%Nnmk
+ \xintFloatToDecimal{\xintfloateval{binomial(#3,#4)*binomial(#1-#3,#2-#4)/binomial(#1,#2)}}
+}
+\newcommand\CalcHypergeomC[5]{%Nnmab
+ \def\BorneInf{#4}\def\BorneSup{#5}
+ \ifthenelse{\equal{#4}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#5}{*}}%
+ {\def\BorneSup{#1}}
+ {}
+ \xintFloatToDecimal{\xintfloateval{add(binomial(#3,i)*binomial(#1-#3,#2-i)/binomial(#1,#2), i=\BorneInf..\BorneSup)}}
+}
+\newcommand\CalcPoissP[2]{%lk
+ \xintFloatToDecimal{\xintfloateval{exp(-#1)*#1^#2/factorial(#2)}}
+}
+\newcommand\CalcPoissC[3]{%lab
+ \def\BorneInf{#2}\def\BorneSup{#3}
+ \ifthenelse{\equal{#2}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#3}{*}}%
+ {\def\BorneSup{10*#1}}
+ {}
+ \xintFloatToDecimal{\xintfloateval{add(exp(-#1)*#1^i/factorial(i), i=\BorneInf..\BorneSup)}}
+}
+%utiles idée de https://tex.stackexchange.com/questions/355574/im-searching-for-a-table-with-cdf-of-standard-normal-distribution
+\xintdeffloatvar a_1,a_2,a_3,a_4,a_5,a_6 :=
+0.0705230784,0.0422820123,0.0092705272,0.0001520143,0.0002765672,0.0000430638;
+\xintdeffloatvar rac2inv := sqrt(2)/2 ;
+\xintdeffloatfunc erfc(x) := % uniquement pour x positif
+((((((a_6*x+a_5)*x+a_4)*x+a_3)*x+a_2)*x+a_1)*x+1)**-16 ; % fin de définition de erfc(x)
+\xintdeffloatfunc Phi(z) := (z>=0)?{1 - 0.5 * erfc(rac2inv * z)}{0.5 * erfc(-rac2inv * z)};
+
+\newcommand\CalcNormC[4]{%msab
+ %def des bornes de l'intervalle suivant l'absence de a ou de b...
+ \def\BorneInf{#3}\def\BorneSup{#4}
+ \ifthenelse{\equal{#3}{*}}%
+ {\def\BorneInf{#4-10*#2}}
+ {}
+ \ifthenelse{\equal{#4}{*}}%
+ {\def\BorneSup{#3+10*#2}}
+ {}
+ \xintFloatToDecimal{\xintfloateval{Phi((\BorneSup-#1)/#2)-Phi((\BorneInf-#1)/#2)}}
+}
+%calculs "simples" fiabilite
+\newcommand\CalcExpoC[3]{%lab
+ \def\BorneInf{#2}\def\BorneSup{#3}
+ \ifthenelse{\equal{#2}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#3}{*}}%
+ {\def\BorneSup{100/#1}}
+ {}
+ \xintFloatToDecimal{\xintfloateval{exp(-#1*\BorneInf)-exp(-#1*\BorneSup)}}
+}
+
+%calculs formatés
+\NewDocumentCommand{\BinomP}{ s O{3} m m m }{%*=sci,2=prec,3=n,4=p,5=k
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(binomial(#3,#5)*#4^#5*(1-#4)^(#3-#5),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(binomial(#3,#5)*#4^#5*(1-#4)^(#3-#5),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\BinomC}{ s O{3} m m m m }{%*=sci,2=prec,3=n,4=p,5=a,6=b
+ \def\BorneInf{#5}\def\BorneSup{#6}
+ \ifthenelse{\equal{#5}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#6}{*}}%
+ {\def\BorneSup{#3}}
+ {}
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#3,i)*#4^i*(1-#4)^(#3-i), i=\BorneInf..\BorneSup),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#3,i)*#4^i*(1-#4)^(#3-i), i=\BorneInf..\BorneSup),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\GeomP}{ s O{3} m m }{%*=sci,2=prec,3=p,4=k
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round((1-#3)^(#4-1)*(#3),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round((1-#3)^(#4-1)*(#3),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\GeomC}{ s O{3} m m m }{%*=sci,2=prec,3=p,4=a,5=b
+ \def\BorneInf{#4}\def\BorneSup{#5}
+ \ifthenelse{\equal{#4}{*}}%
+ {\def\BorneInf{1}}
+ {}
+ \ifthenelse{\equal{#5}{*}}%
+ {\def\BorneSup{\fpeval{trunc(1/#3*10,0)}}}
+ {}
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add((1-#3)^(i-1)*(#3), i=\BorneInf..\BorneSup),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add((1-#3)^(i-1)*(#3), i=\BorneInf..\BorneSup),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\HypergeomP}{ s O{3} m m m m }{%*=sci,2=prec,3=N,4=n,5=m,6=k
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(binomial(#5,#6)*binomial(#3-#5,#4-#6)/binomial(#3,#4),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(binomial(#5,#6)*binomial(#3-#5,#4-#6)/binomial(#3,#4),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\HypergeomC}{ s O{3} m m m m m }{%*=sci,2=prec,3=N,4=n,5=m,6=a,7=b
+ \def\BorneInf{#6}\def\BorneSup{#7}
+ \ifthenelse{\equal{#6}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#7}{*}}%
+ {\def\BorneSup{#3}}
+ {}
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#5,i)*binomial(#3-#5,#4-i)/binomial(#3,#4), i=\BorneInf..\BorneSup),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add(binomial(#5,i)*binomial(#3-#5,#4-i)/binomial(#3,#4), i=\BorneInf..\BorneSup),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\PoissonP}{ s O{3} m m }{%*=sci,2=prec,3=lbda,4=k
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(exp(-#3)*#3^#4/factorial(#4),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(exp(-#3)*#3^#4/factorial(#4),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\PoissonC}{ s O{3} m m m }{%*=ing,2=prec,3=lbda,4=a,5=b
+ \def\BorneInf{#4}\def\BorneSup{#5}
+ \ifthenelse{\equal{#4}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#5}{*}}%
+ {\def\BorneSup{10*#3}}
+ {}
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(add(exp(-#3)*#3^i/factorial(i), i=\BorneInf..\BorneSup),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(add(exp(-#3)*#3^i/factorial(i), i=\BorneInf..\BorneSup),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\NormaleC}{ s O{3} m m m m }{%
+ %*=ing,2=prec,3=mu,4=sigma,5=a,6=b
+ %def des bornes de l'intervalle suivant l'absence de a ou de b...
+ \def\BorneInf{#5}\def\BorneSup{#6}
+ \ifthenelse{\equal{#5}{*}}%
+ {\def\BorneInf{#6-10*#4}}
+ {}
+ \ifthenelse{\equal{#6}{*}}%
+ {\def\BorneSup{#5+10*#4}}
+ {}
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(Phi((\BorneSup-#3)/#4)-Phi((\BorneInf-#3)/#4),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintfloateval{round(Phi((\BorneSup-#3)/#4)-Phi((\BorneInf-#3)/#4),#2)}}}
+ }
+}
+
+\NewDocumentCommand{\ExpoC}{ s O{3} m m m }{%*=ing,2=prec,3=lbda,4=a,5=b
+ \def\BorneInf{#4}\def\BorneSup{#5}
+ \ifthenelse{\equal{#4}{*}}%
+ {\def\BorneInf{0}}
+ {}
+ \ifthenelse{\equal{#5}{*}}%
+ {\def\BorneSup{100/#3}}
+ {}
+ \IfBooleanTF{#1}%
+ {%
+ \num[exponent-mode=scientific]{\xintFloatToDecimal{\xintfloateval{round(exp(-#3*\BorneInf)-exp(-#3*\BorneSup),#2)}}}
+ }%
+ {%
+ \num[minimum-decimal-digits=#2]{\xintFloatToDecimal{\xintFloatToDecimal{\xintfloateval{round(exp(-#3*\BorneInf)-exp(-#3*\BorneSup),#2)}}}}
+ }
+}
+
+%%------ARBRESPROBAS
+\defKV[PLTIKZARBRE]{%
+ Unite=\def\PLAPunite{#1},%
+ EspaceNiveau=\def\PLAPespniv{#1},%
+ EspaceFeuille=\def\PLAPespfeuille{#1},%
+ Type=\def\PLAPtype{#1},%
+ Police=\def\PLAPfont{#1},%
+ PoliceProbas=\def\PLAPfontproba{#1},%
+ StyleTrait=\def\PLAPtypetrait{#1},%
+ EpaisseurTrait=\def\PLAPeptrait{#1}
+}
+
+\setKVdefault[PLTIKZARBRE]{%
+ Unite=1cm,%
+ EspaceNiveau=3.25,%
+ EspaceFeuille=1,%
+ Type=2x2,%
+ Police=\normalfont\normalsize,%
+ PoliceProbas=\normalfont\small,%
+ InclineProbas=true,%
+ Fleche=false,%
+ StyleTrait={},%
+ EpaisseurTrait=semithick
+}
+
+\NewDocumentCommand\ArbreProbasTikz{ O{} m }{%1=options,2=libellés
+ \useKVdefault[PLTIKZARBRE]%
+ \setKV[PLTIKZARBRE]{#1}%
+ \setsepchar[.]{,./}%
+ \readlist*\PLARBREDONNES{#2}%
+ \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
+ %styles
+ \tikzstyle{noeud} = [font=\PLAPfont]
+ \tikzstyle{probas}= [font=\PLAPfontproba]
+ \ifboolKV[PLTIKZARBRE]{InclineProbas}
+ {\tikzstyle{PLetiquette}=[pos=0.525,sloped,fill=white]}
+ {\tikzstyle{PLetiquette}=[pos=0.525,fill=white]}
+ \ifboolKV[PLTIKZARBRE]{Fleche}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ %arbre2x2
+ \IfEq{\PLAPtype}{2x2}
+ {%
+ \coordinate (R) at ({0*\PLAPespniv},{-1.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \ifstrempty{\PLARBREDONNES[1,2]}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ }{}
+ %arbre3x2
+ \IfEq{\PLAPtype}{3x2}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-4.5*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
+ %branches
+ \ifstrempty{\PLARBREDONNES[1,2]}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[7,2]}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[8,2]}
+ {\draw[PLfleche] (A13)--(A25) ;}
+ {\draw[PLfleche] (A13)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[9,2]}
+ {\draw[PLfleche] (A13)--(A26) ;}
+ {\draw[PLfleche] (A13)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{2x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ %branches
+ \ifstrempty{\PLARBREDONNES[1,2]}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[7,2]}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[8,2]}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{3x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A27) at ({2*\PLAPespniv},{-6*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A28) at ({2*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[11,1]};
+ \node[noeud] (A29) at ({2*\PLAPespniv},{-8*\PLAPespfeuille}) {\PLARBREDONNES[12,1]};
+ %branches
+ \ifstrempty{\PLARBREDONNES[1,2]}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[9,2]}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ %N2
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[7,2]}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[8,2]}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[10,2]}
+ {\draw[PLfleche] (A13)--(A27) ;}
+ {\draw[PLfleche] (A13)--(A27) node[probas,PLetiquette,{\PLARBREDONNES[10,3]}] {{\PLARBREDONNES[10,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[11,2]}
+ {\draw[PLfleche] (A13)--(A28) ;}
+ {\draw[PLfleche] (A13)--(A28) node[probas,PLetiquette,{\PLARBREDONNES[11,3]}] {{\PLARBREDONNES[11,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[12,2]}
+ {\draw[PLfleche] (A13)--(A29) ;}
+ {\draw[PLfleche] (A13)--(A29) node[probas,PLetiquette,{\PLARBREDONNES[12,3]}] {{\PLARBREDONNES[12,2]}} ;}
+ }{}
+ \end{tikzpicture}
+}
+
+\NewDocumentEnvironment{EnvArbreProbasTikz}{ O{} m }%1=options,2=libellés
+{
+ \useKVdefault[PLTIKZARBRE]
+ \setKV[PLTIKZARBRE]{#1}
+ \setsepchar[.]{,./}%
+ \readlist*\PLARBREDONNES{#2}
+ \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
+ %styles
+ \tikzstyle{noeud} = [font=\PLAPfont]
+ \tikzstyle{probas}= [font=\PLAPfontproba]
+ \ifboolKV[PLTIKZARBRE]{InclineProbas}
+ {\tikzstyle{PLetiquette}=[pos=0.525,sloped,fill=white]}
+ {\tikzstyle{PLetiquette}=[pos=0.525,fill=white]}
+ \ifboolKV[PLTIKZARBRE]{Fleche}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ %arbre2x2
+ \IfEq{\PLAPtype}{2x2}
+ {%
+ \coordinate (R) at ({0*\PLAPespniv},{-1.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \ifstrempty{\PLARBREDONNES[1,2]}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ }{}
+ %arbre3x2
+ \IfEq{\PLAPtype}{3x2}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-4.5*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
+ %branches
+ \ifstrempty{\PLARBREDONNES[1,2]}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[7,2]}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[8,2]}
+ {\draw[PLfleche] (A13)--(A25) ;}
+ {\draw[PLfleche] (A13)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[9,2]}
+ {\draw[PLfleche] (A13)--(A26) ;}
+ {\draw[PLfleche] (A13)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{2x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ %branches
+ \ifstrempty{\PLARBREDONNES[1,2]}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[7,2]}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[8,2]}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{3x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A27) at ({2*\PLAPespniv},{-6*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A28) at ({2*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[11,1]};
+ \node[noeud] (A29) at ({2*\PLAPespniv},{-8*\PLAPespfeuille}) {\PLARBREDONNES[12,1]};
+ %branches
+ \ifstrempty{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[9,2]}{}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ %N2
+ \ifstrempty{\PLARBREDONNES[2,2]}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[3,2]}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[4,2]}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[6,2]}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[7,2]}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[8,2]}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[10,2]}
+ {\draw[PLfleche] (A13)--(A27) ;}
+ {\draw[PLfleche] (A13)--(A27) node[probas,PLetiquette,{\PLARBREDONNES[10,3]}] {{\PLARBREDONNES[10,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[11,2]}
+ {\draw[PLfleche] (A13)--(A28) ;}
+ {\draw[PLfleche] (A13)--(A28) node[probas,PLetiquette,{\PLARBREDONNES[11,3]}] {{\PLARBREDONNES[11,2]}} ;}
+ \ifstrempty{\PLARBREDONNES[12,2]}
+ {\draw[PLfleche] (A13)--(A29) ;}
+ {\draw[PLfleche] (A13)--(A29) node[probas,PLetiquette,{\PLARBREDONNES[12,3]}] {{\PLARBREDONNES[12,2]}} ;}
+ }{}
+ }
+ {
+ \end{tikzpicture}
+}
+
+%%------SCHEMASPROBAS
+%densites utiles
+\def\densnorm#1{1/(sqrt(2*pi))*exp(-0.5*(#1*#1))}
+\def\densexpo#1{exp(-#1)}
+
+\defKV[GRPHPROBCONTINUES]{%
+ CouleurAire=\def\GRPHPROBcoulsurf{#1},%
+ CouleurCourbe=\def\GRPHPROBcoulcbe{#1},%
+ Largeur=\def\GRPHPROBlarg{#1},%
+ Hauteur=\def\GRPHPROBhauteur{#1}
+}
+
+\setKVdefault[GRPHPROBCONTINUES]{%
+ CouleurAire=LightGray,%
+ CouleurCourbe=red,%
+ Largeur=2,%
+ Hauteur=1,%
+ AfficheM=true,%
+ AfficheCadre=true
+}
+
+\NewDocumentCommand\LoiNormaleGraphe{ O{} D<>{} m m m m }{%1=options,2=optionstikz,3=m,4=s,5=a,6=b
+ %simplekv
+ \useKVdefault[GRPHPROBCONTINUES]%
+ \setKV[GRPHPROBCONTINUES]{#1}%
+ %unites
+ \def\UNITEX{\fpeval{\GRPHPROBlarg/8}}\def\UNITEY{\fpeval{\GRPHPROBhauteur/0.5}}%
+ %bornes
+ \def\BorneInf{\fpeval{(#5-#3)/#4}}\def\BorneSup{\fpeval{(#6-#3)/#4}}%
+ \ifthenelse{\equal{#5}{*}}{\def\BorneInf{-4}}{}%
+ \ifthenelse{\equal{#6}{*}}{\def\BorneSup{4}}{}%
+ %tikzpicture
+ \begin{tikzpicture}[x=\UNITEX cm,y=\UNITEY cm,#2]
+ \ifboolKV[GRPHPROBCONTINUES]{AfficheM}%
+ {\draw (0,-0.0375) node[font=\tiny,scale={2*\UNITEX}] {#3} ;}
+ {}
+ \ifboolKV[GRPHPROBCONTINUES]{AfficheCadre}%
+ {\draw[Gray] (-4,-0.075) rectangle (4,0.425) ;}
+ {}
+ \clip (-4,-0.075) rectangle (4,0.425) ;
+ \draw[black,semithick,fill=\GRPHPROBcoulsurf] ({\BorneInf},0) -- plot [domain={\BorneInf}:{\BorneSup},samples=100] (\x,{\densnorm{\x}}) -- ({\BorneSup},0) -- cycle;
+ \draw[thick,->,>=latex] (-4,0)--(4,0) ;
+ \draw[thick,densely dotted] (0,0)--(0,0.39894) ;
+ \draw[thick,domain=-4:4,samples=100,\GRPHPROBcoulcbe] plot (\x,{\densnorm{\x}}) ;
+ \end{tikzpicture}
+}
+
+\NewDocumentCommand\LoiExpoGraphe{ O{} D<>{} m m m }{%1=options,2=optionstikz,3=l,4=a,5=b
+ %simplekv
+ \useKVdefault[GRPHPROBCONTINUES]%
+ \setKV[GRPHPROBCONTINUES]{#1}%
+ %unites
+ \def\UNITEX{\fpeval{\GRPHPROBlarg/4}}\def\UNITEY{\fpeval{\GRPHPROBhauteur/1}}%
+ \def\MOYENNE{\fpeval{trunc(1/#3,0)}}%
+ %bornes
+ \def\BorneInf{\fpeval{#3*#4}}\def\BorneSup{\fpeval{#3*#5}}%
+ \ifthenelse{\equal{#4}{*}}{\def\BorneInf{0}}{}%
+ \ifthenelse{\equal{#5}{*}}{\def\BorneSup{4}}{}%
+ %tikzpicture
+ \begin{tikzpicture}[x=\UNITEX cm,y=\UNITEY cm,#2]
+ \ifboolKV[GRPHPROBCONTINUES]{AfficheCadre}%
+ {\draw[Gray] (-0.2,-0.15) rectangle (3.8,0.85) ;}
+ {}
+ \clip (-0.2,-0.15) rectangle (3.8,0.85) ;
+ \draw[black,semithick,fill=\GRPHPROBcoulsurf] ({\BorneInf},0) -- plot [domain={\BorneInf}:{\BorneSup},samples=100] (\x,{0.7*\densexpo{\x}}) -- ({\BorneSup},0) -- cycle;
+ \ifboolKV[GRPHPROBCONTINUES]{AfficheM}%
+ {\draw (1,-0.075) node[font=\tiny,scale={\UNITEX}] {\MOYENNE} ;
+ \draw[thick,densely dotted] (1,0)--(1,{0.7*\densexpo{1}}) ;}
+ {}
+ \draw[thick,->,>=latex] (-0.2,0)--(3.8,0) ;
+ \draw[thick,->,>=latex] (0,-0.15)--(0,0.85) ;
+ \draw[thick,domain=0:3.8,samples=100,\GRPHPROBcoulcbe] plot (\x,{0.7*\densexpo{\x}}) ;
+ \end{tikzpicture}
+}
+
+%%------aNp/Cnp
+\NewDocumentCommand\CalculAnp{ m m }{%avec et pour xint, p/n
+ pfactorial(#2-#1,#2)
+}
+
+\NewDocumentCommand\CalculCnp{ m m }{%avec et pour xint, p/n
+ binomial(#2,#1)
+}
+
+\setKVdefault[anpCnp]{%
+ Formule=false,%
+ Notation=false,%
+ NotationAncien=false
+}
+\NewDocumentCommand\Arrangement{ s O{} m m }{%p/n
+ \useKVdefault[anpCnp]%
+ \setKV[anpCnp]{#2}%
+ \ifboolKV[anpCnp]{Notation}{A_{#4}^{#3}=}{}%
+ \ifboolKV[anpCnp]{Formule}{\frac{#4!}{\inteval{#4-#3}!}=}{}%
+ \IfBooleanTF{#1}%
+ {\xinteval{\CalculAnp{#3}{#4}}}%non formaté
+ {\num{\xinteval{\CalculAnp{#3}{#4}}}}%formaté
+}
+\NewDocumentCommand\Combinaison{ s O{} m m }{%p/n
+ \useKVdefault[anpCnp]%
+ \setKV[anpCnp]{#2}%
+ \ifboolKV[anpCnp]{Notation}{\binom{#4}{#3} =}{}%
+ \ifboolKV[anpCnp]{NotationAncien}{C_{#4}^{#3}=}{}%
+ \ifboolKV[anpCnp]{Formule}{\frac{#4!}{#3! \times \inteval{#4-#3}!}=}{}%
+ \IfBooleanTF{#1}%
+ {\xinteval{\CalculCnp{#3}{#4}}}%non formaté
+ {\num{\xinteval{\CalculCnp{#3}{#4}}}}%formaté
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
new file mode 100644
index 0000000000..c44d144633
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
@@ -0,0 +1,246 @@
+% proflycee-tools-recreat.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------FENÊTRE CALCUL FORMEL
+\newcommand\CFchap{\textasciicircum}
+\newcounter{CFnum}
+%def des clés
+\defKV[paramfenxcas]{%
+ Largeur=\def\CFlarg{#1},%
+ EspaceLg=\def\CFesplg{#1},%
+ PremCol=\def\CFpremcol{#1},%
+ HautPremCol=\def\CFhpremcol{#1},%
+ Taille=\def\CFtaille{#1},%
+ Couleur=\def\CFcouleur{#1},%
+ TailleTitre=\def\CFtailletitre{#1},%
+ CouleurCmd=\def\CFcoulcmd{#1},%
+ CouleurRes=\def\CFcoulres{#1},%
+ PosCmd=\def\CFposcmd{#1},%
+ PosRes=\def\CFposres{#1},%
+ LabelTitre=\def\CFlabeltitre{#1}%
+}
+\setKVdefault[paramfenxcas]{%
+ Largeur=16,EspaceLg=2pt,PremCol=0.3,HautPremCol=0.4,%
+ Couleur=darkgray,Menu=true,Titre=false,TailleTitre=\normalsize,Taille=\normalsize,%
+ Sep=true,PosRes=centre,PosCmd=gauche,%
+ CouleurCmd=red,CouleurRes=blue,%
+ LabelTitre={Résultats obtenus avec un logiciel de Calcul Formel}%
+}
+
+\newcommand\CalculFormelParametres[1][]{%
+ \setcounter{CFnum}{0}
+ \useKVdefault[paramfenxcas]%
+ \setKV[paramfenxcas]{#1}% on paramètres les nouvelles clés et on les simplifie
+}
+
+\defKV[paramlgxcas]{%
+ HautCmd=\def\CFhle{#1},%
+ HautRes=\def\CFhlr{#1}
+}
+\setKVdefault[paramlgxcas]{%
+ HautCmd=0.75,%
+ HautRes=0.75
+}
+
+\newcommand\CalculFormelLigne[3][]{%
+ \addtocounter{CFnum}{1}
+ \def\CFL{\theCFnum}%
+ \def\CFLA{\inteval{\CFL-1}}%
+ \useKVdefault[paramlgxcas]%
+ \setKV[paramlgxcas]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\CFLA{\inteval{\CFL-1}}%
+ %DÉCLARATION DES NŒUDS (les "6" coins des lignes commande et résultat)
+ \xintifboolexpr{\CFL == 1}%si c'est la première ligne
+ {\coordinate (A0\CFL) at (0,0);}
+ {\coordinate (A0\CFL) at ($(A2\CFLA) + (0,{-\CFesplg})$);}
+ \coordinate (A1\CFL) at ($(A0\CFL) + (0,{-\CFhle})$);
+ \coordinate (A2\CFL) at ($(A1\CFL) + (0,{-\CFhlr})$);
+ \coordinate (A3\CFL) at ($(A0\CFL) + ({\CFlarg},0)$);
+ \coordinate (A4\CFL) at ($(A1\CFL) + ({\CFlarg},0)$);
+ \coordinate (A5\CFL) at ($(A2\CFL) + ({\CFlarg},0)$);
+ %DÉCLARATION DES NŒUDS INTERMÉDIAIRES (pour les commandes et les résultats)
+ \coordinate (C1\CFL) at ($(A0\CFL) + (0,{-0.5*\CFhle})$);
+ \coordinate (C2\CFL) at ($(A0\CFL) + ({0.5*\CFlarg},{-0.5*\CFhle})$);
+ \coordinate (C3\CFL) at ($(A0\CFL) + ({\CFlarg},{-0.5*\CFhle})$);
+ \coordinate (R1\CFL) at ($(A1\CFL) + (0,{-0.5*\CFhlr})$);
+ \coordinate (R2\CFL) at ($(A1\CFL) + ({0.5*\CFlarg},{-0.5*\CFhlr})$);
+ \coordinate (R3\CFL) at ($(A1\CFL) + ({\CFlarg},{-0.5*\CFhlr})$);
+ %RECTANGLE DE BASE
+ \draw[\CFcouleur] (A0\CFL) rectangle (A5\CFL) ;
+ %LA COMMANDE EN ROUGE
+ \IfStrEq{\CFposcmd}{centre}%si poscmd=center
+ {\draw (C2\CFL) node[\CFcoulcmd,font=\CFtaille] {#2} ;}
+ {}
+ \IfStrEq{\CFposcmd}{gauche}%si poscmd=left
+ {\draw (C1\CFL) node[right,\CFcoulcmd,font=\CFtaille] {#2} ;}
+ {}
+ \IfStrEq{\CFposcmd}{right}%si poscmd=right
+ {\draw (C3\CFL) node[left,\CFcoulcmd,font=\CFtaille] {#2} ;}
+ {}
+ %LE RÉSULTAT
+ \IfStrEq{\CFposres}{centre}%si posrep=center
+ {\draw (R2\CFL) node[\CFcoulres,font=\CFtaille] {#3} ;}
+ {}
+ \IfStrEq{\CFposres}{gauche}%si posrep=left
+ {\draw (R1\CFL) node[right,\CFcoulres,font=\CFtaille] {#3} ;}
+ {}
+ \IfStrEq{\CFposres}{right}%si posrep=right
+ {\draw (R3\CFL) node[left,\CFcoulres,font=\CFtaille] {#3} ;}
+ {}
+ \ifboolKV[paramfenxcas]{Sep}%si sep=true
+ {\draw[\CFcouleur] (A1\CFL) -- (A4\CFL);}%
+ {}
+ %LE PETIT NUMÉRO
+ \draw[\CFcouleur] (A0\CFL) rectangle ++ ({-\CFpremcol},{-\CFhpremcol}) node[\CFcouleur,midway,font=\small\sffamily\bfseries] {\CFL} ;
+ %LE RECTANGLE "MENU"
+ \ifboolKV[paramfenxcas]{Menu}%si menu=true
+ {\draw[\CFcouleur,fill=\CFcouleur!25] (A5\CFL) rectangle ++ (-0.65,0.25) node[black,midway,font=\tiny\sffamily\bfseries] {MENU} ;}%
+ {}
+ %LE BLOC "TITRE"
+ \ifboolKV[paramfenxcas]{Titre}%si titre=true
+ {\draw[\CFcouleur,fill=lightgray!25,rounded corners] ($(A01) + (0,2pt)$) rectangle ++ ($({\CFlarg},2em)$) node[ForestGreen!50!\CFcouleur,midway,font=\CFtailletitre\ttfamily\bfseries] {\CFlabeltitre};}
+ {}
+}
+
+%%------CartoucheCapytale
+\definecolor{vertcapyt}{rgb}{0.0,0.5,0.0}
+%\definecolor{vertcapyt}{HTML}{008000}
+\DeclareTotalTCBox{\CartoucheCapytale}{ s O{} m }
+ {enhanced,size=fbox,on line,arc=3pt,colback=vertcapyt,colframe=vertcapyt,fontupper=\IfBooleanTF{#1}{\ttfamily}{\sffamily}\bfseries,colupper=white}%
+ {#3#2~{\scriptsize\faLink}}
+
+%%------SUDOMATHS
+\defKV[PLTIKZSUDOM]{%
+ CouleurTexte=\def\PLSMcoultexte{#1},%
+ Epaisseur=\def\PLSMepf{#1},%
+ Epaisseurg=\def\PLSMepg{#1},%
+ Unite=\def\PLSMunite{#1},%
+ CouleurCase=\def\PLSMcoulcase{#1},%
+ NbCol=\def\PLSMnbcol{#1},%
+ NbSubCol=\def\PLSMnbsubcol{#1},%
+ NbLig=\def\PLSMnblig{#1},%
+ NbSubLig=\def\PLSMnbsublig{#1},%
+ Police=\def\PLSMfonte{#1},%
+ PoliceLeg=\def\PLSMfonteleg{#1},%
+ ListeLegV=\def\PLSMlistelegv{#1},%
+ ListeLegH=\def\PLSMlistelegh{#1},%
+ DecalLegende=\def\PLSMdecalleg{#1}
+}
+
+\setKVdefault[PLTIKZSUDOM]{%
+ Epaisseurg=1.5pt,%
+ Epaisseur=0.5pt,%
+ Unite=1cm,%
+ CouleurCase=LightBlue!50,%
+ CouleurTexte=blue,%
+ NbCol=9,%
+ NbSubCol=3,%
+ NbLig=9,%
+ NbSubLig=3,
+ Police=\normalfont\normalsize,%
+ PoliceLeg=\normalfont\sffamily,%
+ Legendes=true,%
+ ListeLegV=ABCDEFGHIJKLMNOPQRSTUVWXYZ,%
+ ListeLegH=abcdefghijklmnopqrstuvwxyz,%
+ DecalLegende=0.45
+}
+
+\NewDocumentEnvironment{EnvSudoMaths}{ O{} m }
+ {
+ \useKVdefault[PLTIKZSUDOM]
+ \setKV[PLTIKZSUDOM]{#1}% on paramètres les nouvelles clés et on les simplifie
+ %calculs intermédiaires
+ \def\larcolinter{\inteval{\PLSMnbcol/\PLSMnbsubcol}}
+ \def\larliginter{\inteval{\PLSMnblig/\PLSMnbsublig}}
+ %lecture liste
+ \IfEq{#2}{}{}%
+ {%
+ \setsepchar[.]{§./}%
+ \readlist*\SPGrilleSudoMaths{#2}%
+ }
+ %débt envtik
+ \begin{tikzpicture}[x=\PLSMunite,y=\PLSMunite,line join=miter]
+ %cases
+ \IfEq{#2}{}{}%
+ {%
+ \foreach \i in {1,2,...,\PLSMnblig}{%
+ \foreach \j in {1,2,...,\PLSMnbcol}{%
+ \itemtomacro\SPGrilleSudoMaths[\i,\j]\SMcase
+ \IfSubStr{\SMcase}{*}%si on veut colorier via *
+ {%
+ \StrDel{\SMcase}{*}[\SMcaseb]%
+ \draw[draw=none,fill=\PLSMcoulcase] ({\j-1},{1-\i}) rectangle++ (1,-1) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte,midway] {\SMcaseb} ;%
+ }
+ {%
+ \draw ({\j-0.5},{0.5-\i}) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte] {\SMcase} ;%
+ }
+ }
+ }%
+ }
+ %grilles
+ \draw[line width=\PLSMepg] (0,0) rectangle ({\PLSMnbcol},{-\PLSMnblig}) ;
+ \draw[line width=\PLSMepf,xstep=1,ystep=1] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+ \draw[line width=\PLSMepg,xstep=\larcolinter,ystep=\larliginter] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+ %légendes
+ \ifboolKV[PLTIKZSUDOM]{Legendes}
+ {%
+ \foreach \i in {1,2,...,\PLSMnbcol}{\draw ({\i-0.5},{\PLSMdecalleg}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\strut\StrChar{\PLSMlistelegh}{\i}} ;}
+ \foreach \j in {1,2,...,\PLSMnblig}{\draw ({-\PLSMdecalleg},{0.5-\j}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\StrChar{\PLSMlistelegv}{\j}} ;}
+ }{}
+ }
+ {
+ \end{tikzpicture}
+ }
+
+\NewDocumentCommand\SudoMaths{ O{} m }{%
+ \useKVdefault[PLTIKZSUDOM]
+ \setKV[PLTIKZSUDOM]{#1}% on paramètres les nouvelles clés et on les simplifie
+ %calculs intermédiaires
+ \def\larcolinter{\inteval{\PLSMnbcol/\PLSMnbsubcol}}
+ \def\larliginter{\inteval{\PLSMnblig/\PLSMnbsublig}}
+ %lecture liste
+ \IfEq{#2}{}{}%
+ {%
+ \setsepchar[.]{§./}%
+ \readlist*\SPGrilleSudoMaths{#2}%
+ }
+ %débt envtik
+ \begin{tikzpicture}[x=\PLSMunite,y=\PLSMunite,line join=miter]
+ %cases
+ \IfEq{#2}{}{}%
+ {%
+ \foreach \i in {1,2,...,\PLSMnblig}{%
+ \foreach \j in {1,2,...,\PLSMnbcol}{%
+ \itemtomacro\SPGrilleSudoMaths[\i,\j]\SMcase
+ \IfSubStr{\SMcase}{*}%si on veut colorier via *
+ {%
+ \StrDel{\SMcase}{*}[\SMcaseb]%
+ \draw[draw=none,fill=\PLSMcoulcase] ({\j-1},{1-\i}) rectangle++ (1,-1) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte,midway] {\SMcaseb} ;%
+ }
+ {%
+ \draw ({\j-0.5},{0.5-\i}) node[inner sep=0pt,outer sep=0pt,\PLSMcoultexte,font=\PLSMfonte] {\SMcase} ;%
+ }
+ }
+ }%
+ }
+ %grilles
+ \draw[line width=\PLSMepg] (0,0) rectangle ({\PLSMnbcol},{-\PLSMnblig}) ;
+ \draw[line width=\PLSMepf,xstep=1,ystep=1] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+ \draw[line width=\PLSMepg,xstep=\larcolinter,ystep=\larliginter] (0,0) grid ({\PLSMnbcol},{-\PLSMnblig}) ;
+ %légendes
+ \ifboolKV[PLTIKZSUDOM]{Legendes}
+ {%
+ \foreach \i in {1,2,...,\PLSMnbcol}{\draw ({\i-0.5},{\PLSMdecalleg}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\strut\StrChar{\PLSMlistelegh}{\i}} ;}
+ \foreach \j in {1,2,...,\PLSMnblig}{\draw ({-\PLSMdecalleg},{0.5-\j}) node[inner sep=0pt,outer sep=0pt,font=\PLSMfonteleg] {\StrChar{\PLSMlistelegv}{\j}} ;}
+ }{}
+ \end{tikzpicture}
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
new file mode 100644
index 0000000000..cc57e1fbf9
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
@@ -0,0 +1,198 @@
+% proflycee-tools-stats.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------RegressionLinéaire
+%calcul des paramètres
+\defKV[coeffreglin]{%
+ NomCoeffa=\def\RegLinCoeffa{#1},%
+ NomCoeffb=\def\RegLinCoeffb{#1},%
+ NomCoeffr=\def\RegLinCoeffr{#1},%
+ NomCoeffrd=\def\RegLinCoeffrd{#1},%
+ NomXmin=\def\RegLinCoeffXmin{#1},%
+ NomXmax=\def\RegLinCoeffXmax{#1}
+}
+
+\setKVdefault[coeffreglin]{%
+ NomCoeffa=COEFFa,%
+ NomCoeffb=COEFFb,%
+ NomCoeffr=COEFFr,%
+ NomCoeffrd=COEFFrd,%
+ NomXmin=LXmin,%
+ NomXmax=LXmax
+}
+
+\newcommand\CalculsRegLin[3][]{%
+ \useKVdefault[coeffreglin]%
+ \setKV[coeffreglin]{#1}% on paramètres les nouvelles clés et on les simplifie
+ %xmin et xmax
+ \expandafter\def\csname\RegLinCoeffXmin\endcsname{\fpeval{min(#2)}}
+ \expandafter\def\csname\RegLinCoeffXmax\endcsname{\fpeval{max(#2)}}
+ %listes des données
+ \def\xliste{#2}
+ \def\yliste{#3}
+ \readlist*\LX{\xliste}
+ \readlist*\LY{\yliste}
+ %taille des listes
+ \def\LNB{\inteval{\LXlen}}
+ %somme des LX et des LY OK
+ \xdef\LXSomme{0}
+ \xdef\LYSomme{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXSomme{\fpeval{\LXSomme+\LX[\i]}}
+ }
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LYSomme{\fpeval{\LYSomme+\LY[\i]}}
+ }
+ %moyenne des LX et des LY OK
+ \xdef\LXmoy{\fpeval{\LXSomme/\LNB}}
+ \xdef\LYmoy{\fpeval{\LYSomme/\LNB}}
+ %variance des LX et des LY OK
+ \xdef\LXvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXvar{\fpeval{\LXvar+(\LX[\i]-\LXmoy)*(\LX[\i]-\LXmoy)}}
+ }
+ \xdef\LXvar{\fpeval{\LXvar/\LNB}}
+ \xdef\LYvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LYvar{\fpeval{\LYvar+(\LY[\i]-\LYmoy)*(\LY[\i]-\LYmoy)}}
+ }
+ \xdef\LYvar{\fpeval{\LYvar/\LNB}}
+ %covariance des XY OK
+ \xdef\LXYvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXYvar{\fpeval{\LXYvar+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}}
+ }
+ \xdef\LXYvar{\fpeval{\LXYvar/\LNB}}
+ %COEFFS OK
+ \expandafter\def\csname\RegLinCoeffa\endcsname{\fpeval{\LXYvar/\LXvar}}
+ \expandafter\def\csname\RegLinCoeffb\endcsname{\fpeval{\LYmoy-\csname\RegLinCoeffa\endcsname*\LXmoy}}
+ \expandafter\def\csname\RegLinCoeffr\endcsname{\fpeval{\LXYvar/sqrt(\LXvar*\LYvar)}}
+ \expandafter\def\csname\RegLinCoeffrd\endcsname{\fpeval{\csname\RegLinCoeffr\endcsname*\csname\RegLinCoeffr\endcsname}}
+}
+
+%pour un nuage en TiKz
+\defKV[nuagereglin]{%
+ Couleur=\def\RegLinNuageCouleur{#1},%
+ Taille=\def\RegLinNuageTaille{#1},
+ Ox=\def\RegLinNuageOx{#1},%
+ Oy=\def\RegLinNuageOy{#1},%
+}
+
+\setKVdefault[nuagereglin]{%
+ Couleur=teal,%
+ Taille=2pt,%
+ Ox=0,%
+ Oy=0
+}
+
+\newcommand\PointsRegLin[3][]{%
+ \useKVdefault[nuagereglin]
+ \setKV[nuagereglin]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\xliste{#2}
+ \def\yliste{#3}
+ \readlist*\LX{\xliste}
+ \readlist*\LY{\yliste}
+ %taille des listes
+ \def\LNB{\inteval{\LXlen}}
+ \foreach \i in {1,2,...,\LNB} {\filldraw[\RegLinNuageCouleur] ({\LX[\i]-\RegLinNuageOx},{\LY[\i]-\RegLinNuageOy}) circle[radius=\RegLinNuageTaille] ;}
+}
+
+\NewDocumentEnvironment{StatsTikz}{ O{} }
+{%
+ \begin{tikzpicture}[#1]
+ }%
+ {%
+ \end{tikzpicture}%
+}
+
+%%------BOITES MOUSTACHES
+\defKV[boiteamoustaches]{%
+ Couleur=\def\BaMCouleur{#1},%
+ Elevation=\def\BaMElevation{#1},%
+ Hauteur=\def\BaMHauteur{#1},%
+ Moyenne=\def\BaMMoyenne{#1},%
+ Epaisseur=\def\BaMEpaisseur{#1},%
+ Remplir=\def\BaMRemplissage{#1}
+}
+
+\setKVdefault[boiteamoustaches]{%
+ Couleur=black,%
+ Elevation=1,%
+ Hauteur=1,%
+ AffMoyenne=false,%
+ Epaisseur=thick,%
+ Pointilles=false,%
+ Valeurs=false,%
+ Remplir=white
+}
+
+\defKV[boiteamoustachesaxe]{%
+ Min=\def\BaMAxeMin{#1},%
+ Max=\def\BaMAxeMax{#1},%
+ Elargir=\def\BaMAxeElarg{#1},%
+ Epaisseur=\def\BaMAxeEpaisseur{#1},%
+ Valeurs=\def\BaMAxeValeurs{#1}
+}
+
+\setKVdefault[boiteamoustachesaxe]{%
+ Elargir=0.05,%
+ Epaisseur=thick,%
+ AffValeurs=false
+}
+
+\newcommand\BoiteMoustachesAxe[1][]{
+ \useKVdefault[boiteamoustachesaxe]
+ \setKV[boiteamoustachesaxe]{#1}
+ \def\BaMaxelargeur{\fpeval{\BaMAxeMax-\BaMAxeMin}}
+ \def\BaMaxexmin{\fpeval{\BaMAxeMin-\BaMAxeElarg*\BaMaxelargeur}}
+ \def\BaMaxexmax{\fpeval{\BaMAxeMax+\BaMAxeElarg*\BaMaxelargeur}}
+ \draw[\BaMAxeEpaisseur,->,>=latex] (\BaMaxexmin,0) -- (\BaMaxexmax,0) ;
+ \ifboolKV[boiteamoustachesaxe]{AffValeurs}
+ {\foreach \x in \BaMAxeValeurs \draw[\BaMAxeEpaisseur] (\x,3pt)--(\x,-3pt) node[below=3pt] {\num{\x}} ;}
+ {}
+}
+
+\newcommand\BoiteMoustaches[2][]{
+ \useKVdefault[boiteamoustaches]
+ \setKV[boiteamoustaches]{#1}
+ \setsepchar[.]{/}%
+ \readlist*\BaMListeparams{#2}%
+ \itemtomacro\BaMListeparams[1]\BaMmin%
+ \itemtomacro\BaMListeparams[2]\BaMqu%
+ \itemtomacro\BaMListeparams[3]\BaMmed%
+ \itemtomacro\BaMListeparams[4]\BaMqt%
+ \itemtomacro\BaMListeparams[5]\BaMmax%
+ \draw[draw,\BaMEpaisseur,\BaMCouleur,fill=\BaMRemplissage] ({\BaMqu},{\BaMElevation-0.5*\BaMHauteur}) rectangle ({\BaMqt},{\BaMElevation+0.5*\BaMHauteur}) ;
+ \draw[\BaMEpaisseur,\BaMCouleur] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmin,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmax,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmax,{\BaMElevation+0.5*\BaMHauteur}) (\BaMmed,{\BaMElevation-0.5*\BaMHauteur})--(\BaMmed,{\BaMElevation+0.5*\BaMHauteur});
+ \draw[\BaMEpaisseur,\BaMCouleur] ({\BaMmin},{\BaMElevation})--({\BaMqu},{\BaMElevation}) ({\BaMqt},{\BaMElevation})--({\BaMmax},{\BaMElevation}) ;
+ \ifboolKV[boiteamoustaches]{AffMoyenne}
+ {\filldraw[\BaMCouleur] ({\BaMMoyenne},{\BaMElevation}) circle[radius=2.5pt] ;}
+ {}
+ \ifboolKV[boiteamoustaches]{Pointilles}
+ {
+ \draw[\BaMEpaisseur,densely dashed] (\BaMmin,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmin,0) ;
+ \draw[\BaMEpaisseur,densely dashed] (\BaMqu,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqu,0) ;
+ \draw[\BaMEpaisseur,densely dashed] (\BaMmed,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmed,0) ;
+ \draw[\BaMEpaisseur,densely dashed] (\BaMqt,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMqt,0) ;
+ \draw[\BaMEpaisseur,densely dashed] (\BaMmax,{\BaMElevation-0.5*\BaMHauteur}) -- (\BaMmax,0) ;
+ }
+ {}
+ \ifboolKV[boiteamoustaches]{Valeurs}
+ {
+ \filldraw (\BaMmin,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmin}} ;
+ \filldraw (\BaMqu,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqu}} ;
+ \filldraw (\BaMmed,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmed}} ;
+ \filldraw (\BaMqt,0) circle[radius=2pt] node[below=4pt] {\num{\BaMqt}} ;
+ \filldraw (\BaMmax,0) circle[radius=2pt] node[below=4pt] {\num{\BaMmax}} ;
+ }
+ {}
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex
new file mode 100644
index 0000000000..5cdd3234e3
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex
@@ -0,0 +1,213 @@
+% proflycee-tools-suites.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------CabWeb
+\defKV[webrecurr]{%
+ Fct=\def\PLRecurfct{#1},%
+ Nom=\def\PLRecurnom{#1},%
+ No=\def\PLRecurno{#1},%
+ Nb=\def\PLRecurnb{#1},%
+ Uno=\def\PLRecuruno{#1},%
+ PosLabel=\def\PLRecurposlab{#1},%
+ DecalLabel=\def\PLRecuroffset{#1},%
+ TailleLabel=\def\PLRecurlabelsize{#1}
+}
+
+\setKVdefault[webrecurr]{
+ No=0,%
+ Nom=u,%
+ Nb=5,%
+ AffTermes=true,%
+ PosLabel=below,%
+ DecalLabel=6pt,%
+ TailleLabel=\small
+}
+
+\NewDocumentCommand\ToileRecurrence{ O{} O{thick,color=magenta} O{dotted} }{
+ %<clés> + <style cabweb> + <style supplémentaire pointillés>
+ \useKVdefault[webrecurr]%
+ \setKV[webrecurr]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \foreach \i [remember=\i as \x (initially \PLRecuruno)] in {1,...,\PLRecurnb}{%
+ \def\y{\fpeval{\PLRecurfct}}
+ %test de la position courbe / bissectrice ?
+ \ifnum \i=1
+ \newdimen \X
+ \newdimen \Y
+ \X = \x pt
+ \Y = \y pt
+ \ifdim \Y < \X
+ \draw[#2] (\x,\y)--(\y,\y) ;
+ \else
+ \draw[#2] (\x,\x)--(\x,\y)--(\y,\y) ;
+ \fi
+ \else
+ \draw[#2] (\x,\x)--(\x,\y)--(\y,\y) ;
+ \fi
+ \ifboolKV[webrecurr]{AffTermes}
+ {\def\indice{\fpeval{\i+\PLRecurno-1}}
+ \draw[#2,#3] (\x,\y)--(\x,0) node[\PLRecurposlab=\PLRecuroffset,font=\PLRecurlabelsize]{$\PLRecurnom_\indice$};}
+ {}
+ \def\i{\fpeval{\y}}%
+ }
+}
+
+%%------CALCSRECUR
+\NewDocumentCommand\CalculInterneTermeRecurrence{ m m m m }{%pas forcément utile
+ \xintdeffloatfunc varfctrecur(x) := #1 ;%
+ \xdef\vartmp{#3}%
+ \IfEq{#4}{\inteval{#2+1}}%
+ {\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
+ {%
+ \foreach \i in {1,2,...,\inteval{#4-#2}}%
+ {\xdef\vartmp{\xintfloateval{varfctrecur(\vartmp)}}}%
+ }%
+ \xintFloatToDecimal{\vartmp}%
+}
+
+\newcount\CompteurSeuil%
+\NewDocumentCommand\CalculSeuil{ m m m m m }{%N0 / UN0 / fct / sgn / seuil := en interne
+ \xintdeffloatfunc varfct(x) := #3 ;%
+ \xdef\vartmp{\fpeval{#2}}%
+ \CompteurSeuil=#1%
+ %symbole de comparaison inversé et boucle
+ \IfEq{#4}{>}%
+ {%
+ \whiledo{\xintLtorEq{\vartmp}{#5} = 1}%
+ {%
+ \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+ \CompteurSeuil=\numexpr\CompteurSeuil+1%
+ }%
+ }{}%
+ \IfEq{#4}{<}%
+ {%
+ \whiledo{\xintGtorEq{\vartmp}{#5} = 1}%
+ {%
+ \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+ \CompteurSeuil=\numexpr\CompteurSeuil+1%
+ }%
+ }{}%
+ \IfEq{#4}{>=}%
+ {%
+ \whiledo{\xintLt{\vartmp}{#5} = 1}%
+ {%
+ \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+ \CompteurSeuil=\numexpr\CompteurSeuil+1%
+ }%
+ }{}%
+ \IfEq{#4}{<=}%
+ {%
+ \whiledo{\xintGt{\vartmp}{#5} = 1}%
+ {%
+ \xdef\vartmp{\xintfloateval{varfct(\vartmp)}}%
+ \CompteurSeuil=\numexpr\CompteurSeuil+1%
+ }%
+ }{}%
+}
+
+\defKV[calculsuiterecur]{%
+ No=\def\SRninit{#1},%
+ UNo=\def\SRuninit{#1},%
+ Precision=\def\SRprec{#1},%
+ N=\def\SRnfinal{#1}
+ %Format=\def\SRformat{#1},%
+ %OptionFrac=\def\SRoptfrac{#1}
+}
+
+\setKVdefault[calculsuiterecur]{%
+ Precision=3
+ %Format=Arrondi,%
+ %OptionFrac={}
+}
+
+\NewDocumentCommand\CalculTermeRecurrence{ O{} m }{%attention avec les calculs en exact :-(
+ \useKVdefault[calculsuiterecur]%
+ \setKV[calculsuiterecur]{#1}%
+ \xintdeffloatfunc varfct(x) := #2 ;%
+ \xdef\vartmp{\fpeval{\SRuninit}}%
+ \IfEq{\SRnfinal}{\inteval{\SRninit+1}}%
+ {\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
+ {%
+ \foreach \i in {1,2,...,\inteval{\SRnfinal-\SRninit}}%
+ {\xdef\vartmp{\xintfloateval{varfct(\vartmp)}}}%
+ }%
+ %\num[minimum-decimal-digits=\SRprec]{\xintfloateval{round(\vartmp,\SRprec)}}%
+ \num{\xintfloateval{round(\vartmp,\SRprec)}}%
+ %\IfStrEq{\SRformat}{Fraction}{\ConversionFraction[\SRoptfrac]{\xinteval{\vartmp}}}{}%
+ %\IfStrEq{\SRformat}{Brut}{\xinteval{\vartmp}}{}%
+ %\IfStrEq{\SRformat}{Decimal}{\num{\xintfloateval{\vartmp}}}{}%
+ %\IfStrEq{\SRformat}{BrutDecimal}{\xintFloatToDecimal{\vartmp}}{}%
+}
+
+\defKV[suiteseuil]{%
+ No=\def\SEUILindiceinit{#1},%
+ UNo=\def\SEUILtermeinit{#1},%
+ NomSuite=\def\SEUILnomsuite{#1},%
+ %SolN=\def\SEUILn{#1},%
+ Precision=\def\SEUILprec{#1},%
+ Stretch=\def\SEUILstretch{#1},%
+ Sens=\def\SEUILsens{#1}
+}
+
+\setKVdefault[suiteseuil]{%
+ NomSuite=u,%
+ Precision=3,%
+ Stretch=1.15,%
+ Balayage=false,%
+ Calculatrice=false,%
+ Majuscule=true,%
+ Sens={>},%
+ Exact=false,%
+ Conclusion=true,%
+ Simple=false
+}
+
+\newcommand\SolutionSeuil[3][]{%1=options + %2 = fonction + %3 = seuil
+ \useKVdefault[suiteseuil]%
+ \setKV[suiteseuil]{#1}%
+ %on détermine le seuil, directement et on stocke les bascules !!!
+ \CalculSeuil{\SEUILindiceinit}{\SEUILtermeinit}{#2}{\SEUILsens}{#3}%
+ \def\SEUILn{\inteval{\the\CompteurSeuil}}%
+ \def\SEUILnmu{\inteval{\the\CompteurSeuil-1}}%
+ %formatage de la sortie des signes
+ \IfEq{\SEUILsens}{>}%
+ {\def\SensDeb{\leqslant}\def\SensFin{>}}%
+ {}%
+ \IfEq{\SEUILsens}{<}%
+ {\def\SensDeb{\geqslant}\def\SensFin{<}}%
+ {}%
+ \IfEq{\SEUILsens}{>=}%
+ {\def\SensDeb{<}\def\SensFin{\geqslant}}%
+ {}%
+ \IfEq{\SEUILsens}{<=}%
+ {\def\SensDeb{>}\def\SensFin{\leqslant}}%
+ {}%
+ %formatage
+ \ifboolKV[suiteseuil]{Balayage}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar balayage, on obtient }{}%
+ \ifboolKV[suiteseuil]{Calculatrice}{\ifboolKV[suiteseuil]{Majuscule}{P}{p}ar calculatrice, on obtient }{}%
+ \ifboolKV[suiteseuil]{Simple}%
+ {%
+ \ensuremath{\SEUILnomsuite_{\SEUILnmu} \ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} \SensDeb\num{#3}}%
+ \text{~et~}%
+ \ensuremath{\SEUILnomsuite_{\SEUILn} \ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} \SensFin\num{#3}}%
+ }%
+ {%
+ \ensuremath{%
+ \left\lbrace \begin{tblr}{stretch=\SEUILstretch,colsep=1pt,rll}%
+ \SEUILnomsuite_{\SEUILnmu} &\ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILnmu]{#2} & \SensDeb\num{#3} \: \\ %
+ \SEUILnomsuite_{\SEUILn} &\ifboolKV[suiteseuil]{Exact}{=}{\approx} \CalculTermeRecurrence[Precision=\SEUILprec,No=\SEUILindiceinit,UNo=\SEUILtermeinit,N=\SEUILn]{#2} & \SensFin\num{#3} \: %
+ \end{tblr}%
+ \ifboolKV[suiteseuil]{Conclusion}%
+ {\right| \Rightarrow n \geqslant \SEUILn}%
+ {\right.}%
+ }%
+ }%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
new file mode 100644
index 0000000000..c27a135bf0
--- /dev/null
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
@@ -0,0 +1,760 @@
+% proflycee-tools-trigo.tex
+% Copyright 2023 Cédric Pierquet
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+
+%%------CercleTrigo
+\defKV[cercletrigo]{%
+ Rayon=\def\PLcerclerayon{#1},%
+ Epaisseur=\def\PLcerclethick{#1},%
+ EpaisseurSol=\def\PLcerclesolthick{#1},%
+ Marge=\def\PLcerclemarge{#1},%
+ TailleValeurs=\def\PLcerclevaleurs{#1},%
+ TailleAngles=\def\PLcercleangles{#1},%
+ CouleurFond=\def\PLcerclefond{#1},%
+ Decal=\def\PLcercledecal{#1},%
+ cos=\def\PLcerclevalcos{#1},%
+ sin=\def\PLcerclevalsin{#1},%
+ CouleurSol=\def\PLcerclecoleq{#1}
+}
+
+\setKVdefault[cercletrigo]{
+ Rayon=3,%
+ Marge=0.25,%
+ Decal=10pt,%
+ Epaisseur=thick,%
+ EpaisseurSol=very thick,%
+ AffAngles=true,%
+ AffTraits=true,%
+ AffValeurs=true,%
+ MoinsPi=true,%
+ TailleValeurs=\scriptsize,%
+ TailleAngles=\footnotesize,%
+ CouleurFond=white,%
+ Equationcos=false,%
+ Equationsin=false,%
+ cos=45,%
+ sin=30,%
+ CouleurSol=blue
+}
+
+\newcommand\CercleTrigo[1][]{%
+ \useKVdefault[cercletrigo]
+ \setKV[cercletrigo]{#1}
+ \tikzset{PLval/.style={inner sep=1pt,font=\PLcerclevaleurs,fill=\PLcerclefond}}
+ \tikzset{PLagl/.style={inner sep=1pt,font=\PLcercleangles,fill=\PLcerclefond}}
+ %valeurs remarquables
+ \ifboolKV[cercletrigo]{AffAngles}
+ {%valeursdudessus
+ \draw ({\PLcerclerayon},0) node[above right=2pt,font=\PLcercleangles] {0} ;
+ \draw ($(30:{\PLcerclerayon})+(30:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{6}$} ;
+ \draw ($(45:{\PLcerclerayon})+(45:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{4}$} ;
+ \draw ($(60:{\PLcerclerayon})+(60:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{3}$} ;
+ \draw (0,{\PLcerclerayon}) node[above right=2pt,PLagl] {$\tfrac{\pi}{2}$} ;
+ \draw ({-\PLcerclerayon},0) node[above left=2pt,PLagl] {$\pi$} ;
+ \draw ($(150:{\PLcerclerayon})+(150:\PLcercledecal)$) node[PLagl] {$\tfrac{5\pi}{6}$} ;
+ \draw ($(135:{\PLcerclerayon})+(135:\PLcercledecal)$) node[PLagl] {$\tfrac{3\pi}{4}$} ;
+ \draw ($(120:{\PLcerclerayon})+(120:\PLcercledecal)$) node[PLagl] {$\tfrac{2\pi}{3}$} ;
+ \draw ($(30:{\PLcerclerayon})+(30:\PLcercledecal)$) node[PLagl] {$\tfrac{\pi}{6}$} ;
+ %valeursdudessous
+ \draw ($(-30:{\PLcerclerayon})+(-30:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{11}\pi}{6}$} ;
+ \draw ($(-45:{\PLcerclerayon})+(-45:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{7}\pi}{4}$} ;
+ \draw ($(-60:{\PLcerclerayon})+(-60:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{5}\pi}{3}$} ;
+ \draw (0,{-\PLcerclerayon}) node[below right=2pt,PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-}{3}\pi}{2}$} ;
+ \draw ($(-120:{\PLcerclerayon})+(-120:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-2}{4}\pi}{3}$} ;
+ \draw ($(-135:{\PLcerclerayon})+(-135:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-3}{5}\pi}{4}$} ;
+ \draw ($(-150:{\PLcerclerayon})+(-150:\PLcercledecal)$) node[PLagl] {$\tfrac{\ifboolKV[cercletrigo]{MoinsPi}{-5}{7}\pi}{6}$} ;
+ \ifboolKV[cercletrigo]{MoinsPi}
+ {\draw ({-\PLcerclerayon},0) node[below left=2pt,PLagl] {$-\pi$} ;}
+ {\draw ({\PLcerclerayon},0) node[below right=2pt,PLagl] {$2\pi$} ;}
+ }%
+ {}
+ %tracés
+ \draw[\PLcerclethick,->,>=latex] ({-\PLcerclerayon-\PLcerclemarge},0)--({\PLcerclerayon+\PLcerclemarge},0) ;
+ \draw[\PLcerclethick,->,>=latex] (0,{-\PLcerclerayon-\PLcerclemarge})--(0,{\PLcerclerayon+\PLcerclemarge}) ;
+ \draw[\PLcerclethick] (0,0) circle[radius=\PLcerclerayon] ;
+ \draw (0,0) node[below left=2pt,PLval] {0} ;
+ %equations
+ \ifboolKV[cercletrigo]{Equationcos}
+ {%traitsdeconstructioncos
+ \draw[\PLcerclethick,dotted,gray] (-45:\PLcerclerayon) -- (135:\PLcerclerayon)
+ (-135:\PLcerclerayon) -- (45:\PLcerclerayon)
+ (30:\PLcerclerayon) -- (150:\PLcerclerayon)
+ (-30:\PLcerclerayon) -- (-150:\PLcerclerayon)
+ (-60:\PLcerclerayon)--(60:\PLcerclerayon)
+ (-120:\PLcerclerayon)--(120:\PLcerclerayon) ;
+ \draw[\PLcerclesolthick,\PLcerclecoleq] ({\PLcerclevalcos}:\PLcerclerayon)--({-\PLcerclevalcos}:\PLcerclerayon) ;
+ \filldraw[\PLcerclecoleq] ({\PLcerclevalcos}:\PLcerclerayon) circle[radius=2pt] ({-\PLcerclevalcos}:\PLcerclerayon) circle[radius=2pt] ;%
+ }
+ {}
+ \ifboolKV[cercletrigo]{Equationsin}
+ {%traitsdeconstructioncos
+ \draw[\PLcerclethick,dotted,gray] (-45:\PLcerclerayon) -- (135:\PLcerclerayon)
+ (-135:\PLcerclerayon) -- (45:\PLcerclerayon)
+ (30:\PLcerclerayon) -- (150:\PLcerclerayon)
+ (-30:\PLcerclerayon) -- (-150:\PLcerclerayon)
+ (-60:\PLcerclerayon)--(60:\PLcerclerayon)
+ (-120:\PLcerclerayon)--(120:\PLcerclerayon) ;
+ \draw[\PLcerclesolthick,\PLcerclecoleq] ({\PLcerclevalsin}:\PLcerclerayon)--({180-\PLcerclevalsin}:\PLcerclerayon) ;
+ \filldraw[\PLcerclecoleq] ({\PLcerclevalsin}:\PLcerclerayon) circle[radius=2pt] ({180-\PLcerclevalsin}:\PLcerclerayon) circle[radius=2pt] ;%
+ }
+ {}
+ %valeurs
+ \ifboolKV[cercletrigo]{AffValeurs}
+ {%
+ \draw ({0.5*\PLcerclerayon},0) node[below=2pt,PLval] {$\tfrac{1}{2}$} ;
+ \draw ({-0.5*\PLcerclerayon},0) node[below=2pt,PLval] {$-\tfrac{1}{2}$} ;
+ \draw (0,{0.5*\PLcerclerayon}) node[left=2pt,PLval] {$\tfrac{1}{2}$} ;
+ \draw (0,{-0.5*\PLcerclerayon}) node[left=2pt,PLval] {$-\tfrac{1}{2}$} ;
+ \draw ({0.866*\PLcerclerayon},0) node[below=2pt,PLval] {$\tfrac{\sqrt{3}}{2}$} ;
+ \draw ({-0.866*\PLcerclerayon},0) node[below=2pt,PLval] {$-\tfrac{\sqrt{3}}{2}$} ;
+ \draw (0,{0.866*\PLcerclerayon}) node[left=2pt,PLval] {$\tfrac{\sqrt{3}}{2}$} ;
+ \draw (0,{-0.866*\PLcerclerayon}) node[left=2pt,PLval] {$-\tfrac{\sqrt{3}}{2}$} ;
+ \draw ({0.707*\PLcerclerayon},0) node[above=2pt,PLval] {$\tfrac{\sqrt{2}}{2}$} ;
+ \draw ({-0.707*\PLcerclerayon},0) node[above=2pt,PLval] {$-\tfrac{\sqrt{2}}{2}$} ;
+ \draw (0,{0.707*\PLcerclerayon}) node[right=2pt,PLval] {$\tfrac{\sqrt{2}}{2}$} ;
+ \draw (0,{-0.707*\PLcerclerayon}) node[right=2pt,PLval] {$-\tfrac{\sqrt{2}}{2}$} ;
+ %\draw[\PLcerclethick] (0,0) circle[radius=\PLcerclerayon] ; %on retrace par dessus ?
+ }%
+ {}
+ %valeurs remarquables en dernier
+ \ifboolKV[cercletrigo]{AffTraits}
+ {%
+ \draw[\PLcerclethick,dotted,gray] (-120:\PLcerclerayon) rectangle (60:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (-150:\PLcerclerayon) rectangle (30:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (-135:\PLcerclerayon) rectangle (45:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (-120:\PLcerclerayon)--(60:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (-150:\PLcerclerayon)--(30:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (-135:\PLcerclerayon)--(45:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (120:\PLcerclerayon)--(-60:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (150:\PLcerclerayon)--(-30:\PLcerclerayon) ;
+ \draw[\PLcerclethick,dotted,gray] (135:\PLcerclerayon)--(-45:\PLcerclerayon) ;
+ }%
+ {}
+}
+
+%%------MESUREPPALE
+\setKVdefault[MesurePpale]{%
+ Crochets=false,%
+ d=false,%
+ Brut=false
+}
+
+\newcommand{\MesurePrincipale}[2][]{%fraction sous la forme a*pi/b ou entier :-)
+ \useKVdefault[MesurePpale]%
+ \setKV[MesurePpale]{#1}%
+ \StrDel{#2}{pi}[\MPargument]%
+ \IfBeginWith{#2}{pi}%
+ {\StrSubstitute{#2}{pi}{1}[\MPargument]}%
+ {}%
+ \IfBeginWith{#2}{-pi}%
+ {\StrSubstitute{#2}{pi}{1}[\MPargument]}%
+ {}%
+ %on conserve les données initiales
+ \IfSubStr{\MPargument}{/}%on coupe numérateur/dénominateur
+ { \StrCut{\MPargument}{/}\MPnumerateurinit\MPdenominateurinit }%
+ { \xdef\MPnumerateurinit{\MPargument}\xdef\MPdenominateurinit{1} }%
+ %on affiche le début, avant simplification
+ \ifboolKV[MesurePpale]{d}%
+ {\displaystyle}%
+ {}%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {\ifboolKV[MesurePpale]{Brut}{}{\num{\MPnumerateurinit}\pi=}}%
+ {\ifboolKV[MesurePpale]{Brut}{}{\frac{\num{\MPnumerateurinit}\pi}{\num{\MPdenominateurinit}}=}}%
+ %on simplifie puis on réduit
+ \xdef\MPsimpl{\xintPRaw{\xintIrr{\MPargument}}}%
+ %test si l'argument est une fraction ou un entier
+ \IfSubStr{\MPsimpl}{/}%
+ {\StrCut{\MPsimpl}{/}\MPnumerateur\MPdenominateur}%
+ {\xdef\MPnumerateur{\MPsimpl}\xdef\MPdenominateur{1}}%
+ %calculs
+ \xdef\MPtour{\inteval{2*\MPdenominateur}}%
+ \xdef\MPreste{\xintiiRem{\MPnumerateur}{\MPtour}}%reste
+ \xintifboolexpr{\MPreste>\MPdenominateur}%
+ {\xdef\MPreste{\inteval{\MPreste-\MPtour}}}{}%
+ \xintifboolexpr{\MPreste<-\MPdenominateur}%
+ {\xdef\MPreste{\inteval{\MPreste+\MPtour}}}{}%
+ %sortie suivant fraction ou non...
+ \xintifboolexpr{\MPdenominateur == 1}%
+ {%entier
+ \xintifboolexpr{\MPreste == 1}{\pi \ifboolKV[MesurePpale]{Brut}{}{\: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)}} }{}%
+ \xintifboolexpr{\MPreste == 0}{0 \ifboolKV[MesurePpale]{Brut}{}{\: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)}} }{}%
+ \xintifboolexpr{\MPreste != 0 && \MPreste != 1}{\MPreste\pi \ifboolKV[MesurePpale]{Brut}{}{\: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)}} }{}%
+ }%
+ {%fraction
+ \frac{%
+ \xintifboolexpr{\xinteval{\MPreste == 1}}{}{}%
+ \xintifboolexpr{\xinteval{\MPreste == -1}}{-}{}%
+ \xintifboolexpr{\xinteval{abs(\MPreste) != 1}}{\num{\MPreste}}{}%
+ \pi}{\num{\MPdenominateur}} \ifboolKV[MesurePpale]{Brut}{}{\: \ifboolKV[MesurePpale]{Crochets}{[2\pi]}{(2\pi)}}%
+ }%
+}
+
+%%------LIGNES TRIGOS
+\setKVdefault[Lgntrig]{%
+ d=false,%
+ Etapes=false
+}
+
+\newcommand\AffAngle[2][]{%semble OK
+ %1 = options
+ %2 = angle sous la forme a*pi/b
+ \useKVdefault[Lgntrig]%
+ \setKV[Lgntrig]{#1}%
+ \StrDel{#2}{pi}[\MPargument]%
+ \IfBeginWith{#2}{pi}%
+ {\StrSubstitute{#2}{pi}{1}[\MPargument]}%
+ {}%
+ \IfBeginWith{#2}{-pi}%
+ {\StrSubstitute{#2}{pi}{1}[\MPargument]}%
+ {}%
+ %on conserve les données initiales
+ \IfSubStr{\MPargument}{/}%on coupe numérateur/dénominateur
+ {\StrCut{\MPargument}{/}\MPnumerateurinit\MPdenominateurinit}%
+ {\xdef\MPnumerateurinit{\MPargument}\xdef\MPdenominateurinit{1}}%
+ %on affiche le début, avant simplification
+ \ifboolKV[Lgntrig]{d}{\displaystyle}{}%
+ \xintifboolexpr{\MPdenominateurinit == 1}%
+ {%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}%
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \frac{%
+ \xintifboolexpr{\MPnumerateurinit == 1}{\pi}{}%
+ \xintifboolexpr{\MPnumerateurinit == -1}{-\pi}{}
+ \xintifboolexpr{\xinteval{abs(\MPnumerateurinit) != 1}}{\num{\MPnumerateurinit}\pi}{}%
+ }%
+ {%
+ \num{\MPdenominateurinit}%
+ }%
+ }%
+}
+
+\newcommand\IntSimplifMesPpale[1]{%commande interne
+ \IfSubStr{#1}{pi}%
+ {%
+ \StrDel{#1}{pi}[\tmpargument]
+ \IfBeginWith{#1}{pi}%
+ {\StrSubstitute{#1}{pi}{1}[\tmpargument]}%
+ {}%
+ \IfBeginWith{#1}{-pi}%
+ {\StrSubstitute{#1}{pi}{1}[\tmpargument]}%
+ {}%
+ }%
+ {\def\tmpargument{#1}}%
+ \IfSubStr{\tmpargument}{/}%on coupe numérateur/dénominateur
+ {\StrCut{\tmpargument}{/}\MPnumerateurinit\MPdenominateurinit}%
+ {\xdef\MPnumerateurinit{\tmpargument}\xdef\MPdenominateurinit{1}}%
+ \xdef\MPsimpl{\xintPRaw{\xintIrr{\tmpargument}}}%
+ \IfSubStr{\MPsimpl}{/}%
+ {\StrCut{\MPsimpl}{/}\MPnumerateur\MPdenominateur}%
+ {\xdef\MPnumerateur{\MPsimpl}\xdef\MPdenominateur{1}}%
+ %calculs
+ \xdef\MPtour{\inteval{2*\MPdenominateur}}%
+ \xdef\MPreste{\xintiiRem{\MPnumerateur}{\MPtour}}%reste
+ \xintifboolexpr{\MPreste>\MPdenominateur}%
+ {\xdef\MPreste{\inteval{\MPreste-\MPtour}}}{}%
+ \xintifboolexpr{\MPreste<-\MPdenominateur}%
+ {\xdef\MPreste{\inteval{\MPreste+\MPtour}}}{}%
+ \xdef\MPfrac{\MPreste/\MPdenominateur}%
+}
+
+\NewDocumentCommand\LigneTrigo{ s O{} m d() }{%
+ %* = sans l'énoncé
+ %2 = options
+ %3 = ligne
+ %4 = angle
+ \useKVdefault[Lgntrig]%
+ \setKV[Lgntrig]{#2}
+ \ifboolKV[Lgntrig]{d}{\displaystyle}{}%
+ \IntSimplifMesPpale{#4} %simplification du quotient et stockage dans \MPfrac
+ %les cas de figure [0;pi]
+ \xintifboolexpr{\MPfrac == 0}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1 }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 0 }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 0 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 1/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left(\MesurePrincipale[Brut]{#4}\right)}=}{} \frac{\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 2-\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 1/6}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{3}}{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 1/4}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 1/3}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 5/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 2+\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 1/2}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 0 }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 7/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -2-\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 2/3}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{1}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 3/4}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 5/6}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{3}}{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 11/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -2+\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 1}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1 }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 0 }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 0 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 1/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1+\sqrt{2} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 3/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1+\sqrt{2} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 5/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1-\sqrt{2} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 7/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1-\sqrt{2} }{}%
+ }%
+ {}%
+ %cas ]-pi,0[
+ \xintifboolexpr{\MPfrac == -1/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -2+\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -1/6}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{1}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{3}}{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -1/4}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -1/3}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -5/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -2-\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -1/2}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 0 }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -7/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 2+\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -2/3}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{1}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -3/4}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1 }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -5/6}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{3}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{1}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{3}}{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -11/12}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}-\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-\sqrt{6}+\sqrt{2}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 2-\sqrt{3} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -1/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1-\sqrt{2} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -3/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1-\sqrt{2} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -5/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} 1+\sqrt{2} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -7/8}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2+\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{2-\sqrt{2}}}{2} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -1+\sqrt{2} }{}%
+ }%
+ {}%
+ %les pi/5
+ \xintifboolexpr{\MPfrac == 1/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \sqrt{5-2\sqrt{5}} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 2/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \sqrt{5+2\sqrt{5}} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 3/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1-\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\sqrt{5+2\sqrt{5}} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 4/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-1-\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\sqrt{5-2\sqrt{5}} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -4/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-1-\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \sqrt{5-2\sqrt{5}} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -3/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1-\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \sqrt{5+2\sqrt{5}} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -2/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\sqrt{5+2\sqrt{5}} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -1/5}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\sqrt{5-2\sqrt{5}} }{}%
+ }%
+ {}%
+ %les pi/10
+ \xintifboolexpr{\MPfrac == 1/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{25-10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 3/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{25+10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 7/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{25+10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == 9/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{-1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{25-10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -1/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1-\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{25-10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -3/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{25+10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -7/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10-2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{1+\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{25+10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+ \xintifboolexpr{\MPfrac == -9/10}
+ {%
+ \ifstrequal{#3}{cos}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\cos}{\left({\AffAngle[#2]{#4}}\right)}=}{\cos}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} -\frac{\sqrt{10+2\sqrt{5}}}{4} }{}%
+ \ifstrequal{#3}{sin}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\sin}{\left({\AffAngle[#2]{#4}}\right)}=}{\sin}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{1-\sqrt{5}}{4} }{}%
+ \ifstrequal{#3}{tan}%
+ {\ifboolKV[Lgntrig]{Etapes}{\IfBooleanTF{#1}{}{{\tan}{\left({\AffAngle[#2]{#4}}\right)}=}{\tan}{\left({\MesurePrincipale[Brut]{#4}}\right)}=}{} \frac{\sqrt{25-10\sqrt{5}}}{5} }{}%
+ }%
+ {}%
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-en.pdf b/macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-en.pdf
new file mode 100644
index 0000000000..ff78656850
--- /dev/null
+++ b/macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-en.pdf
Binary files differ
diff --git a/macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-sc.pdf b/macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-sc.pdf
new file mode 100644
index 0000000000..7a442b0740
--- /dev/null
+++ b/macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-sc.pdf
Binary files differ
diff --git a/macros/luatex/generic/evangelion-jfm/Evangelion-JFM.dtx b/macros/luatex/generic/evangelion-jfm/Evangelion-JFM.dtx
new file mode 100644
index 0000000000..e53947e739
--- /dev/null
+++ b/macros/luatex/generic/evangelion-jfm/Evangelion-JFM.dtx
@@ -0,0 +1,361 @@
+% \iffalse meta-comment
+% Copyright © 2023, RadioNoiseE (Jing Huang)
+% Evangelion Japanese Font Metric for LuaTeX
+% Current Version: 1.0.1 (a)
+% Dev URL: https://github.com/RadioNoiseE/Evangelion-JFM
+% \fi
+%<*batchfile>
+\input docstrip.tex
+\keepsilent
+\edef\eva{\perCent! TeX Program = LuaLaTeX}
+\generate{\usepreamble\eva
+ \usepostamble\empty
+ \file{Eva-JFM_doc-sc.tex}{\from{\jobname.dtx}{sc}}
+ \file{Eva-JFM_doc-en.tex}{\from{\jobname.dtx}{en}}}
+\begingroup\obeyspaces
+\Msg{**********************************************}
+\Msg{* Now you can run the two generated files: *}
+\Msg{* Eva-JFM_doc-sc.tex *}
+\Msg{* Eva-JFM_doc-en.tex *}
+\Msg{* through LuaLaTeX to get the documentation. *}
+\Msg{**********************************************}
+\endgroup
+\endbatchfile
+%</batchfile>
+%<*sc>
+\makeatletter
+\def\ltj@stdmcfont{SourceHanSerifSC}
+\makeatother
+%</sc>
+%<sc>\documentclass[twoside]{ltjsarticle}
+%<en>\documentclass[twoside]{article}
+%<en>\usepackage[margin=1.2in]{geometry}
+\usepackage{graphicx}
+%<sc>\usepackage[match]{luatexja-fontspec}
+%<en>\usepackage{fontspec, luatexja}
+%<*en>
+\newfontfeature{microtype}{protrusion=default;expansion=default}
+\defaultfontfeatures{microtype}
+\adjustspacing=2
+\protrudechars=2
+%</en>
+\setmainfont{Linux Libertine O}
+%<sc>\setmainjfont{Source Han Serif SC}[Language = Chinese Simplified, YokoFeatures = {JFM = eva/{smpl, nstd, hgp}}]
+\setsansfont{Linux Biolinum O}
+\setmonofont[Scale = MatchLowercase, FakeStretch = 1.137121]{Iosevka Slab}
+%<*sc>
+\usepackage{luatexja-adjust}
+\ltjenableadjust[priority = true]
+%</sc>
+\usepackage{listings}
+\lstset{
+ basicstyle = \ttfamily\small,
+ breaklines = true,
+ columns = fullflexible,
+ keepspaces = true,
+ numbers = left,
+ numberstyle = \tiny,
+ stepnumber = 1,
+ gobble = 4,
+ numbersep = 6pt,
+ escapechar = §
+}
+\usepackage{hyperref}
+\hypersetup{
+ hidelinks,
+ pdftitle = {Evangelion-JFM},
+%<sc> pdfauthor = {黄京},
+%<en> pdfauthor = {Jing Huang},
+ pdfsubject = {TeX},
+ pdfkeywords = {Japanese Font Metric},
+ pdfstartview = FitV
+}
+\long\def\feature#1#2#3{{\vskip8pt\vbox{\normalsize\parindent=\zw\hangindent=2\zw\texttt{#1 --> ({\itshape #2\/})}\\\indent#3\par}}}
+\def\meta#1{{\normalfont\rmfamily\itshape$\langle$#1\/$\rangle$}}
+%<sc>\def\空{\quad}
+%<sc>\def\段{\par}
+\def\LuaTeX{Lua\kern-.2ex\TeX}
+\def\pTeX{p\kern-.2ex\TeX}
+\def\pdfTeX{pdf\TeX}
+\title{\sffamily\bfseries Evangelion Japanese Font Metric for \LuaTeX}
+\author{\large \url{https://github.com/RadioNoiseE/Evangelion-JFM}\\\url{https://www.ctan.org/pkg/evangelion-jfm}}
+%<sc>\date{西历2023年\quad{}黄京}
+%<en>\date{2023, Jing Huang (黄京)}
+\begin{document}
+%<sc>\lstset{doubleletterspace = true}
+%<sc>\parindent=2\zw\parskip=2pt
+%<en>\parindent=12pt\parskip=2pt
+\maketitle
+
+\begin{abstract}
+%<sc> 本文档将介绍名为Evangelion Japanese Font Metric(下简称为``\textsf{Eva-JFM}'')的JFM文件。其适用于简体中文(以下简称为「简中」)、繁体中文(以下简称为「繁中」)及日文字体的横直排。旨在提供一个充分利用\LuaTeX{}-ja的\texttt{priority}特性,基于标准\cite{jlreq}的同时,支持一些罕用特性的JFM文件。文档暂使用中文及西文撰写。
+%<en> This documentation is going to introduce Evangelion Japanese Font Metric (hereinafter referred to as ``\textsf{Eva-JFM}''), a Japanese Font Metric for typesetting high quality Chinese and Japanese documents. It can be used with Traditional Chinese, Simplified Chinese and Japanese fonts for both vertically and horizontally typesetted texts. It aims to provide a font metric which makes full use of the \texttt{priority} feature (provided by \textsf{\LuaTeX-ja}), bases on the standard~\cite{jlreq}, and supports some advanced (a.k.a., rarely-used) features. The documentation is now written in both Chinese and English.\par
+%<en> This documentation is far from complete. It may have many grammatical (and contextual) errors.
+\end{abstract}
+
+%<sc>\section{背景及略介}
+%<en>\section{Background Information and a Rough Introduction}
+%<sc>\TeX{}是高德纳教授于20世纪末开发的强大排版引擎,能够完全满足西文排版的需求。然因时代局限性\footnote{如没有事实上的统一字符编码等。}以及客观原因\footnote{如中日字符集较大,以及书写方式的不同(纵书、横书),标点等。}对中日排版支持十分有限。为达成中日排版需求,在宏扩展(如\textsf{CJK}等)之外出现了引擎扩展。影响力较大的是\pTeX{}系列。\段
+%<en>{\TeX} is a powerful typesetting system ``intended for the creation of beautiful books'', it has full support for typesetting English based texts. However, its support for CJ text is limited\footnote{Maybe because there was no universally recognized or accepted CJ character set standard as well as an encoding system.}. For handling CJ texts in {\TeX}, both macro extensions (i.e., \textsf{CJK}) and engine extensions were developed. One of the most influential one is (the) {\pTeX} (series).\par
+%<sc>\pTeX{}系列采用虚拟字体的理念,使用\texttt{TFM/VF}映射TrueType或OpenType字体完成排版。其不支持宏配置字体,也不支持直接生成PDF格式文件。但可以满足日本的传统横纵排版需求(工业标准)。\段
+%<en>{\pTeX} uses a virtual font scheme, by mapping TrueType or OpenType fonts using \texttt{TFM/VF} files. It doesn't support font configuration through macros, and has no support for PDF format output. Its advantage is the proven ability for dealing with traditional Japanese typographic layout requirements.\par
+%<sc>\pdfTeX{}则是当时另一个\TeX{}的引擎扩展,支持不经DVI格式直接输出PDF格式的文件。然对Unicode(字符编码)及TrueType、OpenType(「现代」矢量字体格式)的支持繁琐或有限。\段
+%<en>{\pdfTeX} is a {\TeX} engine extension which can directly output PDF files (just as its name). But it has limited support to Unicode as well as modern font formats (TrueType and OpenType vector font formats).\par
+%<sc>\LuaTeX{}便是基于\pdfTeX{}的引擎扩展,在原生支持Unicode下提供Lua语言扩展(使能够使用\textsf{fontloader}等模块)支持现代字体。宏配置字体特性由\textsf{luaotfload}宏集提供。它也支持直接生成PDF文件。\段
+%<en>{\LuaTeX} is based on {\pdfTeX}. The inclusion of Lua enables it to support Unicode with the \textsf{reader} module, and modern fonts by using \textsf{fontloader}. Its macro based font setup feature is provided by \textsf{luaotfload}.\par
+%<sc>\LuaTeX{}-ja可看作是对两者的合并。这是一个由日本开发者北川弘典首倡的\LuaTeX{}下的日文支持项目,即将\pTeX{}(大部分)移植到\LuaTeX{}下。由于\LuaTeX{}支持宏配置字体,故不需要\texttt{VF}文件为字体提供映射,但为标点挤压等需求保留并扩展\footnote{如优先挤压(\texttt{priority})特性,及一些特殊字符(如\texttt{parbdd}、\texttt{glue})等。}了JFM文件。\段
+%<en>\LuaTeX-ja can be seen as a porting of {\pTeX} and {\LuaTeX}. It's a macro package for typesetting high quality Japanese documents when using {\LuaTeX}. {\LuaTeX} supports font configuring by macros, therefore there's no need to keep {\pTeX}'s \texttt{VF} file. But for advanced features it left and extended\footnote{The \texttt{priority} feature and some imaginary characters as well.} the so-called JFM file.\par
+%<sc>本项目就是一个JFM文件。使用\LuaTeX{}的\texttt{callback},将简中、繁中、日文及横纵方向、行间标点、悬挂标点、压缩字体等特性集中于\texttt{jfm-eva.lua}单个文件中。用户可按需调用特性来完成高质量的中日排版。
+%<en>This document describes \textsf{Eva-JFM}, an advanced JFM file. By using {\LuaTeX}'s callback, it embeds features (maybe) needed in CJ text typesetting in \texttt{Eva-JFM.lua}. The features supported now are ``Traditional Chinese'', ``Simplified Chinese'', ``Japanese'', ``Vertical Typesetting'', ``Linegap Punctuations'', ``Hanging Punctuations'', ``Extended Font'', and ``Non Standard''.
+
+%<sc>\section{安裝及本地配置}
+%<en>\section{Installation and Local Configurations}
+%<sc>本项目将源文件托管于GitHub平台,且已上传至Comprehensive \TeX{} Archive Net(CTAN)。用户可使用
+%<en>The sourcefiles are hosted on Github while it's also uploaded to CTAN. Users can simply use
+\begin{lstlisting}
+ tlmgr install evangelion-jfm
+\end{lstlisting}
+%<sc>或使用其他包管理器安装。用户也可使用
+%<en>(or maybe using other package managers) to install. (But note that the CTAN branch is not always updated.) Developers can also use
+\begin{lstlisting}
+ mkdir Evangelion-JFM [&&] cd Evangelion-JFM
+ git clone https://github.com/RadioNoiseE/Evangelion-JFM
+\end{lstlisting}
+%<sc>获取源文件,再将其放置在本地的\texttt{TEXMF}路径中,如
+%<en>to extract the latest version, the move it to the \texttt{TEXMF} directory, for instance
+\begin{lstlisting}
+ ~/Library/texlive/2023/texmf-dist/tex/luatex/eva-jfm
+\end{lstlisting}
+%<sc>等。最后运行
+%<en>If your {\TeX} distribution requires
+\begin{lstlisting}
+ mktexlsr
+\end{lstlisting}
+%<sc>更新本地\TeX{}的\texttt{Ls-R}文件即可。\段
+%<en>to update the \texttt{Ls-R} database, make it so.\par
+%<sc>本文件一般情况下无需用户进行本地配置,但若有特殊需求可见第\ref{sec:config}节。
+%<en>\textsf{Eva-JFM} doesn't require any local configuration in most cases, but if you have some special requirements, have a look at section \ref{sec:config}.
+
+%<sc>\section{使用}
+%<en>\section{Using}
+%<sc>以下是在\LaTeX{}下使用繁中字体进行直排的示例
+%<en>The above is an example of typesetting vertical text using Traditional Chinese fonts
+\begin{lstlisting}
+ \usepackage{luatexja-fontspec, luatexja-adjust}
+ \setmainjfont{Source Han Serif TC}[Language = Chinese Traditional, TateFeatures = {JFM = eva/{vert, trad, nstd}}]
+ \ltjenableadjust[priority = true]
+\end{lstlisting}
+%<sc>(注意需要调用支持直书的文档类或使用\texttt{\string\tate}命令)。\LuaTeX-ja的JFM语法为:
+%<en>(and be aware that you need to load a document class which supports vertical typesetting or use the \texttt{\string\tate} command. \LuaTeX-ja's JFM syntax is the above
+\begin{lstlisting}
+ jfm = §\meta{JFM name}§/{§\meta{JFM features}§}
+\end{lstlisting}
+%<sc>而一般情况使用\texttt{\string\setmainjfont}时则为:
+%<en>while under {\LaTeX} the most common case while using \texttt{\string\setmainjfont} is most likely
+\begin{lstlisting}
+ \setmainjfont{§\meta{font name}§}[Language = §\meta{language name}§, §\meta{dir}§ = {JFM = §\meta{JFM name}§/{§\meta{JFM features}§}}]
+\end{lstlisting}
+%<sc>其中,\meta{font name}自然为需要的字体名称。\meta{language name}在使用日文字体时可忽略,而使用简中、繁中字体时为必填\footnote{简中填\texttt{Chinese Simplified},繁中填\texttt{Chinese Traditional}即可。},因\LuaTeX-ja会默认将其覆盖为\texttt{Japanese}选项,而这会带来灾难性的后果\footnote{比如错误的标点位置:日文为冒号及分号中置、其余偏靠,简中是全部偏靠,而繁中则是统统中置。}。\meta{dir}选填\texttt{TateFeatures}(直书)或\texttt{YokoFeatures}(横书)。其后的\meta{JFM name}为调用JFM的文件名\footnote{\LuaTeX-ja会依\texttt{jfm-\meta{JFM name}.lua}的格式来查找该文件。}。最后的\meta{JFM features}选项为选择使用的JFM特性,详细请看第\ref{sec:feat}章。\段
+%<en>Option \meta{font name} is the font (that you'd like to specify as the main font for your document)'s name. When using Japanese fonts, simply ignore the \meta{language name} since \LuaTeX-ja will automatically fill it for you. In this case, filling \texttt{Chinese} \texttt{Traditional} for Traditional Chinese fonts and \texttt{Chinese} \texttt{Simplified} for Simplified Chinese fonts is necessary\footnote{Without this, your output may result in wrong details, for instance wrong punctuation shape \& direction.}. \meta{dir} should be \texttt{TateFeatures} when typeset vertically and \texttt{YokoFeatures} for typesetting horizontally accordingly. The JFM's name is specified by the \meta{JFM name} option\footnote{\LuaTeX-ja searchs for a JFM file following the method \texttt{jfm-\meta{JFM name}.lua}.}. Finally, for the \meta{JFM features} key, fill in the JFM features. They are described in section \ref{sec:feat}.\par
+%<sc>对于进阶用户,也推荐用
+%<en>For advanced users, it's also recommanded to use the following
+\begin{lstlisting}
+ \def\ltj@stdyokojfm{eva/{§\meta{JFM features}§}}
+\end{lstlisting}
+%<sc>或配合NFSS来使用。\段
+%<en>or with the NFSS.\par
+%<sc>其他情况下设置JFM及其更多信息请看\LuaTeX-ja文档\cite{luatexja-doc}。
+%<en>To set up JFM in other cases, please refer to the \LuaTeX-ja document~\cite{luatexja-doc}.
+
+%<sc>\section{支持特性}
+%<en>\section{Supported Features}
+\label{sec:feat}
+%<sc>本章节将介绍\textsf{Eva-JFM}的所有特性,分别为:语言特性、方向特性、扩展特性、西文特性及私有特性。
+%<en>This section is going to give you a glance at all the features embedded in \textsf{Eva-JFM}. They are divided into 5 groups, and are described in the next 5 subsections respectively.
+
+%<sc>\subsection{語言特性}
+%<en>\subsection{Language Features}
+%<sc>本区特性必填且只可填一个。不然则会报错。\段
+%<en>You should specify one and only one feature from this section, or your {\TeX} is going to complain about it.\par
+\feature{jp}{JaPanese}{%
+%<sc> 日本语特性。当使用日文字体时需调用该特性。其与简中、繁中区别在于问号及感叹号后插入的伸缩胶量。影响特性\texttt{lgp},且对内部分组有影响。
+%<en> Japanese font feature. When using Japanese fonts, you are required to specify this. It's very difference from Traditional Chinese and Simplified Chinese feature, namely the glue inserted after Question Mark and Exclamation Mark, and some punctuation mark's position when typeset vertically. It affects the feature \texttt{lgp}, as well as the internal grouping.\par
+}
+\feature{trad}{TRADitional chinese}{%
+%<sc> 繁中特性。当使用繁体中文字体时需调用。与简中、日本语特性的区别源于中置的标点。故,对于全部标点左右插入的伸缩胶的量都与简中、日本语不同。针对句点紧挨闭括号、标点位于句末时等皆有优化。
+%<en> Traditional Chinese feature. You should specify this when you are typesetting using Traditional Chinese fonts. The differences from the other two is because of its middle-placed punctuations. Hence the glues inserted next to it, the line-end adjust, as well as some kernings between punctuations are special.
+}
+\feature{smpl}{SiMPLified chinese}{%
+%<sc> 简中特性,使用简体中文字体排版时调用。与日本语、繁中特性区别源于分号及冒号等全部偏靠从而影响其左右插入伸缩胶的量。\textsf{Eva-JFM}对一些(不该出现的)神奇情况(如两个句号同时出现、开括号后出现问号等)进行优化。对问号、感叹号等作了特殊处理。
+%<en> Simplified Chinese feature, for Simplified Chinese fonts. All the punctuations are laid down and placed aside. Therefore its position is treated with care. \textsf{Eva-JFM} also takes some rare conditions into consideration. Note that the \textit{aki\/} after Question Mark and Exclamation Mark is different from that of the Japanese font feature.
+}
+
+%<sc>\subsection{方向特性}
+%<en>\subsection{Direction Features}
+%<sc>本分区特性与全部其他特性兼容,可同时调用。\段
+%<en>Features in this section is compatible with all the other features.\par
+\feature{vert}{VERTical writing}{%
+%<sc> 直书特性。对标点挤压、分组有影响。直书时必须调用。
+%<en> Vertical Typesetting feature. It affects kerning, internal grouping, etc. You should specify this when typeseting vertically.
+}
+
+%<sc>\subsection{擴展特性}
+%<en>\subsection{Extended Features}
+%<sc>本区特性\texttt{hgp}不依赖\texttt{vert}特性,其余需同\texttt{vert}特性同时调用。否则报错。\段
+%<en>Except the feature \texttt{hgp} doesn't rely on feature \texttt{vert}, all the other features need \texttt{vert} to work (since they should only be needed in vertical texts).
+\feature{extd}{EXTenDed font}{%
+%<sc> 压缩字体特性。默认为横比纵为100比80的字体压缩\footnotemark{}。可用\texttt{extd=\meta{ratio}}设置横方向拉伸比例(默认即为\texttt{1.25}。需同\texttt{extend}(\textsf{luaotfload})或\texttt{FakeStretch}(\textsf{fontspec})同时使用。
+%<en> Extended font features. The dafault ratio is \textit{x\/}:\textit{y\/}=100:80 while \textit{x\/} is the width and \textit{y\/} is the height. You can customize it using \texttt{extd=\meta{ratio}} (the dafault \meta{ratio} is 1.25). It should be used with \texttt{extend} (\textsf{luaotfload}) or \texttt{FakeStretch} (\textsf{fontspec}).
+}
+%<sc>\footnotetext{日本新闻字体,如每日新闻明朝体。}
+\feature{lgp}{LineGap Punctuations}{%
+%<sc> 行间标点特性。该特性将部分标点「悬挂」至行间。日文字体时与繁、简中字体时会有区别。详见第\ref{sec:lgp}章。
+%<en> The linegap punctuations feature. This hangs some punctuations into the linegap. Some difference occurs when it's used with the \texttt{jp} feature. For more information see section~\ref{sec:lgp}.
+}
+\feature{hgp}{HanGing Punctuations}{%
+%<sc> 悬挂标点特性。该特性将部分标点「悬挂」于行末。仅简中、日文字体拥有该特性。
+%<en> Hanging punctuation feature which ``hangs'' some punctuation at line-end (allowing them to stick out a bit). Traditional Chinese fonts doesn't support this feature because the result is somewhat (rather) wierd.
+}
+
+%<sc>\subsection{西文特性}
+%<en>\subsection{English Features}
+%<sc>本区特性使用时需先使用\texttt{\string\ltjsetparameter}设置\texttt{jacharrange}从而调整JAchar的范围。
+%<*sc>
+\begin{lstlisting}
+ \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8, +9}}
+\end{lstlisting}
+同时推荐与对应OpenType特性同时使用。\段
+%</sc>
+%<en>You need to set the JAchar range using \texttt{\string\ltjsetparameter} before using features in this section, or they won't work properly. It's also recommended to use with the corresponding OpenType features.\par
+\feature{hwid}{Half WIDth}{%
+%<sc> 半宽西文特性。使用此特性(且按上述设置完成后)西文字母排布为严格半宽。本特性不会压缩或拉伸西文字母,故当未使用对应半宽字体特性时,只会简单的重叠,此时不推荐使用。同时也将失去所有kern以及italic correction的数据,同时忽略\texttt{xkanjiskip}参数。请务必谨慎调用。
+%<en> Half width English characters feature. This will place each alphabets into a box which width is exactly $0.5$ times the CJ character's width. It's worth noting that it will not stretch or shrink the glyph, it only adjusts the spacing. Hence if the OpenType feature \texttt{hwid} is not set, English characters will simply overlap. All the kernings and italic corrections will also be lost (this may be fixed in the future versions), and will ignore the parameter \texttt{xkanjiskip}. Please use with care.
+}
+\feature{fwid}{Full WIDth}{%
+%<sc> 全宽西文特性。描述同上。但,若不调用全宽特性,西文间距会被简单撑开。
+%<en> Full width English characters feature. It's similar from feature \texttt{hwid} above except that the spacing will be stretched out on the contrary.
+}
+
+%<sc>\subsection{私有特性}
+%<en>\subsection{Dark Features}
+%<sc>使用本区特性前请先确保你清楚地知道你在做什么。\段
+%<en>Before using the following features, please make sure that you have carefully read the descriptions.\par
+\feature{nstd}{Non STandarD}{%
+%<sc> 忽略标准特性。字体排印标准\cite{jlreq}认为逗号的压缩权重应比句号要低。本特性将句号的压缩优先级与逗号交换,使逗号被优先压缩\footnotemark{}。仅在使用\textsf{luatexja-adjust}宏集时有效。
+%<en> This one ignores the standard priority rules for punctuation kerning. While Japanese text layout requirement~\cite{jlreq} suggests that the priority for the period should be higher than the comma (which means the period is easier to stretch), this makes the comma's priority higher than the preiod's. Only works when \textsf{luatexja-adjust}'s priority feature is enabled (set to \texttt{true}).
+}
+%<sc>\footnotetext{考虑逗号、句号在文字系统中占的重量,以及「开明」压缩风格。}
+
+%<sc>\section{行間標點特性}
+%<en>\section{Linegap Punctuation Feature}
+\label{sec:lgp}
+%<sc>本章节将提供更多详细的关于行间标点特性的信息,以及可能出现的问题及其解决方案。
+%<en>Here more detailed information about linegap punctuations are provided, as well as the issues may occur and the possible solution.
+%<sc>\subsection{關於「懸掛」}
+%<en>\subsection{About ``Hanging''}
+%<sc>行间标点可见于古籍之中,是将标点符号与直书结合妥协的产物。\段
+%<en>Linegap punctuations can be seen in Chinese ancient books, it's a combination of the punctuations marks and the traditional vertical typesetting method.\par
+%<sc>传统上悬挂句号与逗号。而\textsf{Eva-JFM}特性在繁中、简中特性下会悬挂句号、逗号、顿号、冒号及分号,日文字体下则不悬挂冒号及分号。原因在于日本习惯上将冒号与分号看作「中点类」,直书时横置处理。\段
+%<en>Only periods and commas should be hanged but \textsf{Eva-JFM} hangs three more punctuations in addition. Japanese font is different in this aspect however, since the direction of colon and semicolon makes it impossible to be hanged.\par
+%<sc>本JFM将全部标点悬挂于字体右下位置。详见下一节。
+%<en>They are all hanged to the lower right of the glyph. See the next subsection for more details.
+
+%<sc>\subsection{懸掛的位置}
+%<en>\subsection{Hanging Position}
+\begin{figure}[htb]
+ \centering
+%<sc> \includegraphics[height = 12\zh]{figure/fig-tc.pdf}\空\includegraphics[height = 12\zh]{figure/fig-jp.pdf}
+%<en> \includegraphics[height = 120pt]{figure/fig-tc.pdf}\quad\includegraphics[height = 120pt]{figure/fig-jp.pdf}
+%<sc> \caption{行间标点特性示意图}
+%<en> \caption{The linegap punctuations feature}
+ \label{fig:lgp}
+\end{figure}
+%<sc>标点悬挂的位置有以下考量,可参照图\ref{fig:lgp}~。若有特殊需求请看第\ref{sec:config}节。优先级由上至下。
+%<en>The position of these hanged punctuations is decided according to the following rules as shown in the figure \ref{fig:lgp}. For customizing, see subsection~\ref{sec:config}. The rules which occurs more early have the higher priorities.
+\begin{itemize}
+%<sc> \item 三种字体风格统一,位置原则上一致(故,繁中字体也悬挂于右下、而非居中);
+%<en> \item The style of the three fonts are unified;
+%<sc> \item 不同标点中的相同(似)元素位置相同;
+%<en> \item The position of the similar elements in different punctuations should be the same;
+%<sc> \item 繁中、简中、日文字体标点触字框右边线;
+%<en> \item The glyph of the punctuations should touch the \textit{kanji\/}'s boundary;
+%<sc> \item 不同标点符号因形状不同可于字框底线略下沉或上浮;
+%<en> \item Different punctuations' position can vary considering their glyphs' shapes, sizes, design respectively.
+%<sc> \item 不同标点符号因大小不同可靠近或远离字框右边线;
+%<sc> \item 三种字体可分别因字符设计的差异而位置略微区别。
+\end{itemize}
+
+%<sc>\subsection{用戶配置}
+%<en>\subsection{User Configs}
+\label{sec:config}
+%<sc>本特性是以三套思源字体为基准设计的。而由于各字体的标点符号位置不可避免会有不同,故在某些特殊情况下会出现错位影响视觉效果的情况。或是单纯对原设定而言更偏好其他设定等原因,本节提供自定义及调整的两种方法。第一种较简单但可移植性较差,而第二种虽繁琐但一劳永逸。
+%<en>This feature is designed for the Source Han font series (思源系列). Due to different fonts' different punctuation marks, the output may be wrong (overlap, not aligned, etc). Also you may prefer your own settings. Therefore, two methods of customizing the positions of hanged punctuations is provided here.
+
+%<sc>\subsubsection{修改原程式碼}
+%<en>\subsubsection{Changing Parameters}
+%<sc>在\textsf{Eva-JFM}中,控制行间标点的分区分别为
+%<en>In \textsf{Eva-JFM}, the tables which contains the parameters for the positions of these hanged punctuations is
+\begin{lstlisting}
+ [101,2] ==> [1]; [201,2] ==> [2]; [301,2] ==> [3].
+\end{lstlisting}
+%<sc>只需调整其中\texttt{left}和\texttt{down}键的值即可。其中\texttt{left}为向右移动,\texttt{down}为向下移动。
+%<en>Kindly modify \texttt{left} (dir right) and \texttt{down} (dir down) until the output is fine.
+%<sc>具体可参照终章。
+%<en>You can also refer to the last section (\textit{Implementing\/}).
+
+%<sc>\subsubsection{使用外掛符號字體}
+%<en>\subsubsection{Using Extra Font}
+%<sc>该方法的原理就是使用特殊的仅包含(标点)符号的字体来替换原有字体中的标点符号,从而稳定其表现。可使用字体熔炉等工具将标点符号从整套字体中提取出来并封装为新字体,也可使用开源符号字体。\段
+%<en>Extracting the glyphs for punctuation marks and package them into a new font (you can use programs like \textit{fontforge\/}) and use them for hanging punctuations later is the second solution. You can also load another font just for its punctuations (but loading a CJ font into {\TeX}'s memory has an expensive cost).\par
+%<sc>将其放入\texttt{TEXMF}并更新\texttt{Ls-R}文件后即可使用\LuaTeX-ja提供的\texttt{AltFont}键进行替换,例元:
+%<en>After installing that font, you can use the \texttt{AltFont} key provided by \LuaTeX-ja to replace the punctuations. The actual code is shown above.
+\begin{lstlisting}
+ \setmainjfont[
+ Language = §\meta{language}§,
+ TateFeatures = {
+ JFM = eva/{vert, lgp, §\meta{language}§},
+ AltFont = {
+ {Range = "§\meta{utf-8 code}§, Font = §\meta{symbol font}§}
+ }
+ }
+ ]{§\meta{main font}§}
+\end{lstlisting}
+%<sc>其中首个\meta{language}可选填\texttt{Japanese}、\texttt{Chinese Traditional}或\texttt{Chinese Simplified},第二个则填语言特性分区的对应\texttt{jp}、\texttt{trad}及\texttt{smpl}特性。\meta{utf-8 code}则为需要替换的标点符号的Unicode编码,如需替换句号(ideographic full stop,\texttt{U+3002})则填\texttt{3002}\footnote{编码可至\url{https://www.unicode.org/charts/unihanrsindex.html}查询。}。
+%<en>One of \texttt{Japanese}, \texttt{Chinese Traditional} or \texttt{Chinese Simplified} should be filled in the first \meta{language} option, the other one is for the corresponding JFM features. \meta{utf-8 code} selects the punctuations you'd like to replace with the ``punctuation font''\footnote{You can search \url{https://www.unicode.org/charts/unihanrsindex.html} for their unicodes representations.}.
+%<sc>\meta{symbol font}以及\meta{main font}填符号字体名称、正文字体名称即可。\段
+%<en>Finally, it's obvious that the \meta{symbol font} and the \meta{main font} options are for the ``punctuation font'' and the main font.\par
+%<sc>对于开发者,也建议使用NFSS的
+%<en>It's also recommended for the developers to use the NFSS with
+\begin{lstlisting}
+ \DeclareAlternateKanjiFont{§\meta{base encoding}§}{§\meta{base family}§}{§\meta{base series}§}{§\meta{base shape}§}{§\meta{alt encoding}§}{§\meta{alt family}§}{§\meta{alt series}§}{§\meta{alt shape}§}{§\meta{range}§}
+\end{lstlisting}
+%<sc>进行替换。其中\meta{base}为正文字体,\meta{alt}则为替换符号字体。\段
+%<en>Option \meta{base} and \meta{alt} stands for main font and ``punctuation font''.\par
+%<sc>具体语法及示例可看\LuaTeX-ja文档\cite{luatexja-doc}。
+%<en>Refer to the \LuaTeX-ja document~\cite{luatexja-doc} for more detailed syntax and usage as well as some examples.
+
+%<sc>\section{启發}
+%<en>\section{Inspiration}
+%<sc>\textsf{Eva-JFM}的内部分组受\texttt{min10.tfm} \cite{min10}的启发,支持的\texttt{priority}特性则取自阿部紀行氏的\texttt{jlreq.lua} \cite{ltxjlreq}文件。其余可见参考文献。\段
+%<sc>本JFM的名字来源于庵野秀明的『新世紀エヴァンゲリオン』。
+%<en>\textsf{Eva-JFM}'s internal grouping is inspired by \texttt{min10.tfm}~\cite{min10}, while its \texttt{priority} feature's data partly comes from Noriyuki Abe's \texttt{jlreq.lua}~\cite{ltxjlreq}.\par
+%<en>This JFM's name comes from the animation \textit{Neon Genesis Evangelion\/} by Hideaki Anno.
+
+\begin{thebibliography}{9}
+ \addcontentsline{toc}{section}{\refname}
+ \bibitem{jlreq} W3C Japanese Layout Task Force~(ed). \newblock Requirements for Japanese Text Layout (W3C Working Group Note), 2022, 2023. \newblock \url{https://www.w3.org/TR/jlreq/}.
+ \bibitem{luatexja-doc} \LuaTeX-jaプロジェクトチーム. \newblock \LuaTeX-jaパッケージ, 2022, 2023.
+ \bibitem{unicode} The Unicode Consortium. \newblock The Unicode Standard Version 15.0 - Core Specification, 2022.
+ \bibitem{tex-by-topic} Victor Eijkhout. \newblock \TeX{} by Topic, A \TeX nician's Reference, Addison-Wesley, 1992.
+ \bibitem{min10} 乙部厳己. \newblock min10フォントについて. \newblock \url{http://argent.shinshu-u.ac.jp/~otobe/tex/files/min10.pdf}.
+ \bibitem{ltxjlreq} Noriyuki Abe. \newblock Jlreq Document Class, 2022. \newblock \url{https://github.com/abenori/jlreq}.
+ \bibitem{evang} 庵野秀明. \newblock 新世紀エヴァンゲリオン.
+\end{thebibliography}
+
+%<sc>\section*{程式碼}
+%<en>\section*{Implementation}
+%<sc>以下为\texttt{jfm-eva.lua}文件内容,供参考。%及二次开发等。
+%<en>The above is the implementation of this font metric. Can be used for reference.
+\lstinputlisting{jfm-eva.lua}
+
+\end{document}
diff --git a/macros/luatex/generic/evangelion-jfm/Evangelion-doc.pdf b/macros/luatex/generic/evangelion-jfm/Evangelion-doc.pdf
deleted file mode 100644
index b2bdd9037c..0000000000
--- a/macros/luatex/generic/evangelion-jfm/Evangelion-doc.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/luatex/generic/evangelion-jfm/Evangelion-doc.tex b/macros/luatex/generic/evangelion-jfm/Evangelion-doc.tex
deleted file mode 100644
index c4073e0180..0000000000
--- a/macros/luatex/generic/evangelion-jfm/Evangelion-doc.tex
+++ /dev/null
@@ -1,225 +0,0 @@
-%! TeX Program = LuaLaTeX
-
-\documentclass{ltjsarticle}
-%\documentclass[
-% paper = a4paper,
-% fontsize = 12Q,
-% jafontsize = 12Q,
-% %line_length = ?zw,
-% %number_of_lines = ?,
-% article
-%]{jlreq}
-
-\usepackage{graphicx}
-
-\usepackage[match]{luatexja-fontspec}
-\setmainfont{Linux Libertine O}
-\setmainjfont{Source Han Serif SC}[Language = Chinese Simplified, YokoFeatures = {JFM = eva/{smpl, nstd}}]
-\setsansfont{Linux Biolinum O}
-%\setsansjfont{Source Han Sans SC}[Language = Chinese Simplified, YokoFeatures = {JFM = eva/{smpl, nstd}}]
-\setmonofont[Scale=MatchLowercase, FakeStretch=1.137121, RawFeature=-notdef]{Iosevka Slab}
-%\setmonojfont{Source Han Sans SC}
-
-\usepackage{luatexja-adjust}
-\ltjenableadjust[priority = true]
-
-\usepackage{listings}
-%\lstloadlanguages{TeX}
-\lstset{
- %language = TeX,
- basicstyle = \ttfamily\small,
- breaklines = true,
- columns = flexible,
- numbers = left,
- numberstyle = \tiny,
- stepnumber = 1,
- gobble = 4,
- numbersep = 6pt,
- escapechar = §
-}
-
-\usepackage{hyperref}
-\hypersetup{
- hidelinks,
- pdftitle = {Evangelion-JFM},
- pdfauthor = {RadioNoiseE},
- pdfsubject = {TeX},
- pdfkeywords = {Japanese Font Metric},
- pdfstartview = FitV
-}
-
-\long\def\feature#1#2#3{{\vskip8pt\vbox{\normalsize\parindent=\zw\hangindent=2\zw\texttt{#1 --> ({\itshape #2\/})}\\\indent#3\par}}}
-\def\meta#1{{\normalfont\rmfamily\itshape$\langle$#1\/$\rangle$}}
-\def\空{\quad}
-\def\段{\par}
-\def\LuaTeX{Lua\kern-.2ex\TeX}
-\def\pTeX{p\kern-.2ex\TeX}
-\def\pdfTeX{pdf\TeX}
-
-\title{\sffamily\bfseries Evangelion Japanese Font Metric for \LuaTeX}
-\author{\large \url{https://github.com/RadioNoiseE/Evangelion-JFM}}
-\date{西历2023年}
-
-\begin{document}
-\parindent=2\zw\parskip=2pt
-
-\maketitle
-
-\begin{abstract}
- 本文档将介绍名为Evangelion Japanese Font Metric(下简称为``\textsf{Eva-JFM}'')的JFM文件。其适用于简体中文(以下简称为「简中」)、繁体中文(以下简称为「繁中」)及日文字体的横直排。旨在提供一个充分利用\LuaTeX{}-ja的\texttt{priority}特性,基于标准\cite{jlreq}的同时,支持一些罕用特性的JFM文件。文档暂仅使用中文撰写。\段
- % This document introduces a JFM file named ``Evangelion-JFM'' (hereinafter referred to as ``\textsf{Eva-JFM}''). It supports vertical and horizontal written Simplified Chinese (hereinafter referred to as ``SC''), Traditional Chinese (hereinafter referred to as ``TC''), and Japanese (hereinafter referred to ad ``JP''). It aims to provide a JFM file that takes full advantage of the \texttt{priority} and other powerful features from \LuaTeX{}-ja, supporting the widely accepted standards (i.e. \cite{jlreq}), and supporting some rarely-used features. The documentation is written in both Chinese Simplified and English.
-\end{abstract}
-
-\section{背景及略介:Background Knowledge and a Rough Introduction}
-\TeX{}是高德纳教授于20世纪末开发的强大排版引擎,能够完全满足西文排版的需求。然因时代局限性\footnote{如没有事实上的统一字符编码等。}以及客观原因\footnote{如中日字符集较大,以及书写方式的不同(纵书、横书),标点等。}对中日排版支持十分有限。为达成中日排版需求,在宏扩展(如\textsf{CJK}等)之外出现了引擎扩展。影响力较大的是\pTeX{}系列。\段
-\pTeX{}系列采用虚拟字体的理念,使用\texttt{TFM/VF}映射TrueType或OpenType字体完成排版。其不支持宏配置字体,也不支持直接生成PDF格式文件。但可以满足日本的传统横纵排版需求(工业标准)。\段
-\pdfTeX{}则是当时另一个\TeX{}的引擎扩展,支持不经DVI格式直接输出PDF格式的文件。然对Unicode(字符编码)及TrueType、OpenType(「现代」矢量字体格式)的支持繁琐或有限。\LuaTeX{}便是基于\pdfTeX{}的引擎扩展,在原生支持Unicode下提供Lua语言扩展(使能够使用\textsf{fontloader}等模块)支持现代字体。宏配置字体特性由\textsf{luaotfload}宏集提供。它也支持直接生成PDF文件。\段
-\LuaTeX{}-ja可看作是对两者的合并。这是一个由日本开发者北川弘典首倡的\LuaTeX{}下的日文支持项目,即将\pTeX{}(大部分)移植到\LuaTeX{}下。由于\LuaTeX{}支持宏配置字体,故不需要\texttt{VF}文件为字体提供映射,但为标点挤压等需求保留并扩展\footnote{如优先挤压(\texttt{priority})特性,及一些特殊字符(如\texttt{parbdd}、\texttt{glue})等。}了JFM文件。\段
-本项目就是一个JFM文件。使用\LuaTeX{}的\texttt{callback},将简中、繁中、日文及横纵方向、行间标点、悬挂标点、压缩字体等特性集中于\texttt{jfm-eva.lua}单个文件中。用户可按需调用特性来完成高质量的中日排版。
-
-\section{安裝及本地配置:Installation and Local Configs}
-本项目将源文件托管于GitHub平台,暂未上传至Comprehensive \TeX{} Archive Net(CTAN)。用户可使用
-\begin{lstlisting}
- mkdir Evangelion-JFM [&&] cd Evangelion-JFM
- git clone https://github.com/RadioNoiseE/Evangelion-JFM
-\end{lstlisting}
-获取源文件,再将其放置在本地的\texttt{TEXMF}路径中,如
-\begin{lstlisting}
- ~/Library/texlive/2023/texmf-dist/tex/luatex/eva-jfm
-\end{lstlisting}
-等。最后运行
-\begin{lstlisting}
- mktexlsr
-\end{lstlisting}
-更新本地\TeX{}的\texttt{Ls-R}文件即可。\段
-本文件一般情况下无需用户进行本地配置,但若有特殊需求可见第\ref{sec:config}节。
-
-\section{使用:Using}
-以下是在\LaTeX{}下使用繁中字体进行直排的示例
-\begin{lstlisting}
- \usepackage{luatexja-fontspec, luatexja-adjust}
- \setmainjfont{Source Han Serif TC}[Language = Chinese Traditional, TateFeatures = {JFM = eva/{vert, trad, nstd}}]
- \ltjenableadjust[priority = true]
-\end{lstlisting}
-(注意需要调用支持直书的文档类或使用\texttt{\string\tate}命令)。\LuaTeX-ja的JFM语法为:
-\begin{lstlisting}
- jfm = §\meta{JFM name}§/{§\meta{JFM features}§}
-\end{lstlisting}
-而一般情况使用\texttt{\string\setmainjfont}时则为:
-\begin{lstlisting}
- \setmainjfont{§\meta{font name}§}[Language = §\meta{language name}§, §\meta{dir}§ = {JFM = §\meta{JFM name}§/{§\meta{JFM features}§}}]
-\end{lstlisting}
-其中,\meta{font name}自然为需要的字体名称。\meta{language name}在使用日文字体时可忽略,而使用简中、繁中字体时为必填,因\LuaTeX-ja会默认将其覆盖为\texttt{Japanese}选项,而这会带来灾难性的后果\footnote{比如错误的标点位置:日文为冒号及分号中置、其余偏靠,简中是全部偏靠,而繁中则是统统中置。}。\meta{dir}选填\texttt{TateFeatures}(直书)或\texttt{YokoFeatures}(横书)。其后的\meta{JFM name}为调用JFM的文件名\footnote{\LuaTeX-ja会依\texttt{jfm-\meta{JFM name}.lua}的格式来查找该文件。}。最后的\meta{JFM features}选项为选择使用的JFM特性,详细请看第\ref{sec:feat}章。\段
-其他情况下设置JFM及其更多信息请看\LuaTeX-ja文档\cite{luatexja-doc}。
-
-\section{支持特性:Supported Features}\label{sec:feat}
-本章节将介绍\textsf{Eva-JFM}的所有特性,分别为:语言特性、方向特性、扩展特性及私有特性。
-
-\subsection{語言特性:Language Features}
-本区特性必填且只可填一个。不然则会报错。\段
-\feature{jp}{JaPanese}{%
- 日本语特性。当使用日文字体时需调用该特性。其与简中、繁中区别在于问号及感叹号后插入的伸缩胶量。影响特性\texttt{lgp},且对内部分组有影响。
-}
-\feature{trad}{TRADitional chinese}{%
- 繁中特性。当使用繁体中文字体时需调用。与简中、日本语特性的区别源于中置的标点。故,对于全部标点左右插入的伸缩胶的量都与简中、日本语不同。针对句点紧挨闭括号、标点位于句末时等皆有优化。
-}
-\feature{smpl}{SiMPLified}{%
- 简中特性,使用简体中文字体排版时调用。与日本语、繁中特性区别源于分号及冒号等全部偏靠从而影响其左右插入伸缩胶的量。\textsf{Eva-JFM}对一些(不该出现的)神奇情况(如两个句号同时出现、开括号后出现问号等)进行优化。对问号、感叹号等作了特殊处理。
-}
-
-\subsection{方向特性:(Writing) Direction Features}
-本分区特性与全部其他特性兼容,可同时调用。\段
-\feature{vert}{VERTical writing}{%
- 直书特性。对标点挤压、分组有影响。直书时必须调用。
-}
-
-\subsection{擴展特性:Extended Features}
-本区特性\texttt{hgp}不依赖\texttt{vert}特性,其余需同\texttt{vert}特性同时调用。否则报错。\段
-\feature{extd}{EXTenDed font}{%
- 压缩字体特性。目前仅支持横比纵为100比80的字体压缩\footnotemark{}。需同\texttt{extend}(\textsf{luaotfload})或\texttt{FakeStretch}(\textsf{fontspec})同时使用。
-}\footnotetext{日本新闻字体,如每日新闻明朝体。}
-\feature{lgp}{LineGap Punctuations}{%
- 行间标点特性。该特性将部分标点「悬挂」至行间。日文字体时与繁、简中字体时会有区别。详见第\ref{sec:lgp}章。
-}
-\feature{hgp}{HanGing Punctuations}{%
- 悬挂标点特性。该特性将部分标点「悬挂」于行末。仅简中、日文字体拥有该特性。
-}
-
-\subsection{私有特性:Dark Features}
-使用本区特性前请先确保你清楚地知道你在做什么。\段
-\feature{nstd}{Non STandarD}{%
- 忽略标准特性。字体排印标准\cite{jlreq}认为逗号的压缩权重应比句号要低。本特性将句号的压缩优先级与逗号交换,使逗号被优先压缩\footnotemark{}。仅在使用\textsf{luatexja-adjust}宏集时有效。
-}\footnotetext{考虑逗号、句号在文字系统中占的重量,以及「开明」压缩风格。}
-
-\section{行間標點特性:More About Linegap Punctuations}\label{sec:lgp}
-本章节将提供更多详细的关于行间标点特性的信息,以及可能出现的问题及其解决方案。
-
-\subsection{關於「懸掛」:About ``Hanging''}
-行间标点可见于古籍之中,是将标点符号与直书结合妥协的产物。\段
-传统上悬挂句号与逗号。而\textsf{Eva-JFM}特性在繁中、简中特性下会悬挂句号、逗号、顿号、冒号及分号,日文字体下则不悬挂冒号及分号。原因在于日本习惯上将冒号与分号看作「中点类」,直书时横置处理。\段
-本JFM将全部标点悬挂于字体右下位置。详见下一节。
-
-\subsection{懸掛的位置:Hanging Position}
-%Figure Here
-\begin{figure}[htb]
- \centering
- \includegraphics[height = 12\zh]{figure/fig-tc.pdf}\空\includegraphics[height = 12\zh]{figure/fig-jp.pdf}
- \caption{行间标点特性示意图}\label{fig:lgp}
-\end{figure}
-
-标点悬挂的位置有以下考量,可参照图\ref{fig:lgp}。若有特殊需求请看第\ref{sec:config}节。优先级由上至下。
-\begin{itemize}
- \item 三种字体风格统一,位置原则上一致(故,繁中字体也悬挂于右下、而非居中);
- \item 不同标点中的相同(似)元素位置相同;
- \item 繁中、简中、日文字体标点触字框右边线;
- \item 不同标点符号因形状不同可于字框底线略下沉或上浮;
- \item 不同标点符号因大小不同可靠近或远离字框右边线;
- \item 三种字体可分别因字符设计的差异而位置略微区别。
-\end{itemize}
-
-\subsection{用戶配置:Configurations}\label{sec:config}
-本特性是以三套思源字体为基准设计的。而由于各字体的标点符号位置不可避免会有不同,故在某些特殊情况下会出现错位影响视觉效果的情况。或是单纯对原设定而言更偏好其他设定等原因,本节提供自定义及调整的两种方法。第一种较简单但可移植性较差,而第二种虽繁琐但一劳永逸。
-
-\subsubsection{修改原程式碼:Changing Parameters}
-在\textsf{Eva-JFM}中,控制行间标点的分区分别为
-\begin{lstlisting}
- [101,2] ==> [1]; [201,2] ==> [2]; [301,2] ==> [3].
-\end{lstlisting}
-只需调整其中\texttt{left}和\texttt{down}键的值即可。其中\texttt{left}为向右移动,\texttt{down}为向下移动。
-具体可参照第\ref{sec:impl}章。
-
-\subsubsection{使用外掛符號字體:Using Seperate Punctuation Font}
-该方法的原理就是使用特殊的仅包含(标点)符号的字体来替换原有字体中的标点符号,从而稳定其表现。符号字体可使用\url{https://github.com/Buernia/Zhudou-Sans}处的开源字体。其基于思源黑体,还添加了许多其他符号(但这里我们只会用到六个符号)及标点挤压等特性。\段
-将其放入\texttt{TEXMF}并更新\texttt{Ls-R}文件后即可使用\LuaTeX-ja提供的\texttt{AltFont}键进行替换,例元:
-\begin{lstlisting}
- \setmainjfont[
- Language = §\meta{language}§,
- TateFeatures = {
- JFM = eva/{vert, lgp, §\meta{language}§},
- AltFont = {
- {Range = "§\meta{utf-8 code}§, Font = §\meta{symbol font}§}
- }
- }
- ]{§\meta{main font}§}
-\end{lstlisting}
-其中首个\meta{language}可选填\texttt{Japanese}、\texttt{Chinese Traditional}或\texttt{Chinese Simplified},第二个则填语言特性分区的对应\texttt{jp}、\texttt{trad}及\texttt{smpl}特性。\meta{utf-8 code}则为需要替换的标点符号的Unicode编码,如需替换句号(ideographic full stop,\texttt{U+3002})则填\texttt{3002}\footnote{编码可至\url{https://www.unicode.org/charts/unihanrsindex.html}查询。}即可。
-\meta{symbol font}以及\meta{main font}填符号字体名称、正文字体名称即可。具体语法及示例可看\cite{luatexja-doc}。
-
-\section{启發:Inspiration}
-\textsf{Eva-JFM}的内部分组受\texttt{min10.tfm} \cite{min10}的启发,支持的\texttt{priority}特性则取自阿部紀行氏的\texttt{jlreq.lua} \cite{ltxjlreq}文件。其余可见参考文献。
-
-\begin{thebibliography}{99}
- \addcontentsline{toc}{section}{\refname}
- \bibitem{jlreq} W3C Japanese Layout Task Force~(ed). \newblock Requirements for Japanese Text Layout (W3C Working Group Note), 2022, 2023. \newblock \url{https://www.w3.org/TR/jlreq/}.
- \bibitem{luatexja-doc} \LuaTeX-jaプロジェクトチーム. \newblock \LuaTeX-jaパッケージ, 2022, 2023.
- \bibitem{unicode} The Unicode Consortium. \newblock The Unicode Standard Version 15.0 - Core Specification, 2022.
- \bibitem{tex-by-topic} Victor Eijkhout. \newblock \TeX{} by Topic, A \TeX nician's Reference, Addison-Wesley, 1992.
- \bibitem{min10} 乙部厳己. \newblock min10フォントについて. \newblock \url{http://argent.shinshu-u.ac.jp/~otobe/tex/files/min10.pdf}.
- \bibitem{ltxjlreq} Noriyuki Abe. \newblock Jlreq Document Class, 2022. \newblock \url{https://github.com/abenori/jlreq}.
-\end{thebibliography}
-
-\section*{程式碼:Implementation}\label{sec:impl}
-以下为\texttt{jfm-eva.lua}文件内容,供参考。%及二次开发等。
-\lstinputlisting{jfm-eva.lua}
-
-\end{document}
diff --git a/macros/luatex/generic/evangelion-jfm/README.md b/macros/luatex/generic/evangelion-jfm/README.md
index c92d46e257..a97615430d 100644
--- a/macros/luatex/generic/evangelion-jfm/README.md
+++ b/macros/luatex/generic/evangelion-jfm/README.md
@@ -2,25 +2,85 @@
## 简介 Some Information
-`Eva-JFM`是一个为在LuaTeX-ja下使用行间标点、压缩字体等特性设计的JFM文件。其可用于简中、繁中、日文字体,完全利用priority特性(数据来源jlreq),支持直书,同时为繁体字体进行优化(如行末、与直角引号之间等)。七个特性全集中与一个`Lua`文件中,可简单调用。
+`Eva-JFM`是一个为在LuaTeX-ja下使用行间标点、压缩字体等特性设计的JFM文件。其可用于简中、繁中、日文字体,充分利用priority特性(数据来源jlreq),支持直书,同时为繁体字体进行优化(如行末、与直角引号之间等)。
-详细请看[文档](Evangelion-doc.pdf)。
+详细请看[简体中文文档](Eva-JFM_doc-sc.pdf)。
-`Eva-JFM` is a JFM file which aims to support 'linegap puncutations', 'scaled font' and more features under LuaTeX-ja. It can be used with Traditional Chinese, Simplified Chinese and Japanese fonts, supporting vertical typesetting, making full-use of the `priority` feature, and added special support for Traditional Chinese font. It's based on jlreq, and insipered by `min10.tfm`. All its seven features are embeded into one file `jfm-eva.lua` to simplify the using.
+本项目已上传至[CTAN](https://www.ctan.org/pkg/evangelion-jfm)。
-For more datails please see the [documentation](Evagelion-doc.pdf). The English and Japanese documentation is still in progress.
+`Eva-JFM` is a JFM file which aims to support 'linegap puncutations', 'scaled font' and more features under LuaTeX-ja. It can be used with Traditional Chinese, Simplified Chinese and Japanese fonts, supporting vertical typesetting, making full-use of the `priority` feature, and added special support for Traditional Chinese font. It's based on jlreq, and insipered by `min10.tfm`. All its nine features are embeded into single file `jfm-eva.lua` to simplify the using.
+
+For more datails please see the [English documentation](Eva-JFM_doc-en.pdf).
+
+The Japanese documentation is still in progress.
+
+This package is also available on [CTAN](https://www.ctan.org/pkg/evangelion-jfm).
+
+## 支持特性 Supported Features
+
+- 行间标点 Linegap Punctuations
+
+- 标点悬挂 Hanging Punctuations
+
+- 简体中文 Simplified Chinese
+
+- 繁体中文 Traditional Chinese
+
+- 日本语 Japanese
+
+- 直书 Vertical Typesetting
+
+- 半宽西文 Half-width Alphabets
+
+- 全宽西文 Full-width Alphabets
+
+- 忽略标准 Non-standard
## 状态 Current Version
-`Ver 1.0.0 (b)`
+
+`Ver 1.0.2 (h)`
## 历史 Changelog
-- 2023.2.11 Ver 1.0.0 (a): fixed feature `lgp` and added the documentation.
-- 2023.2.7 Ver 1.0.0 (b): the first version.
+- 2023.4.15 Ver 1.0.2 (h): revised English doc and add reference.
+
+- 2023.4.2 Ver 1.0.2 (g): typeset English document and revised both.
+
+- 2023.3.19 Ver 1.0.2 (f): fix `extd_ratio` and add `end_adjust` for midp.
+
+- 2023.3.18 Ver 1.0.2 (e): line-end adjust key fixed.
+
+- 2023.3.15 Ver 1.0.2 (d): revised documentation.
+
+- 2023.3.13 Ver 1.0.2 (c): entire documentation translated to English.
+
+- 2023.3.12 Ver 1.0.2 (b): the English documentation (section 3).
+
+- 2023.3.12 Ver 1.0.2 (a): the English documentation (section 1 & 2).
+
+- 2023.3.6 Ver 1.0.1 (f): adjust kanjiskip after `lgp`.
+
+- 2023.3.3 Ver 1.0.1 (e): fix `extd_ratio`.
+
+- 2023.2.27 Ver 1.0.1 (d): fix `parbdd` and `boxbdd`.
+
+- 2023.2.26 Ver 1.0.1 (c): users can now customize ratio for `extd` feature.
+
+- 2023.2.26 Ver 1.0.1 (b): docstrip, updated documentation.
+
+- 2023.2.25 Ver 1.0.1 (a): add feature `hwid` and `fwid`.
+
+- 2023.2.24 Ver 1.0.0 (d): more `priority`, revised document.
+
+- 2023.2.18 Ver 1.0.0 (c): fix bug and updated documentation, uploaded to ctan, and added feature `hanging punc`.
+
+- 2023.2.11 Ver 1.0.0 (b): fixed feature `lgp` and added documentation.
+
+- 2023.2.7 Ver 1.0.0 (a): initial version.
## Copyright
This project is under MIT License.
-Author: RadioNoiseE.
+Author: RadioNoiseE, 黄京.
-Contact: j18516785606@icloud.com.
+Email Addr: j18516785606@icloud.com.
diff --git a/macros/luatex/generic/evangelion-jfm/figure/fig-jp.pdf b/macros/luatex/generic/evangelion-jfm/figure/fig-jp.pdf
new file mode 100644
index 0000000000..13d51406d2
--- /dev/null
+++ b/macros/luatex/generic/evangelion-jfm/figure/fig-jp.pdf
Binary files differ
diff --git a/macros/luatex/generic/evangelion-jfm/figure/fig-tc.pdf b/macros/luatex/generic/evangelion-jfm/figure/fig-tc.pdf
new file mode 100644
index 0000000000..78de9fafe3
--- /dev/null
+++ b/macros/luatex/generic/evangelion-jfm/figure/fig-tc.pdf
Binary files differ
diff --git a/macros/luatex/generic/evangelion-jfm/figure/fig.tex b/macros/luatex/generic/evangelion-jfm/figure/fig.tex
new file mode 100644
index 0000000000..0e1b1cb6c6
--- /dev/null
+++ b/macros/luatex/generic/evangelion-jfm/figure/fig.tex
@@ -0,0 +1,18 @@
+\documentclass{ltjtarticle}
+\usepackage{luatexja-fontspec, geometry, lua-visual-debug}
+
+\geometry{papersize = {9\zh, 7\zw}, margin=1\zw}%textwidth = 6\zh, lines = 4, ignoreall, centering}
+\pagestyle{empty}
+
+\setmainjfont{SourceHanSerif}[TateFeatures = {JFM = eva/{jp, vert, lgp}}]
+
+\begin{document}
+
+\parindent=0pt\obeylines\lineskip=\zw\baselineskip=2\zw
+
+綠螘新醅酒,
+紅泥小火爐。
+晚來天欲雪,
+能飲一杯無。
+
+\end{document}
diff --git a/macros/luatex/generic/evangelion-jfm/jfm-eva.lua b/macros/luatex/generic/evangelion-jfm/jfm-eva.lua
index 970cbc851c..02d45ed4aa 100644
--- a/macros/luatex/generic/evangelion-jfm/jfm-eva.lua
+++ b/macros/luatex/generic/evangelion-jfm/jfm-eva.lua
@@ -1,11 +1,11 @@
---- Evangelion Japanese Font Metric for LuaTeX
----- Current Version: 1.0.0 (b)
+---- Current Version: 1.0.2 (h)
---- Dev URL: https://github.com/RadioNoiseE/Evangelion-JFM
----- © Copyright 2023, RadioNoiseE
+---- Copyright 2023, RadioNoiseE ©
-- 初始化
-local lang_jp, lang_tc, lang_sc, dir_vt, font_extd, punc_lg, punc_hg, std_nil
+local lang_jp, lang_tc, lang_sc, dir_vt, font_extd, punc_lg, punc_hg, std_nil, al_hw, al_fw
if luatexja.jfont.jfm_feature then
lang_jp = luatexja.jfont.jfm_feature.jp
@@ -16,6 +16,8 @@ if luatexja.jfont.jfm_feature then
punc_lg = luatexja.jfont.jfm_feature.lgp
punc_hg = luatexja.jfont.jfm_feature.hgp
std_nil = luatexja.jfont.jfm_feature.nstd
+ al_hw = luatexja.jfont.jfm_feature.hwid
+ al_fw = luatexja.jfont.jfm_feature.fwid
end
-- 預處理及容錯
@@ -29,6 +31,10 @@ if punc_lg == true and dir_vt == false then
'For now I\'ll ignore it.')
end
+if al_hw == true and al_fw == true then
+ tex.error('JFM feature "hwid" cannot be used with "fwid".')
+end
+
if not ((lang_jp and not (lang_tc or lang_sc)) or
(lang_tc and not (lang_jp or lang_sc)) or
(lang_sc and not (lang_jp or lang_tc))) then
@@ -38,6 +44,14 @@ if not ((lang_jp and not (lang_tc or lang_sc)) or
'For now I\'ll use "lang_jp" for japanese by default.')
end
+-- 壓縮比例設定
+if font_extd == true then
+ local extd_ratio = (type(font_extd) == 'string') and tonumber(font_extd) or 1.25
+end
+
+-- 行間標點字間距補足
+local lgp_kanjiskip = {kanjiskip_natural = 0, kanjiskip_stretch = 1, kanjiskip_shrink = 1}
+
-- 定義函數宏
local function logic_anif(f1, f2, r1, r2)
local rta = f1 and (f2 and r1) or r2
@@ -50,12 +64,12 @@ local function logic_if(f1, r1, r2)
end
local function context_height()
- local rth = dir_vt and (font_extd and 0.625 or 0.5) or 0.88
+ local rth = dir_vt and (font_extd and extd_ratio/2 or 0.5) or 0.88
return rth
end
local function context_depth()
- local rtd = dir_vt and (font_extd and 0.625 or 0.5) or 0.12
+ local rtd = dir_vt and (font_extd and extd_ratio/2 or 0.5) or 0.12
return rtd
end
@@ -64,9 +78,9 @@ local eva = {
version = 3,
dir = logic_if(dir_vt, 'tate', 'yoko'),
zw = 1,
- zh = logic_anif(dir_vt, font_extd, 1.25, 1),
+ zh = logic_anif(dir_vt, font_extd, extd_ratio, 1),
kanjiskip = {0, 0.25, 0},
- xkanjiskip = {0.25, 0.25, 0.125},
+ xkanjiskip = {0.25, 0.125, 0.125},
[0] = { -- 缺省類
width = 1,
@@ -77,9 +91,9 @@ local eva = {
down = 0,
align = 'middle',
glue = {
- [1] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = logic_if(std_nil, {-1, 0}, {-1, -2})}, {}),
- [2] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = logic_if(std_nil, {-1, -2}, {-1, 0})}, {}),
- [3] = logic_if(dir_vt, {}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = {-1, -1}}, {priority = {0, -1}})),
+ [1] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = logic_if(std_nil, {-1, 0}, {-1, -2})}, {priority = logic_if(std_nil, {-1, 0}, {-1, -2})}),
+ [2] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = logic_if(std_nil, {-1, -2}, {-1, 0})}, {priority = logic_if(std_nil, {-1, -2}, {-1, 0})}),
+ [3] = logic_if(dir_vt, {priority = {0, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = {-1, -1}}, {priority = {-1, -1}})),
[7] = {0.5, 0, 0.25, ratio = 1, priority = {-1, -2}},
[9] = {0.25, 0, 0.125, ratio = 1, priority = {-1, -1}}
},
@@ -98,7 +112,7 @@ local eva = {
glue = {
[0] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = logic_if(std_nil, {-1, 0}, {-1, -2})}, {0.5, 0, 0.25, ratio = 0, priority = logic_if(std_nil, {-1, 0}, {-1, -2})}),
[1] = logic_if(lang_tc, {0.5, 0, 0.25}, {0.5, 0, 0.25}),
- [2] = logic_if(lang_tc, {0.5, 0, 0.5}, {0.5, 0, 0.25}),
+ [2] = logic_if(lang_tc, {0.5, 0, 0.25}, {0.5, 0, 0.25}),
[3] = logic_if(dir_vt, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {0, -1}}, {0.5, 0, 0.25, priority = {0, -1}}), logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
[4] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = logic_if(std_nil, {0, 0}, {0, -2})}, {0.5, 0, 0.25, ratio = 0, priority = logic_if(std_nil, {0, 0}, {0, -2})}),
[5] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = logic_if(std_nil, {0, 0}, {0, -2})}, {0.5, 0, 0.25, ratio = 0, priority = logic_if(std_nil, {0, 0}, {0, -2})}),
@@ -107,7 +121,7 @@ local eva = {
[8] = logic_if(lang_tc, {0.25, 0, 0.125}, {}),
[9] = logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.75, 0, 0.25, ratio = 1/3, priority = {0, -1}})
},
- end_adjust = logic_if(lang_tc, {0.25, 0}, logic_if(punc_hg, {-0.5, 0}, {0, 0}))
+ end_adjust = logic_if(lang_tc, {0.25, 0}, logic_if(punc_hg, {-0.5, 0.5, 0}, {0, 0}))
},
[101] = { -- 読点類(行間a)
@@ -118,7 +132,10 @@ local eva = {
italic = 0,
left = 0.38,
down = -0.34,
- align = 'left'
+ align = 'left',
+ glue = {
+ [0] = lgp_kanjiskip
+ }
},
[102] = { -- 読点類(行間b)
@@ -129,7 +146,10 @@ local eva = {
italic = 0,
left = logic_if(lang_tc, 0.62, 0.40),
down = logic_if(lang_tc, -0.58, -0.26),
- align = 'left'
+ align = 'left',
+ glue = {
+ [0] = lgp_kanjiskip
+ }
},
[2] = { -- 句點類
@@ -153,7 +173,7 @@ local eva = {
[8] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0}, {}),
[9] = logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.75, 0, 0.25, ratio = 1/3, priority = {0, -1}})
},
- end_adjust = logic_if(lang_tc, {0.25, 0}, logic_if(punc_hg, {-0.5, 0}, {0, 0}))
+ end_adjust = logic_if(lang_tc, {0.25, 0}, logic_if(punc_hg, {-0.5, 0.5, 0}, {0, 0}))
},
[201] = { -- 句點類(行間a)
@@ -164,7 +184,10 @@ local eva = {
italic = 0,
left = logic_if(lang_tc, 0.68, 0.34),
down = logic_if(lang_tc, -0.58, -0.28),
- align = 'left'
+ align = 'left',
+ glue = {
+ [0] = lgp_kanjiskip
+ }
},
[202] = { -- 句點類(行間b)
@@ -175,7 +198,10 @@ local eva = {
italic = 0,
left = 0.42,
down = -0.35,
- align = 'left'
+ align = 'left',
+ glue = {
+ [0] = lgp_kanjiskip
+ }
},
[3] = { -- 兩點類
@@ -188,14 +214,14 @@ local eva = {
down = 0,
align = logic_if(lang_tc, 'middle', 'left'),
glue = {
- [0] = logic_if(dir_vt, {}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {-1, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {-1, -1}})),
+ [0] = logic_if(dir_vt, {priority = {-1, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {-1, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {-1, -1}})),
[1] = logic_if(dir_vt, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}, {priority = {0, -1}}), logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
[2] = logic_if(dir_vt, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}, {priority = {0, -1}}), logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
- [3] = logic_if(dir_vt, {}, logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
- [4] = logic_if(dir_vt, {}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
- [5] = logic_if(dir_vt, {}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
- [6] = logic_if(dir_vt, {}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {-1, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {-1, -1}})),
- [7] = logic_if(dir_vt, {}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {-1, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {-1, -1}})),
+ [3] = logic_if(dir_vt, {priority = {0, -1}}, logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
+ [4] = logic_if(dir_vt, {priority = {0, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
+ [5] = logic_if(dir_vt, {priority = {0, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}})),
+ [6] = logic_if(dir_vt, {priority = {-1, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {-1, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {-1, -1}})),
+ [7] = logic_if(dir_vt, {priority = {-1, -1}}, logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {-1, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {-1, -1}})),
[8] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 0, priority = {0, -1}}, {0.5, 0, 0.25, ratio = 0, priority = {0, -1}}),
[9] = logic_if(lang_tc, {0.5, 0, 0.25, priority = {0, -1}}, {0.75, 0, 0.25, ratio = 1/3, priority = {0, -1}})
}
@@ -209,7 +235,10 @@ local eva = {
italic = 0,
left = logic_if(lang_tc, 0.94, 0.72),
down = logic_if(lang_tc, -0.58, -0.34),
- align = 'left'
+ align = 'left',
+ glue = {
+ [0] = lgp_kanjiskip
+ }
},
[302] = { -- 兩點類(行間b)
@@ -220,7 +249,10 @@ local eva = {
italic = 0,
left = logic_if(lang_tc, 0.96, 0.78),
down = logic_if(lang_tc, -0.58, -0.34),
- align = 'left'
+ align = 'left',
+ glue = {
+ [0] = lgp_kanjiskip
+ }
},
[4] = { -- 小書きの仮名類
@@ -319,7 +351,7 @@ local eva = {
[0] = {0.5, 0, 0.25, ratio = 0, priority = {-1, -2}},
[1] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1}, {}),
[2] = logic_if(lang_tc, {0.25, 0, 0.125, ratio = 1}, {}),
- [3] = logic_if(lang_sc, {}, {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}),
+ [3] = logic_if(lang_sc, {priority = {0, -1}}, {0.25, 0, 0.125, ratio = 1, priority = {0, -1}}),
[4] = {0.5, 0, 0.25, ratio = 0, priority = {0, -2}},
[5] = {0.5, 0, 0.25, ratio = 0, priority = {0, -2}},
[6] = {0.5, 0, 0.25, ratio = 0, priroity = {-1, -2}},
@@ -349,19 +381,49 @@ local eva = {
[7] = {0.25, 0, 0.125, ratio = 0, priority = {-1, -1}},
[8] = {0.25, 0, 0.125, ratio = 0, priority = {0, -1}},
[9] = {0.5, 0, 0.25, priority = {0, -1}}
- }
+ },
+ end_adjust = {0.25, 0}
},
- [10] = { -- 行頭
- chars = {'boxbdd', 'parbdd'},
+ [10] = { -- 西文
+ chars = {},
+ width = 0,
+ height = context_height(),
+ depth = context_depth(),
+ italic = 0,
+ left = 0,
+ down = 0,
+ align = 'middle',
+ glue = {}
+ },
+
+ [11] = { -- 行頭
+ chars = {'parbdd', 'boxbdd'},
glue = {
[7] = {0, 0, 0}
}
- },
-
- [11] = { -- 伸縮膠
- chars = {'glue'}
}
}
+if al_hw == true or al_fw == true then
+ eva[10].chars = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+ 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
+ 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}
+ eva[10].glue = table.fastcopy(eva[0].glue)
+ eva[10].glue[0] = {0.25, 0.125, 0.125, ratio = 0, priority = {0, -1}}
+ eva[0].glue[10] = {0.25, 0.125, 0.125, ratio = 1, priority = {0, -1}}
+ for _, catnum in ipairs({1, 2, 3, 5, 8, 9}) do
+ eva[catnum].glue[10] = table.fastcopy(eva[catnum].glue[0])
+ end
+end
+
+if al_hw == true and al_fw == false then
+ eva[10].width = 0.5
+end
+
+if al_fw == false and al_fw == true then
+ eva[10].width = 1
+end
+
luatexja.jfont.define_jfm(eva)
diff --git a/macros/luatex/generic/evangelion-jfm/make.sh b/macros/luatex/generic/evangelion-jfm/make.sh
new file mode 100644
index 0000000000..d5a96fd26d
--- /dev/null
+++ b/macros/luatex/generic/evangelion-jfm/make.sh
@@ -0,0 +1,22 @@
+## RadioNoiseE, 2023.
+## Evangelion Japanese Font Metric
+
+# Init
+echo "--Make: Running--"
+
+# Literate Programming - Strip out En/Sc docu
+luatex Evangelion-JFM.dtx
+
+# Complie respectively
+lualatex Eva-JFM_doc-sc.tex
+lualatex Eva-JFM_doc-sc.tex
+lualatex Eva-JFM_doc-en.tex
+lualatex Eva-JFM_doc-en.tex
+
+# Clean-up (requires LaTeXmk)
+latexmk -c Eva-JFM_doc-sc.tex
+latexmk -c Eva-JFM_doc-en.tex
+rm Eva-JFM_doc-sc.tex Eva-JFM_doc-en.tex
+
+# Terminate
+echo "--Make: Documentations and run-time files generated--"
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index a6d0ba0d60..c5d34f71c6 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -1,5 +1,8 @@
$mirrors = {
'Africa' => {
+ 'Morocco' => {
+ 'https://mirror.marwan.ma/ctan/' => 1,
+ },
'South Africa' => {
'http://ftp.sun.ac.za/ftp/CTAN/' => 1,
'https://mirror.ufs.ac.za/ctan/' => 1,
@@ -189,7 +192,6 @@ $mirrors = {
'https://ctan.math.illinois.edu/' => 1,
'https://ctan.math.utah.edu/ctan/tex-archive/' => 1,
'https://ctan.math.washington.edu/tex-archive/' => 1,
- 'https://mirror.las.iastate.edu/tex-archive/' => 1,
'https://mirror.math.princeton.edu/pub/CTAN/' => 1,
'https://mirror.mwt.me/ctan/' => 1,
'https://mirrors.mit.edu/CTAN/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 14bec6e215..ceac4e2501 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2023
-depend revision/66850
+depend revision/66857
name 00texlive.image
category TLCore
-revision 66846
+revision 66855
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4728,7 +4728,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 66842
+revision 66852
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -68858,7 +68858,7 @@ containerchecksum 595821a44d10775d5fd38e292d4cd0135daf1e2a59131afd9d6fb600f319be
name collection-context
category Collection
-revision 66802
+revision 66855
shortdesc ConTeXt and packages
relocated 1
longdesc Hans Hagen's powerful ConTeXt system, http://pragma-ade.com.
@@ -68901,7 +68901,7 @@ depend context-vim
depend context-visualcounter
depend jmn
containersize 588
-containerchecksum 69207bc0e107fd9ee86fd734740a5555cad4b24e98fc711e69d894291dd1195a1bcb42cb13bcdc867a409ec5f4056d5f7d5922de3b99f2b04aa66c7ec14dec66
+containerchecksum 304c326ea1cdde1f40df20b7000b418e0b38eb220b81cf7880366421935e9b0232f3c19de5e115373307aa9f2a96c56c90960ae1942247343c3f83fd51a4d6b9
name collection-fontsextra
category Collection
@@ -80315,7 +80315,7 @@ catalogue-topics font-supp context
name context-simpleslides
category ConTeXt
-revision 63903
+revision 66855
shortdesc A module for preparing presentations
relocated 1
longdesc This ConTeXt module provides an easy-to-use interface for
@@ -80326,11 +80326,13 @@ longdesc mixed with the text of slides. The module provides several
longdesc predefined styles, designed for academic presentation. Most
longdesc styles are configurable, and it is easy to design new styles.
depend context
-containersize 29096
-containerchecksum 2db8348769d60d38266ad3798264864a0453b38c769db02ddaee072e795596fd48cc201caa5023d980c1a748c41a30e4c560ece68def59deb3c467bec2e60f64
-doccontainersize 849560
-doccontainerchecksum 532a9a142b30c8fe2ff3431d24988ef96e5da63276cd0084fe8b69b3e9cb572a0beab8d7ee4291d00a4b1d725f3d23ed47632811fde7e2aca41998c5d44a0481
-docfiles size=2065
+containersize 29160
+containerchecksum 8d5853b1b68776894cd4170f7731a3da675b4d109f2cd3daf8ec5e371ff673621d633ef8b862447702315b849d1533ea8663a0ba17430cd957c2b0a6a97b2ced
+doccontainersize 856504
+doccontainerchecksum 123f7475677b2d5b773c0983274f1b6871b45a2b8c4726284c6b3941c2a88c27f39300fe411bc61ea2c904ef68b09b6524b8b69e05c86ac869869c32437caadf
+docfiles size=2072
+ RELOC/doc/context/third/simpleslides/LICENSE
+ RELOC/doc/context/third/simpleslides/README.md
RELOC/doc/context/third/simpleslides/VERSION
RELOC/doc/context/third/simpleslides/example.pdf
RELOC/doc/context/third/simpleslides/example.tex
@@ -115352,7 +115354,7 @@ runfiles size=40
name evangelion-jfm
category Package
-revision 65824
+revision 66857
shortdesc A Japanese font metric supporting many advanced features
relocated 1
longdesc This package provides a Japanese Font Metric supporting
@@ -115361,15 +115363,25 @@ longdesc 'extended fonts', and more interesting and helpful features
longdesc using traditional and simplified Chinese or Japanese fonts
longdesc under LuaTeX-ja. It also makes full use of the 'priority'
longdesc feature, meeting the standards, and allows easy customisation.
-containersize 2772
-containerchecksum 8f65c7a0bb9731cfa5294015fef8936a83e5cec017162997aac76cbaba1ca215189402f3c8387fc55b569395f6c7b8289a6bdbd7cde235d89484722ea257a2dc
-doccontainersize 295376
-doccontainerchecksum 2d2d92b7189c69ce30b5ca00900a135fdacff50fb9bc5ef61adb879bf744ea52b3985f948b8c8582169acf577034790436ab606f947c943b2fd5ddadc495bf13
-docfiles size=78
- RELOC/doc/luatex/evangelion-jfm/Evangelion-doc.pdf details="Package documentation"
- RELOC/doc/luatex/evangelion-jfm/Evangelion-doc.tex
+containersize 3192
+containerchecksum 6a1d19b1c20fc453bf454d183be15e41beb07498259c8200ca8dacd82adbbd5091e9b394b637e7815fb5b141f750a40a85739a7966bba99df2fab51739de65dc
+doccontainersize 489408
+doccontainerchecksum 3f1d1af3f31b815e7a4b7fc90e97cb35e3374c12acdb5949582bea7498cf86b07a509675c459145b97fdb6f6463807ac0bc2681e3cce65669eece26637ac1b90
+docfiles size=153
+ RELOC/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.pdf details="Package documentation" language="en"
+ RELOC/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.tex
+ RELOC/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.pdf details="Package documentation" language="zh"
+ RELOC/doc/luatex/evangelion-jfm/Eva-JFM_doc-sc.tex
RELOC/doc/luatex/evangelion-jfm/LICENSE
RELOC/doc/luatex/evangelion-jfm/README.md details="Readme"
+ RELOC/doc/luatex/evangelion-jfm/figure/fig-jp.pdf
+ RELOC/doc/luatex/evangelion-jfm/figure/fig-tc.pdf
+ RELOC/doc/luatex/evangelion-jfm/figure/fig.tex
+ RELOC/doc/luatex/evangelion-jfm/make.sh
+srccontainersize 11816
+srccontainerchecksum 203efc3f56c393dd96ea07ec650af339df3fae973e581abe7816987935e5010f7abf9ec2b695e7cccda3e50c46b1ca695a11ab65ae65a6ce97648da8fca7bb8f
+srcfiles size=8
+ RELOC/source/luatex/evangelion-jfm/Evangelion-JFM.dtx
runfiles size=5
RELOC/tex/luatex/evangelion-jfm/jfm-eva.lua
catalogue-contact-bugs https://github.com/RadioNoiseE/Evangelion-JFM/issues
@@ -115378,7 +115390,7 @@ catalogue-contact-repository https://github.com/RadioNoiseE/Evangelion-JFM
catalogue-ctan /macros/luatex/generic/evangelion-jfm
catalogue-license mit
catalogue-topics chinese japanese font-supp luatex
-catalogue-version 1.0.0 (b)
+catalogue-version 1.0.2 (h)
name everyhook
category Package
@@ -195847,7 +195859,7 @@ catalogue-version 1.0
name luapstricks
category Package
-revision 65913
+revision 66854
shortdesc A PSTricks backend for LuaLaTeX
relocated 1
longdesc This package enables the use of PSTricks directly in LuaLaTeX
@@ -195856,21 +195868,22 @@ longdesc implementing a PostScript interpreter in Lua. Therefore it does
longdesc not require shell escape to be enabled or special environments,
longdesc and instead allows PSTricks to be used exactly like in dvips
longdesc based documents.
-containersize 27112
-containerchecksum b8c48f0d7866cb79ef6b38b46614186e309200ea9f3294d5e6e98ed0514a218ae04bbde2d82b3ddcb3ea4a0b473f1c80f2a656d2a41dda2829a73eb978320fef
-doccontainersize 1524
-doccontainerchecksum 37c1e6a9c05ca3dcb88f2a5e7754c3be824083eedf71846efda896d91527d888fb4cd3d2487347ea6f930cf91e159a763cc4407f989d9bac35e1f3e7dc9515f5
+containersize 31176
+containerchecksum 657e23c0d10dee77e5a227828fb7440c8b2216b3e8750e241d1bc3fb313fd7e255ae65c2995f23fd7d329511d956f634e23f8bc98a099e9bbb240dd2fbcca393
+doccontainersize 1252
+doccontainerchecksum 0d930e43ac651bb16ed4f8229646021b899d7701df04ab657167bd3482ff56a5d1bdf9497b637ceae7708ef704d6ad1c185db33fb69a6ee78b336fd64110cb45
docfiles size=1
RELOC/doc/lualatex/luapstricks/README.md details="Readme"
-runfiles size=35
+runfiles size=40
RELOC/fonts/opentype/public/luapstricks/PSTricksDotFont.otf
+ RELOC/tex/lualatex/luapstricks/luapstricks-plugin-pstmarble.lua
RELOC/tex/lualatex/luapstricks/luapstricks.lua
catalogue-contact-bugs https://github.com/zauguin/luapstricks/issues
catalogue-contact-repository https://github.com/zauguin/luapstricks
catalogue-ctan /graphics/pstricks/contrib/luapstricks
catalogue-license lppl1.3
catalogue-topics luatex pstricks
-catalogue-version 0.8
+catalogue-version 0.9
name luaquotes
category Package
@@ -255993,7 +256006,7 @@ catalogue-version 1.1
name profcollege
category Package
-revision 66660
+revision 66856
shortdesc A LaTeX package for French maths teachers in college
relocated 1
longdesc This package provides some commands to help French mathematics
@@ -256003,15 +256016,15 @@ longdesc \Pythagore{ABC}{5}{7} to write the entire calculation of AC
longdesc with the Pythagorean theorem, \Trigo[Cosinus]{ABC}{3}{}{60} to
longdesc write the entire calculation of AC with cosine, ... and some
longdesc others.
-containersize 1270540
-containerchecksum 92a78e7ab61e8f1ca7260e9b9538170e6646dce6507cf19159cbb2c85df1092131c6f88bc090228d96797a035100bdff652e82014126ec79a2f9fe14e313f780
-doccontainersize 10996772
-doccontainerchecksum 84ca8327784da2aff6a377223725b249bb92fa0d7b5c1a63f8b0dafdde788d5d4d49f8b1d4c286dd74ff11df3ef0f7c91481fa241ffcea7815538ca8ab9c6207
-docfiles size=2850
+containersize 1270844
+containerchecksum 89b79ea6b6d53388152d593f8edcd99fc8da3ed91e0a6845227746ff37560594b8962da8daf102630e8de9f82977a9f949b6d4c6cb27ccbb021f817f384d4dab
+doccontainersize 11127496
+doccontainerchecksum a64ccf7f095b54e33be4700c9259be16cef481cbadaef665e6d36c0a1722bf289da53a0b8e1cc85c45d9275ab16c2c50cb0695c490fe00cc1b2fd70143e22cf0
+docfiles size=2880
RELOC/doc/latex/profcollege/ProfCollege-doc.pdf details="Package documentation" language="fr"
RELOC/doc/latex/profcollege/ProfCollege-doc.zip
RELOC/doc/latex/profcollege/README details="Readme"
-runfiles size=2771
+runfiles size=2795
RELOC/metapost/profcollege/PfCAfficheur.mp
RELOC/metapost/profcollege/PfCArithmetique.mp
RELOC/metapost/profcollege/PfCArithmetiquePDF.mp
@@ -256240,6 +256253,7 @@ runfiles size=2771
RELOC/tex/latex/profcollege/PfCCAN.tex
RELOC/tex/latex/profcollege/PfCCalculatrice.tex
RELOC/tex/latex/profcollege/PfCCalculsCroises.tex
+ RELOC/tex/latex/profcollege/PfCCalculsFractions.tex
RELOC/tex/latex/profcollege/PfCCalisson.tex
RELOC/tex/latex/profcollege/PfCCartesJeux.tex
RELOC/tex/latex/profcollege/PfCCartesMentales.tex
@@ -256267,6 +256281,7 @@ runfiles size=2771
RELOC/tex/latex/profcollege/PfCEquationSoustraction2.tex
RELOC/tex/latex/profcollege/PfCEquationSymbole1.tex
RELOC/tex/latex/profcollege/PfCEquationTerme1.tex
+ RELOC/tex/latex/profcollege/PfCFactorisation.tex
RELOC/tex/latex/profcollege/PfCFicheMemo.tex
RELOC/tex/latex/profcollege/PfCFonctionAffine.tex
RELOC/tex/latex/profcollege/PfCFrise.tex
@@ -256275,6 +256290,7 @@ runfiles size=2771
RELOC/tex/latex/profcollege/PfCGeometrie.tex
RELOC/tex/latex/profcollege/PfCGrades.tex
RELOC/tex/latex/profcollege/PfCHiddenMessage.tex
+ RELOC/tex/latex/profcollege/PfCJeuRangement.tex
RELOC/tex/latex/profcollege/PfCKakurasu.tex
RELOC/tex/latex/profcollege/PfCKakuro.tex
RELOC/tex/latex/profcollege/PfCKenKen.tex
@@ -256301,6 +256317,7 @@ runfiles size=2771
RELOC/tex/latex/profcollege/PfCPuzzleSommePyramide.tex
RELOC/tex/latex/profcollege/PfCPyramideCalculs.tex
RELOC/tex/latex/profcollege/PfCPythagore.tex
+ RELOC/tex/latex/profcollege/PfCPythagoreold.tex
RELOC/tex/latex/profcollege/PfCQuestionsFlash.tex
RELOC/tex/latex/profcollege/PfCQuestionsRelier.tex
RELOC/tex/latex/profcollege/PfCQuiSuisJe.tex
@@ -256330,6 +256347,7 @@ runfiles size=2771
RELOC/tex/latex/profcollege/PfCThales.tex
RELOC/tex/latex/profcollege/PfCTortueBase.tex
RELOC/tex/latex/profcollege/PfCTrigonometrie.tex
+ RELOC/tex/latex/profcollege/PfCTrio.tex
RELOC/tex/latex/profcollege/PfCTriominos.tex
RELOC/tex/latex/profcollege/PfCVueCubes.tex
RELOC/tex/latex/profcollege/PfCYohaku.tex
@@ -256338,7 +256356,7 @@ catalogue-also proflycee
catalogue-ctan /macros/latex/contrib/profcollege
catalogue-license lppl1.3c
catalogue-topics maths french teaching
-catalogue-version 0.99-z-g
+catalogue-version 0.99-z-i
name proflabo
category Package
@@ -312111,7 +312129,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 66842
+revision 66852
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -312119,11 +312137,11 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 114052
-containerchecksum e9d643b98be0ed41c4022637a7a4d4bbed5a6cc93b80827030b218203d950ea34f98bafe8089ae94f875cd5859a7e0eca332c0966e5a9b2778f3bd9388e76676
-doccontainersize 423772
-doccontainerchecksum e6d86eb663cbc55db1309bf6b41006a83d6eb42e1eb0c9a086f9dd55761a00f32e75a8aa1e78c383d45be8e906442d54252b542329c8ee9086520dbd78d94e45
-docfiles size=538
+containersize 114048
+containerchecksum f84727445731699e8b7fb046b5ad9b11a805d4eea2654bae0432cc0f4fd11337a90ed76a4be347d8e9be53e55d321229a28f3d9c5db3dec4903388f771f9abb5
+doccontainersize 426140
+doccontainerchecksum c57b97365acd333ce4055646eae002364b67844810b1ab3df64d3cbae44c1d2a1f0a72f6df77143d3e88927296bdd2f536759328314e52de5673e74e4b937fe4
+docfiles size=543
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index ba35aef383..c1cdabe7cc 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-8c34312780fce704ec010160733cce61 texlive.tlpdb
+58999f25e37145ff97509ba501cdd994 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 26507bf8b7..7e856c1567 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-ec070a7228b1d30e0fdb5f605f746565005d015c8c3f2e237f7a8ea3dbc362a3a2c43edc460f1c705180b6c008ec1a06c20960b0cdf5007a9d80d186553703e2 texlive.tlpdb
+e66bc5dd4ade14d9c26700510cf301528d565f63205f829eaf8b9cd483c3b89716ab4d783ccbd10a63bf6ac2bc1fc058844e3d772abcbcc556ea98f8f0870647 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 9884429b9f..e73c8e73eb 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJkOeeJAAoJEEzhh34ZQ4xwg1gH/3MMqgmxc2SAM266RlezSZtV
-Lxa238KTW7KNQRewP74xHFb3RcpKICFzO9zA1jGgd6OGyxr5WO/YeyR4StzPqnxU
-02yewS5LHd87Dy9Ionu+2tU+wFW7+jgk5jCEoXYBVtpsd6ElaNK/hHEMOTOWlwGP
-XCYmf9p69atj1whJbM8/qrn+s3PMmonpJep5dnVk9XXsctsV+7BVSys08nk3DgQ/
-g1Vu8HnS4PVm1R2L7XEyYQRMMLVjDqJV3duYgB37s1ugfWvBnvb+UtnIaZj44DCN
-lUJ843iB6uJDbKSJ/ZJmA1yQPdo7RgljOzWGEFU7BibOk/i2uIvy2m+qvGeEUYU=
-=Yad5
+iQEcBAEBCgAGBQJkOzkEAAoJEEzhh34ZQ4xwGQgH/iso0T5MOBI1Rcess6dyMrPI
++s7lxvFagi4IwcrA2fj0UVYwUhaP3sxpKbC0posT28SfxFTTR/gd+chcP9lRl57n
+VKAFmEX913Fzp35sxBpoE8jV052G73+WtJWejAN4Fb8gqYRRB+ZGQ+DvBhMFW6GP
+hr1Vh+4EnKPRwg8XTiMdqIQUVhVWCcUNee3984PWkEfHzajuTgMCkCW0us2XaKpk
+A5W15OWAJie4PSIrnbC86+FWohTuddqKkabij7AnpF2o9fSxdU2SAdPMaagwmwyP
+mpm7Wk39zBQ9MPaiVW72m7AuzL2p+rVFv561pz3E3DfX5LwuTpEv6P8DZTjpx24=
+=ziS2
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 0c9fddb301..9b8201bc92 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma
index fa68a4476a..a559d9a56f 100644
--- a/systems/win32/miktex/tm/packages/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma
index f79bb72a8a..299c6399bd 100644
--- a/systems/win32/miktex/tm/packages/next/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index c4cda78c9f..4b1307647d 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1681067297
+date=1681571779
lastupd=miktex-zzip-bin-x64-2.9 miktex-zlib-bin-x64-2.9 miktex-yap-bin-x64-2.9 miktex-xml2pmx-bin-x64 miktex-xetex-bin-x64-2.9 miktex-web-bin-x64-2.9 miktex-uriparser-bin-x64-2.9 miktex-upmendex-bin-x64 miktex-ttf2pk2-bin-x64-2.9 miktex-texworks-bin-x64-2.9 miktex-texware-bin-x64-2.9 miktex-texify-bin-x64-2.9 miktex-tex4ht-bin-x64-2.9 miktex-tex2xindy-bin-x64-2.9 miktex-tex-bin-x64-2.9 miktex-teckit-bin-x64-2.9 miktex-tdsutil-bin-x64 miktex-synctex-bin-x64-2.9 miktex-runtime-bin-x64-2.9 miktex-ptex-bin-x64
-lstdigest=6d3670c28ba6fda3ba7bd57fedf00b3d
-numpkg=6509
+lstdigest=dba620d5b35aff76ffcc85ee0ac8d3bc
+numpkg=6520
relstate=next
-version=8499
+version=8505
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: tSlLCR7/xVgkwwt3ybixTYqSfNGrqzyASAeJIBwpo36kHPzzEKAmX+In0SIbHZDYk9/+DJ9R51axruhsKAHH8NJkI9Tkewd7pr/cSLUvH3gSjR/uOwXKVGJV7EJTQ1jIIE8XJuiUtQVQcY+JXymLKQy4fZ07HB05c3Z69RYH1ccSMXzJiU8H5xqgK346Xdc3LPrvDIAifA4FMXi07miM4w0R+WkEG9tjhmSUwTCkwAOtUrYqzkZXPQuzlxqTsR5o42I3A90oOpIGqzlxI1onsi98c2ufLTcSn0tWfneL3n3kSW9nI0n9DDvWaiJ/BKoHOExvdELQsxv8eeCGiDZb5A==
+;;;; signature/miktex: PMg7KJuipjYomqLeScfhCBMy37Qef6OapIuN/331aFaUIayEV4BFRF1ctOUpAjJTyzIjz0+pBa92HFHgEvVV+TEwUEhnFJfS+NHODt88LIRZ+v095TDGGA5rzL9pLKKeCCK/ulBT0mYbOW0tCQY2DnEma8IWXpPv8wtCwl7m0u+rGTQibKV1wD0/61aJysgRYzibZ1LpM+YSbPASL6Te048abchBSHPzuhcld2SyZ2sZxykkfH4dlMfGqv7lkSetKYt1nULGPyMQimhSgpcqUhknQomGm5TpTFhKqnfmseoRqEtaN1fdz677WJbzzUREvIEz3mBRBa5Y9VEvrvMlKA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index e0eb3f6adb..13892a723b 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1681067256
-lastupd=nahuatl__source nahuatl pst-bar__source pst-bar__doc pst-bar tikz-trackschematic__source tikz-trackschematic latex-lab-dev__source latex-lab-dev yquant__source yquant__doc yquant thuthesis__source thuthesis__doc thuthesis simpleicons__source simpleicons__doc simpleicons mpchess__source mpchess__doc
-lstdigest=8e562dae781fdc74702bcde170806c94
-numpkg=6509
+date=1681571707
+lastupd=miktex-zzip-bin-x64-2.9 miktex-zlib-bin-x64-2.9 miktex-yap-bin-x64-2.9 miktex-xml2pmx-bin-x64 miktex-xetex-bin-x64-2.9 miktex-web-bin-x64-2.9 miktex-uriparser-bin-x64-2.9 miktex-upmendex-bin-x64 miktex-ttf2pk2-bin-x64-2.9 miktex-texworks-bin-x64-2.9 miktex-texware-bin-x64-2.9 miktex-texify-bin-x64-2.9 miktex-tex4ht-bin-x64-2.9 miktex-tex2xindy-bin-x64-2.9 miktex-tex-bin-x64-2.9 miktex-teckit-bin-x64-2.9 miktex-tdsutil-bin-x64 miktex-synctex-bin-x64-2.9 miktex-runtime-bin-x64-2.9 miktex-ptex-bin-x64
+lstdigest=0315ff91b6b4239c3dce68e27533a7da
+numpkg=6520
relstate=stable
-version=8499
+version=8505
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: umnfMSpG/kcT9Q/ZNy8UI8I74l5xhDtyqOtZRFKMcr0YRPjSfu1Naam8gTNYCwgIGA9oJJvKZVImcH160X4ASWTpXjis3yNVVc9OPjlO05+fdeYugMYOI7EoLrPHjEk3qJyz0eGdBN0Mjw7Xd9of7PWgRZ3c7I1V8prjJ40YYFwJyvxouXrgy8FPQpCBZITxiMR6BYqJWBeLTQZhbVofr59qLPWS4rxtPXEmYMAYLZTRKZPpvvtiRolm6xGGDsCufgKGqf61t94azC1ygI00yvUu5lPPvj4BkuY971WCqvzv6J4E53IERM9X3oe/F29+xrnF1Ks27vLnN6sKq4wpRg==
+;;;; signature/miktex: H82r01vlyvNuRYs5EZxLjDlkvbot6WF91HKHFb7i9MjRzWY+WxU/jOmmJ8Pt0Ea4BcDyRh6+DofvvDrBWkC/7gsxTeYrtHZ02Zo/bdNK1Wh/vi+uU7yRwo0o9s/pcgAfRKjMHUMaKdfkWXlk9rIEwe72WPTftxsj62M74nTYZeqDBRKL+YoScm6s+7GspOGMKfEE+C56HIjWMt7gs3YmsuzzuaFJNPRTtK+mwG8dCbKYDMXeonPERKqoQe1bhV5e6EDdbATDG0XEzh6CAqnYRYyONjDhfGU9WZDalG4IdYXCBJJQ/axabqXqtbLNGctGpXLk8bRiSFtX0J6AlN4C4Q==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 5854b79b4d..42fe2206b9 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2023-04-15-02-02
+2023-04-16-02-02