diff options
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 Binary files differindex f1e80b6ed6..ee66d8222e 100644 --- a/FILES.byname.gz +++ b/FILES.byname.gz 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 Binary files differindex e99aa78e14..5c8e1506c8 100644 --- a/biblio/ctan-bibdata/ctan.pdf +++ b/biblio/ctan-bibdata/ctan.pdf 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 28279dff29..b4144010b6 100644 --- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf +++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf 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 Binary files differindex d58f360d39..9fc554aeb0 100644 --- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf +++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf 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 Binary files differindex aff4f4217e..a283fc36c7 100644 --- a/macros/unicodetex/latex/bithesis/bithesis.pdf +++ b/macros/unicodetex/latex/bithesis/bithesis.pdf 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 Binary files differindex b4d88492d7..d03ceb16b8 100644 --- a/support/latexindent/bin/linux/latexindent +++ b/support/latexindent/bin/linux/latexindent diff --git a/support/latexindent/bin/macos/latexindent b/support/latexindent/bin/macos/latexindent Binary files differindex e4d021aaba..a86d4d43c3 100644 --- a/support/latexindent/bin/macos/latexindent +++ b/support/latexindent/bin/macos/latexindent 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 Binary files differindex deaf1a130f..dfdeea52cc 100644 --- a/support/latexindent/documentation/latexindent.pdf +++ b/support/latexindent/documentation/latexindent.pdf 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 Binary files differindex 383b4873b3..b3760a1971 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz @@ -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 |