summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname450
-rw-r--r--FILES.byname.gzbin2529413 -> 2529479 bytes
-rw-r--r--FILES.last07days522
-rw-r--r--biblio/ctan-bibdata/ctan.bib26
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3666081 -> 3668076 bytes
-rw-r--r--info/install-latex-guide-zh-cn/appendix/updateinfo.tex7
-rw-r--r--info/install-latex-guide-zh-cn/chapter/editor.tex3
-rw-r--r--info/install-latex-guide-zh-cn/chapter/ubuntu.tex4
-rw-r--r--info/install-latex-guide-zh-cn/chapter/wsl.tex2
-rw-r--r--info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdfbin790584 -> 790843 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README7
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdfbin36324 -> 36204 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdfbin100109 -> 102294 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/latin-manuscripts.lbx46
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx3
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx2
-rw-r--r--macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdfbin9158838 -> 9283470 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalisson.tex376
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex107
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecDeci.tex251
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex189
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex164
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex49
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPapiers.tex559
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPavage.tex1216
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPavageAvecMotifImage.tex1040
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRLE.tex274
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex56
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex1412
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSquaro.tex70
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSquaroaprioriold.tex107
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCStatistiques.tex538
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex97
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTortueBase.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCVueCubes.tex2
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty6
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCConstantes.mp16
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCScratch.mp5
-rw-r--r--macros/latex/contrib/srdp-mathematik/README.md2
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdfbin180732 -> 181160 bytes
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty44
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex9
-rw-r--r--macros/unicodetex/latex/bithesis/bithesis.dtx23
-rw-r--r--macros/unicodetex/latex/bithesis/bithesis.pdfbin1175792 -> 1178694 bytes
-rw-r--r--support/latexindent/LatexIndent/AlignmentAtAmpersand.pm86
-rw-r--r--support/latexindent/LatexIndent/GetYamlSettings.pm30
-rw-r--r--support/latexindent/LatexIndent/Version.pm4
-rw-r--r--support/latexindent/README2
-rw-r--r--support/latexindent/bin/linux/latexindentbin6164028 -> 6164651 bytes
-rw-r--r--support/latexindent/bin/macos/latexindentbin6393230 -> 6393873 bytes
-rw-r--r--support/latexindent/defaultSettings.yaml4
-rw-r--r--support/latexindent/documentation/latexindent-yaml-schema.json2
-rw-r--r--support/latexindent/documentation/latexindent.pdfbin1244704 -> 1246412 bytes
-rw-r--r--support/latexindent/documentation/latexindent.tex203
-rwxr-xr-xsupport/latexindent/latexindent.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl1
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb137
-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.xzbin2448892 -> 2446644 bytes
-rw-r--r--timestamp2
71 files changed, 5042 insertions, 3161 deletions
diff --git a/FILES.byname b/FILES.byname
index 79efdd3d69..9b764ee414 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/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/05/01 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/04/30 | 2780443 | biblio/ctan-bibdata/ctan.bib
-2023/04/30 | 3665234 | biblio/ctan-bibdata/ctan.pdf
+2023/05/01 | 2780444 | biblio/ctan-bibdata/ctan.bib
+2023/05/01 | 3666081 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/04/30 | 4063003 | biblio/ctan-bibdata.zip
+2023/05/01 | 4063582 | 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
@@ -2218,7 +2218,7 @@
1989/12/11 | 6196 | biblio/tib/tib.man
1989/03/29 | 23265 | biblio/tib/vitaMake
2005/12/15 | 366385 | biblio/tib.zip
-2023/04/28 | 18233 | CTAN.sites
+2023/05/01 | 18357 | CTAN.sites
1990/10/03 | 5032 | dviware/beebe/00readme.txt
1990/10/03 | 479 | dviware/beebe/doc/00dir.cmd
1990/10/03 | 1209 | dviware/beebe/doc/00dir.lst
@@ -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/30 | 171998 | FILES.last07days
+2023/05/01 | 163242 | 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
@@ -191035,21 +191035,21 @@
1997/10/22 | 46895 | info/installing_psnfss_on_emtex.pdf
2023/03/23 | 4712 | info/install-latex-guide-zh-cn/appendix/mirror.tex
2020/11/14 | 2463 | info/install-latex-guide-zh-cn/appendix/offline.tex
-2023/03/26 | 6569 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex
-2023/03/26 | 23331 | info/install-latex-guide-zh-cn/chapter/editor.tex
+2023/05/01 | 6714 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex
+2023/05/01 | 23420 | info/install-latex-guide-zh-cn/chapter/editor.tex
2023/03/21 | 7036 | info/install-latex-guide-zh-cn/chapter/macos.tex
2022/09/30 | 5882 | info/install-latex-guide-zh-cn/chapter/overleaf.tex
2023/03/23 | 2833 | info/install-latex-guide-zh-cn/chapter/preface.tex
-2023/03/26 | 12785 | info/install-latex-guide-zh-cn/chapter/ubuntu.tex
+2023/05/01 | 12787 | info/install-latex-guide-zh-cn/chapter/ubuntu.tex
2023/03/26 | 20874 | info/install-latex-guide-zh-cn/chapter/windows.tex
-2023/03/26 | 10535 | info/install-latex-guide-zh-cn/chapter/wsl.tex
-2023/04/02 | 790584 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
+2023/05/01 | 10536 | info/install-latex-guide-zh-cn/chapter/wsl.tex
+2023/05/01 | 790843 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
2023/03/23 | 3198 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.tex
2020/11/14 | 19039 | info/install-latex-guide-zh-cn/LICENSE
2020/11/14 | 491 | info/install-latex-guide-zh-cn/make.bat
2020/11/14 | 596 | info/install-latex-guide-zh-cn/makefile
2021/05/08 | 2680 | info/install-latex-guide-zh-cn/README.md
-2023/04/02 | 829374 | info/install-latex-guide-zh-cn.zip
+2023/05/01 | 829799 | info/install-latex-guide-zh-cn.zip
2008/06/13 | 116805 | info/intro-scientific/earth-moon.pdf
2009/02/19 | 226 | info/intro-scientific/Makefile
2009/02/18 | 1350 | info/intro-scientific/README
@@ -214479,24 +214479,25 @@
2013/11/18 | 952 | macros/latex/contrib/biblatex-contrib/biblatex-luh-ipw/verbose-inote-luh-ipw.cbx
2013/11/18 | 368202 | macros/latex/contrib/biblatex-contrib/biblatex-luh-ipw.zip
2018/09/19 | 5632 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.bib
-2020/01/07 | 36324 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdf
-2018/09/22 | 708 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.tex
-2020/01/07 | 100109 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdf
-2020/01/07 | 21226 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex
+2023/05/01 | 36204 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdf
+2023/05/01 | 708 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.tex
+2023/05/01 | 102294 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdf
+2023/05/01 | 21321 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex
2016/09/25 | 446 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/makefile
-2020/01/07 | 1767 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx
-2020/01/07 | 1841 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx
-2020/01/07 | 1839 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx
+2023/05/01 | 1767 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx
+2023/05/01 | 1841 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx
+2023/05/01 | 1839 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx
+2023/05/01 | 2071 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/latin-manuscripts.lbx
2018/09/19 | 856 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/makefile
-2020/01/07 | 1139 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx
-2020/01/07 | 746 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx
-2018/09/19 | 784 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty
-2020/01/07 | 1047 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx
-2020/01/07 | 762 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx
-2020/01/07 | 11411 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx
-2020/01/07 | 1408 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx
-2020/01/07 | 768 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README
-2020/01/07 | 154952 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology.zip
+2023/05/01 | 1139 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx
+2023/05/01 | 746 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx
+2023/05/01 | 783 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty
+2023/05/01 | 1047 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx
+2023/05/01 | 762 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx
+2023/05/01 | 11461 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx
+2023/05/01 | 1408 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx
+2020/01/07 | 841 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README
+2023/05/01 | 158042 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology.zip
2022/02/22 | 1116 | macros/latex/contrib/biblatex-contrib/biblatex-mla/american-mla.lbx
2022/02/22 | 20017 | macros/latex/contrib/biblatex-contrib/biblatex-mla/CHANGES
2022/02/22 | 508288 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.pdf
@@ -233272,116 +233273,119 @@
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/04/17 | 9158838 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
-2023/04/17 | 2321615 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
-2023/04/17 | 10951 | macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
-2023/04/17 | 2939 | macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
-2023/04/17 | 3431 | macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
-2023/04/17 | 8271 | macros/latex/contrib/profcollege/latex/PfCBillard.tex
-2023/04/17 | 2072 | macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
-2023/04/17 | 4034 | macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
-2023/04/17 | 14927 | macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
-2023/04/17 | 6148 | macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
-2023/04/17 | 10530 | macros/latex/contrib/profcollege/latex/PfCCalisson.tex
-2023/04/17 | 14157 | macros/latex/contrib/profcollege/latex/PfCCAN.tex
-2023/04/17 | 20192 | macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
-2023/04/17 | 1528 | macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
-2023/04/17 | 9699 | macros/latex/contrib/profcollege/latex/PfCCartographie.tex
-2023/04/17 | 7088 | macros/latex/contrib/profcollege/latex/PfCColorilude.tex
-2023/04/17 | 11250 | macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
-2023/04/17 | 8180 | macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
-2023/04/17 | 3618 | macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
-2023/04/17 | 22985 | macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
-2023/04/17 | 9367 | macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
-2023/04/17 | 14131 | macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
-2023/04/17 | 9986 | macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
-2023/04/17 | 4664 | macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
-2023/04/17 | 58462 | macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
-2023/04/17 | 4117 | macros/latex/contrib/profcollege/latex/PfCDomino.tex
-2023/04/17 | 9413 | macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
-2023/04/17 | 2473 | macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
-2023/04/17 | 11466 | macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
-2023/04/17 | 3043 | macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
-2023/04/17 | 10633 | macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
-2023/04/17 | 3765 | macros/latex/contrib/profcollege/latex/PfCEnquete.tex
+2023/05/01 | 9283470 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2023/05/01 | 2338341 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
+2023/05/01 | 10951 | macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
+2023/05/01 | 2939 | macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
+2023/05/01 | 3431 | macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
+2023/05/01 | 8271 | macros/latex/contrib/profcollege/latex/PfCBillard.tex
+2023/05/01 | 2072 | macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
+2023/05/01 | 4034 | macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+2023/05/01 | 14927 | macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
+2023/05/01 | 6148 | macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
+2023/05/01 | 7230 | macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+2023/05/01 | 14157 | macros/latex/contrib/profcollege/latex/PfCCAN.tex
+2023/05/01 | 22402 | macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+2023/05/01 | 1528 | macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
+2023/05/01 | 9699 | macros/latex/contrib/profcollege/latex/PfCCartographie.tex
+2023/05/01 | 7088 | macros/latex/contrib/profcollege/latex/PfCColorilude.tex
+2023/05/01 | 11250 | macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
+2023/05/01 | 9898 | macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
+2023/05/01 | 3618 | macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
+2023/05/01 | 22985 | macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
+2023/05/01 | 9367 | macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
+2023/05/01 | 14131 | macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
+2023/05/01 | 7962 | macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
+2023/05/01 | 4664 | macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
+2023/05/01 | 58462 | macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
+2023/05/01 | 4117 | macros/latex/contrib/profcollege/latex/PfCDomino.tex
+2023/05/01 | 9413 | macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
+2023/05/01 | 2473 | macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
+2023/05/01 | 11466 | macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
+2023/05/01 | 2019 | macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
+2023/05/01 | 10633 | macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
+2023/05/01 | 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/04/17 | 15072 | macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
-2023/04/17 | 3280 | macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
-2023/04/17 | 15575 | macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
-2023/04/17 | 7244 | macros/latex/contrib/profcollege/latex/PfCFrise.tex
-2023/04/17 | 4692 | macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
-2023/04/17 | 2155 | macros/latex/contrib/profcollege/latex/PfCGaram.tex
-2023/04/17 | 1596 | macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
-2023/04/17 | 2285 | macros/latex/contrib/profcollege/latex/PfCGrades.tex
-2023/04/17 | 2211 | macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
-2023/04/17 | 3751 | macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
-2023/04/17 | 2605 | macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
-2023/04/17 | 2276 | macros/latex/contrib/profcollege/latex/PfCKakuro.tex
-2023/04/17 | 3835 | macros/latex/contrib/profcollege/latex/PfCKenKen.tex
-2023/04/17 | 9427 | macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
-2023/04/17 | 23088 | macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
-2023/04/17 | 2837 | macros/latex/contrib/profcollege/latex/PfCMentalo.tex
-2023/04/17 | 5365 | macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
-2023/04/17 | 11943 | macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
-2023/04/17 | 4548 | macros/latex/contrib/profcollege/latex/PfCMosaique.tex
-2023/04/17 | 2815 | macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
-2023/04/17 | 2222 | macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
-2023/04/17 | 1862 | macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
-2023/04/17 | 6428 | macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
-2023/04/17 | 14011 | macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
-2023/04/17 | 15573 | macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
-2023/04/17 | 4730 | macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
-2023/04/17 | 15169 | macros/latex/contrib/profcollege/latex/PfCPapiers.tex
-2023/04/17 | 4138 | macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
-2023/04/17 | 8113 | macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
-2023/04/17 | 7695 | macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
-2023/04/17 | 6260 | macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
-2023/04/17 | 15260 | macros/latex/contrib/profcollege/latex/PfCPropor.tex
-2023/04/17 | 11026 | macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
-2023/04/17 | 7072 | macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
-2023/04/17 | 7102 | macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
-2023/04/17 | 9453 | macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
-2023/04/17 | 28776 | macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex
-2023/04/17 | 25143 | macros/latex/contrib/profcollege/latex/PfCPythagore.tex
-2023/04/17 | 25302 | macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
-2023/04/17 | 2305 | macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
-2023/04/17 | 2617 | macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
-2023/04/17 | 2980 | macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
-2023/04/17 | 1777 | macros/latex/contrib/profcollege/latex/PfCRapido.tex
-2023/04/17 | 28434 | macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
-2023/04/17 | 71255 | macros/latex/contrib/profcollege/latex/PfCReperage.tex
-2023/04/17 | 14930 | macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
-2023/04/17 | 5561 | macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
-2023/04/17 | 27597 | macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
-2023/04/17 | 5248 | macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
-2023/04/17 | 7797 | macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
-2023/04/17 | 16190 | macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
-2023/04/17 | 4736 | macros/latex/contrib/profcollege/latex/PfCRLE.tex
-2023/04/17 | 16349 | macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
-2023/04/17 | 10074 | macros/latex/contrib/profcollege/latex/PfCRose.tex
-2023/04/17 | 1488 | macros/latex/contrib/profcollege/latex/PfCScratch.tex
-2023/04/17 | 8711 | macros/latex/contrib/profcollege/latex/PfCShikaku.tex
-2023/04/17 | 7808 | macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
-2023/04/17 | 28303 | macros/latex/contrib/profcollege/latex/PfCSolides.tex
-2023/04/17 | 11740 | macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
-2023/04/17 | 2634 | macros/latex/contrib/profcollege/latex/PfCSquaro.tex
-2023/04/17 | 62633 | macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
-2023/04/17 | 76753 | macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
-2023/04/17 | 2975 | macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
-2023/04/17 | 6030 | macros/latex/contrib/profcollege/latex/PfCTectonic.tex
-2023/04/17 | 56986 | macros/latex/contrib/profcollege/latex/PfCThales.tex
-2023/04/17 | 8221 | macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
-2023/04/17 | 24665 | macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
-2023/04/17 | 9951 | macros/latex/contrib/profcollege/latex/PfCTriominos.tex
-2023/04/17 | 19900 | macros/latex/contrib/profcollege/latex/PfCTrio.tex
-2023/04/17 | 9815 | macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
-2023/04/17 | 8676 | macros/latex/contrib/profcollege/latex/PfCYohaku.tex
-2023/04/17 | 18065 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2023/05/01 | 15072 | macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
+2023/05/01 | 3280 | macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
+2023/05/01 | 15575 | macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
+2023/05/01 | 7244 | macros/latex/contrib/profcollege/latex/PfCFrise.tex
+2023/05/01 | 4692 | macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
+2023/05/01 | 2155 | macros/latex/contrib/profcollege/latex/PfCGaram.tex
+2023/05/01 | 1596 | macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
+2023/05/01 | 2285 | macros/latex/contrib/profcollege/latex/PfCGrades.tex
+2023/05/01 | 2211 | macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
+2023/05/01 | 3751 | macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
+2023/05/01 | 2605 | macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
+2023/05/01 | 2276 | macros/latex/contrib/profcollege/latex/PfCKakuro.tex
+2023/05/01 | 3835 | macros/latex/contrib/profcollege/latex/PfCKenKen.tex
+2023/05/01 | 9427 | macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
+2023/05/01 | 23088 | macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
+2023/05/01 | 2837 | macros/latex/contrib/profcollege/latex/PfCMentalo.tex
+2023/05/01 | 5365 | macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
+2023/05/01 | 11943 | macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
+2023/05/01 | 4548 | macros/latex/contrib/profcollege/latex/PfCMosaique.tex
+2023/05/01 | 2815 | macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
+2023/05/01 | 2222 | macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
+2023/05/01 | 1862 | macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
+2023/05/01 | 7051 | macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
+2023/05/01 | 14011 | macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
+2023/05/01 | 15573 | macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+2023/05/01 | 4730 | macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
+2023/05/01 | 10168 | macros/latex/contrib/profcollege/latex/PfCPapiers.tex
+2023/05/01 | 25681 | macros/latex/contrib/profcollege/latex/PfCPavageAvecMotifImage.tex
+2023/05/01 | 32029 | macros/latex/contrib/profcollege/latex/PfCPavage.tex
+2023/05/01 | 4138 | macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
+2023/05/01 | 8113 | macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
+2023/05/01 | 7695 | macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
+2023/05/01 | 6260 | macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
+2023/05/01 | 15260 | macros/latex/contrib/profcollege/latex/PfCPropor.tex
+2023/05/01 | 11026 | macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
+2023/05/01 | 7072 | macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
+2023/05/01 | 7102 | macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
+2023/05/01 | 9453 | macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
+2023/05/01 | 28776 | macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex
+2023/05/01 | 25143 | macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+2023/05/01 | 25302 | macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
+2023/05/01 | 2305 | macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
+2023/05/01 | 2617 | macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
+2023/05/01 | 2980 | macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
+2023/05/01 | 1777 | macros/latex/contrib/profcollege/latex/PfCRapido.tex
+2023/05/01 | 28129 | macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
+2023/05/01 | 71255 | macros/latex/contrib/profcollege/latex/PfCReperage.tex
+2023/05/01 | 14930 | macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
+2023/05/01 | 5561 | macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
+2023/05/01 | 16038 | macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+2023/05/01 | 5248 | macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
+2023/05/01 | 7797 | macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
+2023/05/01 | 16190 | macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+2023/05/01 | 3049 | macros/latex/contrib/profcollege/latex/PfCRLE.tex
+2023/05/01 | 16349 | macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
+2023/05/01 | 10074 | macros/latex/contrib/profcollege/latex/PfCRose.tex
+2023/05/01 | 1488 | macros/latex/contrib/profcollege/latex/PfCScratch.tex
+2023/05/01 | 8711 | macros/latex/contrib/profcollege/latex/PfCShikaku.tex
+2023/05/01 | 7808 | macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+2023/05/01 | 28303 | macros/latex/contrib/profcollege/latex/PfCSolides.tex
+2023/05/01 | 11740 | macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
+2023/05/01 | 2632 | macros/latex/contrib/profcollege/latex/PfCSquaroaprioriold.tex
+2023/05/01 | 2499 | macros/latex/contrib/profcollege/latex/PfCSquaro.tex
+2023/05/01 | 59175 | macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+2023/05/01 | 82533 | macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
+2023/05/01 | 2975 | macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
+2023/05/01 | 6030 | macros/latex/contrib/profcollege/latex/PfCTectonic.tex
+2023/05/01 | 56986 | macros/latex/contrib/profcollege/latex/PfCThales.tex
+2023/05/01 | 8307 | macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
+2023/05/01 | 24665 | macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
+2023/05/01 | 9951 | macros/latex/contrib/profcollege/latex/PfCTriominos.tex
+2023/05/01 | 19900 | macros/latex/contrib/profcollege/latex/PfCTrio.tex
+2023/05/01 | 9685 | macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
+2023/05/01 | 8676 | macros/latex/contrib/profcollege/latex/PfCYohaku.tex
+2023/05/01 | 18082 | 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
@@ -233588,22 +233592,22 @@
2022/08/31 | 5196 | macros/latex/contrib/profcollege/metapost/PfCArithmetique.mp
2022/08/31 | 5200 | macros/latex/contrib/profcollege/metapost/PfCArithmetiquePDF.mp
2023/01/28 | 13345 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
-2022/05/26 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
+2023/05/01 | 969 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
2023/01/01 | 2335 | macros/latex/contrib/profcollege/metapost/PfCEngrenages.mp
-2023/04/10 | 52774 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+2023/05/01 | 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
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/05/01 | 106690 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
2023/03/05 | 108388 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.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/04/17 | 13786852 | macros/latex/contrib/profcollege.zip
+2023/05/01 | 13940818 | 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
@@ -237154,12 +237158,12 @@
2004/11/06 | 1611 | macros/latex/contrib/srcltx/srcltx.ins
2006/12/06 | 130115 | macros/latex/contrib/srcltx/srcltx.pdf
2006/12/07 | 120683 | macros/latex/contrib/srcltx.zip
-2022/12/16 | 986 | macros/latex/contrib/srdp-mathematik/README.md
-2022/12/16 | 180732 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
-2022/12/16 | 79483 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
-2022/12/16 | 48458 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
-2021/11/09 | 112313 | macros/latex/contrib/srdp-mathematik/srdp-tables.sty
-2022/12/16 | 191342 | macros/latex/contrib/srdp-mathematik.zip
+2023/05/01 | 986 | macros/latex/contrib/srdp-mathematik/README.md
+2023/05/01 | 181160 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
+2023/05/01 | 81016 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
+2023/05/01 | 48704 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
+2021/12/25 | 112313 | macros/latex/contrib/srdp-mathematik/srdp-tables.sty
+2023/05/01 | 192273 | macros/latex/contrib/srdp-mathematik.zip
2013/09/06 | 64496 | macros/latex/contrib/sseq/sseq.dtx
2009/04/10 | 112 | macros/latex/contrib/sseq/sseq.ins
2013/09/06 | 215050 | macros/latex/contrib/sseq/sseq.pdf
@@ -253745,13 +253749,13 @@
2023/01/05 | 19106 | macros/unicodetex/latex/beaulivre/LICENSE
2023/01/05 | 1344 | macros/unicodetex/latex/beaulivre/README.md
2023/01/06 | 12104 | macros/unicodetex/latex/beaulivre.zip
-2023/04/23 | 226468 | macros/unicodetex/latex/bithesis/bithesis.dtx
-2023/04/23 | 3720 | macros/unicodetex/latex/bithesis/bithesis.ins
-2023/04/23 | 1175792 | macros/unicodetex/latex/bithesis/bithesis.pdf
-2023/04/23 | 2348 | macros/unicodetex/latex/bithesis/contributing.md
-2023/04/23 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
-2023/04/23 | 1946 | macros/unicodetex/latex/bithesis/README.md
-2023/04/23 | 1211110 | macros/unicodetex/latex/bithesis.zip
+2023/04/29 | 226899 | macros/unicodetex/latex/bithesis/bithesis.dtx
+2023/04/29 | 3720 | macros/unicodetex/latex/bithesis/bithesis.ins
+2023/04/29 | 1178694 | macros/unicodetex/latex/bithesis/bithesis.pdf
+2023/04/29 | 2348 | macros/unicodetex/latex/bithesis/contributing.md
+2023/04/29 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
+2023/04/29 | 1946 | macros/unicodetex/latex/bithesis/README.md
+2023/05/01 | 1214143 | macros/unicodetex/latex/bithesis.zip
2022/02/26 | 128251 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
2022/02/26 | 6771 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.sty
2022/02/26 | 17327 | macros/unicodetex/latex/book-of-common-prayer/book-of-common-prayer.tex
@@ -282101,61 +282105,61 @@
2018/04/15 | 1313 | support/latex-git-log/po/de.po
2020/02/26 | 3353 | support/latex-git-log/README.md
2020/02/27 | 87742 | support/latex-git-log.zip
-2023/04/11 | 6164028 | support/latexindent/bin/linux/latexindent
-2023/04/11 | 6393230 | support/latexindent/bin/macos/latexindent
-2023/04/11 | 8703661 | support/latexindent/bin/windows/latexindent.exe
-2023/04/11 | 22877 | support/latexindent/defaultSettings.yaml
-2023/04/11 | 5908 | support/latexindent/documentation/contributors.bib
-2023/04/11 | 7161 | support/latexindent/documentation/figure-schematic.png
-2023/04/11 | 4402 | support/latexindent/documentation/latex-indent.bib
-2023/04/11 | 1244704 | support/latexindent/documentation/latexindent.pdf
-2023/04/11 | 430280 | support/latexindent/documentation/latexindent.tex
-2023/04/11 | 54385 | support/latexindent/documentation/latexindent-yaml-schema.json
-2023/04/11 | 44096 | support/latexindent/documentation/logo.png
-2023/04/11 | 65092 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2023/04/11 | 24410 | support/latexindent/LatexIndent/Arguments.pm
-2023/04/11 | 7428 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
-2023/04/11 | 4816 | support/latexindent/LatexIndent/BlankLines.pm
-2023/04/11 | 12646 | support/latexindent/LatexIndent/Braces.pm
-2023/04/11 | 5390 | support/latexindent/LatexIndent/Check.pm
-2023/04/11 | 10620 | support/latexindent/LatexIndent/Command.pm
-2023/04/11 | 25007 | support/latexindent/LatexIndent/Document.pm
-2023/04/11 | 1485 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2023/04/11 | 6271 | support/latexindent/LatexIndent/Else.pm
-2023/04/11 | 6807 | support/latexindent/LatexIndent/Environment.pm
-2023/04/11 | 11300 | support/latexindent/LatexIndent/FileContents.pm
-2023/04/11 | 8762 | support/latexindent/LatexIndent/FileExtension.pm
-2023/04/11 | 52668 | support/latexindent/LatexIndent/GetYamlSettings.pm
-2023/04/11 | 11142 | support/latexindent/LatexIndent/Heading.pm
-2023/04/11 | 13419 | support/latexindent/LatexIndent/HiddenChildren.pm
-2023/04/11 | 3482 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
-2023/04/11 | 8829 | support/latexindent/LatexIndent/IfElseFi.pm
-2023/04/11 | 20797 | support/latexindent/LatexIndent/Indent.pm
-2023/04/11 | 6717 | support/latexindent/LatexIndent/Item.pm
-2023/04/11 | 5429 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
-2023/04/11 | 9839 | support/latexindent/LatexIndent/Lines.pm
-2023/04/11 | 13072 | support/latexindent/LatexIndent/LogFile.pm
-2023/04/11 | 2320 | support/latexindent/LatexIndent/Logger.pm
-2023/04/11 | 7280 | support/latexindent/LatexIndent/MandatoryArgument.pm
-2023/04/11 | 18522 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
-2023/04/11 | 1558 | support/latexindent/latexindent-module-installer.pl
-2023/04/11 | 4339 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2023/04/11 | 6522 | support/latexindent/LatexIndent/OptionalArgument.pm
-2023/04/11 | 3413 | support/latexindent/latexindent.pl
-2023/04/11 | 2690 | support/latexindent/LatexIndent/Preamble.pm
-2023/04/11 | 3747 | support/latexindent/LatexIndent/Replacement.pm
-2023/04/11 | 4365 | support/latexindent/LatexIndent/RoundBrackets.pm
-2023/04/11 | 20766 | support/latexindent/LatexIndent/Sentence.pm
-2023/04/11 | 13890 | support/latexindent/LatexIndent/Special.pm
-2023/04/11 | 2701 | support/latexindent/LatexIndent/Switches.pm
-2023/04/11 | 3339 | support/latexindent/LatexIndent/Tokens.pm
-2023/04/11 | 6882 | support/latexindent/LatexIndent/TrailingComments.pm
-2023/04/11 | 5808 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
-2023/04/11 | 27328 | support/latexindent/LatexIndent/Verbatim.pm
-2023/04/11 | 838 | support/latexindent/LatexIndent/Version.pm
-2023/04/11 | 31148 | support/latexindent/LatexIndent/Wrap.pm
-2023/04/11 | 2008 | support/latexindent/README
-2023/04/11 | 11162542 | support/latexindent.zip
+2023/05/01 | 6164651 | support/latexindent/bin/linux/latexindent
+2023/05/01 | 6393873 | support/latexindent/bin/macos/latexindent
+2023/05/01 | 8704281 | support/latexindent/bin/windows/latexindent.exe
+2023/05/01 | 22953 | support/latexindent/defaultSettings.yaml
+2023/05/01 | 5908 | support/latexindent/documentation/contributors.bib
+2023/05/01 | 7161 | support/latexindent/documentation/figure-schematic.png
+2023/05/01 | 4402 | support/latexindent/documentation/latex-indent.bib
+2023/05/01 | 1246412 | support/latexindent/documentation/latexindent.pdf
+2023/05/01 | 434574 | support/latexindent/documentation/latexindent.tex
+2023/05/01 | 54383 | support/latexindent/documentation/latexindent-yaml-schema.json
+2023/05/01 | 44096 | support/latexindent/documentation/logo.png
+2023/05/01 | 68057 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
+2023/05/01 | 24410 | support/latexindent/LatexIndent/Arguments.pm
+2023/05/01 | 7428 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
+2023/05/01 | 4816 | support/latexindent/LatexIndent/BlankLines.pm
+2023/05/01 | 12646 | support/latexindent/LatexIndent/Braces.pm
+2023/05/01 | 5390 | support/latexindent/LatexIndent/Check.pm
+2023/05/01 | 10620 | support/latexindent/LatexIndent/Command.pm
+2023/05/01 | 25007 | support/latexindent/LatexIndent/Document.pm
+2023/05/01 | 1485 | support/latexindent/LatexIndent/DoubleBackSlash.pm
+2023/05/01 | 6271 | support/latexindent/LatexIndent/Else.pm
+2023/05/01 | 6807 | support/latexindent/LatexIndent/Environment.pm
+2023/05/01 | 11300 | support/latexindent/LatexIndent/FileContents.pm
+2023/05/01 | 8762 | support/latexindent/LatexIndent/FileExtension.pm
+2023/05/01 | 52872 | support/latexindent/LatexIndent/GetYamlSettings.pm
+2023/05/01 | 11142 | support/latexindent/LatexIndent/Heading.pm
+2023/05/01 | 13419 | support/latexindent/LatexIndent/HiddenChildren.pm
+2023/05/01 | 3482 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
+2023/05/01 | 8829 | support/latexindent/LatexIndent/IfElseFi.pm
+2023/05/01 | 20797 | support/latexindent/LatexIndent/Indent.pm
+2023/05/01 | 6717 | support/latexindent/LatexIndent/Item.pm
+2023/05/01 | 5429 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
+2023/05/01 | 9839 | support/latexindent/LatexIndent/Lines.pm
+2023/05/01 | 13072 | support/latexindent/LatexIndent/LogFile.pm
+2023/05/01 | 2320 | support/latexindent/LatexIndent/Logger.pm
+2023/05/01 | 7280 | support/latexindent/LatexIndent/MandatoryArgument.pm
+2023/05/01 | 18522 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
+2023/05/01 | 1558 | support/latexindent/latexindent-module-installer.pl
+2023/05/01 | 4339 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
+2023/05/01 | 6522 | support/latexindent/LatexIndent/OptionalArgument.pm
+2023/05/01 | 3411 | support/latexindent/latexindent.pl
+2023/05/01 | 2690 | support/latexindent/LatexIndent/Preamble.pm
+2023/05/01 | 3747 | support/latexindent/LatexIndent/Replacement.pm
+2023/05/01 | 4365 | support/latexindent/LatexIndent/RoundBrackets.pm
+2023/05/01 | 20766 | support/latexindent/LatexIndent/Sentence.pm
+2023/05/01 | 13890 | support/latexindent/LatexIndent/Special.pm
+2023/05/01 | 2701 | support/latexindent/LatexIndent/Switches.pm
+2023/05/01 | 3339 | support/latexindent/LatexIndent/Tokens.pm
+2023/05/01 | 6882 | support/latexindent/LatexIndent/TrailingComments.pm
+2023/05/01 | 5808 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
+2023/05/01 | 27328 | support/latexindent/LatexIndent/Verbatim.pm
+2023/05/01 | 836 | support/latexindent/LatexIndent/Version.pm
+2023/05/01 | 31148 | support/latexindent/LatexIndent/Wrap.pm
+2023/05/01 | 2006 | support/latexindent/README
+2023/05/01 | 11168664 | support/latexindent.zip
2021/10/26 | 16439 | support/latex-make/figlatex.dtx
2021/10/26 | 238535 | support/latex-make/figlatex.pdf
2001/06/07 | 302 | support/latexmake/latexmake.diz
@@ -298971,8 +298975,8 @@
2023/04/19 | 21972 | systems/texlive/tlnet/archive/pstricks-add.r66887.tar.xz
2019/02/28 | 1133128 | systems/texlive/tlnet/archive/pstricks_calcnotes.doc.r34363.tar.xz
2019/02/28 | 512 | systems/texlive/tlnet/archive/pstricks_calcnotes.r34363.tar.xz
-2022/12/24 | 11085932 | systems/texlive/tlnet/archive/pstricks.doc.r65346.tar.xz
-2022/12/24 | 87888 | systems/texlive/tlnet/archive/pstricks.r65346.tar.xz
+2023/05/01 | 7656232 | systems/texlive/tlnet/archive/pstricks.doc.r66973.tar.xz
+2023/05/01 | 88024 | systems/texlive/tlnet/archive/pstricks.r66973.tar.xz
2019/02/28 | 123272 | systems/texlive/tlnet/archive/pstring.doc.r42857.tar.xz
2019/02/28 | 7384 | systems/texlive/tlnet/archive/pstring.r42857.tar.xz
2019/02/28 | 85380 | systems/texlive/tlnet/archive/pst-rputover.doc.r44724.tar.xz
@@ -300813,7 +300817,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/30 | 426496 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66964.tar.xz
+2023/05/01 | 426412 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66972.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
@@ -300835,7 +300839,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/30 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r66964.tar.xz
+2023/05/01 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r66972.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
@@ -302691,16 +302695,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/30 | 5735802 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/04/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/04/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/05/01 | 5735814 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/05/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/05/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/02/19 | 5098 | systems/texlive/tlnet/install-tl-windows.bat
-2023/04/30 | 21038508 | systems/texlive/tlnet/install-tl-windows.exe
-2023/04/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/04/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/04/30 | 26025731 | systems/texlive/tlnet/install-tl.zip
-2023/04/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/04/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/05/01 | 21038499 | systems/texlive/tlnet/install-tl-windows.exe
+2023/05/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/05/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/05/01 | 26025731 | systems/texlive/tlnet/install-tl.zip
+2023/05/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/05/01 | 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
@@ -302752,12 +302756,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/30 | 18090714 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/04/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/05/01 | 18090799 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/05/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/02/20 | 86803 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/04/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/04/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/04/30 | 2447540 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/05/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/05/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/05/01 | 2448892 | 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
@@ -313201,7 +313205,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/05/01 | 186 | timestamp
+2023/05/02 | 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 f1e80b6ed6..ee66d8222e 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index f2e3252187..40647687f8 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,36 +1,233 @@
+2023/05/01 | 9951 | macros/latex/contrib/profcollege/latex/PfCTriominos.tex
+2023/05/01 | 9898 | macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
+2023/05/01 | 986 | macros/latex/contrib/srdp-mathematik/README.md
+2023/05/01 | 9839 | support/latexindent/LatexIndent/Lines.pm
+2023/05/01 | 969 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
+2023/05/01 | 9699 | macros/latex/contrib/profcollege/latex/PfCCartographie.tex
+2023/05/01 | 9685 | macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
+2023/05/01 | 9453 | macros/latex/contrib/profcollege/latex/PfCPyramideCalculs.tex
+2023/05/01 | 9427 | macros/latex/contrib/profcollege/latex/PfCLabyrintheJeu.tex
+2023/05/01 | 9413 | macros/latex/contrib/profcollege/latex/PfCEcrireunQCM.tex
+2023/05/01 | 9367 | macros/latex/contrib/profcollege/latex/PfCDefiTables.tex
+2023/05/01 | 9283470 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2023/05/01 | 8829 | support/latexindent/LatexIndent/IfElseFi.pm
+2023/05/01 | 88024 | systems/texlive/tlnet/archive/pstricks.r66973.tar.xz
+2023/05/01 | 8762 | support/latexindent/LatexIndent/FileExtension.pm
+2023/05/01 | 8711 | macros/latex/contrib/profcollege/latex/PfCShikaku.tex
+2023/05/01 | 8704281 | support/latexindent/bin/windows/latexindent.exe
+2023/05/01 | 8676 | macros/latex/contrib/profcollege/latex/PfCYohaku.tex
+2023/05/01 | 836 | support/latexindent/LatexIndent/Version.pm
+2023/05/01 | 8307 | macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
+2023/05/01 | 829799 | info/install-latex-guide-zh-cn.zip
+2023/05/01 | 8271 | macros/latex/contrib/profcollege/latex/PfCBillard.tex
+2023/05/01 | 82533 | macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
+2023/05/01 | 8113 | macros/latex/contrib/profcollege/latex/PfCPourcentage.tex
+2023/05/01 | 81016 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
+2023/05/01 | 7962 | macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
+2023/05/01 | 790843 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
+2023/05/01 | 783 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty
+2023/05/01 | 7808 | macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+2023/05/01 | 7797 | macros/latex/contrib/profcollege/latex/PfCReseauxSociaux.tex
+2023/05/01 | 7695 | macros/latex/contrib/profcollege/latex/PfCProbabilites.tex
+2023/05/01 | 7656232 | systems/texlive/tlnet/archive/pstricks.doc.r66973.tar.xz
+2023/05/01 | 762 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx
+2023/05/01 | 746 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx
+2023/05/01 | 7428 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
+2023/05/01 | 7280 | support/latexindent/LatexIndent/MandatoryArgument.pm
+2023/05/01 | 7244 | macros/latex/contrib/profcollege/latex/PfCFrise.tex
+2023/05/01 | 7230 | macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+2023/05/01 | 7161 | support/latexindent/documentation/figure-schematic.png
+2023/05/01 | 71255 | macros/latex/contrib/profcollege/latex/PfCReperage.tex
+2023/05/01 | 7102 | macros/latex/contrib/profcollege/latex/PfCPuzzleSommePyramide.tex
+2023/05/01 | 708 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.tex
+2023/05/01 | 7088 | macros/latex/contrib/profcollege/latex/PfCColorilude.tex
+2023/05/01 | 7072 | macros/latex/contrib/profcollege/latex/PfCPuissanceQuatre.tex
+2023/05/01 | 7051 | macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
+2023/05/01 | 6882 | support/latexindent/LatexIndent/TrailingComments.pm
+2023/05/01 | 6807 | support/latexindent/LatexIndent/Environment.pm
+2023/05/01 | 68057 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
+2023/05/01 | 6717 | support/latexindent/LatexIndent/Item.pm
+2023/05/01 | 6714 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex
+2023/05/01 | 6522 | support/latexindent/LatexIndent/OptionalArgument.pm
+2023/05/01 | 6393873 | support/latexindent/bin/macos/latexindent
+2023/05/01 | 6271 | support/latexindent/LatexIndent/Else.pm
+2023/05/01 | 6260 | macros/latex/contrib/profcollege/latex/PfCProgrammeCalcul.tex
+2023/05/01 | 6164651 | support/latexindent/bin/linux/latexindent
+2023/05/01 | 6148 | macros/latex/contrib/profcollege/latex/PfCCalculsFractions.tex
+2023/05/01 | 6030 | macros/latex/contrib/profcollege/latex/PfCTectonic.tex
+2023/05/01 | 59175 | macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+2023/05/01 | 5908 | support/latexindent/documentation/contributors.bib
+2023/05/01 | 58462 | macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
+2023/05/01 | 5808 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
+2023/05/01 | 5735814 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/05/01 | 56986 | macros/latex/contrib/profcollege/latex/PfCThales.tex
+2023/05/01 | 5561 | macros/latex/contrib/profcollege/latex/PfCRepresenterEntier.tex
+2023/05/01 | 54383 | support/latexindent/documentation/latexindent-yaml-schema.json
+2023/05/01 | 5429 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
+2023/05/01 | 5390 | support/latexindent/LatexIndent/Check.pm
+2023/05/01 | 5365 | macros/latex/contrib/profcollege/latex/PfCMidpoint.tex
+2023/05/01 | 52872 | support/latexindent/LatexIndent/GetYamlSettings.pm
+2023/05/01 | 52774 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+2023/05/01 | 5248 | macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
+2023/05/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/05/01 | 48704 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
+2023/05/01 | 4816 | support/latexindent/LatexIndent/BlankLines.pm
+2023/05/01 | 4730 | macros/latex/contrib/profcollege/latex/PfCOperationsTrou.tex
+2023/05/01 | 4692 | macros/latex/contrib/profcollege/latex/PfCFutoshiki.tex
+2023/05/01 | 4664 | macros/latex/contrib/profcollege/latex/PfCDiagrammeRadar.tex
+2023/05/01 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/05/01 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/05/01 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/05/01 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/05/01 | 4548 | macros/latex/contrib/profcollege/latex/PfCMosaique.tex
+2023/05/01 | 44096 | support/latexindent/documentation/logo.png
+2023/05/01 | 4402 | support/latexindent/documentation/latex-indent.bib
+2023/05/01 | 4365 | support/latexindent/LatexIndent/RoundBrackets.pm
+2023/05/01 | 434574 | support/latexindent/documentation/latexindent.tex
+2023/05/01 | 4339 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
+2023/05/01 | 426412 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66972.tar.xz
+2023/05/01 | 4138 | macros/latex/contrib/profcollege/latex/PfCPixelArt.tex
+2023/05/01 | 4117 | macros/latex/contrib/profcollege/latex/PfCDomino.tex
+2023/05/01 | 4063582 | biblio/ctan-bibdata.zip
+2023/05/01 | 4034 | macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+2023/05/01 | 3835 | macros/latex/contrib/profcollege/latex/PfCKenKen.tex
+2023/05/01 | 3765 | macros/latex/contrib/profcollege/latex/PfCEnquete.tex
+2023/05/01 | 3751 | macros/latex/contrib/profcollege/latex/PfCJeuRangement.tex
+2023/05/01 | 3747 | support/latexindent/LatexIndent/Replacement.pm
+2023/05/01 | 3666081 | biblio/ctan-bibdata/ctan.pdf
+2023/05/01 | 36204 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdf
+2023/05/01 | 3618 | macros/latex/contrib/profcollege/latex/PfCDecompFracDeci.tex
+2023/05/01 | 3482 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
+2023/05/01 | 3431 | macros/latex/contrib/profcollege/latex/PfCBarresCalculs.tex
+2023/05/01 | 3411 | support/latexindent/latexindent.pl
+2023/05/01 | 3339 | support/latexindent/LatexIndent/Tokens.pm
+2023/05/01 | 3280 | macros/latex/contrib/profcollege/latex/PfCFicheMemo.tex
+2023/05/01 | 32029 | macros/latex/contrib/profcollege/latex/PfCPavage.tex
+2023/05/01 | 31148 | support/latexindent/LatexIndent/Wrap.pm
+2023/05/01 | 3049 | macros/latex/contrib/profcollege/latex/PfCRLE.tex
+2023/05/01 | 2980 | macros/latex/contrib/profcollege/latex/PfCRangementNombres.tex
+2023/05/01 | 2975 | macros/latex/contrib/profcollege/latex/PfCTablesOperations.tex
+2023/05/01 | 2939 | macros/latex/contrib/profcollege/latex/PfCBarreNiveaux.tex
+2023/05/01 | 28776 | macros/latex/contrib/profcollege/latex/PfCPythagoreold.tex
+2023/05/01 | 2837 | macros/latex/contrib/profcollege/latex/PfCMentalo.tex
+2023/05/01 | 28303 | macros/latex/contrib/profcollege/latex/PfCSolides.tex
+2023/05/01 | 2815 | macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
+2023/05/01 | 28129 | macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
+2023/05/01 | 2780444 | biblio/ctan-bibdata/ctan.bib
+2023/05/01 | 27328 | support/latexindent/LatexIndent/Verbatim.pm
+2023/05/01 | 2701 | support/latexindent/LatexIndent/Switches.pm
+2023/05/01 | 2690 | support/latexindent/LatexIndent/Preamble.pm
+2023/05/01 | 2632 | macros/latex/contrib/profcollege/latex/PfCSquaroaprioriold.tex
+2023/05/01 | 2617 | macros/latex/contrib/profcollege/latex/PfCQuiSuisJe.tex
+2023/05/01 | 2605 | macros/latex/contrib/profcollege/latex/PfCKakurasu.tex
+2023/05/01 | 26025731 | systems/texlive/tlnet/install-tl.zip
+2023/05/01 | 25681 | macros/latex/contrib/profcollege/latex/PfCPavageAvecMotifImage.tex
+2023/05/01 | 25302 | macros/latex/contrib/profcollege/latex/PfCQuestionsFlash.tex
+2023/05/01 | 25143 | macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+2023/05/01 | 25007 | support/latexindent/LatexIndent/Document.pm
+2023/05/01 | 2499 | macros/latex/contrib/profcollege/latex/PfCSquaro.tex
+2023/05/01 | 2473 | macros/latex/contrib/profcollege/latex/PfCEcritureLettres.tex
+2023/05/01 | 24665 | macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
+2023/05/01 | 2448892 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/05/01 | 24410 | support/latexindent/LatexIndent/Arguments.pm
+2023/05/01 | 23420 | info/install-latex-guide-zh-cn/chapter/editor.tex
+2023/05/01 | 2338341 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
+2023/05/01 | 2320 | support/latexindent/LatexIndent/Logger.pm
+2023/05/01 | 23088 | macros/latex/contrib/profcollege/latex/PfCLabyrintheNombre.tex
+2023/05/01 | 2305 | macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
+2023/05/01 | 22985 | macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
+2023/05/01 | 22953 | support/latexindent/defaultSettings.yaml
+2023/05/01 | 2285 | macros/latex/contrib/profcollege/latex/PfCGrades.tex
+2023/05/01 | 2276 | macros/latex/contrib/profcollege/latex/PfCKakuro.tex
+2023/05/01 | 22402 | macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+2023/05/01 | 2222 | macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
+2023/05/01 | 2211 | macros/latex/contrib/profcollege/latex/PfCHiddenMessage.tex
+2023/05/01 | 2155 | macros/latex/contrib/profcollege/latex/PfCGaram.tex
+2023/05/01 | 21321 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex
+2023/05/01 | 21038499 | systems/texlive/tlnet/install-tl-windows.exe
+2023/05/01 | 20797 | support/latexindent/LatexIndent/Indent.pm
+2023/05/01 | 20766 | support/latexindent/LatexIndent/Sentence.pm
+2023/05/01 | 2072 | macros/latex/contrib/profcollege/latex/PfCBonSortie.tex
+2023/05/01 | 2071 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/latin-manuscripts.lbx
+2023/05/01 | 2019 | macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
+2023/05/01 | 2006 | support/latexindent/README
+2023/05/01 | 19900 | macros/latex/contrib/profcollege/latex/PfCTrio.tex
+2023/05/01 | 192273 | macros/latex/contrib/srdp-mathematik.zip
+2023/05/01 | 1862 | macros/latex/contrib/profcollege/latex/PfCMotsEmpiles.tex
+2023/05/01 | 18522 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
+2023/05/01 | 1841 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx
+2023/05/01 | 1839 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx
+2023/05/01 | 18357 | CTAN.sites
+2023/05/01 | 181160 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
+2023/05/01 | 18090799 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/05/01 | 18082 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2023/05/01 | 1777 | macros/latex/contrib/profcollege/latex/PfCRapido.tex
+2023/05/01 | 1767 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx
+2023/05/01 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/05/01 | 16349 | macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
+2023/05/01 | 16190 | macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+2023/05/01 | 16038 | macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+2023/05/01 | 1596 | macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
+2023/05/01 | 158042 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology.zip
+2023/05/01 | 1558 | support/latexindent/latexindent-module-installer.pl
+2023/05/01 | 15575 | macros/latex/contrib/profcollege/latex/PfCFonctionAffine.tex
+2023/05/01 | 15573 | macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+2023/05/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/05/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/05/01 | 1528 | macros/latex/contrib/profcollege/latex/PfCCartesMentales.tex
+2023/05/01 | 15260 | macros/latex/contrib/profcollege/latex/PfCPropor.tex
+2023/05/01 | 15072 | macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
+2023/05/01 | 14930 | macros/latex/contrib/profcollege/latex/PfCRepresentationGraphique.tex
+2023/05/01 | 14927 | macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
+2023/05/01 | 1488 | macros/latex/contrib/profcollege/latex/PfCScratch.tex
+2023/05/01 | 1485 | support/latexindent/LatexIndent/DoubleBackSlash.pm
+2023/05/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/05/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/05/01 | 14157 | macros/latex/contrib/profcollege/latex/PfCCAN.tex
+2023/05/01 | 14131 | macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
+2023/05/01 | 1408 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx
+2023/05/01 | 14011 | macros/latex/contrib/profcollege/latex/PfCNonogramme.tex
+2023/05/01 | 13940818 | macros/latex/contrib/profcollege.zip
+2023/05/01 | 13890 | support/latexindent/LatexIndent/Special.pm
+2023/05/01 | 13419 | support/latexindent/LatexIndent/HiddenChildren.pm
+2023/05/01 | 13072 | support/latexindent/LatexIndent/LogFile.pm
+2023/05/01 | 12787 | info/install-latex-guide-zh-cn/chapter/ubuntu.tex
+2023/05/01 | 12646 | support/latexindent/LatexIndent/Braces.pm
+2023/05/01 | 1246412 | support/latexindent/documentation/latexindent.pdf
+2023/05/01 | 1214143 | macros/unicodetex/latex/bithesis.zip
+2023/05/01 | 11943 | macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
+2023/05/01 | 11740 | macros/latex/contrib/profcollege/latex/PfCSommeAngles.tex
+2023/05/01 | 11466 | macros/latex/contrib/profcollege/latex/PfCEcritureUnites.tex
+2023/05/01 | 11461 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx
+2023/05/01 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r66972.tar.xz
+2023/05/01 | 1139 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx
+2023/05/01 | 11300 | support/latexindent/LatexIndent/FileContents.pm
+2023/05/01 | 11250 | macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
+2023/05/01 | 11168664 | support/latexindent.zip
+2023/05/01 | 11142 | support/latexindent/LatexIndent/Heading.pm
+2023/05/01 | 11026 | macros/latex/contrib/profcollege/latex/PfCProprietesDroites.tex
+2023/05/01 | 10951 | macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
+2023/05/01 | 106690 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+2023/05/01 | 10633 | macros/latex/contrib/profcollege/latex/PfCEnigmeAire.tex
+2023/05/01 | 10620 | support/latexindent/LatexIndent/Command.pm
+2023/05/01 | 10536 | info/install-latex-guide-zh-cn/chapter/wsl.tex
+2023/05/01 | 1047 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx
+2023/05/01 | 102294 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdf
+2023/05/01 | 10168 | macros/latex/contrib/profcollege/latex/PfCPapiers.tex
+2023/05/01 | 10074 | macros/latex/contrib/profcollege/latex/PfCRose.tex
2023/04/30 | 975956 | macros/latex/contrib/etoc/etoc.pdf
2023/04/30 | 8188311 | graphics/pstricks/base.zip
2023/04/30 | 592 | systems/texlive/tlnet/archive/collection-games.r66968.tar.xz
-2023/04/30 | 5735802 | systems/texlive/tlnet/install-tl-unx.tar.gz
2023/04/30 | 490382 | macros/latex/contrib/etoc/etoc.dtx
-2023/04/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2023/04/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/04/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/04/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/04/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/04/30 | 447360 | systems/texlive/tlnet/archive/playcards.doc.r66968.tar.xz
-2023/04/30 | 426496 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66964.tar.xz
-2023/04/30 | 4063003 | biblio/ctan-bibdata.zip
2023/04/30 | 3734 | macros/latex/contrib/etoc/README.md
-2023/04/30 | 3665234 | biblio/ctan-bibdata/ctan.pdf
2023/04/30 | 284504 | systems/texlive/tlnet/archive/lua-typo.doc.r66969.tar.xz
-2023/04/30 | 2780443 | biblio/ctan-bibdata/ctan.bib
2023/04/30 | 27688 | systems/texlive/tlnet/archive/lua-typo.source.r66969.tar.xz
-2023/04/30 | 26025731 | systems/texlive/tlnet/install-tl.zip
-2023/04/30 | 2447540 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/04/30 | 2123736 | systems/doc/luatex.zip
-2023/04/30 | 21038508 | systems/texlive/tlnet/install-tl-windows.exe
2023/04/30 | 2076 | systems/texlive/tlnet/archive/playcards.r66968.tar.xz
2023/04/30 | 1948096 | systems/texlive/tlnet/archive/luatex.doc.r66967.tar.xz
-2023/04/30 | 18090714 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/04/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
-2023/04/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/04/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/04/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/04/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2023/04/30 | 13712 | systems/texlive/tlnet/archive/luatex.r66967.tar.xz
2023/04/30 | 11972 | systems/texlive/tlnet/archive/lua-typo.r66969.tar.xz
-2023/04/30 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r66964.tar.xz
2023/04/30 | 1068983 | macros/latex/contrib/etoc.zip
2023/04/29 | 99013 | systems/doc/luatex/luatex-nodes.tex
2023/04/29 | 98970 | systems/doc/luatex/luatex-tex.tex
@@ -92,6 +289,7 @@
2023/04/29 | 394699 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2023/04/29 | 3796 | systems/win32/miktex/tm/packages/pas-tableur.tar.lzma
2023/04/29 | 37631 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2023/04/29 | 3720 | macros/unicodetex/latex/bithesis/bithesis.ins
2023/04/29 | 36607 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2023/04/29 | 36561 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
2023/04/29 | 36463 | systems/doc/luatex/luatex-lua.tex
@@ -122,6 +320,7 @@
2023/04/29 | 2755784 | systems/texlive/tlnet/archive/simpleicons.r66960.tar.xz
2023/04/29 | 271795 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
2023/04/29 | 267 | graphics/pgf/contrib/playcards/README.md
+2023/04/29 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
2023/04/29 | 25642 | macros/luatex/latex/lua-typo/lua-typo-2021-04-18.sty
2023/04/29 | 255176 | systems/texlive/tlnet/archive/pgf-spectra.r66961.tar.xz
2023/04/29 | 25471 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
@@ -129,7 +328,9 @@
2023/04/29 | 249645 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2023/04/29 | 246295 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2023/04/29 | 24020 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2023/04/29 | 2348 | macros/unicodetex/latex/bithesis/contributing.md
2023/04/29 | 231566 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2023/04/29 | 226899 | macros/unicodetex/latex/bithesis/bithesis.dtx
2023/04/29 | 2231980 | systems/texlive/tlnet/archive/pgf-spectra.doc.r66961.tar.xz
2023/04/29 | 221135 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2023/04/29 | 217614 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
@@ -140,6 +341,7 @@
2023/04/29 | 2020324 | systems/texlive/tlnet/archive/simpleicons.doc.r66960.tar.xz
2023/04/29 | 19747 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2023/04/29 | 19643 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2023/04/29 | 1946 | macros/unicodetex/latex/bithesis/README.md
2023/04/29 | 1907113 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
2023/04/29 | 1905781 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2023/04/29 | 1829180 | systems/texlive/tlnet/archive/proflycee.doc.r66962.tar.xz
@@ -158,6 +360,7 @@
2023/04/29 | 1338360 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2023/04/29 | 125682 | graphics/pstricks/base/generic/pstricks.tex
2023/04/29 | 118752 | macros/luatex/latex/lua-typo/source/lua-typo.dtx
+2023/04/29 | 1178694 | macros/unicodetex/latex/bithesis/bithesis.pdf
2023/04/29 | 117077 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
2023/04/29 | 1168137 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2023/04/29 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
@@ -204,7 +407,6 @@
2023/04/28 | 2010382 | fonts/simpleicons/doc/simpleicons.pdf
2023/04/28 | 1908464 | fonts/simpleicons/opentype/SimpleIcons.otf
2023/04/28 | 1844 | fonts/simpleicons/doc/simpleicons.tex
-2023/04/28 | 18233 | CTAN.sites
2023/04/28 | 1777935 | fonts/simpleicons/type1/SimpleIcons.pfb
2023/04/28 | 1559 | fonts/simpleicons/tex/simpleicons.sty
2023/04/28 | 154628 | systems/texlive/tlnet/archive/photobook.doc.r66955.tar.xz
@@ -1382,281 +1584,3 @@
2023/04/25 | 10078 | macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty
2023/04/25 | 1002 | macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.tex
2023/04/25 | 1002803 | macros/latex/contrib/tagpdf/tagpdf.pdf
-2023/04/24 | 99290 | macros/latex/contrib/koma-script/doc/scrguide.cls
-2023/04/24 | 9803 | macros/latex/contrib/koma-script/scrkernel-version.dtx
-2023/04/24 | 9753485 | install/macros/latex/contrib/koma-script.tds.zip
-2023/04/24 | 9631 | macros/latex/contrib/koma-script/doc/scrextend-de.tex
-2023/04/24 | 95730 | macros/latex/contrib/koma-script/doc/scrbase-de.tex
-2023/04/24 | 95676 | macros/latex/contrib/koma-script/scrlayer-scrpage.dtx
-2023/04/24 | 9559 | macros/latex/contrib/koma-script/MANIFEST.md
-2023/04/24 | 9404 | macros/latex/contrib/koma-script/scrextend.dtx
-2023/04/24 | 9387 | macros/latex/contrib/koma-script/doc/common-fontsize-de.tex
-2023/04/24 | 93786 | macros/latex/contrib/koma-script/doc/scrlayer-de.tex
-2023/04/24 | 9346 | macros/latex/contrib/koma-script/doc/scraddr-en.tex
-2023/04/24 | 9312330 | macros/latex/contrib/koma-script.zip
-2023/04/24 | 9268 | systems/texlive/tlnet/archive/algpseudocodex.r66924.tar.xz
-2023/04/24 | 9226 | macros/latex/contrib/koma-script/doc/common-options-en.tex
-2023/04/24 | 9222 | macros/latex/contrib/koma-script/scrlfile.dtx
-2023/04/24 | 88170 | macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-en.tex
-2023/04/24 | 88016 | macros/latex/contrib/koma-script/doc/typearea-en.tex
-2023/04/24 | 87404 | systems/texlive/tlnet/archive/pgfornament-han.r66920.tar.xz
-2023/04/24 | 85020 | macros/latex/contrib/koma-script/scrkernel-fonts.dtx
-2023/04/24 | 83762 | macros/latex/contrib/koma-script/doc/scrbase-en.tex
-2023/04/24 | 8277 | macros/latex/contrib/koma-script/doc/variables-tikz.tex
-2023/04/24 | 8177 | macros/latex/contrib/koma-script/doc/scrextend-en.tex
-2023/04/24 | 8059 | macros/latex/contrib/koma-script/doc/common-compatibility-de.tex
-2023/04/24 | 78876 | macros/latex/contrib/koma-script/doc/scrlayer-en.tex
-2023/04/24 | 7876 | macros/latex/contrib/koma-script/doc/common-fontsize-en.tex
-2023/04/24 | 7590 | macros/latex/contrib/koma-script/doc/common-headfootheight-de.tex
-2023/04/24 | 75685 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
-2023/04/24 | 75630 | macros/latex/contrib/koma-script/scrkernel-language.dtx
-2023/04/24 | 7532 | macros/latex/contrib/koma-script/doc/common-compatibility-en.tex
-2023/04/24 | 73844 | macros/latex/contrib/koma-script/tocbasic.dtx
-2023/04/24 | 73361 | macros/latex/contrib/koma-script/scrhack.dtx
-2023/04/24 | 73349 | macros/latex/contrib/koma-script/scrkernel-floats.dtx
-2023/04/24 | 70381 | macros/latex/contrib/koma-script/scrjura.dtx
-2023/04/24 | 6856 | systems/texlive/tlnet/archive/preview.r66924.tar.xz
-2023/04/24 | 6640 | macros/latex/contrib/koma-script/doc/common-headfootheight-en.tex
-2023/04/24 | 659151 | fonts/libertinus-otf/doc/libertinus-otf-doc.pdf
-2023/04/24 | 6465 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-jmw.cbx
-2023/04/24 | 6369 | macros/latex/contrib/koma-script/scrkernel-addressfiles.dtx
-2023/04/24 | 632835 | fonts/libertinus-otf.zip
-2023/04/24 | 61114 | fonts/libertinus-otf/doc/libertinus-otf-doc.tex
-2023/04/24 | 610 | macros/luatex/generic/evangelion-jfm/make.sh
-2023/04/24 | 59999 | macros/latex/contrib/koma-script/scrlayer-notecolumn.dtx
-2023/04/24 | 596 | macros/unicodetex/latex/textcsc/README
-2023/04/24 | 59561 | macros/latex/contrib/koma-script/scrkernel-letterclassoptions.dtx
-2023/04/24 | 59521 | macros/latex/contrib/koma-script/doc/scrlayer-scrpage-de.tex
-2023/04/24 | 5948 | macros/unicodetex/latex/textcsc/textcsc-documentation.tex
-2023/04/24 | 591 | graphics/pgf/contrib/quantikz/quantikz.sty
-2023/04/24 | 5888 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.cbx
-2023/04/24 | 58093 | macros/latex/contrib/koma-script/doc/scrjura-de.tex
-2023/04/24 | 57967 | macros/latex/contrib/koma-script/doc/scrjura-example-en.pdf
-2023/04/24 | 56780 | macros/latex/contrib/koma-script/doc/scrjura-example-de.pdf
-2023/04/24 | 5658 | macros/latex/contrib/koma-script/scrdocstrip.tex
-2023/04/24 | 5572 | systems/texlive/tlnet/archive/hitex.r66924.tar.xz
-2023/04/24 | 5532 | macros/latex/contrib/koma-script/doc/preface-de.tex
-2023/04/24 | 5516 | macros/latex/contrib/koma-script/doc/scrtime-de.tex
-2023/04/24 | 5376 | macros/latex/contrib/koma-script/doc/common-oddorevenpage-de.tex
-2023/04/24 | 53667 | macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-de.tex
-2023/04/24 | 53655 | macros/unicodetex/latex/textcsc.zip
-2023/04/24 | 53457 | macros/latex/contrib/koma-script/doc/scrlayer-scrpage-en.tex
-2023/04/24 | 53388 | systems/texlive/tlnet/archive/pst-eucl.r66924.tar.xz
-2023/04/24 | 5121 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-css.cbx
-2023/04/24 | 5045 | macros/latex/contrib/koma-script/doc/scrtime-en.tex
-2023/04/24 | 5000796 | systems/texlive/tlnet/archive/egpeirce.doc.r66924.tar.xz
-2023/04/24 | 49833 | macros/latex/contrib/koma-script/doc/scrjura-en.tex
-2023/04/24 | 4980 | macros/latex/contrib/koma-script/doc/preface-en.tex
-2023/04/24 | 49161 | macros/unicodetex/latex/textcsc/textcsc-documentation.pdf
-2023/04/24 | 4913 | macros/latex/contrib/koma-script/doc/common-marginpar-de.tex
-2023/04/24 | 48745 | macros/latex/contrib/koma-script/doc/common-textmarkup-de.tex
-2023/04/24 | 48351 | macros/latex/contrib/koma-script/scrkernel-listsof.dtx
-2023/04/24 | 47614 | graphics/pgf/contrib/tikz-nfold/tikzlibrarynfold.code.tex
-2023/04/24 | 47300 | macros/latex/contrib/koma-script/scrlfile-patcholdlatex.dtx
-2023/04/24 | 4720 | macros/latex/contrib/koma-script/doc/common-oddorevenpage-en.tex
-2023/04/24 | 47100 | systems/texlive/tlnet/archive/bithesis.source.r66924.tar.xz
-2023/04/24 | 46863 | macros/latex/contrib/koma-script/doc/common-pagestylemanipulation-en.tex
-2023/04/24 | 4549 | macros/latex/contrib/koma-script/doc/common-marginpar-en.tex
-2023/04/24 | 4514 | macros/latex/contrib/koma-script/scrlogo.dtx
-2023/04/24 | 4478 | macros/latex/contrib/koma-script/doc/common-draftmode-de.tex
-2023/04/24 | 44706 | macros/latex/contrib/koma-script/doc/letter-example-23-en.pdf
-2023/04/24 | 44706 | macros/latex/contrib/koma-script/doc/letter-example-22-en.pdf
-2023/04/24 | 44408 | macros/latex/contrib/koma-script/doc/letter-example-21-en.pdf
-2023/04/24 | 44154 | macros/latex/contrib/koma-script/doc/common-textmarkup-en.tex
-2023/04/24 | 4320 | macros/latex/contrib/koma-script/doc/common-draftmode-en.tex
-2023/04/24 | 43094 | macros/latex/contrib/koma-script/doc/letter-example-23-de.pdf
-2023/04/24 | 43094 | macros/latex/contrib/koma-script/doc/letter-example-22-de.pdf
-2023/04/24 | 42786 | macros/latex/contrib/koma-script/doc/letter-example-21-de.pdf
-2023/04/24 | 40627 | macros/latex/contrib/koma-script/doc/scrlttr2-experts-de.tex
-2023/04/24 | 40118 | macros/latex/contrib/koma-script/scrkernel-miscellaneous.dtx
-2023/04/24 | 3980 | macros/latex/contrib/koma-script/doc/linkalias.tex
-2023/04/24 | 38864 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-de.tex
-2023/04/24 | 3787 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.tex
-2023/04/24 | 3731 | macros/latex/contrib/koma-script/doc/scrjura-example-de.tex
-2023/04/24 | 36723 | macros/latex/contrib/koma-script/doc/common-lists-de.tex
-2023/04/24 | 35969 | macros/latex/contrib/koma-script/doc/scrlfile-de.tex
-2023/04/24 | 3542 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.tex
-2023/04/24 | 352600 | systems/texlive/tlnet/archive/algpseudocodex.doc.r66924.tar.xz
-2023/04/24 | 3464 | macros/latex/contrib/koma-script/scrstrip.inc
-2023/04/24 | 34196 | macros/latex/contrib/koma-script/doc/scrlttr2-experts-en.tex
-2023/04/24 | 34192 | macros/latex/contrib/koma-script/scrkernel-title.dtx
-2023/04/24 | 3416 | macros/latex/contrib/koma-script/doc/scrjura-example-en.tex
-2023/04/24 | 33995 | macros/latex/contrib/koma-script/doc/common-lists-en.tex
-2023/04/24 | 337164 | systems/texlive/tlnet/archive/preview.doc.r66924.tar.xz
-2023/04/24 | 33284 | macros/latex/contrib/koma-script/doc/letter-example-20-en.pdf
-2023/04/24 | 33277 | macros/latex/contrib/koma-script/doc/letter-example-19-en.pdf
-2023/04/24 | 33007 | macros/latex/contrib/koma-script/doc/letter-example-17-en.pdf
-2023/04/24 | 33000 | macros/latex/contrib/koma-script/doc/letter-example-18-en.pdf
-2023/04/24 | 32974 | macros/latex/contrib/koma-script/doc/letter-example-16-en.pdf
-2023/04/24 | 32799 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-en.tex
-2023/04/24 | 3255624 | macros/latex/contrib/koma-script/doc/scrguide-de.pdf
-2023/04/24 | 32098 | macros/latex/contrib/koma-script/doc/scrlfile-en.tex
-2023/04/24 | 31986 | macros/latex/contrib/koma-script/doc/letter-example-15-en.pdf
-2023/04/24 | 31986 | macros/latex/contrib/koma-script/doc/letter-example-13-en.pdf
-2023/04/24 | 31954 | macros/latex/contrib/koma-script/doc/letter-example-14-en.pdf
-2023/04/24 | 31871 | macros/latex/contrib/koma-script/doc/common-titles-de.tex
-2023/04/24 | 3172 | systems/texlive/tlnet/archive/alchemist.r66924.tar.xz
-2023/04/24 | 3163249 | macros/latex/contrib/koma-script/doc/scrguide-en.pdf
-2023/04/24 | 31623 | macros/latex/contrib/koma-script/doc/common-footnotes-de.tex
-2023/04/24 | 31568 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.tex
-2023/04/24 | 31519 | macros/latex/contrib/koma-script/doc/letter-example-19-de.pdf
-2023/04/24 | 31498 | macros/latex/contrib/koma-script/doc/letter-example-20-de.pdf
-2023/04/24 | 3128 | systems/texlive/tlnet/archive/realhats.source.r66924.tar.xz
-2023/04/24 | 31028 | macros/latex/contrib/koma-script/doc/letter-example-17-de.pdf
-2023/04/24 | 31025 | macros/latex/contrib/koma-script/doc/letter-example-18-de.pdf
-2023/04/24 | 31001 | macros/latex/contrib/koma-script/doc/letter-example-16-de.pdf
-2023/04/24 | 30752 | macros/latex/contrib/koma-script/doc/letter-example-12-en.pdf
-2023/04/24 | 30752 | macros/latex/contrib/koma-script/doc/letter-example-11-en.pdf
-2023/04/24 | 30752 | macros/latex/contrib/koma-script/doc/letter-example-10-en.pdf
-2023/04/24 | 30752 | macros/latex/contrib/koma-script/doc/letter-example-08-en.pdf
-2023/04/24 | 30731 | macros/latex/contrib/koma-script/doc/letter-example-09-en.pdf
-2023/04/24 | 3026 | macros/latex/contrib/koma-script/doc/common-typearea-de.tex
-2023/04/24 | 302366 | graphics/pgf/contrib/tikz-nfold/tikz-nfold-doc.pdf
-2023/04/24 | 30066 | macros/latex/contrib/koma-script/scrkernel-pagestyles.dtx
-2023/04/24 | 30006 | macros/latex/contrib/koma-script/doc/letter-example-13-de.pdf
-2023/04/24 | 30004 | macros/latex/contrib/koma-script/doc/letter-example-15-de.pdf
-2023/04/24 | 29980 | macros/latex/contrib/koma-script/doc/letter-example-14-de.pdf
-2023/04/24 | 2992 | macros/latex/contrib/koma-script/doc/scrguide-body.tex
-2023/04/24 | 292443 | graphics/pgf/contrib/tikz-nfold.zip
-2023/04/24 | 29125 | macros/latex/contrib/koma-script/doc/letter-example-11-de.pdf
-2023/04/24 | 29121 | macros/latex/contrib/koma-script/doc/letter-example-12-de.pdf
-2023/04/24 | 29121 | macros/latex/contrib/koma-script/doc/letter-example-10-de.pdf
-2023/04/24 | 29121 | macros/latex/contrib/koma-script/doc/letter-example-08-de.pdf
-2023/04/24 | 2911 | macros/latex/contrib/koma-script/doc/common-typearea-en.tex
-2023/04/24 | 29103 | macros/latex/contrib/koma-script/doc/letter-example-09-de.pdf
-2023/04/24 | 28736 | macros/latex/contrib/koma-script/doc/common-titles-en.tex
-2023/04/24 | 28340 | macros/latex/contrib/koma-script/README.md
-2023/04/24 | 2793 | macros/latex/contrib/koma-script/doc/scrextend.html
-2023/04/24 | 27924 | macros/latex/contrib/koma-script/scrkernel-bibliography.dtx
-2023/04/24 | 27490 | macros/latex/contrib/koma-script/koma-script-source-doc.dtx
-2023/04/24 | 27309 | macros/latex/contrib/koma-script/scrkernel-paragraphs.dtx
-2023/04/24 | 2713 | macros/latex/contrib/koma-script/doc/scrkbase.html
-2023/04/24 | 2687 | macros/latex/contrib/koma-script/doc/authorpart-de.tex
-2023/04/24 | 2683 | macros/latex/contrib/koma-script/doc/scrlfile-patcholdlatex.html
-2023/04/24 | 26718 | macros/latex/contrib/koma-script/scrkernel-compatibility.dtx
-2023/04/24 | 2670660 | systems/texlive/tlnet/archive/hitex.doc.r66924.tar.xz
-2023/04/24 | 265850 | macros/latex/contrib/koma-script/scrkernel-sections.dtx
-2023/04/24 | 2647 | macros/latex/contrib/koma-script/doc/scrlfile-hook-3.34.html
-2023/04/24 | 2632 | macros/latex/contrib/koma-script/doc/scrlogo-de.tex
-2023/04/24 | 26283 | macros/latex/contrib/koma-script/doc/common-footnotes-en.tex
-2023/04/24 | 26158 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-jmw.bbx
-2023/04/24 | 2602 | macros/latex/contrib/koma-script/doc/scrlfile-hook.html
-2023/04/24 | 25947 | fonts/libertinus-otf/latex/libertinus-otf.sty
-2023/04/24 | 25802 | macros/latex/contrib/koma-script/scrtime.dtx
-2023/04/24 | 2570 | macros/latex/contrib/koma-script/doc/scrarticle.html
-2023/04/24 | 2567 | macros/latex/contrib/koma-script/doc/scrreport.html
-2023/04/24 | 2565 | macros/latex/contrib/koma-script/doc/scrletter.html
-2023/04/24 | 2564 | macros/latex/contrib/koma-script/doc/scrreprt.html
-2023/04/24 | 2564 | macros/latex/contrib/koma-script/doc/scrartcl.html
-2023/04/24 | 2562 | macros/latex/contrib/koma-script/doc/scrlttr2.html
-2023/04/24 | 2561 | macros/latex/contrib/koma-script/doc/scrbook.html
-2023/04/24 | 25450 | macros/latex/contrib/koma-script/doc/japanlco-en.tex
-2023/04/24 | 25281 | macros/latex/contrib/koma-script/scrlfile-hook.dtx
-2023/04/24 | 2519 | macros/latex/contrib/koma-script/doc/authorpart-en.tex
-2023/04/24 | 25160 | systems/texlive/tlnet/archive/bithesis.r66924.tar.xz
-2023/04/24 | 25055 | macros/latex/contrib/koma-script/lppl-de.txt
-2023/04/24 | 2494 | macros/latex/contrib/koma-script/doc/scrlogo-en.tex
-2023/04/24 | 2492 | macros/latex/contrib/koma-script/doc/scrlayer.html
-2023/04/24 | 249034 | macros/latex/contrib/koma-script/doc/scrbookreportarticle-de.tex
-2023/04/24 | 2484 | macros/latex/contrib/koma-script/doc/scrlfile.html
-2023/04/24 | 2478 | macros/latex/contrib/koma-script/doc/scrlayer-scrpage.html
-2023/04/24 | 2465 | macros/latex/contrib/koma-script/doc/scrjura.html
-2023/04/24 | 2463 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn.html
-2023/04/24 | 2459 | macros/latex/contrib/koma-script/doc/scrlogo.html
-2023/04/24 | 2448 | macros/latex/contrib/koma-script/doc/typearea.html
-2023/04/24 | 2447 | macros/latex/contrib/koma-script/doc/scrhack.html
-2023/04/24 | 2446 | macros/latex/contrib/koma-script/doc/tocbasic.html
-2023/04/24 | 2439 | macros/latex/contrib/koma-script/doc/scrbase.html
-2023/04/24 | 2425 | macros/latex/contrib/koma-script/doc/scraddr.html
-2023/04/24 | 2424 | macros/latex/contrib/koma-script/doc/scrwfile-de.tex
-2023/04/24 | 2383 | macros/latex/contrib/koma-script/doc/scrdate.html
-2023/04/24 | 2379 | macros/latex/contrib/koma-script/doc/scrtime.html
-2023/04/24 | 236738 | macros/latex/contrib/koma-script/doc/scrlttr2-de.tex
-2023/04/24 | 2350 | macros/latex/contrib/koma-script/doc/scrwfile-en.tex
-2023/04/24 | 23434 | macros/latex/contrib/koma-script/doc/scrguide.bib
-2023/04/24 | 22784 | macros/latex/contrib/koma-script/scrkernel-footnotes.dtx
-2023/04/24 | 22688 | systems/texlive/tlnet/archive/preview.source.r66924.tar.xz
-2023/04/24 | 222288 | macros/latex/contrib/koma-script/doc/scrbookreportarticle-en.tex
-2023/04/24 | 2210 | macros/latex/contrib/koma-script/doc/scrguide.gst
-2023/04/24 | 2145 | macros/latex/contrib/koma-script/doc/expertpart-de.tex
-2023/04/24 | 2132 | macros/latex/contrib/koma-script/doc/common-footnotes-experts-de.tex
-2023/04/24 | 213084 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
-2023/04/24 | 2109 | macros/latex/contrib/koma-script/doc/expertpart-en.tex
-2023/04/24 | 2091 | fonts/libertinus-otf/Changes
-2023/04/24 | 20746 | macros/latex/contrib/koma-script/scrmain.ins
-2023/04/24 | 20683 | macros/latex/contrib/koma-script/doc/scrlayer-scrpage-experts-de.tex
-2023/04/24 | 206611 | macros/latex/contrib/koma-script/doc/scrlttr2-en.tex
-2023/04/24 | 20580 | systems/texlive/tlnet/archive/egpeirce.r66924.tar.xz
-2023/04/24 | 20494 | macros/latex/contrib/koma-script/doc/introduction-de.tex
-2023/04/24 | 20368 | macros/latex/contrib/koma-script/doc/terms-de.tex
-2023/04/24 | 2021 | macros/latex/contrib/koma-script/doc/common-footnotes-experts-en.tex
-2023/04/24 | 199193 | macros/latex/contrib/koma-script/scrkernel-basics.dtx
-2023/04/24 | 1975 | macros/latex/contrib/koma-script/scrstrop.inc
-2023/04/24 | 19283 | macros/latex/contrib/koma-script/doc/letter-example-05-en.pdf
-2023/04/24 | 19282 | macros/latex/contrib/koma-script/doc/letter-example-06-en.pdf
-2023/04/24 | 19266 | macros/latex/contrib/koma-script/doc/letter-example-04-en.pdf
-2023/04/24 | 19242 | macros/latex/contrib/koma-script/doc/letter-example-07-en.pdf
-2023/04/24 | 19224 | macros/latex/contrib/koma-script/doc/letter-example-03-en.pdf
-2023/04/24 | 19190 | macros/latex/contrib/koma-script/doc/letter-example-02-en.pdf
-2023/04/24 | 19110 | macros/latex/contrib/koma-script/lppl.txt
-2023/04/24 | 19100 | macros/latex/contrib/koma-script/doc/terms-en.tex
-2023/04/24 | 18886 | macros/latex/contrib/koma-script/doc/letter-example-01-en.pdf
-2023/04/24 | 1888312 | systems/texlive/tlnet/archive/realhats.doc.r66924.tar.xz
-2023/04/24 | 180525 | macros/latex/contrib/koma-script/scrkernel-notepaper.dtx
-2023/04/24 | 17919 | macros/latex/contrib/koma-script/doc/letter-example-06-de.pdf
-2023/04/24 | 17914 | macros/latex/contrib/koma-script/doc/letter-example-05-de.pdf
-2023/04/24 | 1787 | macros/latex/contrib/koma-script/doc/scrguide.ist
-2023/04/24 | 17823 | macros/latex/contrib/koma-script/doc/letter-example-04-de.pdf
-2023/04/24 | 1782004 | systems/texlive/tlnet/archive/realhats.r66924.tar.xz
-2023/04/24 | 17798 | macros/latex/contrib/koma-script/doc/letter-example-07-de.pdf
-2023/04/24 | 17769 | macros/latex/contrib/koma-script/doc/letter-example-03-de.pdf
-2023/04/24 | 17733 | macros/latex/contrib/koma-script/doc/letter-example-02-de.pdf
-2023/04/24 | 175876 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
-2023/04/24 | 1754813 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip
-2023/04/24 | 17513 | macros/latex/contrib/koma-script/doc/scrlayer-scrpage-experts-en.tex
-2023/04/24 | 17489 | macros/latex/contrib/koma-script/doc/letter-example-01-de.pdf
-2023/04/24 | 174325 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
-2023/04/24 | 17343 | macros/latex/contrib/koma-script/scrkernel-listsandtabulars.dtx
-2023/04/24 | 1723 | macros/unicodetex/latex/textcsc/textcsc.sty
-2023/04/24 | 1711489 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
-2023/04/24 | 16922 | macros/latex/contrib/koma-script/scrkernel-variables.dtx
-2023/04/24 | 16794 | macros/latex/contrib/koma-script/doc/introduction-en.tex
-2023/04/24 | 167599 | macros/latex/contrib/koma-script/scrlayer.dtx
-2023/04/24 | 1622988 | systems/texlive/tlnet/archive/pst-eucl.doc.r66924.tar.xz
-2023/04/24 | 16159 | macros/latex/contrib/koma-script/doc/scrhack-de.tex
-2023/04/24 | 16127 | macros/latex/contrib/koma-script/doc/letter-example-00-en.pdf
-2023/04/24 | 15650 | macros/latex/contrib/koma-script/doc/common-interleafpage-de.tex
-2023/04/24 | 15234 | macros/latex/contrib/koma-script/doc/plength-tikz.tex
-2023/04/24 | 15175 | macros/latex/contrib/koma-script/japanlco.dtx
-2023/04/24 | 15081 | macros/latex/contrib/koma-script/doc/letter-example-00-de.pdf
-2023/04/24 | 146085 | macros/latex/contrib/koma-script/doc/tocbasic-de.tex
-2023/04/24 | 144288 | systems/texlive/tlnet/archive/alchemist.doc.r66924.tar.xz
-2023/04/24 | 14425 | macros/latex/contrib/koma-script/scrkernel-index.dtx
-2023/04/24 | 14318 | macros/latex/contrib/koma-script/doc/scrhack-en.tex
-2023/04/24 | 14241 | macros/latex/contrib/koma-script/doc/common-interleafpage-en.tex
-2023/04/24 | 14138 | macros/latex/contrib/koma-script/doc/typearea-experts-de.tex
-2023/04/24 | 137423 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-de.pdf
-2023/04/24 | 1371 | macros/latex/contrib/koma-script/doc/scrguide-en.tex
-2023/04/24 | 1371 | macros/latex/contrib/koma-script/doc/scrguide-de.tex
-2023/04/24 | 135451 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf
-2023/04/24 | 13324 | macros/latex/contrib/koma-script/doc/scrlttr2-examples.dtx
-2023/04/24 | 13221 | macros/latex/contrib/koma-script/scrdoc.cls
-2023/04/24 | 13210 | macros/latex/contrib/koma-script/doc/scrdate-en.tex
-2023/04/24 | 13094 | macros/latex/contrib/koma-script/doc/scrdate-de.tex
-2023/04/24 | 129391 | macros/latex/contrib/koma-script/doc/tocbasic-en.tex
-2023/04/24 | 126881 | macros/latex/contrib/koma-script/scrkernel-typearea.dtx
-2023/04/24 | 12475 | macros/latex/contrib/koma-script/scrkernel-pseudolengths.dtx
-2023/04/24 | 12139 | macros/latex/contrib/koma-script/doc/common-parmarkup-de.tex
-2023/04/24 | 1213552 | systems/texlive/tlnet/archive/pgfornament-han.doc.r66920.tar.xz
-2023/04/24 | 12016 | macros/latex/contrib/koma-script/doc/typearea-experts-en.tex
-2023/04/24 | 11863 | macros/latex/contrib/koma-script/doc/common-dictum-de.tex
-2023/04/24 | 11848 | macros/latex/contrib/koma-script/doc/common-parmarkup-en.tex
-2023/04/24 | 1156556 | systems/texlive/tlnet/archive/bithesis.doc.r66924.tar.xz
-2023/04/24 | 107718 | macros/latex/contrib/koma-script/scrkernel-tocstyle.dtx
-2023/04/24 | 10699 | macros/latex/contrib/koma-script/scraddr.dtx
-2023/04/24 | 10677 | macros/latex/contrib/koma-script/doc/common-options-de.tex
-2023/04/24 | 10531 | macros/latex/contrib/koma-script/doc/scraddr-de.tex
-2023/04/24 | 1052 | systems/texlive/tlnet/archive/context-texlive.r66924.tar.xz
-2023/04/24 | 101157 | macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-de.tex
-2023/04/24 | 101021 | macros/latex/contrib/koma-script/doc/typearea-de.tex
-2023/04/24 | 10089 | macros/latex/contrib/koma-script/doc/common-dictum-en.tex
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 3683b48b3c..f0952194cf 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 01-05-2023, 02:01:42
+%% created at 02-05-2023, 02:01:45
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -7502,8 +7502,8 @@
title = {The \texttt{biblatex-manuscripts-philology} package},
subtitle = {Manage classical manuscripts with BibLaTeX},
author = {Maïeul Rouquette},
- date = {2020-01-07},
- version = {2.1.2},
+ date = {2023-05-01},
+ version = {2.1.4},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology},
url = {https://ctan.org/pkg/biblatex-manuscripts-philology},
@@ -8674,8 +8674,8 @@
title = {The \texttt{bithesis} package},
subtitle = {Templates for the Beijing Institute of Technology},
author = {Feng Kaiyu},
- date = {2023-04-23},
- version = {3.5.3},
+ date = {2023-05-01},
+ version = {3.5.4},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/unicodetex/latex/bithesis},
url = {https://ctan.org/pkg/bithesis},
@@ -33775,8 +33775,8 @@
title = {The \texttt{Install-LaTeX-Guide-zh-cn} package},
subtitle = {A short introduction to \LaTeX{} installation written in Chinese},
author = {Ran Wang},
- date = {2023-04-02},
- version = {2023.4.1},
+ date = {2023-05-01},
+ version = {2023.5.1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/info/install-latex-guide-zh-cn},
url = {https://ctan.org/pkg/install-latex-guide-zh-cn},
@@ -37842,8 +37842,8 @@
title = {The \texttt{latexindent} package},
subtitle = {Indent a \LaTeX{} document, highlighting the programming structure},
author = {Chris Hughes},
- date = {2023-04-11},
- version = {3.20.6},
+ date = {2023-05-01},
+ version = {3.21},
license = {gpl3},
mirror = {https://mirror.ctan.org/support/latexindent},
url = {https://ctan.org/pkg/latexindent},
@@ -54265,8 +54265,8 @@
title = {The \texttt{ProfCollege} package},
subtitle = {A \LaTeX{} package for French maths teachers in college},
author = {Christophe Poulain},
- date = {2023-04-17},
- version = {0.99-z-j},
+ date = {2023-05-01},
+ version = {0.99-z-k},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/profcollege},
url = {https://ctan.org/pkg/profcollege},
@@ -63696,8 +63696,8 @@
title = {The \texttt{srdp-mathematik} package},
subtitle = {Typeset Austrian SRDP in mathematics},
author = {Christoph Weberndorfer},
- date = {2022-12-16},
- version = {1.11.0},
+ date = {2023-05-01},
+ version = {1.12.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/srdp-mathematik},
url = {https://ctan.org/pkg/srdp-mathematik},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index e99aa78e14..5c8e1506c8 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/info/install-latex-guide-zh-cn/appendix/updateinfo.tex b/info/install-latex-guide-zh-cn/appendix/updateinfo.tex
index 0e154e9214..454951aa71 100644
--- a/info/install-latex-guide-zh-cn/appendix/updateinfo.tex
+++ b/info/install-latex-guide-zh-cn/appendix/updateinfo.tex
@@ -2,6 +2,13 @@
\chapter{版本信息}
+\section*{v2023.5.1}
+
+\begin{enumerate}
+ \item 更新 Ubuntu 环境变量和字体安装
+ \item 添加 TUG 的编辑器列表
+\end{enumerate}
+
\section*{v2023.4.1}
\begin{enumerate}
diff --git a/info/install-latex-guide-zh-cn/chapter/editor.tex b/info/install-latex-guide-zh-cn/chapter/editor.tex
index 8a7f99a68f..0c55638f74 100644
--- a/info/install-latex-guide-zh-cn/chapter/editor.tex
+++ b/info/install-latex-guide-zh-cn/chapter/editor.tex
@@ -523,6 +523,9 @@ Mac\TeX{} 自带 \TeX Shop 编辑器 (注意不要与其他自带的程序混淆
尝试提供一套全面的工具来查看、编辑和编译LaTeX文档,
用户可以考虑使用.
+更多编辑器可参考 TUG 的%
+\href{https://tug.org/interest.html#editors}{列表}.
+
\section{多款编辑器对比参考}
显然, 能够支持 \LaTeX{} 的编辑器并不局限于本手册所介绍的几款.
diff --git a/info/install-latex-guide-zh-cn/chapter/ubuntu.tex b/info/install-latex-guide-zh-cn/chapter/ubuntu.tex
index 2a38d4e789..a54b1d882f 100644
--- a/info/install-latex-guide-zh-cn/chapter/ubuntu.tex
+++ b/info/install-latex-guide-zh-cn/chapter/ubuntu.tex
@@ -125,7 +125,7 @@
用户需要设置环境变量.
执行
\begin{lstlisting}[language = bash]
- gedit ~/.bashrc
+ gedit ~/.profile
\end{lstlisting}
在打开的文件末尾添加
\begin{lstlisting}
@@ -253,7 +253,7 @@
卸载完成后,可以进一步移除之前设置的环境变量.
在 \textsf{Terminal} 中执行
\begin{lstlisting}[language = bash]
- gedit ~/.bashrc
+ gedit ~/.profile
\end{lstlisting}
然后移除之前在文件末尾添加的
\begin{lstlisting}
diff --git a/info/install-latex-guide-zh-cn/chapter/wsl.tex b/info/install-latex-guide-zh-cn/chapter/wsl.tex
index 1b29973868..f2eee01936 100644
--- a/info/install-latex-guide-zh-cn/chapter/wsl.tex
+++ b/info/install-latex-guide-zh-cn/chapter/wsl.tex
@@ -111,7 +111,7 @@ WSL 已经能够自动完成可视化工作,
默认安装完成后, 用户需要设置环境变量.
继续在 \textsf{bash} 中执行
\begin{lstlisting}[language = bash]
- gedit ~/.bashrc
+ gedit ~/.profile
\end{lstlisting}
在打开的文件末尾添加
\begin{lstlisting}
diff --git a/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf b/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
index f6ff5f2c5f..0171a31ec8 100644
--- a/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
+++ b/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README
index da94e9ad0d..cc650b3ee3 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README
@@ -4,7 +4,7 @@ biblatex-manuscripts-philology
Biblatex style and datatools to describe manuscripts in the perspective of a critical edition of text.
This work contains:
-- The biblatex styles files:
+- The biblatex styles files:
- manuscripts.bbx
- manuscripts.dbx
- french-manuscripts.lbx
@@ -23,3 +23,8 @@ This work contains:
- This README file
All features can be requested in https://github.com/maieul/biblatex-manuscripts-philology/issues
+
+# Copyright
+
+Maïeul Rouquette 2014-…
+LaTeX Project Public Licence 1.3
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdf
index 4e4579b104..78ef54212d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdf
index 85aa0b6e56..f26a2f11e2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex
index b67c426528..5d99b3c572 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex
@@ -21,8 +21,8 @@
subtitle={New data types},
email={maieul <at> maieul <dot> net},
author={Maïeul Rouquette},
- revision={2.1.2},
- date={07/01/2020},
+ revision={2.1.4},
+ date={01/05/2023},
url={https://github.com/maieul/biblatex-manuscripts-philology}}
@@ -415,7 +415,10 @@ The version 2.0.0 adds some modification which could require modifications in yo
\begin{changelog}
-\begin{release}{2.1.2}{2019-01-07}
+\begin{release}{2.1.4}{2023-05-01}
+\item Add latin translation (Domenico Cufalo)
+\end{release}
+\begin{release}{2.1.2}{2020-01-07}
\item Fix bug when changing language in the middle of an handbook.
\end{release}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx
index e7fb481848..9793d945d1 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/english-manuscripts.lbx
@@ -12,7 +12,7 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{english-manuscripts.lbx}[2020/01/07 v2.1.2 manuscripts biblatex localisation]%
+\ProvidesFile{english-manuscripts.lbx}[2023/05/01 v2.1.4 manuscripts biblatex localisation]%
\InheritBibliographyStrings{english}
\InheritBibliographyExtras{english}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx
index 2b084281c6..cca1e27ade 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/french-manuscripts.lbx
@@ -12,7 +12,7 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{french-manuscripts.lbx}[2020/01/07 v2.1.2 manuscripts biblatex localisation]%
+\ProvidesFile{french-manuscripts.lbx}[2023/05/01 v2.1.4 manuscripts biblatex localisation]%
\InheritBibliographyStrings{french}
\InheritBibliographyExtras{french}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx
index 0faaa3a752..05a41e252a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/italian-manuscripts.lbx
@@ -12,7 +12,7 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{italian-manuscripts.lbx}[2020/01/07 v2.1.2 manuscripts biblatex localisation]%
+\ProvidesFile{italian-manuscripts.lbx}[2023/05/01 v2.1.4 manuscripts biblatex localisation]%
\InheritBibliographyStrings{italian}
\InheritBibliographyExtras{italian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/latin-manuscripts.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/latin-manuscripts.lbx
new file mode 100644
index 0000000000..12342bc460
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/latin-manuscripts.lbx
@@ -0,0 +1,46 @@
+%% Copyright 2013-… Maïeul Rouquette
+%% Copyright 2023-… Domenico Cufalo
+%
+% 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 Maïeul Rouquette
+% The Current Maintainer of this latin locale is Domenico Cufalo
+% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
+\ProvidesFile{latin-manuscripts.lbx}[2023/05/01 v2.1.4 manuscripts biblatex localisation]%
+\InheritBibliographyStrings{italian}
+\InheritBibliographyExtras{italian}
+
+
+\DeclareBibliographyStrings{%
+ 1column = {{plaena pagina}{1\addnbspace col\adddot}},
+ 2column = {{binis columnis}{2\addnbspace col\adddot}},
+ annotation = {{adnotationes}{adnotationes}},
+ birch-bark = {{in foliis betulae scriptus}{in f\adddotspace betul\adddotspace scr\adddotspace}},
+ catalog = {{catalogus}{cat\adddot}},
+ contents = {{continens}{continens}},
+ folio = {{folius}{f\adddot}},
+ folios = {{folii}{ff\adddot}},
+ foliototal = {{folius}{f\adddot}},
+ foliototals = {{folii}{f\adddot}},
+ inflayer = {{scriptura inferior}{script\adddotspace inf\adddot}},
+ suplayer = {{scriptura superior}{script\adddotspace sup\adddot}},
+ origin = {{originem ducens ex}{orig\adddotspace duc\adddotspace ex}},
+ owner = {{possessor}{poss\adddot}},
+ palm-leaf = {{in foliis palmarum scriptus}{in f\adddotspace palm\adddotspace scr\adddotspace}},
+ paper = {{chartaceus}{chart\adddot}},
+ papyrus = {{papiraceus}{pap\adddot}},
+ parchment = {{membranaceus}{membr\adddot}},
+ pergament = {{membranaceus}{membr\adddot}},% Kept for ascendant compatibility, cf. https://github.com/maieul/biblatex-manuscripts-philology/issues/6
+ scribe = {{scriba}{scr\adddot}}
+}
+
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty
index 9edd170fdf..762883bca0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty
@@ -1,4 +1,4 @@
-\ProvidesFile{manuscript-NewBibliographyString.sty}[2017/11/26 v1.12.3 manuscripts biblatex declaration of localisation string]%
+\ProvidesFile{manuscript-NewBibliographyString.sty}[2023/05/01 v2.1.4 manuscripts biblatex declaration of localisation string]%
\NewBibliographyString{1column}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx
index 066eeccce6..fd6f27de3f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx
@@ -12,7 +12,7 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{manuscripts-noautoshorthand.bbx}[2020/01/07 v2.1.2 biblatex bibliography style (MR)]%
+\ProvidesFile{manuscripts-noautoshorthand.bbx}[2023/05/01 v2.1.4 biblatex bibliography style (MR)]%
\RequireBibliographyStyle{manuscripts-shared}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx
index 43475e0c0f..c5a3b64a98 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx
@@ -12,5 +12,5 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{manuscripts-noautoshorthand.dbx}[2020/01/07 v2.1.2 biblatex bibliography style (MR)]
+\ProvidesFile{manuscripts-noautoshorthand.dbx}[2023/05/01 v2.1.4 biblatex bibliography style (MR)]
\blx@inputonce{manuscripts-shared.dbx}{}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx
index 7208cfbad3..30956f07e8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.bbx
@@ -13,7 +13,7 @@
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{manuscripts-commons}[2020/01/07 v2.1.2 biblatex bibliography style (MR)]%
+\ProvidesFile{manuscripts-commons}[2023/05/01 v2.1.4 biblatex bibliography style (MR)]%
\ifdef{\biblatexmultipledm@bibstyle}
{\RequireBibliographyStyle{\biblatexmultipledm@bibstyle}}
@@ -300,6 +300,7 @@
\DeclareLanguageMapping{english}{english-manuscripts}
\DeclareLanguageMapping{french}{french-manuscripts}
\DeclareLanguageMapping{italian}{italian-manuscripts}
+\DeclareLanguageMapping{latin}{latin-manuscripts}
% 5.5 bibcheck
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx
index acbb65b5f3..75760ad98b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx
@@ -12,7 +12,7 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts.dbx, manuscripts.bbx, french-manuscripts.lbx and english-manuscripts.lbx
-\ProvidesFile{manuscripts-shared.dbx}[2020/01/07 v2.1.2 biblatex bibliography style (MR)]%
+\ProvidesFile{manuscripts-shared.dbx}[2023/05/01 v2.1.4 biblatex bibliography style (MR)]%
\DeclareDatamodelEntrytypes{manuscript}
\DeclareDatamodelFields[type=field,datatype=literal]{%
catalog,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx
index e593d99d79..1c434b74cb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.bbx
@@ -12,7 +12,7 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{manuscripts.bbx}[2020/01/07 v2.1.2 biblatex bibliography style (MR)]%
+\ProvidesFile{manuscripts.bbx}[2023/05/01 v2.1.4 biblatex bibliography style (MR)]%
\RequireBibliographyStyle{manuscripts-shared}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx
index c16712c749..80e5f266fc 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts.dbx
@@ -12,5 +12,5 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
% This work consists of the files manuscripts*.dbx, manuscripts*.bbx, manuscripts*.lbx
-\ProvidesFile{manuscripts.dbx}[2020/01/07 v2.1.2 biblatex bibliography style (MR)]
+\ProvidesFile{manuscripts.dbx}[2023/05/01 v2.1.4 biblatex bibliography style (MR)]
\blx@inputonce{manuscripts-shared.dbx}{}{}{}{}{}
diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
index 28279dff29..b4144010b6 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/PfCCalisson.tex b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
index 08834c7311..08f3d91521 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
@@ -100,260 +100,144 @@
\BuildCalisson{\the\tokcalissonlistetracesg}{\the\tokcalissonlistetracesd}%
}%
+\def\BuildCalissonCode{%
+ boolean Solution;
+ Solution:=\useKV[Calisson]{Solution};
+ %
+ color CouleurSolution;
+ CouleurSolution:=\useKV[Calisson]{Couleur};
+ %
+ Rayon=\useKV[Calisson]{Rayon};
+ Taille=\useKV[Calisson]{Taille};
+ %
+ pair A,B,C,D,E,F,O;
+ O=(0,0);
+ path cc;
+ cc=cercles(O,Rayon);
+ D=pointarc(cc,30);
+ E=pointarc(cc,90);
+ F=pointarc(cc,150);
+ A=pointarc(cc,210);
+ B=pointarc(cc,270);
+ C=pointarc(cc,330);
+ path Gauche,Droit,Haut,Bas,TopGauche,BasDroit;
+ Gauche=F--A--B;
+ Droit=E--D--C;
+ Haut=F--E--D;
+ Bas=A--B--C;
+ TopGauche=E--F--A;
+ BasDroit=D--C--B;
+ %
+ pair Hor,Ver,Horn;
+ Hor=(1/Taille)[E,F];
+ Ver=rotation(Hor,E,60);
+ Horn=rotation(Hor,E,120);
+ % On positionne les points
+ pair M[];
+ n=0;
+ % Partie Gauche -> ok
+ for k=0 upto Taille-1:
+ for l=0 upto Taille:
+ n:=n+1;
+ M[n]=E+k*(Ver-E)+l*(Hor-E);
+ % dotlabel.top(decimal(n),M[n]);
+ endfor;
+ endfor;
+ for k=Taille upto 2*Taille-1:
+ for l=0 upto (2*Taille-1-k):
+ n:=n+1;
+ M[n]=E+k*(Ver-E)+l*(Hor-E);
+ % dotlabel.top(decimal(n),M[n]);
+ endfor;
+ endfor;
+ % Partie Droite -> ok
+ for k=1 upto Taille:
+ n:=n+1;
+ M[n]=E+k*(Horn-E);
+ % dotlabel.top(decimal(n),M[n]);
+ endfor;
+ for k=1 upto Taille-1:
+ for l=0 upto Taille:
+ n:=n+1;
+ M[n]=E+k*(Ver-E)+l*(Horn-E);
+ % dotlabel.top(decimal(n),M[n]);
+ endfor;
+ endfor;
+ for k=Taille upto 2*Taille-1:
+ for l=0 upto (2*Taille-1-k):
+ n:=n+1;
+ M[n]=E+k*(Ver-E)+l*(Horn-E);
+ % dotlabel.top(decimal(n),M[n]);
+ endfor;
+ endfor;
+ %
+ %
+ string Retiens;
+ Retiens="";
+ %
+ pair Depla;
+ Depla:=Hor;
+ %
+ vardef LesTracesg(text t)=
+ trace polygone(A,B,C,D,E,F) withpen pencircle scaled 2;
+ for k=1 upto 2*Taille-1:
+ trace (point(k*length Gauche/(2*Taille)) of Gauche)--(point(k*length Droit/(2*Taille)) of Droit) dashed evenly;
+ trace (point(k*length Haut/(2*Taille)) of Haut)--(point(k*length Bas/(2*Taille)) of Bas) dashed evenly;
+ trace (point(k*length TopGauche/(2*Taille)) of TopGauche)--(point(k*length BasDroit/(2*Taille)) of BasDroit) dashed evenly;
+ endfor;
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ for d=1 upto 3:
+ Retiens:=substring(d-1,d) of p_;
+ if d=1:Depla:=Hor
+ elseif d=2:Depla:=Ver
+ else : Depla:=Horn
+ fi;
+ if (Retiens="0") or (Retiens="f"):
+ elseif Retiens="t":
+ trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
+ elseif Retiens="s":
+ if Solution:
+ trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
+ fi;
+ fi;
+ endfor;
+ endfor;
+ enddef;
+ %
+ vardef LesTracesd(text t)=
+ for p_=t:
+ n:=n+1;
+ for d=1 upto 3:
+ Retiens:=substring(d-1,d) of p_;
+ if d=1:Depla:=Horn
+ elseif d=2:Depla:=Ver
+ else : Depla:=Hor
+ fi;
+ if (Retiens="0") or (Retiens="f"):
+ elseif Retiens="t":
+ trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
+ elseif Retiens="s":
+ if Solution:
+ trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
+ fi;
+ fi;
+ endfor;
+ endfor;
+ enddef;
+}
+
\NewDocumentCommand\BuildCalisson{m m}{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- boolean Solution;
- Solution:=\useKV[Calisson]{Solution};
-
- color CouleurSolution;
- CouleurSolution:=\useKV[Calisson]{Couleur};
-
- Rayon=\useKV[Calisson]{Rayon};
- Taille=\useKV[Calisson]{Taille};
-
- pair A,B,C,D,E,F,O;
- O=(0,0);
- path cc;
- cc=cercles(O,Rayon);
- D=pointarc(cc,30);
- E=pointarc(cc,90);
- F=pointarc(cc,150);
- A=pointarc(cc,210);
- B=pointarc(cc,270);
- C=pointarc(cc,330);
- trace polygone(A,B,C,D,E,F) withpen pencircle scaled 2;
- path Gauche,Droit,Haut,Bas,TopGauche,BasDroit;
- Gauche=F--A--B;
- Droit=E--D--C;
- Haut=F--E--D;
- Bas=A--B--C;
- TopGauche=E--F--A;
- BasDroit=D--C--B;
- for k=1 upto 2*Taille-1:
- trace (point(k*length Gauche/(2*Taille)) of Gauche)--(point(k*length Droit/(2*Taille)) of Droit) dashed evenly;
- trace (point(k*length Haut/(2*Taille)) of Haut)--(point(k*length Bas/(2*Taille)) of Bas) dashed evenly;
- trace (point(k*length TopGauche/(2*Taille)) of TopGauche)--(point(k*length BasDroit/(2*Taille)) of BasDroit) dashed evenly;
- endfor;
-
- pair Hor,Ver,Horn;
- Hor=(1/Taille)[E,F];
- Ver=rotation(Hor,E,60);
- Horn=rotation(Hor,E,120);
-
- % On positionne les points
- pair M[];
- n=0;
- %Partie Gauche -> ok
- for k=0 upto Taille-1:
- for l=0 upto Taille:
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Hor-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- for k=Taille upto 2*Taille-1:
- for l=0 upto (2*Taille-1-k):
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Hor-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- % Partie Droite -> ok
- for k=1 upto Taille:
- n:=n+1;
- M[n]=E+k*(Horn-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- for k=1 upto Taille-1:
- for l=0 upto Taille:
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Horn-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- for k=Taille upto 2*Taille-1:
- for l=0 upto (2*Taille-1-k):
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Horn-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- %
-
- string Retiens;
- Retiens="";
-
- pair Depla;
- Depla:=Hor;
-
- vardef LesTracesg(text t)=
- n:=0;
- for p_=t:
- n:=n+1;
- for d=1 upto 3:
- Retiens:=substring(d-1,d) of p_;
- if d=1:Depla:=Hor
- elseif d=2:Depla:=Ver
- else : Depla:=Horn
- fi;
- if (Retiens="0") or (Retiens="f"):
- elseif Retiens="t":
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
- elseif Retiens="s":
- if Solution:
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
- fi;
- fi;
- endfor;
- endfor;
- enddef;
-
- vardef LesTracesd(text t)=
- for p_=t:
- n:=n+1;
- for d=1 upto 3:
- Retiens:=substring(d-1,d) of p_;
- if d=1:Depla:=Horn
- elseif d=2:Depla:=Ver
- else : Depla:=Hor
- fi;
- if (Retiens="0") or (Retiens="f"):
- elseif Retiens="t":
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
- elseif Retiens="s":
- if Solution:
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
- fi;
- fi;
- endfor;
- endfor;
- enddef;
-
+ \BuildCalissonCode
LesTracesg(#1);
LesTracesd(#2);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={boolean Solution; Solution:=\useKV[Calisson]{Solution}; Rayon=\useKV[Calisson]{Rayon};Taille=\useKV[Calisson]{Taille};color CouleurSolution; CouleurSolution:=\useKV[Calisson]{Couleur};}]
- pair A,B,C,D,E,F,O;
- O=(0,0);
- path cc;
- cc=cercles(O,Rayon);
- D=pointarc(cc,30);
- E=pointarc(cc,90);
- F=pointarc(cc,150);
- A=pointarc(cc,210);
- B=pointarc(cc,270);
- C=pointarc(cc,330);
- trace polygone(A,B,C,D,E,F) withpen pencircle scaled 2;
- path Gauche,Droit,Haut,Bas,TopGauche,BasDroit;
- Gauche=F--A--B;
- Droit=E--D--C;
- Haut=F--E--D;
- Bas=A--B--C;
- TopGauche=E--F--A;
- BasDroit=D--C--B;
- for k=1 upto 2*Taille-1:
- trace (point(k*length Gauche/(2*Taille)) of Gauche)--(point(k*length Droit/(2*Taille)) of Droit) dashed evenly;
- trace (point(k*length Haut/(2*Taille)) of Haut)--(point(k*length Bas/(2*Taille)) of Bas) dashed evenly;
- trace (point(k*length TopGauche/(2*Taille)) of TopGauche)--(point(k*length BasDroit/(2*Taille)) of BasDroit) dashed evenly;
- endfor;
-
- pair Hor,Ver,Horn;
- Hor=(1/Taille)[E,F];
- Ver=rotation(Hor,E,60);
- Horn=rotation(Hor,E,120);
-
- % On positionne les points
- pair M[];
- n=0;
- %Partie Gauche -> ok
- for k=0 upto Taille-1:
- for l=0 upto Taille:
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Hor-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- for k=Taille upto 2*Taille-1:
- for l=0 upto (2*Taille-1-k):
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Hor-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- % Partie Droite -> ok
- for k=1 upto Taille:
- n:=n+1;
- M[n]=E+k*(Horn-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- for k=1 upto Taille-1:
- for l=0 upto Taille:
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Horn-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- for k=Taille upto 2*Taille-1:
- for l=0 upto (2*Taille-1-k):
- n:=n+1;
- M[n]=E+k*(Ver-E)+l*(Horn-E);
- %dotlabel.top(decimal(n),M[n]);
- endfor;
- endfor;
- %
-
- string Retiens;
- Retiens="";
-
- pair Depla;
- Depla:=Hor;
-
- vardef LesTracesg(text t)=
- n:=0;
- for p_=t:
- n:=n+1;
- for d=1 upto 3:
- Retiens:=substring(d-1,d) of p_;
- if d=1:Depla:=Hor
- elseif d=2:Depla:=Ver
- else : Depla:=Horn
- fi;
- if (Retiens="0") or (Retiens="f"):
- elseif Retiens="t":
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
- elseif Retiens="s":
- if Solution:
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
- fi;
- fi;
- endfor;
- endfor;
- enddef;
-
- vardef LesTracesd(text t)=
- for p_=t:
- n:=n+1;
- for d=1 upto 3:
- Retiens:=substring(d-1,d) of p_;
- if d=1:Depla:=Horn
- elseif d=2:Depla:=Ver
- else : Depla:=Hor
- fi;
- if (Retiens="0") or (Retiens="f"):
- elseif Retiens="t":
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
- elseif Retiens="s":
- if Solution:
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
- fi;
- fi;
- endfor;
- endfor;
- enddef;
-
+ \begin{mpost}[mpsettings={\BuildCalissonCode}]
LesTracesg(#1);
LesTracesd(#2);
\end{mpost}
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
index 100807c748..88b2e3a57b 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartesJeux.tex
@@ -8,7 +8,7 @@
text fill,%
width=\largeurcarte,%
height=\hauteurcarte,%
- arc=5pt,%
+ arc=\PfCRayonArc,%
overlay unbroken and first={%
\coordinate[yshift=-0.5\hauteurtitre] (A1) at (frame.north west);%
\coordinate[yshift=-0.5\hauteurtitre] (B1) at (frame.north east);%
@@ -39,6 +39,7 @@
}%
\newcommand\PfCTexteJai{J'ai}
+\newcommand\PfCTexteJesuis{Je suis\dots}
\newcommand\PfCTexteQuia{Qui a ?}
\makeatletter
@@ -49,7 +50,7 @@
text fill,%
width=\largeurcarte,%
height=\hauteurcarte,%
- arc=5pt,%
+ arc=\PfCRayonArc,%\useKV[Cards]{RayonArc},%
underlay={%
\ifboolKV[Cards]{BackgroundAv}{%
\begin{tcbclipinterior}
@@ -64,19 +65,33 @@
},%
overlay unbroken and first={%
\coordinate[yshift=-0.5\hauteurtitre] (A1) at (frame.north west);
- \coordinate[yshift=0\hauteurtitre] (S3) at (frame.center);
+ \ifboolKV[Cards]{Eleve}{%
+ \coordinate[yshift=0.1\hauteurcarte] (S3) at (frame.center);
+ \coordinate[yshift=-0.1\hauteurcarte] (S5) at (frame.center);
+ }{%
+ \coordinate (S3) at (frame.center);
+ \coordinate (S5) at (frame.center);
+ }%
\coordinate[yshift=3mm] (C3) at (frame.south);
\coordinate[xshift=\largeurcarte/2] (A3) at (A1);
+ %Partie Haute
\node[rounded corners, draw=black, rectangle,minimum height=1cm,text width=\largeurcarte-6mm,fill=TrameCouleur] (T1) at (A3){};
- \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 \PfCTexteQuia};
+ \node[TexteCouleur] at (T1){\Large \PfCTexteJai};
\node[minimum height=1cm,text width=\largeurcarte-6mm] (PointTexte1) at ($(A3)!0.5!(S3)$) {\begin{minipage}{\largeurcarte-6mm}%
\begin{center}%
#1%
\end{center}%
- \end{minipage}};
- \node[minimum height=1cm,text width=\largeurcarte-6mm] (PointTexte2) at ($(C3)!0.5!(S3)$) {\begin{minipage}{\largeurcarte-6mm}%
+ \end{minipage}%
+ };
+ % Partie Milieu
+ \ifboolKV[Cards]{Eleve}{%
+ \node[rounded corners, draw=black, rectangle,minimum height=1cm,text width=\largeurcarte-6mm,fill=TrameCouleur] (T3) at (S3){};
+ \node[TexteCouleur] at (T3){\Large \PfCTexteJesuis};
+ }{}
+ % Partie Basse
+ \node[rounded corners, draw=black, rectangle,minimum height=1cm,text width=\largeurcarte-6mm,fill=TrameCouleur] (T2) at (S5){};
+ \node[TexteCouleur] at (T2){\Large \PfCTexteQuia};
+ \node[minimum height=1cm,text width=\largeurcarte-6mm] (PointTexte2) at ($(C3)!0.5!(S5)$) {\begin{minipage}{\largeurcarte-6mm}%
\begin{center}%
#2%
\end{center}%
@@ -85,16 +100,16 @@
colback=white
}%
%
-\newtcolorbox{MyboxJQAr}{%
+\newtcolorbox{MyboxJQAr}[1]{%
enhanced,%
nobeforeafter,%
left=0pt,right=0pt,top=0pt,%
text fill,%
width=\largeurcarte,%
height=\hauteurcarte,%
- arc=5pt,%
+ arc=\PfCRayonArc,%
underlay={%
- \ifboolKV[Cards]{BackgroundAv}{%
+ \ifboolKV[Cards]{BackgroundAr}{%
\begin{tcbclipinterior}
\node[anchor=center,opacity=1]
at (interior.center) {%
@@ -105,6 +120,18 @@
\end{tcbclipinterior}%
}{}%
},%
+ overlay unbroken and first={%
+ \ifboolKV[Cards]{AfficheTheme}{%
+ % \coordinate[yshift=-0.5\hauteurtitre] (A) at (frame.north);%
+ \coordinate[yshift=-2.5mm] (A) at (frame.north);%
+ \node[anchor=north,rounded corners,draw=black,rectangle,minimum height=1cm,text width=\largeurcarte-6mm,fill=TrameCouleur] at (A){\begin{minipage}{\largeurcarte-6mm}%
+ \begin{center}%
+ #1%
+ \end{center}%
+ \end{minipage}
+ };%
+ }{}%
+ },%
colback=white
}%
\makeatother
@@ -118,7 +145,7 @@
text fill,%
width=\largeurcarte,%
height=\hauteurcarte,%
- arc=5pt,%
+ arc=\PfCRayonArc,%
colback=white,%
underlay={%
\ifboolKV[Cards]{BackgroundAv}{%
@@ -151,7 +178,7 @@
text fill,%
width=\largeurcarte,%
height=\hauteurcarte,%
- arc=5pt,%
+ arc=\PfCRayonArc,%
colback=white,%
underlay={%
\ifboolKV[Cards]{BackgroundAr}{%
@@ -183,7 +210,7 @@
text fill,%
width=\largeurcarte,%
height=\hauteurcarte,%
- arc=5pt,%
+ arc=\PfCRayonArc,%
colback=white,%
#1
}%
@@ -197,6 +224,7 @@
\newlength{\margeh}%
\newlength{\margev}%
+\newlength{\PfCRayonArc}%
\newlength{\PfCCardsH}%pour retenir en cas de décalage sur une page paire
\newlength{\PfCCardsEcartH}%Pour décaler sur une page paire
@@ -233,6 +261,7 @@
\coordinate[xshift=\largeurcards] (D2) at (D1);%
\coordinate[xshift=\largeurcards] (C3) at (C2);%
\coordinate[xshift=\largeurcards] (D3) at (D2);%
+ \ifboolKV[Cards]{TrameVisible}{%
\draw (A)--(B);%
\draw (A1)--(B1);%
\draw (A2)--(B2);%
@@ -242,6 +271,7 @@
\draw (C1)--(D1);%
\draw (C2)--(D2);%
\draw (C3)--(D3);%
+ }{}
% point pour placer les cartes
\coordinate[xshift=\margeh+0.5\PfCCardsH,yshift=-0.5\PfCCardsV] (Carte1) at (A);%
\coordinate[xshift=\largeurcards,yshift=0mm] (Carte2) at (Carte1);%
@@ -301,11 +331,12 @@
}{}%
\setKVdefault[Cards]{Largeur=59,Hauteur=89,HauteurTheme=15,Marge=4,Landscape=false,Couleur=Cornsilk,Theme=Th\'eor\`eme\\de
- Pythagore,ThemeSol=Solution,Trame=false,Titre=false,NomTitre=Jeu 1,Loop,JaiQuia=false,BackgroundAv=false,BackgroundAr=false,ImageAv=4813762.jpg,ImageAr=4813762.jpg,AffichageSolution=true,SolutionSeule=false,%
+ Pythagore,ThemeSol=Solution,AfficheTheme=false,Trame=false,Jointes=false,TrameVisible=false,RayonArc=5pt,Titre=false,NomTitre=Jeu 1,Loop,JaiQuia=false,Eleve=false,BackgroundAv=false,BackgroundAr=false,ImageAv=4813762.jpg,ImageAr=4813762.jpg,AffichageSolution=true,SolutionSeule=false,%
% Pour le trivial
Trivial=false,Symboles={\faInfinity,\faSignal,\faProjectDiagram,\faHiking,\faRuler,\faLockOpen}
}%
-
+\defKV[Cards]{ThemeJaiQuiA=\setKV[Cards]{AfficheTheme}}
+%
\NewDocumentCommand\Cartes{o +m}{%[2][]{%
\useKVdefault[Cards]%
\setKV[Cards]{#1}%
@@ -322,15 +353,16 @@
}{%
\setlength{\hauteurcarte}{\fpeval{\useKV[Cards]{Hauteur}-\useKV[Cards]{Marge}}mm}%
\setlength{\largeurcarte}{\fpeval{\useKV[Cards]{Largeur}-\useKV[Cards]{Marge}}mm}%
- \setlength{\largeurcards}{65mm}%
- \setlength{\hauteurcards}{95mm}%
+ \ifboolKV[Cards]{Jointes}{\setlength{\largeurcards}{\largeurcarte}}{\setlength{\largeurcards}{65mm}}%
+ \ifboolKV[Cards]{Jointes}{\setlength{\hauteurcards}{\hauteurcarte}}{\setlength{\hauteurcards}{95mm}}%
\setlength{\margeh}{(210mm-3\largeurcards)/2}%
- \setlength{\margev}{(297mm-3\hauteurcards)/2}%
+ \setlength{\margev}{(297mm-3\hauteurcards)/2}
}%
\setlength{\hauteurtitre}{\fpeval{\useKV[Cards]{HauteurTheme}}mm}%
\setlength{\largeurtitre}{\fpeval{(\useKV[Cards]{Largeur}-\useKV[Cards]{Marge}-9)/2}mm}%
\colorlet{TexteCouleur}{black}%
\colorlet{TrameCouleur}{\useKV[Cards]{Couleur}}%
+ \setlength{\PfCRayonArc}{\useKV[Cards]{RayonArc}}%
\ifboolKV[Cards]{Trivial}{%
\xdef\PfCListeSymbolTrivial{\useKV[Cards]{Symboles}}%
\setsepchar{,}\readlist*\ListeSymbolesTrivial{\PfCListeSymbolTrivial}%
@@ -442,20 +474,35 @@
\begin{Trame}
\multido{\i=1+1}{3}{%
\node at (Carte\i) {%
- \begin{MyboxJQAr}%
- \end{MyboxJQAr}%
+ \ifboolKV[Cards]{AfficheTheme}{%
+ \begin{MyboxJQAr}{\useKV[Cards]{ThemeJaiQuiA}}%
+ \end{MyboxJQAr}%
+ }{%
+ \begin{MyboxJQAr}{}%
+ \end{MyboxJQAr}%
+ }%
};%
}%
\multido{\i=4+1}{3}{%
\node at (Carte\i) {%
- \begin{MyboxJQAr}%
- \end{MyboxJQAr}%
+ \ifboolKV[Cards]{AfficheTheme}{%
+ \begin{MyboxJQAr}{\useKV[Cards]{ThemeJaiQuiA}}%
+ \end{MyboxJQAr}%
+ }{%
+ \begin{MyboxJQAr}{}%
+ \end{MyboxJQAr}%
+ }%
};%
}%
\multido{\i=7+1}{3}{%
\node at (Carte\i) {%
- \begin{MyboxJQAr}%
- \end{MyboxJQAr}%
+ \ifboolKV[Cards]{AfficheTheme}{%
+ \begin{MyboxJQAr}{\useKV[Cards]{ThemeJaiQuiA}}%
+ \end{MyboxJQAr}%
+ }{%
+ \begin{MyboxJQAr}{}%
+ \end{MyboxJQAr}%
+ }%
};%
}%
\end{Trame}%
@@ -466,9 +513,13 @@
%%
\end{MyboxJQ}%
\ifboolKV[Cards]{AffichageSolution}{%
- \begin{MyboxJQAr}%
- %%
- \end{MyboxJQAr}%
+ \ifboolKV[Cards]{AfficheTheme}{%
+ \begin{MyboxJQAr}{\useKV[Cards]{ThemeJaiQuiA}}%
+ \end{MyboxJQAr}%
+ }{%
+ \begin{MyboxJQAr}{}%
+ \end{MyboxJQAr}%
+ }%
}{}%
}%
}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex b/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
index 3e9cc7d1c8..31daba08fc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
@@ -1,7 +1,7 @@
%%%
% Décomposition décimale
%%
-\setKVdefault[DecompDeci]{Parentheses,Colore=false,CouleurU=Blue,CouleurD=Red,CouleurC=Green,Fleches=false,Details=false}
+\setKVdefault[DecompDeci]{Parentheses,Colore=false,CouleurU=Blue,CouleurD=Red,CouleurC=Green,Fleches=false,Details=false,ResultatSeul=false,SansMul=false}
\newcounter{PfCNbDecDeci}
\setcounter{PfCNbDecDeci}{0}
@@ -26,125 +26,146 @@
\modulo{\fpeval{\PfCNombrePuisMax}}{3}%
\xintifboolexpr{\remainder==0}{%
\xdef\PfCDecDeciEcart{0}
- }{\xintifboolexpr{\remainder==1}{\xdef\PfCDecDeciEcart{1}}{\xdef\PfCDecDeciEcart{2}}}
- \ifboolKV[DecompDeci]{Fleches}{%
- \colorlet{oldcolor}{black}%
- % On affiche
- \begin{center}
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax}}}\do{%
- \StrChar{#2}{##1}[\PfCNombreChiffre]%
+ }{\xintifboolexpr{\remainder==1}{\xdef\PfCDecDeciEcart{1}}{\xdef\PfCDecDeciEcart{2}}}%
+ %%%%
+ \ifboolKV[DecompDeci]{SansMul}{%
+ \ensuremath{%
+ \ifboolKV[DecompDeci]{ResultatSeul}{}{\num{#2}=}%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
+ \StrChar{#2}{##1}[\PfCNombreChiffre]
\modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
- \xintifboolexpr{\remainder==0}{%
- \color{\useKV[DecompDeci]{CouleurU}}\tikzmarknode[anchor=south,inner ysep=2pt]{DDA-\thePfCNbDecDeci-##1}{\PfCNombreChiffre}{}\xintifForLast{}{\,\color{oldcolor}}}{%
- \xintifboolexpr{\remainder==1}{%
- \color{\useKV[DecompDeci]{CouleurC}}\tikzmarknode[anchor=south,inner ysep=2pt]{DDA-\thePfCNbDecDeci-##1}{\PfCNombreChiffre}{}}{%
- \color{\useKV[DecompDeci]{CouleurD}}\tikzmarknode[anchor=south,inner ysep=2pt]{DDA-\thePfCNbDecDeci-##1}{\PfCNombreChiffre}{}%
- }%
+ % \colorlet{oldcolor}{.}
+ %\xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}}{%
+ % \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurC}}}{%
+ % \color{\useKV[DecompDeci]{CouleurD}}%
+ % }%
+ %}%
+ \xintifboolexpr{\PfCNombreChiffre==0}{}{%
+ \num{\fpeval{\PfCNombreChiffre*10^(\PfCNombrePuisMax-##1)}}%\color{oldcolor}%
+ \xintifForLast{}{+}%
}%
- }\color{oldcolor}%
-
- \vspace*{3em}
-
- \ifboolKV[DecompDeci]{Details}{%
+ }%
+ }%
+ }{%
+ \ifboolKV[DecompDeci]{Fleches}{%
+ \colorlet{oldcolor}{black}%
+ % On affiche
+ \begin{center}
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax}}}\do{%
+ \StrChar{#2}{##1}[\PfCNombreChiffre]%
+ \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
+ \xintifboolexpr{\remainder==0}{%
+ \color{\useKV[DecompDeci]{CouleurU}}\tikzmarknode[anchor=south,inner ysep=2pt]{DDA-\thePfCNbDecDeci-##1}{\PfCNombreChiffre}{}\xintifForLast{}{\,\color{oldcolor}}}{%
+ \xintifboolexpr{\remainder==1}{%
+ \color{\useKV[DecompDeci]{CouleurC}}\tikzmarknode[anchor=south,inner ysep=2pt]{DDA-\thePfCNbDecDeci-##1}{\PfCNombreChiffre}{}}{%
+ \color{\useKV[DecompDeci]{CouleurD}}\tikzmarknode[anchor=south,inner ysep=2pt]{DDA-\thePfCNbDecDeci-##1}{\PfCNombreChiffre}{}%
+ }%
+ }%
+ }\color{oldcolor}%
+
+ \vspace*{3em}
+
+ \ifboolKV[DecompDeci]{Details}{%
+ \ensuremath{%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
+ \StrChar{#2}{##1}[\PfCNombreChiffre]
+ \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
+ \colorlet{oldcolor}{.}
+ \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}}{%
+ \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurC}}}{%
+ \color{\useKV[DecompDeci]{CouleurD}}%
+ }%
+ }%
+ \xintifboolexpr{\PfCNombreChiffre==0}{}{%
+ \tikzmarknode[anchor=north,inner ysep=2pt]{DDC-\thePfCNbDecDeci-##1}{\boxed{\num{\fpeval{\PfCNombreChiffre*10^(\PfCNombrePuisMax-##1)}}}}\color{oldcolor}%
+ \xintifForLast{}{+}%
+ }%
+ }%
+ }%
+
+ \vspace*{3em}
+
+ }{}%
+
\ensuremath{%
\xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
\StrChar{#2}{##1}[\PfCNombreChiffre]
- \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
- \colorlet{oldcolor}{.}
- \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}}{%
- \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurC}}}{%
- \color{\useKV[DecompDeci]{CouleurD}}%
- }%
- }%
\xintifboolexpr{\PfCNombreChiffre==0}{}{%
- \tikzmarknode[anchor=north,inner ysep=2pt]{DDC-\thePfCNbDecDeci-##1}{\boxed{\num{\fpeval{\PfCNombreChiffre*10^(\PfCNombrePuisMax-##1)}}}}\color{oldcolor}%
+ \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
+ \colorlet{oldcolor}{.}
+ \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}}{%
+ \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurC}}}{%
+ \color{\useKV[DecompDeci]{CouleurD}}%
+ }%
+ }%
+ \tikzmarknode[anchor=north,inner ysep=2pt]{DDB-\thePfCNbDecDeci-##1}{\boxed{\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1)}}}}{}\color{oldcolor}%
\xintifForLast{}{+}%
}%
}%
}%
-
- \vspace*{3em}
-
- }{}%
-
- \ensuremath{%
+ \end{center}
+ \begin{tikzpicture}[remember picture,overlay]
\xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
- \StrChar{#2}{##1}[\PfCNombreChiffre]
- \xintifboolexpr{\PfCNombreChiffre==0}{}{%
- \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
- \colorlet{oldcolor}{.}
- \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}}{%
- \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurC}}}{%
- \color{\useKV[DecompDeci]{CouleurD}}%
- }%
+ \StrChar{#2}{##1}[\PfCNombreChiffre]%
+ \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
+ \xintifboolexpr{\remainder==0}{%
+ \colorlet{PfCDecDeciColor}{\useKV[DecompDeci]{CouleurU}}}{%
+ \xintifboolexpr{\remainder==1}{%
+ \colorlet{PfCDecDeciColor}{\useKV[DecompDeci]{CouleurC}}}{%
+ \colorlet{PfCDecDeciColor}{\useKV[DecompDeci]{CouleurD}}%
}%
- \tikzmarknode[anchor=north,inner ysep=2pt]{DDB-\thePfCNbDecDeci-##1}{\boxed{\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1)}}}}{}\color{oldcolor}%
- \xintifForLast{}{+}%
}%
- }%
- }%
- \end{center}
- \begin{tikzpicture}[remember picture,overlay]
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
- \StrChar{#2}{##1}[\PfCNombreChiffre]%
- \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
- \xintifboolexpr{\remainder==0}{%
- \colorlet{PfCDecDeciColor}{\useKV[DecompDeci]{CouleurU}}}{%
- \xintifboolexpr{\remainder==1}{%
- \colorlet{PfCDecDeciColor}{\useKV[DecompDeci]{CouleurC}}}{%
- \colorlet{PfCDecDeciColor}{\useKV[DecompDeci]{CouleurD}}%
+ \ifboolKV[DecompDeci]{Details}{%
+ \xintifboolexpr{\PfCNombreChiffre>0}{%
+ \draw[-stealth,PfCDecDeciColor] (pic cs:DDA-\thePfCNbDecDeci-##1) to (pic cs:DDC-\thePfCNbDecDeci-##1);
+ \node (DDD-\thePfCNbDecDeci-##1) at ($(pic cs:DDC-\thePfCNbDecDeci-##1)!0.35!(pic cs:DDB-\thePfCNbDecDeci-##1)$) {};
+ \draw[-stealth,PfCDecDeciColor] (DDD-\thePfCNbDecDeci-##1) to (pic cs:DDB-\thePfCNbDecDeci-##1);
+ }{}%
+ }{%
+ \xintifboolexpr{\PfCNombreChiffre>0}{%
+ \draw[-stealth,PfCDecDeciColor] (pic cs:DDA-\thePfCNbDecDeci-##1) to (pic cs:DDB-\thePfCNbDecDeci-##1);
+ }{}%
}%
}%
- \ifboolKV[DecompDeci]{Details}{%
- \xintifboolexpr{\PfCNombreChiffre>0}{%
- \draw[-stealth,PfCDecDeciColor] (pic cs:DDA-\thePfCNbDecDeci-##1) to (pic cs:DDC-\thePfCNbDecDeci-##1);
- \node (DDD-\thePfCNbDecDeci-##1) at ($(pic cs:DDC-\thePfCNbDecDeci-##1)!0.35!(pic cs:DDB-\thePfCNbDecDeci-##1)$) {};
- \draw[-stealth,PfCDecDeciColor] (DDD-\thePfCNbDecDeci-##1) to (pic cs:DDB-\thePfCNbDecDeci-##1);
- }{}%
- }{%
- \xintifboolexpr{\PfCNombreChiffre>0}{%
- \draw[-stealth,PfCDecDeciColor] (pic cs:DDA-\thePfCNbDecDeci-##1) to (pic cs:DDB-\thePfCNbDecDeci-##1);
- }{}%
- }%
- }%
- \end{tikzpicture}
- }{%
- \ifboolKV[DecompDeci]{Colore}{%
- \colorlet{oldcolor}{black}%
- \ensuremath{%
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax}}}\do{%
- \StrChar{#2}{##1}[\PfCNombreChiffre]%
- \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
- \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}\PfCNombreChiffre\xintifForLast{}{\,\color{oldcolor}}}{%
- \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurC}}\PfCNombreChiffre}{%
- \color{\useKV[DecompDeci]{CouleurD}}\PfCNombreChiffre%
+ \end{tikzpicture}
+ }{%
+ \ifboolKV[DecompDeci]{Colore}{%
+ \colorlet{oldcolor}{black}%
+ \ensuremath{%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax}}}\do{%
+ \StrChar{#2}{##1}[\PfCNombreChiffre]%
+ \modulo{\fpeval{\PfCNombrePuisMax+\PfCDecDeciEcart--##1}}{3}%
+ \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}\PfCNombreChiffre\xintifForLast{}{\,\color{oldcolor}}}{%
+ \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurC}}\PfCNombreChiffre}{%
+ \color{\useKV[DecompDeci]{CouleurD}}\PfCNombreChiffre%
+ }%
}%
- }%
- }\color{oldcolor}%
- =
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
- \StrChar{#2}{##1}[\PfCNombreChiffre]
- \xintifboolexpr{\PfCNombreChiffre==0}{}{%
- \modulo{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis-##1}}{3}
- \colorlet{oldcolor}{.}
- \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}}{%
- \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurD}}}{%
- \color{\useKV[DecompDeci]{CouleurC}}%
+ }\color{oldcolor}%
+ =
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
+ \StrChar{#2}{##1}[\PfCNombreChiffre]
+ \xintifboolexpr{\PfCNombreChiffre==0}{}{%
+ \modulo{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis-##1}}{3}
+ \colorlet{oldcolor}{.}
+ \xintifboolexpr{\remainder==0}{\color{\useKV[DecompDeci]{CouleurU}}}{%
+ \xintifboolexpr{\remainder==1}{\color{\useKV[DecompDeci]{CouleurD}}}{%
+ \color{\useKV[DecompDeci]{CouleurC}}%
+ }%
}%
+ \boxed{\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1)}}}\color{oldcolor}%
+ \xintifForLast{}{+}%
}%
- \boxed{\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1)}}}\color{oldcolor}%
- \xintifForLast{}{+}%
}%
- }%
- }
- }{%
- \ensuremath{%
- \num{#2}=
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
- \StrChar{#2}{##1}[\PfCNombreChiffre]
- \xintifboolexpr{\PfCNombreChiffre==0}{}{%
- \ifboolKV[DecompDeci]{Parentheses}{\left(}{}\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1)}}\ifboolKV[DecompDeci]{Parentheses}{\right)}{}%
- \xintifForLast{}{+}%
+ }
+ }{%
+ \ensuremath{%
+ \ifboolKV[DecompDeci]{ResultatSeul}{}{\num{#2}=}%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\PfCNombrePuisMax-\PfCRetiensPuis}}}\do{%
+ \StrChar{#2}{##1}[\PfCNombreChiffre]
+ \xintifboolexpr{\PfCNombreChiffre==0}{}{%
+ \ifboolKV[DecompDeci]{Parentheses}{\left(}{}\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1)}}\ifboolKV[DecompDeci]{Parentheses}{\right)}{}%
+ \xintifForLast{}{+}%
+ }%
}%
}%
}%
@@ -163,13 +184,27 @@
\xdef\PfCRetiensPuis{\fpeval{\PfCRetiensPuis+1}}%
}{}%
}%
- \ensuremath{%
- \num{#2}=
- \xintFor* ##1 in {\xintSeq{1}{\PfCNombrePuisMax-\PfCRetiensPuis}}\do{%
- \StrChar{\PfCRetiensNombreEntier}{##1}[\PfCNombreChiffre]
- \xintifboolexpr{\PfCNombreChiffre==0}{}{%
- \ifboolKV[DecompDeci]{Parentheses}{\left(}{}\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1-\PfCPuisDeci-1)}}\ifboolKV[DecompDeci]{Parentheses}{\right)}{}%
- \xintifForLast{}{+}%
+ %%
+ \ifboolKV[DecompDeci]{SansMul}{%
+ \ensuremath{%
+ \ifboolKV[DecompDeci]{ResultatSeul}{}{\num{#2}=}%
+ \xintFor* ##1 in {\xintSeq{1}{\PfCNombrePuisMax-\PfCRetiensPuis}}\do{%
+ \StrChar{\PfCRetiensNombreEntier}{##1}[\PfCNombreChiffre]
+ \xintifboolexpr{\PfCNombreChiffre==0}{}{%
+ \num{\fpeval{\PfCNombreChiffre*10^(\PfCNombrePuisMax-##1-\PfCPuisDeci-1)}}%
+ \xintifForLast{}{+}%
+ }%
+ }%
+ }%
+ }{%
+ \ensuremath{%
+ \ifboolKV[DecompDeci]{ResultatSeul}{}{\num{#2}=}%
+ \xintFor* ##1 in {\xintSeq{1}{\PfCNombrePuisMax-\PfCRetiensPuis}}\do{%
+ \StrChar{\PfCRetiensNombreEntier}{##1}[\PfCNombreChiffre]
+ \xintifboolexpr{\PfCNombreChiffre==0}{}{%
+ \ifboolKV[DecompDeci]{Parentheses}{\left(}{}\PfCNombreChiffre\times\num{\fpeval{10^(\PfCNombrePuisMax-##1-\PfCPuisDeci-1)}}\ifboolKV[DecompDeci]{Parentheses}{\right)}{}%
+ \xintifForLast{}{+}%
+ }%
}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex b/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
index 682572bfc1..3bfacac68c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinGradue.tex
@@ -4,69 +4,76 @@
\setKVdefault[DessinGradue]{Lignes=10,Debut=-5,Fin=5,Pas=10,Solution=false,EcartVertical=1.5,LignesIdentiques,Longueur=10,Echelle=1,Droites=false,DemiDroites=false,OrigineVariable=false,Code=false}
\defKV[DessinGradue]{Traces=\setKV[DessinGradue]{Code}}%
+\def\TraceDessinGradueCompletCode{%
+ % Paramètres
+ LongueurLigne=\useKV[DessinGradue]{Longueur};
+ EcartVertical=\useKV[DessinGradue]{EcartVertical};
+ Pas:=\useKV[DessinGradue]{Pas};
+ NbLignes=\useKV[DessinGradue]{Lignes};
+ Echelle=\useKV[DessinGradue]{Echelle};
+ Debut:=\useKV[DessinGradue]{Debut};
+ Fin:=\useKV[DessinGradue]{Fin};
+ %
+ boolean Solution,Droites,DemiDroites,LignesIdentiques,OrigineVariable,Code;
+ Solution=\useKV[DessinGradue]{Solution};
+ LignesIdentiques:=\useKV[DessinGradue]{LignesIdentiques};
+ OrigineVariable:=\useKV[DessinGradue]{OrigineVariable};
+ Droites=\useKV[DessinGradue]{Droites};
+ DemiDroites=\useKV[DessinGradue]{DemiDroites};
+ Code=\useKV[DessinGradue]{Code};
+ vardef EffectuerLesTraces=
+ if Code:
+ \useKV[DessinGradue]{Traces};
+ fi;
+ enddef;
+ %
+ pair La,Lb,Lab[];
+ pair 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',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'';
+ %
+ La=(0,0);
+ Lb-La=u*(LongueurLigne,0);
+ %
+ % On définit une fonction pour tracer les lignes en fonction du pas "Partage"
+ vardef TraceLignes(expr Partage)=
+ save RecupLigne;
+ picture RecupLigne;
+ RecupLigne=image(
+ if Droites:
+ drawarrow 1.05[Lb,La]--1.05[La,Lb];
+ elseif DemiDroites:
+ drawarrow La--1.05[La,Lb];
+ else:
+ trace segment(La,Lb);
+ fi;
+ for kl=0 upto Partage:
+ Lab[kl]:=(kl/Partage)[La,Lb];
+ trace (Lab[kl]+u*(0,-0.1))--(Lab[kl]+u*(0,0.1));
+ endfor;
+ );
+ RecupLigne
+ enddef;
+ % On définit une fonction pour nommer les points nécessaires.
+ vardef DefinirPoints(text t)=
+ numeric nblignes,nbpas;
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ if (n mod 3)=1:
+ nblignes:=p_;
+ elseif (n mod 3)=2:
+ nbpas:=p_;
+ elseif (n mod 3)=0:
+ p_=(nbpas/TotalPas[nblignes])[La,Lb] shifted(u*(0,(nblignes-1)*(-EcartVertical)));
+ fi;
+ endfor;
+ enddef;
+}
+
\def\TraceDessinGradueComplet#1#2#3{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- % Paramètres
- LongueurLigne=\useKV[DessinGradue]{Longueur};
- EcartVertical=\useKV[DessinGradue]{EcartVertical};
- Pas:=\useKV[DessinGradue]{Pas};
- NbLignes=\useKV[DessinGradue]{Lignes};
- Echelle=\useKV[DessinGradue]{Echelle};
- Debut:=\useKV[DessinGradue]{Debut};
- Fin:=\useKV[DessinGradue]{Fin};
-
- boolean Solution,Droites,DemiDroites,LignesIdentiques,OrigineVariable,Code;
- Solution=\useKV[DessinGradue]{Solution};
- LignesIdentiques:=\useKV[DessinGradue]{LignesIdentiques};
- OrigineVariable:=\useKV[DessinGradue]{OrigineVariable};
- Droites=\useKV[DessinGradue]{Droites};
- DemiDroites=\useKV[DessinGradue]{DemiDroites};
- Code=\useKV[DessinGradue]{Code};
-
- pair La,Lb,Lab[];
- pair 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',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'';
-
- La=(0,0);
- Lb-La=u*(\useKV[DessinGradue]{Longueur},0);
-
- % On définit une fonction pour tracer les lignes en fonction du pas "Partage"
- vardef TraceLignes(expr Partage)=
- save RecupLigne;
- picture RecupLigne;
- RecupLigne=image(
- if \useKV[DessinGradue]{Droites}:
- drawarrow 1.05[Lb,La]--1.05[La,Lb];
- elseif \useKV[DessinGradue]{DemiDroites}:
- drawarrow La--1.05[La,Lb];
- else:
- trace segment(La,Lb);
- fi;
- for kl=0 upto Partage:
- Lab[kl]:=(kl/Partage)[La,Lb];
- trace (Lab[kl]+u*(0,-0.1))--(Lab[kl]+u*(0,0.1));
- endfor;
- );
- RecupLigne
- enddef;
-
- % On définit une fonction pour nommer les points nécessaires.
- vardef DefinirPoints(text t)=
- numeric nblignes,nbpas;
- n:=0;
- for p_=t:
- n:=n+1;
- if (n mod 3)=1:
- nblignes:=p_;
- elseif (n mod 3)=2:
- nbpas:=p_;
- elseif (n mod 3)=0:
- p_=(nbpas/TotalPas[nblignes])[La,Lb] shifted(u*(0,(nblignes-1)*(-EcartVertical)));
- fi;
- endfor;
- enddef;
-
+ \TraceDessinGradueCompletCode%
% On détermine le nombre de lignes et les origines particulières
pair OrigA[],OrigB[];
if LignesIdentiques:
@@ -141,69 +148,7 @@
trace EnsembleLignes scaled \useKV[DessinGradue]{Echelle};
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={%
- LongueurLigne=\useKV[DessinGradue]{Longueur};
- EcartVertical=\useKV[DessinGradue]{EcartVertical};
- Pas:=\useKV[DessinGradue]{Pas};
- NbLignes=\useKV[DessinGradue]{Lignes};
- Echelle=\useKV[DessinGradue]{Echelle};
- Debut:=\useKV[DessinGradue]{Debut};
- Fin:=\useKV[DessinGradue]{Fin};
- boolean Solution,Droites,DemiDroites,LignesIdentiques,OrigineVariable,Code;
- Solution=\useKV[DessinGradue]{Solution};
- LignesIdentiques:=\useKV[DessinGradue]{LignesIdentiques};
- OrigineVariable:=\useKV[DessinGradue]{OrigineVariable};
- Droites=\useKV[DessinGradue]{Droites};
- DemiDroites=\useKV[DessinGradue]{DemiDroites};
- Code=\useKV[DessinGradue]{Code};
- vardef EffectuerLesTraces=
- if Code:
- \useKV[DessinGradue]{Traces};
- fi;
- enddef;
- }]
- pair La,Lb,Lab[];
- pair 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',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'';
-
- La=(0,0);
- Lb-La=u*(\useKV[DessinGradue]{Longueur},0);
-
- % On définit une fonction pour tracer les lignes en fonction du pas "Partage"
- vardef TraceLignes(expr Partage)=
- save RecupLigne;
- picture RecupLigne;
- RecupLigne=image(
- if \useKV[DessinGradue]{Droites}:
- drawarrow 1.05[Lb,La]--1.05[La,Lb];
- elseif \useKV[DessinGradue]{DemiDroites}:
- drawarrow La--1.05[La,Lb];
- else:
- trace segment(La,Lb);
- fi;
- for kl=0 upto Partage:
- Lab[kl]:=(kl/Partage)[La,Lb];
- trace (Lab[kl]+u*(0,-0.1))--(Lab[kl]+u*(0,0.1));
- endfor;
- );
- RecupLigne
- enddef;
-
- % On définit une fonction pour nommer les points nécessaires.
- vardef DefinirPoints(text t)=
- numeric nblignes,nbpas;
- n:=0;
- for p_=t:
- n:=n+1;
- if (n mod 3)=1:
- nblignes:=p_;
- elseif (n mod 3)=2:
- nbpas:=p_;
- elseif (n mod 3)=0:
- p_=(nbpas/TotalPas[nblignes])[La,Lb] shifted(u*(0,(nblignes-1)*(-EcartVertical)));
- fi;
- endfor;
- enddef;
-
+ \begin{mpost}[mpsettings={\TraceDessinGradueCompletCode}]
% On détermine le nombre de lignes et les origines particulières
pair OrigA[],OrigB[];
if LignesIdentiques:
diff --git a/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex b/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
index 17846d9d54..68e7bdbea4 100644
--- a/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCEngrenagesBase.tex
@@ -15,121 +15,79 @@
\readlist*\ListePfCEngrenages{#2}%
\setsepchar{,}
\xdef\PfCFooEngrenages{}
- % \foreachitem\compteur\in\ListePfCEngrenages{\expandafter\UpdatetoksEngrenages\compteur\nil}%
\foreachitem\compteur\in\ListePfCEngrenages{%
\xdef\PfCFooEngrenages{\PfCFooEngrenages \ListePfCEngrenages[\compteurcnt,1],\ListePfCEngrenages[\compteurcnt,2],}%
}%
\BuildEngrenages{\PfCFooEngrenages}%
}%
+\def\BuildEngrenagesCode#1{%
+ u:=\useKV[Engrenages]{Unite};
+ CouleurEngrenage=\useKV[Engrenages]{Couleur};
+ %
+ vardef LectureDonnees(text t)=
+ n:=0;k=0;l=0;
+ for p_=t:
+ n:=n+1;
+ if (n mod 2)=0:
+ l:=l+1;
+ Zz[l]=p_;
+ else:
+ k:=k+1;
+ Mm[k]=p_;
+ fi;
+ endfor;
+ enddef;
+ %
+ LectureDonnees(#1);
+ %
+ pair K;
+ K=(0,0);
+ picture EngrenageFinal;
+ EngrenageFinal=image(
+ trace Engrenage(Mm[1],Zz[1],(0,0));
+ %
+ Signe=1;
+ %
+ for w=2 upto (n div 2):
+ K:=K+pointarc(cercles((0,0),u*Mm[w]*(Zz[w-1]+Zz[w])*0.5+0.04*u),0);
+ AngleRot[w]:=360/(2*Zz[w]);
+ if w=2:
+ trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
+ if (Zz[w] mod 2)=0:
+ Signe:=Signe*(-1);
+ fi;
+ else:
+ if (Zz[w] mod 2)=1:
+ if Signe=-1:
+ trace rotation(Engrenage(Mm[w],Zz[w],K),K,180);
+ else:
+ trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
+ fi;
+ else:
+ Signe:=Signe*(-1);
+ if Signe=1:
+ trace rotation(Engrenage(Mm[w],Zz[w],K),K,180);
+ else:
+ trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
+ fi;
+ fi;
+ fi;
+ endfor;
+ );
+}
+
\NewDocumentCommand\BuildEngrenages{m}{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
input PfCEngrenages;
-
- u:=\useKV[Engrenages]{Unite};
- CouleurEngrenage=\useKV[Engrenages]{Couleur};
-
- vardef LectureDonnees(text t)=
- n:=0;k=0;l=0;
- for p_=t:
- n:=n+1;
- if (n mod 2)=0:
- l:=l+1;
- Zz[l]=p_;
- else:
- k:=k+1;
- Mm[k]=p_;
- fi;
- endfor;
- enddef;
-
- LectureDonnees(#1);
-
- pair K;
- K=(0,0);
-
- trace Engrenage(Mm[1],Zz[1],(0,0));
-
- Signe=1;
-
- for w=2 upto (n div 2):
- K:=K+pointarc(cercles((0,0),u*Mm[w]*(Zz[w-1]+Zz[w])*0.5+0.04*u),0);
- AngleRot[w]:=360/(2*Zz[w]);
- if w=2:
- trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
- if (Zz[w] mod 2)=0:
- Signe:=Signe*(-1);
- fi;
- else:
- if (Zz[w] mod 2)=1:
- if Signe=-1:
- trace rotation(Engrenage(Mm[w],Zz[w],K),K,180);
- else:
- trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
- fi;
- else:
- Signe:=Signe*(-1);
- if Signe=1:
-trace rotation(Engrenage(Mm[w],Zz[w],K),K,180);
- else:
-trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
- fi;
- fi;
- fi;
- endfor;
+ \BuildEngrenagesCode{#1}
+ trace EngrenageFinal;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={input PfCEngrenages;u:=\useKV[Engrenages]{Unite};CouleurEngrenage=\useKV[Engrenages]{Couleur};}]
- vardef LectureDonnees(text t)=
- n:=0;k=0;l=0;
- for p_=t:
- n:=n+1;
- if (n mod 2)=0:
- l:=l+1;
- Zz[l]=p_;
- else:
- k:=k+1;
- Mm[k]=p_;
- fi;
- endfor;
- enddef;
-
- LectureDonnees(#1);
-
- pair K;
- K=(0,0);
-
- trace Engrenage(Mm[1],Zz[1],(0,0));
-
- Signe=1;
-
- for w=2 upto (n div 2):
- K:=K+pointarc(cercles((0,0),u*Mm[w]*(Zz[w-1]+Zz[w])*0.5+0.04*u),0);
- AngleRot[w]:=360/(2*Zz[w]);
- if w=2:
- trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
- if (Zz[w] mod 2)=0:
- Signe:=Signe*(-1);
- fi;
- else:
- if (Zz[w] mod 2)=1:
- if Signe=-1:
- trace rotation(Engrenage(Mm[w],Zz[w],K),K,180);
- else:
- trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
- fi;
- else:
- Signe:=Signe*(-1);
- if Signe=1:
-trace rotation(Engrenage(Mm[w],Zz[w],K),K,180);
- else:
-trace rotation(Engrenage(Mm[w],Zz[w],K),K,180-AngleRot[w]);
- fi;
- fi;
- fi;
- endfor;
+ \begin{mpost}[mpsettings={input PfCEngrenages;\BuildEngrenagesCode{#1}}]
+ trace EngrenageFinal;
\end{mpost}
\fi
-} \ No newline at end of file
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex b/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
index ea30623503..f1142bcdcf 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNombreAstral.tex
@@ -1,7 +1,7 @@
%%%
% Nombre Astral
%%%
-\setKVdefault[NombreAstral]{Solution=false,Graines=false,Echelle=1}
+\setKVdefault[NombreAstral]{Solution=false,Graines=false,Echelle=1,Couleur=LightSteelBlue}
\defKV[NombreAstral]{Graine=\setKV[NombreAstral]{Graines}}%
\newtoks\toklisteNANombres%
@@ -51,9 +51,12 @@
\mplibforcehmode
\begin{mplibcode}
Cible=\PfCNACible;
+
+ color MiseEnValeurSol;
+ MiseEnValeurSol=\useKV[NombreAstral]{Couleur};
boolean Solution;
- Solution:=\useKV[NombreAstral]{Solution};
+ Solution=\useKV[NombreAstral]{Solution};
Echelle:=\useKV[NombreAstral]{Echelle};
@@ -102,11 +105,19 @@
fill ca[k] withcolor white;
trace ca[k];
endfor;
- vardef Affichage(text t)=
+
+ vardef DefinirRappel(text t)=
n:=0;
for p_=t:
n:=n+1;
Rappel[n]=p_;
+ endfor;
+ enddef;
+
+ vardef Affichage(text t)=
+ n:=0;
+ for p_=t:
+ n:=n+1;
label(TEX("\Large"&p_),A[n]);
endfor;
enddef;
@@ -115,16 +126,20 @@
k:=0;
for p_=t:
k:=k+1;
- fill ca[p_] withcolor white;
+ fill ca[p_] withcolor if Solution=false: white else: MiseEnValeurSol fi;
trace ca[p_];
label(TEX("\Large"&Rappel[p_]),u*(-7,5.6-1.5k));
trace cercles(u*(-7,5.6-1.5k),0.6u);
endfor;
enddef;
-
- Affichage(#1);
+
+ DefinirRappel(#1);
if Solution=false:
+ Affichage(#1);
+ Suppression(#2);
+ else:
Suppression(#2);
+ Affichage(#1);
fi;
picture recap;%
recap:=currentpicture scaled Echelle;%
@@ -134,6 +149,8 @@
\else
\begin{mpost}[mpsettings={%
Echelle:=\useKV[NombreAstral]{Echelle};
+ color MiseEnValeurSol;
+ MiseEnValeurSol=\useKV[NombreAstral]{Couleur};
Cible=\PfCNACible;boolean Solution;Solution:=\useKV[NombreAstral]{Solution};
string Rappel[];
n:=0;
@@ -187,11 +204,20 @@
fill ca[k] withcolor white;
trace ca[k];
endfor;
+
+ vardef DefinirRappel(text t)=
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ Rappel[n]=p_;
+ endfor;
+ enddef;
+
vardef Affichage(text t)=
n:=0;
for p_=t:
n:=n+1;
- label(LATEX("\noexpand\Large"&Rappel[n]),A[n]);
+ label(LATEX("\noexpand\Large"&p_),A[n]);
endfor;
enddef;
@@ -199,18 +225,21 @@
k:=0;
for p_=t:
k:=k+1;
- fill ca[p_] withcolor white;
+ fill ca[p_] withcolor if Solution=false: white else: MiseEnValeurSol fi;
trace ca[p_];
label(LATEX("\noexpand\Large"&Rappel[p_]),u*(-7,5.6-1.5k));
trace cercles(u*(-7,5.6-1.5k),0.6u);
endfor;
enddef;
- Affichage(#1);
+ DefinirRappel(#1);
if Solution=false:
+ Affichage(#1);
Suppression(#2);
+ else:
+ Suppression(#2);
+ Affichage(#1);
fi;
-
picture recap;%
recap:=currentpicture scaled Echelle;%
currentpicture:=nullpicture;%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPapiers.tex b/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
index 8196c4d557..0bb41363ec 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPapiers.tex
@@ -27,306 +27,264 @@
% \fi
%}
-\def\MPGrille#1#2#3#4{%
- \ifluatex%
- \mplibforcehmode%
- \begin{mplibcode}%
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step (#4*100) until (#1*100):
- draw verticon shifted(((k/100)*cm,0));
- endfor;
- for k=0 step (#4*100) until (#2*100):
- draw horizon shifted((0,(k/100)*cm));
- endfor;
- \end{mplibcode}%
- \else%
- \begin{mpost}%
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step 0.5 until #1:
- draw verticon shifted((k*cm,0));
- endfor;
- for k=0 step 0.5 until #2:
- draw horizon shifted((0,k*cm));
- endfor;
- \end{mpost}%
- \fi%
+\def\MPGrilleCode{%
+ PapierLargeur=\PapierLargeur;
+ PapierHauteur=\PapierHauteur;
+ PapierGrille=\PapierGrille;
+ PapierGrillePointe=\PapierGrillePointe;
+ color PapierCouleur;
+ PapierCouleur=\useKV[Papiers]{Couleur};
+ %
+ path horizon,verticon;
+ horizon=(0,0)--(PapierLargeur*cm,0);
+ verticon=(0,0)--(0,PapierHauteur*cm);
+ vardef Papier=
+ picture Papiers;
+ Papiers=image(
+ drawoptions(withcolor PapierCouleur);
+ if PapierGrillePointe>0:
+ for k=0 step (PapierGrillePointe*100) until (PapierLargeur*100):
+ for l=0 step (PapierGrillePointe*100) until (PapierHauteur*100):
+ fill (cercles((0,0),1pt) shifted(((k/100)*cm,(l/100)*cm)));
+ endfor;
+ endfor;
+ else:
+ for k=0 step (PapierGrille*100) until (PapierLargeur*100):
+ draw verticon shifted(((k/100)*cm,0));
+ endfor;
+ for k=0 step (PapierGrille*100) until (PapierHauteur*100):
+ draw horizon shifted((0,(k/100)*cm));
+ endfor;
+ fi;
+ );
+ Papiers
+ enddef;
}%
-\def\MPGrillePointe#1#2#3#4{%
+\def\MPGrille{%
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
- drawoptions(withcolor #3);
- for k=0 step (#4*100) until (#1*100):
- for l=0 step (#4*100) until (#2*100):
- fill (cercles((0,0),1pt) shifted(((k/100)*cm,(l/100)*cm)));
- endfor;
- endfor;
+ \MPGrilleCode
+ trace Papier;
\end{mplibcode}%
\else%
- \begin{mpost}%
- drawoptions(withcolor #3);
- for k=0 step (#4*100) until (#1*100):
- for l=0 step (#4*100) until (#2*100):
- fill (cercles((0,0),0.5pt) shifted(((k/100)*cm,(l/100)*cm)));
- endfor;
- endfor;
+ \begin{mpost}[mpsettings={\MPGrilleCode}]
+ trace Papier;
\end{mpost}%
\fi%
}%
-\def\MPCinq#1#2#3{%
- \ifluatex%
- \mplibforcehmode%
- \begin{mplibcode}%
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step 0.5 until #1:
- draw verticon shifted((k*cm,0));
- endfor;
- for k=0 step 0.5 until #2:
- draw horizon shifted((0,k*cm));
- endfor;
- if \useKV[Papiers]{CodeAfter}:
- \useKV[Papiers]{Traces};
- fi;
- \end{mplibcode}%
- \else%
- \begin{mpost}
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step 0.5 until #1:
- draw verticon shifted((k*cm,0));
- endfor;
- for k=0 step 0.5 until #2:
- draw horizon shifted((0,k*cm));
- endfor;
- \end{mpost}%
- \fi%
+\def\MPCinq{%
+ \xdef\PapierGrille{0.5}%
+ \MPGrille
}%
-\def\MPSeyes#1#2#3{%
+\def\MPSeyesCode{%
+ PapierLargeur=\PapierLargeur;
+ PapierHauteur=\PapierHauteur;
+ color PapierCouleur;
+ PapierCouleur=\useKV[Papiers]{Couleur};
+ u:=\useKV[Papiers]{Echelle};
+ path horizon,verticon;
+ horizon=(0,0)--(PapierLargeur*cm,0);
+ verticon=(0,0)--(0,PapierHauteur*cm);
+ vardef Seyes=
+ picture PapierSeyes;
+ PapierSeyes=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 step u until (PapierLargeur*10):
+ draw verticon shifted(((k/10)*cm,0));
+ endfor;
+ for k=0 step (u/4) until (PapierHauteur*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step u until (PapierHauteur*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 1.25;
+ endfor;
+ );
+ PapierSeyes
+ enddef;
+}
+
+\def\MPSeyes{%
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
- u:=\useKV[Papiers]{Echelle};
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step u until (#1*10):
- draw verticon shifted(((k/10)*cm,0));
- endfor;
- for k=0 step (u/4) until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
- endfor;
- for k=0 step u until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 1.25;
- endfor;
+ \MPSeyesCode
+ trace Seyes;
\end{mplibcode}%
\else%
- \begin{mpost}[mpsettings={u:=\useKV[Papiers]{Echelle};}]%
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step u until (#1*10):
- draw verticon shifted(((k/10)*cm,0));
- endfor;
- for k=0 step (u/4) until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
- endfor;
- for k=0 step u until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 1.25;
- endfor;
+ \begin{mpost}[mpsettings={\MPSeyesCode}]%
+ trace Seyes;
\end{mpost}
\fi%
}%
-\def\MPMillimetre#1#2#3{%
+\def\MPMillimetreCode{%
+ PapierLargeur=\PapierLargeur;
+ PapierHauteur=\PapierHauteur;
+ color PapierCouleur;
+ PapierCouleur=\useKV[Papiers]{Couleur};
+ path horizon,verticon;
+ horizon=(0,0)--(PapierLargeur*cm,0);
+ verticon=(0,0)--(0,PapierHauteur*cm);
+ vardef MPMilli=
+ picture MPMillimetre;
+ MPMillimetre=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 step 1 until (PapierLargeur*10):
+ draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.2;
+ endfor;
+ for k=0 step 5 until (PapierLargeur*10):
+ draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 1 until (PapierLargeur):
+ draw verticon shifted((k*cm,0)) withpen pencircle scaled 1.25;
+ endfor;
+ for k=0 step 1 until (PapierHauteur*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.2;
+ endfor;
+ for k=0 step 5 until (PapierHauteur*10):
+ draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
+ endfor;
+ for k=0 step 1 until (PapierHauteur):
+ draw horizon shifted((0,k*cm)) withpen pencircle scaled 1.25;
+ endfor;
+ );
+ MPMillimetre
+ enddef;
+}
+
+\def\MPMillimetre{%
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step 1 until (#1*10):
- draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.2;
- endfor;
- for k=0 step 5 until (#1*10):
- draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.5;
- endfor;
- for k=0 step 1 until (#1):
- draw verticon shifted((k*cm,0)) withpen pencircle scaled 1.25;
- endfor;
- for k=0 step 1 until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.2;
- endfor;
- for k=0 step 5 until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
- endfor;
- for k=0 step 1 until (#2):
- draw horizon shifted((0,k*cm)) withpen pencircle scaled 1.25;
- endfor;
+ \MPMillimetreCode
+ trace MPMilli;
\end{mplibcode}%
\else%
- \begin{mpost}%
- path horizon,verticon;
- horizon=(0,0)--(#1*cm,0);
- verticon=(0,0)--(0,#2*cm);
- drawoptions(withcolor #3);
- for k=0 step 1 until (#1*10):
- draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.2;
- endfor;
- for k=0 step 5 until (#1*10):
- draw verticon shifted(((k/10)*cm,0)) withpen pencircle scaled 0.5;
- endfor;
- for k=0 step 1 until (#1):
- draw verticon shifted((k*cm,0)) withpen pencircle scaled 1.25;
- endfor;
- for k=0 step 1 until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.2;
- endfor;
- for k=0 step 5 until (#2*10):
- draw horizon shifted((0,(k/10)*cm)) withpen pencircle scaled 0.5;
- endfor;
- for k=0 step 1 until (#2):
- draw horizon shifted((0,k*cm)) withpen pencircle scaled 1.25;
- endfor;
+ \begin{mpost}[mpsettings={\MPMillimetreCode}]
+ trace MPMilli;
\end{mpost}%
\fi%
}%
-\def\MPIsometrique#1#2#3{%
+\def\MPIsometriqueCode{%
+ PapierLargeur=\PapierLargeur;
+ PapierHauteur=\PapierHauteur;
+ color PapierCouleur;
+ PapierCouleur=\useKV[Papiers]{Couleur};
+ path diagon,antidiagon;
+ diagon=(0,0)--PapierHauteur*cm*(sqrt(3),1);
+ antidiagon=(0,0)--PapierHauteur*cm*(-sqrt(3),1);
+ vardef MPIso=
+ picture MPIsom;
+ MPIsom=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 upto 2*(PapierLargeur+PapierHauteur):
+ draw antidiagon shifted((k*cm,0));
+ endfor;
+ for k=-(2*ceiling(PapierLargeur+PapierHauteur)) upto (2*ceiling(PapierLargeur+PapierHauteur)):
+ draw diagon shifted((k*cm,0));
+ endfor;
+ clip currentpicture to polygone((0,0),(PapierLargeur*cm,0),(PapierLargeur*cm,PapierHauteur*cm),(0,PapierHauteur*cm));
+ );
+ MPIsom
+ enddef;
+}
+
+\def\MPIsometrique{%
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
- path diagon,antidiagon;
- diagon=(0,0)--#2*(sqrt(3)*cm,1*cm);
- antidiagon=(0,0)--#2*(-sqrt(3)*cm,1*cm);
- drawoptions(withcolor #3);
- for k=0 step 1 until (#1):
- draw diagon shifted((k*cm,0));
- draw antidiagon shifted((k*cm,0));
- endfor;
- for k=0 step (sqrt(3)/3) until (#2):
- draw diagon shifted((0,k*cm));
- draw antidiagon shifted((#1*cm,k*cm));
- endfor;
- clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \MPIsometriqueCode
+ trace MPIso;
\end{mplibcode}%
\else%
- \begin{mpost}%
- path diagon,antidiagon;
- diagon=(0,0)--#2*(sqrt(3)*cm,1*cm);
- antidiagon=(0,0)--#2*(-sqrt(3)*cm,1*cm);
- drawoptions(withcolor #3);
- for k=0 step 1 until (#1):
- draw diagon shifted((k*cm,0));
- draw antidiagon shifted((k*cm,0));
- endfor;
- for k=0 step (sqrt(3)/3) until (#2):
- draw diagon shifted((0,k*cm));
- draw antidiagon shifted((#1*cm,k*cm));
- endfor;
- clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \begin{mpost}[mpsettings={\MPIsometriqueCode}]
+ trace MPIso;
\end{mpost}%
\fi%
}%
-\def\MPIsometriquePointe#1#2#3{%
+\def\MPIsometriquePointeCode{%
+ PapierLargeur=\PapierLargeur;
+ PapierHauteur=\PapierHauteur;
+ color PapierCouleur;
+ PapierCouleur=\useKV[Papiers]{Couleur};
+ pair diagon,antidiagon;
+ diagon=(1pt,1pt);
+ antidiagon=(1pt+0.5cm,1pt+0.5*(sqrt(3)*1cm/3));
+ vardef TraceIsoPointe=
+ picture PapierIsoPointe;
+ PapierIsoPointe=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 step (sqrt(3)/3) until (PapierHauteur):
+ for l=0 step 1 until (PapierLargeur):
+ fill (cercles(diagon,1pt) shifted((l*cm,k*cm)));
+ fill (cercles(antidiagon,1pt) shifted((l*cm,k*cm)));
+ endfor;
+ endfor;
+ clip currentpicture to polygone((0,0),(PapierLargeur*cm+2pt,0),(PapierLargeur*cm+2pt,PapierHauteur*cm+1pt),(0,PapierHauteur*cm+1pt));
+ );
+ PapierIsoPointe
+ enddef;
+}
+
+\def\MPIsometriquePointe{%
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
- pair diagon,antidiagon;
- diagon=(1pt,1pt);
- antidiagon=(1pt+0.5cm,1pt+0.5*(sqrt(3)*1cm/3));
- drawoptions(withcolor #3);
- for k=0 step (sqrt(3)/3) until (#2):
- for l=0 step 1 until (#1):
- fill (cercles(diagon,1pt) shifted((l*cm,k*cm)));
- fill (cercles(antidiagon,1pt) shifted((l*cm,k*cm)));
- endfor;
- endfor;
- clip currentpicture to polygone((0,0),(#1*cm+2pt,0),(#1*cm+2pt,#2*cm+1pt),(0,#2*cm+1pt));
+ \MPIsometriquePointeCode
+ trace TraceIsoPointe;
\end{mplibcode}%
\else%
- \begin{mpost}%
- pair diagon,antidiagon;
- diagon=(1pt,1pt);
- antidiagon=(1pt+0.5cm,1pt+0.5*(sqrt(3)*1cm/3));
- drawoptions(withcolor #3);
- for k=0 step (sqrt(3)/3) until (#2):
- for l=0 step 1 until (#1):
- fill (cercles(diagon,1pt) shifted((l*cm,k*cm)));
- fill (cercles(antidiagon,1pt) shifted((l*cm,k*cm)));
- endfor;
- endfor;
- clip currentpicture to polygone((0,0),(#1*cm+2pt,0),(#1*cm+2pt,#2*cm+1pt),(0,#2*cm+1pt));
+ \begin{mpost}[mpsettings={\MPIsometriquePointeCode}]
+ trace TraceIsoPointe;
\end{mpost}%
\fi%
}%
-\def\MPTriangulaire#1#2#3{%
+\def\MPTriangulaireCode{%
+ PapierLargeur=\PapierLargeur;
+ PapierHauteur=\PapierHauteur;
+ color PapierCouleur;
+ PapierCouleur=\useKV[Papiers]{Couleur};
+ path horizon,diagon,antidiagon;
+ horizon=(0,0)--(PapierLargeur*cm,0);
+ diagon=(0,0)--PapierHauteur*cm*(sqrt(3)/3,1);
+ antidiagon=(0,0)--PapierHauteur*cm*(-sqrt(3)/3,1);
+ vardef PapierTri=
+ picture PapierTriangle;
+ PapierTriangle=image(
+ drawoptions(withcolor PapierCouleur);
+ for k=0 upto 2*ceiling(PapierLargeur):
+ draw diagon shifted((k*cm,0));
+ draw antidiagon shifted((k*cm,0));
+ endfor;
+ for k=sqrt(3) step (sqrt(3)) until (PapierHauteur):
+ draw diagon shifted((0,k*cm));
+ endfor;
+ for k=0 step (sqrt(3)/2) until (PapierHauteur):
+ draw horizon shifted((0,k*cm));
+ endfor;
+ clip currentpicture to polygone((0,0),(PapierLargeur*cm,0),(PapierLargeur*cm,PapierHauteur*cm),(0,PapierHauteur*cm));
+ );
+ PapierTriangle
+ enddef;
+}
+
+\def\MPTriangulaire{%
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
- path horizon,diagon,antidiagon;
- horizon=(0,0)--(#1*cm,0);
- diagon=(0,0)--#2*(sqrt(3)*cm/3,1*cm);
- antidiagon=(0,0)--#2*(-sqrt(3)*cm/3,1*cm);
- drawoptions(withcolor #3);
- for k=0 step 1 until #1:
- draw diagon shifted((k*cm,0));
- endfor;
- for k=0 step (sqrt(3)) until (#2):
- draw diagon shifted((0,k*cm));
- endfor;
- for k=0 step 1 until (#1):
- draw antidiagon shifted((k*cm,0));
- endfor;
- for k=0 step (sqrt(3)) until (#2):
- draw antidiagon shifted((#1*cm,k*cm));
- endfor;
- for k=0 step (sqrt(3)/2) until (#2):
- draw horizon shifted((0,k*cm));
- endfor;
- clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \MPTriangulaireCode
+ trace PapierTri;
\end{mplibcode}%
\else%
- \begin{mpost}%
- path horizon,diagon,antidiagon;
- horizon=(0,0)--(#1*cm,0);
- diagon=(0,0)--#2*(sqrt(3)*cm/3,1*cm);
- antidiagon=(0,0)--#2*(-sqrt(3)*cm/3,1*cm);
- drawoptions(withcolor #3);
- for k=0 step 1 until #1:
- draw diagon shifted((k*cm,0));
- endfor;
- for k=0 step (sqrt(3)) until (#2):
- draw diagon shifted((0,k*cm));
- endfor;
- for k=0 step 1 until (#1):
- draw antidiagon shifted((k*cm,0));
- endfor;
- for k=0 step (sqrt(3)) until (#2):
- draw antidiagon shifted((#1*cm,k*cm));
- endfor;
- for k=0 step (sqrt(3)/2) until (#2):
- draw horizon shifted((0,k*cm));
- endfor;
- clip currentpicture to polygone((0,0),(#1*cm,0),(#1*cm,#2*cm),(0,#2*cm));
+ \begin{mpost}[mpsettings={\MPTriangulaireCode}]
+ trace PapierTri;
\end{mpost}%
\fi%
}%
@@ -335,6 +293,33 @@
\newlength{\PapierLeftCurrent}
+\def\PfCPapierTest{%
+ \xintifboolexpr{\useKV[Papiers]{GrillePointe}>0 || \useKV[Papiers]{Grille}>0}{%
+ \MPGrille%
+ }{\ifboolKV[Papiers]{Baseline}{%
+ \MPBaseLineSkip{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
+ }{%
+ \ifboolKV[Papiers]{IsometriquePointe}{%
+ \MPIsometriquePointe%
+ }{%
+ \ifboolKV[Papiers]{Triangle}{%
+ \MPTriangulaire%
+ }{\ifboolKV[Papiers]{Millimetre}{%
+ \MPMillimetre%
+ }{\ifboolKV[Papiers]{Isometrique}{%
+ \MPIsometrique%
+ }{\ifboolKV[Papiers]{Seyes}{%
+ \MPSeyes%
+ }{\MPCinq%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}%
+
\newcommand\Papiers[1][]{%
\useKVdefault[Papiers]%
\setKV[Papiers]{#1}%
@@ -355,34 +340,7 @@
\xdef\PapierLargeur{\fpeval{\textwidth/1cm}}%
\begin{tikzpicture}[remember picture,overlay]%
\node[anchor=south west,inner sep=0pt,transform canvas={xshift=\PapierLeft,yshift=\PapierBottom}] at (current page.south west) {%
- \xintifboolexpr{\useKV[Papiers]{GrillePointe}>0}{%
- \MPGrillePointe{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrillePointe}%
- }{%
- \xintifboolexpr{\useKV[Papiers]{Grille}>0}{%
- \MPGrille{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrille}%
- }{\ifboolKV[Papiers]{Baseline}{%
- \MPBaseLineSkip{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{%
- \ifboolKV[Papiers]{IsometriquePointe}{%
- \MPIsometriquePointe{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{%
- \ifboolKV[Papiers]{Triangle}{%
- \MPTriangulaire{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Millimetre}{%
- \MPMillimetre{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Isometrique}{%
- \MPIsometrique{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Seyes}{%
- \MPSeyes{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\MPCinq{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
+ \PfCPapierTest%
};%
\end{tikzpicture}%
}{%
@@ -398,60 +356,11 @@
\xdef\PapierLargeur{\fpeval{\paperwidth/1cm}}%
\begin{tikzpicture}[remember picture,overlay]%
\node[anchor=south west,inner sep=0pt] at (current page.south west) {%
- \xintifboolexpr{\useKV[Papiers]{GrillePointe}>0}{%
- \MPGrillePointe{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrillePointe}%
- }{%
- \xintifboolexpr{\useKV[Papiers]{Grille}>0}{%
- \MPGrille{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrille}%
- }{\ifboolKV[Papiers]{IsometriquePointe}{%
- \MPIsometriquePointe{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Triangle}{%
- \MPTriangulaire{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Millimetre}{%
- \MPMillimetre{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Isometrique}{%
- \MPIsometrique{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Seyes}{%
- \MPSeyes{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\MPCinq{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
+ \PfCPapierTest%
};%
\end{tikzpicture}%
}{%
- \xintifboolexpr{\useKV[Papiers]{GrillePointe}>0}{%
- \MPGrillePointe{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrillePointe}%
- }{%
- \xintifboolexpr{\useKV[Papiers]{Grille}>0}{%
- \MPGrille{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}{\PapierGrille}%
- }{\ifboolKV[Papiers]{Baseline}{%
- \MPBaseLineSkip{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{%
- \ifboolKV[Papiers]{IsometriquePointe}{%
- \MPIsometriquePointe{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{%
- \ifboolKV[Papiers]{Triangle}{%
- \MPTriangulaire{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Millimetre}{%
- \MPMillimetre{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Isometrique}{%
- \MPIsometrique{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\ifboolKV[Papiers]{Seyes}{%
- \MPSeyes{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }{\MPCinq{\PapierLargeur}{\PapierHauteur}{\PapierCouleur}%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
+ \PfCPapierTest
}%
}%
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCPavage.tex b/macros/latex/contrib/profcollege/latex/PfCPavage.tex
new file mode 100644
index 0000000000..245afb0593
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCPavage.tex
@@ -0,0 +1,1216 @@
+%%%
+% Pavage
+%%%
+\setKVdefault[Pavage]{%
+ Before=false,
+ Niveau=3,
+ Couleur=white,
+ Backgrounds=false,
+ Numerotation=false,
+ Depart=0,
+ Complete=false,
+ After=false,
+ Demo=false,
+ Regulier=false,
+ Cote=1,
+ Lignes=4,
+ Colonnes=4,
+ SemiRegulier=false,
+ Reseau=false,
+ Basei={u*(0.75,0)},
+ Basej={u*(0,0.5)},
+ Quadrilatere=false,
+ Escher=false,
+ Rayon=1,
+ Epaisseur=1,
+ Position=0.5,
+ Ecart=10,
+ Colore=false,
+ CouleurUn=white,
+ CouleurDeux=white,
+ CouleurTrois=white,
+ CouleurQuatre=white
+}%
+\defKV[Pavage]{Motif=\setKV[Pavage]{Before}}%
+\defKV[Pavage]{Traces=\setKV[Pavage]{After}}%
+\defKV[Pavage]{ArrierePlan=\setKV[Pavage]{Backgrounds}}%
+\defKV[Pavage]{CouleurUn=\setKV[Pavage]{Colore}}%
+\defKV[Pavage]{CouleurDeux=\setKV[Pavage]{Colore}}%
+\defKV[Pavage]{CouleurTrois=\setKV[Pavage]{Colore}}%
+\defKV[Pavage]{CouleurQuatre=\setKV[Pavage]{Colore}}%
+
+\def\MPPavageBase{%
+ boolean Before,Numerote,Complete,Backgrounds,After,Demo;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Complete=\useKV[Pavage]{Complete};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ Demo=\useKV[Pavage]{Demo};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ Epaisseur=\useKV[Pavage]{Epaisseur};
+ vardef pavages(expr chemin,tour,coul)=
+ if Backgrounds:
+ fill CadrePavage withcolor ColArrierePlan;
+ fi;
+ save Base;
+ picture Base;
+ pair A,B,C,D;
+ A=u*(0,0);
+ B=u*(1,0);
+ C=u*(1,1);
+ D=u*(0,1);
+ path especes;
+ especes=chemin--rotation(chemin,B,-90)--reverse(rotation(symetrie(chemin,B,C),B,-90))--rotation(chemin,B,90)--cycle;
+ if tour=0:
+ Base=image(
+ trace chemin;
+ );
+ elseif tour=1:
+ Base=image(
+ fill especes withcolor coul;
+ trace especes;
+ A:=A shifted(u*(0,-1));
+ B:=B shifted(u*(1,-1));
+ C:=C shifted(u*(1,0));
+ );
+ elseif tour>=2:
+ Base=pavages(chemin,tour-1,coul);
+ Base:=image(
+ trace Base;
+ trace symetrie(Base,B,C);
+ trace rotation(symetrie(Base,B,C),B,-90);
+ trace rotation(Base,B,90);
+ A:=A shifted(u*(0,-(2**(tour-1))));
+ B:=B shifted(u*(2**(tour-1),-(2**(tour-1))));
+ C:=C shifted(u*(2**(tour-1),0));
+ );
+ fi;
+ Base
+enddef;
+%
+vardef pavagescar(expr chemin,tour,coul)=
+ save BaseCar;
+ picture BaseCar;
+ pair A,B,C,D;
+ A=u*(0,0);
+ B=u*(1,0);
+ C=u*(1,1);
+ D=u*(0,1);
+ if tour=0:
+ BaseCar=image(
+ trace chemin;
+ trace A--B--C--D--cycle dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ );
+ elseif tour=1:
+ BaseCar=image(
+ trace chemin;
+ drawoptions(dashed evenly);
+ trace rotation(chemin,B,-90);
+ trace reverse(rotation(symetrie(chemin,B,C),B,-90));
+ trace rotation(chemin,B,90);
+ drawoptions();
+ A:=A shifted(u*(0,-1));
+ B:=B shifted(u*(1,-1));
+ C:=C shifted(u*(1,0));
+ trace A--B--C--D--cycle dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ trace iso(A,D)--iso(B,C) dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ trace iso(A,B)--iso(C,D) dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ );
+ elseif tour>=2:
+ BaseCar=image(
+ trace pavages(chemin,tour-1,coul);
+ trace symetrie(pavages(chemin,tour-1,coul),B,C);%coul+0.5blanc
+ trace rotation(symetrie(pavages(chemin,tour-1,coul),B,C),B,-90);
+ trace rotation(pavages(chemin,tour-1,coul),B,90);
+ A:=A shifted(u*(0,-(2**(tour-1))));
+ B:=B shifted(u*(2**(tour-1),-(2**(tour-1))));
+ C:=C shifted(u*(2**(tour-1),0));
+ );
+ fi;
+ BaseCar
+ enddef;
+ %
+ vardef CadrePavage=
+ u*(0,1)--u*(0,-(2**Niveau-1))--u*(2**Niveau,-(2**Niveau-1))--u*(2**(Niveau),1)--cycle
+ enddef;
+ %
+ vardef Numerotation=
+ n:=Depart;
+ pair B;
+ B=u*(1,0);
+ if Complete:
+ for k=0 upto 2**(Niveau)-2:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ if (k mod 2)=0:
+ label(TEX(decimal(n)),B+u*(2l,-k));
+ else:
+ if l<(2**(Niveau-1))-1:
+ label(TEX(decimal(n)),B+u*(2l+1,-k));
+ else:
+ n:=n-1;
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ for k=0 upto (2**(Niveau-1))-1:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ label(TEX(decimal(n)),B+2u*(l,-k));
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef NumerotationPDF=
+ n:=Depart;
+ pair B;
+ B=u*(1,0);
+ if Complete:
+ for k=0 upto 2**(Niveau)-2:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ if (k mod 2)=0:
+ label(TEX(decimal(n)),B+u*(2l,-k));
+ else:
+ if l<(2**(Niveau-1))-1:
+ label(LATEX(decimal(n)),B+u*(2l+1,-k));
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ for k=0 upto (2**(Niveau-1))-1:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ label(LATEX(decimal(n)),B+2u*(l,-k));
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef PlacePointSupport=
+ n:=Depart;
+ pair K[],L[],M[],N[];
+ K[0]=u*(0,0);
+ M[0]=u*(1,1);
+ if Complete:
+ for k=0 upto 2**(Niveau)-2:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ if (k mod 2)=0:
+ K[n]:=K0+u*(2l,-k);
+ M[n]:=M0+u*(2l,-k);
+ else:
+ if l<(2**(Niveau-1))-1:
+ K[n]:=K0+u*(2l+1,-k);
+ M[n]:=M0+u*(2l+1,-k);
+ else:
+ n:=n-1;
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ for k=0 upto (2**(Niveau-1))-1:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ K[n]=K[0]+2u*(l,-k);
+ M[n]=M[0]+2u*(l,-k);
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}%
+
+\def\MPReseauRegulier{%
+ boolean Before,Numerote,Backgrounds,After;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ Epaisseur=\useKV[Pavage]{Epaisseur};
+ pair A[];
+ A1=(0,0);
+ A2-A1=u*Cote*(1,0);
+ vardef PavageRegulier(expr Niv)=
+ picture Retour;
+ if Niv=3:
+ A3=rotation(A2,A1,60);
+ path TriBase,CadrePavage;
+ TriBase=polygone(A1,A2,A3);
+ CadrePavage=polygone(A1,Cote*cm*(Colonnes,0),Cote*cm*(Colonnes,0.5*sqrt(3)*Lignes),Cote*cm*(0,0.5*sqrt(3)*Lignes));
+ Retour=image(
+ fill CadrePavage withcolor ColPavage;
+ for k=0 upto Lignes:
+ for l=-1 upto Colonnes+1:
+ if k mod 2=0:
+ trace TriBase shifted (Cote*cm*(l,0.5*sqrt(3)*k));
+ else:
+ trace TriBase shifted (Cote*cm*(l+0.5,0.5*sqrt(3)*k));
+ fi;
+ endfor;
+ endfor;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled Epaisseur;
+ );
+ elseif Niv=4:
+ A3=rotation(A1,A2,-90);
+ A4-A3=A1-A2;
+ path QuadriBase,CadrePavage;
+ QuadriBase=polygone(A1,A2,A3,A4);
+ CadrePavage=polygone(A1,Cote*cm*(Colonnes,0),Cote*cm*(Colonnes,Lignes),Cote*cm*(0,Lignes));
+ Retour=image(
+ fill CadrePavage withcolor ColPavage;
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes-1:
+ trace QuadriBase shifted (Cote*cm*(l,k));
+ endfor;
+ endfor;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled Epaisseur;
+ );
+ elseif Niv=6:
+ A3=rotation(A1,A2,-120);
+ A4=rotation(A2,A3,-120);
+ A5=rotation(A3,A4,-120);
+ A6=rotation(A4,A5,-120);
+ path HexaBase,CadrePavage;
+ HexaBase=polygone(A1,A2,A3,A4,A5,A6);
+ CadrePavage=polygone(Cote*cm*(1,0),Cote*cm*(3*Colonnes,0),Cote*cm*(3*Colonnes,sqrt(3)*(Lignes-1)),Cote*cm*(1,sqrt(3)*(Lignes-1)));
+ Retour=image(%
+ fill CadrePavage withcolor ColPavage;
+ for k=-1 upto 2*Lignes+1:
+ for l=-1 upto Colonnes+1:
+ if k mod 2=1:
+ trace HexaBase shifted (Cote*cm*(3*l,0.5*sqrt(3)*k));
+ else:
+ trace HexaBase shifted (Cote*cm*(1.5+3*l,sqrt(3)+0.5*sqrt(3)*k));
+ fi;
+ endfor;
+ endfor;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled Epaisseur;
+ );
+ fi;
+ Retour
+ enddef;
+ %
+ vardef PlacePointSupport=
+ n:=Depart;
+ pair B;pair C;pair vdepla;
+ pair Hexa[],Hexb[],Hexc[],Hexd[],Hexe[],Hexf[];
+ pair Cara[],Carb[],Carc[],Card[];
+ pair Tria[],Trib[],Tric[];
+ path Maille[];
+ if Niveau=3:
+ B=iso(A1,A2,A3);
+ C=symetrie(B,A2,A3);
+ for k=1 upto Lignes:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ if k mod 2=1:
+ nbv:=(k-1)*1.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ else:
+ nbv:=(k-1)*1.5+0.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),(nbv*Cote*cm*sqrt(3)/3))+(xpart(C-B),-ypart(C-B));
+ fi;
+ fi;
+ if (n mod 2)=0:
+ Tria[n]=rotation(A1,B,180) shifted vdepla;
+ Trib[n]=rotation(A2,B,180) shifted vdepla;
+ Tric[n]=rotation(A3,B,180) shifted vdepla;
+ else:
+ Tria[n]-A1=vdepla;
+ Trib[n]-A2=vdepla;
+ Tric[n]-A3=vdepla;
+ fi;
+ Maille[n]=polygone(Tria[n],Trib[n],Tric[n]);
+ endfor;
+ endfor;
+ elseif Niveau=4:
+ B=iso(A1,A2,A3,A4);
+ for k=1 upto Lignes:
+ for l=1 upto Colonnes:
+ n:=n+1;
+ vdepla:=Cote*cm*((l-1),(k-1));
+ Cara[n]-A1=vdepla;
+ Carb[n]-A2=vdepla;
+ Carc[n]-A3=vdepla;
+ Card[n]-A4=vdepla;
+ Maille[n]=polygone(Cara[n],Carb[n],Carc[n],Card[n]);
+ endfor;
+ endfor;
+ elseif Niveau=6:
+ B=iso(A1,A2,A3,A4,A5,A6);
+ C=symetrie(B,A3,A4);
+ for k=1 upto Lignes-1:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ nbv:=(k-1)*3;
+ if l mod 2=1:
+ vdepla:=(1.5*Cote*cm*(l-1)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(1.5*Cote*cm*(l-2)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ if k=Lignes-1:
+ if l mod 2=1:
+ Hexa[n]-A1=vdepla;
+ Hexb[n]-A2=vdepla;
+ Hexc[n]-A3=vdepla;
+ Hexd[n]-A4=vdepla;
+ Hexe[n]-A5=vdepla;
+ Hexf[n]-A6=vdepla;
+ else:
+ n:=n-1;
+ fi;
+ else:
+ Hexa[n]-A1=vdepla;
+ Hexb[n]-A2=vdepla;
+ Hexc[n]-A3=vdepla;
+ Hexd[n]-A4=vdepla;
+ Hexe[n]-A5=vdepla;
+ Hexf[n]-A6=vdepla;
+ fi;
+ Maille[n]:=polygone(Hexa[n],Hexb[n],Hexc[n],Hexd[n],Hexe[n],Hexf[n]);
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef Numerotation=
+ n:=Depart;
+ pair B;pair C;pair vdepla;
+ if Niveau=3:
+ B=iso(A1,A2,A3);
+ C=symetrie(B,A2,A3);
+ for k=1 upto Lignes:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ if k mod 2=1:
+ nbv:=(k-1)*1.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ else:
+ nbv:=(k-1)*1.5+0.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),(nbv*Cote*cm*sqrt(3)/3))+(xpart(C-B),-ypart(C-B));
+ fi;
+ fi;
+ label(TEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=4:
+ B=iso(A1,A2,A3,A4);
+ for k=1 upto Lignes:
+ for l=1 upto Colonnes:
+ n:=n+1;
+ vdepla:=Cote*cm*((l-1),(k-1));
+ label(TEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=6:
+ B=iso(A1,A2,A3,A4,A5,A6);
+ C=symetrie(B,A3,A4);
+ for k=1 upto Lignes-1:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ nbv:=(k-1)*3;
+ if l mod 2=1:
+ vdepla:=(1.5*Cote*cm*(l-1)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(1.5*Cote*cm*(l-2)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ if k=Lignes-1:
+ if l mod 2=1:
+ label(TEX(decimal(n)),B shifted vdepla);
+ else:
+ n:=n-1;
+ fi;
+ else:
+ label(TEX(decimal(n)),B shifted vdepla);
+ fi;
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef NumerotationPDF=
+ n:=Depart;
+ pair B;pair C;pair vdepla;
+ if Niveau=3:
+ B=iso(A1,A2,A3);
+ C=symetrie(B,A2,A3);
+ for k=1 upto Lignes:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ if k mod 2=1:
+ nbv:=(k-1)*1.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ else:
+ nbv:=(k-1)*1.5+0.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),(nbv*Cote*cm*sqrt(3)/3))+(xpart(C-B),-ypart(C-B));
+ fi;
+ fi;
+ label(LATEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=4:
+ B=iso(A1,A2,A3,A4);
+ for k=1 upto Lignes:
+ for l=1 upto Colonnes:
+ n:=n+1;
+ vdepla:=Cote*cm*((l-1),(k-1));
+ label(LATEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=6:
+ B=iso(A1,A2,A3,A4,A5,A6);
+ C=symetrie(B,A3,A4);
+ for k=1 upto Lignes-1:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ nbv:=(k-1)*3;
+ if l mod 2=1:
+ vdepla:=(1.5*Cote*cm*(l-1)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(1.5*Cote*cm*(l-2)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ if k=Lignes-1:
+ if l mod 2=1:
+ label(LATEX(decimal(n)),B shifted vdepla);
+ else:
+ n:=n-1;
+ fi;
+ else:
+ label(LATEX(decimal(n)),B shifted vdepla);
+ fi;
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}%
+
+\def\MPReseauCode{%
+ boolean Before,Numerote,Backgrounds,After;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ Epaisseur=\useKV[Pavage]{Epaisseur};
+ pair basei,basej;
+ basei=\useKV[Pavage]{Basei};
+ basej=\useKV[Pavage]{Basej};
+ vardef PavageReseau=
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes -1:
+ trace Motif shifted (k*basei+l*basej);
+ endfor;
+ endfor;
+ enddef;
+ vardef Numerotation=
+ n:=Depart;
+ k:=0;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ B[0]=A[0];
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes -1:
+ n:=n+1;
+ label(decimal(n),B[0] shifted(k*basei+l*basej));
+ endfor;
+ endfor;
+ enddef;
+ vardef PlacePointSupport=
+ pair M[][];
+ path Maille[];
+ n:=Depart;
+ k:=0;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ NbSommet:=k;
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes -1:
+ n:=n+1;
+ for m=1 upto NbSommet:
+ M[n][m]=A[m] shifted (k*basei+l*basej);
+ endfor;
+ Maille[n]=polygone(M[n][1] for r=2 upto NbSommet:,M[n][r] endfor);
+ endfor;
+ endfor;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}%
+
+\def\MPPeriodiqueCode{%
+ boolean Before,Numerote,Backgrounds,After;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ Epaisseur=\useKV[Pavage]{Epaisseur};
+ pair basei,basej;
+ vardef PavagePeriodique=
+ basei=iso(A1,A2)-iso(A1,A0);
+ basej=iso(A0,A3)-iso(A1,A0);
+ path CadrePavage;
+ pair Cpa[];
+ Cpa1=(0,ypart(-2*basej));
+ Cpa2=(xpart(2*Colonnes*basei),ypart(-2*basej));
+ Cpa3=(xpart(2*Colonnes*basei),ypart(2*Lignes*basej));
+ Cpa4=(0,ypart(2*Lignes*basej));
+ CadrePavage=Cpa1--Cpa2--Cpa3--Cpa4--cycle;
+ picture BlocContour,BlocPavage;
+ BlocContour=image(
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ if ColPavage<>white:
+ fill Motif shifted (2*l*basei+2*k*basej) withcolor ColPavage;
+ fill symetrie(Motif,iso(A1,A2)) shifted (2*l*basei+2*k*basej) withcolor ColPavage;
+ fi;
+ trace Motif shifted (2*l*basei+2*k*basej);
+ trace symetrie(Motif,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ endfor;
+ endfor;
+ drawoptions();
+ );
+ BlocPavage=image(
+ trace BlocContour;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled Epaisseur;
+ );
+ BlocPavage
+ enddef;
+ vardef Numerotation=
+ n:=-1;
+ pair ISO;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=B[0] shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0.2,0))) and (ypart(ISO)<ypart(Cpa4-u*(0.2,0))):
+ label(TEX(decimal(n)),ISO);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ %2eme tour
+ n:=-1;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=symetrie(B[0],iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0,0.2))) and (ypart(ISO)<ypart(Cpa4-u*(0,0.2))):
+ label(TEX(decimal(n+1)),ISO);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ enddef;
+ vardef PlacePointSupport=
+ path Maille[];
+ pair QuadA[],QuadB[],QuadC[],QuadD[];
+ n:=-1;
+ pair ISO;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=B[0] shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0,0.2))) and (ypart(ISO)<ypart(Cpa4-u*(0,0.2))):
+ QuadA[n]=A0 shifted (2*l*basei+2*k*basej);
+ QuadB[n]=A1 shifted (2*l*basei+2*k*basej);
+ QuadC[n]=A2 shifted (2*l*basei+2*k*basej);
+ QuadD[n]=A3 shifted (2*l*basei+2*k*basej);
+ Maille[n]=polygone(QuadA[n],QuadB[n],QuadC[n],QuadD[n]);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ %2eme tour
+ n:=-1;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=symetrie(B[0],iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0,0.2))) and (ypart(ISO)<ypart(Cpa4-u*(0,0.2))):
+ QuadA[n+1]=symetrie(A0,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ QuadB[n+1]=symetrie(A1,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ QuadC[n+1]=symetrie(A2,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ QuadD[n+1]=symetrie(A3,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ Maille[n+1]=polygone(QuadA[n+1],QuadB[n+1],QuadC[n+1],QuadD[n+1]);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}%
+
+\def\MPPavageEscherCode{%
+ boolean Before,Numerote,Backgrounds,After,Colore;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ Colore=\useKV[Pavage]{Colore};
+ color ColPavage,ColArrierePlan,CouleurUn,CouleurDeux,CouleurTrois,CouleurQuatre;
+ if Colore:
+ CouleurUn=\useKV[Pavage]{CouleurUn};
+ CouleurDeux=\useKV[Pavage]{CouleurDeux};
+ CouleurTrois=\useKV[Pavage]{CouleurTrois};
+ CouleurQuatre=\useKV[Pavage]{CouleurQuatre};
+ fi;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Rayon=\useKV[Pavage]{Rayon};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ Ecart=\useKV[Pavage]{Ecart};
+ Position=\useKV[Pavage]{Position};
+ Epaisseur=\useKV[Pavage]{Epaisseur};
+ pair basei,basej;
+ picture Motif;
+ vardef PavageEscher=
+ path cc;
+ cc=cercles((0,0),u*Rayon);
+ if Niveau=3:
+ pair O[];
+ O1=pointarc(cc,0);
+ O3=pointarc(cc,120);
+ O5=pointarc(cc,240);
+ O2=Position[O3,O1]+Ecart*unitvector((O3-O1) rotated -90);
+ O4=rotation(O2,O3,-120);
+ O6=rotation(O4,O5,-120);
+ picture Motif;
+ Motif=image(
+ if Colore:
+ if known CouleurUn: fill polygone(O1,O2,O3,O4,O5,O6) withcolor CouleurUn fi;
+ if known CouleurDeux: fill rotation(polygone(O1,O2,O3,O4,O5,O6),O1,120) withcolor CouleurDeux fi;
+ if known CouleurTrois:fill rotation(polygone(O1,O2,O3,O4,O5,O6),O1,-120) withcolor CouleurTrois fi;
+ fi;
+ trace polygone(O1,O2,O3,O4,O5,O6);
+ trace rotation(polygone(O1,O2,O3,O4,O5,O6),O1,120);
+ trace rotation(polygone(O1,O2,O3,O4,O5,O6),O1,-120);
+ );
+ basei=(rotation(O2,O1,-120)-O4);
+ basej:=(rotation(O5,O1,-120)-O5);
+ elseif Niveau=4:
+ pair O[];
+ O1=pointarc(cc,0);
+ O3=pointarc(cc,90);
+ O5=pointarc(cc,180);
+ O7=pointarc(cc,270);
+ O2=Position[O3,O1]+Ecart*unitvector((O3-O1) rotated -90);
+ O4=rotation(O2,O3,-90);
+ O6=rotation(O4,O5,-90);
+ O8=rotation(O6,O7,-90);
+ picture Motif;
+ Motif=image(
+ if Colore:
+ if known CouleurUn: fill polygone(O1,O2,O3,O4,O5,O6,O7,O8) withcolor CouleurUn fi;
+ if known CouleurDeux: fill rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8),O1,90) withcolor CouleurDeux fi;
+ if known CouleurTrois:fill rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8),O1,180) withcolor CouleurTrois fi;
+ if known CouleurQuatre:fill rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8),O1,270) withcolor CouleurQuatre fi;
+ fi;
+ trace polygone(O1,O2,O3,O4,O5,O6,O7,O8);
+ trace rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8),O1,90);
+ trace rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8),O1,180);
+ trace rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8),O1,270);
+ );
+ basei=(rotation(O5,O1,180)-O5);
+ basej:=(rotation(O5,O1,-90)-O5);
+ elseif Niveau=6:
+ pair O[];
+ O1=pointarc(cc,0);
+ O3=pointarc(cc,60);
+ O5=pointarc(cc,120);
+ O7=pointarc(cc,180);
+ O9=pointarc(cc,240);
+ O11=pointarc(cc,300);
+ O2=Position[O3,O1]+Ecart*unitvector((O3-O1) rotated -90);
+ O4=rotation(O2,O3,-120);
+ O6=rotation(O4,O5,-120);
+ O8=rotation(O6,O7,-120);
+ O10=rotation(O8,O9,-120);
+ O12=rotation(O10,O11,-120);
+ picture Motif;
+ Motif=image(
+ if Colore:
+ if known CouleurUn: fill polygone(O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12) withcolor CouleurUn fi;
+ if known CouleurDeux: fill rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12),O1,120) withcolor CouleurDeux fi;
+ if known CouleurTrois: fill rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12),O1,-120) withcolor CouleurTrois fi;
+ fi;
+ trace polygone(O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12);
+ trace rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12),O1,120);
+ trace rotation(polygone(O1,O2,O3,O4,O5,O6,O7,O8,O9,O10,O11,O12),O1,-120);
+ );
+ basei=(rotation(O4,O1,-120)-O6);
+ basej:=(rotation(O9,O1,-120)-O9);
+ fi;
+ path CadrePavage;
+ pair Cpa[];
+ Cpa1=(0,ypart(-2*basej));
+ Cpa2=(xpart(2*Colonnes*basei),ypart(-2*basej));
+ Cpa3=(xpart(2*Colonnes*basei),ypart(2*Lignes*basej));
+ Cpa4=(0,ypart(2*Lignes*basej));
+ CadrePavage=Cpa1--Cpa2--Cpa3--Cpa4--cycle;
+ picture BlocContour,BlocPavage;
+ BlocContour=image(
+ for k=-2*Lignes upto 2*Lignes:
+ for l=-2*Colonnes upto 2*Colonnes:
+ trace Motif shifted (l*basei+k*basej);
+ endfor;
+ endfor;
+ );
+ BlocPavage=image(
+ trace BlocContour;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled Epaisseur;
+ );
+ BlocPavage
+ enddef;
+ vardef BaryMotif(expr nimech)=
+ save Escherbary;
+ pair Escherbary,EB[],EBSom;
+ tour:=0;
+ EB[0]=point(0) of nimech;
+ EBSom=(0,0);
+ forever:
+ tour:=tour+1;
+ EB[tour]=point(tour) of nimech;
+ EBSom:=EBSom+EB[tour];
+ exitif EB[tour]=EB[0];
+ endfor;
+ Escherbary=EBSom/tour;
+ Escherbary
+ enddef;
+ %
+ vardef Numerotation=
+ pair ISORetiens;
+ for k=1 upto TotalMaille:
+ ISORetiens:=BaryMotif(Maille[k]);
+ label(TEX(""&decimal(k)&""),ISORetiens);
+ endfor;
+ enddef;
+ %
+ vardef AssocierPoint(expr nbpt,ll,kk,aanngg)=
+ PointE[nbpt][1]=rotation(O1,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][2]=rotation(O2,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][3]=rotation(O3,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][4]=rotation(O4,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][5]=rotation(O5,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][6]=rotation(O6,O1,aanngg) shifted (ll*basei+kk*basej);
+ if Niveau>3:
+ PointE[nbpt][7]=rotation(O7,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][8]=rotation(O8,O1,aanngg) shifted (ll*basei+kk*basej);
+ fi;
+ if Niveau>4:
+ PointE[nbpt][9]=rotation(O9,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][10]=rotation(O10,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][11]=rotation(O11,O1,aanngg) shifted (ll*basei+kk*basej);
+ PointE[nbpt][12]=rotation(O12,O1,aanngg) shifted (ll*basei+kk*basej);
+ fi;
+ enddef;
+ vardef AssocierMaille(expr nbpt)=
+ Maille[nbpt]=if Niveau=3:
+ polygone(PointE[nbpt][1],PointE[nbpt][2],PointE[nbpt][3],PointE[nbpt][4],PointE[nbpt][5],PointE[nbpt][6])
+ elseif Niveau=4:
+ polygone(PointE[nbpt][1],PointE[nbpt][2],PointE[nbpt][3],PointE[nbpt][4],PointE[nbpt][5],PointE[nbpt][6],PointE[nbpt][7],PointE[nbpt][8])
+ elseif Niveau=6:
+ polygone(PointE[nbpt][1],PointE[nbpt][2],PointE[nbpt][3],PointE[nbpt][4],PointE[nbpt][5],PointE[nbpt][6],PointE[nbpt][7],PointE[nbpt][8],PointE[nbpt][9],PointE[nbpt][10],PointE[nbpt][11],PointE[nbpt][12])
+ fi;
+ enddef;
+ vardef PlacePointSupport=
+ pair PointE[][];
+ path Maille[];
+ pair ISO[];
+ if Niveau=3:
+ ISO1:=(0,0);
+ ISO2=rotation(ISO1,O1,120);
+ ISO3=rotation(ISO1,O1,-120);
+ basei=(rotation(O2,O1,-120)-O4);
+ basej:=(rotation(O5,O1,-120)-O5);
+ elseif Niveau=4:
+ ISO1=(0,0);
+ ISO2=rotation(ISO1,O1,90);
+ ISO3=rotation(ISO1,O1,180);
+ ISO4=rotation(ISO1,O1,270);
+ basei=(rotation(O5,O1,180)-O5);
+ basej:=(rotation(O5,O1,-90)-O5);
+ elseif Niveau=6:
+ ISO1=(0,0);
+ ISO2=rotation(ISO1,O1,120);
+ ISO3=rotation(ISO1,O1,-120);
+ basei=(rotation(O4,O1,-120)-O6);
+ basej:=(rotation(O9,O1,-120)-O9);
+ fi;
+ n:=0;
+ pair ISORetiens;
+ for k=-2*Lignes upto 2*Lignes:
+ for l=-2*Colonnes upto 2*Colonnes:
+ n:=n+1;
+ ISORetiens:=ISO1 shifted (l*basei+k*basej);
+ if (xpart(ISORetiens)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISORetiens)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISORetiens)>ypart(Cpa1+u*(0,0.2))) and (ypart(ISORetiens)<ypart(Cpa4-u*(0,0.2))):
+ AssocierPoint(n,l,k,0);
+ AssocierMaille(n);
+ else:
+ n:=n-1;
+ fi;
+ n:=n+1;
+ ISORetiens:=ISO2 shifted (l*basei+k*basej);
+ if (xpart(ISORetiens)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISORetiens)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISORetiens)>ypart(Cpa1+u*(0,0.2))) and (ypart(ISORetiens)<ypart(Cpa4-u*(0,0.2))):
+ if Niveau=4:
+ AssocierPoint(n,l,k,90);
+ else:
+ AssocierPoint(n,l,k,120);
+ fi;
+ AssocierMaille(n);
+ else:
+ n:=n-1;
+ fi;
+ n:=n+1;
+ ISORetiens:=ISO3 shifted (l*basei+k*basej);
+ if (xpart(ISORetiens)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISORetiens)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISORetiens)>ypart(Cpa1+u*(0,0.2))) and (ypart(ISORetiens)<ypart(Cpa4-u*(0,0.2))):
+ if Niveau=4:
+ AssocierPoint(n,l,k,180);
+ else:
+ AssocierPoint(n,l,k,-120);
+ fi;
+ AssocierMaille(n);
+ else:
+ n:=n-1;
+ fi;
+ if Niveau=4:
+ n:=n+1;
+ ISORetiens:=ISO4 shifted (l*basei+k*basej);
+ if (xpart(ISORetiens)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISORetiens)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISORetiens)>ypart(Cpa1+u*(0,0.2))) and (ypart(ISORetiens)<ypart(Cpa4-u*(0,0.2))):
+ AssocierPoint(n,l,k,270);
+ AssocierMaille(n);
+ else:
+ n:=n-1;
+ fi;
+ fi;
+ endfor;
+ endfor;
+ TotalMaille=n;
+ enddef;
+ %
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}%
+
+\def\MPPavageEscher{%
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}
+ \MPPavageEscherCode
+ picture Motif;
+ trace PavageEscher;
+ PlacePointSupport;
+ if After:
+ EffectuerTraces;
+ fi;
+ if Numerote:
+ Numerotation;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\MPPavageEscherCode}]
+ picture Motif;
+ trace PavageEscher;
+ PlacePointSupport;
+ if After:
+ EffectuerTraces;
+ fi;
+ if Numerote:
+ Numerotation;
+ fi;
+ \end{mpost}
+ \fi%
+}%
+
+\def\MPPeriodique{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPPeriodiqueCode
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=(0,0)--u*(1,-2)--u*(2,0.5)--u*(0.75,1)--cycle;
+ fi;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ B[0]=A[0];
+ k:=0;
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ trace PavagePeriodique;
+ PlacePointSupport;
+ if After:
+ EffectuerTraces;
+ fi;
+ if Numerote:
+ Numerotation;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[\MPPeriodiqueCode]
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=(0,0)--u*(1,-2)--u*(2,0.5)--u*(0.75,1)--cycle;
+ fi;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ B[0]=A[0];
+ k:=0;
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ trace PavagePeriodique;
+ PlacePointSupport;
+% if Numerote:
+% Numerotation;
+% fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mpost}
+ \fi
+}%
+
+\def\MPReseau{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPReseauCode
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)--u*(0.75,0)--u*(1,0.5)--u*(0.25,0.5)--cycle;
+ fi;
+ PavageReseau;
+ PlacePointSupport;
+ if After:
+ EffectuerTraces;
+ fi;
+ if Numerote:
+ Numerotation;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\MPReseauCode}]
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)--u*(0.75,0)--u*(1,0.5)--u*(0.25,0.5)--cycle;
+ fi;
+ PavageReseau;
+ PlacePointSupport;
+ if After:
+ EffectuerTraces;
+ fi;
+ if Numerote:
+ Numerotation;
+ fi;
+ \end{mpost}
+ \fi
+}%
+
+\def\MPRegulier{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPReseauRegulier
+ trace PavageRegulier(Niveau);
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\MPReseauRegulier}]
+ trace PavageRegulier(Niveau);
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mpost}
+ \fi
+}%
+
+\def\MPPavage{%
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ \MPPavageBase
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)..u*(0.25,.1)..u*(0.5,0.7)..u*(1,1);
+ fi;
+ if Demo:
+ trace pavagescar(Motif,0,ColPavage);
+ else:
+ trace pavages(Motif,Niveau,ColPavage);
+ fi;
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ if Demo=false:
+ trace CadrePavage withpen pencircle scaled Epaisseur;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\MPPavageBase}]
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)..u*(0.25,.1)..u*(0.5,0.7)..u*(1,1);
+ fi;
+ trace pavages(Motif,Niveau,ColPavage);
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ trace CadrePavage withpen pencircle scaled Epaisseur;
+ \end{mpost}
+ \fi%
+}%
+
+\NewDocumentCommand\Pavage{o}{%
+ \useKVdefault[Pavage]%
+ \setKV[Pavage]{#1}%
+ \ifboolKV[Pavage]{Regulier}{%
+ \MPRegulier%
+ }{%
+ \ifboolKV[Pavage]{SemiRegulier}{%
+ %
+ }{%
+ \ifboolKV[Pavage]{Reseau}{%
+ \MPReseau%
+ }{%
+ \ifboolKV[Pavage]{Quadrilatere}{%
+ \MPPeriodique%
+ }{%
+ \ifboolKV[Pavage]{Escher}{%
+ \MPPavageEscher%
+ }{%
+ \MPPavage%
+ }%
+ }%
+ }%
+ }%
+ }%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCPavageAvecMotifImage.tex b/macros/latex/contrib/profcollege/latex/PfCPavageAvecMotifImage.tex
new file mode 100644
index 0000000000..a7cfd4eeb6
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCPavageAvecMotifImage.tex
@@ -0,0 +1,1040 @@
+%%%
+% Pavage
+%%%
+\setKVdefault[Pavage]{%
+ Before=false,
+ Niveau=3,
+ Couleur=orange,
+ Backgrounds=false,
+ Numerotation=false,
+ Depart=0,
+ Complete=false,
+ After=false,
+ Demo=false,
+ Regulier=false,
+ Cote=1,
+ Lignes=4,
+ Colonnes=4,
+ SemiRegulier=false,
+ Reseau=false,
+ Basei={u*(0.75,0)},
+ Basej={u*(0,0.5)},
+ Periodique=false,
+ Image=false
+}%
+\defKV[Pavage]{Motif=\setKV[Pavage]{Before}}
+\defKV[Pavage]{Traces=\setKV[Pavage]{After}}
+\defKV[Pavage]{ArrierePlan=\setKV[Pavage]{Backgrounds}}
+
+\def\MPPavageBase{%
+ boolean Before,Numerote,Complete,Backgrounds,After,Demo;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Complete=\useKV[Pavage]{Complete};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ Demo=\useKV[Pavage]{Demo};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ vardef pavages(expr chemin,tour,coul)=
+ if Backgrounds:
+ fill CadrePavage withcolor ColArrierePlan;
+ trace CadrePavage;
+ fi;
+ save Base;
+ picture Base;
+ pair A,B,C,D;
+ A=u*(0,0);
+ B=u*(1,0);
+ C=u*(1,1);
+ D=u*(0,1);
+ path especes;
+ especes=chemin--rotation(chemin,B,-90)--reverse(rotation(symetrie(chemin,B,C),B,-90))--rotation(chemin,B,90)--cycle;
+ if tour=0:
+ Base=image(
+ trace chemin;
+ );
+ elseif tour=1:
+ Base=image(
+ fill especes withcolor coul;
+ trace especes;
+ A:=A shifted(u*(0,-1));
+ B:=B shifted(u*(1,-1));
+ C:=C shifted(u*(1,0));
+ );
+ elseif tour>=2:
+ Base=pavages(chemin,tour-1,coul);
+ Base:=image(
+ trace Base;
+ trace symetrie(Base,B,C);
+ trace rotation(symetrie(Base,B,C),B,-90);
+ trace rotation(Base,B,90);
+ A:=A shifted(u*(0,-(2**(tour-1))));
+ B:=B shifted(u*(2**(tour-1),-(2**(tour-1))));
+ C:=C shifted(u*(2**(tour-1),0));
+ );
+ fi;
+ Base
+enddef;
+%
+vardef pavagescar(expr chemin,tour,coul)=
+ save BaseCar;
+ picture BaseCar;
+ pair A,B,C,D;
+ A=u*(0,0);
+ B=u*(1,0);
+ C=u*(1,1);
+ D=u*(0,1);
+ if tour=0:
+ BaseCar=image(
+ trace chemin;
+ trace A--B--C--D--cycle dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ );
+ elseif tour=1:
+ BaseCar=image(
+ trace chemin;
+ drawoptions(dashed evenly);
+ trace rotation(chemin,B,-90);
+ trace reverse(rotation(symetrie(chemin,B,C),B,-90));
+ trace rotation(chemin,B,90);
+ drawoptions();
+ A:=A shifted(u*(0,-1));
+ B:=B shifted(u*(1,-1));
+ C:=C shifted(u*(1,0));
+ trace A--B--C--D--cycle dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ trace iso(A,D)--iso(B,C) dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ trace iso(A,B)--iso(C,D) dashed dashpattern(on12bp off6bp on3bp off 6bp) withcolor gris;
+ );
+ elseif tour>=2:
+ BaseCar=image(
+ trace pavages(chemin,tour-1,coul);
+ trace symetrie(pavages(chemin,tour-1,coul),B,C);%coul+0.5blanc
+ trace rotation(symetrie(pavages(chemin,tour-1,coul),B,C),B,-90);
+ trace rotation(pavages(chemin,tour-1,coul),B,90);
+ A:=A shifted(u*(0,-(2**(tour-1))));
+ B:=B shifted(u*(2**(tour-1),-(2**(tour-1))));
+ C:=C shifted(u*(2**(tour-1),0));
+ );
+ fi;
+ BaseCar
+ enddef;
+ %
+ vardef CadrePavage=
+ u*(0,1)--u*(0,-(2**Niveau-1))--u*(2**Niveau,-(2**Niveau-1))--u*(2**(Niveau),1)--cycle
+ enddef;
+ %
+ vardef Numerotation=
+ n:=Depart;
+ pair B;
+ B=u*(1,0);
+ if Complete:
+ for k=0 upto 2**(Niveau)-2:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ if (k mod 2)=0:
+ label(TEX(decimal(n)),B+u*(2l,-k));
+ else:
+ if l<(2**(Niveau-1))-1:
+ label(TEX(decimal(n)),B+u*(2l+1,-k));
+ else:
+ n:=n-1;
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ for k=0 upto (2**(Niveau-1))-1:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ label(TEX(decimal(n)),B+2u*(l,-k));
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef NumerotationPDF=
+ n:=Depart;
+ pair B;
+ B=u*(1,0);
+ if Complete:
+ for k=0 upto 2**(Niveau)-2:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ if (k mod 2)=0:
+ label(TEX(decimal(n)),B+u*(2l,-k));
+ else:
+ if l<(2**(Niveau-1))-1:
+ label(LATEX(decimal(n)),B+u*(2l+1,-k));
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ for k=0 upto (2**(Niveau-1))-1:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ label(LATEX(decimal(n)),B+2u*(l,-k));
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef PlacePointSupport=
+ n:=Depart;
+ pair K[],L[],M[],N[];
+ K[0]=u*(0,0);
+ M[0]=u*(1,1);
+ if Complete:
+ for k=0 upto 2**(Niveau)-2:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ if (k mod 2)=0:
+ K[n]:=K0+u*(2l,-k);
+ M[n]:=M0+u*(2l,-k);
+ else:
+ if l<(2**(Niveau-1))-1:
+ K[n]:=K0+u*(2l+1,-k);
+ M[n]:=M0+u*(2l+1,-k);
+ else:
+ n:=n-1;
+ fi;
+ fi;
+ endfor;
+ endfor;
+ else:
+ for k=0 upto (2**(Niveau-1))-1:
+ for l=0 upto (2**(Niveau-1))-1:
+ n:=n+1;
+ K[n]=K[0]+2u*(l,-k);
+ M[n]=M[0]+2u*(l,-k);
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}
+
+\def\MPReseauRegulier{
+ boolean Before,Numerote,Backgrounds,After;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ pair A[];
+ A1=(0,0);
+ A2-A1=u*Cote*(1,0);
+ vardef PavageRegulier(expr Niv)=
+ picture Retour;
+ if Niv=3:
+ A3=rotation(A2,A1,60);
+ path TriBase,CadrePavage;
+ TriBase=polygone(A1,A2,A3);
+ CadrePavage=polygone(A1,Cote*cm*(Colonnes,0),Cote*cm*(Colonnes,0.5*sqrt(3)*Lignes),Cote*cm*(0,0.5*sqrt(3)*Lignes));
+ Retour=image(
+ fill CadrePavage withcolor ColPavage;
+ for k=0 upto Lignes:
+ for l=-1 upto Colonnes+1:
+ if k mod 2=0:
+ trace TriBase shifted (Cote*cm*(l,0.5*sqrt(3)*k));
+ else:
+ trace TriBase shifted (Cote*cm*(l+0.5,0.5*sqrt(3)*k));
+ fi;
+ endfor;
+ endfor;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled 1.5;
+ );
+ elseif Niv=4:
+ A3=rotation(A1,A2,-90);
+ A4-A3=A1-A2;
+ path QuadriBase,CadrePavage;
+ QuadriBase=polygone(A1,A2,A3,A4);
+ CadrePavage=polygone(A1,Cote*cm*(Colonnes,0),Cote*cm*(Colonnes,Lignes),Cote*cm*(0,Lignes));
+ Retour=image(
+ fill CadrePavage withcolor ColPavage;
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes-1:
+ trace QuadriBase shifted (Cote*cm*(l,k));
+ endfor;
+ endfor;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled 1.5;
+ );
+ elseif Niv=6:
+ A3=rotation(A1,A2,-120);
+ A4=rotation(A2,A3,-120);
+ A5=rotation(A3,A4,-120);
+ A6=rotation(A4,A5,-120);
+ path HexaBase,CadrePavage;
+ HexaBase=polygone(A1,A2,A3,A4,A5,A6);
+ CadrePavage=polygone(Cote*cm*(1,0),Cote*cm*(3*Colonnes,0),Cote*cm*(3*Colonnes,sqrt(3)*(Lignes-1)),Cote*cm*(1,sqrt(3)*(Lignes-1)));
+ Retour=image(%
+ fill CadrePavage withcolor ColPavage;
+ for k=-1 upto 2*Lignes+1:
+ for l=-1 upto Colonnes+1:
+ if k mod 2=1:
+ trace HexaBase shifted (Cote*cm*(3*l,0.5*sqrt(3)*k));
+ else:
+ trace HexaBase shifted (Cote*cm*(1.5+3*l,sqrt(3)+0.5*sqrt(3)*k));
+ fi;
+ endfor;
+ endfor;
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled 1.5;
+ );
+ fi;
+ Retour
+ enddef;
+ %
+ vardef PlacePointSupport=
+ n:=Depart;
+ pair B;pair C;pair vdepla;
+ pair Hexa[],Hexb[],Hexc[],Hexd[],Hexe[],Hexf[];
+ pair Cara[],Carb[],Carc[],Card[];
+ pair Tria[],Trib[],Tric[];
+ if Niveau=3:
+ B=iso(A1,A2,A3);
+ C=symetrie(B,A2,A3);
+ for k=1 upto Lignes:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ if k mod 2=1:
+ nbv:=(k-1)*1.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ else:
+ nbv:=(k-1)*1.5+0.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),(nbv*Cote*cm*sqrt(3)/3))+(xpart(C-B),-ypart(C-B));
+ fi;
+ fi;
+ if (n mod 2)=0:
+ Tria[n]=rotation(A1,B,180) shifted vdepla;
+ Trib[n]=rotation(A2,B,180) shifted vdepla;
+ Tric[n]=rotation(A3,B,180) shifted vdepla;
+ else:
+ Tria[n]-A1=vdepla;
+ Trib[n]-A2=vdepla;
+ Tric[n]-A3=vdepla;
+ fi;
+ endfor;
+ endfor;
+ elseif Niveau=4:
+ B=iso(A1,A2,A3,A4);
+ for k=1 upto Lignes:
+ for l=1 upto Colonnes:
+ n:=n+1;
+ vdepla:=Cote*cm*((l-1),(k-1));
+ Cara[n]-A1=vdepla;
+ Carb[n]-A2=vdepla;
+ Carc[n]-A3=vdepla;
+ Card[n]-A4=vdepla;
+ endfor;
+ endfor;
+ elseif Niveau=6:
+ B=iso(A1,A2,A3,A4,A5,A6);
+ C=symetrie(B,A3,A4);
+ for k=1 upto Lignes-1:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ nbv:=(k-1)*3;
+ if l mod 2=1:
+ vdepla:=(1.5*Cote*cm*(l-1)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(1.5*Cote*cm*(l-2)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ if k=Lignes-1:
+ if l mod 2=1:
+ Hexa[n]-A1=vdepla;
+ Hexb[n]-A2=vdepla;
+ Hexc[n]-A3=vdepla;
+ Hexd[n]-A4=vdepla;
+ Hexe[n]-A5=vdepla;
+ Hexf[n]-A6=vdepla;
+ else:
+ n:=n-1;
+ fi;
+ else:
+ Hexa[n]-A1=vdepla;
+ Hexb[n]-A2=vdepla;
+ Hexc[n]-A3=vdepla;
+ Hexd[n]-A4=vdepla;
+ Hexe[n]-A5=vdepla;
+ Hexf[n]-A6=vdepla;
+ fi;
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef Numerotation=
+ n:=Depart;
+ pair B;pair C;pair vdepla;
+ if Niveau=3:
+ B=iso(A1,A2,A3);
+ C=symetrie(B,A2,A3);
+ for k=1 upto Lignes:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ if k mod 2=1:
+ nbv:=(k-1)*1.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ else:
+ nbv:=(k-1)*1.5+0.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),(nbv*Cote*cm*sqrt(3)/3))+(xpart(C-B),-ypart(C-B));
+ fi;
+ fi;
+ label(TEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=4:
+ B=iso(A1,A2,A3,A4);
+ for k=1 upto Lignes:
+ for l=1 upto Colonnes:
+ n:=n+1;
+ vdepla:=Cote*cm*((l-1),(k-1));
+ label(TEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=6:
+ B=iso(A1,A2,A3,A4,A5,A6);
+ C=symetrie(B,A3,A4);
+ for k=1 upto Lignes-1:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ nbv:=(k-1)*3;
+ if l mod 2=1:
+ vdepla:=(1.5*Cote*cm*(l-1)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(1.5*Cote*cm*(l-2)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ if k=Lignes-1:
+ if l mod 2=1:
+ label(TEX(decimal(n)),B shifted vdepla);
+ else:
+ n:=n-1;
+ fi;
+ else:
+ label(TEX(decimal(n)),B shifted vdepla);
+ fi;
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ %
+ vardef NumerotationPDF=
+ n:=Depart;
+ pair B;pair C;pair vdepla;
+ if Niveau=3:
+ B=iso(A1,A2,A3);
+ C=symetrie(B,A2,A3);
+ for k=1 upto Lignes:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ if k mod 2=1:
+ nbv:=(k-1)*1.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ else:
+ nbv:=(k-1)*1.5+0.5;
+ if l mod 2=1:
+ vdepla:=(Cote*cm*((l-1) div 2),nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(Cote*cm*((l-1) div 2),(nbv*Cote*cm*sqrt(3)/3))+(xpart(C-B),-ypart(C-B));
+ fi;
+ fi;
+ label(LATEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=4:
+ B=iso(A1,A2,A3,A4);
+ for k=1 upto Lignes:
+ for l=1 upto Colonnes:
+ n:=n+1;
+ vdepla:=Cote*cm*((l-1),(k-1));
+ label(LATEX(decimal(n)),B shifted vdepla);
+ endfor;
+ endfor;
+ elseif Niveau=6:
+ B=iso(A1,A2,A3,A4,A5,A6);
+ C=symetrie(B,A3,A4);
+ for k=1 upto Lignes-1:
+ for l=1 upto 2*Colonnes-1:
+ n:=n+1;
+ nbv:=(k-1)*3;
+ if l mod 2=1:
+ vdepla:=(1.5*Cote*cm*(l-1)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3);
+ else:
+ vdepla:=(1.5*Cote*cm*(l-2)+1.5*Cote*cm,nbv*Cote*cm*sqrt(3)/3)+(C-B);
+ fi;
+ if k=Lignes-1:
+ if l mod 2=1:
+ label(LATEX(decimal(n)),B shifted vdepla);
+ else:
+ n:=n-1;
+ fi;
+ else:
+ label(LATEX(decimal(n)),B shifted vdepla);
+ fi;
+ endfor;
+ endfor;
+ fi;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}
+
+\def\MPReseauCode{%
+ boolean Before,Numerote,Backgrounds,After;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ pair basei,basej;
+ basei=\useKV[Pavage]{Basei};
+ basej=\useKV[Pavage]{Basej};
+ vardef PavageReseau=
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes -1:
+ trace Motif shifted (k*basei+l*basej);
+ endfor;
+ endfor;
+ enddef;
+ vardef Numerotation=
+ n:=0;
+ k:=0;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ B[0]=A[0];
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes -1:
+ n:=n+1;
+ label(decimal(n),B[0] shifted(k*basei+l*basej));
+ endfor;
+ endfor;
+ enddef;
+ vardef PlacePointSupport=
+ pair M[][];
+ n:=0;
+ k:=0;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ NbSommet:=k;
+ for k=0 upto Lignes-1:
+ for l=0 upto Colonnes -1:
+ n:=n+1;
+ for m=1 upto NbSommet:
+ M[n][m]=A[m] shifted (k*basei+l*basej);
+ endfor;
+ endfor;
+ endfor;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}
+
+\def\MPPeriodiqueCode{%
+ boolean Before,Numerote,Backgrounds,After;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ pair basei,basej;
+ vardef PavagePeriodique=
+ basei=iso(A1,A2)-iso(A1,A0);
+ basej=iso(A0,A3)-iso(A1,A0);
+ path CadrePavage;
+ pair Cpa[];
+ Cpa1=(0,ypart(-2*basej));
+ Cpa2=(xpart(2*Colonnes*basei),ypart(-2*basej));
+ Cpa3=(xpart(2*Colonnes*basei),ypart(2*Lignes*basej));
+ Cpa4=(0,ypart(2*Lignes*basej));
+ CadrePavage=Cpa1--Cpa2--Cpa3--Cpa4--cycle;
+ %drawarrow iso(A1,A0)--(iso(A1,A0)+basei);
+ %drawarrow iso(A1,A0)--(iso(A1,A0)+basej);
+ picture BlocContour,BlocPavage;
+ BlocContour=image(
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ fill Motif shifted (2*l*basei+2*k*basej) withcolor ColPavage;
+ fill symetrie(Motif,iso(A1,A2)) shifted (2*l*basei+2*k*basej) withcolor ColPavage;
+ trace Motif shifted (2*l*basei+2*k*basej);
+ trace symetrie(Motif,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ endfor;
+ endfor;
+ drawoptions();
+ );
+ BlocPavage=image(
+ trace BlocContour;
+ %trace BlocContour shifted(4*basei+2*basej);
+ clip currentpicture to CadrePavage;
+ trace CadrePavage withpen pencircle scaled 2;
+ );
+ BlocPavage
+ enddef;
+ vardef Numerotation=
+ n:=-1;
+ pair ISO;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=B[0] shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0.2,0))) and (ypart(ISO)<ypart(Cpa4-u*(0.2,0))):
+ label(decimal(n),ISO);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ %2eme tour
+ n:=-1;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=symetrie(B[0],iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0.2,0))) and (ypart(ISO)<ypart(Cpa4-u*(0.2,0))):
+ label(decimal(n+1),ISO);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ enddef;
+ vardef PlacePointSupport=
+ pair QuadA[],QuadB[],QuadC[],QuadD[];
+ n:=-1;
+ pair ISO;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=B[0] shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1)) and (xpart(ISO)<xpart(Cpa2)) and (ypart(ISO)>ypart(Cpa1)) and (ypart(ISO)<ypart(Cpa4)):
+ QuadA[n]=A0 shifted (2*l*basei+2*k*basej);
+ QuadB[n]=A1 shifted (2*l*basei+2*k*basej);
+ QuadC[n]=A2 shifted (2*l*basei+2*k*basej);
+ QuadD[n]=A3 shifted (2*l*basei+2*k*basej);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ %2eme tour
+ n:=-1;
+ for k=-Lignes upto Lignes+1:
+ for l=-1 upto Colonnes+1:
+ n:=n+2;
+ ISO:=symetrie(B[0],iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ if (xpart(ISO)>xpart(Cpa1+u*(0.1,0))) and (xpart(ISO)<xpart(Cpa2)) and (ypart(ISO)>ypart(Cpa1)) and (ypart(ISO)<ypart(Cpa4)):
+ QuadA[n+1]=symetrie(A0,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ QuadB[n+1]=symetrie(A1,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ QuadC[n+1]=symetrie(A2,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ QuadD[n+1]=symetrie(A3,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+ else:
+ n:=n-2;
+ fi;
+ endfor;
+ endfor;
+ enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}
+
+\def\MPPavageImageCode{%
+ boolean Before,Numerote,Backgrounds,After;
+ Before=\useKV[Pavage]{Before};
+ After=\useKV[Pavage]{After};
+ Numerote=\useKV[Pavage]{Numerotation};
+ Backgrounds=\useKV[Pavage]{Backgrounds};
+ color ColPavage,ColArrierePlan;
+ ColPavage=\useKV[Pavage]{Couleur};
+ ColArrierePlan=if Backgrounds:\useKV[Pavage]{ArrierePlan} else:ColPavage fi;
+ Cote=\useKV[Pavage]{Cote};
+ Lignes=\useKV[Pavage]{Lignes};
+ Colonnes=\useKV[Pavage]{Colonnes};
+ Niveau=\useKV[Pavage]{Niveau};
+ Depart=\useKV[Pavage]{Depart};
+ pair basei,basej;
+ %basei=\useKV[Pavage]{Basei};
+ %basej=\useKV[Pavage]{Basej};
+ vardef PavageImage=
+ basei=(rotation(O2,O1,-120)-O4);
+ basej:=(rotation(O5,O1,-120)-O5);
+ path CadrePavage;
+ pair Cpa[];
+ Cpa1=(0,ypart(-2*basej));
+ Cpa2=(xpart(2*Colonnes*basei),ypart(-2*basej));
+ Cpa3=(xpart(2*Colonnes*basei),ypart(2*Lignes*basej));
+ Cpa4=(0,ypart(2*Lignes*basej));
+ CadrePavage=Cpa1--Cpa2--Cpa3--Cpa4--cycle;
+ %drawarrow iso(A1,A0)--(iso(A1,A0)+basei);
+ %drawarrow iso(A1,A0)--(iso(A1,A0)+basej);
+ picture BlocContour,BlocPavage;
+ BlocContour=image(
+ for k=0 upto Lignes:
+ for l=0 upto Colonnes:
+ %fill Motif shifted (l*basei+k*basej) withcolor Cornsilk;
+ trace Motif shifted (l*basei+k*basej);
+ endfor;
+ endfor;
+ drawoptions();
+ );
+ BlocPavage=image(
+ trace BlocContour;
+ %trace BlocContour shifted(4*basei+2*basej);
+ %clip currentpicture to CadrePavage;
+ %trace CadrePavage withpen pencircle scaled 2;
+ );
+ BlocPavage
+ enddef;
+% vardef Numerotation=
+% n:=-1;
+% pair ISO;
+% for k=-Lignes upto Lignes+1:
+% for l=-1 upto Colonnes+1:
+% n:=n+2;
+% ISO:=B[0] shifted (2*l*basei+2*k*basej);
+% if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0.2,0))%) and (ypart(ISO)<ypart(Cpa4-u*(0.2,0))):
+% label(decimal(n),ISO);
+% else:
+% n:=n-2;
+% fi;
+% endfor;
+% endfor;
+% %2eme tour
+% n:=-1;
+% for k=-Lignes upto Lignes+1:
+% for l=-1 upto Colonnes+1:
+% n:=n+2;
+% ISO:=symetrie(B[0],iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+% if (xpart(ISO)>xpart(Cpa1+u*(0.2,0))) and (xpart(ISO)<xpart(Cpa2-u*(0.2,0))) and (ypart(ISO)>ypart(Cpa1+u*(0.2,0))) and (ypart(ISO)<ypart(Cpa4-u*(0.2,0))):
+% label(decimal(n+1),ISO);
+% else:
+% n:=n-2;
+% fi;
+% endfor;
+% endfor;
+% enddef;
+% vardef PlacePointSupport=
+% pair QuadA[],QuadB[],QuadC[],QuadD[];
+% n:=-1;
+% pair ISO;
+% for k=-Lignes upto Lignes+1:
+% for l=-1 upto Colonnes+1:
+% n:=n+2;
+% ISO:=B[0] shifted (2*l*basei+2*k*basej);
+% if (xpart(ISO)>xpart(Cpa1)) and (xpart(ISO)<xpart(Cpa2)) and (ypart(ISO)>ypart(Cpa1)) and (ypart(ISO)<ypart(Cpa4)):
+% QuadA[n]=A0 shifted (2*l*basei+2*k*basej);
+% QuadB[n]=A1 shifted (2*l*basei+2*k*basej);
+% QuadC[n]=A2 shifted (2*l*basei+2*k*basej);
+% QuadD[n]=A3 shifted (2*l*basei+2*k*basej);
+% else:
+% n:=n-2;
+% fi;
+% endfor;
+% endfor;
+% %2eme tour
+% n:=-1;
+% for k=-Lignes upto Lignes+1:
+% for l=-1 upto Colonnes+1:
+% n:=n+2;
+% ISO:=symetrie(B[0],iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+% if (xpart(ISO)>xpart(Cpa1+u*(0.1,0))) and (xpart(ISO)<xpart(Cpa2)) and (ypart(ISO)>ypart(Cpa1)) and (ypart(ISO)<ypart(Cpa4)):
+% QuadA[n+1]=symetrie(A0,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+% QuadB[n+1]=symetrie(A1,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+% QuadC[n+1]=symetrie(A2,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+% QuadD[n+1]=symetrie(A3,iso(A1,A2)) shifted (2*l*basei+2*k*basej);
+% else:
+% n:=n-2;
+% fi;
+% endfor;
+% endfor;
+% enddef;
+ vardef EffectuerTraces=
+ \useKV[Pavage]{Traces}
+ enddef;
+}
+
+\def\MPPavageImage{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPPavageImageCode
+ picture Motif;
+ if Before:
+ \PfCImagePavage
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ picture BaseImage;
+ BaseImage=image(
+ trace fullsquare scaled 1cm;
+ );
+ Motif=BaseImage;
+ fi;
+ trace PavageImage;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mplibcode}
+ \fi
+}
+
+\def\MPPeriodique{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPPeriodiqueCode
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=(0,0)--u*(1,-2)--u*(2,0.5)--u*(0.75,1)--cycle;
+ fi;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ B[0]=A[0];
+ k:=0;
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ trace PavagePeriodique;
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[\MPPeriodiqueCode]
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=(0,0)--u*(1,-2)--u*(2,0.5)--u*(0.75,1)--cycle;
+ fi;
+ pair A[],B[];
+ A[0]=point(0) of Motif;
+ B[0]=A[0];
+ k:=0;
+ forever:
+ k:=k+1;
+ A[k]=point(k) of Motif;
+ B[0]:=B[0]+A[k];
+ exitif A[k]=A[0];
+ endfor;
+ B[0]:=B[0]/k;
+ trace PavagePeriodique;
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mpost}
+ \fi
+}
+
+\def\MPReseau{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPReseauCode
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)--u*(0.75,0)--u*(1,0.5)--u*(0.25,0.5)--cycle;
+ fi;
+ PavageReseau;
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\MPReseauCode}]
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)--u*(0.75,0)--u*(1,0.5)--u*(0.25,0.5)--cycle;
+ fi;
+ PavageReseau;
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mpost}
+ \fi
+}
+
+\def\MPRegulier{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPReseauRegulier
+ trace PavageRegulier(Niveau);
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\MPReseauRegulier}]
+ trace PavageRegulier(Niveau);
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mpost}
+ \fi
+}%
+
+\def\MPPavage{%
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}%
+ \MPPavageBase
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)..u*(0.25,.1)..u*(0.5,0.7)..u*(1,1);
+ fi;
+ if Demo:
+ trace pavagescar(Motif,0,ColPavage);
+ else:
+ trace pavages(Motif,Niveau,ColPavage);
+ fi;
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\MPPavageBase}]
+ path Motif;
+ if Before:
+ Motif=\useKV[Pavage]{Motif};
+ else:
+ Motif=u*(0,0)..u*(0.25,.1)..u*(0.5,0.7)..u*(1,1);
+ fi;
+ trace pavages(Motif,Niveau,ColPavage);
+ PlacePointSupport;
+ if Numerote:
+ Numerotation;
+ fi;
+ if After:
+ EffectuerTraces;
+ fi;
+ \end{mpost}
+ \fi%
+}
+
+\NewDocumentCommand\Pavage{o}{%
+ \useKVdefault[Pavage]%
+ \setKV[Pavage]{#1}%
+ \ifboolKV[Pavage]{Regulier}{%
+ \MPRegulier%
+ }{%
+ \ifboolKV[Pavage]{SemiRegulier}{%
+ %
+ }{%
+ \ifboolKV[Pavage]{Reseau}{%
+ \MPReseau
+ }{%
+ \ifboolKV[Pavage]{Periodique}{%
+ \MPPeriodique%
+ }{%
+ \ifboolKV[Pavage]{Image}{%
+ \MPPavageImage%
+ }{%
+ \MPPavage%
+ }%
+ }%
+ }%
+ }%
+ }%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCRLE.tex b/macros/latex/contrib/profcollege/latex/PfCRLE.tex
index 280c5aef85..a8f035a577 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRLE.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRLE.tex
@@ -18,93 +18,114 @@
\BuildRLE{\the\toklisterle}%
}
+\def\BuildRLECode{%
+ Taille:=\useKV[RLE]{Taille};
+ u:=\useKV[RLE]{Unite};
+ boolean Solution,Enonce;
+ Solution:=\useKV[RLE]{Solution};
+ Enonce:=\useKV[RLE]{Enonce};
+ %
+ color RLEFill;
+ RLEFill=white;
+ %
+ numeric nbretenir[][];
+ %
+ vardef NombreLigne(text t)=
+ retiens:=0;
+ nblignes:=0;
+ for p_=t:
+ retiens:=retiens+p_;
+ if retiens=Taille:
+ nblignes:=nblignes+1;
+ retiens:=0;
+ fi;
+ endfor;
+ enddef;
+ %
+ path Square;
+ Square=unitsquare scaled u;
+ %
+ vardef RLE(text t)=
+ nbcoups:=0;
+ nbcases:=0;
+ nbcaseslignes:=0;
+ cptretiensnb:=0;
+ cptretiensnblignes:=1;
+ for p_=t:
+ if p_=0:
+ cptretiensnb:=cptretiensnb+1;
+ nbretenir[cptretiensnblignes][cptretiensnb]=p_;
+ RLEFill:=black;
+ else:
+ nbcoups:=nbcoups+1;
+ for l=0 upto p_-1:
+ if Solution: fill ((Square scaled 0.95) shifted(u*((nbcases mod Taille)+l,-(nbcases div Taille))+u*(0.025,0.025))) withcolor RLEFill; fi;
+ trace (Square shifted(u*((nbcases mod Taille)+l,-(nbcases div Taille))));
+ endfor;
+ nbcaseslignes:=nbcaseslignes+p_;
+ nbcases:=nbcases+p_;
+ if (nbcaseslignes mod Taille)=0:
+ RLEFill:=white;
+ cptretiensnb:=cptretiensnb+1;
+ nbretenir[cptretiensnblignes][cptretiensnb]=p_;
+ cptretiensnblignes:=cptretiensnblignes+1;
+ cptretiensnb:=0;
+ else:
+ if RLEFill=white: RLEFill:=black else: RLEFill:=white fi;
+ cptretiensnb:=cptretiensnb+1;
+ nbretenir[cptretiensnblignes][cptretiensnb]=p_;
+ fi;
+ fi;
+ endfor;
+ enddef;
+ %
+ string Sequence[];
+ %
+ boolean STOP;
+ STOP:=false;
+ %
+ vardef Affichage=
+ for k=1 upto nblignes:
+ Sequence[k]=decimal(nbretenir[k][1]);
+ n:=1;
+ forever:
+ n:=n+1;
+ if unknown nbretenir[k][n]:
+ STOP:=true;
+ else:
+ Sequence[k]:=Sequence[k]&","&decimal(nbretenir[k][n]);
+ fi;
+ exitif STOP;
+ endfor;
+ label.rt(TEX(Sequence[k]),u*(Taille+1,-k+1+0.5));
+ STOP:=false;
+ endfor;
+ enddef;
+ %
+ vardef AffichagePDF=
+ for k=1 upto nblignes:
+ Sequence[k]=decimal(nbretenir[k][1]);
+ n:=1;
+ forever:
+ n:=n+1;
+ if unknown nbretenir[k][n]:
+ STOP:=true;
+ else:
+ Sequence[k]:=Sequence[k]&","&decimal(nbretenir[k][n]);
+ fi;
+ exitif STOP;
+ endfor;
+ label.rt(LATEX(Sequence[k]),u*(Taille+1,-k+1+0.5));
+ STOP:=false;
+ endfor;
+ enddef;
+}
+
\NewDocumentCommand\BuildRLE{m}{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- Taille:=\useKV[RLE]{Taille};
- u:=\useKV[RLE]{Unite};
- boolean Solution,Enonce;
- Solution:=\useKV[RLE]{Solution};
- Enonce:=\useKV[RLE]{Enonce};
-
- color RLEFill;
- RLEFill=white;
-
- numeric nbretenir[][];
-
- vardef NombreLigne(text t)=
- retiens:=0;
- nblignes:=0;
- for p_=t:
- retiens:=retiens+p_;
- if retiens=Taille:
- nblignes:=nblignes+1;
- retiens:=0;
- fi;
- endfor;
- enddef;
-
- path Square;
- Square=unitsquare scaled u;
-
- vardef RLE(text t)=
- nbcoups:=0;
- nbcases:=0;
- nbcaseslignes:=0;
- cptretiensnb:=0;
- cptretiensnblignes:=1;
- for p_=t:
- if p_=0:
- cptretiensnb:=cptretiensnb+1;
- nbretenir[cptretiensnblignes][cptretiensnb]=p_;
- RLEFill:=black;
- else:
- nbcoups:=nbcoups+1;
- for l=0 upto p_-1:
- if Solution: fill ((Square scaled 0.95) shifted(u*((nbcases mod Taille)+l,-(nbcases div Taille))+u*(0.025,0.025))) withcolor RLEFill; fi;
- trace (Square shifted(u*((nbcases mod Taille)+l,-(nbcases div Taille))));
- endfor;
- nbcaseslignes:=nbcaseslignes+p_;
- nbcases:=nbcases+p_;
- if (nbcaseslignes mod Taille)=0:
- RLEFill:=white;
- cptretiensnb:=cptretiensnb+1;
- nbretenir[cptretiensnblignes][cptretiensnb]=p_;
- cptretiensnblignes:=cptretiensnblignes+1;
- cptretiensnb:=0;
- else:
- if RLEFill=white: RLEFill:=black else: RLEFill:=white fi;
- cptretiensnb:=cptretiensnb+1;
- nbretenir[cptretiensnblignes][cptretiensnb]=p_;
- fi;
- fi;
- endfor;
- enddef;
-
- string Sequence[];
-
- boolean STOP;
- STOP:=false;
-
- vardef Affichage=
- for k=1 upto nblignes:
- Sequence[k]=decimal(nbretenir[k][1]);
- n:=1;
- forever:
- n:=n+1;
- if unknown nbretenir[k][n]:
- STOP:=true;
- else:
- Sequence[k]:=Sequence[k]&","&decimal(nbretenir[k][n]);
- fi;
- exitif STOP;
- endfor;
- label.rt(TEX(Sequence[k]),u*(Taille+1,-k+1+0.5));
- STOP:=false;
- endfor;
- enddef;
-
+ \BuildRLECode
NombreLigne(#1);
RLE(#1);
if Enonce:
@@ -112,94 +133,11 @@
fi;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={%
- Taille:=\useKV[RLE]{Taille};
- u:=\useKV[RLE]{Unite};
- boolean Solution,Enonce;
- Solution:=\useKV[RLE]{Solution};
- Enonce:=\useKV[RLE]{Enonce};
- }]
- color RLEFill;
- RLEFill=white;
-
- numeric nbretenir[][];
-
- vardef NombreLigne(text t)=
- retiens:=0;
- nblignes:=0;
- for p_=t:
- retiens:=retiens+p_;
- if retiens=Taille:
- nblignes:=nblignes+1;
- retiens:=0;
- fi;
- endfor;
- enddef;
-
- path Square;
- Square=unitsquare scaled u;
-
- vardef RLE(text t)=
- nbcoups:=0;
- nbcases:=0;
- nbcaseslignes:=0;
- cptretiensnb:=0;
- cptretiensnblignes:=1;
- for p_=t:
- if p_=0:
- cptretiensnb:=cptretiensnb+1;
- nbretenir[cptretiensnblignes][cptretiensnb]=p_;
- RLEFill:=black;
- else:
- nbcoups:=nbcoups+1;
- for l=0 upto p_-1:
- if Solution: fill ((Square scaled 0.95) shifted(u*((nbcases mod Taille)+l,-(nbcases div Taille))+u*(0.025,0.025))) withcolor RLEFill; fi;
- trace (Square shifted(u*((nbcases mod Taille)+l,-(nbcases div Taille))));
- endfor;
- nbcaseslignes:=nbcaseslignes+p_;
- nbcases:=nbcases+p_;
- if (nbcaseslignes mod Taille)=0:
- RLEFill:=white;
- cptretiensnb:=cptretiensnb+1;
- nbretenir[cptretiensnblignes][cptretiensnb]=p_;
- cptretiensnblignes:=cptretiensnblignes+1;
- cptretiensnb:=0;
- else:
- if RLEFill=white: RLEFill:=black else: RLEFill:=white fi;
- cptretiensnb:=cptretiensnb+1;
- nbretenir[cptretiensnblignes][cptretiensnb]=p_;
- fi;
- fi;
- endfor;
- enddef;
-
- string Sequence[];
-
- boolean STOP;
- STOP:=false;
-
- vardef Affichage=
- for k=1 upto nblignes:
- Sequence[k]=decimal(nbretenir[k][1]);
- n:=1;
- forever:
- n:=n+1;
- if unknown nbretenir[k][n]:
- STOP:=true;
- else:
- Sequence[k]:=Sequence[k]&","&decimal(nbretenir[k][n]);
- fi;
- exitif STOP;
- endfor;
- label.rt(LATEX(Sequence[k]),u*(Taille+1,-k+1+0.5));
- STOP:=false;
- endfor;
- enddef;
-
+ \begin{mpost}[mpsettings={\BuildRLECode}]
NombreLigne(#1);
RLE(#1);
if Enonce:
- Affichage;
+ AffichagePDF;
fi;
\end{mpost}
\fi
diff --git a/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex b/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
index 2c22e2b45a..c2a4d95954 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRappelsFormules.tex
@@ -3,43 +3,37 @@
%%%
\setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carr\'e,Solide=pav\'e,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white,EchelleEspace=70,Echelle=1cm}
+\def\MPFigureCarreCode{%
+ u:=\useKV[ClesFormule]{Echelle};
+ vardef FigCarre=
+ drawoptions(dashed dashpattern(on1cm));
+ pair A,B,C,D;
+ A=u*(1,1);
+ B-A=u*(2,0);
+ C=rotation(A,B,-90);
+ D-C=A-B;
+ draw polygone(A,B,C,D);
+ draw codeperp(A,B,C,5);
+ draw codeperp(B,C,D,5);
+ draw codeperp(C,D,A,5);
+ draw codeperp(D,A,B,5);
+ marque_s:=marque_s/3;
+ draw Codelongueur(A,B,B,C,C,D,D,A,2);
+ marque_s:=marque_s*3;
+ draw appelation(A,B,-3mm,btex $c$ etex);
+ enddef;
+}%
+
\def\MPFigureCarre{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- u:=\useKV[ClesFormule]{Echelle};
- drawoptions( dashed dashpattern(on1cm));
- pair A,B,C,D;
- A=u*(1,1);
- B-A=u*(2,0);
- C=rotation(A,B,-90);
- D-C=A-B;
- draw polygone(A,B,C,D);
- draw codeperp(A,B,C,5);
- draw codeperp(B,C,D,5);
- draw codeperp(C,D,A,5);
- draw codeperp(D,A,B,5);
- marque_s:=marque_s/3;
- draw Codelongueur(A,B,B,C,C,D,D,A,2);
- marque_s:=marque_s*3;
- draw appelation(A,B,-3mm,btex $c$ etex);
+ \MPFigureCarreCode
+ FigCarre;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={u:=\useKV[ClesFormule]{Echelle};}]
- pair A,B,C,D;
- A=u*(1,1);
- B-A=u*(2,0);
- C=rotation(A,B,-90);
- D-C=A-B;
- draw polygone(A,B,C,D);
- draw codeperp(A,B,C,5);
- draw codeperp(B,C,D,5);
- draw codeperp(C,D,A,5);
- draw codeperp(D,A,B,5);
- marque_s:=marque_s/3;
- draw Codelongueur(A,B,B,C,C,D,D,A,2);
- marque_s:=marque_s*3;
- draw appelation(A,B,-3mm,btex $c$ etex);
+ \begin{mpost}[mpsettings={\MPFigureCarreCode}]
+ FigCarre;
\end{mpost}
\fi
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
index d7878556d8..aed889bfcb 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
@@ -1,968 +1,556 @@
%%%
% Fractions
%%%
-\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
-
-\def\MPFractionTriangle#1#2#3#4#5{%
- % #1 longueur du c\^ot\'e
- % #2 partage sur le c\^ot\'e
- % #3 num
- % #4 d\'eno (attention : = #2^2)
- % #5 couleur
- \ifluatex
- \mplibforcehmode
- \begin{mplibcode}
- nbtriangle=0;
-
- vardef Ligne(expr longueur)=
- for k=0 upto 2*(longueur-1):
- nbtriangle:=nbtriangle+1;
- if (k mod 2)=0:
- M[nbtriangle]=(Tria shifted(0.5*k*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- else:
- M[nbtriangle]=(Trir shifted(0.5*(k-1)*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- fi;
- endfor;
- enddef;
-
- pair A,B,C;
- A=u*(0.5,0.5);
- B-A=(#1,0);
- C=rotation(B,A,60);
-
- nbparts:=#2;
-
- path M[];
-
- path Tria,Trir;
- Tria=polygone(A,(1/nbparts)[A,B],(1/nbparts)[A,C]);
- Trir=symetrie(Tria,(1/nbparts)[A,B],(1/nbparts)[A,C]);
-
- for k=nbparts downto 1:
- Ligne(k);
- endfor;
-
- m:=#3 div #4;
-
- drawoptions(shifted(m*(#1+1cm,0)));
- for l=1 upto (#3 mod #4):
- fill M[l] withcolor #5;
- for k=1 upto nbparts:
- trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
- trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
- trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
- endfor;
- endfor;
-
- for l=0 upto (m-1):
- drawoptions(shifted(l*(#1+1cm,0)));
- remplis polygone(A,B,C) withcolor #5;
- for k=1 upto nbparts:
- trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
- trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
- trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
- endfor;
- endfor;
- \end{mplibcode}
- \else
- \begin{mpost}
- nbtriangle=0;
-
- vardef Ligne(expr longueur)=
- for k=0 upto 2*(longueur-1):
- nbtriangle:=nbtriangle+1;
- if (k mod 2)=0:
- M[nbtriangle]=(Tria shifted(0.5*k*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- else:
- M[nbtriangle]=(Trir shifted(0.5*(k-1)*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- fi;
- endfor;
- enddef;
-
- pair A,B,C;
- A=u*(0.5,0.5);
- B-A=(#1,0);
- C=rotation(B,A,60);
-
- nbparts:=#2;
-
- path M[];
-
- path Tria,Trir;
- Tria=polygone(A,(1/nbparts)[A,B],(1/nbparts)[A,C]);
- Trir=symetrie(Tria,(1/nbparts)[A,B],(1/nbparts)[A,C]);
-
- for k=nbparts downto 1:
- Ligne(k);
- endfor;
-
- m:=#3 div #4;
-
- drawoptions(shifted(m*(#1+1cm,0)));
- for l=1 upto (#3 mod #4):
- fill M[l] withcolor #5;
- for k=1 upto nbparts:
- trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
- trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
- trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
- endfor;
- endfor;
-
- for l=0 upto (m-1):
- drawoptions(shifted(l*(#1+1cm,0)));
- remplis polygone(A,B,C) withcolor #5;
- for k=1 upto nbparts:
- trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
- trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
- trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
- endfor;
- endfor;
- \end{mpost}
- \fi
- }
-
- \def\MPFractionTriangleH#1#2#3#4#5#6{
- % #1 longueur du c\^ot\'e
- % #2 partage sur le c\^ot\'e
- % #3 num
- % #4 d\'eno (attention : = #2^2)
- % #5 couleur
- % #6 \'epaisseur
- \ifluatex
- \mplibforcehmode
- \begin{mplibcode}
- nbtriangle=0;
-
- vardef Ligne(expr longueur)=
- for k=0 upto 2*(longueur-1):
- nbtriangle:=nbtriangle+1;
- if (k mod 2)=0:
- M[nbtriangle]=(Tria shifted(0.5*k*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- else:
- M[nbtriangle]=(Trir shifted(0.5*(k-1)*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- fi;
- endfor;
- enddef;
-
- pair A,B,C;
- A=u*(0.5,0.5);
- B-A=(#1,0);
- C=rotation(B,A,60);
-
- nbparts:=#2;
-
- path M[];
-
- path Tria,Trir;
- Tria=polygone(A,(1/nbparts)[A,B],(1/nbparts)[A,C]);
- Trir=symetrie(Tria,(1/nbparts)[A,B],(1/nbparts)[A,C]);
-
- for k=nbparts downto 1:
- Ligne(k);
- endfor;
-
- m:=#3 div #4;
-
- for l=1 upto (#3 mod #4):
- drawoptions(withpen pencircle scaled #6);
- trace hachurage(M[l] shifted(m*(#1+1cm,0)),90,0.2,0) withcolor #5;%M[l] withcolor #5;
- for k=1 upto nbparts:
- drawoptions(withpen pencircle scaled #6);
- trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]) shifted(m*(#1+1cm,0));
- trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]) shifted(m*(#1+1cm,0));
- trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]) shifted(m*(#1+1cm,0));
- endfor;
- endfor;
-
- for l=0 upto (m-1):
- drawoptions(shifted(l*(#1+1cm,0)) withpen pencircle scaled #6);
- trace hachurage(polygone(A,B,C),90,0.2,0) withcolor #5;%polygone(A,B,C) withcolor #5;
- drawoptions(shifted(l*(#1+1cm,0)) withpen pencircle scaled #6);
- for k=1 upto nbparts:
- trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
- trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
- trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
- endfor;
- endfor;
- \end{mplibcode}
- \else
- \begin{mpost}
- nbtriangle=0;
-
- vardef Ligne(expr longueur)=
- for k=0 upto 2*(longueur-1):
- nbtriangle:=nbtriangle+1;
- if (k mod 2)=0:
- M[nbtriangle]=(Tria shifted(0.5*k*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- else:
- M[nbtriangle]=(Trir shifted(0.5*(k-1)*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
- fi;
- endfor;
- enddef;
-
- pair A,B,C;
- A=u*(0.5,0.5);
- B-A=(#1,0);
- C=rotation(B,A,60);
-
- nbparts:=#2;
-
- path M[];
-
- path Tria,Trir;
- Tria=polygone(A,(1/nbparts)[A,B],(1/nbparts)[A,C]);
- Trir=symetrie(Tria,(1/nbparts)[A,B],(1/nbparts)[A,C]);
-
- for k=nbparts downto 1:
- Ligne(k);
- endfor;
-
- diversite=floor(uniformdeviate(#2**2-#3-1));
-
- for k=(1+diversite) upto (#3+diversite):
- drawoptions(withpen pencircle scaled #6);
- trace hachurage(M[k],90,0.2,0) withcolor #5;
- endfor;
- drawoptions(withpen pencircle scaled #6);
-
- for k=1 upto nbparts:
- trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
- trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
- trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
- endfor;
- \end{mpost}
- \fi
- }
-
-\def\MPFractionRegulier#1#2#3#4#5{%
- % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur
- \ifluatex
- \mplibforcehmode
- \begin{mplibcode}
- pair O,A[],B[];
- O=u*(0,0);
- path cc,cd;
- cc=cercles(O,#1);
- for k=0 upto #2:
- A[k]=pointarc(cc,k*(360/#2));
- endfor;
- cd=polygone(A0 for k=1 upto #2-1:,A[k] endfor);
- for k=0 upto #4-1:
- B[k]=point(k*(#2/#4)) of cd;
- endfor;
- picture fondcolore;
- fondcolore=image(
- remplis O--arccercle(B[0],B[#3 mod #4],O)--cycle withcolor #5;
- clip currentpicture to cd;
- for k=0 upto #4-1:
- draw segment(O,B[k]) cutafter cd;
- endfor;
- trace cd;
- );
- currentpicture:=nullpicture;
- m=#3 div #4;
- if (#3 mod #4)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- fill cd shifted(l*(#1*2+0.5cm,0)) withcolor #5;
- trace cd shifted(l*(#1*2+0.5cm,0));
- if #4>1:
- for k=0 upto #4-1:
- draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
- endfor;
- fi;
- endfor;
- fi;
- draw fondcolore shifted(m*(#1*2+0.5cm,0));
- draw cd shifted(m*(#1*2+0.5cm,0));
- if #4>1:
- for k=0 upto #4-1:
- draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
- endfor;
- fi;
- \end{mplibcode}
- \else
- \begin{mpost}
- pair O,A[],B[];
- O=u*(0,0);
- path cc,cd;
- cc=cercles(O,#1);
- for k=0 upto #2:
- A[k]=pointarc(cc,k*(360/#2));
- endfor;
- cd=polygone(A0 for k=1 upto #2-1:,A[k] endfor);
- for k=0 upto #4-1:
- B[k]=point(k*(#2/#4)) of cd;
- endfor;
- picture fondcolore;
- fondcolore=image(
- remplis O--arccercle(B[0],B[#3 mod #4],O)--cycle withcolor #5;
- clip currentpicture to cd;
- for k=0 upto #4-1:
- draw segment(O,B[k]) cutafter cd;
- endfor;
- trace cd;
- );
- currentpicture:=nullpicture;
- m=#3 div #4;
- if (#3 mod #4)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- fill cd shifted(l*(#1*2+0.5cm,0)) withcolor #5;
- trace cd shifted(l*(#1*2+0.5cm,0));
- if #4>1:
- for k=0 upto #4-1:
- draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
- endfor;
- fi;
- endfor;
- fi;
- draw fondcolore shifted(m*(#1*2+0.5cm,0));
- draw cd shifted(m*(#1*2+0.5cm,0));
- if #4>1:
- for k=0 upto #4-1:
- draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
- endfor;
- fi;
- \end{mpost}
- \fi
+\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Eprouvette=false,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
+
+\def\MPFractionEprouvetteCode{%
+ Hauteur=\useKV[ClesFraction]{Longueur};
+ color ColEprou;
+ ColEprou=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ vardef eprouvette(expr deno,nume)=
+ picture PfCEprou,PfCEprouGrad;
+ path Cc;
+ Cc=cercles((0,0),1u) yscaled 0.2;
+ PfCEprouGrad=image(
+ trace Cc shifted((0,Hauteur));
+ trace subpath(0,length Cc/2) of Cc dashed evenly;
+ trace subpath(length Cc/2,length Cc) of Cc;
+ trace segment(point(0) of Cc,point(0) of Cc shifted((0,Hauteur)));
+ trace segment(point(length Cc/2) of Cc,point(length Cc/2) of (Cc shifted((0,Hauteur))));
+ for k=1 upto (deno-1):
+ trace (subpath(length Cc/2,length Cc*0.7) of Cc) shifted ((k/deno)*(0,Hauteur));
+ endfor;
+ );
+ m=nume div deno;
+ if (nume mod deno)=0:m:=m-1; fi;
+ PfCEprou=image(%
+ path Volume,VolumeComplet;
+ Volume=(point(0) of Cc)--(subpath(0,length Cc/2) of Cc shifted(((nume mod deno)/deno)*(0,Hauteur)))--(point(length Cc/2) of Cc shifted(((nume mod deno)/deno)*(0,Hauteur)))--(subpath(length Cc/2,length Cc) of Cc)--cycle;
+ VolumeComplet=(point(0) of Cc)--(subpath(0,length Cc/2) of Cc shifted((0,Hauteur)))--(point(length Cc/2) of Cc)--(subpath(length Cc/2,length Cc) of Cc)--cycle;
+ if m>0:
+ for l=0 upto (m-1):
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(VolumeComplet shifted(l*(3u,0)),60,0.2,0) withcolor ColEprou;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis (VolumeComplet shifted(l*(3u,0))) withcolor ColEprou;
+ fi;
+ fi;
+ endfor;
+ fi;
+ if (nume mod deno)<>0:
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(Volume shifted(m*(3u,0)),60,0.2,0) withcolor ColEprou;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis (Volume shifted(m*(3u,0))) withcolor ColEprou;
+ fi;
+ trace (Cc shifted(((nume mod deno)/deno)*(0,Hauteur))) shifted(m*(3u,0));
+ fi;
+ else:
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(VolumeComplet shifted(m*(3u,0)),60,0.2,0) withcolor ColEprou;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis (VolumeComplet shifted(m*(3u,0))) withcolor ColEprou;
+ fi;
+ fi;
+ fi;
+ for k=0 upto m:
+ trace PfCEprouGrad shifted((3u*k,0));
+ endfor;
+ );
+ PfCEprou
+ enddef;
}
-
-\def\MPFractionRegulierH#1#2#3#4#5#6{%
- % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur, #6 épaisseur
+
+\def\MPFractionEprouvette#1#2{%
+ % #1 num
+ % #2 d\'eno
\ifluatex
- \mplibforcehmode
+ \mplibforcehmode
\begin{mplibcode}
- pair O,A[],B[];
- O=u*(0,0);
- path cc,cd;
- cc=cercles(O,#1);
- for k=0 upto #2:
- A[k]=pointarc(cc,k*(360/#2));
- endfor;
- cd=polygone(A0 for k=1 upto #2-1:,A[k] endfor);
- for k=0 upto #4-1:
- B[k]=point(k*(#2/#4)) of cd;
- endfor;
- picture fondcolore;
- fondcolore=image(%
- drawoptions(withpen pencircle scaled #6);
- trace hachurage(O--arccercle(B[0],B[#3 mod #4],O)--cycle,1.5*360/#2,0.25,0) withcolor #5;
- clip currentpicture to cd;
- drawoptions(withpen pencircle scaled #6);
- for k=0 upto #4-1:
- draw segment(O,B[k]) cutafter cd;
- endfor;
- trace cd;
- );
- currentpicture:=nullpicture;
- m=#3 div #4;
- if (#3 mod #4)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- drawoptions(withpen pencircle scaled #6);
- trace hachurage(cd shifted(l*(#1*2+0.5cm,0)),1.5*360/#2,0.25,0) withcolor #5;
- drawoptions(withpen pencircle scaled #6);
- trace cd shifted(l*(#1*2+0.5cm,0));
- if #4>1:
- for k=0 upto #4-1:
- drawoptions(withpen pencircle scaled #6);
- draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
- endfor;
- fi;
- endfor;
- fi;
- draw fondcolore shifted(m*(#1*2+0.5cm,0));
- drawoptions(withpen pencircle scaled #6);
- draw cd shifted(m*(#1*2+0.5cm,0));
- if #4>1:
- drawoptions(withpen pencircle scaled #6);
- for k=0 upto #4-1:
- draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
- endfor;
- fi;
+ \MPFractionEprouvetteCode
+ trace eprouvette(#2,#1);
\end{mplibcode}
\else
-\begin{mpost}
- pair O,A[],B[];
- O=u*(0,0);
- path cc,cd;
- cc=cercles(O,#1);
- for k=0 upto #2:
- A[k]=pointarc(cc,k*(360/#2));
- endfor;
- cd=polygone(A0 for k=1 upto #2-1:,A[k] endfor);
- for k=0 upto #4-1:
- B[k]=point(k*(#2/#4)) of cd;
- endfor;
- picture fondcolore;
- fondcolore=image(%
- drawoptions(withpen pencircle scaled #6);
- trace hachurage(O--arccercle(B[0],B[#3 mod #4],O)--cycle,1.5*360/#2,0.25,0) withcolor #5;
- clip currentpicture to cd;
- drawoptions(withpen pencircle scaled #6);
- for k=0 upto #4-1:
- draw segment(O,B[k]) cutafter cd;
- endfor;
- trace cd;
- );
- currentpicture:=nullpicture;
- m=#3 div #4;
- if (#3 mod #4)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- drawoptions(withpen pencircle scaled #6);
- trace hachurage(cd shifted(l*(#1*2+0.5cm,0)),1.5*360/#2,0.25,0) withcolor #5;
- drawoptions(withpen pencircle scaled #6);
- trace cd shifted(l*(#1*2+0.5cm,0));
- if #4>1:
- for k=0 upto #4-1:
- drawoptions(withpen pencircle scaled #6);
- draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
- endfor;
- fi;
- endfor;
- fi;
- draw fondcolore shifted(m*(#1*2+0.5cm,0));
- drawoptions(withpen pencircle scaled #6);
- draw cd shifted(m*(#1*2+0.5cm,0));
- if #4>1:
- drawoptions(withpen pencircle scaled #6);
- for k=0 upto #4-1:
- draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
- endfor;
- fi;
+ \begin{mpost}[mpsettings={\MPFractionEprouvetteCode}]
+ trace eprouvette(#2,#1);
\end{mpost}
\fi
}
-\def\MPFractionRectangle#1#2#3#4#5#6{%
- % #1 longueur, #2 largeur, #3 num, #4 deno, #5 couleur, #6 multiple
+\def\MPFractionRegulierCode{%
+ Rayon=\useKV[ClesFraction]{Rayon};
+ Cotes=\useKV[ClesFraction]{Cotes};
+ color ColPolyReg;
+ ColPolyReg=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ pair O,A[],B[];
+ O=u*(0,0);
+ path cc,cd;
+ cc=cercles(O,Rayon);
+ for k=0 upto Cotes:
+ A[k]=pointarc(cc,k*(360/Cotes));
+ endfor;
+ cd=polygone(A0 for k=1 upto Cotes-1:,A[k] endfor);
+ vardef FractionPolyReg(expr nume,deno)=
+ for k=0 upto deno-1:
+ B[k]=point(k*(Cotes/deno)) of cd;
+ endfor;
+ picture fondcolore,FractionPoly;
+ fondcolore=image(
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(O--arccercle(B[0],B[nume mod deno],O)--cycle,1.5*360/Cotes,0.25,0) withcolor ColPolyReg;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis O--arccercle(B[0],B[nume mod deno],O)--cycle withcolor ColPolyReg;
+ fi;
+ clip currentpicture to cd;
+ for k=0 upto deno-1:
+ draw segment(O,B[k]) cutafter cd;
+ endfor;
+ trace cd;
+ );
+ currentpicture:=nullpicture;
+ m=nume div deno;
+ if (nume mod deno)=0:m:=m-1; fi;
+ FractionPoly=image(
+ if m>0:
+ for l=0 upto (m-1):
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(cd shifted(l*(Rayon*2+0.5cm,0)),1.5*360/Cotes,0.25,0) withcolor ColPolyReg;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ fill cd shifted(l*(Rayon*2+0.5cm,0)) withcolor ColPolyReg;
+ fi;
+ fi;
+ trace cd shifted(l*(Rayon*2+0.5cm,0));
+ if deno>1:
+ for k=0 upto deno-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(l*(Rayon*2+0.5cm,0));
+ endfor;
+ fi;
+ endfor;
+ fi;
+ if Reponse:
+ draw fondcolore shifted(m*(Rayon*2+0.5cm,0));
+ fi;
+ draw cd shifted(m*(Rayon*2+0.5cm,0));
+ if deno>1:
+ for k=0 upto deno-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(m*(Rayon*2+0.5cm,0));
+ endfor;
+ fi;
+ );
+ FractionPoly
+ enddef;
+}%
+
+\def\MPFractionRegulier#1#2{%
+ % #1 num, #2 deno
\ifluatex
- \mplibforcehmode
+ \mplibforcehmode
\begin{mplibcode}
- pair A,B,C,D,M[],N[],R[],S[];
- A=(1,1);
- B-A=(#1,0);
- C-B=(0,#2);
- D-C=A-B;
- numeric parts;
- parts=(#4 div #6);
- for k=0 upto parts:
- M[k]=(k/parts)[A,B];
- N[k]=(k/parts)[D,C];
- endfor;
- if #6>1:
- for k=0 upto #6:
- R[k]=(k/#6)[A,D];
- S[k]=(k/#6)[B,C];
- endfor;
- fi;
- picture FondRectangle;
- FondRectangle=image(%
- draw polygone(A,B,C,D);
- for k=1 upto (parts-1):
- draw segment(M[k],N[k]);
- endfor;
- if #6>1:
- for k=1 upto (#6-1):
- draw segment(R[k],S[k]);
- endfor;
- fi;
- );
- picture FondRectangleColorie;
- FondRectangleColorie=image(%
- if #6=1:
- remplis polygone(A,M[#3 mod #4],N[#3 mod #4],D) withcolor #5;
- else:
- DDiv=(#3 mod #4) div parts;
- MMod=(#3 mod #4) mod parts;
- remplis polygone(A,B,S[DDiv],R[DDiv]) withcolor #5;
- remplis polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]) withcolor #5;
- fi;
- );
- m=#3 div #4;
- if (#3 mod #4)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto m-1:
- remplis (polygone(A,B,C,D) shifted(l*(#1+1cm,0))) withcolor #5;
- trace FondRectangle shifted(l*(#1+1cm,0));
- endfor;
- fi;
- if (#3 mod #4)<>0:
- trace FondRectangleColorie shifted(m*(#1+1cm,0));
- else:
- remplis (polygone(A,B,C,D) shifted(m*(#1+1cm,0))) withcolor #5;
- fi;
- trace FondRectangle shifted(m*(#1+1cm,0));
+ \MPFractionRegulierCode
+ trace FractionPolyReg(#1,#2);
\end{mplibcode}
\else
-\begin{mpost}
- pair A,B,C,D,M[],N[],R[],S[];
- A=(1,1);
- B-A=(#1,0);
- C-B=(0,#2);
- D-C=A-B;
- numeric parts;
- parts=(#4 div #6);
- for k=0 upto parts:
- M[k]=(k/parts)[A,B];
- N[k]=(k/parts)[D,C];
- endfor;
- if #6>1:
- for k=0 upto #6:
- R[k]=(k/#6)[A,D];
- S[k]=(k/#6)[B,C];
- endfor;
- fi;
- picture FondRectangle;
- FondRectangle=image(%
- draw polygone(A,B,C,D);
- for k=1 upto (parts-1):
- draw segment(M[k],N[k]);
- endfor;
- if #6>1:
- for k=1 upto (#6-1):
- draw segment(R[k],S[k]);
- endfor;
- fi;
- );
- picture FondRectangleColorie;
- FondRectangleColorie=image(%
- if #6=1:
- remplis polygone(A,M[#3 mod #4],N[#3 mod #4],D) withcolor #5;
- else:
- DDiv=(#3 mod #4) div parts;
- MMod=(#3 mod #4) mod parts;
- remplis polygone(A,B,S[DDiv],R[DDiv]) withcolor #5;
- remplis polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]) withcolor #5;
- fi;
- );
- m=#3 div #4;
- if (#3 mod #4)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto m-1:
- remplis (polygone(A,B,C,D) shifted(l*(#1+1cm,0))) withcolor #5;
- trace FondRectangle shifted(l*(#1+1cm,0));
- endfor;
- fi;
- if (#3 mod #4)<>0:
- trace FondRectangleColorie shifted(m*(#1+1cm,0));
- else:
- remplis (polygone(A,B,C,D) shifted(m*(#1+1cm,0))) withcolor #5;
- fi;
- trace FondRectangle shifted(m*(#1+1cm,0));
+ \begin{mpost}[mpsettings={\MPFractionRegulierCode}]
+ trace FractionPolyReg(#1,#2);
\end{mpost}
\fi
-}
-
-\def\MPFractionRectangleH#1#2#3#4#5#6#7{%
- % #1 longueur, #2 largeur, #3 num, #4 deno, #5 couleur, #6 multiple
+}%
+
+\def\MPFractionTriangleCode{%
+ Longueur:=\useKV[ClesFraction]{Longueur};
+ nbparts:=\useKV[ClesFraction]{Parts};
+ color ColTriangle;
+ ColTriangle=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ nbtriangle=0;
+ %
+ vardef Ligne(expr longueur)=
+ for k=0 upto 2*(longueur-1):
+ nbtriangle:=nbtriangle+1;
+ if (k mod 2)=0:
+ M[nbtriangle]=(Tria shifted(0.5*k*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
+ else:
+ M[nbtriangle]=(Trir shifted(0.5*(k-1)*(1/nbparts)*(B-A))) shifted((nbparts-longueur)*(1/nbparts)*(C-A));
+ fi;
+ endfor;
+ enddef;
+ %
+ pair A,B,C;
+ A=u*(0.5,0.5);
+ B-A=(Longueur,0);
+ C=rotation(B,A,60);
+ %
+ path Tria,Trir,M[];
+ Tria=polygone(A,(1/nbparts)[A,B],(1/nbparts)[A,C]);
+ Trir=symetrie(Tria,(1/nbparts)[A,B],(1/nbparts)[A,C]);
+ %
+ for k=nbparts downto 1:
+ Ligne(k);
+ endfor;
+ %
+ vardef FractionTriangle(expr nume,deno)=
+ m:=nume div deno;
+ picture RetourFraction;
+ RetourFraction=image(
+ for l=1 upto (nume mod deno):
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(M[l] shifted(m*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ fill (M[l] shifted(m*(Longueur+1cm,0))) withcolor ColTriangle;
+ fi;
+ fi;
+ for k=1 upto nbparts:
+ trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]) shifted(m*(Longueur+1cm,0));
+ trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]) shifted(m*(Longueur+1cm,0));
+ trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]) shifted(m*(Longueur+1cm,0));
+ endfor;
+ endfor;
+ %
+ for l=0 upto (m-1):
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(polygone(A,B,C) shifted(l*(Longueur+1cm,0)),90,0.2,0) withcolor ColTriangle;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis polygone(A,B,C) withcolor ColRectangle;
+ fi;
+ fi;
+ for k=1 upto nbparts:
+ trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]) shifted(l*(Longueur+1cm,0));
+ trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]) shifted(l*(Longueur+1cm,0));
+ trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]) shifted(l*(Longueur+1cm,0));
+ endfor;
+ endfor;
+ );
+ RetourFraction
+ enddef;
+}%
+
+\def\MPFractionTriangle#1#2{%
+ % #1 num #2 d\'eno (attention : = partage^2)
\ifluatex
- \mplibforcehmode
+ \mplibforcehmode
\begin{mplibcode}
- pair A,B,C,D,M[],N[],R[],S[];
- A=(1,1);
- B-A=(#1,0);
- C-B=(0,#2);
- D-C=A-B;
- numeric parts;
- parts=(#4 div #6);
- for k=0 upto parts:
- M[k]=(k/parts)[A,B];
- N[k]=(k/parts)[D,C];
- endfor;
- if #6>1:
- for k=0 upto #6:
- R[k]=(k/#6)[A,D];
- S[k]=(k/#6)[B,C];
- endfor;
- fi;
- picture FondRectangle;
- FondRectangle=image(%
- draw polygone(A,B,C,D);
- for k=1 upto (parts-1):
- draw segment(M[k],N[k]);
- endfor;
- if #6>1:
- for k=1 upto (#6-1):
- draw segment(R[k],S[k]);
- endfor;
- fi;
- );
- picture FondRectangleColorie;
- FondRectangleColorie=image(%
- if #6=1:
- drawoptions(withpen pencircle scaled#7);
- trace hachurage(polygone(A,M[#3 mod #4],N[#3 mod #4],D),45,0.25,0) withcolor #5;
- else:
- DDiv=(#3 mod #4) div parts;
- MMod=(#3 mod #4) mod parts;
- drawoptions(withpen pencircle scaled#7);
- trace hachurage(polygone(A,B,S[DDiv],R[DDiv]),45,0.25,0) withcolor #5;
- drawoptions(withpen pencircle scaled#7);
- trace hachurage(polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]),45,0.25,0) withcolor #5;
- fi;
- );
- m=#3 div #4;
- if (#3 mod #4)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto m-1:
- drawoptions(withpen pencircle scaled#7);
- trace hachurage(polygone(A,B,C,D) shifted(l*(#1+1cm,0)),45,0.25,0) withcolor #5;
- drawoptions(withpen pencircle scaled#7);
- trace FondRectangle shifted(l*(#1+1cm,0));
- endfor;
- fi;
- if (#3 mod #4)<>0:
- drawoptions(withpen pencircle scaled#7);
- trace FondRectangleColorie shifted(m*(#1+1cm,0));
- else:
- drawoptions(withpen pencircle scaled#7);
- trace hachurage(polygone(A,B,C,D) shifted(m*(#1+1cm,0)),45,0.25,0) withcolor #5;
- fi;
- drawoptions(withpen pencircle scaled#7);
- trace FondRectangle shifted(m*(#1+1cm,0));
+ \MPFractionTriangleCode
+ draw FractionTriangle(#1,#2);
\end{mplibcode}
\else
-\begin{mpost}
- pair A,B,C,D,M[],N[],R[],S[];
- A=(1,1);
- B-A=(#1,0);
- C-B=(0,#2);
- D-C=A-B;
- numeric parts;
- parts=(#4 div #6);
- for k=0 upto parts:
- M[k]=(k/parts)[A,B];
- N[k]=(k/parts)[D,C];
- endfor;
- if #6>1:
- for k=0 upto #6:
- R[k]=(k/#6)[A,D];
- S[k]=(k/#6)[B,C];
- endfor;
- fi;
- if #6=1:
- drawoptions(withpen pencircle scaled#7);
- draw hachurage(polygone(A,M[#3],N[#3],D),45,0.25,0) withcolor #5;
- else:
- DDiv=#3 div parts;
- MMod=#3 mod parts;
- drawoptions(withpen pencircle scaled#7);
- draw hachurage(polygone(A,B,S[DDiv],R[DDiv]),45,0.25,0) withcolor #5;
- drawoptions(withpen pencircle scaled#7);
- draw hachurage(polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]),45,0.25,0) withcolor #5;
- fi;
- drawoptions(withpen pencircle scaled#7);
- draw polygone(A,B,C,D);
- for k=1 upto (parts-1):
- draw segment(M[k],N[k]);
- endfor;
- if #6>1:
- for k=1 upto (#6-1):
- draw segment(R[k],S[k]);
- endfor;
- drawoptions();
- fi;
+ \begin{mpost}[mpsettings={\MPFractionTriangleCode}]
+ draw FractionTriangle(#1,#2);
\end{mpost}
\fi
-}
-
-\def\MPFractionDisque#1#2#3#4{%
- \ifluatex
- \mplibforcehmode
+}%
+
+\def\MPFractionRectangleCode{%
+ Longueur=\useKV[ClesFraction]{Longueur};
+ Largeur=\useKV[ClesFraction]{Largeur};
+ color ColRectangle;
+ ColRectangle=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ Multiple=\useKV[ClesFraction]{Multiple};
+ %
+ pair A,B,C,D,M[],N[],R[],S[];
+ A=(1,1);
+ B-A=(Longueur,0);
+ C-B=(0,Largeur);
+ D-C=A-B;
+ vardef FractionRectangle(expr nume,deno)=
+ m=nume div deno;
+ if (nume mod deno)=0:m:=m-1; fi;
+ numeric parts;
+ parts=(deno div Multiple);
+ for k=0 upto parts:
+ M[k]=(k/parts)[A,B];
+ N[k]=(k/parts)[D,C];
+ endfor;
+ if Multiple>1:
+ for k=0 upto Multiple:
+ R[k]=(k/Multiple)[A,D];
+ S[k]=(k/Multiple)[B,C];
+ endfor;
+ fi;
+ picture FondRectangle;
+ FondRectangle=image(%
+ draw polygone(A,B,C,D);
+ for k=1 upto (parts-1):
+ draw segment(M[k],N[k]);
+ endfor;
+ if Multiple>1:
+ for k=1 upto (Multiple-1):
+ draw segment(R[k],S[k]);
+ endfor;
+ fi;
+ );
+ picture FondRectangleColorie;
+ FondRectangleColorie=image(%
+ if Multiple=1:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(polygone(A,M[nume mod deno],N[nume mod deno],D),45,0.25,0) withcolor ColRectangle;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis polygone(A,M[nume mod deno],N[nume mod deno],D) withcolor ColRectangle;
+ fi;
+ else:
+ DDiv=(nume mod deno) div parts;
+ MMod=(nume mod deno) mod parts;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(polygone(A,B,S[DDiv],R[DDiv]),45,0.25,0) withcolor ColRectangle;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]),45,0.25,0) withcolor ColRectangle;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis polygone(A,B,S[DDiv],R[DDiv]) withcolor ColRectangle;
+ remplis polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]) withcolor ColRectangle;
+ fi;
+ fi;
+ );
+ picture RetourRectangle;
+ RetourRectangle=image(
+ if m>0:
+ for l=0 upto m-1:
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ trace hachurage(polygone(A,B,C,D) shifted(l*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ drawoptions(withpen pencircle scaled Epaisseur);
+ else:
+ remplis (polygone(A,B,C,D) shifted(l*(Longueur+1cm,0))) withcolor ColRectangle;
+ fi;
+ fi;
+ trace FondRectangle shifted(l*(Longueur+1cm,0));
+ endfor;
+ fi;
+ if (nume mod deno)<>0:
+ if Reponse:
+ trace FondRectangleColorie shifted(m*(Longueur+1cm,0));
+ fi;
+ else:
+ if Reponse:
+ if Hachures:
+ trace hachurage(polygone(A,B,C,D) shifted(m*(Longueur+1cm,0)),45,0.25,0) withcolor ColRectangle;
+ else:
+ remplis (polygone(A,B,C,D) shifted(m*(Longueur+1cm,0))) withcolor ColRectangle;
+ fi;
+ fi;
+ fi;
+ trace FondRectangle shifted(m*(Longueur+1cm,0));
+ );
+ RetourRectangle
+ enddef;
+}%
+
+\def\MPFractionRectangle#1#2{%
+ % #1 num, #2 deno
+ \ifluatex%
+ \mplibforcehmode%
\begin{mplibcode}
- pair A,B[];
- A=(0,0);
- path cc;
- cc=cercles(A,#1);
- for k=0 upto #3:
- B[k]=pointarc(cc,(360/#3)*k);
- endfor;
- m=(#2 div #3);
- if (#2 mod #3)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- fill cc shifted(l*(2*#1+1cm,0)) withcolor #4;
- endfor;
- fi;
- fill ((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted (m*(2*#1+1cm,0))) withcolor #4;
- for l=0 upto m:
- draw cc shifted(l*(2*#1+1cm,0));
- for k=0 upto (#3-1):
- draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
- endfor;
- endfor;
+ \MPFractionRectangleCode
+ trace FractionRectangle(#1,#2);
\end{mplibcode}
- \else
- \begin{mpost}
- pair A,B[];
- A=(0,0);
- path cc;
- cc=cercles(A,#1);
- for k=0 upto #3:
- B[k]=pointarc(cc,(360/#3)*k);
- endfor;
- m=#2 div #3;
- if (#2 mod #3)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- fill cc shifted(l*(2*#1+1cm,0)) withcolor #4;
- endfor;
- fi;
- fill ((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted (m*(2*#1+1cm,0))) withcolor #4;
- for l=0 upto m:
- draw cc shifted(l*(2*#1+1cm,0));
- for k=0 upto (#3-1):
- draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
- endfor;
- endfor;
+ \else%
+ \begin{mpost}[mpsettings={\MPFractionRectangleCode}]
+ trace FractionRectangle(#1,#2);
\end{mpost}
- \fi
-}
-
-\def\MPFractionDisqueH#1#2#3#4#5{%
+ \fi%
+}%
+
+\def\MPFractionDisqueCode{%
+ Rayon=\useKV[ClesFraction]{Rayon};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ color ColDisque;
+ ColDisque=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Reponse:=\useKV[ClesFraction]{Reponse};
+ %
+ pair A,B[];
+ A=(0,0);
+ path cc;
+ cc=cercles(A,Rayon);
+ vardef FractionDisque(expr nume,deno)=
+ for k=0 upto deno:
+ B[k]=pointarc(cc,(360/deno)*k);
+ endfor;
+ m=(nume div deno);
+ if (nume mod deno)=0:m:=m-1; fi;
+ picture RetourFraction;
+ RetourFraction=image(%
+ if Reponse:
+ if m>0:
+ for l=0 upto (m-1):
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(cc shifted(l*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill cc shifted(l*(2*Rayon+1cm,0)) withcolor ColDisque;
+ fi;
+ endfor;
+ fi;
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage((A--B0--arccercle(B[0],B[nume mod deno],A)--cycle) shifted(m*(2*Rayon+1cm,0)),1.5*360/deno,0.25,0) withcolor ColDisque;
+ else:
+ fill ((A--B0--arccercle(B[0],B[nume mod deno],A)--cycle) shifted (m*(2*Rayon+1cm,0))) withcolor ColDisque;
+ fi;
+ fi;
+ for l=0 upto m:
+ draw cc shifted(l*(2*Rayon+1cm,0));
+ for k=0 upto (deno-1):
+ draw segment(A,B[k]) shifted(l*(2*Rayon+1cm,0));
+ endfor;
+ endfor;
+ );
+ RetourFraction
+ enddef;
+}%
+
+\NewDocumentCommand\MPFractionDisque{mm}{%
\ifluatex
- \mplibforcehmode
+ \mplibforcehmode
\begin{mplibcode}
- pair A,B[];
- A=(0,0);
- path cc;
- cc=cercles(A,#1);
- for k=0 upto #3:
- B[k]=pointarc(cc,(360/#3)*k);
- endfor;
- m=#2 div #3;
- if (#2 mod #3)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- drawoptions(withpen pencircle scaled#5);
- draw hachurage(cc shifted(l*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
- endfor;
- fi;
- drawoptions(withpen pencircle scaled#5);
- draw hachurage((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted(m*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
- drawoptions(withpen pencircle scaled#5);
- for l=0 upto m:
- draw cc shifted(l*(2*#1+1cm,0));
- for k=0 upto (#3-1):
- draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
- endfor;
- endfor;
+ \MPFractionDisqueCode
+ trace FractionDisque(#1,#2);
\end{mplibcode}
\else
- \begin{mpost}
- pair A,B[];
- A=(0,0);
- path cc;
- cc=cercles(A,#1);
- for k=0 upto #3:
- B[k]=pointarc(cc,(360/#3)*k);
- endfor;
- m=#2 div #3;
- if (#2 mod #3)=0:m:=m-1; fi;
- if m>0:
- for l=0 upto (m-1):
- drawoptions(withpen pencircle scaled#5);
- draw hachurage(cc shifted(l*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
- endfor;
- fi;
- drawoptions(withpen pencircle scaled#5);
- draw hachurage((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted(m*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
- drawoptions(withpen pencircle scaled#5);
- for l=0 upto m:
- draw cc shifted(l*(2*#1+1cm,0));
- for k=0 upto (#3-1):
- draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
- endfor;
- endfor;
+ \begin{mpost}[mpsettings={\MPFractionDisqueCode}]
+ trace FractionDisque(#1,#2);
\end{mpost}
\fi
}
-\def\MPFractionSegment#1#2#3#4{
- \ifluatex
- \mplibforcehmode
- \begin{mplibcode}
- pair A,C,B[];
- A=(0,0);
- C-A=(#1,0);
- for k=0 upto #3:
- B[k]=(k/#3)[A,C];
- endfor;
- m=#2 div #3;
- if m>0:
- for l=0 upto (m-1):
- draw (segment(B[0],B[#3]) shifted(l*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
- endfor;
- fi;
- if (#2 mod #3)<>0:
- draw (segment(B[0],B[#2 mod #3]) shifted(m*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
- draw segment(A,C) shifted(m*(#1+1cm,0));
- fi;
- marque_p:="tiretv";
- for l=0 upto m-1:
- for k=0 upto #3:
- pointe(B[k] shifted(l*(#1+1cm,0)));
- endfor;
- endfor;
- if (#2 mod #3)<>0:
- for k=0 upto #3:
- pointe(B[k] shifted(m*(#1+1cm,0)));
- endfor;
- fi;
- \end{mplibcode}
- \else
- \begin{mpost}
- pair A,C,B[];
- A=(0,0);
- C-A=(#1,0);
- for k=0 upto #3:
- B[k]=(k/#3)[A,C];
- endfor;
- m=#2 div #3;
- if m>0:
- for l=0 upto (m-1):
- draw (segment(B[0],B[#3]) shifted(l*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
- endfor;
- fi;
- if (#2 mod #3)<>0:
- draw (segment(B[0],B[#2 mod #3]) shifted(m*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
- draw segment(A,C) shifted(m*(#1+1cm,0));
- fi;
- marque_p:="tiretv";
- for l=0 upto m-1:
- for k=0 upto #3:
- pointe(B[k] shifted(l*(#1+1cm,0)));
- endfor;
- endfor;
- if (#2 mod #3)<>0:
- for k=0 upto #3:
- pointe(B[k] shifted(m*(#1+1cm,0)));
- endfor;
- fi;
- \end{mpost}
- \fi
+\def\MPFractionSegmentCode{%
+ Longueur=\useKV[ClesFraction]{Longueur};
+ color ColSegment;
+ ColSegment=\useKV[ClesFraction]{Couleur};
+ boolean Hachures,Reponse;
+ Reponse=\useKV[ClesFraction]{Reponse};
+ Hachures=\useKV[ClesFraction]{Hachures};
+ Epaisseur=\useKV[ClesFraction]{Epaisseur};
+ %
+ pair A,C,B[];
+ A=(0,0);
+ C-A=(Longueur,0);
+ %
+ vardef FractionSegment(expr nume,deno)=
+ for k=0 upto deno:
+ B[k]=(k/deno)[A,C];
+ endfor;
+ m=nume div deno;
+ picture RetourFraction;
+ RetourFraction=image(
+ if m>0:
+ for l=0 upto (m-1):
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(polygone(B[0]+u*(0,-0.15),B[deno]+u*(0,-0.15),B[deno]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(l*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[0],B[deno]) shifted(l*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ fi;
+ fi;
+ draw (segment(B[0],B[deno]) shifted(l*(Longueur+1cm,0)));
+ endfor;
+ fi;
+ if (nume mod deno)<>0:
+ if Reponse:
+ if Hachures:
+ drawoptions(withpen pencircle scaled Epaisseur);
+ draw hachurage(polygone(B[0]+u*(0,-0.15),B[nume mod deno]+u*(0,-0.15),B[nume mod deno]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(m*(Longueur+1cm,0)),120,0.2,0) withcolor ColSegment;
+ drawoptions();
+ else:
+ draw (segment(B[0],B[nume mod deno]) shifted(m*(Longueur+1cm,0))) withpen pencircle scaled 2 withcolor ColSegment;
+ draw segment(A,C) shifted(m*(Longueur+1cm,0));
+ fi;
+ fi;
+ draw (segment(B[0],B[nume mod deno]) shifted(m*(Longueur+1cm,0)));
+ draw segment(A,C) shifted(m*(Longueur+1cm,0));
+ fi;
+ marque_p:="tiretv";
+ for l=0 upto m-1:
+ for k=0 upto deno:
+ pointe(B[k] shifted(l*(Longueur+1cm,0)));
+ endfor;
+ endfor;
+ if (nume mod deno)<>0:
+ for k=0 upto deno:
+ pointe(B[k] shifted(m*(Longueur+1cm,0)));
+ endfor;
+ fi;
+ );
+ RetourFraction
+ enddef;
}
-\def\MPFractionSegmentH#1#2#3#4#5{%
+\NewDocumentCommand\MPFractionSegment{mm}{%
\ifluatex
- \mplibforcehmode
+ \mplibforcehmode
\begin{mplibcode}
- pair A,C,B[];
- A=(0,0);
- C-A=(#1,0);
- for k=0 upto #3:
- B[k]=(k/#3)[A,C];
- endfor;
- m=#2 div #3;
- if m>0:
- for l=0 upto (m-1):
- drawoptions(withpen pencircle scaled#5);
- draw hachurage(polygone(B[0]+u*(0,-0.15),B[#3]+u*(0,-0.15),B[#3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(l*(#1+1cm,0)),120,0.2,0) withcolor #4;
- drawoptions(withpen pencircle scaled#5);
- draw segment(A,C) shifted(l*(#1+1cm,0));
- endfor;
- fi;
- if (#2 mod #3)<>0:
- drawoptions(withpen pencircle scaled#5);
- draw hachurage(polygone(B[0]+u*(0,-0.15),B[#2 mod #3]+u*(0,-0.15),B[#2 mod #3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(m*(#1+1cm,0)),120,0.2,0) withcolor #4;
- drawoptions(withpen pencircle scaled#5);
- draw segment(A,C) shifted(m*(#1+1cm,0));
- fi;
- marque_p:="tiretv";
- for l=0 upto m-1:
- for k=0 upto #3:
- pointe(B[k] shifted(l*(#1+1cm,0)));
- endfor;
- endfor;
- if (#2 mod #3)<>0:
- for k=0 upto #3:
- pointe(B[k] shifted(m*(#1+1cm,0)));
- endfor;
- fi;
+ \MPFractionSegmentCode
+ trace FractionSegment(#1,#2);
\end{mplibcode}
\else
- \begin{mpost}
- pair A,C,B[];
- A=(0,0);
- C-A=(#1,0);
- for k=0 upto #3:
- B[k]=(k/#3)[A,C];
- endfor;
- m=#2 div #3;
- if m>0:
- for l=0 upto (m-1):
- drawoptions(withpen pencircle scaled#5);
- draw hachurage(polygone(B[0]+u*(0,-0.15),B[#3]+u*(0,-0.15),B[#3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(l*(#1+1cm,0)),120,0.2,0) withcolor #4;
- drawoptions(withpen pencircle scaled#5);
- draw segment(A,C) shifted(l*(#1+1cm,0));
- endfor;
- fi;
- if (#2 mod #3)<>0:
- drawoptions(withpen pencircle scaled#5);
- draw hachurage(polygone(B[0]+u*(0,-0.15),B[#2 mod #3]+u*(0,-0.15),B[#2 mod #3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(m*(#1+1cm,0)),120,0.2,0) withcolor #4;
- drawoptions(withpen pencircle scaled#5);
- draw segment(A,C) shifted(m*(#1+1cm,0));
- fi;
- marque_p:="tiretv";
- for l=0 upto m-1:
- for k=0 upto #3:
- pointe(B[k] shifted(l*(#1+1cm,0)));
- endfor;
- endfor;
- if (#2 mod #3)<>0:
- for k=0 upto #3:
- pointe(B[k] shifted(m*(#1+1cm,0)));
- endfor;
- fi;
+ \begin{mpost}[mpsettings={\MPFractionSegmentCode}]
+ trace FractionSegment(#1,#2);
\end{mpost}
\fi
}
-\newcommand\Fraction[2][]{%
+\NewDocumentCommand\Fraction{o m}{%
\useKVdefault[ClesFraction]%
\setKV[ClesFraction]{#1}%
\setsepchar[*]{/}%
\readlist*\ListeFraction{#2}%
- \ifboolKV[ClesFraction]{Triangle}{%
- \ifboolKV[ClesFraction]{Reponse}{}{\setKV[ClesFraction]{Couleur=white}}%
- \ifboolKV[ClesFraction]{Hachures}{%
- \MPFractionTriangleH{\useKV[ClesFraction]{Longueur}}{\useKV[ClesFraction]{Parts}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}{\useKV[ClesFraction]{Epaisseur}}%
- }{%
- \MPFractionTriangle{\useKV[ClesFraction]{Longueur}}{\useKV[ClesFraction]{Parts}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}%
- }%
+ \ifboolKV[ClesFraction]{Eprouvette}{%
+ \MPFractionEprouvette{\ListeFraction[1]}{\ListeFraction[2]}%
}{%
- \ifboolKV[ClesFraction]{Regulier}{%
- \ifboolKV[ClesFraction]{Reponse}{}{\setKV[ClesFraction]{Couleur=white}}%
- \ifboolKV[ClesFraction]{Hachures}{%
- \MPFractionRegulierH{\useKV[ClesFraction]{Rayon}}{\useKV[ClesFraction]{Cotes}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}{\useKV[ClesFraction]{Epaisseur}}%
- }{%
- \MPFractionRegulier{\useKV[ClesFraction]{Rayon}}{\useKV[ClesFraction]{Cotes}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}%
- }%
+ \ifboolKV[ClesFraction]{Triangle}{%
+ \MPFractionTriangle{\ListeFraction[1]}{\ListeFraction[2]}%
}{%
- \ifboolKV[ClesFraction]{Segment}{%
- \ifboolKV[ClesFraction]{Reponse}{}{\setKV[ClesFraction]{Couleur=white}}%
- \ifboolKV[ClesFraction]{Hachures}{%
- \MPFractionSegmentH{\useKV[ClesFraction]{Longueur}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}{\useKV[ClesFraction]{Epaisseur}}%
- }{%
- \MPFractionSegment{\useKV[ClesFraction]{Longueur}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}%
- }%
+ \ifboolKV[ClesFraction]{Regulier}{%
+ \MPFractionRegulier{\ListeFraction[1]}{\ListeFraction[2]}%
}{%
- \ifboolKV[ClesFraction]{Rectangle}{%rectangle
- \ifboolKV[ClesFraction]{Reponse}{}{\setKV[ClesFraction]{Couleur=white}}%
- \ifboolKV[ClesFraction]{Hachures}{%
- \MPFractionRectangleH{\useKV[ClesFraction]{Longueur}}{\useKV[ClesFraction]{Largeur}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}{\useKV[ClesFraction]{Multiple}}{\useKV[ClesFraction]{Epaisseur}}%
- }{%
- \MPFractionRectangle{\useKV[ClesFraction]{Longueur}}{\useKV[ClesFraction]{Largeur}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}{\useKV[ClesFraction]{Multiple}}%
- }%
- }{%disque
- \ifboolKV[ClesFraction]{Reponse}{}{\setKV[ClesFraction]{Couleur=white}}%
- \ifboolKV[ClesFraction]{Hachures}{%
- \MPFractionDisqueH{\useKV[ClesFraction]{Rayon}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}{\useKV[ClesFraction]{Epaisseur}}%
+ \ifboolKV[ClesFraction]{Segment}{%
+ \MPFractionSegment{\ListeFraction[1]}{\ListeFraction[2]}%
+ }{%
+ \ifboolKV[ClesFraction]{Rectangle}{%
+ \MPFractionRectangle{\ListeFraction[1]}{\ListeFraction[2]}%
}{%
- \MPFractionDisque{\useKV[ClesFraction]{Rayon}}{\ListeFraction[1]}{\ListeFraction[2]}{\useKV[ClesFraction]{Couleur}}%
+ \MPFractionDisque{\ListeFraction[1]}{\ListeFraction[2]}%
}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCSquaro.tex b/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
index f6b67bdb52..9de4a7afdf 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSquaro.tex
@@ -6,31 +6,33 @@
\NewDocumentCommand\SquarO{o}{%
\useKVdefault[Squaro]%
- \setKVdefault[Squaro]{#1}%
- \ifboolKV[Squaro]{Solution}{\BuildSquaroSolution}{\BuildSquaro}%
+ \setKV[Squaro]{#1}%
+ \BuildSquaro%
+}%
+
+\def\BuildSquarobase{%
+ numeric Longueur,Largeur;
+ Longueur=\useKV[Squaro]{Longueur};
+ Largeur=\useKV[Squaro]{Largeur};
+ boolean Solution,Graines;
+ Solution=\useKV[Squaro]{Solution};
+ Graines=\useKV[Squaro]{Graines};
+ if Graines:
+ randomseed:=\useKV[Squaro]{Graine};
+ fi;
+ %
+ u:=\useKV[Squaro]{Echelle};
+ %
+ p:=0;
+ pair A[];%centre des carrés.
+ boolean Allume[][];
}
\NewDocumentCommand\BuildSquaro{}{%
\ifluatex
- \mplibforcehmode
- \xdef\PfCSquaroNom{\useKV[Squaro]{Nom}}%
- \begin{mplibcode}[\PfCSquaroNom]
- numeric Longueur,Largeur;
- Longueur=\useKV[Squaro]{Longueur};
- Largeur=\useKV[Squaro]{Largeur};
- boolean Solution,Graines;
- Solution=\useKV[Squaro]{Solution};
- Graines:=\useKV[Squaro]{Graines};
- if Graines:
- randomseed:=\useKV[Squaro]{Graine};
- fi;
-
- u:=\useKV[Squaro]{Echelle};
-
- p:=0;
- pair A[];%centre des carrés.
- boolean Allume[][];
-
+ \mplibforcehmode
+ \begin{mplibcode}
+ \BuildSquarobase
for k=0 upto Longueur-1:
for l=0 upto Largeur-1:
p:=p+1;
@@ -63,29 +65,25 @@
label(TEX(decimal(Retiens)),u*(l+0.5,-k+0.5));
endfor;
endfor;
- \end{mplibcode}
- \fi
-}
-
-\NewDocumentCommand\BuildSquaroSolution{}{%
- \ifluatex
- \mplibforcehmode
- \xdef\PfCSquaroNom{\useKV[Squaro]{Nom}}%
- \begin{mplibcode}[\PfCSquaroNom]
- u:=\useKV[Squaro]{Echelle};
- p:=0;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={\BuildSquarobase}]
for k=0 upto Longueur-1:
for l=0 upto Largeur-1:
p:=p+1;
+ A[p]=u*(k,-l);
trace (unitsquare scaled u) shifted A[p];
endfor;
endfor;
for k=0 upto Largeur:
for l=0 upto Longueur:
- if Allume[k][l]=true:
- fill cercles(u*(l,-k+1),1mm);
+ m:=uniformdeviate(1);
+ if m<0.5:
+ Allume[k][l]=true;
+ fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
else:
+ Allume[k][l]=false;
fill cercles(u*(l,-k+1),1mm) withcolor white;
fi;
trace cercles(u*(l,-k+1),1mm);
@@ -99,9 +97,9 @@
if Allume[k][l+1]:Retiens:=Retiens+1 fi;
if Allume[k+1][l]:Retiens:=Retiens+1 fi;
if Allume[k+1][l+1]:Retiens:=Retiens+1 fi;
- label(TEX(decimal(Retiens)),u*(l+0.5,-k+0.5));
+ label(LATEX(decimal(Retiens)),u*(l+0.5,-k+0.5));
endfor;
endfor;
- \end{mplibcode}
+ \end{mpost}
\fi
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCSquaroaprioriold.tex b/macros/latex/contrib/profcollege/latex/PfCSquaroaprioriold.tex
new file mode 100644
index 0000000000..ec3717b9c6
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCSquaroaprioriold.tex
@@ -0,0 +1,107 @@
+%%%
+% Squaro
+%%%
+\setKVdefault[Squaro]{Solution=false,Longueur=8,Largeur=8,Echelle=8mm,Nom=Jeu1,Graines=false}
+\defKV[Squaro]{Graine=\setKV[Squaro]{Graines}}%
+
+\NewDocumentCommand\SquarO{o}{%
+ \useKVdefault[Squaro]%
+ \setKVdefault[Squaro]{#1}%
+ \ifboolKV[Squaro]{Solution}{\BuildSquaroSolution}{\BuildSquaro}%
+}
+
+\NewDocumentCommand\BuildSquaro{}{%
+ \ifluatex
+ \mplibforcehmode
+ \xdef\PfCSquaroNom{\useKV[Squaro]{Nom}}%
+ \begin{mplibcode}[\PfCSquaroNom]
+ numeric Longueur,Largeur;
+ Longueur=\useKV[Squaro]{Longueur};
+ Largeur=\useKV[Squaro]{Largeur};
+ boolean Solution,Graines;
+ Solution=\useKV[Squaro]{Solution};
+ Graines:=\useKV[Squaro]{Graines};
+ if Graines:
+ randomseed:=\useKV[Squaro]{Graine};
+ fi;
+
+ u:=\useKV[Squaro]{Echelle};
+
+ p:=0;
+ pair A[];%centre des carrés.
+ boolean Allume[][];
+
+ for k=0 upto Longueur-1:
+ for l=0 upto Largeur-1:
+ p:=p+1;
+ A[p]=u*(k,-l);
+ trace (unitsquare scaled u) shifted A[p];
+ endfor;
+ endfor;
+
+ for k=0 upto Largeur:
+ for l=0 upto Longueur:
+ m:=uniformdeviate(1);
+ if m<0.5:
+ Allume[k][l]=true;
+ fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
+ else:
+ Allume[k][l]=false;
+ fill cercles(u*(l,-k+1),1mm) withcolor white;
+ fi;
+ trace cercles(u*(l,-k+1),1mm);
+ endfor;
+ endfor;
+
+ for k=0 upto Largeur-1:
+ for l=0 upto Longueur-1:
+ Retiens:=0;
+ if Allume[k][l]:Retiens:=Retiens+1 fi;
+ if Allume[k][l+1]:Retiens:=Retiens+1 fi;
+ if Allume[k+1][l]:Retiens:=Retiens+1 fi;
+ if Allume[k+1][l+1]:Retiens:=Retiens+1 fi;
+ label(TEX(decimal(Retiens)),u*(l+0.5,-k+0.5));
+ endfor;
+ endfor;
+ \end{mplibcode}
+ \fi
+}
+
+\NewDocumentCommand\BuildSquaroSolution{}{%
+ \ifluatex
+ \mplibforcehmode
+ \xdef\PfCSquaroNom{\useKV[Squaro]{Nom}}%
+ \begin{mplibcode}[\PfCSquaroNom]
+ u:=\useKV[Squaro]{Echelle};
+ p:=0;
+ for k=0 upto Longueur-1:
+ for l=0 upto Largeur-1:
+ p:=p+1;
+ trace (unitsquare scaled u) shifted A[p];
+ endfor;
+ endfor;
+
+ for k=0 upto Largeur:
+ for l=0 upto Longueur:
+ if Allume[k][l]=true:
+ fill cercles(u*(l,-k+1),1mm);
+ else:
+ fill cercles(u*(l,-k+1),1mm) withcolor white;
+ fi;
+ trace cercles(u*(l,-k+1),1mm);
+ endfor;
+ endfor;
+
+ for k=0 upto Largeur-1:
+ for l=0 upto Longueur-1:
+ Retiens:=0;
+ if Allume[k][l]:Retiens:=Retiens+1 fi;
+ if Allume[k][l+1]:Retiens:=Retiens+1 fi;
+ if Allume[k+1][l]:Retiens:=Retiens+1 fi;
+ if Allume[k+1][l+1]:Retiens:=Retiens+1 fi;
+ label(TEX(decimal(Retiens)),u*(l+0.5,-k+0.5));
+ endfor;
+ endfor;
+ \end{mplibcode}
+ \fi
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
index 03fb0f7ec6..6be4545dee 100644
--- a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
@@ -229,6 +229,46 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
\num{\TotalECC}%
}
+\def\NewMPDiagBarreHorCode{%
+ Longueur:=\useKV[ClesStat]{Longueur};
+ Hauteur:=\useKV[ClesStat]{Hauteur};
+ Ecart:=\useKV[ClesStat]{EcartBarre};
+ ExposantDivMax:=\ExposantDivMax;
+ ecarthachures=\useKV[ClesStat]{EcartHachures};
+ epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
+ boolean Hachures,Bicolore,Grille,AffichageDonnee,LegendeVide;
+ Hachures=\useKV[ClesStat]{Hachures};
+ Bicolore=\useKV[ClesStat]{Bicolore};
+ Grille=\useKV[ClesStat]{Grille};
+ AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
+ LegendeVide=\useKV[ClesStat]{LegendeVide};
+ vardef CalculNombreDonneesEtDonneeMax(text t)=
+ nbdon:=0;%nombre de données
+ DonneeMax:=0;%donnée DonneeMaximale
+ for p_=t:
+ nbdon:=nbdon+1;
+ if p_>DonneeMax:
+ DonneeMax:=p_;
+ fi;
+ endfor;
+ enddef;
+ vardef ListeDonnees(text t)=
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ Donnees[n]:=p_;
+ endfor;
+ enddef;
+ vardef RecuperationCouleurs(text t)=
+ color Col[];
+ n:=0;
+ for p_=t:
+ n:=n+1;
+ Col[n]=p_;
+ endfor;
+ enddef;
+}
+
% Construction d'un diagramme en barres horizontal
\newcommand\NewMPDiagBarreHor[4]{%
% #1 Liste des noms
@@ -238,47 +278,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
- Longueur:=\useKV[ClesStat]{Longueur};
- Hauteur:=\useKV[ClesStat]{Hauteur};
- Ecart:=\useKV[ClesStat]{EcartBarre};
- ExposantDivMax:=\ExposantDivMax;
- ecarthachures=\useKV[ClesStat]{EcartHachures};
- epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
- boolean Hachures;
- Hachures=\useKV[ClesStat]{Hachures};
- boolean Bicolore;
- Bicolore=\useKV[ClesStat]{Bicolore};
- boolean Grille;
- Grille=\useKV[ClesStat]{Grille};
- boolean AffichageDonnee;
- AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
- boolean LegendeVide;
- LegendeVide=\useKV[ClesStat]{LegendeVide};
- vardef CalculNombreDonneesEtDonneeMax(text t)=
- nbdon:=0;%nombre de données
- DonneeMax:=0;%donnée DonneeMaximale
- for p_=t:
- nbdon:=nbdon+1;
- if p_>DonneeMax:
- DonneeMax:=p_;
- fi;
- endfor;
- enddef;
- vardef ListeDonnees(text t)=
- n:=0;
- for p_=t:
- n:=n+1;
- Donnees[n]:=p_;
- endfor;
- enddef;
- vardef RecuperationCouleurs(text t)=
- color Col[];
- n:=0;
- for p_=t:
- n:=n+1;
- Col[n]=p_;
- endfor;
- enddef;
+ \NewMPDiagBarreHorCode%
vardef TraceDiag=
if Grille:
pair Zz[];%Pour déterminer "le dernier point"
@@ -353,49 +353,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
fi;
\end{mplibcode}
\else%
- \begin{mpost}[mpsettings={%
- Longueur:=\useKV[ClesStat]{Longueur};
- Hauteur:=\useKV[ClesStat]{Hauteur};
- Ecart:=\useKV[ClesStat]{EcartBarre};
- ExposantDivMax:=\ExposantDivMax;
- ecarthachures=\useKV[ClesStat]{EcartHachures};
- epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
- boolean Hachures;
- Hachures=\useKV[ClesStat]{Hachures};
- boolean Bicolore;
- Bicolore=\useKV[ClesStat]{Bicolore};
- boolean Grille;
- Grille=\useKV[ClesStat]{Grille};
- boolean AffichageDonnee;
- AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
- boolean LegendeVide;
- LegendeVide=\useKV[ClesStat]{LegendeVide};
- }]
- vardef CalculNombreDonneesEtDonneeMax(text t)=
- nbdon:=0;%nombre de données
- DonneeMax:=0;%donnée DonneeMaximale
- for p_=t:
- nbdon:=nbdon+1;
- if p_>DonneeMax:
- DonneeMax:=p_;
- fi;
- endfor;
- enddef;
- vardef ListeDonnees(text t)=
- n:=0;
- for p_=t:
- n:=n+1;
- Donnees[n]:=p_;
- endfor;
- enddef;
- vardef RecuperationCouleurs(text t)=
- color Col[];
- n:=0;
- for p_=t:
- n:=n+1;
- Col[n]=p_;
- endfor;
- enddef;
+ \begin{mpost}[mpsettings={\NewMPDiagBarreHorCode}]
vardef TraceDiag=
if Grille:
pair Zz[];%Pour déterminer "le dernier point"
@@ -472,37 +430,70 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
\fi%
}%
+\def\MPStatNewCode{%
+ maxx:=0;
+ maxy:=0;
+ unitex:=\useKV[ClesStat]{Unitex}*cm;
+ unitey:=\useKV[ClesStat]{Unitey}*cm;
+ xpartorigine:=\useKV[ClesStat]{Origine};
+ AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
+ boolean Rotation,Lecture,LectureFine,AideLecture,DonneesSup,Reponses,Qualitatif,Tiret;
+ Rotation=\useKV[ClesStat]{AbscisseRotation};
+ Lecture:=\useKV[ClesStat]{Lecture};
+ LectureFine:=\useKV[ClesStat]{LectureFine};
+ AideLecture:=\useKV[ClesStat]{AideLecture};
+ DonneesSup:=\useKV[ClesStat]{DonneesSup};
+ Reponses:=\useKV[ClesStat]{Reponses};
+ epaisseurbatons=\useKV[ClesStat]{EpaisseurBatons};
+ Qualitatif=\useKV[ClesStat]{Qualitatif};
+ Tiret=\useKV[ClesStat]{Tiret};
+ color CoulDefaut;
+ CoulDefaut=\useKV[ClesStat]{CouleurDefaut};
+ Depart=\useKV[ClesStat]{Depart};
+ %
+ pair A[],B[],P[];
+ vardef toto(text t)=%points quantitatif
+ n:=0;
+ for p_=t:
+ if pair p_:
+ n:=n+1;
+ P[n]=((xpart(p_)-(xpartorigine))*unitex,ypart(p_)*unitey);
+ if xpart(p_)>maxx:
+ maxx:=xpart(p_)-(xpartorigine);
+ fi;
+ if ypart(p_)>maxy:
+ maxy:=ypart(p_);
+ fi;
+ A[n]=unitex*(xpart(p_)-(xpartorigine),0);
+ B[n]=unitey*(0,ypart(p_));
+ fi;
+ endfor;
+ enddef;
+ vardef tutu(text t)=%points qualitatif
+ n:=0;
+ for p_=t:
+ if numeric p_:
+ P[n]=((n)*unitex,unitey*(p_-Depart));
+ B[n]=(0,unitey*(p_-Depart));
+ if p_>maxy:
+ maxy:=p_;
+ fi;
+ else:
+ n:=n+1;
+ A[n]=unitex*(n,0);
+ fi;
+ endfor;
+ maxy:=maxy-Depart;
+ maxx:=n;
+ enddef;
+}
+
% Construction du graphique en bâtons
\newcommand\MPStatNew[2]{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- maxx:=0;
- maxy:=0;
- unitex:=\useKV[ClesStat]{Unitex}*cm;
- unitey:=\useKV[ClesStat]{Unitey}*cm;
- xpartorigine:=\useKV[ClesStat]{Origine};
- AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
- boolean Rotation;
- Rotation=\useKV[ClesStat]{AbscisseRotation};
- boolean Lecture;
- Lecture:=\useKV[ClesStat]{Lecture};
- boolean LectureFine;
- LectureFine:=\useKV[ClesStat]{LectureFine};
- boolean AideLecture;
- AideLecture:=\useKV[ClesStat]{AideLecture};
- boolean DonneesSup;
- DonneesSup:=\useKV[ClesStat]{DonneesSup};
- boolean Reponses;
- Reponses:=\useKV[ClesStat]{Reponses};
- epaisseurbatons=\useKV[ClesStat]{EpaisseurBatons};
- boolean Qualitatif;
- Qualitatif=\useKV[ClesStat]{Qualitatif};
- boolean Tiret;
- Tiret=\useKV[ClesStat]{Tiret};
- color CoulDefaut;
- CoulDefaut=\useKV[ClesStat]{CouleurDefaut};
- Depart=\useKV[ClesStat]{Depart};
+ \MPStatNewCode
% on r\'ecup\`ere les couleurs
color Col[];
n:=0;
@@ -514,42 +505,6 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
Col[n]=CoulDefaut;
fi;
endfor;
- %
- pair A[],B[],P[];
- vardef toto(text t)=%points quantitatif
- n:=0;
- for p_=t:
- if pair p_:
- n:=n+1;
- P[n]=((xpart(p_)-(xpartorigine))*unitex,ypart(p_)*unitey);
- if xpart(p_)>maxx:
- maxx:=xpart(p_)-(xpartorigine);
- fi;
- if ypart(p_)>maxy:
- maxy:=ypart(p_);
- fi;
- A[n]=unitex*(xpart(p_)-(xpartorigine),0);
- B[n]=unitey*(0,ypart(p_));
- fi;
- endfor;
- enddef;
- vardef tutu(text t)=%points qualitatif
- n:=0;
- for p_=t:
- if numeric p_:
- P[n]=((n)*unitex,unitey*(p_-Depart));
- B[n]=(0,unitey*(p_-Depart));
- if p_>maxy:
- maxy:=p_;
- fi;
- else:
- n:=n+1;
- A[n]=unitex*(n,0);
- fi;
- endfor;
- maxy:=maxy-Depart;
- maxx:=n;
- enddef;
vardef tata(text t)=%affichage quantitatif
l=0;
for p_=t:
@@ -659,33 +614,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
if Qualitatif: titi(#1); else:tata(#1); fi;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={%
- unitex:=\useKV[ClesStat]{Unitex}*cm;
- unitey:=\useKV[ClesStat]{Unitey}*cm;
- xpartorigine:=\useKV[ClesStat]{Origine};
- AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
- boolean Rotation,Lecture;
- Rotation=\useKV[ClesStat]{AbscisseRotation};
-% boolean Lecture;
- Lecture:=\useKV[ClesStat]{Lecture};
- boolean LectureFine;
- LectureFine:=\useKV[ClesStat]{LectureFine};
- boolean AideLecture;
- AideLecture:=\useKV[ClesStat]{AideLecture};
- boolean DonneesSup;
- DonneesSup:=\useKV[ClesStat]{DonneesSup};
- boolean Reponses;
- Reponses:=\useKV[ClesStat]{Reponses};
- epaisseurbatons=\useKV[ClesStat]{EpaisseurBatons};
- boolean Qualitatif;
- Qualitatif=\useKV[ClesStat]{Qualitatif};
- boolean Tiret;
- Tiret=\useKV[ClesStat]{Tiret};
- color CoulDefaut;
- CoulDefaut=\useKV[ClesStat]{CouleurDefaut};
- Depart=\useKV[ClesStat]{Depart};}]
- maxx:=0;
- maxy:=0;
+ \begin{mpost}[mpsettings={\MPStatNewCode}]
% on r\'ecup\`ere les couleurs
color Col[];
n:=0;
@@ -698,24 +627,6 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
fi;
endfor;
%
- pair A[],B[],P[];
- vardef toto(text t)=%points quantitatif
- n:=0;
- for p_=t:
- if pair p_:
- n:=n+1;
- P[n]=((xpart(p_)-(xpartorigine))*unitex,ypart(p_)*unitey);
- if xpart(p_)>maxx:
- maxx:=xpart(p_)-(xpartorigine);
- fi;
- if ypart(p_)>maxy:
- maxy:=ypart(p_);
- fi;
- A[n]=unitex*(xpart(p_)-(xpartorigine),0);
- B[n]=unitey*(0,ypart(p_));
- fi;
- endfor;
- enddef;
vardef tata(text t)=%affichage quantitatif
l=0;
for p_=t:
@@ -741,22 +652,6 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
fi;
endfor;
enddef;
- vardef tutu(text t)=%points qualitatif
- n:=0;
- for p_=t:
- if numeric p_:
- P[n]=((n)*unitex,unitey*p_);
- B[n]=(0,unitey*p_);
- if p_>maxy:
- maxy:=p_;
- fi;
- else:
- n:=n+1;
- A[n]=unitex*(n,0);
- fi;
- endfor;
- maxx:=n;
- enddef;
vardef titi(text t)=%affichage qualitatif
l:=0;
for p_=t:
@@ -843,6 +738,102 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
\fi
}
+\def\NewMPStatCirculaireCodeQ{%
+ Rayon:=\useKV[ClesStat]{Rayon};
+ ecarthachures=\useKV[ClesStat]{EcartHachures};
+ epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
+ boolean AffichageAngle,AffichageDonnee,Hachures,Inverse,Legende,LegendeVide,Retour,ACompleter;
+ AffichageAngle=\useKV[ClesStat]{AffichageAngle};
+ AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
+ Hachures=\useKV[ClesStat]{Hachures};
+ Inverse=\useKV[ClesStat]{LectureInverse};
+ Legende=\useKV[ClesStat]{Legende};
+ LegendeVide=\useKV[ClesStat]{LegendeVide};
+ Retour=false;
+ ACompleter=\useKV[ClesStat]{ACompleter};
+ %
+ pair A[],O,B[],C[],D[];
+ O=(0,0);
+ n:=0;
+ numeric total[],ang[];
+ total[0]=0;
+ ang[0]:=0;
+ path cc;
+ cc=(fullcircle scaled (2*Rayon));
+ vardef AfficheLegende(text t)=
+ picture ResultatLegende;
+ ResultatLegende=image(
+ for p_=t:
+ if string p_:
+ n:=n+1;
+ C[n]=A[n-1] rotatedabout(O,if Inverse:-1* fi(ang[n]-ang[n-1])/2);
+ draw 0.95[O,C[n]]--1.05[O,C[n]];
+ C[n]:=1.05[O,C[n]];
+ Test(n);
+ if (xpart(C[n])>xpart(O)) and (ypart(C[n])>ypart(O)):
+ D[n]=C[n]+(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.urt(TEX(p_),D[n]);fi;
+ fi;
+ if (xpart(C[n])<xpart(O)) and (ypart(C[n])>ypart(O)):
+ D[n]=C[n]-(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.ulft(TEX(p_),D[n]);fi;
+ fi;
+ if (xpart(C[n])<xpart(O)) and (ypart(C[n])<ypart(O)):
+ D[n]=C[n]-(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.llft(TEX(p_),D[n]);fi;
+ fi;
+ if (xpart(C[n])>xpart(O)) and (ypart(C[n])<ypart(O)):
+ D[n]=C[n]+(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.lrt(TEX(p_),D[n]);fi;
+ fi;
+ fi;
+ endfor;
+ );
+ ResultatLegende
+ % fi;
+ enddef;
+ vardef AfficheLegendePDF(text t)=
+ picture ResultatLegende;
+ ResultatLegende=image(
+ for p_=t:
+ if string p_:
+ n:=n+1;
+ C[n]=A[n-1] rotatedabout(O,if Inverse:-1* fi(ang[n]-ang[n-1])/2);
+ draw 0.95[O,C[n]]--1.05[O,C[n]];
+ C[n]:=1.05[O,C[n]];
+ Test(n);
+ if (xpart(C[n])>xpart(O)) and (ypart(C[n])>ypart(O)):
+ D[n]=C[n]+(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.urt(LATEX(p_),D[n]);fi;
+ fi;
+ if (xpart(C[n])<xpart(O)) and (ypart(C[n])>ypart(O)):
+ D[n]=C[n]-(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.ulft(LATEX(p_),D[n]);fi;
+ fi;
+ if (xpart(C[n])<xpart(O)) and (ypart(C[n])<ypart(O)):
+ D[n]=C[n]-(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.llft(LATEX(p_),D[n]);fi;
+ fi;
+ if (xpart(C[n])>xpart(O)) and (ypart(C[n])<ypart(O)):
+ D[n]=C[n]+(0.5cm,0);
+ draw C[n]--D[n];
+ if Retour=false:label.lrt(LATEX(p_),D[n]);fi;
+ fi;
+ fi;
+ endfor;
+ );
+ ResultatLegende
+ % fi;
+ enddef;
+}
+
% la construction du graphique qualitatif
\def\NewMPStatCirculaireQ#1#2#3#4{%
%#1 : la liste des données
@@ -852,33 +843,12 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- Rayon:=\useKV[ClesStat]{Rayon};
- ecarthachures=\useKV[ClesStat]{EcartHachures};
- epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
- boolean AffichageAngle;
- AffichageAngle=\useKV[ClesStat]{AffichageAngle};
- boolean AffichageDonnee;
- AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
- boolean Hachures;
- Hachures=\useKV[ClesStat]{Hachures};
- boolean Inverse;
- Inverse=\useKV[ClesStat]{LectureInverse};
- boolean Legende;
- Legende=\useKV[ClesStat]{Legende};
- boolean LegendeVide;
- LegendeVide=\useKV[ClesStat]{LegendeVide};
- boolean Retour;
- Retour=false;
- boolean ACompleter;
- ACompleter=\useKV[ClesStat]{ACompleter};
- pair A[],O,B[],C[],D[];
- O=(0,0);
- n:=0;
- numeric total[],ang[];
- total[0]=0;
- ang[0]:=0;
- path cc;
- cc=(fullcircle scaled (2*Rayon));
+ \NewMPStatCirculaireCodeQ
+ if Inverse=false:
+ A[0]=point(0) of cc;
+ else:
+ A[0]=point(180) of cc;
+ fi;
% on r\'ecup\`ere les couleurs
color Col[];
n:=0;
@@ -886,11 +856,6 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
n:=n+1;
Col[n]=p_;
endfor;
- if Inverse=false:
- A[0]=point(0) of cc;
- else:
- A[0]=point(180) of cc;
- fi;
vardef toto(text t)=
n:=0;
for p_=t:
@@ -989,37 +954,6 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
draw (subpath(0,length cc/2) of cc)--cycle if Hachures: withpen pencircle scaled2 fi;;
fi;
n:=0;
- if Legende:
- for p_=t:
- if string p_:
- n:=n+1;
- C[n]=A[n-1] rotatedabout(O,if Inverse:-1* fi(ang[n]-ang[n-1])/2);
- draw 0.95[O,C[n]]--1.05[O,C[n]];
- C[n]:=1.05[O,C[n]];
- Test(n);
- if (xpart(C[n])>xpart(O)) and (ypart(C[n])>ypart(O)):
- D[n]=C[n]+(0.5cm,0);
- draw C[n]--D[n];
- if Retour=false:label.urt(TEX(p_),D[n]);fi;
- fi;
- if (xpart(C[n])<xpart(O)) and (ypart(C[n])>ypart(O)):
- D[n]=C[n]-(0.5cm,0);
- draw C[n]--D[n];
- if Retour=false:label.ulft(TEX(p_),D[n]);fi;
- fi;
- if (xpart(C[n])<xpart(O)) and (ypart(C[n])<ypart(O)):
- D[n]=C[n]-(0.5cm,0);
- draw C[n]--D[n];
- if Retour=false:label.llft(TEX(p_),D[n]);fi;
- fi;
- if (xpart(C[n])>xpart(O)) and (ypart(C[n])<ypart(O)):
- D[n]=C[n]+(0.5cm,0);
- draw C[n]--D[n];
- if Retour=false:label.lrt(TEX(p_),D[n]);fi;
- fi;
- fi;
- endfor;
- fi;
enddef;
vardef Test(expr nb)=
Retour:=false;
@@ -1035,29 +969,13 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
enddef;
Figure(-10u,-10u,10u,10u);
toto(#1);
+ if Legende:
+ n:=0;
+ draw AfficheLegende(#1);
+ fi;
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={%
- Rayon:=\useKV[ClesStat]{Rayon};
- ecarthachures=\useKV[ClesStat]{EcartHachures};
- epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
- boolean AffichageAngle;
- AffichageAngle=\useKV[ClesStat]{AffichageAngle};
- boolean AffichageDonnee;
- AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
- boolean Hachures;
- Hachures=\useKV[ClesStat]{Hachures};
- boolean Inverse;
- Inverse=\useKV[ClesStat]{LectureInverse};
- boolean Legende;
- Legende=\useKV[ClesStat]{Legende};
- boolean LegendeVide;
- LegendeVide=\useKV[ClesStat]{LegendeVide};
- boolean ACompleter;
- ACompleter=\useKV[ClesStat]{ACompleter};
- }]
- boolean Retour;
- Retour=false;
+ \begin{mpost}[mpsettings={\NewMPStatCirculaireCodeQ}]
pair A[],O,B[],C[],D[];
O=(0,0);
n:=0;
@@ -1175,40 +1093,6 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
else:
draw (subpath(0,length cc/2) of cc)--cycle if Hachures: withpen pencircle scaled2 fi;;
fi;
- n:=0;
- if Legende:
- for p_=t:
- if string p_:
- n:=n+1;
- C[n]=A[n-1] rotatedabout(O,if Inverse:-1* fi(ang[n]-ang[n-1])/2);
- draw 0.95[O,C[n]]--1.05[O,C[n]];
- C[n]:=1.05[O,C[n]];
- Test(n);
- if Retour=false:
- if (xpart(C[n])>xpart(O)) and (ypart(C[n])>ypart(O)):
- D[n]=C[n]+(0.5cm,0);
- draw C[n]--D[n];
- label.urt(LATEX(p_),D[n]);
- fi;
- if (xpart(C[n])<xpart(O)) and (ypart(C[n])>ypart(O)):
- D[n]=C[n]-(0.5cm,0);
- draw C[n]--D[n];
- label.ulft(LATEX(p_),D[n]);
- fi;
- if (xpart(C[n])<xpart(O)) and (ypart(C[n])<ypart(O)):
- D[n]=C[n]-(0.5cm,0);
- draw C[n]--D[n];
- label.llft(LATEX(p_),D[n]);
- fi;
- if (xpart(C[n])>xpart(O)) and (ypart(C[n])<ypart(O)):
- D[n]=C[n]+(0.5cm,0);
- draw C[n]--D[n];
- label.lrt(LATEX(p_),D[n]);
- fi;
- fi;
- fi;
- endfor;
- fi;
enddef;
vardef Test(expr nb)=
Retour:=false;
@@ -1224,6 +1108,10 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis
enddef;
Figure(-10u,-10u,10u,10u);
toto(#1);
+ if Legende:
+ n:=0;
+ draw AfficheLegendePDF(#1);
+ fi;
\end{mpost}
\fi
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex b/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
index 4eaee98489..381e2a8df6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTableauxUnites.tex
@@ -1,7 +1,7 @@
%%%
% Tableaux d'unit\'es
%%%
-\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false}
+\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false,CouleurGN=white,CadreGN=black}
\newcommand\PfCTBstrut{\rule[-1.2ex]{0pt}{3.8ex}}% Top and Bottom strut
\newcommand\PfCTstrut{\rule{0pt}{3.8ex}}% Top strut
@@ -1025,7 +1025,7 @@
\end{NiceTabular}%
\end{center}%
\setlength{\tabcolsep}{100\tabcolsep}%
- }{}%
+ }{}%
%
%%% Prise en compte de la cl\'e Metre
%
@@ -1386,4 +1386,97 @@
\tikz\draw[out=215,in=-90,-stealth,gray,transform canvas={yshift=-2mm}] (7-|3.5) to node[midway,left]{\footnotesize$\div\num{\PfCCoefConversion}$}(5-|2.5);
\tikz\draw[out=215,in=-90,-stealth,gray,transform canvas={yshift=-2mm}] (5-|2.5) to node[midway,left]{\footnotesize$\div\num{\PfCCoefConversion}$}(3-|1.5);
\end{NiceTabular}%
+}%
+
+%%%
+% Glisse Nombre
+%%%
+\NewDocumentCommand\GlisseNombre{o m}{%
+ \useKVdefault[ClesTableaux]%
+ \setKV[ClesTableaux]{#1}%
+ \colorlet{PfCCouleurFondGN}{\useKV[ClesTableaux]{CouleurGN}}%
+ \colorlet{PfCCouleurCadreGN}{\useKV[ClesTableaux]{CadreGN}}%
+ \xintifboolexpr{\useKV[ClesTableaux]{NbLignes}<10}{\setKV[ClesTableaux]{NbLignes=10}}{}%
+ \ifboolKV[ClesTableaux]{Entiers}{%
+ \colorlet{PfCCouleurA}{\useKV[ClesTableaux]{CouleurG}}%
+ \colorlet{PfCCouleurB}{\useKV[ClesTableaux]{CouleurM}}%
+ \colorlet{PfCCouleurC}{\useKV[ClesTableaux]{CouleurM}}%
+ \colorlet{PfCCouleurD}{\useKV[ClesTableaux]{Couleurm}}%
+ \colorlet{PfCCouleurE}{\useKV[ClesTableaux]{Couleurm}}%
+ \colorlet{PfCCouleurF}{\useKV[ClesTableaux]{Couleuru}}%
+ \setsepchar{,}%
+ \readlist*\PfCNomUnites{Milliards,Centaines\\de millions,Dizaines\\de millions,Millions,Centaines\\de milliers,Dizaines\\de milliers,Milliers,Centaines,Dizaines,Unités}%
+ }{%
+ \colorlet{PfCCouleurA}{\useKV[ClesTableaux]{Couleurm}}%
+ \colorlet{PfCCouleurB}{\useKV[ClesTableaux]{Couleurm}}%
+ \colorlet{PfCCouleurC}{\useKV[ClesTableaux]{Couleuru}}%
+ \colorlet{PfCCouleurD}{\useKV[ClesTableaux]{Couleuru}}%
+ \colorlet{PfCCouleurE}{\useKV[ClesTableaux]{Couleurd}}%
+ \colorlet{PfCCouleurF}{\useKV[ClesTableaux]{Couleurd}}%
+ \setsepchar{,}%
+ \readlist*\PfCNomUnites{Centaines\\de milliers,Dizaines\\de milliers,Milliers,Centaines,Dizaines,Unités,Dixièmes,Centièmes,Millièmes,Dix-millièmes}%
+ }%
+ \begin{center}
+ \fcolorbox{PfCCouleurCadreGN}{PfCCouleurFondGN}{%
+ \begin{minipage}{0.8\linewidth}%
+ \setlength{\tabcolsep}{0.01\tabcolsep}%
+ \begin{center}%
+ \xdef\PfCDerniereColonne{11}%
+ \begin{NiceTabular}{*{6}{wc{30pt}wc{10pt}}*{4}{wc{30pt}wc{10pt}}wc{30pt}}%
+ \CodeBefore%
+ \tikz\draw[draw=black,fill=PfCCouleurA] (1|-5)--(2|-1)--(3|-1)--++(20pt,0)--(2|-5)--cycle;%m->A
+ \tikz\draw[draw=black,fill=PfCCouleurB] (3|-5)--(4|-1)--(5|-1)--++(20pt,0)--(4|-5)--cycle;%m->B
+ \tikz\draw[draw=black,fill=PfCCouleurB] (5|-5)--(6|-1)--(7|-1)--++(20pt,0)--(6|-5)--cycle;%m->B
+ \tikz\draw[draw=black,fill=PfCCouleurC] (7|-5)--(8|-1)--(9|-1)--++(20pt,0)--(8|-5)--cycle;%u->C
+ \tikz\draw[draw=black,fill=PfCCouleurD] (9|-5)--(10|-1)--(11|-1)--++(20pt,0)--(10|-5)--cycle;%u->D
+ \tikz\draw[draw=black,fill=PfCCouleurD] (11|-5)--(12|-1)--(13|-1)--++(20pt,0)--(12|-5)--cycle;%u->D
+ \tikz\draw[draw=black,fill=PfCCouleurE] (13|-5)--(14|-1)--(15|-1)--++(20pt,0)--(14|-5)--cycle;%d->E
+ \tikz\draw[draw=black,fill=PfCCouleurF] (15|-5)--(16|-1)--(17|-1)--++(20pt,0)--(16|-5)--cycle;%d->F
+ \tikz\draw[draw=black,fill=PfCCouleurF] (17|-5)--(18|-1)--(19|-1)--++(20pt,0)--(18|-5)--cycle;%d->F
+ \tikz\draw[draw=black,fill=PfCCouleurF] (19|-5)--(20|-1)--(21|-1)--++(20pt,0)--(20|-5)--cycle;%d->F
+ %
+ \Body
+ %% Pour décaler et laisser la place nécessaire
+ \xintFor* ##1 in {\xintSeq{1}{4}}\do{%
+ &&&&&&&&&&&&&&&&&&&&\\
+ }%
+ %% Lignes vierges
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[ClesTableaux]{NbLignes}-2}}}\do{%
+ &&&&&&&&&&&&&&&&&&&&\\
+ }%
+ &&&&&&&&&&&\ifboolKV[ClesTableaux]{Entiers}{}{\Huge\bfseries ,}&&&&&&&&&\\
+ &&&&&&&&&&&&&&&&&&&&\\
+ \CodeAfter
+ \tikz\draw (last-|1)--(last-|\fpeval{2*\PfCDerniereColonne-2});
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{2*\PfCDerniereColonne-2}}}\do{%
+ \tikz\draw[dashed] (5-|##1)--(\fpeval{5+\useKV[ClesTableaux]{NbLignes}}-|##1);%
+ \tikz\draw (5-|##1)--(\fpeval{7}-|##1);%
+ \tikz\draw (\fpeval{5+\useKV[ClesTableaux]{NbLignes}}-|##1)--(\fpeval{3+\useKV[ClesTableaux]{NbLignes}}-|##1);%
+ }%
+ %
+ \tikz\node[rotate=60] at (2|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[1]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (4|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[2]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (6|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[3]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (8|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[4]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (10|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[5]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (12|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[6]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (14|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[7]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (16|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[8]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (18|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[9]\end{center}\end{minipage}};%
+ \tikz\node[rotate=60] at (20|-3) {\begin{minipage}{60pt}\begin{center}\scriptsize \PfCNomUnites[10]\end{center}\end{minipage}};%
+ \end{NiceTabular}%
+ \end{center}%
+ \setlength{\tabcolsep}{100\tabcolsep}%
+ \end{minipage}%
+ }%
+ \end{center}
+ \begin{center}
+ \begin{NiceTabular}{m{0.97\linewidth}}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{\useKV[ClesTableaux]{NbLignes}-4}}}\do{%
+ \Block[fill=PfCCouleurFondGN]{}{\phantom{A}}\\
+ }%
+ \CodeAfter%
+ \tikz\draw (1-|1) rectangle (last-|last);%
+ \end{NiceTabular}
+ \end{center}
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex b/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
index e5f99c7f4a..949c781ce7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTortueBase.tex
@@ -6,6 +6,7 @@
Etapes=false,%Pour arrêter la construction à une étape particulière
Nom=\jobname,%Pour la sauvegarde du fichier mp
Grille=false,%Pour faire apparaître une grille
+ Couleur=black,%Couleur du tracé
LargeurG=10,%Largeur Grille
HauteurG=10,%Hauteur Grille
TortueD=false,%Affiche la tortue au départ
@@ -194,7 +195,7 @@
\mplibforcehmode
\begin{mplibcode}
input PfCTurtleTestRemplis.mp;
-
+ drawoptions(withcolor \useKV[Tortue]{Couleur});
pair Depart;
Depart=\useKV[Tortue]{Depart} if \useKV[Tortue]{Cases}:+(15,15)fi;
pair A[],B[];
diff --git a/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex b/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
index 5afdcfecaa..91f90c96d2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCVueCubes.tex
@@ -161,8 +161,6 @@
draw Projette((k/Hauteur)[Adg0,Adg3])--Projette((k/Hauteur)[Adg1,Adg2]);
endfor;
fi;
-
- %draw (llcorner currentpicture)--(lrcorner currentpicture)--(urcorner currentpicture)--(ulcorner currentpicture)--cycle;
\end{mplibcode}
\ifboolKV[VueCubes]{Grilles}{}{%
\hspace*{1.5cm}
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index 1b4f7c5a7b..80dca0a8df 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/04/17}%
+\def\filedate{2023/05/01}%
\let\PfCfiledate\filedate%
-\def\fileversion{0.99-z-j}%
+\def\fileversion{0.99-z-k}%
\let\PfCfileversion\fileversion%
\ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
@@ -569,7 +569,7 @@
}%\emoticon
}%\raisebox
}
-
+\input{PfCPavage}
\input{PfCNonogramme}
\input{PfCJeuRangement}
\input{PfCTrio}
diff --git a/macros/latex/contrib/profcollege/metapost/PfCConstantes.mp b/macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
index 02895dcf8c..bdef5781f1 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
@@ -18,3 +18,19 @@ orangevif=(1,0.25,0.1);
vert=(0,1,0);
jaune=rouge+vert;
gris=0.8*white;
+
+%coloriage et lumière
+vardef Hsv(expr CC)=%CC couleur donnée en hsv d'après http://en.wikipedia.org/wiki/HSL_color_space
+ save $;
+ color $;
+ SSw:=floor(redpart(CC)/60);
+ SSh:=SSw mod 6;
+ SSf:=(redpart(CC)/60)-floor(SSw);
+ SSs:=greenpart((CC));
+ SSv:=bluepart((CC));
+ SSp:=SSv*(1-SSs);
+ SSq:=SSv*(1-SSf*SSs);
+ SSt:=SSv*(1-(1-SSf)*SSs);
+ if SSh=0: $=(SSv,SSt,SSp) elseif SSh=1:$=(SSq,SSv,SSp) elseif SSh=2:$=(SSp,SSv,SSt) elseif SSh=3:$=(SSp,SSq,SSv) elseif SSh=4:$=(SSt,SSp,SSv) elseif SSh=5:$=(SSv,SSp,SSq) fi;
+ $
+enddef;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
index 3c6826777a..b3edc8af1f 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
@@ -14,6 +14,7 @@ pair _coinnum;%milieu côté gauche pour placer la numérotation des lignes
numeric Nblignes; Nblignes:=1;
pair DebutListe; DebutListe=(0,0);
boolean NumeroteLignes; NumeroteLignes=false;
+boolean NumeroteFinBloc; NumeroteFinBloc=false;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% couleurs
color CoulLignes; CoulLignes:=black;
@@ -1711,6 +1712,10 @@ $=image(
_coinprec:=(llcorner $);
_coinprec:=_coinprec+(0,eb);
numblocrep:=numblocrep-1;
+if NumeroteFinBloc=true:
+ label(TEX("\footnotesize"&decimal(Nblignes)&""),_coinprec+(-3*eb,2*eb));
+ Nblignes:=Nblignes+1;
+fi;
$
enddef;
diff --git a/macros/latex/contrib/srdp-mathematik/README.md b/macros/latex/contrib/srdp-mathematik/README.md
index 2d3d4ee7a5..e66f6b3f8c 100644
--- a/macros/latex/contrib/srdp-mathematik/README.md
+++ b/macros/latex/contrib/srdp-mathematik/README.md
@@ -1,4 +1,4 @@
-# srdp-mathematik.sty v1.11.0
+# srdp-mathematik.sty v1.12.0
This package provides basic commands for the defined formats of the Austrian sRDP in mathematics.
Furthermore, it includes ways to implement answers in the tex file, which can be voluntarily displayed in the pdf file and
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
index d58f360d39..9fc554aeb0 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
Binary files differ
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
index 7b1238730c..163e7b57df 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
@@ -10,7 +10,7 @@
%
\NeedsTeXFormat{LaTeX2e}[1996/12/26]
-\ProvidesPackage{srdp-mathematik}[2022/12/16 v1.11.0 Standard-Schularbeitsformate]
+\ProvidesPackage{srdp-mathematik}[2023/05/01 v1.12.0 Standard-Schularbeitsformate]
\usepackage{color}
@@ -86,6 +86,7 @@
\newcounter{info}
\newcounter{marker}
\DeclareOption{solution_on}{\setcounter{Antworten}{1}}
+\DeclareOption{solution_minimal}{\setcounter{Antworten}{1}}
\DeclareOption{solution_off}{\setcounter{Antworten}{0}}
\DeclareOption{info_on}{\setcounter{info}{1}}
\DeclareOption{info_off}{\setcounter{info}{0}}
@@ -229,21 +230,28 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{number}
+\newcounter{counterhalfpoints}
\newcommand*\rfrac[2]{{}^{#1}\!/_{#2}}
\makeatletter
+
\def\addifisinteger#1{%
\sbox\z@{\@tempcnta=0#1\relax}%
\expandafter\ifdim\wd\z@>\z@\relax
- {}\else
+ \IfEndWith{#1}{.5}{\addtocounter{punkte}{\fpeval{trunc(#1,0)}}\stepcounter{counterhalfpoints}}{\PackageError{srdp-mathemathik}{Points must be integers or ".5"}{Only numbers are allowed as input. Decimal point must be "." not ","}}\else
\addtocounter{punkte}{#1}\fi}
-\makeatother
-\makeatletter
\def\checkifinteger#1#2{%
\sbox\z@{\@tempcnta=0#1\relax}%
\expandafter\ifdim\wd\z@>\z@\relax
\scriptsize$\rfrac{#2}{2}$\small\else#1\fi}
+
+\def\dottocomma#1{%
+\sbox\z@{\@tempcnta=0#1\relax}%
+\expandafter\ifdim\wd\z@>\z@\relax
+\begingroup\def\@tempa##1.##2\@nil{##1,\ifx\relax##2\relax\else##2\fi}%
+\@tempa#1\@nil
+\endgroup\else#1\fi}
\makeatother
\NewEnviron{beispiel}[2][\unskip]{\FPeval{\halbepunkte}{clip(#2/2)}%
@@ -255,7 +263,7 @@
\end{minipage}
- \begin{minipage}[t]{0.11\textwidth} \raggedleft \small{\_\_\_/\ifthenelse{\equal{#1}{\string 1/2}}{\checkifinteger{\halbepunkte}{#2}/}{\ifthenelse{\equal{#1}{\string 1}}{1/}{}}#2\addifisinteger{#2}\\
+ \begin{minipage}[t]{0.11\textwidth} \raggedleft \small{\_\_\_/\ifthenelse{\equal{#1}{\string 1/2}}{\checkifinteger{\halbepunkte}{#2}/}{\ifthenelse{\equal{#1}{\string 1}}{1/}{}}\dottocomma{#2}\addifisinteger{#2}\\
\ifthenelse{\equal{#1}{\string 1/2}}{}{\antwort{\footnotesize #1 \normalsize}}}
\end{minipage}
\vspace{\baselineskip}
@@ -306,9 +314,9 @@
\rightmargin.12\textwidth
\def\makelabel##1{\stepcounter{number}%
\hss\llap{\thenumber.}%
- \addtocounter{punkte}{##1}%
- \rlap{\kern\dimexpr\textwidth-\leftmargin
- \llap{\small\_\_\_/##1}}}}%
+ \addifisinteger{##1}%
+ \rlap{\kern\dimexpr\textwidth-\leftmargin+6pt
+ \llap{\small\_\_\_/\dottocomma{##1}}}}}%
}
{\endlist}
@@ -400,14 +408,14 @@
%%%%%%%%%%%% NOTENSCHLUESSEL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
-
-\NewDocumentCommand{\notenschluessel}{ O{} O{} O{} m m m m}{
+\newcounter{temporarygesamtpunkte}
+\NewDocumentCommand{\notenschluessel}{ O{} O{} O{} m m m m}{\ifthenelse{\isodd{\thecounterhalfpoints}}{\setcounter{temporarygesamtpunkte}{\numexpr\thepunkte+(\thecounterhalfpoints-1)/2\relax}}{\setcounter{temporarygesamtpunkte}{\numexpr\thepunkte+\thecounterhalfpoints/2\relax}}%
\null\vfill
\STautoround{3}\renewcommand{\arraystretch}{0}\tiny
\begin{spreadtab}[\STsavecell\gutgenau{b2} \STsavecell\befriedigendgenau{c2} \STsavecell\genuegendgenau{d2} \STsavecell\nichtgenuegendgenau{e2}
\STsavecell\gut{b3} \STsavecell\befriedigend{c3} \STsavecell\genuegend{d3} \STsavecell\nichtgenuegend{e3}
\STsavecell\gutpluseins{b4} \STsavecell\befriedigendpluseins{c4} \STsavecell\genuegendpluseins{d4} \STsavecell\nichtgenuegendpluseins{e4} \STsavecell\gutminuseins{b5} \STsavecell\befriedigendminuseins{c5} \STsavecell\genuegendminuseins{d5} \STsavecell\nichtgenuegendminuseins{e5}]{{tabular}{ccccc}}
- \SThidecol\thepunkte &\SThidecol 1 &\SThidecol2 &\SThidecol 3 &\SThidecol 4 \\
+ \SThidecol \thetemporarygesamtpunkte &\SThidecol 1 &\SThidecol2 &\SThidecol 3 &\SThidecol 4 \\
& a1*#4 &a1*#5 & a1*#6 & a1*#7 \\
&trunc(a1*#4,0) & trunc(a1*#5,0) &trunc(a1*#6,0) &trunc(a1*#7,0) \\
&b3+1 &c3+1 &d3+1 & e3+1\\
@@ -418,31 +426,31 @@
\begin{tabular}{|C{3cm}C{3cm}C{3cm}C{3cm}C{3cm}|} \hline
\ifthenelse{\equal{#2}{prozent}}{%
Erreichte Punkte & Prozent & Gesamt & \multicolumn{2}{c|}{Note} \\
-&& \multirow{2}{*}{\thepunkte} && \\%
+&& \multirow{2}{*}{\ifthenelse{\isodd{\thecounterhalfpoints}}{\thetemporarygesamtpunkte ,5}{\thetemporarygesamtpunkte}} && \\%
}{%
Erreichte Punkte &Gesamt&\multicolumn{2}{c}{Note}& \\
-&\multirow{2}{*}{\thepunkte} &&& \\}
+&\multirow{2}{*}{\ifthenelse{\isodd{\thecounterhalfpoints}}{\thetemporarygesamtpunkte ,5}{\thetemporarygesamtpunkte}} &&& \\}
&&&& \\ \hline \hline
\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{Sehr gut}} & \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{Gut}} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
-\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\thepunkte\ ~-~ \ifdim\gut pt=\gutgenau pt \gut\else\gutpluseins\fi}}& \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\ifdim\gut pt=\gutgenau pt \gutminuseins\else\gut\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\befriedigend pt=\befriedigendgenau pt \befriedigend\else\befriedigendpluseins\fi}} & \scriptsize{\ifdim\befriedigend pt=\befriedigendgenau pt \befriedigendminuseins\else\befriedigend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\genuegend pt=\genuegendgenau pt \genuegend\else\genuegendpluseins\fi} & \scriptsize{\ifdim\genuegend pt=\genuegendgenau pt \genuegendminuseins\else\genuegend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} & \scriptsize{unter \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} \\ \hline
+\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\ifthenelse{\isodd{\thecounterhalfpoints}}{\thetemporarygesamtpunkte ,5}{\thetemporarygesamtpunkte} ~-~ \ifdim\gut pt=\gutgenau pt \gut\else\gutpluseins\fi}}& \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\ifdim\gut pt=\gutgenau pt \gutminuseins\else\gut\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\befriedigend pt=\befriedigendgenau pt \befriedigend\else\befriedigendpluseins\fi}} & \scriptsize{\ifdim\befriedigend pt=\befriedigendgenau pt \befriedigendminuseins\else\befriedigend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\genuegend pt=\genuegendgenau pt \genuegend\else\genuegendpluseins\fi} & \scriptsize{\ifdim\genuegend pt=\genuegendgenau pt \genuegendminuseins\else\genuegend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} & \scriptsize{unter \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} \\ \hline
\end{tabular}
\end{center}\STautoround{}\normalsize}
-\NewDocumentCommand{\individualnotenschluessel}{ O{} O{} m m m m m m m}{
+\NewDocumentCommand{\individualnotenschluessel}{ O{} O{} m m m m m m m}{\ifthenelse{\isodd{\thecounterhalfpoints}}{\setcounter{temporarygesamtpunkte}{\numexpr\thepunkte+(\thecounterhalfpoints-1)/2\relax}}{\setcounter{temporarygesamtpunkte}{\numexpr\thepunkte+\thecounterhalfpoints/2\relax}}%
\null\vfill
\footnotesize\renewcommand{\arraystretch}{1}
\begin{center}
\begin{tabular}{|C{3cm}C{3cm}C{3cm}C{3cm}C{3cm}|} \hline
\ifthenelse{\equal{#2}{prozent}}{%
Erreichte Punkte & Prozent & Gesamt & \multicolumn{2}{c|}{Note} \\
-&& \multirow{2}{*}{\ifthenelse{\equal{#1}{}}{\thepunkte}{#1}} && \\%
+&& \multirow{2}{*}{\ifthenelse{\equal{#1}{}}{\ifthenelse{\isodd{\thecounterhalfpoints}}{\thetemporarygesamtpunkte ,5}{\thetemporarygesamtpunkte}}{#1}} && \\%
}{%
Erreichte Punkte &Gesamt&\multicolumn{2}{c}{Note}& \\
-&\multirow{2}{*}{\ifthenelse{\equal{#1}{}}{\thepunkte}{#1}} &&& \\}
+&\multirow{2}{*}{\ifthenelse{\equal{#1}{}}{\ifthenelse{\isodd{\thecounterhalfpoints}}{\thetemporarygesamtpunkte ,5}{\thetemporarygesamtpunkte}}{#1}} &&& \\}
&&&& \\ \hline \hline
\scriptsize{Sehr gut} & \scriptsize{Gut} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
-\scriptsize{\ifthenelse{\equal{#1}{}}{\thepunkte\ }{#1} ~-~ #3}& \scriptsize{#4 ~-~ #5} & \scriptsize{#6 ~-~ #7} & \scriptsize{#8 ~-~ #9} & \scriptsize{unter #9} \\ \hline
+\scriptsize{\ifthenelse{\equal{#1}{}}{\ifthenelse{\isodd{\thecounterhalfpoints}}{\thetemporarygesamtpunkte ,5}{\thetemporarygesamtpunkte} }{#1} ~-~ #3}& \scriptsize{#4 ~-~ #5} & \scriptsize{#6 ~-~ #7} & \scriptsize{#8 ~-~ #9} & \scriptsize{unter #9} \\ \hline
\end{tabular}
\end{center}\normalsize}
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
index e82cc7b51e..9d95549765 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
@@ -55,7 +55,7 @@ hidelinks
\vfill
-\Huge The \textit{srdp-mathematik} package v1.11.0\\[1cm]
+\Huge The \textit{srdp-mathematik} package v1.12.0\\[1cm]
Documentation \\ [1cm]
@@ -92,7 +92,7 @@ Die \textit{allgemeinen Befehle} erleichtern das Erstellen von Tests, Schularbei
\subsection{Beispielumgebungen}
-Jedes Beispiel sollte innerhalb einer Beispielumgebung gesetzt werden, welche bei der Formatierung und der Verarbeitung der Punkte unterstützt. Dabei werden zwei Beispiel-Typen unterschieden: \texttt{beispiel} und \texttt{langesbeispiel}.
+Jedes Beispiel sollte innerhalb einer Beispielumgebung gesetzt werden, welche bei der Formatierung und der Verarbeitung der Punkte unterstützt. Als Punkte sind natürliche Zahlen sowie halbe Punkte (z.B.: 3.5) möglich. Dabei werden zwei Beispiel-Typen unterschieden: \texttt{beispiel} und \texttt{langesbeispiel}.
\vspace{1cm}
\subsubsection{\texttt{\textbackslash begin\{beispiel\} \ldots\ \textbackslash end\{beispiel\}}}
@@ -300,9 +300,9 @@ Analog zum individuellen Notenschlüssel kann auch das Beurteilungsschema belieb
\newpage
-\subsection{Paketoption -- Lösungseingabe: \texttt{[solution\_on/off]}}
+\subsection{Paketoption -- Lösungseingabe: \texttt{[solution\_on/off/minimal]}}
-Es besteht die Möglichkeit, die Lösung in der erstellten \texttt{tex}-Datei zu implementieren und diese bei Bedarf in der \texttt{PDF}-Datei ein- bzw. auszublenden. Um diese Funktion nutzen zu können, muss die \texttt{solution\_on/off} Option im \texttt{srdp-mathematik}-Paket geladen werden. Diese kann durch hinzufügen durch "`\texttt{solution\_on}"' bzw. "`\texttt{solution\_off}"' aktiviert bzw. deaktiviert werden. Also:
+Es besteht die Möglichkeit, die Lösung in der erstellten \texttt{tex}-Datei zu implementieren und diese bei Bedarf in der \texttt{PDF}-Datei ein- bzw. auszublenden. Um diese Funktion nutzen zu können, muss die \texttt{solution\_on/off/minimal} Option im \texttt{srdp-mathematik}-Paket geladen werden. Diese kann durch hinzufügen durch "`\texttt{solution\_on}"' bzw. "`\texttt{solution\_off}"' aktiviert bzw. deaktiviert werden. Also:
\begin{verbatim}
\usepackage[solution_on]{srdp-mathematik}
@@ -314,6 +314,7 @@ oder
\usepackage[solution_off]{srdp-mathematik}
\end{verbatim}
+Die Option "`\texttt{solution\_minimal}"' zeigt zwar alle Lösungen an, jedoch wird die deutliche Markierung der Lösungsanzeige nicht dargestellt.\leer
Die korrekte Lösungseingabe der vorformatierten Typ-1-Aufgaben wird bei den entsprechenden Befehlen direkt erklärt. Unabhängig davon, gibt es die Möglichkeit mithilfe des \texttt{antwort}-Befehls, beliebige Abschnitte als \textit{Antwort} zu deklarieren. (verwendeter counter: \texttt{Antworten=0, 1})
diff --git a/macros/unicodetex/latex/bithesis/bithesis.dtx b/macros/unicodetex/latex/bithesis/bithesis.dtx
index 45f675c4f2..4ff2271a14 100644
--- a/macros/unicodetex/latex/bithesis/bithesis.dtx
+++ b/macros/unicodetex/latex/bithesis/bithesis.dtx
@@ -21,7 +21,7 @@
%<thesis>\ProvidesExplClass{bithesis}
%<report>\ProvidesExplClass{bitreport}
%<beamer>\ProvidesExplClass{bitbeamer}
-%<cls>{2023-04-23}{3.5.3}{BIT Thesis Templates}
+%<cls>{2023-05-01}{3.5.4}{BIT Thesis Templates}
%
%<oldcls>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
%<book>\ProvidesClass{bitbook}
@@ -30,7 +30,7 @@
%<oldcls> [2022/05/09 v2.1.1 BIT Thesis Templates]
%
%<*driver>
-\ProvidesFile{bithesis.dtx}[2023/04/23 3.5.3 BIT Thesis Templates]
+\ProvidesFile{bithesis.dtx}[2023/05/01 3.5.4 BIT Thesis Templates]
\documentclass[letterpaper]{l3doc}
\usepackage{dtx-style}
@@ -1593,6 +1593,13 @@
%
% \section{常见问题和疑难解答}
%
+% \subsection{为什么我的研究生模板开头有间隔的空白页?}
+%
+% 根据《北京理工大学研究生学位论文撰写规范》,摘要前的页面需要单面打印,之后的内容需要双面打印。
+% 因此多出的空白页可以让你免于切换单、双面打印的烦恼——统一使用双面打印即可。
+%
+% 或者,你可以关闭 |twoside| \ref{doc/function//twoside} 选项来去除这些空白。
+%
% \subsection{如何修改数学公式的字体?}
%
% 可以在导言区引入 \pkg{unicode-math} 宏包,
@@ -3006,7 +3013,7 @@
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\arabicHeiti}
% 遗留下来的黑体字体定义。
% \begin{macrocode}
@@ -3089,7 +3096,7 @@
\arabic{subsubsection}
}
},
- format={\l_@@_title_font_cs:n \bfseries \raggedright \zihao{-4}},
+ format={\l_@@_title_font_cs:n \raggedright \zihao{-4}},
nameformat = {},
titleformat = {},
beforeskip=14bp plus 1ex minus .2ex,
@@ -3702,11 +3709,11 @@
\heiti\zihao{3}
\c_@@_graduate_label_originality_tl
}
- \end{center}~\par
+ \end{center}
% 本部分字号为四号。
\zihao{4}
- \c_@@_graduate_label_originality_clause_tl
+ \qquad\c_@@_graduate_label_originality_clause_tl
\vspace{17mm}
@@ -3723,9 +3730,9 @@
\heiti\zihao{3}
\c_@@_graduate_label_authorization_tl
}
- \end{center}~\par
+ \end{center}
- \c_@@_graduate_label_authorization_clause_tl
+ \qquad\c_@@_graduate_label_authorization_clause_tl
\vspace*{15mm}
diff --git a/macros/unicodetex/latex/bithesis/bithesis.pdf b/macros/unicodetex/latex/bithesis/bithesis.pdf
index aff4f4217e..a283fc36c7 100644
--- a/macros/unicodetex/latex/bithesis/bithesis.pdf
+++ b/macros/unicodetex/latex/bithesis/bithesis.pdf
Binary files differ
diff --git a/support/latexindent/LatexIndent/AlignmentAtAmpersand.pm b/support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
index 6d3b076c6b..16603094a9 100644
--- a/support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
+++ b/support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
@@ -132,7 +132,9 @@ sub create_unique_id {
}
sub align_at_ampersand {
- my $self = shift;
+ my $self = shift;
+ my %input = @_;
+
return if ( ${$self}{bodyLineBreaks} == 0 );
# some blocks may contain verbatim to be measured
@@ -286,10 +288,26 @@ sub align_at_ampersand {
colSpan => ".",
delimiter => "",
delimiterLength => 0,
- measureThis => ( $numberOfAmpersands > 0 ? ${$self}{measureRow} : 0 )
+ measureThis => ( $numberOfAmpersands > 0 ? ${$self}{measureRow} : 0 ),
+ DBSpadding => 0,
}
);
+ #
+ # if content is to be aligned after \\
+ # (using alignContentAfterDoubleBackSlash) then we need to
+ # adjust the width of the first cell
+ #
+ if ( defined $input{beforeDBSlengths} and $columnCounter == 0 ) {
+ my $currentRowDBSlength = ${ $input{beforeDBSlengths} }[ $rowCounter + 1 ];
+ ${ $cellStorage[$rowCounter][$columnCounter] }{width}
+ += $currentRowDBSlength + ( $input{maxDBSlength} - $currentRowDBSlength );
+
+ ${ $cellStorage[$rowCounter][$columnCounter] }{DBSpadding}
+ = ( $input{maxDBSlength} - $currentRowDBSlength );
+
+ }
+
# possible hidden children, see https://github.com/cmhughes/latexindent.pl/issues/85
if ( ( ${$self}{measureHiddenChildren} or ${$self}{measureVerbatim} )
and $column =~ m/.*?$tokens{beginOfToken}/s )
@@ -329,6 +347,7 @@ sub align_at_ampersand {
colSpan => ".",
delimiter => "",
delimiterLength => 0,
+ DBSpadding => 0,
measureThis => 0
}
);
@@ -380,13 +399,24 @@ sub align_at_ampersand {
for (
"entry", "type", "colSpan", "width",
"measureThis", "maximumColumnWidth", "individualPadding", "groupPadding",
- "delimiter", "delimiterLength"
+ "delimiter", "delimiterLength", "DBSpadding"
);
}
# main formatting loop
$self->main_formatting;
+ if ( defined $input{measure_after_DBS} ) {
+
+ # delete the original body
+ ${$self}{body} = q();
+
+ # update the body
+ ${$self}{body} .= ${$_}{row} . "\n" for @formattedBody;
+
+ return;
+ }
+
#
# final \\ loop
#
@@ -447,6 +477,49 @@ sub align_at_ampersand {
}
}
+ #
+ # put original body and 'after DBS body' together
+ #
+ if ( ${$self}{alignContentAfterDoubleBackSlash} ) {
+
+ # check that spacesAfterDoubleBackSlash>=0
+ ${$self}{spacesAfterDoubleBackSlash} = max( ${$self}{spacesAfterDoubleBackSlash}, 0 );
+
+ my @beforeDBSlengths = q();
+ my @originalFormattedBody = @formattedBody;
+ my $afterDBSbody = q();
+ my $maxDBSlength = 0;
+ foreach (@originalFormattedBody) {
+ ${$_}{row} =~ s/(.*?)(${${$mainSettings{fineTuning}}{modifyLineBreaks}}{doubleBackSlash})\h*//s;
+ ${$_}{beforeDBS} = ( $1 ? $1 : q() );
+ ${$_}{DBS} = ( $2 ? $2 : q() );
+ ${$_}{DBS} .= " " x ( ${$self}{spacesAfterDoubleBackSlash} ) if ( ${$_}{DBS} ne '' );
+ $afterDBSbody .= ${$_}{row} . "\n";
+ push( @beforeDBSlengths, &get_column_width( ${$_}{beforeDBS} . ${$_}{DBS} ) );
+ $maxDBSlength = max( $maxDBSlength, &get_column_width( ${$_}{beforeDBS} . ${$_}{DBS} ) );
+ }
+
+ ${$self}{body} = $afterDBSbody;
+ $self->align_at_ampersand(
+ measure_after_DBS => 1,
+ beforeDBSlengths => \@beforeDBSlengths,
+ maxDBSlength => $maxDBSlength
+ );
+
+ # create new afterDBSbody
+ my @afterDBSbody = split( "\n", ${$self}{body} );
+
+ # combine ORIGINAL body and ENDPIECE body
+ my $index = -1;
+ foreach (@originalFormattedBody) {
+ $index++;
+ ${$_}{row} = ${$_}{beforeDBS} . ${$_}{DBS};
+ ${$_}{row} .= $afterDBSbody[$index];
+ }
+
+ @formattedBody = @originalFormattedBody;
+ }
+
# delete the original body
${$self}{body} = q();
@@ -533,6 +606,12 @@ sub main_formatting {
next;
}
+ # alignment *after* double back slash, see
+ #
+ # test-cases/alignment/issue-393.tex
+ #
+ $tmpRow .= " " x ${$cell}{DBSpadding};
+
# the placement of the padding is dependent on the value of justification
if ( ${$self}{justification} eq "left" ) {
@@ -899,6 +978,7 @@ sub individual_padding {
colSpan => ".",
delimiter => "",
delimiterLength => 0,
+ DBSpadding => 0,
}
);
}
diff --git a/support/latexindent/LatexIndent/GetYamlSettings.pm b/support/latexindent/LatexIndent/GetYamlSettings.pm
index 440e2ef20b..c46d0c5164 100644
--- a/support/latexindent/LatexIndent/GetYamlSettings.pm
+++ b/support/latexindent/LatexIndent/GetYamlSettings.pm
@@ -39,20 +39,22 @@ our %previouslyFoundSettings;
# default values for align at ampersand routine
our @alignAtAmpersandInformation = (
- { name => "lookForAlignDelims", yamlname => "delims", default => 1 },
- { name => "alignDoubleBackSlash", default => 1 },
- { name => "spacesBeforeDoubleBackSlash", default => 1 },
- { name => "multiColumnGrouping", default => 0 },
- { name => "alignRowsWithoutMaxDelims", default => 1 },
- { name => "spacesBeforeAmpersand", default => 1 },
- { name => "spacesAfterAmpersand", default => 1 },
- { name => "justification", default => "left" },
- { name => "alignFinalDoubleBackSlash", default => 0 },
- { name => "dontMeasure", default => 0 },
- { name => "delimiterRegEx", default => "(?<!\\\\)(&)" },
- { name => "delimiterJustification", default => "left" },
- { name => "leadingBlankColumn", default => -1 },
- { name => "lookForChildCodeBlocks", default => 1 },
+ { name => "lookForAlignDelims", yamlname => "delims", default => 1 },
+ { name => "alignDoubleBackSlash", default => 1 },
+ { name => "spacesBeforeDoubleBackSlash", default => 1 },
+ { name => "multiColumnGrouping", default => 0 },
+ { name => "alignRowsWithoutMaxDelims", default => 1 },
+ { name => "spacesBeforeAmpersand", default => 1 },
+ { name => "spacesAfterAmpersand", default => 1 },
+ { name => "justification", default => "left" },
+ { name => "alignFinalDoubleBackSlash", default => 0 },
+ { name => "dontMeasure", default => 0 },
+ { name => "delimiterRegEx", default => "(?<!\\\\)(&)" },
+ { name => "delimiterJustification", default => "left" },
+ { name => "leadingBlankColumn", default => -1 },
+ { name => "lookForChildCodeBlocks", default => 1 },
+ { name => "alignContentAfterDoubleBackSlash", default => 0 },
+ { name => "spacesAfterDoubleBackSlash", default => 1 },
);
sub yaml_read_settings {
diff --git a/support/latexindent/LatexIndent/Version.pm b/support/latexindent/LatexIndent/Version.pm
index 998d3dbfe3..c20ea7afb1 100644
--- a/support/latexindent/LatexIndent/Version.pm
+++ b/support/latexindent/LatexIndent/Version.pm
@@ -20,6 +20,6 @@ use warnings;
use Exporter qw/import/;
our @EXPORT_OK = qw/$versionNumber $versionDate/;
-our $versionNumber = '3.20.6';
-our $versionDate = '2023-04-11';
+our $versionNumber = '3.21';
+our $versionDate = '2023-05-01';
1
diff --git a/support/latexindent/README b/support/latexindent/README
index 95461bf24f..c799fc2b29 100644
--- a/support/latexindent/README
+++ b/support/latexindent/README
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- latexindent.pl, version 3.20.6, 2023-04-11
+ latexindent.pl, version 3.21, 2023-05-01
PERL script to indent code within environments, and align delimited
environments in .tex files.
diff --git a/support/latexindent/bin/linux/latexindent b/support/latexindent/bin/linux/latexindent
index b4d88492d7..d03ceb16b8 100644
--- a/support/latexindent/bin/linux/latexindent
+++ b/support/latexindent/bin/linux/latexindent
Binary files differ
diff --git a/support/latexindent/bin/macos/latexindent b/support/latexindent/bin/macos/latexindent
index e4d021aaba..a86d4d43c3 100644
--- a/support/latexindent/bin/macos/latexindent
+++ b/support/latexindent/bin/macos/latexindent
Binary files differ
diff --git a/support/latexindent/defaultSettings.yaml b/support/latexindent/defaultSettings.yaml
index 309ba003af..698ef09c11 100644
--- a/support/latexindent/defaultSettings.yaml
+++ b/support/latexindent/defaultSettings.yaml
@@ -1,5 +1,5 @@
#
-# latexindent.pl, version 3.20.6, 2023-04-11
+# latexindent.pl, version 3.21, 2023-05-01
#
# defaultSettings.yaml, the default settings for latexindent.pl
#
@@ -170,6 +170,8 @@ lookForAlignDelims:
delimiterRegEx: (?<!\\)(&)
delimiterJustification: left
lookForChildCodeBlocks: 1
+ alignContentAfterDoubleBackSlash: 0
+ spacesAfterDoubleBackSlash: 1
tabularx:
delims: 1
longtable: 1
diff --git a/support/latexindent/documentation/latexindent-yaml-schema.json b/support/latexindent/documentation/latexindent-yaml-schema.json
index ec760e70ac..b29664e2c0 100644
--- a/support/latexindent/documentation/latexindent-yaml-schema.json
+++ b/support/latexindent/documentation/latexindent-yaml-schema.json
@@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/schema",
"$id": "latexindent-yaml-schema.json",
"title": "latexindent.pl YAML schema",
- "description": "latexindent.pl YAML schema helper, V3.20.6 2023-04-11",
+ "description": "latexindent.pl YAML schema helper, V3.21 2023-05-01",
"type": "object",
"properties": {
"fileExtensionPreference": {
diff --git a/support/latexindent/documentation/latexindent.pdf b/support/latexindent/documentation/latexindent.pdf
index deaf1a130f..dfdeea52cc 100644
--- a/support/latexindent/documentation/latexindent.pdf
+++ b/support/latexindent/documentation/latexindent.pdf
Binary files differ
diff --git a/support/latexindent/documentation/latexindent.tex b/support/latexindent/documentation/latexindent.tex
index 50fa1a45e7..a85bdfafae 100644
--- a/support/latexindent/documentation/latexindent.tex
+++ b/support/latexindent/documentation/latexindent.tex
@@ -409,121 +409,121 @@
\lstdefinestyle{lookForAlignDelims}{
style=yaml-LST,
- firstnumber=158,linerange={158-174},
+ firstnumber=158,linerange={158-176},
numbers=left,
}
\lstdefinestyle{indentAfterItems}{
style=yaml-LST,
- firstnumber=237,linerange={237-244},
+ firstnumber=239,linerange={239-246},
numbers=left,
}
\lstdefinestyle{itemNames}{
style=yaml-LST,
- firstnumber=250,linerange={250-252},
+ firstnumber=252,linerange={252-254},
numbers=left,
}
\lstdefinestyle{specialBeginEnd}{
style=yaml-LST,
- firstnumber=256,linerange={256-269},
+ firstnumber=258,linerange={258-271},
numbers=left,
}
\lstdefinestyle{indentAfterHeadings}{
style=yaml-LST,
- firstnumber=279,linerange={279-288},
+ firstnumber=281,linerange={281-290},
numbers=left,
}
\lstdefinestyle{noAdditionalIndentGlobalEnv}{
style=yaml-LST,
- firstnumber=337,linerange={337-338},
+ firstnumber=339,linerange={339-340},
numbers=left,
}
\lstdefinestyle{noAdditionalIndentGlobal}{
style=yaml-LST,
- firstnumber=337,linerange={337-349},
+ firstnumber=339,linerange={339-351},
numbers=left,
}
\lstdefinestyle{indentRulesGlobalEnv}{
style=yaml-LST,
- firstnumber=353,linerange={353-354},
+ firstnumber=355,linerange={355-356},
numbers=left,
}
\lstdefinestyle{indentRulesGlobal}{
style=yaml-LST,
- firstnumber=353,linerange={353-365},
+ firstnumber=355,linerange={355-367},
numbers=left,
}
\lstdefinestyle{commandCodeBlocks}{
style=yaml-LST,
- firstnumber=368,linerange={368-383},
+ firstnumber=370,linerange={370-385},
numbers=left,
}
\lstdefinestyle{modifylinebreaks}{
style=yaml-LST,
- firstnumber=498,linerange={498-500},
+ firstnumber=500,linerange={500-502},
numbers=left,
}
\lstdefinestyle{textWrapOptions}{
style=yaml-LST,
- firstnumber=526,linerange={526-527},
+ firstnumber=528,linerange={528-529},
numbers=left,
}
\lstdefinestyle{textWrapOptionsAll}{
style=yaml-LST,
- firstnumber=526,linerange={526-553},
+ firstnumber=528,linerange={528-555},
numbers=left,
}
\lstdefinestyle{oneSentencePerLine}{
style=yaml-LST,
- firstnumber=501,linerange={501-525},
+ firstnumber=503,linerange={503-527},
numbers=left,
}
\lstdefinestyle{sentencesFollow}{
style=yaml-LST,
- firstnumber=507,linerange={507-515},
+ firstnumber=509,linerange={509-517},
numbers=left,
}
\lstdefinestyle{sentencesBeginWith}{
style=yaml-LST,
- firstnumber=516,linerange={516-519},
+ firstnumber=518,linerange={518-521},
numbers=left,
}
\lstdefinestyle{sentencesEndWith}{
style=yaml-LST,
- firstnumber=520,linerange={520-525},
+ firstnumber=522,linerange={522-527},
numbers=left,
}
\lstdefinestyle{modifylinebreaksEnv}{
style=yaml-LST,
- firstnumber=555,linerange={555-564},
+ firstnumber=557,linerange={557-566},
numbers=left,
}
\lstdefinestyle{replacements}{
style=yaml-LST,
- firstnumber=616,linerange={616-624},
+ firstnumber=618,linerange={618-626},
numbers=left,
}
\lstdefinestyle{fineTuning}{
style=yaml-LST,
- firstnumber=627,linerange={627-679},
+ firstnumber=629,linerange={629-681},
numbers=left,
}
@@ -1000,8 +1000,8 @@ latexindent.pl -l quick-start8.yaml quick-start.tex
gives \cref{lst:quick-start-mod8}; note that the \emph{preamble} has been indented.
\begin{cmhtcbraster}
- \cmhlistingsfromfile*{demonstrations/quick-start-mod8.tex}{\texttt{quick-start-mod8.tex}}{lst:quick-start-mod8}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/quick-start8.yaml}[yaml-TCB]{\texttt{quick-start8.yaml}}{lst:quick-start8yaml}
+ \cmhlistingsfromfile{demonstrations/quick-start-mod8.tex}{\texttt{quick-start-mod8.tex}}{lst:quick-start-mod8}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/quick-start8.yaml}[yaml-TCB]{\texttt{quick-start8.yaml}}{lst:quick-start8yaml}
\end{cmhtcbraster}
See \cref{subsec:filecontents:preamble}.
@@ -1018,8 +1018,8 @@ latexindent.pl -l quick-start9.yaml quick-start.tex
gives \cref{lst:quick-start-mod9}.
\begin{cmhtcbraster}
- \cmhlistingsfromfile*{demonstrations/quick-start-mod9.tex}{\texttt{quick-start-mod9.tex}}{lst:quick-start-mod9}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/quick-start9.yaml}[yaml-TCB]{\texttt{quick-start9.yaml}}{lst:quick-start9yaml}
+ \cmhlistingsfromfile{demonstrations/quick-start-mod9.tex}{\texttt{quick-start-mod9.tex}}{lst:quick-start-mod9}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/quick-start9.yaml}[yaml-TCB]{\texttt{quick-start9.yaml}}{lst:quick-start9yaml}
\end{cmhtcbraster}
See \cref{sec:noadd-indent-rules}.
@@ -1793,7 +1793,7 @@ latexindent.pl myfile.tex
to load your own settings files.
We focus our discussion on \texttt{indentconfig.yaml}, but there are other options which
- are detailed in \cref{app:indentconfig:options}. \announce*{2023-01-01}{indentconfig
+ are detailed in \cref{app:indentconfig:options}. \announce{2023-01-01}{indentconfig
location options}
\subsection{indentconfig.yaml and .indentconfig.yaml}
@@ -2460,7 +2460,16 @@ latexindent.pl tabular1.tex
the same column, discussed in \cref{sec:delimiter-reg-ex};
\item \announce{2021-12-13}{lookForChildCodeBlocks feature}{lookForChildCodeBlocks}
optionally instructs \texttt{latexindent.pl} to search for child code blocks or
- not (default: 1), discussed in \cref{sec:lookForChildCodeBlocks}.
+ not (default: 1), discussed in \cref{sec:lookForChildCodeBlocks};
+ \item \announce*{2023-05-01}{alignContentAfterDoubleBackSlash feature}
+ alignContentAfterDoubleBackSlash optionally instructs \texttt{latexindent.pl} to
+ align content \emph{after} double back slash (default: 0), discussed in
+ \cref{sec:alignContentAfterDoubleBackSlash};
+ \item \announce*{2023-05-01}{spacesAfterDoubleBackSlash feature}
+ spacesAfterDoubleBackSlash optionally specifies the number (integer $\geq$ 0) of
+ spaces to be placed \emph{after} the double back slash \emph{when
+ alignContentAfterDoubleBackSlash is active}; demonstrated in
+ \cref{sec:alignContentAfterDoubleBackSlash}.
\end{itemize}
\begin{example}
@@ -3037,6 +3046,59 @@ latexindent.pl tabular-DM-1.tex -l=dontMeasure1a.yaml -o=+-mod1a
\end{cmhtcbraster}
\end{example}
+\subsubsection{lookForAlignDelims: alignContentAfterDoubleBackSlash}\label{sec:alignContentAfterDoubleBackSlash}
+ You can instruct \texttt{latexindent} to align \announce*{2023-05-01}{align content
+ after double back slash} content after the double back slash. See also
+ \vref{subsec:dbs}.
+
+ \begin{example}
+ We consider the file in \cref{lst:tabular5}, and the default output given in
+ \cref{lst:tabular5-default}.
+
+ \begin{cmhtcbraster}
+ \cmhlistingsfromfile*{demonstrations/tabular5.tex}{\texttt{tabular5.tex}}{lst:tabular5}
+ \cmhlistingsfromfile*{demonstrations/tabular5-default.tex}{\texttt{tabular5-default.tex}}{lst:tabular5-default}
+ \end{cmhtcbraster}
+
+ Using the settings given in \cref{lst:alignContentAfterDBS1} and running
+
+ \begin{commandshell}
+latexindent.pl -s tabular5.tex -l alignContentAfterDBS1 -o=+-mod1
+\end{commandshell}
+
+ gives the output in \cref{lst:tabular5-mod1}.
+
+ \begin{cmhtcbraster}[raster columns=2,
+ raster left skip=-2.5cm,
+ raster column skip=.03\linewidth]
+ \cmhlistingsfromfile*{demonstrations/tabular5-mod1.tex}{\texttt{tabular5-mod1.tex}}{lst:tabular5-mod1}
+ \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/alignContentAfterDBS1.yaml}[yaml-TCB]{\texttt{alignContentAfterDBS1.yaml}}{lst:alignContentAfterDBS1}
+ \end{cmhtcbraster}
+ \end{example}
+
+ \begin{example}
+ When using the \texttt{alignContentAfterDoubleBackSlash} feature, then you can also
+ specify how many spaces to insert after the double backslash; the default is 1.
+ \announce*{2023-05-01}{specify number of spaces after double back slash when aligning
+ content after double back slash}
+
+ Starting from \cref{lst:tabular5} and using the the settings given in
+ \cref{lst:alignContentAfterDBS2}
+
+ \begin{commandshell}
+latexindent.pl -s tabular5.tex -l alignContentAfterDBS2 -o=+-mod2
+\end{commandshell}
+
+ gives the output in \cref{lst:tabular5-mod2}.
+
+ \begin{cmhtcbraster}[raster columns=2,
+ raster left skip=-2.5cm,
+ raster column skip=.03\linewidth]
+ \cmhlistingsfromfile*{demonstrations/tabular5-mod2.tex}{\texttt{tabular5-mod2.tex}}{lst:tabular5-mod2}
+ \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/alignContentAfterDBS2.yaml}[yaml-TCB]{\texttt{alignContentAfterDBS2.yaml}}{lst:alignContentAfterDBS2}
+ \end{cmhtcbraster}
+ \end{example}
+
\subsection{Indent after items, specials and headings}
\yamltitle{indentAfterItems}*{fields}
The environment names specified in \texttt{indentAfterItems} tell
@@ -4699,7 +4761,7 @@ latexindent.pl myfile.tex -m -o=+-mod1
\item it happens \emph{after} verbatim blocks have been found;
\item it happens \emph{after} the oneSentencePerLine routine (see
\cref{sec:onesentenceperline});
- \item it can happen \emph{before} or \emph{after} \announce*{2023-01-01}{text wrap:
+ \item it can happen \emph{before} or \emph{after} \announce{2023-01-01}{text wrap:
before/after} all of the other code blocks are found and does \emph{not} operate
on a per-code-block basis; when using \texttt{before} this means that, including
indentation, you may receive a column width wider than that which you specify in
@@ -4730,7 +4792,7 @@ latexindent.pl myfile.tex -m -o=+-mod1
(possibly combined) trailing comments is determined by the spaces (if any)
at the end of the text wrap block (see \cref{lst:tw-tc5});
\end{enumerate}
- \item trailing comments can receive text wrapping \announce*{2023-01-01}{text wrap
+ \item trailing comments can receive text wrapping \announce{2023-01-01}{text wrap
trailing comments}; examples are shown in \cref{subsubsec:tw:comments} and
\cref{subsubsec:ospl:tw:comments}.
\end{enumerate}
@@ -5196,7 +5258,7 @@ latexindent.pl -m tw-tc6.tex -l textwrap1A.yaml -o=+-mod1
\subsubsection{Text wrap: when before/after}\label{subsubsec:tw:before:after}
The text wrapping routine operates, by default, \texttt{before} the
- \announce*{2023-01-01}{text wrap: before/after details} code blocks have been found, but
+ \announce{2023-01-01}{text wrap: before/after details} code blocks have been found, but
this can be changed to \texttt{after}:
\begin{itemize}
\item \texttt{before} means it is likely that the columns of wrapped text may \emph{exceed} the
@@ -5210,7 +5272,7 @@ latexindent.pl -m tw-tc6.tex -l textwrap1A.yaml -o=+-mod1
\begin{example}
Let's begin with the file in \cref{lst:textwrap8}.
- \cmhlistingsfromfile*{demonstrations/textwrap8.tex}{\texttt{textwrap8.tex}}{lst:textwrap8}
+ \cmhlistingsfromfile{demonstrations/textwrap8.tex}{\texttt{textwrap8.tex}}{lst:textwrap8}
Using the settings given in \cref{lst:tw-before1} and running the command
@@ -5224,8 +5286,8 @@ latexindent.pl textwrap8.tex -o=+-mod1.tex -l=tw-before1.yaml -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/textwrap8-mod1.tex}{\texttt{textwrap8-mod1.tex}}{lst:textwrap8-mod1}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/tw-before1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{tw-before1.yaml}}{lst:tw-before1}
+ \cmhlistingsfromfile{demonstrations/textwrap8-mod1.tex}{\texttt{textwrap8-mod1.tex}}{lst:textwrap8-mod1}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/tw-before1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{tw-before1.yaml}}{lst:tw-before1}
\end{cmhtcbraster}
We note that, in \cref{lst:textwrap8-mod1}, that the wrapped text has \emph{exceeded}
@@ -5248,8 +5310,8 @@ latexindent.pl textwrap8.tex -o=+-mod2.tex -l=tw-after1.yaml -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/textwrap8-mod2.tex}{\texttt{textwrap8-mod2.tex}}{lst:textwrap8-mod2}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/tw-after1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{tw-after1.yaml}}{lst:tw-after1}
+ \cmhlistingsfromfile{demonstrations/textwrap8-mod2.tex}{\texttt{textwrap8-mod2.tex}}{lst:textwrap8-mod2}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/tw-after1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{tw-after1.yaml}}{lst:tw-after1}
\end{cmhtcbraster}
We note that, in \cref{lst:textwrap8-mod2}, that the wrapped text has \emph{obeyed} the
@@ -5258,14 +5320,14 @@ latexindent.pl textwrap8.tex -o=+-mod2.tex -l=tw-after1.yaml -m
\subsubsection{Text wrap: wrapping comments}\label{subsubsec:tw:comments}
You can instruct \texttt{latexindent.pl} to apply text wrapping to comments
- \announce*{2023-01-01}{text wrap trailing comments}; we demonstrate this with examples,
+ \announce{2023-01-01}{text wrap trailing comments}; we demonstrate this with examples,
see also \cref{subsubsec:ospl:tw:comments}. \index{comments!text wrap} \index{text
wrap!comments}
\begin{example}
We use the file in \cref{lst:textwrap9} which contains a trailing comment block.
- \cmhlistingsfromfile*{demonstrations/textwrap9.tex}{\texttt{textwrap9.tex}}{lst:textwrap9}
+ \cmhlistingsfromfile{demonstrations/textwrap9.tex}{\texttt{textwrap9.tex}}{lst:textwrap9}
Using the settings given in \cref{lst:wrap-comments1} and running the command
@@ -5279,8 +5341,8 @@ latexindent.pl textwrap9.tex -o=+-mod1.tex -l=wrap-comments1.yaml -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/textwrap9-mod1.tex}{\texttt{textwrap9-mod1.tex}}{lst:textwrap9-mod1}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/wrap-comments1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{wrap-comments1.yaml}}{lst:wrap-comments1}
+ \cmhlistingsfromfile{demonstrations/textwrap9-mod1.tex}{\texttt{textwrap9-mod1.tex}}{lst:textwrap9-mod1}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/wrap-comments1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{wrap-comments1.yaml}}{lst:wrap-comments1}
\end{cmhtcbraster}
We note that, in \cref{lst:textwrap9-mod1}, that the comments have been \emph{combined
@@ -5290,7 +5352,7 @@ latexindent.pl textwrap9.tex -o=+-mod1.tex -l=wrap-comments1.yaml -m
\begin{example}
We use the file in \cref{lst:textwrap10} which contains a trailing comment block.
- \cmhlistingsfromfile*{demonstrations/textwrap10.tex}{\texttt{textwrap10.tex}}{lst:textwrap10}
+ \cmhlistingsfromfile{demonstrations/textwrap10.tex}{\texttt{textwrap10.tex}}{lst:textwrap10}
Using the settings given in \cref{lst:wrap-comments1:repeat} and running the command
@@ -5304,8 +5366,8 @@ latexindent.pl textwrap10.tex -o=+-mod1.tex -l=wrap-comments1.yaml -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/textwrap10-mod1.tex}{\texttt{textwrap10-mod1.tex}}{lst:textwrap10-mod1}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/wrap-comments1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{wrap-comments1.yaml}}{lst:wrap-comments1:repeat}
+ \cmhlistingsfromfile{demonstrations/textwrap10-mod1.tex}{\texttt{textwrap10-mod1.tex}}{lst:textwrap10-mod1}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/wrap-comments1.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{wrap-comments1.yaml}}{lst:wrap-comments1:repeat}
\end{cmhtcbraster}
We note that, in \cref{lst:textwrap10-mod1}, that the comments have been \emph{combined
@@ -5329,8 +5391,8 @@ latexindent.pl textwrap10.tex -o=+-mod2.tex -l=wrap-comments2.yaml -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/textwrap10-mod2.tex}{\texttt{textwrap10-mod2.tex}}{lst:textwrap10-mod2}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/wrap-comments2.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{wrap-comments2.yaml}}{lst:wrap-comments2}
+ \cmhlistingsfromfile{demonstrations/textwrap10-mod2.tex}{\texttt{textwrap10-mod2.tex}}{lst:textwrap10-mod2}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/wrap-comments2.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{wrap-comments2.yaml}}{lst:wrap-comments2}
\end{cmhtcbraster}
We note that, in \cref{lst:textwrap10-mod2}, that the comments have been \emph{combined
@@ -5881,7 +5943,7 @@ latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml,itemize.yaml
\subsubsection{oneSentencePerLine: text wrapping and indenting sentences, when before/after}\label{subsubsec:ospl:before:after}
The text wrapping routine operates, by default, \texttt{before} the
- \announce*{2023-01-01}{text wrap: before/after details} code blocks have been found, but
+ \announce{2023-01-01}{text wrap: before/after details} code blocks have been found, but
this can be changed to \texttt{after}:
\begin{itemize}
\item \texttt{before} means it is likely that the columns of wrapped text may \emph{exceed} the
@@ -5895,7 +5957,7 @@ latexindent.pl multiple-sentences6 -m -l=sentence-wrap1.yaml,itemize.yaml
\begin{example}
Let's begin with the file in \cref{lst:multiple-sentences8}.
- \cmhlistingsfromfile*{demonstrations/multiple-sentences8.tex}{\texttt{multiple-sentences8.tex}}{lst:multiple-sentences8}
+ \cmhlistingsfromfile{demonstrations/multiple-sentences8.tex}{\texttt{multiple-sentences8.tex}}{lst:multiple-sentences8}
Using the settings given in \cref{lst:sentence-wrap2} and running the command
@@ -5909,8 +5971,8 @@ latexindent.pl multiple-sentences8 -o=+-mod1.tex -l=sentence-wrap2 -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/multiple-sentences8-mod1.tex}{\texttt{multiple-sentences8-mod1.tex}}{lst:multiple-sentences8-mod1}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/sentence-wrap2.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{sentence-wrap2.yaml}}{lst:sentence-wrap2}
+ \cmhlistingsfromfile{demonstrations/multiple-sentences8-mod1.tex}{\texttt{multiple-sentences8-mod1.tex}}{lst:multiple-sentences8-mod1}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/sentence-wrap2.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{sentence-wrap2.yaml}}{lst:sentence-wrap2}
\end{cmhtcbraster}
We note that, in \cref{lst:multiple-sentences8-mod1}, that the wrapped text has
@@ -5934,8 +5996,8 @@ latexindent.pl multiple-sentences8.tex -o=+-mod2.tex -l=sentence-wrap3 -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/multiple-sentences8-mod2.tex}{\texttt{multiple-sentences8-mod2.tex}}{lst:multiple-sentences8-mod2}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/sentence-wrap3.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{sentence-wrap3.yaml}}{lst:sentence-wrap3}
+ \cmhlistingsfromfile{demonstrations/multiple-sentences8-mod2.tex}{\texttt{multiple-sentences8-mod2.tex}}{lst:multiple-sentences8-mod2}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/sentence-wrap3.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{sentence-wrap3.yaml}}{lst:sentence-wrap3}
\end{cmhtcbraster}
We note that, in \cref{lst:multiple-sentences8-mod2}, that the wrapped text has
@@ -5951,7 +6013,7 @@ latexindent.pl multiple-sentences8.tex -o=+-mod2.tex -l=sentence-wrap3 -m
\begin{example}
Let's begin with the file in \cref{lst:multiple-sentences9}.
- \cmhlistingsfromfile*{demonstrations/multiple-sentences9.tex}{\texttt{multiple-sentences9.tex}}{lst:multiple-sentences9}
+ \cmhlistingsfromfile{demonstrations/multiple-sentences9.tex}{\texttt{multiple-sentences9.tex}}{lst:multiple-sentences9}
Using the settings given in \cref{lst:sentence-wrap4} and running the command
@@ -5965,8 +6027,8 @@ latexindent.pl multiple-sentences9 -o=+-mod1.tex -l=sentence-wrap4 -m
raster left skip=-1.5cm,
raster right skip=-0cm,
raster column skip=.06\linewidth]
- \cmhlistingsfromfile*{demonstrations/multiple-sentences9-mod1.tex}{\texttt{multiple-sentences9-mod1.tex}}{lst:multiple-sentences9-mod1}
- \cmhlistingsfromfile*[style=yaml-LST]{demonstrations/sentence-wrap4.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{sentence-wrap4.yaml}}{lst:sentence-wrap4}
+ \cmhlistingsfromfile{demonstrations/multiple-sentences9-mod1.tex}{\texttt{multiple-sentences9-mod1.tex}}{lst:multiple-sentences9-mod1}
+ \cmhlistingsfromfile[style=yaml-LST]{demonstrations/sentence-wrap4.yaml}[MLB-TCB,width=0.4\linewidth]{\texttt{sentence-wrap4.yaml}}{lst:sentence-wrap4}
\end{cmhtcbraster}
We note that, in \cref{lst:multiple-sentences9-mod1}, that the sentences have been
@@ -6591,7 +6653,7 @@ latexindent.pl -m env-mlb7.tex -l env-mlb13,env-mlb14,UnpreserveBlankLines
(\vref{lst:tabularafter:basic}), commands (\vref{lst:matrixafter}), or special code
blocks (\vref{lst:specialafter}). \footnote{There is no longer any need for the code
block to be specified within \texttt{lookForAlignDelims} for DBS poly-switches to
- activate. \announce*{2023-01-01}*{DBS poly-switches no need to specify
+ activate. \announce{2023-01-01}*{DBS poly-switches no need to specify
lookForAlignDelims}} \index{delimiters!poly-switches for double backslash}
\index{modifying linebreaks! surrounding double backslash} \index{poly-switches!for
double back slash (delimiters)}%
@@ -6654,6 +6716,39 @@ latexindent.pl -m tabular3.tex -l DBS2.yaml
\end{itemize}
\end{example}
+ \begin{example}
+ We can combine DBS poly-switches with, for example, the
+ \texttt{alignContentAfterDoubleBackSlash} in
+ \vref{sec:alignContentAfterDoubleBackSlash}.
+
+ For example, starting with the file \cref{lst:tabular6}, and using the settings in
+ \vref{lst:alignContentAfterDBS1,lst:alignContentAfterDBS2} and running
+ \begin{widepage}
+
+ \begin{commandshell}
+latexindent.pl -s -m -l alignContentAfterDBS1.yaml,DBS1.yaml tabular6.tex -o=+-mod1
+latexindent.pl -s -m -l alignContentAfterDBS2.yaml,DBS1.yaml tabular6.tex -o=+-mod2
+\end{commandshell}
+
+ \end{widepage}
+ gives the respective outputs shown in \cref{lst:tabular6-mod1,lst:tabular6-mod2}.
+ \begin{cmhtcbraster}[raster columns=3,
+ raster left skip=-3.5cm,
+ raster right skip=-2cm,
+ raster column skip=.03\linewidth]
+ \cmhlistingsfromfile*{demonstrations/tabular6.tex}{\texttt{tabular6.tex}}{lst:tabular6}
+ \cmhlistingsfromfile*{demonstrations/tabular6-mod1.tex}{\texttt{tabular6-mod1.tex}}{lst:tabular6-mod1}
+ \cmhlistingsfromfile*{demonstrations/tabular6-mod2.tex}{\texttt{tabular6-mod2.tex}}{lst:tabular6-mod2}
+ \end{cmhtcbraster}
+ We note that:
+ \begin{itemize}
+ \item in \cref{lst:tabular6-mod1} the content \emph{after} the double back slash has
+ been aligned;
+ \item in \cref{lst:tabular6-mod2} we see that 3 spaces have been added after the
+ double back slash.
+ \end{itemize}
+ \end{example}
+
\paragraph{Double backslash finishes with line break}
\begin{example}
Let's now explore \texttt{DBSFinishesWithLineBreak} ($\ElseFinishesWithLineBreak$ in
@@ -8888,7 +8983,7 @@ latexindent.pl -l -m -s -w myfile.tex
\section{indentconfig options}\label{app:indentconfig:options}
This section describes the possible locations for the main configuration file,
discussed in \cref{sec:indentconfig}. Thank you to \cite{nehctargl} for this
- contribution. \announce*{2023-01-01}{indentconfig location options}
+ contribution. \announce{2023-01-01}{indentconfig location options}
The possible locations of \texttt{indentconfig.yaml} are read one after the other, and
reading stops when a valid file is found in one of the paths.
diff --git a/support/latexindent/latexindent.pl b/support/latexindent/latexindent.pl
index 8a041b5435..e9f37442d2 100755
--- a/support/latexindent/latexindent.pl
+++ b/support/latexindent/latexindent.pl
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# latexindent.pl, version 3.20.6, 2023-04-11
+# latexindent.pl, version 3.21, 2023-05-01
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 9bb39d6c99..fe5706f6f0 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -140,7 +140,6 @@ $mirrors = {
'https://ctan.gust.org.pl/tex-archive/' => 1,
'https://polish-mirror.evolution-host.com/ctan/' => 1,
'https://repo.skni.umcs.pl/ctan/' => 1,
- 'https://sunsite.icm.edu.pl/pub/CTAN/' => 1,
},
'Portugal' => {
'https://ftp.eq.uc.pt/software/TeX/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 3ad51a2974..d5eaf4d632 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2023
-depend revision/66973
+depend revision/66981
name 00texlive.image
category TLCore
@@ -4734,7 +4734,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 66964
+revision 66975
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
@@ -39263,16 +39263,16 @@ catalogue-version 0.3
name biblatex-manuscripts-philology
category Package
-revision 53344
+revision 66977
shortdesc Manage classical manuscripts with BibLaTeX
relocated 1
longdesc The package adds a new entry type: @manuscript to manage
longdesc manuscript in classical philology, for example to prepare a
longdesc critical edition.
-containersize 4644
-containerchecksum 3677e980482bd1beedafd4120d119d2a73c4c7ae9a3ddef7130572fac5d2388ec4144b0ba74d4d8012fd994262c378226c987472d4d66e323e3b8395b5d3259b
-doccontainersize 143492
-doccontainerchecksum da435de87f61045d565199034c5ffb1bf818d31c74309648b1cd78cc80dd1b1274cb008a575dae1bcc6b1987973745e3483e829085438821ef1e4a10fbf157d5
+containersize 4852
+containerchecksum 8ac244a6dbdc725b256e5de0389ab4e4bef4f8e1c85d8c173680e66f1ba793679c8388e70e18791c544091a8bc7870459a945c6a5f298a80c530e58d071bf11d
+doccontainersize 145508
+doccontainerchecksum eedeb99e8712337165d684c38621a0bd7829d3071fe8df1496d2347c5f0b8150af68b20caaad69c8d3e3f08c75a52ab63df5d16c48863d0ea179f15c0f55a490
docfiles size=46
RELOC/doc/latex/biblatex-manuscripts-philology/README details="Readme"
RELOC/doc/latex/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology-example.bib
@@ -39282,10 +39282,11 @@ docfiles size=46
RELOC/doc/latex/biblatex-manuscripts-philology/documentation/biblatex-manuscripts-philology.tex
RELOC/doc/latex/biblatex-manuscripts-philology/documentation/makefile
RELOC/doc/latex/biblatex-manuscripts-philology/makefile
-runfiles size=12
+runfiles size=13
RELOC/tex/latex/biblatex-manuscripts-philology/english-manuscripts.lbx
RELOC/tex/latex/biblatex-manuscripts-philology/french-manuscripts.lbx
RELOC/tex/latex/biblatex-manuscripts-philology/italian-manuscripts.lbx
+ RELOC/tex/latex/biblatex-manuscripts-philology/latin-manuscripts.lbx
RELOC/tex/latex/biblatex-manuscripts-philology/manuscripts-NewBibliographyString.sty
RELOC/tex/latex/biblatex-manuscripts-philology/manuscripts-noautoshorthand.bbx
RELOC/tex/latex/biblatex-manuscripts-philology/manuscripts-noautoshorthand.dbx
@@ -39298,7 +39299,7 @@ catalogue-contact-repository https://github.com/maieul/biblatex-manuscripts-phil
catalogue-ctan /macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology
catalogue-license lppl1.3
catalogue-topics biblatex humanities
-catalogue-version 2.1.2
+catalogue-version 2.1.4
name biblatex-mla
category Package
@@ -42255,24 +42256,24 @@ catalogue-version 0.1
name bithesis
category Package
-revision 66924
+revision 66980
shortdesc Templates for the Beijing Institute of Technology
relocated 1
longdesc This package establishes a simple and easy-to-use LaTeX
longdesc template for Beijing Institute of Technology dissertations,
longdesc including general undergraduate theses and master theses.
-containersize 25160
-containerchecksum 71c971a76565818472a49d7aac63b322368720f8ca6e9a89480da1bfe421d09b619789d97684b1d0419b91c4288f51bc5632f3c3de0680df8f7661dc8a5cc861
-doccontainersize 1156556
-doccontainerchecksum 6f4dad0bfbcdbf1a22c0880e8b683565ae6428067ac6b9d4e279ceffb2e0182a2fb9bb576830aaee230c43e0e7fc682849437643c44b01ae8012ae8c034da211
+containersize 25172
+containerchecksum e45e14549cac661d4acecc511c49f5b976561da511cdee2582b0f7e6c79545ad45cffd8eb1e654f7e7f566c3ed2306fa8a479cf8a8154fd3ba561baa36495e5a
+doccontainersize 1159184
+doccontainerchecksum 43cddb011e7a4f23c67e20812b96b159f488257d3bd0534c8744743b70dd82476a7f6db57e17bc6179ff63671edf11e4475a0c254d0ab46eae07d76afe7bb6f0
docfiles size=294
RELOC/doc/latex/bithesis/README.md details="Readme"
RELOC/doc/latex/bithesis/bithesis.pdf details="Package documentation" language="zh"
RELOC/doc/latex/bithesis/contributing-zh.md
RELOC/doc/latex/bithesis/contributing.md
RELOC/doc/latex/bithesis/dtx-style.sty
-srccontainersize 47100
-srccontainerchecksum fd3f3d719478d7f6b43a81081d3b75678dace4bd7d8096a7819ce58b5f64265cae596190fcd67ee92c490cdce13c0a54dfd38d2ccc7f609d0653b951bef5e7cd
+srccontainersize 47244
+srccontainerchecksum fec6d366500e973ff408bea02815be7c44ed5088da9b2c94e4deeed7ee0fca7ed1da9e5cbb610f4495e1da2463022e284beee6beb19d5924d69c44fd6aeed037
srcfiles size=57
RELOC/source/latex/bithesis/bithesis.dtx
RELOC/source/latex/bithesis/bithesis.ins
@@ -42291,7 +42292,7 @@ catalogue-contact-support https://github.com/BITNP/BIThesis/discussions
catalogue-ctan /macros/unicodetex/latex/bithesis
catalogue-license lppl1.3c
catalogue-topics class dissertation doc-templ chinese expl3
-catalogue-version 3.5.3
+catalogue-version 3.5.4
name bitpattern
category Package
@@ -114775,7 +114776,7 @@ catalogue-version 0.3
name etoc
category Package
-revision 66299
+revision 66978
shortdesc Completely customisable TOCs
relocated 1
longdesc With etoc loaded, \tableofcontents can be used multiple times,
@@ -114788,11 +114789,11 @@ longdesc "contents lines" inherited from the class default or changed
longdesc via other packages. But full usage of the package allows
longdesc spectacular effects such as displaying TOCs as trees or mind
longdesc maps.
-containersize 12776
-containerchecksum 10ce4c085726c47e38893c50f2d5868ac0332eb1dceaf929645175ca981da1c9595b5b7a2e1442b5a1a8d2a84f4e84f6651445d987c44df0010a943ce4d1f7a4
-doccontainersize 903800
-doccontainerchecksum 43e9e5aed1c98660cc97e1aa617cb96aabcf40ad1583a1a6f0e4644ce48eeef4e6ae7186920b952ef4e247545829f2cccaa52fa88da6d942b68dbd365a8eaeba
-docfiles size=260
+containersize 13628
+containerchecksum c6592adbe76f97d854cd89205f4a336fb2a54686c199fb9eefae8bc38ba6c72c09a32f1fa90bdd70bf6fedd225ffcbb619b3db33db2557274dbdeff13663bd05
+doccontainersize 940440
+doccontainerchecksum d0dce17d05af81fa89d81a0a871ca1b8a8aef8b5d2e03e5727f3d67eef5becc0b2d77b4dd45d738dd472bb1e286b8326d4094f7269b0950df74cf662293a94a2
+docfiles size=268
RELOC/doc/latex/etoc/README.md details="Readme"
RELOC/doc/latex/etoc/etoc.pdf details="Package documentation"
RELOC/doc/latex/etoc/etoc.tex
@@ -114822,17 +114823,17 @@ docfiles size=260
RELOC/doc/latex/etoc/etocsnippet-24.tex
RELOC/doc/latex/etoc/etocsnippet-25.tex
RELOC/doc/latex/etoc/etocsnippet-26.tex
-srccontainersize 113880
-srccontainerchecksum 2f09eddfde31e5d2e7f38e640d4ad39d411989275c5dba36b2f17b5a6a278ea68d195567fdfceec84da5f4cdc4db89f83813d2fb6a4e1a43c55a731d3d356eb0
-srcfiles size=115
+srccontainersize 119324
+srccontainerchecksum 8ac9b1b62806e40099c290a63fc7a4fd1cf367b78ccbf4a55325f916c6cd9194cec38b0f4bc96fbba4662e28faec55bd0a0f311a16d3aea747431b1fca73028d
+srcfiles size=120
RELOC/source/latex/etoc/etoc.dtx
-runfiles size=18
+runfiles size=19
RELOC/tex/latex/etoc/etoc.sty
catalogue-also titletoc tocbasic
catalogue-ctan /macros/latex/contrib/etoc
catalogue-license lppl1.3c
catalogue-topics toc-etc etex
-catalogue-version 1.2
+catalogue-version 1.2a
name etoolbox
category Package
@@ -151200,7 +151201,7 @@ catalogue-version 2.2
name install-latex-guide-zh-cn
category Package
-revision 66738
+revision 66976
shortdesc A short introduction to LaTeX installation written in Chinese
relocated 1
longdesc This package will introduce the operations related to
@@ -151209,9 +151210,9 @@ longdesc macro packages, and compiling simple documents on Windows 10,
longdesc Ubuntu 20.04, and macOS systems, and mainly introducing command
longdesc line operations.
containersize 568
-containerchecksum b4239e794f5fe16bc17cc169683e9d767436a508f02c634e2c73ab0d756b8ff368b7b35026d34fbc1c7316b4c86cf250cd802f637c5cbfbc5c75b0b3f827e2dd
-doccontainersize 815536
-doccontainerchecksum 43f0177f6f43178b492728713fc09df2df8ee2ebea3d9dcd2f842e0d974f5ebd02e75f69011043897d362814d0828cb91ebdf61b647c2c38ce2114129950d55e
+containerchecksum 3c27f47c1ff6a00ed0f1db13f8c79726b8b42192c1ac42c1d7b21d18705f66979980bdd3760cd8d54977bf4dac19c761d9dec691686fd97bffceb0580fc8f1ea
+doccontainersize 816004
+doccontainerchecksum 4d040f2deae479cdd85a848c400e841f2fad819eaa880f551325e06790078ae9c38ffbe13c0cfdd777b4767817e7afff37ff0bc8790c53050784709b260ff954
docfiles size=232
RELOC/doc/latex/install-latex-guide-zh-cn/LICENSE
RELOC/doc/latex/install-latex-guide-zh-cn/README.md details="Readme"
@@ -151233,7 +151234,7 @@ catalogue-contact-repository https://github.com/OsbertWang/install-latex-guide-z
catalogue-ctan /info/install-latex-guide-zh-cn
catalogue-license lppl1.3c
catalogue-topics chinese-doc tutorial
-catalogue-version 2023.4.1
+catalogue-version 2023.5.1
name installfont
category Package
@@ -176959,17 +176960,17 @@ catalogue-topics version-control doc-mgmt
name latexindent
category Package
-revision 66828
+revision 66981
shortdesc Indent a LaTeX document, highlighting the programming structure
longdesc The Perl script processes a LaTeX file, indenting parts so as
longdesc to highlight the structure for the reader. Included are also
longdesc binary (executable) files for Windows, Ubuntu Linux, and macOS.
depend latexindent.ARCH
-containersize 72912
-containerchecksum 020d13f2e02b15b88f17c5bfdb9b57b9b56f7ceafb89e94f70451b060ba10f54e5cfd9ec36a14d6547e674754ed34e24d15c4dcfcc2a174aa43a46f7f1fe5172
-doccontainersize 1320052
-doccontainerchecksum 44da950332a7877a8a3dccaedd36543d99ee54531c5816e67559d0240623fbb278ed23bdfd0bb45ada51aefeaba709863cbcf15de34c639d191b0f9ad42e3f69
-docfiles size=443
+containersize 73384
+containerchecksum 8a696a2873dbbf394eacdfc8747781a334a24159d251866bb693c8ef1cba713e06471c836b6116f8a5126ec8429aa8f9fadbe390b0d1d9591dae53afb8e18bd4
+doccontainersize 1321324
+doccontainerchecksum 87872f21e3abf0363e321d58b4664d1b44c0a6eb0e31d97c3a772187edae929933e85ced58e5b5a7e5f56d482f7199706d28180d55c2b2be3998d4ecef62331f
+docfiles size=445
texmf-dist/doc/support/latexindent/README details="Readme"
texmf-dist/doc/support/latexindent/contributors.bib
texmf-dist/doc/support/latexindent/figure-schematic.png
@@ -176979,7 +176980,7 @@ docfiles size=443
texmf-dist/doc/support/latexindent/latexindent.pdf details="Package documentation"
texmf-dist/doc/support/latexindent/latexindent.tex
texmf-dist/doc/support/latexindent/logo.png
-runfiles size=149
+runfiles size=150
texmf-dist/scripts/latexindent/LatexIndent/AlignmentAtAmpersand.pm
texmf-dist/scripts/latexindent/LatexIndent/Arguments.pm
texmf-dist/scripts/latexindent/LatexIndent/BackUpFileProcedure.pm
@@ -177028,7 +177029,7 @@ catalogue-contact-repository https://github.com/cmhughes/latexindent.pl
catalogue-ctan /support/latexindent
catalogue-license gpl3
catalogue-topics code-layout
-catalogue-version 3.20.6
+catalogue-version 3.21
name latexindent.aarch64-linux
category Package
@@ -177113,11 +177114,11 @@ binfiles arch=universal-darwin size=1
name latexindent.windows
category Package
-revision 66828
+revision 66981
shortdesc windows files of latexindent
-containersize 3546372
-containerchecksum be6d37677315f0b43e0e6d4bcf70cc87e7d4d9f6649c99f41aa8a71acaa3c38effb083a5c2e52455a73be6120c6bdbbd0014ad245eb8c0b2cd59edcaccbb7562
-binfiles arch=windows size=2125
+containersize 3546852
+containerchecksum b460ad247b0964c1f9461b3fa5b466b67a95ee1454a06875bb17925712d3c7a7fdb64cff482361cbdbc3a57c2c07aa5e67eceabe92ecbd6edc7ff4c9ecc1b3a9
+binfiles arch=windows size=2126
bin/windows/latexindent.exe
name latexindent.x86_64-cygwin
@@ -194692,11 +194693,11 @@ binfiles arch=x86_64-darwinlegacy size=1704
name luahbtex.x86_64-linux
category TLCore
-revision 66511
+revision 66981
shortdesc x86_64-linux files of luahbtex
-containersize 2355816
-containerchecksum 8697cb1ed3e8604be3af02ed9b07564687e780534f0bcf2ee0973d2c973b366ebf9e07a7640ea433487e44831c6ab922f19c6f8009750d949174fc31243ced0a
-binfiles arch=x86_64-linux size=1967
+containersize 9101772
+containerchecksum 8105aa84f303e57b107ebfbef9bff57ea0abe34f43dfcac903c2e921f6714c2d286e07c3ec10d2b29580230ada2ceca566b56a19e6fcd90971da845dce7ec90d
+binfiles arch=x86_64-linux size=10311
bin/x86_64-linux/luahbtex
name luahbtex.x86_64-linuxmusl
@@ -195229,11 +195230,11 @@ binfiles arch=x86_64-darwinlegacy size=3248
name luajittex.x86_64-linux
category TLCore
-revision 66511
+revision 66981
shortdesc x86_64-linux files of luajittex
-containersize 2813116
-containerchecksum 7c9085324dad7c17c8b8a135623ddd01875e1cb87efb129aa4f4594ce184d616d9a0baf938341f5315ceea2e2011982cdbc8b36217aaf4fec9d8d38137c4215b
-binfiles arch=x86_64-linux size=3664
+containersize 12902648
+containerchecksum 514f98a3eb00339969018fa39c8f76a3c3cae99221b40f82e1a71322e674b0d37386f9a3678a4587fb19daaf9dc0d9be8b75bcdfd8f561b77c9bc950a0bfbd56
+binfiles arch=x86_64-linux size=14339
bin/x86_64-linux/luajithbtex
bin/x86_64-linux/luajittex
bin/x86_64-linux/texluajit
@@ -196433,11 +196434,11 @@ binfiles arch=x86_64-darwinlegacy size=1471
name luatex.x86_64-linux
category TLCore
-revision 66511
+revision 66981
shortdesc x86_64-linux files of luatex
-containersize 1813540
-containerchecksum 314785ac2e7f5b5714f974bb84ffcd809ad76a2649f76f3341297e4177967ec542dd5a062e13d23c659353e3619f3118a09e388495b54b6e99fc07c9783208ca
-binfiles arch=x86_64-linux size=1615
+containersize 3152652
+containerchecksum 44e8460e21ed80c33febc2eb4bb970b96afac1155598a06316ea740f7d9c675fdb16b9e91532a33cb3daaf72f49cad8e7eb46d9af31c3d442a72bf81e4dcdaac
+binfiles arch=x86_64-linux size=3407
bin/x86_64-linux/dviluatex
bin/x86_64-linux/luatex
bin/x86_64-linux/texlua
@@ -291308,7 +291309,7 @@ binfiles arch=x86_64-solaris size=1
name srdp-mathematik
category Package
-revision 65293
+revision 66979
shortdesc Typeset Austrian SRDP in mathematics
relocated 1
longdesc This package provides basic commands for the defined formats of
@@ -291317,10 +291318,10 @@ longdesc mathematics. Furthermore, it includes ways to implement answers
longdesc in the tex file which can optionally be displayed in the pdf
longdesc file, and it offers a way to vary the answers in order to
longdesc create different groups (e. g. for tests) easily.
-containersize 30708
-containerchecksum 6735976156214b80e55e17f6100b8961c2851c6caeb339dfe86c9d68865f243718cb5e4a74e4f7592fb8902b843cf917e93233d43032f2b69a17402d5e5c5613
-doccontainersize 151244
-doccontainerchecksum a2fcd471120ca30a329c20793cc86a1ae8de33b7a1507b3204921d5d0e8620ed9e9d546db9d4b98194122cd2ff35f3d9e8d448b2493849a1cda8351d86ee1604
+containersize 30968
+containerchecksum 85e4d6377b10615bb1f7eb9bfe094de0012b1da4fd014ded8a876de34775da77d1c724de37a6cd9d0fff51da041a70295b8444866d1cd6caed8b240c4a6a9f89
+doccontainersize 151976
+doccontainerchecksum 6b68cbda815bfb4c1bad851711eda736952c1e33c4a1b7ec4dc963bcca96b75dafdcb93809034d6e290123259d8561dc0e617c8707f77c9712888d4e4f7aaad8
docfiles size=58
RELOC/doc/latex/srdp-mathematik/README.md details="Readme"
RELOC/doc/latex/srdp-mathematik/srdp-mathematik.pdf details="Package documentation" language="de-at"
@@ -291331,7 +291332,7 @@ runfiles size=48
catalogue-ctan /macros/latex/contrib/srdp-mathematik
catalogue-license lppl1.3c
catalogue-topics exam maths std-conform
-catalogue-version 1.11.0
+catalogue-version 1.12.0
name sseq
category Package
@@ -312464,7 +312465,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 66972
+revision 66975
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.
@@ -312472,10 +312473,10 @@ 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 114076
-containerchecksum 2789b284184905eddbe6dc2edd332d7358c50340fe479b5ba693e58d6a756e513a8a361ddc58562a9da53bf4bfaff868a78efa179f566a2e71e700ae10a49c6d
-doccontainersize 426412
-doccontainerchecksum efe565f03b4206136165379c6a811158b7f7519d5c85208e0c33458e19fed3677e7487540f822af8db93f89d96d93170ef953e87afd36443ae07fda8ab4492b1
+containersize 114064
+containerchecksum ac181581263ac036b3c139a9939114ee85eba1812a8234f14b6554595318c61c19f0ed7e7a608a6b7578ba7cd91ec1cfe25fe7832d1214fd7fd1f1cd5b7cfc62
+doccontainersize 426544
+doccontainerchecksum 83927235c91b8d7c54e5a3a06a935e4f3fb286510dbdf5064b83a808e246d37adac6127f65c77a13068608897217b45fd4e2988eb5bc829bc0c57951debc1fdd
docfiles size=544
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index e7e46a1932..43d77fede0 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-47ad4eb059796d9c8c5c5549ffc97003 texlive.tlpdb
+c2c3a6ea6e7fc0b93256980668586bd4 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 275d0ea9cb..e2bbe682ca 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-90ca22070e382a1407e03c79d849760213c770c7d7660a3116c3edb1ea90502efa47087cbfce54a7cb85e35caa2094cfbf46c5975cd3fddab6bc544a4d99d626 texlive.tlpdb
+2097e8383cc70ac5f6247c5246b50ac1e373ff1ad4a286ea88c84d5139a793de33ab23543dd5cadee17562e494948c14403f70c053b3b38c3ecb6046ca48cc70 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 33b079b97e..e81a083fa6 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-----
-iQEcBAEBCgAGBQJkTwEfAAoJEEzhh34ZQ4xwNZAH/3JPf+jBMK7cywIVtx1fWjxN
-SpUK7JbriezDF+9v+QWvtOcZmHt2qUEAa7JhFiTW8xocYZ+TEMYjxXpKQfQTznHL
-G9LGY0+tWxzMq1WsmWT+Bpp9dySnsIDqPc3PXrmQfAh0+PbOIrKji5tcXiRTU2eD
-6DjScAPnAKJJSvszYiarKqIOQipiEttyHMp+wcvM/6QXmbbQnTqridO9j6RVH4hG
-WbF2zYNDMCuy+M8pRl+pEaGeC+bmL1D/iQSGwavf9wEgJsLemz1tT34EV9q6s0QS
-ZxKh0KVK41FXTlgy2MhChqFMNHHHrj8zjicOStowoUHO+6s2HIxLJzS63FTu3r0=
-=e5bP
+iQEcBAEBCgAGBQJkUFGMAAoJEEzhh34ZQ4xwiaoH/RqZkhQLBLXeHzucMZeejmIU
+w+H57dNbf7RJyZZa5SbcCbAYPknadhBT+wuiQdscQ1+bHEXjiF5udcwegk4Ol4Pp
+cGYTPvwTVcbXQmOJIJtjpTfLzW2Gf4WV1ttYiCNgJsPNXCrmDihjkdYliBc7aeEF
+iU8r8qZH6ucrTZk8e3OZahGoVrE3c2BYY5ajQ4h3pkBsg5r3tCuykWhPT6nOD1oA
+hHEDDAUYIGLHjsrQVfXmhLw/7R6m0FDPYL9l9gFcz56RxL9uC9LqV7Q+bwE0J2r+
+Png1bDuBZxnQ8AhdH77Y1ERlaoOLd/8Afxj985IqyflFQsUGCViuokd4sIoKbL8=
+=h2fQ
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 383b4873b3..b3760a1971 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index 9ba68331f9..0864b6a32e 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-05-01-02-02
+2023-05-02-02-02