From 2bd77f5a4d02b0d1649589aa7a548e79b198f6af Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 10 Jun 2021 03:01:49 +0000 Subject: CTAN sync 202106100301 --- FILES.byname | 692 +- FILES.byname.gz | Bin 2320039 -> 2320808 bytes FILES.last07days | 1435 +--- fonts/utilities/jfmutil/LICENSE | 2 +- fonts/utilities/jfmutil/README-ja.md | 4 + fonts/utilities/jfmutil/README.md | 5 + fonts/utilities/jfmutil/jfmutil.pl | 10 +- graphics/minim-hatching/EUPL-1.2-EN.txt | 287 + graphics/minim-hatching/README | 24 + graphics/minim-hatching/minim-hatching-doc.mp | 117 + graphics/minim-hatching/minim-hatching-doc.pdf | 1402 ++++ graphics/minim-hatching/minim-hatching.mp | 225 + graphics/pictex/PiCTeX_manual.pdf | Bin 0 -> 1419473 bytes graphics/pictex/README | 11 - graphics/pictex/README.txt | 9 + graphics/pictex/addon/00index | 16 - graphics/pictex/addon/autoarea/README | 15 +- graphics/pictex/addon/autoarea/README.aa | 14 - .../pictex/addon/autoarea/autodemo/autodemo+.log | 82 - .../pictex/addon/autoarea/autodemo/autodemo-.log | 80 - graphics/pictex/addon/picmore.tex | 152 +- graphics/pictex/addon/pictex.sty | 34 +- graphics/pictex/addon/pictexwd.sty | 38 +- graphics/pictex/addon/pictexwd.tex | 7354 ++++++++++---------- graphics/pictex/postpictex.tex | 14 +- graphics/pictex/prepictex.tex | 14 +- macros/generic/wichura-table/README.txt | 18 + macros/generic/wichura-table/TaBlE_manual.pdf | Bin 0 -> 1566321 bytes macros/generic/wichura-table/table.tex | 1961 ++++++ .../contrib/biblatex-contrib/biblatex-mla/CHANGES | 71 +- .../contrib/biblatex-contrib/biblatex-mla/README | 15 +- .../biblatex-contrib/biblatex-mla/american-mla.lbx | 16 +- .../biblatex-mla/doc/biblatex-mla.pdf | Bin 396718 -> 167698 bytes .../biblatex-mla/doc/biblatex-mla.tex | 401 +- .../biblatex-mla/doc/citation-examples-new.pdf | Bin 283863 -> 0 bytes .../biblatex-mla/doc/citation-examples-new.tex | 33 - .../biblatex-mla/doc/citation-examples.pdf | Bin 246890 -> 0 bytes .../biblatex-mla/doc/citation-examples.tex | 23 - .../biblatex-contrib/biblatex-mla/doc/examples.bib | 2591 +++++++ .../biblatex-contrib/biblatex-mla/doc/examples.pdf | Bin 0 -> 116506 bytes .../biblatex-contrib/biblatex-mla/doc/examples.tex | 46 + .../biblatex-mla/doc/handbooksamplebib-new.pdf | Bin 270033 -> 0 bytes .../biblatex-mla/doc/handbooksamplebib-new.tex | 18 - .../biblatex-mla/doc/handbooksamplebib.pdf | Bin 273209 -> 0 bytes .../biblatex-mla/doc/handbooksamplebib.tex | 17 - .../biblatex-mla/doc/handbooksamples-new.bib | 2038 ------ .../biblatex-mla/doc/handbooksamples.bib | 2038 ------ .../biblatex-contrib/biblatex-mla/doc/samples.bib | 661 -- .../biblatex-contrib/biblatex-mla/english-mla.lbx | 54 +- .../biblatex-contrib/biblatex-mla/italian-mla.lbx | 52 +- .../biblatex-mla/mla-footnotes.cbx | 434 ++ .../biblatex-contrib/biblatex-mla/mla-new.bbx | 1292 +--- .../biblatex-contrib/biblatex-mla/mla-new.cbx | 834 +-- .../biblatex-contrib/biblatex-mla/mla-strict.bbx | 1337 ++++ .../biblatex-contrib/biblatex-mla/mla-strict.cbx | 5 + .../contrib/biblatex-contrib/biblatex-mla/mla.bbx | 1322 +--- .../contrib/biblatex-contrib/biblatex-mla/mla.cbx | 667 +- .../contrib/biblatex-contrib/biblatex-mla/mla.dbx | 56 + .../contrib/biblatex-contrib/biblatex-mla/mla7.bbx | 1224 ++++ .../contrib/biblatex-contrib/biblatex-mla/mla7.cbx | 5 + .../biblatex-mla/portuguese-mla.lbx | 51 +- .../biblatex-contrib/biblatex-mla/spanish-mla.lbx | 51 +- macros/latex/contrib/easybook/easybook.dtx | 42 +- macros/latex/contrib/easybook/easybook.pdf | Bin 324274 -> 324143 bytes macros/latex/contrib/hvfloat/Changes | 2 + .../latex/contrib/hvfloat/doc/examples/capPos.pdf | Bin 77925 -> 95386 bytes .../latex/contrib/hvfloat/doc/examples/odd2s1c.pdf | Bin 85195 -> 245795 bytes macros/latex/contrib/hvfloat/doc/hvfloat.pdf | Bin 7113219 -> 7114454 bytes macros/latex/contrib/hvfloat/latex/hvfloat.sty | 53 +- macros/latex/contrib/siunitx/CHANGELOG.md | 10 +- macros/latex/contrib/siunitx/siunitx-code.pdf | Bin 1485621 -> 1486326 bytes macros/latex/contrib/siunitx/siunitx-emulation.dtx | 4 +- macros/latex/contrib/siunitx/siunitx-number.dtx | 22 +- macros/latex/contrib/siunitx/siunitx-symbol.dtx | 1 - macros/latex/contrib/siunitx/siunitx.dtx | 2 +- macros/latex/contrib/siunitx/siunitx.pdf | Bin 634770 -> 634773 bytes macros/latex/contrib/siunitx/siunitx.tex | 2 +- macros/luatex/generic/minim-math/EUPL-1.2-EN.txt | 287 + macros/luatex/generic/minim-math/README | 27 + .../luatex/generic/minim-math/minim-math-table.lua | 2507 +++++++ macros/luatex/generic/minim-math/minim-math.doc | 244 + macros/luatex/generic/minim-math/minim-math.lua | 482 ++ macros/luatex/generic/minim-math/minim-math.pdf | Bin 0 -> 106915 bytes macros/luatex/generic/minim-math/minim-math.tex | 517 ++ macros/luatex/generic/minim-mp/EUPL-1.2-EN.txt | 287 + macros/luatex/generic/minim-mp/README | 28 + macros/luatex/generic/minim-mp/minim-mp.doc | 329 + macros/luatex/generic/minim-mp/minim-mp.ini | 17 + macros/luatex/generic/minim-mp/minim-mp.lua | 1282 ++++ macros/luatex/generic/minim-mp/minim-mp.pdf | Bin 0 -> 82287 bytes macros/luatex/generic/minim-mp/minim-mp.tex | 61 + macros/luatex/generic/minim-mp/minim.mp | 73 + macros/luatex/generic/minim-pdf/EUPL-1.2-EN.txt | 287 + macros/luatex/generic/minim-pdf/README | 36 + .../generic/minim-pdf/minim-languagecodes.lua | 146 + macros/luatex/generic/minim-pdf/minim-pdf.doc | 425 ++ macros/luatex/generic/minim-pdf/minim-pdf.lua | 1114 +++ macros/luatex/generic/minim-pdf/minim-pdf.pdf | Bin 0 -> 108362 bytes macros/luatex/generic/minim-pdf/minim-pdf.tex | 351 + macros/luatex/generic/minim/EUPL-1.2-EN.txt | 287 + macros/luatex/generic/minim/README | 40 + macros/luatex/generic/minim/minim-alloc.doc | 216 + macros/luatex/generic/minim/minim-alloc.lua | 196 + macros/luatex/generic/minim/minim-alloc.tex | 184 + macros/luatex/generic/minim/minim-callbacks.lua | 265 + macros/luatex/generic/minim/minim-doc.sty | 215 + macros/luatex/generic/minim/minim-etex.tex | 413 ++ macros/luatex/generic/minim/minim-hooks.lua | 30 + macros/luatex/generic/minim/minim-hooks.tex | 56 + macros/luatex/generic/minim/minim-lmodern.tex | 28 + macros/luatex/generic/minim/minim-plain.tex | 786 +++ macros/luatex/generic/minim/minim.doc | 81 + macros/luatex/generic/minim/minim.ini | 25 + macros/luatex/generic/minim/minim.pdf | Bin 0 -> 285949 bytes macros/luatex/generic/minim/minim.tex | 8 + systems/texlive/tlnet/tlpkg/texlive.tlpdb | 315 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2310696 -> 2311828 bytes systems/win32/miktex/tm/packages/files.csv.lzma | Bin 582460 -> 582716 bytes .../win32/miktex/tm/packages/next/files.csv.lzma | Bin 582557 -> 583051 bytes systems/win32/miktex/tm/packages/next/pr.ini | 10 +- systems/win32/miktex/tm/packages/pr.ini | 12 +- systems/win32/w32tex/ChangeLog | 22 + timestamp | 2 +- 126 files changed, 26762 insertions(+), 14452 deletions(-) create mode 100644 graphics/minim-hatching/EUPL-1.2-EN.txt create mode 100644 graphics/minim-hatching/README create mode 100644 graphics/minim-hatching/minim-hatching-doc.mp create mode 100644 graphics/minim-hatching/minim-hatching-doc.pdf create mode 100644 graphics/minim-hatching/minim-hatching.mp create mode 100644 graphics/pictex/PiCTeX_manual.pdf delete mode 100644 graphics/pictex/README create mode 100644 graphics/pictex/README.txt delete mode 100644 graphics/pictex/addon/00index mode change 120000 => 100644 graphics/pictex/addon/autoarea/README delete mode 100644 graphics/pictex/addon/autoarea/README.aa delete mode 100644 graphics/pictex/addon/autoarea/autodemo/autodemo+.log delete mode 100644 graphics/pictex/addon/autoarea/autodemo/autodemo-.log create mode 100644 macros/generic/wichura-table/README.txt create mode 100644 macros/generic/wichura-table/TaBlE_manual.pdf create mode 100644 macros/generic/wichura-table/table.tex delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples-new.pdf delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples-new.tex delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples.pdf delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples.tex create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.bib create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.pdf create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.tex delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib-new.pdf delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib-new.tex delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib.pdf delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib.tex delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamples-new.bib delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamples.bib delete mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/samples.bib create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-footnotes.cbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.cbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.dbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/mla7.bbx create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-mla/mla7.cbx create mode 100644 macros/luatex/generic/minim-math/EUPL-1.2-EN.txt create mode 100644 macros/luatex/generic/minim-math/README create mode 100644 macros/luatex/generic/minim-math/minim-math-table.lua create mode 100644 macros/luatex/generic/minim-math/minim-math.doc create mode 100644 macros/luatex/generic/minim-math/minim-math.lua create mode 100644 macros/luatex/generic/minim-math/minim-math.pdf create mode 100644 macros/luatex/generic/minim-math/minim-math.tex create mode 100644 macros/luatex/generic/minim-mp/EUPL-1.2-EN.txt create mode 100644 macros/luatex/generic/minim-mp/README create mode 100644 macros/luatex/generic/minim-mp/minim-mp.doc create mode 100644 macros/luatex/generic/minim-mp/minim-mp.ini create mode 100644 macros/luatex/generic/minim-mp/minim-mp.lua create mode 100644 macros/luatex/generic/minim-mp/minim-mp.pdf create mode 100644 macros/luatex/generic/minim-mp/minim-mp.tex create mode 100644 macros/luatex/generic/minim-mp/minim.mp create mode 100644 macros/luatex/generic/minim-pdf/EUPL-1.2-EN.txt create mode 100644 macros/luatex/generic/minim-pdf/README create mode 100644 macros/luatex/generic/minim-pdf/minim-languagecodes.lua create mode 100644 macros/luatex/generic/minim-pdf/minim-pdf.doc create mode 100644 macros/luatex/generic/minim-pdf/minim-pdf.lua create mode 100644 macros/luatex/generic/minim-pdf/minim-pdf.pdf create mode 100644 macros/luatex/generic/minim-pdf/minim-pdf.tex create mode 100644 macros/luatex/generic/minim/EUPL-1.2-EN.txt create mode 100644 macros/luatex/generic/minim/README create mode 100644 macros/luatex/generic/minim/minim-alloc.doc create mode 100644 macros/luatex/generic/minim/minim-alloc.lua create mode 100644 macros/luatex/generic/minim/minim-alloc.tex create mode 100644 macros/luatex/generic/minim/minim-callbacks.lua create mode 100644 macros/luatex/generic/minim/minim-doc.sty create mode 100644 macros/luatex/generic/minim/minim-etex.tex create mode 100644 macros/luatex/generic/minim/minim-hooks.lua create mode 100644 macros/luatex/generic/minim/minim-hooks.tex create mode 100644 macros/luatex/generic/minim/minim-lmodern.tex create mode 100644 macros/luatex/generic/minim/minim-plain.tex create mode 100644 macros/luatex/generic/minim/minim.doc create mode 100644 macros/luatex/generic/minim/minim.ini create mode 100644 macros/luatex/generic/minim/minim.pdf create mode 100644 macros/luatex/generic/minim/minim.tex diff --git a/FILES.byname b/FILES.byname index 9b82149ad0..cf21be6d85 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/08 | 271508 | FILES.last07days +2021/06/09 | 253498 | 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 @@ -131747,11 +131747,11 @@ 2000/02/10 | 44061 | fonts/utilities/gsftopk/gsftopkk-1.19.1.tar.gz 2000/12/20 | 44383 | fonts/utilities/gsftopk/gsftopkk-1.19.2.tar.gz 2000/01/25 | 44051 | fonts/utilities/gsftopk/gsftopkk-1.19.tar.gz -2020/05/04 | 105886 | fonts/utilities/jfmutil/jfmutil.pl -2020/05/04 | 1091 | fonts/utilities/jfmutil/LICENSE -2020/05/04 | 23559 | fonts/utilities/jfmutil/README-ja.md -2020/05/04 | 4670 | fonts/utilities/jfmutil/README.md -2020/05/06 | 38891 | fonts/utilities/jfmutil.zip +2021/05/29 | 105886 | fonts/utilities/jfmutil/jfmutil.pl +2021/06/09 | 1091 | fonts/utilities/jfmutil/LICENSE +2021/05/29 | 23704 | fonts/utilities/jfmutil/README-ja.md +2021/05/29 | 4796 | fonts/utilities/jfmutil/README.md +2021/06/09 | 38955 | fonts/utilities/jfmutil.zip 2007/01/10 | 626729 | fonts/utilities/JustFontItTE/Linux/jfite101beta1.tar.gz 2007/01/10 | 2330 | fonts/utilities/JustFontItTE/README 2007/01/10 | 316700 | fonts/utilities/JustFontItTE/Windows/jfite101.zip @@ -141254,6 +141254,12 @@ 2016/07/09 | 1314207 | graphics/mgltex/sample.pdf 2016/07/09 | 14692 | graphics/mgltex/sample.tex 2016/07/10 | 1885199 | graphics/mgltex.zip +2020/03/06 | 13827 | graphics/minim-hatching/EUPL-1.2-EN.txt +2021/06/09 | 4241 | graphics/minim-hatching/minim-hatching-doc.mp +2021/06/09 | 62127 | graphics/minim-hatching/minim-hatching-doc.pdf +2021/06/08 | 7248 | graphics/minim-hatching/minim-hatching.mp +2021/06/08 | 507 | graphics/minim-hatching/README +2021/06/09 | 35935 | graphics/minim-hatching.zip 1995/05/25 | 14864 | graphics/mma2ltx/amiga/extpro 1995/06/21 | 44696 | graphics/mma2ltx/amiga/mma2ltx 1994/07/18 | 32165 | graphics/mma2ltx/doc/12mag_3d.eps @@ -146099,36 +146105,34 @@ 2021/03/27 | 24561 | graphics/pgf/contrib/yquant/tex/yquant-tools.tex 2021/03/27 | 623618 | graphics/pgf/contrib/yquant.zip 2007/12/11 | 654 | graphics/pgf/README -1994/04/20 | 473 | graphics/pictex/addon/00index 2008/08/12 | 1048 | graphics/pictex/addon/autoarea/ANNOUNCE.txt 2008/08/12 | 9341 | graphics/pictex/addon/autoarea/autoarea.sty -2008/05/07 | 3490 | graphics/pictex/addon/autoarea/autodemo/autodemo-.log -2008/05/07 | 3568 | graphics/pictex/addon/autoarea/autodemo/autodemo+.log 2008/05/07 | 25493 | graphics/pictex/addon/autoarea/autodemo/autodemo-.pdf 2008/05/07 | 24873 | graphics/pictex/addon/autoarea/autodemo/autodemo+.pdf 2008/04/19 | 240 | graphics/pictex/addon/autoarea/autodemo/autodemo-.tex 2008/04/19 | 519 | graphics/pictex/addon/autoarea/autodemo/autodemo.tex 2008/04/19 | 186 | graphics/pictex/addon/autoarea/autodemo/autodemo+.tex 2008/08/12 | 642 | graphics/pictex/addon/autoarea/autodemo/README.autodemo -2008/08/12 | 479 | graphics/pictex/addon/autoarea/README.aa +2008/08/12 | 479 | graphics/pictex/addon/autoarea/README 2008/08/12 | 55807 | graphics/pictex/addon/autoarea.zip 2005/10/19 | 4608 | graphics/pictex/addon/piccorr.sty -1994/04/20 | 2952 | graphics/pictex/addon/picmore.tex -1994/04/20 | 311 | graphics/pictex/addon/pictex.sty -1994/04/20 | 416 | graphics/pictex/addon/pictexwd.sty -1994/04/20 | 133232 | graphics/pictex/addon/pictexwd.tex +1994/04/20 | 2876 | graphics/pictex/addon/picmore.tex +1994/04/20 | 294 | graphics/pictex/addon/pictex.sty +1994/04/20 | 397 | graphics/pictex/addon/pictexwd.sty +1994/04/20 | 129555 | graphics/pictex/addon/pictexwd.tex 1994/04/20 | 457 | graphics/pictex/addon/pictexzusatz.txt 1992/08/27 | 3041 | graphics/pictex/errorbars.tex 1992/08/27 | 10519 | graphics/pictex/latexpicobjs.tex +2005/04/03 | 1419473 | graphics/pictex/PiCTeX_manual.pdf 1992/08/27 | 129709 | graphics/pictex/pictex.tex 1992/08/27 | 1322 | graphics/pictex/pointers.tex -1992/08/27 | 1399 | graphics/pictex/postpictex.tex -1992/08/27 | 1082 | graphics/pictex/prepictex.tex -2011/04/01 | 303 | graphics/pictex/README +2021/06/08 | 1848 | graphics/pictex/postpictex.tex +2021/06/08 | 1368 | graphics/pictex/prepictex.tex 1992/08/27 | 876 | graphics/pictex/readme.errorbars +2021/06/08 | 298 | graphics/pictex/README.txt 1989/11/26 | 7270 | graphics/pictex/texpictex.tex 1992/08/31 | 11382 | graphics/pictex/tree.sty -2011/04/03 | 199533 | graphics/pictex.zip +2021/06/09 | 1245432 | graphics/pictex.zip 2018/05/31 | 17537 | graphics/postage/postage.dtx 2018/05/31 | 2443 | graphics/postage/postage.ins 2018/05/30 | 335762 | graphics/postage/postage.pdf @@ -173133,7 +173137,7 @@ 2012/09/24 | 130991 | install/macros/latex/contrib/scrjrnl.tds.zip 2020/02/15 | 1097592 | install/macros/latex/contrib/sdaps.tds.zip 2019/12/10 | 544332 | install/macros/latex/contrib/selinput.tds.zip -2021/06/07 | 2713986 | install/macros/latex/contrib/siunitx.tds.zip +2021/06/09 | 2714917 | install/macros/latex/contrib/siunitx.tds.zip 2019/10/15 | 315856 | install/macros/latex/contrib/skmath.tds.zip 2019/10/16 | 345652 | install/macros/latex/contrib/skrapport.tds.zip 2019/12/15 | 357584 | install/macros/latex/contrib/soulutf8.tds.zip @@ -187869,6 +187873,10 @@ 1994/03/19 | 1183 | macros/generic/vrb/readme 1994/03/19 | 4184 | macros/generic/vrb/vrb.tex 2005/09/25 | 2555 | macros/generic/vrb.zip +2021/06/09 | 471 | macros/generic/wichura-table/README.txt +2005/04/03 | 1566321 | macros/generic/wichura-table/TaBlE_manual.pdf +2000/06/28 | 56593 | macros/generic/wichura-table/table.tex +2021/06/09 | 769585 | macros/generic/wichura-table.zip 2020/06/22 | 1393 | macros/generic/witharrows/README.md 2021/03/04 | 280940 | macros/generic/witharrows/witharrows.dtx 2021/03/04 | 271551 | macros/generic/witharrows/witharrows-french.pdf @@ -192979,31 +192987,29 @@ 2020/01/07 | 1408 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/manuscripts-shared.dbx 2020/01/07 | 768 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology/README 2020/01/07 | 154952 | macros/latex/contrib/biblatex-contrib/biblatex-manuscripts-philology.zip -2016/07/28 | 809 | macros/latex/contrib/biblatex-contrib/biblatex-mla/american-mla.lbx -2016/11/02 | 13956 | macros/latex/contrib/biblatex-contrib/biblatex-mla/CHANGES -2016/11/02 | 396718 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.pdf -2016/11/02 | 55323 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.tex -2016/11/06 | 283863 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples-new.pdf -2016/11/06 | 3212 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples-new.tex -2016/11/06 | 246890 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples.pdf -2016/07/28 | 2742 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/citation-examples.tex -2016/11/05 | 270033 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib-new.pdf -2016/11/05 | 353 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib-new.tex -2016/07/28 | 273209 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib.pdf -2016/07/28 | 305 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamplebib.tex -2016/07/28 | 61223 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamples.bib -2016/11/05 | 61223 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/handbooksamples-new.bib -2016/09/02 | 21545 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/samples.bib -2016/07/28 | 8274 | macros/latex/contrib/biblatex-contrib/biblatex-mla/english-mla.lbx -2016/07/28 | 7355 | macros/latex/contrib/biblatex-contrib/biblatex-mla/italian-mla.lbx -2016/11/05 | 38254 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.bbx -2016/11/05 | 26958 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.cbx -2016/11/06 | 40664 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-new.bbx -2016/11/05 | 26554 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-new.cbx -2016/07/28 | 5936 | macros/latex/contrib/biblatex-contrib/biblatex-mla/portuguese-mla.lbx -2016/11/02 | 1919 | macros/latex/contrib/biblatex-contrib/biblatex-mla/README -2016/07/28 | 7296 | macros/latex/contrib/biblatex-contrib/biblatex-mla/spanish-mla.lbx -2016/11/06 | 1556865 | macros/latex/contrib/biblatex-contrib/biblatex-mla.zip +2021/06/08 | 803 | macros/latex/contrib/biblatex-contrib/biblatex-mla/american-mla.lbx +2021/06/08 | 15795 | macros/latex/contrib/biblatex-contrib/biblatex-mla/CHANGES +2021/06/08 | 167698 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.pdf +2021/06/08 | 62889 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.tex +2021/06/08 | 80379 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.bib +2021/06/08 | 116506 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.pdf +2021/06/08 | 5847 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.tex +2021/06/08 | 9068 | macros/latex/contrib/biblatex-contrib/biblatex-mla/english-mla.lbx +2021/06/08 | 8753 | macros/latex/contrib/biblatex-contrib/biblatex-mla/italian-mla.lbx +2021/06/08 | 38309 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla7.bbx +2021/06/08 | 108 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla7.cbx +2021/06/08 | 4748 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.bbx +2021/06/08 | 16842 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.cbx +2021/06/08 | 1171 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.dbx +2021/06/08 | 12947 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-footnotes.cbx +2021/06/08 | 213 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-new.bbx +2021/06/08 | 209 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-new.cbx +2021/06/08 | 42233 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx +2021/06/08 | 110 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.cbx +2021/06/08 | 7067 | macros/latex/contrib/biblatex-contrib/biblatex-mla/portuguese-mla.lbx +2021/06/08 | 2151 | macros/latex/contrib/biblatex-contrib/biblatex-mla/README +2021/06/08 | 8428 | macros/latex/contrib/biblatex-contrib/biblatex-mla/spanish-mla.lbx +2021/06/09 | 331146 | macros/latex/contrib/biblatex-contrib/biblatex-mla.zip 2017/01/25 | 133371 | macros/latex/contrib/biblatex-contrib/biblatex-morenames/documentation/biblatex-morenames.pdf 2017/01/25 | 12249 | macros/latex/contrib/biblatex-contrib/biblatex-morenames/documentation/biblatex-morenames.tex 2017/01/25 | 622 | macros/latex/contrib/biblatex-contrib/biblatex-morenames/documentation/example-bookineditor.bib @@ -197580,11 +197586,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/08 | 131018 | macros/latex/contrib/easybook/easybook.dtx +2021/06/09 | 131006 | macros/latex/contrib/easybook/easybook.dtx 2021/06/08 | 1499 | macros/latex/contrib/easybook/easybook.ins -2021/06/08 | 324274 | macros/latex/contrib/easybook/easybook.pdf +2021/06/09 | 324143 | macros/latex/contrib/easybook/easybook.pdf 2021/06/08 | 1968 | macros/latex/contrib/easybook/README.md -2021/06/08 | 356840 | macros/latex/contrib/easybook.zip +2021/06/09 | 356748 | 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 @@ -202273,13 +202279,13 @@ 2021/06/01 | 2164 | macros/latex/contrib/hvarabic/latex/hvarabic.sty 2020/06/08 | 548 | macros/latex/contrib/hvarabic/README.md 2021/06/01 | 153159 | macros/latex/contrib/hvarabic.zip -2021/06/07 | 2511 | macros/latex/contrib/hvfloat/Changes +2021/06/09 | 2652 | macros/latex/contrib/hvfloat/Changes 2021/05/31 | 82729 | macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf 2021/05/17 | 2374 | macros/latex/contrib/hvfloat/doc/examples/after1s1c.tex 2021/05/31 | 87651 | macros/latex/contrib/hvfloat/doc/examples/after2s2c.pdf 2021/05/17 | 2457 | macros/latex/contrib/hvfloat/doc/examples/after2s2c.tex 2021/05/17 | 2956 | macros/latex/contrib/hvfloat/doc/examples/capPos.inc -2021/05/06 | 77925 | macros/latex/contrib/hvfloat/doc/examples/capPos.pdf +2021/05/31 | 95386 | macros/latex/contrib/hvfloat/doc/examples/capPos.pdf 2021/05/31 | 1568 | macros/latex/contrib/hvfloat/doc/examples/capPos.tex 2021/05/17 | 3471 | macros/latex/contrib/hvfloat/doc/examples/capVPos.inc 2021/05/31 | 83533 | macros/latex/contrib/hvfloat/doc/examples/default1s1c.pdf @@ -202332,7 +202338,7 @@ 2021/05/17 | 2389 | macros/latex/contrib/hvfloat/doc/examples/odd1s1c.tex 2021/05/31 | 87711 | macros/latex/contrib/hvfloat/doc/examples/odd1s2c.pdf 2021/05/17 | 2517 | macros/latex/contrib/hvfloat/doc/examples/odd1s2c.tex -2021/05/31 | 85195 | macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf +2021/06/09 | 245795 | macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf 2021/05/17 | 2495 | macros/latex/contrib/hvfloat/doc/examples/odd2s1c.tex 2021/05/31 | 86754 | macros/latex/contrib/hvfloat/doc/examples/odd2s2c.pdf 2021/05/17 | 2525 | macros/latex/contrib/hvfloat/doc/examples/odd2s2c.tex @@ -202388,16 +202394,16 @@ 2021/05/31 | 4184 | macros/latex/contrib/hvfloat/doc/examples/wide1s2c.tex 2021/05/31 | 123328 | macros/latex/contrib/hvfloat/doc/examples/wide2s2c.pdf 2021/05/31 | 3964 | macros/latex/contrib/hvfloat/doc/examples/wide2s2c.tex -2021/06/06 | 7113219 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf +2021/06/09 | 7114454 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf 2021/06/07 | 116367 | macros/latex/contrib/hvfloat/doc/hvfloat.tex 2019/04/01 | 69089 | macros/latex/contrib/hvfloat/doc/images/CTAN.png 2019/04/01 | 5208 | macros/latex/contrib/hvfloat/doc/images/frose.png 2021/05/12 | 170 | macros/latex/contrib/hvfloat/doc/images/missing.txt 2019/04/01 | 2493 | macros/latex/contrib/hvfloat/doc/images/rose.png 2020/10/31 | 878 | macros/latex/contrib/hvfloat/latex/hvfloat-fps.sty -2021/06/07 | 60424 | macros/latex/contrib/hvfloat/latex/hvfloat.sty +2021/06/09 | 61005 | macros/latex/contrib/hvfloat/latex/hvfloat.sty 2020/06/07 | 563 | macros/latex/contrib/hvfloat/README -2021/06/07 | 14625290 | macros/latex/contrib/hvfloat.zip +2021/06/09 | 14802216 | macros/latex/contrib/hvfloat.zip 2017/12/12 | 533 | macros/latex/contrib/hvindex/Changes 2017/12/12 | 74896 | macros/latex/contrib/hvindex/doc/hvindex-doc.pdf 2017/12/12 | 7652 | macros/latex/contrib/hvindex/doc/hvindex-doc.tex @@ -211943,34 +211949,34 @@ 2007/12/02 | 2971 | macros/latex/contrib/SIunits/SIunits.ins 2007/12/02 | 328621 | macros/latex/contrib/SIunits/SIunits.pdf 2007/12/02 | 296391 | macros/latex/contrib/SIunits.zip -2021/06/07 | 41826 | macros/latex/contrib/siunitx/CHANGELOG.md -2021/06/07 | 964 | macros/latex/contrib/siunitx/README.md -2021/06/07 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx -2021/06/07 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg -2021/06/07 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx -2021/06/07 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg -2021/06/07 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx -2021/06/07 | 1485621 | macros/latex/contrib/siunitx/siunitx-code.pdf -2021/06/07 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex -2021/06/07 | 8762 | macros/latex/contrib/siunitx/siunitx-command.dtx -2021/06/07 | 25717 | macros/latex/contrib/siunitx/siunitx-complex.dtx -2021/06/07 | 33332 | macros/latex/contrib/siunitx/siunitx-compound.dtx -2021/06/07 | 19542 | macros/latex/contrib/siunitx/siunitx.dtx -2021/06/07 | 29816 | macros/latex/contrib/siunitx/siunitx-emulation.dtx -2021/06/07 | 3687 | macros/latex/contrib/siunitx/siunitx.ins -2021/06/07 | 4629 | macros/latex/contrib/siunitx/siunitx-locale.dtx -2021/06/07 | 114975 | macros/latex/contrib/siunitx/siunitx-number.dtx -2021/06/07 | 634770 | macros/latex/contrib/siunitx/siunitx.pdf -2021/06/07 | 30792 | macros/latex/contrib/siunitx/siunitx-print.dtx -2021/06/07 | 14351 | macros/latex/contrib/siunitx/siunitx-quantity.dtx -2021/06/07 | 8774 | macros/latex/contrib/siunitx/siunitx-symbol.dtx -2021/06/07 | 48536 | macros/latex/contrib/siunitx/siunitx-table.dtx -2021/06/07 | 475888 | macros/latex/contrib/siunitx/siunitx-table.pdf -2021/06/07 | 145224 | macros/latex/contrib/siunitx/siunitx.tex -2021/06/07 | 97866 | macros/latex/contrib/siunitx/siunitx-unit.dtx -2021/06/07 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty -2021/06/07 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg -2021/06/07 | 2676085 | macros/latex/contrib/siunitx.zip +2021/06/09 | 42090 | macros/latex/contrib/siunitx/CHANGELOG.md +2021/06/09 | 964 | macros/latex/contrib/siunitx/README.md +2021/06/09 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx +2021/06/09 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg +2021/06/09 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx +2021/06/09 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg +2021/06/09 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx +2021/06/09 | 1486326 | macros/latex/contrib/siunitx/siunitx-code.pdf +2021/06/09 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex +2021/06/09 | 8762 | macros/latex/contrib/siunitx/siunitx-command.dtx +2021/06/09 | 25717 | macros/latex/contrib/siunitx/siunitx-complex.dtx +2021/06/09 | 33332 | macros/latex/contrib/siunitx/siunitx-compound.dtx +2021/06/09 | 19542 | macros/latex/contrib/siunitx/siunitx.dtx +2021/06/09 | 29819 | macros/latex/contrib/siunitx/siunitx-emulation.dtx +2021/06/09 | 3687 | macros/latex/contrib/siunitx/siunitx.ins +2021/06/09 | 4629 | macros/latex/contrib/siunitx/siunitx-locale.dtx +2021/06/09 | 115561 | macros/latex/contrib/siunitx/siunitx-number.dtx +2021/06/09 | 634773 | macros/latex/contrib/siunitx/siunitx.pdf +2021/06/09 | 30792 | macros/latex/contrib/siunitx/siunitx-print.dtx +2021/06/09 | 14351 | macros/latex/contrib/siunitx/siunitx-quantity.dtx +2021/06/09 | 8726 | macros/latex/contrib/siunitx/siunitx-symbol.dtx +2021/06/09 | 48536 | macros/latex/contrib/siunitx/siunitx-table.dtx +2021/06/09 | 475888 | macros/latex/contrib/siunitx/siunitx-table.pdf +2021/06/09 | 145224 | macros/latex/contrib/siunitx/siunitx.tex +2021/06/09 | 97866 | macros/latex/contrib/siunitx/siunitx-unit.dtx +2021/06/09 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty +2021/06/09 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg +2021/06/09 | 2676999 | macros/latex/contrib/siunitx.zip 2011/06/03 | 662398 | macros/latex/contrib/skb/doc/skb.pdf 2011/03/15 | 1485 | macros/latex/contrib/skb/doc/user-guide/database/acronyms.tex 2011/03/15 | 722 | macros/latex/contrib/skb/doc/user-guide/database/bibliography.tex @@ -223265,6 +223271,48 @@ 2020/12/20 | 4233 | macros/luatex/generic/luaxml/luaxml-transform.lua 2020/12/20 | 1155 | macros/luatex/generic/luaxml/README 2020/12/20 | 149137 | macros/luatex/generic/luaxml.zip +2020/03/06 | 13827 | macros/luatex/generic/minim/EUPL-1.2-EN.txt +2020/03/06 | 13827 | macros/luatex/generic/minim-math/EUPL-1.2-EN.txt +2021/06/08 | 11663 | macros/luatex/generic/minim-math/minim-math.doc +2021/06/08 | 14560 | macros/luatex/generic/minim-math/minim-math.lua +2021/06/09 | 106915 | macros/luatex/generic/minim-math/minim-math.pdf +2021/06/08 | 339808 | macros/luatex/generic/minim-math/minim-math-table.lua +2021/06/08 | 15409 | macros/luatex/generic/minim-math/minim-math.tex +2021/06/08 | 687 | macros/luatex/generic/minim-math/README +2021/06/09 | 152851 | macros/luatex/generic/minim-math.zip +2021/06/08 | 9483 | macros/luatex/generic/minim/minim-alloc.doc +2021/06/08 | 5732 | macros/luatex/generic/minim/minim-alloc.lua +2021/06/08 | 6488 | macros/luatex/generic/minim/minim-alloc.tex +2021/06/09 | 6380 | macros/luatex/generic/minim/minim-callbacks.lua +2021/06/08 | 2571 | macros/luatex/generic/minim/minim.doc +2021/06/09 | 6312 | macros/luatex/generic/minim/minim-doc.sty +2021/06/08 | 14765 | macros/luatex/generic/minim/minim-etex.tex +2021/06/08 | 764 | macros/luatex/generic/minim/minim-hooks.lua +2021/06/08 | 1818 | macros/luatex/generic/minim/minim-hooks.tex +2021/06/09 | 379 | macros/luatex/generic/minim/minim.ini +2021/06/08 | 1196 | macros/luatex/generic/minim/minim-lmodern.tex +2021/06/09 | 285949 | macros/luatex/generic/minim/minim.pdf +2021/06/08 | 30295 | macros/luatex/generic/minim/minim-plain.tex +2021/06/08 | 90 | macros/luatex/generic/minim/minim.tex +2020/03/06 | 13827 | macros/luatex/generic/minim-mp/EUPL-1.2-EN.txt +2021/06/08 | 2541 | macros/luatex/generic/minim-mp/minim.mp +2021/06/08 | 14518 | macros/luatex/generic/minim-mp/minim-mp.doc +2021/06/09 | 385 | macros/luatex/generic/minim-mp/minim-mp.ini +2021/06/08 | 42557 | macros/luatex/generic/minim-mp/minim-mp.lua +2021/06/09 | 82287 | macros/luatex/generic/minim-mp/minim-mp.pdf +2021/06/08 | 1751 | macros/luatex/generic/minim-mp/minim-mp.tex +2021/06/08 | 727 | macros/luatex/generic/minim-mp/README +2021/06/09 | 98075 | macros/luatex/generic/minim-mp.zip +2020/03/06 | 13827 | macros/luatex/generic/minim-pdf/EUPL-1.2-EN.txt +2021/06/08 | 4920 | macros/luatex/generic/minim-pdf/minim-languagecodes.lua +2021/06/08 | 20271 | macros/luatex/generic/minim-pdf/minim-pdf.doc +2021/06/09 | 39616 | macros/luatex/generic/minim-pdf/minim-pdf.lua +2021/06/09 | 108362 | macros/luatex/generic/minim-pdf/minim-pdf.pdf +2021/06/09 | 12818 | macros/luatex/generic/minim-pdf/minim-pdf.tex +2021/06/08 | 905 | macros/luatex/generic/minim-pdf/README +2021/06/09 | 125669 | macros/luatex/generic/minim-pdf.zip +2021/06/08 | 1165 | macros/luatex/generic/minim/README +2021/06/09 | 297431 | macros/luatex/generic/minim.zip 2020/10/23 | 12610 | macros/luatex/generic/nodetree/nodetree.dtx 2020/10/23 | 2250 | macros/luatex/generic/nodetree/nodetree.ins 2020/10/23 | 43720 | macros/luatex/generic/nodetree/nodetree.lua @@ -264433,9 +264481,9 @@ 1994/02/22 | 94984 | systems/mac/macmakeindex2.12.sea.hqx 1993/07/19 | 61321 | systems/mac/macmakeindex.sit.hqx 2021/04/01 | 47 | systems/mac/mactex/BasicTeX.pkg.md5 -2021/06/01 | 38107 | systems/mac/mactex/ExtrasFolder.pdf +2021/06/08 | 38111 | systems/mac/mactex/ExtrasFolder.pdf 2021/04/01 | 50 | systems/mac/mactex/Ghostscript.pkg.md5 -2021/06/01 | 1711 | systems/mac/mactex/Licenses.txt +2021/06/08 | 1711 | systems/mac/mactex/Licenses.txt 2021/03/29 | 4701496188 | systems/mac/mactex/mactex-20210328.pkg 2021/03/29 | 54 | systems/mac/mactex/mactex-20210328.pkg.md5 2021/03/25 | 97330890 | systems/mac/mactex/mactex-basictex-20210325.pkg @@ -264445,8 +264493,8 @@ 2021/04/01 | 45 | systems/mac/mactex/MacTeX.pkg.md5 2021/02/26 | 77461 | systems/mac/mactex/mactex-texdist-20210226.pkg 2021/02/26 | 58 | systems/mac/mactex/mactex-texdist-20210226.pkg.md5 -2021/06/01 | 422433151 | systems/mac/mactex/MacTeXtras-20210601.zip -2021/06/01 | 58 | systems/mac/mactex/MacTeXtras-20210601.zip.md5 +2021/06/08 | 422433940 | systems/mac/mactex/MacTeXtras-20210608.zip +2021/06/08 | 58 | systems/mac/mactex/MacTeXtras-20210608.zip.md5 2021/04/01 | 179 | systems/mac/mactex/README 1995/08/15 | 308344 | systems/mac/MakeIndex-Fat-1.0-sit.hqx 1994/04/20 | 2925109 | systems/mac/metafont/bluesky/MAC_MF_0.66.sit.hqx @@ -268114,8 +268162,8 @@ 2019/08/11 | 218408 | systems/texlive/tlnet/archive/csvmerge.doc.r51857.tar.xz 2019/08/11 | 2940 | systems/texlive/tlnet/archive/csvmerge.r51857.tar.xz 2019/08/11 | 13912 | systems/texlive/tlnet/archive/csvmerge.source.r51857.tar.xz -2019/05/06 | 752344 | systems/texlive/tlnet/archive/csvsimple.doc.r51010.tar.xz -2019/05/06 | 5568 | systems/texlive/tlnet/archive/csvsimple.r51010.tar.xz +2021/06/09 | 771076 | systems/texlive/tlnet/archive/csvsimple.doc.r59521.tar.xz +2021/06/09 | 5576 | systems/texlive/tlnet/archive/csvsimple.r59521.tar.xz 2019/02/28 | 698160 | systems/texlive/tlnet/archive/ctable.doc.r38672.tar.xz 2019/02/28 | 3620 | systems/texlive/tlnet/archive/ctable.r38672.tar.xz 2019/02/28 | 14844 | systems/texlive/tlnet/archive/ctable.source.r38672.tar.xz @@ -268956,7 +269004,7 @@ 2021/03/19 | 413492 | systems/texlive/tlnet/archive/dvipdfmx.i386-solaris.r58500.tar.xz 2021/06/01 | 27128 | systems/texlive/tlnet/archive/dvipdfmx.r59415.tar.xz 2021/03/19 | 791336 | systems/texlive/tlnet/archive/dvipdfmx.universal-darwin.r58528.tar.xz -2021/06/06 | 332332 | systems/texlive/tlnet/archive/dvipdfmx.win32.r59468.tar.xz +2021/06/09 | 332308 | systems/texlive/tlnet/archive/dvipdfmx.win32.r59526.tar.xz 2021/03/19 | 403400 | systems/texlive/tlnet/archive/dvipdfmx.x86_64-cygwin.r58498.tar.xz 2021/03/19 | 405060 | systems/texlive/tlnet/archive/dvipdfmx.x86_64-darwinlegacy.r58501.tar.xz 2021/03/20 | 451244 | systems/texlive/tlnet/archive/dvipdfmx.x86_64-linuxmusl.r58535.tar.xz @@ -269049,9 +269097,9 @@ 2021/01/25 | 1828 | systems/texlive/tlnet/archive/ean13isbn.r57514.tar.xz 2019/02/28 | 948 | systems/texlive/tlnet/archive/ean.doc.r20851.tar.xz 2019/02/28 | 3148 | systems/texlive/tlnet/archive/ean.r20851.tar.xz -2021/06/08 | 313844 | systems/texlive/tlnet/archive/easybook.doc.r59510.tar.xz -2021/06/08 | 14384 | systems/texlive/tlnet/archive/easybook.r59510.tar.xz -2021/06/08 | 31104 | systems/texlive/tlnet/archive/easybook.source.r59510.tar.xz +2021/06/09 | 323036 | systems/texlive/tlnet/archive/easybook.doc.r59522.tar.xz +2021/06/09 | 14444 | systems/texlive/tlnet/archive/easybook.r59522.tar.xz +2021/06/09 | 31576 | systems/texlive/tlnet/archive/easybook.source.r59522.tar.xz 2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz 2020/09/08 | 175976 | systems/texlive/tlnet/archive/easyfig.doc.r56291.tar.xz 2020/09/08 | 1936 | systems/texlive/tlnet/archive/easyfig.r56291.tar.xz @@ -271306,9 +271354,9 @@ 2019/02/28 | 343996 | systems/texlive/tlnet/archive/keycommand.doc.r18042.tar.xz 2019/02/28 | 4904 | systems/texlive/tlnet/archive/keycommand.r18042.tar.xz 2019/02/28 | 15252 | systems/texlive/tlnet/archive/keycommand.source.r18042.tar.xz -2021/05/30 | 1004380 | systems/texlive/tlnet/archive/keyfloat.doc.r59389.tar.xz -2021/05/30 | 6716 | systems/texlive/tlnet/archive/keyfloat.r59389.tar.xz -2021/05/30 | 27852 | systems/texlive/tlnet/archive/keyfloat.source.r59389.tar.xz +2021/06/09 | 1008152 | systems/texlive/tlnet/archive/keyfloat.doc.r59523.tar.xz +2021/06/09 | 6820 | systems/texlive/tlnet/archive/keyfloat.r59523.tar.xz +2021/06/09 | 28188 | systems/texlive/tlnet/archive/keyfloat.source.r59523.tar.xz 2019/04/07 | 146072 | systems/texlive/tlnet/archive/keyindex.doc.r50828.tar.xz 2019/04/07 | 1388 | systems/texlive/tlnet/archive/keyindex.r50828.tar.xz 2019/04/07 | 3464 | systems/texlive/tlnet/archive/keyindex.source.r50828.tar.xz @@ -276649,7 +276697,7 @@ 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz -2021/06/08 | 397692 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59504.tar.xz +2021/06/09 | 397504 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59520.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz 2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz @@ -276673,7 +276721,7 @@ 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz -2021/06/08 | 107984 | systems/texlive/tlnet/archive/texlive-scripts.r59504.tar.xz +2021/06/09 | 108008 | systems/texlive/tlnet/archive/texlive-scripts.r59520.tar.xz 2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz 2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz @@ -278132,8 +278180,8 @@ 2021/03/11 | 2248804 | systems/texlive/tlnet/archive/xindy.x86_64-linux.r58249.tar.xz 2021/05/28 | 2153704 | systems/texlive/tlnet/archive/xint.doc.r59366.tar.xz 2021/05/28 | 79712 | systems/texlive/tlnet/archive/xint.r59366.tar.xz -2021/06/02 | 2140 | systems/texlive/tlnet/archive/xintsession.doc.r59426.tar.xz -2021/06/02 | 6016 | systems/texlive/tlnet/archive/xintsession.r59426.tar.xz +2021/06/09 | 2244 | systems/texlive/tlnet/archive/xintsession.doc.r59524.tar.xz +2021/06/09 | 6124 | systems/texlive/tlnet/archive/xintsession.r59524.tar.xz 2021/05/28 | 387428 | systems/texlive/tlnet/archive/xint.source.r59366.tar.xz 2020/07/03 | 6060 | systems/texlive/tlnet/archive/xits.doc.r55730.tar.xz 2020/07/03 | 541240 | systems/texlive/tlnet/archive/xits.r55730.tar.xz @@ -278375,16 +278423,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2021/05/02 | 105152 | systems/texlive/tlnet/install-tl -2021/06/08 | 6812820 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/06/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/06/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/06/09 | 6812835 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/06/09 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/06/09 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2021/06/08 | 20807246 | systems/texlive/tlnet/install-tl-windows.exe -2021/06/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/06/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/06/08 | 25584659 | systems/texlive/tlnet/install-tl.zip -2021/06/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/06/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/06/09 | 20808974 | systems/texlive/tlnet/install-tl-windows.exe +2021/06/09 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/06/09 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/06/09 | 25584682 | systems/texlive/tlnet/install-tl.zip +2021/06/09 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/06/09 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2021/04/01 | 1229 | systems/texlive/tlnet/README.md 2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021 2021/03/15 | 6571 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -278394,7 +278442,7 @@ 2021/03/15 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2021/05/26 | 49548 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2021/06/07 | 6816 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2021/06/08 | 6929 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -278436,12 +278484,12 @@ 2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/05/16 | 5402 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2021/05/16 | 27555 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2021/06/08 | 17271526 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2021/06/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/06/09 | 17271576 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/06/09 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/05/16 | 86511 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2021/06/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/06/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/06/08 | 2311324 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/06/09 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/06/09 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/06/09 | 2310696 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/05/16 | 58801 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2021/05/16 | 42084 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2021/05/16 | 16103 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -282236,7 +282284,9 @@ 2021/06/06 | 6977268 | systems/win32/miktex/tm/packages/biblatex__doc.tar.lzma 2016/12/09 | 1140816 | systems/win32/miktex/tm/packages/biblatex-dw.tar.lzma 2017/06/18 | 10024 | systems/win32/miktex/tm/packages/biblatex-enc.tar.lzma -2021/04/23 | 895400 | systems/win32/miktex/tm/packages/biblatex-ext.tar.lzma +2021/06/09 | 833160 | systems/win32/miktex/tm/packages/biblatex-ext__doc.tar.lzma +2021/06/09 | 38711 | systems/win32/miktex/tm/packages/biblatex-ext__source.tar.lzma +2021/06/09 | 27133 | systems/win32/miktex/tm/packages/biblatex-ext.tar.lzma 2017/11/22 | 616165 | systems/win32/miktex/tm/packages/biblatex-fiwi.tar.lzma 2021/05/08 | 1661290 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015.tar.lzma 2020/11/24 | 173898 | systems/win32/miktex/tm/packages/biblatex-german-legal.tar.lzma @@ -282703,7 +282753,8 @@ 2017/04/23 | 2092323 | systems/win32/miktex/tm/packages/css-colors.tar.lzma 2016/09/06 | 106657 | systems/win32/miktex/tm/packages/cstypo.tar.lzma 2019/08/13 | 235822 | systems/win32/miktex/tm/packages/csvmerge.tar.lzma -2019/04/10 | 756284 | systems/win32/miktex/tm/packages/csvsimple.tar.lzma +2021/06/09 | 770846 | systems/win32/miktex/tm/packages/csvsimple__doc.tar.lzma +2021/06/09 | 5828 | systems/win32/miktex/tm/packages/csvsimple.tar.lzma 2007/07/04 | 215599 | systems/win32/miktex/tm/packages/csvtools.tar.lzma 2015/10/06 | 155555 | systems/win32/miktex/tm/packages/ctablestack.tar.lzma 2015/10/20 | 716564 | systems/win32/miktex/tm/packages/ctable.tar.lzma @@ -282907,9 +282958,9 @@ 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/08 | 314913 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma -2021/06/08 | 31478 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma -2021/06/08 | 14659 | systems/win32/miktex/tm/packages/easybook.tar.lzma +2021/06/09 | 324143 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma +2021/06/09 | 31964 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma +2021/06/09 | 14705 | 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 @@ -283193,7 +283244,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/08 | 582460 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/06/09 | 582716 | 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 @@ -283734,7 +283785,9 @@ 2004/04/22 | 672120 | systems/win32/miktex/tm/packages/kerntest.cab 2019/12/31 | 14443571 | systems/win32/miktex/tm/packages/ketcindy.tar.lzma 2010/05/10 | 363388 | systems/win32/miktex/tm/packages/keycommand.tar.lzma -2021/06/03 | 1049268 | systems/win32/miktex/tm/packages/keyfloat.tar.lzma +2021/06/09 | 1011581 | systems/win32/miktex/tm/packages/keyfloat__doc.tar.lzma +2021/06/09 | 35840 | systems/win32/miktex/tm/packages/keyfloat__source.tar.lzma +2021/06/09 | 7075 | systems/win32/miktex/tm/packages/keyfloat.tar.lzma 2019/04/07 | 150914 | systems/win32/miktex/tm/packages/keyindex.tar.lzma 2012/11/08 | 249186 | systems/win32/miktex/tm/packages/keyreader.tar.lzma 2010/05/10 | 38167 | systems/win32/miktex/tm/packages/keystroke.tar.lzma @@ -283840,7 +283893,9 @@ 2021/06/06 | 15361 | systems/win32/miktex/tm/packages/latex-graphics-dev.tar.lzma 2021/05/08 | 1045028 | systems/win32/miktex/tm/packages/latexindent.tar.lzma 2021/01/07 | 716957 | systems/win32/miktex/tm/packages/latex-make.tar.lzma -2021/05/18 | 375353 | systems/win32/miktex/tm/packages/latexmk.tar.lzma +2021/06/09 | 279382 | systems/win32/miktex/tm/packages/latexmk__doc.tar.lzma +2021/06/09 | 14661 | systems/win32/miktex/tm/packages/latexmk__source.tar.lzma +2021/06/09 | 94160 | systems/win32/miktex/tm/packages/latexmk.tar.lzma 2019/09/01 | 152454 | systems/win32/miktex/tm/packages/latexmp.tar.lzma 2017/06/15 | 358573 | systems/win32/miktex/tm/packages/latex-mr.tar.lzma 2019/12/13 | 8214 | systems/win32/miktex/tm/packages/latexpand.tar.lzma @@ -284446,9 +284501,9 @@ 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma 2021/06/06 | 38984 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma 2021/06/06 | 43369 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2021/06/08 | 216819 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/06/08 | 1288428 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/06/08 | 1201291 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/06/09 | 217209 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/06/09 | 1288520 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/06/09 | 1201645 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2021/06/06 | 13457 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma 2021/06/06 | 14323 | 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 @@ -284616,189 +284671,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/08 | 582557 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/06/08 | 51088 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/06/08 | 56473 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/06/08 | 971290 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/06/08 | 1076119 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/06/08 | 29046 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/06/08 | 31328 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/06/08 | 29835 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/06/08 | 34651 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/06/08 | 50032 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2021/06/08 | 57635 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/06/08 | 83761 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/06/08 | 95453 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/06/08 | 67886 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/06/08 | 75964 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/06/08 | 27185 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/06/08 | 30808 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/06/08 | 330437 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/06/08 | 392697 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/06/08 | 32597 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/06/08 | 36605 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/06/08 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/06/08 | 56811 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/06/08 | 239580 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/06/08 | 261911 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/06/08 | 180187 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/06/08 | 195754 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/06/08 | 52543 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/06/08 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/06/08 | 21177 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/06/08 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/06/08 | 461826 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/06/08 | 46494 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/06/08 | 51118 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/06/08 | 281964 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/06/08 | 321643 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/06/08 | 41187 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2021/06/08 | 45318 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/06/08 | 117477 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/06/08 | 131580 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/06/08 | 1294235 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/06/08 | 1423058 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/06/08 | 100459 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2021/06/08 | 112814 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/06/08 | 43059 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/06/08 | 48237 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/06/08 | 25004 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/06/08 | 28162 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/06/08 | 56338 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/06/08 | 62714 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/06/08 | 134793 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/06/08 | 152163 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/06/08 | 72924 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/06/08 | 77939 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/06/08 | 71707 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/06/08 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/06/08 | 258838 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/06/08 | 295145 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/06/08 | 22023 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2021/06/08 | 24987 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/06/08 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/06/08 | 112166 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/06/08 | 64402 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/06/08 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/06/08 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/06/08 | 115120 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/06/08 | 38169 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/06/08 | 42981 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/06/08 | 482837 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/06/08 | 565936 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/06/08 | 147408 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/06/08 | 159548 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2021/06/08 | 94773 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/06/08 | 108936 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/06/08 | 16342 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/06/08 | 17983 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/06/08 | 28285 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/06/08 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/06/08 | 629825 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/06/08 | 680954 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/06/08 | 532270 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/06/08 | 596060 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/06/08 | 476901 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/06/08 | 512667 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/06/08 | 94383 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2021/06/08 | 103437 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/06/08 | 1708076 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/06/08 | 2005873 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/06/08 | 67610 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/06/08 | 74206 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/06/08 | 27265 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/06/08 | 31570 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/06/08 | 7717 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/06/08 | 8771 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/06/08 | 197089 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/06/08 | 215197 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/06/08 | 250395 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/06/08 | 284040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/06/08 | 98266 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/06/08 | 103517 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/06/08 | 60619 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/06/08 | 67973 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/06/08 | 124615 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2021/06/08 | 136506 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/06/08 | 147712 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/06/08 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/06/08 | 199636 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/06/08 | 180081 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/06/08 | 67371 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/06/08 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/06/08 | 31207 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/06/08 | 35071 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/06/08 | 37865 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/06/08 | 42729 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/06/08 | 42886 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/06/08 | 46723 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/06/08 | 45939 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/06/08 | 52440 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/06/08 | 194076 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2021/06/08 | 206345 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/06/08 | 35699 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/06/08 | 40342 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/06/08 | 748785 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/06/08 | 816251 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/06/08 | 198227 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/06/08 | 202702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/06/08 | 207851 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/06/08 | 243392 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/06/08 | 78749 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/06/08 | 87679 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/06/08 | 1170758 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/06/08 | 1300399 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/06/08 | 20124 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/06/08 | 23883 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/06/08 | 31547 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/06/08 | 37229 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/06/08 | 64033 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/06/08 | 72178 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/06/08 | 44611 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/06/08 | 51457 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/06/08 | 1308115 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/06/08 | 1429094 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/06/08 | 42375 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/06/08 | 51742 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/06/08 | 56289 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/06/08 | 59699 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/06/08 | 25265 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/06/08 | 27260 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/06/08 | 16446 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/06/08 | 18168 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/06/08 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/06/08 | 69898 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2021/06/08 | 154623 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/06/08 | 169103 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/06/08 | 56752 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/06/08 | 65468 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/06/08 | 97981 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/06/08 | 106861 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2021/06/08 | 2670400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/06/08 | 2793679 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/06/08 | 56311 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/06/08 | 62228 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/06/08 | 33601 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/06/08 | 37363 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/06/08 | 27710 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/06/08 | 33623 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/06/08 | 67262 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/06/08 | 70487 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/06/08 | 311355 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/06/08 | 345325 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/06/08 | 55524 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/06/08 | 57112 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/06/08 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/06/08 | 621333 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/06/08 | 39019 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/06/08 | 43358 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/06/08 | 216900 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/06/08 | 1289154 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/06/08 | 1202422 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/06/08 | 13448 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/06/08 | 14347 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/06/09 | 583051 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/06/09 | 51089 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/06/09 | 56471 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/06/09 | 971288 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/06/09 | 1076119 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/06/09 | 29045 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/06/09 | 31328 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/06/09 | 29835 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/06/09 | 34652 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/06/09 | 50032 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/06/09 | 57634 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/06/09 | 83761 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/06/09 | 95453 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/06/09 | 67889 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/06/09 | 75965 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/06/09 | 27186 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/06/09 | 30808 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/06/09 | 330439 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/06/09 | 392699 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/06/09 | 32600 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/06/09 | 36606 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/06/09 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/06/09 | 56814 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/06/09 | 239583 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/06/09 | 261912 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/06/09 | 180188 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/06/09 | 195754 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/06/09 | 52544 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/06/09 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/06/09 | 21178 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/06/09 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/06/09 | 461825 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/06/09 | 46495 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/06/09 | 51118 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/06/09 | 281967 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/06/09 | 321646 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/06/09 | 41190 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/06/09 | 45318 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/06/09 | 117479 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/06/09 | 131582 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/06/09 | 1294238 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/06/09 | 1423059 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/06/09 | 100463 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/06/09 | 112816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/06/09 | 43061 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/06/09 | 48239 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/06/09 | 25009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/06/09 | 28164 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/06/09 | 56341 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/06/09 | 62716 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/06/09 | 134798 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/06/09 | 152162 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/06/09 | 72927 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/06/09 | 77942 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/06/09 | 71710 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/06/09 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/06/09 | 258840 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/06/09 | 295147 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/06/09 | 22025 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/06/09 | 24989 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/06/09 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/06/09 | 112167 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/06/09 | 64404 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/06/09 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/06/09 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/06/09 | 115121 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/06/09 | 38172 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/09 | 42982 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/06/09 | 482839 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/06/09 | 565937 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/06/09 | 147408 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/06/09 | 159548 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/06/09 | 94773 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/06/09 | 108936 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/06/09 | 16342 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/06/09 | 17982 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/06/09 | 28288 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/06/09 | 30038 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/06/09 | 629826 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/06/09 | 680953 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/06/09 | 532268 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/06/09 | 596063 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/06/09 | 476903 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/06/09 | 512668 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/06/09 | 94384 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/06/09 | 103439 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/06/09 | 1708079 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/06/09 | 2005872 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/06/09 | 67611 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/06/09 | 74208 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/06/09 | 27267 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/06/09 | 31569 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/06/09 | 7716 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/06/09 | 8771 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/06/09 | 197090 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/06/09 | 215198 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/06/09 | 250394 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/06/09 | 284041 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/06/09 | 98268 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/06/09 | 103520 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/06/09 | 60618 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/06/09 | 67973 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/06/09 | 124616 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/06/09 | 136506 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/06/09 | 147714 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/06/09 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/06/09 | 199641 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/06/09 | 180081 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/06/09 | 67374 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/06/09 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/06/09 | 31208 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/06/09 | 35071 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/06/09 | 37867 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/06/09 | 42729 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/06/09 | 42889 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/06/09 | 46724 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/06/09 | 45941 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/06/09 | 52440 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/06/09 | 194079 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/06/09 | 206344 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/06/09 | 35700 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/06/09 | 40344 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/06/09 | 748788 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/06/09 | 816252 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/06/09 | 198226 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/06/09 | 202703 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/06/09 | 207853 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/06/09 | 243393 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/06/09 | 78752 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/06/09 | 87679 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/06/09 | 1170762 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/06/09 | 1300401 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/06/09 | 20125 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/06/09 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/06/09 | 31548 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/06/09 | 37231 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/06/09 | 64034 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/06/09 | 72178 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/06/09 | 44613 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/06/09 | 51457 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/06/09 | 1308119 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/06/09 | 1429090 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/06/09 | 42375 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/06/09 | 51742 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/06/09 | 56291 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/06/09 | 59700 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/06/09 | 25268 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/06/09 | 27260 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/06/09 | 16448 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/06/09 | 18168 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/06/09 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/06/09 | 69899 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/06/09 | 154626 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/06/09 | 169104 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/06/09 | 56755 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/06/09 | 65468 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/06/09 | 97981 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/06/09 | 106861 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/06/09 | 2670404 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/06/09 | 2793681 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/06/09 | 56314 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/06/09 | 62229 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/06/09 | 33602 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/06/09 | 37365 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/06/09 | 27711 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/06/09 | 33621 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/06/09 | 67263 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/06/09 | 70489 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/06/09 | 311357 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/06/09 | 345326 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/06/09 | 55525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/06/09 | 57112 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/06/09 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/06/09 | 621335 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/06/09 | 39020 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/06/09 | 43358 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/06/09 | 217236 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/06/09 | 1290005 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/06/09 | 1201015 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/06/09 | 13448 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/06/09 | 14347 | 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/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/06/09 | 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 @@ -285146,7 +285201,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/08 | 921 | systems/win32/miktex/tm/packages/pr.ini +2021/06/09 | 929 | 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 @@ -286249,7 +286304,8 @@ 2017/11/18 | 1593 | systems/win32/miktex/tm/packages/xii.tar.lzma 2020/10/03 | 507830 | systems/win32/miktex/tm/packages/xindex.tar.lzma 2016/11/05 | 133165 | systems/win32/miktex/tm/packages/xindy.tar.lzma -2021/06/03 | 7800 | systems/win32/miktex/tm/packages/xintsession.tar.lzma +2021/06/09 | 2853 | systems/win32/miktex/tm/packages/xintsession__doc.tar.lzma +2021/06/09 | 6370 | systems/win32/miktex/tm/packages/xintsession.tar.lzma 2021/05/29 | 2624826 | systems/win32/miktex/tm/packages/xint.tar.lzma 2020/07/03 | 547474 | systems/win32/miktex/tm/packages/xits.tar.lzma 2019/10/22 | 228077 | systems/win32/miktex/tm/packages/xkcdcolors.tar.lzma @@ -286374,21 +286430,21 @@ 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/07 | 842205 | systems/win32/w32tex/ChangeLog +2021/06/08 | 842625 | 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 2013/09/03 | 352299 | systems/win32/w32tex/ChangeLog.3 2017/06/24 | 644754 | systems/win32/w32tex/ChangeLog.4 -2021/06/06 | 23539312 | systems/win32/w32tex/cjkzr.tar.xz +2021/06/08 | 23556216 | systems/win32/w32tex/cjkzr.tar.xz 2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz 2021/06/07 | 144872836 | systems/win32/w32tex/context.tar.xz 2021/06/07 | 914292 | systems/win32/w32tex/cweb-w32.tar.xz 2021/03/22 | 6433932 | systems/win32/w32tex/datetime2.tar.xz 2021/04/07 | 846020 | systems/win32/w32tex/dvi2ps-w32.tar.xz 2021/04/07 | 484144 | systems/win32/w32tex/dvi2tty-w32.tar.xz -2021/06/05 | 4667000 | systems/win32/w32tex/dvipdfm-w32.tar.xz -2021/06/05 | 4552032 | systems/win32/w32tex/dvipsk-w32.tar.xz +2021/06/08 | 4667076 | systems/win32/w32tex/dvipdfm-w32.tar.xz +2021/06/08 | 4551656 | systems/win32/w32tex/dvipsk-w32.tar.xz 2021/04/07 | 2652392 | systems/win32/w32tex/dvitools-w32.tar.xz 2021/06/02 | 1181300 | systems/win32/w32tex/extractpdfmark-w32.tar.xz 2021/04/07 | 17377260 | systems/win32/w32tex/gregorio-w32.tar.xz @@ -286398,25 +286454,25 @@ 2021/06/06 | 39449224 | 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/06 | 50084804 | systems/win32/w32tex/ltxpkgs.tar.xz +2021/06/08 | 50080024 | 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 2021/03/26 | 838276 | systems/win32/w32tex/luasec-w32.tar.xz 2021/06/06 | 18970864 | systems/win32/w32tex/luatex-dev-w32.tar.xz 2021/06/06 | 18978924 | systems/win32/w32tex/luatex-exp-w32.tar.xz -2021/05/22 | 68826360 | systems/win32/w32tex/luatexja.tar.xz +2021/06/08 | 68832972 | systems/win32/w32tex/luatexja.tar.xz 2021/06/06 | 18971000 | systems/win32/w32tex/luatex-w32.tar.xz 2021/06/07 | 1613420 | systems/win32/w32tex/makeindex-w32.tar.xz 2021/03/28 | 5371984 | systems/win32/w32tex/manual.tar.xz -2021/06/05 | 439816 | systems/win32/w32tex/mftools.tar.xz +2021/06/08 | 439780 | systems/win32/w32tex/mftools.tar.xz 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/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/06 | 22326492 | systems/win32/w32tex/pdftex-w32.tar.xz +2021/06/08 | 22327960 | systems/win32/w32tex/pdftex-w32.tar.xz 2021/06/02 | 98502796 | systems/win32/w32tex/pgfcontrib.tar.xz 2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz 2021/06/05 | 2849152 | systems/win32/w32tex/platex.tar.xz @@ -286453,7 +286509,7 @@ 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 -2021/06/03 | 130738976 | systems/win32/w32tex/web2c-lib.tar.xz +2021/06/08 | 131174548 | systems/win32/w32tex/web2c-lib.tar.xz 2021/05/21 | 45553952 | systems/win32/w32tex/web2c-w32.tar.xz 2021/05/08 | 811412 | systems/win32/w32tex/win64/aleph-w64.tar.xz 2020/08/20 | 22351540 | systems/win32/w32tex/win64/biblatex-biber-w64.tar.xz @@ -286595,7 +286651,7 @@ 2004/06/04 | 404 | tds/tds.sed 2004/06/23 | 65418 | tds/tds.tex 2019/05/29 | 304264 | tds.zip -2021/06/09 | 186 | timestamp +2021/06/10 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index 3f8e6edf0d..a8f4763bf8 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index d6b484eb73..5f4e654379 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,69 +1,346 @@ +2021/06/09 | 98268 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/06/09 | 98075 | macros/luatex/generic/minim-mp.zip +2021/06/09 | 97981 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/06/09 | 97866 | macros/latex/contrib/siunitx/siunitx-unit.dtx +2021/06/09 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/06/09 | 971288 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/06/09 | 964 | macros/latex/contrib/siunitx/README.md +2021/06/09 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/06/09 | 95453 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/06/09 | 94773 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/06/09 | 94384 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/06/09 | 94160 | systems/win32/miktex/tm/packages/latexmk.tar.lzma +2021/06/09 | 929 | systems/win32/miktex/tm/packages/pr.ini +2021/06/09 | 8771 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/06/09 | 87679 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/06/09 | 8762 | macros/latex/contrib/siunitx/siunitx-command.dtx +2021/06/09 | 8726 | macros/latex/contrib/siunitx/siunitx-symbol.dtx +2021/06/09 | 83761 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/06/09 | 833160 | systems/win32/miktex/tm/packages/biblatex-ext__doc.tar.lzma +2021/06/09 | 82287 | macros/luatex/generic/minim-mp/minim-mp.pdf +2021/06/09 | 816252 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/06/09 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/06/09 | 78752 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/06/09 | 77942 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/06/09 | 7716 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/06/09 | 771076 | systems/texlive/tlnet/archive/csvsimple.doc.r59521.tar.xz +2021/06/09 | 770846 | systems/win32/miktex/tm/packages/csvsimple__doc.tar.lzma +2021/06/09 | 769585 | macros/generic/wichura-table.zip +2021/06/09 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/06/09 | 75965 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/06/09 | 748788 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/06/09 | 74208 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/06/09 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/06/09 | 72927 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/06/09 | 72178 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/06/09 | 71710 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/06/09 | 7114454 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf +2021/06/09 | 7075 | systems/win32/miktex/tm/packages/keyfloat.tar.lzma +2021/06/09 | 70489 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/06/09 | 69899 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/06/09 | 6820 | systems/texlive/tlnet/archive/keyfloat.r59523.tar.xz +2021/06/09 | 6812835 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/06/09 | 680953 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/06/09 | 67973 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/06/09 | 67889 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/06/09 | 67611 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/06/09 | 67374 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/06/09 | 67263 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/06/09 | 65468 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/06/09 | 64404 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/06/09 | 64034 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/06/09 | 6380 | macros/luatex/generic/minim/minim-callbacks.lua +2021/06/09 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/06/09 | 6370 | systems/win32/miktex/tm/packages/xintsession.tar.lzma +2021/06/09 | 634773 | macros/latex/contrib/siunitx/siunitx.pdf +2021/06/09 | 6312 | macros/luatex/generic/minim/minim-doc.sty +2021/06/09 | 629826 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/06/09 | 62716 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/06/09 | 62229 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/06/09 | 621335 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/06/09 | 62127 | graphics/minim-hatching/minim-hatching-doc.pdf +2021/06/09 | 6124 | systems/texlive/tlnet/archive/xintsession.r59524.tar.xz +2021/06/09 | 61005 | macros/latex/contrib/hvfloat/latex/hvfloat.sty +2021/06/09 | 60618 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/06/09 | 59700 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/06/09 | 596063 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/06/09 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/06/09 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/06/09 | 583051 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/06/09 | 5828 | systems/win32/miktex/tm/packages/csvsimple.tar.lzma +2021/06/09 | 582716 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/06/09 | 57634 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/06/09 | 57112 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/06/09 | 56814 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/06/09 | 56755 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/06/09 | 565937 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/06/09 | 56471 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/06/09 | 56341 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/06/09 | 56314 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/06/09 | 56291 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/06/09 | 5576 | systems/texlive/tlnet/archive/csvsimple.r59521.tar.xz +2021/06/09 | 55525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/06/09 | 532268 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/06/09 | 52544 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/06/09 | 52440 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/06/09 | 51742 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/06/09 | 51457 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/06/09 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/06/09 | 512668 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/06/09 | 51118 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/06/09 | 51089 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/06/09 | 50032 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/06/09 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/06/09 | 48536 | macros/latex/contrib/siunitx/siunitx-table.dtx +2021/06/09 | 482839 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/06/09 | 48239 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/06/09 | 476903 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/06/09 | 475888 | macros/latex/contrib/siunitx/siunitx-table.pdf +2021/06/09 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg +2021/06/09 | 471 | macros/generic/wichura-table/README.txt +2021/06/09 | 46724 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/06/09 | 46495 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/06/09 | 4629 | macros/latex/contrib/siunitx/siunitx-locale.dtx +2021/06/09 | 461825 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/06/09 | 45941 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/06/09 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/06/09 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/06/09 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/06/09 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/06/09 | 45318 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/06/09 | 44613 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/06/09 | 43358 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/06/09 | 43061 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/06/09 | 42982 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/06/09 | 42889 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/06/09 | 42729 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/06/09 | 4241 | graphics/minim-hatching/minim-hatching-doc.mp +2021/06/09 | 42375 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/06/09 | 42090 | macros/latex/contrib/siunitx/CHANGELOG.md +2021/06/09 | 41190 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/06/09 | 40344 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/06/09 | 397504 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59520.tar.xz +2021/06/09 | 39616 | macros/luatex/generic/minim-pdf/minim-pdf.lua +2021/06/09 | 392699 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/06/09 | 39020 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/06/09 | 38955 | fonts/utilities/jfmutil.zip +2021/06/09 | 38711 | systems/win32/miktex/tm/packages/biblatex-ext__source.tar.lzma +2021/06/09 | 385 | macros/luatex/generic/minim-mp/minim-mp.ini +2021/06/09 | 38172 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/09 | 379 | macros/luatex/generic/minim/minim.ini +2021/06/09 | 37867 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/06/09 | 37365 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/06/09 | 37231 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/06/09 | 3687 | macros/latex/contrib/siunitx/siunitx.ins +2021/06/09 | 36606 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/06/09 | 35935 | graphics/minim-hatching.zip +2021/06/09 | 35840 | systems/win32/miktex/tm/packages/keyfloat__source.tar.lzma +2021/06/09 | 35700 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/06/09 | 356748 | macros/latex/contrib/easybook.zip +2021/06/09 | 35071 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/06/09 | 34652 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/06/09 | 345326 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/06/09 | 33621 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/06/09 | 33602 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/06/09 | 33332 | macros/latex/contrib/siunitx/siunitx-compound.dtx +2021/06/09 | 332308 | systems/texlive/tlnet/archive/dvipdfmx.win32.r59526.tar.xz +2021/06/09 | 331146 | macros/latex/contrib/biblatex-contrib/biblatex-mla.zip +2021/06/09 | 330439 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/06/09 | 32600 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/06/09 | 324143 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma +2021/06/09 | 324143 | macros/latex/contrib/easybook/easybook.pdf +2021/06/09 | 323036 | systems/texlive/tlnet/archive/easybook.doc.r59522.tar.xz +2021/06/09 | 321646 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/06/09 | 31964 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma +2021/06/09 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg +2021/06/09 | 31576 | systems/texlive/tlnet/archive/easybook.source.r59522.tar.xz +2021/06/09 | 31569 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/06/09 | 31548 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/06/09 | 31328 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/06/09 | 31208 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/06/09 | 311357 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/06/09 | 30808 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/06/09 | 30792 | macros/latex/contrib/siunitx/siunitx-print.dtx +2021/06/09 | 30038 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/06/09 | 29835 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/06/09 | 29819 | macros/latex/contrib/siunitx/siunitx-emulation.dtx +2021/06/09 | 297431 | macros/luatex/generic/minim.zip +2021/06/09 | 295147 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/06/09 | 29045 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/06/09 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx +2021/06/09 | 285949 | macros/luatex/generic/minim/minim.pdf +2021/06/09 | 2853 | systems/win32/miktex/tm/packages/xintsession__doc.tar.lzma +2021/06/09 | 284041 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/06/09 | 28288 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/06/09 | 281967 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/06/09 | 28188 | systems/texlive/tlnet/archive/keyfloat.source.r59523.tar.xz +2021/06/09 | 28164 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/06/09 | 279382 | systems/win32/miktex/tm/packages/latexmk__doc.tar.lzma +2021/06/09 | 2793681 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/06/09 | 27711 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/06/09 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty +2021/06/09 | 27267 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/06/09 | 27260 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/06/09 | 27186 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/06/09 | 2714917 | install/macros/latex/contrib/siunitx.tds.zip +2021/06/09 | 27133 | systems/win32/miktex/tm/packages/biblatex-ext.tar.lzma +2021/06/09 | 2676999 | macros/latex/contrib/siunitx.zip +2021/06/09 | 2670404 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/06/09 | 2652 | macros/latex/contrib/hvfloat/Changes +2021/06/09 | 261912 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/06/09 | 258840 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/06/09 | 25717 | macros/latex/contrib/siunitx/siunitx-complex.dtx +2021/06/09 | 25584682 | systems/texlive/tlnet/install-tl.zip +2021/06/09 | 25268 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/06/09 | 250394 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/06/09 | 25009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/06/09 | 24989 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/06/09 | 245795 | macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf +2021/06/09 | 243393 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/06/09 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex +2021/06/09 | 239583 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/06/09 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/06/09 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/06/09 | 2310696 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/06/09 | 2244 | systems/texlive/tlnet/archive/xintsession.doc.r59524.tar.xz +2021/06/09 | 22025 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/06/09 | 217236 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/06/09 | 217209 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/06/09 | 215198 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/06/09 | 21178 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/06/09 | 20808974 | systems/texlive/tlnet/install-tl-windows.exe +2021/06/09 | 207853 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/06/09 | 206344 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/06/09 | 202703 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/06/09 | 20125 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/06/09 | 2005872 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/06/09 | 199641 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/06/09 | 198226 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/06/09 | 197090 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/06/09 | 195754 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/06/09 | 19542 | macros/latex/contrib/siunitx/siunitx.dtx +2021/06/09 | 194079 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/06/09 | 18168 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/06/09 | 180188 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/06/09 | 180081 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/06/09 | 17982 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/06/09 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg +2021/06/09 | 17271576 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/06/09 | 1708079 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/06/09 | 169104 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/06/09 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx +2021/06/09 | 16448 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/06/09 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/06/09 | 16342 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/06/09 | 159548 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/06/09 | 154626 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/06/09 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/06/09 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/06/09 | 152851 | macros/luatex/generic/minim-math.zip +2021/06/09 | 152162 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/06/09 | 1486326 | macros/latex/contrib/siunitx/siunitx-code.pdf +2021/06/09 | 14802216 | macros/latex/contrib/hvfloat.zip +2021/06/09 | 147714 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/06/09 | 147408 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/06/09 | 14705 | systems/win32/miktex/tm/packages/easybook.tar.lzma +2021/06/09 | 14661 | systems/win32/miktex/tm/packages/latexmk__source.tar.lzma +2021/06/09 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/06/09 | 145224 | macros/latex/contrib/siunitx/siunitx.tex +2021/06/09 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/06/09 | 14444 | systems/texlive/tlnet/archive/easybook.r59522.tar.xz +2021/06/09 | 14351 | macros/latex/contrib/siunitx/siunitx-quantity.dtx +2021/06/09 | 14347 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/06/09 | 1429090 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/06/09 | 1423059 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/06/09 | 136506 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/06/09 | 134798 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/06/09 | 13448 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/06/09 | 131582 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/06/09 | 131006 | macros/latex/contrib/easybook/easybook.dtx +2021/06/09 | 1308119 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/06/09 | 1300401 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/06/09 | 1294238 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/06/09 | 1290005 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/06/09 | 1288520 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/06/09 | 12818 | macros/luatex/generic/minim-pdf/minim-pdf.tex +2021/06/09 | 125669 | macros/luatex/generic/minim-pdf.zip +2021/06/09 | 124616 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/06/09 | 1245432 | graphics/pictex.zip +2021/06/09 | 1201645 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/06/09 | 1201015 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/06/09 | 117479 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/06/09 | 1170762 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/06/09 | 115561 | macros/latex/contrib/siunitx/siunitx-number.dtx +2021/06/09 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/06/09 | 115121 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/06/09 | 112816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/06/09 | 112167 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/06/09 | 1091 | fonts/utilities/jfmutil/LICENSE +2021/06/09 | 108936 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/06/09 | 108362 | macros/luatex/generic/minim-pdf/minim-pdf.pdf +2021/06/09 | 108008 | systems/texlive/tlnet/archive/texlive-scripts.r59520.tar.xz +2021/06/09 | 1076119 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/06/09 | 106915 | macros/luatex/generic/minim-math/minim-math.pdf +2021/06/09 | 106861 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/06/09 | 103520 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/06/09 | 103439 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/06/09 | 1011581 | systems/win32/miktex/tm/packages/keyfloat__doc.tar.lzma +2021/06/09 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx +2021/06/09 | 1008152 | systems/texlive/tlnet/archive/keyfloat.doc.r59523.tar.xz +2021/06/09 | 100463 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma 2021/06/08 | 9923235 | systems/win32/miktex/tm/packages/bjfuthesis__doc.tar.lzma 2021/06/08 | 9903148 | systems/texlive/tlnet/archive/bjfuthesis.doc.r59505.tar.xz -2021/06/08 | 98266 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/06/08 | 97981 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/06/08 | 97491 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/06/08 | 971290 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/06/08 | 96475 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma 2021/06/08 | 958085 | macros/latex/contrib/biblatex-contrib/biblatex-ext.zip -2021/06/08 | 95453 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma 2021/06/08 | 9516 | macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua -2021/06/08 | 94773 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/06/08 | 94383 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/06/08 | 9483 | macros/luatex/generic/minim/minim-alloc.doc 2021/06/08 | 9336 | systems/texlive/tlnet/archive/colorist.r59509.tar.xz 2021/06/08 | 93361 | systems/win32/miktex/tm/packages/pythontex__source.tar.lzma 2021/06/08 | 92392 | systems/texlive/tlnet/archive/colorist.doc.r59509.tar.xz 2021/06/08 | 9227 | systems/win32/miktex/tm/packages/colorist.tar.lzma -2021/06/08 | 921 | systems/win32/miktex/tm/packages/pr.ini 2021/06/08 | 91296 | systems/texlive/tlnet/archive/hyperref.r59511.tar.xz 2021/06/08 | 91288 | systems/texlive/tlnet/archive/minimalist.doc.r59513.tar.xz 2021/06/08 | 91218 | systems/win32/miktex/tm/packages/hyperref.tar.lzma -2021/06/08 | 8771 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/06/08 | 87679 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/06/08 | 90 | macros/luatex/generic/minim/minim.tex +2021/06/08 | 9068 | macros/latex/contrib/biblatex-contrib/biblatex-mla/english-mla.lbx +2021/06/08 | 905 | macros/luatex/generic/minim-pdf/README 2021/06/08 | 8766 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx +2021/06/08 | 8753 | macros/latex/contrib/biblatex-contrib/biblatex-mla/italian-mla.lbx 2021/06/08 | 87273 | systems/win32/miktex/tm/packages/colorist__doc.tar.lzma 2021/06/08 | 86830 | systems/win32/miktex/tm/packages/hvfloat__source.tar.lzma 2021/06/08 | 86092 | systems/win32/miktex/tm/packages/minimalist__doc.tar.lzma +2021/06/08 | 8428 | macros/latex/contrib/biblatex-contrib/biblatex-mla/spanish-mla.lbx +2021/06/08 | 842625 | systems/win32/w32tex/ChangeLog 2021/06/08 | 83944 | systems/texlive/tlnet/archive/pythontex.source.r59514.tar.xz -2021/06/08 | 83761 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma 2021/06/08 | 835302 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf 2021/06/08 | 83288 | systems/texlive/tlnet/archive/luatexja.source.r59518.tar.xz 2021/06/08 | 832329 | macros/latex/contrib/csvsimple/csvsimple.pdf 2021/06/08 | 8316 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx -2021/06/08 | 816251 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/06/08 | 80965 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma 2021/06/08 | 8058 | macros/plain/contrib/xintsession.zip +2021/06/08 | 803 | macros/latex/contrib/biblatex-contrib/biblatex-mla/american-mla.lbx +2021/06/08 | 80379 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.bib 2021/06/08 | 7975 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty 2021/06/08 | 793817 | systems/win32/miktex/tm/packages/pmdb__doc.tar.lzma 2021/06/08 | 793466 | macros/latex/contrib/csvsimple.zip 2021/06/08 | 792902 | install/macros/latex/contrib/csvsimple.tds.zip -2021/06/08 | 78749 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma 2021/06/08 | 78715 | systems/win32/miktex/tm/packages/bangla__doc.tar.lzma -2021/06/08 | 77939 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/06/08 | 7717 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/06/08 | 76879 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma 2021/06/08 | 7673684 | systems/texlive/tlnet/archive/hvfloat.doc.r59506.tar.xz +2021/06/08 | 764 | macros/luatex/generic/minim/minim-hooks.lua 2021/06/08 | 76213 | macros/latex/contrib/csvsimple/csvsimple.tex 2021/06/08 | 76028 | systems/win32/miktex/tm/packages/pythontex.tar.lzma -2021/06/08 | 75964 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma 2021/06/08 | 75627 | macros/latex/contrib/csvsimple/csvsimple-example.pdf 2021/06/08 | 752631 | systems/win32/miktex/tm/packages/bangla.tar.lzma -2021/06/08 | 748785 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/06/08 | 74206 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma 2021/06/08 | 7316466 | systems/win32/miktex/tm/packages/hvfloat__doc.tar.lzma -2021/06/08 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/06/08 | 72924 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/06/08 | 72178 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/06/08 | 727 | macros/luatex/generic/minim-mp/README +2021/06/08 | 7248 | graphics/minim-hatching/minim-hatching.mp 2021/06/08 | 718 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx -2021/06/08 | 71707 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma 2021/06/08 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx 2021/06/08 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx 2021/06/08 | 713 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx 2021/06/08 | 713 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx 2021/06/08 | 713 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx 2021/06/08 | 710 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx +2021/06/08 | 7067 | macros/latex/contrib/biblatex-contrib/biblatex-mla/portuguese-mla.lbx 2021/06/08 | 705 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx -2021/06/08 | 70487 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma 2021/06/08 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx 2021/06/08 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx 2021/06/08 | 702 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx @@ -73,322 +350,191 @@ 2021/06/08 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx 2021/06/08 | 699 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx 2021/06/08 | 698 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx -2021/06/08 | 69898 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma 2021/06/08 | 697 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx 2021/06/08 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx 2021/06/08 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx 2021/06/08 | 695 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx 2021/06/08 | 692 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx +2021/06/08 | 6929 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/06/08 | 691 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx 2021/06/08 | 6911 | systems/win32/miktex/tm/packages/minimalist__source.tar.lzma 2021/06/08 | 688 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx +2021/06/08 | 68832972 | systems/win32/w32tex/luatexja.tar.xz 2021/06/08 | 6881 | systems/win32/miktex/tm/packages/minimalist.tar.lzma +2021/06/08 | 687 | macros/luatex/generic/minim-math/README 2021/06/08 | 684 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx -2021/06/08 | 6812820 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/06/08 | 680954 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/06/08 | 67973 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/06/08 | 67886 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma 2021/06/08 | 677 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx -2021/06/08 | 67610 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma 2021/06/08 | 6743 | systems/win32/miktex/tm/packages/colorist__source.tar.lzma -2021/06/08 | 67371 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/06/08 | 67262 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma 2021/06/08 | 6708 | systems/texlive/tlnet/archive/minimalist.r59513.tar.xz 2021/06/08 | 66988 | systems/texlive/tlnet/archive/pythontex.r59514.tar.xz 2021/06/08 | 6671 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx -2021/06/08 | 65468 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/06/08 | 64402 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/06/08 | 6488 | macros/luatex/generic/minim/minim-alloc.tex 2021/06/08 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx 2021/06/08 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx 2021/06/08 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx 2021/06/08 | 640 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx -2021/06/08 | 64033 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma 2021/06/08 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx 2021/06/08 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx 2021/06/08 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx 2021/06/08 | 637 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx -2021/06/08 | 63751 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/06/08 | 629825 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma 2021/06/08 | 628 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx -2021/06/08 | 62714 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/06/08 | 62889 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.tex 2021/06/08 | 622 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx -2021/06/08 | 62228 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/06/08 | 621333 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma 2021/06/08 | 619 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx 2021/06/08 | 6171 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx 2021/06/08 | 6137 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx 2021/06/08 | 6130 | macros/latex/contrib/biblatex-contrib/biblatex-ext/README.md 2021/06/08 | 60948 | systems/texlive/tlnet/archive/siunitx.r59516.tar.xz 2021/06/08 | 6074 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty -2021/06/08 | 60619 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma 2021/06/08 | 60462 | systems/win32/miktex/tm/packages/siunitx.tar.lzma -2021/06/08 | 59699 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/06/08 | 596060 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/06/08 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/06/08 | 586329 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/06/08 | 58 | systems/mac/mactex/MacTeXtras-20210608.zip.md5 +2021/06/08 | 5847 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.tex 2021/06/08 | 5833 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx -2021/06/08 | 582557 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/06/08 | 582460 | systems/win32/miktex/tm/packages/files.csv.lzma 2021/06/08 | 5773 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx -2021/06/08 | 57635 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma 2021/06/08 | 5733 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx -2021/06/08 | 57112 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/06/08 | 56811 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/06/08 | 56752 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/06/08 | 565936 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/06/08 | 56473 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/06/08 | 56338 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/06/08 | 56311 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/06/08 | 56289 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/06/08 | 5732 | macros/luatex/generic/minim/minim-alloc.lua 2021/06/08 | 5586 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty -2021/06/08 | 55524 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma 2021/06/08 | 5533 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx 2021/06/08 | 5504 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx 2021/06/08 | 5456 | macros/latex/contrib/keyfloat/images/image.pdf 2021/06/08 | 5336 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx 2021/06/08 | 5324 | systems/texlive/tlnet/archive/ran_toks.r59515.tar.xz -2021/06/08 | 532270 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/06/08 | 52543 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma 2021/06/08 | 524452 | systems/texlive/tlnet/archive/ran_toks.doc.r59515.tar.xz -2021/06/08 | 52440 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/06/08 | 51742 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/06/08 | 51457 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma 2021/06/08 | 5129 | macros/latex/contrib/csvsimple/CHANGES -2021/06/08 | 51290 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/06/08 | 512667 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/06/08 | 51118 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/06/08 | 51088 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/06/08 | 507 | graphics/minim-hatching/README 2021/06/08 | 5078 | systems/win32/miktex/tm/packages/pxjahyper__source.tar.lzma -2021/06/08 | 50032 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/06/08 | 50080024 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/06/08 | 4995 | systems/win32/miktex/tm/packages/mathcommand.tar.lzma +2021/06/08 | 4920 | macros/luatex/generic/minim-pdf/minim-languagecodes.lua 2021/06/08 | 4915 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx -2021/06/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 -2021/06/08 | 482837 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/06/08 | 48237 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/06/08 | 476901 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma 2021/06/08 | 4757 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx 2021/06/08 | 4748 | systems/texlive/tlnet/archive/mathcommand.r59512.tar.xz +2021/06/08 | 4748 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.bbx 2021/06/08 | 4700 | macros/latex/contrib/keyfloat/images/image2.pdf 2021/06/08 | 4697 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx -2021/06/08 | 46723 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/06/08 | 4667076 | systems/win32/w32tex/dvipdfm-w32.tar.xz 2021/06/08 | 465328 | support/latexmk.zip -2021/06/08 | 46494 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/06/08 | 461826 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma 2021/06/08 | 4614565 | systems/win32/miktex/tm/packages/musixtex-fonts.tar.lzma 2021/06/08 | 4600340 | systems/texlive/tlnet/archive/musixtex-fonts.r59507.tar.xz -2021/06/08 | 45939 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma 2021/06/08 | 4576 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx -2021/06/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/06/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2021/06/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/06/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/06/08 | 4551656 | systems/win32/w32tex/dvipsk-w32.tar.xz 2021/06/08 | 454435 | systems/win32/miktex/tm/packages/mathcommand__doc.tar.lzma -2021/06/08 | 45318 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma 2021/06/08 | 452340 | systems/texlive/tlnet/archive/mathcommand.doc.r59512.tar.xz 2021/06/08 | 448314 | systems/win32/miktex/tm/packages/hyperref__source.tar.lzma 2021/06/08 | 446776 | systems/texlive/tlnet/archive/hyperref.source.r59511.tar.xz -2021/06/08 | 44611 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/06/08 | 43358 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/06/08 | 439780 | systems/win32/w32tex/mftools.tar.xz 2021/06/08 | 43200 | systems/win32/miktex/tm/packages/suftesi__source.tar.lzma -2021/06/08 | 43059 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/06/08 | 42981 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/06/08 | 42886 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/06/08 | 42729 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/06/08 | 42375 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/06/08 | 41187 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/06/08 | 42557 | macros/luatex/generic/minim-mp/minim-mp.lua +2021/06/08 | 422433940 | systems/mac/mactex/MacTeXtras-20210608.zip +2021/06/08 | 42233 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx 2021/06/08 | 4111 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx 2021/06/08 | 4053 | systems/win32/miktex/tm/packages/pmdb.tar.lzma 2021/06/08 | 4035 | macros/plain/contrib/xintsession/README.md -2021/06/08 | 40342 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma 2021/06/08 | 3985 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx -2021/06/08 | 397692 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59504.tar.xz -2021/06/08 | 392697 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/06/08 | 39019 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma 2021/06/08 | 38623 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx -2021/06/08 | 38169 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/06/08 | 38309 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla7.bbx 2021/06/08 | 3811 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx +2021/06/08 | 38111 | systems/mac/mactex/ExtrasFolder.pdf 2021/06/08 | 3795 | macros/latex/contrib/csvsimple/csvsimple-example.tex -2021/06/08 | 37865 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/06/08 | 37363 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/06/08 | 37229 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma 2021/06/08 | 36919 | support/latexmk/CHANGES -2021/06/08 | 36605 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma 2021/06/08 | 3632 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty -2021/06/08 | 35699 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/06/08 | 356840 | macros/latex/contrib/easybook.zip 2021/06/08 | 3548 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx -2021/06/08 | 35071 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/06/08 | 34651 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/06/08 | 345325 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/06/08 | 33623 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/06/08 | 33601 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/06/08 | 330437 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/06/08 | 339808 | macros/luatex/generic/minim-math/minim-math-table.lua 2021/06/08 | 3288268 | systems/texlive/tlnet/archive/hyperref.doc.r59511.tar.xz 2021/06/08 | 3285638 | systems/win32/miktex/tm/packages/hyperref__doc.tar.lzma -2021/06/08 | 32597 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma 2021/06/08 | 3249 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx -2021/06/08 | 324274 | macros/latex/contrib/easybook/easybook.pdf -2021/06/08 | 321643 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma 2021/06/08 | 3203076 | systems/texlive/tlnet/archive/luatexja.doc.r59518.tar.xz -2021/06/08 | 31570 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/06/08 | 31547 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/06/08 | 314913 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma -2021/06/08 | 31478 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma -2021/06/08 | 313844 | systems/texlive/tlnet/archive/easybook.doc.r59510.tar.xz -2021/06/08 | 31328 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/06/08 | 31207 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/06/08 | 311355 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/06/08 | 31104 | systems/texlive/tlnet/archive/easybook.source.r59510.tar.xz 2021/06/08 | 3103 | systems/win32/miktex/tm/packages/bjfuthesis.tar.lzma -2021/06/08 | 30808 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma 2021/06/08 | 3067480 | systems/win32/miktex/tm/packages/luatexja__doc.tar.lzma -2021/06/08 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/06/08 | 30295 | macros/luatex/generic/minim/minim-plain.tex 2021/06/08 | 2995 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-common.cbx -2021/06/08 | 29835 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/06/08 | 295145 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/06/08 | 298 | graphics/pictex/README.txt 2021/06/08 | 2942 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx -2021/06/08 | 29046 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma 2021/06/08 | 288 | macros/latex/contrib/csvsimple/gradesort.xml 2021/06/08 | 2844 | systems/texlive/tlnet/archive/bjfuthesis.r59505.tar.xz -2021/06/08 | 284040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/06/08 | 28285 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma 2021/06/08 | 2821 | systems/win32/miktex/tm/packages/bangla__source.tar.lzma -2021/06/08 | 281964 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/06/08 | 28162 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma 2021/06/08 | 2810 | systems/win32/miktex/tm/packages/bjfuthesis__source.tar.lzma -2021/06/08 | 2793679 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/06/08 | 27710 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/06/08 | 27265 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/06/08 | 27260 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/06/08 | 27185 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/06/08 | 2670400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/06/08 | 261911 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma 2021/06/08 | 259 | macros/latex/contrib/csvsimple/transform.xml -2021/06/08 | 258838 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/06/08 | 25584659 | systems/texlive/tlnet/install-tl.zip -2021/06/08 | 25265 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/06/08 | 2571 | macros/luatex/generic/minim/minim.doc +2021/06/08 | 2541 | macros/luatex/generic/minim-mp/minim.mp 2021/06/08 | 2511 | macros/latex/contrib/csvsimple/README 2021/06/08 | 25077 | macros/latex/contrib/csvsimple/csvsimple.sty -2021/06/08 | 250395 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/06/08 | 25004 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/06/08 | 24987 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/06/08 | 243392 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma 2021/06/08 | 2420468 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma 2021/06/08 | 2417064 | systems/texlive/tlnet/archive/siunitx.doc.r59516.tar.xz -2021/06/08 | 239580 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma 2021/06/08 | 238 | macros/latex/contrib/csvsimple/csvsimple-example.csv -2021/06/08 | 23883 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/06/08 | 23369 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/06/08 | 2311324 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/06/08 | 23556216 | systems/win32/w32tex/cjkzr.tar.xz 2021/06/08 | 229 | macros/latex/contrib/csvsimple/namesort.xml 2021/06/08 | 227 | macros/latex/contrib/csvsimple/amountsort.xml -2021/06/08 | 22023 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/06/08 | 22327960 | systems/win32/w32tex/pdftex-w32.tar.xz 2021/06/08 | 217931 | systems/win32/miktex/tm/packages/luatexja__source.tar.lzma -2021/06/08 | 216900 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/06/08 | 216819 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma 2021/06/08 | 215495 | support/latexmk/latexmk.txt -2021/06/08 | 215197 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/06/08 | 21177 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/06/08 | 2151 | macros/latex/contrib/biblatex-contrib/biblatex-mla/README +2021/06/08 | 213 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-new.bbx +2021/06/08 | 209 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-new.cbx 2021/06/08 | 2086 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx -2021/06/08 | 20807246 | systems/texlive/tlnet/install-tl-windows.exe -2021/06/08 | 207851 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/06/08 | 206345 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/06/08 | 202702 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/06/08 | 20124 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/06/08 | 2005873 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/06/08 | 199636 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/06/08 | 198227 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/06/08 | 197089 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/06/08 | 20271 | macros/luatex/generic/minim-pdf/minim-pdf.doc 2021/06/08 | 1968 | macros/latex/contrib/easybook/README.md 2021/06/08 | 196426 | support/latexmk/latexmk.pdf 2021/06/08 | 1960 | systems/win32/miktex/tm/packages/tiscreen__source.tar.lzma -2021/06/08 | 195754 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/06/08 | 194076 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma 2021/06/08 | 190152 | systems/texlive/tlnet/archive/luatexja.r59518.tar.xz 2021/06/08 | 189831 | systems/win32/miktex/tm/packages/luatexja.tar.lzma 2021/06/08 | 1848 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx +2021/06/08 | 1848 | graphics/pictex/postpictex.tex 2021/06/08 | 18450 | support/latexmk/INSTALL 2021/06/08 | 18318 | macros/plain/contrib/xintsession/xintsession.tex -2021/06/08 | 18168 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/06/08 | 180187 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/06/08 | 180081 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/06/08 | 17983 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/06/08 | 1818 | macros/luatex/generic/minim/minim-hooks.tex 2021/06/08 | 176 | macros/latex/contrib/csvsimple/matriculationsort.xml -2021/06/08 | 17271526 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/06/08 | 1751 | macros/luatex/generic/minim-mp/minim-mp.tex +2021/06/08 | 1711 | systems/mac/mactex/Licenses.txt 2021/06/08 | 17097 | systems/win32/miktex/tm/packages/pxjahyper.tar.lzma -2021/06/08 | 1708076 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma 2021/06/08 | 17008 | systems/win32/miktex/tm/packages/pmdb__source.tar.lzma -2021/06/08 | 169103 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/06/08 | 16842 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.cbx 2021/06/08 | 16840 | systems/texlive/tlnet/archive/pxjahyper.r59508.tar.xz +2021/06/08 | 167698 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/biblatex-mla.pdf 2021/06/08 | 166 | macros/latex/contrib/csvsimple/catsort.xml 2021/06/08 | 1644 | macros/latex/contrib/keyfloat/keyfloat.ins -2021/06/08 | 16446 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/06/08 | 163765 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/06/08 | 16342 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma 2021/06/08 | 159712 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex -2021/06/08 | 159548 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/06/08 | 15795 | macros/latex/contrib/biblatex-contrib/biblatex-mla/CHANGES 2021/06/08 | 1553140 | systems/texlive/tlnet/archive/pythontex.doc.r59514.tar.xz -2021/06/08 | 154623 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/06/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/06/08 | 15409 | macros/luatex/generic/minim-math/minim-math.tex 2021/06/08 | 1531443 | systems/win32/miktex/tm/packages/pythontex__doc.tar.lzma -2021/06/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/06/08 | 152163 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma 2021/06/08 | 15162 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty 2021/06/08 | 1499 | macros/latex/contrib/easybook/easybook.ins 2021/06/08 | 14983 | systems/win32/miktex/tm/packages/suftesi.tar.lzma -2021/06/08 | 147712 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/06/08 | 147408 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/06/08 | 14659 | systems/win32/miktex/tm/packages/easybook.tar.lzma -2021/06/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/06/08 | 14765 | macros/luatex/generic/minim/minim-etex.tex +2021/06/08 | 14560 | macros/luatex/generic/minim-math/minim-math.lua 2021/06/08 | 145571 | macros/latex/contrib/keyfloat/keyfloat.dtx -2021/06/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/06/08 | 14384 | systems/texlive/tlnet/archive/easybook.r59510.tar.xz -2021/06/08 | 14347 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma -2021/06/08 | 1429094 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/06/08 | 1423058 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/06/08 | 14518 | macros/luatex/generic/minim-mp/minim-mp.doc 2021/06/08 | 1402 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note-common.cbx 2021/06/08 | 1391 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx -2021/06/08 | 136506 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/06/08 | 1368 | graphics/pictex/prepictex.tex 2021/06/08 | 135 | macros/latex/contrib/csvsimple/encoding.xml 2021/06/08 | 135172 | systems/texlive/tlnet/archive/tiscreen.doc.r59517.tar.xz -2021/06/08 | 134793 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/06/08 | 13448 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma 2021/06/08 | 134402 | systems/win32/miktex/tm/packages/tiscreen__doc.tar.lzma 2021/06/08 | 1339 | systems/win32/miktex/tm/packages/tiscreen.tar.lzma 2021/06/08 | 133400 | systems/texlive/tlnet/archive/pxjahyper.doc.r59508.tar.xz -2021/06/08 | 131580 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma 2021/06/08 | 13146 | support/latexmk/README -2021/06/08 | 131018 | macros/latex/contrib/easybook/easybook.dtx -2021/06/08 | 1308115 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/06/08 | 131174548 | systems/win32/w32tex/web2c-lib.tar.xz 2021/06/08 | 130322 | systems/win32/miktex/tm/packages/pxjahyper__doc.tar.lzma -2021/06/08 | 1300399 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/06/08 | 1294235 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/06/08 | 1289154 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/06/08 | 1288428 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/06/08 | 12947 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-footnotes.cbx 2021/06/08 | 1285 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-examples.bib 2021/06/08 | 12757 | systems/win32/miktex/tm/packages/mathcommand__source.tar.lzma 2021/06/08 | 12474 | macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md -2021/06/08 | 124615 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma 2021/06/08 | 12352 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def 2021/06/08 | 12204 | systems/texlive/tlnet/archive/ran_toks.source.r59515.tar.xz 2021/06/08 | 12189 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx 2021/06/08 | 12088 | systems/texlive/tlnet/archive/mathcommand.source.r59512.tar.xz -2021/06/08 | 1202422 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/06/08 | 1201291 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/06/08 | 117477 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/06/08 | 1196 | macros/luatex/generic/minim/minim-lmodern.tex 2021/06/08 | 11724 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx -2021/06/08 | 1170758 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/06/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini -2021/06/08 | 115120 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/06/08 | 1171 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla.dbx +2021/06/08 | 11663 | macros/luatex/generic/minim-math/minim-math.doc +2021/06/08 | 1165 | macros/luatex/generic/minim/README +2021/06/08 | 116506 | macros/latex/contrib/biblatex-contrib/biblatex-mla/doc/examples.pdf 2021/06/08 | 1144 | macros/latex/contrib/keyfloat/README.txt 2021/06/08 | 1136 | systems/texlive/tlnet/archive/tiscreen.r59517.tar.xz -2021/06/08 | 112814 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/06/08 | 112166 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/06/08 | 108936 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/06/08 | 110 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.cbx +2021/06/08 | 108 | macros/latex/contrib/biblatex-contrib/biblatex-mla/mla7.cbx 2021/06/08 | 10823 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty -2021/06/08 | 107984 | systems/texlive/tlnet/archive/texlive-scripts.r59504.tar.xz -2021/06/08 | 1076119 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/06/08 | 106861 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma 2021/06/08 | 10650 | systems/win32/miktex/tm/packages/hvfloat.tar.lzma 2021/06/08 | 105712 | systems/win32/miktex/tm/packages/musixtex-fonts__doc.tar.lzma 2021/06/08 | 105336 | systems/texlive/tlnet/archive/musixtex-fonts.doc.r59507.tar.xz @@ -397,14 +543,9 @@ 2021/06/08 | 104720 | systems/texlive/tlnet/archive/siunitx.source.r59516.tar.xz 2021/06/08 | 1046598 | systems/win32/miktex/tm/packages/suftesi__doc.tar.lzma 2021/06/08 | 1041110 | macros/latex/contrib/keyfloat.zip -2021/06/08 | 103517 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/06/08 | 103437 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma 2021/06/08 | 1012669 | macros/latex/contrib/keyfloat/keyfloat.pdf -2021/06/08 | 100459 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma 2021/06/07 | 979067 | macros/latex/contrib/pythontex/pythontex.pdf -2021/06/07 | 97866 | macros/latex/contrib/siunitx/siunitx-unit.dtx 2021/06/07 | 9765 | macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty -2021/06/07 | 964 | macros/latex/contrib/siunitx/README.md 2021/06/07 | 9604 | language/bengali/bangla/bangla.sty 2021/06/07 | 9590 | macros/latex/contrib/pythontex/pythontex_gallery.tex 2021/06/07 | 945 | macros/luatex/generic/luatexja/tool/table_ivd_aj1.lua @@ -425,14 +566,11 @@ 2021/06/07 | 8885 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/3c440f3cff05d0291f688bf303c6469cbe4965db6b3ba1e3cbe7d1a1d88a765a-filelists.sqlite.bz2 2021/06/07 | 885 | macros/luatex/generic/luatexja/src/patches/lltjp-stfloats.sty 2021/06/07 | 88226 | language/bengali/bangla/bangla.pdf -2021/06/07 | 8774 | macros/latex/contrib/siunitx/siunitx-symbol.dtx -2021/06/07 | 8762 | macros/latex/contrib/siunitx/siunitx-command.dtx 2021/06/07 | 86 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Release 2021/06/07 | 8609 | macros/luatex/generic/luatexja/src/ltj-otf.lua 2021/06/07 | 8607 | macros/luatex/generic/luatexja/src/ltjltxdoc.dtx 2021/06/07 | 855 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/e4e82632dc4c35958c54467386c340338b0221df0161872097090c1004ba9952-other.xml.gz 2021/06/07 | 855 | systems/win32/miktex/setup/rpm/fedora/28/repodata/dbcd1af56fe7435f92be1684afe4b115d7327a60cfb650dc5599ba793743e614-other.xml.gz -2021/06/07 | 842205 | systems/win32/w32tex/ChangeLog 2021/06/07 | 8310 | systems/win32/miktex/setup/rpm/fedora/34/repodata/51571be2a4174b39de4861e8f1754cb4f1532efeee8d75dddd80ba5a1bfa3119-filelists.sqlite.bz2 2021/06/07 | 827 | macros/latex/contrib/pmdb/examples/tst-items.tex 2021/06/07 | 825 | macros/luatex/generic/luatexja/src/patches/lltjp-collcell.sty @@ -460,19 +598,16 @@ 2021/06/07 | 692 | systems/texlive/tlnet/archive/ptex.r59502.tar.xz 2021/06/07 | 6918 | language/bengali/bangla/bangla.tex 2021/06/07 | 6891 | macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty -2021/06/07 | 6816 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/06/07 | 6677 | macros/latex/contrib/bjfuthesis/bjfuthesis.cls 2021/06/07 | 6497 | macros/luatex/generic/luatexja/src/patches/lltjdefs.sty 2021/06/07 | 64097 | macros/latex/contrib/pythontex/pythontex_engines.py 2021/06/07 | 635 | macros/latex/contrib/tiscreen/README -2021/06/07 | 634770 | macros/latex/contrib/siunitx/siunitx.pdf 2021/06/07 | 62143 | systems/win32/miktex/setup/rpm/fedora/28/repodata/224c9aeb5874f6580adb0cffcdcfa677ba31959cba8b28042436b850d92d1716-filelists.sqlite.bz2 2021/06/07 | 6205 | systems/win32/miktex/setup/rpm/fedora/34/repodata/ec560b75589d6ec37e7aa3184ce24a6cf5dd7081ae7c925144a4318ee7109b81-filelists.xml.gz 2021/06/07 | 6203 | macros/luatex/generic/luatexja/src/ltj-base.sty 2021/06/07 | 617 | macros/luatex/generic/luatexja/src/patches/lltjp-array.sty 2021/06/07 | 61137802 | systems/win32/miktex/setup/darwin-x86_64/miktex-21.6-darwin-x86_64.dmg 2021/06/07 | 6060 | macros/luatex/generic/luatexja/tool/kyoikukanjiChars.tex -2021/06/07 | 60424 | macros/latex/contrib/hvfloat/latex/hvfloat.sty 2021/06/07 | 5940 | macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua 2021/06/07 | 5850 | macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty 2021/06/07 | 580 | macros/luatex/generic/luatexja/tool/blocks2defcharrange.rb @@ -504,13 +639,10 @@ 2021/06/07 | 488 | systems/win32/miktex/setup/rpm/fedora/33/repodata/repomd.xml.asc 2021/06/07 | 488 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml.asc 2021/06/07 | 4871 | macros/luatex/generic/luatexja/src/ltj-stack.lua -2021/06/07 | 48536 | macros/latex/contrib/siunitx/siunitx-table.dtx 2021/06/07 | 484244 | systems/texlive/tlnet/archive/beaulivre.doc.r59496.tar.xz 2021/06/07 | 48217 | macros/luatex/generic/luatexja/src/ltj-jfont.lua 2021/06/07 | 4808 | macros/luatex/generic/luatexja/src/jfm-tmin.lua 2021/06/07 | 477535 | macros/latex/contrib/hyperref/doc/hyperref-doc.html -2021/06/07 | 475888 | macros/latex/contrib/siunitx/siunitx-table.pdf -2021/06/07 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg 2021/06/07 | 474471 | systems/win32/miktex/tm/packages/beaulivre__doc.tar.lzma 2021/06/07 | 473 | systems/win32/miktex/setup/deb/dists/xenial/Release.gpg 2021/06/07 | 473 | systems/win32/miktex/setup/deb/dists/stretch/Release.gpg @@ -520,7 +652,6 @@ 2021/06/07 | 4729 | systems/win32/miktex/setup/rpm/fedora/28/repodata/d13712e374a7b5738acb7032611f9ad75a97658007fc969ff793e7d23359d11e-primary.xml.gz 2021/06/07 | 4701 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/0ce10d329dec85a8cf717ba76dc52ea45e1f1f364ff30178628d7e73b9fdad06-primary.xml.gz 2021/06/07 | 463525 | macros/latex/contrib/mathcommand.zip -2021/06/07 | 4629 | macros/latex/contrib/siunitx/siunitx-locale.dtx 2021/06/07 | 457434 | macros/luatex/generic/luatexja/doc/ltjsclasses.pdf 2021/06/07 | 4559 | macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty 2021/06/07 | 452046 | macros/latex/contrib/mathcommand/mathcommand.pdf @@ -537,7 +668,6 @@ 2021/06/07 | 427489 | systems/win32/miktex/tm/packages/simplivre__doc.tar.lzma 2021/06/07 | 4262 | macros/luatex/generic/luatexja/tool/kyoikukanji.txt 2021/06/07 | 4196 | macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty -2021/06/07 | 41826 | macros/latex/contrib/siunitx/CHANGELOG.md 2021/06/07 | 4094596 | install/macros/latex/contrib/hyperref.tds.zip 2021/06/07 | 405 | macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty 2021/06/07 | 402 | systems/win32/miktex/setup/rpm/fedora/33/repodata/3500f67d5adf4e308bce0a1a2854dd56f162bbd10a0f7986bf938b293d68b13b-other.xml.gz @@ -555,7 +685,6 @@ 2021/06/07 | 3748 | macros/luatex/generic/luatexja/src/ltj-compat.lua 2021/06/07 | 373207 | macros/latex/contrib/pythontex/pythontex_gallery.pdf 2021/06/07 | 3693 | macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty -2021/06/07 | 3687 | macros/latex/contrib/siunitx/siunitx.ins 2021/06/07 | 3677 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/c23aad5215ba4666e86aa4b9b3d23492274e1f6525d9719ef3b6dd6650573cda-filelists.xml.gz 2021/06/07 | 366532 | systems/texlive/tlnet/archive/einfart.doc.r59497.tar.xz 2021/06/07 | 357628 | systems/win32/miktex/tm/packages/einfart__doc.tar.lzma @@ -575,7 +704,6 @@ 2021/06/07 | 3368 | systems/texlive/tlnet/archive/einfart.r59497.tar.xz 2021/06/07 | 33461 | macros/luatex/generic/luatexja/src/addons/luatexja-ajmacros.sty 2021/06/07 | 3344 | systems/texlive/tlnet/archive/simplivre.r59499.tar.xz -2021/06/07 | 33332 | macros/latex/contrib/siunitx/siunitx-compound.dtx 2021/06/07 | 3313 | macros/luatex/generic/luatexja/tool/ltj-unicode-ccfix_make2.pl 2021/06/07 | 3308 | systems/texlive/tlnet/archive/beaulivre.r59496.tar.xz 2021/06/07 | 3304 | systems/texlive/tlnet/archive/lebhart.r59498.tar.xz @@ -586,16 +714,13 @@ 2021/06/07 | 32099 | macros/luatex/generic/luatexja/src/ltj-ruby.lua 2021/06/07 | 317 | macros/luatex/generic/luatexja/tool/otf-AdobeSongStd-Light.txt 2021/06/07 | 31742026 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_21.6-focal1_amd64.deb -2021/06/07 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg 2021/06/07 | 31501598 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_21.6-stretch1_amd64.deb 2021/06/07 | 314592 | language/bengali/bangla/kalpurush.ttf 2021/06/07 | 31325388 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_21.6-buster1_amd64.deb 2021/06/07 | 3100 | macros/luatex/generic/luatexja/tool/table_jisx0208.tex -2021/06/07 | 30792 | macros/latex/contrib/siunitx/siunitx-print.dtx 2021/06/07 | 30761292 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_21.6-xenial1_amd64.deb 2021/06/07 | 3020 | macros/latex/contrib/pythontex/pythontex.py 2021/06/07 | 298448 | macros/latex/contrib/hyperref/doc/hyperref-doc.pdf -2021/06/07 | 29816 | macros/latex/contrib/siunitx/siunitx-emulation.dtx 2021/06/07 | 2980 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml 2021/06/07 | 2978 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/repomd.xml 2021/06/07 | 2975 | systems/win32/miktex/setup/rpm/fedora/33/repodata/repomd.xml @@ -604,30 +729,23 @@ 2021/06/07 | 29479 | systems/win32/miktex/tm/packages/mcf2graph__source.tar.lzma 2021/06/07 | 29181 | macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty 2021/06/07 | 28 | macros/latex/contrib/pythontex/depythontex.bat -2021/06/07 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx 2021/06/07 | 28733 | macros/latex/contrib/minimalist/minimalist.sty 2021/06/07 | 2858 | macros/latex/contrib/pythontex/pythontex_2to3.py 2021/06/07 | 279968 | macros/latex/contrib/pmdb/docs/pmdb.pdf 2021/06/07 | 27839772 | systems/win32/miktex/source/miktex-21.6.tar.xz 2021/06/07 | 27504 | macros/latex/contrib/pmdb/docs/pmdb-man.tex -2021/06/07 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty -2021/06/07 | 2713986 | install/macros/latex/contrib/siunitx.tds.zip 2021/06/07 | 26 | macros/latex/contrib/pythontex/pythontex.bat 2021/06/07 | 26934 | macros/luatex/generic/luatexja/src/lltjext.sty -2021/06/07 | 2676085 | macros/latex/contrib/siunitx.zip 2021/06/07 | 2613 | macros/latex/contrib/pythontex/README 2021/06/07 | 2601 | macros/luatex/generic/luatexja/src/jfm-banjiao.lua 2021/06/07 | 259520 | language/bengali/bangla/vrinda.ttf 2021/06/07 | 2586 | macros/luatex/generic/luatexja/src/jfm-kaiming.lua 2021/06/07 | 2575 | macros/luatex/generic/luatexja/src/jfm-quanjiao.lua -2021/06/07 | 25717 | macros/latex/contrib/siunitx/siunitx-complex.dtx 2021/06/07 | 25332 | macros/latex/contrib/pmdb/pmdb.dtx -2021/06/07 | 2511 | macros/latex/contrib/hvfloat/Changes 2021/06/07 | 249532 | language/bengali/bangla/solaimanlipi.ttf 2021/06/07 | 249153 | macros/latex/contrib/pmdb/docs/pmdb-man.pdf 2021/06/07 | 24570280 | systems/win32/miktex/setup/rpm/fedora/28/miktex-21.6-1.fc28.x86_64.rpm 2021/06/07 | 2435 | systems/win32/miktex/setup/rpm/fedora/33/repodata/642bfd476fddfae1a5791dbb0fbc21e1c079d7f073ea40e29a34c4dafbdc32ad-primary.xml.gz -2021/06/07 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex 2021/06/07 | 2426770 | macros/latex/contrib/hyperref/doc/hyperref.pdf 2021/06/07 | 23905 | systems/win32/miktex/tm/packages/ran_toks__source.tar.lzma 2021/06/07 | 23791 | systems/win32/miktex/tm/packages/mcf2graph.tar.lzma @@ -664,7 +782,6 @@ 2021/06/07 | 1958 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.bz2 2021/06/07 | 19572 | macros/luatex/generic/luatexja/src/ltj-adjust.lua 2021/06/07 | 1954 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Packages.bz2 -2021/06/07 | 19542 | macros/latex/contrib/siunitx/siunitx.dtx 2021/06/07 | 192 | macros/luatex/generic/luatexja/src/jfm-mono.lua 2021/06/07 | 1907 | systems/win32/miktex/setup/deb/dists/xenial/universe/binary-amd64/Packages.bz2 2021/06/07 | 189 | macros/luatex/generic/luatexja/src/patches/lltjp-preview.sty @@ -682,10 +799,8 @@ 2021/06/07 | 1765 | macros/luatex/generic/luatexja/src/ltj-inputbuf.lua 2021/06/07 | 1754 | systems/win32/miktex/setup/rpm/fedora/28/repodata/fb62f775e0bbced476b40a8ba80a29e4820c3242dd06f064d0a68a7830c01fc9-other.sqlite.bz2 2021/06/07 | 1750 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Packages.gz -2021/06/07 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg 2021/06/07 | 166557 | macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf 2021/06/07 | 1654 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.gz -2021/06/07 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx 2021/06/07 | 1644 | systems/win32/miktex/setup/deb/dists/stretch/universe/binary-amd64/Packages.gz 2021/06/07 | 1637 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty 2021/06/07 | 1635 | macros/latex/contrib/bjfuthesis/README.md @@ -712,16 +827,12 @@ 2021/06/07 | 1509 | macros/latex/contrib/mathcommand/makefile 2021/06/07 | 1507 | systems/win32/miktex/setup/deb/dists/focal/Release 2021/06/07 | 14873 | systems/win32/miktex/setup/rpm/fedora/33/repodata/c9a274790ecc1370eec24d735d6b6533c9036a5fa998012ba4fc8c16116175d3-filelists.sqlite.bz2 -2021/06/07 | 1485621 | macros/latex/contrib/siunitx/siunitx-code.pdf 2021/06/07 | 14709 | macros/luatex/generic/luatexja/src/patches/lltjp-listings.sty -2021/06/07 | 14625290 | macros/latex/contrib/hvfloat.zip 2021/06/07 | 145804 | macros/latex/contrib/bjfuthesis/example/contents/mission-statement.pdf -2021/06/07 | 145224 | macros/latex/contrib/siunitx/siunitx.tex 2021/06/07 | 14517 | macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua 2021/06/07 | 14515 | macros/latex/contrib/hyperref/doc/hyperref-doc.css 2021/06/07 | 144872836 | systems/win32/w32tex/context.tar.xz 2021/06/07 | 1443 | macros/latex/contrib/pmdb/examples/tst-qzdb.tex -2021/06/07 | 14351 | macros/latex/contrib/siunitx/siunitx-quantity.dtx 2021/06/07 | 142377 | macros/latex/contrib/pythontex/pythontex3.py 2021/06/07 | 142373 | macros/latex/contrib/pythontex/pythontex2.py 2021/06/07 | 1397 | macros/luatex/generic/luatexja/tool/ivslist.tex @@ -749,7 +860,6 @@ 2021/06/07 | 116367 | macros/latex/contrib/hvfloat/doc/hvfloat.tex 2021/06/07 | 11591 | systems/win32/miktex/tm/packages/beaulivre__source.tar.lzma 2021/06/07 | 11506 | macros/luatex/generic/luatexja/src/jfm-ujisv.lua -2021/06/07 | 114975 | macros/latex/contrib/siunitx/siunitx-number.dtx 2021/06/07 | 11335 | macros/luatex/generic/luatexja/tool/unicodeBlocks.tex 2021/06/07 | 1130 | macros/luatex/generic/luatexja/tool/function_uax50.lua 2021/06/07 | 11306 | systems/win32/miktex/tm/packages/einfart__source.tar.lzma @@ -770,7 +880,6 @@ 2021/06/07 | 10535233 | macros/latex/contrib/bjfuthesis.zip 2021/06/07 | 10516 | systems/win32/miktex/setup/rpm/fedora/33/repodata/19418e6de1b23ce51fb1efd752126fcd472c22c2e7ccbb9388758f94404680fe-filelists.xml.gz 2021/06/07 | 101118 | macros/latex/contrib/minimalist.zip -2021/06/07 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx 2021/06/07 | 1006 | macros/latex/contrib/hyperref/doc/hyperref-doc4.html 2021/06/07 | 1002 | language/bengali/bangla/README 2021/06/06 | 9960 | macros/unicodetex/latex/simplivre/simplivre.cls @@ -823,7 +932,6 @@ 2021/06/06 | 72145 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma 2021/06/06 | 71866 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma 2021/06/06 | 715601 | systems/win32/miktex/tm/packages/pgf.tar.lzma -2021/06/06 | 7113219 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf 2021/06/06 | 70431 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma 2021/06/06 | 7038 | systems/win32/miktex/tm/packages/pxbase__source.tar.lzma 2021/06/06 | 702887 | systems/win32/miktex/tm/packages/elhyphen__doc.tar.lzma @@ -910,7 +1018,6 @@ 2021/06/06 | 509727 | systems/win32/miktex/doc/miktex.pdf 2021/06/06 | 503548 | macros/unicodetex/latex/beaulivre.zip 2021/06/06 | 50151 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma -2021/06/06 | 50084804 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/06/06 | 499290 | systems/win32/miktex/tm/packages/hyph-utf8__doc.tar.lzma 2021/06/06 | 4977 | systems/win32/miktex/tm/packages/atbegshi.tar.lzma 2021/06/06 | 49641 | systems/win32/miktex/tm/packages/amsfonts__source.tar.lzma @@ -990,7 +1097,6 @@ 2021/06/06 | 3368 | systems/texlive/tlnet/archive/eq-pin2corr.r59477.tar.xz 2021/06/06 | 33607 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma 2021/06/06 | 33542 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma -2021/06/06 | 332332 | systems/texlive/tlnet/archive/dvipdfmx.win32.r59468.tar.xz 2021/06/06 | 3307 | language/japanese/pxjahyper/pxjahyper-enc.sty 2021/06/06 | 330463 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma 2021/06/06 | 32670 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma @@ -1067,7 +1173,6 @@ 2021/06/06 | 23852 | language/japanese/pxjahyper/pxjahyper-ajm.def 2021/06/06 | 238357 | macros/unicodetex/latex/einfart/einfart-doc-cn.pdf 2021/06/06 | 2360 | macros/latex/contrib/ran_toks/README.md -2021/06/06 | 23539312 | systems/win32/w32tex/cjkzr.tar.xz 2021/06/06 | 23524 | systems/win32/miktex/tm/packages/enctex.tar.lzma 2021/06/06 | 2341340 | systems/win32/miktex/tm/packages/amsmath__doc.tar.lzma 2021/06/06 | 2339942 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma @@ -1081,7 +1186,6 @@ 2021/06/06 | 22551 | macros/unicodetex/latex/beaulivre/beaulivre-doc-en.tex 2021/06/06 | 223763 | systems/win32/miktex/tm/packages/latex-firstaid-dev__doc.tar.lzma 2021/06/06 | 223582 | systems/win32/miktex/tm/packages/latex-firstaid__doc.tar.lzma -2021/06/06 | 22326492 | systems/win32/w32tex/pdftex-w32.tar.xz 2021/06/06 | 22323 | systems/win32/miktex/tm/packages/tabularray.tar.lzma 2021/06/06 | 22316 | systems/texlive/tlnet/archive/tabularray.r59482.tar.xz 2021/06/06 | 223000 | systems/texlive/tlnet/archive/latex-firstaid-dev.doc.r59474.tar.xz @@ -1387,15 +1491,12 @@ 2021/06/05 | 470 | macros/latex/contrib/bmstu-iu8/README.md 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 | 4667000 | systems/win32/w32tex/dvipdfm-w32.tar.xz 2021/06/05 | 462567 | macros/latex/contrib/nicematrix/nicematrix-french.pdf -2021/06/05 | 4552032 | systems/win32/w32tex/dvipsk-w32.tar.xz 2021/06/05 | 454808 | macros/latex-dev/base/ltnews29.pdf 2021/06/05 | 454662 | macros/latex-dev/required/amsmath/testmath.pdf 2021/06/05 | 45245 | macros/latex-dev/base/ltspace.dtx 2021/06/05 | 44724 | macros/latex-dev/base/ltfinal.dtx 2021/06/05 | 44409 | macros/latex-dev/base/latexrelease.dtx -2021/06/05 | 439816 | systems/win32/w32tex/mftools.tar.xz 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 @@ -1973,7 +2074,6 @@ 2021/06/03 | 802 | support/texlab/src/syntax/bibtex.rs 2021/06/03 | 786 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_options.snap 2021/06/03 | 785 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_two_fields_incomplete.snap -2021/06/03 | 7800 | systems/win32/miktex/tm/packages/xintsession.tar.lzma 2021/06/03 | 776 | support/texlab/tests/integration/snapshots/integration__completion__latex__citation_multi_word.snap 2021/06/03 | 772 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_figure.snap 2021/06/03 | 76 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__empty.snap @@ -2361,7 +2461,6 @@ 2021/06/03 | 13710 | macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls 2021/06/03 | 1365 | support/texlab/tests/integration/snapshots/integration__workspace_symbol__filter_type_section.snap 2021/06/03 | 1352244 | systems/texlive/tlnet/archive/hep-paper.doc.r59436.tar.xz -2021/06/03 | 130738976 | systems/win32/w32tex/web2c-lib.tar.xz 2021/06/03 | 1297 | macros/generic/expkv-cs/README.md 2021/06/03 | 1286 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested_missing_braces.snap 2021/06/03 | 1282 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_enum_item.snap @@ -2404,7 +2503,6 @@ 2021/06/03 | 1051 | support/texlab/tests/integration/snapshots/integration__document_symbol__section_flat.snap 2021/06/03 | 1050 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_options.snap 2021/06/03 | 10493584 | systems/win32/miktex/tm/packages/reledmac.tar.lzma -2021/06/03 | 1049268 | systems/win32/miktex/tm/packages/keyfloat.tar.lzma 2021/06/03 | 1048 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_options.snap 2021/06/03 | 104723 | macros/latex/contrib/ocgx2/ocgx2.sty 2021/06/03 | 10438 | support/texlab/src/features/semantic/bibtex.rs @@ -2418,826 +2516,3 @@ 2021/06/03 | 10078 | macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty 2021/06/03 | 10060 | systems/texlive/tlnet/archive/biblatex-cv.r59433.tar.xz 2021/06/03 | 1005 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__parser__tests__entry_complete_parens.snap -2021/06/02 | 99 | macros/latex/base/ltpara-code.tex -2021/06/02 | 999 | graphics/circuit_macros/examples/Fuses.m4 -2021/06/02 | 999 | graphics/circuit_macros/doc/FusesMan.m4 -2021/06/02 | 991 | graphics/circuit_macros/examples/Byte.m4 -2021/06/02 | 988 | graphics/circuit_macros/examples/svg/VariableSVG.m4 -2021/06/02 | 9840 | graphics/circuit_macros/examples/tubedefs.m4 -2021/06/02 | 980 | graphics/circuit_macros/examples/Emarrows.m4 -2021/06/02 | 980 | graphics/circuit_macros/doc/EmarrowsMan.m4 -2021/06/02 | 9809 | macros/latex/base/ltnews21.tex -2021/06/02 | 9752 | graphics/circuit_macros/examples/svg/tstSVG.htmx -2021/06/02 | 973559 | graphics/circuit_macros/doc/Circuit_macros.pdf -2021/06/02 | 970 | graphics/circuit_macros/examples/svg/ex15SVG.m4 -2021/06/02 | 960 | graphics/circuit_macros/doc/Flowdiag.m4 -2021/06/02 | 959 | graphics/circuit_macros/examples/svg/FusesSVG.m4 -2021/06/02 | 9583 | macros/latex/base/format.ins -2021/06/02 | 9562 | macros/latex/base/ltcntrl.dtx -2021/06/02 | 95156 | graphics/circuit_macros/examples/mf/cct.mf -2021/06/02 | 947 | graphics/circuit_macros/examples/svg/QuantumSVG.m4 -2021/06/02 | 947 | graphics/circuit_macros/examples/squiggle.m4 -2021/06/02 | 944 | graphics/circuit_macros/doc/VariableMan.m4 -2021/06/02 | 9425 | graphics/circuit_macros/doc/ShiftR.tex -2021/06/02 | 9400 | macros/latex/base/syntonly.dtx -2021/06/02 | 937 | graphics/circuit_macros/examples/svg/ByteSVG.m4 -2021/06/02 | 9373 | macros/latex/base/preload.dtx -2021/06/02 | 932 | graphics/circuit_macros/examples/Variable.m4 -2021/06/02 | 925 | graphics/circuit_macros/examples/svg/CapacitorsSVG.m4 -2021/06/02 | 921 | graphics/circuit_macros/examples/svg/MoreTableSVG.m4 -2021/06/02 | 918 | graphics/circuit_macros/examples/Quantum.m4 -2021/06/02 | 90917 | macros/latex/base/fntguide.tex -2021/06/02 | 9080 | graphics/circuit_macros/examples/Makefile -2021/06/02 | 9068 | macros/latex/base/lppl-1-0.txt -2021/06/02 | 905 | graphics/circuit_macros/examples/birds.m4 -2021/06/02 | 90524 | macros/luatex/latex/lua-typo/source/lua-typo.dtx -2021/06/02 | 90126 | macros/latex/base/lttextcomp.dtx -2021/06/02 | 89927 | macros/latex/base/utf8ienc.dtx -2021/06/02 | 89718 | macros/latex/base/slides.dtx -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 | 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 -2021/06/02 | 865 | graphics/circuit_macros/examples/ex18.m4 -2021/06/02 | 864 | graphics/circuit_macros/examples/svg/ResistorsSVG.m4 -2021/06/02 | 8631 | macros/latex/base/oldlfont.dtx -2021/06/02 | 85915 | graphics/circuit_macros/doc/defines.tex -2021/06/02 | 85865 | macros/latex/base/ltdefns.dtx -2021/06/02 | 85790 | graphics/circuit_macros/libgen.m4 -2021/06/02 | 855 | graphics/circuit_macros/examples/svg/ex03SVG.m4 -2021/06/02 | 8531 | macros/latex/base/source2edoc.cls -2021/06/02 | 8496 | macros/latex/base/texpert.txt -2021/06/02 | 843759 | macros/latex/required/babel/base/babel.pdf -2021/06/02 | 8372 | graphics/circuit_macros/examples/exp.m4 -2021/06/02 | 835 | graphics/circuit_macros/doc/Opto.m4 -2021/06/02 | 831 | graphics/circuit_macros/doc/GroundsMan.m4 -2021/06/02 | 828 | graphics/circuit_macros/examples/Grounds.m4 -2021/06/02 | 8259 | macros/latex/base/ltnews.tex -2021/06/02 | 818625 | macros/latex/base/ltshipout-code.pdf -2021/06/02 | 812 | graphics/circuit_macros/doc/ResistorsMan.m4 -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 | 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 -2021/06/02 | 793 | graphics/circuit_macros/examples/svg/CountingSVG.m4 -2021/06/02 | 785758 | macros/latex/required/babel/base/locale.zip -2021/06/02 | 783 | graphics/circuit_macros/doc/Oblique.m4 -2021/06/02 | 78305 | macros/latex/base/ltshipout.dtx -2021/06/02 | 777 | graphics/circuit_macros/examples/Arrester.m4 -2021/06/02 | 774 | graphics/circuit_macros/examples/quick.m4 -2021/06/02 | 774 | graphics/circuit_macros/doc/quick.m4 -2021/06/02 | 7721 | graphics/circuit_macros/examples/shapes.m4 -2021/06/02 | 771 | graphics/circuit_macros/examples/Attention.m4 -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 | 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 -2021/06/02 | 750 | graphics/circuit_macros/examples/Connectors.m4 -2021/06/02 | 7507 | graphics/circuit_macros/examples/svg/shapesSVG.m4 -2021/06/02 | 7503 | graphics/circuit_macros/doc/Headers.tex -2021/06/02 | 748 | graphics/circuit_macros/examples/svg/Np.m4 -2021/06/02 | 7485 | graphics/circuit_macros/examples/svg/cscSVG.m4 -2021/06/02 | 745 | graphics/circuit_macros/examples/svg/DecoderSVG.m4 -2021/06/02 | 7434 | graphics/circuit_macros/examples/csc.m4 -2021/06/02 | 741 | graphics/circuit_macros/examples/Incleps.m4 -2021/06/02 | 7418 | graphics/circuit_macros/examples/svg/CsourceSVG.m4 -2021/06/02 | 740 | graphics/circuit_macros/examples/SampleFlow.m4 -2021/06/02 | 7392 | macros/latex/required/babel/base/babel.ins -2021/06/02 | 7325 | macros/latex/base/ltnews20.tex -2021/06/02 | 7316 | graphics/circuit_macros/doc/Relay.tex -2021/06/02 | 72479 | macros/latex/base/ltfsstrc.dtx -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 | 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 -2021/06/02 | 7109 | macros/latex/base/alltt.dtx -2021/06/02 | 709 | graphics/circuit_macros/examples/Inclpdf.m4 -2021/06/02 | 709939 | macros/latex/required/babel/base/babel.dtx -2021/06/02 | 706 | graphics/circuit_macros/psfrag.m4 -2021/06/02 | 7065 | graphics/circuit_macros/examples/control.m4 -2021/06/02 | 703 | graphics/circuit_macros/examples/mpost/README-mpost -2021/06/02 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4 -2021/06/02 | 693019 | macros/latex/base/ltcmdhooks-code.pdf -2021/06/02 | 6921624 | systems/win32/w32tex/win64/pdftex-w64.tar.xz -2021/06/02 | 69050 | macros/latex/base/clsguide.tex -2021/06/02 | 69007 | macros/latex/base/ltpictur.dtx -2021/06/02 | 6871 | macros/latex/base/ltnews13.tex -2021/06/02 | 685 | graphics/circuit_macros/examples/mpost/mptest -2021/06/02 | 6854 | graphics/circuit_macros/examples/svg/DiniSVG.m4 -2021/06/02 | 6854 | graphics/circuit_macros/examples/Dini.m4 -2021/06/02 | 68435 | macros/latex/base/usrguide.tex -2021/06/02 | 683789 | macros/latex/base/lthooks-doc.pdf -2021/06/02 | 682 | graphics/circuit_macros/examples/svg/ujtSVG.m4 -2021/06/02 | 676501 | macros/latex/base/doc.pdf -2021/06/02 | 6760 | macros/latex/base/slides.ins -2021/06/02 | 673 | graphics/circuit_macros/examples/ex03.m4 -2021/06/02 | 6714 | macros/latex/base/latexsym.dtx -2021/06/02 | 664444 | macros/latex/base/ltpara-code.pdf -2021/06/02 | 660 | graphics/circuit_macros/examples/ujt.m4 -2021/06/02 | 660 | graphics/circuit_macros/doc/ujtMan.m4 -2021/06/02 | 656 | graphics/circuit_macros/examples/Zcos.m4 -2021/06/02 | 655 | graphics/circuit_macros/examples/Decoder.m4 -2021/06/02 | 6550 | graphics/circuit_macros/doc/Conn.tex -2021/06/02 | 654 | graphics/circuit_macros/examples/diamond.m4 -2021/06/02 | 6501 | graphics/circuit_macros/examples/svg/EscherSVG.m4 -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 | 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 -2021/06/02 | 6371 | graphics/circuit_macros/examples/CanLogic.m4 -2021/06/02 | 6362 | macros/latex/base/newlfont.dtx -2021/06/02 | 63283 | macros/latex/base/letter.dtx -2021/06/02 | 63255 | macros/latex/base/ltfilehook.dtx -2021/06/02 | 6273 | macros/latex/base/ltnews14.tex -2021/06/02 | 6243 | graphics/circuit_macros/examples/ASME_Y14-5.m4 -2021/06/02 | 6216 | graphics/circuit_macros/examples/svg/LgateSVG.m4 -2021/06/02 | 6160 | macros/latex/base/ltpar.dtx -2021/06/02 | 6160 | graphics/circuit_macros/examples/Plate.m4 -2021/06/02 | 6153 | graphics/circuit_macros/examples/svg/PlateSVG.m4 -2021/06/02 | 614 | graphics/circuit_macros/doc/BigResistor.m4 -2021/06/02 | 61425 | macros/latex/base/ltfssdcl.dtx -2021/06/02 | 609 | graphics/circuit_macros/examples/svg/diamondSVG.m4 -2021/06/02 | 6067 | graphics/circuit_macros/doc/Contacts.tex -2021/06/02 | 60326 | macros/latex/base/fontdef.dtx -2021/06/02 | 6016 | systems/texlive/tlnet/archive/xintsession.r59426.tar.xz -2021/06/02 | 6003 | graphics/circuit_macros/examples/CSlight.m4 -2021/06/02 | 5970122 | fonts/libertinust1math.zip -2021/06/02 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4 -2021/06/02 | 591 | graphics/circuit_macros/examples/test.m4 -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 | 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 -2021/06/02 | 5839 | macros/latex/base/ltnews15.tex -2021/06/02 | 580624 | systems/texlive/tlnet/archive/l3kernel.source.r59425.tar.xz -2021/06/02 | 5776 | macros/latex/base/ltnews16.tex -2021/06/02 | 5714 | macros/latex/base/inputenc.ins -2021/06/02 | 56 | graphics/circuit_macros/doc/opampex.m4 -2021/06/02 | 5695 | macros/latex/base/ltnews08.tex -2021/06/02 | 5659 | macros/latex/base/ltnews10.tex -2021/06/02 | 564572 | macros/latex/base/ltshipout-doc.pdf -2021/06/02 | 5608 | macros/latex/base/ltnews05.tex -2021/06/02 | 560166 | macros/latex/base/ltpara-doc.pdf -2021/06/02 | 5545 | graphics/circuit_macros/doc/Bip.tex -2021/06/02 | 5529 | macros/latex/base/ltnews11.tex -2021/06/02 | 551 | graphics/circuit_macros/examples/Counting.m4 -2021/06/02 | 5514 | macros/latex/base/graphpap.dtx -2021/06/02 | 55087 | macros/latex/base/ltfiles.dtx -2021/06/02 | 5506 | macros/latex/base/ltnews27.tex -2021/06/02 | 5506 | macros/latex/base/ltnews04.tex -2021/06/02 | 5502 | graphics/circuit_macros/doc/Emarrows.tex -2021/06/02 | 550002 | macros/latex/base/classes.pdf -2021/06/02 | 5486 | graphics/circuit_macros/examples/graysurf.m4 -2021/06/02 | 5473 | macros/latex/base/ltnews25.tex -2021/06/02 | 5469 | graphics/circuit_macros/examples/svg/graysurfSVG.m4 -2021/06/02 | 54680 | macros/latex/base/ltfloat.dtx -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 | 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 -2021/06/02 | 5390 | macros/latex/base/ltnews06.tex -2021/06/02 | 538 | graphics/circuit_macros/examples/svg/FontsSVG.m4 -2021/06/02 | 538 | graphics/circuit_macros/examples/svg/AmpTableSVG.m4 -2021/06/02 | 5365 | graphics/circuit_macros/examples/svg/fetSVG.m4 -2021/06/02 | 535 | graphics/circuit_macros/doc/Tline.m4 -2021/06/02 | 532 | graphics/circuit_macros/examples/svg/NLGSVG.m4 -2021/06/02 | 53199 | macros/latex/base/ltplain.dtx -2021/06/02 | 5315 | graphics/circuit_macros/doc/fetMan.m4 -2021/06/02 | 5311 | graphics/circuit_macros/examples/fet.m4 -2021/06/02 | 5293 | macros/latex/base/ltnews09.tex -2021/06/02 | 5283 | macros/latex/base/ltnews02.tex -2021/06/02 | 52813 | macros/latex/base/encguide.tex -2021/06/02 | 5279900 | systems/texlive/tlnet/archive/tools.doc.r59424.tar.xz -2021/06/02 | 5276053 | macros/latex/base/source2e.pdf -2021/06/02 | 5273 | macros/latex/base/cmextra.ins -2021/06/02 | 526312 | macros/latex/base/ltnews31.pdf -2021/06/02 | 52578 | macros/latex/base/lb2.err -2021/06/02 | 5246 | macros/latex/base/ltnews01.tex -2021/06/02 | 522411 | macros/latex/base/ltnews33.pdf -2021/06/02 | 52212 | systems/texlive/tlnet/archive/graphics.source.r59424.tar.xz -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 | 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 | 503186 | macros/latex/base/docstrip.pdf -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 | 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 -2021/06/02 | 493957 | macros/latex/base/fntguide.pdf -2021/06/02 | 489 | graphics/circuit_macros/examples/Koch.m4 -2021/06/02 | 48746 | macros/latex/base/ltpara.dtx -2021/06/02 | 483 | graphics/circuit_macros/doc/eboxdims.m4 -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 | 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 -2021/06/02 | 47795 | graphics/circuit_macros/liblog.m4 -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 -2021/06/02 | 464 | graphics/circuit_macros/examples/tsttikz.tex -2021/06/02 | 4638 | graphics/circuit_macros/examples/Ball.m4 -2021/06/02 | 462 | graphics/circuit_macros/Copying -2021/06/02 | 4615 | graphics/circuit_macros/examples/mf/font.m4 -2021/06/02 | 460 | graphics/circuit_macros/examples/debug1.tex -2021/06/02 | 4569 | graphics/circuit_macros/examples/rose.m4 -2021/06/02 | 454808 | macros/latex/base/ltnews29.pdf -2021/06/02 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz -2021/06/02 | 45245 | macros/latex/base/ltspace.dtx -2021/06/02 | 449 | graphics/circuit_macros/doc/woodchips.m4 -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 | 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 -2021/06/02 | 43867 | macros/latex/base/ltboxes.dtx -2021/06/02 | 43636 | macros/latex/base/cmfonts.fdd -2021/06/02 | 4340 | graphics/circuit_macros/examples/svg/AlogixSVG.m4 -2021/06/02 | 4324 | macros/latex/base/cmfonts.ins -2021/06/02 | 4313 | graphics/circuit_macros/examples/ex09.m4 -2021/06/02 | 4312 | graphics/circuit_macros/doc/Circuit_macros.bib -2021/06/02 | 4309 | graphics/circuit_macros/examples/svg/SwitchesSVG.m4 -2021/06/02 | 430996 | macros/latex/base/usrguide.pdf -2021/06/02 | 4303 | macros/latex/base/ltalloc.dtx -2021/06/02 | 4289 | graphics/circuit_macros/examples/svg/BtreeSVG.m4 -2021/06/02 | 4277 | graphics/circuit_macros/examples/svg/sldtestsSVG.m4 -2021/06/02 | 42708 | macros/latex/base/changes.old.txt -2021/06/02 | 4254 | macros/latex/base/newdc.ins -2021/06/02 | 4247 | graphics/circuit_macros/examples/mpost/Makefile -2021/06/02 | 42464 | systems/texlive/tlnet/archive/tools.r59424.tar.xz -2021/06/02 | 42328 | macros/latex/contrib/bjfuthesis/example/figures/recommendation-procedure.pdf -2021/06/02 | 4221 | macros/latex/base/docstrip.ins -2021/06/02 | 421 | graphics/circuit_macros/examples/GrayCode.m4 -2021/06/02 | 421 | graphics/circuit_macros/doc/Sinus.m4 -2021/06/02 | 4219 | macros/latex/base/latex209.ins -2021/06/02 | 4205 | graphics/circuit_macros/examples/Alogix.m4 -2021/06/02 | 419 | graphics/circuit_macros/examples/svg/SixpoleSVG.m4 -2021/06/02 | 419 | graphics/circuit_macros/examples/Sixpole.m4 -2021/06/02 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex -2021/06/02 | 4184 | fonts/newtx/tfm/ntxbmi1.tfm -2021/06/02 | 41831 | macros/latex/base/doc-v3beta.sty -2021/06/02 | 4180 | fonts/newtx/tfm/ntxmi0.tfm -2021/06/02 | 417 | graphics/circuit_macros/examples/svg/SQUIDSVG.m4 -2021/06/02 | 4178 | graphics/circuit_macros/doc/Tgate.tex -2021/06/02 | 4176 | fonts/newtx/tfm/ntxmi1.tfm -2021/06/02 | 4176 | fonts/newtx/tfm/ntxbmi0.tfm -2021/06/02 | 4172 | fonts/newtx/tfm/ntxmi.tfm -2021/06/02 | 4170 | macros/latex/base/ltnews19.tex -2021/06/02 | 416 | graphics/circuit_macros/examples/testpdf.tex -2021/06/02 | 4168 | fonts/newtx/tfm/ntxbmi.tfm -2021/06/02 | 41248 | macros/latex/contrib/bjfuthesis/example/figures/jwt.pdf -2021/06/02 | 4119 | graphics/circuit_macros/examples/svg/ex09SVG.m4 -2021/06/02 | 4106337 | fonts/newpx.zip -2021/06/02 | 409 | graphics/circuit_macros/examples/tst.tex -2021/06/02 | 409 | graphics/circuit_macros/examples/mpost/examplesmpost.tex -2021/06/02 | 40970 | macros/latex/base/ltcmdhooks.dtx -2021/06/02 | 4087 | macros/latex/base/classes.ins -2021/06/02 | 4079 | macros/latex/base/lablst.tex -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 | 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 -2021/06/02 | 4003 | graphics/circuit_macros/examples/svg/InclepsSVG.m4 -2021/06/02 | 3973 | graphics/circuit_macros/examples/Switches.m4 -2021/06/02 | 3960 | macros/latex/base/olddc.ins -2021/06/02 | 3954 | graphics/circuit_macros/examples/PushPull.m4 -2021/06/02 | 39431 | macros/latex/base/ltmath.dtx -2021/06/02 | 39092 | fonts/newtx/README -2021/06/02 | 387 | graphics/circuit_macros/doc/lrarrows.m4 -2021/06/02 | 387987 | macros/latex/base/ltnews28.pdf -2021/06/02 | 38735 | macros/latex/base/latex209.dtx -2021/06/02 | 386513 | language/japanese/pxchfon.zip -2021/06/02 | 3825 | graphics/circuit_macros/examples/svg/recycleSVG.m4 -2021/06/02 | 3825 | graphics/circuit_macros/examples/recycle.m4 -2021/06/02 | 380 | graphics/circuit_macros/examples/SQUID.m4 -2021/06/02 | 38031 | macros/latex/base/ltnews18.pdf -2021/06/02 | 379735 | macros/latex/base/ltnews26.pdf -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 | 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 -2021/06/02 | 3730 | macros/latex/base/ltlogos.dtx -2021/06/02 | 3727 | graphics/circuit_macros/examples/random.m4 -2021/06/02 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex -2021/06/02 | 370 | graphics/circuit_macros/examples/snake.m4 -2021/06/02 | 369 | graphics/circuit_macros/doc/sampleIC.m4 -2021/06/02 | 365 | graphics/circuit_macros/examples/rotellipse.m4 -2021/06/02 | 3646 | graphics/circuit_macros/examples/svg/ContactSVG.m4 -2021/06/02 | 3631 | graphics/circuit_macros/examples/svg/wormSVG.m4 -2021/06/02 | 36157 | macros/latex/base/ltlists.dtx -2021/06/02 | 361477 | macros/latex/base/utf8ienc.pdf -2021/06/02 | 3567 | graphics/circuit_macros/examples/svg/ButtonsSVG.m4 -2021/06/02 | 353 | graphics/circuit_macros/examples/windows.m4 -2021/06/02 | 353 | graphics/circuit_macros/examples/svg/windows.m4 -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 | 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 -2021/06/02 | 3473 | graphics/circuit_macros/examples/svg/MCSVG.m4 -2021/06/02 | 34386868 | install/macros/latex/latex-base.tds.zip -2021/06/02 | 3434 | macros/latex/base/makeindx.ins -2021/06/02 | 3401 | macros/latex/base/proc.ins -2021/06/02 | 33911 | macros/latex/base/ltnews33.tex -2021/06/02 | 3390 | graphics/circuit_macros/examples/svg/ex05SVG.m4 -2021/06/02 | 33897022 | macros/latex/base.zip -2021/06/02 | 3380 | fonts/newtx/tfm/ntxbmi15.tfm -2021/06/02 | 337 | graphics/circuit_macros/examples/xfig/Makefile -2021/06/02 | 3376 | fonts/newtx/tfm/ntxbmi5.tfm -2021/06/02 | 3372 | macros/latex/base/letter.ins -2021/06/02 | 3367 | macros/latex/base/ltoutenc.ins -2021/06/02 | 3346 | graphics/circuit_macros/examples/Windings.m4 -2021/06/02 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4 -2021/06/02 | 3340 | fonts/newtx/tfm/ntxmi17.tfm -2021/06/02 | 3340 | fonts/newtx/tfm/ntxbmi17.tfm -2021/06/02 | 3339 | graphics/circuit_macros/examples/ex12.m4 -2021/06/02 | 3338 | macros/latex/base/exscale.ins -2021/06/02 | 3336 | fonts/newtx/tfm/ntxmi07.tfm -2021/06/02 | 3336 | fonts/newtx/tfm/ntxbmi7.tfm -2021/06/02 | 3332 | fonts/newtx/tfm/ntxmi7.tfm -2021/06/02 | 3332 | fonts/newtx/tfm/ntxbmi07.tfm -2021/06/02 | 3326 | graphics/circuit_macros/examples/Contact.m4 -2021/06/02 | 3326 | graphics/circuit_macros/doc/ContactMan.m4 -2021/06/02 | 33256 | macros/latex/base/ltnews32.tex -2021/06/02 | 3321 | graphics/circuit_macros/examples/thyristor.m4 -2021/06/02 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4 -2021/06/02 | 3320 | fonts/newtx/tfm/ntxmi15.tfm -2021/06/02 | 3312 | fonts/newtx/tfm/ntxmi05.tfm -2021/06/02 | 3310 | graphics/circuit_macros/examples/svg/thyristorSVG.m4 -2021/06/02 | 3308 | fonts/newtx/tfm/ntxmi5.tfm -2021/06/02 | 32 | graphics/circuit_macros/examples/Incl.eps.bb -2021/06/02 | 329 | graphics/circuit_macros/doc/FF.m4 -2021/06/02 | 3290 | graphics/circuit_macros/examples/svg/sfgSVG.m4 -2021/06/02 | 328728 | macros/latex/base/letter.pdf -2021/06/02 | 3282 | macros/latex/base/bugs.txt -2021/06/02 | 32648 | macros/latex/base/ltsect.dtx -2021/06/02 | 32548 | macros/latex/contrib/bjfuthesis/example/figures/use-case.pdf -2021/06/02 | 325299 | macros/latex/base/usrguide3.pdf -2021/06/02 | 325289 | macros/latex/base/ltluatex.pdf -2021/06/02 | 3183 | graphics/circuit_macros/doc/NLG.tex -2021/06/02 | 318399 | macros/latex/base/ltnews22.pdf -2021/06/02 | 3181 | macros/latex/base/unpack.ins -2021/06/02 | 318168 | macros/latex/base/inputenc.pdf -2021/06/02 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt -2021/06/02 | 3175 | graphics/circuit_macros/examples/Blogix.m4 -2021/06/02 | 3091 | graphics/circuit_macros/examples/svg/TtreeSVG.m4 -2021/06/02 | 30456 | macros/latex/base/ltnews31.tex -2021/06/02 | 3000 | graphics/circuit_macros/doc/Circuit_macros.tex -2021/06/02 | 2997 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.tex -2021/06/02 | 2994 | graphics/circuit_macros/examples/svg/WindingsSVG.m4 -2021/06/02 | 29923 | macros/latex/base/usrguide3.tex -2021/06/02 | 2989 | graphics/circuit_macros/examples/svg/AutoencoderSVG.m4 -2021/06/02 | 2986 | graphics/circuit_macros/examples/MC.m4 -2021/06/02 | 29772 | graphics/circuit_macros/examples/Incl.pdf -2021/06/02 | 297070 | macros/latex/base/ltnews20.pdf -2021/06/02 | 292317 | macros/latex/base/cmfonts.pdf -2021/06/02 | 29191 | macros/latex/base/ltfntcmd.dtx -2021/06/02 | 29183 | macros/context/contrib/context-vim.zip -2021/06/02 | 2912 | graphics/circuit_macros/doc/Workflow.m4 -2021/06/02 | 290495 | macros/latex/base/latexrelease.pdf -2021/06/02 | 2896 | macros/latex/base/syntonly.ins -2021/06/02 | 2893 | macros/latex/base/nfssfont.ins -2021/06/02 | 2892 | macros/latex/base/graphpap.ins -2021/06/02 | 2892 | macros/latex/base/fix-cm.ins -2021/06/02 | 289245 | macros/latex/base/tlc2.pdf -2021/06/02 | 2890 | macros/latex/base/alltt.ins -2021/06/02 | 2888 | macros/latex/base/ifthen.ins -2021/06/02 | 287672 | macros/latex/base/fix-cm.pdf -2021/06/02 | 287125 | macros/latex/base/ltnews23.pdf -2021/06/02 | 2834 | graphics/circuit_macros/postscript.m4 -2021/06/02 | 2817 | graphics/circuit_macros/examples/README-examples -2021/06/02 | 2814628 | install/macros/latex/required/babel-base.tds.zip -2021/06/02 | 2799 | graphics/circuit_macros/examples/worm.m4 -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 -2021/06/02 | 2733 | macros/latex/base/ltpageno.dtx -2021/06/02 | 2720 | graphics/circuit_macros/examples/svg/AudioSVG.m4 -2021/06/02 | 27122 | macros/latex/base/ltxcheck.tex -2021/06/02 | 2708 | fonts/newtx/vf/ntxbmi17.vf -2021/06/02 | 2708 | fonts/newtx/vf/ntxbmi15.vf -2021/06/02 | 2705 | macros/latex/base/idx.tex -2021/06/02 | 2704 | fonts/newtx/vf/ntxbmi07.vf -2021/06/02 | 2700 | fonts/newtx/vf/ntxbmi7.vf -2021/06/02 | 2700 | fonts/newtx/vf/ntxbmi5.vf -2021/06/02 | 26 | graphics/circuit_macros/doc/DCsymbol.m4 -2021/06/02 | 26 | graphics/circuit_macros/doc/ACsymbol.m4 -2021/06/02 | 269 | graphics/circuit_macros/doc/Loop.m4 -2021/06/02 | 2696 | graphics/circuit_macros/examples/keyval.m4 -2021/06/02 | 2685 | graphics/circuit_macros/examples/svg/ex11SVG.m4 -2021/06/02 | 2674 | graphics/circuit_macros/examples/Planes.m4 -2021/06/02 | 2661 | graphics/circuit_macros/examples/svg/CctTableSVG.m4 -2021/06/02 | 2661 | graphics/circuit_macros/doc/Grounds.tex -2021/06/02 | 265211 | macros/latex/base/ltnews24.pdf -2021/06/02 | 2634 | graphics/circuit_macros/examples/Audio.m4 -2021/06/02 | 2634 | graphics/circuit_macros/doc/AudioMan.m4 -2021/06/02 | 2625 | graphics/circuit_macros/examples/svg/ex01SVG.m4 -2021/06/02 | 2612 | fonts/newtx/vf/ntxmi.vf -2021/06/02 | 2604 | fonts/newtx/vf/ntxmi1.vf -2021/06/02 | 2604 | fonts/newtx/vf/ntxmi0.vf -2021/06/02 | 25849 | graphics/circuit_macros/doc/Xform.tex -2021/06/02 | 2576 | fonts/newtx/vf/ntxmi7.vf -2021/06/02 | 2576 | fonts/newtx/vf/ntxmi5.vf -2021/06/02 | 2576 | fonts/newtx/vf/ntxmi17.vf -2021/06/02 | 2576 | fonts/newtx/vf/ntxmi15.vf -2021/06/02 | 2576 | fonts/newtx/vf/ntxmi07.vf -2021/06/02 | 2576 | fonts/newtx/vf/ntxmi05.vf -2021/06/02 | 25642 | macros/luatex/latex/lua-typo/lua-typo-2021-04-18.sty -2021/06/02 | 2559 | graphics/circuit_macros/examples/svg/ex08SVG.m4 -2021/06/02 | 2556 | graphics/circuit_macros/examples/ex08.m4 -2021/06/02 | 2551 | graphics/circuit_macros/examples/svg/OptoisoSVG.m4 -2021/06/02 | 2542 | graphics/circuit_macros/examples/brace.m4 -2021/06/02 | 2528 | graphics/circuit_macros/examples/svg/AdderSVG.m4 -2021/06/02 | 2525 | graphics/circuit_macros/examples/svg/CrowSVG.m4 -2021/06/02 | 252432 | macros/latex/base/ltnews27.pdf -2021/06/02 | 252154 | macros/latex/base/lb2.pdf -2021/06/02 | 2520 | graphics/circuit_macros/examples/Crow.m4 -2021/06/02 | 2517 | graphics/circuit_macros/examples/Autoencoder.m4 -2021/06/02 | 24911 | graphics/circuit_macros/examples/svg/examplesSVG.htmx -2021/06/02 | 24726 | graphics/circuit_macros/examples/svg/EEPSVG.m4 -2021/06/02 | 247037 | macros/luatex/latex/lua-typo.zip -2021/06/02 | 245818 | macros/latex/base/ltnews19.pdf -2021/06/02 | 244869 | macros/latex/base/ltnews21.pdf -2021/06/02 | 2443 | graphics/circuit_macros/examples/svg/ex00SVG.m4 -2021/06/02 | 2442 | graphics/circuit_macros/examples/Optoiso.m4 -2021/06/02 | 2441 | graphics/circuit_macros/doc/ujt.tex -2021/06/02 | 243601 | macros/latex/base/modguide.pdf -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 | 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 -2021/06/02 | 2389 | graphics/circuit_macros/doc/Dac.m4 -2021/06/02 | 238577 | macros/latex/base/ltxdoc.pdf -2021/06/02 | 23651 | macros/latex/base/ltnews30.tex -2021/06/02 | 2362 | graphics/circuit_macros/examples/Jack.m4 -2021/06/02 | 2362 | graphics/circuit_macros/doc/JackMan.m4 -2021/06/02 | 2361 | graphics/circuit_macros/examples/ex11.m4 -2021/06/02 | 23521 | macros/latex/base/fix-cm.dtx -2021/06/02 | 234008 | macros/latex/base/slifonts.pdf -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 | 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 -2021/06/02 | 221 | graphics/circuit_macros/examples/rotate.tex -2021/06/02 | 220417 | macros/latex/base/ifthen.pdf -2021/06/02 | 219 | graphics/circuit_macros/examples/tst1.tex -2021/06/02 | 219354 | macros/latex/base/ltx3info.pdf -2021/06/02 | 21890 | macros/latex/required/babel/base/bbcompat.dtx -2021/06/02 | 218782 | macros/latex/base/nfssfont.pdf -2021/06/02 | 217 | graphics/circuit_macros/doc/stringdims.m4 -2021/06/02 | 2179 | graphics/circuit_macros/doc/ConnMan.m4 -2021/06/02 | 2178 | graphics/circuit_macros/examples/Conn.m4 -2021/06/02 | 2171 | graphics/circuit_macros/examples/svg/I2LSVG.m4 -2021/06/02 | 2170 | graphics/circuit_macros/examples/ex06.m4 -2021/06/02 | 2165 | graphics/circuit_macros/examples/Sources.m4 -2021/06/02 | 2158 | macros/latex/required/babel/base/README.md -2021/06/02 | 21576 | systems/texlive/tlnet/archive/l3packages.r59425.tar.xz -2021/06/02 | 215091 | macros/latex/base/lgc2.pdf -2021/06/02 | 214710 | macros/latex/base/alltt.pdf -2021/06/02 | 2140 | systems/texlive/tlnet/archive/xintsession.doc.r59426.tar.xz -2021/06/02 | 21384 | graphics/circuit_macros/examples/svg/Incl.jpg -2021/06/02 | 21374 | graphics/circuit_macros/examples/xfig/xfiglib.fig -2021/06/02 | 212307 | macros/latex/base/exscale.pdf -2021/06/02 | 2119 | graphics/circuit_macros/examples/Logic.m4 -2021/06/02 | 2119 | graphics/circuit_macros/doc/LogicMan.m4 -2021/06/02 | 2111 | graphics/circuit_macros/examples/svg/ConnSVG.m4 -2021/06/02 | 2099 | graphics/circuit_macros/pstricks.m4 -2021/06/02 | 2097 | graphics/circuit_macros/examples/Ttree.m4 -2021/06/02 | 2086 | graphics/circuit_macros/examples/relaycoil.m4 -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 | 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 -2021/06/02 | 20469 | macros/latex/base/ltnews.cls -2021/06/02 | 20418 | graphics/circuit_macros/doc/thyristor.tex -2021/06/02 | 204063 | macros/latex/base/doc.dtx -2021/06/02 | 2027 | graphics/circuit_macros/examples/svg/pwrsupplySVG.m4 -2021/06/02 | 2027860 | systems/texlive/tlnet/archive/graphics.doc.r59424.tar.xz -2021/06/02 | 2018 | graphics/circuit_macros/examples/svg/ex06SVG.m4 -2021/06/02 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4 -2021/06/02 | 2013 | graphics/circuit_macros/doc/HybridPi.m4 -2021/06/02 | 2000 | graphics/circuit_macros/examples/ex21.m4 -2021/06/02 | 1995 | graphics/circuit_macros/doc/Corners.m4 -2021/06/02 | 1992 | graphics/circuit_macros/examples/svg/FourbarSVG.m4 -2021/06/02 | 1985 | graphics/circuit_macros/examples/svg/XORSVG.m4 -2021/06/02 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4 -2021/06/02 | 197187 | macros/latex/base/syntonly.pdf -2021/06/02 | 1966 | graphics/circuit_macros/examples/svg/DriveSVG.m4 -2021/06/02 | 1966 | graphics/circuit_macros/examples/Drive.m4 -2021/06/02 | 1962 | graphics/circuit_macros/examples/Autologix.m4 -2021/06/02 | 1959 | graphics/circuit_macros/examples/debug2.m4 -2021/06/02 | 1955 | graphics/circuit_macros/examples/svg/ABlogixSVG.m4 -2021/06/02 | 1953 | graphics/circuit_macros/examples/svg/MotorControlSVG.m4 -2021/06/02 | 1953 | graphics/circuit_macros/doc/Buffer.m4 -2021/06/02 | 1940 | graphics/circuit_macros/doc/AmpTable.tex -2021/06/02 | 1937 | macros/latex/base/minimal.cls -2021/06/02 | 1931 | graphics/circuit_macros/examples/svg/LogicSVG.m4 -2021/06/02 | 19250 | graphics/circuit_macros/dpictools.pic -2021/06/02 | 1922 | graphics/circuit_macros/examples/MotorControl.m4 -2021/06/02 | 19176 | graphics/circuit_macros/Licence.txt -2021/06/02 | 19142 | graphics/circuit_macros/doc/Switches.tex -2021/06/02 | 1907 | graphics/circuit_macros/examples/svg/SourcesSVG.m4 -2021/06/02 | 1906 | graphics/circuit_macros/examples/venus.m4 -2021/06/02 | 1906 | graphics/circuit_macros/examples/SPM.m4 -2021/06/02 | 19064 | macros/latex/base/ltxdoc.dtx -2021/06/02 | 1904 | fonts/newtx/tfm/ntxbmi05.tfm -2021/06/02 | 19040 | macros/latex/base/lppl.txt -2021/06/02 | 1894 | graphics/circuit_macros/examples/svg/ArrowFnSVG.m4 -2021/06/02 | 18940 | macros/latex/base/ltnews29.tex -2021/06/02 | 1893 | graphics/circuit_macros/examples/svg/ex16SVG.m4 -2021/06/02 | 1891 | graphics/circuit_macros/examples/svg/ex04SVG.m4 -2021/06/02 | 1882 | graphics/circuit_macros/examples/svg/ex21SVG.m4 -2021/06/02 | 1879 | graphics/circuit_macros/examples/Cruller.m4 -2021/06/02 | 187818 | macros/latex/base/lthooks.dtx -2021/06/02 | 18770 | fonts/newpx/README -2021/06/02 | 1875 | graphics/circuit_macros/examples/svg/GrayCodeSVG.m4 -2021/06/02 | 1874 | graphics/circuit_macros/examples/svg/CrullerSVG.m4 -2021/06/02 | 1865 | graphics/circuit_macros/examples/ex16.m4 -2021/06/02 | 1860 | graphics/circuit_macros/doc/bi_trans.m4 -2021/06/02 | 1857 | graphics/circuit_macros/doc/Composite.m4 -2021/06/02 | 1852 | graphics/circuit_macros/examples/Orbits.m4 -2021/06/02 | 18404 | macros/latex/base/nfssfont.dtx -2021/06/02 | 1837 | graphics/circuit_macros/examples/svg/SchottkySVG.m4 -2021/06/02 | 18303 | macros/latex/base/ifthen.dtx -2021/06/02 | 18299 | macros/latex/base/ltx3info.tex -2021/06/02 | 1828 | fonts/newtx/vf/ntxbmi05.vf -2021/06/02 | 1823 | graphics/circuit_macros/examples/XOR.m4 -2021/06/02 | 1815309 | macros/latex/required/babel/base.zip -2021/06/02 | 1812 | graphics/circuit_macros/examples/svg/BipSVG.m4 -2021/06/02 | 181066 | macros/latex/contrib/bjfuthesis/example/figures/illustration-of-ripple-sets.png -2021/06/02 | 180 | macros/latex/base/ltfilehook-doc.tex -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 | 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 -2021/06/02 | 1778 | graphics/circuit_macros/examples/Schottky.m4 -2021/06/02 | 1776 | graphics/circuit_macros/examples/svg/PconnSVG.m4 -2021/06/02 | 17711 | graphics/circuit_macros/examples/files.tex -2021/06/02 | 1767 | graphics/circuit_macros/examples/ArrowFn.m4 -2021/06/02 | 175645 | macros/latex/base/ltoutput.dtx -2021/06/02 | 17495 | macros/latex/base/cyrguide.tex -2021/06/02 | 174488 | macros/latex/base/ltnews05.pdf -2021/06/02 | 173 | macros/latex/base/ltpara-doc.tex -2021/06/02 | 1737 | graphics/circuit_macros/examples/svg/ContactsSVG.m4 -2021/06/02 | 173682 | macros/latex/base/makeindx.pdf -2021/06/02 | 173323 | macros/latex/base/ltnews13.pdf -2021/06/02 | 1730 | graphics/circuit_macros/examples/ABlogix.m4 -2021/06/02 | 172278 | macros/latex/base/tlc2.err -2021/06/02 | 1720 | graphics/circuit_macros/examples/examples.tex -2021/06/02 | 171777 | graphics/circuit_macros/libcct.m4 -2021/06/02 | 170529 | macros/latex/base/tulm.pdf -2021/06/02 | 170214 | macros/latex/base/docstrip.dtx -2021/06/02 | 1699 | graphics/circuit_macros/examples/svg/ex10SVG.m4 -2021/06/02 | 1694 | macros/latex/base/small2e.tex -2021/06/02 | 169323 | macros/latex/base/graphpap.pdf -2021/06/02 | 167988 | systems/texlive/tlnet/archive/l3kernel.r59425.tar.xz -2021/06/02 | 16794 | macros/luatex/latex/lua-typo/doc/lua-typo-demo.pdf -2021/06/02 | 1668 | graphics/circuit_macros/examples/svg/Banking.m4 -2021/06/02 | 1668 | graphics/circuit_macros/examples/IC10107.m4 -2021/06/02 | 166368 | macros/latex/base/ltnews17.pdf -2021/06/02 | 165 | graphics/circuit_macros/doc/tranbody.m4 -2021/06/02 | 1654 | graphics/circuit_macros/examples/ex04.m4 -2021/06/02 | 16420 | graphics/circuit_macros/doc/fet.tex -2021/06/02 | 1640 | graphics/circuit_macros/mpost.m4 -2021/06/02 | 1639 | graphics/circuit_macros/Makefile -2021/06/02 | 1630 | graphics/circuit_macros/examples/svg/TTLnandSVG.m4 -2021/06/02 | 16309 | graphics/circuit_macros/README -2021/06/02 | 1624 | graphics/circuit_macros/doc/ParSeries.m4 -2021/06/02 | 16233 | macros/latex/base/modguide.tex -2021/06/02 | 1619 | graphics/circuit_macros/examples/Bip.m4 -2021/06/02 | 1619 | graphics/circuit_macros/doc/BipMan.m4 -2021/06/02 | 1618 | graphics/circuit_macros/doc/ArrestersMan.m4 -2021/06/02 | 161518 | macros/latex/base/ltnews01.pdf -2021/06/02 | 161405 | macros/latex/base/ltnews14.pdf -2021/06/02 | 1612 | graphics/circuit_macros/examples/svg/TimerSVG.m4 -2021/06/02 | 16105 | macros/latex/base/ltbibl.dtx -2021/06/02 | 1608 | graphics/circuit_macros/examples/ex05.m4 -2021/06/02 | 160521 | macros/latex/base/manual.pdf -2021/06/02 | 159313 | macros/latex/base/ltnews10.pdf -2021/06/02 | 1585 | graphics/circuit_macros/examples/Contacts.m4 -2021/06/02 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4 -2021/06/02 | 1575 | graphics/circuit_macros/doc/mplex.m4 -2021/06/02 | 15699 | macros/latex/base/slifonts.fdd -2021/06/02 | 15625 | macros/latex/base/ltxref.dtx -2021/06/02 | 156210 | macros/latex/base/classes.dtx -2021/06/02 | 1559 | graphics/circuit_macros/examples/svg/XformSVG.m4 -2021/06/02 | 1558 | graphics/circuit_macros/examples/TTLnand.m4 -2021/06/02 | 155055 | macros/latex/base/ltnews08.pdf -2021/06/02 | 1546 | graphics/circuit_macros/examples/svg/Xtest.m4 -2021/06/02 | 15388 | graphics/circuit_macros/doc/Sources.tex -2021/06/02 | 1529 | graphics/circuit_macros/examples/mf/Makefile -2021/06/02 | 1526 | graphics/circuit_macros/examples/Xform.m4 -2021/06/02 | 1526 | graphics/circuit_macros/doc/XformMan.m4 -2021/06/02 | 1525 | graphics/circuit_macros/examples/rotatetext.m4 -2021/06/02 | 1521 | graphics/circuit_macros/examples/Coxeter.m4 -2021/06/02 | 1521156 | systems/texlive/tlnet/archive/circuitikz.doc.r59421.tar.xz -2021/06/02 | 15164 | systems/texlive/tlnet/archive/graphics.r59424.tar.xz -2021/06/02 | 15104 | macros/latex/base/source2e.tex -2021/06/02 | 150588 | systems/texlive/tlnet/archive/hvarabic.doc.r59423.tar.xz -2021/06/02 | 150493 | macros/latex/base/ltnews03.pdf -2021/06/02 | 150466 | macros/latex/base/ltnews02.pdf -2021/06/02 | 15033 | graphics/circuit_macros/doc/Pconn.tex -2021/06/02 | 1492 | graphics/circuit_macros/examples/ex10.m4 -2021/06/02 | 149221 | macros/latex/base/ltoutenc.dtx -2021/06/02 | 149108 | systems/texlive/tlnet/archive/circuitikz.r59421.tar.xz -2021/06/02 | 14891 | macros/latex/base/ltnews28.tex -2021/06/02 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4 -2021/06/02 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4 -2021/06/02 | 147587 | macros/latex/base/ltnews12.pdf -2021/06/02 | 1468 | systems/texlive/tlnet/archive/hvarabic.r59423.tar.xz -2021/06/02 | 1467 | graphics/circuit_macros/examples/Diodes.m4 -2021/06/02 | 1467 | graphics/circuit_macros/doc/DiodesMan.m4 -2021/06/02 | 146533 | macros/latex/base/ltnews16.pdf -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 | 144 | graphics/circuit_macros/doc/Thermal.m4 -2021/06/02 | 1444 | graphics/circuit_macros/examples/svg/ThreeSVG.m4 -2021/06/02 | 1443 | graphics/circuit_macros/examples/Resolver.m4 -2021/06/02 | 14421 | macros/latex/base/lppl-1-2.txt -2021/06/02 | 143686 | macros/latex/base/ltnews04.pdf -2021/06/02 | 14341 | macros/latex/base/lppl-1-1.txt -2021/06/02 | 1433 | graphics/circuit_macros/examples/Opamp.m4 -2021/06/02 | 1433 | graphics/circuit_macros/doc/OpampMan.m4 -2021/06/02 | 1431 | graphics/circuit_macros/examples/svg/RelaySVG.m4 -2021/06/02 | 1429 | graphics/circuit_macros/examples/svg/DiodesSVG.m4 -2021/06/02 | 142909 | macros/latex/base/ltnews06.pdf -2021/06/02 | 14287 | graphics/circuit_macros/darrow.m4 -2021/06/02 | 142843 | macros/latex/base/ltcmd.dtx -2021/06/02 | 1419 | graphics/circuit_macros/examples/person.m4 -2021/06/02 | 141843 | graphics/circuit_macros/doc/body.tex -2021/06/02 | 1406 | graphics/circuit_macros/examples/ShiftR.m4 -2021/06/02 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4 -2021/06/02 | 1403 | graphics/circuit_macros/examples/svg/MultiplexerSVG.m4 -2021/06/02 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4 -2021/06/02 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4 -2021/06/02 | 13920 | macros/latex/base/ltexpl.dtx -2021/06/02 | 13864 | macros/latex/base/ltvers.dtx -2021/06/02 | 138442 | macros/luatex/latex/lua-typo/doc/lua-typo.pdf -2021/06/02 | 13833 | graphics/circuit_macros/doc/Contact.tex -2021/06/02 | 138044 | macros/latex/base/ltnews07.pdf -2021/06/02 | 137 | graphics/circuit_macros/doc/opampexbody.m4 -2021/06/02 | 1373 | graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4 -2021/06/02 | 136576 | macros/latex/base/ltclass.dtx -2021/06/02 | 1358 | graphics/circuit_macros/examples/Crossbar.m4 -2021/06/02 | 1343 | graphics/circuit_macros/examples/svg/InductorsSVG.m4 -2021/06/02 | 1342 | graphics/circuit_macros/examples/Inductors.m4 -2021/06/02 | 1342 | graphics/circuit_macros/doc/InductorsMan.m4 -2021/06/02 | 1341 | macros/latex/base/ltnews18.tex -2021/06/02 | 13330 | graphics/circuit_macros/examples/Heathkit.m4 -2021/06/02 | 1331 | graphics/circuit_macros/examples/svg/SierpinskiSVG.m4 -2021/06/02 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4 -2021/06/02 | 13301 | macros/latex/base/proc.dtx -2021/06/02 | 1329 | graphics/circuit_macros/doc/currents.m4 -2021/06/02 | 13264 | graphics/circuit_macros/examples/Tubediags.m4 -2021/06/02 | 132373 | macros/latex/base/lppl.pdf -2021/06/02 | 131 | graphics/circuit_macros/doc/Axes.m4 -2021/06/02 | 1316472 | macros/latex/base/encguide.pdf -2021/06/02 | 1313 | graphics/circuit_macros/examples/svg/ShiftRSVG.m4 -2021/06/02 | 130 | graphics/circuit_macros/doc/bitrbody.m4 -2021/06/02 | 130447 | macros/latex/base/ltnews15.pdf -2021/06/02 | 12 | graphics/circuit_macros/doc/Version.tex -2021/06/02 | 12946 | macros/latex/base/manual.err -2021/06/02 | 1291 | graphics/circuit_macros/doc/ConfigC.m4 -2021/06/02 | 129032 | macros/latex/base/ltnews09.pdf -2021/06/02 | 1287 | graphics/circuit_macros/examples/Three.m4 -2021/06/02 | 12856 | graphics/circuit_macros/CHANGES -2021/06/02 | 1279 | macros/latex/base/legal.txt -2021/06/02 | 12765 | graphics/circuit_macros/lib3D.m4 -2021/06/02 | 12711 | graphics/circuit_macros/examples/svg/HeathkitSVG.m4 -2021/06/02 | 1265 | graphics/circuit_macros/examples/svg/HeadersSVG.m4 -2021/06/02 | 1259 | graphics/circuit_macros/examples/Relay.m4 -2021/06/02 | 1259 | graphics/circuit_macros/doc/RelayMan.m4 -2021/06/02 | 1257 | graphics/circuit_macros/doc/ConfigB.m4 -2021/06/02 | 12520 | macros/latex/base/testpage.tex -2021/06/02 | 12478 | graphics/circuit_macros/examples/svg/TubediagsSVG.m4 -2021/06/02 | 1238 | graphics/circuit_macros/examples/svg/NportSVG.m4 -2021/06/02 | 1230 | graphics/circuit_macros/examples/Antennas.m4 -2021/06/02 | 1230 | graphics/circuit_macros/doc/AntennasMan.m4 -2021/06/02 | 1229 | graphics/circuit_macros/doc/fbfilter.m4 -2021/06/02 | 12224 | macros/latex/base/ltnews24.tex -2021/06/02 | 12119 | macros/latex/base/tulm.fdd -2021/06/02 | 1209 | graphics/circuit_macros/examples/svg/ChipsSVG.m4 -2021/06/02 | 12050 | graphics/circuit_macros/doc/Diodes.tex -2021/06/02 | 1204 | graphics/circuit_macros/examples/svg/ex17SVG.m4 -2021/06/02 | 12006 | graphics/circuit_macros/doc/Jack.tex -2021/06/02 | 11 | graphics/circuit_macros/doc/test.tex -2021/06/02 | 1185 | graphics/circuit_macros/boxdims.sty -2021/06/02 | 1181300 | systems/win32/w32tex/extractpdfmark-w32.tar.xz -2021/06/02 | 1175 | graphics/circuit_macros/examples/Chips.m4 -2021/06/02 | 1174 | graphics/circuit_macros/examples/PPA.m4 -2021/06/02 | 11593 | graphics/circuit_macros/examples/svg/icsSVG.m4 -2021/06/02 | 11590 | macros/latex/base/ltpage.dtx -2021/06/02 | 1157 | graphics/circuit_macros/examples/svg/NPDTSVG.m4 -2021/06/02 | 11556 | graphics/circuit_macros/svg.m4 -2021/06/02 | 1151 | graphics/circuit_macros/doc/Darlington.m4 -2021/06/02 | 11426 | graphics/circuit_macros/examples/ics.m4 -2021/06/02 | 1132 | graphics/circuit_macros/examples/Headers.m4 -2021/06/02 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4 -2021/06/02 | 1128 | graphics/circuit_macros/examples/NPDT.m4 -2021/06/02 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4 -2021/06/02 | 11270 | graphics/circuit_macros/examples/FlowchartDefs.m4 -2021/06/02 | 1126 | graphics/circuit_macros/examples/ex17.m4 -2021/06/02 | 1120 | graphics/circuit_macros/doc/ConfigA.m4 -2021/06/02 | 111955 | macros/latex/base/ltnews11.pdf -2021/06/02 | 1114 | graphics/circuit_macros/mfpic.m4 -2021/06/02 | 1100 | graphics/circuit_macros/examples/ex02.m4 -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 | 10871 | macros/latex/base/manifest.txt -2021/06/02 | 1086052 | systems/win32/w32tex/win64/extractpdfmark-w64.tar.xz -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 -2021/06/02 | 1074 | graphics/circuit_macros/doc/bistableMan.m4 -2021/06/02 | 1074364 | macros/latex/base/ltnews.pdf -2021/06/02 | 1070 | graphics/circuit_macros/examples/svg/EmarrowsSVG.m4 -2021/06/02 | 10697 | macros/latex/base/ltnews26.tex -2021/06/02 | 106908 | macros/latex/base/inputenc.dtx -2021/06/02 | 10687 | macros/latex/base/ltnews23.tex -2021/06/02 | 10668 | macros/latex/base/ltnews22.tex -2021/06/02 | 1065 | graphics/circuit_macros/examples/svg/ex18SVG.m4 -2021/06/02 | 10603 | macros/latex/base/makeindx.dtx -2021/06/02 | 105 | macros/latex/base/ltfilehook-code.tex -2021/06/02 | 10589 | graphics/circuit_macros/examples/svg/expSVG.m4 -2021/06/02 | 1055 | graphics/circuit_macros/examples/svg/TgateSVG.m4 -2021/06/02 | 1050 | graphics/circuit_macros/examples/svg/SVGconfig.m4 -2021/06/02 | 104 | macros/latex/base/ltshipout-code.tex -2021/06/02 | 1046 | graphics/circuit_macros/examples/Capacitors.m4 -2021/06/02 | 1040 | graphics/circuit_macros/examples/Nport.m4 -2021/06/02 | 1040 | graphics/circuit_macros/doc/NportMan.m4 -2021/06/02 | 10401 | graphics/circuit_macros/doc/Variable.tex -2021/06/02 | 103 | macros/latex/base/ltcmdhooks-code.tex -2021/06/02 | 1039 | graphics/circuit_macros/examples/chaos.m4 -2021/06/02 | 10375 | macros/latex/base/ltfsscmp.dtx -2021/06/02 | 1034 | graphics/circuit_macros/examples/svg/OpampSVG.m4 -2021/06/02 | 102 | macros/latex/base/lthooks-code.tex -2021/06/02 | 1029 | graphics/circuit_macros/xfig.m4 -2021/06/02 | 1029068 | macros/latex/base/lthooks-code.pdf -2021/06/02 | 1024 | graphics/circuit_macros/examples/Btree.m4 -2021/06/02 | 1022 | graphics/circuit_macros/examples/Tgate.m4 -2021/06/02 | 1022 | graphics/circuit_macros/doc/TgateMan.m4 -2021/06/02 | 1019 | graphics/circuit_macros/gpic.m4 -2021/06/02 | 10193 | graphics/circuit_macros/examples/svg/paletteSVG.m4 -2021/06/02 | 10164 | graphics/circuit_macros/doc/Audio.tex -2021/06/02 | 10105 | macros/latex/base/webcomp.err -2021/06/02 | 1003 | graphics/circuit_macros/examples/ex15.m4 diff --git a/fonts/utilities/jfmutil/LICENSE b/fonts/utilities/jfmutil/LICENSE index 7f5fde238b..ead3a3702e 100644 --- a/fonts/utilities/jfmutil/LICENSE +++ b/fonts/utilities/jfmutil/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2008-2020 Takayuki YATO (aka. "ZR") +Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR") Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/fonts/utilities/jfmutil/README-ja.md b/fonts/utilities/jfmutil/README-ja.md index 273fe739fa..de2e7a8831 100644 --- a/fonts/utilities/jfmutil/README-ja.md +++ b/fonts/utilities/jfmutil/README-ja.md @@ -466,6 +466,10 @@ upTeX 標準の `upjpnrm-h.vf` の場合、以下の出力になる: 更新履歴 -------- + * Version 1.3.2 〈2021/05/29〉 + - ZRTeXtor 1.8.0 版に同期。変更点は: + + charpacket のない VF を許容する。 + * Version 1.3.1 〈2020/05/04〉 - `jodel` を jodhminrn フォントに対応させる。 diff --git a/fonts/utilities/jfmutil/README.md b/fonts/utilities/jfmutil/README.md index 8b259a100c..cf40599168 100644 --- a/fonts/utilities/jfmutil/README.md +++ b/fonts/utilities/jfmutil/README.md @@ -1,3 +1,4 @@ + jfmutil ======= @@ -85,6 +86,10 @@ Please refer to README-ja.md (in Japanese) for detail. Revision History ---------------- + * Version 1.3.2 〈2021/05/29〉 + - Use ZRTeXtor v1.8.0. The changes are: + + Allow VFs with no charpackets. + * Version 1.3.1 〈2020/05/04〉 - Now `jodel` uses VF of jodhminrn family. diff --git a/fonts/utilities/jfmutil/jfmutil.pl b/fonts/utilities/jfmutil/jfmutil.pl index d527eddfdb..c1fe8ca727 100644 --- a/fonts/utilities/jfmutil/jfmutil.pl +++ b/fonts/utilities/jfmutil/jfmutil.pl @@ -12,8 +12,8 @@ use strict; #------------------------------------------------- ZRTeXtor module package ZRTeXtor; -our $VERSION = 1.007_00; -our $mod_date = "2019/09/02"; +our $VERSION = 1.008_00; +our $mod_date = "2021/05/29"; use Encode qw(encode decode); # Here follows excerpt from ZRTeXtor.pm @@ -1373,7 +1373,7 @@ sub vf_parse pl_set_value($pe->[7], 1, $fs[4]); pl_set_value($pe, 1, unpack_num($fs[1])); if ($fs[5] eq '') { splice(@$pe, 3, 1); } - $stg = 1; push(@$pl, $pe); + $stg = 2; push(@$pl, $pe); } elsif ($stg == 2 && $t == 248) { # post (($u = substr($dat, $pos, $t)) =~ /^\xf8+$/) or return vf_synerror("in postamble"); @@ -2781,8 +2781,8 @@ package main; #================================================= BEGIN use Encode qw(encode decode); my $prog_name = 'jfmutil'; -my $version = '1.3.1'; -my $mod_date = '2020/05/04'; +my $version = '1.3.2'; +my $mod_date = '2021/05/29'; #use Data::Dump 'dump'; # my ($sw_hex, $sw_uptool, $sw_noencout, $inenc, $exenc, $sw_lenient); diff --git a/graphics/minim-hatching/EUPL-1.2-EN.txt b/graphics/minim-hatching/EUPL-1.2-EN.txt new file mode 100644 index 0000000000..4153cd3775 --- /dev/null +++ b/graphics/minim-hatching/EUPL-1.2-EN.txt @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. diff --git a/graphics/minim-hatching/README b/graphics/minim-hatching/README new file mode 100644 index 0000000000..8765322681 --- /dev/null +++ b/graphics/minim-hatching/README @@ -0,0 +1,24 @@ +Version: 2021/1.0 + +SUMMARY + +This is a small proof-of-concept library of tiling patterns for use with the +minim-mp MetaPost processor. + + +DOCUMENTATION + +In order to obtain the typeset manual of this package, simply say: + + luatex -fmt minim-mp minim-hatching-doc.mp + + +COPYING + +(c) 2021 Esger Renkema + +These files may be distributed under the terms of the European Union Public +Licence (EUPL) version 1.2 or later. A copy can be obtained at: + +https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + diff --git a/graphics/minim-hatching/minim-hatching-doc.mp b/graphics/minim-hatching/minim-hatching-doc.mp new file mode 100644 index 0000000000..6dcee18e28 --- /dev/null +++ b/graphics/minim-hatching/minim-hatching-doc.mp @@ -0,0 +1,117 @@ + +%% This is the documentation of the minim-hatching pattern library. To typeset +%% this file, say: +%% +%% luatex --fmt=minim-mp minim-hatching-doc.mp + +input minim-hatching + +verbatimtex +% work around a bug: pdf.setnames will do nothing if this is not called at least once. +\pdfextension names{} % (TODO: remove after bug is fixed). +\font \titlf = {Latin Modern Roman Dunhill} at 12pt +\font \mainf = {Latin Modern Roman Unslanted} at 10pt \mainf +\parindent 0em \parskip 1em +\rightskip 0em plus 2em +\startmetadata + author {Esger Renkema} + title {minim-hatching} + date {2021-06-01} + version {2021/1.0} + keywords {MetaPost; tiling patterns} +stopmetadata +etex; + +def makepage = path page; page = unitsquare xscaled 210mm yscaled 297mm; + setbounds currentpicture to page shifted (-7.1cm, 4cm-297mm); enddef; +def xyscaled expr p = xscaled xpart p yscaled ypart p enddef; + +pickup pencircle scaled 0.4pt; save p; picture p; +save w, h, o; (w, h, o) = (2cm, 1cm, 3mm); + +def table(expr n)(text i)(text t) = + for d = t : x := 0; + for s = i : + if d = "=" : draw label(s) shifted (x+o, y+o); + else: filldraw unitsquare xscaled w yscaled h shifted (x,y) + withpattern(scantokens(s&" "&d&n)); fi + x := x + w; + endfor + patname(d, n) + y := y - h; + endfor enddef; +def double(expr l, r) = y:=y-h; + filldraw unitsquare xscaled w yscaled h shifted (0,y) + withpattern(scantokens(l)); + filldraw unitsquare xscaled w yscaled h shifted (w,y) + withpattern(scantokens(r)); + draw label(l) shifted(2w+o, y+o); + draw label(r) shifted(3w+o, y+o); enddef; + +vardef label(expr t)= + save p; picture p; p := scantokens ("btex "&t&"\strut etex;"); + setbounds p to unitsquare xyscaled urcorner p; p enddef; +def patname(expr n, s) = + if n <> "=" : draw label(n&s) shifted(x+o, y+o); fi enddef; +def titl(expr t) = + p := label("\titlf "&t); + draw p shifted ((-2o, y+o) - lrcorner p); enddef; + +beginfig(1) y := 0; + titl("Introduction"); + p := btex \vtop{\hsize=9cm\noindent + This is a small library of monochrome patterns for the minim-mp metapost processor. + Load the patterns by saying \par + \strut \qquad input minim-hatching;\par + at the top of your metapost file or instance.\par + I recommend printing this file, as patterns do not always display well on a computer screen. + } etex shifted (0,o); + draw p; y := y - ypart (urcorner p - lrcorner p) - h; + titl("Line patterns"); + table(" lines")("", "dense") + ("=", "horizontal", "vertical", "upward", "downward", "broken"); + titl("Zigzag patterns"); + table("zigzag")("horizontal", "vertical") + ("=", "" ); + titl("Grid patterns"); + table(" grid")("", "dense") + ("=", "", "upward", "downward", "diagonal", "horizontal", "vertical"); +makepage endfig; + +verbatimtex \embedfile + global file {EUPL-1.2-EN.txt} + desc {Licence for this package (EUPL).} + name LICENCE mimetype text/plain + relation Unspecified uncompressed etex; + +beginfig(1) y := 0; + titl("Dot patterns"); + table(" dots")("sparse", "", "dense") + ("=", "", "square", "diamond", "heavy", "square heavy", "diamond heavy"); + titl("Cloth patterns"); + double("knit", "purl") + double("weave", "dense weave") + double("stitches", "crosses") + double("chords", "tea cloth") + y:=y-h; titl("Circle patterns"); + table("")("", "small") + ("=", "circles", "square circles", "hexagons", "scales"); + titl("Stone patterns"); + double("bricks", "tiles"); + y:=y-2h; titl("Licence"); + p := btex + \vtop{\hsize=9cm\noindent + This package may be distributed under the terms of the European Union Public + Licence (EUPL) version 1.2 or later. An english version of this licence has + been included as an attachment to this file; copies in other languages can be + obtained at + $$\hbox to \hsize{\hss\hyperlink + url {https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12}\relax + https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\endlink\hss}$$ + } etex shifted (0,y+o); + draw p; +makepage endfig; + +bye; + + diff --git a/graphics/minim-hatching/minim-hatching-doc.pdf b/graphics/minim-hatching/minim-hatching-doc.pdf new file mode 100644 index 0000000000..333a6b074f --- /dev/null +++ b/graphics/minim-hatching/minim-hatching-doc.pdf @@ -0,0 +1,1402 @@ +%PDF-1.5 +% +1 0 obj +<< /Type/EmbeddedFile /Subtype/text#2Fplain /Length 13827 >> +stream + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. + +endstream +endobj +5 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 6 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +7 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 8 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +9 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 10 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +11 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 12 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +13 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 14 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +15 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 16 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +17 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 18 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +19 0 obj +<< /Subtype/Form /BBox [ 0 -1 100 1 ] /Resources 20 0 R /Filter /FlateDecode /Length 45 >> +stream +x+23P(24PU0Tb/.\C +endstream +endobj +21 0 obj +<< /Subtype/Form /BBox [ -2.199 -2.199 20.574 7.449 ] /Resources 22 0 R /Filter /FlateDecode /Length 68 >> +stream +x+23P(24PU0Tb/.\C=S #+\TTB +y| +endstream +endobj +23 0 obj +<< /Subtype/Form /BBox [ -2.199 -2.199 19.699 5.699 ] /Resources 24 0 R /Filter /FlateDecode /Length 62 >> +stream +x+23P(24PU0Tb/.\C=S #+\(3R &H6 ^ +endstream +endobj +25 0 obj +<< /Subtype/Form /BBox [ 0 0 5.25 5.25 ] /Resources 26 0 R /Filter /FlateDecode /Length 63 >> +stream +x+23P(24PU0Tb/.#=3#S\S= pUsA * ,:@.x= +endstream +endobj +27 0 obj +<< /Subtype/Form /BBox [ 0 0 3.5 3.5 ] /Resources 28 0 R /Filter /FlateDecode /Length 61 >> +stream +x+23P(24PU0Tb/.C=sS\c=S3+ ,b3@j@ҁ\[ +endstream +endobj +29 0 obj +<< /Subtype/Form /BBox [ 0 0 5.25 5.25 ] /Resources 30 0 R /Filter /FlateDecode /Length 63 >> +stream +x+23P(24PU0Tb/.#=3#S\S= pUsA * ,:@.x= +endstream +endobj +31 0 obj +<< /Subtype/Form /BBox [ 0 0 3.5 3.5 ] /Resources 32 0 R /Filter /FlateDecode /Length 61 >> +stream +x+23P(24PU0Tb/.C=sS\c=S3+ ,b3@j@ҁ\[ +endstream +endobj +33 0 obj +<< /Subtype/Form /BBox [ 0 0 5.25 5.25 ] /Resources 34 0 R /Filter /FlateDecode /Length 63 >> +stream +x+23P(24PU0Tb/.#=3#S\S= pUsA * ,:@.x= +endstream +endobj +35 0 obj +<< /Subtype/Form /BBox [ 0 0 3.5 3.5 ] /Resources 36 0 R /Filter /FlateDecode /Length 61 >> +stream +x+23P(24PU0Tb/.C=sS\c=S3+ ,b3@j@ҁ\[ +endstream +endobj +37 0 obj +<< /Subtype/Form /BBox [ 0 0 5.25 5.25 ] /Resources 38 0 R /Filter /FlateDecode /Length 63 >> +stream +x+23P(24PU0Tb/.#=3#S\S= pUsA * ,:@.x= +endstream +endobj +39 0 obj +<< /Subtype/Form /BBox [ 0 0 3.5 3.5 ] /Resources 40 0 R /Filter /FlateDecode /Length 61 >> +stream +x+23P(24PU0Tb/.C=sS\c=S3+ ,b3@j@ҁ\[ +endstream +endobj +41 0 obj +<< /Subtype/Form /BBox [ 0 0 5.25 5.25 ] /Resources 42 0 R /Filter /FlateDecode /Length 63 >> +stream +x+23P(24PU0Tb/.#=3#S\S= pUsA * ,:@.x= +endstream +endobj +43 0 obj +<< /Subtype/Form /BBox [ 0 0 5.25 5.25 ] /Resources 44 0 R /Filter /FlateDecode /Length 63 >> +stream +x+23P(24PU0Tb/.#=3#S\S= pUsA * ,:@.x= +endstream +endobj +45 0 obj +<< /Subtype/Form /BBox [ 0 0 3.5 3.5 ] /Resources 46 0 R /Filter /FlateDecode /Length 61 >> +stream +x+23P(24PU0Tb/.C=sS\c=S3+ ,b3@j@ҁ\[ +endstream +endobj +47 0 obj +<< /Subtype/Form /BBox [ 0 0 3.5 3.5 ] /Resources 48 0 R /Filter /FlateDecode /Length 61 >> +stream +x+23P(24PU0Tb/.C=sS\c=S3+ ,b3@j@ҁ\[ +endstream +endobj +49 0 obj +<< /Subtype/Form /BBox [ -1.699 -1.699 6.949 6.949 ] /Resources 50 0 R /Filter /FlateDecode /Length 84 >> +stream +x+23P(24PU0Tb/.]C=S\ W13IÙ(*M:s Ir\V"@.; +endstream +endobj +51 0 obj +<< /Subtype/Form /BBox [ -3.199 -3.199 8.449 8.449 ] /Resources 52 0 R /Filter /FlateDecode /Length 80 >> +stream +x+23P(24PU0Tb/.]c\c`.)P +@5%- Ir#f0? + +endstream +endobj +53 0 obj +<< /Subtype/Form /BBox [ -1.699 -1.699 5.199 5.199 ] /Resources 54 0 R /Filter /FlateDecode /Length 76 >> +stream +x+23P(24PU0Tb/.]C=S\ W1X(F@M +@E(!:' +endstream +endobj +55 0 obj +<< /Subtype/Form /BBox [ 0 -0.875 10.5 4.375 ] /Resources 56 0 R /Filter /FlateDecode /Length 58 >> +stream +x+23P(24PU0Tb/.\S=#Sc=SC e +H +endstream +endobj +57 0 obj +<< /Subtype/Form /BBox [ -0.875 0 4.375 10.5 ] /Resources 58 0 R /Filter /FlateDecode /Length 57 >> +stream +x+23P(24PU0Tb/.\c=SS=#S + +z +H +endstream +endobj +59 0 obj +<< /Subtype/Form /BBox [ 0 0 5.25 5.25 ] /Resources 60 0 R /Filter /FlateDecode /Length 62 >> +stream +x+23P(24PU0Tb/.c=#S`g!dW0\ TD "Rk= +endstream +endobj +61 0 obj +<< /Subtype/Form /BBox [ -0.199 -0.199 15.551 10.301 ] /Resources 62 0 R /Filter /FlateDecode /Length 107 >> +stream +x] 0EL +&w0IO/E`-/BIR*(Ji`1~?;`Ya\P𰞁QW{r[m#_ng$ +endstream +endobj +63 0 obj +<< /Subtype/Form /BBox [ -0.199 -0.199 10.301 10.301 ] /Resources 64 0 R /Filter /FlateDecode /Length 149 >> +stream +xڭP1 +0 @T!t߯ЩI'BN]׮j/|d2E*@{&y> +stream +x=1 +A {BX8t+R B#+kaxe靖/G@;{Zx㺑 -\evJzc +endstream +endobj +67 0 obj +<< /Subtype/Form /BBox [ -0.492 -0.492 6.398 6.398 ] /Resources 68 0 R /Filter /FlateDecode /Length 107 >> +stream +x+2г0Q(24PU0Tb/.c=Kc  +k2P0JH4aC=K3K" 鄱t5f'D, ݦzf`4DIr2 +endstream +endobj +69 0 obj +<< /Subtype/Form /BBox [ -4.137 -0.199 4.137 8.074 ] /Resources 70 0 R /Filter /FlateDecode /Length 101 >> +stream +xM; +@ Db.`H XGNfAd)I8ΆTBqx.Oq[4EʇK;(%LCJ06:4) +endstream +endobj +71 0 obj +<< /Subtype/Form /BBox [ -0.199 -2.824 12.012 8.074 ] /Resources 72 0 R /Filter /FlateDecode /Length 135 >> +stream +x= 0 D{Mq @>+pdw]!"9w|'OR {g3;(vTJdzCtqX7&JKά!Vvha R\Eٯ6#> ++ +endstream +endobj +73 0 obj +<< /Subtype/Form /BBox [ -0.199 -0.199 11.613 13.441 ] /Resources 74 0 R /Filter /FlateDecode /Length 92 >> +stream +xM 0 D{OqXN b  +*RWӻ;HXpRH");:%2NH9O4T:C-_[ȽÅ.0 +endstream +endobj +75 0 obj +<< /Subtype/Form /BBox [ -0.199 -0.199 7.676 8.894 ] /Resources 76 0 R /Filter /FlateDecode /Length 93 >> +stream +xMQ +0 C{Z?[[~Bs] +v(F=nt,59'$P6Y4Vi" +endstream +endobj +77 0 obj +<< /Subtype/Form /BBox [ -7.875 -7.875 7.875 7.875 ] /Resources 78 0 R /Filter /FlateDecode /Length 133 >> +stream +x]A ~~`ڐ/D!oV~(sx?]2~<%-fx*8RՏ%bYSt޽Jпs +%Ǡ%q2XM߬x1WNA +endstream +endobj +79 0 obj +<< /Subtype/Form /BBox [ -5.25 -5.25 5.25 5.25 ] /Resources 80 0 R /Filter /FlateDecode /Length 132 >> +stream +x]A D=\D 'a\x} B]Pyׄǎ_~MN*9sBpQ"5U~*A<<٢xVpzʌ;>,n݌|xfG7 A +endstream +endobj +81 0 obj +<< /Subtype/Form /BBox [ -4.137 -4.137 10.957 8.074 ] /Resources 82 0 R /Filter /FlateDecode /Length 248 >> +stream +x]Q;nD1} +. ]!Ru/z`" +)7$+0 E%3dUc3^Sx?{?Rxw=.kAzsL z7}h8?(z1Ǟ/> +stream +x]P;n1} +.`d +R EzE"W+0 I;9 IB}5 +j5r'T^׬}^{?wi<h̀?hzQ?F>gu"dS֮ܵsH9w1*hKcXxX/m2c4<@@X^# XernUޭ806=XhMcUۏs_%| +endstream +endobj +85 0 obj +<< /Subtype/Form /BBox [ -4.137 -4.137 8.074 4.137 ] /Resources 86 0 R /Filter /FlateDecode /Length 156 >> +stream +x]K! HPt+45EW~6v!70IS@dcė&'z"qWV`HK52Xtm䏷-`O+$&Ȕc}ڒXmwmԽLMTSZuBFC +endstream +endobj +87 0 obj +<< /Subtype/Form /BBox [ -2.824 -2.824 5.449 2.824 ] /Resources 88 0 R /Filter /FlateDecode /Length 157 >> +stream +x]A!E HT +MhzwMfU_tPx$iq1"ܜOȩ@L,<^yV +}VZNa?.fwϵ f(ItRUu⨺ݗwg +4QEɘ[\Q +=dJSp_[!B +endstream +endobj +89 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 7.848 5.629 ] /Resources 90 0 R /Filter /FlateDecode /Length 61 >> +stream +x+234S(24PU0Tb/.\ Wegd`g`lEr8m +endstream +endobj +91 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 6.098 4.618 ] /Resources 92 0 R /Filter /FlateDecode /Length 59 >> +stream +x+234S(24PU0Tb/.\ Weg`g`dDAJ! +endstream +endobj +93 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 10.473 7.144 ] /Resources 94 0 R /Filter /FlateDecode /Length 62 >> +stream +x+234S(24PU0Tb/.\ Wegan`gjbF恔rZ[% +endstream +endobj +95 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 2.598 2.598 ] /Resources 96 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234S(24PU0Tb/.\h +endstream +endobj +97 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 2.598 2.598 ] /Resources 98 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234S(24PU0Tb/.\h +endstream +endobj +99 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 2.598 2.598 ] /Resources 100 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234S(24PU0Tb/.\h +endstream +endobj +101 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 2.598 2.598 ] /Resources 102 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234S(24PU0Tb/.\h +endstream +endobj +103 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 2.598 2.598 ] /Resources 104 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234S(24PU0Tb/.\h +endstream +endobj +105 0 obj +<< /Subtype/Form /BBox [ -2.598 -2.598 2.598 2.598 ] /Resources 106 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234S(24PU0Tb/.\h +endstream +endobj +107 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 8.147 5.928 ] /Resources 108 0 R /Filter /FlateDecode /Length 61 >> +stream +x+234V(24PU0Tb/.\ Wegd`g`lEr9 +endstream +endobj +109 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 6.397 4.917 ] /Resources 110 0 R /Filter /FlateDecode /Length 59 >> +stream +x+234V(24PU0Tb/.\ Weg`g`dDAJ' +endstream +endobj +111 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 10.772 7.443 ] /Resources 112 0 R /Filter /FlateDecode /Length 62 >> +stream +x+234V(24PU0Tb/.\ Wegan`gjbF恔r[+ +endstream +endobj +113 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 2.897 2.897 ] /Resources 114 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234V(24PU0Tb/.\ +endstream +endobj +115 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 2.897 2.897 ] /Resources 116 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234V(24PU0Tb/.\ +endstream +endobj +117 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 2.897 2.897 ] /Resources 118 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234V(24PU0Tb/.\ +endstream +endobj +119 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 2.897 2.897 ] /Resources 120 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234V(24PU0Tb/.\ +endstream +endobj +121 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 2.897 2.897 ] /Resources 122 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234V(24PU0Tb/.\ +endstream +endobj +123 0 obj +<< /Subtype/Form /BBox [ -2.897 -2.897 2.897 2.897 ] /Resources 124 0 R /Filter /FlateDecode /Length 43 >> +stream +x+234V(24PU0Tb/.\ +endstream +endobj +129 0 obj +<< /Filter /FlateDecode /Length 1629 >> +stream +xڽۊ#7zku>0Ǚ.]$2 a.)TR[m32.WW*I-)!r̫PA?X&8 L2\L1dcH`ӓeRhjh~{H;?]?85'h8)?4*=::o_2Q"N9Cęn ~{X?ݜr ǠS lP: @)dq/8MǙ629kFsǢ$4FzVY.YjripSaDqL]x 3yv8iO=~C@|1Mi3'Q;:q|IElJJr,s>}-S8'p-MhQ4~;+U\k,f'Dŧ=Oc-S+iM@*GlilzscD=$:[Zx2{jdpTy ڍHs(--7j+VthmXeŽ$#WkS ܀zuCJZn V*ذ6倊ܥ]*a!@K xCFz 3UrI) ;-AS66Ap$ رd*X{UazJzŕɂrzbd#gu \j#pJRUUN^}oUwrN2_)!>+ W^aeO~z!\AZ{n#5[r@DNmWOAMךr +i qz9PȭT) 5y=2,,i}1 + {6Gk\r?;GT}Q Oy貈hz\[U5U\_rm~.Nt܏RxZe#qͮMiz9Iq.z4j Wx_{/mA) "d:5Uo@x=:1NX +Z8Up\ 'x[{/aKG* "ؑd:ٛ&V FXΙXaC :lZl VڥOU{!mo+<0[(2{+{MkzyIB|/R +/r*j˃@eŎ&#VkkhހzuCV~7Z4vb{۱~;ѯN +endstream +endobj +135 0 obj +<< /Filter /FlateDecode /Length 2094 >> +stream +xڽZj\7ߧ8/M@!Johԁ~#f#yϮػ3ҧ4V,;g"DYvXϙ=@FKx5EmpoQ j% {Q,sIW =l6AX` 56Yf نuI|2qG_Wߒ?(kwL#k +!Xq i5u`հ iYcW؃mk潘gRF3Ԗ`Ý}["- 4aQn8Bzi8tKPkLЮeb&!v\0BpI)&hKf5L:}K |pWf1c喎[+z-Mڄp趂ס+ *t;B,@\f-[gp- ߖk*A4a>wo]8rG#hUq +ASڣ6魪])UV9G#9"iiJ7GCv;UR`7[H>a2W ݪmrU$]o#hYjUzHX"q7ظ !ށlvyk7>YQh_K~E!qчDZ:T(c~dp$xʾh(tNO(fRq:=,/n>>4ӪZZN. ['vkSx!+C =ޭ; +"^RAwYxO!I`b=[,q2qKCJtNJhmޚ; `֨sg˴aՆ׫si;4ofuNA:l2q{/ tcl;dzSꑲ +$04KU}aI7Qa+xT0SMs,` +$]CEЬ(7tlTjݧɉ +:|J4nf؍3GkcӶgeoH̅{!Xq$=ZuQTNvK_y6Vep0"% iL SJoc[ =MJp躂Mty:L:/e@Ky5ש6j-dVAyYwTVBx7'zEre}𚸠!Ub␨,Qb1&QUv[8*CdZ ܽIU{W[?9Kڲ8HCءcߦ'Sg]MQ\ڰlC~Q(pH8qzW⬄*9:Ƈp1@J*.D5rZ)6ȨymI[N=^!>TqlhL`EYṂeq4>;KFKuUh3Yebb0OKl?EzՖ.h2W&_}}79jYc4iD^/EfRni=Dl8)V P!iV`eLUZt9CF@"NiDҋ^ݳLV|UR9_*gG"l.em}0k59 [52]EVŮ6iY +'6%NHmvT,4%=8/Â3 +endstream +endobj +137 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 5.250000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 0.86603 -0.5 0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 17 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +138 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 5.250000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 5 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +139 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ -2.598 -2.598 2.598 2.598 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 97 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +140 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 10.500000 /YStep 6.062160 +/BBox [ -2.897 -2.897 8.147 5.928 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 107 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +141 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 9.093290 /YStep 5.250000 +/BBox [ -2.824 -2.824 7.371 5.449 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 83 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +142 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 10.500000 /YStep 10.500000 +/BBox [ -1.699 -1.699 6.949 6.949 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 49 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +143 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 7.875000 +/BBox [ -4.137 -4.137 8.074 4.137 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 85 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +144 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ 0 0 3.5 3.5 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 39 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +145 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 7.875000 +/BBox [ -2.897 -2.897 2.897 2.897 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 123 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +146 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ -2.598 -2.598 2.598 2.598 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 101 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +147 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ 0 0 5.25 5.25 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 37 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +148 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ 0 0 3.5 3.5 ] +/Matrix [ 0.86603 -0.5 0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 35 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +149 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ -5.25 -5.25 5.25 5.25 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 79 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +150 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ 0 0 3.5 3.5 ] +/Matrix [ 0.86603 0.5 -0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 31 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +151 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 7.875000 +/BBox [ -7.875 -7.875 7.875 7.875 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 77 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +152 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 14.000000 /YStep 7.000000 +/BBox [ -2.199 -2.199 19.699 5.699 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 23 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +153 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ -2.897 -2.897 2.897 2.897 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 119 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +154 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ -2.897 -2.897 2.897 2.897 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 117 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +155 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 3.500000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 0 -1 1 0 0 0 ] /Resources << /XObject << /PTempl 11 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +156 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ -2.897 -2.897 2.897 2.897 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 113 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +157 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ -2.897 -2.897 2.897 2.897 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 115 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +158 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 15.750000 /YStep 9.093250 +/BBox [ -2.897 -2.897 10.772 7.443 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 111 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +159 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.000000 /YStep 4.041440 +/BBox [ -2.897 -2.897 6.397 4.917 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 109 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +160 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 13.639940 /YStep 7.875000 +/BBox [ -4.137 -4.137 10.957 8.074 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 81 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +161 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 7.875000 +/BBox [ -2.598 -2.598 2.598 2.598 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 105 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +162 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 10.500000 /YStep 10.500000 +/BBox [ -0.199 -0.199 15.551 10.301 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 61 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +163 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 7.875000 +/BBox [ -2.598 -2.598 2.598 2.598 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 103 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +164 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 5.250000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 0.86603 0.5 -0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 13 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +165 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ 0 0 5.25 5.25 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 25 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +166 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 3.500000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 7 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +167 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ -2.598 -2.598 2.598 2.598 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 95 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +168 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 10.500000 /YStep 10.500000 +/BBox [ -0.199 -0.199 10.301 10.301 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 63 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +169 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 13.639900 +/BBox [ -0.199 -0.199 11.613 13.441 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 73 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +170 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ 0 0 5.25 5.25 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 59 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +171 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.000000 /YStep 7.000000 +/BBox [ -1.699 -1.699 5.199 5.199 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 53 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +172 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 5.250000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 0 -1 1 0 0 0 ] /Resources << /XObject << /PTempl 9 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +173 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ -2.824 -2.824 5.449 2.824 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 87 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +174 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 15.750000 /YStep 10.500000 +/BBox [ -2.199 -2.199 20.574 7.449 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 21 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +175 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 9.093200 +/BBox [ -0.199 -0.199 7.676 8.894 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 75 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +176 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ 0 0 3.5 3.5 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 27 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +177 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 3.500000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 0.86603 -0.5 0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 19 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +178 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ 0 0 5.25 5.25 ] +/Matrix [ 0.7071 -1.06067 0.7071 1.06067 0 0 ] /Resources << /XObject << /PTempl 43 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +179 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ 0 0 5.25 5.25 ] +/Matrix [ 1.06067 -0.7071 1.06067 0.7071 0 0 ] /Resources << /XObject << /PTempl 41 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +180 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ 0 0 5.25 5.25 ] +/Matrix [ 0.86603 0.5 -0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 29 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +181 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.000000 /YStep 4.041440 +/BBox [ -2.598 -2.598 6.098 4.618 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 91 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +182 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 10.500000 +/BBox [ -0.199 -2.824 12.012 8.074 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 71 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +183 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 5.250000 +/BBox [ -4.137 -0.199 4.137 8.074 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 69 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +184 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 7.875000 +/BBox [ -2.897 -2.897 2.897 2.897 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 121 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +185 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 14.700040 /YStep 4.200010 +/BBox [ -1.927 -11.999 8.227 2.899 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 65 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +186 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 15.750000 /YStep 9.093250 +/BBox [ -2.598 -2.598 10.473 7.144 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 93 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +187 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 10.500000 /YStep 10.500000 +/BBox [ -3.199 -3.199 8.449 8.449 ] +/Matrix [ 0.7071 -0.7071 0.7071 0.7071 0 0 ] /Resources << /XObject << /PTempl 51 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +188 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ 0 0 3.5 3.5 ] +/Matrix [ 0.7071 -1.06067 0.7071 1.06067 0 0 ] /Resources << /XObject << /PTempl 47 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +189 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 10.500000 /YStep 6.062160 +/BBox [ -2.598 -2.598 7.848 5.629 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 89 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +190 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ -2.598 -2.598 2.598 2.598 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 99 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +191 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 7.875000 /YStep 7.875000 +/BBox [ -0.492 -0.492 6.398 6.398 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 67 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +192 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 10.500000 +/BBox [ -0.875 0 4.375 10.5 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 57 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +193 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 5.250000 /YStep 5.250000 +/BBox [ 0 0 5.25 5.25 ] +/Matrix [ 0.86603 -0.5 0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 33 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +194 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 10.500000 /YStep 5.250000 +/BBox [ 0 -0.875 10.5 4.375 ] +/Matrix [ 1 0 0 1 0 0 ] /Resources << /XObject << /PTempl 55 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +195 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 3.500000 /YStep 3.500000 +/BBox [ 0 0 3.5 3.5 ] +/Matrix [ 1.06067 -0.7071 1.06067 0.7071 0 0 ] /Resources << /XObject << /PTempl 45 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +196 0 obj +<< /PatternType 1 /PaintType 2 /TilingType 1 /XStep 100.000000 /YStep 3.500000 +/BBox [ 0 -1 100 1 ] +/Matrix [ 0.86603 0.5 -0.5 0.86603 0 0 ] /Resources << /XObject << /PTempl 15 0 R >> >> + /Filter /FlateDecode /Length 18 >> +stream +xI-QpU +endstream +endobj +199 0 obj +<< /Type/Metadata /Subtype/XML /Length 1304 >> +stream + + + + + + + Esger Renkema + + + + + 2021-06-01 + + + application/pdf + + + MetaPost + tiling patterns + + + + + minim-hatching + + + + + MetaPost, tiling patterns + + + 2021-06-01 + 2021-06-01 + + + 2021/1.0 + + + + +endstream +endobj +202 0 obj +<< /Filter /FlateDecode /Length 24 >> +stream +xc``M|=n;Z + +endstream +endobj +203 0 obj +<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5385 >> +stream +xڵY t[յ}0&$U肮ieLHByȳ-[5Ͳ[Icv扆4Jb6W楿JtkkIZo8}>CKp8W,Xpi,]%.Y[U"y);|q6"s;'#yX}c/`&ý 8oc +nE@u^]` !n' 889bΜZL)y`}LTdqQqL,,.,-,r=NiYQUDV"Y# WH +I\V_P\!Q)VI]]RDY&,\zdF)yXZJOHRL}| e}iL^:Q5zbF /[3Es/[=PQJJdr.JQdꢪ'wvJ(˕Zqq'1)1AO<@y̛>2[ $w +2Ǎ[~ '\QP"bOcPQmϬSsF -¸LFw5#nݭCvusKUfJt7 +7^p?A`eцmΦľpwa PwT뗒 fJ.o }r7<{=K!5 ܂st9y4Ss)'n9mYzHTD=\?HM.}T j{ڊ0{{ Β C XҲjIa>ϋ]g[feg$1~Dvj_kaw..$=՛yЀN< T*'4O_;Qqp3n$R*.8CA7\Dw{Qa"îcfhKTԑL#a;X c<kjsaȣ5"S`7t|=ӭ zS w%[5:Agu>k^58?'COw!qPmf^P4 C]ПB?/| IZp>Uv5A(TB'kW.v +L!Z>E7[U d3~`!j2o|W€?6)[V`EqN,>F^G4냼Y͕ H{TNº죀ʳY) +F iiKD:('. A *1!D9rRfHbtqkgBګa4xNS/FA3l@snn6Li}P c˽rmi5Lf/܋Ji"sPD%itq~hwC+)4 +>kZ;vtv!8W^;6v3))CwaMq${e?`rxsV!m@bKd9y<)K2FxշzOVKQJjL:R{j = .ѓ;ԠWcYbʖ9C6-86ʔFQPj]F׀!y0= 3KmQjR jت+Xbw?麰m0  +Ux{6 +p-qg:zPVU뎗xU8 KbCG,b!/#gCN (.m{!%d,6 t+1 4 U3$@R^KK3ōyQӂJ\@1qQ? kkZb7+ba +XcqN=( +c1/Q ϡ ג;SGײ4&ySt*8eܜ9X M8M7 O0WdȄ[2h\e +v$գeu?nTVըen};]̇3'C~+ŧւ) +v +~ٛr 1𓦃A2P^ew./\`63~=8tJPSV4rTu|x8{~8Q C7t=gӰʹlNƲj"[&OkߚT?(xyAuitA@p@G{^+P= lV([kZ 35?\n6:KXA;hmi3cN8Ha|9  +Ff_aR Obn cFʭrF>]|0y_%O϶}{]:/P(6cT3by_;JkQr곦Gs ڲyu]'E@fuDnjc/k:Yu`x:M<:|w>J퐮uK[W)v+.YFSfrj9kqbO:\32z(`ibIm|A7&3 ~Md}0s*Í/+H$ҭAj`jjר ]>v^,wP;I緗k.wqj5x?6qMMg:zݝ ۚ8tcUVmCb4>G'_(XV ZZrJpd8~t~2{W$_ɬ-Lɸc=A*e^^hx5f',[I:nώc:P<=/KևV6ǔ$~ESyd{MVսhw/:?wۄ # #|_u9fd24ký_v,2m3a0 ! ?&&z3`"z %ĭ CGdłNA]=O5וssaie"&E:U,c-FWʯp;wYh5y>tr TF*駺D.tv M/2)XTQ[5>o2VޡdR,L^+XX&$}$m /?24=h@h CEaOS {kvvQ׳wï,k7ߺgڷ_>*x}z`sr|L+ߜ7޷} ~®dHD LY)x֢Y? +F +6*ONfK\/;Weo 3!-`ƺ"UK{7}! !{7YB͹A :}ށҰ謰l9 cx!-.lkTef&d9`EYek6kaaȱx=Ҿv*]3Iv]qяPAQ^`rRuMܐsN6@"7f/Bt9\ #-X/a ͙ +-9M|W領$Ա S&^eH-@S]M6Iy ) G;ޗ;e(Oi-{0 +H2w;1!1VN‹'rr)Zߖ$qKø~N + _8F wiԕ@nMtE"1<:oVPIU ;c_{zi*^x8Ԏ$9=}NF4pKGst[i{%愯bw 8\ؓw.eoލm N31h^߯? }cIGU#s@H€sl>L8^GBH%bG͏Lb{MDf&s|s~OfZy˽8/Z1{ksЏ/A<3߽2 +-ښfanbHi`CEU ͦj g]bsm{f%ԡkfJ/Of]s-`[-wd +_WF@T˂OSjH5|0Ow.႖̉E×>4f{;߫= Z/M%LP1]qY6yWC`x#{ n*~Fy~ʥOcϥ˰R*:k(PYN/^ӡ+v{#U!`z>? zw^m/y &Hl<+﷦Em +SƜuUV8ձTզ8S{pD2w>Xshe +O+evh.Sdc7B'@W]IՔjȯ^R Pcҙ4PW CHWzO,:\wntb?;Q`kXgfnqƎũz'AzAQPd]Z폶;RSP}ec n=W"@s=sP9etn+w&ٹ| P*e >nlk:;6Y=$VM Tڦ+Ta]{?7)0x$h!ԔoXV\W]W,^%_X71`kuh$Y?Tv=^tk.(xN<1>:-ww0)?F|mDx?qtz[ +CB')ݚc5,e #0xw}ۍx:rd9I)ٝ;;w!kjt*)ϲĩ#`(\h2 x(˘u-37POxMՌ7~pSӾ/`h6x +endstream +endobj +204 0 obj +<< /Filter /FlateDecode /Length 572 >> +stream +xڍ[o0+H!Ź +!(+md`#9~mZ$_䞳-u +/yF˺/Wa}d];x^Uݙ*}ICԿtGa=7_˶jtϹݺ̄[!%IjȢ{ιyE}ěfcJ흳#bVVE9ywm;ձS61ULtIR'6e95x0&k~!6Xf7qmŎ#X/&/HDԴte>Tic44?Iy- Pb"EBdZ:2:J"(dk$H,R% +9= 8Kh^ +> +stream +xc```0V0Ll`x` +endstream +endobj +209 0 obj +<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2797 >> +stream +x}W TW2 љ]|ۊ`@j! @"*G%~~֪S34o\縜a7cڤDVna7!ta6Nac rU(KL>qm/ C׃Y N!" =É }'F*)F'IcAM( /ZHC9ffJ<ĥzHDw42}W +Bd|mNO!>r"G. "4DE4Uf8hI 詳gAag (u}4ٰ39RME*hY.9xj<1} Co߂}O_Cu%Vn춞ڄtu%h7{F_k@ 'ڎO bjᶷj+j!ͪ @>%=Kʍ$24=BMa<;A*Wp}Iѱ '͙l!&0IGpP{Vu{o2M--E6dʳ*Vh¤:NK-_מ*tng^ñv`.cv̞xL9 6~BnbCE?9;EhiC;S'2wWoFmVgL8N6ʀ?D(@W#ȷ 7g F_xbxg"F2Z[nb8ܘ +Qq%Q'e4Ty񀜐D=Ê>Fp~QË *bx/}AX$&6-=KNvڴMv%#0=w"~Z|!S0:j9NF?7&pK-Fy +$AogG qċVX*lȋ \@ۈf`91} 9 ?jE6ZbF[b> BX4a \H>G܇$T(:RNe4Y|}|M;u>[Ά^\e=Ê[x +MG>177JrᄟAZTV9EQpP,,]H3k@a j RņKk DO}?AP5D+bҦ42E#nvC)L }rփλLMYi2u[C2=z+zχeһfZy=:M/הv\9#{x8-@ T9(b`H65OvZ)hΒ%޳*'}dEcd%â&,ל{dШrtq櫑(߂pmg</ 28 =ɧѻqRPkP[溎;ХhLf[fk^:He1<A SzƑVayӖ *KMGQN 46M~TCAfpǃ:=kPf'xUM&Y>?AC>ǡO|7=A޼p4^VˍXFnd/@3qE A.ڹi7ixo!V?8ʹw…AӐ'j pDp~8I1`.Utz8 7 ĎCq.ޖ/9}EB-{Dtqt(&%eV`>"+? o + -j.8r d@A,TmSe.,4[̅ef5wwbi[-G;| +endstream +endobj +210 0 obj +<< /Filter /FlateDecode /Length 475 >> +stream +xڍQ0)rmZkHAB]Tn&II%tCN?8~\ =RN AXm0kГiY+)c$F׿M+m~n +US ?c2\kRzՄ g!./НPďRb#ypDhmWNN NYc&gg,$2'7WCiZ +C^EhP7s MUcQgV"=iq4,)uSGEJ9ǎ25/r/G|'&k/n"Akn-6Ur[_hm`& +endstream +endobj +214 0 obj +<< /Trapped /False >> +endobj +3 0 obj +<< /Type /ObjStm /N 82 /First 646 /Filter /FlateDecode /Length 1752 >> +stream +xXnG}Wԣ4=}]dYtd (|ci6 A^ZZ'`!/էn]U'D |%(-Z+6V :VKǾTFMYK FURb*/ 2eتS^q8A-VX-Tbxm:@kxuxuZVg$s KDpV"z'p=.7@ƯS` Q@:Nu + +)A-B eU*AZ?c pT9u^Qк2T; h*^'*ZPIAB* 4ݫGA֐F +, ډ0`o\t -U"4x9M+K(1rhiKhF+ғモê)٬S9zsqvΧSQp˴;^WfvtFknۍM#?|'s:l]Oǫ/m_5\cj*u& ,e/nhapl٤6~ +N%hOg٠N՘SF04.%_+&̴615ٔE.?=:|KCa|n[}:^c3pr{Trpg*cS < !! +U=O?{6*WK8P+q?P88p}<&6ªx.(?Z~%ܧ7;,"}~cg5 ﻋ1w lL蝚6CA;-㢤_ +endstream +endobj +215 0 obj +<< /Type /XRef /Index [ 0 216 ] /Size 216 /W [ 1 2 1 ] /Root 213 0 R /Info 214 0 R /ID [ <43A5AF486BCB81A60EC998573D907A2D> <43A5AF486BCB81A60EC998573D907A2D> ] /Filter /FlateDecode /Length 585 >> +stream +xyLq׳r E#GHrU?*]tP9rarLΑk9qg,Yl_c|{JB'9L!v qQqM⏚R.]YovcVٝ` f j̞4{bM3rif_ҾH`2 cnٟs?p2?j1&'¼ s(aO7GP9( +sǘcXmea9E,bg\&PfNьbw=X^`FS=ɔ7c(?nNaE90stV63XUmƲڛққΜZbP3Jr%s]Y|Wk6km=b[/ֈ=bE)v{FbB)␛9.L)h8vX-N'S!t8%κ3s&q᫸$q9B\)Wĵۿo~~Pq', Dc[/E_%_ -Babel and hyphenation patterns for english, dumylang, nohyphenation, ge -rman, ngerman, french, loaded. -File: autodemo+.tex 2008/04/19 autoarea.sty's effect -(autodemo.tex -File: autodemo.tex 2008/04/19 common sample for autoarea.sty - ("C:\Programme\MiKTeX 2.7\tex\latex\base\article.cls" -Document Class: article 2005/09/16 v1.4f Standard LaTeX document class -("C:\Programme\MiKTeX 2.7\tex\latex\base\size12.clo" -File: size12.clo 2005/09/16 v1.4f Standard LaTeX file (size option) -) -\c@part=\count79 -\c@section=\count80 -\c@subsection=\count81 -\c@subsubsection=\count82 -\c@paragraph=\count83 -\c@subparagraph=\count84 -\c@figure=\count85 -\c@table=\count86 -\abovecaptionskip=\skip41 -\belowcaptionskip=\skip42 -\bibindent=\dimen102 -) -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\pictex.sty" -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\prepictex.tex") -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\pictex.tex") -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\postpictex.tex") -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\picmore.tex")) -("C:\Programme\MiKTeX 2.7\tex\latex\lipsum\lipsum.sty" -Package: lipsum 2005/01/26 v1.0 150 paragraphs of Lorem Ipsum dummy text -File: lipsum.dtx 2005/01/26 v1.0 150 paragraphs of Lorem Ipsum dummy text -\c@lips@count=\count103 -) (autoarea.sty -Package: autoarea 2008/05/07 automatic accounting for PiCTeX lines and arcs -) -No auxiliary output files. - -No file autodemo+.aux. -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <12> on input line 10. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <8> on input line 10. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <6> on input line 10. -[1 - -{C:/Dokumente und Einstellungen/akuehne/Lokale Einstellungen/Anwendungsdaten/Mi -KTeX/2.7/pdftex/config/pdftex.map}] ) ) -Here is how much of TeX's memory you used: - 1061 strings out of 95340 - 10992 string characters out of 1184281 - 171027 words of memory out of 1500000 - 4300 multiletter control sequences out of 110000 - 7336 words of font info for 26 fonts, out of 1200000 for 2000 - 14 hyphenation exceptions out of 8191 - 23i,4n,21p,256b,229s stack positions out of 5000i,500n,10000p,200000b,5000s - - -Output written on autodemo+.pdf (1 page, 24873 bytes). -PDF statistics: - 22 PDF objects out of 1000 (max. 8388607) - 0 named destinations out of 1000 (max. 131072) - 1 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/graphics/pictex/addon/autoarea/autodemo/autodemo-.log b/graphics/pictex/addon/autoarea/autodemo/autodemo-.log deleted file mode 100644 index 454cccbfff..0000000000 --- a/graphics/pictex/addon/autoarea/autodemo/autodemo-.log +++ /dev/null @@ -1,80 +0,0 @@ -This is pdfTeX, Version 3.141592-1.40.4 (MiKTeX 2.7) (preloaded format=pdflatex 2008.2.19) 7 MAY 2008 22:28 -entering extended mode -**autodemo-.tex -(autodemo-.tex -LaTeX2e <2005/12/01> -Babel and hyphenation patterns for english, dumylang, nohyphenation, ge -rman, ngerman, french, loaded. -File: autodemo-.tex 2008/04/19 what's missing without autoarea.sty -(autodemo.tex -File: autodemo.tex 2008/04/19 common sample for autoarea.sty - ("C:\Programme\MiKTeX 2.7\tex\latex\base\article.cls" -Document Class: article 2005/09/16 v1.4f Standard LaTeX document class -("C:\Programme\MiKTeX 2.7\tex\latex\base\size12.clo" -File: size12.clo 2005/09/16 v1.4f Standard LaTeX file (size option) -) -\c@part=\count79 -\c@section=\count80 -\c@subsection=\count81 -\c@subsubsection=\count82 -\c@paragraph=\count83 -\c@subparagraph=\count84 -\c@figure=\count85 -\c@table=\count86 -\abovecaptionskip=\skip41 -\belowcaptionskip=\skip42 -\bibindent=\dimen102 -) -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\pictex.sty" -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\prepictex.tex") -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\pictex.tex") -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\postpictex.tex") -("C:\Programme\MiKTeX 2.7\tex\generic\pictex\picmore.tex")) -("C:\Programme\MiKTeX 2.7\tex\latex\lipsum\lipsum.sty" -Package: lipsum 2005/01/26 v1.0 150 paragraphs of Lorem Ipsum dummy text -File: lipsum.dtx 2005/01/26 v1.0 150 paragraphs of Lorem Ipsum dummy text -\c@lips@count=\count103 -) -No auxiliary output files. - -No file autodemo-.aux. -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 8. -LaTeX Font Info: ... okay on input line 8. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <12> on input line 10. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <8> on input line 10. -LaTeX Font Info: External font `cmex10' loaded for size -(Font) <6> on input line 10. -[1 - -{C:/Dokumente und Einstellungen/akuehne/Lokale Einstellungen/Anwendungsdaten/Mi -KTeX/2.7/pdftex/config/pdftex.map}] ) ) -Here is how much of TeX's memory you used: - 1046 strings out of 95340 - 10812 string characters out of 1184281 - 171053 words of memory out of 1500000 - 4288 multiletter control sequences out of 110000 - 7336 words of font info for 26 fonts, out of 1200000 for 2000 - 14 hyphenation exceptions out of 8191 - 23i,4n,19p,256b,207s stack positions out of 5000i,500n,10000p,200000b,5000s - - -Output written on autodemo-.pdf (1 page, 25493 bytes). -PDF statistics: - 22 PDF objects out of 1000 (max. 8388607) - 0 named destinations out of 1000 (max. 131072) - 1 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/graphics/pictex/addon/picmore.tex b/graphics/pictex/addon/picmore.tex index b6cec46a3a..1bda81e6ae 100644 --- a/graphics/pictex/addon/picmore.tex +++ b/graphics/pictex/addon/picmore.tex @@ -1,76 +1,76 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% PiCTeX Erweiterungen von Andreas Schrell % -% Windhoevel 2 % -% 5600 Wuppertal 2 % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Version 1.0 29.10.1989 % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Befehle fr die Benutzer: -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \setsignal zur Benutzung wie \setlinear % -% \plot erzeugt danach Signalverlaeufe% -% fuer Impulsdiagramme. Es werden TeX-% -% Linien benutzt, daher schneller als % -% \plot mit \setlinear % -% Bsp: % -% \setsignal \plot 0 1 1 0 2 1 4 0 7 1 8 0 / % -% erzeugt % -% 0 1 2 3 4 5 6 7 8 % -% __ ___ _ % -% ! ! ! ! ! % -% !_! !_____! ! % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \setmsignal zur Benutzung wie \setlinear % -% \plot erzeugt danach Signalverlaeufe% -% fuer Impulsdiagramme. Es werden TeX-% -% Linien benutzt, daher schneller als % -% \plot mit \setlinear % -% Bsp: % -% \setmsignal \plot 0 1 1 2 2 4 3 6 0 7 1 1 % -% erzeugt % -% 0 1 2 3 4 5 6 7 8 % -% --- % -% ! ! % -% - ! % -% --! ! - % -% !___! % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\catcode`!=11 - -\def\setsignal{% - \let\!drawcurve=\!scurve} - -\def\!scurve #1 #2 {% - \edef\!hxS{#1}% - \edef\!hyS{#2}% - \!sjoin} - -\def\!sjoin#1 #2 {% - \putrule from {\!hxS} {\!hyS} to {#1} {\!hyS} - \putrule from {#1} {\!hyS} to {#1} {#2} - \edef\!hxS{#1}% - \edef\!hyS{#2}% - \!ifnextchar/{\!finish}{\!sjoin}} - - -\def\setmsignal{% - \let\!drawcurve=\!smcurve} - -\def\!smcurve #1 #2 #3 {% - \edef\!hxS{#2}% - \edef\!hyS{#3}% - \putrule from {#1} {\!hyS} to {\!hxS} {\!hyS} - \!smjoin} - -\def\!smjoin#1 #2 {% - \putrule from {\!hxS} {\!hyS} to {\!hxS} {#2} - \putrule from {\!hxS} {#2} to {#1} {#2} - \edef\!hxS{#1}% - \edef\!hyS{#2}% - \!ifnextchar/{\!finish}{\!smjoin}} - -\catcode`!=12 - +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PiCTeX Erweiterungen von Andreas Schrell % +% Windhoevel 2 % +% 5600 Wuppertal 2 % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Version 1.0 29.10.1989 % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Befehle fr die Benutzer: +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \setsignal zur Benutzung wie \setlinear % +% \plot erzeugt danach Signalverlaeufe% +% fuer Impulsdiagramme. Es werden TeX-% +% Linien benutzt, daher schneller als % +% \plot mit \setlinear % +% Bsp: % +% \setsignal \plot 0 1 1 0 2 1 4 0 7 1 8 0 / % +% erzeugt % +% 0 1 2 3 4 5 6 7 8 % +% __ ___ _ % +% ! ! ! ! ! % +% !_! !_____! ! % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \setmsignal zur Benutzung wie \setlinear % +% \plot erzeugt danach Signalverlaeufe% +% fuer Impulsdiagramme. Es werden TeX-% +% Linien benutzt, daher schneller als % +% \plot mit \setlinear % +% Bsp: % +% \setmsignal \plot 0 1 1 2 2 4 3 6 0 7 1 1 % +% erzeugt % +% 0 1 2 3 4 5 6 7 8 % +% --- % +% ! ! % +% - ! % +% --! ! - % +% !___! % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\catcode`!=11 + +\def\setsignal{% + \let\!drawcurve=\!scurve} + +\def\!scurve #1 #2 {% + \edef\!hxS{#1}% + \edef\!hyS{#2}% + \!sjoin} + +\def\!sjoin#1 #2 {% + \putrule from {\!hxS} {\!hyS} to {#1} {\!hyS} + \putrule from {#1} {\!hyS} to {#1} {#2} + \edef\!hxS{#1}% + \edef\!hyS{#2}% + \!ifnextchar/{\!finish}{\!sjoin}} + + +\def\setmsignal{% + \let\!drawcurve=\!smcurve} + +\def\!smcurve #1 #2 #3 {% + \edef\!hxS{#2}% + \edef\!hyS{#3}% + \putrule from {#1} {\!hyS} to {\!hxS} {\!hyS} + \!smjoin} + +\def\!smjoin#1 #2 {% + \putrule from {\!hxS} {\!hyS} to {\!hxS} {#2} + \putrule from {\!hxS} {#2} to {#1} {#2} + \edef\!hxS{#1}% + \edef\!hyS{#2}% + \!ifnextchar/{\!finish}{\!smjoin}} + +\catcode`!=12 + diff --git a/graphics/pictex/addon/pictex.sty b/graphics/pictex/addon/pictex.sty index d64c99790a..5e2f257c41 100644 --- a/graphics/pictex/addon/pictex.sty +++ b/graphics/pictex/addon/pictex.sty @@ -1,17 +1,17 @@ -\def\fileversion{1.0} -\def\filedate{1994/03/31} - -% PiCTeX als LaTeX-Style oder LaTeX2e-Package einladen. -% von Andreas Schrell - -\ifx\fiverm\undefined - \newfont\fiverm{cmr5} -\fi -\input prepictex -\input pictex -\input postpictex -\catcode`\@=11 -\@input{picmore.tex} -\@input{piccorr.sty} - -\endinput +\def\fileversion{1.0} +\def\filedate{1994/03/31} + +% PiCTeX als LaTeX-Style oder LaTeX2e-Package einladen. +% von Andreas Schrell + +\ifx\fiverm\undefined + \newfont\fiverm{cmr5} +\fi +\input prepictex +\input pictex +\input postpictex +\catcode`\@=11 +\@input{picmore.tex} +\@input{piccorr.sty} + +\endinput diff --git a/graphics/pictex/addon/pictexwd.sty b/graphics/pictex/addon/pictexwd.sty index 42edb401e0..76466de2b8 100644 --- a/graphics/pictex/addon/pictexwd.sty +++ b/graphics/pictex/addon/pictexwd.sty @@ -1,19 +1,19 @@ -\def\fileversion{1.0} -\def\filedate{1994/03/31} - -% PiCTeX als LaTeX-Style oder LaTeX2e-Package einladen. Allerdings -% wird eine Datei pictexwd.tex geladen, die weniger Dimensionsregister -% benutzt. -% -% Style von Andreas Schrell - -\ifx\fiverm\undefined - \newfont\fiverm{cmr5} -\fi -\input prepictex -\input pictexwd -\input postpictex -\catcode`\@=11 -\@input{picmore.tex} -\@input{piccorr.sty} -\endinput +\def\fileversion{1.0} +\def\filedate{1994/03/31} + +% PiCTeX als LaTeX-Style oder LaTeX2e-Package einladen. Allerdings +% wird eine Datei pictexwd.tex geladen, die weniger Dimensionsregister +% benutzt. +% +% Style von Andreas Schrell + +\ifx\fiverm\undefined + \newfont\fiverm{cmr5} +\fi +\input prepictex +\input pictexwd +\input postpictex +\catcode`\@=11 +\@input{picmore.tex} +\@input{piccorr.sty} +\endinput diff --git a/graphics/pictex/addon/pictexwd.tex b/graphics/pictex/addon/pictexwd.tex index 43141efe6b..f2caff17cb 100644 --- a/graphics/pictex/addon/pictexwd.tex +++ b/graphics/pictex/addon/pictexwd.tex @@ -1,3677 +1,3677 @@ -% G"andertes PiCTeX.TEX mit weniger Dimensionsregistern % -% von Andreas Schrell, ohne Gew"ahr!!!!!!! -% Version 0.0 vom 31.03.1994 -% FEHLERMELDUNGEN an Andreas.Schrell@RS.maus.de - -% This is PiCTeXWD, Version 1.1 9/21/87 - -% CAVEAT: The PiCTeX manual often has a more lucid explanation -% of any given topic than you will find in the internal documentation -% of the macros. - -% PiCTeX's commands can be classified into two groups: (1) public (or -% external), and (2) private (or internal). The public macros are -% discussed at length in the manual. The only discussion of the private -% macros is the internal documentation. The private macros all have -% names beginning with an exclamation point (!) of category code 11. -% Since in normal usage "!" has category code 12, these macros can't -% be accessed or modified by the general user. - -% The macros are organized into thematically related groups. For example, -% the macros dealing with dots & dashes are all in the DASHPATTERN group. -% The table below shows which macros are in which groups. The table -% covers all public macros, and many (but not all) of PiCTeX's upper level -% private macros. Following the table, the various groups are listed -% in the order in which they appear in the table. - -% *********************** TABLE OF GROUPS OF MACROS ********************** - -% HACKS: Utility macros -% \PiC -% \PiCTeX -% \placevalueinpts -% \!!loop -% \!cfor -% \!copylist -% \!ecfor -% \!etfor -% \!getnext -% \!getnextvalueof -% \!ifempty -% \!ifnextchar -% \!leftappend -% \!listaddon -% \!loop -% \!lop -% \!mlap -% \!not -% \!removept -% \!rightappend -% \!tfor -% \!vmlap -% \!wlet - -% ALLOCATION: Allocates registers - -% AREAS: Deals with plot areas -% \axis -% \grid -% \invisibleaxes -% \normalgraphs -% \plotheading -% \setplotarea -% \visibleaxes - -% ARROWS: Draws arrows -% \arrow -% \betweenarrows - -% BARS: Draws bars -% \putbar -% \setbars - -% BOXES: Draws rectangles -% \frame -% \putrectangle -% \rectangle -% \shaderectangleson -% \shaderectanglesoff - -% CURVES: Upper level plot commands -% \hshade -% \plot -% \sethistograms -% \setlinear -% \setquadratic -% \vshade - -% DASHPATTERNS: Sets up dash patterns -% \findlength -% \setdashes -% \setdashesnear -% \setdashpattern -% \setdots -% \setdotsnear -% \setsolid -% \!dashingoff -% \!dashingon - -% DIVISION: Does long division of dimension registers -% \Divide -% \!divide - -% ELLIPSES: Draws ellipses and circles -% \circulararc -% \ellipticalarc - -% RULES: Draws rules, i.e., horizontal & vertical lines -% \putrule -% \!putdashedhline -% \!putdashedvline -% \!puthline -% \!putsolidhline -% \!putsolidvline -% \!putvline - -% LINEAR ARC: Draws straight lines -- solid and dashed -% \inboundscheckoff -% \inboundscheckon -% \!advancedashing -% \!drawlinearsegment -% \!initinboundscheck -% \!linearsolid -% \!lineardashed -% \!ljoin -% \!plotifinbounds -% \!start - -% LOGTEN: Log_10 function -% \!logten - -% PICTURES: Basic setups for PiCtures; \put commands -% \accountingoff -% \accountingon -% \beginpicture -% \endpicture -% \endpicturesave -% \lines -% \multiput -% \put -% \setcoordinatemode -% \setcoordinatesystem -% \setdimensionmode -% \stack -% \Lines -% \Xdistance -% \Ydistance -% \!dimenput -% \!ifcoordmode -% \!ifdimenmode -% \!setcoordmode -% \!setdimenmode -% \!setputobject - -% PLOTTING: Things to do with plotting -% \dontsavelinesandcurves -% \replot -% \savelinesandcurves -% \setplotsymbol -% \writesavefile -% \!plot - -% PYTHAGORAS: Euclidean distance function -% \placehypotenuse -% \!Pythag - -% QUADRATIC ARC: Draws a quadratic arc -% \!qjoin - -% ROTATIONS: Handles rotations -% \startrotation -% \stoprotation -% \!rotateaboutpivot -% \!rotateonly - -% SHADING: Handles shading -% \setshadegrid -% \setshadesymbol -% \!lshade -% \!qshade -% \!starthshade -% \!startvshade - -% TICKS: Draws ticks on graphs -% \gridlines -% \loggedticks -% \nogridlines -% \ticksin -% \ticksout -% \unloggesticks - -% ***************** END OF TABLE OF GROUPS OF MACROS ******************** - - -\catcode`!=11 % ***** THIS MUST NEVER BE OMITTED -% ******************************* -% *** HACKS (Utility macros) *** -% ******************************* - -% ** User commands -% ** \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} -% ** \PiCTeX{\PiC\kern-.11em\TeX} -% ** \placevalueinpts of in {CONTROL SEQUENCE} - -% ** Internal commands -% ** \!ifnextchar{CHARACTER}{TRUE ACTION}{FALSE ACTION} -% ** \!tfor NAME := LIST \do {BODY} -% ** \!etfor NAME:= LIST \do {BODY} -% ** \!cfor NAME := LIST \do {BODY} -% ** \!ecfor NAME:= LIST \do {BODY} -% ** \!ifempty{MACRO}{TRUE ACTION}{FALSE ACTION} -% ** \!getnext\\ITEMfrom\LIST -% ** \!getnextvalueof\DIMEN\from\LIST -% ** \!copylist\LISTMACRO_A\to\LISTMACRO_B -% ** \!wlet\CONTROL_SEQUENCE_A=\CONTROL_SEQUENCE_B -% ** \!listaddon ITEM LIST -% ** \!rightappendITEM\withCS\to\LISTMACRO -% ** \!leftappendITEM\withCS\to\LISTMACRO -% ** \!lop\LISTMACRO\to\ITEM -% ** \!loop ... repeat -% ** \!!loop ... repeat -% ** \!removept{DIMENSION REGISTER}{CONTROL SEQUENCE} -% ** \!mlap{...} -% ** \!vmlap{...} -% ** \!not{TEK if-CONDITION} - -% ** First, here are the the PiCTeX logo, and the syllable PiC: -\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} -\def\PiCTeX{\PiC\kern-.11em\TeX} - -% ** The following macro expands to parameter #2 or parameter #3 according to -% ** whether the next non-blank character following the macro is or is not #1. -% ** Blanks following the macro are gobbled. -\def\!ifnextchar#1#2#3{% - \let\!testchar=#1% - \def\!first{#2}% - \def\!second{#3}% - \futurelet\!nextchar\!testnext} -\def\!testnext{% - \ifx \!nextchar \!spacetoken - \let\!next=\!skipspacetestagain - \else - \ifx \!nextchar \!testchar - \let\!next=\!first - \else - \let\!next=\!second - \fi - \fi - \!next} -\def\\{\!skipspacetestagain} - \expandafter\def\\ {\futurelet\!nextchar\!testnext} -\def\\{\let\!spacetoken= } \\ % ** set \spacetoken to a space token - - -% ** Borrow the "tfor" macro from Latex: -% ** \!tfor NAME := LIST \do {BODY} -% ** if, before expansion, LIST = T1 ... Tn, where each Ti is a token -% ** or {...}, then executes BODY n times, with NAME = Ti on the -% ** i-th iteration. Works for n=0. -\def\!tfor#1:=#2\do#3{% - \edef\!fortemp{#2}% - \ifx\!fortemp\!empty - \else - \!tforloop#2\!nil\!nil\!!#1{#3}% - \fi} -\def\!tforloop#1#2\!!#3#4{% - \def#3{#1}% - \ifx #3\!nnil - \let\!nextwhile=\!fornoop - \else - #4\relax - \let\!nextwhile=\!tforloop - \fi - \!nextwhile#2\!!#3{#4}} - - -% ** \!etfor NAME:= LIST\do {BODY} -% ** This is like \!cfor, but LIST is any balanced token list whose complete -% ** expansion has the form T1 ... Tn -\def\!etfor#1:=#2\do#3{% - \def\!!tfor{\!tfor#1:=}% - \edef\!!!tfor{#2}% - \expandafter\!!tfor\!!!tfor\do{#3}} - - -% ** modify the Latex \tfor (token-for) loop to a \cfor (comma-for) loop. -% ** \!cfor NAME := LIST \do {BODY} -% ** if, before expansion, LIST = a1,a2,...an, then executes BODY n times, -% ** with NAME = ai on the i-th iteration. Works for n=0. -\def\!cfor#1:=#2\do#3{% - \edef\!fortemp{#2}% - \ifx\!fortemp\!empty - \else - \!cforloop#2,\!nil,\!nil\!!#1{#3}% - \fi} -\def\!cforloop#1,#2\!!#3#4{% - \def#3{#1}% - \ifx #3\!nnil - \let\!nextwhile=\!fornoop - \else - #4\relax - \let\!nextwhile=\!cforloop - \fi - \!nextwhile#2\!!#3{#4}} - - -% ** \!ecfor NAME:= LIST\do {BODY} -% ** This is like \!cfor, but LIST is any balanced token list whose complete -% ** expansion has the form a1,a2,...,an. -\def\!ecfor#1:=#2\do#3{% - \def\!!cfor{\!cfor#1:=}% - \edef\!!!cfor{#2}% - \expandafter\!!cfor\!!!cfor\do{#3}} - - -\def\!empty{} -\def\!nnil{\!nil} -\def\!fornoop#1\!!#2#3{} - - -% ** \!ifempty{ARG}{TRUE ACTION}{FALSE ACTION} -\def\!ifempty#1#2#3{% - \edef\!emptyarg{#1}% - \ifx\!emptyarg\!empty - #2% - \else - #3% - \fi} - -% ** \!getnext\\ITEMfrom\LIST -% ** \LIST has the form \\{item1}\\{item2}\\{item3}...\\{itemk} -% ** This routine sets \ITEM to item1, and cycles \LIST to -% ** \\{item2}\\{item3}...\\{itemk}\\{item1} -\def\!getnext#1\from#2{% - \expandafter\!gnext#2\!#1#2}% -\def\!gnext\\#1#2\!#3#4{% - \def#3{#1}% - \def#4{#2\\{#1}}% - \ignorespaces} - - -% ** \!getnextvalueof\DIMEN\from\LIST -% ** Similar to !getnext. -% ** \LIST has the form \\{dimen1}\\{dimen2}\\{dimen3} ... -% ** \DIMEN is a dimension register -% ** Works also for counts -% -\def\!getnextvalueof#1\from#2{% - \expandafter\!gnextv#2\!#1#2}% -\def\!gnextv\\#1#2\!#3#4{% - #3=#1% - \def#4{#2\\{#1}}% - \ignorespaces} - - -% ** \!copylist\LISTMACROA\to\LISTMACROB -% ** makes the replacement text of LISTMACRO B identical to that of -% ** list macro A. -\def\!copylist#1\to#2{% - \expandafter\!!copylist#1\!#2} -\def\!!copylist#1\!#2{% - \def#2{#1}\ignorespaces} - - -% ** \!wlet\CSA=\CSB -% ** lets control sequence \CSB = control sequence \CSA, and writes a -% ** message to that effect in the log file using plain TEK's \wlog -\def\!wlet#1=#2{% - \let#1=#2 - \wlog{\string#1=\string#2}} - -% ** \!listaddon ITEM LIST -% ** LIST <-- LIST \\ ITEM -\def\!listaddon#1#2{% - \expandafter\!!listaddon#2\!{#1}#2} -\def\!!listaddon#1\!#2#3{% - \def#3{#1\\#2}} - -% ** \!rightappendITEM\to\LISTMACRO -% ** \LISTMACRO --> \LISTMACRO\\{ITEM} -%\def\!rightappend#1\to#2{\expandafter\!!rightappend#2\!{#1}#2} -%\def\!!rightappend#1\!#2#3{\def#3{#1\\{#2}}} - - -% ** \!rightappendITEM\withCS\to\LISTMACRO -% ** \LISTMACRO --> \LISTMACRO||CS||{ITEM} -\def\!rightappend#1\withCS#2\to#3{\expandafter\!!rightappend#3\!#2{#1}#3} -\def\!!rightappend#1\!#2#3#4{\def#4{#1#2{#3}}} - - -% ** \!leftappendITEM\withCS\to\LISTMACRO -% ** \LISTMACRO --> CS||{ITEM}||\LISTMACRO -\def\!leftappend#1\withCS#2\to#3{\expandafter\!!leftappend#3\!#2{#1}#3} -\def\!!leftappend#1\!#2#3#4{\def#4{#2{#3}#1}} - - -% ** \!lop\LISTMACRO\to\ITEM -% ** \\{item1}\\{item2}\\{item3} ... --> \\{item2}\\{item3} ... -% ** item1 --> \ITEM -\def\!lop#1\to#2{\expandafter\!!lop#1\!#1#2} -\def\!!lop\\#1#2\!#3#4{\def#4{#1}\def#3{#2}} - - -% ** \!placeNUMBER\of\LISTMACRO\in\ITEM -% ** the NUMBERth item of \LISTMACRO --> replacement text of \ITEM -%\def\!place#1\of#2\in#3{\def#3{\outofrange}% -%{\count0=#1\def\\##1{\advance\count0-1 \ifnum\count0=0 \gdef#3{##1}\fi}#2}} - - -% ** Following code converts a commalist to a list macro, with all items -% ** fully expanded. -%\!ecfor\item:=\commalist\do{\expandafter\!rightappend\item\to\list} - - -% ** \!loop ... repeat -% ** This is exactly like TEX's \loop ... repeat. It can be used in nesting -% ** two loops, without puting the inner one inside a group. -\def\!loop#1\repeat{\def\!body{#1}\!iterate} -\def\!iterate{\!body\let\!next=\!iterate\else\let\!next=\relax\fi\!next} - -% ** \!!loop ... repeat -% ** This is exactly like TEX's \loop ... repeat. It can be used in nesting -% ** two loops, without puting the inner one inside a group. -\def\!!loop#1\repeat{\def\!!body{#1}\!!iterate} -\def\!!iterate{\!!body\let\!!next=\!!iterate\else\let\!!next=\relax\fi\!!next} -% (\multiput uses \!!loop) - -% ** \!removept{DIMENREG}{\CS} -% ** Defines the control sequence CS to be the value (in points) in the -% ** dimension register DIMENREG (but without the "pt" TEK usually adds) -% ** E.g., after \dimen0=12.3pt \!removept\dimen0\A, \A expands to 12.3 -\def\!removept#1#2{\edef#2{\expandafter\!!removePT\the#1}} -{\catcode`p=12 \catcode`t=12 \gdef\!!removePT#1pt{#1}} - -% ** \pladevalueinpts of in {CONTROL SEQUENCE} -\def\placevalueinpts of <#1> in #2 {% - \!removept{#1}{#2}} - -% ** \!mlap{...} \!vmlap{...} -% ** Center ... in a box of width 0. -\def\!mlap#1{\hbox to 0pt{\hss#1\hss}} -\def\!vmlap#1{\vbox to 0pt{\vss#1\vss}} - -% ** \!not{TEK if-CONDITION} -% ** By a TEK if-CONDITION is meant something like -% ** \ifnum\N<0, or \ifdim\A>\B -% ** \!not produces an if-condition which is false if the original condition -% ** is true, and true if the original condition is false. -\def\!not#1{% - #1\relax - \!switchfalse - \else - \!switchtrue - \fi - \if!switch - \ignorespaces} - - -% ******************* -% *** ALLOCATIONS *** -% ******************* - -% This section allocates all the registers PiCTeX uses. Following -% each allocation is a string of the form ....N.D...L......... ; -% the various letters show which sections of PiCTeX make explicit -% reference to that register, according to the following code: - -% H Hacks -% A Areas -% W arroWs -% B Bars -% X boXes -% C Curves -% D Dashpattterns -% V diVision -% E Ellipses -% U rUles -% L Linear arc -% G loGten -% P Pictures -% O plOtting -% Y pYthagoras -% Q Quadratic arc -% R Rotations -% S Shading -% T Ticks - -% Turn off messages from TeX's allocation macros -\let\!!!wlog=\wlog % "\wlog" is defined in plain TeX -\def\wlog#1{} - -\newskip\headingtoplotskip %.A................. %-as-% -\newskip\linethickness %.A..X....U........T -\newskip\longticklength %.A................T %-as-% -\newskip\plotsymbolspacing %......D...L....Q... -\newskip\shortticklength %.A................T %-as-% -\newskip\stackleading %.A..........P...... %-as-% -\newskip\tickstovaluesleading %.A................T %-as-% -\newskip\totalarclength %......D...L....Q... -\newskip\valuestolabelleading %.A................. %-as-% - -\newbox\!boxA %.AW...............T -\newbox\!boxB %..W................ -\newbox\!picbox %............P...... -\newbox\!plotsymbol %..........L..O..... -\newbox\!putobject %............PO...S. -\newbox\!shadesymbol %.................S. - -\newcount\!countA %.A....D..UL....Q.ST -\newcount\!countB %......D..U.....Q.ST -\newcount\!countC %...............Q..T -\newcount\!countD %................... -\newcount\!countE %.............O....T -\newcount\!countF %.............O....T -\newcount\!countG %..................T -\newcount\!fiftypt %.........U......... -\newcount\!intervalno %..........L....Q... -\newcount\!npoints %..........L........ -\newcount\!nsegments %.........U......... -\newcount\!ntemp %............P...... -\newcount\!parity %.................S. -\newcount\!scalefactor %..................T -\newcount\!tickcase %..................T - -\newskip\!Xleft %............P...... -\newskip\!Xright %............P...... -\newskip\!Xsave %.A................T -\newskip\!Ybot %............P...... -\newskip\!Ysave %.A................T -\newskip\!Ytop %............P...... -\newskip\!angle %........E.......... -\newskip\!arclength %..W......UL....Q... -\newskip\!areabloc %.A........L........ -\newskip\!arealloc %.A........L........ -\newskip\!arearloc %.A........L........ -\newskip\!areatloc %.A........L........ -\newskip\!bshrinkage %.................S. -\newskip\!checkbot %..........L........ -\newskip\!checkleft %..........L........ -\newskip\!checkright %..........L........ -\newskip\!checktop %..........L........ -\newdimen\!dimenA %.AW.X.DVEUL..OYQRST -\newdimen\!dimenB %....X.DVEU...O.QRS. -\newdimen\!dimenC %..W.X.DVEU......RS. -\newdimen\!dimenD %..W.X.DVEU....Y.RS. -\newdimen\!dimenE %..W........G..YQ.S. -\newdimen\!dimenF %...........G..YQ.S. -\newdimen\!dimenG %...........G..YQ.S. -\newdimen\!dimenH %...........G..Y..S. -\newdimen\!dimenI %...BX.........Y.... -\newdimen\!distacross %..........L....Q... -\newdimen\!downlength %..........L........ -\newdimen\!dp %.A..X.......P....S. -\newdimen\!dshade %.................S. -\newdimen\!dxpos %..W......U..P....S. -\newdimen\!dxprime %...............Q... -\newdimen\!dypos %..WB.....U..P...... -\newdimen\!dyprime %...............Q... -\newdimen\!ht %.A..X.......P....S. -\newdimen\!leaderlength %......D..U......... -\newdimen\!lshrinkage %.................S. -\newdimen\!midarclength %...............Q... -\newdimen\!offset %.A................T -\newdimen\!plotheadingoffset %.A................. -\newdimen\!plotsymbolxshift %..........L..O..... -\newdimen\!plotsymbolyshift %..........L..O..... -\newdimen\!plotxorigin %..........L..O..... -\newdimen\!plotyorigin %..........L..O..... -\newdimen\!rshrinkage %.................S. -\newdimen\!shadesymbolxshift %.................S. -\newdimen\!shadesymbolyshift %.................S. -\newdimen\!tshrinkage %.................S. -\newdimen\!uplength %..........L........ -\newdimen\!wd %....X.......P....S. -\newdimen\!xB %...............Q... -\newdimen\!xC %...............Q... -\newdimen\!xE %..W.....E.L....Q.S. -\newdimen\!xM %..W.....E......Q.S. -\newdimen\!xS %..W.....E.L....Q.S. -\newdimen\!xaxislength %.A................T -\newdimen\!xdiff %..........L........ -\newdimen\!xleft %............P...... -\newdimen\!xloc %..WB.....U.......S. -\newdimen\!xorigin %.A........L.P....S. -\newdimen\!xpivot %................R.. -\newdimen\!xpos %..........L.P..Q.ST -\newdimen\!xprime %...............Q... -\newdimen\!xright %............P...... -\newdimen\!xshade %.................S. -\newdimen\!xshift %..W.........PO...S. -\newdimen\!xtemp %............P...... -\newdimen\!xunit %.AWBX...EUL.P..QRS. -\newdimen\!xxE %........E.......... -\newdimen\!xxM %........E.......... -\newdimen\!xxS %........E.......... -\newdimen\!xxloc %..WB....EU......... -\newdimen\!yB %...............Q... -\newdimen\!yC %...............Q... -\newdimen\!yE %..W.....E.L....Q... -\newdimen\!yM %..W.....E......Q... -\newdimen\!yS %..W.....E.L....Q... -\newdimen\!yaxislength %.A................T -\newdimen\!ybot %............P...... -\newdimen\!ydiff %..........L........ -\newdimen\!yloc %..WB.....U.......S. -\newdimen\!yorigin %.A........L.P....S. -\newdimen\!ypivot %................R.. -\newdimen\!ypos %..........L.P..Q.ST -\newdimen\!yprime %...............Q... -\newdimen\!yshade %.................S. -\newdimen\!yshift %..W.........PO...S. -\newdimen\!ytemp %............P...... -\newdimen\!ytop %............P...... -\newdimen\!yunit %.AWBX...EUL.P..QRS. -\newdimen\!yyE %........E.......... -\newdimen\!yyM %........E.......... -\newdimen\!yyS %........E.......... -\newdimen\!yyloc %..WB....EU......... - -\newif\if!axisvisible %.A................. -\newif\if!gridlinestoo %..................T -\newif\if!keepPO %................... -\newif\if!placeaxislabel %.A................. -\newif\if!switch %H.................. -\newif\if!xswitch %.A................T - -\newtoks\!axisLaBeL %.A................. -\newtoks\!keywordtoks %.A................. - -\newwrite\!replotfile %.............O..... - -\newhelp\!keywordhelp{The keyword mentioned in the error message in unknown. -Replace NEW KEYWORD in the indicated response by the keyword that -should have been specified.} %.A................. - -% The following commands assign alternate names to some of the -% above registers. "\!wlet" is defined in Hacks. -\!wlet\!!origin=\!xM %.A................T -\!wlet\!!unit=\!uplength %.A................T -\!wlet\!Lresiduallength=\!dimenG %.........U......... -\!wlet\!Rresiduallength=\!dimenF %.........U......... -\!wlet\!axisLength=\!distacross %.A................T -\!wlet\!axisend=\!ydiff %.A................T -\!wlet\!axisstart=\!xdiff %.A................T -\!wlet\!axisxlevel=\!arclength %.A................T -\!wlet\!axisylevel=\!downlength %.A................T -\!wlet\!beta=\!dimenE %...............Q... -\!wlet\!gamma=\!dimenF %...............Q... -\!wlet\!shadexorigin=\!plotxorigin %.................S. -\!wlet\!shadeyorigin=\!plotyorigin %.................S. -\!wlet\!ticklength=\!xS %..................T -\!wlet\!ticklocation=\!xE %..................T -\!wlet\!ticklocationincr=\!yE %..................T -\!wlet\!tickwidth=\!yS %..................T -\!wlet\!totalleaderlength=\!dimenE %.........U......... -\!wlet\!xone=\!xprime %....X.............. -\!wlet\!xtwo=\!dxprime %....X.............. -\!wlet\!ySsave=\!yM %................... -\!wlet\!ybB=\!yB %.................S. -\!wlet\!ybC=\!yC %.................S. -\!wlet\!ybE=\!yE %.................S. -\!wlet\!ybM=\!yM %.................S. -\!wlet\!ybS=\!yS %.................S. -\!wlet\!ybpos=\!yyloc %.................S. -\!wlet\!yone=\!yprime %....X.............. -\!wlet\!ytB=\!xB %.................S. -\!wlet\!ytC=\!xC %.................S. -\!wlet\!ytE=\!downlength %.................S. -\!wlet\!ytM=\!arclength %.................S. -\!wlet\!ytS=\!distacross %.................S. -\!wlet\!ytpos=\!xxloc %.................S. -\!wlet\!ytwo=\!dyprime %....X.............. - - -% Initial values for registers -\def\!zpt{0pt} % static -\!xunit=1pt -\!yunit=1pt -\!arearloc=\!xunit -\!areatloc=\!yunit -\!dshade=5pt -\!leaderlength=24in -\def\!tfs{256} % static -\def\!wmax{5.3pt} % static -\def\!wmin{2.7pt} % static -\!xaxislength=\!xunit -\!xpivot=\!zpt -\!yaxislength=\!yunit -\!ypivot=\!zpt -\plotsymbolspacing=.4pt - \!dimenA=50pt \def\!fiftypt{\the\!dimenA} % static - -\def\!rootten{3.162278pt} % static -\def\!tenAa{8.690286pt} % static (A5) -\def\!tenAc{2.773839pt} % static (A3) -\def\!tenAe{2.543275pt} % static (A1) - -% Initial values for control sequences -\def\!cosrotationangle{1} %................R.. -\def\!sinrotationangle{0} %................R.. -\def\!xpivotcoord{0} %................R.. -\def\!xref{0} %............P...... -\def\!xshadesave{0} %.................S. -\def\!ypivotcoord{0} %................R.. -\def\!yref{0} %............P...... -\def\!yshadesave{0} %.................S. -\def\!zero{0} %..................T - -% Reset TeX to report allocations -\let\wlog=\!!!wlog -% ************************************* -% *** AREAS: Deals with plot areas *** -% ************************************* -% -% ** User commands -% ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD -% ** to TOP YCOORD -% ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE] -% ** [LABEL {label}] [TICKS] / -% ** \visibleaxes -% ** \invisibleaxes -% ** \plotheading {HEADING} -% ** \grid {# of columns} {# of rows} -% ** \normalgraphs - -% ** \normalgraphs -% ** Sets defaults for graph setup. See Subsection 3.4 of manual. -\def\normalgraphs{% - \longticklength=.4\baselineskip - \shortticklength=.25\baselineskip - \tickstovaluesleading=.25\baselineskip - \valuestolabelleading=.8\baselineskip - \linethickness=.4pt - \stackleading=.17\baselineskip - \headingtoplotskip=1.5\baselineskip - \visibleaxes - \ticksout - \nogridlines - \unloggedticks} -% -% ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD -% ** to TOP YCOORD -% ** Reserves space in PICBOX for a rectangular box with the indicated -% ** coordinates. Must be specified before calls to \axis, -% ** \grid, \plotheading. -% ** See Subsection 3.1 of the manual. -\def\setplotarea x from #1 to #2, y from #3 to #4 {% - \!arealloc=\!M{#1}\!xunit \advance \!arealloc -\!xorigin - \!areabloc=\!M{#3}\!yunit \advance \!areabloc -\!yorigin - \!arearloc=\!M{#2}\!xunit \advance \!arearloc -\!xorigin - \!areatloc=\!M{#4}\!yunit \advance \!areatloc -\!yorigin - \!initinboundscheck - \!xaxislength=\!arearloc \advance\!xaxislength -\!arealloc - \!yaxislength=\!areatloc \advance\!yaxislength -\!areabloc - \!plotheadingoffset=\!zpt - \!dimenput {{\setbox0=\hbox{}\wd0=\!xaxislength\ht0=\!yaxislength\box0}} - [bl] (\!arealloc,\!areabloc)} -% -% ** \visibleaxes, \invisibleaxes -% ** Switches for setting visibility of subsequent axes. -% ** See Subsection 3.2 of the manual. -\def\visibleaxes{% - \def\!axisvisibility{\!axisvisibletrue}} -\def\invisibleaxes{% - \def\!axisvisibility{\!axisvisiblefalse}} -% -% ** The next few macros enable the user to fix up an erroneous keyword -% ** in the \axis command. -% \newhelp is in ALLOCATIONS -% \newhelp\!keywordhelp{The keyword mentioned in the error message in unknown. -% Replace NEW KEYWORD in the indicated response by the keyword that -% should have been specified.} - -\def\!fixkeyword#1{% - \errhelp=\!keywordhelp - \errmessage{Unrecognized keyword `#1': \the\!keywordtoks{NEW KEYWORD}'}} - -% \newtoks\!keywordtoks In ALLOCATIONS. -\!keywordtoks={enter `i\fixkeyword} - -\def\fixkeyword#1{% - \!nextkeyword#1 } - -% ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE] -% ** [LABEL {label}] [TICKS] / -% ** Exactly one of the keywords BOTTOM, LEFT, TOP, RIGHT must be -% ** specified. Axis is drawn along the indicated edge of the current -% ** plot area, shifted if the SHIFTEDTO option is used, visible or -% ** invisible according the selected option, with an optional LABEL, -% ** and optional TICKS (see ticks.tex for the options avialabel with -% ** TICKS). The TICKS option must be the last one specified. The \axis -% ** MUST be terminated with a / followed by a space. -% ** See Subsection 3.2 of the manual for more information. - -% ** The various options of the \axis command are processed by the -% ** \!nextkeyword macro defined below. For example, -% ** `\!nextkeyword shiftedto ' expands to `\!axisshiftedto'. -\def\axis {% - \def\!nextkeyword##1 {% - \expandafter\ifx\csname !axis##1\endcsname \relax - \def\!next{\!fixkeyword{##1}}% - \else - \def\!next{\csname !axis##1\endcsname}% - \fi - \!next}% - \!offset=\!zpt - \!axisvisibility - \!placeaxislabelfalse - \!nextkeyword} - -% ** This and the various macros that follow handle the keyword -% ** specifications on the \axis command -% ** See Subsection 3.2 of the manual. -\def\!axisbottom{% - \!axisylevel=\!areabloc - \def\!tickxsign{0}% - \def\!tickysign{-}% - \def\!axissetup{\!axisxsetup}% - \def\!axislabeltbrl{t}% - \!nextkeyword} - -\def\!axistop{% - \!axisylevel=\!areatloc - \def\!tickxsign{0}% - \def\!tickysign{+}% - \def\!axissetup{\!axisxsetup}% - \def\!axislabeltbrl{b}% - \!nextkeyword} - -\def\!axisleft{% - \!axisxlevel=\!arealloc - \def\!tickxsign{-}% - \def\!tickysign{0}% - \def\!axissetup{\!axisysetup}% - \def\!axislabeltbrl{r}% - \!nextkeyword} - -\def\!axisright{% - \!axisxlevel=\!arearloc - \def\!tickxsign{+}% - \def\!tickysign{0}% - \def\!axissetup{\!axisysetup}% - \def\!axislabeltbrl{l}% - \!nextkeyword} - -\def\!axisshiftedto#1=#2 {% - \if 0\!tickxsign - \!axisylevel=\!M{#2}\!yunit - \advance\!axisylevel -\!yorigin - \else - \!axisxlevel=\!M{#2}\!xunit - \advance\!axisxlevel -\!xorigin - \fi - \!nextkeyword} - -\def\!axisvisible{% - \!axisvisibletrue - \!nextkeyword} - -\def\!axisinvisible{% - \!axisvisiblefalse - \!nextkeyword} - -\def\!axislabel#1 {% - \!axisLaBeL={#1}% - \!placeaxislabeltrue - \!nextkeyword} - -\expandafter\def\csname !axis/\endcsname{% - \!axissetup % This could done already by "ticks"; if so, now \relax - \if!placeaxislabel - \!placeaxislabel - \fi - \if +\!tickysign % ** (A "top" axis) - \!dimenA=\!axisylevel - \advance\!dimenA \!offset % ** dimA = top of the axis structure - \advance\!dimenA -\!areatloc % ** dimA = excess over the plot area - \ifdim \!dimenA>\!plotheadingoffset - \!plotheadingoffset=\!dimenA % ** Greatest excess over the plot area - \fi - \fi} - -% ** \grid {c} {r} -% ** Partitions the plot area into c columns and r rows; see Subsection 3.3 -% ** of the manual. -% ** (Other grid patterns can be drawn with the TICKS option of the \axis -% ** command. -\def\grid #1 #2 {% - \!countA=#1\advance\!countA 1 - \axis bottom invisible ticks length <\!zpt> andacross quantity {\!countA} / - \!countA=#2\advance\!countA 1 - \axis left invisible ticks length <\!zpt> andacross quantity {\!countA} / } - -% ** \plotheading{HEADING} -% ** Places HEADING centered above the top of the plotarea (and above -% ** any top axis ticks marks, tick labels, and axis label); see -% ** Subsection 3.3 of the manual. -\def\plotheading#1 {% - \advance\!plotheadingoffset \headingtoplotskip - \!dimenput {#1} [B] <.5\!xaxislength,\!plotheadingoffset> - (\!arealloc,\!areatloc)} - -% ** From here on, the routines are internal. -\def\!axisxsetup{% - \!axisxlevel=\!arealloc - \!axisstart=\!arealloc - \!axisend=\!arearloc - \!axisLength=\!xaxislength - \!!origin=\!xorigin - \!!unit=\!xunit - \!xswitchtrue - \if!axisvisible - \!makeaxis - \fi} - -\def\!axisysetup{% - \!axisylevel=\!areabloc - \!axisstart=\!areabloc - \!axisend=\!areatloc - \!axisLength=\!yaxislength - \!!origin=\!yorigin - \!!unit=\!yunit - \!xswitchfalse - \if!axisvisible - \!makeaxis - \fi} - -\def\!makeaxis{% - \setbox\!boxA=\hbox{% (Make a pseudo-y[x] tick for an x[y]-axis) - \beginpicture - \!setdimenmode - \setcoordinatesystem point at {\!zpt} {\!zpt} - \putrule from {\!zpt} {\!zpt} to - {\!tickysign\!tickysign\!axisLength} - {\!tickxsign\!tickxsign\!axisLength} - \endpicturesave <\!Xsave,\!Ysave>}% - \wd\!boxA=\!zpt - \!placetick\!axisstart} - -\def\!placeaxislabel{% - \advance\!offset \valuestolabelleading - \if!xswitch - \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl] - <.5\!axisLength,\!tickysign\!offset> (\!axisxlevel,\!axisylevel) - \advance\!offset \!dp % ** advance offset by the "tallness" - \advance\!offset \!ht % ** of the label - \else - \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl] - <\!tickxsign\!offset,.5\!axisLength> (\!axisxlevel,\!axisylevel) - \fi - \!axisLaBeL={}} - - -% ******************************* -% *** ARROWS (Draws arrows) *** -% ******************************* -% -% ** User commands -% ** \arrow [MID FRACTION, BASE FRACTION] -% ** [] from XFROM YFROM to XTO YTO -% ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO - -% ** \arrow [MID FRACTION, BASE FRACTION] -% ** [] from XFROM YFROM to XTO YTO -% ** Draws an arrow from (XFROM,YFROM) to (XTO,YTO). The arrow head -% ** is constructed two quadratic arcs, which extend back a distance -% ** ARROW HEAD LENGTH (a dimension) on both sides of the arrow shaft. -% ** All the way back the arcs are a distance BASE FRACTION*ARROW HEAD -% ** LENGTH apart, while half-way back they are a distance MID FRACTION* -% ** ARROW HEAD LENGTH apart. is optional, and has -% ** its usual interpreation. See Subsection 5.4 of the manual. - -\def\arrow <#1> [#2,#3]{% - \!ifnextchar<{\!arrow{#1}{#2}{#3}}{\!arrow{#1}{#2}{#3}<\!zpt,\!zpt> }} - -\def\!arrow#1#2#3<#4,#5> from #6 #7 to #8 #9 {% -% -% ** convert to dimensions - \!xloc=\!M{#8}\!xunit - \!yloc=\!M{#9}\!yunit - \!dxpos=\!xloc \!dimenA=\!M{#6}\!xunit \advance \!dxpos -\!dimenA - \!dypos=\!yloc \!dimenA=\!M{#7}\!yunit \advance \!dypos -\!dimenA - \let\!MAH=\!M% ** save current c/d mode - \!setdimenmode% ** go into dimension mode -% - \!xshift=#4\relax \!yshift=#5\relax% ** pick up shift - \!reverserotateonly\!xshift\!yshift% ** back rotate shift - \advance\!xshift\!xloc \advance\!yshift\!yloc -% -% ** draw shaft of arrow - \!xS=-\!dxpos \advance\!xS\!xshift - \!yS=-\!dypos \advance\!yS\!yshift - \!start (\!xS,\!yS) - \!ljoin (\!xshift,\!yshift) -% -% ** find 32*cosine and 32*sine of angle of rotation - \!Pythag\!dxpos\!dypos\!arclength - \!divide\!dxpos\!arclength\!dxpos - \!dxpos=32\!dxpos \!removept\!dxpos\!!cos - \!divide\!dypos\!arclength\!dypos - \!dypos=32\!dypos \!removept\!dypos\!!sin -% -% ** construct arrowhead - \!halfhead{#1}{#2}{#3}% ** draw half of arrow head - \!halfhead{#1}{-#2}{-#3}% ** draw other half -% - \let\!M=\!MAH% ** restore old c/d mode - \ignorespaces} -% -% ** draw half of arrow head - \def\!halfhead#1#2#3{% - \!dimenC=-#1% - \divide \!dimenC 2 % ** half way back - \!dimenD=#2\!dimenC% ** half the mid width - \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xM,\!yM) - \!dimenC=-#1% ** all the way back - \!dimenD=#3\!dimenC - \!dimenD=.5\!dimenD% ** half the full width - \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xE,\!yE) - \!start (\!xshift,\!yshift) - \advance\!xM\!xshift \advance\!yM\!yshift - \advance\!xE\!xshift \advance\!yE\!yshift - \!qjoin (\!xM,\!yM) (\!xE,\!yE) - \ignorespaces} - - -% ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO -% ** Makes things like <--- text --->, using arrow heads from TeX's fonts. -% ** See Subsection 5.4 of the manual. -\def\betweenarrows #1#2 from #3 #4 to #5 #6 {% - \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit% - \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit% - \!dxpos=\!xxloc \advance\!dxpos by -\!xloc - \!dypos=\!yyloc \advance\!dypos by -\!yloc - \advance\!xloc .5\!dxpos - \advance\!yloc .5\!dypos -% - \let\!MBA=\!M% ** save current coord\dimen mode - \!setdimenmode% ** express locations in dimens - \ifdim\!dypos=\!zpt - \ifdim\!dxpos<\!zpt \!dxpos=-\!dxpos \fi - \put {\!lrarrows{\!dxpos}{#1}}#2{} at {\!xloc} {\!yloc} - \else - \ifdim\!dxpos=\!zpt - \ifdim\!dypos<\!zpt \!dypos=-\!zpt \fi - \put {\!udarrows{\!dypos}{#1}}#2{} at {\!xloc} {\!yloc} - \fi - \fi - \let\!M=\!MBA% ** restore previous c/d mode - \ignorespaces} - -% ** Subroutine for left-right between arrows -\def\!lrarrows#1#2{% #1=width, #2=text - {\setbox\!boxA=\hbox{$\mkern-2mu\mathord-\mkern-2mu$}% - \setbox\!boxB=\hbox{$\leftarrow$}\!dimenE=\ht\!boxB - \setbox\!boxB=\hbox{}\ht\!boxB=2\!dimenE - \hbox to #1{$\mathord\leftarrow\mkern-6mu - \cleaders\copy\!boxA\hfil - \mkern-6mu\mathord-$% - \kern.4em $\vcenter{\box\!boxB}$$\vcenter{\hbox{#2}}$\kern.4em - $\mathord-\mkern-6mu - \cleaders\copy\!boxA\hfil - \mkern-6mu\mathord\rightarrow$}}} - -% ** Subroutine for up-down between arrows -\def\!udarrows#1#2{% #1=width, #2=text - {\setbox\!boxB=\hbox{#2}% - \setbox\!boxA=\hbox to \wd\!boxB{\hss$\vert$\hss}% - \!dimenE=\ht\!boxA \advance\!dimenE \dp\!boxA \divide\!dimenE 2 - \vbox to #1{\offinterlineskip - \vskip .05556\!dimenE - \hbox to \wd\!boxB{\hss$\mkern.4mu\uparrow$\hss}\vskip-\!dimenE - \cleaders\copy\!boxA\vfil - \vskip-\!dimenE\copy\!boxA - \vskip\!dimenE\copy\!boxB\vskip.4em - \copy\!boxA\vskip-\!dimenE - \cleaders\copy\!boxA\vfil - \vskip-\!dimenE \hbox to \wd\!boxB{\hss$\mkern.4mu\downarrow$\hss} - \vskip .05556\!dimenE}}} - - -% *************************** -% *** BARS (Draws bars) *** -% *************************** -% -% ** User commands: -% ** \putbar [] breadth from XSTART YSTART -% ** to XEND YEND -% ** \setbars [] breadth baseline at XY = COORD -% ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] )] -% ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] )] - - -% ** \putbar [] breadth from XSTART YSTART -% ** to XEND YEND -% ** Either XSTART=XEND or YSTART=YEND. Draws a rectangle between -% ** (XSTART,YSTART) & (XEND,YEND). The "depth" of the rectangle -% ** is determined by those two plot positions; its other -% ** dimension "breadth" is specified by the dimension BREADTH. -% ** See Subsection 4.2 of the manual. -\def\putbar#1breadth <#2> from #3 #4 to #5 #6 {% - \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit% - \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit% - \!dypos=\!yyloc \advance\!dypos by -\!yloc - \!dimenI=#2 -% - \ifdim \!dimenI=\!zpt % ** If 0 breadth - \putrule#1from {#3} {#4} to {#5} {#6} % ** Then draw line - \else % ** Else, put in a rectangle - \let\!MBar=\!M% ** save current c/d mode - \!setdimenmode % ** go into dimension mode - \divide\!dimenI 2 - \ifdim \!dypos=\!zpt - \advance \!yloc -\!dimenI % ** Equal y coordinates - \advance \!yyloc \!dimenI - \else - \advance \!xloc -\!dimenI % ** Equal x coordinates - \advance \!xxloc \!dimenI - \fi - \putrectangle#1corners at {\!xloc} {\!yloc} and {\!xxloc} {\!yyloc} - \let\!M=\!MBar % ** restore c/d mode - \fi - \ignorespaces} - - -% ** \setbars [] breadth baseline at XY = COORD -% ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] )] -% ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] )] -% ** This command puts PiCTeX into the bar graph drawing mode described -% ** in Subsection 4.4 of the manual. -\def\setbars#1breadth <#2> baseline at #3 = #4 {% - \edef\!barshift{#1}% - \edef\!barbreadth{#2}% - \edef\!barorientation{#3}% - \edef\!barbaseline{#4}% - \def\!bardobaselabel{\!bardoendlabel}% - \def\!bardoendlabel{\!barfinish}% - \let\!drawcurve=\!barcurve - \!setbars} -\def\!setbars{% - \futurelet\!nextchar\!!setbars} -\def\!!setbars{% - \if b\!nextchar - \def\!!!setbars{\!setbarsbget}% - \else - \if e\!nextchar - \def\!!!setbars{\!setbarseget}% - \else - \def\!!!setbars{\relax}% - \fi - \fi - \!!!setbars} -\def\!setbarsbget baselabels (#1) {% - \def\!barbaselabelorientation{#1}% - \def\!bardobaselabel{\!!bardobaselabel}% - \!setbars} -\def\!setbarseget endlabels (#1) {% - \edef\!barendlabelorientation{#1}% - \def\!bardoendlabel{\!!bardoendlabel}% - \!setbars} - -% ** \!barcurve -% ** Draws a bargraph with preset values of barshift, barbreadth, -% ** barorientation (x or y) and barbaseline (coordinate) -\def\!barcurve #1 #2 {% - \if y\!barorientation - \def\!basexarg{#1}% - \def\!baseyarg{\!barbaseline}% - \else - \def\!basexarg{\!barbaseline}% - \def\!baseyarg{#2}% - \fi - \expandafter\putbar\!barshift breadth <\!barbreadth> from {\!basexarg} - {\!baseyarg} to {#1} {#2} - \def\!endxarg{#1}% - \def\!endyarg{#2}% - \!bardobaselabel} - -\def\!!bardobaselabel "#1" {% - \put {#1}\!barbaselabelorientation{} at {\!basexarg} {\!baseyarg} - \!bardoendlabel} - -\def\!!bardoendlabel "#1" {% - \put {#1}\!barendlabelorientation{} at {\!endxarg} {\!endyarg} - \!barfinish} - -\def\!barfinish{% - \!ifnextchar/{\!finish}{\!barcurve}} - - -% ******************************** -% *** BOXES (Draws rectangles) *** -% ******************************** -% -% ** User commands: -% ** \putrectangle [] corners at XCOORD1 YCOORD1 -% ** and XCOORD2 YCOORD2 -% ** \shaderectangleson -% ** \shaderectanglesoff -% ** \frame [] {TEXT} -% ** \rectangle -% -% -% ** \putrectangle [] corners at XCOORD1 YCOORD1 -% ** and XCOORD2 YCOORD2 -% ** Draws a rectangle with corners at (X1,Y1), (X2,Y1), (X1,Y2), (X2,Y2) -% ** Lines have thickness \linethickness, and overlap at the corners. -% ** The optional field functions as with a \put command. -% ** See Subsection 4.2 of the manual. -\def\putrectangle{% - \!ifnextchar<{\!putrectangle}{\!putrectangle<\!zpt,\!zpt> }} -\def\!putrectangle<#1,#2> corners at #3 #4 and #5 #6 {% -% -% ** get locations - \!xone=\!M{#3}\!xunit \!xtwo=\!M{#5}\!xunit% - \!yone=\!M{#4}\!yunit \!ytwo=\!M{#6}\!yunit% - \ifdim \!xtwo<\!xone - \!dimenI=\!xone \!xone=\!xtwo \!xtwo=\!dimenI - \fi - \ifdim \!ytwo<\!yone - \!dimenI=\!yone \!yone=\!ytwo \!ytwo=\!dimenI - \fi - \!dimenI=#1\relax \advance\!xone\!dimenI \advance\!xtwo\!dimenI - \!dimenI=#2\relax \advance\!yone\!dimenI \advance\!ytwo\!dimenI - \let\!MRect=\!M% ** save current coord/dimen mode - \!setdimenmode -% -% ** shade rectangle if appropriate - \!shaderectangle -% -% ** draw horizontal edges - \!dimenI=.5\linethickness - \advance \!xone -\!dimenI% ** adjust x-location to overlap corners - \advance \!xtwo \!dimenI% ** ditto - \putrule from {\!xone} {\!yone} to {\!xtwo} {\!yone} - \putrule from {\!xone} {\!ytwo} to {\!xtwo} {\!ytwo} -% -% ** draw vertical edges - \advance \!xone \!dimenI% ** restore original x-values - \advance \!xtwo -\!dimenI% - \advance \!yone -\!dimenI% ** adjust y-location to overlap corners - \advance \!ytwo \!dimenI% ** ditto - \putrule from {\!xone} {\!yone} to {\!xone} {\!ytwo} - \putrule from {\!xtwo} {\!yone} to {\!xtwo} {\!ytwo} -% - \let\!M=\!MRect% ** restore coord/dimen mode - \ignorespaces} - -% ** \shaderectangleson -% ** Subsequent rectangles will be shaded according to -% ** the current shading pattern. Affects \putrectangle, \putbar, -% ** \frame, \sethistograms, and \setbars. See Subsection 7.5 of the manual. -\def\shaderectangleson{% - \def\!shaderectangle{\!!shaderectangle}% - \ignorespaces} -% ** \shaderectanglesoff -% ** Suppresses \shaderectangleson. The default. -\def\shaderectanglesoff{% - \def\!shaderectangle{}% - \ignorespaces} - -\shaderectanglesoff - -% ** The following internal routine shades the current rectangle, when -% ** \!shaderectangle = \!!shaderectangle . -\def\!!shaderectangle{% - \!dimenA=\!xtwo \advance \!dimenA -\!xone - \!dimenB=\!ytwo \advance \!dimenB -\!yone - \ifdim \!dimenA<\!dimenB - \!startvshade (\!xone,\!yone,\!ytwo) - \!lshade (\!xtwo,\!yone,\!ytwo) - \else - \!starthshade (\!yone,\!xone,\!xtwo) - \!lshade (\!ytwo,\!xone,\!xtwo) - \fi - \ignorespaces} - -% ** \frame [] {TEXT} -% ** Draws a frame of thickness linethickness about the box enclosing -% ** TEXT; the frame is separated from the box by a distance of -% ** SEPARATION. The result is an hbox with the same baseline as TEXT. -% ** If is omitted, you get the effect of <0pt>. -% ** See Subsection 4.2 of the manual. -\def\frame{% - \!ifnextchar<{\!frame}{\!frame<\!zpt> }} -\long\def\!frame<#1> #2{% - \beginpicture - \setcoordinatesystem units <1pt,1pt> point at 0 0 - \put {#2} [Bl] at 0 0 - \!dimenA=#1\relax - \!dimenB=\!wd \advance \!dimenB \!dimenA - \!dimenC=\!ht \advance \!dimenC \!dimenA - \!dimenD=\!dp \advance \!dimenD \!dimenA - \let\!MFr=\!M - \!setdimenmode - \putrectangle corners at {-\!dimenA} {-\!dimenD} and {\!dimenB} {\!dimenC} - \!setcoordmode - \let\!M=\!MFr - \endpicture - \ignorespaces} - -% ** \rectangle -% ** Constructs a rectangle of width WIDTH and heigth HEIGHT. -% ** See Subsection 4.2 of the manual. -\def\rectangle <#1> <#2> {% - \setbox0=\hbox{}\wd0=#1\ht0=#2\frame {\box0}} - - -% ********************************************* -% *** CURVES (Upper level \plot commands) *** -% ********************************************* -% -% ** User commands -% ** \plot DATA / -% ** \plot "FILE NAME" -% ** \setquadratic -% ** \setlinear -% ** \sethistograms -% ** \vshade ... -% ** \hshade ... - -% \plot: multi-purpose command. Draws histograms, bar graphs, piecewise-linear -% or piecewise quadratic curves, depending on the setting of \!drawcurve. -% See Subsections 4.3-4.5, 5.1, 5.2 of the manual. -\def\plot{% - \!ifnextchar"{\!plotfromfile}{\!drawcurve}} -\def\!plotfromfile"#1"{% - \expandafter\!drawcurve \input #1 /} - -% Command to set piecewise quadratic mode -% See Subsections 5.1, 7.3, and 7.4 of the manual. -\def\setquadratic{% - \let\!drawcurve=\!qcurve - \let\!!Shade=\!!qShade - \let\!!!Shade=\!!!qShade} - -% Command to set piecewise linear mode -% See Subsections 5.1, 7.3, and 7.4 of the manual. -\def\setlinear{% - \let\!drawcurve=\!lcurve - \let\!!Shade=\!!lShade - \let\!!!Shade=\!!!lShade} - -% Command to set histogram mode -% See Subsection 4.3 of the manual. -\def\sethistograms{% - \let\!drawcurve=\!hcurve} - -% Commands to cycle through list of coordinates in piecewise quadratic -% interpolation mode -\def\!qcurve #1 #2 {% - \!start (#1,#2) - \!Qjoin} -\def\!Qjoin#1 #2 #3 #4 {% - \!qjoin (#1,#2) (#3,#4) % \!qjoin is defined in QUADRATIC - \!ifnextchar/{\!finish}{\!Qjoin}} - -% Commands to cycle through list of coordinates in piecewise linear -% interpolation mode -\def\!lcurve #1 #2 {% - \!start (#1,#2) - \!Ljoin} -\def\!Ljoin#1 #2 {% - \!ljoin (#1,#2) % \!ljoin is defined in LINEAR - \!ifnextchar/{\!finish}{\!Ljoin}} - -\def\!finish/{\ignorespaces} - -% Command to cycle through list of coordinates in histogram mode -\def\!hcurve #1 #2 {% - \edef\!hxS{#1}% - \edef\!hyS{#2}% - \!hjoin} -\def\!hjoin#1 #2 {% - \putrectangle corners at {\!hxS} {\!hyS} and {#1} {#2} - \edef\!hxS{#1}% - \!ifnextchar/{\!finish}{\!hjoin}} - - -% \vshade: See Subsection 7.3 of the manual. -\def\vshade #1 #2 #3 {% - \!startvshade (#1,#2,#3) - \!Shadewhat} - -% \hshade: See Subsection 7.4 of the manual. -\def\hshade #1 #2 #3 {% - \!starthshade (#1,#2,#3) - \!Shadewhat} - -% Commands to cycle through coordinates and optional "edge effect" -% fields while shading. -\def\!Shadewhat{% - \futurelet\!nextchar\!Shade} -\def\!Shade{% - \if <\!nextchar - \def\!nextShade{\!!Shade}% - \else - \if /\!nextchar - \def\!nextShade{\!finish}% - \else - \def\!nextShade{\!!!Shade}% - \fi - \fi - \!nextShade} -\def\!!lShade<#1> #2 #3 #4 {% - \!lshade <#1> (#2,#3,#4) % \!lshade is defined in SHADING - \!Shadewhat} -\def\!!!lShade#1 #2 #3 {% - \!lshade (#1,#2,#3) - \!Shadewhat} -\def\!!qShade<#1> #2 #3 #4 #5 #6 #7 {% - \!qshade <#1> (#2,#3,#4) (#5,#6,#7) % \!qshade is defined in SHADING - \!Shadewhat} -\def\!!!qShade#1 #2 #3 #4 #5 #6 {% - \!qshade (#1,#2,#3) (#4,#5,#6) - \!Shadewhat} - -% ** Set default interpolation mode -\setlinear - - -% ******************************************** -% *** DASHPATTERNS (Sets up dash patterns) *** -% ******************************************** - -% ** User commands: -% ** \setdashpattern -% ** \setdots -% ** \setdotsnear for -% ** \setdashes -% ** \setdashesnear for -% ** \setsolid -% ** \findlength {CURVE CMDS} - -% ** Internal commands: -% ** \!dashingon -% ** \!dashingoff - -% ** Dash patterns are specified by a balanced token list whose complete -% ** expansion has the form: DIMEN1,DIMEN2,DIMEN3,DIMEN4,... ; this produces -% ** an arc of length DIMEN1, a skip of length DIMEN2, an arc of length -% ** DIMEN3, a skip of length DIMEN4, ... . Any number of DIMEN values may -% ** be given. The pattern is repeated as many times (perhaps fractional) -% ** as necessary to draw the curve. -% ** A dash pattern remains in effect until it is overridden by a call to -% ** \setdashpattern, or to \setdots, \setdotsnear ... , \setdashes, -% ** \setdashesnear ... , or \setsolid. -% ** Solid lines are the default. - - -% ** \def\setdashpattern -% ** The following routine converts a balanced list of tokens whose -% ** complete expansion has the form DIMEN1,DIMEN2, ... , DIMENk into -% ** three list macros that are used in drawing dashed rules and curves: -% ** !Flist: \!Rule{DIMEN1}\!Skip{DIMEN2}\!Rule{DIMEN3}\!Skip{DIMEN4} ... -% ** !Blist: ...\!Skip{DIMEN4}\!Rule{DIMEN3}\!Skip{DIMEN2}\!Rule{DIMEN1} -% ** !UDlist: \\{DIMEN1}\\{DIMEN2}\\{DIMEN3}\\{DIMEN4} ...; -% ** calculates \!leaderlength := DIMEN1 + ... + DIMENk; and -% ** sets the curve drawing routines to dash mode. -% ** Those lists are used by the curve drawing routines. -% ** Dimenj ... may be given as an explicit dimension (e.g., 5pt), or -% ** as an expression involving a dimension register (e.g., -2.5\dimen0). -% ** See Subsection 6.2 of the manual -\def\setdashpattern <#1>{% - \def\!Flist{}\def\!Blist{}\def\!UDlist{}% - \!countA=0 - \!ecfor\!item:=#1\do{% - \!dimenA=\!item\relax - \expandafter\!rightappend\the\!dimenA\withCS{\\}\to\!UDlist% - \advance\!countA 1 - \ifodd\!countA - \expandafter\!rightappend\the\!dimenA\withCS{\!Rule}\to\!Flist% - \expandafter\!leftappend\the\!dimenA\withCS{\!Rule}\to\!Blist% - \else - \expandafter\!rightappend\the\!dimenA\withCS{\!Skip}\to\!Flist% - \expandafter\!leftappend\the\!dimenA\withCS{\!Skip}\to\!Blist% - \fi}% - \!leaderlength=\!zpt - \def\!Rule##1{\advance\!leaderlength ##1}% - \def\!Skip##1{\advance\!leaderlength ##1}% - \!Flist% - \ifdim\!leaderlength>\!zpt - \else - \def\!Flist{\!Skip{24in}}\def\!Blist{\!Skip{24in}}\ignorespaces - \def\!UDlist{\\{\!zpt}\\{24in}}\ignorespaces - \!leaderlength=24in - \fi - \!dashingon} - - -% ** \!dashingon -- puts the curve drawing routines into dash mode -% ** \!dashingoff -- puts the curve drawing routines into solid mode -% ** These are internal commands, invoked by \setdashpattern and \setsolid -\def\!dashingon{% - \def\!advancedashing{\!!advancedashing}% - \def\!drawlinearsegment{\!lineardashed}% - \def\!puthline{\!putdashedhline}% - \def\!putvline{\!putdashedvline}% -% \def\!putsline{\!putdashedsline}% - \ignorespaces}% -\def\!dashingoff{% - \def\!advancedashing{\relax}% - \def\!drawlinearsegment{\!linearsolid}% - \def\!puthline{\!putsolidhline}% - \def\!putvline{\!putsolidvline}% -% \def\!putsline{\!putsolidsline}% - \ignorespaces} - - -% ** \setdots -- sets up a dot/skip pattern where dot (actually -% ** the current plotsymbol) is plunked down once for every LENGTH -% ** traveled along the curve. LENGTH defaults to 5pt. -% ** See Subsection 6.1 of the manual. -\def\setdots{% - \!ifnextchar<{\!setdots}{\!setdots<5pt>}} -\def\!setdots<#1>{% - \!dimenB=#1\advance\!dimenB -\plotsymbolspacing - \ifdim\!dimenB<\!zpt - \!dimenB=\!zpt - \fi -\setdashpattern <\plotsymbolspacing,\!dimenB>} - -% ** \setdotsnear for -% ** sets up a dot pattern where the dots are approximately LENGTH apart, -% ** the total length of the pattern is ARC LENGTH, and the pattern -% ** begins and ends with a dot. See Subsection 6.3 of the manual. -\def\setdotsnear <#1> for <#2>{% - \!dimenB=#2\relax \advance\!dimenB -.05pt - \!dimenC=#1\relax \!countA=\!dimenC - \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD - \divide \!countB \!countA - \ifnum 1>\!countB - \!countB=1 - \fi - \divide\!dimenB \!countB - \setdots <\!dimenB>} - -% ** \setdashes -- sets up a dash/skip pattern where the dash -% ** and the skip are each of length LENGTH (the dash is formed by -% ** plunking down the current plotsymbol over an arc of length LENGTH -% ** and so may actually be longer than LENGTH. LENGTH defaults to 5pt. -% ** See Subsection 6.1 of the manual. -\def\setdashes{% - \!ifnextchar<{\!setdashes}{\!setdashes<5pt>}} -\def\!setdashes<#1>{\setdashpattern <#1,#1>} - -% ** \setdashesnear ... -% ** Like \setdotsnear; the pattern begins and ends with a dash. -% ** See Subsection 6.3 of the manual. -\def\setdashesnear <#1> for <#2>{% - \!dimenB=#2\relax - \!dimenC=#1\relax \!countA=\!dimenC - \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD - \divide \!countB \!countA - \ifodd \!countB - \else - \advance \!countB 1 - \fi - \divide\!dimenB \!countB - \setdashes <\!dimenB>} - -% ** \setsolid -- puts the curve drawing routines in "solid line" mode, -% ** the default mode. See Subsection 6.1 of the manual. -\def\setsolid{% - \def\!Flist{\!Rule{24in}}\def\!Blist{\!Rule{24in}}% - \def\!UDlist{\\{24in}\\{\!zpt}}% - \!dashingoff} -\setsolid - -% ** \findlength {CURVE CMDS} -% ** PiCTeX executes the \start, \ljoin, and \qjoin cmds comprising -% ** CURVE CMDS without plotting anything, but stashes the length -% ** of the phantom curve away in \totalarclength. -% ** See Subsection 6.3 of the manual. -\def\findlength#1{% - \begingroup - \setdashpattern <0pt, \maxdimen> - \setplotsymbol ({}) - \dontsavelinesandcurves - #1% - \endgroup - \ignorespaces} - - -% ************************************************************* -% *** DIVISION (Does long division of dimension registers) *** -% ************************************************************* - -% ** User command: -% ** \Divide {DIVIDEND} by {DIVISOR} forming {RESULT} - -% ** Internal command -% ** \!divide{DIVIDEND}{DIVISOR}{RESULT} - -% ** \!divide DIVIDEND [by] DIVISOR [to get] ANSWER -% ** Divides the dimension DIVIDEND by the dimension DIVISOR, placing the -% ** quotient in the dimension register ANSWER. Values are understood to -% ** be in points. E.g. 12.5pt/1.4pt=8.92857pt. -% ** Quotient is accurate to 1/65536pt=2**[-16]pt -% ** |DIVISOR| should be < 2048pt (about 28 inches). -\def\!divide#1#2#3{% - \!dimenB=#1% ** dimB holds current remainder (r) - \!dimenC=#2% ** dimC holds divisor (d) - \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this - \divide \!dimenD \!dimenC% ** step, in units of scaled pts - \!dimenA=\!dimenD% ** dimA eventually holds answer (a) - \multiply\!dimenD \!dimenC% ** r <-- r - dq - \advance\!dimenB -\!dimenD% ** First step complete. Have integer part -% ** of a, and corresponding remainder. - \!dimenD=\!dimenC% ** Temporarily use dimD to hold |d| - \ifdim\!dimenD<\!zpt \!dimenD=-\!dimenD - \fi - \ifdim\!dimenD<64pt% ** Branch on the magnitude of |d| - \!divstep[\!tfs]\!divstep[\!tfs]% - \else - \!!divide - \fi - #3=\!dimenA\ignorespaces} - -% ** The following code handles divisors d with -% ** (1) .88in = 64pt <= d < 256pt = 3.54in -% ** (2) 3.54in = 256pt <= d < 2048pt = 28.34in -% ** Anything bigger than that may result in an overflow condition. -% ** For our purposes, we should never even see case (2). -\def\!!divide{% - \ifdim\!dimenD<256pt - \!divstep[64]\!divstep[32]\!divstep[32]% - \else - \!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]% - \!dimenA=2\!dimenA - \fi} - - -% ** The following macro does the real long division work. -\def\!divstep[#1]{% ** #1 = "B" - \!dimenB=#1\!dimenB% ** r <-- B*r - \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this - \divide \!dimenD by \!dimenC% ** step, in units of scaled pts - \!dimenA=#1\!dimenA% ** a <-- B*a + q - \advance\!dimenA by \!dimenD% - \multiply\!dimenD by \!dimenC% ** r <-- r - dq - \advance\!dimenB by -\!dimenD} - -% ** \Divide: See Subsection 9.3 of the manual. -\def\Divide <#1> by <#2> forming <#3> {% - \!divide{#1}{#2}{#3}} - - -% ********************************************* -% *** ELLIPSES (Draws ellipses and circles) *** -% ********************************************* - -% ** User commands -% ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART -% ** center at XCENTER YCENTER -% ** \circulararc DEGREES degrees from XSTART YSTART -% ** center at XCENTER YCENTER - -% ** Internal command -% ** \!sinandcos{32*ANGLE in radians}{32*SIN}{32*COS} - - -% ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART -% ** center at XCENTER YCENTER -% ** Draws a elliptical arc starting at the coordinate point (XSTART,YSTART). -% ** The center of the ellipse of which the arc is a segment is at -% ** (XCENTER,YCENTER). -% ** The arc extends through an angle of DEGREES degrees (may be + or -). -% ** A:B is the ratio of the length of the xaxis to the length of -% ** the yaxis of the ellipse -% ** Sqrt{[(XSTART-XCENTER)/A]**2 + [(YSTART-YCENTER)/B]**2} -% ** must be < 512pt (about 7in). -% ** Doesn't modify the dimensions (ht, dp, wd) of the PiCture under -% ** construction. - -% ** \circulararc -- See Subsection 5.3 of the manual. -\def\circulararc{% - \ellipticalarc axes ratio 1:1 } - -% ** \ellipticalarc -- See Subsection 5.3 of the manual. -\def\ellipticalarc axes ratio #1:#2 #3 degrees from #4 #5 center at #6 #7 {% - \!angle=#3pt\relax% ** get angle - \ifdim\!angle>\!zpt - \def\!sign{}% ** counterclockwise - \else - \def\!sign{-}\!angle=-\!angle% ** clockwise - \fi - \!xxloc=\!M{#6}\!xunit% ** convert CENTER to dimension - \!yyloc=\!M{#7}\!yunit - \!xxS=\!M{#4}\!xunit% ** get STARTing point on rim of ellipse - \!yyS=\!M{#5}\!yunit - \advance\!xxS -\!xxloc% ** make center of ellipse (0,0) - \advance\!yyS -\!yyloc - \!divide\!xxS{#1pt}\!xxS % ** scale point on ellipse to point on - \!divide\!yyS{#2pt}\!yyS % corresponding circle -% - \let\!MC=\!M% ** save current c/d mode - \!setdimenmode% ** go into dimension mode -% - \!xS=#1\!xxS \advance\!xS\!xxloc - \!yS=#2\!yyS \advance\!yS\!yyloc - \!start (\!xS,\!yS)% - \!loop\ifdim\!angle>14.9999pt% ** draw in major portion of ellipse - \!rotate(\!xxS,\!yyS)by(\!cos,\!sign\!sin)to(\!xxM,\!yyM) - \!rotate(\!xxM,\!yyM)by(\!cos,\!sign\!sin)to(\!xxE,\!yyE) - \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc - \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc - \!qjoin (\!xM,\!yM) (\!xE,\!yE) - \!xxS=\!xxE \!yyS=\!yyE - \advance \!angle -15pt - \repeat - \ifdim\!angle>\!zpt% ** complete remaining arc, if any - \!angle=100.53096\!angle% ** convert angle to radians, divide - \divide \!angle 360 % ** by 2, and multiply by 32 - \!sinandcos\!angle\!!sin\!!cos% ** get 32*sin & 32*cos - \!rotate(\!xxS,\!yyS)by(\!!cos,\!sign\!!sin)to(\!xxM,\!yyM) - \!rotate(\!xxM,\!yyM)by(\!!cos,\!sign\!!sin)to(\!xxE,\!yyE) - \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc - \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc - \!qjoin (\!xM,\!yM) (\!xE,\!yE) - \fi -% - \let\!M=\!MC% ** restore c/d mode - \ignorespaces}% ** if appropriate - - -% ** \!rotate(XREG,YREG)by(32cos,32sin)to(XXREG,YYREG) -% ** rotates (XREG,YREG) by angle with specfied scaled cos & sin to -% ** (XXREG,YYREG). Uses \!dimenA & \!dimenB as scratch registers. -\def\!rotate(#1,#2)by(#3,#4)to(#5,#6){% - \!dimenA=#3#1\advance \!dimenA -#4#2% ** Rcos(x+t)=Rcosx*cost - Rsinx*sint - \!dimenB=#3#2\advance \!dimenB #4#1% ** Rsin(x+t)=Rsinx*cost + Rcosx*sint - \divide \!dimenA 32 \divide \!dimenB 32 - #5=\!dimenA #6=\!dimenB - \ignorespaces} -\def\!sin{4.17684}% ** 32*sin(pi/24) (pi/24=7.5deg) -\def\!cos{31.72624}% ** 32*cos(pi/24) - - -% ** \!sinandcos{32*ANGLE in radians}{\SINCS}{\COSCS} -% ** Computes the 32*sine and 32*cosine of a small ANGLE expressed in -% ** radians/32 and puts these values in the replacement texts of -% ** \SINCS and \COSCS -\def\!sinandcos#1#2#3{% - \!dimenD=#1% ** angle is expressed in radians/32: 1pt = 1/32rad - \!dimenA=\!dimenD% ** dimA will eventually contain 32sin(angle)in pts - \!dimenB=32pt% ** dimB will eventually contain 32cos(angle)in pts - \!removept\!dimenD\!value% ** get value of 32*angle, without "pt" - \!dimenC=\!dimenD% ** holds 32*angle**i/i! in pts - \!dimenC=\!value\!dimenC \divide\!dimenC by 64 % ** now 32*angle**2/2 - \advance\!dimenB by -\!dimenC% ** 32-32*angle**2/2 - \!dimenC=\!value\!dimenC \divide\!dimenC by 96 % ** now 32*angle**3/3! - \advance\!dimenA by -\!dimenC% ** now 32*(angle-angle**3/6) - \!dimenC=\!value\!dimenC \divide\!dimenC by 128 % ** now 32*angle**4/4! - \advance\!dimenB by \!dimenC% - \!removept\!dimenA#2% ** set 32*sin(angle) - \!removept\!dimenB#3% ** set 32*cos(angle) - \ignorespaces} - - -% ***************************************************************** -% *** RULES (Draws rules, i.e., horizontal & vertical lines) *** -% ***************************************************************** - -% ** User command: -% ** \putrule [] from XCOORD1 YCOORD1 -% ** to XCOORD2 YCOORD2 - -% ** Internal commands: -% ** \!puthline [] (h = horizontal) -% ** Set by dashpat to either: \!putsolidhline or \!putdashedhline -% ** \!putvline [] (v = vertical) -% ** Either: \!putsolidvline or \!putdashedvline - - -% ** \putrule [] from XCOORD1 YCOORD1 -% ** to XCOORD2 YCOORD2 -% ** Draws a rule -- dashed or solid depending on the current dash pattern -- -% ** from (X1,Y1) to (X2,Y2). Uses TEK's \hrule & \vrule & \leaders -% ** constructions to handle horizontal & vertical lines efficiently both -% ** in terms of execution time and space in the DVI file. -% ** See Subsection 4.1 of the manual. -\def\putrule#1from #2 #3 to #4 #5 {% - \!xloc=\!M{#2}\!xunit \!xxloc=\!M{#4}\!xunit% - \!yloc=\!M{#3}\!yunit \!yyloc=\!M{#5}\!yunit% - \!dxpos=\!xxloc \advance\!dxpos by -\!xloc - \!dypos=\!yyloc \advance\!dypos by -\!yloc -% - \ifdim\!dypos=\!zpt - \def\!!Line{\!puthline{#1}}\ignorespaces - \else - \ifdim\!dxpos=\!zpt - \def\!!Line{\!putvline{#1}}\ignorespaces - \else - \def\!!Line{} - \fi - \fi - \let\!ML=\!M% ** save current coord\dimen mode - \!setdimenmode% ** express locations in dimens - \!!Line% - \let\!M=\!ML% ** restore previous c/d mode - \ignorespaces} - - -% ** \!putsolidhline [] -% ** Place horizontal solid line -\def\!putsolidhline#1{% - \ifdim\!dxpos>\!zpt - \put{\!hline\!dxpos}#1[l] at {\!xloc} {\!yloc} - \else - \put{\!hline{-\!dxpos}}#1[l] at {\!xxloc} {\!yyloc} - \fi - \ignorespaces} - -% ** \!putsolidvline [shifted ] -% ** Place vertical solid line -\def\!putsolidvline#1{% - \ifdim\!dypos>\!zpt - \put{\!vline\!dypos}#1[b] at {\!xloc} {\!yloc} - \else - \put{\!vline{-\!dypos}}#1[b] at {\!xxloc} {\!yyloc} - \fi - \ignorespaces} - -\def\!hline#1{\hbox to #1{\leaders \hrule height\linethickness\hfill}} -\def\!vline#1{\vbox to #1{\leaders \vrule width\linethickness\vfill}} - - -% ** \!putdashedhline [] -% ** Place dashed horizontal line -\def\!putdashedhline#1{% - \ifdim\!dxpos>\!zpt - \!DLsetup\!Flist\!dxpos - \put{\hbox to \!totalleaderlength{\!hleaders}\!hpartialpattern\!Rtrunc} - #1[l] at {\!xloc} {\!yloc} - \else - \!DLsetup\!Blist{-\!dxpos} - \put{\!hpartialpattern\!Ltrunc\hbox to \!totalleaderlength{\!hleaders}} - #1[r] at {\!xloc} {\!yloc} - \fi - \ignorespaces} - -% ** \!putdashedhline [] -% ** Place dashed vertical line -\def\!putdashedvline#1{% - \!dypos=-\!dypos% ** vertical leaders go from top to bottom - \ifdim\!dypos>\!zpt - \!DLsetup\!Flist\!dypos - \put{\vbox{\vbox to \!totalleaderlength{\!vleaders} - \!vpartialpattern\!Rtrunc}}#1[t] at {\!xloc} {\!yloc} - \else - \!DLsetup\!Blist{-\!dypos} - \put{\vbox{\!vpartialpattern\!Ltrunc - \vbox to \!totalleaderlength{\!vleaders}}}#1[b] at {\!xloc} {\!yloc} - \fi - \ignorespaces} - - -% ** The rest of the macros in this section are subroutines used by -% ** \!putdashedhline and \!putdashedvline. -\def\!DLsetup#1#2{% ** Dashed-Line set up - \let\!RSlist=#1% ** set !Rule-Skip list - \!countB=#2% ** convert rule length to integer (number of sps) - \!countA=\!leaderlength% ** ditto, leaderlength - \divide\!countB by \!countA% ** number of complete leader units - \!totalleaderlength=\!countB\!leaderlength - \!Rresiduallength=#2% - \advance \!Rresiduallength by -\!totalleaderlength% \** excess length - \!Lresiduallength=\!leaderlength - \advance \!Lresiduallength by -\!Rresiduallength - \ignorespaces} - -\def\!hleaders{% - \def\!Rule##1{\vrule height\linethickness width##1}% - \def\!Skip##1{\hskip##1}% - \leaders\hbox{\!RSlist}\hfill} - -\def\!hpartialpattern#1{% - \!dimenA=\!zpt \!dimenB=\!zpt - \def\!Rule##1{#1{##1}\vrule height\linethickness width\!dimenD}% - \def\!Skip##1{#1{##1}\hskip\!dimenD}% - \!RSlist} - -\def\!vleaders{% - \def\!Rule##1{\hrule width\linethickness height##1}% - \def\!Skip##1{\vskip##1}% - \leaders\vbox{\!RSlist}\vfill} - -\def\!vpartialpattern#1{% - \!dimenA=\!zpt \!dimenB=\!zpt - \def\!Rule##1{#1{##1}\hrule width\linethickness height\!dimenD}% - \def\!Skip##1{#1{##1}\vskip\!dimenD}% - \!RSlist} - -\def\!Rtrunc#1{\!trunc{#1}>\!Rresiduallength} -\def\!Ltrunc#1{\!trunc{#1}<\!Lresiduallength} - -\def\!trunc#1#2#3{% - \!dimenA=\!dimenB - \advance\!dimenB by #1% - \!dimenD=\!dimenB \ifdim\!dimenD#2#3\!dimenD=#3\fi - \!dimenC=\!dimenA \ifdim\!dimenC#2#3\!dimenC=#3\fi - \advance \!dimenD by -\!dimenC} - - -% **************************************************************** -% *** LINEAR ARC (Draws straight lines -- solid and dashed) *** -% **************************************************************** - -% ** User commands -% ** \inboundscheckoff -% ** \inboundscheckon - -% ** Internal commands -% ** \!start (XCOORD,YCOORD) -% ** \!ljoin (XCOORD,YCOORD) -% ** \!drawlinearsegment -- set by \dashpat to either -% ** \!linearsolid or \!lineardashed -% ** \!advancedashing -- set by \dashpat to either -% ** \relax or \!!advancedashing -% ** \!plotifinbounds -- set by \inboundscheck off/on to either -% ** \!plot or \!!plotifinbounds -% ** \!initinboundscheck -- set by \inboundscheck off/on to either -% ** \relax or \!!initinboundscheck - - -% \plotsymbolspacing ** distance between consecutive plot positions -% \!xS ** starting x -% \!yS ** starting y -% \!xE ** ending x -% \!yE ** ending y -% \!xdiff ** x_end - x_start -% \!ydiff ** y_end - y_start -% \!distacross ** how far along curve next point to be plotted is -% \!arclength ** approximate length of arc for current interval -% \!downlength ** remaining length for "pen" to be down -% \!uplength ** length for "pen" to be down -% \!intervalno ** counts segments to curve -% \totalarclength ** cumulative distance along curve -% \!npoints ** approximately (arc length / plotsymbolspacing) - -% ** Calls -- \!Pythag, \!divide, \!plot - - -% ** \!start (XCOORD,YCOORD) -% ** Sets initial point for linearly (or quadratically) interpolated curve -\def\!start (#1,#2){% - \!plotxorigin=\!xorigin \advance \!plotxorigin by \!plotsymbolxshift - \!plotyorigin=\!yorigin \advance \!plotyorigin by \!plotsymbolyshift - \!xS=\!M{#1}\!xunit \!yS=\!M{#2}\!yunit - \!rotateaboutpivot\!xS\!yS - \!copylist\!UDlist\to\!!UDlist% **\!UDlist has the form \\{dimen1}\\{dimen2}.. -% ** Routine will draw dashed line with pen -% ** down for dimen1, up for dimen2, ... - \!getnextvalueof\!downlength\from\!!UDlist - \!distacross=\!zpt% ** 1st point goes at start of curve - \!intervalno=0 % ** initialize interval counter - \global\totalarclength=\!zpt% ** initialize distance traveled along curve - \ignorespaces} - - -% ** \!ljoin (XCOORD,YCOORD) -% ** Draws a straight line starting at the last point specified -% ** by the most recent \!start, \!ljoin, or \!qjoin, and -% ** ending at (XCOORD,YCOORD). -\def\!ljoin (#1,#2){% - \advance\!intervalno by 1 - \!xE=\!M{#1}\!xunit \!yE=\!M{#2}\!yunit - \!rotateaboutpivot\!xE\!yE - \!xdiff=\!xE \advance \!xdiff by -\!xS%** xdiff = xE - xS - \!ydiff=\!yE \advance \!ydiff by -\!yS%** ydiff = yE - yS - \!Pythag\!xdiff\!ydiff\!arclength% ** arclength = sqrt(xdiff**2+ydiff**2) - \global\advance \totalarclength by \!arclength% - \!drawlinearsegment% ** set by dashpat to \!linearsolid or \!lineardashed - \!xS=\!xE \!yS=\!yE% ** shift ending points to starting points - \ignorespaces} - - -% ** The following routine is used to draw a "solid" line between (xS,yS) -% ** and (xE,yE). Points are spaced nearly every \plotsymbolspacing length -% ** along the line. -\def\!linearsolid{% - \!npoints=\!arclength - \!countA=\plotsymbolspacing - \divide\!npoints by \!countA% ** now #pts =. arclength/plotsymbolspacing - \ifnum \!npoints<1 - \!npoints=1 - \fi - \divide\!xdiff by \!npoints - \divide\!ydiff by \!npoints - \!xpos=\!xS \!ypos=\!yS -% - \loop\ifnum\!npoints>-1 - \!plotifinbounds - \advance \!xpos by \!xdiff - \advance \!ypos by \!ydiff - \advance \!npoints by -1 - \repeat - \ignorespaces} - - -% ** The following routine is used to draw a dashed line between (xS,yS) -% ** and (xE,yE). The dash pattern continues from the previous segment. -\def\!lineardashed{% -% ** - \ifdim\!distacross>\!arclength - \advance \!distacross by -\!arclength %nothing to plot in this interval -% - \else -% - \loop\ifdim\!distacross<\!arclength -% ** plot point, interpolating linearly in x and y - \!divide\!distacross\!arclength\!dimenA% ** dimA = across/arclength - \!removept\!dimenA\!t% ** \!t holds value in dimA, without the "pt" - \!xpos=\!t\!xdiff \advance \!xpos by \!xS - \!ypos=\!t\!ydiff \advance \!ypos by \!yS - \!plotifinbounds - \advance\!distacross by \plotsymbolspacing - \!advancedashing - \repeat -% - \advance \!distacross by -\!arclength% ** prepare for next interval - \fi - \ignorespaces} - - -\def\!!advancedashing{% - \advance\!downlength by -\plotsymbolspacing - \ifdim \!downlength>\!zpt - \else - \advance\!distacross by \!downlength - \!getnextvalueof\!uplength\from\!!UDlist - \advance\!distacross by \!uplength - \!getnextvalueof\!downlength\from\!!UDlist - \fi} - - -% ** \inboundscheckoff & \inboundscheckon: See Subsection 5.5 of the manual. -\def\inboundscheckoff{% - \def\!plotifinbounds{\!plot(\!xpos,\!ypos)}% - \def\!initinboundscheck{\relax}\ignorespaces} -\def\inboundscheckon{% - \def\!plotifinbounds{\!!plotifinbounds}% - \def\!initinboundscheck{\!!initinboundscheck}% - \!initinboundscheck\ignorespaces} -\inboundscheckoff - -% ** The following code plots the current point only if it falls in the -% ** current plotarea. It doesn't matter if the coordinate system has -% ** changed since the plotarea was set up. However, shifts of the plot -% ** are ignored (how the plotsymbol stands relative to its plot position is -% ** unknown anyway). -\def\!!plotifinbounds{% - \ifdim \!xpos<\!checkleft - \else - \ifdim \!xpos>\!checkright - \else - \ifdim \!ypos<\!checkbot - \else - \ifdim \!ypos>\!checktop - \else - \!plot(\!xpos,\!ypos) - \fi - \fi - \fi - \fi} - - -\def\!!initinboundscheck{% - \!checkleft=\!arealloc \advance\!checkleft by \!xorigin - \!checkright=\!arearloc \advance\!checkright by \!xorigin - \!checkbot=\!areabloc \advance\!checkbot by \!yorigin - \!checktop=\!areatloc \advance\!checktop by \!yorigin} - - -% ********************************* -% *** LOGTEN (Log_10 function) *** -% ********************************* -% -% ** \!logten{X} -% ** Calculates log_10 of X. X and LOG10(X) are in fixed point notation. -% ** X must be positive; it may have an optional `+' sign; any number -% ** of digits may be specified for X. The absolute error in LOG10(X) is -% ** less than .0001 (probably < .00006). That's about as good as you -% ** hope for, since TEX only operates to 5 figures after the decimal -% ** point anyway. - -% \!rootten=3.162278pt **** These are values are set in ALLOCATIONS -% \!tenAe=2.543275pt (=A5) -% \!tenAc=2.773839pt (=A3) -% \!tenAa=8.690286pt (=A1) - -\def\!logten#1#2{% - \expandafter\!!logten#1\!nil - \!removept\!dimenF#2% - \ignorespaces} - -\def\!!logten#1#2\!nil{% - \if -#1% - \!dimenF=\!zpt - \def\!next{\ignorespaces}% - \else - \if +#1% - \def\!next{\!!logten#2\!nil}% - \else - \if .#1% - \def\!next{\!!logten0.#2\!nil}% - \else - \def\!next{\!!!logten#1#2..\!nil}% - \fi - \fi - \fi - \!next} - -\def\!!!logten#1#2.#3.#4\!nil{% - \!dimenF=1pt % ** DimF holds log10 original argument - \if 0#1% - \!!logshift#3pt % ** Argument < 1 - \else % ** Argument >= 1 - \!logshift#2/% ** Shift decimal pt as many places - \!dimenE=#1.#2#3pt % ** as there are figures in #2 - \fi % ** Now dimE holds revised X want log10 of - \ifdim \!dimenE<\!rootten% ** Transform X to XX between sqrt(10) - \multiply \!dimenE 10 % ** and 10*sqrt(10) - \advance \!dimenF -1pt - \fi - \!dimenG=\!dimenE% ** dimG <- (XX + 10) - \advance\!dimenG 10pt - \advance\!dimenE -10pt % ** dimE <- (XX - 10) - \multiply\!dimenE 10 % ** dimE = 10*(XX-10) - \!divide\!dimenE\!dimenG\!dimenE% ** Now dimE=10t==10*(XX-10)/(XX+10) - \!removept\!dimenE\!t% ** !t=10t, with "pt" removed - \!dimenG=\!t\!dimenE% ** dimG=100t**2 - \!removept\!dimenG\!tt% ** !tt=100t**2, with "pt" removed - \!dimenH=\!tt\!tenAe% ** dimH=10*a5*(10t)**2 /100 - \divide\!dimenH 100 - \advance\!dimenH \!tenAc% ** ditto + 10*a3 - \!dimenH=\!tt\!dimenH% ** ditto * (10t)**2 /100 - \divide\!dimenH 100 - \advance\!dimenH \!tenAa% ** ditto + 10*a1 - \!dimenH=\!t\!dimenH% ** ditto * 10t / 100 - \divide\!dimenH 100 % ** Now dimH = log10(XX) - 1 - \advance\!dimenF \!dimenH}% ** dimF = log10(X) - -\def\!logshift#1{% - \if #1/% - \def\!next{\ignorespaces}% - \else - \advance\!dimenF 1pt - \def\!next{\!logshift}% - \fi - \!next} - - \def\!!logshift#1{% - \advance\!dimenF -1pt - \if 0#1% - \def\!next{\!!logshift}% - \else - \if p#1% - \!dimenF=1pt - \def\!next{\!dimenE=1p}% - \else - \def\!next{\!dimenE=#1.}% - \fi - \fi - \!next} - - -% *********************************************************** -% *** PICTURES (Basic setups for PiCtures; \put commands) *** -% *********************************************************** - -% ** User Commands: -% ** \beginpicture -% ** \endpicture -% ** \endpicturesave -% ** \setcoordinatesystem units point at XREF YREF -% ** \put {OBJECT} [ORIENTATION] at XCOORD YCOORD -% ** \multiput {OJBECT} [ORIENTATION] ) at -% ** XCOORD YCOORD -% ** *NUMBER_OF_TIMES DXCOORD DYCOORD / -% ** \accountingon -% ** \accountingoff -% ** \stack [ORIENTATION] {LIST OF ITEMS} -% ** \lines [ORIENTATION] {LINES} -% ** \Lines [ORIENTATION] {LINES} -% ** \setdimensionmode -% ** \setcoordinatemode -% ** \Xdistance -% ** \Ydistance - -% ** Internal commands: -% ** \!setputobject{OBJECT}{[ORIENTATION]} -% ** \!dimenput{OBJECT}[ORIENTATION](XDIMEN,YDIMEN) -% ** \!setdimenmode -% ** \!setcoordmode -% ** \!ifdimenmode -% ** \!ifcoordmode - - -% ** \beginpicture -% ** \endpicture -% ** \endpicturesave -% ** \beginpicture ... \endpicture creates an hbox. Objects are -% ** placed in this box using the \put command and the like (see below). -% ** The location of an object is specified in terms of coordinate system(s) -% ** established by \setcoordinatesystem. Each coordinate system (there -% ** might be just one) specifies the length of 1 horizontal unit, the length -% ** of 1 vertical unit, and the coordinates of a "reference point". The -% ** reference points of various coordinate systems will be in the same -% ** physical location. The macros keep track of the size of the objects -% ** and their locations. The resulting hbox is the smallest hbox which -% ** encloses all the objects, and whose TEK reference point is the point -% ** on the left edge of the box closest vertically to the PICTEX reference -% ** point. Using \endpicturesave, you can (globally) save the distance TEK's -% ** reference point is to the right (respectively, up from) PICTEX's -% ** reference point in the dimension register \XREG (respectively \YREG). -% ** You can then \put the picture OBJECT into a larger picture so that its -% ** reference point is at (XCOORD,YCOORD) with the command -% ** \put {picture OBJECT} [Bl] <\XREG, \YREG> at XCOORD YCOORD - -% ** \beginpicture : See Subsection 1.1 of the manual. -\def\beginpicture{% - \setbox\!picbox=\hbox\bgroup% - \!xleft=\maxdimen - \!xright=-\maxdimen - \!ybot=\maxdimen - \!ytop=-\maxdimen} - -% ** \endpicture : See Subsection 1.1 of the manual. -\def\endpicture{% - \ifdim\!xleft=\maxdimen% ** check if nothing was put in picbox - \!xleft=\!zpt \!xright=\!zpt \!ybot=\!zpt \!ytop=\!zpt - \fi - \global\!Xleft=\!xleft \global\!Xright=\!xright - \global\!Ybot=\!ybot \global\!Ytop=\!ytop - \egroup% - \ht\!picbox=\!Ytop \dp\!picbox=-\!Ybot - \ifdim\!Ybot>\!zpt - \else - \ifdim\!Ytop<\!zpt - \!Ybot=\!Ytop - \else - \!Ybot=\!zpt - \fi - \fi - \hbox{\kern-\!Xleft\lower\!Ybot\box\!picbox\kern\!Xright}} - -% ** \endpicturesave : See Subsection 8.4 of the manual. -\def\endpicturesave <#1,#2>{% - \endpicture \global #1=\!Xleft \global #2=\!Ybot \ignorespaces} - - -% ** \setcoordinatesystem units -% ** point at XREF YREF -% ** Each of `units ' and `point at XREF YREF' -% ** are optional. -% ** Unit lengths must be given in dimensions (e.g., <10pt,1in>). -% ** Default unit lengths are 1pt, 1pt, or previous unit lengths. -% ** Reference point is specified in current units (e.g., 3 5 ). -% ** Default reference point is 0 0 , or previous reference point. -% ** Unit lengths and reference points obey TEX's scoping rules. -% ** See Subsection 1.2 of the manual. -\def\setcoordinatesystem{% - \!ifnextchar{u}{\!getlengths } - {\!getlengths units <\!xunit,\!yunit>}} -\def\!getlengths units <#1,#2>{% - \!xunit=#1\relax - \!yunit=#2\relax - \!ifcoordmode - \let\!SCnext=\!SCccheckforRP - \else - \let\!SCnext=\!SCdcheckforRP - \fi - \!SCnext} -\def\!SCccheckforRP{% - \!ifnextchar{p}{\!cgetreference } - {\!cgetreference point at {\!xref} {\!yref} }} -\def\!cgetreference point at #1 #2 {% - \edef\!xref{#1}\edef\!yref{#2}% - \!xorigin=\!xref\!xunit \!yorigin=\!yref\!yunit - \!initinboundscheck % ** See linear.tex - \ignorespaces} -\def\!SCdcheckforRP{% - \!ifnextchar{p}{\!dgetreference}% - {\ignorespaces}} -\def\!dgetreference point at #1 #2 {% - \!xorigin=#1\relax \!yorigin=#2\relax - \ignorespaces} - - -% ** \put {OBJECT} [XY] at (XCOORD,YCOORD) -% ** `[XY]' and `' are optional. -% ** First OBJECT is placed in an hbox (the "objectbox") and then a -% ** "reference point" is assigned to the objectbox as follows: -% ** [1] first, the reference point is taken to be the center of the box; -% ** [2] next, centering is overridden by the specifications -% ** X=l -- reference point along the left edge of the objectbox -% ** X=r -- reference point along the right edge of the objectbox -% ** Y=b -- reference point along the bottom edge of the objectbox -% ** Y=B -- reference point along the Baseline of the objectbox -% ** Y=t -- reference point along the top edge of the objectbox; -% ** [3] finally the reference point is shifted left by XDIMEN, down -% ** by YDIMEN (both default to 0pt). -% ** The objectbox is placed within PICBOX with its reference point at -% ** (XCOORD,YCOORD). -% ** If OBJECT is a saved box, say box0, you have to write -% ** \put{\box0}... or \put{\copy0}... -% ** The objectbox is void after the put. -% ** See Subsection 2.1 of the manual. -\long\def\put#1#2 at #3 #4 {% - \!setputobject{#1}{#2}% - \!xpos=\!M{#3}\!xunit \!ypos=\!M{#4}\!yunit - \!rotateaboutpivot\!xpos\!ypos% - \advance\!xpos -\!xorigin \advance\!xpos -\!xshift - \advance\!ypos -\!yorigin \advance\!ypos -\!yshift - \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos% - \!doaccounting\ignorespaces} - -% ** \multiput etc. Like \put. The objectbox is not voided until the -% ** termininating /, and is placed repeatedly with: -% ** XCOORD YCOORD -- the objectbox is put down with its reference point -% ** at (XCOORD,YCOORD); -% ** *N DXCOORD DYCOORD -- each of N times the current -% ** (xcoord,ycoord) is incremented by (DXCOORD,DYCOORD), and the -% ** objectbox is put down with its reference point at (xcoord,ycoord) -% ** (This specification has to follow an XCOORD YCOORD pair) -% ** See Subsection 2.2 of the manual. -\long\def\multiput #1#2 at {% - \!setputobject{#1}{#2}% - \!ifnextchar"{\!putfromfile}{\!multiput}} -\def\!putfromfile"#1"{% - \expandafter\!multiput \input #1 /} -\def\!multiput{% - \futurelet\!nextchar\!!multiput} -\def\!!multiput{% - \if *\!nextchar - \def\!nextput{\!alsoby}% - \else - \if /\!nextchar - \def\!nextput{\!finishmultiput}% - \else - \def\!nextput{\!alsoat}% - \fi - \fi - \!nextput} -\def\!finishmultiput/{% - \setbox\!putobject=\hbox{}% - \ignorespaces} - -% ** \!alsoat XCOORD YCOORD -% ** The objectbox is put down with reference point at XCOORD,YCOORD -\def\!alsoat#1 #2 {% - \!xpos=\!M{#1}\!xunit \!ypos=\!M{#2}\!yunit - \!rotateaboutpivot\!xpos\!ypos% - \advance\!xpos -\!xorigin \advance\!xpos -\!xshift - \advance\!ypos -\!yorigin \advance\!ypos -\!yshift - \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos% - \!doaccounting - \!multiput} - -% ** \!alsoby*N DXCOORD DYCOORD -% ** N times, the current (XCOORD,YCOORD) is advanced by (DXCOORD,DYCOORD), -% ** and the current (shifted, oriented) OBJECT is put down. -\def\!alsoby*#1 #2 #3 {% - \!dxpos=\!M{#2}\!xunit \!dypos=\!M{#3}\!yunit - \!rotateonly\!dxpos\!dypos - \!ntemp=#1% - \!!loop\ifnum\!ntemp>0 - \advance\!xpos by \!dxpos \advance\!ypos by \!dypos - \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos% - \advance\!ntemp by -1 - \repeat - \!doaccounting - \!multiput} - -% ** \accountingoff : Suspends PiCTeX's accounting of the aggregate -% ** size of the picture box. -% ** \accounting on : Reinstates accounting. -% ** See Subsection 8.2 of the manual. -\def\accountingon{\def\!doaccounting{\!!doaccounting}\ignorespaces} -\def\accountingoff{\def\!doaccounting{}\ignorespaces} -\accountingon -\def\!!doaccounting{% - \!xtemp=\!xpos - \!ytemp=\!ypos - \ifdim\!xtemp<\!xleft - \!xleft=\!xtemp - \fi - \advance\!xtemp by \!wd - \ifdim\!xright<\!xtemp - \!xright=\!xtemp - \fi - \advance\!ytemp by -\!dp - \ifdim\!ytemp<\!ybot - \!ybot=\!ytemp - \fi - \advance\!ytemp by \!dp - \advance\!ytemp by \!ht - \ifdim\!ytemp>\!ytop - \!ytop=\!ytemp - \fi} - -\long\def\!setputobject#1#2{% - \setbox\!putobject=\hbox{#1}% - \!ht=\ht\!putobject \!dp=\dp\!putobject \!wd=\wd\!putobject - \wd\!putobject=\!zpt - \!xshift=.5\!wd \!yshift=.5\!ht \advance\!yshift by -.5\!dp - \edef\!putorientation{#2}% - \expandafter\!SPOreadA\!putorientation[]\!nil% - \expandafter\!SPOreadB\!putorientation<\!zpt,\!zpt>\!nil\ignorespaces} - -\def\!SPOreadA#1[#2]#3\!nil{\!etfor\!orientation:=#2\do\!SPOreviseshift} - -\def\!SPOreadB#1<#2,#3>#4\!nil{\advance\!xshift by -#2\advance\!yshift by -#3} - -\def\!SPOreviseshift{% - \if l\!orientation - \!xshift=\!zpt - \else - \if r\!orientation - \!xshift=\!wd - \else - \if b\!orientation - \!yshift=-\!dp - \else - \if B\!orientation - \!yshift=\!zpt - \else - \if t\!orientation - \!yshift=\!ht - \fi - \fi - \fi - \fi - \fi} - - -% ** \!dimenput{OBJECT} [XY] (XLOC,YLOC) -% ** This is an internal put routine, similar to \put, except that -% ** XLOC=distance right from reference point, YLOC=distance up from -% ** reference point. XLOC and YLOC are dimensions, so this routine -% ** is completely independent of the current coordinate system. -% ** This routine does NOT do ROTATIONS. -\long\def\!dimenput#1#2(#3,#4){% - \!setputobject{#1}{#2}% - \!xpos=#3\advance\!xpos by -\!xshift - \!ypos=#4\advance\!ypos by -\!yshift - \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos% - \!doaccounting\ignorespaces} - - -% ** The following macros permit the picture drawing routines to be used -% ** either in the default "coordinate mode", or in "dimension mode". -% ** In coordinate mode \!M(1.5,\!xunit) expands to 1.5\!xunit -% ** In dimension mode \!M(1.5pt,\!xunit) expands to 1.5pt -% ** Dimension mode is useful in coding macros. -% ** Any special purpose picture macro that sets dimension mode should -% ** reset coordinate mode before completion. -% ** See Subsection 9.2 of the manual. -\def\!setdimenmode{% - \let\!M=\!M!!\ignorespaces} -\def\!setcoordmode{% - \let\!M=\!M!\ignorespaces} -\def\!ifcoordmode{% - \ifx \!M \!M!} -\def\!ifdimenmode{% - \ifx \!M \!M!!} -\def\!M!#1#2{#1#2} -\def\!M!!#1#2{#1} -\!setcoordmode -\let\setdimensionmode=\!setdimenmode -\let\setcoordinatemode=\!setcoordmode - -% ** \Xdistance{XCOORD}, \Ydistance{YCOORD} are the horizontal and -% ** vertical distances from the origin (0,0) to the point -% ** (XCOORD,YCOORD) in the current coordinate system. -% ** See Subsection 9.2 of the manual. -\def\Xdistance#1{% - \!M{#1}\!xunit - \ignorespaces} -\def\Ydistance#1{% - \!M{#1}\!yunit - \ignorespaces} - -% ** The following macros -- \stack, \line, and \Lines -- are useful for -% ** annotating PiCtures. They can be used outside the \beginpicture ... -% ** \endpicture environment. - -% ** \stack [POSITIONING] {VALUESLIST} -% ** Builds a vertical stack of the values in VALUESLIST. Values in -% ** VALUESLIST are separated by commas. In the resulting stack, values are -% ** centered by default, and positioned flush left (right) if -% ** POSITIONING = l (r). Values are separated vertically by LEADING, -% ** which defaults to \stackleading. -% ** See Subsection 2.3 of the manual. -\def\stack{% - \!ifnextchar[{\!stack}{\!stack[c]}} -\def\!stack[#1]{% - \let\!lglue=\hfill \let\!rglue=\hfill - \expandafter\let\csname !#1glue\endcsname=\relax - \!ifnextchar<{\!!stack}{\!!stack<\stackleading>}} -\def\!!stack<#1>#2{% - \vbox{\def\!valueslist{}\!ecfor\!value:=#2\do{% - \expandafter\!rightappend\!value\withCS{\\}\to\!valueslist}% - \!lop\!valueslist\to\!value - \let\\=\cr\lineskiplimit=\maxdimen\lineskip=#1% - \baselineskip=-1000pt\halign{\!lglue##\!rglue\cr \!value\!valueslist\cr}}% - \ignorespaces} - -% ** \lines [POSITIONING] {LINES} -% ** Builds a vertical array of the lines in LINES. Each line in LINES -% ** is terminated by a \cr. In the resulting array, lines are -% ** centered by default, and positioned flush left (right) if -% ** POSITIONING = l (r). The lines in the array are subject to TeX's -% ** usual spacing rules: in particular the baselines are ordinarily an equal -% ** distance apart. The baseline of the array is the baseline of the -% ** the bottom line. -% ** See Subsection 2.3 of the manual. -\def\lines{% - \!ifnextchar[{\!lines}{\!lines[c]}} -\def\!lines[#1]#2{% - \let\!lglue=\hfill \let\!rglue=\hfill - \expandafter\let\csname !#1glue\endcsname=\relax - \vbox{\halign{\!lglue##\!rglue\cr #2\crcr}}% - \ignorespaces} - -% ** \Lines [POSITIONING] {LINES} -% ** Like \lines, but the baseline of the array is the baseline of the -% ** top line. See Subsection 2.3 of the manual. -\def\Lines{% - \!ifnextchar[{\!Lines}{\!Lines[c]}} -\def\!Lines[#1]#2{% - \let\!lglue=\hfill \let\!rglue=\hfill - \expandafter\let\csname !#1glue\endcsname=\relax - \vtop{\halign{\!lglue##\!rglue\cr #2\crcr}}% - \ignorespaces} - - -% ********************************************* -% *** PLOTTING (Things to do with plotting) *** -% ********************************************* - -% ** User commands -% ** \setplotsymbol ({PLOTSYMBOL} [ORIENTATION] ) -% ** \savelinesandcurves on "FILE_NAME" -% ** \dontsavelinesandcurves -% ** \writesavefile {MESSAGE} -% ** \replot {FILE_NAME} - -% ** Internal command -% ** \!plot(XDIMEN,YDIMEN) - -% ** \setplotsymbol ({PLOTSYMBOL} [ ] < , >) -% ** Save PLOTSYMBOL away in an hbox for use with curve plotting routines -% ** See Subsection 5.2 of the manual. -\def\setplotsymbol(#1#2){% - \!setputobject{#1}{#2} - \setbox\!plotsymbol=\box\!putobject% - \!plotsymbolxshift=\!xshift - \!plotsymbolyshift=\!yshift - \ignorespaces} - -\font\fiverm=cmr5 -\setplotsymbol({\fiverm .})% ** initialize plotsymbol - - -% ** \!plot is either \!!plot (when no lines and curves are being saved) or -% ** \!!!plot (when lines and curves are being saved) - -% ** \!!plot(XDIMEN,YDIMEN) -% ** Places the current plotsymbol a horizontal distance=XDIMEN-xorigin -% ** and a vertical distance=YDIMEN-yorigin from the current -% ** reference point. -\def\!!plot(#1,#2){% - \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over - \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up - \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA% - \ignorespaces} - -% ** \!!!plot(XDIMEN,YDIMEN) -% ** Like \!!plot, but also saves the plot location in units of -% ** scaled point, on file `replotfile' -\def\!!!plot(#1,#2){% - \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over - \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up - \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA% - \!countE=\!dimenA - \!countF=\!dimenB - \immediate\write\!replotfile{\the\!countE,\the\!countF.}% - \ignorespaces} - - -% ** \savelinesandcurves on "FILE_NAME" -% ** Switch to save locations used for plotting lines and curves -% ** (No advantage in saving locations for solid lines; however -% ** replotting curve locations speeds things up by a factor of about 4. -% ** \dontsavelinesandcurves -% ** Terminates \savelinesandcurves. The default. -% ** See Subsection 5.6 of the manual. -\def\savelinesandcurves on "#1" {% - \immediate\closeout\!replotfile - \immediate\openout\!replotfile=#1% - \let\!plot=\!!!plot} - -\def\dontsavelinesandcurves {% - \let\!plot=\!!plot} -\dontsavelinesandcurves - -% ** \writesavefile {MESSAGE} -% ** The message is preceded by a "%", so that it won't interfere -% ** with replotting. -% ** See Subsection 5.6 of the manual. -{\catcode`\%=11\xdef\!Commentsignal{%}} -\def\writesavefile#1 {% - \immediate\write\!replotfile{\!Commentsignal #1}% - \ignorespaces} - -% ** \replot "FILE_NAME" -% ** Replots the locations saved earlier under \savelinesandcurves -% ** on "FILE_NAME" -% ** See Subsection 5.6 of the manual. -\def\replot"#1" {% - \expandafter\!replot\input #1 /} -\def\!replot#1,#2. {% - \!dimenA=#1sp - \kern\!dimenA\raise#2sp\copy\!plotsymbol\kern-\!dimenA - \futurelet\!nextchar\!!replot} -\def\!!replot{% - \if /\!nextchar - \def\!next{\!finish}% - \else - \def\!next{\!replot}% - \fi - \!next} -% ************************************************** -% *** PYTHAGORAS (Euclidean distance function) *** -% ************************************************** - -% ** User command: -% ** \placehypotenuse for and in - -% ** Internal command: -% ** \!Pythag{X}{Y}{Z} -% ** Input X,Y are dimensions, or dimension registers. -% ** Output Z == sqrt(X**2+Y**2) must be a dimension register. -% ** Assumes that |X|+|Y| < 2048pt (about 28in). - -% ** Without loss of generality, suppose x>0, y>0. Put s = x+y, -% ** z = sqrt(x**2+y**2). Then z = s*f, where f = sqrt(t**2 + (1-t)**2) -% ** = sqrt((1+tau**2)/2), where t = x/s and tau = 2(t-1/2) . - -% ** Uses the \!divide macro (which uses registers \!dimenA--\!dimenD. -% ** Uses the \!removept macro (e.g., 123.45pt --> 123.45) -% ** Uses registers \!dimenE--\!dimenI. -\def\!Pythag#1#2#3{% - \!dimenE=#1\relax - \ifdim\!dimenE<\!zpt - \!dimenE=-\!dimenE - \fi% ** dimE = |x| - \!dimenF=#2\relax - \ifdim\!dimenF<\!zpt - \!dimenF=-\!dimenF - \fi% ** dimF = |y| - \advance \!dimenF by \!dimenE% ** dimF = s = |x|+|y| - \ifdim\!dimenF=\!zpt - \!dimenG=\!zpt% ** dimG = z = sqrt(x**2+y**2) - \else - \!divide{8\!dimenE}\!dimenF\!dimenE% ** now dimE = 8t = (8|x|)/s - \advance\!dimenE by -4pt% ** 8tau = (8t-4)*2 - \!dimenE=2\!dimenE% ** (tau = 2*t - 1) - \!removept\!dimenE\!!t% ** 8tau, without "pt" - \!dimenE=\!!t\!dimenE% ** (8tau)**2, in pts - \advance\!dimenE by 64pt% ** u = [64 + (8tau)**2]/2 - \divide \!dimenE by 2% ** [u = (8f)**2] - \!dimenH=7pt% ** initial guess g at sqrt(u) - \!!Pythag\!!Pythag\!!Pythag% ** 3 iterations give sqrt(u) - \!removept\!dimenH\!!t% ** 8f=sqrt(u), without "pt" - \!dimenG=\!!t\!dimenF% ** z = (8f)*s/8 - \divide\!dimenG by 8 - \fi - #3=\!dimenG - \ignorespaces} - -\def\!!Pythag{% ** Newton-Raphson for sqrt - \!divide\!dimenE\!dimenH\!dimenI% ** v = u/g - \advance\!dimenH by \!dimenI% ** g <-- (g + u/g)/2 - \divide\!dimenH by 2} - -% ** \placehypotenuse for and in -% ** See Subsection 9.3 of the manual. -\def\placehypotenuse for <#1> and <#2> in <#3> {% - \!Pythag{#1}{#2}{#3}} - - -% ********************************************** -% *** QUADRATIC ARC (Draws a quadratic arc) *** -% ********************************************** - -% ** Internal command -% ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2) - -% ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2) -% ** Draws an arc starting at the (last) point specified by the most recent -% ** \!qjoin, or \!ljoin, or \!start and passing through (X_1,Y_1), (X_2,Y_2). -% ** Uses quadratic interpolation in both x and y: -% ** x(t), 0 <= t <= 1, interpolates x_0, x_1, x_2 at t=0, .5, 1 -% ** y(t), 0 <= t <= 1, interpolates y_0, y_1, y_2 at t=0, .5, 1 - -\def\!qjoin (#1,#2) (#3,#4){% - \advance\!intervalno by 1 - \!ifcoordmode - \edef\!xmidpt{#1}\edef\!ymidpt{#2}% - \else - \!dimenA=#1\relax \edef\!xmidpt{\the\!dimenA}% - \!dimenA=#2\relax \edef\!ymidpt{\the\!dimenA}% - \fi - \!xM=\!M{#1}\!xunit \!yM=\!M{#2}\!yunit \!rotateaboutpivot\!xM\!yM - \!xE=\!M{#3}\!xunit \!yE=\!M{#4}\!yunit \!rotateaboutpivot\!xE\!yE -% -% ** Find coefficients for x(t)=a_x + b_x*t + c_x*t**2 - \!dimenA=\!xM \advance \!dimenA by -\!xS% ** dimA = I = xM - xS - \!dimenB=\!xE \advance \!dimenB by -\!xM% ** dimB = II = xE-xM - \!xB=3\!dimenA \advance \!xB by -\!dimenB% ** b=3I-II - \!xC=2\!dimenB \advance \!xC by -2\!dimenA% ** c=2(II-I) -% -% ** Find coefficients for y(t)=y_x + b_y*t + c_y*t**2 - \!dimenA=\!yM \advance \!dimenA by -\!yS% - \!dimenB=\!yE \advance \!dimenB by -\!yM% - \!yB=3\!dimenA \advance \!yB by -\!dimenB% - \!yC=2\!dimenB \advance \!yC by -2\!dimenA% -% -% ** Use Simpson's rule to calculate arc length over [0,1/2]: -% ** arc length = 1/2[1/6 f(0) + 4/6 f(1/4) + 1/6 f(1/2)] -% ** with f(t) = sqrt(x'(t)**2 + y'(t)**2). - \!xprime=\!xB \!yprime=\!yB% ** x'(t) = b + 2ct - \!dxprime=.5\!xC \!dyprime=.5\!yC% ** dt=1/4 ==> dx'(t) = c/2 - \!getf \!midarclength=\!dimenA - \!getf \advance \!midarclength by 4\!dimenA - \!getf \advance \!midarclength by \!dimenA - \divide \!midarclength by 12 -% -% ** Get arc length over [0,1]. - \!arclength=\!dimenA - \!getf \advance \!arclength by 4\!dimenA - \!getf \advance \!arclength by \!dimenA - \divide \!arclength by 12% ** Now have arc length over [1/2,1] - \advance \!arclength by \!midarclength - \global\advance \totalarclength by \!arclength -% -% -% ** Check to see if there's anything to plot in this interval - \ifdim\!distacross>\!arclength - \advance \!distacross by -\!arclength% ** nothing -% - \else - \!initinverseinterp% ** initialize for inverse interpolation on arc length - \loop\ifdim\!distacross<\!arclength% ** loop over points on arc - \!inverseinterp% ** find t such that arc length[0,t] = distacross, -% ** using inverse quadratic interpolation -% ** now evaluate x(t)=(c*t + b)*t + a - \!xpos=\!t\!xC \advance\!xpos by \!xB - \!xpos=\!t\!xpos \advance \!xpos by \!xS -% ** evaluate y(t) - \!ypos=\!t\!yC \advance\!ypos by \!yB - \!ypos=\!t\!ypos \advance \!ypos by \!yS - \!plotifinbounds% ** plot point if in bounds - \advance\!distacross \plotsymbolspacing%** advance arc length for next pt - \!advancedashing% ** see "linear" - \repeat -% - \advance \!distacross by -\!arclength% ** prepare for next interval - \fi -% - \!xS=\!xE% ** shift ending points to starting points - \!yS=\!yE - \ignorespaces} - - -% ** \!getf -- Calculates sqrt(x'(t)**2 + y'(t)**2) and advances -% ** x'(t) and y'(t) -\def\!getf{\!Pythag\!xprime\!yprime\!dimenA% - \advance\!xprime by \!dxprime - \advance\!yprime by \!dyprime} - - -% ** \!initinverseinterp -- initializes for inverse quadratic interpolation -% ** of arc length provided 1/3 < midarclength/arclength < 2/3; otherwise -% ** initializes for inverse linear interpolation. -\def\!initinverseinterp{% - \ifdim\!arclength>\!zpt - \!divide{8\!midarclength}\!arclength\!dimenE% ** dimE=8w=8r/s, where r -% ** = midarclength, s=arclength -% ** Test for w out of range: w<1/3 or w>2/3 - \ifdim\!dimenE<\!wmin \!setinverselinear - \else - \ifdim\!dimenE>\!wmax \!setinverselinear - \else% ** w in range: initialize - \def\!inverseinterp{\!inversequad}\ignorespaces -% -% ** Calculate the coefficients \!beta and \!gamma of the quadratic -% ** t = \!beta*v + \!gamma*v**2 -% ** taking the values t=0, 1/2, 1 at v=0, w==r/s, 1 respectively: -% ** \!beta = (1/2 - w**2)/[w(1-w)] -% ** \!gamma = 1 - beta. -% - \!removept\!dimenE\!Ew% ** 8w, without "pt" - \!dimenF=-\!Ew\!dimenE% ** -(8w)**2 - \advance\!dimenF by 32pt% ** 32 - (8w)**2 - \!dimenG=8pt - \advance\!dimenG by -\!dimenE% ** 8 - 8w - \!dimenG=\!Ew\!dimenG% ** (8w)*(8-8w) - \!divide\!dimenF\!dimenG\!beta% ** beta = (32-(8w)**2)/(8w(8-8w)) -% ** = (1/2 - w**2)/(w(1-w)) - \!gamma=1pt - \advance \!gamma by -\!beta% ** gamma = 1-beta - \fi% ** end of the \ifdim\!dimenE>\!wmax - \fi% ** end of the \ifdim\!dimenE<\!wmin - \fi% ** end of the \ifdim\!arclength>\!zpt - \ignorespaces} - - -% ** For 0 <= t <= 1, let AL(t) = arclength[0,t]/arclength[0,1]; note -% ** AL(0)=0, AL(1/2)=midarclength/arclength, AL(1)=1. This routine -% ** calculates an approximation to AL^{-1}(distance across/arclength), -% ** using the assumption that AL^{-1} is quadratic. Specifically, -% ** it finds t such that -% ** AL^{-1}(v) =. t = v*(\!beta + \!gamma*v) -% ** where \!beta and \!gamma are set by \!initinv, and where -% ** v=distance across/arclength -\def\!inversequad{% - \!divide\!distacross\!arclength\!dimenG% ** dimG = v = distacross/arclength - \!removept\!dimenG\!v% ** v, without "pt" - \!dimenG=\!v\!gamma% ** gamma*v - \advance\!dimenG by \!beta% ** beta + gamma*v - \!dimenG=\!v\!dimenG% ** t = v*(beta + gamma*v) - \!removept\!dimenG\!t}% ** t, without "pt" - - -% ** When w <= 1/3 or w >= 2/3, the following routine writes (using -% ** plain TEK's \wlog command) a warning message on the user's log file, -% ** and initializes for inverse linear interpolation on arc length. -\def\!setinverselinear{% - \def\!inverseinterp{\!inverselinear}% - \divide\!dimenE by 8 \!removept\!dimenE\!t - \!countC=\!intervalno \multiply \!countC 2 - \!countB=\!countC \advance \!countB -1 - \!countA=\!countB \advance \!countA -1 - \wlog{\the\!countB th point (\!xmidpt,\!ymidpt) being plotted - doesn't lie in the}% - \wlog{ middle third of the arc between the \the\!countA th - and \the\!countC th points:}% - \wlog{ [arc length \the\!countA\space to \the\!countB]/[arc length - \the \!countA\space to \the\!countC]=\!t.}% - \ignorespaces} - -% ** Inverse linear interpolation -\def\!inverselinear{% - \!divide\!distacross\!arclength\!dimenG - \!removept\!dimenG\!t} - - -% ************************************** -% ** ROTATIONS (Handles rotations) *** -% ************************************** - -% ** User commands -% ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT] -% ** \stoprotation - -% ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT] -% ** Future (XCOORD,YCOORD)'s will be rotated about (XPIVOT,YPIVOT) -% ** by the angle with the give COS and SIN. Both fields are optional. -% ** [COS,SIN] defaults to previous value, or (1,0). -% ** (XPIVOT,YPIVOT) defaults to previous value, or (0,0) -% ** You can't change the coordinate system in the scope of a rotation. -% ** See Subsection 9.1 of the manual. -\def\startrotation{% - \let\!rotateaboutpivot=\!!rotateaboutpivot - \let\!rotateonly=\!!rotateonly - \!ifnextchar{b}{\!getsincos }% - {\!getsincos by {\!cosrotationangle} {\!sinrotationangle} }} -\def\!getsincos by #1 #2 {% - \edef\!cosrotationangle{#1}% - \edef\!sinrotationangle{#2}% - \!ifcoordmode - \let\!ROnext=\!ccheckforpivot - \else - \let\!ROnext=\!dcheckforpivot - \fi - \!ROnext} -\def\!ccheckforpivot{% - \!ifnextchar{a}{\!cgetpivot}% - {\!cgetpivot about {\!xpivotcoord} {\!ypivotcoord} }} -\def\!cgetpivot about #1 #2 {% - \edef\!xpivotcoord{#1}% - \edef\!ypivotcoord{#2}% - \!xpivot=#1\!xunit \!ypivot=#2\!yunit - \ignorespaces} -\def\!dcheckforpivot{% - \!ifnextchar{a}{\!dgetpivot}{\ignorespaces}} -\def\!dgetpivot about #1 #2 {% - \!xpivot=#1\relax \!ypivot=#2\relax - \ignorespaces} - - -% ** Following terminates rotation. -% ** See Subsection 9.1 of the manual. -\def\stoprotation{% - \let\!rotateaboutpivot=\!!!rotateaboutpivot - \let\!rotateonly=\!!!rotateonly - \ignorespaces} - -% ** !!rotateaboutpivot{XREG}{YREG} -% ** XREG <-- xpvt + cos(angle)*(XREG-xpvt) - sin(angle)*(YREG-ypvt) -% ** YREG <-- ypvt + cos(angle)*(YREG-ypvt) + sin(angle)*(XREG-xpvt) -% ** XREG,YREG are dimension registers. Can't be \!dimenA to \!dimenD -\def\!!rotateaboutpivot#1#2{% - \!dimenA=#1\relax \advance\!dimenA -\!xpivot - \!dimenB=#2\relax \advance\!dimenB -\!ypivot - \!dimenC=\!cosrotationangle\!dimenA - \advance \!dimenC -\!sinrotationangle\!dimenB - \!dimenD=\!cosrotationangle\!dimenB - \advance \!dimenD \!sinrotationangle\!dimenA - \advance\!dimenC \!xpivot \advance\!dimenD \!ypivot - #1=\!dimenC #2=\!dimenD - \ignorespaces} - -% ** \!!rotateonly{XREG}{YREG} -% ** Like \!!rotateaboutpivot, but with a pivot of (0,0) -\def\!!rotateonly#1#2{% - \!dimenA=#1\relax \!dimenB=#2\relax - \!dimenC=\!cosrotationangle\!dimenA - \advance \!dimenC -\!rotsign\!sinrotationangle\!dimenB - \!dimenD=\!cosrotationangle\!dimenB - \advance \!dimenD \!rotsign\!sinrotationangle\!dimenA - #1=\!dimenC #2=\!dimenD - \ignorespaces} -\def\!rotsign{} -\def\!!!rotateaboutpivot#1#2{\relax} -\def\!!!rotateonly#1#2{\relax} -\stoprotation - -\def\!reverserotateonly#1#2{% - \def\!rotsign{-}% - \!rotateonly{#1}{#2}% - \def\!rotsign{}% - \ignorespaces} - - -% ********************************** -% *** SHADING (Handles shading) *** -% ********************************** - -% ** User commands -% ** \setshadegrid [span ] [point at XSHADE YSHADE] -% ** \setshadesymbol [] ({SHADESYMBOL} -% ** [ORIENTATION]) - -% ** Internal commands: -% ** \!startvshade (xS,ybS,ytS) -% ** \!starthshade (yS,xlS,xrS) -% ** \!lshade [] -% ** ** when shading vertically: -% ** [the region from (xS,ybS,ytS) to] (xE,ybE,ytE) -% ** ** when shading horizontally: -% ** [the region from (yS,xlS,xrS) to] (yE,xlE,xrE) -% ** \!qshade [] -% ** ** when shading vertically: -% ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) (xE,ybE,ytE) -% ** ** when shading horizontally: -% ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) (yE,xlE,xrE) -% ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION} -% ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN} - - -% ** The shading routine can operate either in a "vertical mode" or a -% ** "horizontal mode". In vertical mode, the region to be shaded is specified -% ** in the form -% ** {(x,y): xl <= x <= xr & yb(x) <= y <= yt(x)} -% ** where yb and yt are functions of x. In horizontal mode, the region -% ** is specified in the form -% ** {(x,y): yb <= y <= yt & xl(y) <= x <= xr(y)}. -% ** The functions yb and yt may be either both linear or both quadratic; -% ** similarly for xl and xr. A region with say, piecewise quadratic bottom -% ** and top boundaries, can be shaded by consecutive (vertical) \!qshades, -% ** proceeding from left to right. Similarly, a region with piecewise -% ** quadratic left and right boundaries can be shaded by consecutive -% ** (horizontal) \!qshades, proceeding from bottom to top. More complex -% ** regions can be shaded by partitioning them into appropriate subregions, -% ** and shading those. - -% ** Shading is accomplished by placing a user-selected shading symbol at -% ** those points of a regular grid which fall within the region to be -% ** shaded. This region can be "shrunk" so that a largish shading symbol -% ** will not extend outside it. Shrinking is accomplished by specifying -% ** shrinkages for the left, right, bottom, and top boundaries, in a manner -% ** discussed further below. - -% ** \shades and \!joins MUST NOT be intermingled. Finish drawing a curve -% ** before starting to shade a region, and finish shading a region before -% ** starting to draw a curve. - - -% ** \setshadegrid [span ] [point at XSHADE YSHADE] -% ** The shading symbol is placed down on the points of a grid centered -% ** at the coordinate point (XSHADE,YSHADE). The grid points are of the -% ** form (j*SPAN,k*SPAN), with j+k even. SPAN is specified -% ** as a dimension. -% ** (XSHADE,YSHADE) defaults to previous (XSHADE,YSHADE) (or (0,0) if none) -% ** SPAN defaults to previous span (or 5pt if none) -% ** See Subsection 7.2 of the manual. -\def\setshadegrid{% - \!ifnextchar{s}{\!getspan } - {\!getspan span <\!dshade>}} -\def\!getspan span <#1>{% - \!dshade=#1\relax - \!ifcoordmode - \let\!GRnext=\!GRccheckforAP - \else - \let\!GRnext=\!GRdcheckforAP - \fi - \!GRnext} -\def\!GRccheckforAP{% - \!ifnextchar{p}{\!cgetanchor } - {\!cgetanchor point at {\!xshadesave} {\!yshadesave} }} -\def\!cgetanchor point at #1 #2 {% - \edef\!xshadesave{#1}\edef\!yshadesave{#2}% - \!xshade=\!xshadesave\!xunit \!yshade=\!yshadesave\!yunit - \ignorespaces} -\def\!GRdcheckforAP{% - \!ifnextchar{p}{\!dgetanchor}% - {\ignorespaces}} -\def\!dgetanchor point at #1 #2 {% - \!xshade=#1\relax \!yshade=#2\relax - \ignorespaces} - -% ** \setshadesymbol [] ({SHADESYMBOL} -% ** [ORIENTATION]) -% ** Saves SHADESYMBOL away in an hbox for use with shading routines. -% ** A shade symbol will not be plotted if its plot position comes within -% ** distance LS of the left boundary, RS of the right boundary, TS of the -% ** top boundary, BS of the bottom boundary. These parameters have -% ** default values that should work in most cases (see below). -% ** To override a default value, specify the replacement value -% ** in the appropriate subfield of the shrinkages field. -% ** 0pt may be coded as "z" (without the quotes). To accept a -% ** default value, leave the field empty. Thus -% ** [,z,,5pt] sets LS=default, RS=0pt, BS=default, TS=5pt . -% ** Skipping the shrinkages field accepts all the defaults. -% ** See Subsection 7.1 of the manual. -\def\setshadesymbol{% - \!ifnextchar<{\!setshadesymbol}{\!setshadesymbol<,,,> }} - -\def\!setshadesymbol <#1,#2,#3,#4> (#5#6){% -% ** set the shadesymbol - \!setputobject{#5}{#6}% - \setbox\!shadesymbol=\box\!putobject% - \!shadesymbolxshift=\!xshift \!shadesymbolyshift=\!yshift -% -% ** set the shrinkages - \!dimenA=\!xshift \advance\!dimenA \!smidge% ** default LS = xshift - smidge - \!override\!dimenA{#1}\!lshrinkage% - \!dimenA=\!wd \advance \!dimenA -\!xshift% ** default RS = width - xshift - \advance\!dimenA \!smidge% - smidge - \!override\!dimenA{#2}\!rshrinkage - \!dimenA=\!dp \advance \!dimenA \!yshift% ** default BS = depth + yshift - \advance\!dimenA \!smidge% - smidge - \!override\!dimenA{#3}\!bshrinkage - \!dimenA=\!ht \advance \!dimenA -\!yshift% ** default TS = height - yshift - \advance\!dimenA \!smidge% - smidge - \!override\!dimenA{#4}\!tshrinkage - \ignorespaces} -\def\!smidge{-.2pt}% - -% ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN} -% ** Overrides the NOMINAL DIMEN by the REPLACEMENT DIMEN to produce DIMEN, -% ** according to the following rules: -% ** REPLACEMENT DIMEN empty: DIMEN <-- NOMINAL DIMEN -% ** REPLACEMENT DIMEN z: DIMEN <-- 0pt -% ** otherwise: DIMEN <-- REPLACEMENT DIMEN -% ** DIMEN must be a dimension register -\def\!override#1#2#3{% - \edef\!!override{#2}% - \ifx \!!override\empty - #3=#1\relax - \else - \if z\!!override - #3=\!zpt - \else - \ifx \!!override\!blankz - #3=\!zpt - \else - #3=#2\relax - \fi - \fi - \fi - \ignorespaces} -\def\!blankz{ z} - -\setshadesymbol ({\fiverm .})% ** initialize plotsymbol -% ** \fivesy ^^B is a small cross - - -% ** \!startvshade [at] (xS,ybS,ytS) -% ** Initiates vertical shading mode -\def\!startvshade#1(#2,#3,#4){% - \let\!!xunit=\!xunit% - \let\!!yunit=\!yunit% - \let\!!xshade=\!xshade% - \let\!!yshade=\!yshade% - \def\!getshrinkages{\!vgetshrinkages}% - \let\!setshadelocation=\!vsetshadelocation% - \!xS=\!M{#2}\!!xunit - \!ybS=\!M{#3}\!!yunit - \!ytS=\!M{#4}\!!yunit - \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift - \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift - \ignorespaces} - -% ** \!starthshade [at] (yS,xlS,xrS) -% ** Initiates horizontal shading mode -\def\!starthshade#1(#2,#3,#4){% - \let\!!xunit=\!yunit% - \let\!!yunit=\!xunit% - \let\!!xshade=\!yshade% - \let\!!yshade=\!xshade% - \def\!getshrinkages{\!hgetshrinkages}% - \let\!setshadelocation=\!hsetshadelocation% - \!xS=\!M{#2}\!!xunit - \!ybS=\!M{#3}\!!yunit - \!ytS=\!M{#4}\!!yunit - \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift - \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift - \ignorespaces} - - -% ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION} -% ** Consider the lattice with points ANCHOR + j*SPAN. This routine determines -% ** the index k of the smallest lattice point >= LOCATION, and sets -% ** LATTICE LOCATION = ANCHOR + k*SPAN. -% ** INDEX is assumed to be a count register, LATTICE LOCATION a dimen reg. -\def\!lattice#1#2#3#4#5{% - \!dimenA=#1% ** dimA = ANCHOR - \!dimenB=#2% ** dimB = SPAN (assumed > 0pt) - \!countB=\!dimenB% ** ctB = SPAN, as a count -% -% ** Determine index of smallest lattice point >= LOCATION - \!dimenC=#3% ** dimC = LOCATION - \advance\!dimenC -\!dimenA% ** now dimC = LOCATION-ANCHOR - \!countA=\!dimenC% ** ctA = above, as a count - \divide\!countA \!countB% ** now ctA = desired index, if dimC <= 0 - \ifdim\!dimenC>\!zpt - \!dimenD=\!countA\!dimenB% ** (tentative k)*span - \ifdim\!dimenD<\!dimenC% ** if this is false, ctA = desired index - \advance\!countA 1 % ** if true, have to add 1 - \fi - \fi -% - \!dimenC=\!countA\!dimenB% ** lattice location = anchor + ctA*span - \advance\!dimenC \!dimenA - #4=\!countA% ** the desired index - #5=\!dimenC% ** corresponding lattice location - \ignorespaces} - - -% ** \!qshade [with shrinkages] [[LS,RS,BS,TS]] -% ***** during vertical shading: -% ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) [and] (xE,ybE,ytE) -% ** Shades the region {(x,y): xS <= x <= xE, yb(x) <= y <= yt(x)}, where -% ** yb is the quadratic thru (xS,ybS) & (xM,ybM) & (xE,ybE) -% ** yt is the quadratic thru (xS,ytS) & (xM,ybM) & (xE,ytE) -% ** xS,ybS,ytS are either given by \!startvshade or carried over -% ** as the ending values of the immediately preceding \!qshade. -% ** For the interpretation of LS, RS, BS, & TS, see \setshadesymbol. The -% ** values set there can be overridden, for the course of this \!qshade -% ** only, in the same manner as overrides are specified for -% ** \setshadesymbol. -% ***** during horizontal shading: -% ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) [and] (yE,xlE,xrE) -\def\!qshade#1(#2,#3,#4)#5(#6,#7,#8){% - \!xM=\!M{#2}\!!xunit - \!ybM=\!M{#3}\!!yunit - \!ytM=\!M{#4}\!!yunit - \!xE=\!M{#6}\!!xunit - \!ybE=\!M{#7}\!!yunit - \!ytE=\!M{#8}\!!yunit - \!getcoeffs\!xS\!ybS\!xM\!ybM\!xE\!ybE\!ybB\!ybC%**Get coefficients B & C for - \!getcoeffs\!xS\!ytS\!xM\!ytM\!xE\!ytE\!ytB\!ytC%**y=y0 + B(x-X0) + C(x-X0)**2 - \def\!getylimits{\!qgetylimits}% - \!shade{#1}\ignorespaces} - -% ** \!lshade ... (xE,ybE,ytE) -% ** This is like \!qshade, but the top and bottom boundaries are linear, -% ** rather than quadratic. -\def\!lshade#1(#2,#3,#4){% - \!xE=\!M{#2}\!!xunit - \!ybE=\!M{#3}\!!yunit - \!ytE=\!M{#4}\!!yunit - \!dimenE=\!xE \advance \!dimenE -\!xS% ** xE-xS - \!dimenC=\!ytE \advance \!dimenC -\!ytS% ** ytE-ytS - \!divide\!dimenC\!dimenE\!ytB% ** ytB = (ytE-ytS)/(xE-xS) - \!dimenC=\!ybE \advance \!dimenC -\!ybS% ** ybE-ybS - \!divide\!dimenC\!dimenE\!ybB% ** ybB = (ybE-ybS)/(xE-xS) - \def\!getylimits{\!lgetylimits}% - \!shade{#1}\ignorespaces} - -% ** \!getcoeffs{X0}{Y0}{X1}{Y1}{X2}{Y2}{B}{C} -% ** Finds B and C such that the quadratic y = Y0 + B(x-X0) + C(x-X0)**2 -% ** passes through (X1,Y1) and (X2,Y2): when X0=0=Y0, the formulas are: -% ** B = S1 - X1*C, C = (S2-S1)/X2 -% ** with -% ** S1 = Y1/X1, S2 = (Y2-Y1)/(X2-X1). -\def\!getcoeffs#1#2#3#4#5#6#7#8{% - \!dimenC=#4\advance \!dimenC -#2% ** dimC=Y1-Y0 - \!dimenE=#3\advance \!dimenE -#1% ** dimE=X1-X0 - \!divide\!dimenC\!dimenE\!dimenF% ** dimF=S1 - \!dimenC=#6\advance \!dimenC -#4% ** dimC=Y2-Y1 - \!dimenH=#5\advance \!dimenH -#3% ** dimH=X2-X1 - \!divide\!dimenC\!dimenH\!dimenG% ** dimG=S2 - \advance\!dimenG -\!dimenF% ** dimG=S2-S1 - \advance \!dimenH \!dimenE% ** dimH=X2-X0 - \!divide\!dimenG\!dimenH#8% ** C=(S2-S1)/(X2-X0) - \!removept#8\!t% ** C, without "pt" - #7=-\!t\!dimenE% ** -C*(X1-X0) - \advance #7\!dimenF% ** B=S1-C*(X1-X0) - \ignorespaces} - - -\def\!shade#1{% -% ** Get LS,RS,BS,TS for this panel - \!getshrinkages#1<,,,>\!nil% % ** now effective LS=dimE, RS=dimF, -% ** BS=dimG, TS=dimH - \advance \!dimenE \!xS% ** now dimE=xS+LS - \!lattice\!!xshade\!dshade\!dimenE% ** set parity=index of left-mst x-lattice - \!parity\!xpos% ** point >= xS+LS, xpos=its location - \!dimenF=-\!dimenF% ** set dimF=xE-RS - \advance\!dimenF \!xE -% - \!loop\!not{\ifdim\!xpos>\!dimenF}% ** loop over x-lattice points <= xE-RS - \!shadecolumn% - \advance\!xpos \!dshade% ** move over to next column - \advance\!parity 1% ** increase index of x-point - \repeat -% - \!xS=\!xE% ** shift ending values to starting values - \!ybS=\!ybE - \!ytS=\!ytE - \ignorespaces} - - -\def\!vgetshrinkages#1<#2,#3,#4,#5>#6\!nil{% - \!override\!lshrinkage{#2}\!dimenE - \!override\!rshrinkage{#3}\!dimenF - \!override\!bshrinkage{#4}\!dimenG - \!override\!tshrinkage{#5}\!dimenH - \ignorespaces} -\def\!hgetshrinkages#1<#2,#3,#4,#5>#6\!nil{% - \!override\!lshrinkage{#2}\!dimenG - \!override\!rshrinkage{#3}\!dimenH - \!override\!bshrinkage{#4}\!dimenE - \!override\!tshrinkage{#5}\!dimenF - \ignorespaces} - - -\def\!shadecolumn{% - \!dxpos=\!xpos - \advance\!dxpos -\!xS% ** dx = x - xS - \!removept\!dxpos\!dx% ** ditto, without "pt" - \!getylimits% ** get top and bottom y-values - \advance\!ytpos -\!dimenH% ** less TS - \advance\!ybpos \!dimenG% ** plus BS - \!yloc=\!!yshade% ** get anchor point for this column - \ifodd\!parity - \advance\!yloc \!dshade - \fi - \!lattice\!yloc{2\!dshade}\!ybpos% - \!countA\!ypos% ** ypos=smallest y point for this column - \!dimenA=-\!shadexorigin \advance \!dimenA \!xpos% ** over - \loop\!not{\ifdim\!ypos>\!ytpos}% ** loop over ypos <= yt(t) - \!setshadelocation% ** vmode: xloc=xpos, yloc=ypos -% ** hmode: xloc=ypos, yloc=xpos - \!rotateaboutpivot\!xloc\!yloc% - \!dimenA=-\!shadexorigin \advance \!dimenA \!xloc% ** over - \!dimenB=-\!shadeyorigin \advance \!dimenB \!yloc% ** up - \kern\!dimenA \raise\!dimenB\copy\!shadesymbol \kern-\!dimenA - \advance\!ypos 2\!dshade - \repeat - \ignorespaces} - -\def\!qgetylimits{% - \!dimenA=\!dx\!ytC - \advance\!dimenA \!ytB% ** yt(t)=ytS + dx*(Bt + dx*Ct) - \!ytpos=\!dx\!dimenA - \advance\!ytpos \!ytS - \!dimenA=\!dx\!ybC - \advance\!dimenA \!ybB% ** yb(t)=ybS + dx*(Bb + dx*Cb) - \!ybpos=\!dx\!dimenA - \advance\!ybpos \!ybS} - -\def\!lgetylimits{% - \!ytpos=\!dx\!ytB% ** yt(t)=ytS + dx*Bt - \advance\!ytpos \!ytS - \!ybpos=\!dx\!ybB% ** yb(t)=ybS + dx*Bb - \advance\!ybpos \!ybS} - -\def\!vsetshadelocation{% ** vmode: xloc=xpos, yloc=ypos - \!xloc=\!xpos - \!yloc=\!ypos} -\def\!hsetshadelocation{% ** hmode: xloc=ypos, yloc=xpos - \!xloc=\!ypos - \!yloc=\!xpos} - - -% ************************************** -% *** TICKS (Draws ticks on graphs) *** -% ************************************** - -% ** User commands -% ** \ticksout -% ** \ticksin -% ** \gridlines -% ** \nogridlines -% ** \loggedticks -% ** \unloggesticks -% ** See Subsection 3.4 of the manual - -% ** The following is an option of the \axis command -% ** ticks -% ** [in] [out] -% ** [long] [short] [length ] -% ** [width ] -% ** [andacross] [butnotacross] -% ** [logged] [unlogged] -% ** [unlabeled] [numbered] [withvalues VALUE1 VALUE2 ... VALUEk / ] -% ** [quantity Q] [at LOC1 LOC2 ... LOCk / ] [from LOC1 to LOC2 by -% ** LOC_INCREMENT] -% ** See Subsection 3.2 of the manual for the rules. - -% ** The various options of the tick field are processed by the -% ** \!nextkeyword command defined below. -% ** For example, `\!nextkeyword short ' expands to `\!ticksshort', -% ** while `\!nextkeyword withvalues' expands to `\!tickswithvalues'. - -\def\!axisticks {% - \def\!nextkeyword##1 {% - \expandafter\ifx\csname !ticks##1\endcsname \relax - \def\!next{\!fixkeyword{##1}}% - \else - \def\!next{\csname !ticks##1\endcsname}% - \fi - \!next}% - \!axissetup - \def\!axissetup{\relax}% - \edef\!ticksinoutsign{\!ticksinoutSign}% - \!ticklength=\longticklength - \!tickwidth=\linethickness - \!gridlinestatus - \!setticktransform - \!maketick - \!tickcase=0 - \def\!LTlist{}% - \!nextkeyword} - -\def\ticksout{% - \def\!ticksinoutSign{+}} -\def\ticksin{% - \def\!ticksinoutSign{-}} -\ticksout - -\def\gridlines{% - \def\!gridlinestatus{\!gridlinestootrue}} -\def\nogridlines{% - \def\!gridlinestatus{\!gridlinestoofalse}} -\nogridlines - -\def\loggedticks{% - \def\!setticktransform{\let\!ticktransform=\!logten}} -\def\unloggedticks{% - \def\!setticktransform{\let\!ticktransform=\!donothing}} -\def\!donothing#1#2{\def#2{#1}} -\unloggedticks - -% ** \!ticks/ : terminates read of tick options -\expandafter\def\csname !ticks/\endcsname{% - \!not {\ifx \!LTlist\empty} - \!placetickvalues - \fi - \def\!tickvalueslist{}% - \def\!LTlist{}% - \expandafter\csname !axis/\endcsname} - -\def\!maketick{% - \setbox\!boxA=\hbox{% - \beginpicture - \!setdimenmode - \setcoordinatesystem point at {\!zpt} {\!zpt} - \linethickness=\!tickwidth - \ifdim\!ticklength>\!zpt - \putrule from {\!zpt} {\!zpt} to - {\!ticksinoutsign\!tickxsign\!ticklength} - {\!ticksinoutsign\!tickysign\!ticklength} - \fi - \if!gridlinestoo - \putrule from {\!zpt} {\!zpt} to - {-\!tickxsign\!xaxislength} {-\!tickysign\!yaxislength} - \fi - \endpicturesave <\!Xsave,\!Ysave>}% - \wd\!boxA=\!zpt} - -\def\!ticksin{% - \def\!ticksinoutsign{-}% - \!maketick - \!nextkeyword} - -\def\!ticksout{% - \def\!ticksinoutsign{+}% - \!maketick - \!nextkeyword} - -\def\!tickslength<#1> {% - \!ticklength=#1\relax - \!maketick - \!nextkeyword} - -\def\!tickslong{% - \!tickslength<\longticklength> } - -\def\!ticksshort{% - \!tickslength<\shortticklength> } - -\def\!tickswidth<#1> {% - \!tickwidth=#1\relax - \!maketick - \!nextkeyword} - -\def\!ticksandacross{% - \!gridlinestootrue - \!maketick - \!nextkeyword} - -\def\!ticksbutnotacross{% - \!gridlinestoofalse - \!maketick - \!nextkeyword} - -\def\!tickslogged{% - \let\!ticktransform=\!logten - \!nextkeyword} - -\def\!ticksunlogged{% - \let\!ticktransform=\!donothing - \!nextkeyword} - -\def\!ticksunlabeled{% - \!tickcase=0 - \!nextkeyword} - -\def\!ticksnumbered{% - \!tickcase=1 - \!nextkeyword} - -\def\!tickswithvalues#1/ {% - \edef\!tickvalueslist{#1! /}% - \!tickcase=2 - \!nextkeyword} - -\def\!ticksquantity#1 {% - \ifnum #1>1 - \!updatetickoffset - \!countA=#1\relax - \advance \!countA -1 - \!ticklocationincr=\!axisLength - \divide \!ticklocationincr \!countA - \!ticklocation=\!axisstart - \loop \!not{\ifdim \!ticklocation>\!axisend} - \!placetick\!ticklocation - \ifcase\!tickcase - \relax % Case 0: no labels - \or - \relax % Case 1: numbered -- not available here - \or - \expandafter\!gettickvaluefrom\!tickvalueslist - \edef\!tickfield{{\the\!ticklocation}{\!value}}% - \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% - \fi - \advance \!ticklocation \!ticklocationincr - \repeat - \fi - \!nextkeyword} - -\def\!ticksat#1 {% - \!updatetickoffset - \edef\!Loc{#1}% - \if /\!Loc - \def\next{\!nextkeyword}% - \else - \!ticksincommon - \def\next{\!ticksat}% - \fi - \next} - -\def\!ticksfrom#1 to #2 by #3 {% - \!updatetickoffset - \edef\!arg{#3}% - \expandafter\!separate\!arg\!nil - \!scalefactor=1 - \expandafter\!countfigures\!arg/ - \edef\!arg{#1}% - \!scaleup\!arg by\!scalefactor to\!countE - \edef\!arg{#2}% - \!scaleup\!arg by\!scalefactor to\!countF - \edef\!arg{#3}% - \!scaleup\!arg by\!scalefactor to\!countG - \loop \!not{\ifnum\!countE>\!countF} - \ifnum\!scalefactor=1 - \edef\!Loc{\the\!countE}% - \else - \!scaledown\!countE by\!scalefactor to\!Loc - \fi - \!ticksincommon - \advance \!countE \!countG - \repeat - \!nextkeyword} - -\def\!updatetickoffset{% - \!dimenA=\!ticksinoutsign\!ticklength - \ifdim \!dimenA>\!offset - \!offset=\!dimenA - \fi} - -\def\!placetick#1{% - \if!xswitch - \!xpos=#1\relax - \!ypos=\!axisylevel - \else - \!xpos=\!axisxlevel - \!ypos=#1\relax - \fi - \advance\!xpos \!Xsave - \advance\!ypos \!Ysave - \kern\!xpos\raise\!ypos\copy\!boxA\kern-\!xpos - \ignorespaces} - -\def\!gettickvaluefrom#1 #2 /{% - \edef\!value{#1}% - \edef\!tickvalueslist{#2 /}% - \ifx \!tickvalueslist\!endtickvaluelist - \!tickcase=0 - \fi} -\def\!endtickvaluelist{! /} - -\def\!ticksincommon{% - \!ticktransform\!Loc\!t - \!ticklocation=\!t\!!unit - \advance\!ticklocation -\!!origin - \!placetick\!ticklocation - \ifcase\!tickcase - \relax % Case 0: no labels - \or % Case 1: numbered - \ifdim\!ticklocation<-\!!origin - \edef\!Loc{$\!Loc$}% - \fi - \edef\!tickfield{{\the\!ticklocation}{\!Loc}}% - \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% - \or % Case 2: labeled - \expandafter\!gettickvaluefrom\!tickvalueslist - \edef\!tickfield{{\the\!ticklocation}{\!value}}% - \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% - \fi} - -\def\!separate#1\!nil{% - \!ifnextchar{-}{\!!separate}{\!!!separate}#1\!nil} -\def\!!separate-#1\!nil{% - \def\!sign{-}% - \!!!!separate#1..\!nil} -\def\!!!separate#1\!nil{% - \def\!sign{+}% - \!!!!separate#1..\!nil} -\def\!!!!separate#1.#2.#3\!nil{% - \def\!arg{#1}% - \ifx\!arg\!empty - \!countA=0 - \else - \!countA=\!arg - \fi - \def\!arg{#2}% - \ifx\!arg\!empty - \!countB=0 - \else - \!countB=\!arg - \fi} - -\def\!countfigures#1{% - \if #1/% - \def\!next{\ignorespaces}% - \else - \multiply\!scalefactor 10 - \def\!next{\!countfigures}% - \fi - \!next} - -\def\!scaleup#1by#2to#3{% - \expandafter\!separate#1\!nil - \multiply\!countA #2\relax - \advance\!countA \!countB - \if -\!sign - \!countA=-\!countA - \fi - #3=\!countA - \ignorespaces} - -\def\!scaledown#1by#2to#3{% - \!countA=#1\relax% ** get original # - \ifnum \!countA<0 % ** take abs value, - \def\!sign{-}% ** remember sign - \!countA=-\!countA - \else - \def\!sign{}% - \fi - \!countB=\!countA% ** copy |#| - \divide\!countB #2\relax% ** integer part (|#|/sf) - \!countC=\!countB% ** get sf * (|#|/sf) - \multiply\!countC #2\relax - \advance \!countA -\!countC% ** ctA is now remainder - \edef#3{\!sign\the\!countB.}% ** +- integerpart. - \!countC=\!countA % ** Tack on proper number - \ifnum\!countC=0 % ** of zeros after . - \!countC=1 - \fi - \multiply\!countC 10 - \!loop \ifnum #2>\!countC - \edef#3{#3\!zero}% - \multiply\!countC 10 - \repeat - \edef#3{#3\the\!countA}% ** Add on rest of remainder - \ignorespaces} - -\def\!placetickvalues{% - \advance\!offset \tickstovaluesleading - \if!xswitch - \setbox\!boxA=\hbox{% - \def\\##1##2{% - \!dimenput {##2} [B] (##1,\!axisylevel)}% - \beginpicture - \!LTlist - \endpicturesave <\!Xsave,\!Ysave>}% - \!dimenA=\!axisylevel - \advance\!dimenA -\!Ysave - \advance\!dimenA \!tickysign\!offset - \if -\!tickysign - \advance\!dimenA -\ht\!boxA - \else - \advance\!dimenA \dp\!boxA - \fi - \advance\!offset \ht\!boxA - \advance\!offset \dp\!boxA - \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!zpt,\!dimenA) - \else - \setbox\!boxA=\hbox{% - \def\\##1##2{% - \!dimenput {##2} [r] (\!axisxlevel,##1)}% - \beginpicture - \!LTlist - \endpicturesave <\!Xsave,\!Ysave>}% - \!dimenA=\!axisxlevel - \advance\!dimenA -\!Xsave - \advance\!dimenA \!tickxsign\!offset - \if -\!tickxsign - \advance\!dimenA -\wd\!boxA - \fi - \advance\!offset \wd\!boxA - \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!dimenA,\!zpt) - \fi} - - -\normalgraphs -\catcode`!=12 % ***** THIS MUST NEVER BE OMITTED +% G"andertes PiCTeX.TEX mit weniger Dimensionsregistern % +% von Andreas Schrell, ohne Gew"ahr!!!!!!! +% Version 0.0 vom 31.03.1994 +% FEHLERMELDUNGEN an Andreas.Schrell@RS.maus.de + +% This is PiCTeXWD, Version 1.1 9/21/87 + +% CAVEAT: The PiCTeX manual often has a more lucid explanation +% of any given topic than you will find in the internal documentation +% of the macros. + +% PiCTeX's commands can be classified into two groups: (1) public (or +% external), and (2) private (or internal). The public macros are +% discussed at length in the manual. The only discussion of the private +% macros is the internal documentation. The private macros all have +% names beginning with an exclamation point (!) of category code 11. +% Since in normal usage "!" has category code 12, these macros can't +% be accessed or modified by the general user. + +% The macros are organized into thematically related groups. For example, +% the macros dealing with dots & dashes are all in the DASHPATTERN group. +% The table below shows which macros are in which groups. The table +% covers all public macros, and many (but not all) of PiCTeX's upper level +% private macros. Following the table, the various groups are listed +% in the order in which they appear in the table. + +% *********************** TABLE OF GROUPS OF MACROS ********************** + +% HACKS: Utility macros +% \PiC +% \PiCTeX +% \placevalueinpts +% \!!loop +% \!cfor +% \!copylist +% \!ecfor +% \!etfor +% \!getnext +% \!getnextvalueof +% \!ifempty +% \!ifnextchar +% \!leftappend +% \!listaddon +% \!loop +% \!lop +% \!mlap +% \!not +% \!removept +% \!rightappend +% \!tfor +% \!vmlap +% \!wlet + +% ALLOCATION: Allocates registers + +% AREAS: Deals with plot areas +% \axis +% \grid +% \invisibleaxes +% \normalgraphs +% \plotheading +% \setplotarea +% \visibleaxes + +% ARROWS: Draws arrows +% \arrow +% \betweenarrows + +% BARS: Draws bars +% \putbar +% \setbars + +% BOXES: Draws rectangles +% \frame +% \putrectangle +% \rectangle +% \shaderectangleson +% \shaderectanglesoff + +% CURVES: Upper level plot commands +% \hshade +% \plot +% \sethistograms +% \setlinear +% \setquadratic +% \vshade + +% DASHPATTERNS: Sets up dash patterns +% \findlength +% \setdashes +% \setdashesnear +% \setdashpattern +% \setdots +% \setdotsnear +% \setsolid +% \!dashingoff +% \!dashingon + +% DIVISION: Does long division of dimension registers +% \Divide +% \!divide + +% ELLIPSES: Draws ellipses and circles +% \circulararc +% \ellipticalarc + +% RULES: Draws rules, i.e., horizontal & vertical lines +% \putrule +% \!putdashedhline +% \!putdashedvline +% \!puthline +% \!putsolidhline +% \!putsolidvline +% \!putvline + +% LINEAR ARC: Draws straight lines -- solid and dashed +% \inboundscheckoff +% \inboundscheckon +% \!advancedashing +% \!drawlinearsegment +% \!initinboundscheck +% \!linearsolid +% \!lineardashed +% \!ljoin +% \!plotifinbounds +% \!start + +% LOGTEN: Log_10 function +% \!logten + +% PICTURES: Basic setups for PiCtures; \put commands +% \accountingoff +% \accountingon +% \beginpicture +% \endpicture +% \endpicturesave +% \lines +% \multiput +% \put +% \setcoordinatemode +% \setcoordinatesystem +% \setdimensionmode +% \stack +% \Lines +% \Xdistance +% \Ydistance +% \!dimenput +% \!ifcoordmode +% \!ifdimenmode +% \!setcoordmode +% \!setdimenmode +% \!setputobject + +% PLOTTING: Things to do with plotting +% \dontsavelinesandcurves +% \replot +% \savelinesandcurves +% \setplotsymbol +% \writesavefile +% \!plot + +% PYTHAGORAS: Euclidean distance function +% \placehypotenuse +% \!Pythag + +% QUADRATIC ARC: Draws a quadratic arc +% \!qjoin + +% ROTATIONS: Handles rotations +% \startrotation +% \stoprotation +% \!rotateaboutpivot +% \!rotateonly + +% SHADING: Handles shading +% \setshadegrid +% \setshadesymbol +% \!lshade +% \!qshade +% \!starthshade +% \!startvshade + +% TICKS: Draws ticks on graphs +% \gridlines +% \loggedticks +% \nogridlines +% \ticksin +% \ticksout +% \unloggesticks + +% ***************** END OF TABLE OF GROUPS OF MACROS ******************** + + +\catcode`!=11 % ***** THIS MUST NEVER BE OMITTED +% ******************************* +% *** HACKS (Utility macros) *** +% ******************************* + +% ** User commands +% ** \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} +% ** \PiCTeX{\PiC\kern-.11em\TeX} +% ** \placevalueinpts of in {CONTROL SEQUENCE} + +% ** Internal commands +% ** \!ifnextchar{CHARACTER}{TRUE ACTION}{FALSE ACTION} +% ** \!tfor NAME := LIST \do {BODY} +% ** \!etfor NAME:= LIST \do {BODY} +% ** \!cfor NAME := LIST \do {BODY} +% ** \!ecfor NAME:= LIST \do {BODY} +% ** \!ifempty{MACRO}{TRUE ACTION}{FALSE ACTION} +% ** \!getnext\\ITEMfrom\LIST +% ** \!getnextvalueof\DIMEN\from\LIST +% ** \!copylist\LISTMACRO_A\to\LISTMACRO_B +% ** \!wlet\CONTROL_SEQUENCE_A=\CONTROL_SEQUENCE_B +% ** \!listaddon ITEM LIST +% ** \!rightappendITEM\withCS\to\LISTMACRO +% ** \!leftappendITEM\withCS\to\LISTMACRO +% ** \!lop\LISTMACRO\to\ITEM +% ** \!loop ... repeat +% ** \!!loop ... repeat +% ** \!removept{DIMENSION REGISTER}{CONTROL SEQUENCE} +% ** \!mlap{...} +% ** \!vmlap{...} +% ** \!not{TEK if-CONDITION} + +% ** First, here are the the PiCTeX logo, and the syllable PiC: +\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC} +\def\PiCTeX{\PiC\kern-.11em\TeX} + +% ** The following macro expands to parameter #2 or parameter #3 according to +% ** whether the next non-blank character following the macro is or is not #1. +% ** Blanks following the macro are gobbled. +\def\!ifnextchar#1#2#3{% + \let\!testchar=#1% + \def\!first{#2}% + \def\!second{#3}% + \futurelet\!nextchar\!testnext} +\def\!testnext{% + \ifx \!nextchar \!spacetoken + \let\!next=\!skipspacetestagain + \else + \ifx \!nextchar \!testchar + \let\!next=\!first + \else + \let\!next=\!second + \fi + \fi + \!next} +\def\\{\!skipspacetestagain} + \expandafter\def\\ {\futurelet\!nextchar\!testnext} +\def\\{\let\!spacetoken= } \\ % ** set \spacetoken to a space token + + +% ** Borrow the "tfor" macro from Latex: +% ** \!tfor NAME := LIST \do {BODY} +% ** if, before expansion, LIST = T1 ... Tn, where each Ti is a token +% ** or {...}, then executes BODY n times, with NAME = Ti on the +% ** i-th iteration. Works for n=0. +\def\!tfor#1:=#2\do#3{% + \edef\!fortemp{#2}% + \ifx\!fortemp\!empty + \else + \!tforloop#2\!nil\!nil\!!#1{#3}% + \fi} +\def\!tforloop#1#2\!!#3#4{% + \def#3{#1}% + \ifx #3\!nnil + \let\!nextwhile=\!fornoop + \else + #4\relax + \let\!nextwhile=\!tforloop + \fi + \!nextwhile#2\!!#3{#4}} + + +% ** \!etfor NAME:= LIST\do {BODY} +% ** This is like \!cfor, but LIST is any balanced token list whose complete +% ** expansion has the form T1 ... Tn +\def\!etfor#1:=#2\do#3{% + \def\!!tfor{\!tfor#1:=}% + \edef\!!!tfor{#2}% + \expandafter\!!tfor\!!!tfor\do{#3}} + + +% ** modify the Latex \tfor (token-for) loop to a \cfor (comma-for) loop. +% ** \!cfor NAME := LIST \do {BODY} +% ** if, before expansion, LIST = a1,a2,...an, then executes BODY n times, +% ** with NAME = ai on the i-th iteration. Works for n=0. +\def\!cfor#1:=#2\do#3{% + \edef\!fortemp{#2}% + \ifx\!fortemp\!empty + \else + \!cforloop#2,\!nil,\!nil\!!#1{#3}% + \fi} +\def\!cforloop#1,#2\!!#3#4{% + \def#3{#1}% + \ifx #3\!nnil + \let\!nextwhile=\!fornoop + \else + #4\relax + \let\!nextwhile=\!cforloop + \fi + \!nextwhile#2\!!#3{#4}} + + +% ** \!ecfor NAME:= LIST\do {BODY} +% ** This is like \!cfor, but LIST is any balanced token list whose complete +% ** expansion has the form a1,a2,...,an. +\def\!ecfor#1:=#2\do#3{% + \def\!!cfor{\!cfor#1:=}% + \edef\!!!cfor{#2}% + \expandafter\!!cfor\!!!cfor\do{#3}} + + +\def\!empty{} +\def\!nnil{\!nil} +\def\!fornoop#1\!!#2#3{} + + +% ** \!ifempty{ARG}{TRUE ACTION}{FALSE ACTION} +\def\!ifempty#1#2#3{% + \edef\!emptyarg{#1}% + \ifx\!emptyarg\!empty + #2% + \else + #3% + \fi} + +% ** \!getnext\\ITEMfrom\LIST +% ** \LIST has the form \\{item1}\\{item2}\\{item3}...\\{itemk} +% ** This routine sets \ITEM to item1, and cycles \LIST to +% ** \\{item2}\\{item3}...\\{itemk}\\{item1} +\def\!getnext#1\from#2{% + \expandafter\!gnext#2\!#1#2}% +\def\!gnext\\#1#2\!#3#4{% + \def#3{#1}% + \def#4{#2\\{#1}}% + \ignorespaces} + + +% ** \!getnextvalueof\DIMEN\from\LIST +% ** Similar to !getnext. +% ** \LIST has the form \\{dimen1}\\{dimen2}\\{dimen3} ... +% ** \DIMEN is a dimension register +% ** Works also for counts +% +\def\!getnextvalueof#1\from#2{% + \expandafter\!gnextv#2\!#1#2}% +\def\!gnextv\\#1#2\!#3#4{% + #3=#1% + \def#4{#2\\{#1}}% + \ignorespaces} + + +% ** \!copylist\LISTMACROA\to\LISTMACROB +% ** makes the replacement text of LISTMACRO B identical to that of +% ** list macro A. +\def\!copylist#1\to#2{% + \expandafter\!!copylist#1\!#2} +\def\!!copylist#1\!#2{% + \def#2{#1}\ignorespaces} + + +% ** \!wlet\CSA=\CSB +% ** lets control sequence \CSB = control sequence \CSA, and writes a +% ** message to that effect in the log file using plain TEK's \wlog +\def\!wlet#1=#2{% + \let#1=#2 + \wlog{\string#1=\string#2}} + +% ** \!listaddon ITEM LIST +% ** LIST <-- LIST \\ ITEM +\def\!listaddon#1#2{% + \expandafter\!!listaddon#2\!{#1}#2} +\def\!!listaddon#1\!#2#3{% + \def#3{#1\\#2}} + +% ** \!rightappendITEM\to\LISTMACRO +% ** \LISTMACRO --> \LISTMACRO\\{ITEM} +%\def\!rightappend#1\to#2{\expandafter\!!rightappend#2\!{#1}#2} +%\def\!!rightappend#1\!#2#3{\def#3{#1\\{#2}}} + + +% ** \!rightappendITEM\withCS\to\LISTMACRO +% ** \LISTMACRO --> \LISTMACRO||CS||{ITEM} +\def\!rightappend#1\withCS#2\to#3{\expandafter\!!rightappend#3\!#2{#1}#3} +\def\!!rightappend#1\!#2#3#4{\def#4{#1#2{#3}}} + + +% ** \!leftappendITEM\withCS\to\LISTMACRO +% ** \LISTMACRO --> CS||{ITEM}||\LISTMACRO +\def\!leftappend#1\withCS#2\to#3{\expandafter\!!leftappend#3\!#2{#1}#3} +\def\!!leftappend#1\!#2#3#4{\def#4{#2{#3}#1}} + + +% ** \!lop\LISTMACRO\to\ITEM +% ** \\{item1}\\{item2}\\{item3} ... --> \\{item2}\\{item3} ... +% ** item1 --> \ITEM +\def\!lop#1\to#2{\expandafter\!!lop#1\!#1#2} +\def\!!lop\\#1#2\!#3#4{\def#4{#1}\def#3{#2}} + + +% ** \!placeNUMBER\of\LISTMACRO\in\ITEM +% ** the NUMBERth item of \LISTMACRO --> replacement text of \ITEM +%\def\!place#1\of#2\in#3{\def#3{\outofrange}% +%{\count0=#1\def\\##1{\advance\count0-1 \ifnum\count0=0 \gdef#3{##1}\fi}#2}} + + +% ** Following code converts a commalist to a list macro, with all items +% ** fully expanded. +%\!ecfor\item:=\commalist\do{\expandafter\!rightappend\item\to\list} + + +% ** \!loop ... repeat +% ** This is exactly like TEX's \loop ... repeat. It can be used in nesting +% ** two loops, without puting the inner one inside a group. +\def\!loop#1\repeat{\def\!body{#1}\!iterate} +\def\!iterate{\!body\let\!next=\!iterate\else\let\!next=\relax\fi\!next} + +% ** \!!loop ... repeat +% ** This is exactly like TEX's \loop ... repeat. It can be used in nesting +% ** two loops, without puting the inner one inside a group. +\def\!!loop#1\repeat{\def\!!body{#1}\!!iterate} +\def\!!iterate{\!!body\let\!!next=\!!iterate\else\let\!!next=\relax\fi\!!next} +% (\multiput uses \!!loop) + +% ** \!removept{DIMENREG}{\CS} +% ** Defines the control sequence CS to be the value (in points) in the +% ** dimension register DIMENREG (but without the "pt" TEK usually adds) +% ** E.g., after \dimen0=12.3pt \!removept\dimen0\A, \A expands to 12.3 +\def\!removept#1#2{\edef#2{\expandafter\!!removePT\the#1}} +{\catcode`p=12 \catcode`t=12 \gdef\!!removePT#1pt{#1}} + +% ** \pladevalueinpts of in {CONTROL SEQUENCE} +\def\placevalueinpts of <#1> in #2 {% + \!removept{#1}{#2}} + +% ** \!mlap{...} \!vmlap{...} +% ** Center ... in a box of width 0. +\def\!mlap#1{\hbox to 0pt{\hss#1\hss}} +\def\!vmlap#1{\vbox to 0pt{\vss#1\vss}} + +% ** \!not{TEK if-CONDITION} +% ** By a TEK if-CONDITION is meant something like +% ** \ifnum\N<0, or \ifdim\A>\B +% ** \!not produces an if-condition which is false if the original condition +% ** is true, and true if the original condition is false. +\def\!not#1{% + #1\relax + \!switchfalse + \else + \!switchtrue + \fi + \if!switch + \ignorespaces} + + +% ******************* +% *** ALLOCATIONS *** +% ******************* + +% This section allocates all the registers PiCTeX uses. Following +% each allocation is a string of the form ....N.D...L......... ; +% the various letters show which sections of PiCTeX make explicit +% reference to that register, according to the following code: + +% H Hacks +% A Areas +% W arroWs +% B Bars +% X boXes +% C Curves +% D Dashpattterns +% V diVision +% E Ellipses +% U rUles +% L Linear arc +% G loGten +% P Pictures +% O plOtting +% Y pYthagoras +% Q Quadratic arc +% R Rotations +% S Shading +% T Ticks + +% Turn off messages from TeX's allocation macros +\let\!!!wlog=\wlog % "\wlog" is defined in plain TeX +\def\wlog#1{} + +\newskip\headingtoplotskip %.A................. %-as-% +\newskip\linethickness %.A..X....U........T +\newskip\longticklength %.A................T %-as-% +\newskip\plotsymbolspacing %......D...L....Q... +\newskip\shortticklength %.A................T %-as-% +\newskip\stackleading %.A..........P...... %-as-% +\newskip\tickstovaluesleading %.A................T %-as-% +\newskip\totalarclength %......D...L....Q... +\newskip\valuestolabelleading %.A................. %-as-% + +\newbox\!boxA %.AW...............T +\newbox\!boxB %..W................ +\newbox\!picbox %............P...... +\newbox\!plotsymbol %..........L..O..... +\newbox\!putobject %............PO...S. +\newbox\!shadesymbol %.................S. + +\newcount\!countA %.A....D..UL....Q.ST +\newcount\!countB %......D..U.....Q.ST +\newcount\!countC %...............Q..T +\newcount\!countD %................... +\newcount\!countE %.............O....T +\newcount\!countF %.............O....T +\newcount\!countG %..................T +\newcount\!fiftypt %.........U......... +\newcount\!intervalno %..........L....Q... +\newcount\!npoints %..........L........ +\newcount\!nsegments %.........U......... +\newcount\!ntemp %............P...... +\newcount\!parity %.................S. +\newcount\!scalefactor %..................T +\newcount\!tickcase %..................T + +\newskip\!Xleft %............P...... +\newskip\!Xright %............P...... +\newskip\!Xsave %.A................T +\newskip\!Ybot %............P...... +\newskip\!Ysave %.A................T +\newskip\!Ytop %............P...... +\newskip\!angle %........E.......... +\newskip\!arclength %..W......UL....Q... +\newskip\!areabloc %.A........L........ +\newskip\!arealloc %.A........L........ +\newskip\!arearloc %.A........L........ +\newskip\!areatloc %.A........L........ +\newskip\!bshrinkage %.................S. +\newskip\!checkbot %..........L........ +\newskip\!checkleft %..........L........ +\newskip\!checkright %..........L........ +\newskip\!checktop %..........L........ +\newdimen\!dimenA %.AW.X.DVEUL..OYQRST +\newdimen\!dimenB %....X.DVEU...O.QRS. +\newdimen\!dimenC %..W.X.DVEU......RS. +\newdimen\!dimenD %..W.X.DVEU....Y.RS. +\newdimen\!dimenE %..W........G..YQ.S. +\newdimen\!dimenF %...........G..YQ.S. +\newdimen\!dimenG %...........G..YQ.S. +\newdimen\!dimenH %...........G..Y..S. +\newdimen\!dimenI %...BX.........Y.... +\newdimen\!distacross %..........L....Q... +\newdimen\!downlength %..........L........ +\newdimen\!dp %.A..X.......P....S. +\newdimen\!dshade %.................S. +\newdimen\!dxpos %..W......U..P....S. +\newdimen\!dxprime %...............Q... +\newdimen\!dypos %..WB.....U..P...... +\newdimen\!dyprime %...............Q... +\newdimen\!ht %.A..X.......P....S. +\newdimen\!leaderlength %......D..U......... +\newdimen\!lshrinkage %.................S. +\newdimen\!midarclength %...............Q... +\newdimen\!offset %.A................T +\newdimen\!plotheadingoffset %.A................. +\newdimen\!plotsymbolxshift %..........L..O..... +\newdimen\!plotsymbolyshift %..........L..O..... +\newdimen\!plotxorigin %..........L..O..... +\newdimen\!plotyorigin %..........L..O..... +\newdimen\!rshrinkage %.................S. +\newdimen\!shadesymbolxshift %.................S. +\newdimen\!shadesymbolyshift %.................S. +\newdimen\!tshrinkage %.................S. +\newdimen\!uplength %..........L........ +\newdimen\!wd %....X.......P....S. +\newdimen\!xB %...............Q... +\newdimen\!xC %...............Q... +\newdimen\!xE %..W.....E.L....Q.S. +\newdimen\!xM %..W.....E......Q.S. +\newdimen\!xS %..W.....E.L....Q.S. +\newdimen\!xaxislength %.A................T +\newdimen\!xdiff %..........L........ +\newdimen\!xleft %............P...... +\newdimen\!xloc %..WB.....U.......S. +\newdimen\!xorigin %.A........L.P....S. +\newdimen\!xpivot %................R.. +\newdimen\!xpos %..........L.P..Q.ST +\newdimen\!xprime %...............Q... +\newdimen\!xright %............P...... +\newdimen\!xshade %.................S. +\newdimen\!xshift %..W.........PO...S. +\newdimen\!xtemp %............P...... +\newdimen\!xunit %.AWBX...EUL.P..QRS. +\newdimen\!xxE %........E.......... +\newdimen\!xxM %........E.......... +\newdimen\!xxS %........E.......... +\newdimen\!xxloc %..WB....EU......... +\newdimen\!yB %...............Q... +\newdimen\!yC %...............Q... +\newdimen\!yE %..W.....E.L....Q... +\newdimen\!yM %..W.....E......Q... +\newdimen\!yS %..W.....E.L....Q... +\newdimen\!yaxislength %.A................T +\newdimen\!ybot %............P...... +\newdimen\!ydiff %..........L........ +\newdimen\!yloc %..WB.....U.......S. +\newdimen\!yorigin %.A........L.P....S. +\newdimen\!ypivot %................R.. +\newdimen\!ypos %..........L.P..Q.ST +\newdimen\!yprime %...............Q... +\newdimen\!yshade %.................S. +\newdimen\!yshift %..W.........PO...S. +\newdimen\!ytemp %............P...... +\newdimen\!ytop %............P...... +\newdimen\!yunit %.AWBX...EUL.P..QRS. +\newdimen\!yyE %........E.......... +\newdimen\!yyM %........E.......... +\newdimen\!yyS %........E.......... +\newdimen\!yyloc %..WB....EU......... + +\newif\if!axisvisible %.A................. +\newif\if!gridlinestoo %..................T +\newif\if!keepPO %................... +\newif\if!placeaxislabel %.A................. +\newif\if!switch %H.................. +\newif\if!xswitch %.A................T + +\newtoks\!axisLaBeL %.A................. +\newtoks\!keywordtoks %.A................. + +\newwrite\!replotfile %.............O..... + +\newhelp\!keywordhelp{The keyword mentioned in the error message in unknown. +Replace NEW KEYWORD in the indicated response by the keyword that +should have been specified.} %.A................. + +% The following commands assign alternate names to some of the +% above registers. "\!wlet" is defined in Hacks. +\!wlet\!!origin=\!xM %.A................T +\!wlet\!!unit=\!uplength %.A................T +\!wlet\!Lresiduallength=\!dimenG %.........U......... +\!wlet\!Rresiduallength=\!dimenF %.........U......... +\!wlet\!axisLength=\!distacross %.A................T +\!wlet\!axisend=\!ydiff %.A................T +\!wlet\!axisstart=\!xdiff %.A................T +\!wlet\!axisxlevel=\!arclength %.A................T +\!wlet\!axisylevel=\!downlength %.A................T +\!wlet\!beta=\!dimenE %...............Q... +\!wlet\!gamma=\!dimenF %...............Q... +\!wlet\!shadexorigin=\!plotxorigin %.................S. +\!wlet\!shadeyorigin=\!plotyorigin %.................S. +\!wlet\!ticklength=\!xS %..................T +\!wlet\!ticklocation=\!xE %..................T +\!wlet\!ticklocationincr=\!yE %..................T +\!wlet\!tickwidth=\!yS %..................T +\!wlet\!totalleaderlength=\!dimenE %.........U......... +\!wlet\!xone=\!xprime %....X.............. +\!wlet\!xtwo=\!dxprime %....X.............. +\!wlet\!ySsave=\!yM %................... +\!wlet\!ybB=\!yB %.................S. +\!wlet\!ybC=\!yC %.................S. +\!wlet\!ybE=\!yE %.................S. +\!wlet\!ybM=\!yM %.................S. +\!wlet\!ybS=\!yS %.................S. +\!wlet\!ybpos=\!yyloc %.................S. +\!wlet\!yone=\!yprime %....X.............. +\!wlet\!ytB=\!xB %.................S. +\!wlet\!ytC=\!xC %.................S. +\!wlet\!ytE=\!downlength %.................S. +\!wlet\!ytM=\!arclength %.................S. +\!wlet\!ytS=\!distacross %.................S. +\!wlet\!ytpos=\!xxloc %.................S. +\!wlet\!ytwo=\!dyprime %....X.............. + + +% Initial values for registers +\def\!zpt{0pt} % static +\!xunit=1pt +\!yunit=1pt +\!arearloc=\!xunit +\!areatloc=\!yunit +\!dshade=5pt +\!leaderlength=24in +\def\!tfs{256} % static +\def\!wmax{5.3pt} % static +\def\!wmin{2.7pt} % static +\!xaxislength=\!xunit +\!xpivot=\!zpt +\!yaxislength=\!yunit +\!ypivot=\!zpt +\plotsymbolspacing=.4pt + \!dimenA=50pt \def\!fiftypt{\the\!dimenA} % static + +\def\!rootten{3.162278pt} % static +\def\!tenAa{8.690286pt} % static (A5) +\def\!tenAc{2.773839pt} % static (A3) +\def\!tenAe{2.543275pt} % static (A1) + +% Initial values for control sequences +\def\!cosrotationangle{1} %................R.. +\def\!sinrotationangle{0} %................R.. +\def\!xpivotcoord{0} %................R.. +\def\!xref{0} %............P...... +\def\!xshadesave{0} %.................S. +\def\!ypivotcoord{0} %................R.. +\def\!yref{0} %............P...... +\def\!yshadesave{0} %.................S. +\def\!zero{0} %..................T + +% Reset TeX to report allocations +\let\wlog=\!!!wlog +% ************************************* +% *** AREAS: Deals with plot areas *** +% ************************************* +% +% ** User commands +% ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD +% ** to TOP YCOORD +% ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE] +% ** [LABEL {label}] [TICKS] / +% ** \visibleaxes +% ** \invisibleaxes +% ** \plotheading {HEADING} +% ** \grid {# of columns} {# of rows} +% ** \normalgraphs + +% ** \normalgraphs +% ** Sets defaults for graph setup. See Subsection 3.4 of manual. +\def\normalgraphs{% + \longticklength=.4\baselineskip + \shortticklength=.25\baselineskip + \tickstovaluesleading=.25\baselineskip + \valuestolabelleading=.8\baselineskip + \linethickness=.4pt + \stackleading=.17\baselineskip + \headingtoplotskip=1.5\baselineskip + \visibleaxes + \ticksout + \nogridlines + \unloggedticks} +% +% ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD +% ** to TOP YCOORD +% ** Reserves space in PICBOX for a rectangular box with the indicated +% ** coordinates. Must be specified before calls to \axis, +% ** \grid, \plotheading. +% ** See Subsection 3.1 of the manual. +\def\setplotarea x from #1 to #2, y from #3 to #4 {% + \!arealloc=\!M{#1}\!xunit \advance \!arealloc -\!xorigin + \!areabloc=\!M{#3}\!yunit \advance \!areabloc -\!yorigin + \!arearloc=\!M{#2}\!xunit \advance \!arearloc -\!xorigin + \!areatloc=\!M{#4}\!yunit \advance \!areatloc -\!yorigin + \!initinboundscheck + \!xaxislength=\!arearloc \advance\!xaxislength -\!arealloc + \!yaxislength=\!areatloc \advance\!yaxislength -\!areabloc + \!plotheadingoffset=\!zpt + \!dimenput {{\setbox0=\hbox{}\wd0=\!xaxislength\ht0=\!yaxislength\box0}} + [bl] (\!arealloc,\!areabloc)} +% +% ** \visibleaxes, \invisibleaxes +% ** Switches for setting visibility of subsequent axes. +% ** See Subsection 3.2 of the manual. +\def\visibleaxes{% + \def\!axisvisibility{\!axisvisibletrue}} +\def\invisibleaxes{% + \def\!axisvisibility{\!axisvisiblefalse}} +% +% ** The next few macros enable the user to fix up an erroneous keyword +% ** in the \axis command. +% \newhelp is in ALLOCATIONS +% \newhelp\!keywordhelp{The keyword mentioned in the error message in unknown. +% Replace NEW KEYWORD in the indicated response by the keyword that +% should have been specified.} + +\def\!fixkeyword#1{% + \errhelp=\!keywordhelp + \errmessage{Unrecognized keyword `#1': \the\!keywordtoks{NEW KEYWORD}'}} + +% \newtoks\!keywordtoks In ALLOCATIONS. +\!keywordtoks={enter `i\fixkeyword} + +\def\fixkeyword#1{% + \!nextkeyword#1 } + +% ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE] +% ** [LABEL {label}] [TICKS] / +% ** Exactly one of the keywords BOTTOM, LEFT, TOP, RIGHT must be +% ** specified. Axis is drawn along the indicated edge of the current +% ** plot area, shifted if the SHIFTEDTO option is used, visible or +% ** invisible according the selected option, with an optional LABEL, +% ** and optional TICKS (see ticks.tex for the options avialabel with +% ** TICKS). The TICKS option must be the last one specified. The \axis +% ** MUST be terminated with a / followed by a space. +% ** See Subsection 3.2 of the manual for more information. + +% ** The various options of the \axis command are processed by the +% ** \!nextkeyword macro defined below. For example, +% ** `\!nextkeyword shiftedto ' expands to `\!axisshiftedto'. +\def\axis {% + \def\!nextkeyword##1 {% + \expandafter\ifx\csname !axis##1\endcsname \relax + \def\!next{\!fixkeyword{##1}}% + \else + \def\!next{\csname !axis##1\endcsname}% + \fi + \!next}% + \!offset=\!zpt + \!axisvisibility + \!placeaxislabelfalse + \!nextkeyword} + +% ** This and the various macros that follow handle the keyword +% ** specifications on the \axis command +% ** See Subsection 3.2 of the manual. +\def\!axisbottom{% + \!axisylevel=\!areabloc + \def\!tickxsign{0}% + \def\!tickysign{-}% + \def\!axissetup{\!axisxsetup}% + \def\!axislabeltbrl{t}% + \!nextkeyword} + +\def\!axistop{% + \!axisylevel=\!areatloc + \def\!tickxsign{0}% + \def\!tickysign{+}% + \def\!axissetup{\!axisxsetup}% + \def\!axislabeltbrl{b}% + \!nextkeyword} + +\def\!axisleft{% + \!axisxlevel=\!arealloc + \def\!tickxsign{-}% + \def\!tickysign{0}% + \def\!axissetup{\!axisysetup}% + \def\!axislabeltbrl{r}% + \!nextkeyword} + +\def\!axisright{% + \!axisxlevel=\!arearloc + \def\!tickxsign{+}% + \def\!tickysign{0}% + \def\!axissetup{\!axisysetup}% + \def\!axislabeltbrl{l}% + \!nextkeyword} + +\def\!axisshiftedto#1=#2 {% + \if 0\!tickxsign + \!axisylevel=\!M{#2}\!yunit + \advance\!axisylevel -\!yorigin + \else + \!axisxlevel=\!M{#2}\!xunit + \advance\!axisxlevel -\!xorigin + \fi + \!nextkeyword} + +\def\!axisvisible{% + \!axisvisibletrue + \!nextkeyword} + +\def\!axisinvisible{% + \!axisvisiblefalse + \!nextkeyword} + +\def\!axislabel#1 {% + \!axisLaBeL={#1}% + \!placeaxislabeltrue + \!nextkeyword} + +\expandafter\def\csname !axis/\endcsname{% + \!axissetup % This could done already by "ticks"; if so, now \relax + \if!placeaxislabel + \!placeaxislabel + \fi + \if +\!tickysign % ** (A "top" axis) + \!dimenA=\!axisylevel + \advance\!dimenA \!offset % ** dimA = top of the axis structure + \advance\!dimenA -\!areatloc % ** dimA = excess over the plot area + \ifdim \!dimenA>\!plotheadingoffset + \!plotheadingoffset=\!dimenA % ** Greatest excess over the plot area + \fi + \fi} + +% ** \grid {c} {r} +% ** Partitions the plot area into c columns and r rows; see Subsection 3.3 +% ** of the manual. +% ** (Other grid patterns can be drawn with the TICKS option of the \axis +% ** command. +\def\grid #1 #2 {% + \!countA=#1\advance\!countA 1 + \axis bottom invisible ticks length <\!zpt> andacross quantity {\!countA} / + \!countA=#2\advance\!countA 1 + \axis left invisible ticks length <\!zpt> andacross quantity {\!countA} / } + +% ** \plotheading{HEADING} +% ** Places HEADING centered above the top of the plotarea (and above +% ** any top axis ticks marks, tick labels, and axis label); see +% ** Subsection 3.3 of the manual. +\def\plotheading#1 {% + \advance\!plotheadingoffset \headingtoplotskip + \!dimenput {#1} [B] <.5\!xaxislength,\!plotheadingoffset> + (\!arealloc,\!areatloc)} + +% ** From here on, the routines are internal. +\def\!axisxsetup{% + \!axisxlevel=\!arealloc + \!axisstart=\!arealloc + \!axisend=\!arearloc + \!axisLength=\!xaxislength + \!!origin=\!xorigin + \!!unit=\!xunit + \!xswitchtrue + \if!axisvisible + \!makeaxis + \fi} + +\def\!axisysetup{% + \!axisylevel=\!areabloc + \!axisstart=\!areabloc + \!axisend=\!areatloc + \!axisLength=\!yaxislength + \!!origin=\!yorigin + \!!unit=\!yunit + \!xswitchfalse + \if!axisvisible + \!makeaxis + \fi} + +\def\!makeaxis{% + \setbox\!boxA=\hbox{% (Make a pseudo-y[x] tick for an x[y]-axis) + \beginpicture + \!setdimenmode + \setcoordinatesystem point at {\!zpt} {\!zpt} + \putrule from {\!zpt} {\!zpt} to + {\!tickysign\!tickysign\!axisLength} + {\!tickxsign\!tickxsign\!axisLength} + \endpicturesave <\!Xsave,\!Ysave>}% + \wd\!boxA=\!zpt + \!placetick\!axisstart} + +\def\!placeaxislabel{% + \advance\!offset \valuestolabelleading + \if!xswitch + \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl] + <.5\!axisLength,\!tickysign\!offset> (\!axisxlevel,\!axisylevel) + \advance\!offset \!dp % ** advance offset by the "tallness" + \advance\!offset \!ht % ** of the label + \else + \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl] + <\!tickxsign\!offset,.5\!axisLength> (\!axisxlevel,\!axisylevel) + \fi + \!axisLaBeL={}} + + +% ******************************* +% *** ARROWS (Draws arrows) *** +% ******************************* +% +% ** User commands +% ** \arrow [MID FRACTION, BASE FRACTION] +% ** [] from XFROM YFROM to XTO YTO +% ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO + +% ** \arrow [MID FRACTION, BASE FRACTION] +% ** [] from XFROM YFROM to XTO YTO +% ** Draws an arrow from (XFROM,YFROM) to (XTO,YTO). The arrow head +% ** is constructed two quadratic arcs, which extend back a distance +% ** ARROW HEAD LENGTH (a dimension) on both sides of the arrow shaft. +% ** All the way back the arcs are a distance BASE FRACTION*ARROW HEAD +% ** LENGTH apart, while half-way back they are a distance MID FRACTION* +% ** ARROW HEAD LENGTH apart. is optional, and has +% ** its usual interpreation. See Subsection 5.4 of the manual. + +\def\arrow <#1> [#2,#3]{% + \!ifnextchar<{\!arrow{#1}{#2}{#3}}{\!arrow{#1}{#2}{#3}<\!zpt,\!zpt> }} + +\def\!arrow#1#2#3<#4,#5> from #6 #7 to #8 #9 {% +% +% ** convert to dimensions + \!xloc=\!M{#8}\!xunit + \!yloc=\!M{#9}\!yunit + \!dxpos=\!xloc \!dimenA=\!M{#6}\!xunit \advance \!dxpos -\!dimenA + \!dypos=\!yloc \!dimenA=\!M{#7}\!yunit \advance \!dypos -\!dimenA + \let\!MAH=\!M% ** save current c/d mode + \!setdimenmode% ** go into dimension mode +% + \!xshift=#4\relax \!yshift=#5\relax% ** pick up shift + \!reverserotateonly\!xshift\!yshift% ** back rotate shift + \advance\!xshift\!xloc \advance\!yshift\!yloc +% +% ** draw shaft of arrow + \!xS=-\!dxpos \advance\!xS\!xshift + \!yS=-\!dypos \advance\!yS\!yshift + \!start (\!xS,\!yS) + \!ljoin (\!xshift,\!yshift) +% +% ** find 32*cosine and 32*sine of angle of rotation + \!Pythag\!dxpos\!dypos\!arclength + \!divide\!dxpos\!arclength\!dxpos + \!dxpos=32\!dxpos \!removept\!dxpos\!!cos + \!divide\!dypos\!arclength\!dypos + \!dypos=32\!dypos \!removept\!dypos\!!sin +% +% ** construct arrowhead + \!halfhead{#1}{#2}{#3}% ** draw half of arrow head + \!halfhead{#1}{-#2}{-#3}% ** draw other half +% + \let\!M=\!MAH% ** restore old c/d mode + \ignorespaces} +% +% ** draw half of arrow head + \def\!halfhead#1#2#3{% + \!dimenC=-#1% + \divide \!dimenC 2 % ** half way back + \!dimenD=#2\!dimenC% ** half the mid width + \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xM,\!yM) + \!dimenC=-#1% ** all the way back + \!dimenD=#3\!dimenC + \!dimenD=.5\!dimenD% ** half the full width + \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xE,\!yE) + \!start (\!xshift,\!yshift) + \advance\!xM\!xshift \advance\!yM\!yshift + \advance\!xE\!xshift \advance\!yE\!yshift + \!qjoin (\!xM,\!yM) (\!xE,\!yE) + \ignorespaces} + + +% ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO +% ** Makes things like <--- text --->, using arrow heads from TeX's fonts. +% ** See Subsection 5.4 of the manual. +\def\betweenarrows #1#2 from #3 #4 to #5 #6 {% + \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit% + \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit% + \!dxpos=\!xxloc \advance\!dxpos by -\!xloc + \!dypos=\!yyloc \advance\!dypos by -\!yloc + \advance\!xloc .5\!dxpos + \advance\!yloc .5\!dypos +% + \let\!MBA=\!M% ** save current coord\dimen mode + \!setdimenmode% ** express locations in dimens + \ifdim\!dypos=\!zpt + \ifdim\!dxpos<\!zpt \!dxpos=-\!dxpos \fi + \put {\!lrarrows{\!dxpos}{#1}}#2{} at {\!xloc} {\!yloc} + \else + \ifdim\!dxpos=\!zpt + \ifdim\!dypos<\!zpt \!dypos=-\!zpt \fi + \put {\!udarrows{\!dypos}{#1}}#2{} at {\!xloc} {\!yloc} + \fi + \fi + \let\!M=\!MBA% ** restore previous c/d mode + \ignorespaces} + +% ** Subroutine for left-right between arrows +\def\!lrarrows#1#2{% #1=width, #2=text + {\setbox\!boxA=\hbox{$\mkern-2mu\mathord-\mkern-2mu$}% + \setbox\!boxB=\hbox{$\leftarrow$}\!dimenE=\ht\!boxB + \setbox\!boxB=\hbox{}\ht\!boxB=2\!dimenE + \hbox to #1{$\mathord\leftarrow\mkern-6mu + \cleaders\copy\!boxA\hfil + \mkern-6mu\mathord-$% + \kern.4em $\vcenter{\box\!boxB}$$\vcenter{\hbox{#2}}$\kern.4em + $\mathord-\mkern-6mu + \cleaders\copy\!boxA\hfil + \mkern-6mu\mathord\rightarrow$}}} + +% ** Subroutine for up-down between arrows +\def\!udarrows#1#2{% #1=width, #2=text + {\setbox\!boxB=\hbox{#2}% + \setbox\!boxA=\hbox to \wd\!boxB{\hss$\vert$\hss}% + \!dimenE=\ht\!boxA \advance\!dimenE \dp\!boxA \divide\!dimenE 2 + \vbox to #1{\offinterlineskip + \vskip .05556\!dimenE + \hbox to \wd\!boxB{\hss$\mkern.4mu\uparrow$\hss}\vskip-\!dimenE + \cleaders\copy\!boxA\vfil + \vskip-\!dimenE\copy\!boxA + \vskip\!dimenE\copy\!boxB\vskip.4em + \copy\!boxA\vskip-\!dimenE + \cleaders\copy\!boxA\vfil + \vskip-\!dimenE \hbox to \wd\!boxB{\hss$\mkern.4mu\downarrow$\hss} + \vskip .05556\!dimenE}}} + + +% *************************** +% *** BARS (Draws bars) *** +% *************************** +% +% ** User commands: +% ** \putbar [] breadth from XSTART YSTART +% ** to XEND YEND +% ** \setbars [] breadth baseline at XY = COORD +% ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] )] +% ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] )] + + +% ** \putbar [] breadth from XSTART YSTART +% ** to XEND YEND +% ** Either XSTART=XEND or YSTART=YEND. Draws a rectangle between +% ** (XSTART,YSTART) & (XEND,YEND). The "depth" of the rectangle +% ** is determined by those two plot positions; its other +% ** dimension "breadth" is specified by the dimension BREADTH. +% ** See Subsection 4.2 of the manual. +\def\putbar#1breadth <#2> from #3 #4 to #5 #6 {% + \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit% + \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit% + \!dypos=\!yyloc \advance\!dypos by -\!yloc + \!dimenI=#2 +% + \ifdim \!dimenI=\!zpt % ** If 0 breadth + \putrule#1from {#3} {#4} to {#5} {#6} % ** Then draw line + \else % ** Else, put in a rectangle + \let\!MBar=\!M% ** save current c/d mode + \!setdimenmode % ** go into dimension mode + \divide\!dimenI 2 + \ifdim \!dypos=\!zpt + \advance \!yloc -\!dimenI % ** Equal y coordinates + \advance \!yyloc \!dimenI + \else + \advance \!xloc -\!dimenI % ** Equal x coordinates + \advance \!xxloc \!dimenI + \fi + \putrectangle#1corners at {\!xloc} {\!yloc} and {\!xxloc} {\!yyloc} + \let\!M=\!MBar % ** restore c/d mode + \fi + \ignorespaces} + + +% ** \setbars [] breadth baseline at XY = COORD +% ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] )] +% ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] )] +% ** This command puts PiCTeX into the bar graph drawing mode described +% ** in Subsection 4.4 of the manual. +\def\setbars#1breadth <#2> baseline at #3 = #4 {% + \edef\!barshift{#1}% + \edef\!barbreadth{#2}% + \edef\!barorientation{#3}% + \edef\!barbaseline{#4}% + \def\!bardobaselabel{\!bardoendlabel}% + \def\!bardoendlabel{\!barfinish}% + \let\!drawcurve=\!barcurve + \!setbars} +\def\!setbars{% + \futurelet\!nextchar\!!setbars} +\def\!!setbars{% + \if b\!nextchar + \def\!!!setbars{\!setbarsbget}% + \else + \if e\!nextchar + \def\!!!setbars{\!setbarseget}% + \else + \def\!!!setbars{\relax}% + \fi + \fi + \!!!setbars} +\def\!setbarsbget baselabels (#1) {% + \def\!barbaselabelorientation{#1}% + \def\!bardobaselabel{\!!bardobaselabel}% + \!setbars} +\def\!setbarseget endlabels (#1) {% + \edef\!barendlabelorientation{#1}% + \def\!bardoendlabel{\!!bardoendlabel}% + \!setbars} + +% ** \!barcurve +% ** Draws a bargraph with preset values of barshift, barbreadth, +% ** barorientation (x or y) and barbaseline (coordinate) +\def\!barcurve #1 #2 {% + \if y\!barorientation + \def\!basexarg{#1}% + \def\!baseyarg{\!barbaseline}% + \else + \def\!basexarg{\!barbaseline}% + \def\!baseyarg{#2}% + \fi + \expandafter\putbar\!barshift breadth <\!barbreadth> from {\!basexarg} + {\!baseyarg} to {#1} {#2} + \def\!endxarg{#1}% + \def\!endyarg{#2}% + \!bardobaselabel} + +\def\!!bardobaselabel "#1" {% + \put {#1}\!barbaselabelorientation{} at {\!basexarg} {\!baseyarg} + \!bardoendlabel} + +\def\!!bardoendlabel "#1" {% + \put {#1}\!barendlabelorientation{} at {\!endxarg} {\!endyarg} + \!barfinish} + +\def\!barfinish{% + \!ifnextchar/{\!finish}{\!barcurve}} + + +% ******************************** +% *** BOXES (Draws rectangles) *** +% ******************************** +% +% ** User commands: +% ** \putrectangle [] corners at XCOORD1 YCOORD1 +% ** and XCOORD2 YCOORD2 +% ** \shaderectangleson +% ** \shaderectanglesoff +% ** \frame [] {TEXT} +% ** \rectangle +% +% +% ** \putrectangle [] corners at XCOORD1 YCOORD1 +% ** and XCOORD2 YCOORD2 +% ** Draws a rectangle with corners at (X1,Y1), (X2,Y1), (X1,Y2), (X2,Y2) +% ** Lines have thickness \linethickness, and overlap at the corners. +% ** The optional field functions as with a \put command. +% ** See Subsection 4.2 of the manual. +\def\putrectangle{% + \!ifnextchar<{\!putrectangle}{\!putrectangle<\!zpt,\!zpt> }} +\def\!putrectangle<#1,#2> corners at #3 #4 and #5 #6 {% +% +% ** get locations + \!xone=\!M{#3}\!xunit \!xtwo=\!M{#5}\!xunit% + \!yone=\!M{#4}\!yunit \!ytwo=\!M{#6}\!yunit% + \ifdim \!xtwo<\!xone + \!dimenI=\!xone \!xone=\!xtwo \!xtwo=\!dimenI + \fi + \ifdim \!ytwo<\!yone + \!dimenI=\!yone \!yone=\!ytwo \!ytwo=\!dimenI + \fi + \!dimenI=#1\relax \advance\!xone\!dimenI \advance\!xtwo\!dimenI + \!dimenI=#2\relax \advance\!yone\!dimenI \advance\!ytwo\!dimenI + \let\!MRect=\!M% ** save current coord/dimen mode + \!setdimenmode +% +% ** shade rectangle if appropriate + \!shaderectangle +% +% ** draw horizontal edges + \!dimenI=.5\linethickness + \advance \!xone -\!dimenI% ** adjust x-location to overlap corners + \advance \!xtwo \!dimenI% ** ditto + \putrule from {\!xone} {\!yone} to {\!xtwo} {\!yone} + \putrule from {\!xone} {\!ytwo} to {\!xtwo} {\!ytwo} +% +% ** draw vertical edges + \advance \!xone \!dimenI% ** restore original x-values + \advance \!xtwo -\!dimenI% + \advance \!yone -\!dimenI% ** adjust y-location to overlap corners + \advance \!ytwo \!dimenI% ** ditto + \putrule from {\!xone} {\!yone} to {\!xone} {\!ytwo} + \putrule from {\!xtwo} {\!yone} to {\!xtwo} {\!ytwo} +% + \let\!M=\!MRect% ** restore coord/dimen mode + \ignorespaces} + +% ** \shaderectangleson +% ** Subsequent rectangles will be shaded according to +% ** the current shading pattern. Affects \putrectangle, \putbar, +% ** \frame, \sethistograms, and \setbars. See Subsection 7.5 of the manual. +\def\shaderectangleson{% + \def\!shaderectangle{\!!shaderectangle}% + \ignorespaces} +% ** \shaderectanglesoff +% ** Suppresses \shaderectangleson. The default. +\def\shaderectanglesoff{% + \def\!shaderectangle{}% + \ignorespaces} + +\shaderectanglesoff + +% ** The following internal routine shades the current rectangle, when +% ** \!shaderectangle = \!!shaderectangle . +\def\!!shaderectangle{% + \!dimenA=\!xtwo \advance \!dimenA -\!xone + \!dimenB=\!ytwo \advance \!dimenB -\!yone + \ifdim \!dimenA<\!dimenB + \!startvshade (\!xone,\!yone,\!ytwo) + \!lshade (\!xtwo,\!yone,\!ytwo) + \else + \!starthshade (\!yone,\!xone,\!xtwo) + \!lshade (\!ytwo,\!xone,\!xtwo) + \fi + \ignorespaces} + +% ** \frame [] {TEXT} +% ** Draws a frame of thickness linethickness about the box enclosing +% ** TEXT; the frame is separated from the box by a distance of +% ** SEPARATION. The result is an hbox with the same baseline as TEXT. +% ** If is omitted, you get the effect of <0pt>. +% ** See Subsection 4.2 of the manual. +\def\frame{% + \!ifnextchar<{\!frame}{\!frame<\!zpt> }} +\long\def\!frame<#1> #2{% + \beginpicture + \setcoordinatesystem units <1pt,1pt> point at 0 0 + \put {#2} [Bl] at 0 0 + \!dimenA=#1\relax + \!dimenB=\!wd \advance \!dimenB \!dimenA + \!dimenC=\!ht \advance \!dimenC \!dimenA + \!dimenD=\!dp \advance \!dimenD \!dimenA + \let\!MFr=\!M + \!setdimenmode + \putrectangle corners at {-\!dimenA} {-\!dimenD} and {\!dimenB} {\!dimenC} + \!setcoordmode + \let\!M=\!MFr + \endpicture + \ignorespaces} + +% ** \rectangle +% ** Constructs a rectangle of width WIDTH and heigth HEIGHT. +% ** See Subsection 4.2 of the manual. +\def\rectangle <#1> <#2> {% + \setbox0=\hbox{}\wd0=#1\ht0=#2\frame {\box0}} + + +% ********************************************* +% *** CURVES (Upper level \plot commands) *** +% ********************************************* +% +% ** User commands +% ** \plot DATA / +% ** \plot "FILE NAME" +% ** \setquadratic +% ** \setlinear +% ** \sethistograms +% ** \vshade ... +% ** \hshade ... + +% \plot: multi-purpose command. Draws histograms, bar graphs, piecewise-linear +% or piecewise quadratic curves, depending on the setting of \!drawcurve. +% See Subsections 4.3-4.5, 5.1, 5.2 of the manual. +\def\plot{% + \!ifnextchar"{\!plotfromfile}{\!drawcurve}} +\def\!plotfromfile"#1"{% + \expandafter\!drawcurve \input #1 /} + +% Command to set piecewise quadratic mode +% See Subsections 5.1, 7.3, and 7.4 of the manual. +\def\setquadratic{% + \let\!drawcurve=\!qcurve + \let\!!Shade=\!!qShade + \let\!!!Shade=\!!!qShade} + +% Command to set piecewise linear mode +% See Subsections 5.1, 7.3, and 7.4 of the manual. +\def\setlinear{% + \let\!drawcurve=\!lcurve + \let\!!Shade=\!!lShade + \let\!!!Shade=\!!!lShade} + +% Command to set histogram mode +% See Subsection 4.3 of the manual. +\def\sethistograms{% + \let\!drawcurve=\!hcurve} + +% Commands to cycle through list of coordinates in piecewise quadratic +% interpolation mode +\def\!qcurve #1 #2 {% + \!start (#1,#2) + \!Qjoin} +\def\!Qjoin#1 #2 #3 #4 {% + \!qjoin (#1,#2) (#3,#4) % \!qjoin is defined in QUADRATIC + \!ifnextchar/{\!finish}{\!Qjoin}} + +% Commands to cycle through list of coordinates in piecewise linear +% interpolation mode +\def\!lcurve #1 #2 {% + \!start (#1,#2) + \!Ljoin} +\def\!Ljoin#1 #2 {% + \!ljoin (#1,#2) % \!ljoin is defined in LINEAR + \!ifnextchar/{\!finish}{\!Ljoin}} + +\def\!finish/{\ignorespaces} + +% Command to cycle through list of coordinates in histogram mode +\def\!hcurve #1 #2 {% + \edef\!hxS{#1}% + \edef\!hyS{#2}% + \!hjoin} +\def\!hjoin#1 #2 {% + \putrectangle corners at {\!hxS} {\!hyS} and {#1} {#2} + \edef\!hxS{#1}% + \!ifnextchar/{\!finish}{\!hjoin}} + + +% \vshade: See Subsection 7.3 of the manual. +\def\vshade #1 #2 #3 {% + \!startvshade (#1,#2,#3) + \!Shadewhat} + +% \hshade: See Subsection 7.4 of the manual. +\def\hshade #1 #2 #3 {% + \!starthshade (#1,#2,#3) + \!Shadewhat} + +% Commands to cycle through coordinates and optional "edge effect" +% fields while shading. +\def\!Shadewhat{% + \futurelet\!nextchar\!Shade} +\def\!Shade{% + \if <\!nextchar + \def\!nextShade{\!!Shade}% + \else + \if /\!nextchar + \def\!nextShade{\!finish}% + \else + \def\!nextShade{\!!!Shade}% + \fi + \fi + \!nextShade} +\def\!!lShade<#1> #2 #3 #4 {% + \!lshade <#1> (#2,#3,#4) % \!lshade is defined in SHADING + \!Shadewhat} +\def\!!!lShade#1 #2 #3 {% + \!lshade (#1,#2,#3) + \!Shadewhat} +\def\!!qShade<#1> #2 #3 #4 #5 #6 #7 {% + \!qshade <#1> (#2,#3,#4) (#5,#6,#7) % \!qshade is defined in SHADING + \!Shadewhat} +\def\!!!qShade#1 #2 #3 #4 #5 #6 {% + \!qshade (#1,#2,#3) (#4,#5,#6) + \!Shadewhat} + +% ** Set default interpolation mode +\setlinear + + +% ******************************************** +% *** DASHPATTERNS (Sets up dash patterns) *** +% ******************************************** + +% ** User commands: +% ** \setdashpattern +% ** \setdots +% ** \setdotsnear for +% ** \setdashes +% ** \setdashesnear for +% ** \setsolid +% ** \findlength {CURVE CMDS} + +% ** Internal commands: +% ** \!dashingon +% ** \!dashingoff + +% ** Dash patterns are specified by a balanced token list whose complete +% ** expansion has the form: DIMEN1,DIMEN2,DIMEN3,DIMEN4,... ; this produces +% ** an arc of length DIMEN1, a skip of length DIMEN2, an arc of length +% ** DIMEN3, a skip of length DIMEN4, ... . Any number of DIMEN values may +% ** be given. The pattern is repeated as many times (perhaps fractional) +% ** as necessary to draw the curve. +% ** A dash pattern remains in effect until it is overridden by a call to +% ** \setdashpattern, or to \setdots, \setdotsnear ... , \setdashes, +% ** \setdashesnear ... , or \setsolid. +% ** Solid lines are the default. + + +% ** \def\setdashpattern +% ** The following routine converts a balanced list of tokens whose +% ** complete expansion has the form DIMEN1,DIMEN2, ... , DIMENk into +% ** three list macros that are used in drawing dashed rules and curves: +% ** !Flist: \!Rule{DIMEN1}\!Skip{DIMEN2}\!Rule{DIMEN3}\!Skip{DIMEN4} ... +% ** !Blist: ...\!Skip{DIMEN4}\!Rule{DIMEN3}\!Skip{DIMEN2}\!Rule{DIMEN1} +% ** !UDlist: \\{DIMEN1}\\{DIMEN2}\\{DIMEN3}\\{DIMEN4} ...; +% ** calculates \!leaderlength := DIMEN1 + ... + DIMENk; and +% ** sets the curve drawing routines to dash mode. +% ** Those lists are used by the curve drawing routines. +% ** Dimenj ... may be given as an explicit dimension (e.g., 5pt), or +% ** as an expression involving a dimension register (e.g., -2.5\dimen0). +% ** See Subsection 6.2 of the manual +\def\setdashpattern <#1>{% + \def\!Flist{}\def\!Blist{}\def\!UDlist{}% + \!countA=0 + \!ecfor\!item:=#1\do{% + \!dimenA=\!item\relax + \expandafter\!rightappend\the\!dimenA\withCS{\\}\to\!UDlist% + \advance\!countA 1 + \ifodd\!countA + \expandafter\!rightappend\the\!dimenA\withCS{\!Rule}\to\!Flist% + \expandafter\!leftappend\the\!dimenA\withCS{\!Rule}\to\!Blist% + \else + \expandafter\!rightappend\the\!dimenA\withCS{\!Skip}\to\!Flist% + \expandafter\!leftappend\the\!dimenA\withCS{\!Skip}\to\!Blist% + \fi}% + \!leaderlength=\!zpt + \def\!Rule##1{\advance\!leaderlength ##1}% + \def\!Skip##1{\advance\!leaderlength ##1}% + \!Flist% + \ifdim\!leaderlength>\!zpt + \else + \def\!Flist{\!Skip{24in}}\def\!Blist{\!Skip{24in}}\ignorespaces + \def\!UDlist{\\{\!zpt}\\{24in}}\ignorespaces + \!leaderlength=24in + \fi + \!dashingon} + + +% ** \!dashingon -- puts the curve drawing routines into dash mode +% ** \!dashingoff -- puts the curve drawing routines into solid mode +% ** These are internal commands, invoked by \setdashpattern and \setsolid +\def\!dashingon{% + \def\!advancedashing{\!!advancedashing}% + \def\!drawlinearsegment{\!lineardashed}% + \def\!puthline{\!putdashedhline}% + \def\!putvline{\!putdashedvline}% +% \def\!putsline{\!putdashedsline}% + \ignorespaces}% +\def\!dashingoff{% + \def\!advancedashing{\relax}% + \def\!drawlinearsegment{\!linearsolid}% + \def\!puthline{\!putsolidhline}% + \def\!putvline{\!putsolidvline}% +% \def\!putsline{\!putsolidsline}% + \ignorespaces} + + +% ** \setdots -- sets up a dot/skip pattern where dot (actually +% ** the current plotsymbol) is plunked down once for every LENGTH +% ** traveled along the curve. LENGTH defaults to 5pt. +% ** See Subsection 6.1 of the manual. +\def\setdots{% + \!ifnextchar<{\!setdots}{\!setdots<5pt>}} +\def\!setdots<#1>{% + \!dimenB=#1\advance\!dimenB -\plotsymbolspacing + \ifdim\!dimenB<\!zpt + \!dimenB=\!zpt + \fi +\setdashpattern <\plotsymbolspacing,\!dimenB>} + +% ** \setdotsnear for +% ** sets up a dot pattern where the dots are approximately LENGTH apart, +% ** the total length of the pattern is ARC LENGTH, and the pattern +% ** begins and ends with a dot. See Subsection 6.3 of the manual. +\def\setdotsnear <#1> for <#2>{% + \!dimenB=#2\relax \advance\!dimenB -.05pt + \!dimenC=#1\relax \!countA=\!dimenC + \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD + \divide \!countB \!countA + \ifnum 1>\!countB + \!countB=1 + \fi + \divide\!dimenB \!countB + \setdots <\!dimenB>} + +% ** \setdashes -- sets up a dash/skip pattern where the dash +% ** and the skip are each of length LENGTH (the dash is formed by +% ** plunking down the current plotsymbol over an arc of length LENGTH +% ** and so may actually be longer than LENGTH. LENGTH defaults to 5pt. +% ** See Subsection 6.1 of the manual. +\def\setdashes{% + \!ifnextchar<{\!setdashes}{\!setdashes<5pt>}} +\def\!setdashes<#1>{\setdashpattern <#1,#1>} + +% ** \setdashesnear ... +% ** Like \setdotsnear; the pattern begins and ends with a dash. +% ** See Subsection 6.3 of the manual. +\def\setdashesnear <#1> for <#2>{% + \!dimenB=#2\relax + \!dimenC=#1\relax \!countA=\!dimenC + \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD + \divide \!countB \!countA + \ifodd \!countB + \else + \advance \!countB 1 + \fi + \divide\!dimenB \!countB + \setdashes <\!dimenB>} + +% ** \setsolid -- puts the curve drawing routines in "solid line" mode, +% ** the default mode. See Subsection 6.1 of the manual. +\def\setsolid{% + \def\!Flist{\!Rule{24in}}\def\!Blist{\!Rule{24in}}% + \def\!UDlist{\\{24in}\\{\!zpt}}% + \!dashingoff} +\setsolid + +% ** \findlength {CURVE CMDS} +% ** PiCTeX executes the \start, \ljoin, and \qjoin cmds comprising +% ** CURVE CMDS without plotting anything, but stashes the length +% ** of the phantom curve away in \totalarclength. +% ** See Subsection 6.3 of the manual. +\def\findlength#1{% + \begingroup + \setdashpattern <0pt, \maxdimen> + \setplotsymbol ({}) + \dontsavelinesandcurves + #1% + \endgroup + \ignorespaces} + + +% ************************************************************* +% *** DIVISION (Does long division of dimension registers) *** +% ************************************************************* + +% ** User command: +% ** \Divide {DIVIDEND} by {DIVISOR} forming {RESULT} + +% ** Internal command +% ** \!divide{DIVIDEND}{DIVISOR}{RESULT} + +% ** \!divide DIVIDEND [by] DIVISOR [to get] ANSWER +% ** Divides the dimension DIVIDEND by the dimension DIVISOR, placing the +% ** quotient in the dimension register ANSWER. Values are understood to +% ** be in points. E.g. 12.5pt/1.4pt=8.92857pt. +% ** Quotient is accurate to 1/65536pt=2**[-16]pt +% ** |DIVISOR| should be < 2048pt (about 28 inches). +\def\!divide#1#2#3{% + \!dimenB=#1% ** dimB holds current remainder (r) + \!dimenC=#2% ** dimC holds divisor (d) + \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this + \divide \!dimenD \!dimenC% ** step, in units of scaled pts + \!dimenA=\!dimenD% ** dimA eventually holds answer (a) + \multiply\!dimenD \!dimenC% ** r <-- r - dq + \advance\!dimenB -\!dimenD% ** First step complete. Have integer part +% ** of a, and corresponding remainder. + \!dimenD=\!dimenC% ** Temporarily use dimD to hold |d| + \ifdim\!dimenD<\!zpt \!dimenD=-\!dimenD + \fi + \ifdim\!dimenD<64pt% ** Branch on the magnitude of |d| + \!divstep[\!tfs]\!divstep[\!tfs]% + \else + \!!divide + \fi + #3=\!dimenA\ignorespaces} + +% ** The following code handles divisors d with +% ** (1) .88in = 64pt <= d < 256pt = 3.54in +% ** (2) 3.54in = 256pt <= d < 2048pt = 28.34in +% ** Anything bigger than that may result in an overflow condition. +% ** For our purposes, we should never even see case (2). +\def\!!divide{% + \ifdim\!dimenD<256pt + \!divstep[64]\!divstep[32]\!divstep[32]% + \else + \!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]% + \!dimenA=2\!dimenA + \fi} + + +% ** The following macro does the real long division work. +\def\!divstep[#1]{% ** #1 = "B" + \!dimenB=#1\!dimenB% ** r <-- B*r + \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this + \divide \!dimenD by \!dimenC% ** step, in units of scaled pts + \!dimenA=#1\!dimenA% ** a <-- B*a + q + \advance\!dimenA by \!dimenD% + \multiply\!dimenD by \!dimenC% ** r <-- r - dq + \advance\!dimenB by -\!dimenD} + +% ** \Divide: See Subsection 9.3 of the manual. +\def\Divide <#1> by <#2> forming <#3> {% + \!divide{#1}{#2}{#3}} + + +% ********************************************* +% *** ELLIPSES (Draws ellipses and circles) *** +% ********************************************* + +% ** User commands +% ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART +% ** center at XCENTER YCENTER +% ** \circulararc DEGREES degrees from XSTART YSTART +% ** center at XCENTER YCENTER + +% ** Internal command +% ** \!sinandcos{32*ANGLE in radians}{32*SIN}{32*COS} + + +% ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART +% ** center at XCENTER YCENTER +% ** Draws a elliptical arc starting at the coordinate point (XSTART,YSTART). +% ** The center of the ellipse of which the arc is a segment is at +% ** (XCENTER,YCENTER). +% ** The arc extends through an angle of DEGREES degrees (may be + or -). +% ** A:B is the ratio of the length of the xaxis to the length of +% ** the yaxis of the ellipse +% ** Sqrt{[(XSTART-XCENTER)/A]**2 + [(YSTART-YCENTER)/B]**2} +% ** must be < 512pt (about 7in). +% ** Doesn't modify the dimensions (ht, dp, wd) of the PiCture under +% ** construction. + +% ** \circulararc -- See Subsection 5.3 of the manual. +\def\circulararc{% + \ellipticalarc axes ratio 1:1 } + +% ** \ellipticalarc -- See Subsection 5.3 of the manual. +\def\ellipticalarc axes ratio #1:#2 #3 degrees from #4 #5 center at #6 #7 {% + \!angle=#3pt\relax% ** get angle + \ifdim\!angle>\!zpt + \def\!sign{}% ** counterclockwise + \else + \def\!sign{-}\!angle=-\!angle% ** clockwise + \fi + \!xxloc=\!M{#6}\!xunit% ** convert CENTER to dimension + \!yyloc=\!M{#7}\!yunit + \!xxS=\!M{#4}\!xunit% ** get STARTing point on rim of ellipse + \!yyS=\!M{#5}\!yunit + \advance\!xxS -\!xxloc% ** make center of ellipse (0,0) + \advance\!yyS -\!yyloc + \!divide\!xxS{#1pt}\!xxS % ** scale point on ellipse to point on + \!divide\!yyS{#2pt}\!yyS % corresponding circle +% + \let\!MC=\!M% ** save current c/d mode + \!setdimenmode% ** go into dimension mode +% + \!xS=#1\!xxS \advance\!xS\!xxloc + \!yS=#2\!yyS \advance\!yS\!yyloc + \!start (\!xS,\!yS)% + \!loop\ifdim\!angle>14.9999pt% ** draw in major portion of ellipse + \!rotate(\!xxS,\!yyS)by(\!cos,\!sign\!sin)to(\!xxM,\!yyM) + \!rotate(\!xxM,\!yyM)by(\!cos,\!sign\!sin)to(\!xxE,\!yyE) + \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc + \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc + \!qjoin (\!xM,\!yM) (\!xE,\!yE) + \!xxS=\!xxE \!yyS=\!yyE + \advance \!angle -15pt + \repeat + \ifdim\!angle>\!zpt% ** complete remaining arc, if any + \!angle=100.53096\!angle% ** convert angle to radians, divide + \divide \!angle 360 % ** by 2, and multiply by 32 + \!sinandcos\!angle\!!sin\!!cos% ** get 32*sin & 32*cos + \!rotate(\!xxS,\!yyS)by(\!!cos,\!sign\!!sin)to(\!xxM,\!yyM) + \!rotate(\!xxM,\!yyM)by(\!!cos,\!sign\!!sin)to(\!xxE,\!yyE) + \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc + \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc + \!qjoin (\!xM,\!yM) (\!xE,\!yE) + \fi +% + \let\!M=\!MC% ** restore c/d mode + \ignorespaces}% ** if appropriate + + +% ** \!rotate(XREG,YREG)by(32cos,32sin)to(XXREG,YYREG) +% ** rotates (XREG,YREG) by angle with specfied scaled cos & sin to +% ** (XXREG,YYREG). Uses \!dimenA & \!dimenB as scratch registers. +\def\!rotate(#1,#2)by(#3,#4)to(#5,#6){% + \!dimenA=#3#1\advance \!dimenA -#4#2% ** Rcos(x+t)=Rcosx*cost - Rsinx*sint + \!dimenB=#3#2\advance \!dimenB #4#1% ** Rsin(x+t)=Rsinx*cost + Rcosx*sint + \divide \!dimenA 32 \divide \!dimenB 32 + #5=\!dimenA #6=\!dimenB + \ignorespaces} +\def\!sin{4.17684}% ** 32*sin(pi/24) (pi/24=7.5deg) +\def\!cos{31.72624}% ** 32*cos(pi/24) + + +% ** \!sinandcos{32*ANGLE in radians}{\SINCS}{\COSCS} +% ** Computes the 32*sine and 32*cosine of a small ANGLE expressed in +% ** radians/32 and puts these values in the replacement texts of +% ** \SINCS and \COSCS +\def\!sinandcos#1#2#3{% + \!dimenD=#1% ** angle is expressed in radians/32: 1pt = 1/32rad + \!dimenA=\!dimenD% ** dimA will eventually contain 32sin(angle)in pts + \!dimenB=32pt% ** dimB will eventually contain 32cos(angle)in pts + \!removept\!dimenD\!value% ** get value of 32*angle, without "pt" + \!dimenC=\!dimenD% ** holds 32*angle**i/i! in pts + \!dimenC=\!value\!dimenC \divide\!dimenC by 64 % ** now 32*angle**2/2 + \advance\!dimenB by -\!dimenC% ** 32-32*angle**2/2 + \!dimenC=\!value\!dimenC \divide\!dimenC by 96 % ** now 32*angle**3/3! + \advance\!dimenA by -\!dimenC% ** now 32*(angle-angle**3/6) + \!dimenC=\!value\!dimenC \divide\!dimenC by 128 % ** now 32*angle**4/4! + \advance\!dimenB by \!dimenC% + \!removept\!dimenA#2% ** set 32*sin(angle) + \!removept\!dimenB#3% ** set 32*cos(angle) + \ignorespaces} + + +% ***************************************************************** +% *** RULES (Draws rules, i.e., horizontal & vertical lines) *** +% ***************************************************************** + +% ** User command: +% ** \putrule [] from XCOORD1 YCOORD1 +% ** to XCOORD2 YCOORD2 + +% ** Internal commands: +% ** \!puthline [] (h = horizontal) +% ** Set by dashpat to either: \!putsolidhline or \!putdashedhline +% ** \!putvline [] (v = vertical) +% ** Either: \!putsolidvline or \!putdashedvline + + +% ** \putrule [] from XCOORD1 YCOORD1 +% ** to XCOORD2 YCOORD2 +% ** Draws a rule -- dashed or solid depending on the current dash pattern -- +% ** from (X1,Y1) to (X2,Y2). Uses TEK's \hrule & \vrule & \leaders +% ** constructions to handle horizontal & vertical lines efficiently both +% ** in terms of execution time and space in the DVI file. +% ** See Subsection 4.1 of the manual. +\def\putrule#1from #2 #3 to #4 #5 {% + \!xloc=\!M{#2}\!xunit \!xxloc=\!M{#4}\!xunit% + \!yloc=\!M{#3}\!yunit \!yyloc=\!M{#5}\!yunit% + \!dxpos=\!xxloc \advance\!dxpos by -\!xloc + \!dypos=\!yyloc \advance\!dypos by -\!yloc +% + \ifdim\!dypos=\!zpt + \def\!!Line{\!puthline{#1}}\ignorespaces + \else + \ifdim\!dxpos=\!zpt + \def\!!Line{\!putvline{#1}}\ignorespaces + \else + \def\!!Line{} + \fi + \fi + \let\!ML=\!M% ** save current coord\dimen mode + \!setdimenmode% ** express locations in dimens + \!!Line% + \let\!M=\!ML% ** restore previous c/d mode + \ignorespaces} + + +% ** \!putsolidhline [] +% ** Place horizontal solid line +\def\!putsolidhline#1{% + \ifdim\!dxpos>\!zpt + \put{\!hline\!dxpos}#1[l] at {\!xloc} {\!yloc} + \else + \put{\!hline{-\!dxpos}}#1[l] at {\!xxloc} {\!yyloc} + \fi + \ignorespaces} + +% ** \!putsolidvline [shifted ] +% ** Place vertical solid line +\def\!putsolidvline#1{% + \ifdim\!dypos>\!zpt + \put{\!vline\!dypos}#1[b] at {\!xloc} {\!yloc} + \else + \put{\!vline{-\!dypos}}#1[b] at {\!xxloc} {\!yyloc} + \fi + \ignorespaces} + +\def\!hline#1{\hbox to #1{\leaders \hrule height\linethickness\hfill}} +\def\!vline#1{\vbox to #1{\leaders \vrule width\linethickness\vfill}} + + +% ** \!putdashedhline [] +% ** Place dashed horizontal line +\def\!putdashedhline#1{% + \ifdim\!dxpos>\!zpt + \!DLsetup\!Flist\!dxpos + \put{\hbox to \!totalleaderlength{\!hleaders}\!hpartialpattern\!Rtrunc} + #1[l] at {\!xloc} {\!yloc} + \else + \!DLsetup\!Blist{-\!dxpos} + \put{\!hpartialpattern\!Ltrunc\hbox to \!totalleaderlength{\!hleaders}} + #1[r] at {\!xloc} {\!yloc} + \fi + \ignorespaces} + +% ** \!putdashedhline [] +% ** Place dashed vertical line +\def\!putdashedvline#1{% + \!dypos=-\!dypos% ** vertical leaders go from top to bottom + \ifdim\!dypos>\!zpt + \!DLsetup\!Flist\!dypos + \put{\vbox{\vbox to \!totalleaderlength{\!vleaders} + \!vpartialpattern\!Rtrunc}}#1[t] at {\!xloc} {\!yloc} + \else + \!DLsetup\!Blist{-\!dypos} + \put{\vbox{\!vpartialpattern\!Ltrunc + \vbox to \!totalleaderlength{\!vleaders}}}#1[b] at {\!xloc} {\!yloc} + \fi + \ignorespaces} + + +% ** The rest of the macros in this section are subroutines used by +% ** \!putdashedhline and \!putdashedvline. +\def\!DLsetup#1#2{% ** Dashed-Line set up + \let\!RSlist=#1% ** set !Rule-Skip list + \!countB=#2% ** convert rule length to integer (number of sps) + \!countA=\!leaderlength% ** ditto, leaderlength + \divide\!countB by \!countA% ** number of complete leader units + \!totalleaderlength=\!countB\!leaderlength + \!Rresiduallength=#2% + \advance \!Rresiduallength by -\!totalleaderlength% \** excess length + \!Lresiduallength=\!leaderlength + \advance \!Lresiduallength by -\!Rresiduallength + \ignorespaces} + +\def\!hleaders{% + \def\!Rule##1{\vrule height\linethickness width##1}% + \def\!Skip##1{\hskip##1}% + \leaders\hbox{\!RSlist}\hfill} + +\def\!hpartialpattern#1{% + \!dimenA=\!zpt \!dimenB=\!zpt + \def\!Rule##1{#1{##1}\vrule height\linethickness width\!dimenD}% + \def\!Skip##1{#1{##1}\hskip\!dimenD}% + \!RSlist} + +\def\!vleaders{% + \def\!Rule##1{\hrule width\linethickness height##1}% + \def\!Skip##1{\vskip##1}% + \leaders\vbox{\!RSlist}\vfill} + +\def\!vpartialpattern#1{% + \!dimenA=\!zpt \!dimenB=\!zpt + \def\!Rule##1{#1{##1}\hrule width\linethickness height\!dimenD}% + \def\!Skip##1{#1{##1}\vskip\!dimenD}% + \!RSlist} + +\def\!Rtrunc#1{\!trunc{#1}>\!Rresiduallength} +\def\!Ltrunc#1{\!trunc{#1}<\!Lresiduallength} + +\def\!trunc#1#2#3{% + \!dimenA=\!dimenB + \advance\!dimenB by #1% + \!dimenD=\!dimenB \ifdim\!dimenD#2#3\!dimenD=#3\fi + \!dimenC=\!dimenA \ifdim\!dimenC#2#3\!dimenC=#3\fi + \advance \!dimenD by -\!dimenC} + + +% **************************************************************** +% *** LINEAR ARC (Draws straight lines -- solid and dashed) *** +% **************************************************************** + +% ** User commands +% ** \inboundscheckoff +% ** \inboundscheckon + +% ** Internal commands +% ** \!start (XCOORD,YCOORD) +% ** \!ljoin (XCOORD,YCOORD) +% ** \!drawlinearsegment -- set by \dashpat to either +% ** \!linearsolid or \!lineardashed +% ** \!advancedashing -- set by \dashpat to either +% ** \relax or \!!advancedashing +% ** \!plotifinbounds -- set by \inboundscheck off/on to either +% ** \!plot or \!!plotifinbounds +% ** \!initinboundscheck -- set by \inboundscheck off/on to either +% ** \relax or \!!initinboundscheck + + +% \plotsymbolspacing ** distance between consecutive plot positions +% \!xS ** starting x +% \!yS ** starting y +% \!xE ** ending x +% \!yE ** ending y +% \!xdiff ** x_end - x_start +% \!ydiff ** y_end - y_start +% \!distacross ** how far along curve next point to be plotted is +% \!arclength ** approximate length of arc for current interval +% \!downlength ** remaining length for "pen" to be down +% \!uplength ** length for "pen" to be down +% \!intervalno ** counts segments to curve +% \totalarclength ** cumulative distance along curve +% \!npoints ** approximately (arc length / plotsymbolspacing) + +% ** Calls -- \!Pythag, \!divide, \!plot + + +% ** \!start (XCOORD,YCOORD) +% ** Sets initial point for linearly (or quadratically) interpolated curve +\def\!start (#1,#2){% + \!plotxorigin=\!xorigin \advance \!plotxorigin by \!plotsymbolxshift + \!plotyorigin=\!yorigin \advance \!plotyorigin by \!plotsymbolyshift + \!xS=\!M{#1}\!xunit \!yS=\!M{#2}\!yunit + \!rotateaboutpivot\!xS\!yS + \!copylist\!UDlist\to\!!UDlist% **\!UDlist has the form \\{dimen1}\\{dimen2}.. +% ** Routine will draw dashed line with pen +% ** down for dimen1, up for dimen2, ... + \!getnextvalueof\!downlength\from\!!UDlist + \!distacross=\!zpt% ** 1st point goes at start of curve + \!intervalno=0 % ** initialize interval counter + \global\totalarclength=\!zpt% ** initialize distance traveled along curve + \ignorespaces} + + +% ** \!ljoin (XCOORD,YCOORD) +% ** Draws a straight line starting at the last point specified +% ** by the most recent \!start, \!ljoin, or \!qjoin, and +% ** ending at (XCOORD,YCOORD). +\def\!ljoin (#1,#2){% + \advance\!intervalno by 1 + \!xE=\!M{#1}\!xunit \!yE=\!M{#2}\!yunit + \!rotateaboutpivot\!xE\!yE + \!xdiff=\!xE \advance \!xdiff by -\!xS%** xdiff = xE - xS + \!ydiff=\!yE \advance \!ydiff by -\!yS%** ydiff = yE - yS + \!Pythag\!xdiff\!ydiff\!arclength% ** arclength = sqrt(xdiff**2+ydiff**2) + \global\advance \totalarclength by \!arclength% + \!drawlinearsegment% ** set by dashpat to \!linearsolid or \!lineardashed + \!xS=\!xE \!yS=\!yE% ** shift ending points to starting points + \ignorespaces} + + +% ** The following routine is used to draw a "solid" line between (xS,yS) +% ** and (xE,yE). Points are spaced nearly every \plotsymbolspacing length +% ** along the line. +\def\!linearsolid{% + \!npoints=\!arclength + \!countA=\plotsymbolspacing + \divide\!npoints by \!countA% ** now #pts =. arclength/plotsymbolspacing + \ifnum \!npoints<1 + \!npoints=1 + \fi + \divide\!xdiff by \!npoints + \divide\!ydiff by \!npoints + \!xpos=\!xS \!ypos=\!yS +% + \loop\ifnum\!npoints>-1 + \!plotifinbounds + \advance \!xpos by \!xdiff + \advance \!ypos by \!ydiff + \advance \!npoints by -1 + \repeat + \ignorespaces} + + +% ** The following routine is used to draw a dashed line between (xS,yS) +% ** and (xE,yE). The dash pattern continues from the previous segment. +\def\!lineardashed{% +% ** + \ifdim\!distacross>\!arclength + \advance \!distacross by -\!arclength %nothing to plot in this interval +% + \else +% + \loop\ifdim\!distacross<\!arclength +% ** plot point, interpolating linearly in x and y + \!divide\!distacross\!arclength\!dimenA% ** dimA = across/arclength + \!removept\!dimenA\!t% ** \!t holds value in dimA, without the "pt" + \!xpos=\!t\!xdiff \advance \!xpos by \!xS + \!ypos=\!t\!ydiff \advance \!ypos by \!yS + \!plotifinbounds + \advance\!distacross by \plotsymbolspacing + \!advancedashing + \repeat +% + \advance \!distacross by -\!arclength% ** prepare for next interval + \fi + \ignorespaces} + + +\def\!!advancedashing{% + \advance\!downlength by -\plotsymbolspacing + \ifdim \!downlength>\!zpt + \else + \advance\!distacross by \!downlength + \!getnextvalueof\!uplength\from\!!UDlist + \advance\!distacross by \!uplength + \!getnextvalueof\!downlength\from\!!UDlist + \fi} + + +% ** \inboundscheckoff & \inboundscheckon: See Subsection 5.5 of the manual. +\def\inboundscheckoff{% + \def\!plotifinbounds{\!plot(\!xpos,\!ypos)}% + \def\!initinboundscheck{\relax}\ignorespaces} +\def\inboundscheckon{% + \def\!plotifinbounds{\!!plotifinbounds}% + \def\!initinboundscheck{\!!initinboundscheck}% + \!initinboundscheck\ignorespaces} +\inboundscheckoff + +% ** The following code plots the current point only if it falls in the +% ** current plotarea. It doesn't matter if the coordinate system has +% ** changed since the plotarea was set up. However, shifts of the plot +% ** are ignored (how the plotsymbol stands relative to its plot position is +% ** unknown anyway). +\def\!!plotifinbounds{% + \ifdim \!xpos<\!checkleft + \else + \ifdim \!xpos>\!checkright + \else + \ifdim \!ypos<\!checkbot + \else + \ifdim \!ypos>\!checktop + \else + \!plot(\!xpos,\!ypos) + \fi + \fi + \fi + \fi} + + +\def\!!initinboundscheck{% + \!checkleft=\!arealloc \advance\!checkleft by \!xorigin + \!checkright=\!arearloc \advance\!checkright by \!xorigin + \!checkbot=\!areabloc \advance\!checkbot by \!yorigin + \!checktop=\!areatloc \advance\!checktop by \!yorigin} + + +% ********************************* +% *** LOGTEN (Log_10 function) *** +% ********************************* +% +% ** \!logten{X} +% ** Calculates log_10 of X. X and LOG10(X) are in fixed point notation. +% ** X must be positive; it may have an optional `+' sign; any number +% ** of digits may be specified for X. The absolute error in LOG10(X) is +% ** less than .0001 (probably < .00006). That's about as good as you +% ** hope for, since TEX only operates to 5 figures after the decimal +% ** point anyway. + +% \!rootten=3.162278pt **** These are values are set in ALLOCATIONS +% \!tenAe=2.543275pt (=A5) +% \!tenAc=2.773839pt (=A3) +% \!tenAa=8.690286pt (=A1) + +\def\!logten#1#2{% + \expandafter\!!logten#1\!nil + \!removept\!dimenF#2% + \ignorespaces} + +\def\!!logten#1#2\!nil{% + \if -#1% + \!dimenF=\!zpt + \def\!next{\ignorespaces}% + \else + \if +#1% + \def\!next{\!!logten#2\!nil}% + \else + \if .#1% + \def\!next{\!!logten0.#2\!nil}% + \else + \def\!next{\!!!logten#1#2..\!nil}% + \fi + \fi + \fi + \!next} + +\def\!!!logten#1#2.#3.#4\!nil{% + \!dimenF=1pt % ** DimF holds log10 original argument + \if 0#1% + \!!logshift#3pt % ** Argument < 1 + \else % ** Argument >= 1 + \!logshift#2/% ** Shift decimal pt as many places + \!dimenE=#1.#2#3pt % ** as there are figures in #2 + \fi % ** Now dimE holds revised X want log10 of + \ifdim \!dimenE<\!rootten% ** Transform X to XX between sqrt(10) + \multiply \!dimenE 10 % ** and 10*sqrt(10) + \advance \!dimenF -1pt + \fi + \!dimenG=\!dimenE% ** dimG <- (XX + 10) + \advance\!dimenG 10pt + \advance\!dimenE -10pt % ** dimE <- (XX - 10) + \multiply\!dimenE 10 % ** dimE = 10*(XX-10) + \!divide\!dimenE\!dimenG\!dimenE% ** Now dimE=10t==10*(XX-10)/(XX+10) + \!removept\!dimenE\!t% ** !t=10t, with "pt" removed + \!dimenG=\!t\!dimenE% ** dimG=100t**2 + \!removept\!dimenG\!tt% ** !tt=100t**2, with "pt" removed + \!dimenH=\!tt\!tenAe% ** dimH=10*a5*(10t)**2 /100 + \divide\!dimenH 100 + \advance\!dimenH \!tenAc% ** ditto + 10*a3 + \!dimenH=\!tt\!dimenH% ** ditto * (10t)**2 /100 + \divide\!dimenH 100 + \advance\!dimenH \!tenAa% ** ditto + 10*a1 + \!dimenH=\!t\!dimenH% ** ditto * 10t / 100 + \divide\!dimenH 100 % ** Now dimH = log10(XX) - 1 + \advance\!dimenF \!dimenH}% ** dimF = log10(X) + +\def\!logshift#1{% + \if #1/% + \def\!next{\ignorespaces}% + \else + \advance\!dimenF 1pt + \def\!next{\!logshift}% + \fi + \!next} + + \def\!!logshift#1{% + \advance\!dimenF -1pt + \if 0#1% + \def\!next{\!!logshift}% + \else + \if p#1% + \!dimenF=1pt + \def\!next{\!dimenE=1p}% + \else + \def\!next{\!dimenE=#1.}% + \fi + \fi + \!next} + + +% *********************************************************** +% *** PICTURES (Basic setups for PiCtures; \put commands) *** +% *********************************************************** + +% ** User Commands: +% ** \beginpicture +% ** \endpicture +% ** \endpicturesave +% ** \setcoordinatesystem units point at XREF YREF +% ** \put {OBJECT} [ORIENTATION] at XCOORD YCOORD +% ** \multiput {OJBECT} [ORIENTATION] ) at +% ** XCOORD YCOORD +% ** *NUMBER_OF_TIMES DXCOORD DYCOORD / +% ** \accountingon +% ** \accountingoff +% ** \stack [ORIENTATION] {LIST OF ITEMS} +% ** \lines [ORIENTATION] {LINES} +% ** \Lines [ORIENTATION] {LINES} +% ** \setdimensionmode +% ** \setcoordinatemode +% ** \Xdistance +% ** \Ydistance + +% ** Internal commands: +% ** \!setputobject{OBJECT}{[ORIENTATION]} +% ** \!dimenput{OBJECT}[ORIENTATION](XDIMEN,YDIMEN) +% ** \!setdimenmode +% ** \!setcoordmode +% ** \!ifdimenmode +% ** \!ifcoordmode + + +% ** \beginpicture +% ** \endpicture +% ** \endpicturesave +% ** \beginpicture ... \endpicture creates an hbox. Objects are +% ** placed in this box using the \put command and the like (see below). +% ** The location of an object is specified in terms of coordinate system(s) +% ** established by \setcoordinatesystem. Each coordinate system (there +% ** might be just one) specifies the length of 1 horizontal unit, the length +% ** of 1 vertical unit, and the coordinates of a "reference point". The +% ** reference points of various coordinate systems will be in the same +% ** physical location. The macros keep track of the size of the objects +% ** and their locations. The resulting hbox is the smallest hbox which +% ** encloses all the objects, and whose TEK reference point is the point +% ** on the left edge of the box closest vertically to the PICTEX reference +% ** point. Using \endpicturesave, you can (globally) save the distance TEK's +% ** reference point is to the right (respectively, up from) PICTEX's +% ** reference point in the dimension register \XREG (respectively \YREG). +% ** You can then \put the picture OBJECT into a larger picture so that its +% ** reference point is at (XCOORD,YCOORD) with the command +% ** \put {picture OBJECT} [Bl] <\XREG, \YREG> at XCOORD YCOORD + +% ** \beginpicture : See Subsection 1.1 of the manual. +\def\beginpicture{% + \setbox\!picbox=\hbox\bgroup% + \!xleft=\maxdimen + \!xright=-\maxdimen + \!ybot=\maxdimen + \!ytop=-\maxdimen} + +% ** \endpicture : See Subsection 1.1 of the manual. +\def\endpicture{% + \ifdim\!xleft=\maxdimen% ** check if nothing was put in picbox + \!xleft=\!zpt \!xright=\!zpt \!ybot=\!zpt \!ytop=\!zpt + \fi + \global\!Xleft=\!xleft \global\!Xright=\!xright + \global\!Ybot=\!ybot \global\!Ytop=\!ytop + \egroup% + \ht\!picbox=\!Ytop \dp\!picbox=-\!Ybot + \ifdim\!Ybot>\!zpt + \else + \ifdim\!Ytop<\!zpt + \!Ybot=\!Ytop + \else + \!Ybot=\!zpt + \fi + \fi + \hbox{\kern-\!Xleft\lower\!Ybot\box\!picbox\kern\!Xright}} + +% ** \endpicturesave : See Subsection 8.4 of the manual. +\def\endpicturesave <#1,#2>{% + \endpicture \global #1=\!Xleft \global #2=\!Ybot \ignorespaces} + + +% ** \setcoordinatesystem units +% ** point at XREF YREF +% ** Each of `units ' and `point at XREF YREF' +% ** are optional. +% ** Unit lengths must be given in dimensions (e.g., <10pt,1in>). +% ** Default unit lengths are 1pt, 1pt, or previous unit lengths. +% ** Reference point is specified in current units (e.g., 3 5 ). +% ** Default reference point is 0 0 , or previous reference point. +% ** Unit lengths and reference points obey TEX's scoping rules. +% ** See Subsection 1.2 of the manual. +\def\setcoordinatesystem{% + \!ifnextchar{u}{\!getlengths } + {\!getlengths units <\!xunit,\!yunit>}} +\def\!getlengths units <#1,#2>{% + \!xunit=#1\relax + \!yunit=#2\relax + \!ifcoordmode + \let\!SCnext=\!SCccheckforRP + \else + \let\!SCnext=\!SCdcheckforRP + \fi + \!SCnext} +\def\!SCccheckforRP{% + \!ifnextchar{p}{\!cgetreference } + {\!cgetreference point at {\!xref} {\!yref} }} +\def\!cgetreference point at #1 #2 {% + \edef\!xref{#1}\edef\!yref{#2}% + \!xorigin=\!xref\!xunit \!yorigin=\!yref\!yunit + \!initinboundscheck % ** See linear.tex + \ignorespaces} +\def\!SCdcheckforRP{% + \!ifnextchar{p}{\!dgetreference}% + {\ignorespaces}} +\def\!dgetreference point at #1 #2 {% + \!xorigin=#1\relax \!yorigin=#2\relax + \ignorespaces} + + +% ** \put {OBJECT} [XY] at (XCOORD,YCOORD) +% ** `[XY]' and `' are optional. +% ** First OBJECT is placed in an hbox (the "objectbox") and then a +% ** "reference point" is assigned to the objectbox as follows: +% ** [1] first, the reference point is taken to be the center of the box; +% ** [2] next, centering is overridden by the specifications +% ** X=l -- reference point along the left edge of the objectbox +% ** X=r -- reference point along the right edge of the objectbox +% ** Y=b -- reference point along the bottom edge of the objectbox +% ** Y=B -- reference point along the Baseline of the objectbox +% ** Y=t -- reference point along the top edge of the objectbox; +% ** [3] finally the reference point is shifted left by XDIMEN, down +% ** by YDIMEN (both default to 0pt). +% ** The objectbox is placed within PICBOX with its reference point at +% ** (XCOORD,YCOORD). +% ** If OBJECT is a saved box, say box0, you have to write +% ** \put{\box0}... or \put{\copy0}... +% ** The objectbox is void after the put. +% ** See Subsection 2.1 of the manual. +\long\def\put#1#2 at #3 #4 {% + \!setputobject{#1}{#2}% + \!xpos=\!M{#3}\!xunit \!ypos=\!M{#4}\!yunit + \!rotateaboutpivot\!xpos\!ypos% + \advance\!xpos -\!xorigin \advance\!xpos -\!xshift + \advance\!ypos -\!yorigin \advance\!ypos -\!yshift + \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos% + \!doaccounting\ignorespaces} + +% ** \multiput etc. Like \put. The objectbox is not voided until the +% ** termininating /, and is placed repeatedly with: +% ** XCOORD YCOORD -- the objectbox is put down with its reference point +% ** at (XCOORD,YCOORD); +% ** *N DXCOORD DYCOORD -- each of N times the current +% ** (xcoord,ycoord) is incremented by (DXCOORD,DYCOORD), and the +% ** objectbox is put down with its reference point at (xcoord,ycoord) +% ** (This specification has to follow an XCOORD YCOORD pair) +% ** See Subsection 2.2 of the manual. +\long\def\multiput #1#2 at {% + \!setputobject{#1}{#2}% + \!ifnextchar"{\!putfromfile}{\!multiput}} +\def\!putfromfile"#1"{% + \expandafter\!multiput \input #1 /} +\def\!multiput{% + \futurelet\!nextchar\!!multiput} +\def\!!multiput{% + \if *\!nextchar + \def\!nextput{\!alsoby}% + \else + \if /\!nextchar + \def\!nextput{\!finishmultiput}% + \else + \def\!nextput{\!alsoat}% + \fi + \fi + \!nextput} +\def\!finishmultiput/{% + \setbox\!putobject=\hbox{}% + \ignorespaces} + +% ** \!alsoat XCOORD YCOORD +% ** The objectbox is put down with reference point at XCOORD,YCOORD +\def\!alsoat#1 #2 {% + \!xpos=\!M{#1}\!xunit \!ypos=\!M{#2}\!yunit + \!rotateaboutpivot\!xpos\!ypos% + \advance\!xpos -\!xorigin \advance\!xpos -\!xshift + \advance\!ypos -\!yorigin \advance\!ypos -\!yshift + \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos% + \!doaccounting + \!multiput} + +% ** \!alsoby*N DXCOORD DYCOORD +% ** N times, the current (XCOORD,YCOORD) is advanced by (DXCOORD,DYCOORD), +% ** and the current (shifted, oriented) OBJECT is put down. +\def\!alsoby*#1 #2 #3 {% + \!dxpos=\!M{#2}\!xunit \!dypos=\!M{#3}\!yunit + \!rotateonly\!dxpos\!dypos + \!ntemp=#1% + \!!loop\ifnum\!ntemp>0 + \advance\!xpos by \!dxpos \advance\!ypos by \!dypos + \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos% + \advance\!ntemp by -1 + \repeat + \!doaccounting + \!multiput} + +% ** \accountingoff : Suspends PiCTeX's accounting of the aggregate +% ** size of the picture box. +% ** \accounting on : Reinstates accounting. +% ** See Subsection 8.2 of the manual. +\def\accountingon{\def\!doaccounting{\!!doaccounting}\ignorespaces} +\def\accountingoff{\def\!doaccounting{}\ignorespaces} +\accountingon +\def\!!doaccounting{% + \!xtemp=\!xpos + \!ytemp=\!ypos + \ifdim\!xtemp<\!xleft + \!xleft=\!xtemp + \fi + \advance\!xtemp by \!wd + \ifdim\!xright<\!xtemp + \!xright=\!xtemp + \fi + \advance\!ytemp by -\!dp + \ifdim\!ytemp<\!ybot + \!ybot=\!ytemp + \fi + \advance\!ytemp by \!dp + \advance\!ytemp by \!ht + \ifdim\!ytemp>\!ytop + \!ytop=\!ytemp + \fi} + +\long\def\!setputobject#1#2{% + \setbox\!putobject=\hbox{#1}% + \!ht=\ht\!putobject \!dp=\dp\!putobject \!wd=\wd\!putobject + \wd\!putobject=\!zpt + \!xshift=.5\!wd \!yshift=.5\!ht \advance\!yshift by -.5\!dp + \edef\!putorientation{#2}% + \expandafter\!SPOreadA\!putorientation[]\!nil% + \expandafter\!SPOreadB\!putorientation<\!zpt,\!zpt>\!nil\ignorespaces} + +\def\!SPOreadA#1[#2]#3\!nil{\!etfor\!orientation:=#2\do\!SPOreviseshift} + +\def\!SPOreadB#1<#2,#3>#4\!nil{\advance\!xshift by -#2\advance\!yshift by -#3} + +\def\!SPOreviseshift{% + \if l\!orientation + \!xshift=\!zpt + \else + \if r\!orientation + \!xshift=\!wd + \else + \if b\!orientation + \!yshift=-\!dp + \else + \if B\!orientation + \!yshift=\!zpt + \else + \if t\!orientation + \!yshift=\!ht + \fi + \fi + \fi + \fi + \fi} + + +% ** \!dimenput{OBJECT} [XY] (XLOC,YLOC) +% ** This is an internal put routine, similar to \put, except that +% ** XLOC=distance right from reference point, YLOC=distance up from +% ** reference point. XLOC and YLOC are dimensions, so this routine +% ** is completely independent of the current coordinate system. +% ** This routine does NOT do ROTATIONS. +\long\def\!dimenput#1#2(#3,#4){% + \!setputobject{#1}{#2}% + \!xpos=#3\advance\!xpos by -\!xshift + \!ypos=#4\advance\!ypos by -\!yshift + \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos% + \!doaccounting\ignorespaces} + + +% ** The following macros permit the picture drawing routines to be used +% ** either in the default "coordinate mode", or in "dimension mode". +% ** In coordinate mode \!M(1.5,\!xunit) expands to 1.5\!xunit +% ** In dimension mode \!M(1.5pt,\!xunit) expands to 1.5pt +% ** Dimension mode is useful in coding macros. +% ** Any special purpose picture macro that sets dimension mode should +% ** reset coordinate mode before completion. +% ** See Subsection 9.2 of the manual. +\def\!setdimenmode{% + \let\!M=\!M!!\ignorespaces} +\def\!setcoordmode{% + \let\!M=\!M!\ignorespaces} +\def\!ifcoordmode{% + \ifx \!M \!M!} +\def\!ifdimenmode{% + \ifx \!M \!M!!} +\def\!M!#1#2{#1#2} +\def\!M!!#1#2{#1} +\!setcoordmode +\let\setdimensionmode=\!setdimenmode +\let\setcoordinatemode=\!setcoordmode + +% ** \Xdistance{XCOORD}, \Ydistance{YCOORD} are the horizontal and +% ** vertical distances from the origin (0,0) to the point +% ** (XCOORD,YCOORD) in the current coordinate system. +% ** See Subsection 9.2 of the manual. +\def\Xdistance#1{% + \!M{#1}\!xunit + \ignorespaces} +\def\Ydistance#1{% + \!M{#1}\!yunit + \ignorespaces} + +% ** The following macros -- \stack, \line, and \Lines -- are useful for +% ** annotating PiCtures. They can be used outside the \beginpicture ... +% ** \endpicture environment. + +% ** \stack [POSITIONING] {VALUESLIST} +% ** Builds a vertical stack of the values in VALUESLIST. Values in +% ** VALUESLIST are separated by commas. In the resulting stack, values are +% ** centered by default, and positioned flush left (right) if +% ** POSITIONING = l (r). Values are separated vertically by LEADING, +% ** which defaults to \stackleading. +% ** See Subsection 2.3 of the manual. +\def\stack{% + \!ifnextchar[{\!stack}{\!stack[c]}} +\def\!stack[#1]{% + \let\!lglue=\hfill \let\!rglue=\hfill + \expandafter\let\csname !#1glue\endcsname=\relax + \!ifnextchar<{\!!stack}{\!!stack<\stackleading>}} +\def\!!stack<#1>#2{% + \vbox{\def\!valueslist{}\!ecfor\!value:=#2\do{% + \expandafter\!rightappend\!value\withCS{\\}\to\!valueslist}% + \!lop\!valueslist\to\!value + \let\\=\cr\lineskiplimit=\maxdimen\lineskip=#1% + \baselineskip=-1000pt\halign{\!lglue##\!rglue\cr \!value\!valueslist\cr}}% + \ignorespaces} + +% ** \lines [POSITIONING] {LINES} +% ** Builds a vertical array of the lines in LINES. Each line in LINES +% ** is terminated by a \cr. In the resulting array, lines are +% ** centered by default, and positioned flush left (right) if +% ** POSITIONING = l (r). The lines in the array are subject to TeX's +% ** usual spacing rules: in particular the baselines are ordinarily an equal +% ** distance apart. The baseline of the array is the baseline of the +% ** the bottom line. +% ** See Subsection 2.3 of the manual. +\def\lines{% + \!ifnextchar[{\!lines}{\!lines[c]}} +\def\!lines[#1]#2{% + \let\!lglue=\hfill \let\!rglue=\hfill + \expandafter\let\csname !#1glue\endcsname=\relax + \vbox{\halign{\!lglue##\!rglue\cr #2\crcr}}% + \ignorespaces} + +% ** \Lines [POSITIONING] {LINES} +% ** Like \lines, but the baseline of the array is the baseline of the +% ** top line. See Subsection 2.3 of the manual. +\def\Lines{% + \!ifnextchar[{\!Lines}{\!Lines[c]}} +\def\!Lines[#1]#2{% + \let\!lglue=\hfill \let\!rglue=\hfill + \expandafter\let\csname !#1glue\endcsname=\relax + \vtop{\halign{\!lglue##\!rglue\cr #2\crcr}}% + \ignorespaces} + + +% ********************************************* +% *** PLOTTING (Things to do with plotting) *** +% ********************************************* + +% ** User commands +% ** \setplotsymbol ({PLOTSYMBOL} [ORIENTATION] ) +% ** \savelinesandcurves on "FILE_NAME" +% ** \dontsavelinesandcurves +% ** \writesavefile {MESSAGE} +% ** \replot {FILE_NAME} + +% ** Internal command +% ** \!plot(XDIMEN,YDIMEN) + +% ** \setplotsymbol ({PLOTSYMBOL} [ ] < , >) +% ** Save PLOTSYMBOL away in an hbox for use with curve plotting routines +% ** See Subsection 5.2 of the manual. +\def\setplotsymbol(#1#2){% + \!setputobject{#1}{#2} + \setbox\!plotsymbol=\box\!putobject% + \!plotsymbolxshift=\!xshift + \!plotsymbolyshift=\!yshift + \ignorespaces} + +\font\fiverm=cmr5 +\setplotsymbol({\fiverm .})% ** initialize plotsymbol + + +% ** \!plot is either \!!plot (when no lines and curves are being saved) or +% ** \!!!plot (when lines and curves are being saved) + +% ** \!!plot(XDIMEN,YDIMEN) +% ** Places the current plotsymbol a horizontal distance=XDIMEN-xorigin +% ** and a vertical distance=YDIMEN-yorigin from the current +% ** reference point. +\def\!!plot(#1,#2){% + \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over + \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up + \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA% + \ignorespaces} + +% ** \!!!plot(XDIMEN,YDIMEN) +% ** Like \!!plot, but also saves the plot location in units of +% ** scaled point, on file `replotfile' +\def\!!!plot(#1,#2){% + \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over + \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up + \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA% + \!countE=\!dimenA + \!countF=\!dimenB + \immediate\write\!replotfile{\the\!countE,\the\!countF.}% + \ignorespaces} + + +% ** \savelinesandcurves on "FILE_NAME" +% ** Switch to save locations used for plotting lines and curves +% ** (No advantage in saving locations for solid lines; however +% ** replotting curve locations speeds things up by a factor of about 4. +% ** \dontsavelinesandcurves +% ** Terminates \savelinesandcurves. The default. +% ** See Subsection 5.6 of the manual. +\def\savelinesandcurves on "#1" {% + \immediate\closeout\!replotfile + \immediate\openout\!replotfile=#1% + \let\!plot=\!!!plot} + +\def\dontsavelinesandcurves {% + \let\!plot=\!!plot} +\dontsavelinesandcurves + +% ** \writesavefile {MESSAGE} +% ** The message is preceded by a "%", so that it won't interfere +% ** with replotting. +% ** See Subsection 5.6 of the manual. +{\catcode`\%=11\xdef\!Commentsignal{%}} +\def\writesavefile#1 {% + \immediate\write\!replotfile{\!Commentsignal #1}% + \ignorespaces} + +% ** \replot "FILE_NAME" +% ** Replots the locations saved earlier under \savelinesandcurves +% ** on "FILE_NAME" +% ** See Subsection 5.6 of the manual. +\def\replot"#1" {% + \expandafter\!replot\input #1 /} +\def\!replot#1,#2. {% + \!dimenA=#1sp + \kern\!dimenA\raise#2sp\copy\!plotsymbol\kern-\!dimenA + \futurelet\!nextchar\!!replot} +\def\!!replot{% + \if /\!nextchar + \def\!next{\!finish}% + \else + \def\!next{\!replot}% + \fi + \!next} +% ************************************************** +% *** PYTHAGORAS (Euclidean distance function) *** +% ************************************************** + +% ** User command: +% ** \placehypotenuse for and in + +% ** Internal command: +% ** \!Pythag{X}{Y}{Z} +% ** Input X,Y are dimensions, or dimension registers. +% ** Output Z == sqrt(X**2+Y**2) must be a dimension register. +% ** Assumes that |X|+|Y| < 2048pt (about 28in). + +% ** Without loss of generality, suppose x>0, y>0. Put s = x+y, +% ** z = sqrt(x**2+y**2). Then z = s*f, where f = sqrt(t**2 + (1-t)**2) +% ** = sqrt((1+tau**2)/2), where t = x/s and tau = 2(t-1/2) . + +% ** Uses the \!divide macro (which uses registers \!dimenA--\!dimenD. +% ** Uses the \!removept macro (e.g., 123.45pt --> 123.45) +% ** Uses registers \!dimenE--\!dimenI. +\def\!Pythag#1#2#3{% + \!dimenE=#1\relax + \ifdim\!dimenE<\!zpt + \!dimenE=-\!dimenE + \fi% ** dimE = |x| + \!dimenF=#2\relax + \ifdim\!dimenF<\!zpt + \!dimenF=-\!dimenF + \fi% ** dimF = |y| + \advance \!dimenF by \!dimenE% ** dimF = s = |x|+|y| + \ifdim\!dimenF=\!zpt + \!dimenG=\!zpt% ** dimG = z = sqrt(x**2+y**2) + \else + \!divide{8\!dimenE}\!dimenF\!dimenE% ** now dimE = 8t = (8|x|)/s + \advance\!dimenE by -4pt% ** 8tau = (8t-4)*2 + \!dimenE=2\!dimenE% ** (tau = 2*t - 1) + \!removept\!dimenE\!!t% ** 8tau, without "pt" + \!dimenE=\!!t\!dimenE% ** (8tau)**2, in pts + \advance\!dimenE by 64pt% ** u = [64 + (8tau)**2]/2 + \divide \!dimenE by 2% ** [u = (8f)**2] + \!dimenH=7pt% ** initial guess g at sqrt(u) + \!!Pythag\!!Pythag\!!Pythag% ** 3 iterations give sqrt(u) + \!removept\!dimenH\!!t% ** 8f=sqrt(u), without "pt" + \!dimenG=\!!t\!dimenF% ** z = (8f)*s/8 + \divide\!dimenG by 8 + \fi + #3=\!dimenG + \ignorespaces} + +\def\!!Pythag{% ** Newton-Raphson for sqrt + \!divide\!dimenE\!dimenH\!dimenI% ** v = u/g + \advance\!dimenH by \!dimenI% ** g <-- (g + u/g)/2 + \divide\!dimenH by 2} + +% ** \placehypotenuse for and in +% ** See Subsection 9.3 of the manual. +\def\placehypotenuse for <#1> and <#2> in <#3> {% + \!Pythag{#1}{#2}{#3}} + + +% ********************************************** +% *** QUADRATIC ARC (Draws a quadratic arc) *** +% ********************************************** + +% ** Internal command +% ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2) + +% ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2) +% ** Draws an arc starting at the (last) point specified by the most recent +% ** \!qjoin, or \!ljoin, or \!start and passing through (X_1,Y_1), (X_2,Y_2). +% ** Uses quadratic interpolation in both x and y: +% ** x(t), 0 <= t <= 1, interpolates x_0, x_1, x_2 at t=0, .5, 1 +% ** y(t), 0 <= t <= 1, interpolates y_0, y_1, y_2 at t=0, .5, 1 + +\def\!qjoin (#1,#2) (#3,#4){% + \advance\!intervalno by 1 + \!ifcoordmode + \edef\!xmidpt{#1}\edef\!ymidpt{#2}% + \else + \!dimenA=#1\relax \edef\!xmidpt{\the\!dimenA}% + \!dimenA=#2\relax \edef\!ymidpt{\the\!dimenA}% + \fi + \!xM=\!M{#1}\!xunit \!yM=\!M{#2}\!yunit \!rotateaboutpivot\!xM\!yM + \!xE=\!M{#3}\!xunit \!yE=\!M{#4}\!yunit \!rotateaboutpivot\!xE\!yE +% +% ** Find coefficients for x(t)=a_x + b_x*t + c_x*t**2 + \!dimenA=\!xM \advance \!dimenA by -\!xS% ** dimA = I = xM - xS + \!dimenB=\!xE \advance \!dimenB by -\!xM% ** dimB = II = xE-xM + \!xB=3\!dimenA \advance \!xB by -\!dimenB% ** b=3I-II + \!xC=2\!dimenB \advance \!xC by -2\!dimenA% ** c=2(II-I) +% +% ** Find coefficients for y(t)=y_x + b_y*t + c_y*t**2 + \!dimenA=\!yM \advance \!dimenA by -\!yS% + \!dimenB=\!yE \advance \!dimenB by -\!yM% + \!yB=3\!dimenA \advance \!yB by -\!dimenB% + \!yC=2\!dimenB \advance \!yC by -2\!dimenA% +% +% ** Use Simpson's rule to calculate arc length over [0,1/2]: +% ** arc length = 1/2[1/6 f(0) + 4/6 f(1/4) + 1/6 f(1/2)] +% ** with f(t) = sqrt(x'(t)**2 + y'(t)**2). + \!xprime=\!xB \!yprime=\!yB% ** x'(t) = b + 2ct + \!dxprime=.5\!xC \!dyprime=.5\!yC% ** dt=1/4 ==> dx'(t) = c/2 + \!getf \!midarclength=\!dimenA + \!getf \advance \!midarclength by 4\!dimenA + \!getf \advance \!midarclength by \!dimenA + \divide \!midarclength by 12 +% +% ** Get arc length over [0,1]. + \!arclength=\!dimenA + \!getf \advance \!arclength by 4\!dimenA + \!getf \advance \!arclength by \!dimenA + \divide \!arclength by 12% ** Now have arc length over [1/2,1] + \advance \!arclength by \!midarclength + \global\advance \totalarclength by \!arclength +% +% +% ** Check to see if there's anything to plot in this interval + \ifdim\!distacross>\!arclength + \advance \!distacross by -\!arclength% ** nothing +% + \else + \!initinverseinterp% ** initialize for inverse interpolation on arc length + \loop\ifdim\!distacross<\!arclength% ** loop over points on arc + \!inverseinterp% ** find t such that arc length[0,t] = distacross, +% ** using inverse quadratic interpolation +% ** now evaluate x(t)=(c*t + b)*t + a + \!xpos=\!t\!xC \advance\!xpos by \!xB + \!xpos=\!t\!xpos \advance \!xpos by \!xS +% ** evaluate y(t) + \!ypos=\!t\!yC \advance\!ypos by \!yB + \!ypos=\!t\!ypos \advance \!ypos by \!yS + \!plotifinbounds% ** plot point if in bounds + \advance\!distacross \plotsymbolspacing%** advance arc length for next pt + \!advancedashing% ** see "linear" + \repeat +% + \advance \!distacross by -\!arclength% ** prepare for next interval + \fi +% + \!xS=\!xE% ** shift ending points to starting points + \!yS=\!yE + \ignorespaces} + + +% ** \!getf -- Calculates sqrt(x'(t)**2 + y'(t)**2) and advances +% ** x'(t) and y'(t) +\def\!getf{\!Pythag\!xprime\!yprime\!dimenA% + \advance\!xprime by \!dxprime + \advance\!yprime by \!dyprime} + + +% ** \!initinverseinterp -- initializes for inverse quadratic interpolation +% ** of arc length provided 1/3 < midarclength/arclength < 2/3; otherwise +% ** initializes for inverse linear interpolation. +\def\!initinverseinterp{% + \ifdim\!arclength>\!zpt + \!divide{8\!midarclength}\!arclength\!dimenE% ** dimE=8w=8r/s, where r +% ** = midarclength, s=arclength +% ** Test for w out of range: w<1/3 or w>2/3 + \ifdim\!dimenE<\!wmin \!setinverselinear + \else + \ifdim\!dimenE>\!wmax \!setinverselinear + \else% ** w in range: initialize + \def\!inverseinterp{\!inversequad}\ignorespaces +% +% ** Calculate the coefficients \!beta and \!gamma of the quadratic +% ** t = \!beta*v + \!gamma*v**2 +% ** taking the values t=0, 1/2, 1 at v=0, w==r/s, 1 respectively: +% ** \!beta = (1/2 - w**2)/[w(1-w)] +% ** \!gamma = 1 - beta. +% + \!removept\!dimenE\!Ew% ** 8w, without "pt" + \!dimenF=-\!Ew\!dimenE% ** -(8w)**2 + \advance\!dimenF by 32pt% ** 32 - (8w)**2 + \!dimenG=8pt + \advance\!dimenG by -\!dimenE% ** 8 - 8w + \!dimenG=\!Ew\!dimenG% ** (8w)*(8-8w) + \!divide\!dimenF\!dimenG\!beta% ** beta = (32-(8w)**2)/(8w(8-8w)) +% ** = (1/2 - w**2)/(w(1-w)) + \!gamma=1pt + \advance \!gamma by -\!beta% ** gamma = 1-beta + \fi% ** end of the \ifdim\!dimenE>\!wmax + \fi% ** end of the \ifdim\!dimenE<\!wmin + \fi% ** end of the \ifdim\!arclength>\!zpt + \ignorespaces} + + +% ** For 0 <= t <= 1, let AL(t) = arclength[0,t]/arclength[0,1]; note +% ** AL(0)=0, AL(1/2)=midarclength/arclength, AL(1)=1. This routine +% ** calculates an approximation to AL^{-1}(distance across/arclength), +% ** using the assumption that AL^{-1} is quadratic. Specifically, +% ** it finds t such that +% ** AL^{-1}(v) =. t = v*(\!beta + \!gamma*v) +% ** where \!beta and \!gamma are set by \!initinv, and where +% ** v=distance across/arclength +\def\!inversequad{% + \!divide\!distacross\!arclength\!dimenG% ** dimG = v = distacross/arclength + \!removept\!dimenG\!v% ** v, without "pt" + \!dimenG=\!v\!gamma% ** gamma*v + \advance\!dimenG by \!beta% ** beta + gamma*v + \!dimenG=\!v\!dimenG% ** t = v*(beta + gamma*v) + \!removept\!dimenG\!t}% ** t, without "pt" + + +% ** When w <= 1/3 or w >= 2/3, the following routine writes (using +% ** plain TEK's \wlog command) a warning message on the user's log file, +% ** and initializes for inverse linear interpolation on arc length. +\def\!setinverselinear{% + \def\!inverseinterp{\!inverselinear}% + \divide\!dimenE by 8 \!removept\!dimenE\!t + \!countC=\!intervalno \multiply \!countC 2 + \!countB=\!countC \advance \!countB -1 + \!countA=\!countB \advance \!countA -1 + \wlog{\the\!countB th point (\!xmidpt,\!ymidpt) being plotted + doesn't lie in the}% + \wlog{ middle third of the arc between the \the\!countA th + and \the\!countC th points:}% + \wlog{ [arc length \the\!countA\space to \the\!countB]/[arc length + \the \!countA\space to \the\!countC]=\!t.}% + \ignorespaces} + +% ** Inverse linear interpolation +\def\!inverselinear{% + \!divide\!distacross\!arclength\!dimenG + \!removept\!dimenG\!t} + + +% ************************************** +% ** ROTATIONS (Handles rotations) *** +% ************************************** + +% ** User commands +% ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT] +% ** \stoprotation + +% ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT] +% ** Future (XCOORD,YCOORD)'s will be rotated about (XPIVOT,YPIVOT) +% ** by the angle with the give COS and SIN. Both fields are optional. +% ** [COS,SIN] defaults to previous value, or (1,0). +% ** (XPIVOT,YPIVOT) defaults to previous value, or (0,0) +% ** You can't change the coordinate system in the scope of a rotation. +% ** See Subsection 9.1 of the manual. +\def\startrotation{% + \let\!rotateaboutpivot=\!!rotateaboutpivot + \let\!rotateonly=\!!rotateonly + \!ifnextchar{b}{\!getsincos }% + {\!getsincos by {\!cosrotationangle} {\!sinrotationangle} }} +\def\!getsincos by #1 #2 {% + \edef\!cosrotationangle{#1}% + \edef\!sinrotationangle{#2}% + \!ifcoordmode + \let\!ROnext=\!ccheckforpivot + \else + \let\!ROnext=\!dcheckforpivot + \fi + \!ROnext} +\def\!ccheckforpivot{% + \!ifnextchar{a}{\!cgetpivot}% + {\!cgetpivot about {\!xpivotcoord} {\!ypivotcoord} }} +\def\!cgetpivot about #1 #2 {% + \edef\!xpivotcoord{#1}% + \edef\!ypivotcoord{#2}% + \!xpivot=#1\!xunit \!ypivot=#2\!yunit + \ignorespaces} +\def\!dcheckforpivot{% + \!ifnextchar{a}{\!dgetpivot}{\ignorespaces}} +\def\!dgetpivot about #1 #2 {% + \!xpivot=#1\relax \!ypivot=#2\relax + \ignorespaces} + + +% ** Following terminates rotation. +% ** See Subsection 9.1 of the manual. +\def\stoprotation{% + \let\!rotateaboutpivot=\!!!rotateaboutpivot + \let\!rotateonly=\!!!rotateonly + \ignorespaces} + +% ** !!rotateaboutpivot{XREG}{YREG} +% ** XREG <-- xpvt + cos(angle)*(XREG-xpvt) - sin(angle)*(YREG-ypvt) +% ** YREG <-- ypvt + cos(angle)*(YREG-ypvt) + sin(angle)*(XREG-xpvt) +% ** XREG,YREG are dimension registers. Can't be \!dimenA to \!dimenD +\def\!!rotateaboutpivot#1#2{% + \!dimenA=#1\relax \advance\!dimenA -\!xpivot + \!dimenB=#2\relax \advance\!dimenB -\!ypivot + \!dimenC=\!cosrotationangle\!dimenA + \advance \!dimenC -\!sinrotationangle\!dimenB + \!dimenD=\!cosrotationangle\!dimenB + \advance \!dimenD \!sinrotationangle\!dimenA + \advance\!dimenC \!xpivot \advance\!dimenD \!ypivot + #1=\!dimenC #2=\!dimenD + \ignorespaces} + +% ** \!!rotateonly{XREG}{YREG} +% ** Like \!!rotateaboutpivot, but with a pivot of (0,0) +\def\!!rotateonly#1#2{% + \!dimenA=#1\relax \!dimenB=#2\relax + \!dimenC=\!cosrotationangle\!dimenA + \advance \!dimenC -\!rotsign\!sinrotationangle\!dimenB + \!dimenD=\!cosrotationangle\!dimenB + \advance \!dimenD \!rotsign\!sinrotationangle\!dimenA + #1=\!dimenC #2=\!dimenD + \ignorespaces} +\def\!rotsign{} +\def\!!!rotateaboutpivot#1#2{\relax} +\def\!!!rotateonly#1#2{\relax} +\stoprotation + +\def\!reverserotateonly#1#2{% + \def\!rotsign{-}% + \!rotateonly{#1}{#2}% + \def\!rotsign{}% + \ignorespaces} + + +% ********************************** +% *** SHADING (Handles shading) *** +% ********************************** + +% ** User commands +% ** \setshadegrid [span ] [point at XSHADE YSHADE] +% ** \setshadesymbol [] ({SHADESYMBOL} +% ** [ORIENTATION]) + +% ** Internal commands: +% ** \!startvshade (xS,ybS,ytS) +% ** \!starthshade (yS,xlS,xrS) +% ** \!lshade [] +% ** ** when shading vertically: +% ** [the region from (xS,ybS,ytS) to] (xE,ybE,ytE) +% ** ** when shading horizontally: +% ** [the region from (yS,xlS,xrS) to] (yE,xlE,xrE) +% ** \!qshade [] +% ** ** when shading vertically: +% ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) (xE,ybE,ytE) +% ** ** when shading horizontally: +% ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) (yE,xlE,xrE) +% ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION} +% ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN} + + +% ** The shading routine can operate either in a "vertical mode" or a +% ** "horizontal mode". In vertical mode, the region to be shaded is specified +% ** in the form +% ** {(x,y): xl <= x <= xr & yb(x) <= y <= yt(x)} +% ** where yb and yt are functions of x. In horizontal mode, the region +% ** is specified in the form +% ** {(x,y): yb <= y <= yt & xl(y) <= x <= xr(y)}. +% ** The functions yb and yt may be either both linear or both quadratic; +% ** similarly for xl and xr. A region with say, piecewise quadratic bottom +% ** and top boundaries, can be shaded by consecutive (vertical) \!qshades, +% ** proceeding from left to right. Similarly, a region with piecewise +% ** quadratic left and right boundaries can be shaded by consecutive +% ** (horizontal) \!qshades, proceeding from bottom to top. More complex +% ** regions can be shaded by partitioning them into appropriate subregions, +% ** and shading those. + +% ** Shading is accomplished by placing a user-selected shading symbol at +% ** those points of a regular grid which fall within the region to be +% ** shaded. This region can be "shrunk" so that a largish shading symbol +% ** will not extend outside it. Shrinking is accomplished by specifying +% ** shrinkages for the left, right, bottom, and top boundaries, in a manner +% ** discussed further below. + +% ** \shades and \!joins MUST NOT be intermingled. Finish drawing a curve +% ** before starting to shade a region, and finish shading a region before +% ** starting to draw a curve. + + +% ** \setshadegrid [span ] [point at XSHADE YSHADE] +% ** The shading symbol is placed down on the points of a grid centered +% ** at the coordinate point (XSHADE,YSHADE). The grid points are of the +% ** form (j*SPAN,k*SPAN), with j+k even. SPAN is specified +% ** as a dimension. +% ** (XSHADE,YSHADE) defaults to previous (XSHADE,YSHADE) (or (0,0) if none) +% ** SPAN defaults to previous span (or 5pt if none) +% ** See Subsection 7.2 of the manual. +\def\setshadegrid{% + \!ifnextchar{s}{\!getspan } + {\!getspan span <\!dshade>}} +\def\!getspan span <#1>{% + \!dshade=#1\relax + \!ifcoordmode + \let\!GRnext=\!GRccheckforAP + \else + \let\!GRnext=\!GRdcheckforAP + \fi + \!GRnext} +\def\!GRccheckforAP{% + \!ifnextchar{p}{\!cgetanchor } + {\!cgetanchor point at {\!xshadesave} {\!yshadesave} }} +\def\!cgetanchor point at #1 #2 {% + \edef\!xshadesave{#1}\edef\!yshadesave{#2}% + \!xshade=\!xshadesave\!xunit \!yshade=\!yshadesave\!yunit + \ignorespaces} +\def\!GRdcheckforAP{% + \!ifnextchar{p}{\!dgetanchor}% + {\ignorespaces}} +\def\!dgetanchor point at #1 #2 {% + \!xshade=#1\relax \!yshade=#2\relax + \ignorespaces} + +% ** \setshadesymbol [] ({SHADESYMBOL} +% ** [ORIENTATION]) +% ** Saves SHADESYMBOL away in an hbox for use with shading routines. +% ** A shade symbol will not be plotted if its plot position comes within +% ** distance LS of the left boundary, RS of the right boundary, TS of the +% ** top boundary, BS of the bottom boundary. These parameters have +% ** default values that should work in most cases (see below). +% ** To override a default value, specify the replacement value +% ** in the appropriate subfield of the shrinkages field. +% ** 0pt may be coded as "z" (without the quotes). To accept a +% ** default value, leave the field empty. Thus +% ** [,z,,5pt] sets LS=default, RS=0pt, BS=default, TS=5pt . +% ** Skipping the shrinkages field accepts all the defaults. +% ** See Subsection 7.1 of the manual. +\def\setshadesymbol{% + \!ifnextchar<{\!setshadesymbol}{\!setshadesymbol<,,,> }} + +\def\!setshadesymbol <#1,#2,#3,#4> (#5#6){% +% ** set the shadesymbol + \!setputobject{#5}{#6}% + \setbox\!shadesymbol=\box\!putobject% + \!shadesymbolxshift=\!xshift \!shadesymbolyshift=\!yshift +% +% ** set the shrinkages + \!dimenA=\!xshift \advance\!dimenA \!smidge% ** default LS = xshift - smidge + \!override\!dimenA{#1}\!lshrinkage% + \!dimenA=\!wd \advance \!dimenA -\!xshift% ** default RS = width - xshift + \advance\!dimenA \!smidge% - smidge + \!override\!dimenA{#2}\!rshrinkage + \!dimenA=\!dp \advance \!dimenA \!yshift% ** default BS = depth + yshift + \advance\!dimenA \!smidge% - smidge + \!override\!dimenA{#3}\!bshrinkage + \!dimenA=\!ht \advance \!dimenA -\!yshift% ** default TS = height - yshift + \advance\!dimenA \!smidge% - smidge + \!override\!dimenA{#4}\!tshrinkage + \ignorespaces} +\def\!smidge{-.2pt}% + +% ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN} +% ** Overrides the NOMINAL DIMEN by the REPLACEMENT DIMEN to produce DIMEN, +% ** according to the following rules: +% ** REPLACEMENT DIMEN empty: DIMEN <-- NOMINAL DIMEN +% ** REPLACEMENT DIMEN z: DIMEN <-- 0pt +% ** otherwise: DIMEN <-- REPLACEMENT DIMEN +% ** DIMEN must be a dimension register +\def\!override#1#2#3{% + \edef\!!override{#2}% + \ifx \!!override\empty + #3=#1\relax + \else + \if z\!!override + #3=\!zpt + \else + \ifx \!!override\!blankz + #3=\!zpt + \else + #3=#2\relax + \fi + \fi + \fi + \ignorespaces} +\def\!blankz{ z} + +\setshadesymbol ({\fiverm .})% ** initialize plotsymbol +% ** \fivesy ^^B is a small cross + + +% ** \!startvshade [at] (xS,ybS,ytS) +% ** Initiates vertical shading mode +\def\!startvshade#1(#2,#3,#4){% + \let\!!xunit=\!xunit% + \let\!!yunit=\!yunit% + \let\!!xshade=\!xshade% + \let\!!yshade=\!yshade% + \def\!getshrinkages{\!vgetshrinkages}% + \let\!setshadelocation=\!vsetshadelocation% + \!xS=\!M{#2}\!!xunit + \!ybS=\!M{#3}\!!yunit + \!ytS=\!M{#4}\!!yunit + \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift + \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift + \ignorespaces} + +% ** \!starthshade [at] (yS,xlS,xrS) +% ** Initiates horizontal shading mode +\def\!starthshade#1(#2,#3,#4){% + \let\!!xunit=\!yunit% + \let\!!yunit=\!xunit% + \let\!!xshade=\!yshade% + \let\!!yshade=\!xshade% + \def\!getshrinkages{\!hgetshrinkages}% + \let\!setshadelocation=\!hsetshadelocation% + \!xS=\!M{#2}\!!xunit + \!ybS=\!M{#3}\!!yunit + \!ytS=\!M{#4}\!!yunit + \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift + \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift + \ignorespaces} + + +% ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION} +% ** Consider the lattice with points ANCHOR + j*SPAN. This routine determines +% ** the index k of the smallest lattice point >= LOCATION, and sets +% ** LATTICE LOCATION = ANCHOR + k*SPAN. +% ** INDEX is assumed to be a count register, LATTICE LOCATION a dimen reg. +\def\!lattice#1#2#3#4#5{% + \!dimenA=#1% ** dimA = ANCHOR + \!dimenB=#2% ** dimB = SPAN (assumed > 0pt) + \!countB=\!dimenB% ** ctB = SPAN, as a count +% +% ** Determine index of smallest lattice point >= LOCATION + \!dimenC=#3% ** dimC = LOCATION + \advance\!dimenC -\!dimenA% ** now dimC = LOCATION-ANCHOR + \!countA=\!dimenC% ** ctA = above, as a count + \divide\!countA \!countB% ** now ctA = desired index, if dimC <= 0 + \ifdim\!dimenC>\!zpt + \!dimenD=\!countA\!dimenB% ** (tentative k)*span + \ifdim\!dimenD<\!dimenC% ** if this is false, ctA = desired index + \advance\!countA 1 % ** if true, have to add 1 + \fi + \fi +% + \!dimenC=\!countA\!dimenB% ** lattice location = anchor + ctA*span + \advance\!dimenC \!dimenA + #4=\!countA% ** the desired index + #5=\!dimenC% ** corresponding lattice location + \ignorespaces} + + +% ** \!qshade [with shrinkages] [[LS,RS,BS,TS]] +% ***** during vertical shading: +% ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) [and] (xE,ybE,ytE) +% ** Shades the region {(x,y): xS <= x <= xE, yb(x) <= y <= yt(x)}, where +% ** yb is the quadratic thru (xS,ybS) & (xM,ybM) & (xE,ybE) +% ** yt is the quadratic thru (xS,ytS) & (xM,ybM) & (xE,ytE) +% ** xS,ybS,ytS are either given by \!startvshade or carried over +% ** as the ending values of the immediately preceding \!qshade. +% ** For the interpretation of LS, RS, BS, & TS, see \setshadesymbol. The +% ** values set there can be overridden, for the course of this \!qshade +% ** only, in the same manner as overrides are specified for +% ** \setshadesymbol. +% ***** during horizontal shading: +% ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) [and] (yE,xlE,xrE) +\def\!qshade#1(#2,#3,#4)#5(#6,#7,#8){% + \!xM=\!M{#2}\!!xunit + \!ybM=\!M{#3}\!!yunit + \!ytM=\!M{#4}\!!yunit + \!xE=\!M{#6}\!!xunit + \!ybE=\!M{#7}\!!yunit + \!ytE=\!M{#8}\!!yunit + \!getcoeffs\!xS\!ybS\!xM\!ybM\!xE\!ybE\!ybB\!ybC%**Get coefficients B & C for + \!getcoeffs\!xS\!ytS\!xM\!ytM\!xE\!ytE\!ytB\!ytC%**y=y0 + B(x-X0) + C(x-X0)**2 + \def\!getylimits{\!qgetylimits}% + \!shade{#1}\ignorespaces} + +% ** \!lshade ... (xE,ybE,ytE) +% ** This is like \!qshade, but the top and bottom boundaries are linear, +% ** rather than quadratic. +\def\!lshade#1(#2,#3,#4){% + \!xE=\!M{#2}\!!xunit + \!ybE=\!M{#3}\!!yunit + \!ytE=\!M{#4}\!!yunit + \!dimenE=\!xE \advance \!dimenE -\!xS% ** xE-xS + \!dimenC=\!ytE \advance \!dimenC -\!ytS% ** ytE-ytS + \!divide\!dimenC\!dimenE\!ytB% ** ytB = (ytE-ytS)/(xE-xS) + \!dimenC=\!ybE \advance \!dimenC -\!ybS% ** ybE-ybS + \!divide\!dimenC\!dimenE\!ybB% ** ybB = (ybE-ybS)/(xE-xS) + \def\!getylimits{\!lgetylimits}% + \!shade{#1}\ignorespaces} + +% ** \!getcoeffs{X0}{Y0}{X1}{Y1}{X2}{Y2}{B}{C} +% ** Finds B and C such that the quadratic y = Y0 + B(x-X0) + C(x-X0)**2 +% ** passes through (X1,Y1) and (X2,Y2): when X0=0=Y0, the formulas are: +% ** B = S1 - X1*C, C = (S2-S1)/X2 +% ** with +% ** S1 = Y1/X1, S2 = (Y2-Y1)/(X2-X1). +\def\!getcoeffs#1#2#3#4#5#6#7#8{% + \!dimenC=#4\advance \!dimenC -#2% ** dimC=Y1-Y0 + \!dimenE=#3\advance \!dimenE -#1% ** dimE=X1-X0 + \!divide\!dimenC\!dimenE\!dimenF% ** dimF=S1 + \!dimenC=#6\advance \!dimenC -#4% ** dimC=Y2-Y1 + \!dimenH=#5\advance \!dimenH -#3% ** dimH=X2-X1 + \!divide\!dimenC\!dimenH\!dimenG% ** dimG=S2 + \advance\!dimenG -\!dimenF% ** dimG=S2-S1 + \advance \!dimenH \!dimenE% ** dimH=X2-X0 + \!divide\!dimenG\!dimenH#8% ** C=(S2-S1)/(X2-X0) + \!removept#8\!t% ** C, without "pt" + #7=-\!t\!dimenE% ** -C*(X1-X0) + \advance #7\!dimenF% ** B=S1-C*(X1-X0) + \ignorespaces} + + +\def\!shade#1{% +% ** Get LS,RS,BS,TS for this panel + \!getshrinkages#1<,,,>\!nil% % ** now effective LS=dimE, RS=dimF, +% ** BS=dimG, TS=dimH + \advance \!dimenE \!xS% ** now dimE=xS+LS + \!lattice\!!xshade\!dshade\!dimenE% ** set parity=index of left-mst x-lattice + \!parity\!xpos% ** point >= xS+LS, xpos=its location + \!dimenF=-\!dimenF% ** set dimF=xE-RS + \advance\!dimenF \!xE +% + \!loop\!not{\ifdim\!xpos>\!dimenF}% ** loop over x-lattice points <= xE-RS + \!shadecolumn% + \advance\!xpos \!dshade% ** move over to next column + \advance\!parity 1% ** increase index of x-point + \repeat +% + \!xS=\!xE% ** shift ending values to starting values + \!ybS=\!ybE + \!ytS=\!ytE + \ignorespaces} + + +\def\!vgetshrinkages#1<#2,#3,#4,#5>#6\!nil{% + \!override\!lshrinkage{#2}\!dimenE + \!override\!rshrinkage{#3}\!dimenF + \!override\!bshrinkage{#4}\!dimenG + \!override\!tshrinkage{#5}\!dimenH + \ignorespaces} +\def\!hgetshrinkages#1<#2,#3,#4,#5>#6\!nil{% + \!override\!lshrinkage{#2}\!dimenG + \!override\!rshrinkage{#3}\!dimenH + \!override\!bshrinkage{#4}\!dimenE + \!override\!tshrinkage{#5}\!dimenF + \ignorespaces} + + +\def\!shadecolumn{% + \!dxpos=\!xpos + \advance\!dxpos -\!xS% ** dx = x - xS + \!removept\!dxpos\!dx% ** ditto, without "pt" + \!getylimits% ** get top and bottom y-values + \advance\!ytpos -\!dimenH% ** less TS + \advance\!ybpos \!dimenG% ** plus BS + \!yloc=\!!yshade% ** get anchor point for this column + \ifodd\!parity + \advance\!yloc \!dshade + \fi + \!lattice\!yloc{2\!dshade}\!ybpos% + \!countA\!ypos% ** ypos=smallest y point for this column + \!dimenA=-\!shadexorigin \advance \!dimenA \!xpos% ** over + \loop\!not{\ifdim\!ypos>\!ytpos}% ** loop over ypos <= yt(t) + \!setshadelocation% ** vmode: xloc=xpos, yloc=ypos +% ** hmode: xloc=ypos, yloc=xpos + \!rotateaboutpivot\!xloc\!yloc% + \!dimenA=-\!shadexorigin \advance \!dimenA \!xloc% ** over + \!dimenB=-\!shadeyorigin \advance \!dimenB \!yloc% ** up + \kern\!dimenA \raise\!dimenB\copy\!shadesymbol \kern-\!dimenA + \advance\!ypos 2\!dshade + \repeat + \ignorespaces} + +\def\!qgetylimits{% + \!dimenA=\!dx\!ytC + \advance\!dimenA \!ytB% ** yt(t)=ytS + dx*(Bt + dx*Ct) + \!ytpos=\!dx\!dimenA + \advance\!ytpos \!ytS + \!dimenA=\!dx\!ybC + \advance\!dimenA \!ybB% ** yb(t)=ybS + dx*(Bb + dx*Cb) + \!ybpos=\!dx\!dimenA + \advance\!ybpos \!ybS} + +\def\!lgetylimits{% + \!ytpos=\!dx\!ytB% ** yt(t)=ytS + dx*Bt + \advance\!ytpos \!ytS + \!ybpos=\!dx\!ybB% ** yb(t)=ybS + dx*Bb + \advance\!ybpos \!ybS} + +\def\!vsetshadelocation{% ** vmode: xloc=xpos, yloc=ypos + \!xloc=\!xpos + \!yloc=\!ypos} +\def\!hsetshadelocation{% ** hmode: xloc=ypos, yloc=xpos + \!xloc=\!ypos + \!yloc=\!xpos} + + +% ************************************** +% *** TICKS (Draws ticks on graphs) *** +% ************************************** + +% ** User commands +% ** \ticksout +% ** \ticksin +% ** \gridlines +% ** \nogridlines +% ** \loggedticks +% ** \unloggesticks +% ** See Subsection 3.4 of the manual + +% ** The following is an option of the \axis command +% ** ticks +% ** [in] [out] +% ** [long] [short] [length ] +% ** [width ] +% ** [andacross] [butnotacross] +% ** [logged] [unlogged] +% ** [unlabeled] [numbered] [withvalues VALUE1 VALUE2 ... VALUEk / ] +% ** [quantity Q] [at LOC1 LOC2 ... LOCk / ] [from LOC1 to LOC2 by +% ** LOC_INCREMENT] +% ** See Subsection 3.2 of the manual for the rules. + +% ** The various options of the tick field are processed by the +% ** \!nextkeyword command defined below. +% ** For example, `\!nextkeyword short ' expands to `\!ticksshort', +% ** while `\!nextkeyword withvalues' expands to `\!tickswithvalues'. + +\def\!axisticks {% + \def\!nextkeyword##1 {% + \expandafter\ifx\csname !ticks##1\endcsname \relax + \def\!next{\!fixkeyword{##1}}% + \else + \def\!next{\csname !ticks##1\endcsname}% + \fi + \!next}% + \!axissetup + \def\!axissetup{\relax}% + \edef\!ticksinoutsign{\!ticksinoutSign}% + \!ticklength=\longticklength + \!tickwidth=\linethickness + \!gridlinestatus + \!setticktransform + \!maketick + \!tickcase=0 + \def\!LTlist{}% + \!nextkeyword} + +\def\ticksout{% + \def\!ticksinoutSign{+}} +\def\ticksin{% + \def\!ticksinoutSign{-}} +\ticksout + +\def\gridlines{% + \def\!gridlinestatus{\!gridlinestootrue}} +\def\nogridlines{% + \def\!gridlinestatus{\!gridlinestoofalse}} +\nogridlines + +\def\loggedticks{% + \def\!setticktransform{\let\!ticktransform=\!logten}} +\def\unloggedticks{% + \def\!setticktransform{\let\!ticktransform=\!donothing}} +\def\!donothing#1#2{\def#2{#1}} +\unloggedticks + +% ** \!ticks/ : terminates read of tick options +\expandafter\def\csname !ticks/\endcsname{% + \!not {\ifx \!LTlist\empty} + \!placetickvalues + \fi + \def\!tickvalueslist{}% + \def\!LTlist{}% + \expandafter\csname !axis/\endcsname} + +\def\!maketick{% + \setbox\!boxA=\hbox{% + \beginpicture + \!setdimenmode + \setcoordinatesystem point at {\!zpt} {\!zpt} + \linethickness=\!tickwidth + \ifdim\!ticklength>\!zpt + \putrule from {\!zpt} {\!zpt} to + {\!ticksinoutsign\!tickxsign\!ticklength} + {\!ticksinoutsign\!tickysign\!ticklength} + \fi + \if!gridlinestoo + \putrule from {\!zpt} {\!zpt} to + {-\!tickxsign\!xaxislength} {-\!tickysign\!yaxislength} + \fi + \endpicturesave <\!Xsave,\!Ysave>}% + \wd\!boxA=\!zpt} + +\def\!ticksin{% + \def\!ticksinoutsign{-}% + \!maketick + \!nextkeyword} + +\def\!ticksout{% + \def\!ticksinoutsign{+}% + \!maketick + \!nextkeyword} + +\def\!tickslength<#1> {% + \!ticklength=#1\relax + \!maketick + \!nextkeyword} + +\def\!tickslong{% + \!tickslength<\longticklength> } + +\def\!ticksshort{% + \!tickslength<\shortticklength> } + +\def\!tickswidth<#1> {% + \!tickwidth=#1\relax + \!maketick + \!nextkeyword} + +\def\!ticksandacross{% + \!gridlinestootrue + \!maketick + \!nextkeyword} + +\def\!ticksbutnotacross{% + \!gridlinestoofalse + \!maketick + \!nextkeyword} + +\def\!tickslogged{% + \let\!ticktransform=\!logten + \!nextkeyword} + +\def\!ticksunlogged{% + \let\!ticktransform=\!donothing + \!nextkeyword} + +\def\!ticksunlabeled{% + \!tickcase=0 + \!nextkeyword} + +\def\!ticksnumbered{% + \!tickcase=1 + \!nextkeyword} + +\def\!tickswithvalues#1/ {% + \edef\!tickvalueslist{#1! /}% + \!tickcase=2 + \!nextkeyword} + +\def\!ticksquantity#1 {% + \ifnum #1>1 + \!updatetickoffset + \!countA=#1\relax + \advance \!countA -1 + \!ticklocationincr=\!axisLength + \divide \!ticklocationincr \!countA + \!ticklocation=\!axisstart + \loop \!not{\ifdim \!ticklocation>\!axisend} + \!placetick\!ticklocation + \ifcase\!tickcase + \relax % Case 0: no labels + \or + \relax % Case 1: numbered -- not available here + \or + \expandafter\!gettickvaluefrom\!tickvalueslist + \edef\!tickfield{{\the\!ticklocation}{\!value}}% + \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% + \fi + \advance \!ticklocation \!ticklocationincr + \repeat + \fi + \!nextkeyword} + +\def\!ticksat#1 {% + \!updatetickoffset + \edef\!Loc{#1}% + \if /\!Loc + \def\next{\!nextkeyword}% + \else + \!ticksincommon + \def\next{\!ticksat}% + \fi + \next} + +\def\!ticksfrom#1 to #2 by #3 {% + \!updatetickoffset + \edef\!arg{#3}% + \expandafter\!separate\!arg\!nil + \!scalefactor=1 + \expandafter\!countfigures\!arg/ + \edef\!arg{#1}% + \!scaleup\!arg by\!scalefactor to\!countE + \edef\!arg{#2}% + \!scaleup\!arg by\!scalefactor to\!countF + \edef\!arg{#3}% + \!scaleup\!arg by\!scalefactor to\!countG + \loop \!not{\ifnum\!countE>\!countF} + \ifnum\!scalefactor=1 + \edef\!Loc{\the\!countE}% + \else + \!scaledown\!countE by\!scalefactor to\!Loc + \fi + \!ticksincommon + \advance \!countE \!countG + \repeat + \!nextkeyword} + +\def\!updatetickoffset{% + \!dimenA=\!ticksinoutsign\!ticklength + \ifdim \!dimenA>\!offset + \!offset=\!dimenA + \fi} + +\def\!placetick#1{% + \if!xswitch + \!xpos=#1\relax + \!ypos=\!axisylevel + \else + \!xpos=\!axisxlevel + \!ypos=#1\relax + \fi + \advance\!xpos \!Xsave + \advance\!ypos \!Ysave + \kern\!xpos\raise\!ypos\copy\!boxA\kern-\!xpos + \ignorespaces} + +\def\!gettickvaluefrom#1 #2 /{% + \edef\!value{#1}% + \edef\!tickvalueslist{#2 /}% + \ifx \!tickvalueslist\!endtickvaluelist + \!tickcase=0 + \fi} +\def\!endtickvaluelist{! /} + +\def\!ticksincommon{% + \!ticktransform\!Loc\!t + \!ticklocation=\!t\!!unit + \advance\!ticklocation -\!!origin + \!placetick\!ticklocation + \ifcase\!tickcase + \relax % Case 0: no labels + \or % Case 1: numbered + \ifdim\!ticklocation<-\!!origin + \edef\!Loc{$\!Loc$}% + \fi + \edef\!tickfield{{\the\!ticklocation}{\!Loc}}% + \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% + \or % Case 2: labeled + \expandafter\!gettickvaluefrom\!tickvalueslist + \edef\!tickfield{{\the\!ticklocation}{\!value}}% + \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist% + \fi} + +\def\!separate#1\!nil{% + \!ifnextchar{-}{\!!separate}{\!!!separate}#1\!nil} +\def\!!separate-#1\!nil{% + \def\!sign{-}% + \!!!!separate#1..\!nil} +\def\!!!separate#1\!nil{% + \def\!sign{+}% + \!!!!separate#1..\!nil} +\def\!!!!separate#1.#2.#3\!nil{% + \def\!arg{#1}% + \ifx\!arg\!empty + \!countA=0 + \else + \!countA=\!arg + \fi + \def\!arg{#2}% + \ifx\!arg\!empty + \!countB=0 + \else + \!countB=\!arg + \fi} + +\def\!countfigures#1{% + \if #1/% + \def\!next{\ignorespaces}% + \else + \multiply\!scalefactor 10 + \def\!next{\!countfigures}% + \fi + \!next} + +\def\!scaleup#1by#2to#3{% + \expandafter\!separate#1\!nil + \multiply\!countA #2\relax + \advance\!countA \!countB + \if -\!sign + \!countA=-\!countA + \fi + #3=\!countA + \ignorespaces} + +\def\!scaledown#1by#2to#3{% + \!countA=#1\relax% ** get original # + \ifnum \!countA<0 % ** take abs value, + \def\!sign{-}% ** remember sign + \!countA=-\!countA + \else + \def\!sign{}% + \fi + \!countB=\!countA% ** copy |#| + \divide\!countB #2\relax% ** integer part (|#|/sf) + \!countC=\!countB% ** get sf * (|#|/sf) + \multiply\!countC #2\relax + \advance \!countA -\!countC% ** ctA is now remainder + \edef#3{\!sign\the\!countB.}% ** +- integerpart. + \!countC=\!countA % ** Tack on proper number + \ifnum\!countC=0 % ** of zeros after . + \!countC=1 + \fi + \multiply\!countC 10 + \!loop \ifnum #2>\!countC + \edef#3{#3\!zero}% + \multiply\!countC 10 + \repeat + \edef#3{#3\the\!countA}% ** Add on rest of remainder + \ignorespaces} + +\def\!placetickvalues{% + \advance\!offset \tickstovaluesleading + \if!xswitch + \setbox\!boxA=\hbox{% + \def\\##1##2{% + \!dimenput {##2} [B] (##1,\!axisylevel)}% + \beginpicture + \!LTlist + \endpicturesave <\!Xsave,\!Ysave>}% + \!dimenA=\!axisylevel + \advance\!dimenA -\!Ysave + \advance\!dimenA \!tickysign\!offset + \if -\!tickysign + \advance\!dimenA -\ht\!boxA + \else + \advance\!dimenA \dp\!boxA + \fi + \advance\!offset \ht\!boxA + \advance\!offset \dp\!boxA + \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!zpt,\!dimenA) + \else + \setbox\!boxA=\hbox{% + \def\\##1##2{% + \!dimenput {##2} [r] (\!axisxlevel,##1)}% + \beginpicture + \!LTlist + \endpicturesave <\!Xsave,\!Ysave>}% + \!dimenA=\!axisxlevel + \advance\!dimenA -\!Xsave + \advance\!dimenA \!tickxsign\!offset + \if -\!tickxsign + \advance\!dimenA -\wd\!boxA + \fi + \advance\!offset \wd\!boxA + \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!dimenA,\!zpt) + \fi} + + +\normalgraphs +\catcode`!=12 % ***** THIS MUST NEVER BE OMITTED diff --git a/graphics/pictex/postpictex.tex b/graphics/pictex/postpictex.tex index d46612a862..b70bc1cdaf 100644 --- a/graphics/pictex/postpictex.tex +++ b/graphics/pictex/postpictex.tex @@ -1,4 +1,9 @@ -% This is postpictex.tex Version 1.1 9/10/87 +% This is postpictex.tex +% Version 1.1 9/10/87. +% See section 10 of the PiCTeX manual. +% Version 1.1b 2021-06-08 extended LaTeX support for picture environment +% LaTeX Project (with Michael Wichura's permission for the update) +% add \put and \multiput to the list of commands restored for LaTeX. % To use the PiCTeX macros under LaTeX, you first need to \input the % file prepictex.tex, then the main corpus of PiCTeX macros (pictex.tex), @@ -39,6 +44,13 @@ \let\linethickness=\!latexlinethickness \let\pictexlinethickness=\!pictexlinethickness +% 2021-06-08 and same for \put and \multiput +\let\put=\!latexput +\let\pictexput=\!pictexput +\let\multiput=\!latexmultiput +\let\pictexmultiput=\!pictexmultiput + + % Reset LaTeX's default meaning of \\ \let\\=\@normalcr \catcode`@=12 \catcode`!=12 diff --git a/graphics/pictex/prepictex.tex b/graphics/pictex/prepictex.tex index cd7f92e2fe..a0e825066f 100644 --- a/graphics/pictex/prepictex.tex +++ b/graphics/pictex/prepictex.tex @@ -1,4 +1,8 @@ -% This is prepictex.tex Version 1.1 9/10/87 +% This is prepictex.tex +% Version 1.1 9/10/87. See section 10 of the PiCTeX manual. +% Version 1.1b 2021-06-08 extended LaTeX support for picture environment +% LaTeX Project (with Michael Wichura's permission for the update) +% Support lengths in LaTeX picture mode coordinates in recent LaTeX. % To use the PiCTeX macros under LaTeX, you first need to \input this % file, then the main corpus of PiCTeX macros (pictex.tex), and then @@ -20,14 +24,16 @@ \let\!latexput=\put % Redefine the LaTeX \@picture macro +% 2021-06-08 Adjust so working for old and new LaTeX releases +\let\!latex@picture\@picture \def\@picture(#1,#2)(#3,#4){% - \@picht #2\unitlength - \setbox\@picbox\hbox to #1\unitlength\bgroup + \!latex@picture(#1,#2)(#3,#4)% \let\endpicture=\!latexendpicture \let\frame=\!latexframe \let\linethickness=\!latexlinethickness \let\multiput=\!latexmultiput \let\put=\!latexput - \hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup} + \ignorespaces} + \catcode`@=12 \catcode`!=12 diff --git a/macros/generic/wichura-table/README.txt b/macros/generic/wichura-table/README.txt new file mode 100644 index 0000000000..5ce8820fe6 --- /dev/null +++ b/macros/generic/wichura-table/README.txt @@ -0,0 +1,18 @@ +The TaBlE macro package is released under the LaTeX Project Public +License, version 1 or (at your option) any later version. + +TABLE 1.0 +Copyright Michael J. Wichura August 1988 + + + +NOTE. There is a detailed manual for TaBlE available from CTAN; + see TaBlE_manual.pdf + +Uploaded to CTAN as + +https://ctan.org/pkg/wichura-table +(macros/generic/wichura-table/table.tex) + +by David Carlisle with Michael's permission +and no changes to the files other than this README. diff --git a/macros/generic/wichura-table/TaBlE_manual.pdf b/macros/generic/wichura-table/TaBlE_manual.pdf new file mode 100644 index 0000000000..e9c4d80ff4 Binary files /dev/null and b/macros/generic/wichura-table/TaBlE_manual.pdf differ diff --git a/macros/generic/wichura-table/table.tex b/macros/generic/wichura-table/table.tex new file mode 100644 index 0000000000..cb21f24109 --- /dev/null +++ b/macros/generic/wichura-table/table.tex @@ -0,0 +1,1961 @@ +% TABLE 1.0 +% Copyright Michael J. Wichura August 1988 + + +% The TABLE macros are divided into sections, roughly according to +% function: + +% Section Name Function +% a Allocation Allocates storage registers for parameters. +% f Format Reads format section; builds preamble for \halign; +% processes \ReFormat command. +% g Get Value Converts "spec"'s (as in spec_{LT}) to +% corresponding "values"'s (as in value_{LT}). +% h Hacks Utility macros; error messages; miscellaneous commands. +% k Keys Definition and scanning of format keys. +% n Numeric Macros for TABLE's numeric format. +% s Struts Macros for struts. +% t Tables Sets up \halign for table; end-of-row processing; +% alternate vertical rules; spanning; horizontal +% lines; stretching and shrinking; repositioning +% commands. + +% The name of each internal macro begins with the prefix "\!t", the +% "!" having category code 11, followed by the letter of the section +% in which the macro is defined. For example, a macro beginning "\!th" +% is defined in Section h (Hacks). There a few exceptions: +% the general purpose macros "\!ttemp", "\!ttempa", "\!ttempb", and +% "\!tnext" are repeatedly defined on the spot as the need arises. + +% External macros (and active characters) are defined in the following +% sections: +% Macro Section +% " t +% \- t +% \= t +% \ActivateBarAndQuote h +% \AugmentedTableStrut s +% \BackSpace h +% \BeginFormat f +% \BeginTable t +% \BeginTableParBox a +% \Center t +% \ColumnWidthFactor a +% \ColumnWidthUnit a +% \DQuote h +% \EndFormat k (\EndFormat is actually a key) +% \EndTable t +% \EndTableParBox a +% \Enlarge s +% \enlarge s +% \EveryTable a +% \EveryTableParBox a +% \Expand t +% \InterColumnSpaceFactor a +% \InterColumnSpaceUnit a +% \JustCenter t +% \JustLeft t +% \JustRight t +% \KernFactor a +% \KernUnit a +% \Left t +% \LeftTabskip a +% \LineThicknessFactor a +% \LineThicknessUnit a +% \LongLines t +% \Lower h +% \MakeStrut s +% \NewFormatKey k +% \NormalCWU a +% \NormalICSU a +% \NormalKU a +% \NormalLTU a +% \NormalSU a +% \NormalTableUnits a +% \OpenUp s +% \PseudoVrule t +% \Raise h +% \ReadFormatKeys k +% \ReFormat f +% \Right t +% \RightTabskip a +% \SetTableToWidth t +% \Smash h +% \StandardTableStrut s +% \StrutDepthFactor a +% \StrutHeightFactor a +% \StrutUnit a +% \TaBlE h +% \TracingFormats a +% \TracingKeys a +% \Use t +% \use t +% \VBar h +% \Vspace h +% \VspaceFactor a +% \WidenTableBy t +% \\ t +% \_ t +% \| t +% | t +% ~ t +% +\catcode `\!=11 +\catcode `\@=11 + +% Don't try to read the TABLE macros until after you've read the +% TABLE manual. The internal documentation of the macros is +% sketchy; you need the manual to understand what's going on. +% You should also review the material on \halign s in the TeXbook, +% since TABLE uses an \halign to perform its alignments. + +% In studying the TABLE macros, you should start by skimming the +% macros in the "miscellaneous hacks", "error messages", and "loops" +% subsections of Section h, as well as the "\GetValue" macro in +% Section g; these macros are called many times by the other macros. +% To continue with a "bottom-up" approach, read next Sections k, +% f, and t. (Top-downers should reverse the order.) The other +% Sections can be looked at as the need arises. + + + +% ********************************************************************* +% SECTION A: ALLOCATION +% ********************************************************************* + +\let\!tacr=\\ % Save meaning of \\ (Needed if TABLE is used with LaTeX + +% ********************************************************************* +% TABLE PARAMETERS: Units +% ********************************************************************* + +\newdimen\LineThicknessUnit +\newdimen\StrutUnit +\newskip \InterColumnSpaceUnit +\newdimen\ColumnWidthUnit +\newdimen\KernUnit + +\let\!taLTU=\LineThicknessUnit % Used in preamble +\let\!taCWU=\ColumnWidthUnit % Used in preamble +\let\!taKU =\KernUnit % Used in preamble + +\newtoks\NormalTLTU +\newtoks\NormalTSU +\newtoks\NormalTICSU +\newtoks\NormalTCWU +\newtoks\NormalTKU + +% NOTE: The user should modify the following DEFAULTS to suit his/her +% taste, and output device: +%\def\PixelsPerInch{300} +\NormalTLTU={1in \divide \LineThicknessUnit by 300 } +\NormalTSU ={\normalbaselineskip + \divide \StrutUnit by 11 } % 11 = 8+3 = NormalT Height+Depth Factors +\NormalTICSU={.5em plus 1fil minus .25em} % .5em = width of a digit +\NormalTCWU ={.5em} +\NormalTKU ={.5em} + +\def\NormalTableUnits{% + \LineThicknessUnit =\the\NormalTLTU + \StrutUnit =\the\NormalTSU + \InterColumnSpaceUnit=\the\NormalTICSU + \ColumnWidthUnit =\the\NormalTCWU + \KernUnit =\the\NormalTKU} + +\NormalTableUnits + +% The user should issue \NormalTableUnits when setting a table +% in a different point size, since the Table...Units themselves +% are static while the Normal...Units vary with the point size. + + +% ********************************************************************* +% TABLE PARAMETERS: Factors +% ********************************************************************* + +\newcount\LineThicknessFactor +\newcount\StrutHeightFactor +\newcount\StrutDepthFactor +\newcount\InterColumnSpaceFactor +\newcount\ColumnWidthFactor +\newcount\KernFactor +\newcount\VspaceFactor + +% DEFAULTS: +\LineThicknessFactor =2 +\StrutHeightFactor =8 +\StrutDepthFactor =3 +\InterColumnSpaceFactor =3 +\ColumnWidthFactor =10 +\KernFactor =1 +\VspaceFactor =2 + + +% ********************************************************************* +% DIAGNOSTIC PARAMETERS +% ********************************************************************* + +\newcount\TracingKeys % >=1 reports new keys, >=2 reports key usage +\newcount\TracingFormats % >=1 reports templates for columns + % >=2 reports \halign preamble + + +% ********************************************************************* +% PARBLOCK PARAMETERS +% ********************************************************************* + +\def\BeginTableParBox#1{% + \vtop\bgroup + \hsize=#1 + \normalbaselines + \let~=\!ttTie + \let\-=\!ttDH + \the\EveryTableParBox} + +\def\EndTableParBox{% + \MakeStrut{0pt}{\StrutDepthFactor\StrutUnit} + \egroup} % finishes the \vtop begun by \BeginTableParbox + +\newtoks\EveryTableParBox +\EveryTableParBox={% + \parindent=0pt + \raggedright + \rightskip=0pt plus 4em % Provide more stretch + \relax} + + +% ********************************************************************* +% EVERY TABLE TOKENS +% ********************************************************************* + +\newtoks\EveryTable +\newtoks\!taTableSpread + + +% ********************************************************************* +% Extreme left- and right- tabskips +% ********************************************************************* + +\newskip\LeftTabskip +\newskip\RightTabskip + + +% ********************************************************************* +% INTERNAL VARIABLES +% ********************************************************************* + +\newcount\!taCountA +\newcount\!taColumnNumber +\newcount\!taRecursionLevel % (Initially 0) +\newcount\!ttmscount % like plain TeX's \mscount, only private + +\newdimen\!taDimenA % used by \Enlarge +\newdimen\!taDimenB % used by \Enlarge +\newdimen\!taDimenC % used by numeric.tex +\newdimen\!taMinimumColumnWidth + +\newtoks\!taToksA + +\newtoks\!taPreamble +\newtoks\!taDataColumnTemplate +\newtoks\!taRuleColumnTemplate +\newtoks\!taOldRuleColumnTemplate +\newtoks\!taLeftGlue +\newtoks\!taRightGlue + +\newskip\!taLastRegularTabskip + +\newif\if!taDigit +\newif\if!taBeginFormat +\newif\if!taOnceOnlyTabskip + + + +% ********************************************************************* +% SECTION H: HACKS +% ********************************************************************* + +% **************************************************************** +% TABLE LOGO +% **************************************************************** +\def\TaBlE{% + T\kern-.27em\lower.5ex\hbox{A}\kern-.18em B\kern-.1em + \lower.5ex\hbox{L}\kern-.075em E} + + +% **************************************************************** +% ACTIVE CHARACTERS +% **************************************************************** + +% ACTIVATE BAR AND QUOTE: Makes | and " active if they aren't +% already active (in which case the user will probably have given +% them special meanings); definitions are provided which effectively +% undoes the activeness outside a Table. + +{\catcode`\|=13 \catcode`\"=13 + \gdef\ActivateBarAndQuote{% + \ifnum \catcode`\|=13 + \else + \catcode`\|=13 + \def|{% + \ifmmode + \vert + \else + \char`\| + \fi}% + \fi + \ifnum \catcode`\"=13 + \else + \catcode`\"=13 + \def"{\char`\"}% + \fi}} + +% **************************************************************** +% Macros for | and " having category code 12. +% **************************************************************** +{\catcode `\|=12 \catcode `\"=12 +\gdef\VBar{|} +\gdef\DQuote{"}} + + +% **************************************************************** +% MISCELANEOUS HACKS +% **************************************************************** + +% MESSAGE : Writes out to terminal and log file. +\def\!thMessage#1{\immediate\write16{#1}\ignorespaces} + +% X: Abbreviation for expandafter +\let\!thx=\expandafter + +% GOBBLE: Eats next token +\def\!thGobble#1{} + +% SPACE TOKEN +\def\\{\let\!thSpaceToken= }\\ + +% HEIGHT, DEPTH, AND WIDTH +\def\!thHeight{height} +\def\!thDepth{depth} +\def\!thWidth{width} + +% TOKSEDEF =: Places , fully expanded a la \edef, in the specified . +\def\!thToksEdef#1=#2{% + \edef\!ttemp{#2}% + #1\!thx{\!ttemp}% + \ignorespaces} + + +% **************************************************************** +% ERROR MESSAGES +% **************************************************************** + +% STORE ERROR MSG +% Replacement text of is a macro with Message +% as its name. E.g., after \StoreErrorMsg\Help{Type }, +% \Help expands to "\Type " +\def\!thStoreErrorMsg#1#2{% + \toks0 =\!thx{\csname #2\endcsname}% + \edef#1{\the\toks0 }} + +% READ ERROR MSG +% Continuing the above example, \ReadErrorMsg\Help produces "Type " +\def\!thReadErrorMsg#1{% + \!thx\!thx\!thx\!thGobble\!thx\string #1} + +% ERROR +\def\!thError#1#2{% + \begingroup + \newlinechar=`\^^J% + \edef\!ttemp{#2}% + \errhelp=\!thx{\!ttemp}% + \!thMessage{% + ^^J\!thReadErrorMsg\!thErrorMsgA + ^^J\!thReadErrorMsg\!thErrorMsgB}% + \errmessage{#1}% + \endgroup} + +% TEXT FOR ERROR MESSAGE +\!thStoreErrorMsg\!thErrorMsgA{% + TABLE error; see manual for explanation.} +\!thStoreErrorMsg\!thErrorMsgB{% + Type \space H \space for immediate help.} + +% GET REPLACEMENT +% must be a control sequence +\def\!thGetReplacement#1#2{% + \begingroup + \!thMessage{#1} + \endlinechar=-1 + \global\read16 to#2% + \endgroup} + + +% **************************************************************** +% LOOP MACRO +% **************************************************************** + +% LOOP ... REPEAT macro from TUGboat Vol 8 #2: 1987 +% Syntax is like that of plain TeX's \loop ... \repeat macro +\def\!thLoop#1\repeat{% + \def\!thIterate{% + #1% + \!thx \!thIterate + \fi}% + \!thIterate + \let\!thIterate\relax} + + +% *************************************************************** +% VERTICALLY-CENTERED SMASH +% *************************************************************** + +% SMASH: Like TeX's \smash, only the argument +% is centered vertically before its height and depth are smashed to 0pt. +\def\Smash{% + \relax + \ifmmode + \expandafter\mathpalette + \expandafter\!thDoMathVCS + \else + \expandafter\!thDoVCS + \fi} + +% DO VCS +\def\!thDoVCS#1{% + \setbox\z@\hbox{#1}% + \!thFinishVCS} + +% DO MATH VCS +\def\!thDoMathVCS#1#2{% + \setbox\z@\hbox{$\m@th#1{#2}$}% + \!thFinishVCS} + +% FINISH VCS +\def\!thFinishVCS{% + \vbox to\z@{\vss\box\z@\vss}} + + +% *************************************************************** +% RAISE AND LOWER +% *************************************************************** + +% Like TeX's \raise and \lower, except: (1) The first argument +% to these commands is a dimension expressed in TABLE's usual conventions; +% the default is (StrutHeightFactor+StrutDepthFactor)*StrutUnit/2 +% (2) like \smash, these commands function in math mode as well +% as horizontal mode; (3) again like \smash, the result is declared +% to have height and depth 0pt + +% Examples \Raise2{Stuff}: "Stuff" is raised 2*StrutUnit +% \Raise {Stuff}: "Stuff" is raised a half-line +% $\Lower(10pt){\alpha}$: "$\alpha$" is lowered 10 points + +% RAISE +\def\Raise{% + \def\!thSign{+}% + \!tgGetValue\!thSetDimen} + +% LOWER +\def\Lower{% + \def\!thSign{-}% + \!tgGetValue\!thSetDimen} + +% SET DIMEN +\def\!thSetDimen{% + \ifnum \!tgCode=1 + \ifx \!tgValue\empty + \!taDimenA \StrutHeightFactor\StrutUnit + \advance \!taDimenA \StrutDepthFactor\StrutUnit + \divide \!taDimenA 2 + \else + \!taDimenA \!tgValue\StrutUnit + \fi + \else + \!taDimenA \!tgValue + \fi + \!taDimenA=\!thSign\!taDimenA\relax + % + % BRANCH ON MODE + \ifmmode + \expandafter\mathpalette + \expandafter\!thDoMathRaise + \else + \expandafter\!thDoSimpleRaise + \fi} + +% DO SIMPLE RAISE +\def\!thDoSimpleRaise#1{% + \setbox\z@\hbox{\raise \!taDimenA\hbox{#1}}% + \!thFinishRaise} % From Plain TeX: \ht0=0pt \dp0=0pt \box0 + +% DO MATH RAISE +\def\!thDoMathRaise#1#2{% + \setbox\z@\hbox{\raise \!taDimenA\hbox{$\m@th#1{#2}$}}% + \!thFinishRaise} + +% FINISH RAISE. This is the same as Plain's \finsm@sh; some macro +% packages redefine \finsm@sh. +\def\!thFinishRaise{% + \ht\z@\z@ + \dp\z@\z@ + \box\z@} + + +% *************************************************************** +% BACK SPACE +% *************************************************************** +\def\BackSpace{% + \!tgGetValue\!thKernBack} + +\def\!thKernBack{% + \kern - + \ifnum \!tgCode=1 + \ifx \!tgValue\empty + \the\KernFactor + \else + \!tgValue % user-specified integer + \fi + \KernUnit + \else + \!tgValue % user-specified dimension + \fi + \ignorespaces}% + + +% *************************************************************** +% Vspace +% *************************************************************** +\def\Vspace{% + \noalign + \bgroup + \!tgGetValue\!thVspace} + +\def\!thVspace{% + \vskip + \ifnum \!tgCode=1 + \ifx \!tgValue\empty + \the\VspaceFactor + \else + \!tgValue % user-specified integer + \fi + \StrutUnit + \else + \!tgValue % user-specified skip + \fi + \egroup} % Ends the \noalign + + + +% ********************************************************************* +% SECTION F: FORMAT +% ********************************************************************* + +% As explained in Section 3.3 of the manual, TABLE alternates each +% of the user's "data" columns with a "rule" column; moreover, TABLE +% places a "dummy data" column at the left and right of a table. +% A table with n nominal data columns therefore actually has a +% total of +% n (nominal data columns) +% +(n+1) (rule columns) +% + 2 (dummy data columns) +% ____ +% 2n+3 +% columns. + +% FORMATs job is to create an \halign preamble for the alignment +% of these (2n+3) columns. The preamble consists of templates +% for the various columns, strung together with &'s and interlaced +% with \tabskip glue specifications. + +% FORMAT constructs the template for a nomimal data column according +% to the user-specified format keys. As the keys are read from left +% to right, the template is built up "from the inside out" (as +% illustrated in Section 3.1.9 of the manual), the inner-most part +% being the "#" sign. A "|" in the format terminates template +% building; the completed template is adjoined to preamble along +% with the template for the following rule column. + +% Minimum column widths, if specified, are implemented by creating +% an "artificial row" with data entries of the form +% \hskip . +% This row has zero height and depth and is completely invisible. + + +% BEGIN FORMAT +\def\BeginFormat{% + \catcode`\|=12 % Inhibit expansion if | immediately follows a + \catcode`\"=12 % read by \getvalue. + \!taPreamble={}% + \!taColumnNumber=0 + \skip0 =\InterColumnSpaceUnit + \multiply\skip0 \InterColumnSpaceFactor + \divide\skip0 2 + \!taRuleColumnTemplate=\!thx{% + \!thx\tabskip\the\skip0 }% + \!taLastRegularTabskip=\skip0 + \!taOnceOnlyTabskipfalse + \!taBeginFormattrue % Used to intercept key "]" + \def\!tfRowOfWidths{}% Artificial Table Row with horizontal struts + % to enforce specified minimum column widths + \ReadFormatKeys} + +% SET (MINIMUM COLUMN) WIDTH: Invoked by the key "w". +\def\!tfSetWidth{% + \ifx \!tfRowOfWidths \empty % true if no prior "w" keys + \ifnum \!taColumnNumber>0 % true if "w" key is to right of first "|" + \begingroup % RowOfWidths={&\omit || n copies of + % &\omit&\omit}, where n = number of columns + \!taCountA=1 % to the left of this one + \aftergroup \edef \aftergroup \!tfRowOfWidths \aftergroup {% + \aftergroup &\aftergroup \omit + \!thLoop + \ifnum \!taCountA<\!taColumnNumber + \advance\!taCountA 1 + \aftergroup \!tfAOAO + \repeat + \aftergroup }% + \endgroup + \fi + \fi + \ifx [\!ttemp % \!tgGetValue sets \!ttemp = token after w + \!thx\!tfSetWidthText + \else + \!thx\!tfSetWidthValue + \fi} + +% AOAO = (Apersand Omit Ampersand Omit) +\def\!tfAOAO{% + &\omit&\omit} + +% SET WIDTH TEXT +\def\!tfSetWidthText [#1]{% #1 = specified text + \def\!tfWidthText{#1}% + \ReadFormatKeys} + +% SET WIDTH VALUE +\def\!tfSetWidthValue{% + \!taMinimumColumnWidth = + \ifnum \!tgCode=1 + \ifx\!tgValue\empty % Use default multiplier if user didn't specify one + \ColumnWidthFactor + \else + \!tgValue + \fi + \ColumnWidthUnit + \else + \!tgValue + \fi + \def\!tfWidthText{}% Override possible prior `w[sample entry]' + \ReadFormatKeys} + + +% SET TABSKIP: Invoked by the tabskip keys "t" and "o" +\def\!tfSetTabskip{% + \ifnum \!tgCode=1 + \skip0 =\InterColumnSpaceUnit + \multiply\skip0 + \ifx \!tgValue\empty + \InterColumnSpaceFactor % Default integer + \else + \!tgValue % User-specified integer + \fi + \else + \skip0 =\!tgValue % User-specified + \fi + \divide\skip0 by 2 + \ifnum\!taColumnNumber=0 + \!thToksEdef\!taRuleColumnTemplate={% + \the\!taRuleColumnTemplate + \tabskip \the\skip0 } + \else + \!thToksEdef\!taDataColumnTemplate={% + \the\!taDataColumnTemplate + \tabskip \the\skip0 } + \fi + \if!taOnceOnlyTabskip + % % Tabskip used at right of this col only + \else + \!taLastRegularTabskip=\skip0 % Remember this Tabskip, for possible + \fi % restoration after a subsequent"OnceOnly" + \ReadFormatKeys} + + +% SET VRULE: Invoked by the key "|" +\def\!tfSetVrule{% + \!thToksEdef\!taRuleColumnTemplate={% + \noexpand\hfil + \noexpand\vrule + \noexpand\!thWidth + \ifnum \!tgCode=1 + \ifx \!tgValue\empty + \the\LineThicknessFactor % Default integer + \else + \!tgValue % User-specified integer + \fi + \!taLTU % \LineThicknessUnit + \else + \!tgValue % User-specified dimension + \fi + ####% + \noexpand\hfil + \the\!taRuleColumnTemplate} % has \tabskips, when column number=0 + \!tfAdjoinPriorColumn} + +% SET ALTERNATE VRULE: Invoked by the key "\|", in the form +% \|{