diff options
291 files changed, 12120 insertions, 4885 deletions
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 Binary files differindex 8f7fa40ced..b3f5cd180c 100644 --- a/FILES.byname.gz +++ b/FILES.byname.gz 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 Binary files differindex 7d9d7b272f..602077c000 100644 --- a/language/japanese/pxbase/pxbabel.pdf +++ b/language/japanese/pxbase/pxbabel.pdf 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 %----</upTeX> +%--------------------------------------- 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{<lang_id>} 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 Binary files differindex b763b6bda8..1ed2d7cf4f 100644 --- a/macros/latex-dev/base/alltt.pdf +++ b/macros/latex-dev/base/alltt.pdf diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf Binary files differindex dea65fdbf8..496657f44e 100644 --- a/macros/latex-dev/base/cfgguide.pdf +++ b/macros/latex-dev/base/cfgguide.pdf 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 <David.Carlisle@latex-project.org> + + * ltclass.dtx: Initialise \@raw@classoptionslist to \relax to + match \@classoptionslist + +2021-05-30 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * doc.dtx (subsection{Macros for the `documentation parts'}): + Use same error message text as in format + +2021-05-26 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltdefns.dtx (subsection{Robust commands and protect}): + Normalize error message in \MakeRobust + +2021-05-26 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx: + Remove deprecated \DeclareDefaultHookLabel for good. + +2021-05-25 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * lthooks.dtx, ltfilehook.dtx: + Normalized some error message texts + +2021-05-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * 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 <Frank.Mittelbach@latex-project.org> + + * ltoutput.dtx: normalize the error commands, always use + \@latex@error not \@latexerr + 2021-04-29 Frank Mittelbach <Frank.Mittelbach@latex-project.org> * 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 <Marcel.Krueger@latex-project.org> * 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 Binary files differindex cf7d562b56..ba722ade83 100644 --- a/macros/latex-dev/base/classes.pdf +++ b/macros/latex-dev/base/classes.pdf diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf Binary files differindex d41d2f7dc7..1be79a4d94 100644 --- a/macros/latex-dev/base/clsguide.pdf +++ b/macros/latex-dev/base/clsguide.pdf diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf Binary files differindex 65eada2d18..661a4f3547 100644 --- a/macros/latex-dev/base/cmfonts.pdf +++ b/macros/latex-dev/base/cmfonts.pdf diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf Binary files differindex b81d5740dd..8b411f291a 100644 --- a/macros/latex-dev/base/cyrguide.pdf +++ b/macros/latex-dev/base/cyrguide.pdf 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 Binary files differindex b4b752d02f..e40bac6c17 100644 --- a/macros/latex-dev/base/doc.pdf +++ b/macros/latex-dev/base/doc.pdf diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf Binary files differindex 1f93adfd24..535c38f3f0 100644 --- a/macros/latex-dev/base/docstrip.pdf +++ b/macros/latex-dev/base/docstrip.pdf diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf Binary files differindex 2682e5e3a1..7174fe634d 100644 --- a/macros/latex-dev/base/encguide.pdf +++ b/macros/latex-dev/base/encguide.pdf diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf Binary files differindex c15633e2c5..d814296c9e 100644 --- a/macros/latex-dev/base/exscale.pdf +++ b/macros/latex-dev/base/exscale.pdf diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf Binary files differindex d8149b7da8..5353d938f3 100644 --- a/macros/latex-dev/base/fix-cm.pdf +++ b/macros/latex-dev/base/fix-cm.pdf diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf Binary files differindex c498f9f449..b773b23001 100644 --- a/macros/latex-dev/base/fntguide.pdf +++ b/macros/latex-dev/base/fntguide.pdf diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf Binary files differindex df0b482d62..223c4fc9d8 100644 --- a/macros/latex-dev/base/graphpap.pdf +++ b/macros/latex-dev/base/graphpap.pdf diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf Binary files differindex a756833b7e..cb731ce0ec 100644 --- a/macros/latex-dev/base/ifthen.pdf +++ b/macros/latex-dev/base/ifthen.pdf diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf Binary files differindex ca53fac3a5..d91193b109 100644 --- a/macros/latex-dev/base/inputenc.pdf +++ b/macros/latex-dev/base/inputenc.pdf diff --git a/macros/latex-dev/base/latexchanges.pdf b/macros/latex-dev/base/latexchanges.pdf Binary files differindex 3e4f2aaa9d..fa0be13cc9 100644 --- a/macros/latex-dev/base/latexchanges.pdf +++ b/macros/latex-dev/base/latexchanges.pdf diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf Binary files differindex cdce0fb74f..f2e104646e 100644 --- a/macros/latex-dev/base/latexrelease.pdf +++ b/macros/latex-dev/base/latexrelease.pdf diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf Binary files differindex 5fb4a09541..c5f5f7ccab 100644 --- a/macros/latex-dev/base/latexsym.pdf +++ b/macros/latex-dev/base/latexsym.pdf diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf Binary files differindex 6cc60fec76..ff53c048ee 100644 --- a/macros/latex-dev/base/lb2.pdf +++ b/macros/latex-dev/base/lb2.pdf diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf Binary files differindex 2431b6d81f..069855100a 100644 --- a/macros/latex-dev/base/letter.pdf +++ b/macros/latex-dev/base/letter.pdf diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf Binary files differindex 2a58b0470e..fce107fd9a 100644 --- a/macros/latex-dev/base/lgc2.pdf +++ b/macros/latex-dev/base/lgc2.pdf diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf Binary files differindex dfccc5d5eb..4e5547d356 100644 --- a/macros/latex-dev/base/lppl.pdf +++ b/macros/latex-dev/base/lppl.pdf 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 Binary files differindex ccc055e33b..9c523ad313 100644 --- a/macros/latex-dev/base/ltcmdhooks-code.pdf +++ b/macros/latex-dev/base/ltcmdhooks-code.pdf diff --git a/macros/latex-dev/base/ltcmdhooks-doc.pdf b/macros/latex-dev/base/ltcmdhooks-doc.pdf Binary files differindex 86cc6e3e96..dd70bd2240 100644 --- a/macros/latex-dev/base/ltcmdhooks-doc.pdf +++ b/macros/latex-dev/base/ltcmdhooks-doc.pdf 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} %</2ekernel> %<latexrelease>\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 Binary files differindex ef767fa207..c17d10e276 100644 --- a/macros/latex-dev/base/ltfilehook-code.pdf +++ b/macros/latex-dev/base/ltfilehook-code.pdf diff --git a/macros/latex-dev/base/ltfilehook-doc.pdf b/macros/latex-dev/base/ltfilehook-doc.pdf Binary files differindex 28e0f8a5f2..211e7f8549 100644 --- a/macros/latex-dev/base/ltfilehook-doc.pdf +++ b/macros/latex-dev/base/ltfilehook-doc.pdf 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 Binary files differindex b50be3475f..a97b1e1923 100644 --- a/macros/latex-dev/base/lthooks-code.pdf +++ b/macros/latex-dev/base/lthooks-code.pdf diff --git a/macros/latex-dev/base/lthooks-doc.pdf b/macros/latex-dev/base/lthooks-doc.pdf Binary files differindex 369fa25069..6446eaa88e 100644 --- a/macros/latex-dev/base/lthooks-doc.pdf +++ b/macros/latex-dev/base/lthooks-doc.pdf 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 Binary files differindex 3b803f3383..84af40d945 100644 --- a/macros/latex-dev/base/ltluatex.pdf +++ b/macros/latex-dev/base/ltluatex.pdf diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf Binary files differindex 02b805b97d..fd05f9537f 100644 --- a/macros/latex-dev/base/ltnews.pdf +++ b/macros/latex-dev/base/ltnews.pdf diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf Binary files differindex 0f16508cc2..e91726a6dd 100644 --- a/macros/latex-dev/base/ltnews01.pdf +++ b/macros/latex-dev/base/ltnews01.pdf diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf Binary files differindex 718558863a..afbca53625 100644 --- a/macros/latex-dev/base/ltnews02.pdf +++ b/macros/latex-dev/base/ltnews02.pdf diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf Binary files differindex be857e7ee4..11ab1ee093 100644 --- a/macros/latex-dev/base/ltnews03.pdf +++ b/macros/latex-dev/base/ltnews03.pdf diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf Binary files differindex 005348dff7..bcf06e380c 100644 --- a/macros/latex-dev/base/ltnews04.pdf +++ b/macros/latex-dev/base/ltnews04.pdf diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf Binary files differindex 7008d76f68..f9343d862b 100644 --- a/macros/latex-dev/base/ltnews05.pdf +++ b/macros/latex-dev/base/ltnews05.pdf diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf Binary files differindex 538c9768f3..b6b42938fc 100644 --- a/macros/latex-dev/base/ltnews06.pdf +++ b/macros/latex-dev/base/ltnews06.pdf diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf Binary files differindex d6b706b906..23f3bebaec 100644 --- a/macros/latex-dev/base/ltnews07.pdf +++ b/macros/latex-dev/base/ltnews07.pdf diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf Binary files differindex 9931ddee80..5dbe32de57 100644 --- a/macros/latex-dev/base/ltnews08.pdf +++ b/macros/latex-dev/base/ltnews08.pdf diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf Binary files differindex 616c594eb8..9158a8a6de 100644 --- a/macros/latex-dev/base/ltnews09.pdf +++ b/macros/latex-dev/base/ltnews09.pdf diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf Binary files differindex 7e0f03f1cc..5c583fa62e 100644 --- a/macros/latex-dev/base/ltnews10.pdf +++ b/macros/latex-dev/base/ltnews10.pdf diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf Binary files differindex 6ef42aca9f..b7b4299fee 100644 --- a/macros/latex-dev/base/ltnews11.pdf +++ b/macros/latex-dev/base/ltnews11.pdf diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf Binary files differindex 3ea3f11d6a..7d483314d2 100644 --- a/macros/latex-dev/base/ltnews12.pdf +++ b/macros/latex-dev/base/ltnews12.pdf diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf Binary files differindex a94411b8c2..bcc2ebf91c 100644 --- a/macros/latex-dev/base/ltnews13.pdf +++ b/macros/latex-dev/base/ltnews13.pdf diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf Binary files differindex 79be2aab4d..ebb1a11b88 100644 --- a/macros/latex-dev/base/ltnews14.pdf +++ b/macros/latex-dev/base/ltnews14.pdf diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf Binary files differindex aa4ef31e3e..422230b891 100644 --- a/macros/latex-dev/base/ltnews15.pdf +++ b/macros/latex-dev/base/ltnews15.pdf diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf Binary files differindex a11d785c60..33b870c2c5 100644 --- a/macros/latex-dev/base/ltnews16.pdf +++ b/macros/latex-dev/base/ltnews16.pdf diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf Binary files differindex b25ec2b3b4..e426d8f803 100644 --- a/macros/latex-dev/base/ltnews17.pdf +++ b/macros/latex-dev/base/ltnews17.pdf diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf Binary files differindex 7e926718fb..1b9d9720a8 100644 --- a/macros/latex-dev/base/ltnews18.pdf +++ b/macros/latex-dev/base/ltnews18.pdf diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf Binary files differindex 96f3be4711..ee9d4d9faf 100644 --- a/macros/latex-dev/base/ltnews19.pdf +++ b/macros/latex-dev/base/ltnews19.pdf diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf Binary files differindex 5b2ed0ee07..91ffd73c53 100644 --- a/macros/latex-dev/base/ltnews20.pdf +++ b/macros/latex-dev/base/ltnews20.pdf diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf Binary files differindex e8dfbc7c0f..2d6f14527f 100644 --- a/macros/latex-dev/base/ltnews21.pdf +++ b/macros/latex-dev/base/ltnews21.pdf diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf Binary files differindex 240c83b6c6..7e75b681d7 100644 --- a/macros/latex-dev/base/ltnews22.pdf +++ b/macros/latex-dev/base/ltnews22.pdf diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf Binary files differindex 9807ac1a7a..638b76a2c8 100644 --- a/macros/latex-dev/base/ltnews23.pdf +++ b/macros/latex-dev/base/ltnews23.pdf diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf Binary files differindex 0aa98e091e..f3be86d42e 100644 --- a/macros/latex-dev/base/ltnews24.pdf +++ b/macros/latex-dev/base/ltnews24.pdf diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf Binary files differindex 3393251fb8..f88b90f53e 100644 --- a/macros/latex-dev/base/ltnews25.pdf +++ b/macros/latex-dev/base/ltnews25.pdf diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf Binary files differindex b6da2cc18d..1f27e49641 100644 --- a/macros/latex-dev/base/ltnews26.pdf +++ b/macros/latex-dev/base/ltnews26.pdf diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf Binary files differindex d3f0ab919f..a2037f6688 100644 --- a/macros/latex-dev/base/ltnews27.pdf +++ b/macros/latex-dev/base/ltnews27.pdf diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf Binary files differindex d6670e6a43..72d813e6ac 100644 --- a/macros/latex-dev/base/ltnews28.pdf +++ b/macros/latex-dev/base/ltnews28.pdf diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf Binary files differindex 60644a30e4..ca2747c438 100644 --- a/macros/latex-dev/base/ltnews29.pdf +++ b/macros/latex-dev/base/ltnews29.pdf diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf Binary files differindex 87651bc456..4cb04aceef 100644 --- a/macros/latex-dev/base/ltnews30.pdf +++ b/macros/latex-dev/base/ltnews30.pdf diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf Binary files differindex f50f366566..445abc7e11 100644 --- a/macros/latex-dev/base/ltnews31.pdf +++ b/macros/latex-dev/base/ltnews31.pdf diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf Binary files differindex 51c980520e..d4494fdd6c 100644 --- a/macros/latex-dev/base/ltnews32.pdf +++ b/macros/latex-dev/base/ltnews32.pdf diff --git a/macros/latex-dev/base/ltnews33.pdf b/macros/latex-dev/base/ltnews33.pdf Binary files differindex 486fd7b9ab..305c7aed93 100644 --- a/macros/latex-dev/base/ltnews33.pdf +++ b/macros/latex-dev/base/ltnews33.pdf 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 @@ %</trace> \@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 %</trace> \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 Binary files differindex 8984f1ccb5..a9b55237f1 100644 --- a/macros/latex-dev/base/ltpara-code.pdf +++ b/macros/latex-dev/base/ltpara-code.pdf diff --git a/macros/latex-dev/base/ltpara-doc.pdf b/macros/latex-dev/base/ltpara-doc.pdf Binary files differindex c8bff05546..f383268f22 100644 --- a/macros/latex-dev/base/ltpara-doc.pdf +++ b/macros/latex-dev/base/ltpara-doc.pdf 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 Binary files differindex 828e444c2f..2572de0e02 100644 --- a/macros/latex-dev/base/ltshipout-code.pdf +++ b/macros/latex-dev/base/ltshipout-code.pdf diff --git a/macros/latex-dev/base/ltshipout-doc.pdf b/macros/latex-dev/base/ltshipout-doc.pdf Binary files differindex 4c8457428f..7fece645c8 100644 --- a/macros/latex-dev/base/ltshipout-doc.pdf +++ b/macros/latex-dev/base/ltshipout-doc.pdf 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 @@ %</2ekernel> %<latexrelease>\edef\latexreleaseversion %<*2ekernel|latexrelease> - {2021-06-01} + {2021-12-01} %</2ekernel|latexrelease> %<*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 Binary files differindex 2788cb0a36..eac1bd7868 100644 --- a/macros/latex-dev/base/ltx3info.pdf +++ b/macros/latex-dev/base/ltx3info.pdf diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf Binary files differindex aa2a071366..7ee087bfd9 100644 --- a/macros/latex-dev/base/ltxdoc.pdf +++ b/macros/latex-dev/base/ltxdoc.pdf diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf Binary files differindex 42d3a434e9..bcc83fe99d 100644 --- a/macros/latex-dev/base/makeindx.pdf +++ b/macros/latex-dev/base/makeindx.pdf diff --git a/macros/latex-dev/base/manual.pdf b/macros/latex-dev/base/manual.pdf Binary files differindex cb9024f559..af10de35fc 100644 --- a/macros/latex-dev/base/manual.pdf +++ b/macros/latex-dev/base/manual.pdf diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf Binary files differindex 0edb139e19..9fed1a2afa 100644 --- a/macros/latex-dev/base/modguide.pdf +++ b/macros/latex-dev/base/modguide.pdf diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf Binary files differindex 8e6a4987f3..cd1c7a0cb6 100644 --- a/macros/latex-dev/base/nfssfont.pdf +++ b/macros/latex-dev/base/nfssfont.pdf diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf Binary files differindex b0d4032019..fe4a87ed37 100644 --- a/macros/latex-dev/base/proc.pdf +++ b/macros/latex-dev/base/proc.pdf diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf Binary files differindex 3116ccc852..2880f7e621 100644 --- a/macros/latex-dev/base/slides.pdf +++ b/macros/latex-dev/base/slides.pdf diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf Binary files differindex faa2053db2..88753cd798 100644 --- a/macros/latex-dev/base/slifonts.pdf +++ b/macros/latex-dev/base/slifonts.pdf diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf Binary files differindex fbc7f5ac41..1be35a8dfd 100644 --- a/macros/latex-dev/base/source2e.pdf +++ b/macros/latex-dev/base/source2e.pdf diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf Binary files differindex 2156a292b9..72a10a0a10 100644 --- a/macros/latex-dev/base/syntonly.pdf +++ b/macros/latex-dev/base/syntonly.pdf diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf Binary files differindex dd55f4b589..a4fd67964c 100644 --- a/macros/latex-dev/base/tlc2.pdf +++ b/macros/latex-dev/base/tlc2.pdf diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf Binary files differindex 34f1ca3ce0..a9acd70daf 100644 --- a/macros/latex-dev/base/tulm.pdf +++ b/macros/latex-dev/base/tulm.pdf diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf Binary files differindex 80d5bc6a1e..0546617e22 100644 --- a/macros/latex-dev/base/usrguide.pdf +++ b/macros/latex-dev/base/usrguide.pdf diff --git a/macros/latex-dev/base/usrguide3.pdf b/macros/latex-dev/base/usrguide3.pdf Binary files differindex 3e2c599b39..84266a6d86 100644 --- a/macros/latex-dev/base/usrguide3.pdf +++ b/macros/latex-dev/base/usrguide3.pdf diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf Binary files differindex 625decf88d..6b0881842c 100644 --- a/macros/latex-dev/base/utf8ienc.pdf +++ b/macros/latex-dev/base/utf8ienc.pdf diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf Binary files differindex 7267cc5344..d0e4064414 100644 --- a/macros/latex-dev/base/webcomp.pdf +++ b/macros/latex-dev/base/webcomp.pdf 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. ----- <p>Copyright (C) 2001-2004, 2007, 2008, 2010, 2011, 2013 American Mathematical Society. <br /> -<p>Copyright (C) 2016-2020 The LaTeX Project and American Mathematical Society. <br /> +<p>Copyright (C) 2016-2021 The LaTeX Project and American Mathematical Society. <br /> 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 Binary files differindex 1cc7898f92..999a16ba0b 100644 --- a/macros/latex-dev/required/amsmath/amsbsy.pdf +++ b/macros/latex-dev/required/amsmath/amsbsy.pdf 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 Binary files differindex a69b03715c..4f885d5b9c 100644 --- a/macros/latex-dev/required/amsmath/amscd.pdf +++ b/macros/latex-dev/required/amsmath/amscd.pdf 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 Binary files differindex 7af209fae9..6282db6a6e 100644 --- a/macros/latex-dev/required/amsmath/amsgen.pdf +++ b/macros/latex-dev/required/amsmath/amsgen.pdf diff --git a/macros/latex-dev/required/amsmath/amsldoc.pdf b/macros/latex-dev/required/amsmath/amsldoc.pdf Binary files differindex ba52c32f76..373af4649a 100644 --- a/macros/latex-dev/required/amsmath/amsldoc.pdf +++ b/macros/latex-dev/required/amsmath/amsldoc.pdf 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 Binary files differindex 58751777c9..74b242c29a 100644 --- a/macros/latex-dev/required/amsmath/amsmath.pdf +++ b/macros/latex-dev/required/amsmath/amsmath.pdf 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 Binary files differindex a25d472d9a..4df94fefcc 100644 --- a/macros/latex-dev/required/amsmath/amsopn.pdf +++ b/macros/latex-dev/required/amsmath/amsopn.pdf 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 Binary files differindex 479942cd74..f3e0dab818 100644 --- a/macros/latex-dev/required/amsmath/amstext.pdf +++ b/macros/latex-dev/required/amsmath/amstext.pdf 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 Binary files differindex b0e0f66d37..c379472faf 100644 --- a/macros/latex-dev/required/amsmath/amsxtra.pdf +++ b/macros/latex-dev/required/amsmath/amsxtra.pdf 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 @@ -3,12 +3,21 @@ All changes above are only part of the development branch for the next release. ================================================================================ ######################### +# 2021-06-01 Release +######################### + +2021-04-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * amsmath.dtx (subsection{Preliminary macros}): + Use \protected for \\ variant (gh/548) + +######################### # 2020-10-01 Release ######################### 2020/09/23 Ulrike Fischer <Ulrike.Fischer@latex-project.org> * 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 Binary files differindex 31caecf259..b8ad174232 100644 --- a/macros/latex-dev/required/amsmath/subeqn.pdf +++ b/macros/latex-dev/required/amsmath/subeqn.pdf diff --git a/macros/latex-dev/required/amsmath/technote.pdf b/macros/latex-dev/required/amsmath/technote.pdf Binary files differindex d3403770f0..375db6b423 100644 --- a/macros/latex-dev/required/amsmath/technote.pdf +++ b/macros/latex-dev/required/amsmath/technote.pdf diff --git a/macros/latex-dev/required/amsmath/testmath.pdf b/macros/latex-dev/required/amsmath/testmath.pdf Binary files differindex 15fa991ee9..f11b508170 100644 --- a/macros/latex-dev/required/amsmath/testmath.pdf +++ b/macros/latex-dev/required/amsmath/testmath.pdf 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 <Frank.Mittelbach@latex-project.org> + + * 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 <Frank.Mittelbach@latex-project.org> * 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 Binary files differindex eecccbc8f6..eaf6567b15 100644 --- 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 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 <phelype.oleinik@latex-project.org> * 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 <Ulrike.Fischer@latex-project.org> * 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 Binary files differindex b4d0a03cd8..dd3985df0d 100644 --- a/macros/latex-dev/required/graphics/color.pdf +++ b/macros/latex-dev/required/graphics/color.pdf diff --git a/macros/latex-dev/required/graphics/drivers.pdf b/macros/latex-dev/required/graphics/drivers.pdf Binary files differindex 617f4f8ec3..c6af822ebb 100644 --- a/macros/latex-dev/required/graphics/drivers.pdf +++ b/macros/latex-dev/required/graphics/drivers.pdf diff --git a/macros/latex-dev/required/graphics/epsfig.pdf b/macros/latex-dev/required/graphics/epsfig.pdf Binary files differindex 7cdd87b5d0..fb40d308a9 100644 --- a/macros/latex-dev/required/graphics/epsfig.pdf +++ b/macros/latex-dev/required/graphics/epsfig.pdf diff --git a/macros/latex-dev/required/graphics/graphics.pdf b/macros/latex-dev/required/graphics/graphics.pdf Binary files differindex 7dea8f5a99..df54344b4b 100644 --- a/macros/latex-dev/required/graphics/graphics.pdf +++ b/macros/latex-dev/required/graphics/graphics.pdf diff --git a/macros/latex-dev/required/graphics/graphicx.pdf b/macros/latex-dev/required/graphics/graphicx.pdf Binary files differindex 56d9451077..6b1f0cccdb 100644 --- a/macros/latex-dev/required/graphics/graphicx.pdf +++ b/macros/latex-dev/required/graphics/graphicx.pdf diff --git a/macros/latex-dev/required/graphics/grfguide.pdf b/macros/latex-dev/required/graphics/grfguide.pdf Binary files differindex c6a4b2a5ca..49b150e493 100644 --- a/macros/latex-dev/required/graphics/grfguide.pdf +++ b/macros/latex-dev/required/graphics/grfguide.pdf diff --git a/macros/latex-dev/required/graphics/keyval.pdf b/macros/latex-dev/required/graphics/keyval.pdf Binary files differindex 41cbbcb3f8..b4ff7dbfd1 100644 --- a/macros/latex-dev/required/graphics/keyval.pdf +++ b/macros/latex-dev/required/graphics/keyval.pdf diff --git a/macros/latex-dev/required/graphics/lscape.pdf b/macros/latex-dev/required/graphics/lscape.pdf Binary files differindex 4caf895c6b..654015f72a 100644 --- a/macros/latex-dev/required/graphics/lscape.pdf +++ b/macros/latex-dev/required/graphics/lscape.pdf diff --git a/macros/latex-dev/required/graphics/rotating.pdf b/macros/latex-dev/required/graphics/rotating.pdf Binary files differindex b57235b7fe..a65a2c0f0b 100644 --- a/macros/latex-dev/required/graphics/rotating.pdf +++ b/macros/latex-dev/required/graphics/rotating.pdf diff --git a/macros/latex-dev/required/graphics/rotex.pdf b/macros/latex-dev/required/graphics/rotex.pdf Binary files differindex 9659ba3101..5f4321501f 100644 --- a/macros/latex-dev/required/graphics/rotex.pdf +++ b/macros/latex-dev/required/graphics/rotex.pdf diff --git a/macros/latex-dev/required/graphics/trig.pdf b/macros/latex-dev/required/graphics/trig.pdf Binary files differindex 5c1f68dffc..789a62c69a 100644 --- a/macros/latex-dev/required/graphics/trig.pdf +++ b/macros/latex-dev/required/graphics/trig.pdf 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 Binary files differindex 918b9bbe27..4a7e94d148 100644 --- a/macros/latex-dev/required/tools/afterpage.pdf +++ b/macros/latex-dev/required/tools/afterpage.pdf diff --git a/macros/latex-dev/required/tools/array.pdf b/macros/latex-dev/required/tools/array.pdf Binary files differindex 175a0b8dfe..2a0e38ba62 100644 --- a/macros/latex-dev/required/tools/array.pdf +++ b/macros/latex-dev/required/tools/array.pdf diff --git a/macros/latex-dev/required/tools/bm.pdf b/macros/latex-dev/required/tools/bm.pdf Binary files differindex 125a480d07..7973845ac7 100644 --- a/macros/latex-dev/required/tools/bm.pdf +++ b/macros/latex-dev/required/tools/bm.pdf diff --git a/macros/latex-dev/required/tools/calc.pdf b/macros/latex-dev/required/tools/calc.pdf Binary files differindex ec12e97f64..8024058852 100644 --- a/macros/latex-dev/required/tools/calc.pdf +++ b/macros/latex-dev/required/tools/calc.pdf 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 <David.Carlisle@latex-project.org> + + * longtable.dtx: write lists of tables entry to the file with + extension \ext@table, not force .lot github/561 + 2021-04-25 David Carlisle <David.Carlisle@latex-project.org> * 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 Binary files differindex 2293c86e99..ed97229255 100644 --- a/macros/latex-dev/required/tools/dcolumn.pdf +++ b/macros/latex-dev/required/tools/dcolumn.pdf diff --git a/macros/latex-dev/required/tools/delarray.pdf b/macros/latex-dev/required/tools/delarray.pdf Binary files differindex 951882d630..6f00a67dd9 100644 --- a/macros/latex-dev/required/tools/delarray.pdf +++ b/macros/latex-dev/required/tools/delarray.pdf diff --git a/macros/latex-dev/required/tools/enumerate.pdf b/macros/latex-dev/required/tools/enumerate.pdf Binary files differindex f6be172ebf..9e48d4a087 100644 --- a/macros/latex-dev/required/tools/enumerate.pdf +++ b/macros/latex-dev/required/tools/enumerate.pdf diff --git a/macros/latex-dev/required/tools/fileerr.pdf b/macros/latex-dev/required/tools/fileerr.pdf Binary files differindex 298c7ba4d6..7a5eab8cf4 100644 --- a/macros/latex-dev/required/tools/fileerr.pdf +++ b/macros/latex-dev/required/tools/fileerr.pdf diff --git a/macros/latex-dev/required/tools/fontsmpl.pdf b/macros/latex-dev/required/tools/fontsmpl.pdf Binary files differindex 6a66ff7089..eafd38abd1 100644 --- a/macros/latex-dev/required/tools/fontsmpl.pdf +++ b/macros/latex-dev/required/tools/fontsmpl.pdf diff --git a/macros/latex-dev/required/tools/ftnright.pdf b/macros/latex-dev/required/tools/ftnright.pdf Binary files differindex a3addcfc41..8a7c4c4c94 100644 --- a/macros/latex-dev/required/tools/ftnright.pdf +++ b/macros/latex-dev/required/tools/ftnright.pdf diff --git a/macros/latex-dev/required/tools/hhline.pdf b/macros/latex-dev/required/tools/hhline.pdf Binary files differindex ee80fb369b..23fde95eb4 100644 --- a/macros/latex-dev/required/tools/hhline.pdf +++ b/macros/latex-dev/required/tools/hhline.pdf diff --git a/macros/latex-dev/required/tools/indentfirst.pdf b/macros/latex-dev/required/tools/indentfirst.pdf Binary files differindex 3e93185eae..3ee72ae32b 100644 --- a/macros/latex-dev/required/tools/indentfirst.pdf +++ b/macros/latex-dev/required/tools/indentfirst.pdf diff --git a/macros/latex-dev/required/tools/layout.pdf b/macros/latex-dev/required/tools/layout.pdf Binary files differindex 98bb6ab28c..adab2be7a1 100644 --- a/macros/latex-dev/required/tools/layout.pdf +++ b/macros/latex-dev/required/tools/layout.pdf 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 @@ %<driver> \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 Binary files differindex c503bd9123..a6459b2ecd 100644 --- a/macros/latex-dev/required/tools/longtable.pdf +++ b/macros/latex-dev/required/tools/longtable.pdf diff --git a/macros/latex-dev/required/tools/multicol.pdf b/macros/latex-dev/required/tools/multicol.pdf Binary files differindex 556603f749..ba15c5c6a9 100644 --- a/macros/latex-dev/required/tools/multicol.pdf +++ b/macros/latex-dev/required/tools/multicol.pdf diff --git a/macros/latex-dev/required/tools/rawfonts.pdf b/macros/latex-dev/required/tools/rawfonts.pdf Binary files differindex 424fb693b0..50b8f778f9 100644 --- a/macros/latex-dev/required/tools/rawfonts.pdf +++ b/macros/latex-dev/required/tools/rawfonts.pdf diff --git a/macros/latex-dev/required/tools/shellesc.pdf b/macros/latex-dev/required/tools/shellesc.pdf Binary files differindex 94dea41431..63bd149aed 100644 --- a/macros/latex-dev/required/tools/shellesc.pdf +++ b/macros/latex-dev/required/tools/shellesc.pdf diff --git a/macros/latex-dev/required/tools/showkeys.pdf b/macros/latex-dev/required/tools/showkeys.pdf Binary files differindex c558d2fbd2..1b100e1f20 100644 --- a/macros/latex-dev/required/tools/showkeys.pdf +++ b/macros/latex-dev/required/tools/showkeys.pdf diff --git a/macros/latex-dev/required/tools/somedefs.pdf b/macros/latex-dev/required/tools/somedefs.pdf Binary files differindex 7dc1936536..df44c3acbe 100644 --- a/macros/latex-dev/required/tools/somedefs.pdf +++ b/macros/latex-dev/required/tools/somedefs.pdf diff --git a/macros/latex-dev/required/tools/tabularx.pdf b/macros/latex-dev/required/tools/tabularx.pdf Binary files differindex 574096cd7a..b4cb4713f3 100644 --- a/macros/latex-dev/required/tools/tabularx.pdf +++ b/macros/latex-dev/required/tools/tabularx.pdf diff --git a/macros/latex-dev/required/tools/theorem.pdf b/macros/latex-dev/required/tools/theorem.pdf Binary files differindex 196dc13cce..37a4b9b86c 100644 --- a/macros/latex-dev/required/tools/theorem.pdf +++ b/macros/latex-dev/required/tools/theorem.pdf diff --git a/macros/latex-dev/required/tools/tools-overview.pdf b/macros/latex-dev/required/tools/tools-overview.pdf Binary files differindex 6fd1756018..74171e9aa5 100644 --- a/macros/latex-dev/required/tools/tools-overview.pdf +++ b/macros/latex-dev/required/tools/tools-overview.pdf diff --git a/macros/latex-dev/required/tools/trace.pdf b/macros/latex-dev/required/tools/trace.pdf Binary files differindex 35d766b041..fdee99e72e 100644 --- a/macros/latex-dev/required/tools/trace.pdf +++ b/macros/latex-dev/required/tools/trace.pdf diff --git a/macros/latex-dev/required/tools/varioref.pdf b/macros/latex-dev/required/tools/varioref.pdf Binary files differindex d8fa68c00b..9f1a0a94da 100644 --- a/macros/latex-dev/required/tools/varioref.pdf +++ b/macros/latex-dev/required/tools/varioref.pdf diff --git a/macros/latex-dev/required/tools/verbatim.pdf b/macros/latex-dev/required/tools/verbatim.pdf Binary files differindex 9ad8bc66e3..f3a67abf25 100644 --- a/macros/latex-dev/required/tools/verbatim.pdf +++ b/macros/latex-dev/required/tools/verbatim.pdf diff --git a/macros/latex-dev/required/tools/xr.pdf b/macros/latex-dev/required/tools/xr.pdf Binary files differindex cf60d6ef58..e8cdf21a7a 100644 --- a/macros/latex-dev/required/tools/xr.pdf +++ b/macros/latex-dev/required/tools/xr.pdf diff --git a/macros/latex-dev/required/tools/xspace.pdf b/macros/latex-dev/required/tools/xspace.pdf Binary files differindex d1540186ef..d8335ddee4 100644 --- a/macros/latex-dev/required/tools/xspace.pdf +++ b/macros/latex-dev/required/tools/xspace.pdf 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 Binary files differindex 6ab70639e4..ad03632921 100644 --- a/macros/latex/contrib/bjfuthesis/example/cover.pdf +++ b/macros/latex/contrib/bjfuthesis/example/cover.pdf diff --git a/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png b/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png Binary files differindex 9603818183..72deea5c06 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/admin-knowledge-graph.png diff --git a/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png b/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png Binary files differindex 938bb9f6f1..12b2c1a961 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/admin-movie.png diff --git a/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png b/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png Binary files differindex 2f03defee7..ef2ef0d66c 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/admin-navigation.png diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png Binary files differindex 0e7e85fb23..947c99499d 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-category.png diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png Binary files differindex d493e7d33c..59778b77ed 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-details.png diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png Binary files differindex 51128da916..092a222810 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-index.png diff --git a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png Binary files differindex 003d373cc9..ff5de424a2 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/anonymous-search.png diff --git a/macros/latex/contrib/bjfuthesis/example/figures/general-details.png b/macros/latex/contrib/bjfuthesis/example/figures/general-details.png Binary files differindex e462e58ebb..f099fc18bf 100644 --- a/macros/latex/contrib/bjfuthesis/example/figures/general-details.png +++ b/macros/latex/contrib/bjfuthesis/example/figures/general-details.png diff --git a/macros/latex/contrib/bjfuthesis/example/thesis.pdf b/macros/latex/contrib/bjfuthesis/example/thesis.pdf Binary files differindex af8b072dc1..cb1aabbe44 100644 --- a/macros/latex/contrib/bjfuthesis/example/thesis.pdf +++ b/macros/latex/contrib/bjfuthesis/example/thesis.pdf 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 Binary files differnew file mode 100644 index 0000000000..05d3aa0669 --- /dev/null +++ b/macros/latex/contrib/bmstu-iu8/bmstu-example.pdf diff --git a/macros/latex/contrib/bmstu-iu8/example.tex b/macros/latex/contrib/bmstu-iu8/bmstu-example.tex index 0d2499d7bd..0d2499d7bd 100644 --- a/macros/latex/contrib/bmstu-iu8/example.tex +++ b/macros/latex/contrib/bmstu-iu8/bmstu-example.tex diff --git a/macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls index e3c4748c0d..63c4d910d9 100644 --- a/macros/latex/contrib/bmstu-iu8/BMSTU-IU8.cls +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/BMSTU-IU8.cls @@ -25,7 +25,6 @@ \RequirePackage[utf8]{inputenc} \RequirePackage[russian]{babel} \RequirePackage{hyphsubst} -\RequirePackage{csquotes} \RequirePackage{01-IU8-base} \RequirePackage{02-IU8-construction} @@ -50,4 +49,6 @@ \RequirePackage{21-IU8-math} \RequirePackage{22-IU8-algorithms} +\RequirePackage{csquotes} + \makeglossaries diff --git a/macros/latex/contrib/bmstu-iu8/inc/bmstu.png b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png Binary files differindex 469c7d9797..469c7d9797 100644 --- a/macros/latex/contrib/bmstu-iu8/inc/bmstu.png +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/inc/bmstu.png diff --git a/macros/latex/contrib/bmstu-iu8/styles/01-IU8-base.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty index 2ade498ef7..07b54647a3 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/01-IU8-base.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/01-IU8-base.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{01-IU8-base}[2021/03/21 v1.0 Общие требованиÑ] +\ProvidesPackage{01-IU8-base}[2021/03/21 v1.1 Общие требованиÑ] % 6.1.1 Изложение текÑта и оформление отчета выполнÑÑŽÑ‚ в ÑоответÑтвии Ñ % требованиÑми наÑтоÑщего Ñтандарта. Страницы текÑта отчета о ÐИРи включенные в @@ -15,6 +15,7 @@ % Цвет шрифта должен быть черным, размер шрифта - не менее 12 пт. % Рекомендуемый тип шрифта Ð´Ð»Ñ Ð¾Ñновного текÑта отчета - Times New Roman. +\RequirePackage{anyfontsize} \RequirePackage[fontsize=14pt]{scrextend} % Ðо у Times New Roman нет открытой реализации, так что будет Ñтандартный % Или можете попробовать xelatex: diff --git a/macros/latex/contrib/bmstu-iu8/styles/02-IU8-construction.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty index ebf8957a62..a8cb987208 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/02-IU8-construction.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/02-IU8-construction.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{02-IU8-construction}[2021/03/21 v1.0 ПоÑтроение отчета] +\ProvidesPackage{02-IU8-construction}[2021/03/21 v1.1 ПоÑтроение отчета] % 6.2.1 ÐÐ°Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтруктурных Ñлементов отчета: % "СПИСОК ИСПОЛÐИТЕЛЕЙ", % у Ð½Ð°Ñ Ð½Ðµ иÑпользуетÑÑ diff --git a/macros/latex/contrib/bmstu-iu8/styles/03-IU8-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty index b9ebc5b699..2cfb8b4f82 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/03-IU8-numbering.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/03-IU8-numbering.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{03-IU8-numbering}[2021/03/21 v1.0 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраниц отчета] +\ProvidesPackage{03-IU8-numbering}[2021/03/21 v1.1 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраниц отчета] % 6.3.1 Страницы отчета Ñледует нумеровать арабÑкими цифрами, ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ñквозную % нумерацию по вÑему текÑту отчета, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. Ðомер Ñтраницы diff --git a/macros/latex/contrib/bmstu-iu8/styles/04-IU8-section-numbering.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty index de614468c4..efd706e2d1 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/04-IU8-section-numbering.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/04-IU8-section-numbering.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{04-IU8-section-numbering}[2021/03/21 v1.0 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð², подразделов, пунктов, подпунктов и книг отчета] +\ProvidesPackage{04-IU8-section-numbering}[2021/03/21 v1.1 ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¾Ð², подразделов, пунктов, подпунктов и книг отчета] % 6.4.1 Разделы должны иметь порÑдковые номера в пределах вÑего отчета, % обозначенные арабÑкими цифрами без точки и раÑположенные Ñ Ð°Ð±Ð·Ð°Ñ†Ð½Ð¾Ð³Ð¾ отÑтупа. diff --git a/macros/latex/contrib/bmstu-iu8/styles/05-IU8-figures.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty index c0f50267de..4875fdec8e 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/05-IU8-figures.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/05-IU8-figures.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{05-IU8-figures}[2021/03/21 v1.0 ИллюÑтрации] +\ProvidesPackage{05-IU8-figures}[2021/03/21 v1.1 ИллюÑтрации] % 6.5.1 ИллюÑтрации (чертежи, графики, Ñхемы, компьютерные раÑпечатки, диаграммы, % фотоÑнимки) Ñледует раÑполагать в отчете непоÑредÑтвенно поÑле текÑта отчета, diff --git a/macros/latex/contrib/bmstu-iu8/styles/06-IU8-tables.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty index fd08b71fb9..28ffc3cd97 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/06-IU8-tables.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/06-IU8-tables.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{06-IU8-tables}[2021/03/21 v1.0 Таблицы] +\ProvidesPackage{06-IU8-tables}[2021/03/21 v1.1 Таблицы] % Пакеты, которые Ñкорее вÑего пригодÑÑ‚ÑÑ \RequirePackage{tabularx} diff --git a/macros/latex/contrib/bmstu-iu8/styles/07-IU8-footnotes.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty index a485d0d0af..f7abd6cce9 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/07-IU8-footnotes.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/07-IU8-footnotes.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{07-IU8-footnotes}[2021/03/21 v1.0 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¸ ÑноÑки] +\ProvidesPackage{07-IU8-footnotes}[2021/03/21 v1.1 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¸ ÑноÑки] % 6.7.1 ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð²Ð¾Ð´ÑÑ‚ в отчете, еÑли необходимы поÑÑÐ½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ Ñправочные % данные к Ñодержанию текÑта, таблиц или графичеÑкого материала. diff --git a/macros/latex/contrib/bmstu-iu8/styles/08-IU8-formulas.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty index 5370ea82a6..26ec05640d 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/08-IU8-formulas.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/08-IU8-formulas.sty @@ -1,5 +1,5 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{08-IU8-formulas}[2021/03/21 v1.0 Формулы] +\ProvidesPackage{08-IU8-formulas}[2021/03/21 v1.1 Формулы] % ÐаÑтройки по умолчанию в целом ÑоответÑтвуют ГОСТ
\ 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/bmstu-iu8/styles/09-IU8-cites.sty index 8a42ee23f6..7343648925 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/09-IU8-cites.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/09-IU8-cites.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{09-IU8-cites}[2021/03/21 v1.0 СÑылки] +\ProvidesPackage{09-IU8-cites}[2021/03/21 v1.1 СÑылки] % 6.9.1 Ð’ отчете о ÐИРрекомендуетÑÑ Ð¿Ñ€Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ ÑÑылки на иÑпользованные % иÑточники. При нумерации ÑÑылок на документы, иÑпользованные при ÑоÑтавлении diff --git a/macros/latex/contrib/bmstu-iu8/styles/10-IU8-titlepage.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty index 1d1cc37751..2d52ce93e1 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/10-IU8-titlepage.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/10-IU8-titlepage.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{10-IU8-titlepage}[2021/03/21 v1.0 Титульный лиÑÑ‚] +\ProvidesPackage{10-IU8-titlepage}[2021/03/21 v1.1 Титульный лиÑÑ‚] % ÐŸÐ¾Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð’ÐšÐ \def\student#1{\gdef\@student{#1}} 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/styles/12-IU8-abstract.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty index c674c5efac..ab068e8c49 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/12-IU8-abstract.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/12-IU8-abstract.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{12-IU8-abstract}[2021/03/21 v1.0 Реферат] +\ProvidesPackage{12-IU8-abstract}[2021/03/21 v1.1 Реферат] % 6.12.1 Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± общем объеме отчета, количеÑтве книг отчета, иллюÑтраций, % таблиц, иÑпользованных иÑточников, приложений ÑвлÑÑŽÑ‚ÑÑ Ð¿ÐµÑ€Ð²Ð¾Ð¹ компонентой @@ -17,7 +17,7 @@ \RequirePackage{lastpage} \renewcommand{\abstract}{ - \structure*{РЕФЕРÐТ} + \structure{РЕФЕРÐТ} Отчёт Ñодержит \pageref{LastPage} ÑÑ‚Ñ€.\ifnum \TotalValue{totalfigures}>0, \TotalValue{totalfigures} риÑ.\fi\ifnum diff --git a/macros/latex/contrib/bmstu-iu8/styles/13-IU8-contents.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty index 4bba4deb7e..3fa1170610 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/13-IU8-contents.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/13-IU8-contents.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{13-IU8-contents}[2021/03/21 v1.0 Содержание] +\ProvidesPackage{13-IU8-contents}[2021/03/21 v1.1 Содержание] % Каждую запиÑÑŒ ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÑÑŽÑ‚ как отдельный абзац, выровненный влево. % Ðомера Ñтраниц указывают выровненными по правому краю Ð¿Ð¾Ð»Ñ Ð¸ ÑоединÑÑŽÑ‚ diff --git a/macros/latex/contrib/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty index ea679bd6c5..0d19fcc37d 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/14-IU8-terms-and-definitions.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{14-IU8-terms-and-definitions}[2021/03/21 v1.0 Содержание] +\ProvidesPackage{14-IU8-terms-and-definitions}[2021/03/21 v1.1 Содержание] \RequirePackage[ acronym, @@ -33,12 +33,3 @@ 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/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty index 8440aac950..2e7931ccb7 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/15-IU8-list-of-abbreviations.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{15-IU8-list-of-abbreviations}[2021/03/21 v1.0 Содержание] +\ProvidesPackage{15-IU8-list-of-abbreviations}[2021/03/21 v1.1 Содержание] \RequirePackage[abbreviations]{glossaries-extra} diff --git a/macros/latex/contrib/bmstu-iu8/styles/16-IU8-references.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty index 65c710c41f..6d441e098c 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/16-IU8-references.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/16-IU8-references.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{16-IU8-references}[2021/03/21 v1.0 СпиÑок иÑпользованных иÑточников] +\ProvidesPackage{16-IU8-references}[2021/03/21 v1.1 СпиÑок иÑпользованных иÑточников] % Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± иÑточниках Ñледует раÑполагать в порÑдке поÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑÑылок на % иÑточники в текÑте отчета и нумеровать арабÑкими цифрами Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и печатать @@ -8,6 +8,7 @@ \usepackage[ backend=biber, style=gost-numeric, + sorting=none, % refsection=structure, % sorting=ynt, ]{biblatex} @@ -15,13 +16,3 @@ \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/bmstu-iu8/styles/17-IU8-appendices.sty index 26f692b165..58556e4987 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/17-IU8-appendices.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/17-IU8-appendices.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{17-IU8-appendices}[2021/03/21 v1.0 ПриложениÑ] +\ProvidesPackage{17-IU8-appendices}[2021/03/21 v1.1 ПриложениÑ] \newcommand{\appendixsection}[1]{ \stepcounter{apps} @@ -17,7 +17,9 @@ \setcounter{figure}{0} \setcounter{table}{0} \setcounter{equation}{0} + \setcounter{lstlisting}{0} \renewcommand\thefigure{\Asbuk{apps}.\arabic{figure}} - \renewcommand\thetable{\Asbuk{apps}.\arabic{figure}} - \renewcommand\theequation{\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/styles/18-IU8-extra.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty index c456e8e8fd..6548337ceb 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/18-IU8-extra.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/18-IU8-extra.sty @@ -1,11 +1,9 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{18-IU8-extra}[2021/03/21 v1.0 Разные улучшениÑ] +\ProvidesPackage{18-IU8-extra}[2021/03/21 v1.1 Разные улучшениÑ] \RequirePackage{graphicx} -\RequirePackage[none]{hyphenat} % Отключим переноÑÑ‹, так краÑивее - \RequirePackage[all, defaultlines=4]{nowidow} % Запрет "виÑÑчих" Ñлов \sloppy % Запретить выход текÑта за Ð¿Ð¾Ð»Ñ diff --git a/macros/latex/contrib/bmstu-iu8/styles/19-IU8-counters.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty index 35253a1b2d..f0eb7762d1 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/19-IU8-counters.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/19-IU8-counters.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{19-IU8-counters}[2021/03/21 v1.0 Счётчики] +\ProvidesPackage{19-IU8-counters}[2021/03/21 v1.1 Счётчики] \RequirePackage{calc} \RequirePackage{xassoccnt} 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/styles/21-IU8-math.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty index 00b85e1c24..13b0e75ab1 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/21-IU8-math.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/21-IU8-math.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{21-IU8-math}[2021/03/21 v1.0 Математика] +\ProvidesPackage{21-IU8-math}[2021/03/21 v1.1 Математика] \RequirePackage{amsthm} \theoremstyle{definition} diff --git a/macros/latex/contrib/bmstu-iu8/styles/22-IU8-algorithms.sty b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty index e7ede15997..9733ec195e 100644 --- a/macros/latex/contrib/bmstu-iu8/styles/22-IU8-algorithms.sty +++ b/macros/latex/contrib/bmstu-iu8/bmstu-iu8/styles/22-IU8-algorithms.sty @@ -1,6 +1,6 @@ % Author: CatInCosmicSpace \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{22-IU8-algorithms}[2021/03/21 v1.0 Ðлгоритмы] +\ProvidesPackage{22-IU8-algorithms}[2021/03/21 v1.1 Ðлгоритмы] \RequirePackage[linesnumbered,boxruled]{algorithm2e} \SetAlCapSty{} diff --git a/macros/latex/contrib/bmstu-iu8/example.pdf b/macros/latex/contrib/bmstu-iu8/example.pdf Binary files differdeleted file mode 100644 index bbf0887362..0000000000 --- a/macros/latex/contrib/bmstu-iu8/example.pdf +++ /dev/null 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/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/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 Binary files differindex 58e5a92952..35cf9e4b5a 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf 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 Binary files differindex 92c3cec32b..bd008ba7f1 100644 --- a/macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf +++ b/macros/latex/contrib/eq-pin2corr/doc/eq-pin2corr.pdf diff --git a/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf b/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf Binary files differindex 0103c028ca..55e7438520 100644 --- a/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf +++ b/macros/latex/contrib/eq-pin2corr/doc/eqpin2corrman.pdf 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 @@ %</copyright> %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{eq-pin2corr} -%<package> [2021/02/20 v1.0 Applies PIN security to quizzes] +%<package> [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<aFrzExt.length; i++) { + var f=this.getField(aFrzExt[i]+"|currQuiz"); + if (f!=null) f.readonly=true; + }|fi + } else { + var retn=app.alert({% +cMsg: "No quiz data, do you want to mark it anyway?",% +cTitle: "AcroTeX", nIcon: 2, nType: 2}); + if (retn==4) { + var bDisplaySilent=false; + InitializeQuiz("|currQuiz",1,0); + var f=this.getField("ScoreData.|currQuiz"); + f.value="0;0;0;0"; + cntCorrectResponses(); + correctQuiz("|currQuiz",3); + DisplayQuizResults("|currQuiz",3,3,false); + if (typeof correctSumryTbl == "function") + correctSumryTbl("|currQuiz",3); + } + } } else { - console.println("Something went wrong, \\ -you entered an incorrect PIN Id, \\ + if (resp != null) { + console.clear() + console.println("Something went wrong, % +you entered an incorrect PIN Id, % or the class PIN Id (\\\\classPINVar) was incorrect or undefined"); - console.show(); + app.beep(0); + console.show(); + } } \end{defineJS*} % \end{macrocode} -% \DescribeMacro\declPINId\hskip-\marginparsep\texttt{\darg{\ameta{PIN-Id}}\darg{\ameta{hash-str}}} -% Set the basic parameters of this PIN security scheme: the pin-id and its corresponding hash-string. +% +% \subsection{Declare PIN for \textsf{Correction} and \textsf{Begin Quiz} controls} +% Two PIN-related commands are defined: (1) \cs{declPINId} is for security on the +% \uif{Correct} control; (2) \cs{declRePINId} is for security on the \uif{Begin Quiz} +% control.\medskip +% +% \noindent\DescribeMacro\declPINId\hskip-\marginparsep\texttt{\darg{\ameta{PIN-Id}}\darg{\ameta{hash-str}}} +% Set the basic parameters of this PIN security scheme for the \uif{Correct} control: +% the pin-id and its corresponding hash-string. % \begin{macrocode} \def\declPINId#1#2{\def\numPINId{#1}\def\hashPINId{#2}} \@onlypreamble\declPINId \declPINId{5243}{02JRVZdRgYgCA-Rtje8VkD} % PIN Id, hash-str +% \end{macrocode} +% \DescribeMacro\declRePINId\hskip-\marginparsep\texttt{\darg{\ameta{PIN-Id}}\darg{\ameta{hash-str}}} +% Set the basic parameters of this PIN security scheme on the \uif{Begin Quiz} control: +% the pin-id and its corresponding hash-string. +% \begin{macrocode} +\def\declRePINId#1#2{\def\numRePINId{#1}\def\hashRePINId{#2}} +\@onlypreamble\declRePINId +\declRePINId{1234}{By9mbLF0NJMA2sN2x4D0VB} \begin{insDLJS}{pin}{Pin Code} var _PinCode = "\hashPINId"; +var _rePinCode = "\hashRePINId"; \end{insDLJS} % \end{macrocode} +% \subsection{Warn and Freeze on \textsf{End Quiz}} +% \DescribeMacro\useWarnEndQuiz +% (2021/05/22) Optional modifications to the \uif{End Quiz} control. +% \changes{v1.1}{2021/05/22}{Define \string\cs{useWarnEndQuiz} and +% \string\cs{EndQuizG@tePIN}} +% \begin{macrocode} +\def\useWarnEndQuiz{\let\EndQuizG@te\EndQuizG@tePIN} +\flJSStr{\EndQuizG@te@Msg}{Warning: +Are you sure you want to end this quiz?\r\r +The quiz will be frozen and no more changes will be allowed. +Click 'Yes' to end the quiz or 'No' to continue working on the quiz.} +\def\PINgobii#1#2{} +\begin{defineJS}[\makeesc\|\makecmt\%]{\EndQuizG@tePIN} +// Begin insertion of new code + var retn=app.alert({cMsg: |EndQuizG@te@Msg,% +cTitle: "AcroTeX", nIcon: 2, nType: 2}); + if (retn==4) { +% \end{macrocode} +% Freeze this quiz; we make a relevant fields readonly. +% \begin{macrocode} + var aFrzExt=new Array("mc.","obj.","grpobj.",% +"beginQuiz.","endQuiz."); + for (var i=0; i<aFrzExt.length; i++) { + var f=this.getField(aFrzExt[i]+"|currQuiz"); + if (f!=null) f.readonly=true; + }% +|PINgobii +\end{defineJS} +% \end{macrocode} +% The \cs{PINglobii} vacuums up `\verb*! {!', which appears in \cs{eQzBtnActns} of +% \pkg{exerquiz}, in the line \verb*!*EndQuizG@te {!. +% +% \subsection{PIN Security on \textsf{Begin Quiz}} +% +% \DescribeMacro\useBeginQuizPIN (2021/05/29) This command redefines the \uif{Begin Quiz} control to +% require PIN security to retake the quiz. +% \changes{v2.0}{2021/05/29}{Define \string\cs{useBeginQuizPIN}} +% \begin{macrocode} +\def\useBeginQuizPIN{% + \ifx\BeginQuizG@te\BeginQuizG@tePIN\else + \let\BeginQuizG@te\BeginQuizG@tePIN\fi} +% \end{macrocode} +% \cs{restoreBeginQuiz} is defined in \pkg{exerquiz}, but because of a typo, +% it was originally defined as \cs{restorBeginQuiz} (no `e'); until the changes trickle +% through the system, we cover ourselves by \cs{let}ing \cs{restoreBeginQuiz} +% to \cs{restorBeginQuiz}, if the correct spelling of the command does not already +% exist. +% \begin{macrocode} +\@ifundefined{restoreBeginQuiz}{\let\restoreBeginQuiz\restorBeginQuiz}{} +% \end{macrocode} +% \begin{macrocode} +\flJSStr{\BeginQuizG@te@Msgi}{Enter the PIN number +to retake this quiz} +\flJSStr{\BeginQuizG@te@Msgii}{Press the Begin Quiz control to begin +the quiz again} +\def\PINgobiii#1#2#3{} +% \end{macrocode} +% \begin{macrocode} +\begin{defineJS}[\makeesc\|\makecmt\%]{\BeginQuizG@tePIN} +if (typeof oRecordOfQuizData["ScoreData.|currQuiz"] != "undefined" ) { + var resp=app.response({ + cQuestion: |BeginQuizG@te@Msgi, + cTitle: "AcroTeX", + bPassword: true + }); + var _respHash=_resp=Collab.hashString(resp); + if (_resp == _rePinCode) { + oRecordOfQuizData["ScoreData.|currQuiz"]=undefined; + app.alert(|BeginQuizG@te@Msgii); + var f=this.getField("tallyresets.|currQuiz"); + if (f!=null) f.value=1+f.value; + } +} else { +|PINgobiii +\end{defineJS} +% \end{macrocode} +% \cs{PINglobiii} gobbles the three tokens `\verb*! {\jsR!', which appear in the definition of \cs{@initQuiz} in +% \pkg{exerquiz}, in the line \verb*!\BeginQuizG@te\space\jsLB\jsR\jsT!. +% +% \section{Tracking the number of \textsf{Begin Quiz} events} +% A command \cs{qzResetTally} is defined to hold the number of times a user has taken +% the same quiz. This field is readonly, and does not reset, unless you have know how to do it. +% \begin{macrocode} +% \end{macrocode} +% \DescribeMacro{\qzResetTally}\hskip-\marginparsep\texttt{[\ameta{options}]} +% The \cs{qzResetTally} text field, similar to \cs{sqTallyTotal}, is used to +% count the number of times a student needs to retake the same quiz. +% \begin{macrocode} +% \end{macrocode} +% The default appearance of \cs{qzResetTally} +% \begin{macrocode} +\def\qzTallyTotalDefaults{% + \rawPDF{}\W{1}\BC{0 0 0}\S{I}\textColor{1 0 0 rg} + \Q{2}} +% \end{macrocode} +% The definition of \cs{qzResetTally} +% \begin{macrocode} +\newcommand\qzResetTally[1][]{% + \textField[\presets{\qzTallyTotalDefaults}#1\DV{0}\V{0} + \Ff{\FfReadOnly} + ]{tallyresets.\currQuiz}{\TBW}{\DefaultHeightOfWidget}} +% \end{macrocode} +% \subsection{Placing a maximum on the number of resets} +% The next level of complication is to add a restriction onto the number of +% times the user can retake the quiz.\medskip\par +% +% \noindent +% \DescribeMacro\setMaxRetakes\hskip-\marginparsep\texttt{\darg{\ameta{qz-name}}\darg{\ameta{num}}} +% A command that sets the maximum number of retakes \ameta{num} (nonneg integer) by declaring \cs{setMaxRetakes} prior +% to the quiz \ameta{qz-name}. \DescribeMacro\nMaxRetakes\cs{nMaxRetakes\darg{\ameta{qz-name}}} +% is a public macro that expands to the max number of retakes (\ameta{num}). +% \begin{macrocode} +\newcommand{\setMaxRetakes}[2]{\expandafter + \def\csname1MaxReset#1\endcsname{#2}} +\def\nMaxRetakes#1{\@nameuse{1MaxReset#1}} +% \end{macrocode} +% \subsection{JavaScript support for tracking} +% \DescribeMacro\useBeginQuizCnt Modifies \cs{BeginQuizG@te} (\pkg{exerquiz}, 2021/05/21 or later). +% \cs{useBeginQuizPIN} also modifies \cs{BeginQuizG@te}. These two are incompatible; +% one will overwrite the other. \cs{restoreBeginQuiz} retores \uif{Begin Quiz} to its default definition. +% \changes{v2.0}{2021/05/29}{Define \string\cs{useBeginQuizCnt}} +% \begin{macrocode} +\def\useBeginQuizCnt{% + \ifx\BeginQuizG@te\BeginQuizG@teCNT\else + \let\BeginQuizG@te\BeginQuizG@teCNT\fi} +% \end{macrocode} +% \DescribeMacro\maxRetake@Msg The message that appears in an alert dialog box +% after the student has started the quiz more than the max number, as set by +% \cs{setMaxRetakes}. +% \begin{macrocode} +\flJSStr[noquotes]{\maxRetake@Msg}{You have taken the quiz the maximum +number of times permitted ("+nMaxReset+"). You will not be allowed to +continue to re-take this quiz. Move on with your life.} +% \end{macrocode} +% The action added to \uif{Begin Quiz}, it determines if \cs{qzResetTally} is present for the current quiz +% and if so, increments the current value. +% \begin{macrocode} +\begin{defineJS}[\makeesc\|\makecmt\%]{\BeginQuizG@teCNT} +if (typeof oRecordOfQuizData["ScoreData.|currQuiz"] != "undefined" ) +{ + var _bOKReset=true; + var f=this.getField("tallyresets.|currQuiz"); + if (f!=null) var value=1*f.value;% +|expandafter|ifx|csname1MaxReset|currQuiz|endcsname|relax|else + var nMaxReset=|csname1MaxReset|currQuiz|endcsname; + if (f!=null && value==nMaxReset) { + app.alert("|maxRetake@Msg"); + _bOKReset=false; + }|fi + if (_bOKReset) { + oRecordOfQuizData["ScoreData.|currQuiz"]=undefined; + app.alert(|BeginQuizG@te@Msgii); + if (f!=null) f.value=1+value; + } +} else { +|PINgobiii +\end{defineJS} +% \end{macrocode} +% \cs{PINglobiii} gobbles the three tokens `\verb*! {\jsR!', which appear in the definition of \cs{@initQuiz} in +% \pkg{exerquiz}, in the line \verb*!\BeginQuizG@te\space\jsLB\jsR\jsT!. % \begin{macrocode} %</package> % \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 Binary files differindex c1920bddba..20b55a7bd9 100644 --- a/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf +++ b/macros/latex/contrib/eq-pin2corr/examples/get-hash-string.pdf 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 Binary files differnew file mode 100644 index 0000000000..18ec5466cb --- /dev/null +++ b/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.pdf diff --git a/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.tex b/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex index b084b55c5a..23642d4d6b 100644 --- a/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.tex +++ b/macros/latex/contrib/eq-pin2corr/examples/qz-p2c.tex @@ -1,5 +1,5 @@ \documentclass{article} -\usepackage[designv,forcolorpaper]{web} +\usepackage[designv]{web} %,forcolorpaper \usepackage{exerquiz}[2021/02/17] \usepackage[!showscore]{eq-pin2corr} @@ -27,8 +27,8 @@ \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 +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 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 Binary files differdeleted file mode 100644 index 1fca51e00a..0000000000 --- a/macros/latex/contrib/eq-pin2corr/examples/qz-pin-to-correct.pdf +++ /dev/null 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 Binary files differindex ce167800fc..5d94d8f215 100644 --- a/macros/latex/contrib/hyperref/doc/backref.pdf +++ b/macros/latex/contrib/hyperref/doc/backref.pdf 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" ><span class="ec-lmvtt-10x-x-120">https://github.com/latex3/hyperref/issues</span></a><span class="ec-lmr-12">)</span></div><br /> <div class="date" ><span -class="ec-lmr-12">2021-02-27 v7.00k</span></div> +class="ec-lmr-12">2021-06-05 v7.00l</span></div> </div> <h3 class="likesectionHead"><a id="x1-1000"></a>Contents</h3> @@ -228,38 +228,48 @@ href="hyperref-doc3.html#fn2x0"><sup class="textsuperscript">2</sup></a></span>< says that conformant viewers/translators must recognize the following set of <span class="ec-lmvtt-10">\special </span>constructs: <dl class="description"><dt class="description"> + <!--l. 204--><p class="noindent" > <span class="ec-lmbx-10">href:</span> </dt><dd -class="description"><span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 204--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">html:<a</span><span class="ec-lmvtt-10"> href</span><span class="ec-lmvtt-10"> =</span><span class="ec-lmvtt-10"> "href_string"></span></span></span> </dd><dt class="description"> + <!--l. 205--><p class="noindent" > <span class="ec-lmbx-10">name:</span> </dt><dd -class="description"><span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 205--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">html:<a</span><span class="ec-lmvtt-10"> name</span><span class="ec-lmvtt-10"> =</span><span class="ec-lmvtt-10"> "name_string"></span></span></span> </dd><dt class="description"> + <!--l. 206--><p class="noindent" > <span class="ec-lmbx-10">end:</span> </dt><dd -class="description"><span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 206--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">html:</a></span></span></span> </dd><dt class="description"> + <!--l. 207--><p class="noindent" > <span class="ec-lmbx-10">image:</span> </dt><dd -class="description"><span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 207--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">html:<img</span><span class="ec-lmvtt-10"> src</span><span class="ec-lmvtt-10"> =</span><span class="ec-lmvtt-10"> "href_string"></span></span></span> </dd><dt class="description"> + <!--l. 208--><p class="noindent" > <span class="ec-lmbx-10">base_name:</span> </dt><dd -class="description"><span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 208--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">html:<base</span><span class="ec-lmvtt-10"> href</span><span class="ec-lmvtt-10"> =</span><span @@ -272,7 +282,8 @@ between sections of documents. The <span class="ec-lmri-10">image </span>command is intended (as with current HTML viewers) to place an image of arbitrary graphical format on the page in the current location. The <span -class="ec-lmri-10">base_name </span>command is be used to communicate to the DVI viewer the full (URL) +class="ec-lmri-10">base_name </span>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. <!--l. 220--><p class="indent" > The <span @@ -301,21 +312,21 @@ class="ec-lmvtt-10">"</span></span></span>’ characters should be escaped with a backslash (<span class="lmsy-10">\</span>), and if it looks like a URL name it may cause problems. - - <!--l. 236--><p class="indent" > However, the drivers intended to produce <span class="ec-lmri-10">only </span>PDF use literal PostScript or PDF <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands. The commands are defined in configuration files for different drivers, selected by package options; at present, the following drivers are supported: <dl class="description"><dt class="description"> + <!--l. 242--><p class="noindent" > <span class="ec-lmbx-10">hypertex</span> </dt><dd -class="description">DVI processors conforming to the HyperTeX guidelines (i.e. <span +class="description"> + <!--l. 242--><p class="noindent" >DVI processors conforming to the HyperTeX guidelines (i.e. <span class="ec-lmss-10">xdvi</span>, <span class="ec-lmss-10">dvips </span>(with the <span -class="ec-lmss-10">-z</span> - option), <span class="HoLogo-OzTeX"><span +class="ec-lmss-10">-z </span>option), + <span class="HoLogo-OzTeX"><span class="ec-lmss-10">O</span><span class="HoLogo-z"><span class="ec-lmss-10">z</span></span><span class="HoLogo-TeX"><span class="ec-lmss-10">T</span><span class="HoLogo-e"><span @@ -323,74 +334,100 @@ class="ec-lmss-10">E</span></span><span class="ec-lmss-10">X</span></span></span>, and <span class="ec-lmss-10">Textures</span>) </dd><dt class="description"> + <!--l. 244--><p class="noindent" > <span class="ec-lmbx-10">dvips</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 244--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands tailored for <span class="ec-lmss-10">dvips</span> </dd><dt class="description"> + <!--l. 245--><p class="noindent" > <span class="ec-lmbx-10">dvipsone</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 245--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands tailored for <span class="ec-lmss-10">dvipsone</span> </dd><dt class="description"> + <!--l. 246--><p class="noindent" > <span class="ec-lmbx-10">ps2pdf</span> </dt><dd -class="description">a special case of output suitable for processing by earlier versions of Ghostscript’s PDF +class="description"> + <!--l. 246--><p class="noindent" >a special case of output suitable for processing by earlier versions of Ghostscript’s PDF writer; this is basically the same as that for <span class="ec-lmss-10">dvips</span>, but a few variations remained before version 5.21 </dd><dt class="description"> + <!--l. 248--><p class="noindent" > <span class="ec-lmbx-10">tex4ht</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 248--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands for use with <span class="ec-lmss-10">TeX4ht</span> </dd><dt class="description"> + <!--l. 249--><p class="noindent" > <span class="ec-lmbx-10">pdftex</span> </dt><dd -class="description">pdfTeX, Hàn Thế Thành’s TeX variant that writes PDF directly +class="description"> + <!--l. 249--><p class="noindent" >pdfTeX, Hàn Thế Thành’s TeX variant that writes PDF directly + + </dd><dt class="description"> + <!--l. 250--><p class="noindent" > <span class="ec-lmbx-10">luatex</span> </dt><dd -class="description">luaTeX, Unicode TeX variant that writes PDF directly +class="description"> + <!--l. 250--><p class="noindent" >luaTeX, Unicode TeX variant that writes PDF directly </dd><dt class="description"> + <!--l. 251--><p class="noindent" > <span class="ec-lmbx-10">dvipdfm</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 251--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands for Mark Wicks’ DVI to PDF driver <span class="ec-lmss-10">dvipdfm</span> </dd><dt class="description"> + <!--l. 252--><p class="noindent" > <span class="ec-lmbx-10">dvipdfmx</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 252--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands for driver <span class="ec-lmss-10">dvipdfmx</span>, a successor of <span class="ec-lmss-10">dvipdfm</span> </dd><dt class="description"> + <!--l. 254--><p class="noindent" > <span class="ec-lmbx-10">dviwindo</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span -class="ec-lmvtt-10">\special</span></span></span> commands that Y&Y’s Windows previewer interprets as hypertext - jumps within the previewer +class="description"> + <!--l. 254--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands that Y&Y’s Windows previewer interprets as hypertext jumps + within the previewer </dd><dt class="description"> + <!--l. 255--><p class="noindent" > <span class="ec-lmbx-10">vtex</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 255--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands that MicroPress’ HTML and PDF-producing TeX variants interpret as hypertext jumps within the previewer </dd><dt class="description"> + <!--l. 258--><p class="noindent" > <span class="ec-lmbx-10">textures</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span -class="ec-lmvtt-10">\special</span></span></span> commands that <span -class="ec-lmss-10">Textures </span>interprets as hypertext jumps within the +class="description"> + <!--l. 258--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands that <span +class="ec-lmss-10">Textures </span>interprets as hypertext jumps within the previewer </dd><dt class="description"> + <!--l. 259--><p class="noindent" > <span class="ec-lmbx-10">xetex</span> </dt><dd -class="description">produces <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 259--><p class="noindent" >produces <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special</span></span></span> commands for XeTeX</dd></dl> <!--l. 262--><p class="indent" > Output from <span class="ec-lmss-10">dvips </span>or <span @@ -405,13 +442,16 @@ class="ec-lmss-10">dvips -z</span>, but the DVI file is not portable. The main a HyperTeX <span class="ec-lmvtt-10">\special </span>commands is that you can also use the document in hypertext DVI viewers, such as <span -class="ec-lmss-10">xdvi</span>. +class="ec-lmss-10">xdvi</span>. + <dl class="description"><dt class="description"> + <!--l. 273--><p class="noindent" > <span class="ec-lmbx-10">driverfallback</span> </dt><dd -class="description">If a driver is not given and cannot be autodetected, then use the driver option, given as - value to this option <span +class="description"> + <!--l. 273--><p class="noindent" >If a driver is not given and cannot be autodetected, then use the driver option, given as value to + this option <span class="ec-lmss-10">driverfallback</span>. Example: <blockquote class="quote"> <!--l. 278--><p class="noindent" ><span @@ -476,7 +516,8 @@ in <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hypersetup</span></span></span> as the option settings are processed as the package is read. <!--l. 331--><p class="indent" > As an example, the behavior of a particular file could be controlled by: <ul class="itemize1"> - <li class="itemize">a site-wide <span + <li class="itemize"> + <!--l. 334--><p class="noindent" >a site-wide <span class="ec-lmvtt-10">hyperref.cfg </span>setting up the look of links, adding backreferencing, and setting a PDF display default: @@ -488,7 +529,8 @@ class="ec-lmvtt-10">hyperref.cfg </span>setting up the look of links, adding bac </pre> <!--l. 341--><p class="nopar" > </li> - <li class="itemize">A global option in the file, which is passed down to <span + <li class="itemize"> + <!--l. 343--><p class="noindent" >A global option in the file, which is passed down to <span class="ec-lmss-10">hyperref</span>: @@ -497,7 +539,8 @@ class="ec-lmss-10">hyperref</span>: </pre> <!--l. 348--><p class="nopar" > </li> - <li class="itemize">File-specific options in the <span + <li class="itemize"> + <!--l. 350--><p class="noindent" >File-specific options in the <span class="ec-lmvtt-10">\usepackage </span>commands, which override the ones set in <span class="ec-lmvtt-10">hyperref.cfg</span>: @@ -624,16 +667,21 @@ by a dot. Example for the fourth chapter: class="ec-lmvtt-10">chapter.4</span></span></span></blockquote> <!--l. 409--><p class="noindent" >This scheme is used by: <dl class="description"><dt class="description"> + <!--l. 411--><p class="noindent" > <span class="ec-lmvtk-10">\autoref</span> </dt><dd -class="description">displays the description label for the reference depending on the counter name. +class="description"> + <!--l. 411--><p class="noindent" >displays the description label for the reference depending on the counter name. + + </dd><dt class="description"> + <!--l. 413--><p class="noindent" > <span class="ec-lmvtk-10">\hyperpage</span> </dt><dd -class="description">is used by the index to get page links. Page anchor setting (<span class="obeylines-h"><span class="verb"><span -class="ec-lmvtt-10">pageanchor</span></span></span>) must not - be turned off.</dd></dl> - +class="description"> + <!--l. 413--><p class="noindent" >is used by the index to get page links. Page anchor setting (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pageanchor</span></span></span>) must not be turned + off.</dd></dl> <!--l. 418--><p class="indent" > It is very important that the destination names are unique, because two destinations must not share the same name. The counter value <span class="ec-lmvtt-10">\the<counter> </span>is not always unique for the counter. For example, @@ -939,20 +987,24 @@ wrong and displaced. id="x1-80003.4"></a>Backend drivers</h4> <!--l. 563--><p class="noindent" >If no driver is specified, the package tries to find a driver in the following order: <ol class="enumerate1" > - <li - class="enumerate" id="x1-8002x1">Autodetection, some TeX processors can be detected at TeX macro level (pdfTeX, XeTeX, +<li + class="enumerate" id="x1-8002x1"> + <!--l. 566--><p class="noindent" >Autodetection, some TeX processors can be detected at TeX macro level (pdfTeX, XeTeX, VTeX). </li> - <li - class="enumerate" id="x1-8004x2">Option <span +<li + class="enumerate" id="x1-8004x2"> + <!--l. 568--><p class="noindent" >Option <span class="ec-lmss-10">driverfallback</span>. If this option is set, its value is taken as driver option. </li> - <li - class="enumerate" id="x1-8006x3">Macro <span +<li + class="enumerate" id="x1-8006x3"> + <!--l. 570--><p class="noindent" >Macro <span class="ec-lmvtt-10">\Hy@defaultdriver</span>. The macro takes a driver file name (without file extension). </li> - <li - class="enumerate" id="x1-8008x4">Package default is <span +<li + class="enumerate" id="x1-8008x4"> + <!--l. 572--><p class="noindent" >Package default is <span class="ec-lmss-10">hypertex</span>.</li></ol> <!--l. 574--><p class="noindent" >Many distributions are using a driver file <span class="ec-lmvtt-10">hypertex.cfg </span>that define <span @@ -968,6 +1020,8 @@ generation. ><colgroup id="TBL-5-1g"><col id="TBL-5-1"><col id="TBL-5-2"></colgroup> + + <tr style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-1" class="td01"><span @@ -1019,8 +1073,6 @@ class="td10"> <!--l. 586--><p class="noindent" >Sets up <span class="ec-lmss-10">hyperref </span>for use with the <span class="ec-lmss-10">dviwindo </span>Windows previewer. </td> - - </tr><tr style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-8-1" class="td01"><span @@ -1358,33 +1410,30 @@ class="td10"> <!--l. 649--><p class="noindent" >Use small caps instead of color for links. </td> </tr><tr style="vertical-align:baseline;" id="TBL-6-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-3" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-21-4" -class="td10"></td></tr> -<tr - style="vertical-align:baseline;" id="TBL-6-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-22-1" class="td01"><span -class="ec-lmvtt-10">hidelinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-22-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-22-3" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-22-4" +class="ec-lmvtt-10">hidelinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-21-4" class="td10"> <!--l. 650--><p class="noindent" >Hide links (removing color and border). </td> </tr><tr + style="vertical-align:baseline;" id="TBL-6-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-22-1" +class="td01"> </td> +</tr><tr style="vertical-align:baseline;" id="TBL-6-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-23-1" -class="td01"> </td> +class="td01"> </td> </tr><tr style="vertical-align:baseline;" id="TBL-6-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-24-1" -class="td01"> </td> +class="td01"> </td> </tr><tr style="vertical-align:baseline;" id="TBL-6-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-25-1" -class="td01"> </td> +class="td01"> </td> </tr><tr style="vertical-align:baseline;" id="TBL-6-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-26-1" -class="td01"> </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-6-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-27-1" -class="td01"> </td></tr> +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-26-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-26-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-26-4" +class="td10"></td></tr> </table></div> <!--l. 653--><p class="noindent" >Note that all color names must be defined before use, following the normal system of the standard LaTeX <span @@ -1625,7 +1674,7 @@ id="TBL-8-4"></colgroup> <tr style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-1" class="td01"><span -class="ec-lmvtt-10">baseurl </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-1-2" +class="ec-lmvtt-10">baseurl </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-1-2" class="td11"> <!--l. 716--><p class="noindent" >URL </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-3" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-1-4" @@ -1634,7 +1683,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-1" class="td01"><span -class="ec-lmvtt-10">pdfpagemode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-2-2" +class="ec-lmvtt-10">pdfpagemode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-2-2" class="td11"> <!--l. 717--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-3" class="td11"> <span @@ -1657,7 +1706,7 @@ class="ec-lmvtt-10">UseOutlines</span></span></span> is used. </td </tr><tr style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-1" class="td01"><span -class="ec-lmvtt-10">pdftitle </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-3-2" +class="ec-lmvtt-10">pdftitle </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-3-2" class="td11"> <!--l. 722--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-3" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-3-4" @@ -1666,7 +1715,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-1" class="td01"><span -class="ec-lmvtt-10">pdfauthor </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-4-2" +class="ec-lmvtt-10">pdfauthor </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-4-2" class="td11"> <!--l. 723--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-3" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-4-4" @@ -1675,7 +1724,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-1" class="td01"><span -class="ec-lmvtt-10">pdfsubject </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-5-2" +class="ec-lmvtt-10">pdfsubject </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-5-2" class="td11"> <!--l. 724--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-3" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-5-4" @@ -1684,7 +1733,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-6-1" class="td01"><span -class="ec-lmvtt-10">pdfcreator </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-6-2" +class="ec-lmvtt-10">pdfcreator </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-6-2" class="td11"> <!--l. 725--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-6-3" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-6-4" @@ -1693,7 +1742,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-7-1" class="td01"><span -class="ec-lmvtt-10">addtopdfcreator </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-7-2" +class="ec-lmvtt-10">addtopdfcreator </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-7-2" class="td11"> <!--l. 726--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-7-3" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-7-4" @@ -1703,7 +1752,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-8-1" class="td01"><span -class="ec-lmvtt-10">pdfkeywords </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-8-2" +class="ec-lmvtt-10">pdfkeywords </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-8-2" class="td11"> <!--l. 727--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-8-3" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-8-4" @@ -1712,7 +1761,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-9-1" class="td01"><span -class="ec-lmvtt-10">pdftrapped </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-9-2" +class="ec-lmvtt-10">pdftrapped </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-9-2" class="td11"> <!--l. 728--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-9-3" class="td11"> <span @@ -1727,7 +1776,7 @@ class="ec-lmvtt-10">Unknown</span></span></span>. </tr><tr style="vertical-align:baseline;" id="TBL-8-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-10-1" class="td01"><span -class="ec-lmvtt-10">pdfinfo </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-10-2" +class="ec-lmvtt-10">pdfinfo </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-10-2" class="td11"> <!--l. 731--><p class="noindent" >key value @@ -1740,7 +1789,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-11-1" class="td01"><span -class="ec-lmvtt-10">pdfview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-11-2" +class="ec-lmvtt-10">pdfview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-11-2" class="td11"> <!--l. 733--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-11-3" class="td11"> <span @@ -1750,7 +1799,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-12-1" class="td01"><span -class="ec-lmvtt-10">pdfstartpage </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-12-2" +class="ec-lmvtt-10">pdfstartpage </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-12-2" class="td11"> <!--l. 734--><p class="noindent" >integer </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-12-3" class="td11"> <span @@ -1762,7 +1811,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-13-1" class="td01"><span -class="ec-lmvtt-10">pdfstartview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-13-2" +class="ec-lmvtt-10">pdfstartview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-13-2" class="td11"> <!--l. 735--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-13-3" class="td11"> <span @@ -1772,17 +1821,19 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-14-1" class="td01"><span -class="ec-lmvtt-10">pdfremotestartview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-14-2" +class="ec-lmvtt-10">pdfremotestartview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-14-2" class="td11"> <!--l. 736--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-14-3" class="td11"> <span class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-14-4" class="td10"> <!--l. 736--><p class="noindent" >Set the startup page view of remote PDF files</td> + + </tr><tr style="vertical-align:baseline;" id="TBL-8-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-15-1" class="td01"><span -class="ec-lmvtt-10">pdfpagescrop </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-15-2" +class="ec-lmvtt-10">pdfpagescrop </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-15-2" class="td11"> <!--l. 737--><p class="noindent" >n n @@ -1792,12 +1843,10 @@ class="td11"> </td><td style="white-space:normal; text-align:left;" i class="td10"> <!--l. 737--><p class="noindent" >Sets the default PDF crop box for pages. This should be a set of four numbers </td> - - </tr><tr style="vertical-align:baseline;" id="TBL-8-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-16-1" class="td01"><span -class="ec-lmvtt-10">pdfcenterwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-16-2" +class="ec-lmvtt-10">pdfcenterwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-16-2" class="td11"> <!--l. 738--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-16-3" class="td11"> <span @@ -1808,7 +1857,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-17-1" class="td01"><span -class="ec-lmvtt-10">pdfdirection </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-17-2" +class="ec-lmvtt-10">pdfdirection </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-17-2" class="td11"> <!--l. 739--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-17-3" class="td11"> <span @@ -1821,7 +1870,7 @@ class="ec-lmvtt-10">R2L</span></span></span> (right to left) </tr><tr style="vertical-align:baseline;" id="TBL-8-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-18-1" class="td01"><span -class="ec-lmvtt-10">pdfdisplaydoctitle </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-18-2" +class="ec-lmvtt-10">pdfdisplaydoctitle </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-18-2" class="td11"> <!--l. 741--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-18-3" class="td11"> <span @@ -1832,7 +1881,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-8-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-19-1" class="td01"><span -class="ec-lmvtt-10">pdfduplex </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-19-2" +class="ec-lmvtt-10">pdfduplex </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-19-2" class="td11"> <!--l. 742--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-19-3" class="td11"> <span @@ -1850,7 +1899,7 @@ class="ec-lmvtt-10">DuplexFlipLongEdge</span></span></span> (duplex and flip on </tr><tr style="vertical-align:baseline;" id="TBL-8-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-20-1" class="td01"><span -class="ec-lmvtt-10">pdffitwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-20-2" +class="ec-lmvtt-10">pdffitwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-20-2" class="td11"> <!--l. 747--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-20-3" class="td11"> <span @@ -1859,49 +1908,43 @@ class="td10"> <!--l. 747--><p class="noindent" >resize document window to fit document size </td> </tr><tr style="vertical-align:baseline;" id="TBL-8-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-21-1" -class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-21-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-21-3" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-21-4" -class="td10"></td></tr> -<tr - style="vertical-align:baseline;" id="TBL-8-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-22-1" class="td01"><span -class="ec-lmvtt-10">pdflang </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-22-2" +class="ec-lmvtt-10">pdflang </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-21-2" class="td11"> - <!--l. 748--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-22-3" + <!--l. 748--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-21-3" class="td11"> <span -class="ec-lmri-10">relax </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-22-4" +class="ec-lmri-10">relax </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-21-4" class="td10"> <!--l. 748--><p class="noindent" >PDF language identifier (RFC 3066) </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-23-1" + style="vertical-align:baseline;" id="TBL-8-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-22-1" class="td01"><span -class="ec-lmvtt-10">pdfmenubar </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-23-2" +class="ec-lmvtt-10">pdfmenubar </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-22-2" class="td11"> - <!--l. 749--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-23-3" + <!--l. 749--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-22-3" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-23-4" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-22-4" class="td10"> <!--l. 749--><p class="noindent" >make PDF viewer’s menu bar visible </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-24-1" + style="vertical-align:baseline;" id="TBL-8-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-23-1" class="td01"><span -class="ec-lmvtt-10">pdfnewwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-24-2" +class="ec-lmvtt-10">pdfnewwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-23-2" class="td11"> - <!--l. 750--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-24-3" + <!--l. 750--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-23-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-24-4" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-23-4" class="td10"> <!--l. 750--><p class="noindent" >make links that open another PDF file start a new window </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-25-1" + style="vertical-align:baseline;" id="TBL-8-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-24-1" class="td01"><span -class="ec-lmvtt-10">pdfnonfullscreenpagemode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-25-2" +class="ec-lmvtt-10">pdfnonfullscreenpagemode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-24-2" class="td11"> - <!--l. 752--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-25-3" + <!--l. 752--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-24-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-25-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-24-4" class="td10"> <!--l. 752--><p class="noindent" >page mode setting on exiting full-screen mode. Possible values are <span class="obeylines-h"><span class="verb"><span @@ -1911,23 +1954,23 @@ class="ec-lmvtt-10">UseOutlines</span></span></span>, class="ec-lmvtt-10">UseThumbs</span></span></span>, and <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">UseOC</span></span></span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-26-1" + style="vertical-align:baseline;" id="TBL-8-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-25-1" class="td01"><span -class="ec-lmvtt-10">pdfnumcopies </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-26-2" +class="ec-lmvtt-10">pdfnumcopies </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-25-2" class="td11"> - <!--l. 754--><p class="noindent" >integer </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-26-3" + <!--l. 754--><p class="noindent" >integer </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-25-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-26-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-25-4" class="td10"> <!--l. 754--><p class="noindent" >number of printed copies </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-27-1" + style="vertical-align:baseline;" id="TBL-8-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-26-1" class="td01"><span -class="ec-lmvtt-10">pdfpagelayout </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-27-2" +class="ec-lmvtt-10">pdfpagelayout </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-26-2" class="td11"> - <!--l. 755--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-27-3" + <!--l. 755--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-26-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-27-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-26-4" class="td10"> <!--l. 755--><p class="noindent" >set layout of PDF pages. Possible values: <span class="obeylines-h"><span class="verb"><span @@ -1940,23 +1983,23 @@ class="ec-lmvtt-10">TwoPageLeft</span></span></span>, and <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">TwoPageRight</span></span></span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-28-1" + style="vertical-align:baseline;" id="TBL-8-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-27-1" class="td01"><span -class="ec-lmvtt-10">pdfpagelabels </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-28-2" +class="ec-lmvtt-10">pdfpagelabels </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-27-2" class="td11"> - <!--l. 759--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-28-3" + <!--l. 759--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-27-3" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-28-4" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-27-4" class="td10"> <!--l. 759--><p class="noindent" >set PDF page labels </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-29-1" + style="vertical-align:baseline;" id="TBL-8-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-28-1" class="td01"><span -class="ec-lmvtt-10">pdfpagetransition </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-29-2" +class="ec-lmvtt-10">pdfpagetransition </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-28-2" class="td11"> - <!--l. 760--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-29-3" + <!--l. 760--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-28-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-29-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-28-4" class="td10"> <!--l. 760--><p class="noindent" >set PDF page transition style. Possible values are <span class="obeylines-h"><span class="verb"><span @@ -1978,24 +2021,26 @@ class="ec-lmvtt-10">Fade</span></span></span>. class="ec-lmvtt-10">R</span></span></span>, which simply replaces the old page with the new one. </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-30-1" + style="vertical-align:baseline;" id="TBL-8-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-29-1" class="td01"><span -class="ec-lmvtt-10">pdfpicktraybypdfsize </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-30-2" +class="ec-lmvtt-10">pdfpicktraybypdfsize </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-29-2" class="td11"> - <!--l. 769--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-30-3" + <!--l. 769--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-29-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-30-4" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-29-4" class="td10"> <!--l. 769--><p class="noindent" >specify whether PDF page size is used to select input paper tray in print dialog </td> + + </tr><tr - style="vertical-align:baseline;" id="TBL-8-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-31-1" + style="vertical-align:baseline;" id="TBL-8-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-30-1" class="td01"><span -class="ec-lmvtt-10">pdfprintarea </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-31-2" +class="ec-lmvtt-10">pdfprintarea </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-30-2" class="td11"> - <!--l. 770--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-31-3" + <!--l. 770--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-30-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-31-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-30-4" class="td10"> <!--l. 770--><p class="noindent" >set /PrintArea of viewer preferences. Possible values are <span class="obeylines-h"><span class="verb"><span @@ -2007,16 +2052,14 @@ class="ec-lmvtt-10">TrimBox</span></span></span>, and <span class="obeylines-h"> class="ec-lmvtt-10">ArtBox</span></span></span>. The dafault according to the PDF Refence is <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">CropBox</span></span></span> </td> - - </tr><tr - style="vertical-align:baseline;" id="TBL-8-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-32-1" + style="vertical-align:baseline;" id="TBL-8-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-31-1" class="td01"><span -class="ec-lmvtt-10">pdfprintclip </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-32-2" +class="ec-lmvtt-10">pdfprintclip </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-31-2" class="td11"> - <!--l. 774--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-32-3" + <!--l. 774--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-31-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-32-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-31-4" class="td10"> <!--l. 774--><p class="noindent" >set /PrintClip of viewer preferences. Possible values are <span class="obeylines-h"><span class="verb"><span @@ -2029,26 +2072,26 @@ class="ec-lmvtt-10">ArtBox</span></span></span>. The dafault according to the PDF Refence is <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">CropBox</span></span></span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-33-1" + style="vertical-align:baseline;" id="TBL-8-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-32-1" class="td01"><span -class="ec-lmvtt-10">pdfprintpagerange </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-33-2" +class="ec-lmvtt-10">pdfprintpagerange </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-32-2" class="td11"> <!--l. 778--><p class="noindent" >n n (n - n)* </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-33-3" + n)* </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-32-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-33-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-32-4" class="td10"> <!--l. 779--><p class="noindent" >set /PrintPageRange of viewer preferences </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-34-1" + style="vertical-align:baseline;" id="TBL-8-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-33-1" class="td01"><span -class="ec-lmvtt-10">pdfprintscaling </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-34-2" +class="ec-lmvtt-10">pdfprintscaling </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-33-2" class="td11"> - <!--l. 780--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-34-3" + <!--l. 780--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-33-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-34-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-33-4" class="td10"> <!--l. 780--><p class="noindent" >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</span></span></span> and <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">AppDefault</span></span></span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-35-1" + style="vertical-align:baseline;" id="TBL-8-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-34-1" class="td01"><span -class="ec-lmvtt-10">pdftoolbar </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-35-2" +class="ec-lmvtt-10">pdftoolbar </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-34-2" class="td11"> - <!--l. 785--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-35-3" + <!--l. 785--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-34-3" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-35-4" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-34-4" class="td10"> <!--l. 785--><p class="noindent" >make PDF toolbar visible </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-36-1" + style="vertical-align:baseline;" id="TBL-8-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-35-1" class="td01"><span -class="ec-lmvtt-10">pdfviewarea </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-36-2" +class="ec-lmvtt-10">pdfviewarea </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-35-2" class="td11"> - <!--l. 786--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-36-3" + <!--l. 786--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-35-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-36-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-35-4" class="td10"> <!--l. 786--><p class="noindent" >set /ViewArea of viewer preferences. Possible values are <span class="obeylines-h"><span class="verb"><span @@ -2085,13 +2128,13 @@ class="ec-lmvtt-10">ArtBox</span></span></span>. The dafault according to the PDF Refence is <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">CropBox</span></span></span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-37-1" + style="vertical-align:baseline;" id="TBL-8-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-36-1" class="td01"><span -class="ec-lmvtt-10">pdfviewclip </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-37-2" +class="ec-lmvtt-10">pdfviewclip </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-36-2" class="td11"> - <!--l. 790--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-37-3" + <!--l. 790--><p class="noindent" >name </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-36-3" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-37-4" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-36-4" class="td10"> <!--l. 790--><p class="noindent" >set /ViewClip of viewer preferences Possible values are <span class="obeylines-h"><span class="verb"><span @@ -2104,26 +2147,29 @@ class="ec-lmvtt-10">ArtBox</span></span></span>. The dafault according to the PDF Refence is <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">CropBox</span></span></span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-38-1" + style="vertical-align:baseline;" id="TBL-8-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-37-1" class="td01"><span -class="ec-lmvtt-10">pdfwindowui </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-38-2" +class="ec-lmvtt-10">pdfwindowui </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-37-2" class="td11"> - <!--l. 794--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-38-3" + <!--l. 794--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-37-3" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-38-4" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-37-4" class="td10"> <!--l. 794--><p class="noindent" >make PDF user interface elements visible </td> </tr><tr - style="vertical-align:baseline;" id="TBL-8-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-39-1" + style="vertical-align:baseline;" id="TBL-8-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-38-1" class="td01"><span -class="ec-lmvtt-10">unicode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-39-2" +class="ec-lmvtt-10">unicode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-38-2" class="td11"> - <!--l. 795--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-39-3" + <!--l. 795--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-38-3" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-39-4" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-38-4" class="td10"> <!--l. 795--><p class="noindent" >Unicode encoded PDF strings </td> </tr><tr + style="vertical-align:baseline;" id="TBL-8-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-39-1" +class="td01"> </td> +</tr><tr style="vertical-align:baseline;" id="TBL-8-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-40-1" class="td01"> </td> </tr><tr @@ -2131,16 +2177,16 @@ class="td01"> </td> class="td01"> </td> </tr><tr style="vertical-align:baseline;" id="TBL-8-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-42-1" -class="td01"> </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-8-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-43-1" -class="td01"> </td></tr> +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-42-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-42-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-42-4" +class="td10"></td></tr> </table></div> <!--l. 798--><p class="noindent" >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 <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hypercalcbp</span></span></span> that is explained on page <a -href="#x1-190004.3">47<!--tex4ht:ref: hypercalcbp --></a>. pdfTeX works by supplying default values for <span +href="#x1-190004.3">48<!--tex4ht:ref: hypercalcbp --></a>. pdfTeX works by supplying default values for <span class="ec-lmvtt-10">XYZ </span>(horizontal <span class="lmsy-10">×</span> vertical <span @@ -2174,6 +2220,8 @@ class="ec-lmri-10">null null</span> <span class="ec-lmri-10">null </span>will give the same values as the current page. </td> + + </tr><tr style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-1" class="td01"><span @@ -2197,8 +2245,6 @@ class="td11"> <span class="ec-lmri-10">left </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-4-3" class="td10"> <!--l. 815--><p class="noindent" >Fits the height of the page to the window. </td> - - </tr><tr style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-1" class="td01"><span @@ -2348,6 +2394,8 @@ class="ec-lmvtt-10">Box </span></td><td style="white-space:nowrap; text-a class="td11"> /M </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-3" class="td10"> <!--l. 843--><p class="noindent" >A box sweeps in or out. </td> + + </tr><tr style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-1" class="td01"><span @@ -2364,8 +2412,6 @@ class="td11"> /Di </td><td style="white-space:normal; text-align:left; class="td10"> <!--l. 845--><p class="noindent" >Similar to Dissolve, except the effect sweeps across the screen. </td> - - </tr><tr style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-1" class="td01"><span @@ -2493,14 +2539,14 @@ id="TBL-12-3"></colgroup> <tr style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-1" class="td01"><span -class="ec-lmvtt-10">allbordercolors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-2" +class="ec-lmvtt-10">allbordercolors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-2" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-3" class="td10"> <!--l. 894--><p class="noindent" >Set all border color options </td> </tr><tr style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-1" class="td01"><span -class="ec-lmvtt-10">allcolors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-2" +class="ec-lmvtt-10">allcolors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-2" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-3" class="td10"> <!--l. 895--><p class="noindent" >Set all color options (without border and field @@ -2508,7 +2554,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-1" class="td01"><span -class="ec-lmvtt-10">anchorcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-2" +class="ec-lmvtt-10">anchorcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-2" class="td11"> <span class="ec-lmri-10">black </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-3" class="td10"> @@ -2516,7 +2562,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-1" class="td01"><span -class="ec-lmvtt-10">backref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-2" +class="ec-lmvtt-10">backref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-4-3" class="td10"> @@ -2524,7 +2570,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-1" class="td01"><span -class="ec-lmvtt-10">baseurl </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-2" +class="ec-lmvtt-10">baseurl </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-2" class="td11"> <span class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-5-3" class="td10"> @@ -2532,7 +2578,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-1" class="td01"><span -class="ec-lmvtt-10">bookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-2" +class="ec-lmvtt-10">bookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-2" class="td11"> <span class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-6-3" class="td10"> @@ -2540,7 +2586,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-7-1" class="td01"><span -class="ec-lmvtt-10">bookmarksnumbered </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-7-2" +class="ec-lmvtt-10">bookmarksnumbered </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-7-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-7-3" class="td10"> @@ -2548,7 +2594,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-8-1" class="td01"><span -class="ec-lmvtt-10">bookmarksopen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-8-2" +class="ec-lmvtt-10">bookmarksopen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-8-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-8-3" class="td10"> @@ -2556,7 +2602,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-9-1" class="td01"><span -class="ec-lmvtt-10">bookmarksopenlevel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-9-2" +class="ec-lmvtt-10">bookmarksopenlevel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-9-2" class="td11"> <span class="ec-lmvtt-10">\maxdimen </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-9-3" class="td10"> @@ -2564,7 +2610,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-10-1" class="td01"><span -class="ec-lmvtt-10">bookmarkstype </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-10-2" +class="ec-lmvtt-10">bookmarkstype </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-10-2" class="td11"> <span class="ec-lmri-10">toc </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-10-3" class="td10"> @@ -2572,7 +2618,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-11-1" class="td01"><span -class="ec-lmvtt-10">breaklinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-11-2" +class="ec-lmvtt-10">breaklinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-11-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-11-3" class="td10"> @@ -2580,7 +2626,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-12-1" class="td01"><span -class="ec-lmvtt-10">CJKbookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-12-2" +class="ec-lmvtt-10">CJKbookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-12-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-12-3" class="td10"> @@ -2588,7 +2634,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-13-1" class="td01"><span -class="ec-lmvtt-10">citebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-13-2" +class="ec-lmvtt-10">citebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-13-2" class="td11"> <span class="ec-lmri-10">0 1 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-13-3" class="td10"> @@ -2596,7 +2642,7 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-14-1" class="td01"><span -class="ec-lmvtt-10">citecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-14-2" +class="ec-lmvtt-10">citecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-14-2" class="td11"> <span class="ec-lmri-10">green </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-14-3" class="td10"> @@ -2604,35 +2650,35 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-15-1" class="td01"><span -class="ec-lmvtt-10">colorlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-15-2" +class="ec-lmvtt-10">colorlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-15-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-15-3" class="td10"> <!--l. 908--><p class="noindent" >color links </td> </tr><tr style="vertical-align:baseline;" id="TBL-12-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-16-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-16-2" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-16-2" class="td11"> <span class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-16-3" class="td10"> <!--l. 909--><p class="noindent" >(<span class="ec-lmss-10">tex4ht</span>, <span class="ec-lmss-10">dviwindo</span>) </td> + + </tr><tr style="vertical-align:baseline;" id="TBL-12-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-17-1" class="td01"><span -class="ec-lmvtt-10">debug </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-17-2" +class="ec-lmvtt-10">debug </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-17-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-17-3" class="td10"> <!--l. 910--><p class="noindent" >provide details of anchors defined; same as verbose </td> - - </tr><tr style="vertical-align:baseline;" id="TBL-12-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-18-1" class="td01"><span -class="ec-lmvtt-10">destlabel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-18-2" +class="ec-lmvtt-10">destlabel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-18-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-18-3" class="td10"> @@ -2642,7 +2688,7 @@ class="ec-lmvtt-10">\label</span></span></span> </tr><tr style="vertical-align:baseline;" id="TBL-12-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-19-1" class="td01"><span -class="ec-lmvtt-10">draft </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-19-2" +class="ec-lmvtt-10">draft </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-19-2" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-19-3" class="td10"> @@ -2650,586 +2696,572 @@ class="td10"> </tr><tr style="vertical-align:baseline;" id="TBL-12-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-20-1" class="td01"><span -class="ec-lmvtt-10">driverfallback </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-20-2" +class="ec-lmvtt-10">driverfallback </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-20-2" class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-20-3" class="td10"> <!--l. 913--><p class="noindent" >default if no driver specified or detected </td> </tr><tr style="vertical-align:baseline;" id="TBL-12-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-21-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-21-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-21-3" -class="td10"></td></tr> -<tr - style="vertical-align:baseline;" id="TBL-12-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-22-1" class="td01"><span -class="ec-lmvtt-10">dvipdfm </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-22-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-22-3" +class="ec-lmvtt-10">dvipdfm </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-21-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-21-3" class="td10"> <!--l. 914--><p class="noindent" >use <span class="ec-lmss-10">dvipdfm </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-23-1" + style="vertical-align:baseline;" id="TBL-12-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-22-1" class="td01"><span -class="ec-lmvtt-10">dvipdfmx </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-23-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-23-3" +class="ec-lmvtt-10">dvipdfmx </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-22-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-22-3" class="td10"> <!--l. 915--><p class="noindent" >use <span class="ec-lmss-10">dvipdfmx </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-24-1" + style="vertical-align:baseline;" id="TBL-12-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-23-1" class="td01"><span -class="ec-lmvtt-10">dvips </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-24-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-24-3" +class="ec-lmvtt-10">dvips </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-23-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-23-3" class="td10"> <!--l. 916--><p class="noindent" >use <span class="ec-lmss-10">dvips </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-25-1" + style="vertical-align:baseline;" id="TBL-12-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-24-1" class="td01"><span -class="ec-lmvtt-10">dvipsone </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-25-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-25-3" +class="ec-lmvtt-10">dvipsone </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-24-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-24-3" class="td10"> <!--l. 917--><p class="noindent" >use <span class="ec-lmss-10">dvipsone </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-26-1" + style="vertical-align:baseline;" id="TBL-12-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-25-1" class="td01"><span -class="ec-lmvtt-10">dviwindo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-26-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-26-3" +class="ec-lmvtt-10">dviwindo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-25-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-25-3" class="td10"> <!--l. 918--><p class="noindent" >use <span class="ec-lmss-10">dviwindo </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-27-1" + style="vertical-align:baseline;" id="TBL-12-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-26-1" class="td01"><span -class="ec-lmvtt-10">encap </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-27-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-27-3" +class="ec-lmvtt-10">encap </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-26-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-26-3" class="td10"> <!--l. 919--><p class="noindent" >to set encap character for hyperindex </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-28-1" + style="vertical-align:baseline;" id="TBL-12-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-27-1" class="td01"><span -class="ec-lmvtt-10">extension </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-28-2" +class="ec-lmvtt-10">extension </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-27-2" class="td11"> <span -class="ec-lmri-10">dvi </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-28-3" +class="ec-lmri-10">dvi </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-27-3" class="td10"> <!--l. 920--><p class="noindent" >suffix of linked files </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-29-1" + style="vertical-align:baseline;" id="TBL-12-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-28-1" class="td01"><span -class="ec-lmvtt-10">filebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-29-2" +class="ec-lmvtt-10">filebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-28-2" class="td11"> <span -class="ec-lmri-10">0 .5 .5 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-29-3" +class="ec-lmri-10">0 .5 .5 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-28-3" class="td10"> <!--l. 921--><p class="noindent" >color of border around file links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-30-1" + style="vertical-align:baseline;" id="TBL-12-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-29-1" class="td01"><span -class="ec-lmvtt-10">filecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-30-2" +class="ec-lmvtt-10">filecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-29-2" class="td11"> <span -class="ec-lmri-10">cyan </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-30-3" +class="ec-lmri-10">cyan </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-29-3" class="td10"> <!--l. 922--><p class="noindent" >color of file links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-31-1" + style="vertical-align:baseline;" id="TBL-12-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-30-1" class="td01"><span -class="ec-lmvtt-10">final </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-31-2" +class="ec-lmvtt-10">final </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-30-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-31-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-30-3" class="td10"> <!--l. 923--><p class="noindent" >opposite of option draft </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-32-1" + style="vertical-align:baseline;" id="TBL-12-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-31-1" class="td01"><span -class="ec-lmvtt-10">frenchlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-32-2" +class="ec-lmvtt-10">frenchlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-31-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-32-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-31-3" class="td10"> <!--l. 924--><p class="noindent" >use small caps instead of color for links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-33-1" + style="vertical-align:baseline;" id="TBL-12-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-32-1" class="td01"><span -class="ec-lmvtt-10">hidelinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-33-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-33-3" +class="ec-lmvtt-10">hidelinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-32-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-32-3" class="td10"> <!--l. 925--><p class="noindent" >Hide links (removing color and border) </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-34-1" + style="vertical-align:baseline;" id="TBL-12-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-33-1" class="td01"><span -class="ec-lmvtt-10">hyperfigures </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-34-2" +class="ec-lmvtt-10">hyperfigures </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-33-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-34-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-33-3" class="td10"> <!--l. 926--><p class="noindent" >make figures hyper links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-35-1" + style="vertical-align:baseline;" id="TBL-12-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-34-1" class="td01"><span -class="ec-lmvtt-10">hyperfootnotes </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-35-2" +class="ec-lmvtt-10">hyperfootnotes </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-34-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-35-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-34-3" class="td10"> <!--l. 927--><p class="noindent" >set up hyperlinked footnotes </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-36-1" + style="vertical-align:baseline;" id="TBL-12-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-35-1" class="td01"><span -class="ec-lmvtt-10">hyperindex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-36-2" +class="ec-lmvtt-10">hyperindex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-35-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-36-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-35-3" class="td10"> <!--l. 928--><p class="noindent" >set up hyperlinked indices </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-37-1" + style="vertical-align:baseline;" id="TBL-12-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-36-1" class="td01"><span -class="ec-lmvtt-10">hypertex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-37-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-37-3" +class="ec-lmvtt-10">hypertex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-36-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-36-3" class="td10"> <!--l. 929--><p class="noindent" >use <span class="ec-lmss-10">HyperTeX </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-38-1" + style="vertical-align:baseline;" id="TBL-12-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-37-1" class="td01"><span -class="ec-lmvtt-10">hypertexnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-38-2" +class="ec-lmvtt-10">hypertexnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-37-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-38-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-37-3" class="td10"> <!--l. 930--><p class="noindent" >use guessable names for links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-39-1" + style="vertical-align:baseline;" id="TBL-12-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-38-1" class="td01"><span -class="ec-lmvtt-10">implicit </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-39-2" +class="ec-lmvtt-10">implicit </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-38-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-39-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-38-3" class="td10"> <!--l. 931--><p class="noindent" >redefine LaTeX internals </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-40-1" + style="vertical-align:baseline;" id="TBL-12-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-39-1" class="td01"><span -class="ec-lmvtt-10">latex2html </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-40-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-40-3" +class="ec-lmvtt-10">latex2html </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-39-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-39-3" class="td10"> <!--l. 932--><p class="noindent" >use <span class="ec-lmss-10">LaTeX2HTML </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-41-1" + style="vertical-align:baseline;" id="TBL-12-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-40-1" class="td01"><span -class="ec-lmvtt-10">linkbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-41-2" +class="ec-lmvtt-10">linkbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-40-2" class="td11"> <span -class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-41-3" +class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-40-3" class="td10"> <!--l. 933--><p class="noindent" >color of border around links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-42-1" -class="td01"> </td></tr> -<tr - style="vertical-align:baseline;" id="TBL-12-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-43-1" + style="vertical-align:baseline;" id="TBL-12-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-41-1" class="td01"><span -class="ec-lmvtt-10">linkcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-43-2" +class="ec-lmvtt-10">linkcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-41-2" class="td11"> <span -class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-43-3" +class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-41-3" class="td10"> <!--l. 934--><p class="noindent" >color of links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-44-1" + style="vertical-align:baseline;" id="TBL-12-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-42-1" class="td01"><span -class="ec-lmvtt-10">linktoc </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-44-2" +class="ec-lmvtt-10">linktoc </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-42-2" class="td11"> <span -class="ec-lmri-10">section </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-44-3" +class="ec-lmri-10">section </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-42-3" class="td10"> <!--l. 935--><p class="noindent" >make text be link on TOC, LOF and LOT </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-45-1" + style="vertical-align:baseline;" id="TBL-12-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-43-1" class="td01"><span -class="ec-lmvtt-10">linktocpage </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-45-2" +class="ec-lmvtt-10">linktocpage </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-43-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-45-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-43-3" class="td10"> <!--l. 936--><p class="noindent" >make page number, not text, be link on TOC, LOF and LOT </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-46-1" + style="vertical-align:baseline;" id="TBL-12-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-44-1" class="td01"><span -class="ec-lmvtt-10">menubordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-46-2" +class="ec-lmvtt-10">menubordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-44-2" class="td11"> <span -class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-46-3" +class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-44-3" class="td10"> <!--l. 937--><p class="noindent" >color of border around menu links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-47-1" + style="vertical-align:baseline;" id="TBL-12-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-45-1" class="td01"><span -class="ec-lmvtt-10">menucolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-47-2" +class="ec-lmvtt-10">menucolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-45-2" class="td11"> <span -class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-47-3" +class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-45-3" class="td10"> <!--l. 938--><p class="noindent" >color for menu links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-48-1" + style="vertical-align:baseline;" id="TBL-12-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-46-1" class="td01"><span -class="ec-lmvtt-10">nativepdf </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-48-2" +class="ec-lmvtt-10">nativepdf </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-46-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-48-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-46-3" class="td10"> <!--l. 939--><p class="noindent" >an alias for <span class="ec-lmss-10">dvips</span> </td> + + </tr><tr - style="vertical-align:baseline;" id="TBL-12-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-49-1" + style="vertical-align:baseline;" id="TBL-12-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-47-1" class="td01"><span -class="ec-lmvtt-10">naturalnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-49-2" +class="ec-lmvtt-10">naturalnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-47-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-49-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-47-3" class="td10"> <!--l. 940--><p class="noindent" >use LaTeX-computed names for links </td> - - </tr><tr - style="vertical-align:baseline;" id="TBL-12-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-50-1" + style="vertical-align:baseline;" id="TBL-12-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-48-1" class="td01"><span -class="ec-lmvtt-10">nesting </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-50-2" +class="ec-lmvtt-10">nesting </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-48-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-50-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-48-3" class="td10"> <!--l. 941--><p class="noindent" >allow nesting of links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-51-1" + style="vertical-align:baseline;" id="TBL-12-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-49-1" class="td01"><span -class="ec-lmvtt-10">pageanchor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-51-2" +class="ec-lmvtt-10">pageanchor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-49-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-51-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-49-3" class="td10"> <!--l. 942--><p class="noindent" >put an anchor on every page </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-52-1" + style="vertical-align:baseline;" id="TBL-12-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-50-1" class="td01"><span -class="ec-lmvtt-10">pagebackref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-52-2" +class="ec-lmvtt-10">pagebackref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-50-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-52-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-50-3" class="td10"> <!--l. 943--><p class="noindent" >backreference by page number </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-53-1" + style="vertical-align:baseline;" id="TBL-12-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-51-1" class="td01"><span -class="ec-lmvtt-10">pdfauthor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-53-2" +class="ec-lmvtt-10">pdfauthor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-51-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-53-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-51-3" class="td10"> <!--l. 944--><p class="noindent" >text for PDF Author field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-54-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-54-1" + style="vertical-align:baseline;" id="TBL-12-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-52-1" class="td01"><span -class="ec-lmvtt-10">pdfborder </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-54-2" +class="ec-lmvtt-10">pdfborder </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-52-2" class="td11"> <span -class="ec-lmri-10">0 0 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-54-3" +class="ec-lmri-10">0 0 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-52-3" class="td10"> <!--l. 945--><p class="noindent" >width of PDF link border </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-55-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-55-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-55-2" + style="vertical-align:baseline;" id="TBL-12-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-53-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-53-2" class="td11"> <span -class="ec-lmri-10">0 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-55-3" +class="ec-lmri-10">0 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-53-3" class="td10"> <!--l. 946--><p class="noindent" >(<span class="ec-lmvtt-10">colorlinks)</span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-56-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-56-1" + style="vertical-align:baseline;" id="TBL-12-54-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-54-1" class="td01"><span -class="ec-lmvtt-10">pdfborderstyle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-56-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-56-3" +class="ec-lmvtt-10">pdfborderstyle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-54-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-54-3" class="td10"> <!--l. 947--><p class="noindent" >border style for links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-57-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-57-1" + style="vertical-align:baseline;" id="TBL-12-55-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-55-1" class="td01"><span -class="ec-lmvtt-10">pdfcenterwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-57-2" +class="ec-lmvtt-10">pdfcenterwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-55-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-57-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-55-3" class="td10"> <!--l. 948--><p class="noindent" >position the document window in the center of the screen </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-58-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-58-1" + style="vertical-align:baseline;" id="TBL-12-56-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-56-1" class="td01"><span -class="ec-lmvtt-10">pdfcreator </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-58-2" +class="ec-lmvtt-10">pdfcreator </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-56-2" class="td11"> <span -class="ec-lmri-10">LaTeX with </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-58-3" +class="ec-lmri-10">LaTeX with </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-56-3" class="td10"> <!--l. 949--><p class="noindent" >text for PDF Creator field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-59-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-59-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-59-2" + style="vertical-align:baseline;" id="TBL-12-57-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-57-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-57-2" class="td11"> <span -class="ec-lmri-10">hyperref </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-59-3" +class="ec-lmri-10">hyperref </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-57-3" class="td10"> <!--l. 951--><p class="noindent" > </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-60-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-60-1" + style="vertical-align:baseline;" id="TBL-12-58-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-58-1" class="td01"><span -class="ec-lmvtt-10">pdfdirection </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-60-2" +class="ec-lmvtt-10">pdfdirection </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-58-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-60-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-58-3" class="td10"> <!--l. 951--><p class="noindent" >direction setting </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-61-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-61-1" + style="vertical-align:baseline;" id="TBL-12-59-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-59-1" class="td01"><span -class="ec-lmvtt-10">pdfdisplaydoctitle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-61-2" +class="ec-lmvtt-10">pdfdisplaydoctitle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-59-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-61-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-59-3" class="td10"> <!--l. 952--><p class="noindent" >display document title instead of file name in title bar </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-62-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-62-1" + style="vertical-align:baseline;" id="TBL-12-60-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-60-1" class="td01"><span -class="ec-lmvtt-10">pdfduplex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-62-2" +class="ec-lmvtt-10">pdfduplex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-60-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-62-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-60-3" class="td10"> <!--l. 954--><p class="noindent" >paper handling option for print dialog </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-63-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-63-1" -class="td01"> </td></tr> -<tr - style="vertical-align:baseline;" id="TBL-12-64-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-64-1" + style="vertical-align:baseline;" id="TBL-12-61-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-61-1" class="td01"><span -class="ec-lmvtt-10">pdffitwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-64-2" +class="ec-lmvtt-10">pdffitwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-61-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-64-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-61-3" class="td10"> <!--l. 956--><p class="noindent" >resize document window to fit document size </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-65-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-65-1" + style="vertical-align:baseline;" id="TBL-12-62-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-62-1" class="td01"><span -class="ec-lmvtt-10">pdfhighlight </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-65-2" +class="ec-lmvtt-10">pdfhighlight </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-62-2" class="td11"> <span -class="ec-lmri-10">/I </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-65-3" +class="ec-lmri-10">/I </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-62-3" class="td10"> <!--l. 957--><p class="noindent" >set highlighting of PDF links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-66-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-66-1" + style="vertical-align:baseline;" id="TBL-12-63-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-63-1" class="td01"><span -class="ec-lmvtt-10">pdfinfo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-66-2" +class="ec-lmvtt-10">pdfinfo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-63-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-66-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-63-3" class="td10"> <!--l. 958--><p class="noindent" >alternative interface for setting document information </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-67-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-67-1" + style="vertical-align:baseline;" id="TBL-12-64-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-64-1" class="td01"><span -class="ec-lmvtt-10">pdfkeywords </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-67-2" +class="ec-lmvtt-10">pdfkeywords </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-64-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-67-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-64-3" class="td10"> <!--l. 959--><p class="noindent" >text for PDF Keywords field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-68-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-68-1" + style="vertical-align:baseline;" id="TBL-12-65-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-65-1" class="td01"><span -class="ec-lmvtt-10">pdflang </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-68-2" +class="ec-lmvtt-10">pdflang </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-65-2" class="td11"> <span -class="ec-lmri-10">relax </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-68-3" +class="ec-lmri-10">relax </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-65-3" class="td10"> <!--l. 960--><p class="noindent" >PDF language identifier (RFC 3066) </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-69-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-69-1" + style="vertical-align:baseline;" id="TBL-12-66-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-66-1" class="td01"><span -class="ec-lmvtt-10">pdfmark </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-69-2" +class="ec-lmvtt-10">pdfmark </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-66-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-69-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-66-3" class="td10"> <!--l. 961--><p class="noindent" >an alias for <span class="ec-lmss-10">dvips</span> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-70-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-70-1" + style="vertical-align:baseline;" id="TBL-12-67-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-67-1" class="td01"><span -class="ec-lmvtt-10">pdfmenubar </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-70-2" +class="ec-lmvtt-10">pdfmenubar </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-67-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-70-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-67-3" class="td10"> <!--l. 962--><p class="noindent" >make PDF viewer’s menu bar visible </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-71-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-71-1" + style="vertical-align:baseline;" id="TBL-12-68-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-68-1" class="td01"><span -class="ec-lmvtt-10">pdfnewwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-71-2" +class="ec-lmvtt-10">pdfnewwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-68-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-71-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-68-3" class="td10"> <!--l. 963--><p class="noindent" >make links that open another PDF </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-72-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-72-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-72-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-72-3" + style="vertical-align:baseline;" id="TBL-12-69-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-69-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-69-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-69-3" class="td10"> <!--l. 964--><p class="noindent" >file start a new window </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-73-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-73-1" + style="vertical-align:baseline;" id="TBL-12-70-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-70-1" class="td01"><span -class="ec-lmvtt-10">pdfnonfullscreenpagemode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-73-2" +class="ec-lmvtt-10">pdfnonfullscreenpagemode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-70-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-73-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-70-3" class="td10"> <!--l. 966--><p class="noindent" >page mode setting on exiting full-screen mode</td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-74-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-74-1" + style="vertical-align:baseline;" id="TBL-12-71-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-71-1" class="td01"><span -class="ec-lmvtt-10">pdfnumcopies </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-74-2" +class="ec-lmvtt-10">pdfnumcopies </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-71-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-74-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-71-3" class="td10"> <!--l. 968--><p class="noindent" >number of printed copies </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-75-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-75-1" + style="vertical-align:baseline;" id="TBL-12-72-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-72-1" class="td01"><span -class="ec-lmvtt-10">pdfpagelabels </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-75-2" +class="ec-lmvtt-10">pdfpagelabels </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-72-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-75-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-72-3" class="td10"> <!--l. 969--><p class="noindent" >set PDF page labels </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-76-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-76-1" + style="vertical-align:baseline;" id="TBL-12-73-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-73-1" class="td01"><span -class="ec-lmvtt-10">pdfpagelayout </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-76-2" +class="ec-lmvtt-10">pdfpagelayout </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-73-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-76-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-73-3" class="td10"> <!--l. 970--><p class="noindent" >set layout of PDF pages </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-77-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-77-1" + style="vertical-align:baseline;" id="TBL-12-74-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-74-1" class="td01"><span -class="ec-lmvtt-10">pdfpagemode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-77-2" +class="ec-lmvtt-10">pdfpagemode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-74-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-77-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-74-3" class="td10"> <!--l. 971--><p class="noindent" >set default mode of PDF display </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-78-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-78-1" + style="vertical-align:baseline;" id="TBL-12-75-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-75-1" class="td01"><span -class="ec-lmvtt-10">pdfpagescrop </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-78-2" +class="ec-lmvtt-10">pdfpagescrop </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-75-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-78-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-75-3" class="td10"> <!--l. 972--><p class="noindent" >set crop size of PDF document </td> + + </tr><tr - style="vertical-align:baseline;" id="TBL-12-79-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-79-1" + style="vertical-align:baseline;" id="TBL-12-76-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-76-1" class="td01"><span -class="ec-lmvtt-10">pdfpagetransition </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-79-2" +class="ec-lmvtt-10">pdfpagetransition </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-76-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-79-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-76-3" class="td10"> <!--l. 973--><p class="noindent" >set PDF page transition style </td> - - </tr><tr - style="vertical-align:baseline;" id="TBL-12-80-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-80-1" + style="vertical-align:baseline;" id="TBL-12-77-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-77-1" class="td01"><span -class="ec-lmvtt-10">pdfpicktraybypdfsize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-80-2" +class="ec-lmvtt-10">pdfpicktraybypdfsize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-77-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-80-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-77-3" class="td10"> <!--l. 975--><p class="noindent" >set option for print dialog </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-81-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-81-1" + style="vertical-align:baseline;" id="TBL-12-78-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-78-1" class="td01"><span -class="ec-lmvtt-10">pdfprintarea </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-81-2" +class="ec-lmvtt-10">pdfprintarea </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-78-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-81-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-78-3" class="td10"> <!--l. 976--><p class="noindent" >set /PrintArea of viewer preferences </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-82-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-82-1" + style="vertical-align:baseline;" id="TBL-12-79-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-79-1" class="td01"><span -class="ec-lmvtt-10">pdfprintclip </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-82-2" +class="ec-lmvtt-10">pdfprintclip </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-79-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-82-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-79-3" class="td10"> <!--l. 977--><p class="noindent" >set /PrintClip of viewer preferences </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-83-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-83-1" + style="vertical-align:baseline;" id="TBL-12-80-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-80-1" class="td01"><span -class="ec-lmvtt-10">pdfprintpagerange </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-83-2" +class="ec-lmvtt-10">pdfprintpagerange </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-80-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-83-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-80-3" class="td10"> <!--l. 978--><p class="noindent" >set /PrintPageRange of viewer preferences </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-84-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-84-1" -class="td01"> </td></tr> -<tr - style="vertical-align:baseline;" id="TBL-12-85-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-85-1" + style="vertical-align:baseline;" id="TBL-12-81-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-81-1" class="td01"><span -class="ec-lmvtt-10">pdfprintscaling </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-85-2" +class="ec-lmvtt-10">pdfprintscaling </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-81-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-85-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-81-3" class="td10"> <!--l. 979--><p class="noindent" >page scaling option for print dialog </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-86-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-86-1" + style="vertical-align:baseline;" id="TBL-12-82-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-82-1" class="td01"><span -class="ec-lmvtt-10">pdfproducer </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-86-2" +class="ec-lmvtt-10">pdfproducer </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-82-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-86-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-82-3" class="td10"> <!--l. 980--><p class="noindent" >text for PDF Producer field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-87-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-87-1" + style="vertical-align:baseline;" id="TBL-12-83-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-83-1" class="td01"><span -class="ec-lmvtt-10">pdfremotestartview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-87-2" +class="ec-lmvtt-10">pdfremotestartview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-83-2" class="td11"> <span -class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-87-3" +class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-83-3" class="td10"> <!--l. 981--><p class="noindent" >starting view of remote PDF documents </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-88-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-88-1" + style="vertical-align:baseline;" id="TBL-12-84-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-84-1" class="td01"><span -class="ec-lmvtt-10">pdfstartpage </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-88-2" +class="ec-lmvtt-10">pdfstartpage </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-84-2" class="td11"> <span -class="ec-lmri-10">1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-88-3" +class="ec-lmri-10">1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-84-3" class="td10"> <!--l. 982--><p class="noindent" >page at which PDF document opens </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-89-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-89-1" + style="vertical-align:baseline;" id="TBL-12-85-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-85-1" class="td01"><span -class="ec-lmvtt-10">pdfstartview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-89-2" +class="ec-lmvtt-10">pdfstartview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-85-2" class="td11"> <span -class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-89-3" +class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-85-3" class="td10"> <!--l. 983--><p class="noindent" >starting view of PDF document </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-90-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-90-1" + style="vertical-align:baseline;" id="TBL-12-86-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-86-1" class="td01"><span -class="ec-lmvtt-10">pdfsubject </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-90-2" +class="ec-lmvtt-10">pdfsubject </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-86-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-90-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-86-3" class="td10"> <!--l. 984--><p class="noindent" >text for PDF Subject field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-91-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-91-1" + style="vertical-align:baseline;" id="TBL-12-87-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-87-1" class="td01"><span -class="ec-lmvtt-10">pdftex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-91-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-91-3" +class="ec-lmvtt-10">pdftex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-87-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-87-3" class="td10"> <!--l. 985--><p class="noindent" >use <span class="ec-lmss-10">pdfTeX </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-92-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-92-1" + style="vertical-align:baseline;" id="TBL-12-88-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-88-1" class="td01"><span -class="ec-lmvtt-10">pdftitle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-92-2" +class="ec-lmvtt-10">pdftitle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-88-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-92-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-88-3" class="td10"> <!--l. 986--><p class="noindent" >text for PDF Title field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-93-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-93-1" + style="vertical-align:baseline;" id="TBL-12-89-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-89-1" class="td01"><span -class="ec-lmvtt-10">pdftoolbar </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-93-2" +class="ec-lmvtt-10">pdftoolbar </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-89-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-93-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-89-3" class="td10"> <!--l. 987--><p class="noindent" >make PDF toolbar visible </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-94-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-94-1" + style="vertical-align:baseline;" id="TBL-12-90-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-90-1" class="td01"><span -class="ec-lmvtt-10">pdftrapped </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-94-2" +class="ec-lmvtt-10">pdftrapped </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-90-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-94-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-90-3" class="td10"> <!--l. 988--><p class="noindent" >Sets the document information Trapped entry. Possible values are <span @@ -3238,122 +3270,119 @@ class="ec-lmvtt-10">False </span>and <span class="ec-lmvtt-10">Unknown</span>. An empty value means, the entry is not set. </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-95-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-95-1" + style="vertical-align:baseline;" id="TBL-12-91-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-91-1" class="td01"><span -class="ec-lmvtt-10">pdfview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-95-2" +class="ec-lmvtt-10">pdfview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-91-2" class="td11"> <span -class="ec-lmri-10">XYZ </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-95-3" +class="ec-lmri-10">XYZ </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-91-3" class="td10"> <!--l. 991--><p class="noindent" >PDF ‘view’ when on link traversal </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-96-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-96-1" + style="vertical-align:baseline;" id="TBL-12-92-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-92-1" class="td01"><span -class="ec-lmvtt-10">pdfviewarea </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-96-2" +class="ec-lmvtt-10">pdfviewarea </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-92-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-96-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-92-3" class="td10"> <!--l. 992--><p class="noindent" >set /ViewArea of viewer preferences </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-97-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-97-1" + style="vertical-align:baseline;" id="TBL-12-93-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-93-1" class="td01"><span -class="ec-lmvtt-10">pdfviewclip </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-97-2" +class="ec-lmvtt-10">pdfviewclip </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-93-2" class="td11"> <span -class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-97-3" +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-93-3" class="td10"> <!--l. 993--><p class="noindent" >set /ViewClip of viewer preferences </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-98-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-98-1" + style="vertical-align:baseline;" id="TBL-12-94-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-94-1" class="td01"><span -class="ec-lmvtt-10">pdfwindowui </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-98-2" +class="ec-lmvtt-10">pdfwindowui </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-94-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-98-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-94-3" class="td10"> <!--l. 994--><p class="noindent" >make PDF user interface elements visible </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-99-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-99-1" + style="vertical-align:baseline;" id="TBL-12-95-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-95-1" class="td01"><span -class="ec-lmvtt-10">plainpages </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-99-2" +class="ec-lmvtt-10">plainpages </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-95-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-99-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-95-3" class="td10"> <!--l. 995--><p class="noindent" >do page number anchors as plain Arabic </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-100-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-100-1" + style="vertical-align:baseline;" id="TBL-12-96-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-96-1" class="td01"><span -class="ec-lmvtt-10">ps2pdf </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-100-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-100-3" +class="ec-lmvtt-10">ps2pdf </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-96-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-96-3" class="td10"> <!--l. 996--><p class="noindent" >use <span class="ec-lmss-10">ps2pdf </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-101-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-101-1" + style="vertical-align:baseline;" id="TBL-12-97-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-97-1" class="td01"><span -class="ec-lmvtt-10">psdextra </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-101-2" +class="ec-lmvtt-10">psdextra </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-97-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-101-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-97-3" class="td10"> <!--l. 997--><p class="noindent" >define more short names for PDF string commands </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-102-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-102-1" + style="vertical-align:baseline;" id="TBL-12-98-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-98-1" class="td01"><span -class="ec-lmvtt-10">raiselinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-102-2" +class="ec-lmvtt-10">raiselinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-98-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-102-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-98-3" class="td10"> <!--l. 998--><p class="noindent" >raise up links (for <span class="ec-lmss-10">HyperTeX </span>backend) </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-103-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-103-1" + style="vertical-align:baseline;" id="TBL-12-99-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-99-1" class="td01"><span -class="ec-lmvtt-10">runbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-103-2" +class="ec-lmvtt-10">runbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-99-2" class="td11"> <span -class="ec-lmri-10">0 .7 .7 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-103-3" +class="ec-lmri-10">0 .7 .7 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-99-3" class="td10"> <!--l. 999--><p class="noindent" >color of border around ‘run’ links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-104-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-104-1" + style="vertical-align:baseline;" id="TBL-12-100-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-100-1" class="td01"><span -class="ec-lmvtt-10">runcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-104-2" +class="ec-lmvtt-10">runcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-100-2" class="td11"> <span -class="ec-lmri-10">filecolor </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-104-3" +class="ec-lmri-10">filecolor </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-100-3" class="td10"> <!--l. 1000--><p class="noindent" >color of ‘run’ links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-105-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-105-1" -class="td01"> </td></tr> -<tr - style="vertical-align:baseline;" id="TBL-12-106-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-106-1" + style="vertical-align:baseline;" id="TBL-12-101-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-101-1" class="td01"><span -class="ec-lmvtt-10">setpagesize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-106-2" +class="ec-lmvtt-10">setpagesize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-101-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-106-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-101-3" class="td10"> <!--l. 1001--><p class="noindent" >set page size by special driver commands </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-107-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-107-1" + style="vertical-align:baseline;" id="TBL-12-102-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-102-1" class="td01"><span -class="ec-lmvtt-10">tex4ht </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-107-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-107-3" +class="ec-lmvtt-10">tex4ht </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-102-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-102-3" class="td10"> <!--l. 1002--><p class="noindent" >use <span class="ec-lmss-10">TeX4ht </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-108-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-108-1" + style="vertical-align:baseline;" id="TBL-12-103-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-103-1" class="td01"><span -class="ec-lmvtt-10">textures </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-108-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-108-3" +class="ec-lmvtt-10">textures </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-103-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-103-3" class="td10"> <!--l. 1003--><p class="noindent" >use <span class="ec-lmss-10">Textures </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-109-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-109-1" + style="vertical-align:baseline;" id="TBL-12-104-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-104-1" class="td01"><span -class="ec-lmvtt-10">unicode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-109-2" +class="ec-lmvtt-10">unicode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-104-2" class="td11"> <span -class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-109-3" +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-104-3" class="td10"> <!--l. 1004--><p class="noindent" >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. </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-110-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-110-1" + style="vertical-align:baseline;" id="TBL-12-105-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-105-1" class="td01"><span -class="ec-lmvtt-10">urlbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-110-2" +class="ec-lmvtt-10">urlbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-105-2" class="td11"> <span -class="ec-lmri-10">0 1 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-110-3" +class="ec-lmri-10">0 1 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-105-3" class="td10"> <!--l. 1005--><p class="noindent" >color of border around URL links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-111-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-111-1" + style="vertical-align:baseline;" id="TBL-12-106-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-106-1" class="td01"><span -class="ec-lmvtt-10">urlcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-111-2" +class="ec-lmvtt-10">urlcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-106-2" class="td11"> <span -class="ec-lmri-10">magenta </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-111-3" +class="ec-lmri-10">magenta </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-106-3" class="td10"> <!--l. 1006--><p class="noindent" >color of URL links </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-112-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-112-1" + style="vertical-align:baseline;" id="TBL-12-107-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-107-1" class="td01"><span -class="ec-lmvtt-10">verbose </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-112-2" +class="ec-lmvtt-10">verbose </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-107-2" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-112-3" +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-107-3" class="td10"> <!--l. 1007--><p class="noindent" >be chatty </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-113-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-113-1" + style="vertical-align:baseline;" id="TBL-12-108-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-108-1" class="td01"><span -class="ec-lmvtt-10">vtex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-113-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-113-3" +class="ec-lmvtt-10">vtex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-108-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-108-3" class="td10"> <!--l. 1008--><p class="noindent" >use <span class="ec-lmss-10">VTeX </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-114-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-114-1" + style="vertical-align:baseline;" id="TBL-12-109-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-109-1" class="td01"><span -class="ec-lmvtt-10">xetex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-114-2" -class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-114-3" +class="ec-lmvtt-10">xetex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-109-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-109-3" class="td10"> <!--l. 1009--><p class="noindent" >use <span class="ec-lmss-10">XeTeX </span>backend </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-115-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-115-1" -class="td01"> </td> + style="vertical-align:baseline;" id="TBL-12-110-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-110-1" +class="td01"> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-116-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-116-1" -class="td01"> </td> + style="vertical-align:baseline;" id="TBL-12-111-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-111-1" +class="td01"> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-117-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-117-1" -class="td01"> </td> + style="vertical-align:baseline;" id="TBL-12-112-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-112-1" +class="td01"> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-118-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-118-1" -class="td01"> </td> + style="vertical-align:baseline;" id="TBL-12-113-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-113-1" +class="td01"> </td> </tr><tr - style="vertical-align:baseline;" id="TBL-12-119-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-119-1" -class="td01"> </td></tr> + style="vertical-align:baseline;" id="TBL-12-114-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-114-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-114-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-114-3" +class="td10"></td></tr> </table></div> <!--l. 1012--><p class="noindent" > <h3 class="sectionHead"><span class="titlemark">4 </span> <a @@ -3450,24 +3481,32 @@ class="ec-lmvtt-10">pdfremotestartview</span>, <span class="ec-lmvtt-10">pdfnewwindow</span> and the following key value options: <dl class="description"><dt class="description"> + <!--l. 1030--><p class="noindent" > <span class="ec-lmvtk-10">page</span><span class="ec-lmbx-10">:</span> </dt><dd -class="description">Specifies the start page number of remote PDF documents. First page is <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 1030--><p class="noindent" >Specifies the start page number of remote PDF documents. First page is <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">1</span></span></span>. </dd><dt class="description"> + <!--l. 1032--><p class="noindent" > <span class="ec-lmvtk-10">ismap</span><span class="ec-lmbx-10">:</span> </dt><dd -class="description">Boolean key, if set to <span class="obeylines-h"><span class="verb"><span -class="ec-lmvtt-10">true</span></span></span>, the URL should appended by the coordinates as query - parameters by the PDF viewer. +class="description"> + <!--l. 1032--><p class="noindent" >Boolean key, if set to <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">true</span></span></span>, the URL should appended by the coordinates as query parameters + by the PDF viewer. </dd><dt class="description"> + <!--l. 1035--><p class="noindent" > <span class="ec-lmvtk-10">nextactionraw</span><span class="ec-lmbx-10">:</span> </dt><dd -class="description">The value of key <span class="obeylines-h"><span class="verb"><span +class="description"> + <!--l. 1035--><p class="noindent" >The value of key <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">/Next</span></span></span> of action dictionaries, see PDF specification.</dd></dl> + + <!--l. 1039--><p class="noindent" > <span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-14" class="tabular" @@ -3490,8 +3529,6 @@ class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">}}</span></span></span>. Depending on the driver <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\href</span></span></span> also tries to detect the link type. Thus the result can be a url link, file link, … - - <!--l. 1048--><p class="noindent" > <span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-15" class="tabular" @@ -3636,6 +3673,8 @@ class="ec-lmvtt-10">\hyperlink</span></span></span> has two arguments, the name class="ec-lmvtt-10">\hypertarget</span></span></span>, and the <span class="ec-lmri-10">text </span>which be used as the link on the page. + + <!--l. 1106--><p class="indent" > Note that in HTML parlance, the <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hyperlink</span></span></span> command inserts a notional # in front of each link, making it relative to the current testdocument; <span class="obeylines-h"><span class="verb"><span @@ -3651,7 +3690,6 @@ class="ec-lmvtt-10">\phantomsection </span></td> </tr></table> </div></span> <!--l. 1114--><p class="noindent" >This sets an anchor at this location. It works similar to <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hypertarget{}{}</span></span></span> with an automatically chosen - anchor name. Often it is used in conjunction with <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\addcontentsline</span></span></span> for sectionlike things (index, bibliography, preface). <span class="obeylines-h"><span class="verb"><span @@ -3972,29 +4010,35 @@ class="ec-lmvtt-10">\pdfstringdef </span>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: <ul class="itemize1"> - <li class="itemize">Switching to PD1 or PU encoding + <li class="itemize"> + <!--l. 1268--><p class="noindent" >Switching to PD1 or PU encoding </li> - <li class="itemize">Defining the “octal sequence commands” (<span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1269--><p class="noindent" >Defining the “octal sequence commands” (<span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\345</span></span></span>): <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\edef\3{\string\3}</span></span></span> </li> - <li class="itemize">Special glyphs of TeX: <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1270--><p class="noindent" >Special glyphs of TeX: <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\{</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\%</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\&</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\space</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\dots</span></span></span>, etc. </li> - <li class="itemize">National glyphs (<span + <li class="itemize"> + <!--l. 1271--><p class="noindent" >National glyphs (<span class="ec-lmss-10">german.sty</span>, <span class="ec-lmss-10">french.sty</span>, etc.) </li> - <li class="itemize">Logos: <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1272--><p class="noindent" >Logos: <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\TeX</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\eTeX</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\MF</span></span></span>, etc. </li> - <li class="itemize">Disabling commands that do not provide useful functionality in bookmarks: <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1273--><p class="noindent" >Disabling commands that do not provide useful functionality in bookmarks: <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\label</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\index</span></span></span>, <span class="obeylines-h"><span class="verb"><span @@ -4003,12 +4047,16 @@ class="ec-lmvtt-10">\discretionary</span></span></span>, <span class="obeylines- class="ec-lmvtt-10">\def</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\let</span></span></span>, etc. </li> - <li class="itemize">LaTeX’s font commands like <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1275--><p class="noindent" >LaTeX’s font commands like <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\textbf</span></span></span>, etc. </li> - <li class="itemize">Support for <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1276--><p class="noindent" >Support for <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\xspace</span></span></span> provided by the <span class="ec-lmss-10">xspace </span>package</li></ul> + + <!--l. 1279--><p class="indent" > 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 <span @@ -4030,8 +4078,6 @@ can put in manually, or include in a style file, which stops the hypertext funct This is used, for instance, in the Elsevier classes, to stop <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">hyperref</span></span></span> playing havoc in the front matter. - - <!--l. 1292--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a id="x1-150004.1"></a>Bookmark macros</h4> @@ -4113,11 +4159,15 @@ class="ec-lmbx-10">Hint: </span>Package <span class="ec-lmss-10">bookmark </span>replaces <span class="ec-lmss-10">hyperref</span>’s bookmark organization by a new algorithm: <ul class="itemize1"> - <li class="itemize">Usually only one LaTeX run is needed. + <li class="itemize"> + <!--l. 1326--><p class="noindent" >Usually only one LaTeX run is needed. + </li> - <li class="itemize">More control over the bookmark appearance (color, font). + <li class="itemize"> + <!--l. 1327--><p class="noindent" >More control over the bookmark appearance (color, font). </li> - <li class="itemize">Different bookmark actions are supported (external file links, URLs, …).</li></ul> + <li class="itemize"> + <!--l. 1328--><p class="noindent" >Different bookmark actions are supported (external file links, URLs, …).</li></ul> <!--l. 1331--><p class="noindent" >Therefore I recommend using this package. <!--l. 1333--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">4.1.2 </span> <a @@ -4127,8 +4177,6 @@ class="ec-lmss-10">hyperref </span>takes the text for bookmarks from the argumen class="ec-lmvtt-10">\section</span>, which can contain things like math, colors, or font changes, none of which will display in bookmarks as is. - - <!--l. 1339--><p class="noindent" > <span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-37" class="tabular" @@ -4266,39 +4314,51 @@ href="hyperref-doc5.html#fn4x0"><sup class="textsuperscript">4</sup></a></span>< Default is 1 pt for supporting drivers. <!--l. 1437--><p class="indent" > <dl class="description"><dt class="description"> + <!--l. 1438--><p class="noindent" > <span class="ec-lmbx-10">pdfTeX</span> </dt><dd class="description"> + <!--l. 1438--><p class="noindent" > <ul class="itemize1"> - <li class="itemize">The link area also depends on the surrounding box. + <li class="itemize"> + <!--l. 1440--><p class="noindent" >The link area also depends on the surrounding box. </li> - <li class="itemize">Settings have local effect. + <li class="itemize"> + <!--l. 1441--><p class="noindent" >Settings have local effect. </li> - <li class="itemize">When a page is shipped out, pdfTeX uses the current setting of the link margin for all + <li class="itemize"> + <!--l. 1442--><p class="noindent" >When a page is shipped out, pdfTeX uses the current setting of the link margin for all links on the page.</li></ul> </dd><dt class="description"> + <!--l. 1446--><p class="noindent" > <span class="ec-lmbx-10">pdfmark</span> </dt><dd class="description"> + <!--l. 1446--><p class="noindent" > + <ul class="itemize1"> - <li class="itemize">Settings have global effect.</li></ul> + <li class="itemize"> + <!--l. 1448--><p class="noindent" >Settings have global effect.</li></ul> </dd><dt class="description"> + <!--l. 1451--><p class="noindent" > <span class="ec-lmbx-10">xetex</span> </dt><dd class="description"> - - + <!--l. 1451--><p class="noindent" > <ul class="itemize1"> - <li class="itemize">Settings must be done in the preamble or the first page and then have global effect. + <li class="itemize"> + <!--l. 1453--><p class="noindent" >Settings must be done in the preamble or the first page and then have global effect. The key inserts the new (x)dvipdfmx special <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\special{dvipdfmx:config</span><span class="ec-lmvtt-10"> g</span><span class="ec-lmvtt-10"> #1}</span></span></span> (with the unit removed).</li></ul> </dd><dt class="description"> + <!--l. 1457--><p class="noindent" > <span class="ec-lmbx-10">Other drivers</span> </dt><dd -class="description">Unsupported.</dd></dl> +class="description"> + <!--l. 1457--><p class="noindent" >Unsupported.</dd></dl> <!--l. 1462--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">5.2 </span> <a id="x1-220005.2"></a>Field option ‘calculatesortkey’</h4> @@ -4556,19 +4616,24 @@ class="ec-lmvtt-10">\nohyperpage</span></span></span>.) <!--l. 1712--><p class="indent" > 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. <ul class="itemize1"> - <li class="itemize">The option must be given for package loading: <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1715--><p class="noindent" >The option must be given for package loading: <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\usepackage[ocgcolorlinks]{hyperref}</span></span></span> </li> - <li class="itemize">Main disadvantage: Links cannot be broken across lines. PDF reference 1.7: 4.10.2 “Making + <li class="itemize"> + <!--l. 1717--><p class="noindent" >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. </li> - <li class="itemize">The feature can be switched of by <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1723--><p class="noindent" >The feature can be switched of by <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hypersetup{ocgcolorlinks=false}</span></span></span> inside the document. </li> - <li class="itemize">Supported drivers: pdftex, dvipdfm + <li class="itemize"> + <!--l. 1725--><p class="noindent" >Supported drivers: pdftex, dvipdfm </li> - <li class="itemize">The PDF version should be at least 1.5. It is automatically set for pdfTeX, LuaTeX and + <li class="itemize"> + <!--l. 1726--><p class="noindent" >The PDF version should be at least 1.5. It is automatically set for pdfTeX, LuaTeX and dvipdfmx.</li></ul> <!--l. 1730--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">5.12 </span> <a @@ -4578,25 +4643,34 @@ result is usually not in PDF/A, because many features aren’t controlled by fonts, colors, driver dependend low level stuff, ...). <!--l. 1739--><p class="indent" > Currently, option ‘pdfa’ sets and disables the following items: <ul class="itemize1"> - <li class="itemize">Enabled annotation flags: Print, NoZoom, NoRotate [PDF/A 6.5.3]. + <li class="itemize"> + <!--l. 1741--><p class="noindent" >Enabled annotation flags: Print, NoZoom, NoRotate [PDF/A 6.5.3]. + </li> - <li class="itemize">Disabled annotation flags: Hidden, Invisible, NoView [PDF/A 6.5.3]. + <li class="itemize"> + <!--l. 1742--><p class="noindent" >Disabled annotation flags: Hidden, Invisible, NoView [PDF/A 6.5.3]. </li> - <li class="itemize">Disabled: Launch action (<a + <li class="itemize"> + <!--l. 1743--><p class="noindent" >Disabled: Launch action (<a href="run:..." >[</a>PDF/A 6.6.1]. </li> - <li class="itemize">Restricted: Named actions (NextPage, PrevPage, FirstPage, LastPage) [PDF/A 6.6.1]. - + <li class="itemize"> + <!--l. 1744--><p class="noindent" >Restricted: Named actions (NextPage, PrevPage, FirstPage, LastPage) [PDF/A 6.6.1]. </li> - <li class="itemize">Many things are disabled in PDF formulars: + <li class="itemize"> + <!--l. 1746--><p class="noindent" >Many things are disabled in PDF formulars: <ul class="itemize2"> - <li class="itemize">JavaScript actions [PDF/A 6.6.1] + <li class="itemize"> + <!--l. 1748--><p class="noindent" >JavaScript actions [PDF/A 6.6.1] </li> - <li class="itemize">Trigger events (additional actions) [PDF/A 6.6.2] + <li class="itemize"> + <!--l. 1749--><p class="noindent" >Trigger events (additional actions) [PDF/A 6.6.2] </li> - <li class="itemize">Push button (because of JavaScript) + <li class="itemize"> + <!--l. 1750--><p class="noindent" >Push button (because of JavaScript) </li> - <li class="itemize">Interactive Forms: Flag NeedAppearances is the default ‘false’ (Because of this, + <li class="itemize"> + <!--l. 1751--><p class="noindent" >Interactive Forms: Flag NeedAppearances is the default ‘false’ (Because of this, hyperref’s implementation of Forms looks ugly). [PDF/A 6.9]</li></ul> </li></ul> <!--l. 1759--><p class="indent" > 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}</span></span></span>). <!--l. 1767--><p class="noindent" >The new option ‘linktoc’ allows more control which part of an entry in the table of contents is made into a link: <ul class="itemize1"> - <li class="itemize">‘linktoc=none’ (no links) + <li class="itemize"> + <!--l. 1770--><p class="noindent" >‘linktoc=none’ (no links) </li> - <li class="itemize">‘linktoc=section’ (default behaviour, same as ‘linktocpage=false’) + <li class="itemize"> + <!--l. 1771--><p class="noindent" >‘linktoc=section’ (default behaviour, same as ‘linktocpage=false’) </li> - <li class="itemize">‘linktoc=page’ (same as ‘linktocpage=true’) + <li class="itemize"> + <!--l. 1772--><p class="noindent" >‘linktoc=page’ (same as ‘linktocpage=true’) + </li> - <li class="itemize">‘linktoc=all’ (both the section and page part are links)</li></ul> + <li class="itemize"> + <!--l. 1773--><p class="noindent" >‘linktoc=all’ (both the section and page part are links)</li></ul> <!--l. 1776--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">5.14 </span> <a id="x1-340005.14"></a>Option ‘pdfnewwindow’ changed</h4> <!--l. 1778--><p class="noindent" >Before 6.77b: <ul class="itemize1"> - <li class="itemize">pdfnewwindow=true <span + <li class="itemize"> + <!--l. 1780--><p class="noindent" >pdfnewwindow=true <span class="lmsy-10">→ </span>/NewWindow true </li> - <li class="itemize">pdfnewwindow=false <span + <li class="itemize"> + <!--l. 1781--><p class="noindent" >pdfnewwindow=false <span class="lmsy-10">→ </span>(absent) </li> - <li class="itemize">unused pdfnewwindow <span + <li class="itemize"> + <!--l. 1782--><p class="noindent" >unused pdfnewwindow <span class="lmsy-10">→ </span>(absent)</li></ul> <!--l. 1784--><p class="noindent" >Since 6.77b: <ul class="itemize1"> - <li class="itemize">pdfnewwindow=true <span -class="lmsy-10">→ </span>/NewWindow true - + <li class="itemize"> + <!--l. 1786--><p class="noindent" >pdfnewwindow=true <span +class="lmsy-10">→ </span>/NewWindow true </li> - <li class="itemize">pdfnewwindow=false <span + <li class="itemize"> + <!--l. 1787--><p class="noindent" >pdfnewwindow=false <span class="lmsy-10">→ </span>/NewWindow false </li> - <li class="itemize">pdfnewwindow= <span + <li class="itemize"> + <!--l. 1788--><p class="noindent" >pdfnewwindow= <span class="lmsy-10">→ </span>(absent) </li> - <li class="itemize">unused pdfnewwindow <span + <li class="itemize"> + <!--l. 1789--><p class="noindent" >unused pdfnewwindow <span class="lmsy-10">→ </span>(absent)</li></ul> <!--l. 1794--><p class="indent" > 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.html</span></a href="http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf" class="url" ><span class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf</span></a> <!--l. 1810--><p class="indent" > Options (convert to lowercase) except flags in square brackets: + + <ul class="itemize1"> - <li class="itemize">Table 8.16 Annotation flags (page 608): + <li class="itemize"> + <!--l. 1813--><p class="noindent" >Table 8.16 Annotation flags (page 608): <!--l. 1815--><p class="noindent" ><div class="obeylines-v"> 1 Invisible <br />2 Hidden (PDF 1.2) @@ -4673,21 +4761,23 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf</ <br />9 ToggleNoView (PDF 1.5) <br />10 LockedContents (PDF 1.7)</div> </li> - <li class="itemize">Table 8.70 Field flags common to all field types (page 676): + <li class="itemize"> + <!--l. 1827--><p class="noindent" >Table 8.70 Field flags common to all field types (page 676): <!--l. 1829--><p class="noindent" ><div class="obeylines-v"> 1 ReadOnly <br />2 Required <br />3 NoExport</div> </li> - <li class="itemize">Table 8.75 Field flags specific to button fields (page 686): + <li class="itemize"> + <!--l. 1834--><p class="noindent" >Table 8.75 Field flags specific to button fields (page 686): <!--l. 1836--><p class="noindent" ><div class="obeylines-v"> - 15 NoToggleToOff (Radio buttons only) - + 15 NoToggleToOff (Radio buttons only) <br />16 Radio (set: radio buttons, clear: check box, pushbutton: clear) <br />17 Pushbutton <br />26 RadiosInUniso (PDF 1.5)</div> </li> - <li class="itemize">Table 8.77 Field flags specific to text fields (page 691): + <li class="itemize"> + <!--l. 1842--><p class="noindent" >Table 8.77 Field flags specific to text fields (page 691): <!--l. 1844--><p class="noindent" ><div class="obeylines-v"> 13 Multiline <br />14 Password @@ -4695,9 +4785,11 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf</ <br />23 DoNotSpellCheck (PDF 1.4) <br />24 DoNotScroll (PDF 1.4) <br />25 Comb (PDF 1.5) - <br />26 RichText (PDF 1.5)</div> + <br />26 RichText (PDF 1.5)</div> + </li> - <li class="itemize">Table 8.79 Field flags specific to choice fields (page 693): + <li class="itemize"> + <!--l. 1853--><p class="noindent" >Table 8.79 Field flags specific to choice fields (page 693): <!--l. 1855--><p class="noindent" ><div class="obeylines-v"> 18 Combo (set: combo box, clear: list box) <br />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.pdf</ <br />23 DoNotSpellCheck (PDF 1.4) (only useful if Combo and Edit are set) <br />27 CommitOnSelChange (PDF 1.5)</div> </li> - <li class="itemize">Table 8.86 Flags for submit-form actions (page 704): + <li class="itemize"> + <!--l. 1863--><p class="noindent" >Table 8.86 Flags for submit-form actions (page 704): <!--l. 1865--><p class="noindent" ><div class="obeylines-v"> [1 Include/Exclude] unsupported, use ‘noexport’ (table 8.70) instead <br />2 IncludeNoValueFields @@ -4722,18 +4815,22 @@ class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf</ <br />12 ExclFKey (PDF 1.4) <br />14 EmbedForm (PDF 1.5)</div> </li></ul> - - <!--l. 1882--><p class="indent" > New option ‘export’ sets the export format of a submit action. Valid values are (upper- or lowercase): <ul class="itemize1"> - <li class="itemize">FDF + <li class="itemize"> + <!--l. 1885--><p class="noindent" >FDF </li> - <li class="itemize">HTML + <li class="itemize"> + <!--l. 1886--><p class="noindent" >HTML </li> - <li class="itemize">XFDF + <li class="itemize"> + <!--l. 1887--><p class="noindent" >XFDF + + </li> - <li class="itemize">PDF (not supported by Acrobat Reader)</li></ul> + <li class="itemize"> + <!--l. 1888--><p class="noindent" >PDF (not supported by Acrobat Reader)</li></ul> <!--l. 1891--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">5.16 </span> <a id="x1-360005.16"></a>Option ‘pdfversion’</h4> @@ -4745,20 +4842,24 @@ higher PDF versions. class="ec-lmvtt-10">\usepackage{hyperref}</span></span></span>. <!--l. 1907--><p class="indent" > In theory this option should also set the PDF version, but this is not generally supported. <ul class="itemize1"> - <li class="itemize">pdfTeX below 1.10a: unsupported. pdfTeX <span + <li class="itemize"> + <!--l. 1910--><p class="noindent" >pdfTeX below 1.10a: unsupported. pdfTeX <span class="lmsy-10">≥ </span>1.10a and < 1.30: <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\pdfoptionpdfminorversion</span></span></span> pdfTeX <span class="lmsy-10">≥ </span>1.30: <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\pdfminorversion</span></span></span> </li> - <li class="itemize">dvipdfm: configuration file, example: TeX Live 2007, texmf/dvipdfm/config/config, entry ‘V + <li class="itemize"> + <!--l. 1913--><p class="noindent" >dvipdfm: configuration file, example: TeX Live 2007, texmf/dvipdfm/config/config, entry ‘V 2’. </li> - <li class="itemize">dvipdfmx: configuration file, example: TeX Live 2007, texmf/dvipdfm/dvipdfmx.cfg, entry + <li class="itemize"> + <!--l. 1915--><p class="noindent" >dvipdfmx: configuration file, example: TeX Live 2007, texmf/dvipdfm/dvipdfmx.cfg, entry ‘V 4’. </li> - <li class="itemize">Ghostscript: option -dCompatibilityLevel (this is set in ‘ps2pdf12’, ‘ps2pdf13’, ‘ps2pdf14’).</li></ul> + <li class="itemize"> + <!--l. 1917--><p class="noindent" >Ghostscript: option -dCompatibilityLevel (this is set in ‘ps2pdf12’, ‘ps2pdf13’, ‘ps2pdf14’).</li></ul> <!--l. 1922--><p class="indent" > The current PDF version is used as default if this version can be detected (only pdfTeX <span class="lmsy-10">≥ </span>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"></a>Field option ‘name’</h4> <!--l. 1931--><p class="noindent" >Many form objects uses the label argument for several purposes: <ul class="itemize1"> - <li class="itemize">Layouted label. + <li class="itemize"> + <!--l. 1934--><p class="noindent" >Layouted label. </li> - <li class="itemize">As name in HTML structures.</li></ul> - - + <li class="itemize"> + <!--l. 1935--><p class="noindent" >As name in HTML structures.</li></ul> <!--l. 1937--><p class="noindent" >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. + + <!--l. 1944--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">5.18 </span> <a id="x1-380005.18"></a>Option ‘pdfencoding’</h4> @@ -4784,15 +4887,18 @@ PDFDocEncoding and Unicode as UTF-16BE. Option <span class="ec-lmss-10">pdfencoding </span>selects between these encodings: <ul class="itemize1"> - <li class="itemize"><span + <li class="itemize"> + <!--l. 1950--><p class="noindent" ><span class="ec-lmss-10">pdfdoc </span>uses PDFDocEncoding. It uses just one byte per character, but the supported characters are limited (244 in PDF-1.7). </li> - <li class="itemize"><span + <li class="itemize"> + <!--l. 1952--><p class="noindent" ><span class="ec-lmss-10">unicode </span>sets Unicode. It is encoded as UTF-16BE. Two bytes are used for most characters, surrogates need four bytes. </li> - <li class="itemize"><span + <li class="itemize"> + <!--l. 1954--><p class="noindent" ><span class="ec-lmss-10">auto </span>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.</li></ul> @@ -4834,34 +4940,42 @@ class="ec-lmvtt-10"> 1}</span></span></span> <ul class="itemize1"> - <li class="itemize">AR7/Linux seems to have a bug, that don’t use the default value <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 1989--><p class="noindent" >AR7/Linux seems to have a bug, that don’t use the default value <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">1</span></span></span> for the width, but zero, thus that the underline is not visible without <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">/W</span><span class="ec-lmvtt-10"> 1</span></span></span>. The same applies for dashed boxes, eg.: pdfborderstyle=/S/D/D[3 2]/W 1 </li> - <li class="itemize">The syntax is described in the PDF specification, look for “border style”, eg. Table 8.13 + <li class="itemize"> + <!--l. 1995--><p class="noindent" >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) </li> - <li class="itemize">The border style is removed by pdfborderstyle= This is automatically done if option + <li class="itemize"> + <!--l. 2000--><p class="noindent" >The border style is removed by pdfborderstyle= This is automatically done if option colorlinks is enabled. </li> - <li class="itemize">Be aware that not all PDF viewers support this feature, not even Acrobat Reader itself: + <li class="itemize"> + <!--l. 2004--><p class="noindent" >Be aware that not all PDF viewers support this feature, not even Acrobat Reader itself: <!--l. 2007--><p class="noindent" >Some support: <ul class="itemize2"> - <li class="itemize">AR7/Linux: <span + <li class="itemize"> + <!--l. 2009--><p class="noindent" >AR7/Linux: <span class="ec-lmss-10">underline </span>and <span class="ec-lmss-10">dashed</span>, but the border width must be given. </li> - <li class="itemize">xpdf 3.00: <span + <li class="itemize"> + <!--l. 2011--><p class="noindent" >xpdf 3.00: <span class="ec-lmss-10">underline </span>and <span class="ec-lmss-10">dashed</span></li></ul> <!--l. 2014--><p class="noindent" >Unsupported: <ul class="itemize2"> - <li class="itemize">AR5/Linux + <li class="itemize"> + <!--l. 2016--><p class="noindent" >AR5/Linux </li> - <li class="itemize">ghostscript 8.50</li></ul> + <li class="itemize"> + <!--l. 2017--><p class="noindent" >ghostscript 8.50</li></ul> </li></ul> <!--l. 2021--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">5.23 </span> <a @@ -4871,16 +4985,21 @@ class="ec-lmss-10">bookmarksdepth</span></h4> class="ec-lmss-10">bookmarksdepth</span>. The option acts globally and distinguishes three cases: <ul class="itemize1"> - <li class="itemize"><span + <li class="itemize"> + <!--l. 2027--><p class="noindent" ><span class="ec-lmss-10">bookmarksdepth </span>without value Then hyperref uses the current value of counter <span class="ec-lmss-10">tocdepth</span>. This is the compatible behaviour and the default. + + </li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 2030--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">bookmarksdepth=<number></span></span></span>, the value is number (also negative): The depth for the bookmarks are set to this number. </li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 2032--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">bookmarksdepth=<name></span></span></span> 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 <span class="obeylines-h"><span class="verb"><span @@ -4906,10 +5025,12 @@ be a pain to remove all the escaping, because an additional escaping layer can f code. <!--l. 2059--><p class="indent" > Therefore a new option pdfescapeform was introduced: <ul class="itemize1"> - <li class="itemize">pdfescapeform=false Escaping for the formulars are disabled, this is the compatibility + <li class="itemize"> + <!--l. 2061--><p class="noindent" >pdfescapeform=false Escaping for the formulars are disabled, this is the compatibility behaviour, therefore this is the default. </li> - <li class="itemize">pdfescapeform=true Then the PS/PDF drivers do all the necessary escaping. This is the + <li class="itemize"> + <!--l. 2064--><p class="noindent" >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.</li></ul> <!--l. 2072--><p class="noindent" > @@ -5068,7 +5189,8 @@ class="ec-lmvtt-10">puenc.def </span>clash with other uses. To reduce the impact class="ec-lmss-10">hyperref </span>uses two strategies. <ul class="itemize1"> - <li class="itemize">A number of command are only defined conditionally: The commands for the cyrillic block + <li class="itemize"> + <!--l. 2216--><p class="noindent" >A number of command are only defined conditionally: The commands for the cyrillic block if <span class="ec-lmvtt-10">\CYRDZE </span>is defined, greek if <span class="ec-lmvtt-10">\textBeta </span>is defined, and hebrew if <span @@ -5076,7 +5198,8 @@ class="ec-lmvtt-10">\hebdalet </span>is defined. <!--l. 2220--><p class="noindent" >The greek block is in an extra file, <span class="ec-lmvtt-10">puenc-greek.def</span>, which can be loaded manually if needed. </li> - <li class="itemize">Other commands are moved to an extra file <span + <li class="itemize"> + <!--l. 2223--><p class="noindent" >Other commands are moved to an extra file <span class="ec-lmvtt-10">puenc-extra.def </span>which is not loaded automatically, but can be loaded in the preamble if needed. Currently this file contains all definitions for the accent <span @@ -5631,84 +5754,85 @@ class="td01"><span class="ec-lmvtt-10">accesskey </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-1-2" class="td11"> key </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-1-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-1-4" -class="td10"> (as per HTML) </td> +class="td10"> (as per HTML) </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-2-1" class="td01"><span class="ec-lmvtt-10">align </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-2-2" class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-2-3" class="td11"> <span -class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-2-4" -class="td10"> alignment within text field; 0 is left-aligned, </td> +class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-2-4" +class="td10"> alignment within text field; 0 is left-aligned, </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-3-1" class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-3-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-3-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-3-4" -class="td10"> 1 is centered, 2 is right-aligned. </td> +class="td10"> 1 is centered, 2 is right-aligned. </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-4-1" class="td01"><span class="ec-lmvtt-10">altname </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-4-2" class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-4-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-4-4" -class="td10"> alternative name, </td> +class="td10"> alternative name, </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-5-1" class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-5-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-5-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-5-4" -class="td10"> the name shown in the user interface </td> +class="td10"> the name shown in the user interface </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-6-1" class="td01"><span class="ec-lmvtt-10">backgroundcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-6-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-6-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-6-4" -class="td10"> color of box </td> +class="td10"> color of box </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-7-1" class="td01"><span class="ec-lmvtt-10">bordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-7-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-7-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-7-4" -class="td10"> color of border </td> +class="td10"> color of border </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-8-1" class="td01"><span class="ec-lmvtt-10">bordersep </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-8-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-8-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-8-4" -class="td10"> box border gap </td> +class="td10"> box border gap </td> + + </tr><tr style="vertical-align:baseline;" id="TBL-57-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-9-1" class="td01"><span class="ec-lmvtt-10">borderwidth </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-9-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-9-3" class="td11"> <span -class="ec-lmri-10">1 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-9-4" -class="td10"> width of box border, the value is a dimension </td> - +class="ec-lmri-10">1 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-9-4" +class="td10"> width of box border, the value is a dimension </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-10-1" class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-10-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-10-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-10-4" -class="td10"> or a number with default unit bp </td> +class="td10"> or a number with default unit bp </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-11-1" class="td01"><span class="ec-lmvtt-10">calculate </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-11-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-11-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-11-4" -class="td10"> JavaScript code to calculate the value of the field</td> +class="td10"> JavaScript code to calculate the value of the field </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-12-1" class="td01"><span class="ec-lmvtt-10">charsize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-12-2" class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-12-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-12-4" -class="td10"> font size of field text </td> +class="td10"> font size of field text </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-13-1" class="td01"><span @@ -5718,7 +5842,7 @@ class="td11"> <span class="ec-lmri-10">4 (</span><span class="pzdr-">✔</span><span class="ec-lmri-10">) </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-13-4" -class="td10"> symbol used for check boxes (ZapfDingbats), </td> +class="td10"> symbol used for check boxes (ZapfDingbats), </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-14-1" class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-14-2" @@ -5728,7 +5852,7 @@ class="td10"> the value is a character or <span class="ec-lmvtt-10">\ding</span><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">{</span></span></span><span class="ec-lmvtto-10">number</span><span class="obeylines-h"><span class="verb"><span -class="ec-lmvtt-10">}</span></span></span>, </td> +class="ec-lmvtt-10">}</span></span></span>, </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-15-1" class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-15-2" @@ -5736,339 +5860,333 @@ class="td11"> </td><td style="white-space:nowrap; text-align:left;" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-15-4" class="td10"> see package <span class="ec-lmss-10">pifont </span>from bundle <span -class="ec-lmss-10">psnfss </span></td> +class="ec-lmss-10">psnfss </span></td> </tr><tr style="vertical-align:baseline;" id="TBL-57-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-16-1" class="td01"><span class="ec-lmvtt-10">checked </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-16-2" class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-16-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-16-4" -class="td10"> whether option selected by default </td> +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-16-4" +class="td10"> whether option selected by default </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-17-1" class="td01"><span class="ec-lmvtt-10">color </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-17-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-17-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-17-4" -class="td10"> color of text in box </td> +class="td10"> color of text in box </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-18-1" class="td01"><span class="ec-lmvtt-10">combo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-18-2" class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-18-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-18-4" -class="td10"> choice list is ‘combo’ style </td> +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-18-4" +class="td10"> choice list is ‘combo’ style </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-19-1" class="td01"><span class="ec-lmvtt-10">default </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-19-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-19-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-19-4" -class="td10"> default value </td> +class="td10"> default value </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-20-1" class="td01"><span class="ec-lmvtt-10">disabled </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-20-2" class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-20-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-20-4" -class="td10"> field disabled </td> +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-20-4" +class="td10"> field disabled </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-21-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-21-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-21-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-21-4" -class="td10"></td></tr> -<tr - style="vertical-align:baseline;" id="TBL-57-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-1" class="td01"><span -class="ec-lmvtt-10">format </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-4" +class="ec-lmvtt-10">format </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-21-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-21-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-21-4" class="td10"> JavaScript code to format the field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-1" + style="vertical-align:baseline;" id="TBL-57-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-1" class="td01"><span -class="ec-lmvtt-10">height </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-2" -class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-4" +class="ec-lmvtt-10">height </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-2" +class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-22-4" class="td10"> height of field box </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-1" + style="vertical-align:baseline;" id="TBL-57-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-1" class="td01"><span -class="ec-lmvtt-10">hidden </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-2" -class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-3" +class="ec-lmvtt-10">hidden </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-4" +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-23-4" class="td10"> field hidden </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-1" + style="vertical-align:baseline;" id="TBL-57-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-1" class="td01"><span -class="ec-lmvtt-10">keystroke </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-4" +class="ec-lmvtt-10">keystroke </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-24-4" class="td10"> JavaScript code to control the keystrokes on entry</td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-1" + style="vertical-align:baseline;" id="TBL-57-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-1" class="td01"><span -class="ec-lmvtt-10">mappingname </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-2" -class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-4" +class="ec-lmvtt-10">mappingname </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-2" +class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-25-4" class="td10"> the mapping name to be used when exporting </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-4" + style="vertical-align:baseline;" id="TBL-57-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-26-4" class="td10"> the field data </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-1" + style="vertical-align:baseline;" id="TBL-57-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-1" class="td01"><span -class="ec-lmvtt-10">maxlen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-2" -class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-3" +class="ec-lmvtt-10">maxlen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-2" +class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-3" class="td11"> <span -class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-4" +class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-27-4" class="td10"> number of characters allowed in text field </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-1" + style="vertical-align:baseline;" id="TBL-57-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-1" class="td01"><span -class="ec-lmvtt-10">menulength </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-2" -class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-3" +class="ec-lmvtt-10">menulength </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-2" +class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-3" class="td11"> <span -class="ec-lmri-10">4 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-4" +class="ec-lmri-10">4 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-28-4" class="td10"> number of elements shown in list </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-1" + style="vertical-align:baseline;" id="TBL-57-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-1" class="td01"><span -class="ec-lmvtt-10">multiline </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-2" -class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-3" +class="ec-lmvtt-10">multiline </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-4" +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-29-4" class="td10"> whether text box is multiline </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-1" + style="vertical-align:baseline;" id="TBL-57-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-1" class="td01"><span -class="ec-lmvtt-10">name </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-2" -class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-4" +class="ec-lmvtt-10">name </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-2" +class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-30-4" class="td10"> name of field (defaults to label) </td> </tr><tr + style="vertical-align:baseline;" id="TBL-57-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-1" +class="td01"><span +class="ec-lmvtt-10">onblur </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-31-4" +class="td10"> JavaScript code </td> +</tr><tr style="vertical-align:baseline;" id="TBL-57-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-32-1" class="td01"><span -class="ec-lmvtt-10">onblur </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-32-2" +class="ec-lmvtt-10">onchange </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-32-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-32-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-32-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-32-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-33-1" class="td01"><span -class="ec-lmvtt-10">onchange </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-33-2" +class="ec-lmvtt-10">onclick </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-33-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-33-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-33-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-33-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-34-1" class="td01"><span -class="ec-lmvtt-10">onclick </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-34-2" +class="ec-lmvtt-10">ondblclick </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-34-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-34-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-34-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-34-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-35-1" class="td01"><span -class="ec-lmvtt-10">ondblclick </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-35-2" +class="ec-lmvtt-10">onfocus </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-35-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-35-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-35-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-35-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-36-1" class="td01"><span -class="ec-lmvtt-10">onfocus </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-36-2" +class="ec-lmvtt-10">onkeydown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-36-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-36-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-36-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-36-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-37-1" class="td01"><span -class="ec-lmvtt-10">onkeydown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-37-2" +class="ec-lmvtt-10">onkeypress </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-37-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-37-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-37-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-37-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-38-1" class="td01"><span -class="ec-lmvtt-10">onkeypress </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-38-2" +class="ec-lmvtt-10">onkeyup </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-38-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-38-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-38-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-38-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-39-1" class="td01"><span -class="ec-lmvtt-10">onkeyup </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-39-2" +class="ec-lmvtt-10">onmousedown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-39-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-39-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-39-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-39-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-40-1" class="td01"><span -class="ec-lmvtt-10">onmousedown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-40-2" +class="ec-lmvtt-10">onmousemove </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-40-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-40-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-40-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-40-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-41-1" class="td01"><span -class="ec-lmvtt-10">onmousemove </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-41-2" +class="ec-lmvtt-10">onmouseout </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-41-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-41-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-41-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-41-4" class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-42-1" -class="td01"> </td></tr> -<tr +class="td01"><span +class="ec-lmvtt-10">onmouseover </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-42-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-42-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-42-4" +class="td10"> JavaScript code </td> +</tr><tr style="vertical-align:baseline;" id="TBL-57-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-43-1" class="td01"><span -class="ec-lmvtt-10">onmouseout </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-43-2" +class="ec-lmvtt-10">onmouseup </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-43-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-43-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-43-4" -class="td10"> JavaScript code </td> +class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-44-1" class="td01"><span -class="ec-lmvtt-10">onmouseover </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-44-2" +class="ec-lmvtt-10">onselect </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-44-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-44-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-44-4" -class="td10"> JavaScript code </td> +class="td10"> JavaScript code </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-45-1" class="td01"><span -class="ec-lmvtt-10">onmouseup </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-45-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-45-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-45-4" -class="td10"> JavaScript code </td> +class="ec-lmvtt-10">password </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-45-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-45-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-45-4" +class="td10"> text field is ‘password’ style </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-46-1" class="td01"><span -class="ec-lmvtt-10">onselect </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-46-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-46-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-46-4" -class="td10"> JavaScript code </td> +class="ec-lmvtt-10">popdown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-46-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-46-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-46-4" +class="td10"> choice list is ‘popdown’ style </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-47-1" class="td01"><span -class="ec-lmvtt-10">password </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-47-2" +class="ec-lmvtt-10">radio </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-47-2" class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-47-3" class="td11"> <span class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-47-4" -class="td10"> text field is ‘password’ style </td> +class="td10"> choice list is ‘radio’ style </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-48-1" class="td01"><span -class="ec-lmvtt-10">popdown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-48-2" -class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-48-3" -class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-48-4" -class="td10"> choice list is ‘popdown’ style </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-57-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-1" -class="td01"><span -class="ec-lmvtt-10">radio </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-2" -class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-3" -class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-4" -class="td10"> choice list is ‘radio’ style </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-57-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-1" -class="td01"><span -class="ec-lmvtt-10">radiosymbol </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-2" -class="td11"> char </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-3" +class="ec-lmvtt-10">radiosymbol </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-48-2" +class="td11"> char </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-48-3" class="td11"> <span class="ec-lmri-10">H (</span><span class="pzdr-">★</span><span -class="ec-lmri-10">) </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-4" -class="td10"> symbol used for radio fields (ZapfDingbats),</td> +class="ec-lmri-10">) </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-48-4" +class="td10"> symbol used for radio fields (ZapfDingbats), </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-4" + style="vertical-align:baseline;" id="TBL-57-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-49-4" class="td10"> the value is a character or <span class="ec-lmvtt-10">\ding</span><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">{</span></span></span><span class="ec-lmvtto-10">number</span><span class="obeylines-h"><span class="verb"><span -class="ec-lmvtt-10">}</span></span></span>, </td> +class="ec-lmvtt-10">}</span></span></span>, </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-4" + style="vertical-align:baseline;" id="TBL-57-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-50-4" class="td10"> see package <span class="ec-lmss-10">pifont </span>from bundle <span -class="ec-lmss-10">psnfss </span></td> +class="ec-lmss-10">psnfss </span></td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-1" + style="vertical-align:baseline;" id="TBL-57-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-1" class="td01"><span -class="ec-lmvtt-10">readonly </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-2" -class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-3" +class="ec-lmvtt-10">readonly </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-3" class="td11"> <span -class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-4" -class="td10"> field is readonly </td> +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-51-4" +class="td10"> field is readonly </td> </tr><tr - style="vertical-align:baseline;" id="TBL-57-54-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-1" + style="vertical-align:baseline;" id="TBL-57-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-1" class="td01"><span -class="ec-lmvtt-10">rotation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-2" -class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-3" +class="ec-lmvtt-10">rotation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-2" +class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-3" class="td11"> <span -class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-4" -class="td10"> rotation of the widget annotation </td> +class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-52-4" +class="td10"> rotation of the widget annotation </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-57-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-53-4" +class="td10"> (degree, counterclockwise, multiple of 90) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-57-54-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-1" +class="td01"><span +class="ec-lmvtt-10">tabkey </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-54-4" +class="td10"> (as per HTML) </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-55-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-55-1" -class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-55-2" +class="td01"><span +class="ec-lmvtt-10">validate </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-55-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-55-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-55-4" -class="td10"> (degree, counterclockwise, multiple of 90) </td> +class="td10"> JavaScript code to validate the entry </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-56-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-56-1" class="td01"><span -class="ec-lmvtt-10">tabkey </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-56-2" +class="ec-lmvtt-10">value </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-56-2" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-56-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-56-4" -class="td10"> (as per HTML) </td> +class="td10"> initial value </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-57-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-57-1" class="td01"><span -class="ec-lmvtt-10">validate </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-57-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-57-3" +class="ec-lmvtt-10">width </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-57-2" +class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-57-3" class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-57-4" -class="td10"> JavaScript code to validate the entry </td> +class="td10"> width of field box </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-58-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-58-1" -class="td01"><span -class="ec-lmvtt-10">value </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-58-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-58-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-58-4" -class="td10"> initial value </td> +class="td01"> </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-59-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-59-1" -class="td01"><span -class="ec-lmvtt-10">width </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-57-59-2" -class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-59-3" -class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-59-4" -class="td10"> width of field box </td> +class="td01"> </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-60-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-60-1" -class="td01"> </td> +class="td01"> </td> </tr><tr style="vertical-align:baseline;" id="TBL-57-61-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-61-1" -class="td01"> </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-57-62-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-62-1" -class="td01"> </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-57-63-"><td style="white-space:nowrap; text-align:left;" id="TBL-57-63-1" -class="td01"> </td></tr> +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-61-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-61-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-57-61-4" +class="td10"></td></tr> </table></div> <!--l. 2430--><p class="noindent" > <h3 class="sectionHead"><span class="titlemark">8 </span> <a @@ -6084,10 +6202,9 @@ class="ec-lmvtt-10">\hyper@linkfile</span></span></span> class="ec-lmvtt-10">\hyper@linkurl</span></span></span> <!--l. 2442--><p class="noindent" >5. <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hyper@anchorstart</span></span></span> - - <!--l. 2444--><p class="noindent" >6. <span class="obeylines-h"><span class="verb"><span -class="ec-lmvtt-10">\hyper@anchorend</span></span></span> +class="ec-lmvtt-10">\hyper@anchorend</span></span></span> + <!--l. 2446--><p class="noindent" >7. <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hyper@linkstart</span></span></span> <!--l. 2448--><p class="noindent" >8. <span class="obeylines-h"><span class="verb"><span @@ -6113,7 +6230,8 @@ class="ec-lmvtt-10">\hyper@linkend</span></span></span> class="ec-lmss-10">hyperref </span>aims to cooperate with other packages, but there are several possible sources for conflict, such as <ul class="itemize1"> - <li class="itemize">Packages that manipulate the bibliographic mechanism. Peter William’s <span + <li class="itemize"> + <!--l. 2470--><p class="noindent" >Packages that manipulate the bibliographic mechanism. Peter William’s <span class="ec-lmss-10">harvard </span>package is supported. However, the recommended package is Patrick Daly’s <span class="ec-lmss-10">natbib </span>package that has @@ -6122,7 +6240,8 @@ class="ec-lmss-10">hyperref </span>hooks to allow reliable interaction. This pac of layouts and citation styles, all of which work with <span class="ec-lmss-10">hyperref</span>. </li> - <li class="itemize">Packages that typeset the contents of the <span + <li class="itemize"> + <!--l. 2477--><p class="noindent" >Packages that typeset the contents of the <span class="ec-lmvtt-10">\label </span>and <span class="ec-lmvtt-10">\ref </span>macros, such as <span class="ec-lmss-10">showkeys</span>. Since the @@ -6131,7 +6250,8 @@ class="ec-lmss-10">hyperref </span>package redefines these commands, you must se class="ec-lmvtt-10">implicit=false </span>for these packages to work. </li> - <li class="itemize">Packages that do anything serious with the index.</li></ul> + <li class="itemize"> + <!--l. 2482--><p class="noindent" >Packages that do anything serious with the index.</li></ul> <!--l. 2485--><p class="indent" > The <span class="ec-lmss-10">hyperref </span>package is distributed with variants on two useful packages designed to work especially well with it. These are <span @@ -6150,8 +6270,7 @@ class="ec-lmvtt-10">\begin{document}</span></span></span>. Sometimes this is too package must be loaded earlier. <!--l. 2503--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.1.1 </span> <a - id="x1-560009.1.1"></a>algorithm</h5> - + id="x1-560009.1.1"></a>algorithm</h5> <pre class="verbatim" id="verbatim-42">  \usepackage{float} @@ -6195,7 +6314,7 @@ thus the resulting package order is then: <pre class="verbatim" id="verbatim-45">   \usepackage{longtable} -  \usepacakge{hyperref} +  \usepackage{hyperref}   \usepackage{arydshln} </pre> <!--l. 2544--><p class="nopar" > @@ -6334,10 +6453,12 @@ before): </pre> <!--l. 2662--><p class="nopar" > <ul class="itemize1"> - <li class="itemize">Several <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 2664--><p class="noindent" >Several <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\caption</span></span></span> commands are not supported inside one float object. </li> - <li class="itemize">Anchor are set at top of the float object, if its style is controlled by float.sty.</li></ul> + <li class="itemize"> + <!--l. 2665--><p class="noindent" >Anchor are set at top of the float object, if its style is controlled by float.sty.</li></ul> <!--l. 2669--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.1.16 </span> <a id="x1-710009.1.16"></a>endnotes</h5> @@ -6638,11 +6759,13 @@ order: varioref that breaks the hyperref support for varioref. <!--l. 2933--><p class="indent" > Also unsupported: <ul class="itemize1"> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 2935--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\Ref</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\Vref</span></span></span> do not uppercase the first letter. </li> - <li class="itemize"><span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 2936--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\vpageref[]{...}</span></span></span> On the same page a previous space is not suppressed.</li></ul> <!--l. 2940--><p class="noindent" > <h5 class="subsubsectionHead"><span class="titlemark">9.1.41 </span> <a @@ -6741,34 +6864,39 @@ href="hyperref-doc6.html#fn5x0"><sup class="textsuperscript">5</sup></a></span>< drivers lack this feature, e.g. dvips, dvipsone. <!--l. 3025--><p class="indent" > Workarounds: <ul class="itemize1"> - <li class="itemize">For long section or caption titles in the table of contents or list of figures/tables option + <li class="itemize"> + <!--l. 3027--><p class="noindent" >For long section or caption titles in the table of contents or list of figures/tables option <span class="ec-lmss-10">linktocpage </span>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 <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hbox</span></span></span> warning. </li> - <li class="itemize">“<span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 3032--><p class="noindent" >“<span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\url</span></span></span>”s are caught by package <span class="ec-lmss-10">breakurl</span>. </li> - <li class="itemize">The option <span + <li class="itemize"> + <!--l. 3033--><p class="noindent" >The option <span class="ec-lmss-10">breaklinks </span>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. + + <!--l. 3039--><p class="noindent" >Another limitation: some penalties are “optimized” by TeX, thus there are missing break points, especially within <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\url</span></span></span>. (See thread “hyperref.sty, breaklinks and url.sty 3.2” in comp.text.tex 2005-09).</li></ul> - - <!--l. 3045--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">10.2 </span> <a id="x1-10100010.2"></a>Links across pages</h4> <!--l. 3047--><p class="noindent" >In general they have problems: <ul class="itemize1"> - <li class="itemize">Some driver doesn’t support them at all (see above). + <li class="itemize"> + <!--l. 3049--><p class="noindent" >Some driver doesn’t support them at all (see above). </li> - <li class="itemize">The driver allows it, but the link result might include the footer and/or header, or an error + <li class="itemize"> + <!--l. 3050--><p class="noindent" >The driver allows it, but the link result might include the footer and/or header, or an error message can occur sometimes.</li></ul> <!--l. 3055--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">10.3 </span> <a @@ -6838,7 +6966,8 @@ class="ec-lmss-10">xsetkeys</span>). <h4 class="subsectionHead"><span class="titlemark">11.2 </span> <a id="x1-10500011.2"></a>Index with makeindex</h4> <ul class="itemize1"> - <li class="itemize">Package hyperref adds <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 3102--><p class="noindent" >Package hyperref adds <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hyperpage</span></span></span> commands by the encap mechanism (see documentation of Makeindex), if option hyperindex is set (default). <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hyperpage</span></span></span> uses the page anchors that @@ -6850,7 +6979,8 @@ class="ec-lmvtt-10">\romannumbering</span></span></span>, ...), then the page an option <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">plainpages=false</span></span></span> is recommended. </li> - <li class="itemize">The encap mechanism of Makeindex allows to use one command only (see documentation of + <li class="itemize"> + <!--l. 3112--><p class="noindent" >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 <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hyperpage</span></span></span> command. With logical markup this situation can easily be solved: @@ -6866,9 +6996,11 @@ class="ec-lmvtt-10">\hyperpage</span></span></span> command. With </pre> <!--l. 3124--><p class="nopar" > </li> - <li class="itemize">Scientic Word/Scientific WorkPlace users can use package robustindex with hyperindex=false. + <li class="itemize"> + <!--l. 3125--><p class="noindent" >Scientic Word/Scientific WorkPlace users can use package robustindex with hyperindex=false. </li> - <li class="itemize">Other encap characters can be set by option <span + <li class="itemize"> + <!--l. 3127--><p class="noindent" >Other encap characters can be set by option <span class="ec-lmss-10">encap</span>. Example for use of “?”: @@ -6877,7 +7009,8 @@ class="ec-lmss-10">encap</span>. Example for use of “?”: </pre> <!--l. 3131--><p class="nopar" > </li> - <li class="itemize">Another possibility is the insertion of <span class="obeylines-h"><span class="verb"><span + <li class="itemize"> + <!--l. 3132--><p class="noindent" >Another possibility is the insertion of <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">\hyperpage</span></span></span> by a style file for makeindex. For this case, hyperref’s insertion will be disabled by <span class="obeylines-h"><span class="verb"><span class="ec-lmvtt-10">hyperindex=false</span></span></span>. <span class="obeylines-h"><span class="verb"><span @@ -7287,78 +7420,92 @@ Modified Version to whoever possesses a copy of it. In addition, you must do the Version: <!--l. 3594--><p class="indent" > <ol class="enumerate1" > - <li - class="enumerate" id="x1-117002x1">Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, +<li + class="enumerate" id="x1-117002x1"> + <!--l. 3595--><p class="noindent" >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. </li> - <li - class="enumerate" id="x1-117004x2">List on the Title Page, as authors, one or more persons or entities responsible for authorship +<li + class="enumerate" id="x1-117004x2"> + <!--l. 3600--><p class="noindent" >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. - </li> - <li - class="enumerate" id="x1-117006x3">State on the Title page the name of the publisher of the Modified Version, as the publisher. - + release you from this requirement. </li> - <li - class="enumerate" id="x1-117008x4">Preserve all the copyright notices of the Document. +<li + class="enumerate" id="x1-117006x3"> + <!--l. 3605--><p class="noindent" >State on the Title page the name of the publisher of the Modified Version, as the publisher. </li> - <li - class="enumerate" id="x1-117010x5">Add an appropriate copyright notice for your modifications adjacent to the other copyright +<li + class="enumerate" id="x1-117008x4"> + <!--l. 3607--><p class="noindent" >Preserve all the copyright notices of the Document. + </li> +<li + class="enumerate" id="x1-117010x5"> + <!--l. 3608--><p class="noindent" >Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. </li> - <li - class="enumerate" id="x1-117012x6">Include, immediately after the copyright notices, a license notice giving the public permission +<li + class="enumerate" id="x1-117012x6"> + <!--l. 3610--><p class="noindent" >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. </li> - <li - class="enumerate" id="x1-117014x7">Preserve in that license notice the full lists of Invariant Sections and required Cover Texts +<li + class="enumerate" id="x1-117014x7"> + <!--l. 3613--><p class="noindent" >Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice. </li> - <li - class="enumerate" id="x1-117016x8">Include an unaltered copy of this License. +<li + class="enumerate" id="x1-117016x8"> + <!--l. 3615--><p class="noindent" >Include an unaltered copy of this License. </li> - <li - class="enumerate" id="x1-117018x9">Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at +<li + class="enumerate" id="x1-117018x9"> + <!--l. 3616--><p class="noindent" >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. </li> - <li - class="enumerate" id="x1-117020x10">Preserve the network location, if any, given in the Document for public access to a +<li + class="enumerate" id="x1-117020x10"> + <!--l. 3623--><p class="noindent" >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. + + </li> - <li - class="enumerate" id="x1-117022x11">For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the +<li + class="enumerate" id="x1-117022x11"> + <!--l. 3630--><p class="noindent" >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. </li> - <li - class="enumerate" id="x1-117024x12">Preserve all the Invariant Sections of the Document, unaltered in their text and in their +<li + class="enumerate" id="x1-117024x12"> + <!--l. 3634--><p class="noindent" >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. </li> - <li - class="enumerate" id="x1-117026x13">Delete any section Entitled “Endorsements”. Such a section may not be included in the +<li + class="enumerate" id="x1-117026x13"> + <!--l. 3637--><p class="noindent" >Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version. </li> - <li - class="enumerate" id="x1-117028x14">Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with +<li + class="enumerate" id="x1-117028x14"> + <!--l. 3639--><p class="noindent" >Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section. </li> - <li - class="enumerate" id="x1-117030x15">Preserve any Warranty Disclaimers. +<li + class="enumerate" id="x1-117030x15"> + <!--l. 3641--><p class="noindent" >Preserve any Warranty Disclaimers. </li></ol> - - <!--l. 3645--><p class="indent" > 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. <!--l. 3668--><p class="indent" > 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. + + <!--l. 3673--><p class="noindent" > <h4 class="subsectionHead"><span class="titlemark">13.5 </span> <a id="x1-11800013.5"></a>Combining documents</h4> @@ -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. <!--l. 3715--><p class="noindent" > - - <h4 class="subsectionHead"><span class="titlemark">13.7 </span> <a id="x1-12000013.7"></a>Aggregation with independent works</h4> <!--l. 3718--><p class="noindent" >A compilation of the Document or its derivatives with other separate and independent documents or @@ -7430,6 +7577,7 @@ under the terms of section <a href="#x1-11700013.4">13.4<!--tex4ht:ref: modifications --></a>. 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. - - <!--l. 3791--><p class="noindent" > <h4 class="likesubsectionHead"><a id="x1-12400013.10"></a>Addendum: how to use this license for your documents</h4> @@ -7479,6 +7625,8 @@ class="ts1-lmr10-">©</span> YEAR YOUR NAME. Permission is granted to copy line with this: <!--l. 3810--><p class="indent" > with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + + <!--l. 3813--><p class="indent" > If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. <!--l. 3817--><p class="indent" > 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 Binary files differindex f39dbe3d0e..51a1372af1 100644 --- a/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf +++ b/macros/latex/contrib/hyperref/doc/hyperref-doc.pdf 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 Binary files differindex 94564ddfe3..509003fa47 100644 --- a/macros/latex/contrib/hyperref/doc/hyperref.pdf +++ b/macros/latex/contrib/hyperref/doc/hyperref.pdf diff --git a/macros/latex/contrib/hyperref/doc/nameref.pdf b/macros/latex/contrib/hyperref/doc/nameref.pdf Binary files differindex 731298ac32..31cafb8c57 100644 --- a/macros/latex/contrib/hyperref/doc/nameref.pdf +++ b/macros/latex/contrib/hyperref/doc/nameref.pdf 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 @@ %<puarenc>\ProvidesFile{puarenc.def} %<psdextra>\ProvidesFile{psdextra.def} %<lang>\ProvidesFile{hyperref-langpatches.def} -%<!none> [2021-02-27 v7.00k % +%<!none> [2021-06-05 v7.00l % %<package> Hypertext links for LaTeX] %<nohyperref> Dummy hyperref (SR)] %<driver> 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 Binary files differindex 972985be67..646ec7e301 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf +++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf 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} % @@ -15644,6 +15625,13 @@ version 2005/12/01 or later. % \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} % The four following token lists correspond to the position of the |\SubMatrix|. @@ -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 Binary files differindex 9bae2b15ba..b096ea1e0f 100644 --- a/macros/latex/contrib/nicematrix/nicematrix.pdf +++ b/macros/latex/contrib/nicematrix/nicematrix.pdf diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf Binary files differindex ee0a252f02..778b60dcfe 100644 --- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf +++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf diff --git a/macros/latex/contrib/profcollege/latex/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 a<c % Autre cas délicat + \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 a<c % Autre cas délicat \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}{\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 a<c % Autre cas délicat \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}{\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 a<c % Autre cas délicat \begin{align*}% - \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}{+\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 a<c % Autre cas délicat \begin{align*}% - \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} + \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 a<c % Autre cas délicat \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{#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 a<c % Autre cas délicat \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{#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 a<c % Autre cas délicat \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{#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 a<c % Autre cas délicat \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{#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 a<c % Autre cas délicat \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{#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 a<c % Autre cas délicat \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{#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% - }{}% }% }% @@ -10095,6 +10156,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 %%% \setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carr\'e,Solide=pav\'e,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white} @@ -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". %<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01] %<class>\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] %</class> %<*driver> \documentclass[12pt]{ltxdoc} @@ -338,7 +338,7 @@ cochineal,mathpazo,bera,amsthm} %</driver> % \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 Binary files differindex 2e8c75f472..935cbaf61c 100644 --- a/macros/latex/contrib/suftesi/suftesi.pdf +++ b/macros/latex/contrib/suftesi/suftesi.pdf 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 <tolvjr@163.com> +%%% 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 {<i>}{<j>} +%% 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 Binary files differindex 7b00466957..05c0d50e11 100644 --- a/macros/latex/contrib/tabularray/tabularray.pdf +++ b/macros/latex/contrib/tabularray/tabularray.pdf 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 <Frank.Mittelbach@latex-project.org> + + * 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 <Frank.Mittelbach@latex-project.org> * 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} -%</filehook> +%</filehook-ltx> % \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} +%</kernel> +% \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} +%</kernel> +% \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} +%</everysel-ltx> +% \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 Binary files differindex 1bf28e4760..2e9c812fd0 100644 --- a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf +++ b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf 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 Binary files differindex adf48b0788..90c2a70265 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz diff --git a/systems/win32/miktex/doc/miktex.pdf b/systems/win32/miktex/doc/miktex.pdf Binary files differindex 2dbc4d80e9..c8992239fe 100644 --- a/systems/win32/miktex/doc/miktex.pdf +++ b/systems/win32/miktex/doc/miktex.pdf 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 Binary files differindex 2027b9a294..00608fd2e9 100644 --- a/systems/win32/miktex/tm/packages/files.csv.lzma +++ b/systems/win32/miktex/tm/packages/files.csv.lzma diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma Binary files differindex 8ded2e77e1..028bad87c4 100644 --- a/systems/win32/miktex/tm/packages/next/files.csv.lzma +++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma 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. @@ -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 |