From 4338972cc175be565a3441c4ae8a6aa0dfcbe9f9 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 6 Jun 2021 03:02:43 +0000 Subject: CTAN sync 202106060302 --- FILES.byname | 1884 ++++----- FILES.byname.gz | Bin 2317896 -> 2317849 bytes FILES.last07days | 1355 +++++-- language/japanese/pxbase/README-ja.md | 6 + language/japanese/pxbase/README.md | 1 + language/japanese/pxbase/pxbabel.pdf | Bin 136058 -> 151912 bytes language/japanese/pxbase/pxbabel.sty | 47 +- language/japanese/pxbase/pxbabel.tex | 153 +- language/japanese/pxbase/pxbase.sty | 2 +- language/japanese/pxbase/pxbasenc.def | 2 +- language/japanese/pxbase/pxjsfenc.def | 2 +- language/japanese/pxbase/upkcat.sty | 2 +- macros/latex-dev/base/README.md | 2 +- macros/latex-dev/base/alltt.pdf | Bin 214710 -> 214710 bytes macros/latex-dev/base/cfgguide.pdf | Bin 242886 -> 242886 bytes macros/latex-dev/base/changes.txt | 50 +- macros/latex-dev/base/classes.pdf | Bin 550002 -> 550002 bytes macros/latex-dev/base/clsguide.pdf | Bin 402779 -> 402779 bytes macros/latex-dev/base/cmfonts.pdf | Bin 292317 -> 292317 bytes macros/latex-dev/base/cyrguide.pdf | Bin 239681 -> 239681 bytes macros/latex-dev/base/doc.dtx | 5 +- macros/latex-dev/base/doc.pdf | Bin 676545 -> 676731 bytes macros/latex-dev/base/docstrip.pdf | Bin 503349 -> 503401 bytes macros/latex-dev/base/encguide.pdf | Bin 1316472 -> 1316472 bytes macros/latex-dev/base/exscale.pdf | Bin 212307 -> 212307 bytes macros/latex-dev/base/fix-cm.pdf | Bin 287672 -> 287672 bytes macros/latex-dev/base/fntguide.pdf | Bin 493957 -> 493957 bytes macros/latex-dev/base/graphpap.pdf | Bin 169323 -> 169323 bytes macros/latex-dev/base/ifthen.pdf | Bin 220417 -> 220417 bytes macros/latex-dev/base/inputenc.pdf | Bin 318168 -> 318168 bytes macros/latex-dev/base/latexchanges.pdf | Bin 468043 -> 468043 bytes macros/latex-dev/base/latexrelease.pdf | Bin 290495 -> 290495 bytes macros/latex-dev/base/latexsym.pdf | Bin 208359 -> 208359 bytes macros/latex-dev/base/lb2.pdf | Bin 252154 -> 252154 bytes macros/latex-dev/base/letter.pdf | Bin 328853 -> 328949 bytes macros/latex-dev/base/lgc2.pdf | Bin 215091 -> 215091 bytes macros/latex-dev/base/lppl.pdf | Bin 132373 -> 132373 bytes macros/latex-dev/base/ltclass.dtx | 12 +- macros/latex-dev/base/ltcmd.dtx | 173 +- macros/latex-dev/base/ltcmdhooks-code.pdf | Bin 686990 -> 693284 bytes macros/latex-dev/base/ltcmdhooks-doc.pdf | Bin 477922 -> 479593 bytes macros/latex-dev/base/ltcmdhooks.dtx | 33 +- macros/latex-dev/base/ltdefns.dtx | 7 +- macros/latex-dev/base/ltfilehook-code.pdf | Bin 784738 -> 795607 bytes macros/latex-dev/base/ltfilehook-doc.pdf | Bin 543890 -> 546176 bytes macros/latex-dev/base/ltfilehook.dtx | 9 +- macros/latex-dev/base/lthooks-code.pdf | Bin 1002696 -> 1029365 bytes macros/latex-dev/base/lthooks-doc.pdf | Bin 676691 -> 684097 bytes macros/latex-dev/base/lthooks.dtx | 103 +- macros/latex-dev/base/ltluatex.pdf | Bin 325289 -> 325289 bytes macros/latex-dev/base/ltnews.pdf | Bin 1068601 -> 1074372 bytes macros/latex-dev/base/ltnews01.pdf | Bin 161518 -> 161518 bytes macros/latex-dev/base/ltnews02.pdf | Bin 150466 -> 150466 bytes macros/latex-dev/base/ltnews03.pdf | Bin 150493 -> 150493 bytes macros/latex-dev/base/ltnews04.pdf | Bin 143686 -> 143686 bytes macros/latex-dev/base/ltnews05.pdf | Bin 174488 -> 174488 bytes macros/latex-dev/base/ltnews06.pdf | Bin 142909 -> 142909 bytes macros/latex-dev/base/ltnews07.pdf | Bin 138044 -> 138044 bytes macros/latex-dev/base/ltnews08.pdf | Bin 155055 -> 155055 bytes macros/latex-dev/base/ltnews09.pdf | Bin 129032 -> 129032 bytes macros/latex-dev/base/ltnews10.pdf | Bin 159313 -> 159313 bytes macros/latex-dev/base/ltnews11.pdf | Bin 111955 -> 111955 bytes macros/latex-dev/base/ltnews12.pdf | Bin 147587 -> 147587 bytes macros/latex-dev/base/ltnews13.pdf | Bin 173323 -> 173323 bytes macros/latex-dev/base/ltnews14.pdf | Bin 161405 -> 161405 bytes macros/latex-dev/base/ltnews15.pdf | Bin 130447 -> 130447 bytes macros/latex-dev/base/ltnews16.pdf | Bin 146533 -> 146533 bytes macros/latex-dev/base/ltnews17.pdf | Bin 166368 -> 166368 bytes macros/latex-dev/base/ltnews18.pdf | Bin 38031 -> 38031 bytes macros/latex-dev/base/ltnews19.pdf | Bin 245818 -> 245818 bytes macros/latex-dev/base/ltnews20.pdf | Bin 297070 -> 297070 bytes macros/latex-dev/base/ltnews21.pdf | Bin 244869 -> 244869 bytes macros/latex-dev/base/ltnews22.pdf | Bin 318399 -> 318399 bytes macros/latex-dev/base/ltnews23.pdf | Bin 287125 -> 287125 bytes macros/latex-dev/base/ltnews24.pdf | Bin 265211 -> 265211 bytes macros/latex-dev/base/ltnews25.pdf | Bin 205162 -> 205162 bytes macros/latex-dev/base/ltnews26.pdf | Bin 379735 -> 379735 bytes macros/latex-dev/base/ltnews27.pdf | Bin 252432 -> 252432 bytes macros/latex-dev/base/ltnews28.pdf | Bin 387987 -> 387987 bytes macros/latex-dev/base/ltnews29.pdf | Bin 454808 -> 454808 bytes macros/latex-dev/base/ltnews30.pdf | Bin 511855 -> 511855 bytes macros/latex-dev/base/ltnews31.pdf | Bin 526312 -> 526312 bytes macros/latex-dev/base/ltnews32.pdf | Bin 546162 -> 546162 bytes macros/latex-dev/base/ltnews33.pdf | Bin 539851 -> 522413 bytes macros/latex-dev/base/ltnews33.tex | 1042 +++-- macros/latex-dev/base/ltoutput.dtx | 16 +- macros/latex-dev/base/ltpara-code.pdf | Bin 655726 -> 664749 bytes macros/latex-dev/base/ltpara-doc.pdf | Bin 557225 -> 560474 bytes macros/latex-dev/base/ltpara.dtx | 35 +- macros/latex-dev/base/ltshipout-code.pdf | Bin 811021 -> 818898 bytes macros/latex-dev/base/ltshipout-doc.pdf | Bin 562571 -> 564834 bytes macros/latex-dev/base/ltvers.dtx | 4 +- macros/latex-dev/base/ltx3info.pdf | Bin 219354 -> 219354 bytes macros/latex-dev/base/ltxdoc.pdf | Bin 238577 -> 238577 bytes macros/latex-dev/base/makeindx.pdf | Bin 173682 -> 173682 bytes macros/latex-dev/base/manual.pdf | Bin 160521 -> 160521 bytes macros/latex-dev/base/modguide.pdf | Bin 243601 -> 243601 bytes macros/latex-dev/base/nfssfont.pdf | Bin 218782 -> 218782 bytes macros/latex-dev/base/proc.pdf | Bin 233995 -> 233995 bytes macros/latex-dev/base/slides.pdf | Bin 374051 -> 374051 bytes macros/latex-dev/base/slifonts.pdf | Bin 234008 -> 234008 bytes macros/latex-dev/base/source2e.pdf | Bin 4959329 -> 5275548 bytes macros/latex-dev/base/syntonly.pdf | Bin 197297 -> 197409 bytes macros/latex-dev/base/tlc2.pdf | Bin 289245 -> 289245 bytes macros/latex-dev/base/tulm.pdf | Bin 170529 -> 170529 bytes macros/latex-dev/base/usrguide.pdf | Bin 430996 -> 430996 bytes macros/latex-dev/base/usrguide3.pdf | Bin 325299 -> 325299 bytes macros/latex-dev/base/utf8ienc.pdf | Bin 361356 -> 361715 bytes macros/latex-dev/base/webcomp.pdf | Bin 146200 -> 146200 bytes macros/latex-dev/required/amsmath/README.md | 4 +- macros/latex-dev/required/amsmath/amsbsy.dtx | 5 +- macros/latex-dev/required/amsmath/amsbsy.ins | 13 +- macros/latex-dev/required/amsmath/amsbsy.pdf | Bin 161324 -> 173746 bytes macros/latex-dev/required/amsmath/amscd.dtx | 4 +- macros/latex-dev/required/amsmath/amscd.ins | 12 +- macros/latex-dev/required/amsmath/amscd.pdf | Bin 165745 -> 178672 bytes macros/latex-dev/required/amsmath/amsgen.dtx | 4 +- macros/latex-dev/required/amsmath/amsgen.ins | 12 +- macros/latex-dev/required/amsmath/amsgen.pdf | Bin 164345 -> 176740 bytes macros/latex-dev/required/amsmath/amsldoc.pdf | Bin 476032 -> 508231 bytes macros/latex-dev/required/amsmath/amsldoc.tex | 6 +- .../required/amsmath/amsmath-2018-12-01.sty | 6 +- macros/latex-dev/required/amsmath/amsmath.dtx | 9 +- macros/latex-dev/required/amsmath/amsmath.ins | 12 +- macros/latex-dev/required/amsmath/amsmath.pdf | Bin 384171 -> 398817 bytes macros/latex-dev/required/amsmath/amsopn.dtx | 4 +- macros/latex-dev/required/amsmath/amsopn.ins | 12 +- macros/latex-dev/required/amsmath/amsopn.pdf | Bin 129155 -> 138991 bytes macros/latex-dev/required/amsmath/amstex.sty | 6 +- macros/latex-dev/required/amsmath/amstext.dtx | 4 +- macros/latex-dev/required/amsmath/amstext.ins | 12 +- macros/latex-dev/required/amsmath/amstext.pdf | Bin 194257 -> 215693 bytes macros/latex-dev/required/amsmath/amsxtra.dtx | 4 +- macros/latex-dev/required/amsmath/amsxtra.ins | 12 +- macros/latex-dev/required/amsmath/amsxtra.pdf | Bin 104545 -> 112556 bytes macros/latex-dev/required/amsmath/changes.txt | 11 +- macros/latex-dev/required/amsmath/subeqn.pdf | Bin 101293 -> 109737 bytes macros/latex-dev/required/amsmath/technote.pdf | Bin 130600 -> 145610 bytes macros/latex-dev/required/amsmath/testmath.pdf | Bin 429026 -> 454662 bytes macros/latex-dev/required/firstaid/changes.txt | 8 + macros/latex-dev/required/firstaid/firstaid.ins | 2 +- .../latex2e-first-aid-for-external-files.dtx | 45 +- .../latex2e-first-aid-for-external-files.pdf | Bin 224897 -> 228673 bytes macros/latex-dev/required/graphics/README.md | 2 +- macros/latex-dev/required/graphics/changes.txt | 12 +- macros/latex-dev/required/graphics/color.pdf | Bin 215002 -> 215002 bytes macros/latex-dev/required/graphics/drivers.pdf | Bin 286309 -> 286309 bytes macros/latex-dev/required/graphics/epsfig.pdf | Bin 167686 -> 167686 bytes macros/latex-dev/required/graphics/graphics.pdf | Bin 310676 -> 310676 bytes macros/latex-dev/required/graphics/graphicx.pdf | Bin 247910 -> 247910 bytes macros/latex-dev/required/graphics/grfguide.pdf | Bin 330071 -> 330071 bytes macros/latex-dev/required/graphics/keyval.pdf | Bin 239654 -> 239654 bytes macros/latex-dev/required/graphics/lscape.pdf | Bin 163584 -> 163584 bytes macros/latex-dev/required/graphics/rotating.pdf | Bin 269434 -> 269292 bytes macros/latex-dev/required/graphics/rotex.pdf | Bin 172231 -> 172230 bytes macros/latex-dev/required/graphics/trig.pdf | Bin 207299 -> 207299 bytes macros/latex-dev/required/tools/README.md | 2 +- macros/latex-dev/required/tools/afterpage.pdf | Bin 205344 -> 205344 bytes macros/latex-dev/required/tools/array.pdf | Bin 516484 -> 516568 bytes macros/latex-dev/required/tools/bm.pdf | Bin 331424 -> 331424 bytes macros/latex-dev/required/tools/calc.pdf | Bin 370414 -> 370414 bytes macros/latex-dev/required/tools/changes.txt | 18 +- macros/latex-dev/required/tools/dcolumn.pdf | Bin 220689 -> 220689 bytes macros/latex-dev/required/tools/delarray.pdf | Bin 198647 -> 198647 bytes macros/latex-dev/required/tools/enumerate.pdf | Bin 215355 -> 215355 bytes macros/latex-dev/required/tools/fileerr.pdf | Bin 195098 -> 195211 bytes macros/latex-dev/required/tools/fontsmpl.pdf | Bin 154034 -> 154034 bytes macros/latex-dev/required/tools/ftnright.pdf | Bin 369809 -> 369903 bytes macros/latex-dev/required/tools/hhline.pdf | Bin 189538 -> 189538 bytes macros/latex-dev/required/tools/indentfirst.pdf | Bin 157803 -> 157803 bytes macros/latex-dev/required/tools/layout.pdf | Bin 267761 -> 267761 bytes macros/latex-dev/required/tools/longtable.dtx | 6 +- macros/latex-dev/required/tools/longtable.pdf | Bin 382012 -> 382541 bytes macros/latex-dev/required/tools/multicol.pdf | Bin 516282 -> 516238 bytes macros/latex-dev/required/tools/rawfonts.pdf | Bin 146534 -> 146534 bytes macros/latex-dev/required/tools/shellesc.pdf | Bin 183532 -> 183532 bytes macros/latex-dev/required/tools/showkeys.pdf | Bin 260624 -> 260624 bytes macros/latex-dev/required/tools/somedefs.pdf | Bin 175169 -> 175169 bytes macros/latex-dev/required/tools/tabularx.pdf | Bin 278041 -> 278041 bytes macros/latex-dev/required/tools/theorem.pdf | Bin 351310 -> 351417 bytes macros/latex-dev/required/tools/tools-overview.pdf | Bin 73674 -> 73674 bytes macros/latex-dev/required/tools/trace.pdf | Bin 229713 -> 229713 bytes macros/latex-dev/required/tools/varioref.pdf | Bin 383483 -> 383483 bytes macros/latex-dev/required/tools/verbatim.pdf | Bin 330815 -> 330815 bytes macros/latex-dev/required/tools/xr.pdf | Bin 177595 -> 177595 bytes macros/latex-dev/required/tools/xspace.pdf | Bin 256897 -> 256897 bytes macros/latex/contrib/bjfuthesis/README.md | 20 +- macros/latex/contrib/bjfuthesis/bjfuthesis.cls | 86 +- .../contrib/bjfuthesis/example/bibliography.bib | 492 ++- .../bjfuthesis/example/contents/abstract.tex | 8 +- .../bjfuthesis/example/contents/mainbody.tex | 72 +- macros/latex/contrib/bjfuthesis/example/cover.pdf | Bin 207622 -> 208783 bytes .../example/figures/admin-knowledge-graph.png | Bin 445624 -> 382656 bytes .../bjfuthesis/example/figures/admin-movie.png | Bin 88861 -> 90221 bytes .../example/figures/admin-navigation.png | Bin 180215 -> 293686 bytes .../example/figures/anonymous-category.png | Bin 716372 -> 717008 bytes .../example/figures/anonymous-details.png | Bin 545274 -> 545702 bytes .../bjfuthesis/example/figures/anonymous-index.png | Bin 762316 -> 718715 bytes .../example/figures/anonymous-search.png | Bin 515568 -> 487115 bytes .../bjfuthesis/example/figures/general-details.png | Bin 503309 -> 508974 bytes macros/latex/contrib/bjfuthesis/example/thesis.pdf | Bin 4808696 -> 4830593 bytes macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls | 53 - macros/latex/contrib/bmstu-iu8/LICENSE | 21 - macros/latex/contrib/bmstu-iu8/README.md | 12 +- macros/latex/contrib/bmstu-iu8/bmstu-example.pdf | Bin 0 -> 177037 bytes macros/latex/contrib/bmstu-iu8/bmstu-example.tex | 55 + .../contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls | 54 + .../contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png | Bin 0 -> 53203 bytes .../bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty | 41 + .../bmstu-iu8/styles/02-IU8-construction.sty | 66 + .../bmstu-iu8/styles/03-IU8-numbering.sty | 17 + .../bmstu-iu8/styles/04-IU8-section-numbering.sty | 52 + .../bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty | 54 + .../bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty | 78 + .../bmstu-iu8/styles/07-IU8-footnotes.sty | 37 + .../bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty | 5 + .../bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty | 19 + .../bmstu-iu8/styles/10-IU8-titlepage.sty | 237 ++ .../bmstu-iu8/styles/11-IU8-performers.sty | 5 + .../bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty | 27 + .../bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty | 29 + .../styles/14-IU8-terms-and-definitions.sty | 35 + .../styles/15-IU8-list-of-abbreviations.sty | 29 + .../bmstu-iu8/styles/16-IU8-references.sty | 18 + .../bmstu-iu8/styles/17-IU8-appendices.sty | 25 + .../bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty | 25 + .../bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty | 22 + .../bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty | 38 + .../bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty | 11 + .../bmstu-iu8/styles/22-IU8-algorithms.sty | 26 + macros/latex/contrib/bmstu-iu8/example.pdf | Bin 192899 -> 0 bytes macros/latex/contrib/bmstu-iu8/example.tex | 55 - macros/latex/contrib/bmstu-iu8/inc/bmstu.png | Bin 53203 -> 0 bytes .../latex/contrib/bmstu-iu8/styles/01-IU8-base.sty | 40 - .../bmstu-iu8/styles/02-IU8-construction.sty | 66 - .../contrib/bmstu-iu8/styles/03-IU8-numbering.sty | 17 - .../bmstu-iu8/styles/04-IU8-section-numbering.sty | 52 - .../contrib/bmstu-iu8/styles/05-IU8-figures.sty | 54 - .../contrib/bmstu-iu8/styles/06-IU8-tables.sty | 78 - .../contrib/bmstu-iu8/styles/07-IU8-footnotes.sty | 37 - .../contrib/bmstu-iu8/styles/08-IU8-formulas.sty | 5 - .../contrib/bmstu-iu8/styles/09-IU8-cites.sty | 19 - .../contrib/bmstu-iu8/styles/10-IU8-titlepage.sty | 237 -- .../contrib/bmstu-iu8/styles/11-IU8-performers.sty | 5 - .../contrib/bmstu-iu8/styles/12-IU8-abstract.sty | 27 - .../contrib/bmstu-iu8/styles/13-IU8-contents.sty | 29 - .../styles/14-IU8-terms-and-definitions.sty | 44 - .../styles/15-IU8-list-of-abbreviations.sty | 29 - .../contrib/bmstu-iu8/styles/16-IU8-references.sty | 27 - .../contrib/bmstu-iu8/styles/17-IU8-appendices.sty | 23 - .../contrib/bmstu-iu8/styles/18-IU8-extra.sty | 27 - .../contrib/bmstu-iu8/styles/19-IU8-counters.sty | 22 - .../contrib/bmstu-iu8/styles/20-IU8-listing.sty | 43 - .../latex/contrib/bmstu-iu8/styles/21-IU8-math.sty | 11 - .../contrib/bmstu-iu8/styles/22-IU8-algorithms.sty | 26 - macros/latex/contrib/easybook/easybook.dtx | 103 +- macros/latex/contrib/easybook/easybook.pdf | Bin 315303 -> 315305 bytes macros/latex/contrib/eq-pin2corr/README.md | 11 +- .../latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf | Bin 256673 -> 101085 bytes .../contrib/eq-pin2corr/doc/eqpin2corrman.pdf | Bin 245015 -> 426168 bytes .../contrib/eq-pin2corr/doc/eqpin2corrman.tex | 376 +- macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx | 328 +- .../eq-pin2corr/examples/get-hash-string.pdf | Bin 83433 -> 78863 bytes .../eq-pin2corr/examples/get-hash-string.tex | 18 +- .../latex/contrib/eq-pin2corr/examples/qz-p2c.pdf | Bin 0 -> 141525 bytes .../latex/contrib/eq-pin2corr/examples/qz-p2c.tex | 99 + .../eq-pin2corr/examples/qz-pin-to-correct.pdf | Bin 171609 -> 0 bytes .../eq-pin2corr/examples/qz-pin-to-correct.tex | 99 - macros/latex/contrib/hyperref/ChangeLog.txt | 7 +- macros/latex/contrib/hyperref/README.md | 2 +- macros/latex/contrib/hyperref/doc/backref.pdf | Bin 198815 -> 198815 bytes .../latex/contrib/hyperref/doc/hyperref-doc.html | 1808 +++++---- macros/latex/contrib/hyperref/doc/hyperref-doc.pdf | Bin 298211 -> 298609 bytes macros/latex/contrib/hyperref/doc/hyperref-doc.tex | 4 +- macros/latex/contrib/hyperref/doc/hyperref.pdf | Bin 2426117 -> 2427494 bytes macros/latex/contrib/hyperref/doc/nameref.pdf | Bin 188802 -> 188802 bytes macros/latex/contrib/hyperref/hluatex.dtx | 4 +- macros/latex/contrib/hyperref/hyperref.dtx | 12 +- macros/latex/contrib/hyperref/xr-hyper.sty | 2 +- .../latex/contrib/nicematrix/nicematrix-french.pdf | Bin 462481 -> 462567 bytes .../latex/contrib/nicematrix/nicematrix-french.tex | 2 +- macros/latex/contrib/nicematrix/nicematrix.dtx | 229 +- macros/latex/contrib/nicematrix/nicematrix.pdf | Bin 1248363 -> 1305091 bytes .../contrib/profcollege/doc/ProfCollege-doc.pdf | Bin 2781147 -> 2784308 bytes .../profcollege/latex/PfCEquationComposition2.tex | 157 +- .../profcollege/latex/PfCEquationLaurent1.tex | 144 +- .../contrib/profcollege/latex/PfCEquationPose1.tex | 152 +- .../profcollege/latex/PfCEquationSoustraction2.tex | 164 +- .../profcollege/latex/PfCEquationSymbole1.tex | 89 +- .../profcollege/latex/PfCEquationTerme1.tex | 201 +- .../contrib/profcollege/latex/ProfCollege.sty | 1132 ++++-- macros/latex/contrib/suftesi/suftesi.dtx | 109 +- macros/latex/contrib/suftesi/suftesi.pdf | Bin 837570 -> 847077 bytes .../latex/contrib/tabularray/tabularray-2021.sty | 4218 ++++++++++++++++++++ macros/latex/contrib/tabularray/tabularray.pdf | Bin 399433 -> 426537 bytes macros/latex/contrib/tabularray/tabularray.sty | 955 +++-- macros/latex/contrib/tabularray/tabularray.tex | 36 +- macros/latex/required/firstaid/changes.txt | 7 + macros/latex/required/firstaid/firstaid.ins | 13 +- .../latex2e-first-aid-for-external-files.dtx | 127 +- .../latex2e-first-aid-for-external-files.pdf | Bin 205202 -> 228448 bytes .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 6 + systems/texlive/tlnet/tlpkg/texlive.tlpdb | 440 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2310352 -> 2310768 bytes systems/win32/miktex/doc/miktex.pdf | Bin 509859 -> 509727 bytes systems/win32/miktex/setup/rpm/fedora-34.repo | 5 + systems/win32/miktex/tm/packages/files.csv.lzma | Bin 576828 -> 580325 bytes .../win32/miktex/tm/packages/next/files.csv.lzma | Bin 577473 -> 580167 bytes systems/win32/miktex/tm/packages/next/pr.ini | 10 +- systems/win32/miktex/tm/packages/pr.ini | 12 +- systems/win32/w32tex/ChangeLog | 28 + timestamp | 2 +- 315 files changed, 13149 insertions(+), 5914 deletions(-) delete mode 100644 macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls delete mode 100644 macros/latex/contrib/bmstu-iu8/LICENSE create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-example.pdf create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-example.tex create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty create mode 100644 macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/example.pdf delete mode 100644 macros/latex/contrib/bmstu-iu8/example.tex delete mode 100644 macros/latex/contrib/bmstu-iu8/inc/bmstu.png delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/01-IU8-base.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/02-IU8-construction.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/03-IU8-numbering.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/04-IU8-section-numbering.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/05-IU8-figures.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/06-IU8-tables.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/07-IU8-footnotes.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/08-IU8-formulas.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/09-IU8-cites.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/10-IU8-titlepage.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/11-IU8-performers.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/12-IU8-abstract.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/13-IU8-contents.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/16-IU8-references.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/17-IU8-appendices.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/18-IU8-extra.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/19-IU8-counters.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/20-IU8-listing.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/21-IU8-math.sty delete mode 100644 macros/latex/contrib/bmstu-iu8/styles/22-IU8-algorithms.sty create mode 100644 macros/latex/contrib/eq-pin2corr/examples/qz-p2c.pdf create mode 100644 macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex delete mode 100644 macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.pdf delete mode 100644 macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.tex create mode 100644 macros/latex/contrib/tabularray/tabularray-2021.sty create mode 100644 systems/win32/miktex/setup/rpm/fedora-34.repo diff --git a/FILES.byname b/FILES.byname index 86f6468e95..aaf6f24888 100644 --- a/FILES.byname +++ b/FILES.byname @@ -5087,7 +5087,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 -2021/06/04 | 234380 | FILES.last07days +2021/06/05 | 236851 | FILES.last07days 2020/08/14 | 104065 | fonts/academicons/academicons.pdf 2020/08/14 | 17247 | fonts/academicons/academicons.sty 2020/08/14 | 6546 | fonts/academicons/academicons.tex @@ -173006,7 +173006,7 @@ 2019/12/05 | 583460 | install/macros/latex/contrib/hologo.tds.zip 2011/04/29 | 449052 | install/macros/latex/contrib/hrefhide.tds.zip 2016/11/20 | 951051 | install/macros/latex/contrib/hustthesis.tds.zip -2021/02/28 | 4092816 | install/macros/latex/contrib/hyperref.tds.zip +2021/06/05 | 4093730 | install/macros/latex/contrib/hyperref.tds.zip 2020/11/22 | 1380823 | install/macros/latex/contrib/hyperxmp.tds.zip 2009/09/02 | 167274 | install/macros/latex/contrib/hyphenat.tds.zip 2009/04/05 | 198256 | install/macros/latex/contrib/IEEEconf.tds.zip @@ -173145,7 +173145,7 @@ 2019/03/20 | 7942984 | install/macros/latex/contrib/stex.tds.zip 2011/12/21 | 204538 | install/macros/latex/contrib/storebox.tds.zip 2019/11/30 | 800764 | install/macros/latex/contrib/stringenc.tds.zip -2021/05/24 | 1572245 | install/macros/latex/contrib/suftesi.tds.zip +2021/06/05 | 1581691 | install/macros/latex/contrib/suftesi.tds.zip 2012/05/06 | 463336 | install/macros/latex/contrib/svn-multi.tds.zip 2010/04/24 | 261363 | install/macros/latex/contrib/svn-prov.tds.zip 2014/05/20 | 721827 | install/macros/latex/contrib/sympytexpackage.tds.zip @@ -173191,18 +173191,18 @@ 2020/04/09 | 806385 | install/macros/latex/contrib/zhlipsum.tds.zip 2020/05/01 | 293478 | install/macros/latex/contrib/zhnumber.tds.zip 2020/10/09 | 728226 | install/macros/latex/contrib/zref.tds.zip -2021/05/04 | 34063495 | install/macros/latex-dev/latex-base-dev.tds.zip -2020/10/28 | 2643533 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip -2021/02/26 | 229335 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip -2021/05/04 | 2666324 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip -2021/05/04 | 7347977 | install/macros/latex-dev/required/latex-tools-dev.tds.zip +2021/06/05 | 34390780 | install/macros/latex-dev/latex-base-dev.tds.zip +2021/06/05 | 2763722 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip +2021/06/05 | 233623 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip +2021/06/05 | 2666197 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip +2021/06/05 | 7348926 | install/macros/latex-dev/required/latex-tools-dev.tds.zip 2021/06/02 | 34386868 | install/macros/latex/latex-base.tds.zip 2020/06/01 | 1578753 | install/macros/latex/required/amscls.tds.zip 2021/06/02 | 2814628 | install/macros/latex/required/babel-base.tds.zip 2021/06/01 | 2763317 | install/macros/latex/required/latex-amsmath.tds.zip 2021/03/05 | 200594 | install/macros/latex/required/latexbug.tds.zip 2018/04/06 | 1324669 | install/macros/latex/required/latex-cyrillic.tds.zip -2021/03/16 | 213716 | install/macros/latex/required/latex-firstaid.tds.zip +2021/06/02 | 233275 | install/macros/latex/required/latex-firstaid.tds.zip 2021/06/01 | 2665541 | install/macros/latex/required/latex-graphics.tds.zip 2021/06/01 | 7346768 | install/macros/latex/required/latex-tools.tds.zip 2016/09/02 | 108688 | install/macros/luatex/generic/cstypo.tds.zip @@ -182387,19 +182387,19 @@ 2021/05/31 | 796 | language/japanese/ptex-base/README.md 2021/05/31 | 13661 | language/japanese/ptex-base.zip 2021/05/23 | 1091 | language/japanese/pxbase/LICENSE -2021/05/23 | 136058 | language/japanese/pxbase/pxbabel.pdf -2021/05/23 | 19729 | language/japanese/pxbase/pxbabel.sty -2021/05/23 | 17955 | language/japanese/pxbase/pxbabel.tex +2021/05/31 | 151912 | language/japanese/pxbase/pxbabel.pdf +2021/05/30 | 20907 | language/japanese/pxbase/pxbabel.sty +2021/05/31 | 21625 | language/japanese/pxbase/pxbabel.tex 2017/07/04 | 163 | language/japanese/pxbase/pxbase.def -2021/05/23 | 19112 | language/japanese/pxbase/pxbasenc.def -2021/05/23 | 434 | language/japanese/pxbase/pxbase.sty +2021/05/30 | 19112 | language/japanese/pxbase/pxbasenc.def +2021/05/30 | 434 | language/japanese/pxbase/pxbase.sty 2017/07/04 | 138 | language/japanese/pxbase/pxbsjc1.def 2017/07/04 | 121 | language/japanese/pxbase/pxbsjc.def -2021/05/23 | 7352 | language/japanese/pxbase/pxjsfenc.def -2021/05/23 | 10006 | language/japanese/pxbase/README-ja.md -2021/05/23 | 2363 | language/japanese/pxbase/README.md -2021/05/23 | 3129 | language/japanese/pxbase/upkcat.sty -2021/05/23 | 161218 | language/japanese/pxbase.zip +2021/05/30 | 7352 | language/japanese/pxbase/pxjsfenc.def +2021/05/31 | 10329 | language/japanese/pxbase/README-ja.md +2021/05/31 | 2397 | language/japanese/pxbase/README.md +2021/05/30 | 3129 | language/japanese/pxbase/upkcat.sty +2021/06/05 | 178433 | language/japanese/pxbase.zip 2021/05/30 | 1091 | language/japanese/pxchfon/LICENSE 2010/05/12 | 97 | language/japanese/pxchfon/pxchfon0.def 2021/05/30 | 259368 | language/japanese/pxchfon/pxchfon.pdf @@ -186332,7 +186332,7 @@ 2013/04/01 | 14776 | macros/context/contrib/context-visualcounter/tex/context/third/visualcounter/t-visualcounter.mkvi 2018/03/05 | 11 | macros/context/contrib/context-visualcounter/VERSION 2018/03/22 | 276789 | macros/context/contrib/context-visualcounter.zip -2021/06/01 | 122813741 | macros/context/latest/cont-tmf.zip +2021/06/04 | 123061647 | macros/context/latest/cont-tmf.zip 2016/04/21 | 32846 | macros/cstex/base/cmexb.tar.gz 2016/06/26 | 1728262 | macros/cstex/base/csfonts-t1.tar.gz 2007/03/01 | 187106 | macros/cstex/base/csfonts.tar.gz @@ -193734,36 +193734,36 @@ 2009/04/21 | 84073 | macros/latex/contrib/bizcard/bizcard.pdf 2009/04/21 | 12046 | macros/latex/contrib/bizcard/bizex.pdf 2009/04/29 | 80997 | macros/latex/contrib/bizcard.zip -2021/06/02 | 4957 | macros/latex/contrib/bjfuthesis/bjfuthesis.cls -2021/06/02 | 145720 | macros/latex/contrib/bjfuthesis/documentation/bjfuthesis.pdf -2021/06/02 | 240 | macros/latex/contrib/bjfuthesis/documentation/bjfuthesis.tex -2021/06/02 | 802 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-abstract.tex -2021/06/02 | 75 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-acknowledge.tex -2021/06/02 | 4030 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-mainbody.tex -2021/06/02 | 10909 | macros/latex/contrib/bjfuthesis/example/bibliography.bib -2021/06/02 | 3776 | macros/latex/contrib/bjfuthesis/example/contents/abstract.tex +2021/06/05 | 6965 | macros/latex/contrib/bjfuthesis/bjfuthesis.cls +2021/05/30 | 145720 | macros/latex/contrib/bjfuthesis/documentation/bjfuthesis.pdf +2021/05/29 | 240 | macros/latex/contrib/bjfuthesis/documentation/bjfuthesis.tex +2021/05/29 | 802 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-abstract.tex +2021/05/29 | 75 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-acknowledge.tex +2021/05/29 | 4030 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-mainbody.tex +2021/06/05 | 13979 | macros/latex/contrib/bjfuthesis/example/bibliography.bib +2021/06/05 | 3793 | macros/latex/contrib/bjfuthesis/example/contents/abstract.tex 2021/06/02 | 1268 | macros/latex/contrib/bjfuthesis/example/contents/acknowledge.tex -2021/06/02 | 64462 | macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex -2021/06/02 | 207622 | macros/latex/contrib/bjfuthesis/example/cover.pdf -2021/06/02 | 445624 | macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png -2021/06/02 | 88861 | macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png -2021/06/02 | 180215 | macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png -2021/06/02 | 716372 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png -2021/06/02 | 545274 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png -2021/06/02 | 762316 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png -2021/06/02 | 515568 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png -2021/06/02 | 108191 | macros/latex/contrib/bjfuthesis/example/figures/enhanced-recommendation.png -2021/06/02 | 503309 | macros/latex/contrib/bjfuthesis/example/figures/general-details.png +2021/06/05 | 65504 | macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex +2021/06/05 | 208783 | macros/latex/contrib/bjfuthesis/example/cover.pdf +2021/06/04 | 382656 | macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png +2021/06/04 | 90221 | macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png +2021/06/04 | 293686 | macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png +2021/06/04 | 717008 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png +2021/06/04 | 545702 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png +2021/06/04 | 718715 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png +2021/06/04 | 487115 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png +2021/05/14 | 108191 | macros/latex/contrib/bjfuthesis/example/figures/enhanced-recommendation.png +2021/06/04 | 508974 | macros/latex/contrib/bjfuthesis/example/figures/general-details.png 2021/06/02 | 181066 | macros/latex/contrib/bjfuthesis/example/figures/illustration-of-ripple-sets.png 2021/06/02 | 41248 | macros/latex/contrib/bjfuthesis/example/figures/jwt.pdf 2021/06/02 | 42328 | macros/latex/contrib/bjfuthesis/example/figures/recommendation-procedure.pdf -2021/06/02 | 586912 | macros/latex/contrib/bjfuthesis/example/figures/ripplenet-framework.png +2021/05/22 | 586912 | macros/latex/contrib/bjfuthesis/example/figures/ripplenet-framework.png 2021/06/02 | 32548 | macros/latex/contrib/bjfuthesis/example/figures/use-case.pdf -2021/06/02 | 4808696 | macros/latex/contrib/bjfuthesis/example/thesis.pdf -2021/06/02 | 224 | macros/latex/contrib/bjfuthesis/example/thesis.tex -2021/06/02 | 35149 | macros/latex/contrib/bjfuthesis/LICENSE -2021/06/04 | 2079 | macros/latex/contrib/bjfuthesis/README.md -2021/06/03 | 9796467 | macros/latex/contrib/bjfuthesis.zip +2021/06/05 | 4830593 | macros/latex/contrib/bjfuthesis/example/thesis.pdf +2021/06/05 | 224 | macros/latex/contrib/bjfuthesis/example/thesis.tex +2021/05/28 | 35149 | macros/latex/contrib/bjfuthesis/LICENSE +2021/06/05 | 1635 | macros/latex/contrib/bjfuthesis/README.md +2021/06/05 | 9809455 | macros/latex/contrib/bjfuthesis.zip 2012/01/06 | 5782 | macros/latex/contrib/blindtext/blindtext_american.dtx 2012/01/06 | 5088 | macros/latex/contrib/blindtext/blindtext_catalan.dtx 2012/01/06 | 38613 | macros/latex/contrib/blindtext/blindtext.dtx @@ -193800,35 +193800,34 @@ 2018/01/04 | 229251 | macros/latex/contrib/blowup/blowup.pdf 2018/01/04 | 312 | macros/latex/contrib/blowup/README.md 2018/01/04 | 377299 | macros/latex/contrib/blowup.zip -2021/05/22 | 2145 | macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls -2021/05/22 | 192899 | macros/latex/contrib/bmstu-iu8/example.pdf -2021/05/22 | 1520 | macros/latex/contrib/bmstu-iu8/example.tex -2021/05/22 | 53203 | macros/latex/contrib/bmstu-iu8/inc/bmstu.png -2021/05/22 | 1106 | macros/latex/contrib/bmstu-iu8/LICENSE -2021/05/22 | 175 | macros/latex/contrib/bmstu-iu8/README.md -2021/05/22 | 2551 | macros/latex/contrib/bmstu-iu8/styles/01-IU8-base.sty -2021/05/22 | 3854 | macros/latex/contrib/bmstu-iu8/styles/02-IU8-construction.sty -2021/05/22 | 1315 | macros/latex/contrib/bmstu-iu8/styles/03-IU8-numbering.sty -2021/05/22 | 3560 | macros/latex/contrib/bmstu-iu8/styles/04-IU8-section-numbering.sty -2021/05/22 | 4073 | macros/latex/contrib/bmstu-iu8/styles/05-IU8-figures.sty -2021/05/22 | 6222 | macros/latex/contrib/bmstu-iu8/styles/06-IU8-tables.sty -2021/05/22 | 2985 | macros/latex/contrib/bmstu-iu8/styles/07-IU8-footnotes.sty -2021/05/22 | 213 | macros/latex/contrib/bmstu-iu8/styles/08-IU8-formulas.sty -2021/05/22 | 1614 | macros/latex/contrib/bmstu-iu8/styles/09-IU8-cites.sty -2021/05/22 | 8409 | macros/latex/contrib/bmstu-iu8/styles/10-IU8-titlepage.sty -2021/05/22 | 243 | macros/latex/contrib/bmstu-iu8/styles/11-IU8-performers.sty -2021/05/22 | 1720 | macros/latex/contrib/bmstu-iu8/styles/12-IU8-abstract.sty -2021/05/22 | 1694 | macros/latex/contrib/bmstu-iu8/styles/13-IU8-contents.sty -2021/05/22 | 1101 | macros/latex/contrib/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty -2021/05/22 | 740 | macros/latex/contrib/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty -2021/05/22 | 1139 | macros/latex/contrib/bmstu-iu8/styles/16-IU8-references.sty -2021/05/22 | 797 | macros/latex/contrib/bmstu-iu8/styles/17-IU8-appendices.sty -2021/05/22 | 781 | macros/latex/contrib/bmstu-iu8/styles/18-IU8-extra.sty -2021/05/22 | 668 | macros/latex/contrib/bmstu-iu8/styles/19-IU8-counters.sty -2021/05/22 | 1236 | macros/latex/contrib/bmstu-iu8/styles/20-IU8-listing.sty -2021/05/22 | 422 | macros/latex/contrib/bmstu-iu8/styles/21-IU8-math.sty -2021/05/22 | 1437 | macros/latex/contrib/bmstu-iu8/styles/22-IU8-algorithms.sty -2021/05/22 | 252401 | macros/latex/contrib/bmstu-iu8.zip +2021/06/05 | 177037 | macros/latex/contrib/bmstu-iu8/bmstu-example.pdf +2021/06/05 | 1520 | macros/latex/contrib/bmstu-iu8/bmstu-example.tex +2021/06/05 | 2146 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls +2021/06/05 | 53203 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png +2021/06/05 | 2580 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty +2021/06/05 | 3854 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty +2021/06/05 | 1315 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty +2021/06/05 | 3560 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty +2021/06/05 | 4073 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty +2021/06/05 | 6222 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty +2021/06/05 | 2985 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty +2021/06/05 | 213 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty +2021/06/05 | 1614 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty +2021/06/05 | 8409 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty +2021/06/05 | 244 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty +2021/06/05 | 1719 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty +2021/06/05 | 1694 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty +2021/06/05 | 837 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty +2021/06/05 | 740 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty +2021/06/05 | 819 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty +2021/06/05 | 896 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty +2021/06/05 | 687 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty +2021/06/05 | 668 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty +2021/06/05 | 970 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty +2021/06/05 | 422 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty +2021/06/05 | 1437 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty +2021/06/05 | 470 | macros/latex/contrib/bmstu-iu8/README.md +2021/06/05 | 201172 | macros/latex/contrib/bmstu-iu8.zip 2021/05/17 | 79556 | macros/latex/contrib/bnumexpr/bnumexpr.dtx 2021/05/17 | 131719 | macros/latex/contrib/bnumexpr/bnumexpr.pdf 2021/05/17 | 3182 | macros/latex/contrib/bnumexpr/README.md @@ -197574,11 +197573,11 @@ 2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt 2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README 2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip -2021/06/04 | 128029 | macros/latex/contrib/easybook/easybook.dtx +2021/06/05 | 128428 | macros/latex/contrib/easybook/easybook.dtx 2021/06/02 | 738 | macros/latex/contrib/easybook/easybook.ins -2021/06/04 | 315303 | macros/latex/contrib/easybook/easybook.pdf +2021/06/05 | 315305 | macros/latex/contrib/easybook/easybook.pdf 2021/05/15 | 3043 | macros/latex/contrib/easybook/README.md -2021/06/04 | 347620 | macros/latex/contrib/easybook.zip +2021/06/05 | 347819 | macros/latex/contrib/easybook.zip 2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf 2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf 2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf @@ -198432,19 +198431,19 @@ 2017/09/03 | 223922 | macros/latex/contrib/eqparbox/eqparbox.pdf 2017/09/03 | 2107 | macros/latex/contrib/eqparbox/README 2017/09/04 | 231458 | macros/latex/contrib/eqparbox.zip -2021/02/20 | 245015 | macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf -2021/02/20 | 16404 | macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.tex -2021/02/20 | 256673 | macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf +2021/06/05 | 426168 | macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf +2021/06/05 | 29657 | macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.tex +2021/06/05 | 101085 | macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf 2016/05/30 | 237391 | macros/latex/contrib/eq-pin2corr/doc/install_jsfiles.pdf -2021/01/31 | 13105 | macros/latex/contrib/eq-pin2corr/doc/install_jsfiles.tex -2021/02/20 | 12122 | macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx -2021/02/18 | 1846 | macros/latex/contrib/eq-pin2corr/eq-pin2corr.ins -2021/02/20 | 83433 | macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf -2021/02/20 | 1671 | macros/latex/contrib/eq-pin2corr/examples/get-hash-string.tex -2021/02/20 | 171609 | macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.pdf -2021/02/20 | 2967 | macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.tex -2021/02/20 | 595 | macros/latex/contrib/eq-pin2corr/README.md -2021/02/20 | 682438 | macros/latex/contrib/eq-pin2corr.zip +2021/06/05 | 13105 | macros/latex/contrib/eq-pin2corr/doc/install_jsfiles.tex +2021/06/05 | 22350 | macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx +2021/06/05 | 1846 | macros/latex/contrib/eq-pin2corr/eq-pin2corr.ins +2021/06/05 | 78863 | macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf +2021/06/05 | 2232 | macros/latex/contrib/eq-pin2corr/examples/get-hash-string.tex +2021/06/05 | 141525 | macros/latex/contrib/eq-pin2corr/examples/qz-p2c.pdf +2021/06/05 | 2963 | macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex +2021/06/05 | 1110 | macros/latex/contrib/eq-pin2corr/README.md +2021/06/05 | 608452 | macros/latex/contrib/eq-pin2corr.zip 2021/04/27 | 294253 | macros/latex/contrib/eq-save/docs/eqsave-man.pdf 2021/04/27 | 16449 | macros/latex/contrib/eq-save/docs/eqsave-man.tex 2021/04/27 | 30501 | macros/latex/contrib/eq-save/eq-save.dtx @@ -202500,33 +202499,33 @@ 1999/03/09 | 1563 | macros/latex/contrib/hyper/README 2021/02/07 | 28408 | macros/latex/contrib/hyperref/backref.dtx 2021/02/07 | 3161 | macros/latex/contrib/hyperref/bmhydoc.sty -2021/02/27 | 117559 | macros/latex/contrib/hyperref/ChangeLog.txt -2021/02/28 | 198815 | macros/latex/contrib/hyperref/doc/backref.pdf -2021/02/28 | 904 | macros/latex/contrib/hyperref/doc/hyperref-doc2.html -2021/02/28 | 771 | macros/latex/contrib/hyperref/doc/hyperref-doc3.html -2021/02/28 | 1006 | macros/latex/contrib/hyperref/doc/hyperref-doc4.html -2021/02/28 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc5.html -2021/02/28 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc6.html -2021/02/28 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc7.html -2021/02/28 | 14515 | macros/latex/contrib/hyperref/doc/hyperref-doc.css -2021/02/28 | 469558 | macros/latex/contrib/hyperref/doc/hyperref-doc.html -2021/02/28 | 298211 | macros/latex/contrib/hyperref/doc/hyperref-doc.pdf -2021/02/27 | 152685 | macros/latex/contrib/hyperref/doc/hyperref-doc.tex -2021/02/28 | 2426117 | macros/latex/contrib/hyperref/doc/hyperref.pdf -2021/02/28 | 188802 | macros/latex/contrib/hyperref/doc/nameref.pdf +2021/06/05 | 117737 | macros/latex/contrib/hyperref/ChangeLog.txt +2021/06/05 | 198815 | macros/latex/contrib/hyperref/doc/backref.pdf +2021/06/05 | 904 | macros/latex/contrib/hyperref/doc/hyperref-doc2.html +2021/06/05 | 771 | macros/latex/contrib/hyperref/doc/hyperref-doc3.html +2021/06/05 | 1006 | macros/latex/contrib/hyperref/doc/hyperref-doc4.html +2021/06/05 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc5.html +2021/06/05 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc6.html +2021/06/05 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc7.html +2021/06/05 | 14515 | macros/latex/contrib/hyperref/doc/hyperref-doc.css +2021/06/05 | 477535 | macros/latex/contrib/hyperref/doc/hyperref-doc.html +2021/06/05 | 298609 | macros/latex/contrib/hyperref/doc/hyperref-doc.pdf +2021/06/05 | 152685 | macros/latex/contrib/hyperref/doc/hyperref-doc.tex +2021/06/05 | 2427494 | macros/latex/contrib/hyperref/doc/hyperref.pdf +2021/06/05 | 188802 | macros/latex/contrib/hyperref/doc/nameref.pdf 2018/11/18 | 132446 | macros/latex/contrib/hyperref/doc/paper.pdf 2018/11/18 | 384001 | macros/latex/contrib/hyperref/doc/slides.pdf -2021/02/27 | 50274 | macros/latex/contrib/hyperref/hluatex.dtx -2021/02/27 | 894369 | macros/latex/contrib/hyperref/hyperref.dtx +2021/06/05 | 50274 | macros/latex/contrib/hyperref/hluatex.dtx +2021/06/05 | 894443 | macros/latex/contrib/hyperref/hyperref.dtx 2021/02/27 | 4077 | macros/latex/contrib/hyperref/hyperref.ins 2021/02/27 | 1716 | macros/latex/contrib/hyperref/manifest.txt 2021/02/07 | 275 | macros/latex/contrib/hyperref/minitoc-hyper.sty 2021/02/07 | 23652 | macros/latex/contrib/hyperref/nameref.dtx 2021/02/07 | 279 | macros/latex/contrib/hyperref/ntheorem-hyper.sty 2018/11/18 | 247116 | macros/latex/contrib/hyperref/paperslides99.zip -2021/02/27 | 4479 | macros/latex/contrib/hyperref/README.md -2021/02/27 | 5736 | macros/latex/contrib/hyperref/xr-hyper.sty -2021/02/28 | 3909315 | macros/latex/contrib/hyperref.zip +2021/06/05 | 4479 | macros/latex/contrib/hyperref/README.md +2021/06/05 | 5736 | macros/latex/contrib/hyperref/xr-hyper.sty +2021/06/05 | 3910214 | macros/latex/contrib/hyperref.zip 1997/08/24 | 1034 | macros/latex/contrib/hyper/scontrib/harvard.hyp 1997/08/24 | 297 | macros/latex/contrib/hyper/scontrib/README 1997/08/24 | 1381 | macros/latex/contrib/hyper/TODO @@ -207018,13 +207017,13 @@ 1996/03/22 | 18862 | macros/latex/contrib/niceframe/umrandb.mf 2015/01/17 | 1370 | macros/latex/contrib/niceframe/umrand.mf 2015/01/17 | 287910 | macros/latex/contrib/niceframe.zip -2021/05/06 | 609715 | macros/latex/contrib/nicematrix/nicematrix.dtx -2021/05/06 | 462481 | macros/latex/contrib/nicematrix/nicematrix-french.pdf -2021/05/06 | 166269 | macros/latex/contrib/nicematrix/nicematrix-french.tex +2021/06/05 | 608746 | macros/latex/contrib/nicematrix/nicematrix.dtx +2021/06/05 | 462567 | macros/latex/contrib/nicematrix/nicematrix-french.pdf +2021/05/13 | 166256 | macros/latex/contrib/nicematrix/nicematrix-french.tex 2021/01/07 | 1423 | macros/latex/contrib/nicematrix/nicematrix.ins -2021/05/06 | 1248363 | macros/latex/contrib/nicematrix/nicematrix.pdf +2021/06/05 | 1305091 | macros/latex/contrib/nicematrix/nicematrix.pdf 2020/06/07 | 1005 | macros/latex/contrib/nicematrix/README.md -2021/05/06 | 1822166 | macros/latex/contrib/nicematrix.zip +2021/06/05 | 1874676 | macros/latex/contrib/nicematrix.zip 2015/11/21 | 217 | macros/latex/contrib/nicetext/ANNOUNCE.txt 2012/03/18 | 254582 | macros/latex/contrib/nicetext/demo/arseneau.pdf 2011/09/14 | 10 | macros/latex/contrib/nicetext/demo/iso.txt @@ -209405,15 +209404,15 @@ 2002/02/04 | 5634 | macros/latex/contrib/procIAGssymp/procIAGssymp.sty 2002/02/04 | 7126 | macros/latex/contrib/procIAGssymp/TestPaper.tex 2019/07/29 | 5300 | macros/latex/contrib/procIAGssymp.zip -2021/05/14 | 2781147 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf -2021/05/14 | 1682253 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip -2021/04/23 | 22499 | macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex -2021/04/23 | 18307 | macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex -2021/04/23 | 19500 | macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex -2021/04/23 | 27315 | macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex -2021/04/23 | 13850 | macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex -2021/04/23 | 22016 | macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex -2021/05/14 | 555364 | macros/latex/contrib/profcollege/latex/ProfCollege.sty +2021/06/04 | 2784308 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf +2021/06/04 | 1684520 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip +2021/06/04 | 23766 | macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex +2021/06/04 | 19959 | macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex +2021/06/04 | 21078 | macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex +2021/06/04 | 29034 | macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex +2021/06/04 | 15317 | macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex +2021/06/04 | 23085 | macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex +2021/06/04 | 570771 | macros/latex/contrib/profcollege/latex/ProfCollege.sty 2021/05/14 | 5056 | macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp 2021/05/14 | 13296 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp 2021/05/14 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp @@ -209423,7 +209422,7 @@ 2021/05/14 | 104283 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp 2021/05/14 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp 2021/01/18 | 435 | macros/latex/contrib/profcollege/README -2021/05/14 | 4241560 | macros/latex/contrib/profcollege.zip +2021/06/05 | 4248289 | macros/latex/contrib/profcollege.zip 1996/02/05 | 1760 | macros/latex/contrib/progkeys/demo/demo.tex 1996/02/05 | 459 | macros/latex/contrib/progkeys/demo/prog1.tex 1996/02/05 | 347 | macros/latex/contrib/progkeys/demo/prog2.tex @@ -213197,11 +213196,11 @@ 2006/03/25 | 2275 | macros/latex/contrib/sudoku/sudoku.ins 2006/03/25 | 67384 | macros/latex/contrib/sudoku/sudoku.pdf 2006/03/25 | 60808 | macros/latex/contrib/sudoku.zip -2021/05/24 | 1670 | macros/latex/contrib/suftesi/README -2021/05/24 | 229551 | macros/latex/contrib/suftesi/suftesi.dtx -2021/05/24 | 837570 | macros/latex/contrib/suftesi/suftesi.pdf -2021/05/24 | 681675 | macros/latex/contrib/suftesi/templates.zip -2021/05/24 | 1555297 | macros/latex/contrib/suftesi.zip +2021/06/05 | 1670 | macros/latex/contrib/suftesi/README +2021/06/05 | 229696 | macros/latex/contrib/suftesi/suftesi.dtx +2021/06/05 | 847077 | macros/latex/contrib/suftesi/suftesi.pdf +2021/06/05 | 681691 | macros/latex/contrib/suftesi/templates.zip +2021/06/05 | 1564763 | macros/latex/contrib/suftesi.zip 2020/02/02 | 856 | macros/latex/contrib/supertabular/CATALOG 2020/02/02 | 13567 | macros/latex/contrib/supertabular/ChangeLog 2020/01/24 | 502 | macros/latex/contrib/supertabular/MANIFEST @@ -213609,10 +213608,11 @@ 2009/06/01 | 170381 | macros/latex/contrib/tabularew/tabularew.pdf 2009/06/01 | 150930 | macros/latex/contrib/tabularew.zip 2021/03/29 | 179 | macros/latex/contrib/tabularray/README -2021/05/25 | 399433 | macros/latex/contrib/tabularray/tabularray.pdf -2021/05/25 | 145587 | macros/latex/contrib/tabularray/tabularray.sty -2021/05/25 | 21891 | macros/latex/contrib/tabularray/tabularray.tex -2021/05/25 | 370412 | macros/latex/contrib/tabularray.zip +2021/05/25 | 145587 | macros/latex/contrib/tabularray/tabularray-2021.sty +2021/06/05 | 426537 | macros/latex/contrib/tabularray/tabularray.pdf +2021/06/05 | 158209 | macros/latex/contrib/tabularray/tabularray.sty +2021/06/05 | 22749 | macros/latex/contrib/tabularray/tabularray.tex +2021/06/05 | 417985 | macros/latex/contrib/tabularray.zip 2005/10/21 | 169 | macros/latex/contrib/tabulary/README 2014/06/21 | 29652 | macros/latex/contrib/tabulary/tabulary.dtx 2003/11/26 | 156 | macros/latex/contrib/tabulary/tabulary.ins @@ -221926,419 +221926,419 @@ 2020/02/28 | 475910 | macros/latex/contrib/zwpagelayout/zwpagelayout.pdf 2020/02/28 | 36153 | macros/latex/contrib/zwpagelayout/zwpagelayout.sty 2020/02/28 | 69481 | macros/latex/contrib/zwpagelayout/zwpagelayout.tex -2021/05/04 | 7109 | macros/latex-dev/base/alltt.dtx -2021/05/04 | 2890 | macros/latex-dev/base/alltt.ins -2021/05/04 | 214710 | macros/latex-dev/base/alltt.pdf -2021/05/04 | 3282 | macros/latex-dev/base/bugs.txt -2021/05/04 | 242886 | macros/latex-dev/base/cfgguide.pdf -2021/05/04 | 22456 | macros/latex-dev/base/cfgguide.tex -2021/05/04 | 42708 | macros/latex-dev/base/changes.old.txt -2021/05/04 | 375158 | macros/latex-dev/base/changes.txt -2021/05/04 | 156210 | macros/latex-dev/base/classes.dtx -2021/05/04 | 4087 | macros/latex-dev/base/classes.ins -2021/05/04 | 550002 | macros/latex-dev/base/classes.pdf -2021/05/04 | 402779 | macros/latex-dev/base/clsguide.pdf -2021/05/04 | 69050 | macros/latex-dev/base/clsguide.tex -2021/05/04 | 5273 | macros/latex-dev/base/cmextra.ins -2021/05/04 | 43636 | macros/latex-dev/base/cmfonts.fdd -2021/05/04 | 4324 | macros/latex-dev/base/cmfonts.ins -2021/05/04 | 292317 | macros/latex-dev/base/cmfonts.pdf -2021/05/04 | 239681 | macros/latex-dev/base/cyrguide.pdf -2021/05/04 | 17495 | macros/latex-dev/base/cyrguide.tex -2021/05/04 | 204007 | macros/latex-dev/base/doc.dtx -2021/05/04 | 676545 | macros/latex-dev/base/doc.pdf -2021/05/04 | 170214 | macros/latex-dev/base/docstrip.dtx -2021/05/04 | 4221 | macros/latex-dev/base/docstrip.ins -2021/05/04 | 503349 | macros/latex-dev/base/docstrip.pdf -2021/05/04 | 41831 | macros/latex-dev/base/doc-v3beta.sty -2021/05/04 | 4390 | macros/latex-dev/base/ec.ins -2021/05/04 | 1316472 | macros/latex-dev/base/encguide.pdf -2021/05/04 | 52813 | macros/latex-dev/base/encguide.tex -2021/05/04 | 7221 | macros/latex-dev/base/exscale.dtx -2021/05/04 | 3338 | macros/latex-dev/base/exscale.ins -2021/05/04 | 212307 | macros/latex-dev/base/exscale.pdf -2021/05/04 | 23521 | macros/latex-dev/base/fix-cm.dtx -2021/05/04 | 2892 | macros/latex-dev/base/fix-cm.ins -2021/05/04 | 287672 | macros/latex-dev/base/fix-cm.pdf -2021/05/04 | 493957 | macros/latex-dev/base/fntguide.pdf -2021/05/04 | 90917 | macros/latex-dev/base/fntguide.tex -2021/05/04 | 60326 | macros/latex-dev/base/fontdef.dtx -2021/05/04 | 9583 | macros/latex-dev/base/format.ins -2021/05/04 | 5514 | macros/latex-dev/base/graphpap.dtx -2021/05/04 | 2892 | macros/latex-dev/base/graphpap.ins -2021/05/04 | 169323 | macros/latex-dev/base/graphpap.pdf -2021/05/04 | 2705 | macros/latex-dev/base/idx.tex -2021/05/04 | 18303 | macros/latex-dev/base/ifthen.dtx -2021/05/04 | 2888 | macros/latex-dev/base/ifthen.ins -2021/05/04 | 220417 | macros/latex-dev/base/ifthen.pdf -2021/05/04 | 106908 | macros/latex-dev/base/inputenc.dtx -2021/05/04 | 5714 | macros/latex-dev/base/inputenc.ins -2021/05/04 | 318168 | macros/latex-dev/base/inputenc.pdf -2021/05/04 | 4079 | macros/latex-dev/base/lablst.tex -2021/05/04 | 38735 | macros/latex-dev/base/latex209.dtx -2021/05/04 | 4219 | macros/latex-dev/base/latex209.ins -2021/05/04 | 468043 | macros/latex-dev/base/latexchanges.pdf -2021/05/04 | 40795 | macros/latex-dev/base/latexchanges.tex -2021/05/04 | 44409 | macros/latex-dev/base/latexrelease.dtx -2021/05/04 | 5917 | macros/latex-dev/base/latexrelease.ins -2021/05/04 | 290495 | macros/latex-dev/base/latexrelease.pdf -2021/05/04 | 6714 | macros/latex-dev/base/latexsym.dtx -2021/05/04 | 5041 | macros/latex-dev/base/latexsym.ins -2021/05/04 | 208359 | macros/latex-dev/base/latexsym.pdf -2021/05/04 | 52578 | macros/latex-dev/base/lb2.err -2021/05/04 | 252154 | macros/latex-dev/base/lb2.pdf -2021/05/04 | 1279 | macros/latex-dev/base/legal.txt -2021/05/04 | 63283 | macros/latex-dev/base/letter.dtx -2021/05/04 | 3372 | macros/latex-dev/base/letter.ins -2021/05/04 | 328853 | macros/latex-dev/base/letter.pdf -2021/05/04 | 20486 | macros/latex-dev/base/lgc2.err -2021/05/04 | 215091 | macros/latex-dev/base/lgc2.pdf -2021/05/04 | 9068 | macros/latex-dev/base/lppl-1-0.txt -2021/05/04 | 14341 | macros/latex-dev/base/lppl-1-1.txt -2021/05/04 | 14421 | macros/latex-dev/base/lppl-1-2.txt -2021/05/04 | 132373 | macros/latex-dev/base/lppl.pdf -2021/05/04 | 23386 | macros/latex-dev/base/lppl.tex -2021/05/04 | 19040 | macros/latex-dev/base/lppl.txt -2021/05/04 | 4303 | macros/latex-dev/base/ltalloc.dtx -2021/05/04 | 16105 | macros/latex-dev/base/ltbibl.dtx -2021/05/04 | 43867 | macros/latex-dev/base/ltboxes.dtx -2021/05/04 | 136299 | macros/latex-dev/base/ltclass.dtx -2021/05/04 | 143532 | macros/latex-dev/base/ltcmd.dtx -2021/05/04 | 686990 | macros/latex-dev/base/ltcmdhooks-code.pdf -2021/05/04 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex -2021/05/04 | 477922 | macros/latex-dev/base/ltcmdhooks-doc.pdf -2021/05/04 | 177 | macros/latex-dev/base/ltcmdhooks-doc.tex -2021/05/04 | 40979 | macros/latex-dev/base/ltcmdhooks.dtx -2021/05/04 | 9562 | macros/latex-dev/base/ltcntrl.dtx -2021/05/04 | 22676 | macros/latex-dev/base/ltcounts.dtx -2021/05/04 | 85817 | macros/latex-dev/base/ltdefns.dtx -2021/05/04 | 35302 | macros/latex-dev/base/ltdirchk.dtx -2021/05/04 | 24015 | macros/latex-dev/base/lterror.dtx -2021/05/04 | 13920 | macros/latex-dev/base/ltexpl.dtx -2021/05/04 | 784738 | macros/latex-dev/base/ltfilehook-code.pdf -2021/05/04 | 105 | macros/latex-dev/base/ltfilehook-code.tex -2021/05/04 | 543890 | macros/latex-dev/base/ltfilehook-doc.pdf -2021/05/04 | 180 | macros/latex-dev/base/ltfilehook-doc.tex -2021/05/04 | 63179 | macros/latex-dev/base/ltfilehook.dtx -2021/05/04 | 55087 | macros/latex-dev/base/ltfiles.dtx -2021/05/04 | 44724 | macros/latex-dev/base/ltfinal.dtx -2021/05/04 | 54680 | macros/latex-dev/base/ltfloat.dtx -2021/05/04 | 29191 | macros/latex-dev/base/ltfntcmd.dtx -2021/05/04 | 58556 | macros/latex-dev/base/ltfssaxes.dtx -2021/05/04 | 80670 | macros/latex-dev/base/ltfssbas.dtx -2021/05/04 | 10375 | macros/latex-dev/base/ltfsscmp.dtx -2021/05/04 | 61425 | macros/latex-dev/base/ltfssdcl.dtx -2021/05/04 | 76725 | macros/latex-dev/base/ltfssini.dtx -2021/05/04 | 72479 | macros/latex-dev/base/ltfsstrc.dtx -2021/05/04 | 1002696 | macros/latex-dev/base/lthooks-code.pdf -2021/05/04 | 102 | macros/latex-dev/base/lthooks-code.tex -2021/05/04 | 676691 | macros/latex-dev/base/lthooks-doc.pdf -2021/05/04 | 177 | macros/latex-dev/base/lthooks-doc.tex -2021/05/04 | 188086 | macros/latex-dev/base/lthooks.dtx -2021/05/04 | 4950 | macros/latex-dev/base/lthyphen.dtx -2021/05/04 | 5864 | macros/latex-dev/base/ltidxglo.dtx -2021/05/04 | 4762 | macros/latex-dev/base/ltlength.dtx -2021/05/04 | 36157 | macros/latex-dev/base/ltlists.dtx -2021/05/04 | 3730 | macros/latex-dev/base/ltlogos.dtx -2021/05/04 | 64748 | macros/latex-dev/base/ltluatex.dtx -2021/05/04 | 325289 | macros/latex-dev/base/ltluatex.pdf -2021/05/04 | 39431 | macros/latex-dev/base/ltmath.dtx -2021/05/04 | 58703 | macros/latex-dev/base/ltmiscen.dtx -2021/05/04 | 161518 | macros/latex-dev/base/ltnews01.pdf -2021/05/04 | 5246 | macros/latex-dev/base/ltnews01.tex -2021/05/04 | 150466 | macros/latex-dev/base/ltnews02.pdf -2021/05/04 | 5283 | macros/latex-dev/base/ltnews02.tex -2021/05/04 | 150493 | macros/latex-dev/base/ltnews03.pdf -2021/05/04 | 5200 | macros/latex-dev/base/ltnews03.tex -2021/05/04 | 143686 | macros/latex-dev/base/ltnews04.pdf -2021/05/04 | 5506 | macros/latex-dev/base/ltnews04.tex -2021/05/04 | 174488 | macros/latex-dev/base/ltnews05.pdf -2021/05/04 | 5608 | macros/latex-dev/base/ltnews05.tex -2021/05/04 | 142909 | macros/latex-dev/base/ltnews06.pdf -2021/05/04 | 5390 | macros/latex-dev/base/ltnews06.tex -2021/05/04 | 138044 | macros/latex-dev/base/ltnews07.pdf -2021/05/04 | 5425 | macros/latex-dev/base/ltnews07.tex -2021/05/04 | 155055 | macros/latex-dev/base/ltnews08.pdf -2021/05/04 | 5695 | macros/latex-dev/base/ltnews08.tex -2021/05/04 | 129032 | macros/latex-dev/base/ltnews09.pdf -2021/05/04 | 5293 | macros/latex-dev/base/ltnews09.tex -2021/05/04 | 159313 | macros/latex-dev/base/ltnews10.pdf -2021/05/04 | 5659 | macros/latex-dev/base/ltnews10.tex -2021/05/04 | 111955 | macros/latex-dev/base/ltnews11.pdf -2021/05/04 | 5529 | macros/latex-dev/base/ltnews11.tex -2021/05/04 | 147587 | macros/latex-dev/base/ltnews12.pdf -2021/05/04 | 5400 | macros/latex-dev/base/ltnews12.tex -2021/05/04 | 173323 | macros/latex-dev/base/ltnews13.pdf -2021/05/04 | 6871 | macros/latex-dev/base/ltnews13.tex -2021/05/04 | 161405 | macros/latex-dev/base/ltnews14.pdf -2021/05/04 | 6273 | macros/latex-dev/base/ltnews14.tex -2021/05/04 | 130447 | macros/latex-dev/base/ltnews15.pdf -2021/05/04 | 5839 | macros/latex-dev/base/ltnews15.tex -2021/05/04 | 146533 | macros/latex-dev/base/ltnews16.pdf -2021/05/04 | 5776 | macros/latex-dev/base/ltnews16.tex -2021/05/04 | 166368 | macros/latex-dev/base/ltnews17.pdf -2021/05/04 | 8863 | macros/latex-dev/base/ltnews17.tex -2021/05/04 | 38031 | macros/latex-dev/base/ltnews18.pdf -2021/05/04 | 1341 | macros/latex-dev/base/ltnews18.tex -2021/05/04 | 245818 | macros/latex-dev/base/ltnews19.pdf -2021/05/04 | 4170 | macros/latex-dev/base/ltnews19.tex -2021/05/04 | 297070 | macros/latex-dev/base/ltnews20.pdf -2021/05/04 | 7325 | macros/latex-dev/base/ltnews20.tex -2021/05/04 | 244869 | macros/latex-dev/base/ltnews21.pdf -2021/05/04 | 9809 | macros/latex-dev/base/ltnews21.tex -2021/05/04 | 318399 | macros/latex-dev/base/ltnews22.pdf -2021/05/04 | 10668 | macros/latex-dev/base/ltnews22.tex -2021/05/04 | 287125 | macros/latex-dev/base/ltnews23.pdf -2021/05/04 | 10687 | macros/latex-dev/base/ltnews23.tex -2021/05/04 | 265211 | macros/latex-dev/base/ltnews24.pdf -2021/05/04 | 12224 | macros/latex-dev/base/ltnews24.tex -2021/05/04 | 205162 | macros/latex-dev/base/ltnews25.pdf -2021/05/04 | 5473 | macros/latex-dev/base/ltnews25.tex -2021/05/04 | 379735 | macros/latex-dev/base/ltnews26.pdf -2021/05/04 | 10697 | macros/latex-dev/base/ltnews26.tex -2021/05/04 | 252432 | macros/latex-dev/base/ltnews27.pdf -2021/05/04 | 5506 | macros/latex-dev/base/ltnews27.tex -2021/05/04 | 387987 | macros/latex-dev/base/ltnews28.pdf -2021/05/04 | 14891 | macros/latex-dev/base/ltnews28.tex -2021/05/04 | 454808 | macros/latex-dev/base/ltnews29.pdf -2021/05/04 | 18940 | macros/latex-dev/base/ltnews29.tex -2021/05/04 | 511855 | macros/latex-dev/base/ltnews30.pdf -2021/05/04 | 23651 | macros/latex-dev/base/ltnews30.tex -2021/05/04 | 526312 | macros/latex-dev/base/ltnews31.pdf -2021/05/04 | 30456 | macros/latex-dev/base/ltnews31.tex -2021/05/04 | 546162 | macros/latex-dev/base/ltnews32.pdf -2021/05/04 | 33256 | macros/latex-dev/base/ltnews32.tex -2021/05/04 | 539851 | macros/latex-dev/base/ltnews33.pdf -2021/05/04 | 28260 | macros/latex-dev/base/ltnews33.tex -2021/05/04 | 20469 | macros/latex-dev/base/ltnews.cls -2021/05/04 | 1068601 | macros/latex-dev/base/ltnews.pdf -2021/05/04 | 8259 | macros/latex-dev/base/ltnews.tex -2021/05/04 | 149221 | macros/latex-dev/base/ltoutenc.dtx -2021/05/04 | 3367 | macros/latex-dev/base/ltoutenc.ins -2021/05/04 | 175624 | macros/latex-dev/base/ltoutput.dtx -2021/05/04 | 11590 | macros/latex-dev/base/ltpage.dtx -2021/05/04 | 2733 | macros/latex-dev/base/ltpageno.dtx -2021/05/04 | 655726 | macros/latex-dev/base/ltpara-code.pdf -2021/05/04 | 99 | macros/latex-dev/base/ltpara-code.tex -2021/05/04 | 557225 | macros/latex-dev/base/ltpara-doc.pdf -2021/05/04 | 173 | macros/latex-dev/base/ltpara-doc.tex -2021/05/04 | 48576 | macros/latex-dev/base/ltpara.dtx -2021/05/04 | 6160 | macros/latex-dev/base/ltpar.dtx -2021/05/04 | 69007 | macros/latex-dev/base/ltpictur.dtx -2021/05/04 | 53199 | macros/latex-dev/base/ltplain.dtx -2021/05/04 | 32648 | macros/latex-dev/base/ltsect.dtx -2021/05/04 | 811021 | macros/latex-dev/base/ltshipout-code.pdf -2021/05/04 | 104 | macros/latex-dev/base/ltshipout-code.tex -2021/05/04 | 562571 | macros/latex-dev/base/ltshipout-doc.pdf -2021/05/04 | 179 | macros/latex-dev/base/ltshipout-doc.tex -2021/05/04 | 78305 | macros/latex-dev/base/ltshipout.dtx -2021/05/04 | 45245 | macros/latex-dev/base/ltspace.dtx -2021/05/04 | 47901 | macros/latex-dev/base/lttab.dtx -2021/05/04 | 90126 | macros/latex-dev/base/lttextcomp.dtx -2021/05/04 | 8736 | macros/latex-dev/base/ltthm.dtx -2021/05/04 | 13902 | macros/latex-dev/base/ltvers.dtx -2021/05/04 | 219354 | macros/latex-dev/base/ltx3info.pdf -2021/05/04 | 18299 | macros/latex-dev/base/ltx3info.tex -2021/05/04 | 27122 | macros/latex-dev/base/ltxcheck.tex -2021/05/04 | 19064 | macros/latex-dev/base/ltxdoc.dtx -2021/05/04 | 238577 | macros/latex-dev/base/ltxdoc.pdf -2021/05/04 | 7524 | macros/latex-dev/base/ltxguide.cls -2021/05/04 | 15625 | macros/latex-dev/base/ltxref.dtx -2021/05/04 | 10603 | macros/latex-dev/base/makeindx.dtx -2021/05/04 | 3434 | macros/latex-dev/base/makeindx.ins -2021/05/04 | 173682 | macros/latex-dev/base/makeindx.pdf -2021/05/04 | 10871 | macros/latex-dev/base/manifest.txt -2021/05/04 | 12946 | macros/latex-dev/base/manual.err -2021/05/04 | 160521 | macros/latex-dev/base/manual.pdf -2021/05/04 | 1937 | macros/latex-dev/base/minimal.cls -2021/05/04 | 243601 | macros/latex-dev/base/modguide.pdf -2021/05/04 | 16233 | macros/latex-dev/base/modguide.tex -2021/05/04 | 4254 | macros/latex-dev/base/newdc.ins -2021/05/04 | 6362 | macros/latex-dev/base/newlfont.dtx -2021/05/04 | 18404 | macros/latex-dev/base/nfssfont.dtx -2021/05/04 | 2893 | macros/latex-dev/base/nfssfont.ins -2021/05/04 | 218782 | macros/latex-dev/base/nfssfont.pdf -2021/05/04 | 3960 | macros/latex-dev/base/olddc.ins -2021/05/04 | 8631 | macros/latex-dev/base/oldlfont.dtx -2021/05/04 | 9373 | macros/latex-dev/base/preload.dtx -2021/05/04 | 13301 | macros/latex-dev/base/proc.dtx -2021/05/04 | 3401 | macros/latex-dev/base/proc.ins -2021/05/04 | 233995 | macros/latex-dev/base/proc.pdf -2021/05/04 | 3514 | macros/latex-dev/base/README.md -2021/05/04 | 7200 | macros/latex-dev/base/sample2e.tex -2021/05/04 | 89718 | macros/latex-dev/base/slides.dtx -2021/05/04 | 6760 | macros/latex-dev/base/slides.ins -2021/05/04 | 374051 | macros/latex-dev/base/slides.pdf -2021/05/04 | 15699 | macros/latex-dev/base/slifonts.fdd -2021/05/04 | 234008 | macros/latex-dev/base/slifonts.pdf -2021/05/04 | 1694 | macros/latex-dev/base/small2e.tex -2021/05/04 | 8531 | macros/latex-dev/base/source2edoc.cls -2021/05/04 | 4959329 | macros/latex-dev/base/source2e.pdf -2021/05/04 | 15104 | macros/latex-dev/base/source2e.tex -2021/05/04 | 9400 | macros/latex-dev/base/syntonly.dtx -2021/05/04 | 2896 | macros/latex-dev/base/syntonly.ins -2021/05/04 | 197297 | macros/latex-dev/base/syntonly.pdf -2021/05/04 | 12520 | macros/latex-dev/base/testpage.tex -2021/05/04 | 2738 | macros/latex-dev/base/tex2.txt -2021/05/04 | 8496 | macros/latex-dev/base/texpert.txt -2021/05/04 | 172278 | macros/latex-dev/base/tlc2.err -2021/05/04 | 289245 | macros/latex-dev/base/tlc2.pdf -2021/05/04 | 12119 | macros/latex-dev/base/tulm.fdd -2021/05/04 | 3781 | macros/latex-dev/base/tulm.ins -2021/05/04 | 170529 | macros/latex-dev/base/tulm.pdf -2021/05/04 | 3181 | macros/latex-dev/base/unpack.ins -2021/05/04 | 325299 | macros/latex-dev/base/usrguide3.pdf -2021/05/04 | 29923 | macros/latex-dev/base/usrguide3.tex -2021/05/04 | 430996 | macros/latex-dev/base/usrguide.pdf -2021/05/04 | 68435 | macros/latex-dev/base/usrguide.tex -2021/05/04 | 89927 | macros/latex-dev/base/utf8ienc.dtx -2021/05/04 | 361356 | macros/latex-dev/base/utf8ienc.pdf -2021/05/04 | 10105 | macros/latex-dev/base/webcomp.err -2021/05/04 | 146200 | macros/latex-dev/base/webcomp.pdf -2021/05/04 | 33572905 | macros/latex-dev/base.zip -2020/10/28 | 8654 | macros/latex-dev/required/amsmath/amsbsy.dtx -2020/10/28 | 1466 | macros/latex-dev/required/amsmath/amsbsy.ins -2020/10/28 | 161324 | macros/latex-dev/required/amsmath/amsbsy.pdf -2020/10/28 | 11291 | macros/latex-dev/required/amsmath/amscd.dtx -2020/10/28 | 1464 | macros/latex-dev/required/amsmath/amscd.ins -2020/10/28 | 165745 | macros/latex-dev/required/amsmath/amscd.pdf -2020/10/28 | 5323 | macros/latex-dev/required/amsmath/ams-external.txt -2020/10/28 | 13449 | macros/latex-dev/required/amsmath/amsgen.dtx -2020/10/28 | 1466 | macros/latex-dev/required/amsmath/amsgen.ins -2020/10/28 | 164345 | macros/latex-dev/required/amsmath/amsgen.pdf -2020/10/28 | 5860 | macros/latex-dev/required/amsmath/ams-internal.txt -2020/10/28 | 476032 | macros/latex-dev/required/amsmath/amsldoc.pdf -2020/10/28 | 104677 | macros/latex-dev/required/amsmath/amsldoc.tex -2020/10/28 | 85087 | macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty -2020/10/28 | 225887 | macros/latex-dev/required/amsmath/amsmath.dtx -2020/10/28 | 1480 | macros/latex-dev/required/amsmath/amsmath.ins -2020/10/28 | 384171 | macros/latex-dev/required/amsmath/amsmath.pdf -2020/10/28 | 9202 | macros/latex-dev/required/amsmath/amsopn.dtx -2020/10/28 | 1466 | macros/latex-dev/required/amsmath/amsopn.ins -2020/10/28 | 129155 | macros/latex-dev/required/amsmath/amsopn.pdf -2020/10/28 | 69720 | macros/latex-dev/required/amsmath/amstex.sty -2020/10/28 | 11405 | macros/latex-dev/required/amsmath/amstext.dtx -2020/10/28 | 1468 | macros/latex-dev/required/amsmath/amstext.ins -2020/10/28 | 194257 | macros/latex-dev/required/amsmath/amstext.pdf -2020/10/28 | 4343 | macros/latex-dev/required/amsmath/amsxtra.dtx -2020/10/28 | 1468 | macros/latex-dev/required/amsmath/amsxtra.ins -2020/10/28 | 104545 | macros/latex-dev/required/amsmath/amsxtra.pdf -2020/10/28 | 6515 | macros/latex-dev/required/amsmath/changes.txt -2020/10/28 | 22605 | macros/latex-dev/required/amsmath/diffs-m.txt -2020/10/28 | 369 | macros/latex-dev/required/amsmath/manifest.txt -2020/10/28 | 2726 | macros/latex-dev/required/amsmath/README.md -2020/10/28 | 101293 | macros/latex-dev/required/amsmath/subeqn.pdf -2020/10/28 | 6440 | macros/latex-dev/required/amsmath/subeqn.tex -2020/10/28 | 130600 | macros/latex-dev/required/amsmath/technote.pdf -2020/10/28 | 12005 | macros/latex-dev/required/amsmath/technote.tex -2020/10/28 | 429026 | macros/latex-dev/required/amsmath/testmath.pdf -2020/10/28 | 82371 | macros/latex-dev/required/amsmath/testmath.tex -2020/10/28 | 2613351 | macros/latex-dev/required/amsmath.zip -2021/02/26 | 1743 | macros/latex-dev/required/firstaid/changes.txt -2021/02/26 | 2740 | macros/latex-dev/required/firstaid/firstaid.ins -2021/02/26 | 16530 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx -2021/02/26 | 224897 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf -2021/02/26 | 474 | macros/latex-dev/required/firstaid/README.md -2021/02/27 | 224730 | macros/latex-dev/required/firstaid.zip -2021/05/04 | 15737 | macros/latex-dev/required/graphics/cat.eps -2021/05/04 | 33842 | macros/latex-dev/required/graphics/changes.txt -2021/05/04 | 31659 | macros/latex-dev/required/graphics/color.dtx -2021/05/04 | 215002 | macros/latex-dev/required/graphics/color.pdf -2021/05/04 | 50810 | macros/latex-dev/required/graphics/drivers.dtx -2021/05/04 | 286309 | macros/latex-dev/required/graphics/drivers.pdf -2021/05/04 | 4113 | macros/latex-dev/required/graphics/epsfig.dtx -2021/05/04 | 167686 | macros/latex-dev/required/graphics/epsfig.pdf -2021/05/04 | 15429 | macros/latex-dev/required/graphics/graphics-2017-06-25.sty -2021/05/04 | 2994 | macros/latex-dev/required/graphics/graphics-drivers.ins -2021/05/04 | 70176 | macros/latex-dev/required/graphics/graphics.dtx -2021/05/04 | 1128 | macros/latex-dev/required/graphics/graphics.ins -2021/05/04 | 310676 | macros/latex-dev/required/graphics/graphics.pdf -2021/05/04 | 30185 | macros/latex-dev/required/graphics/graphicx.dtx -2021/05/04 | 247910 | macros/latex-dev/required/graphics/graphicx.pdf -2021/05/04 | 330071 | macros/latex-dev/required/graphics/grfguide.pdf -2021/05/04 | 37089 | macros/latex-dev/required/graphics/grfguide.tex -2021/05/04 | 13880 | macros/latex-dev/required/graphics/keyval.dtx -2021/05/04 | 239654 | macros/latex-dev/required/graphics/keyval.pdf -2021/05/04 | 3937 | macros/latex-dev/required/graphics/lscape.dtx -2021/05/04 | 163584 | macros/latex-dev/required/graphics/lscape.pdf -2021/05/04 | 2092 | macros/latex-dev/required/graphics/README.md -2021/05/04 | 21072 | macros/latex-dev/required/graphics/rotating.dtx -2021/05/04 | 269434 | macros/latex-dev/required/graphics/rotating.pdf -2021/05/04 | 172231 | macros/latex-dev/required/graphics/rotex.pdf -2021/05/04 | 14575 | macros/latex-dev/required/graphics/rotex.tex -2021/05/04 | 10682 | macros/latex-dev/required/graphics/trig.dtx -2021/05/04 | 207299 | macros/latex-dev/required/graphics/trig.pdf -2021/05/04 | 2632527 | macros/latex-dev/required/graphics.zip -2021/05/04 | 14077 | macros/latex-dev/required/tools/afterpage.dtx -2021/05/04 | 2538 | macros/latex-dev/required/tools/afterpage.ins -2021/05/04 | 205344 | macros/latex-dev/required/tools/afterpage.pdf -2021/05/04 | 11749 | macros/latex-dev/required/tools/array-2016-10-06.sty -2021/05/04 | 12559 | macros/latex-dev/required/tools/array-2020-02-10.sty -2021/05/04 | 127986 | macros/latex-dev/required/tools/array.dtx -2021/05/04 | 516484 | macros/latex-dev/required/tools/array.pdf -2021/05/04 | 61460 | macros/latex-dev/required/tools/bm.dtx -2021/05/04 | 2524 | macros/latex-dev/required/tools/bm.ins -2021/05/04 | 331424 | macros/latex-dev/required/tools/bm.pdf -2021/05/04 | 53172 | macros/latex-dev/required/tools/calc.dtx -2021/05/04 | 370414 | macros/latex-dev/required/tools/calc.pdf -2021/05/04 | 59683 | macros/latex-dev/required/tools/changes.txt -2021/05/04 | 12714 | macros/latex-dev/required/tools/dcolumn.dtx -2021/05/04 | 220689 | macros/latex-dev/required/tools/dcolumn.pdf -2021/05/04 | 6794 | macros/latex-dev/required/tools/delarray.dtx -2021/05/04 | 198647 | macros/latex-dev/required/tools/delarray.pdf -2021/05/04 | 10649 | macros/latex-dev/required/tools/enumerate.dtx -2021/05/04 | 215355 | macros/latex-dev/required/tools/enumerate.pdf -2021/05/04 | 4964 | macros/latex-dev/required/tools/fileerr.dtx -2021/05/04 | 195098 | macros/latex-dev/required/tools/fileerr.pdf -2021/05/04 | 10776 | macros/latex-dev/required/tools/fontsmpl.dtx -2021/05/04 | 154034 | macros/latex-dev/required/tools/fontsmpl.pdf -2021/05/04 | 39701 | macros/latex-dev/required/tools/ftnright.dtx -2021/05/04 | 369809 | macros/latex-dev/required/tools/ftnright.pdf -2021/05/04 | 11153 | macros/latex-dev/required/tools/hhline.dtx -2021/05/04 | 189538 | macros/latex-dev/required/tools/hhline.pdf -2021/05/04 | 2225 | macros/latex-dev/required/tools/indentfirst.dtx -2021/05/04 | 157803 | macros/latex-dev/required/tools/indentfirst.pdf -2021/05/04 | 32034 | macros/latex-dev/required/tools/layout.dtx -2021/05/04 | 267761 | macros/latex-dev/required/tools/layout.pdf -2021/05/04 | 12133 | macros/latex-dev/required/tools/longtable-2020-01-07.sty -2021/05/04 | 76003 | macros/latex-dev/required/tools/longtable.dtx -2021/05/04 | 2538 | macros/latex-dev/required/tools/longtable.ins -2021/05/04 | 382012 | macros/latex-dev/required/tools/longtable.pdf -2021/05/04 | 3284 | macros/latex-dev/required/tools/manifest.txt -2021/05/04 | 29712 | macros/latex-dev/required/tools/multicol-2017-04-11.sty -2021/05/04 | 182354 | macros/latex-dev/required/tools/multicol.dtx -2021/05/04 | 2576 | macros/latex-dev/required/tools/multicol.ins -2021/05/04 | 516282 | macros/latex-dev/required/tools/multicol.pdf -2021/05/04 | 8981 | macros/latex-dev/required/tools/rawfonts.dtx -2021/05/04 | 146534 | macros/latex-dev/required/tools/rawfonts.pdf -2021/05/04 | 1666 | macros/latex-dev/required/tools/README.md -2021/05/04 | 9493 | macros/latex-dev/required/tools/shellesc.dtx -2021/05/04 | 183532 | macros/latex-dev/required/tools/shellesc.pdf -2021/05/04 | 29569 | macros/latex-dev/required/tools/showkeys.dtx -2021/05/04 | 260624 | macros/latex-dev/required/tools/showkeys.pdf -2021/05/04 | 5796 | macros/latex-dev/required/tools/somedefs.dtx -2021/05/04 | 175169 | macros/latex-dev/required/tools/somedefs.pdf -2021/05/04 | 35880 | macros/latex-dev/required/tools/tabularx.dtx -2021/05/04 | 2535 | macros/latex-dev/required/tools/tabularx.ins -2021/05/04 | 278041 | macros/latex-dev/required/tools/tabularx.pdf -2021/05/04 | 43453 | macros/latex-dev/required/tools/theorem.dtx -2021/05/04 | 351310 | macros/latex-dev/required/tools/theorem.pdf -2021/05/04 | 5680 | macros/latex-dev/required/tools/tools.ins -2021/05/04 | 73674 | macros/latex-dev/required/tools/tools-overview.pdf -2021/05/04 | 5211 | macros/latex-dev/required/tools/tools-overview.tex -2021/05/04 | 25151 | macros/latex-dev/required/tools/trace.dtx -2021/05/04 | 229713 | macros/latex-dev/required/tools/trace.pdf -2021/05/04 | 33863 | macros/latex-dev/required/tools/varioref-2016-02-16.sty -2021/05/04 | 114211 | macros/latex-dev/required/tools/varioref.dtx -2021/05/04 | 2531 | macros/latex-dev/required/tools/varioref.ins -2021/05/04 | 383483 | macros/latex-dev/required/tools/varioref.pdf -2021/05/04 | 72141 | macros/latex-dev/required/tools/verbatim.dtx -2021/05/04 | 330815 | macros/latex-dev/required/tools/verbatim.pdf -2021/05/04 | 6223 | macros/latex-dev/required/tools/xr.dtx -2021/05/04 | 177595 | macros/latex-dev/required/tools/xr.pdf -2021/05/04 | 17861 | macros/latex-dev/required/tools/xspace.dtx -2021/05/04 | 256897 | macros/latex-dev/required/tools/xspace.pdf -2021/05/04 | 7265798 | macros/latex-dev/required/tools.zip +2021/06/05 | 7109 | macros/latex-dev/base/alltt.dtx +2021/06/05 | 2890 | macros/latex-dev/base/alltt.ins +2021/06/05 | 214710 | macros/latex-dev/base/alltt.pdf +2021/06/05 | 3282 | macros/latex-dev/base/bugs.txt +2021/06/05 | 242886 | macros/latex-dev/base/cfgguide.pdf +2021/06/05 | 22456 | macros/latex-dev/base/cfgguide.tex +2021/06/05 | 42708 | macros/latex-dev/base/changes.old.txt +2021/06/05 | 376392 | macros/latex-dev/base/changes.txt +2021/06/05 | 156210 | macros/latex-dev/base/classes.dtx +2021/06/05 | 4087 | macros/latex-dev/base/classes.ins +2021/06/05 | 550002 | macros/latex-dev/base/classes.pdf +2021/06/05 | 402779 | macros/latex-dev/base/clsguide.pdf +2021/06/05 | 69050 | macros/latex-dev/base/clsguide.tex +2021/06/05 | 5273 | macros/latex-dev/base/cmextra.ins +2021/06/05 | 43636 | macros/latex-dev/base/cmfonts.fdd +2021/06/05 | 4324 | macros/latex-dev/base/cmfonts.ins +2021/06/05 | 292317 | macros/latex-dev/base/cmfonts.pdf +2021/06/05 | 239681 | macros/latex-dev/base/cyrguide.pdf +2021/06/05 | 17495 | macros/latex-dev/base/cyrguide.tex +2021/06/05 | 204063 | macros/latex-dev/base/doc.dtx +2021/06/05 | 676731 | macros/latex-dev/base/doc.pdf +2021/06/05 | 170214 | macros/latex-dev/base/docstrip.dtx +2021/06/05 | 4221 | macros/latex-dev/base/docstrip.ins +2021/06/05 | 503401 | macros/latex-dev/base/docstrip.pdf +2021/06/05 | 41831 | macros/latex-dev/base/doc-v3beta.sty +2021/06/05 | 4390 | macros/latex-dev/base/ec.ins +2021/06/05 | 1316472 | macros/latex-dev/base/encguide.pdf +2021/06/05 | 52813 | macros/latex-dev/base/encguide.tex +2021/06/05 | 7221 | macros/latex-dev/base/exscale.dtx +2021/06/05 | 3338 | macros/latex-dev/base/exscale.ins +2021/06/05 | 212307 | macros/latex-dev/base/exscale.pdf +2021/06/05 | 23521 | macros/latex-dev/base/fix-cm.dtx +2021/06/05 | 2892 | macros/latex-dev/base/fix-cm.ins +2021/06/05 | 287672 | macros/latex-dev/base/fix-cm.pdf +2021/06/05 | 493957 | macros/latex-dev/base/fntguide.pdf +2021/06/05 | 90917 | macros/latex-dev/base/fntguide.tex +2021/06/05 | 60326 | macros/latex-dev/base/fontdef.dtx +2021/06/05 | 9583 | macros/latex-dev/base/format.ins +2021/06/05 | 5514 | macros/latex-dev/base/graphpap.dtx +2021/06/05 | 2892 | macros/latex-dev/base/graphpap.ins +2021/06/05 | 169323 | macros/latex-dev/base/graphpap.pdf +2021/06/05 | 2705 | macros/latex-dev/base/idx.tex +2021/06/05 | 18303 | macros/latex-dev/base/ifthen.dtx +2021/06/05 | 2888 | macros/latex-dev/base/ifthen.ins +2021/06/05 | 220417 | macros/latex-dev/base/ifthen.pdf +2021/06/05 | 106908 | macros/latex-dev/base/inputenc.dtx +2021/06/05 | 5714 | macros/latex-dev/base/inputenc.ins +2021/06/05 | 318168 | macros/latex-dev/base/inputenc.pdf +2021/06/05 | 4079 | macros/latex-dev/base/lablst.tex +2021/06/05 | 38735 | macros/latex-dev/base/latex209.dtx +2021/06/05 | 4219 | macros/latex-dev/base/latex209.ins +2021/06/05 | 468043 | macros/latex-dev/base/latexchanges.pdf +2021/06/05 | 40795 | macros/latex-dev/base/latexchanges.tex +2021/06/05 | 44409 | macros/latex-dev/base/latexrelease.dtx +2021/06/05 | 5917 | macros/latex-dev/base/latexrelease.ins +2021/06/05 | 290495 | macros/latex-dev/base/latexrelease.pdf +2021/06/05 | 6714 | macros/latex-dev/base/latexsym.dtx +2021/06/05 | 5041 | macros/latex-dev/base/latexsym.ins +2021/06/05 | 208359 | macros/latex-dev/base/latexsym.pdf +2021/06/05 | 52578 | macros/latex-dev/base/lb2.err +2021/06/05 | 252154 | macros/latex-dev/base/lb2.pdf +2021/06/05 | 1279 | macros/latex-dev/base/legal.txt +2021/06/05 | 63283 | macros/latex-dev/base/letter.dtx +2021/06/05 | 3372 | macros/latex-dev/base/letter.ins +2021/06/05 | 328949 | macros/latex-dev/base/letter.pdf +2021/06/05 | 20486 | macros/latex-dev/base/lgc2.err +2021/06/05 | 215091 | macros/latex-dev/base/lgc2.pdf +2021/06/05 | 9068 | macros/latex-dev/base/lppl-1-0.txt +2021/06/05 | 14341 | macros/latex-dev/base/lppl-1-1.txt +2021/06/05 | 14421 | macros/latex-dev/base/lppl-1-2.txt +2021/06/05 | 132373 | macros/latex-dev/base/lppl.pdf +2021/06/05 | 23386 | macros/latex-dev/base/lppl.tex +2021/06/05 | 19040 | macros/latex-dev/base/lppl.txt +2021/06/05 | 4303 | macros/latex-dev/base/ltalloc.dtx +2021/06/05 | 16105 | macros/latex-dev/base/ltbibl.dtx +2021/06/05 | 43867 | macros/latex-dev/base/ltboxes.dtx +2021/06/05 | 136576 | macros/latex-dev/base/ltclass.dtx +2021/06/05 | 142843 | macros/latex-dev/base/ltcmd.dtx +2021/06/05 | 693284 | macros/latex-dev/base/ltcmdhooks-code.pdf +2021/06/05 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex +2021/06/05 | 479593 | macros/latex-dev/base/ltcmdhooks-doc.pdf +2021/06/05 | 177 | macros/latex-dev/base/ltcmdhooks-doc.tex +2021/06/05 | 40970 | macros/latex-dev/base/ltcmdhooks.dtx +2021/06/05 | 9562 | macros/latex-dev/base/ltcntrl.dtx +2021/06/05 | 22676 | macros/latex-dev/base/ltcounts.dtx +2021/06/05 | 85865 | macros/latex-dev/base/ltdefns.dtx +2021/06/05 | 35302 | macros/latex-dev/base/ltdirchk.dtx +2021/06/05 | 24015 | macros/latex-dev/base/lterror.dtx +2021/06/05 | 13920 | macros/latex-dev/base/ltexpl.dtx +2021/06/05 | 795607 | macros/latex-dev/base/ltfilehook-code.pdf +2021/06/05 | 105 | macros/latex-dev/base/ltfilehook-code.tex +2021/06/05 | 546176 | macros/latex-dev/base/ltfilehook-doc.pdf +2021/06/05 | 180 | macros/latex-dev/base/ltfilehook-doc.tex +2021/06/05 | 63255 | macros/latex-dev/base/ltfilehook.dtx +2021/06/05 | 55087 | macros/latex-dev/base/ltfiles.dtx +2021/06/05 | 44724 | macros/latex-dev/base/ltfinal.dtx +2021/06/05 | 54680 | macros/latex-dev/base/ltfloat.dtx +2021/06/05 | 29191 | macros/latex-dev/base/ltfntcmd.dtx +2021/06/05 | 58556 | macros/latex-dev/base/ltfssaxes.dtx +2021/06/05 | 80670 | macros/latex-dev/base/ltfssbas.dtx +2021/06/05 | 10375 | macros/latex-dev/base/ltfsscmp.dtx +2021/06/05 | 61425 | macros/latex-dev/base/ltfssdcl.dtx +2021/06/05 | 76725 | macros/latex-dev/base/ltfssini.dtx +2021/06/05 | 72479 | macros/latex-dev/base/ltfsstrc.dtx +2021/06/05 | 1029365 | macros/latex-dev/base/lthooks-code.pdf +2021/06/05 | 102 | macros/latex-dev/base/lthooks-code.tex +2021/06/05 | 684097 | macros/latex-dev/base/lthooks-doc.pdf +2021/06/05 | 177 | macros/latex-dev/base/lthooks-doc.tex +2021/06/05 | 187818 | macros/latex-dev/base/lthooks.dtx +2021/06/05 | 4950 | macros/latex-dev/base/lthyphen.dtx +2021/06/05 | 5864 | macros/latex-dev/base/ltidxglo.dtx +2021/06/05 | 4762 | macros/latex-dev/base/ltlength.dtx +2021/06/05 | 36157 | macros/latex-dev/base/ltlists.dtx +2021/06/05 | 3730 | macros/latex-dev/base/ltlogos.dtx +2021/06/05 | 64748 | macros/latex-dev/base/ltluatex.dtx +2021/06/05 | 325289 | macros/latex-dev/base/ltluatex.pdf +2021/06/05 | 39431 | macros/latex-dev/base/ltmath.dtx +2021/06/05 | 58703 | macros/latex-dev/base/ltmiscen.dtx +2021/06/05 | 161518 | macros/latex-dev/base/ltnews01.pdf +2021/06/05 | 5246 | macros/latex-dev/base/ltnews01.tex +2021/06/05 | 150466 | macros/latex-dev/base/ltnews02.pdf +2021/06/05 | 5283 | macros/latex-dev/base/ltnews02.tex +2021/06/05 | 150493 | macros/latex-dev/base/ltnews03.pdf +2021/06/05 | 5200 | macros/latex-dev/base/ltnews03.tex +2021/06/05 | 143686 | macros/latex-dev/base/ltnews04.pdf +2021/06/05 | 5506 | macros/latex-dev/base/ltnews04.tex +2021/06/05 | 174488 | macros/latex-dev/base/ltnews05.pdf +2021/06/05 | 5608 | macros/latex-dev/base/ltnews05.tex +2021/06/05 | 142909 | macros/latex-dev/base/ltnews06.pdf +2021/06/05 | 5390 | macros/latex-dev/base/ltnews06.tex +2021/06/05 | 138044 | macros/latex-dev/base/ltnews07.pdf +2021/06/05 | 5425 | macros/latex-dev/base/ltnews07.tex +2021/06/05 | 155055 | macros/latex-dev/base/ltnews08.pdf +2021/06/05 | 5695 | macros/latex-dev/base/ltnews08.tex +2021/06/05 | 129032 | macros/latex-dev/base/ltnews09.pdf +2021/06/05 | 5293 | macros/latex-dev/base/ltnews09.tex +2021/06/05 | 159313 | macros/latex-dev/base/ltnews10.pdf +2021/06/05 | 5659 | macros/latex-dev/base/ltnews10.tex +2021/06/05 | 111955 | macros/latex-dev/base/ltnews11.pdf +2021/06/05 | 5529 | macros/latex-dev/base/ltnews11.tex +2021/06/05 | 147587 | macros/latex-dev/base/ltnews12.pdf +2021/06/05 | 5400 | macros/latex-dev/base/ltnews12.tex +2021/06/05 | 173323 | macros/latex-dev/base/ltnews13.pdf +2021/06/05 | 6871 | macros/latex-dev/base/ltnews13.tex +2021/06/05 | 161405 | macros/latex-dev/base/ltnews14.pdf +2021/06/05 | 6273 | macros/latex-dev/base/ltnews14.tex +2021/06/05 | 130447 | macros/latex-dev/base/ltnews15.pdf +2021/06/05 | 5839 | macros/latex-dev/base/ltnews15.tex +2021/06/05 | 146533 | macros/latex-dev/base/ltnews16.pdf +2021/06/05 | 5776 | macros/latex-dev/base/ltnews16.tex +2021/06/05 | 166368 | macros/latex-dev/base/ltnews17.pdf +2021/06/05 | 8863 | macros/latex-dev/base/ltnews17.tex +2021/06/05 | 38031 | macros/latex-dev/base/ltnews18.pdf +2021/06/05 | 1341 | macros/latex-dev/base/ltnews18.tex +2021/06/05 | 245818 | macros/latex-dev/base/ltnews19.pdf +2021/06/05 | 4170 | macros/latex-dev/base/ltnews19.tex +2021/06/05 | 297070 | macros/latex-dev/base/ltnews20.pdf +2021/06/05 | 7325 | macros/latex-dev/base/ltnews20.tex +2021/06/05 | 244869 | macros/latex-dev/base/ltnews21.pdf +2021/06/05 | 9809 | macros/latex-dev/base/ltnews21.tex +2021/06/05 | 318399 | macros/latex-dev/base/ltnews22.pdf +2021/06/05 | 10668 | macros/latex-dev/base/ltnews22.tex +2021/06/05 | 287125 | macros/latex-dev/base/ltnews23.pdf +2021/06/05 | 10687 | macros/latex-dev/base/ltnews23.tex +2021/06/05 | 265211 | macros/latex-dev/base/ltnews24.pdf +2021/06/05 | 12224 | macros/latex-dev/base/ltnews24.tex +2021/06/05 | 205162 | macros/latex-dev/base/ltnews25.pdf +2021/06/05 | 5473 | macros/latex-dev/base/ltnews25.tex +2021/06/05 | 379735 | macros/latex-dev/base/ltnews26.pdf +2021/06/05 | 10697 | macros/latex-dev/base/ltnews26.tex +2021/06/05 | 252432 | macros/latex-dev/base/ltnews27.pdf +2021/06/05 | 5506 | macros/latex-dev/base/ltnews27.tex +2021/06/05 | 387987 | macros/latex-dev/base/ltnews28.pdf +2021/06/05 | 14891 | macros/latex-dev/base/ltnews28.tex +2021/06/05 | 454808 | macros/latex-dev/base/ltnews29.pdf +2021/06/05 | 18940 | macros/latex-dev/base/ltnews29.tex +2021/06/05 | 511855 | macros/latex-dev/base/ltnews30.pdf +2021/06/05 | 23651 | macros/latex-dev/base/ltnews30.tex +2021/06/05 | 526312 | macros/latex-dev/base/ltnews31.pdf +2021/06/05 | 30456 | macros/latex-dev/base/ltnews31.tex +2021/06/05 | 546162 | macros/latex-dev/base/ltnews32.pdf +2021/06/05 | 33256 | macros/latex-dev/base/ltnews32.tex +2021/06/05 | 522413 | macros/latex-dev/base/ltnews33.pdf +2021/06/05 | 33912 | macros/latex-dev/base/ltnews33.tex +2021/06/05 | 20469 | macros/latex-dev/base/ltnews.cls +2021/06/05 | 1074372 | macros/latex-dev/base/ltnews.pdf +2021/06/05 | 8259 | macros/latex-dev/base/ltnews.tex +2021/06/05 | 149221 | macros/latex-dev/base/ltoutenc.dtx +2021/06/05 | 3367 | macros/latex-dev/base/ltoutenc.ins +2021/06/05 | 175645 | macros/latex-dev/base/ltoutput.dtx +2021/06/05 | 11590 | macros/latex-dev/base/ltpage.dtx +2021/06/05 | 2733 | macros/latex-dev/base/ltpageno.dtx +2021/06/05 | 664749 | macros/latex-dev/base/ltpara-code.pdf +2021/06/05 | 99 | macros/latex-dev/base/ltpara-code.tex +2021/06/05 | 560474 | macros/latex-dev/base/ltpara-doc.pdf +2021/06/05 | 173 | macros/latex-dev/base/ltpara-doc.tex +2021/06/05 | 48746 | macros/latex-dev/base/ltpara.dtx +2021/06/05 | 6160 | macros/latex-dev/base/ltpar.dtx +2021/06/05 | 69007 | macros/latex-dev/base/ltpictur.dtx +2021/06/05 | 53199 | macros/latex-dev/base/ltplain.dtx +2021/06/05 | 32648 | macros/latex-dev/base/ltsect.dtx +2021/06/05 | 818898 | macros/latex-dev/base/ltshipout-code.pdf +2021/06/05 | 104 | macros/latex-dev/base/ltshipout-code.tex +2021/06/05 | 564834 | macros/latex-dev/base/ltshipout-doc.pdf +2021/06/05 | 179 | macros/latex-dev/base/ltshipout-doc.tex +2021/06/05 | 78305 | macros/latex-dev/base/ltshipout.dtx +2021/06/05 | 45245 | macros/latex-dev/base/ltspace.dtx +2021/06/05 | 47901 | macros/latex-dev/base/lttab.dtx +2021/06/05 | 90126 | macros/latex-dev/base/lttextcomp.dtx +2021/06/05 | 8736 | macros/latex-dev/base/ltthm.dtx +2021/06/05 | 13901 | macros/latex-dev/base/ltvers.dtx +2021/06/05 | 219354 | macros/latex-dev/base/ltx3info.pdf +2021/06/05 | 18299 | macros/latex-dev/base/ltx3info.tex +2021/06/05 | 27122 | macros/latex-dev/base/ltxcheck.tex +2021/06/05 | 19064 | macros/latex-dev/base/ltxdoc.dtx +2021/06/05 | 238577 | macros/latex-dev/base/ltxdoc.pdf +2021/06/05 | 7524 | macros/latex-dev/base/ltxguide.cls +2021/06/05 | 15625 | macros/latex-dev/base/ltxref.dtx +2021/06/05 | 10603 | macros/latex-dev/base/makeindx.dtx +2021/06/05 | 3434 | macros/latex-dev/base/makeindx.ins +2021/06/05 | 173682 | macros/latex-dev/base/makeindx.pdf +2021/06/05 | 10871 | macros/latex-dev/base/manifest.txt +2021/06/05 | 12946 | macros/latex-dev/base/manual.err +2021/06/05 | 160521 | macros/latex-dev/base/manual.pdf +2021/06/05 | 1937 | macros/latex-dev/base/minimal.cls +2021/06/05 | 243601 | macros/latex-dev/base/modguide.pdf +2021/06/05 | 16233 | macros/latex-dev/base/modguide.tex +2021/06/05 | 4254 | macros/latex-dev/base/newdc.ins +2021/06/05 | 6362 | macros/latex-dev/base/newlfont.dtx +2021/06/05 | 18404 | macros/latex-dev/base/nfssfont.dtx +2021/06/05 | 2893 | macros/latex-dev/base/nfssfont.ins +2021/06/05 | 218782 | macros/latex-dev/base/nfssfont.pdf +2021/06/05 | 3960 | macros/latex-dev/base/olddc.ins +2021/06/05 | 8631 | macros/latex-dev/base/oldlfont.dtx +2021/06/05 | 9373 | macros/latex-dev/base/preload.dtx +2021/06/05 | 13301 | macros/latex-dev/base/proc.dtx +2021/06/05 | 3401 | macros/latex-dev/base/proc.ins +2021/06/05 | 233995 | macros/latex-dev/base/proc.pdf +2021/06/05 | 3514 | macros/latex-dev/base/README.md +2021/06/05 | 7200 | macros/latex-dev/base/sample2e.tex +2021/06/05 | 89718 | macros/latex-dev/base/slides.dtx +2021/06/05 | 6760 | macros/latex-dev/base/slides.ins +2021/06/05 | 374051 | macros/latex-dev/base/slides.pdf +2021/06/05 | 15699 | macros/latex-dev/base/slifonts.fdd +2021/06/05 | 234008 | macros/latex-dev/base/slifonts.pdf +2021/06/05 | 1694 | macros/latex-dev/base/small2e.tex +2021/06/05 | 8531 | macros/latex-dev/base/source2edoc.cls +2021/06/05 | 5275548 | macros/latex-dev/base/source2e.pdf +2021/06/05 | 15104 | macros/latex-dev/base/source2e.tex +2021/06/05 | 9400 | macros/latex-dev/base/syntonly.dtx +2021/06/05 | 2896 | macros/latex-dev/base/syntonly.ins +2021/06/05 | 197409 | macros/latex-dev/base/syntonly.pdf +2021/06/05 | 12520 | macros/latex-dev/base/testpage.tex +2021/06/05 | 2738 | macros/latex-dev/base/tex2.txt +2021/06/05 | 8496 | macros/latex-dev/base/texpert.txt +2021/06/05 | 172278 | macros/latex-dev/base/tlc2.err +2021/06/05 | 289245 | macros/latex-dev/base/tlc2.pdf +2021/06/05 | 12119 | macros/latex-dev/base/tulm.fdd +2021/06/05 | 3781 | macros/latex-dev/base/tulm.ins +2021/06/05 | 170529 | macros/latex-dev/base/tulm.pdf +2021/06/05 | 3181 | macros/latex-dev/base/unpack.ins +2021/06/05 | 325299 | macros/latex-dev/base/usrguide3.pdf +2021/06/05 | 29923 | macros/latex-dev/base/usrguide3.tex +2021/06/05 | 430996 | macros/latex-dev/base/usrguide.pdf +2021/06/05 | 68435 | macros/latex-dev/base/usrguide.tex +2021/06/05 | 89927 | macros/latex-dev/base/utf8ienc.dtx +2021/06/05 | 361715 | macros/latex-dev/base/utf8ienc.pdf +2021/06/05 | 10105 | macros/latex-dev/base/webcomp.err +2021/06/05 | 146200 | macros/latex-dev/base/webcomp.pdf +2021/06/05 | 33900390 | macros/latex-dev/base.zip +2021/06/05 | 8668 | macros/latex-dev/required/amsmath/amsbsy.dtx +2021/06/05 | 1505 | macros/latex-dev/required/amsmath/amsbsy.ins +2021/06/05 | 173746 | macros/latex-dev/required/amsmath/amsbsy.pdf +2021/06/05 | 11289 | macros/latex-dev/required/amsmath/amscd.dtx +2021/06/05 | 1487 | macros/latex-dev/required/amsmath/amscd.ins +2021/06/05 | 178672 | macros/latex-dev/required/amsmath/amscd.pdf +2021/06/05 | 5323 | macros/latex-dev/required/amsmath/ams-external.txt +2021/06/05 | 13447 | macros/latex-dev/required/amsmath/amsgen.dtx +2021/06/05 | 1484 | macros/latex-dev/required/amsmath/amsgen.ins +2021/06/05 | 176740 | macros/latex-dev/required/amsmath/amsgen.pdf +2021/06/05 | 5860 | macros/latex-dev/required/amsmath/ams-internal.txt +2021/06/05 | 508231 | macros/latex-dev/required/amsmath/amsldoc.pdf +2021/06/05 | 104675 | macros/latex-dev/required/amsmath/amsldoc.tex +2021/06/05 | 85099 | macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty +2021/06/05 | 225983 | macros/latex-dev/required/amsmath/amsmath.dtx +2021/06/05 | 1504 | macros/latex-dev/required/amsmath/amsmath.ins +2021/06/05 | 398817 | macros/latex-dev/required/amsmath/amsmath.pdf +2021/06/05 | 9200 | macros/latex-dev/required/amsmath/amsopn.dtx +2021/06/05 | 1490 | macros/latex-dev/required/amsmath/amsopn.ins +2021/06/05 | 138991 | macros/latex-dev/required/amsmath/amsopn.pdf +2021/06/05 | 69732 | macros/latex-dev/required/amsmath/amstex.sty +2021/06/05 | 11403 | macros/latex-dev/required/amsmath/amstext.dtx +2021/06/05 | 1492 | macros/latex-dev/required/amsmath/amstext.ins +2021/06/05 | 215693 | macros/latex-dev/required/amsmath/amstext.pdf +2021/06/05 | 4341 | macros/latex-dev/required/amsmath/amsxtra.dtx +2021/06/05 | 1492 | macros/latex-dev/required/amsmath/amsxtra.ins +2021/06/05 | 112556 | macros/latex-dev/required/amsmath/amsxtra.pdf +2021/06/05 | 6735 | macros/latex-dev/required/amsmath/changes.txt +2021/06/05 | 22605 | macros/latex-dev/required/amsmath/diffs-m.txt +2021/06/05 | 369 | macros/latex-dev/required/amsmath/manifest.txt +2021/06/05 | 2726 | macros/latex-dev/required/amsmath/README.md +2021/06/05 | 109737 | macros/latex-dev/required/amsmath/subeqn.pdf +2021/06/05 | 6440 | macros/latex-dev/required/amsmath/subeqn.tex +2021/06/05 | 145610 | macros/latex-dev/required/amsmath/technote.pdf +2021/06/05 | 12005 | macros/latex-dev/required/amsmath/technote.tex +2021/06/05 | 454662 | macros/latex-dev/required/amsmath/testmath.pdf +2021/06/05 | 82371 | macros/latex-dev/required/amsmath/testmath.tex +2021/06/05 | 2733515 | macros/latex-dev/required/amsmath.zip +2021/06/05 | 2065 | macros/latex-dev/required/firstaid/changes.txt +2021/06/05 | 2740 | macros/latex-dev/required/firstaid/firstaid.ins +2021/06/05 | 17959 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx +2021/06/05 | 228673 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf +2021/06/05 | 474 | macros/latex-dev/required/firstaid/README.md +2021/06/05 | 228890 | macros/latex-dev/required/firstaid.zip +2021/06/05 | 15737 | macros/latex-dev/required/graphics/cat.eps +2021/06/05 | 33916 | macros/latex-dev/required/graphics/changes.txt +2021/06/05 | 31659 | macros/latex-dev/required/graphics/color.dtx +2021/06/05 | 215002 | macros/latex-dev/required/graphics/color.pdf +2021/06/05 | 50810 | macros/latex-dev/required/graphics/drivers.dtx +2021/06/05 | 286309 | macros/latex-dev/required/graphics/drivers.pdf +2021/06/05 | 4113 | macros/latex-dev/required/graphics/epsfig.dtx +2021/06/05 | 167686 | macros/latex-dev/required/graphics/epsfig.pdf +2021/06/05 | 15429 | macros/latex-dev/required/graphics/graphics-2017-06-25.sty +2021/06/05 | 2994 | macros/latex-dev/required/graphics/graphics-drivers.ins +2021/06/05 | 70176 | macros/latex-dev/required/graphics/graphics.dtx +2021/06/05 | 1128 | macros/latex-dev/required/graphics/graphics.ins +2021/06/05 | 310676 | macros/latex-dev/required/graphics/graphics.pdf +2021/06/05 | 30185 | macros/latex-dev/required/graphics/graphicx.dtx +2021/06/05 | 247910 | macros/latex-dev/required/graphics/graphicx.pdf +2021/06/05 | 330071 | macros/latex-dev/required/graphics/grfguide.pdf +2021/06/05 | 37089 | macros/latex-dev/required/graphics/grfguide.tex +2021/06/05 | 13880 | macros/latex-dev/required/graphics/keyval.dtx +2021/06/05 | 239654 | macros/latex-dev/required/graphics/keyval.pdf +2021/06/05 | 3937 | macros/latex-dev/required/graphics/lscape.dtx +2021/06/05 | 163584 | macros/latex-dev/required/graphics/lscape.pdf +2021/06/05 | 2092 | macros/latex-dev/required/graphics/README.md +2021/06/05 | 21072 | macros/latex-dev/required/graphics/rotating.dtx +2021/06/05 | 269292 | macros/latex-dev/required/graphics/rotating.pdf +2021/06/05 | 172230 | macros/latex-dev/required/graphics/rotex.pdf +2021/06/05 | 14575 | macros/latex-dev/required/graphics/rotex.tex +2021/06/05 | 10682 | macros/latex-dev/required/graphics/trig.dtx +2021/06/05 | 207299 | macros/latex-dev/required/graphics/trig.pdf +2021/06/05 | 2632400 | macros/latex-dev/required/graphics.zip +2021/06/05 | 14077 | macros/latex-dev/required/tools/afterpage.dtx +2021/06/05 | 2538 | macros/latex-dev/required/tools/afterpage.ins +2021/06/05 | 205344 | macros/latex-dev/required/tools/afterpage.pdf +2021/06/05 | 11749 | macros/latex-dev/required/tools/array-2016-10-06.sty +2021/06/05 | 12559 | macros/latex-dev/required/tools/array-2020-02-10.sty +2021/06/05 | 127986 | macros/latex-dev/required/tools/array.dtx +2021/06/05 | 516568 | macros/latex-dev/required/tools/array.pdf +2021/06/05 | 61460 | macros/latex-dev/required/tools/bm.dtx +2021/06/05 | 2524 | macros/latex-dev/required/tools/bm.ins +2021/06/05 | 331424 | macros/latex-dev/required/tools/bm.pdf +2021/06/05 | 53172 | macros/latex-dev/required/tools/calc.dtx +2021/06/05 | 370414 | macros/latex-dev/required/tools/calc.pdf +2021/06/05 | 59933 | macros/latex-dev/required/tools/changes.txt +2021/06/05 | 12714 | macros/latex-dev/required/tools/dcolumn.dtx +2021/06/05 | 220689 | macros/latex-dev/required/tools/dcolumn.pdf +2021/06/05 | 6794 | macros/latex-dev/required/tools/delarray.dtx +2021/06/05 | 198647 | macros/latex-dev/required/tools/delarray.pdf +2021/06/05 | 10649 | macros/latex-dev/required/tools/enumerate.dtx +2021/06/05 | 215355 | macros/latex-dev/required/tools/enumerate.pdf +2021/06/05 | 4964 | macros/latex-dev/required/tools/fileerr.dtx +2021/06/05 | 195211 | macros/latex-dev/required/tools/fileerr.pdf +2021/06/05 | 10776 | macros/latex-dev/required/tools/fontsmpl.dtx +2021/06/05 | 154034 | macros/latex-dev/required/tools/fontsmpl.pdf +2021/06/05 | 39701 | macros/latex-dev/required/tools/ftnright.dtx +2021/06/05 | 369903 | macros/latex-dev/required/tools/ftnright.pdf +2021/06/05 | 11153 | macros/latex-dev/required/tools/hhline.dtx +2021/06/05 | 189538 | macros/latex-dev/required/tools/hhline.pdf +2021/06/05 | 2225 | macros/latex-dev/required/tools/indentfirst.dtx +2021/06/05 | 157803 | macros/latex-dev/required/tools/indentfirst.pdf +2021/06/05 | 32034 | macros/latex-dev/required/tools/layout.dtx +2021/06/05 | 267761 | macros/latex-dev/required/tools/layout.pdf +2021/06/05 | 12133 | macros/latex-dev/required/tools/longtable-2020-01-07.sty +2021/06/05 | 76075 | macros/latex-dev/required/tools/longtable.dtx +2021/06/05 | 2538 | macros/latex-dev/required/tools/longtable.ins +2021/06/05 | 382541 | macros/latex-dev/required/tools/longtable.pdf +2021/06/05 | 3284 | macros/latex-dev/required/tools/manifest.txt +2021/06/05 | 29712 | macros/latex-dev/required/tools/multicol-2017-04-11.sty +2021/06/05 | 182354 | macros/latex-dev/required/tools/multicol.dtx +2021/06/05 | 2576 | macros/latex-dev/required/tools/multicol.ins +2021/06/05 | 516238 | macros/latex-dev/required/tools/multicol.pdf +2021/06/05 | 8981 | macros/latex-dev/required/tools/rawfonts.dtx +2021/06/05 | 146534 | macros/latex-dev/required/tools/rawfonts.pdf +2021/06/05 | 1666 | macros/latex-dev/required/tools/README.md +2021/06/05 | 9493 | macros/latex-dev/required/tools/shellesc.dtx +2021/06/05 | 183532 | macros/latex-dev/required/tools/shellesc.pdf +2021/06/05 | 29569 | macros/latex-dev/required/tools/showkeys.dtx +2021/06/05 | 260624 | macros/latex-dev/required/tools/showkeys.pdf +2021/06/05 | 5796 | macros/latex-dev/required/tools/somedefs.dtx +2021/06/05 | 175169 | macros/latex-dev/required/tools/somedefs.pdf +2021/06/05 | 35880 | macros/latex-dev/required/tools/tabularx.dtx +2021/06/05 | 2535 | macros/latex-dev/required/tools/tabularx.ins +2021/06/05 | 278041 | macros/latex-dev/required/tools/tabularx.pdf +2021/06/05 | 43453 | macros/latex-dev/required/tools/theorem.dtx +2021/06/05 | 351417 | macros/latex-dev/required/tools/theorem.pdf +2021/06/05 | 5680 | macros/latex-dev/required/tools/tools.ins +2021/06/05 | 73674 | macros/latex-dev/required/tools/tools-overview.pdf +2021/06/05 | 5211 | macros/latex-dev/required/tools/tools-overview.tex +2021/06/05 | 25151 | macros/latex-dev/required/tools/trace.dtx +2021/06/05 | 229713 | macros/latex-dev/required/tools/trace.pdf +2021/06/05 | 33863 | macros/latex-dev/required/tools/varioref-2016-02-16.sty +2021/06/05 | 114211 | macros/latex-dev/required/tools/varioref.dtx +2021/06/05 | 2531 | macros/latex-dev/required/tools/varioref.ins +2021/06/05 | 383483 | macros/latex-dev/required/tools/varioref.pdf +2021/06/05 | 72141 | macros/latex-dev/required/tools/verbatim.dtx +2021/06/05 | 330815 | macros/latex-dev/required/tools/verbatim.pdf +2021/06/05 | 6223 | macros/latex-dev/required/tools/xr.dtx +2021/06/05 | 177595 | macros/latex-dev/required/tools/xr.pdf +2021/06/05 | 17861 | macros/latex-dev/required/tools/xspace.dtx +2021/06/05 | 256897 | macros/latex-dev/required/tools/xspace.pdf +2021/06/05 | 7266745 | macros/latex-dev/required/tools.zip 1999/05/03 | 8998 | macros/latex/exptl/delimtxt/delimtxt.dtx 1999/03/28 | 143 | macros/latex/exptl/delimtxt/delimtxt.ins 2006/03/21 | 55074 | macros/latex/exptl/delimtxt/delimtxt.pdf @@ -222612,12 +222612,12 @@ 2018/04/06 | 27640 | macros/latex/required/cyrillic/t2lhfnt.fdd 2018/04/06 | 135567 | macros/latex/required/cyrillic/t2lhfnt.pdf 2018/04/06 | 1179110 | macros/latex/required/cyrillic.zip -2021/03/16 | 1829 | macros/latex/required/firstaid/changes.txt -2021/03/16 | 2613 | macros/latex/required/firstaid/firstaid.ins -2021/03/16 | 15144 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx -2021/03/16 | 205202 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf -2021/03/16 | 474 | macros/latex/required/firstaid/README.md -2021/03/16 | 210253 | macros/latex/required/firstaid.zip +2021/06/02 | 2065 | macros/latex/required/firstaid/changes.txt +2021/06/02 | 2740 | macros/latex/required/firstaid/firstaid.ins +2021/06/02 | 17959 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx +2021/06/02 | 228448 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf +2021/06/02 | 474 | macros/latex/required/firstaid/README.md +2021/06/05 | 228654 | macros/latex/required/firstaid.zip 2021/06/01 | 15737 | macros/latex/required/graphics/cat.eps 2021/06/01 | 33916 | macros/latex/required/graphics/changes.txt 2021/06/01 | 31659 | macros/latex/required/graphics/color.dtx @@ -281590,7 +281590,7 @@ 2001/02/25 | 458318 | systems/win32/micropress/eqmlite/ppsample.zip 2001/02/25 | 2566 | systems/win32/micropress/eqmlite/whatsnew.231 2005/01/06 | 587 | systems/win32/micropress/eqmlite/whats-really-new -2021/03/18 | 509859 | systems/win32/miktex/doc/miktex.pdf +2021/06/05 | 509727 | systems/win32/miktex/doc/miktex.pdf 2019/05/28 | 101 | systems/win32/miktex/README.md 2021/02/22 | 58721055 | systems/win32/miktex/setup/darwin-x86_64/miktex-21.2-darwin-x86_64.dmg 2021/03/25 | 61132306 | systems/win32/miktex/setup/darwin-x86_64/miktex-21.3-darwin-x86_64.dmg @@ -281736,6 +281736,7 @@ 2021/03/25 | 8383 | systems/win32/miktex/setup/rpm/fedora/33/repodata/ebacaa90c760f06fa677e9d295c608824ce97a9fe89f962076ad1c2cd72a0c1d-filelists.sqlite.bz2 2021/03/25 | 2972 | systems/win32/miktex/setup/rpm/fedora/33/repodata/repomd.xml 2021/03/25 | 488 | systems/win32/miktex/setup/rpm/fedora/33/repodata/repomd.xml.asc +2021/06/05 | 109 | systems/win32/miktex/setup/rpm/fedora-34.repo 2020/10/11 | 21095168 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-20.10-1.x86_64.rpm 2020/11/01 | 22029188 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-20.11-1.x86_64.rpm 2020/12/14 | 22033020 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-20.12-1.x86_64.rpm @@ -281833,7 +281834,7 @@ 2020/06/22 | 2271156 | systems/win32/miktex/tm/packages/acrosort.tar.lzma 2021/01/17 | 1273069 | systems/win32/miktex/tm/packages/acro.tar.lzma 2010/11/24 | 163309 | systems/win32/miktex/tm/packages/acroterm.tar.lzma -2021/05/29 | 3327259 | systems/win32/miktex/tm/packages/acrotex.tar.lzma +2021/06/05 | 3445146 | systems/win32/miktex/tm/packages/acrotex.tar.lzma 2008/05/23 | 333795 | systems/win32/miktex/tm/packages/active-conf.tar.lzma 2019/06/19 | 130643 | systems/win32/miktex/tm/packages/actuarialangle.tar.lzma 2019/06/14 | 301579 | systems/win32/miktex/tm/packages/actuarialsymbol.tar.lzma @@ -281868,7 +281869,9 @@ 2015/01/13 | 563751 | systems/win32/miktex/tm/packages/afparticle.tar.lzma 2008/07/30 | 46319 | systems/win32/miktex/tm/packages/afthesis.tar.lzma 2010/02/22 | 360345 | systems/win32/miktex/tm/packages/aguplus.tar.lzma -2004/05/30 | 461251 | systems/win32/miktex/tm/packages/aiaa.cab +2021/06/05 | 567651 | systems/win32/miktex/tm/packages/aiaa__doc.tar.lzma +2021/06/05 | 373376 | systems/win32/miktex/tm/packages/aiaa__source.tar.lzma +2021/06/05 | 9018 | systems/win32/miktex/tm/packages/aiaa.tar.lzma 2006/11/14 | 15916 | systems/win32/miktex/tm/packages/akktex.tar.lzma 2016/07/29 | 212481 | systems/win32/miktex/tm/packages/akletter.tar.lzma 2020/10/03 | 1696125 | systems/win32/miktex/tm/packages/akshar.tar.lzma @@ -282025,6 +282028,7 @@ 2014/09/29 | 121076 | systems/win32/miktex/tm/packages/babel-croatian.tar.lzma 2014/05/21 | 206798 | systems/win32/miktex/tm/packages/babel-czech.tar.lzma 2021/02/10 | 144839 | systems/win32/miktex/tm/packages/babel-danish.tar.lzma +2021/06/05 | 830650 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma 2020/10/31 | 160797 | systems/win32/miktex/tm/packages/babel-dutch.tar.lzma 2017/06/07 | 140264 | systems/win32/miktex/tm/packages/babel-english.tar.lzma 2014/05/21 | 135549 | systems/win32/miktex/tm/packages/babel-esperanto.tar.lzma @@ -282063,10 +282067,11 @@ 2014/05/21 | 215576 | systems/win32/miktex/tm/packages/babel-slovak.tar.lzma 2021/02/10 | 143940 | systems/win32/miktex/tm/packages/babel-slovenian.tar.lzma 2021/02/10 | 219913 | systems/win32/miktex/tm/packages/babel-sorbian.tar.lzma +2021/06/05 | 685911 | systems/win32/miktex/tm/packages/babel__source.tar.lzma 2015/05/25 | 5256 | systems/win32/miktex/tm/packages/babel-spanglish.tar.lzma 2021/05/29 | 222183 | systems/win32/miktex/tm/packages/babel-spanish.tar.lzma 2021/02/10 | 148420 | systems/win32/miktex/tm/packages/babel-swedish.tar.lzma -2021/06/03 | 1705213 | systems/win32/miktex/tm/packages/babel.tar.lzma +2021/06/05 | 180175 | systems/win32/miktex/tm/packages/babel.tar.lzma 2014/05/21 | 234101 | systems/win32/miktex/tm/packages/babel-thai.tar.lzma 2019/07/06 | 309208 | systems/win32/miktex/tm/packages/babel-turkish.tar.lzma 2021/01/17 | 159246 | systems/win32/miktex/tm/packages/babel-ukrainian.tar.lzma @@ -282838,7 +282843,7 @@ 2006/08/26 | 141965 | systems/win32/miktex/tm/packages/dyntree.tar.bz2 2021/01/28 | 325253 | systems/win32/miktex/tm/packages/ean13isbn.tar.lzma 2016/07/15 | 3965 | systems/win32/miktex/tm/packages/ean.tar.lzma -2021/06/04 | 360702 | systems/win32/miktex/tm/packages/easybook.tar.lzma +2021/06/05 | 360596 | systems/win32/miktex/tm/packages/easybook.tar.lzma 2018/03/31 | 183421 | systems/win32/miktex/tm/packages/easyfig.tar.lzma 2020/12/21 | 609763 | systems/win32/miktex/tm/packages/easyfloats.tar.lzma 2017/06/12 | 52618 | systems/win32/miktex/tm/packages/easyformat.tar.lzma @@ -283108,7 +283113,7 @@ 2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma 2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma 2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma -2021/06/04 | 576828 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/06/05 | 580325 | systems/win32/miktex/tm/packages/files.csv.lzma 2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma 2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma 2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma @@ -283163,7 +283168,7 @@ 2021/04/07 | 236420 | systems/win32/miktex/tm/packages/foliono.tar.lzma 2006/10/07 | 200314 | systems/win32/miktex/tm/packages/fonetika.tar.bz2 2020/03/25 | 1579462 | systems/win32/miktex/tm/packages/fontawesome5.tar.lzma -2019/06/08 | 511915 | systems/win32/miktex/tm/packages/fontawesome.tar.lzma +2021/06/05 | 511967 | systems/win32/miktex/tm/packages/fontawesome.tar.lzma 2020/07/27 | 140362 | systems/win32/miktex/tm/packages/fontaxes.tar.lzma 2011/08/19 | 1249794 | systems/win32/miktex/tm/packages/fontbook.tar.lzma 2015/09/08 | 1783887 | systems/win32/miktex/tm/packages/font-change.tar.lzma @@ -283683,7 +283688,9 @@ 2021/05/08 | 779245 | systems/win32/miktex/tm/packages/l3build.tar.lzma 2013/05/29 | 156214 | systems/win32/miktex/tm/packages/l3ctr2e.tar.lzma 2021/05/29 | 3368466 | systems/win32/miktex/tm/packages/l3experimental.tar.lzma -2021/06/03 | 11573094 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma +2021/06/05 | 10817711 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma +2021/06/05 | 578291 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma +2021/06/05 | 167628 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma 2021/06/03 | 1875280 | systems/win32/miktex/tm/packages/l3packages.tar.lzma 2008/04/02 | 115132 | systems/win32/miktex/tm/packages/labbook.tar.lzma 2006/11/14 | 45130 | systems/win32/miktex/tm/packages/labelcas.cab @@ -283880,7 +283887,9 @@ 2010/03/30 | 272798 | systems/win32/miktex/tm/packages/ltabptch.tar.lzma 2017/04/13 | 49206 | systems/win32/miktex/tm/packages/ltb2bib.tar.lzma 2020/08/09 | 765022 | systems/win32/miktex/tm/packages/ltx4yt.tar.lzma -2021/06/03 | 27928662 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma +2021/06/05 | 27046882 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma +2021/06/05 | 663128 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma +2021/06/05 | 214921 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma 2020/10/03 | 409074 | systems/win32/miktex/tm/packages/ltxcmds.tar.lzma 2011/03/30 | 6745 | systems/win32/miktex/tm/packages/ltxdockit.tar.lzma 2019/04/16 | 78752 | systems/win32/miktex/tm/packages/ltxguidex.tar.lzma @@ -284082,238 +284091,238 @@ 2021/03/17 | 1951618 | systems/win32/miktex/tm/packages/microtype.tar.lzma 2016/07/16 | 344819 | systems/win32/miktex/tm/packages/midnight.tar.lzma 2010/03/16 | 190135 | systems/win32/miktex/tm/packages/midpage.tar.lzma -2021/03/15 | 50580 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma -2021/03/15 | 56602 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/03/15 | 968327 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma -2021/03/15 | 1074702 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/03/15 | 29072 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma -2021/03/15 | 31325 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma -2021/03/15 | 29776 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma -2021/03/15 | 34547 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/03/15 | 50119 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma -2021/03/15 | 57521 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/03/15 | 82998 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/03/15 | 95066 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/03/15 | 67442 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma -2021/03/15 | 75408 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/03/15 | 27177 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma -2021/03/15 | 30804 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/03/15 | 330679 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma -2021/03/15 | 392663 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma +2021/06/05 | 51072 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma +2021/06/05 | 56440 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/06/05 | 972615 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma +2021/06/05 | 1076850 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/06/05 | 29067 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma +2021/06/05 | 31326 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma +2021/06/05 | 29819 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma +2021/06/05 | 34658 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/06/05 | 50024 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma +2021/06/05 | 57614 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/06/05 | 83804 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/06/05 | 95340 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/06/05 | 67739 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma +2021/06/05 | 75685 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/06/05 | 27165 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma +2021/06/05 | 30782 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/06/05 | 330373 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma +2021/06/05 | 392536 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma 2013/06/24 | 447360 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x86-2.9.tar.lzma -2021/03/15 | 32672 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma -2021/03/15 | 36557 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma -2021/03/15 | 51152 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma -2021/03/15 | 56842 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/03/18 | 4815 | systems/win32/miktex/tm/packages/miktex-config-2.9.tar.lzma -2021/03/15 | 236959 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma -2021/03/15 | 262230 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma -2021/03/15 | 179773 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma -2021/03/15 | 195681 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma -2021/03/15 | 52631 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma -2021/03/15 | 58995 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma -2021/03/15 | 21113 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma -2021/03/15 | 23294 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma +2021/06/05 | 32627 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma +2021/06/05 | 36580 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma +2021/06/05 | 51302 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma +2021/06/05 | 56784 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/06/05 | 4882 | systems/win32/miktex/tm/packages/miktex-config-2.9.tar.lzma +2021/06/05 | 239626 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma +2021/06/05 | 262049 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma +2021/06/05 | 179827 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma +2021/06/05 | 195600 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma +2021/06/05 | 52595 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma +2021/06/05 | 59104 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma +2021/06/05 | 21139 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma +2021/06/05 | 23339 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma 2020/02/07 | 785398 | systems/win32/miktex/tm/packages/miktex-dict-british.tar.lzma 2016/11/02 | 171725 | systems/win32/miktex/tm/packages/miktex-dict-english.tar.lzma 2016/11/02 | 292320 | systems/win32/miktex/tm/packages/miktex-dict-french.tar.lzma 2016/11/02 | 967418 | systems/win32/miktex/tm/packages/miktex-dict-german.tar.lzma 2020/05/17 | 460366 | systems/win32/miktex/tm/packages/miktex-doc-2.9.tar.lzma -2021/03/18 | 461970 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma -2021/03/15 | 45826 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma -2021/03/15 | 51147 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/03/19 | 282090 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/03/19 | 321575 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/06/05 | 461709 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma +2021/06/05 | 45838 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma +2021/06/05 | 51085 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/06/05 | 281897 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/06/05 | 321706 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma 2021/03/16 | 5048 | systems/win32/miktex/tm/packages/miktex-dvipdfmx.tar.lzma -2021/03/15 | 41176 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma -2021/03/15 | 45250 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/03/15 | 117155 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma -2021/03/15 | 131335 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma +2021/06/05 | 41157 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma +2021/06/05 | 45374 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/06/05 | 117382 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma +2021/06/05 | 131650 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma 2017/04/09 | 4195 | systems/win32/miktex/tm/packages/miktex-dvips.tar.lzma -2021/03/15 | 1288084 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma -2021/03/15 | 1423187 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/03/18 | 99815 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma -2021/03/18 | 112830 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/06/05 | 1285949 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma +2021/06/05 | 1422445 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/06/05 | 100336 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma +2021/06/05 | 112809 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma 2016/11/03 | 672 | systems/win32/miktex/tm/packages/miktex-etex.tar.lzma -2021/03/15 | 43017 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma -2021/03/15 | 48217 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma -2021/03/15 | 24979 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma -2021/03/15 | 28108 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/03/15 | 55882 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma -2021/03/15 | 62802 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma +2021/06/05 | 43008 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma +2021/06/05 | 48226 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma +2021/06/05 | 24988 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma +2021/06/05 | 28128 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/06/05 | 56322 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma +2021/06/05 | 62748 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma 2015/09/08 | 11241 | systems/win32/miktex/tm/packages/miktex-fontconfig-base.tar.lzma -2021/03/15 | 134550 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma -2021/03/15 | 152599 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/06/05 | 134544 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma +2021/06/05 | 152526 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma 2016/11/04 | 3555 | systems/win32/miktex/tm/packages/miktex-fontconfig.tar.lzma -2021/03/15 | 72985 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma -2021/03/15 | 77672 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma -2021/03/15 | 71742 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma -2021/03/15 | 80758 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/03/15 | 258854 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma -2021/03/15 | 295345 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/03/15 | 22021 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma -2021/03/15 | 24969 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/03/15 | 97187 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma -2021/03/15 | 112360 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma +2021/06/05 | 72990 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma +2021/06/05 | 77907 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma +2021/06/05 | 71873 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma +2021/06/05 | 80762 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/06/05 | 258870 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma +2021/06/05 | 295391 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/06/05 | 22013 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma +2021/06/05 | 24964 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/06/05 | 97169 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma +2021/06/05 | 112233 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma 2018/09/25 | 10777812 | systems/win32/miktex/tm/packages/miktex-ghostscript-bin.tar.lzma 2018/09/25 | 11056498 | systems/win32/miktex/tm/packages/miktex-ghostscript-bin-x64.tar.lzma -2021/03/15 | 63817 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma -2021/03/15 | 72844 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/03/15 | 96249 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma -2021/03/15 | 115446 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/03/15 | 38034 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma -2021/03/15 | 42936 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/03/15 | 481898 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma -2021/03/15 | 567144 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/06/05 | 64369 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma +2021/06/05 | 73179 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/06/05 | 96428 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma +2021/06/05 | 115598 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/06/05 | 38153 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/05 | 42990 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 483594 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma +2021/06/05 | 566460 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma 2019/09/28 | 1103778 | systems/win32/miktex/tm/packages/miktex-harftex-bin-2.9.tar.lzma 2019/09/28 | 1272652 | systems/win32/miktex/tm/packages/miktex-harftex-bin-x64-2.9.tar.lzma -2021/03/15 | 147095 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma -2021/03/15 | 159855 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/06/05 | 147334 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma +2021/06/05 | 159565 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma 2017/11/02 | 7484214 | systems/win32/miktex/tm/packages/miktex-icu-bin.tar.lzma 2017/11/02 | 7651539 | systems/win32/miktex/tm/packages/miktex-icu-bin-x64.tar.lzma -2021/03/15 | 94744 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma -2021/03/15 | 109065 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/03/15 | 16261 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma -2021/03/15 | 17928 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/03/15 | 28262 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma -2021/03/15 | 30030 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/06/05 | 94753 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma +2021/06/05 | 108988 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/06/05 | 16326 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma +2021/06/05 | 17963 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/06/05 | 28108 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma +2021/06/05 | 30023 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma 2021/03/18 | 1262 | systems/win32/miktex/tm/packages/miktex-latex.tar.lzma -2021/03/15 | 625061 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/03/15 | 679999 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/03/15 | 532297 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma -2021/03/15 | 596689 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma -2021/03/15 | 476063 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma -2021/03/15 | 510906 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/06/05 | 629495 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/06/05 | 680993 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/06/05 | 532127 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma +2021/06/05 | 597491 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma +2021/06/05 | 476942 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma +2021/06/05 | 510964 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma 2019/01/02 | 71265 | systems/win32/miktex/tm/packages/miktex-lua52-bin-2.9.tar.lzma 2019/01/02 | 80005 | systems/win32/miktex/tm/packages/miktex-lua52-bin-x64-2.9.tar.lzma -2021/03/15 | 94272 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma -2021/03/15 | 103386 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma -2021/03/19 | 1727088 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma -2021/03/19 | 1974109 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma +2021/06/05 | 94319 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma +2021/06/05 | 103395 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma +2021/06/05 | 1687549 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma +2021/06/05 | 1997952 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma 2016/11/06 | 11511 | systems/win32/miktex/tm/packages/miktex-luatex.tar.lzma -2021/03/15 | 67598 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma -2021/03/15 | 74139 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma -2021/03/15 | 26980 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma -2021/03/15 | 31402 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/03/15 | 7690 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma -2021/03/15 | 8749 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma -2021/03/15 | 195533 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma -2021/03/15 | 214526 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma +2021/06/05 | 67588 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma +2021/06/05 | 74183 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma +2021/06/05 | 27344 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma +2021/06/05 | 31586 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/06/05 | 7687 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma +2021/06/05 | 8755 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma +2021/06/05 | 196788 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma +2021/06/05 | 215174 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma 2016/11/04 | 675 | systems/win32/miktex/tm/packages/miktex-metafont.tar.lzma -2021/03/15 | 250291 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma -2021/03/15 | 283849 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma +2021/06/05 | 250208 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma +2021/06/05 | 283930 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma 2016/11/04 | 687 | systems/win32/miktex/tm/packages/miktex-metapost.tar.lzma -2021/03/15 | 97835 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma -2021/03/15 | 103266 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma +2021/06/05 | 98233 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma +2021/06/05 | 103340 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma 2021/03/17 | 22903 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma -2021/03/15 | 60432 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma -2021/03/15 | 67917 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/03/15 | 124031 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma -2021/03/15 | 136345 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma -2021/03/18 | 147373 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma -2021/03/18 | 164397 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma -2021/03/15 | 199512 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma -2021/03/15 | 180043 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/03/15 | 67424 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma -2021/03/15 | 77489 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/03/15 | 31204 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma -2021/03/15 | 35059 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma -2021/03/15 | 37840 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma -2021/03/15 | 42722 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/03/15 | 42795 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma -2021/03/15 | 46852 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/03/15 | 45935 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma -2021/03/15 | 52426 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/06/05 | 60547 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma +2021/06/05 | 68041 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/06/05 | 124440 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma +2021/06/05 | 136254 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma +2021/06/05 | 147719 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma +2021/06/05 | 163799 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma +2021/06/05 | 199664 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma +2021/06/05 | 179989 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/06/05 | 67357 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma +2021/06/05 | 76849 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/06/05 | 31181 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma +2021/06/05 | 35053 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma +2021/06/05 | 37843 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma +2021/06/05 | 42694 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/06/05 | 42840 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma +2021/06/05 | 46878 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/06/05 | 45952 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma +2021/06/05 | 52399 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma 2006/05/19 | 1267123 | systems/win32/miktex/tm/packages/miktex-omega-base.cab 2020/05/12 | 354540 | systems/win32/miktex/tm/packages/miktex-omega-bin-2.9.tar.lzma 2020/05/12 | 387734 | systems/win32/miktex/tm/packages/miktex-omega-bin-x64-2.9.tar.lzma 2016/11/04 | 746 | systems/win32/miktex/tm/packages/miktex-omega.tar.lzma -2021/03/15 | 193514 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma -2021/03/15 | 206239 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/03/15 | 35595 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma -2021/03/15 | 39780 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma -2021/03/19 | 743687 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma -2021/03/19 | 813316 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/06/05 | 193960 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma +2021/06/05 | 206392 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/06/05 | 35332 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma +2021/06/05 | 39781 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma +2021/06/05 | 748542 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma +2021/06/05 | 815295 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma 2016/11/10 | 1683 | systems/win32/miktex/tm/packages/miktex-pdftex.tar.lzma -2021/03/15 | 198207 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma -2021/03/15 | 202801 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma -2021/03/15 | 207861 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma -2021/03/15 | 243335 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma -2021/03/15 | 78728 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma -2021/03/15 | 87636 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma -2021/03/15 | 1171723 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma -2021/03/15 | 1304382 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma -2021/03/15 | 20112 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma -2021/03/15 | 23910 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma -2021/03/15 | 31490 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma -2021/03/15 | 37239 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma -2021/03/15 | 63861 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma -2021/03/15 | 72143 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 198303 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma +2021/06/05 | 202834 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma +2021/06/05 | 208114 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma +2021/06/05 | 243452 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma +2021/06/05 | 78723 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma +2021/06/05 | 87791 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma +2021/06/05 | 1170060 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma +2021/06/05 | 1301832 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma +2021/06/05 | 20105 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma +2021/06/05 | 23870 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma +2021/06/05 | 31496 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma +2021/06/05 | 37231 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma +2021/06/05 | 63977 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma +2021/06/05 | 72190 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma 2016/07/29 | 121451 | systems/win32/miktex/tm/packages/miktex-psutils-base.tar.lzma -2021/03/15 | 44495 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma -2021/03/15 | 51175 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma +2021/06/05 | 44603 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma +2021/06/05 | 51670 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma 2021/03/08 | 8242908 | systems/win32/miktex/tm/packages/miktex-qt5-bin.tar.lzma 2021/03/08 | 9576187 | systems/win32/miktex/tm/packages/miktex-qt5-bin-x64.tar.lzma -2021/03/19 | 1297519 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma -2021/03/19 | 1428421 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma -2021/03/15 | 42328 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma -2021/03/15 | 51677 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma +2021/06/05 | 1307281 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma +2021/06/05 | 1428172 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma +2021/06/05 | 42355 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma +2021/06/05 | 51737 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma 2020/05/17 | 74366 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-2.9.tar.lzma -2021/03/15 | 56232 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma +2021/06/05 | 56272 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma 2020/05/17 | 82298 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64-2.9.tar.lzma -2021/03/15 | 59964 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma -2021/03/15 | 25223 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma -2021/03/15 | 27404 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma -2021/03/15 | 16246 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma -2021/03/15 | 18052 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/03/15 | 63477 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma -2021/03/15 | 69916 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/06/05 | 59627 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma +2021/06/05 | 25297 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma +2021/06/05 | 27234 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma +2021/06/05 | 16419 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma +2021/06/05 | 18159 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/06/05 | 63673 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma +2021/06/05 | 69959 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma 2020/01/26 | 4527 | systems/win32/miktex/tm/packages/miktex-tex4ht.tar.lzma -2021/03/18 | 155082 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma -2021/03/18 | 168235 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma -2021/03/15 | 56741 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma -2021/03/15 | 65451 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma +2021/06/05 | 154807 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma +2021/06/05 | 169043 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma +2021/06/05 | 56763 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma +2021/06/05 | 65385 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma 2016/11/05 | 748 | systems/win32/miktex/tm/packages/miktex-texinfo.tar.lzma 2016/11/05 | 724 | systems/win32/miktex/tm/packages/miktex-tex.tar.lzma -2021/03/15 | 99177 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma -2021/03/15 | 106581 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma -2021/03/15 | 2667197 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma -2021/03/15 | 2795270 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma -2021/03/15 | 56174 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/03/15 | 62077 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/06/05 | 97964 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma +2021/06/05 | 105114 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma +2021/06/05 | 2670406 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma +2021/06/05 | 2794574 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma +2021/06/05 | 56384 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/06/05 | 62227 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma 2020/06/25 | 488938 | systems/win32/miktex/tm/packages/miktex-ucrt-bin.tar.lzma 2020/06/25 | 442560 | systems/win32/miktex/tm/packages/miktex-ucrt-bin-x64.tar.lzma -2021/03/15 | 33372 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma -2021/03/15 | 37253 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma -2021/03/15 | 27706 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma -2021/03/15 | 33607 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/06/05 | 33420 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma +2021/06/05 | 37294 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma +2021/06/05 | 27700 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma +2021/06/05 | 33609 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma 2015/10/12 | 2312969 | systems/win32/miktex/tm/packages/miktex-vc120-bin.tar.lzma 2015/10/12 | 2544479 | systems/win32/miktex/tm/packages/miktex-vc120-bin-x64.tar.lzma 2020/06/25 | 3230115 | systems/win32/miktex/tm/packages/miktex-vc140-bin.tar.lzma 2020/06/25 | 3064461 | systems/win32/miktex/tm/packages/miktex-vc140-bin-x64.tar.lzma -2021/03/15 | 67168 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma -2021/03/15 | 70380 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma +2021/06/05 | 65521 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma +2021/06/05 | 70434 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma 2016/04/19 | 634372 | systems/win32/miktex/tm/packages/miktex-xetex-base.tar.lzma -2021/03/18 | 311287 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma -2021/03/18 | 345933 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma +2021/06/05 | 311068 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma +2021/06/05 | 344921 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma 2016/11/05 | 2089 | systems/win32/miktex/tm/packages/miktex-xetex.tar.lzma 2015/06/27 | 136065 | systems/win32/miktex/tm/packages/miktex-xindy-base.tar.lzma 2015/06/19 | 1712962 | systems/win32/miktex/tm/packages/miktex-xindy-bin.tar.lzma 2015/06/19 | 1714958 | systems/win32/miktex/tm/packages/miktex-xindy-bin-x64.tar.lzma 2015/06/19 | 369481 | systems/win32/miktex/tm/packages/miktex-xindy-doc.tar.lzma -2021/03/15 | 55460 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma -2021/03/15 | 57031 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma -2021/03/15 | 584376 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma -2021/03/15 | 619994 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma +2021/06/05 | 55491 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma +2021/06/05 | 57104 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma +2021/06/05 | 586416 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma +2021/06/05 | 620534 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma 2018/01/12 | 138155 | systems/win32/miktex/tm/packages/miktex-zip-bin.tar.lzma 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma -2021/03/15 | 39247 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma -2021/03/15 | 43386 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2021/06/04 | 209783 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/06/04 | 1274462 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/06/04 | 1190290 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/03/15 | 13447 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma -2021/03/15 | 14320 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma +2021/06/05 | 39464 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma +2021/06/05 | 43378 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma +2021/06/05 | 210239 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/06/05 | 1275463 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/06/05 | 1191650 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/06/05 | 13453 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma +2021/06/05 | 14325 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma 2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma 2004/11/11 | 10497 | systems/win32/miktex/tm/packages/miller.cab 2016/07/06 | 405919 | systems/win32/miktex/tm/packages/milog.tar.lzma @@ -284472,190 +284481,189 @@ 2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma 2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma 2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma -2021/06/04 | 577473 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/06/04 | 51089 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/06/04 | 56472 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/06/04 | 971285 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/06/04 | 1076117 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/06/04 | 29044 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/06/04 | 31329 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/06/04 | 29834 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/06/04 | 34650 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/06/04 | 50030 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2021/06/04 | 57634 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/06/04 | 83760 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/06/04 | 95448 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/06/04 | 67885 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/06/04 | 75962 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/06/04 | 27185 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/06/04 | 30806 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/06/04 | 330436 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/06/04 | 392695 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/06/04 | 32597 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/06/04 | 36605 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/06/04 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/06/04 | 56814 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/06/04 | 4903 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma -2021/06/04 | 239580 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/06/04 | 261909 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/06/04 | 180187 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/06/04 | 195752 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/06/04 | 52543 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/06/04 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/06/04 | 21177 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/06/04 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/06/04 | 461825 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/06/04 | 46493 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/06/04 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/06/04 | 281963 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/06/04 | 321644 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/06/04 | 41188 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2021/06/04 | 45318 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/06/04 | 117480 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/06/04 | 131581 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/06/04 | 1294236 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/06/04 | 1423057 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/06/04 | 100463 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2021/06/04 | 112815 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/06/04 | 43060 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/06/04 | 48237 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/06/04 | 25006 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/06/04 | 28162 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/06/04 | 56341 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/06/04 | 62715 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/06/04 | 134795 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/06/04 | 152162 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/06/04 | 72923 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/06/04 | 77942 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/06/04 | 71706 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/06/04 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/06/04 | 258840 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/06/04 | 295145 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/06/04 | 22022 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2021/06/04 | 24988 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/06/04 | 97489 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/06/04 | 112165 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/06/04 | 64401 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/06/04 | 73139 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/06/04 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/06/04 | 115119 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/06/04 | 38171 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/06/04 | 42982 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/06/04 | 482835 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/06/04 | 565936 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/06/04 | 147409 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/06/04 | 159545 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2021/06/04 | 94773 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/06/04 | 108934 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/06/04 | 16341 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/06/04 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/06/04 | 28285 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/06/04 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/06/04 | 629822 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/06/04 | 680953 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/06/04 | 532271 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/06/04 | 596060 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/06/04 | 476899 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/06/04 | 512666 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/06/04 | 94383 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2021/06/04 | 103436 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/06/04 | 1708077 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/06/04 | 2005871 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/06/04 | 67610 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/06/04 | 74209 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/06/04 | 27265 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/06/04 | 31569 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/06/04 | 7716 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/06/04 | 8771 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/06/04 | 197090 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/06/04 | 215196 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/06/04 | 250393 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/06/04 | 284038 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/06/04 | 98266 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/06/04 | 103517 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/06/04 | 60618 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/06/04 | 67972 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/06/04 | 124613 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2021/06/04 | 136506 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/06/04 | 147714 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/06/04 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/06/04 | 199636 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/06/04 | 180078 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/06/04 | 67373 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/06/04 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/06/04 | 31208 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/06/04 | 35069 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/06/04 | 37865 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/06/04 | 42728 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/06/04 | 42887 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/06/04 | 46723 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/06/04 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/06/04 | 52439 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/06/04 | 194079 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2021/06/04 | 206343 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/06/04 | 35699 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/06/04 | 40342 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/06/04 | 748787 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/06/04 | 816250 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/06/04 | 198226 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/06/04 | 202702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/06/04 | 207854 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/06/04 | 243392 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/06/04 | 78751 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/06/04 | 87677 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/06/04 | 1170759 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/06/04 | 1300399 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/06/04 | 20122 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/06/04 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/06/04 | 31548 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/06/04 | 37230 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/06/04 | 64033 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/06/04 | 72176 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/06/04 | 44611 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/06/04 | 51457 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/06/04 | 1308118 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/06/04 | 1429094 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/06/04 | 42374 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/06/04 | 51741 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/06/04 | 56288 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/06/04 | 59698 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/06/04 | 25267 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/06/04 | 27258 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/06/04 | 16447 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/06/04 | 18167 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/06/04 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/06/04 | 69897 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2021/06/04 | 154624 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/06/04 | 169102 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/06/04 | 56755 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/06/04 | 65467 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/06/04 | 97982 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/06/04 | 106859 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2021/06/04 | 2670400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/06/04 | 2793680 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/06/04 | 56314 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/06/04 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/06/04 | 33601 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/06/04 | 37363 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/06/04 | 27710 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/06/04 | 33622 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/06/04 | 67262 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/06/04 | 70487 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/06/04 | 311356 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/06/04 | 345323 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/06/04 | 55523 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/06/04 | 57112 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/06/04 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/06/04 | 621338 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/06/04 | 39019 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/06/04 | 43357 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/06/04 | 209714 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/06/04 | 1274451 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/06/04 | 1190140 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/06/04 | 13447 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/06/04 | 14346 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/06/05 | 580167 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/06/05 | 51089 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/06/05 | 56473 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/06/05 | 971287 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/06/05 | 1076117 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/06/05 | 29046 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/06/05 | 31327 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/06/05 | 29836 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/06/05 | 34650 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/06/05 | 50031 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/06/05 | 57634 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/06/05 | 83759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/06/05 | 95450 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/06/05 | 67887 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/06/05 | 75963 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/06/05 | 27186 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/06/05 | 30808 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/06/05 | 330437 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/06/05 | 392695 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/06/05 | 32596 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/06/05 | 36605 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/06/05 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/06/05 | 56813 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/06/05 | 239581 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/06/05 | 261911 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/06/05 | 180187 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/06/05 | 195752 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/06/05 | 52542 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/06/05 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/06/05 | 21178 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/06/05 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/06/05 | 461825 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/06/05 | 46493 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/06/05 | 51118 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/06/05 | 281965 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/06/05 | 321644 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/06/05 | 41189 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/06/05 | 45317 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/06/05 | 117479 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/06/05 | 131581 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/06/05 | 1294236 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/06/05 | 1423058 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/06/05 | 100461 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/06/05 | 112815 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/06/05 | 43060 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/06/05 | 48239 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/06/05 | 25007 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/06/05 | 28162 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/06/05 | 56341 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/06/05 | 62715 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/06/05 | 134795 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/06/05 | 152164 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/06/05 | 72925 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/06/05 | 77940 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/06/05 | 71708 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/06/05 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/06/05 | 258840 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/06/05 | 295146 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/06/05 | 22024 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/06/05 | 24987 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/06/05 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/06/05 | 112166 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/06/05 | 64402 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/06/05 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/06/05 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/06/05 | 115121 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/06/05 | 38171 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/05 | 42981 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 482836 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/06/05 | 565935 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/06/05 | 147408 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/06/05 | 159544 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/06/05 | 94772 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/06/05 | 108933 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/06/05 | 16341 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/06/05 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/06/05 | 28285 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/06/05 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/06/05 | 629823 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/06/05 | 680955 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/06/05 | 532269 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/06/05 | 596058 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/06/05 | 476898 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/06/05 | 512668 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/06/05 | 94384 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/06/05 | 103437 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/06/05 | 1708076 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/06/05 | 2005871 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/06/05 | 67610 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/06/05 | 74210 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/06/05 | 27266 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/06/05 | 31570 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/06/05 | 7717 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/06/05 | 8772 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/06/05 | 197090 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/06/05 | 215197 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/06/05 | 250394 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/06/05 | 284041 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/06/05 | 98266 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/06/05 | 103518 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/06/05 | 60618 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/06/05 | 67972 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/06/05 | 124618 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/06/05 | 136507 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/06/05 | 147714 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/06/05 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/06/05 | 199638 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/06/05 | 180079 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/06/05 | 67372 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/06/05 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/06/05 | 31207 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/06/05 | 35069 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/06/05 | 37864 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/06/05 | 42729 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/06/05 | 42886 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/06/05 | 46724 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/06/05 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/06/05 | 52438 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/06/05 | 194079 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/06/05 | 206343 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/06/05 | 35699 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/06/05 | 40343 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/06/05 | 748786 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/06/05 | 816250 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/06/05 | 198226 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/06/05 | 202702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/06/05 | 207849 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/06/05 | 243392 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/06/05 | 78752 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/06/05 | 87680 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/06/05 | 1170758 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/06/05 | 1300400 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/06/05 | 20123 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/06/05 | 23881 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/06/05 | 31548 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/06/05 | 37229 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/06/05 | 64033 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/06/05 | 72176 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 44612 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/06/05 | 51456 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/06/05 | 1308120 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/06/05 | 1429092 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/06/05 | 42373 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/06/05 | 51741 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/06/05 | 56290 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/06/05 | 59699 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/06/05 | 25267 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/06/05 | 27259 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/06/05 | 16447 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/06/05 | 18168 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/06/05 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/06/05 | 69898 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/06/05 | 154624 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/06/05 | 169100 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/06/05 | 56754 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/06/05 | 65467 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/06/05 | 97980 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/06/05 | 106859 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/06/05 | 2670400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/06/05 | 2793681 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/06/05 | 56310 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/06/05 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/06/05 | 33602 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/06/05 | 37363 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/06/05 | 27711 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/06/05 | 33621 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/06/05 | 67263 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/06/05 | 70487 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/06/05 | 311356 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/06/05 | 345324 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/06/05 | 55523 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/06/05 | 57110 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/06/05 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/06/05 | 621334 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/06/05 | 39019 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/06/05 | 43358 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/06/05 | 210221 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/06/05 | 1276249 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/06/05 | 1191810 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/06/05 | 13447 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/06/05 | 14345 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma -2021/06/04 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/06/05 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini 2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma 2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma 2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma @@ -284933,7 +284941,7 @@ 2016/07/18 | 142232 | systems/win32/miktex/tm/packages/plari.tar.lzma 2016/07/20 | 93092 | systems/win32/miktex/tm/packages/plates.tar.lzma 2019/01/03 | 533049 | systems/win32/miktex/tm/packages/platexcheat.tar.lzma -2021/06/03 | 1662190 | systems/win32/miktex/tm/packages/platex.tar.lzma +2021/06/05 | 1666110 | systems/win32/miktex/tm/packages/platex.tar.lzma 2021/06/03 | 582465 | systems/win32/miktex/tm/packages/platex-tools.tar.lzma 2021/06/03 | 144548 | systems/win32/miktex/tm/packages/plautopatch.tar.lzma 2020/08/09 | 1939832 | systems/win32/miktex/tm/packages/playfair.tar.lzma @@ -284991,7 +284999,7 @@ 2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma 2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma 2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma -2021/06/04 | 842 | systems/win32/miktex/tm/packages/pr.ini +2021/06/05 | 928 | systems/win32/miktex/tm/packages/pr.ini 2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma 2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma 2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma @@ -285063,8 +285071,10 @@ 2021/04/07 | 3536132 | systems/win32/miktex/tm/packages/pst-func.tar.lzma 2010/04/27 | 406251 | systems/win32/miktex/tm/packages/pst-fun.tar.lzma 2014/12/22 | 91090 | systems/win32/miktex/tm/packages/pst-gantt.tar.lzma +2021/06/05 | 118359511 | systems/win32/miktex/tm/packages/pst-geo__doc.tar.lzma 2017/09/17 | 412979 | systems/win32/miktex/tm/packages/pst-geometrictools.tar.lzma -2018/12/30 | 142915783 | systems/win32/miktex/tm/packages/pst-geo.tar.lzma +2021/06/05 | 24441131 | systems/win32/miktex/tm/packages/pst-geo__source.tar.lzma +2021/06/05 | 12443 | systems/win32/miktex/tm/packages/pst-geo.tar.lzma 2004/07/29 | 90147 | systems/win32/miktex/tm/packages/pst-ghsb.cab 2005/12/30 | 169705 | systems/win32/miktex/tm/packages/pst-gr3d.cab 2007/07/12 | 220754 | systems/win32/miktex/tm/packages/pst-grad.tar.lzma @@ -285419,7 +285429,7 @@ 2008/07/22 | 360807 | systems/win32/miktex/tm/packages/sistyle.tar.lzma 2011/04/21 | 76017 | systems/win32/miktex/tm/packages/sitem.tar.lzma 2007/12/09 | 81490 | systems/win32/miktex/tm/packages/siunits.tar.lzma -2021/06/03 | 2559837 | systems/win32/miktex/tm/packages/siunitx.tar.lzma +2021/06/05 | 2582857 | systems/win32/miktex/tm/packages/siunitx.tar.lzma 2009/02/21 | 477338 | systems/win32/miktex/tm/packages/skaknew.tar.lzma 2018/02/08 | 221377 | systems/win32/miktex/tm/packages/skak.tar.lzma 2011/06/23 | 1471957 | systems/win32/miktex/tm/packages/skb.tar.lzma @@ -285780,7 +285790,7 @@ 2019/07/20 | 932365 | systems/win32/miktex/tm/packages/tocdata.tar.lzma 2020/01/13 | 532318 | systems/win32/miktex/tm/packages/tocloft.tar.lzma 2014/03/14 | 312556 | systems/win32/miktex/tm/packages/tocvsec2.tar.lzma -2021/04/27 | 455498 | systems/win32/miktex/tm/packages/todonotes.tar.lzma +2021/06/05 | 467521 | systems/win32/miktex/tm/packages/todonotes.tar.lzma 2010/04/13 | 187962 | systems/win32/miktex/tm/packages/todo.tar.lzma 2021/05/29 | 1158849 | systems/win32/miktex/tm/packages/tokcycle.tar.lzma 2004/05/07 | 6156 | systems/win32/miktex/tm/packages/tokenizer.cab @@ -286182,7 +286192,7 @@ 2021/06/03 | 5529800 | systems/win32/w32tex/aleph-w32.tar.xz 2021/06/03 | 63889744 | systems/win32/w32tex/biblatex-biber.tar.xz 2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz -2021/06/03 | 840044 | systems/win32/w32tex/ChangeLog +2021/06/04 | 840381 | systems/win32/w32tex/ChangeLog 2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0 2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1 2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2 @@ -286202,11 +286212,11 @@ 2021/04/07 | 17377260 | systems/win32/w32tex/gregorio-w32.tar.xz 2009/08/03 | 1072620 | systems/win32/w32tex/gtftex.zip 2021/06/03 | 1865048 | systems/win32/w32tex/jtex-w32.tar.xz -2021/06/03 | 52885348 | systems/win32/w32tex/latex-dev.tar.xz +2021/06/04 | 52879420 | systems/win32/w32tex/latex-dev.tar.xz 2021/06/03 | 39438884 | systems/win32/w32tex/latex.tar.xz 2021/04/07 | 1007424 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz 2021/05/25 | 413638248 | systems/win32/w32tex/ltxpkgdocs.tar.xz -2021/06/02 | 50059200 | systems/win32/w32tex/ltxpkgs.tar.xz +2021/06/04 | 50065400 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/05/12 | 3891892 | systems/win32/w32tex/luajittex-dev-w32.tar.xz 2021/05/12 | 3899756 | systems/win32/w32tex/luajittex-exp-w32.tar.xz 2021/05/12 | 3907764 | systems/win32/w32tex/luajittex-w32.tar.xz @@ -286221,7 +286231,7 @@ 2021/04/07 | 525008 | systems/win32/w32tex/mftrace-w32.tar.xz 2018/07/14 | 6364952 | systems/win32/w32tex/minitoc.tar.xz 2020/01/19 | 882832 | systems/win32/w32tex/m-tx.tar.xz -2021/06/03 | 10369348 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz +2021/06/04 | 10369920 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz 2021/04/07 | 1246480 | systems/win32/w32tex/omegaj-w32.tar.xz 2020/11/16 | 324540 | systems/win32/w32tex/otfbeta.tar.xz 2021/06/03 | 22322104 | systems/win32/w32tex/pdftex-w32.tar.xz @@ -286232,12 +286242,12 @@ 2021/04/07 | 1170892 | systems/win32/w32tex/pstoedit-w32.tar.xz 2021/06/01 | 274304156 | systems/win32/w32tex/pstricks.tar.xz 2021/04/07 | 518092 | systems/win32/w32tex/psutils-w32.tar.xz -2021/06/03 | 6797896 | systems/win32/w32tex/ptex-ng-w32.tar.xz +2021/06/04 | 6797948 | systems/win32/w32tex/ptex-ng-w32.tar.xz 2021/06/03 | 10736392 | systems/win32/w32tex/ptex-w32.tar.xz 2019/04/15 | 499188 | systems/win32/w32tex/sam2p-w32.tar.xz 2021/03/23 | 87955068 | systems/win32/w32tex/t1fonts.tar.xz 2020/10/31 | 142032 | systems/win32/w32tex/t1utils-w32.tar.xz -2021/06/01 | 3437520 | systems/win32/w32tex/tex4htk-w32.tar.xz +2021/06/04 | 3446616 | systems/win32/w32tex/tex4htk-w32.tar.xz 2018/06/20 | 15940044 | systems/win32/w32tex/tex-gyre.tar.xz 2021/04/07 | 4485428 | systems/win32/w32tex/texinfo-w32.tar.xz 2021/01/03 | 2050496 | systems/win32/w32tex/texinstwin.zip @@ -286257,7 +286267,7 @@ 2020/01/19 | 5856 | systems/win32/w32tex/txtutil.tar.xz 2013/04/08 | 71588 | systems/win32/w32tex/ums.tar.xz 2012/05/28 | 233472 | systems/win32/w32tex/unzip.exe -2021/06/03 | 8651112 | systems/win32/w32tex/uptex-w32.tar.xz +2021/06/04 | 8650216 | systems/win32/w32tex/uptex-w32.tar.xz 2013/04/08 | 722652 | systems/win32/w32tex/utf.tar.xz 2013/04/08 | 13748 | systems/win32/w32tex/vf-n2bk.tar.xz 2021/03/24 | 53260516 | systems/win32/w32tex/w32tex-src.tar.xz @@ -286403,7 +286413,7 @@ 2004/06/04 | 404 | tds/tds.sed 2004/06/23 | 65418 | tds/tds.tex 2019/05/29 | 304264 | tds.zip -2021/06/05 | 186 | timestamp +2021/06/06 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index 8f7fa40ced..b3f5cd180c 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index bc70747992..9bb4e71cbf 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,337 +1,1092 @@ +2021/06/05 | 99 | macros/latex-dev/base/ltpara-code.tex +2021/06/05 | 98266 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/06/05 | 98233 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma +2021/06/05 | 9809 | macros/latex-dev/base/ltnews21.tex +2021/06/05 | 9809455 | macros/latex/contrib/bjfuthesis.zip +2021/06/05 | 97980 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/06/05 | 97964 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma +2021/06/05 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/06/05 | 972615 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma +2021/06/05 | 97169 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma +2021/06/05 | 971287 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/06/05 | 970 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty +2021/06/05 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/06/05 | 96428 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma +2021/06/05 | 9583 | macros/latex-dev/base/format.ins +2021/06/05 | 9562 | macros/latex-dev/base/ltcntrl.dtx +2021/06/05 | 95450 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/06/05 | 95340 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/06/05 | 9493 | macros/latex-dev/required/tools/shellesc.dtx +2021/06/05 | 94772 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/06/05 | 94753 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma +2021/06/05 | 94384 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/06/05 | 94319 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma +2021/06/05 | 9400 | macros/latex-dev/base/syntonly.dtx +2021/06/05 | 9373 | macros/latex-dev/base/preload.dtx +2021/06/05 | 928 | systems/win32/miktex/tm/packages/pr.ini +2021/06/05 | 9200 | macros/latex-dev/required/amsmath/amsopn.dtx +2021/06/05 | 90917 | macros/latex-dev/base/fntguide.tex +2021/06/05 | 9068 | macros/latex-dev/base/lppl-1-0.txt +2021/06/05 | 904 | macros/latex/contrib/hyperref/doc/hyperref-doc2.html +2021/06/05 | 9018 | systems/win32/miktex/tm/packages/aiaa.tar.lzma +2021/06/05 | 90126 | macros/latex-dev/base/lttextcomp.dtx +2021/06/05 | 89927 | macros/latex-dev/base/utf8ienc.dtx +2021/06/05 | 8981 | macros/latex-dev/required/tools/rawfonts.dtx +2021/06/05 | 89718 | macros/latex-dev/base/slides.dtx +2021/06/05 | 896 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty +2021/06/05 | 894443 | macros/latex/contrib/hyperref/hyperref.dtx +2021/06/05 | 8863 | macros/latex-dev/base/ltnews17.tex +2021/06/05 | 87791 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma +2021/06/05 | 8772 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/06/05 | 87680 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/06/05 | 8755 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma +2021/06/05 | 8736 | macros/latex-dev/base/ltthm.dtx +2021/06/05 | 8668 | macros/latex-dev/required/amsmath/amsbsy.dtx +2021/06/05 | 8631 | macros/latex-dev/base/oldlfont.dtx +2021/06/05 | 85865 | macros/latex-dev/base/ltdefns.dtx +2021/06/05 | 8531 | macros/latex-dev/base/source2edoc.cls +2021/06/05 | 85099 | macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty +2021/06/05 | 8496 | macros/latex-dev/base/texpert.txt +2021/06/05 | 847077 | macros/latex/contrib/suftesi/suftesi.pdf +2021/06/05 | 8409 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty +2021/06/05 | 83804 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/06/05 | 837 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty +2021/06/05 | 83759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/06/05 | 830650 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma +2021/06/05 | 8259 | macros/latex-dev/base/ltnews.tex +2021/06/05 | 82371 | macros/latex-dev/required/amsmath/testmath.tex +2021/06/05 | 819 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty +2021/06/05 | 818898 | macros/latex-dev/base/ltshipout-code.pdf +2021/06/05 | 816250 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/06/05 | 815295 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/06/05 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/06/05 | 80762 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/06/05 | 80670 | macros/latex-dev/base/ltfssbas.dtx +2021/06/05 | 795607 | macros/latex-dev/base/ltfilehook-code.pdf +2021/06/05 | 78863 | macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf +2021/06/05 | 78752 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/06/05 | 78723 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma +2021/06/05 | 78305 | macros/latex-dev/base/ltshipout.dtx +2021/06/05 | 77940 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/06/05 | 77907 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma +2021/06/05 | 771 | macros/latex/contrib/hyperref/doc/hyperref-doc3.html +2021/06/05 | 7717 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/06/05 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc7.html +2021/06/05 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc6.html +2021/06/05 | 768 | macros/latex/contrib/hyperref/doc/hyperref-doc5.html +2021/06/05 | 7687 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma +2021/06/05 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/06/05 | 76849 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/06/05 | 76725 | macros/latex-dev/base/ltfssini.dtx +2021/06/05 | 76075 | macros/latex-dev/required/tools/longtable.dtx +2021/06/05 | 75963 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/06/05 | 75685 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/06/05 | 7524 | macros/latex-dev/base/ltxguide.cls +2021/06/05 | 748786 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/06/05 | 748542 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma +2021/06/05 | 74210 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/06/05 | 74183 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma +2021/06/05 | 740 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty +2021/06/05 | 73674 | macros/latex-dev/required/tools/tools-overview.pdf +2021/06/05 | 7348926 | install/macros/latex-dev/required/latex-tools-dev.tds.zip +2021/06/05 | 7325 | macros/latex-dev/base/ltnews20.tex +2021/06/05 | 73179 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/06/05 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/06/05 | 72990 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma +2021/06/05 | 72925 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/06/05 | 7266745 | macros/latex-dev/required/tools.zip +2021/06/05 | 72479 | macros/latex-dev/base/ltfsstrc.dtx +2021/06/05 | 7221 | macros/latex-dev/base/exscale.dtx +2021/06/05 | 72190 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 72176 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 72141 | macros/latex-dev/required/tools/verbatim.dtx +2021/06/05 | 7200 | macros/latex-dev/base/sample2e.tex +2021/06/05 | 71873 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma +2021/06/05 | 71708 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/06/05 | 7109 | macros/latex-dev/base/alltt.dtx +2021/06/05 | 70487 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/06/05 | 70434 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma +2021/06/05 | 70176 | macros/latex-dev/required/graphics/graphics.dtx +2021/06/05 | 69959 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/06/05 | 69898 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/06/05 | 69732 | macros/latex-dev/required/amsmath/amstex.sty +2021/06/05 | 6965 | macros/latex/contrib/bjfuthesis/bjfuthesis.cls +2021/06/05 | 693284 | macros/latex-dev/base/ltcmdhooks-code.pdf +2021/06/05 | 69050 | macros/latex-dev/base/clsguide.tex +2021/06/05 | 69007 | macros/latex-dev/base/ltpictur.dtx +2021/06/05 | 687 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty +2021/06/05 | 6871 | macros/latex-dev/base/ltnews13.tex +2021/06/05 | 685911 | systems/win32/miktex/tm/packages/babel__source.tar.lzma +2021/06/05 | 68435 | macros/latex-dev/base/usrguide.tex +2021/06/05 | 684097 | macros/latex-dev/base/lthooks-doc.pdf +2021/06/05 | 681691 | macros/latex/contrib/suftesi/templates.zip +2021/06/05 | 680993 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/06/05 | 680955 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/06/05 | 68041 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/06/05 | 67972 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/06/05 | 6794 | macros/latex-dev/required/tools/delarray.dtx +2021/06/05 | 67887 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/06/05 | 67739 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma +2021/06/05 | 676731 | macros/latex-dev/base/doc.pdf +2021/06/05 | 67610 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/06/05 | 6760 | macros/latex-dev/base/slides.ins +2021/06/05 | 67588 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma +2021/06/05 | 67372 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/06/05 | 6735 | macros/latex-dev/required/amsmath/changes.txt +2021/06/05 | 67357 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma +2021/06/05 | 67263 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/06/05 | 6714 | macros/latex-dev/base/latexsym.dtx +2021/06/05 | 668 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty +2021/06/05 | 664749 | macros/latex-dev/base/ltpara-code.pdf +2021/06/05 | 663128 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma +2021/06/05 | 65521 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma +2021/06/05 | 65504 | macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex +2021/06/05 | 65467 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/06/05 | 65385 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma +2021/06/05 | 64748 | macros/latex-dev/base/ltluatex.dtx +2021/06/05 | 6440 | macros/latex-dev/required/amsmath/subeqn.tex +2021/06/05 | 64402 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/06/05 | 64369 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma +2021/06/05 | 64033 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/06/05 | 63977 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma +2021/06/05 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/06/05 | 63673 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma +2021/06/05 | 6362 | macros/latex-dev/base/newlfont.dtx +2021/06/05 | 63283 | macros/latex-dev/base/letter.dtx +2021/06/05 | 63255 | macros/latex-dev/base/ltfilehook.dtx +2021/06/05 | 629823 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/06/05 | 629495 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/06/05 | 62748 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma +2021/06/05 | 6273 | macros/latex-dev/base/ltnews14.tex +2021/06/05 | 62715 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/06/05 | 6223 | macros/latex-dev/required/tools/xr.dtx +2021/06/05 | 6222 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty +2021/06/05 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/06/05 | 62227 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/06/05 | 621334 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/06/05 | 620534 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma +2021/06/05 | 6160 | macros/latex-dev/base/ltpar.dtx +2021/06/05 | 61460 | macros/latex-dev/required/tools/bm.dtx +2021/06/05 | 61425 | macros/latex-dev/base/ltfssdcl.dtx +2021/06/05 | 608746 | macros/latex/contrib/nicematrix/nicematrix.dtx +2021/06/05 | 608452 | macros/latex/contrib/eq-pin2corr.zip +2021/06/05 | 60618 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/06/05 | 60547 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma +2021/06/05 | 60326 | macros/latex-dev/base/fontdef.dtx +2021/06/05 | 59933 | macros/latex-dev/required/tools/changes.txt +2021/06/05 | 597491 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma +2021/06/05 | 59699 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/06/05 | 59627 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma +2021/06/05 | 596058 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/06/05 | 5917 | macros/latex-dev/base/latexrelease.ins +2021/06/05 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/06/05 | 59104 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma +2021/06/05 | 58703 | macros/latex-dev/base/ltmiscen.dtx +2021/06/05 | 5864 | macros/latex-dev/base/ltidxglo.dtx +2021/06/05 | 586416 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma +2021/06/05 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/06/05 | 5860 | macros/latex-dev/required/amsmath/ams-internal.txt +2021/06/05 | 58556 | macros/latex-dev/base/ltfssaxes.dtx +2021/06/05 | 5839 | macros/latex-dev/base/ltnews15.tex +2021/06/05 | 580325 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/06/05 | 580167 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/06/05 | 5796 | macros/latex-dev/required/tools/somedefs.dtx +2021/06/05 | 578291 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma +2021/06/05 | 5776 | macros/latex-dev/base/ltnews16.tex +2021/06/05 | 57634 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/06/05 | 57614 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/06/05 | 5736 | macros/latex/contrib/hyperref/xr-hyper.sty +2021/06/05 | 5714 | macros/latex-dev/base/inputenc.ins +2021/06/05 | 57110 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/06/05 | 57104 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma +2021/06/05 | 5695 | macros/latex-dev/base/ltnews08.tex +2021/06/05 | 56813 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/06/05 | 5680 | macros/latex-dev/required/tools/tools.ins +2021/06/05 | 56784 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/06/05 | 567651 | systems/win32/miktex/tm/packages/aiaa__doc.tar.lzma +2021/06/05 | 56763 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma +2021/06/05 | 56754 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/06/05 | 566460 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/06/05 | 5659 | macros/latex-dev/base/ltnews10.tex +2021/06/05 | 565935 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/06/05 | 564834 | macros/latex-dev/base/ltshipout-doc.pdf +2021/06/05 | 56473 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/06/05 | 56440 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/06/05 | 56384 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/06/05 | 56341 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/06/05 | 56322 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma +2021/06/05 | 56310 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/06/05 | 56290 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/06/05 | 56272 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma +2021/06/05 | 5608 | macros/latex-dev/base/ltnews05.tex +2021/06/05 | 560474 | macros/latex-dev/base/ltpara-doc.pdf +2021/06/05 | 55523 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/06/05 | 55491 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma +2021/06/05 | 5529 | macros/latex-dev/base/ltnews11.tex +2021/06/05 | 5514 | macros/latex-dev/base/graphpap.dtx +2021/06/05 | 55087 | macros/latex-dev/base/ltfiles.dtx +2021/06/05 | 5506 | macros/latex-dev/base/ltnews27.tex +2021/06/05 | 5506 | macros/latex-dev/base/ltnews04.tex +2021/06/05 | 550002 | macros/latex-dev/base/classes.pdf +2021/06/05 | 5473 | macros/latex-dev/base/ltnews25.tex +2021/06/05 | 54680 | macros/latex-dev/base/ltfloat.dtx +2021/06/05 | 546176 | macros/latex-dev/base/ltfilehook-doc.pdf +2021/06/05 | 546162 | macros/latex-dev/base/ltnews32.pdf +2021/06/05 | 5425 | macros/latex-dev/base/ltnews07.tex +2021/06/05 | 5400 | macros/latex-dev/base/ltnews12.tex +2021/06/05 | 5390 | macros/latex-dev/base/ltnews06.tex +2021/06/05 | 5323 | macros/latex-dev/required/amsmath/ams-external.txt +2021/06/05 | 532269 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/06/05 | 532127 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma +2021/06/05 | 53203 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png +2021/06/05 | 53199 | macros/latex-dev/base/ltplain.dtx +2021/06/05 | 53172 | macros/latex-dev/required/tools/calc.dtx +2021/06/05 | 5293 | macros/latex-dev/base/ltnews09.tex +2021/06/05 | 5283 | macros/latex-dev/base/ltnews02.tex +2021/06/05 | 52813 | macros/latex-dev/base/encguide.tex +2021/06/05 | 5275548 | macros/latex-dev/base/source2e.pdf +2021/06/05 | 5273 | macros/latex-dev/base/cmextra.ins +2021/06/05 | 526312 | macros/latex-dev/base/ltnews31.pdf +2021/06/05 | 52595 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma +2021/06/05 | 52578 | macros/latex-dev/base/lb2.err +2021/06/05 | 52542 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/06/05 | 5246 | macros/latex-dev/base/ltnews01.tex +2021/06/05 | 52438 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/06/05 | 52399 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/06/05 | 522413 | macros/latex-dev/base/ltnews33.pdf +2021/06/05 | 5211 | macros/latex-dev/required/tools/tools-overview.tex +2021/06/05 | 5200 | macros/latex-dev/base/ltnews03.tex +2021/06/05 | 51741 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/06/05 | 51737 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma +2021/06/05 | 51670 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma +2021/06/05 | 516568 | macros/latex-dev/required/tools/array.pdf +2021/06/05 | 516238 | macros/latex-dev/required/tools/multicol.pdf +2021/06/05 | 51456 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/06/05 | 51302 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma +2021/06/05 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/06/05 | 512668 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/06/05 | 511967 | systems/win32/miktex/tm/packages/fontawesome.tar.lzma +2021/06/05 | 511855 | macros/latex-dev/base/ltnews30.pdf +2021/06/05 | 51118 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/06/05 | 510964 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/06/05 | 51089 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/06/05 | 51085 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/06/05 | 51072 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma +2021/06/05 | 509727 | systems/win32/miktex/doc/miktex.pdf +2021/06/05 | 508231 | macros/latex-dev/required/amsmath/amsldoc.pdf +2021/06/05 | 50810 | macros/latex-dev/required/graphics/drivers.dtx +2021/06/05 | 5041 | macros/latex-dev/base/latexsym.ins +2021/06/05 | 503401 | macros/latex-dev/base/docstrip.pdf +2021/06/05 | 50274 | macros/latex/contrib/hyperref/hluatex.dtx +2021/06/05 | 50031 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/06/05 | 50024 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma +2021/06/05 | 4964 | macros/latex-dev/required/tools/fileerr.dtx +2021/06/05 | 4950 | macros/latex-dev/base/lthyphen.dtx +2021/06/05 | 493957 | macros/latex-dev/base/fntguide.pdf +2021/06/05 | 4882 | systems/win32/miktex/tm/packages/miktex-config-2.9.tar.lzma +2021/06/05 | 48746 | macros/latex-dev/base/ltpara.dtx +2021/06/05 | 483594 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma +2021/06/05 | 4830593 | macros/latex/contrib/bjfuthesis/example/thesis.pdf +2021/06/05 | 482836 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/06/05 | 48239 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/06/05 | 48226 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma +2021/06/05 | 479593 | macros/latex-dev/base/ltcmdhooks-doc.pdf +2021/06/05 | 47901 | macros/latex-dev/base/lttab.dtx +2021/06/05 | 477535 | macros/latex/contrib/hyperref/doc/hyperref-doc.html +2021/06/05 | 476942 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma +2021/06/05 | 476898 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/06/05 | 4762 | macros/latex-dev/base/ltlength.dtx +2021/06/05 | 474 | macros/latex-dev/required/firstaid/README.md +2021/06/05 | 470 | macros/latex/contrib/bmstu-iu8/README.md +2021/06/05 | 46878 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/06/05 | 468043 | macros/latex-dev/base/latexchanges.pdf +2021/06/05 | 467521 | systems/win32/miktex/tm/packages/todonotes.tar.lzma +2021/06/05 | 46724 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/06/05 | 46493 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/06/05 | 462567 | macros/latex/contrib/nicematrix/nicematrix-french.pdf +2021/06/05 | 461825 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/06/05 | 461709 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma +2021/06/05 | 45952 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma +2021/06/05 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/06/05 | 45838 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma +2021/06/05 | 454808 | macros/latex-dev/base/ltnews29.pdf +2021/06/05 | 454662 | macros/latex-dev/required/amsmath/testmath.pdf +2021/06/05 | 45374 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/06/05 | 45317 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/06/05 | 45245 | macros/latex-dev/base/ltspace.dtx +2021/06/05 | 4479 | macros/latex/contrib/hyperref/README.md +2021/06/05 | 44724 | macros/latex-dev/base/ltfinal.dtx +2021/06/05 | 44612 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/06/05 | 44603 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma +2021/06/05 | 44409 | macros/latex-dev/base/latexrelease.dtx +2021/06/05 | 4390 | macros/latex-dev/base/ec.ins +2021/06/05 | 43867 | macros/latex-dev/base/ltboxes.dtx +2021/06/05 | 43636 | macros/latex-dev/base/cmfonts.fdd +2021/06/05 | 43453 | macros/latex-dev/required/tools/theorem.dtx +2021/06/05 | 4341 | macros/latex-dev/required/amsmath/amsxtra.dtx +2021/06/05 | 43378 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma +2021/06/05 | 43358 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/06/05 | 4324 | macros/latex-dev/base/cmfonts.ins +2021/06/05 | 430996 | macros/latex-dev/base/usrguide.pdf +2021/06/05 | 43060 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/06/05 | 4303 | macros/latex-dev/base/ltalloc.dtx +2021/06/05 | 43008 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma +2021/06/05 | 42990 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 42981 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/06/05 | 42886 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/06/05 | 42840 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma +2021/06/05 | 42729 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/06/05 | 42708 | macros/latex-dev/base/changes.old.txt +2021/06/05 | 42694 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/06/05 | 426537 | macros/latex/contrib/tabularray/tabularray.pdf +2021/06/05 | 426168 | macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf +2021/06/05 | 4254 | macros/latex-dev/base/newdc.ins +2021/06/05 | 4248289 | macros/latex/contrib/profcollege.zip +2021/06/05 | 42373 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/06/05 | 42355 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma +2021/06/05 | 422 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty +2021/06/05 | 4221 | macros/latex-dev/base/docstrip.ins +2021/06/05 | 4219 | macros/latex-dev/base/latex209.ins +2021/06/05 | 41831 | macros/latex-dev/base/doc-v3beta.sty +2021/06/05 | 417985 | macros/latex/contrib/tabularray.zip +2021/06/05 | 4170 | macros/latex-dev/base/ltnews19.tex +2021/06/05 | 41189 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/06/05 | 41157 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma +2021/06/05 | 4113 | macros/latex-dev/required/graphics/epsfig.dtx +2021/06/05 | 40970 | macros/latex-dev/base/ltcmdhooks.dtx +2021/06/05 | 4093730 | install/macros/latex/contrib/hyperref.tds.zip +2021/06/05 | 4087 | macros/latex-dev/base/classes.ins +2021/06/05 | 4079 | macros/latex-dev/base/lablst.tex +2021/06/05 | 40795 | macros/latex-dev/base/latexchanges.tex +2021/06/05 | 4073 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty +2021/06/05 | 40343 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/06/05 | 402779 | macros/latex-dev/base/clsguide.pdf +2021/06/05 | 398817 | macros/latex-dev/required/amsmath/amsmath.pdf +2021/06/05 | 39781 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma +2021/06/05 | 39701 | macros/latex-dev/required/tools/ftnright.dtx +2021/06/05 | 3960 | macros/latex-dev/base/olddc.ins +2021/06/05 | 39464 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma +2021/06/05 | 39431 | macros/latex-dev/base/ltmath.dtx +2021/06/05 | 3937 | macros/latex-dev/required/graphics/lscape.dtx +2021/06/05 | 392695 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/06/05 | 392536 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma +2021/06/05 | 3910214 | macros/latex/contrib/hyperref.zip +2021/06/05 | 39019 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/06/05 | 387987 | macros/latex-dev/base/ltnews28.pdf +2021/06/05 | 38735 | macros/latex-dev/base/latex209.dtx +2021/06/05 | 3854 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty +2021/06/05 | 383483 | macros/latex-dev/required/tools/varioref.pdf +2021/06/05 | 382541 | macros/latex-dev/required/tools/longtable.pdf +2021/06/05 | 38171 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/05 | 38153 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/05 | 38031 | macros/latex-dev/base/ltnews18.pdf +2021/06/05 | 379735 | macros/latex-dev/base/ltnews26.pdf +2021/06/05 | 3793 | macros/latex/contrib/bjfuthesis/example/contents/abstract.tex +2021/06/05 | 37864 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/06/05 | 37843 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma +2021/06/05 | 3781 | macros/latex-dev/base/tulm.ins +2021/06/05 | 376392 | macros/latex-dev/base/changes.txt +2021/06/05 | 374051 | macros/latex-dev/base/slides.pdf +2021/06/05 | 37363 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/06/05 | 373376 | systems/win32/miktex/tm/packages/aiaa__source.tar.lzma +2021/06/05 | 3730 | macros/latex-dev/base/ltlogos.dtx +2021/06/05 | 37294 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma +2021/06/05 | 37231 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma +2021/06/05 | 37229 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/06/05 | 37089 | macros/latex-dev/required/graphics/grfguide.tex +2021/06/05 | 370414 | macros/latex-dev/required/tools/calc.pdf +2021/06/05 | 369 | macros/latex-dev/required/amsmath/manifest.txt +2021/06/05 | 369903 | macros/latex-dev/required/tools/ftnright.pdf +2021/06/05 | 36605 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/06/05 | 36580 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma +2021/06/05 | 361715 | macros/latex-dev/base/utf8ienc.pdf +2021/06/05 | 36157 | macros/latex-dev/base/ltlists.dtx +2021/06/05 | 360596 | systems/win32/miktex/tm/packages/easybook.tar.lzma +2021/06/05 | 35880 | macros/latex-dev/required/tools/tabularx.dtx +2021/06/05 | 35699 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/06/05 | 3560 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty +2021/06/05 | 35332 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma +2021/06/05 | 35302 | macros/latex-dev/base/ltdirchk.dtx +2021/06/05 | 3514 | macros/latex-dev/base/README.md +2021/06/05 | 351417 | macros/latex-dev/required/tools/theorem.pdf +2021/06/05 | 35069 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/06/05 | 35053 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma +2021/06/05 | 347819 | macros/latex/contrib/easybook.zip +2021/06/05 | 34658 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/06/05 | 34650 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/06/05 | 345324 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/06/05 | 344921 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma +2021/06/05 | 3445146 | systems/win32/miktex/tm/packages/acrotex.tar.lzma +2021/06/05 | 34390780 | install/macros/latex-dev/latex-base-dev.tds.zip +2021/06/05 | 3434 | macros/latex-dev/base/makeindx.ins +2021/06/05 | 3401 | macros/latex-dev/base/proc.ins +2021/06/05 | 33916 | macros/latex-dev/required/graphics/changes.txt +2021/06/05 | 33912 | macros/latex-dev/base/ltnews33.tex +2021/06/05 | 33900390 | macros/latex-dev/base.zip +2021/06/05 | 33863 | macros/latex-dev/required/tools/varioref-2016-02-16.sty +2021/06/05 | 3372 | macros/latex-dev/base/letter.ins +2021/06/05 | 3367 | macros/latex-dev/base/ltoutenc.ins +2021/06/05 | 33621 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/06/05 | 33609 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/06/05 | 33602 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/06/05 | 33420 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma +2021/06/05 | 3338 | macros/latex-dev/base/exscale.ins +2021/06/05 | 33256 | macros/latex-dev/base/ltnews32.tex +2021/06/05 | 331424 | macros/latex-dev/required/tools/bm.pdf +2021/06/05 | 330815 | macros/latex-dev/required/tools/verbatim.pdf +2021/06/05 | 330437 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/06/05 | 330373 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma +2021/06/05 | 330071 | macros/latex-dev/required/graphics/grfguide.pdf +2021/06/05 | 328949 | macros/latex-dev/base/letter.pdf +2021/06/05 | 3284 | macros/latex-dev/required/tools/manifest.txt +2021/06/05 | 3282 | macros/latex-dev/base/bugs.txt +2021/06/05 | 32648 | macros/latex-dev/base/ltsect.dtx +2021/06/05 | 32627 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma +2021/06/05 | 32596 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/06/05 | 325299 | macros/latex-dev/base/usrguide3.pdf +2021/06/05 | 325289 | macros/latex-dev/base/ltluatex.pdf +2021/06/05 | 321706 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/06/05 | 321644 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/06/05 | 32034 | macros/latex-dev/required/tools/layout.dtx +2021/06/05 | 318399 | macros/latex-dev/base/ltnews22.pdf +2021/06/05 | 3181 | macros/latex-dev/base/unpack.ins +2021/06/05 | 318168 | macros/latex-dev/base/inputenc.pdf +2021/06/05 | 31659 | macros/latex-dev/required/graphics/color.dtx +2021/06/05 | 31586 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/06/05 | 31570 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/06/05 | 31548 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/06/05 | 315305 | macros/latex/contrib/easybook/easybook.pdf +2021/06/05 | 31496 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma +2021/06/05 | 31327 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/06/05 | 31326 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma +2021/06/05 | 31207 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/06/05 | 31181 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma +2021/06/05 | 311356 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/06/05 | 311068 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma +2021/06/05 | 310676 | macros/latex-dev/required/graphics/graphics.pdf +2021/06/05 | 30808 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/06/05 | 30782 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/06/05 | 30456 | macros/latex-dev/base/ltnews31.tex +2021/06/05 | 30185 | macros/latex-dev/required/graphics/graphicx.dtx +2021/06/05 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/06/05 | 30023 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/06/05 | 2994 | macros/latex-dev/required/graphics/graphics-drivers.ins +2021/06/05 | 29923 | macros/latex-dev/base/usrguide3.tex +2021/06/05 | 298609 | macros/latex/contrib/hyperref/doc/hyperref-doc.pdf +2021/06/05 | 2985 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty +2021/06/05 | 29836 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/06/05 | 29819 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma +2021/06/05 | 29712 | macros/latex-dev/required/tools/multicol-2017-04-11.sty +2021/06/05 | 297070 | macros/latex-dev/base/ltnews20.pdf +2021/06/05 | 29657 | macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.tex +2021/06/05 | 2963 | macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex +2021/06/05 | 29569 | macros/latex-dev/required/tools/showkeys.dtx +2021/06/05 | 295391 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/06/05 | 295146 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/06/05 | 292317 | macros/latex-dev/base/cmfonts.pdf +2021/06/05 | 29191 | macros/latex-dev/base/ltfntcmd.dtx +2021/06/05 | 29067 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma +2021/06/05 | 290495 | macros/latex-dev/base/latexrelease.pdf +2021/06/05 | 29046 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/06/05 | 2896 | macros/latex-dev/base/syntonly.ins +2021/06/05 | 2893 | macros/latex-dev/base/nfssfont.ins +2021/06/05 | 2892 | macros/latex-dev/base/graphpap.ins +2021/06/05 | 2892 | macros/latex-dev/base/fix-cm.ins +2021/06/05 | 289245 | macros/latex-dev/base/tlc2.pdf +2021/06/05 | 2890 | macros/latex-dev/base/alltt.ins +2021/06/05 | 2888 | macros/latex-dev/base/ifthen.ins +2021/06/05 | 287672 | macros/latex-dev/base/fix-cm.pdf +2021/06/05 | 287125 | macros/latex-dev/base/ltnews23.pdf +2021/06/05 | 286309 | macros/latex-dev/required/graphics/drivers.pdf +2021/06/05 | 284041 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/06/05 | 283930 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma +2021/06/05 | 28285 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/06/05 | 281965 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/06/05 | 281897 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/06/05 | 28162 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/06/05 | 28128 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/06/05 | 28108 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma +2021/06/05 | 2794574 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma +2021/06/05 | 2793681 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/06/05 | 278041 | macros/latex-dev/required/tools/tabularx.pdf +2021/06/05 | 27711 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/06/05 | 27700 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma +2021/06/05 | 2763722 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip +2021/06/05 | 2740 | macros/latex-dev/required/firstaid/firstaid.ins +2021/06/05 | 2738 | macros/latex-dev/base/tex2.txt +2021/06/05 | 27344 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma +2021/06/05 | 2733 | macros/latex-dev/base/ltpageno.dtx +2021/06/05 | 2733515 | macros/latex-dev/required/amsmath.zip +2021/06/05 | 2726 | macros/latex-dev/required/amsmath/README.md +2021/06/05 | 27266 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/06/05 | 27259 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/06/05 | 27234 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma +2021/06/05 | 27186 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/06/05 | 27165 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma +2021/06/05 | 27122 | macros/latex-dev/base/ltxcheck.tex +2021/06/05 | 2705 | macros/latex-dev/base/idx.tex +2021/06/05 | 27046882 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma +2021/06/05 | 269292 | macros/latex-dev/required/graphics/rotating.pdf +2021/06/05 | 267761 | macros/latex-dev/required/tools/layout.pdf +2021/06/05 | 2670406 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma +2021/06/05 | 2670400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/06/05 | 2666197 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip +2021/06/05 | 265211 | macros/latex-dev/base/ltnews24.pdf +2021/06/05 | 2632400 | macros/latex-dev/required/graphics.zip +2021/06/05 | 262049 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma +2021/06/05 | 261911 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/06/05 | 260624 | macros/latex-dev/required/tools/showkeys.pdf +2021/06/05 | 258870 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma +2021/06/05 | 258840 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/06/05 | 2582857 | systems/win32/miktex/tm/packages/siunitx.tar.lzma +2021/06/05 | 2580 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty +2021/06/05 | 2576 | macros/latex-dev/required/tools/multicol.ins +2021/06/05 | 256897 | macros/latex-dev/required/tools/xspace.pdf +2021/06/05 | 2538 | macros/latex-dev/required/tools/longtable.ins +2021/06/05 | 2538 | macros/latex-dev/required/tools/afterpage.ins +2021/06/05 | 2535 | macros/latex-dev/required/tools/tabularx.ins +2021/06/05 | 2531 | macros/latex-dev/required/tools/varioref.ins +2021/06/05 | 25297 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma +2021/06/05 | 25267 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/06/05 | 2524 | macros/latex-dev/required/tools/bm.ins +2021/06/05 | 252432 | macros/latex-dev/base/ltnews27.pdf +2021/06/05 | 252154 | macros/latex-dev/base/lb2.pdf +2021/06/05 | 25151 | macros/latex-dev/required/tools/trace.dtx +2021/06/05 | 250394 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/06/05 | 250208 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma +2021/06/05 | 25007 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/06/05 | 24988 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma +2021/06/05 | 24987 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/06/05 | 24964 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/06/05 | 247910 | macros/latex-dev/required/graphics/graphicx.pdf +2021/06/05 | 245818 | macros/latex-dev/base/ltnews19.pdf +2021/06/05 | 244 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty +2021/06/05 | 244869 | macros/latex-dev/base/ltnews21.pdf +2021/06/05 | 24441131 | systems/win32/miktex/tm/packages/pst-geo__source.tar.lzma +2021/06/05 | 243601 | macros/latex-dev/base/modguide.pdf +2021/06/05 | 243452 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma +2021/06/05 | 243392 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/06/05 | 242886 | macros/latex-dev/base/cfgguide.pdf +2021/06/05 | 2427494 | macros/latex/contrib/hyperref/doc/hyperref.pdf +2021/06/05 | 24015 | macros/latex-dev/base/lterror.dtx +2021/06/05 | 239681 | macros/latex-dev/base/cyrguide.pdf +2021/06/05 | 239654 | macros/latex-dev/required/graphics/keyval.pdf +2021/06/05 | 239626 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma +2021/06/05 | 239581 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/06/05 | 23881 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/06/05 | 23870 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma +2021/06/05 | 238577 | macros/latex-dev/base/ltxdoc.pdf +2021/06/05 | 23651 | macros/latex-dev/base/ltnews30.tex +2021/06/05 | 23521 | macros/latex-dev/base/fix-cm.dtx +2021/06/05 | 234008 | macros/latex-dev/base/slifonts.pdf +2021/06/05 | 233995 | macros/latex-dev/base/proc.pdf +2021/06/05 | 23386 | macros/latex-dev/base/lppl.tex +2021/06/05 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/06/05 | 233623 | install/macros/latex-dev/required/latex-firstaid-dev.tds.zip +2021/06/05 | 23339 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma +2021/06/05 | 229713 | macros/latex-dev/required/tools/trace.pdf +2021/06/05 | 229696 | macros/latex/contrib/suftesi/suftesi.dtx +2021/06/05 | 228890 | macros/latex-dev/required/firstaid.zip +2021/06/05 | 228673 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf +2021/06/05 | 228654 | macros/latex/required/firstaid.zip +2021/06/05 | 22749 | macros/latex/contrib/tabularray/tabularray.tex +2021/06/05 | 22676 | macros/latex-dev/base/ltcounts.dtx +2021/06/05 | 22605 | macros/latex-dev/required/amsmath/diffs-m.txt +2021/06/05 | 225983 | macros/latex-dev/required/amsmath/amsmath.dtx +2021/06/05 | 224 | macros/latex/contrib/bjfuthesis/example/thesis.tex +2021/06/05 | 22456 | macros/latex-dev/base/cfgguide.tex +2021/06/05 | 22350 | macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx +2021/06/05 | 2232 | macros/latex/contrib/eq-pin2corr/examples/get-hash-string.tex +2021/06/05 | 2225 | macros/latex-dev/required/tools/indentfirst.dtx +2021/06/05 | 220689 | macros/latex-dev/required/tools/dcolumn.pdf +2021/06/05 | 220417 | macros/latex-dev/base/ifthen.pdf +2021/06/05 | 22024 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/06/05 | 22013 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma +2021/06/05 | 219354 | macros/latex-dev/base/ltx3info.pdf +2021/06/05 | 218782 | macros/latex-dev/base/nfssfont.pdf +2021/06/05 | 215693 | macros/latex-dev/required/amsmath/amstext.pdf +2021/06/05 | 215355 | macros/latex-dev/required/tools/enumerate.pdf +2021/06/05 | 215197 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/06/05 | 215174 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma +2021/06/05 | 215091 | macros/latex-dev/base/lgc2.pdf +2021/06/05 | 215002 | macros/latex-dev/required/graphics/color.pdf +2021/06/05 | 214921 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma +2021/06/05 | 214710 | macros/latex-dev/base/alltt.pdf +2021/06/05 | 2146 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls +2021/06/05 | 213 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty +2021/06/05 | 212307 | macros/latex-dev/base/exscale.pdf +2021/06/05 | 21178 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/06/05 | 21139 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma +2021/06/05 | 21072 | macros/latex-dev/required/graphics/rotating.dtx +2021/06/05 | 210239 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/06/05 | 210221 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/06/05 | 2092 | macros/latex-dev/required/graphics/README.md +2021/06/05 | 208783 | macros/latex/contrib/bjfuthesis/example/cover.pdf +2021/06/05 | 208359 | macros/latex-dev/base/latexsym.pdf +2021/06/05 | 208114 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma +2021/06/05 | 207849 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/06/05 | 207299 | macros/latex-dev/required/graphics/trig.pdf +2021/06/05 | 2065 | macros/latex-dev/required/firstaid/changes.txt +2021/06/05 | 206392 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/06/05 | 206343 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/06/05 | 205344 | macros/latex-dev/required/tools/afterpage.pdf +2021/06/05 | 205162 | macros/latex-dev/base/ltnews25.pdf +2021/06/05 | 20486 | macros/latex-dev/base/lgc2.err +2021/06/05 | 20469 | macros/latex-dev/base/ltnews.cls +2021/06/05 | 204063 | macros/latex-dev/base/doc.dtx +2021/06/05 | 202834 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma +2021/06/05 | 202702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/06/05 | 20123 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/06/05 | 201172 | macros/latex/contrib/bmstu-iu8.zip +2021/06/05 | 20105 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma +2021/06/05 | 2005871 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/06/05 | 1997952 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma +2021/06/05 | 199664 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma +2021/06/05 | 199638 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/06/05 | 198815 | macros/latex/contrib/hyperref/doc/backref.pdf +2021/06/05 | 198647 | macros/latex-dev/required/tools/delarray.pdf +2021/06/05 | 198303 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma +2021/06/05 | 198226 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/06/05 | 197409 | macros/latex-dev/base/syntonly.pdf +2021/06/05 | 197090 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/06/05 | 196788 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma +2021/06/05 | 195752 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/06/05 | 195600 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma +2021/06/05 | 195211 | macros/latex-dev/required/tools/fileerr.pdf +2021/06/05 | 194079 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/06/05 | 193960 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma +2021/06/05 | 1937 | macros/latex-dev/base/minimal.cls +2021/06/05 | 19064 | macros/latex-dev/base/ltxdoc.dtx +2021/06/05 | 19040 | macros/latex-dev/base/lppl.txt +2021/06/05 | 189538 | macros/latex-dev/required/tools/hhline.pdf +2021/06/05 | 18940 | macros/latex-dev/base/ltnews29.tex +2021/06/05 | 188802 | macros/latex/contrib/hyperref/doc/nameref.pdf +2021/06/05 | 187818 | macros/latex-dev/base/lthooks.dtx +2021/06/05 | 1874676 | macros/latex/contrib/nicematrix.zip +2021/06/05 | 1846 | macros/latex/contrib/eq-pin2corr/eq-pin2corr.ins +2021/06/05 | 18404 | macros/latex-dev/base/nfssfont.dtx +2021/06/05 | 183532 | macros/latex-dev/required/tools/shellesc.pdf +2021/06/05 | 18303 | macros/latex-dev/base/ifthen.dtx +2021/06/05 | 18299 | macros/latex-dev/base/ltx3info.tex +2021/06/05 | 182354 | macros/latex-dev/required/tools/multicol.dtx +2021/06/05 | 18168 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/06/05 | 18159 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/06/05 | 180 | macros/latex-dev/base/ltfilehook-doc.tex +2021/06/05 | 180187 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/06/05 | 180175 | systems/win32/miktex/tm/packages/babel.tar.lzma +2021/06/05 | 180079 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/06/05 | 179 | macros/latex-dev/base/ltshipout-doc.tex +2021/06/05 | 179989 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/06/05 | 179827 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma +2021/06/05 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/06/05 | 17963 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/06/05 | 17959 | macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx +2021/06/05 | 178672 | macros/latex-dev/required/amsmath/amscd.pdf +2021/06/05 | 17861 | macros/latex-dev/required/tools/xspace.dtx +2021/06/05 | 178433 | language/japanese/pxbase.zip +2021/06/05 | 177 | macros/latex-dev/base/lthooks-doc.tex +2021/06/05 | 177 | macros/latex-dev/base/ltcmdhooks-doc.tex +2021/06/05 | 177595 | macros/latex-dev/required/tools/xr.pdf +2021/06/05 | 177037 | macros/latex/contrib/bmstu-iu8/bmstu-example.pdf +2021/06/05 | 176740 | macros/latex-dev/required/amsmath/amsgen.pdf +2021/06/05 | 175645 | macros/latex-dev/base/ltoutput.dtx +2021/06/05 | 175169 | macros/latex-dev/required/tools/somedefs.pdf +2021/06/05 | 17495 | macros/latex-dev/base/cyrguide.tex +2021/06/05 | 174488 | macros/latex-dev/base/ltnews05.pdf +2021/06/05 | 173 | macros/latex-dev/base/ltpara-doc.tex +2021/06/05 | 173746 | macros/latex-dev/required/amsmath/amsbsy.pdf +2021/06/05 | 173682 | macros/latex-dev/base/makeindx.pdf +2021/06/05 | 173323 | macros/latex-dev/base/ltnews13.pdf +2021/06/05 | 172278 | macros/latex-dev/base/tlc2.err +2021/06/05 | 172230 | macros/latex-dev/required/graphics/rotex.pdf +2021/06/05 | 1719 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty +2021/06/05 | 1708076 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/06/05 | 170529 | macros/latex-dev/base/tulm.pdf +2021/06/05 | 170214 | macros/latex-dev/base/docstrip.dtx +2021/06/05 | 1694 | macros/latex-dev/base/small2e.tex +2021/06/05 | 1694 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty +2021/06/05 | 169323 | macros/latex-dev/base/graphpap.pdf +2021/06/05 | 169100 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/06/05 | 169043 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma +2021/06/05 | 1687549 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma +2021/06/05 | 167686 | macros/latex-dev/required/graphics/epsfig.pdf +2021/06/05 | 167628 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma +2021/06/05 | 1670 | macros/latex/contrib/suftesi/README +2021/06/05 | 1666 | macros/latex-dev/required/tools/README.md +2021/06/05 | 1666110 | systems/win32/miktex/tm/packages/platex.tar.lzma +2021/06/05 | 166368 | macros/latex-dev/base/ltnews17.pdf +2021/06/05 | 16447 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/06/05 | 16419 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma +2021/06/05 | 163799 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma +2021/06/05 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/06/05 | 1635 | macros/latex/contrib/bjfuthesis/README.md +2021/06/05 | 163584 | macros/latex-dev/required/graphics/lscape.pdf +2021/06/05 | 16341 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/06/05 | 16326 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma +2021/06/05 | 16233 | macros/latex-dev/base/modguide.tex +2021/06/05 | 161518 | macros/latex-dev/base/ltnews01.pdf +2021/06/05 | 1614 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty +2021/06/05 | 161405 | macros/latex-dev/base/ltnews14.pdf +2021/06/05 | 16105 | macros/latex-dev/base/ltbibl.dtx +2021/06/05 | 160521 | macros/latex-dev/base/manual.pdf +2021/06/05 | 159565 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/06/05 | 159544 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/06/05 | 159313 | macros/latex-dev/base/ltnews10.pdf +2021/06/05 | 158209 | macros/latex/contrib/tabularray/tabularray.sty +2021/06/05 | 1581691 | install/macros/latex/contrib/suftesi.tds.zip +2021/06/05 | 157803 | macros/latex-dev/required/tools/indentfirst.pdf +2021/06/05 | 15737 | macros/latex-dev/required/graphics/cat.eps +2021/06/05 | 15699 | macros/latex-dev/base/slifonts.fdd +2021/06/05 | 1564763 | macros/latex/contrib/suftesi.zip +2021/06/05 | 15625 | macros/latex-dev/base/ltxref.dtx +2021/06/05 | 156210 | macros/latex-dev/base/classes.dtx +2021/06/05 | 155055 | macros/latex-dev/base/ltnews08.pdf +2021/06/05 | 154807 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma +2021/06/05 | 154624 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/06/05 | 15429 | macros/latex-dev/required/graphics/graphics-2017-06-25.sty +2021/06/05 | 154034 | macros/latex-dev/required/tools/fontsmpl.pdf +2021/06/05 | 152685 | macros/latex/contrib/hyperref/doc/hyperref-doc.tex +2021/06/05 | 152526 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/06/05 | 152164 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/06/05 | 1520 | macros/latex/contrib/bmstu-iu8/bmstu-example.tex +2021/06/05 | 15104 | macros/latex-dev/base/source2e.tex +2021/06/05 | 1505 | macros/latex-dev/required/amsmath/amsbsy.ins +2021/06/05 | 1504 | macros/latex-dev/required/amsmath/amsmath.ins +2021/06/05 | 150493 | macros/latex-dev/base/ltnews03.pdf +2021/06/05 | 150466 | macros/latex-dev/base/ltnews02.pdf +2021/06/05 | 1492 | macros/latex-dev/required/amsmath/amsxtra.ins +2021/06/05 | 1492 | macros/latex-dev/required/amsmath/amstext.ins +2021/06/05 | 149221 | macros/latex-dev/base/ltoutenc.dtx +2021/06/05 | 1490 | macros/latex-dev/required/amsmath/amsopn.ins +2021/06/05 | 14891 | macros/latex-dev/base/ltnews28.tex +2021/06/05 | 1487 | macros/latex-dev/required/amsmath/amscd.ins +2021/06/05 | 1484 | macros/latex-dev/required/amsmath/amsgen.ins +2021/06/05 | 147719 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma +2021/06/05 | 147714 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/06/05 | 147587 | macros/latex-dev/base/ltnews12.pdf +2021/06/05 | 147408 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/06/05 | 147334 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma +2021/06/05 | 146534 | macros/latex-dev/required/tools/rawfonts.pdf +2021/06/05 | 146533 | macros/latex-dev/base/ltnews16.pdf +2021/06/05 | 146200 | macros/latex-dev/base/webcomp.pdf +2021/06/05 | 14575 | macros/latex-dev/required/graphics/rotex.tex +2021/06/05 | 145610 | macros/latex-dev/required/amsmath/technote.pdf +2021/06/05 | 14515 | macros/latex/contrib/hyperref/doc/hyperref-doc.css +2021/06/05 | 14421 | macros/latex-dev/base/lppl-1-2.txt +2021/06/05 | 1437 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty +2021/06/05 | 143686 | macros/latex-dev/base/ltnews04.pdf +2021/06/05 | 14345 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/06/05 | 14341 | macros/latex-dev/base/lppl-1-1.txt +2021/06/05 | 14325 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma +2021/06/05 | 142909 | macros/latex-dev/base/ltnews06.pdf +2021/06/05 | 1429092 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/06/05 | 142843 | macros/latex-dev/base/ltcmd.dtx +2021/06/05 | 1428172 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma +2021/06/05 | 1423058 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/06/05 | 1422445 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/06/05 | 141525 | macros/latex/contrib/eq-pin2corr/examples/qz-p2c.pdf +2021/06/05 | 14077 | macros/latex-dev/required/tools/afterpage.dtx +2021/06/05 | 13979 | macros/latex/contrib/bjfuthesis/example/bibliography.bib +2021/06/05 | 13920 | macros/latex-dev/base/ltexpl.dtx +2021/06/05 | 13901 | macros/latex-dev/base/ltvers.dtx +2021/06/05 | 138991 | macros/latex-dev/required/amsmath/amsopn.pdf +2021/06/05 | 13880 | macros/latex-dev/required/graphics/keyval.dtx +2021/06/05 | 138044 | macros/latex-dev/base/ltnews07.pdf +2021/06/05 | 136576 | macros/latex-dev/base/ltclass.dtx +2021/06/05 | 136507 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/06/05 | 136254 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma +2021/06/05 | 134795 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/06/05 | 134544 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma +2021/06/05 | 13453 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma +2021/06/05 | 13447 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/06/05 | 13447 | macros/latex-dev/required/amsmath/amsgen.dtx +2021/06/05 | 1341 | macros/latex-dev/base/ltnews18.tex +2021/06/05 | 13301 | macros/latex-dev/base/proc.dtx +2021/06/05 | 132373 | macros/latex-dev/base/lppl.pdf +2021/06/05 | 131650 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma +2021/06/05 | 1316472 | macros/latex-dev/base/encguide.pdf +2021/06/05 | 1315 | macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty +2021/06/05 | 131581 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/06/05 | 13105 | macros/latex/contrib/eq-pin2corr/doc/install_jsfiles.tex +2021/06/05 | 1308120 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/06/05 | 1307281 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma +2021/06/05 | 1305091 | macros/latex/contrib/nicematrix/nicematrix.pdf +2021/06/05 | 130447 | macros/latex-dev/base/ltnews15.pdf +2021/06/05 | 1301832 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma +2021/06/05 | 1300400 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/06/05 | 12946 | macros/latex-dev/base/manual.err +2021/06/05 | 1294236 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/06/05 | 129032 | macros/latex-dev/base/ltnews09.pdf +2021/06/05 | 1285949 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma +2021/06/05 | 128428 | macros/latex/contrib/easybook/easybook.dtx +2021/06/05 | 1279 | macros/latex-dev/base/legal.txt +2021/06/05 | 127986 | macros/latex-dev/required/tools/array.dtx +2021/06/05 | 1276249 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/06/05 | 1275463 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/06/05 | 12714 | macros/latex-dev/required/tools/dcolumn.dtx +2021/06/05 | 12559 | macros/latex-dev/required/tools/array-2020-02-10.sty +2021/06/05 | 12520 | macros/latex-dev/base/testpage.tex +2021/06/05 | 124618 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/06/05 | 124440 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma +2021/06/05 | 12443 | systems/win32/miktex/tm/packages/pst-geo.tar.lzma +2021/06/05 | 12224 | macros/latex-dev/base/ltnews24.tex +2021/06/05 | 12133 | macros/latex-dev/required/tools/longtable-2020-01-07.sty +2021/06/05 | 12119 | macros/latex-dev/base/tulm.fdd +2021/06/05 | 12005 | macros/latex-dev/required/amsmath/technote.tex +2021/06/05 | 1191810 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/06/05 | 1191650 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/06/05 | 118359511 | systems/win32/miktex/tm/packages/pst-geo__doc.tar.lzma +2021/06/05 | 117737 | macros/latex/contrib/hyperref/ChangeLog.txt +2021/06/05 | 11749 | macros/latex-dev/required/tools/array-2016-10-06.sty +2021/06/05 | 117479 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/06/05 | 117382 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma +2021/06/05 | 1170758 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/06/05 | 1170060 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma +2021/06/05 | 11590 | macros/latex-dev/base/ltpage.dtx +2021/06/05 | 115598 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/06/05 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/06/05 | 115121 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/06/05 | 114211 | macros/latex-dev/required/tools/varioref.dtx +2021/06/05 | 11403 | macros/latex-dev/required/amsmath/amstext.dtx +2021/06/05 | 1128 | macros/latex-dev/required/graphics/graphics.ins +2021/06/05 | 11289 | macros/latex-dev/required/amsmath/amscd.dtx +2021/06/05 | 112815 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/06/05 | 112809 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/06/05 | 112556 | macros/latex-dev/required/amsmath/amsxtra.pdf +2021/06/05 | 112233 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma +2021/06/05 | 112166 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/06/05 | 111955 | macros/latex-dev/base/ltnews11.pdf +2021/06/05 | 11153 | macros/latex-dev/required/tools/hhline.dtx +2021/06/05 | 1110 | macros/latex/contrib/eq-pin2corr/README.md +2021/06/05 | 109 | systems/win32/miktex/setup/rpm/fedora-34.repo +2021/06/05 | 109737 | macros/latex-dev/required/amsmath/subeqn.pdf +2021/06/05 | 108988 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/06/05 | 108933 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/06/05 | 10871 | macros/latex-dev/base/manifest.txt +2021/06/05 | 10817711 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma +2021/06/05 | 10776 | macros/latex-dev/required/tools/fontsmpl.dtx +2021/06/05 | 1076850 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/06/05 | 1076117 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/06/05 | 1074372 | macros/latex-dev/base/ltnews.pdf +2021/06/05 | 10697 | macros/latex-dev/base/ltnews26.tex +2021/06/05 | 106908 | macros/latex-dev/base/inputenc.dtx +2021/06/05 | 10687 | macros/latex-dev/base/ltnews23.tex +2021/06/05 | 106859 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/06/05 | 10682 | macros/latex-dev/required/graphics/trig.dtx +2021/06/05 | 10668 | macros/latex-dev/base/ltnews22.tex +2021/06/05 | 10649 | macros/latex-dev/required/tools/enumerate.dtx +2021/06/05 | 10603 | macros/latex-dev/base/makeindx.dtx +2021/06/05 | 105 | macros/latex-dev/base/ltfilehook-code.tex +2021/06/05 | 105114 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma +2021/06/05 | 104 | macros/latex-dev/base/ltshipout-code.tex +2021/06/05 | 104675 | macros/latex-dev/required/amsmath/amsldoc.tex +2021/06/05 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex +2021/06/05 | 10375 | macros/latex-dev/base/ltfsscmp.dtx +2021/06/05 | 103518 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/06/05 | 103437 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/06/05 | 103395 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma +2021/06/05 | 103340 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma +2021/06/05 | 102 | macros/latex-dev/base/lthooks-code.tex +2021/06/05 | 1029365 | macros/latex-dev/base/lthooks-code.pdf +2021/06/05 | 101085 | macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf +2021/06/05 | 10105 | macros/latex-dev/base/webcomp.err +2021/06/05 | 1006 | macros/latex/contrib/hyperref/doc/hyperref-doc4.html +2021/06/05 | 100461 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/06/05 | 100336 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma 2021/06/04 | 990 | fonts/fontawesome5/README.md -2021/06/04 | 98266 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma 2021/06/04 | 980 | fonts/fontawesome5/tex/ufontawesomefree3.fd 2021/06/04 | 980 | fonts/fontawesome5/tex/ufontawesomefree2.fd 2021/06/04 | 980 | fonts/fontawesome5/tex/ufontawesomefree1.fd 2021/06/04 | 980 | fonts/fontawesome5/tex/ufontawesomefree0.fd -2021/06/04 | 97982 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma 2021/06/04 | 97866 | macros/latex/contrib/siunitx/siunitx-unit.dtx -2021/06/04 | 97489 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/06/04 | 971285 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma 2021/06/04 | 966920 | systems/texlive/tlnet/archive/newtx.doc.r59446.tar.xz 2021/06/04 | 964 | macros/latex/contrib/siunitx/README.md -2021/06/04 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma 2021/06/04 | 9561182 | systems/win32/miktex/tm/packages/bjfuthesis.tar.lzma -2021/06/04 | 95448 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma 2021/06/04 | 9533004 | systems/texlive/tlnet/archive/bjfuthesis.doc.r59445.tar.xz -2021/06/04 | 94773 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/06/04 | 94383 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma 2021/06/04 | 908004 | systems/texlive/tlnet/archive/tex4ht.r59459.tar.xz +2021/06/04 | 90221 | macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png 2021/06/04 | 8804 | systems/texlive/tlnet/archive/lua-typo.r59457.tar.xz 2021/06/04 | 877313 | systems/win32/miktex/tm/packages/tex4ht.tar.lzma -2021/06/04 | 8771 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/06/04 | 87677 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma 2021/06/04 | 876418 | language/japanese/platex/pldoc.pdf 2021/06/04 | 8762 | macros/latex/contrib/siunitx/siunitx-command.dtx +2021/06/04 | 8650216 | systems/win32/w32tex/uptex-w32.tar.xz 2021/06/04 | 861 | language/japanese/platex/pl209.ins 2021/06/04 | 8604 | systems/texlive/tlnet/archive/derivative.r59453.tar.xz 2021/06/04 | 8540 | macros/latex/contrib/kdpbook/images/volume-1.pdf -2021/06/04 | 842 | systems/win32/miktex/tm/packages/pr.ini -2021/06/04 | 83760 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/06/04 | 840381 | systems/win32/w32tex/ChangeLog 2021/06/04 | 8363 | language/japanese/platex/plnewsc14.tex 2021/06/04 | 825261 | systems/win32/miktex/tm/packages/uplatex.tar.lzma -2021/06/04 | 816250 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma 2021/06/04 | 8150 | macros/latex/contrib/siunitx/siunitx-symbol.dtx -2021/06/04 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma 2021/06/04 | 796388 | systems/texlive/tlnet/archive/optex.r59458.tar.xz -2021/06/04 | 78751 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma 2021/06/04 | 7818 | language/japanese/platex/plnewsc01.tex -2021/06/04 | 77942 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma 2021/06/04 | 77894 | macros/latex/contrib/todonotes/todonotes.dtx 2021/06/04 | 776324 | systems/texlive/tlnet/archive/uplatex.doc.r59450.tar.xz -2021/06/04 | 7716 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/06/04 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma 2021/06/04 | 762 | macros/latex/contrib/todonotes/examples/externalize.tex 2021/06/04 | 7614 | language/japanese/platex/pl209.dtx -2021/06/04 | 75962 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/06/04 | 748787 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma 2021/06/04 | 745088 | fonts/fontawesome5/doc/fontawesome5.pdf 2021/06/04 | 7431 | fonts/fontawesome5/tex/fontawesome5.sty -2021/06/04 | 74209 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/06/04 | 73139 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/06/04 | 72923 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma 2021/06/04 | 7256 | macros/latex/contrib/kdpbook/images/signature.pdf -2021/06/04 | 72176 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/06/04 | 71706 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/06/04 | 718715 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png +2021/06/04 | 717008 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png 2021/06/04 | 7156 | macros/latex/contrib/kdpbook/images/volume-3.pdf 2021/06/04 | 71447 | language/japanese/platex/platex.dtx -2021/06/04 | 70487 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma 2021/06/04 | 6995 | language/japanese/platex/jltxdoc.dtx -2021/06/04 | 69897 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma 2021/06/04 | 697 | language/japanese/platex/platexrelease.ins 2021/06/04 | 6812418 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/06/04 | 680953 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/06/04 | 67972 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/06/04 | 67885 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/06/04 | 67610 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/06/04 | 67373 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/06/04 | 67262 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/06/04 | 6797948 | systems/win32/w32tex/ptex-ng-w32.tar.xz 2021/06/04 | 6723 | macros/latex/contrib/kdpbook/images/volume-4.pdf 2021/06/04 | 6717 | language/japanese/platex/plnewsc06.tex 2021/06/04 | 668 | macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.tex 2021/06/04 | 66197 | macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdf 2021/06/04 | 6562387 | systems/win32/miktex/tm/packages/newtx.tar.lzma -2021/06/04 | 65467 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma 2021/06/04 | 6504 | macros/latex/contrib/kdpbook/images/volume-2.pdf -2021/06/04 | 64401 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/06/04 | 64033 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/06/04 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma 2021/06/04 | 6351 | macros/latex/contrib/acrotex/README.md 2021/06/04 | 634770 | macros/latex/contrib/siunitx/siunitx.pdf -2021/06/04 | 629822 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/06/04 | 62715 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/06/04 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/06/04 | 621338 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma 2021/06/04 | 6088 | systems/texlive/tlnet/archive/ocgx2.doc.r59455.tar.xz 2021/06/04 | 6069 | language/japanese/platex/plnews06.tex -2021/06/04 | 60618 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/06/04 | 59698 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/06/04 | 596060 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/06/04 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/06/04 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma 2021/06/04 | 58496 | fonts/fontawesome5/type1/FontAwesome5Free-Regular.pfb -2021/06/04 | 577473 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/06/04 | 576828 | systems/win32/miktex/tm/packages/files.csv.lzma -2021/06/04 | 57634 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/06/04 | 57112 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/06/04 | 56814 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/06/04 | 56755 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/06/04 | 570771 | macros/latex/contrib/profcollege/latex/ProfCollege.sty 2021/06/04 | 565 | language/japanese/platex/pldocs.ins -2021/06/04 | 565936 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/06/04 | 56472 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/06/04 | 56341 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/06/04 | 56314 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/06/04 | 56288 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma 2021/06/04 | 5604400 | systems/texlive/tlnet/archive/newtx.r59446.tar.xz -2021/06/04 | 55523 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma 2021/06/04 | 55124 | fonts/fontawesome5/opentype/FontAwesome5Free-Regular-400.otf 2021/06/04 | 5492 | language/japanese/platex/Makefile +2021/06/04 | 545702 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png 2021/06/04 | 54376 | language/japanese/platex/plext.dtx 2021/06/04 | 543494 | macros/latex/contrib/acrotex/doc/aeb_man.tex -2021/06/04 | 532271 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/06/04 | 52879420 | systems/win32/w32tex/latex-dev.tar.xz 2021/06/04 | 5272 | fonts/fontawesome5/tex/fontawesome5-utex-helper.sty -2021/06/04 | 52543 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/06/04 | 52439 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/06/04 | 51741 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma 2021/06/04 | 516 | systems/texlive/tlnet/archive/dtk-bibliography.r59447.tar.xz 2021/06/04 | 5163 | language/japanese/platex/plnewsc04.tex -2021/06/04 | 51457 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma 2021/06/04 | 512 | systems/texlive/tlnet/archive/tex-nutshell.r59448.tar.xz -2021/06/04 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/06/04 | 512666 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/06/04 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/06/04 | 51089 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/06/04 | 508974 | macros/latex/contrib/bjfuthesis/example/figures/general-details.png 2021/06/04 | 50744 | systems/texlive/tlnet/archive/uplatex.source.r59450.tar.xz 2021/06/04 | 503116 | systems/win32/miktex/tm/packages/expkv.tar.lzma -2021/06/04 | 50030 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/06/04 | 50065400 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/06/04 | 497831 | macros/latex/contrib/acrotex/examples/webeqtst.pdf -2021/06/04 | 4903 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma 2021/06/04 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/06/04 | 487115 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png 2021/06/04 | 48536 | macros/latex/contrib/siunitx/siunitx-table.dtx -2021/06/04 | 482835 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/06/04 | 48237 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/06/04 | 476899 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma 2021/06/04 | 4760 | systems/texlive/tlnet/archive/expkv.r59452.tar.xz 2021/06/04 | 475888 | macros/latex/contrib/siunitx/siunitx-table.pdf 2021/06/04 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg 2021/06/04 | 470104 | systems/texlive/tlnet/archive/expkv.doc.r59452.tar.xz 2021/06/04 | 4685 | language/japanese/platex/plnews02.tex 2021/06/04 | 467974 | macros/latex/contrib/todonotes.zip -2021/06/04 | 46723 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/06/04 | 46493 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma 2021/06/04 | 4629 | macros/latex/contrib/siunitx/siunitx-locale.dtx 2021/06/04 | 4618 | macros/latex/contrib/kdpbook/kdpcover.cls -2021/06/04 | 461825 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma 2021/06/04 | 4606 | language/japanese/platex/plnewsc15.tex -2021/06/04 | 45940 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma 2021/06/04 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc 2021/06/04 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2021/06/04 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc 2021/06/04 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc -2021/06/04 | 45318 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma 2021/06/04 | 4490 | fonts/fontawesome5/doc/fulllist.tex 2021/06/04 | 4488 | systems/texlive/tlnet/archive/expkv-cs.r59451.tar.xz -2021/06/04 | 44611 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/06/04 | 43357 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/06/04 | 43060 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/06/04 | 42982 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma 2021/06/04 | 42908 | systems/texlive/tlnet/archive/tuda-ci.r59456.tar.xz -2021/06/04 | 42887 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/06/04 | 42728 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/06/04 | 42374 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma 2021/06/04 | 4153 | language/japanese/platex/plnewsc08.tex 2021/06/04 | 41505 | macros/latex/contrib/siunitx/CHANGELOG.md 2021/06/04 | 414908 | systems/win32/miktex/tm/packages/dtk-bibliography.tar.lzma 2021/06/04 | 412992 | systems/texlive/tlnet/archive/dtk-bibliography.doc.r59447.tar.xz -2021/06/04 | 41188 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma 2021/06/04 | 4047 | language/japanese/platex/plexpl3.dtx -2021/06/04 | 40342 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma 2021/06/04 | 397652 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59443.tar.xz 2021/06/04 | 3949742 | macros/latex/contrib/acrotex.zip -2021/06/04 | 392695 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/06/04 | 39019 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma 2021/06/04 | 3877 | language/japanese/platex/plnews08.tex 2021/06/04 | 3835 | fonts/fontawesome5/doc/fontawesome5.tex -2021/06/04 | 38171 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/04 | 382656 | macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png 2021/06/04 | 3796 | language/japanese/platex/plnewsc05.tex -2021/06/04 | 37865 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma 2021/06/04 | 3778 | language/japanese/platex/plnews07.tex 2021/06/04 | 376907 | systems/win32/miktex/tm/packages/expkv-cs.tar.lzma 2021/06/04 | 3754 | language/japanese/platex/plnewsc16.tex -2021/06/04 | 37363 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/06/04 | 37230 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma 2021/06/04 | 3713 | language/japanese/platex/plnewsc02.tex 2021/06/04 | 3687 | macros/latex/contrib/siunitx/siunitx.ins -2021/06/04 | 36605 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/06/04 | 360702 | systems/win32/miktex/tm/packages/easybook.tar.lzma 2021/06/04 | 358366 | macros/latex/contrib/acrotex/examples/jquiztst.pdf -2021/06/04 | 35699 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma 2021/06/04 | 353196 | systems/texlive/tlnet/archive/expkv-cs.doc.r59451.tar.xz -2021/06/04 | 35069 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma 2021/06/04 | 3484 | language/japanese/platex/plnewsc11.tex -2021/06/04 | 347620 | macros/latex/contrib/easybook.zip -2021/06/04 | 34650 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/06/04 | 345323 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/06/04 | 3446616 | systems/win32/w32tex/tex4htk-w32.tar.xz 2021/06/04 | 3390 | macros/latex/contrib/kdpbook/kdpcover.tex 2021/06/04 | 336972 | macros/latex/contrib/todonotes/todonotes.pdf -2021/06/04 | 33622 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/06/04 | 33601 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma 2021/06/04 | 33332 | macros/latex/contrib/siunitx/siunitx-compound.dtx 2021/06/04 | 3321 | language/japanese/platex/plnewsc03.tex -2021/06/04 | 330436 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/06/04 | 32597 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma 2021/06/04 | 322528 | systems/texlive/tlnet/archive/pxchfon.doc.r59449.tar.xz -2021/06/04 | 321644 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma 2021/06/04 | 320578 | macros/latex/contrib/acrotex/examples/jtxttst.pdf 2021/06/04 | 3197 | language/japanese/platex/plnewsc13.tex 2021/06/04 | 3194 | language/japanese/platex/plnews.cls 2021/06/04 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg -2021/06/04 | 31569 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/06/04 | 31548 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/06/04 | 315303 | macros/latex/contrib/easybook/easybook.pdf 2021/06/04 | 314636 | systems/texlive/tlnet/archive/easybook.doc.r59454.tar.xz -2021/06/04 | 31329 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/06/04 | 31208 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/06/04 | 311356 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma 2021/06/04 | 30840 | systems/texlive/tlnet/archive/easybook.source.r59454.tar.xz 2021/06/04 | 3083 | fonts/fontawesome5/enc/fa5free0.enc -2021/06/04 | 30806 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma 2021/06/04 | 30792 | macros/latex/contrib/siunitx/siunitx-print.dtx 2021/06/04 | 3042 | fonts/fontawesome5/enc/fa5free1.enc 2021/06/04 | 303000 | fonts/fontawesome5/opentype/FontAwesome5Free-Solid-900.otf -2021/06/04 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma 2021/06/04 | 2999 | language/japanese/platex/plnewsc09.tex -2021/06/04 | 29834 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma 2021/06/04 | 295383 | fonts/fontawesome5/type1/FontAwesome5Free-Solid.pfb -2021/06/04 | 295145 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma 2021/06/04 | 2948 | language/japanese/platex/plnewsc10.tex 2021/06/04 | 29488 | macros/latex/contrib/siunitx/siunitx-emulation.dtx +2021/06/04 | 293686 | macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png 2021/06/04 | 2931 | language/japanese/platex/plnews04.tex 2021/06/04 | 29246 | macros/latex/contrib/todonotes/examples/externalize.pdf 2021/06/04 | 2920 | fonts/fontawesome5/enc/fa5brands0.enc 2021/06/04 | 2906 | fonts/fontawesome5/enc/fa5free2.enc 2021/06/04 | 2905 | fonts/fontawesome5/enc/fa5free3.enc -2021/06/04 | 29044 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/06/04 | 29034 | macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex 2021/06/04 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx 2021/06/04 | 285872 | systems/texlive/tlnet/archive/tex-nutshell.doc.r59448.tar.xz -2021/06/04 | 284038 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/06/04 | 28285 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/06/04 | 281963 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/06/04 | 28162 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/06/04 | 2793680 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/06/04 | 27710 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/06/04 | 2784308 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf 2021/06/04 | 2763 | language/japanese/platex/plnews03.tex 2021/06/04 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty -2021/06/04 | 27265 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/06/04 | 27258 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/06/04 | 27185 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma 2021/06/04 | 2710742 | install/macros/latex/contrib/siunitx.tds.zip 2021/06/04 | 27036 | systems/texlive/tlnet/archive/expkv.source.r59452.tar.xz 2021/06/04 | 26848 | macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf 2021/06/04 | 2673049 | macros/latex/contrib/siunitx.zip -2021/06/04 | 2670400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/06/04 | 261909 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma 2021/06/04 | 2612 | fonts/fontawesome5/enc/fa5brands1.enc -2021/06/04 | 258840 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma 2021/06/04 | 25717 | macros/latex/contrib/siunitx/siunitx-complex.dtx 2021/06/04 | 25584621 | systems/texlive/tlnet/install-tl.zip 2021/06/04 | 253 | language/japanese/platex/platex.ini 2021/06/04 | 253604 | language/japanese/platex/platex.pdf -2021/06/04 | 25267 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/06/04 | 250393 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/06/04 | 25006 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/06/04 | 24988 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma 2021/06/04 | 2488 | systems/texlive/tlnet/archive/bjfuthesis.r59445.tar.xz -2021/06/04 | 243392 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma 2021/06/04 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex 2021/06/04 | 2421 | language/japanese/platex/plnewsc12.tex -2021/06/04 | 239580 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/06/04 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/06/04 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/06/04 | 23766 | macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex 2021/06/04 | 23253 | language/japanese/platex/plvers.dtx 2021/06/04 | 2313 | language/japanese/platex/plnews05.tex 2021/06/04 | 2310352 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/06/04 | 23085 | macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex 2021/06/04 | 22768 | systems/texlive/tlnet/archive/lua-typo.source.r59457.tar.xz 2021/06/04 | 2259587 | macros/latex/contrib/acrotex/doc/aeb_man.pdf 2021/06/04 | 2248888 | systems/texlive/tlnet/archive/circuit-macros.doc.r59444.tar.xz -2021/06/04 | 22022 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma 2021/06/04 | 2200754 | systems/win32/miktex/tm/packages/optex.tar.lzma -2021/06/04 | 215196 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma 2021/06/04 | 214628 | systems/texlive/tlnet/archive/lua-typo.doc.r59457.tar.xz -2021/06/04 | 21177 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/06/04 | 209783 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/06/04 | 209714 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/06/04 | 21078 | macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex 2021/06/04 | 20808844 | systems/texlive/tlnet/install-tl-windows.exe -2021/06/04 | 2079 | macros/latex/contrib/bjfuthesis/README.md -2021/06/04 | 207854 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma 2021/06/04 | 206554 | language/japanese/platex/plfonts.dtx -2021/06/04 | 206343 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma 2021/06/04 | 205247 | systems/win32/miktex/tm/packages/derivative.tar.lzma 2021/06/04 | 203772 | fonts/fontawesome5/type1/FontAwesome5Brands-Regular.pfb 2021/06/04 | 2034 | language/japanese/platex/README.md -2021/06/04 | 202702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/06/04 | 20122 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/06/04 | 2005871 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/06/04 | 199636 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/06/04 | 19959 | macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex 2021/06/04 | 19936 | systems/texlive/tlnet/archive/pxchfon.r59449.tar.xz 2021/06/04 | 19845 | systems/win32/miktex/tm/packages/ocgx2.tar.lzma -2021/06/04 | 198226 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma 2021/06/04 | 1979 | macros/latex/contrib/todonotes/todonotes.ins 2021/06/04 | 197272 | macros/latex/contrib/acrotex/doc/eformman.tex -2021/06/04 | 197090 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma 2021/06/04 | 196092 | systems/texlive/tlnet/archive/derivative.doc.r59453.tar.xz -2021/06/04 | 195752 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma 2021/06/04 | 19542 | macros/latex/contrib/siunitx/siunitx.dtx -2021/06/04 | 194079 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma 2021/06/04 | 18820 | systems/texlive/tlnet/archive/expkv-cs.source.r59451.tar.xz 2021/06/04 | 1878 | fonts/fontawesome5/tex/fontawesome5.lua 2021/06/04 | 183060 | fonts/fontawesome5/opentype/FontAwesome5Brands-Regular-400.otf 2021/06/04 | 1828838 | install/language/japanese/platex.tds.zip -2021/06/04 | 18167 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/06/04 | 180187 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/06/04 | 180078 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/06/04 | 17981 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma 2021/06/04 | 1796 | fonts/fontawesome5/tex/fontawesome5-generic-helper.sty 2021/06/04 | 17567 | language/japanese/platex/platexrelease.dtx 2021/06/04 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg 2021/06/04 | 17269645 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2021/06/04 | 1724 | macros/latex/contrib/kdpbook/README.md -2021/06/04 | 1708077 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma 2021/06/04 | 1703973 | language/japanese/platex.zip -2021/06/04 | 169102 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma 2021/06/04 | 1685003 | fonts/fontawesome5.zip +2021/06/04 | 1684520 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip 2021/06/04 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx -2021/06/04 | 16447 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/06/04 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/06/04 | 16341 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma 2021/06/04 | 1631 | macros/latex/contrib/todonotes/README -2021/06/04 | 159545 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma 2021/06/04 | 158330 | language/japanese/platex/jclasses.dtx 2021/06/04 | 1553 | language/japanese/platex/LICENSE -2021/06/04 | 154624 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma 2021/06/04 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/06/04 | 15317 | macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex 2021/06/04 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/06/04 | 152162 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma 2021/06/04 | 149 | macros/latex/contrib/kdpbook/DEPENDS.txt 2021/06/04 | 1496 | systems/texlive/tlnet/archive/circuit-macros.r59444.tar.xz 2021/06/04 | 1488 | language/japanese/platex/plcls.ins @@ -339,81 +1094,52 @@ 2021/06/04 | 148274 | language/japanese/platex/platex-en.pdf 2021/06/04 | 1482618 | macros/latex/contrib/siunitx/siunitx-code.pdf 2021/06/04 | 14820 | systems/texlive/tlnet/archive/ocgx2.r59455.tar.xz -2021/06/04 | 147714 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/06/04 | 147409 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma 2021/06/04 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 2021/06/04 | 145224 | macros/latex/contrib/siunitx/siunitx.tex 2021/06/04 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 2021/06/04 | 14351 | macros/latex/contrib/siunitx/siunitx-quantity.dtx -2021/06/04 | 14346 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma -2021/06/04 | 1429094 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/06/04 | 1423057 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma 2021/06/04 | 1418780 | systems/texlive/tlnet/archive/optex.doc.r59458.tar.xz 2021/06/04 | 14184 | systems/texlive/tlnet/archive/easybook.r59454.tar.xz 2021/06/04 | 13987 | macros/latex/contrib/acrotex/examples/webeqtst.tex 2021/06/04 | 1380 | fonts/fontawesome5/tfm/fa5brands0.tfm 2021/06/04 | 137664 | language/japanese/platex/exppl2e.pdf 2021/06/04 | 13656 | language/japanese/platex/exppl2e.sty -2021/06/04 | 136506 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma 2021/06/04 | 136388 | systems/texlive/tlnet/archive/tex4ht.doc.r59459.tar.xz 2021/06/04 | 1361 | fonts/fontawesome5/tex/tufontawesomepro.fd 2021/06/04 | 135101 | macros/latex/contrib/kdpbook.zip -2021/06/04 | 134795 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/06/04 | 13447 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma 2021/06/04 | 1340 | fonts/fontawesome5/tfm/fa5free2solid.tfm 2021/06/04 | 1328 | fonts/fontawesome5/tfm/fa5free0solid.tfm 2021/06/04 | 1316 | fonts/fontawesome5/tfm/fa5free1solid.tfm -2021/06/04 | 131581 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/06/04 | 1308118 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/06/04 | 1300399 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/06/04 | 1294236 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/06/04 | 128029 | macros/latex/contrib/easybook/easybook.dtx -2021/06/04 | 1274462 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/06/04 | 1274451 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma 2021/06/04 | 1252 | fonts/fontawesome5/tex/tufontawesomebrands.fd -2021/06/04 | 124613 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma 2021/06/04 | 1236 | fonts/fontawesome5/tfm/fa5free3solid.tfm +2021/06/04 | 123061647 | macros/context/latest/cont-tmf.zip 2021/06/04 | 1206 | fonts/fontawesome5/tex/ufontawesomebrands1.fd 2021/06/04 | 1206 | fonts/fontawesome5/tex/ufontawesomebrands0.fd 2021/06/04 | 1206324 | systems/texlive/tlnet/archive/tex4ht.source.r59459.tar.xz 2021/06/04 | 1204 | fonts/fontawesome5/tfm/fa5free1regular.tfm 2021/06/04 | 1191 | language/japanese/platex/plfmt.ins -2021/06/04 | 1190290 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/06/04 | 1190140 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma 2021/06/04 | 118624 | language/japanese/platex/plcore.dtx -2021/06/04 | 117480 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/06/04 | 1170759 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma 2021/06/04 | 1164175 | systems/win32/miktex/tm/packages/tuda-ci.tar.lzma -2021/06/04 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini -2021/06/04 | 115119 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma 2021/06/04 | 114975 | macros/latex/contrib/siunitx/siunitx-number.dtx 2021/06/04 | 1144 | fonts/fontawesome5/tfm/fa5brands1.tfm 2021/06/04 | 1132 | fonts/fontawesome5/tfm/fa5free0regular.tfm -2021/06/04 | 112815 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma 2021/06/04 | 1121940 | systems/texlive/tlnet/archive/tuda-ci.doc.r59456.tar.xz -2021/06/04 | 112165 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma 2021/06/04 | 1108 | fonts/fontawesome5/tfm/fa5free2regular.tfm -2021/06/04 | 108934 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma 2021/06/04 | 1082 | fonts/fontawesome5/map/fontawesome5.map 2021/06/04 | 1080 | fonts/fontawesome5/tfm/fa5free3regular.tfm 2021/06/04 | 107952 | systems/texlive/tlnet/archive/texlive-scripts.r59443.tar.xz 2021/06/04 | 107888 | fonts/fontawesome5/tex/fontawesome5-mapping.def 2021/06/04 | 107850 | language/japanese/platex/platexrelease.pdf -2021/06/04 | 1076117 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma 2021/06/04 | 1075 | fonts/fontawesome5/tex/tufontawesomefree.fd -2021/06/04 | 106859 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma 2021/06/04 | 104845 | macros/latex/contrib/kdpbook/kdpcover.pdf 2021/06/04 | 10430 | language/japanese/platex/plnewsc07.tex 2021/06/04 | 10426 | language/japanese/platex/plnews01.tex +2021/06/04 | 10369920 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz 2021/06/04 | 10363 | macros/latex/contrib/acrotex/examples/jquiztst.tex -2021/06/04 | 103517 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma 2021/06/04 | 1034 | macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.tex -2021/06/04 | 103436 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma 2021/06/04 | 10168 | language/japanese/platex/kinsoku.dtx 2021/06/04 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx -2021/06/04 | 100463 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma 2021/06/04 | 1000084 | macros/latex/contrib/acrotex/doc/eformman.pdf -2021/06/03 | 9796467 | macros/latex/contrib/bjfuthesis.zip 2021/06/03 | 967 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_simple.snap 2021/06/03 | 9622 | macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg 2021/06/03 | 9462 | support/texlab/src/features/cursor.rs @@ -434,14 +1160,12 @@ 2021/06/03 | 8705 | support/texlab/src/label.rs 2021/06/03 | 8703 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex 2021/06/03 | 869 | support/texlab/src/workspace.rs -2021/06/03 | 8651112 | systems/win32/w32tex/uptex-w32.tar.xz 2021/06/03 | 862 | info/dtk-bibliography/dtk-bibliography.tex 2021/06/03 | 85 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__empty.snap 2021/06/03 | 855 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error1.snap 2021/06/03 | 855 | support/texlab/src/syntax/bibtex/kind.rs 2021/06/03 | 843 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__biblatex_include_options.snap 2021/06/03 | 8414 | support/texlab/src/citation/name.rs -2021/06/03 | 840044 | systems/win32/w32tex/ChangeLog 2021/06/03 | 839 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_end.snap 2021/06/03 | 8397894 | fonts/newtx.zip 2021/06/03 | 833 | support/texlab/src/syntax/latex.rs @@ -484,7 +1208,6 @@ 2021/06/03 | 685752 | systems/texlive/tlnet/archive/babel.source.r59439.tar.xz 2021/06/03 | 6843 | support/texlab/src/features/reference/entry.rs 2021/06/03 | 682661 | macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf -2021/06/03 | 6797896 | systems/win32/w32tex/ptex-ng-w32.tar.xz 2021/06/03 | 677 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_siblings.snap 2021/06/03 | 676 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_options.snap 2021/06/03 | 6764 | macros/latex/contrib/ocgx2/ChangeLog @@ -554,7 +1277,6 @@ 2021/06/03 | 5381 | macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo 2021/06/03 | 5361 | support/texlab/src/features/completion/component_command.rs 2021/06/03 | 5296 | support/texlab/src/features/definition/string.rs -2021/06/03 | 52885348 | systems/win32/w32tex/latex-dev.tar.xz 2021/06/03 | 5267 | support/texlab/src/features/completion/color_model.rs 2021/06/03 | 521 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_invalid_nesting.snap 2021/06/03 | 5217 | support/texlab/src/features/completion/include.rs @@ -725,7 +1447,6 @@ 2021/06/03 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_missing_end.snap 2021/06/03 | 2801 | support/texlab/src/config.rs 2021/06/03 | 279 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_empty.snap -2021/06/03 | 27928662 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma 2021/06/03 | 277 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_star.snap 2021/06/03 | 2773 | support/texlab/tests/integration/snapshots/integration__completion__latex__package_command.snap 2021/06/03 | 27577780 | systems/texlive/tlnet/archive/latex.doc.r59440.tar.xz @@ -745,7 +1466,6 @@ 2021/06/03 | 2586 | support/texlab/texlab.tex 2021/06/03 | 258588 | info/tex-nutshell/tex-nutshell.pdf 2021/06/03 | 2564 | support/texlab/src/workspace/children_expand.rs -2021/06/03 | 2559837 | systems/win32/miktex/tm/packages/siunitx.tar.lzma 2021/06/03 | 25592 | systems/texlive/tlnet/archive/hep-paper.source.r59436.tar.xz 2021/06/03 | 2537816 | graphics/circuit_macros.zip 2021/06/03 | 2516989 | systems/win32/miktex/tm/packages/changes.tar.lzma @@ -818,7 +1538,6 @@ 2021/06/03 | 17408 | macros/latex/contrib/tuda-ci/tex/tudaposter.cls 2021/06/03 | 17242 | support/texlab/src/syntax/latex/cst.rs 2021/06/03 | 170 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_empty.snap -2021/06/03 | 1705213 | systems/win32/miktex/tm/packages/babel.tar.lzma 2021/06/03 | 1691220 | systems/win32/w32tex/win64/ptex-ng-w64.tar.xz 2021/06/03 | 1687 | support/texlab/tests/integration/snapshots/integration__document_symbol__enumerate_flat.snap 2021/06/03 | 1686 | macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo @@ -833,7 +1552,6 @@ 2021/06/03 | 166 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_escape.snap 2021/06/03 | 16688 | macros/latex/contrib/tuda-ci/tex/tudaletter.cls 2021/06/03 | 1662 | support/texlab/src/syntax/bibtex/lexer.rs -2021/06/03 | 1662190 | systems/win32/miktex/tm/packages/platex.tar.lzma 2021/06/03 | 16613 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex 2021/06/03 | 1658914 | systems/win32/miktex/tm/packages/circuitikz.tar.lzma 2021/06/03 | 16188 | support/texlab/src/citation/ris.rs @@ -884,7 +1602,6 @@ 2021/06/03 | 1210 | support/texlab/tests/integration/snapshots/integration__completion__latex__citation.snap 2021/06/03 | 1209 | support/texlab/tests/integration/snapshots/integration__completion__latex__color_model_define_color_set.snap 2021/06/03 | 117 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap -2021/06/03 | 11573094 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma 2021/06/03 | 11519 | support/texlab/tests/integration/document_symbol.rs 2021/06/03 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap 2021/06/03 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap @@ -920,7 +1637,6 @@ 2021/06/03 | 10438 | support/texlab/src/features/semantic/bibtex.rs 2021/06/03 | 104160 | systems/texlive/tlnet/archive/siunitx.source.r59437.tar.xz 2021/06/03 | 1038 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__string_concatenation.snap -2021/06/03 | 10369348 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz 2021/06/03 | 103642 | macros/latex/contrib/derivative/derivative.tex 2021/06/03 | 1035 | support/texlab/tests/integration/snapshots/integration__workspace_symbol__filter_type_item.snap 2021/06/03 | 102 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap @@ -970,7 +1686,6 @@ 2021/06/02 | 893 | graphics/circuit_macros/examples/MoreTable.m4 2021/06/02 | 893 | graphics/circuit_macros/doc/MoreTableMan.m4 2021/06/02 | 893291 | graphics/circuit_macros/examples/examples.pdf -2021/06/02 | 88861 | macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png 2021/06/02 | 886 | graphics/circuit_macros/examples/svg/quickSVG.m4 2021/06/02 | 8863 | macros/latex/base/ltnews17.tex 2021/06/02 | 8736 | macros/latex/base/ltthm.dtx @@ -994,7 +1709,6 @@ 2021/06/02 | 810 | graphics/circuit_macros/examples/svg/GroundsSVG.m4 2021/06/02 | 807 | graphics/circuit_macros/examples/Resistors.m4 2021/06/02 | 80670 | macros/latex/base/ltfssbas.dtx -2021/06/02 | 802 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-abstract.tex 2021/06/02 | 801 | graphics/circuit_macros/doc/Potentiometers.m4 2021/06/02 | 8006 | graphics/circuit_macros/examples/svg/controlSVG.m4 2021/06/02 | 795324 | macros/latex/base/ltfilehook-code.pdf @@ -1010,8 +1724,6 @@ 2021/06/02 | 76725 | macros/latex/base/ltfssini.dtx 2021/06/02 | 7670 | graphics/circuit_macros/examples/Chuck.m4 2021/06/02 | 764 | graphics/circuit_macros/examples/mf/cct.tfm -2021/06/02 | 762316 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png -2021/06/02 | 75 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-acknowledge.tex 2021/06/02 | 7546 | graphics/circuit_macros/examples/svg/RectifiersSVG.m4 2021/06/02 | 7533 | graphics/circuit_macros/doc/Logic.tex 2021/06/02 | 7524 | macros/latex/base/ltxguide.cls @@ -1033,7 +1745,6 @@ 2021/06/02 | 7221 | macros/latex/base/exscale.dtx 2021/06/02 | 7203 | graphics/circuit_macros/examples/svg/lcctSVG.m4 2021/06/02 | 7200 | macros/latex/base/sample2e.tex -2021/06/02 | 716372 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png 2021/06/02 | 715 | graphics/circuit_macros/examples/svg/ConnectorsSVG.m4 2021/06/02 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex 2021/06/02 | 7127 | graphics/circuit_macros/examples/lcct.m4 @@ -1071,7 +1782,6 @@ 2021/06/02 | 6498 | graphics/circuit_macros/examples/Escher.m4 2021/06/02 | 64748 | macros/latex/base/ltluatex.dtx 2021/06/02 | 645 | graphics/circuit_macros/examples/Floor.m4 -2021/06/02 | 64462 | macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex 2021/06/02 | 64171 | macros/luatex/latex/lua-typo/doc/lua-typo-fr.pdf 2021/06/02 | 6413 | graphics/circuit_macros/examples/svg/CanLogicSVG.m4 2021/06/02 | 63 | graphics/circuit_macros/examples/svg/local_init.m4 @@ -1098,7 +1808,6 @@ 2021/06/02 | 5917 | macros/latex/base/latexrelease.ins 2021/06/02 | 5890 | graphics/circuit_macros/examples/Csource.m4 2021/06/02 | 58703 | macros/latex/base/ltmiscen.dtx -2021/06/02 | 586912 | macros/latex/contrib/bjfuthesis/example/figures/ripplenet-framework.png 2021/06/02 | 5864 | macros/latex/base/ltidxglo.dtx 2021/06/02 | 58556 | macros/latex/base/ltfssaxes.dtx 2021/06/02 | 5847 | graphics/circuit_macros/examples/svg/GeometrySVG.m4 @@ -1128,7 +1837,6 @@ 2021/06/02 | 546162 | macros/latex/base/ltnews32.pdf 2021/06/02 | 545 | graphics/circuit_macros/examples/svg/RotboxSVG.m4 2021/06/02 | 545883 | macros/latex/base/ltfilehook-doc.pdf -2021/06/02 | 545274 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png 2021/06/02 | 5425 | macros/latex/base/ltnews07.tex 2021/06/02 | 5412 | graphics/circuit_macros/examples/svg/roseSVG.m4 2021/06/02 | 5400 | macros/latex/base/ltnews12.tex @@ -1155,19 +1863,15 @@ 2021/06/02 | 5200 | macros/latex/base/ltnews03.tex 2021/06/02 | 518 | graphics/circuit_macros/examples/Rotbox.m4 2021/06/02 | 5171 | graphics/circuit_macros/examples/svg/FlowSVG.m4 -2021/06/02 | 515568 | macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png 2021/06/02 | 5137 | graphics/circuit_macros/doc/NPDT.tex 2021/06/02 | 511855 | macros/latex/base/ltnews30.pdf 2021/06/02 | 5106 | graphics/circuit_macros/examples/svg/Makefile 2021/06/02 | 50 | graphics/circuit_macros/doc/bitr.m4 2021/06/02 | 5041 | macros/latex/base/latexsym.ins -2021/06/02 | 503309 | macros/latex/contrib/bjfuthesis/example/figures/general-details.png 2021/06/02 | 503186 | macros/latex/base/docstrip.pdf -2021/06/02 | 50059200 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/06/02 | 499 | graphics/circuit_macros/examples/NLG.m4 2021/06/02 | 499 | graphics/circuit_macros/doc/NLGMan.m4 2021/06/02 | 4964 | graphics/circuit_macros/doc/Multiplexer.tex -2021/06/02 | 4957 | macros/latex/contrib/bjfuthesis/bjfuthesis.cls 2021/06/02 | 4950 | macros/latex/base/lthyphen.dtx 2021/06/02 | 494 | graphics/circuit_macros/examples/AmpTable.m4 2021/06/02 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4 @@ -1178,7 +1882,6 @@ 2021/06/02 | 482 | graphics/circuit_macros/examples/clock.m4 2021/06/02 | 4828 | graphics/circuit_macros/doc/Makefile 2021/06/02 | 4817 | graphics/circuit_macros/doc/Demultiplexer.tex -2021/06/02 | 4808696 | macros/latex/contrib/bjfuthesis/example/thesis.pdf 2021/06/02 | 479331 | macros/latex/base/ltcmdhooks-doc.pdf 2021/06/02 | 47901 | macros/latex/base/lttab.dtx 2021/06/02 | 4789 | graphics/circuit_macros/doc/Fuses.tex @@ -1186,6 +1889,7 @@ 2021/06/02 | 4762 | macros/latex/base/ltlength.dtx 2021/06/02 | 4751 | graphics/circuit_macros/examples/Shaky.m4 2021/06/02 | 4751 | graphics/circuit_macros/examples/Flow.m4 +2021/06/02 | 474 | macros/latex/required/firstaid/README.md 2021/06/02 | 4683 | graphics/circuit_macros/examples/psfrag/Makefile 2021/06/02 | 468043 | macros/latex/base/latexchanges.pdf 2021/06/02 | 4666 | graphics/circuit_macros/doc/Nport.tex @@ -1202,7 +1906,6 @@ 2021/06/02 | 44864 | systems/texlive/tlnet/archive/l3packages.source.r59425.tar.xz 2021/06/02 | 44724 | macros/latex/base/ltfinal.dtx 2021/06/02 | 4459 | graphics/circuit_macros/examples/Lyap.m4 -2021/06/02 | 445624 | macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png 2021/06/02 | 44409 | macros/latex/base/latexrelease.dtx 2021/06/02 | 442 | graphics/circuit_macros/examples/Wheat.m4 2021/06/02 | 4390 | macros/latex/base/ec.ins @@ -1254,7 +1957,6 @@ 2021/06/02 | 4079 | graphics/circuit_macros/INSTALL 2021/06/02 | 40795 | macros/latex/base/latexchanges.tex 2021/06/02 | 404 | graphics/circuit_macros/doc/Series.m4 -2021/06/02 | 4030 | macros/latex/contrib/bjfuthesis/documentation/contents/doc-mainbody.tex 2021/06/02 | 402779 | macros/latex/base/clsguide.pdf 2021/06/02 | 4023 | graphics/circuit_macros/examples/Euro.m4 2021/06/02 | 4015 | graphics/circuit_macros/doc/SwitchesMan.m4 @@ -1276,7 +1978,6 @@ 2021/06/02 | 3785 | graphics/circuit_macros/examples/Mixer.m4 2021/06/02 | 3781 | macros/latex/base/tulm.ins 2021/06/02 | 3778 | graphics/circuit_macros/examples/svg/PushPullSVG.m4 -2021/06/02 | 3776 | macros/latex/contrib/bjfuthesis/example/contents/abstract.tex 2021/06/02 | 376392 | macros/latex/base/changes.txt 2021/06/02 | 3756 | graphics/circuit_macros/examples/svg/randomSVG.m4 2021/06/02 | 374051 | macros/latex/base/slides.pdf @@ -1296,7 +1997,6 @@ 2021/06/02 | 35302 | macros/latex/base/ltdirchk.dtx 2021/06/02 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx 2021/06/02 | 3522 | graphics/circuit_macros/examples/svg/ex12SVG.m4 -2021/06/02 | 35149 | macros/latex/contrib/bjfuthesis/LICENSE 2021/06/02 | 3509 | graphics/circuit_macros/examples/Buttons.m4 2021/06/02 | 3500 | macros/latex/base/README.md 2021/06/02 | 3489 | graphics/circuit_macros/examples/svg/MixerSVG.m4 @@ -1377,6 +2077,7 @@ 2021/06/02 | 2792 | graphics/circuit_macros/examples/OpAmpFilter.m4 2021/06/02 | 2761 | graphics/circuit_macros/examples/sfg.m4 2021/06/02 | 2744 | fonts/newtx/vf/ntxbmi.vf +2021/06/02 | 2740 | macros/latex/required/firstaid/firstaid.ins 2021/06/02 | 2740 | fonts/newtx/vf/ntxbmi1.vf 2021/06/02 | 2740 | fonts/newtx/vf/ntxbmi0.vf 2021/06/02 | 2738 | macros/latex/base/tex2.txt @@ -1434,7 +2135,6 @@ 2021/06/02 | 242886 | macros/latex/base/cfgguide.pdf 2021/06/02 | 24141 | graphics/circuit_macros/examples/svg/UNOSVG.m4 2021/06/02 | 2412 | graphics/circuit_macros/examples/ex00.m4 -2021/06/02 | 240 | macros/latex/contrib/bjfuthesis/documentation/bjfuthesis.tex 2021/06/02 | 2402 | graphics/circuit_macros/examples/Adder.m4 2021/06/02 | 24015 | macros/latex/base/lterror.dtx 2021/06/02 | 239681 | macros/latex/base/cyrguide.pdf @@ -1449,13 +2149,14 @@ 2021/06/02 | 233 | graphics/circuit_macros/examples/Ccurve.m4 2021/06/02 | 233995 | macros/latex/base/proc.pdf 2021/06/02 | 23386 | macros/latex/base/lppl.tex +2021/06/02 | 233275 | install/macros/latex/required/latex-firstaid.tds.zip 2021/06/02 | 2323 | macros/luatex/latex/lua-typo/README.md 2021/06/02 | 2304 | graphics/circuit_macros/examples/Loglog.m4 +2021/06/02 | 228448 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf 2021/06/02 | 2279 | graphics/circuit_macros/examples/ex01.m4 2021/06/02 | 227884 | systems/texlive/tlnet/archive/tools.source.r59424.tar.xz 2021/06/02 | 22676 | macros/latex/base/ltcounts.dtx 2021/06/02 | 2262 | graphics/circuit_macros/examples/Geometry.m4 -2021/06/02 | 224 | macros/latex/contrib/bjfuthesis/example/thesis.tex 2021/06/02 | 22456 | macros/latex/base/cfgguide.tex 2021/06/02 | 2241 | graphics/circuit_macros/examples/svg/LoglogSVG.m4 2021/06/02 | 2225 | graphics/circuit_macros/doc/SourcesMan.m4 @@ -1488,9 +2189,9 @@ 2021/06/02 | 2086 | graphics/circuit_macros/doc/relaycoilMan.m4 2021/06/02 | 2085 | graphics/circuit_macros/pgf.m4 2021/06/02 | 208359 | macros/latex/base/latexsym.pdf -2021/06/02 | 207622 | macros/latex/contrib/bjfuthesis/example/cover.pdf 2021/06/02 | 2069 | graphics/circuit_macros/examples/svg/relaycoilSVG.m4 2021/06/02 | 2068 | graphics/circuit_macros/examples/I2L.m4 +2021/06/02 | 2065 | macros/latex/required/firstaid/changes.txt 2021/06/02 | 2051 | graphics/circuit_macros/examples/svg/JackSVG.m4 2021/06/02 | 205162 | macros/latex/base/ltnews25.pdf 2021/06/02 | 20486 | macros/latex/base/lgc2.err @@ -1555,8 +2256,8 @@ 2021/06/02 | 1807932 | systems/texlive/tlnet/archive/l3packages.doc.r59425.tar.xz 2021/06/02 | 1802 | graphics/circuit_macros/examples/Pconn.m4 2021/06/02 | 1802 | graphics/circuit_macros/doc/PconnMan.m4 -2021/06/02 | 180215 | macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png 2021/06/02 | 179 | macros/latex/base/ltshipout-doc.tex +2021/06/02 | 17959 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx 2021/06/02 | 179141 | macros/latex/contrib/biblatex-contrib/biblatex-cv.zip 2021/06/02 | 177 | macros/latex/base/lthooks-doc.tex 2021/06/02 | 177 | macros/latex/base/ltcmdhooks-doc.tex @@ -1641,7 +2342,6 @@ 2021/06/02 | 1464 | graphics/circuit_macros/doc/Taps.m4 2021/06/02 | 146200 | macros/latex/base/webcomp.pdf 2021/06/02 | 1458 | graphics/circuit_macros/examples/header.tex -2021/06/02 | 145720 | macros/latex/contrib/bjfuthesis/documentation/bjfuthesis.pdf 2021/06/02 | 144 | graphics/circuit_macros/doc/Thermal.m4 2021/06/02 | 144867572 | systems/win32/w32tex/context.tar.xz 2021/06/02 | 1444 | graphics/circuit_macros/examples/svg/ThreeSVG.m4 @@ -1740,10 +2440,8 @@ 2021/06/02 | 10971144 | systems/texlive/tlnet/archive/l3kernel.doc.r59425.tar.xz 2021/06/02 | 1093 | graphics/circuit_macros/examples/svg/ex02SVG.m4 2021/06/02 | 1090 | graphics/circuit_macros/examples/svg/AntennasSVG.m4 -2021/06/02 | 10909 | macros/latex/contrib/bjfuthesis/example/bibliography.bib 2021/06/02 | 10871 | macros/latex/base/manifest.txt 2021/06/02 | 1086052 | systems/win32/w32tex/win64/extractpdfmark-w64.tar.xz -2021/06/02 | 108191 | macros/latex/contrib/bjfuthesis/example/figures/enhanced-recommendation.png 2021/06/02 | 1076 | graphics/circuit_macros/examples/mf/mftest 2021/06/02 | 1075 | graphics/circuit_macros/examples/bistable.m4 2021/06/02 | 1074 | graphics/circuit_macros/doc/CapacitorsMan.m4 @@ -1942,7 +2640,6 @@ 2021/06/01 | 3522 | fonts/musixtex-fonts/doc/musixtex-fonts-install.tex 2021/06/01 | 351189 | macros/latex/required/tools/theorem.pdf 2021/06/01 | 34691 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex -2021/06/01 | 3437520 | systems/win32/w32tex/tex4htk-w32.tar.xz 2021/06/01 | 33916 | macros/latex/required/graphics/changes.txt 2021/06/01 | 33863 | macros/latex/required/tools/varioref-2016-02-16.sty 2021/06/01 | 3374 | macros/latex/contrib/tiscreen/doc/tiscreen-doc.tex @@ -2126,7 +2823,6 @@ 2021/06/01 | 12348 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty 2021/06/01 | 123018 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex 2021/06/01 | 1228 | macros/latex/contrib/l3packages/l3keys2e.ins -2021/06/01 | 122813741 | macros/context/latest/cont-tmf.zip 2021/06/01 | 122713 | macros/latex/contrib/l3kernel/l3news01.pdf 2021/06/01 | 12133 | macros/latex/required/tools/longtable-2020-01-07.sty 2021/06/01 | 12005 | macros/latex/required/amsmath/technote.tex @@ -2427,6 +3123,7 @@ 2021/05/31 | 251 | language/japanese/uplatex/uplatex.ini 2021/05/31 | 2500 | language/japanese/uptex-base/samples/simple-sjis.tex 2021/05/31 | 2493 | language/japanese/uptex-base/samples/simple-euc.tex +2021/05/31 | 2397 | language/japanese/pxbase/README.md 2021/05/31 | 2384 | language/japanese/uptex-base/samples/00readme_uptex_samples.txt 2021/05/31 | 237 | language/japanese/uptex-base/samples/jstr-uptex.mp 2021/05/31 | 2375 | macros/latex/contrib/thuthesis/thuthesis-example.tex @@ -2441,6 +3138,7 @@ 2021/05/31 | 22237 | macros/latex/contrib/translator/translator.tex 2021/05/31 | 221 | language/japanese/uptex-base/samples/jstr-sjis.mp 2021/05/31 | 221 | language/japanese/uptex-base/samples/jstr-euc.mp +2021/05/31 | 21625 | language/japanese/pxbase/pxbabel.tex 2021/05/31 | 2145 | language/japanese/uptex-base/README_uptex.txt 2021/05/31 | 2110 | language/japanese/pxjahyper/README.md 2021/05/31 | 209864 | macros/latex/contrib/translator/translator.pdf @@ -2511,6 +3209,7 @@ 2021/05/31 | 1565 | macros/latex/contrib/translator/translator-months-dictionary-Greek.dict 2021/05/31 | 1554 | language/japanese/ptex-base/LICENSE 2021/05/31 | 1534860 | support/TeX4ht/source/tex4ht-fonts-noncjk.tex +2021/05/31 | 151912 | language/japanese/pxbase/pxbabel.pdf 2021/05/31 | 150413 | language/japanese/plautopatch.zip 2021/05/31 | 1501 | macros/latex/contrib/translator/translator-months-dictionary-Russian.dict 2021/05/31 | 1500 | language/japanese/plautopatch/LICENSE @@ -2584,6 +3283,7 @@ 2021/05/31 | 1066 | language/japanese/platex-tools/plextcolortbl.sty 2021/05/31 | 10559 | fonts/newpx/afm/pxsys.afm 2021/05/31 | 10491 | language/japanese/uptex-base/samples/misc-check-v-utf8.tex +2021/05/31 | 10329 | language/japanese/pxbase/README-ja.md 2021/05/31 | 1029 | macros/latex/contrib/translator/translator-bibliography-dictionary-Czech.dict 2021/05/31 | 10230540 | systems/texlive/tlnet/archive/reledmac.doc.r59398.tar.xz 2021/05/31 | 1001 | macros/latex/contrib/translator/translator-bibliography-dictionary-Croatian.dict @@ -2675,6 +3375,7 @@ 2021/05/30 | 75270 | macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf 2021/05/30 | 74370 | macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf 2021/05/30 | 73913 | macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf +2021/05/30 | 7352 | language/japanese/pxbase/pxjsfenc.def 2021/05/30 | 720848 | systems/texlive/tlnet/archive/schulschriften.doc.r59388.tar.xz 2021/05/30 | 68141 | macros/latex/contrib/changes/examples/changes.example.final.pdf 2021/05/30 | 6716 | systems/texlive/tlnet/archive/keyfloat.r59389.tar.xz @@ -2714,6 +3415,7 @@ 2021/05/30 | 454516 | macros/latex/contrib/changes/changes.english.withcode.pdf 2021/05/30 | 442128 | systems/texlive/tlnet/archive/lwarp.source.r59390.tar.xz 2021/05/30 | 43 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_in.tex +2021/05/30 | 434 | language/japanese/pxbase/pxbase.sty 2021/05/30 | 42 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_in.tex 2021/05/30 | 42081 | macros/latex/contrib/changes/userdoc/changes.de.tex 2021/05/30 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_in.tex @@ -2736,6 +3438,7 @@ 2021/05/30 | 32047 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf 2021/05/30 | 31 | macros/latex/contrib/changes/userdoc/setauthormarkup_in.tex 2021/05/30 | 31448 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf +2021/05/30 | 3129 | language/japanese/pxbase/upkcat.sty 2021/05/30 | 30 | macros/latex/contrib/changes/userdoc/setsocextension_in.tex 2021/05/30 | 30 | macros/latex/contrib/changes/userdoc/setlocextension_in.tex 2021/05/30 | 30 | macros/latex/contrib/changes/userdoc/setaddedmarkup_in.tex @@ -2773,6 +3476,7 @@ 2021/05/30 | 221703 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf 2021/05/30 | 21 | macros/latex/contrib/changes/userdoc/usepackage_changes_in.tex 2021/05/30 | 210267 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf +2021/05/30 | 20907 | language/japanese/pxbase/pxbabel.sty 2021/05/30 | 209050 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf 2021/05/30 | 208756 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf 2021/05/30 | 205460 | systems/texlive/tlnet/archive/lwarp.r59390.tar.xz @@ -2793,6 +3497,7 @@ 2021/05/30 | 196243 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf 2021/05/30 | 195653 | macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf 2021/05/30 | 192572 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf +2021/05/30 | 19112 | language/japanese/pxbase/pxbasenc.def 2021/05/30 | 190129 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf 2021/05/30 | 189772 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf 2021/05/30 | 189364 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf @@ -2815,6 +3520,7 @@ 2021/05/30 | 154407 | language/japanese/pxjahyper.zip 2021/05/30 | 151 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_ex.tex 2021/05/30 | 147 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_ex.tex +2021/05/30 | 145720 | macros/latex/contrib/bjfuthesis/documentation/bjfuthesis.pdf 2021/05/30 | 143467 | macros/latex/contrib/changes/examples/changes.example.screenshot.pdf 2021/05/30 | 142 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_ex.tex 2021/05/30 | 13309241 | macros/latex/contrib/reledmac.zip @@ -2833,192 +3539,3 @@ 2021/05/30 | 104166 | macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf 2021/05/30 | 10321 | macros/latex/contrib/changes/changes.ins 2021/05/30 | 1004380 | systems/texlive/tlnet/archive/keyfloat.doc.r59389.tar.xz -2021/05/29 | 99972418 | systems/win32/w32tex/TLW64/tl-win64.zip -2021/05/29 | 998647 | fonts/schulschriften/doc/schulschriften.pdf -2021/05/29 | 9801927 | systems/win32/miktex/tm/packages/noto-emoji.tar.lzma -2021/05/29 | 9790 | fonts/schulschriften/source/wesa/wesa14_gr.mf -2021/05/29 | 96709 | systems/win32/miktex/tm/packages/minimalist.tar.lzma -2021/05/29 | 942 | fonts/schulschriften/tex/wesu/t1wesu.fd -2021/05/29 | 9373 | fonts/schulschriften/source/wela/wela14_gr.mf -2021/05/29 | 9079 | fonts/schulschriften/source/wedn/wedn14_kl.mf -2021/05/29 | 9001 | fonts/schulschriften/source/wedn/wedn14_gr.mf -2021/05/29 | 89 | macros/latex/contrib/lwarp/lwarp_baseline_marker.png -2021/05/29 | 8779 | fonts/schulschriften/source/wela/wela14_kl.mf -2021/05/29 | 8706 | fonts/schulschriften/source/wesu/wesu14_gr.mf -2021/05/29 | 8655 | fonts/schulschriften/source/wesu/wesu14_kl.mf -2021/05/29 | 8208 | systems/texlive/tlnet/archive/jlreq.source.r59376.tar.xz -2021/05/29 | 8060 | systems/texlive/tlnet/archive/fei.r59380.tar.xz -2021/05/29 | 79 | fonts/schulschriften/source/wela/welasl14.mf -2021/05/29 | 7997 | fonts/newpx/tex/newpxtext.sty -2021/05/29 | 7978 | fonts/schulschriften/source/wesa/wesa14_kl.mf -2021/05/29 | 796 | fonts/schulschriften/tex/weva/t1weva.fd -2021/05/29 | 761 | fonts/schulschriften/tex/wela/t1wela.fd -2021/05/29 | 75465 | systems/win32/miktex/tm/packages/polexpr.tar.lzma -2021/05/29 | 752 | fonts/schulschriften/tex/wedn/t1wedn.fd -2021/05/29 | 749 | fonts/schulschriften/tex/wesa/t1wesa.fd -2021/05/29 | 73 | fonts/schulschriften/source/wedn/wednsl14.mf -2021/05/29 | 72 | fonts/schulschriften/source/wesa/wesasl14.mf -2021/05/29 | 729868 | systems/texlive/tlnet/archive/translation-biblatex-de.doc.r59382.tar.xz -2021/05/29 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps -2021/05/29 | 68725 | systems/win32/miktex/tm/packages/ot-tableau.tar.lzma -2021/05/29 | 655370 | systems/win32/miktex/tm/packages/jlreq.tar.lzma -2021/05/29 | 636766 | systems/win32/miktex/tm/packages/huawei.tar.lzma -2021/05/29 | 635404 | fonts/schulschriften/tex/wesu/wesu_fonttabelle.eps -2021/05/29 | 630443 | fonts/schulschriften/tex/wedn/wedn_fonttabelle.eps -2021/05/29 | 6296 | systems/texlive/tlnet/archive/tokcycle.r59377.tar.xz -2021/05/29 | 5912 | fonts/schulschriften/source/weva/weva14_lig.mf -2021/05/29 | 587478 | fonts/schulschriften/tex/wela/wela_fonttabelle.eps -2021/05/29 | 585861 | fonts/schulschriften/tex/wesa/wesa_fonttabelle.eps -2021/05/29 | 5839 | fonts/schulschriften/source/weva/weva14_gr.mf -2021/05/29 | 5777 | fonts/schulschriften/source/weva/weva14_kl.mf -2021/05/29 | 5569 | language/japanese/pxjahyper/README-ja.md -2021/05/29 | 54 | fonts/schulschriften/source/weva/wevaubsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/weva/wevaebsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wesu/wesuubsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wesu/wesuebsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wesa/wesaubsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wesa/wesaebsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wela/welaubsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wela/welaebsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wedn/wednubsl14.mf -2021/05/29 | 54 | fonts/schulschriften/source/wedn/wednebsl14.mf -2021/05/29 | 5456 | macros/latex/contrib/keyfloat/images/image.pdf -2021/05/29 | 53 | fonts/schulschriften/source/weva/wevasbsl14.mf -2021/05/29 | 53 | fonts/schulschriften/source/wesu/wesusbsl14.mf -2021/05/29 | 53 | fonts/schulschriften/source/wesa/wesasbsl14.mf -2021/05/29 | 53 | fonts/schulschriften/source/wela/welasbsl14.mf -2021/05/29 | 53 | fonts/schulschriften/source/wedn/wednsbsl14.mf -2021/05/29 | 5303 | fonts/schulschriften/tex/schulschriften_ltx.sty -2021/05/29 | 521692 | systems/win32/miktex/tm/packages/fei.tar.lzma -2021/05/29 | 521097 | systems/win32/miktex/tm/packages/translations.tar.lzma -2021/05/29 | 504148 | systems/texlive/tlnet/archive/jlreq.doc.r59376.tar.xz -2021/05/29 | 49 | fonts/schulschriften/source/wesa/wesabxsl14.mf -2021/05/29 | 48 | fonts/schulschriften/source/weva/wevabxsl14.mf -2021/05/29 | 48 | fonts/schulschriften/source/wesu/wesubxsl14.mf -2021/05/29 | 48 | fonts/schulschriften/source/wela/welabxsl14.mf -2021/05/29 | 48 | fonts/schulschriften/source/wedn/wednbxsl14.mf -2021/05/29 | 48698 | fonts/schulschriften/source/wela/wela14_lig.mf -2021/05/29 | 4868 | fonts/schulschriften/README -2021/05/29 | 482757 | systems/win32/miktex/tm/packages/beaulivre.tar.lzma -2021/05/29 | 481928 | systems/texlive/tlnet/archive/fei.doc.r59380.tar.xz -2021/05/29 | 4806814 | systems/win32/miktex/tm/packages/tcolorbox.tar.lzma -2021/05/29 | 48010 | fonts/schulschriften/source/wesa/wesa14_lig.mf -2021/05/29 | 476872 | systems/win32/miktex/tm/packages/sr-vorl.tar.lzma -2021/05/29 | 47213 | fonts/schulschriften/source/wedn/wedn14_lig.mf -2021/05/29 | 4700 | macros/latex/contrib/keyfloat/images/image2.pdf -2021/05/29 | 466972 | fonts/schulschriften/tex/weva/weva_fonttabelle.eps -2021/05/29 | 45894 | language/japanese/pxjahyper/pxjahyper.sty -2021/05/29 | 453076 | systems/win32/miktex/tm/packages/simplivre.tar.lzma -2021/05/29 | 452 | systems/texlive/tlnet/archive/translation-biblatex-de.r59382.tar.xz -2021/05/29 | 450140 | systems/win32/miktex/tm/packages/lebhart.tar.lzma -2021/05/29 | 4421 | fonts/schulschriften/tex/schulschriften_lin.sty -2021/05/29 | 441 | fonts/schulschriften/tex/schulschriften_xpl.tex -2021/05/29 | 43 | fonts/schulschriften/source/weva/wevaub14.mf -2021/05/29 | 43 | fonts/schulschriften/source/weva/wevaeb14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wesu/wesuub14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wesu/wesueb14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wesa/wesaub14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wesa/wesaeb14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wela/welaub14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wela/welaeb14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wedn/wednub14.mf -2021/05/29 | 43 | fonts/schulschriften/source/wedn/wedneb14.mf -2021/05/29 | 42 | fonts/schulschriften/source/weva/wevasl14.mf -2021/05/29 | 42 | fonts/schulschriften/source/weva/wevasb14.mf -2021/05/29 | 42 | fonts/schulschriften/source/wesu/wesusb14.mf -2021/05/29 | 42 | fonts/schulschriften/source/wesa/wesasb14.mf -2021/05/29 | 42 | fonts/schulschriften/source/wela/welasb14.mf -2021/05/29 | 42 | fonts/schulschriften/source/wedn/wednsb14.mf -2021/05/29 | 4249491 | install/macros/latex/contrib/lwarp.tds.zip -2021/05/29 | 42250 | fonts/schulschriften/doc/schulschriften.tex -2021/05/29 | 418975 | systems/win32/miktex/tm/packages/expkv-def.tar.lzma -2021/05/29 | 393866 | systems/win32/miktex/tm/packages/fontsize.tar.lzma -2021/05/29 | 38 | fonts/schulschriften/source/wesa/wesabx14.mf -2021/05/29 | 384523 | systems/win32/miktex/tm/packages/einfart.tar.lzma -2021/05/29 | 37 | fonts/schulschriften/source/weva/wevabx14.mf -2021/05/29 | 37 | fonts/schulschriften/source/wesu/wesubx14.mf -2021/05/29 | 37 | fonts/schulschriften/source/wela/welabx14.mf -2021/05/29 | 37 | fonts/schulschriften/source/wedn/wednbx14.mf -2021/05/29 | 37229 | fonts/schulschriften/source/wesu/wesu14_lig.mf -2021/05/29 | 3668624 | macros/latex/contrib/lwarp.zip -2021/05/29 | 366257 | systems/win32/miktex/tm/packages/projlib.tar.lzma -2021/05/29 | 3638528 | systems/win32/miktex/tm/packages/acmart.tar.lzma -2021/05/29 | 362691 | systems/win32/miktex/tm/packages/tabularray.tar.lzma -2021/05/29 | 34876 | systems/win32/miktex/tm/packages/ninecolors.tar.lzma -2021/05/29 | 3480065 | systems/win32/miktex/tm/packages/luatexja.tar.lzma -2021/05/29 | 3368466 | systems/win32/miktex/tm/packages/l3experimental.tar.lzma -2021/05/29 | 3327259 | systems/win32/miktex/tm/packages/acrotex.tar.lzma -2021/05/29 | 3307 | language/japanese/pxjahyper/pxjahyper-enc.sty -2021/05/29 | 33073 | macros/latex/contrib/lwarp/lwarp.ins -2021/05/29 | 3203770 | macros/latex/contrib/lwarp/lwarp.pdf -2021/05/29 | 318658 | systems/win32/miktex/tm/packages/xetexko.tar.lzma -2021/05/29 | 3160492 | systems/win32/miktex/tm/packages/kpfonts-otf.tar.lzma -2021/05/29 | 30760 | systems/texlive/tlnet/archive/fei.source.r59380.tar.xz -2021/05/29 | 3075881 | systems/win32/miktex/tm/packages/beamer.tar.lzma -2021/05/29 | 306 | fonts/schulschriften/tex/wela/wela.sty -2021/05/29 | 301 | fonts/schulschriften/tex/wedn/wedn.sty -2021/05/29 | 2947 | macros/latex/contrib/lwarp/lwarp_tutorial.txt -2021/05/29 | 293 | fonts/schulschriften/tex/wesa/wesa.sty -2021/05/29 | 29001 | macros/latex/contrib/lwarp/lwarpmk.lua -2021/05/29 | 2848 | language/japanese/pxjahyper/pxjahyper-uni.def -2021/05/29 | 280 | fonts/schulschriften/tex/wesu/wesu.sty -2021/05/29 | 274 | fonts/schulschriften/tex/weva/weva.sty -2021/05/29 | 2731136 | macros/latex/contrib/lwarp/lwarp.dtx -2021/05/29 | 271335 | systems/win32/miktex/tm/packages/ltximg.tar.lzma -2021/05/29 | 2684280 | info/biblio/sgml.bib -2021/05/29 | 263566 | systems/win32/miktex/tm/packages/pbalance.tar.lzma -2021/05/29 | 2624826 | systems/win32/miktex/tm/packages/xint.tar.lzma -2021/05/29 | 240250 | systems/win32/miktex/tm/packages/bmstu-iu8.tar.lzma -2021/05/29 | 23852 | language/japanese/pxjahyper/pxjahyper-ajm.def -2021/05/29 | 22687686 | systems/win32/miktex/tm/packages/newcomputermodern.tar.lzma -2021/05/29 | 222183 | systems/win32/miktex/tm/packages/babel-spanish.tar.lzma -2021/05/29 | 217598 | systems/win32/miktex/tm/packages/lualibs.tar.lzma -2021/05/29 | 216 | fonts/schulschriften/source/wela/wela14_end.mf -2021/05/29 | 211 | fonts/schulschriften/source/wedn/wedn14_end.mf -2021/05/29 | 210 | fonts/schulschriften/source/wesa/wesa14_end.mf -2021/05/29 | 208174 | systems/win32/miktex/tm/packages/mindflow.tar.lzma -2021/05/29 | 201 | fonts/schulschriften/source/wesu/wesu14_end.mf -2021/05/29 | 199926 | systems/win32/miktex/tm/packages/suppose.tar.lzma -2021/05/29 | 188218 | systems/win32/miktex/tm/packages/aalok.tar.lzma -2021/05/29 | 1878488 | fonts/schulschriften.zip -2021/05/29 | 186 | fonts/schulschriften/source/wesu/wesubsl14.mf -2021/05/29 | 1821936 | systems/texlive/tlnet/archive/luatex.win32.r59375.tar.xz -2021/05/29 | 1790 | fonts/xcharter/tex/OT1XCharterTH-osf.fd -2021/05/29 | 1789 | fonts/xcharter/tex/LY1XCharterTH-osf.fd -2021/05/29 | 1766 | fonts/xcharter/tex/T1XCharterTH-osf.fd -2021/05/29 | 17156 | fonts/schulschriften/source/wedn/wedn14_def.mf -2021/05/29 | 170 | fonts/schulschriften/source/wesu/wesub14.mf -2021/05/29 | 1669 | fonts/schulschriften/source/wesu/wesu14.mf -2021/05/29 | 1653 | fonts/schulschriften/tex/schulschriften_ltx.tex -2021/05/29 | 1644 | macros/latex/contrib/keyfloat/keyfloat.ins -2021/05/29 | 1624 | macros/latex/contrib/lwarp/README.txt -2021/05/29 | 1622 | fonts/schulschriften/source/wela/wela14.mf -2021/05/29 | 158283 | systems/win32/miktex/tm/packages/pxbase.tar.lzma -2021/05/29 | 1579417 | systems/win32/miktex/tm/packages/fithesis.tar.lzma -2021/05/29 | 1565 | fonts/schulschriften/source/wedn/wedn14.mf -2021/05/29 | 1556 | systems/texlive/tlnet/archive/collection-publishers.r59378.tar.xz -2021/05/29 | 1556 | fonts/schulschriften/source/wesa/wesa14.mf -2021/05/29 | 15555 | fonts/schulschriften/source/wela/wela14_def.mf -2021/05/29 | 154 | fonts/schulschriften/source/wesu/wesusl14.mf -2021/05/29 | 14884 | fonts/schulschriften/source/wesa/wesa14_def.mf -2021/05/29 | 143734 | macros/latex/contrib/keyfloat/keyfloat.dtx -2021/05/29 | 14180 | fonts/schulschriften/source/wedn/wedn14_sz.mf -2021/05/29 | 14175 | fonts/schulschriften/source/wela/wela14_sz.mf -2021/05/29 | 14155 | fonts/schulschriften/source/wesa/wesa14_sz.mf -2021/05/29 | 13587 | language/japanese/pxjahyper/pxjahyper.tex -2021/05/29 | 135864 | systems/texlive/tlnet/archive/jlreq.r59376.tar.xz -2021/05/29 | 1356 | fonts/schulschriften/source/weva/weva14.mf -2021/05/29 | 1278120 | systems/win32/miktex/tm/packages/econ-bst.tar.lzma -2021/05/29 | 12746 | fonts/schulschriften/source/wesu/wesu14_def.mf -2021/05/29 | 127370 | language/japanese/pxjahyper/pxjahyper.pdf -2021/05/29 | 1158849 | systems/win32/miktex/tm/packages/tokcycle.tar.lzma -2021/05/29 | 11566 | fonts/schulschriften/source/weva/weva14_def.mf -2021/05/29 | 1151308 | systems/texlive/tlnet/archive/tokcycle.doc.r59377.tar.xz -2021/05/29 | 1144 | macros/latex/contrib/keyfloat/README.txt -2021/05/29 | 1110294 | systems/win32/miktex/tm/packages/luaotfload.tar.lzma -2021/05/29 | 1096137 | systems/win32/miktex/tm/packages/suftesi.tar.lzma -2021/05/29 | 10516 | fonts/schulschriften/source/wesu/wesu14_sz.mf -2021/05/29 | 1036953 | macros/latex/contrib/keyfloat.zip -2021/05/29 | 1008908 | macros/latex/contrib/keyfloat/keyfloat.pdf -2021/05/29 | 10042 | fonts/schulschriften/source/weva/weva14_sz.mf -2021/05/29 | 100175 | systems/win32/miktex/tm/packages/colorist.tar.lzma diff --git a/language/japanese/pxbase/README-ja.md b/language/japanese/pxbase/README-ja.md index b15ea3336e..53bf41f4fc 100644 --- a/language/japanese/pxbase/README-ja.md +++ b/language/japanese/pxbase/README-ja.md @@ -165,6 +165,12 @@ upLaTeX ã®å ´åˆï¼š 更新履歴 -------- + * Version 1.3 〈2021/05/31〉 + - pxbabel: japanese-otf ã®ã‚³ãƒ¼ãƒ‰å…¥åŠ›å‘½ä»¤ï¼ˆ`\UTF` 等)ã«ã¤ã„ã¦ã€ + éžæ¨™æº–ã®å’Œæ–‡ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã®é©ç”¨æ™‚ã§ã‚‚動作ã™ã‚‹ã‚ˆã†ã«ãƒ‘ッãƒã‚’ + é©ç”¨ã™ã‚‹ã€‚ + - pxbabel: (試験的) `(no)patchutfcmds` オプションを追加。 + * Version 1.2 〈2021/05/22〉 - pxbabel: CJK 言語ã®ãƒ•ã‚©ãƒ³ãƒˆåˆ‡æ›¿ã‚’ japanese-otf ã§å¤šã‚¦ã‚§ã‚¤ãƒˆæ‹¡å¼µ (`deluxe`)を指定ã—ãŸå ´åˆã«å¯¾å¿œã•ã›ãŸã€‚ diff --git a/language/japanese/pxbase/README.md b/language/japanese/pxbase/README.md index 5dee4dac83..5c61ff9728 100644 --- a/language/japanese/pxbase/README.md +++ b/language/japanese/pxbase/README.md @@ -67,6 +67,7 @@ README-ja.md). Revision History ---------------- + * Version 1.3 〈2021/05/31〉 * Version 1.2 〈2021/05/22〉 * Version 1.1b 〈2017/07/03〉 * Version 1.1a 〈2017/06/19〉 diff --git a/language/japanese/pxbase/pxbabel.pdf b/language/japanese/pxbase/pxbabel.pdf index 7d9d7b272f..602077c000 100644 Binary files a/language/japanese/pxbase/pxbabel.pdf and b/language/japanese/pxbase/pxbabel.pdf differ diff --git a/language/japanese/pxbase/pxbabel.sty b/language/japanese/pxbase/pxbabel.sty index 345e2c9000..1ef550c54a 100644 --- a/language/japanese/pxbase/pxbabel.sty +++ b/language/japanese/pxbase/pxbabel.sty @@ -10,7 +10,7 @@ %% package declaration \NeedsTeXFormat{pLaTeX2e} -\ProvidesPackage{pxbabel}[2021/05/22 v1.2 PX Babel interface for CJK] +\ProvidesPackage{pxbabel}[2021/05/31 v1.3 PX Babel interface for CJK] \def\pxbb@pkgname{pxbabel} %--------------------------------------- general @@ -97,6 +97,9 @@ \bxIfExpToEqualX{\mcdefault}{mc}{}{\pxbb@stdjaencodingtrue}% default \DeclareOption{stdjaencoding}{\pxbb@stdjaencodingtrue} \DeclareOption{nostdjaencoding}{\pxbb@stdjaencodingfalse} +\newbool{pxbb@patchutfcmds}\pxbb@patchutfcmdstrue +\DeclareOption{patchutfcmds}{\pxbb@patchutfcmdstrue} +\DeclareOption{nopatchutfcmds}{\pxbb@patchutfcmdsfalse} \newbool{pxbb@forcedeluxemulti} \DeclareOption{forcedeluxemulti}{\pxbb@forcedeluxemultitrue} \DeclareOption{noforcedeluxemulti}{\pxbb@forcedeluxemultifalse} @@ -127,10 +130,13 @@ %--------------------------------------- Resolving settings +%% \ifpxbb@otf %% \ifpxbb@otfmulti %% \ifpxbb@pxotf +\newbool{pxbb@otf} \newbool{pxbb@otfmulti} \newbool{pxbb@pxotf} +\@ifpackageloaded{otf}{\pxbb@otftrue}{} \@ifpackageloaded{mlutf}{\pxbb@otfmultitrue}{} \@ifpackageloaded{pxotf}{\pxbb@otfmultitrue\pxbb@pxotftrue}{} @@ -148,8 +154,18 @@ \ifpxbb@otfmulti\else \ifupTeX\else \pxbb@warn@nocjk + \pxbb@switchfontfalse \fi\fi\fi - +% Check if 'patchutfcmds' is available. +\if \ifpxbb@switchfont + \ifupTeX + \ifpxbb@otf + \ifx\patchcmd\@undefined F\else T\fi + \else F\fi + \else F\fi + \else F\fi F% + \pxbb@patchutfcmdsfalse +\fi % Check if 'forcedeluxemulti' is available. \ifpxbb@forcedeluxemulti \ifupTeX\else @@ -521,6 +537,33 @@ \fi %---- +%--------------------------------------- Patch to '\UTF' etc. +\ifpxbb@patchutfcmds + +%% \pxbb@set@encoding +\edef\pxbb@set@encoding{% + \noexpand\iftdir \noexpand\kanjiencoding{\cy@encoding}% + \noexpand\else \noexpand\kanjiencoding{\ct@encoding}% + \noexpand\fi +} + +%% apply the patch +\@for\pxbb@tmpa:={% + UTF,UTFK,UTFC,UTFT,UTFM,CID,CIDK,CIDC,CIDT% +}\do{% + \ifcsdef{\pxbb@tmpa\space}{%then + \expandafter\patchcmd\csname \pxbb@tmpa\space\endcsname{%from + \begingroup\edef\reserved@a + }{%to + \begingroup\pxbb@set@encoding\edef\reserved@a + }{}{%failure + \PackageWarningNoLine\pxbb@pkgname + {Cannot patch to '\@backslashchar\pxbb@tmpa_'}% + }% + }{}% +} + +\fi %--------------------------------------- Other user commands %%<*> \cjklanguagename{} diff --git a/language/japanese/pxbase/pxbabel.tex b/language/japanese/pxbase/pxbabel.tex index 065607a97a..3482bc161a 100644 --- a/language/japanese/pxbase/pxbabel.tex +++ b/language/japanese/pxbase/pxbabel.tex @@ -1,6 +1,7 @@ % 文字コード㯠UTF-8 % uplatex ã§çµ„版ã™ã‚‹ \documentclass[uplatex,dvipdfmx,a4paper]{jsarticle} +\renewcommand{\headfont}{\gtfamily\romanseries{sbc}\sffamily} \usepackage[T1]{fontenc} \usepackage{lmodern,textcomp} \usepackage{color} @@ -15,8 +16,8 @@ \bxtexlogoimport{*} \usepackage{shortvrb} \MakeShortVerb{\|} -\newcommand{\PkgVersion}{1.2} -\newcommand{\PkgDate}{2021/05/22} +\newcommand{\PkgVersion}{1.3} +\newcommand{\PkgDate}{2021/05/31} \newcommand{\Pkg}[1]{\textsf{#1}} \newcommand{\Meta}[1]{$\langle$\mbox{}#1\mbox{}$\rangle$} \newcommand{\Note}{\par\noindent ※} @@ -40,7 +41,7 @@ \label{sec:Overview} {(u)\pLaTeX}ã«ãŠã‘る日本語・簡体字中国語・ç¹ä½“字中国語・ -韓国語(以下ã“ã®4ã¤ã‚’「CJK言語ã€ã¨ç·ç§°ã™ã‚‹ï¼‰ã®é–“ã® +韓国語ã®é–“㮠「和文(CJK)フォントã€ã®åˆ‡ã‚Šæ›¿ãˆã‚’Babelã®ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‚’ 用ã„ã¦è¡Œãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚ @@ -63,6 +64,9 @@ \label{ssec:terminology} \begin{itemize} +\item CJK言語\Means +「日本語ã€ã€Œç°¡ä½“字中国語ã€ã€Œç¹ä½“字中国語ã€ã€ŒéŸ“国語ã€ã®ç·ç§°ã€‚% +\footnote{普通ã®æ„味ã§ã€Œè¨€èªžã€ã®åŒºåˆ¥ã¨ã„ãˆã‚‹ã‹ã¯å•é¡Œã«ã—ãªã„。} \item CJK言語識別å­\Means 本パッケージã«ãŠã„ã¦CJK言語を指ã—示ã™ã€ä»¥ä¸‹ã®æ–‡å­—列。 \begin{itemize} @@ -130,12 +134,11 @@ CJK言語をéžä»®æƒ³è¨€èªžã¨ã—ã¦æ‰±ã„ã€å®Ÿéš›ã«ä½¿ç”¨ã™ã‚‹Babelã®è¨€èªž \item Babelã®æœ‰åŠ¹ãªè¨€èªžå\Means ãã®è¨€èªžã®å®šç¾©ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€ã€‚ -\Note ç¾çŠ¶ã§ã¯ã€åˆ†é›¢èª­è¾¼ãƒ¢ãƒ¼ãƒ‰ã§ã‚‚ã“ã®æ©Ÿèƒ½ã¯æœ‰åŠ¹ã§ã‚ã‚‹ãŒã€ -確実ã«å‹•ä½œã•ã›ã‚‹ã®ãŒå›°é›£ã§ã‚ã‚‹ãŸã‚ã€å°†æ¥çš„ã« -「分離読込モードã§ã¯CJK言語ã®ã¿ãŒæŒ‡å®šå¯èƒ½ -\footnote{ã¤ã¾ã‚Šã€CJK言語以外ã¯\texttt{babel}ã®ã‚ªãƒ—ションã¨ã—㦠-指定ã™ã‚‹å¿…è¦ãŒã‚る。}〠-ã¨ãªã‚‹å¯èƒ½æ€§ãŒã‚る。 +\Note 分離読込モードã§ã®éžCJK言語ã®èª­è¾¼ã«ã¤ã„ã¦ã¯ +確実ã«å‹•ä½œã•ã›ã‚‹ã®ãŒå›°é›£ã§ã‚ã‚‹ãŸã‚〠+1.3版ã«ãŠã„ã¦\textbf{éžæŽ¨å¥¨}ã®æ‰±ã„ã¨ã™ã‚‹ã€‚ +ã™ãªã‚ã¡ã€åˆ†é›¢èª­è¾¼ãƒ¢ãƒ¼ãƒ‰ã§ã¯CJK言語ã®ã¿ãŒæŒ‡å®šå¯èƒ½ã¨ãªã‚Šã€ +CJK言語以外ã¯\texttt{babel}ã®ã‚ªãƒ—ションã¨ã—ã¦æŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚る。 \item |main=|\Meta{言語å}\Means 文書開始時ã«æœ‰åŠ¹ã¨ãªã‚‹åŸºåº•è¨€èªžã‚’ã€è¨€èªžå @@ -159,8 +162,7 @@ CJK言語をéžä»®æƒ³è¨€èªžã¨ã—ã¦æ‰±ã„ã€å®Ÿéš›ã«ä½¿ç”¨ã™ã‚‹Babelã®è¨€èªž (Babelã®æ—¢å®šå‹•ä½œã€‚) \item |auto|(既定値)\Means 文書開始時ã®åŸºåº•è¨€èªžãŒ - 「言語オプション定義ファイルã®èª­è¾¼ã‚’ä¼´ã‚ãªã„CJK言語〠- (仮ã«ã€Œä»®æƒ³è¨€èªžè¨­å®šã€ã¨å‘¼ã¶ï¼‰ã®å ´åˆã¯ |default|〠+ 仮想言語ã®å ´åˆã¯ |default|〠ãれ以外㯠|switch|。 \end{itemize} \Note 詳細ã¯\ref{sec:Caption-Lang}節をå‚照。 @@ -176,7 +178,18 @@ CJK言語をéžä»®æƒ³è¨€èªžã¨ã—ã¦æ‰±ã„ã€å®Ÿéš›ã«ä½¿ç”¨ã™ã‚‹Babelã®è¨€èªž CJK言語ã§ãƒ•ã‚©ãƒ³ãƒˆã‚’切り替ãˆã‚‹æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã€‚ \item |noswitchfont|\Means -|switchfont| ã®å¦å®šã€‚ +|switchfont|ã®å¦å®šã€‚ + +\item |stdjaencoding|\Means +入力言語ãŒæ—¥æœ¬èªžã®å ´åˆã«ã¯{\upLaTeX}標準ã®ã€Œå’Œæ–‡ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã€ã‚’ +é©ç”¨ã™ã‚‹ã€‚ +\Note 詳細ã¯\ref{ssec:switch-jafont}節をå‚照。 +{\upLaTeX}ã§ã®ã¿æ„味をもã¤ã€‚ + +\item |nostdjaencoding|(既定)\Means +|nostdjaencoding|ã®å¦å®šã€‚ +\Note \Pkg{japanese-otf}パッケージãŒèª­è¾¼æ¸ˆã®å ´åˆã«ã¯ +既定ãŒ|stdjaencoding|ã«å¤‰æ›´ã•ã‚Œã‚‹ã€‚ \item |forcedeluxemulti|\Means {\upLaTeX}ã§\Pkg{japanese-otf}パッケージを @@ -192,6 +205,16 @@ CJK言語ã§ãƒ•ã‚©ãƒ³ãƒˆã‚’切り替ãˆã‚‹æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã€‚ \Note 約物ã®å‘¨ã‚Šã®ç©ºã調整ãŒæ­£å¸¸ã«è¡Œã‚れる。 \Note (|no|)|forcedeluxemulti|ã¯è©¦é¨“çš„ãªæ©Ÿèƒ½ã§ã‚り〠将æ¥çš„ã«å»ƒæ­¢ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚る。 + +\item |patchutfcmds|(既定値)\Means +\Pkg{japanese-otf}パッケージã®ã‚³ãƒ¼ãƒ‰å…¥åŠ›å‘½ä»¤ï¼ˆ\XS|\UTF|命令等) +ã«ã¤ã„ã¦ã€ã€Œéžæ¨™æº–ã®å’Œæ–‡ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ãŒé©ç”¨ã•ã‚Œã‚‹å ´åˆã«ã‚‚ +正常動作ã™ã‚‹ã€ã‚ˆã†ã«ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚ + +\item |nopatchutfcmds|\Means +|patchutfcmds|ã®å¦å®šã€‚ +\Note (|no|)|patchutfcmds|ã¯è©¦é¨“çš„ãªæ©Ÿèƒ½ã§ã‚り〠+å°†æ¥çš„ã«å»ƒæ­¢ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚る。 \end{itemize} %=========================================================== @@ -223,17 +246,31 @@ CJK言語ã§ãƒ•ã‚©ãƒ³ãƒˆã‚’切り替ãˆã‚‹æ©Ÿèƒ½ã‚’有効ã«ã™ã‚‹ã€‚ \begin{itemize} \item |\cjklanguagename{|\Meta{CJK言語識別å­}|}|\Means -ãã®CJK言語ã«å¯¾ã™ã‚‹è¨€èªžå。 +ãã®CJK言語ã«å¯¾ã™ã‚‹Babel言語å。 +\Note 完全展開å¯èƒ½ã§ã‚る。 \Note 例ãˆã°ã€ãƒ‘ッケージオプションã§|schinese=chinesesimp|ã¨æŒ‡å®šã—ãŸå ´åˆã€ |\cjklanguagename|\hspace{0pt}|{schinese}|\XS 㯠「|chinesesimp|ã€ã«å±•é–‹ã•ã‚Œã‚‹ã€‚ + +\item |\UTFJ{|\Meta{Unicode符å·å€¤}|}|\Means +常ã«ã€Œæœ¬æ¥ã®\XS|\UTF|命令ã€ã®å‹•ä½œã‚’ã™ã‚‹ã€‚ +\Note 本パッケージã§|switchfont|ãŒæœ‰åŠ¹ã§ã€ã‹ã¤\Pkg{japanese-otf}㌠+|multi|付ã§èª­ã¿è¾¼ã¾ã‚Œã¦ã„ã‚‹å ´åˆã«å®šç¾©ã•ã‚Œã‚‹ã€‚% +\footnote{ãŸã ã—ã€|\UTFJ|命令ã¯æ–‡æ›¸æœ¬ä½“開始時ã«å®šç¾©ã•ã‚Œã‚‹ã“ã¨ã«æ³¨æ„。 +プリアンブルã§ã¯|\UTF|命令ã®åˆ‡æ›¿ã¯ã¾ã ç™ºç”Ÿã—ãªã„ã®ã§ã€ +日本語用ã«ã¯|\UTF|命令を使ãˆã°ã‚ˆã„。}% +ã“ã®å ´åˆã€å…¥åŠ›è¨€èªžãŒæ—¥æœ¬èªžä»¥å¤–ã®CJK言語ã®ã¨ãã«\XS|\UTF|命令ã®å‹•ä½œãŒ +他言語用(|\UTFK|等)ã«åˆ‡ã‚Šæ›¿ã‚ã‚‹ã®ã§ã€æœ¬æ¥ã®æ—¥æœ¬èªžç”¨ã®\XS|\UTF|命令㌠+å¿…è¦ãªã¨ãã«ã¯\XS|\UTFJ|を利用ã™ã‚Œã°ã‚ˆã„。 +\Note 詳細ã¯\ref{ssec:switch-utffont}節をå‚照。 + \end{itemize} %=========================================================== \section{キャプション言語ã®å›ºå®šã«é–¢ã™ã‚‹è¨­å®š} \label{sec:Caption-Lang} -Babelã§ã¯è¨€èªžã®åˆ‡æ›¿ã«é–¢ã—ã¦ã€å…¥åŠ›è¨€èªžã®ã¿ã‚’切り替ãˆã‚‹ã‚‚ã® +Babelã«ãŠã‘る言語切替ã®æŒ‡å®šã¯å¤§åˆ¥ã™ã‚‹ã¨ã€å…¥åŠ›è¨€èªžã®ã¿ã‚’切り替ãˆã‚‹ã‚‚㮠(|\foreignlanguage|命令ã€|otherlanguage*|\XS 環境) ã¨åŸºåº•è¨€èªžã‚’切り替ãˆã‚‹ã‚‚㮠(|\selectlanguage|命令ã€|otherlanguage|環境) @@ -241,16 +278,18 @@ Babelã§ã¯è¨€èªžã®åˆ‡æ›¿ã«é–¢ã—ã¦ã€å…¥åŠ›è¨€èªžã®ã¿ã‚’切り替ãˆã‚‹ã‚‚ (|caption=switch|指定時ã¨åŒã˜ï¼‰ã€‚ ã¨ã“ã‚ãŒã€å®Ÿéš›ã®è¨€èªžå®šç¾©ã‚’ä¼´ã‚ãªã„仮想言語ã«ãŠã„ã¦ã¯ã€ -キャプション文字列ã®è¨­å®šã¯åƒã‹ãªã„。 +キャプション文字列ã®è¨­å®šã¯è¡Œã‚ã‚Œãªã„。 ã“ã®ãŸã‚ã€åŸºåº•è¨€èªžã‚’仮想言語ã«åˆ‡ã‚Šæ›¿ãˆãŸå ´åˆã«ã¯ -キャプション言語ãŒæ­£ã—ããªã„事態ãŒç”Ÿã˜ã‚‹ã“ã¨ã«ãªã‚‹ã€‚% -\footnote{ãŸã ã—「文書開始時以外ã«åŸºåº•è¨€èªžã‚’仮想言語ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã€ +キャプション言語ãŒæ­£ã—ããªã„事態ãŒç”Ÿã˜ãˆã‚‹ã€‚% +\footnote{ãŸã ã—「文書開始時以外ã«ï¼ˆå…¥åŠ›è¨€èªžã§ãªã) + 基底言語を仮想言語ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã€ ã“ã¨ã‚’ã—ãªã‘ã‚Œã°å•é¡Œã¯èµ·ã“らãªã„。 特ã«ã€ã€Œæ—¥æœ¬èªžã®æ–‡æ›¸ã‚¯ãƒ©ã‚¹ã‚’用ã„ã¦ã€ã‹ã¤Babelã«ãŠã„㦠仮想言語扱ã„ã®æ—¥æœ¬èªžã‚’文書全体ã§åŸºåº•è¨€èªžã«ã™ã‚‹ã€ - å ´åˆã¯ã€ã‚­ãƒ£ãƒ—ションã¯æ–‡æ›¸ã‚¯ãƒ©ã‚¹ã§å®šã‚ãŸã‚‚ã®ã«å›ºå®šã•ã‚Œã‚‹ã€‚} + å ´åˆã¯ã€ã‚­ãƒ£ãƒ—ションã¯æ–‡æ›¸ã‚¯ãƒ©ã‚¹ã§å®šã‚ãŸã‚‚ã®ã«å›ºå®šã•ã‚Œã‚‹ã€‚ + 多ãã®å ´åˆã“ã‚Œã¯å¥½éƒ½åˆãªå‹•ä½œã ã‚ã†ã€‚} ã“ã‚Œã«ã‚ˆã‚‹æ··ä¹±ã‚’é¿ã‘ã‚‹ãŸã‚ã«ã€|caption|オプションã«ã‚ˆã‚‹ -キャプション言語ã®å›ºå®šãŒæœ‰ç”¨ã§ã‚ã‚‹å ´åˆãŒã‚る。 +キャプション言語ã®å›ºå®šãŒæœ‰ç”¨ã‹ã‚‚ã—ã‚Œãªã„。 特ã«ã€ã€ŒBabelã«ã‚ˆã‚‹ã‚­ãƒ£ãƒ—ション文字列ã®å¤‰æ›´ã‚’抑止ã—ã¦æ–‡æ›¸ã‚¯ãƒ©ã‚¹ã§ 定ã‚ãŸæ–‡å­—列を常ã«æœ‰åŠ¹ã«ã—ãŸã„ã€ã¨ã„ã†å ´åˆã¯ã€ @@ -260,12 +299,12 @@ Babelã§ã¯è¨€èªžã®åˆ‡æ›¿ã«é–¢ã—ã¦ã€å…¥åŠ›è¨€èªžã®ã¿ã‚’切り替ãˆã‚‹ã‚‚ (Babelã®æ—¢å®šå‹•ä½œã«ç›¸å½“ã™ã‚‹|switch|ã§ã¯ãªã) |default|ã¨ã—ã¦ã„る。 -\Note 0.9版よりå‰ã¯å¸¸ã«|default|を既定値ã¨ã—ã¦ã„ãŸã€‚ +\Note 0.9版よりå‰ã¯å¸¸ã«|default|を既定値ã¨ã—ã¦ã„ãŒã€ +既定言語ãŒä»®æƒ³è¨€èªžã§ãªã„å ´åˆã¯|default|ã«ã™ã‚‹å¿…然性ãŒå°‘ãªã„ãŸã‚〠+Babelã®æ—¢å®šå‹•ä½œã«åˆã‚ã›ã‚‹ç›®çš„ã§ä»•æ§˜ãŒå¤‰æ›´ã•ã‚ŒãŸã€‚ ゆãˆã«ã€|caption|(ãŠã‚ˆã³(|no|)|switchcaption|)オプション -指定ãŒãªã基底言語ãŒä»®æƒ³è¨€èªžã§ãªã„å ´åˆã®|caption|設定ã¯ã€ +指定ãŒãªãã‹ã¤åŸºåº•è¨€èªžãŒä»®æƒ³è¨€èªžã§ãªã„å ´åˆã®|caption|設定ã¯ã€ 0.9版よりå‰ã¯|default|ã€ä»¥é™ã¯|switch|ã¨ç•°ãªã‚‹ã“ã¨ã«ãªã‚‹ã€‚ -仮想言語設定ã§ãªã„å ´åˆã¯|default|ã«ã™ã‚‹å¿…然性ãŒå°‘ãªã„ã®ã§ã€ -Babelã®æ—¢å®šå‹•ä½œã«åˆã‚ã›ã‚‹ç›®çš„ã§ä»•æ§˜ãŒå¤‰æ›´ã•ã‚ŒãŸã€‚ \Note \Pkg{bxbase}パッケージã®\XS|\fixcaptiopnlanguage|命令ã«ã‚ˆã‚‹ キャプション言語固定ã®è¨­å®šã¯ã€å¸¸ã«æœ¬ãƒ‘ッケージã§ã®è¨­å®šã‚ˆã‚Šå„ªå…ˆã•ã‚Œã‚‹ã€‚ @@ -276,7 +315,10 @@ Babelã®æ—¢å®šå‹•ä½œã«åˆã‚ã›ã‚‹ç›®çš„ã§ä»•æ§˜ãŒå¤‰æ›´ã•ã‚ŒãŸã€‚ \section{CJKフォント切替機能ã®åŽŸç†} \label{sec:Switch-Font} -\subsection{{\upLaTeX}ã«ãŠã„ã¦} +次ã®2ã¤ã®ä»•çµ„を用æ„ã—ã¦ã„る。 + +\subsection{標準和文フォントã®åˆ‡æ›¿ï¼ˆ{\upLaTeX}ã®ã¿ï¼‰} +\label{ssec:switch-jafont} {\upTeX}ã¯æ¨™æº–ã§ã€CJK言語ã®{\TeX}フォント(和文TFM)を用æ„ã—ã¦ã„る。 本パッケージã¯Babelã«ãŠã„ã¦CJK言語ã®åˆ‡æ›¿å‡¦ç†ï¼ˆ|\extras...|\XS マクロ) @@ -288,30 +330,53 @@ Babelã®æ—¢å®šå‹•ä½œã«åˆã‚ã›ã‚‹ç›®çš„ã§ä»•æ§˜ãŒå¤‰æ›´ã•ã‚ŒãŸã€‚ %フォントã®åˆ‡æ›¿ã®ã¿ã‚’ã™ã‚‹ç°¡æ˜“ã®è¨€èªžã‚ªãƒ—ション(仮想言語設定) %ã‚’ãã®å ´ã§ç”Ÿæˆã™ã‚‹ã€‚ -\subsection{{\pLaTeX}ã«ãŠã„ã¦} - -\Pkg{japanese-otf}パッケージã®|multi|オプションã¯{\pLaTeX}ã«ãŠã„㦠+\Note 標準和文フォントã®åˆ‡æ›¿ã¯ã€å†…部的ã«ã¯ã€Œå’Œæ–‡ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã€ +を切り替ãˆã‚‹ã“ã¨ã§å®Ÿç¾ã—ã¦ã„る。 +ã¨ã“ã‚ãŒã€æ¨™æº–以外ã®ã€Œå’Œæ–‡ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã€ãŒæŒ‡å®šã•ã‚Œã¦ã„る状態ã§ã¯ã€ +他パッケージã®ï¼ˆå’Œæ–‡ãƒ•ã‚©ãƒ³ãƒˆã«é–¢ã™ã‚‹ï¼‰æ©Ÿèƒ½ã«ä¸å…·åˆãŒç”Ÿã˜ã‚‹å¯èƒ½æ€§ãŒã‚る。 +ã“ã‚Œã¯æ—¥æœ¬èªžä»¥å¤–ã®CJK言語を使ã†å ´åˆã«ã¯ã‚る程度ã¯ä»•æ–¹ãŒãªã„ã§ã‚ã‚ã†ã€‚ +ãŸã ã—ã€ç¾çŠ¶ã®æ—¢å®šã§ã¯å…¥åŠ›è¨€èªžãŒæ—¥æœ¬èªžã§ã‚ã‚‹å ´åˆã«ã‚‚éžæ¨™æº–ã® +「和文エンコーディングã€ãŒé©ç”¨ã•ã‚Œã‚‹ã€‚% +\footnote{標準ã®æ¨ªçµ„ï¼ç¸¦çµ„ã®ã€Œå’Œæ–‡ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã€ã¯|JY2|/|JT2|㧠+ ã‚ã‚‹ãŒã€ãƒ•ã‚©ãƒ³ãƒˆåˆ‡æ›¿ã‚’有効ã«ã—ã¦å…¥åŠ›è¨€èªžã‚’日本語ã«ã—ãŸå ´åˆã«ã¯ + |J20|/|J30|(|jis2004|有効時ã«ã¯|J24|/|J34|)ãŒé©ç”¨ã•ã‚Œã‚‹ã€‚}% +|stdjaencoding| オプションを指定ã™ã‚‹ã¨ +「入力言語ãŒæ—¥æœ¬èªžã®å ´åˆã«ã¯æ¨™æº–ã®å’Œæ–‡ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’使ã†ã€ +動作ã«åˆ‡ã‚Šæ›¿ã‚ã‚‹ã®ã§ã€ä¸å…·åˆãŒå›žé¿ã§ãã‚‹å¯èƒ½æ€§ãŒã‚る。% +\footnote{最近ã®{\upLaTeX}ã®æ¨™æº–設定ã§ã¯ã€å®Ÿã¯éžæ¨™æº–ã® +「和文エンコーディングã€ã‚’使ã†ãƒ¡ãƒªãƒƒãƒˆãŒã»ã¼ãªããªã£ã¦ã„る。 +従ã£ã¦ã€Œå¸¸ã«|stdjaencoding|を指定ã™ã‚‹ã€ã¨ã„ã†æ–¹é‡ã§ã‚‚構ã‚ãªã„。 +ç¾åœ¨ã€|stdjaencoding|ã®æ—¢å®šå€¤ã®å¤‰æ›´ã‚’検討ã—ã¦ã„る。} + +\subsection{{\textbackslash UTF}命令ã«å¯¾ã™ã‚‹èª¿æ•´} +\label{ssec:switch-utffont} + +\Pkg{japanese-otf}パッケージã®|multi|オプション㯠韓国語・中国語を扱ã†ãŸã‚ã®ã‚‚ã®ã§ã€ -ã“れを使ã†ã¨\XS|\UTFK|ï¼|\UTFC|ï¼|\UTFT|ã®å„命令㧠-韓国語ï¼ç°¡ä½“字中国語ï¼ç¹ä½“字中国語ã®ãƒ•ã‚©ãƒ³ãƒˆã‚’用ã„㦠-文字ãŒå‡ºåŠ›ã•ã‚Œã‚‹ -(ã“れらã®å‘½ä»¤ã®å¼•æ•°ã¯\XS|\UTF|ã¨åŒã˜ã§16進表記ã®Unicode符å·å€¤ï¼‰ã€‚ - -{\pLaTeX}ã«ãŠã‘る本パッケージã®å‹•ä½œã¯æ¬¡ã®ã‚ˆã†ã§ã‚る。 -%ã¾ãšã€{\upLaTeX}ã®å ´åˆã¨åŒã˜ã‚ˆã†ã«CJK言語ã®ãŸã‚ã® -%Babel言語オプションを生æˆã™ã‚‹ã€‚ -Babelã®è¨€èªžãŒCJK言語ã«åˆ‡ã‚Šæ›¿ã‚ã£ãŸå ´åˆã«ã¯ã€ -|\UTF|ã®å‹•ä½œã‚’「本æ¥ã®\XS|\UTF|ã€ï¼|\UTFK|ï¼|\UTFC|ï¼|\UTFT| -ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã€‚ +ã“れを有効ã«ã™ã‚‹ã¨\XS|\UTFK|ï¼|\UTFC|ï¼|\UTFT|ã®å„命令 +\footnote{\XS|\UTF|ã¨åŒæ§˜ã«ã€ã“れらã®å‘½ä»¤ã®å¼•æ•°ã«ã¯Unicode符å·å€¤ã‚’ + 16進表記ã§æŒ‡å®šã™ã‚‹ã€‚}% +ã§éŸ“国語ï¼ç°¡ä½“字中国語ï¼ç¹ä½“字中国語ã®ãƒ•ã‚©ãƒ³ãƒˆã‚’用ã„㦠+文字を出力ã™ã‚‹ã“ã¨ãŒã§ãる。 + +本パッケージを読ã¿è¾¼ã‚€ã¨ã€ +Babelã®å…¥åŠ›è¨€èªžãŒCJK言語ã«åˆ‡ã‚Šæ›¿ã‚ã£ãŸå ´åˆã«è¨€èªžã«å¿œã˜ã¦\XS +|\UTF|ã®å‹•ä½œã‚’「本æ¥ã®\XS|\UTF|ã€\<ï¼|\UTFK|ï¼|\UTFC|ï¼|\UTFT| +ã®ä½•ã‚Œã‹ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã‚ˆã†ã«ãªã‚‹ã€‚ +ã¾ãŸã€ã€Œæœ¬æ¥ã®\XS|\UTF|ã€ã®å‹•ä½œã‚’ã™ã‚‹å‘½ä»¤\XS|\UTFJ|ãŒæä¾›ã•ã‚Œã‚‹ã®ã§ã€ +入力言語ãŒæ—¥æœ¬èªžä»¥å¤–ã®ã¨ãã«æ—¥æœ¬èªžã®æ–‡å­—を入力ã—ãŸã„ +å ´åˆã«ã¯\XS|\UTFJ|を利用ã™ã‚Œã°ã‚ˆã„。 + ã“ã®æ©Ÿèƒ½ã¯å˜ç‹¬ã§ã¯ã‚ã¾ã‚Šæœ‰ç”¨ã¨ã¯ã„ãˆãªã„ãŒã€ -\Pkg{bxutf8}入力エンコーディング +{\pLaTeX}ã«ãŠã„ã¦\Pkg{bxutf8}入力エンコーディング ã¨ä½µç”¨ã—ã¦CJK言語ã®UTF-8直接入力を行ã†æ™‚ã«æœ‰ç”¨ã¨ãªã‚‹ã€‚ -ã™ãªã‚ã¡ç›´æŽ¥å…¥åŠ›ã•ã‚ŒãŸCJK文字ã¯\XS|\UTF|ã«å¸°ç€ã™ã‚‹ã®ã§ã€ -çµæžœçš„ã«{\upLaTeX}ã®æ™‚ã¨åŒã˜ã‚ˆã†ã«ã€Babelã§åˆ‡ã‚Šæ›¿ãˆãŸè¨€èªžç”¨ã® -フォントã§å‡ºåŠ›ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã¨ãªã‚‹ã€‚ +ã™ãªã‚ã¡ã€ç›´æŽ¥å…¥åŠ›ã•ã‚ŒãŸCJK文字ã¯\XS|\UTF|ã«å¸°ç€ã™ã‚‹ã®ã§ã€ +çµæžœçš„ã«{\upLaTeX}ã®æ™‚ã¨åŒã˜ã‚ˆã†ã«ã€ç¾åœ¨ã®å…¥åŠ›è¨€èªžç”¨ã® +フォントã§å‡ºåŠ›ã•ã‚Œã‚‹ã“ã¨ã«ãªã‚‹ã€‚ -\Note ãŸã ã—ã€ã“ã®æ©Ÿæ§‹ã«ã¯ã€ -「JIS X~0208ã«ã‚る文字ã¯ãã‚‚ãã‚‚\XS|\UTF|ã«å¤‰æ›ã•ã‚Œãªã„ã®ã§ +\Note ãŸã ã—ã€ã“ã®æ–¹ç­–ã¯ã€ +「({\pLaTeX}ã§ã¯ï¼‰ +JIS X~0208ã«ã‚る文字ã¯ãã‚‚ãã‚‚\XS|\UTF|ã«å¤‰æ›ã•ã‚Œãªã„ã®ã§ 常ã«æ—¥æœ¬èªžãƒ•ã‚©ãƒ³ãƒˆã§å‡ºåŠ›ã•ã‚Œã¦ã—ã¾ã†ã€ ã¨ã„ã†æ¬ ç‚¹ã‚’ã‚‚ã¤ã€‚ ã“れを解決ã™ã‚‹ã«ã¯\Pkg{pxfltsrc}パッケージ等ã®æ©Ÿèƒ½ã‚’用ã„㦠diff --git a/language/japanese/pxbase/pxbase.sty b/language/japanese/pxbase/pxbase.sty index 56dbb1d053..0078547e4f 100644 --- a/language/japanese/pxbase/pxbase.sty +++ b/language/japanese/pxbase/pxbase.sty @@ -8,7 +8,7 @@ %% This package is distributed under the MIT License. %% \NeedsTeXFormat{pLaTeX2e} -\ProvidesPackage{pxbase}[2021/05/22 v1.2 PX base library] +\ProvidesPackage{pxbase}[2021/05/31 v1.3 PX base library] % The pxbase package now does the same thing as the bxbase package. \RequirePackageWithOptions{bxbase}[2017/05/29] \endinput diff --git a/language/japanese/pxbase/pxbasenc.def b/language/japanese/pxbase/pxbasenc.def index 3168617933..df54e082bf 100644 --- a/language/japanese/pxbase/pxbasenc.def +++ b/language/japanese/pxbase/pxbasenc.def @@ -4,7 +4,7 @@ %% file declaration \NeedsTeXFormat{pLaTeX2e} -\ProvidesFile{pxbasenc.def}[2021/05/22 v1.2 PX encoding library] +\ProvidesFile{pxbasenc.def}[2021/05/31 v1.3 PX encoding library] \def\pxec@pkgname{PXbase} % bundle name %% code guards diff --git a/language/japanese/pxbase/pxjsfenc.def b/language/japanese/pxbase/pxjsfenc.def index 44ef99b3b1..52210eabec 100644 --- a/language/japanese/pxbase/pxjsfenc.def +++ b/language/japanese/pxbase/pxjsfenc.def @@ -4,7 +4,7 @@ %% file declaration \NeedsTeXFormat{pLaTeX2e} -\ProvidesFile{pxjsfenc.def}[2021/05/22 v1.2 PX JSF encoding] +\ProvidesFile{pxjsfenc.def}[2021/05/31 v1.3 PX JSF encoding] %% code guards \edef\pxec@jsf@restore@codes{% diff --git a/language/japanese/pxbase/upkcat.sty b/language/japanese/pxbase/upkcat.sty index 4f95a26d7b..721bddd2e2 100644 --- a/language/japanese/pxbase/upkcat.sty +++ b/language/japanese/pxbase/upkcat.sty @@ -35,7 +35,7 @@ %% package declaration \NeedsTeXFormat{pLaTeX2e} -\ProvidesPackage{upkcat}[2021/05/22 v1.2 safe kcatcode access] +\ProvidesPackage{upkcat}[2021/05/31 v1.3 safe kcatcode access] %--------------------------------------- main diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md index 4997754b3c..0ebb2a67e7 100644 --- a/macros/latex-dev/base/README.md +++ b/macros/latex-dev/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2021-06-01 pre-release 3 +Release 2021-12-01 pre-release 0 Overview -------- diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf index b763b6bda8..1ed2d7cf4f 100644 Binary files a/macros/latex-dev/base/alltt.pdf and b/macros/latex-dev/base/alltt.pdf differ diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf index dea65fdbf8..496657f44e 100644 Binary files a/macros/latex-dev/base/cfgguide.pdf and b/macros/latex-dev/base/cfgguide.pdf differ diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt index 75e7d04a2f..634eb0e351 100644 --- a/macros/latex-dev/base/changes.txt +++ b/macros/latex-dev/base/changes.txt @@ -6,6 +6,50 @@ completeness or accuracy and it contains some references to files that are not part of the distribution. ================================================================================ +================================================================================ +All changes above are only part of the development branch for the next release. +================================================================================ + +######################### +# 2020-06-01 Release +######################### + +2021-05-31 David Carlisle + + * ltclass.dtx: Initialise \@raw@classoptionslist to \relax to + match \@classoptionslist + +2021-05-30 Frank Mittelbach + + * doc.dtx (subsection{Macros for the `documentation parts'}): + Use same error message text as in format + +2021-05-26 Frank Mittelbach + + * ltdefns.dtx (subsection{Robust commands and protect}): + Normalize error message in \MakeRobust + +2021-05-26 Phelype Oleinik + + * lthooks.dtx: + Remove deprecated \DeclareDefaultHookLabel for good. + +2021-05-25 Frank Mittelbach + + * lthooks.dtx, ltfilehook.dtx: + Normalized some error message texts + +2021-05-24 Frank Mittelbach + + * ltcmd.dtx, ltcmdhooks.dtx, ltfilehook.dtx, lthooks.dtx, ltpara.dtx: + Use \msg_... instead of \__kernel_msg... commands for normalized + error and warning commands. + +2021-05-14 Frank Mittelbach + + * ltoutput.dtx: normalize the error commands, always use + \@latex@error not \@latexerr + 2021-04-29 Frank Mittelbach * lthooks.dtx (subsection{\LaTeXe{} package interface commands}): @@ -16,7 +60,6 @@ are not part of the distribution. * lthooks.dtx, ltfilehook.dtx: Switch to kernel (not package) errors. - 2021-04-29 Marcel Krüger * ltoutenc.dtx (subsection{Definitions for the TU encoding}): @@ -359,11 +402,6 @@ are not part of the distribution. * ltmiscen.dtx (subsection{Environments}): \enddocument should always start out in vmode (gh/385) -================================================================================ -All changes above are only part of the development branch for the next release. -================================================================================ - - ######################### # 2020-10-01 PL 4 Release ######################### diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf index cf7d562b56..ba722ade83 100644 Binary files a/macros/latex-dev/base/classes.pdf and b/macros/latex-dev/base/classes.pdf differ diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf index d41d2f7dc7..1be79a4d94 100644 Binary files a/macros/latex-dev/base/clsguide.pdf and b/macros/latex-dev/base/clsguide.pdf differ diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf index 65eada2d18..661a4f3547 100644 Binary files a/macros/latex-dev/base/cmfonts.pdf and b/macros/latex-dev/base/cmfonts.pdf differ diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf index b81d5740dd..8b411f291a 100644 Binary files a/macros/latex-dev/base/cyrguide.pdf and b/macros/latex-dev/base/cyrguide.pdf differ diff --git a/macros/latex-dev/base/doc.dtx b/macros/latex-dev/base/doc.dtx index c1a96948a8..fb3412f21f 100644 --- a/macros/latex-dev/base/doc.dtx +++ b/macros/latex-dev/base/doc.dtx @@ -35,7 +35,7 @@ %<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01] %<+package> \ProvidesPackage{doc} %<+shortvrb>\ProvidesPackage{shortvrb} -%<+package|shortvrb> [2020/11/23 v2.1m +%<+package|shortvrb> [2021/05/28 v2.1n %<+package|shortvrb> Standard LaTeX documentation package (FMi)] %\catcode`\<=12 % @@ -2117,6 +2117,7 @@ % \begin{macro}{\verb@eol@error} % \changes{v1.8b}{1993/09/21}{Renamed \cs{verb@err} to % \cs{verb@eol@error}, as in new LaTeX verbatim.} +% \changes{v2.1n}{2021/05/28}{Use same error message text as in format} % \begin{macrocode} \let\verb@balance@group\@empty @@ -2126,7 +2127,7 @@ \obeylines% \gdef\verb@eol@error{\obeylines% \def^^M{\verb@egroup\@latex@error{% - Text for \noexpand\verb command ended by end of line}\@ehc}}% + \noexpand\verb ended by end of line}\@ehc}}% \endgroup % \end{macrocode} % \end{macro} diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf index b4b752d02f..e40bac6c17 100644 Binary files a/macros/latex-dev/base/doc.pdf and b/macros/latex-dev/base/doc.pdf differ diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf index 1f93adfd24..535c38f3f0 100644 Binary files a/macros/latex-dev/base/docstrip.pdf and b/macros/latex-dev/base/docstrip.pdf differ diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf index 2682e5e3a1..7174fe634d 100644 Binary files a/macros/latex-dev/base/encguide.pdf and b/macros/latex-dev/base/encguide.pdf differ diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf index c15633e2c5..d814296c9e 100644 Binary files a/macros/latex-dev/base/exscale.pdf and b/macros/latex-dev/base/exscale.pdf differ diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf index d8149b7da8..5353d938f3 100644 Binary files a/macros/latex-dev/base/fix-cm.pdf and b/macros/latex-dev/base/fix-cm.pdf differ diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf index c498f9f449..b773b23001 100644 Binary files a/macros/latex-dev/base/fntguide.pdf and b/macros/latex-dev/base/fntguide.pdf differ diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf index df0b482d62..223c4fc9d8 100644 Binary files a/macros/latex-dev/base/graphpap.pdf and b/macros/latex-dev/base/graphpap.pdf differ diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf index a756833b7e..cb731ce0ec 100644 Binary files a/macros/latex-dev/base/ifthen.pdf and b/macros/latex-dev/base/ifthen.pdf differ diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf index ca53fac3a5..d91193b109 100644 Binary files a/macros/latex-dev/base/inputenc.pdf and b/macros/latex-dev/base/inputenc.pdf differ diff --git a/macros/latex-dev/base/latexchanges.pdf b/macros/latex-dev/base/latexchanges.pdf index 3e4f2aaa9d..fa0be13cc9 100644 Binary files a/macros/latex-dev/base/latexchanges.pdf and b/macros/latex-dev/base/latexchanges.pdf differ diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf index cdce0fb74f..f2e104646e 100644 Binary files a/macros/latex-dev/base/latexrelease.pdf and b/macros/latex-dev/base/latexrelease.pdf differ diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf index 5fb4a09541..c5f5f7ccab 100644 Binary files a/macros/latex-dev/base/latexsym.pdf and b/macros/latex-dev/base/latexsym.pdf differ diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf index 6cc60fec76..ff53c048ee 100644 Binary files a/macros/latex-dev/base/lb2.pdf and b/macros/latex-dev/base/lb2.pdf differ diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf index 2431b6d81f..069855100a 100644 Binary files a/macros/latex-dev/base/letter.pdf and b/macros/latex-dev/base/letter.pdf differ diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf index 2a58b0470e..fce107fd9a 100644 Binary files a/macros/latex-dev/base/lgc2.pdf and b/macros/latex-dev/base/lgc2.pdf differ diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf index dfccc5d5eb..4e5547d356 100644 Binary files a/macros/latex-dev/base/lppl.pdf and b/macros/latex-dev/base/lppl.pdf differ diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx index 06b0e1cf43..a0ab0fa354 100644 --- a/macros/latex-dev/base/ltclass.dtx +++ b/macros/latex-dev/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2021/03/27 v1.4a LaTeX Kernel (Class & Package Interface)] + [2021/05/18 v1.4b LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -505,6 +505,14 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\@raw@classoptionslist} +% List of options of the main class (unprocessed). +% \changes{v1.4b}{2021/05/18}{Initialise to \cs{relax} to match \cs{@classoptionslist}} +% \begin{macrocode} +\let\@raw@classoptionslist\relax +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\@unusedoptionlist} % \changes{v1.0u}{1996/07/26}{made only preamble} % List of options of the main class that haven't been declared or @@ -1910,7 +1918,7 @@ % \begin{macrocode} \ifx\@nnil##1\relax\else % \end{macrocode} -% If |\ifx\@nnil##1\n@nil| is true then |#1| is (presumably) empty +% If |\ifx\@nnil##1\@nnil| is true then |#1| is (presumably) empty % (Older code used |\relax| which is slightly easier to get into |#1| % by mistake, which would spoil this test.) % \begin{macrocode} diff --git a/macros/latex-dev/base/ltcmd.dtx b/macros/latex-dev/base/ltcmd.dtx index fee555586d..806161d538 100644 --- a/macros/latex-dev/base/ltcmd.dtx +++ b/macros/latex-dev/base/ltcmd.dtx @@ -34,8 +34,8 @@ %%% From File: ltcmd.dtx % % \begin{macrocode} -\def\ltcmdversion{v1.0d} -\def\ltcmddate{2021-04-19} +\def\ltcmdversion{v1.0e} +\def\ltcmddate{2021-05-24} % \end{macrocode} % %<*driver> @@ -80,6 +80,9 @@ % \end{macrocode} % % \changes{v1.0b}{2021/03/18}{Use \cs{NewModuleRelease}.} +% \changes{v1.0e}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}} +% +% % \pkg{ltcmd} code contains an |^^@| character, which usually has % catcode~15, so \cs{IncludeInRelease} will break when this code is % being skipped, so we'll save the catcode of |^^@| to restore later: @@ -328,7 +331,12 @@ % switched off by default, unless the |log-declarations| package % option was used, so here we'll switch that off as well. % \begin{macrocode} -\msg_redirect_module:nnn { LaTeX / ltcmd } { info } { none } +\msg_redirect_module:nnn { cmd } { info } { none } +% \end{macrocode} +% +% Also add \pkg{cmd} to the \pkg{LaTeX} messages. +% \begin{macrocode} +\prop_gput:Nnn \g_msg_module_type_prop { cmd } { LaTeX } % \end{macrocode} % % \subsection{Declaring commands and environments} @@ -358,7 +366,7 @@ { \cs_if_exist:NTF #1 { - \__kernel_msg_info:nnxx { ltcmd } { redefine-command } + \msg_info:nnxx { cmd } { redefine-command } { \token_to_str:N #1 } { \tl_to_str:n {#2} } } { @@ -366,10 +374,10 @@ { \cs_if_exist_p:c { \cs_to_str:N #1 ~ code } } { \cs_if_exist_p:c { \cs_to_str:N #1 ~ defaults } } { - \__kernel_msg_warning:nnx { ltcmd } { unsupported-let } + \msg_warning:nnx { cmd } { unsupported-let } { \token_to_str:N #1 } } - \__kernel_msg_info:nnxx { ltcmd } { define-command } + \msg_info:nnxx { cmd } { define-command } { \token_to_str:N #1 } { \tl_to_str:n {#2} } } \bool_set_false:N \l_@@_environment_bool @@ -528,11 +536,11 @@ { \tl_trim_spaces:o { \l_@@_environment_str } } \cs_if_exist:cTF { \l_@@_environment_str } { - \__kernel_msg_info:nnxx { ltcmd } { redefine-environment } + \msg_info:nnxx { cmd } { redefine-environment } { \l_@@_environment_str } { \tl_to_str:n {#2} } } { - \__kernel_msg_info:nnxx { ltcmd } { define-environment } + \msg_info:nnxx { cmd } { define-environment } { \l_@@_environment_str } { \tl_to_str:n {#2} } } \bool_set_false:N \l_@@_expandable_bool @@ -685,7 +693,7 @@ } \cs_new_protected:Npn \@@_defaults_error:w \q_recursion_stop { - \__kernel_msg_error:nnx { ltcmd } { loop-in-defaults } + \msg_error:nnx { cmd } { loop-in-defaults } { \@@_environment_or_command: } } % \end{macrocode} @@ -813,8 +821,7 @@ \@@_end_expandable_defaults:nnnNNn {#1} { } {#1} #2#3 { } { } { } { } { } { } { } { } { } { } { - \__kernel_msg_expandable_error:nnf - { ltcmd } { loop-in-defaults } + \msg_expandable_error:nnf { cmd } { loop-in-defaults } { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N #4 } } \use_iv:nnnn } @@ -912,7 +919,7 @@ \q_recursion_tail \q_recursion_tail \q_recursion_tail \q_recursion_stop \int_compare:nNnT \l_@@_current_arg_int > 9 { - \__kernel_msg_error:nnxx { ltcmd } { too-many-arguments } + \msg_error:nnxx { cmd } { too-many-arguments } { \@@_environment_or_command: } { \tl_to_str:n {#1} } \@@_bad_def:wn } @@ -920,7 +927,7 @@ { \tl_if_empty:NF \l_@@_last_delimiters_tl { - \__kernel_msg_error:nnxx { ltcmd } { expandable-ending-optional } + \msg_error:nnxx { cmd } { expandable-ending-optional } { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} } \@@_bad_def:wn } @@ -944,11 +951,11 @@ { \str_if_eq_p:nn {#1} { u } } } { - \__kernel_msg_error:nnxx { ltcmd } { xparse-argument-type } + \msg_error:nnxx { cmd } { xparse-argument-type } { \@@_environment_or_command: } { \tl_to_str:n {#1} } } { - \__kernel_msg_error:nnxx { ltcmd } { unknown-argument-type } + \msg_error:nnxx { cmd } { unknown-argument-type } { \@@_environment_or_command: } { \tl_to_str:n {#1} } } \@@_bad_def:wn @@ -1020,7 +1027,7 @@ \quark_if_recursion_tail_stop_do:nn {#2} { \@@_bad_arg_spec:wn } \bool_if:NT \l_@@_expandable_bool { - \__kernel_msg_error:nnxx { ltcmd } { processor-in-expandable } + \msg_error:nnxx { cmd } { processor-in-expandable } { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} } \@@_bad_def:wn } @@ -1034,7 +1041,7 @@ \quark_if_recursion_tail_stop_do:nn {#1} { \@@_bad_arg_spec:wn } \bool_if:NT \l_@@_long_bool { - \__kernel_msg_error:nnxx { ltcmd } { two-markers } + \msg_error:nnxx { cmd } { two-markers } { \@@_environment_or_command: } { + } \@@_bad_def:wn } @@ -1047,7 +1054,7 @@ \quark_if_recursion_tail_stop_do:nn {#1} { \@@_bad_arg_spec:wn } \bool_if:NT \l_@@_obey_spaces_bool { - \__kernel_msg_error:nnxx { ltcmd } { two-markers } + \msg_error:nnxx { cmd } { two-markers } { \@@_environment_or_command: } { ! } \@@_bad_def:wn } @@ -1179,15 +1186,14 @@ { \bool_if:NF \l_@@_environment_bool { - \__kernel_msg_error:nnxx - { ltcmd } { invalid-command-arg } + \msg_error:nnxx { cmd } { invalid-command-arg } { \@@_environment_or_command: } { b } \@@_bad_def:wn } \tl_clear:N \l_@@_last_delimiters_tl \@@_add_arg_spec:n { b } \quark_if_recursion_tail_stop:n {#1} - \__kernel_msg_error:nnxx { ltcmd } { arg-after-body } + \msg_error:nnxx { cmd } { arg-after-body } { \@@_environment_or_command: } { \tl_to_str:n {#1} } \@@_bad_def:wn @@ -1203,7 +1209,7 @@ { \tl_trim_spaces_apply:nN {#1} \tl_if_single_token:nF { - \__kernel_msg_error:nnxx { ltcmd } { not-single-token } + \msg_error:nnxx { cmd } { not-single-token } { \@@_environment_or_command: } { \tl_to_str:n {#1} } \@@_bad_def:wn } @@ -1235,8 +1241,7 @@ { \use_none:n } } { - \__kernel_msg_error:nnxxx - { ltcmd } { forbidden-implicit-group-token } + \msg_error:nnxxx { cmd } { forbidden-implicit-group-token } { \@@_environment_or_command: } { \tl_to_str:n {#1} } { \token_if_eq_meaning:NNTF #1 \c_group_begin_token @@ -1256,8 +1261,7 @@ { \bool_if:NT \l_@@_expandable_bool { - \__kernel_msg_error:nnxx - { ltcmd } { invalid-expandable-argument-type } + \msg_error:nnxx { cmd } { invalid-expandable-argument-type } { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} } \@@_bad_def:wn } @@ -1269,8 +1273,7 @@ { \tl_if_empty:NF \l_@@_last_delimiters_tl { - \__kernel_msg_error:nnxx - { ltcmd } { invalid-after-optional-expandably } + \msg_error:nnxx { cmd } { invalid-after-optional-expandably } { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} } \@@_bad_def:wn } @@ -1291,7 +1294,7 @@ { \tl_if_eq:nnT {##1} {#1} { - \__kernel_msg_warning:nnxx { ltcmd } { optional-mandatory } + \msg_warning:nnxx { cmd } { optional-mandatory } {#2} {#3} } } @@ -1305,7 +1308,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_bad_arg_spec:wn #1 \@@_break_point:n #2 { - \__kernel_msg_error:nnxx { ltcmd } { bad-arg-spec } + \msg_error:nnxx { cmd } { bad-arg-spec } { \@@_environment_or_command: } { \tl_to_str:n {#2} } } \cs_new_protected:Npn \@@_bad_def:wn #1 \@@_break_point:n #2 { } @@ -1331,7 +1334,7 @@ { \bool_if:NT \l_@@_expandable_bool { - \__kernel_msg_error:nnx { ltcmd } { inconsistent-long } + \msg_error:nnx { cmd } { inconsistent-long } { \iow_char:N \\ \l_@@_function_tl } \@@_bad_def:wn } @@ -1353,7 +1356,7 @@ { \bool_if:NT \l_@@_some_obey_spaces_bool { - \__kernel_msg_error:nnxx { ltcmd } { non-trailing-obey-spaces } + \msg_error:nnxx { cmd } { non-trailing-obey-spaces } { \@@_environment_or_command: } { \tl_to_str:n {#1} } \@@_bad_def:wn } @@ -2331,7 +2334,7 @@ \@@_peek_nonspace_remove:NTF #1 { \@@_grab_D_call:Nw #1 } { - \__kernel_msg_error:nnxx { ltcmd } { missing-required } + \msg_error:nnxx { cmd } { missing-required } { \@@_environment_or_command: } { \token_to_str:N #1 } \@@_add_arg:o \c_novalue_tl @@ -2584,14 +2587,14 @@ \exp_after:wN \exp_after:wN \exp_after:wN \peek_meaning_remove:NTF \char_generate:nn { \tex_endlinechar:D } { 6 } { - \__kernel_msg_error:nnxxx { ltcmd } { verbatim-newline } + \msg_error:nnxxx { cmd } { verbatim-newline } { \@@_environment_or_command: } { \tl_to_str:N \l_@@_v_arg_tl } { \tl_to_str:n {#1} } \@@_add_arg:o \c_novalue_tl } { - \__kernel_msg_error:nnxxx { ltcmd } { verbatim-tokenized } + \msg_error:nnxxx { cmd } { verbatim-tokenized } { \@@_environment_or_command: } { \tl_to_str:N \l_@@_v_arg_tl } { \tl_to_str:n {#1} } @@ -2942,8 +2945,7 @@ \q_nil { } ##2 \ERROR \q_@@ \ERROR } { - \__kernel_msg_expandable_error:nnff - { ltcmd } { missing-required } + \msg_expandable_error:nnff { cmd } { missing-required } { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##5 } } { \tl_to_str:n {##2} } ##4 {#1} \q_@@ ##5 ##6 {##7} @@ -2980,8 +2982,7 @@ ##6 \ERROR } { - \__kernel_msg_expandable_error:nnff - { ltcmd } { missing-required } + \msg_expandable_error:nnff { cmd } { missing-required } { \exp_args:Nf \tl_trim_spaces:n { \token_to_str:N ##4 } } { \tl_to_str:n {##2} } ##3 {#1} \q_@@ ##4 ##5 {##6} @@ -3114,7 +3115,7 @@ \ProcessedArgument \q_stop } - \__kernel_msg_error:nnxxx { ltcmd } { split-excess-tokens } + \msg_error:nnxxx { cmd } { split-excess-tokens } { \tl_to_str:n {#3} } { \int_eval:n { #2 + 1 } } { \tl_to_str:n {#4} } } @@ -3177,11 +3178,11 @@ { #1 { - \__kernel_msg_error:nnx { ltcmd } { non-xparse } + \msg_error:nnx { cmd } { non-xparse } { \@@_environment_or_command: } } { - \__kernel_msg_error:nnx { ltcmd } { unknown } + \msg_error:nnx { cmd } { unknown } { \@@_environment_or_command: } } } @@ -3305,11 +3306,11 @@ } { \group_end: \use_ii:nnn } { - \__kernel_msg_error:nnxx { ltcmd } { not-definable } + \msg_error:nnxx { cmd } { not-definable } { \tl_to_str:n {#1} } { \token_to_str:N #2 } } { - \__kernel_msg_error:nnxx { ltcmd } { not-one-token } + \msg_error:nnxx { cmd } { not-one-token } { \tl_to_str:n {#1} } { \token_to_str:N #2 } } } @@ -3504,49 +3505,49 @@ % % Some messages intended as errors when defining commands/environments. % \begin{macrocode} -\__kernel_msg_new:nnnn { ltcmd } { arg-after-body } +\msg_new:nnnn { cmd } { arg-after-body } { In~the~definition~of~#1,~b~(body)~argument~must~be~last. } { The~'body'~argument~type~is~followed~by~'#2'~in~the~argument~ specification~of~the~#1.~This~is~not~allowed. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { bad-arg-spec } +\msg_new:nnnn { cmd } { bad-arg-spec } { Bad~argument~specification~'#2'~for~#1. } { The~argument~specification~provided~was~not~valid:~ one~or~more~mandatory~pieces~of~information~were~missing. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { command-already-defined } +\msg_new:nnnn { cmd } { command-already-defined } { Command~'#1'~already~defined! } { You~have~used~#2~ with~a~command~that~already~has~a~definition. \\ \\ The~existing~definition~of~'#1'~will~not~be~altered. } -\__kernel_msg_new:nnnn { ltcmd } { command-not-yet-defined } +\msg_new:nnnn { cmd } { command-not-yet-defined } { Command ~'#1'~not~yet~defined! } { You~have~used~#2~ with~a~command~that~was~never~defined. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { environment-already-defined } +\msg_new:nnnn { cmd } { environment-already-defined } { Environment~'#1'~already~defined! } { You~have~used~\NewDocumentEnvironment with~an~environment~that~already~has~a~definition. \\ \\ The~existing~definition~of~'#1'~will~not~be~altered. } -\__kernel_msg_new:nnnn { ltcmd } { environment-not-yet-defined } +\msg_new:nnnn { cmd } { environment-not-yet-defined } { Environment~'#1'~not~yet~defined! } { You~have~used~\RenewDocumentEnvironment with~an~environment~that~was~never~defined. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { expandable-ending-optional } +\msg_new:nnnn { cmd } { expandable-ending-optional } { Argument~specification~'#2'~for~expandable~command~'#1'~ ends~with~optional~argument. @@ -3556,13 +3557,13 @@ (or~no~arguments~at~all).~You~cannot~have~a~terminal~optional~ argument~with~expandable~commands. } -\__kernel_msg_new:nnnn { ltcmd } { inconsistent-long } +\msg_new:nnnn { cmd } { inconsistent-long } { Inconsistent~long~arguments~for~expandable~command~'#1'. } { The~arguments~for~an~expandable~command~must~not~involve~short~ arguments~after~long~arguments.~You~have~tried~to~mix~the~two~types. } -\__kernel_msg_new:nnnn { ltcmd } { invalid-command-arg } +\msg_new:nnnn { cmd } { invalid-command-arg } { Argument~type~'#2'~not~available~for~#1. } { The~letter~'#2'~can~only~be~used~in~environment~argument~ @@ -3570,14 +3571,14 @@ \\ \\ LaTeX~will~ignore~this~entire~definition. } -\__kernel_msg_new:nnnn { ltcmd } { invalid-expandable-argument-type } +\msg_new:nnnn { cmd } { invalid-expandable-argument-type } { Argument~type~'#2'~not~available~for~expandable~command~'#1'. } { The~letter~'#2'~specifies~an~argument~type~which~cannot~be~used~ in~an~expandable~command. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { invalid-after-optional-expandably } +\msg_new:nnnn { cmd } { invalid-after-optional-expandably } { Argument~type~'#2'~not~available~after~optional~argument~ for~expandable~command~'#1'. @@ -3587,13 +3588,13 @@ in~an~expandable~command~after~an~optional~argument. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { non-trailing-obey-spaces } +\msg_new:nnnn { cmd } { non-trailing-obey-spaces } { Prefix~'!'~used~before~mandatory~argument~'#2'~of~#1. } { The~prefix~'!'~can~only~apply~to~trailing~optional~arguments. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { not-definable } +\msg_new:nnnn { cmd } { not-definable } { First~argument~of~'#2'~must~be~a~command. } { The~first~argument~of~'#2'~should~be~the~document~command~that~will~ @@ -3601,7 +3602,7 @@ backslash~is~missing? \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { not-one-token } +\msg_new:nnnn { cmd } { not-one-token } { First~argument~of~'#2'~must~be~a~command. } { The~first~argument~of~'#2'~should~be~the~document~command~that~will~ @@ -3609,7 +3610,7 @@ token.~Perhaps~a~backslash~is~missing? \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { not-single-token } +\msg_new:nnnn { cmd } { not-single-token } { Argument~delimiter~'#2'~for~the~#1~should~be~ a~single~non-space~token. @@ -3619,40 +3620,40 @@ where~a~single~token~is~required,~LaTeX~found~'#2'. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { forbidden-implicit-group-token } +\msg_new:nnnn { cmd } { forbidden-implicit-group-token } { Argument~delimiter~'#2'~for~the~#1~is~not~allowed. } { The~argument~specification~provided~was~not~valid:~the~implicit~ #3-group~token~'#2'~is~not~allowed~as~an~argument~delimiter. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { processor-in-expandable } +\msg_new:nnnn { cmd } { processor-in-expandable } { Argument~processor~'>{#2}'~cannot~be~used~for~the~expandable~command~'#1'. } { The~argument~specification~for~#1~contains~a~processor~function:~ this~is~only~supported~for~standard~robust~commands. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { too-many-arguments } +\msg_new:nnnn { cmd } { too-many-arguments } { Too~many~arguments~in~argument~specification~'#2'~of~#1. } { The~argument~specification~provided~has~more~than~9~arguments.~ This~cannot~be~implemented. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { two-markers } +\msg_new:nnnn { cmd } { two-markers } { Two~'#2'~apply~to~the~same~argument~in~argument~specification~of~#1. } { The~argument~specification~provided~has~two~markers~'#2'~applying~ to~the~same~argument;~these~are~redundant. } -\__kernel_msg_new:nnnn { ltcmd } { unknown-argument-type } +\msg_new:nnnn { cmd } { unknown-argument-type } { Unknown~argument~type~'#2'~for~the~#1. } { The~letter~'#2'~does~not~specify~a~known~argument~type. \c_@@_ignore_def_tl } -\__kernel_msg_new:nnnn { ltcmd } { xparse-argument-type } +\msg_new:nnnn { cmd } { xparse-argument-type } { Deprecated~argument~type~'#2'~for~the~#1~requires~xparse. } { The~letter~'#2'~specifies~a~known~argument~type~that~requires~ @@ -3666,40 +3667,40 @@ % \texttt{loop-in-defaults} and \texttt{missing-required} messages can % be expandable or not expandable. % \begin{macrocode} -\__kernel_msg_new:nnn { ltcmd } { if-boolean } +\msg_new:nnn { cmd } { if-boolean } { Invalid~use~\iow_char:N\\IfBooleanTF~{#1} } -\__kernel_msg_new:nnnn { ltcmd } { loop-in-defaults } +\msg_new:nnnn { cmd } { loop-in-defaults } { Defaults~of~#1~have~circular~dependency. } { The~default~values~of~two~or~more~arguments~of~the~#1~ depend~on~each~other~in~a~way~that~cannot~be~resolved. } -\__kernel_msg_new:nnnn { ltcmd } { missing-required } +\msg_new:nnnn { cmd } { missing-required } { Missing~required~argument~for~#1. } { The~current~#1~expects~an~argument~starting~with~'#2'.~ LaTeX~did~not~find~it,~and~will~insert~a~default~value~to~be~processed. } -\__kernel_msg_new:nnnn { ltcmd } { non-xparse } +\msg_new:nnnn { cmd } { non-xparse } { \str_uppercase:n #1~not~defined~using~xparse. } { You~have~asked~for~the~argument~specification~for~the~#1,~ but~this~was~not~defined~using~xparse. } -\__kernel_msg_new:nnnn { ltcmd } { split-excess-tokens } +\msg_new:nnnn { cmd } { split-excess-tokens } { Too~many~'#1'~tokens~when~trying~to~split~argument. } { LaTeX~was~asked~to~split~the~input~'#3'~ at~each~occurrence~of~the~token~'#1',~up~to~a~maximum~of~#2~parts.~ There~were~too~many~'#1'~tokens. } -\__kernel_msg_new:nnnn { ltcmd } { unknown } +\msg_new:nnnn { cmd } { unknown } { Unknown~document~#1. } { You~have~asked~for~the~argument~specification~for~the~#1,~ but~it~is~not~defined. } -\__kernel_msg_new:nnnn { ltcmd } { verbatim-newline } +\msg_new:nnnn { cmd } { verbatim-newline } { Verbatim~argument~of~#1~ended~by~end~of~line. } { The~verbatim~argument~of~the~#1~cannot~contain~more~than~one~line,~ @@ -3709,7 +3710,7 @@ \\ \\ LaTeX~will~ignore~'#2'. } -\__kernel_msg_new:nnnn { ltcmd } { verbatim-tokenized } +\msg_new:nnnn { cmd } { verbatim-tokenized } { The~verbatim~#1~cannot~be~used~inside~an~argument. } { The~#1~takes~a~verbatim~argument.~ @@ -3722,33 +3723,33 @@ % % Intended more for information. % \begin{macrocode} -\__kernel_msg_new:nnn { ltcmd } { define-command } +\msg_new:nnn { cmd } { define-command } { Defining~command~#1~ with~sig.~'#2'~\msg_line_context:. } -\__kernel_msg_new:nnn { ltcmd } { define-environment } +\msg_new:nnn { cmd } { define-environment } { Defining~environment~'#1'~ with~sig.~'#2'~\msg_line_context:. } -\__kernel_msg_new:nnn { ltcmd } { redefine-command } +\msg_new:nnn { cmd } { redefine-command } { Redefining~command~#1~ with~sig.~'#2'~\msg_line_context:. } -\__kernel_msg_new:nnn { ltcmd } { redefine-environment } +\msg_new:nnn { cmd } { redefine-environment } { Redefining~environment~'#1'~ with~sig.~'#2'~\msg_line_context:. } -\__kernel_msg_new:nnn { ltcmd } { optional-mandatory } +\msg_new:nnn { cmd } { optional-mandatory } { Since~the~mandatory~argument~'#1'~has~the~same~delimiter~'#2'~ as~a~previous~optional~argument,~it~will~not~be~possible~to~ omit~all~optional~arguments~when~calling~this~command. } -\__kernel_msg_new:nnn { ltcmd } { unsupported-let } +\msg_new:nnn { cmd } { unsupported-let } { The~command~'#1'~was~undefined~but~not~the~associated~commands~ '#1~code'~and/or~'#1~defaults'.~Maybe~you~tried~using~ @@ -3786,7 +3787,7 @@ { \cs_if_exist:NTF #1 { - \__kernel_msg_error:nnxx { ltcmd } { command-already-defined } + \msg_error:nnxx { cmd } { command-already-defined } { \use:nnn \token_to_str:N #1 { } } { \token_to_str:N \NewDocumentCommand } } @@ -3800,7 +3801,7 @@ \cs_if_exist:NTF #1 { \@@_declare_cmd:Nnn #1 {#2} {#3} } { - \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined } + \msg_error:nnxx { cmd } { command-not-yet-defined } { \use:nnn \token_to_str:N #1 { } } { \token_to_str:N \RenewDocumentCommand } } @@ -3831,14 +3832,14 @@ \cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4 { \cs_if_exist:cTF {#1} - { \__kernel_msg_error:nnx { ltcmd } { environment-already-defined } {#1} } + { \msg_error:nnx { cmd } { environment-already-defined } {#1} } { \@@_declare_env:nnnn {#1} {#2} {#3} {#4} } } \cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4 { \cs_if_exist:cTF {#1} { \@@_declare_env:nnnn {#1} {#2} {#3} {#4} } - { \__kernel_msg_error:nnx { ltcmd } { environment-not-yet-defined } {#1} } + { \msg_error:nnx { cmd } { environment-not-yet-defined } {#1} } } \cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4 { \cs_if_exist:cF {#1} { \@@_declare_env:nnnn {#1} {#2} {#3} {#4} } } @@ -3865,7 +3866,7 @@ { \cs_if_exist:NTF #1 { - \__kernel_msg_error:nnxx { ltcmd } { command-already-defined } + \msg_error:nnxx { cmd } { command-already-defined } { \use:nnn \token_to_str:N #1 { } } { \token_to_str:N \NewExpandableDocumentCommand } } @@ -3879,7 +3880,7 @@ \cs_if_exist:NTF #1 { \@@_declare_expandable_cmd:Nnn #1 {#2} {#3} } { - \__kernel_msg_error:nnxx { ltcmd } { command-not-yet-defined } + \msg_error:nnxx { cmd } { command-not-yet-defined } { \use:nnn \token_to_str:N #1 { } } { \token_to_str:N \RenewExpandableDocumentCommand } } @@ -3931,7 +3932,7 @@ \prg_break:n { \use:n } \prg_break_point: { - \__kernel_msg_expandable_error:nnn { ltcmd } { if-boolean } {#1} + \msg_expandable_error:nnn { cmd } { if-boolean } {#1} \use_ii:nn } } diff --git a/macros/latex-dev/base/ltcmdhooks-code.pdf b/macros/latex-dev/base/ltcmdhooks-code.pdf index ccc055e33b..9c523ad313 100644 Binary files a/macros/latex-dev/base/ltcmdhooks-code.pdf and b/macros/latex-dev/base/ltcmdhooks-code.pdf differ diff --git a/macros/latex-dev/base/ltcmdhooks-doc.pdf b/macros/latex-dev/base/ltcmdhooks-doc.pdf index 86cc6e3e96..dd70bd2240 100644 Binary files a/macros/latex-dev/base/ltcmdhooks-doc.pdf and b/macros/latex-dev/base/ltcmdhooks-doc.pdf differ diff --git a/macros/latex-dev/base/ltcmdhooks.dtx b/macros/latex-dev/base/ltcmdhooks.dtx index cc67f5eaa7..40cd55e52c 100644 --- a/macros/latex-dev/base/ltcmdhooks.dtx +++ b/macros/latex-dev/base/ltcmdhooks.dtx @@ -13,8 +13,8 @@ % %%% From File: ltcmdhooks.dtx % -\def\ltcmdhooksversion{v1.0a} -\def\ltcmdhooksdate{2021/04/30} +\def\ltcmdhooksversion{v1.0b} +\def\ltcmdhooksdate{2021/05/26} % % % @@ -323,10 +323,13 @@ % throw an error. % \end{enumerate} % +% % \begin{macrocode} %<@@=hook> % \end{macrocode} % +% \changes{v1.0b}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}} +% % \begin{macrocode} %<*2ekernel|latexrelease> \ExplSyntaxOn @@ -413,7 +416,7 @@ \str_case:nnTF {#3} { { before } { } { after } { } } { \exp_args:Nc \@@_patch_cmd_or_delay:Nnn {#2} {#2} {#3} } - { \__kernel_msg_error:nnn { hooks } { wrong-cmd-hook } {#2} {#3} } + { \msg_error:nnnn { hooks } { wrong-cmd-hook } {#2} {#3} } } % \end{macrocode} % \end{macro} @@ -520,7 +523,7 @@ { #1 #2 {#4} { - \__kernel_msg_error:nnxx { hooks } { cant-patch } + \msg_error:nnxx { hooks } { cant-patch } { \token_to_str:N #2 } {#3} } } @@ -833,7 +836,7 @@ % command isn't changed in any way in that case. % \begin{macrocode} { - \__kernel_msg_error:nnxx { hooks } { cant-patch } + \msg_error:nnxx { hooks } { cant-patch } { \c_backslash_str #2 } { retok } } } @@ -1036,24 +1039,22 @@ % \subsection{Messages} % % \begin{macrocode} -\__kernel_msg_new:nnnn { hooks } { wrong-cmd-hook } +\msg_new:nnnn { hooks } { wrong-cmd-hook } { - Command~hook~`cmd/#1/#2'~invalid.\\ - The~hook~should~be~`cmd/#1/before'~or~`cmd/#1/after'. + Generic~hook~`cmd/#1/#2'~is~invalid. +% The~hook~should~be~`cmd/#1/before'~or~`cmd/#1/after'. } { - You~tried~to~add~a~hook~to~command~\iow_char:N \\#1,~but~`#2'~ - is~an~invalid~position.~Only~`before'~or~`after'~are~allowed. + You~tried~to~add~a~generic~hook~to~command~\iow_char:N \\#1,~but~`#2'~ + is~an~invalid~component.~Only~`before'~or~`after'~are~allowed. } -\__kernel_msg_new:nnnn { hooks } { cant-patch } +\msg_new:nnnn { hooks } { cant-patch } { - Command~`#1'~cannot~have~hooks~because~it~ - \@@_unpatchable_cases:n {#2} . + Generic~hooks~cannot~be~added~to~'#1'. } { - You~tried~to~add~a~hook~to~`#1',~but~LaTeX~was~not~able~to~ - add~the~hook~to~that~command~because~`#1'~ - \@@_unpatchable_cases:n {#2} . + You~tried~to~add~a~hook~to~'#1',~but~LaTeX~was~unable~to~ + patch~the~command~because~it~\@@_unpatchable_cases:n {#2}. } \cs_new:Npn \@@_unpatchable_cases:n #1 { diff --git a/macros/latex-dev/base/ltdefns.dtx b/macros/latex-dev/base/ltdefns.dtx index 7236083dfa..4f39d922cc 100644 --- a/macros/latex-dev/base/ltdefns.dtx +++ b/macros/latex-dev/base/ltdefns.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2021/04/19 v1.5o LaTeX Kernel (definition commands)] + [2021/05/27 v1.5p LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -1222,6 +1222,7 @@ % % The macro firstly checks if the control sequence in question exists % at all. +% \changes{v1.5p}{2021/05/26}{Normalize error message in \cs{MakeRobust}} % \begin{macrocode} % %\IncludeInRelease{2020/10/01}{\MakeRobust}{\MakeRobust}% @@ -1230,7 +1231,7 @@ \count@=\escapechar \escapechar=`\\ \@ifundefined{\expandafter\@gobble\string#1}{% - \@latex@error{The control sequence `\string#1' is undefined!% + \@latex@error{Command `\string#1' is undefined!% \MessageBreak There is nothing here to make robust}% \@eha }% @@ -1259,7 +1260,7 @@ \noexpand\protect\expandafter\noexpand \csname\expandafter\@gobble\string#1\space\endcsname}% }% - {\@latex@info{The control sequence `\string#1' is already robust}}% + {\@latex@info{Command `\string#1' is already robust}}% }% \escapechar=\count@ }% diff --git a/macros/latex-dev/base/ltfilehook-code.pdf b/macros/latex-dev/base/ltfilehook-code.pdf index ef767fa207..c17d10e276 100644 Binary files a/macros/latex-dev/base/ltfilehook-code.pdf and b/macros/latex-dev/base/ltfilehook-code.pdf differ diff --git a/macros/latex-dev/base/ltfilehook-doc.pdf b/macros/latex-dev/base/ltfilehook-doc.pdf index 28e0f8a5f2..211e7f8549 100644 Binary files a/macros/latex-dev/base/ltfilehook-doc.pdf and b/macros/latex-dev/base/ltfilehook-doc.pdf differ diff --git a/macros/latex-dev/base/ltfilehook.dtx b/macros/latex-dev/base/ltfilehook.dtx index e9309c41f7..5d0acc8fdf 100644 --- a/macros/latex-dev/base/ltfilehook.dtx +++ b/macros/latex-dev/base/ltfilehook.dtx @@ -31,8 +31,8 @@ %%% From File: ltfilehook.dtx % % \begin{macrocode} -\providecommand\ltfilehookversion{v1.0j} -\providecommand\ltfilehookdate{2021/04/29} +\providecommand\ltfilehookversion{v1.0k} +\providecommand\ltfilehookdate{2021/05/25} % \end{macrocode} % %<*driver> @@ -454,6 +454,7 @@ % % % \section{The Implementation} +% % \begin{macrocode} %<*2ekernel> % \end{macrocode} @@ -462,6 +463,8 @@ %<@@=filehook> % \end{macrocode} % +% \changes{v1.0k}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}} +% % % \subsection{Document and package-level commands} % @@ -605,7 +608,7 @@ \seq_gpop:NNTF \g_@@_input_file_seq \l_@@_internal_tl { \exp_after:wN \@@_file_pop_assign:nnnn \l_@@_internal_tl } { - \__kernel_msg_error:nnn { hooks } { should-not-happen } + \msg_error:nnn { kernel } { should-not-happen } { Tried~to~pop~from~an~empty~file~name~stack. } } } diff --git a/macros/latex-dev/base/lthooks-code.pdf b/macros/latex-dev/base/lthooks-code.pdf index b50be3475f..a97b1e1923 100644 Binary files a/macros/latex-dev/base/lthooks-code.pdf and b/macros/latex-dev/base/lthooks-code.pdf differ diff --git a/macros/latex-dev/base/lthooks-doc.pdf b/macros/latex-dev/base/lthooks-doc.pdf index 369fa25069..6446eaa88e 100644 Binary files a/macros/latex-dev/base/lthooks-doc.pdf and b/macros/latex-dev/base/lthooks-doc.pdf differ diff --git a/macros/latex-dev/base/lthooks.dtx b/macros/latex-dev/base/lthooks.dtx index 45d6a78aba..20e172a57f 100644 --- a/macros/latex-dev/base/lthooks.dtx +++ b/macros/latex-dev/base/lthooks.dtx @@ -31,8 +31,8 @@ %%% From File: lthooks.dtx % % \begin{macrocode} -\def\lthooksversion{v1.0m} -\def\lthooksdate{2021/04/29} +\def\lthooksversion{v1.0n} +\def\lthooksdate{2021/05/26} % \end{macrocode} % %<*driver> @@ -1807,8 +1807,9 @@ %<@@=hook> % \end{macrocode} % -% \changes{v1.0i}{2021/03/18} -% {Use \cs{NewModuleRelease}.} +% \changes{v1.0i}{2021/03/18}{Use \cs{NewModuleRelease}.} +% \changes{v1.0n}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}} +% % \begin{macrocode} %<*2ekernel|latexrelease> \ExplSyntaxOn @@ -2230,7 +2231,7 @@ % \cs{hook_new:n} is used. % \begin{macrocode} \@@_if_declared:nTF {#1} - { \__kernel_msg_error:nnn { hooks } { exists } {#1} } + { \msg_error:nnn { hooks } { exists } {#1} } { \tl_new:c { g_@@_#1_declared_tl } \@@_make_usable:n {#1} @@ -2484,7 +2485,7 @@ % may change). % \begin{macrocode} \@@_if_disabled:nTF {#1} - { \__kernel_msg_warning:nnn { hooks } { provide-disabled } {#1} } + { \msg_warning:nnn { hooks } { provide-disabled } {#1} } % \end{macrocode} % Otherwise we check if it was already declared. % \begin{macrocode} @@ -2496,7 +2497,7 @@ % the already existing one is not (or vice versa). % \begin{macrocode} \str_if_eq:eeF { \tl_use:c { g_@@_#1_reversed_tl } } {#2} - { \__kernel_msg_error:nnn { hooks } { provide-error } {#1} } + { \msg_error:nnn { hooks } { provide-error } {#1} } } % \end{macrocode} % If it wasn't declared, we declared as a normal or reversed hook @@ -2572,7 +2573,7 @@ { \tl_if_empty:nTF {#1} { - \__kernel_msg_expandable_error:nn { hooks } { empty-label } + \msg_expandable_error:nn { hooks } { empty-label } \@@_currname_or_default: } { @@ -2609,7 +2610,7 @@ { \tl_if_empty:NTF \@currname { - \__kernel_msg_expandable_error:nnn { hooks } { should-not-happen } + \msg_expandable_error:nnn { kernel } { should-not-happen } { Empty~default~label. } \@@_make_name:n { label-missing } } @@ -2750,7 +2751,7 @@ % \begin{macrocode} { \@@_if_disabled:nTF {#1} - { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} } + { \msg_error:nnn { hooks } { hook-disabled } {#1} } { \@@_try_declaring_generic_hook:nnn {#1} {#2} {#3} } } } @@ -2793,7 +2794,7 @@ \@@_init_structure:n {#1} \@@_tl_gput_right:cn { @@_toplevel~#1 } {#3} } - { \__kernel_msg_error:nnn { hooks } { misused-top-level } {#1} } + { \msg_error:nnn { hooks } { misused-top-level } {#1} } } { \prop_get:cnNTF { g_@@_#1_code_prop } {#2} \l_@@_return_tl @@ -3279,7 +3280,7 @@ {#1} {#2} {#4} \@@_update_hook_code:n {#1} } - { \__kernel_msg_error:nnnnnn { hooks } { unknown-rule } + { \msg_error:nnnnnn { hooks } { unknown-rule } {#1} {#2} {#3} {#4} } } % \end{macrocode} @@ -3887,7 +3888,7 @@ \cs_new_protected:cpn { @@_apply_rule_xE:nnn } #1#2#3 { \@@_debug:n { \@@_msg_pair_found:nnn {#1} {#2} {#3} } - \__kernel_msg_error:nnnnnn { hooks } { labels-incompatible } + \msg_error:nnnnnn { hooks } { labels-incompatible } {#1} {#2} {#3} { 1 } \use:c { @@_apply_rule_->:nnn } {#1} {#2} {#3} \use:c { @@_apply_rule_<-:nnn } {#1} {#2} {#3} @@ -3895,7 +3896,7 @@ \cs_new_protected:cpn { @@_apply_rule_xW:nnn } #1#2#3 { \@@_debug:n { \@@_msg_pair_found:nnn {#1} {#2} {#3} } - \__kernel_msg_warning:nnnnnn { hooks } { labels-incompatible } + \msg_warning:nnnnnn { hooks } { labels-incompatible } {#1} {#2} {#3} { 0 } } % \end{macrocode} @@ -4239,7 +4240,7 @@ \cs_new_protected:Npn \@@_gput_next_code:nn #1 #2 { \@@_if_disabled:nTF {#1} - { \__kernel_msg_error:nnn { hooks } { hook-disabled } {#1} } + { \msg_error:nnn { hooks } { hook-disabled } {#1} } { \@@_init_structure:n {#1} \@@_if_usable:nTF {#1} @@ -4537,8 +4538,18 @@ % % \subsection{Messages} % +% Hook errors are LaTeX kernel errors: +% \begin{macrocode} +\prop_gput:Nnn \g_msg_module_type_prop { hooks } { LaTeX } +% \end{macrocode} +% And so are kernel errors (this should move elsewhere eventually). % \begin{macrocode} -\__kernel_msg_new:nnnn { hooks } { labels-incompatible } +\prop_gput:Nnn \g_msg_module_type_prop { kernel } { LaTeX } +%\prop_gput:Nnn \g_msg_module_name_prop { kernel } { } % <-- currently not working +% \end{macrocode} +% +% \begin{macrocode} +\msg_new:nnnn { hooks } { labels-incompatible } { Labels~'#1'~and~'#2'~are~incompatible \str_if_eq:nnF {#3} {??} { ~in~hook~'#3' } .~ @@ -4551,7 +4562,7 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnnn { hooks } { exists } +\msg_new:nnnn { hooks } { exists } { Hook~'#1'~ has~ already~ been~ declared. } { There~ already~ exists~ a~ hook~ declaration~ with~ this~ name.\\ @@ -4560,7 +4571,7 @@ % % % \begin{macrocode} -\__kernel_msg_new:nnnn { hooks } { hook-disabled } +\msg_new:nnnn { hooks } { hook-disabled } { Cannot~add~code~to~disabled~hook~'#1'. } { The~hook~'#1'~you~tried~to~add~code~to~was~previously~disabled~ @@ -4570,7 +4581,7 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnn { hooks } { empty-label } +\msg_new:nnn { hooks } { empty-label } { Empty~code~label~\msg_line_context:.~ Using~'\@@_currname_or_default:'~instead. @@ -4578,7 +4589,7 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnn { hooks } { no-default-label } +\msg_new:nnn { hooks } { no-default-label } { Missing~(empty)~default~label~\msg_line_context:. \\ This~command~was~ignored. @@ -4586,7 +4597,7 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnnn { hooks } { unknown-rule } +\msg_new:nnnn { hooks } { unknown-rule } { Unknown~ relationship~ '#3'~ between~ labels~ '#2'~ and~ '#4'~ \str_if_eq:nnF {#1} {??} { ~in~hook~'#1' }. ~ @@ -4604,9 +4615,9 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnnn { hooks } { misused-top-level } +\msg_new:nnnn { hooks } { misused-top-level } { - Illegal~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\ + Illegal~use~of~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\ 'top-level'~is~reserved~for~the~user's~document. } { @@ -4618,7 +4629,7 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnn { hooks } { set-top-level } +\msg_new:nnn { hooks } { set-top-level } { You~cannot~change~the~default~label~#1~'top-level'.~Illegal \\ \use:nn { ~ } { ~ } \iow_char:N \\#2{#3} \\ @@ -4627,21 +4638,12 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnn { hooks } { ddhl-deprecated } - { - \iow_char:N \\DeclareDefaultHookLabel~is~deprecated.\\ - Use~\iow_char:N \\SetDefaultHookLabel~instead.\\ \\ - The~deprecated~name~will~be~removed~in~the~next~release. - } -% \end{macrocode} -% -% \begin{macrocode} -\__kernel_msg_new:nnn { hooks } { extra-pop-label } +\msg_new:nnn { hooks } { extra-pop-label } { Extra~\iow_char:N \\PopDefaultHookLabel. \\ This~command~will~be~ignored. } -\__kernel_msg_new:nnn { hooks } { missing-pop-label } +\msg_new:nnn { hooks } { missing-pop-label } { Missing~\iow_char:N \\PopDefaultHookLabel. \\ The~label~'#1'~was~pushed~but~never~popped.~Something~is~wrong. @@ -4649,9 +4651,9 @@ % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnn { hooks } { should-not-happen } +\msg_new:nnn { kernel } { should-not-happen } { - ERROR!~This~should~not~happen.~#1 \\ + This~should~not~happen.~#1 \\ Please~report~at~https://github.com/latex3/latex2e. } % \end{macrocode} @@ -4659,14 +4661,14 @@ % % % \begin{macrocode} -\__kernel_msg_new:nnn { hooks } { provide-disabled } +\msg_new:nnn { hooks } { provide-disabled } { - Can't~ provide~ hook~ '#1'~ because~ it~ is~ disabled! + Cannot~ provide~ hook~ '#1'~ because~ it~ is~ disabled! } % \end{macrocode} % % \begin{macrocode} -\__kernel_msg_new:nnnn { hooks } { provide-error } +\msg_new:nnnn { hooks } { provide-error } { Hook~'#1'~ already~ declared~ as~ a~ \@@_if_reversed:nTF {#1} { reversed } { normal }~ hook! @@ -4764,10 +4766,9 @@ % \begin{macro}{\SetDefaultHookLabel} % \begin{macro}{\PushDefaultHookLabel} % \begin{macro}{\PopDefaultHookLabel} -% \begin{macro}{\DeclareDefaultHookLabel} % % \fmiinline{Docu task: At some point this code for this should be moved to the -% label section earlier and here we should keep only the interface commands.} +% label section earlier and here we should keep only the interface commands.} % % \begin{macro}{\@@_curr_name_push:n,\@@_curr_name_push_aux:n} % \begin{macro}{\@@_curr_name_pop:} @@ -4829,11 +4830,11 @@ \cs_new_protected:Npn \@@_curr_name_push_aux:n #1 { \tl_if_blank:nTF {#1} - { \__kernel_msg_error:nn { hooks } { no-default-label } } + { \msg_error:nn { hooks } { no-default-label } } { \str_if_eq:nnTF {#1} { top-level } { - \__kernel_msg_error:nnnnn { hooks } { set-top-level } + \msg_error:nnnnn { hooks } { set-top-level } { to } { PushDefaultHookLabel } {#1} } { @@ -4851,7 +4852,7 @@ { \seq_gpop:NNTF \g_@@_name_stack_seq \l_@@_return_tl { \tl_gset_eq:NN \g_@@_hook_curr_name_tl \l_@@_return_tl } - { \__kernel_msg_error:nn { hooks } { extra-pop-label } } + { \msg_error:nn { hooks } { extra-pop-label } } } % \end{macrocode} % @@ -4866,7 +4867,7 @@ { \seq_gpop:NNT \g_@@_name_stack_seq \l_@@_return_tl { - \__kernel_msg_error:nnx { hooks } { missing-pop-label } + \msg_error:nnx { hooks } { missing-pop-label } { \g_@@_hook_curr_name_tl } \tl_gset_eq:NN \g_@@_hook_curr_name_tl \l_@@_return_tl \@@_end_document_label_check: @@ -4884,7 +4885,7 @@ { \seq_if_empty:NTF \g_@@_name_stack_seq { - \__kernel_msg_error:nnnnn { hooks } { set-top-level } + \msg_error:nnnnn { hooks } { set-top-level } { for } { SetDefaultHookLabel } {#1} } { \exp_args:Nx \@@_set_default_label:n { \@@_make_name:n {#1} } } @@ -4893,16 +4894,11 @@ { \str_if_eq:nnTF {#1} { top-level } { - \__kernel_msg_error:nnnnn { hooks } { set-top-level } + \msg_error:nnnnn { hooks } { set-top-level } { to } { SetDefaultHookLabel } {#1} } { \tl_gset:Nn \g_@@_hook_curr_name_tl {#1} } } -\NewDocumentCommand \DeclareDefaultHookLabel { m } - { - \__kernel_msg_error:nn { hooks } { ddhl-deprecated } - \SetDefaultHookLabel {#1} - } % \end{macrocode} % % The label is only automatically updated with \cs{@onefilewithoptions} @@ -4942,7 +4938,6 @@ % \end{macro} % \end{macro} % \end{macro} -% \end{macro} % % % diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf index 3b803f3383..84af40d945 100644 Binary files a/macros/latex-dev/base/ltluatex.pdf and b/macros/latex-dev/base/ltluatex.pdf differ diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf index 02b805b97d..fd05f9537f 100644 Binary files a/macros/latex-dev/base/ltnews.pdf and b/macros/latex-dev/base/ltnews.pdf differ diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf index 0f16508cc2..e91726a6dd 100644 Binary files a/macros/latex-dev/base/ltnews01.pdf and b/macros/latex-dev/base/ltnews01.pdf differ diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf index 718558863a..afbca53625 100644 Binary files a/macros/latex-dev/base/ltnews02.pdf and b/macros/latex-dev/base/ltnews02.pdf differ diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf index be857e7ee4..11ab1ee093 100644 Binary files a/macros/latex-dev/base/ltnews03.pdf and b/macros/latex-dev/base/ltnews03.pdf differ diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf index 005348dff7..bcf06e380c 100644 Binary files a/macros/latex-dev/base/ltnews04.pdf and b/macros/latex-dev/base/ltnews04.pdf differ diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf index 7008d76f68..f9343d862b 100644 Binary files a/macros/latex-dev/base/ltnews05.pdf and b/macros/latex-dev/base/ltnews05.pdf differ diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf index 538c9768f3..b6b42938fc 100644 Binary files a/macros/latex-dev/base/ltnews06.pdf and b/macros/latex-dev/base/ltnews06.pdf differ diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf index d6b706b906..23f3bebaec 100644 Binary files a/macros/latex-dev/base/ltnews07.pdf and b/macros/latex-dev/base/ltnews07.pdf differ diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf index 9931ddee80..5dbe32de57 100644 Binary files a/macros/latex-dev/base/ltnews08.pdf and b/macros/latex-dev/base/ltnews08.pdf differ diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf index 616c594eb8..9158a8a6de 100644 Binary files a/macros/latex-dev/base/ltnews09.pdf and b/macros/latex-dev/base/ltnews09.pdf differ diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf index 7e0f03f1cc..5c583fa62e 100644 Binary files a/macros/latex-dev/base/ltnews10.pdf and b/macros/latex-dev/base/ltnews10.pdf differ diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf index 6ef42aca9f..b7b4299fee 100644 Binary files a/macros/latex-dev/base/ltnews11.pdf and b/macros/latex-dev/base/ltnews11.pdf differ diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf index 3ea3f11d6a..7d483314d2 100644 Binary files a/macros/latex-dev/base/ltnews12.pdf and b/macros/latex-dev/base/ltnews12.pdf differ diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf index a94411b8c2..bcc2ebf91c 100644 Binary files a/macros/latex-dev/base/ltnews13.pdf and b/macros/latex-dev/base/ltnews13.pdf differ diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf index 79be2aab4d..ebb1a11b88 100644 Binary files a/macros/latex-dev/base/ltnews14.pdf and b/macros/latex-dev/base/ltnews14.pdf differ diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf index aa4ef31e3e..422230b891 100644 Binary files a/macros/latex-dev/base/ltnews15.pdf and b/macros/latex-dev/base/ltnews15.pdf differ diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf index a11d785c60..33b870c2c5 100644 Binary files a/macros/latex-dev/base/ltnews16.pdf and b/macros/latex-dev/base/ltnews16.pdf differ diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf index b25ec2b3b4..e426d8f803 100644 Binary files a/macros/latex-dev/base/ltnews17.pdf and b/macros/latex-dev/base/ltnews17.pdf differ diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf index 7e926718fb..1b9d9720a8 100644 Binary files a/macros/latex-dev/base/ltnews18.pdf and b/macros/latex-dev/base/ltnews18.pdf differ diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf index 96f3be4711..ee9d4d9faf 100644 Binary files a/macros/latex-dev/base/ltnews19.pdf and b/macros/latex-dev/base/ltnews19.pdf differ diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf index 5b2ed0ee07..91ffd73c53 100644 Binary files a/macros/latex-dev/base/ltnews20.pdf and b/macros/latex-dev/base/ltnews20.pdf differ diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf index e8dfbc7c0f..2d6f14527f 100644 Binary files a/macros/latex-dev/base/ltnews21.pdf and b/macros/latex-dev/base/ltnews21.pdf differ diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf index 240c83b6c6..7e75b681d7 100644 Binary files a/macros/latex-dev/base/ltnews22.pdf and b/macros/latex-dev/base/ltnews22.pdf differ diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf index 9807ac1a7a..638b76a2c8 100644 Binary files a/macros/latex-dev/base/ltnews23.pdf and b/macros/latex-dev/base/ltnews23.pdf differ diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf index 0aa98e091e..f3be86d42e 100644 Binary files a/macros/latex-dev/base/ltnews24.pdf and b/macros/latex-dev/base/ltnews24.pdf differ diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf index 3393251fb8..f88b90f53e 100644 Binary files a/macros/latex-dev/base/ltnews25.pdf and b/macros/latex-dev/base/ltnews25.pdf differ diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf index b6da2cc18d..1f27e49641 100644 Binary files a/macros/latex-dev/base/ltnews26.pdf and b/macros/latex-dev/base/ltnews26.pdf differ diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf index d3f0ab919f..a2037f6688 100644 Binary files a/macros/latex-dev/base/ltnews27.pdf and b/macros/latex-dev/base/ltnews27.pdf differ diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf index d6670e6a43..72d813e6ac 100644 Binary files a/macros/latex-dev/base/ltnews28.pdf and b/macros/latex-dev/base/ltnews28.pdf differ diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf index 60644a30e4..ca2747c438 100644 Binary files a/macros/latex-dev/base/ltnews29.pdf and b/macros/latex-dev/base/ltnews29.pdf differ diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf index 87651bc456..4cb04aceef 100644 Binary files a/macros/latex-dev/base/ltnews30.pdf and b/macros/latex-dev/base/ltnews30.pdf differ diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf index f50f366566..445abc7e11 100644 Binary files a/macros/latex-dev/base/ltnews31.pdf and b/macros/latex-dev/base/ltnews31.pdf differ diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf index 51c980520e..d4494fdd6c 100644 Binary files a/macros/latex-dev/base/ltnews32.pdf and b/macros/latex-dev/base/ltnews32.pdf differ diff --git a/macros/latex-dev/base/ltnews33.pdf b/macros/latex-dev/base/ltnews33.pdf index 486fd7b9ab..305c7aed93 100644 Binary files a/macros/latex-dev/base/ltnews33.pdf and b/macros/latex-dev/base/ltnews33.pdf differ diff --git a/macros/latex-dev/base/ltnews33.tex b/macros/latex-dev/base/ltnews33.tex index 7f23e9d853..88bce82055 100644 --- a/macros/latex-dev/base/ltnews33.tex +++ b/macros/latex-dev/base/ltnews33.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2019-2020 +% Copyright 2019-2021 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -33,6 +33,16 @@ \NeedsTeXFormat{LaTeX2e}[2020-02-02] \documentclass{ltnews} + +%%CCC Temporary definitions: +\providecommand\Dash {\unskip ---} + + + +%% NOTE: Chris' preferred hyphens! +%%\showhyphens{parameters} +\hyphenation{because para-me-ters} + \usepackage[T1]{fontenc} \usepackage{lmodern,url,hologo} @@ -85,12 +95,25 @@ \vbadness=1400 % accept slightly empty columns +\makeatletter +% maybe not the greatest design but normally we wouldn't have subsubsections +\renewcommand{\subsubsection}{% + \@startsection {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}% + {-1em}{\@subheadingfont\colonize}% +} +\newcommand\colonize[1]{#1:} +\makeatother + +\let\finalvspace\vspace % for document layout fixes + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \providecommand\tubcommand[1]{} \tubcommand{\input{tubltmac}} \publicationmonth{June} -\publicationyear{2021 --- Draft Version} +\publicationyear{2021} %% --- Draft Version 3p \publicationissue{33} @@ -109,15 +132,17 @@ \section{Introduction} -The focus of the June 2020 release is to provide further important -building blocks for producing reliable tagged PDF output in the future -(see \cite{33:blueprint}), they are discussed in the next two -sections. In addition we included a number of smaller enhancement and -fixes that are outlined on the next pages. As usual, more detail can -on individual changes can be found in the \texttt{changes.txt} files -in the distribution and, of course, in the documented -sources~\cite{33:source2e}. +The focus of the June 2021 release is to provide further important +building blocks for the future production of +reliable tagged PDF output +(see \cite{33:blueprint}); these enhancements +are discussed in the next two +sections. +Subsequent sections describe quite a number of recent smaller +enhancements and fixes. As usual, more detail on individual changes +can be found in the \texttt{changes.txt} files in the distribution +and, of course, in the documented sources~\cite{33:source2e}. @@ -125,534 +150,716 @@ sources~\cite{33:source2e}. Largely triggered by the need for better control of paragraph text processing, in particular when producing tagged PDF output, we have -extended the paragraph processing of \LaTeX{} so that the kernel gains -control both at the start and the end of each paragraph. This is done -in a manner that is (or should be) transparent to packages and user -documents. +changed \LaTeX{} so that the kernel gains control both at the start +and at the end of each paragraph. This is done in a manner that is (or +should be) transparent to both packages and documents. -Beside the internal control points for exclusive use of the \LaTeX{} -kernel we also implemented four public hooks that can be used by -packages or user via the hook management declarations to achieve -special effects or implement manipulations that in the past were only -possible through redefinitions of \cs{everypar} or \cs{par} with the -usual issue that such changes would conflict with changes in other -packages. +Besides the addition of internal control points for the exclusive use +of the \LaTeX{} kernel, we also implemented four public hooks that can +be used in packages or documents (via the normal hook management +declarations) to achieve special effects, etc. Until now, such +enhancements required redefinitions of \cs{everypar} or \cs{par}, +which led to the usual issues since such changes can easily conflict +with changes made by other packages. -The documentation of the hooks together with a few examples is -provided in \file{ltpara-doc.pdf} and for those who want to study the -(quite interesting) code is found in -\file{ltpara-code.pdf}. Additionally it is included as part of the -full kernel documentation in \file{source2e.pdf}. +The documentation of these new \enquote{paragraph hooks}, together +with a few examples, is in \file{ltpara-doc.pdf} and, for those who +want to study it, the (quite interesting) code can be found in +\file{ltpara-code.pdf}. Additionally, both of these files are included +as part of the full kernel documentation in \file{source2e.pdf}. \section{Extending the hook concept to commands} -Up to now the hook management covered hooks for a few core areas, such -as hooks for the \cs{shipout} process or those in the \env{document} -environment, as well as generic hooks for file loading (helpful for -patching) and for arbitrary environments (executed by \cs{begin} and -\cs{end}). +Up to now, hook management covered hooks for only a few core areas, +such as the hooks for the \cs{shipout} process or those in the +\env{document} environment, as well as some \enquote {generic} hooks, +both for file loading (helpful for patching such files) and for +arbitrary environments (the hooks executed within \cs{begin} and +\cs{end}). This concept of \enquote{generic hooks} has now been +extended to provide \hook{/before} and \hook{/after} hooks for any +(document-level) command\Dash in theory at least. -This has now been extended to add \hook{/before} and \hook{/after} -hooks to any (document-level) command---in theory at that is. In -practice the new generic \hook{cmd} hooks, especially the -\hook{cmd/.../after} hooks may fail with commands that are too complex -to be automatically patched and break them if the hook is filled with -code. The restrictions are documented in \texttt{ltcmdhooks-doc.pdf}. -However, given that these hooks are mainly meant for package -developers to provide a better interoperability between different -packages and between packages and the \LaTeX{} kernel, these -restrictions are of minor importance: for commands where the mechanism -can't be applied, one is in the same situation as before and for all -others there will be a noticeable improvement. This is especially -important for our big project providing accessible and tagged PDF -output~\cite{33:blueprint}, because for this we will eventually have -to patch many third-party packages and this is only feasible, if it can -be done in controlled and standardized ways. +In practice, these new generic \hook{cmd} hooks, especially the +\hook{cmd/.../after}, hooks may fail with commands that are too +complex to be automatically patched, breaking if the hook contains any +code. These restrictions are documented in +\texttt{ltcmdhooks-doc.pdf}. +% +However, given that these hooks are mainly meant for developers who +wish to provide better interoperability between different packages, +and between packages and the \LaTeX{} kernel, these restrictions are, +we hope, of minor importance. Indeed, for commands where this +mechanism can't be applied, one is in the same situation as before; +and for all others there will be a noticeable improvement. +These hooks will be especially important for our current project to +provide accessible and tagged PDF output~\cite{33:blueprint} because +we will eventually have to patch many third-party packages, and this +must be done in controlled and standardized ways. -\section{Other changes to the \LaTeX{} kernel} -\subsection{Adjusting \env{itemize} labels with \cs{labelitemfont}} +\section{Other hook business} -The command \cs{labelitemfont} was in fact already introduced with the -\LaTeX\ release 2020-02-02, but back then we forgot to describe it, so -we do this now. Its purpose is to resolve some bad formatting issues -with the \env{itemize} environment and at the same time make it easier -to adjust its layout if necessary. What could happen in the past was the -\env{itemize} labels, e.g., the \textbullet{}, would sometimes react to -surrounding font changes and could suddenly change shape, for example -to \textit{\textbullet}. - -Now \cs{labelitemfont} is applied to each -label defaulting to \cs{normalfont} which will prevent this behavior. -By choosing a different settings other effects can be achieved, for example -\begin{verbatim} - \renewcommand\labelitemfont - {\normalfont\fontfamily{lmss}\selectfont} - \renewcommand\labelitemfont - {\rmfamily\normalshape} -\end{verbatim} -The first will take the symbols from Latin Modern Sans so that you get -% -\def\myfont#1{{\let\labelitemfont\empty\fontfamily{lmss}\selectfont#1}} -% -\myfont\labelitemi, \myfont\labelitemii, \myfont\labelitemiii\ and -\myfont\labelitemiv, while the second variant freezes the font family -and shape, but leave the series variable, so that an \env{itemize} in -a bold context would show bolder symbols. Making it empty would give -you the buggy old behavior back. -% -\githubissue{497} +\subsection{Shipping out a page while bypassing hooks} -\subsection{A note on file names with spaces, dots or UTF-8 characters} +In the 2020 October release, several hooks were added to control the +process of constructing and shipping out a page box: these support, +for example, the addition of background or foreground material +to some or all pages. + + +We have now added a command, called \cs{RawShipout}, which does not do +any rebuilding of the page box and so does not run most of these +hooks. When using this new command, essential internal book-keeping +is still carried out, such as updating the \texttt{totalpages} counter +and adding \texttt{shipout/firstpage} or \texttt{shipout/lastpage} +material when appropriate. + + +\subsection{A new Lua callback in \pkg{ltshipout}, +for custom attributes} + +For use just before shipping out a page, there is now a \LuaTeX{} +callback \texttt{pre\_shipout\_filter} to contain final adjustments to +the box being shipped out. This is particularly useful for +Lua\TeX\ packages which flag (using, for example, attributes or +properties) elements on a page in order to apply effects (such as the +insertion of \enquote{color commands}) to these elements at shipout. + + + +\section{Improved handling of file names} + +\subsection[File names with spaces, multiple dots or\\ + \acro{utf-8} characters] + {File names with spaces, multiple dots or \acro{utf-8} characters} In one of the recent \LaTeX{} releases we improved the interface for specifying file names so that they can now safely contain spaces -(as is common on Windows but also elsewhere), UTF-8 characters -outside the \acro{ascii} range as well as names with several dots in -it. In the past this was only possible by applying a special syntax -(in cases of spaces), not at all for most UTF-8 characters and -not in all circumstances for files with several dots. - -However, \TeX{} has a built-in rule saying that you can leave out the -extension if it is \texttt{.tex}. Because of that \verb=\input{file}= -or \verb=\input{file.tex}= both load \file{file.tex} if it -exists. While this is convenient most of the time it is a little -awkward in some scenarios (for example, when both \file{file} and -\file{file.tex} exist) and also when you manually try to implement -that rule. +(as is common these days), +more than one dot character, and also \acro{utf-8} characters +outside the \acro{ascii} range. +In the past this was only possible by applying a special syntax +in the case of spaces, +while file names with several dots often failed, +as did most \acro{utf-8} characters. -\LaTeX{} therefore had one special syntax for \cs{include} and -\cs{includeonly}: they always expected that their arguments contains a -file name\footnote{In case of \cs{includeonly} a comma separated list - of such names.} without its extension, which had to be -\texttt{.tex}. Thus when you mistakenly wrote -\verb=\include{mychap.tex}= (for example, when you changed from \cs{input} -to \cs{include} somewhere), \LaTeX{} went ahead and looked for the -file \file{mychap.tex.tex} for inclusion and tried to write support -information to the file \file{mychap.tex.aux}. The reason was that -\cs{include} had to construct both physical file names from the -argument and it didn't bother to do something special about the -extension \texttt{.tex}. -As a side effect of the new implementation this has now changed and -the argument of \cs{include} now gets the extension \texttt{.tex} -removed if it was used. Thus \verb=\include{mychap.tex}= now loads -\file{mychap.tex} and no longer looks for \file{mychap.tex.tex}. -% -\githubissue{486} +\subsubsection{Consequences for file names in \cs{include}} +\TeX{} has a built-in rule saying that you can normally leave out the +extension if it is \texttt{.tex}. Thus \verb=\input{file}= and +\verb=\input{file.tex}= both load \file{file.tex} (if it exists). +While this is convenient most of the time, it is a little awkward in +some scenarios (for example, when both \file{file} and \file{file.tex} +exist) and also when you manually try to implement the rule. -\subsection{\cs{end}\texttt{\textbraceleft document\textbraceright} - should always start in v-mode} +\LaTeX{} therefore had one special syntax for \cs{include} and +\cs{includeonly}: they always expected that +their arguments contain a +file name\footnote{In the case of \cs{includeonly}, a comma-separated list of such names.} +with no extension given, + so that it had to be \texttt{.tex}. Thus, + when you mistakenly wrote +\verb=\include{mychap.tex}= (for example, +because you changed from \cs{input} +to \cs{include}), +\LaTeX{} went ahead and looked for the +file \file{mychap.tex.tex} for inclusion and tried to +use the file \file{mychap.tex.aux} for internal (auxiliary) information. The reason was that +\cs{include} had to construct both +of these file names from the given +argument and it didn't bother to do +anything special +with the supplied +extension \texttt{.tex}. -Until now \verb=\end{document}= executed the code from the -\cs{AtEndDocument} hook as its first action. This meant that it was -executed in horizontal mode if the user left no empty line after the -last paragraph. As a result one could get a spurious space added, for -example, when that code contained a \cs{write} statement. This was -fixed and now \cs{enddocument} first issues a \cs{par} to ensure that -it always starts out in vertical mode. +With the new implementation this has +changed: +the extension \texttt{.tex} +now gets removed/ignored if it was +supplied. +Thus \verb=\include{mychap.tex}= now +no longer looks for \file{mychap.tex.tex} +but loads +\file{mychap.tex} +and uses \file{mychap.aux}. % -\githubissue{385} +\githubissue{486} -\subsection{Allow extra space between name and address in \pkg{letter} class} +\subsection{Normalization of robust commands in file names} -The \cs{opening} command in the \pkg{letter} class expects the -name and address to be separated by \verb=\\= but it didn't allow to -use an optional argument at this point to add some extra space after -the name. The coding has now been slightly altered to allow for this. +The handling of file names has been modified so that \verb|\string| is +applied to normalize robust commands within the file name. +Previously, for example, \verb|\input{\sqrt{2}}| would cause +\LaTeX\ to loop indefinitely whereas with +the new normalization +it looks for the file named \verb|sqrt {2}.tex| +(and therefore very likely reports ``file not found''). % -\githubissue{427} +\githubissue{481} -\subsection[Add a Lua callback to \pkg{ltshipout} to provide - a uniform location for applying custom attributes] - {Add a Lua callback to \pkg{ltshipout} to provide - a uniform - \mbox\quad location for applying custom attributes} -Just before shipping out a page, a new \LuaTeX{} callback -\texttt{pre\_shipout\_filter} is now called to allow final -adjustments to the box to be shipped out. This is particularly for -Lua\TeX\ packages which flag certain elements of the page (e.g. using -attributes or properties) in order to apply certain effects to these -elements at shipout. An example for this is the \pkg{luacolor} -package which could insert the color commands using this callback. +\subsection{Fix for \env{filecontents} with \acro{utf-8} + chars in the file name} +Since a few releases back, the \env{filecontents} environment has +allowed \acro{utf-8} characters in the file name. There was, however, +a bug that would not allow \emph{over}writing a file with \acro{utf-8} +characters in its name. This has been fixed and now +\env{filecontents} allows any characters in the file name. +% +\githubissue{415} -\subsection{Improved copy\,\&\,paste support for \pdfTeX{} documents} -When compiling with \pdfTeX{}, additional information is added to the -PDF file to improve copying from and searching in text. This especially -allows ligatures to copy correctly from \pdfTeX{} generated PDF files in -most cases. -Since this has been integrated into the kernel, most documents should no -longer need to load the \pkg{cmap} package or input \texttt{glyphtounicode}. -% -\githubissue{465} +\section{Updates to the font selection scheme} -\subsection{Provide a hook in \cs{selectfont}} +\subsection{A new hook in \cs{selectfont}} -After \cs{selectfont} has altered the font we run a hook so that -packages can make final adjustments. This functionality was originally -provided by the \pkg{everysel} package, the new implementation is -slightly different and uses the standard hook management. +After \cs{selectfont} has changed the font, we now run a hook (\hook{selectfont}) +so that packages can make final \mbox{adjustments}. This functionality was +originally provided by the \pkg{everysel} package but our +implementation is slightly different and uses the standard hook +management. % \githubissue{444} -\subsection{Delay change of font series and shape to \cs{selectfont} call} +\subsection{Change of font series/shape delayed until \cs{selectfont}} -With the NFSS extensions introduced in 2020 the font series and shape -settings can be influenced by changes to the font family. The setting -is therefore delayed until \cs{selectfont} is executed to avoid -unnecessary or incorrect substitutions that may otherwise happen due -to the order of declarations. +With the NFSS extensions introduced in 2020, the font series and shape +settings can be influenced by changes to the font family. The +settings of these two are now therefore delayed until \cs{selectfont} +is executed; this avoids unnecessary or incorrect substitutions that +may otherwise happen due to the order of declarations. % \githubissue{444} -\subsection{Allow \cs{nocite} in preamble} +\section{Glyphs, characters \& encodings} -A natural place for \verb=\nocite{*}= would be the preamble of the -document, but for historical reasons \LaTeX{} issued an error message -if it was placed there. From the new release on it is now allowed in -the preamble. +\subsection{Improved copy\,\&\,paste for \pdfTeX{} documents} + +When compiling with \pdfTeX{}, additional information +(from the file \texttt{glyphtounicode.tex}) is now added automatically +to the PDF file in order to improve copying from, and searching in, +text. + +In particular, this allows the most common ligatures to be copied as +intended from all generated PDF files without the need to explicitly +load the package \pkg{cmap}. % -\githubissue{424} +\githubissue{465} -\subsection{Shipping out a page while bypassing hooks} -In the 2020 October release several hooks were added to the page -shipout process, e.g., to add some background or foreground material -to some or all pages. We now also added a \cs{RawShipout} command that -bypasses most of these hooks during the shipout. Some essential -internal bookkeeping still takes place such as updating the -\texttt{totalpages} counter or adding \texttt{shipout/firstpage} or -\texttt{shipout/lastpage} material if the page happens to be the first -or last. - -\subsection{Robust commands in filename arguments} -The filename handling has been modified so that \verb|\string| is -applied while normalizing robust commands while determining the file -name. Previously \verb|\input{\sqrt{2}}| would cause \LaTeX\ to loop indefinitely. -With the new behavior it accesses \verb|sqrt {2}.tex|. -% -\githubissue{481} +\subsection{Support for more Unicode characters} -\subsection[Additional support for Unicode characters from the - Latin Extended Additional block] - {Additional support for Unicode characters from the Latin\\ - \mbox\quad Extended Additional block} \LaTeX\ is quite capable of typesetting characters such as -\enquote{\d{m}}, but until now it lacked the Unicode mappings for some -characters that are used to write Sanskrit words in Latin -transliteration (as seen in books about yoga, Buddhist philosophy, -etc.). These have now been added so that such characters can be -entered directly instead of resorting to \verb=\d{m}= and so forth. +\enquote{\d{m}}, but until now it could not access some Unicode +characters from the Latin Extended Additional block. This meant that, +for example, there were no Unicode mappings for some characters that +are used to write Sanskrit words in Latin transliteration (as seen in +books about yoga, Buddhist philosophy, etc.). +% +These characters have now been added so that they can be entered +directly instead of using \verb=\d{m}=, etc. % \githubissue{484} -\subsection{Always have color groups set up} -To use color in \LaTeX{} certain constructs, especially boxes, need an -extra layer of groups to ensure that the color setting does not -\emph{escape} and continue outside the box when it shouldn't. To -arrange for this the \LaTeX{} kernel defined a number of commands, e.g., -\cs{color@begingroup} to be used in such places. They have been -initially no-ops and only the color packages redefined them to become -real groups. This arrangement complicates the coding as one has to -account for a group being there (or not there) depending of what is -loaded in the document. So now the kernel already adds the groups. + +\subsection{More ``dashes'' in encodings \texttt{OT1}, + \texttt{T1} and \texttt{TU}} + +When pasting in text from external sources, one can encounter these +three Unicode characters % -\githubissue{488} +\texttt{"2011} (non-breaking hyphen), +\texttt{"2012} (figure dash) and +\texttt{"2015} (horizontal bar), +% +in addition to the more common +% +\texttt{"2013} (en-dash) and \texttt{"2014} (em-dash). +% +In the past, these first three produced an error message when used +with \pdfTeX{} (since they are not available in \texttt{OT1} or +\texttt{T1} encoded fonts). They now typeset an approximation to the +glyph: e.g., the ``figure dash'' is approximated by an en-dash. +With Unicode engines they either work (when the glyph is contained in +the selected Unicode font) or they typeset nothing, producing a +``Missing character'' warning in the log file. -\subsection{Execute \cs{par} at the end of \cs{marginpar} arguments} +With all engines these characters can also now be accessed using the +command names \cs{textnonbreakinghyphen}, \cs{textfiguredash} and +\cs{texthorizontalbar}, respectively. +% +\githubissue{404} -In preparation for tagged PDF it is important to properly tag all -paragraphs and this requires running code at the beginning and end of -each. At the end of a paragraph this is done inside the \cs{par} -command, but the way \cs{marginpar} was coded, \LaTeX{} ended the -marginal note without ever explicitly calling \cs{par}. This has now -been changed. -Another case where this issue caused problems was the \pkg{lineno} -package where the last line was not numbered if the \cs{marginpar} -ended without a \cs{par} in the document. +\subsection{Poor man's \cs{textasteriskcentered}} + +The \cs{textasteriskcentered} symbol, used as part of the set of +footnote symbols in \LaTeX{}, is assumed to be implemented by every +font with the \texttt{TS1} encoding (when \pdfTeX{} is used) or with +the \texttt{TU} encoding for the Unicode engines. That assumption is +unfortunately not correct for all fonts since, for example, the +\texttt{stix2} fonts don't provide this glyph. A result is that one +gets missing glyph messages when using \cs{thanks}, etc. + +Therefore \cs{textasteriskcentered} now checks whether there is such a +glyph and, if not, uses a normal \enquote{*}, but slightly enlarged +and lowered. This may not be perfect in all cases, but it is +certainly better than no glyph showing up. % -\githubissue{489} +\githubissue{502} + +\subsection {The characters from \pkg{textcomp} are in the kernel} + +A couple of releases back, the functionality of the \pkg{textcomp} +package was integrated into the \LaTeX{} kernel. Thus it is no longer +necessary to load this package in order to access glyphs such as +\cs{textcopyright}, \cs{texteuro} or \cs{textyen}. + + +At this time the opportunity was also taken to bring some order to the +chaos surrounding the question: \enquote{which glyphs from the + \texttt{TS1} encoding are available in a given font?}. This was +done using an approach based on font families and collections, with +the differing glyph coverage of the \enquote*{text symbols} being +indicated by assigning to a font family or collection a ``sub-encoding +number'' that indicates which glyphs from the \texttt{TS1} encoding are +guaranteed to be available when using a font from that family or +collection. This assignment ensures that \LaTeX{} always errs on the +side of caution, possibly claiming that a glyph is not available even +when it in fact is. + +\iffalse %%FMi but drop that + +The documented code for this can be found now in the file +\file{lttextcomp.dtx} but we hope to publish a full explanation of +the approach very soon now. + +\fi %% FMi potential drop + + + +\subsubsection + [A note on the history of ``text symbols''] + {A note on the history of ``text symbols'' and + the \texttt{TS1} encoding} + + +The \enquote{text symbol encoding} (\texttt{TS1}) was originally +designed at the Cork Conference as a companion to the \texttt{T1} +encoding. In it various symbols that are not subject to hyphenation +got assembled and the \pkg{textcomp} package was developed to make +them accessible. Unfortunately the \TeX{} community was a bit too +enthusiastic and included several symbols only available in a few +\TeX{} fonts and some, such as the capital accents, not available at +all but developed as part of the reference font implementation. + +In hindsight that was a very bad idea because it meant that other +existing fonts (at the time) and later new fonts that got developed +were unable to provide the full set of glyphs that made up the +\texttt{TS1} encoding. For existing free PostScript fonts people +took the extra effort and produced virtual fonts that faked (some) of +the missing glyphs. But this was and is a time-consuming effort so it +was done for only a few basic fonts. But even then, only some fonts +included all glyphs from \texttt{TS1} so the \pkg{textcomp} already +back then contained a long list, dividing fonts into 5 categories +according to which glyphs were implemented and which were missing. + + +When we recently integrated the functionality of the \pkg{textcomp} +into the \LaTeX{} kernel +many new free fonts had appeared and +unfortunately the chaos around the question \enquote{which glyphs of + the \texttt{TS1} encoding are implemented by which font} had +increased with it. Not only did one find many new holes, it was next to +impossible to order the set of fonts into a reasonable set of +sub-encodings that are contained in each other in a single sequence. + +In the end we decided on nine or ten sub-encodings with a reasonable +number of fonts in each so that all fonts implemented all glyphs of the +sub-encoding they got mapped to. Thus when typesetting with a font one +could be sure that a command like \cs{textcopyleft} would either +typeset the requested character (if the glyph was part of the +sub-encoding the font belonged to) or it would raise an error, saying +that the glyph is unavailable in that font. The mapping would ensure +that \LaTeX{} always errs on the side of caution, because it might +claim a glyph is unavailable even though in fact it is.\looseness-1 + +For example, the old \texttt{pcr} (PostScript Courier) font (as well +as most other older PS fonts) is mapped to sub-encoding 5 and +therefore claims that \cs{textasciigrave} is unavailable even though +in fact for Courier this is not true. If one uses such a font and this +becomes an issue then there are a couple (suboptimal) possibilities. +For one, one can alter the mapping of Courier and pretend that belongs +to a fuller sub-encoding, e.g. +\begin{verbatim} + \DeclareEncodingSubset{TS1}{pcr}{2} +\end{verbatim} +The downside is, that \LaTeX{} then believes other glyphs that are in fact +unavailable are also there, so that it is important to check that the +final document doesn't have some missing glyphs. + +An alternative is to pretend that \cs{textasciigrave} can always be +taken from the \texttt{TS1} encoding (no questions asked): +\begin{verbatim} + \DeclareTextSymbolDefault{\textasciigrave}{TS1} +\end{verbatim} +Again there is a danger that this is not true when it is used with a +different font and would then generate a missing glyph. + +Finally, and possibly the best solution, if not impossible for other +reasons, is to simply use a different font, for example, to use the +\TeX{} Gyre Cursor font (a reimplementation of Courier with a +much more complete glyph set). -\subsection{Producing several footnote marks to one footnote} + +\section{New or improved commands} + +\subsection{Adjusting \env{itemize} labels with \cs{labelitemfont}} + +The command \cs{labelitemfont} was introduced already with the +\LaTeX\ release 2020-02-02, but back then we forgot to describe it, so +we do this now. Its purpose is to resolve some bad formatting issues +with the \env{itemize} environment and also to make it easier to +adjust the layout when necessary. What could happen in the past was +that the \env{itemize} labels (e.g., the \textbullet{}) would +sometimes react to surrounding font changes and could then suddenly +change shape, for example to \textit{\textbullet}. + +This new command \cs{labelitemfont}, which defaults to \cs{normalfont}, +can be used to provide additional control in the typesetting of +each label. Thus by choosing +different settings other effects can be achieved. Here are two +examples: +\begin{verbatim} + \renewcommand\labelitemfont + {\normalfont\fontfamily{lmss}\selectfont} + \renewcommand\labelitemfont + {\rmfamily\normalshape} +\end{verbatim} +The first definition will take the symbols from the font Latin Modern +Sans, so that you get +% +\def\myfont#1{{\let\labelitemfont\empty\fontfamily{lmss}\selectfont#1}}% +% +\myfont\labelitemi, \myfont\labelitemii, \myfont\labelitemiii\ and +\!\!\myfont\labelitemiv\,; while the second variant freezes the font family +and shape, but leaves the series as a variable quantity, so that an +\env{itemize} in a bold context would show bolder symbols. Making +\cs{labelitemfont} empty would give you back the buggy old behavior. +% +\githubissue{497} + + +\subsection{Producing several marks for one footnote} It is sometimes necessary to reference the same footnote several -times, i.e., produce several footnote marks with the same number or -symbol. This is now always possible by placing a \cs{label} into the -\cs{footnote} and reference it with the command \cs{footref} -elsewhere. This way marks referring to footnotes anywhere on the page -(including those in \texttt{minipage}s) can be generated. In the past -this command was only available with certain classes or when loading -the \pkg{footmisc} package. +times: i.e., to produce several footnote marks using the same number +or symbol. This is now easily possible by placing a \cs{label} within +the referenced \cs{footnote} and referencing this label by using the +new command \cs{footref}. This means that footnote marks can be +generated to refer to arbitrary footnotes (including those in +\texttt{minipage}s). + +This \cs{footref} command has previously been available, but only when +using certain classes or the \pkg{footmisc} package. % \githubissue{482} +\subsection{Allow \cs{nocite} in the preamble} -\subsection[Providing the raw option list of packages or documentclass - to key/value handlers] - {Providing the raw option list of packages or documentclass\\ - \mbox\quad to key/value handlers} +A natural place for \verb=\nocite{*}= would be the preamble of the +document, but for historical reasons \LaTeX{} issued an error message +if it was placed there. This command is now allowed in the preamble. +% +\githubissue{424} -\LaTeXe{} has always normalized space in option lists so\\ -\verb|\documentclass[ a4paper , 12pt ]{article}|\\ -processed the intended options \texttt{a4paper} and \texttt{12pt}. -Unfortunately the mechanism used was designed for the simple option -names of the standard option processing. Many classes and packages -now use extended \emph{keyval} processing, however this white space -normalization makes this difficult: -\verb|[bb=1 2 3 4]| -which might be expected to pass a bounding box of four numbers is -normalized to \texttt{bb=1234} and -\verb|[bb={1 2 3 4}]|\\ -which might be expected to quote the spaces results in low level \TeX{} -parsing errors. +\subsection{Made \cs{\textbackslash} generally robust} +In 2018 most \LaTeX{} user-level commands were made robust, including +the \cs{\textbackslash} command. However, \cs{\textbackslash} gets +redefined in various environments and not all these cases were caught: +such as, in particular, its use as the row delimiter in \env{tabular} +structures. This has been corrected so that \cs{\textbackslash} +should now be robust in all circumstances. -For compatibility reasons, the standard option processing has not been -changed however the original un-normalized package and class option lists -are now saved. They are not used in the standard processing, however -extended package option systems may use these \enquote{raw} option list -macros if they are defined. -The one change affecting the standard processing is that the low level -error mentioned above is now avoided as values (any tokens to the -right of an = sign) are removed from consideration from the -\enquote{unused option list}. In this release \texttt{clip=true} and -\texttt{clip=false} both contribute \texttt{clip} to the list of -options that have been used. +This change also fixed one anomaly present in the past: +in a tabular preamble of the form +\finalvspace*{-.3\baselineskip} +\begin{quote} + \hspace*{-.15em}\verb={l=\texttt{\string>}\verb={\raggedright}p{10cm}r}= % stupid class +\end{quote} +\finalvspace*{-.3\baselineskip} +a \cs{\textbackslash} in the second column would have the definition +used within \cs{raggedright} and so it would not indicate the +(premature) end of the \env{tabular}. Thus, for example,% +\finalvspace*{-.3\baselineskip} +\begin{quote} + \verb=a & b1 \\ b2 & c \\= +\end{quote} +\finalvspace*{-.3\baselineskip} +was interpreted as a single row of the \env{tabular} (as intended), +whereas +\finalvspace*{-.3\baselineskip} +\begin{quote} + \verb=a & \\ b2 & c \\= +\end{quote} +\finalvspace*{-.3\baselineskip} +resulted in two rows! This happened because the \cs{\textbackslash} +directly following the \verb=&= got interpreted while it still had the +\enquote{end the row} meaning and not yet the \enquote{start a new + line within the second column} meaning. + +With \cs{\textbackslash} now being robust, the special scanning mode +initiated by the \verb=&= ends immediately when this command is seen: +the second column is therefore then started, which results in the +\cs{\textbackslash} being interpreted as being within that column and +hence as having its expected, within-column, meaning. + +We have restored consistency here: now both of the above lines +produce a single \env{tabular} row. +% +As before, you can +put \cs{raggedright}\cs{arraybackslash} in the \env{tabular}'s +preamble for a column to ensure that \cs{\textbackslash} is always +interpreted as a tabular row separator when used in that column. And +you can use \cs{tabularnewline} to explicitly ask for a new table row, +even when \cs{\textbackslash} has a different meaning within the +current column. % -\githubissue{85} +\githubissue{548} -\subsection{Poor man's \cs{textasteriskcentered} if missing} -The \cs{textasteriskcentered} symbol, used as part of the set of -footnote symbols in \LaTeX{}, is assumed to be implemented by -every font in the \texttt{TS1} encoding (when \pdfTeX{} is used) or -in the \texttt{TU} encoding for the Unicode engines. Unfortunately, -that assumption is not correct for all fonts, for example, for the -\texttt{stix2} fonts don't offer the glyph, with the result that one -gets missing glyphs when using \cs{thanks} etc. - -For that reason the definition for \cs{textasteriskcentered} was -altered to check if there is a glyph in the right position and if not -a normal \enquote{*} is used, slightly enlarged and lowered. That may -not be perfect in all cases, but certainly better than nothing show -up. +\subsection{Allow extra space between name and address in \pkg{letter} class} + +The \cs{opening} command in the \pkg{letter} class expects the name +and address to be separated by \verb=\\=, but it didn't allow the use +of an optional argument to add some extra space after the name. The +code has now been slightly altered to allow this. % -\githubissue{502} +\githubissue{427} -\subsection{Provide more ``dashes'' in encodings \texttt{OT1}, - \texttt{T1} and \texttt{TU}} +\subsection{Additions to \cs{tracingall}} -When pasting in text from external sources one sometimes encounters -the Unicode characters -% -\texttt{"2011} (non-breaking hyphen), -\texttt{"2012} (figure dash) and -\texttt{"2015} (horizontal bar) -% -in addition to the common \texttt{"2013} (en-dash) and \texttt{"2014} -(em-dash). In the past the first three characters produced an error -message when used with \pdfTeX{}. Now they typeset an approximation -(as they are unavailable in \texttt{OT1} or \texttt{T1} encoded fonts -used by \pdfTeX{}), e.g., the figure dash is approximated by an en-dash. +In July 2020 David Jones suggested an extension to \TeX{} engines, +that added the possibility to set \cs{tracinglostchars}\texttt{=3} in +order to generate an error message in case some character is missing +from a font. In previous years, a warning about a missing character +was silently printed to the \texttt{.log} file\linebreak +(if $\cs{tracinglostchars}>0$) and to the terminal\linebreak + (if ${}>1$). This extension was added for \TL{} and \MiKTeX{} +(except in Knuth's \TeX, of course), +so that with $\cs{tracinglostchars}>2$ you now also get an +error message for each missing glyph. -In Unicode engines they either work (if contained in the selected -Unicode font) or typeset nothing and produce a ``Missing character'' -warning in the log file. +Later, in January 2021, Petr Olšák suggested yet another extension: +a new primitive +\mbox{parameter} +% +\cs{tracingstacklevels} that, when both it and \cs{tracingmacros} are +positive, will add to the \mbox{tracing} information for each +macro a visual indication (using dots) of +its nesting level in the macro expansion stack. -However, what works in all engines now, is to access the characters -via the command names \cs{textnonbreakinghyphen}, \cs{textfiguredash} -and \cs{texthorizontalbar}, respectively. +These changes have both now been added to \LaTeX's debugging macros +\cs{tracingall} and \cs{tracingnone}, so that these two new extensions +are activated/deactivated as appropriate, so long as the \TeX{} engine +supports them. An example document demonstrating these parameters is +in the linked GitHub issue. % -\githubissue{404} +\githubissue{524} -\subsection{\env{filecontents} with \acro{utf-8} characters in file name} -Since a few releases back, the \env{filecontents} environment allows writing a -file with \acro{utf-8} characters in its name. However there was a bug that -would not allow \emph{over}writing a file with \acro{utf-8} characters in the -name. This has been fixed and now \env{filecontents} allows any characters in -the file name. -% -\githubissue{415} +\section{Code improvements} + +\subsection{Execute \cs{par} at the end of \cs{marginpar}} +Previously, \LaTeX{} ended a \cs{marginpar} without ever explicitly +calling \cs{par}. This command is now explicitly added because it is +essential to the correct working of the paragraph hooks. +Another case where this issue caused problems was the \pkg{lineno} +package, where the last line was not numbered if the \cs{marginpar} +ended without an explicit \cs{par}. +% +\githubissue{489} -\subsection{Extending \pkg{latexrelease} to declare an entire module} -In the 2020-10-01 release, \LaTeX's new hook management system was added to the -kernel (see \cite{33:ltnews32}) and, as with all changes to the kernel, it was -added to \pkg{latexrelease}, so that it is possible to roll back to a date where -such module didn't exist yet, or roll forward from an older release and have the -hook management system by loading the \pkg{latexrelease} package. -However rolling back from a later release to the 2020-10-01 release didn't quite -work because it would try to define all the commands from \pkg{lthooks} again, -and that would result in errors, as usual with commands defined with -\cs{newcommand} or in the case of \pkg{lthooks}, \cs{cs\_new:Npn}. +\subsection{Execute \cs{AtEndDocument} hook in vertical mode} -To solve this issue, now completely new modules can be defined in -\pkg{latexrelease} using \cs{NewModuleRelease} -and then when rolling back or forward it will know if the code -of the module has to be read or completely ignored. More details can be -found in the \pkg{latexrelease} documentation (\verb|texdoc latexrelease|). +Until now \verb=\end{document}= executed the code from the +\cs{AtEndDocument} hook as its first action. This meant that this +hook was executed in horizontal mode if the user left no empty line +after the last paragraph. As a result, one could get a spurious space +added when, for example, that code contained a \cs{write} +statement. This was fixed and now \cs{enddocument} first issues a +\cs{par} to ensure that it always goes into vertical mode. % -\githubissue{479} +\githubissue{385} +\subsection{Color groups made permanent} + +The use of color in certain \LaTeX{} constructs, especially boxes, +needs an extra layer of grouping to ensure that the color setting does +not \emph{escape} and continue outside the box when it shouldn't. +% +To support this, the \LaTeX{} kernel defines a number of commands, +e.g., \cs{color@begingroup} to be used in such places. -\subsection{Small fix for rolling back prior to 2020-02-02} -Whereas the \pkg{latexrelease} package can usually emulate an older \LaTeX{} -kernel without much problem, rolling back to before the 2020-02-02 release -didn't work properly because the management of the \cs{ExplSyntaxOn/Off} status -for packages cannot be removed by the rollback without messing up catcodes after -an \pkg{expl3}-based package is loaded. This has been fixed and now rollback is -more careful not to leave \pkg{ExplSyntaxOn} after a package ends. +Until now, these commands were initially set as no-ops and only the +color packages redefined them to become real groups; this methodology +complicates the coding as one has to account for a group being present +or not (\mbox{depending} on what is loaded in the document). % -\githubissue{504} +The kernel therefore now permanently adds these \enquote{color groups}. +% +\githubissue{488} +\subsection{Provide the raw option list to key/value option handlers} -\subsection[Add \cs{tracingstacklevels} - and \cs{tracinglostchars}\texttt{=3} to \cs{tracingall}] - {Add \cs{tracingstacklevels} - and \cs{tracinglostchars}\texttt{=3}\\ - \mbox\quad to \cs{tracingall}} +Before any further processing of the option list, the original +(un-normalized, \enquote{raw} and unchanged) list of package or class +options is now saved, as \cs{@raw@opt@...}; this list is not used by +the standard option processing code but it is now available for use by +extended class/package processing systems. Note that, for +compatibility reasons, the standard option processing code has not +been changed. -In July 2020 David Jones suggested an extension to \TeX{} engines, that -added the possibility to set \cs{tracinglostchars}\texttt{=3} to have an -error in case some character is missing from a font. In previous years, -the warning for a missing character would be silently printed to the -\texttt{.log} file (if $\cs{tracinglostchars}>0$) and to the terminal -(if ${}>1$). This extension was added for \TL{} and \MiKTeX{} (except -in Knuth's \TeX, of course) and now with $\cs{tracinglostchars}>2$ you -get an error on a missing glyph. -Later, in January 2021, Petr Olšák suggested yet another extension, a -new primitive parameter \cs{tracingstacklevels} that, when positive (and -when \cs{tracingmacros} is also positive), will print a visual -indication of the macro nesting level in \TeX's tracing information. -Both these changes were incorporated to \LaTeX's debugging macros -\cs{tracingall} and \cs{tracingnone}, so when you use them, the new -extensions are automatically activated/deactivated if your \TeX{} -distributions has a recent enough engine. An example document -demonstrating these parameters is available in the linked GitHub issue. +One +aspect of this +change does affect the standard \mbox{processing}: any tokens to the +right of an \texttt{=} +sign are \mbox{removed} +from consideration +when constructing +the \enquote{\mbox{unused} option list}. +For example, in +this release \texttt{clip=true} and +\texttt{clip=false} both contribute \texttt{clip} to the list of +options that have been used. % -\githubissue{524} +\githubissue{85} -\subsection{Make \cs{\textbackslash} generally robust} +\subsection{New for \pkg{latexrelease}\,: \cs{NewModuleRelease}} + +To explain the need for this new feature, we shall consider the +following example: in the 2020-10-01 release, \LaTeX's new hook +management system was added to the kernel (see \cite{33:ltnews32}) +and, as with all changes to the kernel, it was added to +\pkg{latexrelease}; this made it possible to roll back to a date where +this module didn't yet exist, or to roll forward from an older +\LaTeX{} release to get the hook management system (by loading the +\pkg{latexrelease} package). +% +However, this method of rolling back from a later release to the +2020-10-01 release didn't quite work because it would try to define +all the commands from \pkg{lthooks} again; and this would of course +result in the expected errors from commands defined with +\cs{newcommand} or (as in \pkg{lthooks}) \cs{cs\_new:Npn}. + +To solve such issues, we now provide \cs{NewModuleRelease} so that +completely new modules can be defined using the facilities of +\pkg{latexrelease} in such a way that, when rolling back or forward, +the system will know whether the code of the new module has to be read +or completely ignored. More details on this can be found in the +\pkg{latexrelease} documentation (get this with +\verb|texdoc latexrelease|). +% +\githubissue{479} -In 2018 most \LaTeX{} user-level commands were made robust including -\cs{\textbackslash}. However, \cs{\textbackslash} is redefined in -various environments and not all cases were caught, in particular its use as row -delimiter in \env{tablular} structures. This has now been corrected and -\cs{\textbackslash} should be robust in all standard -circumstances. Doing that also fixed one anomaly present in the past: -in a tabular preamble of the form -\begin{quote} - \verb={l=\texttt{\string>}\verb={raggedright}p{10cm}r}= % stupid class -\end{quote} -a \cs{\textbackslash} in the second column would have the definition -used by \cs{raggedright} and would not indicate the (premature) end of -the \env{tabular}, e.g., -\begin{quote} - \verb=a & b1 \\ b2 & c \\= -\end{quote} -would be a single row in that \env{tabular}. However, writing -\begin{quote} - \verb=a & \\ b2 & c \\= -\end{quote} -would give you two rows: due to the scanning process the -\cs{\textbackslash} directly following the \verb=&= still had -the \enquote{end the row} meaning and not the \enquote{start a new - line in the second column} meaning. -With \cs{\textbackslash} now robust, the scanning after \verb=&= ends -when the command is seen and the second column is started and so now -both lines above consistently produce a single \env{tabular} row. +\subsection{Small fix for rolling back prior to 2020-02-02} -As before, you can use \cs{raggedright} \cs{arraybackslash} in the -\env{tabular} preamble to ensure that \cs{\textbackslash} is always -interpreted as a row separator when used in the column or you could -use \cs{tabularnewline} to explicitly ask for a new row even when -\cs{\textbackslash} has a different meaning in the current column. +Whereas the \pkg{latexrelease} package can usually emulate an older +\LaTeX{} kernel without much problem, rolling back to before the +2020-02-02 release didn't work properly: this is because the +management of the \cs{ExplSyntaxOn/Off} status for packages (after an +\pkg{expl3}-based package is loaded) cannot be removed by the rollback +without messing up the catcodes. This has been fixed so that rollback +is now more careful not to leave \cs{ExplSyntaxOn} after a package +ends. % -\githubissue{548} +\githubissue{504} \section{Changes to packages in the \pkg{graphics} category} -\subsection{Removed spurious warning for generic graphics rules} +\subsection{Removed warning when loading graphics files} -A previous release mistakenly caused a warning to appear when loading a graphics -file with an unknown extension through a generic graphics rule. The warning -would incorrectly say that the file was not found, whereas the file would be -included correctly. The warning now doesn't show up in that case. +A previous release sometimes mistakenly caused a (false) warning +message to appear when \mbox{using} a generic graphics rule to find +and load a graphics file with an unknown \mbox{extension}. +%%CCC removing hyphenation here makes this one line longer. +This warning would incorrectly say that the file was not found, +whereas the file would in fact be correctly loaded. The warning now +doesn't show up in that case. % \githubissue{516} -\subsection{Fixed loading \texttt{gzip}ped PostScript graphics files} +\subsection{Fixed loading of \texttt{gzip}ped + PostScript files} -A previous release mistakenly changed the file searching mechanism and -compressed graphics files would raise an error when being loaded with -\cs{includegraphics}. This has been fixed and now \texttt{gzip}ped graphics -load correctly. +A previous release mistakenly changed the file searching mechanism so +that compressed PostScript graphics files would raise an error when +being loaded with \cs{includegraphics}. This has been fixed so that +\texttt{gzip}ped graphics files now load correctly. % \githubissue{519} - \section{Changes to packages in the \pkg{tools} category} -\subsection{\pkg{layout}: Support extra language options} -The package now recognizes \texttt{japanese} and \texttt{romanian} as +\subsection{\pkg{layout}: Added language options} + +This package now recognizes \texttt{japanese} and \texttt{romanian} as language options. % \githubissue[s]{353 and 529} @@ -660,71 +867,64 @@ language options. \subsection{\pkg{array} and \pkg{longtable}: Make \cs{\textbackslash} generally robust} -The fix for this issue was also applied to these packages, see above. +The fix for this issue was also applied to these packages; see above. % \githubissue{548} \subsection{\pkg{longtable}: General bug fix update} -Minor update to \pkg{longtable} to fix bugs reported. Notably the -possibility of incorrect page breaks if floats appear on the same page -that a \env{longtable} starts. As this may affect page breaking in -existing documents, a rollback to \pkg{longtable 4.13} -(\file{longtable-2020-01-07.sty}) is supported. + +This is a minor update to the \pkg{longtable} package that fixes several +reported bugs: notably the possibility of incorrect page breaks when +floats appear on the page where a \env{longtable} starts. As this may +affect page breaking in existing documents, a rollback to +\pkg{longtable 4.13} (\file{longtable-2020-01-07.sty}) is supported. % \gnatsissue{tools}{2914 3396 3512} -\githubissue{133 183 464} +\githubissue{133 137 183 464 561} -\subsection[\pkg{trace}: Add \cs{tracingstacklevels} - and \cs{tracinglostchars}\texttt{=3} to \cs{traceon}] - {\pkg{trace}: Add \cs{tracingstacklevels} and\\ - \mbox\quad \cs{tracinglostchars}\texttt{=3} to \cs{traceon}} +\subsection{\pkg{trace}: Additions to \cs{traceon}} -The enhancement mentioned earlier was also added to the \pkg{trace} package. -% -\iffalse -The \cs{tracingstacklevels} and \cs{tracinglostchars} extensions -mentioned earlier for \cs{tracingall} were also added for -\cs{traceon} in the \pkg{trace} package, so if you're using that you -can also benefit from these new debugging tools. -\fi -% +The \cs{tracingstacklevels} and \cs{tracinglostchars} extensions to +\cs{tracingall} (see above) were also added to \cs{traceon} in the +\pkg{trace} package, so its users can also benefit from these new +debugging possibilities. % \githubissue{524} - - \subsection{\pkg{bm}: Better support for commands with optional arguments} -Some uses of optional arguments that were supported by \cs{bm} stopped -being supported (in 2004) when \cs{kernel@ifnextchar} was used -internally by the format instead of \cs{@ifnextchar}. This update -handles both versions of this command and restores the original -behaviour. -In addition package options for guiding the use of \enquote{poor man's - bold} in fallback situations were added. +Some uses of optional arguments in \cs{bm} stopped being supported (in +2004) when \cs{kernel@ifnextchar} was used internally by the format +instead of \cs{@ifnextchar}. This update handles both versions of this +command and restores the original \mbox{behavior}. + +In addition, package options for guiding the use of \enquote{poor + man's bold} in fallback situations were added. % \githubissue{554} -\section{Changes to packages in the \pkg{amsmath} category} -%\subsection{\pkg{amsmath}: Make \cs{\textbackslash} generally robust} -The fix for issue 548 was also applied in \pkg{amsmath}, see above. +\section{Changes to packages in the \pkg{amsmath} category} + +The fix for issue 548 was also applied in \pkg{amsmath}; see above. % \githubissue{548} -%\medskip + + +\medskip \begin{thebibliography}{9} \fontsize{9.3}{11.3}\selectfont \bibitem{33:blueprint} Frank Mittelbach and Chris Rowley: - \emph{\LaTeX{} Tagged PDF — A blueprint for a large project}.\\ + \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\ \url{https://latex-project.org/publications/indexbyyear/2020/} \bibitem{33:source2e} diff --git a/macros/latex-dev/base/ltoutput.dtx b/macros/latex-dev/base/ltoutput.dtx index 69bfa1f036..b1b3a24096 100644 --- a/macros/latex-dev/base/ltoutput.dtx +++ b/macros/latex-dev/base/ltoutput.dtx @@ -37,7 +37,7 @@ %<*driver> % \fi \ProvidesFile{ltoutput.dtx} - [2020/12/06 v1.4f LaTeX Kernel (Output Routine)] + [2021/05/05 v1.4g LaTeX Kernel (Output Routine)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltoutput.dtx} @@ -1134,7 +1134,7 @@ \global \advance \@colht \@tempdima \ifx \@dbltoplist \@empty \else - \@latexerr{Float(s) lost}\@ehb + \@latex@error{Float(s) lost}\@ehb \let \@dbltoplist \@empty \fi \@cons \@dbltoplist \@currbox @@ -1525,7 +1525,7 @@ \global \@colroom \@colht \ifx \@currlist\@empty \else - \@latexerr{Float(s) lost}\@ehb + \@latex@error{Float(s) lost}\@ehb \global \let \@currlist \@empty \fi \@makefcolumn\@deferlist @@ -3920,9 +3920,9 @@ % \@tempskipa#2\relax \ifdim \@tempskipa>.5\maxdimen - \@latexerr{Suggested\space extra\space height\space - (\the\@tempskipa)\space dangerously\space - large}\@eha + \@latex@error{Suggested\space extra\space height\space + (\the\@tempskipa)\space dangerously\space + large}\@eha \else \ifdim \vsize<.5\maxdimen %<*trace> @@ -3940,8 +3940,8 @@ \fi % \else - \@latexerr{Page\space height\space already\space - too\space large}\@eha + \@latex@error{Page\space height\space already\space + too\space large}\@eha \fi \fi } diff --git a/macros/latex-dev/base/ltpara-code.pdf b/macros/latex-dev/base/ltpara-code.pdf index 8984f1ccb5..a9b55237f1 100644 Binary files a/macros/latex-dev/base/ltpara-code.pdf and b/macros/latex-dev/base/ltpara-code.pdf differ diff --git a/macros/latex-dev/base/ltpara-doc.pdf b/macros/latex-dev/base/ltpara-doc.pdf index c8bff05546..f383268f22 100644 Binary files a/macros/latex-dev/base/ltpara-doc.pdf and b/macros/latex-dev/base/ltpara-doc.pdf differ diff --git a/macros/latex-dev/base/ltpara.dtx b/macros/latex-dev/base/ltpara.dtx index ad503b68e2..5ab52a5e9b 100644 --- a/macros/latex-dev/base/ltpara.dtx +++ b/macros/latex-dev/base/ltpara.dtx @@ -14,8 +14,8 @@ %%% From File: ltpara.dtx % % \begin{macrocode} -\def\ltparaversion{v1.0f} -\def\ltparadate{2021/04/16} +\def\ltparaversion{v1.0g} +\def\ltparadate{2021/05/27} % \end{macrocode} %<*driver> \documentclass{l3doc} @@ -672,6 +672,8 @@ %<@@=para> % \end{macrocode} % +% \changes{v1.0g}{2021/05/24}{Use \cs{msg_...} instead of \cs{__kernel_msg...}} +% % % \begin{macrocode} %<*2ekernel|latexrelease> @@ -751,7 +753,7 @@ % we can detect and report if the \hook{para/before} hook illegally % changed out of vmode. % \begin{macrocode} - \tex_everypar:D { \__kernel_msg_error:nnnn {para}{mode}{before}{vertical} } + \tex_everypar:D { \msg_error:nnnn { hooks }{ para-mode }{before}{vertical} } \@kernel@before@para@before \hook_use:n {para/before} % \end{macrocode} @@ -785,7 +787,7 @@ % If we aren't in horizontal mode any longer the hooks above misbehaved. % \begin{macrocode} \if_mode_horizontal: \else: - \__kernel_msg_error:nnnn {para}{mode}{begin}{vertical} \fi: + \msg_error:nnnn { hooks }{ para-mode }{begin}{vertical} \fi: % \end{macrocode} % Finally we reinsert the indentation box (unless suppressed) and % then call \cs{everypar} the way legacy \LaTeX\ code expects it. @@ -1047,7 +1049,7 @@ % If we haven't been in horizontal mode then the earlier hook % \hook{para/end} is at fault and we report that. % \begin{macrocode} - { \__kernel_msg_error:nnnn {para}{mode}{end}{horizontal} } + { \msg_error:nnnn { hooks }{ para-mode }{end}{horizontal} } % \end{macrocode} % Finally close out the nested conditionals. % \begin{macrocode} @@ -1088,7 +1090,7 @@ \@@_handle_indent: \the\everypar } } - { \__kernel_msg_error:nn {para}{raw} } + { \msg_error:nn { kernel }{ raw-para } } \tex_indent:D } % \end{macrocode} @@ -1101,7 +1103,7 @@ \tex_everypar:D { \g_@@_standard_everypar_tl } \the\everypar } } - { \__kernel_msg_error:nn {para}{raw} } + { \msg_error:nn { kernel }{ raw-para } } \tex_noindent:D } % \end{macrocode} @@ -1158,8 +1160,9 @@ % paragraph. % The first argument is the hook name second the mode % it should have stayed in but didn't. -% \begin{macrocode} -\__kernel_msg_new:nnnn {para} {mode} +% +% \begin{macrocode} +\msg_new:nnnn { hooks } { para-mode } { Illegal~mode~ change~ in~ hook~ 'para/#1'.\\ Hook~ code~ did~ not~ remain~ in~ #2~ mode. @@ -1168,21 +1171,23 @@ Paragraph~ hooks~ cannot~ change~ the~ TeX~ mode~ without~ causing~ endless~ recursion.~ The~ hook~ code~ in~ 'para/#1'~ needs~ to~ stay~ in~ #2~ mode,~ but~ it~ didn't.~ Examine~ the~ hook~ - code~ with~ \ShowHook~ to~ find~ the~ issue. + code~ with~ \iow_char:N \\ShowHook~ to~ find~ the~ issue. } % \end{macrocode} % % And here is one used in the \enquote{raw} commands when they are % used outside of vertical mode. % \begin{macrocode} -\__kernel_msg_new:nnnn {para} {raw} +\msg_new:nnnn { kernel } { raw-para } { - Paragraph started while not in vertical mode. + Not~ in~ vertical~ mode. } { - Starting a paragraph with \RawIndent or \RawNoindent - (or \para_raw_indent: or \para_raw_noindent:) is only - allowed if LaTeX is in vertical mode. + Starting~ a~ paragraph~ with~ \iow_char:N \\RawIndent~ or~ + \iow_char:N \\RawNoindent \\ + (or~ \iow_char:N \\para_raw_indent:~ or~ + \iow_char:N \\para_raw_noindent:)~ is~ only~ allowed \\ + if~ LaTeX~ is~ in~ vertical~ mode. } % \end{macrocode} diff --git a/macros/latex-dev/base/ltshipout-code.pdf b/macros/latex-dev/base/ltshipout-code.pdf index 828e444c2f..2572de0e02 100644 Binary files a/macros/latex-dev/base/ltshipout-code.pdf and b/macros/latex-dev/base/ltshipout-code.pdf differ diff --git a/macros/latex-dev/base/ltshipout-doc.pdf b/macros/latex-dev/base/ltshipout-doc.pdf index 4c8457428f..7fece645c8 100644 Binary files a/macros/latex-dev/base/ltshipout-doc.pdf and b/macros/latex-dev/base/ltshipout-doc.pdf differ diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx index fe50d75a8f..20efb4509e 100644 --- a/macros/latex-dev/base/ltvers.dtx +++ b/macros/latex-dev/base/ltvers.dtx @@ -112,10 +112,10 @@ % %\edef\latexreleaseversion %<*2ekernel|latexrelease> - {2021-06-01} + {2021-12-01} % %<*2ekernel> -\def\patch@level{-3} +\def\patch@level{0} % \end{macrocode} % % \begin{macro}{\development@branch@name} diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf index 2788cb0a36..eac1bd7868 100644 Binary files a/macros/latex-dev/base/ltx3info.pdf and b/macros/latex-dev/base/ltx3info.pdf differ diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf index aa2a071366..7ee087bfd9 100644 Binary files a/macros/latex-dev/base/ltxdoc.pdf and b/macros/latex-dev/base/ltxdoc.pdf differ diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf index 42d3a434e9..bcc83fe99d 100644 Binary files a/macros/latex-dev/base/makeindx.pdf and b/macros/latex-dev/base/makeindx.pdf differ diff --git a/macros/latex-dev/base/manual.pdf b/macros/latex-dev/base/manual.pdf index cb9024f559..af10de35fc 100644 Binary files a/macros/latex-dev/base/manual.pdf and b/macros/latex-dev/base/manual.pdf differ diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf index 0edb139e19..9fed1a2afa 100644 Binary files a/macros/latex-dev/base/modguide.pdf and b/macros/latex-dev/base/modguide.pdf differ diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf index 8e6a4987f3..cd1c7a0cb6 100644 Binary files a/macros/latex-dev/base/nfssfont.pdf and b/macros/latex-dev/base/nfssfont.pdf differ diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf index b0d4032019..fe4a87ed37 100644 Binary files a/macros/latex-dev/base/proc.pdf and b/macros/latex-dev/base/proc.pdf differ diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf index 3116ccc852..2880f7e621 100644 Binary files a/macros/latex-dev/base/slides.pdf and b/macros/latex-dev/base/slides.pdf differ diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf index faa2053db2..88753cd798 100644 Binary files a/macros/latex-dev/base/slifonts.pdf and b/macros/latex-dev/base/slifonts.pdf differ diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf index fbc7f5ac41..1be35a8dfd 100644 Binary files a/macros/latex-dev/base/source2e.pdf and b/macros/latex-dev/base/source2e.pdf differ diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf index 2156a292b9..72a10a0a10 100644 Binary files a/macros/latex-dev/base/syntonly.pdf and b/macros/latex-dev/base/syntonly.pdf differ diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf index dd55f4b589..a4fd67964c 100644 Binary files a/macros/latex-dev/base/tlc2.pdf and b/macros/latex-dev/base/tlc2.pdf differ diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf index 34f1ca3ce0..a9acd70daf 100644 Binary files a/macros/latex-dev/base/tulm.pdf and b/macros/latex-dev/base/tulm.pdf differ diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf index 80d5bc6a1e..0546617e22 100644 Binary files a/macros/latex-dev/base/usrguide.pdf and b/macros/latex-dev/base/usrguide.pdf differ diff --git a/macros/latex-dev/base/usrguide3.pdf b/macros/latex-dev/base/usrguide3.pdf index 3e2c599b39..84266a6d86 100644 Binary files a/macros/latex-dev/base/usrguide3.pdf and b/macros/latex-dev/base/usrguide3.pdf differ diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf index 625decf88d..6b0881842c 100644 Binary files a/macros/latex-dev/base/utf8ienc.pdf and b/macros/latex-dev/base/utf8ienc.pdf differ diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf index 7267cc5344..d0e4064414 100644 Binary files a/macros/latex-dev/base/webcomp.pdf and b/macros/latex-dev/base/webcomp.pdf differ diff --git a/macros/latex-dev/required/amsmath/README.md b/macros/latex-dev/required/amsmath/README.md index dd71ffef61..d543380614 100644 --- a/macros/latex-dev/required/amsmath/README.md +++ b/macros/latex-dev/required/amsmath/README.md @@ -1,7 +1,7 @@ The amsmath bundle for LaTeX ============================ -Release 2021-05-01 pre-release 0 +Release 2021-12-01 pre-release 0 Overview -------- @@ -77,5 +77,5 @@ version 1.3c or later. -----

Copyright (C) 2001-2004, 2007, 2008, 2010, 2011, 2013 American Mathematical Society.
-

Copyright (C) 2016-2020 The LaTeX Project and American Mathematical Society.
+

Copyright (C) 2016-2021 The LaTeX Project and American Mathematical Society.
diff --git a/macros/latex-dev/required/amsmath/amsbsy.dtx b/macros/latex-dev/required/amsmath/amsbsy.dtx index 1174784278..8557c6534a 100644 --- a/macros/latex-dev/required/amsmath/amsbsy.dtx +++ b/macros/latex-dev/required/amsmath/amsbsy.dtx @@ -2,7 +2,8 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 +% LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +15,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % diff --git a/macros/latex-dev/required/amsmath/amsbsy.ins b/macros/latex-dev/required/amsmath/amsbsy.ins index 07707907e9..9194608622 100644 --- a/macros/latex-dev/required/amsmath/amsbsy.ins +++ b/macros/latex-dev/required/amsmath/amsbsy.ins @@ -1,6 +1,7 @@ %% -%% Copyright 2010 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 2010 American Mathematical Society. +%% Copyright (C) 2016-2021 +% LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +13,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 Project. +%% The Current Maintainer of this work is the LaTeX Project. %% %% ==================================================================== @@ -24,8 +25,8 @@ \preamble -Copyright 1995, 1999 American Mathematical Society. -Copyright 2016 LaTeX3 Project and American Mathematical Society. +Copyright (C) 1995, 1999 American Mathematical Society. +Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -37,7 +38,7 @@ version 2005/12/01 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is the LaTeX3 project. +The Current Maintainer of this work is the LaTeX Project. \endpreamble diff --git a/macros/latex-dev/required/amsmath/amsbsy.pdf b/macros/latex-dev/required/amsmath/amsbsy.pdf index 1cc7898f92..999a16ba0b 100644 Binary files a/macros/latex-dev/required/amsmath/amsbsy.pdf and b/macros/latex-dev/required/amsmath/amsbsy.pdf differ diff --git a/macros/latex-dev/required/amsmath/amscd.dtx b/macros/latex-dev/required/amsmath/amscd.dtx index 12e94a11dc..f3528dd7c1 100644 --- a/macros/latex-dev/required/amsmath/amscd.dtx +++ b/macros/latex-dev/required/amsmath/amscd.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +14,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % diff --git a/macros/latex-dev/required/amsmath/amscd.ins b/macros/latex-dev/required/amsmath/amscd.ins index 5890ca06c1..30b2f28177 100644 --- a/macros/latex-dev/required/amsmath/amscd.ins +++ b/macros/latex-dev/required/amsmath/amscd.ins @@ -1,6 +1,6 @@ %% -%% Copyright 2010 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 2010 American Mathematical Society. +%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 Project. +%% The Current Maintainer of this work is the LaTeX Project. %% %% ==================================================================== @@ -24,8 +24,8 @@ \preamble -Copyright 1995, 1999 American Mathematical Society. -Copyright 2016 LaTeX3 Project and American Mathematical Society. +Copyright (C) 1995, 1999 American Mathematical Society. +Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -37,7 +37,7 @@ version 2005/12/01 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is the LaTeX3 project. +The Current Maintainer of this work is the LaTeX Project. \endpreamble diff --git a/macros/latex-dev/required/amsmath/amscd.pdf b/macros/latex-dev/required/amsmath/amscd.pdf index a69b03715c..4f885d5b9c 100644 Binary files a/macros/latex-dev/required/amsmath/amscd.pdf and b/macros/latex-dev/required/amsmath/amscd.pdf differ diff --git a/macros/latex-dev/required/amsmath/amsgen.dtx b/macros/latex-dev/required/amsmath/amsgen.dtx index 92df548f12..10ac58b18e 100644 --- a/macros/latex-dev/required/amsmath/amsgen.dtx +++ b/macros/latex-dev/required/amsmath/amsgen.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +14,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % diff --git a/macros/latex-dev/required/amsmath/amsgen.ins b/macros/latex-dev/required/amsmath/amsgen.ins index be7720bc89..aacb6e0c39 100644 --- a/macros/latex-dev/required/amsmath/amsgen.ins +++ b/macros/latex-dev/required/amsmath/amsgen.ins @@ -1,6 +1,6 @@ %% -%% Copyright 2010 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 2010 American Mathematical Society. +%% Copyright (C) 2016 LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 Project. +%% The Current Maintainer of this work is the LaTeX Project. %% %% ==================================================================== @@ -24,8 +24,8 @@ \preamble -Copyright 1995, 1999 American Mathematical Society. -Copyright 2016 LaTeX3 Project and American Mathematical Society. +Copyright (C) 1995, 1999 American Mathematical Society. +Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -37,7 +37,7 @@ version 2005/12/01 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is the LaTeX3 project. +The Current Maintainer of this work is the LaTeX Project. \endpreamble diff --git a/macros/latex-dev/required/amsmath/amsgen.pdf b/macros/latex-dev/required/amsmath/amsgen.pdf index 7af209fae9..6282db6a6e 100644 Binary files a/macros/latex-dev/required/amsmath/amsgen.pdf and b/macros/latex-dev/required/amsmath/amsgen.pdf differ diff --git a/macros/latex-dev/required/amsmath/amsldoc.pdf b/macros/latex-dev/required/amsmath/amsldoc.pdf index ba52c32f76..373af4649a 100644 Binary files a/macros/latex-dev/required/amsmath/amsldoc.pdf and b/macros/latex-dev/required/amsmath/amsldoc.pdf differ diff --git a/macros/latex-dev/required/amsmath/amsldoc.tex b/macros/latex-dev/required/amsmath/amsldoc.tex index b29a8b8468..26ea6cf808 100644 --- a/macros/latex-dev/required/amsmath/amsldoc.tex +++ b/macros/latex-dev/required/amsmath/amsldoc.tex @@ -1,6 +1,6 @@ % % Copyright (C) 1995, 2000, 2013 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % \documentclass[leqno,titlepage,openany]{amsldoc}[1999/12/13] @@ -63,7 +63,7 @@ Bug reports can be opened (category \texttt{#1}) at\\% % End definitions for amsldoc.cls \title{User's Guide for the \nipkg{amsmath} Package (Version~2.1)} -\author{American Mathematical Society, \LaTeX3 Project} +\author{American Mathematical Society, \LaTeX\ Project} \date{1999-12-13\\(revised 2002-02-25, 2016-11-14, 2018-04-05, 2019-10-14, 2020-02-18)} \makeatletter \def\@thanks{\bigskip\MaintainedByLaTeXTeam{amslatex}} diff --git a/macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty b/macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty index 6bcb03e217..ab45172a32 100644 --- a/macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty +++ b/macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty @@ -6,8 +6,8 @@ %% %% amsmath.dtx %% -%% Copyright 1995, 1999, 2000, 2013 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society. +%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -19,7 +19,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 project. +%% The Current Maintainer of this work is the LaTeX Project. %% \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) [1994/12/01]% LaTeX date must be December 1994 or later diff --git a/macros/latex-dev/required/amsmath/amsmath.dtx b/macros/latex-dev/required/amsmath/amsmath.dtx index 7f324700f6..8857861101 100644 --- a/macros/latex-dev/required/amsmath/amsmath.dtx +++ b/macros/latex-dev/required/amsmath/amsmath.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 2000, 2013 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +14,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % @@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\% % \end{macrocode} % % \begin{macrocode} -\ProvidesPackage{amsmath}[2020/09/23 v2.17i AMS math features] +\ProvidesPackage{amsmath}[2021/04/20 v2.17j AMS math features] % \end{macrocode} % % \section{Catcode defenses} @@ -2752,8 +2752,9 @@ ill-advised in LaTeX.% % \textit{u} template of the current column if the author ended the % current row with an empty column (i.e., the mathcr was immediately % preceded by an ampersand). +% \changes{v2.17j}{2021/04/20}{Use \cs{protected} for \cs{\bslash} variant (gh/548)} % \begin{macrocode} -\def\math@cr{\relax\iffalse{\fi\ifnum0=`}\fi +\protected\def\math@cr{\relax\iffalse{\fi\ifnum0=`}\fi % \end{macrocode} % The first step is now to check whether an asterisk follows. % \cs{@eqpen} is used to hold the penalty value to be put on diff --git a/macros/latex-dev/required/amsmath/amsmath.ins b/macros/latex-dev/required/amsmath/amsmath.ins index 55e4089804..1bb73101bb 100644 --- a/macros/latex-dev/required/amsmath/amsmath.ins +++ b/macros/latex-dev/required/amsmath/amsmath.ins @@ -1,6 +1,6 @@ %% -%% Copyright 2010 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 2010 American Mathematical Society. +%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 Project. +%% The Current Maintainer of this work is the LaTeX Project. %% %% ==================================================================== @@ -24,8 +24,8 @@ \preamble -Copyright 1995, 1999, 2000, 2013 American Mathematical Society. -Copyright 2016 LaTeX3 Project and American Mathematical Society. +Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society. +Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -37,7 +37,7 @@ version 2005/12/01 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is the LaTeX3 project. +The Current Maintainer of this work is the LaTeX Project. \endpreamble diff --git a/macros/latex-dev/required/amsmath/amsmath.pdf b/macros/latex-dev/required/amsmath/amsmath.pdf index 58751777c9..74b242c29a 100644 Binary files a/macros/latex-dev/required/amsmath/amsmath.pdf and b/macros/latex-dev/required/amsmath/amsmath.pdf differ diff --git a/macros/latex-dev/required/amsmath/amsopn.dtx b/macros/latex-dev/required/amsmath/amsopn.dtx index 35c3b1605b..a71c13d6c8 100644 --- a/macros/latex-dev/required/amsmath/amsopn.dtx +++ b/macros/latex-dev/required/amsmath/amsopn.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +14,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % diff --git a/macros/latex-dev/required/amsmath/amsopn.ins b/macros/latex-dev/required/amsmath/amsopn.ins index 84aff6243b..72c649c340 100644 --- a/macros/latex-dev/required/amsmath/amsopn.ins +++ b/macros/latex-dev/required/amsmath/amsopn.ins @@ -1,6 +1,6 @@ %% -%% Copyright 2010 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 2010 American Mathematical Society. +%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 Project. +%% The Current Maintainer of this work is the LaTeX Project. %% %% ==================================================================== @@ -24,8 +24,8 @@ \preamble -Copyright 1995, 1999 American Mathematical Society. -Copyright 2016 LaTeX3 Project and American Mathematical Society. +Copyright (C) 1995, 1999 American Mathematical Society. +Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -37,7 +37,7 @@ version 2005/12/01 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is the LaTeX3 project. +The Current Maintainer of this work is the LaTeX Project. \endpreamble diff --git a/macros/latex-dev/required/amsmath/amsopn.pdf b/macros/latex-dev/required/amsmath/amsopn.pdf index a25d472d9a..4df94fefcc 100644 Binary files a/macros/latex-dev/required/amsmath/amsopn.pdf and b/macros/latex-dev/required/amsmath/amsopn.pdf differ diff --git a/macros/latex-dev/required/amsmath/amstex.sty b/macros/latex-dev/required/amsmath/amstex.sty index 6ce36f52c9..e620746a54 100644 --- a/macros/latex-dev/required/amsmath/amstex.sty +++ b/macros/latex-dev/required/amsmath/amstex.sty @@ -1,8 +1,8 @@ % % \iffalse meta-comment % -% Copyright 1995, 1999 American Mathematical Society. -% Copyright 2016 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 1995, 1999 American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +14,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % diff --git a/macros/latex-dev/required/amsmath/amstext.dtx b/macros/latex-dev/required/amsmath/amstext.dtx index 5e7e6ca672..d6475561fb 100644 --- a/macros/latex-dev/required/amsmath/amstext.dtx +++ b/macros/latex-dev/required/amsmath/amstext.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +14,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % diff --git a/macros/latex-dev/required/amsmath/amstext.ins b/macros/latex-dev/required/amsmath/amstext.ins index 5f9a5c4076..5578a7e947 100644 --- a/macros/latex-dev/required/amsmath/amstext.ins +++ b/macros/latex-dev/required/amsmath/amstext.ins @@ -1,6 +1,6 @@ %% -%% Copyright 2010 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 2010 American Mathematical Society. +%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 Project. +%% The Current Maintainer of this work is the LaTeX Project. %% %% ==================================================================== @@ -24,8 +24,8 @@ \preamble -Copyright 1995, 1999 American Mathematical Society. -Copyright 2016 LaTeX3 Project and American Mathematical Society. +Copyright (C) 1995, 1999 American Mathematical Society. +Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -37,7 +37,7 @@ version 2005/12/01 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is the LaTeX3 project. +The Current Maintainer of this work is the LaTeX Project. \endpreamble diff --git a/macros/latex-dev/required/amsmath/amstext.pdf b/macros/latex-dev/required/amsmath/amstext.pdf index 479942cd74..f3e0dab818 100644 Binary files a/macros/latex-dev/required/amsmath/amstext.pdf and b/macros/latex-dev/required/amsmath/amstext.pdf differ diff --git a/macros/latex-dev/required/amsmath/amsxtra.dtx b/macros/latex-dev/required/amsmath/amsxtra.dtx index 9cc0b71027..aaa5fd1a2d 100644 --- a/macros/latex-dev/required/amsmath/amsxtra.dtx +++ b/macros/latex-dev/required/amsmath/amsxtra.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,7 +14,7 @@ % % This work has the LPPL maintenance status `maintained'. % -% The Current Maintainer of this work is the LaTeX3 Project. +% The Current Maintainer of this work is the LaTeX Project. % % \fi % diff --git a/macros/latex-dev/required/amsmath/amsxtra.ins b/macros/latex-dev/required/amsmath/amsxtra.ins index bbcd08e3f7..7eca6e065a 100644 --- a/macros/latex-dev/required/amsmath/amsxtra.ins +++ b/macros/latex-dev/required/amsmath/amsxtra.ins @@ -1,6 +1,6 @@ %% -%% Copyright 2010 American Mathematical Society. -%% Copyright 2016 LaTeX3 Project and American Mathematical Society. +%% Copyright (C) 2010 American Mathematical Society. +%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -12,7 +12,7 @@ %% %% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is the LaTeX3 Project. +%% The Current Maintainer of this work is the LaTeX Project. %% %% ==================================================================== @@ -24,8 +24,8 @@ \preamble -Copyright 1995, 1999 American Mathematical Society. -Copyright 2016 LaTeX3 Project and American Mathematical Society. +Copyright (C) 1995, 1999 American Mathematical Society. +Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society. This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -37,7 +37,7 @@ version 2005/12/01 or later. This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is the LaTeX3 project. +The Current Maintainer of this work is the LaTeX Project. \endpreamble diff --git a/macros/latex-dev/required/amsmath/amsxtra.pdf b/macros/latex-dev/required/amsmath/amsxtra.pdf index b0e0f66d37..c379472faf 100644 Binary files a/macros/latex-dev/required/amsmath/amsxtra.pdf and b/macros/latex-dev/required/amsmath/amsxtra.pdf differ diff --git a/macros/latex-dev/required/amsmath/changes.txt b/macros/latex-dev/required/amsmath/changes.txt index eb87a6e666..63bea7e727 100644 --- a/macros/latex-dev/required/amsmath/changes.txt +++ b/macros/latex-dev/required/amsmath/changes.txt @@ -2,13 +2,22 @@ All changes above are only part of the development branch for the next release. ================================================================================ +######################### +# 2021-06-01 Release +######################### + +2021-04-20 Frank Mittelbach + + * amsmath.dtx (subsection{Preliminary macros}): + Use \protected for \\ variant (gh/548) + ######################### # 2020-10-01 Release ######################### 2020/09/23 Ulrike Fischer * amsmath.dtx (subsection{Fractions}): - added \cs{Ustack} to \cs{frac} and \cs{genfrac} for luatex + added \Ustack to \frac and \genfrac for luatex (moved patch from lualatex-math) * amsmath.dtx (section{Array-related environments}) changed subarray for luatex: moved to version from lualatex-math diff --git a/macros/latex-dev/required/amsmath/subeqn.pdf b/macros/latex-dev/required/amsmath/subeqn.pdf index 31caecf259..b8ad174232 100644 Binary files a/macros/latex-dev/required/amsmath/subeqn.pdf and b/macros/latex-dev/required/amsmath/subeqn.pdf differ diff --git a/macros/latex-dev/required/amsmath/technote.pdf b/macros/latex-dev/required/amsmath/technote.pdf index d3403770f0..375db6b423 100644 Binary files a/macros/latex-dev/required/amsmath/technote.pdf and b/macros/latex-dev/required/amsmath/technote.pdf differ diff --git a/macros/latex-dev/required/amsmath/testmath.pdf b/macros/latex-dev/required/amsmath/testmath.pdf index 15fa991ee9..f11b508170 100644 Binary files a/macros/latex-dev/required/amsmath/testmath.pdf and b/macros/latex-dev/required/amsmath/testmath.pdf differ diff --git a/macros/latex-dev/required/firstaid/changes.txt b/macros/latex-dev/required/firstaid/changes.txt index 24b6eae4f6..d7823c21a1 100644 --- a/macros/latex-dev/required/firstaid/changes.txt +++ b/macros/latex-dev/required/firstaid/changes.txt @@ -1,3 +1,11 @@ +2021-03-15 Frank Mittelbach + + * latex2e-first-aid-for-external-files.dtx: + bigfoot incorrectly assumes insertions being ordered, so this is + enforced for now. + We also fix \FN@allmarks which can blow as it loops using the + wrong counter (so the loops runs a random number of times) + 2021-01-06 Frank Mittelbach * latex2e-first-aid-for-external-files.dtx: diff --git a/macros/latex-dev/required/firstaid/firstaid.ins b/macros/latex-dev/required/firstaid/firstaid.ins index 6a1dbaa853..cd5ea2006d 100644 --- a/macros/latex-dev/required/firstaid/firstaid.ins +++ b/macros/latex-dev/required/firstaid/firstaid.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 2020,2021 +%% Copyright (C) 2020-2021 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% diff --git a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx index a74cb79a78..7eb108418c 100644 --- a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx +++ b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx @@ -1,6 +1,7 @@ % \iffalse meta-comment % -%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020,2021 +%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021 +%% %% The LaTeX Project and any individual authors listed elsewhere %% in this file. % @@ -110,8 +111,8 @@ % \end{macrocode} % % \begin{macrocode} -\def\LaTeXFirstAidDate{2021/02/24} -\def\LaTeXFirstAidVersion{v1.0k} +\def\LaTeXFirstAidDate{2021/03/15} +\def\LaTeXFirstAidVersion{v1.0l} % \end{macrocode} % % \begin{macrocode} @@ -507,6 +508,44 @@ % \end{macrocode} % % +% +% +% +% \subsection{The \pkg{bigfoot} first aid} +% +% The \pkg{bigfoot} packages makes the assumption that two +% \cs{newinsert} allocations have a recognisable order in their +% numbers, the second one has a lower number. This was correct in +% the classic \TeX{} implementation but with the extended +% allocation possibilities of all modern engines is no longer the +% case and there is a point where the allocations take a ``jump'' +% breaking the odering assumption. These days we are fairly close +% to that point and depending on how many packages are loaded +% before \pkg{bigfoot} the package breaks. +% +% This firstaid therefore jumps over the problematical point by +% pushing the count allocation to a safe value if necessary. +% \begin{macrocode} +\AddToHook{file/after/bigfoot.sty}{% + \ifnum\count10<\insc@unt + \global\count10=\insc@unt + \fi +% \end{macrocode} +% We also correct a bug that \pkg{bigfoot} tries to shift mark +% registers, but in \LaTeX{} (at least since 2015) the allocation +% number is not 266, so it does that to a random number of mark +% registers (which sometimes blows up depending on the value in 266). +% \begin{macrocode} + \def\FN@allmarks#1{\@elt{#1}% + \ifnum#1<\count256 %<--- problem: 266 isn't the counter for marks + \expandafter\FN@allmarks\expandafter{\number\numexpr#1+\@ne}% + \fi}% +} +% \end{macrocode} +% +% +% +% % \subsection[Temporary fixes for the kernel (until the next % patch-level release)] % {Temporary fixes for the kernel \\ diff --git a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf index eecccbc8f6..eaf6567b15 100644 Binary files a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf and b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf differ diff --git a/macros/latex-dev/required/graphics/README.md b/macros/latex-dev/required/graphics/README.md index b9d06376c6..c91e2aeab0 100644 --- a/macros/latex-dev/required/graphics/README.md +++ b/macros/latex-dev/required/graphics/README.md @@ -1,7 +1,7 @@ The LaTeX `graphics` bundle =========================== -Release 2021-06-01 pre-release 1 +Release 2021-12-01 pre-release 0 Overview -------- diff --git a/macros/latex-dev/required/graphics/changes.txt b/macros/latex-dev/required/graphics/changes.txt index 980d2b33e4..0616e3b692 100644 --- a/macros/latex-dev/required/graphics/changes.txt +++ b/macros/latex-dev/required/graphics/changes.txt @@ -4,6 +4,14 @@ completeness or accuracy and it contains some references to files that are not part of the distribution. ======================================================================= +================================================================================ +All changes above are only part of the development branch for the next release. +================================================================================ + +######################### +# 2021-16-01 Release +######################### + 2021-03-04 Phelype Oleinik * graphics.dtx: fix loading gzipped .(e)ps graphics files. @@ -20,10 +28,6 @@ are not part of the distribution. * graphics.dtx: Avoid warning when loading a file using a generic rule (gh/516). -================================================================================ -All changes above are only part of the development branch for the next release. -================================================================================ - 2020-12-05 Ulrike Fischer * graphics.dtx: fix missing default in quiet key. diff --git a/macros/latex-dev/required/graphics/color.pdf b/macros/latex-dev/required/graphics/color.pdf index b4d0a03cd8..dd3985df0d 100644 Binary files a/macros/latex-dev/required/graphics/color.pdf and b/macros/latex-dev/required/graphics/color.pdf differ diff --git a/macros/latex-dev/required/graphics/drivers.pdf b/macros/latex-dev/required/graphics/drivers.pdf index 617f4f8ec3..c6af822ebb 100644 Binary files a/macros/latex-dev/required/graphics/drivers.pdf and b/macros/latex-dev/required/graphics/drivers.pdf differ diff --git a/macros/latex-dev/required/graphics/epsfig.pdf b/macros/latex-dev/required/graphics/epsfig.pdf index 7cdd87b5d0..fb40d308a9 100644 Binary files a/macros/latex-dev/required/graphics/epsfig.pdf and b/macros/latex-dev/required/graphics/epsfig.pdf differ diff --git a/macros/latex-dev/required/graphics/graphics.pdf b/macros/latex-dev/required/graphics/graphics.pdf index 7dea8f5a99..df54344b4b 100644 Binary files a/macros/latex-dev/required/graphics/graphics.pdf and b/macros/latex-dev/required/graphics/graphics.pdf differ diff --git a/macros/latex-dev/required/graphics/graphicx.pdf b/macros/latex-dev/required/graphics/graphicx.pdf index 56d9451077..6b1f0cccdb 100644 Binary files a/macros/latex-dev/required/graphics/graphicx.pdf and b/macros/latex-dev/required/graphics/graphicx.pdf differ diff --git a/macros/latex-dev/required/graphics/grfguide.pdf b/macros/latex-dev/required/graphics/grfguide.pdf index c6a4b2a5ca..49b150e493 100644 Binary files a/macros/latex-dev/required/graphics/grfguide.pdf and b/macros/latex-dev/required/graphics/grfguide.pdf differ diff --git a/macros/latex-dev/required/graphics/keyval.pdf b/macros/latex-dev/required/graphics/keyval.pdf index 41cbbcb3f8..b4ff7dbfd1 100644 Binary files a/macros/latex-dev/required/graphics/keyval.pdf and b/macros/latex-dev/required/graphics/keyval.pdf differ diff --git a/macros/latex-dev/required/graphics/lscape.pdf b/macros/latex-dev/required/graphics/lscape.pdf index 4caf895c6b..654015f72a 100644 Binary files a/macros/latex-dev/required/graphics/lscape.pdf and b/macros/latex-dev/required/graphics/lscape.pdf differ diff --git a/macros/latex-dev/required/graphics/rotating.pdf b/macros/latex-dev/required/graphics/rotating.pdf index b57235b7fe..a65a2c0f0b 100644 Binary files a/macros/latex-dev/required/graphics/rotating.pdf and b/macros/latex-dev/required/graphics/rotating.pdf differ diff --git a/macros/latex-dev/required/graphics/rotex.pdf b/macros/latex-dev/required/graphics/rotex.pdf index 9659ba3101..5f4321501f 100644 Binary files a/macros/latex-dev/required/graphics/rotex.pdf and b/macros/latex-dev/required/graphics/rotex.pdf differ diff --git a/macros/latex-dev/required/graphics/trig.pdf b/macros/latex-dev/required/graphics/trig.pdf index 5c1f68dffc..789a62c69a 100644 Binary files a/macros/latex-dev/required/graphics/trig.pdf and b/macros/latex-dev/required/graphics/trig.pdf differ diff --git a/macros/latex-dev/required/tools/README.md b/macros/latex-dev/required/tools/README.md index 5ff7b0d1e0..0b1b308799 100644 --- a/macros/latex-dev/required/tools/README.md +++ b/macros/latex-dev/required/tools/README.md @@ -1,7 +1,7 @@ The LaTeX `tools` bundle ======================== -Release 2021-06-01 pre-release 2 +Release 2021-12-01 pre-release 0 Overview -------- diff --git a/macros/latex-dev/required/tools/afterpage.pdf b/macros/latex-dev/required/tools/afterpage.pdf index 918b9bbe27..4a7e94d148 100644 Binary files a/macros/latex-dev/required/tools/afterpage.pdf and b/macros/latex-dev/required/tools/afterpage.pdf differ diff --git a/macros/latex-dev/required/tools/array.pdf b/macros/latex-dev/required/tools/array.pdf index 175a0b8dfe..2a0e38ba62 100644 Binary files a/macros/latex-dev/required/tools/array.pdf and b/macros/latex-dev/required/tools/array.pdf differ diff --git a/macros/latex-dev/required/tools/bm.pdf b/macros/latex-dev/required/tools/bm.pdf index 125a480d07..7973845ac7 100644 Binary files a/macros/latex-dev/required/tools/bm.pdf and b/macros/latex-dev/required/tools/bm.pdf differ diff --git a/macros/latex-dev/required/tools/calc.pdf b/macros/latex-dev/required/tools/calc.pdf index ec12e97f64..8024058852 100644 Binary files a/macros/latex-dev/required/tools/calc.pdf and b/macros/latex-dev/required/tools/calc.pdf differ diff --git a/macros/latex-dev/required/tools/changes.txt b/macros/latex-dev/required/tools/changes.txt index 005a3ed4bc..17278e4a54 100644 --- a/macros/latex-dev/required/tools/changes.txt +++ b/macros/latex-dev/required/tools/changes.txt @@ -6,6 +6,19 @@ completeness or accuracy and it contains some references to files that are not part of the distribution. ======================================================================= +================================================================================ +All changes above are only part of the development branch for the next release. +================================================================================ + +######################### +# 2021-06-01 Release +######################### + +2021-05-07 David Carlisle + + * longtable.dtx: write lists of tables entry to the file with + extension \ext@table, not force .lot github/561 + 2021-04-25 David Carlisle * bm.dtx: guard \kernel@ifnextchar (gh/554) @@ -68,11 +81,6 @@ are not part of the distribution. * layout.dtx: (subsection{Options}): Option japanese added (gh/353) - -================================================================================ -All changes above are only part of the development branch for the next release. -================================================================================ - ######################### # 2020-10-01 Release ######################### diff --git a/macros/latex-dev/required/tools/dcolumn.pdf b/macros/latex-dev/required/tools/dcolumn.pdf index 2293c86e99..ed97229255 100644 Binary files a/macros/latex-dev/required/tools/dcolumn.pdf and b/macros/latex-dev/required/tools/dcolumn.pdf differ diff --git a/macros/latex-dev/required/tools/delarray.pdf b/macros/latex-dev/required/tools/delarray.pdf index 951882d630..6f00a67dd9 100644 Binary files a/macros/latex-dev/required/tools/delarray.pdf and b/macros/latex-dev/required/tools/delarray.pdf differ diff --git a/macros/latex-dev/required/tools/enumerate.pdf b/macros/latex-dev/required/tools/enumerate.pdf index f6be172ebf..9e48d4a087 100644 Binary files a/macros/latex-dev/required/tools/enumerate.pdf and b/macros/latex-dev/required/tools/enumerate.pdf differ diff --git a/macros/latex-dev/required/tools/fileerr.pdf b/macros/latex-dev/required/tools/fileerr.pdf index 298c7ba4d6..7a5eab8cf4 100644 Binary files a/macros/latex-dev/required/tools/fileerr.pdf and b/macros/latex-dev/required/tools/fileerr.pdf differ diff --git a/macros/latex-dev/required/tools/fontsmpl.pdf b/macros/latex-dev/required/tools/fontsmpl.pdf index 6a66ff7089..eafd38abd1 100644 Binary files a/macros/latex-dev/required/tools/fontsmpl.pdf and b/macros/latex-dev/required/tools/fontsmpl.pdf differ diff --git a/macros/latex-dev/required/tools/ftnright.pdf b/macros/latex-dev/required/tools/ftnright.pdf index a3addcfc41..8a7c4c4c94 100644 Binary files a/macros/latex-dev/required/tools/ftnright.pdf and b/macros/latex-dev/required/tools/ftnright.pdf differ diff --git a/macros/latex-dev/required/tools/hhline.pdf b/macros/latex-dev/required/tools/hhline.pdf index ee80fb369b..23fde95eb4 100644 Binary files a/macros/latex-dev/required/tools/hhline.pdf and b/macros/latex-dev/required/tools/hhline.pdf differ diff --git a/macros/latex-dev/required/tools/indentfirst.pdf b/macros/latex-dev/required/tools/indentfirst.pdf index 3e93185eae..3ee72ae32b 100644 Binary files a/macros/latex-dev/required/tools/indentfirst.pdf and b/macros/latex-dev/required/tools/indentfirst.pdf differ diff --git a/macros/latex-dev/required/tools/layout.pdf b/macros/latex-dev/required/tools/layout.pdf index 98bb6ab28c..adab2be7a1 100644 Binary files a/macros/latex-dev/required/tools/layout.pdf and b/macros/latex-dev/required/tools/layout.pdf differ diff --git a/macros/latex-dev/required/tools/longtable.dtx b/macros/latex-dev/required/tools/longtable.dtx index 5569ae3d5c..457891dac7 100644 --- a/macros/latex-dev/required/tools/longtable.dtx +++ b/macros/latex-dev/required/tools/longtable.dtx @@ -37,7 +37,7 @@ % \ProvidesFile{longtable.drv} % \fi % \ProvidesFile{longtable.dtx} - [2021-04-21 v4.15 Multi-page Table package (DPC)] + [2021-05-07 v4.16 Multi-page Table package (DPC)] % % \iffalse %<*driver> @@ -1970,13 +1970,15 @@ % {Call \cs{LT@makecaption} not \cs{LT@mkcaption}} % \changes{v3.14}{1995/05/24} % {Add new control argument} +% \changes{v4.16}{2021/05/07} +% {use \cs{ext@table} gh/561} % \begin{macrocode} \def\LT@c@ption#1[#2]#3{% \LT@makecaption#1\fnum@table{#3}% \def\@tempa{#2}% \ifx\@tempa\@empty\else {\let\\\space - \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% + \addcontentsline{\ext@table}{table}{\protect\numberline{\thetable}{#2}}}% \fi} % \end{macrocode} % \end{macro} diff --git a/macros/latex-dev/required/tools/longtable.pdf b/macros/latex-dev/required/tools/longtable.pdf index c503bd9123..a6459b2ecd 100644 Binary files a/macros/latex-dev/required/tools/longtable.pdf and b/macros/latex-dev/required/tools/longtable.pdf differ diff --git a/macros/latex-dev/required/tools/multicol.pdf b/macros/latex-dev/required/tools/multicol.pdf index 556603f749..ba15c5c6a9 100644 Binary files a/macros/latex-dev/required/tools/multicol.pdf and b/macros/latex-dev/required/tools/multicol.pdf differ diff --git a/macros/latex-dev/required/tools/rawfonts.pdf b/macros/latex-dev/required/tools/rawfonts.pdf index 424fb693b0..50b8f778f9 100644 Binary files a/macros/latex-dev/required/tools/rawfonts.pdf and b/macros/latex-dev/required/tools/rawfonts.pdf differ diff --git a/macros/latex-dev/required/tools/shellesc.pdf b/macros/latex-dev/required/tools/shellesc.pdf index 94dea41431..63bd149aed 100644 Binary files a/macros/latex-dev/required/tools/shellesc.pdf and b/macros/latex-dev/required/tools/shellesc.pdf differ diff --git a/macros/latex-dev/required/tools/showkeys.pdf b/macros/latex-dev/required/tools/showkeys.pdf index c558d2fbd2..1b100e1f20 100644 Binary files a/macros/latex-dev/required/tools/showkeys.pdf and b/macros/latex-dev/required/tools/showkeys.pdf differ diff --git a/macros/latex-dev/required/tools/somedefs.pdf b/macros/latex-dev/required/tools/somedefs.pdf index 7dc1936536..df44c3acbe 100644 Binary files a/macros/latex-dev/required/tools/somedefs.pdf and b/macros/latex-dev/required/tools/somedefs.pdf differ diff --git a/macros/latex-dev/required/tools/tabularx.pdf b/macros/latex-dev/required/tools/tabularx.pdf index 574096cd7a..b4cb4713f3 100644 Binary files a/macros/latex-dev/required/tools/tabularx.pdf and b/macros/latex-dev/required/tools/tabularx.pdf differ diff --git a/macros/latex-dev/required/tools/theorem.pdf b/macros/latex-dev/required/tools/theorem.pdf index 196dc13cce..37a4b9b86c 100644 Binary files a/macros/latex-dev/required/tools/theorem.pdf and b/macros/latex-dev/required/tools/theorem.pdf differ diff --git a/macros/latex-dev/required/tools/tools-overview.pdf b/macros/latex-dev/required/tools/tools-overview.pdf index 6fd1756018..74171e9aa5 100644 Binary files a/macros/latex-dev/required/tools/tools-overview.pdf and b/macros/latex-dev/required/tools/tools-overview.pdf differ diff --git a/macros/latex-dev/required/tools/trace.pdf b/macros/latex-dev/required/tools/trace.pdf index 35d766b041..fdee99e72e 100644 Binary files a/macros/latex-dev/required/tools/trace.pdf and b/macros/latex-dev/required/tools/trace.pdf differ diff --git a/macros/latex-dev/required/tools/varioref.pdf b/macros/latex-dev/required/tools/varioref.pdf index d8fa68c00b..9f1a0a94da 100644 Binary files a/macros/latex-dev/required/tools/varioref.pdf and b/macros/latex-dev/required/tools/varioref.pdf differ diff --git a/macros/latex-dev/required/tools/verbatim.pdf b/macros/latex-dev/required/tools/verbatim.pdf index 9ad8bc66e3..f3a67abf25 100644 Binary files a/macros/latex-dev/required/tools/verbatim.pdf and b/macros/latex-dev/required/tools/verbatim.pdf differ diff --git a/macros/latex-dev/required/tools/xr.pdf b/macros/latex-dev/required/tools/xr.pdf index cf60d6ef58..e8cdf21a7a 100644 Binary files a/macros/latex-dev/required/tools/xr.pdf and b/macros/latex-dev/required/tools/xr.pdf differ diff --git a/macros/latex-dev/required/tools/xspace.pdf b/macros/latex-dev/required/tools/xspace.pdf index d1540186ef..d8335ddee4 100644 Binary files a/macros/latex-dev/required/tools/xspace.pdf and b/macros/latex-dev/required/tools/xspace.pdf differ diff --git a/macros/latex/contrib/bjfuthesis/README.md b/macros/latex/contrib/bjfuthesis/README.md index fa2538417a..a05d7929a8 100644 --- a/macros/latex/contrib/bjfuthesis/README.md +++ b/macros/latex/contrib/bjfuthesis/README.md @@ -1,10 +1,12 @@ # 北京林业大学 (BJFU) æ¯•ä¸šè®ºæ–‡æ¨¡æ¿ (LaTeX) Copyright (C) 2021 Liu Changxin -Version 1.0.1 (2021-06-03) +Version 1.0.2 (2021-06-05) ## Abstract -The bjfuthesis class is a LaTeX document class intended for students in Beijing Forestry University (BJFU) to write their theses. It follows the thesis specification of Beijing Forestry University. +This is a class file for producing dissertations and theses according to the Beijing Forestry University (BJFU) Guidelines for Undergraduate Theses and Dissertations. + +The class should meet all current requirements and is updated whenever the university guidelines change. ## 简介 bjfuthesis是北京林业大学 (BJFU) 毕业生撰写毕业论文使用的LaTeX模æ¿ã€‚使用该模æ¿å¯ä»¥å¿«é€Ÿç¼–写出符åˆè®ºæ–‡æ ¼å¼è¦æ±‚的论文。该模æ¿ç²¾å¿ƒç¼–写,具有使用简å•ã€ä¾¿æ·ã€å¯é çš„优点。 @@ -12,16 +14,10 @@ bjfuthesis是北京林业大学 (BJFU) 毕业生撰写毕业论文使用的LaTeX ## 使用方法 1. 下载并安装MiKTeX:https://miktex.org/download 1. 下载并安装Perl:macOS与Linuxæ“作系统已内置Perl,无需安装。使用Windows的用户需下载并安装:https://strawberryperl.com -1. 下载并安装TeXstudio:https://www.texstudio.org -1. é…ç½®TeXstudio: - 1. 点击 Options -> Configure TeXstudio ä»¥æ‰“å¼€è®¾ç½®ç•Œé¢ - 1. 在 General -> Language 中选择 zh_CN (Chinese) 将界é¢è®¾ä¸ºä¸­æ–‡ - 1. 点击 OK 使设置生效 - 1. å†æ¬¡æ‰“开设置 - 1. 勾选左下角的 显示高级选项 - 1. 在 构建 -> 默认编译器 中输入值 txs:///latexmk -xelatex - 1. 点击绿色三角形的构建按钮(有两个构建按钮,左侧的是构建并查看,å³ä¾§çš„是仅构建。请根æ®éœ€è¦è‡ªè¡Œé€‰æ‹©ï¼‰ - 1. 当底部的消æ¯æ ä¸­æ˜¾ç¤ºå®Œæˆæ—¶ï¼Œä½ åº”该便å¯ä»¥çœ‹åˆ°ç”Ÿæˆçš„PDF文件了 +1. 下载并安装LyX:https://www.lyx.org/Download +1. é…ç½®LyX: + 1. 点击 文件 -> 打开 以 + 1. 在工具æ ä¸­ ## Contribute You can contribute to the template in diff --git a/macros/latex/contrib/bjfuthesis/bjfuthesis.cls b/macros/latex/contrib/bjfuthesis/bjfuthesis.cls index ed02764f98..ef1690a7b2 100644 --- a/macros/latex/contrib/bjfuthesis/bjfuthesis.cls +++ b/macros/latex/contrib/bjfuthesis/bjfuthesis.cls @@ -23,7 +23,7 @@ \def\keywords@label@zh{关键è¯ï¼š} \def\keywords@label@en{Keywords: } \def\chartnote@label{注:} -\ProvidesClass{bjfuthesis}[2021/05/30 LaTeX document style for BJFU thesis] +\ProvidesClass{bjfuthesis}[2021/06/05 A thesis class for Beijing Forestry University] \DeclareOption*{\PassOptionsToClass{\CurrentOption}{ctexbook}} \ProcessOptions* \LoadClass[a4paper,oneside,fontset=none]{ctexbook} @@ -69,6 +69,8 @@ \renewcommand\headrulewidth{.5pt} \fancypagestyle{plain}{\fancyhead[C]{\fontsize{9}{12}\selectfont\header@text}\renewcommand\headrulewidth{.5pt}} \renewcommand\floatpagefraction{1} +\RequirePackage[style=gb7714-2015]{biblatex} +\addbibresource{bibliography.bib} \RequirePackage{titlesec} \titleformat{\chapter}{\centering\fontsize{16}{30}\bfseries}{\thechapter}{.5em}{} \titleformat{\section}{\fontsize{14}{37}\bfseries}{\thesection}{.5em}{} @@ -82,12 +84,88 @@ \titlecontents{chapter}[0em]{\fontsize{10.5}{21}\bfseries}{\thecontentslabel~}{\thecontentslabel}{\hspace{.5em}\titlerule*{.}\contentspage} \titlecontents{section}[1em]{\fontsize{10.5}{21}}{\thecontentslabel~}{\thecontentslabel}{\hspace{.5em}\titlerule*{.}\contentspage} \titlecontents{subsection}[2em]{\fontsize{10.5}{21}}{\thecontentslabel~}{\thecontentslabel}{\hspace{.5em}\titlerule*{.}\contentspage} -\RequirePackage[hidelinks]{hyperref} -\RequirePackage[gbpub=false,style=gb7714-2015]{biblatex} -\addbibresource{bibliography.bib} \renewcommand\topfraction{1} \renewcommand\bottomfraction{1} \renewcommand\textfraction{0} +\RequirePackage{xpatch} +\RequirePackage[hidelinks]{hyperref} + +\letbibmacro{oldtitle}{title} +\renewbibmacro*{title}{% +\ifentrytype{inproceedings}{ + \ifboolexpr{ + test {\iffieldundef{title}} + and + test {\iffieldundef{subtitle}} + } + {} + \printtext[title]{% + \printfield[titlecase]{title}}}{\usebibmacro{oldtitle}}} +\letbibmacro{oldbooktitle}{booktitle} +\renewbibmacro*{booktitle}{% +\ifentrytype{inproceedings}{ + \ifboolexpr{ + test {\iffieldundef{booktitle}} + and + test {\iffieldundef{booksubtitle}} + } + {} + {\printtext[booktitle]{\bibtitlefont% + \printfield[titlecase]{booktitle}\printtext{[C]}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{booksubtitle}}% + \newunit%标点æ¢æˆä¸‹ä¸€å¥ + \setunit{\subtitlepunct}}% + \printfield{booktitleaddon}}{\usebibmacro{oldbooktitle}}} +\DeclareBibliographyDriver{inproceedings}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author/translator+others}% + \setunit{\printdelim{nametitledelim}}\newblock + \usebibmacro{title}\printtext{[A]} + \unspace +% \nobreak +% \setunit{[A]} + \usebibmacro{in:}% + \usebibmacro{editor}% + \newunit\newblock + \usebibmacro{maintitle+booktitle}%% + \newunit\newblock + \usebibmacro{event+venue+date}% + \newunit\newblock +% \iffieldundef{maintitle} + % {\printfield{volume}% + % \printfield{part}} + % {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printlist{organization}% + \newunit + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + \newenvironment{abstract}{\kaiti}{\vskip \baselinestretch\baselineskip\par} \newcommand\keywordscn[1]{\noindent\fontsize{12}{21}\selectfont\textbf{\keywords@label@zh}#1\par} \newcommand\keywordsen[1]{\noindent\fontsize{12}{21}\selectfont\textbf{\keywords@label@en}#1\par} diff --git a/macros/latex/contrib/bjfuthesis/example/bibliography.bib b/macros/latex/contrib/bjfuthesis/example/bibliography.bib index ad383a0c4e..58cb349066 100644 --- a/macros/latex/contrib/bjfuthesis/example/bibliography.bib +++ b/macros/latex/contrib/bjfuthesis/example/bibliography.bib @@ -1,317 +1,367 @@ -@article{su2009survey, - title={A survey of collaborative filtering techniques}, - author={Su, Xiaoyuan and Khoshgoftaar, Taghi M}, - journal={Advances in artificial intelligence}, - volume={2009}, - year={2009}, - publisher={Hindawi} +@inproceedings{he2017neural, + title = {Neural collaborative filtering}, + author = {He, Xiangnan and Liao, Lizi and Zhang, Hanwang and Nie, Liqiang and Hu, Xia and Chua, Tat-Seng}, + booktitle = {Proceedings of the 26th international conference on world wide web}, + pages = {173--182}, + year = {2017}, + editor = {Rick Barrett}, + publisher = {Association for Computing Machinery}, + location = {New York City} } @article{sun2017collaborative, - title={Collaborative intent prediction with real-time contextual data}, - author={Sun, Yu and Yuan, Nicholas Jing and Xie, Xing and McDonald, Kieran and Zhang, Rui}, - journal={ACM Transactions on Information Systems (TOIS)}, - volume={35}, - number={4}, - pages={1--33}, - year={2017}, - publisher={ACM New York, NY, USA} + title = {Collaborative intent prediction with real-time contextual data}, + author = {Sun, Yu and Yuan, Nicholas Jing and Xie, Xing and McDonald, Kieran and Zhang, Rui}, + journal = {ACM Transactions on Information Systems (TOIS)}, + volume = {35}, + number = {4}, + pages = {1--33}, + year = {2017}, + publisher = {ACM New York, NY, USA} } @inproceedings{zou2020survey, - title={A survey on application of knowledge graph}, - author={Zou, Xiaohan}, - booktitle={Journal of Physics: Conference Series}, - volume={1487}, - number={1}, - pages={012016}, - year={2020}, - organization={IOP Publishing} -} - -@misc{karlgren1990algebra, - title={An algebra for recommendations: Using reader data as a basis for measuring document proximity}, - author={Karlgren, Jussi}, - year={1990}, - publisher={Department of Computer and Systems Sciences, Stockholm University} -} - -@book{karlgren1994newsgroup, - title={Newsgroup clustering based on user behavior-a recommendation algebra}, - author={Karlgren, Jussi}, - year={1994}, - publisher={Swedish Institute of Computer Science} + title = {A survey on application of knowledge graph}, + author = {Zou, Xiaohan}, + booktitle = {Journal of Physics: Conference Series}, + volume = {1487}, + number = {1}, + pages = {12--16}, + year = {2020}, + publisher = {IOP Publishing}, + location = {Bristol}, + editor = {JPCS} } @article{jafarkarimi2012naive, - title={A naive recommendation model for large databases}, - author={Jafarkarimi, Hosein and Sim, Alex Tze Hiang and Saadatdoost, Robab}, - journal={International Journal of Information and Education Technology}, - volume={2}, - number={3}, - pages={216}, - year={2012}, - publisher={IACSIT Press} + title = {A naive recommendation model for large databases}, + author = {Jafarkarimi, Hosein and Sim, Alex Tze Hiang and Saadatdoost, Robab}, + journal = {International Journal of Information and Education Technology}, + volume = {2}, + number = {3}, + pages = {216--219}, + year = {2012}, + publisher = {IACSIT Press} } @article{singhal2012introducing, - title={Introducing the knowledge graph: things, not strings}, - author={Singhal, Amit}, - journal={Official google blog}, - volume={5}, - pages={16}, - year={2012} + title = {Introducing the knowledge graph: things, not strings}, + author = {Singhal, Amit}, + journal = {Official google blog}, + volume = {5}, + pages = {1--16}, + year = {2012} } @inproceedings{bordes2013translating, - title={Translating embeddings for modeling multi-relational data}, - author={Bordes, Antoine and Usunier, Nicolas and Garcia-Duran, Alberto and Weston, Jason and Yakhnenko, Oksana}, - booktitle={Neural Information Processing Systems (NIPS)}, - pages={1--9}, - year={2013} + title = {Translating embeddings for modeling multi-relational data}, + author = {Bordes, Antoine and Usunier, Nicolas and Garcia-Duran, Alberto and Weston, Jason and Yakhnenko, Oksana}, + booktitle = {Neural Information Processing Systems (NIPS)}, + pages = {1--9}, + year = {2013}, + location = {Lake Tahoe}, + publisher = {Curran}, + editor = { Burges, C} } @inproceedings{wang2014knowledge, - title={Knowledge graph embedding by translating on hyperplanes}, - author={Wang, Zhen and Zhang, Jianwen and Feng, Jianlin and Chen, Zheng}, - booktitle={Proceedings of the AAAI Conference on Artificial Intelligence}, - volume={28}, - number={1}, - year={2014} -} - -@inproceedings{lin2015learning, - title={Learning entity and relation embeddings for knowledge graph completion}, - author={Lin, Yankai and Liu, Zhiyuan and Sun, Maosong and Liu, Yang and Zhu, Xuan}, - booktitle={Proceedings of the AAAI Conference on Artificial Intelligence}, - volume={29}, - number={1}, - year={2015} + title = {Knowledge graph embedding by translating on hyperplanes}, + author = {Wang, Zhen and Zhang, Jianwen and Feng, Jianlin and Chen, Zheng}, + booktitle = {Proceedings of the Twenty-Eighth AAAI Conference on Artificial Intelligence}, + pages = {1112--1119}, + volume = {28}, + number = {1}, + year = {2014}, + publisher = {AAAI Press}, + editor = {AAAI}, + location = {Menlo Park} +} + +@article{lin2017learning, + title = {Learning Entity and Relation Embeddings for Knowledge Resolution}, + author = {Lin, Hailun and Liu, Yong and Wang, Weiping and Yue, Yinliang and Lin, Zheng}, + journal = {Procedia Computer Science}, + volume = {108}, + pages = {345--354}, + year = {2017}, + publisher = {Elsevier} } @article{yang2014embedding, - title={Embedding entities and relations for learning and inference in knowledge bases}, - author={Yang, Bishan and Yih, Wen-tau and He, Xiaodong and Gao, Jianfeng and Deng, Li}, - journal={arXiv preprint arXiv:1412.6575}, - year={2014} + title = {Embedding Entities and Relations for Learning and Inference in Knowledge Bases}, + author = {Yang, Bishan and Yih, Wen-tau and He, Xiaodong and Gao, Jianfeng and Deng, Li}, + journal = {arXiv e-prints}, + pages = {1412--1423}, + year = {2014} } @article{lin2015modeling, - title={Modeling relation paths for representation learning of knowledge bases}, - author={Lin, Yankai and Liu, Zhiyuan and Luan, Huanbo and Sun, Maosong and Rao, Siwei and Liu, Song}, - journal={arXiv preprint arXiv:1506.00379}, - year={2015} + title = {Modeling Relation Paths for Representation Learning of Knowledge Bases}, + author = {Lin, Yankai and Liu, Zhiyuan and Luan, Huanbo and Sun, Maosong and Rao, Siwei and Liu, Song}, + journal = {arXiv e-prints}, + pages = {1506--1515}, + year = {2015} } -@article{guu2015traversing, - title={Traversing knowledge graphs in vector space}, - author={Guu, Kelvin and Miller, John and Liang, Percy}, - journal={arXiv preprint arXiv:1506.01094}, - year={2015} +@inproceedings{guu2015traversing, + title = {Traversing Knowledge Graphs in Vector Space}, + author = {Guu, Kelvin and Miller, John and Liang, Percy}, + booktitle = {Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing}, + pages = {318--327}, + year = {2015}, + publisher = {Association for Computational Linguistics}, + location = {Lisbon}, + editor = {Lluís Màrquez, Chris Callison-Burch, Jian Su} } @inproceedings{toutanova2016compositional, - title={Compositional learning of embeddings for relation paths in knowledge base and text}, - author={Toutanova, Kristina and Lin, Xi Victoria and Yih, Wen-tau and Poon, Hoifung and Quirk, Chris}, - booktitle={Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)}, - pages={1434--1444}, - year={2016} + title = {Compositional learning of embeddings for relation paths in knowledge base and text}, + author = {Toutanova, Kristina and Lin, Xi Victoria and Yih, Wen-tau and Poon, Hoifung and Quirk, Chris}, + booktitle = {Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)}, + pages = {1434--1444}, + year = {2016}, + location = {Berlin}, + editor = {Katrin Erk}, + publisher = {Association for Computational Linguistics} } @book{fielding2000architectural, - title={Architectural styles and the design of network-based software architectures}, - author={Fielding, Roy T}, - volume={7}, - year={2000}, - publisher={University of California, Irvine Irvine} + title = {Architectural styles and the design of network-based software architectures}, + author = {Fielding, Roy T}, + volume = {7}, + year = {2000}, + publisher = {University of California, Irvine Irvine}, + pages = {1--4}, + location = {Berkeley}, } @inproceedings{koren2008factorization, - title={Factorization meets the neighborhood: a multifaceted collaborative filtering model}, - author={Koren, Yehuda}, - booktitle={Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining}, - pages={426--434}, - year={2008} + title = {Factorization meets the neighborhood: a multifaceted collaborative filtering model}, + author = {Koren, Yehuda}, + booktitle = {Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining}, + pages = {426--434}, + year = {2008}, + publisher = {Association for Computing Machinery}, + editor = {Ying Li}, + location = {New York} } @inproceedings{wang2018shine, - title={Shine: Signed heterogeneous information network embedding for sentiment link prediction}, - author={Wang, Hongwei and Zhang, Fuzheng and Hou, Min and Xie, Xing and Guo, Minyi and Liu, Qi}, - booktitle={Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining}, - pages={592--600}, - year={2018} + title = {Shine: Signed heterogeneous information network embedding for sentiment link prediction}, + author = {Wang, Hongwei and Zhang, Fuzheng and Hou, Min and Xie, Xing and Guo, Minyi and Liu, Qi}, + booktitle = {Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining}, + pages = {592--600}, + year = {2018}, + publisher = {Association for Computing Machinery}, + editor = {Yi Chang}, + location = {New York} } @inproceedings{wang2018dkn, - title={DKN: Deep knowledge-aware network for news recommendation}, - author={Wang, Hongwei and Zhang, Fuzheng and Xie, Xing and Guo, Minyi}, - booktitle={Proceedings of the 2018 world wide web conference}, - pages={1835--1844}, - year={2018} + title = {DKN: Deep knowledge-aware network for news recommendation}, + author = {Wang, Hongwei and Zhang, Fuzheng and Xie, Xing and Guo, Minyi}, + booktitle = {Proceedings of the 2018 world wide web conference}, + pages = {1835--1844}, + year = {2018}, + publisher = { +International World Wide Web Conferences Steering Committee}, + location = {Republic and Canton of Geneva}, + editor = {Pierre-Antoine Champin} } @article{sun2017collaborative, - title={Collaborative intent prediction with real-time contextual data}, - author={Sun, Yu and Yuan, Nicholas Jing and Xie, Xing and McDonald, Kieran and Zhang, Rui}, - journal={ACM Transactions on Information Systems (TOIS)}, - volume={35}, - number={4}, - pages={1--33}, - year={2017}, - publisher={ACM New York, NY, USA} + title = {Collaborative intent prediction with real-time contextual data}, + author = {Sun, Yu and Yuan, Nicholas Jing and Xie, Xing and McDonald, Kieran and Zhang, Rui}, + journal = {ACM Transactions on Information Systems (TOIS)}, + volume = {35}, + number = {4}, + pages = {1--33}, + year = {2017}, + publisher = {ACM New York, NY, USA} } @inproceedings{zhang2016collaborative, - title={Collaborative knowledge base embedding for recommender systems}, - author={Zhang, Fuzheng and Yuan, Nicholas Jing and Lian, Defu and Xie, Xing and Ma, Wei-Ying}, - booktitle={Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining}, - pages={353--362}, - year={2016} + title = {Collaborative knowledge base embedding for recommender systems}, + author = {Zhang, Fuzheng and Yuan, Nicholas Jing and Lian, Defu and Xie, Xing and Ma, Wei-Ying}, + booktitle = {Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining}, + pages = {353--362}, + year = {2016}, + editor = {Balaji Krishnapuram}, + location = {New York}, + publisher = {Association for Computing Machinery} } @inproceedings{wang2018shine, - title={Shine: Signed heterogeneous information network embedding for sentiment link prediction}, - author={Wang, Hongwei and Zhang, Fuzheng and Hou, Min and Xie, Xing and Guo, Minyi and Liu, Qi}, - booktitle={Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining}, - pages={592--600}, - year={2018} + title = {Shine: Signed heterogeneous information network embedding for sentiment link prediction}, + author = {Wang, Hongwei and Zhang, Fuzheng and Hou, Min and Xie, Xing and Guo, Minyi and Liu, Qi}, + booktitle = {Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining}, + pages = {592--600}, + year = {2018} } @inproceedings{yu2014personalized, - title={Personalized entity recommendation: A heterogeneous information network approach}, - author={Yu, Xiao and Ren, Xiang and Sun, Yizhou and Gu, Quanquan and Sturt, Bradley and Khandelwal, Urvashi and Norick, Brandon and Han, Jiawei}, - booktitle={Proceedings of the 7th ACM international conference on Web search and data mining}, - pages={283--292}, - year={2014} + title = {Personalized entity recommendation: A heterogeneous information network approach}, + author = {Yu, Xiao and Ren, Xiang and Sun, Yizhou and Gu, Quanquan and Sturt, Bradley and Khandelwal, Urvashi and Norick, Brandon and Han, Jiawei}, + booktitle = {Proceedings of the 7th ACM international conference on Web search and data mining}, + pages = {283--292}, + year = {2014}, + editor = {Yi Chang}, + location = {New York}, + publisher = {Association for Computing Machinery} } @article{rendle2012factorization, - title={Factorization machines with libfm}, - author={Rendle, Steffen}, - journal={ACM Transactions on Intelligent Systems and Technology (TIST)}, - volume={3}, - number={3}, - pages={1--22}, - year={2012}, - publisher={ACM New York, NY, USA} + title = {Factorization machines with libfm}, + author = {Rendle, Steffen}, + journal = {ACM Transactions on Intelligent Systems and Technology (TIST)}, + volume = {3}, + number = {3}, + pages = {1--22}, + year = {2012}, + publisher = {ACM New York, NY, USA} } @inproceedings{cheng2016wide, - title={Wide \& deep learning for recommender systems}, - author={Cheng, Heng-Tze and Koc, Levent and Harmsen, Jeremiah and Shaked, Tal and Chandra, Tushar and Aradhye, Hrishi and Anderson, Glen and Corrado, Greg and Chai, Wei and Ispir, Mustafa and others}, - booktitle={Proceedings of the 1st workshop on deep learning for recommender systems}, - pages={7--10}, - year={2016} + title = {Wide \& deep learning for recommender systems}, + author = {Cheng, Heng-Tze and Koc, Levent and Harmsen, Jeremiah and Shaked, Tal and Chandra, Tushar and Aradhye, Hrishi and Anderson, Glen and Corrado, Greg and Chai, Wei and Ispir, Mustafa and others}, + booktitle = {Proceedings of the 1st workshop on deep learning for recommender systems}, + pages = {7--10}, + year = {2016}, + editor = {Alexandros Karatzoglou}, + location = {New York}, + publisher = {Association for Computing Machinery} } @inproceedings{wang2018dkn, - title={DKN: Deep knowledge-aware network for news recommendation}, - author={Wang, Hongwei and Zhang, Fuzheng and Xie, Xing and Guo, Minyi}, - booktitle={Proceedings of the 2018 world wide web conference}, - pages={1835--1844}, - year={2018} + title = {DKN: Deep knowledge-aware network for news recommendation}, + author = {Wang, Hongwei and Zhang, Fuzheng and Xie, Xing and Guo, Minyi}, + booktitle = {Proceedings of the 2018 world wide web conference}, + pages = {1835--1844}, + year = {2018}, + editor = {Pierre-Antoine Champin}, + location = {Republic and Canton of Geneva}, + publisher = {International World Wide Web Conferences Steering Committee} } @article{漆桂林2017知识图谱研究进展, - title={知识图谱研究进展}, - author={漆桂林 and 高桓 and å´å¤©æ˜Ÿ}, - journal={情报工程}, - volume={3}, - number={1}, - pages={004--025}, - year={2017} + title = {知识图谱研究进展}, + author = {漆桂林 and 高桓 and å´å¤©æ˜Ÿ}, + journal = {情报工程}, + volume = {3}, + number = {1}, + pages = {004--025}, + year = {2017} } @article{å¾å¢žæž—2016知识图谱技术综述, - title={知识图谱技术综述}, - author={å¾å¢žæž— and 盛泳潘 and è´ºä¸½è£ and 王雅芳}, - year={2016}, - publisher={电å­ç§‘技大学学报自然版} + title = {知识图谱技术综述}, + author = {å¾å¢žæž—,盛泳潘,贺丽è£,王雅芳}, + journal = {电å­ç§‘技大学学报}, + volume = {1}, + number = {4}, + pages = {589-606} } @article{æŽæ¶“å­2017知识图谱研究综述, - title={知识图谱研究综述}, - author={æŽæ¶“å­ and 侯磊 and others}, - journal={山西大学学报 (自然科学版)}, - number={2017 å¹´ 03}, - pages={454--459}, - year={2017}, - publisher={山西大学} + title = {知识图谱研究综述}, + author = {æŽæ¶“å­ and 侯磊 and others}, + journal = {山西大学学报 (自然科学版)}, + number = {03}, + pages = {454--459}, + year = {2017}, + publisher = {山西大学} } @article{曹倩2015知识图谱的技术实现æµç¨‹åŠç›¸å…³åº”用, - title={知识图谱的技术实现æµç¨‹åŠç›¸å…³åº”用}, - author={曹倩 and 赵一鸣}, - journal={情报ç†è®ºä¸Žå®žè·µ}, - volume={38}, - number={12}, - pages={13--18}, - year={2015} + title = {知识图谱的技术实现æµç¨‹åŠç›¸å…³åº”用}, + author = {曹倩 and 赵一鸣}, + journal = {情报ç†è®ºä¸Žå®žè·µ}, + volume = {38}, + number = {12}, + pages = {13--18}, + year = {2015} } @inproceedings{tang2019akupm, - title={AKUPM: Attention-enhanced knowledge-aware user preference model for recommendation}, - author={Tang, Xiaoli and Wang, Tengyun and Yang, Haizhi and Song, Hengjie}, - booktitle={Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining}, - pages={1891--1899}, - year={2019} + title = {AKUPM: Attention-enhanced knowledge-aware user preference model for recommendation}, + author = {Tang, Xiaoli and Wang, Tengyun and Yang, Haizhi and Song, Hengjie}, + booktitle = {Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining}, + pages = {1891--1899}, + year = {2019}, + editor = {Ankur Teredesai}, + publisher = {Association for Computing Machinery}, + location = {New York} } @inproceedings{cao2019unifying, - title={Unifying knowledge graph learning and recommendation: Towards a better understanding of user preferences}, - author={Cao, Yixin and Wang, Xiang and He, Xiangnan and Hu, Zikun and Chua, Tat-Seng}, - booktitle={The world wide web conference}, - pages={151--161}, - year={2019} + title = {Unifying knowledge graph learning and recommendation: Towards a better understanding of user preferences}, + author = {Cao, Yixin and Wang, Xiang and He, Xiangnan and Hu, Zikun and Chua, Tat-Seng}, + booktitle = {The world wide web conference}, + pages = {151--161}, + year = {2019}, + editor = {Ling Liu}, + publisher = {Association for Computing Machinery}, + location = {New York} } @inproceedings{zhao2017meta, - title={Meta-graph based recommendation fusion over heterogeneous information networks}, - author={Zhao, Huan and Yao, Quanming and Li, Jianda and Song, Yangqiu and Lee, Dik Lun}, - booktitle={Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining}, - pages={635--644}, - year={2017} + title = {Meta-graph based recommendation fusion over heterogeneous information networks}, + author = {Zhao, Huan and Yao, Quanming and Li, Jianda and Song, Yangqiu and Lee, Dik Lun}, + booktitle = {Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining}, + pages = {635--644}, + year = {2017}, + editor = {Stan Matwin}, + publisher = {Association for Computing Machinery}, + location = {New York} } @inproceedings{sun2018recurrent, - title={Recurrent knowledge graph embedding for effective recommendation}, - author={Sun, Zhu and Yang, Jie and Zhang, Jie and Bozzon, Alessandro and Huang, Long-Kai and Xu, Chi}, - booktitle={Proceedings of the 12th ACM Conference on Recommender Systems}, - pages={297--305}, - year={2018} + title = {Recurrent knowledge graph embedding for effective recommendation}, + author = {Sun, Zhu and Yang, Jie and Zhang, Jie and Bozzon, Alessandro and Huang, Long-Kai and Xu, Chi}, + booktitle = {Proceedings of the 12th ACM Conference on Recommender Systems}, + pages = {297--305}, + year = {2018}, + editor = {Sole Pera}, + publisher = {Association for Computing Machinery}, + location = {New York} } @inproceedings{wang2018ripplenet, - title={Ripplenet: Propagating user preferences on the knowledge graph for recommender systems}, - author={Wang, Hongwei and Zhang, Fuzheng and Wang, Jialin and Zhao, Miao and Li, Wenjie and Xie, Xing and Guo, Minyi}, - booktitle={Proceedings of the 27th ACM International Conference on Information and Knowledge Management}, - pages={417--426}, - year={2018} + title = {Ripplenet: Propagating user preferences on the knowledge graph for recommender systems}, + author = {Wang, Hongwei and Zhang, Fuzheng and Wang, Jialin and Zhao, Miao and Li, Wenjie and Xie, Xing and Guo, Minyi}, + booktitle = {Proceedings of the 27th ACM International Conference on Information and Knowledge Management}, + pages = {417--426}, + year = {2018}, + editor = {Alfredo Cuzzocrea}, + publisher = {Association for Computing Machinery}, + location = {New York} } @article{黄立å¨2018基于深度学习的推è系统研究综述, - title={基于深度学习的推è系统研究综述}, - author={é»„ç«‹å¨ and 江碧涛 and å•å®ˆä¸š and åˆ˜è‰³åš and æŽå¾·æ¯…}, - journal={计算机学报}, - volume={41}, - number={7}, - pages={1619--1647}, - year={2018} + title = {基于深度学习的推è系统研究综述}, + author = {é»„ç«‹å¨ and 江碧涛 and å•å®ˆä¸š and åˆ˜è‰³åš and æŽå¾·æ¯…}, + journal = {计算机学报}, + volume = {41}, + number = {7}, + pages = {1619--1647}, + year = {2018} } @article{常亮2019知识图谱的推è系统综述, - title={知识图谱的推è系统综述}, - author={常亮 and 张伟涛 and å¤å¤©é¾™ and 孙文平 and 宾辰忠 and others}, - journal={智能系统学报}, - volume={14}, - number={2}, - pages={207--216}, - year={2019} -} - -@mastersthesis{王一鸣2018基于知识图谱的推è技术研究åŠåº”用, - title={基于知识图谱的推è技术研究åŠåº”用}, - author={王一鸣}, - year={2018}, - school={电å­ç§‘技大学} + title = {知识图谱的推è系统综述}, + author = {常亮 and 张伟涛 and å¤å¤©é¾™ and 孙文平 and 宾辰忠 and others}, + journal = {智能系统学报}, + volume = {14}, + number = {2}, + pages = {207--216}, + year = {2019} +} + +@article{秦å·2020基于知识图谱的推è系统研究综述, + title = {基于知识图谱的推è系统研究综述}, + author = {ç§¦å· and ç¥æ’书 and 庄ç¦æŒ¯ and 郭庆宇 and å¼ ç¦ and å¼ ä¹ and 王超 and 陈æ©çº¢ and 熊辉}, + journal = {中国科学:ä¿¡æ¯ç§‘å­¦}, + number = {7}, + pages = {937-956}, + year = {2020} } diff --git a/macros/latex/contrib/bjfuthesis/example/contents/abstract.tex b/macros/latex/contrib/bjfuthesis/example/contents/abstract.tex index 7e116d91e5..12c5ecc161 100644 --- a/macros/latex/contrib/bjfuthesis/example/contents/abstract.tex +++ b/macros/latex/contrib/bjfuthesis/example/contents/abstract.tex @@ -2,13 +2,13 @@ \begin{abstract} éšç€åœ¨çº¿ç”µå½±æ•°é‡ä¸æ–­å¢žåŠ ï¼Œç”¨æˆ·é€‰æ‹©ç”µå½±çš„时间æˆæœ¬ä¸æ–­ä¸Šå‡ï¼Œå‡†ç¡®çš„推è算法æˆä¸ºäº†å¿…然è¦æ±‚。为解决ååŒè¿‡æ»¤æŽ¨è算法中的稀缺性问题与冷å¯åŠ¨é—®é¢˜ï¼Œç ”究人员用商å“属性或社交网络等信æ¯æ¥è¾…助推è算法。现有的将知识图谱作为辅助信æ¯çš„推è算法包括基于嵌入的方法和基于路径的方法,但这两ç§æ–¹æ³•å‡å­˜åœ¨ä¸€äº›ç¼ºé™·ï¼Œæ²¡æœ‰å……分有效地利用知识图谱中的相关信æ¯ï¼ŒæŽ¨è的准确度较低。 - 本文实现了基于“涟漪网络â€çŸ¥è¯†å›¾è°±çš„推è算法。“涟漪网络â€ç®—法的核心是利用现实生活中雨滴产生的涟漪在水é¢ä¸Šä¸æ–­æ‰©æ•£çš„æ€è·¯ï¼Œæ¥æ¨¡æ‹Ÿç”¨æˆ·å好的扩散。对于æ¯ä¸€ä¸ªç”¨æˆ·ï¼Œæ¶Ÿæ¼ªç½‘络将其过往å好作为知识图谱中的一个ç§å­é›†ï¼Œç„¶åŽæ²¿çŸ¥è¯†å›¾è°±ä¸­çš„关系路径ä¸æ–­åœ°æ‹“展用户å好,进而å‘现该用户对æŸä¸ªå€™é€‰ç‰©å“以等级划分的潜在兴趣,其中多个“涟漪â€é‡å å½¢æˆçŸ¥è¯†å›¾è°±ä¸­çš„用户å好分布。该算法的实验结果和以往的CKEã€DKNã€PER等模型结果相比,表现出更优的性能。利用该算法,本文设计并实现了一个基于知识图谱的电影推è系统,该系统包括管ç†å‘˜ç”¨æˆ·å’Œæ™®é€šç”¨æˆ·ï¼Œç®¡ç†å‘˜èƒ½æ–°å¢žã€ç¼–辑和删除电影与用户,普通用户能æµè§ˆã€æ”¶è—与购买电影。该系统å¯ä»¥é«˜æ•ˆå‡†ç¡®åœ°ä¸ºç”¨æˆ·æŽ¨è电影,方便用户选择满足自己å好的电影。 + 本文实现了基于知识图谱的“涟漪网络â€æŽ¨è算法。“涟漪网络â€ç®—法的核心是利用现实生活中雨滴产生的涟漪在水é¢ä¸Šä¸æ–­æ‰©æ•£çš„æ€è·¯ï¼Œæ¥æ¨¡æ‹Ÿç”¨æˆ·å好的扩散。对于æ¯ä¸€ä¸ªç”¨æˆ·ï¼Œæ¶Ÿæ¼ªç½‘络将其过往å好作为知识图谱中的一个ç§å­é›†ï¼Œç„¶åŽæ²¿çŸ¥è¯†å›¾è°±ä¸­çš„关系路径ä¸æ–­åœ°æ‹“展用户å好,进而å‘现该用户对æŸä¸ªå€™é€‰ç‰©å“以等级划分的潜在兴趣,其中多个“涟漪â€é‡å å½¢æˆçŸ¥è¯†å›¾è°±ä¸­çš„用户å好分布。该算法的实验结果和以往的CKEã€DKNã€PER等模型结果相比,表现出更优的性能。利用该算法,本文设计并实现了一个基于知识图谱的电影推è系统,该系统包括管ç†å‘˜ç”¨æˆ·å’Œæ™®é€šç”¨æˆ·ï¼Œç®¡ç†å‘˜èƒ½æ–°å¢žã€ç¼–辑和删除电影与用户,普通用户能æµè§ˆã€æ”¶è—与购买电影。该系统å¯ä»¥é«˜æ•ˆå‡†ç¡®åœ°ä¸ºç”¨æˆ·æŽ¨è电影,方便用户选择满足自己å好的电影。 \end{abstract} \keywordscn{知识图谱,推è系统,涟漪网络,用户å好,电影商店} \chapter*{Abstract} \begin{abstract} - As the number of online movies continues to increase and the time cost for users to choose movies continues to rise, accurate recommendation algorithms have become an inevitable requirement. In order to address the scarcity and cold start problem of collaborative filtering, researchers usually make use of side information, such as product attributes or social networks as side information to assist the recommendation. The existing recommendation algorithms that use knowledge graph as side information include embedding-based methods and path-based methods, but both methods have some shortcomings. They do not make full and effective use of the relevant information in the knowledge graph, and the accuracy of recommendation is relatively low. + As the number of online movies continues to increase and the time cost for users to choose movies continues to rise, accurate recommendation algorithms have become an necessary requirement. In order to address the scarcity and cold start problem of collaborative filtering, researchers usually make use of side information, such as product attributes or social networks as side information to assist the recommendation. The existing recommendation algorithms that use knowledge graph as side information include embedding-based methods and path-based methods, but both methods have some shortcomings. They do not make full and effective use of the relevant information in the knowledge graph, and the accuracy of recommendation is relatively low. - This paper implements a recommendation algorithm based on Ripple Network. The core of the Ripple Network algorithm is to use the idea that the ripples produced by raindrops in real life continue to spread on the water surface to stimulate the spread of user preferences. For each user, Ripple Network uses its past preference as a seed set in the knowledge graph, and then continuously expands the user’s preferences along the relationship path in the knowledge graph, and then discovers his hierarchical potential interests concerning a certain candidate item. Multiple ``ripples" overlap to form the user preference distribution in the knowledge graph. Compared with previous model results of CKE, DKN, PER, etc., the experimental results of this algorithm show better performance. Using this algorithm, this paper designs and implements a recommendation system based on the movie knowledge graph. The system includes administrator users and general users. The administrator can add, edit and delete movies and users, and general users can browse, collect and purchase films. The system can provide users with an efficient movie recommendation function, which is convenient for users to choose movies that suit their preferences. + This paper implements a recommendation algorithm, ``Ripple Network", based on knowledge graph. The core of the Ripple Network algorithm is to use the idea that the ripples produced by raindrops in real life continue to spread on the water surface to stimulate the spread of user preferences. For each user, Ripple Network uses its past preference as a seed set in the knowledge graph, and then continuously expands the user's preferences along the relationship path in the knowledge graph, and then discovers his hierarchical potential interests concerning a certain candidate item. Multiple ``ripples'' overlap to form the user preference distribution in the knowledge graph. Compared with previous model results of CKE, DKN, PER, etc., the experimental results of this algorithm show better performance. Using this algorithm, this paper designs and implements a recommendation system based on the movie knowledge graph. The system includes administrator users and general users. The administrator can add, edit and delete movies and users, and general users can browse, collect and purchase films. The system can provide users with an efficient movie recommendation function, which is convenient for users to choose movies that match their preferences. \end{abstract} -\keywordsen{Knowledge graph, recommendation system, Ripple Network, user preferences, movie store} +\keywordsen{Knowledge graph, recommender system, Ripple Network, user preferences, movie store} diff --git a/macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex b/macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex index 2b8ff0cb50..54bbd920ca 100644 --- a/macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex +++ b/macros/latex/contrib/bjfuthesis/example/contents/mainbody.tex @@ -1,6 +1,6 @@ \chapter{绪论} \section{研究背景与æ„义} -一直以æ¥ï¼Œç”µå½±æŽ¨è都是在线æµåª’体播放平å°å‘展中的一个é‡è¦é—®é¢˜ï¼Œåšå¥½ç”µå½±æŽ¨èå¯ä»¥ä½¿ç”¨æˆ·èƒ½åœ¨æµ·é‡ç”µå½±ä¸­é€‰æ‹©æ»¡è¶³å…¶å好的电影,æ高用户满æ„度,从而æ高在线æµåª’体播放平å°çš„æµé‡è½¬åŒ–率åŠè´­ä¹°çŽ‡ï¼Œå¹¶æœ€ç»ˆæ高在线æµåª’体播放平å°çš„ç»æµŽæ”¶ç›Šã€‚è¿‘å¹´æ¥ï¼Œéšç€ç”µå½±è¡Œä¸šåŠäº’è”网行业的ä¸æ–­å‘展,在线电影数é‡ä¸æ–­å¢žåŠ ï¼Œç”¨æˆ·åœ¨æµ·é‡ç”µå½±ä¸­é€‰æ‹©æ»¡è¶³å…¶å好的电影的难度ä¸æ–­ä¸Šå‡ï¼Œæ€§èƒ½ä¼˜å¼‚的推è算法æˆä¸ºäº†å¿…然è¦æ±‚。自从在线æµåª’体播放平å°å‡ºçŽ°ä»¥æ¥ï¼Œäººä»¬ä¾¿å¼€å§‹å°è¯•åˆ©ç”¨æŽ¨è算法æ¥æ高平å°æµé‡è½¬åŒ–率,出现了诸如ååŒè¿‡æ»¤çš„推è算法\cite{su2009survey}。但这些算法未能解决数æ®ç¨€ç¼ºæ€§åŠå†·å¯åŠ¨é—®é¢˜ï¼Œå¹¶ä¸èƒ½ä¸ºåœ¨çº¿æµåª’体播放平å°æ供良好的推è性能。为此,人们å°è¯•å°†è¾…助信æ¯èžå…¥æŽ¨è算法中以解决数æ®ç¨€ç¼ºæ€§åŠå†·å¯åŠ¨é—®é¢˜\cite{sun2017collaborative},并æ高推è性能。 +一直以æ¥ï¼Œç”µå½±æŽ¨è都是在线æµåª’体播放平å°å‘展中的一个é‡è¦é—®é¢˜ï¼Œåšå¥½ç”µå½±æŽ¨èå¯ä»¥ä½¿ç”¨æˆ·èƒ½åœ¨æµ·é‡ç”µå½±ä¸­é€‰æ‹©æ»¡è¶³å…¶å好的电影,æ高用户满æ„度,从而æ高在线æµåª’体播放平å°çš„æµé‡è½¬åŒ–率åŠè´­ä¹°çŽ‡ï¼Œå¹¶æœ€ç»ˆæ高在线æµåª’体播放平å°çš„ç»æµŽæ”¶ç›Šã€‚è¿‘å¹´æ¥ï¼Œéšç€ç”µå½±è¡Œä¸šåŠäº’è”网行业的ä¸æ–­å‘展,在线电影数é‡ä¸æ–­å¢žåŠ ï¼Œç”¨æˆ·åœ¨æµ·é‡ç”µå½±ä¸­é€‰æ‹©æ»¡è¶³å…¶å好的电影的难度ä¸æ–­ä¸Šå‡ï¼Œæ€§èƒ½ä¼˜å¼‚的推è算法æˆä¸ºäº†å¿…然è¦æ±‚。自从在线æµåª’体播放平å°å‡ºçŽ°ä»¥æ¥ï¼Œäººä»¬ä¾¿å¼€å§‹å°è¯•åˆ©ç”¨æŽ¨è算法æ¥æ高平å°æµé‡è½¬åŒ–率,出现了诸如ååŒè¿‡æ»¤çš„推è算法\cite{he2017neural}。但这些算法未能解决数æ®ç¨€ç¼ºæ€§åŠå†·å¯åŠ¨é—®é¢˜ï¼Œå¹¶ä¸èƒ½ä¸ºåœ¨çº¿æµåª’体播放平å°æ供良好的推è性能。为此,人们å°è¯•å°†è¾…助信æ¯èžå…¥æŽ¨è算法中以解决数æ®ç¨€ç¼ºæ€§åŠå†·å¯åŠ¨é—®é¢˜\cite{sun2017collaborative},并æ高推è性能。 知识图谱是一ç§ç»“构化的语义知识库,被用于迅速æ供对物ç†ä¸–界中的概念和相互关系的æ述,为解决推è问题æ供了新的方法\cite{zou2020survey},近年æ¥å—到国内外研究人员的广泛关注,æˆä¸ºäº†å½“å‰çš„研究热点。知识图谱通过对å¤æ‚的原始数æ®è¿›è¡ŒåŠ å·¥ã€å¤„ç†åŠæ•´åˆï¼Œè½¬åŒ–æˆç®€å•å¯é ã€æ¸…晰明了的“实体,关系,实体â€ä¸‰å…ƒç»„,汇èšäº†å¤§é‡çš„知识信æ¯ï¼Œä»Žè€Œèƒ½å®žçŽ°åŸºäºŽçŸ¥è¯†ä¿¡æ¯çš„å“应和推ç†ã€‚ @@ -11,7 +11,7 @@ 对于海é‡çš„电影数æ®ï¼Œä¸ºäº†å®žçŽ°å‡†ç¡®åœ°æŽ¨è给用户其感兴趣的电影,基于ååŒè¿‡æ»¤çš„传统推è算法是满足了ä¸ç”¨æˆ·éœ€æ±‚的,特别是对新注册用户,推è的准确度无法得到ä¿è¯ã€‚所以,本文旨在以知识图谱作为辅助信æ¯ï¼Œæž„建一个åˆé€‚的电影推è系统,并利用知识图谱中包å«çš„丰富的辅助信æ¯ï¼Œæœ€ç»ˆå®žçŽ°ä¸€ä¸ªç”µå½±æŽ¨è系统,为用户æ供有效的ã€å‡†ç¡®çš„电影推è,从而æ高用户满æ„度,æ高平å°æ”¶ç›Šã€‚ \section{国内外研究现状} \subsection{推è系统研究现状} -推è系统由Jussi Karlgren于哥伦比亚大学在一份技术报告中以“数字书架â€çš„å称被首次æåŠ\cite{karlgren1990algebra},而åŽè‡ª1994年起被在SICSçš„Jussi Karlgren\cite{karlgren1994newsgroup}ã€ç”±Pattie Maes于MIT领导的研究团队ã€ä½äºŽBellcoreçš„Will Hill以åŠåŒæ ·ä½äºŽMITçš„Paul Resnick大规模实现并在技术性报告åŠå‡ºç‰ˆç‰©å¤§é‡å‡ºçŽ°ï¼Œä»¥ä¸Šäººå‘˜ä¸ŽGroupLens的工作被授予了2010å¹´ACM软件系统奖。 +推è系统由Jussi Karlgren于哥伦比亚大学在一份技术报告中以“数字书架â€çš„å称被首次æåŠï¼Œè€ŒåŽè‡ª1994年起被在SICSçš„Jussi Karlgrenã€ç”±Pattie Maes于MIT领导的研究团队ã€ä½äºŽBellcoreçš„Will Hill以åŠåŒæ ·ä½äºŽMITçš„Paul Resnick大规模实现并在技术性报告åŠå‡ºç‰ˆç‰©å¤§é‡å‡ºçŽ°ï¼Œä»¥ä¸Šäººå‘˜ä¸ŽGroupLens的工作被授予了2010å¹´ACM软件系统奖。 自从在90年代中期首批有关ååŒè¿‡æ»¤çš„论文出现åŽæŽ¨è系统便æˆä¸ºäº†é‡è¦çš„研究领域。工业界与学术界出现了众多有关建设新的推è系统的工作。由于该领域包å«ä¼—多的研究问题åŠå…¶èƒ½å¸®åŠ©ç”¨æˆ·è§£å†³åœ¨è¿‡å¤šä¿¡æ¯ä¸­æ供个性化推è的实际应用,因此研究人员对该领域的兴趣ä¾æ—§å¾ˆé«˜ã€‚ @@ -41,7 +41,7 @@ 事实学习分为有监ç£çš„事实学习ã€åŠç›‘ç£çš„事实学习以åŠæ— ç›‘ç£çš„事实学习。有监ç£çš„事实学习通过人为标注的语料信æ¯è¾“入以åŠæ·±åº¦å­¦ä¹ æ–¹æ³•æ¥å®ŒæˆçŸ¥è¯†å›¾è°±çš„构建,而åŠç›‘ç£çš„事实学习方法使用å¯å‘å¼åœ°è‡ªåŠ¨æ ‡æ³¨æ–‡æœ¬ï¼Œä½†ç¼ºé™·æ˜¯è®­ç»ƒæ•°æ®é›†ä¸­å¯èƒ½å«æœ‰å¤§é‡çš„噪声数æ®ã€‚而无监ç£çš„学习方法主è¦ä½¿ç”¨åŸºäºŽæ·±åº¦å­¦ä¹ æ¨¡åž‹çš„自然语言处ç†ï¼ˆNLP)的方法,无须人为干预,由训练模型自动完æˆä¿¡æ¯æŠ½å–ã€ä¿¡æ¯æ•´åˆã€‚éšç€æ·±åº¦å­¦ä¹ ç®—法的å‘展,目å‰åŸºäºŽæ— ç›‘ç£çš„事实学习é€æ¸æˆä¸ºä¸»æµ\cite{æŽæ¶“å­2017知识图谱研究综述}。 -ç›®å‰å‡ºçŽ°äº†è¯¸å¤šä½¿ç”¨ä»¥ä¸Šç†è®ºæ–¹æ³•è®¾è®¡çš„知识图谱嵌入算法:基于翻译的TransE\cite{bordes2013translating}ã€TransH\cite{wang2014knowledge}ã€TransR\cite{lin2015learning}和基于语义分æžçš„DistMult\cite{yang2014embedding}等。 +ç›®å‰å‡ºçŽ°äº†è¯¸å¤šä½¿ç”¨ä»¥ä¸Šç†è®ºæ–¹æ³•è®¾è®¡çš„知识图谱嵌入算法:基于翻译的TransE\cite{bordes2013translating}ã€TransH\cite{wang2014knowledge}ã€TransR\cite{lin2017learning}和基于语义分æžçš„DistMult\cite{yang2014embedding}等。 ç›®å‰ï¼ŒçŸ¥è¯†å›¾è°±åœ¨ä¸šç•Œçš„应用已ç»å–得了巨大æˆåŠŸ\cite{曹倩2015知识图谱的技术实现æµç¨‹åŠç›¸å…³åº”用}: @@ -53,7 +53,7 @@ \subsection{基于知识图谱的推è系统研究现状} 由于传统的推è系统无法解决稀缺性问题和冷å¯åŠ¨é—®é¢˜ï¼Œå› æ­¤ç ”究人员ä¼å›¾å°†è¾…助信æ¯åŠ å…¥åˆ°æŽ¨è算法中以改善推è性能。而这类辅助信æ¯æœ‰ç¤¾äº¤ç½‘络ã€ç”¨æˆ·/物å“属性ã€å›¾åƒä¸Žä¸Šä¸‹æ–‡ç­‰ã€‚ -在数ç§ç±»åž‹çš„辅助信æ¯ä¸­ï¼ŒçŸ¥è¯†å›¾è°±é€šå¸¸åŒ…å«æœ‰æ›´ä¸°å¯Œçš„ä¿¡æ¯ä»¥åŠç‰©å“é—´çš„è”系。图~\ref{fig:enhanced-recommendation}中说明了知识图谱æ供丰富的信æ¯ä¸Žç‰©å“间的连接,有利于æ高推è结果的准确性ã€å¤šæ ·æ€§å’Œå¯è§£é‡Šæ€§ã€‚知识图谱å¯ä»¥ä»Žä»¥ä¸‹ä¸‰ä¸ªæ–¹é¢æ高推è性能: +在数ç§ç±»åž‹çš„辅助信æ¯ä¸­ï¼ŒçŸ¥è¯†å›¾è°±é€šå¸¸åŒ…å«æœ‰æ›´ä¸°å¯Œçš„ä¿¡æ¯ä»¥åŠç‰©å“é—´çš„è”系。图\ref{fig:enhanced-recommendation}中说明了知识图谱æ供丰富的信æ¯ä¸Žç‰©å“间的连接,有利于æ高推è结果的准确性ã€å¤šæ ·æ€§å’Œå¯è§£é‡Šæ€§ã€‚知识图谱å¯ä»¥ä»Žä»¥ä¸‹ä¸‰ä¸ªæ–¹é¢æ高推è性能: \begin{figure} \includegraphics[width=\textwidth]{enhanced-recommendation} \bicaption{基于知识图谱的电影推è系统}{Knowledge graph enhanced movie recommendation system}\label{fig:enhanced-recommendation} @@ -81,7 +81,7 @@ SHINE设计深度自编ç å™¨æ¥åµŒå…¥è¯­ä¹‰ç½‘络,社交网络并进行推è (1)对推è系统所需的数æ®è¿›è¡Œé‡‡é›†å’Œå¤„ç†ï¼Œä½¿ç”¨â€œMovieLens 1M Datasetâ€ä½œä¸ºæ•°æ®é›†ï¼Œæ­¤å¤–还从IMDbåŠè±†ç“£ç½‘爬å–了相关电影数æ®å¹¶è¿›è¡Œå¤„ç†ï¼Œä½œä¸ºæœ¬æ–‡çš„研究对象。 -(2)根æ®æ–‡çŒ®\parencite{wang2018ripplenet}æ出的算法,实现了基于知识图谱的涟漪网络推è算法,该算法能根æ®ç”¨æˆ·çš„历å²è¡Œä¸ºä¸ºç”¨æˆ·è¿›è¡Œç”µå½±æŽ¨è。此外,将涟漪网络算法与其他基于知识图谱的推è算法(DKN\cite{wang2018dkn}ã€CKE\cite{zhang2016collaborative} ã€PER\cite{yu2014personalized}ã€SHINE\cite{wang2018shine}ã€LibFM\cite{rendle2012factorization}å’ŒWide\&Deep\cite{cheng2016wide}等)进行了性能比较。 +(2)根æ®æ–‡çŒ®\parencite{wang2018ripplenet}æ出的算法,实现了基于知识图谱的涟漪网络推è算法,此算法能根æ®ç”¨æˆ·çš„历å²è¡Œä¸ºä¸ºç”¨æˆ·è¿›è¡Œç”µå½±æŽ¨è。ä¸åŒäºŽæ–‡çŒ®\parencite{wang2018ripplenet}中仅使用用户评分计算用户å好,本文在用户å好的计算过程中还结åˆäº†ç”¨æˆ·æ”¶è—,这在一定程度上缓解了冷å¯åŠ¨é—®é¢˜å¹¶æ”¹è¿›äº†æŽ¨è性能。此外,将涟漪网络算法与其他基于知识图谱的推è算法(DKN\cite{wang2018dkn}ã€CKE\cite{zhang2016collaborative} ã€PER\cite{yu2014personalized}ã€SHINE\cite{wang2018shine}ã€LibFM\cite{rendle2012factorization}å’ŒWide\&Deep\cite{cheng2016wide}等)进行了性能比较。 (3)实现了一个基于知识图谱的电影推è系统,该系统能够根æ®ç”¨æˆ·çš„历å²è¡Œä¸ºï¼ˆè¯„分ã€æ”¶è—等)æ¥ä¸ºç”¨æˆ·è¿›è¡Œç”µå½±æŽ¨è。该系统分为管ç†å‘˜ã€æœªç™»å½•ç”¨æˆ·ã€æ™®é€šç™»å½•ç”¨æˆ·ã€‚管ç†å‘˜èƒ½å¢žåŠ ã€ä¿®æ”¹å’Œåˆ é™¤ç”µå½±å’Œæ™®é€šç”¨æˆ·ï¼›æœªç™»å½•ç”¨æˆ·èƒ½æ ¹æ®ç”µå½±åˆ†ç±»æŸ¥çœ‹ç”µå½±åˆ—表以åŠæŸ¥çœ‹ç”µå½±è¯¦æƒ…;普通登录用户除了能进行未登录用户的所有æ“作外,还能购买ã€æ”¶è—åŠä¸ºç”µå½±è¯„分。 \section{论文结构} @@ -125,7 +125,7 @@ SHINE设计深度自编ç å™¨æ¥åµŒå…¥è¯­ä¹‰ç½‘络,社交网络并进行推è 基于内容的推è与基于ååŒè¿‡æ»¤çš„推èå„有优缺点。潘多拉音ä¹æ‰€ä½¿ç”¨çš„基于内容推è的推è算法是根æ®ç‰©å“本身的性质æ¥è¿›è¡ŒæŽ¨è的,因此ä¸éœ€è¦ç”¨æˆ·ä¿¡æ¯å°±å¯ä»¥æœ‰è¾ƒå¥½çš„准确度。但该算法严é‡ä¾èµ–物å“本身的特性,因此局é™æ€§è¾ƒå¤§ï¼ŒæŽ¨è的内容都是与ç§å­é›†ç›¸å…³çš„,推è结果的多样性较低。而“终级fmâ€ä½¿ç”¨çš„ååŒè¿‡æ»¤ç®—法需è¦æ ¹æ®ç”¨æˆ·ä¸Žç‰©å“的交互æ¥ç”ŸæˆæŽ¨è结果,因此需è¦å¤§é‡çš„用户数æ®ï¼Œå­˜åœ¨æ•°æ®ç¨€ç¼ºæ€§é—®é¢˜ä¸Žå†·å¯åŠ¨é—®é¢˜ã€‚ \subsection{基于知识图谱的推è系统} -基于内容推è与ååŒè¿‡æ»¤æŽ¨è两者å‡å­˜åœ¨ä¸€äº›å±€é™æ€§ï¼Œä¸ºäº†æ高推è的准确性,解决传统推è算法的数æ®ç¨€ç¼ºæ€§ä¸Žå†·å¯åŠ¨é—®é¢˜ï¼Œç ”究者将一些辅助信æ¯åŠ å…¥è‡³æŽ¨è算法中,通常这些辅助信æ¯åŒ…括上下文信æ¯ã€ç”¨æˆ·æˆ–物å“的属性ã€å›¾ç‰‡å’Œç¤¾äº¤ç½‘络\cite{常亮2019知识图谱的推è系统综述}\cite{王一鸣2018基于知识图谱的推è技术研究åŠåº”用}。 +基于内容推è与ååŒè¿‡æ»¤æŽ¨è两者å‡å­˜åœ¨ä¸€äº›å±€é™æ€§ï¼Œä¸ºäº†æ高推è的准确性,解决传统推è算法的数æ®ç¨€ç¼ºæ€§ä¸Žå†·å¯åŠ¨é—®é¢˜ï¼Œç ”究者将一些辅助信æ¯åŠ å…¥è‡³æŽ¨è算法中,通常这些辅助信æ¯åŒ…括上下文信æ¯ã€ç”¨æˆ·æˆ–物å“的属性ã€å›¾ç‰‡å’Œç¤¾äº¤ç½‘络\cite{常亮2019知识图谱的推è系统综述}\cite{秦å·2020基于知识图谱的推è系统研究综述}。 而éšç€çŸ¥è¯†å›¾è°±çš„å‘展,将知识图谱作为辅助信æ¯æ¥æ高推è系统的性能已ç»æˆä¸ºäº†çƒ­é—¨çš„研究方å‘。将知识图谱作为辅助信æ¯åŠ å…¥æŽ¨è算法的优点有: @@ -135,7 +135,7 @@ SHINE设计深度自编ç å™¨æ¥åµŒå…¥è¯­ä¹‰ç½‘络,社交网络并进行推è ç›®å‰ä¸»è¦çš„基于知识图谱的推è算法有基于嵌入的方法ã€åŸºäºŽè·¯å¾„的方法以åŠæ··åˆå¼æ–¹æ³•ï¼š -(1)基于嵌入的方法。基于嵌入的方法使用知识图谱的信æ¯æ¥å®Œå–„实体的嵌入表示。为了将知识图谱中的信æ¯æ·»åŠ è‡³æŽ¨è算法中æ¥è¾…助推è,需è¦ä½¿ç”¨çŸ¥è¯†å›¾è°±åµŒå…¥è¡¨ç¤ºç®—法(Knowledge Graph Embedding, KGE)表计算实体嵌入(实体嵌入指由知识图谱中的信æ¯å¾—到的在低维å‘é‡ç©ºé—´ä¸­çš„å‘é‡è¡¨ç¤ºï¼‰ã€‚KGE算法有TransE\cite{bordes2013translating}ã€TransH\cite{wang2014knowledge}ã€TransR\cite{lin2015learning}å’ŒDistMult\cite{yang2014embedding}等。而推è算法利用该嵌入表示æ¥è¿›è¡Œç›¸å…³è®¡ç®—,从而对用户进行物å“推è。 +(1)基于嵌入的方法。基于嵌入的方法使用知识图谱的信æ¯æ¥å®Œå–„实体的嵌入表示。为了将知识图谱中的信æ¯æ·»åŠ è‡³æŽ¨è算法中æ¥è¾…助推è,需è¦ä½¿ç”¨çŸ¥è¯†å›¾è°±åµŒå…¥è¡¨ç¤ºç®—法(Knowledge Graph Embedding, KGE)表计算实体嵌入(实体嵌入指由知识图谱中的信æ¯å¾—到的在低维å‘é‡ç©ºé—´ä¸­çš„å‘é‡è¡¨ç¤ºï¼‰ã€‚KGE算法有TransE\cite{bordes2013translating}ã€TransH\cite{wang2014knowledge}ã€TransR\cite{lin2017learning}å’ŒDistMult\cite{yang2014embedding}等。而推è算法利用该嵌入表示æ¥è¿›è¡Œç›¸å…³è®¡ç®—,从而对用户进行物å“推è。 (2)基于路径的方法\cite{lin2015modeling}\cite{guu2015traversing}\cite{toutanova2016compositional}。基于路径的方法将知识图谱视为异构信æ¯ç½‘络。而推è系统利用该异构信æ¯ç½‘络寻找实体间的关系,从而完æˆæŽ¨è。 @@ -161,7 +161,8 @@ MongoDB是一个新兴的éžå…³ç³»åž‹å­˜å‚¨çš„分布å¼å­˜å‚¨æ•°æ®çš„æ•°æ®åº“ Neo4j是一个具有高性能的图数æ®åº“,它将结构化的数æ®ä¿¡æ¯å‚¨å­˜åœ¨ç½‘络上而ä¸æ˜¯å­˜å‚¨åœ¨è¡¨ä¸­ã€‚它具有å¥å£®å’Œæˆç†Ÿçš„æ•°æ®åº“的所有特点。虽然Neo4j是一个新兴的数æ®åº“,但它已在具有超过1亿节点ã€å…³ç³»å’Œå±žæ€§çš„产å“中得到了应用,充分体现了其高性能ã€é«˜å¯é æ€§çš„特点。 -在本系统中,知识图谱的有关信æ¯è¢«å­˜å‚¨åœ¨Neo4j中,由于知识图谱本身图的特性,这充分利用了Neo4j作为图数æ®åº“的特点,å¯ä»¥æ供良好的性能支æŒã€‚ +在本系统中,最终需存储的图结点有182011个,需存储的边有1241995æ¡ã€‚如果将它们存储在传统的关系型数æ®åº“中,会因大é‡çš„连接查询导致æžå¤§çš„性能开销,表现为查询耗时久。Neo4j对图数æ®å¤„ç†åšäº†ä¼˜åŒ–,因此查询等æ“作å¯ä»¥åœ¨è¾ƒçŸ­çš„时间内完æˆï¼Œæ•…本系统将知识图谱数æ®å­˜å‚¨åœ¨Neo4j中而ä¸æ˜¯å…³ç³»åž‹æ•°æ®åº“中。 + \subsection{åŽç«¯æŠ€æœ¯} 本系统使用Flask框架作为网站åŽç«¯æ¡†æž¶ã€‚Flask是一个Python编写的轻é‡çº§å¾®æ¡†æž¶ã€‚它具有轻é‡ã€ä¾¿æ·ã€å¯æ‰©å±•ç­‰ç‰¹ç‚¹ã€‚系统使用Flask框架充分利用了其便æ·ã€å¯æ‰©å±•ä»¥åŠå¼€å‘便æ·çš„特点,与本系统è¦æ±‚相符。 @@ -176,7 +177,7 @@ Neo4j是一个具有高性能的图数æ®åº“,它将结构化的数æ®ä¿¡æ¯å‚¨ \label{ch:offline-recommendation} \section{涟漪网络} \subsection{架构} -涟漪网络的总体架构如图~\ref{fig:ripplenet-framework}所示,图上方的知识图谱中展示了由用户交互产生的涟漪。涟漪网络以一个用户$u$和一个电影$v$作为输入,并输出用户$u$与电影$v$之间产生交互的概率。对输入用户$u$而言,其历å²äº¤äº’记录$V_u$是知识图谱中的ç§å­é›†ï¼Œè€ŒåŽæ²¿ç€çŸ¥è¯†å›¾è°±ä¸­çš„关系边形æˆå¤šä¸ªæ¶Ÿæ¼ªé›†$S_u^{k}\ (k=1, 2, \dots, H)$。第k个涟漪集是ç§å­é›†$V_u$ç»è¿‡$k$跳得到的知识三元组。然åŽè¿­ä»£åœ°åˆ©ç”¨è¿™äº›æ¶Ÿæ¼ªé›†ä¸Žç”µå½±$v$的嵌入表示(黄色的å—)计算出用户$u$对电影$v$çš„çš„å“应(绿色的å—),最åŽç»“åˆå¾—到用户的最终嵌入表示(ç°è‰²çš„å—)。最终,利用用户$u$与电影$v$的嵌入表示计算出用户$u$对电影$v$感兴趣的预测概率$y_{uv}$。 +涟漪网络的总体架构如图\ref{fig:ripplenet-framework}所示,图上方的知识图谱中展示了由用户交互产生的涟漪。涟漪网络以一个用户$u$和一个电影$v$作为输入,并输出用户$u$与电影$v$之间产生交互的概率。对输入用户$u$而言,其历å²äº¤äº’记录$V_u$是知识图谱中的ç§å­é›†ï¼Œè€ŒåŽæ²¿ç€çŸ¥è¯†å›¾è°±ä¸­çš„关系边形æˆå¤šä¸ªæ¶Ÿæ¼ªé›†$S_u^{k}\ (k=1, 2, \dots, H)$。第k个涟漪集是ç§å­é›†$V_u$ç»è¿‡$k$跳得到的知识三元组。然åŽè¿­ä»£åœ°åˆ©ç”¨è¿™äº›æ¶Ÿæ¼ªé›†ä¸Žç”µå½±$v$的嵌入表示(黄色的å—)计算出用户$u$对电影$v$çš„çš„å“应(绿色的å—),最åŽç»“åˆå¾—到用户的最终嵌入表示(ç°è‰²çš„å—)。最终,利用用户$u$与电影$v$的嵌入表示计算出用户$u$对电影$v$感兴趣的预测概率$y_{uv}$。 \begin{figure} \includegraphics[width=\textwidth]{ripplenet-framework} \bicaption{涟漪网络的总体架构}{The overall framework of the Ripple Network}\label{fig:ripplenet-framework} @@ -186,7 +187,7 @@ Neo4j是一个具有高性能的图数æ®åº“,它将结构化的数æ®ä¿¡æ¯å‚¨ \includegraphics[width=\textwidth]{illustration-of-ripple-sets} \bicaption{电影知识图谱中由“阿甘正传â€æ¿€å‘的涟漪集}{Sets of ripples of “Forest Gump†in Knowledge Graph of movies}\label{fig:illustration-of-ripple-sets} \end{figure} -知识图谱常常å«æœ‰ä¸°å¯Œçš„事实信æ¯ä¸Žå®žä½“é—´çš„è”系。比如,图~\ref{fig:illustration-of-ripple-sets}(图中ä¸åŒé¢œè‰²çš„圆圈表示ä¸åŒè·³æ•°çš„涟漪集,越浅的è“色代表ç§å­é›†ä¸Žè¯¥åŒºåŸŸå†…实体的关è”程度越低)中电影“阿甘正传â€ä¸Žâ€œç½—伯特·泽米å‰æ–¯â€ç›¸è¿žï¼Œå®ƒä»¬ä¹‹é—´çš„è”系为“罗伯特·泽米å‰æ–¯â€æ˜¯ç”µå½±â€œé˜¿ç”˜æ­£ä¼ â€çš„导演。而“回到未æ¥â€ä¹Ÿä¸Žâ€œç½—伯特·泽米å‰æ–¯â€ç›¸è¿žã€‚因此,如果一个用户与电影“阿甘正传â€äº¤äº’过,则他很有å¯èƒ½ä¹Ÿå¯¹â€œå›žåˆ°æœªæ¥â€æ„Ÿå…´è¶£ã€‚为了æ述用户在知识图谱中分层次的潜在å好集,递归定义用户$u$çš„$k$跳相关实体如下: +知识图谱常常å«æœ‰ä¸°å¯Œçš„事实信æ¯ä¸Žå®žä½“é—´çš„è”系。比如,图\ref{fig:illustration-of-ripple-sets}(图中ä¸åŒé¢œè‰²çš„圆圈表示ä¸åŒè·³æ•°çš„涟漪集,越浅的è“色代表ç§å­é›†ä¸Žè¯¥åŒºåŸŸå†…实体的关è”程度越低)中电影“阿甘正传â€ä¸Žâ€œç½—伯特·泽米å‰æ–¯â€ç›¸è¿žï¼Œå®ƒä»¬ä¹‹é—´çš„è”系为“罗伯特·泽米å‰æ–¯â€æ˜¯ç”µå½±â€œé˜¿ç”˜æ­£ä¼ â€çš„导演。而“回到未æ¥â€ä¹Ÿä¸Žâ€œç½—伯特·泽米å‰æ–¯â€ç›¸è¿žã€‚因此,如果一个用户与电影“阿甘正传â€äº¤äº’过,则他很有å¯èƒ½ä¹Ÿå¯¹â€œå›žåˆ°æœªæ¥â€æ„Ÿå…´è¶£ã€‚为了æ述用户在知识图谱中分层次的潜在å好集,递归定义用户$u$çš„$k$跳相关实体如下: \textbf{定义1(相关实体集) } 给定交互矩阵$\Upsilon$与知识图谱$G$,则用户$u$çš„$k$跳相关实体集的定义为å¼\eqref{relevant-entities}。 @@ -204,7 +205,7 @@ Neo4j是一个具有高性能的图数æ®åº“,它将结构化的数æ®ä¿¡æ¯å‚¨ S_u^k = \{(h, r, t)|(h, r, t)\in G \text{且} h\in E^{k-1}_u\}, k = 1, 2, \dots, H\label{ripple-set} \end{equation} -“涟漪â€è¿™ä¸ªè¯æœ‰ä¸¤é‡æ„æ€ï¼šï¼ˆ1)对由多个雨点产生的真实涟漪的模拟,用户对电影的潜在兴趣集在知识图谱中由近åŠè¿œåœ°ä¼ é€’。这一过程如图~\ref{fig:illustration-of-ripple-sets}所示。(2)用户的潜在兴趣éšç€çŸ¥è¯†å›¾è°±ä¸­ä¼ é€’的跳数$k$的增大é€æ¸é€’å‡ã€‚图~\ref{fig:illustration-of-ripple-sets}中è“色的å˜æµ…显示了潜在兴趣递å‡çš„过程。 +“涟漪â€è¿™ä¸ªè¯æœ‰ä¸¤é‡æ„æ€ï¼šï¼ˆ1)对由多个雨点产生的真实涟漪的模拟,用户对电影的潜在兴趣集在知识图谱中由近åŠè¿œåœ°ä¼ é€’。这一过程如图\ref{fig:illustration-of-ripple-sets}所示。(2)用户的潜在兴趣éšç€çŸ¥è¯†å›¾è°±ä¸­ä¼ é€’的跳数$k$的增大é€æ¸é€’å‡ã€‚图\ref{fig:illustration-of-ripple-sets}中è“色的å˜æµ…显示了潜在兴趣递å‡çš„过程。 一个å¯èƒ½å‡ºçŽ°çš„问题是在跳数$k$增加的过程中涟漪集的大å°å¯èƒ½è¿‡å¤§ã€‚为了解决这个问题,注æ„到: @@ -219,7 +220,7 @@ Neo4j是一个具有高性能的图数æ®åº“,它将结构化的数æ®ä¿¡æ¯å‚¨ \label{sec:osum} 传统的ååŒè¿‡æ»¤ç®—法是通过学习用户与物å“间的潜在è”ç³»æ¥å®ŒæˆæŽ¨è,而在涟漪网络算法中,这一过程是通过å好扩散完æˆçš„:对æ¯ä¸ªç”¨æˆ·ï¼Œæ¶Ÿæ¼ªç½‘络将他的过往兴趣视为知识图谱中的ç§å­é›†ï¼Œç„¶åŽæ²¿çŸ¥è¯†å›¾è°±ä¸­çš„路径ä¸æ–­åœ°æ‹“展用户的潜在兴趣集,进而得到按等级划分的关于候选物å“的潜在兴趣集。我们利用现实生活中的由雨滴产生的涟漪在水é¢ä¸Šæ‰©æ•£æ¥æ¨¡æ‹Ÿå好扩散的过程,其中多个“涟漪â€é‡å å½¢æˆåŸºäºŽçŸ¥è¯†å›¾è°±çš„用户å好分布。 -如图~\ref{fig:ripplenet-framework},æ¯éƒ¨ç”µå½±éƒ½æœ‰ä¸€ä¸ªåµŒå…¥è¡¨ç¤º$v$,$v\in \mathbb{R}^{d}$,其中$\mathbb{R}$是实数集,$d$是嵌入表示å‘é‡çš„维数。给定电影的嵌入表示$v$以åŠç”¨æˆ·$1$跳涟漪集$S_u^{1}$,å¯ä»¥åˆ©ç”¨ç”µå½±$v$ã€$S_u^{1}$中的三元组中头节点$head_i$以åŠè¯¥ä¸‰å…ƒç»„中的关系$r_i$æ¥è®¡ç®—出电影$v$和实体$head_i$之间的相关度,如å¼\eqref{eq:item-entity-relevance}所示。 +如图\ref{fig:ripplenet-framework},æ¯éƒ¨ç”µå½±éƒ½æœ‰ä¸€ä¸ªåµŒå…¥è¡¨ç¤º$v$,$v\in \mathbb{R}^{d}$,其中$\mathbb{R}$是实数集,$d$是嵌入表示å‘é‡çš„维数。给定电影的嵌入表示$v$以åŠç”¨æˆ·$1$跳涟漪集$S_u^{1}$,å¯ä»¥åˆ©ç”¨ç”µå½±$v$ã€$S_u^{1}$中的三元组中头节点$head_i$以åŠè¯¥ä¸‰å…ƒç»„中的关系$r_i$æ¥è®¡ç®—出电影$v$和实体$head_i$之间的相关度,如å¼\eqref{eq:item-entity-relevance}所示。 \begin{equation} p_i=softmax(v^TR_ih_i)=\frac{exp(v^TR_ih_i)}{\sum_{(h, r, t)\in S_u^1} exp(v^TRh)}\label{eq:item-entity-relevance} @@ -292,9 +293,9 @@ Neo4j是一个具有高性能的图数æ®åº“,它将结构化的数æ®ä¿¡æ¯å‚¨ 直接求解上å¼æ¥å¾—到å‚æ•°$\Gamma$是ä¸å¯èƒ½çš„,因此å¯ä»¥ä½¿ç”¨éšæœºæ¢¯åº¦ä¸‹é™ç®—法递归地优化æŸå¤±å‡½æ•°æ¥æ±‚解模型å‚数,而åŽå†è®¡ç®—å‚æ•°$\Gamma$çš„æŸå¤±å‡½æ•°çš„梯度,并根æ®é‡‡æ ·å¾—到的一å°æ‰¹æ•°æ®åå‘传递,然åŽæ›´æ–°å‚数并最终得到å‚æ•°$\Gamma$。 \section{分æž} \subsection{å¯è§£é‡Šæ€§} -å¯è§£é‡Šçš„推è系统旨在é˜é‡Šä¸ºä»€ä¹ˆç”¨æˆ·ä¼šå¯¹ä¸€ä»¶ç‰©å“感兴趣,这帮助æå‡ç”¨æˆ·å¯¹æŽ¨è结果的满æ„度以åŠå¯¹æŽ¨è系统的信任。对推è结果的解释通常基于标签ã€è¯­ä¹‰åˆ†æžç­‰ã€‚因为涟漪网络探索用户基于知识图谱的兴趣,因此它æ供了一ç§åŸºäºŽçŸ¥è¯†å›¾è°±ä¸­çš„关系路径æ¥é˜è¿°æŽ¨è结果的全新方å¼ã€‚比如,在图~\ref{fig:illustration-of-ripple-sets}中,当用户对“幸ç¦ç»ˆç‚¹ç«™â€æ„Ÿå…´è¶£ï¼Œåˆ™è¯¥ç”¨æˆ·ä¹Ÿå¯èƒ½å¯¹â€œè’岛余生â€æ„Ÿå…´è¶£ã€‚因为在知识图谱中,“汤姆·汉克斯â€ä¸Žâ€œå¹¸ç¦ç»ˆç‚¹ç«™â€ç›¸è¿žï¼Œå…³ç³»æ˜¯æ¼”员,而“汤姆·汉克斯â€ä¸Žâ€œè’岛余生â€ä¹Ÿç›¸è¿žï¼Œå…³ç³»ä¹Ÿæ˜¯æ¼”员,æ¢å¥è¯è¯´ï¼Œâ€œè’岛余生â€ä¸Žâ€œå¹¸ç¦ç»ˆç‚¹ç«™â€æœ‰ç›¸åŒçš„演员。这便解释了用户对“幸ç¦ç»ˆç‚¹ç«™â€å’Œâ€œè’岛余生â€åŒæ—¶æ„Ÿå…´è¶£çš„原因。涟漪网络算法通过在知识图谱中寻找与用户交互过的电影(ç§å­é›†ï¼‰ç›¸è¿žçš„物å“,并ä¸æ–­æ‰©æ•£ï¼Œæœ€ç»ˆç¡®ä¿æŽ¨è结果具有较高的准确性。 +å¯è§£é‡Šçš„推è系统旨在é˜é‡Šä¸ºä»€ä¹ˆç”¨æˆ·ä¼šå¯¹ä¸€ä»¶ç‰©å“感兴趣,这帮助æå‡ç”¨æˆ·å¯¹æŽ¨è结果的满æ„度以åŠå¯¹æŽ¨è系统的信任。对推è结果的解释通常基于标签ã€è¯­ä¹‰åˆ†æžç­‰ã€‚因为涟漪网络探索用户基于知识图谱的兴趣,因此它æ供了一ç§åŸºäºŽçŸ¥è¯†å›¾è°±ä¸­çš„关系路径æ¥é˜è¿°æŽ¨è结果的全新方å¼ã€‚比如,在图\ref{fig:illustration-of-ripple-sets}中,当用户对“幸ç¦ç»ˆç‚¹ç«™â€æ„Ÿå…´è¶£ï¼Œåˆ™è¯¥ç”¨æˆ·ä¹Ÿå¯èƒ½å¯¹â€œè’岛余生â€æ„Ÿå…´è¶£ã€‚因为在知识图谱中,“汤姆·汉克斯â€ä¸Žâ€œå¹¸ç¦ç»ˆç‚¹ç«™â€ç›¸è¿žï¼Œå…³ç³»æ˜¯æ¼”员,而“汤姆·汉克斯â€ä¸Žâ€œè’岛余生â€ä¹Ÿç›¸è¿žï¼Œå…³ç³»ä¹Ÿæ˜¯æ¼”员,æ¢å¥è¯è¯´ï¼Œâ€œè’岛余生â€ä¸Žâ€œå¹¸ç¦ç»ˆç‚¹ç«™â€æœ‰ç›¸åŒçš„演员。这便解释了用户对“幸ç¦ç»ˆç‚¹ç«™â€å’Œâ€œè’岛余生â€åŒæ—¶æ„Ÿå…´è¶£çš„原因。涟漪网络算法通过在知识图谱中寻找与用户交互过的电影(ç§å­é›†ï¼‰ç›¸è¿žçš„物å“,并ä¸æ–­æ‰©æ•£ï¼Œæœ€ç»ˆç¡®ä¿æŽ¨è结果具有较高的准确性。 \subsection{涟漪é‡å } -在涟漪网络中,一个å¯èƒ½çš„问题是涟漪集中的电影éžå¸¸å¤šï¼Œä»Žè€Œåœ¨å好传递的过程中ä¸å¯é¿å…地导致用户的真实潜在å好信æ¯è¢«ç¨€é‡Šã€‚然而,用户点击记录中ä¸åŒçš„电影常常高度é‡å ï¼ˆä»Žç§å­é›†å‡ºå‘到达一部电影常常有ä¸æ­¢ä¸€æ¡è·¯å¾„),这在很大程度上é¿å…了真实潜在å好信æ¯è¢«ç¨€é‡Šçš„问题。比如,在图~\ref{fig:illustration-of-ripple-sets}中,如果一个用户喜欢“阿甘正传â€ï¼Œåˆ™ä»–也å¯èƒ½å–œæ¬¢â€œè’岛余生â€ã€‚在该知识图谱中,从“阿甘正传â€åˆ°â€œè’岛余生â€æœ‰ä¸¤æ¡è·¯å¾„:“阿甘正传-U.S.-è’岛余生â€ä¸Žâ€œé˜¿ç”˜æ­£ä¼ -汤姆·汉克斯-è’岛余生â€ï¼Œè¿™æ­£æ˜¯æ¶Ÿæ¼ªé‡å çš„表现。 +在涟漪网络中,一个å¯èƒ½çš„问题是涟漪集中的电影éžå¸¸å¤šï¼Œä»Žè€Œåœ¨å好传递的过程中ä¸å¯é¿å…地导致用户的真实潜在å好信æ¯è¢«ç¨€é‡Šã€‚然而,用户点击记录中ä¸åŒçš„电影常常高度é‡å ï¼ˆä»Žç§å­é›†å‡ºå‘到达一部电影常常有ä¸æ­¢ä¸€æ¡è·¯å¾„),这在很大程度上é¿å…了真实潜在å好信æ¯è¢«ç¨€é‡Šçš„问题。比如,在图\ref{fig:illustration-of-ripple-sets}中,如果一个用户喜欢“阿甘正传â€ï¼Œåˆ™ä»–也å¯èƒ½å–œæ¬¢â€œè’岛余生â€ã€‚在该知识图谱中,从“阿甘正传â€åˆ°â€œè’岛余生â€æœ‰ä¸¤æ¡è·¯å¾„:“阿甘正传-U.S.-è’岛余生â€ä¸Žâ€œé˜¿ç”˜æ­£ä¼ -汤姆·汉克斯-è’岛余生â€ï¼Œè¿™æ­£æ˜¯æ¶Ÿæ¼ªé‡å çš„表现。 \section{测试} \subsection{æ•°æ®é›†} 本测试使用“MovieLens 1M Datasetâ€æ•°æ®é›†ã€‚该数æ®é›†ç”±ç”µå½±ä¿¡æ¯ã€ç”¨æˆ·ä¿¡æ¯ä»¥åŠç”¨æˆ·å¯¹ç”µå½±çš„评分三部分组æˆã€‚其中,å«æœ‰ç”µå½±æ•°æ®3883æ¡ã€ç”¨æˆ·æ•°æ®6040æ¡ä»¥åŠ1000209æ¡ç”¨æˆ·å¯¹ç”µå½±çš„评分数æ®ã€‚因该数æ®é›†æ•°æ®é‡é€‚中,数æ®å‡†ç¡®å¯é ï¼Œå› æ­¤åœ¨æŽ¨è系统的性能测试中被广泛使用。 @@ -305,7 +306,7 @@ Neo4j是一个具有高性能的图数æ®åº“,它将结构化的数æ®ä¿¡æ¯å‚¨ DKN\cite{wang2018dkn}是由微软团队在WWW2018会议上å‘表的。它是一个主è¦é’ˆå¯¹æ–°é—»ä»»åŠ¡æ出的框架,知识图谱用于辅助计算新闻标题的嵌入表示。DKNæ出对新闻标题内æ¯ä¸€ä¸ªå…³é”®å®žä½“,在知识图谱内找到其实体嵌入和上下文嵌入。 -CKE\cite{zhang2016collaborative}是微软在KDD2016å¹´å‘表的,其模型结构在原有系统过滤得到 $U$,$V$å‘é‡çš„基础上,将物å“的嵌入与其他æè¿°ä¿¡æ¯ç›¸ç»“åˆï¼Œè¿™äº›ä¿¡æ¯ä¸»è¦æœ‰: +CKE\cite{zhang2016collaborative}是微软在KDD2016å¹´å‘表的,其模型结构在原有系统过滤得到$U$,$V$å‘é‡çš„基础上,将物å“的嵌入与其他æè¿°ä¿¡æ¯ç›¸ç»“åˆï¼Œè¿™äº›ä¿¡æ¯ä¸»è¦æœ‰: 采用TransR算法计算知识图谱嵌入表示,知识图谱内æ¯ä¸ªå®žä½“嵌入表示被æå–为物å“的结构化å‘é‡ä¿¡æ¯ã€‚ 采用SDAE模型得到物å“æ述性文本的文本性嵌入表示。 采用SCAE模型得到物å“相关图åƒçš„视觉嵌入表示。 @@ -320,7 +321,7 @@ Wide\&Deep\cite{cheng2016wide}是一个结åˆçº¿æ€§è·¯å¾„的推è模型。类 \subsection{测试步骤} 在涟漪网络中,设置跳数$H=2$。根æ®å®žéªŒç»“果,较大的跳数几乎无法æ高性能å´ä¼šé€ æˆè¾ƒå¤§çš„计算开销。我们将数æ®åˆ’分为训练集ã€è¯„估集与测试集,按照6:2:2的比例进行分é…。实验进行5次,计算准确度以åŠAUC然åŽå–å¹³å‡å€¼ã€‚ \subsection{结果} -测试结果如表~\ref{tab:acc-auc}中所示,总体上涟漪网络算法的性能最佳,其次是Wide\&Deep算法,说明他们å¯ä»¥å……分利用知识图谱中的有效信æ¯æ¥è¾…助推è算法。而表现最差的是PER算法,这å¯èƒ½æ˜¯å› ä¸ºæ‰‹å·¥å®šä¹‰çš„元路径在电影推èæ–¹é¢æ•ˆæžœè¾ƒå·®ã€‚ +测试结果如表\ref{tab:acc-auc}中所示,总体上涟漪网络算法的性能最佳,其次是Wide\&Deep算法,说明他们å¯ä»¥å……分利用知识图谱中的有效信æ¯æ¥è¾…助推è算法。而表现最差的是PER算法,这å¯èƒ½æ˜¯å› ä¸ºæ‰‹å·¥å®šä¹‰çš„元路径在电影推èæ–¹é¢æ•ˆæžœè¾ƒå·®ã€‚ \begin{table} \bicaption{在兴趣预测计算中的AUC和准确度}{AUC and ACC in interest prediction}\label{tab:acc-auc} \begin{tabular}{lcl} @@ -404,14 +405,14 @@ Wide\&Deep\cite{cheng2016wide}是一个结åˆçº¿æ€§è·¯å¾„的推è模型。类 } \end{verbatim} -Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“æž„å¯è¡¨ç¤ºä¸ºï¼š +Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,å«æœ‰182011个结点ã€1241995æ¡è¾¹ï¼Œå…¶æ•°æ®ç»“æž„å¯è¡¨ç¤ºä¸ºï¼š \begin{verbatim} - node: actor | country | director | film | genre | language - | person_or_entity_appearing_in_film | rating | star + node: actor | country | director | film | genre | language + | person_or_entity_appearing_in_film | rating | star | writer relationship: actor.film | director.film | film.country - film.director | film.genre | film.language | film.rating - film.star | film.writer | genre.film + | film.director | film.genre | film.language | film.rating + | film.star | film.writer | genre.film | person_or_entity_appearing_in_film.film | writer.film edge = (node) - [relationship] -> (node) \end{verbatim} @@ -420,9 +421,9 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \includegraphics{use-case} \bicaption{系统功能用例图}{Use case diagram for the system }\label{fig:use-case} \end{figure} -本系统用户角色分为未登录用户ã€æ™®é€šç”¨æˆ·ä¸Žç®¡ç†å‘˜ç”¨æˆ·ï¼Œå…¶ç”¨ä¾‹è¯´æ˜Žå¦‚图~\ref{fig:use-case}。 +本系统用户角色分为未登录用户ã€æ™®é€šç”¨æˆ·ä¸Žç®¡ç†å‘˜ç”¨æˆ·ï¼Œå…¶ç”¨ä¾‹è¯´æ˜Žå¦‚图\ref{fig:use-case}。 \subsection{系统导航} -本系统使用浮动侧边æ ä½œä¸ºå¯¼èˆªæ–¹å¼ï¼Œå¦‚图~\ref{fig:admin-navigation}。点击侧导航æ å³ä¸‹è§’的固定的按钮å¯ä»¥å°†æµ®åŠ¨ä¾§è¾¹æ è®¾ä¸ºå›ºå®šï¼Œå†æ¬¡ç‚¹å‡»åŽå°†å–消固定。 +本系统使用浮动侧边æ ä½œä¸ºå¯¼èˆªæ–¹å¼ï¼Œå¦‚图\ref{fig:admin-navigation}。点击侧导航æ å³ä¸‹è§’的固定的按钮å¯ä»¥å°†æµ®åŠ¨ä¾§è¾¹æ è®¾ä¸ºå›ºå®šï¼Œå†æ¬¡ç‚¹å‡»åŽå°†å–消固定。 \begin{figure} \fbox{\includegraphics[width=.94\textwidth]{admin-navigation}} \bicaption{系统侧导航æ ï¼ˆç®¡ç†å‘˜ï¼‰}{Side navigation panel of the system (for administrators)}\label{fig:admin-navigation} @@ -433,7 +434,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \noindent (1)接收éšæœºçš„电影推è -未登录用户首页éšæœºæ˜¾ç¤º50部电影,如图~\ref{fig:anonymous-index}。 +未登录用户首页éšæœºæ˜¾ç¤º50部电影,如图\ref{fig:anonymous-index}。 \begin{figure} \fbox{\includegraphics[width=.94\textwidth]{anonymous-index}} \bicaption{未登录用户首页}{Index page for anonymous user }\label{fig:anonymous-index} @@ -441,7 +442,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \noindent (2)按分类查看电影 -未登录用户å¯ä»¥æ ¹æ®ç”µå½±çš„分类æ¥æŸ¥çœ‹ç”µå½±ï¼Œå¦‚图~\ref{fig:anonymous-category}。 +未登录用户å¯ä»¥æ ¹æ®ç”µå½±çš„分类æ¥æŸ¥çœ‹ç”µå½±ï¼Œå¦‚图\ref{fig:anonymous-category}。 \begin{figure} \fbox{\includegraphics[width=.94\textwidth]{anonymous-category}} \bicaption{未登录用户分类页é¢}{Category page for anonymous user }\label{fig:anonymous-category} @@ -449,7 +450,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \noindent (3)查看电影详情 -未登录用户å¯ä»¥æŸ¥çœ‹ç”µå½±è¯¦æƒ…,如图~\ref{fig:anonymous-details}。点击页é¢ä¸Šçš„“添加至心愿å•â€å’Œâ€œè´­ä¹°â€ä¼šè·³è½¬è‡³ç™»å½•ç•Œé¢ã€‚ +未登录用户å¯ä»¥æŸ¥çœ‹ç”µå½±è¯¦æƒ…,如图\ref{fig:anonymous-details}。点击页é¢ä¸Šçš„“添加至心愿å•â€å’Œâ€œè´­ä¹°â€ä¼šè·³è½¬è‡³ç™»å½•ç•Œé¢ã€‚ \begin{figure} \fbox{\includegraphics[height=.7\textheight]{anonymous-details}} \bicaption{未登录用户电影详情页é¢}{Movie details page for anonymous user }\label{fig:anonymous-details} @@ -457,7 +458,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \noindent (4)æœç´¢ç”µå½± -未登录用户å¯ä»¥åœ¨åº”用æ å³éƒ¨çš„æœç´¢æ¡†æœç´¢ç”µå½±ï¼Œå¦‚图~\ref{fig:anonymous-search}。本系统支æŒæ¨¡ç³Šæœç´¢ï¼Œä¸Žæ­¤åŒæ—¶ï¼Œéšç€ç”¨æˆ·æœç´¢å†…容的ä¸æ–­è¾“入,系统会在æœç´¢æ¡†ä¸‹æ–¹æ˜¾ç¤ºå€™é€‰çš„匹é…è¯æ¡ï¼Œæ–¹ä¾¿ç”¨æˆ·ç›´æŽ¥ç‚¹å‡»æŸ¥çœ‹ï¼Œæ­¤å¤–,用户也能通过回车跳转至完整的æœç´¢ç»“果页é¢ã€‚ +未登录用户å¯ä»¥åœ¨åº”用æ å³éƒ¨çš„æœç´¢æ¡†æœç´¢ç”µå½±ï¼Œå¦‚图\ref{fig:anonymous-search}。本系统支æŒæ¨¡ç³Šæœç´¢ï¼Œä¸Žæ­¤åŒæ—¶ï¼Œéšç€ç”¨æˆ·æœç´¢å†…容的ä¸æ–­è¾“入,系统会在æœç´¢æ¡†ä¸‹æ–¹æ˜¾ç¤ºå€™é€‰çš„匹é…è¯æ¡ï¼Œæ–¹ä¾¿ç”¨æˆ·ç›´æŽ¥ç‚¹å‡»æŸ¥çœ‹ï¼Œæ­¤å¤–,用户也能通过回车跳转至完整的æœç´¢ç»“果页é¢ã€‚ \begin{figure} \fbox{\includegraphics[width=.94\textwidth]{anonymous-search}} \bicaption{未登录用户电影æœç´¢ç•Œé¢ï¼ˆä¾§å¯¼èˆªæ å·²å›ºå®šï¼‰}{Movie search page for anonymous user (side navigation panel pinned)}\label{fig:anonymous-search} @@ -483,7 +484,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \noindent (3)评分 -已登录用户能在电影详情页é¢ç»™ç”µå½±è¯„分。电影评分功能ä½äºŽç”µå½±è¯¦æƒ…页é¢ï¼Œå¦‚图~\ref{fig:general-details}所示。 +已登录用户能在电影详情页é¢ç»™ç”µå½±è¯„分。电影评分功能ä½äºŽç”µå½±è¯¦æƒ…页é¢ï¼Œå¦‚图\ref{fig:general-details}所示。 \begin{figure} \fbox{\includegraphics[width=.94\textwidth]{general-details}} @@ -500,7 +501,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \subsection{管ç†å‘˜ç”¨æˆ·} \noindent (1)管ç†ç”µå½±ä¿¡æ¯ -管ç†å‘˜èƒ½å¢žåŠ ç”µå½±ã€åˆ é™¤ç”µå½±ä¸Žä¿®æ”¹ç”µå½±ä¿¡æ¯ï¼Œå¦‚图~\ref{fig:admin-movie}所示。 +管ç†å‘˜èƒ½å¢žåŠ ç”µå½±ã€åˆ é™¤ç”µå½±ä¸Žä¿®æ”¹ç”µå½±ä¿¡æ¯ï¼Œå¦‚图\ref{fig:admin-movie}所示。 \begin{figure} \fbox{\includegraphics[width=.94\textwidth]{admin-movie}} \bicaption{管ç†ç”µå½±é¡µé¢}{Movie administration page}\label{fig:admin-movie} @@ -512,20 +513,21 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \noindent (3)管ç†çŸ¥è¯†å›¾è°± -管ç†å‘˜èƒ½å¢žåŠ ã€åˆ é™¤ã€ä¿®æ”¹ä»¥åŠæŸ¥æ‰¾çŸ¥è¯†å›¾è°±ä¸­çš„结点与关系,如图~\ref{fig:admin-knowledge-graph}所示。该界é¢ä¸­çš„结点åŠå…³ç³»å¯ä»¥ä»¥åŠ¨æ€çš„æ–¹å¼å‘ˆçŽ°ï¼ŒåŒæ—¶æ”¯æŒä»¥å¡«å†™é€‰é¡¹çš„æ–¹å¼ä»¥åŠä½¿ç”¨Cypher语å¥çš„æ–¹å¼æ¥å¢žåŠ ã€åˆ é™¤ã€ä¿®æ”¹ä»¥åŠæŸ¥æ‰¾çŸ¥è¯†å›¾è°±ä¸­çš„结点与关系。当鼠标悬浮于æŸä¸€èŠ‚点或关系之上时,将显示有关这一节点或关系的有关信æ¯ã€‚ +管ç†å‘˜èƒ½å¢žåŠ ã€åˆ é™¤ã€ä¿®æ”¹ä»¥åŠæŸ¥æ‰¾çŸ¥è¯†å›¾è°±ä¸­çš„结点与关系,如图\ref{fig:admin-knowledge-graph}所示。该界é¢ä¸­çš„结点åŠå…³ç³»å¯ä»¥ä»¥åŠ¨æ€çš„æ–¹å¼å‘ˆçŽ°ï¼ŒåŒæ—¶æ”¯æŒä»¥å¡«å†™é€‰é¡¹çš„æ–¹å¼ä»¥åŠä½¿ç”¨Cypher语å¥çš„æ–¹å¼æ¥å¢žåŠ ã€åˆ é™¤ã€ä¿®æ”¹ä»¥åŠæŸ¥æ‰¾çŸ¥è¯†å›¾è°±ä¸­çš„结点与关系。当鼠标悬浮于æŸä¸€èŠ‚点或关系之上时,将显示有关这一节点或关系的有关信æ¯ã€‚ \begin{figure} \fbox{\includegraphics[width=.94\textwidth]{admin-knowledge-graph}} \bicaption{管ç†çŸ¥è¯†å›¾è°±é¡µé¢}{Knowledge graph administration page}\label{fig:admin-knowledge-graph} \end{figure} \section{电影推èæµç¨‹} -本系统的推èæµç¨‹åˆ†ä¸ºç¦»çº¿æŽ¨è与实时推è,如图~\ref{fig:recommendation-procedure}所示。 +本系统的推èæµç¨‹åˆ†ä¸ºç¦»çº¿æŽ¨è与实时推è,如图\ref{fig:recommendation-procedure}所示。 \begin{figure} \includegraphics{recommendation-procedure} \bicaption{电影推èæµç¨‹}{Movie recommendation procedure }\label{fig:recommendation-procedure} \end{figure} -其中,离线推è使用第\ref{ch:offline-recommendation}章中所述的涟漪网络算法,而实时推è机制作为补充,æ述如下: +其中,离线推è使用第\ref{ch:offline-recommendation}章所述的涟漪网络算法,此算法是基于文献\parencite{wang2018ripplenet}实现的。ä¸åŒäºŽæ–‡çŒ®\parencite{wang2018ripplenet}中仅使用用户评分计算用户å好,本推è系统在用户å好的计算过程中还结åˆäº†ç”¨æˆ·æ”¶è—,这在一定程度上缓解了冷å¯åŠ¨é—®é¢˜å¹¶æ”¹è¿›äº†æŽ¨è性能。 +此外,本推è系统还结åˆäº†å®žæ—¶æŽ¨è机制作为补充,æ述如下: (1)离线推èæœåŠ¡å™¨å®šæœŸè¿è¡Œæ¶Ÿæ¼ªç½‘络算法。离线推èæœåŠ¡å™¨ä»ŽMongoDBæ•°æ®åº“æœåŠ¡å™¨èŽ·å–用户信æ¯ä¸Žç”µå½±è¯„分ã€ç”µå½±æ˜¯å¦åŠ å…¥å¿ƒæ„¿å•ç­‰æ•°æ®ä»¥åŠä»ŽNeo4jæ•°æ®åº“æœåŠ¡å™¨èŽ·å–知识图谱数æ®ä¿¡æ¯ã€‚然åŽæ‰§è¡Œæ¶Ÿæ¼ªç½‘络算法。最åŽç¦»çº¿æŽ¨èæœåŠ¡å™¨å°†è®¡ç®—得到的å„用户推è列表存入MongoDBæ•°æ®åº“中,等待用户访问时将该结果推è给用户。 @@ -533,7 +535,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ 上述步骤中,(1)中的离线推è准确度高,但算法è¿ç®—时间长,无法åšåˆ°å³æ—¶å“应用户请求。(2)中的实时推è方法准确度低,但算法è¿ç®—快,å¯ä»¥åšåˆ°å®žæ—¶å“应请求并å³æ—¶å‘出å“应。两者相互补充组æˆäº†æœ¬ç³»ç»Ÿçš„电影推è算法。 \section{系统安全性} -本系统对已登录普通用户与管ç†å‘˜åœ¨å‰åŽç«¯äº¤äº’过程中使用JSON网络令牌(JSON Web Token, JWT)实现授æƒä¸Žè®¤è¯ï¼ˆAuthorization and Authentication),以此ä¿è¯ç³»ç»Ÿçš„安全性,本系统的总体安全性设计如图~\ref{fig:jwt}所示。 +本系统对已登录普通用户与管ç†å‘˜åœ¨å‰åŽç«¯äº¤äº’过程中使用JSON网络令牌(JSON Web Token, JWT)实现授æƒä¸Žè®¤è¯ï¼ˆAuthorization and Authentication),以此ä¿è¯ç³»ç»Ÿçš„安全性,本系统的总体安全性设计如图\ref{fig:jwt}所示。 \begin{figure} \includegraphics{jwt} @@ -555,7 +557,7 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ (1)使用基于Scrapy框架的爬虫从IMDb和豆瓣网上爬å–了3684æ¡ç”µå½±æ•°æ®ã€‚其中,从IMDb爬å–了3494æ¡ç”µå½±æ•°æ®ï¼Œä»Žè±†ç“£ç½‘爬å–了190æ¡ç”µå½±æ•°æ®ï¼ˆç”±äºŽè±†ç“£ç½‘é™åˆ¶äº†æ¯IP访问é‡æ•…爬å–çš„æ•°æ®è¾ƒå°‘)。这些电影数æ®åŒ…括电影å°é¢å›¾ç‰‡ã€ç”µå½±æƒ…节介ç»ã€ç”µå½±é¢„告片图片ã€ç”µå½±æ¼”员列表ã€å¯¼æ¼”以åŠå‰§æœ¬ä½œå®¶ç­‰ä¿¡æ¯ã€‚ -(2)根æ®æ–‡çŒ®\parencite{wang2018ripplenet}实现了基于知识图谱的涟漪网络推è算法,通过使用“MovieLens 1M Datasetâ€æ•°æ®é›†ä»¥åŠä»ŽIMDb和豆瓣网上爬å–的电影数æ®ï¼Œå®žçŽ°äº†åŸºäºŽç”¨æˆ·å¿ƒæ„¿å•å’Œç”¨æˆ·è¯„分并以知识图谱为辅助信æ¯çš„推è算法。并对实现的推è算法进行了试验,计算了其AUC和准确度两个关键的性能指标,将该指标与DKN\cite{wang2018dkn}ã€CKE\cite{zhang2016collaborative}ã€PER\cite{yu2014personalized}ã€SHINE\cite{wang2018shine}ã€LibFM\cite{rendle2012factorization}以åŠWide\&Deep\cite{cheng2016wide}算法的进行了对比。并以此å‘现,涟漪网络算法的性能最优。 +(2)根æ®æ–‡çŒ®\parencite{wang2018ripplenet}实现了基于知识图谱的涟漪网络推è算法,通过使用“MovieLens 1M Datasetâ€æ•°æ®é›†ä»¥åŠä»ŽIMDb和豆瓣网上爬å–的电影数æ®ï¼Œå®žçŽ°äº†åŸºäºŽç”¨æˆ·å¿ƒæ„¿å•å’Œç”¨æˆ·è¯„分并以知识图谱为辅助信æ¯çš„推è算法。ä¸åŒäºŽæ–‡çŒ®\parencite{wang2018ripplenet}中仅使用用户评分计算用户å好,本文在用户å好的计算过程中还结åˆäº†ç”¨æˆ·æ”¶è—,这在一定程度上缓解了冷å¯åŠ¨é—®é¢˜å¹¶æ”¹è¿›äº†æŽ¨è性能。并对实现的推è算法进行了实验,计算了其AUC和准确度两个关键的性能指标,将该指标与DKN\cite{wang2018dkn}ã€CKE\cite{zhang2016collaborative}ã€PER\cite{yu2014personalized}ã€SHINE\cite{wang2018shine}ã€LibFM\cite{rendle2012factorization}以åŠWide\&Deep\cite{cheng2016wide}算法的进行了对比。并以此å‘现,涟漪网络算法的性能最优。 (3)基于涟漪网络算法实现了基于知识图谱的电影推è系统。该系统为未登录用户æ供按分类查看电影ã€æŸ¥çœ‹ç”µå½±è¯¦æƒ…的功能;为普通用户æ供电影推èã€æŒ‰åˆ†ç±»æŸ¥çœ‹ç”µå½±ã€æŸ¥çœ‹ç”µå½±è¯¦æƒ…ã€ç”µå½±è¯„分ã€å°†ç”µå½±åŠ å…¥å¿ƒæ„¿å•ä»¥åŠè´­ä¹°ç”µå½±åŠŸèƒ½ï¼›ä¸ºç®¡ç†å‘˜æ供增加ã€åˆ é™¤ã€ä¿®æ”¹ã€æŸ¥æ‰¾ç”µå½±åŠç”¨æˆ·çš„功能。åŒæ—¶ä½¿ç”¨JSON网络令牌ã€HTTPS以åŠå“ˆå¸ŒåŒ–密ç ç­‰æ‰‹æ®µä¿éšœç³»ç»Ÿçš„安全性。 \section{工作展望} @@ -567,6 +569,6 @@ Neo4jæ•°æ®åº“用于存储推è算法使用的知识图谱,其中的数æ®ç»“ \noindent (2)涟漪网络算法有待进一步改进 -涟漪网络算法目å‰ä»…适用于离线推è,而无法用于实时推è,这使它的适用场景å—到了é™åˆ¶ã€‚未æ¥å¯è€ƒè™‘改造该算法,使其能满足实时推è的需求。 +尽管涟漪网络算法相比于传统的推è算法在准确度上有所æå‡ï¼Œä½†æ¶Ÿæ¼ªç½‘络算法目å‰ä»…适用于离线推è,而无法用于实时推è,这使它的适用场景å—到了é™åˆ¶ã€‚未æ¥å¯è€ƒè™‘改造该算法,使其能满足实时推è的需求。 对于以上æåŠçš„问题,未æ¥è¿˜éœ€è¦æ›´æ·±å…¥åœ°å­¦ä¹ æœ‰å…³çŸ¥è¯†å›¾è°±ã€æŽ¨è算法ã€æ·±åº¦å­¦ä¹ çš„有关知识,对系统进行改进,从而使其更完善。 diff --git a/macros/latex/contrib/bjfuthesis/example/cover.pdf b/macros/latex/contrib/bjfuthesis/example/cover.pdf index 6ab70639e4..ad03632921 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/cover.pdf and b/macros/latex/contrib/bjfuthesis/example/cover.pdf differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png b/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png index 9603818183..72deea5c06 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png and b/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png b/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png index 938bb9f6f1..12b2c1a961 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png and b/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png b/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png index 2f03defee7..ef2ef0d66c 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png and b/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png index 0e7e85fb23..947c99499d 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png and b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png index d493e7d33c..59778b77ed 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png and b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png index 51128da916..092a222810 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png and b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png index 003d373cc9..ff5de424a2 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png and b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/figures/general-details.png b/macros/latex/contrib/bjfuthesis/example/figures/general-details.png index e462e58ebb..f099fc18bf 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/figures/general-details.png and b/macros/latex/contrib/bjfuthesis/example/figures/general-details.png differ diff --git a/macros/latex/contrib/bjfuthesis/example/thesis.pdf b/macros/latex/contrib/bjfuthesis/example/thesis.pdf index af8b072dc1..cb1aabbe44 100644 Binary files a/macros/latex/contrib/bjfuthesis/example/thesis.pdf and b/macros/latex/contrib/bjfuthesis/example/thesis.pdf differ diff --git a/macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls b/macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls deleted file mode 100644 index e3c4748c0d..0000000000 --- a/macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls +++ /dev/null @@ -1,53 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesClass{BMSTU-IU8}[2020/06/01 IU8 class] - -\LoadClass{article} - -\DeclareOption{diploma}{ - \def\termsAndDefinitionsLine{Ð’ наÑтоÑщем отчете о выпуÑкной квалификационной работе ÑпециалиÑта - применÑÑŽÑ‚ Ñледующие термины Ñ ÑоответÑтвующими определениÑми:} - \def\abbreviationsLine{Ð’ наÑтоÑщем отчете о выпуÑкной квалификационной работе ÑпециалиÑта - применÑÑŽÑ‚ Ñледующие Ñледующие ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¸ обозначениÑ:} - \def\fillTitle{\fillDiplomaTitle} -} -\DeclareOption{research}{ - \def\termsAndDefinitionsLine{Ð’ наÑтоÑщем отчете о ÐИР - применÑÑŽÑ‚ Ñледующие термины Ñ ÑоответÑтвующими определениÑми:} - \def\abbreviationsLine{Ð’ наÑтоÑщем отчете о ÐИР - применÑÑŽÑ‚ Ñледующие Ñледующие ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¸ обозначениÑ:} - \def\fillTitle{\fillResearchTitle} -} -\ExecuteOptions{diploma} -\ProcessOptions - -\RequirePackage[T2A]{fontenc} -\RequirePackage[utf8]{inputenc} -\RequirePackage[russian]{babel} -\RequirePackage{hyphsubst} -\RequirePackage{csquotes} - -\RequirePackage{01-IU8-base} -\RequirePackage{02-IU8-construction} -\RequirePackage{03-IU8-numbering} -\RequirePackage{04-IU8-section-numbering} -\RequirePackage{05-IU8-figures} -\RequirePackage{06-IU8-tables} -\RequirePackage{07-IU8-footnotes} -\RequirePackage{08-IU8-formulas} -\RequirePackage{09-IU8-cites} -\RequirePackage{10-IU8-titlepage} -\RequirePackage{11-IU8-performers} -\RequirePackage{12-IU8-abstract} -\RequirePackage{13-IU8-contents} -\RequirePackage{14-IU8-terms-and-definitions} -\RequirePackage{15-IU8-list-of-abbreviations} -\RequirePackage{16-IU8-references} -\RequirePackage{17-IU8-appendices} -\RequirePackage{18-IU8-extra} -\RequirePackage{19-IU8-counters} -\RequirePackage{20-IU8-listing} -\RequirePackage{21-IU8-math} -\RequirePackage{22-IU8-algorithms} - -\makeglossaries diff --git a/macros/latex/contrib/bmstu-iu8/LICENSE b/macros/latex/contrib/bmstu-iu8/LICENSE deleted file mode 100644 index b9a8428a7d..0000000000 --- a/macros/latex/contrib/bmstu-iu8/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 CatInCosmicSpace/latex-template repo contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/macros/latex/contrib/bmstu-iu8/README.md b/macros/latex/contrib/bmstu-iu8/README.md index 4fb70940ea..2520f3d40c 100644 --- a/macros/latex/contrib/bmstu-iu8/README.md +++ b/macros/latex/contrib/bmstu-iu8/README.md @@ -1,3 +1,13 @@ # IU8 package -This package consist of class file and style files for writing reports at the IU8 department of IU faculty of BMSTU (Bauman Moscow State Technical University). +This package consist of class file and style files for writing +reports at the IU8 department of IU faculty of BMSTU +(Bauman Moscow State Technical University). + +This class defines all headings, structure elements and other things +in respect of russian standard GOST 7.32-2017. But there are +correctives to be compatible with our local IU8 department +requirements. + +The package and any later version of this package is published under the MIT +license. diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf b/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf new file mode 100644 index 0000000000..05d3aa0669 Binary files /dev/null and b/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf differ diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-example.tex b/macros/latex/contrib/bmstu-iu8/bmstu-example.tex new file mode 100644 index 0000000000..0d2499d7bd --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-example.tex @@ -0,0 +1,55 @@ +\documentclass[diploma]{BMSTU-IU8} + +\usepackage{lipsum} + +\student{И. И. Иванов} +\theme{Создание отчёта \\ по ÐИРС \\ или ВКР} +\group{ИУ8-999} + +\supervisor{П. П. Петров} +\researchConsultant{П. П. Петров} +\designConsultant{П. П. Петров} +\technologicalConsultant{П. П. Петров} +\economicsConsultant{П. П. Петров} +\lawsConsultant{П. П. Петров} +\normController{Т. Е. ЗавадÑкаÑ} + +% \theme{ТеÑÑ‚ \hfill} % Тема Ð´Ð»Ñ ÐИРСа заполнÑетÑÑ Ð¿Ð¾-другому +\studentFullName{Иванов Иван Иванович} +\profile{10У101} +\speciality{10.05.01 <<ÐšÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð½Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑ‚ÑŒ>>} +\specialization{10.05.01\_01 <<МатематичеÑкие методы защиты информации>>} +\supervisorWithDegree{доцент, к.Ñ‚.н. Иванов И. И.} + + +\begin{document} + \maketitle + + \abstract % Структурный Ñлемент: РЕФЕРÐТ + + \lipsum[1-2] + + \tableofcontents % Содержание + \termsanddefenitions % Термины и Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ + \listofabbreviations % Перечень Ñокращений и обозначений + + \introduction + + \lipsum[1-2] + + \section{ИÑÑледовательÑÐºÐ°Ñ Ñ‡Ð°ÑÑ‚ÑŒ} + + \lipsum[1-2] + + \conclusion + + \lipsum[1-2] + + \printbibliography + + \appendix + + \appendixsection{Приложение Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð°} + + \lipsum[1-2] +\end{document} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls new file mode 100644 index 0000000000..63c4d910d9 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls @@ -0,0 +1,54 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{BMSTU-IU8}[2020/06/01 IU8 class] + +\LoadClass{article} + +\DeclareOption{diploma}{ + \def\termsAndDefinitionsLine{Ð’ наÑтоÑщем отчете о выпуÑкной квалификационной работе ÑпециалиÑта + применÑÑŽÑ‚ Ñледующие термины Ñ ÑоответÑтвующими определениÑми:} + \def\abbreviationsLine{Ð’ наÑтоÑщем отчете о выпуÑкной квалификационной работе ÑпециалиÑта + применÑÑŽÑ‚ Ñледующие Ñледующие ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¸ обозначениÑ:} + \def\fillTitle{\fillDiplomaTitle} +} +\DeclareOption{research}{ + \def\termsAndDefinitionsLine{Ð’ наÑтоÑщем отчете о ÐИР + применÑÑŽÑ‚ Ñледующие термины Ñ ÑоответÑтвующими определениÑми:} + \def\abbreviationsLine{Ð’ наÑтоÑщем отчете о ÐИР + применÑÑŽÑ‚ Ñледующие Ñледующие ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¸ обозначениÑ:} + \def\fillTitle{\fillResearchTitle} +} +\ExecuteOptions{diploma} +\ProcessOptions + +\RequirePackage[T2A]{fontenc} +\RequirePackage[utf8]{inputenc} +\RequirePackage[russian]{babel} +\RequirePackage{hyphsubst} + +\RequirePackage{01-IU8-base} +\RequirePackage{02-IU8-construction} +\RequirePackage{03-IU8-numbering} +\RequirePackage{04-IU8-section-numbering} +\RequirePackage{05-IU8-figures} +\RequirePackage{06-IU8-tables} +\RequirePackage{07-IU8-footnotes} +\RequirePackage{08-IU8-formulas} +\RequirePackage{09-IU8-cites} +\RequirePackage{10-IU8-titlepage} +\RequirePackage{11-IU8-performers} +\RequirePackage{12-IU8-abstract} +\RequirePackage{13-IU8-contents} +\RequirePackage{14-IU8-terms-and-definitions} +\RequirePackage{15-IU8-list-of-abbreviations} +\RequirePackage{16-IU8-references} +\RequirePackage{17-IU8-appendices} +\RequirePackage{18-IU8-extra} +\RequirePackage{19-IU8-counters} +\RequirePackage{20-IU8-listing} +\RequirePackage{21-IU8-math} +\RequirePackage{22-IU8-algorithms} + +\RequirePackage{csquotes} + +\makeglossaries diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png new file mode 100644 index 0000000000..469c7d9797 Binary files /dev/null and b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png differ diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty new file mode 100644 index 0000000000..07b54647a3 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty @@ -0,0 +1,41 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{01-IU8-base}[2021/03/21 v1.1 Общие требованиÑ] + +% 6.1.1 Изложение текÑта и оформление отчета выполнÑÑŽÑ‚ в ÑоответÑтвии Ñ +% требованиÑми наÑтоÑщего Ñтандарта. Страницы текÑта отчета о ÐИР и включенные в +% отчет иллюÑтрации и таблицы должны ÑоответÑтвовать формату Ð4 по ГОСТ 9327. +% ДопуÑкаетÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ формата Ð3 при наличии большого количеÑтва таблиц и +% иллюÑтраций данного формата. + +% Отчет о ÐИР должен быть выполнен любым печатным ÑпоÑобом на одной Ñтороне +% лиÑта белой бумаги формата Ð4 через полтора интервала. +\RequirePackage{setspace} +\onehalfspacing + +% Цвет шрифта должен быть черным, размер шрифта - не менее 12 пт. +% Рекомендуемый тип шрифта Ð´Ð»Ñ Ð¾Ñновного текÑта отчета - Times New Roman. +\RequirePackage{anyfontsize} +\RequirePackage[fontsize=14pt]{scrextend} +% Ðо у Times New Roman нет открытой реализации, так что будет Ñтандартный +% Или можете попробовать xelatex: +% \RequirePackage{fontspec} +% \setmainfont{Times New Roman} + +% ТекÑÑ‚ отчета Ñледует печатать, ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ñледующие размеры полей: +% левое - 30 мм, правое - 15 мм, верхнее и нижнее - 20 мм. +\RequirePackage[ + a4paper, + left=30mm, right=10mm, top=20mm, bottom=20mm, + footskip=10mm, % Ð”Ð»Ñ Ñ€Ð°ÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° Ñтраницы на 10 мм выше ÐºÑ€Ð°Ñ Ð»Ð¸Ñта + ignoreall, + % showframe, +]{geometry} +% Ты там пишешь, что правое поле должно быть 15 мм, +% а потом Ñтавишь его в 10 мм. Почему? +% Рпотому что в программе TestVKR проходит только 10 мм, а не 15 мм ¯\_(ツ)_/¯ + +% Ðбзацный отÑтуп должен быть одинаковым по вÑему текÑту отчета и равен 1,25 Ñм. +\setlength{\parindent}{1.25cm} + +\RequirePackage{indentfirst} % ОтÑтуп первой Ñтроки Ð´Ð»Ñ Ð°Ð±Ð·Ð°Ñ†ÐµÐ² diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty new file mode 100644 index 0000000000..a8cb987208 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty @@ -0,0 +1,66 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{02-IU8-construction}[2021/03/21 v1.1 ПоÑтроение отчета] + +% 6.2.1 ÐÐ°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтруктурных Ñлементов отчета: +% "СПИСОК ИСПОЛÐИТЕЛЕЙ", % у Ð½Ð°Ñ Ð½Ðµ иÑпользуетÑÑ +% "РЕФЕРÐТ", % У Ð½Ð°Ñ Ð½Ðµ иÑпользуетÑÑ +% "СОДЕРЖÐÐИЕ", +% "ТЕРМИÐЫ И ОПРЕДЕЛЕÐИЯ", +% "ПЕРЕЧЕÐЬ СОКРÐЩЕÐИЙ И ОБОЗÐÐЧЕÐИЙ", +% "ВВЕДЕÐИЕ", +% "ЗÐКЛЮЧЕÐИЕ", +% "СПИСОК ИСПОЛЬЗОВÐÐÐЫХ ИСТОЧÐИКОВ", +% "ПРИЛОЖЕÐИЕ" +% Ñлужат заголовками Ñтруктурных Ñлементов отчета. + +% Заголовки Ñтруктурных Ñлементов Ñледует раÑполагать в Ñередине Ñтроки без +% точки в конце, пропиÑными буквами, не подчеркиваÑ. Каждый Ñтруктурный Ñлемент +% и каждый раздел оÑновной чаÑти отчета начинают Ñ Ð½Ð¾Ð²Ð¾Ð¹ Ñтраницы. +\RequirePackage{titlesec} +\RequirePackage{titletoc} +\RequirePackage{chngcntr} + +\newcounter{structure} +\renewcommand{\thestructure}{} % Убрать поÑвление Ñчётчика в Ñодержании +\titleclass{\structure}{straight}[\section] +\titleformat{\structure}[hang]{\clearpage\normalfont\bfseries\centering}{}{0em}{} +\titlespacing*{\structure}{0pt}{0pt}{2\baselineskip} +\titlecontents{structure}{}{}{}{} +\renewcommand*\l@structure{\@dottedtocline{0}{0mm}{0em}} + +\newcommand{\structurebreak}{\clearpage} +\newcommand{\sectionbreak}{\clearpage} + +% 6.2.2 ОÑновную чаÑÑ‚ÑŒ отчета Ñледует делить на разделы, подразделы и пункты. +% Пункты при необходимоÑти могут делитьÑÑ Ð½Ð° подпункты. Разделы и подразделы +% отчета должны иметь заголовки. Пункты и подпункты, как правило, заголовков не +% имеют. + +% 6.2.3 Заголовки разделов и подразделов оÑновной чаÑти отчета Ñледует начинать +% Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа и размещать поÑле порÑдкового номера, печатать Ñ +% пропиÑной буквы, полужирным шрифтом, не подчеркивать, без точки в конце. +% Пункты и подпункты могут иметь только порÑдковый номер без заголовка, +% начинающийÑÑ Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа. +\titleformat{\section}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesection}{1em}{} +\titleformat{\subsection}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesubsection}{1em}{} +\titleformat{\subsubsection}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesubsubsection}{1em}{} +\titleformat{\paragraph}[block]{\hspace{\parindent}\normalfont\bfseries}{\theparagraph}{1em}{} +\titleformat{\subparagraph}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesubparagraph}{1em}{} + +\titlespacing*{\section}{0pt}{0pt}{2ex}[2ex] +\titlespacing*{\subsection}{0pt}{2ex}{2ex}[2ex] +\titlespacing*{\subsubsection}{0pt}{2ex}{2ex}[2ex] +\titlespacing*{\paragraph}{0pt}{2ex}{2ex}[2ex] +\titlespacing*{\subparagraph}{0pt}{2ex}{2ex}[2ex] + +% 6.2.4 ЕÑли заголовок включает неÑколько предложений, их разделÑÑŽÑ‚ точками. +% ПереноÑÑ‹ Ñлов в заголовках не допуÑкаютÑÑ. + +\newcommand{\introduction}{ + \structure{ВВЕДЕÐИЕ} +} + +\newcommand{\conclusion}{ + \structure{ЗÐКЛЮЧЕÐИЕ} +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty new file mode 100644 index 0000000000..2cfb8b4f82 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty @@ -0,0 +1,17 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{03-IU8-numbering}[2021/03/21 v1.1 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраниц отчета] + +% 6.3.1 Страницы отчета Ñледует нумеровать арабÑкими цифрами, ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ñквозную +% нумерацию по вÑему текÑту отчета, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. Ðомер Ñтраницы +% проÑтавлÑетÑÑ Ð² центре нижней чаÑти Ñтраницы без точки. ПриложениÑ, которые +% приведены в отчете о ÐИР и имеющие ÑобÑтвенную нумерацию, допуÑкаетÑÑ Ð½Ðµ перенумеровать. +\pagestyle{plain} +\pagenumbering{arabic} + +% 6.3.2 Титульный лиÑÑ‚ включают в общую нумерацию Ñтраниц отчета. Ðомер Ñтраницы +% на титульном лиÑте не проÑтавлÑÑŽÑ‚. + +% 6.3.3 ИллюÑтрации и таблицы, раÑположенные на отдельных лиÑтах, включают в общую +% нумерацию Ñтраниц отчета. ИллюÑтрации и таблицы на лиÑте формата Ð3 учитывают +% как одну Ñтраницу. diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty new file mode 100644 index 0000000000..efd706e2d1 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty @@ -0,0 +1,52 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{04-IU8-section-numbering}[2021/03/21 v1.1 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð², подразделов, пунктов, подпунктов и книг отчета] + +% 6.4.1 Разделы должны иметь порÑдковые номера в пределах вÑего отчета, +% обозначенные арабÑкими цифрами без точки и раÑположенные Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа. +% Подразделы должны иметь нумерацию в пределах каждого раздела. Ðомер подраздела +% ÑоÑтоит из номеров раздела и подраздела, разделенных точкой. +% Ð’ конце номера подраздела точка не ÑтавитÑÑ. Разделы, как и +% подразделы, могут ÑоÑтоÑÑ‚ÑŒ из одного или неÑкольких пунктов. + +% Это наÑтройка по умолчанию, так что её не менÑÑŽ +% Про абзацный отÑтуп учетно в 02-IU8-construction + +% 6.4.2 ЕÑли отчет не имеет подразделов, то Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð² в нем должна +% быть в пределах каждого раздела и номер пункта должен ÑоÑтоÑÑ‚ÑŒ из номеров +% раздела и пункта, разделенных точкой. Ð’ конце номера пункта точка не ÑтавитÑÑ. +% ЕÑли отчет имеет подразделы, то Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð² должна быть в пределах +% подраздела и номер пункта должен ÑоÑтоÑÑ‚ÑŒ +% из номеров раздела, подраздела и пункта, разделенных точками. + +% Это наÑтройка по умолчанию, так что её не менÑÑŽ + +% 6.4.6 Внутри пунктов или подпунктов могут быть приведены перечиÑлениÑ. +% Перед каждым Ñлементом перечиÑÐ»ÐµÐ½Ð¸Ñ Ñледует Ñтавить тире. При необходимоÑти +% ÑÑылки в текÑте отчета на один из Ñлементов перечиÑÐ»ÐµÐ½Ð¸Ñ Ð²Ð¼ÐµÑто тире ÑтавÑÑ‚ +% Ñтрочные буквы руÑÑкого алфавита Ñо Ñкобкой, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð±ÑƒÐºÐ²Ñ‹ "а" (за +% иÑключением букв Ñ‘, з, й, о, ч, ÑŠ, Ñ‹, ÑŒ). ПроÑтые перечиÑÐ»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ +% запÑтой, Ñложные - точкой Ñ Ð·Ð°Ð¿Ñтой. +% При наличии конкретного чиÑла перечиÑлений допуÑкаетÑÑ Ð¿ÐµÑ€ÐµÐ´ каждым Ñлементом +% перечиÑÐ»ÐµÐ½Ð¸Ñ Ñтавить арабÑкие цифры, поÑле которых ÑтавитÑÑ Ñкобка. +\RequirePackage{enumitem} +\AddEnumerateCounter{\Asbuk}{\@Asbuk}{Ð} +\AddEnumerateCounter{\asbuk}{\@asbuk}{а} + +\setlist[enumerate]{ + leftmargin=\parindent+\labelwidth+\labelsep, + labelindent=\parindent, + align=left, + nosep, +} +\setlist[itemize]{ + label=\textendash, + leftmargin=\parindent+\labelwidth+\labelsep, + labelindent=\parindent, + align=left, + nosep, +} +\setlist[enumerate, 1]{label=\asbuk*)} +\setlist[enumerate, 2]{label=\arabic*)} +\setlist[enumerate, 3]{label=\alph*)} +\setlist[enumerate, 4]{label=\roman*)} \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty new file mode 100644 index 0000000000..4875fdec8e --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty @@ -0,0 +1,54 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{05-IU8-figures}[2021/03/21 v1.1 ИллюÑтрации] + +% 6.5.1 ИллюÑтрации (чертежи, графики, Ñхемы, компьютерные раÑпечатки, диаграммы, +% фотоÑнимки) Ñледует раÑполагать в отчете непоÑредÑтвенно поÑле текÑта отчета, +% где они упоминаютÑÑ Ð²Ð¿ÐµÑ€Ð²Ñ‹Ðµ, или на Ñледующей Ñтранице (по возможноÑти ближе к +% ÑоответÑтвующим чаÑÑ‚Ñм текÑта отчета). Ðа вÑе иллюÑтрации в отчете должны быть +% даны ÑÑылки. При ÑÑылке необходимо пиÑать Ñлово "риÑунок" и его номер, +% например: "в ÑоответÑтвии Ñ Ñ€Ð¸Ñунком 2" и Ñ‚.д. +\RequirePackage{float} +\def\fps@figure{H} + +% 6.5.2 Чертежи, графики, диаграммы, Ñхемы, помещаемые в отчете, должны +% ÑоответÑтвовать требованиÑм Ñтандартов +% Единой ÑиÑтемы конÑтрукторÑкой документации (ЕСКД). + +% 6.5.3 КоличеÑтво иллюÑтраций должно быть доÑтаточным Ð´Ð»Ñ Ð¿Ð¾ÑÑÐ½ÐµÐ½Ð¸Ñ +% излагаемого текÑта отчета. Ðе рекомендуетÑÑ Ð² отчете о ÐИР приводить +% объемные риÑунки. + +% 6.5.4 ИллюÑтрации, за иÑключением иллюÑтраций, приведенных в приложениÑÑ…, +% Ñледует нумеровать арабÑкими цифрами Ñквозной нумерацией. ЕÑли риÑунок один, +% то он обозначаетÑÑ: РиÑунок 1. +% Пример - РиÑунок 1 - Схема прибора + +% 6.5.5 ИллюÑтрации каждого Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ отдельной нумерацией арабÑкими +% цифрами Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ перед цифрой Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ: РиÑунок Ð.3. + +% 6.5.6 ДопуÑкаетÑÑ Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ñ‚ÑŒ иллюÑтрации в пределах раздела отчета. +% Ð’ Ñтом Ñлучае номер иллюÑтрации ÑоÑтоит из номера раздела и порÑдкового номера +% иллюÑтрации, разделенных точкой: РиÑунок 2.1. + +% 6.5.7 ИллюÑтрации при необходимоÑти могут иметь наименование и поÑÑнительные +% данные (подриÑуночный текÑÑ‚). +% Слово "РиÑунок", его номер и через тире наименование помещают поÑле +% поÑÑнительных данных и раÑполагают в центре под +% риÑунком без точки в конце. +% Пример - РиÑунок 2 - Оформление таблицы + +% 6.5.8 ЕÑли наименование риÑунка ÑоÑтоит из неÑкольких Ñтрок, то его Ñледует +% запиÑывать через один межÑтрочный интервал. Ðаименование риÑунка приводÑÑ‚ Ñ +% пропиÑной буквы без точки в конце. ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ñлов в наименовании графичеÑкого +% материала не допуÑкаетÑÑ. + +\RequirePackage{caption} % ÐаÑтройка подпиÑи +\captionsetup[figure]{ + name=РиÑунок, % 6.5.7 + labelsep=endash, % 6.5.7 + position=below, % 6.5.7 + justification=centering, % Выравнивание по центру + font={stretch=\setspace@singlespace}, % 6.5.8 + width=0.8\linewidth, % Ограничение по длине, а то будет на вÑÑŽ Ñтроку +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty new file mode 100644 index 0000000000..28ffc3cd97 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty @@ -0,0 +1,78 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{06-IU8-tables}[2021/03/21 v1.1 Таблицы] + +% Пакеты, которые Ñкорее вÑего пригодÑÑ‚ÑÑ +\RequirePackage{tabularx} +\RequirePackage{longtable} +\RequirePackage{xltabular} +\RequirePackage{multirow} +\RequirePackage{hhline} + +% 6.6.1 Цифровой материал должен оформлÑÑ‚ÑŒÑÑ Ð² виде таблиц. Таблицы применÑÑŽÑ‚ +% Ð´Ð»Ñ Ð½Ð°Ð³Ð»ÑдноÑти и удобÑтва ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¹. + +% 6.6.2 Таблицу Ñледует раÑполагать непоÑредÑтвенно поÑле текÑта, в котором она +% упоминаетÑÑ Ð²Ð¿ÐµÑ€Ð²Ñ‹Ðµ, или на Ñледующей Ñтранице. +% Ðа вÑе таблицы в отчете должны быть ÑÑылки. При ÑÑылке Ñледует печатать Ñлово +% "таблица" Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ ее номера. +\RequirePackage{float} +\def\fps@table{H} + +% 6.6.3 Ðаименование таблицы, при ее наличии, должно отражать ее Ñодержание, +% быть точным, кратким. Ðаименование Ñледует помещать над таблицей Ñлева, +% без абзацного отÑтупа в Ñледующем формате: +% Таблица Ðомер таблицы - Ðаименование таблицы. +% Ðаименование таблицы приводÑÑ‚ Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы без точки в конце. +% ЕÑли наименование таблицы занимает две Ñтроки и более, то его Ñледует +% запиÑывать через один межÑтрочный интервал. +% Таблицу Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ количеÑтвом Ñтрок допуÑкаетÑÑ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñить на другую Ñтраницу. +% При переноÑе чаÑти таблицы на другую Ñтраницу Ñлово "Таблица", ее номер и +% наименование указывают один раз Ñлева над первой чаÑтью таблицы, а над +% другими чаÑÑ‚Ñми также Ñлева пишут Ñлова "Продолжение таблицы" и указывают +% номер таблицы. +% При делении таблицы на чаÑти допуÑкаетÑÑ ÐµÐµ головку или боковик заменÑÑ‚ÑŒ +% ÑоответÑтвенно номерами граф и Ñтрок. При Ñтом нумеруют арабÑкими цифрами +% графы и (или) Ñтроки первой чаÑти таблицы. +\RequirePackage{caption} % ÐаÑтройка подпиÑи +\captionsetup[table]{ + name=Таблица, + labelsep=endash, % Тире + position=above, + justification=justified, % Выравнивание по ширине + singlelinecheck=false, + font={stretch=\setspace@singlespace}, +} + +% 6.6.4 Таблицы, за иÑключением таблиц приложений, Ñледует нумеровать +% арабÑкими цифрами Ñквозной нумерацией. +% Таблицы каждого Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑÑ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð¾Ð¹ нумерацией арабÑкими цифрами +% Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ перед цифрой Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. ЕÑли в отчете одна таблица, +% она должна быть обозначена "Таблица 1" или "Таблица Ð.1" (еÑли она +% приведена в приложении Ð). +% ДопуÑкаетÑÑ Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ñ‚ÑŒ таблицы в пределах раздела при большом объеме отчета. +% Ð’ Ñтом Ñлучае номер таблицы ÑоÑтоит из +% номера раздела и порÑдкового номера таблицы, разделенных точкой: Таблица 2.3. + +% 6.6.5 Заголовки граф и Ñтрок таблицы Ñледует печатать Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы, а +% подзаголовки граф - Ñо Ñтрочной буквы, еÑли они ÑоÑтавлÑÑŽÑ‚ одно предложение Ñ +% заголовком, или Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы, еÑли они имеют ÑамоÑтоÑтельное значение. +% Ð’ конце заголовков и подзаголовков таблиц точки не ÑтавÑÑ‚ÑÑ. ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ +% заголовков и подзаголовков таблиц указывают в единÑтвенном +% чиÑле. + +% 6.6.6 Таблицы Ñлева, Ñправа, Ñверху и Ñнизу ограничивают линиÑми. +% РазделÑÑ‚ÑŒ заголовки и подзаголовки боковика и граф диагональными линиÑми не +% допуÑкаетÑÑ. Заголовки граф выравнивают по центру, а заголовки Ñтрок - +% по левому краю. +% Горизонтальные и вертикальные линии, разграничивающие Ñтроки таблицы, +% допуÑкаетÑÑ Ð½Ðµ проводить, еÑли их отÑутÑтвие не затруднÑет пользование +% таблицей. + +% 6.6.7 ТекÑÑ‚, повторÑющийÑÑ Ð² Ñтроках одной и той же графы и ÑоÑтоÑщий из +% одиночных Ñлов, заменÑÑŽÑ‚ кавычками. +% Ставить кавычки вмеÑто повторÑющихÑÑ Ñ†Ð¸Ñ„Ñ€, буквенно-цифровых обозначений, +% знаков и Ñимволов не допуÑкаетÑÑ. +% ЕÑли текÑÑ‚ повторÑетÑÑ, то при первом повторении его заменÑÑŽÑ‚ Ñловами +% "то же", а далее кавычками. +% Ð’ таблице допуÑкаетÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ размер шрифта меньше, чем в текÑте отчета. \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty new file mode 100644 index 0000000000..f7abd6cce9 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty @@ -0,0 +1,37 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{07-IU8-footnotes}[2021/03/21 v1.1 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¸ ÑноÑки] + +% 6.7.1 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð²Ð¾Ð´ÑÑ‚ в отчете, еÑли необходимы поÑÑÐ½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ñправочные +% данные к Ñодержанию текÑта, таблиц или графичеÑкого материала. + +% 6.7.2 Слово "Примечание" Ñледует печатать Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ +% отÑтупа, не подчеркиваÑ. + +% 6.7.3 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ñледует помещать непоÑредÑтвенно поÑле текÑтового, +% графичеÑкого материала или таблицы, к которым отноÑÑÑ‚ÑÑ Ñти примечаниÑ. +% ЕÑли примечание одно, то поÑле Ñлова "Примечание" ÑтавитÑÑ Ñ‚Ð¸Ñ€Ðµ и текÑÑ‚ +% Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð°ÑŽÑ‚ Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы. Одно примечание не нумеруетÑÑ. +% ÐеÑколько примечаний нумеруют по порÑдку арабÑкими цифрами без +% точки. +% Примеры +% 1 Примечание - Применение локально введенных кодов обеÑпечивает определенный +% уровень гибкоÑти, который дает возможноÑÑ‚ÑŒ проводить ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ изменениÑ, +% ÑохранÑÑ Ð¿Ñ€Ð¸ Ñтом ÑовмеÑтимоÑÑ‚ÑŒ Ñ Ð¾Ñновным набором Ñлементов +% данных. +% 2 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ +% 1 К текÑту даетÑÑ... . +% 2 Дополнительные данные... . + +% 6.7.4 При необходимоÑти дополнительного поÑÑÐ½ÐµÐ½Ð¸Ñ Ð² отчете допуÑкаетÑÑ +% иÑпользовать примечание, оформленное в виде ÑноÑки. Знак ÑноÑки ÑтавÑÑ‚ без +% пробела непоÑредÑтвенно поÑле того Ñлова, чиÑла, Ñимвола, предложениÑ, +% к которому даетÑÑ Ð¿Ð¾ÑÑнение. Знак ÑноÑки указываетÑÑ Ð½Ð°Ð´Ñтрочно +% арабÑкими цифрами. ДопуÑкаетÑÑ Ð²Ð¼ÐµÑто цифр иÑпользовать знак звездочка - *. +% СноÑку раÑполагают Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа в конце Ñтраницы, на которой +% приведено поÑÑнÑемое Ñлово (ÑловоÑочетание или данные). СноÑку отделÑÑŽÑ‚ от +% текÑта короткой Ñплошной тонкой горизонтальной линией Ñ Ð»ÐµÐ²Ð¾Ð¹ Ñтороны +% Ñтраницы. + + +% ÐаÑтройки по умолчанию вÑему Ñтому удовлетворÑÑŽÑ‚ \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty new file mode 100644 index 0000000000..26ec05640d --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty @@ -0,0 +1,5 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{08-IU8-formulas}[2021/03/21 v1.1 Формулы] + +% ÐаÑтройки по умолчанию в целом ÑоответÑтвуют ГОСТ \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty new file mode 100644 index 0000000000..7343648925 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty @@ -0,0 +1,19 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{09-IU8-cites}[2021/03/21 v1.1 СÑылки] + +% 6.9.1 Ð’ отчете о ÐИР рекомендуетÑÑ Ð¿Ñ€Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ ÑÑылки на иÑпользованные +% иÑточники. При нумерации ÑÑылок на документы, иÑпользованные при ÑоÑтавлении +% отчета, приводитÑÑ ÑÐ¿Ð»Ð¾ÑˆÐ½Ð°Ñ Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ð²Ñего текÑта отчета в целом или Ð´Ð»Ñ +% отдельных разделов. ПорÑдковый номер ÑÑылки (отÑылки) приводÑÑ‚ арабÑкими +% цифрами в квадратных Ñкобках в конце текÑта ÑÑылки. ПорÑдковый номер +% библиографичеÑкого опиÑÐ°Ð½Ð¸Ñ Ð¸Ñточника в ÑпиÑке иÑпользованных иÑточников +% ÑоответÑтвует +% номеру ÑÑылки. + +% 6.9.2 СÑылатьÑÑ Ñледует на документ в целом или на его разделы и приложениÑ. + +% 6.9.3 При ÑÑылках на Ñтандарты и техничеÑкие уÑÐ»Ð¾Ð²Ð¸Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°ÑŽÑ‚ их обозначение, +% при Ñтом допуÑкаетÑÑ Ð½Ðµ указывать год их ÑƒÑ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ уÑловии полного +% опиÑÐ°Ð½Ð¸Ñ Ñтандарта и техничеÑких уÑловий в ÑпиÑке иÑпользованных иÑточников в +% ÑоответÑтвии Ñ Ð“ÐžÐ¡Ð¢ 7.1. diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty new file mode 100644 index 0000000000..2d52ce93e1 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty @@ -0,0 +1,237 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{10-IU8-titlepage}[2021/03/21 v1.1 Титульный лиÑÑ‚] + +% ÐŸÐ¾Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð’ÐšÐ  +\def\student#1{\gdef\@student{#1}} +\def\@student{\@latex@warning@no@line{No \noexpand\student given}} + +\def\theme#1{\gdef\@theme{#1}} +\def\@theme{\@latex@warning@no@line{No \noexpand\theme given}} + +\def\group#1{\gdef\@group{#1}} +\def\@group{\@latex@warning@no@line{No \noexpand\group given}} + +\def\supervisor#1{\gdef\@supervisor{#1}} +\def\@supervisor{\@latex@warning@no@line{No \noexpand\supervisor given}} + +\def\researchConsultant#1{\gdef\@researchConsultant{#1}} +\def\@researchConsultant{\@latex@warning@no@line{No \noexpand\researchConsultant given}} + +\def\designConsultant#1{\gdef\@designConsultant{#1}} +\def\@designConsultant{\@latex@warning@no@line{No \noexpand\designConsultant given}} + +\def\technologicalConsultant#1{\gdef\@technologicalConsultant{#1}} +\def\@technologicalConsultant{\@latex@warning@no@line{No \noexpand\technologicalConsultant given}} + +\def\economicsConsultant#1{\gdef\@economicsConsultant{#1}} +\def\@economicsConsultant{\@latex@warning@no@line{No \noexpand\economicsConsultant given}} + +\def\lawsConsultant#1{\gdef\@lawsConsultant{#1}} +\def\@lawsConsultant{\@latex@warning@no@line{No \noexpand\lawsConsultant given}} + +\def\normController#1{\gdef\@normController{#1}} +\def\@normController{\@latex@warning@no@line{No \noexpand\normController given}} + +% ÐŸÐ¾Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐИР +\def\studentFullName#1{\gdef\@studentFullName{#1}} +\def\@studentFullName{\@latex@warning@no@line{No \noexpand\studentFullName given}} + +\def\profile#1{\gdef\@profile{#1}} +\def\@profile{\@latex@warning@no@line{No \noexpand\profile given}} + +\def\speciality#1{\gdef\@speciality{#1}} +\def\@speciality{\@latex@warning@no@line{No \noexpand\speciality given}} + +\def\specialization#1{\gdef\@specialization{#1}} +\def\@specialization{\@latex@warning@no@line{No \noexpand\specialization given}} + +\def\supervisorWithDegree#1{\gdef\@supervisorWithDegree{#1}} +\def\@supervisorWithDegree{\@latex@warning@no@line{No \noexpand\supervisorWithDegree given}} + + +\RequirePackage{fancyhdr} +\fancypagestyle{year}{ + \fancyfoot[C]{\itshape МоÑква, \the\year~г.} + \renewcommand{\headrulewidth}{0pt} + \fancyhead{} +} + +\RequirePackage{tabto} +\RequirePackage[normalem]{ulem} +\RequirePackage[usestackEOL]{stackengine} +\RequirePackage{lineno} +\RequirePackage{xstring} +\RequirePackage{ifthen} + +\newcommand\makeUlineStack[3][3cm]{ + \Shortunderstack{ + \uline{\parbox{#1}{\centering #2}}\\ + {\fontsize{9pt}{9pt}\selectfont #3} + } +} + +\newcommand\makeBMSTUHeader{ + \noindent\begin{minipage}{0.05\textwidth} + \includegraphics[scale=0.4]{inc/bmstu.png} + \end{minipage} + \hfill + \begin{minipage}{0.85\textwidth}\raggedleft + \begin{center} + \fontsize{10pt}{0.3\baselineskip}\selectfont + \textbf{МиниÑтерÑтво науки и выÑшего Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ + РоÑÑийÑкой Федерации \\ + Федеральное гоÑударÑтвенное бюджетное образовательное + учреждение \\ + выÑшего Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ \\ + <<МоÑковÑкий гоÑударÑтвенный техничеÑкий универÑитет \\ + имени Ð. Э. Баумана \\ + (национальный иÑÑледовательÑкий универÑитет)>> \\ + (МГТУ им. Ð. Э. Баумана) + } + \end{center} + \end{minipage} + \begin{center} + \fontsize{12pt}{0.1\baselineskip}\selectfont + \noindent\makebox[\linewidth]{\rule{\textwidth}{2pt}} + \makebox[\linewidth]{\rule{\textwidth}{1pt}} + \end{center} + \begin{flushleft} + \fontsize{12pt}{14pt}\selectfont + ФÐКУЛЬТЕТ \tabto{3cm} <<Информатика и ÑиÑтемы управлениÑ>> (ИУ)\\ + КÐФЕДРР\tabto{3cm} <<Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑ‚ÑŒ>> (ИУ8) + \end{flushleft} +} + +\newcommand\fillingBox[3][\maxlen]{ + \noindent#2 \hfill \makeUlineStack[2.5cm]{~}{(ПодпиÑÑŒ, дата)} \quad + \makeUlineStack[#1]{#3}{(И. О. ФамилиÑ)}\\ +} + +\newcommand\makeDiplomaTheme[1]{ + \noindent + \begin{minipage}{\linewidth} + \centering\internallinenumbers\rmfamily\bfseries\fontsize{20pt}{20pt}\selectfont + \renewcommand{\makeLineNumber}{\rule[-0.7ex]{\textwidth}{0.4pt}\hss}% + #1 + \end{minipage} +} + +\newlength{\maxlen} +\newlength{\templen} + +\newcommand\CompLen[1]{ + \settowidth{\templen}{#1} + \ifdim\templen>\maxlen + \settowidth{\maxlen}{#1} + \fi +} + +\newcommand\fillDiplomaTitle{ + \noindent\begin{center} + \centering\bfseries\fontsize{20pt}{25pt}\selectfont + РÐСЧÐТÐО-ПОЯСÐИТЕЛЬÐÐЯ~ЗÐПИСКÐ\\ + {\fontsize{16pt}{25pt}\bfseries\selectfont К~ВЫПУСКОЙ~КВÐЛИФИКÐЦИОÐÐОЙ~РÐБОТЕ}\\ + {\fontsize{16pt}{25pt}\bfseries\selectfont ÐÐ~ТЕМУ:} + \end{center} + + \vfill + + \makeDiplomaTheme{\@theme} + + \vfill + + {\fontsize{12pt}{15pt}\selectfont + + \fillingBox{Студент \hfill \makeUlineStack[2cm]{\@group}{(Группа)}}{\@student} + + \fillingBox{Руководитель ВКР}{\@supervisor} + + \fillingBox{КонÑультант по иÑÑледовательÑкой чаÑти}{\@researchConsultant} + + \fillingBox{КонÑультант по конÑтрукторÑкой чаÑти}{\@designConsultant} + + \fillingBox{КонÑультант по технологичеÑкой чаÑти}{\@technologicalConsultant} + + \fillingBox{КонÑультант по организационно-\\ÑкономичеÑкой чаÑти}{\@economicsConsultant} + + \fillingBox{КонÑультант по организационно-\\правовому обеÑпечению ИБ}{\@lawsConsultant} + + \fillingBox{Ðормоконтролер}{\@normController} + } +} + +\newcommand\makeResearchTheme[1]{ + \noindent на тему \uline{#1} +} + +\newcommand\fillResearchTitle{ + \noindent\begin{center} + \centering\bfseries\fontsize{20pt}{25pt}\selectfont + Отчёт\\ + {\fontsize{16pt}{25pt}\bfseries\selectfont по научно-иÑÑледовательÑкой работе Ñтудента}\\ + \end{center} + + \vfill + + \makeResearchTheme{\@theme} + + \vfill + { + \setlength{\tabcolsep}{0pt} + \renewcommand{\arraystretch}{1.5} + \noindent \begin{tabular}{ll} + \noindent ФИО Ñтудента: & \@studentFullName \\ + \noindent Группа: & \@group \\ + \noindent СпециальноÑÑ‚ÑŒ: & \@speciality \\ + \noindent СпециализациÑ: & \@specialization \\ + \end{tabular} + } + + \bigskip + + \noindent Ðаучный руководитель ÐИРС: \@supervisorWithDegree + + \bigskip + + \noindent Работа выполнена: \hfill \makeUlineStack[2.5cm]{~}{Дата} \quad \makeUlineStack[2.5cm]{~}{ПодпиÑÑŒ} \quad \makeUlineStack[4cm]{\@student}{(И. О. ФамилиÑ)} + + \bigskip + + \noindent ДопуÑк к защите: \hfill \makeUlineStack[2.5cm]{~}{Дата} \quad \makeUlineStack[2.5cm]{~}{ПодпиÑÑŒ} \quad \makeUlineStack[4cm]{\@supervisor}{(И. О. ФамилиÑ)} + + \vfill + { + \setlength{\tabcolsep}{0pt} + \renewcommand{\arraystretch}{1.5} + \noindent \begin{tabular}{ll} + \noindent Дата защиты ÐИРС: & \makeUlineStack[6cm]{~}{~} \\ + \noindent Результаты защиты: & \makeUlineStack[6cm]{~}{~} \\ + \end{tabular} + } + + \vfill + + \clearpage +} + +\renewcommand\maketitle{ + \begin{titlepage} + \settowidth{\maxlen}{\@student} + \CompLen{\@student} + \CompLen{\@supervisor} + \CompLen{\@researchConsultant} + \CompLen{\@designConsultant} + \CompLen{\@technologicalConsultant} + \CompLen{\@economicsConsultant} + \CompLen{\@lawsConsultant} + \CompLen{\@normController} + + \thispagestyle{year} + \makeBMSTUHeader + + \fillTitle + + \clearpage + \end{titlepage} +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty new file mode 100644 index 0000000000..5fab88f372 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/11-IU8-performers.sty @@ -0,0 +1,5 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{11-IU8-performers}[2021/03/21 v1.1 СпиÑок иÑполниетелей] + +% Т.к. у Ð½Ð°Ñ Ñто не иÑпользуетÑÑ, Ñ Ð¾ÑтавлÑÑŽ Ñто пуÑтымы \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty new file mode 100644 index 0000000000..ab068e8c49 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty @@ -0,0 +1,27 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{12-IU8-abstract}[2021/03/21 v1.1 Реферат] + +% 6.12.1 Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± общем объеме отчета, количеÑтве книг отчета, иллюÑтраций, +% таблиц, иÑпользованных иÑточников, приложений ÑвлÑÑŽÑ‚ÑÑ Ð¿ÐµÑ€Ð²Ð¾Ð¹ компонентой +% реферата и раÑполагаютÑÑ Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа, в Ñтроку, через запÑтые. + +% 6.12.2 Ключевые Ñлова ÑвлÑÑŽÑ‚ÑÑ Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ компонентой реферата. Они приводÑÑ‚ÑÑ Ð² +% именительном падеже и печатаютÑÑ Ð¿Ñ€Ð¾Ð¿Ð¸Ñными буквами, в Ñтроку, через запÑтые, +% без абзацного отÑтупа и переноÑа Ñлов, без точки в конце перечнÑ. + +% 6.12.3 ТекÑÑ‚ реферата помещаетÑÑ Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа поÑле ключевых Ñлов. +% Ð”Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ñтруктурных чаÑтей реферата в ÑоответÑтвии Ñ 5.3.2.2 +% иÑпользуютÑÑ Ð°Ð±Ð·Ð°Ñ†Ð½Ñ‹Ðµ отÑтупы. + +\RequirePackage{lastpage} + +\renewcommand{\abstract}{ + \structure{РЕФЕРÐТ} + + Отчёт Ñодержит \pageref{LastPage} ÑÑ‚Ñ€.\ifnum + \TotalValue{totalfigures}>0, \TotalValue{totalfigures} риÑ.\fi\ifnum + \TotalValue{totaltables}>0, \TotalValue{totaltables} табл.\fi\ifnum + \TotalValue{totalcites}>0, \TotalValue{totalcites} иÑточн.\fi\ifnum + \TotalValue{totalappendices}>0, \TotalValue{totalappendices} прил.\fi +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty new file mode 100644 index 0000000000..3fa1170610 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty @@ -0,0 +1,29 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{13-IU8-contents}[2021/03/21 v1.1 Содержание] + +% Каждую запиÑÑŒ ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÑÑŽÑ‚ как отдельный абзац, выровненный влево. +% Ðомера Ñтраниц указывают выровненными по правому краю Ð¿Ð¾Ð»Ñ Ð¸ ÑоединÑÑŽÑ‚ +% Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ Ñтруктурного Ñлемента или раздела отчета поÑредÑтвом +% отточиÑ. + +\renewcommand\tableofcontents{ + \structure*{СОДЕРЖÐÐИЕ} + \@starttoc{toc} +} + +\renewcommand*\l@section{\@dottedtocline{0}{0mm}{2em}} +\renewcommand*\l@structure{\@dottedtocline{0}{0mm}{0em}} +% ГОСТ 7.32-2017. Пункт 5.4.1: +% ÐžÐ±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð² приводÑÑ‚ поÑле абзацного отÑтупа, +% равного двум знакам, отноÑительно Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð². +\renewcommand*\l@subsection{\@dottedtocline{1}{5mm}{3em}} +% ГОСТ 7.32-2017. Пункт 5.4.1: +% ÐžÐ±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð² приводÑÑ‚ поÑле абзацного отÑтупа, +% равного четырем знакам, отноÑительно Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð². +\renewcommand*\l@subsubsection{\@dottedtocline{2}{10mm}{4em}} +% ОÑтальное - индуктивно +\renewcommand*\l@paragraph{\@dottedtocline{3}{15mm}{5em}} + +\setcounter{secnumdepth}{5} % Глубина заголовков - до пÑтого ÑƒÑ€Ð¾Ð²Ð½Ñ +\setcounter{tocdepth}{2} % Глубина ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ - до второго ÑƒÑ€Ð¾Ð²Ð½Ñ diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty new file mode 100644 index 0000000000..0d19fcc37d --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty @@ -0,0 +1,35 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{14-IU8-terms-and-definitions}[2021/03/21 v1.1 Содержание] + +\RequirePackage[ + acronym, + automake, + nopostdot, + xindy={glsnumbers=false, language=russian}, +]{glossaries} +\RequirePackage[abbreviations]{glossaries-extra} + +\GlsSetXdyCodePage{utf8} + +\renewcommand{\glossarysection}[2][]{} + +\newglossarystyle{terms}{ + \renewenvironment{theglossary}{}{} + \renewcommand*{\glossentry}[2]{ + \noindent\glstarget{##1}{\glossentryname{##1}}~\textemdash~\glossentrydesc{##1} + \newline + } + \renewcommand*{\glsgroupskip}{}% +} + +\newcommand{\termsanddefenitions}{ + \structure{ТЕРМИÐЫ~И~ОПРЕДЕЛЕÐИЯ} + + \termsAndDefinitionsLine + + \printunsrtglossary[ + style=terms, + nonumberlist + ] +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty new file mode 100644 index 0000000000..2e7931ccb7 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty @@ -0,0 +1,29 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{15-IU8-list-of-abbreviations}[2021/03/21 v1.1 Содержание] + +\RequirePackage[abbreviations]{glossaries-extra} + +\GlsSetXdyCodePage{utf8} + +\renewcommand{\glossarysection}[2][]{} + +\newglossarystyle{definitions}{ + \renewenvironment{theglossary}{}{} + \renewcommand*{\glossentry}[2]{ + \noindent\glstarget{##1}{\glossentryname{##1}}~\textemdash~\glossentrydesc{##1} + \newline + } + \renewcommand*{\glsgroupskip}{} +} + +\newcommand{\listofabbreviations}{ + \structure{ПЕРЕЧЕÐЬ~СОКРÐЩЕÐИЙ~И~ОБОЗÐÐЧЕÐИЙ} + + \abbreviationsLine + + \printunsrtglossary[ + style=definitions, + type=\acronymtype + ] +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty new file mode 100644 index 0000000000..6d441e098c --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty @@ -0,0 +1,18 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{16-IU8-references}[2021/03/21 v1.1 СпиÑок иÑпользованных иÑточников] + +% Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± иÑточниках Ñледует раÑполагать в порÑдке поÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑÑылок на +% иÑточники в текÑте отчета и нумеровать арабÑкими цифрами Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и печатать +% Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа. +\usepackage[ + backend=biber, + style=gost-numeric, + sorting=none, + % refsection=structure, + % sorting=ynt, +]{biblatex} +\defbibheading{bibliography}[СПИСОК~ИСПОЛЬЗОВÐÐÐЫХ~ИСТОЧÐИКОВ]{\structure{#1}} +\addto{\captionsrussian}{% + \renewcommand{\contentsname}{СОДЕРЖÐÐИЕ} +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty new file mode 100644 index 0000000000..58556e4987 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty @@ -0,0 +1,25 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{17-IU8-appendices}[2021/03/21 v1.1 ПриложениÑ] + +\newcommand{\appendixsection}[1]{ + \stepcounter{apps} + \section*{\Asbuk{apps}} + \begin{center} + \bfseries #1 + \end{center} + \addcontentsline{toc}{section}{ПРИЛОЖЕÐИЕ~\Asbuk{apps}~{#1}} +} + +\renewcommand{\appendix}{ + \renewcommand\section{\clearpage\@startsection{section}{1}{0pt}{1em}{1em}{\bfseries\centering ПРИЛОЖЕÐИЕ~}} + \setcounter{section}{0} + \setcounter{figure}{0} + \setcounter{table}{0} + \setcounter{equation}{0} + \setcounter{lstlisting}{0} + \renewcommand\thefigure{\Asbuk{apps}.\arabic{figure}} + \renewcommand\thetable{\Asbuk{apps}.\arabic{table}} + \renewcommand\theequation{\Asbuk{apps}.\arabic{equation}} + \renewcommand\thelstlisting{\Asbuk{apps}.\arabic{lstlisting}} +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty new file mode 100644 index 0000000000..6548337ceb --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty @@ -0,0 +1,25 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{18-IU8-extra}[2021/03/21 v1.1 Разные улучшениÑ] + +\RequirePackage{graphicx} + +\RequirePackage[all, defaultlines=4]{nowidow} % Запрет "виÑÑчих" Ñлов + +\sloppy % Запретить выход текÑта за Ð¿Ð¾Ð»Ñ + +\RequirePackage{bookmark} +\def\toclevel@structure{1} % Ð”Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² Ñодержании pdf + +\hypersetup{ + colorlinks=true, + unicode=true, + urlcolor=black, + linkcolor=black, + anchorcolor=black, + citecolor=black, + menucolor=black, + filecolor=black, +} % Кликабельные ÑÑылки в pdf + +\hbadness=10000 diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty new file mode 100644 index 0000000000..f0eb7762d1 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty @@ -0,0 +1,22 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{19-IU8-counters}[2021/03/21 v1.1 Счётчики] + +\RequirePackage{calc} +\RequirePackage{xassoccnt} +\RequirePackage{totcount} + +\NewTotalDocumentCounter{totalfigures} +\DeclareAssociatedCounters{figure}{totalfigures} +\NewTotalDocumentCounter{totaltables} +\DeclareAssociatedCounters{table}{totaltables} + +\RequirePackage{totcount} +\newtotcounter{citenum} +\AtEveryBibitem{\stepcounter{citenum}} +\NewTotalDocumentCounter{totalcites} +\DeclareAssociatedCounters{citenum}{totalcites} + +\newcounter{apps} +\NewTotalDocumentCounter{totalappendices} +\DeclareAssociatedCounters{apps}{totalappendices} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty new file mode 100644 index 0000000000..e0e7f96251 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/20-IU8-listing.sty @@ -0,0 +1,38 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{20-IU8-listing}[2021/03/21 v1.1 ЛиÑтинги] + +\RequirePackage{listings} +\RequirePackage{xcolor} + +% http://latexcolor.com/ +\definecolor{seashell}{rgb}{1.0, 0.96, 0.93} + +\lstdefinestyle{IU8}{ + frame=single, + backgroundcolor=\color{seashell}, + commentstyle=\color{blue}, + keywordstyle=\color{magenta}, + basicstyle=\ttfamily\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=tl, + keepspaces=false, + showspaces=false, + showstringspaces=false, + showtabs=false, + extendedchars=\true, + tabsize=2, +} +\lstset{style=IU8} + +\DeclareCaptionFormat{listing}{#1#2#3} +\captionsetup[lstlisting]{ + format=listing, + singlelinecheck=false, + labelsep=endash, +} + +\newcommand{\listing}[2][]{% + \lstinputlisting[caption={\texttt{\detokenize{#2}}},#1]{#2}% +} diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty new file mode 100644 index 0000000000..13b0e75ab1 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty @@ -0,0 +1,11 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{21-IU8-math}[2021/03/21 v1.1 Математика] + +\RequirePackage{amsthm} +\theoremstyle{definition} +\newtheorem{definition}{Определение}[section] +\newtheorem{theorem}{Теорема}[section] +\newtheorem{corollary}{СледÑтвие}[theorem] +\newtheorem{lemma}{Лемма}[section] +\newtheorem{example}{Пример}[section] diff --git a/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty new file mode 100644 index 0000000000..9733ec195e --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty @@ -0,0 +1,26 @@ +% Author: CatInCosmicSpace +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{22-IU8-algorithms}[2021/03/21 v1.1 Ðлгоритмы] + +\RequirePackage[linesnumbered,boxruled]{algorithm2e} +\SetAlCapSty{} + +% Перевод плагина +\SetKwInput{KwData}{ИÑходные параметры} +\SetKwInput{KwResult}{Результат} +\SetKwInput{KwIn}{Входные данные} +\SetKwInput{KwOut}{Выходные данные} +\SetKwIF{If}{ElseIf}{Else}{еÑли}{тогда}{иначе еÑли}{иначе}{конец уÑловиÑ} +\SetKwFor{While}{до тех пор, пока}{выполнÑÑ‚ÑŒ}{конец цикла} +\SetKw{KwTo}{от} +\SetKw{KwRet}{возвратить} +\SetKw{Return}{возвратить} +\SetKwBlock{Begin}{начало блока}{конец блока} +\SetKwSwitch{Switch}{Case}{Other}{Проверить значение}{и выполнить}{вариант}{в противном Ñлучае}{конец варианта}{конец проверки значений} +\SetKwFor{For}{цикл}{выполнÑÑ‚ÑŒ}{конец цикла} +\SetKwFor{ForEach}{Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾}{выполнÑÑ‚ÑŒ}{конец цикла} +\SetKwRepeat{Repeat}{повторÑÑ‚ÑŒ}{до тех пор, пока} +\SetAlgorithmName{Ðлгоритм}{алгоритм}{СпиÑок алгоритмов} +\SetAlgoCaptionSeparator{~---} +% \SetAlgoCaptionLayout{centerline} +\renewcommand{\@algocf@capt@plain}{above} diff --git a/macros/latex/contrib/bmstu-iu8/example.pdf b/macros/latex/contrib/bmstu-iu8/example.pdf deleted file mode 100644 index bbf0887362..0000000000 Binary files a/macros/latex/contrib/bmstu-iu8/example.pdf and /dev/null differ diff --git a/macros/latex/contrib/bmstu-iu8/example.tex b/macros/latex/contrib/bmstu-iu8/example.tex deleted file mode 100644 index 0d2499d7bd..0000000000 --- a/macros/latex/contrib/bmstu-iu8/example.tex +++ /dev/null @@ -1,55 +0,0 @@ -\documentclass[diploma]{BMSTU-IU8} - -\usepackage{lipsum} - -\student{И. И. Иванов} -\theme{Создание отчёта \\ по ÐИРС \\ или ВКР} -\group{ИУ8-999} - -\supervisor{П. П. Петров} -\researchConsultant{П. П. Петров} -\designConsultant{П. П. Петров} -\technologicalConsultant{П. П. Петров} -\economicsConsultant{П. П. Петров} -\lawsConsultant{П. П. Петров} -\normController{Т. Е. ЗавадÑкаÑ} - -% \theme{ТеÑÑ‚ \hfill} % Тема Ð´Ð»Ñ ÐИРСа заполнÑетÑÑ Ð¿Ð¾-другому -\studentFullName{Иванов Иван Иванович} -\profile{10У101} -\speciality{10.05.01 <<ÐšÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð½Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑ‚ÑŒ>>} -\specialization{10.05.01\_01 <<МатематичеÑкие методы защиты информации>>} -\supervisorWithDegree{доцент, к.Ñ‚.н. Иванов И. И.} - - -\begin{document} - \maketitle - - \abstract % Структурный Ñлемент: РЕФЕРÐТ - - \lipsum[1-2] - - \tableofcontents % Содержание - \termsanddefenitions % Термины и Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ - \listofabbreviations % Перечень Ñокращений и обозначений - - \introduction - - \lipsum[1-2] - - \section{ИÑÑледовательÑÐºÐ°Ñ Ñ‡Ð°ÑÑ‚ÑŒ} - - \lipsum[1-2] - - \conclusion - - \lipsum[1-2] - - \printbibliography - - \appendix - - \appendixsection{Приложение Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð°} - - \lipsum[1-2] -\end{document} diff --git a/macros/latex/contrib/bmstu-iu8/inc/bmstu.png b/macros/latex/contrib/bmstu-iu8/inc/bmstu.png deleted file mode 100644 index 469c7d9797..0000000000 Binary files a/macros/latex/contrib/bmstu-iu8/inc/bmstu.png and /dev/null differ diff --git a/macros/latex/contrib/bmstu-iu8/styles/01-IU8-base.sty b/macros/latex/contrib/bmstu-iu8/styles/01-IU8-base.sty deleted file mode 100644 index 2ade498ef7..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/01-IU8-base.sty +++ /dev/null @@ -1,40 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{01-IU8-base}[2021/03/21 v1.0 Общие требованиÑ] - -% 6.1.1 Изложение текÑта и оформление отчета выполнÑÑŽÑ‚ в ÑоответÑтвии Ñ -% требованиÑми наÑтоÑщего Ñтандарта. Страницы текÑта отчета о ÐИР и включенные в -% отчет иллюÑтрации и таблицы должны ÑоответÑтвовать формату Ð4 по ГОСТ 9327. -% ДопуÑкаетÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ формата Ð3 при наличии большого количеÑтва таблиц и -% иллюÑтраций данного формата. - -% Отчет о ÐИР должен быть выполнен любым печатным ÑпоÑобом на одной Ñтороне -% лиÑта белой бумаги формата Ð4 через полтора интервала. -\RequirePackage{setspace} -\onehalfspacing - -% Цвет шрифта должен быть черным, размер шрифта - не менее 12 пт. -% Рекомендуемый тип шрифта Ð´Ð»Ñ Ð¾Ñновного текÑта отчета - Times New Roman. -\RequirePackage[fontsize=14pt]{scrextend} -% Ðо у Times New Roman нет открытой реализации, так что будет Ñтандартный -% Или можете попробовать xelatex: -% \RequirePackage{fontspec} -% \setmainfont{Times New Roman} - -% ТекÑÑ‚ отчета Ñледует печатать, ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ñледующие размеры полей: -% левое - 30 мм, правое - 15 мм, верхнее и нижнее - 20 мм. -\RequirePackage[ - a4paper, - left=30mm, right=10mm, top=20mm, bottom=20mm, - footskip=10mm, % Ð”Ð»Ñ Ñ€Ð°ÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° Ñтраницы на 10 мм выше ÐºÑ€Ð°Ñ Ð»Ð¸Ñта - ignoreall, - % showframe, -]{geometry} -% Ты там пишешь, что правое поле должно быть 15 мм, -% а потом Ñтавишь его в 10 мм. Почему? -% Рпотому что в программе TestVKR проходит только 10 мм, а не 15 мм ¯\_(ツ)_/¯ - -% Ðбзацный отÑтуп должен быть одинаковым по вÑему текÑту отчета и равен 1,25 Ñм. -\setlength{\parindent}{1.25cm} - -\RequirePackage{indentfirst} % ОтÑтуп первой Ñтроки Ð´Ð»Ñ Ð°Ð±Ð·Ð°Ñ†ÐµÐ² diff --git a/macros/latex/contrib/bmstu-iu8/styles/02-IU8-construction.sty b/macros/latex/contrib/bmstu-iu8/styles/02-IU8-construction.sty deleted file mode 100644 index ebf8957a62..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/02-IU8-construction.sty +++ /dev/null @@ -1,66 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{02-IU8-construction}[2021/03/21 v1.0 ПоÑтроение отчета] - -% 6.2.1 ÐÐ°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтруктурных Ñлементов отчета: -% "СПИСОК ИСПОЛÐИТЕЛЕЙ", % у Ð½Ð°Ñ Ð½Ðµ иÑпользуетÑÑ -% "РЕФЕРÐТ", % У Ð½Ð°Ñ Ð½Ðµ иÑпользуетÑÑ -% "СОДЕРЖÐÐИЕ", -% "ТЕРМИÐЫ И ОПРЕДЕЛЕÐИЯ", -% "ПЕРЕЧЕÐЬ СОКРÐЩЕÐИЙ И ОБОЗÐÐЧЕÐИЙ", -% "ВВЕДЕÐИЕ", -% "ЗÐКЛЮЧЕÐИЕ", -% "СПИСОК ИСПОЛЬЗОВÐÐÐЫХ ИСТОЧÐИКОВ", -% "ПРИЛОЖЕÐИЕ" -% Ñлужат заголовками Ñтруктурных Ñлементов отчета. - -% Заголовки Ñтруктурных Ñлементов Ñледует раÑполагать в Ñередине Ñтроки без -% точки в конце, пропиÑными буквами, не подчеркиваÑ. Каждый Ñтруктурный Ñлемент -% и каждый раздел оÑновной чаÑти отчета начинают Ñ Ð½Ð¾Ð²Ð¾Ð¹ Ñтраницы. -\RequirePackage{titlesec} -\RequirePackage{titletoc} -\RequirePackage{chngcntr} - -\newcounter{structure} -\renewcommand{\thestructure}{} % Убрать поÑвление Ñчётчика в Ñодержании -\titleclass{\structure}{straight}[\section] -\titleformat{\structure}[hang]{\clearpage\normalfont\bfseries\centering}{}{0em}{} -\titlespacing*{\structure}{0pt}{0pt}{2\baselineskip} -\titlecontents{structure}{}{}{}{} -\renewcommand*\l@structure{\@dottedtocline{0}{0mm}{0em}} - -\newcommand{\structurebreak}{\clearpage} -\newcommand{\sectionbreak}{\clearpage} - -% 6.2.2 ОÑновную чаÑÑ‚ÑŒ отчета Ñледует делить на разделы, подразделы и пункты. -% Пункты при необходимоÑти могут делитьÑÑ Ð½Ð° подпункты. Разделы и подразделы -% отчета должны иметь заголовки. Пункты и подпункты, как правило, заголовков не -% имеют. - -% 6.2.3 Заголовки разделов и подразделов оÑновной чаÑти отчета Ñледует начинать -% Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа и размещать поÑле порÑдкового номера, печатать Ñ -% пропиÑной буквы, полужирным шрифтом, не подчеркивать, без точки в конце. -% Пункты и подпункты могут иметь только порÑдковый номер без заголовка, -% начинающийÑÑ Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа. -\titleformat{\section}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesection}{1em}{} -\titleformat{\subsection}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesubsection}{1em}{} -\titleformat{\subsubsection}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesubsubsection}{1em}{} -\titleformat{\paragraph}[block]{\hspace{\parindent}\normalfont\bfseries}{\theparagraph}{1em}{} -\titleformat{\subparagraph}[block]{\hspace{\parindent}\normalfont\bfseries}{\thesubparagraph}{1em}{} - -\titlespacing*{\section}{0pt}{0pt}{2ex}[2ex] -\titlespacing*{\subsection}{0pt}{2ex}{2ex}[2ex] -\titlespacing*{\subsubsection}{0pt}{2ex}{2ex}[2ex] -\titlespacing*{\paragraph}{0pt}{2ex}{2ex}[2ex] -\titlespacing*{\subparagraph}{0pt}{2ex}{2ex}[2ex] - -% 6.2.4 ЕÑли заголовок включает неÑколько предложений, их разделÑÑŽÑ‚ точками. -% ПереноÑÑ‹ Ñлов в заголовках не допуÑкаютÑÑ. - -\newcommand{\introduction}{ - \structure{ВВЕДЕÐИЕ} -} - -\newcommand{\conclusion}{ - \structure{ЗÐКЛЮЧЕÐИЕ} -} diff --git a/macros/latex/contrib/bmstu-iu8/styles/03-IU8-numbering.sty b/macros/latex/contrib/bmstu-iu8/styles/03-IU8-numbering.sty deleted file mode 100644 index b9ebc5b699..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/03-IU8-numbering.sty +++ /dev/null @@ -1,17 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{03-IU8-numbering}[2021/03/21 v1.0 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраниц отчета] - -% 6.3.1 Страницы отчета Ñледует нумеровать арабÑкими цифрами, ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ñквозную -% нумерацию по вÑему текÑту отчета, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. Ðомер Ñтраницы -% проÑтавлÑетÑÑ Ð² центре нижней чаÑти Ñтраницы без точки. ПриложениÑ, которые -% приведены в отчете о ÐИР и имеющие ÑобÑтвенную нумерацию, допуÑкаетÑÑ Ð½Ðµ перенумеровать. -\pagestyle{plain} -\pagenumbering{arabic} - -% 6.3.2 Титульный лиÑÑ‚ включают в общую нумерацию Ñтраниц отчета. Ðомер Ñтраницы -% на титульном лиÑте не проÑтавлÑÑŽÑ‚. - -% 6.3.3 ИллюÑтрации и таблицы, раÑположенные на отдельных лиÑтах, включают в общую -% нумерацию Ñтраниц отчета. ИллюÑтрации и таблицы на лиÑте формата Ð3 учитывают -% как одну Ñтраницу. diff --git a/macros/latex/contrib/bmstu-iu8/styles/04-IU8-section-numbering.sty b/macros/latex/contrib/bmstu-iu8/styles/04-IU8-section-numbering.sty deleted file mode 100644 index de614468c4..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/04-IU8-section-numbering.sty +++ /dev/null @@ -1,52 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{04-IU8-section-numbering}[2021/03/21 v1.0 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð², подразделов, пунктов, подпунктов и книг отчета] - -% 6.4.1 Разделы должны иметь порÑдковые номера в пределах вÑего отчета, -% обозначенные арабÑкими цифрами без точки и раÑположенные Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа. -% Подразделы должны иметь нумерацию в пределах каждого раздела. Ðомер подраздела -% ÑоÑтоит из номеров раздела и подраздела, разделенных точкой. -% Ð’ конце номера подраздела точка не ÑтавитÑÑ. Разделы, как и -% подразделы, могут ÑоÑтоÑÑ‚ÑŒ из одного или неÑкольких пунктов. - -% Это наÑтройка по умолчанию, так что её не менÑÑŽ -% Про абзацный отÑтуп учетно в 02-IU8-construction - -% 6.4.2 ЕÑли отчет не имеет подразделов, то Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð² в нем должна -% быть в пределах каждого раздела и номер пункта должен ÑоÑтоÑÑ‚ÑŒ из номеров -% раздела и пункта, разделенных точкой. Ð’ конце номера пункта точка не ÑтавитÑÑ. -% ЕÑли отчет имеет подразделы, то Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð² должна быть в пределах -% подраздела и номер пункта должен ÑоÑтоÑÑ‚ÑŒ -% из номеров раздела, подраздела и пункта, разделенных точками. - -% Это наÑтройка по умолчанию, так что её не менÑÑŽ - -% 6.4.6 Внутри пунктов или подпунктов могут быть приведены перечиÑлениÑ. -% Перед каждым Ñлементом перечиÑÐ»ÐµÐ½Ð¸Ñ Ñледует Ñтавить тире. При необходимоÑти -% ÑÑылки в текÑте отчета на один из Ñлементов перечиÑÐ»ÐµÐ½Ð¸Ñ Ð²Ð¼ÐµÑто тире ÑтавÑÑ‚ -% Ñтрочные буквы руÑÑкого алфавита Ñо Ñкобкой, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð±ÑƒÐºÐ²Ñ‹ "а" (за -% иÑключением букв Ñ‘, з, й, о, ч, ÑŠ, Ñ‹, ÑŒ). ПроÑтые перечиÑÐ»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ -% запÑтой, Ñложные - точкой Ñ Ð·Ð°Ð¿Ñтой. -% При наличии конкретного чиÑла перечиÑлений допуÑкаетÑÑ Ð¿ÐµÑ€ÐµÐ´ каждым Ñлементом -% перечиÑÐ»ÐµÐ½Ð¸Ñ Ñтавить арабÑкие цифры, поÑле которых ÑтавитÑÑ Ñкобка. -\RequirePackage{enumitem} -\AddEnumerateCounter{\Asbuk}{\@Asbuk}{Ð} -\AddEnumerateCounter{\asbuk}{\@asbuk}{а} - -\setlist[enumerate]{ - leftmargin=\parindent+\labelwidth+\labelsep, - labelindent=\parindent, - align=left, - nosep, -} -\setlist[itemize]{ - label=\textendash, - leftmargin=\parindent+\labelwidth+\labelsep, - labelindent=\parindent, - align=left, - nosep, -} -\setlist[enumerate, 1]{label=\asbuk*)} -\setlist[enumerate, 2]{label=\arabic*)} -\setlist[enumerate, 3]{label=\alph*)} -\setlist[enumerate, 4]{label=\roman*)} \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/styles/05-IU8-figures.sty b/macros/latex/contrib/bmstu-iu8/styles/05-IU8-figures.sty deleted file mode 100644 index c0f50267de..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/05-IU8-figures.sty +++ /dev/null @@ -1,54 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{05-IU8-figures}[2021/03/21 v1.0 ИллюÑтрации] - -% 6.5.1 ИллюÑтрации (чертежи, графики, Ñхемы, компьютерные раÑпечатки, диаграммы, -% фотоÑнимки) Ñледует раÑполагать в отчете непоÑредÑтвенно поÑле текÑта отчета, -% где они упоминаютÑÑ Ð²Ð¿ÐµÑ€Ð²Ñ‹Ðµ, или на Ñледующей Ñтранице (по возможноÑти ближе к -% ÑоответÑтвующим чаÑÑ‚Ñм текÑта отчета). Ðа вÑе иллюÑтрации в отчете должны быть -% даны ÑÑылки. При ÑÑылке необходимо пиÑать Ñлово "риÑунок" и его номер, -% например: "в ÑоответÑтвии Ñ Ñ€Ð¸Ñунком 2" и Ñ‚.д. -\RequirePackage{float} -\def\fps@figure{H} - -% 6.5.2 Чертежи, графики, диаграммы, Ñхемы, помещаемые в отчете, должны -% ÑоответÑтвовать требованиÑм Ñтандартов -% Единой ÑиÑтемы конÑтрукторÑкой документации (ЕСКД). - -% 6.5.3 КоличеÑтво иллюÑтраций должно быть доÑтаточным Ð´Ð»Ñ Ð¿Ð¾ÑÑÐ½ÐµÐ½Ð¸Ñ -% излагаемого текÑта отчета. Ðе рекомендуетÑÑ Ð² отчете о ÐИР приводить -% объемные риÑунки. - -% 6.5.4 ИллюÑтрации, за иÑключением иллюÑтраций, приведенных в приложениÑÑ…, -% Ñледует нумеровать арабÑкими цифрами Ñквозной нумерацией. ЕÑли риÑунок один, -% то он обозначаетÑÑ: РиÑунок 1. -% Пример - РиÑунок 1 - Схема прибора - -% 6.5.5 ИллюÑтрации каждого Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ отдельной нумерацией арабÑкими -% цифрами Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ перед цифрой Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ: РиÑунок Ð.3. - -% 6.5.6 ДопуÑкаетÑÑ Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ñ‚ÑŒ иллюÑтрации в пределах раздела отчета. -% Ð’ Ñтом Ñлучае номер иллюÑтрации ÑоÑтоит из номера раздела и порÑдкового номера -% иллюÑтрации, разделенных точкой: РиÑунок 2.1. - -% 6.5.7 ИллюÑтрации при необходимоÑти могут иметь наименование и поÑÑнительные -% данные (подриÑуночный текÑÑ‚). -% Слово "РиÑунок", его номер и через тире наименование помещают поÑле -% поÑÑнительных данных и раÑполагают в центре под -% риÑунком без точки в конце. -% Пример - РиÑунок 2 - Оформление таблицы - -% 6.5.8 ЕÑли наименование риÑунка ÑоÑтоит из неÑкольких Ñтрок, то его Ñледует -% запиÑывать через один межÑтрочный интервал. Ðаименование риÑунка приводÑÑ‚ Ñ -% пропиÑной буквы без точки в конце. ÐŸÐµÑ€ÐµÐ½Ð¾Ñ Ñлов в наименовании графичеÑкого -% материала не допуÑкаетÑÑ. - -\RequirePackage{caption} % ÐаÑтройка подпиÑи -\captionsetup[figure]{ - name=РиÑунок, % 6.5.7 - labelsep=endash, % 6.5.7 - position=below, % 6.5.7 - justification=centering, % Выравнивание по центру - font={stretch=\setspace@singlespace}, % 6.5.8 - width=0.8\linewidth, % Ограничение по длине, а то будет на вÑÑŽ Ñтроку -} diff --git a/macros/latex/contrib/bmstu-iu8/styles/06-IU8-tables.sty b/macros/latex/contrib/bmstu-iu8/styles/06-IU8-tables.sty deleted file mode 100644 index fd08b71fb9..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/06-IU8-tables.sty +++ /dev/null @@ -1,78 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{06-IU8-tables}[2021/03/21 v1.0 Таблицы] - -% Пакеты, которые Ñкорее вÑего пригодÑÑ‚ÑÑ -\RequirePackage{tabularx} -\RequirePackage{longtable} -\RequirePackage{xltabular} -\RequirePackage{multirow} -\RequirePackage{hhline} - -% 6.6.1 Цифровой материал должен оформлÑÑ‚ÑŒÑÑ Ð² виде таблиц. Таблицы применÑÑŽÑ‚ -% Ð´Ð»Ñ Ð½Ð°Ð³Ð»ÑдноÑти и удобÑтва ÑÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¹. - -% 6.6.2 Таблицу Ñледует раÑполагать непоÑредÑтвенно поÑле текÑта, в котором она -% упоминаетÑÑ Ð²Ð¿ÐµÑ€Ð²Ñ‹Ðµ, или на Ñледующей Ñтранице. -% Ðа вÑе таблицы в отчете должны быть ÑÑылки. При ÑÑылке Ñледует печатать Ñлово -% "таблица" Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ ее номера. -\RequirePackage{float} -\def\fps@table{H} - -% 6.6.3 Ðаименование таблицы, при ее наличии, должно отражать ее Ñодержание, -% быть точным, кратким. Ðаименование Ñледует помещать над таблицей Ñлева, -% без абзацного отÑтупа в Ñледующем формате: -% Таблица Ðомер таблицы - Ðаименование таблицы. -% Ðаименование таблицы приводÑÑ‚ Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы без точки в конце. -% ЕÑли наименование таблицы занимает две Ñтроки и более, то его Ñледует -% запиÑывать через один межÑтрочный интервал. -% Таблицу Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ количеÑтвом Ñтрок допуÑкаетÑÑ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñить на другую Ñтраницу. -% При переноÑе чаÑти таблицы на другую Ñтраницу Ñлово "Таблица", ее номер и -% наименование указывают один раз Ñлева над первой чаÑтью таблицы, а над -% другими чаÑÑ‚Ñми также Ñлева пишут Ñлова "Продолжение таблицы" и указывают -% номер таблицы. -% При делении таблицы на чаÑти допуÑкаетÑÑ ÐµÐµ головку или боковик заменÑÑ‚ÑŒ -% ÑоответÑтвенно номерами граф и Ñтрок. При Ñтом нумеруют арабÑкими цифрами -% графы и (или) Ñтроки первой чаÑти таблицы. -\RequirePackage{caption} % ÐаÑтройка подпиÑи -\captionsetup[table]{ - name=Таблица, - labelsep=endash, % Тире - position=above, - justification=justified, % Выравнивание по ширине - singlelinecheck=false, - font={stretch=\setspace@singlespace}, -} - -% 6.6.4 Таблицы, за иÑключением таблиц приложений, Ñледует нумеровать -% арабÑкими цифрами Ñквозной нумерацией. -% Таблицы каждого Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑÑ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð¾Ð¹ нумерацией арабÑкими цифрами -% Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ перед цифрой Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. ЕÑли в отчете одна таблица, -% она должна быть обозначена "Таблица 1" или "Таблица Ð.1" (еÑли она -% приведена в приложении Ð). -% ДопуÑкаетÑÑ Ð½ÑƒÐ¼ÐµÑ€Ð¾Ð²Ð°Ñ‚ÑŒ таблицы в пределах раздела при большом объеме отчета. -% Ð’ Ñтом Ñлучае номер таблицы ÑоÑтоит из -% номера раздела и порÑдкового номера таблицы, разделенных точкой: Таблица 2.3. - -% 6.6.5 Заголовки граф и Ñтрок таблицы Ñледует печатать Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы, а -% подзаголовки граф - Ñо Ñтрочной буквы, еÑли они ÑоÑтавлÑÑŽÑ‚ одно предложение Ñ -% заголовком, или Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы, еÑли они имеют ÑамоÑтоÑтельное значение. -% Ð’ конце заголовков и подзаголовков таблиц точки не ÑтавÑÑ‚ÑÑ. ÐÐ°Ð·Ð²Ð°Ð½Ð¸Ñ -% заголовков и подзаголовков таблиц указывают в единÑтвенном -% чиÑле. - -% 6.6.6 Таблицы Ñлева, Ñправа, Ñверху и Ñнизу ограничивают линиÑми. -% РазделÑÑ‚ÑŒ заголовки и подзаголовки боковика и граф диагональными линиÑми не -% допуÑкаетÑÑ. Заголовки граф выравнивают по центру, а заголовки Ñтрок - -% по левому краю. -% Горизонтальные и вертикальные линии, разграничивающие Ñтроки таблицы, -% допуÑкаетÑÑ Ð½Ðµ проводить, еÑли их отÑутÑтвие не затруднÑет пользование -% таблицей. - -% 6.6.7 ТекÑÑ‚, повторÑющийÑÑ Ð² Ñтроках одной и той же графы и ÑоÑтоÑщий из -% одиночных Ñлов, заменÑÑŽÑ‚ кавычками. -% Ставить кавычки вмеÑто повторÑющихÑÑ Ñ†Ð¸Ñ„Ñ€, буквенно-цифровых обозначений, -% знаков и Ñимволов не допуÑкаетÑÑ. -% ЕÑли текÑÑ‚ повторÑетÑÑ, то при первом повторении его заменÑÑŽÑ‚ Ñловами -% "то же", а далее кавычками. -% Ð’ таблице допуÑкаетÑÑ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ размер шрифта меньше, чем в текÑте отчета. \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/styles/07-IU8-footnotes.sty b/macros/latex/contrib/bmstu-iu8/styles/07-IU8-footnotes.sty deleted file mode 100644 index a485d0d0af..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/07-IU8-footnotes.sty +++ /dev/null @@ -1,37 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{07-IU8-footnotes}[2021/03/21 v1.0 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¸ ÑноÑки] - -% 6.7.1 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð²Ð¾Ð´ÑÑ‚ в отчете, еÑли необходимы поÑÑÐ½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ñправочные -% данные к Ñодержанию текÑта, таблиц или графичеÑкого материала. - -% 6.7.2 Слово "Примечание" Ñледует печатать Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ -% отÑтупа, не подчеркиваÑ. - -% 6.7.3 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ñледует помещать непоÑредÑтвенно поÑле текÑтового, -% графичеÑкого материала или таблицы, к которым отноÑÑÑ‚ÑÑ Ñти примечаниÑ. -% ЕÑли примечание одно, то поÑле Ñлова "Примечание" ÑтавитÑÑ Ñ‚Ð¸Ñ€Ðµ и текÑÑ‚ -% Ð¿Ñ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð°ÑŽÑ‚ Ñ Ð¿Ñ€Ð¾Ð¿Ð¸Ñной буквы. Одно примечание не нумеруетÑÑ. -% ÐеÑколько примечаний нумеруют по порÑдку арабÑкими цифрами без -% точки. -% Примеры -% 1 Примечание - Применение локально введенных кодов обеÑпечивает определенный -% уровень гибкоÑти, который дает возможноÑÑ‚ÑŒ проводить ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ изменениÑ, -% ÑохранÑÑ Ð¿Ñ€Ð¸ Ñтом ÑовмеÑтимоÑÑ‚ÑŒ Ñ Ð¾Ñновным набором Ñлементов -% данных. -% 2 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ -% 1 К текÑту даетÑÑ... . -% 2 Дополнительные данные... . - -% 6.7.4 При необходимоÑти дополнительного поÑÑÐ½ÐµÐ½Ð¸Ñ Ð² отчете допуÑкаетÑÑ -% иÑпользовать примечание, оформленное в виде ÑноÑки. Знак ÑноÑки ÑтавÑÑ‚ без -% пробела непоÑредÑтвенно поÑле того Ñлова, чиÑла, Ñимвола, предложениÑ, -% к которому даетÑÑ Ð¿Ð¾ÑÑнение. Знак ÑноÑки указываетÑÑ Ð½Ð°Ð´Ñтрочно -% арабÑкими цифрами. ДопуÑкаетÑÑ Ð²Ð¼ÐµÑто цифр иÑпользовать знак звездочка - *. -% СноÑку раÑполагают Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа в конце Ñтраницы, на которой -% приведено поÑÑнÑемое Ñлово (ÑловоÑочетание или данные). СноÑку отделÑÑŽÑ‚ от -% текÑта короткой Ñплошной тонкой горизонтальной линией Ñ Ð»ÐµÐ²Ð¾Ð¹ Ñтороны -% Ñтраницы. - - -% ÐаÑтройки по умолчанию вÑему Ñтому удовлетворÑÑŽÑ‚ \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/styles/08-IU8-formulas.sty b/macros/latex/contrib/bmstu-iu8/styles/08-IU8-formulas.sty deleted file mode 100644 index 5370ea82a6..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/08-IU8-formulas.sty +++ /dev/null @@ -1,5 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{08-IU8-formulas}[2021/03/21 v1.0 Формулы] - -% ÐаÑтройки по умолчанию в целом ÑоответÑтвуют ГОСТ \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/styles/09-IU8-cites.sty b/macros/latex/contrib/bmstu-iu8/styles/09-IU8-cites.sty deleted file mode 100644 index 8a42ee23f6..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/09-IU8-cites.sty +++ /dev/null @@ -1,19 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{09-IU8-cites}[2021/03/21 v1.0 СÑылки] - -% 6.9.1 Ð’ отчете о ÐИР рекомендуетÑÑ Ð¿Ñ€Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ ÑÑылки на иÑпользованные -% иÑточники. При нумерации ÑÑылок на документы, иÑпользованные при ÑоÑтавлении -% отчета, приводитÑÑ ÑÐ¿Ð»Ð¾ÑˆÐ½Ð°Ñ Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ð²Ñего текÑта отчета в целом или Ð´Ð»Ñ -% отдельных разделов. ПорÑдковый номер ÑÑылки (отÑылки) приводÑÑ‚ арабÑкими -% цифрами в квадратных Ñкобках в конце текÑта ÑÑылки. ПорÑдковый номер -% библиографичеÑкого опиÑÐ°Ð½Ð¸Ñ Ð¸Ñточника в ÑпиÑке иÑпользованных иÑточников -% ÑоответÑтвует -% номеру ÑÑылки. - -% 6.9.2 СÑылатьÑÑ Ñледует на документ в целом или на его разделы и приложениÑ. - -% 6.9.3 При ÑÑылках на Ñтандарты и техничеÑкие уÑÐ»Ð¾Ð²Ð¸Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°ÑŽÑ‚ их обозначение, -% при Ñтом допуÑкаетÑÑ Ð½Ðµ указывать год их ÑƒÑ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ уÑловии полного -% опиÑÐ°Ð½Ð¸Ñ Ñтандарта и техничеÑких уÑловий в ÑпиÑке иÑпользованных иÑточников в -% ÑоответÑтвии Ñ Ð“ÐžÐ¡Ð¢ 7.1. diff --git a/macros/latex/contrib/bmstu-iu8/styles/10-IU8-titlepage.sty b/macros/latex/contrib/bmstu-iu8/styles/10-IU8-titlepage.sty deleted file mode 100644 index 1d1cc37751..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/10-IU8-titlepage.sty +++ /dev/null @@ -1,237 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{10-IU8-titlepage}[2021/03/21 v1.0 Титульный лиÑÑ‚] - -% ÐŸÐ¾Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð’ÐšÐ  -\def\student#1{\gdef\@student{#1}} -\def\@student{\@latex@warning@no@line{No \noexpand\student given}} - -\def\theme#1{\gdef\@theme{#1}} -\def\@theme{\@latex@warning@no@line{No \noexpand\theme given}} - -\def\group#1{\gdef\@group{#1}} -\def\@group{\@latex@warning@no@line{No \noexpand\group given}} - -\def\supervisor#1{\gdef\@supervisor{#1}} -\def\@supervisor{\@latex@warning@no@line{No \noexpand\supervisor given}} - -\def\researchConsultant#1{\gdef\@researchConsultant{#1}} -\def\@researchConsultant{\@latex@warning@no@line{No \noexpand\researchConsultant given}} - -\def\designConsultant#1{\gdef\@designConsultant{#1}} -\def\@designConsultant{\@latex@warning@no@line{No \noexpand\designConsultant given}} - -\def\technologicalConsultant#1{\gdef\@technologicalConsultant{#1}} -\def\@technologicalConsultant{\@latex@warning@no@line{No \noexpand\technologicalConsultant given}} - -\def\economicsConsultant#1{\gdef\@economicsConsultant{#1}} -\def\@economicsConsultant{\@latex@warning@no@line{No \noexpand\economicsConsultant given}} - -\def\lawsConsultant#1{\gdef\@lawsConsultant{#1}} -\def\@lawsConsultant{\@latex@warning@no@line{No \noexpand\lawsConsultant given}} - -\def\normController#1{\gdef\@normController{#1}} -\def\@normController{\@latex@warning@no@line{No \noexpand\normController given}} - -% ÐŸÐ¾Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐИР -\def\studentFullName#1{\gdef\@studentFullName{#1}} -\def\@studentFullName{\@latex@warning@no@line{No \noexpand\studentFullName given}} - -\def\profile#1{\gdef\@profile{#1}} -\def\@profile{\@latex@warning@no@line{No \noexpand\profile given}} - -\def\speciality#1{\gdef\@speciality{#1}} -\def\@speciality{\@latex@warning@no@line{No \noexpand\speciality given}} - -\def\specialization#1{\gdef\@specialization{#1}} -\def\@specialization{\@latex@warning@no@line{No \noexpand\specialization given}} - -\def\supervisorWithDegree#1{\gdef\@supervisorWithDegree{#1}} -\def\@supervisorWithDegree{\@latex@warning@no@line{No \noexpand\supervisorWithDegree given}} - - -\RequirePackage{fancyhdr} -\fancypagestyle{year}{ - \fancyfoot[C]{\itshape МоÑква, \the\year~г.} - \renewcommand{\headrulewidth}{0pt} - \fancyhead{} -} - -\RequirePackage{tabto} -\RequirePackage[normalem]{ulem} -\RequirePackage[usestackEOL]{stackengine} -\RequirePackage{lineno} -\RequirePackage{xstring} -\RequirePackage{ifthen} - -\newcommand\makeUlineStack[3][3cm]{ - \Shortunderstack{ - \uline{\parbox{#1}{\centering #2}}\\ - {\fontsize{9pt}{9pt}\selectfont #3} - } -} - -\newcommand\makeBMSTUHeader{ - \noindent\begin{minipage}{0.05\textwidth} - \includegraphics[scale=0.4]{inc/bmstu.png} - \end{minipage} - \hfill - \begin{minipage}{0.85\textwidth}\raggedleft - \begin{center} - \fontsize{10pt}{0.3\baselineskip}\selectfont - \textbf{МиниÑтерÑтво науки и выÑшего Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ - РоÑÑийÑкой Федерации \\ - Федеральное гоÑударÑтвенное бюджетное образовательное - учреждение \\ - выÑшего Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ \\ - <<МоÑковÑкий гоÑударÑтвенный техничеÑкий универÑитет \\ - имени Ð. Э. Баумана \\ - (национальный иÑÑледовательÑкий универÑитет)>> \\ - (МГТУ им. Ð. Э. Баумана) - } - \end{center} - \end{minipage} - \begin{center} - \fontsize{12pt}{0.1\baselineskip}\selectfont - \noindent\makebox[\linewidth]{\rule{\textwidth}{2pt}} - \makebox[\linewidth]{\rule{\textwidth}{1pt}} - \end{center} - \begin{flushleft} - \fontsize{12pt}{14pt}\selectfont - ФÐКУЛЬТЕТ \tabto{3cm} <<Информатика и ÑиÑтемы управлениÑ>> (ИУ)\\ - КÐФЕДРР\tabto{3cm} <<Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑ‚ÑŒ>> (ИУ8) - \end{flushleft} -} - -\newcommand\fillingBox[3][\maxlen]{ - \noindent#2 \hfill \makeUlineStack[2.5cm]{~}{(ПодпиÑÑŒ, дата)} \quad - \makeUlineStack[#1]{#3}{(И. О. ФамилиÑ)}\\ -} - -\newcommand\makeDiplomaTheme[1]{ - \noindent - \begin{minipage}{\linewidth} - \centering\internallinenumbers\rmfamily\bfseries\fontsize{20pt}{20pt}\selectfont - \renewcommand{\makeLineNumber}{\rule[-0.7ex]{\textwidth}{0.4pt}\hss}% - #1 - \end{minipage} -} - -\newlength{\maxlen} -\newlength{\templen} - -\newcommand\CompLen[1]{ - \settowidth{\templen}{#1} - \ifdim\templen>\maxlen - \settowidth{\maxlen}{#1} - \fi -} - -\newcommand\fillDiplomaTitle{ - \noindent\begin{center} - \centering\bfseries\fontsize{20pt}{25pt}\selectfont - РÐСЧÐТÐО-ПОЯСÐИТЕЛЬÐÐЯ~ЗÐПИСКÐ\\ - {\fontsize{16pt}{25pt}\bfseries\selectfont К~ВЫПУСКОЙ~КВÐЛИФИКÐЦИОÐÐОЙ~РÐБОТЕ}\\ - {\fontsize{16pt}{25pt}\bfseries\selectfont ÐÐ~ТЕМУ:} - \end{center} - - \vfill - - \makeDiplomaTheme{\@theme} - - \vfill - - {\fontsize{12pt}{15pt}\selectfont - - \fillingBox{Студент \hfill \makeUlineStack[2cm]{\@group}{(Группа)}}{\@student} - - \fillingBox{Руководитель ВКР}{\@supervisor} - - \fillingBox{КонÑультант по иÑÑледовательÑкой чаÑти}{\@researchConsultant} - - \fillingBox{КонÑультант по конÑтрукторÑкой чаÑти}{\@designConsultant} - - \fillingBox{КонÑультант по технологичеÑкой чаÑти}{\@technologicalConsultant} - - \fillingBox{КонÑультант по организационно-\\ÑкономичеÑкой чаÑти}{\@economicsConsultant} - - \fillingBox{КонÑультант по организационно-\\правовому обеÑпечению ИБ}{\@lawsConsultant} - - \fillingBox{Ðормоконтролер}{\@normController} - } -} - -\newcommand\makeResearchTheme[1]{ - \noindent на тему \uline{#1} -} - -\newcommand\fillResearchTitle{ - \noindent\begin{center} - \centering\bfseries\fontsize{20pt}{25pt}\selectfont - Отчёт\\ - {\fontsize{16pt}{25pt}\bfseries\selectfont по научно-иÑÑледовательÑкой работе Ñтудента}\\ - \end{center} - - \vfill - - \makeResearchTheme{\@theme} - - \vfill - { - \setlength{\tabcolsep}{0pt} - \renewcommand{\arraystretch}{1.5} - \noindent \begin{tabular}{ll} - \noindent ФИО Ñтудента: & \@studentFullName \\ - \noindent Группа: & \@group \\ - \noindent СпециальноÑÑ‚ÑŒ: & \@speciality \\ - \noindent СпециализациÑ: & \@specialization \\ - \end{tabular} - } - - \bigskip - - \noindent Ðаучный руководитель ÐИРС: \@supervisorWithDegree - - \bigskip - - \noindent Работа выполнена: \hfill \makeUlineStack[2.5cm]{~}{Дата} \quad \makeUlineStack[2.5cm]{~}{ПодпиÑÑŒ} \quad \makeUlineStack[4cm]{\@student}{(И. О. ФамилиÑ)} - - \bigskip - - \noindent ДопуÑк к защите: \hfill \makeUlineStack[2.5cm]{~}{Дата} \quad \makeUlineStack[2.5cm]{~}{ПодпиÑÑŒ} \quad \makeUlineStack[4cm]{\@supervisor}{(И. О. ФамилиÑ)} - - \vfill - { - \setlength{\tabcolsep}{0pt} - \renewcommand{\arraystretch}{1.5} - \noindent \begin{tabular}{ll} - \noindent Дата защиты ÐИРС: & \makeUlineStack[6cm]{~}{~} \\ - \noindent Результаты защиты: & \makeUlineStack[6cm]{~}{~} \\ - \end{tabular} - } - - \vfill - - \clearpage -} - -\renewcommand\maketitle{ - \begin{titlepage} - \settowidth{\maxlen}{\@student} - \CompLen{\@student} - \CompLen{\@supervisor} - \CompLen{\@researchConsultant} - \CompLen{\@designConsultant} - \CompLen{\@technologicalConsultant} - \CompLen{\@economicsConsultant} - \CompLen{\@lawsConsultant} - \CompLen{\@normController} - - \thispagestyle{year} - \makeBMSTUHeader - - \fillTitle - - \clearpage - \end{titlepage} -} diff --git a/macros/latex/contrib/bmstu-iu8/styles/11-IU8-performers.sty b/macros/latex/contrib/bmstu-iu8/styles/11-IU8-performers.sty deleted file mode 100644 index 8ba0ce8458..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/11-IU8-performers.sty +++ /dev/null @@ -1,5 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{10-IU8-performes}[2021/03/21 v1.0 СпиÑок иÑполниетелей] - -% Т.к. у Ð½Ð°Ñ Ñто не иÑпользуетÑÑ, Ñ Ð¾ÑтавлÑÑŽ Ñто пуÑтымы \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/styles/12-IU8-abstract.sty b/macros/latex/contrib/bmstu-iu8/styles/12-IU8-abstract.sty deleted file mode 100644 index c674c5efac..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/12-IU8-abstract.sty +++ /dev/null @@ -1,27 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{12-IU8-abstract}[2021/03/21 v1.0 Реферат] - -% 6.12.1 Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± общем объеме отчета, количеÑтве книг отчета, иллюÑтраций, -% таблиц, иÑпользованных иÑточников, приложений ÑвлÑÑŽÑ‚ÑÑ Ð¿ÐµÑ€Ð²Ð¾Ð¹ компонентой -% реферата и раÑполагаютÑÑ Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа, в Ñтроку, через запÑтые. - -% 6.12.2 Ключевые Ñлова ÑвлÑÑŽÑ‚ÑÑ Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ компонентой реферата. Они приводÑÑ‚ÑÑ Ð² -% именительном падеже и печатаютÑÑ Ð¿Ñ€Ð¾Ð¿Ð¸Ñными буквами, в Ñтроку, через запÑтые, -% без абзацного отÑтупа и переноÑа Ñлов, без точки в конце перечнÑ. - -% 6.12.3 ТекÑÑ‚ реферата помещаетÑÑ Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа поÑле ключевых Ñлов. -% Ð”Ð»Ñ Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ñтруктурных чаÑтей реферата в ÑоответÑтвии Ñ 5.3.2.2 -% иÑпользуютÑÑ Ð°Ð±Ð·Ð°Ñ†Ð½Ñ‹Ðµ отÑтупы. - -\RequirePackage{lastpage} - -\renewcommand{\abstract}{ - \structure*{РЕФЕРÐТ} - - Отчёт Ñодержит \pageref{LastPage} ÑÑ‚Ñ€.\ifnum - \TotalValue{totalfigures}>0, \TotalValue{totalfigures} риÑ.\fi\ifnum - \TotalValue{totaltables}>0, \TotalValue{totaltables} табл.\fi\ifnum - \TotalValue{totalcites}>0, \TotalValue{totalcites} иÑточн.\fi\ifnum - \TotalValue{totalappendices}>0, \TotalValue{totalappendices} прил.\fi -} diff --git a/macros/latex/contrib/bmstu-iu8/styles/13-IU8-contents.sty b/macros/latex/contrib/bmstu-iu8/styles/13-IU8-contents.sty deleted file mode 100644 index 4bba4deb7e..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/13-IU8-contents.sty +++ /dev/null @@ -1,29 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{13-IU8-contents}[2021/03/21 v1.0 Содержание] - -% Каждую запиÑÑŒ ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÑÑŽÑ‚ как отдельный абзац, выровненный влево. -% Ðомера Ñтраниц указывают выровненными по правому краю Ð¿Ð¾Ð»Ñ Ð¸ ÑоединÑÑŽÑ‚ -% Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ Ñтруктурного Ñлемента или раздела отчета поÑредÑтвом -% отточиÑ. - -\renewcommand\tableofcontents{ - \structure*{СОДЕРЖÐÐИЕ} - \@starttoc{toc} -} - -\renewcommand*\l@section{\@dottedtocline{0}{0mm}{2em}} -\renewcommand*\l@structure{\@dottedtocline{0}{0mm}{0em}} -% ГОСТ 7.32-2017. Пункт 5.4.1: -% ÐžÐ±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð² приводÑÑ‚ поÑле абзацного отÑтупа, -% равного двум знакам, отноÑительно Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð². -\renewcommand*\l@subsection{\@dottedtocline{1}{5mm}{3em}} -% ГОСТ 7.32-2017. Пункт 5.4.1: -% ÐžÐ±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð² приводÑÑ‚ поÑле абзацного отÑтупа, -% равного четырем знакам, отноÑительно Ð¾Ð±Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð². -\renewcommand*\l@subsubsection{\@dottedtocline{2}{10mm}{4em}} -% ОÑтальное - индуктивно -\renewcommand*\l@paragraph{\@dottedtocline{3}{15mm}{5em}} - -\setcounter{secnumdepth}{5} % Глубина заголовков - до пÑтого ÑƒÑ€Ð¾Ð²Ð½Ñ -\setcounter{tocdepth}{2} % Глубина ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ - до второго ÑƒÑ€Ð¾Ð²Ð½Ñ diff --git a/macros/latex/contrib/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty b/macros/latex/contrib/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty deleted file mode 100644 index ea679bd6c5..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty +++ /dev/null @@ -1,44 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{14-IU8-terms-and-definitions}[2021/03/21 v1.0 Содержание] - -\RequirePackage[ - acronym, - automake, - nopostdot, - xindy={glsnumbers=false, language=russian}, -]{glossaries} -\RequirePackage[abbreviations]{glossaries-extra} - -\GlsSetXdyCodePage{utf8} - -\renewcommand{\glossarysection}[2][]{} - -\newglossarystyle{terms}{ - \renewenvironment{theglossary}{}{} - \renewcommand*{\glossentry}[2]{ - \noindent\glstarget{##1}{\glossentryname{##1}}~\textemdash~\glossentrydesc{##1} - \newline - } - \renewcommand*{\glsgroupskip}{}% -} - -\newcommand{\termsanddefenitions}{ - \structure{ТЕРМИÐЫ~И~ОПРЕДЕЛЕÐИЯ} - - \termsAndDefinitionsLine - - \printunsrtglossary[ - style=terms, - nonumberlist - ] -} - -% \newglossarystyle{definitions}{% -% \renewenvironment{theglossary}{}{} -% \renewcommand*{\glossentry}[2]{ -% \noindent\glstarget{##1}{\glossentryname{##1}}~\textemdash~\glossentrydesc{##1} -% \newline -% } -% \renewcommand*{\glsgroupskip}{}% -% } diff --git a/macros/latex/contrib/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty b/macros/latex/contrib/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty deleted file mode 100644 index 8440aac950..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty +++ /dev/null @@ -1,29 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{15-IU8-list-of-abbreviations}[2021/03/21 v1.0 Содержание] - -\RequirePackage[abbreviations]{glossaries-extra} - -\GlsSetXdyCodePage{utf8} - -\renewcommand{\glossarysection}[2][]{} - -\newglossarystyle{definitions}{ - \renewenvironment{theglossary}{}{} - \renewcommand*{\glossentry}[2]{ - \noindent\glstarget{##1}{\glossentryname{##1}}~\textemdash~\glossentrydesc{##1} - \newline - } - \renewcommand*{\glsgroupskip}{} -} - -\newcommand{\listofabbreviations}{ - \structure{ПЕРЕЧЕÐЬ~СОКРÐЩЕÐИЙ~И~ОБОЗÐÐЧЕÐИЙ} - - \abbreviationsLine - - \printunsrtglossary[ - style=definitions, - type=\acronymtype - ] -} diff --git a/macros/latex/contrib/bmstu-iu8/styles/16-IU8-references.sty b/macros/latex/contrib/bmstu-iu8/styles/16-IU8-references.sty deleted file mode 100644 index 65c710c41f..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/16-IU8-references.sty +++ /dev/null @@ -1,27 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{16-IU8-references}[2021/03/21 v1.0 СпиÑок иÑпользованных иÑточников] - -% Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± иÑточниках Ñледует раÑполагать в порÑдке поÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑÑылок на -% иÑточники в текÑте отчета и нумеровать арабÑкими цифрами Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и печатать -% Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа. -\usepackage[ - backend=biber, - style=gost-numeric, - % refsection=structure, - % sorting=ynt, -]{biblatex} -\defbibheading{bibliography}[СПИСОК~ИСПОЛЬЗОВÐÐÐЫХ~ИСТОЧÐИКОВ]{\structure{#1}} -\addto{\captionsrussian}{% - \renewcommand{\contentsname}{СОДЕРЖÐÐИЕ} -} - -% \bibliographystyle{ugost2008} -% \renewcommand{\@biblabel}[1]{#1.} - - % \usepackage{natbib} -% \renewcommand\bibsection{% -% \structure*{{\normalsize\underline{\refname}}\@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}}% -% }% -% \def\bibheading{bibliography}{\section*{Bibliography}} -% \usepackage[nottoc,numbib]{tocbibind} \ No newline at end of file diff --git a/macros/latex/contrib/bmstu-iu8/styles/17-IU8-appendices.sty b/macros/latex/contrib/bmstu-iu8/styles/17-IU8-appendices.sty deleted file mode 100644 index 26f692b165..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/17-IU8-appendices.sty +++ /dev/null @@ -1,23 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{17-IU8-appendices}[2021/03/21 v1.0 ПриложениÑ] - -\newcommand{\appendixsection}[1]{ - \stepcounter{apps} - \section*{\Asbuk{apps}} - \begin{center} - \bfseries #1 - \end{center} - \addcontentsline{toc}{section}{ПРИЛОЖЕÐИЕ~\Asbuk{apps}~{#1}} -} - -\renewcommand{\appendix}{ - \renewcommand\section{\clearpage\@startsection{section}{1}{0pt}{1em}{1em}{\bfseries\centering ПРИЛОЖЕÐИЕ~}} - \setcounter{section}{0} - \setcounter{figure}{0} - \setcounter{table}{0} - \setcounter{equation}{0} - \renewcommand\thefigure{\Asbuk{apps}.\arabic{figure}} - \renewcommand\thetable{\Asbuk{apps}.\arabic{figure}} - \renewcommand\theequation{\Asbuk{apps}.\arabic{figure}} -} diff --git a/macros/latex/contrib/bmstu-iu8/styles/18-IU8-extra.sty b/macros/latex/contrib/bmstu-iu8/styles/18-IU8-extra.sty deleted file mode 100644 index c456e8e8fd..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/18-IU8-extra.sty +++ /dev/null @@ -1,27 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{18-IU8-extra}[2021/03/21 v1.0 Разные улучшениÑ] - -\RequirePackage{graphicx} - -\RequirePackage[none]{hyphenat} % Отключим переноÑÑ‹, так краÑивее - -\RequirePackage[all, defaultlines=4]{nowidow} % Запрет "виÑÑчих" Ñлов - -\sloppy % Запретить выход текÑта за Ð¿Ð¾Ð»Ñ - -\RequirePackage{bookmark} -\def\toclevel@structure{1} % Ð”Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð³Ð¾ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² Ñодержании pdf - -\hypersetup{ - colorlinks=true, - unicode=true, - urlcolor=black, - linkcolor=black, - anchorcolor=black, - citecolor=black, - menucolor=black, - filecolor=black, -} % Кликабельные ÑÑылки в pdf - -\hbadness=10000 diff --git a/macros/latex/contrib/bmstu-iu8/styles/19-IU8-counters.sty b/macros/latex/contrib/bmstu-iu8/styles/19-IU8-counters.sty deleted file mode 100644 index 35253a1b2d..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/19-IU8-counters.sty +++ /dev/null @@ -1,22 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{19-IU8-counters}[2021/03/21 v1.0 Счётчики] - -\RequirePackage{calc} -\RequirePackage{xassoccnt} -\RequirePackage{totcount} - -\NewTotalDocumentCounter{totalfigures} -\DeclareAssociatedCounters{figure}{totalfigures} -\NewTotalDocumentCounter{totaltables} -\DeclareAssociatedCounters{table}{totaltables} - -\RequirePackage{totcount} -\newtotcounter{citenum} -\AtEveryBibitem{\stepcounter{citenum}} -\NewTotalDocumentCounter{totalcites} -\DeclareAssociatedCounters{citenum}{totalcites} - -\newcounter{apps} -\NewTotalDocumentCounter{totalappendices} -\DeclareAssociatedCounters{apps}{totalappendices} diff --git a/macros/latex/contrib/bmstu-iu8/styles/20-IU8-listing.sty b/macros/latex/contrib/bmstu-iu8/styles/20-IU8-listing.sty deleted file mode 100644 index a2d817a0fb..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/20-IU8-listing.sty +++ /dev/null @@ -1,43 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{20-IU8-listing}[2021/03/21 v1.0 ЛиÑтинги] - -\RequirePackage{listings} -\RequirePackage{xcolor} - -\definecolor{codegreen}{rgb}{0,0.6,0} -\definecolor{codegray}{rgb}{0.5,0.5,0.5} -\definecolor{codepurple}{rgb}{0.58,0,0.82} -\definecolor{backcolour}{rgb}{0.95,0.95,0.92} - -\lstdefinestyle{IU8}{ - % backgroundcolor=\color{backcolour}, - % commentstyle=\color{codegreen}, - % keywordstyle=\color{magenta}, - numberstyle=\tiny\color{black}, - % stringstyle=\color{codepurple}, - basicstyle=\ttfamily\footnotesize, - breakatwhitespace=false, - breaklines=true, - captionpos=tl, - xleftmargin=0.5\parindent, - keepspaces=true, - numbers=left, - numbersep=5pt, - showspaces=false, - showstringspaces=false, - showtabs=false, - tabsize=2, -} -\lstset{style=IU8} - -\DeclareCaptionFormat{listing}{#1#2#3} -\captionsetup[lstlisting]{ - format=listing, - singlelinecheck=false, - labelsep=endash, -} - -\newcommand{\listing}[2][]{% - \lstinputlisting[caption={\texttt{\detokenize{#2}}},#1]{#2}% -} diff --git a/macros/latex/contrib/bmstu-iu8/styles/21-IU8-math.sty b/macros/latex/contrib/bmstu-iu8/styles/21-IU8-math.sty deleted file mode 100644 index 00b85e1c24..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/21-IU8-math.sty +++ /dev/null @@ -1,11 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{21-IU8-math}[2021/03/21 v1.0 Математика] - -\RequirePackage{amsthm} -\theoremstyle{definition} -\newtheorem{definition}{Определение}[section] -\newtheorem{theorem}{Теорема}[section] -\newtheorem{corollary}{СледÑтвие}[theorem] -\newtheorem{lemma}{Лемма}[section] -\newtheorem{example}{Пример}[section] diff --git a/macros/latex/contrib/bmstu-iu8/styles/22-IU8-algorithms.sty b/macros/latex/contrib/bmstu-iu8/styles/22-IU8-algorithms.sty deleted file mode 100644 index e7ede15997..0000000000 --- a/macros/latex/contrib/bmstu-iu8/styles/22-IU8-algorithms.sty +++ /dev/null @@ -1,26 +0,0 @@ -% Author: CatInCosmicSpace -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{22-IU8-algorithms}[2021/03/21 v1.0 Ðлгоритмы] - -\RequirePackage[linesnumbered,boxruled]{algorithm2e} -\SetAlCapSty{} - -% Перевод плагина -\SetKwInput{KwData}{ИÑходные параметры} -\SetKwInput{KwResult}{Результат} -\SetKwInput{KwIn}{Входные данные} -\SetKwInput{KwOut}{Выходные данные} -\SetKwIF{If}{ElseIf}{Else}{еÑли}{тогда}{иначе еÑли}{иначе}{конец уÑловиÑ} -\SetKwFor{While}{до тех пор, пока}{выполнÑÑ‚ÑŒ}{конец цикла} -\SetKw{KwTo}{от} -\SetKw{KwRet}{возвратить} -\SetKw{Return}{возвратить} -\SetKwBlock{Begin}{начало блока}{конец блока} -\SetKwSwitch{Switch}{Case}{Other}{Проверить значение}{и выполнить}{вариант}{в противном Ñлучае}{конец варианта}{конец проверки значений} -\SetKwFor{For}{цикл}{выполнÑÑ‚ÑŒ}{конец цикла} -\SetKwFor{ForEach}{Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾}{выполнÑÑ‚ÑŒ}{конец цикла} -\SetKwRepeat{Repeat}{повторÑÑ‚ÑŒ}{до тех пор, пока} -\SetAlgorithmName{Ðлгоритм}{алгоритм}{СпиÑок алгоритмов} -\SetAlgoCaptionSeparator{~---} -% \SetAlgoCaptionLayout{centerline} -\renewcommand{\@algocf@capt@plain}{above} diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index c1a4a44dc4..f1143d2b36 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -23,12 +23,12 @@ % % \changes{v1.20}{2021/01/09}{修改和完善用户文档。} % \changes{v1.20}{2021/01/09}{模æ¿æ›´æ”¹ä¸ºä½¿ç”¨ CC-BY 许å¯å议。} -% \changes{v1.25s}{2021/05/03}{å–消附带的示例文件,å¯æŸ¥çœ‹åŽ†å²ç‰ˆæœ¬åŠå…¶å®ƒæ¥æºçš„使用样例。} -% \changes{v1.25s}{2021/06/02}{将模å—的代ç ç‹¬ç«‹å‡ºæ¥ä¸º \pkg{easybase} å®åŒ…,适用于 \CTeX 文档类。} +% \changes{v1.25t}{2021/05/03}{å–消附带的示例文件,å¯æŸ¥çœ‹åŽ†å²ç‰ˆæœ¬åŠå…¶å®ƒæ¥æºçš„使用样例。} +% \changes{v1.25t}{2021/06/02}{将模å—的代ç ç‹¬ç«‹å‡ºæ¥ä¸º \pkg{easybase} å®åŒ…,适用于 \CTeX 文档类。} % % \title{\sffamily easybook 文档类手册} % \author{瞿毅} -% \date{2021/06/04\hskip\ccwd\relax v1.25s\thanks{\url{https://gitee.com/texl3/easybook}}} +% \date{2021/06/05\hskip\ccwd\relax v1.25t\thanks{\url{https://gitee.com/texl3/easybook}}} % % \maketitle % \begin{abstract} @@ -134,7 +134,7 @@ % \end{syntax} % 传递给 \cls{ctexbook} 设置字体,最好ä¸è¦ä½¿ç”¨åŽŸæœ‰çš„ \opt{fontset} 选项,默认情况下使用自定义字体而ä¸å¼€å¯è¿™ä¸ªé€‰é¡¹ï¼Œå¯æ ¹æ®å®‰è£…的字体åŠç”µè„‘系统选å–。\opt{noto} 与 \opt{none} 选项的相关æè¿°è§å°èŠ‚ \ref{subsec:font settings},\opt{overleaf} 是一个å„系统通用选项,会检测系统环境选å–对应字体。 % \changes{v1.21}{2021/01/12}{默认字体与 \CTeX 一致,ä¸å†æ˜¯è‡ªå®šä¹‰å­—体。} -% \changes{v1.25s}{2021/05/04}{ä¿®å¤ä½¿ç”¨ \pkg{xeCJK} 与 \pkg{fontspec} å®åŒ…的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。} +% \changes{v1.25t}{2021/05/04}{ä¿®å¤ä½¿ç”¨ \pkg{xeCJK} 与 \pkg{fontspec} å®åŒ…的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。} % \end{function} % % \begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper} @@ -184,7 +184,7 @@ % \tn{listoflstlistings*+}\oarg{键值列表} % \end{syntax} % \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflstlistings} 输出代ç ç›®å½•ã€‚带有星å·çš„目录命令ä¸å°†æ ‡é¢˜æ·»åŠ è¿›ä¸»æ–‡æ¡£ç›®å½•ï¼Œå¸¦æœ‰+å·çš„目录命令å¯ä»¥ä½¿å½“å‰æ ‡é¢˜ç¼–å·ã€‚\tn{tableofcontents+} 与其它命令ä¸åŒæ˜¯ç”¨äºŽè¾“出åŒè¯­ç›®å½•ï¼Œéœ€è¦ä¸ŽåŒè¯­ç›®å½•æ ‡é¢˜å‘½ä»¤ \tn{bichapter} 等或设置图片ã€è¡¨æ ¼å’Œä»£ç ç­‰è‹±æ–‡ç›®å½•çš„标题é…åˆä½¿ç”¨ï¼Œé™„加代ç æ˜¯ä¸­æ–‡ä¸Žè‹±æ–‡ç›®å½•ä¹‹é—´çš„代ç ï¼Œå¯ä»¥æ’入文本和æ¢é¡µå‘½ä»¤ç­‰ã€‚目录的键值列表选项如下 -% \changes{v1.25s}{2021/05/05}{命令 \tn{tableofcontents} å¯ä»¥è¾“出åŒè¯­ç›®å½•ã€‚} +% \changes{v1.25t}{2021/05/05}{命令 \tn{tableofcontents} å¯ä»¥è¾“出åŒè¯­ç›®å½•ã€‚} % \end{function} % % \begin{function}{multoc,columns,title,format,aftertitle,pagestyle,book,article} @@ -201,7 +201,7 @@ % 在书ç±æ¨¡å¼ä¸” \opt{book} 选项开å¯æˆ–者文章模å¼çš„情况下,\opt{format} 用于设置目录标题的格å¼ï¼Œ\opt{aftertitle} 选项的代ç å°†è¢«æ’入到目录标题内容之åŽï¼Œ\opt{pagestyle} 是目录标题所在页的页é¢æ ¼å¼ï¼Œé™¤æ­¤ä¹‹å¤–è¿˜æ”¯æŒ \opt{ctexset/chapter} 或 \opt{ctexset/section} 所有的章节标题样å¼é€‰é¡¹ã€‚\opt{book} 选项使目录标题按照 chapter 级别输出,\opt{article} 选项使目录标题按照 section 级别输出,默认为 chapter 级别。 % \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,å¯è®¾ç½®æ ‡é¢˜è¾“出级别以åŠæ˜¯å¦åŠ å…¥ä¸»ç›®å½•ã€‚} % \changes{v1.24}{2021/04/04}{目录命令的å¯é€‰å‚数增加标题键值。} -% \changes{v1.25s}{2021/06/02}{目录å¯è®¾ç½®å¤šæ ï¼Œå¹¶åœ¨ article 模å¼ä»ç„¶ç”Ÿæ•ˆã€‚} +% \changes{v1.25t}{2021/06/02}{目录å¯è®¾ç½®å¤šæ ï¼Œå¹¶åœ¨ article 模å¼ä»ç„¶ç”Ÿæ•ˆã€‚} % \end{function} % % \subsubsection{标题命令} @@ -217,7 +217,7 @@ % åŒè¯­ç›®å½•çš„标题命令目å‰è®¾ç½®äº†å¸¸ç”¨çš„三个级别,它们将中文标题正常输出,并使中英文标题加入åŒè¯­ç›®å½•ï¼Œè¿™ä¸ªåŠŸèƒ½æ˜¯ä¸ºå›½å†…一些大学的学ä½è®ºæ–‡æ¨¡æ¿çš„è¦æ±‚设计,在一般情况和英文模å¼ä¸‹ä¸éœ€è¦ä½¿ç”¨ã€‚ % % 它们的星å·å˜ä½“命令使文中标题ä¸ç¼–å·ï¼Œä½†æ˜¯ä»ç„¶åŠ å…¥åŒè¯­ç›®å½•ï¼Œè‹¥è‹±æ–‡æ ‡é¢˜å‚数空置那么仅加入中文目录而ä¸åŠ å…¥è‹±æ–‡ç›®å½•ï¼Œè¿™ä¸€ç‰¹ç‚¹ä¸Ž \tn{chapter*} 等命令的行为ä¸å¤ªä¸€æ ·ï¼Œåœ¨ä¸€äº›æƒ…况下会用到。å¯é€‰å‚数是目录中的中文标题,默认与中文标题一致,正文标题过长时å¯ç”¨å®ƒè®¾ç½®åœ¨ç›®å½•ä¸­æ˜¾ç¤ºçš„标题。åŒè¯­ç›®å½•çš„æ ¼å¼æ˜¯ä¸€è‡´çš„,共享使用 \tn{tocset} 的设置,英文目录的章级别标题ååŠç¼–å·çš„修改方å¼å¦‚下 -% \changes{v1.25s}{2021/05/05}{增加与åŒè¯­ç›®å½•é…åˆçš„标题命令。} +% \changes{v1.25t}{2021/05/05}{增加与åŒè¯­ç›®å½•é…åˆçš„标题命令。} % \end{function} % % \begin{function}{biname,binmuber} @@ -317,7 +317,7 @@ % \changes{v1.10}{2021/01/08}{ä¿®å¤äº† \opt{linktopage} 选项关闭时目录中标题编å·æ— è¶…链接的问题。} % \changes{v1.23}{2021/03/19}{ä¿®å¤åœ¨ \pkg{ctex} v2.5.6 æ›´æ–°åŽ \cls{easybook} 与 \pkg{hyperref} 冲çªé—®é¢˜ã€‚} % \changes{v1.24}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支æŒã€‚} -% \changes{v1.25s}{2021/05/06}{模å—å \opt{link} 改为 \opt{refset},\opt{link} 作为兼容性ä¿ç•™ã€‚} +% \changes{v1.25t}{2021/05/06}{模å—å \opt{link} 改为 \opt{refset},\opt{link} 作为兼容性ä¿ç•™ã€‚} % \end{function} % % \begin{optdesc} @@ -374,7 +374,7 @@ % \ding{229} 以上选项路径为 \opt{subfont/...} % \changes{v1.10}{2021/01/08}{加入自定义éžæ­£æ–‡å­—体选项。} % \changes{v1.23}{2021/02/08}{ä¿®å¤ä½¿ç”¨ \tn{zihao} 命令设置字体失效的问题。} -% \changes{v1.25s}{2021/05/31}{其它字体模å—åç”± \opt{elsefont} 改为 \opt{subfont},并增加数学字体的选项 \opt{subfont/math}。} +% \changes{v1.25t}{2021/05/31}{其它字体模å—åç”± \opt{elsefont} 改为 \opt{subfont},并增加数学字体的选项 \opt{subfont/math}。} % \end{function} % % \begin{optdesc} @@ -399,7 +399,7 @@ % \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,å¯ä»¥ä½¿ç”¨ \hologo{BibTeX} 或 \hologo{biber} 编译å‚考文献。} % \changes{v1.23}{2021/02/23}{使用 \opt{bibset} 选项时å¯è®¾ç½®æ ‡æ³¨é£Žæ ¼ã€‚} % \changes{v1.24}{2021/04/09}{å¯ä»¥ä¸è½½å…¥å‚考文献包手动é…ç½®å‚考文献格å¼ã€‚} -% \changes{v1.25s}{2021/05/12}{å–消 \opt{bib-loadpkg} 选项,由是å¦è®¾ç½®å‚考文献数æ®åº“æ¥å†³å®šè½½å…¥å®åŒ…。} +% \changes{v1.25t}{2021/05/12}{å–消 \opt{bib-loadpkg} 选项,由是å¦è®¾ç½®å‚考文献数æ®åº“æ¥å†³å®šè½½å…¥å®åŒ…。} % \end{function} % % \begin{optdesc} @@ -605,7 +605,7 @@ % 上é¢å‡ ä¸ªé€‰é¡¹ç”¨äºŽè®¾ç½®è„šæ³¨æ ¼å¼ï¼Œ\opt{fnparskip} å’Œ \opt{fnparindent} 选项仅在 \opt{fnhang = true} 时有效。\opt{fnhang} 用于将脚注设置为悬挂缩进的格å¼ï¼Œ\opt{fnmark-pos} 选项设置脚注编å·çš„ä½ç½®ï¼Œæ­£å¸¸æ–‡æœ¬æˆ–是上标形å¼ã€‚\opt{fnmark-num} 选项设置脚注编å·çš„æ ¼å¼ï¼Œé»˜è®¤ä¸ºåŽŸç”Ÿæ ·å¼ \opt{plain},还å¯ä»¥æ”¹ä¸º \opt{pifont} çš„å„个版本,从左往å³ä¾æ¬¡ä¸ºæ™®é€šç‰ˆã€é˜´æ–‡è¡¬çº¿ç‰ˆã€é˜³æ–‡æ— è¡¬çº¿ç‰ˆå’Œé˜´æ–‡æ— è¡¬çº¿ç‰ˆï¼Œç¼ºç‚¹æ˜¯å®ƒä»¬çš„ç¼–å·ä»…包括1-10。 % % \opt{fnmark-form} 是脚注标记的格å¼ï¼Œåœ¨æ­¤è®¾ç½®å­—体命令会覆盖 \opt{subfont/footnote} 的设置,最åŽä¸€ä¸ªæ ¼å¼å‘½ä»¤å¯ä»¥å¸¦æœ‰ä¸€ä¸ªå‚数,这个å‚数接å—脚注编å·ï¼Œä¸€èˆ¬é…åˆ \opt{fnmark-num = plain} 使用。\opt{afterfnmark} 是脚注标记åŽçš„代ç ï¼Œä¸€èˆ¬ç”¨äºŽè®¾ç½®æ ‡è®°ä¸Žæ–‡æœ¬é—´çš„è·ç¦»ã€‚ -% \changes{v1.25s}{2021/05/12}{增加脚注样å¼è®¾ç½®é€‰é¡¹ã€‚} +% \changes{v1.25t}{2021/05/12}{增加脚注样å¼è®¾ç½®é€‰é¡¹ã€‚} % \end{function} % % \subsection{目录样å¼} @@ -624,7 +624,7 @@ % \opt{format} 是目录中标题的格å¼ï¼Œå¯ä»¥è®¾ç½®å­—体和加入垂直间è·ç­‰ï¼Œåž‚ç›´é—´è·æœ€å¥½ä½¿ç”¨æ— é—´è·é‡åˆçš„ \tn{addvspace} 命令,带有加å·çš„ \opt{format+} 选项用于在已有的格å¼å‘½ä»¤åŽé™„加内容。\opt{indent} 是目录中标题在页é¢å·¦ä¾§çš„缩进è·ç¦»ï¼Œåº”该有长度å•ä½ã€‚\opt{rule} 选项中一般应当使用 \tn{tocrule} 命令,将会在接下æ¥ä»‹ç»ã€‚\opt{numsep} 是有编å·çš„标题在目录中编å·ä¸Žæ ‡é¢˜çš„é—´è·ã€‚ % \changes{v1.21}{2021/01/13}{增加é…置目录样å¼çš„选项。} % \changes{v1.24}{2021/04/20}{增加目录中编å·ä¸Žæ ‡é¢˜çš„é—´è·é€‰é¡¹ \opt{numsep}。} -% \changes{v1.25s}{2021/05/14}{å¯ä»¥åˆ†åˆ«è®¾ç½®å›¾ç‰‡ã€è¡¨æ ¼å’Œä»£ç ç›®å½•çš„æ ¼å¼ã€‚} +% \changes{v1.25t}{2021/05/14}{å¯ä»¥åˆ†åˆ«è®¾ç½®å›¾ç‰‡ã€è¡¨æ ¼å’Œä»£ç ç›®å½•çš„æ ¼å¼ã€‚} % \end{function} % % \begin{function}[added = 2021-01-13,updated = 2021-04-20]{\tocrule,\EbNumberLine} @@ -709,7 +709,7 @@ % \tn{end}\marg{环境å} % \end{syntax} % \pkg{tabularray} 是一个较新的å®åŒ…,ä¸ä»…æ供了 \pkg{tabularx}ã€\pkg{multirow}ã€å’Œ \pkg{booktabs} å®åŒ…的功能,并且ä¸ä¾èµ–其它å®åŒ…与它们åŒæ—¶ä½¿ç”¨ä¸ä¼šäº§ç”Ÿå†²çªï¼Œè¿˜å®žçŽ°äº†ç”¨ç®€ä¾¿çš„键值列表方å¼è®¾ç½®è¡¨æ ¼æ ·å¼ã€‚ç›®å‰é™¤äº†è¡¨å¤´æ–œçº¿ä»¥åŠè·¨é¡µåŠŸèƒ½å­˜åœ¨ä¸è¶³ï¼Œå…¶å®ƒæ–¹é¢å·²æ»¡è¶³å¯¹è¡¨æ ¼ç»å¤§å¤šæ•°æ ¼å¼çš„需求,具体用法å¯è§å®åŒ…的说明文档。 -% \changes{v1.25s}{2021/05/17}{使用功能更便æ·é½å…¨çš„ \pkg{tabularray} å®åŒ…设置表格样å¼ã€‚} +% \changes{v1.25t}{2021/05/17}{使用功能更便æ·é½å…¨çš„ \pkg{tabularray} å®åŒ…设置表格样å¼ã€‚} % \end{function} % % \subsection{列表} @@ -873,7 +873,7 @@ % \tn{qtyrange}\oarg{键值列表}\marg{æ•°å­—1}\marg{æ•°å­—2}\marg{å•ä½} % \end{syntax} % \pkg{siunitx} å®åŒ…çš„ \tn{num} 命令å¯ä»¥è¾“出以科学计数法表示的数值,å•ä½æ ¼å¼åŒ–命令 \tn{unit} 包å«æ–‡å­—项目(例如字æ¯æˆ–数字)时,使用 . å’Œ \~{} 放置在å•å…ƒä¹˜ç§¯ä¸­é—´ï¼Œå¹¶ä½¿ç”¨ \_ å’Œ \^{} 正确放置指定的下标和上标。格å¼åŒ–方法å¯åœ¨æ•°å­¦å’Œæ–‡æœ¬æ¨¡å¼ä¸‹ä½¿ç”¨ã€‚而 \tn{qty} 命令å¯ç”¨æ¥è¾“出带有å•ä½çš„é‡ï¼Œ\tn{qtyrange} å¯ä»¥è¾“出带有范围和å•ä½çš„é‡ã€‚ -% \changes{v1.25s}{2021/05/18}{\pkg{siunitx} å®åŒ… v3.0.0 æ›´æ–°åŽç”¨æ³•æ”¹å˜ï¼Œä¿®æ”¹ç›¸å…³é…置选项。} +% \changes{v1.25t}{2021/05/18}{\pkg{siunitx} å®åŒ… v3.0.0 æ›´æ–°åŽç”¨æ³•æ”¹å˜ï¼Œä¿®æ”¹ç›¸å…³é…置选项。} % \end{function} % % \begin{ctexexam} @@ -1011,7 +1011,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/06/04}{1.25s}{beta} +\ProvidesExplClass{easybook}{2021/06/05}{1.25t}{beta} \bool_set_false:N \l__eb_compile_draft_bool \bool_set_false:N \l__eb_title_newline_bool @@ -1255,7 +1255,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{etoolbox} -\ProvidesExplPackage{easybase}{2021/06/04}{1.25s}{beta} +\ProvidesExplPackage{easybase}{2021/06/05}{1.25t}{beta} \cs_generate_variant:Nn \eb_ctex_define:nn { nx } \cs_generate_variant:Nn \int_to_arabic:n { v } @@ -1288,12 +1288,24 @@ } \NewDocumentCommand{\eb@package@load}{O{}m} { - \seq_set_from_clist:No \l__eb_package_name_seq {#2} + \seq_set_split:Nnn \l__eb_package_name_seq { + } {#2} \int_compare:oNnT { \seq_count:N \l__eb_package_name_seq } = { 1 } { \PassOptionsToPackage{#1}{#2} } \seq_map_inline:Nn \l__eb_package_name_seq - { \@ifpackageloaded{##1}{}{\RequirePackage{##1}} } + { + \regex_match:nnTF { [^\w] } {##1} + { + \regex_split:nnNT { \[ } {##1} \l_tmpa_seq + { \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl } + \@ifpackageloaded{\l_tmpa_tl}{} + { + \exp_last_unbraced:Nx \RequirePackage + { [\seq_use:Nn \l_tmpa_seq { , } }{\l_tmpa_tl} + } + } + { \@ifpackageloaded{##1}{}{\RequirePackage{##1}} } + } } \cs_new_protected:Npn \eb_at_end_preamble:n { \ctex_gadd_ltxhook:nn { env/document/before } } @@ -1323,12 +1335,8 @@ \clist_map_inline:nn { - { svgnames } { xcolor }, - { stable,bottom } { footmisc }, - { normalem } { ulem }, { protrusion = false } { microtype }, { list = off } { bicaption }, - { shortlabels,inline } { enumitem }, { many } { tcolorbox }, { xindy } { imakeidx }, { CJKmath } { xeCJK }, @@ -1401,15 +1409,17 @@ \eb@package@load { - xcolor, - footmisc,setspace, - amsmath,amsthm,thmtools, - chemformula,siunitx,ulem,pifont, - geometry,marginnote,nccfoots, - pdfpages,graphicx,multicol, - fancyhdr,titletoc,caption, - tabularray, - enumitem, + xcolor[svgnames]+ + footmisc[stable,bottom]+ + ulem[normalem]+ + enumitem[shortlabels,inline]+ + amsmath+amsthm+thmtools+ + chemformula+siunitx+pifont+ + geometry+marginnote+nccfoots+ + pdfpages+multicol+ + fancyhdr+titletoc+caption+ + tabularray+ + setspace+ listings } \cs_new_protected:Npn \eb_package_later_bool:nn #1#2 @@ -1759,14 +1769,14 @@ \ctex_define:n { tocset/#1 .meta:nn = { ctex/tocset/#1 } {##1} } \eb_ctex_define:nn { tocset } { - #1/format .tl_set:c = l__eb_toc_#1_format_tl, - #1/format+ .code:n = + #1/format .tl_set:c = l__eb_toc_#1_format_tl, + #1/format+ .code:n = { \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1} }, - #1/format~+ .code:n = + #1/format~+ .code:n = { \tl_put_right:cn { l__eb_toc_#1_format_tl } {##1} }, - #1/indent .tl_set:c = l__eb_toc_#1_indent_tl, - #1/rule .tl_set:c = l__eb_toc_#1_rule_tl, - #1/numsep .tl_set:c = eb@toc@#1@numsep + #1/indent .dim_set:c = l__eb_toc_#1_indent_dim, + #1/rule .tl_set:c = l__eb_toc_#1_rule_tl, + #1/numsep .tl_set:c = eb@toc@#1@numsep } \seq_if_in:NnF \c__eb_toc_heading_level_seq { subsection } { @@ -1775,8 +1785,8 @@ } \seq_pop:NN \c__eb_toc_heading_level_seq \l_tmpa_tl \titlecontents{#1} - [\use:c { l__eb_toc_#1_indent_tl }] - {\use:c { l__eb_toc_#1_format_tl }} + [\dim_use:c { l__eb_toc_#1_indent_dim }] + {\tl_use:c { l__eb_toc_#1_format_tl }} { \ifbool{eb@titletoc@hang@fix} { @@ -1789,7 +1799,7 @@ } }{} }{} - {\use:c { l__eb_toc_#1_rule_tl }} + {\tl_use:c { l__eb_toc_#1_rule_tl }} } \seq_map_function:NN \c__eb_toc_heading_level_seq \eb_toc_assign_keys:n @@ -2108,8 +2118,8 @@ { \bisection{\eb@toc@title}{\eb@bitoc@title} } }{ \IfBooleanTF{#2} - {\eb_title_mark_notoc:n {\eb@toc@title}} - {\eb_title_mark_intoc:n {\eb@toc@title}} + {\eb_title_mark_notoc:n { \eb@toc@title }} + {\eb_title_mark_intoc:n { \eb@toc@title }} } } \cs_new_protected:Npn \eb_biber_title_level_bool:n #1 @@ -2310,7 +2320,7 @@ \c__eb_subfont_math_charter_tl { \eb_put_newtxmath:n { charter,noOT1 } } } - { \eb@package@load{newtxmath,bm} } + { \eb@package@load{newtxmath+bm} } } \fp_new:N \l__eb_spread_line_fp @@ -2407,10 +2417,10 @@ } \skip_set:Nn \parskip { 0pt plus 2pt minus 1pt } -\skip_set:Nn \floatsep { 12pt plus 2pt minus 2pt } \skip_set:Nn \intextsep { 14pt plus 2pt minus 2pt } \skip_set:Nn \textfloatsep { 16pt plus 2pt minus 4pt } \skip_set:Nn \multicolsep { 10pt plus 4pt minus 3pt } +\skip_set:Nn \dbltextfloatsep { 16pt plus 2pt minus 4pt } \setcounter{topnumber}{4} \setcounter{bottomnumber}{4} \setcounter{totalnumber}{8} @@ -2418,6 +2428,7 @@ \tl_gset:Nn \topfraction { 0.8 } \tl_gset:Nn \bottomfraction { 0.8 } \tl_gset:Nn \floatpagefraction { 0.9 } +\tl_gset:Nn \dblfloatpagefraction { 0.9 } \tl_gset:Nn \ULthickness { 0.75pt } \allowdisplaybreaks[4] \DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps,.tif} @@ -2534,7 +2545,7 @@ \eb_at_end_preamble:n { \exp_last_unbraced:No - \declaretheoremstyle{\c__eb_thmtools_keyval_tl}{easy-theorem} + \declaretheoremstyle { \c__eb_thmtools_keyval_tl }{easy-theorem} \eb_thmname_set:nnn { exercise } { Exercise } { 练习 } \cs_undefine:N \proof \clist_map_inline:nn @@ -2753,7 +2764,7 @@ { standard~jigsaw, nobeforeafter,tcbox~raise~base, - top = 1.25st,bottom = 1.25st,left = 1.25st,right = 1.25st, + top = 1.25tt,bottom = 1.25tt,left = 1.25tt,right = 1.25tt, boxrule = 0.75pt,arc = 1pt, colback = #1,opacityback = 0.12,colframe = #1,#3 }{#2} diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf index 58e5a92952..35cf9e4b5a 100644 Binary files a/macros/latex/contrib/easybook/easybook.pdf and b/macros/latex/contrib/easybook/easybook.pdf differ diff --git a/macros/latex/contrib/eq-pin2corr/README.md b/macros/latex/contrib/eq-pin2corr/README.md index 78c08c4d5f..7e20ddd9d4 100644 --- a/macros/latex/contrib/eq-pin2corr/README.md +++ b/macros/latex/contrib/eq-pin2corr/README.md @@ -1,6 +1,6 @@ The eq-pin2corr package Author: D. P. Story -Dated: 2021-02-20 +Dated: 2021-05-29 This package is an add-on to the quiz environment of the exerquiz package (part of the acrotex bundle). It adds PIN security to a quiz created by @@ -11,6 +11,15 @@ the students effort on that quiz. The package works for a the usual workflows +What's New (2021-05-29) Added (optional) PIN security to the Begin Quiz button. + Added (an optional) `warn and freeze' feature to a quiz. Added (an optional) + \qzResetTally field that holds the number of times a student retakes any given + quiz. Add (an optional) feature where the document author can set the maximum + number of times a student can retake a quiz. Demo files for these + features are found on the AcroTeX Blog site: + http://www.acrotex.net/blog/?p=1516 + http://www.acrotex.net/blog/?p=1519 + D. P. Story www.acrotex.net blog.acrotex.net diff --git a/macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf b/macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf index 92c3cec32b..bd008ba7f1 100644 Binary files a/macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf and b/macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf differ diff --git a/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf b/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf index 0103c028ca..55e7438520 100644 Binary files a/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf and b/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf differ diff --git a/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.tex b/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.tex index aa2f13dbc9..a660f2c3bb 100644 --- a/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.tex +++ b/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.tex @@ -6,16 +6,27 @@ \documentclass[10pt]{article} \usepackage[fleqn]{amsmath} %\usepackage{hyperref} -\usepackage[ - web={centertitlepage,designv,forcolorpaper,latextoc,pro}, +\usepackage[% + web={centertitlepage, + designv, + forcolorpaper, + latextoc, +% uselatexparts, + extended + }, exerquiz, % linktoattachments, aebxmp ]{aeb_pro} +\usepackage{aeb_mlink} \usepackage[!showscore]{eq-pin2corr} %\previewOn\pmpvOn +%\tocPartTitle{\protect\makebox[0pt][r]{\thepart\hspace{.5em}}#1} +\tocPartTitle{\tops{\protect\makebox[0pt][r]{\thepart\hspace{.5em}}}{\thepart\space}#1} + + \useBeginQuizButton[\CA{Begin}] \useEndQuizButton[\CA{End}] \useMCCircles @@ -115,8 +126,8 @@ email={dpstory@acrotex.net}, subject={Documentation for the eq-pin2corr package from AcroTeX: Apply PIN security to quizzes}, talksite={\url{www.acrotex.net}}, - version={0.5, 2021/15/06}, - Keywords={AcroTeX, mini-toc}, + version={2.0, 2021/05/29}, + Keywords={AcroTeX, PIN security}, copyrightStatus=True, copyrightNotice={Copyright (C) \the\year, D. P. Story}, copyrightInfoURL={http://www.acrotex.net} @@ -146,7 +157,7 @@ if (resp != null) { var f=this.getField("txt"); f.value=Collab.hashString(resp); - } + } \end{defineJS} @@ -204,6 +215,13 @@ _path=_path.substring(0,pos)+"/"+manualfilename; \hypersetup{linktocpage} +\part{Version 1.0}\label{prt:One} + +In this part of the manual, we document the features of the \pkg{eq-pin2corr} package +as they originally appeared. In addition to the features documented here, version~2.0 +adds a number of features, some of which were suggested by Tahir Y. These additional features +are documented in \hyperref[prt:Two]{Part~\ref*{prt:Two}} on page~\pageref{prt:Two} of this manual. + \section{Introduction} This package is an add-on to the \env{quiz} environment of the \pkg{exerquiz} @@ -297,7 +315,7 @@ The minimal preamble for documents that use the \pkg{eq-pin2corr} package. \begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] !1\documentclass{article} !2\usepackage[!ameta(options)]{web} -\usepackage[!ameta(options)]{exerquiz}!textbf([2021/02/17]) +\usepackage[!ameta(options)]{exerquiz}!textbf([2021/04/27]) \usepackage[!ameta(options)]{eq-pin2corr} ... \declPINId{!ameta(pin-num)}{!ameta(hash-string)} @@ -305,14 +323,14 @@ The minimal preamble for documents that use the \pkg{eq-pin2corr} package. ... \begin{document} \end{Verbatim} -\eVerb A recent version of \pkg{exerquiz} (2021/02/17 or later) is required; -\pkg{eq-pin2corr} brings in the \pkg{eq-save} package (2021/02/17 or later). +\eVerb A recent version of \pkg{exerquiz} (2021/05/29 or later) is required; +\pkg{eq-pin2corr} brings in the \pkg{eq-save} package (2021/04/27 or later). \section{Package options} There are two options for this package: \opt{showscore} and \opt{!showscore}. If you took the test on page~3, you will have noticed that when \uif{End -Quiz} control is pressed the phase \textsf{"Success! Now save and send to the +Quiz} control is pressed the phrase \textsf{"Success! Now save and send to the instructor"} appears in the \cs{ScoreField} or the \cs{PointsField}, this is the default behavior. Passing \FmtMP{\opt{showscore}}\opt{showscore} in the optional argument list of \pkg{eq-key2corr} causes the actual score to appear @@ -330,24 +348,32 @@ Refer to the \texttt{eformsman.pdf} for a discussion of \cs{flJSStr}. \paragraph*{Local controls.} The two options can be turned off and on locally with \FmtMP{\cs{showScoreOff}}\cs{showScoreOff} and \FmtMP{\cs{showScoreOn}}\cs{showScoreOn} commands. -\section{Setting the pin-hash values} +\section{Setting the pin-hash values}\label{s:pin-hash} In the preamble, as indicated above, are two commands, the first is required, the second is optional. \bVerb\takeMeasure{\string\declPINId\darg{\ameta{pin-num}}\darg{\ameta{hash-string}}}% %\setlength{\dimen0}{\wd\webtempboxi+2\fboxsep+2\fboxrule}% -\def\1{\rlap{\sffamily\hskip\linewidth(optional)}} +%\def\1{\rlap{\sffamily\hskip\linewidth(\cs{numPINId} expands to \ameta{pin-num})}} +\def\2{\rlap{\sffamily\hskip\linewidth(optional)}} \begin{dCmd}[commandchars=!()]{\bxSize} \declPINId{!ameta(pin-num)}{!ameta(hash-string)} -!1\classPINVar{!ameta(class-pin-var)} +\numPINId +!2\classPINVar{!ameta(class-pin-var)} \end{dCmd} -\eVerb It is through the \cs{declPINId} command that the PIN security is set up. - -\paragraph*{\cs{declPINId\darg{\ameta{pin-num}}\darg{\ameta{hash-string}}}} The \ameta{pin-num} is a number, perhaps four digits, -that is used to pass through the security of the \uif{Correct} button.\footnote{The \ameta{pin-num} does not have to be a number, -it can be any password (passcode) that is easy to remember. I prefer a four digit number.} Once you decide on the -PIN number, you need to generate the corresponding \emph{hash-string}. The hash-string is obtained from the demo file -\texttt{get-hash-string.pdf}, the contents of that files is reproduced below. +\eVerb It is through the \cs{declPINId} command that the PIN security is set +up. The command \cs{numPINId} expands to \ameta{pin-num} is not normally +typeset into the document, but is used for documentation or demonstration +purposes, such as in this document. + +\paragraph*{\cs{declPINId\darg{\ameta{pin-num}}\darg{\ameta{hash-string}}}} +The \ameta{pin-num} is a number, perhaps four digits, that is used to pass +through the security of the \uif{Correct} button.\footnote{The +\ameta{pin-num} does not have to be a number, it can be any password +(passcode) that is easy to remember. I prefer a four digit number.} Once you +decide on the PIN number, you need to generate the corresponding +\emph{hash-string}. The hash-string is obtained from the demo file +\texttt{get-hash-string.pdf}, the contents of that file is reproduced below. \begin{aebQuote} \pushButton[\CA{Push}\AAmouseup{\btnAct}]{btn}{}{11bp}\olBdry \textField[\textSize{8}]{txt}{2in}{11bp}\olBdry @@ -416,6 +442,318 @@ commands. \eVerb These can placed anywhere outside a \env{quiz} environment. The commands take effect beginning at the next quiz in the document. +\part{Version 2.0}\label{prt:Two} + +\section{Introduction} + +Version~2 of this package provides additional security options for the +document author (instructor or professor). + +\newtopic\noindent The source files (TEX) for the working examples in this +part of the manual may be found on the {\AcroTeX} Blog web site: +\begin{itemize} + \item \href{http://www.acrotex.net/blog/?p=1516}{\pkg{eq-pin2corr}: PIN security with warning and freezing}\footnote + {\url{http://www.acrotex.net/blog/?p=1516}} + \item \href{http://www.acrotex.net/blog/?p=1519}{\protect\pkg{eq-pin2corr}: + PIN security on \protect\uif{Begin Quiz} and tracking retakes of a quiz}\footnote + {\url{http://www.acrotex.net/blog/?p=1519}} +\end{itemize} + +\section{Security with warn and freeze on \tops{\protect\uif}{}{End Quiz}} + +When the student presses the \uif{End Quiz} control, an alert dialog box +opens which warns\FmtMP{warn and freeze} the user that quiz will be `frozen' +which means active form fields are made readonly, except for the \uif{Ans} +button. The user has a choice of responding \uif{Yes} or \uif{No}, in the +later case, the student can continue with the quiz. If the student presses +\uif{Yes}, the quiz is frozen, all the student can do is to save the file and +to send it to the instructor. +\bVerb\takeMeasure{\uif{Click 'Yes' to end the quiz or 'No' to continue working on the quiz.}\}}% +\settowidth{\eflength}{\cs{useWarnEndQuiz}} +\def\1{\leavevmode\rlap{\hspace{\eflength} \%\sffamily{ use with \cs{usePINCorrBtn}}}}% +\def\2{\leavevmode\rlap{\sffamily\hskip\linewidth(Turn off PIN security)}}% +\begin{dCmd}[commandchars=!()]{\bxSize} +!1\useWarnEndQuiz +\restoreEndQuiz +\flJSStr{\EndQuizG@te@Msg}{!uif(Warning:) +!uif(Are you sure you want to end this quiz?)\r\r +!uif(The quiz will be frozen and no more changes will be allowed.) +!uif(Click 'Yes' to end the quiz or 'No' to continue working on the quiz.)} +\end{dCmd} +\eVerb Expand \cs{useWarnEndQuiz} prior to the quiz for which the `warn and +freeze' security is to be employed. After the quiz, optionally expand +\cs{restoreEndQuiz} to its original definition. + +\useWarnEndQuiz + +\newtopic\noindent +Prior to the following quiz, \cs{usePINCorrBtn}\cs{useWarnEndQuiz} are +expanded. +\begin{quiz*}{qz2} +Solve each, passing is 100\%. +\begin{questions} + \item The sum of 1 and 1 is \dots +\begin{answers}{8} +\bChoices + \Ans0 0\eAns + \Ans0 1\eAns + \Ans1 2\eAns + \Ans0 3\eAns + \Ans0 4\eAns +\eChoices +\end{answers} + \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{-1} $ + +\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{cos(x)} $ +\end{questions} +\end{quiz*}\quad\ScoreField[\rectW{2.25in}]\currQuiz\olBdry\CorrButton{\currQuiz} (PIN: \numPINId) + +\noindent +Answers: \AnswerField\currQuiz + +\section{PIN security with freeze on \tops{\protect\uif}{}{Correct}} + +In the previous section, the quiz is made readonly (frozen) when the student +presses the \uif{End Quiz} control. We can also freeze the quiz when the +\uif{Correct} control is pressed. + +This strategy allows the student to take and retake the quiz if the score is +not to his liking; assuming the \texttt{showscore} option is in effect. +Freezing the quiz on the \uif{Correct} control allows the quiz to be marked +up and returned to the student, without fear the student will later modify +his answers and complain to the teacher that the score is incorrect. + +\newtopic\noindent To freeze the quiz when the \uif{Correct} control is pressed, +expand \cs{FreezeThisQuiz}. +\bVerb\takeMeasure{\string\FreezeThisQuizNot}% +\def\1{\rlap{\sffamily\hskip\linewidth(use with \cs{usePINCorrBtn})}} +\begin{dCmd}[commandchars=!()]{\bxSize} +!1\FreezeThisQuiz +\FreezeThisQuizNot +\end{dCmd} +\eVerb There are two methods of expanding \cs{FreezeThisQuiz}: (1) expand +prior to the quiz (and expand \cs{FreezeThisQuizNot} following the quiz); or +(2) pass \cs{FreezeThisQuiz} through the optional argument of the +\cs{CorrButton} (the \uif{Correct} control) using the syntax +\verb|\CorrButton[\cmd{\FreezeThisQuiz}]{\currQuiz}|. The latter method make +the change local, hence \cs{FreezeThisQuizNot} is not needed following the +quiz. + +\showScoreOn +\restoreEndQuiz + +\newtopic\noindent +The following quiz uses \verb|\CorrButton[\cmd{\FreezeThisQuiz}]{\currQuiz}| +at the end of the quiz. Prior to this quiz, \cs{showScoreOn} and +\cs{restoreEndQuiz} are expanded, the later to recover from `warn and freeze' +of the previous quiz. +\begin{quiz*}{qz3} +Solve each, passing is 100\%. +\begin{questions} + \item The sum of 1 and 1 is \dots +\begin{answers}{8} +\bChoices + \Ans0 0\eAns + \Ans0 1\eAns + \Ans1 2\eAns + \Ans0 3\eAns + \Ans0 4\eAns +\eChoices +\end{answers} + \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{-1} $ + +\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{cos(x)} $ +\end{questions} +\end{quiz*}\quad\ScoreField[\rectW{2.25in}]\currQuiz\olBdry\CorrButton[\cmd{\FreezeThisQuiz}]{\currQuiz} (PIN: \numPINId) + +\noindent +Answers: \AnswerField\currQuiz + +\section{Tallying the number of retakes of a quiz} + +One problem with digital PDF quizzes (\`a la Acro\negthinspace\TeX) is a +student takes and retakes a quiz until a desired score of 100\% is attained, +assuming no PIN security is on the \uif{Correct} control. This problem is +partially mitigated by the PIN security on the \uif{Correct} control, but +still, teachers, when administering an exam for credit, do not like to see +student retaking the quiz multiple times. The \pkg{eq-pin2corr} package now offers +the following commands: +\bVerb\takeMeasure{\string\qzResetTally[\ameta{options}]}% +\def\1{\rlap{\sffamily\hskip\linewidth(optionally, use with \cs{usePINCorrBtn})}} +\begin{dCmd}[commandchars=!()]{\bxSize} +!1\useBeginQuizCnt +\restorBeginQuiz +\qzResetTally[!ameta(options)] +\end{dCmd} +\eVerb Expanding \cs{useBeginQuizCnt} modifies the action of the \uif{Begin +Quiz} control to count the number of times the student as retaken the same +quiz. The count show up in the readonly text field created by +\cs{qzResetTally}. Restore the original action of the \uif{Begin Quiz} control +by expanding \cs{restorBeginQuiz}. + +This next quiz has PIN security with freeze on the \uif{Correct} control. The +\uif{Begin Quiz} controls tracks the number of times the student +\emph{re-takes the quiz}. Prior to the quiz we expand +\cs{showScoreOn}\cs{useBeginQuizPIN}\cs{useBeginQuizCnt}. The +\cs{qzResetTally} field is place to the right of the \cs{CorrButton} command. +Speaking of the \cs{CorrButton}, \verb|\cmd{\FreezeThisQuiz}| is passed to +this command through its optional argument so that the quiz is frozen when +the instructor presses the \uif{Correct} control and successfully enters the +PIN. + +\showScoreOn +\useBeginQuizPIN +\useBeginQuizCnt +%\restorBeginQuiz + +\begin{quiz*}{qz4} +\textbf{Instructions:} Take and retake this quiz until you obtain 100\%. +\begin{questions} + \item The sum of 1 and 1 is \dots +\begin{answers}{8} +\bChoices + \Ans0 0\eAns + \Ans0 1\eAns + \Ans1 2\eAns + \Ans0 3\eAns + \Ans0 4\eAns +\eChoices +\end{answers} + \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{-1} $ + +\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{cos(x)} $ +\end{questions} +\end{quiz*}\quad\ScoreField[\rectW{2.25in}]\currQuiz\olBdry\CorrButton[\cmd{\FreezeThisQuiz}]{\currQuiz} (PIN: \numPINId)\hfill\qzResetTally + +\noindent +Answers: \AnswerField\currQuiz + +\section{Setting the maximum number of retakes} + +This quiz has PIN security on the \uif{Correct} control. The \uif{Begin Quiz} controls +tracks the number of times the student \emph{re-takes the quiz}. It also sets the maximum +number of times the student retake the quiz. +\bVerb\takeMeasure{\string\setMaxRetakes\darg{\ameta{qz-name}\darg{\ameta{num}}}}% +\def\1{\rlap{\sffamily\hskip\linewidth(use with \cs{usePINCorrBtn})}} +\begin{dCmd}[commandchars=!()]{\bxSize} +\setMaxRetakes{!ameta(qz-name)}{!ameta(num)} +\nMaxRetakes{!ameta(qz-name)} +\end{dCmd} +\eVerb When declared prior to the quiz whose name is \ameta{qz-name}, +\cs{setMaxRetakes} sets the maximum of times a student can \emph{retake the same +quiz} to \ameta{num}, where \ameta{num} is a nonnegative integer. Declaring +\cs{setMaxRetakes\darg{\ameta{qz-name}}\darg{0}} means the student may only +take the quiz once (no retakes allowed); \cs{setMaxRetakes\darg{\ameta{qz-name}}\darg{2}} means he +can retake the quiz twice (for a total of three times). + +The command \cs{nMaxRetakes\darg{\ameta{qz-name}}} is a way of typesetting +the number \ameta{num} into the document as part of the instructions for the +quiz, for example. + +\showScoreOn +\useBeginQuizCnt +\setMaxRetakes{qz5}{2} + +\newtopic\noindent The following quiz has PIN security with freeze under the \uif{Correct} control and it +allows the student to retake the quiz at most \nMaxRetakes{qz5}~times. + +\begin{quiz*}{qz5} +Solve each, passing is 100\%. Be aware that you will be allowed to +\emph{retake} this quiz at most \nMaxRetakes{qz5}~times. +\begin{questions} + \item The sum of 1 and 1 is \dots +\begin{answers}{8} +\bChoices + \Ans0 0\eAns + \Ans0 1\eAns + \Ans1 2\eAns + \Ans0 3\eAns + \Ans0 4\eAns +\eChoices +\end{answers} + \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{-1} $ + +\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{cos(x)} $ +\end{questions} +\end{quiz*}\quad\ScoreField[\rectW{2.25in}]\currQuiz\olBdry\CorrButton[\cmd{\FreezeThisQuiz}]{\currQuiz} (PIN: \numPINId)\hfill\qzResetTally + +\noindent +Answers: \AnswerField\currQuiz + +\section{PIN Security for \tops{\protect\uif}{}{Begin Quiz} and \tops{\protect\uif}{}{Correct}} + +For this final example, the student can see his quiz score (which can be +optionally changed by expanding \cs{showScoreOff}); however, to retake the +quiz a PIN must be entered when the \uif{Begin Quiz} button is pressed. The +PIN under the \uif{Begin Quiz} control is (usually) different from the PIN +under the \uif{Correct} button. +\bVerb\takeMeasure{\string\flJSStr\darg{\string\BeginQuizG@te@Msgii}\{\uif{Press the Begin Quiz}}% +%\def\1{\rlap{\sffamily\hskip\linewidth(\cs{numRePINId} expands to \ameta{pin-num})}} +\begin{dCmd}[commandchars=!()]{\bxSize} +\declRePINId{!ameta(pin-num)}{!ameta(hash-string)} +\numRePINId +\flJSStr{\BeginQuizG@te@Msgi}{!uif(Enter the PIN number) +!uif(to retake this quiz)} +\flJSStr{\BeginQuizG@te@Msgii}{!uif(Press the Begin Quiz) +!uif(control to begin the quiz again)} +\end{dCmd} +\eVerb \cs{declRePINId} is used to declare the PIN number for retaking the +quiz, as well as the corresponding hash string. Refer to \cs{declPINId} above +(\hyperref[s:pin-hash]{Section~\ref{s:pin-hash}}) for information of how to +acquire the hash string for the PIN. + +The command \cs{numREPINId} expands to \ameta{pin-num} is not normally +typeset into the document, but is used for documentation or demonstration +purposes, such as in this document. + +The final two, \cs{BeginQuizG@te@Msgi} and \cs{BeginQuizG@te@Msgii} expand to +the messages the respondent reads. These may be redefined as desired. + +\newtopic\noindent +The PIN for the \uif{Begin Quiz} button is \numRePINId. The \uif{Begin Quiz} +button does not need a PIN for the first time it is pressed. It requires a +PIN after the first press. + +\showScoreOn +\useBeginQuizPIN + +\begin{quiz*}{qz6} +Solve each, passing is 100\%. +\begin{questions} + \item The sum of 1 and 1 is \dots +\begin{answers}{8} +\bChoices + \Ans0 0\eAns + \Ans0 1\eAns + \Ans1 2\eAns + \Ans0 3\eAns + \Ans0 4\eAns +\eChoices +\end{answers} + \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{-1} $ + +\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry[1bp] +\CorrAnsButton{cos(x)} $ +\end{questions} +\end{quiz*}\quad\ScoreField[\rectW{2.25in}]\currQuiz\olBdry\CorrButton{\currQuiz} (PIN: \numPINId)\hfill\qzResetTally + +\noindent +Answers: \AnswerField\currQuiz\vcgBdry[6pt] + +This kind of security is best when the students are taking a quiz in a +computer lab with a proctor in the room. The student can ask the proctor to +reset the quiz. Note that we keep a tally on the number of requests as the +proctor may not write it down or remember. + \medbreak\noindent Now, I really must get back to retirement.\enspace\dps diff --git a/macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx b/macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx index 091ba8a94f..537bc48894 100644 --- a/macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx +++ b/macros/latex/contrib/eq-pin2corr/eq-pin2corr.dtx @@ -16,7 +16,7 @@ % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{eq-pin2corr} -% [2021/02/20 v1.0 Applies PIN security to quizzes] +% [2021/05/29 v2.0 Applies PIN security to quizzes] %<*driver> \documentclass{ltxdoc} %\usepackage[colorlinks,hyperindex=false,linktocpage,bookmarksnumbered]{hyperref} @@ -52,6 +52,19 @@ {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% {\normalfont\Large\bfseries}} +\renewcommand{\subsection} + {\renewcommand{\@seccntformat}[1]{\thesubsection\quad}% + \@startsection {subsection}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\large\bfseries}} +\renewcommand{\subsubsection} + {\renewcommand{\@seccntformat}[1]{\thesubsubsection\quad}% + \@startsection {subsubsection}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\large\bfseries}} +% \renewcommand{\paragraph} {\renewcommand{\@seccntformat}[1]{\theparagraph\unskip\,}% \@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\bfseries}} @@ -63,8 +76,9 @@ {\list{}{\leftmargin\amtIndent}% \item\relax} {\endlist} +\let\@latex@warning\@gobble \makeatother -\InputIfFileExists{aebdocfmt.def}{\PackageWarning{eq-pin2corr}{Inputting aebdocfmt.def}} +\InputIfFileExists{aebdocfmt.def}{\PackageInfo{eq-pin2corr}{Inputting aebdocfmt.def}} {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax \PackageInfo{eq-pin2corr}{aebdocfmt.def cannot be found}} \begin{document} @@ -147,8 +161,8 @@ \DeclareOption{showscore}{\PINshowScoretrue} \DeclareOption{!showscore}{\PINshowScorefalse} \ProcessOptions\relax -\RequirePackage{exerquiz}[2021/02/17] -\RequirePackage{eq-save}[2021/02/17] +\RequirePackage{exerquiz}[2021/05/21] +\RequirePackage{eq-save}[2021/04/27] % \end{macrocode} % \section{Package commands} % Implement local versions\DescribeMacro{\showScoreOn}\DescribeMacro{\showScoreOff}{} of the package options \opt{showscore} and \opt{!showscore}, @@ -157,37 +171,38 @@ \def\showScoreOn{\PINshowScoretrue} \def\showScoreOff{\PINshowScorefalse} % \end{macrocode} +% \subsection{PIN security on the \textsf{Correct} control} % Define \DescribeMacro{\SaveAndSendMsg} a message that appears on the console when the PIN entered is not correct. % \begin{macrocode} \flJSStr[noquotes]{\SaveAndSendMsg}{Success! % Now save and send to the instructor} % \end{macrocode} -% Make changes to the \uif{End Quiz} control and to the \uif{Correct} control. -% Begin by modifying the \DescribeMacro{\postSubmitQuiz}\cs{postSubmitQuiz} command, which is a hook within the executing -% code of the \uif{End Quiz} control. +% \DescribeMacro\postSubmitQuizPIN +% Begin by modifying the \cs{postSubmitQuiz} command, +% which is a hook within the executing code of the \uif{End Quiz} control. % \begin{macrocode} -\begin{defineJS*}[\makeesc\@\makecmt\%]{\postSubmitQuiz} +\begin{defineJS*}[\makeesc\@\makecmt\%]{\postSubmitQuizPIN} // Begin post submit quiz code% @ifPINSecurity% @ifPINshowScore@else - var f = this.getField("ScoreField.@oField"); - if ( f!=null ) { - f.textSize=0; - f.value = "@SaveAndSendMsg"; - } else { - var f = this.getField("PointsField.@oField"); - if (f!=null) { + var f = this.getField("ScoreField.@oField"); + if ( f!=null ) { f.textSize=0; - f.value = "Success! Now save and send to instructor"; - } - }@fi@fi - oRecordOfQuizData["ScoreData.@oField"]=% + f.value = "@SaveAndSendMsg"; + } else { + var f = this.getField("PointsField.@oField"); + if (f!=null) { + f.textSize=0; + f.value = "@SaveAndSendMsg"; + } + }@fi@fi + oRecordOfQuizData["ScoreData.@oField"]=% [1*Score,1*NQuestions,1*ptScore,1*NPointTotal]; - oRecordOfQuizData["RightWrong.@oField"]=% + oRecordOfQuizData["RightWrong.@oField"]=% eval(RightWrong.toSource()); - oRecordOfQuizData["ProbDist.@oField"]=% + oRecordOfQuizData["ProbDist.@oField"]=% eval(ProbDist.toSource()); - cntCorrectResponses(); + cntCorrectResponses(); \end{defineJS*} % \end{macrocode} % The command name for the action of the \uif{End Quiz} control is @@ -195,10 +210,15 @@ eval(ProbDist.toSource()); % We save this and pre-pend a single code line, as needed. % \begin{macrocode} \let\eQzBtnActnsSave\eQzBtnActns -\def\eQzBtnActns{\ifPINshowScore\else +\def\makeEndQuizPIN{% + \let\eQzBtnActns\eQzBtnActnsPIN + \let\postSubmitQuiz\postSubmitQuizPIN +} +\def\eQzBtnActnsPIN{\ifPINshowScore\else var bDisplaySilent=true;\r\fi \eQzBtnActnsSave } +%\makeEndQuizPIN % \end{macrocode} % The command name for the action of the \uif{Correct} control is \cs{CorrBtnActionsJS} % we save this and later modify it. @@ -210,8 +230,10 @@ eval(ProbDist.toSource()); % \begin{macrocode} \newif\ifPINSecurity \PINSecurityfalse \def\usePINCorrBtn{\PINSecuritytrue + \makeEndQuizPIN % dps5-25 \let\CorrBtnActionsJS\CorrBtnActionsPwdJS} \def\restoreCorrBtn{\PINshowScoretrue\PINSecurityfalse + \restoreEndQuiz % dps5-25 \let\CorrBtnActionsJS\CorrBtnActionsJSSave} % \end{macrocode} % The instructor can tediously press the \uif{Correction} button, or place @@ -226,18 +248,31 @@ eval(ProbDist.toSource()); %and string hash values. The \DescribeMacro\classPINVar\cs{classPINVar} is a convenient %way of declaring the PIN variable name; eg, if |\classPINVar{_PinCode1}| is declared %prior to the \env{quiz} environment, the instructor need not manually enter the PIN. +%\changes{v1.1}{2021/05/22}{Added \string\cs{ifFreezeQuiz} switch and \string\cs{FreezeThisQuiz} +%convenience macro} % \begin{macrocode} \def\classPINVar#1{\def\PINclassPV{#1}} \let\PINclassPV\@empty % \end{macrocode} +% \DescribeMacro\FreezeThisQuiz +% Causes the interactive parts of a quiz to be readonly. This can be passed +% into the \uif{End Quiz} control so that when the student presses \uif{End Quiz} +% the quiz will be frozen (after a warning); or through the \uif{Correct} button, +% then the returned quiz will be readonly. +% \begin{macrocode} +\newif\ifFreezeQuiz\FreezeQuizfalse +\def\FreezeThisQuiz{\FreezeQuiztrue} +\def\FreezeThisQuizNot{\FreezeQuizfalse} +% \end{macrocode} +% \DescribeMacro\CorrBtnActionsPwdJS % The modified action for the \uif{Correct} button. % we save this and later modify it. % \begin{macrocode} -\begin{defineJS*}[\makeesc\!\makecmt\%]{\CorrBtnActionsPwdJS} -!ifx!PINclassPV!@empty% -var userPIN = "";!else% -var userPIN = "!PINclassPV";!fi -if (userPIN == "" ) userPIN = undefined; +\begin{defineJS*}[\makeesc\|\makecmt\%]{\CorrBtnActionsPwdJS} +|ifx|PINclassPV|@empty% +var userPIN = "";|else% +var userPIN = "|PINclassPV";|fi +if (userPIN == "") userPIN = undefined; try { if ( typeof eval(userPIN) == "undefined") userPIN = undefined; } catch(e) { userPIN = undefined; } @@ -247,34 +282,245 @@ if (typeof userPIN == "undefined") { cTitle: "View Answers", bPassword: true }); - var _resp=Collab.hashString(resp); - var _bQzResults = ( _resp ==_PinCode ); + var _resp=Collab.hashString(resp); + if (resp != null) var _bQzResults = ( _resp ==_PinCode ); } else var _bQzResults = ( eval(userPIN) ==_PinCode ); if (_bQzResults) { - RightWrong=eval("RightWrong.!currQuiz"); - ProbDist=eval("ProbDist.!currQuiz"); - correctQuiz("!currQuiz",3); - DisplayQuizResults("!currQuiz",3,3); - if (typeof correctSumryTbl == "function") - correctSumryTbl("!currQuiz",3); +% \end{macrocode} +% (2021/05/24) Do nothing if no quiz data +% \begin{macrocode} + if (typeof oRecordOfQuizData["ScoreData.|currQuiz"]!="undefined") { + RightWrong=eval("RightWrong.|currQuiz"); + ProbDist=eval("ProbDist.|currQuiz"); + correctQuiz("|currQuiz",3); + DisplayQuizResults("|currQuiz",3,3); + if (typeof correctSumryTbl == "function") + correctSumryTbl("|currQuiz",3);% +% \end{macrocode} +% (2021/05/22) If \cs{ifFreezeQuiz} is true, we add some code to freeze all operational +% components of this quiz. +% \begin{macrocode} +|ifFreezeQuiz + var aFrzExt=new Array("obj.","grpobj.","essay.",% +"beginQuiz.","endQuiz."); + for (var i=0; i % \end{macrocode} diff --git a/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf b/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf index c1920bddba..20b55a7bd9 100644 Binary files a/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf and b/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf differ diff --git a/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.tex b/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.tex index 29422f836b..3e41710a69 100644 --- a/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.tex +++ b/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.tex @@ -3,6 +3,7 @@ \usepackage{eforms} %\previewOn\pmpvOn +\def\cs#1{\texttt{\eqbs#1}} \begin{defineJS}{\btnHashStrAct} var resp=app.response({ @@ -17,6 +18,10 @@ if (resp !=null) { f.value=resp; f=this.getField("txtdeclPINId"); f.value = "\\\\declPINId{"+resp+"}{"+hashStr+"}"; + f=this.getField("txtdeclPINId"); + var g=this.getField("txtdeclRePINId"); + g.value = "\\\\declRePINId{"+resp+"}{"+hashStr+"}"; + } \end{defineJS} @@ -30,10 +35,13 @@ if (resp !=null) { Push the button and enter the four digit number you just created into the response box. When you press the \textsf{OK} button, the hash string of the PIN number you entered appears in the text field. The PIN number goes in as the -first argument of \verb|\declPINId|, and the hash string is the second argument of \verb|\declPINId|; eg, +first argument of \verb|\declPINId| (\verb|\declRePINId|), and the hash string is the second argument of +\verb|\declPINId| (\verb|\declRePINId|); eg, \begin{verbatim} -\declPINId{5243}{02JRVZdRgYgCA-Rtje8VkD} % PIN number, hash string +\declPINId{5243}{02JRVZdRgYgCA-Rtje8VkD} % PIN/hash string (default) +\declRePINId{1234}{By9mbLF0NJMA2sN2x4D0VB} % PIN/hash string (default) \end{verbatim} +Normally, the PIN numbers for \cs{declPINId} and \cs{declRePINId} are different.\medskip \textbf{Brief Instructions.} Press \textsf{Push}, enter your PIN, press \textsf{OK}.\medskip\par\noindent \pushButton[\CA{Push}\AAmouseup{\btnHashStrAct}]{btn}{}{11bp}\olBdry @@ -44,9 +52,13 @@ Save these two values as arguments of \verb|\declPINId| and place in the preambl quiz document.\medskip \noindent -Copy to quiz document: \textField[\textSize{8}]{txtdeclPINId}{3in}{13bp}\olBdry +For \cs{declPINId}, copy to quiz document:\\[6pt]\null + \hspace{15pt}\textField[\textSize{8}]{txtdeclPINId}{3in}{13bp}\vcgBdry[6pt] +For \cs{declRePINId}, copy to quiz document:\\[6pt]\null + \hspace{15pt}\textField[\textSize{8}]{txtdeclRePINId}{3in}{13bp}\vcgBdry[6pt] \pushButton[\CA{Reset}\AAmouseup{this.resetForm();}]{reset}{}{13bp} + \end{document} diff --git a/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.pdf b/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.pdf new file mode 100644 index 0000000000..18ec5466cb Binary files /dev/null and b/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.pdf differ diff --git a/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex b/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex new file mode 100644 index 0000000000..23642d4d6b --- /dev/null +++ b/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex @@ -0,0 +1,99 @@ +\documentclass{article} +\usepackage[designv]{web} %,forcolorpaper +\usepackage{exerquiz}[2021/02/17] +\usepackage[!showscore]{eq-pin2corr} + +%\previewOn\pmpvOn + +\useBeginQuizButton[\CA{Begin}] +\useEndQuizButton[\CA{End}] +\showCreditMarkup % optional +\let\uif\textsf +\useMCCircles % optional + +% +% When building your own quiz document, decide on a PIN number +% then use the utility document get-hash-string.pdf to acquire +% the corresponding hash string. Place your own PIN and hash string +% in the two arguments of \declPINId. +\declPINId{5243}{02JRVZdRgYgCA-Rtje8VkD} % PIN number, hash string +% So instructor can bypass entering the PIN. +\classPINVar{_PinCode1} + +\parindent0pt +\parskip6pt + +\begin{document} + +\section*{PIN Security for Quizzes} + +This demo file implements a feature that prevents students from +correcting their own quiz. The \uif{Correct} button appears at the end of +the quiz, but a PIN number is needed for it to execute. For the purpose of +this demo files, the PIN number is given to the right of the \uif{Correct} +button; of course, the PIN is not given to the student. \verb~:-{)~ Test it +out: (1) take the test; (2) press the \uif{End} button; (3) save and close +the document; (4) open the document and press the \uif{Correct} button, the +graded quiz should be reported. \textsf{Adobe Reader DC} (or \textsf{Adobe +Acrobat}) is required for the document to function as designed. + +\usePINCorrBtn + +\begin{quiz*}{qz1} +Solve each, passing is 100\%. +\begin{questions} + \item The sum of 1 and 1 is \dots +\begin{answers}{8} +\bChoices + \Ans0 0\eAns + \Ans0 1\eAns + \Ans1 2\eAns + \Ans0 3\eAns + \Ans0 4\eAns +\eChoices +\end{answers} + \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry\kern1bp +\CorrAnsButton{-1} $ + +\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry\kern1bp +\CorrAnsButton{cos(x)} $ +\end{questions} +\end{quiz*}\quad\ScoreField[\rectW{2.25in}]\currQuiz\olBdry\CorrButton{\currQuiz} (PIN: \numPINId) + +\noindent +Answers: \AnswerField\currQuiz + +% remove this \end{document} and recompile. This next quiz has no PIN security. +\end{document} + +\section*{No PIN security} + +To restore the default definition of the \verb|\CorrButton| action, expand +the freshly defined macro \verb|\restoreCorrBtnJS|. + +% restore the Correct button to its normal/default behavior: the student +% can get his/her score and the quiz is marked up. +\restoreCorrBtn + +\begin{quiz*}{qz2} +Solve each, passing is 100\%. +\begin{questions} + \item The sum of 1 and 1 is \dots +\begin{answers}{8} +\bChoices + \Ans0 0\eAns + \Ans0 1\eAns + \Ans1 2\eAns + \Ans0 3\eAns + \Ans0 4\eAns +\eChoices +\end{answers} + \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry\kern1bp +\CorrAnsButton{-1} $ + +\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry\kern1bp +\CorrAnsButton{cos(x)} $ +\end{questions} +\end{quiz*}\quad\PointsField{\currQuiz}\olBdry\CorrButton{\currQuiz} + +\end{document} diff --git a/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.pdf b/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.pdf deleted file mode 100644 index 1fca51e00a..0000000000 Binary files a/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.pdf and /dev/null differ diff --git a/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.tex b/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.tex deleted file mode 100644 index b084b55c5a..0000000000 --- a/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.tex +++ /dev/null @@ -1,99 +0,0 @@ -\documentclass{article} -\usepackage[designv,forcolorpaper]{web} -\usepackage{exerquiz}[2021/02/17] -\usepackage[!showscore]{eq-pin2corr} - -%\previewOn\pmpvOn - -\useBeginQuizButton[\CA{Begin}] -\useEndQuizButton[\CA{End}] -\showCreditMarkup % optional -\let\uif\textsf -\useMCCircles % optional - -% -% When building your own quiz document, decide on a PIN number -% then use the utility document get-hash-string.pdf to acquire -% the corresponding hash string. Place your own PIN and hash string -% in the two arguments of \declPINId. -\declPINId{5243}{02JRVZdRgYgCA-Rtje8VkD} % PIN number, hash string -% So instructor can bypass entering the PIN. -\classPINVar{_PinCode1} - -\parindent0pt -\parskip6pt - -\begin{document} - -\section*{PIN Security for Quizzes} - -This demo file implements a feature that prevents that student from -correcting his/her own quiz. The \uif{Correct} button appears at the end of -the quiz, but a PIN number is needed for it to execute. For the purpose of -this demo files, the PIN number is given to the right of the \uif{Correct} -button; of course, the PIN is not given to the student. \verb~:-{)~ Test it -out: (1) take the test; (2) press the \uif{End} button; (3) save and close -the document; (4) open the document and press the \uif{Correct} button, the -graded quiz should be reported. \textsf{Adobe Reader DC} (or \textsf{Adobe -Acrobat}) is required for the document to function as designed. - -\usePINCorrBtn - -\begin{quiz*}{qz1} -Solve each, passing is 100\%. -\begin{questions} - \item The sum of 1 and 1 is \dots -\begin{answers}{8} -\bChoices - \Ans0 0\eAns - \Ans0 1\eAns - \Ans1 2\eAns - \Ans0 3\eAns - \Ans0 4\eAns -\eChoices -\end{answers} - \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry\kern1bp -\CorrAnsButton{-1} $ - -\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry\kern1bp -\CorrAnsButton{cos(x)} $ -\end{questions} -\end{quiz*}\quad\ScoreField[\rectW{2.25in}]\currQuiz\olBdry\CorrButton{\currQuiz} (PIN: \numPINId) - -\noindent -Answers: \AnswerField\currQuiz - -% remove this \end{document} and recompile. This next quiz has no PIN security. -\end{document} - -\section*{No PIN security} - -To restore the default definition of the \verb|\CorrButton| action, expand -the freshly defined macro \verb|\restoreCorrBtnJS|. - -% restore the Correct button to its normal/default behavior: the student -% can get his/her score and the quiz is marked up. -\restoreCorrBtn - -\begin{quiz*}{qz2} -Solve each, passing is 100\%. -\begin{questions} - \item The sum of 1 and 1 is \dots -\begin{answers}{8} -\bChoices - \Ans0 0\eAns - \Ans0 1\eAns - \Ans1 2\eAns - \Ans0 3\eAns - \Ans0 4\eAns -\eChoices -\end{answers} - \item $ \cos(\pi) = \RespBoxMath{-1}{1}{.0001}{[0,1]}\cgBdry\kern1bp -\CorrAnsButton{-1} $ - -\item $\displaystyle\frac{d}{dx}{\sin(x)}=\RespBoxMath{cos(x)}{4}{.0001}{[0,1]}\cgBdry\kern1bp -\CorrAnsButton{cos(x)} $ -\end{questions} -\end{quiz*}\quad\PointsField{\currQuiz}\olBdry\CorrButton{\currQuiz} - -\end{document} diff --git a/macros/latex/contrib/hyperref/ChangeLog.txt b/macros/latex/contrib/hyperref/ChangeLog.txt index 551ab35ccd..ba313e8abe 100644 --- a/macros/latex/contrib/hyperref/ChangeLog.txt +++ b/macros/latex/contrib/hyperref/ChangeLog.txt @@ -1,7 +1,12 @@ +2021-06-05 Ulrike Fischer/David Carlisle + * handle non-ascii labels, issue #185 + * suppress break points after whatsits issue #187 + * correct longtable check, issue #193 + 2021-02-27 Ulrike Fischer/David Carlisle * rename puenc-greek.def to puenc-greekbasic.def to resolve name conflict with a file in greek-fontenc, issue #177 - * some documentation improvements (PR #174) + * some documentation improvements (PR #174) 2021-02-10 Ulrike Fischer/David Carlisle * moved the PU-declarations for greek to an extra file diff --git a/macros/latex/contrib/hyperref/README.md b/macros/latex/contrib/hyperref/README.md index 0bde5da6a8..7c883e7808 100644 --- a/macros/latex/contrib/hyperref/README.md +++ b/macros/latex/contrib/hyperref/README.md @@ -1,6 +1,6 @@ # README for hyperref bundle -Version 2021-02-27 v7.00k +Version 2021-06-05 v7.00l ## INTRODUCTION diff --git a/macros/latex/contrib/hyperref/doc/backref.pdf b/macros/latex/contrib/hyperref/doc/backref.pdf index ce167800fc..5d94d8f215 100644 Binary files a/macros/latex/contrib/hyperref/doc/backref.pdf and b/macros/latex/contrib/hyperref/doc/backref.pdf differ diff --git a/macros/latex/contrib/hyperref/doc/hyperref-doc.html b/macros/latex/contrib/hyperref/doc/hyperref-doc.html index 04fc7b7c3b..83fa1d4537 100644 --- a/macros/latex/contrib/hyperref/doc/hyperref-doc.html +++ b/macros/latex/contrib/hyperref/doc/hyperref-doc.html @@ -25,7 +25,7 @@ href="https://github.com/latex3/hyperref/issues" class="url" >https://github.com/latex3/hyperref/issues)

2021-02-27 v7.00k
+class="ec-lmr-12">2021-06-05 v7.00l

Contents

@@ -228,38 +228,48 @@ href="hyperref-doc3.html#fn2x0">2< says that conformant viewers/translators must recognize the following set of \special constructs:
+

href:

+

html:<a href = "href_string">

+

name:

+

html:<a name = "name_string">

+

end:

+

html:</a>

+

image:

+

html:<img src = "href_string">

+

base_name:

+

html:<base href =image command is intended (as with current HTML viewers) to place an image of arbitrary graphical format on the page in the current location. The base_name command is be used to communicate to the DVI viewer the full (URL) +class="ec-lmri-10">base_name command is be used to communicate to the DVI viewer the full (URL) + location of the current document so that files specified by relative URLs may be retrieved correctly.

The "’ characters should be escaped with a backslash (\), and if it looks like a URL name it may cause problems. - -

However, the drivers intended to produce only PDF use literal PostScript or PDF \special commands. The commands are defined in configuration files for different drivers, selected by package options; at present, the following drivers are supported:

+

hypertex

DVI processors conforming to the HyperTeX guidelines (i.e.  +

DVI processors conforming to the HyperTeX guidelines (i.e. xdvi, dvips (with the -z - option), -z option), + OzTEX, and Textures)

+

dvips

produces +

produces \special commands tailored for dvips

+

dvipsone

produces +

produces \special commands tailored for dvipsone

+

ps2pdf

a special case of output suitable for processing by earlier versions of Ghostscript’s PDF +class="description"> +

a special case of output suitable for processing by earlier versions of Ghostscript’s PDF writer; this is basically the same as that for dvips, but a few variations remained before version 5.21

+

tex4ht

produces +

produces \special commands for use with TeX4ht

+

pdftex

pdfTeX, Hàn Thế Thành’s TeX variant that writes PDF directly +class="description"> +

pdfTeX, Hàn Thế Thành’s TeX variant that writes PDF directly + +

+

luatex

luaTeX, Unicode TeX variant that writes PDF directly +class="description"> +

luaTeX, Unicode TeX variant that writes PDF directly

+

dvipdfm

produces +

produces \special commands for Mark Wicks’ DVI to PDF driver dvipdfm

+

dvipdfmx

produces +

produces \special commands for driver dvipdfmx, a successor of dvipdfm

+

dviwindo

produces \special commands that Y&Y’s Windows previewer interprets as hypertext - jumps within the previewer +class="description"> +

produces \special commands that Y&Y’s Windows previewer interprets as hypertext jumps + within the previewer

+

vtex

produces +

produces \special commands that MicroPress’ HTML and PDF-producing TeX variants interpret as hypertext jumps within the previewer

+

textures

produces \special commands that Textures interprets as hypertext jumps within the +class="description"> +

produces \special commands that Textures interprets as hypertext jumps within the previewer

+

xetex

produces +

produces \special commands for XeTeX

Output from dvips or dvips -z, but the DVI file is not portable. The main a HyperTeX \special commands is that you can also use the document in hypertext DVI viewers, such as xdvi. +class="ec-lmss-10">xdvi. +

+

driverfallback

If a driver is not given and cannot be autodetected, then use the driver option, given as - value to this option +

If a driver is not given and cannot be autodetected, then use the driver option, given as value to + this option driverfallback. Example:

\hypersetup as the option settings are processed as the package is read.

As an example, the behavior of a particular file could be controlled by:

    -
  • a site-wide +

    a site-wide hyperref.cfg setting up the look of links, adding backreferencing, and setting a PDF display default: @@ -488,7 +529,8 @@ class="ec-lmvtt-10">hyperref.cfg setting up the look of links, adding bac

  • -
  • A global option in the file, which is passed down to +

    A global option in the file, which is passed down to hyperref: @@ -497,7 +539,8 @@ class="ec-lmss-10">hyperref:

  • -
  • File-specific options in the +

    File-specific options in the \usepackage commands, which override the ones set in hyperref.cfg: @@ -624,16 +667,21 @@ by a dot. Example for the fourth chapter: class="ec-lmvtt-10">chapter.4

This scheme is used by:

+

\autoref

displays the description label for the reference depending on the counter name. +class="description"> +

displays the description label for the reference depending on the counter name. + +

+

\hyperpage

is used by the index to get page links. Page anchor setting (pageanchor) must not - be turned off.
- +class="description"> +

is used by the index to get page links. Page anchor setting (pageanchor) must not be turned + off.

It is very important that the destination names are unique, because two destinations must not share the same name. The counter value \the<counter> is not always unique for the counter. For example, @@ -939,20 +987,24 @@ wrong and displaced. id="x1-80003.4">Backend drivers

If no driver is specified, the package tries to find a driver in the following order:

    -
  1. Autodetection, some TeX processors can be detected at TeX macro level (pdfTeX, XeTeX, +
  2. +

    Autodetection, some TeX processors can be detected at TeX macro level (pdfTeX, XeTeX, VTeX).

  3. -
  4. Option +

    Option driverfallback. If this option is set, its value is taken as driver option.

  5. -
  6. Macro +

    Macro \Hy@defaultdriver. The macro takes a driver file name (without file extension).

  7. -
  8. Package default is +

    Package default is hypertex.

Many distributions are using a driver file hypertex.cfg that define + +

Sets up hyperref for use with the dviwindo Windows previewer. - -

Use small caps instead of color for links. -hidelinks hidelinks

Hide links (removing color and border). + +class="td01"> +class="td01"> +class="td01"> - +class="td01">

Note that all color names must be defined before use, following the normal system of the standard LaTeX  baseurl baseurl

URL pdfpagemode pdfpagemode

name UseOutlines is used. pdftitle pdftitle

text pdfauthor pdfauthor

text pdfsubject pdfsubject

text pdfcreator pdfcreator

text addtopdfcreator addtopdfcreator

text pdfkeywords pdfkeywords

text pdftrapped pdftrapped

name Unknown. pdfinfo pdfinfo

key value @@ -1740,7 +1789,7 @@ class="td10"> pdfview pdfview

name pdfstartpage pdfstartpage

integer pdfstartview pdfstartview

name pdfremotestartview pdfremotestartview

name Fit

Set the startup page view of remote PDF files + + pdfpagescrop pdfpagescrop

n n @@ -1792,12 +1843,10 @@ class="td11">

Sets the default PDF crop box for pages. This should be a set of four numbers - - pdfcenterwindow pdfcenterwindow

boolean pdfdirection pdfdirection

name R2L (right to left) pdfdisplaydoctitle pdfdisplaydoctitle

boolean pdfduplex pdfduplex

name DuplexFlipLongEdge (duplex and flip on pdffitwindow pdffitwindow

boolean

resize document window to fit document size -pdflang pdflang -

name

name relax relax

PDF language identifier (RFC 3066) pdfmenubar pdfmenubar -

boolean

boolean true true

make PDF viewer’s menu bar visible pdfnewwindow pdfnewwindow -

boolean

boolean false false

make links that open another PDF file start a new window pdfnonfullscreenpagemode pdfnonfullscreenpagemode -

name

name empty empty

page mode setting on exiting full-screen mode. Possible values are UseOutlines, class="ec-lmvtt-10">UseThumbs, and UseOC pdfnumcopies pdfnumcopies -

integer

integer empty empty

number of printed copies pdfpagelayout pdfpagelayout -

name

name empty empty

set layout of PDF pages. Possible values: TwoPageLeft, and TwoPageRight pdfpagelabels pdfpagelabels -

boolean

boolean true true

set PDF page labels pdfpagetransition pdfpagetransition -

name

name empty empty

set PDF page transition style. Possible values are Fade. class="ec-lmvtt-10">R, which simply replaces the old page with the new one. pdfpicktraybypdfsize pdfpicktraybypdfsize -

boolean

boolean false false

specify whether PDF page size is used to select input paper tray in print dialog + + pdfprintarea pdfprintarea -

name

name empty empty

set /PrintArea of viewer preferences. Possible values are TrimBox, and class="ec-lmvtt-10">ArtBox. The dafault according to the PDF Refence is CropBox - - pdfprintclip pdfprintclip -

name

name empty empty

set /PrintClip of viewer preferences. Possible values are ArtBox. The dafault according to the PDF Refence is CropBox pdfprintpagerange pdfprintpagerange

n n (n - n)* empty empty

set /PrintPageRange of viewer preferences pdfprintscaling pdfprintscaling -

name

name empty empty

page scaling option for print dialog (option /PrintScaling of viewer preferences, PDF 1.6); @@ -2056,23 +2099,23 @@ class="td10"> class="ec-lmvtt-10">None and AppDefault pdftoolbar pdftoolbar -

boolean

boolean true true

make PDF toolbar visible pdfviewarea pdfviewarea -

name

name empty empty

set /ViewArea of viewer preferences. Possible values are ArtBox. The dafault according to the PDF Refence is CropBox pdfviewclip pdfviewclip -

name

name empty empty

set /ViewClip of viewer preferences Possible values are ArtBox. The dafault according to the PDF Refence is CropBox pdfwindowui pdfwindowui -

boolean

boolean true true

make PDF user interface elements visible unicode unicode -

boolean

boolean true true

Unicode encoded PDF strings + @@ -2131,16 +2177,16 @@ class="td01"> class="td01"> - +class="td01">

Each link in Acrobat carries its own magnification level, which is set using PDF coordinate space, which is not the same as TeX’s. The unit is bp and the origin is in the lower left corner. See also \hypercalcbp that is explained on page 47. pdfTeX works by supplying default values for 48. pdfTeX works by supplying default values for XYZ (horizontal × vertical null null null will give the same values as the current page. + + left

Fits the height of the page to the window. - - Box /M

A box sweeps in or out. + + /Di

Similar to Dissolve, except the effect sweeps across the screen. - - allbordercolors allbordercolors

Set all border color options allcolors allcolors

Set all color options (without border and field @@ -2508,7 +2554,7 @@ class="td10"> anchorcolor anchorcolor black @@ -2516,7 +2562,7 @@ class="td10"> backref backref false @@ -2524,7 +2570,7 @@ class="td10"> baseurl baseurl empty @@ -2532,7 +2578,7 @@ class="td10"> bookmarks bookmarks true @@ -2540,7 +2586,7 @@ class="td10"> bookmarksnumbered bookmarksnumbered false @@ -2548,7 +2594,7 @@ class="td10"> bookmarksopen bookmarksopen false @@ -2556,7 +2602,7 @@ class="td10"> bookmarksopenlevel bookmarksopenlevel \maxdimen @@ -2564,7 +2610,7 @@ class="td10"> bookmarkstype bookmarkstype toc @@ -2572,7 +2618,7 @@ class="td10"> breaklinks breaklinks false @@ -2580,7 +2626,7 @@ class="td10"> CJKbookmarks CJKbookmarks false @@ -2588,7 +2634,7 @@ class="td10"> citebordercolor citebordercolor 0 1 0 @@ -2596,7 +2642,7 @@ class="td10"> citecolor citecolor green @@ -2604,35 +2650,35 @@ class="td10"> colorlinks colorlinks false

color links true

(tex4ht, dviwindo) + + debug debug false

provide details of anchors defined; same as verbose - - destlabel destlabel false @@ -2642,7 +2688,7 @@ class="ec-lmvtt-10">\label draft draft false @@ -2650,586 +2696,572 @@ class="td10"> driverfallback driverfallback

default if no driver specified or detected -dvipdfm dvipdfm

use dvipdfm backend dvipdfmx dvipdfmx

use dvipdfmx backend dvips dvips

use dvips backend dvipsone dvipsone

use dvipsone backend dviwindo dviwindo

use dviwindo backend encap encap

to set encap character for hyperindex extension extension dvi dvi

suffix of linked files filebordercolor filebordercolor 0 .5 .5 0 .5 .5

color of border around file links filecolor filecolor cyan cyan

color of file links final final true true

opposite of option draft frenchlinks frenchlinks false false

use small caps instead of color for links hidelinks hidelinks

Hide links (removing color and border) hyperfigures hyperfigures false false

make figures hyper links hyperfootnotes hyperfootnotes true true

set up hyperlinked footnotes hyperindex hyperindex true true

set up hyperlinked indices hypertex hypertex

use HyperTeX backend hypertexnames hypertexnames true true

use guessable names for links implicit implicit true true

redefine LaTeX internals latex2html latex2html

use LaTeX2HTML backend linkbordercolor linkbordercolor 1 0 0 1 0 0

color of border around links -linkcolor linkcolor red red

color of links linktoc linktoc section section

make text be link on TOC, LOF and LOT linktocpage linktocpage false false

make page number, not text, be link on TOC, LOF and LOT menubordercolor menubordercolor 1 0 0 1 0 0

color of border around menu links menucolor menucolor red red

color for menu links nativepdf nativepdf false false

an alias for dvips + + naturalnames naturalnames false false

use LaTeX-computed names for links - - nesting nesting false false

allow nesting of links pageanchor pageanchor true true

put an anchor on every page pagebackref pagebackref false false

backreference by page number pdfauthor pdfauthor empty empty

text for PDF Author field pdfborder pdfborder 0 0 1 0 0 1

width of PDF link border 0 0 0 0 0 0

(colorlinks) pdfborderstyle pdfborderstyle

border style for links pdfcenterwindow pdfcenterwindow false false

position the document window in the center of the screen pdfcreator pdfcreator LaTeX with LaTeX with

text for PDF Creator field hyperref hyperref

pdfdirection pdfdirection empty empty

direction setting pdfdisplaydoctitle pdfdisplaydoctitle false false

display document title instead of file name in title bar pdfduplex pdfduplex empty empty

paper handling option for print dialog -pdffitwindow pdffitwindow false false

resize document window to fit document size pdfhighlight pdfhighlight /I /I

set highlighting of PDF links pdfinfo pdfinfo empty empty

alternative interface for setting document information pdfkeywords pdfkeywords empty empty

text for PDF Keywords field pdflang pdflang relax relax

PDF language identifier (RFC 3066) pdfmark pdfmark false false

an alias for dvips pdfmenubar pdfmenubar true true

make PDF viewer’s menu bar visible pdfnewwindow pdfnewwindow false false

make links that open another PDF

file start a new window pdfnonfullscreenpagemode pdfnonfullscreenpagemode empty empty

page mode setting on exiting full-screen mode pdfnumcopies pdfnumcopies empty empty

number of printed copies pdfpagelabels pdfpagelabels true true

set PDF page labels pdfpagelayout pdfpagelayout empty empty

set layout of PDF pages pdfpagemode pdfpagemode empty empty

set default mode of PDF display pdfpagescrop pdfpagescrop empty empty

set crop size of PDF document + + pdfpagetransition pdfpagetransition empty empty

set PDF page transition style - - pdfpicktraybypdfsize pdfpicktraybypdfsize empty empty

set option for print dialog pdfprintarea pdfprintarea empty empty

set /PrintArea of viewer preferences pdfprintclip pdfprintclip empty empty

set /PrintClip of viewer preferences pdfprintpagerange pdfprintpagerange empty empty

set /PrintPageRange of viewer preferences -pdfprintscaling pdfprintscaling empty empty

page scaling option for print dialog pdfproducer pdfproducer empty empty

text for PDF Producer field pdfremotestartview pdfremotestartview Fit Fit

starting view of remote PDF documents pdfstartpage pdfstartpage 1 1

page at which PDF document opens pdfstartview pdfstartview Fit Fit

starting view of PDF document pdfsubject pdfsubject empty empty

text for PDF Subject field pdftex pdftex

use pdfTeX backend pdftitle pdftitle empty empty

text for PDF Title field pdftoolbar pdftoolbar true true

make PDF toolbar visible pdftrapped pdftrapped empty empty

Sets the document information Trapped entry. Possible values are False and Unknown. An empty value means, the entry is not set. pdfview pdfview XYZ XYZ

PDF ‘view’ when on link traversal pdfviewarea pdfviewarea empty empty

set /ViewArea of viewer preferences pdfviewclip pdfviewclip empty empty

set /ViewClip of viewer preferences pdfwindowui pdfwindowui true true

make PDF user interface elements visible plainpages plainpages false false

do page number anchors as plain Arabic ps2pdf ps2pdf

use ps2pdf backend psdextra psdextra false false

define more short names for PDF string commands raiselinks raiselinks false false

raise up links (for HyperTeX backend) runbordercolor runbordercolor 0 .7 .7 0 .7 .7

color of border around ‘run’ links runcolor runcolor filecolor filecolor

color of ‘run’ links -setpagesize setpagesize true true

set page size by special driver commands tex4ht tex4ht

use TeX4ht backend textures textures

use Textures backend unicode unicode true true

Unicode encoded pdf strings, starting with version v7.00g set by default to true for all @@ -3361,60 +3390,62 @@ class="td10"> puenc.def. It can be set to false for pdflatex, but this is not recommended. urlbordercolor urlbordercolor 0 1 1 0 1 1

color of border around URL links urlcolor urlcolor magenta magenta

color of URL links verbose verbose false false

be chatty vtex vtex

use VTeX backend xetex xetex

use XeTeX backend + style="vertical-align:baseline;" id="TBL-12-110-"> + style="vertical-align:baseline;" id="TBL-12-111-"> + style="vertical-align:baseline;" id="TBL-12-112-"> + style="vertical-align:baseline;" id="TBL-12-113-"> + style="vertical-align:baseline;" id="TBL-12-114-">

4 pdfremotestartview, pdfnewwindow and the following key value options:
+

page:

Specifies the start page number of remote PDF documents. First page is +

Specifies the start page number of remote PDF documents. First page is 1.

+

ismap:

Boolean key, if set to true, the URL should appended by the coordinates as query - parameters by the PDF viewer. +class="description"> +

Boolean key, if set to true, the URL should appended by the coordinates as query parameters + by the PDF viewer.

+

nextactionraw:

The value of key +

The value of key /Next of action dictionaries, see PDF specification.

+ +

URL}}. Depending on the driver \href also tries to detect the link type. Thus the result can be a url link, file link, … - -

\hyperlink has two arguments, the name class="ec-lmvtt-10">\hypertarget, and the text which be used as the link on the page. + +

Note that in HTML parlance, the \hyperlink command inserts a notional # in front of each link, making it relative to the current testdocument; \phantomsection

This sets an anchor at this location. It works similar to \hypertarget{}{} with an automatically chosen - anchor name. Often it is used in conjunction with \addcontentsline for sectionlike things (index, bibliography, preface). \pdfstringdef returns a macro containing the PDF stri rely on it.) All the following tasks, definitions and redefinitions are made in a group to keep them local:

    -
  • Switching to PD1 or PU encoding +
  • +

    Switching to PD1 or PU encoding

  • -
  • Defining the “octal sequence commands” ( +

    Defining the “octal sequence commands” (\345): \edef\3{\string\3}

  • -
  • Special glyphs of TeX: +

    Special glyphs of TeX: \{, \%, \&, \space, \dots, etc.

  • -
  • National glyphs ( +

    National glyphs (german.sty, french.sty, etc.)

  • -
  • Logos: +

    Logos: \TeX, \eTeX, \MF, etc.

  • -
  • Disabling commands that do not provide useful functionality in bookmarks: +

    Disabling commands that do not provide useful functionality in bookmarks: \label, \index, \discretionary, \def, \let, etc.

  • -
  • LaTeX’s font commands like +

    LaTeX’s font commands like \textbf, etc.

  • -
  • Support for +

    Support for \xspace provided by the xspace package

+ +

In addition, parentheses are protected to avoid the danger of unsafe unbalanced parentheses in the PDF string. For further details, see Heiko Oberdiek’s EuroTeX paper distributed with hyperref playing havoc in the front matter. - -

4.1 Bookmark macros

@@ -4113,11 +4159,15 @@ class="ec-lmbx-10">Hint: Package bookmark replaces hyperref’s bookmark organization by a new algorithm:
    -
  • Usually only one LaTeX run is needed. +
  • +

    Usually only one LaTeX run is needed. +

  • -
  • More control over the bookmark appearance (color, font). +
  • +

    More control over the bookmark appearance (color, font).

  • -
  • Different bookmark actions are supported (external file links, URLs, …).
+
  • +

    Different bookmark actions are supported (external file links, URLs, …).

  • Therefore I recommend using this package.

    4.1.2 hyperref takes the text for bookmarks from the argumen class="ec-lmvtt-10">\section, which can contain things like math, colors, or font changes, none of which will display in bookmarks as is. - -

    4< Default is 1 pt for supporting drivers.

    +

    pdfTeX

    +

      -
    • The link area also depends on the surrounding box. +
    • +

      The link area also depends on the surrounding box.

    • -
    • Settings have local effect. +
    • +

      Settings have local effect.

    • -
    • When a page is shipped out, pdfTeX uses the current setting of the link margin for all +
    • +

      When a page is shipped out, pdfTeX uses the current setting of the link margin for all links on the page.

    +

    pdfmark

    +

    +

      -
    • Settings have global effect.
    +
  • +

    Settings have global effect.

  • +

    xetex

    - - +

      -
    • Settings must be done in the preamble or the first page and then have global effect. +
    • +

      Settings must be done in the preamble or the first page and then have global effect. The key inserts the new (x)dvipdfmx special \special{dvipdfmx:config g #1} (with the unit removed).

    +

    Other drivers

    Unsupported.
    +class="description"> +

    Unsupported.

    5.2 Field option ‘calculatesortkey’

    @@ -4556,19 +4616,24 @@ class="ec-lmvtt-10">\nohyperpage.)

    A better implementation which hasn’t the disadvantage to prevent line breaks is in the ocgx2 package. Check its documentation for details how to use it.

      -
    • The option must be given for package loading: +

      The option must be given for package loading: \usepackage[ocgcolorlinks]{hyperref}

    • -
    • Main disadvantage: Links cannot be broken across lines. PDF reference 1.7: 4.10.2 “Making +
    • +

      Main disadvantage: Links cannot be broken across lines. PDF reference 1.7: 4.10.2 “Making Graphical Content Optional”: Graphics state operations, such as setting the color, ..., are still applied. Therefore the link text is put in a box and set twice, with and without color.

    • -
    • The feature can be switched of by +

      The feature can be switched of by \hypersetup{ocgcolorlinks=false} inside the document.

    • -
    • Supported drivers: pdftex, dvipdfm +
    • +

      Supported drivers: pdftex, dvipdfm

    • -
    • The PDF version should be at least 1.5. It is automatically set for pdfTeX, LuaTeX and +
    • +

      The PDF version should be at least 1.5. It is automatically set for pdfTeX, LuaTeX and dvipdfmx.

    5.12

    Currently, option ‘pdfa’ sets and disables the following items:

    The default value of the new option ‘pdfa’ is ‘false’. It influences the loading of the package and @@ -4608,39 +4682,50 @@ class="ec-lmvtt-10">\usepackage{hyperref}).

    The new option ‘linktoc’ allows more control which part of an entry in the table of contents is made into a link:

      -
    • ‘linktoc=none’ (no links) +
    • +

      ‘linktoc=none’ (no links)

    • -
    • ‘linktoc=section’ (default behaviour, same as ‘linktocpage=false’) +
    • +

      ‘linktoc=section’ (default behaviour, same as ‘linktocpage=false’)

    • -
    • ‘linktoc=page’ (same as ‘linktocpage=true’) +
    • +

      ‘linktoc=page’ (same as ‘linktocpage=true’) +

    • -
    • ‘linktoc=all’ (both the section and page part are links)
    +
  • +

    ‘linktoc=all’ (both the section and page part are links)

  • 5.14 Option ‘pdfnewwindow’ changed

    Before 6.77b:

      -
    • pdfnewwindow=true +

      pdfnewwindow=true /NewWindow true

    • -
    • pdfnewwindow=false +

      pdfnewwindow=false (absent)

    • -
    • unused pdfnewwindow +

      unused pdfnewwindow (absent)

    Since 6.77b:

      -
    • pdfnewwindow=true /NewWindow true - +
    • +

      pdfnewwindow=true /NewWindow true

    • -
    • pdfnewwindow=false +

      pdfnewwindow=false /NewWindow false

    • -
    • pdfnewwindow= +

      pdfnewwindow= (absent)

    • -
    • unused pdfnewwindow +

      unused pdfnewwindow (absent)

    Rationale: There is a difference between setting to ‘false’ and an absent entry. In the former case the new document replaces the old one, in the latter case the PDF viewer application should respect the user @@ -4659,8 +4744,11 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/pdf/pdf_reference.htmlhttp://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf

    Options (convert to lowercase) except flags in square brackets: + +

      -
    • Table 8.16 Annotation flags (page 608): +
    • +

      Table 8.16 Annotation flags (page 608):

      1 Invisible
      2 Hidden (PDF 1.2) @@ -4673,21 +4761,23 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf9 ToggleNoView (PDF 1.5)
      10 LockedContents (PDF 1.7)
    • -
    • Table 8.70 Field flags common to all field types (page 676): +
    • +

      Table 8.70 Field flags common to all field types (page 676):

      1 ReadOnly
      2 Required
      3 NoExport
    • -
    • Table 8.75 Field flags specific to button fields (page 686): +
    • +

      Table 8.75 Field flags specific to button fields (page 686):

      - 15 NoToggleToOff (Radio buttons only) - + 15 NoToggleToOff (Radio buttons only)
      16 Radio (set: radio buttons, clear: check box, pushbutton: clear)
      17 Pushbutton
      26 RadiosInUniso (PDF 1.5)
    • -
    • Table 8.77 Field flags specific to text fields (page 691): +
    • +

      Table 8.77 Field flags specific to text fields (page 691):

      13 Multiline
      14 Password @@ -4695,9 +4785,11 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf23 DoNotSpellCheck (PDF 1.4)
      24 DoNotScroll (PDF 1.4)
      25 Comb (PDF 1.5) -
      26 RichText (PDF 1.5)
      +
      26 RichText (PDF 1.5) +
    • -
    • Table 8.79 Field flags specific to choice fields (page 693): +
    • +

      Table 8.79 Field flags specific to choice fields (page 693):

      18 Combo (set: combo box, clear: list box)
      19 Edit (only useful if Combo is set) @@ -4706,7 +4798,8 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf23 DoNotSpellCheck (PDF 1.4) (only useful if Combo and Edit are set)
      27 CommitOnSelChange (PDF 1.5)
    • -
    • Table 8.86 Flags for submit-form actions (page 704): +
    • +

      Table 8.86 Flags for submit-form actions (page 704):

      [1 Include/Exclude] unsupported, use ‘noexport’ (table 8.70) instead
      2 IncludeNoValueFields @@ -4722,18 +4815,22 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf12 ExclFKey (PDF 1.4)
      14 EmbedForm (PDF 1.5)
    - -

    New option ‘export’ sets the export format of a submit action. Valid values are (upper- or lowercase):

      -
    • FDF +
    • +

      FDF

    • -
    • HTML +
    • +

      HTML

    • -
    • XFDF +
    • +

      XFDF + +

    • -
    • PDF (not supported by Acrobat Reader)
    +
  • +

    PDF (not supported by Acrobat Reader)

  • 5.16 Option ‘pdfversion’

    @@ -4745,20 +4842,24 @@ higher PDF versions. class="ec-lmvtt-10">\usepackage{hyperref}.

    In theory this option should also set the PDF version, but this is not generally supported.

      -
    • pdfTeX below 1.10a: unsupported. pdfTeX +

      pdfTeX below 1.10a: unsupported. pdfTeX 1.10a and < 1.30: \pdfoptionpdfminorversion pdfTeX 1.30: \pdfminorversion

    • -
    • dvipdfm: configuration file, example: TeX Live 2007, texmf/dvipdfm/config/config, entry ‘V +
    • +

      dvipdfm: configuration file, example: TeX Live 2007, texmf/dvipdfm/config/config, entry ‘V 2’.

    • -
    • dvipdfmx: configuration file, example: TeX Live 2007, texmf/dvipdfm/dvipdfmx.cfg, entry +
    • +

      dvipdfmx: configuration file, example: TeX Live 2007, texmf/dvipdfm/dvipdfmx.cfg, entry ‘V 4’.

    • -
    • Ghostscript: option -dCompatibilityLevel (this is set in ‘ps2pdf12’, ‘ps2pdf13’, ‘ps2pdf14’).
    +
  • +

    Ghostscript: option -dCompatibilityLevel (this is set in ‘ps2pdf12’, ‘ps2pdf13’, ‘ps2pdf14’).

  • The current PDF version is used as default if this version can be detected (only pdfTeX 1.10a). Otherwise the lowest version 1.2 is assumed. Thus ‘hyperref’ tries to avoid PDF code that breaks this @@ -4768,14 +4869,16 @@ version, but is free to use ignorable higher PDF features. id="x1-370005.17">Field option ‘name’

    Many form objects uses the label argument for several purposes:

      -
    • Layouted label. +
    • +

      Layouted label.

    • -
    • As name in HTML structures.
    - - +
  • +

    As name in HTML structures.

  • Code that is suitable for layouting with TeX can break in the structures of the output format. If option ‘name’ is given, then its value is used as name in the different output structures. Thus the value should consist of letters only. + +

    5.18 Option ‘pdfencoding’

    @@ -4784,15 +4887,18 @@ PDFDocEncoding and Unicode as UTF-16BE. Option pdfencoding selects between these encodings:
      -
    • +

      pdfdoc uses PDFDocEncoding. It uses just one byte per character, but the supported characters are limited (244 in PDF-1.7).

    • -
    • +

      unicode sets Unicode. It is encoded as UTF-16BE. Two bytes are used for most characters, surrogates need four bytes.

    • -
    • +

      auto PDFDocEncoding if the string does not contain characters outside the encoding (outside ascii if an unicode engine is used) and Unicode otherwise. This option is not intended for the unicode engines.

    @@ -4834,34 +4940,42 @@ class="ec-lmvtt-10"> 1}
      -
    • AR7/Linux seems to have a bug, that don’t use the default value +

      AR7/Linux seems to have a bug, that don’t use the default value 1 for the width, but zero, thus that the underline is not visible without /W 1. The same applies for dashed boxes, eg.: pdfborderstyle=/S/D/D[3 2]/W 1

    • -
    • The syntax is described in the PDF specification, look for “border style”, eg. Table 8.13 +
    • +

      The syntax is described in the PDF specification, look for “border style”, eg. Table 8.13 “Entries in a border style dictionary” (specification for version 1.6)

    • -
    • The border style is removed by pdfborderstyle= This is automatically done if option +
    • +

      The border style is removed by pdfborderstyle= This is automatically done if option colorlinks is enabled.

    • -
    • Be aware that not all PDF viewers support this feature, not even Acrobat Reader itself: +
    • +

      Be aware that not all PDF viewers support this feature, not even Acrobat Reader itself:

      Some support:

        -
      • AR7/Linux: +

        AR7/Linux: underline and dashed, but the border width must be given.

      • -
      • xpdf 3.00: +

        xpdf 3.00: underline and dashed

      Unsupported:

        -
      • AR5/Linux +
      • +

        AR5/Linux

      • -
      • ghostscript 8.50
      +
    • +

      ghostscript 8.50

    5.23 bookmarksdepth

    class="ec-lmss-10">bookmarksdepth. The option acts globally and distinguishes three cases:
      -
    • +

      bookmarksdepth without value Then hyperref uses the current value of counter tocdepth. This is the compatible behaviour and the default. + +

    • -
    • +

      bookmarksdepth=<number>, the value is number (also negative): The depth for the bookmarks are set to this number.

    • -
    • +

      bookmarksdepth=<name> The <name> is a document division name (part, chapter, ...). It must not start with a digit or minus to avoid mixing up with the number case. Internally hyperref uses the value of macro

      Therefore a new option pdfescapeform was introduced:

        -
      • pdfescapeform=false Escaping for the formulars are disabled, this is the compatibility +
      • +

        pdfescapeform=false Escaping for the formulars are disabled, this is the compatibility behaviour, therefore this is the default.

      • -
      • pdfescapeform=true Then the PS/PDF drivers do all the necessary escaping. This is the +
      • +

        pdfescapeform=true Then the PS/PDF drivers do all the necessary escaping. This is the logical choice and the recommended setting. For example, the user writes JavaScript as JavaScript and do not care about escaping characters for PS/PDF output.

      @@ -5068,7 +5189,8 @@ class="ec-lmvtt-10">puenc.def clash with other uses. To reduce the impact class="ec-lmss-10">hyperref uses two strategies.

        -
      • A number of command are only defined conditionally: The commands for the cyrillic block +
      • +

        A number of command are only defined conditionally: The commands for the cyrillic block if \CYRDZE is defined, greek if \textBeta is defined, and hebrew if \hebdalet is defined.

        The greek block is in an extra file, puenc-greek.def, which can be loaded manually if needed.

      • -
      • Other commands are moved to an extra file +

        Other commands are moved to an extra file puenc-extra.def which is not loaded automatically, but can be loaded in the preamble if needed. Currently this file contains all definitions for the accent accesskey

    +class="td10"> (as per HTML) +class="ec-lmri-10">0 +class="td10"> 1 is centered, 2 is right-aligned. +class="td10"> alternative name, +class="td10"> the name shown in the user interface +class="td10"> color of box +class="td10"> color of border +class="td10"> box border gap + + - +class="ec-lmri-10">1 +class="td10"> or a number with default unit bp +class="td10"> JavaScript code to calculate the value of the field +class="td10"> font size of field text +class="td10"> symbol used for check boxes (ZapfDingbats), +class="ec-lmvtt-10">}, +class="ec-lmss-10">psnfss +class="ec-lmri-10">false +class="td10"> color of text in box +class="ec-lmri-10">false +class="td10"> default value +class="ec-lmri-10">false - + -onmouseover + +class="td10"> JavaScript code +class="td10"> JavaScript code +class="ec-lmvtt-10">password +class="ec-lmvtt-10">popdown +class="td10"> choice list is ‘radio’ style - - +class="ec-lmri-10">) +class="ec-lmvtt-10">}, +class="ec-lmss-10">psnfss +class="ec-lmri-10">false +class="ec-lmri-10">0 + + +class="td10"> JavaScript code to validate the entry +class="td10"> initial value +class="td10"> width of field box +class="td01"> +class="td01"> +class="td01"> - - +class="td01">
    key (as per HTML)
    align number 0 alignment within text field; 0 is left-aligned, alignment within text field; 0 is left-aligned,
    1 is centered, 2 is right-aligned.
    altname name alternative name,
    the name shown in the user interface
    backgroundcolor color of box
    bordercolor color of border
    bordersep box border gap
    borderwidth 1 width of box border, the value is a dimension width of box border, the value is a dimension
    or a number with default unit bp
    calculate JavaScript code to calculate the value of the field
    charsize dimen font size of field text
    4 () symbol used for check boxes (ZapfDingbats),
    the value is a character or \ding{number},
    see package pifont from bundle psnfss
    checked boolean false whether option selected by default whether option selected by default
    color color of text in box
    combo boolean false choice list is ‘combo’ style choice list is ‘combo’ style
    default default value
    disabled boolean false field disabled field disabled
    format format JavaScript code to format the field
    height dimen height dimen height of field box
    hidden boolean hidden boolean false false field hidden
    keystroke keystroke JavaScript code to control the keystrokes on entry
    mappingname name mappingname name the mapping name to be used when exporting
    the field data
    maxlen number maxlen number 0 0 number of characters allowed in text field
    menulength number menulength number 4 4 number of elements shown in list
    multiline boolean multiline boolean false false whether text box is multiline
    name name name name name of field (defaults to label)
    onblur JavaScript code
    onblur onchange JavaScript code
    onchange onclick JavaScript code
    onclick ondblclick JavaScript code
    ondblclick onfocus JavaScript code
    onfocus onkeydown JavaScript code
    onkeydown onkeypress JavaScript code
    onkeypress onkeyup JavaScript code
    onkeyup onmousedown JavaScript code
    onmousedown onmousemove JavaScript code
    onmousemove onmouseout JavaScript code
    JavaScript code
    onmouseout onmouseup JavaScript code
    onmouseover onselect JavaScript code
    onmouseup JavaScript code boolean false text field is ‘password’ style
    onselect JavaScript code boolean false choice list is ‘popdown’ style
    password radio boolean false text field is ‘password’ style
    popdown boolean false choice list is ‘popdown’ style
    radio boolean false choice list is ‘radio’ style
    radiosymbol char radiosymbol char H () symbol used for radio fields (ZapfDingbats), symbol used for radio fields (ZapfDingbats),
    the value is a character or \ding{number},
    see package pifont from bundle psnfss
    readonly boolean readonly boolean false field is readonly field is readonly
    rotation number rotation number 0 rotation of the widget annotation rotation of the widget annotation
    (degree, counterclockwise, multiple of 90)
    tabkey (as per HTML)
    validate (degree, counterclockwise, multiple of 90)
    tabkey value (as per HTML)
    validate width dimen JavaScript code to validate the entry
    value initial value
    width dimen width of field box

    8 \hyper@linkfile class="ec-lmvtt-10">\hyper@linkurl

    5. \hyper@anchorstart - -

    6. \hyper@anchorend +class="ec-lmvtt-10">\hyper@anchorend +

    7. \hyper@linkstart

    8. \hyper@linkend class="ec-lmss-10">hyperref aims to cooperate with other packages, but there are several possible sources for conflict, such as

      -
    • Packages that manipulate the bibliographic mechanism. Peter William’s +

      Packages that manipulate the bibliographic mechanism. Peter William’s harvard package is supported. However, the recommended package is Patrick Daly’s natbib package that has @@ -6122,7 +6240,8 @@ class="ec-lmss-10">hyperref hooks to allow reliable interaction. This pac of layouts and citation styles, all of which work with hyperref.

    • -
    • Packages that typeset the contents of the +

      Packages that typeset the contents of the \label and \ref macros, such as showkeys. Since the @@ -6131,7 +6250,8 @@ class="ec-lmss-10">hyperref package redefines these commands, you must se class="ec-lmvtt-10">implicit=false for these packages to work.

    • -
    • Packages that do anything serious with the index.
    +
  • +

    Packages that do anything serious with the index.

  • The hyperref package is distributed with variants on two useful packages designed to work especially well with it. These are \begin{document}. Sometimes this is too package must be loaded earlier.

    9.1.1 algorithm
    - + id="x1-560009.1.1">algorithm

      \usepackage{float}
    @@ -6195,7 +6314,7 @@ thus the resulting package order is then:
                                                                                      
        
       \usepackage{longtable}
    -  \usepacakge{hyperref}
    +  \usepackage{hyperref}
       \usepackage{arydshln}
     

    @@ -6334,10 +6453,12 @@ before):

      -
    • Several +

      Several \caption commands are not supported inside one float object.

    • -
    • Anchor are set at top of the float object, if its style is controlled by float.sty.
    +
  • +

    Anchor are set at top of the float object, if its style is controlled by float.sty.

  • 9.1.16 endnotes
    @@ -6638,11 +6759,13 @@ order: varioref that breaks the hyperref support for varioref.

    Also unsupported:

      -
    • +

      \Ref, \Vref do not uppercase the first letter.

    • -
    • +

      \vpageref[]{...} On the same page a previous space is not suppressed.

    9.1.41 5< drivers lack this feature, e.g. dvips, dvipsone.

    Workarounds:

      -
    • For long section or caption titles in the table of contents or list of figures/tables option +
    • +

      For long section or caption titles in the table of contents or list of figures/tables option linktocpage can be used. Then the page number will be a link, and the overlong section title is not forced into an one line link with overfull \hbox warning.

    • -
    • +

      \url”s are caught by package breakurl.

    • -
    • The option +

      The option breaklinks is intended for internal use. But it can be used to force link wrapping, e.g. when printing a document. However, when such a document is converted to PDF and viewed with a PDF viewer, the active link area will be misplaced. + +

      Another limitation: some penalties are “optimized” by TeX, thus there are missing break points, especially within \url. (See thread “hyperref.sty, breaklinks and url.sty 3.2” in comp.text.tex 2005-09).

    - -

    10.2 Links across pages

    In general they have problems:

      -
    • Some driver doesn’t support them at all (see above). +
    • +

      Some driver doesn’t support them at all (see above).

    • -
    • The driver allows it, but the link result might include the footer and/or header, or an error +
    • +

      The driver allows it, but the link result might include the footer and/or header, or an error message can occur sometimes.

    10.3 xsetkeys).

    11.2 Index with makeindex

      -
    • Package hyperref adds +

      Package hyperref adds \hyperpage commands by the encap mechanism (see documentation of Makeindex), if option hyperindex is set (default). \hyperpage uses the page anchors that @@ -6850,7 +6979,8 @@ class="ec-lmvtt-10">\romannumbering, ...), then the page an option plainpages=false is recommended.

    • -
    • The encap mechanism of Makeindex allows to use one command only (see documentation of +
    • +

      The encap mechanism of Makeindex allows to use one command only (see documentation of Makeindex). If the user sets such a command, hyperref suppresses its \hyperpage command. With logical markup this situation can easily be solved: @@ -6866,9 +6996,11 @@ class="ec-lmvtt-10">\hyperpage command. With

    • -
    • Scientic Word/Scientific WorkPlace users can use package robustindex with hyperindex=false. +
    • +

      Scientic Word/Scientific WorkPlace users can use package robustindex with hyperindex=false.

    • -
    • Other encap characters can be set by option +

      Other encap characters can be set by option encap. Example for use of “?”: @@ -6877,7 +7009,8 @@ class="ec-lmss-10">encap. Example for use of “?”:

    • -
    • Another possibility is the insertion of +

      Another possibility is the insertion of \hyperpage by a style file for makeindex. For this case, hyperref’s insertion will be disabled by hyperindex=false.

        -
      1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, +
      2. +

        Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

      3. -
      4. List on the Title Page, as authors, one or more persons or entities responsible for authorship +
      5. +

        List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they - release you from this requirement. -

      6. -
      7. State on the Title page the name of the publisher of the Modified Version, as the publisher. - + release you from this requirement.
      8. -
      9. Preserve all the copyright notices of the Document. +
      10. +

        State on the Title page the name of the publisher of the Modified Version, as the publisher.

      11. -
      12. Add an appropriate copyright notice for your modifications adjacent to the other copyright +
      13. +

        Preserve all the copyright notices of the Document. +

      14. +
      15. +

        Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

      16. -
      17. Include, immediately after the copyright notices, a license notice giving the public permission +
      18. +

        Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

      19. -
      20. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts +
      21. +

        Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.

      22. -
      23. Include an unaltered copy of this License. +
      24. +

        Include an unaltered copy of this License.

      25. -
      26. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at +
      27. +

        Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

      28. -
      29. Preserve the network location, if any, given in the Document for public access to a +
      30. +

        Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. + +

      31. -
      32. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the +
      33. +

        For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

      34. -
      35. Preserve all the Invariant Sections of the Document, unaltered in their text and in their +
      36. +

        Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

      37. -
      38. Delete any section Entitled “Endorsements”. Such a section may not be included in the +
      39. +

        Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.

      40. -
      41. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with +
      42. +

        Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.

      43. -
      44. Preserve any Warranty Disclaimers. +
      45. +

        Preserve any Warranty Disclaimers.

      - -

      If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in @@ -7376,6 +7523,8 @@ may replace the old one, on explicit permission from the previous publisher that one.

      The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. + +

      13.5 Combining documents

      @@ -7406,8 +7555,6 @@ of the documents in all other respects. License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

      - -

      13.7 Aggregation with independent works

      A compilation of the Document or its derivatives with other separate and independent documents or @@ -7430,6 +7577,7 @@ under the terms of section 13.4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of + this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation @@ -7460,8 +7608,6 @@ following the terms and conditions either of that specified version or of any la published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. - -

      Addendum: how to use this license for your documents

      @@ -7479,6 +7625,8 @@ class="ts1-lmr10-"> line with this:

      with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +

      If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

      If your document contains nontrivial examples of program code, we recommend releasing these diff --git a/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf b/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf index f39dbe3d0e..51a1372af1 100644 Binary files a/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf and b/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf differ diff --git a/macros/latex/contrib/hyperref/doc/hyperref-doc.tex b/macros/latex/contrib/hyperref/doc/hyperref-doc.tex index f4b113db0d..ce9a213c8c 100644 --- a/macros/latex/contrib/hyperref/doc/hyperref-doc.tex +++ b/macros/latex/contrib/hyperref/doc/hyperref-doc.tex @@ -166,7 +166,7 @@ } \makeatother \title{Hypertext marks in \hologo{LaTeX}: a manual for \xpackage{hyperref}} -\date{2021-02-27 v7.00k} +\date{2021-06-05 v7.00l} \begin{document} @@ -2539,7 +2539,7 @@ earlier. \begin{verbatim} \usepackage{longtable} - \usepacakge{hyperref} + \usepackage{hyperref} \usepackage{arydshln} \end{verbatim} diff --git a/macros/latex/contrib/hyperref/doc/hyperref.pdf b/macros/latex/contrib/hyperref/doc/hyperref.pdf index 94564ddfe3..509003fa47 100644 Binary files a/macros/latex/contrib/hyperref/doc/hyperref.pdf and b/macros/latex/contrib/hyperref/doc/hyperref.pdf differ diff --git a/macros/latex/contrib/hyperref/doc/nameref.pdf b/macros/latex/contrib/hyperref/doc/nameref.pdf index 731298ac32..31cafb8c57 100644 Binary files a/macros/latex/contrib/hyperref/doc/nameref.pdf and b/macros/latex/contrib/hyperref/doc/nameref.pdf differ diff --git a/macros/latex/contrib/hyperref/hluatex.dtx b/macros/latex/contrib/hyperref/hluatex.dtx index b1ad0653c7..e16c9e1d8e 100644 --- a/macros/latex/contrib/hyperref/hluatex.dtx +++ b/macros/latex/contrib/hyperref/hluatex.dtx @@ -1,6 +1,6 @@ % \iffalse % Source File: hluatex.dtx -% 2021-02-27 v7.00k +% 2021-06-05 v7.00l % % Copyright % 2016-2019 Oberdiek Package Support Group @@ -31,7 +31,7 @@ % % \begin{macrocode} %<*luatex> -%% 2021-02-27 v7.00k +%% 2021-06-05 v7.00l %% force unicode encoding, see issue #101 %% code mostly copied from hxetex.def \HyPsd@LoadUnicode diff --git a/macros/latex/contrib/hyperref/hyperref.dtx b/macros/latex/contrib/hyperref/hyperref.dtx index 711fa59ea1..f07e832470 100644 --- a/macros/latex/contrib/hyperref/hyperref.dtx +++ b/macros/latex/contrib/hyperref/hyperref.dtx @@ -53,7 +53,7 @@ %\ProvidesFile{puarenc.def} %\ProvidesFile{psdextra.def} %\ProvidesFile{hyperref-langpatches.def} -% [2021-02-27 v7.00k % +% [2021-06-05 v7.00l % % Hypertext links for LaTeX] % Dummy hyperref (SR)] % Hyperref documentation driver file] @@ -4451,10 +4451,10 @@ \let\Hy@RestoreLastskip\relax \ifvmode \ifdim\lastskip=\z@ - \ifnum\lastnodetype=11 % - \let\Hy@RestoreLastskip\nobreak - \else + \ifnum\lastnodetype=1 % \let\Hy@RestoreLastskip\relax + \else + \let\Hy@RestoreLastskip\nobreak \fi \else \begingroup @@ -7745,6 +7745,7 @@ \def\Hy@babelnormalise#1[#2]{% \begingroup \Hy@safe@activestrue + \let\protect\@unexpandableprotect \edef\Hy@tempa{% \endgroup \noexpand#1[{#2}]% @@ -11416,7 +11417,7 @@ % without valid anchor % \begin{macrocode} \@ifpackageloaded{longtable}{% - \CheckCommand*{\LT@p@ftntext}[1]{% + \CheckCommand{\LT@p@ftntext}[1]{% \edef\@tempa{% \the\LT@p@ftn \noexpand\footnotetext[\the\c@footnote]% @@ -12979,6 +12980,7 @@ \def\HyRef@StarSetRef#1{% \begingroup \Hy@safe@activestrue + \let\protect\@unexpandableprotect \edef\x{#1}% \@onelevel@sanitize\x \edef\x{\endgroup diff --git a/macros/latex/contrib/hyperref/xr-hyper.sty b/macros/latex/contrib/hyperref/xr-hyper.sty index 08bfac613a..25b2c24f83 100644 --- a/macros/latex/contrib/hyperref/xr-hyper.sty +++ b/macros/latex/contrib/hyperref/xr-hyper.sty @@ -61,7 +61,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xr-hyper} - [2021-02-27 v7.00k eXternal References (DPC)] + [2021-06-05 v7.00l eXternal References (DPC)] \def\externaldocument{\@testopt\XR@cite{}} \let\externalcitedocument\externaldocument diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf index 972985be67..646ec7e301 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix-french.pdf and b/macros/latex/contrib/nicematrix/nicematrix-french.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex index b9f2c80453..c80c13f352 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.tex +++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex @@ -4348,7 +4348,7 @@ a_p & &&a_0 & & &b_1 \\ \end{scope} \vspace{2cm} -Un exemple avec un système linéaire:\par\nobreak +Un exemple avec un système linéaire: \begin{Verbatim} $\begin{pNiceArray}{*6c|c}[nullify-dots,last-col,code-for-last-col=\scriptstyle] diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx index 0718d3cae5..32206348c0 100644 --- a/macros/latex/contrib/nicematrix/nicematrix.dtx +++ b/macros/latex/contrib/nicematrix/nicematrix.dtx @@ -15,8 +15,8 @@ % % \fi % \iffalse -\def\myfileversion{5.15a} -\def\myfiledate{2021/05/06} +\def\myfileversion{5.15b} +\def\myfiledate{2021/06/05} % % %<*batchfile> @@ -1665,7 +1665,7 @@ version 2005/12/01 or later. % % It's possible to access the preceding tools with a syntax close to the syntax % of \pkg{colortbl}. For that, one must use the key |colortbl-like| in the -% current environment.\footnote{As for now, this key is \emph{not} available in |\NiceMatrixOptions|.} +% current environment.\footnote{Up to now, this key is \emph{not} available in |\NiceMatrixOptions|.} % % There are three commands available (they are inspired by \pkg{colortbl} but % are \emph{independent} of \pkg{colortbl}): @@ -4134,7 +4134,7 @@ version 2005/12/01 or later. % \end{Verbatim} % % \bigskip -% As for now, the package \pkg{nicematrix} is not compatible with +% Up to now, the package \pkg{nicematrix} is not compatible with % \cls{aastex63}. If you want to use \pkg{nicematrix} with \cls{aastex63}, send % me an email and I will try to solve the incompatibilies. % @@ -5276,87 +5276,7 @@ version 2005/12/01 or later. } % \end{macrocode} % -% \medskip -% The command |\NC@rewrite@S| is a LaTeX command created by \pkg{siunitx} in -% connection with the |S| column. In the code of \pkg{siunitx}, this command is -% defined by: -% \begin{Verbatim}[commandchars=\~\!\+, formatcom = \small] -% \renewcommand*{\NC@rewrite@S}[1][] -% { -% \@temptokena \exp_after:wN -% { -% \tex_the:D \@temptokena -% > { \__siunitx_table_collect_begin: S {#1} } -% c -% < { \__siunitx_table_print: } -% } -% \NC@find -% } -% \end{Verbatim} -% We want to patch this command (in the environments of \pkg{nicematrix}) in -% order to have: -% \begin{Verbatim}[commandchars=\~\!\+, formatcom = \small] -% \renewcommand*{\NC@rewrite@S}[1][] -% { -% \@temptokena \exp_after:wN -% { -% \tex_the:D \@temptokena -% > { ~emphase!\@@_Cell:+ \__siunitx_table_collect_begin: S {#1} } -% ~emphase!\@@_true_c:+ -% < { \__siunitx_table_print: ~emphase!\@@_end_Cell:+ } -% } -% \NC@find -% } -% \end{Verbatim} -% However, we don't want do use explicitly any private command of \pkg{siunitx}. -% That's why we will extract the name of the two |\__siunitx...| commands by -% their position in the code of |\NC@rewrite@S|. -% -% Since the command |\NC@rewrite@S| appends some tokens to the \emph{toks} list -% |\@temptokena|, we use the LaTeX command |\NC@rewrite@S| in a group -% (|\group_begin:|--|\group_end:|) and we extract the two command names which -% are in the toks |\@temptokena|. However, this extraction can be done only -% when \pkg{siunitx} is loaded (and it may be loaded after \pkg{nicematrix}) -% and, in fact, after the beginning of the document --- because some -% instructions of \pkg{siunitx} are executed in a |\AtBeginDocument|). That's -% why this extraction will be done only at the first use of an -% environment of \pkg{nicematrix} with the command |\@@_adapt_S_column:|. -% \begin{macrocode} -\cs_set_protected:Npn \@@_adapt_S_column: - { - \bool_if:NT \c_@@_siunitx_loaded_bool - { - \group_begin: - \@temptokena = { } -% \end{macrocode} -% We protect |\NC@find| which is at the end of |\NC@rewrite@S|. -% \begin{macrocode} - \cs_set_eq:NN \NC@find \prg_do_nothing: - \NC@rewrite@S { } -% \end{macrocode} -% Conversion of the \emph{toks} |\@temptokena| in a token list of \pkg{expl3} -% (the toks are not supported by \pkg{expl3} but we can, nevertheless, use the -% option |V| for |\tl_gset:NV|). -% \begin{macrocode} - \tl_gset:NV \g_tmpa_tl \@temptokena - \group_end: - \tl_new:N \c_@@_table_collect_begin_tl - \tl_set:Nx \l_tmpa_tl { \tl_item:Nn \g_tmpa_tl 2 } - \tl_gset:Nx \c_@@_table_collect_begin_tl { \tl_item:Nn \l_tmpa_tl 1 } - \tl_new:N \c_@@_table_print_tl - \tl_gset:Nx \c_@@_table_print_tl { \tl_item:Nn \g_tmpa_tl { -1 } } -% \end{macrocode} -% The token lists |\c_@@_table_collect_begin_tl| and |\c_@@_table_print_tl| -% contain now the two commands of \pkg{siunitx}. -% -% \smallskip -% If the adaptation has been done, the command |\@@_adapt_S_column:| becomes -% no-op (globally). -% \begin{macrocode} - \cs_gset_eq:NN \@@_adapt_S_column: \prg_do_nothing: - } - } -% \end{macrocode} +% % % \bigskip % The command |\@@_renew_NC@rewrite@S:| will be used in each environment of @@ -5367,28 +5287,82 @@ version 2005/12/01 or later. \bool_if:nTF { ! \c_@@_siunitx_loaded_bool } { \cs_set_eq:NN \@@_renew_NC@rewrite@S: \prg_do_nothing: } { - \cs_new_protected:Npn \@@_renew_NC@rewrite@S: +% \end{macrocode} +% For version of \pkg{siunitx} at least equal to 3.0, the adaptation is different +% from previous ones. We test the version of \pkg{siunitx} by the existence of the +% control sequence |\siunitx_cell_begin:w|. +% \begin{macrocode} + \cs_if_exist:NTF \siunitx_cell_begin:w { - \renewcommand*{\NC@rewrite@S}[1][] + \cs_new_protected:Npn \@@_renew_NC@rewrite@S: { - \@temptokena \exp_after:wN + \renewcommand*{\NC@rewrite@S}[1][] { - \tex_the:D \@temptokena - > { \@@_Cell: \c_@@_table_collect_begin_tl S {##1} } + \@temptokena \exp_after:wN + { + \tex_the:D \@temptokena + > { + \@@_Cell: + \keys_set:nn { siunitx } { ##1 } + \siunitx_cell_begin:w + } % \end{macrocode} % |\@@_true_c:| will be replaced statically by |c| at the end of the construction % of the preamble. % \begin{macrocode} - \@@_true_c: - < { \c_@@_table_print_tl \@@_end_Cell: } + \@@_true_c: + < { \siunitx_cell_end: \@@_end_Cell: } + } + \NC@find } - \NC@find } } + { + \cs_new_protected:Npn \@@_renew_NC@rewrite@S: + { + \renewcommand*{\NC@rewrite@S}[1][] + { + \@temptokena \exp_after:wN + { + \tex_the:D \@temptokena + > { \@@_Cell: \c_@@_table_collect_begin_tl S {##1} } + \@@_true_c: + < { \c_@@_table_print_tl \@@_end_Cell: } + } + \NC@find + } + } + } + } + } +% \end{macrocode} +% +% \medskip +% The following code is used to define |\c_@@_table_collect_begin_tl| and +% |\c_@@_table_print_tl| when the version of \pkg{siunitx} is prior to 3.0. The +% command |\@@_adapt_S_column| is used in the environment |{NiceArrayWithDelims}|. +% \begin{macrocode} +\cs_set_protected:Npn \@@_adapt_S_column: + { + \bool_if:NT \c_@@_siunitx_loaded_bool + { + \group_begin: + \@temptokena = { } + \cs_set_eq:NN \NC@find \prg_do_nothing: + \NC@rewrite@S { } + \tl_gset:NV \g_tmpa_tl \@temptokena + \group_end: + \tl_new:N \c_@@_table_collect_begin_tl + \tl_set:Nx \l_tmpa_tl { \tl_item:Nn \g_tmpa_tl 2 } + \tl_gset:Nx \c_@@_table_collect_begin_tl { \tl_item:Nn \l_tmpa_tl 1 } + \tl_new:N \c_@@_table_print_tl + \tl_gset:Nx \c_@@_table_print_tl { \tl_item:Nn \g_tmpa_tl { -1 } } + \cs_gset_eq:NN \@@_adapt_S_column: \prg_do_nothing: } } % \end{macrocode} % +% % \bigskip % The following regex will be used to modify the preamble of the array when the % key |colortbl-like| is used. @@ -5416,6 +5390,7 @@ version 2005/12/01 or later. } % \end{macrocode} % +% \bigskip % \subsection*{Parameters} % % \bigskip @@ -5864,11 +5839,7 @@ version 2005/12/01 or later. % % \medskip % The following token list correspond to the key |color| of the command -% |\Block|. However, as of now (v. 5.7 of \pkg{nicematrix}), the key |color| -% linked to |fill| with an error. We will give to the key |color| of |\Block| -% its new meaning in a few months (with its new definition, the key |color| will -% draw the frame with the given color but also color the content of the block -% (that is to say the text) as does the key |color| of a Tikz node). +% |\Block|. % \begin{macrocode} \tl_new:N \l_@@_color_tl % \end{macrocode} @@ -7209,7 +7180,7 @@ version 2005/12/01 or later. % \item we test the existence of these nodes in order to determine whether a % cell is empty when we search the extremities of a dotted line. % \end{itemize} -% However, it's very difficult to determine whether a cell is empty. As for now, +% However, it's very difficult to determine whether a cell is empty. Up to now % we use the following technic: % \begin{itemize} % \item if the width of the box |\l_@@_cell_box| (created with the content of @@ -8169,6 +8140,10 @@ version 2005/12/01 or later. \bool_gset_false:N \g_@@_row_of_col_done_bool \str_if_empty:NT \g_@@_name_env_str { \str_gset:Nn \g_@@_name_env_str { NiceArrayWithDelims } } +% \end{macrocode} +% The following line will be deleted when we will consider that only versions of +% \pkg{siunitx} after v3.0 are compatible with \pkg{nicematrix}. +% \begin{macrocode} \@@_adapt_S_column: \bool_if:NTF \l_@@_NiceTabular_bool \mode_leave_vertical: @@ -10157,12 +10132,19 @@ version 2005/12/01 or later. % \begin{macrocode} \seq_gclear:N \g_@@_submatrix_names_seq % \end{macrocode} +% \medskip +% We compose the |code-after| in math mode in order to nullify the spaces put +% by the user between instructions in the |code-after|. +% \begin{macrocode} + % \bool_if:NT \l_@@_NiceTabular_bool \c_math_toggle_token +% \end{macrocode} % And here's the |\CodeAfter|. Since the |\CodeAfter| may begin with an % ``argument'' between square brackets of the options, we extract and treat that % potential ``argument'' with the command |\@@_CodeAfter_keys:|. % \begin{macrocode} \exp_last_unbraced:NV \@@_CodeAfter_keys: \g_nicematrix_code_after_tl \scan_stop: + % \bool_if:NT \l_@@_NiceTabular_bool \c_math_toggle_token \tl_gclear:N \g_nicematrix_code_after_tl \group_end: % \end{macrocode} @@ -10661,8 +10643,8 @@ version 2005/12/01 or later. % The following commmand (\emph{when it will be written}) will set the four % counters |\l_@@_row_min_int|, |\l_@@_row_max_int|, |\l_@@_col_min_int| and % |\l_@@_col_max_int| to the intersections of the sub-matrices which contains -% the cell of row |#1| and column |#2|. -% As of now, it's only the whole array (excepted exterior row and columns). +% the cell of row |#1| and column |#2|. As of now, it's only the whole array +% (excepted exterior rows and columns). % \begin{macrocode} \cs_new_protected:Npn \@@_adjust_to_submatrix:nn #1 #2 { @@ -11571,9 +11553,6 @@ version 2005/12/01 or later. % |\Iddots| in the environments |{NiceArray}| (the other environments of % \pkg{nicematrix} rely upon |{NiceArray}|). % -% The starred versions of these commands are deprecated since version~3.1 but, -% as of now, they are still available with an error. -% % % \medskip % The syntax of these commands uses the character |_| as embellishment and @@ -12370,8 +12349,7 @@ version 2005/12/01 or later. % The command |\@@_arraycolor| (linked to |\arraycolor| at the beginning of % the |\CodeBefore|) will color the whole tabular (excepted the potential % exterior rows and columns). The third argument is a optional argument which a -% list of pairs key-value. As for now, there is only one key: |except-corners|. -% When that key is used, the cells in the corners are not colored. +% list of pairs key-value. % \begin{macrocode} \NewDocumentCommand \@@_arraycolor { O { } m O { } } { @@ -13627,7 +13605,7 @@ version 2005/12/01 or later. % \end{macrocode} % % \medskip -% As for now, we have no option to control the style of the lines drawn by +% Up to now, we have no option to control the style of the lines drawn by % |\hdottedline| and the specifier ``|:|'' in the preamble. That's why we impose % the style |standard|. % \begin{macrocode} @@ -13695,7 +13673,7 @@ version 2005/12/01 or later. \@@_qpoint:n { row - \@@_succ:n \c@iRow } \dim_set:Nn \l_@@_y_final_dim { \pgf@y + 0.5 \l_@@_inter_dots_dim } % \end{macrocode} -% As for now, we have no option to control the style of the lines drawn by +% Up to now, we have no option to control the style of the lines drawn by % |\hdottedline| and the specifier ``|:|'' in the preamble. That's why we impose % the style |standard|. % \begin{macrocode} @@ -13716,7 +13694,7 @@ version 2005/12/01 or later. % \end{macrocode} % % \bigskip -% As for now, there is only one option available for the environment +% Up to now, there is only one option available for the environment % |{NiceMatrixBlock}|. % \begin{macrocode} \keys_define:nn { NiceMatrix / NiceMatrixBlock } @@ -15618,16 +15596,19 @@ version 2005/12/01 or later. % \begin{macrocode} \NewDocumentCommand \@@_SubMatrix_in_code_before { m m m m ! O { } } { - \@@_cut_on_hyphen:w #3 \q_stop - \tl_clear_new:N \l_tmpc_tl - \tl_clear_new:N \l_tmpd_tl - \tl_set_eq:NN \l_tmpc_tl \l_tmpa_tl - \tl_set_eq:NN \l_tmpd_tl \l_tmpb_tl - \@@_cut_on_hyphen:w #2 \q_stop - \seq_gput_right:Nx \g_@@_submatrix_seq - { { \l_tmpa_tl } { \l_tmpb_tl } { \l_tmpc_tl } { \l_tmpd_tl } } - \tl_gput_right:Nn \g_@@_internal_code_after_tl - { \SubMatrix { #1 } { #2 } { #3 } { #4 } [ #5 ] } + \peek_remove_spaces:n + { + \@@_cut_on_hyphen:w #3 \q_stop + \tl_clear_new:N \l_tmpc_tl + \tl_clear_new:N \l_tmpd_tl + \tl_set_eq:NN \l_tmpc_tl \l_tmpa_tl + \tl_set_eq:NN \l_tmpd_tl \l_tmpb_tl + \@@_cut_on_hyphen:w #2 \q_stop + \seq_gput_right:Nx \g_@@_submatrix_seq + { { \l_tmpa_tl } { \l_tmpb_tl } { \l_tmpc_tl } { \l_tmpd_tl } } + \tl_gput_right:Nn \g_@@_internal_code_after_tl + { \SubMatrix { #1 } { #2 } { #3 } { #4 } [ #5 ] } + } } % \end{macrocode} % @@ -15643,6 +15624,13 @@ version 2005/12/01 or later. % \end{itemize} % \begin{macrocode} \NewDocumentCommand \@@_SubMatrix { m m m m O { } } + { + \peek_remove_spaces:n + { \@@_sub_matrix:nnnnn { #1 } { #2 } { #3 } { #4 } { #5 } } + } +% \end{macrocode} +% \begin{macrocode} +\cs_new_protected:Npn \@@_sub_matrix:nnnnn #1 #2 #3 #4 #5 { \group_begin: % \end{macrocode} @@ -17490,8 +17478,9 @@ version 2005/12/01 or later. % It's now possible to specify delimiters for submatrices in the preamble of an % environment. % +% The version 5.15b is compatible with the version 3.0+ of \pkg{siunitx} +% (previous versions were not). % -% \subsection*{Changes between versions 5.15 and 5.16} % % \PrintIndex % diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf index 9bae2b15ba..b096ea1e0f 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix.pdf and b/macros/latex/contrib/nicematrix/nicematrix.pdf differ diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf index ee0a252f02..778b60dcfe 100644 Binary files a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf and b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf differ diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex b/macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex index 38493f8996..b26d06486a 100644 --- a/macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex +++ b/macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex @@ -6,39 +6,43 @@ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3} \else%cas ax+b=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% }% }{%ELSE - \xintifboolexpr{#3=0}{%ax+b=d + \xintifboolexpr{#3==0}{%ax+b=d \EquaBase[#1]{#2}{}{}{#5}% }{%ax+b=d$ Ici \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{} \begin{align*} - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - }{%ICI ? + }{% \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } } + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -47,7 +51,7 @@ }{} \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. }{} } } @@ -64,45 +68,50 @@ \EquaTroisComposition[#1]{#4}{#5}{#2}{}% \fi \else - \xintifboolexpr{#2=0}{%b=cx + \xintifboolexpr{#2==0}{%b=cx \EquaBase[#1]{#4}{}{}{#3} }{% - \xintifboolexpr{#4=0}{%ax+b=0 + \xintifboolexpr{#4==0}{%ax+b=0 \EquaDeuxComposition[#1]{#2}{#3}{}{0} }{%ax+b=cx - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=0}{%ax=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==0}{%ax=ax + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% {%ax+b=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% }% }{%% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{} \begin{align*} - \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ - \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\ - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{0}\tikzmark{F-\theNbequa}\\ - \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{0-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ + \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=0\tikzmark{F-\theNbequa}%\mathcolor{Ccompo}{0}\tikzmark{F-\theNbequa}%\\ + \xintifboolexpr{#3==0}{}{\\ + \xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{0-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{ \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -111,30 +120,35 @@ }{} } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} + } \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} - }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} + }{%ax+b=cx avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ - \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa} - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa} + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{ \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -144,7 +158,7 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% }% }% }% @@ -152,13 +166,12 @@ \fi }% - \newcommand{\ResolEquationComposition}[5][]{% \useKVdefault[ClesEquation]% \setKV[ClesEquation]{#1}% - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#4=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#4==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% @@ -168,56 +181,61 @@ \EquaDeuxComposition[#1]{#4}{#5}{#2}{#3}% }% }{% - \xintifboolexpr{#4=0}{%ax+b=0x+d + \xintifboolexpr{#4==0}{%ax+b=0x+d \EquaDeuxComposition[#1]{#2}{#3}{}{#5}% } {%ax+b=cx+d$ - \xintifboolexpr{#3=0}{% - \xintifboolexpr{#5=0}{%ax=cx + \xintifboolexpr{#3==0}{% + \xintifboolexpr{#5==0}{%ax=cx \EquaTroisComposition[#1]{#2}{0}{#4}{}% }% {%ax=cx+d \EquaTroisComposition[#1]{#4}{#5}{#2}{}% }% }% - {\xintifboolexpr{#5=0}{%ax+b=cx + {\xintifboolexpr{#5==0}{%ax+b=cx \EquaTroisComposition[#1]{#2}{#3}{#4}{}% }% {%ax+b=cx+d -- ici - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=#5}{%b=d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==#5}{%b=d + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% {%b<>d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% }% }{ %% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Ccompo}{\useKV[ClesEquation]{CouleurCompo}}}{} \begin{align*} - \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ - \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{F-\theNbequa}\\ - \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\mathcolor{Ccompo}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ + \mathcolor{Ccompo}{\num{\fpeval{#2-#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{+\num{#4}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{#5}}\tikzmark{F-\theNbequa}\\ + \xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#5-#3}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{ \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -227,34 +245,39 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\ - \mathcolor{Ccompo}{\num{\fpeval{#3-#5}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Ccompo}{\num{\fpeval{#4-#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#2>0}{+\num{#2}\useKV[ClesEquation]{Lettre}}{-\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\mathcolor{Ccompo}{\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\ + \mathcolor{Ccompo}{\num{\fpeval{#3-#5}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{ \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -264,7 +287,7 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{}% }% }% diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex index 8bce1eb7c8..a4be58b450 100644 --- a/macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex +++ b/macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex @@ -6,17 +6,22 @@ \ifx\bla#2\bla%on teste si le paramètre #2 est vide: % si oui, on est dans le cas b=cx. Eh bien on échange :) % Mais attention si les deux paramètres a et c sont vides... - \EquaBase[#1]{#4}{}{}{#3} + \EquaBaseLaurent[#1]{#4}{}{}{#3} \else % si non, on est dans le cas ax=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#5=0}{% + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#5==0}{% L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}% }{%\else - \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else + \xintifboolexpr{#5==0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else \begin{align*}% - \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{#2}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{#2}}}}&=\xintifboolexpr{#2=1}{\num{#5}}{\color{Cdecomp}\frac{\color{black}\num{#5}}{\num{#2}}} - \xintifboolexpr{#2=1}{}{\\\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}}%\\ + \xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{#2}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{#2}}}}&=\xintifboolexpr{#2==1}{\num{#5}}{\color{Cdecomp}\frac{\color{black}\num{#5}}{\num{#2}}} + \xintifboolexpr{#2==1}{}{\\\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{#5/#2}}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{#5}{#2}% \ifboolKV[ClesEquation]{Simplification}{% @@ -24,7 +29,7 @@ }{} }{} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.% }{} } } @@ -37,24 +42,29 @@ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide \EquaDeuxLaurent[#1]{#4}{#5}{#2}{#3} \else%cas ax+b=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% }% }{%ELSE - \xintifboolexpr{#3=0}{%ax+b=d + \xintifboolexpr{#3==0}{%ax+b=d \EquaBaseLaurent[#1]{#2}{}{}{#5}% }{%ax+b=d$ Ici \begin{align*} - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\num{#5}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\num{#5}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\ \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}%\\ - \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{\Coeffa==1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa==1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -63,7 +73,7 @@ }{} } \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. }{} } } @@ -79,29 +89,34 @@ \EquaTroisLaurent[#1]{#4}{#5}{#2}{}% \fi \else - \xintifboolexpr{#2=0}{%b=cx + \xintifboolexpr{#2==0}{%b=cx \EquaBaseLaurent[#1]{#4}{}{}{#3} }{% - \xintifboolexpr{#4=0}{%ax+b=0 + \xintifboolexpr{#4==0}{%ax+b=0 \EquaDeuxLaurent[#1]{#2}{#3}{}{0} }{%ax+b=cx - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=0}{%ax=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==0}{%ax=ax + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% {%ax+b=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% }% }{%% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c \begin{align*} - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\ - \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{\Coeffa==1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa==1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -110,17 +125,22 @@ }{} } \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} }{%ax+b=cx avec a0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\\ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{0-#3}}%\\ - \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=0\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\ - \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}}&=0\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}}\\ + \xintifboolexpr{\Coeffa==1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa==1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -129,7 +149,7 @@ }{} } \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% }% }% }% @@ -140,9 +160,9 @@ \newcommand{\ResolEquationLaurent}[5][]{% \useKVdefault[ClesEquation]% \setKV[ClesEquation]{#1}% - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#4=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#4==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% @@ -152,39 +172,44 @@ \EquaDeuxLaurent[#1]{#4}{#5}{}{#3}% }% }{% - \xintifboolexpr{#4=0}{%ax+b=0x+d + \xintifboolexpr{#4==0}{%ax+b=0x+d \EquaDeuxLaurent[#1]{#2}{#3}{}{#5}% } {%ax+b=cx+d - \xintifboolexpr{#3=0}{% - \xintifboolexpr{#5=0}{%ax=cx + \xintifboolexpr{#3==0}{% + \xintifboolexpr{#5==0}{%ax=cx \EquaTroisLaurent[#1]{#2}{0}{#4}{}% }% {%ax=cx+d \EquaTroisLaurent[#1]{#4}{#5}{#2}{}% }% }% - {\xintifboolexpr{#5=0}{%ax+b=cx + {\xintifboolexpr{#5==0}{%ax+b=cx \EquaTroisLaurent[#1]{#2}{#3}{#4}{}% }% {%ax+b=cx+d -- ici - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=#5}{%b=d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==#5}{%b=d + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% {%b<>d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% }% }{%% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c \begin{align*} - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{-\num{\fpeval{0-#3}}\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}}}\stackText}\\ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\ - \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\ + \xintifboolexpr{\Coeffa==1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa==1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -193,20 +218,25 @@ }{} } \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}% - &=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText} + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText}% + &=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\xintifboolexpr{#3>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#3} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#3}} {}}\stackText} \\ \xdef\Coeffa{\fpeval{#2-#4}}\xdef\Coeffb{\fpeval{#5-#3}}%\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\ - \xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa=1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#4>0}{\stackMath\Longstack{$\tiny$\color{Cdecomp}-\num{#4}\useKV[ClesEquation]{Lettre} {}}\stackText}{\stackMath\Longstack{$\tiny$\color{Cdecomp}+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre} {}}\stackText}\xintifboolexpr{\Coeffb>0}{+\num{\Coeffb}}{-\num{\fpeval{0-\Coeffb}}}\\ + \xintifboolexpr{\Coeffa==1}{\useKV[ClesEquation]{Lettre}}{\color{Cdecomp}\frac{\cancel{\color{black}\num{\Coeffa}}\color{black}\useKV[ClesEquation]{Lettre}}{\cancel{\num{\Coeffa}}}}&=\xintifboolexpr{\Coeffa==1}{\num{\Coeffb}}{\color{Cdecomp}\frac{\color{black}\num{\Coeffb}}{\num{\Coeffa}}}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -215,7 +245,7 @@ }{} } \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{}% }% }% diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex index 1137140d28..8bc7bb339f 100644 --- a/macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex +++ b/macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex @@ -9,28 +9,28 @@ \EquaBaseL[#1]{#4}{}{}{#3} \else % si non, on est dans le cas ax=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#5=0}{% + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#5==0}{% L'équation $0\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}% }{%\else - \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else + \xintifboolexpr{#5==0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else \begin{align*}% - \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\ - \xintifboolexpr{#2=1}{}{% + \xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\ + \xintifboolexpr{#2==1}{}{% \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\} \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\ + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{#5/#2}}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{#5}{#2}% \ifboolKV[ClesEquation]{Simplification}{% \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{#5}{#2}}{}%\\ }{} }{} - %\ifboolKV[ClesEquation]{Fleches}{% - %\stepcounter{Nbequa}}% - %{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{} - %} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.% }{} } } @@ -43,26 +43,30 @@ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide \EquaDeuxL[#1]{#4}{#5}{#2}{#3} \else%cas ax+b=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% }% }{%ELSE - \xintifboolexpr{#3=0}{%ax+b=d + \xintifboolexpr{#3==0}{%ax+b=d \EquaBaseL[#1]{#2}{}{}{#5}% }{%ax+b=d$ Ici \begin{align*} - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\ - \phantom{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ - \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\ + \phantom{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ + \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}}\\ \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ } + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -72,7 +76,7 @@ }{} }{} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. }{} } } @@ -89,32 +93,36 @@ \EquaTroisL[#1]{#4}{#5}{#2}{}% \fi \else - \xintifboolexpr{#2=0}{%b=cx + \xintifboolexpr{#2==0}{%b=cx \EquaBaseL[#1]{#4}{}{}{#3} }{% - \xintifboolexpr{#4=0}{%ax+b=0 + \xintifboolexpr{#4==0}{%ax+b=0 \EquaDeuxL[#1]{#2}{#3}{}{0} }{%ax+b=cx - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=0}{%ax=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==0}{%ax=ax + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% {%ax+b=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% }% }{%% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c \begin{align*} - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\ \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\ - \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\ - \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\ - \xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\ + \phantom{\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{\mathrel{=}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\ + \xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\Coeffb}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\ \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ } + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -124,18 +132,22 @@ }{} }{} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\\ \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ - \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{% + \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\phantom{=}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\ \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\ - } + } + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\phantom{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -145,7 +157,7 @@ }{} }{} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% }% }% }% @@ -157,9 +169,9 @@ \newcommand{\ResolEquationL}[5][]{% \useKVdefault[ClesEquation]% \setKV[ClesEquation]{#1}% - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#4=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#4==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% @@ -169,65 +181,73 @@ \EquaDeuxL[#1]{#4}{#5}{}{#3}% }% }{% - \xintifboolexpr{#4=0}{%ax+b=0x+d + \xintifboolexpr{#4==0}{%ax+b=0x+d \EquaDeuxL[#1]{#2}{#3}{}{#5}% } {%ax+b=cx+d$ - \xintifboolexpr{#3=0}{% - \xintifboolexpr{#5=0}{%ax=cx + \xintifboolexpr{#3==0}{% + \xintifboolexpr{#5==0}{%ax=cx \EquaTroisL[#1]{#2}{0}{#4}{}% }% {%ax=cx+d \EquaTroisL[#1]{#4}{#5}{#2}{}% }% }% - {\xintifboolexpr{#5=0}{%ax+b=cx + {\xintifboolexpr{#5==0}{%ax+b=cx \EquaTroisL[#1]{#2}{#3}{#4}{}% }% {%ax+b=cx+d -- ici - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=#5}{%b=d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==#5}{%b=d + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% {%b<>d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% }% }{ %% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c \begin{align*} - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ \mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{{}-{}\num{#4}\useKV[ClesEquation]{Lettre}}{\phantom{{}={}}+{}\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\ - \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{\phantom{{}+{}}\num{#5}}{-\num{\fpeval{0-#5}}}\\ - \mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{{}={}\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\ - \xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{\Coeffb>0}{\phantom{{}+{}}\num{\Coeffb}}{{}-{}\num{\fpeval{0-\Coeffb}}}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 - \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\ - \phantom{\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + \xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\phantom{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#5>0}{\phantom{{}+{}}\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}&\phantom{{}={}\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{{}-{}\num{#3}}{{}+{}\num{\fpeval{0-#3}}}}\\ + \xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{\Coeffb>0}{\phantom{{}+{}}\num{\Coeffb}}{{}-{}\num{\fpeval{0-\Coeffb}}}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 + \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\phantom{\useKV[ClesEquation]{Lettre}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\phantom{{}={}}\phantom{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\ + \phantom{\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ } + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% \ifthenelse{\boolean{Simplification}}{\\% - \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\SSimplifie{\Coeffb}{\Coeffa}%\\ + \useKV[ClesEquation]{Lettre}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&=\phantom{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{\Coeffb>0}{{}+{}}{}}\SSimplifie{\Coeffb}{\Coeffa}%\\ }{} }{} }{} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ \mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\phantom{\xintifboolexpr{#3>0}{{}+{}\num{#3}}{{}-{}\num{\fpeval{0-#3}}}}&\xintifboolexpr{#4<0}{\phantom{={}}}{}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{{}-{}\num{#2}\useKV[ClesEquation]{Lettre}}{{}+{}\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ - \xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ - \mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{{}-{}\num{#5}}{{}+{}\num{\fpeval{0-#5}}}}&\phantom{{}={}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\ - \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{{}-{}\num{#5}}{{}+{}\num{\fpeval{0-#5}}}}&\phantom{{}={}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\ + \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}&\xintifboolexpr{\Coeffa<0}{\phantom{{}={}}}{\phantom{=}}\mathcolor{Cdecomp}{\mathrel{\div}\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}}\\ \frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\ } + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -235,7 +255,7 @@ }{} }{} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{}% }% }% diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex b/macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex index f3ffd9453d..a03f2d7442 100644 --- a/macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex +++ b/macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex @@ -9,13 +9,13 @@ \EquaBase[#1]{#4}{}{}{#3} \else % si non, on est dans le cas ax=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#5=0}{% + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#5==0}{% L'équation $0\useKV[ClesEquation]{ELettre}=0$ a une infinité de solutions.}{L'équation $0\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}% }{%\else - \xintifboolexpr{#5=0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else + \xintifboolexpr{#5==0}{L'équation $\num{#2}\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else \begin{align*}% - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\tikzmark{C-\theNbequa}\\ + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}}{\num{#2}\useKV[ClesEquation]{Lettre}}&=\num{#5}\tikzmark{C-\theNbequa}\\ \tikzmark{B-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}\tikzmark{D-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}% @@ -26,6 +26,11 @@ \Rightcomment{C-\theNbequa}{D-\theNbequa}{D-\theNbequa}{$\div\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}$}% }{}% }%% + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{#5/#2}}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{#5}{#2}% \ifboolKV[ClesEquation]{Simplification}{% @@ -37,7 +42,7 @@ {\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{} } \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}=\num{#5}}{\num{#2}\useKV[ClesEquation]{Lettre}=\num{#5}}$ a une unique solution : $\displaystyle\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\opdiv*{#5}{#2}{numequa}{resteequa}\opcmp{resteequa}{0}\ifopeq\opexport{numequa}{\numequa}\num{\numequa}\else\ifboolKV[ClesEquation]{Simplification}{\SSimplifie{#5}{#2}}{\frac{\num{#5}}{\num{#2}}}\fi$.% }{} } } @@ -50,29 +55,29 @@ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide \EquaDeuxSoustraction[#1]{#4}{#5}{#2}{#3} \else%cas ax+b=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% }% }{%ELSE - \xintifboolexpr{#3=0}{%ax+b=d + \xintifboolexpr{#3==0}{%ax+b=d \EquaBase[#1]{#2}{}{}{#5}% }{%ax+b=d$ Ici \begin{align*} - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\ + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ }{}% - \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa} - \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{} - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa} + \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa==1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{} + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% @@ -85,6 +90,11 @@ }{} } } + %%decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -93,7 +103,7 @@ }{} \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. }{} } } @@ -110,41 +120,41 @@ \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}% \fi \else - \xintifboolexpr{#2=0}{%b=cx + \xintifboolexpr{#2==0}{%b=cx \EquaBase[#1]{#4}{}{}{#3} }{% - \xintifboolexpr{#4=0}{%ax+b=0 + \xintifboolexpr{#4==0}{%ax+b=0 \EquaDeuxSoustraction[#1]{#2}{#3}{}{0} }{%ax+b=cx - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=0}{%ax=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==0}{%ax=ax + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% {%ax+b=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% }% }{%% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c \begin{align*} - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\\ }{} - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=0\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\ + \xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=0\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\tikzmark{F-\theNbequa}\\ }{}% - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ %eric - \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{} + \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa==1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{} % eric - \xintifboolexpr{\Coeffa=1}{}{\\} + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% @@ -154,7 +164,12 @@ \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} - } + } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + % %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -164,23 +179,23 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ }{} - \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa} - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa} + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} }{} % eric - \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{} + \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa==1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{} % eric - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% @@ -191,6 +206,11 @@ \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + % %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -200,7 +220,7 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% }% }% }% @@ -212,9 +232,9 @@ \newcommand{\ResolEquationSoustraction}[5][]{% \useKVdefault[ClesEquation]% \setKV[ClesEquation]{#1}% - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#4=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#4==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% @@ -224,52 +244,52 @@ \EquaDeuxSoustraction[#1]{#4}{#5}{}{#3}% }% }{% - \xintifboolexpr{#4=0}{%ax+b=0x+d + \xintifboolexpr{#4==0}{%ax+b=0x+d \EquaDeuxSoustraction[#1]{#2}{#3}{}{#5}% } {%ax+b=cx+d$ - \xintifboolexpr{#3=0}{% - \xintifboolexpr{#5=0}{%ax=cx + \xintifboolexpr{#3==0}{% + \xintifboolexpr{#5==0}{%ax=cx \EquaTroisSoustraction[#1]{#2}{0}{#4}{}% }% {%ax=cx+d \EquaTroisSoustraction[#1]{#4}{#5}{#2}{}% }% }% - {\xintifboolexpr{#5=0}{%ax+b=cx + {\xintifboolexpr{#5==0}{%ax+b=cx \EquaTroisSoustraction[#1]{#2}{#3}{#4}{}% }% {%ax+b=cx+d -- ici - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=#5}{%b=d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==#5}{%b=d + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% {%b<>d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% }% }{ %% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c \begin{align*} - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ }{} - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ + \xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}&=\num{#5}\mathcolor{Cdecomp}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ }{}% - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ % eric - \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{} + \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa==1}{}{\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}}}{} % eric - \xintifboolexpr{\Coeffa=1}{}{\\} + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% @@ -280,6 +300,11 @@ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + % %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -289,30 +314,30 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cdecomp}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ }{} - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\ \ifboolKV[ClesEquation]{Decomposition}{% - \num{#3}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\ + \num{#3}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\mathcolor{Cdecomp}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}\\ }{}% - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\ % eric - \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa=1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{} + \ifboolKV[ClesEquation]{Decomposition}{\\\xintifboolexpr{\Coeffa==1}{}{\frac{\num{\Coeffb}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}&=\frac{\num{\Coeffa}}{\mathcolor{Cdecomp}{\num{\Coeffa}}}\useKV[ClesEquation]{Lettre}}}{} % eric - \xintifboolexpr{\Coeffa=1}{}{\\} + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% @@ -323,6 +348,11 @@ \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + % %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -332,7 +362,7 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{}% }% }% diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex index 3cc345c524..f8313606e1 100644 --- a/macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex +++ b/macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex @@ -14,14 +14,19 @@ \fi \else % si non, on est dans le cas ax=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#5=0}{% + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#5==0}{% L'équation $0\times\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\times\useKV[ClesEquation]{Lettre}=\num{#5}$ n'a aucune solution.}% }{%\else - \xintifboolexpr{#5=0}{L'équation $\num{#2}\times\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else + \xintifboolexpr{#5==0}{L'équation $\num{#2}\times\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else \begin{align*}% - \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\ + \xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{#5}\\ \useKV[ClesEquation]{Lettre}&=\frac{\num{#5}}{\num{#2}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{#5/#2}}% + }{}% +% %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{#5}{#2}% \ifboolKV[ClesEquation]{Simplification}{% @@ -41,24 +46,29 @@ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3} \else%cas ax+b=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% }% }{%ELSE - \xintifboolexpr{#3=0}{%ax+b=d + \xintifboolexpr{#3==0}{%ax+b=d \EquaBaseSymbole[#1]{#2}{}{}{#5}% }{%ax+b=d$ Ici \begin{align*} - \xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\ - \ifboolKV[ClesEquation]{Bloc}{\Fdash{$\xintifboolexpr{#2=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\}{}% - \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\ - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\ + \ifboolKV[ClesEquation]{Bloc}{\Fdash{$\xintifboolexpr{#2==1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\}{}% + \xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{\useKV[ClesEquation]{Lettre}}{\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\ + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \\ \useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -83,14 +93,14 @@ \EquaTroisSymbole[#1]{#4}{#5}{#2}{}% \fi \else - \xintifboolexpr{#2=0}{%b=cx + \xintifboolexpr{#2==0}{%b=cx \EquaBaseSymbole[#1]{#4}{}{}{#3} }{% - \xintifboolexpr{#4=0}{%ax+b=0 + \xintifboolexpr{#4==0}{%ax+b=0 \EquaDeuxSymbole[#1]{#2}{#3}{}{0} }{%ax+b=cx - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=0}{%ax=ax + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==0}{%ax=ax L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% {%ax+b=ax L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% @@ -103,8 +113,13 @@ \xdef\Coeffa{\fpeval{#2-#4}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\ \ifboolKV[ClesEquation]{Bloc}{\Fdash{\mathcolor{Csymbole}{$\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}$}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\}{} \xdef\Coeffb{\fpeval{0-#3}}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}%\\ - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -118,8 +133,13 @@ \multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\\ \mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{#2-1}}{+\useKV[ClesEquation]{Lettre}}}\multido{\i=1+1}{\fpeval{#4-#2}}{+\useKV[ClesEquation]{Lettre}}\\ \xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\multido{\i=1+1}{\fpeval{\Coeffa-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}% \\ - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -135,14 +155,13 @@ \fi }% - \newcommand{\ResolEquationSymbole}[5][]{% \useKVdefault[ClesEquation]% \setKV[ClesEquation]{#1}% \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false} - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#4=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#4==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% @@ -152,24 +171,24 @@ \EquaDeuxSymbole[#1]{#4}{#5}{#2}{#3}% }% }{% - \xintifboolexpr{#4=0}{%ax+b=0x+d + \xintifboolexpr{#4==0}{%ax+b=0x+d \EquaDeuxSymbole[#1]{#2}{#3}{}{#5}% } {%ax+b=cx+d$ - \xintifboolexpr{#3=0}{% - \xintifboolexpr{#5=0}{%ax=cx + \xintifboolexpr{#3==0}{% + \xintifboolexpr{#5==0}{%ax=cx \EquaTroisSymbole[#1]{#2}{0}{#4}{}% }% {%ax=cx+d \EquaTroisSymbole[#1]{#4}{#5}{#2}{}% }% }% - {\xintifboolexpr{#5=0}{%ax+b=cx + {\xintifboolexpr{#5==0}{%ax+b=cx \EquaTroisSymbole[#1]{#2}{#3}{#4}{}% }% {%ax+b=cx+d -- ici - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% {%b<>d L'équation $\multido{\i=1+1}{\fpeval{#2-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\multido{\i=1+1}{\fpeval{#4-1}}{\useKV[ClesEquation]{Lettre}+}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% @@ -185,8 +204,13 @@ \Fdash{$\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\\ }{}% \xdef\Coeffb{\fpeval{#5-#3}}\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}&=\num{\Coeffb}%\\ - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 - \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 + \\\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -204,8 +228,13 @@ \num{#3}&=\Fdash{$\mathcolor{Csymbole}{\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}}$}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ }{}% \xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\useKV[ClesEquation]{Lettre}\multido{\i=1+1}{\fpeval{\Coeffa-1}}{+\useKV[ClesEquation]{Lettre}}%\\ - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \\\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}%\\ + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex b/macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex index 3b4cc18f27..80399dd3f4 100644 --- a/macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex +++ b/macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex @@ -6,39 +6,44 @@ \ifx\bla#2\bla%On échange en faisant attention à ne pas boucler : c doit être non vide \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3} \else%cas ax+b=d - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% }% }{%ELSE - \xintifboolexpr{#3=0}{%ax+b=d + \xintifboolexpr{#3==0}{%ax+b=d \EquaBase[#1]{#2}{}{}{#5}% }{%ax+b=d$ Ici \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{} \begin{align*} - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{E-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{% + \xintifboolexpr{\Coeffa==1}{% }{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - }{%ICI ? + }{% \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -47,7 +52,7 @@ }{} \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\num{#5}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$. }{} } } @@ -64,46 +69,51 @@ \EquaTroisTerme[#1]{#4}{#5}{#2}{}% \fi \else - \xintifboolexpr{#2=0}{%b=cx + \xintifboolexpr{#2==0}{%b=cx \EquaBase[#1]{#4}{}{}{#3} }{% - \xintifboolexpr{#4=0}{%ax+b=0 + \xintifboolexpr{#4==0}{%ax+b=0 \EquaDeuxTerme[#1]{#2}{#3}{}{0} - }{%ax+b=cx - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=0}{%ax=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% - {%ax+b=ax - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% - }% - }{%% Cas délicat - \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c - \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{} - \begin{align*} - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\ - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\ - \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=0\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} - \ifboolKV[ClesEquation]{Fleches}{% - \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} - \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} - \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% - \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% - }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 - \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ - \ifboolKV[ClesEquation]{Fleches}{% - \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - }{ - \ifboolKV[ClesEquation]{FlecheDiv}{% - \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - }{} - } - \ifboolKV[ClesEquation]{Entier}{% + }{%ax+b=cx + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==0}{%ax=ax + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.}% + {%ax+b=ax + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.% + }% + }{%% Cas délicat + \xintifboolexpr{#2>#4}{%ax+b=cx avec a>c + \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{} + \begin{align*} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=0\tikzmark{F-\theNbequa}\\ + \xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=0\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} + \ifboolKV[ClesEquation]{Fleches}{% + \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} + \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} + \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% + \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% + }{} + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 + \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ + \ifboolKV[ClesEquation]{Fleches}{% + \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + }{% + \ifboolKV[ClesEquation]{FlecheDiv}{% + \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + }{} + } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% + \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% \ifthenelse{\boolean{Simplification}}{\\\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{}%\\ @@ -112,29 +122,34 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ - \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa} - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffb{#3}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{F-\theNbequa} + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{ \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{B-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{F-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -144,7 +159,7 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.}{}% }% }% }% @@ -155,9 +170,9 @@ \newcommand{\ResolEquationTerme}[5][]{% \useKVdefault[ClesEquation]% \setKV[ClesEquation]{#1}% - \xintifboolexpr{#2=0}{% - \xintifboolexpr{#4=0}{% - \xintifboolexpr{#3=#5}{%b=d + \xintifboolexpr{#2==0}{% + \xintifboolexpr{#4==0}{% + \xintifboolexpr{#3==#5}{%b=d L'équation $\num{#3}=\num{#5}$ a une infinité de solutions.}% {%b<>d L'équation $\num{#3}=\num{#5}$ n'a aucune solution.% @@ -167,56 +182,61 @@ \EquaDeuxTerme[#1]{#4}{#5}{#2}{#3}% }% }{% - \xintifboolexpr{#4=0}{%ax+b=0x+d + \xintifboolexpr{#4==0}{%ax+b=0x+d \EquaDeuxTerme[#1]{#2}{#3}{}{#5}% } {%ax+b=cx+d$ - \xintifboolexpr{#3=0}{% - \xintifboolexpr{#5=0}{%ax=cx + \xintifboolexpr{#3==0}{% + \xintifboolexpr{#5==0}{%ax=cx \EquaTroisTerme[#1]{#2}{0}{#4}{}% }% {%ax=cx+d \EquaTroisTerme[#1]{#4}{#5}{#2}{}% }% }% - {\xintifboolexpr{#5=0}{%ax+b=cx + {\xintifboolexpr{#5==0}{%ax+b=cx \EquaTroisTerme[#1]{#2}{#3}{#4}{}% }% {%ax+b=cx+d -- ici - \xintifboolexpr{#2=#4}{% - \xintifboolexpr{#3=#5}{%b=d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% + \xintifboolexpr{#2==#4}{% + \xintifboolexpr{#3==#5}{%b=d + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}% {%b<>d - L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% + L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.% }% }{ %% Cas délicat \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c \ifboolKV[ClesEquation]{Decomposition}{\colorlet{Cterme}{\useKV[ClesEquation]{CouleurTerme}}}{} \begin{align*} - \tikzmark{A-\theNbequa}\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#5>0}{\num{#5}}{-\num{\fpeval{0-#5}}}\\ - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\tikzmark{F-\theNbequa}\\ - \xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#4>0}{-\num{#4}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#4}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#5>0}{\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#2-#4}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\num{#5}\tikzmark{F-\theNbequa}\tikzmark{F-\theNbequa}\\ + \xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{#5}\mathcolor{Cterme}{\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#5-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#4>0}{-\num{#4}}{+\num{\fpeval{0-#4}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#3>0}{-\num{#3}}{+\num{\fpeval{0-#3}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{ \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\useKV[ClesEquation]{Lettre}&=\num{\fpeval{\Coeffb/\Coeffa}}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -226,34 +246,39 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{} }{%ax+b=cx+d avec a0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ - \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ - \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\ - \num{#3}\mathcolor{Cterme}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\\ - \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\ - \xintifboolexpr{\Coeffa=1}{}{\\} + \tikzmark{A-\theNbequa}\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{E-\theNbequa}\\ + \xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\mathcolor{Cterme}{\xintifboolexpr{#2>0}{-\num{#2}\useKV[ClesEquation]{Lettre}}{+\num{\fpeval{0-#2}}\useKV[ClesEquation]{Lettre}}}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\\ + \tikzmark{B-\theNbequa}\xdef\Coeffa{\fpeval{#4-#2}}\xintifboolexpr{#3>0}{\num{#3}}{-\num{\fpeval{0-#3}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}\tikzmark{F-\theNbequa}\\ + \num{#3}\mathcolor{Cterme}{\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\\ + \tikzmark{C-\theNbequa}\xdef\Coeffb{\fpeval{#3-#5}}\num{\Coeffb}&=\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}\tikzmark{G-\theNbequa}%\\ + \xintifboolexpr{\Coeffa==1}{}{\\} \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{A-\theNbequa}{B-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \rightcomment{E-\theNbequa}{F-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#2>0}{-\num{#2}}{+\num{\fpeval{0-#2}}}\useKV[ClesEquation]{Lettre}$} \leftcomment{B-\theNbequa}{C-\theNbequa}{A-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}% \rightcomment{F-\theNbequa}{G-\theNbequa}{E-\theNbequa}{$\xintifboolexpr{#5>0}{-\num{#5}}{+\num{\fpeval{0-#5}}}$}% }{} - \xintifboolexpr{\Coeffa=1}{}{%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{}{%\ifnum\cmtd>1 \tikzmark{D-\theNbequa}\frac{\num{\Coeffb}}{\num{\Coeffa}}&=\useKV[ClesEquation]{Lettre}\tikzmark{H-\theNbequa}%\\ \ifboolKV[ClesEquation]{Fleches}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - }{ + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + }{% \ifboolKV[ClesEquation]{FlecheDiv}{% \leftcomment{C-\theNbequa}{D-\theNbequa}{A-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% - \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% + \rightcomment{G-\theNbequa}{H-\theNbequa}{E-\theNbequa}{$\div\xintifboolexpr{\Coeffa<0}{(\num{\Coeffa})}{\num{\Coeffa}}$}% }{} } + %% decimal + \ifboolKV[ClesEquation]{Decimal}{% + \\\num{\fpeval{\Coeffb/\Coeffa}}&=\useKV[ClesEquation]{Lettre}% + }{}% + %%% \ifboolKV[ClesEquation]{Entier}{% \SSimpliTest{\Coeffb}{\Coeffa}% \ifboolKV[ClesEquation]{Simplification}{% @@ -263,7 +288,7 @@ } \ifboolKV[ClesEquation]{Fleches}{\stepcounter{Nbequa}}{\ifboolKV[ClesEquation]{FlecheDiv}{\stepcounter{Nbequa}}{}} \end{align*} - \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% + \ifboolKV[ClesEquation]{Solution}{L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une unique solution : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$.% }{}% }% }% diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty index 563ce3af32..e32797a1cf 100644 --- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty +++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty @@ -3,7 +3,7 @@ % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ProfCollege}[2021/05/15 v0.99-b Aide pour l'utilisation de LaTeX au collège] +\ProvidesPackage{ProfCollege}[2021/06/04 v0.99-d Aide pour l'utilisation de LaTeX au collège] \RequirePackage{verbatim} @@ -16,7 +16,7 @@ locale=FR, detect-all,% output-decimal-marker={,},% - group-four-digits% + group-minimum-digits=4% } \DeclareSIUnit{\kmh}{\km\per\hour} @@ -29,7 +29,7 @@ \DeclareSIUnit{\jour}{j} \DeclareSIUnit{\quintal}{q} \DeclareSIUnit{\octet}{o} -\DeclareSIUnit{\fahrenheit}{\degree F} +\DeclareSIUnit{\fahrenheit}{\text{\textdegree}F} \DeclareSIUnit{\EuRo}{€} \RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs @@ -139,7 +139,7 @@ %encadrer avec des "sommets arrondis" \newsavebox{\logobox} -\newcommand{\Logo}[2]{% +\newcommand\Logo[2]{% \setbox1=\hbox{\includegraphics[scale=#2]{#1}} \begin{tikzpicture}% \clip[rounded corners=5mm] (0,0) rectangle (\wd1,\ht1); @@ -486,7 +486,7 @@ %%% % Labyrinthe %%% -\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false,Slop} +\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{yellow},SensImpose=false,Slop} \tikzset{FDirect/.style={-stealth}} \tikzset{FIndirect/.style={stealth-}} @@ -510,10 +510,10 @@ \xdef\TotalLaby{\fpeval{3*\useKV[Labyrinthe]{Colonnes}-2}}% }% \xdef\CouleurF{\useKV[Labyrinthe]{CouleurF}}% - \xdef\MotifTexte{\useKV[Labyrinthe]{Texte}}% - \xintifboolexpr{\ListeLabylen=\fpeval{\useKV[Labyrinthe]{Lignes}*\useKV[Labyrinthe]{Colonnes}}}{% + \xdef\MotifTexte{\noexpand\useKV[Labyrinthe]{Texte}}% + \xintifboolexpr{\ListeLabylen==\fpeval{\useKV[Labyrinthe]{Lignes}*\useKV[Labyrinthe]{Colonnes}}}{% \begin{tikzpicture}[remember picture]% - % on dessine les cadres +% % on dessine les cadres \foreach \compteurv in {1,...,\useKV[Labyrinthe]{Lignes}}{% \foreach \compteurh in {1,...,\useKV[Labyrinthe]{Colonnes}}{% \xdef\ColorFill{\ListeLaby[\fpeval{\useKV[Labyrinthe]{Colonnes}*(\compteurv-1)+\compteurh},2]}% @@ -529,19 +529,19 @@ \foreach \compteurh in {1,...,\useKV[Labyrinthe]{Colonnes}}{% \ifboolKV[Labyrinthe]{Passages}{% \xdef\NomNode{\noexpand\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},1]}% - \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}% + \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]==1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)},2]==2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}% \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- node[fill=white,midway,inner sep=2pt]{\MotifTexte\NomNode}(A-\compteurh-\fpeval{\compteurv+1});}{}% }{% \draw[\CouleurF,line width=3pt,FBidirect] (A-\compteurh-\compteurv) -- (A-\compteurh-\fpeval{\compteurv+1});% }% }% }% - % horizontales +% % horizontales \foreach \compteurv in {1,...,\useKV[Labyrinthe]{Lignes}}{% \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{% \ifboolKV[Labyrinthe]{Passages}{% \xdef\NomNode{\noexpand\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},1]}% - \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}% + \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]==1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\compteurh},2]==2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}% \draw[\CouleurF,line width=3pt,\NomStyle](A-\compteurh-\compteurv) -- node[fill=white,midway,\LabySlop,inner sep=2pt]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\compteurv);}{} }{% \draw[\CouleurF,line width=3pt,FBidirect](A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\compteurv);% @@ -553,7 +553,7 @@ \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{% \ifboolKV[Labyrinthe]{Passages}{% \xdef\NomNode{\noexpand\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},1]}% - \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}% + \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]>0}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]==1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-2)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+2},2]==2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}}% \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- node[fill=white,near start,\LabySlop,inner sep=2pt]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv-1}); }{} }{% @@ -561,18 +561,17 @@ }% }% }% -% % diagonales directes +%% % diagonales directes \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{% \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{% \ifboolKV[Labyrinthe]{Passages}{% \xdef\NomNode{\noexpand\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},1]}% \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]>0}{% - \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]=1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]=2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}} + \xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]==1}{\xdef\NomStyle{FDirect}}{\xintifboolexpr{\ListeLabySol[\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+3*(\compteurh-1)+1},2]==2}{\xdef\NomStyle{FIndirect}}{\xdef\NomStyle{FBidirect}}} \draw[\CouleurF,line width=3pt,\NomStyle] (A-\compteurh-\compteurv) -- node[fill=white,near start,\LabySlop,inner sep=2pt]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1}); }{}% }{% \draw[\CouleurF,line width=3pt,FBidirect] (A-\compteurh-\compteurv) -- node[fill=white,near start,\LabySlop]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1}); -% }{}% }% }% }% @@ -590,7 +589,7 @@ \foreach \compteurv in {1,...,\useKV[Labyrinthe]{Lignes}}{% \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{% \ifboolKV[Labyrinthe]{Passages}{% - \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\compteurh}]}% + \xdef\NomNode{\noexpand\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\compteurh}]}% \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\compteurv); }{% @@ -607,18 +606,19 @@ \foreach \compteurv in {1,...,\fpeval{\useKV[Labyrinthe]{Lignes}-1}}{% \foreach \compteurh in {1,...,\fpeval{\useKV[Labyrinthe]{Colonnes}-1}}{% \ifboolKV[Labyrinthe]{Passages}{% - \xdef\NomNode{\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+2*(\compteurh-1)+1}]}% + \xdef\NomNode{\noexpand\ListeLabySol[1,\fpeval{\TotalLaby*(\compteurv-1)+\useKV[Labyrinthe]{Colonnes}+2*(\compteurh-1)+1}]}% \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- node[fill=white,midway]{\MotifTexte\NomNode}(A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1}); }{% \draw[\CouleurF,line width=3pt,stealth-stealth] (A-\compteurh-\compteurv) -- (A-\fpeval{\compteurh+1}-\fpeval{\compteurv+1}); }% }% }% - % fin des fl\`eches +% % fin des fl\`eches } - \end{tikzpicture} - }{\textbf{! Le nombre d'informations n'est pas compatible avec les - d\'efinitions de {\ttfamily Colonnes} et {\ttfamily Lignes} !}}% + \end{tikzpicture} + }{ + \textbf{! Le nombre d'informations n'est pas compatible avec les + d\'efinitions de {\ttfamily Colonnes} et {\ttfamily Lignes} !}}% } %%% @@ -758,7 +758,7 @@ }{% \setsepchar[*]{,*/}% \readlist\ListeCalc{#2}% - \foreachitem\compteur\in\ListeCalc{\xintifboolexpr{\listlen\ListeCalc[\compteurcnt]=2}{\Longstack{{\tiny\ListeCalc[\compteurcnt,1]} \KN{\ListeCalc[\compteurcnt,2]}}}{\Longstack{{\tiny\ListeCalc[\compteurcnt,2]} \KY{\ListeCalc[\compteurcnt,3]}}}% + \foreachitem\compteur\in\ListeCalc{\xintifboolexpr{\listlen\ListeCalc[\compteurcnt]==2}{\Longstack{{\tiny\ListeCalc[\compteurcnt,1]} \KN{\ListeCalc[\compteurcnt,2]}}}{\Longstack{{\tiny\ListeCalc[\compteurcnt,2]} \KY{\ListeCalc[\compteurcnt,3]}}}% }% }% \setstackgap{L}{\baselineskip}% @@ -991,11 +991,11 @@ \begin{tikzpicture}% \begin{scope}[start chain=transition going right,node distance=-\pgflinewidth]% \foreach \s in {1,...,\ListeFlashlen}{% - \xintifboolexpr{\s = 1}{% + \xintifboolexpr{\s == 1}{% \node[arrow,on chain] {\Huge\bfseries\ListeFlash[\s]};% \ifboolKV[ClesFlash]{Pause}{\pause}{}% }{% - \xintifboolexpr{\s = \ListeFlashlen}{% + \xintifboolexpr{\s == \ListeFlashlen}{% \node[arrow,on chain] {\Huge\bfseries?};% }{% \node[arrow,on chain] {\ListeFlash[\s]};% @@ -2428,10 +2428,10 @@ %%% % QCM %%% -\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=2cm,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false} -\newlength{\LargeurQCM} -\newcounter{QuestionQCM} -\newcounter{TitreQCM} +\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=2cm,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false}% +\newlength{\LargeurQCM}% +\newcounter{QuestionQCM}% +\newcounter{TitreQCM}% \newcommand\QCM[2][]{% \useKVdefault[ClesQCM]% \setKV[ClesQCM]{#1}% @@ -2454,7 +2454,7 @@ \hline% \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{% \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{% - &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{\ListeQCM[##1,\fpeval{##2+1}]=1}{$\boxtimes$}{$\square$}}{$\square$}% + &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{\ListeQCM[##1,\fpeval{##2+1}]==1}{$\boxtimes$}{$\square$}}{$\square$}% }\\ }% \hline% @@ -2471,7 +2471,7 @@ \hline% \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{% \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{% - &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{##2=\ListeQCM[##1,2]}{$\boxtimes$}{$\square$}}{$\square$}% + &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{##2==\ListeQCM[##1,2]}{$\boxtimes$}{$\square$}}{$\square$}% }\\ }% \hline% @@ -2489,7 +2489,7 @@ \hline% \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{% \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{% - &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}\xintifboolexpr{##2=\ListeQCM[##1,\NumeroReponse]}{\cellcolor{\useKV[ClesQCM]{Couleur}}}{}}{}\ListeQCM[##1,##2+1]% + &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}\xintifboolexpr{##2==\ListeQCM[##1,\NumeroReponse]}{\cellcolor{\useKV[ClesQCM]{Couleur}}}{}}{}\ListeQCM[##1,##2+1]% }\\ }% \hline% @@ -2498,7 +2498,7 @@ }% } -\newcommand\QCMVar[2][]{% +\newcommand\QCMPfC[2][]{% \useKVdefault[ClesQCM]% \setKV[ClesQCM]{#1}% \setcounter{QuestionQCM}{\fpeval{\useKV[ClesQCM]{Depart}-1}}% @@ -2520,7 +2520,7 @@ \hline% \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{% \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{% - &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{\ListeQCM[##1,\fpeval{##2+1}]=1}{$\boxtimes$}{$\square$}}{$\square$}% + &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{\ListeQCM[##1,\fpeval{##2+1}]==1}{$\boxtimes$}{$\square$}}{$\square$}% }\\ }% \hline% @@ -2537,7 +2537,7 @@ \hline% \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{% \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{% - &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{##2=\ListeQCM[##1,2]}{$\boxtimes$}{$\square$}}{$\square$}% + &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{##2==\ListeQCM[##1,2]}{$\boxtimes$}{$\square$}}{$\square$}% }\\ }% \hline% @@ -2555,7 +2555,7 @@ \hline% \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{% \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{% - &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}\xintifboolexpr{##2=\ListeQCM[##1,\NumeroReponse]}{\cellcolor{\useKV[ClesQCM]{Couleur}}}{}}{}\ListeQCM[##1,##2+1]% + &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}\xintifboolexpr{##2==\ListeQCM[##1,\NumeroReponse]}{\cellcolor{\useKV[ClesQCM]{Couleur}}}{}}{}\ListeQCM[##1,##2+1]% }\\ }% \hline% @@ -3106,7 +3106,7 @@ \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :% }% }% - \xintifboolexpr{#3<#4 || #3=#4}{%\ifnum#3<#4% + \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4% \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}% \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}% \begin{align*} @@ -3138,7 +3138,7 @@ % On d\'emarre la r\'esolution \ifboolKV[ClesPythagore]{Perso}{\RedactionPythagore}{\ifboolKV[ClesPythagore]{Egalite}{Comme le triangle $#2$ est rectangle en $\NomB$, alors l'\'egalit\'e de Pythagore est v\'erifi\'ee :}{Dans le triangle $#2$ rectangle en $\NomB$, le th\'eor\`eme de Pythagore permet d'\'ecrire :% }}% - \xintifboolexpr{#3<#4 || #3=#4}{%\ifnum#3<#4% + \xintifboolexpr{#3<#4 || #3==#4}{%\ifnum#3<#4% \xdef\ResultatPytha{\fpeval{round(sqrt(#3^2+#4^2),\useKV[ClesPythagore]{Precision})}}% \begin{align*} \NomA\NomC^2&=\NomA\NomB^2+\NomB\NomC^2\\ @@ -3548,14 +3548,14 @@ \def\LETTRE{\useKV[ClesDistributivite]{Lettre}}% \ensuremath{% % partie du x^2 - \xintifboolexpr{#2=0}{}{\xintifboolexpr{#2=1}{}{\xintifboolexpr{#2=-1}{-}{\num{#2}}}\LETTRE^2}% + \xintifboolexpr{#2==0}{}{\xintifboolexpr{#2==1}{}{\xintifboolexpr{#2==-1}{-}{\num{#2}}}\LETTRE^2}% % partie du x - \xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{\xintifboolexpr{#2=0}{}{+}\xintifboolexpr{#3=1}{}{\num{#3}}}{% - \xintifboolexpr{#2=0}{\xintifboolexpr{#3=-1}{-}{\num{#3}}}{\xintifboolexpr{#3=-1}{-}{-\num{\fpeval{abs(#3)}}}}% + \xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}\xintifboolexpr{#3==1}{}{\num{#3}}}{% + \xintifboolexpr{#2==0}{\xintifboolexpr{#3==-1}{-}{\num{#3}}}{\xintifboolexpr{#3==-1}{-}{-\num{\fpeval{abs(#3)}}}}% }\LETTRE}% % partie du nombre - \xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\xintifboolexpr{#2=0}{\xintifboolexpr{#3=0}{}{+}}{+}\num{#4}}{% - \xintifboolexpr{#2=0}{\xintifboolexpr{#3=0}{\num{#4}}{-\num{\fpeval{abs(#4)}}}}{-\num{\fpeval{abs(#4)}}}}}% + \xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{}{+}}{+}\num{#4}}{% + \xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{\num{#4}}{-\num{\fpeval{abs(#4)}}}}{-\num{\fpeval{abs(#4)}}}}}% % }% }% @@ -3582,11 +3582,11 @@ \DistriEchange[#1]{#2}{#3}{#4}{#5}% }{% \ifboolKV[ClesDistributivite]{Remarquable}{% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==1}{% \ifx\bla#4\bla(\Affichage{0}{#2}{#3})^2\else(\Affichage{0}{#2}{#3})(\Affichage{0}{#4}{#5})\fi% }{} - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{\ifx\bla#4\bla\xintifboolexpr{#3>0}{\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2+2\times\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{#3}+\num{#3}^2}{\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2-2\times\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{\fpeval{0-#3}}+\num{\fpeval{0-#3}}^2}\else\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2-\num{#3}^2\fi}{} - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==2}{\ifx\bla#4\bla\xintifboolexpr{#3>0}{\xintifboolexpr{#2==1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2==1}{}{)}^2+2\times\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{#3}+\num{#3}^2}{\xintifboolexpr{#2==1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2==1}{}{)}^2-2\times\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{\fpeval{0-#3}}+\num{\fpeval{0-#3}}^2}\else\xintifboolexpr{#2==1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2==1}{}{)}^2-\num{#3}^2\fi}{} + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==3}{% \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}% \stepcounter{NbCalculDistri}% \ifx\bla#4\bla% @@ -3601,9 +3601,9 @@ \xdef\Multi{\fpeval{-\Multi}}% \xdef\Multim{\fpeval{-\Multim}}% \xdef\Multil{\fpeval{-\Multil}}% - \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% - \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% + \xintifboolexpr{\Multi==0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% + \xintifboolexpr{\Multim==0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% }{% \Affichage{\Multi}{\Multim}{\Multil}% } @@ -3621,9 +3621,9 @@ \xdef\Multi{\fpeval{-\Multi}}% \xdef\Multim{\fpeval{-\Multim}}% \xdef\Multil{\fpeval{-\Multil}}% - \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% - \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% + \xintifboolexpr{\Multi==0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% + \xintifboolexpr{\Multim==0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% }{% \Affichage{\Multi}{\Multim}{\Multil}% } @@ -3633,17 +3633,17 @@ }{}% }{% \ifboolKV[ClesDistributivite]{Numerique}{% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=0}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==0}{% \num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}\multido{\i=2+1}{4}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}% }{% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=-1}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==-1}{% \Distri[Numerique,Etape=3]{#2}{#3}{#4}{#5}\multido{\i=2+-1}{2}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}=\num{\fpeval{(#2+#3)*(#4+#5)}}% }{% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{\num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}}{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{\num{\fpeval{#2+#3}}\times(\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#5)}})}{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{\num{#3}\times\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{#3}\times\num{\fpeval{abs(#5)}}}{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{\num{\fpeval{#3*#4}}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#3*#5)}}}{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=5}{\num{\fpeval{#3*#4+#3*#5}}}{}% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==1}{\num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}}{}% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==2}{\num{\fpeval{#2+#3}}\times(\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#5)}})}{}% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==3}{\num{#3}\times\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{#3}\times\num{\fpeval{abs(#5)}}}{}% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==4}{\num{\fpeval{#3*#4}}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#3*#5)}}}{}% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==5}{\num{\fpeval{#3*#4+#3*#5}}}{}% }% }% }{% @@ -3655,58 +3655,58 @@ \NomLettre&=\Distri[Etape=\NomFin]{#2}{#3}{#4}{#5}% }{% % Etape 1 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{% - \xintifboolexpr{#2=0}{% - }{\xintifboolexpr{#3=0}{}{(}}\Tikzmark{\Affichage[#1]{0}{#2}{0}}% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==1}{% + \xintifboolexpr{#2==0}{% + }{\xintifboolexpr{#3==0}{}{(}}\Tikzmark{\Affichage[#1]{0}{#2}{0}}% \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}% - \xintifboolexpr{#3>0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#3)}}}% + \xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#3)}}}% \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{)}}{}% - \xintifboolexpr{#2=0}{}{\xintifboolexpr{#3=0}{}{)}}% + \xintifboolexpr{#2==0}{}{\xintifboolexpr{#3==0}{}{)}}% % \ifboolKV[ClesDistributivite]{AideMul}{\times}{}%on aide dans le cas double \xdef\Multi{\fpeval{#4*#5}}%affichage auto si (a+b)xk % - \xintifboolexpr{\Multi=0}{\times% + \xintifboolexpr{\Multi==0}{\times% \xintifboolexpr{#4<0}{(}{\xintifboolexpr{#5<0}{(}{}}}{(}% \Tikzmark{\Affichage[#1]{0}{#4}{0}}% \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{+(}}{}% - \xintifboolexpr{#5>0}{\xintifboolexpr{#4=0}{}{+}}{\xintifboolexpr{#5<0}{\xintifboolexpr{#4=0}{{-}}{-}}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#5)}}}% + \xintifboolexpr{#5>0}{\xintifboolexpr{#4==0}{}{+}}{\xintifboolexpr{#5<0}{\xintifboolexpr{#4==0}{{-}}{-}}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#5)}}}% \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{)}}{}% - \xintifboolexpr{\Multi=0}{% + \xintifboolexpr{\Multi==0}{% \xintifboolexpr{#4<0}{)}{\xintifboolexpr{#5<0}{)}{}}}{)}% \ifboolKV[ClesDistributivite]{Fleches}{% \xdef\Multi{\fpeval{#2*#3*#4*#5}}% - \xintifboolexpr{\Multi=0}{% + \xintifboolexpr{\Multi==0}{% \xdef\Multij{\fpeval{#2*#3}}%\relax - \xintifboolexpr{\Multij=0}{\xintifboolexpr{#2=0}{\DrawArrowSimple{1}}{\DrawArrowSimple{0}}}{\xintifboolexpr{#4=0}{\DrawArrowSimpleRenverse{3}}{\DrawArrowSimpleRenverse{2}}}% + \xintifboolexpr{\Multij==0}{\xintifboolexpr{#2==0}{\DrawArrowSimple{1}}{\DrawArrowSimple{0}}}{\xintifboolexpr{#4==0}{\DrawArrowSimpleRenverse{3}}{\DrawArrowSimpleRenverse{2}}}% }{% \DrawArrow% }% }{}\setcounter{NbDistri}{0}% }{} % Etape 2 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==2}{% \xdef\Multi{\fpeval{#2*#4}}% - \xintifboolexpr{\Multi=0}{}{% + \xintifboolexpr{\Multi==0}{}{% \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}% } \xdef\Multij{\fpeval{#2*#5}}% - \xintifboolexpr{\Multij=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multij==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}% }% \xdef\Multik{\fpeval{#3*#4}}% - \xintifboolexpr{\Multik=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multik==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}% }% \xdef\Multil{\fpeval{#3*#5}}% - \xintifboolexpr{\Multil=0}{}{+% + \xintifboolexpr{\Multil==0}{}{+% \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}% }% }{}% % Etape 3 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==3}{% \stepcounter{NbCalculDistri}% \xdef\Multi{\fpeval{#2*#4}}% \xdef\Multij{\fpeval{#2*#5}}% @@ -3716,17 +3716,17 @@ %% expressions \`a d\'evelopper \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}% \ifboolKV[ClesDistributivite]{Reduction}{\mathunderline{DCReduction}{% - \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{{}+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}% - \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}% + \xintifboolexpr{\Multij==0}{}{\xintifboolexpr{\Multi==0}{}{{}+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}% + \xintifboolexpr{\Multik==0}{}{\xintifboolexpr{\Multil==0}{\xintifboolexpr{#2==0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}% }% }{% - \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}% - \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#2=0}{}{+}}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}% + \xintifboolexpr{\Multij==0}{}{\xintifboolexpr{\Multi==0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}% + \xintifboolexpr{\Multik==0}{}{\xintifboolexpr{\Multil==0}{\xintifboolexpr{#2==0}{}{+}}{\xintifboolexpr{#2==0}{}{+}}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}% }% - \xintifboolexpr{\Multil=0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}% + \xintifboolexpr{\Multil==0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}% }{}% % Etape 4 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==4}{% \xdef\Multi{\fpeval{#2*#4}}% \xdef\Multij{\fpeval{#2*#5}}% \xdef\Multik{\fpeval{#3*#4}}% @@ -3740,15 +3740,15 @@ \xdef\Multi{\fpeval{-\Multi}}% \xdef\Multim{\fpeval{-\Multim}}% \xdef\Multil{\fpeval{-\Multil}}% - \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% - \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% + \xintifboolexpr{\Multi==0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% + \xintifboolexpr{\Multim==0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% }{% \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}% - \xintifboolexpr{\Multim=0}{}{% + \xintifboolexpr{\Multim==0}{}{% \xintifboolexpr{\Multim>0}{+\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}% }% - \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil<0}{-\Affichage{0}{0}{\fpeval{-\Multil}}}{+\Affichage{0}{0}{\Multil}}}% + \xintifboolexpr{\Multil==0}{}{\xintifboolexpr{\Multil<0}{-\Affichage{0}{0}{\fpeval{-\Multil}}}{+\Affichage{0}{0}{\Multil}}}% } \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#4}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#3*#5}}}{}% \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#4}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#3*#5}}}{}% @@ -3773,14 +3773,14 @@ \def\LETTRE{\useKV[ClesDistributivite]{Lettre}}% \ensuremath{% % partie du nombre - \xintifboolexpr{#2=0}{}{\num{#2}}% + \xintifboolexpr{#2==0}{}{\num{#2}}% % partie du x - \xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{\xintifboolexpr{#2=0}{}{+}\xintifboolexpr{#3=1}{}{\num{#3}}}{% - \xintifboolexpr{#2=0}{\xintifboolexpr{#3=-1}{-}{\num{#3}}}{\xintifboolexpr{#3=-1}{-}{-\num{\fpeval{abs(#3)}}}} + \xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}\xintifboolexpr{#3==1}{}{\num{#3}}}{% + \xintifboolexpr{#2==0}{\xintifboolexpr{#3==-1}{-}{\num{#3}}}{\xintifboolexpr{#3==-1}{-}{-\num{\fpeval{abs(#3)}}}} }\LETTRE}% % partie du x^2 - \xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\xintifboolexpr{#2=0}{\xintifboolexpr{#3=0}{}{+}}{+}\xintifboolexpr{#4=1}{}{\num{#4}}}{% - \xintifboolexpr{#2=0}{\xintifboolexpr{#3=0}{\num{#4}}{-\num{\fpeval{abs(#4)}}}}{-\num{\fpeval{abs(#4)}}}}\LETTRE^2}% + \xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{}{+}}{+}\xintifboolexpr{#4==1}{}{\num{#4}}}{% + \xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{\num{#4}}{-\num{\fpeval{abs(#4)}}}}{-\num{\fpeval{abs(#4)}}}}\LETTRE^2}% }% }% @@ -3796,20 +3796,20 @@ \colorlet{DCFlechesh}{\useKV[ClesDistributivite]{CouleurFH}}% \colorlet{DCFlechesb}{\useKV[ClesDistributivite]{CouleurFB}}% \ifboolKV[ClesDistributivite]{Remarquable}{% - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{\ifx\bla#4\bla(\AffichageEchange{#2}{#3}{0})^2\else(\AffichageEchange{#2}{#3}{0})(\AffichageEchange{#4}{#5}{0})\fi + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==1}{\ifx\bla#4\bla(\AffichageEchange{#2}{#3}{0})^2\else(\AffichageEchange{#2}{#3}{0})(\AffichageEchange{#4}{#5}{0})\fi }{} - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==2}{% \ifx\bla#4\bla\xintifboolexpr{#3>0}{% - \num{#2}^2+2\times\num{#2}\times\xintifboolexpr{#3=1}{}{\num{#3}}\useKV[ClesDistributivite]{Lettre}+ - \xintifboolexpr{#3=1}{}{(\num{#3}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#3=1}{}{)}^2% + \num{#2}^2+2\times\num{#2}\times\xintifboolexpr{#3==1}{}{\num{#3}}\useKV[ClesDistributivite]{Lettre}+ + \xintifboolexpr{#3==1}{}{(\num{#3}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#3==1}{}{)}^2% }{% - \num{#2}^2-2\times\num{#2}\times\xintifboolexpr{#3=-1}{}{\num{\fpeval{0-#3}}}\useKV[ClesDistributivite]{Lettre}+ - \xintifboolexpr{#3=-1}{}{(\num{\fpeval{0-#3}}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#3=-1}{}{)}^2% + \num{#2}^2-2\times\num{#2}\times\xintifboolexpr{#3==-1}{}{\num{\fpeval{0-#3}}}\useKV[ClesDistributivite]{Lettre}+ + \xintifboolexpr{#3==-1}{}{(\num{\fpeval{0-#3}}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#3==-1}{}{)}^2% }% - \else\num{#2}^2-\xintifboolexpr{#3=1}{}{(\num{#3}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#3=1}{}{)}^2% + \else\num{#2}^2-\xintifboolexpr{#3==1}{}{(\num{#3}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#3==1}{}{)}^2% \fi% }{} - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==3}{% \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}% \stepcounter{NbCalculDistri}% \ifx\bla#4\bla% @@ -3824,9 +3824,9 @@ \xdef\Multi{\fpeval{-\Multi}}% \xdef\Multim{\fpeval{-\Multim}}% \xdef\Multil{\fpeval{-\Multil}}% - \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\AffichageEchange{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% - \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\AffichageEchange{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\AffichageEchange{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% + \xintifboolexpr{\Multi==0}{}{\xintifboolexpr{\Multi<0}{(}{}\AffichageEchange{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% + \xintifboolexpr{\Multim==0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\AffichageEchange{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\AffichageEchange{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% }{% \AffichageEchange{\Multi}{\Multim}{\Multil}% } @@ -3844,9 +3844,9 @@ \xdef\Multi{\fpeval{-\Multi}}% \xdef\Multim{\fpeval{-\Multim}}% \xdef\Multil{\fpeval{-\Multil}}% - \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\AffichageEchange{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% - \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\AffichageEchange{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\AffichageEchange{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% + \xintifboolexpr{\Multi==0}{}{\xintifboolexpr{\Multi<0}{(}{}\AffichageEchange{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}% + \xintifboolexpr{\Multim==0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\AffichageEchange{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\AffichageEchange{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}% }{% \AffichageEchange{\Multi}{\Multim}{\Multil}% } @@ -3858,19 +3858,6 @@ }{}% }{% \ifboolKV[ClesDistributivite]{Numerique}{% - % \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=0}{% - % \num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}\multido{\i=2+1}{4}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}% - % }{% - % \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=-1}{% - % \Distri[Numerique,Etape=3]{#2}{#3}{#4}{#5}\multido{\i=2+-1}{2}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}=\num{\fpeval{(#2+#3)*(#4+#5)}}% - % }{% - % \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{\num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}}{}% - % \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{\num{\fpeval{#2+#3}}\times(\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#5)}})}{}% - % \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{\num{#3}\times\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{#3}\times\num{\fpeval{abs(#5)}}}{}% - % \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{\num{\fpeval{#3*#4}}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#3*#5)}}}{}% - % \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=5}{\num{\fpeval{#3*#4+#3*#5}}}{}% - % }% - % }% }{% \ifboolKV[ClesDistributivite]{All}{% \xdef\NomLettre{\useKV[ClesDistributivite]{NomExpression}}% @@ -3881,126 +3868,126 @@ \NomLettre&=\DistriEchange[Echange=\ValeurEchange,Etape=\NomFin]{#2}{#3}{#4}{#5}% }{% % Etape 1 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1||\useKV[ClesDistributivite]{Echange}=3}{% - \xintifboolexpr{#2=0}{% - }{\xintifboolexpr{#3=0}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==1}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==1||\useKV[ClesDistributivite]{Echange}==3}{% + \xintifboolexpr{#2==0}{% + }{\xintifboolexpr{#3==0}{% }{(}}\Tikzmark{\Affichage[#1]{0}{0}{#2}}% \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}% - \xintifboolexpr{#3>0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{\fpeval{abs(#3)}}{0}}% + \xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{\fpeval{abs(#3)}}{0}}% \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{)}}{}% - \xintifboolexpr{#2=0}{% - }{\xintifboolexpr{#3=0}{% + \xintifboolexpr{#2==0}{% + }{\xintifboolexpr{#3==0}{% }{)}}% }{ - \xintifboolexpr{#2=0}{% - }{\xintifboolexpr{#3=0}{% + \xintifboolexpr{#2==0}{% + }{\xintifboolexpr{#3==0}{% }{(}}\Tikzmark{\Affichage[#1]{0}{#2}{0}}% \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}% - \xintifboolexpr{#3>0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#3)}}}% + \xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#3)}}}% \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{)}}{}% - \xintifboolexpr{#2=0}{% - }{\xintifboolexpr{#3=0}{% + \xintifboolexpr{#2==0}{% + }{\xintifboolexpr{#3==0}{% }{)}}% }% % \ifboolKV[ClesDistributivite]{AideMul}{\times}{}%on aide dans le cas double \xdef\Multi{\fpeval{#4*#5}}%affichage auto si (a+b)xk % - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=2||\useKV[ClesDistributivite]{Echange}=3}{% - \xintifboolexpr{\Multi=0}{\times% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==2||\useKV[ClesDistributivite]{Echange}==3}{% + \xintifboolexpr{\Multi==0}{\times% \xintifboolexpr{#4<0}{(}{\xintifboolexpr{#5<0}{(}{}}}{(}% \Tikzmark{\AffichageEchange[#1]{#4}{0}{0}}% \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{+(}}{}% - \xintifboolexpr{#5>0}{\xintifboolexpr{#4=0}{}{+}}{\xintifboolexpr{#5<0}{-}{}}\Tikzmark{\AffichageEchange[#1]{0}{\fpeval{abs(#5)}}{0}}% + \xintifboolexpr{#5>0}{\xintifboolexpr{#4==0}{}{+}}{\xintifboolexpr{#5<0}{-}{}}\Tikzmark{\AffichageEchange[#1]{0}{\fpeval{abs(#5)}}{0}}% \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{)}}{}% - \xintifboolexpr{\Multi=0}{% + \xintifboolexpr{\Multi==0}{% \xintifboolexpr{#4<0}{)}{\xintifboolexpr{#5<0}{)}{}}}{)}% }{% - \xintifboolexpr{\Multi=0}{\times% + \xintifboolexpr{\Multi==0}{\times% \xintifboolexpr{#4<0}{(}{\xintifboolexpr{#5<0}{(}{}}}{(}% \Tikzmark{\Affichage[#1]{0}{#4}{0}}% \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{+(}}{}% - \xintifboolexpr{#5>0}{\xintifboolexpr{#4=0}{}{+}}{\xintifboolexpr{#5<0}{\xintifboolexpr{#4=0}{{-}}{-}}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#5)}}}% + \xintifboolexpr{#5>0}{\xintifboolexpr{#4==0}{}{+}}{\xintifboolexpr{#5<0}{\xintifboolexpr{#4==0}{{-}}{-}}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#5)}}}% \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{)}}{}% - \xintifboolexpr{\Multi=0}{% + \xintifboolexpr{\Multi==0}{% \xintifboolexpr{#4<0}{)}{\xintifboolexpr{#5<0}{)}{}}}{)}% }% \ifboolKV[ClesDistributivite]{Fleches}{% \xdef\Multi{\fpeval{#2*#3*#4*#5}}% - \xintifboolexpr{\Multi=0}{% + \xintifboolexpr{\Multi==0}{% \xdef\Multij{\fpeval{#2*#3}}%\relax - \xintifboolexpr{\Multij=0}{\xintifboolexpr{#2=0}{\DrawArrowSimple{1}}{\DrawArrowSimple{0}}}{\xintifboolexpr{#4=0}{\DrawArrowSimpleRenverse{3}}{\DrawArrowSimpleRenverse{2}}} + \xintifboolexpr{\Multij==0}{\xintifboolexpr{#2==0}{\DrawArrowSimple{1}}{\DrawArrowSimple{0}}}{\xintifboolexpr{#4==0}{\DrawArrowSimpleRenverse{3}}{\DrawArrowSimpleRenverse{2}}} }{% \DrawArrow }% }{}\setcounter{NbDistri}{0}% }{}% % Etape 2 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==2}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==1}{% \xdef\Multi{\fpeval{#2*#4}}% - \xintifboolexpr{\Multi=0}{}{% + \xintifboolexpr{\Multi==0}{}{% \xintifboolexpr{#2<0}{(}{}\AffichageEchange[#1]{#2}{0}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}% }% \xdef\Multij{\fpeval{#2*#5}}% - \xintifboolexpr{\Multij=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multij==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#2<0}{(}{}\AffichageEchange[#1]{#2}{0}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}% }% \xdef\Multik{\fpeval{#3*#4}}% - \xintifboolexpr{\Multik=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multik==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#3<0}{(}{}\AffichageEchange[#1]{0}{#3}{0}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}% }% \xdef\Multil{\fpeval{#3*#5}}% - \xintifboolexpr{\Multil=0}{}{+% + \xintifboolexpr{\Multil==0}{}{+% \xintifboolexpr{#3<0}{(}{}\AffichageEchange[#1]{0}{#3}{0}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}% }% }{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=2}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==2}{% \xdef\Multi{\fpeval{#2*#4}}% - \xintifboolexpr{\Multi=0}{}{% + \xintifboolexpr{\Multi==0}{}{% \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\AffichageEchange[#1]{#4}{0}{0}\xintifboolexpr{#4<0}{)}{}% }% \xdef\Multij{\fpeval{#2*#5}}% - \xintifboolexpr{\Multij=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multij==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\AffichageEchange[#1]{0}{#5}{0}\xintifboolexpr{#5<0}{)}{}% }% \xdef\Multik{\fpeval{#3*#4}}% - \xintifboolexpr{\Multik=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multik==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\AffichageEchange[#1]{#4}{0}{0}\xintifboolexpr{#4<0}{)}{}% }% \xdef\Multil{\fpeval{#3*#5}}% - \xintifboolexpr{\Multil=0}{}{+% + \xintifboolexpr{\Multil==0}{}{+% \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\AffichageEchange[#1]{0}{#5}{0}\xintifboolexpr{#5<0}{)}{}% }% }{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=3}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==3}{% \xdef\Multi{\fpeval{#2*#4}}% - \xintifboolexpr{\Multi=0}{}{% + \xintifboolexpr{\Multi==0}{}{% \xintifboolexpr{#2<0}{(}{}\AffichageEchange[#1]{#2}{0}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\AffichageEchange[#1]{#4}{0}{0}\xintifboolexpr{#4<0}{)}{}% }% \xdef\Multij{\fpeval{#2*#5}}% - \xintifboolexpr{\Multij=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multij==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#2<0}{(}{}\AffichageEchange[#1]{#2}{0}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\AffichageEchange[#1]{0}{#5}{0}\xintifboolexpr{#5<0}{)}{}% }% \xdef\Multik{\fpeval{#3*#4}}% - \xintifboolexpr{\Multik=0}{}{% - \xintifboolexpr{\Multi=0}{}{+}% + \xintifboolexpr{\Multik==0}{}{% + \xintifboolexpr{\Multi==0}{}{+}% \xintifboolexpr{#3<0}{(}{}\AffichageEchange[#1]{0}{#3}{0}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\AffichageEchange[#1]{#4}{0}{0}\xintifboolexpr{#4<0}{)}{}% }% \xdef\Multil{\fpeval{#3*#5}}% - \xintifboolexpr{\Multil=0}{}{+% + \xintifboolexpr{\Multil==0}{}{+% \xintifboolexpr{#3<0}{(}{}\AffichageEchange[#1]{0}{#3}{0}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\AffichageEchange[#1]{0}{#5}{0}\xintifboolexpr{#5<0}{)}{}% }% }{} }{} % Etape 3 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==3}{% \stepcounter{NbCalculDistri}% \xdef\Multi{\fpeval{#2*#4}}% \xdef\Multij{\fpeval{#2*#5}}% @@ -4008,36 +3995,36 @@ \xdef\Multil{\fpeval{#3*#5}}% %% ils sont red\'efinis pour pouvoir envisager la somme de deux %% expressions \`a d\'evelopper - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==1}{% \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\AffichageEchange{0}{\Multi}{0})}{\AffichageEchange{0}{\Multi}{0}}}{\AffichageEchange{0}{\Multi}{0}}% - \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{\Multij}{0}{0}\xintifboolexpr{\Multij<0}{)}{}}% - \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\AffichageEchange{0}{0}{\Multik}\xintifboolexpr{\Multik<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\AffichageEchange{0}{\Multil}{0}\xintifboolexpr{\Multil<0}{)}{}% + \xintifboolexpr{\Multij==0}{}{\xintifboolexpr{\Multi==0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{\Multij}{0}{0}\xintifboolexpr{\Multij<0}{)}{}}% + \xintifboolexpr{\Multik==0}{}{\xintifboolexpr{\Multil==0}{\xintifboolexpr{#2=0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\AffichageEchange{0}{0}{\Multik}\xintifboolexpr{\Multik<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\AffichageEchange{0}{\Multil}{0}\xintifboolexpr{\Multil<0}{)}{}% \xdef\Multim{\fpeval{#2*#4+#3*#5}}% \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+\Multik}}\xdef\SommeB{\fpeval{\SommeB+\Multim}}\xdef\SommeC{\fpeval{\SommeC+\Multij}}}{}% \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-\Multik}}\xdef\SommeB{\fpeval{\SommeB-\Multim}}\xdef\SommeC{\fpeval{\SommeC-\Multij}}}{}% }{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=2}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==2}{% \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\AffichageEchange{0}{\Multi}{0})}{\AffichageEchange{0}{\Multi}{0}}}{\AffichageEchange{0}{\Multi}{0}}% - \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{0}{0}{\Multij}\xintifboolexpr{\Multij<0}{)}{}}% - \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\AffichageEchange{\Multik}{0}{0}\xintifboolexpr{\Multik<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\AffichageEchange{0}{\Multil}{0}\xintifboolexpr{\Multil<0}{)}{}% + \xintifboolexpr{\Multij==0}{}{\xintifboolexpr{\Multi==0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{0}{0}{\Multij}\xintifboolexpr{\Multij<0}{)}{}}% + \xintifboolexpr{\Multik==0}{}{\xintifboolexpr{\Multil==0}{\xintifboolexpr{#2==0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\AffichageEchange{\Multik}{0}{0}\xintifboolexpr{\Multik<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\AffichageEchange{0}{\Multil}{0}\xintifboolexpr{\Multil<0}{)}{}% \xdef\Multim{\fpeval{#2*#4+#3*#5}}% \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+\Multij}}\xdef\SommeB{\fpeval{\SommeB+\Multim}}\xdef\SommeC{\fpeval{\SommeC+\Multik}}}{}% \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-\Multij}}\xdef\SommeB{\fpeval{\SommeB-\Multim}}\xdef\SommeC{\fpeval{\SommeC-\Multik}}}{}% }{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=3}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==3}{% \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\AffichageEchange{\Multi}{0}{0})}{\AffichageEchange{\Multi}{0}{0}}}{\AffichageEchange{\Multi}{0}{0}}% - \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}% - \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\AffichageEchange{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}% - \xintifboolexpr{\Multil=0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\AffichageEchange{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}% + \xintifboolexpr{\Multij==0}{}{\xintifboolexpr{\Multi==0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\AffichageEchange{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}% + \xintifboolexpr{\Multik==0}{}{\xintifboolexpr{\Multil==0}{\xintifboolexpr{#2==0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\AffichageEchange{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}% + \xintifboolexpr{\Multil==0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\AffichageEchange{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}% \xdef\Multim{\fpeval{#2*#5+#3*#4}}% \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+\Multil}}\xdef\SommeB{\fpeval{\SommeB+\Multim}}\xdef\SommeC{\fpeval{\SommeC+\Multi}}}{}% \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-\Multil}}\xdef\SommeB{\fpeval{\SommeB-\Multim}}\xdef\SommeC{\fpeval{\SommeC-\Multi}}}{}% }{}% }{}%fin etape3 % Etape 4 - \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Etape}==4}{% \xdef\Multi{\fpeval{#2*#4}}% \xdef\Multij{\fpeval{#2*#5}}% \xdef\Multik{\fpeval{#3*#4}}% @@ -4046,59 +4033,59 @@ %% expressions \`a d\'evelopper \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}% \stepcounter{NbCalculDistri}% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=1}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==1}{% \xdef\Multim{\fpeval{#2*#4+#3*#5}}% \ifboolKV[ClesDistributivite]{Oppose}{% \xdef\Multiko{\fpeval{-\Multik}}% \xdef\Multimo{\fpeval{-\Multim}}% \xdef\Multijo{\fpeval{-\Multij}}% - \xintifboolexpr{\Multiko=0}{}{\xintifboolexpr{\Multiko<0}{(}{}\Affichage{\Multiko}{0}{0}\xintifboolexpr{\Multiko<0}{)}{}}% - \xintifboolexpr{\Multimo=0}{}{\xintifboolexpr{\Multimo>0}{+}{+(}\Affichage{0}{\Multimo}{0}\xintifboolexpr{\Multimo<0}{)}{}}% - \xintifboolexpr{\Multijo=0}{}{\xintifboolexpr{\Multijo>0}{+}{+(}\Affichage{0}{0}{\Multijo}\xintifboolexpr{\Multijo<0}{)}{}}% + \xintifboolexpr{\Multiko==0}{}{\xintifboolexpr{\Multiko<0}{(}{}\Affichage{\Multiko}{0}{0}\xintifboolexpr{\Multiko<0}{)}{}}% + \xintifboolexpr{\Multimo==0}{}{\xintifboolexpr{\Multimo>0}{+}{+(}\Affichage{0}{\Multimo}{0}\xintifboolexpr{\Multimo<0}{)}{}}% + \xintifboolexpr{\Multijo==0}{}{\xintifboolexpr{\Multijo>0}{+}{+(}\Affichage{0}{0}{\Multijo}\xintifboolexpr{\Multijo<0}{)}{}}% }{% \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multik<0}{(\Affichage{\Multik}{0}{0})}{\Affichage{\Multik}{0}{0}}}{\Affichage{\Multik}{0}{0}}% - \xintifboolexpr{\Multim=0}{}{% + \xintifboolexpr{\Multim==0}{}{% \xintifboolexpr{\Multim>0}{+\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}% }% - \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multij<0}{-\Affichage{0}{0}{\fpeval{-\Multij}}}{+\Affichage{0}{0}{\Multij}}}% + \xintifboolexpr{\Multij==0}{}{\xintifboolexpr{\Multij<0}{-\Affichage{0}{0}{\fpeval{-\Multij}}}{+\Affichage{0}{0}{\Multij}}}% }% \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+\Multik}}\xdef\SommeB{\fpeval{\SommeB+\Multim}}\xdef\SommeC{\fpeval{\SommeC+\Multij}}}{}% \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-\Multik}}\xdef\SommeB{\fpeval{\SommeB-\Multim}}\xdef\SommeC{\fpeval{\SommeC-\Multij}}}{}% }{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=2}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==2}{% \xdef\Multim{\fpeval{#2*#4+#3*#5}}% \ifboolKV[ClesDistributivite]{Oppose}{% \xdef\Multijo{\fpeval{-\Multij}}% \xdef\Multimo{\fpeval{-\Multim}}% \xdef\Multiko{\fpeval{-\Multik}}% - \xintifboolexpr{\Multijo=0}{}{\xintifboolexpr{\Multijo<0}{(}{}\Affichage{\Multijo}{0}{0}\xintifboolexpr{\Multijo<0}{)}{}}% - \xintifboolexpr{\Multimo=0}{}{\xintifboolexpr{\Multimo>0}{+}{+(}\Affichage{0}{\Multimo}{0}\xintifboolexpr{\Multimo<0}{)}{}}% - \xintifboolexpr{\Multiko=0}{}{\xintifboolexpr{\Multiko>0}{+}{+(}\Affichage{0}{0}{\Multiko}\xintifboolexpr{\Multiko<0}{)}{}}% + \xintifboolexpr{\Multijo==0}{}{\xintifboolexpr{\Multijo<0}{(}{}\Affichage{\Multijo}{0}{0}\xintifboolexpr{\Multijo<0}{)}{}}% + \xintifboolexpr{\Multimo==0}{}{\xintifboolexpr{\Multimo>0}{+}{+(}\Affichage{0}{\Multimo}{0}\xintifboolexpr{\Multimo<0}{)}{}}% + \xintifboolexpr{\Multiko==0}{}{\xintifboolexpr{\Multiko>0}{+}{+(}\Affichage{0}{0}{\Multiko}\xintifboolexpr{\Multiko<0}{)}{}}% }{% \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multij<0}{(\Affichage{\Multij}{0}{0})}{\Affichage{\Multij}{0}{0}}}{\Affichage{\Multij}{0}{0}}% - \xintifboolexpr{\Multim=0}{}{% + \xintifboolexpr{\Multim==0}{}{% \xintifboolexpr{\Multim>0}{+\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}% }% - \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multik<0}{-\Affichage{0}{0}{\fpeval{-\Multik}}}{+\Affichage{0}{0}{\Multik}}}% + \xintifboolexpr{\Multik==0}{}{\xintifboolexpr{\Multik<0}{-\Affichage{0}{0}{\fpeval{-\Multik}}}{+\Affichage{0}{0}{\Multik}}}% }% \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+\Multij}}\xdef\SommeB{\fpeval{\SommeB+\Multim}}\xdef\SommeC{\fpeval{\SommeC+\Multik}}}{}% \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-\Multij}}\xdef\SommeB{\fpeval{\SommeB-\Multim}}\xdef\SommeC{\fpeval{\SommeC-\Multik}}}{}% }{}% - \xintifboolexpr{\useKV[ClesDistributivite]{Echange}=3}{% + \xintifboolexpr{\useKV[ClesDistributivite]{Echange}==3}{% \xdef\Multim{\fpeval{#2*#5+#3*#4}}% \ifboolKV[ClesDistributivite]{Oppose}{% \xdef\Multilo{\fpeval{-\Multil}}% \xdef\Multimo{\fpeval{-\Multim}}% \xdef\Multio{\fpeval{-\Multi}}% - \xintifboolexpr{\Multilo=0}{}{\xintifboolexpr{\Multilo<0}{(}{}\Affichage{\Multilo}{0}{0}\xintifboolexpr{\Multilo<0}{)}{}}% - \xintifboolexpr{\Multimo=0}{}{\xintifboolexpr{\Multimo>0}{+}{+(}\Affichage{0}{\Multimo}{0}\xintifboolexpr{\Multimo<0}{)}{}}% - \xintifboolexpr{\Multio=0}{}{\xintifboolexpr{\Multio>0}{+}{+(}\Affichage{0}{0}{\Multio}\xintifboolexpr{\Multio<0}{)}{}}% + \xintifboolexpr{\Multilo==0}{}{\xintifboolexpr{\Multilo<0}{(}{}\Affichage{\Multilo}{0}{0}\xintifboolexpr{\Multilo<0}{)}{}}% + \xintifboolexpr{\Multimo==0}{}{\xintifboolexpr{\Multimo>0}{+}{+(}\Affichage{0}{\Multimo}{0}\xintifboolexpr{\Multimo<0}{)}{}}% + \xintifboolexpr{\Multio==0}{}{\xintifboolexpr{\Multio>0}{+}{+(}\Affichage{0}{0}{\Multio}\xintifboolexpr{\Multio<0}{)}{}}% }{% \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multil<0}{(\Affichage{\Multil}{0}{0})}{\Affichage{\Multil}{0}{0}}}{\Affichage{\Multil}{0}{0}}% - \xintifboolexpr{\Multim=0}{}{% + \xintifboolexpr{\Multim==0}{}{% \xintifboolexpr{\Multim>0}{+\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}% }% - \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{-\Affichage{0}{0}{\fpeval{-\Multi}}}{+\Affichage{0}{0}{\Multi}}}% + \xintifboolexpr{\Multi==0}{}{\xintifboolexpr{\Multi<0}{-\Affichage{0}{0}{\fpeval{-\Multi}}}{+\Affichage{0}{0}{\Multi}}}% } \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+\Multil}}\xdef\SommeB{\fpeval{\SommeB+\Multim}}\xdef\SommeC{\fpeval{\SommeC+\Multi}}}{}% \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-\Multil}}\xdef\SommeB{\fpeval{\SommeB-\Multim}}\xdef\SommeC{\fpeval{\SommeC-\Multi}}}{}% @@ -5646,7 +5633,7 @@ vardef Positions(expr Step)= }% % On choisit \'eventuellement le calcul \`a faire s'il y en a plusieurs. \xdef\CompteurCalcul{\useKV[ClesThales]{ChoixCalcul}}% - \xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul=1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul=2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}{}% + \xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul==1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul==2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}{}% %%on fait les calculs \begin{align*} %Premier compteur \xxx @@ -5863,7 +5850,7 @@ vardef Positions(expr Step)= }% % On choisit \'eventuellement le calcul \`a faire s'il y en a plusieurs. \xdef\CompteurCalcul{\useKV[ClesThales]{ChoixCalcul}}% - \xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul=1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul=2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}% + \xintifboolexpr{\CompteurCalcul>0}{\xintifboolexpr{\CompteurCalcul==1}{\xdef\cmya{0}\xdef\cmza{0}}{\xintifboolexpr{\CompteurCalcul==2}{\xdef\cmxa{0}\xdef\cmza{0}}{\xdef\cmxa{0}\xdef\cmya{0}}}}% %%on fait les calculs \begin{align*} %Premier compteur \xxx @@ -6121,7 +6108,7 @@ vardef Positions(expr Step)= \begin{align*} \num{#3}\times\num{#6}&=\num{\fpeval{#3*#6}}&&&\num{#4}\times\num{#5}&=\num{\fpeval{#4*#5}} \end{align*} - \xintifboolexpr{\NumA = \NumB}{Comme les produits en croix sont + \xintifboolexpr{\NumA == \NumB}{Comme les produits en croix sont \'egaux, alors $\dfrac{\NomA\NomM}{\NomA\NomB}=\dfrac{\NomA\NomN}{\NomA\NomC}$.\\[0.5em]% }{% @@ -6131,20 +6118,20 @@ vardef Positions(expr Step)= }{% \[\left. \begin{array}{l} - \dfrac{\NomA\NomM}{\NomA\NomB}=\dfrac{\num{#3}}{\num{#4}}\ifx\bla#7\bla\ifboolKV[ClesThales]{Simplification}{\PGCD{#3}{#4}\xintifboolexpr{\pgcd=1}{%il faut regarder si on doit continuer avec le PPCM... - \PGCD{#5}{#6}\xintifboolexpr{\pgcd>1}{\xdef\DenomSimpaa{\fpeval{#6/\pgcd}}\PPCM{#4}{\DenomSimpaa}\xintifboolexpr{\ppcm=#4}{}{=\dfrac{#3\times\num{\fpeval{\ppcm/#4}}}{#4\times\num{\fpeval{\ppcm/#4}}}=\dfrac{\num{\fpeval{#3*\ppcm/#4}}}{\num{\fpeval{\ppcm}}}}}{}% - }{=\displaystyle\Simplification[All]{#3}{#4}\PGCD{#3}{#4}\xdef\NumSimp{\fpeval{#3/\pgcd}}\xdef\DenomSimp{\fpeval{#4/\pgcd}}\PGCD{#5}{#6}\xdef\NumSimpa{\fpeval{#5/\pgcd}}\xdef\DenomSimpa{\fpeval{#6/\pgcd}}\PPCM{\DenomSimp}{\DenomSimpa}\xintifboolexpr{\fpeval{\the\ppcm/\DenomSimp}=1}{}{=\dfrac{\num{\NumSimp}\times\num{\fpeval{\the\ppcm/\DenomSimp}}}{\num{\DenomSimp}\times\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\the\ppcm/\DenomSimp}}}=\dfrac{\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\NumSimp*\the\ppcm/\DenomSimp}}}{\PPCM{\DenomSimp}{\DenomSimpa}\num{\the\ppcm}}}}}{\PPCM{#4}{#6}\xintifboolexpr{\fpeval{\the\ppcm/#4}=1}{}{=\dfrac{\num{#3}\times\num{\fpeval{\the\ppcm/#4}}}{\num{#4}\times\PPCM{#4}{#6}\num{\fpeval{\the\ppcm/#4}}}=\dfrac{\PPCM{#4}{#6}\num{\fpeval{#3*\the\ppcm/#4}}}{\PPCM{#4}{#6}\num{\the\ppcm}}}}\xdef\NumA{\fpeval{#3*#6}}\else% - \xintifboolexpr{#7=1}{}{=\dfrac{\num{#3}\times\num{#7}}{\num{#4}\times\num{#7}}=\dfrac{\num{\fpeval{#3*#7}}}{\num{\fpeval{#4*#7}}}}\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\xintifboolexpr{\the\ppcm=\fpeval{#4*#7}}{}{=\dfrac{\num{\fpeval{#3*#7}}\times\num{\fpeval{\the\ppcm/(#4*#7)}}}{\num{\fpeval{#4*#7}}\times\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm/(#4*#7)}}}=\dfrac{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{#3*\the\ppcm/#4}}}{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm}}}}\xdef\NumA{\fpeval{#3*#7*#6*#8}} + \dfrac{\NomA\NomM}{\NomA\NomB}=\dfrac{\num{#3}}{\num{#4}}\ifx\bla#7\bla\ifboolKV[ClesThales]{Simplification}{\PGCD{#3}{#4}\xintifboolexpr{\pgcd==1}{%il faut regarder si on doit continuer avec le PPCM... + \PGCD{#5}{#6}\xintifboolexpr{\pgcd>1}{\xdef\DenomSimpaa{\fpeval{#6/\pgcd}}\PPCM{#4}{\DenomSimpaa}\xintifboolexpr{\ppcm==#4}{}{=\dfrac{#3\times\num{\fpeval{\ppcm/#4}}}{#4\times\num{\fpeval{\ppcm/#4}}}=\dfrac{\num{\fpeval{#3*\ppcm/#4}}}{\num{\fpeval{\ppcm}}}}}{}% + }{=\displaystyle\Simplification[All]{#3}{#4}\PGCD{#3}{#4}\xdef\NumSimp{\fpeval{#3/\pgcd}}\xdef\DenomSimp{\fpeval{#4/\pgcd}}\PGCD{#5}{#6}\xdef\NumSimpa{\fpeval{#5/\pgcd}}\xdef\DenomSimpa{\fpeval{#6/\pgcd}}\PPCM{\DenomSimp}{\DenomSimpa}\xintifboolexpr{\fpeval{\the\ppcm/\DenomSimp}==1}{}{=\dfrac{\num{\NumSimp}\times\num{\fpeval{\the\ppcm/\DenomSimp}}}{\num{\DenomSimp}\times\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\the\ppcm/\DenomSimp}}}=\dfrac{\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\NumSimp*\the\ppcm/\DenomSimp}}}{\PPCM{\DenomSimp}{\DenomSimpa}\num{\the\ppcm}}}}}{\PPCM{#4}{#6}\xintifboolexpr{\fpeval{\the\ppcm/#4}==1}{}{=\dfrac{\num{#3}\times\num{\fpeval{\the\ppcm/#4}}}{\num{#4}\times\PPCM{#4}{#6}\num{\fpeval{\the\ppcm/#4}}}=\dfrac{\PPCM{#4}{#6}\num{\fpeval{#3*\the\ppcm/#4}}}{\PPCM{#4}{#6}\num{\the\ppcm}}}}\xdef\NumA{\fpeval{#3*#6}}\else% + \xintifboolexpr{#7==1}{}{=\dfrac{\num{#3}\times\num{#7}}{\num{#4}\times\num{#7}}=\dfrac{\num{\fpeval{#3*#7}}}{\num{\fpeval{#4*#7}}}}\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\xintifboolexpr{\the\ppcm==\fpeval{#4*#7}}{}{=\dfrac{\num{\fpeval{#3*#7}}\times\num{\fpeval{\the\ppcm/(#4*#7)}}}{\num{\fpeval{#4*#7}}\times\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm/(#4*#7)}}}=\dfrac{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{#3*\the\ppcm/#4}}}{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm}}}}\xdef\NumA{\fpeval{#3*#7*#6*#8}} \fi \\ \\ \dfrac{\NomA\NomN}{\NomA\NomC}=\dfrac{\num{#5}}{\num{#6}}% \ifx\bla#8\bla% - \ifboolKV[ClesThales]{Simplification}{\PGCD{#5}{#6}\xintifboolexpr{\pgcd=1}{%il faut regarder si on doit continuer avec le PPCM... - \PGCD{#3}{#4}\xintifboolexpr{\pgcd>1}{\xdef\DenomSimpaa{\fpeval{#4/\pgcd}}\PPCM{#6}{\DenomSimpaa}\xintifboolexpr{\ppcm=#6}{}{=\dfrac{#5\times\num{\fpeval{\ppcm/#6}}}{#6\times\num{\fpeval{\ppcm/#6}}}=\dfrac{\num{\fpeval{#5*\ppcm/#6}}}{\num{\fpeval{\ppcm}}}}}{}% - }{=\displaystyle\Simplification[All]{#5}{#6}\PGCD{#5}{#6}\xdef\NumSimp{\fpeval{#5/\pgcd}}\xdef\DenomSimp{\fpeval{#6/\pgcd}}\PGCD{#3}{#4}\xdef\NumSimpa{\fpeval{#3/\pgcd}}\xdef\DenomSimpa{\fpeval{#4/\pgcd}}\PPCM{\DenomSimp}{\DenomSimpa}\xintifboolexpr{\fpeval{\the\ppcm/\DenomSimp}=1}{}{=\dfrac{\num{\NumSimp}\times\num{\fpeval{\the\ppcm/\DenomSimp}}}{\num{\DenomSimp}\times\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\the\ppcm/\DenomSimp}}}=\dfrac{\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\NumSimp*\the\ppcm/\DenomSimp}}}{\PPCM{\DenomSimp}{\DenomSimpa}\num{\the\ppcm}}}}}{\PPCM{#4}{#6}\xintifboolexpr{\fpeval{\the\ppcm/#6}=1}{}{=\dfrac{\num{#5}\times\num{\fpeval{\the\ppcm/#6}}}{\num{#6}\times\PPCM{#4}{#6}\num{\fpeval{\the\ppcm/#6}}}=\dfrac{\PPCM{#4}{#6}\num{\fpeval{#5*\the\ppcm/#6}}}{\PPCM{#4}{#6}\num{\the\ppcm}}}}\xdef\NumB{\fpeval{#5*#4}}% + \ifboolKV[ClesThales]{Simplification}{\PGCD{#5}{#6}\xintifboolexpr{\pgcd==1}{%il faut regarder si on doit continuer avec le PPCM... + \PGCD{#3}{#4}\xintifboolexpr{\pgcd>1}{\xdef\DenomSimpaa{\fpeval{#4/\pgcd}}\PPCM{#6}{\DenomSimpaa}\xintifboolexpr{\ppcm==#6}{}{=\dfrac{#5\times\num{\fpeval{\ppcm/#6}}}{#6\times\num{\fpeval{\ppcm/#6}}}=\dfrac{\num{\fpeval{#5*\ppcm/#6}}}{\num{\fpeval{\ppcm}}}}}{}% + }{=\displaystyle\Simplification[All]{#5}{#6}\PGCD{#5}{#6}\xdef\NumSimp{\fpeval{#5/\pgcd}}\xdef\DenomSimp{\fpeval{#6/\pgcd}}\PGCD{#3}{#4}\xdef\NumSimpa{\fpeval{#3/\pgcd}}\xdef\DenomSimpa{\fpeval{#4/\pgcd}}\PPCM{\DenomSimp}{\DenomSimpa}\xintifboolexpr{\fpeval{\the\ppcm/\DenomSimp}==1}{}{=\dfrac{\num{\NumSimp}\times\num{\fpeval{\the\ppcm/\DenomSimp}}}{\num{\DenomSimp}\times\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\the\ppcm/\DenomSimp}}}=\dfrac{\PPCM{\DenomSimp}{\DenomSimpa}\num{\fpeval{\NumSimp*\the\ppcm/\DenomSimp}}}{\PPCM{\DenomSimp}{\DenomSimpa}\num{\the\ppcm}}}}}{\PPCM{#4}{#6}\xintifboolexpr{\fpeval{\the\ppcm/#6}==1}{}{=\dfrac{\num{#5}\times\num{\fpeval{\the\ppcm/#6}}}{\num{#6}\times\PPCM{#4}{#6}\num{\fpeval{\the\ppcm/#6}}}=\dfrac{\PPCM{#4}{#6}\num{\fpeval{#5*\the\ppcm/#6}}}{\PPCM{#4}{#6}\num{\the\ppcm}}}}\xdef\NumB{\fpeval{#5*#4}}% \else% - \xintifboolexpr{#8=1}{}{=\dfrac{\num{#5}\times\num{#8}}{\num{#6}\times\num{#8}}=\dfrac{\num{\fpeval{#5*#8}}}{\num{\fpeval{#6*#8}}}}\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\xintifboolexpr{\the\ppcm=\fpeval{#6*#8}}{}{=\dfrac{\num{\fpeval{#5*#8}}\times\num{\fpeval{\the\ppcm/(#6*#8)}}}{\num{\fpeval{#6*#8}}\times\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm/(#6*#8)}}}=\dfrac{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{#5*\the\ppcm/#6}}}{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm}}} + \xintifboolexpr{#8==1}{}{=\dfrac{\num{#5}\times\num{#8}}{\num{#6}\times\num{#8}}=\dfrac{\num{\fpeval{#5*#8}}}{\num{\fpeval{#6*#8}}}}\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\xintifboolexpr{\the\ppcm==\fpeval{#6*#8}}{}{=\dfrac{\num{\fpeval{#5*#8}}\times\num{\fpeval{\the\ppcm/(#6*#8)}}}{\num{\fpeval{#6*#8}}\times\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm/(#6*#8)}}}=\dfrac{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{#5*\the\ppcm/#6}}}{\xdef\NumC{\fpeval{#4*#7}}\xdef\NumD{\fpeval{#6*#8}}\PPCM{\NumC}{\NumD}\num{\fpeval{\the\ppcm}}} }\xdef\NumB{\fpeval{#5*#8*#4*#7}} \fi\\ \end{array} @@ -6164,7 +6151,7 @@ vardef Positions(expr Step)= th\'eor\`eme de Thal\`es.\else% Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ ne sont pas parall\`eles.\fi }{% - \xintifboolexpr{\NumA=\NumB}{% + \xintifboolexpr{\NumA==\NumB}{% De plus, les points $\NomA$, $\NomM$, $\NomB$ sont align\'es dans le m\^eme ordre que les points $\NomA$, $\NomN$, $\NomC$. Donc les droites $(\NomM\NomN)$ et $(\NomB\NomC)$ sont parall\`eles d'apr\`es @@ -6517,21 +6504,27 @@ vardef Positions(expr Step)= label(btex #3 etex,1.15[O,C]); label(btex ? etex,A+0.95u*unitvector(I-A)); decalage:=3mm; + if #6>0: if angle(1/2[A,C]-B)>0: label(btex \num{#6} etex,1.2[B,1/2[A,C]]); else: label(btex \num{#6} etex,1.2[B,1/2[A,C]]); fi; + fi; + if #4>0: if angle(1/2[B,C]-A)>0: label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B))); else: label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B))); - fi; + fi; + fi; + if #5>0: if angle(1/2[A,B]-C)>0: label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); else: label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); fi; + fi; \end{mplibcode} \mplibcodeinherit{disable} \else @@ -6579,21 +6572,27 @@ vardef Positions(expr Step)= label(btex #3 etex,1.15[O,C]); label(btex ? etex,A+0.95u*unitvector(I-A)); decalage:=3mm; + if #6>0: if angle(1/2[A,C]-B)>0: label(btex \num{#6} etex,1.2[B,1/2[A,C]]); else: label(btex \num{#6} etex,1.2[B,1/2[A,C]]); fi; + fi; + if #4>0: if angle(1/2[B,C]-A)>0: label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B))); else: label(btex \num{#4} etex,1/2[B,C]-decalage*(unitvector(A-B))); - fi; + fi; + fi; + if #5>0: if angle(1/2[A,B]-C)>0: label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); else: label(btex \num{#5} etex,1/2[A,B]-decalage*(unitvector(C-B))); fi; + fi; \end{mpost} \fi } @@ -6809,13 +6808,13 @@ vardef Positions(expr Step)= \ifboolKV[ClesTrigo]{FigureSeule}{% \ifx\bla#5\bla% \ifboolKV[ClesTrigo]{Cosinus}{% - \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{}{#3}{#4}{\useKV[ClesTrigo]{Angle}} + \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{-1}{#3}{#4}{\useKV[ClesTrigo]{Angle}} }{}% \ifboolKV[ClesTrigo]{Sinus}{% - \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{}{#4}{\useKV[ClesTrigo]{Angle}} + \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{-1}{#4}{\useKV[ClesTrigo]{Angle}} }{}% \ifboolKV[ClesTrigo]{Tangente}{% - \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{}{\useKV[ClesTrigo]{Angle}} + \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{-1}{\useKV[ClesTrigo]{Angle}} }{}% \else%}{%figure pour calculer une longueur \ifboolKV[ClesTrigo]{Cosinus}{% @@ -6847,17 +6846,17 @@ vardef Positions(expr Step)= \ifx\bla#5\bla% \ifboolKV[ClesTrigo]{Cosinus}{% \begin{center} - \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{}{#3}{#4}{\useKV[ClesTrigo]{Angle}} + \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{-1}{#3}{#4}{\useKV[ClesTrigo]{Angle}} \end{center} }{}% \ifboolKV[ClesTrigo]{Sinus}{% \begin{center} - \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{}{#4}{\useKV[ClesTrigo]{Angle}} + \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{-1}{#4}{\useKV[ClesTrigo]{Angle}} \end{center} }{}% \ifboolKV[ClesTrigo]{Tangente}{% \begin{center} - \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{}{\useKV[ClesTrigo]{Angle}} + \MPFigTrigoAngle{\NomA}{\NomB}{\NomC}{#3}{#4}{-1}{\useKV[ClesTrigo]{Angle}} \end{center} }{}% \else%}{%figure pour calculer une longueur @@ -6921,7 +6920,7 @@ vardef Positions(expr Step)= FreqVide=false,AngVide=false,ECCVide=false,TotalVide=false,Sondage=false,% Tableau=false,Stretch=1,Frequence=false,EffectifTotal=false,% Etendue=false,Moyenne=false,SET=false,Mediane=false,Total=false,Concret=false,% -Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,TableauVide=false,Graphique=false,Batons=true,Unitex=0.5,Unitey=0.5,Rayon=3cm,AffichageAngle=false,Liste=false,ECC=false,Coupure=10,CouleurTab=gray!15,ListeCouleurs={white},Hachures=false,Inverse=false,AbscisseRotation=false} +Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,TableauVide=false,Graphique=false,Batons=true,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Rayon=3cm,AffichageAngle=false,Liste=false,ECC=false,Coupure=10,CouleurTab=gray!15,ListeCouleurs={white},Hachures=false,Inverse=false,AbscisseRotation=false,Representation=false} % La construction du tableau \def\addtotok#1#2{#1\expandafter{\the#1#2}} @@ -7159,6 +7158,20 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl endfor; enddef; toto(#4); + boolean Grille; + Grille:=\useKV[ClesStat]{Grille}; + Pasx:=\useKV[ClesStat]{Pasx}; + Pasy:=\useKV[ClesStat]{Pasy}; + if Grille: + drawoptions(withcolor 0.75white); + for k=0 step Pasx until ((maxx+1)): + trace (k*unitex,0)--(k*unitex,unitey*(maxy+1)); + endfor; + for k=0 step Pasy until ((maxy+1)): + trace (0,k*unitey)--(unitex*(maxx+1),k*unitey); + endfor; + drawoptions(); + fi; for k=1 upto n: draw A[k]--P[k] withpen pencircle scaled 2bp; draw B[k]--P[k] dashed evenly; @@ -7172,7 +7185,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \mpxcommands{% \setKV[ClesStat]{#1}% } - \begin{mpost} + \begin{mpost}[mpsettings={boolean Grille; Grille:=\useKV[ClesStat]{Grille}; Pasx:=\useKV[ClesStat]{Pasx}; Pasy:=\useKV[ClesStat]{Pasy};}] maxx:=0; maxy:=0; unitex:=#2*cm; @@ -7202,6 +7215,16 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl endfor; enddef; toto(#4); + if Grille: + drawoptions(withcolor 0.75white); + for k=0 step Pasx until ((maxx+1)): + trace (k*unitex,0)--(k*unitex,unitey*(maxy+1)); + endfor; + for k=0 step Pasy until ((maxy+1)): + trace (0,k*unitey)--(unitex*(maxx+1),k*unitey); + endfor; + drawoptions(); + fi; for k=1 upto n: draw A[k]--P[k] withpen pencircle scaled 2bp; draw B[k]--P[k] dashed evenly; @@ -7245,6 +7268,20 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl endfor; enddef; toto(#4); + boolean Grille; + Grille:=\useKV[ClesStat]{Grille}; + Pasx:=\useKV[ClesStat]{Pasx}; + Pasy:=\useKV[ClesStat]{Pasy}; + if Grille: + drawoptions(withcolor 0.75white); + for k=0 step Pasx until ((n+1)): + trace (k*unitex,0)--(k*unitex,unitey*(maxy+1)); + endfor; + for k=0 step Pasy until ((maxy+1)): + trace (0,k*unitey)--(unitex*(n+1),k*unitey); + endfor; + drawoptions(); + fi; for k=0 upto n-1: draw A[k]--P[k] withpen pencircle scaled 2bp; draw B[k]--P[k] dashed evenly; @@ -7258,7 +7295,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \mpxcommands{% \setKV[ClesStat]{#1}% } - \begin{mpost} + \begin{mpost}[mpsettings={boolean Grille; Grille:=\useKV[ClesStat]{Grille}; Pasx:=\useKV[ClesStat]{Pasx}; Pasy:=\useKV[ClesStat]{Pasy};}] maxy:=0; unitex:=#2*cm; unitey:=#3*cm; @@ -7285,6 +7322,16 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl endfor; enddef; toto(#4); + if Grille: + drawoptions(withcolor 0.75white); + for k=0 step Pasx until ((n+1)): + trace (k*unitex,0)--(k*unitex,unitey*(maxy+1)); + endfor; + for k=0 step Pasy until ((maxy+1)): + trace (0,k*unitey)--(unitex*(n+1),k*unitey); + endfor; + drawoptions(); + fi; for k=0 upto n-1: draw A[k]--P[k] withpen pencircle scaled 2bp; draw B[k]--P[k] dashed evenly; @@ -7570,18 +7617,26 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \newcommand\Stat[2][]{% \useKVdefault[ClesStat]% \setKV[ClesStat]{#1}% - \ifboolKV[ClesStat]{Liste}{% - \setsepchar{,}\ignoreemptyitems% - \readlist*\Liste{#2}% - \xdef\foo{}% - \setsepchar[*]{,*/}\ignoreemptyitems% - \xintFor* ##1 in {\xintSeq {1}{\Listelen}}\do{% - \xdef\foo{\foo 1/\Liste[##1],}% - }% - \readlist*\ListeComplete{\foo}% - \setKV[ClesStat]{Qualitatif}% + \ifboolKV[ClesStat]{Representation}{% + \setKV[TraceG]{Xmin=0,Ymin=0}% + \setKV[TraceG]{#1}% + \readlist*\ListePointsPlaces{#2}% + \newtoks\toklistepoint% + \foreachitem\compteur\in\ListePointsPlaces{\expandafter\Updatetoks\compteur\nil}% + \MPPlacePoint[#1]{\the\toklistepoint}% }{% - \ifboolKV[ClesStat]{Sondage}{% + \ifboolKV[ClesStat]{Liste}{% + \setsepchar{,}\ignoreemptyitems% + \readlist*\Liste{#2}% + \xdef\foo{}% + \setsepchar[*]{,*/}\ignoreemptyitems% + \xintFor* ##1 in {\xintSeq {1}{\Listelen}}\do{% + \xdef\foo{\foo 1/\Liste[##1],}% + }% + \readlist*\ListeComplete{\foo}% + \setKV[ClesStat]{Qualitatif}% + }{% + \ifboolKV[ClesStat]{Sondage}{% \setsepchar{,}\ignoreemptyitems% \readlist*\Liste{#2}% % "liste vide" @@ -7750,7 +7805,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \begin{center} \begin{minipage}{0.9\linewidth} \DTLforeach*{mtdb}{\numeroDonnee=Numeric}{\num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\DTLiflastrow{.}{; - }\nbdonnees=\fpeval{\nbdonnees+1}\modulo{\nbdonnees}{\useKV[ClesStat]{Coupure}}\xintifboolexpr{\remainder=0}{\\}{}} + }\nbdonnees=\fpeval{\nbdonnees+1}\modulo{\nbdonnees}{\useKV[ClesStat]{Coupure}}\xintifboolexpr{\remainder==0}{\\}{}} \end{minipage} \end{center}% \medskip% @@ -7890,6 +7945,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }{}% }% }% +} %%% % Radar @@ -8116,7 +8172,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %%% % Equations %%% -\setKVdefault[ClesEquation]{Ecart=0.5,Fleches=false,FlecheDiv=false,Laurent=false,Decomposition=false,Terme=false,Composition=false,Symbole=false,Entier=false,Lettre=x,Solution=false,LettreSol=true,Bloc=false,Simplification=false,CouleurTerme=black,CouleurCompo=black,CouleurSous=red,CouleurSymbole=orange,Verification=false,Nombre=0,Egalite=false,Produit=false,Facteurs=false,Carre=false,Exact=false,Pose=false,Equivalence=false} +\setKVdefault[ClesEquation]{Ecart=0.5,Fleches=false,FlecheDiv=false,Laurent=false,Decomposition=false,Terme=false,Composition=false,Symbole=false,Decimal=false,Entier=false,Lettre=x,Solution=false,LettreSol=true,Bloc=false,Simplification=false,CouleurTerme=black,CouleurCompo=black,CouleurSous=red,CouleurSymbole=orange,Verification=false,Nombre=0,Egalite=false,Produit=false,Facteurs=false,Carre=false,Exact=false,Pose=false,Equivalence=false} \newcommand\rightcomment[4]% {\begin{tikzpicture}[remember picture,overlay] @@ -8285,7 +8341,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \setKV[ClesEquation]{#1}% \xintifboolexpr{#2<0}{% Comme $\num{#2}$ est n\'egatif, alors l'\'equation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ n'a aucune solution.% - }{\xintifboolexpr{#2=0}{% + }{\xintifboolexpr{#2==0}{% L'\'equation $\useKV[ClesEquation]{Lettre}^2=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.% }{% Comme \num{#2} est positif, alors l'\'equation $\useKV[ClesEquation]{Lettre}^2=\num{#2}$ a deux solutions :% @@ -8305,24 +8361,24 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \ifboolKV[ClesEquation]{Equivalence}{% \[\Distri{#2}{#3}{#4}{#5}=0\] \begin{align*}% - &\makebox[0pt]{$\Longleftrightarrow$}&\xintifboolexpr{#3=0}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=0&\quad&\makebox[0pt]{ou}\quad&\xintifboolexpr{#5=0}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=0\\ - &\makebox[0pt]{$\Longleftrightarrow$}&\xintifboolexpr{#3=0}{\xdef\Coeffa{1}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{#2=1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}}&&&\xintifboolexpr{#5=0}{\xdef\Coeffc{1}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{#4=1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffc{#4}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{\Coeffc=1}{}{\num{\Coeffc}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffd}}%\\ - \xintifboolexpr{\Coeffa=1 'and' \Coeffc=1}{}{\\%\ifnum\cmtd>1 - &\makebox[0pt]{$\Longleftrightarrow$}&\xintifboolexpr{\Coeffa=1}{&}{\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}}\xintifboolexpr{\Coeffc=1}{}{&&&\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffd}}{\num{\Coeffc}}} + &\makebox[0pt]{$\Longleftrightarrow$}&\xintifboolexpr{#3==0}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=0&\quad&\makebox[0pt]{ou}\quad&\xintifboolexpr{#5==0}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=0\\ + &\makebox[0pt]{$\Longleftrightarrow$}&\xintifboolexpr{#3==0}{\xdef\Coeffa{1}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{#2==1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}}&&&\xintifboolexpr{#5==0}{\xdef\Coeffc{1}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{#4==1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffc{#4}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{\Coeffc==1}{}{\num{\Coeffc}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffd}}%\\ + \xintifboolexpr{\Coeffa==1 'and' \Coeffc==1}{}{\\%\ifnum\cmtd>1 + &\makebox[0pt]{$\Longleftrightarrow$}&\xintifboolexpr{\Coeffa==1}{&}{\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}}\xintifboolexpr{\Coeffc==1}{}{&&&\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffd}}{\num{\Coeffc}}} % accolade%\\ %%%% \ifboolKV[ClesEquation]{Entier}{% \xdef\TSimp{}% - \SSimpliTest{\Coeffb}{\Coeffa}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#3=0}{\xdef\TSimp{0}}{\xdef\TSimp{1}}}{\xdef\TSimp{0}} - \SSimpliTest{\Coeffd}{\Coeffc}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#5=0}{}{\xdef\TSimp{\fpeval{\TSimp+1}}}}{} - \xintifboolexpr{\TSimp=0}{}{\\ + \SSimpliTest{\Coeffb}{\Coeffa}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#3==0}{\xdef\TSimp{0}}{\xdef\TSimp{1}}}{\xdef\TSimp{0}} + \SSimpliTest{\Coeffd}{\Coeffc}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#5==0}{}{\xdef\TSimp{\fpeval{\TSimp+1}}}}{} + \xintifboolexpr{\TSimp==0}{}{\\ \ifboolKV[ClesEquation]{Simplification}{% - &\makebox[0pt]{$\Longleftrightarrow$}&\SSimpliTest{\Coeffb}{\Coeffa}\xintifboolexpr{\Coeffa=1}{&}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{&}%\\ + &\makebox[0pt]{$\Longleftrightarrow$}&\SSimpliTest{\Coeffb}{\Coeffa}\xintifboolexpr{\Coeffa==1}{&}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{&}%\\ } }{} &&&\ifboolKV[ClesEquation]{Simplification}{% \SSimpliTest{\Coeffd}{\Coeffc}% - \xintifboolexpr{\Coeffc=1}{}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffd}{\Coeffc}}{}%\\ + \xintifboolexpr{\Coeffc==1}{}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffd}{\Coeffc}}{}%\\ } }{} } @@ -8331,25 +8387,25 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \end{align*} }{% \begin{align*} - \xintifboolexpr{#3=0}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=0&&\text{ou}&\xintifboolexpr{#5=0}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=0\\ - \xintifboolexpr{#3=0}{\xdef\Coeffa{1}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{#2=1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa=1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}}&&&\xintifboolexpr{#5=0}{\xdef\Coeffc{1}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{#4=1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffc{#4}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{\Coeffc=1}{}{\num{\Coeffc}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffd}}%\\ - \xintifboolexpr{\Coeffa=1 'and' \Coeffc=1}{}{\\%\ifnum\cmtd>1 - \xintifboolexpr{\Coeffa=1}{&}{\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}}\xintifboolexpr{\Coeffc=1}{}{&&&\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffd}}{\num{\Coeffc}}} + \xintifboolexpr{#3==0}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}&=0&&\text{ou}&\xintifboolexpr{#5==0}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}&=0\\ + \xintifboolexpr{#3==0}{\xdef\Coeffa{1}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{#2==1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffa{#2}\xdef\Coeffb{\fpeval{0-#3}}\xintifboolexpr{\Coeffa==1}{}{\num{\Coeffa}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffb}}&&&\xintifboolexpr{#5==0}{\xdef\Coeffc{1}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{#4==1}{&}{\useKV[ClesEquation]{Lettre}&=0}}{\xdef\Coeffc{#4}\xdef\Coeffd{\fpeval{0-#5}}\xintifboolexpr{\Coeffc==1}{}{\num{\Coeffc}}\useKV[ClesEquation]{Lettre}&=\num{\Coeffd}}%\\ + \xintifboolexpr{\Coeffa==1 'and' \Coeffc==1}{}{\\%\ifnum\cmtd>1 + \xintifboolexpr{\Coeffa==1}{&}{\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffb}}{\num{\Coeffa}}}\xintifboolexpr{\Coeffc==1}{}{&&&\useKV[ClesEquation]{Lettre}&=\frac{\num{\Coeffd}}{\num{\Coeffc}}} %accolade%\\ %%%% \ifboolKV[ClesEquation]{Entier}{% \xdef\TSimp{} - \SSimpliTest{\Coeffb}{\Coeffa}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#3=0}{\xdef\TSimp{0}}{\xdef\TSimp{1}}}{\xdef\TSimp{0}} - \SSimpliTest{\Coeffd}{\Coeffc}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#5=0}{}{\xdef\TSimp{\fpeval{\TSimp+1}}}}{} - \xintifboolexpr{\TSimp=0}{}{\\ + \SSimpliTest{\Coeffb}{\Coeffa}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#3==0}{\xdef\TSimp{0}}{\xdef\TSimp{1}}}{\xdef\TSimp{0}} + \SSimpliTest{\Coeffd}{\Coeffc}\ifthenelse{\boolean{Simplification}}{\xintifboolexpr{#5==0}{}{\xdef\TSimp{\fpeval{\TSimp+1}}}}{} + \xintifboolexpr{\TSimp==0}{}{\\ \ifboolKV[ClesEquation]{Simplification}{% \SSimpliTest{\Coeffb}{\Coeffa} - \xintifboolexpr{\Coeffa=1}{&}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{&}%\\ + \xintifboolexpr{\Coeffa==1}{&}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffb}{\Coeffa}}{&}%\\ } }{} &&&\ifboolKV[ClesEquation]{Simplification}{% \SSimpliTest{\Coeffd}{\Coeffc}% - \xintifboolexpr{\Coeffc=1}{}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffd}{\Coeffc}}{}%\\ + \xintifboolexpr{\Coeffc==1}{}{\ifthenelse{\boolean{Simplification}}{\useKV[ClesEquation]{Lettre}&=\SSimplifie{\Coeffd}{\Coeffc}}{}%\\ } }{} } @@ -8357,24 +8413,24 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl } \end{align*} }% - \ifboolKV[ClesEquation]{Solution}{L'\'equation $\xintifboolexpr{#3=0}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}})}\xintifboolexpr{#5=0}{\times\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}})}=0$ a deux solutions : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$ et \opdiv*{\Coeffd}{\Coeffc}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffd}{\Coeffc}}{\frac{\num{\Coeffd}}{\num{\Coeffc}}}\fi$. + \ifboolKV[ClesEquation]{Solution}{L'\'equation $\xintifboolexpr{#3==0}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}})}\xintifboolexpr{#5==0}{\times\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}}{(\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}})}=0$ a deux solutions : \opdiv*{\Coeffb}{\Coeffa}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffb}{\Coeffa}}{\frac{\num{\Coeffb}}{\num{\Coeffa}}}\fi$ et \opdiv*{\Coeffd}{\Coeffc}{solution}{resteequa}\opcmp{resteequa}{0}$\ifboolKV[ClesEquation]{LettreSol}{\useKV[ClesEquation]{Lettre}=}{}\displaystyle\ifopeq\opexport{solution}{\solution}\num{\solution}\else\ifboolKV[ClesEquation]{Entier}{\SSimplifie{\Coeffd}{\Coeffc}}{\frac{\num{\Coeffd}}{\num{\Coeffc}}}\fi$. }{}% } \newcommand\Verification[5][]{% - \setKV[ClesEquation]{#1} - \xdef\ValeurTest{\useKV[ClesEquation]{Nombre}} - Testons la valeur $\useKV[ClesEquation]{Lettre}=\num{\ValeurTest}$ : + \setKV[ClesEquation]{#1}% + \xdef\ValeurTest{\useKV[ClesEquation]{Nombre}}% + Testons la valeur $\useKV[ClesEquation]{Lettre}=\num{\ValeurTest}$ :% \begin{align*} - \xintifboolexpr{#2=0}{\num{#3}}{\num{#2}\times\xintifboolexpr{\ValeurTest<0}{(\num{\ValeurTest})}{\num{\ValeurTest}}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{\num{#3}}}}&&\xintifboolexpr{#4=0}{\num{#5}}{\num{#4}\times\xintifboolexpr{\ValeurTest<0}{(\num{\ValeurTest})}{\num{\ValeurTest}}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{\num{#5}}}}\\ - \xintifboolexpr{#2=0}{}{\num{\fpeval{#2*\useKV[ClesEquation]{Nombre}}}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{\num{#3}}}}&&\xintifboolexpr{#4=0}{}{\num{\fpeval{#4*\useKV[ClesEquation]{Nombre}}}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{\num{#5}}}}\\ - \xintifboolexpr{#2=0}{}{\num{\fpeval{#2*\useKV[ClesEquation]{Nombre}+#3}}}&&\xintifboolexpr{#4=0}{}{\num{\fpeval{#4*\useKV[ClesEquation]{Nombre}+#5}}} + \xintifboolexpr{#2==0}{\num{#3}}{\num{#2}\times\xintifboolexpr{\ValeurTest<0}{(\num{\ValeurTest})}{\num{\ValeurTest}}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{\num{#3}}}}&&\xintifboolexpr{#4==0}{\num{#5}}{\num{#4}\times\xintifboolexpr{\ValeurTest<0}{(\num{\ValeurTest})}{\num{\ValeurTest}}\xintifboolexpr{#5==0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{\num{#5}}}}\\ + \xintifboolexpr{#2==0}{}{\num{\fpeval{#2*\useKV[ClesEquation]{Nombre}}}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{\num{#3}}}}&&\xintifboolexpr{#4==0}{}{\num{\fpeval{#4*\useKV[ClesEquation]{Nombre}}}\xintifboolexpr{#5==0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{\num{#5}}}}\\ + \xintifboolexpr{#2==0}{}{\num{\fpeval{#2*\useKV[ClesEquation]{Nombre}+#3}}}&&\xintifboolexpr{#4==0}{}{\num{\fpeval{#4*\useKV[ClesEquation]{Nombre}+#5}}} \end{align*} - \xdef\Testa{\fpeval{#2*\useKV[ClesEquation]{Nombre}+#3}}\xdef\Testb{\fpeval{#4*\useKV[ClesEquation]{Nombre}+#5}} + \xdef\Testa{\fpeval{#2*\useKV[ClesEquation]{Nombre}+#3}}\xdef\Testb{\fpeval{#4*\useKV[ClesEquation]{Nombre}+#5}}% \ifboolKV[ClesEquation]{Egalite}{% - Comme \xintifboolexpr{\Testa=\Testb}{$\num{\Testa}=\num{\Testb}$}{$\num{\Testa}\not=\num{\Testb}$}, alors l'\'egalit\'e $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$ \xintifboolexpr{\Testa=\Testb}{ est v\'erifi\'ee }{ n'est pas v\'erifi\'ee } pour $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$.% - }{\xintifboolexpr{\Testa=\Testb}{Comme $\num{\Testa}=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ est bien }{Comme $\num{\Testa}\not=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ n'est pas }une solution de l'\'equation $\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4=0}{\num{#5}}{\xintifboolexpr{#4=1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5=0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$.} -} + Comme \xintifboolexpr{\Testa==\Testb}{$\num{\Testa}=\num{\Testb}$}{$\num{\Testa}\not=\num{\Testb}$}, alors l'\'egalit\'e $\xintifboolexpr{#2==0}{\num{#3}}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4==0}{\num{#5}}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5==0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$ \xintifboolexpr{\Testa==\Testb}{ est v\'erifi\'ee }{ n'est pas v\'erifi\'ee } pour $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$.% + }{\xintifboolexpr{\Testa==\Testb}{Comme $\num{\Testa}=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ est bien }{Comme $\num{\Testa}\not=\num{\Testb}$, alors $\useKV[ClesEquation]{Lettre}=\num{\useKV[ClesEquation]{Nombre}}$ n'est pas }une solution de l'\'equation $\xintifboolexpr{#2==0}{\num{#3}}{\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}=\xintifboolexpr{#4==0}{\num{#5}}{\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5==0}{}{\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}}}$.}% +}% %%% % Proportionnalit\'e @@ -8549,7 +8605,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \xdef\NomCouleurTab{\useKV[ClesPourcentage]{CouleurTab}}% \xdef\NomLargeurTab{\useKV[ClesPourcentage]{Largeur}}% \begin{center} - \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{/#3,#2/100} + \Propor[Math,GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{/\num{#3},\num{#2}/100} \end{center} \FlecheCoefInv{\tiny$\times\num{\fpeval{#2/100}}$}% On obtient une \useKV[ClesPourcentage]{MotReduction} de $\num{\fpeval{#2/100}}\times\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*#2/100}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}. Donc un total de $\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}-\num{\fpeval{#3*#2/100}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*(1-#2/100)}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}.% @@ -8570,7 +8626,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \xdef\NomCouleurTab{\useKV[ClesPourcentage]{CouleurTab}}% \xdef\NomLargeurTab{\useKV[ClesPourcentage]{Largeur}}% \begin{center}% - \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{/#3,#2/100}% + \Propor[Math,GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{/\num{#3},\num{#2}/100}% \end{center}% \FlecheCoefInv{\tiny$\times\num{\fpeval{#2/100}}$}% On obtient une augmentation de $\num{\fpeval{#2/100}}\times\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*#2/100}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}.\\Donc un total de $\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}+\num{\fpeval{#3*#2/100}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*(1+#2/100)}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}.% @@ -8584,7 +8640,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}% \xdef\NomCouleurTab{\useKV[ClesPourcentage]{CouleurTab}}% \xdef\NomLargeurTab{\useKV[ClesPourcentage]{Largeur}}% - \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{#2/#3,/100}% + \Propor[Math,GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{\num{#2}/\num{#3},/100}% \xdef\colorfill{\useKV[ClesPourcentage]{ColorFill}}% \FlechesPB{2}{1}{\scriptsize$\times\num{\fpeval{#3/100}}$}% \FlechesPH{1}{2}{\scriptsize$\div\num{\fpeval{#3/100}}$}% @@ -8887,8 +8943,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \newtoks\toklisteratio \def\UpdateRatio#1\nil{\addtotok\toklisteratio{#1,}} -\def\updateratiotoks#1/#2/#3\nil{\addtotok\tabtoksa{&\num{#2}}\addtotok\tabtoksb{&\num{#3}}\addtotok\tabtoksc{}} - +\def\updateratiotoks#1/#2/#3\nil{\addtotok\tabtoksa{&\ifx\bla#2\bla\else\num{#2}\fi}\addtotok\tabtoksb{&\ifx\bla#3\bla\else\num{#3}\fi}\addtotok\tabtoksc{}} \def\buildtabratio{% \tabtoksa{}\tabtoksb{}\tabtoksc{}% @@ -9006,7 +9061,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \newcommand\Redaction[4][]{% \ifboolKV[ClesDroites]{Remediation}{% - \xintifboolexpr{\useKV[ClesDroites]{Num}=1}{% + \xintifboolexpr{\useKV[ClesDroites]{Num}==1}{% \ifboolKV[ClesDroites]{CitePropriete}{% Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.% @@ -9016,7 +9071,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }{% Comme les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont toutes les deux parall\`eles \`a la m\^eme droite $(\hbox to2em{\dotfill})$, alors les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont parall\`eles.% } - }{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{% + }{\xintifboolexpr{\useKV[ClesDroites]{Num}==2}{% \ifboolKV[ClesDroites]{CitePropriete}{% Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires. Les droites $(\hbox to2em{\dotfill})$ et $(\hbox to2em{\dotfill})$ sont perpendiculaires.% @@ -9039,7 +9094,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl } }% }{% - \xintifboolexpr{\useKV[ClesDroites]{Num}=1}{% + \xintifboolexpr{\useKV[ClesDroites]{Num}==1}{% \ifboolKV[ClesDroites]{CitePropriete}{% Les droites $(#2)$ et $(#4)$ sont parall\`eles. Les droites $(#3)$ et $(#4)$ sont parall\`eles.% @@ -9049,7 +9104,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }{% Comme les droites $(#2)$ et $(#3)$ sont toutes les deux parall\`eles \`a la m\^eme droite $(#4)$, alors les droites $(#2)$ et $(#3)$ sont parall\`eles. } - }{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{% + }{\xintifboolexpr{\useKV[ClesDroites]{Num}==2}{% \ifboolKV[ClesDroites]{CitePropriete}{% Les droites $(#2)$ et $(#4)$ sont perpendiculaires. Les droites $(#3)$ et $(#4)$ sont perpendiculaires.% @@ -9077,7 +9132,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \newcommand\Brouillon[4][]{% \setlength{\abovedisplayskip}{0pt} \ifboolKV[ClesDroites]{Remediation}{% - \xintifboolexpr{\useKV[ClesDroites]{Num}=1}{% + \xintifboolexpr{\useKV[ClesDroites]{Num}==1}{% \[\left. \begin{array}{l} (\hbox to2em{\dotfill})//(\hbox to2em{\dotfill})\\ @@ -9086,7 +9141,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \end{array} \right\}(\hbox to2em{\dotfill})//(\hbox to2em{\dotfill}) \] - }{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{% + }{\xintifboolexpr{\useKV[ClesDroites]{Num}==2}{% \[\left. \begin{array}{l} (\hbox to2em{\dotfill})\perp(\hbox to2em{\dotfill})\\ @@ -9107,7 +9162,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl } } }{ - \xintifboolexpr{\useKV[ClesDroites]{Num}=1}{% + \xintifboolexpr{\useKV[ClesDroites]{Num}==1}{% \[\left. \begin{array}{l} (#2)//(#4)\\ @@ -9116,7 +9171,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \end{array} \right\}(#2)//(#3) \] - }{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{% + }{\xintifboolexpr{\useKV[ClesDroites]{Num}==2}{% \[\left. \begin{array}{l} (#2)\perp(#4)\\ @@ -9314,9 +9369,9 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \newcommand\FaireFigure[4][]{% \setlength{\abovedisplayskip}{0pt} - \xintifboolexpr{\useKV[ClesDroites]{Num}=1}{% + \xintifboolexpr{\useKV[ClesDroites]{Num}==1}{% \MPFigureDroite{2}{3}% - }{\xintifboolexpr{\useKV[ClesDroites]{Num}=2}{% + }{\xintifboolexpr{\useKV[ClesDroites]{Num}==2}{% \MPFigureDroite{2}{4}% }{% \MPFigureDroite{3}{4}% @@ -9357,18 +9412,18 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \setKV[ClesAffine]{#1}% \ifboolKV[ClesAffine]{Image}{% \ifboolKV[ClesAffine]{Ligne}{% - \ensuremath{\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}\times\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}=\num{\fpeval{#2*#3}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}\xintifboolexpr{#4=0}{}{=\num{\fpeval{#2*#3+#4}}}}% + \ensuremath{\useKV[ClesAffine]{Nom}(\num{#2})=\num{#3}\times\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}=\num{\fpeval{#2*#3}}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}\xintifboolexpr{#4==0}{}{=\num{\fpeval{#2*#3+#4}}}}% }{% \ifboolKV[ClesAffine]{ProgCalcul}{% \begin{align*} - \useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}}\\ - \useKV[ClesAffine]{Nom}&:\num{#2}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{\fpeval{#3*#2}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{\fpeval{#3*#2+#4}}} + \useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}}\\ + \useKV[ClesAffine]{Nom}&:\num{#2}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{\fpeval{#3*#2}}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{\fpeval{#3*#2+#4}}} \end{align*} }{% \begin{align*} - \useKV[ClesAffine]{Nom}(\num{#2})&=\num{#3}\times\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}\\ - \useKV[ClesAffine]{Nom}(\num{#2})&=\num{\fpeval{#3*#2}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}%\\ - \xintifboolexpr{#4=0}{}{\\ + \useKV[ClesAffine]{Nom}(\num{#2})&=\num{#3}\times\xintifboolexpr{#2<0}{(\num{#2})}{\num{#2}}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}\\ + \useKV[ClesAffine]{Nom}(\num{#2})&=\num{\fpeval{#3*#2}}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}%\\ + \xintifboolexpr{#4==0}{}{\\ \useKV[ClesAffine]{Nom}(\num{#2})&=\num{\fpeval{#3*#2+#4}}%\\ } \end{align*} @@ -9378,11 +9433,11 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \ifboolKV[ClesAffine]{ProgCalcul}{% La fonction affine $\useKV[ClesAffine]{Nom}$ est d\'efinie par : \begin{align*} - \useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}} + \useKV[ClesAffine]{Nom}&:\useKV[ClesAffine]{Variable}\stackrel{\times\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longrightarrow}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\stackrel{+\num{#4}}{\longrightarrow}}{\stackrel{\num{#4}}{\longrightarrow}}\num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{\num{#4}}}} \end{align*} Nous cherchons le nombre $\useKV[ClesAffine]{Variable}$ tel que son image par la fonction $\useKV[ClesAffine]{Nom}$ soit $\num{#2}$. Donc on obtient : \begin{align*} - \useKV[ClesAffine]{Nom}&:\frac{\num{\fpeval{#2-#4}}}{\num{#3}}\stackrel{\div\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longleftarrow}\num{\fpeval{#2-#4}}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{\stackrel{-\num{#4}}{\longleftarrow}}{\stackrel{+\num{\fpeval{0-#4}}}{\longleftarrow}}\num{#2}} + \useKV[ClesAffine]{Nom}&:\frac{\num{\fpeval{#2-#4}}}{\num{#3}}\stackrel{\div\xintifboolexpr{#3<0}{(\num{#3})}{\num{#3}}}{\longleftarrow}\num{\fpeval{#2-#4}}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\stackrel{-\num{#4}}{\longleftarrow}}{\stackrel{+\num{\fpeval{0-#4}}}{\longleftarrow}}\num{#2}} \end{align*} }{% On cherche l'ant\'ec\'edent de $\num{#2}$ par la fonction @@ -9390,12 +9445,12 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl $\useKV[ClesAffine]{Variable}$ tel que $\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\num{#2}$. Or, la fonction $\useKV[ClesAffine]{Nom}$ est d\'efinie par : \[% - \useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#3=0}{}{\num{#3}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#3=0}{\num{#4}}{\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}} + \useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#3==0}{}{\num{#3}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#3==0}{\num{#4}}{\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}} \] Par cons\'equent, on a : \begin{align*} - \num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4=0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}&=\num{#2}\\ - \xintifboolexpr{#4=0}{\useKV[ClesAffine]{Variable}\uppercase{&}=\frac{\num{#2}}{\num{#3}}%\\ + \num{#3}\useKV[ClesAffine]{Variable}\xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{+\num{#4}}{-\num{\fpeval{0-#4}}}}&=\num{#2}\\ + \xintifboolexpr{#4==0}{\useKV[ClesAffine]{Variable}\uppercase{&}=\frac{\num{#2}}{\num{#3}}%\\ }{\num{#3}\useKV[ClesAffine]{Variable}&=\num{\fpeval{#2-#4}}\\ \useKV[ClesAffine]{Variable}&=\frac{\num{\fpeval{#2-#4}}}{\num{#3}}%\\ } @@ -9420,7 +9475,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \end{align*} \xdef\OrdOrigine{\fpeval{#3-(#3-#5)*#2/(#2-#4)}} La fonction affine $\useKV[ClesAffine]{Nom}$ cherch\'ee est : - \[\useKV[ClesAffine]{Nom}:\useKV[ClesAffine]{Variable}\mapsto\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}\xintifboolexpr{\OrdOrigine=0}{}{\xintifboolexpr{\OrdOrigine>0}{+\num{\OrdOrigine}}{-\num{\fpeval{0-\OrdOrigine}}}}\] + \[\useKV[ClesAffine]{Nom}:\useKV[ClesAffine]{Variable}\mapsto\SSimplifie{\fpeval{#3-#5}}{\fpeval{#2-#4}}\useKV[ClesAffine]{Variable}\xintifboolexpr{\OrdOrigine==0}{}{\xintifboolexpr{\OrdOrigine>0}{+\num{\OrdOrigine}}{-\num{\fpeval{0-\OrdOrigine}}}}\] }{% % }% @@ -9433,17 +9488,17 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \MPFonctionAffine{\useKV[ClesAffine]{Unitex}}{\useKV[ClesAffine]{Unitey}}{#2}{#3}{#4}{#5}{""}}{}% }{}% \ifboolKV[ClesAffine]{Redaction}{% - \xintifboolexpr{#2=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ + \xintifboolexpr{#2==0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction constante, alors sa repr\'esentation graphique est une droite parall\`ele \`a l'axe des abscisses passant par le point de coordonn\'ees $(0;\num{#3})$.}% - {\xintifboolexpr{#3=0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction lin\'eaire, alors sa repr\'esentation graphique est une droite passant par l'origine du rep\`ere.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$. + {\xintifboolexpr{#3==0}{Comme la fonction $\useKV[ClesAffine]{Nom}$ est une fonction lin\'eaire, alors sa repr\'esentation graphique est une droite passant par l'origine du rep\`ere.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomFonctionA{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonctionA,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$. }{% Comme $\useKV[ClesAffine]{Nom}$ est une fonction affine, alors sa repr\'esentation graphique est une droite.\\Je choisis $\useKV[ClesAffine]{Variable}=\num{#4}$. Son image est \xdef\NomVariable{\useKV[ClesAffine]{Variable}}\xdef\NomFonction{\useKV[ClesAffine]{Nom}}\FonctionAffine[Nom=\NomFonction,Image,Ligne]{#4}{#2}{#3}{#5}. On place le point de coordonn\'ees $(\num{#4};\num{\fpeval{#2*#4+#3}})$.\\Je choisis \setKV[ClesAffine]{Variable=\NomVariable}$\useKV[ClesAffine]{Variable}=\num{#5}$. Son image est \FonctionAffine[Nom=\NomFonction,Image,Ligne]{#5}{#2}{#3}{#4}. On place le point de coordonn\'ees $(\num{#5};\num{\fpeval{#2*#5+#3}})$.% }% }% }% {}% - \ifboolKV[ClesAffine]{Ecriture}{\ensuremath{\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#2=0}{}{\num{#2}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}}}{}% - \ifboolKV[ClesAffine]{Definition}{\ensuremath{\useKV[ClesAffine]{Nom}:\useKV[ClesAffine]{Variable}\mapsto\xintifboolexpr{#2=0}{}{\num{#2}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#2=0}{\num{#3}}{\xintifboolexpr{#3=0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}}}{}% + \ifboolKV[ClesAffine]{Ecriture}{\ensuremath{\useKV[ClesAffine]{Nom}(\useKV[ClesAffine]{Variable})=\xintifboolexpr{#2==0}{}{\num{#2}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#2==0}{\num{#3}}{\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}}}{}% + \ifboolKV[ClesAffine]{Definition}{\ensuremath{\useKV[ClesAffine]{Nom}:\useKV[ClesAffine]{Variable}\mapsto\xintifboolexpr{#2==0}{}{\num{#2}\useKV[ClesAffine]{Variable}}\xintifboolexpr{#2==0}{\num{#3}}{\xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}}}}}{}% }% \def\MPFonctionAffine#1#2#3#4#5#6#7{% @@ -9708,7 +9763,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %%% % Fonction %%% -\setKVdefault[ClesFonction]{Nom=f,Variable=x,Calcul=x,Tableau=false,Largeur=5mm,Ecriture=false,Definition=false,Points=false,Tangentes=false,PasX=1,PasY=1,UniteX=1,UniteY=1,Prolonge=false} +\setKVdefault[ClesFonction]{Nom=f,Variable=x,Calcul=x,Tableau=false,Largeur=5mm,Ecriture=false,Definition=false,Points=false,Tangentes=false,PasX=1,PasY=1,UniteX=1,UniteY=1,Prolonge=false,Trace=false} \newtoks\toklistePtsFn%pour la discipline @@ -10037,48 +10092,54 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \fi } -\newcommand{\Fonction}[2][]{% +\newcommand\Fonction[2][]{% \useKVdefault[ClesFonction] \setKV[ClesFonction]{#1} - \ifboolKV[ClesFonction]{Points}{% - \toklistePtsFn{}% - % \setsepchar[*]{,*/}%\ignoreemptyitems% - \setsepchar[*]{§*/}%\ignoreemptyitems% - \readlist*\ListePoints{#2}% - \ifboolKV[ClesFonction]{Tangentes}{% - \foreachitem\compteur\in\ListePoints{% - \expandafter\UpdatePtsFn\compteur\nil% - }% - \ifboolKV[ClesFonction]{Prolonge}{% - \MPCourbe{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{1}% + \ifboolKV[ClesFonction]{Trace}{% + \useKVdefault[TraceG]% + \setKV[TraceG]{#1}% + \MPTraceFonction[#1]{\useKV[ClesFonction]{Calcul}}% + }{% + \ifboolKV[ClesFonction]{Points}{% + \toklistePtsFn{}% + % \setsepchar[*]{,*/}%\ignoreemptyitems% + \setsepchar[*]{§*/}%\ignoreemptyitems% + \readlist*\ListePoints{#2}% + \ifboolKV[ClesFonction]{Tangentes}{% + \foreachitem\compteur\in\ListePoints{% + \expandafter\UpdatePtsFn\compteur\nil% + }% + \ifboolKV[ClesFonction]{Prolonge}{% + \MPCourbe{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{1}% + }{% + \MPCourbe{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{0}% + }% }{% - \MPCourbe{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{0}% + \foreachitem\compteur\in\ListePoints{% + \expandafter\UpdatePtsFN\compteur\nil% + }% + \ifboolKV[ClesFonction]{Prolonge}{% + \MPCourbePoints{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{1}% + }{% + \MPCourbePoints{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{0}% + }% }% }{% - \foreachitem\compteur\in\ListePoints{% - \expandafter\UpdatePtsFN\compteur\nil% - }% - \ifboolKV[ClesFonction]{Prolonge}{% - \MPCourbePoints{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{1}% - }{% - \MPCourbePoints{\the\toklistePtsFn}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}{0}% - }% + \ignoreemptyitems% + \readlist*\ListeFonction{#2} + \StrSubstitute{\useKV[ClesFonction]{Calcul}}{\useKV[ClesFonction]{Variable}}{\i}[\temp]% + \StrSubstitute{\useKV[ClesFonction]{Calcul}}{**}{^}[\tempa]% + \StrSubstitute{\tempa}{*}{}[\tempab]% + \ifboolKV[ClesFonction]{Ecriture}{% + \ensuremath{\useKV[ClesFonction]{Nom}(\useKV[ClesFonction]{Variable})=\tempab} + }{}% + \ifboolKV[ClesFonction]{Definition}{% + \ensuremath{\useKV[ClesFonction]{Nom}:\useKV[ClesFonction]{Variable}\mapsto\tempab} + }{}% + \ifboolKV[ClesFonction]{Tableau}{% + \buildtabfonction% + }{}% }% - }{% - \ignoreemptyitems% - \readlist*\ListeFonction{#2} - \StrSubstitute{\useKV[ClesFonction]{Calcul}}{\useKV[ClesFonction]{Variable}}{\i}[\temp]% - \StrSubstitute{\useKV[ClesFonction]{Calcul}}{**}{^}[\tempa]% - \StrSubstitute{\tempa}{*}{}[\tempab]% - \ifboolKV[ClesFonction]{Ecriture}{% - \ensuremath{\useKV[ClesFonction]{Nom}(\useKV[ClesFonction]{Variable})=\tempab} - }{}% - \ifboolKV[ClesFonction]{Definition}{% - \ensuremath{\useKV[ClesFonction]{Nom}:\useKV[ClesFonction]{Variable}\mapsto\tempab} - }{}% - \ifboolKV[ClesFonction]{Tableau}{% - \buildtabfonction% - }{}% }% }% @@ -10094,6 +10155,415 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \] } +%%% +% Diff\'erentes représentations graphiques +%%% +\setKVdefault[TraceG]{Grille=false,Graduations=false,PasGrilleX=1,PasGrilleY=1,Xmin=-5.5,Xmax=5.5,Xstep=1,Ymin=-5.5,Ymax=5.5,Ystep=1,Bornea=-5.5,Borneb=5.5,LabelX={},LabelY={},LabelC=0.5,NomCourbe={},Origine={(5.5,5.5)},Fonction=false,Points=false,Invisible=false,CouleurPoint=red,CouleurTrace=black,Relie=false,RelieSegment=false} + +\newcommand\TraceGraphique[2][]{% + \useKVdefault[TraceG]% + \setKV[TraceG]{#1}% + \ifboolKV[TraceG]{Fonction}{% + \MPTraceFonction[#1]{#2}% + }{% + \setKV[TraceG]{Xmin=0,Ymin=0} + \setKV[TraceG]{#1}% + \readlist*\ListePointsPlaces{#2}% + \newtoks\toklistepoint% + \foreachitem\compteur\in\ListePointsPlaces{\expandafter\Updatetoks\compteur\nil}% + \MPPlacePoint[#1]{\the\toklistepoint} + }% +}% + +\newcommand\MPPlacePoint[2][]{% + \ifluatex + \mplibforcehmode + \begin{mplibcode} + xmin=\useKV[TraceG]{Xmin}; + xmax=\useKV[TraceG]{Xmax}; + ymin=\useKV[TraceG]{Ymin}; + ymax=\useKV[TraceG]{Ymax}; + pasx=\useKV[TraceG]{Xstep}; + pasy=\useKV[TraceG]{Ystep}; + x.u=1cm/\useKV[TraceG]{Xstep}; + y.u=1cm/\useKV[TraceG]{Ystep}; + grillex=\useKV[TraceG]{PasGrilleX}; + grilley=\useKV[TraceG]{PasGrilleY}; + pos=\useKV[TraceG]{LabelC}; + + color colorpoint,colortrace; + colorpoint=\useKV[TraceG]{CouleurPoint}; + colortrace=\useKV[TraceG]{CouleurTrace}; + boolean Grille; + Grille=\useKV[TraceG]{Grille}; + + boolean Graduations; + Graduations=\useKV[TraceG]{Graduations}; + + boolean Relie; + Relie=\useKV[TraceG]{Relie}; + + boolean RelieSegment; + RelieSegment=\useKV[TraceG]{RelieSegment}; + + boolean Invisible; + Invisible=\useKV[TraceG]{Invisible}; + + pair Origine; + Origine=(0,0); + + if Grille: + drawoptions(withcolor 0.75white); + for k=0 step grillex until (xmax-xmin): + trace (k*x.u,ypart(Origine))--(x.u*k,y.u*(ymax-ymin)); + endfor; + for k=0 step grilley until (ymax-ymin): + trace (xpart(Origine),k*y.u)--(x.u*(xmax-xmin),y.u*k); + endfor; + drawoptions(); + fi; + + if Graduations: + for k=0 step grillex until (xmax-xmin): + trace ((0,-0.5mm)--(0,0.5mm)) shifted ((k*x.u,0) shifted Origine) withpen pencircle scaled1.25; + label.bot(TEX("\num{"&decimal(xmin+k)&"}"),(k*x.u,0) shifted Origine); + endfor; + label.ulft(TEX("\num{"&decimal(ymin)&"}"),(0,0) shifted Origine); + for k=grilley step grilley until (ymax-ymin): + trace ((-0.5mm,0)--(0.5mm,0)) shifted ((0,k*y.u) shifted Origine) withpen pencircle scaled1.25; + label.lft(TEX("\num{"&decimal(ymin+k)&"}"),(0,k*y.u) shifted Origine); + endfor; + fi; + drawoptions(withpen pencircle scaled1.5); + drawarrow Origine--(xpart(Origine),y.u*(ymax-ymin)); + drawarrow Origine--((xmax-xmin)*x.u,ypart(Origine)); + drawoptions(); + + % On relie éventuellement les points + if Relie: + pair N[]; + nbpoint=0; + for p_=#2: + nbpoint:=nbpoint+1; + N[nbpoint]=(x.u*(xpart(p_)-xmin),y.u*(ypart(p_)-ymin)); + endfor; + draw N[1] for k=2 upto nbpoint: + ..N[k] + endfor withcolor colortrace; + fi; + if RelieSegment: + pair N[]; + nbpoint=0; + for p_=#2: + nbpoint:=nbpoint+1; + N[nbpoint]=(x.u*(xpart(p_)-xmin),y.u*(ypart(p_)-ymin)); + endfor; + draw N[1] for k=2 upto nbpoint: + --N[k] + endfor withcolor colortrace; + fi; + + % On place les points + if Invisible=false: + drawoptions(withcolor colorpoint); + for p_=#2: + dotlabel("",(x.u*(xpart(p_)-xmin),y.u*(ypart(p_)-ymin))); + endfor; + drawoptions(); + fi; + %on labelise les axes + label.urt(btex \useKV[TraceG]{LabelX} etex,(x.u*(xmax-xmin),ypart(Origine))); + label.urt(btex \useKV[TraceG]{LabelY} etex,(xpart(Origine),y.u*(ymax-ymin))); + \end{mplibcode} + \else + \mpxcommands{% + \setKV[TraceG]{#1} + } + \begin{mpost}[mpsettings={xmin=\useKV[TraceG]{Xmin};xmax=\useKV[TraceG]{Xmax};ymin=\useKV[TraceG]{Ymin};ymax=\useKV[TraceG]{Ymax};pasx=\useKV[TraceG]{Xstep};pasy=\useKV[TraceG]{Ystep};xu=1cm/\useKV[TraceG]{Xstep};yu=1cm/\useKV[TraceG]{Ystep};grillex=\useKV[TraceG]{PasGrilleX};grilley=\useKV[TraceG]{PasGrilleY};pos=\useKV[TraceG]{LabelC};color colorpoint,colortrace;colorpoint=\useKV[TraceG]{CouleurPoint};colortrace=\useKV[TraceG]{CouleurTrace};boolean Grille;Grille=\useKV[TraceG]{Grille};boolean Graduations;Graduations=\useKV[TraceG]{Graduations};boolean Relie;Relie=\useKV[TraceG]{Relie};boolean RelieSegment;RelieSegment=\useKV[TraceG]{RelieSegment};boolean Invisible;Invisible=\useKV[TraceG]{Invisible};}] + pair Origine; + Origine=(0,0); + + if Grille: + drawoptions(withcolor 0.75white); + for k=0 step grillex until (xmax-xmin): + trace (k*xu,ypart(Origine))--(xu*k,yu*(ymax-ymin)); + endfor; + for k=0 step grilley until (ymax-ymin): + trace (xpart(Origine),k*yu)--(xu*(xmax-xmin),yu*k); + endfor; + drawoptions(); + fi; + + if Graduations: + for k=0 step grillex until (xmax-xmin): + trace ((0,-0.5mm)--(0,0.5mm)) shifted ((k*xu,0) shifted Origine) withpen pencircle scaled1.25; + label.bot(LATEX("\num{"&decimal(xmin+k)&"}"),(k*xu,0) shifted Origine); + endfor; + label.ulft(LATEX("\num{"&decimal(ymin)&"}"),(0,0) shifted Origine); + for k=grilley step grilley until (ymax-ymin): + trace ((-0.5mm,0)--(0.5mm,0)) shifted ((0,k*yu) shifted Origine) withpen pencircle scaled1.25; + label.lft(LATEX("\num{"&decimal(ymin+k)&"}"),(0,k*yu) shifted Origine); + endfor; + fi; + drawoptions(withpen pencircle scaled1.5); + drawarrow Origine--(xpart(Origine),yu*(ymax-ymin)); + drawarrow Origine--((xmax-xmin)*xu,ypart(Origine)); + drawoptions(); + + % On relie éventuellement les points + if Relie: + pair N[]; + nbpoint=0; + for p_=#2: + nbpoint:=nbpoint+1; + N[nbpoint]=(xu*(xpart(p_)-xmin),yu*(ypart(p_)-ymin)); + endfor; + draw N[1] for k=2 upto nbpoint: + ..N[k] + endfor withcolor colortrace; + fi; + if RelieSegment: + pair N[]; + nbpoint=0; + for p_=#2: + nbpoint:=nbpoint+1; + N[nbpoint]=(xu*(xpart(p_)-xmin),yu*(ypart(p_)-ymin)); + endfor; + draw N[1] for k=2 upto nbpoint: + --N[k] + endfor withcolor colortrace; + fi; + + % On place les points + if Invisible=false: + drawoptions(withcolor colorpoint); + for p_=#2: + dotlabel("",(xu*(xpart(p_)-xmin),yu*(ypart(p_)-ymin))); + endfor; + drawoptions(); + fi; + %on labelise les axes + label.urt(btex \unexpanded{\useKV[TraceG]{LabelX}} etex,(xu*(xmax-xmin),ypart(Origine))); + label.urt(btex \unexpanded{\useKV[TraceG]{LabelY}} etex,(xpart(Origine),yu*(ymax-ymin))); + \end{mpost} + \fi +} + +\newcommand\MPTraceFonction[2][]{% + \ifluatex + \mplibforcehmode + \begin{mplibcode} + borneinf=\useKV[TraceG]{Bornea}; + bornesup=\useKV[TraceG]{Borneb}; + xmin=\useKV[TraceG]{Xmin}; + xmax=\useKV[TraceG]{Xmax}; + ymin=\useKV[TraceG]{Ymin}; + ymax=\useKV[TraceG]{Ymax}; + pasx=\useKV[TraceG]{Xstep}; + pasy=\useKV[TraceG]{Ystep}; + x.u=1cm/\useKV[TraceG]{Xstep}; + y.u=1cm/\useKV[TraceG]{Ystep}; + grillex=\useKV[TraceG]{PasGrilleX}; + grilley=\useKV[TraceG]{PasGrilleY}; + pos=\useKV[TraceG]{LabelC}; + + color colortrace; + colortrace=\useKV[TraceG]{CouleurTrace}; + + pair Origine; + Origine=(xmin,ymin)+\useKV[TraceG]{Origine}; + + boolean Grille; + Grille=\useKV[TraceG]{Grille}; + + boolean Graduations; + Graduations=\useKV[TraceG]{Graduations}; + + vardef sin(expr t) = sind(c*t) enddef; + + vardef cos(expr t) = cosd(c*t) enddef; + + vardef tan(expr t) = sin(t)/cos(t) enddef; + + vardef exp(expr t) = e**t enddef; + + vardef ch(expr x)=(exp(x)+exp(-x))/2 enddef; + + vardef sh(expr x)=(exp(x)-exp(-x))/2 enddef; + + vardef ln(expr t) = mlog(t)/256 enddef; + + vardef arcsin(expr x)=%Définition mathématique en radian + pi*angle((sqrt(1-x**2),x))/180 + enddef; + + vardef arccos(expr x)=%Définition mathématique en radian + pi*angle((x,sqrt(1-x**2)))/180 + enddef; + + path Cb[]; + + vardef courbe[](expr a,b,nb)(text texte)= + path Courbe; + for i:=0 upto nb : + x@[i]:=(a+i*(b-a)/nb); + x:=x@[i]; + y@[i]:=texte; + endfor ; + Cb@:=(x@.0*x.u,y@.0*y.u) + for i:=1 upto nb : + ..(x@[i]*x.u,y@[i]*y.u) + endfor; + Cb@:=Cb@ shifted (Origine*cm); + Courbe=Cb@; + Courbe + enddef; + + if Grille: + drawoptions(withcolor 0.75white); + for k=xpart(Origine) step grillex until xmax: + trace u*(k,ymin)--u*(k,ymax); + endfor; + for k=xpart(Origine) step -grillex until xmin: + trace u*(k,ymin)--u*(k,ymax); + endfor; + for k=ypart(Origine) step grilley until ymax: + trace u*(xmin,k)--u*(xmax,k); + endfor; + for k=ypart(Origine) step -grilley until ymin: + trace u*(xmin,k)--u*(xmax,k); + endfor; + drawoptions(); + fi; + if Graduations: + for k=1 upto xmax/grillex: + dotlabel.bot(TEX("\num{"&decimal(k)&"}"),(k*x.u+xpart(Origine*cm),ypart(Origine*cm))); + endfor; + for k=-1 downto xmin/grillex: + dotlabel.bot(TEX("\num{"&decimal(k)&"}"),(k*x.u+xpart(Origine*cm),ypart(Origine*cm))); + endfor; + for k=1 upto ymax/grilley: + dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(xpart(Origine*cm),k*y.u+ypart(Origine*cm))); + endfor; + for k=-1 downto ymin/grilley: + dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(xpart(Origine*cm),k*y.u+ypart(Origine*cm))); + endfor; + fi; + drawoptions(withpen pencircle scaled1.5); + drawarrow (u*(0,ymin)--u*(0,ymax)) shifted (u*(xpart(Origine),0)); + drawarrow (u*(xmin,0)--u*(xmax,0)) shifted (u*(0,ypart(Origine))); + drawoptions(); + draw courbe1(borneinf,bornesup,100)(#2) withcolor colortrace; + % labelisation + numeric t; + t=pos*length Cb1; + pair PT,Tangente; + PT:=point (pos*length Cb1) of Cb1; + Tangente:=unitvector(direction t of Cb1); + label(btex \useKV[TraceG]{NomCourbe} etex rotated angle(Tangente),PT+2mm*(Tangente rotated 90)); + % fin labelisation + clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax)); + label.rt(btex \useKV[TraceG]{LabelX} etex,u*(xmax,ypart(Origine))); + label.top(btex \useKV[TraceG]{LabelY} etex,u*(xpart(Origine),ymax)); + \end{mplibcode} + \else + \mpxcommands{% + \setKV[TraceG]{#1} + } + \begin{mpost}[mpsettings={borneinf=\useKV[TraceG]{Bornea};bornesup=\useKV[TraceG]{Borneb};xmin=\useKV[TraceG]{Xmin};xmax=\useKV[TraceG]{Xmax};ymin=\useKV[TraceG]{Ymin};ymax=\useKV[TraceG]{Ymax};pasx=\useKV[TraceG]{Xstep};pasy=\useKV[TraceG]{Ystep};xu=1cm/\useKV[TraceG]{Xstep};yu=1cm/\useKV[TraceG]{Ystep};grillex=\useKV[TraceG]{PasGrilleX};grilley=\useKV[TraceG]{PasGrilleY};pos=\useKV[TraceG]{LabelC};color colortrace;colortrace=\useKV[TraceG]{CouleurTrace};boolean Grille;Grille=\useKV[TraceG]{Grille};boolean Graduations;Graduations=\useKV[TraceG]{Graduations};}] + pair Origine; + Origine=(xmin,ymin)+\useKV[TraceG]{Origine}; + + vardef sin(expr t) = sind(c*t) enddef; + + vardef cos(expr t) = cosd(c*t) enddef; + + vardef tan(expr t) = sin(t)/cos(t) enddef; + + vardef exp(expr t) = e**t enddef; + + vardef ch(expr x)=(exp(x)+exp(-x))/2 enddef; + + vardef sh(expr x)=(exp(x)-exp(-x))/2 enddef; + + vardef ln(expr t) = mlog(t)/256 enddef; + + vardef arcsin(expr x)=%Définition mathématique en radian + pi*angle((sqrt(1-x**2),x))/180 + enddef; + + vardef arccos(expr x)=%Définition mathématique en radian + pi*angle((x,sqrt(1-x**2)))/180 + enddef; + + path Cb[]; + + vardef courbe[](expr a,b,nb)(text texte)= + path Courbe; + for i:=0 upto nb : + x@[i]:=(a+i*(b-a)/nb); + x:=x@[i]; + y@[i]:=texte; + endfor ; + Cb@:=(x@.0*xu,y@.0*yu) + for i:=1 upto nb : + ..(x@[i]*xu,y@[i]*yu) + endfor; + Cb@:=Cb@ shifted (Origine*cm); + Courbe=Cb@; + Courbe + enddef; + + if Grille: + drawoptions(withcolor 0.75white); + for k=xpart(Origine) step grillex until xmax: + trace u*(k,ymin)--u*(k,ymax); + endfor; + for k=xpart(Origine) step -grillex until xmin: + trace u*(k,ymin)--u*(k,ymax); + endfor; + for k=ypart(Origine) step grilley until ymax: + trace u*(xmin,k)--u*(xmax,k); + endfor; + for k=ypart(Origine) step -grilley until ymin: + trace u*(xmin,k)--u*(xmax,k); + endfor; + drawoptions(); + fi; + if Graduations: + for k=1 upto xmax/grillex: + dotlabel.bot(LATEX("\num{"&decimal(k)&"}"),(k*xu+xpart(Origine*cm),ypart(Origine*cm))); + endfor; + for k=-1 downto xmin/grillex: + dotlabel.bot(LATEX("\num{"&decimal(k)&"}"),(k*xu+xpart(Origine*cm),ypart(Origine*cm))); + endfor; + for k=1 upto ymax/grilley: + dotlabel.lft(LATEX("\num{"&decimal(k)&"}"),(xpart(Origine*cm),k*yu+ypart(Origine*cm))); + endfor; + for k=-1 downto ymin/grilley: + dotlabel.lft(LATEX("\num{"&decimal(k)&"}"),(xpart(Origine*cm),k*yu+ypart(Origine*cm))); + endfor; + fi; + drawoptions(withpen pencircle scaled1.5); + drawarrow (u*(0,ymin)--u*(0,ymax)) shifted (u*(xpart(Origine),0)); + drawarrow (u*(xmin,0)--u*(xmax,0)) shifted (u*(0,ypart(Origine))); + drawoptions(); + draw courbe1(borneinf,bornesup,100)(#2) withcolor colortrace; +% % labelisation + numeric t; + t=pos*length Cb1; + pair PT,Tangente; + PT:=point (pos*length Cb1) of Cb1; + Tangente:=unitvector(direction t of Cb1); + label(btex \noexpand\useKV[TraceG]{NomCourbe} etex rotated angle(Tangente),PT+2mm*(Tangente rotated 90)); +% % fin labelisation + clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax)); + label.rt(btex \useKV[TraceG]{LabelX} etex,u*(xmax,ypart(Origine))); + label.top(btex \useKV[TraceG]{LabelY} etex,u*(xpart(Origine),ymax)); + \end{mpost} + \fi +} + %%% % Formules %%% @@ -12906,7 +13376,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl %%% \newcommand\Puissances[2]{% \ensuremath{% - \xintifboolexpr{#2=0}{1}{\xintifboolexpr{#2>0}{\xdef\total{\fpeval{#2-1}}#1\multido{\i=1+1}{\total}{\times#1}}{\xdef\total{\fpeval{-#2-1}}\frac{1}{#1\multido{\i=1+1}{\total}{\times#1}}}}% + \xintifboolexpr{#2==0}{1}{\xintifboolexpr{#2>0}{\xdef\total{\fpeval{#2-1}}#1\multido{\i=1+1}{\total}{\times#1}}{\xdef\total{\fpeval{-#2-1}}\frac{1}{#1\multido{\i=1+1}{\total}{\times#1}}}}% }% } @@ -13870,7 +14340,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl }; \node[yshift=-0.65cm] (T2b) at (T2){}; \ifboolKV[Cards]{Titre}{\node[] at (T2b) {\tiny\useKV[Cards]{NomTitre}};}{}, - \node[rectangle,xshift=5mm,yshift=4.25mm,minimum width=2em,rounded corners,fill=TrameCouleur,draw=black] (R) at (frame.south west) {\color{black}\Large\bfseries #3}; + \node[rectangle,xshift=5pt,yshift=4.25mm,minimum width=2em,rounded corners,fill=TrameCouleur,draw=black,anchor=west] (R) at (frame.south west) {\color{black}\Large\bfseries #3}; \draw[dashed] (S1) -- (S2); }, colback=white, @@ -14124,7 +14594,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl \long\def\ifremain@lines#1\\#2\@nil{% \csname @\ifx\@empty#2\@empty second\else first\fi oftwo\endcsname} \long\def\subst@eol#1\\#2\@nil{\addtot@b{#1\\}% - \ifremain@lines#2\\\@nil{\addtot@b&\subst@eol#2\@nil}{\addtot@b{#2\CodeAfter\xintifboolexpr{\useKV[Tableur]{Ligne}=0 || \useKV[Tableur]{Colonne}=0}{}{\tikz\draw[line width=2pt](row-\fpeval{\useKV[Tableur]{Ligne}+1}-|col-\fpeval{\useKV[Tableur]{Colonne}+1}) rectangle (row-\fpeval{\useKV[Tableur]{Ligne}+1+\useKV[Tableur]{PasL}}-|col-\fpeval{\useKV[Tableur]{Colonne}+1+\useKV[Tableur]{PasC}});}\end{NiceTabular}}}} + \ifremain@lines#2\\\@nil{\addtot@b&\subst@eol#2\@nil}{\addtot@b{#2\CodeAfter\xintifboolexpr{\useKV[Tableur]{Ligne}==0 || \useKV[Tableur]{Colonne}==0}{}{\tikz\draw[line width=2pt](row-\fpeval{\useKV[Tableur]{Ligne}+1}-|col-\fpeval{\useKV[Tableur]{Colonne}+1}) rectangle (row-\fpeval{\useKV[Tableur]{Ligne}+1+\useKV[Tableur]{PasL}}-|col-\fpeval{\useKV[Tableur]{Colonne}+1+\useKV[Tableur]{PasC}});}\end{NiceTabular}}}} \long\def\collectcp@body#1\end{\subst@eol#1\@nil\end} \newcommand\addtot@b[1]{\t@b\expandafter{\the\t@b#1}} diff --git a/macros/latex/contrib/suftesi/suftesi.dtx b/macros/latex/contrib/suftesi/suftesi.dtx index 9a8820cb6e..2ded276ca5 100644 --- a/macros/latex/contrib/suftesi/suftesi.dtx +++ b/macros/latex/contrib/suftesi/suftesi.dtx @@ -56,7 +56,7 @@ This work has the LPPL maintenance status "author-maintained". %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesClass{suftesi} %<*class> - [2021/05/23 v3.1.1 A class for typesetting theses, books and articles] + [2021/06/05 v3.1.2 A class for typesetting theses, books and articles] % %<*driver> \documentclass[12pt]{ltxdoc} @@ -338,7 +338,7 @@ cochineal,mathpazo,bera,amsthm} % % \fi % -% \CheckSum{5685} +% \CheckSum{5683} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -356,7 +356,8 @@ cochineal,mathpazo,bera,amsthm} % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % -% \changes{v3.1.1}{2021/05/23}{Redefined some boolean options. Renamed some private commands. Corrected a bug in headers numbering (\cmd{protect} removed). Disabled automatic partial ToC functionality. Improved \opt{fewfootnotes} option via \sty{zref}. Updated documentation.} +% \changes{v3.1.2}{2021/06/05}{Corrected a bug with \opt{reverseauthortitle} option.} +% \changes{v3.1.1}{2021/05/23}{Redefined some boolean options. Renamed some private commands. Corrected a bug in headers numbering (\cmd{protect} removed). Disabled automatic partial ToC functionality. Improved \opt{fewfootnotes} option via \sty{zref}. Updated documentation.} % \changes{v3.1.0}{2021/05/20}{Replaced \cmd{val}\cmd{nr} with \cmd{suftesi@val}\cmd{suftesi@nr}. Corrected a bug with \cmd{maketitle} in \opt{collection} structure. New options \opt{partialtoc} and \opt{maketitlestyle}. New commands for customizing the partial ToC. New value \opt{justify} for \opt{quotestyle} option. Improved \opt{quotesize} option. Renamed the \opt{revauthortitle} option to \opt{reverseauthortitle}. The options \opt{titlefont}, \opt{authorfont}, \opt{reverseauthortitle} now work for every structure. Renewed documentation} % \changes{v3.0.2}{2021/02/06}{Improved \opt{subsecstyle} and \opt{subsubsecstyle} options.} % \changes{v3.0.1}{2021/01/27}{Maintenance release.} @@ -941,6 +942,18 @@ cochineal,mathpazo,bera,amsthm} % ^^A ---------------------------------------------------------------- % % \begin{optionlist*} +% \optitem[cochineal]{defaultfont}{\opt{none}\OR\opt{cochineal}\OR\opt{libertine}\OR\opt{palatino}\OR\opt{standard}} +% \begin{valuelist} +% \item[none] Does not load any font (default with +% \hologo{XeLaTeX} or \hologo{LuaLaTeX}). Use this option +% if you want full control over the font selection +% \item[cochineal] Loads the Cochineal serif, the Linux Biolinum sans serif and the Inconsolata typewriter. +% \item[libertine] Loads the Linux Libertine serif, the Linux Biolinum sans serif and the Inconsolata typewriter. +% \item[palatino] Loads the New PX serif, the Linux Biolinum sans serif and the Inconsolata typewriter. Note that the New PX font does not provide support for Greek. The \opt{greekfont=artemisia} option offers a very good solution. +% ^^A and {\fontfamily{artemisia}\selectfont Artemisia} by the {\fontfamily{artemisia}\selectfont Greek Font Society} for the greek text. +% \item[standard] Loads the \sty{lmodern} package: Latin Modern font family and CB Greek. +% \end{valuelist} +% % \optitem[10\OR 10pt]{fontsize}{\meta{dimen}} % Sets the main font sizes for the document, changing the \cmd{baselineskip} % accordingly. This option is based on the \sty{fontsize} package \parencite{fontsize}. The \meta{fontsize} can be given in any unit recognized @@ -957,17 +970,7 @@ cochineal,mathpazo,bera,amsthm} % \item[upper] Prints spaced \textsc{\lsstyle Small Capitals} with uppercase initials. % \end{valuelist} % -% \optitem[cochineal]{defaultfont}{\opt{none}\OR\opt{cochineal}\OR\opt{libertine}\OR\opt{palatino}\OR\opt{standard}} -% \begin{valuelist} -% \item[none] Does not load any font (default with -% \hologo{XeLaTeX} or \hologo{LuaLaTeX}). Use this option -% if you want full control over the font selection -% \item[cochineal] Loads the Cochineal serif, the Linux Biolinum sans serif and the Inconsolata typewriter. -% \item[libertine] Loads the Linux Libertine serif, the Linux Biolinum sans serif and the Inconsolata typewriter. -% \item[palatino] Loads the New PX serif, the Linux Biolinum sans serif and the Inconsolata typewriter. Note that the New PX font does not provide support for Greek. The \opt{greekfont=artemisia} option offers a very good solution. -% ^^A and {\fontfamily{artemisia}\selectfont Artemisia} by the {\fontfamily{artemisia}\selectfont Greek Font Society} for the greek text. -% \item[standard] Loads the \sty{lmodern} package: Latin Modern font family and CB Greek. -% \end{valuelist} +% % \end{optionlist*} % % ^^A ---------------------------------------------------------------- @@ -1128,7 +1131,7 @@ cochineal,mathpazo,bera,amsthm} % ^^A % ^^A ---------------------------------------------------------------- % -% In the following option \meta{level} can be \opt{part}, \opt{chap}, \opt{sec}, +% In the following options \meta{level} can be \opt{part}, \opt{chap}, \opt{sec}, % \opt{subsec}, \opt{subsubsec}, \opt{par}, \opt{subpar}. You can see some % combinations of these options in figure \ref{fig:fakechapter}. % @@ -1183,18 +1186,19 @@ cochineal,mathpazo,bera,amsthm} % % \changes{v2.9.3}{2020/001/29}{New commands to change the font of the section titles and numbers.} % -% The commands in this section are experimental. They provide a fast way to customize the format of section titles and numbers. Note that in some cases you will have to manually adjust the spacing accordingly, using \cmd{titlespacing}, \cmd{hskip}/\cmd{hspace}, \cmd{vskip}/\cmd{vspace}, and so on. +% The commands in this section are experimental. They provide a fast way to customize the format of section titles and numbers. Note that in some cases you will have to manually adjust the spacing accordingly, using \cmd{titlespacing}, \cmd{hspace}, \cmd{vspace}, and so on. +% +% Below \meta{level} can be \opt{part}, +% \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}. % % \begin{ltxsyntax} % \cmditem*{\meta{level}font}{definition} % -% Changes the font of the \meta{level} title, where \meta{level} can be \opt{part}, -% \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}. +% Changes the font of the \meta{level} title. % % \cmditem*{\meta{level}numfont}{definition} % -% Changes the font of the \meta{level} number, where \meta{level} can be \opt{part}, -% \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}. +% Changes the font of the \meta{level} number. % % For example, if you used the \opt{chapfont=smallcaps} option, you can change the size of the chapter title accordingly with: % \begin{latexcode} @@ -1302,13 +1306,13 @@ cochineal,mathpazo,bera,amsthm} % \end{valuelist} % \optitem[roman]{toc\meta{level}font}{\opt{roman}\OR\opt{italic}\OR % \opt{smallcaps}} +% Where \meta{level} can be \opt{part}, \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}, \opt{par}, \opt{subpar}. % \begin{valuelist} % \item[roman] Prints the \meta{level} ToC entry in roman. % \item[italic] Prints the \meta{level} ToC entry in \emph{italic}. % \item[smallcaps] Prints the \meta{level} ToC entry % in \textsc{\lsstyle spaced small caps} % \end{valuelist} -% Where \meta{level} can be \opt{part}, \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}, \opt{par}, \opt{subpar}. % \optitem[all]{twocolcontents}{\opt{toc}\OR\opt{lof}\OR % \opt{lot}\OR\opt{toclof}\OR\opt{toclot}\OR\opt{loflot}\OR\opt{all}} % This option activates the \opt{tocstyle=ragged} option @@ -1344,25 +1348,32 @@ cochineal,mathpazo,bera,amsthm} % % ^^A ---------------------------------------------------------------- % ^^A -% \paragraph{General commands}\label{sec:toc:commands:general} +% \paragraph{General commands}\label{sec:toc:commands:general}\mbox{} % ^^A % ^^A ---------------------------------------------------------------- % +% Below \meta{level} can be \opt{part}, +% \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}. +% % \begin{ltxsyntax} +% % \cmditem*{toc\meta{level}font}{definition} % -% Changes the font of the \meta{level} title, where \meta{level} can be \opt{part}, -% \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}. +% Changes the font of the \meta{level} title. % % \cmditem*{toc\meta{level}numfont}{definition} % -% Changes the font of the \meta{level} number, where \meta{level} can be \opt{part}, -% \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}. +% Changes the font of the \meta{level} number. % +% \end{ltxsyntax} +% +% Below \meta{level} can be \opt{part}, \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}, \opt{par}, \opt{subpar}, \opt{fig}, \opt{tab}. +% +% \begin{ltxsyntax} % \cmditem{toclabelwidth}{level}{dim} % \changes{v0.9a}{2012/08/31}{New command \cmd{toclabelspace}} % -% Adds the \meta{dim} to the \meta{level} label in the table of contents, where \meta{level} can be \opt{part}, \opt{chap}, \opt{sec}, \opt{subsec}, \opt{subsubsec}, \opt{par}, \opt{subpar}, \opt{fig}, \opt{tab}. For example, when using \opt{chapnumstyle=Roman} you would probably need to adjust the width of the chapter label with |\toclabelwidth{chap}{1em}|. +% Adds the \meta{dim} to the \meta{level} label in the table of contents. For example, when using \opt{chapnumstyle=Roman} you would probably need to adjust the width of the chapter label with |\toclabelwidth{chap}{1em}|. % % \cmditem*{tocpartname}{definition}\hfill default: \cmd{partname} % @@ -1388,7 +1399,7 @@ cochineal,mathpazo,bera,amsthm} % % ^^A ---------------------------------------------------------------- % ^^A -% \paragraph{Partial ToCs}\label{sec:toc:partialtoc} +% \paragraph{Partial ToCs}\label{sec:toc:partialtoc}\mbox{} % ^^A % ^^A ---------------------------------------------------------------- % @@ -1410,11 +1421,11 @@ cochineal,mathpazo,bera,amsthm} % % Sets the font size of the partial ToC. % -% \cmditem*{partialtocbeforespace}{dimen} +% \cmditem*{partialtocbeforespace}{dimen} \hfill default: |0pt| % % Sets the space before the partial ToC. % -% \cmditem*{partialtocafterpace}{dimen} +% \cmditem*{partialtocafterpace}{dimen} \hfill default: |2|\cmd{baselineskip} % % Sets the space after the partial ToC. % @@ -1612,8 +1623,8 @@ cochineal,mathpazo,bera,amsthm} % % \optitem[true]{marginpar}{\opt{true}\OR\opt{false}} % \begin{valuelist} -% \item[true] Prints the marginal notes. -% \item[false] Hide the marginal notes. +% \item[true] Prints the marginal notes set with \cmd{marginpar}. +% \item[false] Hide the marginal notes set with \cmd{marginpar}. % \end{valuelist} % \optitem[standard]{captionstyle}{\opt{standard}\OR\opt{sanserif}\OR\opt{italic}\OR\opt{smallcaps}} % All these values print the caption in small size, changing the shape: @@ -2418,6 +2429,7 @@ cochineal,mathpazo,bera,amsthm} {book,article,collection}[book]{% \ifcase\suftesi@nr\relax % \disable@keys{}{secnumstyle} + \SUF@titlepagetrue \def\SUF@chapswitch{\thechapter.} \or \suftesi@articletrue @@ -2425,7 +2437,8 @@ cochineal,mathpazo,bera,amsthm} \def\SUF@chapswitch{} \or \suftesi@collectiontrue - \setkeys{}{headerstyle=authortitleinner} + \SUF@titlepagefalse + \setkeys{}{headerstyle=authortitleinner} \def\SUF@chapswitch{} \fi} % \end{macrocode} @@ -2445,11 +2458,13 @@ cochineal,mathpazo,bera,amsthm} \fi} % \end{macrocode} % \paragraph{Other options} +% The \opt{marginpar} option conflicts with the \sty{geometry} package +% when it is declared without explicitly providing a value. To be fixed! % \begin{macrocode} -\define@boolkey[SUF]{}{marginpar}[true]{} -\define@boolkey[SUF]{}{partpage}[true]{} -\define@boolkey[SUF]{}{draftdate}[true]{} -\define@boolkey[SUF]{}{titlepage}[true]{} +\define@boolkey{}[SUF@]{marginpar}[true]{} +\define@boolkey{}[SUF@]{partpage}[true]{} +\define@boolkey{}[SUF@]{draftdate}[true]{} +\define@boolkey{}[SUF@]{titlepage}[true]{} % \end{macrocode} % \subsubsection{Fonts} % \paragraph{Roman fonts} @@ -3109,7 +3124,7 @@ cochineal,mathpazo,bera,amsthm} \suftesi@twocolumnlottrue \setkeys{}{tocstyle=ragged} \fi} -\define@boolkey[SUF]{}{partialtoc}[true]{} +\define@boolkey{}[SUF@]{partialtoc}[true]{} % \end{macrocode} % \paragraph{Table of contents font} % \begin{macrocode} @@ -3284,7 +3299,7 @@ cochineal,mathpazo,bera,amsthm} \renewcommand\@makefntext{% \textsuperscript{\@thefnmark}\hskip.3em} \fi} -\define@boolkey[SUF]{}{fewfootnotes}[true]{} +\define@boolkey{}[SUF@]{fewfootnotes}[true]{} % \end{macrocode} % \paragraph{Captions} % \begin{macrocode} @@ -3677,7 +3692,6 @@ cochineal,mathpazo,bera,amsthm} % \end{macrocode} % \subsubsection{Options processing} % \begin{macrocode} -\ProcessOptionsX[SUF]<>\relax \ExecuteOptionsX<>{ structure=book, pagelayout=standard, @@ -3692,6 +3706,7 @@ cochineal,mathpazo,bera,amsthm} quotesize=footnotesize, quotestyle=center, captionstyle=standard, + marginpar=true, tocstyle=standard, partstyle=left, chapstyle=left, @@ -5297,7 +5312,7 @@ cochineal,mathpazo,bera,amsthm} \partialtocparlabelfont{} \partialtocsubparlabelfont{} \partialtocbeforespace{0pt} -\partialtocafterspace{0pt} +\partialtocafterspace{2\baselineskip} \partialtocbeforecode{} \partialtocaftercode{} % \end{macrocode} @@ -5595,7 +5610,7 @@ cochineal,mathpazo,bera,amsthm} \SUF@authortitle@align \let\footnote\thanks \parindent=0pt - {\SUF@second}% + {\SUF@second\par}% \label{begin:\thearticle} % \end{macrocode} % Check if you don't use \sty{hyperrref} provided by Enrico Gregorio @@ -5615,7 +5630,7 @@ cochineal,mathpazo,bera,amsthm} {\SUF@tocTIT@font{\@headtitle}}} \endgroup% \par\nobreak\vspace{2ex} - {\SUF@first% + {\SUF@first\par% \vskip1.5cm}}% } % \newenvironment{article} @@ -5715,9 +5730,7 @@ cochineal,mathpazo,bera,amsthm} {\SUF@first\par}% \vskip 3em% {\lineskip .75em% - \begin{tabular}[t]{c}% - \SUF@second - \end{tabular}\par}% + \SUF@second\par}% \vskip 1.5em% {\SUF@datefont\@date\par}% \end{center}\par @@ -5769,9 +5782,7 @@ cochineal,mathpazo,bera,amsthm} {\SUF@first\par}% \vskip 1.5em% {\lineskip .5em% - \begin{tabular}[t]{c}% - \SUF@second\par - \end{tabular}\par}% + \SUF@second\par}% \vskip 1em% {\SUF@datefont\@date\par}% \end{center}% diff --git a/macros/latex/contrib/suftesi/suftesi.pdf b/macros/latex/contrib/suftesi/suftesi.pdf index 2e8c75f472..935cbaf61c 100644 Binary files a/macros/latex/contrib/suftesi/suftesi.pdf and b/macros/latex/contrib/suftesi/suftesi.pdf differ diff --git a/macros/latex/contrib/tabularray/tabularray-2021.sty b/macros/latex/contrib/tabularray/tabularray-2021.sty new file mode 100644 index 0000000000..90ddaadd34 --- /dev/null +++ b/macros/latex/contrib/tabularray/tabularray-2021.sty @@ -0,0 +1,4218 @@ +%%% % -*- coding: utf-8 -*- +%%% ---------------------------------------------------------------------------- +%%% Tabularray: Typeset tabulars and arrays with LaTeX3 +%%% Author : Jianrui Lyu +%%% Repository: https://github.com/lvjr/tabularray +%%% License : The LaTeX Project Public License 1.3 +%%% ---------------------------------------------------------------------------- + +%%% -------------------------------------------------------- +%% \section{Scratch Variables and Function Variants} +%%% -------------------------------------------------------- + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplPackage{tabularray}{2021-05-25}{2021J} + {Typeset tabulars and arrays with LaTeX3} + +\RequirePackage{xparse} +\AtBeginDocument{\@ifpackageloaded{xcolor}{\RequirePackage{ninecolors}}{}} + +\ExplSyntaxOn + +%% Backport \tl_if_eq:NnTF for old texlive 2020 +\cs_if_exist:NF \tl_if_eq:NnTF + { + \tl_new:N \l__tblr_backport_b_tl + \prg_new_protected_conditional:Npnn \tl_if_eq:Nn #1 #2 { T, F, TF } + { + \group_begin: + \tl_set:Nn \l__tblr_backport_b_tl {#2} + \exp_after:wN + \group_end: + \if_meaning:w #1 \l__tblr_backport_b_tl + \prg_return_true: + \else: + \prg_return_false: + \fi: + } + \prg_generate_conditional_variant:Nnn \tl_if_eq:Nn { c } { TF, T, F } + } + +%% Compatible with texlive 2020 +\cs_if_exist:NF \seq_map_indexed_function:NN + { + \cs_set_eq:NN \seq_map_indexed_function:NN \seq_indexed_map_function:NN + } + +\cs_generate_variant:Nn \msg_error:nnnn { nnVn } +\cs_generate_variant:Nn \prop_item:Nn { Ne, NV } +\cs_generate_variant:Nn \prop_put:Nnn { Nxn, Nxx, NxV } +\cs_generate_variant:Nn \regex_replace_all:NnN { NVN } +\cs_generate_variant:Nn \seq_map_indexed_inline:Nn { cn } +\cs_generate_variant:Nn \tl_const:Nn { ce } +\cs_generate_variant:Nn \tl_log:n { x } +\cs_generate_variant:Nn \tl_gput_right:Nn { Nf } +\prg_generate_conditional_variant:Nnn \clist_if_in:Nn { Nx } { TF } +\prg_generate_conditional_variant:Nnn \prop_if_in:Nn { c } { T } +\prg_generate_conditional_variant:Nnn \str_if_eq:nn { xn } { TF } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { en } { T, TF } +\prg_generate_conditional_variant:Nnn \tl_if_head_eq_meaning:nN { VN } { T, TF } + +\tl_new:N \l__tblr_a_tl +\tl_new:N \l__tblr_b_tl +\tl_new:N \l__tblr_c_tl +\tl_new:N \l__tblr_d_tl +\tl_new:N \l__tblr_e_tl +\tl_new:N \l__tblr_f_tl +\tl_new:N \l__tblr_h_tl +\tl_new:N \l__tblr_i_tl % for row index +\tl_new:N \l__tblr_j_tl % for column index +\tl_new:N \l__tblr_k_tl +\tl_new:N \l__tblr_n_tl +\tl_new:N \l__tblr_o_tl +\tl_new:N \l__tblr_r_tl +\tl_new:N \l__tblr_s_tl +\tl_new:N \l__tblr_t_tl +\tl_new:N \l__tblr_u_tl +\tl_new:N \l__tblr_v_tl +\tl_new:N \l__tblr_w_tl +\tl_new:N \l__tblr_x_tl +\tl_new:N \l__tblr_y_tl +\int_new:N \l__tblr_a_int +\int_new:N \l__tblr_c_int % for column number +\int_new:N \l__tblr_r_int % for row number +\dim_new:N \l__tblr_d_dim % for depth +\dim_new:N \l__tblr_h_dim % for height +\dim_new:N \l__tblr_o_dim +\dim_new:N \l__tblr_p_dim +\dim_new:N \l__tblr_q_dim +\dim_new:N \l__tblr_r_dim +\dim_new:N \l__tblr_s_dim +\dim_new:N \l__tblr_t_dim +\dim_new:N \l__tblr_v_dim +\dim_new:N \l__tblr_w_dim % for width +\box_new:N \l__tblr_a_box +\box_new:N \l__tblr_b_box +\box_new:N \l__tblr_c_box % for cell box +\box_new:N \l__tblr_d_box + +%%% -------------------------------------------------------- +%% \section{Data Structures Based on Property Lists} +%%% -------------------------------------------------------- + +\int_new:N \g_tblr_level_int % store table nesting level + +\cs_new_protected:Npn \__tblr_prop_gput:nnn #1 #2 #3 + { + \prop_gput:cnn + { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + } +\cs_generate_variant:Nn \__tblr_prop_gput:nnn { nnx, nnV, nxn, nxx, nxV } + +\cs_new:Npn \__tblr_prop_item:nn #1 #2 + { + \prop_item:cn { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } + } +\cs_generate_variant:Nn \__tblr_prop_item:nn { ne } + +\cs_new_protected:Npn \__tblr_prop_if_in:nnT #1 + { + \prop_if_in:cnT { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } +\cs_new_protected:Npn \__tblr_prop_if_in:nnF #1 + { + \prop_if_in:cnF { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } +\cs_new_protected:Npn \__tblr_prop_if_in:nnTF #1 + { + \prop_if_in:cnTF { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } +\prg_generate_conditional_variant:Nnn \__tblr_prop_if_in:nn { nx } { T, F, TF } + +\cs_new_protected:Npn \__tblr_prop_log:n #1 + { + \prop_log:c { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } + +\cs_new_protected:Npn \__tblr_prop_map_inline:nn #1 #2 + { + \prop_map_inline:cn { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } {#2} + } + +\cs_new_protected:Npn \__tblr_prop_gput_if_larger:nnn #1 #2 #3 + { + \__tblr_gput_if_larger:cnn + { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + } +\cs_generate_variant:Nn \__tblr_prop_gput_if_larger:nnn { nnx, nnV, nxn, nxx, nxV } + +\cs_new_protected:Npn \__tblr_prop_gadd_dimen_value:nnn #1 #2 #3 + { + \__tblr_gadd_dimen_value:cnn + { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + } +\cs_generate_variant:Nn \__tblr_prop_gadd_dimen_value:nnn { nnx, nnV, nxn, nxx } + +%% Put the dimension to the prop list only if it's larger than the old one + +\tl_new:N \l__tblr_put_if_larger_tl + +\cs_new_protected:Npn \__tblr_put_if_larger:Nnn #1 #2 #3 + { + \tl_set:Nx \l__tblr_put_if_larger_tl { \prop_item:Nn #1 { #2 } } + \bool_lazy_or:nnT + { \tl_if_empty_p:N \l__tblr_put_if_larger_tl } + { \dim_compare_p:nNn { #3 } > { \l__tblr_put_if_larger_tl } } + { \prop_put:Nnn #1 { #2 } { #3 } } + } +\cs_generate_variant:Nn \__tblr_put_if_larger:Nnn { Nnx, Nxn, Nxx } + +\cs_new_protected:Npn \__tblr_gput_if_larger:Nnn #1 #2 #3 + { + \tl_set:Nx \l__tblr_put_if_larger_tl { \prop_item:Nn #1 { #2 } } + \bool_lazy_or:nnT + { \tl_if_empty_p:N \l__tblr_put_if_larger_tl } + { \dim_compare_p:nNn { #3 } > { \l__tblr_put_if_larger_tl } } + { \prop_gput:Nnn #1 { #2 } { #3 } } + } +\cs_generate_variant:Nn \__tblr_gput_if_larger:Nnn { Nnx, Nxn, Nxx, cnn } + +%% Add the dimension to some key value of the prop list +%% #1: the prop list, #2: the key, #3: the dimen to add + +\cs_new_protected:Npn \__tblr_add_dimen_value:Nnn #1 #2 #3 + { + \prop_put:Nnx #1 { #2 } { \dim_eval:n { \prop_item:Nn #1 { #2 } + #3 } } + } +\cs_generate_variant:Nn \__tblr_add_dimen_value:Nnn { cnn } + +\cs_new_protected:Npn \__tblr_gadd_dimen_value:Nnn #1 #2 #3 + { + \prop_gput:Nnx #1 { #2 } { \dim_eval:n { \prop_item:Nn #1 { #2 } + #3 } } + } +\cs_generate_variant:Nn \__tblr_gadd_dimen_value:Nnn { cnn } + +%% Some counters for row and column numbering +\newcounter{rownum} +\newcounter{colnum} +\newcounter{rowcount} +\newcounter{colcount} + +%%% -------------------------------------------------------- +%% \section{Data Structures Based on Integer Arrays} +%%% -------------------------------------------------------- + +\int_new:N \g__tblr_array_int + +\cs_new_protected:Npn \__tblr_initial_table_data: + { + \int_gincr:N \g__tblr_array_int + \intarray_new:cn { g__tblr_row_ \int_use:N \g__tblr_array_int _intarray } + { \g__tblr_data_row_key_count_int * \c@rowcount } + \cs_set_eq:cc { g__tblr_row_ \int_use:N \g_tblr_level_int _intarray } + { g__tblr_row_ \int_use:N \g__tblr_array_int _intarray } + %\intarray_log:c { g__tblr_row_ \int_use:N \g_tblr_level_int _intarray } + } + +%% #1: data name; #2: key name; #3: value type +\cs_new_protected:Npn \__tblr_data_new_key:nnn #1 #2 #3 + { + \int_gincr:c { g__tblr_data_#1_key_count_int } + \tl_const:ce + { + g__tblr_data_#1_key_name_ + \int_use:c { g__tblr_data_#1_key_count_int } _tl + } + { #2 } + \tl_const:ce { g__tblr_data_#1_key_number_#2_tl } + { \int_use:c { g__tblr_data_#1_key_count_int } } + \tl_const:cn { g__tblr_data_#1_key_type_#2_tl } {#3} + } + +\int_new:N \g__tblr_data_row_key_count_int + +\__tblr_data_new_key:nnn { row } { height } { dim } +\__tblr_data_new_key:nnn { row } { coefficient } { dec } +\__tblr_data_new_key:nnn { row } { abovesep } { dim } +\__tblr_data_new_key:nnn { row } { belowsep } { dim } +\__tblr_data_new_key:nnn { row } { @row-height } { dim } +\__tblr_data_new_key:nnn { row } { @row-head } { dim } +\__tblr_data_new_key:nnn { row } { @row-foot } { dim } +\__tblr_data_new_key:nnn { row } { @row-upper } { dim } +\__tblr_data_new_key:nnn { row } { @row-lower } { dim } + +%% #1: data name; #2: data index; #3: key name +\cs_new:Npn \__tblr_data_key_to_int:nnn #1 #2 #3 + { + ( #2 - 1 ) * \int_use:c { g__tblr_data_#1_key_count_int } + + \tl_use:c { g__tblr_data_#1_key_number_#3_tl } + } + +\int_new:N \l__tblr_key_count_int +\int_new:N \l__tblr_key_quotient_int +\int_new:N \l__tblr_key_remainder_int + +%% #1: data name; #2: array position; +%% #3: returning tl with index; #4: returning tl with key name +\cs_new:Npn \__tblr_data_int_to_key:nnNN #1 #2 #3 #4 + { + \int_set_eq:Nc \l__tblr_key_count_int { g__tblr_data_#1_key_count_int } + \int_set:Nn \l__tblr_key_quotient_int + { + \int_div_truncate:nn + { #2 + \l__tblr_key_count_int - 1 } { \l__tblr_key_count_int } + } + \int_set:Nn \l__tblr_key_remainder_int + { + #2 + \l__tblr_key_count_int + - \l__tblr_key_quotient_int * \l__tblr_key_count_int + } + \int_compare:nNnT { \l__tblr_key_remainder_int } = { 0 } + { \int_set_eq:NN \l__tblr_key_remainder_int \l__tblr_key_count_int } + \tl_set:Nx #3 { \int_use:N \l__tblr_key_quotient_int } + \tl_set_eq:Nc #4 + { g__tblr_data_#1_key_name_ \int_use:N \l__tblr_key_remainder_int _tl } + } + +%% #1: data name; #2: key name; #3: value +\cs_new:Npn \__tblr_data_value_to_int:nnn #1 #2 #3 + { + \cs:w + __tblr_data_ \tl_use:c { g__tblr_data_#1_key_type_#2_tl } _to_int:n + \cs_end: + {#3} + } + +%% #1: data name; #2: key name; #3: int +\cs_new:Npn \__tblr_data_int_to_value:nnn #1 #2 #3 + { + \cs:w + __tblr_data_int_to_ \tl_use:c { g__tblr_data_#1_key_type_#2_tl } :n + \cs_end: + {#3} + } +\cs_generate_variant:Nn \__tblr_data_int_to_value:nnn { nne, nVe } + +\cs_new:Npn \__tblr_data_dim_to_int:n #1 + { + \dim_to_decimal_in_sp:n {#1} + } + +%% Return a dimension in pt so that it's easier to understand in tracing messages +\cs_new:Npn \__tblr_data_int_to_dim:n #1 + { + %#1 sp + %\dim_eval:n { #1 sp } + \dim_to_decimal:n { #1 sp } pt + } + +\cs_new:Npn \__tblr_data_dec_to_int:n #1 + { + \dim_to_decimal_in_sp:n {#1 pt} + } + +\cs_new:Npn \__tblr_data_int_to_dec:n #1 + { + \dim_to_decimal:n {#1 sp} + } + +%% #1: data name; #2: data index; #3: key; #4: value +\cs_new_protected:Npn \__tblr_data_gput:nnnn #1 #2 #3 #4 + { + \intarray_gset:cnn + { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + { \__tblr_data_key_to_int:nnn {#1} {#2} {#3} } + { \__tblr_data_value_to_int:nnn {#1} {#3} {#4} } + } +\cs_generate_variant:Nn \__tblr_data_gput:nnnn + { nnne, nnnV, nenn, nene, nenV, nVnn } + +%% #1: data name; #2: data index; #3: key +\cs_new:Npn \__tblr_data_item:nnn #1 #2 #3 + { + \__tblr_data_int_to_value:nne {#1} {#3} + { + \intarray_item:cn { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + { \__tblr_data_key_to_int:nnn {#1} {#2} {#3} } + } + } +\cs_generate_variant:Nn \__tblr_data_item:nnn { nen } + +\tl_new:N \l__tblr_data_key_tl +\tl_new:N \l__tblr_data_index_tl + +\cs_new_protected:Npn \__tblr_data_log:n #1 + { + %\intarray_log:c { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + \tl_set:Nx \l_tmpa_tl { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + \int_step_inline:nn + { \intarray_count:c { \l_tmpa_tl } } + { + \__tblr_data_int_to_key:nnNN {#1} {##1} + \l__tblr_data_index_tl \l__tblr_data_key_tl + \tl_log:x + { + { #1 [\l__tblr_data_index_tl] / \l__tblr_data_key_tl } + \space = \space + { + \__tblr_data_int_to_value:nVe {#1} \l__tblr_data_key_tl + { \intarray_item:cn { \l_tmpa_tl } {##1} } + } + } + } + \__tblr_prop_log:n {#1} + } + +%% #1: data name; #2: row index; #3: key; #4: value +\cs_new_protected:Npn \__tblr_data_gput_if_larger:nnnn #1 #2 #3 #4 + { + \__tblr_array_gput_if_larger:cnn + { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + { \__tblr_data_key_to_int:nnn {#1} {#2} {#3} } + { \__tblr_data_value_to_int:nnn {#1} {#3} {#4} } + } +\cs_generate_variant:Nn \__tblr_data_gput_if_larger:nnnn { nnne, nnnV, nene, nenV } + +\cs_new_protected:Npn \__tblr_array_gput_if_larger:Nnn #1 #2 #3 + { + \int_compare:nNnT {#3} > { \intarray_item:Nn #1 {#2} } + { \intarray_gset:Nnn #1 {#2} {#3} } + } +\cs_generate_variant:Nn \__tblr_array_gput_if_larger:Nnn { cnn } + +%% #1: data name; #2: data index; #3: key; #4: value +\cs_new_protected:Npn \__tblr_data_gadd_dimen_value:nnnn #1 #2 #3 #4 + { + \__tblr_array_gadd_value:cnn + { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + { \__tblr_data_key_to_int:nnn {#1} {#2} {#3} } + { \__tblr_data_value_to_int:nnn {#1} {#3} {#4} } + } +\cs_generate_variant:Nn \__tblr_data_gadd_dimen_value:nnnn { nnne, nnnV, nene } + +\cs_new_protected:Npn \__tblr_array_gadd_value:Nnn #1 #2 #3 + { + \intarray_gset:Nnn #1 {#2} { \intarray_item:Nn #1 {#2} + #3 } + } +\cs_generate_variant:Nn \__tblr_array_gadd_value:Nnn { cnn } + +\bool_new:N \g__tblr_use_intarray_bool +%\bool_set_true:N \g__tblr_use_intarray_bool + +\AtBeginDocument + { + \bool_if:NF \g__tblr_use_intarray_bool + { + \cs_set_protected:Npn \__tblr_data_gput:nnnn #1 #2 #3 #4 + { + \__tblr_prop_gput:nnn {#1} { [#2] / #3 } {#4} + } + \cs_set:Npn \__tblr_data_item:nnn #1 #2 #3 + { + \__tblr_prop_item:nn {#1} { [#2] / #3 } + } + \cs_set_protected:Npn \__tblr_data_log:n #1 + { + \__tblr_prop_log:n {#1} + } + \cs_set_protected:Npn \__tblr_data_gput_if_larger:nnnn #1 #2 #3 #4 + { + \__tblr_prop_gput_if_larger:nnn {#1} { [#2] / #3 } {#4} + } + \cs_set_protected:Npn \__tblr_data_gadd_dimen_value:nnnn #1 #2 #3 #4 + { + \__tblr_prop_gadd_dimen_value:nnn {#1} { [#2] / #3 } {#4} + } + } + } + +%%% -------------------------------------------------------- +%% \section{Child Selectors} +%%% -------------------------------------------------------- + +\clist_new:N \g_tblr_used_child_selectors_clist + +\tl_new:N \l__tblr_childs_arg_spec_tl + +\msg_new:nnn { tabularray } { used-child-selector } + { Child ~ selector ~ name ~ "#1" ~ has ~ been ~ used! } + +\NewDocumentCommand \NewChildSelector { m O{0} o m } + { + \__tblr_new_child_selector_aux:xnnn { \tl_trim_spaces:n {#1} } {#2} {#3} {#4} + } + +\cs_new_protected:Npn \__tblr_new_child_selector_aux:nnnn #1 #2 #3 #4 + { + \clist_if_in:NnTF \g_tblr_used_child_selectors_clist { #1 } + { + \msg_error:nnn { tabularray } { used-child-selector } { #1 } + \clist_log:N \g_tblr_used_child_selectors_clist + } + { + \__tblr_make_xparse_arg_spec:nnN { #2 } { #3 } \l__tblr_childs_arg_spec_tl + \exp_args:NcV \NewDocumentCommand + { __tblr_child_selector_ #1 :w } \l__tblr_childs_arg_spec_tl { #4 } + \clist_gput_right:Nn \g_tblr_used_child_selectors_clist { #1 } + } + } +\cs_generate_variant:Nn \__tblr_new_child_selector_aux:nnnn { xnnn } + +%% #1: argument number, #2: optional argument default, #3: result tl +\cs_new_protected:Npn \__tblr_make_xparse_arg_spec:nnN #1 #2 #3 + { + \tl_clear:N #3 + \int_compare:nNnT { #1 } > { 0 } + { + \IfValueTF { #2 } + { \tl_set:Nn #3 { O{#2} } } + { \tl_set:Nn #3 { m } } + \tl_put_right:Nx #3 { \prg_replicate:nn { #1 - 1 } { m } } + } + } + +\clist_new:N \l_tblr_childs_clist +\tl_new:N \l_tblr_childs_total_tl + +\NewChildSelector { odd } + { + \int_step_inline:nnnn {1} {2} { \l_tblr_childs_total_tl } + { \clist_put_right:Nn \l_tblr_childs_clist {##1} } + } + +\NewChildSelector { even } + { + \int_step_inline:nnnn {2} {2} { \l_tblr_childs_total_tl } + { \clist_put_right:Nn \l_tblr_childs_clist {##1} } + } + +\regex_const:Nn \c__tblr_split_selector_name_regex { ^ ( [A-Za-z] {2,} ) ( . * ) } +\seq_new:N \l__tblr_childs_split_seq +\seq_new:N \l__tblr_childs_regex_seq +\tl_new:N \l__tblr_childs_end_tl +\tl_new:N \l__tblr_childs_selector_tl + +%% #1, child specifications; #2, total number. +%% The result will be put into \l_tblr_childs_clist +\cs_new_protected:Npn \__tblr_get_childs:nn #1 #2 + { + \clist_clear:N \l_tblr_childs_clist + \tl_set:Nx \l_tblr_childs_total_tl {#2} + \regex_extract_once:NnNTF \c__tblr_split_selector_name_regex {#1} + \l__tblr_childs_regex_seq + { + \tl_set:No \l__tblr_childs_selector_tl + { + \cs:w + __tblr_child_selector_ \seq_item:Nn \l__tblr_childs_regex_seq {2} :w + \cs_end: + } + \exp_args:Nx \l__tblr_childs_selector_tl + { \seq_item:Nn \l__tblr_childs_regex_seq{3} } + } + { + \tl_if_eq:nnTF {#1} {-} + { \__tblr_get_childs_normal:nn {1-#2} {#2} } + { \__tblr_get_childs_normal:nn {#1} {#2} } + } + %\clist_log:N \l_tblr_childs_clist + } +\cs_generate_variant:Nn \__tblr_get_childs:nn { nx } + +\cs_new_protected:Npn \__tblr_get_childs_normal:nn #1 #2 + { + \seq_set_split:Nnn \l__tblr_childs_split_seq {,} {#1} + \seq_map_inline:Nn \l__tblr_childs_split_seq + { \__tblr_get_childs_normal_aux:w ##1 - s \scan_stop } + } + +\cs_new_protected_nopar:Npn \__tblr_get_childs_normal_aux:w #1 - #2 #3 \scan_stop + { + \tl_if_eq:nnTF {#2} {s} + { \tl_set:Nn \l__tblr_childs_end_tl {#1} } + { \tl_set:Nn \l__tblr_childs_end_tl {#2} } + \int_step_inline:nnn {#1} { \l__tblr_childs_end_tl } + { \clist_put_right:Nn \l_tblr_childs_clist {##1} } + } + +%%% -------------------------------------------------------- +%% \section{New Table Commands} +%%% -------------------------------------------------------- + +%% We need some commands to modify table/row/column/cell specifications. +%% These commands must be defined with \NewTableCommand command, +%% so that we could extract them, execute them once, then disable them. + +\clist_new:N \g__tblr_table_commands_clist + +\msg_new:nnn { tabularray } { defined-table-command } + { Table ~ commnad ~ #1 has ~ been ~ defined! } + +\NewDocumentCommand \NewTableCommand { m O{0} o m } + { + \clist_if_in:NnTF \g__tblr_table_commands_clist { #1 } + { + \msg_error:nnn { tabularray } { defined-table-command } { #1 } + \clist_log:N \g__tblr_table_commands_clist + } + { + \__tblr_make_xparse_arg_spec:nnN { #2 } { #3 } \l__tblr_a_tl + \exp_args:NcV \NewDocumentCommand + { __tblr_table_command_ \cs_to_str:N #1 :w } \l__tblr_a_tl { #4 } + \exp_args:NcV \NewDocumentCommand + { __tblr_table_command_ \cs_to_str:N #1 _gobble :w } \l__tblr_a_tl { } + \IfValueTF { #3 } + { + \tl_gset:cn { g__tblr_table_cmd_ \cs_to_str:N #1 _arg_numb_tl } {-#2} + } + { + \tl_gset:cn { g__tblr_table_cmd_ \cs_to_str:N #1 _arg_numb_tl } {#2} + } + \clist_gput_right:Nn \g__tblr_table_commands_clist { #1 } + } + } + +\cs_new_protected:Npn \__tblr_enable_table_commands: + { + \clist_map_inline:Nn \g__tblr_table_commands_clist + { \cs_set_eq:Nc ##1 { __tblr_table_command_ \cs_to_str:N ##1 :w } } + } + +\cs_new_protected:Npn \__tblr_disable_table_commands: + { + \clist_map_inline:Nn \g__tblr_table_commands_clist + { \cs_set_eq:Nc ##1 { __tblr_table_command_ \cs_to_str:N ##1 _gobble:w } } + } + +\cs_new_protected:Npn \__tblr_execute_table_commands: + { + \__tblr_prop_map_inline:nn { command } + { + \__tblr_set_row_col_from_key_name:w ##1 + ##2 + } + \LogTblrTracing { cell } + } + +\cs_new_protected:Npn \__tblr_set_row_col_from_key_name:w [#1][#2] + { + \int_set:Nn \c@rownum {#1} + \int_set:Nn \c@colnum {#2} + } + +%%% -------------------------------------------------------- +%% \section{New Dash Styles} +%%% -------------------------------------------------------- + +%% \NewDashStyle commands + +\dim_zero_new:N \rulewidth +\dim_set:Nn \rulewidth {0.4pt} + +\prop_gset_from_keyval:Nn \g__tblr_defined_hdash_styles_prop + { solid = \hrule height \rulewidth } +\prop_gset_from_keyval:Nn \g__tblr_defined_vdash_styles_prop + { solid = \vrule width \rulewidth } + +\NewDocumentCommand \NewDashStyle { m m } + { + \seq_set_split:Nnn \l_tmpa_seq { ~ } {#2} + \tl_set:Nx \l__tblr_a_tl { \seq_item:Nn \l_tmpa_seq {1} } + \tl_set:Nx \l__tblr_b_tl { \seq_item:Nn \l_tmpa_seq {2} } + \tl_set:Nx \l__tblr_c_tl { \seq_item:Nn \l_tmpa_seq {3} } + \tl_set:Nx \l__tblr_d_tl { \seq_item:Nn \l_tmpa_seq {4} } + \tl_if_eq:NnT \l__tblr_a_tl { on } + { + \tl_if_eq:NnT \l__tblr_c_tl { off } + { + \__tblr_dash_style_make_boxes:nxx {#1} + { \dim_eval:n {\l__tblr_b_tl} } { \dim_eval:n {\l__tblr_d_tl} } + } + } + } + +\cs_new_protected:Npn \__tblr_dash_style_make_boxes:nnn #1 #2 #3 + { + \dim_set:Nn \l_tmpa_dim { #2 + #3 } + \tl_set:Nn \l__tblr_h_tl { \hbox_to_wd:nn } + \tl_put_right:Nx \l__tblr_h_tl { { \dim_use:N \l_tmpa_dim } } + \tl_put_right:Nn \l__tblr_h_tl + { + { \hss \vbox:n { \hbox_to_wd:nn {#2} {} \hrule height \rulewidth } \hss } + } + \prop_gput:NnV \g__tblr_defined_hdash_styles_prop {#1} \l__tblr_h_tl + %\prop_log:N \g__tblr_defined_hdash_styles_prop + \tl_set:Nn \l__tblr_v_tl { \vbox_to_ht:nn } + \tl_put_right:Nx \l__tblr_v_tl { { \dim_use:N \l_tmpa_dim } } + \tl_put_right:Nn \l__tblr_v_tl + { + { \vss \hbox:n { \vbox_to_ht:nn {#2} {} \vrule width \rulewidth } \vss } + } + \prop_gput:NnV \g__tblr_defined_vdash_styles_prop {#1} \l__tblr_v_tl + %\prop_log:N \g__tblr_defined_vdash_styles_prop + } +\cs_generate_variant:Nn \__tblr_dash_style_make_boxes:nnn { nxx } + +\cs_new_protected:Npn \__tblr_get_hline_dash_style:N #1 + { + \tl_set:Nx \l_tmpa_tl + { \prop_item:NV \g__tblr_defined_hdash_styles_prop #1 } + \tl_if_empty:NF \l_tmpa_tl { \tl_set_eq:NN #1 \l_tmpa_tl } + } + +\cs_new_protected:Npn \__tblr_get_vline_dash_style:N #1 + { + \tl_set:Nx \l_tmpa_tl + { \prop_item:NV \g__tblr_defined_vdash_styles_prop #1 } + \tl_if_empty:NF \l_tmpa_tl { \tl_set_eq:NN #1 \l_tmpa_tl } + } + +\NewDashStyle {dashed} {on ~ 2pt ~ off ~ 2pt} +\NewDashStyle {dotted} {on ~ 0.4pt ~ off ~ 1pt} + +%%% -------------------------------------------------------- +%% \section{Set Hlines and Vlines} +%%% -------------------------------------------------------- + +\tl_set:Nn \@tblr@dash { dash } +\tl_set:Nn \@tblr@text { text } + +\regex_const:Nn \c__tblr_is_color_key_regex { ^[A-Za-z] } + +%% \SetHlines command for setting every hline in the table +\NewTableCommand \SetHlines [3] [+] + { + \tblr_set_every_hline:nnn {#1} {#2} {#3} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_hline:nnn #1 #2 #3 + { + \group_begin: + \int_step_inline:nn { \int_eval:n { \c@rowcount + 1 } } + { + \int_set:Nn \c@rownum {##1} + \tblr_set_hline:nnn {#1} {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_hline in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_hline_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { + \int_compare:nNnTF { \tl_count:n {#1} } = {3} + { \tblr_set_every_hline:nnn #1 } + { \tblr_set_every_hline:nnn {1} #1 } + } + { \tblr_set_every_hline:nnn {1} {-} {#1} } + } + +%% Add \SetHline, \hline and \cline commands + +\tl_new:N \l__tblr_hline_count_tl % the count of all hlines +\tl_new:N \l__tblr_hline_num_tl % the index of the hline +\tl_new:N \l__tblr_hline_cols_tl % the columns of the hline +\tl_new:N \l__tblr_hline_dash_tl % dash style +\tl_new:N \l__tblr_hline_fg_tl % dash foreground +\tl_new:N \l__tblr_hline_wd_tl % dash width + +\NewTableCommand \cline [2] [] { \SetHline [=] {#2} {#1} } + +\NewTableCommand \hline [1] [] { \SetHline [+] {-} {#1} } + +%% #1: the index of the hline (may be + or =) +%% #2: which columns of the hline, separate by commas +%% #3: key=value pairs +\NewTableCommand \SetHline [3] [+] + { + \tblr_set_hline:nnn {#1} {#2} {#3} + } + +%% We need to check "text" key first +%% If it does exist and has empty value, then do nothing +\cs_new_protected:Npn \tblr_set_hline:nnn #1 #2 #3 + { + \group_begin: + \keys_set_groups:nnn { tblr-hline } { text } {#3} + \tl_if_eq:NnF \l__tblr_hline_dash_tl { \exp_not:N \@tblr@text } + { + \__tblr_set_hline_num:n {#1} + \tl_clear:N \l__tblr_hline_dash_tl + \keys_set:nn { tblr-hline } { dash = solid, #3 } + \__tblr_set_hline_cmd:n {#2} + } + \group_end: + } + +\cs_new_protected:Npn \tblr_set_hline:nnnn #1 #2 #3 #4 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_eval:n { \c@rowcount + 1 } } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@rownum {##1} + \tblr_set_hline:nnn {#2} {#3} {#4} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_hline in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_hline_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { + \int_compare:nNnTF { \tl_count:n {#2} } = {3} + { \tblr_set_hline:nnnn #1 #2 } + { \tblr_set_hline:nnnn #1 {1} #2 } + } + { \tblr_set_hline:nnnn #1 {1} {-} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_hline_aux:nn { Vn } + +%% #1: the index of hline to set (may be + or =) +\cs_new_protected:Npn \__tblr_set_hline_num:n #1 + { + \tl_clear:N \l__tblr_hline_num_tl + \tl_set:Nx \l__tblr_hline_count_tl + { \__tblr_prop_item:ne { hline } { [\int_use:N \c@rownum] / @hline-count } } + \tl_if_empty:NTF \l__tblr_hline_count_tl + { + \tl_set:Nx \l__tblr_hline_num_tl { 1 } + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum] / @hline-count } { 1 } + } + { + \tl_if_eq:nnTF {#1} {+} + { \__tblr_set_hline_num_incr: } + { + \tl_if_eq:nnTF {#1} {=} + { \tl_set_eq:NN \l__tblr_hline_num_tl \l__tblr_hline_count_tl } + { + \int_compare:nNnTF {#1} > { \l__tblr_hline_count_tl } + { \__tblr_set_hline_num_incr: } + { \tl_set:Nn \l__tblr_hline_num_tl {#1} } + } + } + } + } + +\cs_new_protected:Npn \__tblr_set_hline_num_incr: + { + \tl_set:Nx \l__tblr_hline_count_tl + { \int_eval:n { \l__tblr_hline_count_tl + 1 } } + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum] / @hline-count } { \l__tblr_hline_count_tl } + \tl_set_eq:NN \l__tblr_hline_num_tl \l__tblr_hline_count_tl + } + +\keys_define:nn { tblr-hline } + { + dash .code:n = \tl_set:Nn \l__tblr_hline_dash_tl { \exp_not:N \@tblr@dash #1 }, + text .code:n = \tl_set:Nn \l__tblr_hline_dash_tl { \exp_not:N \@tblr@text #1 }, + text .groups:n = { text }, + wd .code:n = \tl_set:Nn \l__tblr_hline_wd_tl { \dim_eval:n {#1} }, + fg .code:n = \tl_set:Nn \l__tblr_hline_fg_tl {#1}, + baseline .code:n = \__tblr_hline_set_baseline:n {#1}, + unknown .code:n = \__tblr_hline_unknown_key:V \l_keys_key_str, + } + +\cs_new_protected:Npn \__tblr_hline_unknown_key:n #1 + { + \prop_if_in:NnTF \g__tblr_defined_hdash_styles_prop {#1} + { \tl_set:Nn \l__tblr_hline_dash_tl { \exp_not:N \@tblr@dash #1 } } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { \tl_set:Nn \l__tblr_hline_fg_tl {#1} } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \tl_set:Nn \l__tblr_hline_wd_tl { \dim_eval:n {\l__tblr_v_tl} } + } + } + } +\cs_generate_variant:Nn \__tblr_hline_unknown_key:n { V } + +\cs_new_protected_nopar:Npn \__tblr_set_hline_cmd:n #1 + { + \__tblr_get_childs:nx {#1} { \int_use:N \c@colcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / @dash } + { \l__tblr_hline_dash_tl } + \tl_if_empty:NF \l__tblr_hline_wd_tl + { + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / wd } + { \l__tblr_hline_wd_tl } + } + \tl_if_empty:NF \l__tblr_hline_fg_tl + { + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / fg } + { \l__tblr_hline_fg_tl } + } + } + } + +\NewTableCommand \firsthline [1] [] { \SetHline [+] {-} { #1, baseline=below } } +\NewTableCommand \lasthline [1] [] { \SetHline [+] {-} { #1, baseline=above } } + +\cs_new_protected:Npn \__tblr_hline_set_baseline:n #1 + { + \tl_if_eq:nnTF {#1} {above} + { + \__tblr_prop_gput:nnx { table } + { baseline } { \int_eval:n { \c@rownum - 1 } } + } + { + \tl_if_eq:nnT {#1} {below} + { + \__tblr_prop_gput:nnx { table } { baseline } { \int_use:N \c@rownum } + } + } + } + +%% \SetVlines command for setting every vline in the table +\NewTableCommand \SetVlines [3] [+] + { + \tblr_set_every_vline:nnn {#1} {#2} {#3} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_vline:nnn #1 #2 #3 + { + \group_begin: + \int_step_inline:nn { \int_eval:n { \c@colcount + 1 } } + { + \int_set:Nn \c@colnum {##1} + \tblr_set_vline:nnn {#1} {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_vline in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_vline_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { + \int_compare:nNnTF { \tl_count:n {#1} } = {3} + { \tblr_set_every_vline:nnn #1 } + { \tblr_set_every_vline:nnn {1} #1 } + } + { \tblr_set_every_vline:nnn {1} {-} {#1} } + } + +%% Add \SetVline, \vline and \rline commands + +\tl_new:N \l__tblr_vline_count_tl % the count of all vlines +\tl_new:N \l__tblr_vline_num_tl % the index of the vline +\tl_new:N \l__tblr_vline_rows_tl % the rows of the vline +\tl_new:N \l__tblr_vline_dash_tl % dash style +\tl_new:N \l__tblr_vline_fg_tl % dash foreground +\tl_new:N \l__tblr_vline_wd_tl % dash width + +\NewTableCommand \rline [2] [] { \SetVline [=] {#2} {#1} } + +\NewTableCommand \vline [1] [] { \SetVline [+] {-} {#1} } + +%% #1: the index of the vline (may be + or =) +%% #2: which rows of the vline, separate by commas +%% #3: key=value pairs +\NewTableCommand \SetVline [3] [+] + { + \tblr_set_vline:nnn {#1} {#2} {#3} + } + +%% We need to check "text" key first +%% If it does exist and has empty value, then do nothing +\cs_new_protected:Npn \tblr_set_vline:nnn #1 #2 #3 + { + \group_begin: + \keys_set_groups:nnn { tblr-vline } { text } {#3} + \tl_if_eq:NnF \l__tblr_vline_dash_tl { \exp_not:N \@tblr@text } + { + \__tblr_set_vline_num:n {#1} + \tl_clear:N \l__tblr_vline_dash_tl + \keys_set:nn { tblr-vline } { dash = solid, #3 } + \__tblr_set_vline_cmd:n {#2} + } + \group_end: + } + +\cs_new_protected:Npn \tblr_set_vline:nnnn #1 #2 #3 #4 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_eval:n { \c@colcount + 1} } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@colnum {##1} + \tblr_set_vline:nnn {#2} {#3} {#4} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_vline in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_vline_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { + \int_compare:nNnTF { \tl_count:n {#2} } = {3} + { \tblr_set_vline:nnnn #1 #2 } + { \tblr_set_vline:nnnn #1 {1} #2 } + } + { \tblr_set_vline:nnnn #1 {1} {-} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_vline_aux:nn { Vn } + +%% #1: the index of vline to set (may be + or =) +\cs_new_protected:Npn \__tblr_set_vline_num:n #1 + { + \tl_clear:N \l__tblr_vline_num_tl + \tl_set:Nx \l__tblr_vline_count_tl + { \__tblr_prop_item:ne { vline } { [\int_use:N \c@colnum] / @vline-count } } + \tl_if_empty:NTF \l__tblr_vline_count_tl + { + \tl_set:Nx \l__tblr_vline_num_tl { 1 } + \__tblr_prop_gput:nxx { vline } + { [\int_use:N \c@colnum] / @vline-count } { 1 } + } + { + \tl_if_eq:nnTF {#1} {+} + { \__tblr_set_vline_num_incr: } + { + \tl_if_eq:nnTF {#1} {=} + { \tl_set_eq:NN \l__tblr_vline_num_tl \l__tblr_vline_count_tl } + { + \int_compare:nNnTF {#1} > { \l__tblr_vline_count_tl } + { \__tblr_set_vline_num_incr: } + { \tl_set:Nn \l__tblr_vline_num_tl {#1} } + } + } + } + } + +\cs_new_protected:Npn \__tblr_set_vline_num_incr: + { + \tl_set:Nx \l__tblr_vline_count_tl + { \int_eval:n { \l__tblr_vline_count_tl + 1 } } + \__tblr_prop_gput:nxx { vline } + { [\int_use:N \c@colnum] / @vline-count } { \l__tblr_vline_count_tl } + \tl_set_eq:NN \l__tblr_vline_num_tl \l__tblr_vline_count_tl + } + +\keys_define:nn { tblr-vline } + { + dash .code:n = \tl_set:Nn \l__tblr_vline_dash_tl { \exp_not:N \@tblr@dash #1 }, + text .code:n = \tl_set:Nn \l__tblr_vline_dash_tl { \exp_not:N \@tblr@text #1 }, + text .groups:n = { text }, + wd .code:n = \tl_set:Nn \l__tblr_vline_wd_tl { \dim_eval:n {#1} }, + fg .code:n = \tl_set:Nn \l__tblr_vline_fg_tl {#1}, + unknown .code:n = \__tblr_vline_unknown_key:V \l_keys_key_str, + } + +\cs_new_protected:Npn \__tblr_vline_unknown_key:n #1 + { + \prop_if_in:NnTF \g__tblr_defined_vdash_styles_prop {#1} + { \tl_set:Nn \l__tblr_vline_dash_tl { \exp_not:N \@tblr@dash #1 } } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { \tl_set:Nn \l__tblr_vline_fg_tl {#1} } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \tl_set:Nn \l__tblr_vline_wd_tl { \dim_eval:n {\l__tblr_v_tl} } + } + } + } +\cs_generate_variant:Nn \__tblr_vline_unknown_key:n { V } + +\cs_new_protected_nopar:Npn \__tblr_set_vline_cmd:n #1 + { + \__tblr_get_childs:nx {#1} { \int_use:N \c@rowcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \__tblr_prop_gput:nxx { vline } + { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / @dash } + { \l__tblr_vline_dash_tl } + \tl_if_empty:NF \l__tblr_vline_wd_tl + { + \__tblr_prop_gput:nxx { vline } + { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / wd } + { \l__tblr_vline_wd_tl } + } + \tl_if_empty:NF \l__tblr_vline_fg_tl + { + \__tblr_prop_gput:nxx { vline } + { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / fg } + { \l__tblr_vline_fg_tl } + } + } + } + +%%% -------------------------------------------------------- +%% \section{Set Cells} +%%% -------------------------------------------------------- + +%% \SetCells command for setting every cell in the table +\NewTableCommand \SetCells [2] [] + { + \tblr_set_every_cell:nn {#1} {#2} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_cell:nn #1 #2 + { + \group_begin: + \int_step_inline:nn { \c@rowcount } + { + \int_set:Nn \c@rownum {##1} + \int_step_inline:nn { \c@colcount } + { + \int_set:Nn \c@colnum {####1} + \tblr_set_cell:nn {#1} {#2} + } + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_cell in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_cell_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { \tblr_set_every_cell:nn #1 } + { \tblr_set_every_cell:nn {} {#1} } + } + +%% \SetCell command for multirow and/or multicolumn cells + +\NewTableCommand \SetCell [2] [] + { + \tblr_set_cell:nn { #1 } { #2 } + } + +\tl_new:N \l__tblr_row_span_num_tl +\tl_new:N \l__tblr_col_span_num_tl + +\cs_new_protected:Npn \tblr_set_cell:nn #1 #2 + { + \tl_set:Nn \l__tblr_row_span_num_tl { 1 } + \tl_set:Nn \l__tblr_col_span_num_tl { 1 } + \keys_set:nn { tblr-cell-span } { #1 } + \keys_set:nn { tblr-cell-spec } { #2 } + \__tblr_set_span_spec:VV \l__tblr_row_span_num_tl \l__tblr_col_span_num_tl + } +\cs_generate_variant:Nn \tblr_set_cell:nn { nV } + +\cs_new_protected:Npn \tblr_set_cell:nnnn #1 #2 #3 #4 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_use:N \c@rowcount } + \clist_set_eq:NN \l_tmpa_clist \l_tblr_childs_clist + \__tblr_get_childs:nx {#2} { \int_use:N \c@colcount } + \clist_set_eq:NN \l_tmpb_clist \l_tblr_childs_clist + \clist_map_inline:Nn \l_tmpa_clist + { + \int_set:Nn \c@rownum {##1} + \clist_map_inline:Nn \l_tmpb_clist + { + \int_set:Nn \c@colnum {####1} + \tblr_set_cell:nn {#3} {#4} + } + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_cell in different ways +%% Note that #1 is always of the type {}{} +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_cell_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { \tblr_set_cell:nnnn #1 #2 } + { \tblr_set_cell:nnnn #1 {} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_cell_aux:nn { Vn } + +\keys_define:nn { tblr-cell-span } + { + r .tl_set:N = \l__tblr_row_span_num_tl, + c .tl_set:N = \l__tblr_col_span_num_tl, + } + +\keys_define:nn { tblr-cell-spec } + { + l .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {l}, + c .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {c}, + r .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {r}, + t .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {t}, + p .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {t}, + m .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {m}, + b .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {b}, + h .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {h}, + f .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {f}, + wd .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / width} {#1}, + bg .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / background} {#1}, + unknown .code:n = \__tblr_cell_unknown_key:V \l_keys_key_str, + } + +\cs_new_protected:Npn \__tblr_cell_unknown_key:n #1 + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { + \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / background} {#1} + } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \__tblr_prop_gput:nxx {cell} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] / width } + { \dim_eval:n { \l__tblr_v_tl } } + } + } +\cs_generate_variant:Nn \__tblr_cell_unknown_key:n { V } + +\cs_new_protected:Npn \__tblr_set_span_spec:nn #1 #2 + { + \int_compare:nNnT { #1 } > { 1 } + { + \__tblr_prop_gput:nnn {table} {rowspan} {true} + \__tblr_prop_gput:nxn {cell} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] / rowspan } { #1 } + } + \int_compare:nNnT { #2 } > { 1 } + { + \__tblr_prop_gput:nnn {table} {colspan} {true} + \__tblr_prop_gput:nxn {cell} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] / colspan } { #2 } + } + \int_step_variable:nnNn + { \int_use:N \c@rownum } { \int_eval:n { \c@rownum + #1 - 1 } } \l__tblr_i_tl + { + \int_step_variable:nnNn + { \int_use:N \c@colnum } { \int_eval:n { \c@colnum + #2 - 1 } } + \l__tblr_j_tl + { + \bool_lazy_and:nnF + { \int_compare_p:nNn { \l__tblr_i_tl } = { \c@rownum } } + { \int_compare_p:nNn { \l__tblr_j_tl } = { \c@colnum } } + { + \__tblr_prop_gput:nxx {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} + } + \int_compare:nNnF { \l__tblr_i_tl } = { \c@rownum } + { + \__tblr_prop_gput:nxx {hline} + { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} + } + \int_compare:nNnF { \l__tblr_j_tl } = { \c@colnum } + { + \__tblr_prop_gput:nxx {vline} + { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} + } + } + } + } +\cs_generate_variant:Nn \__tblr_set_span_spec:nn { VV } + +%% Legacy \multicolumn and \multirow commands +%% Both of them could be replaced with \SetCell command +%% Note that they don't have cell text as the last arguments + +%% If \multicolumn is followed by \multirow, +%% We need to call \tblr_set_cell together +%% in order to omit all hlines inside the span cell. +\tl_new:N \g__tblr_multicolumn_num_tl +\tl_new:N \g__tblr_multicolumn_spec_tl + +%% There maybe p{2em} inside #2 of \multicolumn command +\NewTableCommand \multicolumn [2] + { + \tl_gclear:N \g__tblr_multicolumn_num_tl + \tl_gclear:N \g__tblr_multicolumn_spec_tl + \tl_map_inline:nn {#2} + { + \bool_lazy_and:nnF + { \tl_if_single_token_p:n {##1} } + { \token_if_eq_charcode_p:NN ##1 | } + { \tl_put_right:Nn \g__tblr_multicolumn_spec_tl {,##1} } + } + \peek_meaning:NTF \multirow + { \tl_gset:Nn \g__tblr_multicolumn_num_tl {#1} } + { \tblr_set_cell:nV { c = #1 } \g__tblr_multicolumn_spec_tl } + } + +\NewTableCommand \multirow [3] [m] + { + \tl_if_eq:nnTF {#1} {c} + { \tl_set:Nn \l_tmpa_tl {, m} } + { + \tl_if_eq:nnTF {#1} {t} + { \tl_set:Nn \l_tmpa_tl {, h} } + { \tl_if_eq:nnTF {#1} {b} + { \tl_set:Nn \l_tmpa_tl {, f} } + { \tl_set:Nn \l_tmpa_tl {, #1} } + } + } + \tl_if_eq:nnF {#3} {*} + { \tl_if_eq:nnF {#3} {=} { \tl_put_right:Nn \l_tmpa_tl {, wd=#3} } } + \tl_if_empty:NTF \g__tblr_multicolumn_num_tl + { \tblr_set_cell:nV { r = #2 } \l_tmpa_tl } + { + \tl_put_left:NV \l_tmpa_tl \g__tblr_multicolumn_spec_tl + \exp_args:Nx \tblr_set_cell:nV + { c = \g__tblr_multicolumn_num_tl, r = #2 } \l_tmpa_tl + \tl_gclear:N \g__tblr_multicolumn_num_tl + } + } + +%%% -------------------------------------------------------- +%% \section{Set Columns and Rows} +%%% -------------------------------------------------------- + +%% \SetColumns command for setting every column in the table +\NewTableCommand \SetColumns [2] [] + { + \tblr_set_every_column:nn {#1} {#2} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_column:nn #1 #2 + { + \group_begin: + \int_step_inline:nn { \c@colcount } + { + \int_set:Nn \c@colnum {##1} + \tblr_set_column:nn {#1} {#2} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_column in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_column_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { \tblr_set_every_column:nn #1 } + { \tblr_set_every_column:nn {} {#1} } + } + +%% \SetColumn command for current column or each cells in the column + +\NewTableCommand \SetColumn [2] [] + { + \tblr_set_column:nn {#1} {#2} + } + +\cs_new_protected:Npn \tblr_set_column:nn #1 #2 + { + \keys_set:nn { tblr-column } {#2} + } + +\cs_new_protected:Npn \tblr_set_column:nnn #1 #2 #3 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_use:N \c@colcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@colnum {##1} + \tblr_set_column:nn {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_column in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_column_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { \tblr_set_column:nnn #1 #2 } + { \tblr_set_column:nnn #1 {} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_column_aux:nn { Vn } + +\keys_define:nn { tblr-column } + { + l .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { halign } {l}, + c .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { halign } {c}, + r .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { halign } {r}, + t .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {t}, + p .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {t}, + m .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {m}, + b .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {b}, + h .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {h}, + f .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {f}, + bg .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { background } {#1}, + wd .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / width } { \dim_eval:n {#1} }, + co .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / coefficient } {#1}, + leftsep .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / leftsep } { \dim_eval:n {#1} }, + rightsep .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / rightsep } { \dim_eval:n {#1} }, + colsep .meta:n = { leftsep = #1, rightsep = #1}, + leftsep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { column } + { [\int_use:N \c@colnum] / leftsep } { \dim_eval:n {#1} }, + rightsep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { column } + { [\int_use:N \c@colnum] / rightsep } { \dim_eval:n {#1} }, + colsep+ .meta:n = { leftsep+ = #1, rightsep+ = #1}, + unknown .code:n = \__tblr_column_unknown_key:V \l_keys_key_str, + } + +%% #1: column number; #2: key; #3: value +\cs_new_protected:Npn \__tblr_set_key_for_every_column_cell:nnn #1 #2 #3 + { + \int_step_inline:nn { \c@rowcount } + { + \__tblr_prop_gput:nxn {cell} { [##1][#1] / #2 } {#3} + } + } + +\regex_const:Nn \c__tblr_is_number_key_regex { ^[\+\-]? (\d+|\d*\.\d+)$ } + +\cs_new_protected:Npn \__tblr_column_unknown_key:n #1 + { + \regex_match:NnTF \c__tblr_is_number_key_regex {#1} + { + \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / coefficient } {#1} + } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { + \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { background } {#1} + } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / width } { \dim_eval:n { \l__tblr_v_tl } } + } + } + } +\cs_generate_variant:Nn \__tblr_column_unknown_key:n { V } + +%% \SetRows command for setting every row in the table +\NewTableCommand \SetRows [2] [] + { + \tblr_set_every_row:nn {#1} {#2} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_row:nn #1 #2 + { + \group_begin: + \int_step_inline:nn { \c@rowcount } + { + \int_set:Nn \c@rownum {##1} + \tblr_set_row:nn {#1} {#2} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_row in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_row_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { \tblr_set_every_row:nn #1 } + { \tblr_set_every_row:nn {} {#1} } + } + +%% \SetRow command for current row or each cells in the row + +\NewTableCommand \SetRow [2] [] + { + \tblr_set_row:nn {#1} {#2} + } + +\cs_new_protected:Npn \tblr_set_row:nn #1 #2 + { + \keys_set:nn { tblr-row } {#2} + } + +\cs_new_protected:Npn \tblr_set_row:nnn #1 #2 #3 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_use:N \c@rowcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@rownum {##1} + \tblr_set_row:nn {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_row in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_row_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { \tblr_set_row:nnn #1 #2 } + { \tblr_set_row:nnn #1 {} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_row_aux:nn { Vn } + +\keys_define:nn { tblr-row } + { + l .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { halign } {l}, + c .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { halign } {c}, + r .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { halign } {r}, + t .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {t}, + p .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {t}, + m .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {m}, + b .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {b}, + h .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {h}, + f .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {f}, + bg .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { background } {#1}, + ht .code:n = \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } + { height } { \dim_eval:n {#1} }, + co .code:n = \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } + { coefficient } {#1}, + abovesep .code:n = \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } + { abovesep } { \dim_eval:n {#1} }, + belowsep .code:n = \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } + { belowsep } { \dim_eval:n {#1} }, + rowsep .meta:n = { abovesep = #1, belowsep = #1}, + abovesep+ .code:n = \__tblr_data_gadd_dimen_value:nene { row } + { \int_use:N \c@rownum } { abovesep } { \dim_eval:n {#1} }, + belowsep+ .code:n = \__tblr_data_gadd_dimen_value:nene { row } + { \int_use:N \c@rownum } { belowsep } { \dim_eval:n {#1} }, + rowsep+ .meta:n = { abovesep+ = #1, belowsep+ = #1}, + nobreak .code:n = \__tblr_prop_gput:nxx { row } + { [\int_eval:n {\c@rownum - 1}] / nobreak } { true }, + unknown .code:n = \__tblr_row_unknown_key:V \l_keys_key_str, + } + +%% #1: row number; #2: key; #3: value +\cs_new_protected:Npn \__tblr_set_key_for_every_row_cell:nnn #1 #2 #3 + { + \int_step_inline:nn { \c@colcount } + { + \__tblr_prop_gput:nxn {cell} { [#1][##1] / #2 } {#3} + } + } + +\cs_new_protected:Npn \__tblr_row_unknown_key:n #1 + { + \regex_match:NnTF \c__tblr_is_number_key_regex {#1} + { + \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } + { coefficient } {#1} + } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { + \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { background } {#1} + } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } + { height } { \dim_eval:n { \l__tblr_v_tl } } + } + } + } +\cs_generate_variant:Nn \__tblr_row_unknown_key:n { V } + +%%% -------------------------------------------------------- +%% \section{Column Types and Row Types} +%%% -------------------------------------------------------- + +%% Some primitive column/row types + +\str_const:Nn \c_tblr_primitive_colrow_types_str { Q | < > } +\tl_new:N \g__tblr_expanded_colrow_spec_tl + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ Q } { O{} } + { + \keys_set:nn { tblr-column } { #1 } + \int_incr:N \c@colnum + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ Q } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { Q[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ Q } { O{} } + { + \keys_set:nn { tblr-row } { #1 } + \int_incr:N \c@rownum + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ Q } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { Q[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ | } { O{} } + { + \vline [#1] + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ | } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { |[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ | } { O{} } + { + \hline [#1] + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ | } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { |[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ > } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_prop_gput:nxx + { column } + { [\int_use:N \c@colnum] / leftsep} + { \dim_eval:n { #1 } } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\l__tblr_i_tl][\int_use:N \c@colnum] } + } + \tl_put_left:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\l__tblr_i_tl][\int_use:N \c@colnum] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ > } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { >[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ > } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } + { abovesep } { \dim_eval:n { #1 } } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\int_use:N \c@rownum][\l__tblr_j_tl] } + } + \tl_put_left:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\int_use:N \c@rownum][\l__tblr_j_tl] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ > } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { >[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ < } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_prop_gput:nxx + { column } + { [\int_eval:n {\c@colnum - 1}] / rightsep } + { \dim_eval:n { #1 } } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\l__tblr_i_tl][\int_eval:n {\c@colnum - 1}] } + } + \tl_put_right:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\l__tblr_i_tl][\int_eval:n {\c@colnum - 1}] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ < } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { <[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ < } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_data_gput:nene { row } { \int_eval:n {\c@rownum - 1} } + { belowsep } { \dim_eval:n {#1} } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\int_eval:n {\c@rownum - 1}][\l__tblr_j_tl] } + } + \tl_put_right:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\int_eval:n {\c@rownum - 1}][\l__tblr_j_tl] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ < } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { <[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +%% \NewColumnType/\NewRowType command and predefined column/row types + +\str_new:N \g_tblr_used_column_types_str +\str_gset_eq:NN \g_tblr_used_column_types_str \c_tblr_primitive_colrow_types_str + +\str_new:N \g_tblr_used_row_types_str +\str_gset_eq:NN \g_tblr_used_row_types_str \c_tblr_primitive_colrow_types_str + +\bool_new:N \g__tblr_colrow_spec_expand_stop_bool +\tl_new:N \g__tblr_column_or_row_tl + +\msg_new:nnn { tabularray } { used-colrow-type } + { #1 ~ type ~ name ~ #2 ~ has ~ been ~ used! } + +\NewDocumentCommand \NewColumnType { m O{0} o m } + { + \tl_set:Nn \g__tblr_column_or_row_tl { column } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + } + +\NewDocumentCommand \NewRowType { m O{0} o m } + { + \tl_set:Nn \g__tblr_column_or_row_tl { row } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + } + +\NewDocumentCommand \NewColumnRowType { m O{0} o m } + { + \tl_set:Nn \g__tblr_column_or_row_tl { column } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + \tl_set:Nn \g__tblr_column_or_row_tl { row } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + } + +\cs_new_protected:Npn \__tblr_new_column_or_row_type:nnnn #1 #2 #3 #4 + { + \str_if_in:cnTF { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } {#1} + { + \tl_if_eq:NnTF \g__tblr_column_or_row_tl { row } + { \msg_warning:nnnn { tabularray } { used-colrow-type } { Row } {#1} } + { \msg_warning:nnnn { tabularray } { used-colrow-type } { Column } {#1} } + \str_log:c { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } + } + { + \__tblr_make_xparse_arg_spec:nnN {#2} {#3} \l__tblr_a_tl + \exp_args:NcV \NewDocumentCommand + { tblr_ \g__tblr_column_or_row_tl _type_ #1 } \l__tblr_a_tl + { + \bool_gset_false:N \g__tblr_colrow_spec_expand_stop_bool + \tl_gput_right:Nf \g__tblr_expanded_colrow_spec_tl {#4} + \__tblr_expand_colrow_spec_next:N + } + \str_gput_right:cn + { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } {#1} + } + } + +\NewColumnRowType { l } { Q[l] } +\NewColumnRowType { c } { Q[c] } +\NewColumnRowType { r } { Q[r] } + +\NewColumnType { t } [1] { Q[t,wd=#1] } +\NewColumnType { p } [1] { Q[p,wd=#1] } +\NewColumnType { m } [1] { Q[m,wd=#1] } +\NewColumnType { b } [1] { Q[b,wd=#1] } +\NewColumnType { h } [1] { Q[h,wd=#1] } +\NewColumnType { f } [1] { Q[f,wd=#1] } + +\NewRowType { t } [1] { Q[t,ht=#1] } +\NewRowType { p } [1] { Q[p,ht=#1] } +\NewRowType { m } [1] { Q[m,ht=#1] } +\NewRowType { b } [1] { Q[b,ht=#1] } +\NewRowType { h } [1] { Q[h,ht=#1] } +\NewRowType { f } [1] { Q[f,ht=#1] } + +\NewColumnRowType { X } [1][] { Q[co=1,#1] } + +\NewColumnRowType { ! } [1] { |[text={#1}] } +\NewColumnRowType { @ } [1] { <[0pt]{} |[text={#1}] >[0pt]{} } +\NewColumnRowType { * } [2] { \prg_replicate:nn {#1} {#2} } + +\cs_new_protected:Npn \__tblr_parse_colrow_spec:nn #1 #2 + { + \tl_gset:Nn \g__tblr_column_or_row_tl {#1} + \tl_gset:Nn \g__tblr_expanded_colrow_spec_tl {#2} + \__tblr_expand_colrow_spec:N \g__tblr_expanded_colrow_spec_tl + \__tblr_execute_colrow_spec:N \g__tblr_expanded_colrow_spec_tl + } + +%% Expand defined column/row types + +\cs_new_protected:Npn \__tblr_expand_colrow_spec:N #1 + { + \bool_do_until:Nn \g__tblr_colrow_spec_expand_stop_bool + { + \LogTblrTracing { colspec, rowspec } + \bool_gset_true:N \g__tblr_colrow_spec_expand_stop_bool + \tl_set_eq:NN \l_tmpa_tl #1 + \tl_gclear:N #1 + \exp_last_unbraced:NV + \__tblr_expand_colrow_spec_next:N \l_tmpa_tl \scan_stop: + } + } + +\msg_new:nnn { tabularray } { unexpandable-colrow-type } + { Unexpandable ~ command ~ #2 inside ~ #1 ~ type! } + +\msg_new:nnn { tabularray } { unknown-colrow-type } + { Unknown ~ #1 ~ type ~ #2! } + +\cs_new_protected:Npn \__tblr_expand_colrow_spec_next:N #1 + { + \token_if_eq_catcode:NNTF #1 \scan_stop: + { + \token_if_eq_meaning:NNF #1 \scan_stop: + { + \msg_error:nnVn { tabularray } { unexpandable-colrow-type } + \g__tblr_column_or_row_tl {#1} + } + } + { + \str_if_in:cnTF { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } {#1} + { \cs:w tblr_ \g__tblr_column_or_row_tl _type_ #1 \cs_end: } + { + \msg_error:nnVn { tabularray } { unknown-colrow-type } + \g__tblr_column_or_row_tl {#1} + \str_log:c { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } + } + } + } + +%% Execute primitive column/row types + +\cs_new_protected:Npn \__tblr_execute_colrow_spec:N #1 + { + \tl_if_eq:NnTF \g__tblr_column_or_row_tl { row } + { \int_set:Nn \c@rownum {1} } + { \int_set:Nn \c@colnum {1} } + \exp_last_unbraced:NV \__tblr_execute_colrow_spec_next:N #1 \scan_stop: + } + +\cs_new_protected:Npn \__tblr_execute_colrow_spec_next:N #1 + { + \token_if_eq_meaning:NNF #1 \scan_stop: + { \cs:w tblr_primitive_ \g__tblr_column_or_row_tl _type_ #1 \cs_end: } + } + +%%% -------------------------------------------------------- +%% \section{Tabularray Environments} +%%% -------------------------------------------------------- + +\tl_new:N \l__tblr_env_name_tl +\bool_new:N \l__tblr_math_mode_bool + +\NewDocumentEnvironment { tblr } { O{c} m +b } + { + \tl_set:Nn \l__tblr_env_name_tl { tblr } + \mode_if_math:TF + { \bool_set_true:N \l__tblr_math_mode_bool } + { \bool_set_false:N \l__tblr_math_mode_bool } + \buildtblr {#1} {#2} {#3} + } { } + +%% Read, split and build the table + +\cs_new_protected:Npn \buildtblr #1 #2 #3 + { + \mode_leave_vertical: + \int_gincr:N \g_tblr_level_int + \__tblr_clear_prop_lists: + \__tblr_enable_table_commands: + \__tblr_split_table:n { #3 } + \LogTblrTracing { command } + \bool_if:NT \g__tblr_use_intarray_bool { \__tblr_initial_table_data: } + \__tblr_initial_table_spec: + \LogTblrTracing { table } + \__tblr_parse_table_spec:n { #2 } + \__tblr_execute_table_commands: + \__tblr_disable_table_commands: + \__tblr_calc_cell_and_line_sizes: + \__tblr_build_whole:n { #1 } + \int_gdecr:N \g_tblr_level_int + } + +\cs_new_protected:Npn \__tblr_clear_prop_lists: + { + \prop_gclear_new:c { g_tblr_text_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_command_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_table_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_row_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_column_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_cell_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_hline_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_vline_ \int_use:N \g_tblr_level_int _prop } + } + +%% Insert and remove braces for nesting environments inside cells +%% These make line split and cell split workable +%% We need to replace N times for N level nestings +\regex_const:Nn \c__tblr_insert_braces_regex + { + \c{begin} \cB\{ (\c[^BE].*) \cE\} (.*?) \c{end} \cB\{ (\c[^BE].*) \cE\} + } +\tl_const:Nn \c__tblr_insert_braces_tl + { + \c{begin} \cB\{ \cB\{ \1 \cE\} \2 \c{end} \cE\} \cB\{ \3 \cE\} + } +\regex_const:Nn \c__tblr_remove_braces_regex + { + \c{begin} \cB\{ \cB\{ (.*?) \c{end} \cE\} + } +\tl_const:Nn \c__tblr_remove_braces_tl + { + \c{begin} \cB\{ \1 \c{end} + } +\cs_new_protected:Npn \__tblr_insert_braces:N #1 + { + \regex_replace_all:NVN \c__tblr_insert_braces_regex \c__tblr_insert_braces_tl #1 + \regex_replace_all:NVN \c__tblr_insert_braces_regex \c__tblr_insert_braces_tl #1 + } +\cs_new_protected:Npn \__tblr_remove_braces:N #1 + { + \regex_replace_all:NVN \c__tblr_remove_braces_regex \c__tblr_remove_braces_tl #1 + \regex_replace_all:NVN \c__tblr_remove_braces_regex \c__tblr_remove_braces_tl #1 + } + +%% Split table content to cells and store them +%% #1: table content + +\seq_new:N \l_tblr_lines_seq + +\cs_new_protected:Npn \__tblr_split_table:n #1 + { + \int_zero:N \c@rowcount + \int_zero:N \c@colcount + \__tblr_split_table_to_lines:nN { #1 } \l_tblr_lines_seq + \__tblr_split_lines_to_cells:N \l_tblr_lines_seq + } + +%% Split table content to a sequence of lines +%% #1: table content, #2: resulting sequence of lines +\cs_new_protected:Npn \__tblr_split_table_to_lines:nN #1 #2 + { + \tl_set:Nn \l_tmpa_tl { #1 } + \__tblr_insert_braces:N \l_tmpa_tl + \seq_set_split:NnV \l_tmpa_seq { \\ } \l_tmpa_tl + \seq_clear:N #2 + \seq_map_inline:Nn \l_tmpa_seq + { + \tl_if_head_eq_meaning:nNTF {##1} * + { + \tl_set:Nn \l__tblr_b_tl { \SetRow{nobreak} } + \tl_set:Nx \l__tblr_c_tl { \tl_tail:n {##1} } + \tl_trim_spaces:N \l__tblr_c_tl %% Ignore spaces between * and [dimen] + \tl_log:N \l__tblr_c_tl + \tl_if_head_eq_meaning:VNT \l__tblr_c_tl [ + { + \tl_put_right:Nn \l__tblr_b_tl { \RowBefore@AddBelowSep } + } + \tl_put_right:NV \l__tblr_b_tl \l__tblr_c_tl + \seq_put_right:NV #2 \l__tblr_b_tl + } + { + \tl_if_head_eq_meaning:nNTF { ##1 } [ + { \seq_put_right:Nn #2 { \RowBefore@AddBelowSep ##1 } } + { \seq_put_right:Nn #2 { ##1 } } + } + } + \int_set:Nn \c@rowcount { \seq_count:N #2 } + } + +%% Treat \\[dimen] command +\NewTableCommand \RowBefore@AddBelowSep [1] [] + { + \IfValueT { #1 } + { + \__tblr_data_gadd_dimen_value:nene { row } + { \int_eval:n {\c@rownum - 1} } { belowsep } {#1} + } + } + +%% Split table lines to cells and store them +%% #1: sequence of lines +\cs_new_protected:Npn \__tblr_split_lines_to_cells:N #1 + { + \seq_map_indexed_function:NN #1 \__tblr_split_one_line:nn + \LogTblrTracing { text } + } + +%% Split one line into cells and store them +%% #1: row number, #2 the line text +\cs_new_protected:Npn \__tblr_split_one_line:nn #1 #2 + { + \seq_set_split:Nnn \l_tmpa_seq { & } { #2 } + \int_set:Nn \c@rownum {#1} + \int_zero:N \c@colnum + \seq_map_inline:Nn \l_tmpa_seq + { + \tl_set:Nn \l_tmpa_tl { ##1 } + \__tblr_remove_braces:N \l_tmpa_tl + \int_incr:N \c@colnum + \__tblr_extract_table_commands:N \l_tmpa_tl + \__tblr_prop_gput:nxV {text} { [#1][\int_use:N \c@colnum] } \l_tmpa_tl + \__tblr_add_multicolumn_empty_cell: + } + %% Decrease row count by 1 if the last row has only one empty cell text + %% We need to do it here since the > or < column type may add text to cells + \bool_lazy_and:nnTF + { \int_compare_p:nNn {\c@colnum} = {1} } + { \tl_if_empty_p:N \l_tmpa_tl } + { \int_decr:N \c@rowcount } + { + \__tblr_prop_gput:nnx + {row} { [#1] / cell-number } { \int_use:N \c@colnum } + \int_compare:nT { \c@colnum > \c@colcount } + { + \int_set_eq:NN \c@colcount \c@colnum + } + } + } + +%% Add empty cells after the \multicolumn span cell +\cs_new_protected:Npn \__tblr_add_multicolumn_empty_cell: + { + \int_step_inline:nn { \l__multicolumn_cell_number_int - 1 } + { + \int_incr:N \c@colnum + \__tblr_prop_gput:nxn {text} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] } { } + } + } + +%%% -------------------------------------------------------- +%% \section{Extract Table Commands from Cell Text} +%%% -------------------------------------------------------- + +%% Extract table commands defined with \NewTableCommand from cell text + +\clist_gset:Nn \g__tblr_table_commands_unbrace_next_clist {\multirow, \multicolumn} +\bool_new:N \l__tblr_table_command_unbrace_next_bool +\int_new:N \l__multicolumn_cell_number_int +\tl_new:N \l__tblr_saved_table_commands_before_cell_text_tl +\tl_new:N \l__tblr_saved_cell_text_after_table_commands_tl + +\cs_new_protected:Npn \__tblr_extract_table_commands:N #1 + { + \tl_clear:N \l__tblr_saved_table_commands_before_cell_text_tl + \tl_clear:N \l__tblr_saved_cell_text_after_table_commands_tl + \int_set:Nn \l__multicolumn_cell_number_int {1} + \exp_last_unbraced:NV \__tblr_extract_table_commands_next:w #1 \scan_stop: + \tl_if_empty:NF \l__tblr_saved_table_commands_before_cell_text_tl + { + \__tblr_prop_gput:nxV { command } + {[\int_use:N \c@rownum][\int_use:N \c@colnum]} + \l__tblr_saved_table_commands_before_cell_text_tl + } + \tl_set_eq:NN #1 \l__tblr_saved_cell_text_after_table_commands_tl + } + +%% #1 maybe a single token or multiple tokens given in braces +\cs_new_protected:Npn \__tblr_extract_table_commands_next:w #1 + { + \clist_if_in:NnTF \g__tblr_table_commands_clist { #1 } + { + \clist_if_in:NnTF \g__tblr_table_commands_unbrace_next_clist { #1 } + { \bool_set_true:N \l__tblr_table_command_unbrace_next_bool } + { \bool_set_false:N \l__tblr_table_command_unbrace_next_bool } + \token_if_eq_meaning:NNTF #1 \multicolumn + { \__tblr_extract_multicolumn_command:Nn #1 } + { \__tblr_extract_one_table_command:N #1 } + } + { + \tl_if_single_token:nTF {#1} + { + \token_if_eq_meaning:NNF #1 \scan_stop: + { \__tblr_save_real_cell_text:w #1 } + } + { \__tblr_save_real_cell_text:w {#1} } + } + } + +\cs_new_protected:Npn \__tblr_extract_multicolumn_command:Nn #1 #2 + { + \int_set:Nn \l__multicolumn_cell_number_int {#2} + \__tblr_extract_one_table_command:N #1 {#2} + } + +\cs_new_protected:Npn \__tblr_extract_one_table_command:N #1 + { + \int_set:Nn \l__tblr_a_int + { \cs:w g__tblr_table_cmd_ \cs_to_str:N #1 _arg_numb_tl \cs_end: } + \tl_put_right:Nn \l__tblr_saved_table_commands_before_cell_text_tl {#1} + \int_compare:nNnTF {\l__tblr_a_int} < {0} + { + \int_set:Nn \l__tblr_a_int { \int_abs:n {\l__tblr_a_int} - 1 } + \peek_charcode:NTF [ + { \__tblr_extract_table_command_arg_o:w } + { \__tblr_extract_table_command_arg_next: } + } + { \__tblr_extract_table_command_arg_next: } + } + +\cs_new_protected:Npn \__tblr_extract_table_command_arg_o:w [#1] + { + \tl_put_right:Nn \l__tblr_saved_table_commands_before_cell_text_tl { [#1] } + \__tblr_extract_table_command_arg_next: + } + +\cs_new_protected:Npn \__tblr_extract_table_command_arg_m:n #1 + { + \tl_put_right:Nn \l__tblr_saved_table_commands_before_cell_text_tl { {#1} } + \__tblr_extract_table_command_arg_next: + } + +\cs_new_protected:Npn \__tblr_extract_table_command_arg_next: + { + \int_compare:nNnTF {\l__tblr_a_int} > {0} + { + \int_decr:N \l__tblr_a_int + \__tblr_extract_table_command_arg_m:n + } + { + \bool_if:NTF \l__tblr_table_command_unbrace_next_bool + { \__tblr_last_unbraced:Nn \__tblr_extract_table_commands_next:w } + { \__tblr_extract_table_commands_next:w } + } + } + +\cs_new_protected:Npn \__tblr_last_unbraced:Nn #1 #2 { #1 #2 } + +%% The outermost set of braces of cell text #1 will be removed +\cs_new_protected:Npn \__tblr_save_real_cell_text:w #1 \scan_stop: + { + \tl_set:Nn \l__tblr_saved_cell_text_after_table_commands_tl {#1} + } + +%%% -------------------------------------------------------- +%% \section{Initial Table Specifications} +%%% -------------------------------------------------------- + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_table_prop + { + stretch = 1, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_rows_prop + { + abovesep = 2pt, + belowsep = 2pt, + @row-height = 0pt, + @row-head = 0pt, + @row-foot = 0pt, + @row-upper = 0pt, + @row-lower = 0pt, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_columns_prop + { + leftsep = 6pt, + rightsep = 6pt, + @col-width = 0pt, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_cells_prop + { + halign = l, + valign = t, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_hlines_prop + { + rulesep = 2pt, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_vlines_prop + { + rulesep = 2pt, + } + +\cs_new_protected:Npn \__tblr_initial_table_spec: + { + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _table_prop } + { + \__tblr_prop_gput:nxn { table } { ##1 } {##2} + } + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _rows_prop } + { + \__tblr_data_gput:nVnn { row } \l__tblr_i_tl {##1} {##2} + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _hlines_prop } + { + \__tblr_prop_gput:nxn { hline } { [\l__tblr_i_tl] / ##1 } {##2} + } + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \prop_map_inline:cn + { g__tblr_default_ \l__tblr_env_name_tl _cells_prop } + { + \__tblr_prop_gput:nxn { cell } + { [\l__tblr_i_tl][\l__tblr_j_tl] / ##1 } {##2} + } + } + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _hlines_prop } + { + \__tblr_prop_gput:nxn { hline } + { [\int_eval:n { \c@rowcount + 1}] / ##1 } {##2} + } + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _columns_prop } + { + \__tblr_prop_gput:nxn { column } { [\l__tblr_j_tl] / ##1 } {##2} + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _vlines_prop } + { + \__tblr_prop_gput:nxn { vline } { [\l__tblr_j_tl] / ##1 } {##2} + } + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _vlines_prop } + { + \__tblr_prop_gput:nxn { vline } + { [\int_eval:n { \c@colcount + 1}] / ##1 } {##2} + } + \keys_set:nv { tblr } { l__tblr_default_ \l__tblr_env_name_tl _tl } + } + +\tl_new:N \l__tblr_default_tblr_tl + +%% #1: env name; #2: options +\NewDocumentCommand \SetTabularrayDefault { O{tblr} m } + { + \tl_put_right:cn { l__tblr_default_ #1 _tl } { , #2 } + } +\cs_new_eq:NN \SetTblrDefault \SetTabularrayDefault + +%%% -------------------------------------------------------- +%% \section{Parse Table Specifications} +%%% -------------------------------------------------------- + +\clist_new:N \g__tblr_table_known_keys_clist +\clist_gset:Nn \g__tblr_table_known_keys_clist + { + long, colspec, rowspec, width, hspan, stretch, + column, row, cell, vline, hline, columns, rows, cells, vlines, hlines, + leftsep, rightsep, colsep, abovesep, belowsep, rowsep, + } + +\bool_new:N \l__tblr_long_table_bool + +\keys_define:nn { tblr } + { + long .bool_set:N = \l__tblr_long_table_bool, + colspec .code:n = \__tblr_parse_colrow_spec:nn { column } {#1}, + rowspec .code:n = \__tblr_parse_colrow_spec:nn { row } {#1}, + width .code:n = \__tblr_keys_gput:nx { width } { \dim_eval:n {#1} }, + hspan .code:n = \__tblr_keys_gput:nn { hspan } {#1}, + stretch .code:n = \__tblr_keys_gput:nn { stretch } {#1}, + columns .code:n = \__tblr_set_every_column_aux:n {#1}, + rows .code:n = \__tblr_set_every_row_aux:n {#1}, + cells .code:n = \__tblr_set_every_cell_aux:n {#1}, + hlines .code:n = \__tblr_set_every_hline_aux:n {#1}, + vlines .code:n = \__tblr_set_every_vline_aux:n {#1}, + leftsep .code:n = \tblr_set_every_column:nn { } { leftsep = #1 }, + rightsep .code:n = \tblr_set_every_column:nn { } { rightsep = #1 }, + colsep .meta:n = { leftsep = #1, rightsep = #1 }, + abovesep .code:n = \tblr_set_every_row:nn { } { abovesep = #1 }, + belowsep .code:n = \tblr_set_every_row:nn { } { belowsep = #1 }, + rowsep .meta:n = { abovesep = #1, belowsep = #1 }, + unknown .code:n = \__tblr_table_special_key:Vn \l_keys_key_str {#1}, + } + +\regex_const:Nn \c__tblr_split_key_name_regex { ^ ( [a-z] + ) ( . * ) } + +\cs_new_protected:Npn \__tblr_table_special_key:nn #1 #2 + { + \regex_extract_once:NnNT \c__tblr_split_key_name_regex {#1} \l_tmpa_seq + { + \tl_set:Nx \l__tblr_a_tl { \seq_item:Nn \l_tmpa_seq {2} } + \tl_set_rescan:Nnx \l__tblr_b_tl {} { \seq_item:Nn \l_tmpa_seq {3} } + \cs:w __tblr_set_ \l__tblr_a_tl _aux:Vn \cs_end: \l__tblr_b_tl {#2} + } + } +\cs_generate_variant:Nn \__tblr_table_special_key:nn { Vn } + +%% If the first key name is known, treat #1 is the table spec; +%% otherwise, treat #1 as colspec. + +\regex_const:Nn \c__tblr_first_key_name_regex { ^ \s * ( [A-Za-z\-] + ) } + +\cs_new_protected:Npn \__tblr_parse_table_spec:n #1 + { + \regex_extract_once:NnNTF \c__tblr_first_key_name_regex {#1} \l_tmpa_seq + { + \clist_if_in:NxTF \g__tblr_table_known_keys_clist + { \seq_item:Nn \l_tmpa_seq {2} } + { \keys_set:nn { tblr } {#1} } + { \__tblr_parse_colrow_spec:nn { column } {#1} } + } + { \__tblr_parse_colrow_spec:nn { column } {#1} } + } + +\cs_new_protected:Npn \__tblr_keys_gput:nn #1 #2 + { + \__tblr_prop_gput:nnn { table } {#1} {#2} + } +\cs_generate_variant:Nn \__tblr_keys_gput:nn { nx } + +%%% -------------------------------------------------------- +%% \section{Typeset and Calculate Sizes} +%%% -------------------------------------------------------- + +%% Calculate the width and height for every cell and border + +\cs_new_protected:Npn \__tblr_calc_cell_and_line_sizes: + { + \__tblr_make_strut_box: + \__tblr_calculate_line_sizes: + \__tblr_calculate_cell_sizes: + \LogTblrTracing { cell, row, column, hline, vline } + \__tblr_compute_extendable_column_width: + \__tblr_adjust_sizes_for_span_cells: + } + +%% make strut box from stretch option of the table + +\box_new:N \l__tblr_strut_ht_box +\box_new:N \l__tblr_strut_dp_box + +\cs_new_protected:Npn \__tblr_make_strut_box: + { + \tl_set:Nx \l__tblr_s_tl { \__tblr_prop_item:ne { table } { stretch } } + \hbox_set:Nn \l__tblr_strut_ht_box + { \vrule height \l__tblr_s_tl \box_ht:N \strutbox width ~ 0pt } + \hbox_set:Nn \l__tblr_strut_dp_box + { \vrule depth \l__tblr_s_tl \box_dp:N \strutbox width ~ 0pt } + } + +%% Calculate the thickness for every hline and vline +\cs_new_protected:Npn \__tblr_calculate_line_sizes: + { + %% We need these two counters in executing hline and vline commands + \int_zero:N \c@rownum + \int_zero:N \c@colnum + \int_step_inline:nn { \c@rowcount + 1 } + { + \int_incr:N \c@rownum + \int_zero:N \c@colnum + \int_step_inline:nn { \c@colcount + 1 } + { + \int_incr:N \c@colnum + \int_compare:nNnT { ##1 } < { \c@rowcount + 1 } + { + \__tblr_measure_and_update_vline_size:nn { ##1 } { ####1 } + } + \int_compare:nNnT { ####1 } < { \c@colcount + 1 } + { + \__tblr_measure_and_update_hline_size:nn { ##1 } { ####1 } + } + } + } + } + +%% Measure and update thickness of the vline +%% #1: row number, #2 column number +\cs_new_protected:Npn \__tblr_measure_and_update_vline_size:nn #1 #2 + { + \dim_zero:N \l__tblr_w_dim + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { vline } { [#2] / @vline-count } } + \tl_if_empty:NF \l__tblr_n_tl + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { vline } { [#2] / rulesep } } + \int_step_inline:nn { \l__tblr_n_tl } + { + \vbox_set_to_ht:Nnn \l__tblr_b_box {1pt} + { + \__tblr_get_vline_segment_child:nnnnn + {#1} {#2} {##1} {1pt} {1pt} + } + \tl_set:Nx \l__tblr_w_tl { \dim_eval:n { \box_wd:N \l__tblr_b_box } } + \__tblr_prop_gput_if_larger:nxx { vline } + { [#2](##1) / @vline-width } { \l__tblr_w_tl } + \dim_add:Nn \l__tblr_w_dim { \l__tblr_w_tl } + \dim_add:Nn \l__tblr_w_dim { \l__tblr_s_tl } + } + \dim_add:Nn \l__tblr_w_dim { - \l__tblr_s_tl } + } + \__tblr_prop_gput_if_larger:nxx { vline } + { [#2]/ @vline-width } { \dim_use:N \l__tblr_w_dim } + } + +%% Get text of a vline segment +%% #1: row number, #2: column number; #3: index number; #4: height; #5: depth +%% We put all code inside a group to avoid conflicts of local variables +\cs_new_protected:Npn \__tblr_get_vline_segment_child:nnnnn #1 #2 #3 #4 #5 + { + \group_begin: + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { vline } { [#1][#2](#3) / wd } } + \tl_if_empty:NF \l__tblr_w_tl { \dim_set:Nn \rulewidth { \l__tblr_w_tl } } + \tl_set:Nx \l__tblr_d_tl + { \__tblr_prop_item:ne { vline } { [#1][#2](#3) / @dash } } + \tl_set:Nx \l__tblr_a_tl { \tl_head:N \l__tblr_d_tl } + \tl_set:Nx \l__tblr_b_tl { \tl_tail:N \l__tblr_d_tl } + \exp_args:NV \tl_if_eq:NNTF \l__tblr_a_tl \@tblr@dash + { + \__tblr_get_vline_dash_style:N \l__tblr_b_tl + \xleaders \l__tblr_b_tl \vfil + } + { + \hbox_set:Nn \l__tblr_d_box { \l__tblr_b_tl } + \box_set_ht:Nn \l__tblr_d_box {#4} + \box_set_dp:Nn \l__tblr_d_box {#5} + \box_use:N \l__tblr_d_box + } + \group_end: + } +\cs_generate_variant:Nn \__tblr_get_vline_segment_child:nnnnn { nnnxx } + +%% Measure and update thickness of the hline +%% #1: row number, #2 column number +\cs_new_protected:Npn \__tblr_measure_and_update_hline_size:nn #1 #2 + { + \dim_zero:N \l__tblr_h_dim + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { hline } { [#1] / @hline-count } } + \tl_if_empty:NF \l__tblr_n_tl + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { hline } { [#1] / rulesep } } + \int_step_inline:nn { \l__tblr_n_tl } + { + \hbox_set_to_wd:Nnn \l__tblr_b_box {1pt} + { \__tblr_get_hline_segment_child:nnn {#1} {#2} {##1} } + \tl_set:Nx \l__tblr_h_tl + { + \dim_eval:n + { \box_ht:N \l__tblr_b_box + \box_dp:N \l__tblr_b_box } + } + \__tblr_prop_gput_if_larger:nxx { hline } + { [#1](##1) / @hline-height } { \l__tblr_h_tl } + \dim_add:Nn \l__tblr_h_dim { \l__tblr_h_tl } + \dim_add:Nn \l__tblr_h_dim { \l__tblr_s_tl } + } + \dim_add:Nn \l__tblr_h_dim { - \l__tblr_s_tl } + } + \__tblr_prop_gput_if_larger:nxx { hline } + { [#1] / @hline-height } { \dim_use:N \l__tblr_h_dim } + } + +%% Get text of a hline segment +%% #1: row number, #2: column number; #3: index number +\cs_new_protected:Npn \__tblr_get_hline_segment_child:nnn #1 #2 #3 + { + \group_begin: + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { hline } { [#1][#2](#3) / wd } } + \tl_if_empty:NF \l__tblr_w_tl { \dim_set:Nn \rulewidth { \l__tblr_w_tl } } + \tl_set:Nx \l__tblr_d_tl + { \__tblr_prop_item:ne { hline } { [#1][#2](#3) / @dash } } + \tl_set:Nx \l__tblr_a_tl { \tl_head:N \l__tblr_d_tl } + \tl_set:Nx \l__tblr_b_tl { \tl_tail:N \l__tblr_d_tl } + \exp_args:NV \tl_if_eq:NNTF \l__tblr_a_tl \@tblr@dash + { + \__tblr_get_hline_dash_style:N \l__tblr_b_tl + \xleaders \l__tblr_b_tl \hfil + } + { \l__tblr_b_tl \hfil } + \group_end: + } + +%% current cell alignments +\tl_new:N \g__tblr_cell_halign_tl +\tl_new:N \g__tblr_cell_valign_tl +\tl_new:N \g__tblr_cell_middle_tl + +\tl_const:Nn \c__tblr_valign_h_tl { h } +\tl_const:Nn \c__tblr_valign_m_tl { m } +\tl_const:Nn \c__tblr_valign_f_tl { f } +\tl_const:Nn \c__tblr_valign_t_tl { t } +\tl_const:Nn \c__tblr_valign_b_tl { b } + +\tl_const:Nn \c__tblr_middle_t_tl { t } +\tl_const:Nn \c__tblr_middle_m_tl { m } +\tl_const:Nn \c__tblr_middle_b_tl { b } + +%% #1: row number; #2: column number +\cs_new_protected:Npn \__tblr_get_cell_alignments:nn #1 #2 + { + \group_begin: + \tl_gset:Nx \g__tblr_cell_halign_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / halign } } + \tl_set:Nx \l__tblr_v_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / valign } } + \tl_case:NnF \l__tblr_v_tl + { + \c__tblr_valign_t_tl + { + \tl_gset:Nn \g__tblr_cell_valign_tl {m} + \tl_gset:Nn \g__tblr_cell_middle_tl {t} + } + \c__tblr_valign_m_tl + { + \tl_gset:Nn \g__tblr_cell_valign_tl {m} + \tl_gset:Nn \g__tblr_cell_middle_tl {m} + } + \c__tblr_valign_b_tl + { + \tl_gset:Nn \g__tblr_cell_valign_tl {m} + \tl_gset:Nn \g__tblr_cell_middle_tl {b} + } + } + { + \tl_gset_eq:NN \g__tblr_cell_valign_tl \l__tblr_v_tl + \tl_gclear:N \g__tblr_cell_middle_tl + } + \group_end: + } + +%% current cell dimensions +\dim_new:N \g__tblr_cell_wd_dim +\dim_new:N \g__tblr_cell_ht_dim +\dim_new:N \g__tblr_cell_head_dim +\dim_new:N \g__tblr_cell_foot_dim + +%% Calculate the width and height for every cell +\cs_new_protected:Npn \__tblr_calculate_cell_sizes: + { + %% You can use these two counters in cell text + \int_zero:N \c@rownum + \int_zero:N \c@colnum + \int_step_inline:nn { \c@rowcount } + { + \int_incr:N \c@rownum + \int_zero:N \c@colnum + \tl_set:Nx \l__tblr_h_tl + { \__tblr_data_item:nen { row } { \int_use:N \c@rownum } { height } } + \tl_if_empty:NF \l__tblr_h_tl + { + \__tblr_data_gput:nenV { row } { \int_use:N \c@rownum } + { @row-height } \l__tblr_h_tl + } + \int_step_inline:nn { \c@colcount } + { + \int_incr:N \c@colnum + \__tblr_measure_cell_update_sizes:nnNNNN + { \int_use:N \c@rownum } + { \int_use:N \c@colnum } + \g__tblr_cell_wd_dim + \g__tblr_cell_ht_dim + \g__tblr_cell_head_dim + \g__tblr_cell_foot_dim + } + } + } + +%% Measure and update natural dimensions of the row/column/cell +%% #1: row number; #2 column number; #3: width dimension; +%% #4: total height dimension; #5: head dimension; #6: foot dimension +\cs_new_protected:Npn \__tblr_measure_cell_update_sizes:nnNNNN #1 #2 #3 #4 #5 #6 + { + \__tblr_get_cell_alignments:nn {#1} {#2} + \hbox_set:Nn \l_tmpa_box { \__tblr_get_cell_text:nn {#1} {#2} } + \__tblr_update_cell_size:nnNNNN {#1} {#2} #3 #4 #5 #6 + \__tblr_update_row_size:nnNNN {#1} {#2} #4 #5 #6 + \__tblr_update_col_size:nN {#2} #3 + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_get_cell_text:nn #1 #2 + { + \__tblr_prop_if_in:nxTF {cell} { [#1][#2] / omit } + { + \dim_gzero:N \g__tblr_cell_wd_dim + \dim_gzero:N \g__tblr_cell_ht_dim + \dim_gzero:N \g__tblr_cell_head_dim + \dim_gzero:N \g__tblr_cell_foot_dim + } + { \__tblr_get_cell_text_real:nn { #1 } { #2 } } + } + +%% Get cell text, #1: row number, #2: column number +%% If the width of the cell is not set, split it with \\ and compute the width +%% Therefore we always get a vbox for any cell +\cs_new_protected:Npn \__tblr_get_cell_text_real:nn #1 #2 + { + \group_begin: + \tl_set:Nx \l__tblr_c_tl { \__tblr_prop_item:ne {text} {[#1][#2]} } + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / width } } + \tl_if_empty:NT \l__tblr_w_tl + { + \__tblr_prop_if_in:nxF { cell } { [#1][#2] / colspan } + { + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { column } { [#2] / width } } + } + } + \tl_if_empty:NT \l__tblr_w_tl + { + \bool_if:NTF \l__tblr_math_mode_bool + { + \hbox_set:Nn \l_tmpa_box { $\l__tblr_c_tl$ } + \tl_set:Nx \l__tblr_w_tl { \box_wd:N \l_tmpa_box } + } + { + \tl_set_eq:NN \l_tmpb_tl \l__tblr_c_tl + \__tblr_insert_braces:N \l_tmpb_tl + \seq_set_split:NnV \l_tmpa_seq { \\ } \l_tmpb_tl + \tl_set:Nn \l__tblr_w_tl { 0pt } + \seq_map_variable:NNn \l_tmpa_seq \l_tmpa_tl + { + \__tblr_remove_braces:N \l_tmpa_tl + \hbox_set:Nn \l_tmpa_box { \l_tmpa_tl } + \tl_set:Nx \l__tblr_w_tl + { \dim_max:nn { \l__tblr_w_tl } { \box_wd:N \l_tmpa_box } } + } + } + } + \__tblr_get_vcell_and_sizes:NN \l__tblr_c_tl \l__tblr_w_tl + \group_end: + } + +%% #1: cell text; #2: box width +\cs_new_protected:Npn \__tblr_get_vcell_and_sizes:NN #1 #2 + { + \group_begin: + \vbox_set_top:Nn \l_tmpa_box { \__tblr_make_vcell_text:nN #1 #2 } + \vbox_set:Nn \l_tmpb_box { \__tblr_make_vcell_text:nN #1 #2 } + \dim_gset:Nn \g__tblr_cell_wd_dim { \box_wd:N \l_tmpb_box } + \dim_gset:Nn \g__tblr_cell_ht_dim + { \box_ht:N \l_tmpb_box + \box_dp:N \l_tmpb_box } + \dim_gset:Nn \g__tblr_cell_head_dim { \box_ht:N \l_tmpa_box } + \dim_gset:Nn \g__tblr_cell_foot_dim { \box_dp:N \l_tmpb_box } + \tl_case:Nn \g__tblr_cell_valign_tl + { + \c__tblr_valign_h_tl + { \box_use:N \l_tmpa_box } + \c__tblr_valign_m_tl + { + \tl_case:Nn \g__tblr_cell_middle_tl + { + \c__tblr_middle_t_tl + { \box_use:N \l_tmpa_box } + \c__tblr_middle_m_tl + { + \tl_set:Nx \l__tblr_b_tl + { + \dim_eval:n + { + ( \g__tblr_cell_ht_dim - \g__tblr_cell_head_dim + - \g__tblr_cell_foot_dim ) / 2 + } + } + \box_set_ht:Nn \l_tmpb_box + { \g__tblr_cell_head_dim + \l__tblr_b_tl } + \box_set_dp:Nn \l_tmpb_box + { \g__tblr_cell_foot_dim + \l__tblr_b_tl } + \box_use:N \l_tmpb_box + } + \c__tblr_middle_b_tl + { \box_use:N \l_tmpb_box } + } + } + \c__tblr_valign_f_tl + { \box_use:N \l_tmpb_box } + } + \group_end: + } + +\cs_new_eq:NN \__tlbr_halign_l: \raggedright +\cs_new_eq:NN \__tlbr_halign_c: \centering +\cs_new_eq:NN \__tlbr_halign_r: \raggedleft + +%% #1: cell text; #2: box width +\cs_new_protected:Npn \__tblr_make_vcell_text:nN #1 #2 + { + \dim_set:Nn \tex_hsize:D { #2 } + \@arrayparboxrestore + \cs:w __tlbr_halign_ \g__tblr_cell_halign_tl : \cs_end: + \mode_leave_vertical: + \box_use:N \l__tblr_strut_ht_box + \bool_if:NTF \l__tblr_math_mode_bool { $#1$ } { #1 } + \box_use:N \l__tblr_strut_dp_box + } + +%% #1: total height dimension; #2: head dimension; #3: foot dimension; +%% #4: tl for resulting upper size; #5: tl for resulting lower size + +\tl_new:N \l__tblr_middle_body_tl + +\cs_new_protected:Npn \__tblr_get_middle_cell_upper_lower:NNNNN #1 #2 #3 #4 #5 + { + \tl_case:Nn \g__tblr_cell_middle_tl + { + \c__tblr_middle_t_tl + { + \tl_set:Nx #4 { \dim_use:N #2 } + \tl_set:Nx #5 { \dim_eval:n { #1 - #2 } } + } + \c__tblr_middle_m_tl + { + \tl_set:Nx \l__tblr_middle_body_tl { \dim_eval:n { #1 - #2 - #3 } } + \tl_set:Nx #4 { \dim_eval:n { #2 + \l__tblr_middle_body_tl / 2 } } + \tl_set:Nx #5 { \dim_eval:n { #3 + \l__tblr_middle_body_tl / 2 } } + } + \c__tblr_middle_b_tl + { + \tl_set:Nx #4 { \dim_eval:n { #1 - #3 } } + \tl_set:Nx #5 { \dim_use:N #3 } + } + } + } + +%% Update natural dimensions of the cell +%% #1: row number; #2 column number; #3: width dimension; +%% #4: total height dimension; #5: head dimension; #6: foot dimension +\cs_new_protected:Npn \__tblr_update_cell_size:nnNNNN #1 #2 #3 #4 #5 #6 + { + \group_begin: + \tl_set:Nx \l__tblr_c_tl + { \__tblr_prop_item:ne {cell} { [#1][#2] / colspan } } + \tl_if_empty:NF \l__tblr_c_tl + { + \__tblr_prop_gput:nxx {cell} { [#1][#2] / @cell-width } { \dim_use:N #3 } + \dim_gzero:N #3 % don't affect column width + } + \tl_set:Nx \l__tblr_r_tl + { \__tblr_prop_item:ne {cell} { [#1][#2] / rowspan } } + \tl_if_empty:NF \l__tblr_r_tl + { + \tl_case:Nn \g__tblr_cell_valign_tl + { + \c__tblr_valign_h_tl + { + \tl_set:Nx \l__tblr_u_tl { \dim_use:N #5 } + \tl_set:Nx \l__tblr_v_tl { \dim_eval:n { #4 - #5 } } + %% Update the head size of the first span row here + \__tblr_data_gput_if_larger:nene + { row } {#1} { @row-head } { \dim_use:N #5 } + } + \c__tblr_valign_f_tl + { + \tl_set:Nx \l__tblr_u_tl { \dim_eval:n { #4 - #6 } } + \tl_set:Nx \l__tblr_v_tl { \dim_use:N #6 } + %% Update the foot size of the last span row here + \__tblr_data_gput_if_larger:nene + { row } + { \int_eval:n { #1 + \l__tblr_r_tl - 1 } } + { @row-foot } + { \dim_use:N #6 } + } + \c__tblr_valign_m_tl + { + \__tblr_get_middle_cell_upper_lower:NNNNN + #4 #5 #6 \l__tblr_u_tl \l__tblr_v_tl + } + } + \__tblr_prop_gput:nxV {cell} { [#1][#2] / @cell-height } \l__tblr_u_tl + \__tblr_prop_gput:nxV {cell} { [#1][#2] / @cell-depth } \l__tblr_v_tl + %% Don't affect row sizes + \dim_gzero:N #4 + \dim_gzero:N #5 + \dim_gzero:N #6 + } + \group_end: + } + + +%% Update size of the row. #1: row number; #2: column number; +%% #3: total height dimension; #4: head dimension; #5: foot dimension +\cs_new_protected:Npn \__tblr_update_row_size:nnNNN #1 #2 #3 #4 #5 + { + \group_begin: + %% Note that \l__tblr_h_tl may be empty + \tl_set:Nx \l__tblr_h_tl + { \__tblr_data_item:nen { row } {#1} { @row-height } } + \tl_if_eq:NNTF \g__tblr_cell_valign_tl \c__tblr_valign_m_tl + { + \tl_set:Nx \l__tblr_a_tl + { \__tblr_data_item:nen { row } {#1} { @row-upper } } + \tl_set:Nx \l__tblr_b_tl + { \__tblr_data_item:nen { row } {#1} { @row-lower } } + \__tblr_get_middle_cell_upper_lower:NNNNN + #3 #4 #5 \l__tblr_u_tl \l__tblr_v_tl + \dim_compare:nNnT { \l__tblr_u_tl } > { \l__tblr_a_tl } + { + \tl_set_eq:NN \l__tblr_a_tl \l__tblr_u_tl + \__tblr_data_gput:nenV { row } {#1} { @row-upper } \l__tblr_a_tl + } + \dim_compare:nNnT { \l__tblr_v_tl } > { \l__tblr_b_tl } + { + \tl_set_eq:NN \l__tblr_b_tl \l__tblr_v_tl + \__tblr_data_gput:nenV { row } {#1} { @row-lower } \l__tblr_b_tl + } + \dim_compare:nNnT + { \l__tblr_a_tl + \l__tblr_b_tl } > { \l__tblr_h_tl + 0pt } + { + \__tblr_data_gput:nene { row } {#1} { @row-height } + { \dim_eval:n { \l__tblr_a_tl + \l__tblr_b_tl } } + } + } + { + \tl_set:Nx \l__tblr_e_tl + { \__tblr_data_item:nen { row } {#1} { @row-head } } + \tl_set:Nx \l__tblr_f_tl + { \__tblr_data_item:nen { row } {#1} { @row-foot } } + \dim_compare:nNnT {#4} > {\l__tblr_e_tl} + { + \__tblr_data_gput:nene { row } {#1} { @row-head } { \dim_use:N #4 } + } + \dim_compare:nNnT {#5} > {\l__tblr_f_tl} + { + \__tblr_data_gput:nene { row } {#1} { @row-foot } { \dim_use:N #5 } + } + \tl_set:Nx \l__tblr_x_tl { \dim_max:nn {#4} { \l__tblr_e_tl } } + \tl_set:Nx \l__tblr_y_tl { \dim_max:nn {#5} { \l__tblr_f_tl } } + \dim_compare:nNnT + { #3 - #4 - #5 } > { \l__tblr_h_tl - \l__tblr_x_tl - \l__tblr_y_tl } + { + \__tblr_data_gput:nene { row } {#1} { @row-height } + { + \dim_eval:n + { + \l__tblr_x_tl + + \dim_use:N #3 - \dim_use:N #4 - \dim_use:N #5 + + \l__tblr_y_tl + } + } + } + } + \group_end: + } + + +%% Update size of the column. #1: column number; #2: width dimension + +\cs_new_protected:Npn \__tblr_update_col_size:nN #1 #2 + { + \tl_set:Nx \l_tmpb_tl + { \__tblr_prop_item:ne {column} { [#1] / @col-width } } + \bool_lazy_or:nnT + { \tl_if_empty_p:N \l_tmpb_tl } + { \dim_compare_p:nNn { \dim_use:N #2 } > { \l_tmpb_tl } } + { + \__tblr_prop_gput:nxx {column} { [#1] / @col-width } { \dim_use:N #2 } + } + } + +%%% -------------------------------------------------------- +%% \section{Calculate and Adjust Extendable Columns} +%%% -------------------------------------------------------- + +%% Compute column widths when there are some extendable columns + +\dim_new:N \l__column_target_dim +\prop_new:N \l__column_coefficient_prop +\prop_new:N \l__column_natural_width_prop +\prop_new:N \l__column_computed_width_prop + +\msg_new:nnn { tabularray } { table-width-too-small } + { Table ~ width ~ is ~ too ~ small, ~ need ~ #1 ~ more! } + +\cs_new_protected:Npn \__tblr_compute_extendable_column_width: + { + \__tblr_collect_extendable_column_width: + \dim_compare:nNnTF { \l__column_target_dim } < { 0pt } + { + \msg_warning:nnx { tabularray } { table-width-too-small } + { \dim_abs:n { \l__column_target_dim } } + } + { + \prop_if_empty:NF \l__column_coefficient_prop + { \__tblr_adjust_extendable_column_width: } + } + } + +\cs_new_protected:Npn \__tblr_collect_extendable_column_width: + { + \tl_set:Nx \l_tmpa_tl { \__tblr_prop_item:nn {table} {width} } + \tl_if_empty:NTF \l_tmpa_tl + { \dim_set_eq:NN \l__column_target_dim \linewidth } + { \dim_set:Nn \l__column_target_dim { \l_tmpa_tl } } + \prop_clear:N \l__column_coefficient_prop + \prop_clear:N \l__column_natural_width_prop + \prop_clear:N \l__column_computed_width_prop + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l__tblr_a_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / width } } + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / coefficient } } + \tl_set:Nx \l__tblr_c_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / @col-width } } + \tl_if_empty:NTF \l__tblr_a_tl + { + \tl_if_empty:NTF \l__tblr_b_tl + { \dim_sub:Nn \l__column_target_dim { \l__tblr_c_tl } } + { + \prop_put:Nxx \l__column_coefficient_prop + { \l__tblr_j_tl } { \l__tblr_b_tl } + \prop_put:Nxn \l__column_computed_width_prop + { \l__tblr_j_tl } { 0pt } + \dim_compare:nNnF { \l__tblr_b_tl pt } > { 0pt } + { + \prop_put:Nxx \l__column_natural_width_prop + { \l__tblr_j_tl } { \l__tblr_c_tl } + } + } + } + { \dim_sub:Nn \l__column_target_dim { \l__tblr_a_tl } } + \tl_set:Nx \l__tblr_a_tl + { \__tblr_prop_item:ne {vline} { [\l__tblr_j_tl] / @vline-width } } + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / leftsep} } + \tl_set:Nx \l__tblr_c_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / rightsep } } + \dim_set:Nn \l__column_target_dim + { \l__column_target_dim - \l__tblr_a_tl - \l__tblr_b_tl - \l__tblr_c_tl } + } + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {vline} + { [\int_eval:n {\c@colcount + 1}] / @vline-width } + } + \tl_if_empty:NF \l__tblr_a_tl + { \dim_sub:Nn \l__column_target_dim { \l__tblr_a_tl } } + \LogTblrTracing { target } + } + +%% If all columns have negative coefficients and small natural widths, +%% \l__column_coefficient_prop will be empty after one or more rounds +\cs_new_protected:Npn \__tblr_adjust_extendable_column_width: + { + \bool_while_do:nn + { \dim_compare_p:nNn { \l__column_target_dim } > { \hfuzz } } + { + \prop_if_empty:NTF \l__column_coefficient_prop + { \__tblr_adjust_extendable_column_width_negative: } + { \__tblr_adjust_extendable_column_width_once: } + } + \prop_map_inline:Nn \l__column_computed_width_prop + { + \__tblr_prop_gput:nnx {column} { [##1] / width } { ##2 } + \__tblr_prop_gput:nnn {column} { [##1] / @col-width } { 0pt } + } + \__tblr_calculate_cell_sizes: + } + +%% We use dimen register, since the coefficient may be a decimal number +\cs_new_protected:Npn \__tblr_adjust_extendable_column_width_once: + { + \dim_zero:N \l_tmpa_dim + \prop_map_inline:Nn \l__column_coefficient_prop + { + \dim_add:Nn \l_tmpa_dim { \dim_abs:n { ##2 pt } } + } + \tl_set:Nx \l__tblr_w_tl + { \dim_ratio:nn { \l__column_target_dim } { \l_tmpa_dim } } + \dim_zero:N \l__column_target_dim + \prop_map_inline:Nn \l__column_coefficient_prop + { + \tl_set:Nx \l__tblr_a_tl + { \dim_eval:n { \dim_abs:n { ##2 pt } * \l__tblr_w_tl } } + \dim_compare:nNnTF { ##2 pt } > { 0pt } + { + \__tblr_add_dimen_value:Nnn + \l__column_computed_width_prop { ##1 } { \l__tblr_a_tl } + } + { + \tl_set:Nx \l__tblr_b_tl + { \prop_item:Nn \l__column_natural_width_prop { ##1 } } + \tl_set:Nx \l__tblr_c_tl + { \prop_item:Nn \l__column_computed_width_prop { ##1 } } + \dim_compare:nNnTF { \l__tblr_a_tl + \l__tblr_c_tl } > { \l__tblr_b_tl } + { + \prop_put:Nnx \l__column_computed_width_prop + { ##1 } { \l__tblr_b_tl } + \dim_add:Nn \l__column_target_dim + { \l__tblr_a_tl + \l__tblr_c_tl - \l__tblr_b_tl } + \prop_remove:Nn \l__column_coefficient_prop { ##1 } + } + { + \__tblr_add_dimen_value:Nnn + \l__column_computed_width_prop { ##1 } { \l__tblr_a_tl } + } + } + } + \LogTblrTracing { target } + } + +\cs_new_protected:Npn \__tblr_adjust_extendable_column_width_negative: + { + \dim_zero:N \l_tmpa_dim + \prop_map_inline:Nn \l__column_natural_width_prop + { \dim_add:Nn \l_tmpa_dim { ##2 } } + \tl_set:Nx \l_tmpa_tl + { \dim_ratio:nn { \l__column_target_dim } { \l_tmpa_dim } } + \dim_zero:N \l__column_target_dim + \prop_map_inline:Nn \l__column_natural_width_prop + { + \tl_set:Nx \l_tmpb_tl { \dim_eval:n { ##2 * \l_tmpa_tl } } + \__tblr_add_dimen_value:Nnn + \l__column_computed_width_prop { ##1 } { \l_tmpb_tl } + } + \LogTblrTracing { target } + } + +%%% -------------------------------------------------------- +%% \section{Calculate and Adjust Multispan Cells} +%%% -------------------------------------------------------- + +%% Compute and adjust widths when there are some span cells. +%% By default, we will compute column widths from span widths; +%% but if we set table option "hspan = minimal", +%% we will compute span widths from column widths. + +\cs_new_protected:Npn \__tblr_adjust_sizes_for_span_cells: + { + \__tblr_prop_if_in:nnT {table} {colspan} + { + \__tblr_collect_column_widths_skips: + \str_if_eq:xnTF + { \__tblr_prop_item:ne {table} {hspan} } {minimal} + { + \__tblr_set_span_widths_from_column_widths: + } + { + \__tblr_collect_span_widths: + \__tblr_set_column_widths_from_span_widths: + } + \LogTblrTracing {column} + \__tblr_calculate_cell_sizes: + } + \__tblr_prop_if_in:nnT {table} {rowspan} + { + \__tblr_collect_row_heights_skips: + \__tblr_collect_span_heights: + \__tblr_set_row_heights_from_span_heights: + \LogTblrTracing {row} + } + } + +\prop_new:N \l__tblr_col_item_skip_size_prop +\prop_new:N \l__tblr_col_span_size_prop +\prop_new:N \l__tblr_row_item_skip_size_prop +\prop_new:N \l__tblr_row_span_size_prop + +\cs_new_protected:Npn \__tblr_collect_column_widths_skips: + { + \prop_clear:N \l__tblr_col_item_skip_size_prop + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \int_compare:nNnTF { \l__tblr_j_tl } > { 1 } + { + \prop_put:Nxx \l__tblr_col_item_skip_size_prop { skip[\l__tblr_j_tl] } + { + \dim_eval:n + { + \__tblr_prop_item:ne {column} + { [\int_eval:n { \l__tblr_j_tl - 1 }] / rightsep } + + + \__tblr_prop_item:ne {vline} + { [\l__tblr_j_tl] / @vline-width } + + + \__tblr_prop_item:ne {column} + { [\l__tblr_j_tl] / leftsep} + } + } + } + { + \prop_put:Nxn \l__tblr_col_item_skip_size_prop { skip[\l__tblr_j_tl] } + { 0pt } + } + \prop_put:Nxx \l__tblr_col_item_skip_size_prop { item[\l__tblr_j_tl] } + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / @col-width } } + } + \__tblr_do_if_tracing:nn { cellspan } + { \prop_log:N \l__tblr_col_item_skip_size_prop } + } + +\cs_new_protected:Npn \__tblr_collect_row_heights_skips: + { + \prop_clear:N \l__tblr_row_item_skip_size_prop + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \int_compare:nNnTF { \l__tblr_i_tl } > { 1 } + { + \prop_put:Nxx \l__tblr_row_item_skip_size_prop { skip[\l__tblr_i_tl] } + { + \dim_eval:n + { + \__tblr_data_item:nen { row } + { \int_eval:n {\l__tblr_i_tl - 1} } { belowsep } + + + \__tblr_prop_item:ne {hline} + { [\l__tblr_i_tl] / @hline-height } + + + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { abovesep } + } + } + } + { + \prop_put:Nxn \l__tblr_row_item_skip_size_prop { skip[\l__tblr_i_tl] } + { 0pt } + } + \__tblr_collect_one_row_height:NN \l__tblr_i_tl \l__tblr_h_tl + \prop_put:Nxx \l__tblr_row_item_skip_size_prop + { item[\l__tblr_i_tl] } { \l__tblr_h_tl } + } + \__tblr_do_if_tracing:nn { cellspan } + { \prop_log:N \l__tblr_row_item_skip_size_prop } + } + +%% #1: row number; #2: tl with result +\cs_new_protected:Npn \__tblr_collect_one_row_height:NN #1 #2 + { + \tl_set:Nx #2 { \__tblr_data_item:nen { row } {#1} { @row-height } } + } + +\cs_new_protected:Npn \__tblr_collect_span_widths: + { + \prop_clear:N \l__tblr_col_span_size_prop + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / colspan } + } + \tl_if_empty:NF \l__tblr_a_tl + { + \__tblr_put_if_larger:Nxx \l__tblr_col_span_size_prop + { + ( \l__tblr_j_tl - + \int_eval:n {\l__tblr_j_tl + \l__tblr_a_tl - 1} ) + } + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-width } + } + } + } + } + \__tblr_do_if_tracing:nn { cellspan } + { \prop_log:N \l__tblr_col_span_size_prop } + } + +\prop_new:N \l__tblr_row_span_to_row_prop + +\cs_new_protected:Npn \__tblr_collect_span_heights: + { + \prop_clear:N \l__tblr_row_span_to_row_prop + \prop_clear:N \l__tblr_row_span_size_prop + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / rowspan } + } + \tl_if_empty:NF \l__tblr_a_tl + { + \tl_set:Nx \l__tblr_v_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / valign } + } + \tl_if_eq:NnT \l__tblr_v_tl { h } + { + \tl_set:Nx \l__tblr_h_tl + { + \__tblr_data_item:nen { row } + { \l__tblr_i_tl } { @row-head } + } + \__tblr_prop_gput:nxV {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-height } + \l__tblr_h_tl + } + \tl_if_eq:NnT \l__tblr_v_tl { f } + { + \tl_set:Nx \l__tblr_d_tl + { + \__tblr_data_item:nen + { row } + { \int_eval:n { \l__tblr_i_tl + \l__tblr_a_tl - 1 } } + { @row-foot } + } + \__tblr_prop_gput:nxV {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-depth } + \l__tblr_d_tl + } + \__tblr_put_if_larger:Nxx \l__tblr_row_span_size_prop + { + ( \l__tblr_i_tl - + \int_eval:n {\l__tblr_i_tl + \l__tblr_a_tl - 1} ) + } + { + \dim_eval:n + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-height } + + + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-depth } + } + } + \prop_put:Nxx \l__tblr_row_span_to_row_prop + { [\l__tblr_i_tl][\l__tblr_j_tl] } + { \int_eval:n {\l__tblr_i_tl + \l__tblr_a_tl - 1} } + } + } + } + \__tblr_do_if_tracing:nn { cellspan } + { + \prop_log:N \l__tblr_row_span_to_row_prop + \prop_log:N \l__tblr_row_span_size_prop + } + } + +%% Compute and set column widths from span widths +\cs_new_protected:Npn \__tblr_set_column_widths_from_span_widths: + { + \__tblr_calc_item_sizes_from_span_sizes:xNN + { \int_use:N \c@colcount } + \l__tblr_col_item_skip_size_prop + \l__tblr_col_span_size_prop + \__tblr_set_all_column_widths: + } + +%% Compute and set row heights from span heights +\cs_new_protected:Npn \__tblr_set_row_heights_from_span_heights: + { + \__tblr_calc_item_sizes_from_span_sizes:xNN + { \int_use:N \c@rowcount } + \l__tblr_row_item_skip_size_prop + \l__tblr_row_span_size_prop + \__tblr_set_all_row_heights: + } + +%% See page 245 in Chapter 22 of TeXbook +%% #1: total number of items +%% #2: prop list with item sizes and skip sizes; #3: prop list with span sizes +\cs_new_protected:Npn \__tblr_calc_item_sizes_from_span_sizes:nNN #1 #2 #3 + { + \int_step_variable:nNn { #1 } \l__tblr_j_tl + { + \dim_set:Nn \l__tblr_w_dim + { + \prop_item:Ne #2 { item[\l__tblr_j_tl] } + } + \int_step_variable:nNn { \l__tblr_j_tl - 1 } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_a_tl + { \prop_item:Ne #3 { (\l__tblr_i_tl-\l__tblr_j_tl) } } + \tl_if_empty:NF \l__tblr_a_tl + { + \int_step_variable:nnNn + { \l__tblr_i_tl } { \l__tblr_j_tl - 1 } \l__tblr_k_tl + { + \__tblr_do_if_tracing:nn { cellspan } + { + \tl_log:x + { \l__tblr_j_tl : \l__tblr_i_tl -> \l__tblr_k_tl } + } + \tl_set:Nx \l_tmpa_tl + { + \prop_item:Ne #2 { itemskip[\l__tblr_k_tl] } + } + \tl_set:Nx \l__tblr_a_tl + { \dim_eval:n { \l__tblr_a_tl - \l_tmpa_tl } } + } + \dim_compare:nNnT { \l__tblr_a_tl } > { \l__tblr_w_dim } + { + \dim_set:Nn \l__tblr_w_dim { \l__tblr_a_tl } + } + } + } + \prop_put:Nxx #2 + { item[\l__tblr_j_tl] } { \dim_use:N \l__tblr_w_dim } + \int_compare:nNnT { \l__tblr_j_tl } < { #1 } + { + \tl_set:Nx \l_tmpb_tl + { + \prop_item:Ne #2 + { skip[\int_eval:n { \l__tblr_j_tl + 1} ] } + } + \dim_add:Nn \l__tblr_w_dim { \l_tmpb_tl } + \prop_put:Nxx #2 + { itemskip[\l__tblr_j_tl] } { \dim_use:N \l__tblr_w_dim } + } + } + \__tblr_do_if_tracing:nn { cellspan } { \prop_log:N #2 } + } +\cs_generate_variant:Nn \__tblr_calc_item_sizes_from_span_sizes:nNN { x } + +\cs_new_protected:Npn \__tblr_set_all_column_widths: + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \__tblr_prop_gput:nxx {column} + { [\l__tblr_j_tl] / @col-width } + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { item[\l__tblr_j_tl] } } + } + } + +\cs_new_protected:Npn \__tblr_set_all_row_heights: + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_h_tl + { + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { @row-head } + } + \tl_set:Nx \l__tblr_d_tl + { + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { @row-foot } + } + \tl_set:Nx \l__tblr_a_tl + { + \prop_item:Ne \l__tblr_row_item_skip_size_prop { item[\l__tblr_i_tl] } + } + \__tblr_collect_one_row_height:NN \l__tblr_i_tl \l__tblr_t_tl + \__tblr_data_gput:nene { row } + { \l__tblr_i_tl } { @row-height } { \l__tblr_a_tl } + } + } + +\cs_new_protected:Npn \__tblr_get_span_key_row_col:w [#1][#2] + { + \tl_set:Nn \l__tblr_i_tl {#1} + \tl_set:Nn \l__tblr_j_tl {#2} + } + +%% Compute and set span widths from column widths +\cs_new_protected:Npn \__tblr_set_span_widths_from_column_widths: + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / colspan } + } + \tl_if_empty:NF \l__tblr_a_tl + { + \__tblr_calc_span_widths:xxN + { \l__tblr_j_tl } + { \int_eval:n { \l__tblr_j_tl + \l__tblr_a_tl - 1 } } + \l__tblr_w_dim + \__tblr_prop_gput:nxx {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / width } + { \dim_use:N \l__tblr_w_dim } + } + } + } + } + +%% Cell is spanned from col #1 to col #2, #3 is the return dim +\cs_new_protected:Npn \__tblr_calc_span_widths:nnN #1 #2 #3 + { + \dim_zero:N #3 + \int_step_inline:nnn { #1 } { #2 } + { + \tl_set:Nx \l_tmpa_tl + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { skip[##1] } } + \tl_set:Nx \l_tmpb_tl + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { item[##1] } } + \dim_add:Nn #3 { \dim_eval:n { \l_tmpa_tl + \l_tmpb_tl } } + } + } +\cs_generate_variant:Nn \__tblr_calc_span_widths:nnN { xxN } + +%%% -------------------------------------------------------- +%% \section{Build the Whole Table} +%%% -------------------------------------------------------- + +\tl_new:N \__tlbr_vbox_align_tl +\tl_const:Nn \__tlbr_vbox_t_tl {t} +\tl_const:Nn \__tlbr_vbox_m_tl {m} +\tl_const:Nn \__tlbr_vbox_c_tl {c} +\tl_const:Nn \__tlbr_vbox_b_tl {b} + +\box_new:N \l__tblr_table_box + +%% #1: table alignment +\cs_new_protected:Npn \__tblr_build_whole:n #1 + { + \bool_if:NTF \l__tblr_long_table_bool + { \__tblr_build_long_table:n {#1} } + { \__tblr_build_short_table:n {#1} } + } + +\dim_new:N \l__tblr_remain_height_dim +\tl_new:N \l__tblr_long_from_tl + +\cs_new_protected:Npn \__tblr_build_long_table:n #1 + { + %\dim_log:N \pagegoal + %\dim_log:N \pagetotal + \dim_set:Nn \l__tblr_remain_height_dim { \pagegoal - \pagetotal } + \tl_set:Nn \l__tblr_long_from_tl {1} + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \dim_set:Nn \l_tmpa_dim + { + \__tblr_prop_item:ne { hline } { [\l__tblr_i_tl] / @hline-height } + + + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { abovesep } + + + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { @row-height } + + + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { belowsep } + } + \dim_compare:nNnTF + { \l_tmpa_dim } > { \l__tblr_remain_height_dim } + { + \tl_log:N \l__tblr_i_tl + \__tblr_build_page_table:nnx {#1} + { \l__tblr_long_from_tl } { \int_eval:n { \l__tblr_i_tl - 1 } } + \newpage + \hbox{}\kern-\topskip\nobreak + \leavevmode + %\dim_log:N \pagegoal + %\dim_log:N \pagetotal + \dim_set:Nn \l__tblr_remain_height_dim + { \pagegoal - \pagetotal - \l_tmpa_dim } + \tl_set_eq:NN \l__tblr_long_from_tl \l__tblr_i_tl + } + { + \dim_add:Nn \l__tblr_remain_height_dim { -\l_tmpa_dim } + } + } + \__tblr_build_page_table:nnn {#1} { \l__tblr_long_from_tl } { \c@rowcount } + } + +\cs_new_protected:Npn \__tblr_build_page_table:nnn #1 #2 #3 + { + \__tblr_build_one_table:nn {#2} {#3} + \__tblr_halign_whole:Nn \l__tblr_table_box #1 + } +\cs_generate_variant:Nn \__tblr_build_page_table:nnn { nnx } + +\cs_new_protected:Npn \__tblr_halign_whole:Nn #1 #2 + { + \noindent + \hbox_to_wd:nn { \linewidth } + { + \tl_if_eq:nnF {#2} {l} { \hfil } + \box_use:N #1 + \tl_if_eq:nnF {#2} {r} { \hfil } + } + } + +\cs_new_protected:Npn \__tblr_build_short_table:n #1 + { + \__tblr_build_one_table:nn {1} {\c@rowcount} + \__tblr_valign_whole:Nn \l__tblr_table_box #1 + } + +%% #1: row from; #2: row to +\cs_new_protected:Npn \__tblr_build_one_table:nn #1 #2 + { + \vbox_set:Nn \l__tblr_table_box + { + \int_step_variable:nnNn {#1} {#2} \l__tblr_i_tl + { + \hbox:n { \__tblr_build_hline:V \l__tblr_i_tl } + \hrule height ~ 0pt % remove lineskip between hlines and rows + \hbox:n { \__tblr_build_row:N \l__tblr_i_tl } + \hrule height ~ 0pt + } + \hbox:n { \__tblr_build_hline:n { \int_eval:n {#2 + 1} } } + } + } + +\cs_new_protected:Npn \__tblr_valign_whole:Nn #1 #2 + { + \group_begin: + \tl_set:Nn \__tlbr_vbox_align_tl {#2} + \dim_set:Nn \l__tblr_t_dim { \box_ht:N #1 + \box_dp:N #1 } + \tl_case:NnF \__tlbr_vbox_align_tl + { + \__tlbr_vbox_m_tl + { \__tblr_valign_whole_middle:N #1 } + \__tlbr_vbox_c_tl + { \__tblr_valign_whole_middle:N #1 } + \__tlbr_vbox_t_tl + { \__tblr_valign_whole_top:N #1 } + \__tlbr_vbox_b_tl + { \__tblr_valign_whole_bottom:N #1 } + } + { \__tblr_valign_whole_middle:N #1 } + \group_end: + } + +\cs_new_protected:Npn \__tblr_valign_whole_middle:N #1 + { + \hbox:n { $ \m@th \tex_vcenter:D { \vbox_unpack_drop:N #1 } $ } + } + +\cs_new_protected:Npn \__tblr_valign_whole_top:N #1 + { + \tl_set:Nx \l__tblr_a_tl + { \__tblr_prop_item:ne { hline } { [1] / @hline-height } } + %% Note that \l__tblr_b_tl may be empty + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne { table } { baseline } } + \bool_lazy_or:nnTF + { \dim_compare_p:nNn { \l__tblr_a_tl } = { 0pt } } + { \int_compare_p:nNn { \l__tblr_b_tl + 0 } = { 1 } } + { + \dim_set:Nn \l__tblr_h_dim + { + \__tblr_data_item:nnn { row } {1} { abovesep } + + + ( \__tblr_data_item:nnn { row } {1} { @row-height } + + + \__tblr_data_item:nnn { row } {1} { @row-upper } + - + \__tblr_data_item:nnn { row } {1} { @row-lower } + ) / 2 + } + \dim_set:Nn \l__tblr_d_dim { \l__tblr_t_dim - \l__tblr_h_dim } + } + { + \dim_set:Nn \l__tblr_h_dim { 0pt } + \dim_set_eq:NN \l__tblr_d_dim \l__tblr_t_dim + } + \box_set_ht:Nn #1 { \l__tblr_h_dim } + \box_set_dp:Nn #1 { \l__tblr_d_dim } + \box_use_drop:N #1 + } + +\cs_new_protected:Npn \__tblr_valign_whole_bottom:N #1 + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne { hline } + { [\int_eval:n {\c@rowcount + 1}] / @hline-height } + } + %% Note that \l__tblr_b_tl may be empty + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne { table } { baseline } } + \bool_lazy_or:nnTF + { \dim_compare_p:nNn { \l__tblr_a_tl } = { 0pt } } + { \int_compare_p:nNn { \l__tblr_b_tl + 0 } = { \c@rowcount } } + { + \dim_set:Nn \l__tblr_d_dim + { + ( \__tblr_data_item:nen { row } + { \int_use:N \c@rowcount } { @row-height } + - + \__tblr_data_item:nen { row } + { \int_use:N \c@rowcount } { @row-upper } + + + \__tblr_data_item:nen { row } + { \int_use:N \c@rowcount } { @row-lower } + ) / 2 + + + \__tblr_data_item:nnn { row } {1} { belowsep } + } + \dim_set:Nn \l__tblr_h_dim { \l__tblr_t_dim - \l__tblr_d_dim } + } + { + \dim_set:Nn \l__tblr_d_dim { 0pt } + \dim_set_eq:NN \l__tblr_h_dim \l__tblr_t_dim + } + \box_set_ht:Nn #1 { \l__tblr_h_dim } + \box_set_dp:Nn #1 { \l__tblr_d_dim } + \box_use_drop:N #1 + } + +\dim_new:N \l__tblr_col_o_wd_dim +\dim_new:N \l__tblr_col_b_wd_dim + +%% Build hline. #1: row number +\cs_new_protected:Npn \__tblr_build_hline:n #1 + { + \int_step_inline:nn { \c@colcount } + { \__tblr_build_hline_segment:nn { #1 } { ##1 } } + } +\cs_generate_variant:Nn \__tblr_build_hline:n { x, V } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_hline_segment:nn #1 #2 + { + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { hline } { [#1] / @hline-count } } + \tl_set:Nx \l__tblr_o_tl + { \__tblr_prop_item:ne { hline } { [#1][#2] / omit } } + \__tblr_get_col_outer_width_border_width:nNN {#2} + \l__tblr_col_o_wd_dim \l__tblr_col_b_wd_dim + \tl_if_empty:NTF \l__tblr_o_tl + { + \tl_if_empty:NF \l__tblr_n_tl + { \__tblr_build_hline_segment_real:nn {#1} {#2} } + } + { \__tblr_build_hline_segment_omit:nn {#1} {#2} } + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_hline_segment_omit:nn #1 #2 + { + \skip_horizontal:n { \l__tblr_col_o_wd_dim - \l__tblr_col_b_wd_dim } + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_hline_segment_real:nn #1 #2 + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { hline } { [#1] / rulesep } } + \vbox_set:Nn \l__tblr_c_box + { + %% add an empty hbox to support vbox width + \tex_hbox:D to \l__tblr_col_o_wd_dim {} + \int_step_inline:nn { \l__tblr_n_tl } + { + \tl_set:Nx \l__tblr_h_tl + { \__tblr_prop_item:ne { hline } { [#1](##1) / @hline-height } } + \hrule height ~ 0pt % remove lineskip + \hbox_set_to_wd:Nnn \l__tblr_b_box { \l__tblr_col_o_wd_dim } + { + \tl_set:Nx \l__tblr_f_tl + { \__tblr_prop_item:ne { hline } { [#1][#2](##1) / fg } } + \tl_if_empty:NF \l__tblr_f_tl { \color{\l__tblr_f_tl} } + \__tblr_get_hline_segment_child:nnn {#1} {#2} {##1} + } + \box_set_ht:Nn \l__tblr_b_box { \l__tblr_h_tl } + \box_set_dp:Nn \l__tblr_b_box { 0pt } + \box_use:N \l__tblr_b_box + \skip_vertical:n { \l__tblr_s_tl } + } + \skip_vertical:n { - \l__tblr_s_tl } + } + \box_use:N \l__tblr_c_box + \skip_horizontal:n { - \l__tblr_col_b_wd_dim } + } + +%% Read from table specifications and calculate the widths of row and border +%% column outer width = content width + colsep width + border width +%% #1: the column number, #2: outer width, #3: border width +\cs_new_protected:Npn \__tblr_get_col_outer_width_border_width:nNN #1 #2 #3 + { + \dim_set:Nn #3 + { \__tblr_prop_item:ne {vline} { [\int_eval:n {#1 + 1}] / @vline-width } } + \dim_set:Nn #2 + { + \__tblr_prop_item:ne {vline} { [#1] / @vline-width } + + + \__tblr_prop_item:ne {column} { [#1] / leftsep } + + + \__tblr_prop_item:ne {column} { [#1] / @col-width } + + + \__tblr_prop_item:ne {column} { [#1] / rightsep } + + + #3 + } + } + +\dim_new:N \l__tblr_row_ht_dim +\dim_new:N \l__tblr_row_dp_dim +\dim_new:N \l__tblr_row_abovesep_dim +\dim_new:N \l__tblr_row_belowsep_dim + +%% Build current row, #1: row number +\cs_new_protected:Npn \__tblr_build_row:N #1 + { + \__tblr_get_row_inner_height_depth:VNNNN #1 + \l__tblr_row_ht_dim \l__tblr_row_dp_dim + \l__tblr_row_abovesep_dim \l__tblr_row_belowsep_dim + \vrule width ~ 0pt ~ height ~ \l__tblr_row_ht_dim ~ depth ~ \l__tblr_row_dp_dim + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \__tblr_build_vline_segment:nn {#1} { \l__tblr_j_tl } + \__tblr_build_cell:NN #1 \l__tblr_j_tl + } + \__tblr_build_vline_segment:nn {#1} { \int_eval:n {\c@colcount + 1} } + } + +%% Read from table specifications and calculate inner height/depth of the row +%% inner height = abovesep + above vspace + row upper +%% inner depth = row lower + below vspace + belowsep +%% #1: the row number; #2: resulting inner height; #3: resulting inner depth; +%% #4: restulting abovesep; #5: restulting belowsep. + +\dim_new:N \l__row_upper_dim +\dim_new:N \l__row_lower_dim +\dim_new:N \l__row_vpace_dim + +\cs_new_protected:Npn \__tblr_get_row_inner_height_depth:nNNNN #1 #2 #3 #4 #5 + { + \dim_set:Nn #4 + { \__tblr_data_item:nen { row } {#1} { abovesep } } + \dim_set:Nn #5 + { \__tblr_data_item:nen { row } {#1} { belowsep } } + \dim_set:Nn \l__row_upper_dim + { \__tblr_data_item:nen { row } {#1} { @row-upper } } + \dim_set:Nn \l__row_lower_dim + { \__tblr_data_item:nen { row } {#1} { @row-lower } } + \dim_set:Nn \l__row_vpace_dim + { + ( \__tblr_data_item:nen { row } {#1} { @row-height } + - \l__row_upper_dim - \l__row_lower_dim ) / 2 + } + \dim_set:Nn #2 { #4 + \l__row_vpace_dim + \l__row_upper_dim } + \dim_set:Nn #3 { \l__row_lower_dim + \l__row_vpace_dim + #5 } + } +\cs_generate_variant:Nn \__tblr_get_row_inner_height_depth:nNNNN { V } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_vline_segment:nn #1 #2 + { + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { vline } { [#2] / @vline-count } } + \tl_set:Nx \l__tblr_o_tl + { \__tblr_prop_item:ne { vline } { [#1][#2] / omit } } + \tl_if_empty:NTF \l__tblr_o_tl + { + \tl_if_empty:NF \l__tblr_n_tl + { \__tblr_build_vline_segment_real:nn {#1} {#2} } + } + { \__tblr_build_vline_segment_omit:nn {#1} {#2} } + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_vline_segment_omit:nn #1 #2 + { + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { vline } { [#2] / @vline-width } } + \skip_horizontal:N \l__tblr_w_tl + } + +%% #1: row number, #2: column number +%% We make every vline segment intersect with first hline below +%% to remove gaps in vlines around multirow cells +\cs_new_protected:Npn \__tblr_build_vline_segment_real:nn #1 #2 + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { vline } { [#2] / rulesep } } + \tl_set:Nx \l__tblr_b_tl + { + \__tblr_prop_item:ne { hline } + { [\int_eval:n{#1 + 1}](1) / @hline-height } + } + \tl_if_empty:NT \l__tblr_b_tl { \tl_set:Nn \l__tblr_b_tl { 0pt } } + \hbox_set:Nn \l__tblr_a_box + { + \int_step_inline:nn { \l__tblr_n_tl } + { + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { vline } { [#2](##1) / @vline-width } } + \vbox_set_to_ht:Nnn \l__tblr_b_box + { \dim_eval:n { \l__tblr_row_ht_dim + \l__tblr_row_dp_dim } } + { + \tl_set:Nx \l__tblr_f_tl + { \__tblr_prop_item:ne { vline } { [#1][#2](##1) / fg } } + \tl_if_empty:NF \l__tblr_f_tl { \color{\l__tblr_f_tl} } + \__tblr_get_vline_segment_child:nnnxx {#1} {#2} {##1} + { \dim_eval:n { \l__tblr_row_ht_dim } } + { \dim_eval:n { \l__tblr_row_dp_dim + \l__tblr_b_tl } } + \skip_vertical:n { - \l__tblr_b_tl } + } + \box_set_wd:Nn \l__tblr_b_box { \l__tblr_w_tl } + \box_use:N \l__tblr_b_box + \skip_horizontal:n { \l__tblr_s_tl } + } + \skip_horizontal:n { - \l__tblr_s_tl } + } + \vbox_set:Nn \l__tblr_c_box { \box_use:N \l__tblr_a_box } + \box_set_ht:Nn \l__tblr_c_box { \dim_use:N \l__tblr_row_ht_dim } + \box_set_dp:Nn \l__tblr_c_box { \dim_use:N \l__tblr_row_dp_dim } + \box_use:N \l__tblr_c_box + } + +\tl_new:N \l__tblr_cell_rowspan_tl +\tl_new:N \l__tblr_cell_colspan_tl +\dim_new:N \l__tblr_cell_wd_dim +\dim_new:N \l__tblr_cell_ht_dim + +\cs_new_protected:Npn \__tblr_build_cell:NN #1 #2 + { + \int_set:Nn \c@rownum {#1} + \int_set:Nn \c@colnum {#2} + \group_begin: + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { column } { [#2] / @col-width } } + \tl_set:Nx \l__tblr_h_tl + { \__tblr_data_item:nen { row } {#1} { @row-height } } + \tl_set:Nx \l__tblr_x_tl + { \__tblr_prop_item:ne { column } { [#2] / leftsep} } + \tl_set:Nx \l__tblr_y_tl + { \__tblr_prop_item:ne { column } { [#2] / rightsep } } + \tl_set:Nx \l__tblr_cell_colspan_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / colspan } } + \tl_if_empty:NTF \l__tblr_cell_colspan_tl + { \dim_set:Nn \l__tblr_cell_wd_dim { \l__tblr_w_tl } } + { + \__tblr_get_span_horizontal_sizes:NNNNN #1 #2 + \l__tblr_o_dim \l__tblr_cell_wd_dim \l__tblr_q_dim + } + \tl_set:Nx \l__tblr_cell_rowspan_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / rowspan } } + \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + { \dim_set:Nn \l__tblr_cell_ht_dim { \l__tblr_h_tl } } + { + \__tblr_get_span_vertical_sizes:NNNNN #1 #2 + \l__tblr_r_dim \l__tblr_cell_ht_dim \l__tblr_t_dim + } + \__tblr_get_cell_alignments:nn {#1} {#2} + \__tblr_build_cell_background:NN #1 #2 + \__tblr_build_cell_content:NN #1 #2 + \group_end: + } + +\cs_new_protected:Npn \__tblr_build_cell_content:NN #1 #2 + { + \hbox_set_to_wd:Nnn \l__tblr_a_box { \l__tblr_cell_wd_dim } + { + \tl_if_eq:NnF \g__tblr_cell_halign_tl {l} { \hfil } + \__tblr_get_cell_text:nn {#1} {#2} + \tl_if_eq:NnF \g__tblr_cell_halign_tl {r} { \hfil } + } + \vbox_set_to_ht:Nnn \l__tblr_b_box { \l__tblr_cell_ht_dim } + { + \tl_case:Nn \g__tblr_cell_valign_tl + { + \c__tblr_valign_m_tl + { + \vfil + \tl_if_empty:NT \l__tblr_cell_rowspan_tl + { + \box_set_ht:Nn \l__tblr_a_box + { \__tblr_data_item:nen { row } {#1} { @row-upper } } + \box_set_dp:Nn \l__tblr_a_box + { \__tblr_data_item:nen { row } {#1} { @row-lower } } + } + \box_use:N \l__tblr_a_box + \vfil + } + \c__tblr_valign_h_tl + { + \box_set_ht:Nn \l__tblr_a_box + { \__tblr_data_item:nen { row } {#1} { @row-head } } + \box_use:N \l__tblr_a_box + \vfil + } + \c__tblr_valign_f_tl + { + \vfil + \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + { + \box_set_dp:Nn \l__tblr_a_box + { \__tblr_data_item:nen { row } {#1} { @row-foot } } + } + { + \box_set_dp:Nn \l__tblr_a_box + { + \__tblr_data_item:nen + { row } + { \int_eval:n { #1 + \l__tblr_cell_rowspan_tl - 1 } } + { @row-foot } + } + } + \box_use:N \l__tblr_a_box + } + } + \hrule height ~ 0pt %% zero depth + } + \vbox_set_to_ht:Nnn \l__tblr_c_box + { \l__tblr_row_ht_dim - \l__tblr_row_abovesep_dim } + { + \box_use:N \l__tblr_b_box + \vss + } + \skip_horizontal:n { \l__tblr_x_tl } + \box_use:N \l__tblr_c_box + \skip_horizontal:n { \l__tblr_y_tl - \l__tblr_cell_wd_dim + \l__tblr_w_tl } + } + +\cs_new_protected:Npn \__tblr_build_cell_background:NN #1 #2 + { + \__tblr_prop_if_in:nxF {cell} { [#1][#2] / omit } + { + \group_begin: + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / background } } + \tl_if_empty:NF \l__tblr_b_tl + { + \__tblr_get_cell_background_width:NNN #1 #2 \l_tmpa_dim + \__tblr_get_cell_background_depth:NNN #1 #2 \l_tmpb_dim + \__tblr_build_cell_background:nnnn + { \dim_use:N \l_tmpa_dim } + { \l__tblr_row_ht_dim } + { \dim_use:N \l_tmpb_dim } + { \l__tblr_b_tl } + } + \group_end: + } + } + +%% #1: row number; #2: column number; #3 resulting dimension +\cs_new_protected:Npn \__tblr_get_cell_background_width:NNN #1 #2 #3 + { + \tl_if_empty:NTF \l__tblr_cell_colspan_tl + { \dim_set:Nn #3 { \l__tblr_x_tl + \l__tblr_w_tl + \l__tblr_y_tl } } + { + \dim_set:Nn #3 { \l__tblr_o_dim + \l__tblr_cell_wd_dim + \l__tblr_q_dim } + } + } + +%% #1: row number; #2: column number; #3 resulting dimension +\cs_new_protected:Npn \__tblr_get_cell_background_depth:NNN #1 #2 #3 + { + \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + { \dim_set_eq:NN #3 \l__tblr_row_dp_dim } + { + \dim_set:Nn #3 + { + \l__tblr_r_dim + \l__tblr_cell_ht_dim + + \l__tblr_t_dim - \l__tblr_row_ht_dim + } + } + } + +%% #1: width, #2: height, #3: depth, #4: color +\cs_new_protected:Npn \__tblr_build_cell_background:nnnn #1 #2 #3 #4 + { + \hbox_set:Nn \l__tblr_a_box + { + \color {#4} + \vrule width ~ #1 ~ height ~ #2 ~ depth ~ #3 + } + \box_set_dp:Nn \l__tblr_a_box { 0pt } + \box_use:N \l__tblr_a_box + \skip_horizontal:n { - #1 } + } + +%% #1: row number; #2: column number; #3: dimen register for rowsep above. +%% #4: dimen register for total height; #5: dimen register for rowsep below. +%% We can use \l__tblr_row_item_skip_size_prop which was made before +\cs_new_protected:Npn \__tblr_get_span_vertical_sizes:NNNNN #1 #2 #3 #4 #5 + { + \dim_set:Nn #3 + { \__tblr_data_item:nen { row } {#1} { abovesep } } + \dim_zero:N #4 + \int_step_inline:nnn { #1 } { #1 + \l__tblr_cell_rowspan_tl - 2 } + { + \dim_add:Nn #4 + { \prop_item:Ne \l__tblr_row_item_skip_size_prop { itemskip[##1] } } + } + \dim_add:Nn #4 + { + \prop_item:Ne \l__tblr_row_item_skip_size_prop + { item[\int_eval:n { #1 + \l__tblr_cell_rowspan_tl - 1 }] } + } + \dim_set:Nn #5 + { + \__tblr_data_item:nen { row } + { \int_eval:n { #1 + \l__tblr_cell_rowspan_tl - 1 } } { belowsep } + } + %\tl_log:x { cell[#1][#2] ~:~ \dim_use:N #3, \dim_use:N #4, \dim_use:N #5 } + } + +%% #1: row number; #2: column number; #3: dimen register for colsep left. +%% #4: dimen register for total width; #5: dimen register for colsep right. +%% We can use \l__tblr_col_item_skip_size_prop which was made before +%% But when hspan=minimal, there are no itemskip in the prop list. +%% Therefore we need to calculate them from the sizes of items and skips +\cs_new_protected:Npn \__tblr_get_span_horizontal_sizes:NNNNN #1 #2 #3 #4 #5 + { + \dim_set:Nn #3 + { \__tblr_prop_item:ne { column } { [#2] / leftsep} } + \dim_zero:N #4 + \int_step_inline:nnn { #2 } { #2 + \l__tblr_cell_colspan_tl - 2 } + { + \dim_add:Nn #4 + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { item[##1] } } + \dim_add:Nn #4 + { + \prop_item:Ne \l__tblr_col_item_skip_size_prop + { skip[\int_eval:n { ##1 + 1 }] } + } + } + \dim_add:Nn #4 + { + \prop_item:Ne \l__tblr_col_item_skip_size_prop + { item[\int_eval:n { #2 + \l__tblr_cell_colspan_tl - 1 }] } + } + \dim_set:Nn #5 + { + \__tblr_prop_item:ne { column } + { [\int_eval:n {#2 + \l__tblr_cell_colspan_tl - 1}] / rightsep } + } + %\tl_log:x { cell[#1][#2] ~:~ \dim_use:N #3, \dim_use:N #4, \dim_use:N #5 } + } + +%%% -------------------------------------------------------- +%% \section{Tracing Tabularray} +%%% -------------------------------------------------------- + +\NewDocumentCommand \SetTabularrayTracing { m } + { + \keys_set:nn { tblr-set-tracing } {#1} + } +\cs_new_eq:NN \SetTblrTracing \SetTabularrayTracing + +\bool_new:N \g__tblr_tracing_text_bool +\bool_new:N \g__tblr_tracing_command_bool +\bool_new:N \g__tblr_tracing_table_bool +\bool_new:N \g__tblr_tracing_column_bool +\bool_new:N \g__tblr_tracing_row_bool +\bool_new:N \g__tblr_tracing_cell_bool +\bool_new:N \g__tblr_tracing_vline_bool +\bool_new:N \g__tblr_tracing_hline_bool +\bool_new:N \g__tblr_tracing_colspec_bool +\bool_new:N \g__tblr_tracing_rowspec_bool +\bool_new:N \g__tblr_tracing_target_bool +\bool_new:N \g__tblr_tracing_cellspan_bool + +\keys_define:nn { tblr-set-tracing } + { + +text .code:n = \bool_gset_true:N \g__tblr_tracing_text_bool, + -text .code:n = \bool_gset_false:N \g__tblr_tracing_text_bool, + +command .code:n = \bool_gset_true:N \g__tblr_tracing_command_bool, + -command .code:n = \bool_gset_false:N \g__tblr_tracing_command_bool, + +table .code:n = \bool_gset_true:N \g__tblr_tracing_table_bool, + -table .code:n = \bool_gset_false:N \g__tblr_tracing_table_bool, + +column .code:n = \bool_gset_true:N \g__tblr_tracing_column_bool, + -column .code:n = \bool_gset_false:N \g__tblr_tracing_column_bool, + +row .code:n = \bool_gset_true:N \g__tblr_tracing_row_bool, + -row .code:n = \bool_gset_false:N \g__tblr_tracing_row_bool, + +cell .code:n = \bool_gset_true:N \g__tblr_tracing_cell_bool, + -cell .code:n = \bool_gset_false:N \g__tblr_tracing_cell_bool, + +vline .code:n = \bool_gset_true:N \g__tblr_tracing_vline_bool, + -vline .code:n = \bool_gset_false:N \g__tblr_tracing_vline_bool, + +hline .code:n = \bool_gset_true:N \g__tblr_tracing_hline_bool, + -hline .code:n = \bool_gset_false:N \g__tblr_tracing_hline_bool, + +colspec .code:n = \bool_gset_true:N \g__tblr_tracing_colspec_bool, + -colspec .code:n = \bool_gset_false:N \g__tblr_tracing_colspec_bool, + +rowspec .code:n = \bool_gset_true:N \g__tblr_tracing_rowspec_bool, + -rowspec .code:n = \bool_gset_false:N \g__tblr_tracing_rowspec_bool, + +target .code:n = \bool_gset_true:N \g__tblr_tracing_target_bool, + -target .code:n = \bool_gset_false:N \g__tblr_tracing_target_bool, + +cellspan .code:n = \bool_gset_true:N \g__tblr_tracing_cellspan_bool, + -cellspan .code:n = \bool_gset_false:N \g__tblr_tracing_cellspan_bool, + all .code:n = \__tblr_enable_all_tracings:, + none .code:n = \__tblr_disable_all_tracings:, + } + +\cs_new_protected_nopar:Npn \__tblr_enable_all_tracings: + { + \bool_gset_true:N \g__tblr_tracing_text_bool + \bool_gset_true:N \g__tblr_tracing_command_bool + \bool_gset_true:N \g__tblr_tracing_table_bool + \bool_gset_true:N \g__tblr_tracing_column_bool + \bool_gset_true:N \g__tblr_tracing_row_bool + \bool_gset_true:N \g__tblr_tracing_cell_bool + \bool_gset_true:N \g__tblr_tracing_vline_bool + \bool_gset_true:N \g__tblr_tracing_hline_bool + \bool_gset_true:N \g__tblr_tracing_colspec_bool + \bool_gset_true:N \g__tblr_tracing_rowspec_bool + \bool_gset_true:N \g__tblr_tracing_target_bool + \bool_gset_true:N \g__tblr_tracing_cellspan_bool + } + +\cs_new_protected_nopar:Npn \__tblr_disable_all_tracings: + { + \bool_gset_false:N \g__tblr_tracing_text_bool + \bool_gset_false:N \g__tblr_tracing_command_bool + \bool_gset_false:N \g__tblr_tracing_table_bool + \bool_gset_false:N \g__tblr_tracing_column_bool + \bool_gset_false:N \g__tblr_tracing_row_bool + \bool_gset_false:N \g__tblr_tracing_cell_bool + \bool_gset_false:N \g__tblr_tracing_vline_bool + \bool_gset_false:N \g__tblr_tracing_hline_bool + \bool_gset_false:N \g__tblr_tracing_colspec_bool + \bool_gset_false:N \g__tblr_tracing_rowspec_bool + \bool_gset_false:N \g__tblr_tracing_target_bool + \bool_gset_false:N \g__tblr_tracing_cellspan_bool + } + +\NewDocumentCommand \LogTabularrayTracing { m } + { + \keys_set:nn { tblr-log-tracing } {#1} + } +\cs_new_eq:NN \LogTblrTracing \LogTabularrayTracing + +\keys_define:nn { tblr-log-tracing } + { + unknown .code:n = \__tblr_log_tracing:N \l_keys_key_str + } + +\cs_new_protected:Npn \__tblr_log_tracing:N #1 + { + \bool_if:cT { g__tblr_tracing_ #1 _bool } + { \cs:w __tblr_log_tracing _ #1 : \cs_end: } + } + +\cs_new_protected:Npn \__tblr_log_tracing_text: + { + \__tblr_prop_log:n { text } + } + +\cs_new_protected:Npn \__tblr_log_tracing_command: + { + \__tblr_prop_log:n { command } + } + +\cs_new_protected:Npn \__tblr_log_tracing_table: + { + \__tblr_prop_log:n { table } + } + +\cs_new_protected:Npn \__tblr_log_tracing_column: + { + \__tblr_prop_log:n { column } + } + +\cs_new_protected:Npn \__tblr_log_tracing_row: + { + \__tblr_data_log:n { row } + } + +\cs_new_protected:Npn \__tblr_log_tracing_cell: + { + \__tblr_prop_log:n { cell } + } + +\cs_new_protected:Npn \__tblr_log_tracing_vline: + { + \__tblr_prop_log:n { vline } + } + +\cs_new_protected:Npn \__tblr_log_tracing_hline: + { + \__tblr_prop_log:n { hline } + } + +\cs_new_protected:Npn \__tblr_log_tracing_colspec: + { + \tl_if_eq:NnT \g__tblr_column_or_row_tl { column } + { \tl_log:N \g__tblr_expanded_colrow_spec_tl } + } + +\cs_new_protected:Npn \__tblr_log_tracing_rowspec: + { + \tl_if_eq:NnT \g__tblr_column_or_row_tl { row } + { \tl_log:N \g__tblr_expanded_colrow_spec_tl } + } + +\cs_new_protected:Npn \__tblr_log_tracing_target: + { + \dim_log:N \l__column_target_dim + \prop_log:N \l__column_coefficient_prop + \prop_log:N \l__column_natural_width_prop + \prop_log:N \l__column_computed_width_prop + } + +\cs_new_protected:Npn \__tblr_log_tracing_cellspan: + { + \prop_log:N \l__tblr_col_item_skip_size_prop + \prop_log:N \l__tblr_col_span_size_prop + \prop_log:N \l__tblr_row_item_skip_size_prop + \prop_log:N \l__tblr_row_span_size_prop + \prop_log:N \l__tblr_row_span_to_row_prop + } + +\cs_new_protected:Npn \__tblr_do_if_tracing:nn #1 #2 + { + \bool_if:cT { g__tblr_tracing_ #1 _bool } {#2} + } + +\ExplSyntaxOff diff --git a/macros/latex/contrib/tabularray/tabularray.pdf b/macros/latex/contrib/tabularray/tabularray.pdf index 7b00466957..05c0d50e11 100644 Binary files a/macros/latex/contrib/tabularray/tabularray.pdf and b/macros/latex/contrib/tabularray/tabularray.pdf differ diff --git a/macros/latex/contrib/tabularray/tabularray.sty b/macros/latex/contrib/tabularray/tabularray.sty index 90ddaadd34..8e5c2b9369 100644 --- a/macros/latex/contrib/tabularray/tabularray.sty +++ b/macros/latex/contrib/tabularray/tabularray.sty @@ -12,7 +12,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} -\ProvidesExplPackage{tabularray}{2021-05-25}{2021J} +\ProvidesExplPackage{tabularray}{2021-06-05}{2021K} {Typeset tabulars and arrays with LaTeX3} \RequirePackage{xparse} @@ -97,60 +97,78 @@ \box_new:N \l__tblr_c_box % for cell box \box_new:N \l__tblr_d_box +%% Some counters for row and column numbering +\newcounter{rownum} +\newcounter{colnum} +\newcounter{rowcount} +\newcounter{colcount} + %%% -------------------------------------------------------- %% \section{Data Structures Based on Property Lists} %%% -------------------------------------------------------- \int_new:N \g_tblr_level_int % store table nesting level +\cs_new_protected:Npn \__tblr_clear_prop_lists: + { + \prop_gclear_new:c { g__tblr_text_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g__tblr_command_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g__tblr_table_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g__tblr_row_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g__tblr_column_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g__tblr_cell_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g__tblr_hline_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g__tblr_vline_ \int_use:N \g_tblr_level_int _prop } + } + \cs_new_protected:Npn \__tblr_prop_gput:nnn #1 #2 #3 { \prop_gput:cnn - { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } } \cs_generate_variant:Nn \__tblr_prop_gput:nnn { nnx, nnV, nxn, nxx, nxV } \cs_new:Npn \__tblr_prop_item:nn #1 #2 { - \prop_item:cn { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } + \prop_item:cn { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } } \cs_generate_variant:Nn \__tblr_prop_item:nn { ne } \cs_new_protected:Npn \__tblr_prop_if_in:nnT #1 { - \prop_if_in:cnT { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + \prop_if_in:cnT { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } } \cs_new_protected:Npn \__tblr_prop_if_in:nnF #1 { - \prop_if_in:cnF { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + \prop_if_in:cnF { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } } \cs_new_protected:Npn \__tblr_prop_if_in:nnTF #1 { - \prop_if_in:cnTF { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + \prop_if_in:cnTF { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } } \prg_generate_conditional_variant:Nnn \__tblr_prop_if_in:nn { nx } { T, F, TF } \cs_new_protected:Npn \__tblr_prop_log:n #1 { - \prop_log:c { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + \prop_log:c { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } } \cs_new_protected:Npn \__tblr_prop_map_inline:nn #1 #2 { - \prop_map_inline:cn { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } {#2} + \prop_map_inline:cn { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } {#2} } \cs_new_protected:Npn \__tblr_prop_gput_if_larger:nnn #1 #2 #3 { \__tblr_gput_if_larger:cnn - { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } } \cs_generate_variant:Nn \__tblr_prop_gput_if_larger:nnn { nnx, nnV, nxn, nxx, nxV } \cs_new_protected:Npn \__tblr_prop_gadd_dimen_value:nnn #1 #2 #3 { \__tblr_gadd_dimen_value:cnn - { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + { g__tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } } \cs_generate_variant:Nn \__tblr_prop_gadd_dimen_value:nnn { nnx, nnV, nxn, nxx } @@ -193,27 +211,90 @@ } \cs_generate_variant:Nn \__tblr_gadd_dimen_value:Nnn { cnn } -%% Some counters for row and column numbering -\newcounter{rownum} -\newcounter{colnum} -\newcounter{rowcount} -\newcounter{colcount} +%%% -------------------------------------------------------- +%% \section{Data Structures Based on Token Lists} +%%% -------------------------------------------------------- + +\cs_new_protected:Npn \__tblr_clear_text_lists: + { + \__tblr_clear_one_text_lists:n { text } + \__tblr_clear_one_text_lists:n { hline } + \__tblr_clear_one_text_lists:n { vline } + } + +\cs_new_protected:Npn \__tblr_clear_one_text_lists:n #1 + { + \clist_if_exist:cTF { g__tblr_#1_ \int_use:N \g_tblr_level_int _clist } + { + \clist_map_inline:cn { g__tblr_#1_ \int_use:N \g_tblr_level_int _clist } + { + \tl_gclear:c { g__tblr_text_ \int_use:N \g_tblr_level_int _#1_##1_tl } + } + } + { \clist_new:c { g__tblr_#1_ \int_use:N \g_tblr_level_int _clist } } + } + +\cs_new_protected:Npn \__tblr_text_gput:nnn #1 #2 #3 + { + \tl_gset:cn + { g__tblr_text_ \int_use:N \g_tblr_level_int _#1_#2_tl } {#3} + \clist_gput_right:cx { g__tblr_#1_ \int_use:N \g_tblr_level_int _clist } {#2} + } +\cs_generate_variant:Nn \__tblr_text_gput:nnn { nne, nnV, nen, nee, neV } + +\cs_new:Npn \__tblr_text_item:nn #1 #2 + { + \tl_if_exist:cT { g__tblr_text_ \int_use:N \g_tblr_level_int _#1_#2_tl } + { + \exp_args:Nv \exp_not:n + { g__tblr_text_ \int_use:N \g_tblr_level_int _#1_#2_tl } + } + } +\cs_generate_variant:Nn \__tblr_text_item:nn { ne } + +\cs_new_protected:Npn \__tblr_text_gput_if_larger:nnn #1 #2 #3 + { + \tl_set:Nx \l__tblr_put_if_larger_tl { \__tblr_text_item:nn {#1} {#2} } + \bool_lazy_or:nnT + { \tl_if_empty_p:N \l__tblr_put_if_larger_tl } + { \dim_compare_p:nNn {#3} > { \l__tblr_put_if_larger_tl } } + { \__tblr_text_gput:nnn {#1} {#2} {#3} } + } +\cs_generate_variant:Nn \__tblr_text_gput_if_larger:nnn { nne, nnV, nen, nee, neV } + +\cs_new_protected:Npn \__tblr_text_log:n #1 + { + \clist_gremove_duplicates:c + { g__tblr_#1_ \int_use:N \g_tblr_level_int _clist } + \tl_log:n { ----------~----------~----------~----------~---------- } + \clist_map_inline:cn { g__tblr_#1_ \int_use:N \g_tblr_level_int _clist } + { + \tl_log:x + { + \space { #1 ##1 } ~\space=>~\space { \__tblr_text_item:nn {#1} {##1} } + } + } + } %%% -------------------------------------------------------- %% \section{Data Structures Based on Integer Arrays} %%% -------------------------------------------------------- -\int_new:N \g__tblr_array_int +\msg_new:nnn { tabularray } { intarray-beyond-bound } + { Position ~ #2 ~ is ~ beyond ~ the ~ bound ~ of ~ intarray ~ #1.} -\cs_new_protected:Npn \__tblr_initial_table_data: +\cs_new_protected:Npn \__tblr_intarray_gset:Nnn #1 #2 #3 { - \int_gincr:N \g__tblr_array_int - \intarray_new:cn { g__tblr_row_ \int_use:N \g__tblr_array_int _intarray } - { \g__tblr_data_row_key_count_int * \c@rowcount } - \cs_set_eq:cc { g__tblr_row_ \int_use:N \g_tblr_level_int _intarray } - { g__tblr_row_ \int_use:N \g__tblr_array_int _intarray } - %\intarray_log:c { g__tblr_row_ \int_use:N \g_tblr_level_int _intarray } + \bool_lazy_or:nnTF + { \int_compare_p:nNn {#2} < {0} } + { \int_compare_p:nNn {#2} > {\intarray_count:N #1} } + { + \bool_if:NT \g__tblr_tracing_intarray_bool + { \msg_warning:nnnn { tabularray } { intarray-beyond-bound } {#1} {#2} } + } + { \intarray_gset:Nnn #1 {#2} {#3} } } +\cs_generate_variant:Nn \__tblr_intarray_gset:Nnn { cnn } %% #1: data name; #2: key name; #3: value type \cs_new_protected:Npn \__tblr_data_new_key:nnn #1 #2 #3 @@ -231,7 +312,6 @@ } \int_new:N \g__tblr_data_row_key_count_int - \__tblr_data_new_key:nnn { row } { height } { dim } \__tblr_data_new_key:nnn { row } { coefficient } { dec } \__tblr_data_new_key:nnn { row } { abovesep } { dim } @@ -242,6 +322,52 @@ \__tblr_data_new_key:nnn { row } { @row-upper } { dim } \__tblr_data_new_key:nnn { row } { @row-lower } { dim } +\int_new:N \g__tblr_data_column_key_count_int +\__tblr_data_new_key:nnn { column } { width } { dim } +\__tblr_data_new_key:nnn { column } { coefficient } { dec } +\__tblr_data_new_key:nnn { column } { leftsep } { dim } +\__tblr_data_new_key:nnn { column } { rightsep } { dim } +\__tblr_data_new_key:nnn { column } { @col-width } { dim } + +\int_new:N \g__tblr_data_cell_key_count_int +\__tblr_data_new_key:nnn { cell } { width } { dim } +\__tblr_data_new_key:nnn { cell } { rowspan } { int } +\__tblr_data_new_key:nnn { cell } { colspan } { int } +\__tblr_data_new_key:nnn { cell } { halign } { str } +\__tblr_data_new_key:nnn { cell } { valign } { str } +\__tblr_data_new_key:nnn { cell } { background } { str } +\__tblr_data_new_key:nnn { cell } { omit } { int } +\__tblr_data_new_key:nnn { cell } { @cell-width } { dim } +\__tblr_data_new_key:nnn { cell } { @cell-height } { dim } +\__tblr_data_new_key:nnn { cell } { @cell-depth } { dim } + +\clist_const:Nn \g__tblr_data_clist { row, column, cell } +\tl_const:Nn \g__tblr_data_row_count_tl { \c@rowcount } +\tl_const:Nn \g__tblr_data_column_count_tl { \c@colcount } +\tl_const:Nn \g__tblr_data_cell_count_tl { \c@rowcount * \c@colcount } +\tl_const:Nn \g__tblr_data_row_index_number_tl {1} +\tl_const:Nn \g__tblr_data_column_index_number_tl {1} +\tl_const:Nn \g__tblr_data_cell_index_number_tl {2} +\int_new:N \g__tblr_array_int + +\cs_new_protected:Npn \__tblr_initial_table_data: + { + \clist_map_function:NN \g__tblr_data_clist \__tblr_initial_one_data:n + } + +\cs_new_protected:Npn \__tblr_initial_one_data:n #1 + { + \int_gincr:N \g__tblr_array_int + \intarray_new:cn { g__tblr_#1_ \int_use:N \g__tblr_array_int _intarray } + { + \int_use:c { g__tblr_data_#1_key_count_int } + * \tl_use:c { g__tblr_data_#1_count_tl } + } + \cs_set_eq:cc { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + { g__tblr_#1_ \int_use:N \g__tblr_array_int _intarray } + %\intarray_log:c { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + } + %% #1: data name; #2: data index; #3: key name \cs_new:Npn \__tblr_data_key_to_int:nnn #1 #2 #3 { @@ -249,8 +375,17 @@ + \tl_use:c { g__tblr_data_#1_key_number_#3_tl } } +%% #1: data name; #2: data index 1; #3: data index 2; #4: key name +\cs_new:Npn \__tblr_data_key_to_int:nnnn #1 #2 #3 #4 + { + ( #2 - 1 ) * \c@colcount * \int_use:c { g__tblr_data_#1_key_count_int } + + ( #3 - 1 ) * \int_use:c { g__tblr_data_#1_key_count_int } + + \tl_use:c { g__tblr_data_#1_key_number_#4_tl } + } + \int_new:N \l__tblr_key_count_int \int_new:N \l__tblr_key_quotient_int +\int_new:N \l__tblr_key_quotient_two_int \int_new:N \l__tblr_key_remainder_int %% #1: data name; #2: array position; @@ -275,11 +410,50 @@ { g__tblr_data_#1_key_name_ \int_use:N \l__tblr_key_remainder_int _tl } } +%% #1: data name; #2: array position; +%% #3: returning tl with index 1; #4: returning tl with index 2; +%% #5: returning tl with key name +\cs_new:Npn \__tblr_data_int_to_key:nnNNN #1 #2 #3 #4 #5 + { + \int_set_eq:Nc \l__tblr_key_count_int { g__tblr_data_#1_key_count_int } + \int_set:Nn \l__tblr_key_quotient_int + { + \int_div_truncate:nn + { #2 + \l__tblr_key_count_int - 1 } { \l__tblr_key_count_int } + } + \int_set:Nn \l__tblr_key_remainder_int + { + #2 + \l__tblr_key_count_int + - \l__tblr_key_quotient_int * \l__tblr_key_count_int + } + \int_compare:nNnT { \l__tblr_key_remainder_int } = { 0 } + { \int_set_eq:NN \l__tblr_key_remainder_int \l__tblr_key_count_int } + \tl_set_eq:Nc #5 + { g__tblr_data_#1_key_name_ \int_use:N \l__tblr_key_remainder_int _tl } + \int_set:Nn \l__tblr_key_quotient_two_int + { + \int_div_truncate:nn + { \l__tblr_key_quotient_int + \c@colcount - 1 } { \c@colcount } + } + \int_set:Nn \l__tblr_key_remainder_int + { + \l__tblr_key_quotient_int + \c@colcount + - \l__tblr_key_quotient_two_int * \c@colcount + } + \int_compare:nNnT { \l__tblr_key_remainder_int } = { 0 } + { \int_set_eq:NN \l__tblr_key_remainder_int \c@colcount } + \tl_set:Nx #4 { \int_use:N \l__tblr_key_remainder_int } + \tl_set:Nx #3 { \int_use:N \l__tblr_key_quotient_two_int } + } + +\tl_new:N \g__tblr_data_int_from_value_tl + %% #1: data name; #2: key name; #3: value -\cs_new:Npn \__tblr_data_value_to_int:nnn #1 #2 #3 +%% The result will be stored in \g__tblr_data_int_from_value_tl +\cs_new_protected:Npn \__tblr_data_int_from_value:nnn #1 #2 #3 { \cs:w - __tblr_data_ \tl_use:c { g__tblr_data_#1_key_type_#2_tl } _to_int:n + __tblr_data_int_from_ \tl_use:c { g__tblr_data_#1_key_type_#2_tl } :n \cs_end: {#3} } @@ -294,9 +468,19 @@ } \cs_generate_variant:Nn \__tblr_data_int_to_value:nnn { nne, nVe } -\cs_new:Npn \__tblr_data_dim_to_int:n #1 +\cs_new_protected:Npn \__tblr_data_int_from_int:n #1 { - \dim_to_decimal_in_sp:n {#1} + \tl_gset:Nn \g__tblr_data_int_from_value_tl {#1} + } + +\cs_new:Npn \__tblr_data_int_to_int:n #1 + { + #1 + } + +\cs_new_protected:Npn \__tblr_data_int_from_dim:n #1 + { + \tl_gset:Nx \g__tblr_data_int_from_value_tl { \dim_to_decimal_in_sp:n {#1} } } %% Return a dimension in pt so that it's easier to understand in tracing messages @@ -307,9 +491,10 @@ \dim_to_decimal:n { #1 sp } pt } -\cs_new:Npn \__tblr_data_dec_to_int:n #1 +\cs_new_protected:Npn \__tblr_data_int_from_dec:n #1 { - \dim_to_decimal_in_sp:n {#1 pt} + \tl_gset:Nx \g__tblr_data_int_from_value_tl + { \dim_to_decimal_in_sp:n {#1 pt} } } \cs_new:Npn \__tblr_data_int_to_dec:n #1 @@ -317,17 +502,57 @@ \dim_to_decimal:n {#1 sp} } +\int_new:N \g__tblr_data_str_value_count_int +\tl_set:cn { g__tblr_data_0_to_str_tl } { } + +\cs_new_protected:Npn \__tblr_data_int_from_str:n #1 + { + \tl_if_exist:cTF { g__tblr_data_#1_to_int_tl } + { + \tl_gset_eq:Nc \g__tblr_data_int_from_value_tl + { g__tblr_data_#1_to_int_tl } + } + { + \int_gincr:N \g__tblr_data_str_value_count_int + \tl_gset:cx { g__tblr_data_#1_to_int_tl } + { \int_use:N \g__tblr_data_str_value_count_int } + \tl_gset:cx + { g__tblr_data_ \int_use:N \g__tblr_data_str_value_count_int _to_str_tl } + { #1 } + \tl_gset:Nx \g__tblr_data_int_from_value_tl + { \int_use:N \g__tblr_data_str_value_count_int } + } + } + +\cs_new:Npn \__tblr_data_int_to_str:n #1 + { + \tl_use:c { g__tblr_data_#1_to_str_tl } + } + %% #1: data name; #2: data index; #3: key; #4: value \cs_new_protected:Npn \__tblr_data_gput:nnnn #1 #2 #3 #4 { - \intarray_gset:cnn + \__tblr_data_int_from_value:nnn {#1} {#3} {#4} + \__tblr_intarray_gset:cnn { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } { \__tblr_data_key_to_int:nnn {#1} {#2} {#3} } - { \__tblr_data_value_to_int:nnn {#1} {#3} {#4} } + { \g__tblr_data_int_from_value_tl } } \cs_generate_variant:Nn \__tblr_data_gput:nnnn { nnne, nnnV, nenn, nene, nenV, nVnn } +%% #1: data name; #2: data index 1; #3: data index 2; #4: key; #5: value +\cs_new_protected:Npn \__tblr_data_gput:nnnnn #1 #2 #3 #4 #5 + { + \__tblr_data_int_from_value:nnn {#1} {#4} {#5} + \__tblr_intarray_gset:cnn + { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + { \__tblr_data_key_to_int:nnnn {#1} {#2} {#3} {#4} } + { \g__tblr_data_int_from_value_tl } + } +\cs_generate_variant:Nn \__tblr_data_gput:nnnnn + { nnnne, nnnnV, neenn, neene, neenV, neeen, nVVnn } + %% #1: data name; #2: data index; #3: key \cs_new:Npn \__tblr_data_item:nnn #1 #2 #3 { @@ -339,13 +564,32 @@ } \cs_generate_variant:Nn \__tblr_data_item:nnn { nen } +%% #1: data name; #2: data index 1; #3: data index 2; #4: key +\cs_new:Npn \__tblr_data_item:nnnn #1 #2 #3 #4 + { + \__tblr_data_int_to_value:nne {#1} {#4} + { + \intarray_item:cn { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + { \__tblr_data_key_to_int:nnnn {#1} {#2} {#3} {#4} } + } + } +\cs_generate_variant:Nn \__tblr_data_item:nnnn { neen } + \tl_new:N \l__tblr_data_key_tl \tl_new:N \l__tblr_data_index_tl +\tl_new:N \l__tblr_data_index_two_tl \cs_new_protected:Npn \__tblr_data_log:n #1 + { + \use:c { __tblr_data_log_ \use:c { g__tblr_data_#1_index_number_tl } :n } {#1} + \__tblr_prop_log:n {#1} + } + +\cs_new_protected:cpn { __tblr_data_log_1:n } #1 { %\intarray_log:c { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } \tl_set:Nx \l_tmpa_tl { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + \tl_log:n { ----------~----------~----------~----------~---------- } \int_step_inline:nn { \intarray_count:c { \l_tmpa_tl } } { @@ -353,52 +597,80 @@ \l__tblr_data_index_tl \l__tblr_data_key_tl \tl_log:x { + \space { #1 [\l__tblr_data_index_tl] / \l__tblr_data_key_tl } - \space = \space + ~\space => ~\space + { + \__tblr_data_int_to_value:nVe {#1} \l__tblr_data_key_tl + { \intarray_item:cn { \l_tmpa_tl } {##1} } + } + } + } + } + +\cs_new_protected:cpn { __tblr_data_log_2:n } #1 + { + %\intarray_log:c { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + \tl_set:Nx \l_tmpa_tl { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } + \tl_log:n { ----------~----------~----------~----------~---------- } + \int_step_inline:nn + { \intarray_count:c { \l_tmpa_tl } } + { + \__tblr_data_int_to_key:nnNNN {#1} {##1} + \l__tblr_data_index_tl \l__tblr_data_index_two_tl \l__tblr_data_key_tl + \tl_log:x + { + \space + { + #1 [\l__tblr_data_index_tl][\l__tblr_data_index_two_tl] + / \l__tblr_data_key_tl + } + ~\space => ~\space { \__tblr_data_int_to_value:nVe {#1} \l__tblr_data_key_tl { \intarray_item:cn { \l_tmpa_tl } {##1} } } } } - \__tblr_prop_log:n {#1} } %% #1: data name; #2: row index; #3: key; #4: value \cs_new_protected:Npn \__tblr_data_gput_if_larger:nnnn #1 #2 #3 #4 { + \__tblr_data_int_from_value:nnn {#1} {#3} {#4} \__tblr_array_gput_if_larger:cnn { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } { \__tblr_data_key_to_int:nnn {#1} {#2} {#3} } - { \__tblr_data_value_to_int:nnn {#1} {#3} {#4} } + { \g__tblr_data_int_from_value_tl } } \cs_generate_variant:Nn \__tblr_data_gput_if_larger:nnnn { nnne, nnnV, nene, nenV } \cs_new_protected:Npn \__tblr_array_gput_if_larger:Nnn #1 #2 #3 { \int_compare:nNnT {#3} > { \intarray_item:Nn #1 {#2} } - { \intarray_gset:Nnn #1 {#2} {#3} } + { \__tblr_intarray_gset:Nnn #1 {#2} {#3} } } \cs_generate_variant:Nn \__tblr_array_gput_if_larger:Nnn { cnn } %% #1: data name; #2: data index; #3: key; #4: value \cs_new_protected:Npn \__tblr_data_gadd_dimen_value:nnnn #1 #2 #3 #4 { + \__tblr_data_int_from_value:nnn {#1} {#3} {#4} \__tblr_array_gadd_value:cnn { g__tblr_#1_ \int_use:N \g_tblr_level_int _intarray } { \__tblr_data_key_to_int:nnn {#1} {#2} {#3} } - { \__tblr_data_value_to_int:nnn {#1} {#3} {#4} } + { \g__tblr_data_int_from_value_tl } } \cs_generate_variant:Nn \__tblr_data_gadd_dimen_value:nnnn { nnne, nnnV, nene } \cs_new_protected:Npn \__tblr_array_gadd_value:Nnn #1 #2 #3 { - \intarray_gset:Nnn #1 {#2} { \intarray_item:Nn #1 {#2} + #3 } + \__tblr_intarray_gset:Nnn #1 {#2} { \intarray_item:Nn #1 {#2} + #3 } } \cs_generate_variant:Nn \__tblr_array_gadd_value:Nnn { cnn } \bool_new:N \g__tblr_use_intarray_bool -%\bool_set_true:N \g__tblr_use_intarray_bool +\bool_set_true:N \g__tblr_use_intarray_bool \AtBeginDocument { @@ -408,10 +680,18 @@ { \__tblr_prop_gput:nnn {#1} { [#2] / #3 } {#4} } + \cs_set_protected:Npn \__tblr_data_gput:nnnnn #1 #2 #3 #4 #5 + { + \__tblr_prop_gput:nnn {#1} { [#2][#3] / #4 } {#5} + } \cs_set:Npn \__tblr_data_item:nnn #1 #2 #3 { \__tblr_prop_item:nn {#1} { [#2] / #3 } } + \cs_set:Npn \__tblr_data_item:nnnn #1 #2 #3 #4 + { + \__tblr_prop_item:nn {#1} { [#2][#3] / #4 } + } \cs_set_protected:Npn \__tblr_data_log:n #1 { \__tblr_prop_log:n {#1} @@ -420,10 +700,18 @@ { \__tblr_prop_gput_if_larger:nnn {#1} { [#2] / #3 } {#4} } + \cs_set_protected:Npn \__tblr_data_gput_if_larger:nnnnn #1 #2 #3 #4 #5 + { + \__tblr_prop_gput_if_larger:nnn {#1} { [#2][#3] / #4 } {#5} + } \cs_set_protected:Npn \__tblr_data_gadd_dimen_value:nnnn #1 #2 #3 #4 { \__tblr_prop_gadd_dimen_value:nnn {#1} { [#2] / #3 } {#4} } + \cs_set_protected:Npn \__tblr_data_gadd_dimen_value:nnnnn #1 #2 #3 #4 #5 + { + \__tblr_prop_gadd_dimen_value:nnn {#1} { [#2][#3] / #4 } {#5} + } } } @@ -490,7 +778,6 @@ \regex_const:Nn \c__tblr_split_selector_name_regex { ^ ( [A-Za-z] {2,} ) ( . * ) } \seq_new:N \l__tblr_childs_split_seq \seq_new:N \l__tblr_childs_regex_seq -\tl_new:N \l__tblr_childs_end_tl \tl_new:N \l__tblr_childs_selector_tl %% #1, child specifications; #2, total number. @@ -524,15 +811,16 @@ { \seq_set_split:Nnn \l__tblr_childs_split_seq {,} {#1} \seq_map_inline:Nn \l__tblr_childs_split_seq - { \__tblr_get_childs_normal_aux:w ##1 - s \scan_stop } + { + \tl_if_in:nnTF {##1} {-} + { \__tblr_get_childs_normal_aux:w ##1 \scan_stop } + { \__tblr_get_childs_normal_aux:w ##1 - ##1 \scan_stop } + } } -\cs_new_protected_nopar:Npn \__tblr_get_childs_normal_aux:w #1 - #2 #3 \scan_stop +\cs_new_protected_nopar:Npn \__tblr_get_childs_normal_aux:w #1 - #2 \scan_stop { - \tl_if_eq:nnTF {#2} {s} - { \tl_set:Nn \l__tblr_childs_end_tl {#1} } - { \tl_set:Nn \l__tblr_childs_end_tl {#2} } - \int_step_inline:nnn {#1} { \l__tblr_childs_end_tl } + \int_step_inline:nnn {#1} {#2} { \clist_put_right:Nn \l_tblr_childs_clist {##1} } } @@ -780,11 +1068,12 @@ { \tl_clear:N \l__tblr_hline_num_tl \tl_set:Nx \l__tblr_hline_count_tl - { \__tblr_prop_item:ne { hline } { [\int_use:N \c@rownum] / @hline-count } } - \tl_if_empty:NTF \l__tblr_hline_count_tl + { \__tblr_text_item:ne { hline } { [\int_use:N \c@rownum] / @hline-count } } + %% \l__tblr_hline_count_tl may be empty when rowspec has extra |'s + \int_compare:nNnTF { \l__tblr_hline_count_tl + 0 } = {0} { \tl_set:Nx \l__tblr_hline_num_tl { 1 } - \__tblr_prop_gput:nxx { hline } + \__tblr_text_gput:nen { hline } { [\int_use:N \c@rownum] / @hline-count } { 1 } } { @@ -806,7 +1095,7 @@ { \tl_set:Nx \l__tblr_hline_count_tl { \int_eval:n { \l__tblr_hline_count_tl + 1 } } - \__tblr_prop_gput:nxx { hline } + \__tblr_text_gput:nee { hline } { [\int_use:N \c@rownum] / @hline-count } { \l__tblr_hline_count_tl } \tl_set_eq:NN \l__tblr_hline_num_tl \l__tblr_hline_count_tl } @@ -842,18 +1131,18 @@ \__tblr_get_childs:nx {#1} { \int_use:N \c@colcount } \clist_map_inline:Nn \l_tblr_childs_clist { - \__tblr_prop_gput:nxx { hline } + \__tblr_text_gput:nee { hline } { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / @dash } { \l__tblr_hline_dash_tl } \tl_if_empty:NF \l__tblr_hline_wd_tl { - \__tblr_prop_gput:nxx { hline } + \__tblr_text_gput:nee { hline } { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / wd } { \l__tblr_hline_wd_tl } } \tl_if_empty:NF \l__tblr_hline_fg_tl { - \__tblr_prop_gput:nxx { hline } + \__tblr_text_gput:nee { hline } { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / fg } { \l__tblr_hline_fg_tl } } @@ -978,11 +1267,12 @@ { \tl_clear:N \l__tblr_vline_num_tl \tl_set:Nx \l__tblr_vline_count_tl - { \__tblr_prop_item:ne { vline } { [\int_use:N \c@colnum] / @vline-count } } - \tl_if_empty:NTF \l__tblr_vline_count_tl + { \__tblr_text_item:ne { vline } { [\int_use:N \c@colnum] / @vline-count } } + %% \l__tblr_vline_count_tl may be empty when colspec has extra |'s + \int_compare:nNnTF { \l__tblr_vline_count_tl + 0 } = {0} { \tl_set:Nx \l__tblr_vline_num_tl { 1 } - \__tblr_prop_gput:nxx { vline } + \__tblr_text_gput:nen { vline } { [\int_use:N \c@colnum] / @vline-count } { 1 } } { @@ -1004,7 +1294,7 @@ { \tl_set:Nx \l__tblr_vline_count_tl { \int_eval:n { \l__tblr_vline_count_tl + 1 } } - \__tblr_prop_gput:nxx { vline } + \__tblr_text_gput:nee { vline } { [\int_use:N \c@colnum] / @vline-count } { \l__tblr_vline_count_tl } \tl_set_eq:NN \l__tblr_vline_num_tl \l__tblr_vline_count_tl } @@ -1039,18 +1329,18 @@ \__tblr_get_childs:nx {#1} { \int_use:N \c@rowcount } \clist_map_inline:Nn \l_tblr_childs_clist { - \__tblr_prop_gput:nxx { vline } + \__tblr_text_gput:nee { vline } { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / @dash } { \l__tblr_vline_dash_tl } \tl_if_empty:NF \l__tblr_vline_wd_tl { - \__tblr_prop_gput:nxx { vline } + \__tblr_text_gput:nee { vline } { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / wd } { \l__tblr_vline_wd_tl } } \tl_if_empty:NF \l__tblr_vline_fg_tl { - \__tblr_prop_gput:nxx { vline } + \__tblr_text_gput:nee { vline } { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / fg } { \l__tblr_vline_fg_tl } } @@ -1150,42 +1440,77 @@ \keys_define:nn { tblr-cell-spec } { - l .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {l}, - c .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {c}, - r .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {r}, - t .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {t}, - p .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {t}, - m .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {m}, - b .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {b}, - h .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {h}, - f .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {f}, - wd .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / width} {#1}, - bg .code:n = \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / background} {#1}, + l .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { halign } {l}, + c .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { halign } {c}, + r .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { halign } {r}, + t .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { valign} {t}, + p .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { valign} {t}, + m .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { valign} {m}, + b .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { valign} {b}, + h .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { valign} {h}, + f .code:n = \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { valign} {f}, + wd .code:n = \__tblr_data_gput:neene { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { width } {#1}, + bg .code:n = \__tblr_data_gput:neene { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } + { background } {#1}, + preto .code:n = \__tblr_cell_preto_text:n {#1}, + appto .code:n = \__tblr_cell_appto_text:n {#1}, + fg .code:n = \__tblr_cell_preto_text:n { \color{#1} }, + font .code:n = \__tblr_cell_preto_text:n { #1 \selectfont }, unknown .code:n = \__tblr_cell_unknown_key:V \l_keys_key_str, } +\tl_new:N \l__tblr_cell_text_tl + +\cs_new_protected:Npn \__tblr_cell_preto_text:n #1 + { + \__tblr_cell_preto_text:een + { \int_use:N \c@rownum } { \int_use:N \c@colnum } {#1} + } + +\cs_new_protected:Npn \__tblr_cell_preto_text:nnn #1 #2 #3 + { + \tl_set:Nx \l__tblr_cell_text_tl { \__tblr_text_item:nn { text } { [#1][#2] } } + \tl_put_left:Nn \l__tblr_cell_text_tl {#3} + \__tblr_text_gput:nnV { text } { [#1][#2] } \l__tblr_cell_text_tl + } +\cs_generate_variant:Nn \__tblr_cell_preto_text:nnn { nen, enn, een } + +\cs_new_protected:Npn \__tblr_cell_appto_text:n #1 + { + \__tblr_cell_appto_text:een + { \int_use:N \c@rownum } { \int_use:N \c@colnum } {#1} + } + +\cs_new_protected:Npn \__tblr_cell_appto_text:nnn #1 #2 #3 + { + \tl_set:Nx \l__tblr_cell_text_tl { \__tblr_text_item:ne { text } { [#1][#2] } } + \tl_put_right:Nn \l__tblr_cell_text_tl {#3} + \__tblr_text_gput:neV { text } { [#1][#2] } \l__tblr_cell_text_tl + } +\cs_generate_variant:Nn \__tblr_cell_appto_text:nnn { nen, enn, een } + \cs_new_protected:Npn \__tblr_cell_unknown_key:n #1 { \regex_match:NnTF \c__tblr_is_color_key_regex {#1} { - \__tblr_prop_gput:nxx {cell} - {[\int_use:N \c@rownum][\int_use:N \c@colnum] / background} {#1} + \__tblr_data_gput:neene { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { background } {#1} } { \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} - \__tblr_prop_gput:nxx {cell} - { [\int_use:N \c@rownum][\int_use:N \c@colnum] / width } + \__tblr_data_gput:neene { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { width } { \dim_eval:n { \l__tblr_v_tl } } } } @@ -1196,14 +1521,14 @@ \int_compare:nNnT { #1 } > { 1 } { \__tblr_prop_gput:nnn {table} {rowspan} {true} - \__tblr_prop_gput:nxn {cell} - { [\int_use:N \c@rownum][\int_use:N \c@colnum] / rowspan } { #1 } + \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { rowspan } {#1} } \int_compare:nNnT { #2 } > { 1 } { \__tblr_prop_gput:nnn {table} {colspan} {true} - \__tblr_prop_gput:nxn {cell} - { [\int_use:N \c@rownum][\int_use:N \c@colnum] / colspan } { #2 } + \__tblr_data_gput:neenn { cell } + { \int_use:N \c@rownum } { \int_use:N \c@colnum } { colspan } {#2} } \int_step_variable:nnNn { \int_use:N \c@rownum } { \int_eval:n { \c@rownum + #1 - 1 } } \l__tblr_i_tl @@ -1216,17 +1541,17 @@ { \int_compare_p:nNn { \l__tblr_i_tl } = { \c@rownum } } { \int_compare_p:nNn { \l__tblr_j_tl } = { \c@colnum } } { - \__tblr_prop_gput:nxx {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} + \__tblr_data_gput:neenn { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { omit } {1} } \int_compare:nNnF { \l__tblr_i_tl } = { \c@rownum } { - \__tblr_prop_gput:nxx {hline} + \__tblr_text_gput:nen { hline } { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} } \int_compare:nNnF { \l__tblr_j_tl } = { \c@colnum } { - \__tblr_prop_gput:nxx {vline} + \__tblr_text_gput:nee { vline } { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} } } @@ -1373,19 +1698,21 @@ { \int_use:N \c@colnum } { valign } {f}, bg .code:n = \__tblr_set_key_for_every_column_cell:nnn { \int_use:N \c@colnum } { background } {#1}, - wd .code:n = \__tblr_prop_gput:nxx { column } - { [\int_use:N \c@colnum] / width } { \dim_eval:n {#1} }, - co .code:n = \__tblr_prop_gput:nxx { column } - { [\int_use:N \c@colnum] / coefficient } {#1}, - leftsep .code:n = \__tblr_prop_gput:nxx { column } - { [\int_use:N \c@colnum] / leftsep } { \dim_eval:n {#1} }, - rightsep .code:n = \__tblr_prop_gput:nxx { column } - { [\int_use:N \c@colnum] / rightsep } { \dim_eval:n {#1} }, + fg .code:n = \__tblr_preto_text_for_every_column_cell:n { \color{#1} }, + font .code:n = \__tblr_preto_text_for_every_column_cell:n { #1 \selectfont }, + wd .code:n = \__tblr_data_gput:nene { column } + { \int_use:N \c@colnum } { width } { \dim_eval:n {#1} }, + co .code:n = \__tblr_data_gput:nene { column } + { \int_use:N \c@colnum } { coefficient } {#1}, + leftsep .code:n = \__tblr_data_gput:nene { column } + { \int_use:N \c@colnum } { leftsep } { \dim_eval:n {#1} }, + rightsep .code:n = \__tblr_data_gput:nene { column } + { \int_use:N \c@colnum } { rightsep } { \dim_eval:n {#1} }, colsep .meta:n = { leftsep = #1, rightsep = #1}, - leftsep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { column } - { [\int_use:N \c@colnum] / leftsep } { \dim_eval:n {#1} }, - rightsep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { column } - { [\int_use:N \c@colnum] / rightsep } { \dim_eval:n {#1} }, + leftsep+ .code:n = \__tblr_data_gadd_dimen_value:nene { column } + { \int_use:N \c@colnum } { leftsep } { \dim_eval:n {#1} }, + rightsep+ .code:n = \__tblr_data_gadd_dimen_value:nene { column } + { \int_use:N \c@colnum } { rightsep } { \dim_eval:n {#1} }, colsep+ .meta:n = { leftsep+ = #1, rightsep+ = #1}, unknown .code:n = \__tblr_column_unknown_key:V \l_keys_key_str, } @@ -1395,7 +1722,23 @@ { \int_step_inline:nn { \c@rowcount } { - \__tblr_prop_gput:nxn {cell} { [##1][#1] / #2 } {#3} + \__tblr_data_gput:neenn { cell } {##1} {#1} {#2} {#3} + } + } + +\cs_new_protected:Npn \__tblr_preto_text_for_every_column_cell:n #1 + { + \int_step_inline:nn { \c@rowcount } + { + \__tblr_cell_preto_text:nen {##1} { \int_use:N \c@colnum } {#1} + } + } + +\cs_new_protected:Npn \__tblr_appto_text_for_every_column_cell:n #1 + { + \int_step_inline:nn { \c@rowcount } + { + \__tblr_cell_appto_text:nen {##1} { \int_use:N \c@colnum } {#1} } } @@ -1405,8 +1748,8 @@ { \regex_match:NnTF \c__tblr_is_number_key_regex {#1} { - \__tblr_prop_gput:nxx { column } - { [\int_use:N \c@colnum] / coefficient } {#1} + \__tblr_data_gput:nene { column } + { \int_use:N \c@colnum } { coefficient } {#1} } { \regex_match:NnTF \c__tblr_is_color_key_regex {#1} @@ -1416,8 +1759,8 @@ } { \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} - \__tblr_prop_gput:nxx { column } - { [\int_use:N \c@colnum] / width } { \dim_eval:n { \l__tblr_v_tl } } + \__tblr_data_gput:nene { column } + { \int_use:N \c@colnum } { width } { \dim_eval:n { \l__tblr_v_tl } } } } } @@ -1507,6 +1850,8 @@ { \int_use:N \c@rownum } { valign } {f}, bg .code:n = \__tblr_set_key_for_every_row_cell:nnn { \int_use:N \c@rownum } { background } {#1}, + fg .code:n = \__tblr_preto_text_for_every_row_cell:n { \color{#1} }, + font .code:n = \__tblr_preto_text_for_every_row_cell:n { #1 \selectfont }, ht .code:n = \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } { height } { \dim_eval:n {#1} }, co .code:n = \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } @@ -1531,7 +1876,23 @@ { \int_step_inline:nn { \c@colcount } { - \__tblr_prop_gput:nxn {cell} { [#1][##1] / #2 } {#3} + \__tblr_data_gput:neenn { cell } {#1} {##1} {#2} {#3} + } + } + +\cs_new_protected:Npn \__tblr_preto_text_for_every_row_cell:n #1 + { + \int_step_inline:nn { \c@colcount } + { + \__tblr_cell_preto_text:enn { \int_use:N \c@rownum } {##1} {#1} + } + } + +\cs_new_protected:Npn \__tblr_appto_text_for_every_row_cell:n #1 + { + \int_step_inline:nn { \c@colcount } + { + \__tblr_cell_appto_text:enn { \int_use:N \c@rownum } {##1} {#1} } } @@ -1614,26 +1975,16 @@ \exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ > } { O{} m } { - \tl_if_blank:nF { #1 } + \tl_if_blank:nF {#1} { - \__tblr_prop_gput:nxx + \__tblr_data_gput:nene { column } - { [\int_use:N \c@colnum] / leftsep} - { \dim_eval:n { #1 } } + { \int_use:N \c@colnum } { leftsep } + { \dim_eval:n {#1} } } - \tl_if_blank:nF { #2 } + \tl_if_blank:nF {#2} { - \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl - { - \tl_set:Nx \l_tmpa_tl - { - \__tblr_prop_item:ne {text} - { [\l__tblr_i_tl][\int_use:N \c@colnum] } - } - \tl_put_left:Nn \l_tmpa_tl { #2 } - \__tblr_prop_gput:nxV {text} - { [\l__tblr_i_tl][\int_use:N \c@colnum] } \l_tmpa_tl - } + \__tblr_preto_text_for_every_column_cell:n {#2} } \__tblr_execute_colrow_spec_next:N } @@ -1645,24 +1996,14 @@ \exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ > } { O{} m } { - \tl_if_blank:nF { #1 } + \tl_if_blank:nF {#1} { \__tblr_data_gput:nene { row } { \int_use:N \c@rownum } { abovesep } { \dim_eval:n { #1 } } } - \tl_if_blank:nF { #2 } + \tl_if_blank:nF {#2} { - \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl - { - \tl_set:Nx \l_tmpa_tl - { - \__tblr_prop_item:ne {text} - { [\int_use:N \c@rownum][\l__tblr_j_tl] } - } - \tl_put_left:Nn \l_tmpa_tl { #2 } - \__tblr_prop_gput:nxV {text} - { [\int_use:N \c@rownum][\l__tblr_j_tl] } \l_tmpa_tl - } + \__tblr_preto_text_for_every_row_cell:n {#2} } \__tblr_execute_colrow_spec_next:N } @@ -1674,26 +2015,17 @@ \exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ < } { O{} m } { - \tl_if_blank:nF { #1 } + \tl_if_blank:nF {#1} { - \__tblr_prop_gput:nxx - { column } - { [\int_eval:n {\c@colnum - 1}] / rightsep } - { \dim_eval:n { #1 } } + \__tblr_data_gput:nene { column } + { \int_eval:n {\c@colnum - 1} } { rightsep } { \dim_eval:n {#1} } } - \tl_if_blank:nF { #2 } + \tl_if_blank:nF {#2} { - \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl - { - \tl_set:Nx \l_tmpa_tl - { - \__tblr_prop_item:ne {text} - { [\l__tblr_i_tl][\int_eval:n {\c@colnum - 1}] } - } - \tl_put_right:Nn \l_tmpa_tl { #2 } - \__tblr_prop_gput:nxV {text} - { [\l__tblr_i_tl][\int_eval:n {\c@colnum - 1}] } \l_tmpa_tl - } + \group_begin: + \int_decr:N \c@colnum + \__tblr_appto_text_for_every_column_cell:n {#2} + \group_end: } \__tblr_execute_colrow_spec_next:N } @@ -1705,24 +2037,17 @@ \exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ < } { O{} m } { - \tl_if_blank:nF { #1 } + \tl_if_blank:nF {#1} { \__tblr_data_gput:nene { row } { \int_eval:n {\c@rownum - 1} } { belowsep } { \dim_eval:n {#1} } } - \tl_if_blank:nF { #2 } + \tl_if_blank:nF {#2} { - \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl - { - \tl_set:Nx \l_tmpa_tl - { - \__tblr_prop_item:ne {text} - { [\int_eval:n {\c@rownum - 1}][\l__tblr_j_tl] } - } - \tl_put_right:Nn \l_tmpa_tl { #2 } - \__tblr_prop_gput:nxV {text} - { [\int_eval:n {\c@rownum - 1}][\l__tblr_j_tl] } \l_tmpa_tl - } + \group_begin: + \int_decr:N \c@rownum + \__tblr_appto_text_for_every_row_cell:n {#2} + \group_end: } \__tblr_execute_colrow_spec_next:N } @@ -1902,6 +2227,7 @@ \mode_leave_vertical: \int_gincr:N \g_tblr_level_int \__tblr_clear_prop_lists: + \__tblr_clear_text_lists: \__tblr_enable_table_commands: \__tblr_split_table:n { #3 } \LogTblrTracing { command } @@ -1916,18 +2242,6 @@ \int_gdecr:N \g_tblr_level_int } -\cs_new_protected:Npn \__tblr_clear_prop_lists: - { - \prop_gclear_new:c { g_tblr_text_ \int_use:N \g_tblr_level_int _prop } - \prop_gclear_new:c { g_tblr_command_ \int_use:N \g_tblr_level_int _prop } - \prop_gclear_new:c { g_tblr_table_ \int_use:N \g_tblr_level_int _prop } - \prop_gclear_new:c { g_tblr_row_ \int_use:N \g_tblr_level_int _prop } - \prop_gclear_new:c { g_tblr_column_ \int_use:N \g_tblr_level_int _prop } - \prop_gclear_new:c { g_tblr_cell_ \int_use:N \g_tblr_level_int _prop } - \prop_gclear_new:c { g_tblr_hline_ \int_use:N \g_tblr_level_int _prop } - \prop_gclear_new:c { g_tblr_vline_ \int_use:N \g_tblr_level_int _prop } - } - %% Insert and remove braces for nesting environments inside cells %% These make line split and cell split workable %% We need to replace N times for N level nestings @@ -2034,7 +2348,7 @@ \__tblr_remove_braces:N \l_tmpa_tl \int_incr:N \c@colnum \__tblr_extract_table_commands:N \l_tmpa_tl - \__tblr_prop_gput:nxV {text} { [#1][\int_use:N \c@colnum] } \l_tmpa_tl + \__tblr_text_gput:neV { text } { [#1][\int_use:N \c@colnum] } \l_tmpa_tl \__tblr_add_multicolumn_empty_cell: } %% Decrease row count by 1 if the last row has only one empty cell text @@ -2059,7 +2373,7 @@ \int_step_inline:nn { \l__multicolumn_cell_number_int - 1 } { \int_incr:N \c@colnum - \__tblr_prop_gput:nxn {text} + \__tblr_text_gput:nen { text } { [\int_use:N \c@rownum][\int_use:N \c@colnum] } { } } } @@ -2175,6 +2489,7 @@ \prop_gset_from_keyval:Nn \g__tblr_default_tblr_table_prop { stretch = 1, + rulesep = 2pt, } \prop_gset_from_keyval:Nn \g__tblr_default_tblr_rows_prop @@ -2192,6 +2507,8 @@ { leftsep = 6pt, rightsep = 6pt, + width = -1pt, % column width unset + coefficient = 0, % column coefficient unset @col-width = 0pt, } @@ -2199,16 +2516,20 @@ { halign = l, valign = t, + width = -1pt, % cell width unset + rowspan = 1, + colspan = 1, + omit = 0, } \prop_gset_from_keyval:Nn \g__tblr_default_tblr_hlines_prop { - rulesep = 2pt, + @hline-count = 0, } \prop_gset_from_keyval:Nn \g__tblr_default_tblr_vlines_prop { - rulesep = 2pt, + @vline-count = 0, } \cs_new_protected:Npn \__tblr_initial_table_spec: @@ -2225,37 +2546,37 @@ } \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _hlines_prop } { - \__tblr_prop_gput:nxn { hline } { [\l__tblr_i_tl] / ##1 } {##2} + \__tblr_text_gput:nen { hline } { [\l__tblr_i_tl] / ##1 } {##2} } \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl { \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _cells_prop } { - \__tblr_prop_gput:nxn { cell } - { [\l__tblr_i_tl][\l__tblr_j_tl] / ##1 } {##2} + \__tblr_data_gput:neeen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } {##1} {##2} } } } \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _hlines_prop } { - \__tblr_prop_gput:nxn { hline } + \__tblr_text_gput:nen { hline } { [\int_eval:n { \c@rowcount + 1}] / ##1 } {##2} } \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl { \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _columns_prop } { - \__tblr_prop_gput:nxn { column } { [\l__tblr_j_tl] / ##1 } {##2} + \__tblr_data_gput:nenn { column } { \l__tblr_j_tl } {##1} {##2} } \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _vlines_prop } { - \__tblr_prop_gput:nxn { vline } { [\l__tblr_j_tl] / ##1 } {##2} + \__tblr_text_gput:nen { vline } { [\l__tblr_j_tl] / ##1 } {##2} } } \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _vlines_prop } { - \__tblr_prop_gput:nxn { vline } + \__tblr_text_gput:nen { vline } { [\int_eval:n { \c@colcount + 1}] / ##1 } {##2} } \keys_set:nv { tblr } { l__tblr_default_ \l__tblr_env_name_tl _tl } @@ -2279,7 +2600,7 @@ { long, colspec, rowspec, width, hspan, stretch, column, row, cell, vline, hline, columns, rows, cells, vlines, hlines, - leftsep, rightsep, colsep, abovesep, belowsep, rowsep, + leftsep, rightsep, colsep, abovesep, belowsep, rowsep, rulesep, } \bool_new:N \l__tblr_long_table_bool @@ -2303,6 +2624,7 @@ abovesep .code:n = \tblr_set_every_row:nn { } { abovesep = #1 }, belowsep .code:n = \tblr_set_every_row:nn { } { belowsep = #1 }, rowsep .meta:n = { abovesep = #1, belowsep = #1 }, + rulesep .code:n = \__tblr_keys_gput:nn { rulesep } {#1}, unknown .code:n = \__tblr_table_special_key:Vn \l_keys_key_str {#1}, } @@ -2403,11 +2725,11 @@ { \dim_zero:N \l__tblr_w_dim \tl_set:Nx \l__tblr_n_tl - { \__tblr_prop_item:ne { vline } { [#2] / @vline-count } } - \tl_if_empty:NF \l__tblr_n_tl + { \__tblr_text_item:ne { vline } { [#2] / @vline-count } } + \int_compare:nNnT { \l__tblr_n_tl } > {0} { \tl_set:Nx \l__tblr_s_tl - { \__tblr_prop_item:ne { vline } { [#2] / rulesep } } + { \__tblr_prop_item:ne { table } { rulesep } } \int_step_inline:nn { \l__tblr_n_tl } { \vbox_set_to_ht:Nnn \l__tblr_b_box {1pt} @@ -2416,14 +2738,14 @@ {#1} {#2} {##1} {1pt} {1pt} } \tl_set:Nx \l__tblr_w_tl { \dim_eval:n { \box_wd:N \l__tblr_b_box } } - \__tblr_prop_gput_if_larger:nxx { vline } + \__tblr_text_gput_if_larger:nee { vline } { [#2](##1) / @vline-width } { \l__tblr_w_tl } \dim_add:Nn \l__tblr_w_dim { \l__tblr_w_tl } \dim_add:Nn \l__tblr_w_dim { \l__tblr_s_tl } } \dim_add:Nn \l__tblr_w_dim { - \l__tblr_s_tl } } - \__tblr_prop_gput_if_larger:nxx { vline } + \__tblr_text_gput_if_larger:nee { vline } { [#2]/ @vline-width } { \dim_use:N \l__tblr_w_dim } } @@ -2434,10 +2756,10 @@ { \group_begin: \tl_set:Nx \l__tblr_w_tl - { \__tblr_prop_item:ne { vline } { [#1][#2](#3) / wd } } + { \__tblr_text_item:ne { vline } { [#1][#2](#3) / wd } } \tl_if_empty:NF \l__tblr_w_tl { \dim_set:Nn \rulewidth { \l__tblr_w_tl } } \tl_set:Nx \l__tblr_d_tl - { \__tblr_prop_item:ne { vline } { [#1][#2](#3) / @dash } } + { \__tblr_text_item:ne { vline } { [#1][#2](#3) / @dash } } \tl_set:Nx \l__tblr_a_tl { \tl_head:N \l__tblr_d_tl } \tl_set:Nx \l__tblr_b_tl { \tl_tail:N \l__tblr_d_tl } \exp_args:NV \tl_if_eq:NNTF \l__tblr_a_tl \@tblr@dash @@ -2461,11 +2783,11 @@ { \dim_zero:N \l__tblr_h_dim \tl_set:Nx \l__tblr_n_tl - { \__tblr_prop_item:ne { hline } { [#1] / @hline-count } } - \tl_if_empty:NF \l__tblr_n_tl + { \__tblr_text_item:ne { hline } { [#1] / @hline-count } } + \int_compare:nNnT { \l__tblr_n_tl } > {0} { \tl_set:Nx \l__tblr_s_tl - { \__tblr_prop_item:ne { hline } { [#1] / rulesep } } + { \__tblr_prop_item:ne { table } { rulesep } } \int_step_inline:nn { \l__tblr_n_tl } { \hbox_set_to_wd:Nnn \l__tblr_b_box {1pt} @@ -2475,14 +2797,14 @@ \dim_eval:n { \box_ht:N \l__tblr_b_box + \box_dp:N \l__tblr_b_box } } - \__tblr_prop_gput_if_larger:nxx { hline } + \__tblr_text_gput_if_larger:nee { hline } { [#1](##1) / @hline-height } { \l__tblr_h_tl } \dim_add:Nn \l__tblr_h_dim { \l__tblr_h_tl } \dim_add:Nn \l__tblr_h_dim { \l__tblr_s_tl } } \dim_add:Nn \l__tblr_h_dim { - \l__tblr_s_tl } } - \__tblr_prop_gput_if_larger:nxx { hline } + \__tblr_text_gput_if_larger:nee { hline } { [#1] / @hline-height } { \dim_use:N \l__tblr_h_dim } } @@ -2492,10 +2814,10 @@ { \group_begin: \tl_set:Nx \l__tblr_w_tl - { \__tblr_prop_item:ne { hline } { [#1][#2](#3) / wd } } + { \__tblr_text_item:ne { hline } { [#1][#2](#3) / wd } } \tl_if_empty:NF \l__tblr_w_tl { \dim_set:Nn \rulewidth { \l__tblr_w_tl } } \tl_set:Nx \l__tblr_d_tl - { \__tblr_prop_item:ne { hline } { [#1][#2](#3) / @dash } } + { \__tblr_text_item:ne { hline } { [#1][#2](#3) / @dash } } \tl_set:Nx \l__tblr_a_tl { \tl_head:N \l__tblr_d_tl } \tl_set:Nx \l__tblr_b_tl { \tl_tail:N \l__tblr_d_tl } \exp_args:NV \tl_if_eq:NNTF \l__tblr_a_tl \@tblr@dash @@ -2527,9 +2849,9 @@ { \group_begin: \tl_gset:Nx \g__tblr_cell_halign_tl - { \__tblr_prop_item:ne { cell } { [#1][#2] / halign } } + { \__tblr_data_item:neen { cell } {#1} {#2} { halign } } \tl_set:Nx \l__tblr_v_tl - { \__tblr_prop_item:ne { cell } { [#1][#2] / valign } } + { \__tblr_data_item:neen { cell } {#1} {#2} { valign } } \tl_case:NnF \l__tblr_v_tl { \c__tblr_valign_t_tl @@ -2607,7 +2929,7 @@ %% #1: row number, #2: column number \cs_new_protected:Npn \__tblr_get_cell_text:nn #1 #2 { - \__tblr_prop_if_in:nxTF {cell} { [#1][#2] / omit } + \int_compare:nNnTF { \__tblr_data_item:neen { cell } {#1} {#2} { omit } } > {0} { \dim_gzero:N \g__tblr_cell_wd_dim \dim_gzero:N \g__tblr_cell_ht_dim @@ -2623,18 +2945,19 @@ \cs_new_protected:Npn \__tblr_get_cell_text_real:nn #1 #2 { \group_begin: - \tl_set:Nx \l__tblr_c_tl { \__tblr_prop_item:ne {text} {[#1][#2]} } + \tl_set:Nx \l__tblr_c_tl { \__tblr_text_item:ne { text } {[#1][#2]} } \tl_set:Nx \l__tblr_w_tl - { \__tblr_prop_item:ne { cell } { [#1][#2] / width } } - \tl_if_empty:NT \l__tblr_w_tl + { \__tblr_data_item:neen { cell } {#1} {#2} { width } } + \dim_compare:nNnT { \l__tblr_w_tl } < { 0pt } % cell width unset { - \__tblr_prop_if_in:nxF { cell } { [#1][#2] / colspan } + \int_compare:nNnT + { \__tblr_data_item:neen { cell } {#1} {#2} { colspan } } < {2} { \tl_set:Nx \l__tblr_w_tl - { \__tblr_prop_item:ne { column } { [#2] / width } } + { \__tblr_data_item:nen { column } {#2} { width } } } } - \tl_if_empty:NT \l__tblr_w_tl + \dim_compare:nNnT { \l__tblr_w_tl } < { 0pt } % column width unset { \bool_if:NTF \l__tblr_math_mode_bool { @@ -2757,15 +3080,15 @@ { \group_begin: \tl_set:Nx \l__tblr_c_tl - { \__tblr_prop_item:ne {cell} { [#1][#2] / colspan } } - \tl_if_empty:NF \l__tblr_c_tl + { \__tblr_data_item:neen { cell } {#1} {#2} { colspan } } + \int_compare:nNnT { \l__tblr_c_tl } > {1} { - \__tblr_prop_gput:nxx {cell} { [#1][#2] / @cell-width } { \dim_use:N #3 } + \__tblr_data_gput:neene { cell } {#1} {#2} { @cell-width } {\dim_use:N #3} \dim_gzero:N #3 % don't affect column width } \tl_set:Nx \l__tblr_r_tl - { \__tblr_prop_item:ne {cell} { [#1][#2] / rowspan } } - \tl_if_empty:NF \l__tblr_r_tl + { \__tblr_data_item:neen { cell } {#1} {#2} { rowspan } } + \int_compare:nNnT { \l__tblr_r_tl } > {1} { \tl_case:Nn \g__tblr_cell_valign_tl { @@ -2794,8 +3117,8 @@ #4 #5 #6 \l__tblr_u_tl \l__tblr_v_tl } } - \__tblr_prop_gput:nxV {cell} { [#1][#2] / @cell-height } \l__tblr_u_tl - \__tblr_prop_gput:nxV {cell} { [#1][#2] / @cell-depth } \l__tblr_v_tl + \__tblr_data_gput:neenV { cell } {#1} {#2} { @cell-height } \l__tblr_u_tl + \__tblr_data_gput:neenV { cell } {#1} {#2} { @cell-depth } \l__tblr_v_tl %% Don't affect row sizes \dim_gzero:N #4 \dim_gzero:N #5 @@ -2876,12 +3199,12 @@ \cs_new_protected:Npn \__tblr_update_col_size:nN #1 #2 { \tl_set:Nx \l_tmpb_tl - { \__tblr_prop_item:ne {column} { [#1] / @col-width } } + { \__tblr_data_item:nen { column } {#1} { @col-width } } \bool_lazy_or:nnT { \tl_if_empty_p:N \l_tmpb_tl } { \dim_compare_p:nNn { \dim_use:N #2 } > { \l_tmpb_tl } } { - \__tblr_prop_gput:nxx {column} { [#1] / @col-width } { \dim_use:N #2 } + \__tblr_data_gput:nene { column } {#1} { @col-width } { \dim_use:N #2 } } } @@ -2925,14 +3248,14 @@ \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl { \tl_set:Nx \l__tblr_a_tl - { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / width } } + { \__tblr_data_item:nen { column } { \l__tblr_j_tl } { width } } \tl_set:Nx \l__tblr_b_tl - { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / coefficient } } + { \__tblr_data_item:nen { column } { \l__tblr_j_tl } { coefficient } } \tl_set:Nx \l__tblr_c_tl - { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / @col-width } } - \tl_if_empty:NTF \l__tblr_a_tl + { \__tblr_data_item:nen { column } { \l__tblr_j_tl } { @col-width } } + \dim_compare:nNnTF { \l__tblr_a_tl } < { 0pt } % column width unset { - \tl_if_empty:NTF \l__tblr_b_tl + \dim_compare:nNnTF { \l__tblr_b_tl pt } = { 0pt } { \dim_sub:Nn \l__column_target_dim { \l__tblr_c_tl } } { \prop_put:Nxx \l__column_coefficient_prop @@ -2948,17 +3271,17 @@ } { \dim_sub:Nn \l__column_target_dim { \l__tblr_a_tl } } \tl_set:Nx \l__tblr_a_tl - { \__tblr_prop_item:ne {vline} { [\l__tblr_j_tl] / @vline-width } } + { \__tblr_text_item:ne { vline } { [\l__tblr_j_tl] / @vline-width } } \tl_set:Nx \l__tblr_b_tl - { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / leftsep} } + { \__tblr_data_item:nen { column } { \l__tblr_j_tl } { leftsep } } \tl_set:Nx \l__tblr_c_tl - { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / rightsep } } + { \__tblr_data_item:nen { column } { \l__tblr_j_tl } { rightsep } } \dim_set:Nn \l__column_target_dim { \l__column_target_dim - \l__tblr_a_tl - \l__tblr_b_tl - \l__tblr_c_tl } } \tl_set:Nx \l__tblr_a_tl { - \__tblr_prop_item:ne {vline} + \__tblr_text_item:ne { vline } { [\int_eval:n {\c@colcount + 1}] / @vline-width } } \tl_if_empty:NF \l__tblr_a_tl @@ -2979,8 +3302,8 @@ } \prop_map_inline:Nn \l__column_computed_width_prop { - \__tblr_prop_gput:nnx {column} { [##1] / width } { ##2 } - \__tblr_prop_gput:nnn {column} { [##1] / @col-width } { 0pt } + \__tblr_data_gput:nnne { column } {##1} { width } {##2} + \__tblr_data_gput:nnnn { column } {##1} { @col-width } { 0pt } } \__tblr_calculate_cell_sizes: } @@ -3067,7 +3390,7 @@ \__tblr_collect_span_widths: \__tblr_set_column_widths_from_span_widths: } - \LogTblrTracing {column} + \LogTblrTracing { column } \__tblr_calculate_cell_sizes: } \__tblr_prop_if_in:nnT {table} {rowspan} @@ -3095,14 +3418,13 @@ { \dim_eval:n { - \__tblr_prop_item:ne {column} - { [\int_eval:n { \l__tblr_j_tl - 1 }] / rightsep } + \__tblr_data_item:nen { column } + { \int_eval:n { \l__tblr_j_tl - 1 } } { rightsep } + - \__tblr_prop_item:ne {vline} + \__tblr_text_item:ne { vline } { [\l__tblr_j_tl] / @vline-width } + - \__tblr_prop_item:ne {column} - { [\l__tblr_j_tl] / leftsep} + \__tblr_data_item:nen { column } { \l__tblr_j_tl } { leftsep } } } } @@ -3111,7 +3433,7 @@ { 0pt } } \prop_put:Nxx \l__tblr_col_item_skip_size_prop { item[\l__tblr_j_tl] } - { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / @col-width } } + { \__tblr_data_item:nen { column } { \l__tblr_j_tl } { @col-width } } } \__tblr_do_if_tracing:nn { cellspan } { \prop_log:N \l__tblr_col_item_skip_size_prop } @@ -3131,7 +3453,7 @@ \__tblr_data_item:nen { row } { \int_eval:n {\l__tblr_i_tl - 1} } { belowsep } + - \__tblr_prop_item:ne {hline} + \__tblr_text_item:ne { hline } { [\l__tblr_i_tl] / @hline-height } + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { abovesep } @@ -3165,10 +3487,10 @@ { \tl_set:Nx \l__tblr_a_tl { - \__tblr_prop_item:ne {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / colspan } + \__tblr_data_item:neen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { colspan } } - \tl_if_empty:NF \l__tblr_a_tl + \int_compare:nNnT { \l__tblr_a_tl } > {1} { \__tblr_put_if_larger:Nxx \l__tblr_col_span_size_prop { @@ -3176,8 +3498,8 @@ \int_eval:n {\l__tblr_j_tl + \l__tblr_a_tl - 1} ) } { - \__tblr_prop_item:ne {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-width } + \__tblr_data_item:neen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { @cell-width } } } } @@ -3198,15 +3520,15 @@ { \tl_set:Nx \l__tblr_a_tl { - \__tblr_prop_item:ne {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / rowspan } + \__tblr_data_item:neen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { rowspan } } - \tl_if_empty:NF \l__tblr_a_tl + \int_compare:nNnT { \l__tblr_a_tl } > {1} { \tl_set:Nx \l__tblr_v_tl { - \__tblr_prop_item:ne {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / valign } + \__tblr_data_item:neen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { valign } } \tl_if_eq:NnT \l__tblr_v_tl { h } { @@ -3215,8 +3537,8 @@ \__tblr_data_item:nen { row } { \l__tblr_i_tl } { @row-head } } - \__tblr_prop_gput:nxV {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-height } + \__tblr_data_gput:neenV { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { @cell-height } \l__tblr_h_tl } \tl_if_eq:NnT \l__tblr_v_tl { f } @@ -3228,8 +3550,8 @@ { \int_eval:n { \l__tblr_i_tl + \l__tblr_a_tl - 1 } } { @row-foot } } - \__tblr_prop_gput:nxV {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-depth } + \__tblr_data_gput:neenV { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { @cell-depth } \l__tblr_d_tl } \__tblr_put_if_larger:Nxx \l__tblr_row_span_size_prop @@ -3240,11 +3562,11 @@ { \dim_eval:n { - \__tblr_prop_item:ne {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-height } + \__tblr_data_item:neen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { @cell-height } + - \__tblr_prop_item:ne {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-depth } + \__tblr_data_item:neen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { @cell-depth } } } \prop_put:Nxx \l__tblr_row_span_to_row_prop @@ -3340,8 +3662,8 @@ { \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl { - \__tblr_prop_gput:nxx {column} - { [\l__tblr_j_tl] / @col-width } + \__tblr_data_gput:nene { column } + { \l__tblr_j_tl } { @col-width } { \prop_item:Ne \l__tblr_col_item_skip_size_prop { item[\l__tblr_j_tl] } } } } @@ -3383,17 +3705,17 @@ { \tl_set:Nx \l__tblr_a_tl { - \__tblr_prop_item:ne {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / colspan } + \__tblr_data_item:neen { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { colspan } } - \tl_if_empty:NF \l__tblr_a_tl + \int_compare:nNnT { \l__tblr_a_tl } > {1} { \__tblr_calc_span_widths:xxN { \l__tblr_j_tl } { \int_eval:n { \l__tblr_j_tl + \l__tblr_a_tl - 1 } } \l__tblr_w_dim - \__tblr_prop_gput:nxx {cell} - { [\l__tblr_i_tl][\l__tblr_j_tl] / width } + \__tblr_data_gput:neene { cell } + { \l__tblr_i_tl } { \l__tblr_j_tl } { width } { \dim_use:N \l__tblr_w_dim } } } @@ -3448,7 +3770,7 @@ { \dim_set:Nn \l_tmpa_dim { - \__tblr_prop_item:ne { hline } { [\l__tblr_i_tl] / @hline-height } + \__tblr_text_item:ne { hline } { [\l__tblr_i_tl] / @hline-height } + \__tblr_data_item:nen { row } { \l__tblr_i_tl } { abovesep } + @@ -3546,7 +3868,7 @@ \cs_new_protected:Npn \__tblr_valign_whole_top:N #1 { \tl_set:Nx \l__tblr_a_tl - { \__tblr_prop_item:ne { hline } { [1] / @hline-height } } + { \__tblr_text_item:ne { hline } { [1] / @hline-height } } %% Note that \l__tblr_b_tl may be empty \tl_set:Nx \l__tblr_b_tl { \__tblr_prop_item:ne { table } { baseline } } @@ -3580,7 +3902,7 @@ { \tl_set:Nx \l__tblr_a_tl { - \__tblr_prop_item:ne { hline } + \__tblr_text_item:ne { hline } { [\int_eval:n {\c@rowcount + 1}] / @hline-height } } %% Note that \l__tblr_b_tl may be empty @@ -3630,14 +3952,14 @@ \cs_new_protected:Npn \__tblr_build_hline_segment:nn #1 #2 { \tl_set:Nx \l__tblr_n_tl - { \__tblr_prop_item:ne { hline } { [#1] / @hline-count } } + { \__tblr_text_item:ne { hline } { [#1] / @hline-count } } \tl_set:Nx \l__tblr_o_tl - { \__tblr_prop_item:ne { hline } { [#1][#2] / omit } } + { \__tblr_text_item:ne { hline } { [#1][#2] / omit } } \__tblr_get_col_outer_width_border_width:nNN {#2} \l__tblr_col_o_wd_dim \l__tblr_col_b_wd_dim \tl_if_empty:NTF \l__tblr_o_tl { - \tl_if_empty:NF \l__tblr_n_tl + \int_compare:nNnT { \l__tblr_n_tl } > {0} { \__tblr_build_hline_segment_real:nn {#1} {#2} } } { \__tblr_build_hline_segment_omit:nn {#1} {#2} } @@ -3653,7 +3975,7 @@ \cs_new_protected:Npn \__tblr_build_hline_segment_real:nn #1 #2 { \tl_set:Nx \l__tblr_s_tl - { \__tblr_prop_item:ne { hline } { [#1] / rulesep } } + { \__tblr_prop_item:ne { table } { rulesep } } \vbox_set:Nn \l__tblr_c_box { %% add an empty hbox to support vbox width @@ -3661,12 +3983,12 @@ \int_step_inline:nn { \l__tblr_n_tl } { \tl_set:Nx \l__tblr_h_tl - { \__tblr_prop_item:ne { hline } { [#1](##1) / @hline-height } } + { \__tblr_text_item:ne { hline } { [#1](##1) / @hline-height } } \hrule height ~ 0pt % remove lineskip \hbox_set_to_wd:Nnn \l__tblr_b_box { \l__tblr_col_o_wd_dim } { \tl_set:Nx \l__tblr_f_tl - { \__tblr_prop_item:ne { hline } { [#1][#2](##1) / fg } } + { \__tblr_text_item:ne { hline } { [#1][#2](##1) / fg } } \tl_if_empty:NF \l__tblr_f_tl { \color{\l__tblr_f_tl} } \__tblr_get_hline_segment_child:nnn {#1} {#2} {##1} } @@ -3687,16 +4009,16 @@ \cs_new_protected:Npn \__tblr_get_col_outer_width_border_width:nNN #1 #2 #3 { \dim_set:Nn #3 - { \__tblr_prop_item:ne {vline} { [\int_eval:n {#1 + 1}] / @vline-width } } + { \__tblr_text_item:ne { vline } { [\int_eval:n {#1 + 1}] / @vline-width } } \dim_set:Nn #2 { - \__tblr_prop_item:ne {vline} { [#1] / @vline-width } + \__tblr_text_item:ne { vline } { [#1] / @vline-width } + - \__tblr_prop_item:ne {column} { [#1] / leftsep } + \__tblr_data_item:nen { column } {#1} { leftsep } + - \__tblr_prop_item:ne {column} { [#1] / @col-width } + \__tblr_data_item:nen { column } {#1} { @col-width } + - \__tblr_prop_item:ne {column} { [#1] / rightsep } + \__tblr_data_item:nen { column } {#1} { rightsep } + #3 } @@ -3756,12 +4078,12 @@ \cs_new_protected:Npn \__tblr_build_vline_segment:nn #1 #2 { \tl_set:Nx \l__tblr_n_tl - { \__tblr_prop_item:ne { vline } { [#2] / @vline-count } } + { \__tblr_text_item:ne { vline } { [#2] / @vline-count } } \tl_set:Nx \l__tblr_o_tl - { \__tblr_prop_item:ne { vline } { [#1][#2] / omit } } + { \__tblr_text_item:ne { vline } { [#1][#2] / omit } } \tl_if_empty:NTF \l__tblr_o_tl { - \tl_if_empty:NF \l__tblr_n_tl + \int_compare:nNnT { \l__tblr_n_tl } > {0} { \__tblr_build_vline_segment_real:nn {#1} {#2} } } { \__tblr_build_vline_segment_omit:nn {#1} {#2} } @@ -3771,7 +4093,7 @@ \cs_new_protected:Npn \__tblr_build_vline_segment_omit:nn #1 #2 { \tl_set:Nx \l__tblr_w_tl - { \__tblr_prop_item:ne { vline } { [#2] / @vline-width } } + { \__tblr_text_item:ne { vline } { [#2] / @vline-width } } \skip_horizontal:N \l__tblr_w_tl } @@ -3781,10 +4103,10 @@ \cs_new_protected:Npn \__tblr_build_vline_segment_real:nn #1 #2 { \tl_set:Nx \l__tblr_s_tl - { \__tblr_prop_item:ne { vline } { [#2] / rulesep } } + { \__tblr_prop_item:ne { table } { rulesep } } \tl_set:Nx \l__tblr_b_tl { - \__tblr_prop_item:ne { hline } + \__tblr_text_item:ne { hline } { [\int_eval:n{#1 + 1}](1) / @hline-height } } \tl_if_empty:NT \l__tblr_b_tl { \tl_set:Nn \l__tblr_b_tl { 0pt } } @@ -3793,12 +4115,12 @@ \int_step_inline:nn { \l__tblr_n_tl } { \tl_set:Nx \l__tblr_w_tl - { \__tblr_prop_item:ne { vline } { [#2](##1) / @vline-width } } + { \__tblr_text_item:ne { vline } { [#2](##1) / @vline-width } } \vbox_set_to_ht:Nnn \l__tblr_b_box { \dim_eval:n { \l__tblr_row_ht_dim + \l__tblr_row_dp_dim } } { \tl_set:Nx \l__tblr_f_tl - { \__tblr_prop_item:ne { vline } { [#1][#2](##1) / fg } } + { \__tblr_text_item:ne { vline } { [#1][#2](##1) / fg } } \tl_if_empty:NF \l__tblr_f_tl { \color{\l__tblr_f_tl} } \__tblr_get_vline_segment_child:nnnxx {#1} {#2} {##1} { \dim_eval:n { \l__tblr_row_ht_dim } } @@ -3828,24 +4150,24 @@ \int_set:Nn \c@colnum {#2} \group_begin: \tl_set:Nx \l__tblr_w_tl - { \__tblr_prop_item:ne { column } { [#2] / @col-width } } + { \__tblr_data_item:nen { column } {#2} { @col-width } } \tl_set:Nx \l__tblr_h_tl { \__tblr_data_item:nen { row } {#1} { @row-height } } \tl_set:Nx \l__tblr_x_tl - { \__tblr_prop_item:ne { column } { [#2] / leftsep} } + { \__tblr_data_item:nen { column } {#2} { leftsep} } \tl_set:Nx \l__tblr_y_tl - { \__tblr_prop_item:ne { column } { [#2] / rightsep } } + { \__tblr_data_item:nen { column } {#2} { rightsep } } \tl_set:Nx \l__tblr_cell_colspan_tl - { \__tblr_prop_item:ne { cell } { [#1][#2] / colspan } } - \tl_if_empty:NTF \l__tblr_cell_colspan_tl + { \__tblr_data_item:neen { cell } {#1} {#2} { colspan } } + \int_compare:nNnTF { \l__tblr_cell_colspan_tl } < {2} { \dim_set:Nn \l__tblr_cell_wd_dim { \l__tblr_w_tl } } { \__tblr_get_span_horizontal_sizes:NNNNN #1 #2 \l__tblr_o_dim \l__tblr_cell_wd_dim \l__tblr_q_dim } \tl_set:Nx \l__tblr_cell_rowspan_tl - { \__tblr_prop_item:ne { cell } { [#1][#2] / rowspan } } - \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + { \__tblr_data_item:neen { cell } {#1} {#2} { rowspan } } + \int_compare:nNnTF { \l__tblr_cell_rowspan_tl } < {2} { \dim_set:Nn \l__tblr_cell_ht_dim { \l__tblr_h_tl } } { \__tblr_get_span_vertical_sizes:NNNNN #1 #2 @@ -3872,7 +4194,7 @@ \c__tblr_valign_m_tl { \vfil - \tl_if_empty:NT \l__tblr_cell_rowspan_tl + \int_compare:nNnT { \l__tblr_cell_rowspan_tl } < {2} { \box_set_ht:Nn \l__tblr_a_box { \__tblr_data_item:nen { row } {#1} { @row-upper } } @@ -3892,7 +4214,7 @@ \c__tblr_valign_f_tl { \vfil - \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + \int_compare:nNnTF { \l__tblr_cell_rowspan_tl } < {2} { \box_set_dp:Nn \l__tblr_a_box { \__tblr_data_item:nen { row } {#1} { @row-foot } } @@ -3924,11 +4246,11 @@ \cs_new_protected:Npn \__tblr_build_cell_background:NN #1 #2 { - \__tblr_prop_if_in:nxF {cell} { [#1][#2] / omit } + \int_compare:nNnT { \__tblr_data_item:neen { cell } {#1} {#2} { omit } } = {0} { \group_begin: \tl_set:Nx \l__tblr_b_tl - { \__tblr_prop_item:ne { cell } { [#1][#2] / background } } + { \__tblr_data_item:neen { cell } {#1} {#2} { background } } \tl_if_empty:NF \l__tblr_b_tl { \__tblr_get_cell_background_width:NNN #1 #2 \l_tmpa_dim @@ -3946,7 +4268,7 @@ %% #1: row number; #2: column number; #3 resulting dimension \cs_new_protected:Npn \__tblr_get_cell_background_width:NNN #1 #2 #3 { - \tl_if_empty:NTF \l__tblr_cell_colspan_tl + \int_compare:nNnTF { \l__tblr_cell_colspan_tl } < {2} { \dim_set:Nn #3 { \l__tblr_x_tl + \l__tblr_w_tl + \l__tblr_y_tl } } { \dim_set:Nn #3 { \l__tblr_o_dim + \l__tblr_cell_wd_dim + \l__tblr_q_dim } @@ -3956,7 +4278,7 @@ %% #1: row number; #2: column number; #3 resulting dimension \cs_new_protected:Npn \__tblr_get_cell_background_depth:NNN #1 #2 #3 { - \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + \int_compare:nNnTF { \l__tblr_cell_rowspan_tl } < {2} { \dim_set_eq:NN #3 \l__tblr_row_dp_dim } { \dim_set:Nn #3 @@ -4014,7 +4336,7 @@ \cs_new_protected:Npn \__tblr_get_span_horizontal_sizes:NNNNN #1 #2 #3 #4 #5 { \dim_set:Nn #3 - { \__tblr_prop_item:ne { column } { [#2] / leftsep} } + { \__tblr_data_item:nen { column } {#2} { leftsep } } \dim_zero:N #4 \int_step_inline:nnn { #2 } { #2 + \l__tblr_cell_colspan_tl - 2 } { @@ -4033,8 +4355,8 @@ } \dim_set:Nn #5 { - \__tblr_prop_item:ne { column } - { [\int_eval:n {#2 + \l__tblr_cell_colspan_tl - 1}] / rightsep } + \__tblr_data_item:nen { column } + { \int_eval:n {#2 + \l__tblr_cell_colspan_tl - 1} } { rightsep } } %\tl_log:x { cell[#1][#2] ~:~ \dim_use:N #3, \dim_use:N #4, \dim_use:N #5 } } @@ -4061,6 +4383,7 @@ \bool_new:N \g__tblr_tracing_rowspec_bool \bool_new:N \g__tblr_tracing_target_bool \bool_new:N \g__tblr_tracing_cellspan_bool +\bool_new:N \g__tblr_tracing_intarray_bool \keys_define:nn { tblr-set-tracing } { @@ -4088,6 +4411,8 @@ -target .code:n = \bool_gset_false:N \g__tblr_tracing_target_bool, +cellspan .code:n = \bool_gset_true:N \g__tblr_tracing_cellspan_bool, -cellspan .code:n = \bool_gset_false:N \g__tblr_tracing_cellspan_bool, + +intarray .code:n = \bool_gset_true:N \g__tblr_tracing_intarray_bool, + -intarray .code:n = \bool_gset_false:N \g__tblr_tracing_intarray_bool, all .code:n = \__tblr_enable_all_tracings:, none .code:n = \__tblr_disable_all_tracings:, } @@ -4106,6 +4431,7 @@ \bool_gset_true:N \g__tblr_tracing_rowspec_bool \bool_gset_true:N \g__tblr_tracing_target_bool \bool_gset_true:N \g__tblr_tracing_cellspan_bool + \bool_gset_true:N \g__tblr_tracing_intarray_bool } \cs_new_protected_nopar:Npn \__tblr_disable_all_tracings: @@ -4122,6 +4448,7 @@ \bool_gset_false:N \g__tblr_tracing_rowspec_bool \bool_gset_false:N \g__tblr_tracing_target_bool \bool_gset_false:N \g__tblr_tracing_cellspan_bool + \bool_gset_false:N \g__tblr_tracing_intarray_bool } \NewDocumentCommand \LogTabularrayTracing { m } @@ -4143,7 +4470,7 @@ \cs_new_protected:Npn \__tblr_log_tracing_text: { - \__tblr_prop_log:n { text } + \__tblr_text_log:n { text } } \cs_new_protected:Npn \__tblr_log_tracing_command: @@ -4158,7 +4485,7 @@ \cs_new_protected:Npn \__tblr_log_tracing_column: { - \__tblr_prop_log:n { column } + \__tblr_data_log:n { column } } \cs_new_protected:Npn \__tblr_log_tracing_row: @@ -4168,17 +4495,17 @@ \cs_new_protected:Npn \__tblr_log_tracing_cell: { - \__tblr_prop_log:n { cell } + \__tblr_data_log:n { cell } } \cs_new_protected:Npn \__tblr_log_tracing_vline: { - \__tblr_prop_log:n { vline } + \__tblr_text_log:n { vline } } \cs_new_protected:Npn \__tblr_log_tracing_hline: { - \__tblr_prop_log:n { hline } + \__tblr_text_log:n { hline } } \cs_new_protected:Npn \__tblr_log_tracing_colspec: diff --git a/macros/latex/contrib/tabularray/tabularray.tex b/macros/latex/contrib/tabularray/tabularray.tex index 03a2835a5e..5b1912c063 100644 --- a/macros/latex/contrib/tabularray/tabularray.tex +++ b/macros/latex/contrib/tabularray/tabularray.tex @@ -15,7 +15,7 @@ } \renewcommand*{\thefootnote}{*} -\newcommand*{\myversion}{2021J} +\newcommand*{\myversion}{2021K} \newcommand*{\mydate}{Version \myversion\ (\the\year-\mylpad\month-\mylpad\day)\\\myrepo} \newcommand*{\myrepo}{\url{https://github.com/lvjr/tabularray}} \newcommand*{\mylpad}[1]{\ifnum#1<10 0\the#1\else\the#1\fi} @@ -468,7 +468,7 @@ The following example demonstrates how to define similar rules as in \verb!bookt \end{tblr} \end{demohigh} -\chapter{New Interface} +\chapter{New Interfaces} With \verb!tabularray! package, you can separate style and content totally in tables. @@ -642,6 +642,24 @@ Options \verb!row{i}! and \verb!column{j}! are for setting some rows and columns \end{tblr} \end{demohigh} +We can specify foreground colors, background colors and fonts with +\verb!bg!, \verb!fg! and \verb!font! keys, respectively, for cells/rows/columns. +In most cases, \verb!bg! key can be omitted, which you can see in the previous examples. + +\begin{demohigh} +\begin{tblr}{ + colspec = {lcr}, + row{odd} = {bg=azure8}, + row{1} = {bg=azure3, fg=white, font=\sffamily}, +} + Alpha & Beta & Gamma \\ + Delta & Epsilon & Zeta \\ + Eta & Theta & Iota \\ + Kappa & Lambda & Mu \\ + Nu Xi Omikron & Pi Rho Sigma & Tau Upsilon Phi \\ +\end{tblr} +\end{demohigh} + \section{Space in Tables} Options \verb!rowsep! and \verb!colsep! are for setting padding for rows and columns, respectively. @@ -682,6 +700,18 @@ And \verb!\\[dimen]! can be replaced by \verb!belowsep+! option: \end{tblr} \end{demohigh} +Also \verb!\doublerulesep! parameter can be replaced by \verb!rulesep! option: + +\begin{demohigh} +\begin{tblr}{ + colspec={||llll||},rowspec={|QQQ|},rulesep=4pt, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ +\end{tblr} +\end{demohigh} + Also \verb!\arraystretch! parameter can be replaced by \verb!stretch! option: \begin{demohigh} @@ -713,7 +743,7 @@ Counters \verb!rownum!, \verb!colnum!, \verb!rowcount!, \verb!colcount! can be u \end{tblr} \end{demohigh} -\section{Experimental Interface} +\section{Experimental Interfaces} Everything described in this section is in \underline{\textcolor{red3}{\textbf{experimental}}} status. Don’t use them in important documents, unless you have time diff --git a/macros/latex/required/firstaid/changes.txt b/macros/latex/required/firstaid/changes.txt index c97129e31f..d7823c21a1 100644 --- a/macros/latex/required/firstaid/changes.txt +++ b/macros/latex/required/firstaid/changes.txt @@ -6,6 +6,13 @@ We also fix \FN@allmarks which can blow as it loops using the wrong counter (so the loops runs a random number of times) +2021-01-06 Frank Mittelbach + + * latex2e-first-aid-for-external-files.dtx: + Add replacement code for everysel package. + Add first aid for CJK (as it overwrite \selectfont with an + old definition). + 2020-12-14 Frank Mittelbach * latex2e-first-aid-for-external-files.dtx: diff --git a/macros/latex/required/firstaid/firstaid.ins b/macros/latex/required/firstaid/firstaid.ins index 9965480f20..cd5ea2006d 100644 --- a/macros/latex/required/firstaid/firstaid.ins +++ b/macros/latex/required/firstaid/firstaid.ins @@ -3,8 +3,8 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 2020 -%% The LaTeX3 Project and any individual authors listed elsewhere +%% Copyright (C) 2020-2021 +%% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% %% This file is part of the Standard LaTeX `First Aid Bundle'. @@ -44,8 +44,8 @@ reports for it can be opened at https://latex-project.org/bugs/ (but please observe conditions on bug reports sent to that address!) -Copyright (C) 2020 -The LaTeX3 Project and any individual authors listed elsewhere +Copyright (C) 2020-2021 +The LaTeX Project and any individual authors listed elsewhere in this file. This file was generated from file(s) of the Standard LaTeX `First Aid Bundle'. @@ -70,6 +70,9 @@ without such generated files. {\from{latex2e-first-aid-for-external-files.dtx}{kernel}}} \generate{\file{filehook-ltx.sty} - {\from{latex2e-first-aid-for-external-files.dtx}{filehook}}} + {\from{latex2e-first-aid-for-external-files.dtx}{filehook-ltx}}} + +\generate{\file{everysel-ltx.sty} + {\from{latex2e-first-aid-for-external-files.dtx}{everysel-ltx}}} \endbatchfile diff --git a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx index 1ce357d6d3..7eb108418c 100644 --- a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx +++ b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx @@ -1,6 +1,7 @@ % \iffalse meta-comment % -%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020 +%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021 +%% %% The LaTeX Project and any individual authors listed elsewhere %% in this file. % @@ -111,7 +112,7 @@ % % \begin{macrocode} \def\LaTeXFirstAidDate{2021/03/15} -\def\LaTeXFirstAidVersion{v1.0j} +\def\LaTeXFirstAidVersion{v1.0l} % \end{macrocode} % % \begin{macrocode} @@ -183,7 +184,7 @@ %\end{verbatim} % % \begin{macrocode} -%<*filehook> +%<*filehook-ltx> % \end{macrocode} % % \begin{macrocode} @@ -273,7 +274,7 @@ % \end{macrocode} % % \begin{macrocode} -% +% % \end{macrocode} % % @@ -306,7 +307,7 @@ \AddToHook{file/after/biditools.sty}[firstaid]{% \FirstAidNeededT{biditools}{sty}% {2020/05/13 v2 Programming tools for bidi package}% - { + {% % \end{macrocode} % \pkg{bidi} adds some code to the beginning of \cs{document} which % contains \cs{endgroup} and \cs{begingroup} which is no longer @@ -327,7 +328,7 @@ \AddToHook{enddocument/info}% {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone \bidi@afterenddocumentchecklabelsrerunhook}% - } + }% } % \end{macrocode} % @@ -397,6 +398,119 @@ % \end{macrocode} % % +% \begin{macrocode} +% +% \end{macrocode} +% +% +% +% +% +% \subsection{The \pkg{everysel} package first aid} +% +% +% The \cs{selectfont} command got a hook (with the 2021/05 release) which +% was originally provided by the \pkg{everysel} +% package. Now that it is in the kernel this package is no longer +% needed (or only in a simplified manner). +% +% If it is requested we replace it with a simplified package +% (until) it gets updated at which point this line can be removed. +% \changes{v2.2k}{2020/12/04}{Emulate everysel package} +% \begin{macrocode} +%<*kernel> +% this has been updated +%\declare@file@substitution{everysel.sty}{everysel-ltx.sty} +% +% \end{macrocode} +% +% +% +% \begin{macrocode} +%<*everysel-ltx> +\ProvidesPackage{everysel-ltx} + [2020/12/04 v1.0a + Emulation of the original everysel^^Jpackage with kernel methods] +% \end{macrocode} +% +% \begin{macrocode} +\newcommand*{\EverySelectfont}[1] + {\AddToHook{selectfont}{#1}} +\newcommand*{\AtNextSelectfont}[1] + {\AddToHookNext{selectfont}{#1}} +% \end{macrocode} +% +% +% \begin{macrocode} +% +% \end{macrocode} +% +% +% +% +% +% \subsection{The \pkg{CJK} package first aid} +% +% \begin{macrocode} +%<*kernel> +% \end{macrocode} +% +% The package redefines \cs{selectfont} to add some code but +% otherwise uses the old definition. So we make a copy of the +% newer kernel definition and restore it after the package got +% loaded. The extra code that the package needs can go into the +% newly provided hook instead. +% +% \begin{macrocode} +\DeclareCommandCopy\CJK@selectfont\selectfont +% \end{macrocode} +% +% \begin{macrocode} +\AddToHook{file/after/CJK.sty}[firstaid]{% + \FirstAidNeededT{CJK}{sty}% + {2015/04/18 4.8.4}% + {% + \DeclareCommandCopy\selectfont\CJK@selectfont +% \end{macrocode} +% +% \begin{macrocode} + \AddToHook{selectfont}[CJK]{% + \expandafter\ifx\csname CJK@\curr@fontshape\endcsname \relax + \else + \CJK@bold@false + \csname CJK@\curr@fontshape\endcsname + \fi + }% + }% +} +% \end{macrocode} +% +% +% +% \subsection{\cs{footref} first aid} +% +% A few classes unconditionally define \cs{footref}. Until that has +% changed we provide some first aid to let them do this. +% +% \begin{macrocode} +\AddToHook{file/after/scrkbase.sty}[firstaid]{% + \FirstAidNeededT{scrkbase}{sty}% + {2020/09/21 v3.32 KOMA-Script package (KOMA-Script-dependent basics and keyval usage)}% + {\let\footref\@undefined} + } +% \end{macrocode} +% +% \begin{macrocode} +\AddToHook{class/before/memoir}[firstaid]{% + % for version {2020/10/04 v3.7n configurable book, report, article document class}% + \let\footref\@undefined +} +% \end{macrocode} +% +% +% +% +% % \subsection{The \pkg{bigfoot} first aid} % % The \pkg{bigfoot} packages makes the assumption that two @@ -432,7 +546,6 @@ % % % -% % \subsection[Temporary fixes for the kernel (until the next % patch-level release)] % {Temporary fixes for the kernel \\ diff --git a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf index 1bf28e4760..2e9c812fd0 100644 Binary files a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf and b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf differ diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl index 880c0686f6..a8a2f2006d 100644 --- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl @@ -48,6 +48,7 @@ $mirrors = { 'Korea' => { 'http://ftp.ktug.org/tex-archive/' => 1, 'https://cran.asia/tex/' => 1, + 'https://ftp.harukasan.org/CTAN/' => 1, 'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1, 'https://mirror.navercorp.com/CTAN/' => 1, 'https://mirror.yongbok.net/ctan/' => 1, @@ -71,6 +72,9 @@ $mirrors = { 'http://ftp.cvut.cz/tex-archive/' => 1, 'https://mirrors.nic.cz/tex-archive/' => 1, }, + 'Denmark' => { + 'https://mirrors.dotsrc.org/ctan/' => 1, + }, 'Finland' => { 'https://www.nic.funet.fi/pub/TeX/CTAN/' => 1, 'https://www.texlive.info/CTAN/' => 1, @@ -81,6 +85,7 @@ $mirrors = { 'https://ctan.mines-albi.fr/' => 1, 'https://ctan.tetaneutral.net/' => 1, 'https://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/' => 1, + 'https://mirror.ibcp.fr/pub/CTAN/' => 1, 'https://mirrors.chevalier.io/CTAN/' => 1, 'https://mirrors.ircam.fr/pub/CTAN/' => 1, 'https://texlive.mycozy.space/' => 1, @@ -126,6 +131,7 @@ $mirrors = { 'https://ctan.uib.no/' => 1, }, 'Poland' => { + 'https://ctan.mirrors.tworzy.net/' => 1, 'https://ftp.gust.org.pl/TeX/' => 1, 'https://repo.skni.umcs.pl/ctan/' => 1, 'https://sunsite.icm.edu.pl/pub/CTAN/' => 1, diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb index 42477494ed..cfeeed526f 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/2021 -depend revision/59459 +depend revision/59483 name 00texlive.image category TLCore -revision 59458 +revision 59471 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 @@ -40,7 +40,7 @@ longdesc IgnorePatterns in the check_files routine in tlmgr.pl augment longdesc this list. Those are not included in the source/ tarball. For longdesc information on the 00texlive prefix see longdesc 00texlive.installation(.tlpsrc) -runfiles size=13873 +runfiles size=13874 .mkisofsrc autorun.inf texmf-dist/README @@ -2279,6 +2279,7 @@ runfiles size=13873 tlpkg/tlpsrc/kastrup.tlpsrc tlpkg/tlpsrc/kblocks.tlpsrc tlpkg/tlpsrc/kdgdocs.tlpsrc + tlpkg/tlpsrc/kdpbook.tlpsrc tlpkg/tlpsrc/kerkis.tlpsrc tlpkg/tlpsrc/kerntest.tlpsrc tlpkg/tlpsrc/ketcindy.tlpsrc @@ -4394,7 +4395,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd name 00texlive.installer category TLCore -revision 59443 +revision 59470 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 @@ -40774,7 +40775,7 @@ catalogue-version 1.1 name bjfuthesis category Package -revision 59445 +revision 59475 shortdesc A thesis class for Beijing Forestry University relocated 1 longdesc This is a class file for producing dissertations and theses @@ -40782,11 +40783,11 @@ longdesc according to the Beijing Forestry University (BJFU) Guidelines longdesc for Undergraduate Theses and Dissertations. The class should longdesc meet all current requirements and is updated whenever the longdesc university guidelines change. -containersize 2488 -containerchecksum 2996cfa1664cc0c99b2cbf537c35aa54d4a8e0259cb7885bb2d1114d4b344ebb72dc6c4afc4bbb0ae42321f9ac4778c2a2901a56685b009a1e034eeceed02e07 -doccontainersize 9533004 -doccontainerchecksum 3a8c58074292b6c20e2914634a6f7ef010cf39ac45219ff3197e461860b1cb0a96c686046ac560d30e7d009651a59c0579ec23447901e05c4348c0ff4d2d9793 -docfiles size=2463 +containersize 3008 +containerchecksum 30cbccac65cfca4f5f45b64a440dce8256dcfe00400795df109045bc35c911df38a4beb081a3d11e16f521b7b926a2822c5ff1c9b3686d93ee1907e2b46a64ce +doccontainersize 9543044 +doccontainerchecksum 5dbed5578e9f12131e462dd69c121caf5908fe7fd675de41faa27caa61feac5e12696396d26e5a8bc84796edb4af680afe6ef98dcaf263f0ab6f590f5b5acfa7 +docfiles size=2469 RELOC/doc/latex/bjfuthesis/LICENSE RELOC/doc/latex/bjfuthesis/README.md details="Readme" RELOC/doc/latex/bjfuthesis/documentation/bjfuthesis.pdf details="Package documentation" language="zh,en" @@ -40821,7 +40822,7 @@ catalogue-contact-repository https://github.com/bjfu-projects/bjfuthesis catalogue-ctan /macros/latex/contrib/bjfuthesis catalogue-license gpl3 catalogue-topics class doc-templ dissertation std-conform chinese -catalogue-version 1.0.1 +catalogue-version 1.0.2 name blacklettert1 category Package @@ -41121,22 +41122,24 @@ catalogue-version 2.51 name bmstu-iu8 category Package -revision 59310 +revision 59472 shortdesc A class for IU8 reports relocated 1 -longdesc This package consist of a class file and style files for +longdesc This package consists of a class file and style files for longdesc writing reports at the IU8 department of IU faculty of BMSTU -longdesc (Bauman Moscow State Technical University). -containersize 12584 -containerchecksum 8305bda33fea16ba81c9c20906a0dd946fb52dd630d44f08fd36916cb1bc6988990eedd22e145f70690491779282cbebd0fb3b60c8b0a6c09ca22c66a29356db -doccontainersize 227952 -doccontainerchecksum e93b0b13270f4b6588344d4a496f20fa53b1e4376945e71a11681362ee3dd3db529d5efb18e45f7327bf9ca97eb6b374c51db745ffd9c0294da22d3d1d91c93e -docfiles size=64 - RELOC/doc/latex/bmstu-iu8/LICENSE +longdesc (Bauman Moscow State Technical University). The class defines +longdesc all headings, structure elements and other things in respect of +longdesc Russian standard GOST 7.32-2017. But there are correctives to +longdesc be compatible with our local IU8 department requirements. +containersize 12484 +containerchecksum 8ab05be94dc35b6c4459730c799c4aa5856096c166b7286cb2ea1298b2940beb816248921caaadeb595b88c5cad29704261fc019183dec24de5793b118773273 +doccontainersize 171912 +doccontainerchecksum e54e87505ebca24da81fa9e34bd7646bdc5c2f8cc1e97395a51b677c0b628f8ba85b535f371ce302a1c01d82c398a97680e83eba7e20118cf8b03b7da8c20ae2 +docfiles size=59 RELOC/doc/latex/bmstu-iu8/README.md details="Readme" + RELOC/doc/latex/bmstu-iu8/bmstu-example.pdf details="Example of use" language="ru" + RELOC/doc/latex/bmstu-iu8/bmstu-example.tex RELOC/doc/latex/bmstu-iu8/bmstu.png - RELOC/doc/latex/bmstu-iu8/example.pdf details="Example of use" language="ru" - RELOC/doc/latex/bmstu-iu8/example.tex runfiles size=26 RELOC/tex/latex/bmstu-iu8/01-IU8-base.sty RELOC/tex/latex/bmstu-iu8/02-IU8-construction.sty @@ -41163,11 +41166,11 @@ runfiles size=26 RELOC/tex/latex/bmstu-iu8/BMSTU-IU8.cls catalogue-contact-bugs https://github.com/CatInCosmicSpace/latex-template/issues catalogue-contact-repository https://github.com/CatInCosmicSpace/latex-template -catalogue-contact-support https://t.me/catincosmicspace +catalogue-contact-support https://t.me/CatInCosmicSpace catalogue-ctan /macros/latex/contrib/bmstu-iu8 catalogue-license mit -catalogue-topics class report-like -catalogue-version 1.0 +catalogue-topics class report-like std-conform +catalogue-version 1.1 name bnumexpr category Package @@ -69601,7 +69604,7 @@ containerchecksum 653143f95761352dc349c66f618b01a77650b20bf8b2cf45137e72b2f05ba3 name collection-publishers category Collection -revision 59378 +revision 59466 shortdesc Publisher styles, theses, etc. relocated 1 depend IEEEconf @@ -69711,6 +69714,7 @@ depend jmlr depend jnuexam depend jpsj depend kdgdocs +depend kdpbook depend kluwer depend ksp-thesis depend ku-template @@ -69848,8 +69852,8 @@ depend xmuthesis depend yathesis depend yazd-thesis depend york-thesis -containersize 1556 -containerchecksum 9d1e1a19c0a530938d8a07212690add9529c824708a9e559f65426512f074464868da484594d3ecd30a95aeb7399c2d4e725b2fdf65c9add1f39e14dbb27de3d +containersize 1560 +containerchecksum ba8bcac576b7b7f5b006d3e3843f26a7909325a220ea2e92b48c6bb5ed764f11e6ab05ca9c3136aab4a00b88a0a51525ccd493d65216285ae325b2d829f0ea01 name collection-texworks category Collection @@ -97607,10 +97611,10 @@ binfiles arch=universal-darwin size=527 name dvipdfmx.win32 category TLCore -revision 59085 +revision 59468 shortdesc win32 files of dvipdfmx -containersize 332376 -containerchecksum 5c4c780cd2ad7593eeffd4c2b94466225220e75a76753e93963c4f2ec1ca27be82d4852a58ebe4cbe58f3dab1f11ee2ce398be57f212503c2d9cd15a69fdd462 +containersize 332332 +containerchecksum 043425371d23a3a0a01545ac5fd8937a71f4362f8d877b564b9ebfd83aad468fe17785b556f46489c73c489de1d6e140cbfa6068be22f66a85ef13c22bf03110 binfiles arch=win32 size=239 bin/win32/dvipdfm.exe bin/win32/dvipdfmx.dll @@ -98906,24 +98910,24 @@ catalogue-topics notes editorial name easybook category Package -revision 59454 +revision 59476 shortdesc Typeset Chinese books or notes relocated 1 longdesc Easybook is a minimalist style template based on the ctexbook longdesc book document class. -containersize 14184 -containerchecksum c13d8fdc1dfcfefb3ce4e93fcb9c062a8e01aecc0a3c743278857c9d71ea6eb24adf123db642254311e8391d114ab026e0afb76450b516ed895a6fe9938866fe -doccontainersize 314636 -doccontainerchecksum 7a91d4ee1e38f621b49c0432617a90ef9f5dc426b5497a6fafa3f8256dad4cc6ee3946157755127c81d33f573ae97c7bdfa26eb158b9235b03e4dbba02342669 +containersize 14276 +containerchecksum a620ea84ec3afbe271ec01d52765854c1d38afd0ff6b61e0c51cbe045c05b91c966a3decc7af1d8222829f076efea08547f76cb63c8e4e8a7563f9efcac43ddb +doccontainersize 314640 +doccontainerchecksum ffe5f3347287ad332ed55f28c0866708ee26e0688b900a966b2a3d18e85b73e99cd9a819c7b0f78494d80ead3d9fd4273d0279d814e4f1e7f143cad3f6d45f4a docfiles size=78 RELOC/doc/latex/easybook/README.md details="Readme" RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh" -srccontainersize 30840 -srccontainerchecksum 63dbb6d1e7de8f9d45a4497db2b5f67701a7deb91c1423314fbc80238c7ddc68668aae66a7a3c31fdda45ade31602e20508e8a22b0265075167a94c7e7135597 +srccontainersize 30960 +srccontainerchecksum 4c365d6e5f860ec8219a46699054e8dca04fed89efff0fbd7699778e282a6b5dac9ce5b385252f979202b54be66af8ebc8b6f60f8614fd3d34af86a17a2218f6 srcfiles size=33 RELOC/source/latex/easybook/easybook.dtx RELOC/source/latex/easybook/easybook.ins -runfiles size=17 +runfiles size=18 RELOC/tex/latex/easybook/easybase.sty RELOC/tex/latex/easybook/easybook.cls catalogue-also ctex @@ -98931,7 +98935,7 @@ catalogue-contact-repository https://gitee.com/texl3/easybook catalogue-ctan /macros/latex/contrib/easybook catalogue-license cc-by-4 catalogue-topics book-pub class chinese expl3 -catalogue-version 1.25r +catalogue-version 1.25t name easyfig category Package @@ -106807,7 +106811,7 @@ binfiles arch=x86_64-solaris size=2 name eq-pin2corr category Package -revision 57815 +revision 59477 shortdesc Add PIN security to the "Correct" button of a quiz created by exerquiz relocated 1 longdesc This package is an add-on to the quiz environment of the @@ -106818,11 +106822,11 @@ longdesc of the quiz and successfully enter the correct PIN number. The longdesc PIN security is designed for the instructor to mark and record longdesc the student's effort on that quiz. The package works for the longdesc usual workflows. -containersize 2144 -containerchecksum 878bbe22ea7a71b486a38942d11ab15a19c8fef10ac90e06b235a87a15f0e4478d00d7671751547cc0c8c440924c92cc7e07dbce4c816fdfd114468104fec040 -doccontainersize 639596 -doccontainerchecksum cc1dffd4989bdc5efc76e1ae44a8ee5f7cdea0c9617f98eda3ab0f079d242b408f91d80595a699212c5cf5910cf182c64d98517d6582af14fb1bec074f344eb9 -docfiles size=256 +containersize 3368 +containerchecksum 631f8dc9f50f7a45a0d03f0c4210af427cf8492d56886cedeff6cb0e9587453976beb1ac960afb53b7a31538a176bb63f55afd330ca2463847f86e57c3d545c3 +doccontainersize 558764 +doccontainerchecksum 4e704295ff398a2e167293178d69edc4882e9b9f37dae4f9debda7edd921a7c2d19c036b4d1424405ac1b9853e57615d9183fbf56a763088dc58919842da2720 +docfiles size=258 RELOC/doc/latex/eq-pin2corr/README.md details="Readme" RELOC/doc/latex/eq-pin2corr/doc/eq-pin2corr.pdf details="Package documentation" RELOC/doc/latex/eq-pin2corr/doc/eqpin2corrman.pdf details="User manual" @@ -106831,20 +106835,19 @@ docfiles size=256 RELOC/doc/latex/eq-pin2corr/doc/install_jsfiles.tex RELOC/doc/latex/eq-pin2corr/examples/get-hash-string.pdf RELOC/doc/latex/eq-pin2corr/examples/get-hash-string.tex - RELOC/doc/latex/eq-pin2corr/examples/qz-pin-to-correct.pdf - RELOC/doc/latex/eq-pin2corr/examples/qz-pin-to-correct.tex -srccontainersize 5152 -srccontainerchecksum eb0d10e680a935f9919b9dfcae1b137549dfaece3047b62e2ea06280cb3075d3882546df470f05cdae9716eb128f27faa981d86408acb50b85eced63bf104769 -srcfiles size=4 + RELOC/doc/latex/eq-pin2corr/examples/qz-p2c.pdf + RELOC/doc/latex/eq-pin2corr/examples/qz-p2c.tex +srccontainersize 7684 +srccontainerchecksum eb40f073d1763c59f9a0ed0444930f6698fbde754e213a73bff251df7f83b2c5a730345104d3b947ee8400363d324f968e3ebb7b74ed6f484d0c3589d5134b37 +srcfiles size=7 RELOC/source/latex/eq-pin2corr/eq-pin2corr.dtx RELOC/source/latex/eq-pin2corr/eq-pin2corr.ins -runfiles size=1 +runfiles size=2 RELOC/tex/latex/eq-pin2corr/eq-pin2corr.sty catalogue-also exerquiz catalogue-ctan /macros/latex/contrib/eq-pin2corr catalogue-license lppl1.2 catalogue-topics exercise exam security pdf-feat pdf-forms acrobat -catalogue-version 1.0 name eqell category Package @@ -119640,7 +119643,7 @@ catalogue-topics tut-latex name firstaid category Package -revision 58440 +revision 59483 catalogue latex-firstaid shortdesc First aid for external LaTeX files and packages that need updating relocated 1 @@ -119650,27 +119653,28 @@ longdesc LaTeX kernel that are not yet reflected in the package's or longdesc class's code. The file latex2e-first-aid-for-external-files.ltx longdesc provided by this package is meant to be loaded during format longdesc generation and not by the user. -containersize 2160 -containerchecksum 31e74a644d0b2a9b0f659207195cc39b7b0cdfd44c878caf541869a114ca90990637c04b3da74f9f49e2dbcb30863030fe901a67b200d1aa4a9892ff41defe15 -doccontainersize 205324 -doccontainerchecksum 368484714a5b45d47fe6b86c8025175d034842cc6e64665f574040bdd89cb42b02a739edca6806d3585a484cf55ff083616c0a210a9ca65916477ddbd4678b5f -docfiles size=53 +containersize 2536 +containerchecksum 1523585909a3f1a273bb05a3a122898dd81b053251b3594a27dcfb31e5fa80fb139c285b953ba044a67c7a9106c9a16318188a0f6a98023dc3d34a3af16999e6 +doccontainersize 222796 +doccontainerchecksum 0fea5bbb78ef2ac000258cabbeb42027be623ca6b558c0bcb3068e91ee96a413e5669eddc954f2fccb520813f8650b68f25bdf5cfef193dfc61713f109c325bd +docfiles size=58 RELOC/doc/latex/firstaid/README.md details="Readme" RELOC/doc/latex/firstaid/changes.txt RELOC/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf details="Package documentation" -srccontainersize 5884 -srccontainerchecksum 9c1c4ad607d2c9896504637c8efd0f7dcbb1916e7f671ead11552fbb6bcf0f8af216dc40a0ac771d3e804a02f65e12067082d001f96506d8d5435d93ff513ba9 -srcfiles size=5 +srccontainersize 6540 +srccontainerchecksum 1d172b83d2e74401fcef53c35289e0a15cb9d7a4b3e6a062ac02a6a216b82f55dd293f0bc38ac2fb6223920a8d1210f4c838416d31c7fbec1875111658d29c02 +srcfiles size=6 RELOC/source/latex/firstaid/firstaid.ins RELOC/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx -runfiles size=2 +runfiles size=4 + RELOC/tex/latex/firstaid/everysel-ltx.sty RELOC/tex/latex/firstaid/filehook-ltx.sty RELOC/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx catalogue-contact-home https://www.latex-project.org catalogue-ctan /macros/latex/required/firstaid catalogue-license lppl1.3c catalogue-topics format bugfix -catalogue-version 1.0j +catalogue-version 1.0l name fitbox category Package @@ -121569,7 +121573,7 @@ catalogue-version 4.6.3.2 name fontawesome5 category Package -revision 54517 +revision 59462 shortdesc Font Awesome 5 with LaTeX support relocated 1 longdesc This package provides LaTeX support for the included "Font @@ -121578,16 +121582,16 @@ longdesc Awesome and released under the SIL OFL 1.1 license. The longdesc commercial "Pro" version is also supported, if it is installed longdesc and XeLaTeX or LuaLaTeX is used. execute addMap fontawesome5.map -containersize 848692 -containerchecksum 2d33d6faae95c3d275fad5e0a962e7e8943ece8e311555915adf6f9cec9864e00a4309d42e7e171220f16c7ce8f7253499513f0d118685f0a7373de98c9fc886 -doccontainersize 719272 -doccontainerchecksum 24c198c2abfc82930b43d04b1b855715c48b7b1d2517d955745b6eaea8b4d81496af627907a3e7d9bb232df442c965a1ea84c427bc1a8c964cc83dc123392051 -docfiles size=180 +containersize 865064 +containerchecksum 06a12635f8f847dc6f51e57ab122aba09705418b13b13bb23fc42c4f5f9ae7518bd509e47f4d591847077112b3e7588d7402a3b11d1dd3b93a71aabfc41d9e1e +doccontainersize 741952 +doccontainerchecksum 35e403c1272908ce31a4d3622747317d2a4b482a2aca8be79df29478e92acd4977ace576d3ff8424005142edca2e4f4c3b125f5096c7f02ddd120f2b3b0799db +docfiles size=186 RELOC/doc/fonts/fontawesome5/README.md details="Readme" RELOC/doc/fonts/fontawesome5/fontawesome5.pdf details="Package documentation" RELOC/doc/fonts/fontawesome5/fontawesome5.tex RELOC/doc/fonts/fontawesome5/fulllist.tex -runfiles size=325 +runfiles size=330 RELOC/fonts/enc/dvips/fontawesome5/fa5brands0.enc RELOC/fonts/enc/dvips/fontawesome5/fa5brands1.enc RELOC/fonts/enc/dvips/fontawesome5/fa5free0.enc @@ -121629,7 +121633,7 @@ catalogue-also fontawesome catalogue-ctan /fonts/fontawesome5 catalogue-license ofl lppl1.3c catalogue-topics font font-supp-symbol font-symbol font-otf font-type1 -catalogue-version 5.13.0 +catalogue-version 5.15.3 name fontaxes category Package @@ -138179,7 +138183,7 @@ catalogue-version 1.0b name hyperref category Package -revision 58024 +revision 59478 shortdesc Extensive support for hypertext in LaTeX relocated 1 longdesc The hyperref package is used to handle cross-referencing @@ -138209,11 +138213,11 @@ depend rerunfilecheck depend stringenc depend url depend zapfding -containersize 91200 -containerchecksum 00c82f1b64272ee6fd3728e29edf8e399a08eb3ffb9fb4fb011f4d0caa38970a351c132fd7096954a32ce9c730d798ba606f59f0ad6bf1754e43462067dd6c49 -doccontainersize 3287788 -doccontainerchecksum 9005eb33d3f8b90199131eb2104fd961fd7d248c17c67af73162a0b90f0b90de1e5f5c79ffce59564f7d19e835765c59b385fb0e9e19ef4935f1de49655b03dc -docfiles size=1046 +containersize 91220 +containerchecksum dd809761617e2a668d7ccc47af2e1d9b8b86c92e52d31f87af291b54176471c865a6bc1acb8e05dd6e731c58be5e155c34ffd265ac86381a86d87929882ab64f +doccontainersize 3286972 +doccontainerchecksum 21627c338bd439ab7456b9955f7d520d1072bfaf5dbccfef5df62d52bdfcd09168962b563769ff021c112d67c249ca946326a88567688debb05c0cbe7155ade5 +docfiles size=1048 RELOC/doc/latex/hyperref/ChangeLog.txt RELOC/doc/latex/hyperref/README.md details="Readme" RELOC/doc/latex/hyperref/backref.pdf @@ -138231,8 +138235,8 @@ docfiles size=1046 RELOC/doc/latex/hyperref/nameref.pdf RELOC/doc/latex/hyperref/paper.pdf details="Paper on tagging and navigation" language="en" RELOC/doc/latex/hyperref/slides.pdf -srccontainersize 446744 -srccontainerchecksum be6c8585a89c5c17bc38704251c9800073784e0fdfce6441a14ab804e9de0b23cebfcd7ca94f366cdc12e37b20f571f68b309df483691ebe3e065af4a7876f68 +srccontainersize 446784 +srccontainerchecksum 928c865f010fab191c2c91ab71516b2277db753262c8ba0faae162391953df208cac3b57f889abaf13cb218613cfc6c635a6ede76f0fbf7648582fe2ce767b11 srcfiles size=346 RELOC/source/latex/hyperref/backref.dtx RELOC/source/latex/hyperref/bmhydoc.sty @@ -138278,7 +138282,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 -catalogue-version 7.00k +catalogue-version 7.00l name hyperxmp category Package @@ -155680,6 +155684,38 @@ catalogue-license lppl1.3 catalogue-topics dissertation class catalogue-version 1.0 +name kdpbook +category Package +revision 59471 +relocated 1 +depend anyfontsize +depend geometry +depend graphics +depend microtype +depend pgf +depend setspace +depend textpos +depend tools +depend xcolor +depend xifthen +depend xkeyval +containersize 2304 +containerchecksum d2b596a10c357ea79e141c3984a0e3657c340a7ddebe7fe15267d201862a98dd3d0b3312672d568aaddb2a7d3d847028d0bce8413f4360f2da9cb2436d935697 +doccontainersize 112072 +doccontainerchecksum 84b341b30b81d59113edba3e17423a2562744ba19d2085327ba82755db12cd641500e5c74f7d7bb69afd3217cf8cc9b1df74e8d62ba3b9153dae81b65e7cbafb +docfiles size=40 + RELOC/doc/latex/kdpbook/DEPENDS.txt + RELOC/doc/latex/kdpbook/README.md + RELOC/doc/latex/kdpbook/images/signature.pdf + RELOC/doc/latex/kdpbook/images/volume-1.pdf + RELOC/doc/latex/kdpbook/images/volume-2.pdf + RELOC/doc/latex/kdpbook/images/volume-3.pdf + RELOC/doc/latex/kdpbook/images/volume-4.pdf + RELOC/doc/latex/kdpbook/kdpcover.pdf + RELOC/doc/latex/kdpbook/kdpcover.tex +runfiles size=2 + RELOC/tex/latex/kdpbook/kdpcover.cls + name kerkis category Package revision 56271 @@ -163631,18 +163667,18 @@ catalogue-version 2021-06-01 name latex-amsmath-dev category Package -revision 56791 +revision 59474 shortdesc Development pre-release of the LaTeX amsmath bundle relocated 1 longdesc This is a pre-release version of the standard LaTeX amsmath longdesc bundle. It accompanies the pre-testing kernel code longdesc (latex-base-dev), and is intended for testing by knowledgeable longdesc users. -containersize 30636 -containerchecksum 53089df5f54a43f8e6e4835df89824ebbc7ba53d54a96dcb3419be22fb8151337d5b03dec8db095a808135e83de9739f8dd314befb52d3f3340a7f82d8b0d0da -doccontainersize 2351488 -doccontainerchecksum ec111f9ae7c306c4a028ece6edd89b205a47d05d82ad9872235ce189354cdb2415f64a401c150327dd6cbb1b84d0ca495236b733000213f7fc9865a9baceb8df -docfiles size=667 +containersize 30616 +containerchecksum e3f3efd3cb70217c84fe2c927716d42ded9e7ba6577d0e26ed18de3e69f96613f896e310f4ef44d94c2657b4735546393df051c309a70a7c11d0435293f3e18d +doccontainersize 2393900 +doccontainerchecksum 20d7223d1b4fffd8f492d22b445ba24c8d73bf27ca4c9c2481d43ba01966a2bb00d0f2a77c4464f5060175b800da030ef2b24d97666ab0e691a4194966afb760 +docfiles size=710 RELOC/doc/latex-dev/amsmath/README.md details="Readme" RELOC/doc/latex-dev/amsmath/ams-external.txt RELOC/doc/latex-dev/amsmath/ams-internal.txt @@ -163664,8 +163700,8 @@ docfiles size=667 RELOC/doc/latex-dev/amsmath/technote.tex RELOC/doc/latex-dev/amsmath/testmath.pdf details="Examples paper" language="en" RELOC/doc/latex-dev/amsmath/testmath.tex -srccontainersize 65376 -srccontainerchecksum 13564f9aa92a5e6577caacd4c912ba7b8ac1da004092dd911bc311818689b9cccdff8c5b9e6ae9fb3cbac4cfb0eca0a008d83603a0e793739f02cf4cecd307cb +srccontainersize 65464 +srccontainerchecksum c1868cdbd13803f07c2cff91b98efd9be4c7f08560e1a662e9879982769d852ec06c347a18f04a9d18e850c15e06ced955d5d1337533a88390dc651dbea924de srcfiles size=81 RELOC/source/latex-dev/amsmath/amsbsy.dtx RELOC/source/latex-dev/amsmath/amsbsy.ins @@ -163694,11 +163730,11 @@ runfiles size=70 catalogue-ctan /macros/latex-dev/required/amsmath catalogue-license lppl1.3c catalogue-topics maths -catalogue-version 2021-05-01 pre-release 0 +catalogue-version 2021-12-01 pre-release 0 name latex-base-dev category Package -revision 59080 +revision 59474 shortdesc Development pre-release of the LaTeX kernel relocated 1 longdesc This package provides a testing release for upcoming LaTeX2e @@ -163708,11 +163744,11 @@ longdesc users is required by adding these changes to the release LaTeX longdesc kernel. Typically, the code here will be used by a TeX system longdesc to create dedicated formats, for example pdflatex-dev, which longdesc can then be used explicitly for testing. -containersize 215440 -containerchecksum 49b883fe2a4e048c2dbc730ac67c2b9566161ca36d1bce5af87114f8e47df6c6635fe86c2d82e8083af4e93d50e7c1cf16ce4beeb822da38f0a4cbec36ba2a6e -doccontainersize 27216200 -doccontainerchecksum 3bd64f94d9a8c045735ef3d3f04cdd553fa1d60151e01ab6e1736e8e0109ae30681bc90ff33ba8c4d0b9fe52945a36fafb237ae1de6c87a69403769167e150af -docfiles size=8572 +containersize 215404 +containerchecksum 45020da589fc42d8a80be76c914724757cc9312a7bee821bfe1bdb54a975583904b01c45fa9dd4d46db962877204a7ace68500b98ce61a8ce75acbb498aa6bb4 +doccontainersize 27578780 +doccontainerchecksum dbcceb31dacbd2ccfe41717a6d397c6e3ef376db46b765abe7daa93fbdf2296c9bf59cfe5263a0f42311180c4bbfaa25825d3d4b6eae475463e82668019dcd89 +docfiles size=8668 RELOC/doc/latex-dev/base/README.md details="Readme" RELOC/doc/latex-dev/base/alltt.pdf RELOC/doc/latex-dev/base/bugs.txt @@ -163869,9 +163905,9 @@ docfiles size=8572 RELOC/doc/latex-dev/base/utf8ienc.pdf RELOC/doc/latex-dev/base/webcomp.err RELOC/doc/latex-dev/base/webcomp.pdf -srccontainersize 665048 -srccontainerchecksum 89387b87aa7116f8bc04116b20dd487855bc63859db0b886694b7abe42e0a7540b92ff0fca8fc5a1a409513fec1120ebd7800247949d05421920996853bb1b3f -srcfiles size=974 +srccontainersize 665232 +srccontainerchecksum f1793eaf5d4fa40e795fa8d62d17d90325540016b8500d7606f66151583094634543787c75e335a3a27426ddca2ea530618276a00887ec462ec96241d7236479 +srcfiles size=973 RELOC/source/latex-dev/base/alltt.dtx RELOC/source/latex-dev/base/alltt.ins RELOC/source/latex-dev/base/classes.dtx @@ -163973,7 +164009,7 @@ srcfiles size=974 RELOC/source/latex-dev/base/tulm.ins RELOC/source/latex-dev/base/unpack.ins RELOC/source/latex-dev/base/utf8ienc.dtx -runfiles size=598 +runfiles size=596 RELOC/tex/latex-dev/base/alltt.sty RELOC/tex/latex-dev/base/ansinew.def RELOC/tex/latex-dev/base/applemac.def @@ -164141,7 +164177,7 @@ catalogue-also latex-base catalogue-ctan /macros/latex-dev/base catalogue-license lppl1.3c catalogue-topics format class -catalogue-version 2021-06-01 pre-release 3 +catalogue-version 2021-12-01 pre-release 0 name latex-bin category TLCore @@ -164729,34 +164765,34 @@ catalogue-topics latex-doc name latex-firstaid-dev category Package -revision 57981 +revision 59474 shortdesc Development pre-release of the LaTeX firstaid package relocated 1 longdesc This is a pre-release version of the standard LaTeX firstaid longdesc package. It accompanies the pre-testing kernel code longdesc (latex-base-dev), and is intended for testing by knowledgeable longdesc users. -containersize 2344 -containerchecksum d15e218f16cef0e7ae518ee567d9d3912b20e1e62781f0aea4d167b1922ad28b5ce946609fd2f2a9e3c2671f096a0e34c0f88d30877dfee466ac37130cf20a18 -doccontainersize 219328 -doccontainerchecksum 870a42973a33fccdca2c176071bb5dc9f52f29c69fbe41633f75097b3b42e63db0185697ac0bbeb487eed0bc35df61507a934f2ab47c413970fa6ee1eeda73e1 -docfiles size=57 +containersize 2468 +containerchecksum a932feb2d3266db1c0fd6c69e8a31a79e7de7b3bcfe0325c4cfc6ac8ec30510724db999abd1fdfc74cd4d280a386c0efeee8ee79d7b771ad92cad9c41528f1bb +doccontainersize 223000 +doccontainerchecksum be2f39a62b59efd74db39601595e951e0973638e70b3570ef3c18cb9d7c459bf4adf1086b18aa9886d41a49acbf1abe333eef195eb8f42d5e96716083fa52ea3 +docfiles size=58 RELOC/doc/latex-dev/firstaid/README.md details="Readme" RELOC/doc/latex-dev/firstaid/changes.txt RELOC/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf details="Package documentation" -srccontainersize 6076 -srccontainerchecksum d9b97a9c8b659ef4a4ff3a67a4593bf95bf5d01917b0c550017a4a2085d5acb127a1028920d4bee04a7b00c34219f001afbdf8b34c51a0b04bcca2e2c70fc3bc +srccontainersize 6552 +srccontainerchecksum db57b2b9f36d4163e69aff6c2d3baf64178cb322b36b2ec4fbee3dc87a1c83e559e369c594e72c5b9dfe8ec5ef1c8c4f225457d59fa0189932145262ea004ddc srcfiles size=6 RELOC/source/latex-dev/firstaid/firstaid.ins RELOC/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx -runfiles size=3 +runfiles size=4 RELOC/tex/latex-dev/firstaid/everysel-ltx.sty RELOC/tex/latex-dev/firstaid/filehook-ltx.sty RELOC/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx catalogue-ctan /macros/latex-dev/required/firstaid catalogue-license lppl1.3c catalogue-topics format bugfix -catalogue-version 1.0k +catalogue-version 1.0l name latex-fonts category Package @@ -165465,7 +165501,7 @@ catalogue-topics book-ex name latex-graphics-dev category Package -revision 59080 +revision 59474 shortdesc Development pre-release of the LaTeX graphics bundle relocated 1 longdesc This is a pre-release version of the standard LaTeX graphics @@ -165473,10 +165509,10 @@ longdesc bundle. It accompanies the pre-testing kernel code longdesc (latex-base-dev), and is intended for testing by knowledgeable longdesc users. depend graphics-cfg -containersize 15148 -containerchecksum 5a68637707e35fd7567bfd19d7053a07b5b14bca6da5d8ba021d3c802ab74d693b4586e1da0793ab0facf4757d5512651b8111dfc0665cea66066b121b6a0588 -doccontainersize 2028260 -doccontainerchecksum 138df1c018b519e4f4463dacd158735d8de58fcf54e97e586899d49fd6ba60f5d1b53d92526cc812d85da74537c09d1fe3268a8c2515c9e12ccc918ce399ed67 +containersize 15152 +containerchecksum 58e6b9a8ab54d77128b4a98edc5de2561fbce03014dc0b316fa77f44bda83fd90610b05d60cb6bb840472fc753ebb0501db9e6ac83a88a70b3db58b2e137e1e9 +doccontainersize 2028000 +doccontainerchecksum dd187c0186d89940e59dbe4b5272091f20114eaa06626af3fd712a283b56ec27f2aa2f5d2470526d5ab9ef0d64eb424c6dcd0904660ee1a66f2fd87e09b3125c docfiles size=669 RELOC/doc/latex-dev/graphics/README.md details="Readme" RELOC/doc/latex-dev/graphics/cat.eps @@ -165494,8 +165530,8 @@ docfiles size=669 RELOC/doc/latex-dev/graphics/rotex.pdf RELOC/doc/latex-dev/graphics/rotex.tex RELOC/doc/latex-dev/graphics/trig.pdf -srccontainersize 52252 -srccontainerchecksum 63386bb2d2ca9c8153e770efda87777e589bf94093f1d81abea91945156bb173ca974fa3799cb0fa1151e722265675e11a880ae6a70c74a18d0ef74db836cfae +srccontainersize 52256 +srccontainerchecksum 4c3b5c4312e83530bafdec92749cd2124594b8bbbe0bfee148525ade8514180772a3d8158aa50d6d8435e904db399ecdd73268b4d58ce2be51d0e30c680640b0 srcfiles size=65 RELOC/source/latex-dev/graphics/color.dtx RELOC/source/latex-dev/graphics/drivers.dtx @@ -165533,7 +165569,7 @@ catalogue-also latex-graphics catalogue-ctan /macros/latex-dev/required/graphics catalogue-license lppl1.3c catalogue-topics graphics collection -catalogue-version 2021-06-01 pre-release 1 +catalogue-version 2021-12-01 pre-release 0 name latex-make category Package @@ -165890,17 +165926,17 @@ catalogue-version 1.2 name latex-tools-dev category Package -revision 59080 +revision 59474 shortdesc Development pre-release of the LaTeX tools bundle relocated 1 longdesc This is a pre-release version of the standard LaTeX tools longdesc bundle. It accompanies the pre-testing kernel code longdesc (latex-base-dev), and is intended for testing by knowledgeable longdesc users. -containersize 42452 -containerchecksum c99eb52581a1407268fe124d1a33ba6dc6b9bc431f79a17a8a7d5d34c99a81248d7826cf8043ab2230fe6f2a019984f5165ca2a8b8325d616f960c06d85f683e -doccontainersize 5280832 -doccontainerchecksum f3b0cb91bd4cd95de31f52518f8be5fdb6693fd5f0c6b00d5891521745251bfe352641c3a83cd4d7e47a6191736afff1e6ceab9ea6a5824f8433b8f9c72c80d1 +containersize 42460 +containerchecksum 144aea9d30cb306614f3f8c250231acf17e4e6fc85c1b449388ab0c9d7b35488d5bb9604dd8a155028de8035a109ab430e8164eb334fa512511315c6eb68f38d +doccontainersize 5281220 +doccontainerchecksum d46406c9651a6aa4cdd4a7fd0d7a27c18f55fcb0d4c5bbbaf62d70c2096e0050171e7b5788d06d5e0f6c7a8e0acae841052d5300cc4551f04f522f1c1b96f1a0 docfiles size=1774 RELOC/doc/latex-dev/tools/README.md details="Readme" RELOC/doc/latex-dev/tools/afterpage.pdf @@ -165933,8 +165969,8 @@ docfiles size=1774 RELOC/doc/latex-dev/tools/verbatim.pdf RELOC/doc/latex-dev/tools/xr.pdf RELOC/doc/latex-dev/tools/xspace.pdf -srccontainersize 227844 -srccontainerchecksum cc88af3474e6ed454b7c6b967aaf74c428a1575620a8dd4abe0979b8b65bccafd94b5862a75143412581a88d69692dcbd5d534191a5de13b6309950beebe3653 +srccontainersize 227880 +srccontainerchecksum fedefaad8921f18cccdf613a4e28fe63b0752bf9000618c1589c61b78babc7fd77b3dc1b36e867a60840bd9f69c8b5a97731e7a794671758b392d5e70ed3a4d4 srcfiles size=269 RELOC/source/latex-dev/tools/afterpage.dtx RELOC/source/latex-dev/tools/afterpage.ins @@ -166018,7 +166054,7 @@ runfiles size=110 catalogue-ctan /macros/latex-dev/required/tools catalogue-license lppl1.3c catalogue-topics collection -catalogue-version 2021-06-01 pre-release 2 +catalogue-version 2021-12-01 pre-release 0 name latex-uni8 category Package @@ -214304,7 +214340,7 @@ catalogue-topics font font-type1 font-decor name nicematrix category Package -revision 59105 +revision 59479 shortdesc Improve the typesetting of mathematical matrices with PGF relocated 1 longdesc This package is based on the package array. It creates PGF/TikZ @@ -214316,17 +214352,17 @@ longdesc border matrices); control of the width of the columns; tools to longdesc color rows and columns with a good PDF result; blocks of cells; longdesc etc. The package requires and loads l3keys2e, xparse, array, longdesc amsmath, pgfcore, and the module shapes of PGF. -containersize 29296 -containerchecksum b0b2150e1971df7bdab1925a7f69a8d4a3a1a7828bfed2f15f35475ee7c38f3f0e3ef0c63c0c0818327118f7ce5f799984bf0bb170d793e5004d7b848faa20d6 -doccontainersize 1680940 -doccontainerchecksum 054a79e2233a88d0df6ee47ad5a1ec0581d65b1f8ab7aa9659238b8d6ee468e5b14bdd0e3e8411e2a98da51fd05b88b95bff2ada20ce18867abf5fc1ed77abd7 -docfiles size=460 +containersize 29472 +containerchecksum a0783bc0e37bacf086cdb9b7f116a0be18fe82a76e0dda5cee0ce0644809a82f2b513a4e8eb12c5c14e9c7767db872984393956153477e5cd6b5289a894811a9 +doccontainersize 1733596 +doccontainerchecksum edad5c5237cba4b98badafa7f579130de86448fd741a36b9b238042c1aee1bafe7edb80ffc211adb5872c5bb9c8c70899c34ddb5620fe58fecf8c1ddfbbb8276 +docfiles size=474 RELOC/doc/latex/nicematrix/README.md details="Readme" RELOC/doc/latex/nicematrix/nicematrix-french.pdf details="Package documentation in French" language="fr" RELOC/doc/latex/nicematrix/nicematrix-french.tex RELOC/doc/latex/nicematrix/nicematrix.pdf details="Package documentation" -srccontainersize 99100 -srccontainerchecksum 0f7b0d7467d5c11e8be0dbe692c5da98244042f14bd4290a8b8db6465753bfc482976bc316d875fe177bab343e8c5a4778be9ac58f13c7b10302be7d039b6ed9 +srccontainersize 98768 +srccontainerchecksum 656c69deb3d62610fd37c94e190f4449abd44595bea2da3e6404890847caec03ce2843cb3208e370568479b00b5cb7d9c592af269df76f91594152c12ae06956 srcfiles size=150 RELOC/source/latex/nicematrix/nicematrix.dtx RELOC/source/latex/nicematrix/nicematrix.ins @@ -214335,7 +214371,7 @@ runfiles size=65 catalogue-ctan /macros/latex/contrib/nicematrix catalogue-license lppl1.3 catalogue-topics maths matrix pgf-tikz expl3 -catalogue-version 5.15a +catalogue-version 5.15b name nicetext category Package @@ -244931,7 +244967,7 @@ catalogue-version 0.1 name platex category Package -revision 59404 +revision 59463 shortdesc pLaTeX2e and miscellaneous macros for pTeX longdesc The bundle provides pLaTeX2e and miscellaneous macros for pTeX longdesc and e-pTeX. This is a community edition forked from the @@ -244957,10 +244993,10 @@ depend tex-ini-files depend unicode-data execute AddFormat name=platex engine=eptex options="*platex.ini" patterns=language.dat fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,ptex-fonts,latex execute AddFormat name=platex-dev engine=eptex options="*platex.ini" patterns=language.dat fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,ptex-fonts,l3kernel,latex-base-dev,latex-firstaid-dev -containersize 41740 -containerchecksum 247b5f600008e9d423a61528c7ccdeebca80477fd6ac419ecb4a359c134ff1dfeb1c51ddd2283b34d0b3cbd819226d90fad23b63ccb132143ac57c063c6f3b35 -doccontainersize 1497880 -doccontainerchecksum 9c7419dfcf1e0b09b02985a34db22da1dc4ff2573b76c6c75bec6247a1c5954c01e60b29a6510d6801168ed62e993c9e50e89b98e6d49c2475546df5f4b50e64 +containersize 41892 +containerchecksum 3664c7f535d3c49c17d999739445f22cad30660f71ac551fbe15b1fc83c575205b68f5d2174487b930c7f6b51674b20430ca8e939659a995a0da213836aca3c8 +doccontainersize 1500636 +doccontainerchecksum feee2678026365ab79186100cbd90b367cf9391f179e7021b56b3656caf42a9501d923208b9a9d28307c845124b9da6a8bfee713394633fb67c85c355c6bb0ef docfiles size=383 texmf-dist/doc/man/man1/platex.1 texmf-dist/doc/man/man1/platex.man1.pdf @@ -244971,9 +245007,9 @@ docfiles size=383 texmf-dist/doc/platex/base/platex.pdf details="Package documentation" language="ja" texmf-dist/doc/platex/base/platexrelease.pdf texmf-dist/doc/platex/base/pldoc.pdf -srccontainersize 137796 -srccontainerchecksum 648e762f9716df28d621a37c4e7fe98c5bc5cafd0ef570b909a92439c5c6b0f0a65c44dc21ab07f3dcd3e89af4c7985c92f363bef01cd69ca3ee5c3646371d93 -srcfiles size=213 +srccontainersize 138780 +srccontainerchecksum c180e894dd137375b49129991bcb9bbdc6870a8935045f410fdc9e285fdb9f7367944806f49001baf74ab307322e26990732e53a5836c0df0646bacf40114a30 +srcfiles size=214 texmf-dist/source/platex/base/Makefile texmf-dist/source/platex/base/jclasses.dtx texmf-dist/source/platex/base/jltxdoc.dtx @@ -245013,6 +245049,7 @@ srcfiles size=213 texmf-dist/source/platex/base/plnewsc13.tex texmf-dist/source/platex/base/plnewsc14.tex texmf-dist/source/platex/base/plnewsc15.tex + texmf-dist/source/platex/base/plnewsc16.tex texmf-dist/source/platex/base/plvers.dtx runfiles size=168 texmf-dist/tex/platex/base/exppl2e.sty @@ -250396,7 +250433,7 @@ catalogue-version 1.1 name profcollege category Package -revision 59217 +revision 59480 shortdesc A LaTeX package for French maths teachers in college relocated 1 longdesc This package provides some commands to help French mathematics @@ -250406,15 +250443,15 @@ longdesc \Pythagore{ABC}{5}{7} to write the entire calculation of AC longdesc with the Pythagorean theorem, \Trigo[Cosinus]{ABC}{3}{}{60} to longdesc write the entire calculation of AC with cosine, ... and some longdesc others. -containersize 85416 -containerchecksum d249524a70d6557ea1acc82000cd7f55c8c77b1171c48a71e6969e1dc92696dd0f03c6a3d0c98dfdc8a26083722f27af3ea3abc2d833c8d064f30ad0554e8c46 -doccontainersize 3917560 -doccontainerchecksum 062653aa9533a8b889c509b90430913f69a7cede677e38c555d5d38b8150a3c2d2b3d0616274f1c2bedd73a6303fe017a9286aaaf88655a5979359425e30a4c4 -docfiles size=1091 +containersize 87672 +containerchecksum 1c64f5056ae1bc9f596e82c779b37a43d06ed365440ff7ad9ae8f2f5f4c55df7fdb29913bf6a143b38355fdcd00b3aba3a26442349e6ec3986d981d745e9fdb2 +doccontainersize 3921740 +doccontainerchecksum 41d66bf9098e4112338d4c6bd1677b51eda772f207fbfdbac015406e66daff8286b5f24337c6d502c711153102568c8a2eca074fe6ed12e351bf47319d31540b +docfiles size=1093 RELOC/doc/latex/profcollege/ProfCollege-doc.pdf details="Package documentation" language="fr" RELOC/doc/latex/profcollege/ProfCollege-doc.zip RELOC/doc/latex/profcollege/README details="Readme" -runfiles size=238 +runfiles size=244 RELOC/metapost/profcollege/PfCAfficheur.mp RELOC/metapost/profcollege/PfCCalculatrice.mp RELOC/metapost/profcollege/PfCConstantes.mp @@ -250433,7 +250470,7 @@ runfiles size=238 catalogue-ctan /macros/latex/contrib/profcollege catalogue-license lppl1.3c catalogue-topics maths french teaching -catalogue-version 0.99-b +catalogue-version 0.99-d name program category Package @@ -258066,24 +258103,24 @@ catalogue-version 4.6.2 name pxbase category Package -revision 59315 +revision 59473 shortdesc Tools for use with (u)pLaTeX relocated 1 longdesc The main purpose of this package is to provide auxiliary longdesc functions which are utilized by other packages created by the longdesc same author. It also provides a few user commands to assist in longdesc creating Japanese documents using (u)pLaTeX. -containersize 12068 -containerchecksum 08cb0379315a9bc3075d69a581795099fe0f6eec1ea49fee062a117181a2dda5d255596517ac307c78304763ef2546655e996af2e945123822ca67d1f2f3968b -doccontainersize 145104 -doccontainerchecksum d9d96f023681d3f984badf2615bb7f9df4b2a097cc144cc60445406cfc1d37df8a07588de87794f77a97775fd01b7ed4730912b00e732a165132438f7fb25e06 -docfiles size=44 +containersize 12356 +containerchecksum a75c8932fc56c11e4afeaf30c91ad6c67622df8eb93b0700257472c22a7de6ee7732be8a67d1d53f1e21138bfecc64cbc6e8d8800c08ee1c5cbeb7bab637df4d +doccontainersize 161900 +doccontainerchecksum 4421d659294e02b2d0268a4b0d56b037c321c69abc856bb00917b61b79bf78462fb4a5c9c8616d773e7267137de0f6af88cef02dcb661259c7ed7247317f7aab +docfiles size=49 RELOC/doc/platex/pxbase/LICENSE RELOC/doc/platex/pxbase/README-ja.md details="Readme (Japanese)" language="ja" RELOC/doc/platex/pxbase/README.md details="Readme" RELOC/doc/platex/pxbase/pxbabel.pdf RELOC/doc/platex/pxbase/pxbabel.tex -runfiles size=17 +runfiles size=18 RELOC/tex/platex/pxbase/pxbabel.sty RELOC/tex/platex/pxbase/pxbase.def RELOC/tex/platex/pxbase/pxbase.sty @@ -258096,7 +258133,7 @@ catalogue-contact-home https://github.com/zr-tex8r/PXbase catalogue-ctan /language/japanese/pxbase catalogue-license mit catalogue-topics japanese -catalogue-version 1.2 +catalogue-version 1.3 name pxchfon category Package @@ -274248,7 +274285,7 @@ catalogue-version 1.0 name siunitx category Package -revision 59437 +revision 59464 shortdesc A comprehensive (SI) units package relocated 1 longdesc Typesetting values with units requires care to ensure that the @@ -274273,18 +274310,18 @@ longdesc The package relies on LaTeX 3 support from the l3kernel and longdesc l3packages bundles. depend l3kernel depend l3packages -containersize 60808 -containerchecksum 2eded63e982bb2e54d8ae6c155049778e1e4b2e57172f7440c53df99d4bd38b0182d847f08b5b7a2b88d0f2a394fef30d381ddcea50e20ae4832176bced68fe8 -doccontainersize 2391164 -doccontainerchecksum af8023d3bc0d34e73a6a42a5223efdcc74113bb2c21bb3f4eb5f36925d28c33cc196aa6982b2082ddc1f7cce4b8906067ae51a80797b2684f33e04e2e01dcf89 -docfiles size=632 +containersize 60832 +containerchecksum 0f7bbbee8e269110f77e167dcd15645eafc50d572058e0655441d423b6fad1d497eb13727ad996be6c4d231ca13de9bd4716f068e97efa0659455783c7417e5d +doccontainersize 2414300 +doccontainerchecksum ce9e857ea0fce11dc67dc128cf3015ba0f66fb8fdbd63179a871880a62afd569a741ddef8b3487f4a29d4997f311a84c08098fa5e99c0d2af32c4ab4152fca28 +docfiles size=646 RELOC/doc/latex/siunitx/CHANGELOG.md RELOC/doc/latex/siunitx/README.md details="Readme" RELOC/doc/latex/siunitx/siunitx-code.pdf details="Code documentation" RELOC/doc/latex/siunitx/siunitx-table.pdf RELOC/doc/latex/siunitx/siunitx.pdf details="User manual" -srccontainersize 104160 -srccontainerchecksum 111990ef48d9871dac3bb2380f3389ae559f573dc62eaf6413423450253dafb6be8ac874a31b93c1551c0c2c33f47313d72a44a915ada8ba00859b526e44ecca +srccontainersize 104500 +srccontainerchecksum 57c71d35c6154e42812a218d0a3934b4ac006dedd8f49c678c58409366d8b8958757452a605ed03032fbd171550e55e18adb8a28fac011b520cf47287ac48661 srcfiles size=160 RELOC/source/latex/siunitx/siunitx-abbreviation.dtx RELOC/source/latex/siunitx/siunitx-angle.dtx @@ -274316,7 +274353,7 @@ catalogue-contact-repository https://github.com/josephwright/siunitx catalogue-ctan /macros/latex/contrib/siunitx catalogue-license lppl1.3c catalogue-topics units scientific-docs expl3 -catalogue-version 3.0.9 +catalogue-version 3.0.10 name skak category Package @@ -284907,21 +284944,21 @@ catalogue-version 1.0a name suftesi category Package -revision 59334 +revision 59481 shortdesc A document class for typesetting theses, books and articles relocated 1 longdesc The class can be used to typeset any kind of book (originally longdesc designed for use in the humanities). -containersize 14828 -containerchecksum bfe0b60fc975597b73ffb1bc5d28463381c5692213b37428c4163eb80a13966d4052214ea237e3989da1085b978cde38b712ecc4cc70e6ede3931d1264f48afb -doccontainersize 1031732 -doccontainerchecksum 6158000f99b0c6a586300c77c5db882d7a9c68dec4aff8008d27f595e04552f84a18181b5f040b8ac60b33d4defef77ba6740c3386afe8f2b61e5a65368eea1f -docfiles size=373 +containersize 14812 +containerchecksum fa6db5918df008528f260dc75a33ec228e529595bf0ff4cdb7e336ac84cd7485302665c58fd845cc4316f2a35280907b4c9f643c8039e7b8fbeeb97be678e578 +doccontainersize 1040992 +doccontainerchecksum 7424482f897b8c77f7611e6f3af4dea52a0b0b49925dbf6db9c17079b0906a038d4b10d23f384f8480432ed7b84382a02e9a32ac85442fef16fee13dd885c900 +docfiles size=375 RELOC/doc/latex/suftesi/README details="Readme" RELOC/doc/latex/suftesi/suftesi.pdf details="Package documentation" language="en" RELOC/doc/latex/suftesi/templates.zip -srccontainersize 42744 -srccontainerchecksum c02f91b0887ab7b48f1332574ef5074322d697ed7c8eeeef584ee3867845a528ad7c123115dd2f119af7741dc4c5c50418c4a73b6824f22add8aac92dceeb6d2 +srccontainersize 42784 +srccontainerchecksum 2c15995a032a911f65d3473c79056b55e0368aa903ac33ea462ea3fce1bb90f072403a10f3486ea39a6b54de0aeb3111e2d4d58671ea14d058e33414837b41cf srcfiles size=57 RELOC/source/latex/suftesi/suftesi.dtx runfiles size=25 @@ -284929,7 +284966,7 @@ runfiles size=25 catalogue-ctan /macros/latex/contrib/suftesi catalogue-license lppl1.3 catalogue-topics class book-pub dissertation -catalogue-version 3.1.1 +catalogue-version 3.1.2 name sugconf category Package @@ -287054,7 +287091,7 @@ catalogue-version 0.1 name tabularray category Package -revision 59349 +revision 59482 shortdesc Typeset tabulars and arrays with LaTeX3 relocated 1 longdesc LaTeX tables are implemented using TeX commands such as @@ -287069,15 +287106,16 @@ longdesc typeset the entire table. Under the premise of being compatible longdesc with the basic syntax of LaTeX2 tables, this macro package will longdesc completely separate the content and style of the table, and the longdesc style of the table can be completely set in keyval way. -containersize 19188 -containerchecksum d38b96848673a583fbbea5c7769549bd79b8b06b9ac7d604352327818ace6cd1e73cc2b2f9dda7cc1d16feb986f736e2b7848a0c6f0c267d9b0ebe103c3b763d -doccontainersize 343460 -doccontainerchecksum d9321921b3d4ed86d7f2c0f0c241a55e5e15caccad15427ef3679fa88ecebd53b7829016a98cc90249f7067e26f98a62993ccade85c2ad497717c3b023bf99f7 -docfiles size=105 +containersize 22316 +containerchecksum fbc797545d440c37b12193cb0b3d0ee7e970deb01c00b80d98ef0591ffc59ab01ddcbb28d6d8edf53313c3bd24abc4c87196effa5f920b8c258db74c9b1979fc +doccontainersize 366924 +doccontainerchecksum fc6058428e8d51a018534ef60144683009ae190c9ddfdcc679d6d5b6e5a660ab87da7313bbf12b48afb3597784b5b04c656a7f26eaa60afb9fabd6bb9709eb76 +docfiles size=112 RELOC/doc/latex/tabularray/README details="Readme" RELOC/doc/latex/tabularray/tabularray.pdf details="Package documentation" RELOC/doc/latex/tabularray/tabularray.tex -runfiles size=36 +runfiles size=75 + RELOC/tex/latex/tabularray/tabularray-2021.sty RELOC/tex/latex/tabularray/tabularray.sty catalogue-contact-bugs https://github.com/lvjr/tabularray/issues catalogue-contact-home https://lvjr.bitbucket.io/tabularray.html @@ -287086,7 +287124,7 @@ catalogue-contact-support https://github.com/lvjr/tabularray/discussions catalogue-ctan /macros/latex/contrib/tabularray catalogue-license lppl1.3 catalogue-topics table expl3 -catalogue-version 2021J +catalogue-version 2021K name tabulary category Package @@ -299938,7 +299976,7 @@ docfiles size=376 name texlive-scripts category TLCore -revision 59443 +revision 59470 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. @@ -299946,10 +299984,10 @@ depend texlive-scripts.ARCH depend texlive.infra execute addMap mathpple.map postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat -containersize 107952 -containerchecksum 7e226de755a3fd30e977ab4d46d099dcef22bd485883127da7d471db9bcb1c9798326097a1f4b63a68487e293942158f0d6fc4effa3815d7cf4eb2052e8fff25 -doccontainersize 397652 -doccontainerchecksum 18545d6840d606c858297d230aeeb7568226372a68356ba416dcceac17f7bae3f977b959b0865d34e13738991ed1c0a54776a464e2f7dd858b9732ddbf033b16 +containersize 107992 +containerchecksum 7e7bcc2b78f069dc2746d7aa94c9bd0a4360a284b88282c6eb1070cf229a28df5cb78345e6f922567c3a1df7b3257b7cb4b531d8aa6407b11a03ed86604a04f0 +doccontainersize 397588 +doccontainerchecksum 479b8d1c90792c07ec755996ca0ed206c31d293a7567d08b531a856eeb8654632d0f330c84e29922bf81b9214a8b0c5364c43592ee40287e797438c1f43c1516 docfiles size=490 doc.html texmf-dist/doc/man/man1/fmtutil-sys.1 @@ -313338,7 +313376,7 @@ catalogue-version 2.142 name todonotes category Package -revision 58998 +revision 59465 shortdesc Marking things to do in a LaTeX document relocated 1 longdesc The package lets the user mark things to do later, in a simple @@ -313348,11 +313386,11 @@ depend pgf depend tools depend xcolor depend xkeyval -containersize 4760 -containerchecksum 949090dd8738c5a36e2040e25304d423847e94c1bdd7a45f51978bf085c1bd1dc9e274d53b8f671866e9a35d518193579a2c40fd66d3480ac25c9b17232451ee -doccontainersize 431988 -doccontainerchecksum 8df01894218cd935bc0fb9b454caf041643bb716650379a11178dd2db6e3c0b20ddc534a06b4546fa8d12694122bc419c8417e98218940019a74ecfe42a51b77 -docfiles size=113 +containersize 4772 +containerchecksum 78f84bcaf613003f694dfaddff2631cfe34c081ec5aac576a267f99940abcca1c8c71dc801e8df295c585a4db06517e5cce4671aef4188b81feba4be1ed6eccb +doccontainersize 443836 +doccontainerchecksum 89b61bb5630846a7cf739f39cc43a4e08890a4b0af06c884a60d9ac30068044c89cb99578aefe3b08c5761a412e524dacd79b028e69430d87ec17493b42ab7eb +docfiles size=119 RELOC/doc/latex/todonotes/README details="Readme" RELOC/doc/latex/todonotes/examples/alterAppearenceOfListOfTodos.pdf RELOC/doc/latex/todonotes/examples/alterAppearenceOfListOfTodos.tex @@ -313361,9 +313399,9 @@ docfiles size=113 RELOC/doc/latex/todonotes/examples/saveColorByUsingLayers.pdf RELOC/doc/latex/todonotes/examples/saveColorByUsingLayers.tex RELOC/doc/latex/todonotes/todonotes.pdf details="Package documentation" -srccontainersize 18416 -srccontainerchecksum e46e9a2f7ec6fad3b455664e37ca2111b965255f7a81274834b4aadf9c930d116c20347b5b750adc0c5ef67b9928051ed5cb2182eeea131632acf54192a157ca -srcfiles size=20 +srccontainersize 18812 +srccontainerchecksum e7bf0b61f1ce386b727f54288d1c6486fdb784fb7d7fe42e5a86f0815766df33881214579051c57325d6963fa7e073469ce488aeca816f7566275318e171fecc +srcfiles size=21 RELOC/source/latex/todonotes/todonotes.dtx RELOC/source/latex/todonotes/todonotes.ins runfiles size=6 @@ -313374,7 +313412,7 @@ catalogue-contact-repository https://github.com/henrikmidtiby/todonotes catalogue-ctan /macros/latex/contrib/todonotes catalogue-license lppl1.3 catalogue-topics notes editorial -catalogue-version 1.1.4 +catalogue-version 1.1.5 name tokcycle category Package diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 index 312dd5e4f1..f3dcd6fc58 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 @@ -1 +1 @@ -14b2a2f477a44592e32b2db9ffe0762c texlive.tlpdb +965904a66568f3b489e16c9592665cf8 texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 index 39c12e7b01..033510db6f 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 @@ -1 +1 @@ -ec351353eb9452b104cffcd9cabf0c6e51c016e5ffaedd566684594ed459e0965f7c9bc261310effde145fee0423db67dc2bfab876471a2d3672d589baa8cba0 texlive.tlpdb +a6fa6f40d6c7c87d022d2924a9bd1819e1a6b4188709faf1e8051d538b22c99a7d13f14b90f1511c3b28637c6766c98c371e992a22750e85acedeab3f225d426 texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc index 9787347826..ba87d18dd4 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc @@ -1,10 +1,10 @@ -----BEGIN PGP SIGNATURE----- -iQEcBAEBCgAGBQJguWusAAoJEEzhh34ZQ4xwxvgH/iq9tkkzcQliywUestRveUZN -4pE7f6yUosF/IcYwi3TWT2n6dq1Ax99OEuSiXFWqCvnTkrJPw5X7V0IGZ7SYmzyR -/fL39PvsBIWzbJdVnwnvHdtfpNQfAWFWLVDQasMj4vDpQRPWVM2025N/ANclSuc1 -h8tcjdZi1SgE0xLQx5FgO7Aaa4strxXI7pKFSZcGB/LOO2OR1aJgN/JnRd7zSUYI -vLwXDwVn2aWwp91FR220NRU0ybOFRfw8qPK9cCxDqIHvLZO9woBtVvsRHdvIBTnP -YQfuyYMP6GLm9tC2zb9GN5A6jlrlJyxD5Kuu/D4AmpwiQbxMTWwaSe5eSkpbp/c= -=T1Q4 +iQEcBAEBCgAGBQJgvA6ZAAoJEEzhh34ZQ4xwQOYH/0CXNjkrT8yMOzYBlgp7cJ1q +tnEDZl4iiRAM0tGo0bdvuVR9Am1r9QppUw88cgWV0Tfz4iNi9JgBiwNqEGbz0oTL +djQZbA2dWmHCuUDgm9OUSiruJyp0fKEGX80PfqL2wZqBRGaBMKeoJWu6VXa8r4+y +T4PDgW8k7+5zoYqS4jSWq2jU+bc0n2xy5VgBlhCiUv+Cgv93bLpU6M+zAUQx83NJ +Rtnd5j1V8ws0HAbvZyqUNYbUlyiFN9rjxalMr94Xzo2ZGFurRVA4dqGuaSi00EWB +NWF8xi/De5DUH/Hrro+zktDK2VfeqtdkygB0rySD2pQktQIXPM3N5NiTJW4L2yU= +=2JXs -----END PGP SIGNATURE----- diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz index adf48b0788..90c2a70265 100644 Binary files a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz and b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz differ diff --git a/systems/win32/miktex/doc/miktex.pdf b/systems/win32/miktex/doc/miktex.pdf index 2dbc4d80e9..c8992239fe 100644 Binary files a/systems/win32/miktex/doc/miktex.pdf and b/systems/win32/miktex/doc/miktex.pdf differ diff --git a/systems/win32/miktex/setup/rpm/fedora-34.repo b/systems/win32/miktex/setup/rpm/fedora-34.repo new file mode 100644 index 0000000000..625825760e --- /dev/null +++ b/systems/win32/miktex/setup/rpm/fedora-34.repo @@ -0,0 +1,5 @@ +[miktex-fedora-34] +name=MiKTeX Fedora 34 +baseurl=https://miktex.org/download/fedora/34/ +enabled=1 +gpgcheck=1 diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma index 2027b9a294..00608fd2e9 100644 Binary files a/systems/win32/miktex/tm/packages/files.csv.lzma and b/systems/win32/miktex/tm/packages/files.csv.lzma differ diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma index 8ded2e77e1..028bad87c4 100644 Binary files a/systems/win32/miktex/tm/packages/next/files.csv.lzma and b/systems/win32/miktex/tm/packages/next/files.csv.lzma differ diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini index 4b53288f14..83e93fabf8 100644 --- a/systems/win32/miktex/tm/packages/next/pr.ini +++ b/systems/win32/miktex/tm/packages/next/pr.ini @@ -1,13 +1,13 @@ [repository] -date=1622837710 +date=1622924095 lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9 -lstdigest=e0ed4c6ce1aea09e01c06f229bc2abb0 -numpkg=4105 +lstdigest=f2f32a622c6988f3517be52b8fb81022 +numpkg=4115 relstate=next -version=7825 +version=7826 ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows. ;;;;-----BEGIN MIKTEX SIGNATURE----- -;;;; signature/miktex: wZqbwUYdb9drr8BUwN8tOskbDQN7+5gYui7Y3qXPLLB8X6BlJoWcUUvVnv/ix7tc8YZo3sB10V3EsOHFazU0eDxYB2WqMuRL1APMN1EUiaLBC+veDeYz9yBd60adzY/YEmJY11OCn/xkuxTVRLaJ5ILx6jS/+EznBzE5QNh9eTDsXXIsp+AvonrR3Pij/f9Qj1DjPTm8lmOOIoDnt3kHZ89s/UUoUPVP/hghAs01IwnfV1WQfTzHCctRjMXjA1YAdyUyE3piwcuy0ngia8IDZl5/1DLLRmDBmfL7+ZRiMX1dSehJPWCFmFrnCsTRcrpHtcML7g984dv8Rs0sM88C4g== +;;;; signature/miktex: gjUb6Jtwtb7Hjoz1pr3lddys38O2I2g+YGuuuzYpJ3niJaq9CJySrmKtOAufRdzAnkNktT9Mgczi6ddQPWM1JBpVho26PG/siFfq2x6bU957np13rhAYFdkfBoppJ0lVzta3BzZjikGnbyf2rpN18lUvMyMsLgVFplvhTgpZhn+5cx9h5CWvnpl1dVMnSeHY6jt5vSjlgElm1EOLPYV86+zsRdgNWqA8YAh1SuXH5T6k5F3ibn+MAPSguqhW1KJ4WT2g3tCxnTYpDKX0udBGt3JfoKqdX97wUI9F9QmnE049g9RvDNCOnhRXjqGasaLw7qSYDPXrRII/xz4izF8cIA== ;;;;-----END MIKTEX SIGNATURE----- diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini index 04a133e102..f820ffec88 100644 --- a/systems/win32/miktex/tm/packages/pr.ini +++ b/systems/win32/miktex/tm/packages/pr.ini @@ -1,13 +1,13 @@ [repository] -date=1622837520 -lastupd=bjfuthesis derivative dtk-bibliography easybook expkv expkv-cs newtx ocgx2 optex tex4ht tuda-ci uplatex amsmath babel biblatex-cv changes circuitikz graphics graphics-def hep-paper -lstdigest=222f69237a6b43323c8c546621965917 -numpkg=4105 +date=1622923911 +lastupd=l3kernel l3kernel__doc l3kernel__source babel babel__doc babel__source ltxbase ltxbase__doc ltxbase__source aiaa__doc aiaa__source pst-geo__doc pst-geo__source aiaa acrotex easybook fontawesome miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 +lstdigest=4fe104762199064671ab3e6064fc0e99 +numpkg=4115 relstate=stable -version=7825 +version=7826 ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows. ;;;;-----BEGIN MIKTEX SIGNATURE----- -;;;; signature/miktex: JFIJXnfsbyugSeK17tTSuxCqpH/wzvkEfThETTu5bLxBxlokVaAACAYsXc9S/it4cJiKeFTtl82IdcwELijZ0byFsRa5oPoiGLcITYh1T8d/O5HyMXh1BGPEfv+9aH2PSC10HocRqh2GoOtTBzYp/GLq6r2/WO6/+wMguVIVyZd43us4jj5TZ74c6pdovvM00QoUvmG+4Zq6eGyW0ZZZh3WPKCHfGLWlnfVbe2iDr2o6xAkNHbO5A5Kw/Ma9hC/pbFUZiqyougdTmgUABxLKzLKwzYb+T00uG1r/1bZjXNDCPYr/EZttOMJ30Mb/1z0OAbZSMlxKDAaInhO450xStw== +;;;; signature/miktex: AHwXOZr4maXmfct6E4P1nBhOFNrM/ZAcsxruNSEY59Q7L3Bd7XzspyxRjZWQqijQZ6v0/jlfkzWvn7Dx6SVb0AO9VGLKLUolex61cqreHHTaFlxtK/2jsa1wil8DIdAwH8jaMNvJ8r+7zNe53PFo+kcYt4AMiuLfQ5NrSKQ32Yg2epnO4o/IVvsxaxhSKDIPSVY9tMEhBfbstrNKDU/2svPjGbDHnjnzWhHmzK+Iap0HR7GiCBVdYAsYrvSW+zX1r34JREqigUmWBHnKzGJ+fp9UOrJGCizdWMNrnIPzpBhhe58DnSbgFGNeBnRdgl+vKrHe4GyI7DddbmQg4YMvfw== ;;;;-----END MIKTEX SIGNATURE----- diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog index c847610e9c..a7ec86ad0d 100644 --- a/systems/win32/w32tex/ChangeLog +++ b/systems/win32/w32tex/ChangeLog @@ -1,5 +1,33 @@ W32TeX (x86 & x64) ChangeLog +[2021/06/05] +(01) dvipdfm-w32.tar.xz + Update dvipdfmx.dll. Update a map file. +(02) dvipsk-w32.tar.xz + Update a map file. +(03) ltxpkgs.tar.xz + Update fontawesome5, siunitx and todonotes. +(04) mftools.tar.xz + Update a map file. +(05) platex.tar.xz + Update platex. +(06) pdftex-w32.tar.xz + Update format files. +(07) ptex-ng-w32.tar.xz + Update libdpx. Update format files. +(08) ptex-w32.tar.xz + Update format files. +(09) uptex-w32.tar.x + Update format files. +(10) xetex-w32.tar.xz + Update dvipdfmx.dll. +(11) win64/dvipdfm-w64.tar.xz + Update dvipdfmx.dll. +(12) win64/ptex-ng-w64.tar.xz + Update libdpx. +(13) win64/xetex-w64.tar.xz + Update dvipdfmx.dll. + [2021/06/04] (01) latex-dev.tar.xz Update format files. diff --git a/timestamp b/timestamp index c67f285579..752b0a74ab 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: -2021-06-05-02-02 +2021-06-06-02-02 -- cgit v1.2.3