summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname726
-rw-r--r--FILES.byname.gzbin2553613 -> 2555445 bytes
-rw-r--r--FILES.last07days678
-rw-r--r--biblio/ctan-bibdata/ctan.bib44
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3718031 -> 3720417 bytes
-rw-r--r--info/latex-via-exemplos/README.md2
-rw-r--r--info/latex-via-exemplos/changelog.txt6
-rw-r--r--info/latex-via-exemplos/latex-via-exemplos-twosides.pdfbin1356858 -> 1383312 bytes
-rw-r--r--info/latex-via-exemplos/latex-via-exemplos.bib5
-rw-r--r--info/latex-via-exemplos/latex-via-exemplos.pdfbin1351438 -> 1376701 bytes
-rw-r--r--info/latex-via-exemplos/latex-via-exemplos.tex448
-rw-r--r--[-rwxr-xr-x]info/latex-via-exemplos/makeaux.sh0
-rw-r--r--[-rwxr-xr-x]info/latex-via-exemplos/makedoc.sh0
-rw-r--r--macros/latex/contrib/acmart/README2
-rw-r--r--macros/latex/contrib/acmart/acmart.dtx15
-rw-r--r--macros/latex/contrib/acmart/acmart.pdfbin911009 -> 944009 bytes
-rw-r--r--macros/latex/contrib/acmart/acmguide.pdfbin434045 -> 434062 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmcp.pdfbin215120 -> 215120 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmengage.pdfbin395888 -> 395888 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmlarge.pdfbin607188 -> 607188 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdfbin629691 -> 629691 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdfbin1051029 -> 1051029 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdfbin619512 -> 619512 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall.pdfbin617005 -> 617005 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog.pdfbin564503 -> 564503 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-authordraft.pdfbin1044097 -> 1044098 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-lualatex.pdfbin783354 -> 783354 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-manuscript.pdfbin619302 -> 619302 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdfbin616653 -> 616653 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdfbin1055582 -> 1055582 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf.pdfbin1040314 -> 1040314 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigplan.pdfbin1048750 -> 1048750 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-xelatex.pdfbin659291 -> 659297 bytes
-rw-r--r--macros/latex/contrib/isosafety/README.md9
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV003.pngbin0 -> 1781 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV004.pngbin0 -> 2283 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV009.pngbin0 -> 2668 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV010.pngbin0 -> 2191 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV011.pngbin0 -> 3036 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV012.pngbin0 -> 2395 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV013.pngbin0 -> 1534 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV027.pngbin0 -> 4673 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV028.pngbin0 -> 3033 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV029.pngbin0 -> 3363 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV064.pngbin0 -> 2022 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-CV067.pngbin0 -> 2416 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E001.pngbin0 -> 6042 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E002.pngbin0 -> 5945 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E003.pngbin0 -> 1192 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E004.pngbin0 -> 5675 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E007.pngbin0 -> 6206 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E008.pngbin0 -> 9927 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E009.pngbin0 -> 7190 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E010.pngbin0 -> 5418 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E011.pngbin0 -> 10680 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E012.pngbin0 -> 6549 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E013.pngbin0 -> 3030 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E014.pngbin0 -> 7122 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E015.pngbin0 -> 6551 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E016.pngbin0 -> 5088 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E017.pngbin0 -> 8842 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E018.pngbin0 -> 5160 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E019.pngbin0 -> 5060 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E020.pngbin0 -> 6426 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E021.pngbin0 -> 6364 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E022.pngbin0 -> 3466 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E023.pngbin0 -> 3147 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E024.pngbin0 -> 7168 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E025.pngbin0 -> 15315 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E026.pngbin0 -> 5712 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E027.pngbin0 -> 7576 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E028.pngbin0 -> 8882 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E029.pngbin0 -> 10068 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E030.pngbin0 -> 5739 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E031.pngbin0 -> 2136 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E032.pngbin0 -> 11255 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E033.pngbin0 -> 2049 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E034.pngbin0 -> 2071 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E035.pngbin0 -> 9069 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E036.pngbin0 -> 10159 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E037.pngbin0 -> 8670 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E038.pngbin0 -> 10883 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E039.pngbin0 -> 8335 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E040.pngbin0 -> 9975 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E041.pngbin0 -> 9755 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E042.pngbin0 -> 10049 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E043.pngbin0 -> 10960 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E044.pngbin0 -> 4116 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E045.pngbin0 -> 5908 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E046.pngbin0 -> 5557 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E047.pngbin0 -> 6264 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E048.pngbin0 -> 6594 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E049.pngbin0 -> 7301 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E050.pngbin0 -> 6562 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E051.pngbin0 -> 11120 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E052.pngbin0 -> 9326 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E053.pngbin0 -> 4710 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E054.pngbin0 -> 12393 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E055.pngbin0 -> 7389 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E056.pngbin0 -> 4809 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E057.pngbin0 -> 4024 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E058.pngbin0 -> 4397 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E059.pngbin0 -> 1556 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E060.pngbin0 -> 7944 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E061.pngbin0 -> 12398 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E062.pngbin0 -> 5683 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E063.pngbin0 -> 4997 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E064.pngbin0 -> 4914 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E065.pngbin0 -> 6516 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E067.pngbin0 -> 7150 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E068.pngbin0 -> 10603 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E069.pngbin0 -> 7999 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-E070.pngbin0 -> 4117 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F001.pngbin0 -> 7261 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F002.pngbin0 -> 8165 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F003.pngbin0 -> 8463 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F004.pngbin0 -> 8373 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F005.pngbin0 -> 7900 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F006.pngbin0 -> 9833 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F007.pngbin0 -> 7943 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F008.pngbin0 -> 6795 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F009.pngbin0 -> 9214 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F010.pngbin0 -> 7426 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F011.pngbin0 -> 11115 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F012.pngbin0 -> 7264 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F013.pngbin0 -> 8108 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F014.pngbin0 -> 6784 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F015.pngbin0 -> 8404 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F016.pngbin0 -> 11283 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F017.pngbin0 -> 8540 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F018.pngbin0 -> 7807 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-F019.pngbin0 -> 14127 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M001.pngbin0 -> 6728 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M002.pngbin0 -> 11429 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M003.pngbin0 -> 10985 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M004.pngbin0 -> 13851 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M005.pngbin0 -> 5276 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M006.pngbin0 -> 9513 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M007.pngbin0 -> 11478 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M008.pngbin0 -> 9856 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M009.pngbin0 -> 10755 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M010.pngbin0 -> 8598 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M011.pngbin0 -> 11141 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M012.pngbin0 -> 9684 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M013.pngbin0 -> 9843 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M014.pngbin0 -> 8508 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M015.pngbin0 -> 7686 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M016.pngbin0 -> 10228 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M017.pngbin0 -> 13665 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M018.pngbin0 -> 11077 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M019.pngbin0 -> 8182 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M020.pngbin0 -> 8082 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M021.pngbin0 -> 7939 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M022.pngbin0 -> 9107 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M023.pngbin0 -> 9950 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M024.pngbin0 -> 9257 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M025.pngbin0 -> 11770 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M026.pngbin0 -> 11003 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M027.pngbin0 -> 12144 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M028.pngbin0 -> 10550 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M029.pngbin0 -> 8958 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M030.pngbin0 -> 10503 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M031.pngbin0 -> 9994 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M032.pngbin0 -> 11704 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M033.pngbin0 -> 10194 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M034.pngbin0 -> 10465 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M035.pngbin0 -> 13166 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M036.pngbin0 -> 8957 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M037.pngbin0 -> 12392 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M038.pngbin0 -> 13124 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M039.pngbin0 -> 10833 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M040.pngbin0 -> 11502 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M041.pngbin0 -> 10787 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M042.pngbin0 -> 10025 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M043.pngbin0 -> 12908 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M044.pngbin0 -> 10911 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M045.pngbin0 -> 15559 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M046.pngbin0 -> 9584 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M047.pngbin0 -> 12228 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M048.pngbin0 -> 15125 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M049.pngbin0 -> 11786 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M050.pngbin0 -> 8973 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M051.pngbin0 -> 8981 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M052.pngbin0 -> 12950 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M053.pngbin0 -> 11319 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M054.pngbin0 -> 10459 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M055.pngbin0 -> 10608 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M056.pngbin0 -> 9581 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M057.pngbin0 -> 7743 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M058.pngbin0 -> 9110 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M059.pngbin0 -> 9567 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-M060.pngbin0 -> 12184 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P001.pngbin0 -> 9302 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P002.pngbin0 -> 14908 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P003.pngbin0 -> 15353 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P004.pngbin0 -> 12488 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P005.pngbin0 -> 12192 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P006.pngbin0 -> 13487 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P007.pngbin0 -> 12116 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P008.pngbin0 -> 13835 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P009.pngbin0 -> 12331 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P010.pngbin0 -> 12159 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P011.pngbin0 -> 14599 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P012.pngbin0 -> 10912 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P013.pngbin0 -> 14862 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P014.pngbin0 -> 14512 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P015.pngbin0 -> 13492 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P016.pngbin0 -> 13899 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P017.pngbin0 -> 11843 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P018.pngbin0 -> 11354 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P019.pngbin0 -> 12929 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P020.pngbin0 -> 13468 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P021.pngbin0 -> 11449 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P022.pngbin0 -> 10965 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P023.pngbin0 -> 10691 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P024.pngbin0 -> 11906 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P025.pngbin0 -> 12296 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P026.pngbin0 -> 14272 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P027.pngbin0 -> 10930 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P028.pngbin0 -> 15087 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P029.pngbin0 -> 12831 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P030.pngbin0 -> 11512 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P031.pngbin0 -> 12264 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P032.pngbin0 -> 14195 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P033.pngbin0 -> 14683 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P034.pngbin0 -> 15893 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P035.pngbin0 -> 15308 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P036.pngbin0 -> 13204 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P037.pngbin0 -> 13338 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P038.pngbin0 -> 17217 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P039.pngbin0 -> 17046 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P040.pngbin0 -> 18336 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P041.pngbin0 -> 10852 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P042.pngbin0 -> 10377 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P043.pngbin0 -> 14367 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P044.pngbin0 -> 14074 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P045.pngbin0 -> 12826 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P046.pngbin0 -> 11779 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P047.pngbin0 -> 15510 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P048.pngbin0 -> 12871 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P049.pngbin0 -> 13413 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P050.pngbin0 -> 11908 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P051.pngbin0 -> 12303 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P052.pngbin0 -> 12702 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P053.pngbin0 -> 13020 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P054.pngbin0 -> 8349 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P055.pngbin0 -> 14145 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P056.pngbin0 -> 13656 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P057.pngbin0 -> 12564 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P058.pngbin0 -> 12715 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P059.pngbin0 -> 15209 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P060.pngbin0 -> 10121 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P061.pngbin0 -> 12950 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P062.pngbin0 -> 14234 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P063.pngbin0 -> 13258 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P064.pngbin0 -> 7860 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P065.pngbin0 -> 15172 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P066.pngbin0 -> 13698 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P067.pngbin0 -> 11238 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P068.pngbin0 -> 12950 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P069.pngbin0 -> 10834 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P070.pngbin0 -> 18725 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P071.pngbin0 -> 11569 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P072.pngbin0 -> 11335 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P073.pngbin0 -> 12047 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-P074.pngbin0 -> 13523 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W001.pngbin0 -> 7116 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W002.pngbin0 -> 16455 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W003.pngbin0 -> 7923 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W004.pngbin0 -> 11814 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W005.pngbin0 -> 9434 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W006.pngbin0 -> 8870 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W007.pngbin0 -> 8657 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W008.pngbin0 -> 8804 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W009.pngbin0 -> 11260 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W010.pngbin0 -> 9854 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W011.pngbin0 -> 8470 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W012.pngbin0 -> 8242 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W013.pngbin0 -> 8845 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W014.pngbin0 -> 9948 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W015.pngbin0 -> 9178 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W016.pngbin0 -> 12645 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W017.pngbin0 -> 8371 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W018.pngbin0 -> 9933 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W019.pngbin0 -> 9100 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W020.pngbin0 -> 8966 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W021.pngbin0 -> 8584 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W022.pngbin0 -> 7838 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W023.pngbin0 -> 10287 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W024.pngbin0 -> 7195 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W025.pngbin0 -> 10311 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W026.pngbin0 -> 8797 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W027.pngbin0 -> 10047 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W028.pngbin0 -> 9146 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W029.pngbin0 -> 13347 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W030.pngbin0 -> 9673 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W031.pngbin0 -> 11022 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W032.pngbin0 -> 11108 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W033.pngbin0 -> 9090 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W034.pngbin0 -> 9013 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W035.pngbin0 -> 9152 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W036.pngbin0 -> 14344 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W037.pngbin0 -> 10610 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W038.pngbin0 -> 10323 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W039.pngbin0 -> 9071 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W040.pngbin0 -> 12219 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W041.pngbin0 -> 15523 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W042.pngbin0 -> 11414 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W043.pngbin0 -> 10344 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W044.pngbin0 -> 10874 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W045.pngbin0 -> 9400 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W046.pngbin0 -> 11543 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W047.pngbin0 -> 8623 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W048.pngbin0 -> 8913 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W049.pngbin0 -> 9811 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W050.pngbin0 -> 9191 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W051.pngbin0 -> 9776 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W052.pngbin0 -> 8629 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W053.pngbin0 -> 9054 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W054.pngbin0 -> 8751 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W055.pngbin0 -> 8956 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W056.pngbin0 -> 6936 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W057.pngbin0 -> 9624 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W058.pngbin0 -> 11132 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W059.pngbin0 -> 7906 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W060.pngbin0 -> 8860 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W061.pngbin0 -> 8030 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W062.pngbin0 -> 12733 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W063.pngbin0 -> 10930 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W064.pngbin0 -> 7331 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W065.pngbin0 -> 12767 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W066.pngbin0 -> 11260 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W067.pngbin0 -> 10475 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W068.pngbin0 -> 10602 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W069.pngbin0 -> 9857 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W070.pngbin0 -> 8817 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W071.pngbin0 -> 10554 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W072.pngbin0 -> 11114 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W073.pngbin0 -> 11043 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W074.pngbin0 -> 9990 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W075.pngbin0 -> 10789 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W076.pngbin0 -> 9947 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W077.pngbin0 -> 9157 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W078.pngbin0 -> 9903 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W079.pngbin0 -> 10850 bytes
-rw-r--r--macros/latex/contrib/isosafety/images/ISO-W080.pngbin0 -> 8845 bytes
-rw-r--r--macros/latex/contrib/isosafety/isosafety.dtx135
-rw-r--r--macros/latex/contrib/isosafety/isosafety.ins56
-rw-r--r--macros/latex/contrib/isosafety/isosafety.pdfbin0 -> 128680 bytes
-rw-r--r--macros/latex/contrib/l3backend/CHANGELOG.md8
-rw-r--r--macros/latex/contrib/l3backend/README.md2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-basics.dtx16
-rw-r--r--macros/latex/contrib/l3backend/l3backend-box.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-code.pdfbin934368 -> 934024 bytes
-rw-r--r--macros/latex/contrib/l3backend/l3backend-color.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-draw.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-graphics.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-header.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-opacity.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-pdf.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/CHANGELOG.md25
-rw-r--r--macros/latex/contrib/l3kernel/README.md4
-rw-r--r--macros/latex/contrib/l3kernel/expl3.dtx9
-rw-r--r--macros/latex/contrib/l3kernel/expl3.pdfbin622212 -> 622183 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.pdfbin1724914 -> 1732906 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3.ins3
-rw-r--r--macros/latex/contrib/l3kernel/l3basics.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3bootstrap.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3box.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3candidates.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3cctab.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3clist.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3coffins.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3color.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3debug.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3deprecation.dtx31
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.pdfbin557935 -> 557935 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.pdfbin151752 -> 151749 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3file.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3flag.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-assign.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-aux.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-basics.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-expo.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-extended.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-functions.dtx282
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-logic.dtx17
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-parse.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-random.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-round.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-symbolic.dtx673
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-traps.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-trig.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-types.dtx184
-rw-r--r--macros/latex/contrib/l3kernel/l3fp.dtx136
-rw-r--r--macros/latex/contrib/l3kernel/l3fparray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3int.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3intarray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3kernel-functions.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3keys.dtx20
-rw-r--r--macros/latex/contrib/l3kernel/l3legacy.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3luatex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3msg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3names.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3news.pdfbin396222 -> 396222 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news01.pdfbin122959 -> 122959 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news02.pdfbin150919 -> 150919 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news03.pdfbin148747 -> 148747 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news04.pdfbin114754 -> 114754 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news05.pdfbin112524 -> 112524 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news06.pdfbin151591 -> 151591 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news07.pdfbin128344 -> 128344 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news08.pdfbin163484 -> 163484 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news09.pdfbin250159 -> 250159 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news10.pdfbin150302 -> 150302 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news11.pdfbin170102 -> 170102 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news12.pdfbin205020 -> 205020 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3pdf.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.csv4
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.pdfbin82529 -> 82661 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prg.dtx13
-rw-r--r--macros/latex/contrib/l3kernel/l3prop.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3quark.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3regex.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3seq.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3skip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3sort.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.pdfbin296260 -> 296258 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.pdfbin242906 -> 242903 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3sys.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.pdfbin218060 -> 218059 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-case.dtx1366
-rw-r--r--macros/latex/contrib/l3kernel/l3text-map.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/l3text-purify.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3text.dtx41
-rw-r--r--macros/latex/contrib/l3kernel/l3tl-analysis.dtx43
-rw-r--r--macros/latex/contrib/l3kernel/l3tl.dtx10
-rw-r--r--macros/latex/contrib/l3kernel/l3token.dtx78
-rw-r--r--macros/latex/contrib/l3kernel/l3unicode.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/source3.pdfbin7389071 -> 7475976 bytes
-rw-r--r--macros/latex/contrib/l3kernel/source3.tex2
-rw-r--r--macros/latex/contrib/l3kernel/source3body.tex7
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin1320885 -> 1340845 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex7840
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/integr_nwks_a.pngbin4779 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/integr_nwks_b.pngbin5332 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_a.pngbin10939 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_b.pngbin10804 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_c.pngbin7252 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_d.pngbin7380 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_e.pngbin9965 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_f.pngbin7670 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.pngbin9278 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.pngbin13958 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.pngbin11759 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.pngbin9989 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.pngbin7316 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.pngbin9599 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-solve_a.pngbin5226 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-solve_b.pngbin9215 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-solve_c.pngbin10175 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/graphics/pl-solve_d.pngbin10145 -> 0 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/testscript.py24
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty3
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex151
-rw-r--r--macros/unicodetex/latex/bithesis/bithesis.dtx43
-rw-r--r--macros/unicodetex/latex/bithesis/bithesis.pdfbin556835 -> 731548 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl1
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb152
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2478488 -> 2480092 bytes
-rw-r--r--timestamp2
484 files changed, 4208 insertions, 9272 deletions
diff --git a/FILES.byname b/FILES.byname
index ad66d13df3..2870e63eed 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2058,12 +2058,12 @@
2023/10/05 | 1710 | biblio/citation-style-language/README.md
2023/10/05 | 12878 | biblio/citation-style-language/vancouver.csl
2023/10/05 | 4531754 | biblio/citation-style-language.zip
-2023/10/22 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/10/23 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/10/22 | 2819464 | biblio/ctan-bibdata/ctan.bib
-2023/10/22 | 3717455 | biblio/ctan-bibdata/ctan.pdf
+2023/10/23 | 2819854 | biblio/ctan-bibdata/ctan.bib
+2023/10/23 | 3718031 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/10/22 | 4121200 | biblio/ctan-bibdata.zip
+2023/10/23 | 4121707 | 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
@@ -5423,7 +5423,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/10/22 | 37121 | FILES.last07days
+2023/10/23 | 38823 | 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
@@ -192061,25 +192061,25 @@
2020/05/21 | 2571 | info/latex-veryshortguide/veryshortguide.ins
2020/05/21 | 134527 | info/latex-veryshortguide/veryshortguide.pdf
2020/05/21 | 548808 | info/latex-veryshortguide.zip
-2023/05/01 | 1603 | info/latex-via-exemplos/changelog.txt
-2019/12/18 | 3738 | info/latex-via-exemplos/latex-via-exemplos.bib
+2023/10/23 | 1906 | info/latex-via-exemplos/changelog.txt
+2023/06/08 | 4120 | info/latex-via-exemplos/latex-via-exemplos.bib
2022/05/16 | 2713 | info/latex-via-exemplos/latex-via-exemplos-certificado.tex
2023/04/09 | 1889 | info/latex-via-exemplos/latex-via-exemplos-cracha.tex
2022/05/16 | 589 | info/latex-via-exemplos/latex-via-exemplos-fig.tex
2023/04/09 | 730 | info/latex-via-exemplos/latex-via-exemplos-folder.tex
2019/08/15 | 162 | info/latex-via-exemplos/latex-via-exemplos-lista-nomes.csv
2023/04/09 | 204 | info/latex-via-exemplos/latex-via-exemplos-lista-participantes.csv
-2023/05/01 | 1351438 | info/latex-via-exemplos/latex-via-exemplos.pdf
+2023/10/23 | 1376701 | info/latex-via-exemplos/latex-via-exemplos.pdf
2023/04/09 | 3250 | info/latex-via-exemplos/latex-via-exemplos-poster.tex
2023/04/09 | 4473 | info/latex-via-exemplos/latex-via-exemplos-slides.tex
-2023/05/01 | 601757 | info/latex-via-exemplos/latex-via-exemplos.tex
+2023/10/23 | 611467 | info/latex-via-exemplos/latex-via-exemplos.tex
2023/04/10 | 411 | info/latex-via-exemplos/latex-via-exemplos-todonotes.tex
-2023/05/01 | 1356858 | info/latex-via-exemplos/latex-via-exemplos-twosides.pdf
+2023/10/23 | 1383312 | info/latex-via-exemplos/latex-via-exemplos-twosides.pdf
2023/05/01 | 131 | info/latex-via-exemplos/latex-via-exemplos-twosides.tex
2023/05/01 | 618 | info/latex-via-exemplos/makeaux.sh
2023/05/01 | 1466 | info/latex-via-exemplos/makedoc.sh
-2023/05/01 | 2098 | info/latex-via-exemplos/README.md
-2023/05/02 | 2802072 | info/latex-via-exemplos.zip
+2023/06/12 | 2098 | info/latex-via-exemplos/README.md
+2023/10/23 | 2854716 | info/latex-via-exemplos.zip
1994/04/20 | 16115 | info/ling-mac.tex
2004/07/13 | 36781 | info/lmodern/lm10pt.png
2004/07/13 | 170 | info/lmodern/lm10pt.tex
@@ -194626,10 +194626,10 @@
2023/07/07 | 9765481 | install/macros/latex/contrib/koma-script.tds.zip
2015/12/09 | 171418 | install/macros/latex/contrib/ksp-thesis.tds.zip
2019/12/19 | 302191 | install/macros/latex/contrib/kvdefinekeys.tds.zip
-2023/10/10 | 972889 | install/macros/latex/contrib/l3backend.tds.zip
+2023/10/23 | 972850 | install/macros/latex/contrib/l3backend.tds.zip
2023/09/13 | 821916 | install/macros/latex/contrib/l3build.tds.zip
2023/10/10 | 4457163 | install/macros/latex/contrib/l3experimental.tds.zip
-2023/10/10 | 14036719 | install/macros/latex/contrib/l3kernel.tds.zip
+2023/10/23 | 14136490 | install/macros/latex/contrib/l3kernel.tds.zip
2023/10/10 | 2257270 | install/macros/latex/contrib/l3packages.tds.zip
2023/10/14 | 606244 | install/macros/latex/contrib/lastpage.tds.zip
2009/09/02 | 556672 | install/macros/latex/contrib/layouts.tds.zip
@@ -211498,43 +211498,43 @@
2022/11/25 | 1333 | macros/latex/contrib/achemso/README.md
2022/11/25 | 917174 | macros/latex/contrib/achemso.zip
2023/06/23 | 2773 | macros/latex/contrib/acmart/acmart.bib
-2023/10/14 | 288277 | macros/latex/contrib/acmart/acmart.dtx
+2023/10/23 | 288660 | macros/latex/contrib/acmart/acmart.dtx
2023/03/26 | 1016 | macros/latex/contrib/acmart/acmart.ins
-2023/10/14 | 911009 | macros/latex/contrib/acmart/acmart.pdf
+2023/10/23 | 944009 | macros/latex/contrib/acmart/acmart.pdf
2023/03/26 | 20721 | macros/latex/contrib/acmart/acmauthoryear.bbx
2023/03/26 | 6245 | macros/latex/contrib/acmart/acmauthoryear.cbx
2023/03/26 | 1093 | macros/latex/contrib/acmart/acmdatamodel.dbx
-2023/10/14 | 434045 | macros/latex/contrib/acmart/acmguide.pdf
+2023/10/23 | 434062 | macros/latex/contrib/acmart/acmguide.pdf
2023/06/12 | 19718 | macros/latex/contrib/acmart/acm-jdslogo.png
2023/03/26 | 19840 | macros/latex/contrib/acmart/acmnumeric.bbx
2023/03/26 | 90 | macros/latex/contrib/acmart/acmnumeric.cbx
2023/03/31 | 90332 | macros/latex/contrib/acmart/ACM-Reference-Format.bst
2023/06/23 | 5420 | macros/latex/contrib/acmart/Makefile
-2023/10/14 | 12841 | macros/latex/contrib/acmart/README
+2023/10/23 | 12870 | macros/latex/contrib/acmart/README
2023/03/26 | 4825 | macros/latex/contrib/acmart/samples/abbrev.bib
-2023/10/14 | 215120 | macros/latex/contrib/acmart/samples/sample-acmcp.pdf
-2023/10/14 | 395888 | macros/latex/contrib/acmart/samples/sample-acmengage.pdf
-2023/10/14 | 607188 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
-2023/10/14 | 629691 | macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
-2023/10/14 | 1051029 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
-2023/10/14 | 617005 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
-2023/10/14 | 619512 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
-2023/10/14 | 564503 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
-2023/10/14 | 1044097 | macros/latex/contrib/acmart/samples/sample-authordraft.pdf
+2023/10/23 | 215120 | macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+2023/10/23 | 395888 | macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+2023/10/23 | 607188 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+2023/10/23 | 629691 | macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+2023/10/23 | 1051029 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+2023/10/23 | 617005 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+2023/10/23 | 619512 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+2023/10/23 | 564503 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+2023/10/23 | 1044098 | macros/latex/contrib/acmart/samples/sample-authordraft.pdf
2023/03/26 | 53502 | macros/latex/contrib/acmart/samples/sample-base.bib
2023/03/26 | 95030 | macros/latex/contrib/acmart/samples/sample-franklin.png
-2023/10/14 | 783354 | macros/latex/contrib/acmart/samples/sample-lualatex.pdf
-2023/10/14 | 619302 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf
-2023/09/30 | 55212 | macros/latex/contrib/acmart/samples/samples.dtx
-2023/10/14 | 616653 | macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
-2023/10/14 | 1055582 | macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
-2023/10/14 | 1040314 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
-2023/10/14 | 1048750 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+2023/10/23 | 783354 | macros/latex/contrib/acmart/samples/sample-lualatex.pdf
+2023/10/23 | 619302 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+2023/10/23 | 55212 | macros/latex/contrib/acmart/samples/samples.dtx
+2023/10/23 | 616653 | macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+2023/10/23 | 1055582 | macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+2023/10/23 | 1040314 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+2023/10/23 | 1048750 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf
2023/06/23 | 1138 | macros/latex/contrib/acmart/samples/samples.ins
2023/03/26 | 439021 | macros/latex/contrib/acmart/samples/sampleteaser.pdf
-2023/10/14 | 659291 | macros/latex/contrib/acmart/samples/sample-xelatex.pdf
+2023/10/23 | 659297 | macros/latex/contrib/acmart/samples/sample-xelatex.pdf
2023/03/26 | 5221 | macros/latex/contrib/acmart/samples/software.bib
-2023/10/15 | 13015732 | macros/latex/contrib/acmart.zip
+2023/10/23 | 13046742 | macros/latex/contrib/acmart.zip
2000/05/18 | 66049 | macros/latex/contrib/acmconf/acmconf.dtx
2000/05/18 | 4408 | macros/latex/contrib/acmconf/acmconf.ins
2008/05/14 | 96012 | macros/latex/contrib/acmconf/acmconf.pdf
@@ -226574,6 +226574,323 @@
2000/02/18 | 168935 | macros/latex/contrib/isorot/rotman.pdf
2000/02/18 | 28810 | macros/latex/contrib/isorot/rotman.tex
2005/04/30 | 140895 | macros/latex/contrib/isorot.zip
+2023/10/22 | 1781 | macros/latex/contrib/isosafety/images/ISO-CV003.png
+2023/10/22 | 2283 | macros/latex/contrib/isosafety/images/ISO-CV004.png
+2023/10/22 | 2668 | macros/latex/contrib/isosafety/images/ISO-CV009.png
+2023/10/22 | 2191 | macros/latex/contrib/isosafety/images/ISO-CV010.png
+2023/10/22 | 3036 | macros/latex/contrib/isosafety/images/ISO-CV011.png
+2023/10/22 | 2395 | macros/latex/contrib/isosafety/images/ISO-CV012.png
+2023/10/22 | 1534 | macros/latex/contrib/isosafety/images/ISO-CV013.png
+2023/10/22 | 4673 | macros/latex/contrib/isosafety/images/ISO-CV027.png
+2023/10/22 | 3033 | macros/latex/contrib/isosafety/images/ISO-CV028.png
+2023/10/22 | 3363 | macros/latex/contrib/isosafety/images/ISO-CV029.png
+2023/10/22 | 2022 | macros/latex/contrib/isosafety/images/ISO-CV064.png
+2023/10/22 | 2416 | macros/latex/contrib/isosafety/images/ISO-CV067.png
+2023/10/17 | 6042 | macros/latex/contrib/isosafety/images/ISO-E001.png
+2023/10/17 | 5945 | macros/latex/contrib/isosafety/images/ISO-E002.png
+2023/10/17 | 1192 | macros/latex/contrib/isosafety/images/ISO-E003.png
+2023/10/17 | 5675 | macros/latex/contrib/isosafety/images/ISO-E004.png
+2023/10/17 | 6206 | macros/latex/contrib/isosafety/images/ISO-E007.png
+2023/10/17 | 9927 | macros/latex/contrib/isosafety/images/ISO-E008.png
+2023/10/17 | 7190 | macros/latex/contrib/isosafety/images/ISO-E009.png
+2023/10/17 | 5418 | macros/latex/contrib/isosafety/images/ISO-E010.png
+2023/10/17 | 10680 | macros/latex/contrib/isosafety/images/ISO-E011.png
+2023/10/17 | 6549 | macros/latex/contrib/isosafety/images/ISO-E012.png
+2023/10/18 | 3030 | macros/latex/contrib/isosafety/images/ISO-E013.png
+2023/10/18 | 7122 | macros/latex/contrib/isosafety/images/ISO-E014.png
+2023/10/18 | 6551 | macros/latex/contrib/isosafety/images/ISO-E015.png
+2023/10/18 | 5088 | macros/latex/contrib/isosafety/images/ISO-E016.png
+2023/10/18 | 8842 | macros/latex/contrib/isosafety/images/ISO-E017.png
+2023/10/18 | 5160 | macros/latex/contrib/isosafety/images/ISO-E018.png
+2023/10/18 | 5060 | macros/latex/contrib/isosafety/images/ISO-E019.png
+2023/10/18 | 6426 | macros/latex/contrib/isosafety/images/ISO-E020.png
+2023/10/18 | 6364 | macros/latex/contrib/isosafety/images/ISO-E021.png
+2023/10/18 | 3466 | macros/latex/contrib/isosafety/images/ISO-E022.png
+2023/10/18 | 3147 | macros/latex/contrib/isosafety/images/ISO-E023.png
+2023/10/18 | 7168 | macros/latex/contrib/isosafety/images/ISO-E024.png
+2023/10/18 | 15315 | macros/latex/contrib/isosafety/images/ISO-E025.png
+2023/10/18 | 5712 | macros/latex/contrib/isosafety/images/ISO-E026.png
+2023/10/18 | 7576 | macros/latex/contrib/isosafety/images/ISO-E027.png
+2023/10/18 | 8882 | macros/latex/contrib/isosafety/images/ISO-E028.png
+2023/10/18 | 10068 | macros/latex/contrib/isosafety/images/ISO-E029.png
+2023/10/18 | 5739 | macros/latex/contrib/isosafety/images/ISO-E030.png
+2023/10/18 | 2136 | macros/latex/contrib/isosafety/images/ISO-E031.png
+2023/10/18 | 11255 | macros/latex/contrib/isosafety/images/ISO-E032.png
+2023/10/18 | 2049 | macros/latex/contrib/isosafety/images/ISO-E033.png
+2023/10/18 | 2071 | macros/latex/contrib/isosafety/images/ISO-E034.png
+2023/10/18 | 9069 | macros/latex/contrib/isosafety/images/ISO-E035.png
+2023/10/18 | 10159 | macros/latex/contrib/isosafety/images/ISO-E036.png
+2023/10/18 | 8670 | macros/latex/contrib/isosafety/images/ISO-E037.png
+2023/10/18 | 10883 | macros/latex/contrib/isosafety/images/ISO-E038.png
+2023/10/18 | 8335 | macros/latex/contrib/isosafety/images/ISO-E039.png
+2023/10/18 | 9975 | macros/latex/contrib/isosafety/images/ISO-E040.png
+2023/10/18 | 9755 | macros/latex/contrib/isosafety/images/ISO-E041.png
+2023/10/18 | 10049 | macros/latex/contrib/isosafety/images/ISO-E042.png
+2023/10/18 | 10960 | macros/latex/contrib/isosafety/images/ISO-E043.png
+2023/10/18 | 4116 | macros/latex/contrib/isosafety/images/ISO-E044.png
+2023/10/18 | 5908 | macros/latex/contrib/isosafety/images/ISO-E045.png
+2023/10/18 | 5557 | macros/latex/contrib/isosafety/images/ISO-E046.png
+2023/10/18 | 6264 | macros/latex/contrib/isosafety/images/ISO-E047.png
+2023/10/18 | 6594 | macros/latex/contrib/isosafety/images/ISO-E048.png
+2023/10/18 | 7301 | macros/latex/contrib/isosafety/images/ISO-E049.png
+2023/10/18 | 6562 | macros/latex/contrib/isosafety/images/ISO-E050.png
+2023/10/18 | 11120 | macros/latex/contrib/isosafety/images/ISO-E051.png
+2023/10/18 | 9326 | macros/latex/contrib/isosafety/images/ISO-E052.png
+2023/10/18 | 4710 | macros/latex/contrib/isosafety/images/ISO-E053.png
+2023/10/18 | 12393 | macros/latex/contrib/isosafety/images/ISO-E054.png
+2023/10/18 | 7389 | macros/latex/contrib/isosafety/images/ISO-E055.png
+2023/10/18 | 4809 | macros/latex/contrib/isosafety/images/ISO-E056.png
+2023/10/18 | 4024 | macros/latex/contrib/isosafety/images/ISO-E057.png
+2023/10/18 | 4397 | macros/latex/contrib/isosafety/images/ISO-E058.png
+2023/10/18 | 1556 | macros/latex/contrib/isosafety/images/ISO-E059.png
+2023/10/18 | 7944 | macros/latex/contrib/isosafety/images/ISO-E060.png
+2023/10/18 | 12398 | macros/latex/contrib/isosafety/images/ISO-E061.png
+2023/10/18 | 5683 | macros/latex/contrib/isosafety/images/ISO-E062.png
+2023/10/18 | 4997 | macros/latex/contrib/isosafety/images/ISO-E063.png
+2023/10/18 | 4914 | macros/latex/contrib/isosafety/images/ISO-E064.png
+2023/10/18 | 6516 | macros/latex/contrib/isosafety/images/ISO-E065.png
+2023/10/18 | 7150 | macros/latex/contrib/isosafety/images/ISO-E067.png
+2023/10/18 | 10603 | macros/latex/contrib/isosafety/images/ISO-E068.png
+2023/10/18 | 7999 | macros/latex/contrib/isosafety/images/ISO-E069.png
+2023/10/18 | 4117 | macros/latex/contrib/isosafety/images/ISO-E070.png
+2023/10/18 | 7261 | macros/latex/contrib/isosafety/images/ISO-F001.png
+2023/10/18 | 8165 | macros/latex/contrib/isosafety/images/ISO-F002.png
+2023/10/18 | 8463 | macros/latex/contrib/isosafety/images/ISO-F003.png
+2023/10/18 | 8373 | macros/latex/contrib/isosafety/images/ISO-F004.png
+2023/10/18 | 7900 | macros/latex/contrib/isosafety/images/ISO-F005.png
+2023/10/18 | 9833 | macros/latex/contrib/isosafety/images/ISO-F006.png
+2023/10/18 | 7943 | macros/latex/contrib/isosafety/images/ISO-F007.png
+2023/10/18 | 6795 | macros/latex/contrib/isosafety/images/ISO-F008.png
+2023/10/18 | 9214 | macros/latex/contrib/isosafety/images/ISO-F009.png
+2023/10/18 | 7426 | macros/latex/contrib/isosafety/images/ISO-F010.png
+2023/10/18 | 11115 | macros/latex/contrib/isosafety/images/ISO-F011.png
+2023/10/18 | 7264 | macros/latex/contrib/isosafety/images/ISO-F012.png
+2023/10/18 | 8108 | macros/latex/contrib/isosafety/images/ISO-F013.png
+2023/10/18 | 6784 | macros/latex/contrib/isosafety/images/ISO-F014.png
+2023/10/18 | 8404 | macros/latex/contrib/isosafety/images/ISO-F015.png
+2023/10/18 | 11283 | macros/latex/contrib/isosafety/images/ISO-F016.png
+2023/10/18 | 8540 | macros/latex/contrib/isosafety/images/ISO-F017.png
+2023/10/18 | 7807 | macros/latex/contrib/isosafety/images/ISO-F018.png
+2023/10/18 | 14127 | macros/latex/contrib/isosafety/images/ISO-F019.png
+2023/10/18 | 6728 | macros/latex/contrib/isosafety/images/ISO-M001.png
+2023/10/18 | 11429 | macros/latex/contrib/isosafety/images/ISO-M002.png
+2023/10/18 | 10985 | macros/latex/contrib/isosafety/images/ISO-M003.png
+2023/10/18 | 13851 | macros/latex/contrib/isosafety/images/ISO-M004.png
+2023/10/18 | 5276 | macros/latex/contrib/isosafety/images/ISO-M005.png
+2023/10/18 | 9513 | macros/latex/contrib/isosafety/images/ISO-M006.png
+2023/10/18 | 11478 | macros/latex/contrib/isosafety/images/ISO-M007.png
+2023/10/18 | 9856 | macros/latex/contrib/isosafety/images/ISO-M008.png
+2023/10/18 | 10755 | macros/latex/contrib/isosafety/images/ISO-M009.png
+2023/10/18 | 8598 | macros/latex/contrib/isosafety/images/ISO-M010.png
+2023/10/18 | 11141 | macros/latex/contrib/isosafety/images/ISO-M011.png
+2023/10/18 | 9684 | macros/latex/contrib/isosafety/images/ISO-M012.png
+2023/10/18 | 9843 | macros/latex/contrib/isosafety/images/ISO-M013.png
+2023/10/18 | 8508 | macros/latex/contrib/isosafety/images/ISO-M014.png
+2023/10/18 | 7686 | macros/latex/contrib/isosafety/images/ISO-M015.png
+2023/10/18 | 10228 | macros/latex/contrib/isosafety/images/ISO-M016.png
+2023/10/18 | 13665 | macros/latex/contrib/isosafety/images/ISO-M017.png
+2023/10/18 | 11077 | macros/latex/contrib/isosafety/images/ISO-M018.png
+2023/10/18 | 8182 | macros/latex/contrib/isosafety/images/ISO-M019.png
+2023/10/18 | 8082 | macros/latex/contrib/isosafety/images/ISO-M020.png
+2023/10/18 | 7939 | macros/latex/contrib/isosafety/images/ISO-M021.png
+2023/10/18 | 9107 | macros/latex/contrib/isosafety/images/ISO-M022.png
+2023/10/18 | 9950 | macros/latex/contrib/isosafety/images/ISO-M023.png
+2023/10/18 | 9257 | macros/latex/contrib/isosafety/images/ISO-M024.png
+2023/10/18 | 11770 | macros/latex/contrib/isosafety/images/ISO-M025.png
+2023/10/18 | 11003 | macros/latex/contrib/isosafety/images/ISO-M026.png
+2023/10/18 | 12144 | macros/latex/contrib/isosafety/images/ISO-M027.png
+2023/10/18 | 10550 | macros/latex/contrib/isosafety/images/ISO-M028.png
+2023/10/18 | 8958 | macros/latex/contrib/isosafety/images/ISO-M029.png
+2023/10/18 | 10503 | macros/latex/contrib/isosafety/images/ISO-M030.png
+2023/10/18 | 9994 | macros/latex/contrib/isosafety/images/ISO-M031.png
+2023/10/18 | 11704 | macros/latex/contrib/isosafety/images/ISO-M032.png
+2023/10/18 | 10194 | macros/latex/contrib/isosafety/images/ISO-M033.png
+2023/10/18 | 10465 | macros/latex/contrib/isosafety/images/ISO-M034.png
+2023/10/18 | 13166 | macros/latex/contrib/isosafety/images/ISO-M035.png
+2023/10/18 | 8957 | macros/latex/contrib/isosafety/images/ISO-M036.png
+2023/10/18 | 12392 | macros/latex/contrib/isosafety/images/ISO-M037.png
+2023/10/18 | 13124 | macros/latex/contrib/isosafety/images/ISO-M038.png
+2023/10/18 | 10833 | macros/latex/contrib/isosafety/images/ISO-M039.png
+2023/10/18 | 11502 | macros/latex/contrib/isosafety/images/ISO-M040.png
+2023/10/18 | 10787 | macros/latex/contrib/isosafety/images/ISO-M041.png
+2023/10/18 | 10025 | macros/latex/contrib/isosafety/images/ISO-M042.png
+2023/10/18 | 12908 | macros/latex/contrib/isosafety/images/ISO-M043.png
+2023/10/18 | 10911 | macros/latex/contrib/isosafety/images/ISO-M044.png
+2023/10/18 | 15559 | macros/latex/contrib/isosafety/images/ISO-M045.png
+2023/10/18 | 9584 | macros/latex/contrib/isosafety/images/ISO-M046.png
+2023/10/18 | 12228 | macros/latex/contrib/isosafety/images/ISO-M047.png
+2023/10/18 | 15125 | macros/latex/contrib/isosafety/images/ISO-M048.png
+2023/10/18 | 11786 | macros/latex/contrib/isosafety/images/ISO-M049.png
+2023/10/18 | 8973 | macros/latex/contrib/isosafety/images/ISO-M050.png
+2023/10/18 | 8981 | macros/latex/contrib/isosafety/images/ISO-M051.png
+2023/10/18 | 12950 | macros/latex/contrib/isosafety/images/ISO-M052.png
+2023/10/18 | 11319 | macros/latex/contrib/isosafety/images/ISO-M053.png
+2023/10/18 | 10459 | macros/latex/contrib/isosafety/images/ISO-M054.png
+2023/10/18 | 10608 | macros/latex/contrib/isosafety/images/ISO-M055.png
+2023/10/18 | 9581 | macros/latex/contrib/isosafety/images/ISO-M056.png
+2023/10/18 | 7743 | macros/latex/contrib/isosafety/images/ISO-M057.png
+2023/10/18 | 9110 | macros/latex/contrib/isosafety/images/ISO-M058.png
+2023/10/18 | 9567 | macros/latex/contrib/isosafety/images/ISO-M059.png
+2023/10/18 | 12184 | macros/latex/contrib/isosafety/images/ISO-M060.png
+2023/10/18 | 9302 | macros/latex/contrib/isosafety/images/ISO-P001.png
+2023/10/18 | 14908 | macros/latex/contrib/isosafety/images/ISO-P002.png
+2023/10/18 | 15353 | macros/latex/contrib/isosafety/images/ISO-P003.png
+2023/10/18 | 12488 | macros/latex/contrib/isosafety/images/ISO-P004.png
+2023/10/18 | 12192 | macros/latex/contrib/isosafety/images/ISO-P005.png
+2023/10/18 | 13487 | macros/latex/contrib/isosafety/images/ISO-P006.png
+2023/10/18 | 12116 | macros/latex/contrib/isosafety/images/ISO-P007.png
+2023/10/18 | 13835 | macros/latex/contrib/isosafety/images/ISO-P008.png
+2023/10/18 | 12331 | macros/latex/contrib/isosafety/images/ISO-P009.png
+2023/10/18 | 12159 | macros/latex/contrib/isosafety/images/ISO-P010.png
+2023/10/18 | 14599 | macros/latex/contrib/isosafety/images/ISO-P011.png
+2023/10/18 | 10912 | macros/latex/contrib/isosafety/images/ISO-P012.png
+2023/10/18 | 14862 | macros/latex/contrib/isosafety/images/ISO-P013.png
+2023/10/18 | 14512 | macros/latex/contrib/isosafety/images/ISO-P014.png
+2023/10/18 | 13492 | macros/latex/contrib/isosafety/images/ISO-P015.png
+2023/10/18 | 13899 | macros/latex/contrib/isosafety/images/ISO-P016.png
+2023/10/18 | 11843 | macros/latex/contrib/isosafety/images/ISO-P017.png
+2023/10/18 | 11354 | macros/latex/contrib/isosafety/images/ISO-P018.png
+2023/10/18 | 12929 | macros/latex/contrib/isosafety/images/ISO-P019.png
+2023/10/18 | 13468 | macros/latex/contrib/isosafety/images/ISO-P020.png
+2023/10/18 | 11449 | macros/latex/contrib/isosafety/images/ISO-P021.png
+2023/10/18 | 10965 | macros/latex/contrib/isosafety/images/ISO-P022.png
+2023/10/18 | 10691 | macros/latex/contrib/isosafety/images/ISO-P023.png
+2023/10/18 | 11906 | macros/latex/contrib/isosafety/images/ISO-P024.png
+2023/10/18 | 12296 | macros/latex/contrib/isosafety/images/ISO-P025.png
+2023/10/18 | 14272 | macros/latex/contrib/isosafety/images/ISO-P026.png
+2023/10/18 | 10930 | macros/latex/contrib/isosafety/images/ISO-P027.png
+2023/10/18 | 15087 | macros/latex/contrib/isosafety/images/ISO-P028.png
+2023/10/18 | 12831 | macros/latex/contrib/isosafety/images/ISO-P029.png
+2023/10/18 | 11512 | macros/latex/contrib/isosafety/images/ISO-P030.png
+2023/10/18 | 12264 | macros/latex/contrib/isosafety/images/ISO-P031.png
+2023/10/18 | 14195 | macros/latex/contrib/isosafety/images/ISO-P032.png
+2023/10/18 | 14683 | macros/latex/contrib/isosafety/images/ISO-P033.png
+2023/10/18 | 15893 | macros/latex/contrib/isosafety/images/ISO-P034.png
+2023/10/18 | 15308 | macros/latex/contrib/isosafety/images/ISO-P035.png
+2023/10/18 | 13204 | macros/latex/contrib/isosafety/images/ISO-P036.png
+2023/10/18 | 13338 | macros/latex/contrib/isosafety/images/ISO-P037.png
+2023/10/18 | 17217 | macros/latex/contrib/isosafety/images/ISO-P038.png
+2023/10/18 | 17046 | macros/latex/contrib/isosafety/images/ISO-P039.png
+2023/10/18 | 18336 | macros/latex/contrib/isosafety/images/ISO-P040.png
+2023/10/18 | 10852 | macros/latex/contrib/isosafety/images/ISO-P041.png
+2023/10/18 | 10377 | macros/latex/contrib/isosafety/images/ISO-P042.png
+2023/10/18 | 14367 | macros/latex/contrib/isosafety/images/ISO-P043.png
+2023/10/18 | 14074 | macros/latex/contrib/isosafety/images/ISO-P044.png
+2023/10/18 | 12826 | macros/latex/contrib/isosafety/images/ISO-P045.png
+2023/10/18 | 11779 | macros/latex/contrib/isosafety/images/ISO-P046.png
+2023/10/18 | 15510 | macros/latex/contrib/isosafety/images/ISO-P047.png
+2023/10/18 | 12871 | macros/latex/contrib/isosafety/images/ISO-P048.png
+2023/10/18 | 13413 | macros/latex/contrib/isosafety/images/ISO-P049.png
+2023/10/18 | 11908 | macros/latex/contrib/isosafety/images/ISO-P050.png
+2023/10/18 | 12303 | macros/latex/contrib/isosafety/images/ISO-P051.png
+2023/10/18 | 12702 | macros/latex/contrib/isosafety/images/ISO-P052.png
+2023/10/18 | 13020 | macros/latex/contrib/isosafety/images/ISO-P053.png
+2023/10/18 | 8349 | macros/latex/contrib/isosafety/images/ISO-P054.png
+2023/10/18 | 14145 | macros/latex/contrib/isosafety/images/ISO-P055.png
+2023/10/18 | 13656 | macros/latex/contrib/isosafety/images/ISO-P056.png
+2023/10/18 | 12564 | macros/latex/contrib/isosafety/images/ISO-P057.png
+2023/10/18 | 12715 | macros/latex/contrib/isosafety/images/ISO-P058.png
+2023/10/18 | 15209 | macros/latex/contrib/isosafety/images/ISO-P059.png
+2023/10/18 | 10121 | macros/latex/contrib/isosafety/images/ISO-P060.png
+2023/10/18 | 12950 | macros/latex/contrib/isosafety/images/ISO-P061.png
+2023/10/18 | 14234 | macros/latex/contrib/isosafety/images/ISO-P062.png
+2023/10/18 | 13258 | macros/latex/contrib/isosafety/images/ISO-P063.png
+2023/10/18 | 7860 | macros/latex/contrib/isosafety/images/ISO-P064.png
+2023/10/18 | 15172 | macros/latex/contrib/isosafety/images/ISO-P065.png
+2023/10/18 | 13698 | macros/latex/contrib/isosafety/images/ISO-P066.png
+2023/10/18 | 11238 | macros/latex/contrib/isosafety/images/ISO-P067.png
+2023/10/18 | 12950 | macros/latex/contrib/isosafety/images/ISO-P068.png
+2023/10/18 | 10834 | macros/latex/contrib/isosafety/images/ISO-P069.png
+2023/10/18 | 18725 | macros/latex/contrib/isosafety/images/ISO-P070.png
+2023/10/18 | 11569 | macros/latex/contrib/isosafety/images/ISO-P071.png
+2023/10/18 | 11335 | macros/latex/contrib/isosafety/images/ISO-P072.png
+2023/10/18 | 12047 | macros/latex/contrib/isosafety/images/ISO-P073.png
+2023/10/18 | 13523 | macros/latex/contrib/isosafety/images/ISO-P074.png
+2023/10/18 | 7116 | macros/latex/contrib/isosafety/images/ISO-W001.png
+2023/10/18 | 16455 | macros/latex/contrib/isosafety/images/ISO-W002.png
+2023/10/18 | 7923 | macros/latex/contrib/isosafety/images/ISO-W003.png
+2023/10/18 | 11814 | macros/latex/contrib/isosafety/images/ISO-W004.png
+2023/10/18 | 9434 | macros/latex/contrib/isosafety/images/ISO-W005.png
+2023/10/18 | 8870 | macros/latex/contrib/isosafety/images/ISO-W006.png
+2023/10/18 | 8657 | macros/latex/contrib/isosafety/images/ISO-W007.png
+2023/10/18 | 8804 | macros/latex/contrib/isosafety/images/ISO-W008.png
+2023/10/18 | 11260 | macros/latex/contrib/isosafety/images/ISO-W009.png
+2023/10/18 | 9854 | macros/latex/contrib/isosafety/images/ISO-W010.png
+2023/10/18 | 8470 | macros/latex/contrib/isosafety/images/ISO-W011.png
+2023/10/18 | 8242 | macros/latex/contrib/isosafety/images/ISO-W012.png
+2023/10/18 | 8845 | macros/latex/contrib/isosafety/images/ISO-W013.png
+2023/10/18 | 9948 | macros/latex/contrib/isosafety/images/ISO-W014.png
+2023/10/18 | 9178 | macros/latex/contrib/isosafety/images/ISO-W015.png
+2023/10/18 | 12645 | macros/latex/contrib/isosafety/images/ISO-W016.png
+2023/10/18 | 8371 | macros/latex/contrib/isosafety/images/ISO-W017.png
+2023/10/18 | 9933 | macros/latex/contrib/isosafety/images/ISO-W018.png
+2023/10/18 | 9100 | macros/latex/contrib/isosafety/images/ISO-W019.png
+2023/10/18 | 8966 | macros/latex/contrib/isosafety/images/ISO-W020.png
+2023/10/18 | 8584 | macros/latex/contrib/isosafety/images/ISO-W021.png
+2023/10/18 | 7838 | macros/latex/contrib/isosafety/images/ISO-W022.png
+2023/10/18 | 10287 | macros/latex/contrib/isosafety/images/ISO-W023.png
+2023/10/18 | 7195 | macros/latex/contrib/isosafety/images/ISO-W024.png
+2023/10/18 | 10311 | macros/latex/contrib/isosafety/images/ISO-W025.png
+2023/10/18 | 8797 | macros/latex/contrib/isosafety/images/ISO-W026.png
+2023/10/18 | 10047 | macros/latex/contrib/isosafety/images/ISO-W027.png
+2023/10/18 | 9146 | macros/latex/contrib/isosafety/images/ISO-W028.png
+2023/10/18 | 13347 | macros/latex/contrib/isosafety/images/ISO-W029.png
+2023/10/18 | 9673 | macros/latex/contrib/isosafety/images/ISO-W030.png
+2023/10/18 | 11022 | macros/latex/contrib/isosafety/images/ISO-W031.png
+2023/10/18 | 11108 | macros/latex/contrib/isosafety/images/ISO-W032.png
+2023/10/18 | 9090 | macros/latex/contrib/isosafety/images/ISO-W033.png
+2023/10/18 | 9013 | macros/latex/contrib/isosafety/images/ISO-W034.png
+2023/10/18 | 9152 | macros/latex/contrib/isosafety/images/ISO-W035.png
+2023/10/18 | 14344 | macros/latex/contrib/isosafety/images/ISO-W036.png
+2023/10/18 | 10610 | macros/latex/contrib/isosafety/images/ISO-W037.png
+2023/10/18 | 10323 | macros/latex/contrib/isosafety/images/ISO-W038.png
+2023/10/18 | 9071 | macros/latex/contrib/isosafety/images/ISO-W039.png
+2023/10/18 | 12219 | macros/latex/contrib/isosafety/images/ISO-W040.png
+2023/10/18 | 15523 | macros/latex/contrib/isosafety/images/ISO-W041.png
+2023/10/18 | 11414 | macros/latex/contrib/isosafety/images/ISO-W042.png
+2023/10/18 | 10344 | macros/latex/contrib/isosafety/images/ISO-W043.png
+2023/10/18 | 10874 | macros/latex/contrib/isosafety/images/ISO-W044.png
+2023/10/18 | 9400 | macros/latex/contrib/isosafety/images/ISO-W045.png
+2023/10/18 | 11543 | macros/latex/contrib/isosafety/images/ISO-W046.png
+2023/10/18 | 8623 | macros/latex/contrib/isosafety/images/ISO-W047.png
+2023/10/18 | 8913 | macros/latex/contrib/isosafety/images/ISO-W048.png
+2023/10/18 | 9811 | macros/latex/contrib/isosafety/images/ISO-W049.png
+2023/10/18 | 9191 | macros/latex/contrib/isosafety/images/ISO-W050.png
+2023/10/18 | 9776 | macros/latex/contrib/isosafety/images/ISO-W051.png
+2023/10/18 | 8629 | macros/latex/contrib/isosafety/images/ISO-W052.png
+2023/10/18 | 9054 | macros/latex/contrib/isosafety/images/ISO-W053.png
+2023/10/18 | 8751 | macros/latex/contrib/isosafety/images/ISO-W054.png
+2023/10/18 | 8956 | macros/latex/contrib/isosafety/images/ISO-W055.png
+2023/10/18 | 6936 | macros/latex/contrib/isosafety/images/ISO-W056.png
+2023/10/18 | 9624 | macros/latex/contrib/isosafety/images/ISO-W057.png
+2023/10/18 | 11132 | macros/latex/contrib/isosafety/images/ISO-W058.png
+2023/10/18 | 7906 | macros/latex/contrib/isosafety/images/ISO-W059.png
+2023/10/18 | 8860 | macros/latex/contrib/isosafety/images/ISO-W060.png
+2023/10/18 | 8030 | macros/latex/contrib/isosafety/images/ISO-W061.png
+2023/10/18 | 12733 | macros/latex/contrib/isosafety/images/ISO-W062.png
+2023/10/18 | 10930 | macros/latex/contrib/isosafety/images/ISO-W063.png
+2023/10/18 | 7331 | macros/latex/contrib/isosafety/images/ISO-W064.png
+2023/10/18 | 12767 | macros/latex/contrib/isosafety/images/ISO-W065.png
+2023/10/18 | 11260 | macros/latex/contrib/isosafety/images/ISO-W066.png
+2023/10/18 | 10475 | macros/latex/contrib/isosafety/images/ISO-W067.png
+2023/10/18 | 10602 | macros/latex/contrib/isosafety/images/ISO-W068.png
+2023/10/18 | 9857 | macros/latex/contrib/isosafety/images/ISO-W069.png
+2023/10/18 | 8817 | macros/latex/contrib/isosafety/images/ISO-W070.png
+2023/10/18 | 10554 | macros/latex/contrib/isosafety/images/ISO-W071.png
+2023/10/18 | 11114 | macros/latex/contrib/isosafety/images/ISO-W072.png
+2023/10/18 | 11043 | macros/latex/contrib/isosafety/images/ISO-W073.png
+2023/10/18 | 9990 | macros/latex/contrib/isosafety/images/ISO-W074.png
+2023/10/18 | 10789 | macros/latex/contrib/isosafety/images/ISO-W075.png
+2023/10/18 | 9947 | macros/latex/contrib/isosafety/images/ISO-W076.png
+2023/10/18 | 9157 | macros/latex/contrib/isosafety/images/ISO-W077.png
+2023/10/18 | 9903 | macros/latex/contrib/isosafety/images/ISO-W078.png
+2023/10/18 | 10850 | macros/latex/contrib/isosafety/images/ISO-W079.png
+2023/10/18 | 8845 | macros/latex/contrib/isosafety/images/ISO-W080.png
+2023/10/22 | 3667 | macros/latex/contrib/isosafety/isosafety.dtx
+2023/10/20 | 1971 | macros/latex/contrib/isosafety/isosafety.ins
+2023/10/22 | 128680 | macros/latex/contrib/isosafety/isosafety.pdf
+2023/10/20 | 294 | macros/latex/contrib/isosafety/README.md
+2023/10/23 | 3172201 | macros/latex/contrib/isosafety.zip
2004/05/25 | 1428 | macros/latex/contrib/isostds/iso10303/README
2004/05/25 | 29377 | macros/latex/contrib/isostds/iso10303/step4ht.dtx
2004/05/25 | 1961 | macros/latex/contrib/isostds/iso10303/step4ht.ins
@@ -228030,20 +228347,20 @@
2022/10/05 | 401856 | macros/latex/contrib/kvsetkeys/kvsetkeys.pdf
2022/10/05 | 542 | macros/latex/contrib/kvsetkeys/README.md
2022/10/05 | 398855 | macros/latex/contrib/kvsetkeys.zip
-2023/10/10 | 9747 | macros/latex/contrib/l3backend/CHANGELOG.md
-2023/10/10 | 16217 | macros/latex/contrib/l3backend/l3backend-basics.dtx
-2023/10/10 | 14431 | macros/latex/contrib/l3backend/l3backend-box.dtx
-2023/10/10 | 934368 | macros/latex/contrib/l3backend/l3backend-code.pdf
-2023/10/10 | 1331 | macros/latex/contrib/l3backend/l3backend-code.tex
-2023/10/10 | 41343 | macros/latex/contrib/l3backend/l3backend-color.dtx
-2023/10/10 | 34288 | macros/latex/contrib/l3backend/l3backend-draw.dtx
-2023/10/10 | 29569 | macros/latex/contrib/l3backend/l3backend-graphics.dtx
-2023/10/10 | 14669 | macros/latex/contrib/l3backend/l3backend-header.dtx
-2023/10/10 | 4922 | macros/latex/contrib/l3backend/l3backend.ins
-2023/10/10 | 9916 | macros/latex/contrib/l3backend/l3backend-opacity.dtx
-2023/10/10 | 50952 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
-2023/10/10 | 549 | macros/latex/contrib/l3backend/README.md
-2023/10/10 | 934759 | macros/latex/contrib/l3backend.zip
+2023/10/23 | 9898 | macros/latex/contrib/l3backend/CHANGELOG.md
+2023/10/23 | 16217 | macros/latex/contrib/l3backend/l3backend-basics.dtx
+2023/10/23 | 14431 | macros/latex/contrib/l3backend/l3backend-box.dtx
+2023/10/23 | 934024 | macros/latex/contrib/l3backend/l3backend-code.pdf
+2023/10/23 | 1331 | macros/latex/contrib/l3backend/l3backend-code.tex
+2023/10/23 | 41343 | macros/latex/contrib/l3backend/l3backend-color.dtx
+2023/10/23 | 34288 | macros/latex/contrib/l3backend/l3backend-draw.dtx
+2023/10/23 | 29569 | macros/latex/contrib/l3backend/l3backend-graphics.dtx
+2023/10/23 | 14669 | macros/latex/contrib/l3backend/l3backend-header.dtx
+2023/10/23 | 4922 | macros/latex/contrib/l3backend/l3backend.ins
+2023/10/23 | 9916 | macros/latex/contrib/l3backend/l3backend-opacity.dtx
+2023/10/23 | 50952 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
+2023/10/23 | 549 | macros/latex/contrib/l3backend/README.md
+2023/10/23 | 934765 | macros/latex/contrib/l3backend.zip
2023/09/13 | 21587 | macros/latex/contrib/l3build/CHANGELOG.md
2023/09/13 | 1816 | macros/latex/contrib/l3build/l3build.1
2023/09/13 | 7805 | macros/latex/contrib/l3build/l3build-arguments.lua
@@ -228111,110 +228428,113 @@
2023/10/10 | 1624 | macros/latex/contrib/l3experimental/xgalley.ins
2023/10/10 | 299638 | macros/latex/contrib/l3experimental/xgalley.pdf
2023/10/10 | 4419131 | macros/latex/contrib/l3experimental.zip
-2023/10/10 | 52846 | macros/latex/contrib/l3kernel/CHANGELOG.md
-2023/10/10 | 70517 | macros/latex/contrib/l3kernel/expl3.dtx
-2023/10/10 | 622212 | macros/latex/contrib/l3kernel/expl3.pdf
-2023/10/10 | 1724914 | macros/latex/contrib/l3kernel/interface3.pdf
-2023/10/10 | 2072 | macros/latex/contrib/l3kernel/interface3.tex
-2023/10/10 | 135539 | macros/latex/contrib/l3kernel/l3basics.dtx
-2023/10/10 | 12806 | macros/latex/contrib/l3kernel/l3bootstrap.dtx
-2023/10/10 | 87744 | macros/latex/contrib/l3kernel/l3box.dtx
-2023/10/10 | 16639 | macros/latex/contrib/l3kernel/l3candidates.dtx
-2023/10/10 | 33773 | macros/latex/contrib/l3kernel/l3cctab.dtx
-2023/10/10 | 83184 | macros/latex/contrib/l3kernel/l3clist.dtx
-2023/10/10 | 88106 | macros/latex/contrib/l3kernel/l3coffins.dtx
-2023/10/10 | 112255 | macros/latex/contrib/l3kernel/l3color.dtx
-2023/10/10 | 43223 | macros/latex/contrib/l3kernel/l3debug.dtx
-2023/10/10 | 25221 | macros/latex/contrib/l3kernel/l3deprecation.dtx
-2023/10/10 | 157292 | macros/latex/contrib/l3kernel/l3doc.dtx
-2023/10/10 | 557935 | macros/latex/contrib/l3kernel/l3doc.pdf
-2023/10/10 | 2390 | macros/latex/contrib/l3kernel/l3docstrip.dtx
-2023/10/10 | 151752 | macros/latex/contrib/l3kernel/l3docstrip.pdf
-2023/10/10 | 89007 | macros/latex/contrib/l3kernel/l3expan.dtx
-2023/10/10 | 144087 | macros/latex/contrib/l3kernel/l3file.dtx
-2023/10/10 | 10328 | macros/latex/contrib/l3kernel/l3flag.dtx
-2023/10/10 | 11781 | macros/latex/contrib/l3kernel/l3fparray.dtx
-2023/10/10 | 7472 | macros/latex/contrib/l3kernel/l3fp-assign.dtx
-2023/10/10 | 47216 | macros/latex/contrib/l3kernel/l3fp-aux.dtx
-2023/10/10 | 84789 | macros/latex/contrib/l3kernel/l3fp-basics.dtx
-2023/10/10 | 19641 | macros/latex/contrib/l3kernel/l3fp-convert.dtx
-2023/10/10 | 70679 | macros/latex/contrib/l3kernel/l3fp.dtx
-2023/10/10 | 49311 | macros/latex/contrib/l3kernel/l3fp-expo.dtx
-2023/10/10 | 51081 | macros/latex/contrib/l3kernel/l3fp-extended.dtx
-2023/10/10 | 23009 | macros/latex/contrib/l3kernel/l3fp-logic.dtx
-2023/10/10 | 105012 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
-2023/10/10 | 23574 | macros/latex/contrib/l3kernel/l3fp-random.dtx
-2023/10/10 | 18532 | macros/latex/contrib/l3kernel/l3fp-round.dtx
-2023/10/10 | 12777 | macros/latex/contrib/l3kernel/l3fp-traps.dtx
-2023/10/10 | 73835 | macros/latex/contrib/l3kernel/l3fp-trig.dtx
-2023/10/10 | 6224 | macros/latex/contrib/l3kernel/l3.ins
-2023/10/10 | 30508 | macros/latex/contrib/l3kernel/l3intarray.dtx
-2023/10/10 | 92989 | macros/latex/contrib/l3kernel/l3int.dtx
-2023/10/10 | 27270 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
-2023/10/10 | 129885 | macros/latex/contrib/l3kernel/l3keys.dtx
-2023/10/10 | 4574 | macros/latex/contrib/l3kernel/l3legacy.dtx
-2023/10/10 | 23866 | macros/latex/contrib/l3kernel/l3luatex.dtx
-2023/10/10 | 82320 | macros/latex/contrib/l3kernel/l3msg.dtx
-2023/10/10 | 80195 | macros/latex/contrib/l3kernel/l3names.dtx
-2023/10/10 | 122959 | macros/latex/contrib/l3kernel/l3news01.pdf
-2023/10/10 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex
-2023/10/10 | 150919 | macros/latex/contrib/l3kernel/l3news02.pdf
-2023/10/10 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex
-2023/10/10 | 148747 | macros/latex/contrib/l3kernel/l3news03.pdf
-2023/10/10 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex
-2023/10/10 | 114754 | macros/latex/contrib/l3kernel/l3news04.pdf
-2023/10/10 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex
-2023/10/10 | 112524 | macros/latex/contrib/l3kernel/l3news05.pdf
-2023/10/10 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex
-2023/10/10 | 151591 | macros/latex/contrib/l3kernel/l3news06.pdf
-2023/10/10 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex
-2023/10/10 | 128344 | macros/latex/contrib/l3kernel/l3news07.pdf
-2023/10/10 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex
-2023/10/10 | 163484 | macros/latex/contrib/l3kernel/l3news08.pdf
-2023/10/10 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex
-2023/10/10 | 250159 | macros/latex/contrib/l3kernel/l3news09.pdf
-2023/10/10 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex
-2023/10/10 | 150302 | macros/latex/contrib/l3kernel/l3news10.pdf
-2023/10/10 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex
-2023/10/10 | 170102 | macros/latex/contrib/l3kernel/l3news11.pdf
-2023/10/10 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex
-2023/10/10 | 205020 | macros/latex/contrib/l3kernel/l3news12.pdf
-2023/10/10 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex
-2023/10/10 | 396222 | macros/latex/contrib/l3kernel/l3news.pdf
-2023/10/10 | 4890 | macros/latex/contrib/l3kernel/l3news.tex
-2023/10/10 | 17901 | macros/latex/contrib/l3kernel/l3pdf.dtx
-2023/10/10 | 47274 | macros/latex/contrib/l3kernel/l3prefixes.csv
-2023/10/10 | 82529 | macros/latex/contrib/l3kernel/l3prefixes.pdf
-2023/10/10 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex
-2023/10/10 | 70482 | macros/latex/contrib/l3kernel/l3prg.dtx
-2023/10/10 | 60383 | macros/latex/contrib/l3kernel/l3prop.dtx
-2023/10/10 | 35441 | macros/latex/contrib/l3kernel/l3quark.dtx
-2023/10/10 | 305576 | macros/latex/contrib/l3kernel/l3regex.dtx
-2023/10/10 | 98903 | macros/latex/contrib/l3kernel/l3seq.dtx
-2023/10/10 | 91738 | macros/latex/contrib/l3kernel/l3skip.dtx
-2023/10/10 | 40728 | macros/latex/contrib/l3kernel/l3sort.dtx
-2023/10/10 | 113435 | macros/latex/contrib/l3kernel/l3str-convert.dtx
-2023/10/10 | 79587 | macros/latex/contrib/l3kernel/l3str.dtx
-2023/10/10 | 296260 | macros/latex/contrib/l3kernel/l3styleguide.pdf
-2023/10/10 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex
-2023/10/10 | 242906 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf
-2023/10/10 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex
-2023/10/10 | 36264 | macros/latex/contrib/l3kernel/l3sys.dtx
-2023/10/10 | 218060 | macros/latex/contrib/l3kernel/l3term-glossary.pdf
-2023/10/10 | 7079 | macros/latex/contrib/l3kernel/l3term-glossary.tex
-2023/10/10 | 74234 | macros/latex/contrib/l3kernel/l3text-case.dtx
-2023/10/10 | 49600 | macros/latex/contrib/l3kernel/l3text.dtx
-2023/10/10 | 16631 | macros/latex/contrib/l3kernel/l3text-map.dtx
-2023/10/10 | 20464 | macros/latex/contrib/l3kernel/l3text-purify.dtx
-2023/10/10 | 62840 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx
-2023/10/10 | 148160 | macros/latex/contrib/l3kernel/l3tl.dtx
-2023/10/10 | 119040 | macros/latex/contrib/l3kernel/l3token.dtx
-2023/10/10 | 35675 | macros/latex/contrib/l3kernel/l3unicode.dtx
-2023/10/10 | 3058 | macros/latex/contrib/l3kernel/README.md
-2023/10/10 | 25001 | macros/latex/contrib/l3kernel/source3body.tex
-2023/10/10 | 7389071 | macros/latex/contrib/l3kernel/source3.pdf
-2023/10/10 | 2266 | macros/latex/contrib/l3kernel/source3.tex
-2023/10/10 | 13775882 | macros/latex/contrib/l3kernel.zip
+2023/10/23 | 53634 | macros/latex/contrib/l3kernel/CHANGELOG.md
+2023/10/23 | 70468 | macros/latex/contrib/l3kernel/expl3.dtx
+2023/10/23 | 622183 | macros/latex/contrib/l3kernel/expl3.pdf
+2023/10/23 | 1732906 | macros/latex/contrib/l3kernel/interface3.pdf
+2023/10/23 | 2072 | macros/latex/contrib/l3kernel/interface3.tex
+2023/10/23 | 135561 | macros/latex/contrib/l3kernel/l3basics.dtx
+2023/10/23 | 12806 | macros/latex/contrib/l3kernel/l3bootstrap.dtx
+2023/10/23 | 87744 | macros/latex/contrib/l3kernel/l3box.dtx
+2023/10/23 | 16639 | macros/latex/contrib/l3kernel/l3candidates.dtx
+2023/10/23 | 33773 | macros/latex/contrib/l3kernel/l3cctab.dtx
+2023/10/23 | 83184 | macros/latex/contrib/l3kernel/l3clist.dtx
+2023/10/23 | 88106 | macros/latex/contrib/l3kernel/l3coffins.dtx
+2023/10/23 | 112275 | macros/latex/contrib/l3kernel/l3color.dtx
+2023/10/23 | 43223 | macros/latex/contrib/l3kernel/l3debug.dtx
+2023/10/23 | 25810 | macros/latex/contrib/l3kernel/l3deprecation.dtx
+2023/10/23 | 157292 | macros/latex/contrib/l3kernel/l3doc.dtx
+2023/10/23 | 557935 | macros/latex/contrib/l3kernel/l3doc.pdf
+2023/10/23 | 2385 | macros/latex/contrib/l3kernel/l3docstrip.dtx
+2023/10/23 | 151749 | macros/latex/contrib/l3kernel/l3docstrip.pdf
+2023/10/23 | 89007 | macros/latex/contrib/l3kernel/l3expan.dtx
+2023/10/23 | 144087 | macros/latex/contrib/l3kernel/l3file.dtx
+2023/10/23 | 10328 | macros/latex/contrib/l3kernel/l3flag.dtx
+2023/10/23 | 11781 | macros/latex/contrib/l3kernel/l3fparray.dtx
+2023/10/23 | 7472 | macros/latex/contrib/l3kernel/l3fp-assign.dtx
+2023/10/23 | 47216 | macros/latex/contrib/l3kernel/l3fp-aux.dtx
+2023/10/23 | 84779 | macros/latex/contrib/l3kernel/l3fp-basics.dtx
+2023/10/23 | 19641 | macros/latex/contrib/l3kernel/l3fp-convert.dtx
+2023/10/23 | 76329 | macros/latex/contrib/l3kernel/l3fp.dtx
+2023/10/23 | 49311 | macros/latex/contrib/l3kernel/l3fp-expo.dtx
+2023/10/23 | 51081 | macros/latex/contrib/l3kernel/l3fp-extended.dtx
+2023/10/23 | 7662 | macros/latex/contrib/l3kernel/l3fp-functions.dtx
+2023/10/23 | 23196 | macros/latex/contrib/l3kernel/l3fp-logic.dtx
+2023/10/23 | 105012 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
+2023/10/23 | 23574 | macros/latex/contrib/l3kernel/l3fp-random.dtx
+2023/10/23 | 18532 | macros/latex/contrib/l3kernel/l3fp-round.dtx
+2023/10/23 | 19821 | macros/latex/contrib/l3kernel/l3fp-symbolic.dtx
+2023/10/23 | 12767 | macros/latex/contrib/l3kernel/l3fp-traps.dtx
+2023/10/23 | 73835 | macros/latex/contrib/l3kernel/l3fp-trig.dtx
+2023/10/23 | 4912 | macros/latex/contrib/l3kernel/l3fp-types.dtx
+2023/10/23 | 6351 | macros/latex/contrib/l3kernel/l3.ins
+2023/10/23 | 30508 | macros/latex/contrib/l3kernel/l3intarray.dtx
+2023/10/23 | 92999 | macros/latex/contrib/l3kernel/l3int.dtx
+2023/10/23 | 27270 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+2023/10/23 | 129900 | macros/latex/contrib/l3kernel/l3keys.dtx
+2023/10/23 | 4574 | macros/latex/contrib/l3kernel/l3legacy.dtx
+2023/10/23 | 23866 | macros/latex/contrib/l3kernel/l3luatex.dtx
+2023/10/23 | 82320 | macros/latex/contrib/l3kernel/l3msg.dtx
+2023/10/23 | 80195 | macros/latex/contrib/l3kernel/l3names.dtx
+2023/10/23 | 122959 | macros/latex/contrib/l3kernel/l3news01.pdf
+2023/10/23 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex
+2023/10/23 | 150919 | macros/latex/contrib/l3kernel/l3news02.pdf
+2023/10/23 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex
+2023/10/23 | 148747 | macros/latex/contrib/l3kernel/l3news03.pdf
+2023/10/23 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex
+2023/10/23 | 114754 | macros/latex/contrib/l3kernel/l3news04.pdf
+2023/10/23 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex
+2023/10/23 | 112524 | macros/latex/contrib/l3kernel/l3news05.pdf
+2023/10/23 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex
+2023/10/23 | 151591 | macros/latex/contrib/l3kernel/l3news06.pdf
+2023/10/23 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex
+2023/10/23 | 128344 | macros/latex/contrib/l3kernel/l3news07.pdf
+2023/10/23 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex
+2023/10/23 | 163484 | macros/latex/contrib/l3kernel/l3news08.pdf
+2023/10/23 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex
+2023/10/23 | 250159 | macros/latex/contrib/l3kernel/l3news09.pdf
+2023/10/23 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex
+2023/10/23 | 150302 | macros/latex/contrib/l3kernel/l3news10.pdf
+2023/10/23 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex
+2023/10/23 | 170102 | macros/latex/contrib/l3kernel/l3news11.pdf
+2023/10/23 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex
+2023/10/23 | 205020 | macros/latex/contrib/l3kernel/l3news12.pdf
+2023/10/23 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex
+2023/10/23 | 396222 | macros/latex/contrib/l3kernel/l3news.pdf
+2023/10/23 | 4890 | macros/latex/contrib/l3kernel/l3news.tex
+2023/10/23 | 17901 | macros/latex/contrib/l3kernel/l3pdf.dtx
+2023/10/23 | 47968 | macros/latex/contrib/l3kernel/l3prefixes.csv
+2023/10/23 | 82661 | macros/latex/contrib/l3kernel/l3prefixes.pdf
+2023/10/23 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex
+2023/10/23 | 70511 | macros/latex/contrib/l3kernel/l3prg.dtx
+2023/10/23 | 60385 | macros/latex/contrib/l3kernel/l3prop.dtx
+2023/10/23 | 35441 | macros/latex/contrib/l3kernel/l3quark.dtx
+2023/10/23 | 305596 | macros/latex/contrib/l3kernel/l3regex.dtx
+2023/10/23 | 98903 | macros/latex/contrib/l3kernel/l3seq.dtx
+2023/10/23 | 91738 | macros/latex/contrib/l3kernel/l3skip.dtx
+2023/10/23 | 40728 | macros/latex/contrib/l3kernel/l3sort.dtx
+2023/10/23 | 113435 | macros/latex/contrib/l3kernel/l3str-convert.dtx
+2023/10/23 | 79602 | macros/latex/contrib/l3kernel/l3str.dtx
+2023/10/23 | 296258 | macros/latex/contrib/l3kernel/l3styleguide.pdf
+2023/10/23 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex
+2023/10/23 | 242903 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+2023/10/23 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex
+2023/10/23 | 36266 | macros/latex/contrib/l3kernel/l3sys.dtx
+2023/10/23 | 218059 | macros/latex/contrib/l3kernel/l3term-glossary.pdf
+2023/10/23 | 7079 | macros/latex/contrib/l3kernel/l3term-glossary.tex
+2023/10/23 | 76364 | macros/latex/contrib/l3kernel/l3text-case.dtx
+2023/10/23 | 49038 | macros/latex/contrib/l3kernel/l3text.dtx
+2023/10/23 | 16631 | macros/latex/contrib/l3kernel/l3text-map.dtx
+2023/10/23 | 20464 | macros/latex/contrib/l3kernel/l3text-purify.dtx
+2023/10/23 | 63960 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+2023/10/23 | 148167 | macros/latex/contrib/l3kernel/l3tl.dtx
+2023/10/23 | 121564 | macros/latex/contrib/l3kernel/l3token.dtx
+2023/10/23 | 35675 | macros/latex/contrib/l3kernel/l3unicode.dtx
+2023/10/23 | 3062 | macros/latex/contrib/l3kernel/README.md
+2023/10/23 | 25069 | macros/latex/contrib/l3kernel/source3body.tex
+2023/10/23 | 7475976 | macros/latex/contrib/l3kernel/source3.pdf
+2023/10/23 | 2266 | macros/latex/contrib/l3kernel/source3.tex
+2023/10/23 | 13872012 | macros/latex/contrib/l3kernel.zip
2023/10/10 | 7555 | macros/latex/contrib/l3packages/CHANGELOG.md
2023/10/10 | 1444 | macros/latex/contrib/l3packages/l3keys2e-demo.tex
2023/10/10 | 12312 | macros/latex/contrib/l3packages/l3keys2e.dtx
@@ -234596,39 +234916,21 @@
2022/04/26 | 323 | macros/latex/contrib/proflabo/README.md
2022/04/26 | 9327 | macros/latex/contrib/proflabo/tex/ProfLabo.sty
2022/04/26 | 136164 | macros/latex/contrib/proflabo.zip
-2023/04/22 | 4779 | macros/latex/contrib/proflycee/doc/graphics/integr_nwks_a.png
-2023/04/22 | 5332 | macros/latex/contrib/proflycee/doc/graphics/integr_nwks_b.png
-2022/10/14 | 10939 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_a.png
-2022/10/14 | 10804 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_b.png
-2022/10/14 | 7252 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_c.png
-2022/10/14 | 7380 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_d.png
-2022/10/14 | 9965 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_e.png
-2022/10/14 | 7670 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_f.png
-2022/06/28 | 9278 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.png
-2022/06/28 | 13958 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.png
-2022/06/28 | 9989 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.png
-2022/06/28 | 11759 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png
-2022/06/28 | 7316 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png
-2022/06/28 | 9599 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png
-2023/01/01 | 5226 | macros/latex/contrib/proflycee/doc/graphics/pl-solve_a.png
-2023/01/02 | 9215 | macros/latex/contrib/proflycee/doc/graphics/pl-solve_b.png
-2023/01/02 | 10175 | macros/latex/contrib/proflycee/doc/graphics/pl-solve_c.png
-2023/01/02 | 10145 | macros/latex/contrib/proflycee/doc/graphics/pl-solve_d.png
-2023/10/18 | 1320885 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
-2023/10/18 | 320887 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+2023/10/23 | 234711 | macros/latex/contrib/proflycee/doc/proflycee-docctan.zip
+2023/10/23 | 1340845 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+2023/10/23 | 19027 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
2023/09/27 | 59868 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.pdf
2023/09/27 | 6908 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pyluatex.tex
2023/09/17 | 41175 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.pdf
2023/09/17 | 5435 | macros/latex/contrib/proflycee/doc/ProfLycee-exemples-pythontex.tex
-2023/10/18 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
2022/08/10 | 439 | macros/latex/contrib/proflycee/README.md
-2023/10/18 | 7838 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
+2023/10/23 | 7927 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
2023/05/18 | 4196 | macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex
2023/05/14 | 22505 | macros/latex/contrib/proflycee/tex/proflycee-tools-analyse.tex
2023/10/08 | 25839 | macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex
2023/09/03 | 9810 | macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
2023/05/23 | 25515 | macros/latex/contrib/proflycee/tex/proflycee-tools-geom.tex
-2023/09/29 | 18641 | macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
+2023/10/23 | 25723 | macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
2023/10/03 | 25491 | macros/latex/contrib/proflycee/tex/proflycee-tools-listings.tex
2023/09/18 | 7115 | macros/latex/contrib/proflycee/tex/proflycee-tools-minted.tex
2023/09/30 | 7349 | macros/latex/contrib/proflycee/tex/proflycee-tools-piton.tex
@@ -234638,7 +234940,7 @@
2023/06/03 | 17918 | macros/latex/contrib/proflycee/tex/proflycee-tools-stats.tex
2023/04/13 | 6608 | macros/latex/contrib/proflycee/tex/proflycee-tools-suites.tex
2023/05/03 | 42723 | macros/latex/contrib/proflycee/tex/proflycee-tools-trigo.tex
-2023/10/19 | 1662329 | macros/latex/contrib/proflycee.zip
+2023/10/23 | 1701024 | macros/latex/contrib/proflycee.zip
2023/09/09 | 177327 | macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
2023/09/09 | 39863 | macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex
2023/06/23 | 17412 | macros/latex/contrib/profmaquette/doc/TestParcoursPerso.pdf
@@ -255031,13 +255333,13 @@
2023/09/26 | 19106 | macros/unicodetex/latex/beaulivre/LICENSE
2023/09/26 | 7226 | macros/unicodetex/latex/beaulivre/README.md
2023/09/26 | 14292 | macros/unicodetex/latex/beaulivre.zip
-2023/10/01 | 124542 | macros/unicodetex/latex/bithesis/bithesis.dtx
-2023/10/01 | 3302 | macros/unicodetex/latex/bithesis/bithesis.ins
-2023/10/01 | 556835 | macros/unicodetex/latex/bithesis/bithesis.pdf
-2023/10/01 | 2348 | macros/unicodetex/latex/bithesis/contributing.md
-2023/10/01 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
-2023/10/01 | 1946 | macros/unicodetex/latex/bithesis/README.md
-2023/10/01 | 582205 | macros/unicodetex/latex/bithesis.zip
+2023/10/23 | 125199 | macros/unicodetex/latex/bithesis/bithesis.dtx
+2023/10/23 | 3302 | macros/unicodetex/latex/bithesis/bithesis.ins
+2023/10/23 | 731548 | macros/unicodetex/latex/bithesis/bithesis.pdf
+2023/10/23 | 2348 | macros/unicodetex/latex/bithesis/contributing.md
+2023/10/23 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
+2023/10/23 | 1946 | macros/unicodetex/latex/bithesis/README.md
+2023/10/23 | 759061 | 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
@@ -292977,7 +293279,7 @@
2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz
2023/05/16 | 400 | systems/texlive/tlnet/archive/collection-langportuguese.r67125.tar.xz
2023/06/09 | 396 | systems/texlive/tlnet/archive/collection-langspanish.r67307.tar.xz
-2023/09/27 | 6972 | systems/texlive/tlnet/archive/collection-latexextra.r68377.tar.xz
+2023/10/23 | 6980 | systems/texlive/tlnet/archive/collection-latexextra.r68620.tar.xz
2022/06/10 | 700 | systems/texlive/tlnet/archive/collection-latex.r63515.tar.xz
2023/01/11 | 744 | systems/texlive/tlnet/archive/collection-latexrecommended.r65512.tar.xz
2023/08/26 | 1008 | systems/texlive/tlnet/archive/collection-luatex.r68053.tar.xz
@@ -293265,8 +293567,8 @@
2023/07/24 | 11304 | systems/texlive/tlnet/archive/create-theorem.r67712.tar.xz
2023/08/28 | 159092 | systems/texlive/tlnet/archive/creationboites.doc.r68087.tar.xz
2023/08/28 | 2200 | systems/texlive/tlnet/archive/creationboites.r68087.tar.xz
-2023/10/17 | 76136 | systems/texlive/tlnet/archive/crefthe.doc.r68565.tar.xz
-2023/10/17 | 4392 | systems/texlive/tlnet/archive/crefthe.r68565.tar.xz
+2023/10/23 | 76140 | systems/texlive/tlnet/archive/crefthe.doc.r68618.tar.xz
+2023/10/23 | 4396 | systems/texlive/tlnet/archive/crefthe.r68618.tar.xz
2022/10/01 | 34252 | systems/texlive/tlnet/archive/crimson.doc.r64559.tar.xz
2022/10/02 | 85180 | systems/texlive/tlnet/archive/crimsonpro.doc.r64565.tar.xz
2022/10/02 | 2549080 | systems/texlive/tlnet/archive/crimsonpro.r64565.tar.xz
@@ -293488,6 +293790,8 @@
2022/08/11 | 360976 | systems/texlive/tlnet/archive/customdice.doc.r64089.tar.xz
2022/08/11 | 2616 | systems/texlive/tlnet/archive/customdice.r64089.tar.xz
2022/08/11 | 7408 | systems/texlive/tlnet/archive/customdice.source.r64089.tar.xz
+2023/10/23 | 300124 | systems/texlive/tlnet/archive/customenvs.doc.r68620.tar.xz
+2023/10/23 | 3176 | systems/texlive/tlnet/archive/customenvs.r68620.tar.xz
2021/10/31 | 334216 | systems/texlive/tlnet/archive/cutwin.doc.r60901.tar.xz
2021/10/31 | 2836 | systems/texlive/tlnet/archive/cutwin.r60901.tar.xz
2021/10/31 | 9416 | systems/texlive/tlnet/archive/cutwin.source.r60901.tar.xz
@@ -293502,7 +293806,7 @@
2023/02/18 | 177276 | systems/texlive/tlnet/archive/cweb.amd64-freebsd.r65877.tar.xz
2023/02/20 | 147836 | systems/texlive/tlnet/archive/cweb.amd64-netbsd.r65923.tar.xz
2023/02/18 | 118596 | systems/texlive/tlnet/archive/cweb.armhf-linux.r65877.tar.xz
-2023/10/03 | 73552 | systems/texlive/tlnet/archive/cweb.doc.r68429.tar.xz
+2023/10/23 | 73552 | systems/texlive/tlnet/archive/cweb.doc.r68617.tar.xz
2023/02/18 | 140668 | systems/texlive/tlnet/archive/cweb.i386-freebsd.r65877.tar.xz
2023/02/18 | 144220 | systems/texlive/tlnet/archive/cweb.i386-linux.r65877.tar.xz
2023/02/20 | 117724 | systems/texlive/tlnet/archive/cweb.i386-netbsd.r65923.tar.xz
@@ -293510,7 +293814,7 @@
2019/02/28 | 240884 | systems/texlive/tlnet/archive/cweb-latex.doc.r28878.tar.xz
2019/02/28 | 36236 | systems/texlive/tlnet/archive/cweb-latex.r28878.tar.xz
2019/02/28 | 9720 | systems/texlive/tlnet/archive/cweb-old.r49271.tar.xz
-2023/10/03 | 24712 | systems/texlive/tlnet/archive/cweb.r68429.tar.xz
+2023/10/23 | 24752 | systems/texlive/tlnet/archive/cweb.r68617.tar.xz
2023/02/20 | 332852 | systems/texlive/tlnet/archive/cweb.universal-darwin.r65895.tar.xz
2023/02/20 | 110408 | systems/texlive/tlnet/archive/cweb.windows.r65891.tar.xz
2023/03/11 | 111940 | systems/texlive/tlnet/archive/cweb.x86_64-cygwin.r66544.tar.xz
@@ -301571,8 +301875,8 @@
2019/02/28 | 292656 | systems/texlive/tlnet/archive/simplecv.doc.r35537.tar.xz
2019/02/28 | 2112 | systems/texlive/tlnet/archive/simplecv.r35537.tar.xz
2019/02/28 | 5844 | systems/texlive/tlnet/archive/simplecv.source.r35537.tar.xz
-2023/10/22 | 2196912 | systems/texlive/tlnet/archive/simpleicons.doc.r68605.tar.xz
-2023/10/22 | 2985180 | systems/texlive/tlnet/archive/simpleicons.r68605.tar.xz
+2023/10/23 | 2295896 | systems/texlive/tlnet/archive/simpleicons.doc.r68619.tar.xz
+2023/10/23 | 3149516 | systems/texlive/tlnet/archive/simpleicons.r68619.tar.xz
2019/02/28 | 224844 | systems/texlive/tlnet/archive/simpleinvoice.doc.r45673.tar.xz
2019/02/28 | 2420 | systems/texlive/tlnet/archive/simpleinvoice.r45673.tar.xz
2023/10/03 | 142696 | systems/texlive/tlnet/archive/simplekv.doc.r68439.tar.xz
@@ -302265,7 +302569,7 @@
2023/10/21 | 1103872 | systems/texlive/tlnet/archive/tex4ht.r68600.tar.xz
2023/10/21 | 1454584 | systems/texlive/tlnet/archive/tex4ht.source.r68600.tar.xz
2023/08/16 | 184636 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r67940.tar.xz
-2023/08/16 | 62092 | systems/texlive/tlnet/archive/tex4ht.windows.r67940.tar.xz
+2023/10/23 | 62056 | systems/texlive/tlnet/archive/tex4ht.windows.r68621.tar.xz
2023/08/16 | 57992 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r67940.tar.xz
2023/08/16 | 84740 | systems/texlive/tlnet/archive/tex4ht.x86_64-darwinlegacy.r67940.tar.xz
2023/08/16 | 94488 | systems/texlive/tlnet/archive/tex4ht.x86_64-linuxmusl.r67940.tar.xz
@@ -302524,7 +302828,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/10/21 | 428184 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68599.tar.xz
+2023/10/23 | 428184 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68614.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
@@ -302546,7 +302850,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/10/21 | 114092 | systems/texlive/tlnet/archive/texlive-scripts.r68599.tar.xz
+2023/10/23 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r68614.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2023/05/14 | 60312 | systems/texlive/tlnet/archive/texlive-scripts.windows.r67095.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -304426,16 +304730,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/08/07 | 125713 | systems/texlive/tlnet/install-tl
-2023/10/22 | 5742414 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/10/22 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/10/22 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/10/23 | 5738408 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/10/23 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/10/23 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2023/10/22 | 21038361 | systems/texlive/tlnet/install-tl-windows.exe
-2023/10/22 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/10/22 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/10/22 | 26029191 | systems/texlive/tlnet/install-tl.zip
-2023/10/22 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/10/22 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/10/23 | 21040049 | systems/texlive/tlnet/install-tl-windows.exe
+2023/10/23 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/10/23 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/10/23 | 26029173 | systems/texlive/tlnet/install-tl.zip
+2023/10/23 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/10/23 | 488 | 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
@@ -304445,7 +304749,7 @@
2023/01/17 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2023/09/20 | 50622 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2023/10/20 | 7198 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/10/22 | 7103 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/08/23 | 221470 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -304487,12 +304791,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/10/22 | 18286199 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/10/22 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/10/23 | 18287552 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/10/23 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/10/16 | 87924 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/10/22 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/10/22 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/10/22 | 2478852 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/10/23 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/10/23 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/10/23 | 2478488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -315356,7 +315660,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/10/23 | 186 | timestamp
+2023/10/24 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 4fc2bce773..03f6c04ea9 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 1c7427fd60..fa40e884f8 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,3 +1,197 @@
+2023/10/23 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex
+2023/10/23 | 9916 | macros/latex/contrib/l3backend/l3backend-opacity.dtx
+2023/10/23 | 9898 | macros/latex/contrib/l3backend/CHANGELOG.md
+2023/10/23 | 98903 | macros/latex/contrib/l3kernel/l3seq.dtx
+2023/10/23 | 972850 | install/macros/latex/contrib/l3backend.tds.zip
+2023/10/23 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex
+2023/10/23 | 944009 | macros/latex/contrib/acmart/acmart.pdf
+2023/10/23 | 934765 | macros/latex/contrib/l3backend.zip
+2023/10/23 | 934024 | macros/latex/contrib/l3backend/l3backend-code.pdf
+2023/10/23 | 92999 | macros/latex/contrib/l3kernel/l3int.dtx
+2023/10/23 | 91738 | macros/latex/contrib/l3kernel/l3skip.dtx
+2023/10/23 | 89007 | macros/latex/contrib/l3kernel/l3expan.dtx
+2023/10/23 | 88106 | macros/latex/contrib/l3kernel/l3coffins.dtx
+2023/10/23 | 87744 | macros/latex/contrib/l3kernel/l3box.dtx
+2023/10/23 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex
+2023/10/23 | 84779 | macros/latex/contrib/l3kernel/l3fp-basics.dtx
+2023/10/23 | 83184 | macros/latex/contrib/l3kernel/l3clist.dtx
+2023/10/23 | 82661 | macros/latex/contrib/l3kernel/l3prefixes.pdf
+2023/10/23 | 82320 | macros/latex/contrib/l3kernel/l3msg.dtx
+2023/10/23 | 80195 | macros/latex/contrib/l3kernel/l3names.dtx
+2023/10/23 | 79602 | macros/latex/contrib/l3kernel/l3str.dtx
+2023/10/23 | 7927 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
+2023/10/23 | 783354 | macros/latex/contrib/acmart/samples/sample-lualatex.pdf
+2023/10/23 | 7662 | macros/latex/contrib/l3kernel/l3fp-functions.dtx
+2023/10/23 | 76364 | macros/latex/contrib/l3kernel/l3text-case.dtx
+2023/10/23 | 76329 | macros/latex/contrib/l3kernel/l3fp.dtx
+2023/10/23 | 76140 | systems/texlive/tlnet/archive/crefthe.doc.r68618.tar.xz
+2023/10/23 | 759061 | macros/unicodetex/latex/bithesis.zip
+2023/10/23 | 7475976 | macros/latex/contrib/l3kernel/source3.pdf
+2023/10/23 | 7472 | macros/latex/contrib/l3kernel/l3fp-assign.dtx
+2023/10/23 | 73835 | macros/latex/contrib/l3kernel/l3fp-trig.dtx
+2023/10/23 | 73552 | systems/texlive/tlnet/archive/cweb.doc.r68617.tar.xz
+2023/10/23 | 731548 | macros/unicodetex/latex/bithesis/bithesis.pdf
+2023/10/23 | 7079 | macros/latex/contrib/l3kernel/l3term-glossary.tex
+2023/10/23 | 70511 | macros/latex/contrib/l3kernel/l3prg.dtx
+2023/10/23 | 70468 | macros/latex/contrib/l3kernel/expl3.dtx
+2023/10/23 | 6980 | systems/texlive/tlnet/archive/collection-latexextra.r68620.tar.xz
+2023/10/23 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex
+2023/10/23 | 659297 | macros/latex/contrib/acmart/samples/sample-xelatex.pdf
+2023/10/23 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex
+2023/10/23 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex
+2023/10/23 | 63960 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+2023/10/23 | 6351 | macros/latex/contrib/l3kernel/l3.ins
+2023/10/23 | 629691 | macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+2023/10/23 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex
+2023/10/23 | 622183 | macros/latex/contrib/l3kernel/expl3.pdf
+2023/10/23 | 62056 | systems/texlive/tlnet/archive/tex4ht.windows.r68621.tar.xz
+2023/10/23 | 619512 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+2023/10/23 | 619302 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+2023/10/23 | 617005 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+2023/10/23 | 616653 | macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+2023/10/23 | 611467 | info/latex-via-exemplos/latex-via-exemplos.tex
+2023/10/23 | 607188 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+2023/10/23 | 60385 | macros/latex/contrib/l3kernel/l3prop.dtx
+2023/10/23 | 5738408 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/10/23 | 564503 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+2023/10/23 | 557935 | macros/latex/contrib/l3kernel/l3doc.pdf
+2023/10/23 | 55212 | macros/latex/contrib/acmart/samples/samples.dtx
+2023/10/23 | 549 | macros/latex/contrib/l3backend/README.md
+2023/10/23 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex
+2023/10/23 | 53634 | macros/latex/contrib/l3kernel/CHANGELOG.md
+2023/10/23 | 51081 | macros/latex/contrib/l3kernel/l3fp-extended.dtx
+2023/10/23 | 50952 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
+2023/10/23 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex
+2023/10/23 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex
+2023/10/23 | 49311 | macros/latex/contrib/l3kernel/l3fp-expo.dtx
+2023/10/23 | 4922 | macros/latex/contrib/l3backend/l3backend.ins
+2023/10/23 | 4912 | macros/latex/contrib/l3kernel/l3fp-types.dtx
+2023/10/23 | 49038 | macros/latex/contrib/l3kernel/l3text.dtx
+2023/10/23 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/10/23 | 4890 | macros/latex/contrib/l3kernel/l3news.tex
+2023/10/23 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/10/23 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/10/23 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/10/23 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/10/23 | 47968 | macros/latex/contrib/l3kernel/l3prefixes.csv
+2023/10/23 | 47216 | macros/latex/contrib/l3kernel/l3fp-aux.dtx
+2023/10/23 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex
+2023/10/23 | 4574 | macros/latex/contrib/l3kernel/l3legacy.dtx
+2023/10/23 | 4396 | systems/texlive/tlnet/archive/crefthe.r68618.tar.xz
+2023/10/23 | 434062 | macros/latex/contrib/acmart/acmguide.pdf
+2023/10/23 | 43223 | macros/latex/contrib/l3kernel/l3debug.dtx
+2023/10/23 | 428184 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68614.tar.xz
+2023/10/23 | 41343 | macros/latex/contrib/l3backend/l3backend-color.dtx
+2023/10/23 | 4121707 | biblio/ctan-bibdata.zip
+2023/10/23 | 40728 | macros/latex/contrib/l3kernel/l3sort.dtx
+2023/10/23 | 396222 | macros/latex/contrib/l3kernel/l3news.pdf
+2023/10/23 | 395888 | macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+2023/10/23 | 3718031 | biblio/ctan-bibdata/ctan.pdf
+2023/10/23 | 36266 | macros/latex/contrib/l3kernel/l3sys.dtx
+2023/10/23 | 35675 | macros/latex/contrib/l3kernel/l3unicode.dtx
+2023/10/23 | 35441 | macros/latex/contrib/l3kernel/l3quark.dtx
+2023/10/23 | 34288 | macros/latex/contrib/l3backend/l3backend-draw.dtx
+2023/10/23 | 33773 | macros/latex/contrib/l3kernel/l3cctab.dtx
+2023/10/23 | 3302 | macros/unicodetex/latex/bithesis/bithesis.ins
+2023/10/23 | 3176 | systems/texlive/tlnet/archive/customenvs.r68620.tar.xz
+2023/10/23 | 3172201 | macros/latex/contrib/isosafety.zip
+2023/10/23 | 3149516 | systems/texlive/tlnet/archive/simpleicons.r68619.tar.xz
+2023/10/23 | 3062 | macros/latex/contrib/l3kernel/README.md
+2023/10/23 | 305596 | macros/latex/contrib/l3kernel/l3regex.dtx
+2023/10/23 | 30508 | macros/latex/contrib/l3kernel/l3intarray.dtx
+2023/10/23 | 300124 | systems/texlive/tlnet/archive/customenvs.doc.r68620.tar.xz
+2023/10/23 | 296258 | macros/latex/contrib/l3kernel/l3styleguide.pdf
+2023/10/23 | 29569 | macros/latex/contrib/l3backend/l3backend-graphics.dtx
+2023/10/23 | 288660 | macros/latex/contrib/acmart/acmart.dtx
+2023/10/23 | 2854716 | info/latex-via-exemplos.zip
+2023/10/23 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex
+2023/10/23 | 2819854 | biblio/ctan-bibdata/ctan.bib
+2023/10/23 | 27270 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+2023/10/23 | 2649 | macros/unicodetex/latex/bithesis/contributing-zh.md
+2023/10/23 | 26029173 | systems/texlive/tlnet/install-tl.zip
+2023/10/23 | 25810 | macros/latex/contrib/l3kernel/l3deprecation.dtx
+2023/10/23 | 25723 | macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
+2023/10/23 | 25069 | macros/latex/contrib/l3kernel/source3body.tex
+2023/10/23 | 250159 | macros/latex/contrib/l3kernel/l3news09.pdf
+2023/10/23 | 2478488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/10/23 | 24752 | systems/texlive/tlnet/archive/cweb.r68617.tar.xz
+2023/10/23 | 242903 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+2023/10/23 | 23866 | macros/latex/contrib/l3kernel/l3luatex.dtx
+2023/10/23 | 2385 | macros/latex/contrib/l3kernel/l3docstrip.dtx
+2023/10/23 | 23574 | macros/latex/contrib/l3kernel/l3fp-random.dtx
+2023/10/23 | 2348 | macros/unicodetex/latex/bithesis/contributing.md
+2023/10/23 | 234711 | macros/latex/contrib/proflycee/doc/proflycee-docctan.zip
+2023/10/23 | 23196 | macros/latex/contrib/l3kernel/l3fp-logic.dtx
+2023/10/23 | 2295896 | systems/texlive/tlnet/archive/simpleicons.doc.r68619.tar.xz
+2023/10/23 | 2266 | macros/latex/contrib/l3kernel/source3.tex
+2023/10/23 | 218059 | macros/latex/contrib/l3kernel/l3term-glossary.pdf
+2023/10/23 | 215120 | macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+2023/10/23 | 21040049 | systems/texlive/tlnet/install-tl-windows.exe
+2023/10/23 | 2072 | macros/latex/contrib/l3kernel/interface3.tex
+2023/10/23 | 205020 | macros/latex/contrib/l3kernel/l3news12.pdf
+2023/10/23 | 20464 | macros/latex/contrib/l3kernel/l3text-purify.dtx
+2023/10/23 | 19821 | macros/latex/contrib/l3kernel/l3fp-symbolic.dtx
+2023/10/23 | 19641 | macros/latex/contrib/l3kernel/l3fp-convert.dtx
+2023/10/23 | 1946 | macros/unicodetex/latex/bithesis/README.md
+2023/10/23 | 1906 | info/latex-via-exemplos/changelog.txt
+2023/10/23 | 19027 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+2023/10/23 | 18532 | macros/latex/contrib/l3kernel/l3fp-round.dtx
+2023/10/23 | 18287552 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/10/23 | 17901 | macros/latex/contrib/l3kernel/l3pdf.dtx
+2023/10/23 | 1732906 | macros/latex/contrib/l3kernel/interface3.pdf
+2023/10/23 | 170102 | macros/latex/contrib/l3kernel/l3news11.pdf
+2023/10/23 | 1701024 | macros/latex/contrib/proflycee.zip
+2023/10/23 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/10/23 | 16639 | macros/latex/contrib/l3kernel/l3candidates.dtx
+2023/10/23 | 16631 | macros/latex/contrib/l3kernel/l3text-map.dtx
+2023/10/23 | 163484 | macros/latex/contrib/l3kernel/l3news08.pdf
+2023/10/23 | 16217 | macros/latex/contrib/l3backend/l3backend-basics.dtx
+2023/10/23 | 157292 | macros/latex/contrib/l3kernel/l3doc.dtx
+2023/10/23 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/10/23 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/10/23 | 151749 | macros/latex/contrib/l3kernel/l3docstrip.pdf
+2023/10/23 | 151591 | macros/latex/contrib/l3kernel/l3news06.pdf
+2023/10/23 | 150919 | macros/latex/contrib/l3kernel/l3news02.pdf
+2023/10/23 | 150302 | macros/latex/contrib/l3kernel/l3news10.pdf
+2023/10/23 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex
+2023/10/23 | 148747 | macros/latex/contrib/l3kernel/l3news03.pdf
+2023/10/23 | 148167 | macros/latex/contrib/l3kernel/l3tl.dtx
+2023/10/23 | 14669 | macros/latex/contrib/l3backend/l3backend-header.dtx
+2023/10/23 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/10/23 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/10/23 | 14431 | macros/latex/contrib/l3backend/l3backend-box.dtx
+2023/10/23 | 144087 | macros/latex/contrib/l3kernel/l3file.dtx
+2023/10/23 | 14136490 | install/macros/latex/contrib/l3kernel.tds.zip
+2023/10/23 | 13872012 | macros/latex/contrib/l3kernel.zip
+2023/10/23 | 1383312 | info/latex-via-exemplos/latex-via-exemplos-twosides.pdf
+2023/10/23 | 1376701 | info/latex-via-exemplos/latex-via-exemplos.pdf
+2023/10/23 | 135561 | macros/latex/contrib/l3kernel/l3basics.dtx
+2023/10/23 | 1340845 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+2023/10/23 | 1331 | macros/latex/contrib/l3backend/l3backend-code.tex
+2023/10/23 | 13046742 | macros/latex/contrib/acmart.zip
+2023/10/23 | 129900 | macros/latex/contrib/l3kernel/l3keys.dtx
+2023/10/23 | 12870 | macros/latex/contrib/acmart/README
+2023/10/23 | 128344 | macros/latex/contrib/l3kernel/l3news07.pdf
+2023/10/23 | 12806 | macros/latex/contrib/l3kernel/l3bootstrap.dtx
+2023/10/23 | 12767 | macros/latex/contrib/l3kernel/l3fp-traps.dtx
+2023/10/23 | 125199 | macros/unicodetex/latex/bithesis/bithesis.dtx
+2023/10/23 | 122959 | macros/latex/contrib/l3kernel/l3news01.pdf
+2023/10/23 | 121564 | macros/latex/contrib/l3kernel/l3token.dtx
+2023/10/23 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex
+2023/10/23 | 11781 | macros/latex/contrib/l3kernel/l3fparray.dtx
+2023/10/23 | 114754 | macros/latex/contrib/l3kernel/l3news04.pdf
+2023/10/23 | 114076 | systems/texlive/tlnet/archive/texlive-scripts.r68614.tar.xz
+2023/10/23 | 113435 | macros/latex/contrib/l3kernel/l3str-convert.dtx
+2023/10/23 | 112524 | macros/latex/contrib/l3kernel/l3news05.pdf
+2023/10/23 | 112275 | macros/latex/contrib/l3kernel/l3color.dtx
+2023/10/23 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex
+2023/10/23 | 1055582 | macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+2023/10/23 | 1051029 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+2023/10/23 | 105012 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
+2023/10/23 | 1048750 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+2023/10/23 | 1044098 | macros/latex/contrib/acmart/samples/sample-authordraft.pdf
+2023/10/23 | 1040314 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+2023/10/23 | 10328 | macros/latex/contrib/l3kernel/l3flag.dtx
2023/10/22 | 99356 | systems/texlive/tlnet/archive/minim-math.doc.r68612.tar.xz
2023/10/22 | 964 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsoneone.tfm
2023/10/22 | 95687 | macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
@@ -12,8 +206,8 @@
2023/10/22 | 793 | macros/latex/contrib/hyperref/doc/hyperref-doc6.html
2023/10/22 | 7536 | macros/latex/contrib/hyperref/hyperref-patches.dtx
2023/10/22 | 7176 | systems/texlive/tlnet/archive/fontsetup.r68602.tar.xz
+2023/10/22 | 7103 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/10/22 | 5766 | macros/latex/contrib/hyperref/xr-hyper.sty
-2023/10/22 | 5742414 | systems/texlive/tlnet/install-tl-unx.tar.gz
2023/10/22 | 5730046 | fonts/simpleicons.zip
2023/10/22 | 553520 | systems/texlive/tlnet/archive/fontsetup.doc.r68602.tar.xz
2023/10/22 | 525392 | macros/latex/contrib/hyperref/doc/hyperref-doc.html
@@ -21,44 +215,40 @@
2023/10/22 | 50695 | macros/latex/contrib/hyperref/hluatex.dtx
2023/10/22 | 5024 | macros/latex/contrib/hyperref/hyperref.ins
2023/10/22 | 49184 | macros/latex/contrib/asmejour/asmejour.cls
-2023/10/22 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2023/10/22 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/10/22 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/10/22 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/10/22 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/10/22 | 4673 | macros/latex/contrib/isosafety/images/ISO-CV027.png
2023/10/22 | 4479 | macros/latex/contrib/hyperref/README.md
2023/10/22 | 439782 | macros/latex/contrib/hyperref/doc/hyperref-linktarget.pdf
2023/10/22 | 43769 | macros/latex/contrib/asmejour/asmejour-template.tex
2023/10/22 | 41844 | systems/texlive/tlnet/archive/tkz-euclide.r68604.tar.xz
-2023/10/22 | 4121200 | biblio/ctan-bibdata.zip
2023/10/22 | 4091366 | install/macros/latex/contrib/hyperref.tds.zip
2023/10/22 | 3932 | systems/texlive/tlnet/archive/jwjournal.r68608.tar.xz
2023/10/22 | 3909946 | macros/latex/contrib/hyperref.zip
-2023/10/22 | 3717455 | biblio/ctan-bibdata/ctan.pdf
+2023/10/22 | 3667 | macros/latex/contrib/isosafety/isosafety.dtx
2023/10/22 | 34052 | systems/texlive/tlnet/archive/minim-math.r68612.tar.xz
+2023/10/22 | 3363 | macros/latex/contrib/isosafety/images/ISO-CV029.png
2023/10/22 | 318592 | systems/texlive/tlnet/archive/minim.doc.r68612.tar.xz
2023/10/22 | 317664 | macros/latex/contrib/hyperref/doc/hyperref-doc.pdf
2023/10/22 | 3161 | macros/latex/contrib/hyperref/bmhydoc.sty
+2023/10/22 | 3036 | macros/latex/contrib/isosafety/images/ISO-CV011.png
2023/10/22 | 303446 | macros/latex/contrib/customenvs.zip
-2023/10/22 | 2985180 | systems/texlive/tlnet/archive/simpleicons.r68605.tar.xz
+2023/10/22 | 3033 | macros/latex/contrib/isosafety/images/ISO-CV028.png
2023/10/22 | 2983939 | macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.pdf
2023/10/22 | 28789 | macros/latex/contrib/hyperref/nameref.dtx
2023/10/22 | 28694 | macros/latex/contrib/hyperref/backref.dtx
2023/10/22 | 284 | macros/latex/contrib/hyperref/ntheorem-hyper.sty
2023/10/22 | 2837 | fonts/simpleicons/enc/simpleiconsone.enc
-2023/10/22 | 2819464 | biblio/ctan-bibdata/ctan.bib
2023/10/22 | 280 | macros/latex/contrib/hyperref/minitoc-hyper.sty
2023/10/22 | 2755 | fonts/simpleicons/enc/simpleiconsfour.enc
2023/10/22 | 274 | fonts/simpleicons/tex/usimpleiconsonezero.fd
2023/10/22 | 2702 | fonts/simpleicons/enc/simpleiconsnine.enc
2023/10/22 | 269 | fonts/simpleicons/tex/usimpleiconsoneone.fd
+2023/10/22 | 2668 | macros/latex/contrib/isosafety/images/ISO-CV009.png
2023/10/22 | 2662 | fonts/simpleicons/enc/simpleiconssix.enc
2023/10/22 | 2660 | fonts/simpleicons/enc/simpleiconstwo.enc
2023/10/22 | 264 | fonts/simpleicons/tex/usimpleiconsthree.fd
2023/10/22 | 264 | fonts/simpleicons/tex/usimpleiconsseven.fd
2023/10/22 | 264 | fonts/simpleicons/tex/usimpleiconseight.fd
2023/10/22 | 2609 | fonts/simpleicons/enc/simpleiconsthree.enc
-2023/10/22 | 26029191 | systems/texlive/tlnet/install-tl.zip
2023/10/22 | 259 | fonts/simpleicons/tex/usimpleiconsnine.fd
2023/10/22 | 259 | fonts/simpleicons/tex/usimpleiconsfour.fd
2023/10/22 | 259 | fonts/simpleicons/tex/usimpleiconsfive.fd
@@ -71,44 +261,43 @@
2023/10/22 | 2540 | fonts/simpleicons/enc/simpleiconsonezero.enc
2023/10/22 | 253228 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex
2023/10/22 | 25164 | systems/texlive/tlnet/archive/minim.r68612.tar.xz
-2023/10/22 | 2478852 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/10/22 | 247794 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
2023/10/22 | 247116 | macros/latex/contrib/hyperref/paperslides99.zip
2023/10/22 | 2461 | fonts/simpleicons/enc/simpleiconsfive.enc
+2023/10/22 | 2416 | macros/latex/contrib/isosafety/images/ISO-CV067.png
+2023/10/22 | 2395 | macros/latex/contrib/isosafety/images/ISO-CV012.png
2023/10/22 | 2390 | fonts/simpleicons/enc/simpleiconsoneone.enc
2023/10/22 | 2384 | systems/texlive/tlnet/archive/pdfpc.r68610.tar.xz
2023/10/22 | 2346680 | macros/latex/contrib/hyperref/doc/hyperref.pdf
2023/10/22 | 2284937 | fonts/simpleicons/doc/simpleicons.pdf
+2023/10/22 | 2283 | macros/latex/contrib/isosafety/images/ISO-CV004.png
2023/10/22 | 2208416 | fonts/simpleicons/opentype/SimpleIcons.otf
-2023/10/22 | 2196912 | systems/texlive/tlnet/archive/simpleicons.doc.r68605.tar.xz
-2023/10/22 | 21038361 | systems/texlive/tlnet/install-tl-windows.exe
+2023/10/22 | 2191 | macros/latex/contrib/isosafety/images/ISO-CV010.png
2023/10/22 | 207712 | systems/texlive/tlnet/archive/pdfpc.doc.r68610.tar.xz
2023/10/22 | 206681 | macros/latex/contrib/hyperref/doc/backref.pdf
2023/10/22 | 2041136 | fonts/simpleicons/type1/SimpleIcons.pfb
2023/10/22 | 203410 | macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
+2023/10/22 | 2022 | macros/latex/contrib/isosafety/images/ISO-CV064.png
2023/10/22 | 19445 | macros/latex/contrib/hyperref/hyperref-linktarget.dtx
2023/10/22 | 193328 | systems/texlive/tlnet/archive/jwjournal.doc.r68608.tar.xz
2023/10/22 | 1929 | macros/latex/contrib/hyperref/manifest.txt
2023/10/22 | 184798 | macros/latex/contrib/hyperref/doc/nameref.pdf
2023/10/22 | 1844 | fonts/simpleicons/doc/simpleicons.tex
-2023/10/22 | 18286199 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/10/22 | 1781 | macros/latex/contrib/isosafety/images/ISO-CV003.png
2023/10/22 | 17717 | macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
2023/10/22 | 17612 | systems/texlive/tlnet/archive/minim-mp.r68612.tar.xz
2023/10/22 | 17520 | systems/texlive/tlnet/archive/unbtex.r68603.tar.xz
2023/10/22 | 171497 | macros/latex/contrib/hyperref/doc/hyperref-doc.tex
-2023/10/22 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2023/10/22 | 16486 | macros/latex/contrib/asmejour/asmewide_example/asmejour-wide-equation-examples.tex
2023/10/22 | 157491 | fonts/simpleicons/doc/bindings.tex
2023/10/22 | 15673 | macros/latex/contrib/hyperref/doc/hyperref-doc.css
2023/10/22 | 15588 | systems/texlive/tlnet/archive/minim-pdf.r68612.tar.xz
-2023/10/22 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/10/22 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/10/22 | 1534 | macros/latex/contrib/isosafety/images/ISO-CV013.png
2023/10/22 | 15240 | macros/latex/contrib/customenvs/tex/customenvs.sty
2023/10/22 | 1521 | fonts/simpleicons/tex/simpleicons.sty
2023/10/22 | 146836 | systems/texlive/tlnet/archive/longdivision.doc.r68609.tar.xz
-2023/10/22 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/10/22 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2023/10/22 | 1405592 | systems/texlive/tlnet/archive/unbtex.doc.r68603.tar.xz
+2023/10/22 | 128680 | macros/latex/contrib/isosafety/isosafety.pdf
2023/10/22 | 125618 | macros/latex/contrib/hyperref/ChangeLog.txt
2023/10/22 | 1236 | fonts/simpleicons/tfm/SimpleIcons--simpleiconseight.tfm
2023/10/22 | 1236 | fonts/simpleicons/map/simpleicons.map
@@ -137,7 +326,6 @@
2023/10/21 | 4768 | macros/latex/contrib/crefthe/README.md
2023/10/21 | 449 | macros/latex/contrib/customenvs/README.md
2023/10/21 | 43855 | macros/latex/contrib/longdivision/longdivision.sty
-2023/10/21 | 428184 | systems/texlive/tlnet/archive/texlive-scripts.doc.r68599.tar.xz
2023/10/21 | 3680 | macros/latex/contrib/jwjournal/jwjournal-demo-fr.tex
2023/10/21 | 3258 | macros/latex/contrib/longdivision/README.md
2023/10/21 | 3180 | macros/latex/contrib/jwjournal/jwjournal-demo-en.tex
@@ -158,7 +346,6 @@
2023/10/21 | 13235 | macros/latex/contrib/jwjournal/README.md
2023/10/21 | 12 | macros/latex/contrib/jwjournal/DEPENDS.txt
2023/10/21 | 120740 | macros/latex/contrib/jwjournal/jwjournal-demo-cn.pdf
-2023/10/21 | 114092 | systems/texlive/tlnet/archive/texlive-scripts.r68599.tar.xz
2023/10/21 | 1103872 | systems/texlive/tlnet/archive/tex4ht.r68600.tar.xz
2023/10/21 | 10810 | macros/latex/contrib/longdivision/longdivision_manual.tex
2023/10/20 | 90 | macros/luatex/generic/minim/minim.tex
@@ -167,7 +354,6 @@
2023/10/20 | 8993 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-circles.tex
2023/10/20 | 8983 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
2023/10/20 | 752 | support/texshop/README.txt
-2023/10/20 | 7198 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/10/20 | 71221321 | support/texshop/texshop521.zip
2023/10/20 | 7016 | macros/luatex/generic/minim/minim-alloc.tex
2023/10/20 | 6837 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
@@ -204,6 +390,7 @@
2023/10/20 | 3056 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
2023/10/20 | 2987 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
2023/10/20 | 29830 | macros/luatex/generic/minim/minim-plain.tex
+2023/10/20 | 294 | macros/latex/contrib/isosafety/README.md
2023/10/20 | 29484 | systems/texlive/tlnet/archive/asmeconf.r68593.tar.xz
2023/10/20 | 2836748 | systems/texlive/tlnet/archive/asmeconf.doc.r68593.tar.xz
2023/10/20 | 2749 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
@@ -222,6 +409,7 @@
2023/10/20 | 20388 | macros/luatex/generic/minim-mp/minim-mp.doc
2023/10/20 | 2005 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
2023/10/20 | 19812 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
+2023/10/20 | 1971 | macros/latex/contrib/isosafety/isosafety.ins
2023/10/20 | 19094 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-intersections.tex
2023/10/20 | 1855 | macros/luatex/generic/minim-pdf/README
2023/10/20 | 18510 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
@@ -300,7 +488,6 @@
2023/10/19 | 17556 | support/pdfjam/README.md
2023/10/19 | 1713 | support/pdfjam/man1/pdfjam.1
2023/10/19 | 1671 | macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py
-2023/10/19 | 1662329 | macros/latex/contrib/proflycee.zip
2023/10/19 | 16100 | macros/latex/contrib/unbtex/unbtex-example.tex
2023/10/19 | 15511220 | systems/texlive/tlnet/archive/hvfloat.doc.r68586.tar.xz
2023/10/19 | 14096 | systems/texlive/tlnet/archive/hvfloat.r68586.tar.xz
@@ -309,42 +496,334 @@
2023/10/19 | 124991 | support/pdfjam.zip
2023/10/19 | 1177245 | macros/latex/contrib/unbtex/unbtex-example.pdf
2023/10/19 | 11188 | macros/latex/contrib/asmeconf/README.md
+2023/10/18 | 9994 | macros/latex/contrib/isosafety/images/ISO-M031.png
+2023/10/18 | 9990 | macros/latex/contrib/isosafety/images/ISO-W074.png
+2023/10/18 | 9975 | macros/latex/contrib/isosafety/images/ISO-E040.png
+2023/10/18 | 9950 | macros/latex/contrib/isosafety/images/ISO-M023.png
+2023/10/18 | 9948 | macros/latex/contrib/isosafety/images/ISO-W014.png
+2023/10/18 | 9947 | macros/latex/contrib/isosafety/images/ISO-W076.png
+2023/10/18 | 9933 | macros/latex/contrib/isosafety/images/ISO-W018.png
+2023/10/18 | 9903 | macros/latex/contrib/isosafety/images/ISO-W078.png
+2023/10/18 | 9857 | macros/latex/contrib/isosafety/images/ISO-W069.png
+2023/10/18 | 9856 | macros/latex/contrib/isosafety/images/ISO-M008.png
+2023/10/18 | 9854 | macros/latex/contrib/isosafety/images/ISO-W010.png
+2023/10/18 | 9843 | macros/latex/contrib/isosafety/images/ISO-M013.png
+2023/10/18 | 9833 | macros/latex/contrib/isosafety/images/ISO-F006.png
+2023/10/18 | 9811 | macros/latex/contrib/isosafety/images/ISO-W049.png
+2023/10/18 | 9776 | macros/latex/contrib/isosafety/images/ISO-W051.png
+2023/10/18 | 9755 | macros/latex/contrib/isosafety/images/ISO-E041.png
+2023/10/18 | 9684 | macros/latex/contrib/isosafety/images/ISO-M012.png
+2023/10/18 | 9673 | macros/latex/contrib/isosafety/images/ISO-W030.png
+2023/10/18 | 9624 | macros/latex/contrib/isosafety/images/ISO-W057.png
+2023/10/18 | 9584 | macros/latex/contrib/isosafety/images/ISO-M046.png
+2023/10/18 | 9581 | macros/latex/contrib/isosafety/images/ISO-M056.png
+2023/10/18 | 9567 | macros/latex/contrib/isosafety/images/ISO-M059.png
+2023/10/18 | 9513 | macros/latex/contrib/isosafety/images/ISO-M006.png
+2023/10/18 | 9434 | macros/latex/contrib/isosafety/images/ISO-W005.png
+2023/10/18 | 9400 | macros/latex/contrib/isosafety/images/ISO-W045.png
+2023/10/18 | 9326 | macros/latex/contrib/isosafety/images/ISO-E052.png
+2023/10/18 | 9302 | macros/latex/contrib/isosafety/images/ISO-P001.png
+2023/10/18 | 9257 | macros/latex/contrib/isosafety/images/ISO-M024.png
+2023/10/18 | 9214 | macros/latex/contrib/isosafety/images/ISO-F009.png
+2023/10/18 | 9191 | macros/latex/contrib/isosafety/images/ISO-W050.png
+2023/10/18 | 9178 | macros/latex/contrib/isosafety/images/ISO-W015.png
+2023/10/18 | 9157 | macros/latex/contrib/isosafety/images/ISO-W077.png
+2023/10/18 | 9152 | macros/latex/contrib/isosafety/images/ISO-W035.png
+2023/10/18 | 9146 | macros/latex/contrib/isosafety/images/ISO-W028.png
+2023/10/18 | 9110 | macros/latex/contrib/isosafety/images/ISO-M058.png
+2023/10/18 | 9107 | macros/latex/contrib/isosafety/images/ISO-M022.png
+2023/10/18 | 9100 | macros/latex/contrib/isosafety/images/ISO-W019.png
+2023/10/18 | 9090 | macros/latex/contrib/isosafety/images/ISO-W033.png
+2023/10/18 | 9071 | macros/latex/contrib/isosafety/images/ISO-W039.png
+2023/10/18 | 9069 | macros/latex/contrib/isosafety/images/ISO-E035.png
+2023/10/18 | 9054 | macros/latex/contrib/isosafety/images/ISO-W053.png
+2023/10/18 | 9013 | macros/latex/contrib/isosafety/images/ISO-W034.png
+2023/10/18 | 8981 | macros/latex/contrib/isosafety/images/ISO-M051.png
+2023/10/18 | 8973 | macros/latex/contrib/isosafety/images/ISO-M050.png
+2023/10/18 | 8966 | macros/latex/contrib/isosafety/images/ISO-W020.png
+2023/10/18 | 8958 | macros/latex/contrib/isosafety/images/ISO-M029.png
+2023/10/18 | 8957 | macros/latex/contrib/isosafety/images/ISO-M036.png
+2023/10/18 | 8956 | macros/latex/contrib/isosafety/images/ISO-W055.png
+2023/10/18 | 8913 | macros/latex/contrib/isosafety/images/ISO-W048.png
+2023/10/18 | 8882 | macros/latex/contrib/isosafety/images/ISO-E028.png
+2023/10/18 | 8870 | macros/latex/contrib/isosafety/images/ISO-W006.png
+2023/10/18 | 8860 | macros/latex/contrib/isosafety/images/ISO-W060.png
+2023/10/18 | 8845 | macros/latex/contrib/isosafety/images/ISO-W080.png
+2023/10/18 | 8845 | macros/latex/contrib/isosafety/images/ISO-W013.png
+2023/10/18 | 8842 | macros/latex/contrib/isosafety/images/ISO-E017.png
+2023/10/18 | 8817 | macros/latex/contrib/isosafety/images/ISO-W070.png
+2023/10/18 | 8804 | macros/latex/contrib/isosafety/images/ISO-W008.png
+2023/10/18 | 8797 | macros/latex/contrib/isosafety/images/ISO-W026.png
+2023/10/18 | 8751 | macros/latex/contrib/isosafety/images/ISO-W054.png
+2023/10/18 | 8670 | macros/latex/contrib/isosafety/images/ISO-E037.png
2023/10/18 | 8657 | support/TeX4ht/source/mktex4ht-cnf.tex
-2023/10/18 | 7838 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
+2023/10/18 | 8657 | macros/latex/contrib/isosafety/images/ISO-W007.png
+2023/10/18 | 8629 | macros/latex/contrib/isosafety/images/ISO-W052.png
+2023/10/18 | 8623 | macros/latex/contrib/isosafety/images/ISO-W047.png
+2023/10/18 | 8598 | macros/latex/contrib/isosafety/images/ISO-M010.png
+2023/10/18 | 8584 | macros/latex/contrib/isosafety/images/ISO-W021.png
+2023/10/18 | 8540 | macros/latex/contrib/isosafety/images/ISO-F017.png
+2023/10/18 | 8508 | macros/latex/contrib/isosafety/images/ISO-M014.png
+2023/10/18 | 8470 | macros/latex/contrib/isosafety/images/ISO-W011.png
+2023/10/18 | 8463 | macros/latex/contrib/isosafety/images/ISO-F003.png
+2023/10/18 | 8404 | macros/latex/contrib/isosafety/images/ISO-F015.png
+2023/10/18 | 8373 | macros/latex/contrib/isosafety/images/ISO-F004.png
+2023/10/18 | 8371 | macros/latex/contrib/isosafety/images/ISO-W017.png
+2023/10/18 | 8349 | macros/latex/contrib/isosafety/images/ISO-P054.png
+2023/10/18 | 8335 | macros/latex/contrib/isosafety/images/ISO-E039.png
+2023/10/18 | 8242 | macros/latex/contrib/isosafety/images/ISO-W012.png
+2023/10/18 | 8182 | macros/latex/contrib/isosafety/images/ISO-M019.png
+2023/10/18 | 8165 | macros/latex/contrib/isosafety/images/ISO-F002.png
+2023/10/18 | 8108 | macros/latex/contrib/isosafety/images/ISO-F013.png
+2023/10/18 | 8082 | macros/latex/contrib/isosafety/images/ISO-M020.png
+2023/10/18 | 8030 | macros/latex/contrib/isosafety/images/ISO-W061.png
+2023/10/18 | 7999 | macros/latex/contrib/isosafety/images/ISO-E069.png
+2023/10/18 | 7944 | macros/latex/contrib/isosafety/images/ISO-E060.png
+2023/10/18 | 7943 | macros/latex/contrib/isosafety/images/ISO-F007.png
+2023/10/18 | 7939 | macros/latex/contrib/isosafety/images/ISO-M021.png
+2023/10/18 | 7923 | macros/latex/contrib/isosafety/images/ISO-W003.png
+2023/10/18 | 7906 | macros/latex/contrib/isosafety/images/ISO-W059.png
+2023/10/18 | 7900 | macros/latex/contrib/isosafety/images/ISO-F005.png
+2023/10/18 | 7860 | macros/latex/contrib/isosafety/images/ISO-P064.png
+2023/10/18 | 7838 | macros/latex/contrib/isosafety/images/ISO-W022.png
+2023/10/18 | 7807 | macros/latex/contrib/isosafety/images/ISO-F018.png
+2023/10/18 | 7743 | macros/latex/contrib/isosafety/images/ISO-M057.png
+2023/10/18 | 7686 | macros/latex/contrib/isosafety/images/ISO-M015.png
+2023/10/18 | 7576 | macros/latex/contrib/isosafety/images/ISO-E027.png
+2023/10/18 | 7426 | macros/latex/contrib/isosafety/images/ISO-F010.png
+2023/10/18 | 7389 | macros/latex/contrib/isosafety/images/ISO-E055.png
+2023/10/18 | 7331 | macros/latex/contrib/isosafety/images/ISO-W064.png
2023/10/18 | 73061 | macros/latex/contrib/recorder-fingering/recorder-fingering-RecorderInCchart.png
+2023/10/18 | 7301 | macros/latex/contrib/isosafety/images/ISO-E049.png
+2023/10/18 | 7264 | macros/latex/contrib/isosafety/images/ISO-F012.png
+2023/10/18 | 7261 | macros/latex/contrib/isosafety/images/ISO-F001.png
+2023/10/18 | 7195 | macros/latex/contrib/isosafety/images/ISO-W024.png
+2023/10/18 | 7168 | macros/latex/contrib/isosafety/images/ISO-E024.png
+2023/10/18 | 7150 | macros/latex/contrib/isosafety/images/ISO-E067.png
+2023/10/18 | 7122 | macros/latex/contrib/isosafety/images/ISO-E014.png
+2023/10/18 | 7116 | macros/latex/contrib/isosafety/images/ISO-W001.png
+2023/10/18 | 6936 | macros/latex/contrib/isosafety/images/ISO-W056.png
2023/10/18 | 682884 | systems/texlive/tlnet/archive/titlesec.doc.r68573.tar.xz
+2023/10/18 | 6795 | macros/latex/contrib/isosafety/images/ISO-F008.png
+2023/10/18 | 6784 | macros/latex/contrib/isosafety/images/ISO-F014.png
+2023/10/18 | 6728 | macros/latex/contrib/isosafety/images/ISO-M001.png
+2023/10/18 | 6594 | macros/latex/contrib/isosafety/images/ISO-E048.png
+2023/10/18 | 6562 | macros/latex/contrib/isosafety/images/ISO-E050.png
+2023/10/18 | 6551 | macros/latex/contrib/isosafety/images/ISO-E015.png
+2023/10/18 | 6516 | macros/latex/contrib/isosafety/images/ISO-E065.png
2023/10/18 | 643 | macros/latex/contrib/recorder-fingering/recorder-fingering.bib
+2023/10/18 | 6426 | macros/latex/contrib/isosafety/images/ISO-E020.png
+2023/10/18 | 6364 | macros/latex/contrib/isosafety/images/ISO-E021.png
+2023/10/18 | 6264 | macros/latex/contrib/isosafety/images/ISO-E047.png
+2023/10/18 | 5908 | macros/latex/contrib/isosafety/images/ISO-E045.png
+2023/10/18 | 5739 | macros/latex/contrib/isosafety/images/ISO-E030.png
+2023/10/18 | 5712 | macros/latex/contrib/isosafety/images/ISO-E026.png
2023/10/18 | 56951 | macros/texinfo/latest/texi2dvi
-2023/10/18 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
+2023/10/18 | 5683 | macros/latex/contrib/isosafety/images/ISO-E062.png
+2023/10/18 | 5557 | macros/latex/contrib/isosafety/images/ISO-E046.png
+2023/10/18 | 5276 | macros/latex/contrib/isosafety/images/ISO-M005.png
+2023/10/18 | 5160 | macros/latex/contrib/isosafety/images/ISO-E018.png
+2023/10/18 | 5088 | macros/latex/contrib/isosafety/images/ISO-E016.png
+2023/10/18 | 5060 | macros/latex/contrib/isosafety/images/ISO-E019.png
2023/10/18 | 505320 | graphics/pgf/contrib/outilsgeomtikz.zip
2023/10/18 | 501125 | graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.pdf
+2023/10/18 | 4997 | macros/latex/contrib/isosafety/images/ISO-E063.png
+2023/10/18 | 4914 | macros/latex/contrib/isosafety/images/ISO-E064.png
+2023/10/18 | 4809 | macros/latex/contrib/isosafety/images/ISO-E056.png
+2023/10/18 | 4710 | macros/latex/contrib/isosafety/images/ISO-E053.png
2023/10/18 | 458 | macros/latex/contrib/recorder-fingering/README.md
+2023/10/18 | 4397 | macros/latex/contrib/isosafety/images/ISO-E058.png
+2023/10/18 | 4117 | macros/latex/contrib/isosafety/images/ISO-E070.png
+2023/10/18 | 4116 | macros/latex/contrib/isosafety/images/ISO-E044.png
+2023/10/18 | 4024 | macros/latex/contrib/isosafety/images/ISO-E057.png
2023/10/18 | 38283 | graphics/pgf/contrib/outilsgeomtikz/doc/OutilsGeomTikz-doc.tex
2023/10/18 | 35798 | graphics/pgf/contrib/outilsgeomtikz/tex/OutilsGeomTikz.sty
-2023/10/18 | 320887 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+2023/10/18 | 3466 | macros/latex/contrib/isosafety/images/ISO-E022.png
+2023/10/18 | 3147 | macros/latex/contrib/isosafety/images/ISO-E023.png
+2023/10/18 | 3030 | macros/latex/contrib/isosafety/images/ISO-E013.png
2023/10/18 | 28053 | macros/latex/contrib/recorder-fingering/recorder-fingering.sty
+2023/10/18 | 2136 | macros/latex/contrib/isosafety/images/ISO-E031.png
+2023/10/18 | 2071 | macros/latex/contrib/isosafety/images/ISO-E034.png
+2023/10/18 | 2049 | macros/latex/contrib/isosafety/images/ISO-E033.png
2023/10/18 | 20044 | systems/texlive/tlnet/archive/titlesec.r68573.tar.xz
+2023/10/18 | 18725 | macros/latex/contrib/isosafety/images/ISO-P070.png
+2023/10/18 | 18336 | macros/latex/contrib/isosafety/images/ISO-P040.png
2023/10/18 | 18264 | macros/latex/contrib/recorder-fingering/recorder-fingering.tex
-2023/10/18 | 1320885 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+2023/10/18 | 17217 | macros/latex/contrib/isosafety/images/ISO-P038.png
+2023/10/18 | 17046 | macros/latex/contrib/isosafety/images/ISO-P039.png
+2023/10/18 | 16455 | macros/latex/contrib/isosafety/images/ISO-W002.png
+2023/10/18 | 15893 | macros/latex/contrib/isosafety/images/ISO-P034.png
+2023/10/18 | 1556 | macros/latex/contrib/isosafety/images/ISO-E059.png
+2023/10/18 | 15559 | macros/latex/contrib/isosafety/images/ISO-M045.png
+2023/10/18 | 15523 | macros/latex/contrib/isosafety/images/ISO-W041.png
+2023/10/18 | 15510 | macros/latex/contrib/isosafety/images/ISO-P047.png
+2023/10/18 | 15353 | macros/latex/contrib/isosafety/images/ISO-P003.png
+2023/10/18 | 15315 | macros/latex/contrib/isosafety/images/ISO-E025.png
+2023/10/18 | 15308 | macros/latex/contrib/isosafety/images/ISO-P035.png
+2023/10/18 | 15209 | macros/latex/contrib/isosafety/images/ISO-P059.png
+2023/10/18 | 15172 | macros/latex/contrib/isosafety/images/ISO-P065.png
+2023/10/18 | 15125 | macros/latex/contrib/isosafety/images/ISO-M048.png
+2023/10/18 | 15087 | macros/latex/contrib/isosafety/images/ISO-P028.png
+2023/10/18 | 14908 | macros/latex/contrib/isosafety/images/ISO-P002.png
+2023/10/18 | 14862 | macros/latex/contrib/isosafety/images/ISO-P013.png
+2023/10/18 | 14683 | macros/latex/contrib/isosafety/images/ISO-P033.png
+2023/10/18 | 14599 | macros/latex/contrib/isosafety/images/ISO-P011.png
+2023/10/18 | 14512 | macros/latex/contrib/isosafety/images/ISO-P014.png
+2023/10/18 | 14367 | macros/latex/contrib/isosafety/images/ISO-P043.png
+2023/10/18 | 14344 | macros/latex/contrib/isosafety/images/ISO-W036.png
+2023/10/18 | 14272 | macros/latex/contrib/isosafety/images/ISO-P026.png
+2023/10/18 | 14234 | macros/latex/contrib/isosafety/images/ISO-P062.png
+2023/10/18 | 14195 | macros/latex/contrib/isosafety/images/ISO-P032.png
+2023/10/18 | 14145 | macros/latex/contrib/isosafety/images/ISO-P055.png
+2023/10/18 | 14127 | macros/latex/contrib/isosafety/images/ISO-F019.png
+2023/10/18 | 14074 | macros/latex/contrib/isosafety/images/ISO-P044.png
+2023/10/18 | 13899 | macros/latex/contrib/isosafety/images/ISO-P016.png
+2023/10/18 | 13851 | macros/latex/contrib/isosafety/images/ISO-M004.png
+2023/10/18 | 13835 | macros/latex/contrib/isosafety/images/ISO-P008.png
+2023/10/18 | 13698 | macros/latex/contrib/isosafety/images/ISO-P066.png
+2023/10/18 | 13665 | macros/latex/contrib/isosafety/images/ISO-M017.png
+2023/10/18 | 13656 | macros/latex/contrib/isosafety/images/ISO-P056.png
+2023/10/18 | 13523 | macros/latex/contrib/isosafety/images/ISO-P074.png
+2023/10/18 | 13492 | macros/latex/contrib/isosafety/images/ISO-P015.png
+2023/10/18 | 13487 | macros/latex/contrib/isosafety/images/ISO-P006.png
+2023/10/18 | 13468 | macros/latex/contrib/isosafety/images/ISO-P020.png
+2023/10/18 | 13413 | macros/latex/contrib/isosafety/images/ISO-P049.png
+2023/10/18 | 13347 | macros/latex/contrib/isosafety/images/ISO-W029.png
+2023/10/18 | 13338 | macros/latex/contrib/isosafety/images/ISO-P037.png
+2023/10/18 | 13258 | macros/latex/contrib/isosafety/images/ISO-P063.png
+2023/10/18 | 13204 | macros/latex/contrib/isosafety/images/ISO-P036.png
+2023/10/18 | 13166 | macros/latex/contrib/isosafety/images/ISO-M035.png
+2023/10/18 | 13124 | macros/latex/contrib/isosafety/images/ISO-M038.png
+2023/10/18 | 13020 | macros/latex/contrib/isosafety/images/ISO-P053.png
+2023/10/18 | 12950 | macros/latex/contrib/isosafety/images/ISO-P068.png
+2023/10/18 | 12950 | macros/latex/contrib/isosafety/images/ISO-P061.png
+2023/10/18 | 12950 | macros/latex/contrib/isosafety/images/ISO-M052.png
+2023/10/18 | 12929 | macros/latex/contrib/isosafety/images/ISO-P019.png
+2023/10/18 | 12908 | macros/latex/contrib/isosafety/images/ISO-M043.png
+2023/10/18 | 12871 | macros/latex/contrib/isosafety/images/ISO-P048.png
+2023/10/18 | 12831 | macros/latex/contrib/isosafety/images/ISO-P029.png
+2023/10/18 | 12826 | macros/latex/contrib/isosafety/images/ISO-P045.png
+2023/10/18 | 12767 | macros/latex/contrib/isosafety/images/ISO-W065.png
+2023/10/18 | 12733 | macros/latex/contrib/isosafety/images/ISO-W062.png
+2023/10/18 | 12715 | macros/latex/contrib/isosafety/images/ISO-P058.png
+2023/10/18 | 12702 | macros/latex/contrib/isosafety/images/ISO-P052.png
+2023/10/18 | 12645 | macros/latex/contrib/isosafety/images/ISO-W016.png
+2023/10/18 | 12564 | macros/latex/contrib/isosafety/images/ISO-P057.png
+2023/10/18 | 12488 | macros/latex/contrib/isosafety/images/ISO-P004.png
+2023/10/18 | 12398 | macros/latex/contrib/isosafety/images/ISO-E061.png
+2023/10/18 | 12393 | macros/latex/contrib/isosafety/images/ISO-E054.png
+2023/10/18 | 12392 | macros/latex/contrib/isosafety/images/ISO-M037.png
+2023/10/18 | 12331 | macros/latex/contrib/isosafety/images/ISO-P009.png
+2023/10/18 | 12303 | macros/latex/contrib/isosafety/images/ISO-P051.png
+2023/10/18 | 12296 | macros/latex/contrib/isosafety/images/ISO-P025.png
+2023/10/18 | 12264 | macros/latex/contrib/isosafety/images/ISO-P031.png
+2023/10/18 | 12228 | macros/latex/contrib/isosafety/images/ISO-M047.png
+2023/10/18 | 12219 | macros/latex/contrib/isosafety/images/ISO-W040.png
+2023/10/18 | 12192 | macros/latex/contrib/isosafety/images/ISO-P005.png
+2023/10/18 | 12184 | macros/latex/contrib/isosafety/images/ISO-M060.png
+2023/10/18 | 12159 | macros/latex/contrib/isosafety/images/ISO-P010.png
+2023/10/18 | 12144 | macros/latex/contrib/isosafety/images/ISO-M027.png
+2023/10/18 | 12116 | macros/latex/contrib/isosafety/images/ISO-P007.png
2023/10/18 | 12098 | macros/latex/contrib/proflycee/tex/proflycee-tools-recreat.tex
+2023/10/18 | 12047 | macros/latex/contrib/isosafety/images/ISO-P073.png
+2023/10/18 | 11908 | macros/latex/contrib/isosafety/images/ISO-P050.png
+2023/10/18 | 11906 | macros/latex/contrib/isosafety/images/ISO-P024.png
+2023/10/18 | 11843 | macros/latex/contrib/isosafety/images/ISO-P017.png
+2023/10/18 | 11814 | macros/latex/contrib/isosafety/images/ISO-W004.png
+2023/10/18 | 11786 | macros/latex/contrib/isosafety/images/ISO-M049.png
+2023/10/18 | 11779 | macros/latex/contrib/isosafety/images/ISO-P046.png
+2023/10/18 | 11770 | macros/latex/contrib/isosafety/images/ISO-M025.png
+2023/10/18 | 11704 | macros/latex/contrib/isosafety/images/ISO-M032.png
2023/10/18 | 1163 | macros/texinfo/latest/texi2pdf
+2023/10/18 | 11569 | macros/latex/contrib/isosafety/images/ISO-P071.png
+2023/10/18 | 11543 | macros/latex/contrib/isosafety/images/ISO-W046.png
+2023/10/18 | 11512 | macros/latex/contrib/isosafety/images/ISO-P030.png
+2023/10/18 | 11502 | macros/latex/contrib/isosafety/images/ISO-M040.png
+2023/10/18 | 11478 | macros/latex/contrib/isosafety/images/ISO-M007.png
+2023/10/18 | 11449 | macros/latex/contrib/isosafety/images/ISO-P021.png
+2023/10/18 | 11429 | macros/latex/contrib/isosafety/images/ISO-M002.png
+2023/10/18 | 11414 | macros/latex/contrib/isosafety/images/ISO-W042.png
+2023/10/18 | 11354 | macros/latex/contrib/isosafety/images/ISO-P018.png
+2023/10/18 | 11335 | macros/latex/contrib/isosafety/images/ISO-P072.png
+2023/10/18 | 11319 | macros/latex/contrib/isosafety/images/ISO-M053.png
+2023/10/18 | 11283 | macros/latex/contrib/isosafety/images/ISO-F016.png
+2023/10/18 | 11260 | macros/latex/contrib/isosafety/images/ISO-W066.png
+2023/10/18 | 11260 | macros/latex/contrib/isosafety/images/ISO-W009.png
+2023/10/18 | 11255 | macros/latex/contrib/isosafety/images/ISO-E032.png
+2023/10/18 | 11238 | macros/latex/contrib/isosafety/images/ISO-P067.png
+2023/10/18 | 11141 | macros/latex/contrib/isosafety/images/ISO-M011.png
+2023/10/18 | 11132 | macros/latex/contrib/isosafety/images/ISO-W058.png
+2023/10/18 | 11120 | macros/latex/contrib/isosafety/images/ISO-E051.png
+2023/10/18 | 11115 | macros/latex/contrib/isosafety/images/ISO-F011.png
+2023/10/18 | 11114 | macros/latex/contrib/isosafety/images/ISO-W072.png
+2023/10/18 | 11108 | macros/latex/contrib/isosafety/images/ISO-W032.png
+2023/10/18 | 11077 | macros/latex/contrib/isosafety/images/ISO-M018.png
+2023/10/18 | 11043 | macros/latex/contrib/isosafety/images/ISO-W073.png
+2023/10/18 | 11022 | macros/latex/contrib/isosafety/images/ISO-W031.png
+2023/10/18 | 11003 | macros/latex/contrib/isosafety/images/ISO-M026.png
+2023/10/18 | 10985 | macros/latex/contrib/isosafety/images/ISO-M003.png
+2023/10/18 | 10965 | macros/latex/contrib/isosafety/images/ISO-P022.png
+2023/10/18 | 10960 | macros/latex/contrib/isosafety/images/ISO-E043.png
+2023/10/18 | 10930 | macros/latex/contrib/isosafety/images/ISO-W063.png
+2023/10/18 | 10930 | macros/latex/contrib/isosafety/images/ISO-P027.png
+2023/10/18 | 10912 | macros/latex/contrib/isosafety/images/ISO-P012.png
+2023/10/18 | 10911 | macros/latex/contrib/isosafety/images/ISO-M044.png
+2023/10/18 | 10883 | macros/latex/contrib/isosafety/images/ISO-E038.png
+2023/10/18 | 10874 | macros/latex/contrib/isosafety/images/ISO-W044.png
+2023/10/18 | 10852 | macros/latex/contrib/isosafety/images/ISO-P041.png
+2023/10/18 | 10850 | macros/latex/contrib/isosafety/images/ISO-W079.png
+2023/10/18 | 10834 | macros/latex/contrib/isosafety/images/ISO-P069.png
+2023/10/18 | 10833 | macros/latex/contrib/isosafety/images/ISO-M039.png
2023/10/18 | 108198 | macros/latex/contrib/recorder-fingering/recorder-fingering.pdf
+2023/10/18 | 10789 | macros/latex/contrib/isosafety/images/ISO-W075.png
+2023/10/18 | 10787 | macros/latex/contrib/isosafety/images/ISO-M041.png
+2023/10/18 | 10755 | macros/latex/contrib/isosafety/images/ISO-M009.png
+2023/10/18 | 10691 | macros/latex/contrib/isosafety/images/ISO-P023.png
+2023/10/18 | 10610 | macros/latex/contrib/isosafety/images/ISO-W037.png
+2023/10/18 | 10608 | macros/latex/contrib/isosafety/images/ISO-M055.png
+2023/10/18 | 10603 | macros/latex/contrib/isosafety/images/ISO-E068.png
+2023/10/18 | 10602 | macros/latex/contrib/isosafety/images/ISO-W068.png
+2023/10/18 | 10554 | macros/latex/contrib/isosafety/images/ISO-W071.png
+2023/10/18 | 10550 | macros/latex/contrib/isosafety/images/ISO-M028.png
+2023/10/18 | 10503 | macros/latex/contrib/isosafety/images/ISO-M030.png
+2023/10/18 | 10475 | macros/latex/contrib/isosafety/images/ISO-W067.png
+2023/10/18 | 10465 | macros/latex/contrib/isosafety/images/ISO-M034.png
+2023/10/18 | 10459 | macros/latex/contrib/isosafety/images/ISO-M054.png
+2023/10/18 | 10377 | macros/latex/contrib/isosafety/images/ISO-P042.png
+2023/10/18 | 10344 | macros/latex/contrib/isosafety/images/ISO-W043.png
+2023/10/18 | 10323 | macros/latex/contrib/isosafety/images/ISO-W038.png
+2023/10/18 | 10311 | macros/latex/contrib/isosafety/images/ISO-W025.png
+2023/10/18 | 10287 | macros/latex/contrib/isosafety/images/ISO-W023.png
+2023/10/18 | 10228 | macros/latex/contrib/isosafety/images/ISO-M016.png
+2023/10/18 | 10194 | macros/latex/contrib/isosafety/images/ISO-M033.png
+2023/10/18 | 10159 | macros/latex/contrib/isosafety/images/ISO-E036.png
+2023/10/18 | 10121 | macros/latex/contrib/isosafety/images/ISO-P060.png
+2023/10/18 | 10068 | macros/latex/contrib/isosafety/images/ISO-E029.png
+2023/10/18 | 10049 | macros/latex/contrib/isosafety/images/ISO-E042.png
+2023/10/18 | 10047 | macros/latex/contrib/isosafety/images/ISO-W027.png
+2023/10/18 | 10025 | macros/latex/contrib/isosafety/images/ISO-M042.png
+2023/10/17 | 9927 | macros/latex/contrib/isosafety/images/ISO-E008.png
2023/10/17 | 91048 | systems/texlive/tlnet/archive/stex.r68569.tar.xz
2023/10/17 | 900204 | systems/texlive/tlnet/archive/yet-another-guide-latex2e.doc.r68564.tar.xz
2023/10/17 | 87316 | systems/texlive/tlnet/archive/hvlogos.doc.r68568.tar.xz
-2023/10/17 | 76136 | systems/texlive/tlnet/archive/crefthe.doc.r68565.tar.xz
2023/10/17 | 74452 | macros/latex/contrib/titlesec/titlesec.tex
+2023/10/17 | 7190 | macros/latex/contrib/isosafety/images/ISO-E009.png
2023/10/17 | 711340 | macros/latex/contrib/titlesec.zip
+2023/10/17 | 6549 | macros/latex/contrib/isosafety/images/ISO-E012.png
2023/10/17 | 6361456 | systems/texlive/tlnet/archive/stex.doc.r68569.tar.xz
+2023/10/17 | 6206 | macros/latex/contrib/isosafety/images/ISO-E007.png
+2023/10/17 | 6042 | macros/latex/contrib/isosafety/images/ISO-E001.png
+2023/10/17 | 5945 | macros/latex/contrib/isosafety/images/ISO-E002.png
2023/10/17 | 572 | systems/texlive/tlnet/archive/yet-another-guide-latex2e.r68564.tar.xz
+2023/10/17 | 5675 | macros/latex/contrib/isosafety/images/ISO-E004.png
2023/10/17 | 5652784 | systems/texlive/tlnet/archive/newcomputermodern.r68563.tar.xz
2023/10/17 | 549231 | macros/latex/contrib/hecthese/hecthese-en.pdf
+2023/10/17 | 5418 | macros/latex/contrib/isosafety/images/ISO-E010.png
2023/10/17 | 535488 | macros/latex/contrib/hecthese/hecthese.pdf
2023/10/17 | 523399 | macros/latex/contrib/titlesec/titlesec.pdf
2023/10/17 | 50020 | systems/texlive/tlnet/archive/stex.source.r68569.tar.xz
2023/10/17 | 48997 | macros/latex/contrib/titlesec/titlesec.sty
2023/10/17 | 4544 | macros/latex/contrib/hecthese/README.md
-2023/10/17 | 4392 | systems/texlive/tlnet/archive/crefthe.r68565.tar.xz
2023/10/17 | 4132 | macros/latex/contrib/hecthese/hecthese-fr.ins
2023/10/17 | 3975 | macros/latex/contrib/hecthese/hecthese-en.ins
2023/10/17 | 31466 | macros/latex/contrib/titlesec/titleps.tex
@@ -356,143 +835,8 @@
2023/10/17 | 143282 | macros/latex/contrib/titlesec/titleps.pdf
2023/10/17 | 14220820 | systems/texlive/tlnet/archive/newcomputermodern.doc.r68563.tar.xz
2023/10/17 | 13413 | macros/latex/contrib/titlesec/CHANGES.old
+2023/10/17 | 1192 | macros/latex/contrib/isosafety/images/ISO-E003.png
2023/10/17 | 11692 | systems/texlive/tlnet/archive/csvsimple.r68566.tar.xz
2023/10/17 | 1090979 | macros/latex/contrib/hecthese.zip
2023/10/17 | 108218 | macros/latex/contrib/hecthese/hecthese.dtx
-2023/10/16 | 98058 | macros/latex/contrib/hvfloat/doc/examples/capPos.pdf
-2023/10/16 | 94532 | macros/latex/contrib/hvfloat/doc/examples/multi-default1s2c.pdf
-2023/10/16 | 933300 | macros/latex/contrib/csvsimple/csvsimple-l3.pdf
-2023/10/16 | 92902 | macros/latex/contrib/hvfloat/doc/examples/multi-outer2s2c.pdf
-2023/10/16 | 92138 | macros/latex/contrib/hvfloat/doc/examples/multi-default2s2c.pdf
-2023/10/16 | 90470 | macros/latex/contrib/hvfloat/doc/examples/paper-default1s2c.pdf
-2023/10/16 | 90288 | macros/latex/contrib/hvfloat/doc/examples/paper-default2s2c.pdf
-2023/10/16 | 902397 | info/yet-another-guide-latex2e.zip
-2023/10/16 | 89696 | macros/latex/contrib/hvfloat/doc/examples/multi-inner2s2c.pdf
-2023/10/16 | 89655 | macros/latex/contrib/hvfloat/doc/examples/paper-after2s2c.pdf
-2023/10/16 | 89616 | macros/latex/contrib/hvlogos.zip
-2023/10/16 | 89250 | macros/latex/contrib/hvfloat/doc/examples/right1s2c.pdf
-2023/10/16 | 87924 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/10/16 | 87867 | macros/latex/contrib/hvfloat/doc/examples/paper-default2s1c.pdf
-2023/10/16 | 87843 | macros/latex/contrib/hvfloat/doc/examples/paper-inner2s2c.pdf
-2023/10/16 | 8753713 | macros/latex/contrib/stex.zip
-2023/10/16 | 87273 | macros/latex/contrib/hvfloat/doc/examples/paper-even2s1c.pdf
-2023/10/16 | 87055 | macros/latex/contrib/hvfloat/doc/examples/paper-odd2s1c.pdf
-2023/10/16 | 87052 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf
-2023/10/16 | 86613 | macros/latex/contrib/hvfloat/doc/examples/after2s2c.pdf
-2023/10/16 | 86529 | macros/latex/contrib/hvfloat/doc/examples/odd1s2c.pdf
-2023/10/16 | 86361 | macros/latex/contrib/hvfloat/doc/examples/even1s2c.pdf
-2023/10/16 | 86353 | macros/latex/contrib/hvfloat/doc/examples/outer1s2c.pdf
-2023/10/16 | 85950 | macros/latex/contrib/hvfloat/doc/examples/fullpage1s1c.pdf
-2023/10/16 | 85763 | macros/latex/contrib/hvfloat/doc/examples/default2s2c.pdf
-2023/10/16 | 85527 | macros/latex/contrib/hvfloat/doc/examples/odd2s2c.pdf
-2023/10/16 | 85508 | macros/latex/contrib/hvfloat/doc/examples/right2s2c.pdf
-2023/10/16 | 85470 | macros/latex/contrib/hvfloat/doc/examples/left2s2c.pdf
-2023/10/16 | 85033 | macros/latex/contrib/hvfloat/doc/examples/even2s2c.pdf
-2023/10/16 | 84979 | macros/latex/contrib/hvfloat/doc/examples/fullpage1s2c.pdf
-2023/10/16 | 84725 | macros/latex/contrib/hvfloat/doc/examples/outer2s2c.pdf
-2023/10/16 | 84419 | macros/latex/contrib/hvfloat/doc/examples/even2s1c.pdf
-2023/10/16 | 84291 | macros/latex/contrib/hvfloat/doc/examples/outer2s1c.pdf
-2023/10/16 | 84071 | macros/latex/contrib/hvfloat/doc/examples/inner2s2c.pdf
-2023/10/16 | 84016 | macros/latex/contrib/hvfloat/doc/examples/inner1s2c.pdf
-2023/10/16 | 83984 | macros/latex/contrib/hvfloat/doc/examples/inner2s1c.pdf
-2023/10/16 | 83201 | macros/latex/contrib/hvfloat/doc/examples/default1s2c.pdf
-2023/10/16 | 81968 | macros/latex/contrib/hvfloat/doc/examples/default1s1c.pdf
-2023/10/16 | 81469 | macros/latex/contrib/hvfloat/doc/examples/paper-right1s1c.pdf
-2023/10/16 | 81199 | macros/latex/contrib/hvfloat/doc/examples/paper-default1s1c.pdf
-2023/10/16 | 8101306 | macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.pdf
-2023/10/16 | 80969 | macros/latex/contrib/hvfloat/doc/examples/right2s1c.pdf
-2023/10/16 | 8090747 | macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.pdf
-2023/10/16 | 80278 | macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf
-2023/10/16 | 80095 | macros/latex/contrib/hvfloat/doc/examples/right1s1c.pdf
-2023/10/16 | 7957 | macros/latex/contrib/csvsimple/csvsimple.tex
-2023/10/16 | 79342 | macros/latex/contrib/hvfloat/doc/examples/default2s1c.pdf
-2023/10/16 | 79014 | macros/latex/contrib/hvfloat/doc/examples/paper-after1s1c.pdf
-2023/10/16 | 77785 | macros/latex/contrib/hvfloat/doc/examples/even1s1c.pdf
-2023/10/16 | 7776 | systems/texlive/tlnet/archive/abntexto.r68554.tar.xz
-2023/10/16 | 77734 | macros/latex/contrib/hvfloat/doc/examples/odd1s1c.pdf
-2023/10/16 | 7552 | macros/latex/contrib/hvlogos/latex/hvlogos.sty
-2023/10/16 | 7436 | systems/texlive/tlnet/archive/minimalist.doc.r68552.tar.xz
-2023/10/16 | 72044 | macros/latex/contrib/csvsimple/csvsimple-example.pdf
-2023/10/16 | 71383 | macros/latex/contrib/csvsimple/csvsimple-legacy.tex
-2023/10/16 | 690985 | macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
-2023/10/16 | 65838 | macros/latex/contrib/hvfloat/latex/hvfloat.sty
-2023/10/16 | 6384414 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf
-2023/10/16 | 629 | macros/latex/contrib/hvlogos/Changes
-2023/10/16 | 62364 | systems/texlive/tlnet/archive/acmart.source.r68550.tar.xz
-2023/10/16 | 617745 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.pdf
-2023/10/16 | 563812 | systems/texlive/tlnet/archive/lastpage.doc.r68557.tar.xz
-2023/10/16 | 562304 | systems/texlive/tlnet/archive/indextools.doc.r68555.tar.xz
-2023/10/16 | 5367 | macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex
-2023/10/16 | 5087 | macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
-2023/10/16 | 5030 | macros/latex/contrib/hvfloat/Changes
-2023/10/16 | 5002 | macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
-2023/10/16 | 4940119 | macros/latex/contrib/stex/doc/stex-doc.pdf
-2023/10/16 | 4855488 | systems/texlive/tlnet/archive/acmart.doc.r68550.tar.xz
-2023/10/16 | 46400 | macros/latex/contrib/csvsimple/csvsimple-l3.sty
-2023/10/16 | 4576 | systems/texlive/tlnet/archive/indextools.r68555.tar.xz
-2023/10/16 | 4484 | systems/texlive/tlnet/archive/lastpage.r68557.tar.xz
-2023/10/16 | 44624 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.tex
-2023/10/16 | 44227 | macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.tex
-2023/10/16 | 44194 | macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.tex
-2023/10/16 | 43084 | systems/texlive/tlnet/archive/acmart.r68550.tar.xz
-2023/10/16 | 4237 | macros/latex/contrib/csvsimple/csvsimple-doc.sty
-2023/10/16 | 419404 | support/TeX4ht/source/tex4ht-c.tex
-2023/10/16 | 41416 | systems/texlive/tlnet/archive/projlib.doc.r68553.tar.xz
-2023/10/16 | 4020 | macros/latex/contrib/csvsimple/csvsimple-example.tex
-2023/10/16 | 37342 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.tex
-2023/10/16 | 3588 | systems/texlive/tlnet/archive/homework.r68551.tar.xz
-2023/10/16 | 351488 | systems/texlive/tlnet/archive/homework.doc.r68551.tar.xz
-2023/10/16 | 34972 | fonts/newcomputermodern/doc/newcm-doc.tex
-2023/10/16 | 340 | fonts/newcomputermodern/tex/newcomputermodern.sty
-2023/10/16 | 338571 | support/TeX4ht/source/tex4ht-ooffice.tex
-2023/10/16 | 33461308 | macros/latex/contrib/hvfloat.zip
-2023/10/16 | 295804 | macros/latex/contrib/csvsimple/csvsimple.pdf
-2023/10/16 | 2908 | macros/latex/contrib/csvsimple/README.md
-2023/10/16 | 288 | macros/latex/contrib/csvsimple/gradesort.xml
-2023/10/16 | 2820 | systems/texlive/tlnet/archive/jourrr.r68556.tar.xz
-2023/10/16 | 26596 | systems/texlive/tlnet/archive/projlib.source.r68553.tar.xz
-2023/10/16 | 26408 | systems/texlive/tlnet/archive/projlib.r68553.tar.xz
-2023/10/16 | 259 | macros/latex/contrib/csvsimple/transform.xml
-2023/10/16 | 25524 | macros/latex/contrib/csvsimple/csvsimple-legacy.sty
-2023/10/16 | 238 | macros/latex/contrib/csvsimple/csvsimple-example.csv
-2023/10/16 | 2353650 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.pdf
-2023/10/16 | 229 | macros/latex/contrib/csvsimple/namesort.xml
-2023/10/16 | 22867586 | fonts/newcomputermodern.zip
-2023/10/16 | 227 | macros/latex/contrib/csvsimple/amountsort.xml
-2023/10/16 | 22408 | systems/texlive/tlnet/archive/lastpage.source.r68557.tar.xz
-2023/10/16 | 21744 | systems/texlive/tlnet/archive/indextools.source.r68555.tar.xz
-2023/10/16 | 21538 | macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
-2023/10/16 | 2135096 | install/macros/latex/contrib/csvsimple.tds.zip
-2023/10/16 | 2134584 | macros/latex/contrib/csvsimple.zip
-2023/10/16 | 21307 | support/TeX4ht/source/tex4ht-cond4ht.tex
-2023/10/16 | 183448 | fonts/newcomputermodern/doc/newcm-doc.pdf
-2023/10/16 | 17881 | CTAN.sites
-2023/10/16 | 176 | macros/latex/contrib/csvsimple/matriculationsort.xml
-2023/10/16 | 173858 | macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf
-2023/10/16 | 1721 | macros/latex/contrib/csvsimple/csvsimple.sty
-2023/10/16 | 170064 | systems/texlive/tlnet/archive/abntexto.doc.r68554.tar.xz
-2023/10/16 | 166 | macros/latex/contrib/csvsimple/catsort.xml
-2023/10/16 | 1615428 | macros/latex/contrib/hvfloat/doc/examples/paper-twocolcaption-after2s2c.pdf
-2023/10/16 | 146241 | macros/latex/contrib/hvfloat/doc/examples/multi-default2s1c.pdf
-2023/10/16 | 146068 | macros/latex/contrib/hvfloat/doc/examples/multi-default1s1c.pdf
-2023/10/16 | 145635 | macros/latex/contrib/hvfloat/doc/examples/multi-right1s1c.pdf
-2023/10/16 | 14515396 | systems/texlive/tlnet/archive/profcollege.doc.r68558.tar.xz
-2023/10/16 | 144842 | macros/latex/contrib/hvfloat/doc/examples/sub-right1s2c.pdf
-2023/10/16 | 144738 | macros/latex/contrib/hvfloat/doc/examples/sub-after2s2c.pdf
-2023/10/16 | 144282 | macros/latex/contrib/hvfloat/doc/examples/sub-right2s2c.pdf
-2023/10/16 | 144175 | macros/latex/contrib/hvfloat/doc/examples/sub-default1s2c.pdf
-2023/10/16 | 143883 | macros/latex/contrib/hvfloat/doc/examples/sub-after1s1c.pdf
-2023/10/16 | 143804 | macros/latex/contrib/hvfloat/doc/examples/sub-right1s1c.pdf
-2023/10/16 | 143745 | macros/latex/contrib/hvfloat/doc/examples/sub-default1s1c.pdf
-2023/10/16 | 143455 | macros/latex/contrib/hvfloat/doc/examples/sub-default2s2c.pdf
-2023/10/16 | 142607 | macros/latex/contrib/hvfloat/doc/examples/multi-after1s1c.pdf
-2023/10/16 | 135 | macros/latex/contrib/csvsimple/encoding.xml
-2023/10/16 | 1319080 | systems/texlive/tlnet/archive/profcollege.r68558.tar.xz
-2023/10/16 | 127249 | macros/latex/contrib/csvsimple/csvsimple-title.png
-2023/10/16 | 12704 | systems/texlive/tlnet/archive/minimalist.r68552.tar.xz
-2023/10/16 | 125287 | macros/latex/contrib/hvfloat/doc/hvfloat.tex
-2023/10/16 | 121957 | macros/latex/contrib/hvfloat/doc/examples/wide2s2c.pdf
-2023/10/16 | 120972 | macros/latex/contrib/hvfloat/doc/examples/wide1s2c.pdf
-2023/10/16 | 109703 | macros/latex/contrib/csvsimple/csvsimple-l3.tex
-2023/10/16 | 10690 | macros/latex/contrib/csvsimple/CHANGES.md
-2023/10/16 | 103692 | systems/texlive/tlnet/archive/jourrr.doc.r68556.tar.xz
+2023/10/17 | 10680 | macros/latex/contrib/isosafety/images/ISO-E011.png
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 45cae9bccf..aa91b254a8 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 23-10-2023, 02:00:57
+%% created at 24-10-2023, 02:00:46
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -479,8 +479,8 @@
title = {The \texttt{acmart} package},
subtitle = {Class for typesetting publications of ACM},
author = {Boris Veytsman},
- date = {2023-10-15},
- version = {1.92},
+ date = {2023-10-23},
+ version = {1.93},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/acmart},
url = {https://ctan.org/pkg/acmart},
@@ -8772,8 +8772,8 @@
title = {The \texttt{bithesis} package},
subtitle = {Templates for the Beijing Institute of Technology},
author = {Feng Kaiyu},
- date = {2023-10-01},
- version = {3.6.0},
+ date = {2023-10-23},
+ version = {3.6.1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/unicodetex/latex/bithesis},
url = {https://ctan.org/pkg/bithesis},
@@ -16789,7 +16789,7 @@
title = {The \texttt{customenvs} package},
subtitle = {Custom environments (MCQ, list with picked items, ...)},
author = {Cédric Pierquet},
- date = {2023-10-22},
+ date = {2023-10-23},
version = {0.1.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/customenvs},
@@ -24128,7 +24128,7 @@
title = {The \texttt{expl3} package},
subtitle = {Wrapper package for experimental \LaTeX{}3},
author = {{The \LaTeX{} Project Team}},
- date = {2023-10-10},
+ date = {2023-10-23},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/l3kernel},
@@ -34768,6 +34768,20 @@
normal class.},
}
+@manual{ctan-isosafety,
+ title = {The \texttt{isosafety} package},
+ subtitle = {Provides ISO signs and colors according to the standards 7010 and 3864},
+ author = {Ben Steinhauer},
+ date = {2023-10-23},
+ version = {1.0},
+ license = {lppl1.3c},
+ mirror = {https://mirror.ctan.org/macros/latex/contrib/isosafety},
+ url = {https://ctan.org/pkg/isosafety},
+ annotation = {The package provides safety colors (ISO 3864) and safety signs (ISO 7010) from the
+ .
+ It can be useful when creating instructions for chemical or physical experiments.},
+}
+
@manual{ctan-isotope,
title = {The \texttt{isotope} package},
subtitle = {A package for typesetting isotopes},
@@ -36955,7 +36969,7 @@
title = {The \texttt{l3backend} package},
subtitle = {LaTeX3 backend drivers},
author = {{The \LaTeX{} Project Team}},
- date = {2023-10-10},
+ date = {2023-10-23},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/l3backend},
@@ -36977,7 +36991,7 @@
title = {The \texttt{l3docstrip} package},
subtitle = {Strip documentation in \LaTeX{}3 source},
author = {{The \LaTeX{} Project Team}},
- date = {2023-10-10},
+ date = {2023-10-23},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/l3kernel},
@@ -36999,7 +37013,7 @@
title = {The \texttt{l3kernel} package},
subtitle = {LaTeX3 programming conventions},
author = {{The \LaTeX{} Project Team}},
- date = {2023-10-10},
+ date = {2023-10-23},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/l3kernel},
@@ -37032,7 +37046,7 @@
title = {The \texttt{l3regex} package},
subtitle = {Regular expression facilities for \LaTeX{}},
author = {{The \LaTeX{} Project Team}},
- date = {2023-10-10},
+ date = {2023-10-23},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/l3kernel/l3regex.dtx},
@@ -38007,8 +38021,8 @@
title = {The \texttt{latex-via-exemplos} package},
subtitle = {A \LaTeX{} course written in brazilian portuguese language},
author = {Sadao Massago},
- date = {2023-05-02},
- version = {0.5.9},
+ date = {2023-10-23},
+ version = {0.5.10},
license = {gpl2+},
mirror = {https://mirror.ctan.org/info/latex-via-exemplos},
url = {https://ctan.org/pkg/latex-via-exemplos},
@@ -55041,8 +55055,8 @@
title = {The \texttt{ProfLycee} package},
subtitle = {A \LaTeX{} package for French maths teachers in high school},
author = {Cédric Pierquet},
- date = {2023-10-19},
- version = {2.8.0},
+ date = {2023-10-23},
+ version = {3.00a},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/proflycee},
url = {https://ctan.org/pkg/proflycee},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index 611503b813..0f01f3a476 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/info/latex-via-exemplos/README.md b/info/latex-via-exemplos/README.md
index 47b0a97251..cff66b44bd 100644
--- a/info/latex-via-exemplos/README.md
+++ b/info/latex-via-exemplos/README.md
@@ -40,7 +40,7 @@ using XeLaTeX (or LuaLaTeX) as
xelatex latex-via-exemplos
xelatex latex-via-exemplos
-The latex-via-exemplos is two sided document.
+The latex-via-exemplos is one sided document.
To generate two sided version, compile latex-via-exemplos-twosides.tex
using XeLaTeX (or LuaLaTeX) as
diff --git a/info/latex-via-exemplos/changelog.txt b/info/latex-via-exemplos/changelog.txt
index e7cab682a3..907a5584b7 100644
--- a/info/latex-via-exemplos/changelog.txt
+++ b/info/latex-via-exemplos/changelog.txt
@@ -1,3 +1,9 @@
+version 0.5.10 (2023-10-23)
+ - Small additional comment over \collect@body of amsmath
+ - Bug fix trick for combine on recent TeX distro.
+ - Added abntexto class for brazilian ABNT as alternative for ABNTeX2
+ - added example for xfp and numerica
+ - aadded comment over lwarp latex to html converter
version 0.5.9 (2023-05-01)
- Now compiled as one sided document
- boldsymbol for math mode.
diff --git a/info/latex-via-exemplos/latex-via-exemplos-twosides.pdf b/info/latex-via-exemplos/latex-via-exemplos-twosides.pdf
index e86abeb5cd..8a607b7915 100644
--- a/info/latex-via-exemplos/latex-via-exemplos-twosides.pdf
+++ b/info/latex-via-exemplos/latex-via-exemplos-twosides.pdf
Binary files differ
diff --git a/info/latex-via-exemplos/latex-via-exemplos.bib b/info/latex-via-exemplos/latex-via-exemplos.bib
index 5c501d250d..99cddd9eae 100644
--- a/info/latex-via-exemplos/latex-via-exemplos.bib
+++ b/info/latex-via-exemplos/latex-via-exemplos.bib
@@ -135,6 +135,11 @@ urldate={2019-01-15},
year=2017
}
+@comment{
+% Referencias: https://pt.wikipedia.org/wiki/Ajuda:Guia_de_edi%C3%A7%C3%A3o/F%C3%B3rmulas_TeX
+% Tem breve descricao de como editar formulas em LaTeX de forma adequada (elemento matematico por elemento matematico, apesar de pequenos inadequacoes: underbrace/overbrace, overset em vez do substack no indice da somatoria, omissao do ambiente cases, mbox em vez de mathrm)
+}
+
@Comment{jabref-meta: databaseType:bibtex;}
@comment{e-mail: Scott Pakin <scott+clsl_AT_pakin.org>}
diff --git a/info/latex-via-exemplos/latex-via-exemplos.pdf b/info/latex-via-exemplos/latex-via-exemplos.pdf
index 3ce7296088..ce09a3cd40 100644
--- a/info/latex-via-exemplos/latex-via-exemplos.pdf
+++ b/info/latex-via-exemplos/latex-via-exemplos.pdf
Binary files differ
diff --git a/info/latex-via-exemplos/latex-via-exemplos.tex b/info/latex-via-exemplos/latex-via-exemplos.tex
index 1174467cbb..739a88ff41 100644
--- a/info/latex-via-exemplos/latex-via-exemplos.tex
+++ b/info/latex-via-exemplos/latex-via-exemplos.tex
@@ -199,8 +199,9 @@
% \usepackage{algorithmicx}
\usepackage{algpseudocode} % arquivo de estilo de algorithmicx
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% pacotes usados nos exemplos correspondentes
-%
+%----------------------------------------------
%\usepackage{tikz} % pacote gráfico
\usetikzlibrary{babel} % para compatiblidade com o pacote babel, requerido por agumas bibliotecas como o cd.
\usetikzlibrary{calc} % calc eh para efetuar calculos matematicos ou expressoes em coordenadas
@@ -209,7 +210,7 @@
\usetikzlibrary{intersections} % interseccao entre caminhos
\usetikzlibrary{matrix} % matriz no tikz
\usetikzlibrary{cd} % diagrama comutativa
-
+%
\usepackage{lettrine} % Para paragrafo no estilo biblia
\usepackage{caption} % configurar o titulo da figura e tabela
\usepackage{subcaption} % subfigura ou subtabela
@@ -247,14 +248,19 @@
\usepackage{shadowtext}
% texto em degrade (gradiente linear)
\usepackage{gradient-text}
-
+%
% texto circulado: de 2022
\usepackage{circledtext}
-
+%
% \toprule, midrule, cmidrule{}, bottomrule
\usepackage{booktabs}
-
+% xtabular
\usepackage{xtab}
+%
+% Para evaluar expressões matemáticas
+\usepackage{xfp}
+\usepackage{numerica}
+\usepackage{numerica-tables}
% TODO's
%\usepackage{todonotes} % carega xkeyval, tikz, etc
@@ -993,10 +999,11 @@
% Quarta atualização (0.5.4): agosto de 2019
% Quinta atualização (0.5.6): dezembro de 2019
% Sexta atualização (0.5.7): julho de 2021
-% Setima atualizzação (0.5.8): 17 de maio de 2022
-% Nona atualização (0.5.9): 01 de maio de 2023
-\date{Versão 0.5.9, 01 de maio de 2023}
-
+% Setima atualização (0.5.8): 17 de maio de 2022
+% Oitava atualização (0.5.9): 01 de maio de 2023
+% Nona atualização (0.5.9): 01 de maio de 2023}
+% Decima atualização
+\date{Versão 0.5.10, 23 de outubro de 2023}
%%%%%%%%%%%%%%%%%%%%%%%
% Documet start here
@@ -1103,7 +1110,7 @@ Apêndice~G descreve alguns aplicativos livres interessantes que auxilia os usu
% Sorocaba, dezembro de 2019.
% Sorocaba, julho de 2021.
% Sorocaba, maio de 2022.
-Sorocaba, maio de 2023.
+Sorocaba, outubro de 2023.
\
@@ -5291,7 +5298,7 @@ Com titulo.
\end{document}
\end{ltxlisting}
-\section{Ambiente com parâmetro na finalização e aplicação do comando no corpo}
+\section[Ambiente com parâmetro na finalização e aplicação do comando]{Ambiente com parâmetro na finalização e aplicação do comando no corpo}
No caso de ambiente precisar usar o argumento na finalização, precisará associar a algum comando.
Isto porque, o comando \verb+\newenvironment{ambiente}+ criará o par de comandos \verb+\ambiente+ (chamado pelo \verb+\begin{ambiente}+) e \verb+\endambiente+ (chamado pelo \verb+\end{ambiente}+) que funcionará em sincronismo.
@@ -5372,11 +5379,26 @@ Testando o ambiente.
\end{document}
\end{ltxlisting}
-Para aplicar comandos com mais de um parâmetros, poderá recorrer ao pacote fora do \texttt{base}/\texttt{required} como o \texttt{environ}\index{environ}.
+Note que \verb+\collect@body+ não pode ser usado para ambiente que recebem quebra de linhas ou parágrafos e também não funciona para aplicar comandos com mais de um parâmetro. Para tais casos, poderá recorrer ao pacote fora do \texttt{base}/\texttt{required} como o \texttt{environ}\index{environ} na qual \verb+\BODY+ corresponde ao conteúdo do ambiente (Exemplo~\ref{ex14:comando:corpo:ambiente:environ}).
% Exemplo do uso:
% \usepackage{environ}
-% \NewEnviron{myulbox}{\underline{\BODY}}
+% \NewEnviron{myulbox}{\underline{\BODY}} {}
+\begin{lstlisting}[caption={ex14-comando-no-corpo-do-ambiente-environ.tex}, label=ex14:comando:corpo:ambiente:environ]
+\documentclass[12pt,a4paper]{article}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[brazil]{babel}
+\usepackage{environ}
+\newcommand{\myframebox}[1]{\fbox{\parbox[\columnwidth]{#1}}}
+\NewEnviron{myfbox}{\myframebox{\BODY}} {}
+\begin{document}
+\begin{myfbox}
+Testando o ambiente.
+\end{myfbox}
+\end{document}
+\end{lstlisting}
+
\section{Comandos definidos dentro do outro comando}
@@ -6485,7 +6507,7 @@ Veja o Exemplo~\ref{ex15:pdflscape}.
\section{Melhorando as tabelas}
-O pacote\texttt{booktabs}\index{booktabs} oferece comandos para traçar linhas horizontais com espaçamento ajustado adequadamente. Use \verb+\toprule+\index{toprule@\verb+\toprule+} para linha acima da tabela,
+O pacote \texttt{booktabs}\index{booktabs} oferece comandos para traçar linhas horizontais com espaçamento ajustado adequadamente. Use \verb+\toprule+\index{toprule@\verb+\toprule+} para linha acima da tabela,
\verb+\midrule{}+\index{midrule@\verb+\midrule+} e \verb+\cmidrule+\index{cmidrule@\verb+\cmidrule+} para linhas dentro da tabela e
\verb+\bottomrule+\index{bottomrule@\verb+\bottomrule+} para linha abaixo da tabela. No ABNT, encima e embaixo da tabela é fechada, mas não no lado esquerdo e direito.
@@ -6592,7 +6614,7 @@ Se estiver usando a classe \texttt{beamer}, coloque a opção \texttt{xcolor=tab
Com a opção \texttt{table} no \texttt{xcolor}, o pacote \texttt{colortbl}\index{colortbl} será carregado com ajustes necessários.
Note que pacotes tais como \texttt{tikz} e \texttt{pdfpages} carregam o \texttt{xcolor}. Logo, deve colocar \verb+\usepackage[table]{xcolor}+ antes de tais pacotes para evitar erros. Outra forma de evitar erros é colocar
\verb+\PassOptionsToPackage{table}{xcolor}+
- logo em seguida do \verb+\documentclass{}+ para que, qualquer pacote que venha a carregar o \texttt{xcolor} passe opção \texttt{table} para ele. Neste caso, \verb+\usepackage{xcolor}+ pode ser colocado sem precisar preocupar.
+ logo em seguida do \verb+\documentclass{}+ para que, qualquer pacote que venha a carregar o \texttt{xcolor} passe opção \texttt{table} para ele. Neste caso, \verb+\usepackage{xcolor}+ pode ser colocado sem preocupação.
Como exemplo,vamos colorir as linhas ímpares de cinza clara para para facilitar o acompanhamento das linhas.
Veja a Tablea~\ref{ex15:xcolor:table}
@@ -6800,6 +6822,29 @@ A configuração geral de formatação pode ser feito pela opção do pacote ou
A nova versão, apesar de continuar com os comandos da versão 2, separa o comando para números complexos e com o produto, como pode ver no exemplo de \verb+\num+ (Exemplo~\ref{ex15:num}). Se quer que não tenha esta separação, poderá carregar no modo de versão 2, com o comando \verb+\usepackage{siunitx}[=v2]+ e usar somente os comandos da versão 2.
+\section{Calculando o valor de uma função}
+Para efetuar cálculo de funções matemáticas no \LaTeX, como no caso de tabelar funções nos pontos dados, podemos usar o pacote \texttt{xfp}\index{xfp} ou \texttt{numerica}\index{numerica}. O pacote \texttt{xfp} evalua a expressão matemática normalmente, enquanto que \texttt{numérica} evalua a expressão escrita na forma \TeX, permitindo que mesma expressão pode ser usado tanto para evaluar, como para exibir. Além de \texttt{numerica} ter mais recursos, o \texttt{numerica-tables}\index{numerica-tables} permmite tabelar funções rapidamente.
+
+Veja o Exemplo~\ref{ex15:xfp-e-numerica}.
+
+%\begin{singlespacing}
+%\begin{LTXexample}[pos=b,caption={ex11-08.tex},label=ex:11-08]
+\begin{ltxlisting}[caption={ex15-xfp-e-numerica.tex},label=ex15:xfp-e-numerica]
+%Supõe carregada seguintes pacotes: xfp, numerica e numerica-tables
+Expressão a ser evaluada: $\sin(\frac{\pi}{4})$
+
+Valor pelo \texttt{xfp} é $\fpeval{sin(pi/4)}$
+
+Valor pelo \texttt{numerica} (com configuração padrão) é $\eval{\sin(\frac{\pi}{4})}$,
+
+Tabelando função com \texttt{numerica-table}
+
+\tabulate[rvar=x,rstep={\frac{\pi}{10}},rows={10+1}]
+{\sin x}[x=0]
+\end{ltxlisting}
+%\end{LTXexample}
+%\end{singlespacing}
+
\section{Moldura, enumeração das linhas e marca d'água}
Para enfeitar o documento, como colocar moldura nos elementos, usamos os pacotes adicionais, exceto molduras simples fornecidos pelo \verb+\fbox+\index{fbox@\verb+\fbox+}.
@@ -7743,6 +7788,8 @@ Veja o Exemplo~\ref{ex16:tikz:draw}.
\draw[rounded corners=8pt] (-1,-1) -- (1,-1) -- (1,-2) -- (-1,-2); % Quinas arredondadas
\draw[red] (2,-1) |- (3,-2);% Conectando com linha vertical-horizontal
\draw[blue] (2,-1) -| (3,-2); % Conectando com linha horizontal-vertical
+% ++(V) desloca o ponto anterior pelo (V), isto é, novo ponto é ponto nterior + (V).
+\draw (4,0) -- ++(1,1) -- ++(1,-1) -- cycle;
\end{tikzpicture}
\end{center}
\end{ltxlisting}
@@ -9346,7 +9393,260 @@ Também poderá usar o BibTeX em vez do BibLaTeX. Veja o Araújo (2016b) para de
Para mais detalhes sobre comandos do estilo ABNT para Bib\LaTeX, veja \cite{book:biblatex-abnt:marques}.
+\section{ABNTexto}
+A classe \texttt{ABNTexto}\index{ABNTexto} que está na fase de desenvolvimento é uma alternativa leve para \texttt{ABNTeX2}, para diagramar em ABNT. Enquando que \texttt{ABNTeX2} usa a classe \texttt{memoir} e diversos pacotes para maior flexibilidade, \texttt{ABNTexto} usa a classe \texttt{article} e muitos poucos pacotes, deixando mais leve.
+No entanto, como ele ainda está na fase de desenvolvimento (2023), faltam comandos e podem apresentar inconveniências, o que devem ser supridas manualmente.
+
+Um exemplo de ABNTexto com uso de BibTeX é como no Exemplo~\ref{ex19:abntexto}, cuja saída é omitida.
+
+\begin{singlespacing}
+\begin{lstlisting}[caption={ex19-abntexto.tex},label={ex19:abntexto}]
+% Padrão para abntexto
+% Classe base: article
+% pacote adicional: geometry, graphicx
+% font size: 12pt
+% twoside=true
+% neste modelo, força para ser oneside (versão eletrônica)
+\documentclass[a4paper]{abntexto}
+
+\usepackage{iftex} % Para detectar o motor de TeX utilizado
+% Fontes, de acordo com o motor do TeX
+\ifPDFTeX
+ \usepackage[T1]{fontenc} % codificação da fonte em 8−bits
+ \usepackage{lmodern} % fontes latin modern
+ \usepackage[utf8]{inputenc} % acentuação direta em UTF−8
+\else
+ \usepackage{fontspec} % pacote para configurar fontes
+ \defaultfontfeatures{Ligatures=TeX}
+ % seleção das fontes desejadas pode ser colocados aqui
+\fi
+
+% idiomas
+\usepackage[english,brazil]{babel}%padrão é brazil.
+
+% pacotes matemáticas de acordo com o motor TeX
+\ifPDFTeX
+ \usepackage{amsmath,amssymb} % para matematica
+\else
+ % para matematica
+ \usepackage{unicode-math}
+ \ifLuaTeX
+ \usepackage{lualatex-math}
+ \fi
+\fi
+%Outros pacotes
+\usepackage[overload]{textcase} % para poder ter comandos de LaTeX/fórmula no titulo
+\usepackage{hyperref} % para link automático no PDF
+% Desabilitando ou redefinindo comandos que causa erros no bookmark do PDF
+\pdfstringdefDisableCommands{%
+\let\MakeUppercase\relax% desabilitando
+\def\\{ }%
+\def\and{ e }
+}
+\usepackage{pdfpages} % para incluir documento PDF (ex.: folha de aprovação)
+\usepackage{indentfirst} % se quer que o primeiro parágrafo seja indentada
+%% Se for criar o índice remissivo (opcional)
+%\usepackage{makeidx}
+%\makeindex
+% BibLaTeX
+\usepackage[
+ backend=biber,
+ % backref é util para depulação: na referências, aparece páginas onde foi citado
+ % backref=true,
+ language=auto,
+% autolang=other, % para ambiente <otherlanguage> do babel e polygrossia
+% autolang=langname, % somente para ambiente <language> do polygrossia.
+ % bibencoding=utf8,
+ style=abnt %authoryear,
+]{biblatex}
+\addbibresource{modelo-biblatex.bib} % arquivo bib
+
+%\addto{\captionsbrazil}{
+% \renewcommand{\refname}{Referências}
+%}
+% Como classe base é article, referências bibliográficas ficam como seção. Para ser capítulo, precisa de ajustes
+\defbibheading{bibliography}[\refname]{\heading{#1}}%\chapter*{#1}}
+
+% versão * do capítulo não tem no ABNTexto. Providenciando
+\makeatletter
+\let\chapter@original\chapter% copiando o original
+\def\chapter{\@ifstar\chapter@star\chapter@nostar}
+\def\chapter@nostar#1{\chapter@original{#1}}% sem *
+\def\chapter@star#1{% com *
+ \clearpage\vspace*{\abovechapter}
+ \noindent{\Huge\bfseries #1}%
+ \par\vskip\belowchapter
+}
+
+\hypersetup{pdftitle={Exemplo de ABNTexto},
+ pdfauthor={Sadao Massago},
+ pdfsubject={Exemplo do documento em ABNT com a classe ABNTexto},
+ pdfkeywords={ABNT}{Trabalho acadêmico}{LaTeX}{ABNTexto}
+}
+
+% INICIO DO DOCUMENTO
+\begin{document}
+\begin{titlepage}
+UNIVERSIDADE FEDERAL DE SÃO CARLOS \\
+CENTRO DE CIÊNCIAS E TECNOLOGIAS PARA SUSTENTABILIDADE
+\begin{center}
+\vfill
+\Large SADAO MASSAGO
+\vfill
+{\Huge EXEMPLO DE ABNTEXTO}
+\vfill
+SOROCABA \\
+AGOSTO DE 2023
+\end{center}
+\end{titlepage}
+\pretextual
+% Folha de rosto é obrigatório no ABNT
+\begin{center}
+\vfill
+Sadao Massago
+\vfill
+{\Large\bfseries Exemplo de ABNTexto}
+\vfill
+\begin{flushright}\begin{minipage}{0.5\textwidth}
+Texto do tipo ‘‘Monografia apresentada ...’’ que depende da instituição
+\end{minipage}\end{flushright}
+\vfill
+Universidade Federal de São Carlos \\
+Centro de Ciências e Tecnologias para Sustentabilidade
+\vfill
+Orientador(a): Nome do(a) orientador(a)
+\vfill
+Sorocaba\\
+Agosto de 2023
+\end{center}
+
+%% Ficha catalográfica, caso existir, deve ficar no verso da folha de rosto
+%\newpage % Quando tiver versão definitiva, inserir aqui
+%\includepdf{fichacatalograficafinal.pdf}
+%
+%Caso exista errata. Opcional no ABNT.
+%\chapter*{Errata}
+%
+\newpage
+Folha de aprovação é obrigatório no ABNT
+%% Quando tiver a folha de aprovação devidamente assinada, incluir aqui
+%% \includepdf{folhadeaprovacaofinal.pdf}
+%
+%%\chapter*{}
+%%Dedicatória é um elemento opcional para ABNT
+%
+\chapter*{}
+Agradecimentos é opcional no ABNT, mas boa educação é agradecer aos que contribuíram para realização do trabalho.
+%
+%\chapter*{}
+%epigrafe (uma mensagem) que é opcional no ABNT.
+%
+\chapter*{Resumo}
+Resumo em português, obrigatório no ABNT.
+
+\noindent
+\textbf{Palavras-chave}: ABNT, LaTeX, ABNTexto.
+%
+\chapter*{Abstract} %Resumo em língua estrangeira (obrigatório no ABNT).
+\begin{otherlanguage}{english}
+Abstract in foreign language is required in ABNT.
+
+\noindent
+\textbf{Keywords}: ABNT, LaTeX, ABNTexto.
+\end{otherlanguage}
+%
+%\clearpage\phantomsection\pdfbookmark[chapter]{\listfigurename}{lof}
+%\heading{Lista de Figuras}% opcional no ABNT
+%\maketoc{lof}
+%
+%\clearpage\phantomsection\pdfbookmark[chapter]{\listfigurename}{lot}
+%\heading{Lista de Tabelas} % opcional no ABNT
+%\maketoc{lot}
+%
+%\chapter*{Siglas} % Lista de siglas é opcional no ABNT.
+%\begin{description}
+%\item[ABNT] Associação Brasileira de Normas Técnicas.
+%\end{description}
+%\end{siglas}
+%
+%\chapter*{Simbolos}% Lista de Símbolos é opcional no ABNT
+%\begin{description}
+%\item[$\pi$] Razão entre circunferência e raio.
+%\item[ABNT] Associação Brasileira de Normas Técnicas.
+%\end{description}
+%
+\clearpage\heading{Sumário}% Sumário é obrigatório no ABNT
+\maketoc
+%
+% CONTEÚDO PRINCIPAL
+\clearpage
+\textual\let\textual=\relax% iniciando o textual e desativando o comando
+\newgeometry{twoside=false} % forçando a ser oneside
+%
+% Como já é conteúdo textual, capítulos serão enumerados.
+\chapter{Prefácio} % prefácio (ou apresentação) é opcional no ABNT
+Prefácio aqui. Se preferir, pode incorporar na introdução.
+\clearpage
+\chapter{Introdução}
+Introdução aqui.
+\clearpage
+\chapter{Alíneas}
+Alineas é criado pelo ambiente \texttt{topics}.
+\begin{topics}
+\item \label{alinea:1} 1
+\begin{topics}
+\item a
+\item b
+\end{topics}
+\item \label{alinea:2} 2
+\end{topics}
+\clearpage
+\chapter{Legenda}
+Legenda da figura e tabelas.
+\begin{figure}[hbp!]
+\legend{figure}{Um título}
+\src{\texttt{www.site.com.br}. Acesso em 01 jan. 2020.}
+\label{fig:teste}
+\place{\includegraphics[width=0.4\linewidth]{example-image}}
+\end{figure}
+Ver \ref{fig:teste}.
+\clearpage
+\chapter{Citações}
+Para citações curtas, use \verb+\enquote{texto}\cite{key}+.
+
+Para citações longas (mais de 3 linhas), use
+\verb+\Enquote{texto\cite{key}}+ (com ``E'' maiúsculo).
+Por exemplo,
+\Enquote{O Lua\LaTeX{} foi designado para ser o sucessor do PDF\LaTeX{} e por isso, deve ser o \LaTeX{} padrão no futuro, mas pode ser um pouco mais lento do que o Xe\LaTeX. \cite{book:sadao:2019}
+} %Enquote
+\clearpage
+\chapter{Considerações Finais}
+Conclusão do trabalho.
+% PÓS TEXTUAL
+\clearpage
+%% Referencias bibliográficas é obrigatório no ABNT
+\phantomsection\addcontentsline{toc}{chapter}{\refname}%adicionando no sumário
+\printbibliography%sem opção, para devido funcionamento em ABNTexto
+%Apêndices são opcionais no ABNT
+\clearpage
+\appendix{Primeiro Apêndice}
+Conteúdo do primeiro apêndice.
+\clearpage
+\appendix{Segundo Apêndice}
+Conteúdo do segundo apêndice.
+% Anexos são opcionais no ABNT
+\clearpage
+\annex{Primeiro Anexo}
+Conteúdo do primeiro anexo
+\annex{Segundo Anexo}
+Conteúdo do segundo anexo
+% Índice remissivo (opcional no ABNT)
+% \clearpage
+% \printindex
+\end{document}
+\end{lstlisting}
+\end{singlespacing}
%%%%%%%%%%%%%% APÊNDICE %%%%%%%%%%
\clearpage\thispagestyle{empty}\cleardoublepage
@@ -11375,7 +11675,7 @@ Assim, para aumentar a memória reservada para isso, coloque
\reserveinserts{28} % using etex extensions
\end{lstlisting}
\end{singlespacing}
-no preamble, caso ocorrer o erro do tipo ``No room for ...''.
+no preâmbulo, caso ocorrer o erro do tipo ``No room for ...''.
Se ainda ocorrer erro, aumente o valor de $28$ para $50$, por exemplo.
Note que \verb+\maketitle+ ou \texttt{titlepage} é necessário.
@@ -11386,6 +11686,34 @@ Para usar recursos do \texttt{natbib}, carregue o pacote \texttt{combnat}\index{
O modo padrão é ignorar os pacotes carregados pelos artigos.
Assim, todos pacotes necessários devem estar carregados no arquivo mestre (arquivo do \texttt{combine} que vai incluir artigos).
+É importante observar que na distribuição do \TeX{} recente (2023), precisa efetuar correção segundo
+%\begin{singlespacing}
+%\begin{lstlisting}
+%\makeatletter
+% \let\document\c@ladocument\begingroup
+%\makeatother
+%\end{lstlisting}
+%\end{singlespacing}
+%no preâmbulo conforme indicado em
+\url{https://tex.stackexchange.com/questions/591145/extra-endgroup-error-when-using-the-combine-document-class}. Note que, colocar
+\begin{singlespacing}
+\begin{lstlisting}
+\makeatletter
+ \let\document\c@ladocument\begingroup
+\makeatother
+\end{lstlisting}
+\end{singlespacing}
+no preâmbulo do documento não funciona devidamente, pois quando tenta carregar o pacote que depende do PDF como o \texttt{hyperref} ou pacotes gráficos no modo pdf, gera erros.
+Assim, localize e copie o arquivo \texttt{combine.cls} para onde esta o teu documento tex e efetue a alteração conforme indicado, ou seja, localize a definição de \verb+\c@ladocument+ e comente o primeiro \verb+\endgroup+ que está logo no começo do comando, na linha 232 a distribuição do \TeX{} atual (2023). Com isso, o início da definição deste comando ficará como
+\begin{singlespacing}
+\begin{lstlisting}
+\newcommand{\c@ladocument}{%
+ %\endgroup
+ \let\mainjobname\jobname %% added
+ \def\c@lmainauxfile{\jobname.aux} %% added
+\end{lstlisting}
+\end{singlespacing}
+Onde \verb+\endgroup+ do começo do comando ficou comentada.
Vamos supor que artigos a serem incluídos tem a forma como no Exemplo~\ref{ex:d:conferencia}.
@@ -11419,10 +11747,9 @@ Então o caderno, pode ser criado como no Exemplo~\ref{ex:d:caderno}.
\begin{singlespacing}
\begin{lstlisting}[caption={ex-d-caderno.tex},label=ex:d:caderno]
-\documentclass[12pt,a5paper]{combine}
+\documentclass[12pt,a5paper,book]{combine}
% combine supports: memoir, book, report, and article
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% If the error ``No room for ..'' occur, increase the reserved insets
\usepackage{etex} % to use etex extensions
\reserveinserts{28} % using etex extensions
@@ -11440,6 +11767,7 @@ Então o caderno, pode ser criado como no Exemplo~\ref{ex:d:caderno}.
% packages usados somente no corpo de anais do congresso
\usepackage{graphicx}
+
\usepackage{geometry}
\geometry{lmargin=2.5cm,rmargin=2cm,tmargin=2cm,bmargin=2cm}
@@ -12066,6 +12394,9 @@ Ele permite criar facilmente os diagramas em \texttt{tikz} através da interface
site: \url{https://sourceforge.net/projects/asymptote/}
+\url{https://asymptote.sourceforge.io/}
+
+
Asymptote é uma linguagem/interpretador gráfico 2D/3D inspitado em MetaPost que permite produzir gráficos em Post Script, PDF e SVG.
\subsection*{Geogebra\index{gráfico científico!Geogebra}}
@@ -12225,8 +12556,8 @@ converterá para pdf.
%Convertor clássico de jpeg para eps de nível 2 ou 3 (com compressão).
%Eu aconselho usar o Imagemagick ou sam2p.
-\subsection*{TeX4ht\index{convertor!TeX4ht}}
-\texttt{TeX4ht} é um convertor de \TeX/\LaTeX para HTML/XHTML, similar a Hevea, TTH, e LaTeX2HTML, que roda em diversas plataformas.
+\subsection*{TeX4ht\index{convertor!TeX4ht} e lwarp\index{convertor!lwarp}}
+\texttt{TeX4ht} é um convertor de \TeX/\LaTeX para HTML/XHTML, similar a Hevea, TTH, e LaTeX2HTML, que roda em diversas plataformas.
Note que todos 4 programas são de multiplataformas e cada um tem vantagens e desvantagens.
Hevea e TTH, não apresenta suporte decente as fórmulas matmáticas.
O Tex4ht implementado como pacote para TeX e o LaTeX2HTML que é escrito em perl, conseguem converter eficientemente os documentos com equações.
@@ -12239,8 +12570,9 @@ Ele particiona documentos grandes em pedaços menores e cria recurso de navegaç
O HTML gerado por LaTeX2HTML acomoda bem em maioria dos navegadores, o que torna a escolha preferida dos profissionais.
No entanto, Tex4ht já vem com muitas distribuições \LaTeX, incluindo o MikTeX para MS Windows.
-Além disso, ele permite converter para formato do Libre Office e TeXMaker e LyX usam ele para gerr arquivo de Libre Office.
+Além disso, ele permite converter para formato do Libre Office e, TeXMaker e LyX usam ele para gerar arquivo de Libre Office.
+O \texttt{lwarp} é conjunto de pacotes de \LaTeX{} similar a \texttt{TeX4Ht} que converte \LaTeX{} para HTML5, mas usa PDF como formato intermediário, em vez do antigo DVI usado pelo \texttt{TeX4Ht}. Isto permite usar imagens PDF diretamente no documento. As equações e figuras ficarão no formato \texttt{SVG} por padrão, mas pode usar \texttt{MathJaX} para equações. Ele não suporta \texttt{MathML} para equações ainda. O script auxiliar \texttt{lwarpmk} é usado na conversão automática das equações e imagens para SVG.
%No caso de Windows, o comando htlatex.bat converte usando imagem na equação e htmlatex.bat usa MathML para fórmula. O oolatex.bat converte para formato de Libre Office.
@@ -12434,7 +12766,7 @@ Para inserir uma ou mais páginas diretamente no documento em vez de inserir com
Quem trabalha com tabelas, pode precisar do pacote \texttt{multirow}\index{multirow} para mesclar linhas, \texttt{diagbox}\index{diagbox} para dividir células em diagonal, etc que não foram citados neste documento.
% tais como \texttt{booktab}\index{booktab}, \texttt{tabulararray}\index{tabulararray}, etc
%Para elaborar livros: koma script, memoir, tufte-latex, bookest, willowtreebook, octavo, ElegantBook (templates), ycbook, nostarch, simplivre (multilingue), beaulivre (multilingue, colorido)
-Ainda existem pacotes específicos para xadrez, diagrama química, música, etc, além dos pacotes destinados para cada tipo de ajustes.
+Ainda existem pacotes específicos para xadrez (xskak), diagrama química (chemfig), música (abc, musixtex), etc, além dos pacotes destinados para cada tipo de ajustes de documentos.
%A lista dos pacotes interessantes são longas.
@@ -12464,77 +12796,5 @@ Mas, pelo menos podemos tentar conhecer os pacotes e classes populares existente
\printindex
\end{singlespacing}
-%\chapter{Todo}
-%Já feito
-%\begin{itemize}
-%\item Estruturação de texto antes da estruturação de documentos. Nele, incluir o minipage, já usando o \verb+\linewidth+ como o \verb+0.5\linewidth+. OK.
-%
-%\item A seleção de fontes (família, peso, forma e tamanho) ficar depois de ver estrutura de documentos, estruturação de textos e fórmulas matemáticas usando AMS. Talvez, até mesmo depois das figuras. OK (ver se fica antes ou depois das figuras). OK
-%Neste caso, algumas seleções de fontes matemáticos (\verb+\mathrm+, \verb+\mathbb+ e \verb+\mathcal+) e o \verb+\emph+ para textos (talvés \verb+\textbf+ também) devem ser tratados antes de entrar no capítulo de configuração de fontes. OK.
-%
-%\item Medidas e espaçamentos também ficar para depois, como do item anterior. Algumas medidas como o \verb+\linewidth+ poderá ser apresentado junto ao \texttt{minipage} na estruturação de textos. OK.
-%
-%
-%\item short name for caption. Deve ser junto aos elementos flutuantes. OK
-%\item indentfirst? OK
-%\item multicols? OK
-
-%\item comandos frágeis.
-%\item Onde tratar de babel
-%\item Onde tratar de contadores?
-%\item hifenização?
-%\item onde tratar de \verb+\makeatletter+/\verb+\makeatother+?
-%
-%\item versão ``*''? Comentar que tem o pacote ifthen tambem?
-%
-%\item pacote \texttt{color}? Onde colocar?
-%\item alguns pacotes de fontes do base e required?
-%\item integrais múltiplas OK
-%\end{itemize}
-
-%Todo:
-%
-%\begin{itemize}
-%\item Onde tratar de poster? Deixar junto com fancybox e lpsum.
-%
-%\end{itemize}
-%
-%Da parte adicional. Decidir qual serão vistos e como agrupar.
-
-%\begin{itemize}
-%\item lmodern e mais alguns pacotes de fontes tais como newtxtext/newtxmath, etc.
-
-% \item dsfont,
-%\item hyperref, geometry, fancyhdr, fancybox, setspace
-%\item titlesec, float, wrapfig (ou floatflt), xcolor, subfigure
-%\item caption e hyphenat
-%\item tocbibind
-%\item beamer, pgf/tikz,
-
-%\item natbib, biblatex
-
-%\item xelatex/lualatex, iffont.
-% \item O editor LyX
-% \item eso-pic, framed
-
-
-% \item Exemplo do pacote caption e listings e showexpl
-%\item arquivos de estilo.
-
-%\item \verb+\section{\texorpdfstring{$E=mc^2$}{E = mc ** 2}}+ para bookmark do PDF (hyperref)? Uso do comando \verb+\url{}+ no arquivo de BibTeX.
-
-%\item diferenca de amssymb/amsmath com unicode-math:
-%mathbb, mathcal, \verb+\int\limits+
-%item \verb+\newfontfamily+ do fontspec
-
-% \end{itemize}
-
-
-% Referencias: https://pt.wikipedia.org/wiki/Ajuda:Guia_de_edi%C3%A7%C3%A3o/F%C3%B3rmulas_TeX
-% Tem breve descricao de como editar formulas em LaTeX de forma adequada (elemento matematico por elemento matematico, apesar de pequenos inadequacoes: underbrace/overbrace, overset em vez do substack no indice da somatoria, omissao do ambiente cases, mbox em vez de mathrm)
-%
-% https://en.wikibooks.org/wiki/LaTeX/
-% Livro eletronico em ingles.
-% \printindex
\end{document}
diff --git a/info/latex-via-exemplos/makeaux.sh b/info/latex-via-exemplos/makeaux.sh
index 3c0fd43f49..3c0fd43f49 100755..100644
--- a/info/latex-via-exemplos/makeaux.sh
+++ b/info/latex-via-exemplos/makeaux.sh
diff --git a/info/latex-via-exemplos/makedoc.sh b/info/latex-via-exemplos/makedoc.sh
index 73fdb0b278..73fdb0b278 100755..100644
--- a/info/latex-via-exemplos/makedoc.sh
+++ b/info/latex-via-exemplos/makedoc.sh
diff --git a/macros/latex/contrib/acmart/README b/macros/latex/contrib/acmart/README
index fd697fedf1..3e301435a9 100644
--- a/macros/latex/contrib/acmart/README
+++ b/macros/latex/contrib/acmart/README
@@ -12,6 +12,8 @@ The production version is the one on CTAN and ACM sites.
Changes
+Version 1.93 Added PACMSE
+
Version 1.92 Documentation update
Emergency change: changed order of hyperref and hyperxmp
due to changes in the undelying packages
diff --git a/macros/latex/contrib/acmart/acmart.dtx b/macros/latex/contrib/acmart/acmart.dtx
index 04f90c2a24..85f52456c4 100644
--- a/macros/latex/contrib/acmart/acmart.dtx
+++ b/macros/latex/contrib/acmart/acmart.dtx
@@ -306,7 +306,7 @@
% acmsmall & Small single-column format. Used for ACMJCSS, CIE, CSUR,
% DLT, FAC, GAMES, JACM, JATS, JDIQ, JDS, JEA, JERIC,
% JETC, JRC, PACMCGIT, PACMHCI, PACMMOD, PACMNET,
-% PACMPL, TAAS, TACCESS, TACO,
+% PACMPL, PACMSE, TAAS, TACCESS, TACO,
% TALG, TALLIP (formerly TALIP), TCPS, TDS,
% TEAC, TECS, TELO, THRI, TIIS, TIOT, TISSEC, TIST, TKDD, TMIS,
% TOCE, TOCHI, TOCL,
@@ -2155,6 +2155,7 @@
% PACMOD & PACM on Management of Data\\
% PACMNET & PACM on Networking\\
% PACMPL & PACM on Programming Languages \\
+% PACMSE & PACM on Software Engineering \\
% POMACS & PACM on Measurement and Analysis of Computing Systems \\
% TAAS & ACM Transactions on Autonomous and Adaptive Systems\\
% TACCESS & ACM Transactions on Accessible Computing\\
@@ -2277,7 +2278,7 @@
\ProvidesFile{acmart.dtx}
%</gobble>
%<class>\ProvidesClass{acmart}
-[2023/10/14 v1.92 Typesetting articles for the Association for Computing Machinery]
+[2023/10/22 v1.93 Typesetting articles for the Association for Computing Machinery]
% \end{macrocode}
%
% \changes{v1.00}{2016/04/14}{First released version}
@@ -2391,7 +2392,8 @@
% \changes{1.90a}{2023/06/11}{Changes in the sample keywords and concepts}
% \changes{1.92}{2023/09/30}{Documentation update: use of `anonymous'
% throughout}
-%
+% \changes{v1.93}{2023/10/22}{Added PACMSE journal option}
+%
% And the driver code:
% \begin{macrocode}
%<*gobble>
@@ -4369,6 +4371,7 @@
PACMMOD,%
PACMNET,%
PACMPL,%
+ PACMSE,%
POMACS,%
TAAS,%
TACCESS,%
@@ -4527,6 +4530,12 @@
\def\@permissionCodeOne{2475-1421}%
\@ACM@screentrue
\PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
+\or % PACMSE
+ \def\@journalName{Proceedings of the ACM on Software Engineering}%
+ \def\@journalNameShort{Proc. ACM Softw. Eng.}%
+ \def\@permissionCodeOne{2994-970X}%
+ \@ACM@screentrue
+ \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
\or % POMACS
\def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
\def\@journalNameShort{Proc. ACM Meas. Anal. Comput. Syst.}%
diff --git a/macros/latex/contrib/acmart/acmart.pdf b/macros/latex/contrib/acmart/acmart.pdf
index 3c8d591498..ddbd0be338 100644
--- a/macros/latex/contrib/acmart/acmart.pdf
+++ b/macros/latex/contrib/acmart/acmart.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/acmguide.pdf b/macros/latex/contrib/acmart/acmguide.pdf
index f4834a3210..a05de826e3 100644
--- a/macros/latex/contrib/acmart/acmguide.pdf
+++ b/macros/latex/contrib/acmart/acmguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
index bc29adfced..7bbe90e88a 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
index 4c902cdd83..e04738a35f 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
index c47d1cbbce..5897c7d07c 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
index 8df55e0e58..30f9bd362c 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
index b2d841c504..0173d1db05 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
index 0d51cf3ccb..820223b983 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
index 4b42a3336c..94e18b39b4 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
index 43bc1f88c5..d199c8c450 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
index ed02f879fb..2094e4c8b8 100644
--- a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
index 104e54850e..559e6a9a7e 100644
--- a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
index 4d1c11cc61..afe006230b 100644
--- a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
index aa30bec994..6a506cf32f 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
index ba18c5413e..72bf2739e5 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
index b6b3e6afa8..5ed27710ae 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
index a3321b42db..36bc1678dd 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
index 9fc189804c..18a01f2b0d 100644
--- a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/isosafety/README.md b/macros/latex/contrib/isosafety/README.md
new file mode 100644
index 0000000000..5cedddab81
--- /dev/null
+++ b/macros/latex/contrib/isosafety/README.md
@@ -0,0 +1,9 @@
+# isosafety
+
+isosafety is a LaTeX package that contains safety colors (ISO 3864) and safety signs (ISO 7010) from the ISO (https://www.iso.org/home.html).
+
+Maintainer: BenSt099 (https://github.com/BenSt099/isosafety)
+
+License: LPPL 1.3c
+
+Note: This is **not** an **official** package from ISO. \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV003.png b/macros/latex/contrib/isosafety/images/ISO-CV003.png
new file mode 100644
index 0000000000..7a6654eb27
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV003.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV004.png b/macros/latex/contrib/isosafety/images/ISO-CV004.png
new file mode 100644
index 0000000000..8934b0aa4e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV004.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV009.png b/macros/latex/contrib/isosafety/images/ISO-CV009.png
new file mode 100644
index 0000000000..f3001d6410
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV009.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV010.png b/macros/latex/contrib/isosafety/images/ISO-CV010.png
new file mode 100644
index 0000000000..46bc76dec4
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV010.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV011.png b/macros/latex/contrib/isosafety/images/ISO-CV011.png
new file mode 100644
index 0000000000..18716d14ca
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV011.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV012.png b/macros/latex/contrib/isosafety/images/ISO-CV012.png
new file mode 100644
index 0000000000..ebf43111a2
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV012.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV013.png b/macros/latex/contrib/isosafety/images/ISO-CV013.png
new file mode 100644
index 0000000000..69e7fdb649
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV013.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV027.png b/macros/latex/contrib/isosafety/images/ISO-CV027.png
new file mode 100644
index 0000000000..49bedd3edf
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV027.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV028.png b/macros/latex/contrib/isosafety/images/ISO-CV028.png
new file mode 100644
index 0000000000..f454e4fbee
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV028.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV029.png b/macros/latex/contrib/isosafety/images/ISO-CV029.png
new file mode 100644
index 0000000000..8ad6a62f8e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV029.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV064.png b/macros/latex/contrib/isosafety/images/ISO-CV064.png
new file mode 100644
index 0000000000..18c8243d2d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV064.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-CV067.png b/macros/latex/contrib/isosafety/images/ISO-CV067.png
new file mode 100644
index 0000000000..a6e0a4ceb5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-CV067.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E001.png b/macros/latex/contrib/isosafety/images/ISO-E001.png
new file mode 100644
index 0000000000..b5c45df954
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E001.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E002.png b/macros/latex/contrib/isosafety/images/ISO-E002.png
new file mode 100644
index 0000000000..f12188d46c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E002.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E003.png b/macros/latex/contrib/isosafety/images/ISO-E003.png
new file mode 100644
index 0000000000..b48952818d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E003.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E004.png b/macros/latex/contrib/isosafety/images/ISO-E004.png
new file mode 100644
index 0000000000..2051632145
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E004.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E007.png b/macros/latex/contrib/isosafety/images/ISO-E007.png
new file mode 100644
index 0000000000..a05df10c88
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E007.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E008.png b/macros/latex/contrib/isosafety/images/ISO-E008.png
new file mode 100644
index 0000000000..d68ce41750
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E008.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E009.png b/macros/latex/contrib/isosafety/images/ISO-E009.png
new file mode 100644
index 0000000000..0f416aadc5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E009.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E010.png b/macros/latex/contrib/isosafety/images/ISO-E010.png
new file mode 100644
index 0000000000..4551fc06c3
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E010.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E011.png b/macros/latex/contrib/isosafety/images/ISO-E011.png
new file mode 100644
index 0000000000..90bc01caf5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E011.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E012.png b/macros/latex/contrib/isosafety/images/ISO-E012.png
new file mode 100644
index 0000000000..ddae8591f0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E012.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E013.png b/macros/latex/contrib/isosafety/images/ISO-E013.png
new file mode 100644
index 0000000000..eb6b7b0799
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E013.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E014.png b/macros/latex/contrib/isosafety/images/ISO-E014.png
new file mode 100644
index 0000000000..370ba47518
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E014.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E015.png b/macros/latex/contrib/isosafety/images/ISO-E015.png
new file mode 100644
index 0000000000..4b8084dc8e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E015.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E016.png b/macros/latex/contrib/isosafety/images/ISO-E016.png
new file mode 100644
index 0000000000..8e41bdc0d4
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E016.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E017.png b/macros/latex/contrib/isosafety/images/ISO-E017.png
new file mode 100644
index 0000000000..1459c49030
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E017.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E018.png b/macros/latex/contrib/isosafety/images/ISO-E018.png
new file mode 100644
index 0000000000..18519c6738
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E018.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E019.png b/macros/latex/contrib/isosafety/images/ISO-E019.png
new file mode 100644
index 0000000000..4c975b2bf5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E019.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E020.png b/macros/latex/contrib/isosafety/images/ISO-E020.png
new file mode 100644
index 0000000000..70e1dc2f7e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E020.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E021.png b/macros/latex/contrib/isosafety/images/ISO-E021.png
new file mode 100644
index 0000000000..039177dcfe
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E021.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E022.png b/macros/latex/contrib/isosafety/images/ISO-E022.png
new file mode 100644
index 0000000000..067acd6f9d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E022.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E023.png b/macros/latex/contrib/isosafety/images/ISO-E023.png
new file mode 100644
index 0000000000..ec0cd0c9ab
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E023.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E024.png b/macros/latex/contrib/isosafety/images/ISO-E024.png
new file mode 100644
index 0000000000..40d4cc7ebf
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E024.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E025.png b/macros/latex/contrib/isosafety/images/ISO-E025.png
new file mode 100644
index 0000000000..87c923bf77
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E025.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E026.png b/macros/latex/contrib/isosafety/images/ISO-E026.png
new file mode 100644
index 0000000000..8cba1cbf1f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E026.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E027.png b/macros/latex/contrib/isosafety/images/ISO-E027.png
new file mode 100644
index 0000000000..0ab274282d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E027.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E028.png b/macros/latex/contrib/isosafety/images/ISO-E028.png
new file mode 100644
index 0000000000..3942bd71c3
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E028.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E029.png b/macros/latex/contrib/isosafety/images/ISO-E029.png
new file mode 100644
index 0000000000..c8fd23e6b1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E029.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E030.png b/macros/latex/contrib/isosafety/images/ISO-E030.png
new file mode 100644
index 0000000000..e6cde9baa5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E030.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E031.png b/macros/latex/contrib/isosafety/images/ISO-E031.png
new file mode 100644
index 0000000000..efe8b681fa
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E031.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E032.png b/macros/latex/contrib/isosafety/images/ISO-E032.png
new file mode 100644
index 0000000000..92845dee34
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E032.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E033.png b/macros/latex/contrib/isosafety/images/ISO-E033.png
new file mode 100644
index 0000000000..1804ae4dad
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E033.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E034.png b/macros/latex/contrib/isosafety/images/ISO-E034.png
new file mode 100644
index 0000000000..ea041fb24c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E034.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E035.png b/macros/latex/contrib/isosafety/images/ISO-E035.png
new file mode 100644
index 0000000000..58bba0f0e1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E035.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E036.png b/macros/latex/contrib/isosafety/images/ISO-E036.png
new file mode 100644
index 0000000000..f142c15852
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E036.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E037.png b/macros/latex/contrib/isosafety/images/ISO-E037.png
new file mode 100644
index 0000000000..65a25d7330
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E037.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E038.png b/macros/latex/contrib/isosafety/images/ISO-E038.png
new file mode 100644
index 0000000000..d1e7264b00
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E038.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E039.png b/macros/latex/contrib/isosafety/images/ISO-E039.png
new file mode 100644
index 0000000000..e9f6e2bd55
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E039.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E040.png b/macros/latex/contrib/isosafety/images/ISO-E040.png
new file mode 100644
index 0000000000..05743403fc
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E040.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E041.png b/macros/latex/contrib/isosafety/images/ISO-E041.png
new file mode 100644
index 0000000000..55f0327f6f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E041.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E042.png b/macros/latex/contrib/isosafety/images/ISO-E042.png
new file mode 100644
index 0000000000..2d0dec213f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E042.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E043.png b/macros/latex/contrib/isosafety/images/ISO-E043.png
new file mode 100644
index 0000000000..081dd9165d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E043.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E044.png b/macros/latex/contrib/isosafety/images/ISO-E044.png
new file mode 100644
index 0000000000..df721c0938
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E044.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E045.png b/macros/latex/contrib/isosafety/images/ISO-E045.png
new file mode 100644
index 0000000000..63851dd324
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E045.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E046.png b/macros/latex/contrib/isosafety/images/ISO-E046.png
new file mode 100644
index 0000000000..71df53c03c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E046.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E047.png b/macros/latex/contrib/isosafety/images/ISO-E047.png
new file mode 100644
index 0000000000..3e6854b34c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E047.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E048.png b/macros/latex/contrib/isosafety/images/ISO-E048.png
new file mode 100644
index 0000000000..46c1efb598
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E048.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E049.png b/macros/latex/contrib/isosafety/images/ISO-E049.png
new file mode 100644
index 0000000000..e6de2cbea0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E049.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E050.png b/macros/latex/contrib/isosafety/images/ISO-E050.png
new file mode 100644
index 0000000000..758667dc30
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E050.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E051.png b/macros/latex/contrib/isosafety/images/ISO-E051.png
new file mode 100644
index 0000000000..8700e570dd
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E051.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E052.png b/macros/latex/contrib/isosafety/images/ISO-E052.png
new file mode 100644
index 0000000000..49c6ea4f04
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E052.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E053.png b/macros/latex/contrib/isosafety/images/ISO-E053.png
new file mode 100644
index 0000000000..6cc6e4cb4c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E053.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E054.png b/macros/latex/contrib/isosafety/images/ISO-E054.png
new file mode 100644
index 0000000000..6c72df2919
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E054.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E055.png b/macros/latex/contrib/isosafety/images/ISO-E055.png
new file mode 100644
index 0000000000..e7fbb181a5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E055.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E056.png b/macros/latex/contrib/isosafety/images/ISO-E056.png
new file mode 100644
index 0000000000..04693cd738
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E056.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E057.png b/macros/latex/contrib/isosafety/images/ISO-E057.png
new file mode 100644
index 0000000000..5cb2cb157f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E057.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E058.png b/macros/latex/contrib/isosafety/images/ISO-E058.png
new file mode 100644
index 0000000000..20a2b18f95
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E058.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E059.png b/macros/latex/contrib/isosafety/images/ISO-E059.png
new file mode 100644
index 0000000000..472483129f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E059.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E060.png b/macros/latex/contrib/isosafety/images/ISO-E060.png
new file mode 100644
index 0000000000..e046a0222f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E060.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E061.png b/macros/latex/contrib/isosafety/images/ISO-E061.png
new file mode 100644
index 0000000000..3223a5cd49
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E061.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E062.png b/macros/latex/contrib/isosafety/images/ISO-E062.png
new file mode 100644
index 0000000000..3125c4b6f0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E062.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E063.png b/macros/latex/contrib/isosafety/images/ISO-E063.png
new file mode 100644
index 0000000000..e80755335b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E063.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E064.png b/macros/latex/contrib/isosafety/images/ISO-E064.png
new file mode 100644
index 0000000000..de8c8a720c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E064.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E065.png b/macros/latex/contrib/isosafety/images/ISO-E065.png
new file mode 100644
index 0000000000..7be5a78cb5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E065.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E067.png b/macros/latex/contrib/isosafety/images/ISO-E067.png
new file mode 100644
index 0000000000..6459f6314d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E067.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E068.png b/macros/latex/contrib/isosafety/images/ISO-E068.png
new file mode 100644
index 0000000000..624eea013c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E068.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E069.png b/macros/latex/contrib/isosafety/images/ISO-E069.png
new file mode 100644
index 0000000000..045609abe3
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E069.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-E070.png b/macros/latex/contrib/isosafety/images/ISO-E070.png
new file mode 100644
index 0000000000..f2c9bb37f2
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-E070.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F001.png b/macros/latex/contrib/isosafety/images/ISO-F001.png
new file mode 100644
index 0000000000..810f94c5bb
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F001.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F002.png b/macros/latex/contrib/isosafety/images/ISO-F002.png
new file mode 100644
index 0000000000..3b945029a2
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F002.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F003.png b/macros/latex/contrib/isosafety/images/ISO-F003.png
new file mode 100644
index 0000000000..48b9bd6f94
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F003.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F004.png b/macros/latex/contrib/isosafety/images/ISO-F004.png
new file mode 100644
index 0000000000..9f428b1327
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F004.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F005.png b/macros/latex/contrib/isosafety/images/ISO-F005.png
new file mode 100644
index 0000000000..a75a6ea898
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F005.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F006.png b/macros/latex/contrib/isosafety/images/ISO-F006.png
new file mode 100644
index 0000000000..68d7b42813
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F006.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F007.png b/macros/latex/contrib/isosafety/images/ISO-F007.png
new file mode 100644
index 0000000000..5fa6651556
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F007.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F008.png b/macros/latex/contrib/isosafety/images/ISO-F008.png
new file mode 100644
index 0000000000..72bb1097fb
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F008.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F009.png b/macros/latex/contrib/isosafety/images/ISO-F009.png
new file mode 100644
index 0000000000..9c192624aa
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F009.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F010.png b/macros/latex/contrib/isosafety/images/ISO-F010.png
new file mode 100644
index 0000000000..5871def6ae
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F010.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F011.png b/macros/latex/contrib/isosafety/images/ISO-F011.png
new file mode 100644
index 0000000000..e68616839f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F011.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F012.png b/macros/latex/contrib/isosafety/images/ISO-F012.png
new file mode 100644
index 0000000000..0ff3c35fcd
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F012.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F013.png b/macros/latex/contrib/isosafety/images/ISO-F013.png
new file mode 100644
index 0000000000..eeea27f6f1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F013.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F014.png b/macros/latex/contrib/isosafety/images/ISO-F014.png
new file mode 100644
index 0000000000..b37b41e038
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F014.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F015.png b/macros/latex/contrib/isosafety/images/ISO-F015.png
new file mode 100644
index 0000000000..d5c94be3f2
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F015.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F016.png b/macros/latex/contrib/isosafety/images/ISO-F016.png
new file mode 100644
index 0000000000..f34ff095f0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F016.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F017.png b/macros/latex/contrib/isosafety/images/ISO-F017.png
new file mode 100644
index 0000000000..8089216ecd
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F017.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F018.png b/macros/latex/contrib/isosafety/images/ISO-F018.png
new file mode 100644
index 0000000000..8c72cd7839
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F018.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-F019.png b/macros/latex/contrib/isosafety/images/ISO-F019.png
new file mode 100644
index 0000000000..709d32635d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-F019.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M001.png b/macros/latex/contrib/isosafety/images/ISO-M001.png
new file mode 100644
index 0000000000..2789c0693e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M001.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M002.png b/macros/latex/contrib/isosafety/images/ISO-M002.png
new file mode 100644
index 0000000000..19ece0e04f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M002.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M003.png b/macros/latex/contrib/isosafety/images/ISO-M003.png
new file mode 100644
index 0000000000..c2d7627f1e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M003.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M004.png b/macros/latex/contrib/isosafety/images/ISO-M004.png
new file mode 100644
index 0000000000..5d8e8b649d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M004.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M005.png b/macros/latex/contrib/isosafety/images/ISO-M005.png
new file mode 100644
index 0000000000..6f397035e9
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M005.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M006.png b/macros/latex/contrib/isosafety/images/ISO-M006.png
new file mode 100644
index 0000000000..cf3546be05
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M006.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M007.png b/macros/latex/contrib/isosafety/images/ISO-M007.png
new file mode 100644
index 0000000000..7ee28fa608
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M007.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M008.png b/macros/latex/contrib/isosafety/images/ISO-M008.png
new file mode 100644
index 0000000000..af41158b6d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M008.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M009.png b/macros/latex/contrib/isosafety/images/ISO-M009.png
new file mode 100644
index 0000000000..f17811e9ae
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M009.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M010.png b/macros/latex/contrib/isosafety/images/ISO-M010.png
new file mode 100644
index 0000000000..95b9045378
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M010.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M011.png b/macros/latex/contrib/isosafety/images/ISO-M011.png
new file mode 100644
index 0000000000..dd92873028
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M011.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M012.png b/macros/latex/contrib/isosafety/images/ISO-M012.png
new file mode 100644
index 0000000000..e1053c2f5b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M012.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M013.png b/macros/latex/contrib/isosafety/images/ISO-M013.png
new file mode 100644
index 0000000000..e631d9e6e9
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M013.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M014.png b/macros/latex/contrib/isosafety/images/ISO-M014.png
new file mode 100644
index 0000000000..9c4d6ac15e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M014.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M015.png b/macros/latex/contrib/isosafety/images/ISO-M015.png
new file mode 100644
index 0000000000..ac20eea60c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M015.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M016.png b/macros/latex/contrib/isosafety/images/ISO-M016.png
new file mode 100644
index 0000000000..3ec1701029
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M016.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M017.png b/macros/latex/contrib/isosafety/images/ISO-M017.png
new file mode 100644
index 0000000000..0db21b468f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M017.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M018.png b/macros/latex/contrib/isosafety/images/ISO-M018.png
new file mode 100644
index 0000000000..d5749e609f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M018.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M019.png b/macros/latex/contrib/isosafety/images/ISO-M019.png
new file mode 100644
index 0000000000..1c3530ec5b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M019.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M020.png b/macros/latex/contrib/isosafety/images/ISO-M020.png
new file mode 100644
index 0000000000..6efc075342
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M020.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M021.png b/macros/latex/contrib/isosafety/images/ISO-M021.png
new file mode 100644
index 0000000000..064ed1a4d7
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M021.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M022.png b/macros/latex/contrib/isosafety/images/ISO-M022.png
new file mode 100644
index 0000000000..50e9f2aefa
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M022.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M023.png b/macros/latex/contrib/isosafety/images/ISO-M023.png
new file mode 100644
index 0000000000..948d3015cb
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M023.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M024.png b/macros/latex/contrib/isosafety/images/ISO-M024.png
new file mode 100644
index 0000000000..250483a9b8
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M024.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M025.png b/macros/latex/contrib/isosafety/images/ISO-M025.png
new file mode 100644
index 0000000000..07537735d1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M025.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M026.png b/macros/latex/contrib/isosafety/images/ISO-M026.png
new file mode 100644
index 0000000000..bef7cd0136
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M026.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M027.png b/macros/latex/contrib/isosafety/images/ISO-M027.png
new file mode 100644
index 0000000000..1c9c7060ab
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M027.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M028.png b/macros/latex/contrib/isosafety/images/ISO-M028.png
new file mode 100644
index 0000000000..08cd7762d6
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M028.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M029.png b/macros/latex/contrib/isosafety/images/ISO-M029.png
new file mode 100644
index 0000000000..e3fef9b4d1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M029.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M030.png b/macros/latex/contrib/isosafety/images/ISO-M030.png
new file mode 100644
index 0000000000..e14a9eb391
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M030.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M031.png b/macros/latex/contrib/isosafety/images/ISO-M031.png
new file mode 100644
index 0000000000..65002f4585
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M031.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M032.png b/macros/latex/contrib/isosafety/images/ISO-M032.png
new file mode 100644
index 0000000000..3e7365ffb5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M032.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M033.png b/macros/latex/contrib/isosafety/images/ISO-M033.png
new file mode 100644
index 0000000000..9502007080
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M033.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M034.png b/macros/latex/contrib/isosafety/images/ISO-M034.png
new file mode 100644
index 0000000000..c4ee60f6d6
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M034.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M035.png b/macros/latex/contrib/isosafety/images/ISO-M035.png
new file mode 100644
index 0000000000..fe174acff0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M035.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M036.png b/macros/latex/contrib/isosafety/images/ISO-M036.png
new file mode 100644
index 0000000000..511391a33d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M036.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M037.png b/macros/latex/contrib/isosafety/images/ISO-M037.png
new file mode 100644
index 0000000000..0fce26f8b1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M037.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M038.png b/macros/latex/contrib/isosafety/images/ISO-M038.png
new file mode 100644
index 0000000000..f3f4be1581
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M038.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M039.png b/macros/latex/contrib/isosafety/images/ISO-M039.png
new file mode 100644
index 0000000000..cc4ca3d3f3
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M039.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M040.png b/macros/latex/contrib/isosafety/images/ISO-M040.png
new file mode 100644
index 0000000000..1c68887a86
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M040.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M041.png b/macros/latex/contrib/isosafety/images/ISO-M041.png
new file mode 100644
index 0000000000..9c13ca060f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M041.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M042.png b/macros/latex/contrib/isosafety/images/ISO-M042.png
new file mode 100644
index 0000000000..4d767610bb
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M042.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M043.png b/macros/latex/contrib/isosafety/images/ISO-M043.png
new file mode 100644
index 0000000000..cdef08b738
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M043.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M044.png b/macros/latex/contrib/isosafety/images/ISO-M044.png
new file mode 100644
index 0000000000..f3a509d3db
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M044.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M045.png b/macros/latex/contrib/isosafety/images/ISO-M045.png
new file mode 100644
index 0000000000..0aca9811be
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M045.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M046.png b/macros/latex/contrib/isosafety/images/ISO-M046.png
new file mode 100644
index 0000000000..ec64f37d97
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M046.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M047.png b/macros/latex/contrib/isosafety/images/ISO-M047.png
new file mode 100644
index 0000000000..cb25f8b1b1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M047.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M048.png b/macros/latex/contrib/isosafety/images/ISO-M048.png
new file mode 100644
index 0000000000..4c11307e50
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M048.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M049.png b/macros/latex/contrib/isosafety/images/ISO-M049.png
new file mode 100644
index 0000000000..303eba92ed
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M049.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M050.png b/macros/latex/contrib/isosafety/images/ISO-M050.png
new file mode 100644
index 0000000000..d86359fd64
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M050.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M051.png b/macros/latex/contrib/isosafety/images/ISO-M051.png
new file mode 100644
index 0000000000..72a3bbe407
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M051.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M052.png b/macros/latex/contrib/isosafety/images/ISO-M052.png
new file mode 100644
index 0000000000..2a8057ccd1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M052.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M053.png b/macros/latex/contrib/isosafety/images/ISO-M053.png
new file mode 100644
index 0000000000..0ea6645e60
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M053.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M054.png b/macros/latex/contrib/isosafety/images/ISO-M054.png
new file mode 100644
index 0000000000..144fa656c2
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M054.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M055.png b/macros/latex/contrib/isosafety/images/ISO-M055.png
new file mode 100644
index 0000000000..be76007a8a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M055.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M056.png b/macros/latex/contrib/isosafety/images/ISO-M056.png
new file mode 100644
index 0000000000..262c8d27cf
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M056.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M057.png b/macros/latex/contrib/isosafety/images/ISO-M057.png
new file mode 100644
index 0000000000..e2ce2c2795
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M057.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M058.png b/macros/latex/contrib/isosafety/images/ISO-M058.png
new file mode 100644
index 0000000000..c974ac9b8d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M058.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M059.png b/macros/latex/contrib/isosafety/images/ISO-M059.png
new file mode 100644
index 0000000000..9d9310ec3e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M059.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-M060.png b/macros/latex/contrib/isosafety/images/ISO-M060.png
new file mode 100644
index 0000000000..96cc4d909e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-M060.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P001.png b/macros/latex/contrib/isosafety/images/ISO-P001.png
new file mode 100644
index 0000000000..3fe4d77f1d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P001.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P002.png b/macros/latex/contrib/isosafety/images/ISO-P002.png
new file mode 100644
index 0000000000..0defefbd16
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P002.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P003.png b/macros/latex/contrib/isosafety/images/ISO-P003.png
new file mode 100644
index 0000000000..737a70db44
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P003.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P004.png b/macros/latex/contrib/isosafety/images/ISO-P004.png
new file mode 100644
index 0000000000..3b66e1318a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P004.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P005.png b/macros/latex/contrib/isosafety/images/ISO-P005.png
new file mode 100644
index 0000000000..bed4aa5646
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P005.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P006.png b/macros/latex/contrib/isosafety/images/ISO-P006.png
new file mode 100644
index 0000000000..acc80d017e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P006.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P007.png b/macros/latex/contrib/isosafety/images/ISO-P007.png
new file mode 100644
index 0000000000..c732046250
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P007.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P008.png b/macros/latex/contrib/isosafety/images/ISO-P008.png
new file mode 100644
index 0000000000..f6cf615b6b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P008.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P009.png b/macros/latex/contrib/isosafety/images/ISO-P009.png
new file mode 100644
index 0000000000..cd74c14d60
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P009.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P010.png b/macros/latex/contrib/isosafety/images/ISO-P010.png
new file mode 100644
index 0000000000..6a758ae27d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P010.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P011.png b/macros/latex/contrib/isosafety/images/ISO-P011.png
new file mode 100644
index 0000000000..993599414a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P011.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P012.png b/macros/latex/contrib/isosafety/images/ISO-P012.png
new file mode 100644
index 0000000000..ec05406b49
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P012.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P013.png b/macros/latex/contrib/isosafety/images/ISO-P013.png
new file mode 100644
index 0000000000..4d279237af
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P013.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P014.png b/macros/latex/contrib/isosafety/images/ISO-P014.png
new file mode 100644
index 0000000000..52990c3e95
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P014.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P015.png b/macros/latex/contrib/isosafety/images/ISO-P015.png
new file mode 100644
index 0000000000..9e279d35f1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P015.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P016.png b/macros/latex/contrib/isosafety/images/ISO-P016.png
new file mode 100644
index 0000000000..50dfa66af8
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P016.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P017.png b/macros/latex/contrib/isosafety/images/ISO-P017.png
new file mode 100644
index 0000000000..1821d96651
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P017.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P018.png b/macros/latex/contrib/isosafety/images/ISO-P018.png
new file mode 100644
index 0000000000..c81d5f2a14
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P018.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P019.png b/macros/latex/contrib/isosafety/images/ISO-P019.png
new file mode 100644
index 0000000000..13745df068
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P019.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P020.png b/macros/latex/contrib/isosafety/images/ISO-P020.png
new file mode 100644
index 0000000000..939391dac8
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P020.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P021.png b/macros/latex/contrib/isosafety/images/ISO-P021.png
new file mode 100644
index 0000000000..7693e3778e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P021.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P022.png b/macros/latex/contrib/isosafety/images/ISO-P022.png
new file mode 100644
index 0000000000..208b7da0ff
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P022.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P023.png b/macros/latex/contrib/isosafety/images/ISO-P023.png
new file mode 100644
index 0000000000..1cd6e5f31e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P023.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P024.png b/macros/latex/contrib/isosafety/images/ISO-P024.png
new file mode 100644
index 0000000000..d31fd16266
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P024.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P025.png b/macros/latex/contrib/isosafety/images/ISO-P025.png
new file mode 100644
index 0000000000..34e703da3e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P025.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P026.png b/macros/latex/contrib/isosafety/images/ISO-P026.png
new file mode 100644
index 0000000000..f2a6f021ca
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P026.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P027.png b/macros/latex/contrib/isosafety/images/ISO-P027.png
new file mode 100644
index 0000000000..66a94aa792
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P027.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P028.png b/macros/latex/contrib/isosafety/images/ISO-P028.png
new file mode 100644
index 0000000000..c658f4132e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P028.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P029.png b/macros/latex/contrib/isosafety/images/ISO-P029.png
new file mode 100644
index 0000000000..417e20a4de
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P029.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P030.png b/macros/latex/contrib/isosafety/images/ISO-P030.png
new file mode 100644
index 0000000000..f55434bfd6
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P030.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P031.png b/macros/latex/contrib/isosafety/images/ISO-P031.png
new file mode 100644
index 0000000000..862a48b5fc
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P031.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P032.png b/macros/latex/contrib/isosafety/images/ISO-P032.png
new file mode 100644
index 0000000000..34255be1c1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P032.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P033.png b/macros/latex/contrib/isosafety/images/ISO-P033.png
new file mode 100644
index 0000000000..35124e6c1b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P033.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P034.png b/macros/latex/contrib/isosafety/images/ISO-P034.png
new file mode 100644
index 0000000000..9488fb4ee4
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P034.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P035.png b/macros/latex/contrib/isosafety/images/ISO-P035.png
new file mode 100644
index 0000000000..8932997096
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P035.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P036.png b/macros/latex/contrib/isosafety/images/ISO-P036.png
new file mode 100644
index 0000000000..1fb390ebc6
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P036.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P037.png b/macros/latex/contrib/isosafety/images/ISO-P037.png
new file mode 100644
index 0000000000..4cda3f058d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P037.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P038.png b/macros/latex/contrib/isosafety/images/ISO-P038.png
new file mode 100644
index 0000000000..4b555a54bc
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P038.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P039.png b/macros/latex/contrib/isosafety/images/ISO-P039.png
new file mode 100644
index 0000000000..d9368dfd9b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P039.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P040.png b/macros/latex/contrib/isosafety/images/ISO-P040.png
new file mode 100644
index 0000000000..932564653e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P040.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P041.png b/macros/latex/contrib/isosafety/images/ISO-P041.png
new file mode 100644
index 0000000000..7076ba9628
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P041.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P042.png b/macros/latex/contrib/isosafety/images/ISO-P042.png
new file mode 100644
index 0000000000..41659dbdcf
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P042.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P043.png b/macros/latex/contrib/isosafety/images/ISO-P043.png
new file mode 100644
index 0000000000..b443a9e0e5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P043.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P044.png b/macros/latex/contrib/isosafety/images/ISO-P044.png
new file mode 100644
index 0000000000..674a446ed0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P044.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P045.png b/macros/latex/contrib/isosafety/images/ISO-P045.png
new file mode 100644
index 0000000000..12bad9a4d5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P045.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P046.png b/macros/latex/contrib/isosafety/images/ISO-P046.png
new file mode 100644
index 0000000000..9feaafd19b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P046.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P047.png b/macros/latex/contrib/isosafety/images/ISO-P047.png
new file mode 100644
index 0000000000..b3af2f327c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P047.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P048.png b/macros/latex/contrib/isosafety/images/ISO-P048.png
new file mode 100644
index 0000000000..e3b60aaffd
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P048.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P049.png b/macros/latex/contrib/isosafety/images/ISO-P049.png
new file mode 100644
index 0000000000..69a452f92f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P049.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P050.png b/macros/latex/contrib/isosafety/images/ISO-P050.png
new file mode 100644
index 0000000000..3cfceb20b3
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P050.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P051.png b/macros/latex/contrib/isosafety/images/ISO-P051.png
new file mode 100644
index 0000000000..79a89ac55b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P051.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P052.png b/macros/latex/contrib/isosafety/images/ISO-P052.png
new file mode 100644
index 0000000000..2c3f77aade
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P052.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P053.png b/macros/latex/contrib/isosafety/images/ISO-P053.png
new file mode 100644
index 0000000000..7ad25a3b41
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P053.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P054.png b/macros/latex/contrib/isosafety/images/ISO-P054.png
new file mode 100644
index 0000000000..93470b9244
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P054.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P055.png b/macros/latex/contrib/isosafety/images/ISO-P055.png
new file mode 100644
index 0000000000..8efffc543c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P055.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P056.png b/macros/latex/contrib/isosafety/images/ISO-P056.png
new file mode 100644
index 0000000000..d3186f25d3
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P056.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P057.png b/macros/latex/contrib/isosafety/images/ISO-P057.png
new file mode 100644
index 0000000000..c340e4c3b5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P057.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P058.png b/macros/latex/contrib/isosafety/images/ISO-P058.png
new file mode 100644
index 0000000000..6d285cb73d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P058.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P059.png b/macros/latex/contrib/isosafety/images/ISO-P059.png
new file mode 100644
index 0000000000..88aa78b745
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P059.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P060.png b/macros/latex/contrib/isosafety/images/ISO-P060.png
new file mode 100644
index 0000000000..76443325f1
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P060.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P061.png b/macros/latex/contrib/isosafety/images/ISO-P061.png
new file mode 100644
index 0000000000..ce1212819a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P061.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P062.png b/macros/latex/contrib/isosafety/images/ISO-P062.png
new file mode 100644
index 0000000000..dacff3c5d5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P062.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P063.png b/macros/latex/contrib/isosafety/images/ISO-P063.png
new file mode 100644
index 0000000000..92967cadac
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P063.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P064.png b/macros/latex/contrib/isosafety/images/ISO-P064.png
new file mode 100644
index 0000000000..0ff0348c22
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P064.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P065.png b/macros/latex/contrib/isosafety/images/ISO-P065.png
new file mode 100644
index 0000000000..c501c3bfd7
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P065.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P066.png b/macros/latex/contrib/isosafety/images/ISO-P066.png
new file mode 100644
index 0000000000..41bfe3743e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P066.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P067.png b/macros/latex/contrib/isosafety/images/ISO-P067.png
new file mode 100644
index 0000000000..59defb42eb
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P067.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P068.png b/macros/latex/contrib/isosafety/images/ISO-P068.png
new file mode 100644
index 0000000000..5824733a2f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P068.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P069.png b/macros/latex/contrib/isosafety/images/ISO-P069.png
new file mode 100644
index 0000000000..40e3a64c01
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P069.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P070.png b/macros/latex/contrib/isosafety/images/ISO-P070.png
new file mode 100644
index 0000000000..a866d7fd3f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P070.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P071.png b/macros/latex/contrib/isosafety/images/ISO-P071.png
new file mode 100644
index 0000000000..7f5925154c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P071.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P072.png b/macros/latex/contrib/isosafety/images/ISO-P072.png
new file mode 100644
index 0000000000..b909993c6a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P072.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P073.png b/macros/latex/contrib/isosafety/images/ISO-P073.png
new file mode 100644
index 0000000000..d94b36a9dc
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P073.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-P074.png b/macros/latex/contrib/isosafety/images/ISO-P074.png
new file mode 100644
index 0000000000..1e5c61ed3d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-P074.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W001.png b/macros/latex/contrib/isosafety/images/ISO-W001.png
new file mode 100644
index 0000000000..1ed9c12496
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W001.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W002.png b/macros/latex/contrib/isosafety/images/ISO-W002.png
new file mode 100644
index 0000000000..72d6efa1a7
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W002.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W003.png b/macros/latex/contrib/isosafety/images/ISO-W003.png
new file mode 100644
index 0000000000..e4669ff596
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W003.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W004.png b/macros/latex/contrib/isosafety/images/ISO-W004.png
new file mode 100644
index 0000000000..679539e45c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W004.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W005.png b/macros/latex/contrib/isosafety/images/ISO-W005.png
new file mode 100644
index 0000000000..c8c0826e08
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W005.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W006.png b/macros/latex/contrib/isosafety/images/ISO-W006.png
new file mode 100644
index 0000000000..e087f5b07c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W006.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W007.png b/macros/latex/contrib/isosafety/images/ISO-W007.png
new file mode 100644
index 0000000000..877a1935de
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W007.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W008.png b/macros/latex/contrib/isosafety/images/ISO-W008.png
new file mode 100644
index 0000000000..b28aa352e9
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W008.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W009.png b/macros/latex/contrib/isosafety/images/ISO-W009.png
new file mode 100644
index 0000000000..66ad058327
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W009.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W010.png b/macros/latex/contrib/isosafety/images/ISO-W010.png
new file mode 100644
index 0000000000..01d83554e5
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W010.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W011.png b/macros/latex/contrib/isosafety/images/ISO-W011.png
new file mode 100644
index 0000000000..1521128a6d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W011.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W012.png b/macros/latex/contrib/isosafety/images/ISO-W012.png
new file mode 100644
index 0000000000..342a47ded0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W012.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W013.png b/macros/latex/contrib/isosafety/images/ISO-W013.png
new file mode 100644
index 0000000000..acca3c326f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W013.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W014.png b/macros/latex/contrib/isosafety/images/ISO-W014.png
new file mode 100644
index 0000000000..e4b2a35b55
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W014.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W015.png b/macros/latex/contrib/isosafety/images/ISO-W015.png
new file mode 100644
index 0000000000..550a5df6a2
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W015.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W016.png b/macros/latex/contrib/isosafety/images/ISO-W016.png
new file mode 100644
index 0000000000..01eaccfc4b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W016.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W017.png b/macros/latex/contrib/isosafety/images/ISO-W017.png
new file mode 100644
index 0000000000..dc427bfc37
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W017.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W018.png b/macros/latex/contrib/isosafety/images/ISO-W018.png
new file mode 100644
index 0000000000..ca1468dd8f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W018.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W019.png b/macros/latex/contrib/isosafety/images/ISO-W019.png
new file mode 100644
index 0000000000..c5087fa57c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W019.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W020.png b/macros/latex/contrib/isosafety/images/ISO-W020.png
new file mode 100644
index 0000000000..07dfefa918
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W020.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W021.png b/macros/latex/contrib/isosafety/images/ISO-W021.png
new file mode 100644
index 0000000000..8f6847a06e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W021.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W022.png b/macros/latex/contrib/isosafety/images/ISO-W022.png
new file mode 100644
index 0000000000..875b0cde0b
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W022.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W023.png b/macros/latex/contrib/isosafety/images/ISO-W023.png
new file mode 100644
index 0000000000..7dc9fba302
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W023.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W024.png b/macros/latex/contrib/isosafety/images/ISO-W024.png
new file mode 100644
index 0000000000..b0a7cba9a0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W024.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W025.png b/macros/latex/contrib/isosafety/images/ISO-W025.png
new file mode 100644
index 0000000000..084bfc0cd4
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W025.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W026.png b/macros/latex/contrib/isosafety/images/ISO-W026.png
new file mode 100644
index 0000000000..eba7c7941a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W026.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W027.png b/macros/latex/contrib/isosafety/images/ISO-W027.png
new file mode 100644
index 0000000000..4f0f402b9a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W027.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W028.png b/macros/latex/contrib/isosafety/images/ISO-W028.png
new file mode 100644
index 0000000000..bceec9df85
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W028.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W029.png b/macros/latex/contrib/isosafety/images/ISO-W029.png
new file mode 100644
index 0000000000..8f9a877c02
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W029.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W030.png b/macros/latex/contrib/isosafety/images/ISO-W030.png
new file mode 100644
index 0000000000..cdf39d29b0
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W030.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W031.png b/macros/latex/contrib/isosafety/images/ISO-W031.png
new file mode 100644
index 0000000000..70f1761d1d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W031.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W032.png b/macros/latex/contrib/isosafety/images/ISO-W032.png
new file mode 100644
index 0000000000..f166aa9f9c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W032.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W033.png b/macros/latex/contrib/isosafety/images/ISO-W033.png
new file mode 100644
index 0000000000..6f32b9709c
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W033.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W034.png b/macros/latex/contrib/isosafety/images/ISO-W034.png
new file mode 100644
index 0000000000..e7a6073d0d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W034.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W035.png b/macros/latex/contrib/isosafety/images/ISO-W035.png
new file mode 100644
index 0000000000..c3f790dfdc
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W035.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W036.png b/macros/latex/contrib/isosafety/images/ISO-W036.png
new file mode 100644
index 0000000000..e503780645
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W036.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W037.png b/macros/latex/contrib/isosafety/images/ISO-W037.png
new file mode 100644
index 0000000000..d1dd451623
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W037.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W038.png b/macros/latex/contrib/isosafety/images/ISO-W038.png
new file mode 100644
index 0000000000..3f20a30eac
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W038.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W039.png b/macros/latex/contrib/isosafety/images/ISO-W039.png
new file mode 100644
index 0000000000..32e942ed37
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W039.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W040.png b/macros/latex/contrib/isosafety/images/ISO-W040.png
new file mode 100644
index 0000000000..23e4250f3e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W040.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W041.png b/macros/latex/contrib/isosafety/images/ISO-W041.png
new file mode 100644
index 0000000000..f14f2617c4
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W041.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W042.png b/macros/latex/contrib/isosafety/images/ISO-W042.png
new file mode 100644
index 0000000000..3fb7d5b2ef
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W042.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W043.png b/macros/latex/contrib/isosafety/images/ISO-W043.png
new file mode 100644
index 0000000000..7e760d4bbb
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W043.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W044.png b/macros/latex/contrib/isosafety/images/ISO-W044.png
new file mode 100644
index 0000000000..382eb64837
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W044.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W045.png b/macros/latex/contrib/isosafety/images/ISO-W045.png
new file mode 100644
index 0000000000..df0abff844
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W045.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W046.png b/macros/latex/contrib/isosafety/images/ISO-W046.png
new file mode 100644
index 0000000000..8c9e1f15eb
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W046.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W047.png b/macros/latex/contrib/isosafety/images/ISO-W047.png
new file mode 100644
index 0000000000..f35e9ba8ab
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W047.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W048.png b/macros/latex/contrib/isosafety/images/ISO-W048.png
new file mode 100644
index 0000000000..d5676bf8ba
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W048.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W049.png b/macros/latex/contrib/isosafety/images/ISO-W049.png
new file mode 100644
index 0000000000..b6c5c008e4
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W049.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W050.png b/macros/latex/contrib/isosafety/images/ISO-W050.png
new file mode 100644
index 0000000000..3b18d5395f
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W050.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W051.png b/macros/latex/contrib/isosafety/images/ISO-W051.png
new file mode 100644
index 0000000000..0036419ae7
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W051.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W052.png b/macros/latex/contrib/isosafety/images/ISO-W052.png
new file mode 100644
index 0000000000..6339d5d65d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W052.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W053.png b/macros/latex/contrib/isosafety/images/ISO-W053.png
new file mode 100644
index 0000000000..185c89d4ca
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W053.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W054.png b/macros/latex/contrib/isosafety/images/ISO-W054.png
new file mode 100644
index 0000000000..695a5ab0dd
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W054.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W055.png b/macros/latex/contrib/isosafety/images/ISO-W055.png
new file mode 100644
index 0000000000..7f2a019541
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W055.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W056.png b/macros/latex/contrib/isosafety/images/ISO-W056.png
new file mode 100644
index 0000000000..662ad8f404
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W056.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W057.png b/macros/latex/contrib/isosafety/images/ISO-W057.png
new file mode 100644
index 0000000000..bcbe69857a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W057.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W058.png b/macros/latex/contrib/isosafety/images/ISO-W058.png
new file mode 100644
index 0000000000..1d2dbb6886
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W058.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W059.png b/macros/latex/contrib/isosafety/images/ISO-W059.png
new file mode 100644
index 0000000000..72188b554d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W059.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W060.png b/macros/latex/contrib/isosafety/images/ISO-W060.png
new file mode 100644
index 0000000000..b5bb4877e7
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W060.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W061.png b/macros/latex/contrib/isosafety/images/ISO-W061.png
new file mode 100644
index 0000000000..6bafe70030
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W061.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W062.png b/macros/latex/contrib/isosafety/images/ISO-W062.png
new file mode 100644
index 0000000000..3d92585e49
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W062.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W063.png b/macros/latex/contrib/isosafety/images/ISO-W063.png
new file mode 100644
index 0000000000..f980702f70
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W063.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W064.png b/macros/latex/contrib/isosafety/images/ISO-W064.png
new file mode 100644
index 0000000000..2e6001905d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W064.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W065.png b/macros/latex/contrib/isosafety/images/ISO-W065.png
new file mode 100644
index 0000000000..a9aae46f33
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W065.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W066.png b/macros/latex/contrib/isosafety/images/ISO-W066.png
new file mode 100644
index 0000000000..1f5385252e
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W066.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W067.png b/macros/latex/contrib/isosafety/images/ISO-W067.png
new file mode 100644
index 0000000000..5d5162be0d
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W067.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W068.png b/macros/latex/contrib/isosafety/images/ISO-W068.png
new file mode 100644
index 0000000000..8f00376189
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W068.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W069.png b/macros/latex/contrib/isosafety/images/ISO-W069.png
new file mode 100644
index 0000000000..16a04884b4
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W069.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W070.png b/macros/latex/contrib/isosafety/images/ISO-W070.png
new file mode 100644
index 0000000000..99b9edebbe
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W070.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W071.png b/macros/latex/contrib/isosafety/images/ISO-W071.png
new file mode 100644
index 0000000000..af340de7ef
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W071.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W072.png b/macros/latex/contrib/isosafety/images/ISO-W072.png
new file mode 100644
index 0000000000..7e0d5b55be
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W072.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W073.png b/macros/latex/contrib/isosafety/images/ISO-W073.png
new file mode 100644
index 0000000000..d645fc9642
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W073.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W074.png b/macros/latex/contrib/isosafety/images/ISO-W074.png
new file mode 100644
index 0000000000..90fc576c05
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W074.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W075.png b/macros/latex/contrib/isosafety/images/ISO-W075.png
new file mode 100644
index 0000000000..371cf6ccd8
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W075.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W076.png b/macros/latex/contrib/isosafety/images/ISO-W076.png
new file mode 100644
index 0000000000..35aae4aa1a
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W076.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W077.png b/macros/latex/contrib/isosafety/images/ISO-W077.png
new file mode 100644
index 0000000000..0c06a6ae47
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W077.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W078.png b/macros/latex/contrib/isosafety/images/ISO-W078.png
new file mode 100644
index 0000000000..c8c3d8f4c7
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W078.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W079.png b/macros/latex/contrib/isosafety/images/ISO-W079.png
new file mode 100644
index 0000000000..123b8921fd
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W079.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/images/ISO-W080.png b/macros/latex/contrib/isosafety/images/ISO-W080.png
new file mode 100644
index 0000000000..55695703ae
--- /dev/null
+++ b/macros/latex/contrib/isosafety/images/ISO-W080.png
Binary files differ
diff --git a/macros/latex/contrib/isosafety/isosafety.dtx b/macros/latex/contrib/isosafety/isosafety.dtx
new file mode 100644
index 0000000000..d21aa05a72
--- /dev/null
+++ b/macros/latex/contrib/isosafety/isosafety.dtx
@@ -0,0 +1,135 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2023 by BenSt099
+% -------------------------------------------------------
+%
+% This file 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.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{isosafety.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+%<package>\ProvidesPackage{isosafety}
+%<*package>
+ [2023/10/22 v1.0 ISO Safety Colors And Safety Signs]
+
+\RequirePackage{graphicx}
+\RequirePackage{xcolor}
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{isosafety}[2023/10/22]
+\usepackage{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{isosafety.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+%
+% \changes{v1.0}{2023/10/22}{Initial version}
+%
+% \GetFileInfo{isosafety.sty}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+%
+% \title{The \textsf{isosafety} package\thanks{This document
+% corresponds to \textsf{isosafety}~\fileversion, dated \filedate.}}
+% \author{BenSt099 \\ \texttt{github.com/BenSt099}}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% This package provides ISO colors and ISO signs according to the ISO standards 3864 and 7010.
+% It can be useful when creating instructions for chemical or physical experiments.
+%
+% \section{Usage}
+%
+% \subsection{ISO colors}
+%
+% There are 6 colors that are also used in the signs: \vspace*{5mm}
+%
+% \begin{tabular}{cc}
+% Warning & {\color{Warning} Warning Color} \\
+% Prohibition & {\color{Prohibition} Prohibition Color} \\
+% Mandatory & {\color{Mandatory} Mandatory Color} \\
+% Rescue & {\color{Rescue} Rescue Color} \\
+% Backgrounds & {\color{Backgrounds} Backgrounds Color} \\
+% Symbol & {\color{Symbol} Symbol Color} \\
+% \end{tabular}
+%
+% \subsection{Colors - Example}
+%
+% \begin{verbatim}
+% {\color{Mandatory} Text with mandatory color}
+% \end{verbatim}
+%
+% \subsection{ISO signs}
+%
+% The signs from ISO are placed in a category, have a letter and a number
+%
+% \begin{itemize}
+% \item Safe condition - Letter E (001 - 070)
+% \item Crescent variant - CV (003, 004, 009, 010, 011, 012, 013, 027, 028, 029, 064, 067)
+% \item Fire Protection - Letter F (001 - 019)
+% \item Mandatory - Letter M (001 - 060)
+% \item Prohibition - Letter P (001 - 074)
+% \item Warning - Letter W (001 - 080)
+% \end{itemize}
+%
+% The command to access these signs has the following syntax:
+%
+% \begin{verbatim}
+% \Isosign{ISO-{Letter}{Number}.png}
+% \end{verbatim}
+%
+% \subsection{Signs - Example}
+%
+% Imagine you want to put the sign of a fire extinguisher in your document.
+% Use the following command:
+%
+% \begin{verbatim}
+% \Isosign{ISO-F001.png}
+% \end{verbatim}
+%
+% \noindent For an overview, take a look at \href{https://en.wikipedia.org/wiki/ISO_7010}{Wikipedia}
+%
+% \StopEventually{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\definecolor{Warning}{HTML}{F9A800}
+\definecolor{Prohibition}{HTML}{9B2423}
+\definecolor{Mandatory}{HTML}{005387}
+\definecolor{Rescue}{HTML}{237F52}
+\definecolor{Backgrounds}{HTML}{ECECE7}
+\definecolor{Symbol}{HTML}{2B2B2C}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\Isosign}[1]{images/ISO-#1.png}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \Finale
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/isosafety/isosafety.ins b/macros/latex/contrib/isosafety/isosafety.ins
new file mode 100644
index 0000000000..024d06df82
--- /dev/null
+++ b/macros/latex/contrib/isosafety/isosafety.ins
@@ -0,0 +1,56 @@
+%%
+%% Copyright (C) 2023 by BenSt099
+%%
+%% This file 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.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/isosafety}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2023 by BenSt099
+
+This file 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.
+
+\endpreamble
+
+\generate{\file{isosafety.sty}{\from{isosafety.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* isosafety.sty *}
+\Msg{* images/* *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file isosafety.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/isosafety/isosafety.pdf b/macros/latex/contrib/isosafety/isosafety.pdf
new file mode 100644
index 0000000000..09009812ad
--- /dev/null
+++ b/macros/latex/contrib/isosafety/isosafety.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3backend/CHANGELOG.md b/macros/latex/contrib/l3backend/CHANGELOG.md
index 94da9cacbe..6d7b45437f 100644
--- a/macros/latex/contrib/l3backend/CHANGELOG.md
+++ b/macros/latex/contrib/l3backend/CHANGELOG.md
@@ -6,6 +6,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2023-10-23]
+
+### Changed
+- Update minimal `expl3` version required
+
## [2023-10-10]
### Changed
@@ -301,7 +306,8 @@ this project uses date-based 'snapshot' version identifiers.
- Include `l3backend` in file names
- Moved backend code to internal for each 'parent' module
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-10...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-23...HEAD
+[2023-10-23]: https://github.com/latex3/latex3/compare/2023-10-10...2023-10-23
[2023-10-10]: https://github.com/latex3/latex3/compare/2023-04-19...2023-10-10
[2023-04-19]: https://github.com/latex3/latex3/compare/2023-03-30...2023-04-19
[2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-16...2023-03-30
diff --git a/macros/latex/contrib/l3backend/README.md b/macros/latex/contrib/l3backend/README.md
index 883bd5d1c6..ff202e7e09 100644
--- a/macros/latex/contrib/l3backend/README.md
+++ b/macros/latex/contrib/l3backend/README.md
@@ -1,7 +1,7 @@
LaTeX3 Backend Drivers
======================
-Release 2023-10-10
+Release 2023-10-23
This package forms parts of `expl3`, and contains the code used to interface
with backends (drivers) across the `expl3` codebase. The functions here are
diff --git a/macros/latex/contrib/l3backend/l3backend-basics.dtx b/macros/latex/contrib/l3backend/l3backend-basics.dtx
index a6f7ea6d1c..190a8cee3f 100644
--- a/macros/latex/contrib/l3backend/l3backend-basics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -70,27 +70,27 @@
% \begin{macrocode}
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2023-10-10}{}
+ {l3backend-dvipdfmx.def}{2023-10-23}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2023-10-10}{}
+ {l3backend-dvips.def}{2023-10-23}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2023-10-10}{}
+ {l3backend-dvisvgm.def}{2023-10-23}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2023-10-10}{}
+ {l3backend-luatex.def}{2023-10-23}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2023-10-10}{}
+ {l3backend-pdftex.def}{2023-10-23}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2023-10-10}{}
+ {l3backend-xetex.def}{2023-10-23}{}
{L3 backend support: XeTeX}
%</xetex>
% \end{macrocode}
@@ -104,7 +104,7 @@
% \begin{macrocode}
\cs_if_exist:NTF \__kernel_dependency_version_check:nn
{
- \__kernel_dependency_version_check:nn {2021-02-18}
+ \__kernel_dependency_version_check:nn {2023-10-10}
%<dvipdfmx> {l3backend-dvipdfmx.def}
%<dvips> {l3backend-dvips.def}
%<dvisvgm> {l3backend-dvisvgm.def}
diff --git a/macros/latex/contrib/l3backend/l3backend-box.dtx b/macros/latex/contrib/l3backend/l3backend-box.dtx
index 9bc74a1611..71d55492c1 100644
--- a/macros/latex/contrib/l3backend/l3backend-box.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-code.pdf b/macros/latex/contrib/l3backend/l3backend-code.pdf
index 0131abee16..9f36d8eaec 100644
--- a/macros/latex/contrib/l3backend/l3backend-code.pdf
+++ b/macros/latex/contrib/l3backend/l3backend-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3backend/l3backend-color.dtx b/macros/latex/contrib/l3backend/l3backend-color.dtx
index 73eee0ca2c..31711d1a4b 100644
--- a/macros/latex/contrib/l3backend/l3backend-color.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-draw.dtx b/macros/latex/contrib/l3backend/l3backend-draw.dtx
index 8fa2fda940..c3b1509791 100644
--- a/macros/latex/contrib/l3backend/l3backend-draw.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-draw.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-graphics.dtx b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
index 610785e348..bb452d1ef2 100644
--- a/macros/latex/contrib/l3backend/l3backend-graphics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-header.dtx b/macros/latex/contrib/l3backend/l3backend-header.dtx
index 5bd4bb4808..b3ce225cdc 100644
--- a/macros/latex/contrib/l3backend/l3backend-header.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-header.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-opacity.dtx b/macros/latex/contrib/l3backend/l3backend-opacity.dtx
index 9b994ac16e..a87b767948 100644
--- a/macros/latex/contrib/l3backend/l3backend-opacity.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-opacity.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-pdf.dtx b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
index 8d942551bb..15f1796f15 100644
--- a/macros/latex/contrib/l3backend/l3backend-pdf.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md
index 590abad03a..919e6779b6 100644
--- a/macros/latex/contrib/l3kernel/CHANGELOG.md
+++ b/macros/latex/contrib/l3kernel/CHANGELOG.md
@@ -7,6 +7,27 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2023-10-23]
+
+### Added
+- `\text_titlecase_all:n(n)`
+- `\token_to_catcode:N`
+- Support for symbolic variables in fp input:
+ `\fp_new_variable:n`, `\fp_set_variable:nn` and `\fp_clear_variable:n`
+- Support for user-defined functions in fp expressions:
+ `\fp_new_function:n`, `\fp_set_function:nnn` and `\fp_clear_function:n`
+
+### Changed
+- Refine action of `\text_titlecase_first:n(n)` to be focussed strictly on
+ first (relevant) codepoint in the input
+
+### Deprecated
+- `\text_titlecase:n(n)` as ambiguous: replaced by `\text_titlecase_all:n(n)`
+
+### Fixed
+- Support arbitrary BCP-47 locales for case-changing overrides (issue \#1239)
+- Retain braces when ending titlecasing with some input structures
+
## [2023-10-10]
### Added
@@ -119,7 +140,6 @@ this project uses date-based 'snapshot' version identifiers.
- `\file_input_raw:n`
- `\int_if_zero:n(TF)`
- `\str_mdfive_hash:n`
-
### Changed
- Remove `\noexpand` inside math mode in `\text_expand:n`
- Re-implement `\dim_to_decimal_in_bp:n` and
@@ -1538,7 +1558,8 @@ this project uses date-based 'snapshot' version identifiers.
- Step functions have been added for dim variables,
e.g. `\dim_step_inline:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-10...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-23...HEAD
+[2023-10-23]: https://github.com/latex3/latex3/compare/2023-10-10...2023-10-23
[2023-10-10]: https://github.com/latex3/latex3/compare/2023-08-29...2023-10-10
[2023-08-29]: https://github.com/latex3/latex3/compare/2023-08-11...2023-08-29
[2023-08-11]: https://github.com/latex3/latex3/compare/2023-08-03...2023-08-11
diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md
index 7b368819d5..5f52ac444b 100644
--- a/macros/latex/contrib/l3kernel/README.md
+++ b/macros/latex/contrib/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2023-10-10
+Release 2023-10-23
Overview
--------
@@ -57,7 +57,7 @@ since the release of version 1.40.0 in 2007; `\expanded` was added for TeX Live
2019. Similarly, the full set of these utility primitives has been available in
XeTeX from the 2019 TeX Live release, and has always been available in LuaTeX
(some by Lua emulation). The Japanese pTeX and upTeX gained all of the above
-(except `\ifincsname`) for TeX Live 2019 `\ifincsname` for TeX Live 2020.
+(except `\ifincsname`) for TeX Live 2019 and `\ifincsname` for TeX Live 2020.
Starting from release 2023-05-15, the `\expanded` primitive is *required*.
Its slow emulation has been removed.
diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx
index ea13fbeacf..09e21e4710 100644
--- a/macros/latex/contrib/l3kernel/expl3.dtx
+++ b/macros/latex/contrib/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2023-10-10}%
+\def\ExplFileDate{2023-10-23}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -311,9 +311,8 @@
% or private.
%
% To allow clear separation of these two cases, the following convention
-% is used. In private functions and variables, two |_| characters are
-% added to the start of the module name. On the other hand, public
-% interfaces to not have these two |_| character. Thus
+% is used. To denote a private function or a private variable (of the module),
+% two |_| characters are used in front of the module name, e.g.
% \begin{verbatim}
% \module_foo:nnn
% \end{verbatim}
diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf
index af52bd35c0..48ef0d9e7e 100644
--- a/macros/latex/contrib/l3kernel/expl3.pdf
+++ b/macros/latex/contrib/l3kernel/expl3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf
index f8431c7347..d80ff728b7 100644
--- a/macros/latex/contrib/l3kernel/interface3.pdf
+++ b/macros/latex/contrib/l3kernel/interface3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex
index 79d4cec3e9..ded23a7954 100644
--- a/macros/latex/contrib/l3kernel/interface3.tex
+++ b/macros/latex/contrib/l3kernel/interface3.tex
@@ -64,7 +64,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-10-10}
+\date{Released 2023-10-23}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/l3.ins b/macros/latex/contrib/l3kernel/l3.ins
index 52c65e4c8e..24f11d8f7b 100644
--- a/macros/latex/contrib/l3kernel/l3.ins
+++ b/macros/latex/contrib/l3kernel/l3.ins
@@ -92,6 +92,9 @@ and all files in that bundle must be distributed together.
\from{l3fp-trig.dtx} {package}
\from{l3fp-convert.dtx} {package}
\from{l3fp-random.dtx} {package}
+ \from{l3fp-types.dtx} {package}
+ \from{l3fp-symbolic.dtx}{package}
+ \from{l3fp-functions.dtx}{package}
\from{l3fparray.dtx} {package}
\from{l3cctab.dtx} {package}
\from{l3sort.dtx} {package}
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index 6b484105fe..00e159d817 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -1045,7 +1045,7 @@
% \end{texnote}
% \end{function}
%
-% \begin{function}[EXP, added = 2018-06-18]{\use:e}
+% \begin{function}[EXP, added = 2018-06-18, updated = 2023-07-05]{\use:e}
% \begin{syntax}
% \cs{use:e} \Arg{expandable tokens}
% \end{syntax}
diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
index e300bccc67..a42f358ae8 100644
--- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx
index dfa6b3c451..5757653168 100644
--- a/macros/latex/contrib/l3kernel/l3box.dtx
+++ b/macros/latex/contrib/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx
index 6e455b099c..567969d545 100644
--- a/macros/latex/contrib/l3kernel/l3candidates.dtx
+++ b/macros/latex/contrib/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx
index 4192ec029a..794b53b5f4 100644
--- a/macros/latex/contrib/l3kernel/l3cctab.dtx
+++ b/macros/latex/contrib/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx
index 8fc2f6870b..bd8082cf34 100644
--- a/macros/latex/contrib/l3kernel/l3clist.dtx
+++ b/macros/latex/contrib/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx
index 94824400de..cf046706b6 100644
--- a/macros/latex/contrib/l3kernel/l3coffins.dtx
+++ b/macros/latex/contrib/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx
index 3d225b2d22..2cdf604d02 100644
--- a/macros/latex/contrib/l3kernel/l3color.dtx
+++ b/macros/latex/contrib/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -330,7 +330,7 @@
%
% \subsection{Coloring math mode material}
%
-% Coloring math mode material using \cs{color_select:nn(n)} has some restrictions
+% Coloring math mode material using \cs[no-index]{color_select:nn(n)} has some restrictions
% and often leads to spacing issues and/or poor input syntax. Avoiding generating
% \tn{mathord} atoms whilst coloring only those parts of the input which are
% required needs careful handling. The functionality here covers this important
@@ -341,7 +341,7 @@
% \cs{color_math:nn} \Arg{color expression}\Arg{content}
% \cs{color_math:nnn} \Arg{model(s)} \Arg{value(s)} \Arg{content}
% \end{syntax}
-% Works as for \cs{color_select:n(n)} but applies color only to the math mode
+% Works as for \cs[no-index]{color_select:n(n)} but applies color only to the math mode
% \meta{content}. The function does not generate a group and the \meta{content}
% therefore retains its math atom states. Sub/superscripts are also properly
% handled.
diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx
index 8efdc986cc..c351529d85 100644
--- a/macros/latex/contrib/l3kernel/l3debug.dtx
+++ b/macros/latex/contrib/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx
index c9564f4080..98d8df40e5 100644
--- a/macros/latex/contrib/l3kernel/l3deprecation.dtx
+++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -549,6 +549,21 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Deprecated \pkg{l3text} functions}
+%
+% \begin{macro}[EXP]{\text_titlecase:n}
+% \begin{macro}[EXP]{\text_titlecase:nn}
+% \begin{macrocode}
+\__kernel_patch_deprecation:nnNNpn { 2023-07-08 } { \text_titlecase_first:n }
+\cs_gset:Npn \text_titlecase:n #1
+ { \text_titlecase_first:n { \text_lowercase:n {#1} } }
+\__kernel_patch_deprecation:nnNNpn { 2023-07-08 } { \text_titlecase_first:nn }
+\cs_gset:Npn \text_titlecase:nn #1#2
+ { \text_titlecase_first:nn {#1} { \text_lowercase:n {#2} } }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \subsection{Deprecated \pkg{l3tl} functions}
%
% \begin{macrocode}
@@ -574,12 +589,12 @@
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_uppercase:nn }
\cs_gset:Npn \tl_upper_case:nn #1#2
{ \text_uppercase:nn {#1} {#2} }
-\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase:n }
+\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase_first:n }
\cs_gset:Npn \tl_mixed_case:n #1
- { \text_titlecase:n {#1} }
-\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase:nn }
+ { \text_titlecase_first:n {#1} }
+\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase_first:nn }
\cs_gset:Npn \tl_mixed_case:nn #1#2
- { \text_titlecase:nn {#1} {#2} }
+ { \text_titlecase_first:nn {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
@@ -608,7 +623,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\char_to_nfd:Nm, \char_to_nfd:n}
+% \begin{macro}[EXP]{\char_to_nfd:N, \char_to_nfd:n}
% \begin{macrocode}
\__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { \codepoint_to_nfd:n }
\cs_gset:Npn \char_to_nfd:N #1 { \codepoint_to_nfd:n {`#1} }
@@ -629,8 +644,8 @@
\cs_gset:Npn \char_lower_case:N { \text_lowercase:n }
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_uppercase:n }
\cs_gset:Npn \char_upper_case:N { \text_uppercase:n }
-\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase:n }
-\cs_gset:Npn \char_mixed_case:N { \text_titlecase:n }
+\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_titlecase_first:n }
+\cs_gset:Npn \char_mixed_case:N { \text_titlecase_first:n }
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \str_casefold:n }
\cs_gset:Npn \char_fold_case:N { \str_casefold:n }
\__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \str_lowercase:n }
diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx
index ed675106ba..789095d104 100644
--- a/macros/latex/contrib/l3kernel/l3doc.dtx
+++ b/macros/latex/contrib/l3kernel/l3doc.dtx
@@ -85,7 +85,7 @@ and all files in that bundle must be distributed together.
% require you to do updates, if the class changes.}}
%
% \author{\Team}
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
% \maketitle
% \tableofcontents
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.pdf b/macros/latex/contrib/l3kernel/l3doc.pdf
index b8cd8d1e29..2612bef184 100644
--- a/macros/latex/contrib/l3kernel/l3doc.pdf
+++ b/macros/latex/contrib/l3kernel/l3doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx
index df2b7c63ab..59bd089ae6 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.dtx
+++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -2,7 +2,7 @@
%
%% File l3dosctrip.dtx
%
-% Copyright (C) 2012,2014-2023 The LaTeX Project
+% Copyright (C) 2012-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf
index 39d53ac5b9..4f43b61756 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.pdf
+++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx
index d4fe6b3a30..3bf2bd6153 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx
index 2d2ae6a183..af83fe4e08 100644
--- a/macros/latex/contrib/l3kernel/l3file.dtx
+++ b/macros/latex/contrib/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx
index 637da52ee7..278c71f27c 100644
--- a/macros/latex/contrib/l3kernel/l3flag.dtx
+++ b/macros/latex/contrib/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
index da05eafa39..17d75d1045 100644
--- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
index 3db65c9d29..ccd5e63ac1 100644
--- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
index 3c5ad9195b..b79950c267 100644
--- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
@@ -2,7 +2,7 @@
%
%% File: l3fp-basics.dtx
%
-% Copyright (C) 2011-2014,2016-2023 The LaTeX Project
+% Copyright (C) 2011-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
index 835f9c4341..70983272dd 100644
--- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
index 5ac216bf4c..f0e691f310 100644
--- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
index b83b37335b..e374e7e288 100644
--- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-functions.dtx b/macros/latex/contrib/l3kernel/l3fp-functions.dtx
new file mode 100644
index 0000000000..a899f3493a
--- /dev/null
+++ b/macros/latex/contrib/l3kernel/l3fp-functions.dtx
@@ -0,0 +1,282 @@
+% \iffalse
+%
+%% File l3fp-functions.dtx (C) Copyright 2012-2018,2020,2021,2023 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
+%<*driver>
+\documentclass[full]{l3doc}
+\usepackage{amsmath}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+% The \pkg{l3fp-functions} package\\ Floating point functions^^A
+% }
+%
+% \author{^^A
+% The \LaTeX{} Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Released 2023-10-23}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3fp-functions} implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=fp>
+% \end{macrocode}
+%
+% \subsection{Declaring functions}
+%
+% \begin{macro}{\fp_new_function:n}
+% \begin{macro}{\@@_new_function:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \fp_new_function:n #1
+ { \exp_args:No \@@_new_function:n { \tl_to_str:n {#1} } }
+\cs_new_protected:Npn \@@_new_function:n #1
+ {
+ \@@_id_if_invalid:nTF {#1}
+ { \msg_error:nnn { fp } { invalid-identifier } {#1} }
+ {
+ \cs_if_exist:cT { @@_parse_word_#1:N }
+ {
+ \msg_error:nnn
+ { fp } { id-already-defined } {#1}
+ \cs_undefine:c { @@_parse_word_#1:N }
+ \cs_undefine:c { @@_#1_o:w }
+ }
+ \@@_function_set_parsing:Nn \cs_gset_eq:NN {#1}
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}
+% {\@@_function_set_parsing:Nn, \@@_function_set_parsing_aux:NNn}
+% \begin{macrocode}
+\cs_new:Npn \@@_function_set_parsing:Nn #1#2
+ {
+ \exp_args:NNc \@@_function_set_parsing_aux:NNn #1
+ { @@_parse_word_#2:N } {#2}
+ }
+\cs_new:Npn \@@_function_set_parsing_aux:NNn #1#2#3
+ {
+ \cs_set:Npe \@@_tmp:w
+ {
+ \exp_not:N \@@_parse_function:NNN
+ \exp_not:N \@@_function_o:w
+ \exp_not:c { @@_#3_o:w }
+ }
+ \cs_if_eq:NNF #2 \@@_tmp:w
+ {
+ \cs_if_exist:NTF #2
+ {
+ \msg_warning:nnnn
+ { fp } { id-used-elsewhere } {#3} { function }
+ #1 #2 \@@_tmp:w
+ }
+ {
+ \cs_new_eq:NN #2 \scan_stop: % to declare the function
+ #1 #2 \@@_tmp:w
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_function_o:w}
+% \begin{macrocode}
+\cs_new:Npn \@@_function_o:w #1#2 @
+ {
+ \cs_if_exist:NTF #1
+ { #1 #2 @ }
+ {
+ \exp_after:wN \s_@@_symbolic
+ \exp_after:wN \@@_symbolic_chk:w
+ \exp_after:wN \@@_function_o:w
+ \exp_after:wN #1
+ \exp_after:wN ,
+ \exp_after:wN {
+ \exp:w \exp_end_continue_f:w
+ \@@_exp_after_array_f:w #2 \s_@@_expr_stop
+ \exp_after:wN
+ }
+ \exp_after:wN ;
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Defining functions by their expression}
+%
+% \begin{variable}{\l_@@_function_arg_int}
+% Labels the arguments of a function being defined.
+% \begin{macrocode}
+\int_new:N \l_@@_function_arg_int
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\fp_set_function:nnn}
+% \begin{macro}{\@@_set_function:Nnnn}
+% \begin{syntax}
+% \cs{fp_set_function:nnn} \Arg{identifier}
+% \Arg{comma-list of variables} \Arg{expression}
+% \end{syntax}
+% Defines the \meta{identifier} to stand for a function which expects
+% some arguments defined by the \meta{comma-list of variables}, and
+% evaluates to the \meta{expression}.
+% \begin{macrocode}
+\cs_new_protected:Npn \fp_set_function:nnn #1
+ {
+ \exp_args:NNo \@@_set_function:Nnnn \cs_set_eq:cN
+ { \tl_to_str:n {#1} }
+ }
+\cs_new_protected:Npn \@@_set_function:Nnnn #1#2#3#4
+ {
+ \@@_id_if_invalid:nTF {#2}
+ { \msg_error:nnn { fp } { invalid-identifier } {#2} }
+ {
+ \cs_if_exist:cF { @@_parse_word_#2:N }
+ { \@@_function_set_parsing:Nn \cs_set_eq:NN {#2} }
+ \group_begin:
+ \int_zero:N \l_@@_function_arg_int
+ \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#3} }
+ {
+ \int_incr:N \l_@@_function_arg_int
+ \exp_args:Ne \@@_clear_variable:n
+ { _ \tex_romannumeral:D \l_@@_function_arg_int }
+ \fp_clear_variable:n {##1}
+ \cs_set_nopar:cpe { l_@@_variable_##1_fp }
+ {
+ \exp_not:N \s__fp_symbolic
+ \exp_not:N \@@_symbolic_chk:w
+ \exp_not:N \@@_function_arg_o:w
+ \int_use:N \l_@@_function_arg_int
+ ########1 , { } ;
+ }
+ }
+ \cs_set:Npn \@@_function_arg_o:w ##1 @
+ {
+ \exp_after:wN \s_@@_symbolic
+ \exp_after:wN \@@_symbolic_chk:w
+ \exp_after:wN \@@_function_arg_o:w
+ \tex_romannumeral:D
+ \@@_exp_after_symbolic_loop:N ##1
+ { , \tex_romannumeral:D \use_none:nn }
+ \exp_after:wN \c_zero_int
+ \exp_after:wN { \exp_after:wN } \exp_after:wN ;
+ }
+ \fp_set:Nn \l_@@_symbolic_fp {#4}
+ \use:e
+ {
+ \exp_not:n { \cs_gset:Npn \@@_tmp:w ##1 }
+ { \exp_not:o { \l_@@_symbolic_fp } }
+ }
+ \use:e
+ {
+ \exp_not:n { \cs_gset:Npn \@@_tmp:w ##1 @ }
+ {
+ \exp_not:N \@@_exp_after_symbolic_f:nw
+ \exp_not:n { { \exp_after:wN \exp_stop_f: } }
+ \exp_not:o { \@@_tmp:w { . , {##1} } }
+ }
+ }
+ \group_end:
+ #1 { @@_#2_o:w } \@@_tmp:w
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]
+% {
+% \@@_function_arg_o:w,
+% \@@_function_arg_few:w,
+% \@@_function_arg_get:w
+% }
+% \begin{macrocode}
+\cs_new:Npn \@@_function_arg_o:w #1. #2
+ {
+ \if_meaning:w @ #2
+ \exp_after:wN \@@_function_arg_few:w
+ \fi:
+ \if_int_compare:w #1 = \c_one_int
+ \exp_after:wN \@@_function_arg_get:w
+ \fi:
+ \@@_use_i_until_s:nw
+ {
+ \exp_after:wN \@@_function_arg_o:w
+ \int_value:w \int_eval:n { #1 - 1 } .
+ }
+ #2
+ }
+\cs_new:Npn \@@_function_arg_few:w #1 @ { \exp_after:wN \c_nan_fp }
+\cs_new:Npn \@@_function_arg_get:w #1#2#3; #4 @
+ {
+ \@@_exp_after_array_f:w #3; \s_@@_expr_stop
+ \exp_after:wN \exp_stop_f:
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fp_clear_function:n}
+% \begin{macro}{\@@_clear_function:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \fp_clear_function:n #1
+ { \exp_args:No \@@_clear_function:n { \tl_to_str:n {#1} } }
+\cs_new_protected:Npn \@@_clear_function:n #1
+ {
+ \cs_undefine:c { @@_parse_word_ #1 :N }
+ \@@_function_set_parsing:Nn \cs_set_eq:NN {#1}
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% ^^A todo: add check for number of args
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex
diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
index 2f439c2925..5e98d6b62c 100644
--- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -163,7 +163,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_compare_back_any:ww, \@@_compare_back:ww, \@@_compare_nan:w}
+% \begin{macro}[EXP]{\@@_compare_back:ww, \@@_bcmp:ww, \@@_compare_back_any:ww, \@@_compare_nan:w}
% \begin{quote}
% \cs{@@_compare_back_any:ww} \meta{y} |;| \meta{x} |;|
% \end{quote}
@@ -178,6 +178,17 @@
% a different type, the highest type is a larger number. Finally, if
% $y\leq 0$, then $x>y$, unless both are zero.
% \begin{macrocode}
+\cs_new:Npn \@@_compare_back:ww #1#2; #3#4;
+ {
+ \cs:w
+ @@
+ \@@_type_from_scan:N #1
+ _bcmp
+ \@@_type_from_scan:N #3
+ :ww
+ \cs_end:
+ #1#2; #3#4;
+ }
\cs_new:Npn \@@_compare_back_any:ww #1#2; #3
{
\@@_if_type_fp:NTwFw
@@ -195,7 +206,7 @@
}
#1#2 ; #3
}
-\cs_new:Npn \@@_compare_back:ww
+\cs_new:Npn \@@_bcmp:ww
\s_@@ \@@_chk:w #1 #2 #3;
\s_@@ \@@_chk:w #4 #5 #6;
{
diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
index 418974d826..58fc4f1f2a 100644
--- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx
index 3e3b5cfdfc..3cff0bdc1a 100644
--- a/macros/latex/contrib/l3kernel/l3fp-random.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx
index f0853f5999..901cb5ba34 100644
--- a/macros/latex/contrib/l3kernel/l3fp-round.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-symbolic.dtx b/macros/latex/contrib/l3kernel/l3fp-symbolic.dtx
new file mode 100644
index 0000000000..277ecfabf5
--- /dev/null
+++ b/macros/latex/contrib/l3kernel/l3fp-symbolic.dtx
@@ -0,0 +1,673 @@
+% \iffalse
+%
+%% File l3fp-symbolic.dtx (C) Copyright 2012-2015,2017,2018,2020,2021,2023 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
+%<*driver>
+\documentclass[full]{l3doc}
+\usepackage{amsmath}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+% The \pkg{l3fp-symbolic} package\\ Symbolic expressions^^A
+% }
+%
+% \author{^^A
+% The \LaTeX{} Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Released 2023-10-23}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3fp-symbolic} implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=fp>
+% \end{macrocode}
+%
+% \subsection{Misc}
+%
+% \begin{variable}{\l_@@_symbolic_fp}
+% Scratch floating point.
+% \begin{macrocode}
+\fp_new:N \l_@@_symbolic_fp
+% \end{macrocode}
+% \end{variable}
+%
+% \subsection{Building blocks for expressions}
+%
+% Every symbolic expression has the form \cs{s_@@_symbolic}
+% \cs{@@_symbolic_chk:w} \meta{operation} |,| \Arg{operands} \meta{junk}
+% |;| where the \meta{operation} is a list of \texttt{N}-type tokens,
+% the \meta{operands} is an array of floating point objects, and the
+% \meta{junk} is to be discarded. If the outermost operator (last to be
+% evaluated) is unary, the expression has the form
+% \begin{quote}
+% \cs{s_@@_symbolic} \cs{@@_symbolic_chk:w} \\
+% \cs{@@_types_unary:NNw} |\__fp_|\meta{op}|_o:w| \meta{token} |,| \\
+% |{| \meta{operand} |}| \meta{junk} |;|
+% \end{quote}
+% where the \meta{op} is a unary operation (|set_sign|, |cos|,
+% \ldots{}), and the \meta{token} and \meta{operand} are used as
+% arguments for \cs{@@_\meta{op}_o:w} (or the type-specific analog of
+% this function). If the outermost operator is binary, the expression
+% has the form
+% \begin{quote}
+% \cs{s_@@_symbolic} \cs{@@_symbolic_chk:w} \\
+% \cs{@@_types_binary:Nww} |\__fp_|\meta{op}|_o:ww| |,| \\
+% |{| \meta{operand_1} \meta{operand_2} |}| \meta{junk} |;|
+% \end{quote}
+% where the \meta{op} is an operation (|+|, |&|, \ldots{}), and
+% |\__fp_|\meta{op}|_o:ww| receives the \meta{operands} as arguments.
+% If the expression consists of a single variable, it is stored as
+% \begin{quote}
+% \cs{s_@@_symbolic} \cs{@@_symbolic_chk:w} \\
+% \cs{@@_variable_o:w} \meta{identifier} |,| \\
+% |{| |}| \meta{junk} |;|
+% \end{quote}
+%
+% Symbolic expressions are stored in a prefix form. When encountering a
+% symbolic expression in a floating point computation, we attempt to
+% evaluate the operands as much as possible, and if that yields floating
+% point numbers rather than expressions, we apply the operator which
+% follows (if the function is known).
+%
+% For instance, the expression |a + b * sin(c)| is stored as
+% \begin{verbatim}
+% \s__fp_symbolic \__fp_symbolic_chk:w
+% \__fp_types_binary:Nww \__fp_+_o:ww ,
+% {
+% \s__fp_symbolic \__fp_symbolic_chk:w
+% \__fp_variable_o:w a , { } ;
+% \s__fp_symbolic \__fp_symbolic_chk:w
+% \__fp_types_binary:Nww \__fp_*_o:ww ,
+% {
+% \s__fp_symbolic \__fp_symbolic_chk:w
+% \__fp_variable_o:w b , { } ;
+% \s__fp_symbolic \__fp_symbolic_chk:w
+% \__fp_types_unary:NNw \__fp_sin_o:w \use_i:nn ,
+% {
+% \s__fp_symbolic \__fp_symbolic_chk:w
+% \__fp_variable_o:w c , { } ;
+% } ;
+% } ;
+% } ;
+% \end{verbatim}
+%
+% \begin{variable}{\s_@@_symbolic}
+% Scan mark indicating the start of a symbolic expression.
+% \begin{macrocode}
+\scan_new:N \s_@@_symbolic
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\@@_symbolic_chk:w}
+% Analog of \cs{@@_chk:w} for symbolic expressions.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_symbolic_chk:w #1,#2#3;
+ {
+ \msg_error:nne { fp } { misused-fp }
+ {
+ \@@_to_tl_dispatch:w
+ \s_@@_symbolic \@@_symbolic_chk:w #1,{#2};
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Expanding after a symbolic expression}
+%
+% \begin{macro}[EXP]
+% {\@@_if_has_symbolic:nTF, \@@_if_has_symbolic_aux:w}
+% Tests if |#1| contains \cs{s_@@_symbolic} at top-level. This test
+% should be precise enough to determine if a given an array contains a
+% symbolic expression or only consists in floating points. Used in
+% \cs{@@_exp_after_symbolic_f:nw}.
+% \begin{macrocode}
+\cs_new:Npn \@@_if_has_symbolic:nTF #1
+ {
+ \@@_if_has_symbolic_aux:w
+ #1 \s_@@_mark \use_i:nn
+ \s_@@_symbolic \s_@@_mark \use_ii:nn
+ \s_@@_stop
+ }
+\cs_new:Npn \@@_if_has_symbolic_aux:w
+ #1 \s_@@_symbolic #2 \s_@@_mark #3#4 \s_@@_stop { #3 }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_exp_after_symbolic_f:nw}
+% \begin{macro}[EXP]
+% {\@@_exp_after_symbolic_aux:w, \@@_exp_after_symbolic_loop:N}
+% This function does two things: trigger an \texttt{f}-expansion of
+% the argument~|#1| after the following symbolic expression, and
+% evaluate all pieces of the expression which can be evaluated.
+% \begin{macrocode}
+\cs_new:Npn \@@_exp_after_symbolic_f:nw
+ #1 \s_@@_symbolic \@@_symbolic_chk:w #2, #3#4;
+ {
+ \exp_after:wN \@@_exp_after_symbolic_aux:w
+ \exp:w
+ \@@_exp_after_symbolic_loop:N #2
+ { , \exp:w \use_none:nn }
+ \exp_after:wN \exp_end: \exp_after:wN
+ {
+ \exp:w \exp_end_continue_f:w
+ \@@_exp_after_array_f:w #3 \s_@@_expr_stop
+ \exp_after:wN
+ }
+ \exp_after:wN ;
+ \exp:w \exp_end_continue_f:w #1
+ }
+\cs_new:Npn \@@_exp_after_symbolic_aux:w #1, #2;
+ {
+ \@@_if_has_symbolic:nTF {#2}
+ { \s_@@_symbolic \@@_symbolic_chk:w #1, {#2} ; }
+ { #1 #2 @ \prg_do_nothing: }
+ }
+\cs_new:Npn \@@_exp_after_symbolic_loop:N #1
+ {
+ \exp_after:wN \exp_end:
+ \exp_after:wN #1
+ \exp:w
+ \@@_exp_after_symbolic_loop:N
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Applying infix operators to expressions}
+%
+% \begin{macro}[EXP]{\@@_symbolic_binary_o:Nww}
+% Used when applying infix operators to expressions.
+% \begin{macrocode}
+\cs_new:Npn \@@_symbolic_binary_o:Nww #1 #2; #3;
+ {
+ \@@_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: }
+ \s_@@_symbolic \@@_symbolic_chk:w
+ \@@_types_binary:Nww #1 , { #2; #3; } ;
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{@makeother}{^} %^^A Hack!
+% \begin{@makeother}{|} %^^A Hack!
+% \begin{@makeother}{&} %^^A Hack!
+% \begin{macro}[EXP]
+% {
+% \@@_symbolic_+_symbolic_o:ww,
+% \@@_symbolic_+_o:ww,
+% \@@_+_symbolic_o:ww,
+% \@@_symbolic_-_symbolic_o:ww,
+% \@@_symbolic_-_o:ww,
+% \@@_-_symbolic_o:ww,
+% \@@_symbolic_*_symbolic_o:ww,
+% \@@_symbolic_*_o:ww,
+% \@@_*_symbolic_o:ww,
+% \@@_symbolic_/_symbolic_o:ww,
+% \@@_symbolic_/_o:ww,
+% \@@_/_symbolic_o:ww,
+% \@@_symbolic_^_symbolic_o:ww,
+% \@@_symbolic_^_o:ww,
+% \@@_^_symbolic_o:ww,
+% \@@_symbolic_|_symbolic_o:ww,
+% \@@_symbolic_|_o:ww,
+% \@@_|_symbolic_o:ww,
+% \@@_symbolic_&_symbolic_o:ww,
+% \@@_symbolic_&_o:ww,
+% \@@_&_symbolic_o:ww,
+% }
+% \begin{macrocode}
+\cs_set:Npn \@@_tmp:w #1#2
+ {
+ \cs_new_nopar:cpn
+ { @@_symbolic_#2_symbolic_o:ww }
+ { \@@_symbolic_binary_o:Nww #1 }
+ \cs_new_eq:cc
+ { @@_symbolic_#2 _o:ww }
+ { @@_symbolic_#2_symbolic_o:ww }
+ \cs_new_eq:cc
+ { @@ _#2_symbolic_o:ww }
+ { @@_symbolic_#2_symbolic_o:ww }
+ }
+\tl_map_inline:nn { + - * / ^ & | }
+ { \exp_args:Nc \@@_tmp:w { @@_#1_o:ww } {#1} }
+% \end{macrocode}
+% \end{macro}
+% \end{@makeother}
+% \end{@makeother}
+% \end{@makeother}
+%
+% \subsection{Applying prefix functions to expressions}
+%
+% \begin{macro}[aux, EXP]{\@@_symbolic_unary_o:NNw}
+% Used when applying infix operators to expressions.
+% \begin{macrocode}
+\cs_new:Npn \@@_symbolic_unary_o:NNw #1#2#3; @
+ {
+ \@@_exp_after_symbolic_f:nw { \exp_after:wN \exp_stop_f: }
+ \s_@@_symbolic \@@_symbolic_chk:w
+ \@@_types_unary:NNw #1#2 , { #3; } ;
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]
+% {
+% \@@_symbolic_acos_o:w ,
+% \@@_symbolic_acsc_o:w ,
+% \@@_symbolic_asec_o:w ,
+% \@@_symbolic_asin_o:w ,
+% \@@_symbolic_cos_o:w ,
+% \@@_symbolic_cot_o:w ,
+% \@@_symbolic_csc_o:w ,
+% \@@_symbolic_exp_o:w ,
+% \@@_symbolic_ln_o:w ,
+% \@@_symbolic_not_o:w ,
+% \@@_symbolic_sec_o:w ,
+% \@@_symbolic_set_sign_o:w ,
+% \@@_symbolic_sin_o:w ,
+% \@@_symbolic_tan_o:w ,
+% }
+% \begin{macrocode}
+\tl_map_inline:nn
+ {
+ {acos} {acsc} {asec} {asin} {cos} {cot} {csc} {exp} {ln}
+ {not} {sec} {set_sign} {sin} {sqrt} {tan}
+ }
+ {
+ \cs_new_nopar:cpe { @@_symbolic_#1_o:w }
+ {
+ \exp_not:N \@@_symbolic_unary_o:NNw
+ \exp_not:c { @@_#1_o:w }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Conversions}
+%
+% \begin{macro}[EXP]
+% {
+% \@@_symbolic_to_decimal:w,
+% \@@_symbolic_to_int:w,
+% \@@_symbolic_to_scientific:w
+% }
+% \begin{macro}[EXP]{\@@_symbolic_convert:wnnN}
+% Symbolic expressions cannot be converted to decimal, integer, or
+% scientific notation unless they can be reduced to
+% \begin{macrocode}
+\cs_set_protected:Npn \@@_tmp:w #1#2#3
+ {
+ \cs_new_nopar:cpn { @@_symbolic_to_#1:w }
+ {
+ \exp_after:wN \@@_symbolic_convert:wnnN
+ \exp:w \exp_end_continue_f:w
+ \@@_exp_after_symbolic_f:nw { { #2 } { fp_to_#1 } #3 }
+ }
+ }
+\@@_tmp:w { decimal } { 0 } \@@_to_decimal_dispatch:w
+\@@_tmp:w { int } { 0 } \@@_to_int_dispatch:w
+\@@_tmp:w { scientific } { nan } \@@_to_scientific_dispatch:w
+\cs_new:Npn \@@_symbolic_convert:wnnN #1#2; #3#4#5
+ {
+ \str_if_eq:nnTF {#1} { \s_@@_symbolic }
+ { \@@_invalid_operation:nnw {#3} {#4} #1#2; }
+ { #5 #1#2; }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[EXP]
+% {\@@_symbolic_cs_arg_to_fn:NN, \@@_symbolic_op_arg_to_fn:nN}
+% \begin{macrocode}
+\cs_new:Npn \@@_symbolic_cs_arg_to_fn:NN #1
+ {
+ \exp_args:Nf \@@_symbolic_op_arg_to_fn:nN
+ { \@@_types_cs_to_op:N #1 }
+ }
+\cs_new:Npn \@@_symbolic_op_arg_to_fn:nN #1#2
+ {
+ \str_case:nnF { #1 #2 }
+ {
+ { not ? } { ! }
+ { set_sign 0 } { abs }
+ { set_sign 2 } { - }
+ }
+ {
+ \token_if_eq_meaning:NNTF #2 \use_ii:nn
+ { #1 d } {#1}
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_symbolic_to_tl:w}
+% \begin{macro}[rEXP]
+% {
+% \@@_symbolic_unary_to_tl:NNw,
+% \@@_symbolic_binary_to_tl:Nww
+% }
+% Converting a symbolic expression to a token list is possible.
+% \begin{macrocode}
+\cs_new:Npn \@@_symbolic_to_tl:w
+ \s_@@_symbolic \@@_symbolic_chk:w #1#2, #3#4;
+ {
+ \str_case:nnTF {#1}
+ {
+ { \@@_types_unary:NNw } { \@@_symbolic_unary_to_tl:NNw }
+ { \@@_types_binary:Nww } { \@@_symbolic_binary_to_tl:Nww }
+ { \@@_function_o:w } { \@@_symbolic_function_to_tl:Nw }
+ }
+ { #2, #3 @ }
+ { \tl_to_str:n {#2} }
+ }
+\cs_new:Npn \@@_symbolic_unary_to_tl:NNw #1#2 , #3 @
+ {
+ \use:e
+ {
+ \@@_symbolic_cs_arg_to_fn:NN #1#2
+ ( \@@_to_tl_dispatch:w #3 )
+ }
+ }
+\cs_new:Npn \@@_symbolic_binary_to_tl:Nww #1, #2; #3; @
+ {
+ \use:e
+ {
+ ( \@@_to_tl_dispatch:w #2; )
+ \@@_types_cs_to_op:N #1
+ ( \@@_to_tl_dispatch:w #3; )
+ }
+ }
+\cs_new:Npn \@@_symbolic_function_to_tl:Nw #1, #2@
+ {
+ \use:e
+ {
+ \@@_types_cs_to_op:N #1
+ ( \@@_array_to_clist:n {#2} )
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Identifiers}
+%
+% Functions defined here are not necessarily tied to symbolic
+% expressions.
+%
+% \begin{macro}[TF]{\@@_id_if_invalid:n}
+% \begin{macro}[EXP]{\@@_id_if_invalid_aux:N}
+% If |#1| contains a space, it is not a valid identifier. Otherwise,
+% loop through letters in |#1|: if it is not a letter, break the loop
+% and return \texttt{true}. If the end of the loop is reached
+% without finding any non-letter, return \texttt{false}.
+% \begin{macrocode}
+\prg_new_protected_conditional:Npnn
+ \@@_id_if_invalid:n #1 { T , F , TF }
+ {
+ \tl_if_empty:nTF {#1}
+ { \prg_return_true: }
+ {
+ \tl_if_in:onTF { \tl_to_str:n {#1} } { ~ }
+ { \prg_return_true: }
+ {
+ \exp_after:wN \@@_id_if_invalid_aux:N \tl_to_str:n {#1}
+ { ? \prg_break:n \prg_return_false: }
+ \prg_break_point:
+ }
+ }
+ }
+\cs_new:Npn \@@_id_if_invalid_aux:N #1
+ {
+ \use_none:n #1
+ \int_compare:nF { `a <= `#1 <= `z }
+ {
+ \int_compare:nF { `A <= `#1 <= `Z }
+ { \prg_break:n \prg_return_true: }
+ }
+ \@@_id_if_invalid_aux:N
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Declaring variables and assigning values}
+%
+% \begin{macro}[EXP]{\@@_variable_o:w}
+% We do not use \cs{exp_last_unbraced:Nv} to extract the value of
+% |\l__fp_variable_#1_fp| because in \cs{fp_set_variable:nn} we define
+% this \texttt{fp} variable to be something which \texttt{f}-expands
+% to an actual floating point, rather than a genuine floating point.
+% \begin{macrocode}
+\cs_new:Npn \@@_variable_o:w #1 @ #2
+ {
+ \fp_if_exist:cTF { l_@@_variable_#1_fp }
+ {
+ \exp_last_unbraced:Nf \@@_exp_after_array_f:w
+ { \use:c { l_@@_variable_#1_fp } } \s_@@_expr_stop
+ \exp_after:wN \exp_stop_f: #2
+ }
+ {
+ \token_if_eq_meaning:NNTF #2 \prg_do_nothing:
+ {
+ \s_@@_symbolic \@@_symbolic_chk:w
+ \@@_variable_o:w #1 , { } ;
+ }
+ {
+ \exp_after:wN \s_@@_symbolic
+ \exp_after:wN \@@_symbolic_chk:w
+ \exp_after:wN \@@_variable_o:w
+ \exp:w
+ \@@_exp_after_symbolic_loop:N #1
+ { , \exp:w \use_none:nn }
+ \exp_after:wN \exp_end:
+ \exp_after:wN { \exp_after:wN } \exp_after:wN ;
+ #2
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {\@@_variable_set_parsing:Nn, \@@_variable_set_parsing_aux:NNn}
+% \begin{macrocode}
+\cs_new:Npn \@@_variable_set_parsing:Nn #1#2
+ {
+ \cs_set_nopar:Npn \@@_tmp:w
+ {
+ \@@_exp_after_symbolic_f:nw { \@@_parse_infix:NN }
+ \s_@@_symbolic \@@_symbolic_chk:w
+ \@@_variable_o:w #2 , { } ;
+ }
+ \exp_args:NNc \@@_variable_set_parsing_aux:NNn #1
+ { @@_parse_word_#2:N } {#2}
+ }
+\cs_new:Npn \@@_variable_set_parsing_aux:NNn #1#2#3
+ {
+ \cs_if_eq:NNF #2 \@@_tmp:w
+ {
+ \cs_if_exist:NTF #2
+ {
+ \msg_warning:nnnn
+ { fp } { id-used-elsewhere } {#3} { variable }
+ #1 #2 \@@_tmp:w
+ }
+ {
+ \cs_new_eq:NN #2 \scan_stop: % to declare the function
+ #1 #2 \@@_tmp:w
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fp_clear_variable:n}
+% \begin{macro}{\@@_clear_variable:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \fp_clear_variable:n #1
+ {
+ \@@_id_if_invalid:nTF {#1}
+ { \msg_error:nnn { fp } { id-invalid } {#1} }
+ { \exp_args:No \@@_clear_variable:n { \tl_to_str:n {#1} } }
+ }
+\cs_new_protected:Npn \@@_clear_variable:n #1
+ {
+ \cs_undefine:c { l_@@_variable_#1_fp }
+ \@@_variable_set_parsing:Nn \cs_set_eq:NN {#1}
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fp_new_variable:n}
+% \begin{macro}{\@@_new_variable:n}
+% Check that |#1| is a valid identifier. If the identifier is already
+% in use, complain. Then set |\__fp_parse_word_#1:N| to use
+% |\__fp_variable_o:w|.
+% \begin{macrocode}
+\cs_new_protected:Npn \fp_new_variable:n #1
+ {
+ \@@_id_if_invalid:nTF {#1}
+ { \msg_error:nnn { fp } { id-invalid } {#1} }
+ { \exp_args:No \@@_new_variable:n { \tl_to_str:n {#1} } }
+ }
+\cs_new_protected:Npn \@@_new_variable:n #1
+ {
+ \cs_if_exist:cT { @@_parse_word_#1:N }
+ {
+ \msg_error:nnn
+ { fp } { id-already-defined } {#1}
+ \cs_undefine:c { @@_parse_word_#1:N }
+ \cs_undefine:c { l_@@_variable_#1_fp }
+ }
+ \@@_variable_set_parsing:Nn \cs_gset_eq:NN {#1}
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\fp_set_variable:nn}
+% \begin{macro}{\@@_set_variable:nn}
+% Refuse invalid identifiers. If the variable does not exist yet,
+% define it just as in \cs{fp_new_variable:n} (but without unnecessary
+% checks). Then evaluate~|#2|. If the result contains the
+% identifier~|#1|, we would later get a loop in cases such as
+% \begin{quote}
+% \cs{fp_set_variable:nn} |{A}| |{A}|\\
+% \cs{fp_show:n} |{A}|
+% \end{quote}
+% To detect this, define |\l__fp_variable_#1_fp| to raise an
+% internal flag and evaluate to \texttt{nan}. Then re-evaluate
+% \cs{l_@@_symbolic_fp}, and store the result in~|#1|. If the flag is
+% raised, |#1|~was present in \cs{l_@@_symbolic_fp}. In all cases,
+% the |#1|-free result ends up in |\l__fp_variable_#1_fp|.
+% \begin{macrocode}
+\flag_new:n { @@_symbolic }
+\cs_new_protected:Npn \fp_set_variable:nn #1
+ {
+ \@@_id_if_invalid:nTF {#1}
+ { \msg_error:nnn { fp } { id-invalid } {#1} }
+ { \exp_args:No \@@_set_variable:nn { \tl_to_str:n {#1} } }
+ }
+\cs_new_protected:Npn \@@_set_variable:nn #1#2
+ {
+ \@@_variable_set_parsing:Nn \cs_set_eq:NN {#1}
+ \fp_set:Nn \l_@@_symbolic_fp {#2}
+ \cs_set_nopar:cpn { l_@@_variable_#1_fp }
+ { \flag_ensure_raised:n { @@_symbolic } \c_nan_fp }
+ \flag_clear:n { @@_symbolic }
+ \fp_set:cn { l_@@_variable_#1_fp } { \l_@@_symbolic_fp }
+ \flag_if_raised:nT { @@_symbolic }
+ {
+ \msg_error:nneee { fp } { id-loop }
+ { \tl_to_str:n {#1} }
+ { \tl_to_str:n {#2} }
+ { \fp_to_tl:N \l_@@_symbolic_fp }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Messages}
+%
+% \begin{macrocode}
+\msg_new:nnnn { fp } { id-invalid }
+ { Floating~point~identifier~'#1'~invalid. }
+ {
+ LaTeX~has~been~asked~to~create~a~new~floating~point~identifier~'#1'~
+ but~this~may~only~contain~ASCII~letters.
+ }
+\msg_new:nnnn { fp } { id-already-defined }
+ { Floating~point~identifier~'#1'~already~defined. }
+ {
+ LaTeX~has~been~asked~to~create~a~new~floating~point~identifier~'#1'~
+ but~this~name~has~already~been~used~elsewhere.
+ }
+\msg_new:nnnn { fp } { id-used-elsewhere }
+ { Floating~point~identifier~'#1'~already~used~for~something~else. }
+ {
+ LaTeX~has~been~asked~to~create~a~new~floating~point~identifier~'#1'~
+ but~this~name~is~used,~and~is~not~a~user-defined~#2.
+ }
+\msg_new:nnnn { fp } { id-loop }
+ { Variable~'#1'~used~in~the~definition~of~'#1'. }
+ {
+ LaTeX~has~been~asked~to~set~the~floating~point~identifier~'#1'~
+ to~the~expression~'#2'.~Evaluating~this~expression~yields~'#3',~
+ which~contains~'#1'~itself.
+ }
+% \end{macrocode}
+%
+% \subsection{Road-map}
+%
+% The following functions are not implemented: |min|, |max|, |?:|,
+% comparisons, |round|, |atan|, |acot|.
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex
diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
index 674ecdfd2d..1bdece9ba7 100644
--- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
@@ -2,7 +2,7 @@
%
%% File: l3fp-traps.dtx
%
-% Copyright (C) 2011-2014,2016-2023 The LaTeX Project
+% Copyright (C) 2011-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
index b7bc6c19ce..c49383a178 100644
--- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-types.dtx b/macros/latex/contrib/l3kernel/l3fp-types.dtx
new file mode 100644
index 0000000000..693cec5ccc
--- /dev/null
+++ b/macros/latex/contrib/l3kernel/l3fp-types.dtx
@@ -0,0 +1,184 @@
+% \iffalse
+%
+%% File l3fp-types.dtx (C) Copyright 2012-2015,2017,2018,2020,2021,2023 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
+%<*driver>
+\documentclass[full]{l3doc}
+\usepackage{amsmath}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{^^A
+% The \pkg{l3fp-types} package\\ Floating point types^^A
+% }
+%
+% \author{^^A
+% The \LaTeX{} Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Released 2023-10-23}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3fp-types} implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<@@=fp>
+% \end{macrocode}
+%
+% \subsection{Support for types}
+%
+% Despite lack of documentation, the \pkg{l3fp} internals support types.
+% Each additional type must define
+% \begin{itemize}
+% \item |\s__fp_|\meta{type} and |\__fp_|\meta{type}|_chk:w|;
+% \item |\__fp_exp_after_|\meta{type}|_f:nw|;
+% \item |\__fp_|\meta{type}|_to_|\meta{out}|:w| for \meta{out} among
+% |decimal|, |scientific|, |tl|;
+% \end{itemize}
+% and may define
+% \begin{itemize}
+% \item |\__fp_|\meta{type}|_to_int:w| and |\__fp_|\meta{type}|_to_dim:w|;
+% \item |\__fp_|\meta{op}|_|\meta{type}|_o:w| for any of the \meta{op}
+% that the type implements, among |acos|, |acsc|, |asec|, |asin|,
+% |cos|, |cot|, |csc|, |exp|, |ln|, |not|, |sec|, |set_sign|, |sin|,
+% |tan|;
+% \item |\__fp_|\meta{type_1}|_|\meta{op}|_|\meta{type_2}|_o:ww| for
+% \meta{op} among |^*/-+&|\verb"|" and for every pair of types;
+% \item |\__fp_|\meta{type_1}|_bcmp_|\meta{type_2}|:ww| for every
+% pair of types.
+% \end{itemize}
+% The latter is set up in \pkg{l3fp-logic}.
+%
+% \subsection{Dispatch according to the type}
+%
+% \begin{macro}[EXP]
+% {\@@_types_cs_to_op:N, \@@_types_cs_to_op_auxi:wwwn}
+% From |\__fp_|\meta{op}|_o:w| produce \meta{op}, otherwise~|?|.
+% \begin{macrocode}
+\cs_new:Npe \@@_types_cs_to_op:N #1
+ {
+ \exp_not:N \exp_after:wN \exp_not:N \@@_types_cs_to_op_auxi:wwwn
+ \exp_not:N \token_to_str:N #1 \s_@@_mark
+ \exp_not:N \@@_use_i_delimit_by_s_stop:nw
+ \tl_to_str:n { @@_ _o:w } \s_@@_mark
+ { \exp_not:N \@@_use_i_delimit_by_s_stop:nw ? }
+ \s_@@_stop
+ }
+\use:e
+ {
+ \cs_new:Npn \exp_not:N \@@_types_cs_to_op_auxi:wwwn
+ #1 \tl_to_str:n { @@_ } #2
+ \tl_to_str:n { _o:w } #3 \s_@@_mark #4 { #4 {#2} }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_types_unary:NNw}
+% \begin{macro}[EXP]
+% {\@@_types_unary_auxi:nNw, \@@_types_unary_auxii:NnNw}
+% \begin{syntax}
+% \cs{@@_types_unary:NNw} |\__fp_|\meta{function}|_o:w|
+% ~~\meta{token} \meta{operand} |@|
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_types_unary:NNw #1
+ {
+ \exp_args:Nf \@@_types_unary_auxi:nNw
+ { \@@_types_cs_to_op:N #1 }
+ }
+\cs_new:Npn \@@_types_unary_auxi:nNw #1#2#3
+ {
+ \exp_after:wN \@@_types_unary_auxii:NnNw
+ \cs:w @@_#1 \@@_type_from_scan:N #3 _o:w \cs_end:
+ {#1}
+ #2#3
+ }
+\cs_new:Npn \@@_types_unary_auxii:NnNw #1#2#3
+ {
+ \token_if_eq_meaning:NNTF \scan_stop: #1
+ { \@@_invalid_operation_o:nw {#2} }
+ { #1 #3 }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_types_binary:Nww}
+% \begin{macro}[EXP]
+% {\@@_types_binary_auxi:Nww, \@@_types_binary_auxii:NNww}
+% \begin{syntax}
+% \cs{@@_types_binary:Nww} |\__fp_|\meta{binop}|_o:ww|
+% ~~\meta{operand_1} \meta{operand_2} |@|
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_types_binary:Nww #1
+ {
+ \exp_last_unbraced:Nf \@@_types_binary_auxi:Nww
+ { \@@_types_cs_to_op:N #1 }
+ }
+\cs_new:Npn \@@_types_binary_auxi:Nww #1#2#3; #4#5; @
+ {
+ \exp_after:wN \@@_types_binary_auxii:NNww
+ \cs:w
+ @@
+ \@@_type_from_scan:N #2
+ _#1
+ \@@_type_from_scan:N #4
+ _o:ww
+ \cs_end:
+ #1 #2#3; #4#5;
+ }
+\cs_new:Npn \@@_types_binary_auxii:NNww #1#2
+ {
+ \token_if_eq_meaning:NNTF \scan_stop: #1
+ { \@@_invalid_operation_o:Nww #2 }
+ {#1}
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \end{implementation}
+%
+% \PrintIndex
diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx
index 60a7b7534f..578d568978 100644
--- a/macros/latex/contrib/l3kernel/l3fp.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -658,6 +658,138 @@
% the \meta{code} should make use of the \meta{tl~var}.
% \end{function}
%
+% \section{Symbolic expressions}
+%
+% Floating point expressions support variables: these can only be set locally,
+% so act like standard \cs[no-index]{l_\dots} variables.
+% \begin{quote}\let\obeyedline=\newline\obeylines^^A
+% \cs{fp_new_variable:n} |{ A }|
+% \cs{fp_set:Nn} \cs{l_tmpb_fp} |{ 1 * sin(A) + 3**2 }|
+% \cs{fp_show:n} |{| \cs{l_tmpb_fp} |}|
+% \cs{fp_show:N} \cs{l_tmpb_fp}
+% \cs{fp_set_variable:nn} |{ A }| |{ pi/2 }|
+% \cs{fp_show:n} |{| \cs{l_tmpb_fp} |}|
+% \cs{fp_show:N} \cs{l_tmpb_fp}
+% \cs{fp_set_variable:nn} |{ A }| |{ 0 }|
+% \cs{fp_show:n} |{| \cs{l_tmpb_fp} |}|
+% \cs{fp_show:N} \cs{l_tmpb_fp}
+% \end{quote}
+% defines~|A| to be a variable, then defines \cs{l_tmpb_fp} to stand for
+% |1*sin(A)+9| (note that |3**2| is evaluated, but the |1*|~product is
+% not simplified away). Until \cs{l_tmpb_fp} is changed, \cs{fp_show:N}
+% \cs{l_tmpb_fp} will show |((1*sin(A))+9)| regardless of the value
+% of~|A|. The next step defines~|A| to be equal to~|pi/2|: then
+% \cs{fp_show:n} |{| \cs{l_tmpb_fp} |}| will evaluate \cs{l_tmpb_fp} and
+% show~|10|. We then redefine~|A| to be~|0|: since \cs{l_tmpb_fp} still
+% stands for |1*sin(A)+9|, the value shown is then~|9|. Variables can
+% be set with \cs{fp_set_variable:nn} to arbitrary floating point
+% expressions including other variables.
+%
+% \begin{function}[added = 2023-10-19]{\fp_new_variable:n}
+% \begin{syntax}
+% \cs{fp_new_variable:n} \Arg{identifier}
+% \end{syntax}
+% Declares the \meta{identifier} as a variable, which allows it to be
+% used in floating point expressions. For instance,
+% \begin{quote}
+% \cs{fp_new_variable:n} |{ A }| \\
+% \cs{fp_show:n} |{ A**2 - A + 1 }|
+% \end{quote}
+% shows |(((A^2)-A)+1)|. If the declaration was missing, the parser
+% would complain about an \enquote{\texttt{Unknown fp word 'A'}}. The
+% \meta{identifier} must consist entirely of Latin letters among
+% |[a-zA-Z]|.
+% \end{function}
+%
+% \begin{function}[added = 2023-10-19]{\fp_set_variable:nn}
+% \begin{syntax}
+% \cs{fp_set_variable:nn} \Arg{identifier} \Arg{fp expr}
+% \end{syntax}
+% Defines the \meta{identifier} to stand in any further expression for
+% the result of evaluating the \meta{floating point expression} as
+% much as possible. The result may contain other variables, which are
+% then replaced by their values if they have any. For instance,
+% \begin{quote}\let\obeyedline=\newline\obeylines^^A
+% \cs{fp_new_variable:n} |{ A }|
+% \cs{fp_new_variable:n} |{ B }|
+% \cs{fp_new_variable:n} |{ C }|
+% \cs{fp_set_variable:nn} |{ A } { 3 }|
+% \cs{fp_set_variable:nn} |{ C } { A ** 2 + B * 1 }|
+% \cs{fp_show:n} |{ C + 4 }|
+% \cs{fp_set_variable:nn} |{ A } { 4 }|
+% \cs{fp_show:n} |{ C + 4 }|
+% \end{quote}
+% shows |((9+(B*1))+4)| twice: changing the value of~|A| to~|4| does
+% not alter~|C| because |A|~was replaced by its value~|3| when
+% evaluating |A**2+B*1|.
+% \end{function}
+%
+% \begin{function}[added = 2023-10-19]{\fp_clear_variable:n}
+% \begin{syntax}
+% \cs{fp_clear_variable:n} \Arg{identifier}
+% \end{syntax}
+% Removes any value given by \cs{fp_set_variable:nn} to the variable
+% with this \meta{identifier}. For instance,
+% \begin{quote}\let\obeyedline=\newline\obeylines^^A
+% \cs{fp_new_variable:n} |{ A }|
+% \cs{fp_set_variable:nn} |{ A } { 3 }|
+% \cs{fp_show:n} |{ A ^ 2 }|
+% \cs{fp_clear_variable:n} |{ A }|
+% \cs{fp_show:n} |{ A ^ 2 }|
+% \end{quote}
+% shows~|9|, then~|(A^2)|.
+% \end{function}
+%
+% \section{User-defined functions}
+%
+% It is possible to define new user functions which can be used inside
+% the argument to \cs{fp_eval:n}, etc. These functions may take one or
+% more named arguments, and should be implemented using expansion methods
+% only.
+%
+% \begin{function}[added = 2023-10-19]{\fp_new_function:n}
+% \begin{syntax}
+% \cs{fp_new_function:n} \Arg{identifier}
+% \end{syntax}
+% Declares the \meta{identifier} as a function, which allows it to be
+% used in floating point expressions. For instance,
+% \begin{quote}
+% \cs{fp_new_function:n} |{ foo }| \\
+% \cs{fp_show:n} |{ foo ( 1 + 2 , foo(3), A ) ** 2 } }|
+% \end{quote}
+% shows |(foo(3, foo(3), A))^(2)|. If the declaration was missing,
+% the parser would complain about an \enquote{\texttt{Unknown fp word 'foo'}}.
+% The \meta{identifier} must consist entirely of Latin letters |[a-zA-Z]|.
+% \end{function}
+%
+% \begin{function}[added = 2023-10-19]{\fp_set_function:nnn}
+% \begin{syntax}
+% \cs{fp_set_function:nnn} \Arg{identifier} \Arg{vars} \Arg{fp expr}
+% \end{syntax}
+% Defines the \meta{identifier} to stand in any further expression for
+% the result of evaluating the \meta{floating point expression}, with
+% the \meta{identifier} accepting the \meta{vars} (a comma list).
+% The result may contain other functions, which are
+% then replaced by their results if they have any. For instance,
+% \begin{quote}
+% \cs{fp_new_function:n} |{ foo }| \\
+% \cs{fp_set_function:nnn} |{ npow } { a,b } { a**b }| \\
+% \cs{fp_show:n} |{ npow(16,0.25) } }|
+% \end{quote}
+% shows |2|. The names of the \meta{vars} must
+% consist entirely of Latin letters |[a-zA-Z]|, but are otherwise not
+% restricted: in particular, they are independent of any variables
+% declared by \cs{fp_new_variable:n}.
+% \end{function}
+%
+% \begin{function}[added = 2023-10-19]{\fp_clear_function:n}
+% \begin{syntax}
+% \cs{fp_clear_function:n} \Arg{identifier}
+% \end{syntax}
+% Removes any definition given by \cs{fp_set_function:nnn} to the function
+% with this \meta{identifier}.
+% \end{function}
+%
% \section{Some useful constants, and scratch variables}
%
% \begin{variable}[added = 2012-05-08, module = fp]{\c_zero_fp, \c_minus_zero_fp}
@@ -1417,7 +1549,7 @@
% \begin{function}[EXP, added = 2012-09-26, tested = m3fp-convert003]
% {\fp_max:nn, \fp_min:nn}
% \begin{syntax}
-% \cs{fp_max:nn} \Arg{fp expression 1} \Arg{fp expression 2}
+% \cs{fp_max:nn} \Arg{fp expr_1} \Arg{fp expr_2}
% \end{syntax}
% Evaluates the \meta{fp exprs} as described for
% \cs{fp_eval:n} and leaves the resulting larger (\texttt{max}) or
diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx
index 9929135baa..36d84a593d 100644
--- a/macros/latex/contrib/l3kernel/l3fparray.dtx
+++ b/macros/latex/contrib/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx
index e012e191d2..c1dc697e71 100644
--- a/macros/latex/contrib/l3kernel/l3int.dtx
+++ b/macros/latex/contrib/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -94,7 +94,7 @@
% \int_show:n { \l_my_tl + \l_my_int * 3 - ( 3 + 4 * 5 ) }
% \end{verbatim}
% show the same result $-6$ because \cs[no-index]{l_my_tl} expands to
-% the integer denotation~|5| while the integer variable \cs{l_my_int}
+% the integer denotation~|5| while the integer variable \cs[no-index]{l_my_int}
% takes the value~$4$. As the \meta{integer expression} is fully
% expanded from left to right during evaluation, fully expandable and
% restricted-expandable functions can both be used, and \cs{exp_not:n}
diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx
index 10458ad602..cbfdc48666 100644
--- a/macros/latex/contrib/l3kernel/l3intarray.dtx
+++ b/macros/latex/contrib/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
index d517f72a22..ce3ab20970 100644
--- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index 95ddcd0a38..9fea120c91 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -385,10 +385,10 @@
% \begin{syntax}
% \meta{key} .legacy_if_set:n = \meta{switch}
% \end{syntax}
-% Defines \meta{key} to set legacy \cs{if} \meta{switch} to \meta{value}
+% Defines \meta{key} to set legacy \cs[no-index]{if\meta{switch}} to \meta{value}
% (which must be either \enquote{\texttt{true}} or \enquote{\texttt{false}}).
% The \meta{switch} is the name of the switch \emph{without the leading
-% \cs{if}}.
+% \texttt{if}}.
%
% The \texttt{inverse} versions will set the \meta{switch} to the logical
% opposite of the \meta{value}.
@@ -740,16 +740,12 @@
% \end{function}
%
% \begin{variable}[updated = 2020-02-08]
-% {\l_keys_key_str, \l_keys_path_str, \l_keys_value_tl}
+% {\l_keys_path_str, \l_keys_key_str, \l_keys_value_tl}
% For each key processed, information of the full \emph{path} of the
% key, the \emph{name} of the key and the \emph{value} of the key is
% available within two string and one token list variables.
% These may be used within the code of the key.
%
-% The \emph{value} is everything after the \texttt{=}, which may be
-% empty if no value was given. This is stored in \cs{l_keys_value_tl}, and
-% is not processed in any way by \cs{keys_set:nn}.
-%
% The \emph{path} of the key is a \enquote{full} description of the key,
% and is unique for each key. It consists of the module and full key name,
% thus for example
@@ -767,6 +763,10 @@
% \texttt{/}, and thus is not unique. In the preceding examples, both keys
% have name \texttt{key-a} despite having different paths. This information
% is stored in \cs{l_keys_key_str}.
+%
+% The \emph{value} is everything after the \texttt{=}, which may be
+% empty if no value was given. This is stored in \cs{l_keys_value_tl}, and
+% is not processed in any way by \cs{keys_set:nn}.
% \end{variable}
%
% \section{Handling of unknown keys}
@@ -788,10 +788,10 @@
% {
% \keys_set_known:nn, \keys_set_known:nV,
% \keys_set_known:nv, \keys_set_known:ne,
-% \keys_set_known:no
+% \keys_set_known:no,
% \keys_set_known:nnN, \keys_set_known:nVN,
% \keys_set_known:nvN, \keys_set_known:neN,
-% \keys_set_known:noN
+% \keys_set_known:noN,
% \keys_set_known:nnnN, \keys_set_known:nVnN,
% \keys_set_known:nvnN, \keys_set_known:nenN,
% \keys_set_known:nonN
diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx
index 92b8cdb971..78adefa2da 100644
--- a/macros/latex/contrib/l3kernel/l3legacy.dtx
+++ b/macros/latex/contrib/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -60,7 +60,7 @@
% \cs{legacy_if:nTF} \Arg{name} \Arg{true code} \Arg{false code}
% \end{syntax}
% Tests if the \LaTeXe{}/plain \TeX{} conditional (generated by \tn{newif})
-% if \texttt{true} or \texttt{false} and branches accordingly. The
+% is \texttt{true} or \texttt{false} and branches accordingly. The
% \meta{name} of the conditional should \emph{omit} the leading \texttt{if}.
% \end{function}
%
diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx
index c7832c892d..c0ec4f69a0 100644
--- a/macros/latex/contrib/l3kernel/l3luatex.dtx
+++ b/macros/latex/contrib/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx
index 4feb4115a1..382aab68dd 100644
--- a/macros/latex/contrib/l3kernel/l3msg.dtx
+++ b/macros/latex/contrib/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx
index f299b21579..e85262831f 100644
--- a/macros/latex/contrib/l3kernel/l3names.dtx
+++ b/macros/latex/contrib/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf
index 7f0effadb8..b5c1844444 100644
--- a/macros/latex/contrib/l3kernel/l3news.pdf
+++ b/macros/latex/contrib/l3kernel/l3news.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf
index 5508abfcc9..4d0a8ae25d 100644
--- a/macros/latex/contrib/l3kernel/l3news01.pdf
+++ b/macros/latex/contrib/l3kernel/l3news01.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf
index 13e40ab8bd..7342946a43 100644
--- a/macros/latex/contrib/l3kernel/l3news02.pdf
+++ b/macros/latex/contrib/l3kernel/l3news02.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf
index f80fc2a519..331b9cf1b4 100644
--- a/macros/latex/contrib/l3kernel/l3news03.pdf
+++ b/macros/latex/contrib/l3kernel/l3news03.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf
index c33cbf0cac..b860cf5ff4 100644
--- a/macros/latex/contrib/l3kernel/l3news04.pdf
+++ b/macros/latex/contrib/l3kernel/l3news04.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf
index ffe3a03c6c..7e616f5a29 100644
--- a/macros/latex/contrib/l3kernel/l3news05.pdf
+++ b/macros/latex/contrib/l3kernel/l3news05.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf
index e25a8421bb..77334146c0 100644
--- a/macros/latex/contrib/l3kernel/l3news06.pdf
+++ b/macros/latex/contrib/l3kernel/l3news06.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf
index 4159983011..1193adac7e 100644
--- a/macros/latex/contrib/l3kernel/l3news07.pdf
+++ b/macros/latex/contrib/l3kernel/l3news07.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf
index 8d74fc5968..ae70965ba3 100644
--- a/macros/latex/contrib/l3kernel/l3news08.pdf
+++ b/macros/latex/contrib/l3kernel/l3news08.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf
index d4c60d81f7..d9791e7186 100644
--- a/macros/latex/contrib/l3kernel/l3news09.pdf
+++ b/macros/latex/contrib/l3kernel/l3news09.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf
index 7b5dcec9cc..366041530a 100644
--- a/macros/latex/contrib/l3kernel/l3news10.pdf
+++ b/macros/latex/contrib/l3kernel/l3news10.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf
index 1cfeef5b06..410448f654 100644
--- a/macros/latex/contrib/l3kernel/l3news11.pdf
+++ b/macros/latex/contrib/l3kernel/l3news11.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf
index cd159d28f3..127946bd80 100644
--- a/macros/latex/contrib/l3kernel/l3news12.pdf
+++ b/macros/latex/contrib/l3kernel/l3news12.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx
index f583b393ca..9c6172caaf 100644
--- a/macros/latex/contrib/l3kernel/l3pdf.dtx
+++ b/macros/latex/contrib/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.csv b/macros/latex/contrib/l3kernel/l3prefixes.csv
index 710da8edbe..8b4ead7bf3 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.csv
+++ b/macros/latex/contrib/l3kernel/l3prefixes.csv
@@ -22,6 +22,7 @@ backslash,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,h
bearwear,bearwear,Ulrike Fischer,https://github.com/u-fischer/bearwear,https://github.com/u-fischer/bearwear,https://github.com/u-fischer/bearwear/issues,2020-04-24,2020-04-24,
beuron,beuron,Keno Wehr,https://ctan.org/pkg/beuron,,,2021-08-23,2021-08-23,
bitset,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-12-26,2020-12-26,
+block,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2023-10-17,2023-10-17,
bool,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
box,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
bxjh,BXjaholiday,Takuto Asakura,https://github.com/wtsnjp/BXjaholiday,https://github.com/wtsnjp/BXjaholiday.git,https://github.com/wtsnjp/BXjaholiday/issues,2018-02-02,2019-02-02,
@@ -92,6 +93,7 @@ fltr,newlfm,Paul Thomson,,,,2013-01-29,2013-01-29,
fmdug,dashundergaps,Frank Mittelbach,https://www.latex-project.org/,https://github.com/FrankMittelbach/fmitex-dashundergaps.git,https://github.com/FrankMittelbach/fmitex-dashundergaps/issues,2018-06-24,2021-10-11,
fmuft,unicodefonttable,Frank Mittelbach,https://www.latex-project.org/,https://github.com/FrankMittelbach/fmitex-unicodefonttable.git,https://github.com/FrankMittelbach/fmitex-unicodefonttable/issues,2020-02-17,2021-10-11,
fmwao,widows-and-orphans,Frank Mittelbach,https://www.latex-project.org/,https://github.com/FrankMittelbach/fmitex-widows-and-orphans.git,https://github.com/FrankMittelbach/fmitex-widows-and-orphans/issues,2018-09-26,2018-09-26,
+fnote,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2023-10-17,2023-10-17,
fnpct,fnpct,Clemens Niederberger,https://github.com/cgnieder/fnpct/,https://github.com/cgnieder/fnpct.git,https://github.com/cgnieder/fnpct/issues,2013-03-16,2020-04-14,
fontsizes,fontsizes,Julien Rivaud,,,,,2018-06-13,
fontspec,fontspec,Will Robertson,https://github.com/wspr/fontspec,https://github.com/wspr/fontspec.git,https://github.com/wspr/fontspec/issues,2013-03-16,2013-03-16,
@@ -227,6 +229,8 @@ silly,sillypage,Paulo Cereda,https://github.com/cereda/sillypage,https://github.
siunitx,siunitx,Joseph Wright,https://github.com/josephwright/siunitx,https://github.com/josephwright/siunitx.git,https://github.com/josephwright/siunitx/issues,2012-11-04,2012-11-04,
skel,skeldoc,Magnus Lie Hetland,https://github.com/mlhetland/skeldoc.sty,https://github.com/mlhetland/skeldoc.sty.git,https://github.com/mlhetland/skeldoc.sty/issues,2021-01-04,2021-01-04,
skip,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
+slcd,se2thesis,Stephan Lukasczyk,https://github.com/se2p/se2thesis,https://github.com/se2p/se2thesis,https://github.com/se2p/se2thesis/issues,2023-10-18,2023-10-18,
+socket,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2023-10-17,2023-10-17,
sort,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2017-02-13,
space,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
starray,starray,Alceu Frigeri,https://github.com/alceu-frigeri/starray,https://github.com/alceu-frigeri/starray,https://github.com/alceu-frigeri/starray/issues,2023-05-15,2023-05-15,
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf
index 5d41b138f0..de3f86bdb7 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.pdf
+++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx
index e3f09d90d3..c676e7343e 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -581,7 +581,7 @@
% \begin{syntax}
% \cs{bool_until_do:Nn} \meta{boolean} \Arg{code}
% \end{syntax}
-% This function firsts checks the logical value of the \meta{boolean}.
+% This function first checks the logical value of the \meta{boolean}.
% If it is \texttt{false} the \meta{code} is placed in the input stream
% and expanded. After the completion of the \meta{code} the truth
% of the \meta{boolean} is re-evaluated. The process then loops
@@ -592,7 +592,7 @@
% \begin{syntax}
% \cs{bool_while_do:Nn} \meta{boolean} \Arg{code}
% \end{syntax}
-% This function firsts checks the logical value of the \meta{boolean}.
+% This function first checks the logical value of the \meta{boolean}.
% If it is \texttt{true} the \meta{code} is placed in the input stream
% and expanded. After the completion of the \meta{code} the truth
% of the \meta{boolean} is re-evaluated. The process then loops
@@ -627,7 +627,7 @@
% \begin{syntax}
% \cs{bool_until_do:nn} \Arg{boolean expression} \Arg{code}
% \end{syntax}
-% This function firsts checks the logical value of the
+% This function first checks the logical value of the
% \meta{boolean expression} (as described for \cs{bool_if:nTF}).
% If it is \texttt{false} the \meta{code} is placed in the input stream
% and expanded. After the completion of the \meta{code} the truth
@@ -639,7 +639,7 @@
% \begin{syntax}
% \cs{bool_while_do:nn} \Arg{boolean expression} \Arg{code}
% \end{syntax}
-% This function firsts checks the logical value of the
+% This function first checks the logical value of the
% \meta{boolean expression} (as described for \cs{bool_if:nTF}).
% If it is \texttt{true} the \meta{code} is placed in the input stream
% and expanded. After the completion of the \meta{code} the truth
@@ -808,7 +808,8 @@
% \cs{prg_break:n} \Arg{code} \ldots{} \cs{prg_break_point:}
% \end{syntax}
% Breaks a recursion which has no \meta{ending code} and which is not
-% a user-breakable mapping (see for instance \cs{prop_get:Nn}), and
+% a user-breakable mapping (see for instance
+% implementation of \cs{int_step_function:nnnN}), and
% inserts the \meta{code} in the input stream.
% \end{function}
%
diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx
index 69cafe1cff..8fb7648af5 100644
--- a/macros/latex/contrib/l3kernel/l3prop.dtx
+++ b/macros/latex/contrib/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -60,7 +60,7 @@
% Each entry in a property list must have a unique \meta{key}: if an entry is
% added to a property list which already contains the \meta{key} then the new
% entry overwrites the existing one. The \meta{keys} are compared on a
-% string basis, using the same method as \cs{str_if_eq:nn}.
+% string basis, using the same method as \cs{str_if_eq:nnTF}.
%
% Property lists are intended for storing key-based information for use within
% code. This is in contrast to key--value lists, which are a form of
diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx
index 1a1e1aaf1f..d515229582 100644
--- a/macros/latex/contrib/l3kernel/l3quark.dtx
+++ b/macros/latex/contrib/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx
index 87dfcec47b..cd7bd9f33b 100644
--- a/macros/latex/contrib/l3kernel/l3regex.dtx
+++ b/macros/latex/contrib/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -921,7 +921,7 @@
% \item Optimize states with a single \cs[no-index]{__regex_action_free:n}.
% \item Optimize the use of \cs[no-index]{__regex_action_success:} by inserting it
% in state $2$ directly instead of having an extra transition.
-% \item Optimize the use of \cs{int_step_...} functions.
+% \item Optimize the use of \cs[no-index]{int_step_...} functions.
% \item Groups don't capture within regexes for csnames; optimize and
% document.
% \item Better \enquote{show} for anchors, properties, and catcode tests.
@@ -930,7 +930,7 @@
% numbers.
% \item Instead of checking whether the character is special or
% alphanumeric using its character code, check if it is special in
-% regexes with \cs{cs_if_exist} tests.
+% regexes with \cs[no-index]{cs_if_exist} tests.
% \end{itemize}
%
% The following features are likely to be implemented at some point
diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx
index 9572261d46..56662dc623 100644
--- a/macros/latex/contrib/l3kernel/l3seq.dtx
+++ b/macros/latex/contrib/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx
index 0371b7ecad..3130ef8597 100644
--- a/macros/latex/contrib/l3kernel/l3skip.dtx
+++ b/macros/latex/contrib/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx
index 6837e7fb0e..0a987712f3 100644
--- a/macros/latex/contrib/l3kernel/l3sort.dtx
+++ b/macros/latex/contrib/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx
index f4bfaf2c2c..c4fc416d42 100644
--- a/macros/latex/contrib/l3kernel/l3str-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx
index 300a779bd1..99c0f980a5 100644
--- a/macros/latex/contrib/l3kernel/l3str.dtx
+++ b/macros/latex/contrib/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -752,7 +752,7 @@
% \item Case changing text for typesetting: see the
% \cs[index=text_lowercase:n]{text_lowercase:n(n)},
% \cs[index=text_uppercase:n]{text_uppercase:n(n)} and
-% \cs[index=text_titlecase:n]{text_titlecase:n(n)} functions which
+% \cs[index=text_titlecase_all:n]{text_titlecase_(all|once):n(n)} functions which
% correctly deal with context-dependence and other factors appropriate
% to text case changing.
% \end{itemize}
@@ -1138,7 +1138,7 @@
% \end{macro}
%
% \begin{macro}[EXP]{\@@_if_eq:nn}
-% String comparisons rely on the primitive \cs[index=pdfstrcmp]{(pdf)strcmp},
+% String comparisons rely on the primitive \tn[index=pdfstrcmp]{(pdf)strcmp},
% so we define a new name for it.
% \begin{macrocode}
\cs_new_eq:NN \@@_if_eq:nn \tex_strcmp:D
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf
index 16d307e028..945554d2f4 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.pdf
+++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex
index 29c2f76864..995a5d3668 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.tex
+++ b/macros/latex/contrib/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-10-10}
+\date{Released 2023-10-23}
\begin{document}
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
index 5c4fe8ad1d..f2db75a12a 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
index dbb6d858b4..d93e7bc8dc 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-10-10}
+\date{Released 2023-10-23}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx
index 5e57590767..577e4daa19 100644
--- a/macros/latex/contrib/l3kernel/l3sys.dtx
+++ b/macros/latex/contrib/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -299,7 +299,7 @@
% enabled. This returns false if unrestricted shell escape is
% enabled. Unrestricted shell escape is not considered a superset
% of restricted shell escape in this case. To find whether any
-% shell escape is enabled use \cs{sys_if_shell:}.
+% shell escape is enabled use \cs{sys_if_shell:TF}.
% \end{function}
%
% \begin{function}[added = 2017-05-27]
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
index ebe1f75c91..ffdbc76f29 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex
index bd166834ac..25a510d9e6 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.tex
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-10-10}
+\date{Released 2023-10-23}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx
index 0e20a797f0..e34e9043a5 100644
--- a/macros/latex/contrib/l3kernel/l3text-case.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -77,16 +77,17 @@
% {
% \text_lowercase:n,
% \text_uppercase:n,
-% \text_titlecase:n,
+% \text_titlecase_all:n,
% \text_titlecase_first:n
% }
% \begin{macro}[EXP]
% {
% \text_lowercase:nn,
% \text_uppercase:nn,
-% \text_titlecase:nn,
+% \text_titlecase_all:nn,
% \text_titlecase_first:nn
% }
+% \begin{macro}[EXP]{\@@_change_case:nnn}
% The user level functions here are all wrappers around the internal
% functions for case changing.
% \begin{macrocode}
@@ -94,31 +95,34 @@
{ \@@_change_case:nnn { lower } { } {#1} }
\cs_new:Npn \text_uppercase:n #1
{ \@@_change_case:nnn { upper } { } {#1} }
-\cs_new:Npn \text_titlecase:n #1
+\cs_new:Npn \text_titlecase_all:n #1
{ \@@_change_case:nnn { title } { } {#1} }
\cs_new:Npn \text_titlecase_first:n #1
- { \@@_change_case:nnn { titleonly } { } {#1} }
+ { \@@_change_case:nnnn { title } { break } { } {#1} }
\cs_new:Npn \text_lowercase:nn #1#2
{ \@@_change_case:nnn { lower } {#1} {#2} }
\cs_new:Npn \text_uppercase:nn #1#2
{ \@@_change_case:nnn { upper } {#1} {#2} }
-\cs_new:Npn \text_titlecase:nn #1#2
+\cs_new:Npn \text_titlecase_all:nn #1#2
{ \@@_change_case:nnn { title } {#1} {#2} }
\cs_new:Npn \text_titlecase_first:nn #1#2
- { \@@_change_case:nnn { titleonly } {#1} {#2} }
+ { \@@_change_case:nnnn { title } { break } {#1} {#2} }
+\cs_new:Npn \@@_change_case:nnn #1#2#3
+ { \@@_change_case:nnnn {#1} {#1} {#2} {#3} }
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}[EXP]
% {
-% \@@_change_case:nnn ,
-% \@@_change_case_auxi:nnn ,
-% \@@_change_case_auxii:nnn
+% \@@_change_case:nnnn ,
+% \@@_change_case_auxi:nnnn ,
+% \@@_change_case_auxii:nnnn
% }
-% \begin{macro}[EXP]{\@@_change_case_BCP:nnn}
-% \begin{macro}[EXP]{\@@_change_case_BCP:nnw}
-% \begin{macro}[EXP]{\@@_change_case_BCP:nnnnw}
+% \begin{macro}[EXP]{\@@_change_case_BCP:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_BCP:nnnw}
+% \begin{macro}[EXP]{\@@_change_case_BCP:nnnnnw}
% \begin{macro}[EXP]
% {
% \@@_change_case_store:n, \@@_change_case_store:o,
@@ -128,74 +132,69 @@
% \begin{macro}[EXP]{\@@_change_case_store:nw}
% \begin{macro}[EXP]{\@@_change_case_result:n}
% \begin{macro}[EXP]{\@@_change_case_end:w}
-% \begin{macro}[EXP]{\@@_change_case_loop:nnw}
-% \begin{macro}[EXP]{\@@_change_case_break:w}
+% \begin{macro}[EXP]{\@@_change_case_loop:nnnw}
+% \begin{macro}[EXP]{\@@_change_case_break:w, \@@_change_case_break_aux:w}
% \begin{macro}[EXP]
% {
-% \@@_change_case_group_lower:nnn ,
-% \@@_change_case_group_upper:nnn ,
-% \@@_change_case_group_title:nnn ,
-% \@@_change_case_group_titleonly:nnn
+% \@@_change_case_group_lower:nnnn ,
+% \@@_change_case_group_upper:nnnn ,
+% \@@_change_case_group_title:nnnn
% }
-% \begin{macro}[EXP]{\@@_change_case_space:nnw}
% \begin{macro}[EXP]
-% {\@@_change_case_N_type:nnN, \@@_change_case_N_type_aux:nnN}
-% \begin{macro}[EXP]{\@@_change_case_N_type:nnnN}
-% \begin{macro}[EXP]{\@@_change_case_math_search:nnNNN}
-% \begin{macro}[EXP]{\@@_change_case_math_loop:nnNw}
-% \begin{macro}[EXP]{\@@_change_case_math_N_type:nnNN}
-% \begin{macro}[EXP]{\@@_change_case_math_group:nnNn}
-% \begin{macro}[EXP]{\@@_change_case_math_space:nnNw}
-% \begin{macro}[EXP]{\@@_change_case_cs_check:nnN}
-% \begin{macro}[EXP]{\@@_change_case_exclude:nnN}
-% \begin{macro}[EXP]{\@@_change_case_exclude:nnnN}
-% \begin{macro}[EXP]{\@@_change_case_exclude:nnNN}
-% \begin{macro}[EXP]{\@@_change_case_exclude:nnNw}
-% \begin{macro}[EXP]{\@@_change_case_exclude:nnNnn}
-% \begin{macro}[EXP]{\@@_change_case_replace:nnN}
-% \begin{macro}[EXP]{\@@_change_case_replace:nnn, \@@_change_case_replace:vnn}
-% \begin{macro}[EXP]{\@@_change_case_switch:nnN}
+% {\@@_change_case_space:nnnw, \@@_change_case_space_break:nnnw}
% \begin{macro}[EXP]
-% {
-% \@@_change_case_switch_lower:nnNnnnn ,
-% \@@_change_case_switch_upper:nnNnnnn ,
-% \@@_change_case_switch_title:nnNnnnn ,
-% \@@_change_case_switch_titleonly:nnNnnnn
-% }
+% {\@@_change_case_N_type:nnnN, \@@_change_case_N_type_aux:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_N_type:nnnnN}
+% \begin{macro}[EXP]{\@@_change_case_math_search:nnnNNN}
+% \begin{macro}[EXP]{\@@_change_case_math_loop:nnnNw}
+% \begin{macro}[EXP]{\@@_change_case_math_N_type:nnnNN}
+% \begin{macro}[EXP]{\@@_change_case_math_group:nnnNn}
+% \begin{macro}[EXP]{\@@_change_case_math_space:nnnNw}
+% \begin{macro}[EXP]{\@@_change_case_cs_check:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_exclude:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_exclude:nnnnN}
+% \begin{macro}[EXP]{\@@_change_case_exclude:nnnNN}
+% \begin{macro}[EXP]{\@@_change_case_exclude:nnnNw}
+% \begin{macro}[EXP]{\@@_change_case_exclude:nnnNnn}
+% \begin{macro}[EXP]{\@@_change_case_replace:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_replace:nnnn, \@@_change_case_replace:vnnn}
+% \begin{macro}[EXP]{\@@_change_case_switch:nnnN}
% \begin{macro}[EXP]
% {
-% \@@_change_case_letterlike_lower:nnN ,
-% \@@_change_case_letterlike_upper:nnN ,
-% \@@_change_case_letterlike_title:nnN ,
-% \@@_change_case_letterlike_titleonly:nnN
+% \@@_change_case_switch_lower:nnnNnnnn ,
+% \@@_change_case_switch_upper:nnnNnnnn ,
+% \@@_change_case_switch_title:nnnNnnnn
% }
-% \begin{macro}[EXP]{\@@_change_case_letterlike:nnnnN}
+% \begin{macro}[EXP]{\@@_change_case_skip:nnw}
+% \begin{macro}[EXP]{\@@_change_case_skip_N_type:nnN}
+% \begin{macro}[EXP]{\@@_change_case_skip_group:nnn}
+% \begin{macro}[EXP]{\@@_change_case_skip_space:nnw}
% \begin{macro}[EXP]
% {
-% \@@_change_case_custom_lower:nnn ,
-% \@@_change_case_custom_title:nnn ,
-% \@@_change_case_custom_upper:nnn ,
-% \@@_change_case_custom_titleonly:nnn
+% \@@_change_case_letterlike_lower:nnnN ,
+% \@@_change_case_letterlike_upper:nnnN ,
+% \@@_change_case_letterlike_title:nnnN
% }
-% \begin{macro}[EXP]{\@@_change_case_custom:nnn}
+% \begin{macro}[EXP]{\@@_change_case_letterlike:nnnnnN}
% \begin{macro}[EXP]
% {
-% \@@_change_case_codepoint_lower:nnn ,
-% \@@_change_case_codepoint_upper:nnn ,
-% \@@_change_case_codepoint_title:nnn ,
-% \@@_change_case_codepoint_titleonly:nnn
+% \@@_change_case_custom_lower:nnnn ,
+% \@@_change_case_custom_title:nnnn ,
+% \@@_change_case_custom_upper:nnnn
% }
-% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnn}
-% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnw}
-% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_custom:nnnnn}
% \begin{macro}[EXP]
% {
-% \@@_change_case_codepoint_title:nn ,
-% \@@_change_case_codepoint_titleonly:nn
+% \@@_change_case_codepoint_lower:nnnn ,
+% \@@_change_case_codepoint_upper:nnnn ,
+% \@@_change_case_codepoint_title:nnnn
% }
-% \begin{macro}[EXP]{\@@_change_case_codepoint_title:nnnn}
-% \begin{macro}[EXP]
-% {\@@_change_case_codepoint:nnnn, \@@_change_case_codepoint_aux:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnnn}
+% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnnw}
+% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnnN}
+% \begin{macro}[EXP]{\@@_change_case_codepoint_title:nnn}
+% \begin{macro}[EXP]{\@@_change_case_codepoint_title:nnnnn}
+% \begin{macro}[EXP]{\@@_change_case_codepoint:nnnnn}
% \begin{macro}[EXP]{\@@_change_case_codepoint:nn}
% \begin{macro}[EXP]
% {
@@ -203,13 +202,15 @@
% \@@_change_case_codepoint:fnn ,
% \@@_change_case_codepoint_aux:nnn
% }
+% \begin{macro}[EXP]{\@@_change_case_codepoint_aux:nnn}
+% \begin{macro}[EXP]{\@@_change_case_codepoint_aux:nn}
+% \begin{macro}[EXP]{\@@_change_case_catcode:nn}
% \begin{macro}[EXP]
% {
-% \@@_change_case_next_lower:nn ,
-% \@@_change_case_next_upper:nn ,
-% \@@_change_case_next_title:nn ,
-% \@@_change_case_next_titleonly:nn ,
-% \@@_change_case_next_end:nn
+% \@@_change_case_next_lower:nnn ,
+% \@@_change_case_next_upper:nnn ,
+% \@@_change_case_next_title:nnn ,
+% \@@_change_case_next_end:nnn
% }
% As for the expansion code, the business end of case changing is the
% handling of \texttt{N}-type tokens. First, we expand the input fully
@@ -231,45 +232,50 @@
% wrap the entire result in exactly one \cs{exp_not:n}, or rather in the
% kernel version.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case:nnn #1#2#3
+\cs_new:Npn \@@_change_case:nnnn #1#2#3#4
{
\__kernel_exp_not:w \exp_after:wN
{
\exp:w
- \exp_args:Ne \@@_change_case_auxi:nnn
- { \text_expand:n {#3} }
- {#1} {#2}
+ \exp_args:Ne \@@_change_case_auxi:nnnn
+ { \text_expand:n {#4} }
+ {#1} {#2} {#3}
}
}
-\cs_new:Npn \@@_change_case_auxi:nnn #1#2#3
- { \exp_args:No \@@_change_case_BCP:nnn { \tl_to_str:n {#3} } {#1} {#2} }
-\cs_new:Npe \@@_change_case_BCP:nnn #1#2#3
+\cs_new:Npn \@@_change_case_auxi:nnnn #1#2#3#4
{
- \exp_not:N \@@_change_case_BCP:nnw
- {#2} {#3} #1 \tl_to_str:n { -x- -x- } \exp_not:N \q_@@_stop
+ \exp_args:No \@@_change_case_BCP:nnnn
+ { \tl_to_str:n {#4} } {#1} {#2} {#3}
+ }
+\cs_new:Npe \@@_change_case_BCP:nnnn #1#2#3#4
+ {
+ \exp_not:N \@@_change_case_BCP:nnnw
+ {#2} {#3} {#4} #1 \tl_to_str:n { -x- -x- } \exp_not:N \q_@@_stop
}
\use:e
{
- \cs_new:Npn \exp_not:N \@@_change_case_BCP:nnw
- #1#2#3 \tl_to_str:n { -x- } #4 \tl_to_str:n { -x- } #5
+ \cs_new:Npn \exp_not:N \@@_change_case_BCP:nnnw
+ #1#2#3#4 \tl_to_str:n { -x- } #5 \tl_to_str:n { -x- } #6
\exp_not:N \q_@@_stop
}
- { \@@_change_case_BCP:nnnnw {#1} {#2} {#4} {#3} #3 - - \q_@@_stop }
-\cs_new:Npn \@@_change_case_BCP:nnnnw #1#2#3#4#5 - #6 - #7 \q_@@_stop
+ { \@@_change_case_BCP:nnnnnw {#1} {#2} {#3} {#5} {#4} #4 - \q_@@_stop }
+\cs_new:Npn \@@_change_case_BCP:nnnnnw #1#2#3#4#5#6 - #7 \q_@@_stop
{
- \cs_if_exist:cTF { @@_change_case_ #2 _ #5 -x- #3 :nnnn }
- { \@@_change_case_auxii:nnn {#1} {#2} { #5 -x- #3 } }
+ \bool_lazy_or:nnTF
+ { \cs_if_exist_p:c { @@_change_case_ #2 _ #6 -x- #4 :nnnnn } }
+ { \tl_if_exist_p:c { l_@@_ #2 case_special_ #6 -x- #4 _tl } }
+ { \@@_change_case_auxii:nnnn {#1} {#2} {#3} { #6 -x- #4 } }
{
- \cs_if_exist:cTF { @@_change_case_ #2 _ #5 :nnnn }
- { \@@_change_case_auxii:nnn {#1} {#2} {#5} }
- { \@@_change_case_auxii:nnn {#1} {#2} {#4} }
+ \cs_if_exist:cTF { @@_change_case_ #2 _ #6 :nnnnn }
+ { \@@_change_case_auxii:nnnn {#1} {#2} {#3} {#6} }
+ { \@@_change_case_auxii:nnnn {#1} {#2} {#3} {#5} }
}
}
-\cs_new:Npn \@@_change_case_auxii:nnn #1#2#3
+\cs_new:Npn \@@_change_case_auxii:nnnn #1#2#3#4
{
\group_align_safe_begin:
- \cs_if_exist_use:c { @@_change_case_boundary_ #2 _ #3 :Nnnw }
- \@@_change_case_loop:nnw {#2} {#3} #1
+ \cs_if_exist_use:c { @@_change_case_boundary_ #2 _ #4 :Nnnnw }
+ \@@_change_case_loop:nnnw {#2} {#3} {#4} #1
\q_@@_recursion_tail \q_@@_recursion_stop
\@@_change_case_result:n { }
}
@@ -290,20 +296,23 @@
% \end{macrocode}
% The main loop is the standard \texttt{tl action} type.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_loop:nnw #1#2#3 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_loop:nnnw #1#2#3#4 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#3}
- { \@@_change_case_N_type:nnN }
+ \tl_if_head_is_N_type:nTF {#4}
+ { \@@_change_case_N_type:nnnN }
{
- \tl_if_head_is_group:nTF {#3}
- { \use:c { @@_change_case_group_ #1 :nnn } }
- { \@@_change_case_space:nnw }
+ \tl_if_head_is_group:nTF {#4}
+ { \use:c { @@_change_case_group_ #1 :nnnn } }
+ { \@@_change_case_space:nnnw }
}
- {#1} {#2} #3 \q_@@_recursion_stop
+ {#1} {#2} {#3} #4 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_break:w #1 \q_@@_recursion_tail \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_break:w
+ { \@@_change_case_break_aux:w \prg_do_nothing: }
+\cs_new:Npn \@@_change_case_break_aux:w
+ #1 \q_@@_recursion_tail \q_@@_recursion_stop
{
- \@@_change_case_store:n {#1}
+ \@@_change_case_store:o {#1}
\@@_change_case_end:w
}
% \end{macrocode}
@@ -315,53 +324,47 @@
% having too much testing, we use a two-step process here to allow the
% titlecase functions to be separate.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_group_lower:nnn #1#2#3
+\cs_new:Npn \@@_change_case_group_lower:nnnn #1#2#3#4
{
\@@_change_case_store:o
{
\exp_after:wN
{
\exp:w
- \@@_change_case_auxii:nnn {#3} {#1} {#2}
+ \@@_change_case_auxii:nnnn {#4} {#1} {#2} {#3}
}
}
- \@@_change_case_loop:nnw {#1} {#2}
+ \@@_change_case_loop:nnnw {#1} {#2} {#3}
}
-\cs_new_eq:NN \@@_change_case_group_upper:nnn
- \@@_change_case_group_lower:nnn
-\cs_new:Npn \@@_change_case_group_title:nnn #1#2#3
+\cs_new_eq:NN \@@_change_case_group_upper:nnnn
+ \@@_change_case_group_lower:nnnn
+\cs_new:Npn \@@_change_case_group_title:nnnn #1#2#3#4
{
\@@_change_case_store:o
{
\exp_after:wN
{
\exp:w
- \@@_change_case_auxii:nnn {#3} {#1} {#2}
+ \@@_change_case_auxii:nnnn {#4} {#1} {#2} {#3}
}
}
- \@@_change_case_loop:nnw { lower } {#2}
- }
-\cs_new:Npn \@@_change_case_group_titleonly:nnn #1#2#3
- {
- \@@_change_case_store:o
- {
- \exp_after:wN
- {
- \exp:w
- \@@_change_case_auxii:nnn {#3} {#1} {#2}
- }
- }
- \@@_change_case_break:w
+ \@@_change_case_skip:nnw {#2} {#3}
}
\use:e
{
- \cs_new:Npn \exp_not:N \@@_change_case_space:nnw #1#2 \c_space_tl
+ \cs_new:Npn \exp_not:N \@@_change_case_space:nnnw #1#2#3 \c_space_tl
}
{
\@@_change_case_store:n { ~ }
- \cs_if_exist_use:c { @@_change_case_boundary_ #1 _ #2 :Nnnw }
- \@@_change_case_loop:nnw {#1} {#2}
+ \cs_if_exist_use:cF { @@_change_case_space_ #2 :nnn }
+ {
+ \cs_if_exist_use:c { @@_change_case_boundary_ #1 _ #3 :Nnnnw }
+ \@@_change_case_loop:nnnw
+ }
+ {#2} {#2} {#3}
}
+\cs_new:Npn \@@_change_case_space_break:nnn #1#2#3
+ { \@@_change_case_break:w }
% \end{macrocode}
% The first step of handling \texttt{N}-type tokens is to filter out the
% end-of-loop. That has to be done separately from the first real step
@@ -371,85 +374,85 @@
% (i.e.~there is no assumption of \enquote{well-behaved} input in terms of
% math mode).
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_N_type:nnN #1#2#3
+\cs_new:Npn \@@_change_case_N_type:nnnN #1#2#3#4
{
- \@@_if_q_recursion_tail_stop_do:Nn #3
+ \@@_if_q_recursion_tail_stop_do:Nn #4
{ \@@_change_case_end:w }
- \@@_change_case_N_type_aux:nnN {#1} {#2} #3
+ \@@_change_case_N_type_aux:nnnN {#1} {#2} {#3} #4
}
-\cs_new:Npn \@@_change_case_N_type_aux:nnN #1#2#3
+\cs_new:Npn \@@_change_case_N_type_aux:nnnN #1#2#3#4
{
- \exp_args:NV \@@_change_case_N_type:nnnN
- \l_text_math_delims_tl {#1} {#2} #3
+ \exp_args:NV \@@_change_case_N_type:nnnnN
+ \l_text_math_delims_tl {#1} {#2} {#3} #4
}
-\cs_new:Npn \@@_change_case_N_type:nnnN #1#2#3#4
+\cs_new:Npn \@@_change_case_N_type:nnnnN #1#2#3#4#5
{
- \@@_change_case_math_search:nnNNN {#2} {#3} #4 #1
+ \@@_change_case_math_search:nnnNNN {#2} {#3} {#4} #5 #1
\q_@@_recursion_tail \q_@@_recursion_tail
\q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_math_search:nnNNN #1#2#3#4#5
+\cs_new:Npn \@@_change_case_math_search:nnnNNN #1#2#3#4#5#6
{
- \@@_if_q_recursion_tail_stop_do:Nn #4
- { \@@_change_case_cs_check:nnN {#1} {#2} #3 }
- \token_if_eq_meaning:NNTF #3 #4
+ \@@_if_q_recursion_tail_stop_do:Nn #5
+ { \@@_change_case_cs_check:nnnN {#1} {#2} {#3} #4 }
+ \token_if_eq_meaning:NNTF #4 #5
{
\@@_use_i_delimit_by_q_recursion_stop:nw
{
- \@@_change_case_store:n {#3}
- \@@_change_case_math_loop:nnNw {#1} {#2} #5
+ \@@_change_case_store:n {#4}
+ \@@_change_case_math_loop:nnnNw {#1} {#2} {#3} #6
}
}
- { \@@_change_case_math_search:nnNNN {#1} {#2} #3 }
+ { \@@_change_case_math_search:nnnNNN {#1} {#2} {#3} #4 }
}
-\cs_new:Npn \@@_change_case_math_loop:nnNw #1#2#3#4 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_math_loop:nnnNw #1#2#3#4#5 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_math_N_type:nnNN }
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_math_N_type:nnnNN }
{
- \tl_if_head_is_group:nTF {#4}
- { \@@_change_case_math_group:nnNn }
- { \@@_change_case_math_space:nnNw }
+ \tl_if_head_is_group:nTF {#5}
+ { \@@_change_case_math_group:nnnNn }
+ { \@@_change_case_math_space:nnnNw }
}
- {#1} {#2} #3 #4 \q_@@_recursion_stop
+ {#1} {#2} {#3} #4 #5 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_math_N_type:nnNN #1#2#3#4
+\cs_new:Npn \@@_change_case_math_N_type:nnnNN #1#2#3#4#5
{
- \@@_if_q_recursion_tail_stop_do:Nn #4
+ \@@_if_q_recursion_tail_stop_do:Nn #5
{ \@@_change_case_end:w }
- \@@_change_case_store:n {#4}
- \token_if_eq_meaning:NNTF #4 #3
- { \@@_change_case_loop:nnw {#1} {#2} }
- { \@@_change_case_math_loop:nnNw {#1} {#2} #3 }
+ \@@_change_case_store:n {#5}
+ \token_if_eq_meaning:NNTF #5 #4
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} }
+ { \@@_change_case_math_loop:nnnNw {#1} {#2} {#3} #4 }
}
-\cs_new:Npn \@@_change_case_math_group:nnNn #1#2#3#4
+\cs_new:Npn \@@_change_case_math_group:nnnNn #1#2#3#4#5
{
- \@@_change_case_store:n { {#4} }
- \@@_change_case_math_loop:nnNw {#1} {#2} #3
+ \@@_change_case_store:n { {#5} }
+ \@@_change_case_math_loop:nnnNw {#1} {#2} {#3} #4
}
\use:e
{
- \cs_new:Npn \exp_not:N \@@_change_case_math_space:nnNw #1#2#3
+ \cs_new:Npn \exp_not:N \@@_change_case_math_space:nnnNw #1#2#3#4
\c_space_tl
}
{
\@@_change_case_store:n { ~ }
- \@@_change_case_math_loop:nnNw {#1} {#2} #3
+ \@@_change_case_math_loop:nnnNw {#1} {#2} {#3} #4
}
% \end{macrocode}
% Once potential math-mode cases are filtered out the next stage is to
% test if the token grabbed is a control sequence: the two routes the code
% may take are then very different.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_cs_check:nnN #1#2#3
+\cs_new:Npn \@@_change_case_cs_check:nnnN #1#2#3#4
{
- \token_if_cs:NTF #3
- { \@@_change_case_exclude:nnN {#1} {#2} }
+ \token_if_cs:NTF #4
+ { \@@_change_case_exclude:nnnN {#1} {#2} {#3} }
{
\@@_codepoint_process:nN
- { \use:c { @@_change_case_custom_ #1 :nnn } {#1} {#2} }
+ { \use:c { @@_change_case_custom_ #1 :nnnn } {#1} {#2} {#3} }
}
- #3
+ #4
}
% \end{macrocode}
% To deal with a control sequence there is first a need to test if it is
@@ -457,92 +460,115 @@
% done using a loop as for the other special cases. If a hit is found then
% the argument is grabbed and passed through as-is.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_exclude:nnN #1#2#3
+\cs_new:Npn \@@_change_case_exclude:nnnN #1#2#3#4
{
- \exp_args:Ne \@@_change_case_exclude:nnnN
+ \exp_args:Ne \@@_change_case_exclude:nnnnN
{
\exp_not:V \l_text_math_arg_tl
\exp_not:V \l_text_case_exclude_arg_tl
}
- {#1} {#2} #3
+ {#1} {#2} {#3} #4
}
-\cs_new:Npn \@@_change_case_exclude:nnnN #1#2#3#4
+\cs_new:Npn \@@_change_case_exclude:nnnnN #1#2#3#4#5
{
- \@@_change_case_exclude:nnNN {#2} {#3} #4 #1
+ \@@_change_case_exclude:nnnNN {#2} {#3} {#4} #5 #1
\q_@@_recursion_tail \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_exclude:nnNN #1#2#3#4
+\cs_new:Npn \@@_change_case_exclude:nnnNN #1#2#3#4#5
{
- \@@_if_q_recursion_tail_stop_do:Nn #4
- { \@@_change_case_replace:nnN {#1} {#2} #3 }
- \str_if_eq:nnTF {#3} {#4}
+ \@@_if_q_recursion_tail_stop_do:Nn #5
+ { \@@_change_case_replace:nnnN {#1} {#2} {#3} #4 }
+ \str_if_eq:nnTF {#4} {#5}
{
\@@_use_i_delimit_by_q_recursion_stop:nw
- { \@@_change_case_exclude:nnNw {#1} {#2} #3 }
+ { \@@_change_case_exclude:nnnNw {#1} {#2} {#3} #4 }
}
- { \@@_change_case_exclude:nnNN {#1} {#2} #3 }
+ { \@@_change_case_exclude:nnnNN {#1} {#2} {#3} #4 }
}
-\cs_new:Npn \@@_change_case_exclude:nnNw #1#2#3#4#
- { \@@_change_case_exclude:nnNnn {#1} {#2} {#3} {#4} }
-\cs_new:Npn \@@_change_case_exclude:nnNnn #1#2#3#4#5
+\cs_new:Npn \@@_change_case_exclude:nnnNw #1#2#3#4#5#
+ { \@@_change_case_exclude:nnnNnn {#1} {#2} {#3} {#4} {#5} }
+\cs_new:Npn \@@_change_case_exclude:nnnNnn #1#2#3#4#5#6
{
- \tl_if_blank:nTF {#4}
- { \@@_change_case_store:n { #3 {#5} } }
+ \tl_if_blank:nTF {#5}
+ { \@@_change_case_store:n { #4 {#6} } }
{
\@@_change_case_store:o
{
- \exp_after:wN #3
- \exp:w \@@_change_case_auxii:nnn {#4} {#1} {#2}
- {#5}
+ \exp_after:wN #4
+ \exp:w \@@_change_case_auxii:nnnn {#5} {#1} {#2} {#3}
+ {#6}
}
}
- \@@_change_case_loop:nnw {#1} {#2}
+ \@@_change_case_loop:nnnw {#1} {#2} {#3}
}
% \end{macrocode}
% Deal with any specialist replacement for case changing.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_replace:nnN #1#2#3
+\cs_new:Npn \@@_change_case_replace:nnnN #1#2#3#4
{
- \cs_if_exist:cTF { l_@@_case_ \token_to_str:N #3 _tl }
+ \cs_if_exist:cTF { l_@@_case_ \token_to_str:N #4 _tl }
{
- \@@_change_case_replace:vnn
- { l_@@_case_ \token_to_str:N #3 _tl } {#1} {#2}
+ \@@_change_case_replace:vnnn
+ { l_@@_case_ \token_to_str:N #4 _tl } {#1} {#2} {#3}
}
- { \@@_change_case_switch:nnN {#1} {#2} #3 }
+ { \@@_change_case_switch:nnnN {#1} {#2} {#3} #4 }
}
-\cs_new:Npn \@@_change_case_replace:nnn #1#2#3
- { \@@_change_case_loop:nnw {#2} {#3} #1 }
-\cs_generate_variant:Nn \@@_change_case_replace:nnn { v }
+\cs_new:Npn \@@_change_case_replace:nnnn #1#2#3#4
+ { \@@_change_case_loop:nnnw {#2} {#3} {#4} #1 }
+\cs_generate_variant:Nn \@@_change_case_replace:nnnn { v }
% \end{macrocode}
% Allow for manually-controlled case switching.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_switch:nnN #1#2#3
+\cs_new:Npn \@@_change_case_switch:nnnN #1#2#3#4
+ {
+ \cs_if_eq:NNTF #4 \text_case_switch:nnnn
+ { \use:c { @@_change_case_switch_ #1 :nnnNnnnn } }
+ { \use:c { @@_change_case_letterlike_ #1 :nnnN } }
+ {#1} {#2} {#3} #4
+ }
+\cs_new:Npn \@@_change_case_switch_lower:nnnNnnnn #1#2#3#4#5#6#7#8
{
- \cs_if_eq:NNTF #3 \text_case_switch:nnnn
- { \use:c { @@_change_case_switch_ #1 :nnNnnnn } }
- { \use:c { @@_change_case_letterlike_ #1 :nnN } }
- {#1} {#2} #3
+ \@@_change_case_store:n {#7}
+ \@@_change_case_loop:nnnw {#1} {#2} {#3}
}
-\cs_new:Npn \@@_change_case_switch_lower:nnNnnnn #1#2#3#4#5#6#7
+\cs_new:Npn \@@_change_case_switch_upper:nnnNnnnn #1#2#3#4#5#6#7#8
{
\@@_change_case_store:n {#6}
- \@@_change_case_loop:nnw {#1} {#2}
+ \@@_change_case_loop:nnnw {#1} {#2} {#3}
}
-\cs_new:Npn \@@_change_case_switch_upper:nnNnnnn #1#2#3#4#5#6#7
+\cs_new:Npn \@@_change_case_switch_title:nnnNnnnn #1#2#3#4#5#6#7#8
{
- \@@_change_case_store:n {#5}
- \@@_change_case_loop:nnw {#1} {#2}
+ \@@_change_case_store:n {#8}
+ \@@_change_case_skip:nnw {#2} {#3}
}
-\cs_new:Npn \@@_change_case_switch_title:nnNnnnn #1#2#3#4#5#6#7
+% \end{macrocode}
+% Skip over material quickly after titlecase-first-only initials
+% \begin{macrocode}
+\cs_new:Npn \@@_change_case_skip:nnw #1#2#3 \q_@@_recursion_stop
{
- \@@_change_case_store:n {#7}
- \@@_change_case_loop:nnw {#1} {#2}
+ \tl_if_head_is_N_type:nTF {#3}
+ { \@@_change_case_skip_N_type:nnN }
+ {
+ \tl_if_head_is_group:nTF {#3}
+ { \@@_change_case_skip_group:nnn }
+ { \@@_change_case_skip_space:nnw }
+ }
+ {#1} {#2} #3 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_switch_titleonly:nnNnnnn #1#2#3#4#5#6#7
+\cs_new:Npn \@@_change_case_skip_N_type:nnN #1#2#3
{
- \@@_change_case_store:n {#7}
- \@@_change_case_break:w
+ \@@_if_q_recursion_tail_stop_do:Nn #3
+ { \@@_change_case_end:w }
+ \@@_change_case_store:n {#3}
+ \@@_change_case_skip:nnw {#1} {#2}
+ }
+\cs_new:Npn \@@_change_case_skip_group:nnn #1#2#3
+ {
+ \@@_change_case_store:n { {#3} }
+ \@@_change_case_skip:nnw {#1} {#2}
}
+\cs_new:Npn \@@_change_case_skip_space:nnw #1#2
+ { \@@_change_case_space:nnnw {#1} {#1} {#2} }
% \end{macrocode}
% Letter-like commands may still be present: they are set up using a simple
% lookup approach, so can easily be handled with no loop. If there is no
@@ -550,68 +576,64 @@
% are all available only in upper- and lowercase, so titlecasing maps to the
% uppercase version.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_letterlike_lower:nnN #1#2#3
- { \@@_change_case_letterlike:nnnnN {#1} {#1} {#1} {#2} #3 }
-\cs_new_eq:NN \@@_change_case_letterlike_upper:nnN
- \@@_change_case_letterlike_lower:nnN
-\cs_new:Npn \@@_change_case_letterlike_title:nnN #1#2#3
- { \@@_change_case_letterlike:nnnnN { upper } { lower } {#1} {#2} #3 }
-\cs_new:Npn \@@_change_case_letterlike_titleonly:nnN #1#2#3
- { \@@_change_case_letterlike:nnnnN { upper } { end } {#1} {#2} #3 }
-\cs_new:Npn \@@_change_case_letterlike:nnnnN #1#2#3#4#5
- {
- \cs_if_exist:cTF { c_@@_ #1 case_ \token_to_str:N #5 _tl }
+\cs_new:Npn \@@_change_case_letterlike_lower:nnnN #1#2#3#4
+ { \@@_change_case_letterlike:nnnnnN {#1} {#1} {#1} {#2} {#3} #4 }
+\cs_new_eq:NN \@@_change_case_letterlike_upper:nnnN
+ \@@_change_case_letterlike_lower:nnnN
+\cs_new:Npn \@@_change_case_letterlike_title:nnnN #1#2#3#4
+ { \@@_change_case_letterlike:nnnnnN { upper } { end } {#1} {#2} {#3} #4 }
+\cs_new:Npn \@@_change_case_letterlike:nnnnnN #1#2#3#4#5#6
+ {
+ \cs_if_exist:cTF { c_@@_ #1 case_ \token_to_str:N #6 _tl }
{
\@@_change_case_store:v
- { c_@@_ #1 case_ \token_to_str:N #5 _tl }
- \use:c { @@_change_case_next_ #2 :nn } {#2} {#4}
+ { c_@@_ #1 case_ \token_to_str:N #6 _tl }
+ \use:c { @@_change_case_next_ #2 :nnn } {#2} {#4} {#5}
}
{
- \@@_change_case_store:n {#5}
+ \@@_change_case_store:n {#6}
\cs_if_exist:cTF
{
c_@@_
\str_if_eq:nnTF {#1} { lower } { upper } { lower }
- case_ \token_to_str:N #5 _tl
+ case_ \token_to_str:N #6 _tl
}
- { \use:c { @@_change_case_next_ #2 :nn } {#2} {#4} }
- { \@@_change_case_loop:nnw {#3} {#4} }
+ { \use:c { @@_change_case_next_ #2 :nnn } {#2} {#4} {#5} }
+ { \@@_change_case_loop:nnnw {#3} {#4} {#5} }
}
}
% \end{macrocode}
% Check for a customised codepoint result.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_custom_lower:nnn #1#2#3
+\cs_new:Npn \@@_change_case_custom_lower:nnnn #1#2#3#4
{
- \@@_change_case_custom:nnnnn {#1} {#2} {#3} {#1}
- { \use:c { @@_change_case_codepoint_ #1 :nnn } {#1} {#2} {#3} }
+ \@@_change_case_custom:nnnnnn {#1} {#1} {#2} {#3} {#4}
+ { \use:c { @@_change_case_codepoint_ #1 :nnnn } {#1} {#2} {#3} {#4} }
}
-\cs_new_eq:NN \@@_change_case_custom_upper:nnn
- \@@_change_case_custom_lower:nnn
-\cs_new:Npn \@@_change_case_custom_title:nnn #1#2#3
+\cs_new_eq:NN \@@_change_case_custom_upper:nnnn
+ \@@_change_case_custom_lower:nnnn
+\cs_new:Npn \@@_change_case_custom_title:nnnn #1#2#3#4
{
- \@@_change_case_custom:nnnnn { title } {#2} {#3} {#1}
+ \@@_change_case_custom:nnnnnn { title } {#1} {#2} {#3} {#4}
{
- \@@_change_case_custom:nnnnn { upper } {#2} {#3} {#1}
- { \use:c { @@_change_case_codepoint_ #1 :nnn } {#1} {#2} {#3} }
+ \@@_change_case_custom:nnnnnn { upper } {#1} {#2} {#3} {#4}
+ { \use:c { @@_change_case_codepoint_ #1 :nnnn } {#1} {#2} {#3} {#4} }
}
}
-\cs_new_eq:NN \@@_change_case_custom_titleonly:nnn
- \@@_change_case_custom_title:nnn
-\cs_new:Npn \@@_change_case_custom:nnnnn #1#2#3#4#5
+\cs_new:Npn \@@_change_case_custom:nnnnnn #1#2#3#4#5#6
{
- \tl_if_exist:cTF { l_@@_ #1 case _ \tl_to_str:n {#3} _ #2 _tl }
+ \tl_if_exist:cTF { l_@@_ #1 case _ \tl_to_str:n {#5} _ #4 _tl }
{
- \@@_change_case_replace:vnn
- { l_@@_ #1 case _ \tl_to_str:n {#3} _ #2 _tl } {#4} {#2}
+ \@@_change_case_replace:vnnn
+ { l_@@_ #1 case _ \tl_to_str:n {#5} _ #4 _tl } {#2} {#3} {#4}
}
{
- \tl_if_exist:cTF { l_@@_ #1 case _ \tl_to_str:n {#3} _tl }
+ \tl_if_exist:cTF { l_@@_ #1 case _ \tl_to_str:n {#5} _tl }
{
- \@@_change_case_replace:vnn
- { l_@@_ #1 case _ \tl_to_str:n {#3} _tl } {#4} {#2}
+ \@@_change_case_replace:vnnn
+ { l_@@_ #1 case _ \tl_to_str:n {#5} _tl } {#2} {#3} {#4}
}
- {#5}
+ {#6}
}
}
% \end{macrocode}
@@ -620,17 +642,17 @@
% is there the special case of a terminal sigma. If not, then we pass to
% a simple codepoint mapping.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_codepoint_lower:nnn #1#2#3
+\cs_new:Npn \@@_change_case_codepoint_lower:nnnn #1#2#3#4
{
- \cs_if_exist_use:cF { @@_change_case_lower_ #2 :nnnn }
- { \@@_change_case_lower_sigma:nnnn }
- {#1} {#1} {#2} {#3}
+ \cs_if_exist_use:cF { @@_change_case_lower_ #3 :nnnnn }
+ { \@@_change_case_lower_sigma:nnnnn }
+ {#1} {#1} {#2} {#3} {#4}
}
-\cs_new:Npn \@@_change_case_codepoint_upper:nnn #1#2#3
+\cs_new:Npn \@@_change_case_codepoint_upper:nnnn #1#2#3#4
{
- \cs_if_exist_use:cF { @@_change_case_upper_ #2 :nnnn }
- { \@@_change_case_codepoint:nnnn }
- {#1} {#1} {#2} {#3}
+ \cs_if_exist_use:cF { @@_change_case_upper_ #3 :nnnnn }
+ { \@@_change_case_codepoint:nnnnn }
+ {#1} {#1} {#2} {#3} {#4}
}
% \end{macrocode}
% If the current character is an uppercase sigma, the a check is made on the
@@ -638,91 +660,87 @@
% then there is a look-ahead phase: the logic here is simply based on letters
% or actives (to cover $8$-bit engines).
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_lower_sigma:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_sigma:nnnnn #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "03A3 }
- { \@@_change_case_lower_sigma:nnnw {#2} }
- { \@@_change_case_codepoint:nnnn {#1} {#2} }
- {#3} {#4}
+ \@@_codepoint_compare:nNnTF {#5} = { "03A3 }
+ { \@@_change_case_lower_sigma:nnnnw {#2} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} }
+ {#3} {#4} {#5}
}
-\cs_new:Npn \@@_change_case_lower_sigma:nnnw #1#2#3#4 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_lower_sigma:nnnnw #1#2#3#4#5 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_lower_sigma:nnnN {#3} }
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_lower_sigma:nnnnN {#4} }
{
\@@_change_case_store:e
- { \codepoint_generate:nn { "03C2 } { \@@_char_catcode:N #3 } }
- \@@_change_case_loop:nnw
+ { \codepoint_generate:nn { "03C2 } { \@@_char_catcode:N #4 } }
+ \@@_change_case_loop:nnnw
}
- {#1} {#2} #4 \q_@@_recursion_stop
+ {#1} {#2} {#3} #5 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_lower_sigma:nnnN #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_sigma:nnnnN #1#2#3#4#5
{
\@@_change_case_store:e
{
\bool_lazy_or:nnTF
- { \token_if_letter_p:N #4 }
+ { \token_if_letter_p:N #5 }
{
\bool_lazy_and_p:nn
- { \token_if_active_p:N #4 }
- { \int_compare_p:nNn {`#4} > { "80 } }
+ { \token_if_active_p:N #5 }
+ { \int_compare_p:nNn {`#5} > { "80 } }
}
{ \codepoint_generate:nn { "03C3 } { \@@_char_catcode:N #1 } }
{ \codepoint_generate:nn { "03C2 } { \@@_char_catcode:N #1 } }
}
- \@@_change_case_loop:nnw {#2} {#3} #4
+ \@@_change_case_loop:nnnw {#2} {#3} {#4} #5
}
% \end{macrocode}
% For titlecasing, we need to fully expand the new character to see if it
% is a letter (or active).
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_codepoint_title:nnn #1#2#3
+\cs_new:Npn \@@_change_case_codepoint_title:nnnn #1#2#3#4
{
\bool_if:NTF \l_text_titlecase_check_letter_bool
{
- \tl_if_single:nTF {#3}
+ \tl_if_single:nTF {#4}
{
\bool_lazy_or:nnTF
- { \token_if_letter_p:N #3 }
+ { \token_if_letter_p:N #4 }
{
\bool_lazy_and_p:nn
- { \token_if_active_p:N #3 }
- { ! \int_compare_p:nNn {`#3} < { "80 } }
+ { \token_if_active_p:N #4 }
+ { ! \int_compare_p:nNn {`#4} < { "80 } }
}
- { \use:c { @@_change_case_codepoint_ #1 :nn } }
- { \@@_change_case_codepoint_title:nnnn { title } {#1} }
+ { \@@_change_case_codepoint_title:nnn }
+ { \@@_change_case_codepoint_title:nnnnn { title } {#1} }
}
- { \use:c { @@_change_case_codepoint_ #1 :nn } }
+ { \@@_change_case_codepoint_title:nnn }
}
- { \use:c { @@_change_case_codepoint_ #1 :nn } }
- {#2} {#3}
+ { \@@_change_case_codepoint_title:nnn }
+ {#2} {#3} {#4}
}
-\cs_new_eq:NN \@@_change_case_codepoint_titleonly:nnn
- \@@_change_case_codepoint_title:nnn
-\cs_new:Npn \@@_change_case_codepoint_title:nn #1#2
- { \@@_change_case_codepoint_title:nnnn { title } { lower } {#1} {#2} }
-\cs_new:Npn \@@_change_case_codepoint_titleonly:nn #1#2
- { \@@_change_case_codepoint_title:nnnn { title } { end } {#1} {#2} }
-\cs_new:Npn \@@_change_case_codepoint_title:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_codepoint_title:nnn #1#2#3
+ { \@@_change_case_codepoint_title:nnnnn { title } { end } {#1} {#2} {#3} }
+\cs_new:Npn \@@_change_case_codepoint_title:nnnnn #1#2#3#4#5
{
- \cs_if_exist_use:cF { @@_change_case_title_ #3 :nnnn }
+ \cs_if_exist_use:cF { @@_change_case_title_ #4 :nnnnn }
{
- \cs_if_exist_use:cF { @@_change_case_upper_ #3 :nnnn }
- { \@@_change_case_codepoint:nnnn }
+ \cs_if_exist_use:cF { @@_change_case_upper_ #4 :nnnnn }
+ { \@@_change_case_codepoint:nnnnn }
}
- {#1} {#2} {#3} {#4}
+ {#1} {#2} {#3} {#4} {#5}
}
-\cs_new:Npn \@@_change_case_codepoint:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_codepoint:nnnnn #1#2#3#4#5
{
\bool_lazy_and:nnTF
- { \tl_if_single_p:n {#4} }
- { \token_if_active_p:N #4 }
- { \@@_change_case_store:n {#4} }
+ { \tl_if_single_p:n {#5} }
+ { \token_if_active_p:N #5 }
+ { \@@_change_case_store:n {#5} }
{
\@@_change_case_store:e
- { \@@_change_case_codepoint:nn {#1} {#4} }
+ { \@@_change_case_codepoint:nn {#1} {#5} }
}
- \use:c { @@_change_case_next_ #2 :nn } {#2} {#3}
+ \use:c { @@_change_case_next_ #2 :nnn } {#2} {#3} {#4}
}
\cs_new:Npn \@@_change_case_codepoint:nn #1#2
{
@@ -799,16 +817,14 @@
}
}
}
-\cs_new:Npn \@@_change_case_next_lower:nn #1#2
- { \@@_change_case_loop:nnw {#1} {#2} }
-\cs_new_eq:NN \@@_change_case_next_upper:nn
- \@@_change_case_next_lower:nn
-\cs_new_eq:NN \@@_change_case_next_title:nn
- \@@_change_case_next_lower:nn
-\cs_new_eq:NN \@@_change_case_next_titleonly:nn
- \@@_change_case_next_lower:nn
-\cs_new:Npn \@@_change_case_next_end:nn #1#2
- { \@@_change_case_break:w }
+\cs_new:Npn \@@_change_case_next_lower:nnn #1#2#3
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} }
+\cs_new_eq:NN \@@_change_case_next_upper:nnn
+ \@@_change_case_next_lower:nnn
+\cs_new_eq:NN \@@_change_case_next_title:nnn
+ \@@_change_case_next_lower:nnn
+\cs_new:Npn \@@_change_case_next_end:nnn #1#2#3
+ { \@@_change_case_skip:nnw {#2} {#3} }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -853,6 +869,13 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\text_declare_case_equivalent:Nn}
% Create equivalents to allow replacement.
@@ -914,6 +937,7 @@
{
\tl_clear_new:c { l_@@_ #2 case _ #1 _ #3 _tl }
\tl_set:cn { l_@@_ #2 case _ #1 _ #3 _ tl } {#4}
+ \tl_clear_new:c { l_@@_ #2 case_special_ #3 _tl }
}
% \end{macrocode}
% \end{macro}
@@ -944,55 +968,58 @@
% \end{macro}
%
% \begin{macro}[EXP]
-% {\@@_change_case_upper_de-x-eszett:nnnn, \@@_change_case_upper_de-alt:nnnn}
+% {
+% \@@_change_case_upper_de-x-eszett:nnnnn,
+% \@@_change_case_upper_de-alt:nnnnn
+% }
% A simple alternative version for German.
% \begin{macrocode}
-\cs_new:cpn { @@_change_case_upper_de-x-eszett:nnnn } #1#2#3#4
+\cs_new:cpn { @@_change_case_upper_de-x-eszett:nnnnn } #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "00DF }
+ \@@_codepoint_compare:nNnTF {#5} = { "00DF }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "1E9E }
- { \@@_change_case_catcode:nn {#4} { "1E9E } }
+ { \@@_change_case_catcode:nn {#5} { "1E9E } }
}
- \use:c { @@_change_case_next_ #2 :nn }
- {#2} {#3}
+ \use:c { @@_change_case_next_ #2 :nnn }
+ {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
-\cs_new_eq:cc { @@_change_case_upper_de-alt:nnnn }
- { @@_change_case_upper_de-x-eszett:nnnn }
+\cs_new_eq:cc { @@_change_case_upper_de-alt:nnnnn }
+ { @@_change_case_upper_de-x-eszett:nnnnn }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[EXP]
% {
-% \@@_change_case_upper_el:nnnn ,
-% \@@_change_case_upper_el_aux:nnnn ,
-% \@@_change_case_upper_el-x-iota:nnnn
+% \@@_change_case_upper_el:nnnnn ,
+% \@@_change_case_upper_el-x-iota:nnnnn ,
+% \@@_change_case_upper_el_aux:nnnnn
% }
-% \begin{macro}[EXP]{\@@_change_case_upper_el:nnn}
-% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnw}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnnw}
% \begin{macro}[EXP]
-% {\@@_change_case_upper_el:nnnN, \@@_change_case_upper_el_aux:nnnN}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_ypogegrammeni:nnnnnw}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_ypogegrammeni:nnnnnN}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_ypogegrammeni:nnnnnn}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_dialytika:nnn}
+% {\@@_change_case_upper_el:nnnnN, \@@_change_case_upper_el_aux:nnnnN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_ypogegrammeni:nnnnnnw}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_ypogegrammeni:nnnnnnN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_ypogegrammeni:nnnnnnn}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_dialytika:nnnn}
% \begin{macro}[EXP]{\@@_change_case_upper_el_dialytika:n}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnnw}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnnN}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnnnw}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnnnN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnnnn}
% \begin{macro}[EXP]
% {
% \@@_change_case_upper_el_ypogegrammeni:n ,
% \@@_change_case_upper_el-x-iota_ypogegrammeni:n
% }
% \begin{macro}[EXP]{\@@_change_case_upper_el_stress:nn}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnw}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnN}
-% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnn}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnnw}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnnn}
% \begin{macro}[EXP,noTF]
% {
% \@@_change_case_if_greek:n ,
@@ -1017,65 +1044,65 @@
% for \pdfTeX{} so is best left unchanged, and the latter has issues concerning
% how \texttt{LGR} outputs the input and output (differently!).
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_el:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_el:nnnnn #1#2#3#4#5
{
\bool_lazy_and:nnTF
- { \@@_change_case_if_greek_p:n {#4} }
+ { \@@_change_case_if_greek_p:n {#5} }
{
! \bool_lazy_or_p:nn
- { \@@_codepoint_compare_p:nNn {#4} = { "0374 } }
- { \@@_codepoint_compare_p:nNn {#4} = { "037E } }
+ { \@@_codepoint_compare_p:nNn {#5} = { "0374 } }
+ { \@@_codepoint_compare_p:nNn {#5} = { "037E } }
}
{
- \@@_change_case_if_greek_spacing_diacritic:nTF {#4}
+ \@@_change_case_if_greek_spacing_diacritic:nTF {#5}
{
- \@@_change_case_store:n {#4}
- \@@_change_case_loop:nnw
+ \@@_change_case_store:n {#5}
+ \@@_change_case_loop:nnnw
}
{
- \exp_args:Ne \@@_change_case_upper_el:nnn
+ \exp_args:Ne \@@_change_case_upper_el:nnnn
{
\codepoint_to_nfd:n
- { \@@_codepoint_from_chars:Nw #4 }
+ { \@@_codepoint_from_chars:Nw #5 }
}
}
- {#2} {#3}
+ {#2} {#3} {#4}
}
{
- \@@_codepoint_compare:nNnTF {#4} = { "0345 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0345 }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0399 }
{ \char_value_catcode:n { "0399 } }
}
- \@@_change_case_loop:nnw {#2} {#3}
+ \@@_change_case_loop:nnnw {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
}
-\cs_new_eq:cN { @@_change_case_upper_el-x-iota:nnnn }
- \@@_change_case_upper_el:nnnn
-\cs_new:Npn \@@_change_case_upper_el:nnn #1#2#3
+\cs_new_eq:cN { @@_change_case_upper_el-x-iota:nnnnn }
+ \@@_change_case_upper_el:nnnnn
+\cs_new:Npn \@@_change_case_upper_el:nnnn #1#2#3#4
{
\@@_codepoint_process:nN
- { \@@_change_case_upper_el:nnnw {#2} {#3} } #1
+ { \@@_change_case_upper_el:nnnnw {#2} {#3} {#4} } #1
}
% \end{macrocode}
% At this stage we have the first NFD codepoint as |#3|. What we need to know
% is whether after that we have another character, either from the NFD or
% directly in the input. If not, we store the changed character at this stage.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_el:nnnw #1#2#3#4 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_upper_el:nnnnw #1#2#3#4#5 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_upper_el:nnnN {#3} }
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_upper_el:nnnnN {#4} }
{
\@@_change_case_store:e
- { \@@_change_case_codepoint:nn { upper } {#3} }
- \@@_change_case_loop:nnw
+ { \@@_change_case_codepoint:nn { upper } {#4} }
+ \@@_change_case_loop:nnnw
}
- {#1} {#2} #4 \q_@@_recursion_stop
+ {#1} {#2} {#3} #5 \q_@@_recursion_stop
}
% \end{macrocode}
% Now, we check the detail of the next codepoint: again we filter out the
@@ -1085,99 +1112,99 @@
% to move any ypogegrammeni to after accents (in case the input is not
% normalised). The ypogegrammeni itself is handled separately.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_el:nnnN #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_el:nnnnN #1#2#3#4#5
{
- \token_if_cs:NTF #4
+ \token_if_cs:NTF #5
{
\@@_change_case_store:e
{ \@@_change_case_codepoint:nn { upper } {#1} }
- \@@_change_case_loop:nnw {#2} {#3} #4
+ \@@_change_case_loop:nnnw {#2} {#3} {#4} #5
}
{
\@@_change_case_if_takes_ypogegrammeni:nTF {#1}
{
- \@@_change_case_upper_el_ypogegrammeni:nnnnnw
- {#1} {#2} {#3} { } { } #4
+ \@@_change_case_upper_el_ypogegrammeni:nnnnnnw
+ {#1} {#2} {#3} {#4} { } { } #5
}
- { \@@_change_case_upper_el_aux:nnnN {#1} {#2} {#3} #4 }
+ { \@@_change_case_upper_el_aux:nnnnN {#1} {#2} {#3} {#4} #5 }
}
}
-\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni:nnnnnw
- #1#2#3#4#5#6 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni:nnnnnnw
+ #1#2#3#4#5#6#7 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#6}
+ \tl_if_head_is_N_type:nTF {#7}
{
- \@@_change_case_upper_el_ypogegrammeni:nnnnnN
- {#1} {#2} {#3} {#4} {#5}
+ \@@_change_case_upper_el_ypogegrammeni:nnnnnnN
+ {#1} {#2} {#3} {#4} {#5} {#6}
}
- { \@@_change_case_upper_el_aux:nnnN {#1} {#2} {#3} #4#5 }
- #6 \q_@@_recursion_stop
+ { \@@_change_case_upper_el_aux:nnnnN {#1} {#2} {#3} {#4} #5#6 }
+ #7 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni:nnnnnN #1#2#3#4#5#6
+\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni:nnnnnnN #1#2#3#4#5#6#7
{
- \token_if_cs:NTF #6
- { \@@_change_case_upper_el_aux:nnnN {#1} {#2} {#3} #4#5 }
+ \token_if_cs:NTF #7
+ { \@@_change_case_upper_el_aux:nnnnN {#1} {#2} {#3} {#4} #5#6 }
{
\@@_codepoint_process:nN
{
- \@@_change_case_upper_el_ypogegrammeni:nnnnnn
- {#1} {#2} {#3} {#4} {#5}
+ \@@_change_case_upper_el_ypogegrammeni:nnnnnnn
+ {#1} {#2} {#3} {#4} {#5} {#6}
}
}
- #6
+ #7
}
-\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni:nnnnnn #1#2#3#4#5#6
+\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni:nnnnnnn #1#2#3#4#5#6#7
{
- \@@_codepoint_compare:nNnTF {#6} = { "0345 }
+ \@@_codepoint_compare:nNnTF {#7} = { "0345 }
{
- \@@_change_case_upper_el_ypogegrammeni:nnnnnw
- {#1} {#2} {#3} {#4} {#6}
+ \@@_change_case_upper_el_ypogegrammeni:nnnnnnw
+ {#1} {#2} {#3} {#4} {#5} {#7}
}
{
\bool_lazy_or:nnTF
- { \@@_change_case_if_greek_accent_p:n {#6} }
- { \@@_change_case_if_greek_breathing_p:n {#6} }
+ { \@@_change_case_if_greek_accent_p:n {#7} }
+ { \@@_change_case_if_greek_breathing_p:n {#7} }
{
- \@@_change_case_upper_el_ypogegrammeni:nnnnnw
- {#1} {#2} {#3} {#4#6} {#5}
+ \@@_change_case_upper_el_ypogegrammeni:nnnnnnw
+ {#1} {#2} {#3} {#4} {#5#7} {#6}
}
- { \@@_change_case_upper_el_aux:nnnN {#1} {#2} {#3} #4#5 #6 }
+ { \@@_change_case_upper_el_aux:nnnnN {#1} {#2} {#3} {#4} #5#6 #7 }
}
}
-\cs_new:Npn \@@_change_case_upper_el_aux:nnnN #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_el_aux:nnnnN #1#2#3#4#5
{
\@@_codepoint_process:nN
- { \@@_change_case_upper_el_aux:nnnn {#1} {#2} {#3} } #4
+ { \@@_change_case_upper_el_aux:nnnnn {#1} {#2} {#3} {#4} } #5
}
-\cs_new:Npn \@@_change_case_upper_el_aux:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_el_aux:nnnnn #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "0308 }
- { \@@_change_case_upper_el_dialytika:nnn {#2} {#3} {#1} }
+ \@@_codepoint_compare:nNnTF {#5} = { "0308 }
+ { \@@_change_case_upper_el_dialytika:nnnn {#2} {#3} {#4} {#1} }
{
- \@@_change_case_if_greek_accent:nTF {#4}
- { \@@_change_case_upper_el_hiatus:nnnw {#2} {#3} {#1} }
+ \@@_change_case_if_greek_accent:nTF {#5}
+ { \@@_change_case_upper_el_hiatus:nnnnw {#2} {#3} {#4} {#1} }
{
- \@@_change_case_if_greek_breathing:nTF {#4}
- { \@@_change_case_upper_el:nnn {#1} {#2} {#3} }
+ \@@_change_case_if_greek_breathing:nTF {#5}
+ { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4} }
{
- \@@_codepoint_compare:nNnTF {#4} = { "0345 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0345 }
{
\@@_change_case_store:e
- { \use:c { @@_change_case_upper_ #3 _ypogegrammeni:n } {#1} }
- \@@_change_case_loop:nnw {#2} {#3}
+ { \use:c { @@_change_case_upper_ #4 _ypogegrammeni:n } {#1} }
+ \@@_change_case_loop:nnnw {#2} {#3} {#4}
}
{
- \@@_change_case_if_greek_stress:nTF {#4}
+ \@@_change_case_if_greek_stress:nTF {#5}
{
\@@_change_case_store:e
- { \@@_change_case_upper_el_stress:nn {#1} {#4} }
- \@@_change_case_loop:nnw {#2} {#3}
+ { \@@_change_case_upper_el_stress:nn {#1} {#5} }
+ \@@_change_case_loop:nnnw {#2} {#3} {#4}
}
{
\@@_change_case_store:e
{ \@@_change_case_codepoint:nn { upper } {#1} }
- \@@_change_case_loop:nnw {#2} {#3} #4
+ \@@_change_case_loop:nnnw {#2} {#3} {#4} #5
}
}
}
@@ -1189,15 +1216,15 @@
% We know only two letters take it, so we can shortcut here on the second
% part of the tests.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_el_dialytika:nnn #1#2#3
+\cs_new:Npn \@@_change_case_upper_el_dialytika:nnnn #1#2#3#4
{
- \@@_change_case_if_takes_dialytika:nTF {#3}
- { \@@_change_case_upper_el_dialytika:n {#3} }
+ \@@_change_case_if_takes_dialytika:nTF {#4}
+ { \@@_change_case_upper_el_dialytika:n {#4} }
{
\@@_change_case_store:e
- { \@@_change_case_codepoint:nn { upper } {#3} }
+ { \@@_change_case_codepoint:nn { upper } {#4} }
}
- \@@_change_case_upper_el_gobble:nnw {#1} {#2}
+ \@@_change_case_upper_el_gobble:nnnw {#1} {#2} {#3}
}
\cs_new:Npn \@@_change_case_upper_el_dialytika:n #1
{
@@ -1220,41 +1247,41 @@
% Adding a hiatus needs some of the same ideas, but if there is not one we
% skip this code point, hence needing a separate function.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_el_hiatus:nnnw
- #1#2#3#4 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_upper_el_hiatus:nnnnw
+ #1#2#3#4#5 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_upper_el_hiatus:nnnN {#3} }
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_upper_el_hiatus:nnnnN {#4} }
{
\@@_change_case_store:e
- { \@@_change_case_codepoint:nn { upper } {#3} }
- \@@_change_case_loop:nnw
+ { \@@_change_case_codepoint:nn { upper } {#4} }
+ \@@_change_case_loop:nnnw
}
- {#1} {#2} #4 \q_@@_recursion_stop
+ {#1} {#2} {#3} #5 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_upper_el_hiatus:nnnN #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_el_hiatus:nnnnN #1#2#3#4#5
{
- \token_if_cs:NTF #4
+ \token_if_cs:NTF #5
{
\@@_change_case_store:e
{ \@@_change_case_codepoint:nn { upper } {#1} }
- \@@_change_case_loop:nnw {#2} {#3} #4
+ \@@_change_case_loop:nnnw {#2} {#3} {#4} #5
}
{
\@@_codepoint_process:nN
- { \@@_change_case_upper_el_hiatus:nnnn {#1} {#2} {#3} } #4
+ { \@@_change_case_upper_el_hiatus:nnnnn {#1} {#2} {#3} {#4} } #5
}
}
-\cs_new:Npn \@@_change_case_upper_el_hiatus:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_el_hiatus:nnnnn #1#2#3#4#5
{
- \@@_change_case_if_takes_dialytika:nTF {#4}
+ \@@_change_case_if_takes_dialytika:nTF {#5}
{
\@@_change_case_store:e
{ \@@_change_case_codepoint:nn { upper } {#1} }
- \@@_change_case_upper_el_dialytika:n {#4}
- \@@_change_case_upper_el_gobble:nnw {#2} {#3}
+ \@@_change_case_upper_el_dialytika:n {#5}
+ \@@_change_case_upper_el_gobble:nnnw {#2} {#3} {#4}
}
- { \@@_change_case_upper_el:nnn {#1} {#2} {#3} #4 }
+ { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4} #5 }
}
% \end{macrocode}
% Handling the \emph{ypogegrammeni} output depends on the selected approach
@@ -1323,31 +1350,31 @@
% For clearing out trailing combining marks after we have dealt with
% the first one.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_el_gobble:nnw
- #1#2#3 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_upper_el_gobble:nnnw
+ #1#2#3#4 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#3}
- { \@@_change_case_upper_el_gobble:nnN }
- { \@@_change_case_loop:nnw }
- {#1} {#2} #3 \q_@@_recursion_stop
+ \tl_if_head_is_N_type:nTF {#4}
+ { \@@_change_case_upper_el_gobble:nnnN }
+ { \@@_change_case_loop:nnnw }
+ {#1} {#2} {#3} #4 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_upper_el_gobble:nnN #1#2#3
+\cs_new:Npn \@@_change_case_upper_el_gobble:nnnN #1#2#3#4
{
- \token_if_cs:NTF #3
- { \@@_change_case_loop:nnw {#1} {#2} }
+ \token_if_cs:NTF #4
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} }
{
\@@_codepoint_process:nN
- { \@@_change_case_upper_el_gobble:nnn {#1} {#2} }
+ { \@@_change_case_upper_el_gobble:nnnn {#1} {#2} {#3} }
}
- #3
+ #4
}
-\cs_new:Npn \@@_change_case_upper_el_gobble:nnn #1#2#3
+\cs_new:Npn \@@_change_case_upper_el_gobble:nnnn #1#2#3#4
{
\bool_lazy_or:nnTF
- { \@@_change_case_if_greek_accent_p:n {#3} }
- { \@@_change_case_if_greek_breathing_p:n {#3} }
- { \@@_change_case_upper_el_gobble:nnw {#1} {#2} }
- { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ { \@@_change_case_if_greek_accent_p:n {#4} }
+ { \@@_change_case_if_greek_breathing_p:n {#4} }
+ { \@@_change_case_upper_el_gobble:nnnw {#1} {#2} {#3} }
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
}
% \end{macrocode}
% Luckily the Greek range is limited and clear.
@@ -1597,98 +1624,101 @@
% \end{macro}
% \end{macro}
% \begin{macro}[EXP]
-% {\@@_change_case_boundary_upper_el:Nnnw, \@@_change_case_boundary_upper_el-x-iota:Nnnw}
-% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnN}
-% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnn}
-% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnnw}
+% {
+% \@@_change_case_boundary_upper_el:Nnnnw,
+% \@@_change_case_boundary_upper_el-x-iota:Nnnnw
+% }
+% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnnnw}
% There is one things that need special treatment at start start of
% words in Greek. For an isolated accent \emph{eta},
% which is handled by seeing if we have exactly one of the affected
% codepoints followed by a space or brace group.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_boundary_upper_el:Nnnw
- #1#2#3#4 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_boundary_upper_el:Nnnnw
+ #1#2#3#4#5 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_boundary_upper_el:nnN }
- { \@@_change_case_loop:nnw }
- {#2} {#3} #4 \q_@@_recursion_stop
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_boundary_upper_el:nnnN }
+ { \@@_change_case_loop:nnnw }
+ {#2} {#3} {#4} #5 \q_@@_recursion_stop
}
-\cs_new_eq:cN { @@_change_case_boundary_upper_el-x-iota:Nnnw }
- \@@_change_case_boundary_upper_el:Nnnw
-\cs_new:Npn \@@_change_case_boundary_upper_el:nnN #1#2#3
+\cs_new_eq:cN { @@_change_case_boundary_upper_el-x-iota:Nnnnw }
+ \@@_change_case_boundary_upper_el:Nnnnw
+\cs_new:Npn \@@_change_case_boundary_upper_el:nnnN #1#2#3#4
{
- \token_if_cs:NTF #3
- { \@@_change_case_loop:nnw {#1} {#2} }
+ \token_if_cs:NTF #4
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} }
{
\@@_codepoint_process:nN
- { \@@_change_case_boundary_upper_el:nnn {#1} {#2} }
+ { \@@_change_case_boundary_upper_el:nnnn {#1} {#2} {#3} }
}
- #3
+ #4
}
-\cs_new:Npn \@@_change_case_boundary_upper_el:nnn #1#2#3
+\cs_new:Npn \@@_change_case_boundary_upper_el:nnnn #1#2#3#4
{
\bool_lazy_any:nTF
{
- { \@@_codepoint_compare_p:nNn {#3} = { "0389 } }
- { \@@_codepoint_compare_p:nNn {#3} = { "03AE } }
- { \@@_codepoint_compare_p:nNn {#3} = { "1F22 } }
- { \@@_codepoint_compare_p:nNn {#3} = { "1F2A } }
+ { \@@_codepoint_compare_p:nNn {#4} = { "0389 } }
+ { \@@_codepoint_compare_p:nNn {#4} = { "03AE } }
+ { \@@_codepoint_compare_p:nNn {#4} = { "1F22 } }
+ { \@@_codepoint_compare_p:nNn {#4} = { "1F2A } }
}
- { \@@_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} }
- { \@@_change_case_breathing:nnn {#1} {#2} {#3} }
+ { \@@_change_case_boundary_upper_el:nnnnw {#1} {#2} {#3} {#4} }
+ { \@@_change_case_breathing:nnnn {#1} {#2} {#3} {#4} }
}
-\cs_new:Npn \@@_change_case_boundary_upper_el:nnnw
- #1#2#3#4 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_boundary_upper_el:nnnnw
+ #1#2#3#4#5 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0389 }
- { \@@_change_case_catcode:nn {#3} { "0389 } }
+ { \@@_change_case_catcode:nn {#4} { "0389 } }
}
- \@@_change_case_loop:nnw {#1} {#2}
+ \@@_change_case_loop:nnnw {#1} {#2} {#3}
}
- #4 \q_@@_recursion_stop
+ #5 \q_@@_recursion_stop
}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
-% \begin{macro}[EXP]{\@@_change_case_breathing:nnn}
% \begin{macro}[EXP]{\@@_change_case_breathing:nnnn}
-% \begin{macro}[EXP]{\@@_change_case_breathing:nnnnw}
+% \begin{macro}[EXP]{\@@_change_case_breathing:nnnnn}
% \begin{macro}[EXP]{\@@_change_case_breathing:nnnnnw}
-% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnnnn}
-% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnnw}
-% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnN}
-% \begin{macro}[EXP]{\@@_change_case_breathing_dialytika:nnn}
+% \begin{macro}[EXP]{\@@_change_case_breathing:nnnnnnw}
+% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnnnnn}
+% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnnnw}
+% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnnN}
+% \begin{macro}[EXP]{\@@_change_case_breathing_dialytika:nnnn}
% In Greek, breathing diacritics are normally dropped when uppercasing:
% see the code for the general case. However, for the first character
% of a word, if there is a breather \emph{and} the next character takes
% a \emph{dialytika}, it needs to be added. We start by checking if
% the current codepoint is in the Greek range, then decomposing.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_breathing:nnn #1#2#3
+\cs_new:Npn \@@_change_case_breathing:nnnn #1#2#3#4
{
- \@@_change_case_if_greek:nTF {#3}
+ \@@_change_case_if_greek:nTF {#4}
{
- \exp_args:Ne \@@_change_case_breathing:nnnn
+ \exp_args:Ne \@@_change_case_breathing:nnnnn
{
\codepoint_to_nfd:n
- { \@@_codepoint_from_chars:Nw #3 }
+ { \@@_codepoint_from_chars:Nw #4 }
}
- {#1} {#2} {#3}
+ {#1} {#2} {#3} {#4}
}
- { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
}
-\cs_new:Npn \@@_change_case_breathing:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_breathing:nnnnn #1#2#3#4#5
{
\@@_codepoint_process:nN
- { \@@_change_case_breathing:nnnnw {#2} {#3} {#4} }
+ { \@@_change_case_breathing:nnnnnw {#2} {#3} {#4} {#5} }
#1 \q_mark
}
% \end{macrocode}
@@ -1699,36 +1729,36 @@
% and second if the final resulting codepoint is one of the two we
% care about.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_breathing:nnnnw #1#2#3#4#5 \q_mark
+\cs_new:Npn \@@_change_case_breathing:nnnnnw #1#2#3#4#5#6 \q_mark
{
- \tl_if_blank:nTF {#5}
- { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ \tl_if_blank:nTF {#6}
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
{
\@@_codepoint_process:nN
- { \@@_change_case_breathing:nnnnnw {#1} {#2} {#3} {#4} }
- #5 \q_mark
+ { \@@_change_case_breathing:nnnnnnw {#1} {#2} {#3} {#4} {#5} }
+ #6 \q_mark
}
}
-\cs_new:Npn \@@_change_case_breathing:nnnnnw #1#2#3#4#5#6 \q_mark
+\cs_new:Npn \@@_change_case_breathing:nnnnnnw #1#2#3#4#5#6#7 \q_mark
{
- \tl_if_blank:nTF {#6}
+ \tl_if_blank:nTF {#7}
{
- \@@_change_case_breathing_aux:nnnnn
- {#1} {#2} {#3} {#4} {#5}
+ \@@_change_case_breathing_aux:nnnnnn
+ {#1} {#2} {#3} {#4} {#5} {#6}
}
{
\@@_codepoint_process:nN
- { \@@_change_case_breathing:nnnnnw {#1} {#2} {#3} {#4} }
- #6 \q_mark
+ { \@@_change_case_breathing:nnnnnnw {#1} {#2} {#3} {#4} {#5} }
+ #7 \q_mark
}
}
-\cs_new:Npn \@@_change_case_breathing_aux:nnnnn #1#2#3#4#5
+\cs_new:Npn \@@_change_case_breathing_aux:nnnnnn #1#2#3#4#5#6
{
\bool_lazy_or:nnTF
- { \@@_codepoint_compare_p:nNn {#5} = { "0313 } }
- { \@@_codepoint_compare_p:nNn {#5} = { "0314 } }
- { \@@_change_case_breathing_aux:nnnw {#1} {#2} {#4} }
- { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ { \@@_codepoint_compare_p:nNn {#6} = { "0313 } }
+ { \@@_codepoint_compare_p:nNn {#6} = { "0314 } }
+ { \@@_change_case_breathing_aux:nnnnw {#1} {#2} {#3} {#5} }
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
}
% \end{macrocode}
% Now the lookahead can be fired: check the next codepoint and assess
@@ -1736,29 +1766,29 @@
% breathing mark or generate the \emph{dialytika}: the
% latter is code shared with the general mechanism.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_breathing_aux:nnnw #1#2#3#4
+\cs_new:Npn \@@_change_case_breathing_aux:nnnnw #1#2#3#4#5
\q_@@_recursion_stop
{
\@@_change_case_store:e
- { \@@_change_case_codepoint:nn { upper } {#3} }
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_breathing_aux:nnN }
- { \@@_change_case_loop:nnw }
- {#1} {#2} #4 \q_@@_recursion_stop
+ { \@@_change_case_codepoint:nn { upper } {#4} }
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_breathing_aux:nnnN }
+ { \@@_change_case_loop:nnnw }
+ {#1} {#2} {#3} #5 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_breathing_aux:nnN #1#2#3
+\cs_new:Npn \@@_change_case_breathing_aux:nnnN #1#2#3#4
{
\@@_codepoint_process:nN
- { \@@_change_case_breathing_dialytika:nnn {#1} {#2} } #3
+ { \@@_change_case_breathing_dialytika:nnnn {#1} {#2} {#3} } #4
}
-\cs_new:Npn \@@_change_case_breathing_dialytika:nnn #1#2#3
+\cs_new:Npn \@@_change_case_breathing_dialytika:nnnn #1#2#3#4
{
- \@@_change_case_if_takes_dialytika:nTF {#3}
+ \@@_change_case_if_takes_dialytika:nTF {#4}
{
- \@@_change_case_upper_el_dialytika:n {#3}
- \@@_change_case_loop:nnw {#1} {#2}
+ \@@_change_case_upper_el_dialytika:n {#4}
+ \@@_change_case_loop:nnnw {#1} {#2} {#3}
}
- { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ { \@@_change_case_loop:nnnw {#1} {#2} {#3} #4 }
}
% \end{macrocode}
% \end{macro}
@@ -1769,88 +1799,88 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \begin{macro}[EXP]{\@@_change_case_title_el:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_title_el:nnnnn}
% Titlecasing retains accents, but to prevent the uppercasing code
% from kicking in, there has to be an explicit function here.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_title_el:nnnn #1#2#3#4
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+\cs_new:Npn \@@_change_case_title_el:nnnnn #1#2#3#4#5
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[EXP]
% {
-% \@@_change_case_upper_hy:nnnn ,
-% \@@_change_case_title_hy:nnnn ,
-% \@@_change_case_upper_hy-x-yiwn:nnnn ,
-% \@@_change_case_title_hy-x-yiwn:nnnn
+% \@@_change_case_upper_hy:nnnnn ,
+% \@@_change_case_title_hy:nnnnn ,
+% \@@_change_case_upper_hy-x-yiwn:nnnnn ,
+% \@@_change_case_title_hy-x-yiwn:nnnnn
% }
% See \url{https://www.unicode.org/L2/L2020/20143-armenian-ech-yiwn.pdf}.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_hy:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_hy:nnnnn #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "0587 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0587 }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0535 }
- { \@@_change_case_catcode:nn {#4} { "0535 } }
+ { \@@_change_case_catcode:nn {#5} { "0535 } }
\codepoint_generate:nn { "054E }
- { \@@_change_case_catcode:nn {#4} { "054E } }
+ { \@@_change_case_catcode:nn {#5} { "054E } }
}
- \use:c { @@_change_case_next_ #2 :nn }
- {#2} {#3}
+ \use:c { @@_change_case_next_ #2 :nnn }
+ {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
-\cs_new:Npn \@@_change_case_title_hy:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_title_hy:nnnnn #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "0587 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0587 }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0535 }
- { \@@_change_case_catcode:nn {#4} { "0535 } }
+ { \@@_change_case_catcode:nn {#5} { "0535 } }
\codepoint_generate:nn { "057E }
- { \@@_change_case_catcode:nn {#4} { "057E } }
+ { \@@_change_case_catcode:nn {#5} { "057E } }
}
- \use:c { @@_change_case_next_ #2 :nn }
- {#2} {#3}
+ \use:c { @@_change_case_next_ #2 :nnn }
+ {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
-\cs_new:cpn { @@_change_case_upper_hy-x-yiwn:nnnn } #1#2#3#4
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
-\cs_new_eq:cc { @@_change_case_title_hy-x-yiwn:nnnn }
- { @@_change_case_upper_hy-x-yiwn:nnnn }
+\cs_new:cpn { @@_change_case_upper_hy-x-yiwn:nnnnn } #1#2#3#4#5
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
+\cs_new_eq:cc { @@_change_case_title_hy-x-yiwn:nnnnn }
+ { @@_change_case_upper_hy-x-yiwn:nnnnn }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_change_case_lower_la-x-medieval:nnnn}
-% \begin{macro}[EXP]{\@@_change_case_upper_la-x-medieval:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_lower_la-x-medieval:nnnnn}
+% \begin{macro}[EXP]{\@@_change_case_upper_la-x-medieval:nnnnn}
% Simply swaps of characters.
% \begin{macrocode}
-\cs_new:cpn { @@_change_case_lower_la-x-medieval:nnnn } #1#2#3#4
+\cs_new:cpn { @@_change_case_lower_la-x-medieval:nnnnn } #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "0056 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0056 }
{
\@@_change_case_store:e
- { \char_generate:nn { "0075 } { \@@_char_catcode:N #4 } }
- \use:c { @@_change_case_next_ #2 :nn }
- {#2} {#3}
+ { \char_generate:nn { "0075 } { \@@_char_catcode:N #5 } }
+ \use:c { @@_change_case_next_ #2 :nnn }
+ {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
-\cs_new:cpn { @@_change_case_upper_la-x-medieval:nnnn } #1#2#3#4
+\cs_new:cpn { @@_change_case_upper_la-x-medieval:nnnnn } #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "0075 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0075 }
{
\@@_change_case_store:e
- { \char_generate:nn { "0056 } { \@@_char_catcode:N #4 } }
- \use:c { @@_change_case_next_ #2 :nn }
- {#2} {#3}
+ { \char_generate:nn { "0056 } { \@@_char_catcode:N #5 } }
+ \use:c { @@_change_case_next_ #2 :nnn }
+ {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
% \end{macrocode}
% \end{macro}
@@ -1858,62 +1888,62 @@
%
% \begin{macro}[EXP]
% {
-% \@@_change_cases_lower_lt:nnnn ,
-% \@@_change_cases_lower_lt_auxi:nnnn ,
-% \@@_change_cases_lower_lt_auxii:nnnn
+% \@@_change_cases_lower_lt:nnnnn ,
+% \@@_change_cases_lower_lt_auxi:nnnnn ,
+% \@@_change_cases_lower_lt_auxii:nnnnn
% }
-% \begin{macro}[rEXP]{\@@_change_case_lower_lt:nnw}
-% \begin{macro}[rEXP]{\@@_change_case_lower_lt:nnN}
-% \begin{macro}[rEXP]{\@@_change_case_lower_lt:nnn}
+% \begin{macro}[rEXP]{\@@_change_case_lower_lt:nnnw}
+% \begin{macro}[rEXP]{\@@_change_case_lower_lt:nnnN}
+% \begin{macro}[rEXP]{\@@_change_case_lower_lt:nnnn}
% For Lithuanian, the issue to be dealt with is dots over lower case
% letters: these should be present if there is another accent. The first step
% is a simple match attempt: look for the three uppercase accented letters
% which should gain a dot-above char in their lowercase form.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_lower_lt:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_lt:nnnnn #1#2#3#4#5
{
- \exp_args:Ne \@@_change_case_lower_lt_auxi:nnnn
+ \exp_args:Ne \@@_change_case_lower_lt_auxi:nnnnn
{
- \int_case:nn { \@@_codepoint_from_chars:Nw #4 }
+ \int_case:nn { \@@_codepoint_from_chars:Nw #5 }
{
{ "00CC } { "0300 }
{ "00CD } { "0301 }
{ "0128 } { "0303 }
}
}
- {#2} {#3} {#4}
+ {#2} {#3} {#4} {#5}
}
% \end{macrocode}
% If there was a hit, output the result with the dot-above and move on.
% Otherwise, look for one of the three letters that can take a combining
% accent: I, J nd I-ogonek.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_lower_lt_auxi:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_lt_auxi:nnnnn #1#2#3#4#5
{
\tl_if_blank:nTF {#1}
{
- \exp_args:Ne \@@_change_case_lower_lt_auxii:nnnn
+ \exp_args:Ne \@@_change_case_lower_lt_auxii:nnnnn
{
- \int_case:nn { \@@_codepoint_from_chars:Nw #4 }
+ \int_case:nn { \@@_codepoint_from_chars:Nw #5 }
{
{ "0049 } { "0069 }
{ "004A } { "006A }
{ "012E } { "012F }
}
}
- {#2} {#3} {#4}
+ {#2} {#3} {#4} {#5}
}
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0069 }
- { \@@_change_case_catcode:nn {#4} { "0069 } }
+ { \@@_change_case_catcode:nn {#5} { "0069 } }
\codepoint_generate:nn { "0307 }
- { \@@_change_case_catcode:nn {#4} { "0307 } }
+ { \@@_change_case_catcode:nn {#5} { "0307 } }
\codepoint_generate:nn {#1}
- { \@@_change_case_catcode:nn {#4} {#1} }
+ { \@@_change_case_catcode:nn {#5} {#1} }
}
- \@@_change_case_loop:nnw {#2} {#3}
+ \@@_change_case_loop:nnnw {#2} {#3} {#4}
}
}
% \end{macrocode}
@@ -1921,55 +1951,55 @@
% then need to look for a combining accent: as usual, we need to be aware of
% the loop situation.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_lower_lt_auxii:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_lt_auxii:nnnnn #1#2#3#4#5
{
\tl_if_blank:nTF {#1}
- { \@@_change_case_codepoint:nnnn {#2} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#2} {#2} {#3} {#4} {#5} }
{
\@@_change_case_store:e
{
\codepoint_generate:nn {#1}
- { \@@_change_case_catcode:nn {#4} {#1} }
+ { \@@_change_case_catcode:nn {#5} {#1} }
}
- \@@_change_case_lower_lt:nnw {#2} {#3}
+ \@@_change_case_lower_lt:nnnw {#2} {#3} {#4}
}
}
-\cs_new:Npn \@@_change_case_lower_lt:nnw #1#2#3 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_lower_lt:nnnw #1#2#3#4 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#3}
- { \@@_change_case_lower_lt:nnN }
- { \@@_change_case_loop:nnw }
- {#1} {#2} #3 \q_@@_recursion_stop
+ \tl_if_head_is_N_type:nTF {#4}
+ { \@@_change_case_lower_lt:nnnN }
+ { \@@_change_case_loop:nnnw }
+ {#1} {#2} {#3} #4 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_lower_lt:nnN #1#2#3
+\cs_new:Npn \@@_change_case_lower_lt:nnnN #1#2#3#4
{
\@@_codepoint_process:nN
- { \@@_change_case_lower_lt:nnn {#1} {#2} } #3
+ { \@@_change_case_lower_lt:nnnn {#1} {#2} {#3} } #4
}
-\cs_new:Npn \@@_change_case_lower_lt:nnn #1#2#3
+\cs_new:Npn \@@_change_case_lower_lt:nnnn #1#2#3#4
{
\bool_lazy_and:nnT
{
\bool_lazy_or_p:nn
- { ! \tl_if_single_p:n {#3} }
- { ! \token_if_cs_p:N #3 }
+ { ! \tl_if_single_p:n {#4} }
+ { ! \token_if_cs_p:N #4 }
}
{
\bool_lazy_any_p:n
{
- { \@@_codepoint_compare_p:nNn {#3} = { "0300 } }
- { \@@_codepoint_compare_p:nNn {#3} = { "0301 } }
- { \@@_codepoint_compare_p:nNn {#3} = { "0303 } }
+ { \@@_codepoint_compare_p:nNn {#4} = { "0300 } }
+ { \@@_codepoint_compare_p:nNn {#4} = { "0301 } }
+ { \@@_codepoint_compare_p:nNn {#4} = { "0303 } }
}
}
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0307 }
- { \@@_change_case_catcode:nn {#3} { "0307 } }
+ { \@@_change_case_catcode:nn {#4} { "0307 } }
}
}
- \@@_change_case_loop:nnw {#1} {#2} #3
+ \@@_change_case_loop:nnnw {#1} {#2} {#3} #4
}
% \end{macrocode}
% \end{macro}
@@ -1978,64 +2008,64 @@
% \end{macro}
% \begin{macro}[EXP]
% {
-% \@@_change_cases_upper_lt:nnnn ,
-% \@@_change_cases_upper_lt_aux:nnnn
+% \@@_change_cases_upper_lt:nnnnn ,
+% \@@_change_cases_upper_lt_aux:nnnnn
% }
-% \begin{macro}[rEXP]{\@@_change_case_upper_lt:nnw}
-% \begin{macro}[rEXP]{\@@_change_case_upper_lt:nnN}
-% \begin{macro}[rEXP]{\@@_change_case_upper_lt:nnn}
+% \begin{macro}[rEXP]{\@@_change_case_upper_lt:nnnw}
+% \begin{macro}[rEXP]{\@@_change_case_upper_lt:nnnN}
+% \begin{macro}[rEXP]{\@@_change_case_upper_lt:nnnn}
% The uppercasing version: first find i/j/i-ogonek, then look for the
% combining char: drop it if present.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_lt:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_lt:nnnnn #1#2#3#4#5
{
- \exp_args:Ne \@@_change_case_upper_lt_aux:nnnn
+ \exp_args:Ne \@@_change_case_upper_lt_aux:nnnnn
{
- \int_case:nn { \@@_codepoint_from_chars:Nw #4 }
+ \int_case:nn { \@@_codepoint_from_chars:Nw #5 }
{
{ "0069 } { "0049 }
{ "006A } { "004A }
{ "012F } { "012E }
}
}
- {#2} {#3} {#4}
+ {#2} {#3} {#4} {#5}
}
-\cs_new:Npn \@@_change_case_upper_lt_aux:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_lt_aux:nnnnn #1#2#3#4#5
{
\tl_if_blank:nTF {#1}
- { \@@_change_case_codepoint:nnnn { upper } {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn { upper } {#2} {#3} {#4} {#5} }
{
\@@_change_case_store:e
{
\codepoint_generate:nn {#1}
- { \@@_change_case_catcode:nn {#4} {#1} }
+ { \@@_change_case_catcode:nn {#5} {#1} }
}
- \@@_change_case_upper_lt:nnw {#2} {#3}
+ \@@_change_case_upper_lt:nnnw {#2} {#3} {#4}
}
}
-\cs_new:Npn \@@_change_case_upper_lt:nnw #1#2#3 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_upper_lt:nnnw #1#2#3#4 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#3}
- { \@@_change_case_upper_lt:nnN }
- { \use:c { @@_change_case_next_ #1 :nn } }
- {#1} {#2} #3 \q_@@_recursion_stop
+ \tl_if_head_is_N_type:nTF {#4}
+ { \@@_change_case_upper_lt:nnnN }
+ { \use:c { @@_change_case_next_ #1 :nnn } }
+ {#1} {#2} {#3} #4 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_upper_lt:nnN #1#2#3
+\cs_new:Npn \@@_change_case_upper_lt:nnnN #1#2#3#4
{
\@@_codepoint_process:nN
- { \@@_change_case_upper_lt:nnn {#1} {#2} } #3
+ { \@@_change_case_upper_lt:nnnn {#1} {#2} {#3} } #4
}
-\cs_new:Npn \@@_change_case_upper_lt:nnn #1#2#3
+\cs_new:Npn \@@_change_case_upper_lt:nnnn #1#2#3#4
{
\bool_lazy_and:nnTF
{
\bool_lazy_or_p:nn
- { ! \tl_if_single_p:n {#3} }
- { ! \token_if_cs_p:N #3 }
+ { ! \tl_if_single_p:n {#4} }
+ { ! \token_if_cs_p:N #4 }
}
- { \@@_codepoint_compare_p:nNn {#3} = { "0307 } }
- { \use:c { @@_change_case_next_ #1 :nn } {#1} {#2} }
- { \use:c { @@_change_case_next_ #1 :nn } {#1} {#2} #3 }
+ { \@@_codepoint_compare_p:nNn {#4} = { "0307 } }
+ { \use:c { @@_change_case_next_ #1 :nnn } {#1} {#2} {#3} }
+ { \use:c { @@_change_case_next_ #1 :nnn } {#1} {#2} {#3} #4 }
}
% \end{macrocode}
% \end{macro}
@@ -2044,84 +2074,84 @@
% \end{macro}
%
% \begin{macro}[EXP]
-% {\@@_change_case_title_nl:nnnn, \@@_change_case_title_nl_aux:nnnn}
-% \begin{macro}[EXP]{\@@_change_case_title_nl:nnw}
-% \begin{macro}[EXP]{\@@_change_case_title_nl:nnN}
+% {\@@_change_case_title_nl:nnnnn, \@@_change_case_title_nl_aux:nnnnn}
+% \begin{macro}[EXP]{\@@_change_case_title_nl:nnnw}
+% \begin{macro}[EXP]{\@@_change_case_title_nl:nnnN}
% For Dutch, there is a single look-ahead test for \texttt{ij} when
% title casing. If the appropriate letters are found, produce \texttt{IJ}
% and gobble the \texttt{j}/\texttt{J}.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_title_nl:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_title_nl:nnnnn #1#2#3#4#5
{
- \tl_if_single:nTF {#4}
- { \@@_change_case_title_nl_aux:nnnn }
- { \@@_change_case_codepoint:nnnn }
- {#1} {#2} {#3} {#4}
+ \tl_if_single:nTF {#5}
+ { \@@_change_case_title_nl_aux:nnnnn }
+ { \@@_change_case_codepoint:nnnnn }
+ {#1} {#2} {#3} {#4} {#5}
}
-\cs_new:Npn \@@_change_case_title_nl_aux:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_title_nl_aux:nnnnn #1#2#3#4#5
{
\bool_lazy_or:nnTF
- { \int_compare_p:nNn {`#4} = { "0049 } }
- { \int_compare_p:nNn {`#4} = { "0069 } }
+ { \int_compare_p:nNn {`#5} = { "0049 } }
+ { \int_compare_p:nNn {`#5} = { "0069 } }
{
\@@_change_case_store:e
- { \char_generate:nn { "0049 } { \@@_char_catcode:N #4 } }
- \@@_change_case_title_nl:nnw {#2} {#3}
+ { \char_generate:nn { "0049 } { \@@_char_catcode:N #5 } }
+ \@@_change_case_title_nl:nnnw {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
-\cs_new:Npn \@@_change_case_title_nl:nnw #1#2#3 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_title_nl:nnnw #1#2#3#4 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#3}
- { \@@_change_case_title_nl:nnN }
- { \use:c { @@_change_case_next_ #1 :nn } }
- {#1} {#2} #3 \q_@@_recursion_stop
+ \tl_if_head_is_N_type:nTF {#4}
+ { \@@_change_case_title_nl:nnnN }
+ { \use:c { @@_change_case_next_ #1 :nnn } }
+ {#1} {#2} {#3} #4 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_title_nl:nnN #1#2#3
+\cs_new:Npn \@@_change_case_title_nl:nnnN #1#2#3#4
{
\bool_lazy_and:nnTF
- { ! \token_if_cs_p:N #3 }
+ { ! \token_if_cs_p:N #4 }
{
\bool_lazy_or_p:nn
- { \int_compare_p:nNn {`#3} = { "004A } }
- { \int_compare_p:nNn {`#3} = { "006A } }
+ { \int_compare_p:nNn {`#4} = { "004A } }
+ { \int_compare_p:nNn {`#4} = { "006A } }
}
{
\@@_change_case_store:e
- { \char_generate:nn { "004A } { \@@_char_catcode:N #3 } }
- \use:c { @@_change_case_next_ #1 :nn } {#1} {#2}
+ { \char_generate:nn { "004A } { \@@_char_catcode:N #4 } }
+ \use:c { @@_change_case_next_ #1 :nnn } {#1} {#2} {#3}
}
- { \use:c { @@_change_case_next_ #1 :nn } {#1} {#2} #3 }
+ { \use:c { @@_change_case_next_ #1 :nnn } {#1} {#2} {#3} #4 }
}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_change_case_lower_tr:nnnn}
-% \begin{macro}[EXP]{\@@_change_case_lower_tr:nnNw}
-% \begin{macro}[EXP]{\@@_change_case_lower_tr:NnnN}
-% \begin{macro}[EXP]{\@@_change_case_lower_tr:Nnnn}
+% \begin{macro}[EXP]{\@@_change_case_lower_tr:nnnnn}
+% \begin{macro}[EXP]{\@@_change_case_lower_tr:nnnNw}
+% \begin{macro}[EXP]{\@@_change_case_lower_tr:NnnnN}
+% \begin{macro}[EXP]{\@@_change_case_lower_tr:Nnnnn}
% The Turkic languages need special treatment for dotted-i and dotless-i.
% The lower casing rule can be expressed in terms of searching first for
% either a dotless-I or a dotted-I. In the latter case the mapping is
% easy, but in the former there is a second stage search.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_lower_tr:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_tr:nnnnn #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "0049 }
- { \@@_change_case_lower_tr:nnNw {#1} {#3} #4 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0049 }
+ { \@@_change_case_lower_tr:nnnNw {#1} {#3} {#4} #5 }
{
- \@@_codepoint_compare:nNnTF {#4} = { "0130 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0130 }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0069 }
- { \@@_change_case_catcode:nn {#4} { "0069 } }
+ { \@@_change_case_catcode:nn {#5} { "0069 } }
}
- \@@_change_case_loop:nnw {#1} {#3}
+ \@@_change_case_loop:nnnw {#1} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
}
% \end{macrocode}
@@ -2130,41 +2160,41 @@
% combination is found both the dotless-I and the dot-above char have to
% be removed from the input.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_lower_tr:nnNw #1#2#3#4 \q_@@_recursion_stop
+\cs_new:Npn \@@_change_case_lower_tr:nnnNw #1#2#3#4#5 \q_@@_recursion_stop
{
- \tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_lower_tr:NnnN #3 {#1} {#2} }
+ \tl_if_head_is_N_type:nTF {#5}
+ { \@@_change_case_lower_tr:NnnnN #4 {#1} {#2} {#3} }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0131 }
- { \@@_change_case_catcode:nn {#3} { "0131 } }
+ { \@@_change_case_catcode:nn {#4} { "0131 } }
}
- \@@_change_case_loop:nnw {#1} {#2}
+ \@@_change_case_loop:nnnw {#1} {#2} {#3}
}
- #4 \q_@@_recursion_stop
+ #5 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_lower_tr:NnnN #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_tr:NnnnN #1#2#3#4#5
{
\@@_codepoint_process:nN
- { \@@_change_case_lower_tr:Nnnn #1 {#2} {#3} } #4
+ { \@@_change_case_lower_tr:Nnnnn #1 {#2} {#3} {#4} } #5
}
-\cs_new:Npn \@@_change_case_lower_tr:Nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_lower_tr:Nnnnn #1#2#3#4#5
{
\bool_lazy_or:nnTF
{
\bool_lazy_and_p:nn
- { \tl_if_single_p:n {#4} }
- { \token_if_cs_p:N #4 }
+ { \tl_if_single_p:n {#5} }
+ { \token_if_cs_p:N #5 }
}
- { ! \@@_codepoint_compare_p:nNn {#4} = { "0307 } }
+ { ! \@@_codepoint_compare_p:nNn {#5} = { "0307 } }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0131 }
{ \@@_change_case_catcode:nn {#1} { "0131 } }
}
- \@@_change_case_loop:nnw {#2} {#3} #4
+ \@@_change_case_loop:nnnw {#2} {#3} {#4} #5
}
{
\@@_change_case_store:e
@@ -2172,7 +2202,7 @@
\codepoint_generate:nn { "0069 }
{ \@@_change_case_catcode:nn {#1} { "0069 } }
}
- \@@_change_case_loop:nnw {#2} {#3}
+ \@@_change_case_loop:nnnw {#2} {#3} {#4}
}
}
% \end{macrocode}
@@ -2180,33 +2210,33 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \begin{macro}[EXP]{\@@_change_case_upper_tr:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_upper_tr:nnnnn}
% Uppercasing is easier: just one exception with no context.
% \begin{macrocode}
-\cs_new:Npn \@@_change_case_upper_tr:nnnn #1#2#3#4
+\cs_new:Npn \@@_change_case_upper_tr:nnnnn #1#2#3#4#5
{
- \@@_codepoint_compare:nNnTF {#4} = { "0069 }
+ \@@_codepoint_compare:nNnTF {#5} = { "0069 }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0130 }
- { \@@_change_case_catcode:nn {#4} { "0130 } }
+ { \@@_change_case_catcode:nn {#5} { "0130 } }
}
- \use:c { @@_change_case_next_ #2 :nn } {#2} {#3}
+ \use:c { @@_change_case_next_ #2 :nnn } {#2} {#3} {#4}
}
- { \@@_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
+ { \@@_change_case_codepoint:nnnnn {#1} {#2} {#3} {#4} {#5} }
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[EXP]
-% {\@@_change_case_lower_az:nnnn, \@@_change_case_upper_az:nnnn}
+% {\@@_change_case_lower_az:nnnnn, \@@_change_case_upper_az:nnnnn}
% Straight copies.
% \begin{macrocode}
-\cs_new_eq:NN \@@_change_case_lower_az:nnnn
- \@@_change_case_lower_tr:nnnn
-\cs_new_eq:NN \@@_change_case_upper_az:nnnn
- \@@_change_case_upper_tr:nnnn
+\cs_new_eq:NN \@@_change_case_lower_az:nnnnn
+ \@@_change_case_lower_tr:nnnnn
+\cs_new_eq:NN \@@_change_case_upper_az:nnnnn
+ \@@_change_case_upper_tr:nnnnn
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/l3kernel/l3text-map.dtx b/macros/latex/contrib/l3kernel/l3text-map.dtx
index 8b3ac6098c..d863e51ace 100644
--- a/macros/latex/contrib/l3kernel/l3text-map.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-map.dtx
@@ -2,7 +2,7 @@
%
%% File: l3text-map.dtx
%
-% Copyright (C) 2022,2023 The LaTeX Project
+% Copyright (C) 2022-2023 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx
index 075b370737..5770853cd7 100644
--- a/macros/latex/contrib/l3kernel/l3text-purify.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx
index 8df534cc84..ea33b58855 100644
--- a/macros/latex/contrib/l3kernel/l3text.dtx
+++ b/macros/latex/contrib/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -94,18 +94,18 @@
%
% \section{Case changing}
%
-% \begin{function}[EXP, added = 2019-11-20, updated = 2022-10-13]
+% \begin{function}[EXP, added = 2019-11-20, updated = 2023-07-08]
% {
-% \text_lowercase:n, \text_uppercase:n, \text_titlecase:n,
+% \text_lowercase:n, \text_uppercase:n, \text_titlecase_all:n,
% \text_titlecase_first:n,
-% \text_lowercase:nn, \text_uppercase:nn, \text_titlecase:nn,
+% \text_lowercase:nn, \text_uppercase:nn, \text_titlecase_all:nn,
% \text_titlecase_first:nn
% }
% \begin{syntax}
% \cs{text_uppercase:n} \Arg{tokens}
% \cs{text_uppercase:nn} \Arg{BCP-47} \Arg{tokens}
% \end{syntax}
-% Takes user input \meta{text} first applies \cs{text_expand}, then
+% Takes user input \meta{text} first applies \cs{text_expand:n}, then
% transforms the case of character tokens as specified by the
% function name. The category code of letters are not changed by this
% process when Unicode engines are used; in $8$-bit engines, case changed
@@ -115,11 +115,13 @@
%
% Upper- and lowercase have the obvious meanings. Titlecasing may be regarded
% informally as converting the first character of the \meta{tokens} to
-% uppercase and the rest to lowercase. However, the process is more complex
+% uppercase. However, the process is more complex
% than this as there are some situations where a single lowercase character
% maps to a special form, for example \texttt{ij} in Dutch which becomes
-% \texttt{IJ}. The \texttt{titlecase_first} variant does not attempt
-% any case changing at all after the first letter has been processed.
+% \texttt{IJ}. There are two functions available for titlecasing: one which
+% applies the change to each \enquote{word} and a second which only applies
+% at the start of the input. (Here, \enquote{word} boundaries are spaces:
+% at present, full Unicode word breaking is not attempted.)
%
% Importantly, notice that these functions are intended for working with
% user \emph{text for typesetting}. For case changing programmatic data see
@@ -163,10 +165,7 @@
% I-dot and introduced when upper casing i-dotless.
% \item German (\texttt{de-x-eszett}).
% An alternative mapping for German in which the lowercase
-% \emph{Eszett} maps to a \emph{gro\ss{}es Eszett}. Since there is
-% a |T1| slot for the \emph{gro\ss{}es Eszett} in |T1|, this
-% tailoring \emph{is} available with \pdfTeX{} as well as in the
-% Unicode \TeX{} engines.
+% \emph{Eszett} maps to a \emph{gro\ss{}es Eszett}.
% \item Greek (\texttt{el}).
% Removes accents from Greek letters when uppercasing; titlecasing
% leaves accents in place. A variant \texttt{el-x-iota} is available
@@ -185,25 +184,17 @@
% The characters |u| and |V| are interchanged on case changing.
% \item Dutch (\texttt{nl}).
% Capitalisation of \texttt{ij} at the beginning of titlecased
-% input produces \texttt{IJ} rather than \texttt{Ij}. The output
-% retains two separate letters, thus this transformation \emph{is}
-% available using \pdfTeX{}.
+% input produces \texttt{IJ} rather than \texttt{Ij}.
% \end{itemize}
%
-% For titlecasing, note that there are two functions available. The
-% function \cs{text_titlecase:n} applies (broadly) uppercasing to the first
-% letter of the input, then lowercasing to the remainder. In contrast,
-% \cs{text_titlecase_first:n} \emph{only} carries out the uppercasing operation,
-% and leaves the balance of the input unchanged. Determining whether
-% non-letter characters at the start of text should switch from upper- to
-% lowercasing is controllable. When \cs{l_text_titlecase_check_letter_bool} is
+% Determining whether non-letter characters at the start of text should count
+% as the uppercase element is controllable. When \cs{l_text_titlecase_check_letter_bool} is
% \texttt{true}, characters which are not letters (category code~$11$) are
-% left unchanged and \enquote{skipped}: the first \emph{letter} is uppercased.
+% \enquote{skipped}: the first \emph{letter} is uppercased.
% (With $8$-bit engines, this is extended to active characters which form
% part of a multi-byte letter codepoint.) When
% \cs{l_text_titlecase_check_letter_bool} is \texttt{false}, the first
-% character is uppercased, and the rest lowercased, irrespective of the nature
-% of the character.
+% character is uppercased, irrespective of the category code of the character.
%
% \begin{function}[added = 2022-07-04]
% {
diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
index 9cadf04e87..6336b0d076 100644
--- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -177,9 +177,6 @@
% by avoiding \cs{exp_not:n} for characters other than active and macro
% parameters.)
%
-% ^^A todo: ask LuaTeX list for an \ifx\undefined <active char>
-% ^^A which does not add the <active char> in memory.
-%
% \begin{macrocode}
%<*package>
% \end{macrocode}
@@ -443,6 +440,42 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_analysis_disable_char:N}
+% Similar to \cs{@@_analysis_disable:n}, but it receives a normal
+% character token, tests if that token is active (by turning it into
+% a space: the active space has been undefined at this point), and
+% if so, disables it. Even if the character is active and set equal
+% to a primitive conditional, nothing blows up.
+% Again, in \pTeX{} and \upTeX{} we skip characters beyond $[0,255]$,
+% which cannot be active anyways.
+% \begin{macrocode}
+\group_begin:
+ \char_set_catcode_active:N \^^@
+ \cs_new_protected:Npn \@@_analysis_disable_char:N #1
+ {
+ \tex_lccode:D `#1 = 32 \exp_stop_f:
+ \tex_lowercase:D { \if_meaning:w #1 } \tex_undefined:D
+ \tex_let:D #1 \tex_undefined:D
+ \fi:
+ }
+ \bool_lazy_or:nnT
+ { \sys_if_engine_ptex_p: }
+ { \sys_if_engine_uptex_p: }
+ {
+ \cs_gset_protected:Npn \@@_analysis_disable_char:N #1
+ {
+ \if_int_compare:w 256 > `#1 \exp_stop_f:
+ \tex_lccode:D `#1 = 32 \exp_stop_f:
+ \tex_lowercase:D { \if_meaning:w #1 } \tex_undefined:D
+ \tex_let:D #1 \tex_undefined:D
+ \fi:
+ \fi:
+ }
+ }
+\group_end:
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{First pass}
%
% The goal of this pass is to detect special (non-\texttt{N}-type) tokens,
@@ -737,7 +770,7 @@
\exp_after:wN \use_ii:nn
\fi:
{
- \@@_analysis_disable:n { `#1 }
+ \@@_analysis_disable_char:N #1
\int_incr:N \l_@@_analysis_normal_int
}
{ \@@_analysis_cs_space_count:NN \@@_analysis_a_cs:ww #1 }
diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx
index e606c3c558..f3c52e2a0f 100644
--- a/macros/latex/contrib/l3kernel/l3tl.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -187,7 +187,7 @@
% \tl_put_left:co,
% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:Nv, \tl_gput_left:Ne,
% \tl_gput_left:No,
-% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:ce
+% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:ce,
% \tl_gput_left:co
% }
% \begin{syntax}
@@ -205,7 +205,7 @@
% \tl_put_right:co,
% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:Nv, \tl_gput_right:Ne,
% \tl_gput_right:No,
-% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:ce
+% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:ce,
% \tl_gput_right:co
% }
% \begin{syntax}
@@ -592,8 +592,8 @@
% \begin{syntax}
% \cs{tl_reverse_items:n} \Arg{token list}
% \end{syntax}
-% Reverses the order of the \meta{items} stored in \meta{tl~var},
-% so that \Arg{item_1}\Arg{item_2}\Arg{item_3} \ldots \Arg{item_n}
+% Reverses the order of the \meta{items} in the \meta{token list},
+% so that \meta{item_1}\meta{item_2}\meta{item_3} \ldots \meta{item_n}
% becomes \Arg{item_n} \ldots{} \Arg{item_3}\Arg{item_2}\Arg{item_1}.
% This process removes any unprotected space within the
% \meta{token list}. Braced token groups are copied without
diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx
index aedde78098..888ceb3601 100644
--- a/macros/latex/contrib/l3kernel/l3token.dtx
+++ b/macros/latex/contrib/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
@@ -481,6 +481,18 @@
% \end{texnote}
% \end{function}
%
+% \begin{function}[EXP,added = 2023-10-15]{\token_to_catcode:N}
+% \begin{syntax}
+% \cs{token_to_catcode:N} \meta{token}
+% \end{syntax}
+% Converts the given \meta{token} into a number describing its category code.
+% If \meta{token} is a control sequence this expands to $16$. This can't
+% detect the categories $0$ (escape character), $5$ (end of line), $9$
+% (ignored character), $14$ (comment character), or $15$ (invalid character).
+% Control sequences or active characters let to a token of one of the
+% detectable category codes will yield that category.
+% \end{function}
+%
% \section{Token conditionals}
%
% \begin{function}[EXP,pTF]{\token_if_group_begin:N}
@@ -1022,7 +1034,7 @@
% For instance \cs{peek_regex:nTF} \verb"{ abc | [a-z] }" |{ } { }|
% |abc| will only inspect the first token~|a| even though the first
% branch |abc| of the alternative is preferred in functions such as
-% \cs{peek_regex_remove_once:n}. This may have an effect on
+% \cs{peek_regex_remove_once:nTF}. This may have an effect on
% tokenization if the input stream has not yet been tokenized and
% category codes are changed.
% \end{texnote}
@@ -1221,7 +1233,7 @@
% \end{syntax}
% Converts the \meta{char} to the equivalent case-changed character
% as detailed by the function name (see \cs{str_foldcase:n}
-% and \cs{text_titlecase:n} for details of these terms). The case mapping
+% and \cs{text_titlecase_all:n} for details of these terms). The case mapping
% is carried out with no context-dependence (\emph{cf.}~\cs{text_uppercase:n},
% \emph{etc.}) The \texttt{str} versions always generate \enquote{other}
% (category code $12$) characters, whilst the standard versions generate
@@ -1873,6 +1885,66 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\token_to_catcode:N}
+% \begin{macro}{\@@_to_catcode:N}
+% The macro works by comparing the input token with \cs{if_catcode:w} with all
+% valid category codes. Since the most common tokens in an average argument
+% list are of category $11$ or $12$ those are tested first. And since a space
+% and braces are no ordinary |N|-type arguments, and only control sequences
+% let to those categories can match them they are tested last.
+% \begin{macrocode}
+\cs_new:Npn \token_to_catcode:N
+ { \int_value:w \group_align_safe_begin: \@@_to_catcode:N }
+\cs_new:Npn \@@_to_catcode:N #1
+ {
+ \if_catcode:w \exp_not:N #1 \c_catcode_letter_token
+ 11
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_catcode_other_token
+ 12
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_math_toggle_token
+ 3
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_alignment_token
+ 4
+ \else:
+ \if_catcode:w \exp_not:N #1 ##
+ 6
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_math_superscript_token
+ 7
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_math_subscript_token
+ 8
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_group_begin_token
+ 1
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_group_end_token
+ 2
+ \else:
+ \if_catcode:w \exp_not:N #1 \c_space_token
+ 10
+ \else:
+ \token_if_cs:NTF #1 { 16 } { 13 }
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+ \fi:
+ \group_align_safe_end:
+ \exp_stop_f:
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}
% {
% \c_group_begin_token,
diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx
index 2161e0963e..54486cc0fa 100644
--- a/macros/latex/contrib/l3kernel/l3unicode.dtx
+++ b/macros/latex/contrib/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-10-10}
+% \date{Released 2023-10-23}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf
index a89fb20da4..13567c5b2a 100644
--- a/macros/latex/contrib/l3kernel/source3.pdf
+++ b/macros/latex/contrib/l3kernel/source3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex
index bd89e29524..bb91c59643 100644
--- a/macros/latex/contrib/l3kernel/source3.tex
+++ b/macros/latex/contrib/l3kernel/source3.tex
@@ -57,7 +57,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-10-10}
+\date{Released 2023-10-23}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/source3body.tex b/macros/latex/contrib/l3kernel/source3body.tex
index 34573d3d64..f76e8f2872 100644
--- a/macros/latex/contrib/l3kernel/source3body.tex
+++ b/macros/latex/contrib/l3kernel/source3body.tex
@@ -517,9 +517,9 @@ logical construct.
\section{\TeX{} concepts not supported by \LaTeX3{}}
-The \TeX{} concept of an \enquote{\cs{outer}} macro is \emph{not supported}
+The \TeX{} concept of an \enquote{\tn{outer}} macro is \emph{not supported}
at all by \LaTeX3{}. As such, the functions provided here may break when
-used on top of \LaTeXe{} if \cs{outer} tokens are used in the arguments.
+used on top of \LaTeXe{} if \tn{outer} tokens are used in the arguments.
\DisableImplementation
@@ -582,6 +582,9 @@ used on top of \LaTeXe{} if \cs{outer} tokens are used in the arguments.
l3fp-trig.dtx ,
l3fp-convert.dtx ,
l3fp-random.dtx ,
+ l3fp-types.dtx ,
+ l3fp-symbolic.dtx ,
+ l3fp-functions.dtx
}
\ExplSyntaxOff
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index 8b01a1641f..5df419a5b7 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index 2c4df3e623..129b5f63b6 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -5,8 +5,8 @@
% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
\documentclass[a4paper,french,11pt]{article}
-\def\PLversion{2.8.0}
-\def\PLdate{19 octobre 2023}
+\def\PLversion{3.00a}
+\def\PLdate{23 octobre 2023}
\usepackage{amsfonts}
\usepackage{ProfLycee}
\useproflyclib{piton,minted,pythontex,ecritures}
@@ -140,16 +140,16 @@
keywordstyle={\color{blue}},%
classoffset=1,%
alsoletter={-},%
- morekeywords={ProfLycee,CodePythonLst,CodePythonLstAlt,CodePiton,PitonConsole,CodePythontex,CodePythontexAlt,ConsolePythontex,CodePythonMinted,CodePythonMintedAlt,PseudoCode,PseudoCodeAlt,TerminalWin,TerminalUnix,TerminalOSX,EnvArbreProbasTikz,EnvSudoMaths},%
+ morekeywords={ProfLycee,CodePythonLst,CodePythonLstAlt,CodePiton,PitonConsole,CodePythontex,CodePythontexAlt,ConsolePythontex,CodePythonMinted,CodePythonMintedAlt,PseudoCode,PseudoCodeAlt,TerminalWin,TerminalUnix,TerminalOSX,EnvArbreProbasTikz,EnvSudoMaths,RepIntervalles},%
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\ResolutionApprochee,\SolutionTVI,\CalculTermeRecurrence,\ToileRecurrence,\SolutionSeuil,\IntegraleApprochee,\GrilleTikz,\AxesTikz,\AxexTikz,\AxeyTikz,\FenetreTikz,\FenetreSimpleTikz,\DeclareFonctionTikz,\CourbeTikz,\OrigineTikz,\SplineTikz,\TangenteTikz,\MiniSchemaSignes,\MiniSchemaSignesTkzTab,\IntegraleApprocheeTikz,\CartoucheCapytale,\PaveTikz,\TetraedreTikz,\CercleTrigo,\AffPoint,\AffVecteur,\TrouveEqCartPlan,\TrouveEqParamDroite,\TrouveEqCartDroite,\TrouveNorme,\TrouveDistancePtPlan,\EquationReduite,\CalculsRegLin,\PointsRegLin,\NuagePointsTikz,\PointMoyenTikz,\BoiteMoustaches,\BoiteMoustachesAxe,\Histogramme,\CalcBinomP,\CalcBinomC,\BinomP,\BinomC,\CalcPoissP,\CalcPoissC,\PoissonP,\PoissonC,\CalcGeomP,\CalcGeomC,\GeomP,\GeomC,\CalcHypergeomP,\CalcHypergeomP,\HypergeomP,\HypergeomC,\CalcNormC,\NormaleC,\CalcExpoC,\ExpoC,\ArbreProbasTikz,\LoiNormaleGraphe,\LoiExpoGraphe,\NbAlea,\VarNbAlea,\TirageAleatoireEntiers,\Arrangement,\Combinaison,\ConversionDecBin,\ConversionBinHex,\ConversionVersDec,\ConversionHexBin,\ConversionBaseDix,\ConversionDepuisBaseDix,\PresentationPGCD,\EquationDiophantienne,\ConversionFraction,\SimplificationRacine,\EcritureEnsemble,\EcritureTrinome,\MesurePrincipale,\LigneTrigo,\SudoMaths,\FonctionRepartTikz,\IntervalleFF,\IntervalleFO,\IntervalleOF,\IntervalleOO,\RepereOij,\RepereOuv,\RepereOijk,\ReperePlan,\RepereEspace,\jfalg,\jfexp,\LoiNormale,\LoiBinomiale,\LoiPoisson,\LoiExpo,\LoiUnif,\Courbe,\Suite,\CoordPtPl,\CoordPtEsp,\CoordVecPl,\CoordVecEsp,\MatDeux,\Vecteur,\Esper,\Varianc,\EcType,\dx,\Integrale,\Modulo,\Arrondi,\CodePythonLstFichier,\CodePythonLstFichierAlt,\colorlet,\PtsDiscontinuite,\ListeDiviseurs,\ArbreDiviseurs,\FractaleTikz,\EtapesFloconKoch,\EtapesTapisSierpinski
+ morekeywords={\ResolutionApprochee,\SolutionTVI,\CalculTermeRecurrence,\ToileRecurrence,\SolutionSeuil,\IntegraleApprochee,\GrilleTikz,\AxesTikz,\AxexTikz,\AxeyTikz,\FenetreTikz,\FenetreSimpleTikz,\DeclareFonctionTikz,\CourbeTikz,\OrigineTikz,\SplineTikz,\TangenteTikz,\MiniSchemaSignes,\MiniSchemaSignesTkzTab,\IntegraleApprocheeTikz,\CartoucheCapytale,\PaveTikz,\TetraedreTikz,\CercleTrigo,\AffPoint,\AffVecteur,\TrouveEqCartPlan,\TrouveEqParamDroite,\TrouveEqCartDroite,\TrouveNorme,\TrouveDistancePtPlan,\EquationReduite,\CalculsRegLin,\PointsRegLin,\NuagePointsTikz,\PointMoyenTikz,\BoiteMoustaches,\BoiteMoustachesAxe,\Histogramme,\CalcBinomP,\CalcBinomC,\BinomP,\BinomC,\CalcPoissP,\CalcPoissC,\PoissonP,\PoissonC,\CalcGeomP,\CalcGeomC,\GeomP,\GeomC,\CalcHypergeomP,\CalcHypergeomP,\HypergeomP,\HypergeomC,\CalcNormC,\NormaleC,\CalcExpoC,\ExpoC,\ArbreProbasTikz,\LoiNormaleGraphe,\LoiExpoGraphe,\NbAlea,\VarNbAlea,\TirageAleatoireEntiers,\Arrangement,\Combinaison,\ConversionDecBin,\ConversionBinHex,\ConversionVersDec,\ConversionHexBin,\ConversionBaseDix,\ConversionDepuisBaseDix,\PresentationPGCD,\EquationDiophantienne,\ConversionFraction,\SimplificationRacine,\EcritureEnsemble,\EcritureTrinome,\MesurePrincipale,\LigneTrigo,\SudoMaths,\FonctionRepartTikz,\IntervalleFF,\IntervalleFO,\IntervalleOF,\IntervalleOO,\RepereOij,\RepereOuv,\RepereOijk,\ReperePlan,\RepereEspace,\jfalg,\jfexp,\LoiNormale,\LoiBinomiale,\LoiPoisson,\LoiExpo,\LoiUnif,\Courbe,\Suite,\CoordPtPl,\CoordPtEsp,\CoordVecPl,\CoordVecEsp,\MatDeux,\Vecteur,\Esper,\Varianc,\EcType,\dx,\Integrale,\Modulo,\Arrondi,\CodePythonLstFichier,\CodePythonLstFichierAlt,\colorlet,\PtsDiscontinuite,\ListeDiviseurs,\ArbreDiviseurs,\FractaleTikz,\EtapesFloconKoch,\EtapesTapisSierpinski,\tkzIntervalle,\AffAngleRadian
},%
keywordstyle={\color{CouleurVertForet}},%
classoffset=3,%
alsoletter={-},%
- morekeywords={minimum-decimal-digits,scale,nonamssymb,build,Precision,Intervalle,Variable,NomFct,NomSol,va,vb,Stretch,Balayage,Calculatrice,Majuscule,No,UNo,NomSuite,Simple,Exact,Conclusion,Sens,ResultatBrut,Methode,NbSubDiv,AffFormule,Expr,Signe,Variables,Affp,Affs,Epaisseur,Police,ElargirOx,ElargirOy,Labelx,Labely,AffLabel,PosLabelx,PosLabely,EchelleFleche,TypeFleche,PosGrad,HautGrad,AffGrad,AffOrigine,Annee,Trigo,Dfrac,Style,Coeffs,AffPoints,TaillePoints,xl,xr,Code,Racines,Largeur,Hauteur,Cadre,Fct,Nom,PosLabel,DecalLabel,TailleLabel,AffTermes,RemplirbOpacite,CouleurRemplissage,Lignes,Gobble,Alignement,Filigrane,BarreTitre,CouleurNombres,Centre,EspacementVertical,Label,Titre,Profondeur,Angle,Fuite,Sommets,Math,Aff,Plein,Cube,Alpha,Beta,Rayon,Marge,TailleValeurs,TailleAngles,CouleurFond,Decal,MoinsPi,AffAngles,AffTraits,AffValeurs,Equationcos,Equationsin,sin,cos,AffTraitsEq,CouleurSol,OptionCoeffs,SimplifCoeffs,Facteur,OptionCoeffs,Reel,Oppose,Rgras,SimplifCoeffs,VectDirecteur,NomCoeffa,NomCoeffb,NomCoeffr,NomCoeffrd,NomXmin,NomXmax,Ox,Oy,xg,yg,AffNom,Elevation,Moyenne,AffMoyenne,Pointilles,Valeurs,Elargir,Min,Max,DebutOx,FinOx,ListeCouleurs,ElargirX,ElargirY,LabelX,LabelY,GradX,GradY,AffEffectifs,PosEffectifs,Opacite,AffBornes,GrilleV,PoliceAxes,PoliceEffectifs,EpaisseurTraits,Unite,EspaceNiveau,EspaceFeuille,Type,PoliceProbas,InclineProbas,Fleche,StyleTrait,EpaisseurTrait,CouleurAire,CouleurCourbe,AfficheM,AfficheCadre,ValMin,ValMax,NbVal,Sep,Tri,Repetition,Notation,NotationAncien,Formule,AffBase,Details,BaseDep,Zeros,DecalH,DecalV,Noeud,Rect,CouleurRes,DecalRect,Rectangle,CouleurResultat,AfficheConclusion,AfficheDelimiteurs,Lettre,Inconnues,Entier,Cadres,PresPGCD,Mathpunct,Option,Alea,Anegatif,Crochets,Brut,Etapes,Epaisseurg,CouleurCase,CouleurTexte,NbSubCol,NbLig,NbCol,Legendes,PoliceLeg,ListeLegV,ListeLegH,DecalLegende,Couleur,Uno,Grille,ExtraGrilleY,PosLegende,Pointilles,Extremite,Frac,PremLigne,Type,Pos,Echelle,AffNom,EspaceNiveau,CouleurDetails,Fleches,EspaceFeuille,Details,LongueurCote,AlignV,Offset,Remplir,Etape,Depart,Contour,Remplissage},%
+ morekeywords={minimum-decimal-digits,scale,nonamssymb,build,Precision,Intervalle,Variable,NomFct,NomSol,va,vb,Stretch,Balayage,Calculatrice,Majuscule,No,UNo,NomSuite,Simple,Exact,Conclusion,Sens,ResultatBrut,Methode,NbSubDiv,AffFormule,Expr,Signe,Variables,Affp,Affs,Epaisseur,Police,ElargirOx,ElargirOy,Labelx,Labely,AffLabel,PosLabelx,PosLabely,EchelleFleche,TypeFleche,PosGrad,HautGrad,AffGrad,AffOrigine,Annee,Trigo,Dfrac,Style,Coeffs,AffPoints,TaillePoints,xl,xr,Code,Racines,Largeur,Hauteur,Cadre,Fct,Nom,PosLabel,DecalLabel,TailleLabel,AffTermes,RemplirbOpacite,CouleurRemplissage,Lignes,Gobble,Alignement,Filigrane,BarreTitre,CouleurNombres,Centre,EspacementVertical,Label,Titre,Profondeur,Angle,Fuite,Sommets,Math,Aff,Plein,Cube,Alpha,Beta,Rayon,Marge,TailleValeurs,TailleAngles,CouleurFond,Decal,MoinsPi,AffAngles,AffTraits,AffValeurs,Equationcos,Equationsin,sin,cos,AffTraitsEq,CouleurSol,OptionCoeffs,SimplifCoeffs,Facteur,OptionCoeffs,Reel,Oppose,Rgras,SimplifCoeffs,VectDirecteur,NomCoeffa,NomCoeffb,NomCoeffr,NomCoeffrd,NomXmin,NomXmax,Ox,Oy,xg,yg,AffNom,Elevation,Moyenne,AffMoyenne,Pointilles,Valeurs,Elargir,Min,Max,DebutOx,FinOx,ListeCouleurs,ElargirX,ElargirY,LabelX,LabelY,GradX,GradY,AffEffectifs,PosEffectifs,Opacite,AffBornes,GrilleV,PoliceAxes,PoliceEffectifs,EpaisseurTraits,Unite,EspaceNiveau,EspaceFeuille,Type,PoliceProbas,InclineProbas,Fleche,StyleTrait,EpaisseurTrait,CouleurAire,CouleurCourbe,AfficheM,AfficheCadre,ValMin,ValMax,NbVal,Sep,Tri,Repetition,Notation,NotationAncien,Formule,AffBase,Details,BaseDep,Zeros,DecalH,DecalV,Noeud,Rect,CouleurRes,DecalRect,Rectangle,CouleurResultat,AfficheConclusion,AfficheDelimiteurs,Lettre,Inconnues,Entier,Cadres,PresPGCD,Mathpunct,Option,Alea,Anegatif,Crochets,Brut,Etapes,Epaisseurg,CouleurCase,CouleurTexte,NbSubCol,NbLig,NbCol,Legendes,PoliceLeg,ListeLegV,ListeLegH,DecalLegende,Couleur,Uno,Grille,ExtraGrilleY,PosLegende,Pointilles,Extremite,Frac,PremLigne,Type,Pos,Echelle,AffNom,EspaceNiveau,CouleurDetails,Fleches,EspaceFeuille,Details,LongueurCote,AlignV,Offset,Remplir,Etape,Depart,Contour,Remplissage,Graduations,GraduationsAlt,HautGrad,Valeurs,EpTrait,Decor,NumInf,NumSup,NiveauV,PosValeurs},%
keywordstyle={\color{orange!75!black}}
}
}
@@ -308,94 +308,7 @@
\node[coeffs] at ({(9+10)/2},5.5) {#4} ;%
}
-\title{%
-\begin{minipage}{0.85\linewidth}
- \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
- \begin{center}
- \begin{tabular}{c}
- \lstinline!ProfLycee!\\
- \\
- Quelques \textit{petites} commandes pour \LaTeX{} (au lycée)
- \end{tabular}
- \end{center}
- \end{tcolorbox}
-\end{minipage}
-}
-\author{
- \begin{tabular}{c}
- Cédric Pierquet\\
- {\ttfamily c pierquet -- at -- outlook . fr}
- \end{tabular}
-}
-\date{Version \PLversion{} -- \PLdate}
-
-\newcommand\Cle[1]{{\bfseries\sffamily\textlangle \textcolor{orange!75!black}{#1}\textrangle}}
-\newcommand\deblst{{\tiny\faCode}~}
-
-\begin{document}
-
-\setlength{\aweboxleftmargin}{0.07\linewidth}
-\setlength{\aweboxcontentwidth}{0.93\linewidth}
-\setlength{\aweboxvskip}{8pt}
-
-\pagestyle{fancy}
-
-\maketitle
-
-\thispagestyle{empty}
-
-{\sffamily{\bfseries Résumé} : Quelques commandes pour faciliter l'utilisation de \LaTeX{} pour les mathématiques, au lycée.}
-
-\medskip
-
-{\footnotesize\noindent%
-{\deblst} résoudre, de manière approchée, des équations\\
-{\deblst} calculer (et représenter) une valeur approchée d'une intégrale\\
-{\deblst} tracer \textit{facilement} des repères/grilles/courbes\\
-{\deblst} tracer des courbes \textit{lisses} avec gestion des extrema et des dérivées\\
-{\deblst} présenter du code \textsf{python} ou \textsf{pseudocode}, une console d'exécution \textsf{Python} \\
-{\deblst} tracer rapidement un pavé, un tétraèdre \\
-{\deblst} simplifier des calculs sous forme fractionnaire, simplifier des racines \\
-{\deblst} effectuer des calculs avec des suites récurrentes, créer la \textit{toile} pour une suite récurrente \\
-{\deblst} afficher et utiliser un cercle trigo \\
-{\deblst} afficher un petit schéma pour le signe d'une fonction affine ou d'un trinôme \\
-{\deblst} travailler sur les statistiques à deux variables (algébriques et graphiques) \\
-{\deblst} tracer un histogramme, avec classes régulières ou non \\
-{\deblst} convertir entre bin/dec/hex avec détails \\
-{\deblst} présenter un calcul de PGCD \\
-{\deblst} effectuer des calculs de probas (lois binomiale, exponentielle, de Poisson, normale) \\
-{\deblst} créer des arbres de probas \og classiques \fg \\
-{\deblst} générer des listes d'entiers aléatoires (avec ou sans répétitions) \\
-{\deblst} déterminer la mesure principale d'un angle, calculer les lignes trigonométriques d'angles \og classiques \fg{} \\
-{\deblst} résoudre une équation diophantienne \og classique \fg{} \\
-{\deblst} travailler avec un peu de géométrie analytique \\
-{\deblst} composer des mathématiques}
-
-~
-
-\hfill{}\textsl{Merci à Anne et quark67 pour leurs retours et relectures !}
-
-\hfill{}\textsl{Merci à Christophe et Denis pour leurs retours et éclairages !}
-
-\hfill{}\textsl{Merci aux membres du groupe \faFacebook{} du \og Coin \LaTeX{} \fg{} pour leur aide et leurs idées !}
-
-~
-
-\vfill
-
-\hrule
-
-\medskip
-
-\TableauDocumentation
-
-\medskip
-
-\hrule
-
-\vfill
-
-~
+\input{ProfLycee-doc-pagegarde.tex}
\newpage
@@ -416,223 +329,7 @@
\newpage
-\part{Introduction}
-
-\section{Le package ProfLycee}
-
-\subsection{\og Philosophie \fg{} du package}
-
-\begin{noteblock}
-Ce \ctex{package}, très largement inspiré (et beaucoup moins abouti) de l'excellent \ctex{ProfCollege} de C. Poulain et des excellents \ctex{tkz-*} d'A. Matthes, va définir quelques outils pour des situations particulières qui ne sont pas encore dans \ctex{ProfCollege}.
-
-On peut le voir comme un (maigre) complément à \ctex{ProfCollege}, et je précise que la syntaxe est très proche (car pertinente de base) et donc pas de raison de changer une \textit{équipe qui gagne} !
-
-\medskip
-
-Il se charge de manière classique, dans le préambule, par \ctex{\textbackslash usepackage\{ProfLycee\}}. Il charge des {packages} utiles, mais j'ai fait le choix de laisser l'utilisateur gérer ses autres {packages}, comme notamment \ctex{amssymb} qui peut poser souci en fonction de la \textit{position} de son chargement.
-
-L'utilisateur est libre de charger ses autres {packages} utiles et habituels, ainsi que ses \textsf{polices} et \textsf{encodages} habituels !
-\end{noteblock}
-
-\begin{cautionblock}
-\cmaj{2.7.2} Pour des soucis de compatibilités, \ctex{xcolor} n'est plus chargé, par défaut, avec les options \textsf{[table,svgnames]}, les couleurs de base de \ctex{xcolor} sont toutefois accessibles (une seule couleur, \textsf{CouleurVertForet} a été définie) !
-
-Il est cependant possible, grâce à l'option \Cle{[xcolor]} à passer au chargement du package, de charger \ctex{xcolor} avec l' option \textsf{[table,svgnames]}.
-\end{cautionblock}
-
-\begin{importantblock}
-Le {package} \ctex{ProfLycee} charge et utilise les {packages} :
-
-\begin{itemize}
- \item \ctex{mathtools}, \ctex{amssymb}, \ctex{xspace}, \ctex{esvect}, \ctex{interval} ;
-% \item \ctex{xcolor} avec l' option \textsf{[table,svgnames]} ;
- \item \ctex{tikz}, \ctex{pgf}, \ctex{pgffor}, \ctex{nicefrac}, \ctex{nicematrix} ;
- \item \ctex{tcolorbox} avec les librairies \ctex{breakable,fitting,skins,listings,listingsutf8,hooks} ;
- \item \ctex{xparse}, \ctex{xstring}, \ctex{simplekv}, \ctex{xinttools} ;
- \item \ctex{listofitems}, \ctex{xintexpr} , \ctex{xintbinhex}, \ctex{xintgcd} ;
- \item \ctex{tabularray}, \ctex{fontawesome5}, \ctex{randomlist}, \ctex{fancyvrb}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{importantblock}
-
-\begin{tipblock}
-J'ai utilisé les {packages} de C. Tellechea, je vous conseille d'aller jeter un œil sur ce qu'il est possible de faire en \LaTeX{} avec \ctex{listofitems}, \ctex{randomlist}, \ctex{simplekv} ou encore \ctex{xstring} !
-\end{tipblock}
-
-\subsection{Chargement du package}
-
-\begin{PresCodeTexPL}{listing only}
-%exemple de chargement pour une compilation en (pdf)latex
-\documentclass{article}
-\usepackage{ProfLycee} % ou \usepackage[xcolor]{ProfLycee}
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-...
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%exemple de chargement pour une compilation en (xe/lua)latex
-\documentclass{article}
-\usepackage{ProfLycee} % ou \usepackage[xcolor]{ProfLycee}
-\usepackage{fontspec}
-...
-\end{PresCodeTexPL}
-
-\pagebreak
-
-\subsection{Librairies}\label{librairies}
-
-\begin{warningblock}
-\cmaj{2.5.0} Le package fonctionne désormais avec un système de \clib{librairies}, qui utilisent et chargent des packages spécifiques, avec des compilations particulières, donc l'utilisateur utilisera un système de chargement similaire à celui de \textsf{tcolorbox} ou \textsf{tikz}, dans le préambule, et une fois le package appelé.
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\usepackage{ProfLycee}
-\useproflyclib{...,...}
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-Les librairies disponibles seront indiquées dans les sections spécifiques. Pour le moment, il existe :
-
-\begin{itemize}
- \item \clib{piton} (page \pageref{pythonpiton}) ;
- \item \clib{minted} (page \pageref{pytminted}) ;
- \item \clib{pythontex} (page \pageref{pythontex}) ;
- \item \clib{ecritures} (page \pageref{ecrituresmath}).
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{warningblock}
-\cmaj{2.5.8} Pour le package \ctex{piton}, la version minimale requise est la \ctex{1.5} pour bénéficier d'un rendu optimal (au niveau des marges) de la présentation du code \textsf{Python}.
-\end{warningblock}
-
-\begin{noteblock}
-En compilant (notamment avec les librairies \clib{minted} et \clib{pythontex}) on peut spécifier des répertoires particuliers pour les (ou des) fichiers auxiliaires.
-
-Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichiers temporaires de \clib{minted} et \clib{pythontex} dans un répertoire \menu{build} du répertoire courant.
-
-\smallskip
-
-Dans ce cas il faut créer au préalable le répertoire \menu{build} avant de compiler un fichier, pour éviter toute erreur !
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-...
-\usepackage[build]{ProfLycee}
-\useproflyclib{...}
-...
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-L'option \Cle{build} charge certains packages (librairies \clib{minted} et \clib{pythontex}) avec les options :
-
-\begin{itemize}
- \item \ctex{\textbackslash setpythontexoutputdir\{./build/pythontex-files-\textbackslash jobname\}}
- \item \ctex{\textbackslash RequirePackage[outputdir=build]\{minted\}}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\subsection{Gestion des fontes}\label{amssymb}
-
-\begin{warningblock}
-\cmaj{2.6.5} Sous \hologo{XeLaTeX} \& \hologo{LuaLaTeX}, \ctex{ProfLycee} utilisant le package \ctex{mathtools}, il est nécessaire de placer l'appel à \ctex{ProfLycee} {\em avant} l'appel des fontes.
-
-\smallskip
-
-Sous \hologo{XeLaTeX} \& \hologo{LuaLaTeX}, certaines fontes (par exemple \textsf{fourier-otf}) redéfinissent les fontes générées par le package \ctex{amssymb} et peuvent provoquer un \og warning \fg{} au mieux, une erreur de compilation au pire.
-
-\smallskip
-
-Pour cela, on pourra appeler \ctex{ProfLycee} avec l'option \Cle{nonamssymb} (idée reprise de \ctex{ProfCollege}).
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\documentclass{article}
-\usepackage[nonamssymb]{ProfLycee}
-\usepackage{fourier-otf}
-\end{PresCodeTexPL}
-
-\pagebreak
-
-\section{Compléments}
-
-\subsection{Le système de \og clés/options \fg}
-
-\begin{tipblock}
-L'idée est de conserver -- autant que faire se peut -- l'idée de \Cle{Clés} qui sont :
-%
-\begin{itemize}
- \item modifiables ;
- \item définies (en majorité) par défaut pour chaque commande.
-\end{itemize}
-
-Pour certaines commandes, le système de \Cle{Clés} pose quelques soucis, de ce fait le fonctionnement est plus \textit{basique} avec un système d'\textsf{arguments} \textit{optionnels} (souvent entre \textsf{[\ldots]}) ou \textit{obligatoires} (souvent entre \textsf{\{\ldots\}}).
-
-\smallskip
-
-À noter que les :
-%
-\begin{itemize}
- \item les \Cle{Clés} peuvent être mises dans n'importe quel ordre, elles peuvent être omises lorsque la valeur par défaut est conservée ;
- \item les \textsf{arguments} doivent, eux, être positionnés dans le \textit{bon ordre}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{noteblock}
-Les \textsf{commandes} et \textsf{environnements} présentés seront explicités via leur \textsf{syntaxe} avec les \textsf{options/clés} ou \textsf{arguments}.
-
-Autant que faire se peut, des exemples/illustrations/remarques seront proposés à chaque fois.
-\end{noteblock}
-
-\begin{noteblock}
-À noter que certaines commandes disponibles sont liées à un environnement \ctex{tikzpicture}, elles peuvent ne pas être autonomes mais permettent de conserver -- en parallèle -- toute commande liée à \TikZ{} !
-\end{noteblock}
-
-\subsection{Compilateur(s)}
-
-\begin{noteblock}
-Le package \ctex{ProfLycee} est compatible avec les compilateurs classiques : \textsf{latex}, \textsf{pdflatex} ou encore \textsf{lualatex}.
-
-\smallskip
-
-En ce qui concerne les codes \textsf{librairies}, il faudra :
-
-\begin{itemize}
- \item \clib{pythontex} : compiler en chaîne \textsf{(xxx)latex + pythontex + (xxx)latex} ;
- \item \clib{minted} : compiler avec \textsf{shell-escape} (ou \textsf{write18}) ;
- \item \clib{piton} : compiler en \hologo{LuaLaTeX} et \textsf{shell-escape} (ou \textsf{write18}).
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\subsection{Problèmes éventuels\ldots}
-
-\begin{noteblock}
-Certaines \textsf{commandes} sont à intégrer dans un environnement \TikZ, afin de pouvoir rajouter des éléments, elles ont été testés dans des environnement \ctex{tikzpicture}, à vérifier que la gestion des axes par l'environnement \ctex{axis} est compatible\ldots
-
-%\smallskip
-%
-%Certains packages ont une fâcheuse tendance à être tatillons sur leurs options (les \textit{fameux} \textsf{option clash for} \ldots) ou leur \textit{position} dans le chargement, donc attention notamment au chargement de \ctex{xcolor} et de \ctex{amssymb} !
-
-\smallskip
-
-En dehors de cela, ce sont des tests multiples et variés qui permettront de détecter d'éventuels bugs !
-\end{noteblock}
-
-\pagebreak
-
-~
-
-\vfill
-
-\hfill\tikz \draw (0,0) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate=25,scale=4] {$\leftrightsquigarrow$ Bonne(s) découverte(s) $\leftrightsquigarrow$} ;\hfill~
-
-\vfill
-
-~
+\input{ProfLycee-doc-introduction.tex}
\newpage
@@ -646,270 +343,7 @@ En dehors de cela, ce sont des tests multiples et variés qui permettront de dé
\newpage
-\part{Liste des commandes, par thème}
-
-\begin{noteblock}
-\cmaj{2.0.0} Cette section contient un \textit{résumé} des différentes commandes et environnements disponibles dans \ctex{ProfLycee}.
-
-Elles sont présentées de manière \textit{succincte}, mais elles sont présentées de manière \textit{détaillée} dans la suite de la documentation.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Résolution approchée d'une équation f(x)=k
-\ResolutionApprochee[clés]{équation}[macro]
-
-%Présentation d'une solution par balayage (TVI)
-\SolutionTVI[options]{fonction}{valeur}
-
-%Calculer le terme d'une suite récurrente simple, toile pour une suite récurrente simple
-\CalculTermeRecurrence[options]{fonction associée}
-\ToileRecurrence[clés][options du tracé][option supplémentaire des termes]
-
-%Mise en forme de la conclusion d'un seuil
-\SolutionSeuil[options]{fonction associée}{seuil}
-
-%Valeur approchée d'une intégrale
-\IntegraleApprochee[clés]{fonction}{a}{b}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%fenêtre de repérage en tikz et courbe
-\GrilleTikz[options][options grille ppale][options grille second.]
-\AxesTikz[options] \AxexTikz[options]{valeurs} \AxeyTikz[options]{valeurs}
-\FenetreSimpleTikz[options](opt axes)<opt axe Ox>{liste valx}<opt axe Oy>{liste valy}
-\DeclareFonctionTikz[nom]{expr}
-\CourbeTikz[options]{fonction}{valxmin:valxmax}
-
-%courbe d'interpolation, tangente, dans un environnement tikz
-\SplineTikz[options]{liste}
-\TangenteTikz[options]{liste}
-\PtsDiscontinuite[options]{liste}
-
-%schémas pour le signe affine/trinôme, dans un environnement tikz
-\MiniSchemaSignes(*)[clés]<options tikz>
-\MiniSchemaSignesTkzTab[options]{numligne}[échelle][décalage horizontal]
-
-%intégrales et méthodes graphiques
-\IntegraleApprocheeTikz[clés]{nom_fonction}{a}{b}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%présentation de code Python
-\begin{CodePythonLst}(*)[clés]{commandes tcbox}...\end{CodePythonLst}
-\begin{CodePythonLstAlt}(*)[clés]{commandes tcbox}...\end{CodePythonLstAlt}
-%:=librairie piton
-\begin{CodePiton}[options piton]{commandes tcbox}<1ère ligne>...\end{CodePiton}
-\begin{PitonConsole}<clés>{commandes tcbox}...\end{PitonConsole}
-%:=librairie pythontex
-\begin{CodePythontex}[clés]{commandes tcbox}...\end{CodePythontex}
-\begin{CodePythontexAlt}[clés]{commandes tcbox}...\end{CodePythontexAlt}
-\begin{ConsolePythontex}[options]{}...\end{ConsolePythontex}
-%:=librairie minted
-\begin{CodePythonMinted}(*)[clés]{commandes tcbox}...\end{CodePythonMinted}
-\begin{CodePythonMintedAlt}(*)[largeur][clés]{commandes tcbox}...\end{CodePythonMintedAlt}
-
-%présentation de pseudocode
-\begin{PseudoCode}(*)[clés]{commandes tcbox}...\end{PseudoCode}
-\begin{PseudoCodeAlt}(*)[largeur][clés]{commandes tcbox}...\end{PseudoCodeAlt}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%terminal OS
-\begin{TerminalWin}[largeur]{clés}[options]...\end{TerminalWin}
-\begin{TerminalUnix}[largeur]{clés}[options]...\end{TerminalUnix}
-\begin{TerminalOSX}[largeur]{clés}[options]...\end{TerminalOSX}
-
-%code Capytale
-\CartoucheCapytale(*)[options]{code capytale}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%pavé et tétraèdre, dans un environnement tikz
-\PaveTikz[options]
-\TetraedreTikz[options]
-
-%cercle trigo, dans un environnement tikz
-\CercleTrigo[clés]
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%Affichage des coordonnées d'un point (2 ou 3 coordonnées)
-\AffPoint[options de formatage](liste des coordonnées)
-%Affichage des coordonnées d'un vecteur (2 ou 3 coordonnées)
-\AffVecteur[options de formatage]<options nicematrix>(liste des coordonnées)
-
-%Avec un vecteur normal et un point
-\TrouveEqCartPlan[clés](vecteur normal)(point)
-%Avec deux vecteurs directeurs et un point
-\TrouveEqCartPlan[clés](vecteur dir1)(vecteur dir2)(point)
-%Avec trois points
-\TrouveEqCartPlan[clés](point1)(point2)(point3)
-
-%Avec un vecteur directeur et un point
-\TrouveEqParamDroite[clés](vecteur directeur)(point)
-%Avec deux points
-\TrouveEqParamDroite[clés](point1)(point2)
-
-%Avec un vecteur normal (choix par défaut) et un point
-\TrouveEqCartDroite[clés](vecteur normal)(point)
-%Avec un vecteur directeur et un point
-\TrouveEqCartDroite[clés,VectDirecteur](vecteur directeur)(point1)
-%Avec deux points
-\TrouveEqCartDroite[clés](point1)(point2)
-
-%Avec le point et le plan via vect normal + point
-\TrouveDistancePtPlan(point)(vec normal du plan)(point du plan)
-%Avec le point et le plan via vect normal + point
-\TrouveDistancePtPlan(point)(équation cartésienne)
-
-%Avec le vecteur
-\TrouveNorme(vecteur)
-%Avec deux points
-\TrouveNorme(point 1)(point 2)
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%Équation réduite d'une droite
-\EquationReduite[option]{A/xa/ya,B/xb/yb}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%paramètres d'une régression linéaire, nuage de points
-\CalculsRegLin[clés]{listeX}{listeY}
-\PointsRegLin[clés]{listeX}{listeY}
-
-%stats à 2 variables, dans un environnement tikz
-\GrilleTikz[options][options grille ppale][options grille second.]
-\AxesTikz[options]
-\AxexTikz[options]{valeurs} \AxeyTikz[options]{valeurs}
-\FenetreTikz \OrigineTikz
-\FenetreSimpleTikz[options](opt axes)<opt axe Ox>{liste valx}<opt axe Oy>{liste valy}
-\NuagePointsTikz[options]{listeX}{listeY}
-\PointMoyenTikz[options]
-\CourbeTikz[options]{formule}{domaine}
-
-%boîte à moustaches, dans un environnement tikz
-\BoiteMoustaches[options]
-\BoiteMoustachesAxe[options]
-
-%histogrammes
-\Histogramme(*)[options]{données}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%loi binomiale B(n,p)
-\CalcBinomP{n}{p}{k}
-\CalcBinomC{n}{p}{a}{b}
-\BinomP(*)[prec]{n}{p}{k}
-\BinomC(*)[prec]{n}{p}{a}{b}
-
-%loi de Poisson P(l)
-\CalcPoissP{l}{k}
-\CalcPoissC{l}{a}{b}
-\PoissonP(*)[prec]{l}{k}
-\PoissonC(*)[prec]{l}{a}{b}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%loi géométrique G(p)
-\CalcGeomP{p}{k}
-\CalcGeomC{l}{a}{b}
-\GeomP{p}{k}
-\GeomC{l}{a}{b}
-
-%loi hypergéométrique H(N,n,m)
-\CalcHypergeomP{N}{n}{m}{k}
-\CalcHypergeomP{N}{n}{m}{a}{b}
-\HypergeomP{N}{n}{m}{k}
-\HypergeomC{N}{n}{m}{a}{b}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%loi normale N(m,s)
-\CalcNormC{m}{s}{a}{b}
-\NormaleC(*)[prec]{m}{s}{a}{b}
-
-%loi exponentielle E(l)
-\CalcExpoC{l}{a}{b}
-\ExpoC(*)[prec]{l}{a}{b}
-
-%arbres de probas
-\ArbreProbasTikz[options]{donnees}
-\begin{EnvArbreProbasTikz}[options]{donnees}...\end{EnvArbreProbasTikz}
-
-%schémas lois continues
-\LoiNormaleGraphe[options]<options tikz>{m}{s}{a}{b}
-\LoiExpoGraphe[options]<options tikz>{l}{a}{b}
-
-%fonction de répartition discrète, dans une environnement tikz
-\FonctionRepartTikz[clés]{probas,borneinf,bornesup / probas,borneinf,bornesup / ...}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%entier aléatoire entre a et b
-\NbAlea{a}{b}{macro}
-%nombre décimal (n chiffres après la virgule) aléatoire entre a et b+1 (exclus)
-\NbAlea[n]{a}{b}{macro}
-%création d'un nombre aléatoire sous forme d'une macro
-\VarNbAlea{macro}{calcul}
-%liste d'entiers aléatoires
-\TirageAleatoireEntiers[options]{macro}
-%liste des diviseurs
-\ListeDiviseurs(*)[option]{nombre}
-%arbre des diviseurs
-\ArbreDiviseurs[options]{nombre}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%arrangement Anp
-\Arrangement(*)[option]{p}{n}
-
-%arrangement Cnp (p parmi n)
-\Combinaison(*)[option]{p}{n}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%conversions
-\ConversionDecBin(*)[clés]{nombre}
-\ConversionBinHex[clés]{nombre}
-\ConversionHexBin[clés]{nombre}
-\ConversionVersDec[clés]{nombre}
-\ConversionBaseDix[clés]{nombre}{base de départ}
-\ConversionDepuisBaseDix[options]{nombre en base 10}{base d'arrivée}
-
-%PGCD présenté
-\PresentationPGCD[options]{a}{b}
-
-%Équation diophantienne
-\EquationDiophantienne[clés]{equation}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%conversion en fraction, simplification de racine
-\ConversionFraction(*)[option]{argument}
-\SimplificationRacine{expression}
-
-%ensemble d'éléments
-\EcritureEnsemble[clés]{liste}
-
-%trinôme, trinôme aléatoire
-\EcritureTrinome[options]{a}{b}{c}
-
-%mesure principale, lignes trigo
-\MesurePrincipale[options]{angle}
-\LigneTrigo(*)[booléens]{cos/sin/tan}(angle)
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%sudomaths
-\SudoMaths[options]{liste}
-\begin{EnvSudoMaths}[options]{grille}...\end{EnvSudoMaths}
-
-%fractales
-\FractaleTikz(*)[clés]<options tikz>
-\EtapesFloconKoch[clés]{étapes}
-\EtapesTapisSierpinski[clés]{étapes}
-\end{PresCodeTexPL}
+\input{ProfLycee-doc-listecommandes.tex}
\newpage
@@ -923,281 +357,7 @@ Elles sont présentées de manière \textit{succincte}, mais elles sont présent
\newpage
-\part{Écritures d'objets mathématiques}\label{ecrituresmath}
-
-\section{Introduction}
-
-\begin{tipblock}
-Les commandes de cette section sont disponibles en chargeant la librairie \clib{ecritures}, car elles peuvent redéfinir des commandes personnelles déjà existantes !
-\end{tipblock}
-
-\section{Commandes}
-
-\subsection{Arrondi}
-
-\begin{tipblock}
-Il est possible de calculer/arrondir/formater un calcul mathématique, grâce aux package \ctex{siunitx} et \ctex{xinteval}.
-
-\begin{itemize}
- \item la version étoilée force l'affichage du \og + \fg{} pour les nombres positifs ;
- \item l'argument optionnel est la précision demandée (3 par défaut)
- \item l'argument obligatoire est le calcul, au langage \ctex{xinteval}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{}
-$1+\dfrac{7}{11} \approx \Arrondi{1+7/11} \approx \Arrondi[5]{1+7/11} \approx \Arrondi*[2]{1+7/11}$
-
-$\ln\big(1+\e^{4}\big) \approx \Arrondi[6]{log(1+exp(4))}$
-\end{PresCodeTexPL}
-
-\subsection{Ensembles et intervalles}
-
-\begin{tipblock}
-Les commandes suivantes permettent de composer les ensembles traditionnels, en mode \textit{tableau noir}.
-
-Elles sont dans un bloc \textsf{ensuremath}, donc les \textsf{\$...\$} ne sont pas nécessaires.
-
-\smallskip
-
-À noter la macro particulière pour l'ensemble des quaternions, pour éviter des erreurs éventuelles de \textit{re}définition.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{}
-\N, \Z, \D, \Q, \R, \C, \ensH, \N*, \Z*, \D*, \Q*, \R*, \C*, \ensH*
-\end{PresCodeTexPL}
-
-\begin{tipblock}
-Des intervalles peuvent être composés, grâce à la commande \ctex{\textbackslash IntervalleXX}, dont la base est le package \ctex{interval} :
-
-\begin{itemize}
- \item la commande est insérée dans un bloc \textsf{ensuremath} ;
- \item le séparateur est le point-virgule ;
- \item l'espacement autour du point-virgule est laissé aux réglages du document (\ctex{babel}, \ctex{frenchmath}, etc).
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{}
-\IntervalleFO{0}{+\infty} ou \IntervalleOO{0}{+\infty} ou \IntervalleOO{-\infty}{0} ou \IntervalleOF{-\infty}{0}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-\IntervalleFF{\frac12}{\sqrt{26}} ou \IntervalleOO{\frac12}{\sqrt{26}} ou
-\IntervalleFO{\dfrac12}{\sqrt{26}} ou \IntervalleFO{\dfrac12}{\sqrt{26}}
-\end{PresCodeTexPL}
-
-\subsection{Repères et coordonnées}
-
-\begin{tipblock}
-Des vecteurs/repères/coordonnées peuvent être composées :
-
-\begin{itemize}
- \item les vecteurs sont mis en forme par le package \ctex{esvect} (y compris en version étoilée pour les indices) ;
- \item des coordonnées de point/vecteur dans le plan ou l'espace ;
- \item des repères génériques, avec choix du séparateur entre le point et les vecteurs ;
- \item les versions étoilées des repères n'alignent pas les flèches.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{}
-%vecteurs
-\Vecteur{\imath} et \Vecteur{u} et \Vecteur{AB}
-
-$\Vecteur{AB}+\Vecteur{BC} = \Vecteur{AC}$
-
-$\Vecteur*{u}[1]+\Vecteur*{v}[2] = \Vecteur*{w}[3]$
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%coordonnées points
-\CoordPtPl{4}{-2} ou \CoordPtPl{\frac12}{\frac47}
-
-\CoordPtEsp{4}{-2}{7} ou \CoordPtEsp{-2}{\frac12}{\frac47}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%coordonnées vecteurs
-\CoordVecPl{4}{-2} ou \CoordVecPl{\frac12}{\frac47}
-
-\CoordVecEsp{4}{-2}{7} ou \CoordVecEsp{-2}{\frac12}{\frac47}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%matrices 2x2
-\MatDeux{4}{-2}{1}{-5}
-
-\MatDeux{\frac47}{-1}{0}{-\frac17}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%repères classiques
-\RepereOij ou \RepereOij* ou \RepereOij[Sep={,}] ou \RepereOij*[Sep={,}]
-
-\RepereOijk ou \RepereOijk* ou \RepereOijk[Sep={,}] ou \RepereOijk*[Sep={,}]
-
-\RepereOuv ou \RepereOuv* ou \RepereOuv[Sep={,}] ou \RepereOuv*[Sep={,}]
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%repères personnalisés
-\ReperePlan{A}{AB}{AC} ou \ReperePlan*{A}{AB}{AC} ou \ReperePlan*{O}{OI}{OJ} ou \ReperePlan[Sep={,}]{O}{OI}{OK}
-
-\RepereEspace{A}{AB}{AC}{AD} ou \RepereEspace*{A}{AB}{AC}{k} ou \RepereEspace{D}{i}{j}{k}
-\end{PresCodeTexPL}
-
-\subsection{Divers}
-
-\begin{tipblock}
-La librairie \clib{ecritures} permet également de définir des commandes pour :
-
-\begin{itemize}
- \item composer le nom d'une courbe ;
- \item composer le \og i \fg{} et le \og e \fg{} en romain ;
- \item composer le complexe $\j$ en mode algébrique ou exponentielle ;
- \item composer un modulo avec choix de la congruence ;
- \item composer une suite numérique ;
- \item composer une intégrale (mode \textsf{displaystyle}).
-\end{itemize}
-
-À noter que les commandes sont dans un bloc \textsf{ensuremath}.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{}
-%version normale := mathcal
-%version étoilée := mathscr (si chargé)
-
-\Courbe et \Courbe[f] et \Courbe[g^{-1}]
-
-\Courbe* et \Courbe*[f] et \Courbe*[g^{-1}]
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-$\e^{\i \pi} = -1$
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-On a $\j = \jfalg = \jfexp$
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%La version étoilée augmente l'espacement, l'argument optionnel change la présentation
-$21 \equiv 1 \Modulo{5} \equiv 1 \Modulo[Par]{5} \equiv 1 \Modulo[Txt]{5}$
-
-$21 \equiv 1 \Modulo*{5} \equiv 1 \Modulo*[Par]{5} \equiv 1 \Modulo*[Txt]{5}$
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-Soient les suites \Suite{u} et \Suite[p]{v} et \Suite[q]{\Omega}.
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-$I = \Integrale f(x) \dx = \Integrale f(t) \dx[t]$
-\end{PresCodeTexPL}
-
-\subsection{Probabilités}
-
-\begin{tipblock}
-La librairie \clib{ecritures} permet également de définir des commandes pour :
-
-\begin{itemize}
- \item composer une loi classique (binomiale, exponentielle, etc) avec \textsf{mathcal} ou \textsf{mathscr} ;
- \item composer espérance, variance et écart-type.
-\end{itemize}
-
-À noter que les commandes sont dans un bloc \textsf{ensuremath}.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{}
-%version normale := mathcal
-%version étoilée := mathscr (si chargé)
-
-\LoiNormale{150}{25} ou \LoiNormale*{150}{25}
-
-\LoiBinomiale{150}{\num{0.45}} ou \LoiBinomiale*{150}{\num{0.45}}
-
-\LoiPoisson{5} ou \LoiPoisson*{5}
-
-\LoiExpo{\num{0.001}} ou \LoiExpo*{\num{0.001}}
-
-\LoiUnif{\IntervalleFF{5}{60}} ou \LoiUnif*{\IntervalleFF{5}{60}}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%par défaut E et V en \mathbb
-\Esper{X} ou \Esper[E]{X} \\
-\Varianc{X^2} ou \Varianc[V]{X^2} \\
-\EcType{X^2}
-\end{PresCodeTexPL}
-
-\pagebreak
-
-\section{Collection d'objets}\label{ensembles}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est d'obtenir une commande pour simplifier l'écriture d'un ensemble d'éléments, en laissant gérer les espaces.
-
-Les délimiteurs de l'ensemble créé sont toujours \textsf{\{~~\}}.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\EcritureEnsemble[clés]{liste}
-\end{PresCodeTexPL}
-
-\subsection{Commande et options}
-
-\begin{cautionblock}
-Peu d'options pour ces commandes :
-
-\begin{itemize}
- \item le premier argument, \textit{optionnel}, permet de spécifier les \Cle{Clés} :
- \begin{itemize}
- \item clé \Cle{Sep} qui correspond au délimiteur des éléments de l'ensemble ; \hfill{}défaut \Cle{;}
- \item clé \Cle{Option} qui est un code (par exemple \textsf{strut}\dots) inséré avant les éléments ;\hfill{}défaut \Cle{vide}
- \item un booléen \Cle{Mathpunct} qui permet de préciser si on utilise l'espacement mathématique \textsf{mathpunct}.
-
- \hfill{}défaut \Cle{true}
- \end{itemize}
- \item le second, \textit{obligatoire}, est la \textsf{liste} des éléments, séparés par \textsf{/}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-$\EcritureEnsemble{a/b/c/d/e}$
-$\EcritureEnsemble[Mathpunct=false]{a/b/c/d/e}$
-$\EcritureEnsemble[Sep={,}]{a/b/c/d/e}$
-$\EcritureEnsemble[Option={\strut}]{a/b/c/d/e}$ % \strut pour "augmenter" un peu la hauteur des {}
-$\EcritureEnsemble{ \frac{1}{1+\frac{1}{3}} / b / c / d / \frac{1}{2} }$
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\EcritureEnsemble{a/b/c/d/e}$
-
-\smallskip
-
-$\EcritureEnsemble[Mathpunct=false]{a/b/c/d/e}$
-
-\smallskip
-
-$\EcritureEnsemble[Sep={,}]{a/b/c/d/e}$
-
-\smallskip
-
-$\EcritureEnsemble[Option={\strut}]{a/b/c/d/e}$
-
-\smallskip
-
-$\EcritureEnsemble{ \displaystyle\frac{1}{1+\frac{1}{3}} / b / c / d / \displaystyle\frac{1}{2} }$
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-Attention cependant au comportement de la commande avec des éléments en mode \textsf{mathématique}, ceux-ci peuvent générer une erreur si \textsf{displaystyle} n'est pas utilisé\ldots
-\end{noteblock}
+\input{ProfLycee-doc-ecritures.tex}
\newpage
@@ -1211,391 +371,7 @@ Attention cependant au comportement de la commande avec des éléments en mode \
\newpage
-\part{Outils pour l'analyse}
-
-\section{Résolution approchée d'une équation}\label{resolapprox}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.1.4} L'idée est de proposer une commande pour résoudre, de manière approchée, une équation du type $f(x)=k$ sur un intervalle (fermé) donné.
-
-\smallskip
-
-La méthode utilisée est la \textbf{dichotomie}, pour plus de rapidité que la méthode \textit{simple} par balayage.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ResolutionApprochee[clés]{équation}[macro]
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-\ResolutionApprochee[Intervalle=0:10]{x**3-2*x**2-x-1=2}%
-$x_0 \approx \num[minimum-decimal-digits=2]{\masolutiond}$ par défaut ;\\
-$x_0 \approx \num[minimum-decimal-digits=2]{\masolutione}$ par excès ;\\
-$x_0 \approx \num[minimum-decimal-digits=2]{\masolutiona}$ arrondi à $10^{-2}$.\\
-
-\hfill\includegraphics[scale=0.45]{./graphics/pl-solve_a}\hfill~
-\end{PresCodePL}
-
-\subsection{Clés et options}
-
-\begin{cautionblock}
-Quelques explications sur les \Cle{clés} et sur les arguments :
-
-\begin{itemize}
- \item la clé \Cle{Precision} pour le nombre de chiffres après la virgule de la solution ; \hfill{}défaut \Cle{2}
- \item la clé (obligatoire !) \Cle{Intervalle} qui permet de préciser l'intervalle initial de recherche ;
- \item la clé \Cle{Variable} qui permet de spécifier la variable de l'équation ;\hfill{}défaut \Cle{x}
- \item l'argument \textit{obligatoire} est l'équation, sous la forme $f(\ldots)=k$ (ou $f(\ldots)$ pour $f(\ldots)=0$) ;
- \item l'argument \textit{optionnel} est la base de la \textit{<macro>} qui sert à stocker les valeurs :
-
- \hfill{}défaut \Cle{masolution}
- \begin{itemize}
- \item \ctex{\textbackslash<macro>d} pour la valeur approchée par défaut ;
- \item \ctex{\textbackslash<macro>e} pour la valeur approchée par excès ;
- \item \ctex{\textbackslash<macro>a} pour la valeur approchée.
- \end{itemize}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-\ResolutionApprochee[Precision=4,Intervalle=0:2]{exp(0.5*x)+x**2-4=0}%
-Une valeur approchée, à $10^{-4}$ près, d'une solution de $\text{e}^{0,5x}+x^2-4=0$ sur $\left[0;2\right]$ est $\beta$ avec :
-\begin{itemize}
- \item $\beta \approx \num[minimum-decimal-digits=4]{\masolutiond}$ par défaut ;
- \item $\beta \approx \num[minimum-decimal-digits=4]{\masolutione}$ par excès ;
- \item $\beta \approx \num[minimum-decimal-digits=4]{\masolutiona}$.
-\end{itemize}
-\ResolutionApprochee[Variable=t,Intervalle=-1:2]{3*t*exp(-0.5*t+1)=4}[SolA]%
-Une valeur approchée, à $10^{-2}$ près d'une solution de $3t\,\rm{e}^{-0,5t+1}=4$ est $t_1$ avec :
-\begin{itemize}
- \item $t_1 \approx \num[minimum-decimal-digits=2]{\SolAd}$ par défaut ;
- \item $t_1 \approx \num[minimum-decimal-digits=2]{\SolAe}$ par excès ;
- \item $t_1 \approx \num[minimum-decimal-digits=2]{\SolAa}$.
-\end{itemize}
-\ResolutionApprochee[Precision=3,Variable=t,Intervalle=2:10]{3*t*exp(-0.5*t+1)=4}[SolB]
-Une valeur approchée, à $10^{-2}$ près d'une solution de $3t\,\text{e}^{-0,5t+1}=4$ est $t_2$ avec :
-\begin{itemize}
- \item $t_2 \approx \num[minimum-decimal-digits=2]{\SolBd}$ par défaut ;
- \item $t_2 \approx \num[minimum-decimal-digits=2]{\SolBe}$ par excès ;
- \item $t_2 \approx \num[minimum-decimal-digits=2]{\SolBa}$.
-\end{itemize}
-
-\medskip
-
-\hfill\includegraphics[scale=0.45]{./graphics/pl-solve_b}~~
-\includegraphics[scale=0.45]{./graphics/pl-solve_c}~~
-\includegraphics[scale=0.45]{./graphics/pl-solve_d}\hfill~
-\end{PresCodePL}
-
-\newpage
-
-\section{Présentation d'une solution d'équation par balayage}\label{solutiontvi}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.0.4} L'idée est de présenter l'obtention d'une solution approchée d'équation par balayage, dans le cadre du TVI par exemple. Les calculs et tests sont effectués grâce au package \ctex{xinttools}, et le formatage par \ctex{tabularray} et \ctex{sinuitx}.
-\end{tipblock}
-
-\begin{warningblock}
-Le code ne trouve pas la solution, il met \textit{juste} en forme mais effectue quand même les calculs d'images et les tests.
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\SolutionTVI[options]{fonction}{valeur}
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Plusieurs \Cle{Clés} sont disponibles pour cette commande, relative à une équation du type $f(x)=k$ :
-
-\begin{itemize}
- \item la clé \Cle{NomFct} qui permet de spécifier le nom de la fonction ;\hfill{}défaut \Cle{f}
- \item la clé \Cle{NomSol} qui permet de spécifier le nom de la fonction ;\hfill{}défaut \Cle{\textbackslash{}alpha}
- \item les clés \Cle{va} et \Cle{vb} qui sont les bornes inférieure et supérieure de l'encadrement ;
- \item la clé \Cle{Precision} qui est la précision des calculs pour les images ;\hfill{}défaut \Cle{2}
- \item la clé \Cle{Stretch} qui permet d'espacer les lignes ;\hfill{}défaut \Cle{1.15}
- \item les booléens \Cle{Balayage} ou \Cle{Calculatrice} pour afficher un texte en amont ;\hfill{}défaut \Cle{false}
- %\item le booléen \Cle{Simple} pour une présentation plus \textit{neutre} ;\hfill{}défaut \Cle{false}
- \item le booléen \Cle{Majuscule} qui affiche le texte avant, avec une majuscule au début.\hfill{}défaut \Cle{true}
-\end{itemize}
-
-\smallskip
-
-Le premier argument \textit{obligatoire} est la fonction, en syntaxe \ctex{xint} et avec comme variable $x$, et le second la valeur de $k$.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-Pour $f(x)=0$ avec $f(x)=x^2-2$. On obtient \SolutionTVI[va=1.414,vb=1.415,Precision=3]{x**2-2}{0}.
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Avec $\varphi(t)=3t\,\rm{e}^{-0,5t+1}=5$,
-\SolutionTVI[Majuscule=false,Calculatrice,va=1.02,vb=1.03,NomFct=\varphi]
- {3*x*exp(-0.5*x+1)}{5}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-On s'intéresse à $g(x)=\num{1,5}$ avec $g(x)=\ln(x)$.\\
-\SolutionTVI%
- [Balayage,Stretch=1.5,va=4.48,vb=4.49,NomFct=g,Precision=4,NomSol={x_0}]{log(x)}{1.5}.
-\end{PresCodePL}
-
-\subsection{Interaction avec la commande de résolution approchée}
-
-\begin{tipblock}
-\cmaj{2.1.4} L'idée est de récupérer les valeurs par défaut et par excès pour le TVI grâce à la commande \ctex{\textbackslash ResolutionApprochee}.
-\end{tipblock}
-
-\begin{PresCodePL}{}
-On s'intéresse à $g(x)=\num{1,5}$ avec $g(x)=\ln(x)$ sur l'intervalle $\left[3;5\right]$.
-
-\ResolutionApprochee[Intervalle=3:5]{log(x)=1.5}[SolLn]
-\SolutionTVI%
- [Balayage,Stretch=1.5,va={\SolLnd},vb={\SolLne},
- NomFct=g,Precision=4,NomSol={x_0}]{log(x)}{1.5}.
-\end{PresCodePL}
-
-\begin{noteblock}
-À terme, peut-être que la commande \ctex{\textbackslash ResolutionApprochee} sera intégrée dans la commande \ctex{\textbackslash SolutionTVI} afin d'automatiser encore plus le procédé.
-\end{noteblock}
-
-\newpage
-
-\section{Suites récurrentes simples}\label{calcrecurr}
-
-\subsection{Idées}
-
-\begin{tipblock}
-\cmaj{2.0.3} L'idée est de proposer des commandes pour effectuer des calculs avec des suites récurrentes du type $u_{n+1}=f\big(u_n\big)$ :
-
-\begin{itemize}
- \item calcul de termes avec possibilité d'arrondir ;
- \item présentation de la conclusion de la recherche d'un seuil du type $u_n > S$ ou $u_n < S$.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{warningblock}
-\cmaj{2.1.0} Le code pour le seuil \textbf{trouve} également le rang cherché, il met en forme et effectue les calculs d'images.
-
-\smallskip
-
-\cmaj{2.0.5} Le choix a été fait de faire les calculs en mode \ctex{float} pour éviter les dépassements de capacité de \ctex{xint} liés aux boucles\ldots
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-%commande pour calculer et formater
-\CalculTermeRecurrence[options]{fonction associée}
-
-%mise en forme de la conclusion d'un seuil
-\SolutionSeuil[options]{fonction associée}{seuil}
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Plusieurs \Cle{Clés} sont disponibles pour la commande du calcul d'un terme :
-
-\begin{itemize}
- \item la clé \Cle{No} qui est le rang initial de la suite ;
- \item la clé \Cle{UNo} qui est le terme initial de la suite ;
- \item la clé \Cle{Precision} qui précise l'arrondi éventuel ;\hfill{}défaut \Cle{3}
- \item la clé \Cle{N} qui est l'indice du terme à calculer.
-\end{itemize}
-
-\smallskip
-
-L'argument \textit{obligatoire} est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$.
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-Avec $\begin{dcases} u_0 = 50 \\ u_{n+1}=\dfrac{1}{u_n+2} \end{dcases}$.
-
-On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$.
-
-On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{1/(x+2)}$.
-
-On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$.
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-Avec $u_0 = 50$ et $u_{n+1}=\dfrac{1}{u_n+2}$.
-
-\smallskip
-
-On obtient $u_{10} \approx \CalculTermeRecurrence[No=0,UNo=50,N=10]{1/(x+2)}$ \hfill~sortie par défaut.
-
-\smallskip
-
-On obtient $u_{15} \approx \CalculTermeRecurrence[Precision=4,No=0,UNo=50,N=15]{1/(x+2)}$ \hfill~avec choix de la précision à $10^{-4}$.
-
-\smallskip
-
-On obtient $u_{20} \approx \CalculTermeRecurrence[Precision=6,No=0,UNo=50,N=20]{1/(x+2)}$ \hfill~avec choix de la précision à $10^{-6}$.
-\end{PresCodeSortiePL}
-
-\begin{cautionblock}
-Plusieurs \Cle{Clés} sont disponibles pour la commande du seuil :
-
-\begin{itemize}
- \item la clé \Cle{NomSuite} qui est le nom de la suite ;\hfill~défaut \Cle{u}
- \item la clé \Cle{No} qui est le rang initial de la suite ;
- \item la clé \Cle{UNo} qui est le terme initial de la suite ;
- %\item la clé \Cle{SolN} qui est la valeur de l'indice cherché ;
- \item la clé \Cle{Precision} qui précise l'arrondi éventuel ;\hfill{}défaut \Cle{2}
- \item la clé \Cle{Stretch} qui permet d'espacer les lignes ;\hfill{}défaut \Cle{1.15}
- \item les booléens \Cle{Balayage} ou \Cle{Calculatrice} pour afficher un texte en amont ;\hfill{}défaut \Cle{false}
- \item le booléen \Cle{Simple} pour une présentation plus \textit{neutre} ;\hfill{}défaut \Cle{false}
- \item le booléen \Cle{Majuscule} qui affiche le texte avant, avec une majuscule au début ;\hfill{}défaut \Cle{true}
- \item le booléen \Cle{Exact} qui affiche \ctex{=} au lieu de \ctex{\textbackslash approx} ;\hfill{}défaut \Cle{false}
- \item le booléen \Cle{Conclusion} pour afficher la conclusion ou non ;\hfill{}défaut \Cle{true}
- \item la clé \Cle{Sens} parmi \Cle{< / > / <= / >=} pour indiquer le type de seuil.\hfill{}défaut \Cle{>}
-\end{itemize}
-
-\smallskip
-
-Le premier argument \textit{obligatoire} est la fonction associée à la suite, en syntaxe \ctex{xint} et avec comme variable $x$, et le second est le seuil à dépasser.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
-on cherche $n$ tel que $u_n > 5$.\\
-\SolutionSeuil[Balayage,No=1,UNo=2]{1+(1+x**2)/(1+x)}{5}. \SolutionSeuil[Calculatrice,Precision=4,No=1,UNo=2,Conclusion=false]%
-{1+(1+x**2)/(1+x)}{5}.
-\end{PresCodePL}
-
-\subsection{Exemple d'utilisation}
-
-\begin{PresCodePL}{}
-Avec $\begin{dcases} u_1 = 2 \\ u_{n+1}=1+\dfrac{1+u_n^2}{1+u_n} \end{dcases}$,
-on obtient le tableau de valeurs suivant :
-\begin{tabular}{c|c}
- $n$ & $u_n$ \\ \hline
- 1 & 2 \\
- \xintFor* #1 in {\xintSeq{2}{7}} \do {#1 & \CalculTermeRecurrence[No=1,UNo=2,N=#1]{1+(1+x**2)/(1+x)} \\}
-\end{tabular}\\
-
-\SolutionSeuil[Precision=4,No=1,UNo=2,Simple]{1+(1+x**2)/(1+x)}{10} (Ainsi $u_n > 10$ à partir de $n=\the\CompteurSeuil$)
-\end{PresCodePL}
-
-\newpage
-
-\section{Valeur approchée d'une intégrale}\label{calcintegr}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.6.1} L'idée est de proposer plusieurs approximations pour le calcul d'une intégrale, en utilisant :
-\begin{itemize}
- \item une méthode des rectangles (Gauche, Droite ou Milieu) ;
- \item la méthode des trapèzes ;
- \item la méthode de Simpson.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{warningblock}
-Il s'agit de valeurs approchées, mais la méthode de Simpson donne des valeurs satisfaisantes !
-
-Les méthodes \textit{Rectangles} ou \textit{Trapèzes} seront plutôt utiles pour des résultats obtenus par algorithme par exemple.
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\IntegraleApprochee[clés]{fonction}{a}{b}
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Plusieurs \Cle{Clés} sont disponibles pour la commande de calcul :
-
-\begin{itemize}
- \item le booléen \Cle{ResultatBrut} qui donne le résultat obtenu grâce à \ctex{xint} ; \hfill~défaut : \Cle{false}
- \item la clé \Cle{Methode}, parmi \Cle{RectanglesGauche / RectanglesDroite / RectanglesMilieu / Trapezes / Simpson} pour spécifier la méthode utilisée ;
-
- \hfill~défaut : \Cle{Simpson}
- \item la clé \Cle{NbSubDiv} précise le nombre de subdivisions pour le calcul ; \hfill~défaut : \Cle{10}
- \item le booléen \Cle{AffFormule} qui affiche au préalable l'intégrale ;\hfill{}défaut \Cle{false}
- \item la clé \Cle{Expr} qui indique ce qui doit être affiché dans l'intégrale ; \hfill{}défaut \Cle{f(x)}
- \item la clé \Cle{Signe} qui indique le signe à afficher entre l'intégrale et le résultat ; \hfill{}défaut \Cle{\textbackslash approx}
- \item la clé \Cle{Variables} qui indique la variable à afficher dans le $\text{d}x$. \hfill{}défaut \Cle{x}
-\end{itemize}
-
-\smallskip
-
-Concernant les arguments obligatoires :
-
-\begin{itemize}
- \item le premier est la fonction à intégrer, en langage \ctex{xint}, avec comme variable $x$ ;
- \item les deux autres arguments sont les bornes de l'intégrale.
-\end{itemize}
-
-À noter que la commande, hormis dans sa version \Cle{ResultatBrut}, est à insérer de préférence dans un mode mathématique.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-On s'intéresse à $\displaystyle\int_4^{10} f(x) \,\text{d}x$ avec $f(x)=\sqrt{x}$ :\\
-\begin{itemize}[itemsep=6pt,leftmargin=4cm]
- \item[\texttt{sortie par défaut} :] \IntegraleApprochee{sqrt(x)}{4}{10}
- \item[\texttt{résultat brut} :] \IntegraleApprochee[ResultatBrut]{sqrt(x)}{4}{10}
- \item[\texttt{résultat formaté} :] $\displaystyle\IntegraleApprochee[NbSubDiv=100,AffFormule,Precision=5,Expr={\sqrt{x}}]%
- {sqrt(x)}{4}{10}$
-\end{itemize}
-\end{PresCodePL}
-
-\subsection{Exemples}
-
-\begin{PresCodeTexPL}{listing only}
-%tableau
-\IntegraleApprochee[NbSubDiv=10,ResultatBrut]{sqrt(x)}{4}{10}
-\IntegraleApprochee[NbSubDiv=10,Methode=RectanglesGauche,ResultatBrut]{sqrt(x)}{4}{10}
-\IntegraleApprochee[NbSubDiv=10,Methode=RectanglesDroite,ResultatBrut]{sqrt(x)}{4}{10}
-\IntegraleApprochee[NbSubDiv=10,Methode=RectanglesMilieu,ResultatBrut]{sqrt(x)}{4}{10}
-\IntegraleApprochee[NbSubDiv=10,Methode=Trapezes,ResultatBrut]{sqrt(x)}{4}{10}
-$\displaystyle\IntegraleApprochee[NbSubDiv=10,AffFormule,Expr={\sqrt{x}}]{sqrt(x)}{4}{10}$
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tblr}[B]{hlines,vlines,colspec={Q[5cm,m,l]Q[5cm,m,l]},row{1}={halign=c,font=\bfseries\sffamily,bg=lightgray}}
- Méthode utilisée & Valeur brute obtenue \\
- \SetCell[c=2]{c} $f(x)=\sqrt{x}$ et $n=10$ ; $\displaystyle\int_4^{10} f(x) \,\text{d}x$ & \\
- Simpson & $\IntegraleApprochee[NbSubDiv=10,Methode=Simpson,ResultatBrut]{sqrt(x)}{4}{10}$ \\
- rectangles Gauche & $\IntegraleApprochee[NbSubDiv=10,Methode=RectanglesGauche,ResultatBrut]{sqrt(x)}{4}{10}$ \\
- rectangles Droite & $\IntegraleApprochee[NbSubDiv=10,Methode=RectanglesDroite,ResultatBrut]{sqrt(x)}{4}{10}$ \\
- rectangles Milieu & $\IntegraleApprochee[NbSubDiv=10,Methode=RectanglesMilieu,ResultatBrut]{sqrt(x)}{4}{10}$ \\
- trapèzes & $\IntegraleApprochee[NbSubDiv=10,Methode=Trapezes,ResultatBrut]{sqrt(x)}{4}{10}$ \\
- \SetCell[c=2]{c} $\displaystyle\IntegraleApprochee[NbSubDiv=10,AffFormule,Expr={\sqrt{x}}]{sqrt(x)}{4}{10}$ & \\
-\end{tblr}~~\includegraphics[height=3cm]{integr_nwks_a}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-%tableau
-\IntegraleApprochee[NbSubDiv=100,Methode=Simpson,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}
-\IntegraleApprochee[NbSubDiv=100,Methode=RectanglesGauche,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}
-\IntegraleApprochee[NbSubDiv=100,Methode=RectanglesDroite,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}
-\IntegraleApprochee[NbSubDiv=100,Methode=RectanglesMilieu,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}
-\IntegraleApprochee[NbSubDiv=100,Methode=Trapezes,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}
-$\displaystyle\IntegraleApprochee[NbSubDiv=100,AffFormule,Expr={80x\,\text{e}^{-0,2x}}]%
- {80*x*exp(-0.2*x)}{1}{20}$
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tblr}[B]{hlines,vlines,colspec={Q[5cm,m,l]Q[5cm,m,l]},row{1}={halign=c,font=\bfseries\sffamily,bg=lightgray}}
- Méthode utilisée & Valeur brute obtenue \\
- \SetCell[c=2]{c} $f(x)=80x\,\text{e}^{-0,2x}$ et $n=100$ ; $\displaystyle\int_1^{20} f(x) \,\text{d}x$ & \\
- Simpson & $\IntegraleApprochee[NbSubDiv=100,Methode=Simpson,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}$ \\
- rectangles Gauche & $\IntegraleApprochee[NbSubDiv=100,Methode=RectanglesGauche,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}$ \\
- rectangles Droite & $\IntegraleApprochee[NbSubDiv=100,Methode=RectanglesDroite,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}$ \\
- rectangles Milieu & $\IntegraleApprochee[NbSubDiv=100,Methode=RectanglesMilieu,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}$ \\
- trapèzes & $\IntegraleApprochee[NbSubDiv=100,Methode=Trapezes,ResultatBrut]{80*x*exp(-0.2*x)}{1}{20}$ \\
- \SetCell[c=2]{c} $\displaystyle\IntegraleApprochee[NbSubDiv=100,AffFormule,Expr={80x\,\text{e}^{-0,2x}}]{80*x*exp(-0.2*x)}{1}{20}$ & \\
-\end{tblr}~~\includegraphics[height=3cm]{integr_nwks_b}
-\end{PresCodeSortiePL}
+\input{ProfLycee-doc-outilsanalyse.tex}
\newpage
@@ -1609,1249 +385,7 @@ $\displaystyle\IntegraleApprochee[NbSubDiv=100,AffFormule,Expr={80x\,\text{e}^{-
\newpage
-\part{Outils graphiques}
-
-\section{Repérage et tracé de courbes}\label{reperagetikz}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.1.1} L'idée est de proposer des commandes \textit{simplifiées} pour tracer un repère, en \TikZ, avec :
-
-\begin{itemize}
- \item axes et graduations, grille ;
- \item courbe.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{noteblock}
-Au niveau du code, il y aura donc plusieurs \textit{aspects} :
-
-\begin{itemize}
- \item le paramétrage de la fenêtre graphique directement dans la déclaration de l'environnement ;
- \item les commandes de tracés avec options et clés.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%version basique
-\begin{tikzpicture}[paramètres]
- %grille et axes
- \GrilleTikz[options][options grille ppale][options grille second.]
- \AxesTikz[options]
- \AxexTikz[options]{valeurs}
- \AxeyTikz[options]{valeurs}
- %courbe
- \CourbeTikz[options]{fonction}{valxmin:valxmax}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%version simplifiée
-\begin{tikzpicture}[<paramètres>]
- %grille et axes
- \FenetreSimpleTikz[opt](opt axes)<opt axe Ox>{liste valx}<opt axe Oy>{liste valy}
- %courbe
- \CourbeTikz[options]{fonction}{valxmin:valxmax}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \FenetreSimpleTikz<Police=\small>{0,5,...,55}<Police=\small>{0,30,...,210} %repère
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=250]%
- {\x*\x*exp(-0.05*\x)+1}{0:60} %courbe
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\subsection{Commandes, clés et options}
-
-\begin{noteblock}
-Les \Cle{paramètres} nécessaires à la bonne utilisation des commandes suivantes sont à déclarer directement dans l'environnement \ctex{tikzpicture}, seules les versions \og x \fg{} sont présentées ici:
-
-\begin{itemize}
- \item \Cle{xmin}, stockée dans \ctex{\textbackslash{}xmin} ;\hfill{}défaut \Cle{-3}
- \item \Cle{xmax}, stockée dans \ctex{\textbackslash{}xmax} ;\hfill{}défaut \Cle{3}
- \item \Cle{Ox}, stockée dans \ctex{\textbackslash{}axexOx}, origine de l'axe $(Ox)$ ;\hfill{}défaut \Cle{0}
- \item \Cle{xgrille}, stockée dans \ctex{\textbackslash{}xgrille}, graduation principale ;\hfill{}défaut \Cle{1}
- \item \Cle{xgrilles}, stockée dans \ctex{\textbackslash{}xgrilles}, graduation secondaire.\hfill{}défaut \Cle{0.5}
-\end{itemize}
-
-La fenêtre d'affichage (de sortie) sera donc \textit{portée} par le rectangle de coins $(\text{xmin};\text{ymin})$ et $(\text{xmax};\text{ymax})$ ; ce qui correspond en fait à la fenêtre \TikZ{} \textit{portée} par le rectangle de coins $(\text{xmin-Ox};\text{ymin-Oy})$ et $(\text{xmax-Ox};\text{ymax-Oy})$.
-
-\smallskip
-
-Les commandes ont -- pour certaines -- pas mal de \Cle{clés} pour des réglages fins, mais dans la majorité des cas elles ne sont pas forcément \textit{utiles}.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
-\GrilleTikz[options][options grille ppale][options grille second.]
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande permet de tracer une grille principale et/ou une grille secondaire :
-
-\begin{itemize}
- \item les premières \Cle{clés} sont les booléens \Cle{Affp} et \Cle{Affs} qui affichent ou non les grilles ;
-
- \hfill~défaut \Cle{true}
- \item les options des grilles sont en \TikZ. \hfill~défaut \Cle{thin,lightgray} et \Cle{very thin,lightgray}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \GrilleTikz
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \GrilleTikz[Affp=false][][orange,densely dotted]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\hfill~
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \GrilleTikz
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \GrilleTikz[Affp=false][][orange,densely dotted]
-\end{tikzpicture}
-\hfill~
-\end{PresCodeSortiePL}
-
-\pagebreak
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
-\AxesTikz[options]
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande permet de tracer les axes, avec des \Cle{clés} :
-
-\begin{itemize}
- \item \Cle{Epaisseur} qui est l'épaisseur des axes ; \hfill~défaut \Cle{1pt}
- \item \Cle{Police} qui est le style des labels des axes ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont}
- \item \cmaj{2.1.2} \Cle{ElargirOx} qui est le \% l'élargissement \Cle{global} ou \Cle{G/D} de l'axe $(Ox)$ ;
-
- \hfill~défaut \Cle{0/0.05}
- \item \cmaj{2.1.2} \Cle{ElargirOy} qui est le \% l'élargissement \Cle{global} ou \Cle{B/H} de l'axe $(Oy)$ ;
-
- \hfill~défaut \Cle{0/0.05}
- \item \Cle{Labelx} qui est le label de l'axe $(Ox)$ ; \hfill~défaut \Cle{\${}x\$}
- \item \Cle{Labely} qui est le label de l'axe $(Oy)$ ; \hfill~défaut \Cle{\${}y\$}
- \item \Cle{AffLabel} qui est le code pour préciser quels labels afficher, entre \Cle{x}, \Cle{y} ou \Cle{xy} ;
-
- \hfill~défaut \Cle{vide}
- \item \Cle{PosLabelx} pour la position du label de $(Ox)$ en bout d'axe ; \hfill~défaut \Cle{right}
- \item \Cle{PosLabely} pour la position du label de $(Oy)$ en bout d'axe ; \hfill~défaut \Cle{above}
- \item \Cle{EchelleFleche} qui est l'échelle de la flèche des axes ; \hfill~défaut \Cle{1}
- \item \Cle{TypeFleche} qui est le type de la flèche des axes.\hfill~défaut \Cle{latex}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%code tikz
-\AxesTikz
-
-%code tikz
-\AxesTikz%
- [AffLabel=xy,Labelx={Nombre de jours},Labely={Nombre d'individus infectés, en centaines},%
- PosLabelx={above left},PosLabely={above right},%
- Police=\small\sffamily,ElargirOx=0,ElargirOy=0]
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\hfill~
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \AxesTikz
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \AxesTikz%
- [AffLabel=xy,Labelx={Nombre de jours},
- Labely={Nombre d'individus infectés, en centaines},%
- PosLabelx={above left},PosLabely={above right},%
- ElargirOx=0,ElargirOy=0,
- Police=\small\sffamily]
-\end{tikzpicture}
-\hfill~
-\end{PresCodeSortiePL}
-
-\pagebreak
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
-\AxexTikz[options]{valeurs}
-\AxeyTikz[options]{valeurs}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} identiques pour les deux directions :
-
-\begin{itemize}
- \item \Cle{Epaisseur} qui est l'épaisseur des graduations ; \hfill~défaut \Cle{1pt}
- \item \Cle{Police} qui est le style des labels des graduations ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont}
- \item \Cle{PosGrad} qui est la position des graduations par rapport à l'axe ; \hfill~défaut \Cle{below} et \Cle{left}
- \item \Cle{HautGrad} qui est la hauteur des graduations (sous la forme \Cle{lgt} ou \Cle{lgta/lgtb}) ;
-
- \hfill~défaut \Cle{4pt}
- \item le booléen \Cle{AffGrad} pour afficher les valeurs (formatés avec \ctex{num} donc dépendant de \ctex{sisetup}) des graduations ; \hfill~défaut \Cle{true}
- \item le booléen \Cle{AffOrigine} pour afficher la graduation de l'origine ; \hfill~défaut \Cle{true}
- \item le booléen \Cle{Annee} qui permet de ne pas formater les valeurs des graduations (type \textsf{année}) ;
-
- \hfill~défaut \Cle{false}
- \item \cmaj{2.5.6} le booléen \Cle{Trigo} (uniquement pour l'axe $(Ox)$) pour des graduations libres en radians ;
-
- \hfill~défaut \Cle{false}
- \item \cmaj{2.5.6} le booléen \Cle{Dfrac} (uniquement pour l'axe $(Ox)$ en \Cle{Trigo}) pour forcer les fractions en \textit{grand} ;
-
- \hfill~défaut \Cle{false}
- \item \cmaj{2.7.0} le booléen \Cle{Frac} (uniquement pour l'axe $(Oy)$) pour forcer les graduations en fraction (taille normale).
-
- \hfill~défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%code tikz
-\AxexTikz[Police=\small]{0,5,...,55}
-\AxeyTikz[Police=\small]{0,30,...,210}
-%code tikz
-\AxexTikz[Police=\small,HautGrad=0pt/4pt]{0,5,...,55}
-\AxeyTikz[AffGrad=false,HautGrad=6pt]{0,30,...,210}
-%des axes fictifs (en gris) sont rajoutés pour la lisibilité du code de sortie
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\hfill~
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \draw[gray,line width=1.25pt,->,>=latex] ({\xmin-\axexOx},0) -- ({\xmax-\axexOx},0) ;
- \draw[gray,line width=1.25pt,->,>=latex] (0,{\ymin-\axeyOy}) -- (0,{\ymax-\axeyOy}) ;
- \AxexTikz[Police=\small]{0,5,...,55}
- \AxeyTikz[Police=\small]{0,30,...,210}
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \draw[gray,line width=1.25pt,->,>=latex] ({\xmin-\axexOx},0) -- ({\xmax-\axexOx},0) ;
- \draw[gray,line width=1.25pt,->,>=latex] (0,{\ymin-\axeyOy}) -- (0,{\ymax-\axeyOy}) ;
- \AxexTikz[Police=\small,HautGrad=0pt/4pt]{0,5,...,55}
- \AxeyTikz[AffGrad=false,HautGrad=6pt]{0,30,...,210}
-\end{tikzpicture}
-\hfill~
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[x=2cm,y=1cm,xmin=0,xmax={2*pi},xgrille=0.5,xgrilles=0.25,
- ymin=-1.15,ymax=1.15,ygrille=0.5,ygrilles=0.25]
- \GrilleTikz \AxesTikz
- \AxexTikz[Trigo]{{pi/6},{pi/4},{pi/3},{pi/2},{2*pi/3},%
- {3*pi/4},{5*pi/6},pi,{7*pi/6},{5*pi/4}}
- \CourbeTikz[thick,blue,samples=250]{cos(deg(\x))}{0:2*pi}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tikzpicture}
- [x=2cm,y=1cm,xmin=0,xmax={2*pi},xgrille=0.5,xgrilles=0.25,
- ymin=-1.15,ymax=1.15,ygrille=0.5,ygrilles=0.25]
- \GrilleTikz \AxesTikz
- \AxexTikz[Trigo]{{pi/6},{pi/4},{pi/3},{pi/2},{2*pi/3},%
- {3*pi/4},{5*pi/6},pi,{7*pi/6},{5*pi/4}}
- \CourbeTikz[thick,blue,samples=250]{cos(deg(\x))}{0:2*pi}
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-La clé \Cle{Trigo} utilise, en interne, une commande qui permet de \textit{transformer} les abscisses, données en langage \TikZ, en fraction en \LaTeX.
-\end{noteblock}
-
-\begin{PresCodePL}{}
-$\AffAngleRadian{0}$ \quad $\AffAngleRadian{pi}$ \quad $\AffAngleRadian{pi/4}$ \quad
-$\AffAngleRadian{2*pi/3}$ \quad $\AffAngleRadian{-2*pi/3}$ \quad $\AffAngleRadian*{-2*pi/3}$
-\end{PresCodePL}
-
-\subsection{Commandes annexes}
-
-\begin{noteblock}
-Il existe, de manière marginale, quelques commandes complémentaires qui ne seront pas trop détaillées mais qui sont existent :
-
-\begin{itemize}
- \item \ctex{FenetreTikz} qui restreint les tracés à la fenêtre (utile pour des courbes qui \textit{débordent}) ;
- \item \ctex{FenetreSimpleTikz} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ;
- \item \ctex{OrigineTikz} pour rajouter le libellé de l'origine si non affiché par les axes.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%code tikz
-\FenetreTikz %on restreint les tracés
-\FenetreSimpleTikz%
- [options](opt axes)<opt axe Ox>{valeurs Ox}<opt axe Oy>{valeurs Oy}
-\end{PresCodeTexPL}
-
-\begin{tipblock}
-L'idée est de proposer, en \textit{complément}, une commande simplifiée pour tracer une courbe en \TikZ.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
-\CourbeTikz[options]{formule}{domaine}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande permet de rajouter une courbe sur le graphique (sans se soucier de la transformation de son expression) avec les arguments :
-
-\begin{itemize}
- \item \Cle{optionnels} qui sont - en \TikZ{} - les paramètres du tracé ;
- \item le premier \textit{obligatoire}, est - en langage \TikZ{} - l'expression de la fonction à tracer, donc avec \ctex{\textbackslash{}x} comme variable ;
- \item le second \textit{obligatoire} est le domaine du tracé, sous la forme \ctex{valxmin:valxmax}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5, %axe Ox
- ymin=0,ymax=240,ygrille=30,ygrilles=30] %axe Oy
- \FenetreSimpleTikz%
- <Police=\small>{0,5,...,60}%
- <Police=\small>{0,30,...,240} %repère
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=250]%
- {\x*\x*exp(-0.05*\x)+1}{0:60} %courbe
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tikzpicture}%
- [x=0.1cm,y=0.0167cm, %unités
- xmin=0,xmax=60,xgrille=5,xgrilles=5,ymin=0,ymax=240,ygrille=30,ygrilles=30]
- \FenetreSimpleTikz%
- <Police=\small>{0,5,...,60}<Police=\small>{0,30,...,240} %repère
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=250]%
- {\x*\x*exp(-0.05*\x)+1}{0:60} %courbe
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\subsection{Repère non centré en O}
-
-\begin{tipblock}
-Parfois on est amené à travailler dans des repères qui n'ont pas forcément pour origine $(0;0)$. De ce fait - pour éviter des erreurs de \ctex{dimension too large} liées à \TikZ{} - il faut \textit{décaler les axes} pour se ramener à une origine en $O$. L'idée est donc d'utiliser les commandes précédentes, sans se soucier des éventuelles transformations !
-\end{tipblock}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2010,%
- xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1710,ygrille=10,ygrilles=5]
- \FenetreSimpleTikz<Annee,Police=\scriptsize>{1992,1994,...,2008}{1640,1650,...,1700}
- \FenetreTikz
- \CourbeTikz[line width=1.25pt,orange,samples=500]{-(\x-2000)*(\x-2000)+1700}{\xmin:\xmax}
-\end{tikzpicture}
-\end{PresCodePL}
-
-\pagebreak
-
-\section{L'outil \og SplineTikz \fg}
-
-\subsection{Courbe d'interpolation}
-
-\begin{noteblock}
-On va utiliser les notions suivantes pour paramétrer le tracé \og automatique \fg{} grâce à \ctex{..controls} :
-%
-\begin{itemize}
- \item il faut rentrer les \textcolor{purple}{\textsf{points de contrôle}} ;
- \item il faut préciser les \textcolor{CouleurVertForet}{\textsf{pentes des tangentes}} (pour le moment on travaille avec les mêmes à gauche et à droite\ldots) ;
- \item on peut \og affiner \fg{} les portions de courbe en paramétrant des \textcolor{BleuCadet}{\textsf{coefficients}} (voir un peu plus loin\ldots).
-\end{itemize}
-
-\medskip
-
-Pour déclarer les paramètres :
-%
-\begin{itemize}
- \item liste des points de contrôle (minimum 2 !!) par : \verb|x1/y1/d1§x2/y2/d2§...| avec les points \pverb|(xi;yi)| et \vverb|f'(xi)=di| ;
- \item coefficients de contrôle par \verb|coeffs=...| :
- \begin{itemize}
- \item \averb|coeffs=x| pour mettre tous les coefficients à x ;
- \item \averb|coeffs=C1§C2§...| pour spécifier les coefficients par portion (donc il faut avoir autant de § que pour les points !) ;
- \item \averb|coeffs=C1G/C1D§...| pour spécifier les coefficients par portion et par partie gauche/droite ;
- \item on peut mixer avec \averb|coeffs=C1§C2G/C2D§...|.
- \end{itemize}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\subsection{Code, clés et options}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}
- ...
- \SplineTikz[options]{liste}
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Certains paramètres et \Cle{clés} peuvent être gérés directement dans la commande \ctex{splinetikz} :
-%
-\begin{itemize}
- \item la couleur de la courbe par la {clé} \Cle{Couleur} ;\hfill{}défaut \Cle{red}
- \item l'épaisseur de la courbe par la {clé} \Cle{Epaisseur} ;\hfill{}défaut \Cle{1.25pt}
- \item du style supplémentaire pour la courbe peut être rajouté, grâce à la {clé} \Cle{Style} ;\hfill{}défaut \Cle{vide}
- \item les coefficients de \textit{compensation} gérés par la {clé} \Cle{Coeffs} ;\hfill{}défaut \Cle{3}
- \item les points de contrôle , affichés ou non par la {clé booléenne} \Cle{AffPoints} ;\hfill{}défaut \Cle{false}
- \item la taille des points de contrôle est géré par la {clé} \Cle{TaillePoints}.\hfill{}défaut \Cle{2pt}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\subsection{Compléments sur les coefficients de \og compensation \fg}
-
-\begin{tipblock}
-Le choix a été fait ici, pour \textit{simplifier} le code, le travailler sur des courbes de Bézier.
-
-Pour \textit{simplifier} la gestion des nombres dérivés, les points de contrôle sont gérés par leurs coordonnées \textit{polaires}, les \textsf{coefficients de compensation} servent donc -- grosso modo -- à gérer la position radiale.
-
-\smallskip
-
-Le coefficient \Cle{3} signifie que, pour une courbe de Bézier entre $x=a$ et $x=b$, les points de contrôles seront situés à une distance radiale de $\frac{b-a}{3}$.
-
-Pour \textit{écarter} les points de contrôle, on peut du coup \textit{réduire} le coefficient de compensation !
-
-\medskip
-
-Pour des intervalles \textit{étroits}, la \textit{pente} peut paraître abrupte, et donc le(s) coefficient(s) peuvent être modifiés, de manière fine.
-
-\medskip
-
-Si jamais il existe (un ou) des points \textit{anguleux}, le plus simple est de créer les splines en plusieurs fois.
-\end{tipblock}
-
-\subsection{Exemples}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\def\x{0.9cm}\def\y{0.9cm}
-\def\xmin{-1}\def\xmax{11}\def\xgrille{1}\def\xgrilles{0.5}
-\def\ymin{-1}\def\ymax{5}\def\ygrille{1}\def\ygrilles{0.5}
-%axes et grilles
-\draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax);
-\draw[line width=1.5pt,->,gray,>=latex] (\xmin,0)--(\xmax,0) ;
-\draw[line width=1.5pt,->,gray,>=latex] (0,\ymin)--(0,\ymax) ;
-\foreach \x in {0,1,...,10} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;}
-\foreach \y in {0,1,...,4} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;}
-\draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ;
-\draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ;
-%splines
-\def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10}
-\SplineTikz[AffPoints,Coeffs=3,Couleur=red]{\LISTE}
-\end{PresCodePL}
-
-\begin{noteblock}
-Avec des explications utiles à la compréhension :
-
-\begin{center}
- \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=7,ygrille=1,ygrilles=0.5]
- \genfenetre
- \SplineTikz[AffPoints]{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10}
- \gennotice
- \gentangentes
- \listecoeffs{3}{3}{3}{3}
- \end{tikzpicture}
-\end{center}
-\end{noteblock}
-
-\subsection{Avec une gestion plus fine des \og coefficients \fg}
-
-\begin{noteblock}
-Dans la majorité des cas, le \textit{coefficient} \textcircled{3} permet d'obtenir une courbe (ou une portion) très satisfaisante !
-
-Dans certains cas, il se peut que la portion paraisse un peu trop \og abrupte \fg{}.
-
-On peut dans ce cas \textit{jouer} sur les coefficients de cette portion pour \textit{arrondir} un peu tout cela (\textit{ie} diminuer le \textsf{coeff}\ldots)!
-
-\begin{center}
- \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=7,ygrille=1,ygrilles=0.5]
- \genfenetre
- \draw (1,-4pt) node[below,font=\sffamily] {1} ;
- \draw (-4pt,1) node[left,font=\sffamily] {1} ;
- \def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10}
- \SplineTikz[AffPoints,Coeffs=3§3§3§2/1]{\LISTE}
- \gennotice
- \listecoeffs{3/3}{3/3}{3/3}{2/1}
- \end{tikzpicture}
-\end{center}
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-...
-%splines
-\def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10}
-\SplineTikz[AffPoints,Coeffs=3§3§3§2/1]{\LISTE}
-...
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}[x=0.9cm,y=0.9cm,xmin=-1,xmax=11,xgrille=1,xgrilles=0.5,ymin=-1,ymax=5,ygrille=1,ygrilles=0.5]
- %axes et grilles
- \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax);
- \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax);
- \draw[line width=1.5pt,->,gray,>=latex] (\xmin,0)--(\xmax,0) ;
- \draw[line width=1.5pt,->,gray,>=latex] (0,\ymin)--(0,\ymax) ;
- \foreach \x in {0,1,...,10} {\draw[gray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;}
- \foreach \y in {0,1,...,4} {\draw[gray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;}
- \draw[darkgray] (1,-4pt) node[below,font=\sffamily] {1} ;
- \draw[darkgray] (-4pt,1) node[left,font=\sffamily] {1} ;
- \def\LISTE{0/1/0§4/3.667/-0.333§7.5/1.75/0§9/2/-0.333§10/0/-10}
- \SplineTikz[AffPoints,Coeffs=3§3§3§2/1]{\LISTE}
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\subsection{Conclusion}
-
-\begin{noteblock}
-Le plus \og simple \fg{} est donc:
-%
-\begin{itemize}
- \item de déclarer la liste des points de contrôle, grâce à \ctex{\textbackslash def\textbackslash LISTE\{x1/y1/d1§x2/y2/d2§...\}} ;
- \item de saisir la commande \ctex{\textbackslash SplineTikz[...]\{\textbackslash LISTE\}} ;
- \item d'ajuster les options et coefficients en fonction du rendu !
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\newpage
-
-\section{L'outil \og TangenteTikz \fg{}}
-
-\subsection{Définitions}
-
-\begin{tipblock}
-En parallèle de l'outil \ctex{SplineTikz}, il existe l'outil \ctex{TangenteTikz} qui va permettre de tracer des tangentes à l'aide de la liste de points précédemment définie pour l'outil \ctex{SplineTikz}.
-
-\smallskip
-
-NB : il peut fonctionner indépendamment de l'outil \ctex{SplineTikz} puisque la liste des points de travail est gérée de manière autonome !
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}
- ...
- \TangenteTikz[options]{liste}
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cela permet de tracer la tangente :
-%
-\begin{itemize}
- \item au point numéro \Cle{Point} de la liste \Cle{liste}, de coordonnées \textsf{xi/yi} avec la pente \textsf{di} ;
- \item avec une épaisseur de \Cle{Epaisseur}, une couleur \Cle{Couleur} et un style additionnel \Cle{Style} ;
- \item en la traçant à partir de \Cle{xl} avant \textsf{xi} et jusqu'à \Cle{xr} après \textsf{xi}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\subsection{Exemple et illustration}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}
- ...
- \def\LISTE{0/1.5/0§1/2/-0.333§2/0/-5}
- %spline
- \SplineTikz[AffPoints,Coeffs=3§2,Couleur=red]{\LISTE}
- %tangente
- \TangenteTikz[xl=0,xr=0.5,Couleur=CouleurVertForet,Style=dashed]{\LISTE}
- \TangenteTikz[xl=0.5,xr=0.75,Couleur=orange,Style=dotted,Point=2]{\LISTE}
- \TangenteTikz[xl=0.33,xr=0,Couleur=blue,Style=densely dashed,Point=3]{\LISTE}
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-On obtient le résultat suivant (avec les éléments rajoutés utiles à la compréhension) :
-
-\begin{center}
- \begin{tikzpicture}[x=3cm,y=2cm,xmin=0,xmax=2,xgrilles=0.25,ymin=0,ymax=2.25,ygrilles=0.25]
- \tikzset{noeudexpl/.style={purple,font=\sffamily\small}}
- \tgrilles
- \draw[line width=1.5pt,->,darkgray,>=latex] (\xmin,0)--(\xmax,0) ;
- \draw[line width=1.5pt,->,darkgray,>=latex] (0,\ymin)--(0,\ymax) ;
- \draw (0,1.5) node[noeudexpl,below] {point 1} ;
- \draw (1,2) node[noeudexpl,below] {point 2} ;
- \draw (2,0) node[noeudexpl,above left] {point 3} ;
- %spline
- \SplineTikz[AffPoints,Coeffs=3§2,Couleur=red]{0/1.5/0§1/2/-0.333§2/0/-5}
- %tangente
- \TangenteTikz[xl=0,xr=0.5,Couleur=CouleurVertForet,Style=dashed]{0/1.5/0§1/2/-0.333§2/0/-5}
- \TangenteTikz[xl=0.5,xr=0.75,Couleur=orange,Style=dotted,Point=2]{0/1.5/0§1/2/-0.333§2/0/-5}
- \TangenteTikz[xl=0.33,xr=0,Couleur=blue,Style=densely dashed,Point=3]{0/1.5/0§1/2/-0.333§2/0/-5}
- %explications
- \draw[<->,very thick,darkgray] (0.5,2.2)--(1,2.2) node[midway,above,font=\sffamily] {xl} ;
- \draw[<->,very thick,darkgray] (1,2.2)--(1.75,2.2) node[midway,above,font=\sffamily] {xr};
- \draw[thick,darkgray] (1,4pt)--(1,-4pt) node[below,font=\sffamily] {1} ;
- \draw[thick,darkgray] (4pt,1)--(-4pt,1) node[left,font=\sffamily] {1} ;
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\subsection{Exemple avec les deux outils, et \og personnalisation \fg}
-
-\begin{PresCodeTexPL}{listing only}
-\tikzset{%
- xmin/.store in=\xmin,xmin/.default=-5,xmin=-5,
- xmax/.store in=\xmax,xmax/.default=5,xmax=5,
- ymin/.store in=\ymin,ymin/.default=-5,ymin=-5,
- ymax/.store in=\ymax,ymax/.default=5,ymax=5,
- xgrille/.store in=\xgrille,xgrille/.default=1,xgrille=1,
- xgrilles/.store in=\xgrilles,xgrilles/.default=0.5,xgrilles=0.5,
- ygrille/.store in=\ygrille,ygrille/.default=1,ygrille=1,
- ygrilles/.store in=\ygrilles,ygrilles/.default=0.5,ygrilles=0.5,
- xunit/.store in=\xunit,unit/.default=1,xunit=1,
- yunit/.store in=\yunit,unit/.default=1,yunit=1
-}
-
-\begin{tikzpicture}[x=0.5cm,y=0.5cm,xmin=0,xmax=16,xgrilles=1,ymin=0,ymax=16,ygrilles=1]
- \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray] (\xmin,\ymin) grid (\xmax,\ymax) ;
- \draw[line width=1.5pt,->,darkgray,>=latex] (\xmin,0)--(\xmax,0) ;
- \draw[line width=1.5pt,->,darkgray,>=latex] (0,\ymin)--(0,\ymax) ;
- \foreach \x in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;}
- \foreach \y in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;}
- %la liste pour la courbe d'interpolation
- \def\liste{0/6/3§3/11/0§7/3/0§10/0/0§14/14/6}
- %les tangentes "stylisées"
- \TangenteTikz[xl=0,xr=1,Couleur=blue,Style=dashed]{\liste}
- \TangenteTikz[xl=2,xr=2,Couleur=purple,Style=dotted,Point=2]{\liste}
- \TangenteTikz[xl=2,xr=2,Couleur=orange,Style=<->,Point=3]{\liste}
- \TangenteTikz[xl=2,xr=0,Couleur=CouleurVertForet,Point=5]{\liste}
- %la courbe en elle-même
- \SplineTikz[AffPoints,Coeffs=3,Couleur=cyan,Style=densely dotted]{\liste}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
-\begin{tikzpicture}[x=0.5cm,y=0.5cm,xmin=0,xmax=16,xgrilles=1,ymin=0,ymax=16,ygrilles=1]
- \draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.3pt,lightgray] (\xmin,\ymin) grid (\xmax,\ymax) ;
- \draw[line width=1.5pt,->,darkgray,>=latex] (\xmin,0)--(\xmax,0) ;
- \draw[line width=1.5pt,->,darkgray,>=latex] (0,\ymin)--(0,\ymax) ;
- \foreach \x in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;}
- \foreach \y in {0,2,...,14} {\draw[darkgray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;}
- \draw[darkgray] (2,-4pt) node[below,font=\sffamily] {2} ;
- \draw[darkgray] (-4pt,2) node[left,font=\sffamily] {2} ;
- %la liste pour la courbe d'interpolation
- \def\liste{0/6/3§3/11/0§7/3/0§10/0/0§14/14/6}
- %les tangentes "stylisées"
- \TangenteTikz[xl=0,xr=1,Couleur=blue,Style=dashed]{\liste}
- \TangenteTikz[xl=2,xr=2,Couleur=purple,Style=dotted,Point=2]{\liste}
- \TangenteTikz[xl=2,xr=2,Couleur=orange,Style=<->,Point=3]{\liste}
- \TangenteTikz[xl=2,xr=0,Couleur=CouleurVertForet,Point=5]{\liste}
- %la courbe en elle-même
- \SplineTikz[AffPoints,Coeffs=3,Couleur=cyan,Style=densely dotted]{\liste}
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Points de discontinuité}\label{discont}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.7.7} L'idée est de présenter, en marge de la création de \textit{splines cubiques}, des points de discontinuité.
-
-Pour des raisons \textit{internes} au code, cette possibilité n'est pas offerte (encore ?) directement dans la commande de création des splines.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%dans un environnement tikz
-\PtsDiscontinuite
-\end{PresCodeTexPL}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[<options>]
- \PtsDiscontinuite{liste}[clés]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Le premier argument, \textit{optionnel} et entre \textsf{[...]}, contient les \Cle{Clés} suivantes :
-
-\begin{itemize}
- \item la clé \Cle{Couleur} qui permet de définir la couleur du symbole ;\hfill{}défaut \Cle{red}
- \item la clé \Cle{Epaisseur} qui est relative à l'épaisseur du symbole ;\hfill{}défaut \Cle{1.25pt}
- \item la clé \Cle{Pos} pour choisir la position de la discontinuité (parmi \Cle{G/D}) ;\hfill{}défaut \Cle{D}
- \item la clé \Cle{Echelle} pour modifier l'échelle du symbole ;\hfill{}défaut \Cle{1}
- \item la clé \Cle{Type} pour choisir le type de symbole, parmi \Cle{par/cro/rond/demirond}.\hfill{}défaut \Cle{par}
-\end{itemize}
-
-Le second argument, obligatoire et entre \textsf{\{...\}} permet de préciser (comme pour les commandes des paragraphes précédents) la liste des points en lesquels le symbole de discontinuité sera positionné, sous la forme \verb|x1/y1/d1 § x2/y2/d2 § ...| avec les points \pverb|(xi;yi)| et \vverb|f'(xi)=di|.
-\end{cautionblock}
-
-\subsection{Exemples}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}
- \draw[lightgray] (0,0) grid (10,5) ;
- \SplineTikz{0/1/-1 § 4/4/0}
- \PtsDiscontinuite{4/4/0}
- \PtsDiscontinuite[Pos=G,Type=cro]{0/1/-1}
- \SplineTikz[Couleur=blue]{5/1/1.5 § 8/4/0.5}
- \PtsDiscontinuite[Couleur=blue,Type=rond]{8/4/0.5}
- \PtsDiscontinuite[Couleur=blue,Pos=G,Type=demirond,Echelle=2]{5/1/1.5}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{text only}
-\begin{tikzpicture}
- \draw[lightgray] (0,0) grid (10,5) ;
- \SplineTikz{0/1/-1 § 4/4/0}
- \PtsDiscontinuite{4/4/0}
- \PtsDiscontinuite[Pos=G,Type=cro]{0/1/-1}
- \SplineTikz[Couleur=blue]{5/1/1.5 § 8/4/0.5}
- \PtsDiscontinuite[Couleur=blue,Type=rond]{8/4/0.5}
- \PtsDiscontinuite[Couleur=blue,Pos=G,Type=demirond,Echelle=2]{5/1/1.5}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\newpage
-
-\section{Petits schémas pour le signe d'une fonction affine ou d'un trinôme}\label{aidesigne}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est d'obtenir une commande pour tracer (en \TikZ) un petit schéma pour \textit{visualiser} le signe d'une fonction affine ou d'un trinôme.
-
-Le code est largement inspiré de celui du package \ctex{tnsana} même si la philosophie est un peu différente.
-
-\smallskip
-
-Comme pour les autres commandes \TikZ, l'idée est de laisser la possibilité à l'utilisateur de définir et créer son environnement \TikZ, et d'insérer la commande \ctex{MiniSchemaSignes} pour afficher le schéma.
-
-\smallskip
-
-\cmaj{2.1.9} Il est à noter que la version \textit{étoilée} rend la commande autonome, sans besoin de créer l'environnement \TikZ.
-\end{tipblock}
-
-\begin{PresCodePL}{}
-\MiniSchemaSignes*
-\end{PresCodePL}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[<options>]
- \MiniSchemaSignes[clés]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-{\tikz[options] \MiniSchemaSignes[clés]}
-%ou
-\MiniSchemaSignes*[clés]<options tikzpicture>
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-\cmaj{2.1.9} La version \textit{étoilée} de la commande permet de basculer en mode \textit{autonome}, c'est-à-dire sans avoir besoin de créer son environnement \TikZ.
-
-\smallskip
-
-Le premier argument, \textit{optionnel} et entre \textsf{[...]}, contient les \Cle{Clés} suivantes :
-
-\begin{itemize}
- \item la clé \Cle{Code} qui permet de définir le type d'expression (voir en-dessous) ;\hfill{}défaut \Cle{da+}
- \item la clé \Cle{Couleur} qui donne la couleur de la représentation ;\hfill{}défaut \Cle{red}
- \item la clé \Cle{Racines} qui définit la ou les racines ;\hfill{}défaut \Cle{2}
- \item la clé \Cle{Largeur} qui est la largeur du schéma ;\hfill{}défaut \Cle{2}
- \item la clé \Cle{Hauteur} qui est la hauteur du schéma ;\hfill{}défaut \Cle{1}
- \item un booléen \Cle{Cadre} qui affiche un cadre autour du schéma.\hfill{}défaut \Cle{true}
-\end{itemize}
-
-Le second argument, \textit{optionnel} et entre \textsf{<...>}, permet de spécifier (pour la commande \textit{étoilée}), des options à passer à l'environnement \ctex{tikzpicture}.
-\end{cautionblock}
-
-\begin{cautionblock}
-Pour la clé \Cle{code}, il est construit par le type (\textsf{a} pour affine ou \textsf{p} comme parabole) puis les éléments caractéristiques (\textsf{a+} pour $a>0$, \textsf{d0} pour $\Delta=0$, etc) :
-
-\begin{itemize}
- \item \Cle{Code=da+} := une droite croissante ;
- \item \Cle{Code=da-} := une droite décroissante ;
- \item \Cle{Code=pa+d+} := une parabole \textit{souriante} avec deux racines ;
- \item etc
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\pagebreak
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
-\MiniSchemaSignes*[Code=da+,Racines=-4]
-~~~~
-\MiniSchemaSignes*[Code=da-,Racines={h},Couleur=blue,Largeur=3,Cadre=false]
-\end{center}
-%
-\begin{center}
-\MiniSchemaSignes*[Code=pa+d+,Racines={1/2},Couleur=orange]
-~~~~
-\MiniSchemaSignes*[Code=pa+d-,Couleur=CouleurVertForet]
-~~~~
-\MiniSchemaSignes*[Code=pa+d0,Racines={5},Couleur=purple]
-\end{center}
-%
-\begin{center}
-\MiniSchemaSignes*[Code=pa-d+,Racines={-3/0},Couleur=yellow]
-~~~~
-\MiniSchemaSignes*[Code=pa-d-,Couleur=cyan]
-~~~~
-\MiniSchemaSignes*[Code=pa-d0,Racines={-1},Couleur=magenta]
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
-\MiniSchemaSignes*[Code=da+,Racines=-4]
-~~~~
-\MiniSchemaSignes*[Code=da-,Racines={h},Couleur=blue,Largeur=3,Cadre=false]
-\end{center}
-%
-\begin{center}
-\MiniSchemaSignes*[Code=pa+d+,Racines={1/2},Couleur=orange]
-~~~~
-\MiniSchemaSignes*[Code=pa+d-,Couleur=CouleurVertForet]
-~~~~
-\MiniSchemaSignes*[Code=pa+d0,Racines={5},Couleur=purple]
-\end{center}
-%
-\begin{center}
-\MiniSchemaSignes*[Code=pa-d+,Racines={-3/0},Couleur=yellow]
-~~~~
-\MiniSchemaSignes*[Code=pa-d-,Couleur=cyan]
-~~~~
-\MiniSchemaSignes*[Code=pa-d0,Racines={-1},Couleur=magenta]
-\end{center}
-\end{PresCodeSortiePL}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}
- \MiniSchemaSignes[Largeur=3.5,Hauteur=1.5,Code=da-,Racines=\tfrac{-b}{a},Couleur=pink]
-\end{tikzpicture}
-
-\MiniSchemaSignes*[Code=da-,Racines=\tfrac{-b}{a},Couleur=pink]<x=1.75cm,y=1.5cm>
-\end{PresCodePL}
-
-\pagebreak
-
-\subsection{Intégration avec tkz-tab}
-
-\begin{tipblock}
-Ces schémas peuvent être de plus utilisés, via la commande \ctex{MiniSchemaSignesTkzTab} pour illustrer les signes obtenus dans un tableau de signes présentés grâce au package \ctex{tkz-tab}.
-
-Pour des raisons internes, le fonctionnement de la commande \ctex{MiniSchemaSignesTkzTab} est légèrement différent et, pour des raisons que j'ignore, le code est légèrement différent en \textit{interne} (avec une \textit{déconnexion} des caractères \textsf{:} et \textsf{\textbackslash}) pour que la librairie \TikZ{} \ctex{calc} puisse fonctionner (mystère pour le moment\ldots)
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}
- %commandes tkztab
- \MiniSchemaSignesTkzTab[options]{numligne}[echelle][décalage horizontal]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Les \Cle{Clés} pour le premier argument \textit{optionnel} sont les mêmes que pour la version \textit{initiale} de la commande précédente.
-
-En ce qui concerne les autres arguments :
-
-\begin{itemize}
- \item le deuxième argument, \textit{obligatoire}, est le numéro de la ligne à côté de laquelle placer le schéma ;
- \item le troisième argument, \textit{optionnel} et valant \Cle{0.85} par défaut, est l'échelle à appliquer sur l'ensemble du schéma (à ajuster en fonction de la hauteur de la ligne) ;
- \item le quatrième argument, \textit{optionnel} et valant \Cle{1.5} par défait, est lié à l'écart horizontal entre le bord de la ligne du tableau et le schéma.
-\end{itemize}
-
-À noter que si l'un des arguments optionnels (le n°3 et/ou le n°4) sont utilisés, il vaut mieux préciser les 2 !
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
- \begin{tikzpicture}
- \tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
- \tkzTabLine{,+,t,+,z,-,}
- \tkzTabLine{,-,z,+,t,+,}
- \tkzTabLine{,-,z,+,z,-,}
- \MiniSchemaSignesTkzTab[Code=da-,Racines={\tfrac{5}{2}},Couleur=blue]{1}
- \MiniSchemaSignesTkzTab[Code=da+,Racines={-2},Couleur=purple]{2}
- \MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/{\tfrac{5}{2}}},Couleur=orange]%
- {3}[0.85][2]
- \end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}
- \tkzTabInit[]{$x$/1,$-2x+5$/1,$2x+4$/1,$p(x)$/1}{$-\infty$,$-2$,${2,5}$,$+\infty$}
- \tkzTabLine{,+,t,+,z,-,}
- \tkzTabLine{,-,z,+,t,+,}
- \tkzTabLine{,-,z,+,z,-,}
- \MiniSchemaSignesTkzTab[Code=da-,Racines={\tfrac{5}{2}},Couleur=blue]{1}
- \MiniSchemaSignesTkzTab[Code=da+,Racines={-2},Couleur=purple]{2}
- \MiniSchemaSignesTkzTab[Code=pa-d+,Racines={-2/{\tfrac{5}{2}}},Couleur=orange]{3}[0.85][2]
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Suites récurrentes et \og toile \fg}\label{recurr}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est d'obtenir une commande pour tracer (en \TikZ) la \og toile \fg{} permettant d'obtenir -- graphiquement -- les termes d'une suite récurrente définie par une relation $u_{n+1}=f(u_n)$.
-
-\smallskip
-
-Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{ToileRecurrence} pour afficher la \og toile \fg.
-\end{tipblock}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-...
-\begin{tikzpicture}[options]
- ...
- \ToileRecurrence[clés][options du tracé][options supplémentaires des termes]
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Plusieurs \Cle{arguments} (optionnels) sont disponibles :
-
-\begin{itemize}
- \item le premier argument optionnel définit les \Cle{Clés} de la commande :
- \begin{itemize}
- \item la clé \Cle{Fct} qui définit la fonction $f$ ;\hfill{}défaut \Cle{vide}
- \item la clé \Cle{Nom} qui est le \textit{nom} de la suite ;\hfill{}défaut \Cle{u}
- \item la clé \Cle{No} qui est l'indice initial ;\hfill{}défaut \Cle{0}
- \item la clé \Cle{Uno} qui est la valeur du terme initial ;\hfill{}défaut \Cle{vide}
- \item la clé \Cle{Nb} qui est le nombre de termes à construire ;\hfill{}défaut \Cle{5}
- \item la clé \Cle{PosLabel} qui est le placement des labels par rapport à l'axe $(Ox)$ ;\hfill{}défaut \Cle{below}
- \item la clé \Cle{DecalLabel} qui correspond au décalage des labels par rapport aux abscisses ;
-
- \hfill{}défaut \Cle{6pt}
- \item la clé \Cle{TailleLabel} qui correspond à la taille des labels ;\hfill{}défaut \Cle{small}
- \item un booléen \Cle{AffTermes} qui permet d'afficher les termes de la suite sur l'axe $(Ox)$.
-
- \hfill{}défaut \Cle{true}
- \end{itemize}
- \item le deuxième argument optionnel concerne les \Cle{options} du tracé de l'\textit{escalier} en \textit{langage \TikZ} ;
-
- \hfill{}défaut \Cle{thick,color=magenta} ;
- \item le troisième argument optionnel concerne les \Cle{options} du tracé des termes en \textit{langage \TikZ}.
-
- \hfill{}défaut \Cle{dotted}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-Il est à noter que le \textsf{code} n'est pas autonome, et doit être intégré dans un environnement \ctex{tikzpicture}.
-
-\smallskip
-
-L'utilisateur est donc libre de définir ses styles pour l'affichage des éléments de son graphique, et il est libre également de rajouter des éléments en plus du tracé de la \textit{toile} !
-
-\smallskip
-
-La macro ne permet -- pour le moment -- ni de tracer la bissectrice, ni de tracer la courbe$\ldots$
-
-En effet, il y aurait trop d'options pour ces deux éléments, et l'idée est quand même de conserver une commande \textit{simple} ! Donc l'utilisateur se chargera de tracer et de personnaliser sa courbe et sa bissectrice !
-\end{noteblock}
-
-\subsection{Exemples}
-
-\begin{noteblock}
-On va tracer la \textit{toile} des 4 premiers termes de la suite récurrente :\\
-\hfill$\begin{dcases} u_1 = 1 \\ u_{n+1} = \sqrt{5u_n}+1 \text{ pour tout entier } n \geqslant 1\end{dcases}$.\hfill~
-\end{noteblock}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\def\x{1.5cm}\def\y{1.5cm}
-\def\xmin{0}\def\xmax{10}\def\xgrille{1}\def\xgrilles{0.5}
-\def\ymin{0}\def\ymax{8}\def\ygrille{1}\def\ygrilles{0.5}
-%axes et grilles
-\draw[xstep=\xgrilles,ystep=\ygrilles,line width=0.6pt,lightgray!50] (\xmin,\ymin) grid (\xmax,\ymax);
-\draw[line width=1.5pt,->,darkgray,>=latex] (\xmin,0)--(\xmax,0) ;
-\draw[line width=1.5pt,->,darkgray,>=latex] (0,\ymin)--(0,\ymax) ;
-\foreach \x in {0,1,...,9} {\draw[darkgray,line width=1.5pt] (\x,4pt) -- (\x,-4pt) ;}
-\foreach \y in {0,1,...,7} {\draw[darkgray,line width=1.5pt] (4pt,\y) -- (-4pt,\y) ;}
-%fonction définie et réutilisable
-\def\f{sqrt(5*\x)+1}
-%toile
-\ToileRecurrence[Fct={\f},No=1,Uno=1,Nb=4,DecalLabel=4pt]
-%éléments supplémentaires
-\draw[very thick,blue,domain=0:8,samples=250] plot (\x,{\f}) ;
-\draw[very thick,CouleurVertForet,domain=0:8,samples=2] plot (\x,\x) ;
-\end{PresCodePL}
-
-\begin{noteblock}
-Peut-être que -- ultérieurement -- des options \textit{booléennes} seront disponibles pour un tracé \textit{générique} de la courbe et de la bissectrice, mais pour le moment la \textsf{macro} ne fait \textit{que} l'escalier.
-\end{noteblock}
-
-\subsection{Influence des paramètres}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
- \begin{tikzpicture}[x=4cm,y=3cm]
- %axes + grilles + graduations
- ...
- %fonction
- \def\f{-0.25*\x*\x+\x}
- %tracés
- \begin{scope}
- \clip (0,0) rectangle (2.5,1.25) ;
- \draw[line width=1.25pt,blue,domain=0:2.5,samples=200] plot (\x,{\f}) ;
- \end{scope}
- \ToileRecurrence[Fct={\f},No=0,Uno=2,Nb=5,PosLabel=above right,DecalLabel=0pt]
-\end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}[x=4cm,y=3cm]
- \draw[xstep=0.25,ystep=0.25,line width=0.3pt,lightgray!50] (0,0) grid (2.5,1.25);
- \draw[thick,->,>=latex] (0,0)--(2.5,0) ;
- \draw[thick,->,>=latex] (0,0)--(0,1.25) ;
- \foreach \x in {0,1,2}
- \draw[line width=1.25pt] (\x,4pt) -- (\x,-4pt) node[below] {\num{\x}} ;
- \foreach \y in {0,0.5,1.0}
- \draw[line width=1.25pt] (4pt,\y) -- (-4pt,\y) node[left] {\num{\y}} ;
- \draw[line width=1.25pt,red](0,0) -- (1.25,1.25) ;
- %fonction
- \def\f{-0.25*\x*\x+\x}
- %tracés
- \begin{scope}
- \clip (0,0) rectangle (2.5,1.25) ;
- \draw[line width=1.25pt,blue,domain=0:2.5,samples=200] plot (\x,{\f}) ;
- \end{scope}
- \ToileRecurrence[Fct={\f},No=0,Uno=2,Nb=5,PosLabel=above right,DecalLabel=0pt]
-\end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
- \begin{tikzpicture}[x=5cm,y=1.5cm]
- ...
- \def\f{1+1/\x}
- \ToileRecurrence%
- [Fct={\f},No=0,Uno=1,Nb=7,PosLabel=above right,DecalLabel=0pt,AffTermes=false]%
- [line width=1.25pt,CouleurVertForet,densely dashed][]
- \draw[line width=1.25pt,blue,domain=0:2.25,samples=2] plot(\x,{\x});
- \draw[line width=1.25pt,red,domain=0.8:2.5,samples=250] plot(\x,{\f});
- \end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}[x=5cm,y=1.5cm]
- %axes et grille
- \draw[xstep=0.5,ystep=0.25,line width=0.3pt,lightgray!50] (0,0) grid (2.5,2.25);
- \draw[thick,->,>=latex] (0,0)--(2.5,0) ;
- \draw[thick,->,>=latex] (0,0)--(0,2.25) ;
- \foreach \x in {0,0.5,...,2}
- \draw[line width=1.25pt] (\x,4pt) -- (\x,-4pt) node[below] {\num{\x}};
- \foreach \y in {0,0.5,...,2}
- \draw[line width=1.25pt] (4pt,\y) -- (-4pt,\y) node[left] {\num{\y}};
- %fonction
- \def\f{1+1/\x}
- %tracés
- \ToileRecurrence%
- [Fct={\f},No=0,Uno=1,Nb=7,PosLabel=above right,DecalLabel=0pt,AffTermes=false]%
- [line width=1.25pt,CouleurVertForet,densely dashed][]
- \draw[line width=1.25pt,blue,domain=0:2.25,samples=2] plot(\x,{\x});
- \draw[line width=1.25pt,red,domain=0.8:2.5,samples=250] plot(\x,{\f});
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Méthodes graphiques et intégrales}\label{integrtikz}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.6.1} L'idée est de proposer plusieurs méthodes graphiques pour illustrer graphiquement une intégrale, via :
-\begin{itemize}
- \item une méthode des rectangles (Gauche, Droite ou Milieu) ;
- \item la méthode des trapèzes.
-\end{itemize}
-La commande n'est pas autonome, elle est de ce fait à être placée dans un environnement \ctex{tikzpicture}.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%commande pour déclarer une fonction réutilisable
-\DeclareFonctionTikz[nom]{expr}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%environnement tikz
-\IntegraleApprocheeTikz[clés]{nom_fonction}{a}{b}
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Plusieurs \Cle{Clés} sont disponibles pour la commande :
-
-\begin{itemize}
- \item la clé \Cle{Epaisseur} pour l'épaisseur des \og figures \fg{} ; \hfill~défaut : \Cle{semithick}
- \item la clé \Cle{Couleur} pour la couleur des \og figures \fg{} ; \hfill~défaut : \Cle{red}
- \item le booléen \Cle{Remplir}, pour remplir les \og figures \fg{} ; \hfill~défaut : \Cle{true}
- \item la clé \Cle{Opacite} pour l'opacité du remplissage des \og figures \fg{} ;
-
- \hfill~défaut : \Cle{0.25}
- \item la clé \Cle{CouleurRemplissage} pour la couleur de remplissage des \og figures \fg{} ;
-
- \hfill~défaut : \Cle{Couleur!25}
- \item la clé \Cle{Methode}, parmi \Cle{RectanglesGauche / RectanglesDroite / RectanglesMilieu / Trapezes} pour spécifier la méthode utilisée ;
-
- \hfill~défaut : \Cle{RectanglesGauche}
- \item la clé \Cle{NbSubDiv} précise le nombre de \og figures \fg{}. \hfill~défaut : \Cle{10}
-\end{itemize}
-
-\smallskip
-
-Concernant les arguments obligatoires :
-
-\begin{itemize}
- \item le premier est la fonction , déclarée au préalable ;
- \item les deux autres arguments sont les bornes de l'intégrale.
-\end{itemize}
-
-Les commandes graphiques de \ctex{Proflycee} peuvent être utilisées pour configure la fenêtre !
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}%
- [x=0.66cm,y=0.033cm,xmin=0,xmax=21,xgrille=2,xgrilles=1,ymin=0,ymax=160,ygrille=20,ygrilles=10]
- \DeclareFonctionTikz{80*\x*exp(-0.2*\x)}
- \FenetreSimpleTikz{0,2,...,20}{0,20,...,160}
- \CourbeTikz[very thick,samples=500,blue]{f(\x)}{1:20}
- \IntegraleApprocheeTikz{f}{1}{20}
- \draw[red] (10,160) node[below right]
- {$\displaystyle%
- \IntegraleApprochee[Methode=RectanglesGauche,AffFormule,Expr={80x\,\text{e}^{-0,2x}}]%
- {80*x*exp(-0.2*x)}{1}{20}$} ;
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}%
- [x=0.66cm,y=0.033cm,xmin=0,xmax=21,xgrille=2,xgrilles=1,ymin=0,ymax=160,ygrille=20,ygrilles=10]
- \DeclareFonctionTikz{80*\x*exp(-0.2*\x)}
- \FenetreSimpleTikz{0,2,...,20}{0,20,...,160}
- \CourbeTikz[very thick,samples=500,blue]{f(\x)}{1:20}
- \IntegraleApprocheeTikz[NbSubDiv=76]{f}{1}{20}
- \draw[red] (10,160) node[below right]
- {$\displaystyle\IntegraleApprochee%
- [NbSubDiv=76,Methode=RectanglesGauche,AffFormule,Expr={80x\,\text{e}^{-0,2x}}]%
- {80*x*exp(-0.2*x)}{1}{20}$} ;
-\end{tikzpicture}
-\end{PresCodePL}
-
-\pagebreak
-
-\subsection{Exemples}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}%
- [x=0.66cm,y=0.033cm,xmin=0,xmax=21,xgrille=2,xgrilles=1,ymin=0,ymax=160,ygrille=20,ygrilles=10]
- \DeclareFonctionTikz{80*\x*exp(-0.2*\x)}
- \FenetreSimpleTikz{0,2,...,20}{0,20,...,160}
- \CourbeTikz[very thick,samples=500,blue]{f(\x)}{1:20}
- \IntegraleApprocheeTikz[Methode=RectanglesDroite,Couleur=green]{f}{1}{20}
- \draw[green] (10,160) node[below right]
- {$\displaystyle\IntegraleApprochee%
- [Methode=RectanglesDroite,AffFormule,Expr={80x\,\text{e}^{-0,2x}}]%
- {80*x*exp(-0.2*x)}{1}{20}$} ;
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}%
- [x=0.66cm,y=0.033cm,xmin=0,xmax=21,xgrille=2,xgrilles=1,ymin=0,ymax=160,ygrille=20,ygrilles=10]
- \DeclareFonctionTikz{80*\x*exp(-0.2*\x)}
- \FenetreSimpleTikz{0,2,...,20}{0,20,...,160}
- \CourbeTikz[very thick,samples=500,blue]{f(\x)}{1:20}
- \IntegraleApprocheeTikz[Methode=RectanglesMilieu,Couleur=purple]{f}{1}{20}
- \draw[purple] (10,160) node[below right]
- {$\displaystyle\IntegraleApprochee%
- [Methode=RectanglesMilieu,AffFormule,Expr={80x\,\text{e}^{-0,2x}}]%
- {80*x*exp(-0.2*x)}{1}{20}$} ;
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}%
- [x=0.66cm,y=0.033cm,xmin=0,xmax=21,xgrille=2,xgrilles=1,ymin=0,ymax=160,ygrille=20,ygrilles=10]
- \DeclareFonctionTikz{80*\x*exp(-0.2*\x)}
- \FenetreSimpleTikz{0,2,...,20}{0,20,...,160}
- \CourbeTikz[very thick,samples=500,blue]{f(\x)}{1:20}
- \IntegraleApprocheeTikz[Methode=Trapezes,Couleur=orange]{f}{1}{20}
- \draw[orange] (10,160) node[below right]
- {$\displaystyle\IntegraleApprochee%
- [Methode=Trapezes,AffFormule,Expr={80x\,\text{e}^{-0,2x}}]%
- {80*x*exp(-0.2*x)}{1}{20}$} ;
-\end{tikzpicture}
-\end{PresCodePL}
+\input{ProfLycee-doc-outilsgraphiques.tex}
\newpage
@@ -2865,1054 +399,7 @@ Les commandes graphiques de \ctex{Proflycee} peuvent être utilisées pour confi
\newpage
-\part{Présentation de codes}
-
-\section{Précautions}\label{codenumlignes}
-
-\begin{tipblock}
-L'idée est de proposer des environnements pour présenter du code :
-
-\begin{itemize}
- \item \textsf{Python} ;
- \item \textsf{PseudoCode}.
-\end{itemize}
-
-Dans la mesure du possible (mis à part pour certains points avec l'utilisation des packages \ctex{piton} et \ctex{pythontex}), les environnements seront composés :
-
-\begin{itemize}
- \item dans une boîte \ctex{tcolorbox} ;
- \item de deux styles :\ctex{CodeXXXX} ou \ctex{CodeXXXXAlt} ;
- \item de clés pour paramétrer la \Cle{Largeur} et le début de la numérotation \Cle{PremLigne} ;
- \item d'une version étoilée pour ne pas numérotée les lignes ;
- \item d'options éventuelles à donner en langage \ctex{tcolorbox}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{warningblock}
-Avec la mise à jour \cmaj{2.7.5} et la possibilité de modifier la numérotation des lignes, certains environnements ont vu leur fonctionnement légèrement modifié, donc il est conseillé d'être prudent avec les nouvelles spécificités.
-
-\smallskip
-
-Il est prévu, à plus ou moyen terme, d'uniformiser le fonctionnement de tous les environnements, mais cela demande de reprendre une bonne partie du code.
-\end{warningblock}
-
-\section{Code Python \og simple \fg{} via le package listings}\label{pythonsimple}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-Le {package} \ctex{listings} permet d'insérer et de formater du code, notamment du code \textsf{Python}.
-
-En \textit{partenariat} avec \ctex{tcolorbox}, on peut donc présenter \textit{joliment} du code \textsf{Python} !
-\end{tipblock}
-
-\begin{noteblock}
-Le package \ctex{listings} ne nécessite pas de compilation particulière, au contraire d'autres (comme \ctex{pythontex} ou \ctex{minted} ou \ctex{piton}) qui seront présentés ultérieurement.
-\end{noteblock}
-
-\begin{noteblock}
-Les styles utilisés pour formater le code \textsf{Python} ne sont pas modifiables. Ils donnent un rendu proche de celui des packages comme \ctex{pythontex} ou \ctex{minted} ou \ctex{piton}.
-
-\smallskip
-
-Donc, si plusieurs \textit{méthodes} sont utilisées pour insérer du code \textsf{Python} (via les \textit{méthodes} suivantes), le rendu pourra être légèrement différent.
-\end{noteblock}
-
-\subsection{Commande et options}
-
-\begin{tipblock}
-L'environnement \ctex{CodePythonLst} permet de présenter du code \textsf{Python}, dans une \ctex{tcolorbox} avec deux styles particuliers (\cmaj{2.5.8}).
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonLst}(*)[clés]{commandes tcbox}
-...
-\end{CodePythonLst}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonLstAlt}(*)[clés]{commandes tcbox}
-...
-\end{CodePythonLstAlt}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Plusieurs \Cle{arguments} sont disponibles :
-
-\begin{itemize}
- \item la version \textit{étoilée} qui permet de ne pas afficher les numéros de lignes ;
- \item le premier argument (\textit{optionnel}), comprend la clé \Cle{Largeur} de la \ctex{tcbox} (\Cle{\textbackslash linewidth} par défaut) et la clé \Cle{PremLigne} (\Cle{1} par défaut) ;
- \item le second argument (\textit{obligatoire}), concerne des \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}, comme l'alignement.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{warningblock}
-Les environnements créés par \ctex{tcolorbox} et \ctex{listings} ne sont pas compatibles avec les options \Cle{gobble} (pour supprimer les tabulations d'environnement), donc il faut bien penser à \og aligner \fg{} le code à gauche, pour éviter des tabulations non esthétiques !
-\end{warningblock}
-
-\subsection{Insertion via un fichier \og externe \fg}
-
-\begin{tipblock}
-Pour des raison pratiques, il est parfois intéressant d'avoir le code \textsf{Python} dans un fichier externe au ficher \ctex{tex}, ou bien créé directement par le fichier \ctex{tex} (via \ctex{scontents}, notamment, mais non chargé par \ctex{ProfLycee}).
-
-Dans ce cas, il n'est pas nécessaire d'aligner le code \og à gauche \fg, en utilisant une commande alternative.
-
-\smallskip
-
-Si cette méthode est utilisée, il ne faut oublier de charger le package \ctex{scontents}, et être attentif à la syntaxe.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\usepackage{scontents} %si script déclaré dans le fichier tex
-...
-\CodePythonLstFichier(*)[largeur]{commandes tcbox}{script}
-\end{PresCodeTexPL}
-
-\subsection{Exemples}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonLst}{} %les {}, même vides, peuvent être nécessaires (bug avec # sinon !)
-#environnement par défaut
-nb = int(input("Saisir un entier positif"))
-if (nb %7 == 0) :
- print(f"{nb} est bien divisible par 7")
-#endif
-
-def f(x) :
- return x**2
-\end{CodePythonLst}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{CodePythonLst}{}
-#environnement par défaut
-nb = int(input("Saisir un entier positif"))
-if (nb %7 == 0) :
- print(f"{nb} est bien divisible par 7")
-#endif
-
-def f(x) :
- return x**2
-\end{CodePythonLst}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonLst}[PremLigne=10]{}
-nb = int(input("Saisir un entier positif"))
-if (nb %7 == 0) :
- print(f"{nb} est bien divisible par 7")
-#endif
-\end{CodePythonLst}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{CodePythonLst}[PremLigne=10]{}
-nb = int(input("Saisir un entier positif"))
-if (nb %7 == 0) :
- print(f"{nb} est bien divisible par 7")
-#endif
-\end{CodePythonLst}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonLstAlt}*[Largeur=0.75\linewidth]{flush right}
-#largeur de 75%, sans numéro, et aligné à droite
-nb = int(input("Saisir un entier Python positif"))
-if (nb %7 == 0) :
- print(f"{nb} est bien divisible par 7")
-#endif
-
-def f(x) :
- return x**2
-\end{CodePythonLstAlt}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{CodePythonLstAlt}*[Largeur=0.75\linewidth]{flush right}
-#largeur de 50%, sans numéro, et aligné à droite
-nb = int(input("Saisir un entier Python positif"))
-if (nb %7 == 0) :
- print(f"{nb} est bien divisible par 7")
-#endif
-
-def f(x) :
- return x**2
-\end{CodePythonLstAlt}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{scontents}[overwrite,write-out=testscript.py]
-# Calcul de la factorielle en langage Python
-def factorielle(x):
- if x < 2:
- return 1
- else:
- return x * factorielle(x-1)
-
-# rapidité de tracé
-import matplotlib.pyplot as plt
-import time
-def trace_parabole_tableaux():
- depart=time.clock()
- X = [] # Initialisation des listes
- Y = []
- a = -2
- h = 0.001
- while a<2:
- X.append(a) # Ajout des valeurs
- Y.append(a*a) # au "bout" de X et Y
- a = a+h
- # Tracé de l'ensemble du tableau de valeurs
- plt.plot(X,Y,".b")
- fin=time.clock()
- return "Temps : " + str(fin-depart) + " s."
-\end{scontents}
-
-%environnement centré, avec numéros, largeur 9cm
-\CodePythonLstFichier[9cm]{center}{testscript.py}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{scontents}[overwrite,write-out=testscript.py]
-# Calcul de la factorielle en langage Python
-def factorielle(x):
- if x < 2:
- return 1
- else:
- return x * factorielle(x-1)
-
-# rapidité de tracé
-import matplotlib.pyplot as plt
-import time
-def trace_parabole_tableaux():
- depart=time.clock()
- X = [] # Initialisation des listes
- Y = []
- a = -2
- h = 0.001
- while a<2:
- X.append(a) # Ajout des valeurs
- Y.append(a*a) # au "bout" de X et Y
- a = a+h
- # Tracé de l'ensemble du tableau de valeurs
- plt.plot(X,Y,".b")
- fin=time.clock()
- return "Temps : " + str(fin-depart) + " s."
-\end{scontents}
-
-\CodePythonLstFichier[9cm]{center}{testscript.py}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Code Python via le package piton}\label{pythonpiton}
-
-\subsection{Introduction}
-
-\begin{noteblock}
-\cmaj{2.5.0} Cette section nécessite de charger la \textsf{librairie} \clib{piton} dans le préambule.
-
-\cmaj{2.5.7} Une console \textsf{Python} est disponible, elle nécessite le package \ctex{pyluatex}, qui n'est pas chargé par \ctex{ProfLycee}, du fait de l'obligation de spécifier le \textit{chemin} pour l'exécutable \textsf{Python} !
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\usepackage[executable=...]{pyluatex} %si utilisation de la console REPL
-\useproflyclib{piton}
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-La \textsf{librairie} \clib{piton} (qui charge \ctex{piton}, est compatible uniquement avec \hologo{LuaLaTeX} !) permet d'insérer du code \textsf{Python} avec une coloration syntaxique en utilisant la bibliothèque \textsf{Lua LPEG}.
-
-\smallskip
-
-En \textit{partenariat} avec \ctex{tcolorbox}, on peut avoir une présentation de code \textsf{Python} !
-
-\smallskip
-
-Depuis la version \ctex{0.95} de \ctex{piton}, \Cle{left-margin=auto} est disponible et activée dans \ctex{ProfLycee}.
-
-Depuis la version \ctex{0.99} de \ctex{piton}, \Cle{break-lines} est disponible et activée dans \ctex{ProfLycee}.
-
-Depuis la version \ctex{1.0} de \ctex{piton}, \Cle{tabs-auto-gobble} est disponible et activée dans \ctex{ProfLycee}.
-
-Depuis la version \ctex{2.2a} de \ctex{piton}, des options pour \Cle{line-numbers} sont disponibles.
-\end{noteblock}
-
-\begin{warningblock}
-Le package \ctex{piton} nécessite donc obligatoirement l’emploi de \hologo{LuaLaTeX} !
-
-Ce package n'est chargé que si la compilation détectée est en \hologo{LuaLaTeX} !
-
-\smallskip
-
-\cmaj{2.5.7} L'utilisation de la console \textbf{REPL} nécessite une compilation en \ctex{--shell-escape} ou \ctex{-write18} !
-
-\cmaj{2.5.7} Les packages \ctex{pyluatex} et \ctex{pythontex} utilisent des commandes de même nom, donc la présente documentation n'utilisera pas le package \ctex{pyluatex}. Une documentation annexe spécifique est disponible.
-\end{warningblock}
-
-\subsection{Présentation de code Python}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePiton}[options]{options tcbox}<option line-numbers>
-...
-\end{CodePiton}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Plusieurs \Cle{clés} sont disponibles :
-
-\begin{itemize}
- \item la clé booléenne \Cle{Lignes} pour afficher ou non les numéros de lignes ; \hfill{}défaut \Cle{true}
- \item la clé booléenne \Cle{Gobble} pour activer les options liées au \textsf{gobble} ; \hfill{}défaut \Cle{true}
- \item la clé \Cle{Largeur} qui correspond à la largeur de la \ctex{tcbox} ; \hfill{}défaut \Cle{\textbackslash linewidth}
- \item la clé \Cle{TaillePolice} pour la taille des caractères ; \hfill{}défaut \Cle{\textbackslash footnotesize}
- \item la clé \Cle{Alignement} qui paramètre l'alignement de la \ctex{tcbox} ; \hfill{}défaut \Cle{center}
- \item \cmaj{2.5.7} la clé \Cle{Style} (parmi \Cle{Moderne / Classique}) pour changer le style ;
-
- \hfill{}défaut \Cle{Moderne}
- \item \cmaj{2.5.7} le boolén \Cle{Filigrane} pour afficher, le logo {\small \faPython} en filigrane ; \hfill{}défaut \Cle{false}
- \item \cmaj{2.5.7} le boolén \Cle{BarreTitre} (si \Cle{Style=Moderne}) pour afficher le titre ; \hfill{}défaut \Cle{true}
- \item \cmaj{2.5.7} le boolén \Cle{Cadre} (si \Cle{Style=Moderne}) pour afficher le cadre ; \hfill{}défaut \Cle{true}
- \item \cmaj{2.5.9} la clé \Cle{CouleurNombres} pour la couleur des nombres.\hfill{}défaut \Cle{orange}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-Du fait du paramétrage des boîtes \ctex{tcolorbox}, il se peut que le rendu soit non conforme si elle doit être insérée dans une autre \ctex{tcolorbox}\ldots{} (normalement corrigé en \cmaj{2.6.9}) !
-\end{noteblock}
-
-\begin{noteblock}
-Pour éviter des problèmes avec le code interprété par \textsf{piton}, les \ctex{\{\}} de l'argument obligatoire sont nécessaires au bon fonctionnement du code.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePiton}{} %pour éviter un bug avec le caractère #
-#environnement piton avec numéros de ligne, pleine largeur, style moderne
-def arctan(x,n=10):
- if x < 0:
- return -arctan(-x) #> (appel récursif)
- elif x > 1:
- return pi/2 - arctan(1/x) #> (autre appel récursif)
- else:
- return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
-\end{CodePiton}
-\end{PresCodeTexPL}
-
-\begin{CodePiton}{}
-#environnement piton avec numéros de ligne, pleine largeur, style moderne
-def arctan(x,n=10):
- if x < 0:
- return -arctan(-x) #> (appel récursif)
- elif x > 1:
- return pi/2 - arctan(1/x) #> (autre appel récursif)
- else:
- return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
-\end{CodePiton}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePiton}[Style=Classique,Filigrane]{}<start=10>
-#environnement piton avec numéros (début=10), style classique, filigrane
-def arctan(x,n=10):
- if x < 0:
- return -arctan(-x) #> (appel récursif)
- elif x > 1:
- return pi/2 - arctan(1/x) #> (autre appel récursif)
- else:
- return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
-\end{CodePiton}
-\end{PresCodeTexPL}
-
-\begin{CodePiton}[Style=Classique,Filigrane]{}<start=10>
-#environnement piton avec numéros, style classique, filigrane
-def arctan(x,n=10):
- if x < 0:
- return -arctan(-x) #> (appel récursif)
- elif x > 1:
- return pi/2 - arctan(1/x) #> (autre appel récursif)
- else:
- return sum( (-1)**k/(2*k+1)*x**(2*k+1) for k in range(n) )
-\end{CodePiton}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePiton}[Alignement=flush right,Largeur=13cm]{}
-def f(x) :
- return x**2
-\end{CodePiton}
-
-\begin{CodePiton}[Alignement=flush left,Largeur=11cm]{}
-def f(x) :
- return x**2
-\end{CodePiton}
-
-\begin{itemize} %Avec des indentations d'environnement :
- \item On essaye avec un \texttt{itemize} :
- %
- \begin{CodePiton}[Largeur=12cm,Style=Classique,Cadre=false]{}
- def f(x) :
- return x**2
- \end{CodePiton}
- \item Et avec un autre \texttt{itemize} :
- %
- \begin{CodePiton}[Largeur=12cm,Style=Classique,Cadre=false,BarreTitre=false]{}
- #avec numéros, de largeur 12cm, centré, classique, sans cadre/titre
- def f(x) :
- return x**2
- \end{CodePiton}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{PresCodeTexPL}
-
-\begin{CodePiton}[Alignement=flush right,Largeur=13cm]{}
-#avec numéros, de largeur 13cm, aligné à droite
-def f(x) :
- return x**2
-\end{CodePiton}
-
-\begin{CodePiton}[Alignement=flush left,Largeur=11cm]{}
-#avec numéros, de largeur 11cm, aligné à gauche
-def f(x) :
- return x**2
-\end{CodePiton}
-
-\begin{itemize}
- \item On essaye avec un \texttt{itemize} :
- %
- \begin{CodePiton}[Largeur=12cm,Style=Classique,Cadre=false]{}
- #avec numéros, de largeur 12cm, centré, classique, sans cadre
- def f(x) :
- return x**2
- \end{CodePiton}
- \item Et avec un autre \texttt{itemize} :
- %
- \begin{CodePiton}[Largeur=12cm,Style=Classique,BarreTitre=false,Cadre=false]{}
- #avec numéros, de largeur 12cm, centré, classique, sans cadre/titre
- def f(x) :
- return x**2
- \end{CodePiton}
-\end{itemize}
-
-\subsection{Console en partenariat avec Pyluatex}
-
-\begin{noteblock}
-\cmaj{2.5.7} Une console d'exécution (type REPL) est disponible, et la documentation associée est en marge de la présente documentation.
-\end{noteblock}
-
-\pagebreak
-
-\section{Code \& Console Python, via les packages Pythontex ou Minted}
-
-\subsection{Librairies}
-
-\begin{noteblock}
-\cmaj{2.5.0} Cette section nécessite de charger les librairies \clib{minted} et/ou \clib{pythontex} dans le préambule.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\useproflyclib{minted}
-\useproflyclib{pythontex}
-%ou
-\useproflyclib{minted,pythontex}
-\end{PresCodeTexPL}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-\cmaj{2.5.0} La \textsf{librairie} \clib{pythontex} permet d'insérer et d'exécuter du code \textsf{Python}. On peut :
-
-\begin{itemize}
- \item \cmaj{2.5.8} présenter du code \textsf{Python} (deux styles disponibles) ;
- \item exécuter du code \textsf{Python} dans un environnement type \og console \fg{} ;
- \item charger du code \textsf{Python}, et éventuellement l'utiliser dans la console.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{warningblock}
-\textbf{Attention : }il faut dans ce cas une compilation en plusieurs étapes, comme par exemple \textsf{pdflatex puis pythontex puis pdflatex} !
-
-Voir par exemple \url{http://lesmathsduyeti.fr/fr/informatique/latex/pythontex/} !
-\end{warningblock}
-
-\begin{noteblock}
-Compte tenu de la \textit{relative complexité} pour gérer les options (par paramètres/clés\ldots) des \textit{tcbox} et des \textit{fancyvrb}, les style sont \og fixés \fg{} tels quels, et seules la taille et la position de la \textit{tcbox} sont modifiables. Si toutefois vous souhaitez personnaliser davantage, il faudra prendre le code correspondant et appliquer vos modifications !
-
-Cela peut donner -- en tout cas -- des idées de personnalisation en ayant une base \textit{pré}existante !
-\end{noteblock}
-
-\subsection{Présentation de code Python grâce au package pythontex}\label{pythontex}
-
-\begin{tipblock}
-L'environnement \ctex{CodePythontex} est donc lié à \ctex{pythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code \textsf{Python}, dans une \ctex{tcolorbox} avec deux styles particuliers (\cmaj{2.5.8}).
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythontex}[clés]{} %les {} vides sont nécessaires
-...
-\end{CodePythontex}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythontexAlt}[clés]{} %les {} vides sont nécessaires
- ...
-\end{CodePythontexAlt}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Comme précédemment, des \Cle{Clés} qui permettent de \textit{légèrement} modifier le style :
-
-\begin{itemize}
- \item \Cle{Largeur} : largeur de la \textit{tcbox} ;\hfill{}défaut \Cle{\textbackslash linewidth}
- \item \Cle{PremLigne} : numéro initial des lignes ; \hfill{}défaut \Cle{1}
- \item \Cle{TaillePolice} : taille des caractères ;\hfill{}défaut \Cle{\textbackslash footnotesize}
- \item \Cle{EspacementVertical} : option (\textit{stretch}) pour l'espacement entre les lignes ;\hfill{}défaut \Cle{1}
- \item \Cle{Lignes} : booléen pour afficher ou non les numéros de ligne.\hfill{}défaut \Cle{true}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythontex}{} %bien mettre les {} !!
- #environnement Python(tex) par défaut
- def f(x) :
- return x**2
-\end{CodePythontex}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{CodePythontex}{}
- #environnement Python(tex) par défaut
- def f(x) :
- return x**2
-\end{CodePythontex}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythontexAlt}[Largeur=12cm,Centre,Lignes=false]{}
- #environnement Python(tex) classique, centré, sans lignes
- def f(x) :
- return x**2
-\end{CodePythontexAlt}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{CodePythontexAlt}[Largeur=12cm,Centre,Lignes=false]{}
- #environnement Python(tex) classique, centré, sans lignes
- def f(x) :
- return x**2
-\end{CodePythontexAlt}
-\end{PresCodeSortiePL}
-
-\subsection{Présentation de code Python via le package minted}\label{pytminted}
-
-\begin{noteblock}
-Pour celles et ceux qui ne sont pas à l'aise avec le {package} \ctex{pythontex} et notamment sa spécificité pour compiler, il existe le {package} \ctex{minted} qui permet de présenter du code, et notamment \textsf{Python}.
-
-\cmaj{2.5.8} Deux styles sont désormais disponibles.
-
-\cmaj{2.5.0} C'est donc la \textsf{librairie} \clib{minted} qu'il faudra charger.
-\end{noteblock}
-
-\begin{warningblock}
-Le package \ctex{minted} nécessite quand même une compilation avec l'option \ctex{--shell-escape} ou \ctex{-write18} !
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonMinted}(*)[clés]{options tcbox}
-...
-\end{CodePythonMinted}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonMintedAlt}(*)[clés]{options tcbox}
-...
-\end{CodePythonMintedAlt}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Plusieurs \Cle{arguments} sont disponibles :
-
-\begin{itemize}
- \item la version \textit{étoilée} qui permet de ne pas afficher les numéros de lignes ;
- \item le 1\up{er} argument (\textit{optionnel}), comprend la clé \Cle{Largeur} de la \ctex{tcbox} (\Cle{\textbackslash linewidth} par défaut) et la clé \Cle{PremLigne} (\Cle{1} par défaut) ;
- \item le 2\up{nd} argument \textit{obligatoire} concerne les \Cle{options} de la \ctex{tcbox} en \textit{langage tcbox}.\hfill{}défaut \Cle{vide}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonMinted}[Largeur=13cm,PremLigne=10]{center}
- #environnement Python(minted) centré avec numéros, de largeur 13cm
- def f(x) :
- return x**2
-\end{CodePythonMinted}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{CodePythonMinted}[Largeur=13cm,PremLigne=10]{center}
- #environnement Python(minted) centré avec numéros
- def f(x) :
- return x**2
-\end{CodePythonMinted}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{CodePythonMintedAlt}*[Largeur=0.8\linewidth]{}
- #environnement Python(minted), style alt, sans numéro, de largeur 0.8\linewidth
- def f(x) :
- return x**2
-\end{CodePythonMintedAlt}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{CodePythonMintedAlt}*[Largeur=0.8\linewidth]{}
- #environnement Python(minted), style alt, sans numéro, 0.8\linewidth
- def f(x) :
- return x**2
-\end{CodePythonMintedAlt}
-\end{PresCodeSortiePL}
-
-\subsection{Console d'exécution Python}
-
-\begin{tipblock}
-\ctex{pythontex} permet également de \textit{simuler} (en exécutant également !) du code \textsf{Python} dans une \textit{console}, avec la \textsf{librairie} \clib{pythontex} du coup !
-
-C'est l'environnement \ctex{ConsolePythontex} qui permet de le faire.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{ConsolePythontex}[clés]{} %les {} vides sont nécessaires
-...
-\end{ConsolePythontex}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Les \Cle{Clés} disponibles sont :
-
-\begin{itemize}
- \item \Cle{Largeur} : largeur de la \textit{console} ;\hfill{}défaut \Cle{\textbackslash linewidth}
- \item \Cle{Centre} : booléen pour centrer ou non la \textit{console} ;\hfill{}défaut \Cle{false}
- \item \Cle{TaillePolice} : taille des caractères ;\hfill{}défaut \Cle{\textbackslash footnotesize}
- \item \Cle{EspacementVertical} : option (\textit{stretch}) pour l'espacement entre les lignes ;\hfill{}défaut \Cle{1}
- \item \Cle{Label} : booléen pour afficher ou non le titre.\hfill{}défaut \Cle{true}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{ConsolePythontex}{}
- #console Python(tex) par défaut
- from math import sqrt
- 1+1
- sqrt(12)
-\end{ConsolePythontex}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\smallskip
-\begin{ConsolePythontex}{}
- #console Python(tex) par défaut
- from math import sqrt
- 1+1
- sqrt(12)
-\end{ConsolePythontex}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{ConsolePythontex}[Largeur=14cm,Label=false,Centre]{}
- #console Python(tex) centrée sans label, 14cm
- table = [[1,2],[3,4]]
- table[0][0]
-
- from random import randint
- tableau = [[randint(1,20) for j in range(0,6)] for i in range(0,3)]
- tableau
- len(tableau), len(tableau[0]), tableau[1][4]
-\end{ConsolePythontex}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\smallskip
-\begin{ConsolePythontex}[Largeur=14cm,Label=false,Centre]{}
- #console Python(tex) centrée sans label, 14cm
- table = [[1,2],[3,4]]
- table[0][0]
-
- from random import randint
- tableau = [[randint(1,20) for j in range(0,6)] for i in range(0,3)]
- tableau
- len(tableau), len(tableau[0]), tableau[1][4]
-\end{ConsolePythontex}
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-Le package \ctex{pythontex} peut donc servir à présenter du code Python, comme \ctex{minted} ou \ctex{piton}, sa particularité est toutefois de pouvoir \textit{exécuter} du code \textsf{Python} pour une présentation de type \textit{console}.
-\end{noteblock}
-
-\newpage
-
-\section{Pseudo-Code}\label{pseudocode}
-
-\subsection{Introduction}
-
-\begin{noteblock}
-Le {package} \ctex{listings} permet d'insérer et de présenter du code, et avec \ctex{tcolorbox} on peut obtenir une présentation similaire à celle du code \textsf{Python}. Pour le moment la \textit{philosophie} de la commande est un peu différente de celle du code \textsf{Python}, avec son système de \Cle{Clés}.
-\end{noteblock}
-
-\subsection{Présentation de Pseudo-Code}
-
-\begin{tipblock}
-Les environnements \ctex{PseudoCode} ou \ctex{PseudoCodeAlt} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}, avec deux styles à disposition (\cmaj{2.5.8}).
-\end{tipblock}
-
-\begin{warningblock}
-De plus, le package \ctex{listings} avec \ctex{tcolorbox} ne permet pas de gérer le paramètre \textit{autogobble}, donc il faudra être vigilant quant à la position du code (pas de tabulation en fait\ldots)
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{PseudoCode}(*)[clés]{options tcbox}
-%attention à l'indentation, gobble ne fonctionne pas...
-...
-\end{PseudoCode}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{PseudoCodeAlt}(*)[clés]{options tcbox}
-%attention à l'indentation, gobble ne fonctionne pas...
-...
-\end{PseudoCodeAlt}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Plusieurs \Cle{arguments} (optionnels) sont disponibles :
-
-\begin{itemize}
- \item la version \textit{étoilée} qui permet de ne pas afficher les numéros de lignes ;
- \item le 1\up{er} argument (\textit{optionnel}), comprend la clé \Cle{Largeur} de la \ctex{tcbox} (\Cle{\textbackslash linewidth} par défaut) et la clé \Cle{PremLigne} (\Cle{1} par défaut) ;
- \item \cmaj{2.7.5} une clé booléenne \Cle{Couleur} est également disponible pour mettre en évidence trois niveaux (elles peuvent être redéfinies) de mots clés en pseudo-code (\Cle{false} par défaut) ;
- \item \cmaj{2.5.8} l'argument obligatoire entre \ctex{\{...\}} concerne les \Cle{options} de la \ctex{tcbox}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%en pas oublier les {}, même vides !
-\begin{PseudoCode}{} %non centré, de largeur par défaut (12cm) avec lignes
-List = [...] # à déclarer au préalable
-n = longueur(List)
-Pour i allant de 0 à n-1 Faire
- Afficher(List[i])
-FinPour
-\end{PseudoCode}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{PseudoCode}{}
-List = [...] # à déclarer au préalable
-n = longueur(List)
-Pour i allant de 0 à n-1 Faire
- Afficher(List[i])
-FinPour
-\end{PseudoCode}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{PseudoCodeAlt}[Largeur=15cm,PremLigne=7,Couleur]{center} %centré, de largeur 15cm
-List = [...] # à déclarer au préalable
-n = longueur(List)
-Pour i allant de 0 à n-1 Faire
- Afficher(List[i])
-FinPour
-\end{PseudoCodeAlt}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{PseudoCodeAlt}[Largeur=15cm,PremLigne=7,Couleur]{center}
-List = [...] # à déclarer au préalable
-n = longueur(List)
-Pour i allant de 0 à n-1 Faire
- Afficher(List[i])
-FinPour
-\end{PseudoCodeAlt}
-\end{PresCodeSortiePL}
-
-\subsection{Compléments}
-
-\begin{warningblock}
-À l'instar de packages existants, la \textit{philosophie} ici est de laisser l'utilisateur gérer \textit{son} langage pseudo-code.
-
-J'ai fait le choix de ne pas forcément définir des \textsf{mots clés} à mettre en valeur car cela reviendrait à \textit{imposer} des choix ! Donc ici, pas de coloration syntaxique (uniquement via la clé \Cle{Couleur}) ou de mise en évidence de mots clés, uniquement un formatage basique !
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-%couleurs par défaut des mots clés, modifiables si besoin
-\colorlet{MotsClesPseudoCodeA}{blue!75}
-\colorlet{MotsClesPseudoCodeB}{green!50!black}
-\colorlet{MotsClesPseudoCodeChaine}{red!75}
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-Le style \ctex{listings} utilisé par la commande a l'option \Cle{mathescape} activée, et accessible grâce aux délimiteurs \Cle{(*...*)}.
-
-Cela permet d'insérer du code \LaTeX{} dans l'environnement \ctex{PseudoCode} (attention au fontes par contre !).
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{PseudoCode}*[Largeur=12cm]{} % pour éviter un bug avec #
-#Utilisation du mode mathescape
-Afficher (*\og*) .........(*\fg*)
-m = (*$\tfrac{\texttt{1}}{\texttt{2}}$*)
-\end{PseudoCode}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{PseudoCode}*[Largeur=12cm]{}
-#Utilisation du mode mathescape
-Afficher (*\og*) .........(*\fg*)
-m = (*$\tfrac{\texttt{1}}{\texttt{2}}$*)
-\end{PseudoCode}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Terminal Windows/UNiX/OSX}\label{terms}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée des \textsf{commandes} suivantes est de permettre de simuler des fenêtres de \textsf{Terminal}, que ce soit pour Windows, Ubuntu ou OSX.
-
-\smallskip
-
-L'idée de base vient du {package} \ctex{termsim}, mais ici la gestion du \textsf{code} et des \textsf{fenêtres} est légèrement différente.
-
-\smallskip
-
-Le \textsf{contenu} est géré par le package \ctex{listings}, sans langage particulier, et donc sans coloration syntaxique particulière.
-\end{tipblock}
-
-\begin{warningblock}
-Comme pour le pseudo-code, pas d'\textsf{autogobble}, donc commandes à aligner à gauche !
-\end{warningblock}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{TerminalWin}[largeur]{titre=...}[options tcbox]
-...
-\end{TerminalWin}
-
-\begin{TerminalUnix}[largeur]{titre=...}[options tcbox]
-...
-\end{TerminalUnix}
-
-\begin{TerminalOSX}[largeur]{titre=...}[options tcbox]
-...
-\end{TerminalOSX}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Peu d'options pour ces commandes :
-
-\begin{itemize}
- \item le premier, \textit{optionnel}, est la \Cle{largeur} de la \ctex{tcbox} ;\hfill{}défaut \Cle{\textbackslash linewidth}
- \item le deuxième, \textit{obligatoire}, permet de spécifier le titre par la clé \Cle{Titre}.\hfill{}défaut \Cle{Terminal Windows/UNiX/OSX}
- \item le troisième, \textit{optionnel}, concerne les \Cle{options} de la \ctex{tcbox} en \textit{langage tcolorbox}.\hfill{}défaut \Cle{vide}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-Le \textsf{code} n'est pas formaté, ni mis en coloration syntaxique.
-
-De ce fait tous les caractères sont autorisés : même si l'éditeur pourra détecter le \% comme le début d'un commentaire, tout sera intégré dans le code mis en forme !
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{TerminalUnix}[12cm]{Titre=Terminal Ubuntu}[center] %12cm, avec titre modifié et centré
-test@DESKTOP:~$ ping -c 2 ctan.org
-PING ctan.org (5.35.249.60) 56(84) bytes of data.
-\end{TerminalUnix}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{TerminalUnix}[12cm]{Titre=Terminal Ubuntu}[center]
-test@DESKTOP:~$ ping -c 2 ctan.org
-PING ctan.org (5.35.249.60) 56(84) bytes of data.
-\end{TerminalUnix}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{TerminalWin}[15cm]{} %largeur 15cm avec titre par défaut
-Microsoft Windows [version 10.0.22000.493]
-(c) Microsoft Corporation. Tous droits réservés.
-C:\Users\test>ping ctan.org
-
-Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données :
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=37 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=39 ms TTL=51
-
-Statistiques Ping pour 5.35.249.60:
-Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
-Durée approximative des boucles en millisecondes :
-Minimum = 35ms, Maximum = 39ms, Moyenne = 36ms
-\end{TerminalWin}
-
-\begin{TerminalOSX}[0.5\linewidth]{Titre=Terminal MacOSX}[flush right] %1/2-largeur et titre modifié et droite
-[test@server]$ ping -c 2 ctan.org
-PING ctan.org (5.35.249.60) 56(84) bytes of data.
-\end{TerminalOSX}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{TerminalWin}[15cm]{}
-Microsoft Windows [version 10.0.22000.493]
-(c) Microsoft Corporation. Tous droits réservés.
-C:\Users\test>ping ctan.org
-
-Envoi d'une requête 'ping' sur ctan.org [5.35.249.60] avec 32 octets de données :
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=37 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=35 ms TTL=51
-Réponse de 5.35.249.60 : octets=32 temps=39 ms TTL=51
-
-Statistiques Ping pour 5.35.249.60:
-Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
-Durée approximative des boucles en millisecondes :
-Minimum = 35ms, Maximum = 39ms, Moyenne = 36ms
-\end{TerminalWin}
-
-\begin{TerminalUnix}[12cm]{Titre=Terminal Ubuntu}[center]
-test@DESKTOP:~$ ping -c 2 ctan.org
-PING ctan.org (5.35.249.60) 56(84) bytes of data.
-\end{TerminalUnix}
-
-\begin{TerminalOSX}[0.5\linewidth]{Titre=Terminal MacOSX}[flush right]
-[test@server]$ ping -c 2 ctan.org
-PING ctan.org (5.35.249.60) 56(84) bytes of data.
-\end{TerminalOSX}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Cartouche Capytale}\label{capytale}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée est d'obtenir des \textsf{cartouches} tels que \textsf{Capytale} les présente, pour partager un code afin d'accéder à une activité \textsf{Python}.
-\end{tipblock}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-\CartoucheCapytale(*)[options]{code capytale}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Peu d'options pour ces commandes :
-
-\begin{itemize}
- \item la version \textit{étoilée} qui permet de passer de la police \Cle{sffamily} à la police \Cle{ttfamily}, et donc dépendante des fontes du document ;
- \item le deuxième, \textit{optionnel}, permet de rajouter des caractères après le code (comme un \textsf{espace}) ;
-
- \hfill{}défaut \Cle{vide}
- \item le troisième, \textit{obligatoire}, est le \textsf{code capytale} à afficher.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\CartoucheCapytale{abcd-12345} %lien simple, en sf
-
-\CartoucheCapytale[~]{abcd-12345} %lien avec ~ à la fin, en sf
-
-\CartoucheCapytale*{abcd-12345} %lien simple, en tt
-
-\CartoucheCapytale*[~]{abcd-12345} %lien avec ~ à la fin, en tt
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\CartoucheCapytale{abcd-12345}
-
-\CartoucheCapytale[~]{abcd-12345}
-
-\CartoucheCapytale*{abcd-12345}
-
-\CartoucheCapytale*[~]{abcd-12345}
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-Le \textsf{cartouche} peut être \og cliquable \fg{} grâce à \ctex{href}.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\usepackage{hyperref}
-\urlstyle{same}
-...
-\href{https://capytale2.ac-paris.fr/web/c/abcd-12345}{\CartoucheCapytale{abcd-12345}}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\href{https://capytale2.ac-paris.fr/web/c/abcd-12345}{\CartoucheCapytale{abcd-12345}}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Présentation de code \LaTeX}\label{prescode}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-\cmaj{2.0.6} L'idée est de proposer un environnement pour présenter du code \LaTeX. Ce n'est pas forcément lié à l'enseignement en Lycée mais pourquoi pas !
-
-\smallskip
-
-Il s'agir d'un environnement créé en \ctex{tcolorbox}, et utilisant la présentation \textit{basique} de code via \ctex{listings}.
-\end{tipblock}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{PresentationCode}[Couleur]{options tcbox}
-...
-\end{PresentationCode}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Peu de personnalisations pour ces commandes :
-
-\begin{itemize}
- \item le premier argument, \textit{optionnel}, permet de préciser la \textit{couleur} de la présentation ;\hfill{}défaut \Cle{CouleurVertForet}
- \item le second, \textit{obligatoire}, correspond aux éventuelles options liées à la \ctex{tcolorbox}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-Il est à noter que, même dans le cas d'option vide pour la \ctex{tcolorbox}, les \ctex{\{\}} sont nécessaires.
-
-\smallskip
-
-On peut par exemple utiliser l'option \Cle{listing only} pour ne présenter \textit{que} le code source.
-\end{noteblock}
-
-\begin{PresCodePL}{}
-\begin{PresentationCode}{}
-\xdef\ValAleaA{\fpeval{randint(1,100)}}
-\xdef\ValAleaB{\fpeval{randint(1,100)}}
-
-Avec $A=\ValAleaA$ et $B=\ValAleaB$, on a $A\times B=\inteval{\ValAleaA * \ValAleaB}$.
-\end{PresentationCode}
-
-\begin{PresentationCode}[blue]{}
-On peut faire beaucoup de choses avec \LaTeX{} !
-\end{PresentationCode}
-\end{PresCodePL}
+\input{ProfLycee-doc-prescodes.tex}
\pagebreak
@@ -3926,405 +413,7 @@ On peut faire beaucoup de choses avec \LaTeX{} !
\newpage
-\part{Outils pour la géométrie}
-
-\section{Pavé droit \og simple \fg}\label{pave}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée est d'obtenir un pavé droit, dans un environnement \TikZ, avec les nœuds créés et nommés directement pour utilisation ultérieure.
-\end{tipblock}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[options tikz]
- \PaveTikz[options]
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item \Cle{Largeur} : largeur du pavé ;\hfill{}défaut \Cle{2}
- \item \Cle{Profondeur} : profondeur du pavé ;\hfill{}défaut \Cle{1}
- \item \Cle{Hauteur} : hauteur du pavé ;\hfill{}défaut \Cle{1.25}
- \item \Cle{Angle} : angle de fuite de la perspective ;\hfill{}défaut \Cle{30}
- \item \Cle{Fuite} : coefficient de fuite de la perspective ;\hfill{}défaut \Cle{0.5}
- \item \Cle{Sommets} : liste des sommets (avec délimiteur § !) ;\hfill{}défaut \Cle{A§B§C§D§E§F§G§H}
- \item \Cle{Math} : booléen pour forcer le mode math des sommets ;\hfill{}défaut \Cle{false}
- \item \Cle{Epaisseur} : épaisseur des arêtes (en \textit{langage simplifié} \TikZ) ;\hfill{}défaut \Cle{thick}
- \item \Cle{Aff} : booléen pour afficher les noms des sommets ;\hfill{}défaut \Cle{false}
- \item \Cle{Plein} : booléen pour ne pas afficher les arêtes \textit{invisibles} ;\hfill{}défaut \Cle{false}
- \item \Cle{Cube} : booléen pour préciser qu'il s'agit d'un cube (seule la valeur \Cle{Largeur} est util(isé)e).
-
- \hfill{}défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\PaveTikz
-\end{PresCodePL}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\PaveTikz[Cube,Largeur=2]
-\end{PresCodePL}
-
-\begin{noteblock}
-La ligne est de ce fait à insérer dans un environnement \TikZ, avec les options au choix pour cet environnement.
-
-Le code crée les nœuds relatifs aux sommets, et les nomme comme les sommets, ce qui permet de les réutiliser pour éventuellement compléter la figure !
-\end{noteblock}
-
-\subsection{Influence des paramètres}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[line join=bevel]
- \PaveTikz[Aff,Largeur=4,Profondeur=3,Hauteur=2,Epaisseur={ultra thick}]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tikzpicture}[line join=bevel]
- \PaveTikz[Aff,Largeur=4,Profondeur=3,Hauteur=2,Epaisseur={ultra thick}]
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
- \begin{tikzpicture}[line join=bevel]
- \PaveTikz[Plein,Aff,Largeur=7,Profondeur=3.5,Hauteur=4,Sommets=Q§S§D§F§G§H§J§K]
- \draw[thick,red,densely dotted] (G)--(J) ;
- \draw[thick,blue,densely dotted] (K)--(H) ;
- \end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}[line join=bevel]
- \PaveTikz[Plein,Aff,Largeur=7,Profondeur=3.5,Hauteur=4,Sommets=Q§S§D§F§G§H§J§K]
- \draw[thick,red,densely dotted] (G)--(J) ;
- \draw[thick,blue,densely dotted] (K)--(H) ;
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Tétraèdre \og simple \fg}\label{tetra}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée est d'obtenir un tétraèdre, dans un environnement \TikZ, avec les nœuds créés et nommés directement pour utilisation ultérieure.
-\end{tipblock}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[options tikz]
- \TetraedreTikz[options]
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item \Cle{Largeur} : \textit{largeur} du tétraèdre ;\hfill{}défaut \Cle{4}
- \item \Cle{Profondeur} : \textit{profondeur} du tétraèdre ;\hfill{}défaut \Cle{1.25}
- \item \Cle{Hauteur} : \textit{hauteur} du tétraèdre ;\hfill{}défaut \Cle{3}
- \item \Cle{Alpha} : angle \textit{du sommet de devant} ;\hfill{}défaut \Cle{40}
- \item \Cle{Beta} : angle \textit{du sommet du haut} ;\hfill{}défaut \Cle{60}
- \item \Cle{Sommets} : liste des sommets (avec délimiteur § !) ;\hfill{}défaut \Cle{A§B§C§D}
- \item \Cle{Math} : booléen pour forcer le mode math des sommets ;\hfill{}défaut \Cle{false}
- \item \Cle{Epaisseur} : épaisseur des arêtes (en \textit{langage simplifié} \TikZ) ;\hfill{}défaut \Cle{thick}
- \item \Cle{Aff} : booléen pour afficher les noms des sommets ;\hfill{}défaut \Cle{false}
- \item \Cle{Plein} : booléen pour ne pas afficher l'arête \textit{invisible} .\hfill{}défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\TetraedreTikz
-\end{PresCodePL}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\TetraedreTikz[Aff,Largeur=2,Profondeur=0.625,Hauteur=1.5]
-\end{PresCodePL}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\TetraedreTikz[Plein,Aff,Largeur=5,Beta=60]
-\end{PresCodePL}
-
-\subsection{Influence des paramètres}
-
-\begin{noteblock}
-Pour \textit{illustrer} un peu les \Cle{clés}, un petit schéma, avec les différents paramètres utiles.
-
-\begin{center}
- \begin{tikzpicture}[x=1.25cm,y=1.25cm,line width=1pt,line join=bevel]
- \TetraedreTikz[Largeur=5,Profondeur=1.95,Hauteur=2.75,Alpha=45,Beta=70]
- \draw[draw=none] (A)--(C) node[midway,sloped,above,font=\small\sffamily,BleuCadet] {Largeur} ;
- \draw[draw=none] (A)--(B) node[midway,sloped,below,font=\small\sffamily,BleuCadet] {Profondeur} ;
- \draw[draw=none] (A)--(D) node[midway,sloped,above,font=\small\sffamily,BleuCadet] {Hauteur} ;
- \draw[purple] (0.5,0) arc (0:-45:0.5) ;
- \draw (-22.5:0.5) node[purple,right] {$\alpha$} ;
- \draw[orange] (0.75,0) arc (0:70:0.75) ;
- \draw (35:0.75) node[orange,right] {$\beta$} ;
- \end{tikzpicture}
-\end{center}
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
- \begin{tikzpicture}[line join=bevel]
- \TetraedreTikz[Aff,Largeur=7,Profondeur=3,Hauteur=5,Epaisseur={ultra thick},Alpha=20,Beta=30]
- \draw[very thick,CouleurVertForet,<->,>=latex] ($(A)!0.5!(D)$)--($(B)!0.5!(D)$) ;
- \end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}[line join=bevel]
- \TetraedreTikz[Aff,Largeur=7,Profondeur=3,Hauteur=5,Epaisseur={ultra thick},Alpha=20,Beta=30]
- \draw[very thick,CouleurVertForet,<->,>=latex] ($(A)!0.5!(D)$)--($(B)!0.5!(D)$) ;
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Cercle trigo}\label{cercletrigo}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est d'obtenir une commande pour tracer (en \TikZ) un cercle trigonométrique, avec personnalisation des affichages.
-
-\smallskip
-
-Comme pour les autres commandes \TikZ, l'idée est de laisser l'utilisateur définir et créer son environnement \TikZ, et d'insérer la commande \ctex{CercleTrigo} pour afficher le cercle.
-\end{tipblock}
-
-\begin{PresCodePL}{tikz lower}
-%code tikz
-\CercleTrigo
-\end{PresCodePL}
-
-\subsection{Commandes}
-
-\begin{PresCodeTexPL}{listing only}
-...
-\begin{tikzpicture}[options tikz]
- ...
- \CercleTrigo[clés]
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Plusieurs \Cle{Clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{Rayon} qui définit le rayon du cercle ;\hfill{}défaut \Cle{3}
- \item la clé \Cle{Epaisseur} qui donne l'épaisseur des traits de base ;\hfill{}défaut \Cle{thick}
- \item la clé \Cle{Marge} qui est l'\textit{écartement} de axes ;\hfill{}défaut \Cle{0.25}
- \item la clé \Cle{TailleValeurs} qui est la taille des valeurs remarquables ;\hfill{}défaut \Cle{scriptsize}
- \item la clé \Cle{TailleAngles} qui est la taille des angles ;\hfill{}défaut \Cle{footnotesize}
- \item la clé \Cle{CouleurFond} qui correspond à la couleur de fond des labels ;\hfill{}défaut \Cle{white}
- \item la clé \Cle{Decal} qui correspond au décalage des labels par rapport au cercle ;\hfill{}défaut \Cle{10pt}
- \item un booléen \Cle{MoinsPi} qui bascule les angles \og -pipi \fg{} à \og zerodeuxpi \fg{} ;\hfill{}défaut \Cle{true}
- \item un booléen \Cle{AffAngles} qui permet d'afficher les angles ;\hfill{}défaut \Cle{true}
- \item un booléen \Cle{AffTraits} qui permet d'afficher les \textit{traits de construction} ;\hfill{}défaut \Cle{true}
- \item un booléen \Cle{AffValeurs} qui permet d'afficher les valeurs remarquables.\hfill{}défaut \Cle{true}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\pagebreak
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
- \begin{tikzpicture}[line join=bevel]
- \CercleTrigo[Rayon=2.5,AffValeurs=false,Decal=8pt]
- \end{tikzpicture}
- ~~~~
- \begin{tikzpicture}[line join=bevel]
- \CercleTrigo[Rayon=2.5,AffAngles=false]
- \end{tikzpicture}
- ~~~~
- \begin{tikzpicture}[line join=bevel]
- \CercleTrigo[Rayon=2.5,MoinsPi=false,CouleurFond=orange!15]
- \end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}[line join=bevel]
- \CercleTrigo[Rayon=2.5,AffValeurs=false,Decal=8pt]
- \end{tikzpicture}
- ~~~~
- \begin{tikzpicture}[line join=bevel]
- \CercleTrigo[Rayon=2.5,AffAngles=false]
- \end{tikzpicture}
- ~~~~
- \begin{tikzpicture}[line join=bevel]
- \CercleTrigo[Rayon=2.5,MoinsPi=false,CouleurFond=orange!15,TailleValeurs=\tiny]
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\subsection{Équations trigos}
-
-\begin{noteblock}
-En plus des \Cle{Clés} précédentes, il existe un complément pour \textit{visualiser} des solutions d'équations simples du type $\cos(x)=\ldots$ ou $\sin(x)=\ldots$.
-\end{noteblock}
-
-\begin{cautionblock}
-Les \Cle{Clés} pour cette possibilité sont :
-
-\begin{itemize}
- \item un booléen \Cle{Equationcos} pour \textit{activer} \og $\cos=$ \fg; \hfill{}défaut \Cle{false}
- \item un booléen \Cle{Equationsin} pour \textit{activer} \og $\sin=$ \fg;\hfill{}défaut \Cle{false}
- \item la clé \Cle{sin} qui est la valeur de l'angle (en degrés) du sin ;\hfill{}défaut \Cle{30}
- \item la clé \Cle{cos} qui est la valeur de l'angle (en degrés) cos ;\hfill{}défaut \Cle{45}
- \item \cmaj{2.6.2} un booléen \Cle{AffTraitsEq} qui permet d'afficher les \textit{traits de construction secondaires} pour les équations ;
-
- \hfill{}défaut \Cle{true}
- \item la clé \Cle{CouleurSol} qui est la couleur des \textit{solutions}.\hfill{}défaut \Cle{blue}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{center}
- \begin{tikzpicture}
- \CercleTrigo[%
- AffAngles=false,AffValeurs=false,Rayon=2,Equationsin,sin=-30, CouleurSol=red]
- \end{tikzpicture}
- \begin{tikzpicture}
- \CercleTrigo[%
- AffAngles=false,AffValeurs=false,AffTraits=false,Rayon=2,Equationcos,cos=135, CouleurSol=orange]
- \end{tikzpicture}
- \begin{tikzpicture}
- \CercleTrigo[%
- AffAngles=false,AffValeurs=false,AffTraits=false,AffTraitsEq=false,Rayon=2, Equationcos,cos=126,CouleurSol=violet]
- \end{tikzpicture}
- \begin{tikzpicture}
- \CercleTrigo[%
- AffTraits=false,AffAngles=false,Rayon=2.5,Equationcos,cos=60,CouleurSol=purple, TailleValeurs=\tiny]
- \end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}
- \CercleTrigo[%
- AffAngles=false,AffValeurs=false,AffTraits=false,Rayon=2,Equationsin,sin=-30,CouleurSol=red]
- \end{tikzpicture}
- ~~~~
- \begin{tikzpicture}
- \CercleTrigo[%
- AffAngles=false,AffValeurs=false,AffTraits=false,Rayon=2,Equationcos,cos=135,CouleurSol=orange]
- \end{tikzpicture}
- ~~~~
- \begin{tikzpicture}
- \CercleTrigo[%
- AffAngles=false,AffValeurs=false,AffTraits=false,AffTraitsEq=false,Rayon=2, Equationcos,cos=126,CouleurSol=violet]
- \end{tikzpicture}
-
- \medskip
-
- \begin{tikzpicture}
- \CercleTrigo[%
- AffTraits=false,AffAngles=false,Rayon=2.5,Equationcos,cos=60,CouleurSol=purple,TailleValeurs=\tiny]
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-%\newpage
-%
-%\section{Style \og main levée \fg{} en \TikZ}\label{mainlevee}
-%
-%\subsection{Idée}
-%
-%\begin{tipblock}
-%L'idée est de \textit{proposer} un style \textit{tout prêt} pour simuler un tracé, en \TikZ, à \og main levée \fg.
-%
-%Il s'agit d'un style \textit{basique} utilisant la librairie \ctex{decorations} avec \textsf{random steps}.
-%\end{tipblock}
-%
-%\begin{PresCodeTexPL}{listing only}
-%\tikzset{%
-% mainlevee/.style args={#1et#2}{decorate,decoration={random steps, segment length=#1,amplitude=#2}},
-% mainlevee/.default={5mm et 0.6pt}
-%}
-%\end{PresCodeTexPL}
-%
-%\subsection{Utilisation basique}
-%
-%\begin{noteblock}
-%Il s'agit ni plus ni moins d'un style \TikZ{} à intégrer dans les tracés et constructions \TikZ !
-%\end{noteblock}
-%
-%\begin{cautionblock}
-%Concernant le style en lui-même, deux paramètres peuvent être précisés via \Cle{mainlevee=\#1 et \#2} :
-%
-%\begin{itemize}
-% \item \Cle{\#1} correspond à l'option \textsf{segment length} (longueur des segments \textit{types}) ;\hfill{}défaut \Cle{5mm}
-% \item \Cle{\#2} correspond à l'option \textsf{amplitude} (amplitude maximale de la \textit{déformation}).\hfill{}défaut \Cle{0.6pt}
-%\end{itemize}
-%
-%Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -- satisfaisants, mais l'utilisateur pourra modifier à loisir ces paramètres !
-%\end{cautionblock}
-%
-%\begin{PresCodeTexPL}{listing only}
-%%la grille a été rajoutée pour la sortie
-%\begin{tikzpicture}
-% \draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-%\end{tikzpicture}
-%
-%\begin{tikzpicture}
-% \draw[thick,mainlevee=5mm et 2pt] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-%\end{tikzpicture}
-%
-%\begin{tikzpicture}
-% \draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-%\end{tikzpicture}
-%\end{PresCodeTexPL}
-%
-%\begin{PresCodeSortiePL}{text only}
-%\hfill~\begin{tikzpicture}
-% \draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
-% \draw[thick,mainlevee] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-%\end{tikzpicture}
-%\hspace{1cm}
-%\begin{tikzpicture}
-% \draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
-% \draw[thick,mainlevee=5mm et 2pt] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-%\end{tikzpicture}
-%\hspace{1cm}
-%\begin{tikzpicture}
-% \draw[xstep=0.5,ystep=0.5,ultra thin,lightgray] (0,0) grid (4,4);
-% \draw[thick,mainlevee=10mm et 3mm] (0,0) --++ (4,0) --++ (0,4) --++ (-4,0) --cycle ;
-%\end{tikzpicture}
-%\hfill~
-%\end{PresCodeSortiePL}
+\input{ProfLycee-doc-outilsgeom.tex}
\pagebreak
@@ -4338,497 +427,7 @@ Les \Cle{Clés} pour cette possibilité sont :
\newpage
-\part{Outils pour la géométrie analytique}
-
-\section{Conseils d'utilisation}
-
-\begin{warningblock}
-\cmaj{2.6.5} Il est conseillé d'utiliser \hologo{LuaLaTeX} pour les commandes (vectorielles) de géométrie analytique, même s'il est toutefois possible d'utiliser \hologo{pdfLaTeX}.
-
-\smallskip
-
-Il est possible que les simplifications demandées (coefficients entiers, ou premiers entre eux) ne donnent pas entière satisfaction, donc prudence sur l'utilisation de celles-ci (ce sont des tests et retours de \textit{bugs} qui montreront les limites des commandes).
-\end{warningblock}
-
-\section{Affichage de coordonnées}\label{affcoord}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.6.4} L'idée est de proposer des commandes pour simplifier la saisie de coordonnées de vecteurs ou de points (plan ou espace), en saisissant les coordonnées \textit{en ligne}.
-
-\smallskip
-
-À noter que les calculs et résultats sont traités par la commande de \textit{conversion de fraction} de \ctex{ProfLycee}.
-\end{tipblock}
-
-\begin{warningblock}
-Logiquement les commandes (à insérer dans un environnement mathématique) doivent donner des résultats satisfaisants pour tout ce qui est \textit{rationnel}, mais cela ne sera pas pertinent dans le cas de coordonnées irrationnelles\ldots
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Affichage des coordonnées d'un point (2 ou 3 coordonnées)
-\AffPoint[options de formatage](liste des coordonnées)
-
-%Affichage des coordonnées d'un vecteur (2 ou 3 coordonnées)
-\AffVecteur[options de formatage]<options nicematrix>(liste des coordonnées)
-\end{PresCodeTexPL}
-
-\begin{warningblock}
-Dans cette partie liée à la géométrie analytique, j'ai choisi de saisir les arguments (coordonnées) via les délimiteurs \ctex{(...)} :
-
-\begin{itemize}
- \item avec le séparateur \ctex{,} pour les points ;
- \item avec le séparateur \ctex{;}.
-\end{itemize}
-
-De ce fait, le code \textit{sait} s'il est face à un point ou à un vecteur, et adapte sa méthode de calcul en conséquence !
-\end{warningblock}
-
-\subsection{Options et arguments}
-
-\begin{cautionblock}
-Concernant les arguments des commandes :
-
-\begin{itemize}
- \item le premier argument, optionnel et entre \ctex{[...]} permet de spécifier la ou les caractéristiques de formatage des coordonnées, de manière globale ou individuelle, et de manière cohérente avec les options disponibles pour la commande de \textit{conversion en fraction} de \ctex{ProfLycee} :
- \begin{itemize}
- \item \Cle{d} : pour un formatage en \ctex{dfrac} si nécessaire ;
- \item \Cle{t} : pour un formatage en \ctex{tfrac} si nécessaire ;
- \item \Cle{n} : pour un formatage en \ctex{nicefrac} si nécessaire ;
- \item \Cle{dec} : pour la forme décimale (brute) ;
- \item \Cle{dec=k} : pour la forme décimale à $10^{-k}$.
- \end{itemize}
- Il est possible de spécifier des formatages différents en utilisant une \textit{liste} sous la forme :
- \begin{itemize}
- \item \Cle{f1,f2} ou \Cle{f1,f2,f3} pour les points ;
- \item \Cle{f1;f2} ou \Cle{f1;f2;f3} ;
- \end{itemize}
- \item l'argument \textit{optionnel} et entre \ctex{<...>} (uniquement pour les vecteurs !) permet de spécifier des options de type \textit{nicematrix} ;
- \item l'argument obligatoire, et entre \ctex{\{...\}} est quant à lui la liste des coordonnées, en ligne et au format \textit{naturel xint}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-Il est donc possible de mettre des \textit{calculs} dans l'argument des coordonnées.
-
-Il suffit \textit{juste} d'utiliser une syntaxe compréhensible par les commandes du package \ctex{xint}.
-\end{noteblock}
-
-\begin{PresCodePL}{}
-%Point, avec affichage classique en dfrac
-$\AffPoint(1,2/3)$ \\
-%Point, avec affichage en décimal + dfrac + dfrac
-$\AffPoint[dec,d,d](-0.5,1,2/3)$ \\
-%Vecteurs, avec affichages classiques
-$\AffVecteur(1;2)$ et $\AffVecteur(1;2;3)$ \\
-%Vecteurs, avec option nicematrix et affichage en décimal + tfrac
-$\AffVecteur[dec;t]<cell-space-limits=2pt>(0.5;2/3)$ \\
-%Vecteurs, avec option nicematrix et affichage en décimal
-$\AffVecteur[dec]<cell-space-limits=2pt>(0.5;0.6;0.75)$ \\
-%Vecteurs, avec cacluls et affichage classique
-$\AffVecteur((2-(-3));(5-6);(1-1))$
-\end{PresCodePL}
-
-\newpage
-
-\section{Équation cartésienne d'un plan de l'espace}\label{eqcartplan}
-
-\subsection{Idée et commande}
-
-\begin{tipblock}
-\cmaj{2.6.4} L'idée est de proposer une commande pour déterminer une équation cartésienne d'un plan dans l'un des cas suivants :
-
-\begin{itemize}
- \item en donnant un vecteur normal et un point ;
- \item en donnant deux vecteurs directeurs et un point ;
- \item en donnant trois points.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Avec un vecteur normal et un point
-\TrouveEqCartPlan[clés](vecteur normal)(point)
-%Avec deux vecteurs directeurs et un point
-\TrouveEqCartPlan[clés](vecteur dir1)(vecteur dir2)(point)
-%Avec trois points
-\TrouveEqCartPlan[clés](point1)(point2)(point3)
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Concernant les arguments des commandes :
-
-\begin{itemize}
- \item le premier argument, optionnel et entre \ctex{[...]} contient les clés :
- \begin{itemize}
- \item \Cle{OptionCoeffs} pour spécifier un formatage \textit{global} des coefficients ; \hfill{}défaut : \Cle{d}
- \item \Cle{SimplifCoeffs} pour forcer des coefficients simples (entiers et premiers entre eux) ;
-
- \hfill{}défaut : \Cle{false}
- \item \Cle{Facteur} pour spécifier un facteur personnalisé aux simplifications. \hfill{}défaut : \Cle{1}
- \end{itemize}
- \item les arguments suivants, entre \ctex{(...)} correspondent aux données utilisées (entre 2 et 3).
-\end{itemize}
-
-À noter que les séparateurs \ctex{,} ou \ctex{;} permettent de spécifier point ou vecteur.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-Une équation cartésienne du plan $\mathcal{P}$ de vecteur normal $\vec{n} \AffVecteur(1;2;3)$ et passant par le point A de coordonnées $\AffPoint(4,5,6)$ est $\mathcal{P}$ : $\TrouveEqCartPlan(1;2;3)(4,5,6)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation cartésienne du plan $\mathcal{P}$ de vecteur normal $\vec{n} \AffVecteur[n](1/2;2/3;3/5)$ et passant par le point A de coordonnées $\AffPoint(4,5,6)$ est $\mathcal{P}$ : $\TrouveEqCartPlan(1/2;2/3;3/5)(4,5,6) \Leftrightarrow \TrouveEqCartPlan[SimplifCoeffs](1/2;2/3;3/5)(4,5,6)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation cartésienne du plan $\mathcal{P}$ de vecteur normal $\vec{n} \AffVecteur[n](1;2/3;0)$ et passant par le point A de coordonnées $\AffPoint[dec,dec,d](0.75,0.56,1/3)$ est $\mathcal{P}$ : $\TrouveEqCartPlan(1;2/3;0)(0.75,0.56,1/3) \Leftrightarrow \TrouveEqCartPlan[SimplifCoeffs](1;2/3;0)(0.75,0.56,1/3)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation cartésienne du plan $\mathcal{P}_3$ passant par les points $A\AffPoint(2,0,1)$, $B\AffPoint(3,1,1)$ et $C\AffPoint(1,-2,0)$ est
-\[ \mathcal{P}_3 \text{ : } \TrouveEqCartPlan(2,0,1)(3,1,1)(1,-2,0)\]
-\end{PresCodePL}
-
-
-
-\begin{PresCodePL}{}
-Une équation cartésienne du plan $\mathcal{R}$ passant par le points $A\AffPoint(0,0,1)$, $B\AffPoint(4,2,3)$ et $C\AffPoint(-3,1,1)$ est
-\[ \mathcal{R} \text{ : } \TrouveEqCartPlan[SimplifCoeffs](0,0,1)(4,2,3)(-3,1,1)\]
-\[ \mathcal{R} \text{ : } \TrouveEqCartPlan[SimplifCoeffs,Facteur=-1](0,0,1)(4,2,3)(-3,1,1)\]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation cartésienne du plan $\mathcal{P}_0$ dirigé par les vecteurs $\AffVecteur(9;7;-8)$ et $\AffVecteur(-2;2;-1)$ et passant par le point $A\AffPoint(5,1,-1)$ est :
-\[ \mathcal{P}_0 \text{ : } \TrouveEqCartPlan[SimplifCoeffs](9;7;-8)(-2;2;-1)(5,1,-1)\]
-\end{PresCodePL}
-
-\newpage
-
-\section{Équation paramétrique d'une droite de l'espace}\label{eqparamdroite}
-
-\subsection{Idée et commande}
-
-\begin{tipblock}
-\cmaj{2.6.4} L'idée est de proposer une commande pour déterminer un système d'équations paramétriques d'une droite de l'espace dans l'un des cas suivants :
-
-\begin{itemize}
- \item en donnant un vecteur directeur et un point ;
- \item en donnant deux points.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Avec un vecteur directeur et un point
-\TrouveEqParamDroite[clés](vecteur directeur)(point)
-%Avec deux points
-\TrouveEqParamDroite[clés](point1)(point2)
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Concernant les arguments des commandes :
-
-\begin{itemize}
- \item le premier argument, optionnel et entre \ctex{[...]} contient les clés :
- \begin{itemize}
- \item \Cle{OptionCoeffs} pour spécifier un formatage \textit{global} des coefficients ; \hfill{}défaut : \Cle{d}
- \item \Cle{Reel} pour coder le paramètre réel ; \hfill{}défaut : \Cle{k}
- \item le booléen \Cle{Oppose} pour utiliser plutôt l'opposé du vecteur directeur ; \hfill{}défaut : \Cle{false}
- \item le booléen \Cle{Rgras} pour utiliser le symbole \textbf{R} ou lieu de $\mathbb{R}$ (si \ctex{amsfonts} est chargé !).
-
- \hfill{}défaut : \Cle{false}
- \end{itemize}
- \item les arguments suivants, entre \ctex{(...)} correspondent aux données utilisées.
-\end{itemize}
-
-À noter que les séparateurs \ctex{,} ou \ctex{;} permettent de spécifier point ou vecteur.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-Une équation paramétrique de la droite $(d)$ dirigée par le vecteur $\vec{u}\AffVecteur(2;5;-4)$ et passant par $A\AffPoint(-1,-1,-1)$ est
-\[ \TrouveEqParamDroite(2;5;-4)(-1,-1,-1) \]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation paramétrique de la droite $(d)$ passant par $\AffPoint(2,5,-4)$ et $\AffPoint(-1,-1,-1)$ est
-\[ \TrouveEqParamDroite[Oppose](2,5,-4)(-1,-1,-1) \text{ ou } \TrouveEqParamDroite(2,5,-4)(-1,-1,-1) \]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation paramétrique de la droite $(d)$ dirigée par le vecteur $\vec{u}\AffVecteur(0;-1;3)$ et passant par $O\AffPoint(0,0,0)$ est
-\[ \TrouveEqParamDroite(0;-1;3)(0,0,0) \]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation paramétrique de la droite $(d)$ dirigée par le vecteur $\vec{u}\AffVecteur(-1;2;3)$ et passant par $A\AffPoint(2,0,-3)$ est
-\[ \TrouveEqParamDroite[Reel=\ell,Rgras](-1;2;3)(2,0,-3) \]
-\end{PresCodePL}
-
-\newpage
-
-\section{Équation cartésienne d'une droite du plan}\label{eqcartdroite}
-
-\subsection{Idée et commande}
-
-\begin{tipblock}
-\cmaj{2.6.4} L'idée est de proposer une commande pour déterminer une équation cartésienne d'une droite du plan dans l'un des cas suivants :
-
-\begin{itemize}
- \item en donnant un vecteur directeur et un point ;
- \item en donnant un vecteur normal et un point ;
- \item en donnant deux points.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Avec un vecteur normal (choix par défaut) et un point
-\TrouveEqCartDroite[clés](vecteur normal)(point)
-%Avec un vecteur directeur et un point
-\TrouveEqCartDroite[clés,VectDirecteur](vecteur directeur)(point1)
-%Avec deux points
-\TrouveEqCartDroite[clés](point1)(point2)
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Concernant les arguments des commandes :
-
-\begin{itemize}
- \item le premier argument, optionnel et entre \ctex{[...]} contient les clés :
- \begin{itemize}
- \item \Cle{OptionCoeffs} pour spécifier un formatage \textit{global} des coefficients ; \hfill{}défaut : \Cle{d}
- \item le booléen \Cle{SimplifCoeffs} pour forcer des coeffs simples (entiers et premiers entre eux) ;
-
- \hfill{}défaut : \Cle{false}
- \item \Cle{Facteur} pour spécifier un facteur personnalisé aux simplifications ; \hfill{}défaut : \Cle{1}
- \item le booléen \Cle{VectDirecteur} pour pour préciser que le vecteur utilisé est directeur.\hfill{}défaut : \Cle{false}
- \end{itemize}
- \item les arguments suivants, entre \ctex{(...)} correspondent aux données utilisées.
-\end{itemize}
-
-À noter que les séparateurs \ctex{,} ou \ctex{;} permettent de spécifier point ou vecteur.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-Une équation cartésienne de la droite $\mathcal{D}$ de vecteur normal $\vec{n} \AffVecteur(1;2)$ et passant par le point A de coordonnées $\AffPoint(4,5)$ est $\mathcal{D}$ : $\TrouveEqCartDroite[VectNormal](1;2)(4,5)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation cartésienne de la droite $\mathcal{D}$ de vecteur directeur $\vec{u} \AffVecteur[n](1/2;2/3)$ et passant par le point A de coordonnées $\AffPoint(5,6)$ est $\mathcal{D}$ : $\TrouveEqCartDroite[VectDirecteur](1/2;2/3)(5,6) \Leftrightarrow \TrouveEqCartDroite[SimplifCoeffs,VectDirecteur](1/2;2/3)(5,6) \Leftrightarrow \TrouveEqCartDroite[SimplifCoeffs,VectDirecteur,Facteur=-1](1/2;2/3)(5,6)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une équation cartésienne de la droite $\mathcal{D}$ passant par les points $\AffPoint(2,4)$ et $\AffPoint(-4,2)$ est \[\mathcal{D} \text{ : } \TrouveEqCartDroite(2,4)(-4,2) \Leftrightarrow \TrouveEqCartDroite[SimplifCoeffs](2,4)(-4,2)\]
-\end{PresCodePL}
-
-\newpage
-
-\section{Norme d'un vecteur, distance entre deux points}\label{normevect}
-
-\subsection{Idée et commande}
-
-\begin{tipblock}
-\cmaj{2.6.5} L'idée est de proposer une commande pour déterminer la distance entre deux points, ou la norme d'un vecteur :
-
-\begin{itemize}
- \item en donnant le vecteur ;
- \item en donnant deux points.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Avec le vecteur
-\TrouveNorme(vecteur)
-%Avec deux points
-\TrouveNorme(point 1)(point 2)
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-Le résultat étant souvent écrit à l'aide d'une racine carrée, le code se charge de simplifier le résultat sous la forme $\frac{a\sqrt{n}}{b}$.
-
-Dans le cas où les coordonnées ne seraient pas rationnelles, le résultat risque de ne pas être conforme à celui attendu.
-\end{noteblock}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Concernant les arguments de cette commande :
-
-\begin{itemize}
- \item les séparateurs \ctex{,} ou \ctex{;} permettent de spécifier point ou vecteur pour les arguments 1 et 2.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-La distance $AB$ avec $A\AffPoint(-5,2)$ et $B\AffPoint(4,-3)$ vaut
-$d =\displaystyle\TrouveNorme(-5,2)(4,-3)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-La distance $AB$ avec $A\AffPoint(2,1,2)$ et $B\AffPoint(-4,1,1)$ vaut
-$d =\displaystyle\TrouveNorme(2,1,2)(-4,1,1)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-La norme de $\AffVecteur(2;4)$ vaut
-$d =\displaystyle\TrouveNorme(2;4)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-La norme de $\AffVecteur[d;d;n](2;4;0.5)$ vaut
-$d =\displaystyle\TrouveNorme(2;4;0.5)$
-\end{PresCodePL}
-
-\newpage
-
-\section{Distance d'un point à un plan}\label{distptplan}
-
-\subsection{Idée et commande}
-
-\begin{tipblock}
-\cmaj{2.6.4} L'idée est de proposer une commande pour déterminer la distance d'un point à un plan :
-
-\begin{itemize}
- \item en donnant le point puis le plan défini par vecteur normal \&{} point ;
- \item en donnant le point puis le plan défini par une équation cartésienne.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Avec le point et le plan via vect normal + point
-\TrouveDistancePtPlan(point)(vec normal du plan)(point du plan)
-%Avec le point et le plan via vect normal + point
-\TrouveDistancePtPlan(point)(équation cartésienne)
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-Le résultat étant souvent écrit à l'aide d'une racine carrée, le code se charge de simplifier le résultat sous la forme $\frac{a\sqrt{n}}{b}$.
-
-Dans le cas où les coordonnées ne seraient pas rationnelles, le résultat risque de ne pas être conforme à celui attendu.
-\end{noteblock}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Concernant les arguments de cette commande :
-
-\begin{itemize}
- \item si on travaille avec une équation cartésienne, elle est à donner sous la forme \ctex{ax+by+cz=0} ou \ctex{ax+by+cz}
- \item les séparateurs \ctex{,} ou \ctex{;} permettent de spécifier point ou vecteur pour les arguments 1 et 3.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-La distance entre le point $\AffPoint(1,2,3)$ et le plan de vecteur normal $\AffVecteur(-1;-2;3)$ et passant par $\AffPoint(5,0,2)$ vaut
-\[ d = \displaystyle\TrouveDistancePtPlan(1,2,3)(-1;-2;3)(5,0,2) \]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-La distance entre le point $\AffPoint(1,2,3)$ et le plan d'équation $x+2y+2z-7=0$ vaut
-\[ d = \displaystyle\TrouveDistancePtPlan(1,2,3)(x+2y-2z+7) \]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-La distance entre le point $\AffPoint(-7,0,4)$ et le plan d'équation $0,5x+2y-z-1=0$ vaut
-\[ d = \displaystyle\TrouveDistancePtPlan(-7,0,4)(0.5x+2y-z-1=0) \]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-La distance entre le point $H\AffPoint(0,4,8)$ et le plan d'équation $-x+y+z-4=0$ vaut
-\[ d = \displaystyle\TrouveDistancePtPlan(0,4,8)(-x+y+z-4=0) \]
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-La distance entre le point $H\AffPoint(0,0,5)$ et le plan d'équation $z-1=0$ vaut
-\[ d = \displaystyle\TrouveDistancePtPlan(0,0,5)(z-1=0) \]
-\end{PresCodePL}
-
-\newpage
-
-\section{Équation réduite d'une droite du plan}\label{eqreduite}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.6.3} L'idée est de proposer une commande pour déterminer l'équation réduite d'une droite passant par deux points :
-\begin{itemize}
- \item en traitant les cas particuliers \textit{horizontale}, \textit{verticale} ;
- \item en affichant une méthode de résolution ;
- \item en travaillant sous forme exacte fractionnaire (les racines carrées ou autres ne seront pas gérés).
-\end{itemize}
-
-À noter que les calculs et résultats sont traités par la commande de \textit{conversion de fraction} de \ctex{ProfLycee}.
-\end{tipblock}
-
-\begin{warningblock}
-La commande se charge de formater (normalement !) correctement les différentes étapes de calculs (il se peut quand même que cela puisse ne pas donner le résultat réellement escompté\ldots) :
-
-\begin{itemize}
- \item en travaillant en fraction ;
- \item en mettant les parenthèses nécessaires devant les éventuels nombres négatifs ;
- \item en traitant les cas particuliers $m=\pm1$ et $b=0$.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\EquationReduite[option]{A/xa/ya,B/xb/yb}
-\end{PresCodeTexPL}
-
-\subsection{Clés et arguments}
-
-\begin{cautionblock}
-Concernant le fonctionnement de la commande :
-
-\begin{itemize}
- \item le premier argument, optionnel et entre \ctex{[...]} et valant \Cle{[d]} par défaut, permet de formater les fractions éventuelles en mode \ctex{\textbackslash displaystyle} ;
- \item le second argument, obligatoire et entre \ctex{\{...\}}, permet de donner les coordonnées des points concernés.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-\EquationReduite{C/2/0,D/-2/-8}
-\end{PresCodePL}
-
-\subsection{Exemples}
-
-\begin{PresCodePL}{}
-\EquationReduite{I/-4/5,J/-4/12}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\EquationReduite{U/-4/5,V/-4/5}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\EquationReduite{L/10/7,M/-2/7}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\EquationReduite{L/{1/3}/2.5,M/{-5/7}/{3/5}}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\EquationReduite{P/4/-4,Q/-2/2}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\EquationReduite{G/-4/5,H/10/4}
-\end{PresCodePL}
+\input{ProfLycee-doc-outilsgeomanalyt.tex}
\newpage
@@ -4842,1138 +441,7 @@ Concernant le fonctionnement de la commande :
\newpage
-\part{Outils pour les statistiques}
-
-\section{Paramètres d'une régression linéaire par la méthode des moindres carrés}\label{reglin}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est d'utiliser une commande qui va permettre de calculer les paramètres principaux d'un régression linéaire par la méthode des moindres carrés.
-
-Le package \ctex{pgfpots} permet de le faire nativement, mais le moteur de calculs de \textsf{pgf} peut poser souci avec de grandes valeurs, donc ici cela passe par \ctex{xfp} qui permet de \textit{gagner} en précision !
-
-\smallskip
-
-L'idée est que cette macro calcule et stocke les paramètres dans des variables (le nom peut être personnalisé !) pour exploitation ultérieure :
-
-\begin{itemize}
- \item en calculs \textit{purs} ;
- \item dans un environnement \TikZ{} via \textsf{pgfplots} ou bien en \textit{natif} ;
- \item dans un environnement \PSTricks{} ;
- \item dans un environnement \hologo{METAPOST} (à vérifier quand même) ;
- \item \ldots
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-...
-\CalculsRegLin[clés]{listeX}{listeY} %listes avec éléments séparés par des ,
-...
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-La commande \ctex{CalculsRegLin} va définir également des \textsf{macros} pour chaque coefficient, qui de ce fait seront réutilisables après !
-\end{noteblock}
-
-\subsection{Commandes}
-
-\begin{cautionblock}
-Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour \textit{renommer} les paramètres :
-
-\begin{itemize}
- \item la clé \Cle{NomCoeffa} qui permet de définir la variable qui contiendra $a$ ;\hfill{}défaut \Cle{COEFFa}
- \item la clé \Cle{NomCoeffb} qui permet de définir la variable qui contiendra $b$ ;\hfill{}défaut \Cle{COEFFb}
- \item la clé \Cle{NomCoeffr} qui permet de définir la variable qui contiendra $r$ ;\hfill{}défaut \Cle{COEFFr}
- \item la clé \Cle{NomCoeffrd} qui permet de définir la variable qui contiendra $r^2$ ;\hfill{}défaut \Cle{COEFFrd}
- \item la clé \Cle{NomXmin} qui permet de définir la variable qui contiendra $x_{\text{min}}$ ;\hfill{}défaut \Cle{LXmin}
- \item la clé \Cle{NomXmax} qui permet de définir la variable qui contiendra $x_{\text{max}}$.\hfill{}défaut \Cle{LXmax}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%les espaces verticaux n'ont pas été écrits ici
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%vérif des calculs (noms non modifiables...)
-Liste des X := \showitems\LX.
-Liste des Y := \showitems\LY.
-Somme des X := \LXSomme{} et somme des Y := \LYSomme.
-Moyenne des X := \LXmoy{} et moyenne des Y := \LYmoy.
-Variance des X := \LXvar{} et variance des Y := \LYvar{}
-Covariance des X/Y := \LXYvar.
-%les coefficients, avec des noms modifiables !
-Min des X := \LXmin{} et Max des X := \LXmax.
-Coefficient $a=\COEFFa$.
-Coefficient $b=\COEFFb$.
-Coefficient $r=\COEFFr$.
-Coefficient $r^2=\COEFFrd$.
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-Liste des X := \showitems\LX.
-
-\smallskip
-
-Liste des Y := \showitems\LY.
-
-\smallskip
-
-Somme des X := \LXSomme{} et somme des Y := \LYSomme.
-
-\smallskip
-
-Moyenne des X := \LXmoy{} et moyenne des Y := \LYmoy.
-
-\smallskip
-
-Variance des X := \LXvar{} et variance des Y := \LYvar{}
-
-\smallskip
-
-Covariance des X/Y := \LXYvar.
-
-\smallskip
-
-Min des X := \LXmin{} et Max des X := \LXmax.
-
-\smallskip
-
-Coefficient $a=\COEFFa$.\tabto{0.5\textwidth}Coefficient $b=\COEFFb$.
-
-%\smallskip
-%
-%Coefficient $b=\COEFFb$.
-
-\smallskip
-
-Coefficient $r=\COEFFr$.\tabto{0.5\textwidth}Coefficient $r^2=\COEFFrd$.
-
-%\smallskip
-%
-%Coefficient $r^2=\COEFFrd$.
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-stats_a}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_b}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_c}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_c2}\hfill~
-\end{noteblock}
-
-\begin{noteblock}
-Les \textsf{macros} qui contiennent les paramètres de la régression sont donc réutilisables, en tant que nombres réels, donc exploitables par \ctex{siunitx} et \ctex{xfp} pour affichage \textit{fin} ! Ci-dessous un exemple permettant de visualiser tout cela.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%les espaces verticaux n'ont pas été écrits ici
-\def\LstX{0,1,3,4,5,6}
-\def\LstY{-35,-37.4,-37.7,-39.9,-39,-39.6}
-%on lance les calculs et on change le nom des "macros-résultats"
-\CalculsRegLin[NomCoeffa=TESTa,NomCoeffb=TESTb,NomCoeffr=TESTr,NomCoeffrd=TESTrd,%
- NomXmin=TESTmin,NomXmax=TESTmax]{\LstX}{\LstY}
-%commandes complémentaires
-\DeclareDocumentCommand\arrond{ s O{3} m }{% * signe / précision / nb
- \IfBooleanTF{#1}{\num[print-implicit-plus]{\fpeval{round(#3,#2)}}} {\num{\fpeval{round(#3,#2)}}}
-}
-%paramètres
-Les valeurs extr. de X sont \TESTmin{} et \TESTmax. Une éq. est $y=\arrond[3]{\TESTa}x \arrond*[3]{\TESTb}$.
-Le coeff. de corrélation est $r=\arrond[4]{\TESTr}$, et son carré est $r^2=\arrond[4]{\TESTrd}$.
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LstX{0,1,3,4,5,6}\def\LstY{-35,-37.4,-37.7,-39.9,-39,-39.6}
-\CalculsRegLin[NomCoeffa=TESTa,NomCoeffb=TESTb,NomCoeffr=TESTr,NomCoeffrd=TESTrd,NomXmin=TESTmin,NomXmax=TESTmax]{\LstX}{\LstY}
-\DeclareDocumentCommand\arrond{ s O{3} m }{
- \IfBooleanTF{#1}{\num[print-implicit-plus]{\fpeval{ceil(#3,#2)}}}
- {\num{\fpeval{round(#3,#2)}}}
-}
-
-Les valeurs extrêmes de $x$ sont \TESTmin{} et \TESTmax. Une équation de la droite de régression de $y$ en $x$ est
-
-\hfill$y=\arrond[3]{\TESTa}x \arrond*[3]{\TESTb}$.\hfill~
-
-\smallskip
-
-Le coefficient de corrélation linéaire est $r=\arrond[4]{\TESTr}$, et son carré est $r^2=\arrond[4]{\TESTrd}$.
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-stats_d}~~\includegraphics[height=3cm]{./graphics/pl-doc-stats_e}\hfill~
-\end{noteblock}
-
-\subsection{Intégration dans un environnement \TikZ}
-
-\begin{noteblock}
-La commande étant \og autonome \fg{}, elle va pouvoir être intégrée dans des environnements graphiques pour permettre un tracé \textit{facile} de la droite de régression.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}
- \begin{axis}[options des axes, non présentées ici...]
- \addplot[teal, only marks] table{
- X Y
- 1994 1718 1995 1710 1996 1708 1997 1700 1998 1698 1999 1697 2000 1691 2001 1688
- 2002 1683 2004 1679 2005 1671 2006 1670 2007 1663 2008 1661 2009 1656 2010 1649
- };
- \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
- \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
- \CalculsRegLin{\LLX}{\LLY}
- \addplot [thick,orange,domain=\LXmin:\LXmax,samples=2]{\COEFFa*x+\COEFFb};
- \addlegendentry{$y = \fpeval{round(\COEFFa,3)}\,x + \fpeval{round(\COEFFb,3)}$};
- \addlegendentry{$R^2=\fpeval{round(\COEFFrd,5)}$};
- \end{axis}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tikzpicture}
- \begin{axis}[
- /pgf/number format/.cd,
- use comma,
- xmin = 1992, xmax = 2012,
- ymin = 1640, ymax = 1730,
- width = 0.7\textwidth,
- height = 0.35\textwidth,
- xtick distance = 2,
- ytick distance = 10,
- grid = both,
- minor tick num = 1,
- major grid style = {lightgray},
- minor grid style = {lightgray!25},
- xlabel = {\small Année ($x$)},
- ylabel = {\small Altitude du glacier (en m) ($y$)},
- x tick label style={/pgf/number format/.cd, set thousands separator={}},
- y tick label style={/pgf/number format/.cd, set thousands separator={}},
- legend cell align = {left},
- legend pos = north east
- ]
- \addplot[teal, only marks] table{
- X Y
- 1994 1718
- 1995 1710
- 1996 1708
- 1997 1700
- 1998 1698
- 1999 1697
- 2000 1691
- 2001 1688
- 2002 1683
- 2004 1679
- 2005 1671
- 2006 1670
- 2007 1663
- 2008 1661
- 2009 1656
- 2010 1649
- };
- \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
- \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
- \CalculsRegLin{\LLX}{\LLY}
- \addplot [thick,orange,domain=\LXmin:\LXmax,samples=2]{\COEFFa*x+\COEFFb};
- \addlegendentry{$y = \fpeval{round(\COEFFa,3)}\,x + \fpeval{round(\COEFFb,3)}$};
- \addlegendentry{$R^2=\fpeval{round(\COEFFrd,5)}$};
- \end{axis}
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-Il existe également une commande auxiliaire, \ctex{PointsRegLin} pour afficher le nuage de points avec quelques options, dans un environnement \TikZ{} classique (sans \textsf{pgfplot})\ldots
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-...
-\begin{tikzpicture}[<options>]
- ...
- \PointsRegLin[clés]{listeX}{listeY}
- ...
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques \Cle{Clés} sont disponibles pour cette commande, essentiellement pour la mise en forme du nuage :
-
-\begin{itemize}
- \item la clé \Cle{Couleur} pour la couleur des points du nuage ;\hfill{}défaut \Cle{teal}
- \item la clé \Cle{Taille} pour la taille des points (type \textit{cercle}) ;\hfill{}défaut \Cle{2pt}
- \item la clé \Cle{Ox} pour spécifier la valeur initiale Ox (si changement d'origine) ;\hfill{}défaut \Cle{0}
- \item la clé \Cle{Oy} pour spécifier la valeur initiale Oy (si changement d'origine).\hfill{}défaut \Cle{0}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[x=0.5cm,y=0.05cm]
- \draw[xstep=1,ystep=5,lightgray!50,very thin] (0,0) grid (20,100);
- \draw[xstep=2,ystep=10,lightgray,thin] (0,0) grid (20,100);
- \draw[thick,->,>=latex] (0,0)--(20,0) ;
- \draw[thick,->,>=latex] (0,0)--(0,100) ;
- \foreach \x in {1992,1994,...,2010} \draw[thick] ({\x-1992},4pt)--({\x-1992},-4pt) node[below] {$\x$} ;
- \foreach \y in {1640,1650,...,1730} \draw[thick] (4pt,{\y-1640})--(-4pt,{\y-1640}) node[left] {$\y$} ;
- \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
- \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
- \def\Ox{1992}\def\Oy{1640}
- \CalculsRegLin{\LLX}{\LLY}
- \PointsRegLin[Ox=1992,Oy=1640,Couleur=blue,Taille=3pt]{\LLX}{\LLY}
- \draw[orange,very thick,samples=2,domain=\LXmin:\LXmax] plot ({\x-\Ox},{\COEFFa*(\x)+\COEFFb-\Oy}) ;
- \matrix [draw,fill=white,below left] at (current bounding box.north east) {
- \node {$y=\num{\fpeval{round(\COEFFa,3)}}\,x+\num{\fpeval{round(\COEFFb,3)}}$} ; \\
- \node {$R^2=\num{\fpeval{round(\COEFFrd,5)}}$} ; \\
- };
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{tikzpicture}[x=0.5cm,y=0.05cm]
- \draw[xstep=1,ystep=5,lightgray!50,very thin] (0,0) grid (20,100);
- \draw[xstep=2,ystep=10,lightgray,thin] (0,0) grid (20,100);
- \draw[thick,->,>=latex] (0,0)--(20,0) ;
- \draw[thick,->,>=latex] (0,0)--(0,100) ;
- \foreach \x in {1992,1994,...,2010} \draw[thick] ({\x-1992},4pt)--({\x-1992},-4pt) node[below] {$\x$} ;
- \foreach \y in {1640,1650,...,1730} \draw[thick] (4pt,{\y-1640})--(-4pt,{\y-1640}) node[left] {$\y$} ;
- \def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
- \def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
- \def\Ox{1992}\def\Oy{1640}
- \CalculsRegLin{\LLX}{\LLY}
-\PointsRegLin[Ox=1992,Oy=1640,Couleur=blue,Taille=3pt]{\LLX}{\LLY}
- \draw[orange,very thick,samples=2,domain=\LXmin:\LXmax] plot ({\x-\Ox},{\COEFFa*(\x)+\COEFFb-\Oy}) ;
- \matrix [draw,fill=white,below left] at (current bounding box.north east) {
- \node {$y=\num{\fpeval{round(\COEFFa,3)}}\,x + \num{\fpeval{round(\COEFFb,3)}}$} ; \\
- \node {$R^2=\num{\fpeval{round(\COEFFrd,5)}}$} ; \\
- };
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Statistiques à deux variables}\label{statsdeuxvars}
-
-\subsection{Idées}
-
-\begin{tipblock}
-L'idée est de \textit{prolonger} le paragraphe précédent pour proposer un environnement \TikZ{} adapté à des situations venant de statistiques à deux variables.
-
-\smallskip
-
-Un des soucis pour ces situations est le fait que le repère dans lequel on travaille n'a pas forcément pour origine $(0;0)$.
-
-De ce fait -- pour éviter des erreurs de \ctex{dimension too large} liées à \TikZ{} -- il faut \textit{décaler les axes} pour se ramener à une origine en $O$.
-
-\smallskip
-
-Le code, intimement lié à un environnement \ctex{tikzpicture}, va donc :
-
-\begin{itemize}
- \item préciser les informations utiles comme \ctex{xmin}, \ctex{xmax}, \ctex{Ox}, \ctex{xgrille}, etc
- \item proposer des commandes (sans se soucier des \textit{translations} !) pour :
- \begin{itemize}
- \item tracer une grille (principale et/ou secondaire) ;
- \item tracer les axes (avec légendes éventuelles) et éventuellement les graduer ;
- \end{itemize}
-\end{itemize}
-
-En utilisant les commandes de \textsf{régression linéaire} du paragraphe précédent, il sera de plus possible (sans calculs !) de :
-
-\begin{itemize}
- \item représenter le nuage de points ;
- \item placer le point moyen ;
- \item tracer la droite d'ajustement (obtenue par \ctex{ProfLycee}) ou une autre courbe.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{noteblock}
-Le package \ctex{pgfplots} peut être utilisé pour traiter ce genre de situation, mais ne l'utilisant pas, j'ai préféré préparer des \textsf{macros} permettant de s'affranchir de ce package (est-ce pertinent, ça c'est une autre question\ldots).
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Listes et calculs
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%tracé (simple), les options seront présentées juste après
-\begin{tikzpicture}%
- [x=0.5cm,y=0.1cm, %unités
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1, %axe Ox
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5] %axe Oy
- \GrilleTikz \AxesTikz %grilles et axes
- \AxexTikz[Annee]{1992,1994,...,2010} %axeOx
- \AxeyTikz{1640,1650,...,1720} %axeOy
- \NuagePointsTikz{\LLX}{\LLY} %nuage
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=2]%
- {\COEFFa*\x+\COEFFb}{\LXmin:\LXmax} %droite de régression
- \PointMoyenTikz %point moyen
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%tracé avec options fenêtre par défaut
-\begin{tikzpicture}%
- [....] %paramètres
- \FenetreSimpleTikz<Annee>{1992,1994,...,2010}{1640,1650,...,1720} %fenêtre "simple"
- \NuagePointsTikz{\LLX}{\LLY} %nuage
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=2]%
- {\COEFFa*\x+\COEFFb}{\LXmin:\LXmax} %droite de régression
- \PLnuageptmoy %point moyen
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-\begin{tikzpicture}[x=0.5cm,y=0.1cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz \AxesTikz
- \AxexTikz[Annee]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
- \NuagePointsTikz{\LLX}{\LLY}
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=2]{\COEFFa*\x+\COEFFb}{\LXmin:\LXmax}
- \PointMoyenTikz
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\subsection{Commandes, clés et options}
-
-\begin{noteblock}
-Les \Cle{paramètres} nécessaires à la bonne utilisation des commandes suivantes sont à déclarer directement dans l'environnement \ctex{tikzpicture}, seules les versions \og x \fg{} sont présentées ici:
-
-\begin{itemize}
- \item \Cle{xmin}, stockée dans \ctex{\textbackslash{}xmin} ;\hfill{}défaut \Cle{-3}
- \item \Cle{xmax}, stockée dans \ctex{\textbackslash{}xmax} ;\hfill{}défaut \Cle{3}
- \item \Cle{Ox}, stockée dans \ctex{\textbackslash{}axexOx}, origine de l'axe $(Ox)$ ;\hfill{}défaut \Cle{0}
- \item \Cle{xgrille}, stockée dans \ctex{\textbackslash{}xgrille}, graduation principale ;\hfill{}défaut \Cle{1}
- \item \Cle{xgrilles}, stockée dans \ctex{\textbackslash{}xgrilles}, graduation secondaire.\hfill{}défaut \Cle{0.5}
-\end{itemize}
-
-La fenêtre d'affichage (de sortie) sera donc \textit{portée} par le rectangle de coins $(\text{xmin};\text{ymin})$ et $(\text{xmax};\text{ymax})$ ; ce qui correspond en fait à la fenêtre \TikZ{} \textit{portée} par le rectangle de coins $(\text{xmin-Ox};\text{ymin-Oy})$ et $(\text{xmax-Ox};\text{ymax-Oy})$.
-
-\smallskip
-
-Les commandes ont -- pour certaines -- pas mal de \Cle{clés} pour des réglages fins, mais dans la majorité des cas elles ne sont pas forcément \textit{utiles}.
-\end{noteblock}
-
-\begin{noteblock}
-Pour illustrer les commandes et options de ce paragraphe, la base sera le graphique présenté précédemment.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
- \GrilleTikz[options][options grille ppale][options grille second.]
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande permet de tracer une grille principale et/ou une grille secondaire :
-
-\begin{itemize}
- \item les premières \Cle{clés} sont les booléens \Cle{Affp} et \Cle{Affs} qui affichent ou non les grilles ;
-
- \hfill~défaut \Cle{true}
- \item les options des grilles sont en \TikZ. \hfill~défaut \Cle{thin,lightgray} et \Cle{very thin,lightgray}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz[Affp=false][][orange,densely dotted]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\hfill~
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz[Affp=false][][orange,densely dotted]
-\end{tikzpicture}
-\hfill~
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
- \AxesTikz[options]
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande permet de tracer les axes, avec des \Cle{clés} :
-
-\begin{itemize}
- \item \Cle{Epaisseur} qui est l'épaisseur des traits ; \hfill~défaut \Cle{1.25pt}
- \item \Cle{Police} qui est le style des labels des axes ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont}
- \item \cmaj{2.1.2} \Cle{ElargirOx} qui est le \% l'élargissement \Cle{global} ou \Cle{G/D} de l'axe $(Ox)$ ;
-
- \hfill~défaut \Cle{0/0.05}
- \item \cmaj{2.1.2} \Cle{ElargirOy} qui est le \% l'élargissement \Cle{global} ou \Cle{B/H} de l'axe $(Oy)$ ;
-
- \hfill~défaut \Cle{0/0.05}
- \item \Cle{Labelx} qui est le label de l'axe $(Ox)$ ; \hfill~défaut \Cle{\${}x\$}
- \item \Cle{Labely} qui est le label de l'axe $(Oy)$ ; \hfill~défaut \Cle{\${}y\$}
- \item \Cle{AffLabel} qui est le code pour préciser quels labels afficher, entre \Cle{x}, \Cle{y} ou \Cle{xy} ;
-
- \hfill~défaut \Cle{vide}
- \item \Cle{PosLabelx} pour la position du label de $(Ox)$ en bout d'axe ; \hfill~défaut \Cle{right}
- \item \Cle{PosLabely} pour la position du label de $(Oy)$ en bout d'axe ; \hfill~défaut \Cle{above}
- \item \Cle{EchelleFleche} qui est l'échelle de la flèche des axes ; \hfill~défaut \Cle{1}
- \item \Cle{TypeFleche} qui est le type de la flèche des axes.\hfill~défaut \Cle{latex}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%code tikz
- \AxesTikz
-
-%code tikz
- \AxesTikz%
- [AffLabel=xy,Labelx={Année},Labely={Altitude},%
- PosLabelx={below right},PosLabely={above left},%
- Police=\small\sffamily]
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\hfill~
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \AxesTikz
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \AxesTikz%
- [AffLabel=xy,Labelx={Année},Labely={Altitude},%
- PosLabelx={below right},PosLabely={above left},%
- Police=\small\sffamily]
-\end{tikzpicture}
-\hfill~
-\end{PresCodeSortiePL}
-
-%les axes
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
- \AxexTikz[options]{valeurs}
- \AxeyTikz[options]{valeurs}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} identiques pour les deux directions :
-
-\begin{itemize}
- \item \Cle{Epaisseur} qui est l'épaisseur des graduations ; \hfill~défaut \Cle{1pt}
- \item \Cle{Police} qui est le style des labels des graduations ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont}
- \item \Cle{PosGrad} qui est la position des graduations par rapport à l'axe ; \hfill~défaut \Cle{below} et \Cle{left}
- \item \Cle{HautGrad} qui est la position des graduations (sous la forme \Cle{lgt} ou \Cle{lgta/lgtb}) ;
-
- \hfill~défaut \Cle{4pt}
- \item le booléen \Cle{AffGrad} pour afficher les valeurs (formatés avec \ctex{num} donc dépendant de \ctex{sisetup}) des graduations ; \hfill~défaut \Cle{true}
- \item le booléen \Cle{AffOrigine} pour afficher la graduation de l'origine ; \hfill~défaut \Cle{true}
- \item le booléen \Cle{Annee} qui permet de ne pas formater les valeurs des graduations (type \textsf{année}). \hfill~défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%code tikz
- \AxexTikz[Police=\small]{1992,1994,...,2010}
- \AxexTikz{1640,1650,...,1720}
-
-%code tikz
- \AxeyTikz[Police=\small,Annee,HautGrad=0pt/4pt]{1992,1994,...,2010}
- \AxeyTikz[AffGrad=false,HautGrad=6pt]{1640,1650,...,1720}
-
-%des axes fictifs (en gris) sont rajoutés pour la lisibilité du code de sortie
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\hfill~
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \draw[gray,line width=1.25pt,->,>=latex] ({\xmin-\axexOx},0) -- ({\xmax-\axexOx},0) ;
- \draw[gray,line width=1.25pt,->,>=latex] (0,{\ymin-\axeyOy}) -- (0,{\ymax-\axeyOy}) ;
- \AxexTikz[Police=\tiny]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
-\end{tikzpicture}
-~~
-\begin{tikzpicture}%
- [x=0.3cm,y=0.06cm,%
- Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,%
- Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \draw[gray,line width=1.25pt,->,>=latex] ({\xmin-\axexOx},0) -- ({\xmax-\axexOx},0) ;
- \draw[gray,line width=1.25pt,->,>=latex] (0,{\ymin-\axeyOy}) -- (0,{\ymax-\axeyOy}) ;
- \AxexTikz[Police=\tiny,Annee,HautGrad=0pt/4pt]{1992,1994,...,2010}
- \AxeyTikz[AffGrad=false,HautGrad=6pt]{1640,1650,...,1720}
-\end{tikzpicture}
-\hfill~
-\end{PresCodeSortiePL}
-
-\subsection{Commandes annexes}
-
-\begin{noteblock}
-Il existe, de manière marginale, quelques commandes complémentaires qui ne seront pas trop détaillées mais qui sont présentes dans l'introduction :
-
-\begin{itemize}
- \item \ctex{FenetreTikz} qui restreint les tracés à la fenêtre (utile pour des courbes qui \textit{débordent}) ;
- \item \ctex{FenetreSimpleTikz} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ;
- \item \ctex{OrigineTikz} pour rajouter le libellé de l'origine si non affiché par les axes.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%code tikz
- \FenetreTikz %on restreint les tracés
- \FenetreSimpleTikz[opt](opt axes)<opt axe Ox>{liste valx}<opt axe Oy>{liste valy}
-\end{PresCodeTexPL}
-
-\subsection{Interactions avec CalculsRegLin}
-
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
- \NuagePointsTikz[options]{listeX}{listeY}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande, liée à la commande \ctex{CalculsRegLin} permet de représenter le nuage de points associé aux deux listes, avec les \Cle{clés} suivantes :
-
-\begin{itemize}
- \item \Cle{Taille} qui est la taille des points du nuage ; \hfill~défaut \Cle{2pt}
- \item \Cle{Style} parmi \Cle{o} (rond) ou \Cle{x} (croix) ou \Cle{+} (plus) ; \hfill~défaut \Cle{o}
- \item \Cle{Couleur} qui est la couleur (éventuellement \Cle{couleurA/couleurB} pour les ronds).
-
- \hfill~défaut \Cle{blue}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[...]
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz \AxesTikz
- \AxexTikz[Annee,Police=\small]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY}
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[...]
- \NuagePointsTikz[Couleur=CouleurVertForet,Style=x,Taille=6pt]{\LLX}{\LLY}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz \AxesTikz
- \AxexTikz[Annee,Police=\small]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
- \NuagePointsTikz[Couleur=CouleurVertForet,Style=x,Taille=6pt]{\LLX}{\LLY}
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-%point moyen
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
- \PointMoyenTikz[options]
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande permet de rajouter le point moyen du nuage, calculé par la commande \ctex{CalculsRegLin}, avec les \Cle{clés} :
-
-\begin{itemize}
- \item \Cle{Police}, comme précédemment ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont} ;
- \item \Cle{Taille}, taille du point moyen ; \hfill~défaut \Cle{4pt}
- \item \Cle{Couleur}, couleur du point moyen ; \hfill~défaut \Cle{red}
- \item \Cle{Style} parmi \Cle{o} (rond) ou \Cle{x} (croix) ou \Cle{+} (plus) ; \hfill~défaut \Cle{o}
- \item \Cle{xg}, abscisse du point moyen, récupérable via \ctex{CalculsRegLin} ; \hfill~défaut \Cle{\textbackslash{}LXmoy}
- \item \Cle{yg}, ordonnée du point moyen, récupérable via \ctex{CalculsRegLin} ; \hfill~défaut \Cle{\textbackslash{}LYmoy}
- \item \Cle{Nom}, label du point moyen ; \hfill~défaut \Cle{G}
- \item \Cle{Pos} qui est la position du label par rapport au point ; \hfill~défaut \Cle{above}
- \item \Cle{Decal} qui est l'éloignement de la position du label par rapport au point ; \hfill~défaut \Cle{0pt}
- \item la booléen \Cle{AffNom} qui affiche ou non le libellé.\hfill~défaut \Cle{true}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-\begin{tikzpicture}[...]
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY}
- \PointMoyenTikz
-\end{tikzpicture}
-~~
-\begin{tikzpicture}[...]
- \NuagePointsTikz[Couleur=CouleurVertForet,Style=x,Taille=6pt]{\LLX}{\LLY}
- \PointMoyenTikz[Couleur=orange,Taille=8pt,Style=+,Nom={$G_1$},Pos=below]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz \AxesTikz
- \AxexTikz[Annee,Police=\small]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY}
- \PointMoyenTikz
-\end{tikzpicture}
-
-\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz \AxesTikz
- \AxexTikz[Annee,Police=\small]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
- \NuagePointsTikz[Couleur=CouleurVertForet,Style=x,Taille=6pt]{\LLX}{\LLY}
- \PointMoyenTikz[Couleur=orange,Taille=8pt,Style=+,Nom={$G_1$},Pos=below]
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-%courbe
-\begin{PresCodeTexPL}{listing only}
-%...code tikz
- \CourbeTikz[options]{formule}{domaine}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Cette commande permet de rajouter une courbe sur le graphique (sans se soucier de la transformation de son expression) avec les arguments :
-
-\begin{itemize}
- \item \Cle{optionnels} qui sont -- en \TikZ{} -- les paramètres du tracé ;
- \item le premier \textit{obligatoire}, est -- en langage \TikZ{} -- l'expression de la fonction à tracer, donc avec \ctex{\textbackslash{}x} comme variable ;
- \item le second \textit{obligatoire} est le domaine du tracé , sous la forme \ctex{valxmin:valxmax}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-L'idée principale est de récupérer les variables de la régression linéaire pour tracer la droite d'ajustement \textit{à moindres frais} !
-\end{noteblock}
-
-\begin{noteblock}
- Toute courbe peut être tracée sur ce principe, par contre il faudra saisir la fonction \textit{à la main}.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008, 2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661, 1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-\begin{tikzpicture}[...]
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \PointMoyenTikz
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=2]{\COEFFa*\x+\COEFFb}{\xmin:\xmax}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-\CalculsRegLin{\LLX}{\LLY}
-
-\begin{tikzpicture}[x=0.35cm,y=0.07cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz \AxesTikz[ElargirOx=0,ElargirOy=0]
- \AxexTikz[Annee,Police=\footnotesize]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \PointMoyenTikz
- \CourbeTikz[line width=1.25pt,CouleurVertForet,samples=2]{\COEFFa*\x+\COEFFb}{\xmin:\xmax}
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\subsection{Exemple complémentaire, pour illustration}
-
-\begin{PresCodeTexPL}{listing only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-
-%la courbe n'a pas de lien avec le nuage
-%elle illustre l'interaction des commandes "nuage" avec les autres commandes
-
-\begin{tikzpicture}[...]
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \FenetreTikz %on fixe la fenêtre
- \CourbeTikz[line width=1.25pt,orange,samples=250]{-(\x-2000)*(\x-2000)+1700}{\xmin:\xmax}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\LLX{1994,1995,1996,1997,1998,1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010}
-\def\LLY{1718,1710,1708,1700,1698,1697,1691,1688,1683,1679,1671,1670,1663,1661,1656,1649}
-
-\begin{tikzpicture}[x=0.7cm,y=0.14cm,Ox=1992,xmin=1992,xmax=2012,xgrille=2,xgrilles=1,Oy=1640,ymin=1640,ymax=1730,ygrille=10,ygrilles=5]
- \GrilleTikz \AxesTikz[ElargirOx=0,ElargirOy=0]
- \AxexTikz[Annee,Police=\small]{1992,1994,...,2010}
- \AxeyTikz{1640,1650,...,1720}
- \NuagePointsTikz[Couleur=blue/red]{\LLX}{\LLY} \FenetreTikz
- \CourbeTikz[line width=1.25pt,orange,samples=250]{-(\x-2000)*(\x-2000)+1700}{\xmin:\xmax}
-\end{tikzpicture}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Boîtes à moustaches}\label{boiteamoustaches}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée est de proposer une commande, à intégrer dans un environnement \TikZ, pour tracer une boîte à moustaches grâce aux paramètres, saisis par l'utilisateur.
-
-\smallskip
-
-Le code ne calcule pas les paramètres, il ne fait \textit{que} tracer la boîte à moustaches !
-\end{tipblock}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}
- \BoiteMoustaches{10/15/17/19/20}
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{noteblock}
-Étant donnée que la commande est intégrée dans un environnement \TikZ, les unités peuvent/doivent donc être précisées, \textit{comme d'habitude}, si besoin.
-\end{noteblock}
-
-\subsection{Clés et options}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{Couleur} qui est la couleur de la boîte ; \hfill~défaut \Cle{black}
- \item la clé \Cle{Elevation} qui est la position verticale (ordonnée des moustaches) de la boîte ;
-
- \hfill~défaut \Cle{1.5}
- \item la clé \Cle{Hauteur} qui est la hauteur de la boîte ; \hfill~défaut \Cle{1}
- \item la clé \Cle{Moyenne} qui est la moyenne (optionnelle) de la série ;
- \item la clé \Cle{Epaisseur} qui est l'épaisseur des traits de la boîte ; \hfill~défaut \Cle{thick}
- \item la clé \Cle{Remplir} qui est la couleur de remplissage de la boîte ; \hfill~défaut \Cle{white}
- \item le booléen \Cle{AffMoyenne} qui permet d'afficher ou non la moyenne (sous forme d'un point) ;
-
- \hfill~défaut \Cle{false}
- \item le booléen \Cle{Pointilles} qui permet d'afficher des pointillés au niveau des paramètres ;
-
- \hfill~défaut \Cle{false}
- \item le booléen \Cle{Valeurs} qui permet d'afficher les valeurs des paramètres au niveau des abscisses.
-
- \hfill~défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}
- \BoiteMoustaches[Epaisseur=very thick,Moyenne=18.5,Couleur=blue,AffMoyenne,%
- Pointilles,Valeurs,Hauteur=2.25,Elevation=2]{10/15/17/19/20}
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{PresCodeTexPL}{listing only}
-%une grille a été rajoutée pour visualiser la "position verticale"
-\begin{center}
- \begin{tikzpicture}[x=0.1cm]
- \BoiteMoustaches[Epaisseur=ultra thick,Couleur=blue]{100/150/170/190/200}
- \BoiteMoustaches[Epaisseur=thin,Elevation=2.5,Couleur=red]{80/100/110/120/150}
- \BoiteMoustaches%
- [Elevation=4,Couleur=CouleurVertForet,Remplir=CouleurVertForet!25]{100/140/145/160/210}
-\end{tikzpicture}
-\end{center}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{center}
- \begin{tikzpicture}[x=0.1cm]
- \draw[xstep=10,ystep=0.5,very thin,lightgray] (80,0) grid (210,4.5) ;
- \foreach \x in {80,90,...,210} \draw[very thin,lightgray] (\x,3pt)--(\x,-3pt) node[below] {\num{\x}} ;
- \foreach \y in {0,0.5,...,4.5} \draw[very thin,lightgray] ($(210,\y)+(-3pt,0)$)--($(210,\y)+(3pt,0)$) node[right] {\num{\y}} ;
- \BoiteMoustaches[Epaisseur=ultra thick,Couleur=blue]{100/150/170/190/200}
- \BoiteMoustaches[Epaisseur=thin,Elevation=2.5,Couleur=red]{80/100/110/120/150}
- \BoiteMoustaches[Elevation=4,Couleur=CouleurVertForet,Remplir=CouleurVertForet!25]{100/140/145/160/210}
- \end{tikzpicture}
-\end{center}
-\end{PresCodeSortiePL}
-
-\subsection{Commande pour placer un axe horizontal}
-
-\begin{tipblock}
-L'idée est de proposer, en parallèle de la commande précédente, une commande pour tracer un axe horizontal \og sous \fg{} les éventuelles boîtes à moustaches.
-\end{tipblock}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}
- \BoiteMoustachesAxe[Min=10,Max=20]
- \BoiteMoustaches{10/15/17/19/20}
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}
- \BoiteMoustachesAxe[Min=10,Max=20]
- \BoiteMoustaches[Valeurs,Pointilles]{10/15/17/19/20}
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{Min} qui est la valeur minimale de l'axe horizontal ;
- \item la clé \Cle{Max} qui est la valeur minimale de l'axe horizontal ;
- \item la clé \Cle{Elargir} qui est le pourcentage l'élargissement de l'axe ;\hfill~défaut \Cle{0.1}
- \item la clé \Cle{Epaisseur} qui est l'épaisseur des traits de la boîte ; \hfill~défaut \Cle{thick}
- \item la clé \Cle{Valeurs} qui est la liste (compréhensible en \TikZ) des valeurs à afficher.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}
- \BoiteMoustachesAxe[Min=8,Max=21,AffValeurs,Valeurs={8,9,...,21},Elargir=0.02]
- \BoiteMoustaches[Moyenne=18.5,Couleur=blue]{10/15/17/19/20}
- \BoiteMoustaches[Elevation=2.5,Couleur=red]{8/10/11/12/15}
- \BoiteMoustaches[Elevation=4,Couleur=CouleurVertForet,Remplir=CouleurVertForet!25]{10/14/14.5/16/21}
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{noteblock}
-Le placement des différentes boîtes n'est pas automatique, donc il faut penser à cela avant de se lancer dans le code.
-
-Sachant que la hauteur par défaut est de 1, il est -- a priori -- intéressant de placer les boîtes à des \Cle{élévations} de \num{1} puis \num{2.5} puis \num{4} etc
-\end{noteblock}
-
-\newpage
-
-\section{Histogrammes}\label{histo}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-\cmaj{2.6.7} L'idée est de proposer une commande pour tracer un histogramme à classes régulières ou non.
-
-\smallskip
-
-La commande, qui utilise \TikZ, est autonome (ceci étant dû à la gestion en interne des unités !), et ne permet pas de rajout une fois le graphique affiché.
-\end{tipblock}
-
-\begin{noteblock}
-La commande fonctionne avec des données classe/effectif, qui seront à traduire sous la forme \ctex{BorneInf/BorneSup/Effectif}.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\Histogramme(*)[options]{données}
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-%classes régulières
-\Histogramme{7/9/130 9/11/175 11/13/182 13/15/95}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-%classes non régulières
-\Histogramme*{0/20/15 20/50/34 50/60/8 60/85/10 90/100/13}
-\end{PresCodePL}
-
-\begin{cautionblock}
-Contrairement aux autres commandes graphiques, qui sont souvent à intégrer dans un environnement \TikZ, la commande \ctex{\textbackslash Histogramme} aura besoin de connaître les dimensions finales du graphique pour fonctionner !
-
-Les dimensions correspondent à celles des rectangles avec les éventuelles modifications horizontales et/ou verticales spécifiées.
-\end{cautionblock}
-
-\subsection{Clés et options}
-
-\begin{cautionblock}
-La version \textit{étoilée} permet de préciser que les classes ne sont pas d'amplitudes régulières.
-
-\medskip
-
-Le premier argument, optionnel et entre \ctex{[...]} propose les \Cle{clés} principales suivantes :
-
-\begin{itemize}
- \item \Cle{DebutOx} : permet de préciser le début de l'axe horizontal (sinon c'est par défaut la borne inférieure de la première classe) ;
-
- \hfill{}défaut : \Cle{vide}
- \item \Cle{FinOx} : permet de préciser la fin de l'axe horizontal (sinon c'est par défaut la borne supérieure de la dernière classe) ;
-
- \hfill{}défaut : \Cle{vide}
- \item \Cle{Largeur} : largeur en cm du graphique créé (entre \Cle{DebutOx} et \Cle{FinOx}) ; \hfill{}défaut : \Cle{10}
- \item \Cle{Hauteur} : hauteur en cm du graphique créé (par rapport à l'effectif maximal ou la grille éventuelle) ;
-
- \hfill{}défaut : \Cle{5}
- \item \Cle{ListeCouleurs} : liste des couleurs des rectangles (unique ou sous la forme \ctex{\{CoulA,CoulB,...\}}) ;
-
- \hfill{}défaut : \Cle{orange}
- \item \Cle{ElargirX} et \Cle{ElargirY} : pour rajouter une petite longueur au bout des axes ; \hfill{}défaut : \Cle{5mm}
- \item \Cle{LabelX} et \Cle{LabelY} : pour les labels des axes ; \hfill{}défaut : \Cle{vide}
- \item \Cle{GradX} et \Cle{GradY} : pour les graduations et valeurs des axes (langage \ctex{tikz}) ; \hfill{}défaut : \Cle{vide}
- \item \Cle{AffEffectifs} : booléen pour afficher les effectifs ; \hfill{}défaut : \Cle{true}
- \item \Cle{PosEffectifs} : choix de la position des effectifs parmi \Cle{bas,milieu,haut,dessus} ;
-
- \hfill{}défaut : \Cle{milieu}
- \item \Cle{Remplir} : booléen pour remplir les rectangles ; \hfill{}défaut : \Cle{true}
- \item \Cle{Opacite} : choix de l'opacité du remplissage ; \hfill{}défaut : \Cle{0.5}
- \item \Cle{AffBornes} : booléen pour afficher les bornes des classes ; \hfill{}défaut : \Cle{false}
- \item \Cle{GrilleV} : booléen pour afficher une grille verticale (pour les classes régulières, à la manière d'un tableur) ;
-
- \hfill{}défaut : \Cle{true}
- \item \Cle{PoliceAxes} : police pour les axes ; \hfill{}défaut : \Cle{\textbackslash normalsize\textbackslash normalfont}
- \item \Cle{PoliceEffectifs} : police pour les effectifs ; \hfill{}défaut : \Cle{\textbackslash normalsize\textbackslash normalfont}
- \item \Cle{EpaisseurTraits} : épaisseur des traits (langage \ctex{tikz}). \hfill{}défaut : \Cle{semithick}
-\end{itemize}
-
-\cmaj{2.6.8} Quelques clés sont spécifiques à la grille (éventuelle) des histogrammes non réguliers (avec ajustement vertical et légende) :
-
-\begin{itemize}
- \item \Cle{Grille} : création de la grille, sous la forme \Cle{GradX/UniteAire} ; \hfill{}défaut : \Cle{vide}
- \item \Cle{ExtraGrilleY} : pour rajouter une \textit{ligne à la grille en vertical} ; \hfill{}défaut : \Cle{0}
- \item \Cle{PosLegende} : pour préciser le \textit{carreau} de la légende éventuelle. \hfill{}défaut : \Cle{vide}
-\end{itemize}
-
-Le second argument, obligatoire et entre \ctex{\{...\}} permet de préciser les données utilisées sous la forme \ctex{BorneInf/BorneSup/Effectif BorneInf/BorneSup/Effectif ...}.
-\end{cautionblock}
-
-\pagebreak
-
-\subsection{Exemple avec des classes régulières}
-
-\begin{tipblock}
-Avec la série suivante :
-
-\medskip
-
-\hfill
-\begin{tblr}{hlines,vlines,width=10cm,colspec={Q[l,m]*{4}{X[m,c]}}}
- Classes & $[7\mathpunct{};9[$ & $[9\mathpunct{};11[$ & $[11\mathpunct{};13[$ & $[13\mathpunct{};15]$ \\
- Effectifs & 130 & 175 & 182 & 95 \\
-\end{tblr}
-\hfill~
-\end{tipblock}
-
-\begin{PresCodePL}{}
-\Histogramme[ListeCouleurs={white},Opacite=1,%
- GradX={7,8,...,15},LabelX={données},GradY={0,25,...,175},LabelY={effectifs},%
- PoliceEffectifs=\small\sffamily,PosEffectifs=dessus]%
- {7/9/130 9/11/175 11/13/182 13/15/95}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\Histogramme[Largeur=11,Hauteur=7,%
- ListeCouleurs={yellow,blue,pink,red},%
- DebutOx=5,FinOx=17,GradX={5,6,...,17},GradY={0,25,...,175},%
- AffEffectifs=false]%
- {7/9/130 9/11/175 11/13/182 13/15/95}
-\end{PresCodePL}
-
-\pagebreak
-
-\subsection{Exemple avec des classes non régulières}
-
-\begin{tipblock}
-Avec la série suivante :
-
-\medskip
-
-\hfill
-\begin{tblr}{hlines,vlines,width=14cm,colspec={Q[l,m]*{6}{X[m,c]}}}
- Classes & $[0\mathpunct{};20[$ & $[20\mathpunct{};50[$ & $[50\mathpunct{};60[$ & $[60\mathpunct{};85[$ & $[85\mathpunct{};100]$ \\
- Effectifs & 15 & 34 & 8 & 10 & 13 \\
-\end{tblr}
-\hfill~
-\end{tipblock}
-
-\begin{PresCodePL}{}
-\Histogramme*[%
- ListeCouleurs={yellow,red,blue,green,purple},%
- PosEffectifs=dessus,AffBornes]
- {0/20/15 20/50/34 50/60/8 60/85/10 85/100/13}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\Histogramme*[%
- Largeur=14,Hauteur=7,FinOx=110,%
- ListeCouleurs={yellow,red,blue,green,purple},Opacite=0.25,%
- GradX={0,10,...,110},%
- PosEffectif=heut]
- {0/20/15 20/50/34 50/60/8 60/85/10 85/100/13}
-\end{PresCodePL}
-
-\pagebreak
-
-\begin{tipblock}
-Avec la série suivante :
-
-\medskip
-
-\hfill
-\begin{tblr}{hlines,vlines,width=14cm,colspec={Q[l,m]*{6}{X[m,c]}},cell{1}{2-Z}={font=\footnotesize}}
- Classes & $[900\mathpunct{};1\,200[$ & $[1\,200\mathpunct{};1\,400[$ & $[1\,400\mathpunct{};1\,600[$ & $[1\,600\mathpunct{};1\,800[$ & $[1\,800\mathpunct{};2\,000[$ & $[2\,000\mathpunct{};2\,400]$ \\
- Effectifs & 30 & 30 & 60 & 40 & 20 & 20 \\
-\end{tblr}
-\hfill~
-\end{tipblock}
-
-\begin{PresCodePL}{}
-%choix des unités 0.85cm par petit carreau avec 17H et 5V
-
-\Histogramme*[%
- Largeur=13.6,Hauteur=4.25,FinOx=2500,%
- PosLegende=0/3,Grille=100/10,ExtraGrilleY=1,%
- ListeCouleurs=lightgray,%
- AffBornes,PosEffectifs=dessus]
- {900/1200/30 1200/1400/30 1400/1600/60 1600/1800/40 1800/2000/20 2000/2400/20}
-\end{PresCodePL}
+\input{ProfLycee-doc-stats.tex}
\newpage
@@ -5987,746 +455,10 @@ Avec la série suivante :
\newpage
-\part{Outils pour les probabilités}
-
-\section{Calculs de probabilités}\label{calcprobas}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée est de proposer des commandes permettant de calculer des probabilités avec des lois classiques :
-
-\begin{itemize}
- \item binomiale ;
- \item normale ;
- \item exponentielle ;
- \item de Poisson ;
- \item géométrique ;
- \item hypergéométrique.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{noteblock}
-Les commandes sont de deux natures :
-
-\begin{itemize}
- \item des commandes pour calculer, grâce au package \ctex{xintexpr} ;
- \item des commandes pour formater le résultat de \ctex{xintexpr}, grâce à \ctex{siunitx}.
-\end{itemize}
-
-De ce fait, les options de \ctex{siunitx} de l'utilisateur affecterons les formatages du résultat, la commande va \og forcer \fg{} les arrondis et l'écriture scientifique.
-\end{noteblock}
-
-\subsection{Calculs \og simples \fg}
-
-\begin{PresCodeTexPL}{listing only}
-%loi binomiale B(n,p)
-\CalcBinomP{n}{p}{k} %P(X=k)
-\CalcBinomC{n}{p}{a}{b} %P(a<=X<=b)
-
-%loi de Poisson P(l)
-\CalcPoissP{l}{k} %P(X=k)
-\CalcPoissC{l}{a}{b} %P(a<=X<=b)
-
-%loi géométrique G(p)
-\CalcGeomP{p}{k} %P(X=k)
-\CalcGeomC{l}{a}{b} %P(a<=X<=b)
-
-%loi hypergéométrique H(N,n,m)
-\CalcHypergeomP{N}{n}{m}{k} %P(X=k)
-\CalcHypergeomP{N}{n}{m}{a}{b} %P(a<=X<=b)
-
-%loi normale N(m,s)
-\CalcNormC{m}{s}{a}{b} %P(a<=X<=b)
-
-%loi exponentielle E(l)
-\CalcExpoC{l}{a}{b} %P(a<=X<=b)
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Les probabilités calculables sont donc -- comme pour beaucoup de modèles de calculatrices -- les probabilités \textbf{P}onctuelles ($P(X=k)$) et \textbf{C}umulées ($P(a\leqslant X\leqslant b)$).
-
-\smallskip
-
-Pour les probabilités cumulées, on peut utiliser le caractère \ctex{*} comme borne ($a$ ou $b$), pour les probabilités du type $P(X\leqslant b)$ et $P(X \geqslant a)$.
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-% X -> B(5,0.4)
-$P(X=3) \approx \CalcBinomP{5}{0.4}{3}$.
-$P(X\leqslant1) \approx \CalcBinomC{5}{0.4}{*}{1}$.
-
-% X -> B(100,0.02)
-$P(X=10) \approx \CalcBinomP{100}{0.02}{10}$.
-$P(15\leqslant X\leqslant25) \approx \CalcBinomC{100}{0.02}{15}{25}$.
-
-% Y -> P(5)
-$P(Y=3) \approx \CalcPoissP{5}{3}$.
-$P(Y\geqslant2) \approx \CalcPoissC{5}{2}{*}$.
-
-% T -> G(0.5)
-$P(T=100) \approx \CalcPoissP{0.5}{3}$.
-$P(T\leqslant5) \approx \CalcPoissC{0.5}{*}{5}$.
-
-% W -> H(50,10,5)
-$P(W=4) \approx \CalcHypergeomP{50}{10}{5}{4}$.
-$P(1\leqslant W\leqslant3) \approx \CalcHypergeomC{50}{10}{5}{1}{3}$.
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\bullet~~~~X \hookrightarrow \mathcal{B}(5\,; 0,4)$ :\\
-$P(X=3) \approx \CalcBinomP{5}{0.4}{3}$.\\
-$P(X\leqslant1) \approx \CalcBinomC{5}{0.4}{*}{1}$.
-
-\medskip
-
-$\bullet~~~~X \hookrightarrow \mathcal{B}(100\,; 0,02)$ :\\
-$P(X=10) \approx \CalcBinomP{100}{0.02}{10}$.\\
-$P(15\leqslant X\leqslant25) \approx \CalcBinomC{100}{0.02}{15}{25}$.
-
-\medskip
-
-$\bullet~~~~Y \hookrightarrow \mathcal{P}_5$ :\\
-$P(Y=3) \approx \CalcPoissP{5}{3}$.\\
-$P(Y\geqslant2) \approx \CalcPoissC{5}{2}{*}$.
-
-\medskip
-
-$\bullet~~~~T \hookrightarrow \mathcal{G}_{0,5}$ :\\
-$P(T=3) \approx \CalcGeomP{0.5}{3}$.\\
-$P(T\leqslant5) \approx \CalcGeomC{0.5}{*}{5}$.
-
-\medskip
-
-$\bullet~~~~W \hookrightarrow \mathcal{H}(50\,; 10\,; 5)$ :\\
-$P(W=4) \approx \CalcHypergeomP{50}{10}{5}{4}$.\\
-$P(1\leqslant W\leqslant3) \approx \CalcHypergeomC{50}{10}{5}{1}{3}$.
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-% X -> N(0,1)
-$P(X\leqslant1) \approx \CalcNormC{0}{1}{*}{1}$.
-$P(-1,96\leqslant Z\leqslant1,96) \approx \CalcNormC{0}{1}{-1.96}{1.96}$.
-
-% X -> N(550,30)
-$P(Y\geqslant600) \approx \CalcNormC{550}{30}{600}{*}$.
-$P(500\leqslant Y\leqslant600) \approx \CalcNormC{550}{30}{500}{600}$.
-
-% Z -> E(0.001)
-$P(Z\geqslant400) \approx \CalcExpoC{0.001}{400}{*}$.
-$P(300\leqslant Z\leqslant750) \approx \CalcExpoC{0.001}{300}{750}$.
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\bullet~~~~X \hookrightarrow \mathcal{N}(0\,; 1)$ :\\
-$P(X\leqslant1) \approx \CalcNormC{0}{1}{*}{1}$.\\
-$P(-1,96\leqslant Z\leqslant1,96) \approx \CalcNormC{0}{1}{-1.96}{1.96}$.
-
-\medskip
-
-$\bullet~~~~Y \hookrightarrow \mathcal{N}(550\,; 30)$ :\\
-$P(Y\geqslant600) \approx \CalcNormC{550}{30}{600}{*}$.\\
-$P(500\leqslant Y\leqslant600) \approx \CalcNormC{550}{30}{500}{600}$.
-
-\medskip
-
-$\bullet~~~~Z \hookrightarrow \mathcal{E}_{0,001}$ :\\
-$P(Z\geqslant400) \approx \CalcExpoC{0.001}{400}{*}$.\\
-$P(300\leqslant Z\leqslant750) \approx \CalcExpoC{0.001}{300}{750}$.
-\end{PresCodeSortiePL}
-
-\subsection{Complément avec sortie \og formatée \fg}
-
-\begin{tipblock}
-L'idée est ensuite de formater le résultat obtenu par \ctex{xintexpr}, pour un affichage homogène.
-
-\smallskip
-
-L'utilisateur peut donc utiliser \og sa \fg{} méthode pour formater les résultats obtenus par \ctex{xintexpr} !
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%avec un formatage manuel
-\num[exponent-mode=scientific]{\CalcBinomP{100}{0.02}{10}}
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-$\bullet~~~~X \hookrightarrow \mathcal{B}(100\,; 0,02)$ :
-
-$P(X=10) \approx \num[exponent-mode=scientific]{\CalcBinomP{100}{0.02}{10}}$.
-\end{PresCodePL}
-
-\begin{tipblock}
-Le package \ctex{ProfLycee} propose -- en complément -- des commandes pour formater, grâce à \ctex{siunitx}, le résultat.
-
-Les commandes ne sont donc, dans ce cas, pas préfixées par \ctex{calc} :
-
-\begin{itemize}
- \item formatage sous forme décimale \textit{pure} : $0,00\ldots$ ;
- \item formatage sous forme scientifique : $n,\ldots\times10^{\ldots}$.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%loi binomiale B(n,p)
-\BinomP(*)[prec]{n}{p}{k} %P(X=k)
-\BinomC(*)[prec]{n}{p}{a}{b} %P(a<=X<=b)
-
-%loi de Poisson P (l)
-\PoissonP(*)[prec]{l}{k} %P(X=k)
-\PoissonC(*)[prec]{l}{a}{b} %P(a<=X<=b)
-
-%loi géométrique G (p)
-\GeomP{p}{k} %P(X=k)
-\GeomC{l}{a}{b} %P(a<=X<=b)
-
-%loi hypergéométrique H (N,n,m)
-\HypergeomP{N}{n}{m}{k} %P(X=k)
-\HypergeomC{N}{n}{m}{a}{b} %P(a<=X<=b)
-
-%loi normale N(m,s)
-\NormaleC(*)[prec]{m}{s}{a}{b} %P(a<=X<=b)
-
-%loi exponentielle E(l)
-\ExpoC(*)[prec]{l}{a}{b} %P(a<=X<=b)
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques précisions sur les commandes précédentes :
-
-\begin{itemize}
- \item la version étoilée \Cle{*} des commandes formate le résultat en mode scientifique ;
- \item l'argument optionnel (par défaut \Cle{3}) correspond à quant à lui à l'arrondi.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-% X -> N(550,30)
-$P(Y\geqslant600) \approx \NormaleC[4]{550}{30}{600}{*}$.
-$P(500\leqslant Y\leqslant600) \approx \NormaleC[4]{550}{30}{500}{600}$.
-% X -> B(100,0.02)
-$P(X=10) \approx \BinomP[7]{100}{0.02}{10} \approx \BinomP*[7]{100}{0.02}{10}$.
-$P(15\leqslant X\leqslant25) \approx \BinomC[10]{100}{0.02}{15}{25} \approx \BinomC*[10]{100}{0.02}{15}{25}$.
-% H -> H(50,10,5)
-$P(W=4) \approx \HypergeomP[5]{50}{10}{5}{4}$.
-$P(1\leqslant W\leqslant3) \approx \HypergeomC[4]{50}{10}{5}{1}{3}$.
-% Z-> E(0,001)$ :
-$P(Z\geqslant400) \approx \ExpoC{0.001}{400}{*}$.
-$P(300\leqslant Z\leqslant750) \approx \ExpoC{0.001}{300}{750}$.
-% T -> P(5)
-$P(T=3) \approx \PoissonP{5}{3}$.
-$P(T\geqslant2) \approx \PoissonC[4]{5}{2}{*}$.
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\bullet~~~~Y \hookrightarrow \mathcal{N}(550\,; 30)$ :
-
-$P(Y\geqslant600) \approx \NormaleC[4]{550}{30}{600}{*}$.
-
-$P(500\leqslant Y\leqslant600) \approx \NormaleC[4]{550}{30}{500}{600}$.
-
-\medskip
-
-$\bullet~~~~X \hookrightarrow \mathcal{B}(100\,; 0,02)$ :
-
-$P(X=10) \approx \BinomP[7]{100}{0.02}{10} \approx \BinomP*[7]{100}{0.02}{10}$.
-
-$P(15\leqslant X\leqslant25) \approx \BinomC[10]{100}{0.02}{15}{25} \approx \BinomC*[10]{100}{0.02}{15}{25}$.
-
-\medskip
-
-$\bullet~~~~W \hookrightarrow \mathcal{H}(50\,; 10\,; 5)$ :
-
-$P(W=4) \approx \HypergeomP[5]{50}{10}{5}{4}$.
-
-$P(1\leqslant W\leqslant3) \approx \HypergeomC[4]{50}{10}{5}{1}{3}$.
-
-\medskip
-
-$\bullet~~~~Z \hookrightarrow \mathcal{E}_{0,001}$ :
-
-$P(Z\geqslant400) \approx \ExpoC{0.001}{400}{*}$.
-
-$P(300\leqslant Z\leqslant750) \approx \ExpoC{0.001}{300}{750}$.
-
-\medskip
-
-$\bullet~~~~T \hookrightarrow \mathcal{P}_5$ :
-
-$P(T=3) \approx \PoissonP{5}{3}$.
-
-$P(T\geqslant2) \approx \PoissonC[4]{5}{2}{*}$.
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-\hfill~\includegraphics[height=3cm]{./graphics/pl-doc-probas_a}~~\includegraphics[height=3cm]{./graphics/pl-doc-probas_c}~~\includegraphics[height=3cm]{./graphics/pl-doc-probas_e}~~\includegraphics[height=3cm]{./graphics/pl-doc-probas_f}\hfill~
-\end{noteblock}
+\input{ProfLycee-doc-probas.tex}
\newpage
-\section{Arbres de probabilités \og classiques \fg}\label{arbresprobas}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée est de proposer des commandes pour créer des arbres de probabilités classiques (et homogènes), en \TikZ, de format :
-
-\begin{itemize}
- \item $2\times2$ ou $2\times3$ ;
- \item $3\times2$ ou $3\times3$.
-\end{itemize}
-
-Les (deux) commandes sont donc liées à un environnement \ctex{tikzpicture}, et elles créent les nœuds de l'arbre, pour exploitation ultérieure éventuelle.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%commande simple pour tracé de l'arbre
-\ArbreProbasTikz[options]{donnees}
-
-%environnement pour tracé et exploitation éventuelle
-\begin{EnvArbreProbasTikz}[options]{donnees}
- code tikz supplémentaire
-\end{EnvArbreProbasTikz}
-\end{PresCodeTexPL}
-
-\subsection{Options et arguments}
-
-\begin{noteblock}
-Les \Cle{donnees} seront à préciser sous forme
-
-\hfill\ctex{<sommet1>/<proba1>/<position1>,<sommet2>/<proba2>/<position2>,...}\hfill~
-
-avec comme \og sens de lecture \fg{} de la gauche vers la droite puis du haut vers le bas (on balaye les \textit{sous-arbres}), avec comme possibilités :
-
-\begin{itemize}
- \item \cmaj{2.5.3} une donnée \Cle{proba} peut être laissée vide ou spécifiée avec des \textsf{macros} ;
- \item une donnée \Cle{position} peut valoir \Cle{above} (au-dessus), \Cle{below} (en-dessous) ou être laissée \Cle{vide} (sur).
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{cautionblock}
-Quelques \Cle{Clés} (communes) pour les deux commandes :
-
-\begin{itemize}
- \item la clé \Cle{Unite} pour préciser l'unité de l'environnement \TikZ{} ; \hfill~défaut \Cle{1cm}
- \item la clé \Cle{EspaceNiveau} pour l'espace (H) entre les étages ; \hfill~défaut \Cle{3.25}
- \item la clé \Cle{EspaceFeuille} pour l'espace (V) entre les feuilles ; \hfill~défaut \Cle{1}
- \item la clé \Cle{Type} pour le format, parmi \Cle{2x2} ou \Cle{2x3} ou \Cle{3x2} ou \Cle{3x3} ; \hfill~défaut \Cle{2x2}
- \item la clé \Cle{Police} pour la police des nœuds ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}normalsize}
- \item la clé \Cle{PoliceProbas} pour la police des probas ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}small}
- \item le booléen \Cle{InclineProbas} pour incliner les probas ; \hfill~défaut \Cle{true}
- \item le booléen \Cle{Fleche} pour afficher une flèche sur les branches ; \hfill~défaut \Cle{false}
- \item la clé \Cle{StyleTrait} pour les branches, en langage \TikZ{} ; \hfill~défaut \Cle{vide}
- \item la clé \Cle{EpaisseurTrait} pour l'épaisseur des branches, en langage \TikZ{} ; \hfill~défaut \Cle{semithick}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\def\ArbreDeuxDeux{
- $A$/\num{0.5}/,
- $B$/\num{0.4}/,
- $\overline{B}$/.../,
- $\overline{A}$/.../,
- $B$/.../,
- $\overline{B}$/$\frac{1}{3}$/
-}
-
-\ArbreProbasTikz{\ArbreDeuxDeux}
-
-%des éléménts, en gris, ont été rajoutés pour illustrer certaines options
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{EnvArbreProbasTikz}{$A$/\num{0.5}/,$B$/\num{0.4}/,$\overline{B}$/.../,$\overline{A}$/.../,$B$/.../,$\overline{B}$/$\frac{1}{3}$/}
- \draw[lightgray] (R) node[left,font=\ttfamily\small] {(R)} ;
- \draw[lightgray] (A11) node[below,font=\ttfamily\small] {(A11)} ;
- \draw[lightgray] (A12) node[below,font=\ttfamily\small] {(A12)} ;
- \draw[lightgray] (A21) node[below,font=\ttfamily\small] {(A21)} ;
- \draw[lightgray] (A22) node[below,font=\ttfamily\small] {(A22)} ;
- \draw[lightgray] (A23) node[below,font=\ttfamily\small] {(A23)} ;
- \draw[lightgray] (A24) node[below,font=\ttfamily\small] {(A24)} ;
- \draw[lightgray,<->,>=latex] (0,-4) -- (3.25,-4) node[midway,below,font=\ttfamily\small] {EspaceNiveau} ;
- \draw[lightgray,<->,>=latex] (3.25,-4) -- (6.5,-4) node[midway,below,font=\ttfamily\small] {EspaceNiveau} ;
- \draw[lightgray,<->,>=latex] (7,0) -- (7,-1) node[midway,right,font=\ttfamily\small] {EspaceFeuille} ;
- \draw[lightgray,<->,>=latex] (7,-1) -- (7,-2) node[midway,right,font=\ttfamily\small] {EspaceFeuille} ;
- \draw[lightgray,<->,>=latex] (7,-2) -- (7,-3) node[midway,right,font=\ttfamily\small] {EspaceFeuille} ;
-\end{EnvArbreProbasTikz}
-\end{PresCodeSortiePL}
-
-\begin{noteblock}
-Les nœuds crées par les commandes sont :
-
-\begin{itemize}
- \item \ctex{R} pour la racine ;
- \item \ctex{A1x} pour les nœuds du 1\up{er} niveau (de haut en bas) ;
- \item \ctex{A2x} pour les nœuds du 2\up{d} niveau (de haut en bas).
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\subsection{Exemples complémentaires}
-
-\begin{PresCodeTexPL}{listing only}
-\def\ArbreTroisDeux{
- $A_1$/\num{0.5}/above,
- $B$/\num{0.4}/above,
- $\overline{B}$/.../below,
- $A_2$/.../above,
- $B$/.../above,
- $\overline{B}$/$\frac{1}{3}$/below,
- $A_3$/.../below,
- $B$/.../above,
- $\overline{B}$/$\frac{4}{15}$/below
-}
-
-\begin{EnvArbreProbasTikz}[Type=3x2,Fleche,EspaceNiveau=5,EspaceFeuille=1.25]%
- {\ArbreTroisDeux}
- \draw[CouleurVertForet,->] (A24)--($(A24)+(2.5,0)$) node[right,font=\sffamily] {code tikz rajouté} ;
-\end{EnvArbreProbasTikz}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\begin{EnvArbreProbasTikz}[Type=3x2,Fleche,EspaceNiveau=5,EspaceFeuille=1.25]{$A_1$/\num{0.5}/above,$B$/\num{0.4}/above,$\overline{B}$/.../below,$A_2$/.../above,$B$/.../above,$\overline{B}$/$\frac{1}{3}$/below,$A_3$/.../below,$B$/.../above,$\overline{B}$/$\frac{4}{15}$/below}
- \draw[CouleurVertForet,->] (A24)--($(A24)+(2.5,0)$) node[right,font=\sffamily] {code tikz rajouté} ;
-\end{EnvArbreProbasTikz}
-\end{PresCodeSortiePL}
-
-\begin{PresCodeTexPL}{listing only}
-\def\ArbreDeuxTrois{
- $A$/\num{0.05}/above,
- $B_1$/\num{0.4}/above,$B_2$/\num{0.35}/,$B_3$//below,
- $\overline{A}$/.../below,
- $B_1$/$\frac{2}{15}$/above,$B_2$/.../,$B_3$/$\frac{1}{3}$/below
-}
-\ArbreProbasTikz[Type=2x3,InclineProbas=false,EspaceFeuille=1.15]{\ArbreDeuxTrois}
-
-\def\ArbreTroisTrois{
- $A_1$/\num{0.05}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,
- $A_2$/\num{0.80}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,
- $A_3$/\num{0.15}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/
-}
-
-\ArbreProbasTikz[Type=3x3,StyleTrait={densely dashed},EspaceFeuille=0.7,PoliceProbas=\scriptsize,Police=\small]{\ArbreTroisTrois}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\ArbreProbasTikz[Type=2x3,InclineProbas=false,EspaceFeuille=1.15]{$A$/\num{0.05}/above,$B_1$/\num{0.4}/above,$B_2$/\num{0.35}/,$B_3$//below,$\overline{A}$/.../below,$B_1$/$\frac{2}{15}$/above,$B_2$/.../,$B_3$/$\frac{1}{3}$/below}
-~~
-\ArbreProbasTikz[Type=3x3,StyleTrait={densely dashed},EspaceFeuille=0.7,PoliceProbas=\scriptsize,Police=\small]{$A_1$/\num{0.05}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,$A_2$/\num{0.80}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,$A_3$/\num{0.15}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Petits schémas pour des probabilités continues}\label{schemasprobas}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est de proposer des commandes pour illustrer, sous forme de schémas en \TikZ, des probabilités avec des lois continues (normales et exponentielles).
-
-\smallskip
-
-Ces \og schémas \fg{} peuvent être insérés en tant que graphique explicatif, ou bien en tant que petite illustration rapide !
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\LoiNormaleGraphe[options]<options tikz>{m}{s}{a}{b}
-
-\LoiExpoGraphe[options]<options tikz>{l}{a}{b}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\hfill\LoiNormaleGraphe{100}{20}{80}{120}\hspace{3cm}\LoiExpoGraphe{0.001}{250}{1500}\hfill~
-\end{PresCodeSortiePL}
-
-\begin{cautionblock}
-Les probabilités \textit{illustrables} sont donc des probabilités \textbf{C}umulées ($P(a\leqslant X\leqslant b)$).
-
-\smallskip
-
-On peut utiliser \ctex{*} comme borne ($a$ ou $b$), pour les probabilités du type $P(X\leqslant b)$ et $P(X \geqslant a)$.
-\end{cautionblock}
-
-\subsection{Commandes et options}
-
-\begin{cautionblock}
-Quelques \Cle{Clés} sont disponibles pour ces commandes :
-
-\begin{itemize}
- \item la clé \Cle{CouleurAire} pour l'aire sous la courbe ; \hfill{}défaut \Cle{LightGray}
- \item la clé \Cle{CouleurCourbe} pour la courbe ; \hfill{}défaut \Cle{red}
- \item la clé \Cle{Largeur} qui sera la largeur (en cm) du graphique ; \hfill{}défaut \Cle{2}
- \item la clé \Cle{Hauteur} qui sera la hauteur (en cm) du graphique ; \hfill{}défaut \Cle{1}
- \item un booléen \Cle{AfficheM} qui affiche la moyenne ; \hfill{}défaut \Cle{true}
- \item un booléen \Cle{AfficheCadre} qui affiche un cadre pour délimiter le schéma. \hfill{}défaut \Cle{true}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-Les commandes sont donc des environnements \TikZ, sans possibilité de \og rajouter \fg{} des éléments. Ces petis \textit{schémas} sont donc vraiment dédiés à \textit{montrer} rapidement une probabilité continue, sans fioriture.
-\end{noteblock}
-
-\begin{PresCodePL}{}
-Avec centrage vertical sur l'axe des abscisses :
-\LoiNormaleGraphe
- [AfficheM=false,CouleurCourbe=blue,CouleurAire=cyan]<baseline=0pt>%
- {1000}{100}{950}{*}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Avec quelques modifications :
-
-\LoiNormaleGraphe[Largeur=4,Hauteur=2]{150}{12.5}{122}{160}
-
-\medskip
-
-Avec centrage vertical :
-\LoiNormaleGraphe[Largeur=5,Hauteur=2.5]<baseline=(current bounding box.center)>{200}{5}{204}{*}
-
-\medskip
-
-Avec centrage vertical sur l'axe des abscisses :
-\LoiExpoGraphe
- [AfficheM=false,CouleurCourbe=blue,CouleurAire=cyan]<baseline=0pt>{0.05}{*}{32}
-
-\medskip
-
-\LoiExpoGraphe[Largeur=4,Hauteur=2]{0.00025}{5000}{*}
-\end{PresCodePL}
-
-\subsection{Remarques et compléments}
-
-\begin{noteblock}
-Pour le moment, seules les lois (continues) exponentielles et normales sont disponibles, peut-être que d'autres lois seront ajoutées, mais il ne me semble pas très pertinent de proposer des schémas similaires pour des lois discrètes, qui ont des \textit{représentations} assez variables\ldots
-\end{noteblock}
-
-\newpage
-
-\section{Nombres aléatoires}\label{entiersaleatoires}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.0.9} L'idée est de proposer des commandes pour générer des nombres aléatoires, pour exploitation ultérieure :
-
-\begin{itemize}
- \item un entier ou un nombre décimal ;
- \item des nombres entiers, avec ou sans répétitions.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{noteblock}
-Pour chacune des commandes, le ou les résultats sont stockés dans une \textsf{macro} dont le nom est choisi par l'utilisateur.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%entier aléatoire entre a et b
-\NbAlea{a}{b}{macro}
-
-%nombre décimal (n chiffres après la virgule) aléatoire entre a et b+1 (exclus)
-\NbAlea[n]{a}{b}{macro}
-
-%création d'un nombre aléatoire sous forme d'une macro
-\VarNbAlea{macro}{calculs}
-
-%liste d'entiers aléatoires
-\TirageAleatoireEntiers[options]{macro}
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-%nombre aléatoire entre 1 et 50, stocké dans \PremierNbAlea
-Entier entre 1 et 50 : \NbAlea{1}{50}{\PremierNbAlea}\PremierNbAlea \\
-%nombre aléatoire créé à partir du 1er, stocké dans \DeuxiemeNbAlea
-Entier à partir du précédent : \VarNbAlea{\DeuxiemeNbAlea}{\PremierNbAlea+randint(0,10)}\DeuxiemeNbAlea \\
-%nombre aléatoire décimal (au millième) entre 0 et 10+1 (exclus), stocké dans \PremierDecAlea
-Décimal entre 0 et $10,999\ldots$ : \NbAlea[3]{0}{10}{\PremierDecAlea}\PremierDecAlea \\
-%liste de 6 nombres, sans répétitions, entre 1 et 50
-Liste par défaut (6 entre 1 et 50) : \TirageAleatoireEntiers{\PremiereListeAlea}\PremiereListeAlea
-\end{PresCodePL}
-
-\begin{noteblock}
-Les listes créées sont exploitables, \textit{a posteriori}, par le package \ctex{listofitems} par exemple !
-\end{noteblock}
-
-\begin{PresCodePL}{}
-Liste générée : \TirageAleatoireEntiers{\TestListeA}\TestListeA
-
-Liste traitée : \readlist*\LISTEa{\TestListeA}\showitems{\LISTEa}
-\end{PresCodePL}
-
-\pagebreak
-
-\subsection{Clés et options}
-
-\begin{cautionblock}
-Quelques clés sont disponibles pour la commande \ctex{TirageAleatoireEntiers} :
-
-\begin{itemize}
- \item la clé \Cle{ValMin} pour préciser borne inférieure de l'intervalle ;\hfill{}défaut \Cle{1}
- \item la clé \Cle{ValMax} pour préciser borne supérieure de l'intervalle ;\hfill{}défaut \Cle{50}
- \item la clé \Cle{NbVal} qui est le nombre d'entiers à générer ;\hfill{}défaut \Cle{6}
- \item la clé \Cle{Sep} pour spécifier le séparateur d'éléments ;\hfill{}défaut \Cle{,}
- \item la clé \Cle{Tri} parmi \Cle{non/croissant/decroissant} pour trier les valeurs
- ;\hfill{}défaut \Cle{non}
- \item le booléen \Cle{Repetition} pour autoriser la répétition d'éléments.\hfill{}défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-Une liste de 15 valeurs (différentes), entre 10 et 100, stockée dans la macro MaListeA : \\
-Liste : \TirageAleatoireEntiers[ValMin=10,ValMax=100,NbVal=15]{\MaListeA}\MaListeA \\
-
-Une liste de 12 valeurs (différentes), entre 1 et 50, ordre croissant : \\
-Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=croissant]%
- {\MaListeB}\MaListeB \\
-
-Une liste de 12 valeurs (différentes), entre 1 et 50, ordre décroissant : \\
-Liste : \TirageAleatoireEntiers[ValMin=1,ValMax=50,NbVal=12,Tri=decroissant]%
- {\MaListeC}\MaListeC \\
-
-15 tirages de dé à 6 faces : \\ \TirageAleatoireEntiers[ValMin=1,ValMax=6,NbVal=15,Repetition]{\TestDes}\TestDes
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-Une liste (10) pour le Keno\textcopyright, ordonnée, et séparée par des \texttt{-} :
-
-\TirageAleatoireEntiers[ValMin=1,ValMax=70,NbVal=10,Tri=croissant,Sep={-}]{\ListeKeno}
-$\ListeKeno$
-
-\setsepchar{-}\readlist*\KENO{\ListeKeno}\showitems{\KENO}
-\end{PresCodePL}
-
-\newpage
-
-\section{Combinatoire}\label{combinatoire}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est de proposer une commande pour calculer un arrangement ou une combinaison, en utilisant les capacités de calcul du package \ctex{xint} (\cmaj{2.5.4}).
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\Arrangement(*)[option]{p}{n}
-\Combinaison(*)[option]{p}{n}
-\CalculAnp{p}{n} ou \CalculCnp{p}{n} dans un calcul via \xinteval{...}
-\end{PresCodeTexPL}
-
-\subsection{Utilisation}
-
-\begin{cautionblock}
-Peu de paramétrage pour ces commandes qui permettent de calculer $A_n^p$ et $\binom{n}{p}$ :
-
-\begin{itemize}
- \item les versions étoilées ne formatent pas le résultat grâce à \ctex{\textbackslash num} de \ctex{sinuitx} ;
- \item le booléen \Cle{Notation} pour avoir la notation au début ; \hfill~défaut \Cle{false}
- \item le booléen \Cle{NotationAncien} pour avoir la notation \og ancienne \fg{} des combinaisons au début ;
-
- \hfill~défaut \Cle{false}
- \item le booléen \Cle{Formule} permet de présenter la formule avant le résultat ;
-
- \hfill~défaut \Cle{false}
- \item le premier argument, \textit{obligatoire}, est la valeur de $p$ ;
- \item le second argument, \textit{obligatoire}, est la valeur de $n$.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-On a $A_{20}^3=\Arrangement*{3}{20}$ en non formaté,
-et $\Arrangement[Notation]{3}{20}$ en formaté avec la notation au début.
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-On a $\displaystyle\binom{20}{3}=\Combinaison*{3}{20}$ en non formaté,~
-et $\displaystyle\Combinaison[Notation]{3}{20}$ en formaté avec la notation au début.\\
-Et $\dbinom{20}{3}+\dbinom{20}{4} = \num{\xinteval{\CalculCnp{3}{20}+\CalculCnp{4}{20}}}$.
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-On a $\displaystyle\Arrangement[Notation,Formule]{3}{20}$.
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-On a $\displaystyle\Combinaison[NotationAncien,Formule]{3}{20}$. %ancienne notation FR
-\end{PresCodePL}
-
-\newpage
-
-\section{Fonction de répartition}\label{fctrepart}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.7.0} L'idée est de proposer une commande (en accord avec les commandes de repérage, page \pageref{reperagetikz}) pour tracer la représentation graphique d'une fonction de répartition discrète.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\begin{tikzpicture}[paramètres de la fenêtre]
- %commandes pour al fenêtre graphique
- \FonctionRepartTikz[clés]{liste des probas,borneinf,bornesup}
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\subsection{Utilisation}
-
-\begin{cautionblock}
-Le premier argument, optionnel et entre \ctex{[...]} propose les clés suivantes :
-
-\begin{itemize}
- \item la clé \Cle{Couleur} pour la couleur du tracé ; \hfill~défaut \Cle{red}
- \item la clé \Cle{Epaisseur} pour gérer l'épaisseur des tracés (en \textit{raccourci} \TikZ) ; \hfill~défaut \Cle{thick}
- \item le booléen \Cle{Pointilles} pour afficher les pointillés horizontaux ; \hfill~défaut \Cle{true}
- \item la clé \Cle{Extremite} parmi \Cle{crochet/point} pour gérer les extrémités des segments.
-
- \hfill~défaut \Cle{crochet}
-\end{itemize}
-
-L'argument obligatoire et entre \ctex{\{...\}} permet de spécifier la liste des \texttt{probas-intervalles} :
-
-\begin{itemize}
- \item avec \ctex{*} pour remplacer $\infty$ ;
- \item sous la forme \ctex{proba,borneinf,bornesup / proba,borneinf,bornesup / ...}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{importantblock}
-Le code \textit{remplace} \ctex{*} par les valeurs stockées dans \ctex{\textbackslash xmin} ou \ctex{\textbackslash xmax}, d'où l'intérêt d'utiliser la commande en \textit{partenariat} des commandes de repérage de \ctex{Proflycee}.
-\end{importantblock}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}[y=4cm,xmin=-2,xmax=10,ymin=0,ymax=1.1, xgrille=1,xgrilles=0.5,ygrille=0.5,ygrilles=0.125]
- \GrilleTikz %grille
- \AxesTikz %axes
- \AxexTikz{0,2,4,6,8} %graduations de (Ox)
- \AxeyTikz[AffGrad=false]{0,0.25,...,1} %graduations de (Oy) sans valeurs
- \AxeyTikz[Frac]{1/3,1/2,2/3,1} %valeurs des probas, en fraction
- %les probas étant données en fraction, on protège par des {...}
- \FonctionRepartTikz{0,*,0 / {1/3},0,2 / {1/2},2,4 / {2/3},4,6 / 1,6,*}
-\end{tikzpicture}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\begin{tikzpicture}[y=4cm,xmin=-1,xmax=13,ymin=0,ymax=1.1, xgrille=1,xgrilles=0.5,ygrille=0.2,ygrilles=0.125]
- \GrilleTikz[Affs=false]
- \AxesTikz
- \AxeyTikz{0,0.25,...,1}
- \AxexTikz{0,1,...,12}
- \FonctionRepartTikz[Extremite=point,Couleur=blue,Pointilles=false]%
- {0,*,2 / {1/36},2,3 / {3/36},3,4 / {6/36},4,5 / {10/36},5,6 / {15/36},6,7 / {21/36},7,8 / {26/36},8,9 / {30/36},9,10 / {33/36},10,11 / {35/36},11,12 / 1,12,*}
-\end{tikzpicture}
-\end{PresCodePL}
-\newpage
-
\phantom{t}\par\vfill\par
\begin{PART}
\begin{center}
@@ -6737,596 +469,7 @@ Le code \textit{remplace} \ctex{*} par les valeurs stockées dans \ctex{\textbac
\newpage
-\part{Outils pour l'arithmétique}
-
-\section{Conversions binaire/hexadécimal/décimal}\label{conversions}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est de \textit{compléter} les possibilités offertes par le package \ctex{xintbinhex}, en mettant en forme quelques conversions :
-
-\begin{itemize}
- \item décimal en binaire avec blocs de 4 chiffres en sortie ;
- \item hexadécimal en binaire avec blocs de 4 chiffres en sortie ;
- \item conversion binaire ou hexadécimal en décimal avec écriture polynomiale.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{noteblock}
-Le package \ctex{xintbinhex} est la base de ces macros, puisqu'il permet de faire des conversions directes !
-
-\smallskip
-
-Les macros présentées ici ne font que les intégrer dans un environnement adapté à une correction ou une présentation !
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\xintDecToHex{100}
-\xintDecToBin{51}
-\xintHexToDec{A4C}
-\xintBinToDec{110011}
-\xintBinToHex{11111111}
-\xintHexToBin{ACDC}
-\xintCHexToBin{3F}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\xintDecToHex{100}
-
-\xintDecToBin{51}
-
-\xintHexToDec{A4C}
-
-\xintBinToDec{110011}
-
-\xintBinToHex{11111111}
-
-\xintHexToBin{ACDC}
-
-\xintCHexToBin{3F}
-\end{PresCodeSortiePL}
-
-\subsection{Conversion décimal vers binaire}
-
-\begin{PresCodeTexPL}{listing only}
-\ConversionDecBin(*)[clés]{nombre}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Concernant la commande en elle même, peu de paramétrage :
-
-\begin{itemize}
- \item la version \textit{étoilée} qui permet de ne pas afficher de zéros avant pour \og compléter \fg{} ;
- \item le booléen \Cle{AffBase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item l'argument, \textit{obligatoire}, est le nombre entier à convertir.
-\end{itemize}
-
-Le formatage est géré par \ctex{sinuitx}, le mieux est donc de positionner la commande dans un environnement mathématique.
-
-\smallskip
-
-Les nombres écrits en binaire sont, par défaut, présentés en bloc(s) de 4 chiffres.
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-% Conversion avec affichage de la base et par bloc de 4
-$\ConversionDecBin{415}$
-% Conversion avec affichage de la base et sans forcément des blocs de 4
-$\ConversionDecBin*{415}$
-% Conversion sans affichage de la base et par bloc de 4
-$\ConversionDecBin[AffBase=false]{415}$
-% Conversion sans affichage de la base et sans forcément des blocs de 4
-$\ConversionDecBin*[AffBase=false]{415}$
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\ConversionDecBin{415}$
-
-\smallskip
-
-$\ConversionDecBin*{415}$
-
-\smallskip
-
-$\ConversionDecBin[AffBase=false]{415}$
-
-\smallskip
-
-$\ConversionDecBin*[AffBase=false]{415}$
-\end{PresCodeSortiePL}
-
-\subsection{Conversion binaire vers hexadécimal}
-
-\begin{noteblock}
-L'idée est ici de présenter la conversion, grâce à la conversion \og directe \fg{} par blocs de 4 chiffres :
-
-\begin{itemize}
- \item la macro rajoute éventuellement les zéros pour compléter ;
- \item elle découpe par blocs de 4 chiffres binaires ;
- \item elle présente la conversion de chacun des blocs de 4 chiffres binaires ;
- \item elle affiche la conversion en binaire.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ConversionBinHex[clés]{nombre}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item le booléen \Cle{AffBase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{Details} qui permet d'afficher ou le détail par bloc de 4. \hfill{}défaut \Cle{true}
- %\item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt}
-\end{itemize}
-
-Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%conversion avec détails et affichage de la base
-$\ConversionBinHex{110011111}$
-%conversion sans détails et affichage de la base
-$\ConversionBinHex[Details=false]{110011111}$
-%conversion sans détails et sans affichage de la base
-$\ConversionBinHex[AffBase=false,Details=false]{110011111}$
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\ConversionBinHex{110011111}$
-
-$\ConversionBinHex[Details=false]{110011111}$
-
-$\ConversionBinHex[AffBase=false,Details=false]{110011111}$
-\end{PresCodeSortiePL}
-
-\pagebreak
-
-\subsection{Conversion hexadécimal vers binaire}\label{convhexbin}
-
-\begin{noteblock}
-\cmaj{2.7.8} L'idée est ici de présenter la conversion, grâce à la conversion \og directe \fg{} par blocs de 4 chiffres :
-
-\begin{itemize}
- \item la macro découpe chaque caractère hexa en bloc de 4 chiffres binaires ;
- \item elle affiche la conversion en binaire.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ConversionHexBin[clés]{nombre}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item le booléen \Cle{AffBase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{Details} qui permet d'afficher ou le détail par bloc de 4. \hfill{}défaut \Cle{true}
- %\item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt}
-\end{itemize}
-
-La commande est à insérer dans un environnement mathématique.
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%conversion avec détails et affichage de la base
-$\ConversionHexBin{ACDC}$
-%conversion sans détails et affichage de la base
-$\ConversionHexBin[Details=false]{ACDC}$
-%conversion sans détails et sans affichage de la base
-$\ConversionHexBin[AffBase=false,Details=false]{ACDC}$
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\ConversionHexBin{ACDC}$
-
-$\ConversionHexBin[Details=false]{ACDC}$
-
-$\ConversionHexBin[AffBase=false,Details=false]{ACDC}$
-\end{PresCodeSortiePL}
-
-\subsection{Conversion binaire ou hexadécimal en décimal}
-
-\begin{noteblock}
-L'idée est ici de présenter la conversion, grâce à l'écriture polynômiale :
-
-\begin{itemize}
- \item écrit la somme des puissances ;
- \item convertir si besoin les \textit{chiffres} hexadécimal ;
- \item peut ne pas afficher les monômes de coefficient 0.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ConversionVersDec[clés]{nombre}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{BaseDep} qui est la base de départ (2 ou 16 !) ; \hfill{}défaut \Cle{2}
- \item le booléen \Cle{AffBase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{Details} qui permet d'afficher ou le détail par bloc de 4 ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{Zeros} qui affiche les chiffres 0 dans la somme. \hfill{}défaut \Cle{true}
-\end{itemize}
-
-Le formatage est toujours géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%conversion 16->10 avec détails et affichage de la base et zéros
-$\ConversionVersDec[BaseDep=16]{19F}$
-%conversion 2->10 avec détails et affichage de la base et zéros
-$\ConversionVersDec{110011}$
-%conversion 2->10 avec détails et affichage de la base et sans zéros
-$\ConversionVersDec[Zeros=false]{110011}$
-%conversion 16->10 sans détails et affichage de la base et avec zéros
-$\ConversionVersDec[BaseDep=16,Details=false]{AC0DC}$
-%conversion 16->10 avec détails et sans affichage de la base et sans zéros
-$\ConversionVersDec[Eeros=false,Basedep=16]{AC0DC}$
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\ConversionVersDec[BaseDep=16]{19F}$
-
-$\ConversionVersDec{110011}$
-
-$\ConversionVersDec[Zeros=false]{110011}$
-
-$\ConversionVersDec[BaseDep=16,Details=false]{AC0DC}$
-
-$\ConversionVersDec[Zeros=false,BaseDep=16]{AC0DC}$
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Conversion \og présentée \fg{} d'un nombre en base décimale}\label{convrestes}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est de proposer une \og présentation \fg{} par divisions euclidiennes pour la conversion d'un entier donné en base 10 dans une base quelconque.
-
-\smallskip
-
-Les commandes de la section précédente donne \textit{juste} les résultats, dans cette section il y a en plus la présentation de la conversion.
-
-\smallskip
-
-La commande utilise -- par défaut -- du code \TikZ{} en mode \ctex{overlay}, donc on pourra déclarer -- si ce n'est pas fait -- dans le préambule, la commande qui suit.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-...
-\tikzstyle{every picture}+=[remember picture]
-...
-\end{PresCodeTexPL}
-
-\subsection{Code et clés}
-
-\begin{PresCodePL}{}
-%conversion basique
-\ConversionDepuisBaseDix{78}{2}
-\end{PresCodePL}
-
-\begin{noteblock}
-La \og tableau \fg, qui est géré par \ctex{array} est inséré dans un \ctex{ensuremath}, donc les \ctex{\$...\$} ne sont pas utiles.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ConversionDepuisBaseDix[options]{nombre en base 10}{base d'arrivée}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Quelques options pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{Couleur} pour la couleur du \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{red}
- \item la clé \Cle{DecalH} pour gérer le décalage H du \og rectangle \fg{}, qui peut être donné soit sous la forme \Cle{Esp} ou soit sous la forme \Cle{espgauche/espdroite}; \hfill{}défaut \Cle{2pt}
- \item la clé \Cle{DecalV} pour le décalage vertical du \og rectangle \fg{} ; \hfill{}défaut \Cle{3pt}
- \item la clé \Cle{Noeud} pour le préfixe du nœud du premier et du dernier reste (pour utilisation en \TikZ) ;
-
- \hfill{}défaut \Cle{EEE}
- \item le booléen \Cle{Rect} pour afficher ou non le \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{CouleurRes} pour afficher ou non la conversion en couleur (identique au rectangle).
-
- \hfill{}défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-%conversion avec changement de couleur
-\ConversionDepuisBaseDix[Couleur=blue]{45}{2}
-
-%conversion sans le rectangle
-Par divisions euclidiennes successives, \ConversionDepuisBaseDix[Rect=false]{54}{3}.
-
-%conversion avec gestion du decalh pour le placement précis du rectangle
-\ConversionDepuisBaseDix[Couleur=brown,DecalH=6pt/2pt]{1012}{16}
-
-%conversion avec noeud personnalisé et réutilisation
-\ConversionDepuisBaseDix[Couleur=CouleurVertForet,CouleurRes,Noeud=TEST]{100}{9}.
-\begin{tikzpicture}
- \draw[overlay,CouleurVertForet,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\ConversionDepuisBaseDix[Couleur=blue]{45}{2}
-
-\medskip
-
-Par divisions euclidiennes successives, \ConversionDepuisBaseDix[Rect=false]{54}{3}.
-
-\medskip
-
-\ConversionDepuisBaseDix[Couleur=brown,DecalH=6pt/2pt]{1012}{16}
-
-\medskip
-
-On obtient donc \ConversionDepuisBaseDix[Couleur=CouleurVertForet,CouleurRes,Noeud=TEST]{100}{9}.
-\begin{tikzpicture}
- \draw[overlay,CouleurVertForet,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
-\end{tikzpicture}
-
-\vspace{1.5cm}
-
-~
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Algorithme d'Euclide pour le PGCD}\label{prespgcd}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est de proposer une \og présentation \fg{} de l'algorithme d'Euclide pour le calcul du PGCD de deux entiers.
-
-Le package \ctex{xintgcd} permet déjà de le faire, il s'agit ici de travailler sur la \textit{mise en forme}.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\PresentationPGCD[options]{a}{b}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-\tikzstyle{every picture}+=[remember picture]
-...
-\PresentationPGCD{150}{27}
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-\PresentationPGCD{150}{27}
-\end{PresCodePL}
-
-\begin{warningblock}
-La mise en valeur du dernier reste non nul est géré par du code \TikZ, en mode \ctex{overlay}, donc il faut bien penser à déclarer dans le préambule : \ctex{\textbackslash{}tikzstyle\{every picture\}+=[remember picture]}
-\end{warningblock}
-
-\subsection{Options et clés}
-
-\begin{cautionblock}
-Quelques options disponibles pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{Couleur} qui correspond à la couleur pour la mise en valeur ; \hfill{}défaut \Cle{red}
- \item la clé \Cle{DecalRect} qui correspond à l'écartement du rectangle de mise en valeur ; \hfill{}défaut \Cle{2pt}
- \item le booléen \Cle{Rectangle} qui gère l'affichage ou non du rectangle de mise ne valeur ;
-
- \hfill{}défaut \Cle{true}
- \item la clé \Cle{Noeud} qui gère le préfixe du nom du nœud \TikZ{} du rectangle (pour exploitation ultérieure) ;
-
- \hfill{}défaut \Cle{FFF}
- \item le booléen \Cle{CouleurResultat} pour mettre ou non en couleur de PGCD ; \hfill{}défaut \Cle{false}
- \item le booléen \Cle{AfficheConclusion} pour afficher ou non la conclusion ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{AfficheDelimiteurs} pour afficher ou non les délimiteurs (accolade gauche et trait droit).
-
- \hfill{}défaut \Cle{true}
-\end{itemize}
-
-\medskip
-
-Le rectangle de mise en valeur est donc un nœud \TikZ{} qui sera nommé, par défaut \ctex{FFF1}.
-
-\medskip
-
-La présentation est dans un environnement \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas indispensables.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-\PresentationPGCD[CouleurResultat]{150}{27}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\PresentationPGCD[CouleurResultat,Couleur=CouleurVertForet]{1250}{450}.
-
-\PresentationPGCD[CouleurResultat,Couleur=blue]{13500}{2500}.
-
-\PresentationPGCD[Rectangle=false]{420}{540}. \\
-
-D'après l'algorithme d'Euclide, on a $\left| \PresentationPGCD[Couleur=lime,AfficheConclusion=false, AfficheDelimiteurs=false]%
- {123456789}{9876} \right.$
-\begin{tikzpicture}
- \draw[overlay,lime,thick,<-] (FFF1.east) to[bend right] ++ (1cm,0.75cm) node[right] {dernier reste non nul} ;
-\end{tikzpicture}
-\end{PresCodePL}
-
-\subsection{Compléments}
-
-\begin{noteblock}
-La présentation des divisions euclidiennes est gérée par un tableau du type \ctex{array}, avec alignement vertical de symboles \ctex{=} et \ctex{+}.
-
-Par défaut, les délimiteurs choisis sont donc l'accolade gauche et le trait droit, mais la clé booléenne \Cle{AfficheDelimiteurs=false} permet de choisir des délimiteurs différents.
-\end{noteblock}
-
-\begin{PresCodePL}{}
-$\left[ \PresentationPGCD[AfficheConclusion=false,AfficheDelimiteurs=false]{1234}{5} \right]$
-\end{PresCodePL}
-
-\newpage
-
-\section{Résolution d'une équation diophantienne}\label{eqdioph}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est de proposer une résolution d'équation diophantienne du type $ax+by=c$ avec $(a;b;c) \in \mathbb{Z}^3$.
-
-\smallskip
-
-Le \textit{code} se charge de tester les différentes conditions d'existence, et d'adapter la rédaction (fixée et non modifiable\ldots) aux différentes situations :
-
-\begin{itemize}
- \item cas où $\text{PGCD}(a;b)=1$ ;\hfill~existence de solutions
- \item cas où $\text{PGCD}(a;b) \neq 1$ et $\text{PGCD}(a;b) \mid c$;\hfill~existence de solutions
- \item cas où $\text{PGCD}(a;b) \neq 1$ et $\text{PGCD}(a;b) \not\mid c$.\hfill~pas de solution
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{warningblock}
-Logiquement le \textit{code} se charge de \textit{parenthéser} de manière automatique pour les nombres négatifs, mais il se peut que certains cas particuliers puissent donner des résultats \og non esthétiques \fg{}\ldots
-\end{warningblock}
-
-\begin{PresCodeTexPL}{listing only}
-\EquationDiophantienne[Clés]{equation}
-\end{PresCodeTexPL}
-
-\subsection{Options et clés}
-
-\begin{cautionblock}
-Concernant les Clés disponibles pour cette commande, à donner entre \ctex{[...]} :
-
-\begin{itemize}
- \item la clé \Cle{Lettre} pour spécifier le \textit{nom} de l'équation ; \hfill{}défaut \Cle{E}
- \item la clé \Cle{Inconnues} qui paramètre les noms des inconnues, sous la forme \Cle{x/y} ; \hfill{}défaut \Cle{x/y}
- \item la clé \Cle{Entier} qui gère le nom de l'entier dans la solution ; \hfill{}défaut \Cle{k}
- \item le booléen \Cle{Cadres} pour mettre en valeur les solutions ;\hfill{}défaut \Cle{false}
- \item le booléen \Cle{PresPGCD} présenter le calcul du PGCD de $|a|$ et de $|b|$.\hfill{}défaut \Cle{true}
-\end{itemize}
-
-L'argument obligatoire, et entre \ctex{\{...\}} est quant à lui l'équation, en langage \og naturel \fg{} du type \ctex{ax+by=c} (le \textit{code} se charge d'extraire les coefficients, donc pas besoin des signes *).
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-\EquationDiophantienne{48x+18y=3}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\EquationDiophantienne[PresPGCD=false]{48x+18y=-5}
-\end{PresCodePL}
-
-\pagebreak
-
-\begin{PresCodePL}{}
-\EquationDiophantienne{3x+4y=1}
-\end{PresCodePL}
-
-\pagebreak
-
-\begin{PresCodePL}{}
-\EquationDiophantienne[Cadres,Inconnues=u/v,Entier=l]{48u+18v=12}
-\end{PresCodePL}
-
-\pagebreak
-
-\begin{PresCodePL}{}
-\EquationDiophantienne{47x-18y=1}
-\end{PresCodePL}
-
-\newpage
-
-\section{Diviseurs}\label{listediv}
-
-\subsection{Idées}
-
-\begin{tipblock}
-L'idée est de proposer des commandes pour travailler sur les diviseurs d'un entier :
-
-\begin{itemize}
- \item afficher la liste des diviseurs sous forme d'un ensemble ordonné ;
- \item créer un arbre pour retrouver les diviseurs par la décomposition en facteurs premiers.
-\end{itemize}
-
-Le code se charge de déterminer les diviseurs et de mettre en forme l'arbre.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ListeDiviseurs(*)[Clé]{nombre}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-\ArbreDiviseurs[Clés]{nombre}
-\end{PresCodeTexPL}
-
-\subsection{Options et clés}
-
-\begin{cautionblock}
-En ce qui concerne la commande pour la liste des diviseurs :
-
-\begin{itemize}
- \item la version \textit{étoilée} permet d'afficher le nom de l'ensemble via \ctex{\textbackslash mathscr}, \ctex{\textbackslash mathcal} sinon;
- \item le booléen \Cle{AffNom} permet d'afficher le nom de l'ensemble ; \hfill{}défaut \Cle{true}
- \item l'argument obligatoire, et entre \ctex{\{...\}}, est quant lui le nombre, y compris en langage \ctex{xint}.
-\end{itemize}
-
-À noter que la commande est incluse dans un bloc \ctex{\textbackslash ensuremath}, donc les \ctex{$...$} ne sont pas nécessaires.
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-%sortie par défaut
-\ListeDiviseurs{150}
-
-%sortie avec \mathscr (si chargé)
-\ListeDiviseurs*{300}
-
-%sortie sans libellé
-\ListeDiviseurs[AffNom=false]{60}
-\end{PresCodePL}
-
-\begin{cautionblock}
-En ce qui concerne la commande pour l'arbre (créé en \TikZ) permettant d'obtenir la liste des diviseurs (je remercie Christophe Poulain pour un \textit{bout de code} que j'ai adapté et pour son aide précieuse) :
-
-\begin{itemize}
- \item les clés disponible sont :
- \begin{itemize}
- \item la clé \Cle{EspaceNiveau} qui est l'espace horizontal (en cm) entre les étages ; \hfill{}défaut \Cle{2.25}
- \item la clé \Cle{EspaceFeuille} qui est l'espace vertical entre les feuilles ; \hfill{}défaut \Cle{0.66}
- \item le booléen \Cle{Details} pour afficher les calculs des diviseurs ; \hfill{}défaut \Cle{true}
- \item la clé \Cle{CouleurDetails} pour la couleur des détails ; \hfill{}défaut \Cle{red}
- \item la clé \Cle{Echelle} pour spécifier une échelle globale (y compris le texte) de la figure ;
-
- \hfill{}défaut \Cle{1}
- \item le booléen \Cle{Fleches} pour afficher une flèche sur les branches.\hfill{}défaut \Cle{true}
- \end{itemize}
- \item l'argument obligatoire, et entre \ctex{\{...\}}, est quant lui le nombre, y compris en langage \ctex{xint}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-%sortie par défaut
-\ArbreDiviseurs{60}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-%sortie personnalisée
-\ArbreDiviseurs[EspaceNiveau=4,EspaceFeuille=1,Details=false]{60}
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-\ArbreDiviseurs[EspaceNiveau=2,Echelle=0.75,CouleurDetails=teal,Fleches=false]{2^2*3*5*7*11}
-\end{PresCodePL}
+\input{ProfLycee-doc-arithm.tex}
\newpage
@@ -7340,423 +483,7 @@ En ce qui concerne la commande pour l'arbre (créé en \TikZ) permettant d'obten
\newpage
-\part{Écritures, simplifications}
-
-\section{Simplification sous forme d'une fractions}\label{convfrac}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est d'obtenir une commande pour \textit{simplifier} un calcul sous forme de fraction irréductible.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ConversionFraction(*)[option de formatage]{calcul}
-\end{PresCodeTexPL}
-
-\subsection{Commande et options}
-
-\begin{cautionblock}
-Quelques explications sur cette commande :
-
-\begin{itemize}
- \item \cmaj{2.5.1} la version \textit{étoilée} force l'écriture du signe \og $-$ \fg{} sur le numérateur ;
- \item le premier argument, \textit{optionnel} et entre \textsf{[...]} permet de spécifier un formatage du résultat :
- \begin{itemize}
- \item \Cle{t} pour l'affichage de la fraction en mode \textsf{tfrac} ;
- \item \Cle{d} pour l'affichage de la fraction en mode \textsf{dfrac} ;
- \item \Cle{n} pour l'affichage de la fraction en mode \textsf{nicefrac} ;
- \item \Cle{dec} pour l'affichage du résultat en mode \texttt{décimal} (sans arrondi !) ;
- \item \Cle{dec=k} pour l'affichage du résultat en mode \texttt{décimal} arrondi à $10^{-k}$ ;
- \end{itemize}
- \item le second argument, \textit{obligatoire}, est quant à lui, le calcul en syntaxe \textsf{xint}.
-\end{itemize}
-
-À noter que la macro est dans un bloc \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas nécessaires.
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-\ConversionFraction{-10+1/3*(-5/16)} %sortie par défaut
-\ConversionFraction*{-10+1/3*(-5/16)} %sortie fraction avec - sur numérateur
-\ConversionFraction[d]{-10+1/3*(-5/16)} %sortie en displaystyle
-\ConversionFraction[n]{-10+1/3*(-5/16)} %sortie en nicefrac
-\ConversionFraction[dec=4]{-10+1/3*(-5/16)} %sortie en décimal arrondi à 0,0001
-\ConversionFraction{2+91/7} %entier formaté
-\ConversionFraction{111/2145}
-\ConversionFraction{111/3}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\ConversionFraction{-10+1/3*(-5/16)}
-
-\smallskip
-
-\ConversionFraction*{-10+1/3*(-5/16)}
-
-\smallskip
-
-\ConversionFraction[d]{-10+1/3*(-5/16)}
-
-\smallskip
-
-\ConversionFraction[n]{-10+1/3*(-5/16)}
-
-\smallskip
-
-\ConversionFraction[dec=4]{-10+1/3*(-5/16)}
-
-\smallskip
-
-\ConversionFraction{2+91/7}
-
-\smallskip
-
-\ConversionFraction{111/2145}
-
-\smallskip
-
-\ConversionFraction{111/3}
-\end{PresCodeSortiePL}
-
-\begin{PresCodePL}{}
-$\frac{111}{2145}=\ConversionFraction{111/2145}$ \\
-
-$\frac{3}{15}=\ConversionFraction[]{3/15}$ \\
-
-$\tfrac{3}{15}=\ConversionFraction[t]{3/15}$ \\
-
-$\dfrac{3}{15}=\ConversionFraction[d]{3/15}$ \\
-
-$\dfrac{0,42}{0,015}=\ConversionFraction[d]{0.42/0.015}$ \\
-
-$\dfrac{0,41}{0,015}=\ConversionFraction[d]{0.41/0.015}$ \\
-
-$\dfrac{1}{7}-\dfrac{3}{8}=\ConversionFraction[d]{1/7-3/8}$ \\
-
-$\ConversionFraction[d]{1+1/2}$ \\
-
-$\ConversionFraction{0.1/0.7+30/80}$
-\end{PresCodePL}
-
-\begin{noteblock}
-A priori le package \ctex{xint} permet de s'en sortir pour des calculs \og simples \fg, je ne garantis pas que tout calcul ou toute division donne un résultat \textit{satisfaisant} !
-\end{noteblock}
-
-\newpage
-
-\section{Écriture d'un trinôme, trinôme aléatoire}\label{trinome}
-
-\subsection{Idée}
-
-\begin{tipblock}
-L'idée est de proposer une commande pour écrire, sous forme développée réduite, un trinôme en fonction de ses coefficients $a$, $b$ et $c$ (avec $a\neq0$), avec la gestion des coefficients nuls ou égaux à $\pm1$.
-
-\smallskip
-
-En combinant avec le package \ctex{xfp} et fonction de générateur d'entiers aléatoires, on peut de ce fait proposer une commande pour générer aléatoirement des trinômes à coefficients entiers (pour des fiches d'exercices par exemple).
-
-\smallskip
-
-L'affichage des monômes est géré par le package \ctex{siunitx} et le tout est dans un environnement \ctex{ensuremath}.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\EcritureTrinome[options]{a}{b}{c}
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-\EcritureTrinome{1}{7}{0}\\
-\EcritureTrinome{1.5}{7.3}{2.56}\\
-\EcritureTrinome{-1}{0}{12}\\
-\EcritureTrinome{-1}{-5}{0}
-\end{PresCodePL}
-
-\subsection{Clés et options}
-
-\begin{cautionblock}
-Quelques clés et options sont disponibles :
-
-\begin{itemize}
- \item la clé booléenne \Cle{Alea} pour autoriser les coefficients aléatoires ;\hfill{}défaut \Cle{false}
- \item la clé booléenne \Cle{Anegatif} pour autoriser $a$ à être négatif.\hfill{}défaut \Cle{true}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-La clé \Cle{Alea} va modifier la manière de saisir les coefficients, il suffira dans ce cas de préciser les bornes, sous la forme \ctex{valmin,valmax}, de chacun des coefficients. C'est ensuite le package \ctex{xfp} qui va se charger de générer les coefficients.
-\end{noteblock}
-
-\begin{PresCodePL}{}
-Avec $a$ entre 1 et 5 (et signe aléatoire) puis $b$ entre $-2$ et 7 puis $c$ entre $-10$ et 20 : \\
-$f(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
-$g(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
-$h(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
-Avec $a$ entre 1 et 10 (forcément positif) puis $b$ entre $-2$ et 2 puis $c$ entre 0 et 4 : \\
-\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}\\
-\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}\\
-\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}
-\end{PresCodePL}
-
-\newpage
-
-\section{Simplification de racines}\label{simplracine}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.1.0} L'idée est de proposer une commande pour simplifier \textit{automatiquement} une racine carrée, sous la forme $\frac{a\sqrt{b}}{c}$ avec $\frac{a}{c}$ irréductible et $b$ le \frquote{plus petit possible}.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\SimplificationRacine{expression ou calcul}
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-\SimplificationRacine{48} \\ \SimplificationRacine{100/34}\\
-\SimplificationRacine{99999} \\ \SimplificationRacine{1500*0.31*(1-0.31)}\\
-\end{PresCodePL}
-
-\begin{noteblock}
-C'est -- comme souvent -- le package \ctex{xint} qui s'occupe en interne des calculs, et qui devrait donner des résultats satisfaisants dans la majorité des cas (attention aux \textit{grands nombres}\ldots)
-
-\smallskip
-
-La commande ne fait pas office de \textit{calculatrice}, elle ne permet \textit{que} de simplifier \textit{une} racine carrée (donc transformer si besoin !).
-\end{noteblock}
-
-\subsection{Exemples}
-
-\begin{PresCodePL}{}
-%Simplification d'un module de complexe
-$\left| 4+6\text{i}\right| = \sqrt{4^2+6^2} = \sqrt{\xinteval{4**2+6**2}}=\SimplificationRacine{4**2+6**2}$
-
-%Simplification n°1
-$\frac{1}{\sqrt{6}}=\left(\sqrt{\frac{1}{6}}\right)=\SimplificationRacine{1/6}$
-
-%Simplification n°2
-$\frac{42}{\sqrt{5}}=\left(\sqrt{\frac{42^2}{5}}\right)=\SimplificationRacine{(42*42)/5}$
-
-%Écart-type d'une loi binomiale
-$\sqrt{\num{150}\times\num{0.35}\times(1-\num{0.35})} = \displaystyle\SimplificationRacine{150*0.35*(1-0.35)}$
-\end{PresCodePL}
-
-\newpage
-
-\section{Mesure principale d'un angle}\label{mesureprincipale}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.1.2} L'idée est de proposer (sur une suggestion de Marylyne Vignal) une commande pour déterminer la mesure principale d'un angle en radian.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\MesurePrincipale[booléens]{angle} %dans un mode mathématique
-\end{PresCodeTexPL}
-
-\begin{noteblock}
-La commande est à insérer dans un environnement mathématique, via \ctex{\$...\$} ou \ctex{\textbackslash[...\textbackslash]}.
-
-L'angle est donné sous forme \textit{explicite} avec la chaîne \ctex{pi}.
-\end{noteblock}
-
-\subsection{Exemples}
-
-\begin{cautionblock}
-Pour cette commande :
-
-\begin{itemize}
- \item le booléen \Cle{d} permet de forcer l'affichage en \ctex{displaystyle} ; \hfill{}défaut \Cle{false}
- \item le booléen \Cle{Crochets} permet d'afficher le \textit{modulo} entre crochets (sinon parenthèses) ;
-
- \hfill{}défaut \Cle{false}
- \item \cmaj{2.6.0} le booléen \Cle{Brut} pour afficher uniquement la mesure principale ; \hfill{}défaut \Cle{false}
- \item l'argument \textit{obligatoire} est en écriture \textit{en ligne}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{listing only}
-$\MesurePrincipale[d]{54pi/7}$
-$\MesurePrincipale[d]{-128pi/15}$
-$\MesurePrincipale{3pi/2}$
-$\MesurePrincipale[Crochets]{5pi/2}$
-$\MesurePrincipale{-13pi}$
-$\MesurePrincipale{28pi}$
-$\MesurePrincipale[d]{14pi/4}$
-$\MesurePrincipale[Crochets]{14pi/7}$
-$\dfrac{121\pi}{12} = \MesurePrincipale[Brut]{121pi/12}$ à $2\pi$ près
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-$\MesurePrincipale[d]{54pi/7}$
-
-\medskip
-
-$\MesurePrincipale{-128pi/15}$
-
-\medskip
-
-$\MesurePrincipale{3pi/2}$
-
-\medskip
-
-$\MesurePrincipale[Crochets]{5pi/2}$
-
-\medskip
-
-$\MesurePrincipale{-13pi}$
-
-\medskip
-
-$\MesurePrincipale{28pi}$
-
-\medskip
-
-$\MesurePrincipale[d]{14pi/4}$
-
-\medskip
-
-$\MesurePrincipale[Crochets]{14pi/7}$
-
-\medskip
-
-$\dfrac{121\pi}{12} = \MesurePrincipale[d,Brut]{121pi/12}$ à $2\pi$ près
-\end{PresCodeSortiePL}
-
-\pagebreak
-
-\section{Lignes trigonométriques}\label{lignestrigo}
-
-\subsection{Idée}
-
-\begin{tipblock}
-\cmaj{2.6.0} L'idée est de proposer pour déterminer les lignes trigonométriques (cos, sin et tan) d'angles classiques, formés des \og $\pi$ \fg{} et \og $\pi$ sur 2 ; 3 ; 4 ; 5 ; 6 ; 8 ; 10 ; 12 \fg{}.
-
-\smallskip
-
-La commande détermine -- et affiche si demandée la réduction -- et la valeur exacte de la ligne trigonométrique demandée.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-\LigneTrigo(*)[booléens]{cos/sin/tan}(angle)
-\end{PresCodeTexPL}
-
-\subsection{Commande}
-
-\begin{cautionblock}
-Pour cette commande :
-
-\begin{itemize}
- \item la version \textit{étoilée} n'affiche pas l'angle initial ;
- \item le booléen \Cle{d} permet de forcer l'affichage en \ctex{displaystyle} ; \hfill{}défaut \Cle{false}
- \item le booléen \Cle{Etapes} permet d'afficher la réduction avant le résultat ; \hfill{}défaut \Cle{false}
- \item le premier argument \textit{obligatoire}, entre \ctex{\{...\}} est le type de calcul demandé, parmi \Cle{cos / sin / tan} ;
- \item le second argument \textit{obligatoire}, entre \ctex{(...)} est l'angle, donné en ligne, avec \ctex{pi}.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodePL}{}
-$\LigneTrigo{cos}(56pi/3)$ et $\LigneTrigo{sin}(56pi/3)$ et $\LigneTrigo{tan}(56pi/3)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo[d,Etapes]{cos}(56pi/3)$ et $\LigneTrigo[d,Etapes]{sin}(56pi/3)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo*[d,Etapes]{cos}(2pi/3)$ et $\LigneTrigo*[d,Etapes]{sin}(2pi/3)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo[d,Etapes]{cos}(146pi)$ et $\LigneTrigo[d,Etapes]{sin}(146pi)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo[d,Etapes]{cos}(-551pi/12)$ et $\LigneTrigo[d,Etapes]{sin}(-551pi/12)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo[d,Etapes]{cos}(447pi/8)$ et $\LigneTrigo[d,Etapes]{sin}(447pi/8)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo*[d,Etapes]{cos}(-pi/8)$ et $\LigneTrigo*[d,Etapes]{sin}(-pi/8)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo[d,Etapes]{cos}(-595pi/12)$ et $\LigneTrigo[d,Etapes]{sin}(-595pi/12)$ et $\LigneTrigo[d,Etapes]{tan}(-595pi/12)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo[d,Etapes]{cos}(33pi/10)$ et $\LigneTrigo[d,Etapes]{sin}(33pi/10)$\\
-$\LigneTrigo[d,Etapes]{tan}(33pi/10)$
-\end{PresCodePL}
-
-\begin{PresCodePL}{}
-$\LigneTrigo[d,Etapes]{cos}(-14pi/5)$ et $\LigneTrigo[d,Etapes]{sin}(-14pi/5)$\\
-$\LigneTrigo[d,Etapes]{tan}(-14pi/5)$
-\end{PresCodePL}
-
-\subsection{Valeurs disponibles}
-
-\begin{noteblock}
-Les valeurs disponibles sont :
-
-\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{9}{Q[1.195cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
- angle & $0$ & $\nicefrac{\pi}{6}$ & $\nicefrac{\pi}{4}$ & $\nicefrac{\pi}{3}$ & $\nicefrac{\pi}{2}$ & $\nicefrac{2\pi}{3}$ & $\nicefrac{3\pi}{4}$ & $\nicefrac{5\pi}{6}$ & $\pi$ \\
- cos & $\LigneTrigo{cos}(0)$ & $\LigneTrigo{cos}(pi/6)$ & $\LigneTrigo{cos}(pi/4)$ & $\LigneTrigo{cos}(pi/3)$ & $\LigneTrigo{cos}(pi/2)$ & $\LigneTrigo{cos}(2pi/3)$ & $\LigneTrigo{cos}(3pi/4)$ & $\LigneTrigo{cos}(5pi/6)$ & $\LigneTrigo{cos}(pi)$ \\
- sin & $\LigneTrigo{sin}(0)$ & $\LigneTrigo{sin}(pi/6)$ & $\LigneTrigo{sin}(pi/4)$ & $\LigneTrigo{sin}(pi/3)$ & $\LigneTrigo{sin}(pi/2)$ & $\LigneTrigo{sin}(2pi/3)$ & $\LigneTrigo{sin}(3pi/4)$ & $\LigneTrigo{sin}(5pi/6)$ & $\LigneTrigo{sin}(pi)$ \\
- tan & $\LigneTrigo{tan}(0)$ & $\LigneTrigo{tan}(pi/6)$ & $\LigneTrigo{tan}(pi/4)$ & $\LigneTrigo{tan}(pi/3)$ & $\LigneTrigo{tan}(pi/2)$ & $\LigneTrigo{tan}(2pi/3)$ & $\LigneTrigo{tan}(3pi/4)$ & $\LigneTrigo{tan}(5pi/6)$ & $\LigneTrigo{tan}(pi)$ \\
-\end{tblr}
-
-\medskip
-
-\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{9}{Q[1.195cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
- angle & & $\nicefrac{-\pi}{6}$ & $\nicefrac{-\pi}{4}$ & $\nicefrac{-\pi}{3}$ & $\nicefrac{-\pi}{2}$ & $\nicefrac{-2\pi}{3}$ & $\nicefrac{-3\pi}{4}$ & $\nicefrac{-5\pi}{6}$ & \\
- cos & & $\LigneTrigo{cos}(-pi/6)$ & $\LigneTrigo{cos}(-pi/4)$ & $\LigneTrigo{cos}(-pi/3)$ & $\LigneTrigo{cos}(-pi/2)$ & $\LigneTrigo{cos}(-2pi/3)$ & $\LigneTrigo{cos}(-3pi/4)$ & $\LigneTrigo{cos}(-5pi/6)$ & \\
- sin & & $\LigneTrigo{sin}(-pi/6)$ & $\LigneTrigo{sin}(-pi/4)$ & $\LigneTrigo{sin}(-pi/3)$ & $\LigneTrigo{sin}(-pi/2)$ & $\LigneTrigo{sin}(-2pi/3)$ & $\LigneTrigo{sin}(-3pi/4)$ & $\LigneTrigo{sin}(-5pi/6)$ & \\
- tan & & $\LigneTrigo{tan}(-pi/6)$ & $\LigneTrigo{tan}(-pi/4)$ & $\LigneTrigo{tan}(-pi/3)$ & $\LigneTrigo{tan}(-pi/2)$ & $\LigneTrigo{tan}(-2pi/3)$ & $\LigneTrigo{tan}(-3pi/4)$ & $\LigneTrigo{tan}(-5pi/6)$ & \\
-\end{tblr}
-
-\medskip
-
-\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
- angle & $\nicefrac{\pi}{8}$ & $\nicefrac{3\pi}{8}$ & $\nicefrac{5\pi}{8}$ & $\nicefrac{7\pi}{8}$ & $\nicefrac{\pi}{12}$ & $\nicefrac{5\pi}{12}$ & $\nicefrac{7\pi}{12}$ & $\nicefrac{11\pi}{12}$ \\
- cos & $\LigneTrigo{cos}(pi/8)$ & $\LigneTrigo{cos}(3pi/8)$ & $\LigneTrigo{cos}(5pi/8)$ & $\LigneTrigo{cos}(7pi/8)$ & $\LigneTrigo{cos}(pi/12)$ & $\LigneTrigo{cos}(5pi/12)$ & $\LigneTrigo{cos}(7pi/12)$ & $\LigneTrigo{cos}(11pi/12)$ \\
- sin & $\LigneTrigo{sin}(pi/8)$ & $\LigneTrigo{sin}(3pi/8)$ & $\LigneTrigo{sin}(5pi/8)$ & $\LigneTrigo{sin}(7pi/8)$ & $\LigneTrigo{sin}(pi/12)$ & $\LigneTrigo{sin}(5pi/12)$ & $\LigneTrigo{sin}(7pi/12)$ & $\LigneTrigo{sin}(11pi/12)$ \\
- tan & $\LigneTrigo{tan}(pi/8)$ & $\LigneTrigo{tan}(3pi/8)$ & $\LigneTrigo{tan}(5pi/8)$ & $\LigneTrigo{tan}(7pi/8)$ & $\LigneTrigo{tan}(pi/12)$ & $\LigneTrigo{tan}(5pi/12)$ & $\LigneTrigo{tan}(7pi/12)$ & $\LigneTrigo{tan}(11pi/12)$ \\
-\end{tblr}
-
-\medskip
-
-\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
- angle & $\nicefrac{-\pi}{8}$ & $\nicefrac{-3\pi}{8}$ & $\nicefrac{-5\pi}{8}$ & $\nicefrac{-7\pi}{8}$ & $\nicefrac{-\pi}{12}$ & $\nicefrac{-5\pi}{12}$ & $\nicefrac{-7\pi}{12}$ & $\nicefrac{-11\pi}{12}$ \\
- cos & $\LigneTrigo{cos}(-pi/8)$ & $\LigneTrigo{cos}(-3pi/8)$ & $\LigneTrigo{cos}(-5pi/8)$ & $\LigneTrigo{cos}(-7pi/8)$ & $\LigneTrigo{cos}(-pi/12)$ & $\LigneTrigo{cos}(-5pi/12)$ & $\LigneTrigo{cos}(-7pi/12)$ & $\LigneTrigo{cos}(-11pi/12)$ \\
- sin & $\LigneTrigo{sin}(-pi/8)$ & $\LigneTrigo{sin}(-3pi/8)$ & $\LigneTrigo{sin}(-5pi/8)$ & $\LigneTrigo{sin}(-7pi/8)$ & $\LigneTrigo{sin}(-pi/12)$ & $\LigneTrigo{sin}(-5pi/12)$ & $\LigneTrigo{sin}(-7pi/12)$ & $\LigneTrigo{sin}(-11pi/12)$ \\
- tan & $\LigneTrigo{tan}(-pi/8)$ & $\LigneTrigo{tan}(-3pi/8)$ & $\LigneTrigo{tan}(-5pi/8)$ & $\LigneTrigo{tan}(-7pi/8)$ & $\LigneTrigo{tan}(-pi/12)$ & $\LigneTrigo{tan}(-5pi/12)$ & $\LigneTrigo{tan}(-7pi/12)$ & $\LigneTrigo{tan}(-11pi/12)$ \\
-\end{tblr}
-
-\medskip
-
-\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
- angle & $\nicefrac{-4\pi}{5}$ & $\nicefrac{-3\pi}{5}$ & $\nicefrac{-2\pi}{5}$ & $\nicefrac{-\pi}{5}$ & $\nicefrac{\pi}{5}$ & $\nicefrac{2\pi}{5}$ & $\nicefrac{3\pi}{5}$ & $\nicefrac{4\pi}{5}$ \\
- cos & $\LigneTrigo{cos}(-4pi/5)$ & $\LigneTrigo{cos}(-3pi/5)$ & $\LigneTrigo{cos}(-2pi/5)$ & $\LigneTrigo{cos}(-pi/5)$ & $\LigneTrigo{cos}(pi/5)$ & $\LigneTrigo{cos}(2pi/5)$ & $\LigneTrigo{cos}(3pi/5)$ & $\LigneTrigo{cos}(4pi/5)$ \\
- sin & $\LigneTrigo{sin}(-4pi/5)$ & $\LigneTrigo{sin}(-3pi/5)$ & $\LigneTrigo{sin}(-2pi/5)$ & $\LigneTrigo{sin}(-pi/5)$ & $\LigneTrigo{sin}(pi/5)$ & $\LigneTrigo{sin}(2pi/5)$ & $\LigneTrigo{sin}(3pi/5)$ & $\LigneTrigo{sin}(4pi/5)$ \\
- tan & $\LigneTrigo{tan}(-4pi/5)$ & $\LigneTrigo{tan}(-3pi/5)$ & $\LigneTrigo{tan}(-2pi/5)$ & $\LigneTrigo{tan}(-pi/5)$ & $\LigneTrigo{tan}(pi/5)$ & $\LigneTrigo{tan}(2pi/5)$ & $\LigneTrigo{tan}(3pi/5)$ & $\LigneTrigo{tan}(4pi/5)$ \\
-\end{tblr}
-
-\medskip
-
-\begin{tblr}{hlines,vlines,colspec={Q[1cm,m,l]*{8}{Q[1.4cm,m,c]}},cells={font=\scriptsize},row{1}={bg=lightgray!50},column{1}={bg=lightgray!50}}
- angle & $\nicefrac{-9\pi}{10}$ & $\nicefrac{-7\pi}{10}$ & $\nicefrac{-3\pi}{10}$ & $\nicefrac{-\pi}{10}$ & $\nicefrac{\pi}{10}$ & $\nicefrac{3\pi}{10}$ & $\nicefrac{7\pi}{10}$ & $\nicefrac{9\pi}{10}$ \\
- cos & $\LigneTrigo{cos}(-9pi/10)$ & $\LigneTrigo{cos}(-7pi/10)$ & $\LigneTrigo{cos}(-3pi/10)$ & $\LigneTrigo{cos}(-pi/10)$ & $\LigneTrigo{cos}(pi/10)$ & $\LigneTrigo{cos}(3pi/10)$ & $\LigneTrigo{cos}(7pi/10)$ & $\LigneTrigo{cos}(9pi/10)$ \\
- sin & $\LigneTrigo{sin}(-9pi/10)$ & $\LigneTrigo{sin}(-7pi/10)$ & $\LigneTrigo{sin}(-3pi/10)$ & $\LigneTrigo{sin}(-pi/10)$ & $\LigneTrigo{sin}(pi/10)$ & $\LigneTrigo{sin}(3pi/10)$ & $\LigneTrigo{sin}(7pi/10)$ & $\LigneTrigo{sin}(9pi/10)$ \\
- tan & $\LigneTrigo{tan}(-9pi/10)$ & $\LigneTrigo{tan}(-7pi/10)$ & $\LigneTrigo{tan}(-3pi/10)$ & $\LigneTrigo{tan}(-pi/10)$ & $\LigneTrigo{tan}(pi/10)$ & $\LigneTrigo{tan}(3pi/10)$ & $\LigneTrigo{tan}(7pi/10)$ & $\LigneTrigo{tan}(9pi/10)$ \\
-\end{tblr}
-\end{noteblock}
+\input{ProfLycee-doc-simplif.tex}
\pagebreak
@@ -7770,340 +497,7 @@ Les valeurs disponibles sont :
\newpage
-\part{Jeux et récréations}
-
-\section{SudoMaths, en \TikZ}\label{sudomaths}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-L'idée est de \textit{proposer} un environnement \TikZ, une commande permettant de tracer des grilles de SudoMaths.
-
-L'environnement créé, lié à \TikZ, trace la grille de SudoMaths (avec les blocs démarqués), et peut la remplir avec une liste d'éléments.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%grille classique non remplie, avec légendes H/V, {} nécessaires pour préciser que les cases seront "vides"
-\SudoMaths{}
-\end{PresCodeTexPL}
-
-\begin{PresCodePL}{}
-\SudoMaths{}
-\end{PresCodePL}
-
-\begin{noteblock}
-La commande \ctex{SudoMaths} crée donc la grille (remplie ou non), dans un environnement \TikZ, c'est \textit{c'est tout} !
-
-\smallskip
-
-On peut également utiliser l'\textit{environnement} \ctex{EnvSudoMaths} dans lequel on peut rajouter du code \TikZ{} !
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%grille "toute seule"
-\SudoMaths[clés]{liste}
-
-%grille avec ajout de code
-\begin{EnvSudoMaths}[clés]{grille}
- %commandes tikz
-\end{EnvSudoMaths}
-\end{PresCodeTexPL}
-
-\pagebreak
-
-\subsection{Clés et options}
-
-\begin{cautionblock}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{Epaisseurg} pour gérer l'épaisseur des traits épais ; \hfill~défaut \Cle{1.5pt}
- \item la clé \Cle{Epaisseur} pour gérer l'épaisseur des traits fins ; \hfill~défaut \Cle{0.5pt}
- \item la clé \Cle{Unite} qui est l'unité graphique de la figure ; \hfill~défaut \Cle{1cm}
- \item la clé \Cle{CouleurCase} pour la couleur (éventuelles) des cases ; \hfill~défaut \Cle{cyan!50}
- \item la clé \Cle{CouleurTexte} pour gérer la couleur du label des cases ; \hfill~défaut \Cle{blue}
- \item la clé \Cle{NbCol} qui est le nombre de colonnes ; \hfill~défaut \Cle{9}
- \item la clé \Cle{NbSubCol} qui est le nombre de sous-colonnes ; \hfill~défaut \Cle{3}
- \item la clé \Cle{NbLig} qui est le nombre de lignes ; \hfill~défaut \Cle{9}
- \item la clé \Cle{NbSubLig} qui est le nombre de sous-colonnes ; \hfill~défaut \Cle{3}
- \item la clé \Cle{Police} qui formatte le label des cases ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}normalsize}
- \item le booléen \Cle{Legendes} qui affiche ou non les légendes (H et V) des cases ; \hfill~défaut \Cle{true}
- \item la clé \Cle{PoliceLeg} qui formatte le label des légendes ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}normalsize}
- \item la clé \Cle{ListeLegV} qui est la liste de la légende verticale ; \hfill~défaut \Cle{ABCD...WXYZ}
- \item la clé \Cle{ListeLegH} qui est la liste de la légende horizontale ; \hfill~défaut \Cle{abcd...wxyz}
- \item la clé \Cle{DecalLegende} qui est le décalage de la légende par rapport à la grille. \hfill~défaut \Cle{0.45}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{noteblock}
-La liste éventuelle des éléments à rentrer dans le tableau est traitée par le package \ctex{listofitems}, et se présente sous la forme suivante : \ctex{ / / / ... / / § / / / ... / / § ... § / / / ... / / }
-
-\smallskip
-
-Il peut donc être intéressant de \textit{déclarer} la liste au préalable pour simplifier la saisie de la commande !
-\end{noteblock}
-
-\begin{noteblock}
-La \Cle{CouleurCase} est gérée -- en interne -- par le caractère \ctex{*} qui permet de préciser qu'on veut que la case soit coloriée.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%grille 6x6 avec blocs 2x3, avec coloration de cases (présentée sous forme de "cases")
-\def\grilleSuMa{%
- (a)* / (b)* / / / (c)* / (d)* §%
- (e)* / / / (f)* / (g)* / (h)* §%
- / / (i)* / / / (j)* §%
- / / (k)* / / (l)* / (m)* §%
- (n)* / / (o)* / / / (p)* §%
- / / / (q)* / / §%
-}
-
-\SudoMaths[Unite=0.75cm,NbCol=6,NbSubCol=2,NbLig=6,NbSubLig=3,%
- Police=\small\bfseries\ttfamily,CouleurTexte=red,CouleurCase=yellow!50,%
- Legendes=false]{\grilleSuMa}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\grilleSuMa{%
- (a)* / (b)* / / / (c)* / (d)* §%
- (e)* / / / (f)* / (g)* / (h)* §%
- / / (i)* / / / (j)* §%
- / / (k)* / / (l)* / (m)* §%
- (n)* / / (o)* / / / (p)* §%
- / / / (q)* / / §%
-}
-
-\SudoMaths[Unite=0.75cm,NbCol=6,NbSubCol=2,NbLig=6,NbSubLig=3,Police=\small\bfseries\ttfamily,CouleurTexte=red,CouleurCase=yellow!50,%
-Legendes=false]{\grilleSuMa}
-\end{PresCodeSortiePL}
-
-\pagebreak
-
-\begin{noteblock}
-La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0;0)$ et $(\text{nbcol};-\text{nblig})$, de sorte que les labels des cases sont situés au nœuds de coordonnées $(x,5;-y,5)$.
-\end{noteblock}
-
-\begin{PresCodeTexPL}{listing only}
-%grille classique avec coloration de cases et commande tikz
-%graduations rajoutées pour la lecture des coordonnées
-\def\grilleSuMaB{%
- */////4///§%
- /*///3////§%
- //*//////§%
- ///*/////§%
- ////*////§%
- /////*///§%
- //5*/////*/§%
- /////B///*§%
- *///9////Q/§%
-}
-
-\begin{EnvSudoMaths}[%
- Unite=0.66cm,Police=\footnotesize\bfseries\ttfamily,CouleurCase=violet!50,%
- ListeLegV=QSDFGHJKL,ListeLegH=poiuytrez]{\grilleSuMaB}
- \draw[red,very thick,<-,>=latex] (7.5,-4.5) to[bend right] ++ (4,-1) node[right] {code rajouté...} ;
-\end{EnvSudoMaths}
-\end{PresCodeTexPL}
-
-\begin{PresCodeSortiePL}{text only}
-\def\grilleSuMaB{%
- */////4///§%
- /*///3////§%
- //*//////§%
- ///*/////§%
- ////*////§%
- /////*///§%
- //5*/////*/§%
- /////B///*§%
- *///9////Q/§%
-}
-
-\begin{EnvSudoMaths}[%
- Unite=0.66cm,Police=\footnotesize\bfseries\ttfamily,CouleurCase=violet!50,%
- ListeLegV=QSDFGHJKL,ListeLegH=poiuytrez]{\grilleSuMaB}
- \draw[red,very thick,<-,>=latex] (7.5,-4.5) to[bend right] ++ (4,-1) node[right] {code rajouté pour montrer la case \textsf{Ge}} ;
- \foreach \x in {0,1,...,9} \draw[lightgray] (\x,-9) node[below,font=\scriptsize\ttfamily] {\x} ;
- \foreach \y in {-1,-2,...,-9} \draw[lightgray] (9,\y) node[right,font=\scriptsize\ttfamily] {\y} ;
- \draw[lightgray] (9,0) node[right,font=\scriptsize\ttfamily] {~0} ;
-\end{EnvSudoMaths}
-\end{PresCodeSortiePL}
-
-\newpage
-
-\section{Quelques fractales, en \TikZ}\label{fractales}
-
-\subsection{Introduction}
-
-\begin{tipblock}
-\cmaj{2.7.9} L'idée est de proposer de quoi représenter quelques fractales, créées avec la librairie \ctex{lindenmayersystems}.
-
-\smallskip
-
-Pour le moment, il est possible de :
-
-\begin{itemize}
- \item tracer un flocon de Koch à une étape donnée ;
- \item tracer un triangle de Sierpinski à une étape donnée ;
- \item présenter différentes étapes successives des flocons de Koch ou des triangles de Sierpinski.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{tipblock}
-
-\begin{importantblock}
-Les figures sont créées en \TikZ, et peuvent être autonomes (sans environnement \ctex{tikzpicture}).
-
-Pour le triangle de Sierpinski, la forme \textit{générale} est \textit{bloquée} pour avoir un rendu \textit{classique}.
-\end{importantblock}
-
-\subsection{Flocon de Koch et triangle de Sierpinski}
-
-\begin{tipblock}
-La commande pour créer un flocon de Koch ou un triangle de Sierpinski est \ctex{\textbackslash FractaleTikz}.
-
-Les éléments de personnalisation sont présentés un peu plus bas.
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%Flocon de Koch, autonome
-\FractaleTikz[Type=Koch,clés]<options tikz>
-
-%Flocon de Koch, dans un environnement tikz
-\begin{tikzpicture}
- \FractaleTikz*[Type=Koch,clés]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{listing only}
-%Triangle de Sierpinski, autonome
-\FractaleTikz[Type=Sierp,clés]<options tikz>
-
-%Flocon de Koch, dans un environnement tikz
-\begin{tikzpicture}
- \FractaleTikz[Type=Sierp,clés]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Les \Cle{clés} disponibles pour cette commande sont :
-
-\begin{itemize}
- \item la clé \Cle{Epaisseur} pour fixer l'épaisseur des tracés ; \hfill~défaut \Cle{0.6pt}
- \item la clé \Cle{Type}, parmi \Cle{Koch / Sierp} pour choisir le type de fractale ; \hfill~défaut \Cle{Koch}
- \item la clé \Cle{Couleur} pour fixer la couleur des tracés ; \hfill~défaut \Cle{black}
- \item la clé \Cle{LongueurCote} (en cm) pour fixer la longueur des côtés ; \hfill~défaut \Cle{3}
- \item la clé \Cle{Etape} (pour \Cle{Type=Koch} elle est limitée à 7) pour fixer l'étape ; \hfill~défaut \Cle{1}
- \item le booléen \Cle{remplir} pour remplir la fractale ; \hfill~défaut \Cle{false}
- \item la clé \Cle{Remplissage} pour fixer la couleur de remplissage ; \hfill~défaut \Cle{lightgray}
- \item la clé \Cle{Depart} pour fixer le point de départ ; \hfill~défaut \Cle{(0,0)}
- \item le booléen \Cle{AlignV} (pour \Cle{Type=Koch}) pour forcer l'alignement de la \textit{base}.\hfill~défaut \Cle{false}
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{}
-%Koch par défaut
-\FractaleTikz
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%Koch par défaut
-\FractaleTikz[Etape=4,LongueurCote=4,Remplir,Remplissage=teal!5,Couleur=red,Epaisseur=1pt]
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%dans un environnement tikz
-\begin{tikzpicture}
- \FractaleTikz*[Etape=0]
- \FractaleTikz*[Depart={(4,0)},Etape=1,Remplir,Remplissage=yellow!25]
- \FractaleTikz*[Depart={(8,0)},Etape=2,Remplir,Remplissage=orange!25]
- \FractaleTikz*[Depart={(12,0)},Etape=3,Remplir,Remplissage=red!25]
-\end{tikzpicture}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%Sierpinski par défaut
-\FractaleTikz[Type=Sierp]
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-%Sierpinski par défaut
-\FractaleTikz[Type=Sierp,LongueurCote=4,Couleur=blue]
-\end{PresCodeTexPL}
-
-\subsection{Affichage de plusieurs étapes pour les flocons de Koch}
-
-\begin{tipblock}
-L'idée est de présenter des étapes successives pour le flocon de Koch.
-
-À noter que les \textit{bases} des flocons sont, dans ce cas, correctement alignées !
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%commande autonome, l'environnement tikz est créé
-\EtapesFloconKoch[clés]{étapes}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Les \Cle{clés} disponibles sont reprises (pour celles dépendant de \Cle{Type=Koch} !) de la commande \ctex{\textbackslash FractaleTikz}, avec en plus :
-
-\begin{itemize}
- \item la clé \Cle{Offset} pour fixer une espacement horizontal entre les figures. \hfill~défaut \Cle{2pt}
-\end{itemize}
-
-L'argument obligatoire, et entre \ctex{\{...\}}, permet de spécifier les étapes à afficher, sous la forme \TikZ{} :
-
-\begin{itemize}
- \item \ctex{n1,n2,n3} pour spécifier une liste d'étapes ;
- \item \ctex{n1,...,n2} pour spécifier une plage d'étapes.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{}
-\EtapesFloconKoch{0,...,4}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-\EtapesFloconKoch[Offset=5mm,Couleur=red,Remplir,Remplissage=violet!25]{0,2,4,6}
-\end{PresCodeTexPL}
-
-\subsection{Affichage de plusieurs étapes pour les tapis de Sierpinski}
-
-\begin{tipblock}
-L'idée est de présenter des étapes successives pour les tapis de Sierpinski.
-
-À noter que les \textit{bases} des flocons sont correctement alignées !
-\end{tipblock}
-
-\begin{PresCodeTexPL}{listing only}
-%commande autonome, l'environnement tikz est créé
-\EtapesTapisSierpinski[clés]{étapes}
-\end{PresCodeTexPL}
-
-\begin{cautionblock}
-Les \Cle{clés} disponibles sont reprises (pour celles dépendant de \Cle{Type=Sierp} !) de la commande \ctex{\textbackslash FractaleTikz}, avec en plus :
-
-\begin{itemize}
- \item la clé \Cle{Offset} pour fixer une espacement horizontal entre les figures. \hfill~défaut \Cle{2pt}
-\end{itemize}
-
-L'argument obligatoire, et entre \ctex{\{...\}}, permet de spécifier les étapes à afficher, sous la forme \TikZ{} :
-
-\begin{itemize}
- \item \ctex{n1,n2,n3} pour spécifier une liste d'étapes ;
- \item \ctex{n1,...,n2} pour spécifier une plage d'étapes.
-\end{itemize}
-\vspace*{-\baselineskip}\leavevmode
-\end{cautionblock}
-
-\begin{PresCodeTexPL}{}
-\EtapesTapisSierpinski{0,...,4}
-\end{PresCodeTexPL}
-
-\begin{PresCodeTexPL}{}
-\EtapesTapisSierpinski[LongueurCote=2.5,Offset=5mm,Couleur=red]{0,2,4,6,8}
-\end{PresCodeTexPL}
+\input{ProfLycee-doc-jeuxrecreat.tex}
\newpage
@@ -8117,200 +511,6 @@ L'argument obligatoire, et entre \ctex{\{...\}}, permet de spécifier les étape
\newpage
-\part{Historique}
-
-{\small \bverb|v 2.7.9|~:~~~~Ajout de quelques fractales (Koch + Sierpinski) (page \pageref{fractales})}
-
-{\small \bverb|v 2.7.8|~:~~~~Conversion présentée hexa/bin (page \pageref{convhexbin}) + Liste et arbres de diviseurs (page \pageref{listediv})}
-
-{\small \bverb|v 2.7.7|~:~~~~Points de discontinuité pour des splines (page \pageref{discont})}
-
-{\small \bverb|v 2.7.6|~:~~~~Amélioration dans la console d'exécution avec \textsf{piton}}
-
-{\small \bverb|v 2.7.5|~:~~~~Possibilités de numéroter les lignes des codes à une autre valeur que 1 (page \pageref{codenumlignes})
-
-{\small \bverb|v 2.7.4|~:~~~~Ajout de macros pour des écritures mathématiques classiques (page \pageref{ecrituresmath})}
-
-{\small \bverb|v 2.7.3|~:~~~~Correction de la couleur de bordures vertes pour les codes python}
-
-{\small \bverb|v 2.7.2|~:~~~~\textsf{xcolor} n'est plus chargé par défaut (option \textsf{[xcolor]} pour le charger)
-
-{\small \bverb|v 2.7.1|~:~~~~Chargement de \textsf{tcolorbox} par librairies (au lieu de \textsf{[most]})
-
-{\small \bverb|v 2.7.0|~:~~~~Ajout de la clé \Cle{Frac} pour les axes verticaux (page \pageref{reperagetikz})
-
-{\small \bverb| |~:~~~~Fonction de répartition discrète (\pageref{fctrepart})
-
-{\small \bverb|v 2.6.9|~:~~~~Amélioration de le présentation de code \textsf{Piton} (page \pageref{pythonpiton})
-
-{\small \bverb|v 2.6.8|~:~~~~Ajout d'une grille pour les histogrammes non réguliers (page \pageref{histo})
-
-{\small \bverb|v 2.6.7|~:~~~~Histogramme à classes régulières ou non (page \pageref{histo}) + Correction de bugs mineurs
-
-{\small \bverb|v 2.6.6|~:~~~~Style \textsf{mainlevee} en \TikZ{} désormais dans le package \textsf{tikz2d-fr}
-
-{\small \bverb|v 2.6.5|~:~~~~Ajout d'une option \Cle{nonamssymb} pour éviter de charger \textsf{amssymb} (page \pageref{amssymb})
-
-{\small \bverb| |~:~~~~Ajout d'une commande pour la distance entre deux points (page \pageref{normevect})}
-
-{\small \bverb|v 2.6.4|~:~~~~Résolution d'une équation diophantienne $ax+by=c$ (page \pageref{eqdioph})
-
-{\small \bverb| |~:~~~~Correction de bugs mineurs
-
-{\small \bverb| |~:~~~~Ajout de commandes en géométrie analytique (pages \pageref{affcoord} et \pageref{eqcartplan} et \pageref{eqparamdroite} et \pageref{eqcartdroite} et \pageref{distptplan})
-
-{\small \bverb|v 2.6.3|~:~~~~Ajout d'une commande pour déterminer une équation réduite (page \pageref{eqreduite})
-
-{\small \bverb|v 2.6.2|~:~~~~Ajout d'une clé \Cle{AffTraitsEq} pour les équations trigo (page \pageref{cercletrigo})
-
-{\small \bverb|v 2.6.1|~:~~~~Ajout de commandes pour du calcul intégral (pages \pageref{calcintegr} et \pageref{integrtikz})
-
-{\small \bverb|v 2.6.0|~:~~~~Ajout d'une clé \Cle{Brut} pour les mesures principales + correction d'un bug} + Refonte de la doc
-
-{\small \bverb| |~:~~~~Commande calcul ligne trigo (pages \pageref{mesureprincipale} et \pageref{lignestrigo})
-
-{\small \bverb|v 2.5.9|~:~~~~Ajout clé \Cle{CouleurNombres} pour \textsf{Piton} (v1.5 mini) (page \pageref{pythonpiton})
-
-{\small \bverb|v 2.5.8|~:~~~~Ajout d'un style \textsf{Alt} pour les codes (pages \pageref{pythonsimple} et \pageref{pytminted})
-
-{\small \bverb| |~:~~~~Modification de la syntaxe des commandes avec \textsf{Pythontex} et \textsf{PseudoCode} (pages \pageref{pythontex} et \pageref{pseudocode})
-
-{\small \bverb|v 2.5.7|~:~~~~Ajout de clés pour les codes \textsf{Piton} + Console via \textsf{Pyluatex} (page \pageref{pythonpiton})
-
-{\small \bverb|v 2.5.6|~:~~~~Ajout d'une clé \Cle{Trigo} pour l'axe $(Ox)$ (page \pageref{reperagetikz})
-
-{\small \bverb|v 2.5.5|~:~~~~Externalisation de la fenêtre XCas (dans le package \textsf{FentreCas})
-
-{\small \bverb|v 2.5.4|~:~~~~Modification des calculs (via \textsf{xint}) en combinatoire (page \pageref{combinatoire})
-
-{\small \bverb|v 2.5.3|~:~~~~Modification du traitement des tests dans les arbres de probas (page \pageref{arbresprobas})
-
-{\small \bverb|v 2.5.2|~:~~~~Correction d'un dysfonctionnement avec \textsf{tcolorbox 6.0}
-
-{\small \bverb|v 2.5.1|~:~~~~Ajout d'une version étoilée pour la conversion en fraction (page \pageref{convfrac})
-
-{\small \bverb|v 2.5.0|~:~~~~Système de \textsf{librairies} pour certains packages/commandes (page \pageref{librairies})
-
-{\small \bverb|v 2.2.0|~:~~~~Ajout d'une clé \Cle{Notation} pour les arrangements et combinaisons (page \pageref{combinatoire})
-
-{\small \bverb|v 2.1.9|~:~~~~Correction d'un bug (et ajout d'une version étoilée) pour les petits schémas \og de signe \fg{} (page \pageref{aidesigne})
-
-{\small \bverb|v 2.1.8|~:~~~~Suppression des commandes de PixelArt, désormais dans le package \textsf{PixelArtTikz}
-
-{\small \bverb|v 2.1.7|~:~~~~Ajout d'une clé \Cle{Math} pour les sommets des figures de l'espace (pages \pageref{pave} et \pageref{tetra})
-
-{\small \bverb|v 2.1.6|~:~~~~Correction d'un bug lié au chargement de \textsf{hvlogos}, remplacé par \textsf{hologo}
-
-{\small \bverb|v 2.1.5|~:~~~~Combinatoire avec arrangements et combinaisons (page \pageref{combinatoire})
-
-{\small \bverb|v 2.1.4|~:~~~~Résolution approchée d'équations $f(x)=k$ (page \pageref{resolapprox})
-
-{\small \bverb|v 2.1.3|~:~~~~Améliorations dans les présentations \textsf{Piton} (page \pageref{pythonpiton})
-
-{\small \bverb|v 2.1.2|~:~~~~Ajout d'une commande pour la mesure principale d'un angle (page \pageref{mesureprincipale})
-
-{\small \bverb|v 2.1.1|~:~~~~Ajout d'une section pour des repères en \TikZ{} (page \pageref{reperagetikz})
-
-{\small \bverb|v 2.1.0|~:~~~~Calcul du seuil, en interne désormais (page \pageref{calcrecurr})
-
-{\small \bverb| |~:~~~~Commande pour simplifier une racine carrée (page \pageref{simplracine})
-
-{\small \bverb| |~:~~~~Option \textsf{[pythontex]} pour charger le nécessaire pour \textsf{pythontex}
-
-{\small \bverb|v 2.0.9|~:~~~~Nombres aléatoires, tirages aléatoires d'entiers (page \pageref{entiersaleatoires})
-
-{\small \bverb|v 2.0.8|~:~~~~Ajout d'un environnement pour présenter du code \LaTeX{} (page \pageref{prescode})
-
-{\small \bverb|v 2.0.7|~:~~~~Ajout d'options pour stretch et fonte env python(s) (pas tous...)
-
-{\small \bverb|v 2.0.6|~:~~~~Changement de taille de la police des codes Python (page \pageref{pythonsimple})
-
-{\small \bverb|v 2.0.5|~:~~~~Correction d'un bug avec les calculs de suites récurrentes (page \pageref{calcrecurr})
-
-{\small \bverb|v 2.0.4|~:~~~~Ajout d'une commande pour une présentation de solution par TVI (page \pageref{solutiontvi})
-
-{\small \bverb|v 2.0.3|~:~~~~Commandes pour des suites récurrentes \textit{simples} (page \pageref{calcrecurr})
-
-{\small \bverb|v 2.0.2|~:~~~~Option \textsf{left-margin=auto} pour le package \textsf{piton} (page \pageref{pythonpiton})
-
-{\small \bverb|v 2.0.1|~:~~~~Chargement du package \textsf{piton} uniquement si compilation en \hologo{LuaLaTeX} (page \pageref{pythonpiton})
-
-{\small \bverb|v 2.0.0|~:~~~~Refonte du code source avec modification des commandes, et de la documentation}
-
-\hrulefill
-%
-%{\small \bverb|v 1.3.7|~:~~~~Commandes pour du code python via piton, en compilation \hologo{LuaLaTeX} (page \pageref{pythonpiton})
-%
-%{\small \bverb| |~:~~~~Corrections et modifications mineures de la documentation
-%
-%{\small \bverb|v 1.3.6|~:~~~~Présentation de l'algorithme d'Euclide pour le PGCD (page \pageref{prespgcd})
-%
-%{\small \bverb| |~:~~~~Affichage d'un trinôme par coefficients, aléatoires ou non (page \pageref{trinome})
-%
-%{\small \bverb|v 1.3.5|~:~~~~Correction d'un bug avec la loi géométrique (page \pageref{calcprobas})
-%
-%{\small \bverb|v 1.3.4|~:~~~~Ajout de petits schémas, en \TikZ{}, de lois normales et exponentielles (page \pageref{schemasprobas})
-%
-%{\small \bverb| |~:~~~~Calculs de probas avec les lois géométriques et hypergéométriques (page \pageref{calcprobas})
-%
-%{\small \bverb|v 1.3.3|~:~~~~Ajout d'un environnement pour des arbres de probas classiques, en \TikZ{} (page \pageref{arbresprobas})
-%
-%{\small \bverb|v 1.3.2|~:~~~~Correction d'un bug sur les conversions bintohex avec lualatex (page \pageref{conversions})
-%
-%{\small \bverb|v 1.3.1|~:~~~~Ajout d'une option pour ne pas afficher les bordures des corrections de pixelart
-%
-%{\small \bverb|v 1.3.0|~:~~~~Commande pour présenter une conversion depuis la base 10 (page \pageref{convrestes})
-%
-%{\small \bverb|v 1.2.9|~:~~~~Correction des commandes avec \textsf{simplekv}
-%
-%{\small \bverb|v 1.2.7|~:~~~~Ajout de commandes pour des calculs de probabilités (page \pageref{calcprobas})
-%
-%{\small \bverb|v 1.2.6|~:~~~~Ajout d'un environnement pour des SudoMaths (page \pageref{sudomaths})
-%
-%{\small \bverb|v 1.2.5|~:~~~~Ajout de commandes pour des boîtes à moustaches (page \pageref{boiteamoustaches})
-%
-%{\small \bverb|v 1.2.4|~:~~~~Correction de quelques bugs mineurs, et mise à jour de la doc
-%
-%{\small \bverb|v 1.2.3|~:~~~~Commandes pour du code python "simple", sans compilation particulière (page \pageref{pythonsimple})
-%
-%{\small \bverb|v 1.2.2|~:~~~~Commandes pour travailler sur des stats à 2 variables (page \pageref{statsdeuxvars})
-%
-%{\small \bverb|v 1.2.1|~:~~~~Amélioration de la gestion du csv pour Pixelart
-%
-%{\small \bverb|v 1.1.9|~:~~~~Pixelart en \TikZ{}
-%
-%{\small \bverb|v 1.1.8|~:~~~~Style "Mainlevée" basique pour \TikZ (page \pageref{mainlevee})
-%
-%{\small \bverb|v 1.1.7|~:~~~~Conversions bin/hex/dec (basées sur \textsf{xintbinhex}) avec quelques détails (page \pageref{conversions})
-%
-%{\small \bverb|v 1.1.6|~:~~~~Commande pour déterminer les paramètres d'une régression linéaire par moindres carrés (page \pageref{reglin})
-%
-%{\small \bverb|v 1.1.5|~:~~~~Ajout de deux commandes pour, en \TikZ, créer des petits schémas \og de signe \fg{} (page \pageref{aidesigne})
-%
-%{\small \bverb|v 1.1.4|~:~~~~Ajout d'une commande pour, en \TikZ, créer facilement un cercle trigo avec \textit{options} (page \pageref{cercletrigo})
-%
-%{\small \bverb|v 1.1.3|~:~~~~Ajout des commandes pour fractions, ensembles et récurrence (pages \pageref{convfrac}, \pageref{ensembles} et \pageref{recurr})
-%
-%{\small \bverb|v 1.1.1|~:~~~~Modification mineure de l'environnement calcul formel, avec prise de charge de la taille du texte
-%
-%{\small \bverb|v 1.1.0|~:~~~~Ajout d'une commande pour créer des tétraèdres (avec nœuds) en \TikZ{} (page \pageref{tetra})
-%
-%{\small \bverb|v 1.0.9|~:~~~~Ajout d'une commande pour créer des pavés droits (avec nœuds) en \TikZ{} (page \pageref{pave})
-%
-%{\small \bverb|v 1.0.8|~:~~~~Ajout d'une commande pour créer des cartouches de lien "comme capytale" (page \pageref{capytale})
-%
-%{\small \bverb|v 1.0.7|~:~~~~Ajout d'une option \textsf{build} pour placer certains fichiers auxiliaires dans un répertoire externe
-%
-%{\small \bverb|v 1.0.6|~:~~~~Ajout d'une option \textsf{nominted} pour ne pas charger (pas besoin de compiler avec \textsf{shell-escape})
-%
-%{\small \bverb|v 1.0.5|~:~~~~Ajout d'un environnement pour Python (\textsf{minted}) (page \pageref{pytminted})
-%
-%{\small \bverb|v 1.0.4|~:~~~~Ajout des environnements pour Terminal (win, osx, unix) (page \pageref{terms})
-%
-%{\small \bverb|v 1.0.3|~:~~~~Ajout des environnements pour PseudoCode (page \pageref{pseudocode})
-%
-%{\small \bverb|v 1.0.2|~:~~~~Ajout des environnements pour Python (\textsf{pythontex}) (page \pageref{pythontex})
-%
-%{\small \bverb|v 1.0 |~:~~~~Version initiale}
+\input{ProfLycee-doc-historique.tex}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/proflycee/doc/graphics/integr_nwks_a.png b/macros/latex/contrib/proflycee/doc/graphics/integr_nwks_a.png
deleted file mode 100644
index be6f4c4fbb..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/integr_nwks_a.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/integr_nwks_b.png b/macros/latex/contrib/proflycee/doc/graphics/integr_nwks_b.png
deleted file mode 100644
index a106d71cf3..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/integr_nwks_b.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_a.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_a.png
deleted file mode 100644
index ee2a607de3..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_a.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_b.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_b.png
deleted file mode 100644
index 6eb00e138b..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_b.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_c.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_c.png
deleted file mode 100644
index 78a8fee25d..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_c.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_d.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_d.png
deleted file mode 100644
index a4020e0f09..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_d.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_e.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_e.png
deleted file mode 100644
index be1ff2c03c..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_e.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_f.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_f.png
deleted file mode 100644
index 7778d450fb..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_f.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.png
deleted file mode 100644
index 5c05987140..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_a.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.png
deleted file mode 100644
index 90dce1c0ce..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_b.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png
deleted file mode 100644
index d7fecfb3e7..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.png
deleted file mode 100644
index 74e1b905e0..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c2.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png
deleted file mode 100644
index b9821f36c4..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png b/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png
deleted file mode 100644
index c2de13f554..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_a.png b/macros/latex/contrib/proflycee/doc/graphics/pl-solve_a.png
deleted file mode 100644
index d1baeb62ff..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_a.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_b.png b/macros/latex/contrib/proflycee/doc/graphics/pl-solve_b.png
deleted file mode 100644
index 3059e3d7e0..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_b.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_c.png b/macros/latex/contrib/proflycee/doc/graphics/pl-solve_c.png
deleted file mode 100644
index 9d32557198..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_c.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_d.png b/macros/latex/contrib/proflycee/doc/graphics/pl-solve_d.png
deleted file mode 100644
index b929432bb7..0000000000
--- a/macros/latex/contrib/proflycee/doc/graphics/pl-solve_d.png
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/testscript.py b/macros/latex/contrib/proflycee/doc/testscript.py
deleted file mode 100644
index 76e61647be..0000000000
--- a/macros/latex/contrib/proflycee/doc/testscript.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Calcul de la factorielle en langage Python
-def factorielle(x):
- if x < 2:
- return 1
- else:
- return x * factorielle(x-1)
-
-# rapidité de tracé
-import matplotlib.pyplot as plt
-import time
-def trace_parabole_tableaux():
- depart=time.clock()
- X = [] # Initialisation des listes
- Y = []
- a = -2
- h = 0.001
- while a<2:
- X.append(a) # Ajout des valeurs
- Y.append(a*a) # au "bout" de X et Y
- a = a+h
- # Tracé de l'ensemble du tableau de valeurs
- plt.plot(X,Y,".b")
- fin=time.clock()
- return "Temps : " + str(fin-depart) + " s."
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index a713a0cdce..8f3f9bb1fb 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,8 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2023/10/19 2.8.0 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2023/10/23 3.00a Aide pour l'utilisation de LaTeX en lycee]
+% 3.00a Ajout de commandes pour travailler avex des intervalles + Nouvelle numérotation
% 2.8.0 Amélioration du tapis de Sierpinski
% 2.7.9 Ajout de fractales (Koch + Sierpinski)
% 2.7.8 Conversion hexa->bin présentée
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
index 009b5d0967..0a31d0861a 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
@@ -610,4 +610,155 @@
\tikzset{declare function={#1(\x)=#2;}}
}
+%====INTERVALLES TIKZ
+\usetikzlibrary{decorations.pathmorphing,decorations.pathreplacing}
+
+\defKV[repinterv]{%
+ Unite=\def\RepIntervUnit{#1},%
+ Largeur=\def\RepIntervLarg{#1},%
+ Graduations=\def\RepIntervGrad{#1},%,
+ GraduationsAlt=\def\RepIntervGradPrim{#1},%
+ HautGrad=\def\RepIntervHautGrad{#1},%
+ Valeurs=\def\RepIntervVal{#1}
+}
+\setKVdefault[repinterv]{%
+ xmin=-8,xmax=8,%
+ Elargir=0.05,Unite=auto,Largeur=12,EpTrait=0.8pt,%
+ Graduations={},%
+ GraduationsAlt={},%
+ HautGrad=7pt,Hauteur=16pt,Coeff=1.1,Valeurs={},%
+ Police={\normalsize\normalfont}
+}
+
+\NewDocumentEnvironment{RepIntervalles}{ O{} D<>{} }%
+{%
+ \restoreKV[repinterv]%
+ \setKV[repinterv]{#1}%
+ \IfStrEq{\RepIntervUnit}{auto}%
+ {\def\RepIntervUnitX{\fpeval{round((\useKV[repinterv]{Largeur})/(\useKV[repinterv]{xmax}-\useKV[repinterv]{xmin}),3)}}}%
+ {\def\RepIntervUnitX{\RepIntervUnit}}%
+ \xdef\AxeXminInterv{\fpeval{\useKV[repinterv]{xmin}-(\useKV[repinterv]{Elargir})*(\useKV[repinterv]{xmax}-\useKV[repinterv]{xmin})}}%
+ \xdef\AxeXmaxInterv{\fpeval{\useKV[repinterv]{xmax}+(\useKV[repinterv]{Elargir})*(\useKV[repinterv]{xmax}-\useKV[repinterv]{xmin})}}%
+ \begin{tikzpicture}[x=\RepIntervUnitX cm,#2]
+ \draw[line width={\useKV[repinterv]{EpTrait}},->,>=latex] ({\AxeXminInterv},0) -- ({\AxeXmaxInterv},0) ;
+ \IfStrEq{\RepIntervGrad}{}%
+ {}%
+ {
+ \foreach \i in \RepIntervGrad {\draw[line width={\useKV[repinterv]{EpTrait}}] (\i,{0.5*\RepIntervHautGrad})--++(0,{-\RepIntervHautGrad}) ;}
+ }%
+ \IfStrEq{\RepIntervGradPrim}{}%
+ {}%
+ {
+ \foreach \i in \RepIntervGradPrim {\draw[line width={\useKV[repinterv]{EpTrait}}] (\i,{0.75*\RepIntervHautGrad})--++(0,{-1.5*\RepIntervHautGrad}) ;}
+ }%
+ \IfStrEq{\RepIntervVal}{}%
+ {}%
+ {
+ \foreach \i in \RepIntervVal {\draw (\i,{-0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={1.5*\useKV[repinterv]{EpTrait}},below,font={\useKV[repinterv]{Police}}] {\num{\i}} ;}
+ }%
+ }%
+ {%
+ \end{tikzpicture}%
+}
+
+\defKV[tkzinterv]{%
+ Type=\def\IntervType{#1},%
+ Decor=\def\IntervStyle{#1},%
+ PosValeurs=\def\IntervPosValeurs{#1},%
+ Offset=\def\IntervOffset{#1}
+}
+\setKVdefault[tkzinterv]{%
+ Couleur=red,%
+ Type=FF,%
+ NiveauV=0,%
+ Decor={},%
+ AffValeurs=false,%
+ PosValeurs=above,%
+ NumInf=true,%
+ NumSup=true,%
+ Offset=0pt
+}
+
+\NewDocumentCommand\tkzIntervalle{ O{} m m }{%1=options,2=min,3=max
+ \restoreKV[tkzinterv]%
+ \setKV[tkzinterv]{#1}%
+ %transformations min/max
+ \IfStrEq{#2}{*}{\def\ValMinInterv{\AxeXminInterv}}{\def\ValMinInterv{#2}}%
+ \IfStrEq{#3}{*}{\def\ValMaxInterv{\AxeXmaxInterv}}{\def\ValMaxInterv{#3}}%
+ \begin{scope}[yshift={\useKV[repinterv]{Coeff}*\useKV[tkzinterv]{NiveauV}*\useKV[repinterv]{Hauteur}+\IntervOffset}]
+ %segment
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)--({\ValMaxInterv},0) ;
+ %style fond
+ \IfStrEq{\IntervStyle}{fond}%
+ {%
+
+ \filldraw[draw=none,fill={\useKV[tkzinterv]{Couleur}},fill opacity=0.25] ({\ValMinInterv},{-0.425*\useKV[repinterv]{Hauteur}}) rectangle ({\ValMaxInterv},{0.425*\useKV[repinterv]{Hauteur}}) ;
+ }{}%
+ \IfStrEq{\IntervStyle}{zigzag}%
+ {%
+ \draw[line width={1.25*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}},decorate,decoration={zigzag,segment length=5mm,amplitude={0.425*\useKV[repinterv]{Hauteur}}}] ({\ValMinInterv},0)--({\ValMaxInterv},0) ;
+ }{}%
+ \IfSubStr{\IntervStyle}{hach}%
+ {%
+ \IfSubStr{\IntervStyle}{/}%
+ {\StrBehind{\IntervStyle}{/}[\IntervHachAngle]}
+ {\def\IntervHachAngle{60}}%
+ \begin{scope}
+ \clip ({\ValMinInterv},{-0.5*\useKV[repinterv]{Hauteur}}) rectangle ({\ValMaxInterv},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={1.25*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}},decorate,decoration={border,segment length=2.5mm,angle=\IntervHachAngle,amplitude={0.425*\useKV[repinterv]{Hauteur}}}] ({\AxeXminInterv},0)--({\AxeXmaxInterv},0) ;
+ \draw[line width={1.25*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}},decorate,decoration={border,segment length=2.5mm,angle=\IntervHachAngle,amplitude={-0.425*\useKV[repinterv]{Hauteur}}}] ({\AxeXminInterv},0)--({\AxeXmaxInterv},0) ;
+ \end{scope}
+ }{}%
+ %bord gauche
+ \IfStrEq{#2}{*}%
+ {}%
+ {%
+ \ifboolKV[tkzinterv]{AffValeurs}%
+ {%
+ \IfSubStr{\IntervPosValeurs}{above}
+ {%
+ \draw ({\ValMinInterv},{0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumInf}{\num{#2}}{#2}} ;
+ }{}%
+ \IfSubStr{\IntervPosValeurs}{below}
+ {%
+ \draw ({\ValMinInterv},{-0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumInf}{\num{#2}}{#2}} ;
+ }{}%
+ }{}%
+ \IfBeginWith{\IntervType}{O}%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMinInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ }%
+ \IfStrEq{#3}{*}%
+ {}%
+ {%
+ \ifboolKV[tkzinterv]{AffValeurs}%
+ {%
+ \IfSubStr{\IntervPosValeurs}{above}
+ {%
+ \draw ({\ValMaxInterv},{0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumSup}{\num{#3}}{#3}} ;
+ }{}%
+ \IfSubStr{\IntervPosValeurs}{below}
+ {%
+ \draw ({\ValMaxInterv},{-0.5*\useKV[repinterv]{Hauteur}}) node[inner sep={3*\useKV[repinterv]{EpTrait}},\IntervPosValeurs,text={\useKV[tkzinterv]{Couleur}},font={\useKV[repinterv]{Police}}] {\ifboolKV[tkzinterv]{NumSup}{\num{#3}}{#3}} ;
+ }{}%
+ }{}%
+ \IfEndWith{\IntervType}{O}%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ {%
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{0.5*\useKV[repinterv]{Hauteur}}) ;
+ \draw[line width={2*\useKV[repinterv]{EpTrait}},{\useKV[tkzinterv]{Couleur}}] ({\ValMaxInterv},0)|-++ ({-0.2*\useKV[repinterv]{Hauteur}},{-0.5*\useKV[repinterv]{Hauteur}}) ;
+ }%
+ }%
+ \end{scope}%
+}
+
\endinput \ No newline at end of file
diff --git a/macros/unicodetex/latex/bithesis/bithesis.dtx b/macros/unicodetex/latex/bithesis/bithesis.dtx
index f930ad8eed..10374a0ad4 100644
--- a/macros/unicodetex/latex/bithesis/bithesis.dtx
+++ b/macros/unicodetex/latex/bithesis/bithesis.dtx
@@ -21,10 +21,10 @@
%<thesis>\ProvidesExplClass{bithesis}
%<report>\ProvidesExplClass{bitreport}
%<beamer>\ProvidesExplClass{bitbeamer}
-%<cls>{2023-10-01}{3.6.0}{BIT Thesis Templates}
+%<cls>{2023-10-24}{3.6.1}{BIT Thesis Templates}
%
%<*driver>
-\ProvidesFile{bithesis.dtx}[2023/10/01 3.6.0 BIT Thesis Templates]
+\ProvidesFile{bithesis.dtx}[2023/10/24 3.6.1 BIT Thesis Templates]
\documentclass[letterpaper]{l3doc}
\usepackage{dtx-style}
@@ -772,6 +772,11 @@
% 控制英文是否使用 hyphen 进行换行
hyphen .bool_set:N = \l_@@_style_hyphen_bool,
hyphen .initial:n = {true},
+ % 控制公式和上下文的距离
+ mathAboveDisplaySkip .dim_set:N = \l_@@_style_math_above_display_skip_dim,
+ mathAboveDisplaySkip .initial:n = {3pt},
+ mathBelowDisplaySkip .dim_set:N = \l_@@_style_math_below_display_skip_dim,
+ mathBelowDisplaySkip .initial:n = {3pt},
}
% \end{macrocode}
%
@@ -878,11 +883,10 @@
\RequirePackage[table,xcdraw]{xcolor}
\RequirePackage{xeCJK}
\RequirePackage{titletoc}
-\RequirePackage{setspace}
\RequirePackage{graphicx}
\RequirePackage{fancyhdr}
\RequirePackage{pdfpages}
-\RequirePackage{setspace}
+\RequirePackage[nodisplayskipstretch]{setspace}
\RequirePackage{booktabs}
\RequirePackage{multirow}
\RequirePackage{tikz}
@@ -1281,8 +1285,8 @@
nameformat = {},
titleformat = {},
aftername = \hspace{8bp},
- beforeskip = 20bp plus 1ex minus .2ex,
- afterskip = 18bp plus .2ex,
+ beforeskip = 20bp,
+ afterskip = 17bp,
fixskip = true,
}
}
@@ -1299,8 +1303,8 @@
nameformat = {},
titleformat = {},
aftername = \hspace{7bp},
- beforeskip = 17bp plus 1ex minus .2ex,
- afterskip = 14bp plus .2ex,
+ beforeskip = 17bp,
+ afterskip = 17bp,
fixskip = true,
}
}
@@ -1320,8 +1324,8 @@
format={\l_@@_title_font_cs:n \raggedright \zihao{-4}},
nameformat = {},
titleformat = {},
- beforeskip=14bp plus 1ex minus .2ex,
- afterskip=14bp plus .2ex,
+ beforeskip=14bp,
+ afterskip=14bp,
fixskip=true,
}
}
@@ -1385,7 +1389,7 @@
numbering = false,
}
}
- \setstretch{1.53}
+ \linespread{1.53}\selectfont
\pagestyle{BIThesis}
% 表格内容默认使用五号字。
@@ -1420,7 +1424,7 @@
\pagestyle{BIThesis}
% 正文 22 磅的行距
\setlength{\parskip}{0em}
- \setstretch{1.53}
+ \linespread{1.53}\selectfont
% 修复脚注出现跨页的问题
\interfootnotelinepenalty=10000
}
@@ -1498,6 +1502,13 @@
\AtBeginDocument{
\cs_gset:Npn \thelstlisting {\thechapter\g_@@_label_divide_char_tl\arabic{lstlisting}}
\cs_gset:Npn \lstlistingname {\c_@@_label_code_tl}
+
+ % 默认的情况下,保留公式和上下文的一定间距。(会比 Word 稍宽一些)
+ \setlength{\abovedisplayskip}{\l_@@_style_math_above_display_skip_dim}
+ \setlength{\abovedisplayshortskip}{\l_@@_style_math_above_display_skip_dim}
+ \setlength{\belowdisplayskip}{\l_@@_style_math_below_display_skip_dim}
+ \setlength{\belowdisplayshortskip}{\l_@@_style_math_below_display_skip_dim}
+ %
}
\captionsetup[lstlisting]{font=small,labelsep=space}
% \end{macrocode}
@@ -1767,7 +1778,7 @@
\begin{titlepage}
\vskip 5cm
\begin{center}
- \setstretch{1.1}
+ \linespread{1.1}\selectfont
\begin{minipage}[t][19.7cm]{2em}
\begin{center}
{
@@ -2357,7 +2368,7 @@
\newpage
}
{3} {
- \setstretch{1.26}
+ \linespread{1.26}\selectfont
% 原创性声明部分
\begin{center}
\vspace*{-2bp}
@@ -2482,7 +2493,7 @@
{
\cleardoublepage
- \setstretch{1.53}
+ \linespread{1.53}\selectfont
\@@_if_bachelor_thesis:T {
\begin{center}
@@ -2552,7 +2563,7 @@
% \begin{macrocode}
\NewDocumentEnvironment {abstractEn} {}
{
- \setstretch{1.53}
+ \linespread{1.53}\selectfont
\@@_if_bachelor_thesis:T {
\begin{spacing}{0.95}
diff --git a/macros/unicodetex/latex/bithesis/bithesis.pdf b/macros/unicodetex/latex/bithesis/bithesis.pdf
index 7803e14a81..30446bfc25 100644
--- a/macros/unicodetex/latex/bithesis/bithesis.pdf
+++ b/macros/unicodetex/latex/bithesis/bithesis.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 966fb7bf50..e61b2ad88e 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -84,6 +84,7 @@ $mirrors = {
'https://ctan.tetaneutral.net/' => 1,
'https://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/' => 1,
'https://mirror.ibcp.fr/pub/CTAN/' => 1,
+ 'https://mirrors.ircam.fr/pub/CTAN/' => 1,
'https://texlive.mycozy.space/' => 1,
},
'Germany' => {
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 78cca30181..3af4f7b160 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2023
-depend revision/68621
+depend revision/68623
name 00texlive.image
category TLCore
-revision 68620
+revision 68624
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4794,7 +4794,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 68614
+revision 68623
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
@@ -8937,15 +8937,15 @@ catalogue-version 3.13f
name acmart
category Package
-revision 68550
+revision 68624
shortdesc Class for typesetting publications of ACM
relocated 1
longdesc This package provides a class for typesetting publications of
longdesc the Association for Computing Machinery (ACM).
containersize 43084
-containerchecksum ae43ed93681bcc0f7ed16a293effe21b490faf7f450f455e9a30fbe32bc7e4eb1897a176c93b015bb826fc34421023dd5ddb77fad625ee2351e5badbc7a043bd
+containerchecksum bee99e6ab38e65600ea68f56077081c49da3f327e2103c6010dc9b381f2c6efd292a7aa08251f1f4883f9937c6007e927f9873d743b58a83ac7a62bf72d0ee22
doccontainersize 4855488
-doccontainerchecksum d90dd57b1112025b976fda8d83b7eaecd77d1e7431aa9179e163c4686f87acf7086176ca3565017f14398e768849b3adf022c34b9114b7d9d438f8a4b1f1875a
+doccontainerchecksum 2131bd5a175afe72483c7f77280eae37c83ee22cfa00bebd7b8e3576f7c2562ae842c5f8703eb7a2eeb62b87a7e7cbc5433a0db235fba9122834d7bb5fa87b7b
docfiles size=3454
RELOC/doc/latex/acmart/README details="Readme"
RELOC/doc/latex/acmart/acm-jdslogo.png
@@ -8991,8 +8991,8 @@ docfiles size=3454
RELOC/doc/latex/acmart/samples/samples.ins
RELOC/doc/latex/acmart/samples/sampleteaser.pdf
RELOC/doc/latex/acmart/samples/software.bib
-srccontainersize 62364
-srccontainerchecksum bc1e31ad8a09a3d89f31672a42d4ca1bf212ad54ce524df26f99af83c8433f57220437a25c98f13ee0958248ada33202c7d65bc42bad42258fa14d2bd5352a1f
+srccontainersize 62368
+srccontainerchecksum 4d688c8750ac927e291da2051a470aeeabac74347e89029fb7bf3169db7f08531114da2256f07a3bfbd7c988c94574c33509b957394ca63d6f8f8d9521c2f50d
srcfiles size=74
RELOC/source/latex/acmart/Makefile
RELOC/source/latex/acmart/acmart.dtx
@@ -9011,7 +9011,7 @@ catalogue-contact-repository https://github.com/borisveytsman/acmart/
catalogue-ctan /macros/latex/contrib/acmart
catalogue-license lppl1.3
catalogue-topics class comp-sci comp-theory engineering journalpub
-catalogue-version 1.92
+catalogue-version 1.93
name acmconf
category Package
@@ -22606,17 +22606,17 @@ catalogue-topics font font-sans font-maths
name arimo
category Package
-revision 64548
+revision 68624
shortdesc Arimo sans serif fonts with LaTeX support
relocated 1
longdesc The Arimo family, designed by Steve Matteson, is an innovative,
longdesc refreshing sans serif design which is metrically compatible
longdesc with Arial.
execute addMap arimo.map
-containersize 2905268
-containerchecksum f1b4c1edbe8a6e8864b121ed5411d4ac33158d68acfeab9905c49eaba315b784e0f2472ec8b61bb3241b202345b6151a0702aec4946a1de67125258c8c2edfb6
-doccontainersize 29500
-doccontainerchecksum 14bc469a9288fbed519c8f0164f11c4d00369ae672d0c69f5c871aa24f54f8d8a4eaa5f189e30b42ada8e6f30dc8bd925b96b66a53461a2069682b89562c56f8
+containersize 2905292
+containerchecksum 413be350f39dc54afb00d555b739724d7b8d23f5bbc31ee3c888c739c0a43043a4dd971853454d8e1210b9df722ceab0077bf98d46dc4410895f0e94bbf37f21
+doccontainersize 29504
+doccontainerchecksum 633554e3e95bbb13fb62819da41613746a645696a76dcbd17ce6ea1c4f21d438e906dd747529c425269e1552e31cedbde8499339997fff920fd11d24e9956ffe
docfiles size=12
RELOC/doc/fonts/arimo/LICENSE.txt
RELOC/doc/fonts/arimo/README details="Readme"
@@ -22675,7 +22675,7 @@ runfiles size=1027
RELOC/tex/latex/arimo/arimo.sty
catalogue-ctan /fonts/arimo
catalogue-license apache2
-catalogue-topics font font-type1 font-virtual font-ttf
+catalogue-topics font font-cyrillic font-proportional font-sans font-ttf font-type1 font-virtual
name armtex
category Package
@@ -25115,7 +25115,7 @@ catalogue-version 1.35
name asmejour
category Package
-revision 65405
+revision 68624
shortdesc A template for ASME journal papers
relocated 1
longdesc The asmejour class provides a template to format preprints
@@ -25131,9 +25131,9 @@ longdesc and archivability (PDF/A). The class is compatible with
longdesc pdfLaTeX or LuaLaTeX. This package is not a publication of
longdesc ASME.
containersize 22832
-containerchecksum ea16b3b9d8852248ea87cd9da0ec78dde09c1da8af233a27a837aba266a6dadc3703cef6be5e0b5185cf7581076e4e8d7176d06215c2848f1637bcf24ce68195
+containerchecksum e51234c535f96e51936befd115b7e3ab29fc0326a7cfb88303fd131490427677e9691fdd93afab935ad96d31ec81b17015c53e69037dd473d82ee8551a247f60
doccontainersize 1824200
-doccontainerchecksum 2c9e630113f8870cc0f78c31194754ef2d572534a599991ad16a301f85970cf8a437b719be6afa79711515d10d089486f56024504fc7af24989edcde4b656c70
+doccontainerchecksum 3950547a47a91c3b5ba78cdb82aa57ee81d7a56802a31c30c980a940ec7a35f6b8730760bad823e3a31705b7cc730b748fbe86b5cbb3a35711d71b4201aa423a
docfiles size=1570
RELOC/doc/latex/asmejour/README.md details="Readme"
RELOC/doc/latex/asmejour/asmejour-sample.bib
@@ -25153,7 +25153,7 @@ runfiles size=23
catalogue-ctan /macros/latex/contrib/asmejour
catalogue-license mit
catalogue-topics class journalpub scientific-docs bibtex-sty engineering
-catalogue-version 1.20
+catalogue-version 1.21
name aspectratio
category Package
@@ -42668,24 +42668,24 @@ catalogue-version 0.1
name bithesis
category Package
-revision 68421
+revision 68624
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 18960
-containerchecksum 54bcfb3403570fb99cbf196c106ea9ea7d7dc184aa295fd5cb35352776f6ac54070f6620bc369f1b622c6ddedd99248698dfc6735d0e01cd4e91de3e2f2ab2be
-doccontainersize 556344
-doccontainerchecksum afe68b3af6fbd1636d0117e761320bf9526b80b77c90690d070fd7dc13fb550739ba0984ff34561bb4e6109313135839d86c5434858e65cadeaea7f31cc862ea
+containersize 18964
+containerchecksum 2426911ef942d3a355d77419b743ae9c1aead5dbc46f719bfff1cb00c3a63a153ad7df4ce0f73890d46669931438a2454de866779e07981092fe312900e0b209
+doccontainersize 556348
+doccontainerchecksum d17e31ade8071c0fba3aed0af2523359e3415896b3389fb1af8ee046212ec0b790d60e47e6f500c5feb47a9f5dfacaf07869d4c1eca6f73c27118706e1769bd7
docfiles size=142
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 25640
-srccontainerchecksum 6db771f49b2e61b61d8134f8eda986294a317d81b2f38f86ad3f106359a4e635f154b0a157e7062c56b1d34bf7ec2d75fa91603fe643e65c1880035fd18c7db6
+srccontainersize 25644
+srccontainerchecksum 8b9db038f650d829f182a812db9090690aa013911abc0046abfef572958bf9c641aac1d2bbb4c706ac900bce5c7e43b0883b38c84a747e7827d8528ca56f70c4
srcfiles size=32
RELOC/source/latex/bithesis/bithesis.dtx
RELOC/source/latex/bithesis/bithesis.ins
@@ -42701,7 +42701,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.6.0
+catalogue-version 3.6.1
name bitpattern
category Package
@@ -80454,30 +80454,22 @@ catalogue-topics calendar calculation context
name context-collating-marks
category ConTeXt
-revision 66956
+revision 68624
catalogue context-collatingmarks
-shortdesc Environment to place collating marks on the spine of a section
relocated 1
-longdesc This module provides a possibility to place collating marks on
-longdesc the spines of sections when using imposition. Placing collating
-longdesc marks is a method to make the correct sequence of sections of a
-longdesc book block visible.
depend context
-containersize 2652
-containerchecksum e8df083f8018fc7fff3db52b4d75285ea5d057de1d8d8e16b98c788ccfbe6ac099d256dbe408cdec6551eb8c8552e69f371dd88a8a3b4487c28332ab7c26f9bf
+containersize 2504
+containerchecksum 610948ea24e4702517299145b18d0b09ae3b906b51b14a3653dcb275ffd67913e86b436672f4945cf7271b28941b18ed5a80f0ab7fbc62c2a663567da087ce2a
doccontainersize 115224
-doccontainerchecksum 6f90934615d99f858b4ee68f09b2f4a4c913d954a6be48ddb539e563891a4b22ea50e919623ec28c076e347dd169a1fa75232f45ba78b6db5f8e6146dcf57d19
+doccontainerchecksum 3612fc7cd558dde9a5b93de3540b56b13c889891c596149a07e62e061a223df98bc98a3c6d4aadf58ef42c64b9a9827d94a62ef5763840689a7f9541c37550e6
docfiles size=39
RELOC/doc/context/third/collating-marks/LICENSE
RELOC/doc/context/third/collating-marks/README.md
RELOC/doc/context/third/collating-marks/VERSION
- RELOC/doc/context/third/collating-marks/t-collatingmarks-module-doc.pdf details="Package usage notes"
+ RELOC/doc/context/third/collating-marks/t-collatingmarks-module-doc.pdf
RELOC/doc/context/third/collating-marks/t-collatingmarks-module-doc.tex
runfiles size=2
RELOC/tex/context/third/collating-marks/t-collatingmarks.mkiv
-catalogue-ctan /macros/context/contrib/context-collatingmarks
-catalogue-license pd
-catalogue-topics book-pub context
name context-cyrillicnumbers
category ConTeXt
@@ -138572,17 +138564,17 @@ catalogue-version 0.73
name gnu-freefont
category Package
-revision 29349
+revision 68624
shortdesc A Unicode font, with rather wide coverage
relocated 1
longdesc The package provides a set of outline (i.e. OpenType) fonts
longdesc covering as much as possible of the Unicode character set. The
longdesc set consists of three typefaces: one monospaced and two
longdesc proportional (one with uniform and one with modulated stroke).
-containersize 7094080
-containerchecksum c8ced8afc3b1b9108e5a4a82db54a9a28ac6ba5f4f379062b0d9d8b9724716ca98234a345c06c7d809b1ce609f817f0a9acba1ef8e94ecbf8f1301fd3bc9d248
+containersize 7094068
+containerchecksum 8889c49137ab983c2744a6ec26dab4c1cdf2de3e6809c620b5f2fed51d3025bdc018a9d85b93b85235053d6c0f672f8cb1c074e64b8cd971d53dba3535d212a7
doccontainersize 161276
-doccontainerchecksum 3b7adbdabaf996fe8e0cff7e1192cb7f5984103398b22af6f859500a0041a0ce2ac0c70bc3f17abb7294ba80e34baa5cc77639500fa03f1a2c1c93548aa2a816
+doccontainerchecksum 232e8d0be31f77adbb62383da35e1e37d7b952cc2e6157d6eeb4cbb7d5e1dc0794d9fb3185e68073c5cb2980a3d5a6c447f878ea8cd45c7e2b806afdab21f8b5
docfiles size=231
RELOC/doc/fonts/gnu-freefont/AUTHORS
RELOC/doc/fonts/gnu-freefont/BUILDING
@@ -138639,7 +138631,7 @@ docfiles size=231
RELOC/doc/fonts/gnu-freefont/tools/utility/metafont/bulk_eps_import.py
RELOC/doc/fonts/gnu-freefont/tools/utility/special-purpose/makeBraille.py
srccontainersize 4241780
-srccontainerchecksum df7be02fdf1e4559f701b67183237f95c7b6c1b9b22f3b65688bc84d96f97964755397e4cf9039229ecec8b5810d65042ff2d7c101ef7cabbb126e6e9c93b3c5
+srccontainerchecksum b81ca0245e9a7b1bdfb0745ade7cd9da0734a407dd8c5cf3859a7fa269b949f38a3ca18341b6ff0e1c3d99ca04282ed6dd9fe2923901a06506fc9bd6b677006e
srcfiles size=6180
RELOC/source/fonts/gnu-freefont/FreeMono.sfd
RELOC/source/fonts/gnu-freefont/FreeMonoBold.sfd
@@ -138682,7 +138674,7 @@ runfiles size=4350
catalogue-contact-repository http://savannah.gnu.org/projects/freefont/
catalogue-ctan /fonts/gnu-freefont
catalogue-license gpl3
-catalogue-topics font font-proportional font-mono font-serif font-otf font-sfd
+catalogue-topics font font-cyrillic font-hebrew font-mono font-otf font-proportional font-sans font-serif font-sfd
name gnuplottex
category Package
@@ -147176,7 +147168,7 @@ catalogue-version 1.0b
name hyperref
category Package
-revision 67583
+revision 68624
shortdesc Extensive support for hypertext in LaTeX
relocated 1
longdesc The hyperref package is used to handle cross-referencing
@@ -147207,9 +147199,9 @@ depend stringenc
depend url
depend zapfding
containersize 90484
-containerchecksum 92862626106f0c883e089e2c0508739461cc995cc36c359a13b395bb0306dbcf626af4803a94983647286f0d25686da633ce402cecf0e04dc8a7bb64c68d6d34
+containerchecksum c7acc5c32d23222ef36290dde1254bf478af1ff9b87cb9d85c42488f0d62ee24c058beb485af08de5508e05d6542d466bc9dd215301117439079daea29fef7f9
doccontainersize 3675076
-doccontainerchecksum 691a3269d03e5f9caefccbd798e17c19ac9924fe536098101975e26980af1bf8a2472ed728dabb517694e7423f6becc15acf1c625daf6e98be82fd587f92a01f
+doccontainerchecksum 4484aeb85a30cd7a7cfaf3737773903a5aab814cae55246546230761075976f5671de5ee39b3de5fed1a8c2cac2fa5da6753714b05aaebc3dca0781f2cb55def
docfiles size=1198
RELOC/doc/latex/hyperref/ChangeLog.txt
RELOC/doc/latex/hyperref/README.md details="Readme"
@@ -147229,10 +147221,10 @@ docfiles size=1198
RELOC/doc/latex/hyperref/hyperref.pdf
RELOC/doc/latex/hyperref/manifest.txt
RELOC/doc/latex/hyperref/nameref.pdf
- RELOC/doc/latex/hyperref/paper.pdf details="Paper on tagging and navigation" language="en"
+ RELOC/doc/latex/hyperref/paper.pdf
RELOC/doc/latex/hyperref/slides.pdf
srccontainersize 414292
-srccontainerchecksum 02c5eeac8e103d91d3e0006b027f42c74b950e31630f6334e9f6ea3f1ecdc7dcf040b200c0c45a23c6e9715876e9c13e4c49ccd4519bc300ae3d4b3f2282e28b
+srccontainerchecksum e581422673021e898865752acd54367b1860ab6aaf7d87f3031e90b9adb5781b899df24a7c4fd81e16122ed553d344d03c81678885b3cefdf2d33da1c3bf7ccb
srcfiles size=312
RELOC/source/latex/hyperref/backref.dtx
RELOC/source/latex/hyperref/bmhydoc.sty
@@ -147278,7 +147270,7 @@ catalogue-contact-home https://github.com/latex3/hyperref
catalogue-ctan /macros/latex/contrib/hyperref
catalogue-license lppl1.3
catalogue-topics hyper pdf-feat adobe-distiller form-fillin etex
-catalogue-version 7.01b
+catalogue-version 7.01c
name hyperxmp
category Package
@@ -177185,15 +177177,15 @@ catalogue-version 0.7
name latex-via-exemplos
category Package
-revision 66989
+revision 68624
shortdesc A LaTeX course written in brazilian portuguese language
relocated 1
longdesc This is a LaTeX2e course written in brazilian portuguese
longdesc language.
-containersize 400
-containerchecksum d7c224727750f084d2c7d36d50686b5268f9d2fc89732a7601efb9eb5ac15d699e6028270ba533fb448955f79061c11e16458ff2710cddb531b703246194da2d
+containersize 404
+containerchecksum cafec287e11bbd4af78db2763ac7138c718dd0ee870ccb44217fb9c091adfc6816ce62b19c2da78d726d2a38370ade63cd295846cc733ad8eb9df2c4ac71ab30
doccontainersize 2348576
-doccontainerchecksum a3c2fdef7a47efd6f3207b0a38896d5402b03699a7fffd5786912addef346e20327830518f384e44cfad889dcd2caa30b0152f7a760c2781e6be5880e97f7c4f
+doccontainerchecksum ee3bf300433c68bac3ef8aca708ca85ce75314202273b5cb906f75c0f38044472aaa90b1353536db8884501df91a98c4085a69d530fc59f1f27f604467430c98
docfiles size=825
RELOC/doc/latex/latex-via-exemplos/README.md details="Readme"
RELOC/doc/latex/latex-via-exemplos/changelog.txt
@@ -177217,7 +177209,7 @@ catalogue-also lshort-portuguese-br
catalogue-ctan /info/latex-via-exemplos
catalogue-license gpl2+
catalogue-topics portuguese-doc tut-latex
-catalogue-version 0.5.9
+catalogue-version 0.5.10
name latex-web-companion
category Package
@@ -243474,7 +243466,7 @@ catalogue-topics parallel
name paratype
category Package
-revision 32859
+revision 68624
shortdesc LaTeX support for free fonts by ParaType
relocated 1
longdesc The package offers LaTeX support for the fonts PT Sans, PT
@@ -243486,10 +243478,10 @@ longdesc provide encodings OT1, T1, IL2, TS1, T2* and X2. The package
longdesc provides a convenient replacement of the two packages ptsans
longdesc and ptserif.
execute addMap paratype-type1.map
-containersize 4164732
-containerchecksum f7c3089b516e40d9d5534a1d25ba104623f37c3d2b77b6545b07034114644025873c0317f4a0bd5b54c6471853f5e4c7847176b42a6bdae29a6efea555fd7ae7
+containersize 4164728
+containerchecksum b6f50e5c3063357e04e94a9454cc34b17e522c54effe14696d3d81e6de1f4732953b608c0c0d13965dde5c9c95e125d967afc888ecc9396001c1deb89e9b70ef
doccontainersize 906420
-doccontainerchecksum 5d11fcd66eb57909bdc56416f53c060cd248731cea02bbeee232d10cbcd2e10753a66ad7347212337b6b110e94a82970f98b1486ce21a6ce61fffa50135a6b6f
+doccontainerchecksum ba91b90030c703dc35a77b9a51a23d90e5cd6f0a6490f74e151023248b05a6a0ea5bcf188e3c8e69611b9b7d5f72b4569538a9da02193ca737e94e744c83c107
docfiles size=289
RELOC/doc/fonts/paratype/CHANGELOG
RELOC/doc/fonts/paratype/OT_TT_Install_E.txt
@@ -244268,7 +244260,7 @@ runfiles size=5365
RELOC/tex/latex/paratype/paratype.sty
catalogue-ctan /fonts/paratype
catalogue-license lppl
-catalogue-topics font font-sans font-mono font-type1 font-ttf
+catalogue-topics font font-sans font-mono font-type1 font-ttf font-cyrillic font-proportional font-body font-serif
name paresse
category Package
@@ -259562,7 +259554,7 @@ catalogue-version 1.0
name proflycee
category Package
-revision 68594
+revision 68624
shortdesc A LaTeX package for French maths teachers in high school
relocated 1
longdesc This package provides some commands to help French mathematics
@@ -259571,10 +259563,10 @@ longdesc create splines with "derivative control";
longdesc \CalculFormelParametres and \CalculFormelLigne in order to
longdesc create an xcas-windows-like; \CodePythonLstFichier to create
longdesc code presentation and code execution with pythontex.
-containersize 41344
-containerchecksum 223ba861be83e47e2eaf3366de848c3cecbca8c5e16ddc586cd66d5c50f7a49c8f97c600634cdbe5ae8430e99f81cad9595ebe034e149cba313ae2c0737f9256
+containersize 41348
+containerchecksum 80131c9e4de6c0f091a8fa6f2d4a2ba849d395a22ec5a0c53a488bc323e4cb10b7548f455621f3d09931682901f7fd1982e00c59081bb186b81fcecf98379abe
doccontainersize 1584296
-doccontainerchecksum 41d921d4ce8aa6e801d0e1e59abbd3c7fbc2516080a012322675601bb0c4cf8893d090d7ae9967565210e68680ebb3095ec8b00214f8b8d4067c0a130068ce5f
+doccontainerchecksum 39806573c707eea0e50432f1deab008728ff0f704d25c533e514d53ef2ddbdbe7e15edbfb122c2a2ed711019318203e5375080d93ca85594e409e28185b57ac5
docfiles size=482
RELOC/doc/latex/proflycee/ProfLycee-doc.pdf details="Package documentation" language="fr"
RELOC/doc/latex/proflycee/ProfLycee-doc.tex
@@ -259625,7 +259617,7 @@ catalogue-contact-repository https://github.com/cpierquet/ProfLycee
catalogue-ctan /macros/latex/contrib/proflycee
catalogue-license lppl1.3c
catalogue-topics maths french teaching expl3 pgf-tikz
-catalogue-version 2.8.0
+catalogue-version 3.00a
name profmaquette
category Package
@@ -302311,7 +302303,7 @@ catalogue-version 0.1
name tex-gyre
category Package
-revision 67718
+revision 68624
shortdesc TeX Fonts extending freely available URW fonts
relocated 1
longdesc The TeX-GYRE bundle consists of six font families: TeX Gyre
@@ -302348,10 +302340,10 @@ execute addMap qhv.map
execute addMap qpl.map
execute addMap qtm.map
execute addMap qzc.map
-containersize 7748408
-containerchecksum 1274f3afba14dfd8f5e3d409ce08ff5fc8c8419ba5185304cf4668f4778bc454f35221955f67673980966bb332d60a96919ecfe6fe755e1dd1ca5fc5ff57c6bf
-doccontainersize 11141776
-doccontainerchecksum e333af6f7f6cf543eb3ccfadcf22aaebdc9b5e4645bf72331f8833431c51ceb0a85aae036ae265368ba22e0e5b49d03695eb185cf626eb3b7da3807eaf1de1c1
+containersize 7748428
+containerchecksum 5422f349d15233e6f49576fe3a65f8afb5cae6a3c51e5ad7cb56617d7d064e9cf574f233f789c029c04bbfc24e5948c115b2d33569e881373d68615ac709153f
+doccontainersize 11141772
+doccontainerchecksum db2bcc8da6d3bfb6f2165c1fb127b2b4a7471e41a0cebb851ce5465a18740d34948ce8292b4f6bd359621166602cf62a978bb179346dbd1dcfada49cc7972686
docfiles size=3466
RELOC/doc/fonts/tex-gyre/GUST-FONT-LICENSE.txt
RELOC/doc/fonts/tex-gyre/MANIFEST-TeX-Gyre-Adventor.txt
@@ -302426,7 +302418,7 @@ docfiles size=3466
RELOC/doc/fonts/tex-gyre/qzcmi.fea
RELOC/doc/fonts/tex-gyre/tex-gyre-info-src.zip
srccontainersize 1016896
-srccontainerchecksum 5bc42e8bd3b782d95f1eafcc4477166b2040ac48c56e8388d301d0e3f08301062810a3d1dac948e9ed51a39404173a0fe5e45f3876f41699789cc8ad0264b943
+srccontainerchecksum e958408e6e64a54b25fa89b38de181c96fffb9eb8762959209799c39cead7a5525f220b7b3cd278e35cb9e3e49c1c85d565d518ffacb0695b0c3c09ede935266
srcfiles size=3204
RELOC/source/fonts/tex-gyre/texgyreadventor-bold.fea
RELOC/source/fonts/tex-gyre/texgyreadventor-bold.sfd
@@ -303261,7 +303253,7 @@ runfiles size=6656
catalogue-contact-home https://www.gust.org.pl/projects/e-foundry/tex-gyre
catalogue-ctan /fonts/tex-gyre
catalogue-license gfl
-catalogue-topics font font-otf font-type1 font-collection
+catalogue-topics font font-otf font-proportional font-sans font-serif font-type1 font-collection
catalogue-version 2.501
name tex-gyre-math
@@ -316000,7 +315992,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 68614
+revision 68623
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.
@@ -316008,11 +316000,11 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 114076
-containerchecksum 33907eecf47dba2fe55d7ca0619a7ea49bb6f5135a8f9abceb8c739f70df12813855053de72d13b7d9f716e7b08a1324097890a705c80ef8458249f192b00216
-doccontainersize 428184
-doccontainerchecksum a5ba9269330dea126d5c40bbdbd6b1126518cef9d06c9095ff75f483022acf86150144ab241d105bbad41e983f9d8532f6a7d8a0659c0563c4d6309705d4cccb
-docfiles size=549
+containersize 114072
+containerchecksum 422ef45db5d25c34b2ab827bba2e30d5fceb00208749e0a4512188cca47af122b019b4790deea036e4c3a2c7e2be8ede28b0b25e29eba32a23aa209830f40f1c
+doccontainersize 428296
+doccontainerchecksum fc3583538501cf79e869c6aa90adc34b0b3f702a824e87d04819c4a865a81aa132983e33a08cc93a993532769b580745b31af449049c803968a234d40f10a254
+docfiles size=550
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index d36608fef1..6a01ff17c9 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-afcf6aaf0ebdcc7bd7771614edb1475c texlive.tlpdb
+2fc599e1016a45d2651565605a0a37ef texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 37d0eba92b..e49ecc7f52 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-b732ee6c1ca8cc42fedcaf8706894f7f0182a3ec73becb84bc25aeaf311b39528b3675a348d94f5fa46c4926a446275c5c10a9360d96de74280dcb3cf7a60f8b texlive.tlpdb
+86cdf54b8ec24755383a958d51d2c0675f5b251ad0f5e7a4a9c846c6a164b045611b461128134f12b172851902f4424ca0f50545450013e4d3b1c3ed5bc53c68 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 6b2b8b206f..bae65525e6 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmU1tAYACgkQTOGHfhlD
-jHA9AAf+P+Gswd/qM90fdk0eT0nnqmHBwN3sNVhH/fYGIuxg/WdKS/8EDcnfcQ8D
-ZnBY4BlM33WSH1FMXckaiioxxHNzRrObw6wIRW4l3dO7aejdXzQTk3feYEbgREDp
-zwrZtCUa0KcNyk+Tu60IQ/F96pYDiugpDn1dTOXpEmF5PYOtsvXkJsdKKn636HM0
-Rnf/UiT7appLlMbSHXs4skHC/a0bNJ40RsHjay2PjRhDWx4zJGnO8gWVDVndjDyh
-Dly5X6yIjMS2vJSPvKBaJwqWR0fkHnSGv5ysQHqAhDQ8OkDdBpr9ZWzt7bbPrWn3
-ar/G0DwBNr/2E0o5W8HA3WzsECFp1g==
-=hwqw
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmU3BcMACgkQTOGHfhlD
+jHDU0Af9FoRPkPzWf2pe9elV0oCiiPtQD+iXN4+/K+rSoAKAaI5Azo7vMONOp8ew
+p9AHBhvNAOTiGs4Pe0sa7u7SwvTAsjNA1I0COse3IFF7IcgFbQecMHm50a8EU85p
+SN6S2zv+ZCS0Nl1KrzHKywqWGFRPJ/hGw438qxFqZMsWJ8CkCPecXh8DjAX+sjOP
+fuqZEw6qNy2jHwxfb+soOKcgHwfWEd1N25ZFVknbqtDfZnPWj1+iQxK6UxSp9rzJ
+lPdco3x+jnaNI3Z/ENJWrpdS7fXTKzANNRpmSPFT2NqJ1mOJ3AH4pTVtoTl/2tBo
+OYm0oPSMvQ+KB0xR21DEt5PsFLo43Q==
+=d5di
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index e12ed12ab8..9993b8cae6 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index 0bb605f37a..4983da418b 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2023-10-23-02-02
+2023-10-24-02-02