summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-11-24 03:01:06 +0000
committerNorbert Preining <norbert@preining.info>2020-11-24 03:01:06 +0000
commit55c6d66f61a96ba63cd8c141229843ad2ab42632 (patch)
tree64fa3f4bc82828c2475a6a25d23a02cb36502b95
parentf0be59ccfa7046c57199fe35c49e1e8963fcb1a9 (diff)
CTAN sync 202011240301
-rw-r--r--FILES.byname4158
-rw-r--r--FILES.byname.gzbin2234421 -> 2234423 bytes
-rw-r--r--FILES.last07days2329
-rw-r--r--graphics/asymptote/BUGS4
-rw-r--r--graphics/asymptote/ChangeLog308
-rw-r--r--graphics/asymptote/GUI/Window1.py4
-rw-r--r--graphics/asymptote/GUI/icons_rc.py3244
-rw-r--r--graphics/asymptote/GUI/setup.py2
-rw-r--r--graphics/asymptote/INSTALL2
-rw-r--r--graphics/asymptote/Makefile.in4
-rw-r--r--graphics/asymptote/ReleaseNotes21
-rw-r--r--graphics/asymptote/asy-keywords.el6
-rw-r--r--graphics/asymptote/asy.list70
-rw-r--r--graphics/asymptote/asymptote.nsi2
-rw-r--r--graphics/asymptote/asymptote.spec4
-rw-r--r--graphics/asymptote/base/asy-mode.el2
-rw-r--r--graphics/asymptote/base/geometry.asy4
-rw-r--r--graphics/asymptote/base/graph3.asy143
-rw-r--r--graphics/asymptote/base/plain.asy34
-rw-r--r--graphics/asymptote/base/plain_margins.asy10
-rw-r--r--graphics/asymptote/base/rationalSimplex.asy30
-rw-r--r--graphics/asymptote/base/slide.asy2
-rw-r--r--graphics/asymptote/base/three.asy8
-rw-r--r--graphics/asymptote/base/three_tube.asy4
-rw-r--r--graphics/asymptote/base/tube.asy4
-rw-r--r--graphics/asymptote/bezierpatch.cc2
-rw-r--r--graphics/asymptote/bezierpatch.h2
-rwxr-xr-xgraphics/asymptote/configure50
-rw-r--r--graphics/asymptote/configure.ac14
-rw-r--r--graphics/asymptote/doc/CAD.pdfbin186116 -> 186126 bytes
-rw-r--r--graphics/asymptote/doc/CDlabel.asy2
-rw-r--r--graphics/asymptote/doc/FAQ/asy-faq.bfnn4
-rw-r--r--graphics/asymptote/doc/FAQ/asy-faq.info2
-rwxr-xr-xgraphics/asymptote/doc/FAQ/bfnnconv.pl6
-rw-r--r--graphics/asymptote/doc/FAQ/m-html.pl11
-rw-r--r--graphics/asymptote/doc/TeXShopAndAsymptote.pdfbin77144 -> 76885 bytes
-rw-r--r--graphics/asymptote/doc/asy-latex.pdfbin194604 -> 194617 bytes
-rw-r--r--graphics/asymptote/doc/asy.13
-rw-r--r--graphics/asymptote/doc/asyRefCard.pdfbin121144 -> 121144 bytes
-rw-r--r--graphics/asymptote/doc/asymptote.pdfbin1284725 -> 1212778 bytes
-rw-r--r--graphics/asymptote/doc/asymptote.texi48
-rw-r--r--graphics/asymptote/doc/exp.asy4
-rw-r--r--graphics/asymptote/doc/extra/intro.asy6
-rw-r--r--graphics/asymptote/doc/png/asymptote.info448
-rw-r--r--graphics/asymptote/drawsurface.cc5
-rw-r--r--graphics/asymptote/examples/animations/slidemovies.asy2
-rw-r--r--graphics/asymptote/examples/slidedemo.asy4
-rw-r--r--graphics/asymptote/fileio.cc7
-rw-r--r--graphics/asymptote/fileio.h12
-rw-r--r--graphics/asymptote/glrender.cc15
-rw-r--r--graphics/asymptote/locate.cc12
-rw-r--r--graphics/asymptote/locate.h3
-rw-r--r--graphics/asymptote/main.cc2
-rw-r--r--graphics/asymptote/parser.cc9
-rw-r--r--graphics/asymptote/picture.cc11
-rw-r--r--graphics/asymptote/revision.cc2
-rw-r--r--graphics/asymptote/runarray.cc240
-rw-r--r--graphics/asymptote/runarray.in18
-rw-r--r--graphics/asymptote/runfile.cc191
-rw-r--r--graphics/asymptote/runfile.in5
-rw-r--r--graphics/asymptote/runhistory.cc31
-rw-r--r--graphics/asymptote/runhistory.in7
-rw-r--r--graphics/asymptote/runlabel.cc56
-rw-r--r--graphics/asymptote/runlabel.in44
-rw-r--r--graphics/asymptote/runstring.cc69
-rw-r--r--graphics/asymptote/runstring.in15
-rw-r--r--graphics/asymptote/runtime.cc900
-rw-r--r--graphics/asymptote/runtime.in18
-rw-r--r--graphics/asymptote/settings.cc10
-rw-r--r--graphics/asymptote/texfile.h34
-rw-r--r--graphics/asymptote/transform.h5
-rw-r--r--graphics/asymptote/util.cc4
-rw-r--r--graphics/pgf/base/doc/ChangeLog108
-rw-r--r--graphics/pgf/base/doc/pgfmanual.pdfbin10571767 -> 10576905 bytes
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex8
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex2
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex2
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex2
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex55
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex21
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex4
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex2
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex4
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex4
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex7
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex2
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex2
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex2
-rw-r--r--graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex2
-rw-r--r--graphics/pgf/base/tex/pgf.revision.tex8
-rw-r--r--graphics/pgf/base/tex/pgffor.code.tex8
-rw-r--r--graphics/pgf/base/tex/pgfkeys.code.tex54
-rw-r--r--graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex2
-rw-r--r--graphics/pgf/base/tex/pgfmoduleshapes.code.tex2
-rw-r--r--graphics/pgf/base/tex/pgfsys-dvips.def20
-rw-r--r--graphics/pgf/base/tex/pgfsys-luatex.def8
-rw-r--r--graphics/pgf/base/tex/pgfutil-latex.def8
-rw-r--r--macros/generic/schemata/Makefile73
-rw-r--r--macros/generic/schemata/README117
-rw-r--r--macros/generic/schemata/README.md164
-rw-r--r--macros/generic/schemata/schemata.dtx1176
-rw-r--r--macros/generic/schemata/schemata.pdfbin629768 -> 644097 bytes
-rw-r--r--macros/generic/schemata/schematest.tex63
-rw-r--r--macros/latex/contrib/arraycols/README.md2
-rw-r--r--macros/latex/contrib/arraycols/arraycols.dtx84
-rw-r--r--macros/latex/contrib/arraycols/arraycols.ins4
-rw-r--r--macros/latex/contrib/arraycols/arraycols.pdfbin457900 -> 458546 bytes
-rw-r--r--macros/latex/contrib/nameauth/Makefile72
-rw-r--r--macros/latex/contrib/nameauth/README129
-rw-r--r--macros/latex/contrib/nameauth/README.md156
-rw-r--r--macros/latex/contrib/nameauth/examples.tex1313
-rw-r--r--macros/latex/contrib/nameauth/nameauth.dtx10729
-rw-r--r--macros/latex/contrib/nameauth/nameauth.pdfbin1049659 -> 1144403 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin424627 -> 429184 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex187
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx514
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1061552 -> 1078185 bytes
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/config.guess30
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb234
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2245148 -> 2243888 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--systems/win32/w32tex/ChangeLog2
-rw-r--r--timestamp2
127 files changed, 17457 insertions, 10697 deletions
diff --git a/FILES.byname b/FILES.byname
index c3141ab620..fbca4eae72 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5020,7 +5020,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
-2020/11/22 | 53439 | FILES.last07days
+2020/11/23 | 54885 | 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
@@ -130271,937 +130271,937 @@
2012/11/17 | 1096 | graphics/AddTeX2Eps/default.tex
2006/04/17 | 836 | graphics/AddTeX2Eps/readme.txt
2012/11/17 | 5620 | graphics/AddTeX2Eps.zip
-2020/08/06 | 472 | graphics/asymptote/absyn.cc
-2020/08/06 | 1030 | graphics/asymptote/absyn.h
-2020/08/06 | 3297 | graphics/asymptote/access.cc
-2020/08/06 | 2964 | graphics/asymptote/access.h
-2020/08/06 | 2266 | graphics/asymptote/align.h
-2020/08/06 | 886 | graphics/asymptote/angle.h
-2020/08/06 | 18578 | graphics/asymptote/application.cc
-2020/08/06 | 9088 | graphics/asymptote/application.h
-2020/08/06 | 4735 | graphics/asymptote/array.cc
-2020/08/06 | 1975 | graphics/asymptote/array.h
-2020/08/06 | 13980 | graphics/asymptote/arrayop.h
-2020/08/06 | 11541 | graphics/asymptote/aspy.py
-2020/08/06 | 4286 | graphics/asymptote/asy.ico
-2020/08/06 | 17816 | graphics/asymptote/asy-keywords.el
-2020/08/06 | 206707 | graphics/asymptote/asy.list
-2020/08/06 | 1612 | graphics/asymptote/asy-list.pl
-2020/08/06 | 6300 | graphics/asymptote/asymptote.nsi
-2020/08/06 | 3001 | graphics/asymptote/asymptote.spec
-2020/08/06 | 770 | graphics/asymptote/asy.rc
-2020/08/06 | 34 | graphics/asymptote/autogen.sh
-2020/08/06 | 12534 | graphics/asymptote/ax_pthread.m4
-2020/08/06 | 42 | graphics/asymptote/base/animate.asy
-2020/08/06 | 5238 | graphics/asymptote/base/animation.asy
-2020/08/06 | 578 | graphics/asymptote/base/annotate.asy
-2020/08/06 | 99 | graphics/asymptote/base/asy_filetype.vim
-2020/08/06 | 268 | graphics/asymptote/base/asy-init.el
-2020/08/06 | 8243 | graphics/asymptote/base/asy-kate.sh
-2020/08/06 | 71223 | graphics/asymptote/base/asy-mode.el
-2020/08/06 | 1276 | graphics/asymptote/base/asymptote.py
-2020/08/06 | 8870 | graphics/asymptote/base/asy.vim
-2020/08/06 | 50 | graphics/asymptote/base/babel.asy
-2020/08/06 | 9569 | graphics/asymptote/base/bezulate.asy
-2020/08/06 | 11656 | graphics/asymptote/base/binarytree.asy
-2020/08/06 | 5279 | graphics/asymptote/base/bsp.asy
-2020/08/06 | 10830 | graphics/asymptote/base/CAD.asy
-2020/08/06 | 205495 | graphics/asymptote/base/colormap.asy
-2020/08/06 | 14749 | graphics/asymptote/base/contour3.asy
-2020/08/06 | 19990 | graphics/asymptote/base/contour.asy
-2020/08/06 | 2109 | graphics/asymptote/base/drawtree.asy
-2020/08/06 | 1178 | graphics/asymptote/base/embed.asy
-2020/08/06 | 1120 | graphics/asymptote/base/external.asy
-2020/08/06 | 21448 | graphics/asymptote/base/feynman.asy
-2020/08/06 | 15277 | graphics/asymptote/base/flowchart.asy
-2020/08/06 | 35 | graphics/asymptote/base/fontsize.asy
-2020/08/06 | 320398 | graphics/asymptote/base/geometry.asy
-2020/08/06 | 68266 | graphics/asymptote/base/graph3.asy
-2020/08/06 | 63520 | graphics/asymptote/base/graph.asy
-2020/08/06 | 314 | graphics/asymptote/base/graph_settings.asy
-2020/08/06 | 7407 | graphics/asymptote/base/graph_splinetype.asy
-2020/08/06 | 13605 | graphics/asymptote/base/grid3.asy
-2020/08/06 | 3935 | graphics/asymptote/base/interpolate.asy
-2020/08/06 | 2451 | graphics/asymptote/base/labelpath3.asy
-2020/08/06 | 729 | graphics/asymptote/base/labelpath.asy
-2020/08/06 | 25357 | graphics/asymptote/base/lmfit.asy
-2020/08/06 | 908 | graphics/asymptote/base/map.asy
-2020/08/06 | 7302 | graphics/asymptote/base/markers.asy
-2020/08/06 | 11008 | graphics/asymptote/base/math.asy
-2020/08/06 | 251 | graphics/asymptote/base/metapost.asy
-2020/08/06 | 39 | graphics/asymptote/base/nopapersize.ps
-2020/08/06 | 3278 | graphics/asymptote/base/obj.asy
-2020/08/06 | 15274 | graphics/asymptote/base/ode.asy
-2020/08/06 | 14669 | graphics/asymptote/base/palette.asy
-2020/08/06 | 2613 | graphics/asymptote/base/patterns.asy
-2020/08/06 | 1213 | graphics/asymptote/base/plain_arcs.asy
-2020/08/06 | 22594 | graphics/asymptote/base/plain_arrows.asy
-2020/08/06 | 7488 | graphics/asymptote/base/plain.asy
-2020/08/06 | 20989 | graphics/asymptote/base/plain_bounds.asy
-2020/08/06 | 4128 | graphics/asymptote/base/plain_boxes.asy
-2020/08/06 | 3716 | graphics/asymptote/base/plain_constants.asy
-2020/08/06 | 2187 | graphics/asymptote/base/plain_debugger.asy
-2020/08/06 | 6292 | graphics/asymptote/base/plain_filldraw.asy
-2020/08/06 | 16492 | graphics/asymptote/base/plain_Label.asy
-2020/08/06 | 2552 | graphics/asymptote/base/plain_margins.asy
-2020/08/06 | 11320 | graphics/asymptote/base/plain_markers.asy
-2020/08/06 | 9309 | graphics/asymptote/base/plain_paths.asy
-2020/08/06 | 8661 | graphics/asymptote/base/plain_pens.asy
-2020/08/06 | 46727 | graphics/asymptote/base/plain_picture.asy
-2020/08/06 | 6285 | graphics/asymptote/base/plain_prethree.asy
-2020/08/06 | 5760 | graphics/asymptote/base/plain_scaling.asy
-2020/08/06 | 4078 | graphics/asymptote/base/plain_shipout.asy
-2020/08/06 | 6169 | graphics/asymptote/base/plain_strings.asy
-2020/08/06 | 358 | graphics/asymptote/base/pstoedit.asy
-2020/08/06 | 5003 | graphics/asymptote/base/rational.asy
-2020/08/06 | 9399 | graphics/asymptote/base/rationalSimplex.asy
-2020/08/06 | 657 | graphics/asymptote/base/reload.js
-2020/08/06 | 289 | graphics/asymptote/base/res/notes.txt
-2020/08/06 | 3430 | graphics/asymptote/base/roundedpath.asy
-2020/08/06 | 5277 | graphics/asymptote/base/shaders/fragment.glsl
-2020/08/06 | 630 | graphics/asymptote/base/shaders/vertex.glsl
-2020/08/06 | 8290 | graphics/asymptote/base/simplex.asy
-2020/08/06 | 608 | graphics/asymptote/base/size10.asy
-2020/08/06 | 600 | graphics/asymptote/base/size11.asy
-2020/08/06 | 16138 | graphics/asymptote/base/slide.asy
-2020/08/06 | 2046 | graphics/asymptote/base/slopefield.asy
-2020/08/06 | 56037 | graphics/asymptote/base/smoothcontour3.asy
-2020/08/06 | 12035 | graphics/asymptote/base/solids.asy
-2020/08/06 | 7307 | graphics/asymptote/base/stats.asy
-2020/08/06 | 22971 | graphics/asymptote/base/syzygy.asy
-2020/08/06 | 2277 | graphics/asymptote/base/texcolors.asy
-2020/08/06 | 23791 | graphics/asymptote/base/three_arrows.asy
-2020/08/06 | 85383 | graphics/asymptote/base/three.asy
-2020/08/06 | 3724 | graphics/asymptote/base/three_light.asy
-2020/08/06 | 2764 | graphics/asymptote/base/three_margins.asy
-2020/08/06 | 72387 | graphics/asymptote/base/three_surface.asy
-2020/08/06 | 5879 | graphics/asymptote/base/three_tube.asy
-2020/08/06 | 1375 | graphics/asymptote/base/tree.asy
-2020/08/06 | 5797 | graphics/asymptote/base/trembling.asy
-2020/08/06 | 4991 | graphics/asymptote/base/tube.asy
-2020/08/06 | 60150 | graphics/asymptote/base/webgl/asygl.js
-2020/08/06 | 4812 | graphics/asymptote/base/x11colors.asy
-2020/08/06 | 3640 | graphics/asymptote/bbox3.h
-2020/08/06 | 4473 | graphics/asymptote/bbox.h
-2020/08/06 | 1828 | graphics/asymptote/beziercurve.cc
-2020/08/06 | 1270 | graphics/asymptote/beziercurve.h
-2020/08/06 | 32094 | graphics/asymptote/bezierpatch.cc
-2020/08/06 | 5595 | graphics/asymptote/bezierpatch.h
+2020/11/23 | 472 | graphics/asymptote/absyn.cc
+2020/11/23 | 1030 | graphics/asymptote/absyn.h
+2020/11/23 | 3297 | graphics/asymptote/access.cc
+2020/11/23 | 2964 | graphics/asymptote/access.h
+2020/11/23 | 2266 | graphics/asymptote/align.h
+2020/11/23 | 886 | graphics/asymptote/angle.h
+2020/11/23 | 18578 | graphics/asymptote/application.cc
+2020/11/23 | 9088 | graphics/asymptote/application.h
+2020/11/23 | 4735 | graphics/asymptote/array.cc
+2020/11/23 | 1975 | graphics/asymptote/array.h
+2020/11/23 | 13980 | graphics/asymptote/arrayop.h
+2020/11/23 | 11541 | graphics/asymptote/aspy.py
+2020/11/23 | 4286 | graphics/asymptote/asy.ico
+2020/11/23 | 17815 | graphics/asymptote/asy-keywords.el
+2020/11/23 | 207260 | graphics/asymptote/asy.list
+2020/11/23 | 1612 | graphics/asymptote/asy-list.pl
+2020/11/23 | 6300 | graphics/asymptote/asymptote.nsi
+2020/11/23 | 3001 | graphics/asymptote/asymptote.spec
+2020/11/23 | 770 | graphics/asymptote/asy.rc
+2020/11/23 | 34 | graphics/asymptote/autogen.sh
+2020/11/23 | 12534 | graphics/asymptote/ax_pthread.m4
+2020/11/23 | 42 | graphics/asymptote/base/animate.asy
+2020/11/23 | 5238 | graphics/asymptote/base/animation.asy
+2020/11/23 | 578 | graphics/asymptote/base/annotate.asy
+2020/11/23 | 99 | graphics/asymptote/base/asy_filetype.vim
+2020/11/23 | 268 | graphics/asymptote/base/asy-init.el
+2020/11/23 | 8243 | graphics/asymptote/base/asy-kate.sh
+2020/11/23 | 71241 | graphics/asymptote/base/asy-mode.el
+2020/11/23 | 1276 | graphics/asymptote/base/asymptote.py
+2020/11/23 | 8870 | graphics/asymptote/base/asy.vim
+2020/11/23 | 50 | graphics/asymptote/base/babel.asy
+2020/11/23 | 9569 | graphics/asymptote/base/bezulate.asy
+2020/11/23 | 11656 | graphics/asymptote/base/binarytree.asy
+2020/11/23 | 5279 | graphics/asymptote/base/bsp.asy
+2020/11/23 | 10830 | graphics/asymptote/base/CAD.asy
+2020/11/23 | 205495 | graphics/asymptote/base/colormap.asy
+2020/11/23 | 14749 | graphics/asymptote/base/contour3.asy
+2020/11/23 | 19990 | graphics/asymptote/base/contour.asy
+2020/11/23 | 2109 | graphics/asymptote/base/drawtree.asy
+2020/11/23 | 1178 | graphics/asymptote/base/embed.asy
+2020/11/23 | 1120 | graphics/asymptote/base/external.asy
+2020/11/23 | 21448 | graphics/asymptote/base/feynman.asy
+2020/11/23 | 15277 | graphics/asymptote/base/flowchart.asy
+2020/11/23 | 35 | graphics/asymptote/base/fontsize.asy
+2020/11/23 | 320403 | graphics/asymptote/base/geometry.asy
+2020/11/23 | 70102 | graphics/asymptote/base/graph3.asy
+2020/11/23 | 63520 | graphics/asymptote/base/graph.asy
+2020/11/23 | 314 | graphics/asymptote/base/graph_settings.asy
+2020/11/23 | 7407 | graphics/asymptote/base/graph_splinetype.asy
+2020/11/23 | 13605 | graphics/asymptote/base/grid3.asy
+2020/11/23 | 3935 | graphics/asymptote/base/interpolate.asy
+2020/11/23 | 2451 | graphics/asymptote/base/labelpath3.asy
+2020/11/23 | 729 | graphics/asymptote/base/labelpath.asy
+2020/11/23 | 25357 | graphics/asymptote/base/lmfit.asy
+2020/11/23 | 908 | graphics/asymptote/base/map.asy
+2020/11/23 | 7302 | graphics/asymptote/base/markers.asy
+2020/11/23 | 11008 | graphics/asymptote/base/math.asy
+2020/11/23 | 251 | graphics/asymptote/base/metapost.asy
+2020/11/23 | 39 | graphics/asymptote/base/nopapersize.ps
+2020/11/23 | 3278 | graphics/asymptote/base/obj.asy
+2020/11/23 | 15274 | graphics/asymptote/base/ode.asy
+2020/11/23 | 14669 | graphics/asymptote/base/palette.asy
+2020/11/23 | 2613 | graphics/asymptote/base/patterns.asy
+2020/11/23 | 1213 | graphics/asymptote/base/plain_arcs.asy
+2020/11/23 | 22594 | graphics/asymptote/base/plain_arrows.asy
+2020/11/23 | 7189 | graphics/asymptote/base/plain.asy
+2020/11/23 | 20989 | graphics/asymptote/base/plain_bounds.asy
+2020/11/23 | 4128 | graphics/asymptote/base/plain_boxes.asy
+2020/11/23 | 3716 | graphics/asymptote/base/plain_constants.asy
+2020/11/23 | 2187 | graphics/asymptote/base/plain_debugger.asy
+2020/11/23 | 6292 | graphics/asymptote/base/plain_filldraw.asy
+2020/11/23 | 16492 | graphics/asymptote/base/plain_Label.asy
+2020/11/23 | 2582 | graphics/asymptote/base/plain_margins.asy
+2020/11/23 | 11320 | graphics/asymptote/base/plain_markers.asy
+2020/11/23 | 9309 | graphics/asymptote/base/plain_paths.asy
+2020/11/23 | 8661 | graphics/asymptote/base/plain_pens.asy
+2020/11/23 | 46727 | graphics/asymptote/base/plain_picture.asy
+2020/11/23 | 6285 | graphics/asymptote/base/plain_prethree.asy
+2020/11/23 | 5760 | graphics/asymptote/base/plain_scaling.asy
+2020/11/23 | 4078 | graphics/asymptote/base/plain_shipout.asy
+2020/11/23 | 6169 | graphics/asymptote/base/plain_strings.asy
+2020/11/23 | 358 | graphics/asymptote/base/pstoedit.asy
+2020/11/23 | 5003 | graphics/asymptote/base/rational.asy
+2020/11/23 | 9688 | graphics/asymptote/base/rationalSimplex.asy
+2020/11/23 | 657 | graphics/asymptote/base/reload.js
+2020/11/23 | 289 | graphics/asymptote/base/res/notes.txt
+2020/11/23 | 3430 | graphics/asymptote/base/roundedpath.asy
+2020/11/23 | 5277 | graphics/asymptote/base/shaders/fragment.glsl
+2020/11/23 | 630 | graphics/asymptote/base/shaders/vertex.glsl
+2020/11/23 | 8290 | graphics/asymptote/base/simplex.asy
+2020/11/23 | 608 | graphics/asymptote/base/size10.asy
+2020/11/23 | 600 | graphics/asymptote/base/size11.asy
+2020/11/23 | 16150 | graphics/asymptote/base/slide.asy
+2020/11/23 | 2046 | graphics/asymptote/base/slopefield.asy
+2020/11/23 | 56037 | graphics/asymptote/base/smoothcontour3.asy
+2020/11/23 | 12035 | graphics/asymptote/base/solids.asy
+2020/11/23 | 7307 | graphics/asymptote/base/stats.asy
+2020/11/23 | 22971 | graphics/asymptote/base/syzygy.asy
+2020/11/23 | 2277 | graphics/asymptote/base/texcolors.asy
+2020/11/23 | 23791 | graphics/asymptote/base/three_arrows.asy
+2020/11/23 | 85532 | graphics/asymptote/base/three.asy
+2020/11/23 | 3724 | graphics/asymptote/base/three_light.asy
+2020/11/23 | 2764 | graphics/asymptote/base/three_margins.asy
+2020/11/23 | 72387 | graphics/asymptote/base/three_surface.asy
+2020/11/23 | 5880 | graphics/asymptote/base/three_tube.asy
+2020/11/23 | 1375 | graphics/asymptote/base/tree.asy
+2020/11/23 | 5797 | graphics/asymptote/base/trembling.asy
+2020/11/23 | 4992 | graphics/asymptote/base/tube.asy
+2020/11/23 | 60150 | graphics/asymptote/base/webgl/asygl.js
+2020/11/23 | 4812 | graphics/asymptote/base/x11colors.asy
+2020/11/23 | 3640 | graphics/asymptote/bbox3.h
+2020/11/23 | 4473 | graphics/asymptote/bbox.h
+2020/11/23 | 1828 | graphics/asymptote/beziercurve.cc
+2020/11/23 | 1270 | graphics/asymptote/beziercurve.h
+2020/11/23 | 32094 | graphics/asymptote/bezierpatch.cc
+2020/11/23 | 5595 | graphics/asymptote/bezierpatch.h
2018/02/02 | 3002325 | graphics/asymptote/binaries/i386-windows/cygwin1.dll
-2020/08/06 | 2505 | graphics/asymptote/binaries/i386-windows/README
-2020/08/06 | 8647680 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
+2020/11/23 | 2505 | graphics/asymptote/binaries/i386-windows/README
+2020/11/23 | 8652288 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
2020/08/06 | 297 | graphics/asymptote/binaries/i386-windows/texlive/README
2020/07/09 | 3541856 | graphics/asymptote/binaries/x86_64-windows/cygwin1.dll
-2020/08/06 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
-2020/08/06 | 8617472 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
+2020/11/23 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
+2020/11/23 | 8621568 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
2020/08/06 | 297 | graphics/asymptote/binaries/x86_64-windows/texlive/README
-2020/08/06 | 255 | graphics/asymptote/BUGS
-2020/08/06 | 1588 | graphics/asymptote/build-scripts/asy-format.el
-2020/08/06 | 210 | graphics/asymptote/build-scripts/asy-indent.el
-2020/08/06 | 1227 | graphics/asymptote/build-scripts/build-asygl
-2020/08/06 | 2482 | graphics/asymptote/build-scripts/build-asymptote
-2020/08/06 | 3507 | graphics/asymptote/build-scripts/build-asymptote.dos
-2020/08/06 | 1578 | graphics/asymptote/build-scripts/cc-format.el
-2020/08/06 | 183 | graphics/asymptote/build-scripts/cc-indent.el
-2020/08/06 | 2181 | graphics/asymptote/build-scripts/HOWTO-MSWindows
-2020/08/06 | 297 | graphics/asymptote/build-scripts/README-binaries
-2020/08/06 | 202 | graphics/asymptote/build-scripts/run-in-indent.el
-2020/08/06 | 31342 | graphics/asymptote/builtin.cc
-2020/08/06 | 1630 | graphics/asymptote/builtin.h
-2020/08/06 | 1151 | graphics/asymptote/callable.cc
-2020/08/06 | 1640 | graphics/asymptote/callable.h
-2020/08/06 | 1183 | graphics/asymptote/camperror.cc
-2020/08/06 | 814 | graphics/asymptote/camperror.h
-2020/08/06 | 13339 | graphics/asymptote/camp.l
-2020/08/06 | 127885 | graphics/asymptote/camp.tab.cc
-2020/08/06 | 4089 | graphics/asymptote/camp.tab.h
-2020/08/06 | 20029 | graphics/asymptote/camp.y
-2020/08/06 | 4612 | graphics/asymptote/castop.h
-2020/08/06 | 1876 | graphics/asymptote/cc-mode2.el
-2020/08/06 | 1430994 | graphics/asymptote/ChangeLog
-2020/08/06 | 7790 | graphics/asymptote/coder.cc
-2020/08/06 | 11642 | graphics/asymptote/coder.h
-2020/08/06 | 1126 | graphics/asymptote/coenv.cc
-2020/08/06 | 908 | graphics/asymptote/coenv.h
-2020/08/06 | 1846 | graphics/asymptote/common.h
-2020/08/06 | 48441 | graphics/asymptote/config.guess
-2020/08/06 | 6951 | graphics/asymptote/config.h.in
-2020/08/06 | 31609 | graphics/asymptote/config.sub
-2020/08/06 | 287360 | graphics/asymptote/configure
-2020/08/06 | 14897 | graphics/asymptote/configure.ac
-2020/08/06 | 3668 | graphics/asymptote/constructor.cc
-2020/08/06 | 20840 | graphics/asymptote/dec.cc
-2020/08/06 | 15822 | graphics/asymptote/dec.h
-2020/08/06 | 5883 | graphics/asymptote/Delaunay.cc
-2020/08/06 | 384 | graphics/asymptote/Delaunay.h
-2020/08/06 | 8116 | graphics/asymptote/doc/asy.1
-2020/08/06 | 1005 | graphics/asymptote/doc/asy.1.begin
-2020/08/06 | 333 | graphics/asymptote/doc/asy.1.end
-2020/08/06 | 2800 | graphics/asymptote/doc/asycolors.sty
-2020/08/06 | 18126 | graphics/asymptote/doc/asy-latex.dtx
-2020/08/06 | 194604 | graphics/asymptote/doc/asy-latex.pdf
-2020/08/06 | 1284725 | graphics/asymptote/doc/asymptote.pdf
-2020/08/06 | 9836 | graphics/asymptote/doc/asymptote.sty
-2020/08/06 | 388435 | graphics/asymptote/doc/asymptote.texi
-2020/08/06 | 121144 | graphics/asymptote/doc/asyRefCard.pdf
-2020/08/06 | 20051 | graphics/asymptote/doc/asyRefCard.tex
-2020/08/06 | 246 | graphics/asymptote/doc/axis3.asy
-2020/08/06 | 416 | graphics/asymptote/doc/bezier2.asy
-2020/08/06 | 81 | graphics/asymptote/doc/bezier.asy
-2020/08/06 | 234 | graphics/asymptote/doc/beziercurve.asy
-2020/08/06 | 41 | graphics/asymptote/doc/bigdiagonal.asy
-2020/08/06 | 306 | graphics/asymptote/doc/binarytreetest.asy
-2020/08/06 | 677 | graphics/asymptote/doc/Bode.asy
-2020/08/06 | 524 | graphics/asymptote/doc/brokenaxis.asy
-2020/08/06 | 1391 | graphics/asymptote/doc/CAD1.asy
-2020/08/06 | 186116 | graphics/asymptote/doc/CAD.pdf
-2020/08/06 | 10196 | graphics/asymptote/doc/CAD.tex
-2020/08/06 | 518 | graphics/asymptote/doc/CDlabel.asy
-2020/08/06 | 4348 | graphics/asymptote/doc/colo-asy.tex
-2020/08/06 | 49 | graphics/asymptote/doc/colons.asy
-2020/08/06 | 1620 | graphics/asymptote/doc/colors.asy
-2020/08/06 | 243 | graphics/asymptote/doc/cube.asy
-2020/08/06 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
-2020/08/06 | 218 | graphics/asymptote/doc/datagraph.asy
-2020/08/06 | 24 | graphics/asymptote/doc/diagonal.asy
-2020/08/06 | 2979 | graphics/asymptote/doc/diatom.asy
-2020/08/06 | 4067 | graphics/asymptote/doc/diatom.csv
-2020/08/06 | 49 | graphics/asymptote/doc/dots.asy
-2020/08/06 | 1051 | graphics/asymptote/doc/eetomumu.asy
-2020/08/06 | 2034 | graphics/asymptote/doc/elliptic.asy
-2020/08/06 | 912 | graphics/asymptote/doc/errorbars.asy
-2020/08/06 | 202 | graphics/asymptote/doc/exp.asy
-2020/08/06 | 343 | graphics/asymptote/doc/externalprc.tex
-2020/08/06 | 19597 | graphics/asymptote/doc/external-proposal.html
-2020/08/06 | 25137 | graphics/asymptote/doc/extra/intro.asy
-2020/08/06 | 40761 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
-2020/08/06 | 63137 | graphics/asymptote/doc/FAQ/asy-faq.info
-2020/08/06 | 9202 | graphics/asymptote/doc/FAQ/bfnnconv.pl
-2020/08/06 | 13663 | graphics/asymptote/doc/FAQ/install-sh
-2020/08/06 | 1000 | graphics/asymptote/doc/FAQ/Makefile
-2020/08/06 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
-2020/08/06 | 9725 | graphics/asymptote/doc/FAQ/m-html.pl
-2020/08/06 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
-2020/08/06 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
-2020/08/06 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
-2020/08/06 | 238 | graphics/asymptote/doc/filegraph.asy
-2020/08/06 | 26 | graphics/asymptote/doc/filegraph.dat
-2020/08/06 | 604 | graphics/asymptote/doc/flow.asy
-2020/08/06 | 897 | graphics/asymptote/doc/flowchartdemo.asy
-2020/08/06 | 464 | graphics/asymptote/doc/GaussianSurface.asy
-2020/08/06 | 376 | graphics/asymptote/doc/generalaxis3.asy
-2020/08/06 | 277 | graphics/asymptote/doc/generalaxis.asy
-2020/08/06 | 754 | graphics/asymptote/doc/graphmarkers.asy
-2020/08/06 | 426 | graphics/asymptote/doc/grid3xyz.asy
-2020/08/06 | 279 | graphics/asymptote/doc/hatch.asy
-2020/08/06 | 423 | graphics/asymptote/doc/helix.asy
-2020/08/06 | 324 | graphics/asymptote/doc/HermiteSpline.asy
-2020/08/06 | 441 | graphics/asymptote/doc/histogram.asy
-2020/08/06 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
-2020/08/06 | 500 | graphics/asymptote/doc/Hobbydir.asy
-2020/08/06 | 378 | graphics/asymptote/doc/icon.asy
-2020/08/06 | 401 | graphics/asymptote/doc/image.asy
-2020/08/06 | 868 | graphics/asymptote/doc/imagecontour.asy
-2020/08/06 | 13663 | graphics/asymptote/doc/install-sh
-2020/08/06 | 357 | graphics/asymptote/doc/irregularcontour.asy
-2020/08/06 | 442 | graphics/asymptote/doc/join3.asy
-2020/08/06 | 261 | graphics/asymptote/doc/join.asy
-2020/08/06 | 417 | graphics/asymptote/doc/knots.asy
-2020/08/06 | 121 | graphics/asymptote/doc/labelsquare.asy
-2020/08/06 | 144 | graphics/asymptote/doc/latexmkrc
-2020/08/06 | 150 | graphics/asymptote/doc/latexmkrc_asydir
-2020/08/06 | 3106 | graphics/asymptote/doc/latexusage.tex
-2020/08/06 | 1008 | graphics/asymptote/doc/leastsquares.asy
-2020/08/06 | 6318 | graphics/asymptote/doc/leastsquares.dat
-2020/08/06 | 397 | graphics/asymptote/doc/legend.asy
-2020/08/06 | 366 | graphics/asymptote/doc/lineargraph0.asy
-2020/08/06 | 373 | graphics/asymptote/doc/lineargraph.asy
-2020/08/06 | 415 | graphics/asymptote/doc/linetype.asy
-2020/08/06 | 423 | graphics/asymptote/doc/log2graph.asy
-2020/08/06 | 262 | graphics/asymptote/doc/loggraph.asy
-2020/08/06 | 382 | graphics/asymptote/doc/loggrid.asy
-2020/08/06 | 480 | graphics/asymptote/doc/logimage.asy
-2020/08/06 | 617 | graphics/asymptote/doc/logo.asy
-2020/08/06 | 314 | graphics/asymptote/doc/logticks.asy
-2020/08/06 | 3023 | graphics/asymptote/doc/Makefile.in
-2020/08/06 | 293 | graphics/asymptote/doc/makepen.asy
-2020/08/06 | 2674 | graphics/asymptote/doc/markers1.asy
-2020/08/06 | 877 | graphics/asymptote/doc/markers2.asy
-2020/08/06 | 288 | graphics/asymptote/doc/mexicanhat.asy
-2020/08/06 | 374 | graphics/asymptote/doc/monthaxis.asy
-2020/08/06 | 458 | graphics/asymptote/doc/multicontour.asy
-2020/08/06 | 3497 | graphics/asymptote/doc/ocg.sty
-2020/08/06 | 115 | graphics/asymptote/doc/onecontour.asy
-2020/08/06 | 240 | graphics/asymptote/doc/parametricgraph.asy
-2020/08/06 | 498 | graphics/asymptote/doc/penfunctionimage.asy
-2020/08/06 | 219 | graphics/asymptote/doc/penimage.asy
-2020/08/06 | 2771 | graphics/asymptote/doc/pixel.pdf
-2020/08/06 | 354 | graphics/asymptote/doc/planes.asy
-2020/08/06 | 465530 | graphics/asymptote/doc/png/asymptote.info
-2020/08/06 | 1469 | graphics/asymptote/doc/png/Makefile.in
-2020/08/06 | 49 | graphics/asymptote/doc/quartercircle.asy
-2020/08/06 | 354 | graphics/asymptote/doc/reloadpdf.tex
-2020/08/06 | 157 | graphics/asymptote/doc/saddle.asy
-2020/08/06 | 355 | graphics/asymptote/doc/scaledgraph.asy
-2020/08/06 | 792 | graphics/asymptote/doc/secondaryaxis.asy
-2020/08/06 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
-2020/08/06 | 256 | graphics/asymptote/doc/shadedtiling.asy
-2020/08/06 | 154 | graphics/asymptote/doc/slopefield1.asy
-2020/08/06 | 52 | graphics/asymptote/doc/square.asy
-2020/08/06 | 341 | graphics/asymptote/doc/subpictures.asy
-2020/08/06 | 123 | graphics/asymptote/doc/superpath.asy
-2020/08/06 | 77144 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
-2020/08/06 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
-2020/08/06 | 390 | graphics/asymptote/doc/tile.asy
-2020/08/06 | 396 | graphics/asymptote/doc/triangulate.asy
-2020/08/06 | 186 | graphics/asymptote/doc/unitcircle3.asy
-2020/08/06 | 147 | graphics/asymptote/doc/vectorfield.asy
-2020/08/06 | 1746 | graphics/asymptote/doc/westnile.asy
-2020/08/06 | 4727 | graphics/asymptote/doc/westnile.csv
-2020/08/06 | 880 | graphics/asymptote/doc/xasy.1x
-2020/08/06 | 1851 | graphics/asymptote/drawclipbegin.h
-2020/08/06 | 1197 | graphics/asymptote/drawclipend.h
-2020/08/06 | 11212 | graphics/asymptote/drawelement.h
-2020/08/06 | 4597 | graphics/asymptote/drawfill.cc
-2020/08/06 | 6525 | graphics/asymptote/drawfill.h
-2020/08/06 | 494 | graphics/asymptote/drawgrestore.h
-2020/08/06 | 2880 | graphics/asymptote/drawgroup.h
-2020/08/06 | 464 | graphics/asymptote/drawgsave.h
-2020/08/06 | 3024 | graphics/asymptote/drawimage.h
-2020/08/06 | 6789 | graphics/asymptote/drawlabel.cc
-2020/08/06 | 2134 | graphics/asymptote/drawlabel.h
-2020/08/06 | 770 | graphics/asymptote/drawlayer.h
-2020/08/06 | 5578 | graphics/asymptote/drawpath3.cc
-2020/08/06 | 5811 | graphics/asymptote/drawpath3.h
-2020/08/06 | 3465 | graphics/asymptote/drawpath.cc
-2020/08/06 | 669 | graphics/asymptote/drawpath.h
-2020/08/06 | 23631 | graphics/asymptote/drawsurface.cc
-2020/08/06 | 19915 | graphics/asymptote/drawsurface.h
-2020/08/06 | 1266 | graphics/asymptote/drawverbatim.h
-2020/08/06 | 17987 | graphics/asymptote/entry.cc
-2020/08/06 | 13615 | graphics/asymptote/entry.h
-2020/08/06 | 5441 | graphics/asymptote/env.cc
-2020/08/06 | 1142 | graphics/asymptote/envcompleter.cc
-2020/08/06 | 845 | graphics/asymptote/envcompleter.h
-2020/08/06 | 4570 | graphics/asymptote/env.h
-2020/08/06 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
-2020/08/06 | 2287 | graphics/asymptote/errormsg.cc
-2020/08/06 | 5052 | graphics/asymptote/errormsg.h
-2020/08/06 | 9251 | graphics/asymptote/errors
-2020/08/06 | 6911 | graphics/asymptote/errortest.asy
-2020/08/06 | 43335 | graphics/asymptote/examples/100d.pdb1
-2020/08/06 | 657 | graphics/asymptote/examples/100d.views
-2020/08/06 | 308 | graphics/asymptote/examples/1overx.asy
-2020/08/06 | 4158 | graphics/asymptote/examples/advection.asy
-2020/08/06 | 245 | graphics/asymptote/examples/alignbox.asy
-2020/08/06 | 2832 | graphics/asymptote/examples/alignedaxis.asy
-2020/08/06 | 946 | graphics/asymptote/examples/animations/cube.asy
-2020/08/06 | 160672 | graphics/asymptote/examples/animations/dice.u3d
-2020/08/06 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
-2020/08/06 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
-2020/08/06 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
-2020/08/06 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
-2020/08/06 | 414 | graphics/asymptote/examples/animations/glmovie.asy
-2020/08/06 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
-2020/08/06 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
-2020/08/06 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
-2020/08/06 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
-2020/08/06 | 1238 | graphics/asymptote/examples/animations/slidemovies.asy
-2020/08/06 | 856 | graphics/asymptote/examples/animations/sphere.asy
-2020/08/06 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
-2020/08/06 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
-2020/08/06 | 1120 | graphics/asymptote/examples/animations/wheel.asy
-2020/08/06 | 236 | graphics/asymptote/examples/annotation.asy
-2020/08/06 | 1240 | graphics/asymptote/examples/arrows3.asy
-2020/08/06 | 61 | graphics/asymptote/examples/axialshade.asy
-2020/08/06 | 496 | graphics/asymptote/examples/bars3.asy
-2020/08/06 | 1033 | graphics/asymptote/examples/basealign.asy
-2020/08/06 | 407 | graphics/asymptote/examples/BezierPatch.asy
-2020/08/06 | 581 | graphics/asymptote/examples/BezierSaddle.asy
-2020/08/06 | 1548 | graphics/asymptote/examples/BezierSurface.asy
-2020/08/06 | 199 | graphics/asymptote/examples/BezierTriangle.asy
-2020/08/06 | 154 | graphics/asymptote/examples/billboard.asy
-2020/08/06 | 513 | graphics/asymptote/examples/buildcycle.asy
-2020/08/06 | 233 | graphics/asymptote/examples/cardioid.asy
-2020/08/06 | 485 | graphics/asymptote/examples/cards.asy
-2020/08/06 | 688 | graphics/asymptote/examples/centroidfg.asy
-2020/08/06 | 322 | graphics/asymptote/examples/cheese.asy
-2020/08/06 | 576 | graphics/asymptote/examples/circles.asy
-2020/08/06 | 228 | graphics/asymptote/examples/circumcircle.asy
-2020/08/06 | 762 | graphics/asymptote/examples/clockarray.asy
-2020/08/06 | 264 | graphics/asymptote/examples/coag.asy
-2020/08/06 | 436 | graphics/asymptote/examples/colorpatch.asy
-2020/08/06 | 472 | graphics/asymptote/examples/colorplanes.asy
-2020/08/06 | 739 | graphics/asymptote/examples/condor.asy
-2020/08/06 | 495 | graphics/asymptote/examples/cones.asy
-2020/08/06 | 1778 | graphics/asymptote/examples/conicurv.asy
-2020/08/06 | 254 | graphics/asymptote/examples/contextfonts.asy
-2020/08/06 | 802 | graphics/asymptote/examples/controlsystem.asy
-2020/08/06 | 123 | graphics/asymptote/examples/Coons.asy
-2020/08/06 | 235 | graphics/asymptote/examples/cos2theta.asy
-2020/08/06 | 582 | graphics/asymptote/examples/cos3.asy
-2020/08/06 | 460 | graphics/asymptote/examples/cosaddition.asy
-2020/08/06 | 5537 | graphics/asymptote/examples/cpkcolors.asy
-2020/08/06 | 572 | graphics/asymptote/examples/curvedlabel3.asy
-2020/08/06 | 177 | graphics/asymptote/examples/curvedlabel.asy
-2020/08/06 | 1835 | graphics/asymptote/examples/cyclohexane.asy
-2020/08/06 | 352 | graphics/asymptote/examples/cylinder.asy
-2020/08/06 | 506 | graphics/asymptote/examples/delu.asy
-2020/08/06 | 509 | graphics/asymptote/examples/dimension.asy
-2020/08/06 | 1216 | graphics/asymptote/examples/dragon.asy
-2020/08/06 | 1298 | graphics/asymptote/examples/electromagnetic.asy
-2020/08/06 | 325 | graphics/asymptote/examples/elevation.asy
-2020/08/06 | 398 | graphics/asymptote/examples/epix.asy
-2020/08/06 | 242 | graphics/asymptote/examples/equilateral.asy
-2020/08/06 | 548 | graphics/asymptote/examples/equilchord.asy
-2020/08/06 | 579 | graphics/asymptote/examples/exp3.asy
-2020/08/06 | 519 | graphics/asymptote/examples/extrudedcontour.asy
-2020/08/06 | 498 | graphics/asymptote/examples/fano.asy
-2020/08/06 | 973 | graphics/asymptote/examples/fequlogo.asy
-2020/08/06 | 727 | graphics/asymptote/examples/fermi.asy
-2020/08/06 | 980 | graphics/asymptote/examples/filesurface.asy
-2020/08/06 | 5543 | graphics/asymptote/examples/filesurface.dat
-2020/08/06 | 570 | graphics/asymptote/examples/fillcontour.asy
-2020/08/06 | 4244 | graphics/asymptote/examples/fin.asy
-2020/08/06 | 710 | graphics/asymptote/examples/fjortoft.asy
-2020/08/06 | 558 | graphics/asymptote/examples/floatingdisk.asy
-2020/08/06 | 500 | graphics/asymptote/examples/floor.asy
-2020/08/06 | 683 | graphics/asymptote/examples/fractaltree.asy
-2020/08/06 | 1185 | graphics/asymptote/examples/functionshading.asy
-2020/08/06 | 499 | graphics/asymptote/examples/galleon.asy
-2020/08/06 | 713 | graphics/asymptote/examples/gamma3.asy
-2020/08/06 | 439 | graphics/asymptote/examples/gamma.asy
-2020/08/06 | 679 | graphics/asymptote/examples/genusthree.asy
-2020/08/06 | 1164 | graphics/asymptote/examples/genustwo.asy
-2020/08/06 | 383 | graphics/asymptote/examples/Gouraud.asy
-2020/08/06 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
-2020/08/06 | 76 | graphics/asymptote/examples/grid.asy
-2020/08/06 | 459 | graphics/asymptote/examples/hierarchy.asy
-2020/08/06 | 315 | graphics/asymptote/examples/hyperboloid.asy
-2020/08/06 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
-2020/08/06 | 1111 | graphics/asymptote/examples/imagehistogram.asy
-2020/08/06 | 610 | graphics/asymptote/examples/impact.asy
-2020/08/06 | 598 | graphics/asymptote/examples/integraltest.asy
-2020/08/06 | 4808 | graphics/asymptote/examples/interpolate1.asy
-2020/08/06 | 289 | graphics/asymptote/examples/jump.asy
-2020/08/06 | 1352 | graphics/asymptote/examples/Klein.asy
-2020/08/06 | 182 | graphics/asymptote/examples/label3.asy
-2020/08/06 | 196 | graphics/asymptote/examples/label3ribbon.asy
-2020/08/06 | 187 | graphics/asymptote/examples/label3solid.asy
-2020/08/06 | 632 | graphics/asymptote/examples/label3zoom.asy
-2020/08/06 | 264 | graphics/asymptote/examples/labelbox.asy
-2020/08/06 | 1114 | graphics/asymptote/examples/laserlattice.asy
-2020/08/06 | 136 | graphics/asymptote/examples/latticeshading.asy
-2020/08/06 | 688 | graphics/asymptote/examples/layers.asy
-2020/08/06 | 460 | graphics/asymptote/examples/lever.asy
-2020/08/06 | 654 | graphics/asymptote/examples/limit.asy
-2020/08/06 | 1910 | graphics/asymptote/examples/linearregression.asy
-2020/08/06 | 168 | graphics/asymptote/examples/lines.asy
-2020/08/06 | 1040 | graphics/asymptote/examples/lmfit1.asy
-2020/08/06 | 206 | graphics/asymptote/examples/log.asy
-2020/08/06 | 349 | graphics/asymptote/examples/logdown.asy
-2020/08/06 | 1461 | graphics/asymptote/examples/logo3.asy
-2020/08/06 | 196 | graphics/asymptote/examples/lowint.asy
-2020/08/06 | 657 | graphics/asymptote/examples/lowupint.asy
-2020/08/06 | 479 | graphics/asymptote/examples/magnetic.asy
-2020/08/06 | 896 | graphics/asymptote/examples/markregular.asy
-2020/08/06 | 1968 | graphics/asymptote/examples/mergeExample.asy
-2020/08/06 | 5216 | graphics/asymptote/examples/mosaic.asy
-2020/08/06 | 2504 | graphics/asymptote/examples/mosquito.asy
-2020/08/06 | 1566 | graphics/asymptote/examples/near_earth.asy
-2020/08/06 | 658 | graphics/asymptote/examples/NURBScurve.asy
-2020/08/06 | 1042 | graphics/asymptote/examples/NURBSsphere.asy
-2020/08/06 | 1551 | graphics/asymptote/examples/NURBSsurface.asy
-2020/08/06 | 1251 | graphics/asymptote/examples/odetest.asy
-2020/08/06 | 308 | graphics/asymptote/examples/oneoverx.asy
-2020/08/06 | 861 | graphics/asymptote/examples/orthocenter.asy
-2020/08/06 | 254 | graphics/asymptote/examples/parametricelevation.asy
-2020/08/06 | 407 | graphics/asymptote/examples/parametricsurface.asy
-2020/08/06 | 711 | graphics/asymptote/examples/partialsurface.asy
-2020/08/06 | 1055 | graphics/asymptote/examples/partitionExample.asy
-2020/08/06 | 426 | graphics/asymptote/examples/pathintersectsurface.asy
-2020/08/06 | 3335 | graphics/asymptote/examples/pdb.asy
-2020/08/06 | 361 | graphics/asymptote/examples/phase.asy
-2020/08/06 | 22873 | graphics/asymptote/examples/piicon.png
-2020/08/06 | 362 | graphics/asymptote/examples/pipeintersection.asy
-2020/08/06 | 3857 | graphics/asymptote/examples/pipes.asy
-2020/08/06 | 418 | graphics/asymptote/examples/planeproject.asy
-2020/08/06 | 930 | graphics/asymptote/examples/polararea.asy
-2020/08/06 | 628 | graphics/asymptote/examples/polarcircle.asy
-2020/08/06 | 326 | graphics/asymptote/examples/polardatagraph.asy
-2020/08/06 | 641 | graphics/asymptote/examples/pOrbital.asy
-2020/08/06 | 954 | graphics/asymptote/examples/poster.asy
-2020/08/06 | 58 | graphics/asymptote/examples/progrid.asy
-2020/08/06 | 373 | graphics/asymptote/examples/projectelevation.asy
-2020/08/06 | 427 | graphics/asymptote/examples/projectrevolution.asy
-2020/08/06 | 747 | graphics/asymptote/examples/pseudosphere.asy
-2020/08/06 | 557 | graphics/asymptote/examples/Pythagoras.asy
-2020/08/06 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
-2020/08/06 | 734 | graphics/asymptote/examples/quilt.asy
-2020/08/06 | 345 | graphics/asymptote/examples/rainbow.asy
-2020/08/06 | 78 | graphics/asymptote/examples/randompath3.asy
-2020/08/06 | 1537 | graphics/asymptote/examples/refs.bib
-2020/08/06 | 990 | graphics/asymptote/examples/RiemannSphere.asy
-2020/08/06 | 348 | graphics/asymptote/examples/RiemannSurface.asy
-2020/08/06 | 384 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
-2020/08/06 | 141 | graphics/asymptote/examples/ring.asy
-2020/08/06 | 184 | graphics/asymptote/examples/roll.asy
-2020/08/06 | 1309 | graphics/asymptote/examples/roundpath.asy
-2020/08/06 | 288 | graphics/asymptote/examples/sacone3D.asy
-2020/08/06 | 445 | graphics/asymptote/examples/sacone.asy
-2020/08/06 | 341 | graphics/asymptote/examples/sacylinder3D.asy
-2020/08/06 | 400 | graphics/asymptote/examples/sacylinder.asy
-2020/08/06 | 66 | graphics/asymptote/examples/shade.asy
-2020/08/06 | 111 | graphics/asymptote/examples/shadestroke.asy
-2020/08/06 | 1065 | graphics/asymptote/examples/shellmethod.asy
-2020/08/06 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
-2020/08/06 | 410 | graphics/asymptote/examples/Sierpinski.asy
-2020/08/06 | 821 | graphics/asymptote/examples/SierpinskiGasket.asy
-2020/08/06 | 2398 | graphics/asymptote/examples/SierpinskiSponge.asy
-2020/08/06 | 327 | graphics/asymptote/examples/sin1x.asy
-2020/08/06 | 579 | graphics/asymptote/examples/sin3.asy
-2020/08/06 | 591 | graphics/asymptote/examples/sinc.asy
-2020/08/06 | 378 | graphics/asymptote/examples/sinxlex.asy
-2020/08/06 | 3340 | graphics/asymptote/examples/slidedemo.asy
-2020/08/06 | 341 | graphics/asymptote/examples/slidedemo_.bbl
-2020/08/06 | 2023 | graphics/asymptote/examples/slope.asy
-2020/08/06 | 520 | graphics/asymptote/examples/smoothelevation.asy
-2020/08/06 | 2680 | graphics/asymptote/examples/soccerball.asy
-2020/08/06 | 2360 | graphics/asymptote/examples/spectrum.asy
-2020/08/06 | 141 | graphics/asymptote/examples/sphere.asy
-2020/08/06 | 150 | graphics/asymptote/examples/spheresilhouette.asy
-2020/08/06 | 162 | graphics/asymptote/examples/sphereskeleton.asy
-2020/08/06 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
-2020/08/06 | 424 | graphics/asymptote/examples/spiral3.asy
-2020/08/06 | 210 | graphics/asymptote/examples/spiral.asy
-2020/08/06 | 608 | graphics/asymptote/examples/spline.asy
-2020/08/06 | 2191 | graphics/asymptote/examples/splitpatch.asy
-2020/08/06 | 38 | graphics/asymptote/examples/spring0.asy
-2020/08/06 | 43 | graphics/asymptote/examples/spring2.asy
-2020/08/06 | 667 | graphics/asymptote/examples/spring.asy
-2020/08/06 | 674 | graphics/asymptote/examples/sqrtx01.asy
-2020/08/06 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
-2020/08/06 | 145 | graphics/asymptote/examples/star.asy
-2020/08/06 | 162 | graphics/asymptote/examples/stereoscopic.asy
-2020/08/06 | 59 | graphics/asymptote/examples/stroke3.asy
-2020/08/06 | 315 | graphics/asymptote/examples/strokepath.asy
-2020/08/06 | 175 | graphics/asymptote/examples/strokeshade.asy
-2020/08/06 | 198 | graphics/asymptote/examples/tanh.asy
-2020/08/06 | 13901 | graphics/asymptote/examples/teapot.asy
-2020/08/06 | 303 | graphics/asymptote/examples/tensor.asy
-2020/08/06 | 547 | graphics/asymptote/examples/tetra.asy
-2020/08/06 | 312 | graphics/asymptote/examples/textpath.asy
-2020/08/06 | 8429 | graphics/asymptote/examples/thermodynamics.asy
-2020/08/06 | 576 | graphics/asymptote/examples/threeviews.asy
-2020/08/06 | 104 | graphics/asymptote/examples/tiling.asy
-2020/08/06 | 419 | graphics/asymptote/examples/torus.asy
-2020/08/06 | 246 | graphics/asymptote/examples/transparency.asy
-2020/08/06 | 250 | graphics/asymptote/examples/transparentCubes.asy
-2020/08/06 | 602 | graphics/asymptote/examples/treetest.asy
-2020/08/06 | 589 | graphics/asymptote/examples/trefoilknot.asy
-2020/08/06 | 972 | graphics/asymptote/examples/triads.asy
-2020/08/06 | 207 | graphics/asymptote/examples/triangle.asy
-2020/08/06 | 441 | graphics/asymptote/examples/triangles.asy
-2020/08/06 | 251 | graphics/asymptote/examples/triceratops.asy
-2020/08/06 | 291 | graphics/asymptote/examples/trumpet.asy
-2020/08/06 | 2101 | graphics/asymptote/examples/truncatedIcosahedron.asy
-2020/08/06 | 40665 | graphics/asymptote/examples/tvgen.asy
-2020/08/06 | 868 | graphics/asymptote/examples/twistedtubes.asy
-2020/08/06 | 26096 | graphics/asymptote/examples/uhrturm.obj
-2020/08/06 | 322 | graphics/asymptote/examples/unitcircle.asy
-2020/08/06 | 430 | graphics/asymptote/examples/unitoctant.asy
-2020/08/06 | 714 | graphics/asymptote/examples/unitoctantx.asy
-2020/08/06 | 199 | graphics/asymptote/examples/upint.asy
-2020/08/06 | 525 | graphics/asymptote/examples/vectorfield3.asy
-2020/08/06 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
-2020/08/06 | 839 | graphics/asymptote/examples/venn3.asy
-2020/08/06 | 626 | graphics/asymptote/examples/venn.asy
-2020/08/06 | 802 | graphics/asymptote/examples/vertexshading.asy
-2020/08/06 | 360 | graphics/asymptote/examples/washer.asy
-2020/08/06 | 1010 | graphics/asymptote/examples/washermethod.asy
-2020/08/06 | 628 | graphics/asymptote/examples/wedge.asy
-2020/08/06 | 1036 | graphics/asymptote/examples/workcone.asy
-2020/08/06 | 978 | graphics/asymptote/examples/worksheet.asy
-2020/08/06 | 2626 | graphics/asymptote/examples/worldmap.asy
-2020/08/06 | 1261761 | graphics/asymptote/examples/worldmap.dat
-2020/08/06 | 580 | graphics/asymptote/examples/xsin1x.asy
-2020/08/06 | 3739 | graphics/asymptote/examples/xstitch.asy
-2020/08/06 | 743 | graphics/asymptote/examples/xxsq01.asy
-2020/08/06 | 866 | graphics/asymptote/examples/xxsq01x-1.asy
-2020/08/06 | 825 | graphics/asymptote/examples/xxsq01y.asy
-2020/08/06 | 222 | graphics/asymptote/examples/yingyang.asy
-2020/08/06 | 33828 | graphics/asymptote/exp.cc
-2020/08/06 | 28783 | graphics/asymptote/exp.h
-2020/08/06 | 119 | graphics/asymptote/fftw++asy.cc
-2020/08/06 | 1694 | graphics/asymptote/fftw++.cc
-2020/08/06 | 44472 | graphics/asymptote/fftw++.h
-2020/08/06 | 4800 | graphics/asymptote/fileio.cc
-2020/08/06 | 19629 | graphics/asymptote/fileio.h
-2020/08/06 | 1245 | graphics/asymptote/findsym.pl
-2020/08/06 | 1020 | graphics/asymptote/flatguide.cc
-2020/08/06 | 4209 | graphics/asymptote/flatguide.h
-2020/08/06 | 654 | graphics/asymptote/fpu.h
-2020/08/06 | 2164 | graphics/asymptote/frame.h
-2020/08/06 | 7919 | graphics/asymptote/fundec.cc
-2020/08/06 | 4341 | graphics/asymptote/fundec.h
-2020/08/06 | 1160528 | graphics/asymptote/gc-8.0.4.tar.gz
-2020/08/06 | 3153 | graphics/asymptote/genv.cc
-2020/08/06 | 1626 | graphics/asymptote/genv.h
-2020/08/06 | 4520 | graphics/asymptote/getopt1.c
-2020/08/06 | 30147 | graphics/asymptote/getopt.c
-2020/08/06 | 6650 | graphics/asymptote/getopt.h
-2020/08/06 | 202 | graphics/asymptote/glew.c
-2020/08/06 | 1235777 | graphics/asymptote/GL/glew.c
-2020/08/06 | 1186601 | graphics/asymptote/GL/glew.h
-2020/08/06 | 73435 | graphics/asymptote/GL/glxew.h
-2020/08/06 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
-2020/08/06 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
-2020/08/06 | 45841 | graphics/asymptote/glrender.cc
-2020/08/06 | 9243 | graphics/asymptote/glrender.h
-2020/08/06 | 63314 | graphics/asymptote/GL/wglew.h
-2020/08/06 | 50437 | graphics/asymptote/gsl.cc
-2020/08/06 | 22 | graphics/asymptote/GUI/configs/__init__.py
-2020/08/06 | 1148 | graphics/asymptote/GUI/configs/xasyconfig.cson
-2020/08/06 | 395 | graphics/asymptote/GUI/configs/xasykeymap.cson
-2020/08/06 | 3503 | graphics/asymptote/GUI/CustMatTransform.py
-2020/08/06 | 131 | graphics/asymptote/GUI/DebugFlags.py
-2020/08/06 | 1149 | graphics/asymptote/guide.cc
-2020/08/06 | 294 | graphics/asymptote/guideflags.h
-2020/08/06 | 6725 | graphics/asymptote/guide.h
-2020/08/06 | 1724 | graphics/asymptote/GUI/GuidesManager.py
-2020/08/06 | 164511 | graphics/asymptote/GUI/icons_rc.py
-2020/08/06 | 23 | graphics/asymptote/GUI/__init__.py
-2020/08/06 | 11528 | graphics/asymptote/GUI/InplaceAddObj.py
-2020/08/06 | 5151 | graphics/asymptote/GUI/labelEditor.py
-2020/08/06 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
-2020/08/06 | 2399 | graphics/asymptote/GUI/PrimitiveShape.py
-2020/08/06 | 9945 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
-2020/08/06 | 6154 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
-2020/08/06 | 2825 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
-2020/08/06 | 7129 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
-2020/08/06 | 2193 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
-2020/08/06 | 4849 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
-2020/08/06 | 4668 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
-2020/08/06 | 56646 | graphics/asymptote/GUI/pyUIClass/window1.py
-2020/08/06 | 57 | graphics/asymptote/GUI/requirements.txt
-2020/08/06 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
-2020/08/06 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
-2020/08/06 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
-2020/08/06 | 802 | graphics/asymptote/GUI/res/icons/android-camera.svg
-2020/08/06 | 695 | graphics/asymptote/GUI/res/icons/android-close.svg
-2020/08/06 | 1319 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
-2020/08/06 | 674 | graphics/asymptote/GUI/res/icons/android-delete.svg
-2020/08/06 | 633 | graphics/asymptote/GUI/res/icons/android-done.svg
-2020/08/06 | 822 | graphics/asymptote/GUI/res/icons/android-expand.svg
-2020/08/06 | 850 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
-2020/08/06 | 1482 | graphics/asymptote/GUI/res/icons/android-hand.svg
-2020/08/06 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
-2020/08/06 | 764 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
-2020/08/06 | 844 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
-2020/08/06 | 806 | graphics/asymptote/GUI/res/icons/android-refresh.svg
-2020/08/06 | 713 | graphics/asymptote/GUI/res/icons/arrow-move.svg
-2020/08/06 | 639 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
-2020/08/06 | 589 | graphics/asymptote/GUI/res/icons/bucket.asy
-2020/08/06 | 1492 | graphics/asymptote/GUI/res/icons/bucket.svg
-2020/08/06 | 111 | graphics/asymptote/GUI/res/icons/center.asy
-2020/08/06 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
-2020/08/06 | 1052 | graphics/asymptote/GUI/res/icons/centerorigin.svg
-2020/08/06 | 892 | graphics/asymptote/GUI/res/icons/center.svg
-2020/08/06 | 780 | graphics/asymptote/GUI/res/icons/check.svg
-2020/08/06 | 1013 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
-2020/08/06 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
-2020/08/06 | 754 | graphics/asymptote/GUI/res/icons/circle.svg
-2020/08/06 | 105 | graphics/asymptote/GUI/res/icons/closedcurve.asy
-2020/08/06 | 1237 | graphics/asymptote/GUI/res/icons/closedcurve.svg
-2020/08/06 | 105 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
-2020/08/06 | 1102 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
-2020/08/06 | 838 | graphics/asymptote/GUI/res/icons/close-round.svg
-2020/08/06 | 1194 | graphics/asymptote/GUI/res/icons/code.svg
-2020/08/06 | 876 | graphics/asymptote/GUI/res/icons/edit.svg
-2020/08/06 | 1003 | graphics/asymptote/GUI/res/icons/eye.svg
-2020/08/06 | 1967 | graphics/asymptote/GUI/res/icons/filledbucket.svg
-2020/08/06 | 1764 | graphics/asymptote/GUI/res/icons/grid.svg
-2020/08/06 | 964 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
-2020/08/06 | 98 | graphics/asymptote/GUI/res/icons/opencurve.asy
-2020/08/06 | 1186 | graphics/asymptote/GUI/res/icons/opencurve.svg
-2020/08/06 | 98 | graphics/asymptote/GUI/res/icons/openpolygon.asy
-2020/08/06 | 1085 | graphics/asymptote/GUI/res/icons/openpolygon.svg
-2020/08/06 | 759 | graphics/asymptote/GUI/res/icons/plus-round.svg
-2020/08/06 | 1711 | graphics/asymptote/GUI/res/icons.qrc
-2020/08/06 | 673 | graphics/asymptote/GUI/res/icons/save.svg
-2020/08/06 | 1920 | graphics/asymptote/GUI/res/icons/social-python.svg
-2020/08/06 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
-2020/08/06 | 284 | graphics/asymptote/GUI/res/icons/text.svg
-2020/08/06 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
-2020/08/06 | 1393 | graphics/asymptote/GUI/SetCustomAnchor.py
-2020/08/06 | 394 | graphics/asymptote/GUI/setup.py
-2020/08/06 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
-2020/08/06 | 3249 | graphics/asymptote/GUI/Widg_addLabel.py
-2020/08/06 | 883 | graphics/asymptote/GUI/Widg_addPolyOpt.py
-2020/08/06 | 1665 | graphics/asymptote/GUI/Widg_editBezier.py
-2020/08/06 | 72687 | graphics/asymptote/GUI/Window1.py
-2020/08/06 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
-2020/08/06 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
-2020/08/06 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
-2020/08/06 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
-2020/08/06 | 2148 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
-2020/08/06 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
-2020/08/06 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
-2020/08/06 | 75576 | graphics/asymptote/GUI/windows/window1.ui
-2020/08/06 | 50600 | graphics/asymptote/GUI/xasy2asy.py
-2020/08/06 | 821 | graphics/asymptote/GUI/xasyArgs.py
-2020/08/06 | 13550 | graphics/asymptote/GUI/xasyBezierInterface.py
-2020/08/06 | 2554 | graphics/asymptote/GUI/xasyFile.py
-2020/08/06 | 5048 | graphics/asymptote/GUI/xasyOptions.py
-2020/08/06 | 503 | graphics/asymptote/GUI/xasy.py
-2020/08/06 | 599 | graphics/asymptote/GUI/xasyStrings.py
-2020/08/06 | 710 | graphics/asymptote/GUI/xasySvg.py
-2020/08/06 | 964 | graphics/asymptote/GUI/xasyTransform.py
-2020/08/06 | 1504 | graphics/asymptote/GUI/xasyUtils.py
-2020/08/06 | 238 | graphics/asymptote/GUI/xasyValidator.py
-2020/08/06 | 12813 | graphics/asymptote/impdatum.cc
-2020/08/06 | 10445 | graphics/asymptote/INSTALL
-2020/08/06 | 15645 | graphics/asymptote/install-sh
-2020/08/06 | 1982 | graphics/asymptote/inst.h
-2020/08/06 | 5505 | graphics/asymptote/interact.cc
-2020/08/06 | 1345 | graphics/asymptote/interact.h
-2020/08/06 | 5733 | graphics/asymptote/item.h
-2020/08/06 | 10072 | graphics/asymptote/jsfile.cc
-2020/08/06 | 2107 | graphics/asymptote/jsfile.h
-2020/08/06 | 609 | graphics/asymptote/keywords.cc
-2020/08/06 | 1253 | graphics/asymptote/keywords.pl
-2020/08/06 | 22345 | graphics/asymptote/knot.cc
-2020/08/06 | 12259 | graphics/asymptote/knot.h
-2020/08/06 | 342 | graphics/asymptote/lexical.h
-2020/08/06 | 83431 | graphics/asymptote/lex.yy.cc
-2020/08/06 | 503734 | graphics/asymptote/libatomic_ops-7.6.10.tar.gz
-2020/08/06 | 35147 | graphics/asymptote/LICENSE
-2020/08/06 | 7639 | graphics/asymptote/LICENSE.LESSER
-2020/08/06 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
-2020/08/06 | 2187 | graphics/asymptote/locate.cc
-2020/08/06 | 577 | graphics/asymptote/locate.h
-2020/08/06 | 5443 | graphics/asymptote/main.cc
-2020/08/06 | 11671 | graphics/asymptote/Makefile.in
-2020/08/06 | 2632 | graphics/asymptote/material.h
-2020/08/06 | 6396 | graphics/asymptote/mathop.h
-2020/08/06 | 4972 | graphics/asymptote/memory.h
-2020/08/06 | 714 | graphics/asymptote/mod.h
-2020/08/06 | 908 | graphics/asymptote/modifier.h
-2020/08/06 | 7435 | graphics/asymptote/name.cc
-2020/08/06 | 5236 | graphics/asymptote/name.h
-2020/08/06 | 4265 | graphics/asymptote/newexp.cc
-2020/08/06 | 1274 | graphics/asymptote/newexp.h
-2020/08/06 | 916 | graphics/asymptote/opcodes.h
-2020/08/06 | 1050 | graphics/asymptote/opsymbols.pl
-2020/08/06 | 5104 | graphics/asymptote/pair.h
-2020/08/06 | 4691 | graphics/asymptote/parser.cc
-2020/08/06 | 1171 | graphics/asymptote/parser.h
-2020/08/06 | 5262 | graphics/asymptote/patches/bison.patch
-2020/08/06 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
-2020/08/06 | 1311 | graphics/asymptote/patches/dvipdf
-2020/08/06 | 113 | graphics/asymptote/patches/fixmem.reg
-2020/08/06 | 1524 | graphics/asymptote/patches/flex.patch
-2020/08/06 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
-2020/08/06 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
-2020/08/06 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
-2020/08/06 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
-2020/08/06 | 1082 | graphics/asymptote/patches/README
-2020/08/06 | 37917 | graphics/asymptote/path3.cc
-2020/08/06 | 10585 | graphics/asymptote/path3.h
-2020/08/06 | 33813 | graphics/asymptote/path.cc
-2020/08/06 | 11627 | graphics/asymptote/path.h
-2020/08/06 | 1594 | graphics/asymptote/pen.cc
-2020/08/06 | 27767 | graphics/asymptote/pen.h
-2020/08/06 | 40578 | graphics/asymptote/picture.cc
-2020/08/06 | 3431 | graphics/asymptote/picture.h
-2020/08/06 | 5250 | graphics/asymptote/pipestream.cc
-2020/08/06 | 2614 | graphics/asymptote/pipestream.h
-2020/08/06 | 138 | graphics/asymptote/Pipfile
-2020/08/06 | 2542 | graphics/asymptote/policy.h
-2020/08/06 | 650 | graphics/asymptote/prcfile.h
-2020/08/06 | 974 | graphics/asymptote/prc/Makefile
-2020/08/06 | 70751 | graphics/asymptote/prc/oPRCFile.cc
-2020/08/06 | 51432 | graphics/asymptote/prc/oPRCFile.h
-2020/08/06 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
-2020/08/06 | 2518 | graphics/asymptote/prc/PRCbitStream.h
-2020/08/06 | 177246 | graphics/asymptote/prc/PRCdouble.cc
-2020/08/06 | 3765 | graphics/asymptote/prc/PRCdouble.h
-2020/08/06 | 30208 | graphics/asymptote/prc/PRC.h
-2020/08/06 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
-2020/08/06 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
-2020/08/06 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
-2020/08/06 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
-2020/08/06 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
-2020/08/06 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
-2020/08/06 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
-2020/08/06 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
-2020/08/06 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
-2020/08/06 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
-2020/08/06 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
-2020/08/06 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
-2020/08/06 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
-2020/08/06 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
-2020/08/06 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
-2020/08/06 | 95 | graphics/asymptote/prc/test.asy
-2020/08/06 | 36243 | graphics/asymptote/prc/test.cc
-2020/08/06 | 66751 | graphics/asymptote/prc/writePRC.cc
-2020/08/06 | 48481 | graphics/asymptote/prc/writePRC.h
-2020/08/06 | 116025 | graphics/asymptote/predicates.cc
-2020/08/06 | 986 | graphics/asymptote/predicates.h
-2020/08/06 | 1236 | graphics/asymptote/primitives.h
-2020/08/06 | 25223 | graphics/asymptote/process.cc
-2020/08/06 | 2982 | graphics/asymptote/process.h
-2020/08/06 | 2378 | graphics/asymptote/profile.py
-2020/08/06 | 9923 | graphics/asymptote/profiler.h
-2020/08/06 | 3265 | graphics/asymptote/program.cc
-2020/08/06 | 2561 | graphics/asymptote/program.h
-2020/08/06 | 18938 | graphics/asymptote/psfile.cc
-2020/08/06 | 8937 | graphics/asymptote/psfile.h
-2020/08/06 | 2505 | graphics/asymptote/README
-2020/08/06 | 1698 | graphics/asymptote/record.cc
-2020/08/06 | 2732 | graphics/asymptote/record.h
-2020/08/06 | 1096 | graphics/asymptote/refaccess.cc
-2020/08/06 | 1936 | graphics/asymptote/refaccess.h
-2020/08/06 | 122922 | graphics/asymptote/ReleaseNotes
-2020/08/06 | 62 | graphics/asymptote/revision.cc
-2020/08/06 | 3441 | graphics/asymptote/rounding.h
-2020/08/06 | 73211 | graphics/asymptote/runarray.cc
-2020/08/06 | 1492 | graphics/asymptote/runarray.h
-2020/08/06 | 48374 | graphics/asymptote/runarray.in
-2020/08/06 | 2661 | graphics/asymptote/runbacktrace.cc
-2020/08/06 | 169 | graphics/asymptote/runbacktrace.h
-2020/08/06 | 831 | graphics/asymptote/runbacktrace.in
-2020/08/06 | 17736 | graphics/asymptote/runfile.cc
-2020/08/06 | 969 | graphics/asymptote/runfile.h
-2020/08/06 | 5925 | graphics/asymptote/runfile.in
-2020/08/06 | 8095 | graphics/asymptote/runhistory.cc
-2020/08/06 | 161 | graphics/asymptote/runhistory.h
-2020/08/06 | 5063 | graphics/asymptote/runhistory.in
-2020/08/06 | 16552 | graphics/asymptote/runlabel.cc
-2020/08/06 | 153 | graphics/asymptote/runlabel.h
-2020/08/06 | 12812 | graphics/asymptote/runlabel.in
-2020/08/06 | 21926 | graphics/asymptote/runmath.cc
-2020/08/06 | 269 | graphics/asymptote/runmath.h
-2020/08/06 | 8856 | graphics/asymptote/runmath.in
-2020/08/06 | 16483 | graphics/asymptote/runpair.cc
-2020/08/06 | 299 | graphics/asymptote/runpair.h
-2020/08/06 | 4156 | graphics/asymptote/runpair.in
-2020/08/06 | 25701 | graphics/asymptote/runpath3d.cc
-2020/08/06 | 186 | graphics/asymptote/runpath3d.h
-2020/08/06 | 8008 | graphics/asymptote/runpath3d.in
-2020/08/06 | 26844 | graphics/asymptote/runpath.cc
-2020/08/06 | 177 | graphics/asymptote/runpath.h
-2020/08/06 | 8439 | graphics/asymptote/runpath.in
-2020/08/06 | 57126 | graphics/asymptote/runpicture.cc
-2020/08/06 | 191 | graphics/asymptote/runpicture.h
-2020/08/06 | 19455 | graphics/asymptote/runpicture.in
-2020/08/06 | 18676 | graphics/asymptote/runstring.cc
-2020/08/06 | 188 | graphics/asymptote/runstring.h
-2020/08/06 | 9804 | graphics/asymptote/runstring.in
-2020/08/06 | 12604 | graphics/asymptote/runsystem.cc
-2020/08/06 | 157 | graphics/asymptote/runsystem.h
-2020/08/06 | 5111 | graphics/asymptote/runsystem.in
-2020/08/06 | 1341 | graphics/asymptote/runtimebase.in
-2020/08/06 | 60454 | graphics/asymptote/runtime.cc
-2020/08/06 | 1163 | graphics/asymptote/runtime.h
-2020/08/06 | 20495 | graphics/asymptote/runtime.in
-2020/08/06 | 7230 | graphics/asymptote/runtime.pl
-2020/08/06 | 13944 | graphics/asymptote/runtriple.cc
-2020/08/06 | 320 | graphics/asymptote/runtriple.h
-2020/08/06 | 2707 | graphics/asymptote/runtriple.in
-2020/08/06 | 2136 | graphics/asymptote/seconds.h
-2020/08/06 | 51869 | graphics/asymptote/settings.cc
-2020/08/06 | 2684 | graphics/asymptote/settings.h
-2020/08/06 | 2894 | graphics/asymptote/shaders.cc
-2020/08/06 | 882 | graphics/asymptote/shaders.h
-2020/08/06 | 6634 | graphics/asymptote/simpson.cc
-2020/08/06 | 14469 | graphics/asymptote/stack.cc
-2020/08/06 | 3295 | graphics/asymptote/stack.h
-2020/08/06 | 951 | graphics/asymptote/statistics.h
-2020/08/06 | 12024 | graphics/asymptote/stm.cc
-2020/08/06 | 4392 | graphics/asymptote/stm.h
-2020/08/06 | 8960 | graphics/asymptote/symbol.cc
-2020/08/06 | 2654 | graphics/asymptote/symbol.h
-2020/08/06 | 2697 | graphics/asymptote/table.h
-2020/08/06 | 620 | graphics/asymptote/tests/arith/integer.asy
-2020/08/06 | 449 | graphics/asymptote/tests/arith/pair.asy
-2020/08/06 | 193 | graphics/asymptote/tests/arith/random.asy
-2020/08/06 | 383 | graphics/asymptote/tests/arith/real.asy
-2020/08/06 | 1710 | graphics/asymptote/tests/arith/roots.asy
-2020/08/06 | 639 | graphics/asymptote/tests/arith/transform.asy
-2020/08/06 | 244 | graphics/asymptote/tests/arith/triple.asy
-2020/08/06 | 936 | graphics/asymptote/tests/array/array.asy
-2020/08/06 | 680 | graphics/asymptote/tests/array/delete.asy
-2020/08/06 | 737 | graphics/asymptote/tests/array/determinant.asy
-2020/08/06 | 1927 | graphics/asymptote/tests/array/fields.asy
-2020/08/06 | 4841 | graphics/asymptote/tests/array/slice.asy
-2020/08/06 | 966 | graphics/asymptote/tests/array/solve.asy
-2020/08/06 | 746 | graphics/asymptote/tests/array/sort.asy
-2020/08/06 | 1096 | graphics/asymptote/tests/array/transpose.asy
-2020/08/06 | 276 | graphics/asymptote/tests/bench/6000circles.asy
-2020/08/06 | 2222 | graphics/asymptote/tests/frames/loop.asy
-2020/08/06 | 202 | graphics/asymptote/tests/frames/stat2.asy
-2020/08/06 | 158 | graphics/asymptote/tests/frames/stat.asy
-2020/08/06 | 62 | graphics/asymptote/tests/gc/array.asy
-2020/08/06 | 102 | graphics/asymptote/tests/gc/file.asy
-2020/08/06 | 54 | graphics/asymptote/tests/gc/funcall.asy
-2020/08/06 | 65 | graphics/asymptote/tests/gc/guide.asy
-2020/08/06 | 143 | graphics/asymptote/tests/gc/label.asy
-2020/08/06 | 124 | graphics/asymptote/tests/gc/path.asy
-2020/08/06 | 72 | graphics/asymptote/tests/gc/pen.asy
-2020/08/06 | 193 | graphics/asymptote/tests/gc/shipout.asy
-2020/08/06 | 77 | graphics/asymptote/tests/gc/string.asy
-2020/08/06 | 129 | graphics/asymptote/tests/gc/struct.asy
-2020/08/06 | 70 | graphics/asymptote/tests/gc/transform.asy
-2020/08/06 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
-2020/08/06 | 11907 | graphics/asymptote/tests/gsl/random.asy
-2020/08/06 | 1209 | graphics/asymptote/tests/imp/unravel.asy
-2020/08/06 | 308 | graphics/asymptote/tests/Makefile
-2020/08/06 | 18 | graphics/asymptote/tests/output/circle.asy
-2020/08/06 | 22 | graphics/asymptote/tests/output/line.asy
-2020/08/06 | 1284 | graphics/asymptote/tests/output/Makefile
-2020/08/06 | 1384 | graphics/asymptote/tests/pic/trans.asy
-2020/08/06 | 236 | graphics/asymptote/tests/string/erase.asy
-2020/08/06 | 182 | graphics/asymptote/tests/string/find.asy
-2020/08/06 | 109 | graphics/asymptote/tests/string/insert.asy
-2020/08/06 | 132 | graphics/asymptote/tests/string/length.asy
-2020/08/06 | 187 | graphics/asymptote/tests/string/rfind.asy
-2020/08/06 | 118 | graphics/asymptote/tests/string/substr.asy
-2020/08/06 | 238 | graphics/asymptote/tests/TestLib.asy
-2020/08/06 | 159 | graphics/asymptote/tests/types/cast.asy
-2020/08/06 | 6503 | graphics/asymptote/tests/types/constructor.asy
-2020/08/06 | 155 | graphics/asymptote/tests/types/ecast.asy
-2020/08/06 | 3375 | graphics/asymptote/tests/types/guide.asy
-2020/08/06 | 224 | graphics/asymptote/tests/types/init.asy
-2020/08/06 | 4242 | graphics/asymptote/tests/types/keyword.asy
-2020/08/06 | 4072 | graphics/asymptote/tests/types/order.asy
-2020/08/06 | 2731 | graphics/asymptote/tests/types/resolve.asy
-2020/08/06 | 308 | graphics/asymptote/tests/types/shadow.asy
-2020/08/06 | 1331 | graphics/asymptote/tests/types/spec.asy
-2020/08/06 | 1189 | graphics/asymptote/tests/types/var.asy
-2020/08/06 | 18384 | graphics/asymptote/texfile.cc
-2020/08/06 | 10701 | graphics/asymptote/texfile.h
-2020/08/06 | 1293 | graphics/asymptote/TODO
-2020/08/06 | 6178 | graphics/asymptote/transform.h
-2020/08/06 | 10224 | graphics/asymptote/tr.cc
-2020/08/06 | 3912 | graphics/asymptote/tr.h
-2020/08/06 | 9574 | graphics/asymptote/triple.h
-2020/08/06 | 14072 | graphics/asymptote/types.cc
-2020/08/06 | 15451 | graphics/asymptote/types.h
-2020/08/06 | 11521 | graphics/asymptote/util.cc
-2020/08/06 | 4602 | graphics/asymptote/util.h
-2020/08/06 | 1976 | graphics/asymptote/varinit.cc
-2020/08/06 | 2012 | graphics/asymptote/varinit.h
-2020/08/06 | 901 | graphics/asymptote/virtualfieldaccess.cc
-2020/08/06 | 2328 | graphics/asymptote/virtualfieldaccess.h
-2020/08/06 | 766 | graphics/asymptote/vm.h
-2020/08/06 | 222 | graphics/asymptote/wce
-2020/08/06 | 2146 | graphics/asymptote/webgl/fragment.glsl
-2020/08/06 | 83897 | graphics/asymptote/webgl/gl.js
-2020/08/06 | 820 | graphics/asymptote/webgl/license
-2020/08/06 | 1446 | graphics/asymptote/webgl/vertex.glsl
-2020/08/06 | 6585 | graphics/asymptote/xstream.h
-2020/08/06 | 15630652 | graphics/asymptote.zip
+2020/11/23 | 242 | graphics/asymptote/BUGS
+2020/11/23 | 1588 | graphics/asymptote/build-scripts/asy-format.el
+2020/11/23 | 210 | graphics/asymptote/build-scripts/asy-indent.el
+2020/11/23 | 1227 | graphics/asymptote/build-scripts/build-asygl
+2020/11/23 | 2482 | graphics/asymptote/build-scripts/build-asymptote
+2020/11/23 | 3507 | graphics/asymptote/build-scripts/build-asymptote.dos
+2020/11/23 | 1578 | graphics/asymptote/build-scripts/cc-format.el
+2020/11/23 | 183 | graphics/asymptote/build-scripts/cc-indent.el
+2020/11/23 | 2181 | graphics/asymptote/build-scripts/HOWTO-MSWindows
+2020/11/23 | 297 | graphics/asymptote/build-scripts/README-binaries
+2020/11/23 | 202 | graphics/asymptote/build-scripts/run-in-indent.el
+2020/11/23 | 31342 | graphics/asymptote/builtin.cc
+2020/11/23 | 1630 | graphics/asymptote/builtin.h
+2020/11/23 | 1151 | graphics/asymptote/callable.cc
+2020/11/23 | 1640 | graphics/asymptote/callable.h
+2020/11/23 | 1183 | graphics/asymptote/camperror.cc
+2020/11/23 | 814 | graphics/asymptote/camperror.h
+2020/11/23 | 13339 | graphics/asymptote/camp.l
+2020/11/23 | 127885 | graphics/asymptote/camp.tab.cc
+2020/11/23 | 4089 | graphics/asymptote/camp.tab.h
+2020/11/23 | 20029 | graphics/asymptote/camp.y
+2020/11/23 | 4612 | graphics/asymptote/castop.h
+2020/11/23 | 1876 | graphics/asymptote/cc-mode2.el
+2020/11/23 | 1440291 | graphics/asymptote/ChangeLog
+2020/11/23 | 7790 | graphics/asymptote/coder.cc
+2020/11/23 | 11642 | graphics/asymptote/coder.h
+2020/11/23 | 1126 | graphics/asymptote/coenv.cc
+2020/11/23 | 908 | graphics/asymptote/coenv.h
+2020/11/23 | 1846 | graphics/asymptote/common.h
+2020/11/23 | 48441 | graphics/asymptote/config.guess
+2020/11/23 | 6951 | graphics/asymptote/config.h.in
+2020/11/23 | 31609 | graphics/asymptote/config.sub
+2020/11/23 | 287885 | graphics/asymptote/configure
+2020/11/23 | 15179 | graphics/asymptote/configure.ac
+2020/11/23 | 3668 | graphics/asymptote/constructor.cc
+2020/11/23 | 20840 | graphics/asymptote/dec.cc
+2020/11/23 | 15822 | graphics/asymptote/dec.h
+2020/11/23 | 5883 | graphics/asymptote/Delaunay.cc
+2020/11/23 | 384 | graphics/asymptote/Delaunay.h
+2020/11/23 | 8184 | graphics/asymptote/doc/asy.1
+2020/11/23 | 1005 | graphics/asymptote/doc/asy.1.begin
+2020/11/23 | 333 | graphics/asymptote/doc/asy.1.end
+2020/11/23 | 2800 | graphics/asymptote/doc/asycolors.sty
+2020/11/23 | 18126 | graphics/asymptote/doc/asy-latex.dtx
+2020/11/23 | 194617 | graphics/asymptote/doc/asy-latex.pdf
+2020/11/23 | 1212778 | graphics/asymptote/doc/asymptote.pdf
+2020/11/23 | 9836 | graphics/asymptote/doc/asymptote.sty
+2020/11/23 | 388699 | graphics/asymptote/doc/asymptote.texi
+2020/11/23 | 121144 | graphics/asymptote/doc/asyRefCard.pdf
+2020/11/23 | 20051 | graphics/asymptote/doc/asyRefCard.tex
+2020/11/23 | 246 | graphics/asymptote/doc/axis3.asy
+2020/11/23 | 416 | graphics/asymptote/doc/bezier2.asy
+2020/11/23 | 81 | graphics/asymptote/doc/bezier.asy
+2020/11/23 | 234 | graphics/asymptote/doc/beziercurve.asy
+2020/11/23 | 41 | graphics/asymptote/doc/bigdiagonal.asy
+2020/11/23 | 306 | graphics/asymptote/doc/binarytreetest.asy
+2020/11/23 | 677 | graphics/asymptote/doc/Bode.asy
+2020/11/23 | 524 | graphics/asymptote/doc/brokenaxis.asy
+2020/11/23 | 1391 | graphics/asymptote/doc/CAD1.asy
+2020/11/23 | 186126 | graphics/asymptote/doc/CAD.pdf
+2020/11/23 | 10196 | graphics/asymptote/doc/CAD.tex
+2020/11/23 | 518 | graphics/asymptote/doc/CDlabel.asy
+2020/11/23 | 4348 | graphics/asymptote/doc/colo-asy.tex
+2020/11/23 | 49 | graphics/asymptote/doc/colons.asy
+2020/11/23 | 1620 | graphics/asymptote/doc/colors.asy
+2020/11/23 | 243 | graphics/asymptote/doc/cube.asy
+2020/11/23 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
+2020/11/23 | 218 | graphics/asymptote/doc/datagraph.asy
+2020/11/23 | 24 | graphics/asymptote/doc/diagonal.asy
+2020/11/23 | 2979 | graphics/asymptote/doc/diatom.asy
+2020/11/23 | 4067 | graphics/asymptote/doc/diatom.csv
+2020/11/23 | 49 | graphics/asymptote/doc/dots.asy
+2020/11/23 | 1051 | graphics/asymptote/doc/eetomumu.asy
+2020/11/23 | 2034 | graphics/asymptote/doc/elliptic.asy
+2020/11/23 | 912 | graphics/asymptote/doc/errorbars.asy
+2020/11/23 | 202 | graphics/asymptote/doc/exp.asy
+2020/11/23 | 343 | graphics/asymptote/doc/externalprc.tex
+2020/11/23 | 19597 | graphics/asymptote/doc/external-proposal.html
+2020/11/23 | 25154 | graphics/asymptote/doc/extra/intro.asy
+2020/11/23 | 40899 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
+2020/11/23 | 63136 | graphics/asymptote/doc/FAQ/asy-faq.info
+2020/11/23 | 9328 | graphics/asymptote/doc/FAQ/bfnnconv.pl
+2020/11/23 | 13663 | graphics/asymptote/doc/FAQ/install-sh
+2020/11/23 | 1000 | graphics/asymptote/doc/FAQ/Makefile
+2020/11/23 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
+2020/11/23 | 9822 | graphics/asymptote/doc/FAQ/m-html.pl
+2020/11/23 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
+2020/11/23 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
+2020/11/23 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
+2020/11/23 | 238 | graphics/asymptote/doc/filegraph.asy
+2020/11/23 | 26 | graphics/asymptote/doc/filegraph.dat
+2020/11/23 | 604 | graphics/asymptote/doc/flow.asy
+2020/11/23 | 897 | graphics/asymptote/doc/flowchartdemo.asy
+2020/11/23 | 464 | graphics/asymptote/doc/GaussianSurface.asy
+2020/11/23 | 376 | graphics/asymptote/doc/generalaxis3.asy
+2020/11/23 | 277 | graphics/asymptote/doc/generalaxis.asy
+2020/11/23 | 754 | graphics/asymptote/doc/graphmarkers.asy
+2020/11/23 | 426 | graphics/asymptote/doc/grid3xyz.asy
+2020/11/23 | 279 | graphics/asymptote/doc/hatch.asy
+2020/11/23 | 423 | graphics/asymptote/doc/helix.asy
+2020/11/23 | 324 | graphics/asymptote/doc/HermiteSpline.asy
+2020/11/23 | 441 | graphics/asymptote/doc/histogram.asy
+2020/11/23 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
+2020/11/23 | 500 | graphics/asymptote/doc/Hobbydir.asy
+2020/11/23 | 378 | graphics/asymptote/doc/icon.asy
+2020/11/23 | 401 | graphics/asymptote/doc/image.asy
+2020/11/23 | 868 | graphics/asymptote/doc/imagecontour.asy
+2020/11/23 | 13663 | graphics/asymptote/doc/install-sh
+2020/11/23 | 357 | graphics/asymptote/doc/irregularcontour.asy
+2020/11/23 | 442 | graphics/asymptote/doc/join3.asy
+2020/11/23 | 261 | graphics/asymptote/doc/join.asy
+2020/11/23 | 417 | graphics/asymptote/doc/knots.asy
+2020/11/23 | 121 | graphics/asymptote/doc/labelsquare.asy
+2020/11/23 | 144 | graphics/asymptote/doc/latexmkrc
+2020/11/23 | 150 | graphics/asymptote/doc/latexmkrc_asydir
+2020/11/23 | 3106 | graphics/asymptote/doc/latexusage.tex
+2020/11/23 | 1008 | graphics/asymptote/doc/leastsquares.asy
+2020/11/23 | 6318 | graphics/asymptote/doc/leastsquares.dat
+2020/11/23 | 397 | graphics/asymptote/doc/legend.asy
+2020/11/23 | 366 | graphics/asymptote/doc/lineargraph0.asy
+2020/11/23 | 373 | graphics/asymptote/doc/lineargraph.asy
+2020/11/23 | 415 | graphics/asymptote/doc/linetype.asy
+2020/11/23 | 423 | graphics/asymptote/doc/log2graph.asy
+2020/11/23 | 262 | graphics/asymptote/doc/loggraph.asy
+2020/11/23 | 382 | graphics/asymptote/doc/loggrid.asy
+2020/11/23 | 480 | graphics/asymptote/doc/logimage.asy
+2020/11/23 | 617 | graphics/asymptote/doc/logo.asy
+2020/11/23 | 314 | graphics/asymptote/doc/logticks.asy
+2020/11/23 | 3023 | graphics/asymptote/doc/Makefile.in
+2020/11/23 | 293 | graphics/asymptote/doc/makepen.asy
+2020/11/23 | 2674 | graphics/asymptote/doc/markers1.asy
+2020/11/23 | 877 | graphics/asymptote/doc/markers2.asy
+2020/11/23 | 288 | graphics/asymptote/doc/mexicanhat.asy
+2020/11/23 | 374 | graphics/asymptote/doc/monthaxis.asy
+2020/11/23 | 458 | graphics/asymptote/doc/multicontour.asy
+2020/11/23 | 3497 | graphics/asymptote/doc/ocg.sty
+2020/11/23 | 115 | graphics/asymptote/doc/onecontour.asy
+2020/11/23 | 240 | graphics/asymptote/doc/parametricgraph.asy
+2020/11/23 | 498 | graphics/asymptote/doc/penfunctionimage.asy
+2020/11/23 | 219 | graphics/asymptote/doc/penimage.asy
+2020/11/23 | 2771 | graphics/asymptote/doc/pixel.pdf
+2020/11/23 | 354 | graphics/asymptote/doc/planes.asy
+2020/11/23 | 465847 | graphics/asymptote/doc/png/asymptote.info
+2020/11/23 | 1469 | graphics/asymptote/doc/png/Makefile.in
+2020/11/23 | 49 | graphics/asymptote/doc/quartercircle.asy
+2020/11/23 | 354 | graphics/asymptote/doc/reloadpdf.tex
+2020/11/23 | 157 | graphics/asymptote/doc/saddle.asy
+2020/11/23 | 355 | graphics/asymptote/doc/scaledgraph.asy
+2020/11/23 | 792 | graphics/asymptote/doc/secondaryaxis.asy
+2020/11/23 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
+2020/11/23 | 256 | graphics/asymptote/doc/shadedtiling.asy
+2020/11/23 | 154 | graphics/asymptote/doc/slopefield1.asy
+2020/11/23 | 52 | graphics/asymptote/doc/square.asy
+2020/11/23 | 341 | graphics/asymptote/doc/subpictures.asy
+2020/11/23 | 123 | graphics/asymptote/doc/superpath.asy
+2020/11/23 | 76885 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+2020/11/23 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
+2020/11/23 | 390 | graphics/asymptote/doc/tile.asy
+2020/11/23 | 396 | graphics/asymptote/doc/triangulate.asy
+2020/11/23 | 186 | graphics/asymptote/doc/unitcircle3.asy
+2020/11/23 | 147 | graphics/asymptote/doc/vectorfield.asy
+2020/11/23 | 1746 | graphics/asymptote/doc/westnile.asy
+2020/11/23 | 4727 | graphics/asymptote/doc/westnile.csv
+2020/11/23 | 880 | graphics/asymptote/doc/xasy.1x
+2020/11/23 | 1851 | graphics/asymptote/drawclipbegin.h
+2020/11/23 | 1197 | graphics/asymptote/drawclipend.h
+2020/11/23 | 11212 | graphics/asymptote/drawelement.h
+2020/11/23 | 4597 | graphics/asymptote/drawfill.cc
+2020/11/23 | 6525 | graphics/asymptote/drawfill.h
+2020/11/23 | 494 | graphics/asymptote/drawgrestore.h
+2020/11/23 | 2880 | graphics/asymptote/drawgroup.h
+2020/11/23 | 464 | graphics/asymptote/drawgsave.h
+2020/11/23 | 3024 | graphics/asymptote/drawimage.h
+2020/11/23 | 6789 | graphics/asymptote/drawlabel.cc
+2020/11/23 | 2134 | graphics/asymptote/drawlabel.h
+2020/11/23 | 770 | graphics/asymptote/drawlayer.h
+2020/11/23 | 5578 | graphics/asymptote/drawpath3.cc
+2020/11/23 | 5811 | graphics/asymptote/drawpath3.h
+2020/11/23 | 3465 | graphics/asymptote/drawpath.cc
+2020/11/23 | 669 | graphics/asymptote/drawpath.h
+2020/11/23 | 23764 | graphics/asymptote/drawsurface.cc
+2020/11/23 | 19915 | graphics/asymptote/drawsurface.h
+2020/11/23 | 1266 | graphics/asymptote/drawverbatim.h
+2020/11/23 | 17987 | graphics/asymptote/entry.cc
+2020/11/23 | 13615 | graphics/asymptote/entry.h
+2020/11/23 | 5441 | graphics/asymptote/env.cc
+2020/11/23 | 1142 | graphics/asymptote/envcompleter.cc
+2020/11/23 | 845 | graphics/asymptote/envcompleter.h
+2020/11/23 | 4570 | graphics/asymptote/env.h
+2020/11/23 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
+2020/11/23 | 2287 | graphics/asymptote/errormsg.cc
+2020/11/23 | 5052 | graphics/asymptote/errormsg.h
+2020/11/23 | 9251 | graphics/asymptote/errors
+2020/11/23 | 6911 | graphics/asymptote/errortest.asy
+2020/11/23 | 43335 | graphics/asymptote/examples/100d.pdb1
+2020/11/23 | 657 | graphics/asymptote/examples/100d.views
+2020/11/23 | 308 | graphics/asymptote/examples/1overx.asy
+2020/11/23 | 4158 | graphics/asymptote/examples/advection.asy
+2020/11/23 | 245 | graphics/asymptote/examples/alignbox.asy
+2020/11/23 | 2832 | graphics/asymptote/examples/alignedaxis.asy
+2020/11/23 | 946 | graphics/asymptote/examples/animations/cube.asy
+2020/11/23 | 160672 | graphics/asymptote/examples/animations/dice.u3d
+2020/11/23 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
+2020/11/23 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
+2020/11/23 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
+2020/11/23 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
+2020/11/23 | 414 | graphics/asymptote/examples/animations/glmovie.asy
+2020/11/23 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
+2020/11/23 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
+2020/11/23 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
+2020/11/23 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
+2020/11/23 | 1247 | graphics/asymptote/examples/animations/slidemovies.asy
+2020/11/23 | 856 | graphics/asymptote/examples/animations/sphere.asy
+2020/11/23 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
+2020/11/23 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
+2020/11/23 | 1120 | graphics/asymptote/examples/animations/wheel.asy
+2020/11/23 | 236 | graphics/asymptote/examples/annotation.asy
+2020/11/23 | 1240 | graphics/asymptote/examples/arrows3.asy
+2020/11/23 | 61 | graphics/asymptote/examples/axialshade.asy
+2020/11/23 | 496 | graphics/asymptote/examples/bars3.asy
+2020/11/23 | 1033 | graphics/asymptote/examples/basealign.asy
+2020/11/23 | 407 | graphics/asymptote/examples/BezierPatch.asy
+2020/11/23 | 581 | graphics/asymptote/examples/BezierSaddle.asy
+2020/11/23 | 1548 | graphics/asymptote/examples/BezierSurface.asy
+2020/11/23 | 199 | graphics/asymptote/examples/BezierTriangle.asy
+2020/11/23 | 154 | graphics/asymptote/examples/billboard.asy
+2020/11/23 | 513 | graphics/asymptote/examples/buildcycle.asy
+2020/11/23 | 233 | graphics/asymptote/examples/cardioid.asy
+2020/11/23 | 485 | graphics/asymptote/examples/cards.asy
+2020/11/23 | 688 | graphics/asymptote/examples/centroidfg.asy
+2020/11/23 | 322 | graphics/asymptote/examples/cheese.asy
+2020/11/23 | 576 | graphics/asymptote/examples/circles.asy
+2020/11/23 | 228 | graphics/asymptote/examples/circumcircle.asy
+2020/11/23 | 762 | graphics/asymptote/examples/clockarray.asy
+2020/11/23 | 264 | graphics/asymptote/examples/coag.asy
+2020/11/23 | 436 | graphics/asymptote/examples/colorpatch.asy
+2020/11/23 | 472 | graphics/asymptote/examples/colorplanes.asy
+2020/11/23 | 739 | graphics/asymptote/examples/condor.asy
+2020/11/23 | 495 | graphics/asymptote/examples/cones.asy
+2020/11/23 | 1778 | graphics/asymptote/examples/conicurv.asy
+2020/11/23 | 254 | graphics/asymptote/examples/contextfonts.asy
+2020/11/23 | 802 | graphics/asymptote/examples/controlsystem.asy
+2020/11/23 | 123 | graphics/asymptote/examples/Coons.asy
+2020/11/23 | 235 | graphics/asymptote/examples/cos2theta.asy
+2020/11/23 | 582 | graphics/asymptote/examples/cos3.asy
+2020/11/23 | 460 | graphics/asymptote/examples/cosaddition.asy
+2020/11/23 | 5537 | graphics/asymptote/examples/cpkcolors.asy
+2020/11/23 | 572 | graphics/asymptote/examples/curvedlabel3.asy
+2020/11/23 | 177 | graphics/asymptote/examples/curvedlabel.asy
+2020/11/23 | 1835 | graphics/asymptote/examples/cyclohexane.asy
+2020/11/23 | 352 | graphics/asymptote/examples/cylinder.asy
+2020/11/23 | 506 | graphics/asymptote/examples/delu.asy
+2020/11/23 | 509 | graphics/asymptote/examples/dimension.asy
+2020/11/23 | 1216 | graphics/asymptote/examples/dragon.asy
+2020/11/23 | 1298 | graphics/asymptote/examples/electromagnetic.asy
+2020/11/23 | 325 | graphics/asymptote/examples/elevation.asy
+2020/11/23 | 398 | graphics/asymptote/examples/epix.asy
+2020/11/23 | 242 | graphics/asymptote/examples/equilateral.asy
+2020/11/23 | 548 | graphics/asymptote/examples/equilchord.asy
+2020/11/23 | 579 | graphics/asymptote/examples/exp3.asy
+2020/11/23 | 519 | graphics/asymptote/examples/extrudedcontour.asy
+2020/11/23 | 498 | graphics/asymptote/examples/fano.asy
+2020/11/23 | 973 | graphics/asymptote/examples/fequlogo.asy
+2020/11/23 | 727 | graphics/asymptote/examples/fermi.asy
+2020/11/23 | 980 | graphics/asymptote/examples/filesurface.asy
+2020/11/23 | 5543 | graphics/asymptote/examples/filesurface.dat
+2020/11/23 | 570 | graphics/asymptote/examples/fillcontour.asy
+2020/11/23 | 4244 | graphics/asymptote/examples/fin.asy
+2020/11/23 | 710 | graphics/asymptote/examples/fjortoft.asy
+2020/11/23 | 558 | graphics/asymptote/examples/floatingdisk.asy
+2020/11/23 | 500 | graphics/asymptote/examples/floor.asy
+2020/11/23 | 683 | graphics/asymptote/examples/fractaltree.asy
+2020/11/23 | 1185 | graphics/asymptote/examples/functionshading.asy
+2020/11/23 | 499 | graphics/asymptote/examples/galleon.asy
+2020/11/23 | 713 | graphics/asymptote/examples/gamma3.asy
+2020/11/23 | 439 | graphics/asymptote/examples/gamma.asy
+2020/11/23 | 679 | graphics/asymptote/examples/genusthree.asy
+2020/11/23 | 1164 | graphics/asymptote/examples/genustwo.asy
+2020/11/23 | 383 | graphics/asymptote/examples/Gouraud.asy
+2020/11/23 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
+2020/11/23 | 76 | graphics/asymptote/examples/grid.asy
+2020/11/23 | 459 | graphics/asymptote/examples/hierarchy.asy
+2020/11/23 | 315 | graphics/asymptote/examples/hyperboloid.asy
+2020/11/23 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
+2020/11/23 | 1111 | graphics/asymptote/examples/imagehistogram.asy
+2020/11/23 | 610 | graphics/asymptote/examples/impact.asy
+2020/11/23 | 598 | graphics/asymptote/examples/integraltest.asy
+2020/11/23 | 4808 | graphics/asymptote/examples/interpolate1.asy
+2020/11/23 | 289 | graphics/asymptote/examples/jump.asy
+2020/11/23 | 1352 | graphics/asymptote/examples/Klein.asy
+2020/11/23 | 182 | graphics/asymptote/examples/label3.asy
+2020/11/23 | 196 | graphics/asymptote/examples/label3ribbon.asy
+2020/11/23 | 187 | graphics/asymptote/examples/label3solid.asy
+2020/11/23 | 632 | graphics/asymptote/examples/label3zoom.asy
+2020/11/23 | 264 | graphics/asymptote/examples/labelbox.asy
+2020/11/23 | 1114 | graphics/asymptote/examples/laserlattice.asy
+2020/11/23 | 136 | graphics/asymptote/examples/latticeshading.asy
+2020/11/23 | 688 | graphics/asymptote/examples/layers.asy
+2020/11/23 | 460 | graphics/asymptote/examples/lever.asy
+2020/11/23 | 654 | graphics/asymptote/examples/limit.asy
+2020/11/23 | 1910 | graphics/asymptote/examples/linearregression.asy
+2020/11/23 | 168 | graphics/asymptote/examples/lines.asy
+2020/11/23 | 1040 | graphics/asymptote/examples/lmfit1.asy
+2020/11/23 | 206 | graphics/asymptote/examples/log.asy
+2020/11/23 | 349 | graphics/asymptote/examples/logdown.asy
+2020/11/23 | 1461 | graphics/asymptote/examples/logo3.asy
+2020/11/23 | 196 | graphics/asymptote/examples/lowint.asy
+2020/11/23 | 657 | graphics/asymptote/examples/lowupint.asy
+2020/11/23 | 479 | graphics/asymptote/examples/magnetic.asy
+2020/11/23 | 896 | graphics/asymptote/examples/markregular.asy
+2020/11/23 | 1968 | graphics/asymptote/examples/mergeExample.asy
+2020/11/23 | 5216 | graphics/asymptote/examples/mosaic.asy
+2020/11/23 | 2504 | graphics/asymptote/examples/mosquito.asy
+2020/11/23 | 1566 | graphics/asymptote/examples/near_earth.asy
+2020/11/23 | 658 | graphics/asymptote/examples/NURBScurve.asy
+2020/11/23 | 1042 | graphics/asymptote/examples/NURBSsphere.asy
+2020/11/23 | 1551 | graphics/asymptote/examples/NURBSsurface.asy
+2020/11/23 | 1251 | graphics/asymptote/examples/odetest.asy
+2020/11/23 | 308 | graphics/asymptote/examples/oneoverx.asy
+2020/11/23 | 861 | graphics/asymptote/examples/orthocenter.asy
+2020/11/23 | 254 | graphics/asymptote/examples/parametricelevation.asy
+2020/11/23 | 407 | graphics/asymptote/examples/parametricsurface.asy
+2020/11/23 | 711 | graphics/asymptote/examples/partialsurface.asy
+2020/11/23 | 1055 | graphics/asymptote/examples/partitionExample.asy
+2020/11/23 | 426 | graphics/asymptote/examples/pathintersectsurface.asy
+2020/11/23 | 3335 | graphics/asymptote/examples/pdb.asy
+2020/11/23 | 361 | graphics/asymptote/examples/phase.asy
+2020/11/23 | 22873 | graphics/asymptote/examples/piicon.png
+2020/11/23 | 362 | graphics/asymptote/examples/pipeintersection.asy
+2020/11/23 | 3857 | graphics/asymptote/examples/pipes.asy
+2020/11/23 | 418 | graphics/asymptote/examples/planeproject.asy
+2020/11/23 | 930 | graphics/asymptote/examples/polararea.asy
+2020/11/23 | 628 | graphics/asymptote/examples/polarcircle.asy
+2020/11/23 | 326 | graphics/asymptote/examples/polardatagraph.asy
+2020/11/23 | 641 | graphics/asymptote/examples/pOrbital.asy
+2020/11/23 | 954 | graphics/asymptote/examples/poster.asy
+2020/11/23 | 58 | graphics/asymptote/examples/progrid.asy
+2020/11/23 | 373 | graphics/asymptote/examples/projectelevation.asy
+2020/11/23 | 427 | graphics/asymptote/examples/projectrevolution.asy
+2020/11/23 | 747 | graphics/asymptote/examples/pseudosphere.asy
+2020/11/23 | 557 | graphics/asymptote/examples/Pythagoras.asy
+2020/11/23 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
+2020/11/23 | 734 | graphics/asymptote/examples/quilt.asy
+2020/11/23 | 345 | graphics/asymptote/examples/rainbow.asy
+2020/11/23 | 78 | graphics/asymptote/examples/randompath3.asy
+2020/11/23 | 1537 | graphics/asymptote/examples/refs.bib
+2020/11/23 | 990 | graphics/asymptote/examples/RiemannSphere.asy
+2020/11/23 | 348 | graphics/asymptote/examples/RiemannSurface.asy
+2020/11/23 | 384 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
+2020/11/23 | 141 | graphics/asymptote/examples/ring.asy
+2020/11/23 | 184 | graphics/asymptote/examples/roll.asy
+2020/11/23 | 1309 | graphics/asymptote/examples/roundpath.asy
+2020/11/23 | 288 | graphics/asymptote/examples/sacone3D.asy
+2020/11/23 | 445 | graphics/asymptote/examples/sacone.asy
+2020/11/23 | 341 | graphics/asymptote/examples/sacylinder3D.asy
+2020/11/23 | 400 | graphics/asymptote/examples/sacylinder.asy
+2020/11/23 | 66 | graphics/asymptote/examples/shade.asy
+2020/11/23 | 111 | graphics/asymptote/examples/shadestroke.asy
+2020/11/23 | 1065 | graphics/asymptote/examples/shellmethod.asy
+2020/11/23 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
+2020/11/23 | 410 | graphics/asymptote/examples/Sierpinski.asy
+2020/11/23 | 821 | graphics/asymptote/examples/SierpinskiGasket.asy
+2020/11/23 | 2398 | graphics/asymptote/examples/SierpinskiSponge.asy
+2020/11/23 | 327 | graphics/asymptote/examples/sin1x.asy
+2020/11/23 | 579 | graphics/asymptote/examples/sin3.asy
+2020/11/23 | 591 | graphics/asymptote/examples/sinc.asy
+2020/11/23 | 378 | graphics/asymptote/examples/sinxlex.asy
+2020/11/23 | 3358 | graphics/asymptote/examples/slidedemo.asy
+2020/11/23 | 341 | graphics/asymptote/examples/slidedemo_.bbl
+2020/11/23 | 2023 | graphics/asymptote/examples/slope.asy
+2020/11/23 | 520 | graphics/asymptote/examples/smoothelevation.asy
+2020/11/23 | 2680 | graphics/asymptote/examples/soccerball.asy
+2020/11/23 | 2360 | graphics/asymptote/examples/spectrum.asy
+2020/11/23 | 141 | graphics/asymptote/examples/sphere.asy
+2020/11/23 | 150 | graphics/asymptote/examples/spheresilhouette.asy
+2020/11/23 | 162 | graphics/asymptote/examples/sphereskeleton.asy
+2020/11/23 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
+2020/11/23 | 424 | graphics/asymptote/examples/spiral3.asy
+2020/11/23 | 210 | graphics/asymptote/examples/spiral.asy
+2020/11/23 | 608 | graphics/asymptote/examples/spline.asy
+2020/11/23 | 2191 | graphics/asymptote/examples/splitpatch.asy
+2020/11/23 | 38 | graphics/asymptote/examples/spring0.asy
+2020/11/23 | 43 | graphics/asymptote/examples/spring2.asy
+2020/11/23 | 667 | graphics/asymptote/examples/spring.asy
+2020/11/23 | 674 | graphics/asymptote/examples/sqrtx01.asy
+2020/11/23 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
+2020/11/23 | 145 | graphics/asymptote/examples/star.asy
+2020/11/23 | 162 | graphics/asymptote/examples/stereoscopic.asy
+2020/11/23 | 59 | graphics/asymptote/examples/stroke3.asy
+2020/11/23 | 315 | graphics/asymptote/examples/strokepath.asy
+2020/11/23 | 175 | graphics/asymptote/examples/strokeshade.asy
+2020/11/23 | 198 | graphics/asymptote/examples/tanh.asy
+2020/11/23 | 13901 | graphics/asymptote/examples/teapot.asy
+2020/11/23 | 303 | graphics/asymptote/examples/tensor.asy
+2020/11/23 | 547 | graphics/asymptote/examples/tetra.asy
+2020/11/23 | 312 | graphics/asymptote/examples/textpath.asy
+2020/11/23 | 8429 | graphics/asymptote/examples/thermodynamics.asy
+2020/11/23 | 576 | graphics/asymptote/examples/threeviews.asy
+2020/11/23 | 104 | graphics/asymptote/examples/tiling.asy
+2020/11/23 | 419 | graphics/asymptote/examples/torus.asy
+2020/11/23 | 246 | graphics/asymptote/examples/transparency.asy
+2020/11/23 | 250 | graphics/asymptote/examples/transparentCubes.asy
+2020/11/23 | 602 | graphics/asymptote/examples/treetest.asy
+2020/11/23 | 589 | graphics/asymptote/examples/trefoilknot.asy
+2020/11/23 | 972 | graphics/asymptote/examples/triads.asy
+2020/11/23 | 207 | graphics/asymptote/examples/triangle.asy
+2020/11/23 | 441 | graphics/asymptote/examples/triangles.asy
+2020/11/23 | 251 | graphics/asymptote/examples/triceratops.asy
+2020/11/23 | 291 | graphics/asymptote/examples/trumpet.asy
+2020/11/23 | 2101 | graphics/asymptote/examples/truncatedIcosahedron.asy
+2020/11/23 | 40665 | graphics/asymptote/examples/tvgen.asy
+2020/11/23 | 868 | graphics/asymptote/examples/twistedtubes.asy
+2020/11/23 | 26096 | graphics/asymptote/examples/uhrturm.obj
+2020/11/23 | 322 | graphics/asymptote/examples/unitcircle.asy
+2020/11/23 | 430 | graphics/asymptote/examples/unitoctant.asy
+2020/11/23 | 714 | graphics/asymptote/examples/unitoctantx.asy
+2020/11/23 | 199 | graphics/asymptote/examples/upint.asy
+2020/11/23 | 525 | graphics/asymptote/examples/vectorfield3.asy
+2020/11/23 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
+2020/11/23 | 839 | graphics/asymptote/examples/venn3.asy
+2020/11/23 | 626 | graphics/asymptote/examples/venn.asy
+2020/11/23 | 802 | graphics/asymptote/examples/vertexshading.asy
+2020/11/23 | 360 | graphics/asymptote/examples/washer.asy
+2020/11/23 | 1010 | graphics/asymptote/examples/washermethod.asy
+2020/11/23 | 628 | graphics/asymptote/examples/wedge.asy
+2020/11/23 | 1036 | graphics/asymptote/examples/workcone.asy
+2020/11/23 | 978 | graphics/asymptote/examples/worksheet.asy
+2020/11/23 | 2626 | graphics/asymptote/examples/worldmap.asy
+2020/11/23 | 1261761 | graphics/asymptote/examples/worldmap.dat
+2020/11/23 | 580 | graphics/asymptote/examples/xsin1x.asy
+2020/11/23 | 3739 | graphics/asymptote/examples/xstitch.asy
+2020/11/23 | 743 | graphics/asymptote/examples/xxsq01.asy
+2020/11/23 | 866 | graphics/asymptote/examples/xxsq01x-1.asy
+2020/11/23 | 825 | graphics/asymptote/examples/xxsq01y.asy
+2020/11/23 | 222 | graphics/asymptote/examples/yingyang.asy
+2020/11/23 | 33828 | graphics/asymptote/exp.cc
+2020/11/23 | 28783 | graphics/asymptote/exp.h
+2020/11/23 | 119 | graphics/asymptote/fftw++asy.cc
+2020/11/23 | 1694 | graphics/asymptote/fftw++.cc
+2020/11/23 | 44472 | graphics/asymptote/fftw++.h
+2020/11/23 | 4861 | graphics/asymptote/fileio.cc
+2020/11/23 | 19700 | graphics/asymptote/fileio.h
+2020/11/23 | 1245 | graphics/asymptote/findsym.pl
+2020/11/23 | 1020 | graphics/asymptote/flatguide.cc
+2020/11/23 | 4209 | graphics/asymptote/flatguide.h
+2020/11/23 | 654 | graphics/asymptote/fpu.h
+2020/11/23 | 2164 | graphics/asymptote/frame.h
+2020/11/23 | 7919 | graphics/asymptote/fundec.cc
+2020/11/23 | 4341 | graphics/asymptote/fundec.h
+2020/11/23 | 1160528 | graphics/asymptote/gc-8.0.4.tar.gz
+2020/11/23 | 3153 | graphics/asymptote/genv.cc
+2020/11/23 | 1626 | graphics/asymptote/genv.h
+2020/11/23 | 4520 | graphics/asymptote/getopt1.c
+2020/11/23 | 30147 | graphics/asymptote/getopt.c
+2020/11/23 | 6650 | graphics/asymptote/getopt.h
+2020/11/23 | 202 | graphics/asymptote/glew.c
+2020/11/23 | 1235777 | graphics/asymptote/GL/glew.c
+2020/11/23 | 1186601 | graphics/asymptote/GL/glew.h
+2020/11/23 | 73435 | graphics/asymptote/GL/glxew.h
+2020/11/23 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
+2020/11/23 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
+2020/11/23 | 46026 | graphics/asymptote/glrender.cc
+2020/11/23 | 9243 | graphics/asymptote/glrender.h
+2020/11/23 | 63314 | graphics/asymptote/GL/wglew.h
+2020/11/23 | 50437 | graphics/asymptote/gsl.cc
+2020/11/23 | 22 | graphics/asymptote/GUI/configs/__init__.py
+2020/11/23 | 1148 | graphics/asymptote/GUI/configs/xasyconfig.cson
+2020/11/23 | 395 | graphics/asymptote/GUI/configs/xasykeymap.cson
+2020/11/23 | 3503 | graphics/asymptote/GUI/CustMatTransform.py
+2020/11/23 | 131 | graphics/asymptote/GUI/DebugFlags.py
+2020/11/23 | 1149 | graphics/asymptote/guide.cc
+2020/11/23 | 294 | graphics/asymptote/guideflags.h
+2020/11/23 | 6725 | graphics/asymptote/guide.h
+2020/11/23 | 1724 | graphics/asymptote/GUI/GuidesManager.py
+2020/11/23 | 164511 | graphics/asymptote/GUI/icons_rc.py
+2020/11/23 | 23 | graphics/asymptote/GUI/__init__.py
+2020/11/23 | 11528 | graphics/asymptote/GUI/InplaceAddObj.py
+2020/11/23 | 5151 | graphics/asymptote/GUI/labelEditor.py
+2020/11/23 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
+2020/11/23 | 2399 | graphics/asymptote/GUI/PrimitiveShape.py
+2020/11/23 | 9945 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
+2020/11/23 | 6154 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
+2020/11/23 | 2825 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
+2020/11/23 | 7129 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
+2020/11/23 | 2193 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
+2020/11/23 | 4849 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
+2020/11/23 | 4668 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
+2020/11/23 | 56646 | graphics/asymptote/GUI/pyUIClass/window1.py
+2020/11/23 | 57 | graphics/asymptote/GUI/requirements.txt
+2020/11/23 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
+2020/11/23 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
+2020/11/23 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
+2020/11/23 | 802 | graphics/asymptote/GUI/res/icons/android-camera.svg
+2020/11/23 | 695 | graphics/asymptote/GUI/res/icons/android-close.svg
+2020/11/23 | 1319 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
+2020/11/23 | 674 | graphics/asymptote/GUI/res/icons/android-delete.svg
+2020/11/23 | 633 | graphics/asymptote/GUI/res/icons/android-done.svg
+2020/11/23 | 822 | graphics/asymptote/GUI/res/icons/android-expand.svg
+2020/11/23 | 850 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
+2020/11/23 | 1482 | graphics/asymptote/GUI/res/icons/android-hand.svg
+2020/11/23 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
+2020/11/23 | 764 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
+2020/11/23 | 844 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
+2020/11/23 | 806 | graphics/asymptote/GUI/res/icons/android-refresh.svg
+2020/11/23 | 713 | graphics/asymptote/GUI/res/icons/arrow-move.svg
+2020/11/23 | 639 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
+2020/11/23 | 589 | graphics/asymptote/GUI/res/icons/bucket.asy
+2020/11/23 | 1492 | graphics/asymptote/GUI/res/icons/bucket.svg
+2020/11/23 | 111 | graphics/asymptote/GUI/res/icons/center.asy
+2020/11/23 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
+2020/11/23 | 1052 | graphics/asymptote/GUI/res/icons/centerorigin.svg
+2020/11/23 | 892 | graphics/asymptote/GUI/res/icons/center.svg
+2020/11/23 | 780 | graphics/asymptote/GUI/res/icons/check.svg
+2020/11/23 | 1013 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
+2020/11/23 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
+2020/11/23 | 754 | graphics/asymptote/GUI/res/icons/circle.svg
+2020/11/23 | 105 | graphics/asymptote/GUI/res/icons/closedcurve.asy
+2020/11/23 | 1237 | graphics/asymptote/GUI/res/icons/closedcurve.svg
+2020/11/23 | 105 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
+2020/11/23 | 1102 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
+2020/11/23 | 838 | graphics/asymptote/GUI/res/icons/close-round.svg
+2020/11/23 | 1194 | graphics/asymptote/GUI/res/icons/code.svg
+2020/11/23 | 876 | graphics/asymptote/GUI/res/icons/edit.svg
+2020/11/23 | 1003 | graphics/asymptote/GUI/res/icons/eye.svg
+2020/11/23 | 1967 | graphics/asymptote/GUI/res/icons/filledbucket.svg
+2020/11/23 | 1764 | graphics/asymptote/GUI/res/icons/grid.svg
+2020/11/23 | 964 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
+2020/11/23 | 98 | graphics/asymptote/GUI/res/icons/opencurve.asy
+2020/11/23 | 1186 | graphics/asymptote/GUI/res/icons/opencurve.svg
+2020/11/23 | 98 | graphics/asymptote/GUI/res/icons/openpolygon.asy
+2020/11/23 | 1085 | graphics/asymptote/GUI/res/icons/openpolygon.svg
+2020/11/23 | 759 | graphics/asymptote/GUI/res/icons/plus-round.svg
+2020/11/23 | 1711 | graphics/asymptote/GUI/res/icons.qrc
+2020/11/23 | 673 | graphics/asymptote/GUI/res/icons/save.svg
+2020/11/23 | 1920 | graphics/asymptote/GUI/res/icons/social-python.svg
+2020/11/23 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
+2020/11/23 | 284 | graphics/asymptote/GUI/res/icons/text.svg
+2020/11/23 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
+2020/11/23 | 1393 | graphics/asymptote/GUI/SetCustomAnchor.py
+2020/11/23 | 394 | graphics/asymptote/GUI/setup.py
+2020/11/23 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
+2020/11/23 | 3249 | graphics/asymptote/GUI/Widg_addLabel.py
+2020/11/23 | 883 | graphics/asymptote/GUI/Widg_addPolyOpt.py
+2020/11/23 | 1665 | graphics/asymptote/GUI/Widg_editBezier.py
+2020/11/23 | 72687 | graphics/asymptote/GUI/Window1.py
+2020/11/23 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
+2020/11/23 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
+2020/11/23 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
+2020/11/23 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
+2020/11/23 | 2148 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
+2020/11/23 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
+2020/11/23 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
+2020/11/23 | 75576 | graphics/asymptote/GUI/windows/window1.ui
+2020/11/23 | 50600 | graphics/asymptote/GUI/xasy2asy.py
+2020/11/23 | 821 | graphics/asymptote/GUI/xasyArgs.py
+2020/11/23 | 13550 | graphics/asymptote/GUI/xasyBezierInterface.py
+2020/11/23 | 2554 | graphics/asymptote/GUI/xasyFile.py
+2020/11/23 | 5048 | graphics/asymptote/GUI/xasyOptions.py
+2020/11/23 | 503 | graphics/asymptote/GUI/xasy.py
+2020/11/23 | 599 | graphics/asymptote/GUI/xasyStrings.py
+2020/11/23 | 710 | graphics/asymptote/GUI/xasySvg.py
+2020/11/23 | 964 | graphics/asymptote/GUI/xasyTransform.py
+2020/11/23 | 1504 | graphics/asymptote/GUI/xasyUtils.py
+2020/11/23 | 238 | graphics/asymptote/GUI/xasyValidator.py
+2020/11/23 | 12813 | graphics/asymptote/impdatum.cc
+2020/11/23 | 10445 | graphics/asymptote/INSTALL
+2020/11/23 | 15645 | graphics/asymptote/install-sh
+2020/11/23 | 1982 | graphics/asymptote/inst.h
+2020/11/23 | 5505 | graphics/asymptote/interact.cc
+2020/11/23 | 1345 | graphics/asymptote/interact.h
+2020/11/23 | 5733 | graphics/asymptote/item.h
+2020/11/23 | 10072 | graphics/asymptote/jsfile.cc
+2020/11/23 | 2107 | graphics/asymptote/jsfile.h
+2020/11/23 | 609 | graphics/asymptote/keywords.cc
+2020/11/23 | 1253 | graphics/asymptote/keywords.pl
+2020/11/23 | 22345 | graphics/asymptote/knot.cc
+2020/11/23 | 12259 | graphics/asymptote/knot.h
+2020/11/23 | 342 | graphics/asymptote/lexical.h
+2020/11/23 | 83431 | graphics/asymptote/lex.yy.cc
+2020/11/23 | 503734 | graphics/asymptote/libatomic_ops-7.6.10.tar.gz
+2020/11/23 | 35147 | graphics/asymptote/LICENSE
+2020/11/23 | 7639 | graphics/asymptote/LICENSE.LESSER
+2020/11/23 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
+2020/11/23 | 2194 | graphics/asymptote/locate.cc
+2020/11/23 | 631 | graphics/asymptote/locate.h
+2020/11/23 | 5443 | graphics/asymptote/main.cc
+2020/11/23 | 11672 | graphics/asymptote/Makefile.in
+2020/11/23 | 2632 | graphics/asymptote/material.h
+2020/11/23 | 6396 | graphics/asymptote/mathop.h
+2020/11/23 | 4972 | graphics/asymptote/memory.h
+2020/11/23 | 714 | graphics/asymptote/mod.h
+2020/11/23 | 908 | graphics/asymptote/modifier.h
+2020/11/23 | 7435 | graphics/asymptote/name.cc
+2020/11/23 | 5236 | graphics/asymptote/name.h
+2020/11/23 | 4265 | graphics/asymptote/newexp.cc
+2020/11/23 | 1274 | graphics/asymptote/newexp.h
+2020/11/23 | 916 | graphics/asymptote/opcodes.h
+2020/11/23 | 1050 | graphics/asymptote/opsymbols.pl
+2020/11/23 | 5104 | graphics/asymptote/pair.h
+2020/11/23 | 4847 | graphics/asymptote/parser.cc
+2020/11/23 | 1171 | graphics/asymptote/parser.h
+2020/11/23 | 5262 | graphics/asymptote/patches/bison.patch
+2020/11/23 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
+2020/11/23 | 1311 | graphics/asymptote/patches/dvipdf
+2020/11/23 | 113 | graphics/asymptote/patches/fixmem.reg
+2020/11/23 | 1524 | graphics/asymptote/patches/flex.patch
+2020/11/23 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
+2020/11/23 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
+2020/11/23 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
+2020/11/23 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
+2020/11/23 | 1082 | graphics/asymptote/patches/README
+2020/11/23 | 37917 | graphics/asymptote/path3.cc
+2020/11/23 | 10585 | graphics/asymptote/path3.h
+2020/11/23 | 33813 | graphics/asymptote/path.cc
+2020/11/23 | 11627 | graphics/asymptote/path.h
+2020/11/23 | 1594 | graphics/asymptote/pen.cc
+2020/11/23 | 27767 | graphics/asymptote/pen.h
+2020/11/23 | 40657 | graphics/asymptote/picture.cc
+2020/11/23 | 3431 | graphics/asymptote/picture.h
+2020/11/23 | 5250 | graphics/asymptote/pipestream.cc
+2020/11/23 | 2614 | graphics/asymptote/pipestream.h
+2020/11/23 | 138 | graphics/asymptote/Pipfile
+2020/11/23 | 2542 | graphics/asymptote/policy.h
+2020/11/23 | 650 | graphics/asymptote/prcfile.h
+2020/11/23 | 974 | graphics/asymptote/prc/Makefile
+2020/11/23 | 70751 | graphics/asymptote/prc/oPRCFile.cc
+2020/11/23 | 51432 | graphics/asymptote/prc/oPRCFile.h
+2020/11/23 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
+2020/11/23 | 2518 | graphics/asymptote/prc/PRCbitStream.h
+2020/11/23 | 177246 | graphics/asymptote/prc/PRCdouble.cc
+2020/11/23 | 3765 | graphics/asymptote/prc/PRCdouble.h
+2020/11/23 | 30208 | graphics/asymptote/prc/PRC.h
+2020/11/23 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
+2020/11/23 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
+2020/11/23 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
+2020/11/23 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
+2020/11/23 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
+2020/11/23 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
+2020/11/23 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
+2020/11/23 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
+2020/11/23 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
+2020/11/23 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
+2020/11/23 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
+2020/11/23 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
+2020/11/23 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
+2020/11/23 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
+2020/11/23 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
+2020/11/23 | 95 | graphics/asymptote/prc/test.asy
+2020/11/23 | 36243 | graphics/asymptote/prc/test.cc
+2020/11/23 | 66751 | graphics/asymptote/prc/writePRC.cc
+2020/11/23 | 48481 | graphics/asymptote/prc/writePRC.h
+2020/11/23 | 116025 | graphics/asymptote/predicates.cc
+2020/11/23 | 986 | graphics/asymptote/predicates.h
+2020/11/23 | 1236 | graphics/asymptote/primitives.h
+2020/11/23 | 25223 | graphics/asymptote/process.cc
+2020/11/23 | 2982 | graphics/asymptote/process.h
+2020/11/23 | 2378 | graphics/asymptote/profile.py
+2020/11/23 | 9923 | graphics/asymptote/profiler.h
+2020/11/23 | 3265 | graphics/asymptote/program.cc
+2020/11/23 | 2561 | graphics/asymptote/program.h
+2020/11/23 | 18938 | graphics/asymptote/psfile.cc
+2020/11/23 | 8937 | graphics/asymptote/psfile.h
+2020/11/23 | 2505 | graphics/asymptote/README
+2020/11/23 | 1698 | graphics/asymptote/record.cc
+2020/11/23 | 2732 | graphics/asymptote/record.h
+2020/11/23 | 1096 | graphics/asymptote/refaccess.cc
+2020/11/23 | 1936 | graphics/asymptote/refaccess.h
+2020/11/23 | 124164 | graphics/asymptote/ReleaseNotes
+2020/11/23 | 62 | graphics/asymptote/revision.cc
+2020/11/23 | 3441 | graphics/asymptote/rounding.h
+2020/11/23 | 73254 | graphics/asymptote/runarray.cc
+2020/11/23 | 1492 | graphics/asymptote/runarray.h
+2020/11/23 | 48417 | graphics/asymptote/runarray.in
+2020/11/23 | 2661 | graphics/asymptote/runbacktrace.cc
+2020/11/23 | 169 | graphics/asymptote/runbacktrace.h
+2020/11/23 | 831 | graphics/asymptote/runbacktrace.in
+2020/11/23 | 17690 | graphics/asymptote/runfile.cc
+2020/11/23 | 969 | graphics/asymptote/runfile.h
+2020/11/23 | 5879 | graphics/asymptote/runfile.in
+2020/11/23 | 8096 | graphics/asymptote/runhistory.cc
+2020/11/23 | 161 | graphics/asymptote/runhistory.h
+2020/11/23 | 5064 | graphics/asymptote/runhistory.in
+2020/11/23 | 15829 | graphics/asymptote/runlabel.cc
+2020/11/23 | 153 | graphics/asymptote/runlabel.h
+2020/11/23 | 12089 | graphics/asymptote/runlabel.in
+2020/11/23 | 21926 | graphics/asymptote/runmath.cc
+2020/11/23 | 269 | graphics/asymptote/runmath.h
+2020/11/23 | 8856 | graphics/asymptote/runmath.in
+2020/11/23 | 16483 | graphics/asymptote/runpair.cc
+2020/11/23 | 299 | graphics/asymptote/runpair.h
+2020/11/23 | 4156 | graphics/asymptote/runpair.in
+2020/11/23 | 25701 | graphics/asymptote/runpath3d.cc
+2020/11/23 | 186 | graphics/asymptote/runpath3d.h
+2020/11/23 | 8008 | graphics/asymptote/runpath3d.in
+2020/11/23 | 26844 | graphics/asymptote/runpath.cc
+2020/11/23 | 177 | graphics/asymptote/runpath.h
+2020/11/23 | 8439 | graphics/asymptote/runpath.in
+2020/11/23 | 57126 | graphics/asymptote/runpicture.cc
+2020/11/23 | 191 | graphics/asymptote/runpicture.h
+2020/11/23 | 19455 | graphics/asymptote/runpicture.in
+2020/11/23 | 18739 | graphics/asymptote/runstring.cc
+2020/11/23 | 188 | graphics/asymptote/runstring.h
+2020/11/23 | 9867 | graphics/asymptote/runstring.in
+2020/11/23 | 12604 | graphics/asymptote/runsystem.cc
+2020/11/23 | 157 | graphics/asymptote/runsystem.h
+2020/11/23 | 5111 | graphics/asymptote/runsystem.in
+2020/11/23 | 1341 | graphics/asymptote/runtimebase.in
+2020/11/23 | 60866 | graphics/asymptote/runtime.cc
+2020/11/23 | 1163 | graphics/asymptote/runtime.h
+2020/11/23 | 20622 | graphics/asymptote/runtime.in
+2020/11/23 | 7230 | graphics/asymptote/runtime.pl
+2020/11/23 | 13944 | graphics/asymptote/runtriple.cc
+2020/11/23 | 320 | graphics/asymptote/runtriple.h
+2020/11/23 | 2707 | graphics/asymptote/runtriple.in
+2020/11/23 | 2136 | graphics/asymptote/seconds.h
+2020/11/23 | 52167 | graphics/asymptote/settings.cc
+2020/11/23 | 2684 | graphics/asymptote/settings.h
+2020/11/23 | 2894 | graphics/asymptote/shaders.cc
+2020/11/23 | 882 | graphics/asymptote/shaders.h
+2020/11/23 | 6634 | graphics/asymptote/simpson.cc
+2020/11/23 | 14469 | graphics/asymptote/stack.cc
+2020/11/23 | 3295 | graphics/asymptote/stack.h
+2020/11/23 | 951 | graphics/asymptote/statistics.h
+2020/11/23 | 12024 | graphics/asymptote/stm.cc
+2020/11/23 | 4392 | graphics/asymptote/stm.h
+2020/11/23 | 8960 | graphics/asymptote/symbol.cc
+2020/11/23 | 2654 | graphics/asymptote/symbol.h
+2020/11/23 | 2697 | graphics/asymptote/table.h
+2020/11/23 | 620 | graphics/asymptote/tests/arith/integer.asy
+2020/11/23 | 449 | graphics/asymptote/tests/arith/pair.asy
+2020/11/23 | 193 | graphics/asymptote/tests/arith/random.asy
+2020/11/23 | 383 | graphics/asymptote/tests/arith/real.asy
+2020/11/23 | 1710 | graphics/asymptote/tests/arith/roots.asy
+2020/11/23 | 639 | graphics/asymptote/tests/arith/transform.asy
+2020/11/23 | 244 | graphics/asymptote/tests/arith/triple.asy
+2020/11/23 | 936 | graphics/asymptote/tests/array/array.asy
+2020/11/23 | 680 | graphics/asymptote/tests/array/delete.asy
+2020/11/23 | 737 | graphics/asymptote/tests/array/determinant.asy
+2020/11/23 | 1927 | graphics/asymptote/tests/array/fields.asy
+2020/11/23 | 4841 | graphics/asymptote/tests/array/slice.asy
+2020/11/23 | 966 | graphics/asymptote/tests/array/solve.asy
+2020/11/23 | 746 | graphics/asymptote/tests/array/sort.asy
+2020/11/23 | 1096 | graphics/asymptote/tests/array/transpose.asy
+2020/11/23 | 276 | graphics/asymptote/tests/bench/6000circles.asy
+2020/11/23 | 2222 | graphics/asymptote/tests/frames/loop.asy
+2020/11/23 | 202 | graphics/asymptote/tests/frames/stat2.asy
+2020/11/23 | 158 | graphics/asymptote/tests/frames/stat.asy
+2020/11/23 | 62 | graphics/asymptote/tests/gc/array.asy
+2020/11/23 | 102 | graphics/asymptote/tests/gc/file.asy
+2020/11/23 | 54 | graphics/asymptote/tests/gc/funcall.asy
+2020/11/23 | 65 | graphics/asymptote/tests/gc/guide.asy
+2020/11/23 | 143 | graphics/asymptote/tests/gc/label.asy
+2020/11/23 | 124 | graphics/asymptote/tests/gc/path.asy
+2020/11/23 | 72 | graphics/asymptote/tests/gc/pen.asy
+2020/11/23 | 193 | graphics/asymptote/tests/gc/shipout.asy
+2020/11/23 | 77 | graphics/asymptote/tests/gc/string.asy
+2020/11/23 | 129 | graphics/asymptote/tests/gc/struct.asy
+2020/11/23 | 70 | graphics/asymptote/tests/gc/transform.asy
+2020/11/23 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
+2020/11/23 | 11907 | graphics/asymptote/tests/gsl/random.asy
+2020/11/23 | 1209 | graphics/asymptote/tests/imp/unravel.asy
+2020/11/23 | 308 | graphics/asymptote/tests/Makefile
+2020/11/23 | 18 | graphics/asymptote/tests/output/circle.asy
+2020/11/23 | 22 | graphics/asymptote/tests/output/line.asy
+2020/11/23 | 1284 | graphics/asymptote/tests/output/Makefile
+2020/11/23 | 1384 | graphics/asymptote/tests/pic/trans.asy
+2020/11/23 | 236 | graphics/asymptote/tests/string/erase.asy
+2020/11/23 | 182 | graphics/asymptote/tests/string/find.asy
+2020/11/23 | 109 | graphics/asymptote/tests/string/insert.asy
+2020/11/23 | 132 | graphics/asymptote/tests/string/length.asy
+2020/11/23 | 187 | graphics/asymptote/tests/string/rfind.asy
+2020/11/23 | 118 | graphics/asymptote/tests/string/substr.asy
+2020/11/23 | 238 | graphics/asymptote/tests/TestLib.asy
+2020/11/23 | 159 | graphics/asymptote/tests/types/cast.asy
+2020/11/23 | 6503 | graphics/asymptote/tests/types/constructor.asy
+2020/11/23 | 155 | graphics/asymptote/tests/types/ecast.asy
+2020/11/23 | 3375 | graphics/asymptote/tests/types/guide.asy
+2020/11/23 | 224 | graphics/asymptote/tests/types/init.asy
+2020/11/23 | 4242 | graphics/asymptote/tests/types/keyword.asy
+2020/11/23 | 4072 | graphics/asymptote/tests/types/order.asy
+2020/11/23 | 2731 | graphics/asymptote/tests/types/resolve.asy
+2020/11/23 | 308 | graphics/asymptote/tests/types/shadow.asy
+2020/11/23 | 1331 | graphics/asymptote/tests/types/spec.asy
+2020/11/23 | 1189 | graphics/asymptote/tests/types/var.asy
+2020/11/23 | 18384 | graphics/asymptote/texfile.cc
+2020/11/23 | 11217 | graphics/asymptote/texfile.h
+2020/11/23 | 1293 | graphics/asymptote/TODO
+2020/11/23 | 6288 | graphics/asymptote/transform.h
+2020/11/23 | 10224 | graphics/asymptote/tr.cc
+2020/11/23 | 3912 | graphics/asymptote/tr.h
+2020/11/23 | 9574 | graphics/asymptote/triple.h
+2020/11/23 | 14072 | graphics/asymptote/types.cc
+2020/11/23 | 15451 | graphics/asymptote/types.h
+2020/11/23 | 11521 | graphics/asymptote/util.cc
+2020/11/23 | 4602 | graphics/asymptote/util.h
+2020/11/23 | 1976 | graphics/asymptote/varinit.cc
+2020/11/23 | 2012 | graphics/asymptote/varinit.h
+2020/11/23 | 901 | graphics/asymptote/virtualfieldaccess.cc
+2020/11/23 | 2328 | graphics/asymptote/virtualfieldaccess.h
+2020/11/23 | 766 | graphics/asymptote/vm.h
+2020/11/23 | 222 | graphics/asymptote/wce
+2020/11/23 | 2146 | graphics/asymptote/webgl/fragment.glsl
+2020/11/23 | 83897 | graphics/asymptote/webgl/gl.js
+2020/11/23 | 820 | graphics/asymptote/webgl/license
+2020/11/23 | 1446 | graphics/asymptote/webgl/vertex.glsl
+2020/11/23 | 6585 | graphics/asymptote/xstream.h
+2020/11/23 | 15564745 | graphics/asymptote.zip
2014/04/16 | 55108 | graphics/asypictureb/asypictureB.dtx
2014/04/16 | 2401 | graphics/asypictureb/asypictureB.ins
2014/04/15 | 637107 | graphics/asypictureb/asypictureB.pdf
@@ -136688,916 +136688,916 @@
2003/08/10 | 181328 | graphics/pdftricks/test.pdf
2003/08/10 | 19209 | graphics/pdftricks/test.tex
2008/11/24 | 242387 | graphics/pdftricks.zip
-2020/10/01 | 111 | graphics/pgf/base/doc/AUTHORS
-2020/10/01 | 179819 | graphics/pgf/base/doc/ChangeLog
-2020/10/01 | 5364 | graphics/pgf/base/doc/extract.lua
-2020/10/01 | 57480 | graphics/pgf/base/doc/FILES
-2020/10/01 | 137 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.bb
-2020/10/01 | 50179 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.eps
-2020/10/01 | 57081 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.jpg
-2020/10/01 | 134 | graphics/pgf/base/doc/images/brave-gnu-world-logo.bb
-2020/10/01 | 63197 | graphics/pgf/base/doc/images/brave-gnu-world-logo.eps
-2020/10/01 | 78671 | graphics/pgf/base/doc/images/brave-gnu-world-logo.jpg
-2020/10/01 | 139 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.bb
-2020/10/01 | 274109 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.eps
-2020/10/01 | 60485 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.jpg
-2020/10/01 | 260 | graphics/pgf/base/doc/images/brave-gnu-world-logo.xbb
-2020/10/01 | 147175 | graphics/pgf/base/doc/images/pgfmanual-mindmap-1.pdf
-2020/10/01 | 89737 | graphics/pgf/base/doc/images/pgfmanual-mindmap-2.pdf
-2020/10/01 | 321 | graphics/pgf/base/doc/INSTALL
-2020/10/01 | 20415 | graphics/pgf/base/doc/licenses/gnu-free-documentation-license-1.2.txt
-2020/10/01 | 18032 | graphics/pgf/base/doc/licenses/gnu-public-license-2.txt
-2020/10/01 | 19110 | graphics/pgf/base/doc/licenses/latex-project-public-license-1.3c.txt
-2020/10/01 | 1142 | graphics/pgf/base/doc/licenses/LICENSE
-2020/10/01 | 88 | graphics/pgf/base/doc/licenses/manifest-code.txt
-2020/10/01 | 93 | graphics/pgf/base/doc/licenses/manifest-documentation.txt
-2020/10/01 | 10571767 | graphics/pgf/base/doc/pgfmanual.pdf
-2020/10/01 | 470 | graphics/pgf/base/doc/README
-2020/10/01 | 19154 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-actions.tex
-2020/10/01 | 61664 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-animations.tex
-2020/10/01 | 46822 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex
-2020/10/01 | 43551 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-decorations.tex
-2020/10/01 | 6189 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-design.tex
-2020/10/01 | 20474 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-external.tex
-2020/10/01 | 11960 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-images.tex
-2020/10/01 | 4919 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex
-2020/10/01 | 5515 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-layers.tex
-2020/10/01 | 18393 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-matrices.tex
-2020/10/01 | 55874 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex
-2020/10/01 | 32926 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-paths.tex
-2020/10/01 | 10535 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-patterns.tex
-2020/10/01 | 23458 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-plots.tex
-2020/10/01 | 23492 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-points.tex
-2020/10/01 | 6364 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-quick.tex
-2020/10/01 | 41155 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-scopes.tex
-2020/10/01 | 31708 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-shadings.tex
-2020/10/01 | 48091 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transformations.tex
-2020/10/01 | 15479 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transparency.tex
-2020/10/01 | 21452 | graphics/pgf/base/doc/text-en/pgfmanual-en-drivers.tex
-2020/10/01 | 156060 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-axes.tex
-2020/10/01 | 713 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-backend.tex
-2020/10/01 | 2616 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-examples.tex
-2020/10/01 | 26872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex
-2020/10/01 | 7692 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-introduction.tex
-2020/10/01 | 33851 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-main.tex
-2020/10/01 | 17294 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-polar.tex
-2020/10/01 | 142672 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex
-2020/10/01 | 28872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-visualizers.tex
-2020/10/01 | 35298 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-algorithm-layer.tex
-2020/10/01 | 34987 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-algorithms-in-c.tex
-2020/10/01 | 9631 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-binding-layer.tex
-2020/10/01 | 658 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-circular.tex
-2020/10/01 | 11601 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-display-layer.tex
-2020/10/01 | 813 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-edge-routing.tex
-2020/10/01 | 346 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-examples.tex
-2020/10/01 | 1310 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-force.tex
-2020/10/01 | 950 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-layered.tex
-2020/10/01 | 795 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-misc.tex
-2020/10/01 | 4876 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-ogdf.tex
-2020/10/01 | 14504 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-overview.tex
-2020/10/01 | 2439 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-phylogenetics.tex
-2020/10/01 | 968 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-trees.tex
-2020/10/01 | 34338 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-usage-pgf.tex
-2020/10/01 | 22072 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-usage-tikz.tex
-2020/10/01 | 31877 | graphics/pgf/base/doc/text-en/pgfmanual-en-guidelines.tex
-2020/10/01 | 7390 | graphics/pgf/base/doc/text-en/pgfmanual-en-installation.tex
-2020/10/01 | 14536 | graphics/pgf/base/doc/text-en/pgfmanual-en-introduction.tex
-2020/10/01 | 7412 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-3d.tex
-2020/10/01 | 4051 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-angles.tex
-2020/10/01 | 7256 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-arrows.tex
-2020/10/01 | 13039 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-automata.tex
-2020/10/01 | 4294 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-babel.tex
-2020/10/01 | 9829 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-backgrounds.tex
-2020/10/01 | 225 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-calc.tex
-2020/10/01 | 38364 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-calendar.tex
-2020/10/01 | 19835 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-chains.tex
-2020/10/01 | 93690 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-circuits.tex
-2020/10/01 | 89878 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-decorations.tex
-2020/10/01 | 11557 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-edges.tex
-2020/10/01 | 4865 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-er.tex
-2020/10/01 | 49471 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-external.tex
-2020/10/01 | 1524 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fadings.tex
-2020/10/01 | 6593 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fit.tex
-2020/10/01 | 5849 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fixedpoint.tex
-2020/10/01 | 7763 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-folding.tex
-2020/10/01 | 27353 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fpu.tex
-2020/10/01 | 16342 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-lsystems.tex
-2020/10/01 | 17288 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-math.tex
-2020/10/01 | 10778 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-matrices.tex
-2020/10/01 | 21068 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-mindmaps.tex
-2020/10/01 | 20330 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-patterns.tex
-2020/10/01 | 14515 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-perspective.tex
-2020/10/01 | 16083 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-petri.tex
-2020/10/01 | 23159 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-handlers.tex
-2020/10/01 | 3905 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-marks.tex
-2020/10/01 | 10610 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-profiler.tex
-2020/10/01 | 45551 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-rdf.tex
-2020/10/01 | 7987 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shadings.tex
-2020/10/01 | 10461 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shadows.tex
-2020/10/01 | 98820 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shapes.tex
-2020/10/01 | 19702 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-spy.tex
-2020/10/01 | 2161 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-svg-path.tex
-2020/10/01 | 1251 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-through.tex
-2020/10/01 | 6616 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-trees.tex
-2020/10/01 | 3968 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-turtle.tex
-2020/10/01 | 5251 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-views.tex
-2020/10/01 | 66153 | graphics/pgf/base/doc/text-en/pgfmanual-en-license.tex
-2020/10/01 | 28643 | graphics/pgf/base/doc/text-en/pgfmanual-en-main-body.tex
-2020/10/01 | 10074 | graphics/pgf/base/doc/text-en/pgfmanual-en-main-preamble.tex
-2020/10/01 | 372 | graphics/pgf/base/doc/text-en/pgfmanual-en-main.tex
-2020/10/01 | 10416 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-algorithms.tex
-2020/10/01 | 8247 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-commands.tex
-2020/10/01 | 4474 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-design.tex
-2020/10/01 | 31195 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-numberprinting.tex
-2020/10/01 | 43539 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-parsing.tex
-2020/10/01 | 12946 | graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex
-2020/10/01 | 28891 | graphics/pgf/base/doc/text-en/pgfmanual-en-oo.tex
-2020/10/01 | 27253 | graphics/pgf/base/doc/text-en/pgfmanual-en-pages.tex
-2020/10/01 | 21933 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfcalendar.tex
-2020/10/01 | 15671 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex
-2020/10/01 | 21856 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeysfiltered.tex
-2020/10/01 | 68558 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex
-2020/10/01 | 62618 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-animations.tex
-2020/10/01 | 57538 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-commands.tex
-2020/10/01 | 2926 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-overview.tex
-2020/10/01 | 9212 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-paths.tex
-2020/10/01 | 3473 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-protocol.tex
-2020/10/01 | 54437 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex
-2020/10/01 | 115153 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-animations.tex
-2020/10/01 | 106847 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex
-2020/10/01 | 52250 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-coordinates.tex
-2020/10/01 | 23635 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-decorations.tex
-2020/10/01 | 11407 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-design.tex
-2020/10/01 | 143252 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex
-2020/10/01 | 32766 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-matrices.tex
-2020/10/01 | 57347 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex
-2020/10/01 | 23888 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-pics.tex
-2020/10/01 | 30755 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex
-2020/10/01 | 24941 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-scopes.tex
-2020/10/01 | 126092 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex
-2020/10/01 | 19855 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex
-2020/10/01 | 37424 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transparency.tex
-2020/10/01 | 32095 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-trees.tex
-2020/10/01 | 46142 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-chains.tex
-2020/10/01 | 28115 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-Euclid.tex
-2020/10/01 | 61358 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-map.tex
-2020/10/01 | 43904 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-nodes.tex
-2020/10/01 | 59122 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex
-2020/10/01 | 3648 | graphics/pgf/base/doc/text-en/pgfmanual-en-xxcolor.tex
-2020/10/01 | 183 | graphics/pgf/base/doc/text-en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/text-en/plots/pgf-asymptotic-example.table
-2020/10/01 | 113 | graphics/pgf/base/doc/text-en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/text-en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/text-en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/text-en/plots/pgfmanual-sine.table
-2020/10/01 | 159 | graphics/pgf/base/doc/text-en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/text-en/plots/pgf-parametric-example.table
-2020/10/01 | 111 | graphics/pgf/base/doc/text-en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/text-en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 108 | graphics/pgf/base/doc/text-en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/text-en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/text-en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2044 | graphics/pgf/base/doc/text-en/plots/pgf-tan-example.table
-2020/10/01 | 101 | graphics/pgf/base/doc/text-en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/text-en/plots/pgf-x.table
-2020/10/01 | 701 | graphics/pgf/base/doc/version-for-dvipdfm/en/Makefile
-2020/10/01 | 449 | graphics/pgf/base/doc/version-for-dvipdfm/en/pgfmanual.tex
-2020/10/01 | 170 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 92 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfmanual-sine.table
-2020/10/01 | 151 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example-cut.gnuplot
-2020/10/01 | 144 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example.table
-2020/10/01 | 90 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 87 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2044 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-tan-example.table
-2020/10/01 | 80 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-x.table
-2020/10/01 | 456 | graphics/pgf/base/doc/version-for-dvipdfm/pgfmanual-dvipdfm.cfg
-2020/10/01 | 969 | graphics/pgf/base/doc/version-for-dvipdfmx/en/Makefile
-2020/10/01 | 534 | graphics/pgf/base/doc/version-for-dvipdfmx/en/pgfmanual-test.tex
-2020/10/01 | 450 | graphics/pgf/base/doc/version-for-dvipdfmx/en/pgfmanual.tex
-2020/10/01 | 170 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3998 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 92 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-exp.gnuplot
-2020/10/01 | 543 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfmanual-sine.table
-2020/10/01 | 151 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.gnuplot
-2020/10/01 | 561 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.table
-2020/10/01 | 144 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 561 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example.table
-2020/10/01 | 90 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1977 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 87 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-sin.gnuplot
-2020/10/01 | 544 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2070 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-tan-example.table
-2020/10/01 | 80 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.gnuplot
-2020/10/01 | 533 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.table
-2020/10/01 | 491 | graphics/pgf/base/doc/version-for-dvipdfmx/pgfmanual-dvipdfmx.cfg
-2020/10/01 | 1172 | graphics/pgf/base/doc/version-for-dvips/en/Makefile
-2020/10/01 | 532 | graphics/pgf/base/doc/version-for-dvips/en/pgfmanual-test.tex
-2020/10/01 | 448 | graphics/pgf/base/doc/version-for-dvips/en/pgfmanual.tex
-2020/10/01 | 170 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 92 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfmanual-sine.table
-2020/10/01 | 151 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example-cut.gnuplot
-2020/10/01 | 144 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example.table
-2020/10/01 | 90 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 87 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2044 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-tan-example.table
-2020/10/01 | 80 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-x.table
-2020/10/01 | 367 | graphics/pgf/base/doc/version-for-dvips/pgfmanual-dvips.cfg
-2020/10/01 | 35 | graphics/pgf/base/doc/version-for-dvisvgm/en/color.cfg
-2020/10/01 | 1576 | graphics/pgf/base/doc/version-for-dvisvgm/en/Makefile
-2020/10/01 | 233 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual.html
-2020/10/01 | 191 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual-test.html
-2020/10/01 | 665 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual-test.tex
-2020/10/01 | 458 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual.tex
-2020/10/01 | 170 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 92 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-exp.table
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfmanual-sine.table
-2020/10/01 | 151 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example-cut.gnuplot
-2020/10/01 | 144 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example.table
-2020/10/01 | 90 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 87 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2044 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-tan-example.table
-2020/10/01 | 80 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-x.table
-2020/10/01 | 11566 | graphics/pgf/base/doc/version-for-dvisvgm/pgfmanual-dvisvgm.cfg
-2020/10/01 | 873 | graphics/pgf/base/doc/version-for-luatex/en/Makefile
-2020/10/01 | 533 | graphics/pgf/base/doc/version-for-luatex/en/pgfmanual-test.tex
-2020/10/01 | 785 | graphics/pgf/base/doc/version-for-luatex/en/pgfmanual.tex
-2020/10/01 | 170 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3998 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 92 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-exp.gnuplot
-2020/10/01 | 543 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-exp.table
-2020/10/01 | 151 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example-cut.gnuplot
-2020/10/01 | 144 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 561 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.table
-2020/10/01 | 90 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1977 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 87 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-sin.gnuplot
-2020/10/01 | 544 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2070 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-tan-example.table
-2020/10/01 | 80 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-x.gnuplot
-2020/10/01 | 533 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-x.table
-2020/10/01 | 496 | graphics/pgf/base/doc/version-for-luatex/pgfmanual-luatex.cfg
-2020/10/01 | 873 | graphics/pgf/base/doc/version-for-pdftex/en/Makefile
-2020/10/01 | 448 | graphics/pgf/base/doc/version-for-pdftex/en/pgfmanual.tex
-2020/10/01 | 170 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 92 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfmanual-sine.table
-2020/10/01 | 151 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example-cut.gnuplot
-2020/10/01 | 144 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example.table
-2020/10/01 | 90 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 87 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2044 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-tan-example.table
-2020/10/01 | 80 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-x.table
-2020/10/01 | 490 | graphics/pgf/base/doc/version-for-pdftex/pgfmanual-pdftex.cfg
-2020/10/01 | 771 | graphics/pgf/base/doc/version-for-tex4ht/en/Makefile
-2020/10/01 | 440 | graphics/pgf/base/doc/version-for-tex4ht/en/pgfmanual.tex
-2020/10/01 | 183 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfmanual-sine.table
-2020/10/01 | 159 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-parametric-example.table
-2020/10/01 | 111 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 108 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-sin.table
-2020/10/01 | 101 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-x.table
-2020/10/01 | 3583 | graphics/pgf/base/doc/version-for-tex4ht/pgfmanual-tex4ht.cfg
-2020/10/01 | 668 | graphics/pgf/base/doc/version-for-vtex/en/Makefile
-2020/10/01 | 447 | graphics/pgf/base/doc/version-for-vtex/en/pgfmanual.tex
-2020/10/01 | 183 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfmanual-sine.table
-2020/10/01 | 159 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-parametric-example.table
-2020/10/01 | 111 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 108 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-sin.table
-2020/10/01 | 101 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-x.table
-2020/10/01 | 417 | graphics/pgf/base/doc/version-for-vtex/pgfmanual-vtex.cfg
-2020/10/01 | 714 | graphics/pgf/base/doc/version-for-xetex/en/Makefile
-2020/10/01 | 448 | graphics/pgf/base/doc/version-for-xetex/en/pgfmanual.tex
-2020/10/01 | 170 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-asymptotic-example.gnuplot
-2020/10/01 | 3928 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-asymptotic-example.table
-2020/10/01 | 92 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-exp.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-exp.table
-2020/10/01 | 107 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfmanual-sine.gnuplot
-2020/10/01 | 421 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfmanual-sine.table
-2020/10/01 | 151 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example-cut.gnuplot
-2020/10/01 | 144 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example.gnuplot
-2020/10/01 | 520 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example.table
-2020/10/01 | 90 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfplotgnuplot-example.gnuplot
-2020/10/01 | 1944 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfplotgnuplot-example.table
-2020/10/01 | 87 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-sin.gnuplot
-2020/10/01 | 513 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-sin.table
-2020/10/01 | 113 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-tan-example.gnuplot
-2020/10/01 | 2044 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-tan-example.table
-2020/10/01 | 80 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-x.gnuplot
-2020/10/01 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-x.table
-2020/10/01 | 455 | graphics/pgf/base/doc/version-for-xetex/pgfmanual-xetex.cfg
-2020/10/01 | 175 | graphics/pgf/base/INSTALL_NOTES
-2020/10/01 | 6661 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings/Binding.lua
-2020/10/01 | 9893 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings/BindingToPGF.lua
-2020/10/01 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings.lua
-2020/10/01 | 4363 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/doc.lua
-2020/10/01 | 620 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/library.lua
-2020/10/01 | 378 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular.lua
-2020/10/01 | 4156 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/Tantau2012.lua
-2020/10/01 | 2668 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Anchoring.lua
-2020/10/01 | 14014 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentAlign.lua
-2020/10/01 | 1679 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentDirection.lua
-2020/10/01 | 4285 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentDistance.lua
-2020/10/01 | 2757 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentOrder.lua
-2020/10/01 | 5364 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Components.lua
-2020/10/01 | 11083 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Distances.lua
-2020/10/01 | 6529 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/doc.lua
-2020/10/01 | 4099 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/FineTune.lua
-2020/10/01 | 39378 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/LayoutPipeline.lua
-2020/10/01 | 4477 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/library.lua
-2020/10/01 | 389 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control.lua
-2020/10/01 | 5400 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/NodeAnchors.lua
-2020/10/01 | 7167 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Orientation.lua
-2020/10/01 | 14802 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Sublayouts.lua
-2020/10/01 | 967 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Cluster.lua
-2020/10/01 | 8612 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Edge.lua
-2020/10/01 | 9652 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Graph.lua
-2020/10/01 | 2571 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Iterators.lua
-2020/10/01 | 6265 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Node.lua
-2020/10/01 | 5601 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Vector.lua
-2020/10/01 | 3574 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc.lua
-2020/10/01 | 1841 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/FastMultipoleEmbedder.lua
-2020/10/01 | 4073 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/FMMMLayout.lua
-2020/10/01 | 4151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/GEMLayout.lua
-2020/10/01 | 337 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased.lua
-2020/10/01 | 909 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/MultilevelLayout.lua
-2020/10/01 | 974 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/BarycenterPlacer.lua
-2020/10/01 | 1398 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/CirclePlacer.lua
-2020/10/01 | 954 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/EdgeCoverMerger.lua
-2020/10/01 | 973 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/IndependentSetMerger.lua
-2020/10/01 | 968 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/LocalBiconnectedMerger.lua
-2020/10/01 | 962 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MatchingMerger.lua
-2020/10/01 | 731 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MedianPlacer.lua
-2020/10/01 | 948 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/RandomMerger.lua
-2020/10/01 | 952 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/RandomPlacer.lua
-2020/10/01 | 1172 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/SolarMerger.lua
-2020/10/01 | 730 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/SolarPlacer.lua
-2020/10/01 | 953 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/ZeroPlacer.lua
-2020/10/01 | 2152 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderFRExact.lua
-2020/10/01 | 1838 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderFR.lua
-2020/10/01 | 2291 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderKK.lua
-2020/10/01 | 729 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/BarycenterHeuristic.lua
-2020/10/01 | 1238 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/CoffmanGrahamRanking.lua
-2020/10/01 | 823 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/DfsAcyclicSubgraph.lua
-2020/10/01 | 2964 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastHierarchyLayout.lua
-2020/10/01 | 2804 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastSimpleHierarchyLayout.lua
-2020/10/01 | 853 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyCycleRemoval.lua
-2020/10/01 | 734 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyInsertHeuristic.lua
-2020/10/01 | 1997 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/LongestPathRanking.lua
-2020/10/01 | 352 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered.lua
-2020/10/01 | 722 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/MedianHeuristic.lua
-2020/10/01 | 1151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/OptimalRanking.lua
-2020/10/01 | 1068 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SiftingHeuristic.lua
-2020/10/01 | 720 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SplitHeuristic.lua
-2020/10/01 | 3969 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SugiyamaLayout.lua
-2020/10/01 | 1433 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout/BalloonLayout.lua
-2020/10/01 | 2549 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout/CircularLayout.lua
-2020/10/01 | 357 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout.lua
-2020/10/01 | 350 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/AcyclicSubgraphModule.lua
-2020/10/01 | 342 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/HierarchyLayoutModule.lua
-2020/10/01 | 340 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/InitialPlacer.lua
-2020/10/01 | 344 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/MultilevelBuilder.lua
-2020/10/01 | 333 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/RankingModule.lua
-2020/10/01 | 357 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/TwoLayerCrossMin.lua
-2020/10/01 | 351 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/planarity.lua
-2020/10/01 | 2224 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/planarity/PlanarizationLayout.lua
-2020/10/01 | 970 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/ASCIIDisplayer.lua
-2020/10/01 | 1864 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/BindingToASCII.lua
-2020/10/01 | 802 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/library.lua
-2020/10/01 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples.lua
-2020/10/01 | 2351 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleDemo.lua
-2020/10/01 | 3706 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleEdgeDemo.lua
-2020/10/01 | 8444 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleHuffman.lua
-2020/10/01 | 3216 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/doc.lua
-2020/10/01 | 21326 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/GraphAnimationCoordination.lua
-2020/10/01 | 5287 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/GreedyTemporalCycleRemoval.lua
-2020/10/01 | 2861 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/layered.lua
-2020/10/01 | 931 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/library.lua
-2020/10/01 | 28852 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/Skambath2016.lua
-2020/10/01 | 18669 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/Supergraph.lua
-2020/10/01 | 5222 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/SupergraphVertexSplitOptimization.lua
-2020/10/01 | 1468 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/TimeSpec.lua
-2020/10/01 | 14370 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/CoarseGraph.lua
-2020/10/01 | 5149 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlCoarsening.lua
-2020/10/01 | 1563 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlDeclare.lua
-2020/10/01 | 3081 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlElectric.lua
-2020/10/01 | 3534 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlIteration.lua
-2020/10/01 | 1945 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlSprings.lua
-2020/10/01 | 1135 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlStart.lua
-2020/10/01 | 3937 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/FruchtermanReingold.lua
-2020/10/01 | 2968 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/HuSpringElectricalFW.lua
-2020/10/01 | 2463 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SimpleSpring.lua
-2020/10/01 | 4611 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityCloseness.lua
-2020/10/01 | 5693 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityDegree.lua
-2020/10/01 | 8196 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/CoarseGraphFW.lua
-2020/10/01 | 17151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/ForceController.lua
-2020/10/01 | 1105 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/ForceTemplate.lua
-2020/10/01 | 1741 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/InitialTemplate.lua
-2020/10/01 | 5082 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/PathLengthsFW.lua
-2020/10/01 | 4076 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/Preprocessing.lua
-2020/10/01 | 10197 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/doc.lua
-2020/10/01 | 2541 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceAbsoluteValue.lua
-2020/10/01 | 5227 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceCanvasDistance.lua
-2020/10/01 | 3057 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceCanvasPosition.lua
-2020/10/01 | 5401 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceGraphDistance.lua
-2020/10/01 | 3294 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToGrid.lua
-2020/10/01 | 3056 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToPoint.lua
-2020/10/01 | 1944 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/CircularInitialPositioning.lua
-2020/10/01 | 1715 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/GridInitialPositioning.lua
-2020/10/01 | 1508 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/RandomInitialPositioning.lua
-2020/10/01 | 2488 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/library.lua
-2020/10/01 | 5297 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/library.lua
-2020/10/01 | 386 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force.lua
-2020/10/01 | 7011 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/QuadTree.lua
-2020/10/01 | 22936 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalHu2006.lua
-2020/10/01 | 1087 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalLayouts.lua
-2020/10/01 | 19512 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalWalshaw2000.lua
-2020/10/01 | 13093 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringHu2006.lua
-2020/10/01 | 630 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringLayouts.lua
-2020/10/01 | 5258 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceCore.lua
-2020/10/01 | 34020 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToAlgorithms.lua
-2020/10/01 | 2472 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToC.lua
-2020/10/01 | 31025 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToDisplay.lua
-2020/10/01 | 394 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface.lua
-2020/10/01 | 3134 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/Scope.lua
-2020/10/01 | 8907 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CrossingMinimizationGansnerKNV1993.lua
-2020/10/01 | 3150 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/crossing_minimization.lua
-2020/10/01 | 1835 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalBergerS1990a.lua
-2020/10/01 | 1952 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalBergerS1990b.lua
-2020/10/01 | 3096 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalEadesLS1993.lua
-2020/10/01 | 1589 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalGansnerKNV1993.lua
-2020/10/01 | 4253 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/cycle_removal.lua
-2020/10/01 | 402 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/EdgeRoutingGansnerKNV1993.lua
-2020/10/01 | 1309 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/edge_routing.lua
-2020/10/01 | 3869 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/library.lua
-2020/10/01 | 4513 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered.lua
-2020/10/01 | 22045 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NetworkSimplex.lua
-2020/10/01 | 3640 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodePositioningGansnerKNV1993.lua
-2020/10/01 | 1790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/node_positioning.lua
-2020/10/01 | 3466 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingGansnerKNV1993.lua
-2020/10/01 | 1839 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/node_ranking.lua
-2020/10/01 | 982 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingMinimumHeight.lua
-2020/10/01 | 6774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/Ranking.lua
-2020/10/01 | 12227 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/Sugiyama.lua
-2020/10/01 | 4404 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Bezier.lua
-2020/10/01 | 2282 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/DepthFirstSearch.lua
-2020/10/01 | 2790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Direct.lua
-2020/10/01 | 3493 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Event.lua
-2020/10/01 | 2540 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/LookupTable.lua
-2020/10/01 | 11127 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib.lua
-2020/10/01 | 5573 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PathLengths.lua
-2020/10/01 | 6223 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PriorityQueue.lua
-2020/10/01 | 5984 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Simplifiers.lua
-2020/10/01 | 976 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Stack.lua
-2020/10/01 | 3159 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Storage.lua
-2020/10/01 | 2774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Transform.lua
-2020/10/01 | 1699 | graphics/pgf/base/lua/graphdrawing/pgf/gd.lua
-2020/10/01 | 21005 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Arc.lua
-2020/10/01 | 6254 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Collection.lua
-2020/10/01 | 6550 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Coordinate.lua
-2020/10/01 | 26467 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Digraph.lua
-2020/10/01 | 5923 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Edge.lua
-2020/10/01 | 1030 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Hyperedge.lua
-2020/10/01 | 331 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/library.lua
-2020/10/01 | 386 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model.lua
-2020/10/01 | 8605 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Path_arced.lua
-2020/10/01 | 33646 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Path.lua
-2020/10/01 | 11312 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Vertex.lua
-2020/10/01 | 926 | graphics/pgf/base/lua/graphdrawing/pgf/gd/ogdf/library.lua
-2020/10/01 | 384 | graphics/pgf/base/lua/graphdrawing/pgf/gd/ogdf.lua
-2020/10/01 | 3013 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees/Koerner2015.lua
-2020/10/01 | 442 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees/library.lua
-2020/10/01 | 376 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees.lua
-2020/10/01 | 1868 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/AuthorDefinedPhylogeny.lua
-2020/10/01 | 19618 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedMinimumEvolution.lua
-2020/10/01 | 12261 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedNearestNeighbourInterchange.lua
-2020/10/01 | 12413 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/DistanceMatrix.lua
-2020/10/01 | 934 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/library.lua
-2020/10/01 | 388 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics.lua
-2020/10/01 | 24998 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/Maeusle2012.lua
-2020/10/01 | 2288 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/PhylogeneticTree.lua
-2020/10/01 | 8432 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/SokalMichener1958.lua
-2020/10/01 | 22307 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/BoyerMyrvold2004.lua
-2020/10/01 | 19781 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/Embedding.lua
-2020/10/01 | 72 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/library.lua
-2020/10/01 | 1778 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/LinkedList.lua
-2020/10/01 | 873 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/List.lua
-2020/10/01 | 73 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar.lua
-2020/10/01 | 3034 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/parameters.lua
-2020/10/01 | 18773 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/PDP.lua
-2020/10/01 | 4326 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/PlanarLayout.lua
-2020/10/01 | 3107 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/ShiftMethod.lua
-2020/10/01 | 3183 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/Hints.lua
-2020/10/01 | 597 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/library.lua
-2020/10/01 | 374 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing.lua
-2020/10/01 | 2479 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/NecklaceRouting.lua
-2020/10/01 | 4937 | graphics/pgf/base/lua/graphdrawing/pgf/gd/tools/make_gd_wrap.lua
-2020/10/01 | 7163 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/ChildSpec.lua
-2020/10/01 | 11324 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/doc.lua
-2020/10/01 | 946 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/library.lua
-2020/10/01 | 364 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees.lua
-2020/10/01 | 5214 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/ReingoldTilford1981.lua
-2020/10/01 | 18668 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/SpanningTreeComputation.lua
-2020/10/01 | 1910 | graphics/pgf/base/lua/graphdrawing/pgf.lua
-2020/10/01 | 14534 | graphics/pgf/base/lua/luamath/pgf/luamath/functions.lua
-2020/10/01 | 16757 | graphics/pgf/base/lua/luamath/pgf/luamath/parser.lua
-2020/10/01 | 2095 | graphics/pgf/base/README
-2020/10/01 | 831 | graphics/pgf/base/source/BalloonLayout_script.h
-2020/10/01 | 577 | graphics/pgf/base/source/BarycenterHeuristic_script.h
-2020/10/01 | 1077 | graphics/pgf/base/source/BarycenterPlacer_script.h
-2020/10/01 | 1865 | graphics/pgf/base/source/CirclePlacer_script.h
-2020/10/01 | 1651 | graphics/pgf/base/source/CircularLayout_script.h
-2020/10/01 | 1057 | graphics/pgf/base/source/CoffmanGrahamRanking_script.h
-2020/10/01 | 575 | graphics/pgf/base/source/DfsAcyclicSubgraph_script.h
-2020/10/01 | 1017 | graphics/pgf/base/source/EdgeCoverMerger_script.h
-2020/10/01 | 823 | graphics/pgf/base/source/energybased_script.h
-2020/10/01 | 154 | graphics/pgf/base/source/ExampleLocalMakefileConfig.mk
-2020/10/01 | 1740 | graphics/pgf/base/source/FastHierarchyLayout_script.h
-2020/10/01 | 2238 | graphics/pgf/base/source/FastMultipoleEmbedder_script.h
-2020/10/01 | 1303 | graphics/pgf/base/source/FastSimpleHierarchyLayout_script.h
-2020/10/01 | 1334 | graphics/pgf/base/source/FMMMLayout_script.h
-2020/10/01 | 4445 | graphics/pgf/base/source/GEMLayout_script.h
-2020/10/01 | 575 | graphics/pgf/base/source/GreedyCycleRemoval_script.h
-2020/10/01 | 591 | graphics/pgf/base/source/GreedyInsertHeuristic_script.h
-2020/10/01 | 1104 | graphics/pgf/base/source/IndependentSetMerger_script.h
-2020/10/01 | 1080 | graphics/pgf/base/source/INSTALL
-2020/10/01 | 29582 | graphics/pgf/base/source/InterfaceFromC.c
-2020/10/01 | 5204 | graphics/pgf/base/source/InterfaceFromC++.c++
-2020/10/01 | 23778 | graphics/pgf/base/source/InterfaceFromC.h
-2020/10/01 | 4415 | graphics/pgf/base/source/InterfaceFromC++.h
-2020/10/01 | 2505 | graphics/pgf/base/source/InterfaceFromOGDF.c++
-2020/10/01 | 973 | graphics/pgf/base/source/InterfaceFromOGDF.h
-2020/10/01 | 1337 | graphics/pgf/base/source/layered_script.h
-2020/10/01 | 1101 | graphics/pgf/base/source/LocalBiconnectedMerger_script.h
-2020/10/01 | 1701 | graphics/pgf/base/source/LongestPathRanking_script.h
-2020/10/01 | 747 | graphics/pgf/base/source/MakefileConfig.mk
-2020/10/01 | 1033 | graphics/pgf/base/source/MatchingMerger_script.h
-2020/10/01 | 549 | graphics/pgf/base/source/MedianHeuristic_script.h
-2020/10/01 | 663 | graphics/pgf/base/source/MedianPlacer_script.h
-2020/10/01 | 302 | graphics/pgf/base/source/misclayout_script.h
-2020/10/01 | 586 | graphics/pgf/base/source/module_script.h
-2020/10/01 | 1000 | graphics/pgf/base/source/MultilevelLayout_script.h
-2020/10/01 | 1087 | graphics/pgf/base/source/multilevelmixer_script.h
-2020/10/01 | 553 | graphics/pgf/base/source/ogdf_script.c++
-2020/10/01 | 1022 | graphics/pgf/base/source/OptimalRanking_script.h
-2020/10/01 | 41150 | graphics/pgf/base/source/pgfmathtestsuite.tex
-2020/10/01 | 235 | graphics/pgf/base/source/planarity_script.h
-2020/10/01 | 1308 | graphics/pgf/base/source/PlanarizationLayout_script.h
-2020/10/01 | 981 | graphics/pgf/base/source/RandomMerger_script.h
-2020/10/01 | 989 | graphics/pgf/base/source/RandomPlacer_script.h
-2020/10/01 | 1169 | graphics/pgf/base/source/SiftingHeuristic_script.h
-2020/10/01 | 1572 | graphics/pgf/base/source/SimpleDemoC.c
-2020/10/01 | 1254 | graphics/pgf/base/source/SimpleDemoCPlusPlus.c++
-2020/10/01 | 1077 | graphics/pgf/base/source/SimpleDemoOGDF.c++
-2020/10/01 | 1222 | graphics/pgf/base/source/SolarMerger_script.h
-2020/10/01 | 655 | graphics/pgf/base/source/SolarPlacer_script.h
-2020/10/01 | 542 | graphics/pgf/base/source/SplitHeuristic_script.h
-2020/10/01 | 2556 | graphics/pgf/base/source/SpringEmbedderFRExact_script.h
-2020/10/01 | 1608 | graphics/pgf/base/source/SpringEmbedderFR_script.h
-2020/10/01 | 1280 | graphics/pgf/base/source/SpringEmbedderKK_script.h
-2020/10/01 | 1731 | graphics/pgf/base/source/SugiyamaLayout_script.h
-2020/10/01 | 1107 | graphics/pgf/base/source/tikzexternaltest.code.tex
-2020/10/01 | 255 | graphics/pgf/base/source/tikzexternaltestmakefile.tex
-2020/10/01 | 541 | graphics/pgf/base/source/tikzexternaltest.sharedpreamble.tex
-2020/10/01 | 251 | graphics/pgf/base/source/tikzexternaltest.tex
-2020/10/01 | 16959 | graphics/pgf/base/source/unittest_luamathparser.tex
-2020/10/01 | 968 | graphics/pgf/base/source/ZeroPlacer_script.h
-2020/10/01 | 262 | graphics/pgf/base/tex/example_graph_for_ascii_displayer.txt
-2020/10/01 | 782 | graphics/pgf/base/tex/LUA_CODING_STYLE
-2020/10/01 | 437 | graphics/pgf/base/tex/pgfarrows.sty
-2020/10/01 | 7327 | graphics/pgf/base/tex/pgfautomata.sty
-2020/10/01 | 344 | graphics/pgf/base/tex/pgfbaseimage.sty
-2020/10/01 | 429 | graphics/pgf/base/tex/pgfbaseimage.tex
-2020/10/01 | 344 | graphics/pgf/base/tex/pgfbaselayers.sty
-2020/10/01 | 431 | graphics/pgf/base/tex/pgfbaselayers.tex
-2020/10/01 | 388 | graphics/pgf/base/tex/pgfbasematrix.sty
-2020/10/01 | 475 | graphics/pgf/base/tex/pgfbasematrix.tex
-2020/10/01 | 344 | graphics/pgf/base/tex/pgfbasepatterns.sty
-2020/10/01 | 435 | graphics/pgf/base/tex/pgfbasepatterns.tex
-2020/10/01 | 384 | graphics/pgf/base/tex/pgfbaseplot.sty
-2020/10/01 | 467 | graphics/pgf/base/tex/pgfbaseplot.tex
-2020/10/01 | 388 | graphics/pgf/base/tex/pgfbaseshapes.sty
-2020/10/01 | 475 | graphics/pgf/base/tex/pgfbaseshapes.tex
-2020/10/01 | 398 | graphics/pgf/base/tex/pgfbasesnakes.sty
-2020/10/01 | 485 | graphics/pgf/base/tex/pgfbasesnakes.tex
-2020/10/01 | 24091 | graphics/pgf/base/tex/pgfcalendar.code.tex
-2020/10/01 | 328 | graphics/pgf/base/tex/pgfcalendar.sty
-2020/10/01 | 384 | graphics/pgf/base/tex/pgfcalendar.tex
-2020/10/01 | 926 | graphics/pgf/base/tex/pgf.cfg
-2020/10/01 | 21013 | graphics/pgf/base/tex/pgfcomp-version-0-65.sty
-2020/10/01 | 989 | graphics/pgf/base/tex/pgfcomp-version-1-18.sty
-2020/10/01 | 43820 | graphics/pgf/base/tex/pgfcorearrows.code.tex
-2020/10/01 | 992 | graphics/pgf/base/tex/pgfcore.code.tex
-2020/10/01 | 19324 | graphics/pgf/base/tex/pgfcoreexternal.code.tex
-2020/10/01 | 6038 | graphics/pgf/base/tex/pgfcoregraphicstate.code.tex
-2020/10/01 | 6944 | graphics/pgf/base/tex/pgfcoreimage.code.tex
-2020/10/01 | 4883 | graphics/pgf/base/tex/pgfcorelayers.code.tex
-2020/10/01 | 2544 | graphics/pgf/base/tex/pgfcoreobjects.code.tex
-2020/10/01 | 44195 | graphics/pgf/base/tex/pgfcorepathconstruct.code.tex
-2020/10/01 | 17311 | graphics/pgf/base/tex/pgfcorepathprocessing.code.tex
-2020/10/01 | 21302 | graphics/pgf/base/tex/pgfcorepathusage.code.tex
-2020/10/01 | 9690 | graphics/pgf/base/tex/pgfcorepatterns.code.tex
-2020/10/01 | 33335 | graphics/pgf/base/tex/pgfcorepoints.code.tex
-2020/10/01 | 2965 | graphics/pgf/base/tex/pgfcorequick.code.tex
-2020/10/01 | 5196 | graphics/pgf/base/tex/pgfcorerdf.code.tex
-2020/10/01 | 20726 | graphics/pgf/base/tex/pgfcorescopes.code.tex
-2020/10/01 | 35249 | graphics/pgf/base/tex/pgfcoreshade.code.tex
-2020/10/01 | 410 | graphics/pgf/base/tex/pgfcore.sty
-2020/10/01 | 432 | graphics/pgf/base/tex/pgfcore.tex
-2020/10/01 | 21989 | graphics/pgf/base/tex/pgfcoretransformations.code.tex
-2020/10/01 | 8893 | graphics/pgf/base/tex/pgfcoretransparency.code.tex
-2020/10/01 | 1017 | graphics/pgf/base/tex/pgfexternal.tex
-2020/10/01 | 1280 | graphics/pgf/base/tex/pgfexternalwithdepth.tex
-2020/10/01 | 23692 | graphics/pgf/base/tex/pgffor.code.tex
-2020/10/01 | 348 | graphics/pgf/base/tex/pgffor.sty
-2020/10/01 | 393 | graphics/pgf/base/tex/pgffor.tex
-2020/10/01 | 2220 | graphics/pgf/base/tex/pgfheaps.sty
-2020/10/01 | 3063 | graphics/pgf/base/tex/pgfint.code.tex
-2020/10/01 | 36935 | graphics/pgf/base/tex/pgfkeys.code.tex
-2020/10/01 | 37431 | graphics/pgf/base/tex/pgfkeysfiltered.code.tex
-2020/10/01 | 274 | graphics/pgf/base/tex/pgfkeys.sty
-2020/10/01 | 372 | graphics/pgf/base/tex/pgfkeys.tex
-2020/10/01 | 31874 | graphics/pgf/base/tex/pgflibraryarrows.code.tex
-2020/10/01 | 58801 | graphics/pgf/base/tex/pgflibraryarrows.meta.code.tex
-2020/10/01 | 6846 | graphics/pgf/base/tex/pgflibraryarrows.spaced.code.tex
-2020/10/01 | 403 | graphics/pgf/base/tex/pgflibraryarrows.sty
-2020/10/01 | 411 | graphics/pgf/base/tex/pgflibraryautomata.sty
-2020/10/01 | 14117 | graphics/pgf/base/tex/pgflibrarycurvilinear.code.tex
-2020/10/01 | 4855 | graphics/pgf/base/tex/pgflibrarydatavisualization.barcharts.code.tex
-2020/10/01 | 6017 | graphics/pgf/base/tex/pgflibrarydatavisualization.formats.functions.code.tex
-2020/10/01 | 7235 | graphics/pgf/base/tex/pgflibrarydatavisualization.polar.code.tex
-2020/10/01 | 13375 | graphics/pgf/base/tex/pgflibrarydecorations.footprints.code.tex
-2020/10/01 | 2739 | graphics/pgf/base/tex/pgflibrarydecorations.fractals.code.tex
-2020/10/01 | 5220 | graphics/pgf/base/tex/pgflibrarydecorations.markings.code.tex
-2020/10/01 | 8843 | graphics/pgf/base/tex/pgflibrarydecorations.pathmorphing.code.tex
-2020/10/01 | 7474 | graphics/pgf/base/tex/pgflibrarydecorations.pathreplacing.code.tex
-2020/10/01 | 16467 | graphics/pgf/base/tex/pgflibrarydecorations.shapes.code.tex
-2020/10/01 | 12656 | graphics/pgf/base/tex/pgflibrarydecorations.text.code.tex
-2020/10/01 | 2563 | graphics/pgf/base/tex/pgflibraryfadings.code.tex
-2020/10/01 | 15631 | graphics/pgf/base/tex/pgflibraryfixedpointarithmetic.code.tex
-2020/10/01 | 86071 | graphics/pgf/base/tex/pgflibraryfpu.code.tex
-2020/10/01 | 430 | graphics/pgf/base/tex/pgflibrarygraphdrawing.circular.code.tex
-2020/10/01 | 34957 | graphics/pgf/base/tex/pgflibrarygraphdrawing.code.tex
-2020/10/01 | 366 | graphics/pgf/base/tex/pgflibrarygraphdrawing.examples.code.tex
-2020/10/01 | 3397 | graphics/pgf/base/tex/pgflibrarygraphdrawing.force.code.tex
-2020/10/01 | 368 | graphics/pgf/base/tex/pgflibrarygraphdrawing.layered.code.tex
-2020/10/01 | 493 | graphics/pgf/base/tex/pgflibrarygraphdrawing.trees.code.tex
-2020/10/01 | 44571 | graphics/pgf/base/tex/pgflibraryintersections.code.tex
-2020/10/01 | 8251 | graphics/pgf/base/tex/pgflibrarylindenmayersystems.code.tex
-2020/10/01 | 22123 | graphics/pgf/base/tex/pgflibraryluamath.code.tex
-2020/10/01 | 7936 | graphics/pgf/base/tex/pgflibrarypatterns.code.tex
-2020/10/01 | 15474 | graphics/pgf/base/tex/pgflibrarypatterns.meta.code.tex
-2020/10/01 | 32995 | graphics/pgf/base/tex/pgflibraryplothandlers.code.tex
-2020/10/01 | 416 | graphics/pgf/base/tex/pgflibraryplothandlers.sty
-2020/10/01 | 14524 | graphics/pgf/base/tex/pgflibraryplotmarks.code.tex
-2020/10/01 | 410 | graphics/pgf/base/tex/pgflibraryplotmarks.sty
-2020/10/01 | 20166 | graphics/pgf/base/tex/pgflibraryprofiler.code.tex
-2020/10/01 | 13134 | graphics/pgf/base/tex/pgflibraryshadings.code.tex
-2020/10/01 | 91587 | graphics/pgf/base/tex/pgflibraryshapes.arrows.code.tex
-2020/10/01 | 33336 | graphics/pgf/base/tex/pgflibraryshapes.callouts.code.tex
-2020/10/01 | 517 | graphics/pgf/base/tex/pgflibraryshapes.code.tex
-2020/10/01 | 4878 | graphics/pgf/base/tex/pgflibraryshapes.gates.ee.code.tex
-2020/10/01 | 22892 | graphics/pgf/base/tex/pgflibraryshapes.gates.ee.IEC.code.tex
-2020/10/01 | 3594 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.code.tex
-2020/10/01 | 24617 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.IEC.code.tex
-2020/10/01 | 85454 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.US.code.tex
-2020/10/01 | 160992 | graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
-2020/10/01 | 46241 | graphics/pgf/base/tex/pgflibraryshapes.misc.code.tex
-2020/10/01 | 62281 | graphics/pgf/base/tex/pgflibraryshapes.multipart.code.tex
-2020/10/01 | 405 | graphics/pgf/base/tex/pgflibraryshapes.sty
-2020/10/01 | 90515 | graphics/pgf/base/tex/pgflibraryshapes.symbols.code.tex
-2020/10/01 | 499 | graphics/pgf/base/tex/pgflibrarysnakes.code.tex
-2020/10/01 | 404 | graphics/pgf/base/tex/pgflibrarysnakes.sty
-2020/10/01 | 24742 | graphics/pgf/base/tex/pgflibrarysvg.path.code.tex
-2020/10/01 | 415 | graphics/pgf/base/tex/pgflibrarytikzbackgrounds.sty
-2020/10/01 | 400 | graphics/pgf/base/tex/pgflibrarytikztrees.sty
-2020/10/01 | 6995 | graphics/pgf/base/tex/pgflibrarytimelines.code.tex
-2020/10/01 | 2544 | graphics/pgf/base/tex/pgfmanual.code.tex
-2020/10/01 | 57255 | graphics/pgf/base/tex/pgfmanual-en-macros.tex
-2020/10/01 | 15497 | graphics/pgf/base/tex/pgfmanual.pdflinks.code.tex
-2020/10/01 | 50671 | graphics/pgf/base/tex/pgfmanual.prettyprinter.code.tex
-2020/10/01 | 332 | graphics/pgf/base/tex/pgfmanual.sty
-2020/10/01 | 13391 | graphics/pgf/base/tex/pgfmathcalc.code.tex
-2020/10/01 | 521 | graphics/pgf/base/tex/pgfmath.code.tex
-2020/10/01 | 104935 | graphics/pgf/base/tex/pgfmathfloat.code.tex
-2020/10/01 | 10165 | graphics/pgf/base/tex/pgfmathfunctions.base.code.tex
-2020/10/01 | 28178 | graphics/pgf/base/tex/pgfmathfunctions.basic.code.tex
-2020/10/01 | 9989 | graphics/pgf/base/tex/pgfmathfunctions.code.tex
-2020/10/01 | 3865 | graphics/pgf/base/tex/pgfmathfunctions.comparison.code.tex
-2020/10/01 | 3177 | graphics/pgf/base/tex/pgfmathfunctions.integerarithmetics.code.tex
-2020/10/01 | 10925 | graphics/pgf/base/tex/pgfmathfunctions.misc.code.tex
-2020/10/01 | 7789 | graphics/pgf/base/tex/pgfmathfunctions.random.code.tex
-2020/10/01 | 3379 | graphics/pgf/base/tex/pgfmathfunctions.round.code.tex
-2020/10/01 | 92405 | graphics/pgf/base/tex/pgfmathfunctions.trigonometric.code.tex
-2020/10/01 | 6958 | graphics/pgf/base/tex/pgfmathode.code.tex
-2020/10/01 | 37376 | graphics/pgf/base/tex/pgfmathparser.code.tex
-2020/10/01 | 306 | graphics/pgf/base/tex/pgfmath.sty
-2020/10/01 | 432 | graphics/pgf/base/tex/pgfmath.tex
-2020/10/01 | 8471 | graphics/pgf/base/tex/pgfmathutil.code.tex
-2020/10/01 | 39636 | graphics/pgf/base/tex/pgfmoduleanimations.code.tex
-2020/10/01 | 10901 | graphics/pgf/base/tex/pgfmodulebending.code.tex
-2020/10/01 | 95375 | graphics/pgf/base/tex/pgfmoduledatavisualization.code.tex
-2020/10/01 | 71722 | graphics/pgf/base/tex/pgfmoduledecorations.code.tex
-2020/10/01 | 21201 | graphics/pgf/base/tex/pgfmodulematrix.code.tex
-2020/10/01 | 12243 | graphics/pgf/base/tex/pgfmodulenonlineartransformations.code.tex
-2020/10/01 | 27080 | graphics/pgf/base/tex/pgfmoduleoo.code.tex
-2020/10/01 | 19581 | graphics/pgf/base/tex/pgfmoduleparser.code.tex
-2020/10/01 | 16121 | graphics/pgf/base/tex/pgfmoduleplot.code.tex
-2020/10/01 | 43259 | graphics/pgf/base/tex/pgfmoduleshapes.code.tex
-2020/10/01 | 10130 | graphics/pgf/base/tex/pgfmodulesnakes.code.tex
-2020/10/01 | 1918 | graphics/pgf/base/tex/pgfmodulesorting.code.tex
-2020/10/01 | 434 | graphics/pgf/base/tex/pgfnodes.sty
-2020/10/01 | 36299 | graphics/pgf/base/tex/pgfpages.sty
-2020/10/01 | 332 | graphics/pgf/base/tex/pgfparser.sty
-2020/10/01 | 3727 | graphics/pgf/base/tex/pgfpict2e.sty
-2020/10/01 | 4494 | graphics/pgf/base/tex/pgfrcs.code.tex
-2020/10/01 | 325 | graphics/pgf/base/tex/pgfrcs.sty
-2020/10/01 | 462 | graphics/pgf/base/tex/pgfrcs.tex
-2020/10/01 | 465 | graphics/pgf/base/tex/pgf.revision.tex
-2020/10/01 | 435 | graphics/pgf/base/tex/pgfshade.sty
-2020/10/01 | 1090 | graphics/pgf/base/tex/pgf.sty
-2020/10/01 | 59652 | graphics/pgf/base/tex/pgfsysanimations.code.tex
-2020/10/01 | 60544 | graphics/pgf/base/tex/pgfsys.code.tex
-2020/10/01 | 5546 | graphics/pgf/base/tex/pgfsys-common-pdf.def
-2020/10/01 | 6762 | graphics/pgf/base/tex/pgfsys-common-pdf-via-dvi.def
-2020/10/01 | 22211 | graphics/pgf/base/tex/pgfsys-common-postscript.def
-2020/10/01 | 62448 | graphics/pgf/base/tex/pgfsys-common-svg.def
-2020/10/01 | 11349 | graphics/pgf/base/tex/pgfsys-dvi.def
-2020/10/01 | 2627 | graphics/pgf/base/tex/pgfsys-dvipdfm.def
-2020/10/01 | 18491 | graphics/pgf/base/tex/pgfsys-dvipdfmx.def
-2020/10/01 | 23073 | graphics/pgf/base/tex/pgfsys-dvips.def
-2020/10/01 | 1705 | graphics/pgf/base/tex/pgfsys-dvisvgm4ht.def
-2020/10/01 | 5510 | graphics/pgf/base/tex/pgfsys-dvisvgm.def
-2020/10/01 | 13212 | graphics/pgf/base/tex/pgfsys-luatex.def
-2020/10/01 | 12601 | graphics/pgf/base/tex/pgfsys-pdftex.def
-2020/10/01 | 1896 | graphics/pgf/base/tex/pgfsysprotocol.code.tex
-2020/10/01 | 7778 | graphics/pgf/base/tex/pgfsyssoftpath.code.tex
-2020/10/01 | 443 | graphics/pgf/base/tex/pgfsys.sty
-2020/10/01 | 523 | graphics/pgf/base/tex/pgfsys.tex
-2020/10/01 | 17612 | graphics/pgf/base/tex/pgfsys-tex4ht.def
-2020/10/01 | 2763 | graphics/pgf/base/tex/pgfsys-textures.def
-2020/10/01 | 2758 | graphics/pgf/base/tex/pgfsys-vtex.def
-2020/10/01 | 2926 | graphics/pgf/base/tex/pgfsys-xetex.def
-2020/10/01 | 503 | graphics/pgf/base/tex/pgf.tex
-2020/10/01 | 7251 | graphics/pgf/base/tex/pgfutil-common-lists.tex
-2020/10/01 | 28579 | graphics/pgf/base/tex/pgfutil-common.tex
-2020/10/01 | 11777 | graphics/pgf/base/tex/pgfutil-context.def
-2020/10/01 | 6609 | graphics/pgf/base/tex/pgfutil-latex.def
-2020/10/01 | 10009 | graphics/pgf/base/tex/pgfutil-plain.def
-2020/10/01 | 188050 | graphics/pgf/base/tex/tikz.code.tex
-2020/10/01 | 68833 | graphics/pgf/base/tex/tikzexternalshared.code.tex
-2020/10/01 | 5292 | graphics/pgf/base/tex/tikzexternal.sty
-2020/10/01 | 3243 | graphics/pgf/base/tex/tikzlibrary3d.code.tex
-2020/10/01 | 3614 | graphics/pgf/base/tex/tikzlibraryangles.code.tex
-2020/10/01 | 33432 | graphics/pgf/base/tex/tikzlibraryanimations.code.tex
-2020/10/01 | 319 | graphics/pgf/base/tex/tikzlibraryarrows.code.tex
-2020/10/01 | 3986 | graphics/pgf/base/tex/tikzlibraryautomata.code.tex
-2020/10/01 | 380 | graphics/pgf/base/tex/tikzlibrarybabel.code.tex
-2020/10/01 | 4572 | graphics/pgf/base/tex/tikzlibrarybackgrounds.code.tex
-2020/10/01 | 345 | graphics/pgf/base/tex/tikzlibrarybending.code.tex
-2020/10/01 | 15929 | graphics/pgf/base/tex/tikzlibrarycalc.code.tex
-2020/10/01 | 12653 | graphics/pgf/base/tex/tikzlibrarycalendar.code.tex
-2020/10/01 | 6810 | graphics/pgf/base/tex/tikzlibrarychains.code.tex
-2020/10/01 | 8724 | graphics/pgf/base/tex/tikzlibrarycircuits.code.tex
-2020/10/01 | 4177 | graphics/pgf/base/tex/tikzlibrarycircuits.ee.code.tex
-2020/10/01 | 9614 | graphics/pgf/base/tex/tikzlibrarycircuits.ee.IEC.code.tex
-2020/10/01 | 590 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.CDH.code.tex
-2020/10/01 | 946 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.code.tex
-2020/10/01 | 2108 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.IEC.code.tex
-2020/10/01 | 1571 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.US.code.tex
-2020/10/01 | 2919 | graphics/pgf/base/tex/tikzlibrarydatavisualization.3d.code.tex
-2020/10/01 | 997 | graphics/pgf/base/tex/tikzlibrarydatavisualization.barcharts.code.tex
-2020/10/01 | 93853 | graphics/pgf/base/tex/tikzlibrarydatavisualization.code.tex
-2020/10/01 | 414 | graphics/pgf/base/tex/tikzlibrarydatavisualization.formats.functions.code.tex
-2020/10/01 | 20502 | graphics/pgf/base/tex/tikzlibrarydatavisualization.polar.code.tex
-2020/10/01 | 632 | graphics/pgf/base/tex/tikzlibrarydatavisualization.sparklines.code.tex
-2020/10/01 | 5493 | graphics/pgf/base/tex/tikzlibrarydecorations.code.tex
-2020/10/01 | 319 | graphics/pgf/base/tex/tikzlibrarydecorations.footprints.code.tex
-2020/10/01 | 317 | graphics/pgf/base/tex/tikzlibrarydecorations.fractals.code.tex
-2020/10/01 | 788 | graphics/pgf/base/tex/tikzlibrarydecorations.markings.code.tex
-2020/10/01 | 321 | graphics/pgf/base/tex/tikzlibrarydecorations.pathmorphing.code.tex
-2020/10/01 | 1319 | graphics/pgf/base/tex/tikzlibrarydecorations.pathreplacing.code.tex
-2020/10/01 | 315 | graphics/pgf/base/tex/tikzlibrarydecorations.shapes.code.tex
-2020/10/01 | 29754 | graphics/pgf/base/tex/tikzlibrarydecorations.text.code.tex
-2020/10/01 | 1169 | graphics/pgf/base/tex/tikzlibraryer.code.tex
-2020/10/01 | 3823 | graphics/pgf/base/tex/tikzlibraryexternal.code.tex
-2020/10/01 | 1179 | graphics/pgf/base/tex/tikzlibraryfadings.code.tex
-2020/10/01 | 3643 | graphics/pgf/base/tex/tikzlibraryfit.code.tex
-2020/10/01 | 276 | graphics/pgf/base/tex/tikzlibraryfixedpointarithmetic.code.tex
-2020/10/01 | 74959 | graphics/pgf/base/tex/tikzlibraryfolding.code.tex
-2020/10/01 | 283 | graphics/pgf/base/tex/tikzlibraryfpu.code.tex
-2020/10/01 | 7275 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.code.tex
-2020/10/01 | 532 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.evolving.code.tex
-2020/10/01 | 86658 | graphics/pgf/base/tex/tikzlibrarygraphs.code.tex
-2020/10/01 | 2576 | graphics/pgf/base/tex/tikzlibrarygraphs.standard.code.tex
-2020/10/01 | 5286 | graphics/pgf/base/tex/tikzlibraryintersections.code.tex
-2020/10/01 | 2866 | graphics/pgf/base/tex/tikzlibrarylindenmayersystems.code.tex
-2020/10/01 | 25517 | graphics/pgf/base/tex/tikzlibrarymath.code.tex
-2020/10/01 | 4202 | graphics/pgf/base/tex/tikzlibrarymatrix.code.tex
-2020/10/01 | 14804 | graphics/pgf/base/tex/tikzlibrarymindmap.code.tex
-2020/10/01 | 770 | graphics/pgf/base/tex/tikzlibrarypatterns.code.tex
-2020/10/01 | 3036 | graphics/pgf/base/tex/tikzlibrarypatterns.meta.code.tex
-2020/10/01 | 3544 | graphics/pgf/base/tex/tikzlibraryperspective.code.tex
-2020/10/01 | 4375 | graphics/pgf/base/tex/tikzlibrarypetri.code.tex
-2020/10/01 | 331 | graphics/pgf/base/tex/tikzlibraryplothandlers.code.tex
-2020/10/01 | 325 | graphics/pgf/base/tex/tikzlibraryplotmarks.code.tex
-2020/10/01 | 3937 | graphics/pgf/base/tex/tikzlibrarypositioning.code.tex
-2020/10/01 | 3931 | graphics/pgf/base/tex/tikzlibraryquotes.code.tex
-2020/10/01 | 7646 | graphics/pgf/base/tex/tikzlibraryrdf.code.tex
-2020/10/01 | 981 | graphics/pgf/base/tex/tikzlibraryscopes.code.tex
-2020/10/01 | 708 | graphics/pgf/base/tex/tikzlibraryshadings.code.tex
-2020/10/01 | 2889 | graphics/pgf/base/tex/tikzlibraryshadows.code.tex
-2020/10/01 | 410 | graphics/pgf/base/tex/tikzlibraryshapes.arrows.code.tex
-2020/10/01 | 1201 | graphics/pgf/base/tex/tikzlibraryshapes.callouts.code.tex
-2020/10/01 | 494 | graphics/pgf/base/tex/tikzlibraryshapes.code.tex
-2020/10/01 | 1532 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.IEC.code.tex
-2020/10/01 | 1303 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.US.code.tex
-2020/10/01 | 339 | graphics/pgf/base/tex/tikzlibraryshapes.geometric.code.tex
-2020/10/01 | 329 | graphics/pgf/base/tex/tikzlibraryshapes.misc.code.tex
-2020/10/01 | 919 | graphics/pgf/base/tex/tikzlibraryshapes.multipart.code.tex
-2020/10/01 | 475 | graphics/pgf/base/tex/tikzlibraryshapes.symbols.code.tex
-2020/10/01 | 2732 | graphics/pgf/base/tex/tikzlibrarysnakes.code.tex
-2020/10/01 | 4070 | graphics/pgf/base/tex/tikzlibraryspy.code.tex
-2020/10/01 | 911 | graphics/pgf/base/tex/tikzlibrarysvg.path.code.tex
-2020/10/01 | 1040 | graphics/pgf/base/tex/tikzlibrarythrough.code.tex
-2020/10/01 | 11395 | graphics/pgf/base/tex/tikzlibrarytopaths.code.tex
-2020/10/01 | 3360 | graphics/pgf/base/tex/tikzlibrarytrees.code.tex
-2020/10/01 | 2184 | graphics/pgf/base/tex/tikzlibraryturtle.code.tex
-2020/10/01 | 1718 | graphics/pgf/base/tex/tikzlibraryviews.code.tex
-2020/10/01 | 339 | graphics/pgf/base/tex/tikz.sty
-2020/10/01 | 448 | graphics/pgf/base/tex/tikz.tex
-2020/10/01 | 457 | graphics/pgf/base/tex/t-pgfbim.tex
-2020/10/01 | 349 | graphics/pgf/base/tex/t-pgfbla.tex
-2020/10/01 | 393 | graphics/pgf/base/tex/t-pgfbma.tex
-2020/10/01 | 388 | graphics/pgf/base/tex/t-pgfbpl.tex
-2020/10/01 | 351 | graphics/pgf/base/tex/t-pgfbpt.tex
-2020/10/01 | 393 | graphics/pgf/base/tex/t-pgfbsh.tex
-2020/10/01 | 404 | graphics/pgf/base/tex/t-pgfbsn.tex
-2020/10/01 | 691 | graphics/pgf/base/tex/t-pgfcal.tex
-2020/10/01 | 1286 | graphics/pgf/base/tex/t-pgfcor.tex
-2020/10/01 | 666 | graphics/pgf/base/tex/t-pgffor.tex
-2020/10/01 | 633 | graphics/pgf/base/tex/t-pgfkey.tex
-2020/10/01 | 724 | graphics/pgf/base/tex/t-pgfmat.tex
-2020/10/01 | 1296 | graphics/pgf/base/tex/t-pgfmod.tex
-2020/10/01 | 787 | graphics/pgf/base/tex/t-pgfrcs.tex
-2020/10/01 | 796 | graphics/pgf/base/tex/t-pgfsys.tex
-2020/10/01 | 543 | graphics/pgf/base/tex/t-pgf.tex
-2020/10/01 | 791 | graphics/pgf/base/tex/t-tikz.tex
-2020/10/01 | 2232 | graphics/pgf/base/tex/xxcolor.sty
-2020/10/02 | 13116275 | graphics/pgf/base.zip
+2020/11/23 | 111 | graphics/pgf/base/doc/AUTHORS
+2020/11/23 | 181683 | graphics/pgf/base/doc/ChangeLog
+2020/11/23 | 5364 | graphics/pgf/base/doc/extract.lua
+2020/11/23 | 57480 | graphics/pgf/base/doc/FILES
+2020/11/23 | 137 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.bb
+2020/11/23 | 50179 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.eps
+2020/11/23 | 57081 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.jpg
+2020/11/23 | 134 | graphics/pgf/base/doc/images/brave-gnu-world-logo.bb
+2020/11/23 | 63197 | graphics/pgf/base/doc/images/brave-gnu-world-logo.eps
+2020/11/23 | 78671 | graphics/pgf/base/doc/images/brave-gnu-world-logo.jpg
+2020/11/23 | 139 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.bb
+2020/11/23 | 274109 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.eps
+2020/11/23 | 60485 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.jpg
+2020/11/23 | 260 | graphics/pgf/base/doc/images/brave-gnu-world-logo.xbb
+2020/11/23 | 147175 | graphics/pgf/base/doc/images/pgfmanual-mindmap-1.pdf
+2020/11/23 | 89737 | graphics/pgf/base/doc/images/pgfmanual-mindmap-2.pdf
+2020/11/23 | 321 | graphics/pgf/base/doc/INSTALL
+2020/11/23 | 20415 | graphics/pgf/base/doc/licenses/gnu-free-documentation-license-1.2.txt
+2020/11/23 | 18032 | graphics/pgf/base/doc/licenses/gnu-public-license-2.txt
+2020/11/23 | 19110 | graphics/pgf/base/doc/licenses/latex-project-public-license-1.3c.txt
+2020/11/23 | 1142 | graphics/pgf/base/doc/licenses/LICENSE
+2020/11/23 | 88 | graphics/pgf/base/doc/licenses/manifest-code.txt
+2020/11/23 | 93 | graphics/pgf/base/doc/licenses/manifest-documentation.txt
+2020/11/23 | 10576905 | graphics/pgf/base/doc/pgfmanual.pdf
+2020/11/23 | 470 | graphics/pgf/base/doc/README
+2020/11/23 | 19154 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-actions.tex
+2020/11/23 | 61664 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-animations.tex
+2020/11/23 | 46825 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex
+2020/11/23 | 43551 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-decorations.tex
+2020/11/23 | 6189 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-design.tex
+2020/11/23 | 20474 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-external.tex
+2020/11/23 | 11960 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-images.tex
+2020/11/23 | 4919 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex
+2020/11/23 | 5515 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-layers.tex
+2020/11/23 | 18393 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-matrices.tex
+2020/11/23 | 55873 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex
+2020/11/23 | 32926 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-paths.tex
+2020/11/23 | 10535 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-patterns.tex
+2020/11/23 | 23458 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-plots.tex
+2020/11/23 | 23492 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-points.tex
+2020/11/23 | 6364 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-quick.tex
+2020/11/23 | 41155 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-scopes.tex
+2020/11/23 | 31708 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-shadings.tex
+2020/11/23 | 48091 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transformations.tex
+2020/11/23 | 15479 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transparency.tex
+2020/11/23 | 21452 | graphics/pgf/base/doc/text-en/pgfmanual-en-drivers.tex
+2020/11/23 | 156060 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-axes.tex
+2020/11/23 | 713 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-backend.tex
+2020/11/23 | 2616 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-examples.tex
+2020/11/23 | 26872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex
+2020/11/23 | 7692 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-introduction.tex
+2020/11/23 | 33851 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-main.tex
+2020/11/23 | 17294 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-polar.tex
+2020/11/23 | 142672 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex
+2020/11/23 | 28872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-visualizers.tex
+2020/11/23 | 35298 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-algorithm-layer.tex
+2020/11/23 | 34987 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-algorithms-in-c.tex
+2020/11/23 | 9631 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-binding-layer.tex
+2020/11/23 | 658 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-circular.tex
+2020/11/23 | 11601 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-display-layer.tex
+2020/11/23 | 813 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-edge-routing.tex
+2020/11/23 | 346 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-examples.tex
+2020/11/23 | 1310 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-force.tex
+2020/11/23 | 950 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-layered.tex
+2020/11/23 | 795 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-misc.tex
+2020/11/23 | 4876 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-ogdf.tex
+2020/11/23 | 14504 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-overview.tex
+2020/11/23 | 2439 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-phylogenetics.tex
+2020/11/23 | 968 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-trees.tex
+2020/11/23 | 34338 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-usage-pgf.tex
+2020/11/23 | 22072 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-usage-tikz.tex
+2020/11/23 | 31877 | graphics/pgf/base/doc/text-en/pgfmanual-en-guidelines.tex
+2020/11/23 | 7390 | graphics/pgf/base/doc/text-en/pgfmanual-en-installation.tex
+2020/11/23 | 14536 | graphics/pgf/base/doc/text-en/pgfmanual-en-introduction.tex
+2020/11/23 | 7412 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-3d.tex
+2020/11/23 | 4051 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-angles.tex
+2020/11/23 | 7256 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-arrows.tex
+2020/11/23 | 13039 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-automata.tex
+2020/11/23 | 4294 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-babel.tex
+2020/11/23 | 9829 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-backgrounds.tex
+2020/11/23 | 225 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-calc.tex
+2020/11/23 | 38364 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-calendar.tex
+2020/11/23 | 19835 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-chains.tex
+2020/11/23 | 93690 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-circuits.tex
+2020/11/23 | 89878 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-decorations.tex
+2020/11/23 | 11557 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-edges.tex
+2020/11/23 | 4865 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-er.tex
+2020/11/23 | 49471 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-external.tex
+2020/11/23 | 1524 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fadings.tex
+2020/11/23 | 6593 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fit.tex
+2020/11/23 | 5849 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fixedpoint.tex
+2020/11/23 | 7763 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-folding.tex
+2020/11/23 | 27353 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fpu.tex
+2020/11/23 | 16342 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-lsystems.tex
+2020/11/23 | 17288 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-math.tex
+2020/11/23 | 10778 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-matrices.tex
+2020/11/23 | 21068 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-mindmaps.tex
+2020/11/23 | 20330 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-patterns.tex
+2020/11/23 | 14515 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-perspective.tex
+2020/11/23 | 16083 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-petri.tex
+2020/11/23 | 23159 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-handlers.tex
+2020/11/23 | 3905 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-marks.tex
+2020/11/23 | 10610 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-profiler.tex
+2020/11/23 | 45551 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-rdf.tex
+2020/11/23 | 7987 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shadings.tex
+2020/11/23 | 10461 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shadows.tex
+2020/11/23 | 98820 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shapes.tex
+2020/11/23 | 19702 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-spy.tex
+2020/11/23 | 2161 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-svg-path.tex
+2020/11/23 | 1251 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-through.tex
+2020/11/23 | 6616 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-trees.tex
+2020/11/23 | 3968 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-turtle.tex
+2020/11/23 | 5251 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-views.tex
+2020/11/23 | 66153 | graphics/pgf/base/doc/text-en/pgfmanual-en-license.tex
+2020/11/23 | 28643 | graphics/pgf/base/doc/text-en/pgfmanual-en-main-body.tex
+2020/11/23 | 10074 | graphics/pgf/base/doc/text-en/pgfmanual-en-main-preamble.tex
+2020/11/23 | 372 | graphics/pgf/base/doc/text-en/pgfmanual-en-main.tex
+2020/11/23 | 10416 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-algorithms.tex
+2020/11/23 | 8247 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-commands.tex
+2020/11/23 | 4474 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-design.tex
+2020/11/23 | 31195 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-numberprinting.tex
+2020/11/23 | 43539 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-parsing.tex
+2020/11/23 | 13892 | graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex
+2020/11/23 | 28891 | graphics/pgf/base/doc/text-en/pgfmanual-en-oo.tex
+2020/11/23 | 27253 | graphics/pgf/base/doc/text-en/pgfmanual-en-pages.tex
+2020/11/23 | 21933 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfcalendar.tex
+2020/11/23 | 16323 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex
+2020/11/23 | 21856 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeysfiltered.tex
+2020/11/23 | 68559 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex
+2020/11/23 | 62618 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-animations.tex
+2020/11/23 | 57538 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-commands.tex
+2020/11/23 | 2926 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-overview.tex
+2020/11/23 | 9212 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-paths.tex
+2020/11/23 | 3473 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-protocol.tex
+2020/11/23 | 54438 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex
+2020/11/23 | 115153 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-animations.tex
+2020/11/23 | 106851 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex
+2020/11/23 | 52250 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-coordinates.tex
+2020/11/23 | 23635 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-decorations.tex
+2020/11/23 | 11407 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-design.tex
+2020/11/23 | 143246 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex
+2020/11/23 | 32766 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-matrices.tex
+2020/11/23 | 57429 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex
+2020/11/23 | 23888 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-pics.tex
+2020/11/23 | 30763 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex
+2020/11/23 | 24941 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-scopes.tex
+2020/11/23 | 126096 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex
+2020/11/23 | 19862 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex
+2020/11/23 | 37424 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transparency.tex
+2020/11/23 | 32095 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-trees.tex
+2020/11/23 | 46142 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-chains.tex
+2020/11/23 | 28115 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-Euclid.tex
+2020/11/23 | 61358 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-map.tex
+2020/11/23 | 43904 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-nodes.tex
+2020/11/23 | 59122 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex
+2020/11/23 | 3648 | graphics/pgf/base/doc/text-en/pgfmanual-en-xxcolor.tex
+2020/11/23 | 183 | graphics/pgf/base/doc/text-en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/text-en/plots/pgf-asymptotic-example.table
+2020/11/23 | 113 | graphics/pgf/base/doc/text-en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/text-en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/text-en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/text-en/plots/pgfmanual-sine.table
+2020/11/23 | 159 | graphics/pgf/base/doc/text-en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/text-en/plots/pgf-parametric-example.table
+2020/11/23 | 111 | graphics/pgf/base/doc/text-en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/text-en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 108 | graphics/pgf/base/doc/text-en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/text-en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/text-en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2044 | graphics/pgf/base/doc/text-en/plots/pgf-tan-example.table
+2020/11/23 | 101 | graphics/pgf/base/doc/text-en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/text-en/plots/pgf-x.table
+2020/11/23 | 701 | graphics/pgf/base/doc/version-for-dvipdfm/en/Makefile
+2020/11/23 | 449 | graphics/pgf/base/doc/version-for-dvipdfm/en/pgfmanual.tex
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfmanual-sine.table
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example.table
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-tan-example.table
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-x.table
+2020/11/23 | 456 | graphics/pgf/base/doc/version-for-dvipdfm/pgfmanual-dvipdfm.cfg
+2020/11/23 | 969 | graphics/pgf/base/doc/version-for-dvipdfmx/en/Makefile
+2020/11/23 | 534 | graphics/pgf/base/doc/version-for-dvipdfmx/en/pgfmanual-test.tex
+2020/11/23 | 450 | graphics/pgf/base/doc/version-for-dvipdfmx/en/pgfmanual.tex
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3998 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-exp.gnuplot
+2020/11/23 | 543 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfmanual-sine.table
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 561 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.table
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 561 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example.table
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1977 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-sin.gnuplot
+2020/11/23 | 544 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2070 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-tan-example.table
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.gnuplot
+2020/11/23 | 533 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.table
+2020/11/23 | 491 | graphics/pgf/base/doc/version-for-dvipdfmx/pgfmanual-dvipdfmx.cfg
+2020/11/23 | 1172 | graphics/pgf/base/doc/version-for-dvips/en/Makefile
+2020/11/23 | 532 | graphics/pgf/base/doc/version-for-dvips/en/pgfmanual-test.tex
+2020/11/23 | 448 | graphics/pgf/base/doc/version-for-dvips/en/pgfmanual.tex
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfmanual-sine.table
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example.table
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-tan-example.table
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-x.table
+2020/11/23 | 367 | graphics/pgf/base/doc/version-for-dvips/pgfmanual-dvips.cfg
+2020/11/23 | 35 | graphics/pgf/base/doc/version-for-dvisvgm/en/color.cfg
+2020/11/23 | 1576 | graphics/pgf/base/doc/version-for-dvisvgm/en/Makefile
+2020/11/23 | 233 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual.html
+2020/11/23 | 191 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual-test.html
+2020/11/23 | 665 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual-test.tex
+2020/11/23 | 458 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual.tex
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-exp.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfmanual-sine.table
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example.table
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-tan-example.table
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-x.table
+2020/11/23 | 11566 | graphics/pgf/base/doc/version-for-dvisvgm/pgfmanual-dvisvgm.cfg
+2020/11/23 | 873 | graphics/pgf/base/doc/version-for-luatex/en/Makefile
+2020/11/23 | 533 | graphics/pgf/base/doc/version-for-luatex/en/pgfmanual-test.tex
+2020/11/23 | 785 | graphics/pgf/base/doc/version-for-luatex/en/pgfmanual.tex
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3998 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 543 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-exp.table
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 561 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.table
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1977 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 544 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2070 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-tan-example.table
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-x.gnuplot
+2020/11/23 | 533 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-x.table
+2020/11/23 | 496 | graphics/pgf/base/doc/version-for-luatex/pgfmanual-luatex.cfg
+2020/11/23 | 873 | graphics/pgf/base/doc/version-for-pdftex/en/Makefile
+2020/11/23 | 448 | graphics/pgf/base/doc/version-for-pdftex/en/pgfmanual.tex
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfmanual-sine.table
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example.table
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-tan-example.table
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-x.table
+2020/11/23 | 490 | graphics/pgf/base/doc/version-for-pdftex/pgfmanual-pdftex.cfg
+2020/11/23 | 771 | graphics/pgf/base/doc/version-for-tex4ht/en/Makefile
+2020/11/23 | 440 | graphics/pgf/base/doc/version-for-tex4ht/en/pgfmanual.tex
+2020/11/23 | 183 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfmanual-sine.table
+2020/11/23 | 159 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-parametric-example.table
+2020/11/23 | 111 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 108 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-sin.table
+2020/11/23 | 101 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-x.table
+2020/11/23 | 3583 | graphics/pgf/base/doc/version-for-tex4ht/pgfmanual-tex4ht.cfg
+2020/11/23 | 668 | graphics/pgf/base/doc/version-for-vtex/en/Makefile
+2020/11/23 | 447 | graphics/pgf/base/doc/version-for-vtex/en/pgfmanual.tex
+2020/11/23 | 183 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfmanual-sine.table
+2020/11/23 | 159 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-parametric-example.table
+2020/11/23 | 111 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 108 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-sin.table
+2020/11/23 | 101 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-x.table
+2020/11/23 | 417 | graphics/pgf/base/doc/version-for-vtex/pgfmanual-vtex.cfg
+2020/11/23 | 714 | graphics/pgf/base/doc/version-for-xetex/en/Makefile
+2020/11/23 | 448 | graphics/pgf/base/doc/version-for-xetex/en/pgfmanual.tex
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-exp.table
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfmanual-sine.table
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example.table
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-sin.table
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-tan-example.table
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-x.gnuplot
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-x.table
+2020/11/23 | 455 | graphics/pgf/base/doc/version-for-xetex/pgfmanual-xetex.cfg
+2020/11/23 | 175 | graphics/pgf/base/INSTALL_NOTES
+2020/11/23 | 6661 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings/Binding.lua
+2020/11/23 | 9893 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings/BindingToPGF.lua
+2020/11/23 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings.lua
+2020/11/23 | 4363 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/doc.lua
+2020/11/23 | 620 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/library.lua
+2020/11/23 | 378 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular.lua
+2020/11/23 | 4156 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/Tantau2012.lua
+2020/11/23 | 2668 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Anchoring.lua
+2020/11/23 | 14014 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentAlign.lua
+2020/11/23 | 1679 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentDirection.lua
+2020/11/23 | 4285 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentDistance.lua
+2020/11/23 | 2757 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentOrder.lua
+2020/11/23 | 5364 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Components.lua
+2020/11/23 | 11083 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Distances.lua
+2020/11/23 | 6529 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/doc.lua
+2020/11/23 | 4099 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/FineTune.lua
+2020/11/23 | 39378 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/LayoutPipeline.lua
+2020/11/23 | 4477 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/library.lua
+2020/11/23 | 389 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control.lua
+2020/11/23 | 5400 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/NodeAnchors.lua
+2020/11/23 | 7167 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Orientation.lua
+2020/11/23 | 14802 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Sublayouts.lua
+2020/11/23 | 967 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Cluster.lua
+2020/11/23 | 8612 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Edge.lua
+2020/11/23 | 9652 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Graph.lua
+2020/11/23 | 2571 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Iterators.lua
+2020/11/23 | 6265 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Node.lua
+2020/11/23 | 5601 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Vector.lua
+2020/11/23 | 3574 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc.lua
+2020/11/23 | 1841 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/FastMultipoleEmbedder.lua
+2020/11/23 | 4073 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/FMMMLayout.lua
+2020/11/23 | 4151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/GEMLayout.lua
+2020/11/23 | 337 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased.lua
+2020/11/23 | 909 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/MultilevelLayout.lua
+2020/11/23 | 974 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/BarycenterPlacer.lua
+2020/11/23 | 1398 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/CirclePlacer.lua
+2020/11/23 | 954 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/EdgeCoverMerger.lua
+2020/11/23 | 973 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/IndependentSetMerger.lua
+2020/11/23 | 968 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/LocalBiconnectedMerger.lua
+2020/11/23 | 962 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MatchingMerger.lua
+2020/11/23 | 731 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MedianPlacer.lua
+2020/11/23 | 948 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/RandomMerger.lua
+2020/11/23 | 952 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/RandomPlacer.lua
+2020/11/23 | 1172 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/SolarMerger.lua
+2020/11/23 | 730 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/SolarPlacer.lua
+2020/11/23 | 953 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/ZeroPlacer.lua
+2020/11/23 | 2152 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderFRExact.lua
+2020/11/23 | 1838 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderFR.lua
+2020/11/23 | 2291 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderKK.lua
+2020/11/23 | 729 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/BarycenterHeuristic.lua
+2020/11/23 | 1238 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/CoffmanGrahamRanking.lua
+2020/11/23 | 823 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/DfsAcyclicSubgraph.lua
+2020/11/23 | 2964 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastHierarchyLayout.lua
+2020/11/23 | 2804 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastSimpleHierarchyLayout.lua
+2020/11/23 | 853 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyCycleRemoval.lua
+2020/11/23 | 734 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyInsertHeuristic.lua
+2020/11/23 | 1997 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/LongestPathRanking.lua
+2020/11/23 | 352 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered.lua
+2020/11/23 | 722 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/MedianHeuristic.lua
+2020/11/23 | 1151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/OptimalRanking.lua
+2020/11/23 | 1068 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SiftingHeuristic.lua
+2020/11/23 | 720 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SplitHeuristic.lua
+2020/11/23 | 3969 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SugiyamaLayout.lua
+2020/11/23 | 1433 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout/BalloonLayout.lua
+2020/11/23 | 2549 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout/CircularLayout.lua
+2020/11/23 | 357 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout.lua
+2020/11/23 | 350 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/AcyclicSubgraphModule.lua
+2020/11/23 | 342 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/HierarchyLayoutModule.lua
+2020/11/23 | 340 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/InitialPlacer.lua
+2020/11/23 | 344 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/MultilevelBuilder.lua
+2020/11/23 | 333 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/RankingModule.lua
+2020/11/23 | 357 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/TwoLayerCrossMin.lua
+2020/11/23 | 351 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/planarity.lua
+2020/11/23 | 2224 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/planarity/PlanarizationLayout.lua
+2020/11/23 | 970 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/ASCIIDisplayer.lua
+2020/11/23 | 1864 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/BindingToASCII.lua
+2020/11/23 | 802 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/library.lua
+2020/11/23 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples.lua
+2020/11/23 | 2351 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleDemo.lua
+2020/11/23 | 3706 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleEdgeDemo.lua
+2020/11/23 | 8444 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleHuffman.lua
+2020/11/23 | 3216 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/doc.lua
+2020/11/23 | 21326 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/GraphAnimationCoordination.lua
+2020/11/23 | 5287 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/GreedyTemporalCycleRemoval.lua
+2020/11/23 | 2861 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/layered.lua
+2020/11/23 | 931 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/library.lua
+2020/11/23 | 28852 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/Skambath2016.lua
+2020/11/23 | 18669 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/Supergraph.lua
+2020/11/23 | 5222 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/SupergraphVertexSplitOptimization.lua
+2020/11/23 | 1468 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/TimeSpec.lua
+2020/11/23 | 14370 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/CoarseGraph.lua
+2020/11/23 | 5149 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlCoarsening.lua
+2020/11/23 | 1563 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlDeclare.lua
+2020/11/23 | 3081 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlElectric.lua
+2020/11/23 | 3534 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlIteration.lua
+2020/11/23 | 1945 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlSprings.lua
+2020/11/23 | 1135 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlStart.lua
+2020/11/23 | 3937 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/FruchtermanReingold.lua
+2020/11/23 | 2968 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/HuSpringElectricalFW.lua
+2020/11/23 | 2463 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SimpleSpring.lua
+2020/11/23 | 4611 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityCloseness.lua
+2020/11/23 | 5693 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityDegree.lua
+2020/11/23 | 8196 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/CoarseGraphFW.lua
+2020/11/23 | 17151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/ForceController.lua
+2020/11/23 | 1105 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/ForceTemplate.lua
+2020/11/23 | 1741 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/InitialTemplate.lua
+2020/11/23 | 5082 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/PathLengthsFW.lua
+2020/11/23 | 4076 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/Preprocessing.lua
+2020/11/23 | 10197 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/doc.lua
+2020/11/23 | 2541 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceAbsoluteValue.lua
+2020/11/23 | 5227 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceCanvasDistance.lua
+2020/11/23 | 3057 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceCanvasPosition.lua
+2020/11/23 | 5401 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceGraphDistance.lua
+2020/11/23 | 3294 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToGrid.lua
+2020/11/23 | 3056 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToPoint.lua
+2020/11/23 | 1944 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/CircularInitialPositioning.lua
+2020/11/23 | 1715 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/GridInitialPositioning.lua
+2020/11/23 | 1508 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/RandomInitialPositioning.lua
+2020/11/23 | 2488 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/library.lua
+2020/11/23 | 5297 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/library.lua
+2020/11/23 | 386 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force.lua
+2020/11/23 | 7011 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/QuadTree.lua
+2020/11/23 | 22936 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalHu2006.lua
+2020/11/23 | 1087 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalLayouts.lua
+2020/11/23 | 19512 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalWalshaw2000.lua
+2020/11/23 | 13093 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringHu2006.lua
+2020/11/23 | 630 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringLayouts.lua
+2020/11/23 | 5258 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceCore.lua
+2020/11/23 | 34020 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToAlgorithms.lua
+2020/11/23 | 2472 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToC.lua
+2020/11/23 | 31025 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToDisplay.lua
+2020/11/23 | 394 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface.lua
+2020/11/23 | 3134 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/Scope.lua
+2020/11/23 | 8907 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CrossingMinimizationGansnerKNV1993.lua
+2020/11/23 | 3150 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/crossing_minimization.lua
+2020/11/23 | 1835 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalBergerS1990a.lua
+2020/11/23 | 1952 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalBergerS1990b.lua
+2020/11/23 | 3096 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalEadesLS1993.lua
+2020/11/23 | 1589 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalGansnerKNV1993.lua
+2020/11/23 | 4253 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/cycle_removal.lua
+2020/11/23 | 402 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/EdgeRoutingGansnerKNV1993.lua
+2020/11/23 | 1309 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/edge_routing.lua
+2020/11/23 | 3869 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/library.lua
+2020/11/23 | 4513 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered.lua
+2020/11/23 | 22045 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NetworkSimplex.lua
+2020/11/23 | 3640 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodePositioningGansnerKNV1993.lua
+2020/11/23 | 1790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/node_positioning.lua
+2020/11/23 | 3466 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingGansnerKNV1993.lua
+2020/11/23 | 1839 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/node_ranking.lua
+2020/11/23 | 982 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingMinimumHeight.lua
+2020/11/23 | 6774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/Ranking.lua
+2020/11/23 | 12227 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/Sugiyama.lua
+2020/11/23 | 4404 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Bezier.lua
+2020/11/23 | 2282 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/DepthFirstSearch.lua
+2020/11/23 | 2790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Direct.lua
+2020/11/23 | 3493 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Event.lua
+2020/11/23 | 2540 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/LookupTable.lua
+2020/11/23 | 11127 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib.lua
+2020/11/23 | 5573 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PathLengths.lua
+2020/11/23 | 6223 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PriorityQueue.lua
+2020/11/23 | 5984 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Simplifiers.lua
+2020/11/23 | 976 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Stack.lua
+2020/11/23 | 3159 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Storage.lua
+2020/11/23 | 2774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Transform.lua
+2020/11/23 | 1699 | graphics/pgf/base/lua/graphdrawing/pgf/gd.lua
+2020/11/23 | 21005 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Arc.lua
+2020/11/23 | 6254 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Collection.lua
+2020/11/23 | 6550 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Coordinate.lua
+2020/11/23 | 26467 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Digraph.lua
+2020/11/23 | 5923 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Edge.lua
+2020/11/23 | 1030 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Hyperedge.lua
+2020/11/23 | 331 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/library.lua
+2020/11/23 | 386 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model.lua
+2020/11/23 | 8605 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Path_arced.lua
+2020/11/23 | 33646 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Path.lua
+2020/11/23 | 11312 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Vertex.lua
+2020/11/23 | 926 | graphics/pgf/base/lua/graphdrawing/pgf/gd/ogdf/library.lua
+2020/11/23 | 384 | graphics/pgf/base/lua/graphdrawing/pgf/gd/ogdf.lua
+2020/11/23 | 3013 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees/Koerner2015.lua
+2020/11/23 | 442 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees/library.lua
+2020/11/23 | 376 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees.lua
+2020/11/23 | 1868 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/AuthorDefinedPhylogeny.lua
+2020/11/23 | 19618 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedMinimumEvolution.lua
+2020/11/23 | 12261 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedNearestNeighbourInterchange.lua
+2020/11/23 | 12413 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/DistanceMatrix.lua
+2020/11/23 | 934 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/library.lua
+2020/11/23 | 388 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics.lua
+2020/11/23 | 24998 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/Maeusle2012.lua
+2020/11/23 | 2288 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/PhylogeneticTree.lua
+2020/11/23 | 8432 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/SokalMichener1958.lua
+2020/11/23 | 22307 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/BoyerMyrvold2004.lua
+2020/11/23 | 19781 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/Embedding.lua
+2020/11/23 | 72 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/library.lua
+2020/11/23 | 1778 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/LinkedList.lua
+2020/11/23 | 873 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/List.lua
+2020/11/23 | 73 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar.lua
+2020/11/23 | 3034 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/parameters.lua
+2020/11/23 | 18773 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/PDP.lua
+2020/11/23 | 4326 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/PlanarLayout.lua
+2020/11/23 | 3107 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/ShiftMethod.lua
+2020/11/23 | 3183 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/Hints.lua
+2020/11/23 | 597 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/library.lua
+2020/11/23 | 374 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing.lua
+2020/11/23 | 2479 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/NecklaceRouting.lua
+2020/11/23 | 4937 | graphics/pgf/base/lua/graphdrawing/pgf/gd/tools/make_gd_wrap.lua
+2020/11/23 | 7163 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/ChildSpec.lua
+2020/11/23 | 11324 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/doc.lua
+2020/11/23 | 946 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/library.lua
+2020/11/23 | 364 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees.lua
+2020/11/23 | 5214 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/ReingoldTilford1981.lua
+2020/11/23 | 18668 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/SpanningTreeComputation.lua
+2020/11/23 | 1910 | graphics/pgf/base/lua/graphdrawing/pgf.lua
+2020/11/23 | 14534 | graphics/pgf/base/lua/luamath/pgf/luamath/functions.lua
+2020/11/23 | 16757 | graphics/pgf/base/lua/luamath/pgf/luamath/parser.lua
+2020/11/23 | 2095 | graphics/pgf/base/README
+2020/11/23 | 831 | graphics/pgf/base/source/BalloonLayout_script.h
+2020/11/23 | 577 | graphics/pgf/base/source/BarycenterHeuristic_script.h
+2020/11/23 | 1077 | graphics/pgf/base/source/BarycenterPlacer_script.h
+2020/11/23 | 1865 | graphics/pgf/base/source/CirclePlacer_script.h
+2020/11/23 | 1651 | graphics/pgf/base/source/CircularLayout_script.h
+2020/11/23 | 1057 | graphics/pgf/base/source/CoffmanGrahamRanking_script.h
+2020/11/23 | 575 | graphics/pgf/base/source/DfsAcyclicSubgraph_script.h
+2020/11/23 | 1017 | graphics/pgf/base/source/EdgeCoverMerger_script.h
+2020/11/23 | 823 | graphics/pgf/base/source/energybased_script.h
+2020/11/23 | 154 | graphics/pgf/base/source/ExampleLocalMakefileConfig.mk
+2020/11/23 | 1740 | graphics/pgf/base/source/FastHierarchyLayout_script.h
+2020/11/23 | 2238 | graphics/pgf/base/source/FastMultipoleEmbedder_script.h
+2020/11/23 | 1303 | graphics/pgf/base/source/FastSimpleHierarchyLayout_script.h
+2020/11/23 | 1334 | graphics/pgf/base/source/FMMMLayout_script.h
+2020/11/23 | 4445 | graphics/pgf/base/source/GEMLayout_script.h
+2020/11/23 | 575 | graphics/pgf/base/source/GreedyCycleRemoval_script.h
+2020/11/23 | 591 | graphics/pgf/base/source/GreedyInsertHeuristic_script.h
+2020/11/23 | 1104 | graphics/pgf/base/source/IndependentSetMerger_script.h
+2020/11/23 | 1080 | graphics/pgf/base/source/INSTALL
+2020/11/23 | 29582 | graphics/pgf/base/source/InterfaceFromC.c
+2020/11/23 | 5204 | graphics/pgf/base/source/InterfaceFromC++.c++
+2020/11/23 | 23778 | graphics/pgf/base/source/InterfaceFromC.h
+2020/11/23 | 4415 | graphics/pgf/base/source/InterfaceFromC++.h
+2020/11/23 | 2505 | graphics/pgf/base/source/InterfaceFromOGDF.c++
+2020/11/23 | 973 | graphics/pgf/base/source/InterfaceFromOGDF.h
+2020/11/23 | 1337 | graphics/pgf/base/source/layered_script.h
+2020/11/23 | 1101 | graphics/pgf/base/source/LocalBiconnectedMerger_script.h
+2020/11/23 | 1701 | graphics/pgf/base/source/LongestPathRanking_script.h
+2020/11/23 | 747 | graphics/pgf/base/source/MakefileConfig.mk
+2020/11/23 | 1033 | graphics/pgf/base/source/MatchingMerger_script.h
+2020/11/23 | 549 | graphics/pgf/base/source/MedianHeuristic_script.h
+2020/11/23 | 663 | graphics/pgf/base/source/MedianPlacer_script.h
+2020/11/23 | 302 | graphics/pgf/base/source/misclayout_script.h
+2020/11/23 | 586 | graphics/pgf/base/source/module_script.h
+2020/11/23 | 1000 | graphics/pgf/base/source/MultilevelLayout_script.h
+2020/11/23 | 1087 | graphics/pgf/base/source/multilevelmixer_script.h
+2020/11/23 | 553 | graphics/pgf/base/source/ogdf_script.c++
+2020/11/23 | 1022 | graphics/pgf/base/source/OptimalRanking_script.h
+2020/11/23 | 41150 | graphics/pgf/base/source/pgfmathtestsuite.tex
+2020/11/23 | 235 | graphics/pgf/base/source/planarity_script.h
+2020/11/23 | 1308 | graphics/pgf/base/source/PlanarizationLayout_script.h
+2020/11/23 | 981 | graphics/pgf/base/source/RandomMerger_script.h
+2020/11/23 | 989 | graphics/pgf/base/source/RandomPlacer_script.h
+2020/11/23 | 1169 | graphics/pgf/base/source/SiftingHeuristic_script.h
+2020/11/23 | 1572 | graphics/pgf/base/source/SimpleDemoC.c
+2020/11/23 | 1254 | graphics/pgf/base/source/SimpleDemoCPlusPlus.c++
+2020/11/23 | 1077 | graphics/pgf/base/source/SimpleDemoOGDF.c++
+2020/11/23 | 1222 | graphics/pgf/base/source/SolarMerger_script.h
+2020/11/23 | 655 | graphics/pgf/base/source/SolarPlacer_script.h
+2020/11/23 | 542 | graphics/pgf/base/source/SplitHeuristic_script.h
+2020/11/23 | 2556 | graphics/pgf/base/source/SpringEmbedderFRExact_script.h
+2020/11/23 | 1608 | graphics/pgf/base/source/SpringEmbedderFR_script.h
+2020/11/23 | 1280 | graphics/pgf/base/source/SpringEmbedderKK_script.h
+2020/11/23 | 1731 | graphics/pgf/base/source/SugiyamaLayout_script.h
+2020/11/23 | 1107 | graphics/pgf/base/source/tikzexternaltest.code.tex
+2020/11/23 | 255 | graphics/pgf/base/source/tikzexternaltestmakefile.tex
+2020/11/23 | 541 | graphics/pgf/base/source/tikzexternaltest.sharedpreamble.tex
+2020/11/23 | 251 | graphics/pgf/base/source/tikzexternaltest.tex
+2020/11/23 | 16959 | graphics/pgf/base/source/unittest_luamathparser.tex
+2020/11/23 | 968 | graphics/pgf/base/source/ZeroPlacer_script.h
+2020/11/23 | 262 | graphics/pgf/base/tex/example_graph_for_ascii_displayer.txt
+2020/11/23 | 782 | graphics/pgf/base/tex/LUA_CODING_STYLE
+2020/11/23 | 437 | graphics/pgf/base/tex/pgfarrows.sty
+2020/11/23 | 7327 | graphics/pgf/base/tex/pgfautomata.sty
+2020/11/23 | 344 | graphics/pgf/base/tex/pgfbaseimage.sty
+2020/11/23 | 429 | graphics/pgf/base/tex/pgfbaseimage.tex
+2020/11/23 | 344 | graphics/pgf/base/tex/pgfbaselayers.sty
+2020/11/23 | 431 | graphics/pgf/base/tex/pgfbaselayers.tex
+2020/11/23 | 388 | graphics/pgf/base/tex/pgfbasematrix.sty
+2020/11/23 | 475 | graphics/pgf/base/tex/pgfbasematrix.tex
+2020/11/23 | 344 | graphics/pgf/base/tex/pgfbasepatterns.sty
+2020/11/23 | 435 | graphics/pgf/base/tex/pgfbasepatterns.tex
+2020/11/23 | 384 | graphics/pgf/base/tex/pgfbaseplot.sty
+2020/11/23 | 467 | graphics/pgf/base/tex/pgfbaseplot.tex
+2020/11/23 | 388 | graphics/pgf/base/tex/pgfbaseshapes.sty
+2020/11/23 | 475 | graphics/pgf/base/tex/pgfbaseshapes.tex
+2020/11/23 | 398 | graphics/pgf/base/tex/pgfbasesnakes.sty
+2020/11/23 | 485 | graphics/pgf/base/tex/pgfbasesnakes.tex
+2020/11/23 | 24091 | graphics/pgf/base/tex/pgfcalendar.code.tex
+2020/11/23 | 328 | graphics/pgf/base/tex/pgfcalendar.sty
+2020/11/23 | 384 | graphics/pgf/base/tex/pgfcalendar.tex
+2020/11/23 | 926 | graphics/pgf/base/tex/pgf.cfg
+2020/11/23 | 21013 | graphics/pgf/base/tex/pgfcomp-version-0-65.sty
+2020/11/23 | 989 | graphics/pgf/base/tex/pgfcomp-version-1-18.sty
+2020/11/23 | 43820 | graphics/pgf/base/tex/pgfcorearrows.code.tex
+2020/11/23 | 992 | graphics/pgf/base/tex/pgfcore.code.tex
+2020/11/23 | 19324 | graphics/pgf/base/tex/pgfcoreexternal.code.tex
+2020/11/23 | 6038 | graphics/pgf/base/tex/pgfcoregraphicstate.code.tex
+2020/11/23 | 6944 | graphics/pgf/base/tex/pgfcoreimage.code.tex
+2020/11/23 | 4883 | graphics/pgf/base/tex/pgfcorelayers.code.tex
+2020/11/23 | 2544 | graphics/pgf/base/tex/pgfcoreobjects.code.tex
+2020/11/23 | 44195 | graphics/pgf/base/tex/pgfcorepathconstruct.code.tex
+2020/11/23 | 17311 | graphics/pgf/base/tex/pgfcorepathprocessing.code.tex
+2020/11/23 | 21302 | graphics/pgf/base/tex/pgfcorepathusage.code.tex
+2020/11/23 | 9690 | graphics/pgf/base/tex/pgfcorepatterns.code.tex
+2020/11/23 | 33335 | graphics/pgf/base/tex/pgfcorepoints.code.tex
+2020/11/23 | 2965 | graphics/pgf/base/tex/pgfcorequick.code.tex
+2020/11/23 | 5196 | graphics/pgf/base/tex/pgfcorerdf.code.tex
+2020/11/23 | 20726 | graphics/pgf/base/tex/pgfcorescopes.code.tex
+2020/11/23 | 35249 | graphics/pgf/base/tex/pgfcoreshade.code.tex
+2020/11/23 | 410 | graphics/pgf/base/tex/pgfcore.sty
+2020/11/23 | 432 | graphics/pgf/base/tex/pgfcore.tex
+2020/11/23 | 21989 | graphics/pgf/base/tex/pgfcoretransformations.code.tex
+2020/11/23 | 8893 | graphics/pgf/base/tex/pgfcoretransparency.code.tex
+2020/11/23 | 1017 | graphics/pgf/base/tex/pgfexternal.tex
+2020/11/23 | 1280 | graphics/pgf/base/tex/pgfexternalwithdepth.tex
+2020/11/23 | 23997 | graphics/pgf/base/tex/pgffor.code.tex
+2020/11/23 | 348 | graphics/pgf/base/tex/pgffor.sty
+2020/11/23 | 393 | graphics/pgf/base/tex/pgffor.tex
+2020/11/23 | 2220 | graphics/pgf/base/tex/pgfheaps.sty
+2020/11/23 | 3063 | graphics/pgf/base/tex/pgfint.code.tex
+2020/11/23 | 36938 | graphics/pgf/base/tex/pgfkeys.code.tex
+2020/11/23 | 37431 | graphics/pgf/base/tex/pgfkeysfiltered.code.tex
+2020/11/23 | 274 | graphics/pgf/base/tex/pgfkeys.sty
+2020/11/23 | 372 | graphics/pgf/base/tex/pgfkeys.tex
+2020/11/23 | 31874 | graphics/pgf/base/tex/pgflibraryarrows.code.tex
+2020/11/23 | 58801 | graphics/pgf/base/tex/pgflibraryarrows.meta.code.tex
+2020/11/23 | 6846 | graphics/pgf/base/tex/pgflibraryarrows.spaced.code.tex
+2020/11/23 | 403 | graphics/pgf/base/tex/pgflibraryarrows.sty
+2020/11/23 | 411 | graphics/pgf/base/tex/pgflibraryautomata.sty
+2020/11/23 | 14117 | graphics/pgf/base/tex/pgflibrarycurvilinear.code.tex
+2020/11/23 | 4855 | graphics/pgf/base/tex/pgflibrarydatavisualization.barcharts.code.tex
+2020/11/23 | 6017 | graphics/pgf/base/tex/pgflibrarydatavisualization.formats.functions.code.tex
+2020/11/23 | 7235 | graphics/pgf/base/tex/pgflibrarydatavisualization.polar.code.tex
+2020/11/23 | 13375 | graphics/pgf/base/tex/pgflibrarydecorations.footprints.code.tex
+2020/11/23 | 2739 | graphics/pgf/base/tex/pgflibrarydecorations.fractals.code.tex
+2020/11/23 | 5220 | graphics/pgf/base/tex/pgflibrarydecorations.markings.code.tex
+2020/11/23 | 8843 | graphics/pgf/base/tex/pgflibrarydecorations.pathmorphing.code.tex
+2020/11/23 | 7474 | graphics/pgf/base/tex/pgflibrarydecorations.pathreplacing.code.tex
+2020/11/23 | 16467 | graphics/pgf/base/tex/pgflibrarydecorations.shapes.code.tex
+2020/11/23 | 12656 | graphics/pgf/base/tex/pgflibrarydecorations.text.code.tex
+2020/11/23 | 2563 | graphics/pgf/base/tex/pgflibraryfadings.code.tex
+2020/11/23 | 15631 | graphics/pgf/base/tex/pgflibraryfixedpointarithmetic.code.tex
+2020/11/23 | 86071 | graphics/pgf/base/tex/pgflibraryfpu.code.tex
+2020/11/23 | 430 | graphics/pgf/base/tex/pgflibrarygraphdrawing.circular.code.tex
+2020/11/23 | 34957 | graphics/pgf/base/tex/pgflibrarygraphdrawing.code.tex
+2020/11/23 | 366 | graphics/pgf/base/tex/pgflibrarygraphdrawing.examples.code.tex
+2020/11/23 | 3397 | graphics/pgf/base/tex/pgflibrarygraphdrawing.force.code.tex
+2020/11/23 | 368 | graphics/pgf/base/tex/pgflibrarygraphdrawing.layered.code.tex
+2020/11/23 | 493 | graphics/pgf/base/tex/pgflibrarygraphdrawing.trees.code.tex
+2020/11/23 | 44571 | graphics/pgf/base/tex/pgflibraryintersections.code.tex
+2020/11/23 | 8251 | graphics/pgf/base/tex/pgflibrarylindenmayersystems.code.tex
+2020/11/23 | 22123 | graphics/pgf/base/tex/pgflibraryluamath.code.tex
+2020/11/23 | 7936 | graphics/pgf/base/tex/pgflibrarypatterns.code.tex
+2020/11/23 | 15474 | graphics/pgf/base/tex/pgflibrarypatterns.meta.code.tex
+2020/11/23 | 32995 | graphics/pgf/base/tex/pgflibraryplothandlers.code.tex
+2020/11/23 | 416 | graphics/pgf/base/tex/pgflibraryplothandlers.sty
+2020/11/23 | 14524 | graphics/pgf/base/tex/pgflibraryplotmarks.code.tex
+2020/11/23 | 410 | graphics/pgf/base/tex/pgflibraryplotmarks.sty
+2020/11/23 | 20166 | graphics/pgf/base/tex/pgflibraryprofiler.code.tex
+2020/11/23 | 13134 | graphics/pgf/base/tex/pgflibraryshadings.code.tex
+2020/11/23 | 91587 | graphics/pgf/base/tex/pgflibraryshapes.arrows.code.tex
+2020/11/23 | 33336 | graphics/pgf/base/tex/pgflibraryshapes.callouts.code.tex
+2020/11/23 | 517 | graphics/pgf/base/tex/pgflibraryshapes.code.tex
+2020/11/23 | 4878 | graphics/pgf/base/tex/pgflibraryshapes.gates.ee.code.tex
+2020/11/23 | 22892 | graphics/pgf/base/tex/pgflibraryshapes.gates.ee.IEC.code.tex
+2020/11/23 | 3594 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.code.tex
+2020/11/23 | 24617 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.IEC.code.tex
+2020/11/23 | 85454 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.US.code.tex
+2020/11/23 | 160993 | graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
+2020/11/23 | 46241 | graphics/pgf/base/tex/pgflibraryshapes.misc.code.tex
+2020/11/23 | 62281 | graphics/pgf/base/tex/pgflibraryshapes.multipart.code.tex
+2020/11/23 | 405 | graphics/pgf/base/tex/pgflibraryshapes.sty
+2020/11/23 | 90515 | graphics/pgf/base/tex/pgflibraryshapes.symbols.code.tex
+2020/11/23 | 499 | graphics/pgf/base/tex/pgflibrarysnakes.code.tex
+2020/11/23 | 404 | graphics/pgf/base/tex/pgflibrarysnakes.sty
+2020/11/23 | 24742 | graphics/pgf/base/tex/pgflibrarysvg.path.code.tex
+2020/11/23 | 415 | graphics/pgf/base/tex/pgflibrarytikzbackgrounds.sty
+2020/11/23 | 400 | graphics/pgf/base/tex/pgflibrarytikztrees.sty
+2020/11/23 | 6995 | graphics/pgf/base/tex/pgflibrarytimelines.code.tex
+2020/11/23 | 2544 | graphics/pgf/base/tex/pgfmanual.code.tex
+2020/11/23 | 57255 | graphics/pgf/base/tex/pgfmanual-en-macros.tex
+2020/11/23 | 15497 | graphics/pgf/base/tex/pgfmanual.pdflinks.code.tex
+2020/11/23 | 50671 | graphics/pgf/base/tex/pgfmanual.prettyprinter.code.tex
+2020/11/23 | 332 | graphics/pgf/base/tex/pgfmanual.sty
+2020/11/23 | 13391 | graphics/pgf/base/tex/pgfmathcalc.code.tex
+2020/11/23 | 521 | graphics/pgf/base/tex/pgfmath.code.tex
+2020/11/23 | 104935 | graphics/pgf/base/tex/pgfmathfloat.code.tex
+2020/11/23 | 10165 | graphics/pgf/base/tex/pgfmathfunctions.base.code.tex
+2020/11/23 | 28178 | graphics/pgf/base/tex/pgfmathfunctions.basic.code.tex
+2020/11/23 | 9989 | graphics/pgf/base/tex/pgfmathfunctions.code.tex
+2020/11/23 | 3865 | graphics/pgf/base/tex/pgfmathfunctions.comparison.code.tex
+2020/11/23 | 3177 | graphics/pgf/base/tex/pgfmathfunctions.integerarithmetics.code.tex
+2020/11/23 | 10925 | graphics/pgf/base/tex/pgfmathfunctions.misc.code.tex
+2020/11/23 | 7789 | graphics/pgf/base/tex/pgfmathfunctions.random.code.tex
+2020/11/23 | 3379 | graphics/pgf/base/tex/pgfmathfunctions.round.code.tex
+2020/11/23 | 92405 | graphics/pgf/base/tex/pgfmathfunctions.trigonometric.code.tex
+2020/11/23 | 6958 | graphics/pgf/base/tex/pgfmathode.code.tex
+2020/11/23 | 37376 | graphics/pgf/base/tex/pgfmathparser.code.tex
+2020/11/23 | 306 | graphics/pgf/base/tex/pgfmath.sty
+2020/11/23 | 432 | graphics/pgf/base/tex/pgfmath.tex
+2020/11/23 | 8471 | graphics/pgf/base/tex/pgfmathutil.code.tex
+2020/11/23 | 39636 | graphics/pgf/base/tex/pgfmoduleanimations.code.tex
+2020/11/23 | 10901 | graphics/pgf/base/tex/pgfmodulebending.code.tex
+2020/11/23 | 95375 | graphics/pgf/base/tex/pgfmoduledatavisualization.code.tex
+2020/11/23 | 71722 | graphics/pgf/base/tex/pgfmoduledecorations.code.tex
+2020/11/23 | 21201 | graphics/pgf/base/tex/pgfmodulematrix.code.tex
+2020/11/23 | 12243 | graphics/pgf/base/tex/pgfmodulenonlineartransformations.code.tex
+2020/11/23 | 27080 | graphics/pgf/base/tex/pgfmoduleoo.code.tex
+2020/11/23 | 19581 | graphics/pgf/base/tex/pgfmoduleparser.code.tex
+2020/11/23 | 16121 | graphics/pgf/base/tex/pgfmoduleplot.code.tex
+2020/11/23 | 43260 | graphics/pgf/base/tex/pgfmoduleshapes.code.tex
+2020/11/23 | 10130 | graphics/pgf/base/tex/pgfmodulesnakes.code.tex
+2020/11/23 | 1918 | graphics/pgf/base/tex/pgfmodulesorting.code.tex
+2020/11/23 | 434 | graphics/pgf/base/tex/pgfnodes.sty
+2020/11/23 | 36299 | graphics/pgf/base/tex/pgfpages.sty
+2020/11/23 | 332 | graphics/pgf/base/tex/pgfparser.sty
+2020/11/23 | 3727 | graphics/pgf/base/tex/pgfpict2e.sty
+2020/11/23 | 4494 | graphics/pgf/base/tex/pgfrcs.code.tex
+2020/11/23 | 325 | graphics/pgf/base/tex/pgfrcs.sty
+2020/11/23 | 462 | graphics/pgf/base/tex/pgfrcs.tex
+2020/11/23 | 463 | graphics/pgf/base/tex/pgf.revision.tex
+2020/11/23 | 435 | graphics/pgf/base/tex/pgfshade.sty
+2020/11/23 | 1090 | graphics/pgf/base/tex/pgf.sty
+2020/11/23 | 59652 | graphics/pgf/base/tex/pgfsysanimations.code.tex
+2020/11/23 | 60544 | graphics/pgf/base/tex/pgfsys.code.tex
+2020/11/23 | 5546 | graphics/pgf/base/tex/pgfsys-common-pdf.def
+2020/11/23 | 6762 | graphics/pgf/base/tex/pgfsys-common-pdf-via-dvi.def
+2020/11/23 | 22211 | graphics/pgf/base/tex/pgfsys-common-postscript.def
+2020/11/23 | 62448 | graphics/pgf/base/tex/pgfsys-common-svg.def
+2020/11/23 | 11349 | graphics/pgf/base/tex/pgfsys-dvi.def
+2020/11/23 | 2627 | graphics/pgf/base/tex/pgfsys-dvipdfm.def
+2020/11/23 | 18491 | graphics/pgf/base/tex/pgfsys-dvipdfmx.def
+2020/11/23 | 23738 | graphics/pgf/base/tex/pgfsys-dvips.def
+2020/11/23 | 1705 | graphics/pgf/base/tex/pgfsys-dvisvgm4ht.def
+2020/11/23 | 5510 | graphics/pgf/base/tex/pgfsys-dvisvgm.def
+2020/11/23 | 13244 | graphics/pgf/base/tex/pgfsys-luatex.def
+2020/11/23 | 12601 | graphics/pgf/base/tex/pgfsys-pdftex.def
+2020/11/23 | 1896 | graphics/pgf/base/tex/pgfsysprotocol.code.tex
+2020/11/23 | 7778 | graphics/pgf/base/tex/pgfsyssoftpath.code.tex
+2020/11/23 | 443 | graphics/pgf/base/tex/pgfsys.sty
+2020/11/23 | 523 | graphics/pgf/base/tex/pgfsys.tex
+2020/11/23 | 17612 | graphics/pgf/base/tex/pgfsys-tex4ht.def
+2020/11/23 | 2763 | graphics/pgf/base/tex/pgfsys-textures.def
+2020/11/23 | 2758 | graphics/pgf/base/tex/pgfsys-vtex.def
+2020/11/23 | 2926 | graphics/pgf/base/tex/pgfsys-xetex.def
+2020/11/23 | 503 | graphics/pgf/base/tex/pgf.tex
+2020/11/23 | 7251 | graphics/pgf/base/tex/pgfutil-common-lists.tex
+2020/11/23 | 28579 | graphics/pgf/base/tex/pgfutil-common.tex
+2020/11/23 | 11777 | graphics/pgf/base/tex/pgfutil-context.def
+2020/11/23 | 6860 | graphics/pgf/base/tex/pgfutil-latex.def
+2020/11/23 | 10009 | graphics/pgf/base/tex/pgfutil-plain.def
+2020/11/23 | 188050 | graphics/pgf/base/tex/tikz.code.tex
+2020/11/23 | 68833 | graphics/pgf/base/tex/tikzexternalshared.code.tex
+2020/11/23 | 5292 | graphics/pgf/base/tex/tikzexternal.sty
+2020/11/23 | 3243 | graphics/pgf/base/tex/tikzlibrary3d.code.tex
+2020/11/23 | 3614 | graphics/pgf/base/tex/tikzlibraryangles.code.tex
+2020/11/23 | 33432 | graphics/pgf/base/tex/tikzlibraryanimations.code.tex
+2020/11/23 | 319 | graphics/pgf/base/tex/tikzlibraryarrows.code.tex
+2020/11/23 | 3986 | graphics/pgf/base/tex/tikzlibraryautomata.code.tex
+2020/11/23 | 380 | graphics/pgf/base/tex/tikzlibrarybabel.code.tex
+2020/11/23 | 4572 | graphics/pgf/base/tex/tikzlibrarybackgrounds.code.tex
+2020/11/23 | 345 | graphics/pgf/base/tex/tikzlibrarybending.code.tex
+2020/11/23 | 15929 | graphics/pgf/base/tex/tikzlibrarycalc.code.tex
+2020/11/23 | 12653 | graphics/pgf/base/tex/tikzlibrarycalendar.code.tex
+2020/11/23 | 6810 | graphics/pgf/base/tex/tikzlibrarychains.code.tex
+2020/11/23 | 8724 | graphics/pgf/base/tex/tikzlibrarycircuits.code.tex
+2020/11/23 | 4177 | graphics/pgf/base/tex/tikzlibrarycircuits.ee.code.tex
+2020/11/23 | 9614 | graphics/pgf/base/tex/tikzlibrarycircuits.ee.IEC.code.tex
+2020/11/23 | 590 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.CDH.code.tex
+2020/11/23 | 946 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.code.tex
+2020/11/23 | 2108 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.IEC.code.tex
+2020/11/23 | 1571 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.US.code.tex
+2020/11/23 | 2919 | graphics/pgf/base/tex/tikzlibrarydatavisualization.3d.code.tex
+2020/11/23 | 997 | graphics/pgf/base/tex/tikzlibrarydatavisualization.barcharts.code.tex
+2020/11/23 | 93853 | graphics/pgf/base/tex/tikzlibrarydatavisualization.code.tex
+2020/11/23 | 414 | graphics/pgf/base/tex/tikzlibrarydatavisualization.formats.functions.code.tex
+2020/11/23 | 20502 | graphics/pgf/base/tex/tikzlibrarydatavisualization.polar.code.tex
+2020/11/23 | 632 | graphics/pgf/base/tex/tikzlibrarydatavisualization.sparklines.code.tex
+2020/11/23 | 5493 | graphics/pgf/base/tex/tikzlibrarydecorations.code.tex
+2020/11/23 | 319 | graphics/pgf/base/tex/tikzlibrarydecorations.footprints.code.tex
+2020/11/23 | 317 | graphics/pgf/base/tex/tikzlibrarydecorations.fractals.code.tex
+2020/11/23 | 788 | graphics/pgf/base/tex/tikzlibrarydecorations.markings.code.tex
+2020/11/23 | 321 | graphics/pgf/base/tex/tikzlibrarydecorations.pathmorphing.code.tex
+2020/11/23 | 1319 | graphics/pgf/base/tex/tikzlibrarydecorations.pathreplacing.code.tex
+2020/11/23 | 315 | graphics/pgf/base/tex/tikzlibrarydecorations.shapes.code.tex
+2020/11/23 | 29754 | graphics/pgf/base/tex/tikzlibrarydecorations.text.code.tex
+2020/11/23 | 1169 | graphics/pgf/base/tex/tikzlibraryer.code.tex
+2020/11/23 | 3823 | graphics/pgf/base/tex/tikzlibraryexternal.code.tex
+2020/11/23 | 1179 | graphics/pgf/base/tex/tikzlibraryfadings.code.tex
+2020/11/23 | 3643 | graphics/pgf/base/tex/tikzlibraryfit.code.tex
+2020/11/23 | 276 | graphics/pgf/base/tex/tikzlibraryfixedpointarithmetic.code.tex
+2020/11/23 | 74959 | graphics/pgf/base/tex/tikzlibraryfolding.code.tex
+2020/11/23 | 283 | graphics/pgf/base/tex/tikzlibraryfpu.code.tex
+2020/11/23 | 7275 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.code.tex
+2020/11/23 | 532 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.evolving.code.tex
+2020/11/23 | 86658 | graphics/pgf/base/tex/tikzlibrarygraphs.code.tex
+2020/11/23 | 2576 | graphics/pgf/base/tex/tikzlibrarygraphs.standard.code.tex
+2020/11/23 | 5286 | graphics/pgf/base/tex/tikzlibraryintersections.code.tex
+2020/11/23 | 2866 | graphics/pgf/base/tex/tikzlibrarylindenmayersystems.code.tex
+2020/11/23 | 25517 | graphics/pgf/base/tex/tikzlibrarymath.code.tex
+2020/11/23 | 4202 | graphics/pgf/base/tex/tikzlibrarymatrix.code.tex
+2020/11/23 | 14804 | graphics/pgf/base/tex/tikzlibrarymindmap.code.tex
+2020/11/23 | 770 | graphics/pgf/base/tex/tikzlibrarypatterns.code.tex
+2020/11/23 | 3036 | graphics/pgf/base/tex/tikzlibrarypatterns.meta.code.tex
+2020/11/23 | 3544 | graphics/pgf/base/tex/tikzlibraryperspective.code.tex
+2020/11/23 | 4375 | graphics/pgf/base/tex/tikzlibrarypetri.code.tex
+2020/11/23 | 331 | graphics/pgf/base/tex/tikzlibraryplothandlers.code.tex
+2020/11/23 | 325 | graphics/pgf/base/tex/tikzlibraryplotmarks.code.tex
+2020/11/23 | 3937 | graphics/pgf/base/tex/tikzlibrarypositioning.code.tex
+2020/11/23 | 3931 | graphics/pgf/base/tex/tikzlibraryquotes.code.tex
+2020/11/23 | 7646 | graphics/pgf/base/tex/tikzlibraryrdf.code.tex
+2020/11/23 | 981 | graphics/pgf/base/tex/tikzlibraryscopes.code.tex
+2020/11/23 | 708 | graphics/pgf/base/tex/tikzlibraryshadings.code.tex
+2020/11/23 | 2889 | graphics/pgf/base/tex/tikzlibraryshadows.code.tex
+2020/11/23 | 410 | graphics/pgf/base/tex/tikzlibraryshapes.arrows.code.tex
+2020/11/23 | 1201 | graphics/pgf/base/tex/tikzlibraryshapes.callouts.code.tex
+2020/11/23 | 494 | graphics/pgf/base/tex/tikzlibraryshapes.code.tex
+2020/11/23 | 1532 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.IEC.code.tex
+2020/11/23 | 1303 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.US.code.tex
+2020/11/23 | 339 | graphics/pgf/base/tex/tikzlibraryshapes.geometric.code.tex
+2020/11/23 | 329 | graphics/pgf/base/tex/tikzlibraryshapes.misc.code.tex
+2020/11/23 | 919 | graphics/pgf/base/tex/tikzlibraryshapes.multipart.code.tex
+2020/11/23 | 475 | graphics/pgf/base/tex/tikzlibraryshapes.symbols.code.tex
+2020/11/23 | 2732 | graphics/pgf/base/tex/tikzlibrarysnakes.code.tex
+2020/11/23 | 4070 | graphics/pgf/base/tex/tikzlibraryspy.code.tex
+2020/11/23 | 911 | graphics/pgf/base/tex/tikzlibrarysvg.path.code.tex
+2020/11/23 | 1040 | graphics/pgf/base/tex/tikzlibrarythrough.code.tex
+2020/11/23 | 11395 | graphics/pgf/base/tex/tikzlibrarytopaths.code.tex
+2020/11/23 | 3360 | graphics/pgf/base/tex/tikzlibrarytrees.code.tex
+2020/11/23 | 2184 | graphics/pgf/base/tex/tikzlibraryturtle.code.tex
+2020/11/23 | 1718 | graphics/pgf/base/tex/tikzlibraryviews.code.tex
+2020/11/23 | 339 | graphics/pgf/base/tex/tikz.sty
+2020/11/23 | 448 | graphics/pgf/base/tex/tikz.tex
+2020/11/23 | 457 | graphics/pgf/base/tex/t-pgfbim.tex
+2020/11/23 | 349 | graphics/pgf/base/tex/t-pgfbla.tex
+2020/11/23 | 393 | graphics/pgf/base/tex/t-pgfbma.tex
+2020/11/23 | 388 | graphics/pgf/base/tex/t-pgfbpl.tex
+2020/11/23 | 351 | graphics/pgf/base/tex/t-pgfbpt.tex
+2020/11/23 | 393 | graphics/pgf/base/tex/t-pgfbsh.tex
+2020/11/23 | 404 | graphics/pgf/base/tex/t-pgfbsn.tex
+2020/11/23 | 691 | graphics/pgf/base/tex/t-pgfcal.tex
+2020/11/23 | 1286 | graphics/pgf/base/tex/t-pgfcor.tex
+2020/11/23 | 666 | graphics/pgf/base/tex/t-pgffor.tex
+2020/11/23 | 633 | graphics/pgf/base/tex/t-pgfkey.tex
+2020/11/23 | 724 | graphics/pgf/base/tex/t-pgfmat.tex
+2020/11/23 | 1296 | graphics/pgf/base/tex/t-pgfmod.tex
+2020/11/23 | 787 | graphics/pgf/base/tex/t-pgfrcs.tex
+2020/11/23 | 796 | graphics/pgf/base/tex/t-pgfsys.tex
+2020/11/23 | 543 | graphics/pgf/base/tex/t-pgf.tex
+2020/11/23 | 791 | graphics/pgf/base/tex/t-tikz.tex
+2020/11/23 | 2232 | graphics/pgf/base/tex/xxcolor.sty
+2020/11/23 | 13122232 | graphics/pgf/base.zip
2019/01/29 | 204715 | graphics/pgf/contrib/adigraph/adigraph_documentation.pdf
2019/01/29 | 26365 | graphics/pgf/contrib/adigraph/adigraph_documentation.tex
2018/12/01 | 158870 | graphics/pgf/contrib/adigraph/adigraph-large.png
@@ -167574,7 +167574,7 @@
2019/06/11 | 58442 | install/fonts/zlmtt.tds.zip
2019/12/25 | 20258750 | install/graphics/ketcindy.tds.zip
2012/12/03 | 1483078 | install/graphics/mfpic.tds.zip
-2020/10/01 | 13189701 | install/graphics/pgf/base/pgf.tds.zip
+2020/11/23 | 13195658 | install/graphics/pgf/base/pgf.tds.zip
2013/02/23 | 92056 | install/graphics/pgf/contrib/battleship.tds.zip
2016/02/19 | 701759 | install/graphics/pgf/contrib/celtic.tds.zip
2020/10/14 | 2180258 | install/graphics/pgf/contrib/circuitikz.tds.zip
@@ -182091,13 +182091,13 @@
1996/12/16 | 207198 | macros/generic/rlepsf/rlepsdoc.ps
1996/12/16 | 6503 | macros/generic/rlepsf/rlepsf.tex
2005/08/12 | 70707 | macros/generic/rlepsf.zip
-2020/03/12 | 2121 | macros/generic/schemata/Makefile
-2020/03/14 | 3892 | macros/generic/schemata/README
-2020/03/14 | 85866 | macros/generic/schemata/schemata.dtx
-2020/03/14 | 629768 | macros/generic/schemata/schemata.pdf
+2020/10/09 | 3914 | macros/generic/schemata/Makefile
+2020/11/23 | 8078 | macros/generic/schemata/README.md
+2020/11/23 | 101948 | macros/generic/schemata/schemata.dtx
+2020/11/23 | 644097 | macros/generic/schemata/schemata.pdf
2020/03/08 | 91134 | macros/generic/schemata/schemata.png
-2020/03/13 | 12555 | macros/generic/schemata/schematest.tex
-2020/03/15 | 737138 | macros/generic/schemata.zip
+2020/11/23 | 12221 | macros/generic/schemata/schematest.tex
+2020/11/23 | 755166 | macros/generic/schemata.zip
2006/05/29 | 25940 | macros/generic/shade/description.pdf
2011/04/25 | 1619 | macros/generic/shade/description.tex
2011/04/25 | 1437 | macros/generic/shade/README
@@ -184974,11 +184974,11 @@
2004/05/09 | 2763 | macros/latex/contrib/arcs/arcstest.tex
2004/05/09 | 455 | macros/latex/contrib/arcs/README
2005/04/28 | 55630 | macros/latex/contrib/arcs.zip
-2019/06/26 | 16155 | macros/latex/contrib/arraycols/arraycols.dtx
-2019/06/03 | 1983 | macros/latex/contrib/arraycols/arraycols.ins
-2019/06/26 | 457900 | macros/latex/contrib/arraycols/arraycols.pdf
-2019/06/26 | 901 | macros/latex/contrib/arraycols/README.md
-2019/06/26 | 462879 | macros/latex/contrib/arraycols.zip
+2020/11/23 | 16694 | macros/latex/contrib/arraycols/arraycols.dtx
+2020/11/23 | 1993 | macros/latex/contrib/arraycols/arraycols.ins
+2020/11/23 | 458546 | macros/latex/contrib/arraycols/arraycols.pdf
+2019/06/27 | 900 | macros/latex/contrib/arraycols/README.md
+2020/11/23 | 463731 | macros/latex/contrib/arraycols.zip
2013/09/04 | 35591 | macros/latex/contrib/arraysort/arraysort.dtx
2013/08/21 | 1785 | macros/latex/contrib/arraysort/arraysort.ins
2013/09/04 | 302651 | macros/latex/contrib/arraysort/arraysort.pdf
@@ -200561,12 +200561,12 @@
2011/11/27 | 437781 | macros/latex/contrib/nag/nag.pdf
2007/02/25 | 333 | macros/latex/contrib/nag/README
2011/12/03 | 453680 | macros/latex/contrib/nag.zip
-2020/02/26 | 50109 | macros/latex/contrib/nameauth/examples.tex
-2020/01/18 | 2117 | macros/latex/contrib/nameauth/Makefile
-2020/02/27 | 382436 | macros/latex/contrib/nameauth/nameauth.dtx
-2020/02/27 | 1049659 | macros/latex/contrib/nameauth/nameauth.pdf
-2020/02/27 | 4025 | macros/latex/contrib/nameauth/README
-2020/02/27 | 1137413 | macros/latex/contrib/nameauth.zip
+2020/11/23 | 56766 | macros/latex/contrib/nameauth/examples.tex
+2020/11/19 | 4001 | macros/latex/contrib/nameauth/Makefile
+2020/11/23 | 520803 | macros/latex/contrib/nameauth/nameauth.dtx
+2020/11/23 | 1144403 | macros/latex/contrib/nameauth/nameauth.pdf
+2020/11/23 | 7623 | macros/latex/contrib/nameauth/README.md
+2020/11/23 | 1265171 | macros/latex/contrib/nameauth.zip
2004/03/18 | 10392 | macros/latex/contrib/namespc/namespc.dtx
2004/03/18 | 137288 | macros/latex/contrib/namespc/namespc.pdf
2004/03/18 | 1409 | macros/latex/contrib/namespc/README
@@ -200868,13 +200868,13 @@
1996/03/22 | 18862 | macros/latex/contrib/niceframe/umrandb.mf
2015/01/17 | 1370 | macros/latex/contrib/niceframe/umrand.mf
2015/01/17 | 287910 | macros/latex/contrib/niceframe.zip
-2020/11/08 | 501001 | macros/latex/contrib/nicematrix/nicematrix.dtx
-2020/11/08 | 424627 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
-2020/11/06 | 146561 | macros/latex/contrib/nicematrix/nicematrix-french.tex
+2020/11/23 | 509635 | macros/latex/contrib/nicematrix/nicematrix.dtx
+2020/11/23 | 429184 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
+2020/11/23 | 147198 | macros/latex/contrib/nicematrix/nicematrix-french.tex
2020/07/08 | 1423 | macros/latex/contrib/nicematrix/nicematrix.ins
-2020/11/08 | 1061552 | macros/latex/contrib/nicematrix/nicematrix.pdf
+2020/11/23 | 1078185 | macros/latex/contrib/nicematrix/nicematrix.pdf
2020/06/07 | 1005 | macros/latex/contrib/nicematrix/README.md
-2020/11/08 | 1579653 | macros/latex/contrib/nicematrix.zip
+2020/11/23 | 1602396 | macros/latex/contrib/nicematrix.zip
2015/11/21 | 217 | macros/latex/contrib/nicetext/ANNOUNCE.txt
2012/03/18 | 254582 | macros/latex/contrib/nicetext/demo/arseneau.pdf
2011/09/14 | 10 | macros/latex/contrib/nicetext/demo/iso.txt
@@ -255086,11 +255086,11 @@
2019/02/28 | 89944 | systems/texlive/tlnet/archive/acmconf.doc.r15878.tar.xz
2019/02/28 | 4192 | systems/texlive/tlnet/archive/acmconf.r15878.tar.xz
2019/02/28 | 18700 | systems/texlive/tlnet/archive/acmconf.source.r15878.tar.xz
-2020/11/10 | 1199816 | systems/texlive/tlnet/archive/acro.doc.r56884.tar.xz
+2020/11/23 | 1216364 | systems/texlive/tlnet/archive/acro.doc.r56982.tar.xz
2020/04/16 | 280324 | systems/texlive/tlnet/archive/acronym.doc.r54758.tar.xz
2020/04/16 | 4980 | systems/texlive/tlnet/archive/acronym.r54758.tar.xz
2020/04/16 | 17392 | systems/texlive/tlnet/archive/acronym.source.r54758.tar.xz
-2020/11/10 | 41572 | systems/texlive/tlnet/archive/acro.r56884.tar.xz
+2020/11/23 | 41696 | systems/texlive/tlnet/archive/acro.r56982.tar.xz
2019/02/28 | 157936 | systems/texlive/tlnet/archive/acroterm.doc.r20498.tar.xz
2019/02/28 | 1424 | systems/texlive/tlnet/archive/acroterm.r20498.tar.xz
2019/02/28 | 3832 | systems/texlive/tlnet/archive/acroterm.source.r20498.tar.xz
@@ -256790,8 +256790,8 @@
2020/01/18 | 714860 | systems/texlive/tlnet/archive/chemgreek.doc.r53437.tar.xz
2020/01/18 | 7120 | systems/texlive/tlnet/archive/chemgreek.r53437.tar.xz
2019/02/28 | 4992 | systems/texlive/tlnet/archive/chem-journal.r15878.tar.xz
-2020/03/09 | 1020796 | systems/texlive/tlnet/archive/chemmacros.doc.r54191.tar.xz
-2020/03/09 | 44344 | systems/texlive/tlnet/archive/chemmacros.r54191.tar.xz
+2020/11/23 | 1024756 | systems/texlive/tlnet/archive/chemmacros.doc.r56983.tar.xz
+2020/11/23 | 44372 | systems/texlive/tlnet/archive/chemmacros.r56983.tar.xz
2019/10/03 | 790716 | systems/texlive/tlnet/archive/chemnum.doc.r52256.tar.xz
2019/10/03 | 11560 | systems/texlive/tlnet/archive/chemnum.r52256.tar.xz
2019/11/20 | 878916 | systems/texlive/tlnet/archive/chemplants.doc.r52863.tar.xz
@@ -260182,9 +260182,25 @@
2020/05/17 | 98036 | systems/texlive/tlnet/archive/hyperref.r55161.tar.xz
2020/05/17 | 446768 | systems/texlive/tlnet/archive/hyperref.source.r55161.tar.xz
2019/02/28 | 32960 | systems/texlive/tlnet/archive/hyper.source.r17357.tar.xz
-2020/11/03 | 1141540 | systems/texlive/tlnet/archive/hyperxmp.doc.r56839.tar.xz
-2020/11/03 | 12748 | systems/texlive/tlnet/archive/hyperxmp.r56839.tar.xz
-2020/11/03 | 155716 | systems/texlive/tlnet/archive/hyperxmp.source.r56839.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.aarch64-linux.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.amd64-freebsd.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.amd64-netbsd.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.armhf-linux.r56984.tar.xz
+2020/11/23 | 1147012 | systems/texlive/tlnet/archive/hyperxmp.doc.r56984.tar.xz
+2020/11/23 | 352 | systems/texlive/tlnet/archive/hyperxmp.i386-cygwin.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-freebsd.r56984.tar.xz
+2020/11/23 | 352 | systems/texlive/tlnet/archive/hyperxmp.i386-linux.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-netbsd.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-solaris.r56984.tar.xz
+2020/11/23 | 15008 | systems/texlive/tlnet/archive/hyperxmp.r56984.tar.xz
+2020/11/23 | 156872 | systems/texlive/tlnet/archive/hyperxmp.source.r56984.tar.xz
+2020/11/23 | 692 | systems/texlive/tlnet/archive/hyperxmp.win32.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-cygwin.r56984.tar.xz
+2020/11/23 | 364 | systems/texlive/tlnet/archive/hyperxmp.x86_64-darwinlegacy.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-darwin.r56984.tar.xz
+2020/11/23 | 360 | systems/texlive/tlnet/archive/hyperxmp.x86_64-linuxmusl.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-linux.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-solaris.r56984.tar.xz
2020/03/26 | 36480 | systems/texlive/tlnet/archive/hyphen-afrikaans.r54568.tar.xz
2020/03/26 | 38192 | systems/texlive/tlnet/archive/hyphen-ancientgreek.r54568.tar.xz
2020/03/26 | 368 | systems/texlive/tlnet/archive/hyphen-arabic.r54568.tar.xz
@@ -267591,23 +267607,23 @@
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
2020/11/06 | 105872 | systems/texlive/tlnet/install-tl
-2020/11/22 | 5500515 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/11/22 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/11/22 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/11/23 | 5500537 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/11/23 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/11/23 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2020/08/23 | 4889 | systems/texlive/tlnet/install-tl-windows.bat
-2020/11/22 | 19383257 | systems/texlive/tlnet/install-tl-windows.exe
-2020/11/22 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2020/11/22 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/11/22 | 24269951 | systems/texlive/tlnet/install-tl.zip
-2020/11/22 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/11/22 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/11/23 | 19385141 | systems/texlive/tlnet/install-tl-windows.exe
+2020/11/23 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/11/23 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/11/23 | 24270016 | systems/texlive/tlnet/install-tl.zip
+2020/11/23 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/11/23 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2020/03/05 | 1215 | systems/texlive/tlnet/README.md
2020/04/06 | 5961 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
2016/04/12 | 600 | systems/texlive/tlnet/tlpkg/gpg/random_seed
2016/04/12 | 0 | systems/texlive/tlnet/tlpkg/gpg/secring.gpg
2020/05/15 | 1655 | systems/texlive/tlnet/tlpkg/gpg/tl-key-extension.txt
2020/04/06 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
-2020/11/09 | 49035 | systems/texlive/tlnet/tlpkg/installer/config.guess
+2020/11/22 | 49274 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
2020/11/21 | 5759 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
@@ -267656,12 +267672,12 @@
2020/05/17 | 20322 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2020/05/03 | 4786 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2020/09/22 | 27563 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2020/11/22 | 16641497 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/11/22 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/11/23 | 16647147 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/11/23 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2020/05/13 | 86417 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2020/11/22 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/11/22 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/11/22 | 2245148 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/11/23 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/11/23 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/11/23 | 2243888 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2020/04/15 | 58761 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2020/03/20 | 41736 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2020/05/11 | 15010 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -272174,7 +272190,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
-2020/11/22 | 550962 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/11/23 | 550962 | 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
@@ -273350,9 +273366,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2020/10/31 | 39333 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2020/10/31 | 43032 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/11/22 | 204589 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/11/22 | 1227722 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/11/22 | 1145656 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/11/23 | 204575 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/11/23 | 1227486 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/11/23 | 1146535 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2020/10/31 | 13300 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2020/10/31 | 14127 | 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
@@ -273507,187 +273523,187 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2020/09/06 | 231669 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2020/11/22 | 550966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/11/22 | 50435 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/11/22 | 55970 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/11/22 | 965659 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/11/22 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2020/11/22 | 28607 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/11/22 | 30934 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/11/22 | 28917 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2020/11/22 | 34185 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2020/11/22 | 49817 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/11/22 | 57229 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/11/22 | 84911 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2020/11/22 | 93590 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2020/11/22 | 65769 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/11/22 | 73421 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2020/11/22 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/11/22 | 30681 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2020/11/22 | 329622 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/11/22 | 392343 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2020/11/22 | 32338 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2020/11/22 | 36373 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2020/11/22 | 50513 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/11/22 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/11/22 | 204245 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2020/11/22 | 224116 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2020/11/22 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2020/11/22 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/11/22 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/11/22 | 58631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/11/22 | 20817 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/11/22 | 23021 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2020/11/22 | 461750 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2020/11/22 | 45369 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/11/22 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/11/22 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/11/22 | 318788 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2020/11/22 | 40820 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/11/22 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/11/22 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/11/22 | 130321 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/11/22 | 1274541 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2020/11/22 | 1415728 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2020/11/22 | 86663 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/11/22 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2020/11/22 | 42915 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2020/11/22 | 47679 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2020/11/22 | 24891 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/11/22 | 27759 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/11/22 | 55830 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/11/22 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2020/11/22 | 133474 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/11/22 | 151810 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/11/22 | 72878 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/11/22 | 77239 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2020/11/22 | 71731 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2020/11/22 | 80691 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2020/11/22 | 258223 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2020/11/22 | 295368 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/11/22 | 21851 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2020/11/22 | 24841 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/11/22 | 99229 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2020/11/22 | 114398 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2020/11/22 | 63607 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/11/22 | 72711 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/11/22 | 94446 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2020/11/22 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/11/22 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2020/11/22 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/11/22 | 482421 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/11/22 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/11/22 | 146833 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2020/11/22 | 159524 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2020/11/22 | 94605 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/11/22 | 108946 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/11/22 | 15990 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/11/22 | 17628 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/11/22 | 27709 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/11/22 | 29732 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/11/22 | 623785 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2020/11/22 | 678091 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/11/22 | 531489 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/11/22 | 597314 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/11/22 | 557911 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2020/11/22 | 598219 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/11/22 | 93661 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/11/22 | 102881 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/11/22 | 1707143 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2020/11/22 | 1985300 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2020/11/22 | 67426 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/11/22 | 74049 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/11/22 | 27104 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2020/11/22 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/11/22 | 7570 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/11/22 | 8593 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/11/22 | 194087 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/11/22 | 212027 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2020/11/22 | 249036 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/11/22 | 282446 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/11/22 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/11/22 | 101593 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2020/11/22 | 58496 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/11/22 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/11/22 | 118974 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/11/22 | 130508 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/11/22 | 144419 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2020/11/22 | 161077 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/11/22 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/11/22 | 179938 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/11/22 | 64438 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/11/22 | 74258 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/11/22 | 31043 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/11/22 | 34789 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2020/11/22 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/11/22 | 41055 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/11/22 | 42627 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/11/22 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/11/22 | 45811 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2020/11/22 | 52200 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/11/22 | 192635 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2020/11/22 | 210214 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2020/11/22 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2020/11/22 | 39309 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2020/11/22 | 738798 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/11/22 | 808896 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/11/22 | 197844 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/11/22 | 202422 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/11/22 | 207413 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/11/22 | 243101 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/11/22 | 78403 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2020/11/22 | 87399 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/11/22 | 1168165 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/11/22 | 1302291 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2020/11/22 | 19947 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/11/22 | 23638 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2020/11/22 | 31214 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/11/22 | 36930 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/11/22 | 63490 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2020/11/22 | 71620 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2020/11/22 | 42632 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/11/22 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/11/22 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2020/11/22 | 1245395 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/11/22 | 42078 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/11/22 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/11/22 | 56010 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2020/11/22 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2020/11/22 | 26982 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2020/11/22 | 29155 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/11/22 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/11/22 | 17716 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/11/22 | 63182 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/11/22 | 69714 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/11/22 | 151776 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2020/11/22 | 165517 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2020/11/22 | 56655 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/11/22 | 65273 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2020/11/22 | 97451 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/11/22 | 104486 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/11/22 | 2514453 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2020/11/22 | 2635855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/11/22 | 54665 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2020/11/22 | 61838 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/11/22 | 33151 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2020/11/22 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2020/11/22 | 27056 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2020/11/22 | 32923 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2020/11/22 | 65983 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/11/22 | 70118 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/11/22 | 250932 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/11/22 | 280104 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/11/22 | 580936 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/11/22 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2020/11/22 | 39355 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/11/22 | 43082 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/11/22 | 204569 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/11/22 | 1228503 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/11/22 | 1146548 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/11/22 | 13289 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2020/11/22 | 14163 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/11/23 | 550966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/11/23 | 50436 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/11/23 | 55968 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/11/23 | 965655 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/11/23 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/11/23 | 28606 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/11/23 | 30933 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/11/23 | 28917 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/11/23 | 34184 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/11/23 | 49818 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/11/23 | 57227 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/11/23 | 84910 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/11/23 | 93589 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/11/23 | 65770 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/11/23 | 73423 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/11/23 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/11/23 | 30682 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/11/23 | 329620 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/11/23 | 392344 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/11/23 | 32339 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/11/23 | 36374 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/11/23 | 50509 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/11/23 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/11/23 | 204243 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/11/23 | 224114 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/11/23 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/11/23 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/11/23 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/11/23 | 58632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/11/23 | 20816 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/11/23 | 23024 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/11/23 | 461751 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/11/23 | 45368 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/11/23 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/11/23 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/11/23 | 318790 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/11/23 | 40817 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/11/23 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/11/23 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/11/23 | 130320 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/11/23 | 1274537 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/11/23 | 1415728 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/11/23 | 86663 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/11/23 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/11/23 | 42915 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/11/23 | 47679 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/11/23 | 24891 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/11/23 | 27758 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/11/23 | 55829 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/11/23 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/11/23 | 133473 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/11/23 | 151809 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/11/23 | 72879 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/11/23 | 77237 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/11/23 | 71729 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/11/23 | 80689 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/11/23 | 258220 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/11/23 | 295366 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/11/23 | 21849 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/11/23 | 24840 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/11/23 | 99227 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/11/23 | 114400 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/11/23 | 63604 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/11/23 | 72710 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/11/23 | 94444 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/11/23 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/11/23 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/11/23 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/11/23 | 482420 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/11/23 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/11/23 | 146833 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/11/23 | 159525 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/11/23 | 94606 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/11/23 | 108945 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/11/23 | 15989 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/11/23 | 17629 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/11/23 | 27708 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/11/23 | 29731 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/11/23 | 623786 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/11/23 | 678094 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/11/23 | 531487 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/11/23 | 597318 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/11/23 | 557911 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/11/23 | 598219 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/11/23 | 93666 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/11/23 | 102882 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/11/23 | 1707142 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/11/23 | 1985300 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/11/23 | 67425 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/11/23 | 74048 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/11/23 | 27103 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/11/23 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/11/23 | 7569 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/11/23 | 8592 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/11/23 | 194088 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/11/23 | 212028 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/11/23 | 249040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/11/23 | 282449 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/11/23 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/11/23 | 101592 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/11/23 | 58495 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/11/23 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/11/23 | 118974 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/11/23 | 130510 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/11/23 | 144418 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/11/23 | 161076 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/11/23 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/11/23 | 179938 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/11/23 | 64438 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/11/23 | 74256 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/11/23 | 31041 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/11/23 | 34787 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/11/23 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/11/23 | 41054 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/11/23 | 42628 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/11/23 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/11/23 | 45812 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/11/23 | 52201 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/11/23 | 192634 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/11/23 | 210214 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/11/23 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/11/23 | 39308 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/11/23 | 738797 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/11/23 | 808895 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/11/23 | 197843 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/11/23 | 202421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/11/23 | 207412 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/11/23 | 243100 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/11/23 | 78402 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/11/23 | 87399 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/11/23 | 1168166 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/11/23 | 1302289 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/11/23 | 19946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/11/23 | 23638 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/11/23 | 31214 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/11/23 | 36930 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/11/23 | 63490 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/11/23 | 71620 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/11/23 | 42631 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/11/23 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/11/23 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/11/23 | 1245396 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/11/23 | 42078 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/11/23 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/11/23 | 56012 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/11/23 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/11/23 | 26982 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/11/23 | 29156 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/11/23 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/11/23 | 17715 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/11/23 | 63181 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/11/23 | 69712 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/11/23 | 151776 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/11/23 | 165516 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/11/23 | 56656 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/11/23 | 65271 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/11/23 | 97453 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/11/23 | 104487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/11/23 | 2514453 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/11/23 | 2635855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/11/23 | 54664 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/11/23 | 61837 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/11/23 | 33150 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/11/23 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/11/23 | 27056 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/11/23 | 32922 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/11/23 | 65984 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/11/23 | 70119 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/11/23 | 250931 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/11/23 | 280105 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/11/23 | 580935 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/11/23 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/11/23 | 39353 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/11/23 | 43083 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/11/23 | 204621 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/11/23 | 1227951 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/11/23 | 1146485 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/11/23 | 13288 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/11/23 | 14160 | 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
-2020/11/22 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/11/23 | 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
@@ -274010,7 +274026,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
2020/10/27 | 357822 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2020/11/22 | 863 | systems/win32/miktex/tm/packages/pr.ini
+2020/11/23 | 863 | 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
@@ -275176,7 +275192,7 @@
2020/11/21 | 5173712 | systems/win32/w32tex/aleph-w32.tar.xz
2020/11/16 | 65991060 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2020/11/21 | 741638 | systems/win32/w32tex/ChangeLog
+2020/11/21 | 741687 | 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
@@ -275231,7 +275247,7 @@
2019/04/15 | 499188 | systems/win32/w32tex/sam2p-w32.tar.xz
2020/10/14 | 87958692 | systems/win32/w32tex/t1fonts.tar.xz
2020/10/31 | 142032 | systems/win32/w32tex/t1utils-w32.tar.xz
-2020/11/21 | 2598768 | systems/win32/w32tex/tex4htk-w32.tar.xz
+2020/11/21 | 2593956 | systems/win32/w32tex/tex4htk-w32.tar.xz
2018/06/20 | 15940044 | systems/win32/w32tex/tex-gyre.tar.xz
2020/10/27 | 4485496 | systems/win32/w32tex/texinfo-w32.tar.xz
2020/10/28 | 2050458 | systems/win32/w32tex/texinstwin.zip
@@ -275393,7 +275409,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2020/11/23 | 186 | timestamp
+2020/11/24 | 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 5201c9580d..eaf35fa133 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 9f341f3e65..0543c6ff88 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,295 +1,2176 @@
+2020/11/23 | 99 | graphics/asymptote/base/asy_filetype.vim
+2020/11/23 | 998 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
+2020/11/23 | 9989 | graphics/pgf/base/tex/pgfmathfunctions.code.tex
+2020/11/23 | 997 | graphics/pgf/base/tex/tikzlibrarydatavisualization.barcharts.code.tex
+2020/11/23 | 9945 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
+2020/11/23 | 992 | graphics/pgf/base/tex/pgfcore.code.tex
+2020/11/23 | 9923 | graphics/asymptote/profiler.h
+2020/11/23 | 99227 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2020/11/23 | 990 | graphics/asymptote/examples/RiemannSphere.asy
+2020/11/23 | 98 | graphics/asymptote/GUI/res/icons/openpolygon.asy
+2020/11/23 | 98 | graphics/asymptote/GUI/res/icons/opencurve.asy
+2020/11/23 | 989 | graphics/pgf/base/tex/pgfcomp-version-1-18.sty
+2020/11/23 | 989 | graphics/pgf/base/source/RandomPlacer_script.h
+2020/11/23 | 9893 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings/BindingToPGF.lua
+2020/11/23 | 98820 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shapes.tex
+2020/11/23 | 986 | graphics/asymptote/predicates.h
+2020/11/23 | 9867 | graphics/asymptote/runstring.in
+2020/11/23 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2020/11/23 | 9836 | graphics/asymptote/doc/asymptote.sty
+2020/11/23 | 982 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingMinimumHeight.lua
+2020/11/23 | 9829 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-backgrounds.tex
+2020/11/23 | 9822 | graphics/asymptote/doc/FAQ/m-html.pl
+2020/11/23 | 981 | graphics/pgf/base/tex/tikzlibraryscopes.code.tex
+2020/11/23 | 981 | graphics/pgf/base/source/RandomMerger_script.h
+2020/11/23 | 980 | graphics/asymptote/examples/filesurface.asy
+2020/11/23 | 978 | graphics/asymptote/examples/worksheet.asy
+2020/11/23 | 976 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Stack.lua
+2020/11/23 | 974 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/BarycenterPlacer.lua
+2020/11/23 | 974 | graphics/asymptote/prc/Makefile
+2020/11/23 | 97453 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2020/11/23 | 973 | graphics/pgf/base/source/InterfaceFromOGDF.h
+2020/11/23 | 973 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/IndependentSetMerger.lua
+2020/11/23 | 973 | graphics/asymptote/examples/fequlogo.asy
+2020/11/23 | 972 | graphics/asymptote/examples/triads.asy
+2020/11/23 | 970 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/ASCIIDisplayer.lua
+2020/11/23 | 969 | graphics/pgf/base/doc/version-for-dvipdfmx/en/Makefile
+2020/11/23 | 969 | graphics/asymptote/runfile.h
+2020/11/23 | 9690 | graphics/pgf/base/tex/pgfcorepatterns.code.tex
+2020/11/23 | 968 | graphics/pgf/base/source/ZeroPlacer_script.h
+2020/11/23 | 968 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/LocalBiconnectedMerger.lua
+2020/11/23 | 968 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-trees.tex
+2020/11/23 | 9688 | graphics/asymptote/base/rationalSimplex.asy
+2020/11/23 | 967 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Cluster.lua
+2020/11/23 | 966 | graphics/asymptote/tests/array/solve.asy
+2020/11/23 | 965655 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2020/11/23 | 9652 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Graph.lua
+2020/11/23 | 964 | graphics/asymptote/GUI/xasyTransform.py
+2020/11/23 | 964 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
+2020/11/23 | 9631 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-binding-layer.tex
+2020/11/23 | 962 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MatchingMerger.lua
+2020/11/23 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2020/11/23 | 9614 | graphics/pgf/base/tex/tikzlibrarycircuits.ee.IEC.code.tex
+2020/11/23 | 95 | graphics/asymptote/prc/test.asy
+2020/11/23 | 9574 | graphics/asymptote/triple.h
+2020/11/23 | 9569 | graphics/asymptote/base/bezulate.asy
+2020/11/23 | 954 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/EdgeCoverMerger.lua
+2020/11/23 | 954 | graphics/asymptote/examples/poster.asy
+2020/11/23 | 953 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/ZeroPlacer.lua
+2020/11/23 | 95375 | graphics/pgf/base/tex/pgfmoduledatavisualization.code.tex
+2020/11/23 | 952 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/RandomPlacer.lua
+2020/11/23 | 951 | graphics/asymptote/statistics.h
+2020/11/23 | 950 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-layered.tex
+2020/11/23 | 948 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/RandomMerger.lua
+2020/11/23 | 946 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.code.tex
+2020/11/23 | 946 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/library.lua
+2020/11/23 | 946 | graphics/asymptote/examples/animations/cube.asy
+2020/11/23 | 94606 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2020/11/23 | 94444 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2020/11/23 | 93 | graphics/pgf/base/doc/licenses/manifest-documentation.txt
+2020/11/23 | 93853 | graphics/pgf/base/tex/tikzlibrarydatavisualization.code.tex
+2020/11/23 | 936 | graphics/asymptote/tests/array/array.asy
+2020/11/23 | 93690 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-circuits.tex
+2020/11/23 | 93666 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2020/11/23 | 93589 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2020/11/23 | 934 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/library.lua
+2020/11/23 | 9328 | graphics/asymptote/doc/FAQ/bfnnconv.pl
+2020/11/23 | 931 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/library.lua
+2020/11/23 | 930 | graphics/asymptote/examples/polararea.asy
+2020/11/23 | 9309 | graphics/asymptote/base/plain_paths.asy
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-exp.gnuplot
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-exp.gnuplot
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-exp.gnuplot
+2020/11/23 | 92 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-exp.gnuplot
+2020/11/23 | 926 | graphics/pgf/base/tex/pgf.cfg
+2020/11/23 | 926 | graphics/pgf/base/lua/graphdrawing/pgf/gd/ogdf/library.lua
+2020/11/23 | 9251 | graphics/asymptote/errors
+2020/11/23 | 9243 | graphics/asymptote/glrender.h
+2020/11/23 | 92405 | graphics/pgf/base/tex/pgfmathfunctions.trigonometric.code.tex
+2020/11/23 | 9212 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-paths.tex
+2020/11/23 | 919 | graphics/pgf/base/tex/tikzlibraryshapes.multipart.code.tex
+2020/11/23 | 916 | graphics/asymptote/opcodes.h
+2020/11/23 | 91587 | graphics/pgf/base/tex/pgflibraryshapes.arrows.code.tex
+2020/11/23 | 912 | graphics/asymptote/doc/errorbars.asy
+2020/11/23 | 911 | graphics/pgf/base/tex/tikzlibrarysvg.path.code.tex
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 90 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 909 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/MultilevelLayout.lua
+2020/11/23 | 908 | graphics/asymptote/modifier.h
+2020/11/23 | 908 | graphics/asymptote/coenv.h
+2020/11/23 | 908 | graphics/asymptote/base/map.asy
+2020/11/23 | 9088 | graphics/asymptote/application.h
+2020/11/23 | 90515 | graphics/pgf/base/tex/pgflibraryshapes.symbols.code.tex
+2020/11/23 | 901 | graphics/asymptote/virtualfieldaccess.cc
+2020/11/23 | 89878 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-decorations.tex
+2020/11/23 | 897 | graphics/asymptote/doc/flowchartdemo.asy
+2020/11/23 | 89737 | graphics/pgf/base/doc/images/pgfmanual-mindmap-2.pdf
+2020/11/23 | 896 | graphics/asymptote/examples/markregular.asy
+2020/11/23 | 8960 | graphics/asymptote/symbol.cc
+2020/11/23 | 8937 | graphics/asymptote/psfile.h
+2020/11/23 | 892 | graphics/asymptote/GUI/res/icons/center.svg
+2020/11/23 | 8907 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CrossingMinimizationGansnerKNV1993.lua
+2020/11/23 | 88 | graphics/pgf/base/doc/licenses/manifest-code.txt
+2020/11/23 | 8893 | graphics/pgf/base/tex/pgfcoretransparency.code.tex
+2020/11/23 | 8870 | graphics/asymptote/base/asy.vim
+2020/11/23 | 886 | graphics/asymptote/angle.h
+2020/11/23 | 8856 | graphics/asymptote/runmath.in
+2020/11/23 | 8843 | graphics/pgf/base/tex/pgflibrarydecorations.pathmorphing.code.tex
+2020/11/23 | 883 | graphics/asymptote/GUI/Widg_addPolyOpt.py
+2020/11/23 | 882 | graphics/asymptote/shaders.h
+2020/11/23 | 880 | graphics/asymptote/doc/xasy.1x
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-sin.gnuplot
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-sin.gnuplot
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-sin.gnuplot
+2020/11/23 | 87 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-sin.gnuplot
+2020/11/23 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
+2020/11/23 | 877 | graphics/asymptote/doc/markers2.asy
+2020/11/23 | 876 | graphics/asymptote/GUI/res/icons/edit.svg
+2020/11/23 | 873 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/List.lua
+2020/11/23 | 873 | graphics/pgf/base/doc/version-for-pdftex/en/Makefile
+2020/11/23 | 873 | graphics/pgf/base/doc/version-for-luatex/en/Makefile
+2020/11/23 | 87399 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2020/11/23 | 8724 | graphics/pgf/base/tex/tikzlibrarycircuits.code.tex
+2020/11/23 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
+2020/11/23 | 868 | graphics/asymptote/examples/twistedtubes.asy
+2020/11/23 | 868 | graphics/asymptote/doc/imagecontour.asy
+2020/11/23 | 866 | graphics/asymptote/examples/xxsq01x-1.asy
+2020/11/23 | 86663 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2020/11/23 | 86658 | graphics/pgf/base/tex/tikzlibrarygraphs.code.tex
+2020/11/23 | 8661 | graphics/asymptote/base/plain_pens.asy
+2020/11/23 | 8652288 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
+2020/11/23 | 863 | systems/win32/miktex/tm/packages/pr.ini
+2020/11/23 | 8621568 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
+2020/11/23 | 861 | graphics/asymptote/examples/orthocenter.asy
+2020/11/23 | 8612 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Edge.lua
+2020/11/23 | 86071 | graphics/pgf/base/tex/pgflibraryfpu.code.tex
+2020/11/23 | 8605 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Path_arced.lua
+2020/11/23 | 8592 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2020/11/23 | 856 | graphics/asymptote/examples/animations/sphere.asy
+2020/11/23 | 85532 | graphics/asymptote/base/three.asy
+2020/11/23 | 85454 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.US.code.tex
+2020/11/23 | 853 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyCycleRemoval.lua
+2020/11/23 | 850 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
+2020/11/23 | 84910 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2020/11/23 | 8471 | graphics/pgf/base/tex/pgfmathutil.code.tex
+2020/11/23 | 845 | graphics/asymptote/envcompleter.h
+2020/11/23 | 844 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
+2020/11/23 | 8444 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleHuffman.lua
+2020/11/23 | 8439 | graphics/asymptote/runpath.in
+2020/11/23 | 8432 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/SokalMichener1958.lua
+2020/11/23 | 8429 | graphics/asymptote/examples/thermodynamics.asy
+2020/11/23 | 839 | graphics/asymptote/examples/venn3.asy
+2020/11/23 | 838 | graphics/asymptote/GUI/res/icons/close-round.svg
+2020/11/23 | 83897 | graphics/asymptote/webgl/gl.js
+2020/11/23 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
+2020/11/23 | 83431 | graphics/asymptote/lex.yy.cc
+2020/11/23 | 831 | graphics/pgf/base/source/BalloonLayout_script.h
+2020/11/23 | 831 | graphics/asymptote/runbacktrace.in
+2020/11/23 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
+2020/11/23 | 8290 | graphics/asymptote/base/simplex.asy
+2020/11/23 | 825 | graphics/asymptote/examples/xxsq01y.asy
+2020/11/23 | 8251 | graphics/pgf/base/tex/pgflibrarylindenmayersystems.code.tex
+2020/11/23 | 8247 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-commands.tex
+2020/11/23 | 8243 | graphics/asymptote/base/asy-kate.sh
+2020/11/23 | 823 | graphics/pgf/base/source/energybased_script.h
+2020/11/23 | 823 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/DfsAcyclicSubgraph.lua
+2020/11/23 | 822 | graphics/asymptote/GUI/res/icons/android-expand.svg
+2020/11/23 | 821 | graphics/asymptote/GUI/xasyArgs.py
+2020/11/23 | 821 | graphics/asymptote/examples/SierpinskiGasket.asy
+2020/11/23 | 820 | graphics/asymptote/webgl/license
+2020/11/23 | 81 | graphics/asymptote/doc/bezier.asy
+2020/11/23 | 8196 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/CoarseGraphFW.lua
+2020/11/23 | 8184 | graphics/asymptote/doc/asy.1
+2020/11/23 | 814 | graphics/asymptote/camperror.h
+2020/11/23 | 813 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-edge-routing.tex
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-x.gnuplot
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-x.gnuplot
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-x.gnuplot
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-x.gnuplot
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-x.gnuplot
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.gnuplot
+2020/11/23 | 80 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-x.gnuplot
+2020/11/23 | 8096 | graphics/asymptote/runhistory.cc
+2020/11/23 | 808895 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2020/11/23 | 8078 | macros/generic/schemata/README.md
+2020/11/23 | 806 | graphics/asymptote/GUI/res/icons/android-refresh.svg
+2020/11/23 | 80689 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/11/23 | 802 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/library.lua
+2020/11/23 | 802 | graphics/asymptote/GUI/res/icons/android-camera.svg
+2020/11/23 | 802 | graphics/asymptote/examples/vertexshading.asy
+2020/11/23 | 802 | graphics/asymptote/examples/controlsystem.asy
+2020/11/23 | 8008 | graphics/asymptote/runpath3d.in
+2020/11/23 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
+2020/11/23 | 7987 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shadings.tex
+2020/11/23 | 796 | graphics/pgf/base/tex/t-pgfsys.tex
+2020/11/23 | 795 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-misc.tex
+2020/11/23 | 7936 | graphics/pgf/base/tex/pgflibrarypatterns.code.tex
+2020/11/23 | 792 | graphics/asymptote/doc/secondaryaxis.asy
+2020/11/23 | 791 | graphics/pgf/base/tex/t-tikz.tex
+2020/11/23 | 7919 | graphics/asymptote/fundec.cc
+2020/11/23 | 78 | graphics/asymptote/examples/randompath3.asy
+2020/11/23 | 788 | graphics/pgf/base/tex/tikzlibrarydecorations.markings.code.tex
+2020/11/23 | 787 | graphics/pgf/base/tex/t-pgfrcs.tex
+2020/11/23 | 78671 | graphics/pgf/base/doc/images/brave-gnu-world-logo.jpg
+2020/11/23 | 785 | graphics/pgf/base/doc/version-for-luatex/en/pgfmanual.tex
+2020/11/23 | 78402 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2020/11/23 | 782 | graphics/pgf/base/tex/LUA_CODING_STYLE
+2020/11/23 | 780 | graphics/asymptote/GUI/res/icons/check.svg
+2020/11/23 | 77 | graphics/asymptote/tests/gc/string.asy
+2020/11/23 | 7790 | graphics/asymptote/coder.cc
+2020/11/23 | 7789 | graphics/pgf/base/tex/pgfmathfunctions.random.code.tex
+2020/11/23 | 7778 | graphics/pgf/base/tex/pgfsyssoftpath.code.tex
+2020/11/23 | 7763 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-folding.tex
+2020/11/23 | 77237 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2020/11/23 | 771 | graphics/pgf/base/doc/version-for-tex4ht/en/Makefile
+2020/11/23 | 770 | graphics/pgf/base/tex/tikzlibrarypatterns.code.tex
+2020/11/23 | 770 | graphics/asymptote/drawlayer.h
+2020/11/23 | 770 | graphics/asymptote/asy.rc
+2020/11/23 | 76 | graphics/asymptote/examples/grid.asy
+2020/11/23 | 7692 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-introduction.tex
+2020/11/23 | 76885 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+2020/11/23 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
+2020/11/23 | 766 | graphics/asymptote/vm.h
+2020/11/23 | 764 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
+2020/11/23 | 7646 | graphics/pgf/base/tex/tikzlibraryrdf.code.tex
+2020/11/23 | 7639 | graphics/asymptote/LICENSE.LESSER
+2020/11/23 | 762 | graphics/asymptote/examples/clockarray.asy
+2020/11/23 | 7623 | macros/latex/contrib/nameauth/README.md
+2020/11/23 | 759 | graphics/asymptote/GUI/res/icons/plus-round.svg
+2020/11/23 | 7569 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2020/11/23 | 75576 | graphics/asymptote/GUI/windows/window1.ui
+2020/11/23 | 755166 | macros/generic/schemata.zip
+2020/11/23 | 754 | graphics/asymptote/GUI/res/icons/circle.svg
+2020/11/23 | 754 | graphics/asymptote/doc/graphmarkers.asy
+2020/11/23 | 74959 | graphics/pgf/base/tex/tikzlibraryfolding.code.tex
+2020/11/23 | 747 | graphics/pgf/base/source/MakefileConfig.mk
+2020/11/23 | 747 | graphics/asymptote/examples/pseudosphere.asy
+2020/11/23 | 7474 | graphics/pgf/base/tex/pgflibrarydecorations.pathreplacing.code.tex
+2020/11/23 | 746 | graphics/asymptote/tests/array/sort.asy
+2020/11/23 | 743 | graphics/asymptote/examples/xxsq01.asy
+2020/11/23 | 7435 | graphics/asymptote/name.cc
+2020/11/23 | 74256 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2020/11/23 | 7412 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-3d.tex
+2020/11/23 | 7407 | graphics/asymptote/base/graph_splinetype.asy
+2020/11/23 | 74048 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2020/11/23 | 73 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar.lua
+2020/11/23 | 739 | graphics/asymptote/examples/condor.asy
+2020/11/23 | 7390 | graphics/pgf/base/doc/text-en/pgfmanual-en-installation.tex
+2020/11/23 | 738797 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2020/11/23 | 737 | graphics/asymptote/tests/array/determinant.asy
+2020/11/23 | 734 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/GreedyInsertHeuristic.lua
+2020/11/23 | 734 | graphics/asymptote/examples/quilt.asy
+2020/11/23 | 73435 | graphics/asymptote/GL/glxew.h
+2020/11/23 | 73423 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2020/11/23 | 7327 | graphics/pgf/base/tex/pgfautomata.sty
+2020/11/23 | 73254 | graphics/asymptote/runarray.cc
+2020/11/23 | 731 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/MedianPlacer.lua
+2020/11/23 | 730 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/SolarPlacer.lua
+2020/11/23 | 7307 | graphics/asymptote/base/stats.asy
+2020/11/23 | 7302 | graphics/asymptote/base/markers.asy
+2020/11/23 | 72 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/library.lua
+2020/11/23 | 72 | graphics/asymptote/tests/gc/pen.asy
+2020/11/23 | 729 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/BarycenterHeuristic.lua
+2020/11/23 | 729 | graphics/asymptote/base/labelpath.asy
+2020/11/23 | 72879 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2020/11/23 | 727 | graphics/asymptote/examples/fermi.asy
+2020/11/23 | 7275 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.code.tex
+2020/11/23 | 72710 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2020/11/23 | 72687 | graphics/asymptote/GUI/Window1.py
+2020/11/23 | 7256 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-arrows.tex
+2020/11/23 | 7251 | graphics/pgf/base/tex/pgfutil-common-lists.tex
+2020/11/23 | 724 | graphics/pgf/base/tex/t-pgfmat.tex
+2020/11/23 | 72387 | graphics/asymptote/base/three_surface.asy
+2020/11/23 | 7235 | graphics/pgf/base/tex/pgflibrarydatavisualization.polar.code.tex
+2020/11/23 | 7230 | graphics/asymptote/runtime.pl
+2020/11/23 | 722 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/MedianHeuristic.lua
+2020/11/23 | 720 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SplitHeuristic.lua
+2020/11/23 | 7189 | graphics/asymptote/base/plain.asy
+2020/11/23 | 71729 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2020/11/23 | 71722 | graphics/pgf/base/tex/pgfmoduledecorations.code.tex
+2020/11/23 | 7167 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Orientation.lua
+2020/11/23 | 7163 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/ChildSpec.lua
+2020/11/23 | 71620 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/11/23 | 714 | graphics/pgf/base/doc/version-for-xetex/en/Makefile
+2020/11/23 | 714 | graphics/asymptote/mod.h
+2020/11/23 | 714 | graphics/asymptote/examples/unitoctantx.asy
+2020/11/23 | 713 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-backend.tex
+2020/11/23 | 713 | graphics/asymptote/GUI/res/icons/arrow-move.svg
+2020/11/23 | 713 | graphics/asymptote/examples/gamma3.asy
+2020/11/23 | 7129 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
+2020/11/23 | 71241 | graphics/asymptote/base/asy-mode.el
+2020/11/23 | 711 | graphics/asymptote/examples/partialsurface.asy
+2020/11/23 | 710 | graphics/asymptote/GUI/xasySvg.py
+2020/11/23 | 710 | graphics/asymptote/examples/fjortoft.asy
+2020/11/23 | 70 | graphics/asymptote/tests/gc/transform.asy
+2020/11/23 | 708 | graphics/pgf/base/tex/tikzlibraryshadings.code.tex
+2020/11/23 | 70751 | graphics/asymptote/prc/oPRCFile.cc
+2020/11/23 | 701 | graphics/pgf/base/doc/version-for-dvipdfm/en/Makefile
+2020/11/23 | 7011 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/QuadTree.lua
+2020/11/23 | 70119 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/11/23 | 70102 | graphics/asymptote/base/graph3.asy
+2020/11/23 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
+2020/11/23 | 6995 | graphics/pgf/base/tex/pgflibrarytimelines.code.tex
+2020/11/23 | 69712 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2020/11/23 | 695 | graphics/asymptote/GUI/res/icons/android-close.svg
+2020/11/23 | 6958 | graphics/pgf/base/tex/pgfmathode.code.tex
+2020/11/23 | 6951 | graphics/asymptote/config.h.in
+2020/11/23 | 6944 | graphics/pgf/base/tex/pgfcoreimage.code.tex
+2020/11/23 | 692 | systems/texlive/tlnet/archive/hyperxmp.win32.r56984.tar.xz
+2020/11/23 | 691 | graphics/pgf/base/tex/t-pgfcal.tex
+2020/11/23 | 6911 | graphics/asymptote/errortest.asy
+2020/11/23 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
+2020/11/23 | 688 | graphics/asymptote/examples/layers.asy
+2020/11/23 | 688 | graphics/asymptote/examples/centroidfg.asy
+2020/11/23 | 68833 | graphics/pgf/base/tex/tikzexternalshared.code.tex
+2020/11/23 | 6860 | graphics/pgf/base/tex/pgfutil-latex.def
+2020/11/23 | 68559 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex
+2020/11/23 | 6846 | graphics/pgf/base/tex/pgflibraryarrows.spaced.code.tex
+2020/11/23 | 683 | graphics/asymptote/examples/fractaltree.asy
+2020/11/23 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
+2020/11/23 | 6810 | graphics/pgf/base/tex/tikzlibrarychains.code.tex
+2020/11/23 | 680 | graphics/asymptote/tests/array/delete.asy
+2020/11/23 | 679 | graphics/asymptote/examples/genusthree.asy
+2020/11/23 | 6789 | graphics/asymptote/drawlabel.cc
+2020/11/23 | 678094 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/11/23 | 677 | graphics/asymptote/doc/Bode.asy
+2020/11/23 | 6774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/Ranking.lua
+2020/11/23 | 6762 | graphics/pgf/base/tex/pgfsys-common-pdf-via-dvi.def
+2020/11/23 | 674 | graphics/asymptote/GUI/res/icons/android-delete.svg
+2020/11/23 | 674 | graphics/asymptote/examples/sqrtx01.asy
+2020/11/23 | 67425 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2020/11/23 | 673 | graphics/asymptote/GUI/res/icons/save.svg
+2020/11/23 | 6725 | graphics/asymptote/guide.h
+2020/11/23 | 66 | graphics/asymptote/examples/shade.asy
+2020/11/23 | 669 | graphics/asymptote/drawpath.h
+2020/11/23 | 668 | graphics/pgf/base/doc/version-for-vtex/en/Makefile
+2020/11/23 | 667 | graphics/asymptote/examples/spring.asy
+2020/11/23 | 66751 | graphics/asymptote/prc/writePRC.cc
+2020/11/23 | 666 | graphics/pgf/base/tex/t-pgffor.tex
+2020/11/23 | 6661 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings/Binding.lua
+2020/11/23 | 665 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual-test.tex
+2020/11/23 | 6650 | graphics/asymptote/getopt.h
+2020/11/23 | 663 | graphics/pgf/base/source/MedianPlacer_script.h
+2020/11/23 | 6634 | graphics/asymptote/simpson.cc
+2020/11/23 | 6616 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-trees.tex
+2020/11/23 | 66153 | graphics/pgf/base/doc/text-en/pgfmanual-en-license.tex
+2020/11/23 | 65 | graphics/asymptote/tests/gc/guide.asy
+2020/11/23 | 65984 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2020/11/23 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2020/11/23 | 6593 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fit.tex
+2020/11/23 | 658 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-circular.tex
+2020/11/23 | 658 | graphics/asymptote/examples/NURBScurve.asy
+2020/11/23 | 6585 | graphics/asymptote/xstream.h
+2020/11/23 | 657 | graphics/asymptote/examples/lowupint.asy
+2020/11/23 | 657 | graphics/asymptote/examples/100d.views
+2020/11/23 | 657 | graphics/asymptote/base/reload.js
+2020/11/23 | 65770 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2020/11/23 | 655 | graphics/pgf/base/source/SolarPlacer_script.h
+2020/11/23 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
+2020/11/23 | 6550 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Coordinate.lua
+2020/11/23 | 654 | graphics/asymptote/fpu.h
+2020/11/23 | 654 | graphics/asymptote/examples/limit.asy
+2020/11/23 | 6529 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/doc.lua
+2020/11/23 | 65271 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/11/23 | 6525 | graphics/asymptote/drawfill.h
+2020/11/23 | 650 | graphics/asymptote/prcfile.h
+2020/11/23 | 6503 | graphics/asymptote/tests/types/constructor.asy
+2020/11/23 | 64438 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/11/23 | 644097 | macros/generic/schemata/schemata.pdf
+2020/11/23 | 641 | graphics/asymptote/examples/pOrbital.asy
+2020/11/23 | 639 | graphics/asymptote/tests/arith/transform.asy
+2020/11/23 | 639 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
+2020/11/23 | 6396 | graphics/asymptote/mathop.h
+2020/11/23 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
+2020/11/23 | 637 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
+2020/11/23 | 6364 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-quick.tex
+2020/11/23 | 63604 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2020/11/23 | 63520 | graphics/asymptote/base/graph.asy
+2020/11/23 | 63490 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2020/11/23 | 633 | graphics/pgf/base/tex/t-pgfkey.tex
+2020/11/23 | 633 | graphics/asymptote/GUI/res/icons/android-done.svg
+2020/11/23 | 63314 | graphics/asymptote/GL/wglew.h
+2020/11/23 | 632 | graphics/pgf/base/tex/tikzlibrarydatavisualization.sparklines.code.tex
+2020/11/23 | 632 | graphics/asymptote/examples/label3zoom.asy
+2020/11/23 | 631 | graphics/asymptote/locate.h
+2020/11/23 | 63197 | graphics/pgf/base/doc/images/brave-gnu-world-logo.eps
+2020/11/23 | 6318 | graphics/asymptote/doc/leastsquares.dat
+2020/11/23 | 63181 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2020/11/23 | 63136 | graphics/asymptote/doc/FAQ/asy-faq.info
+2020/11/23 | 630 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringLayouts.lua
+2020/11/23 | 630 | graphics/asymptote/base/shaders/vertex.glsl
+2020/11/23 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2020/11/23 | 6300 | graphics/asymptote/asymptote.nsi
+2020/11/23 | 62 | graphics/asymptote/tests/gc/array.asy
+2020/11/23 | 62 | graphics/asymptote/revision.cc
+2020/11/23 | 6292 | graphics/asymptote/base/plain_filldraw.asy
+2020/11/23 | 628 | graphics/asymptote/examples/wedge.asy
+2020/11/23 | 628 | graphics/asymptote/examples/polarcircle.asy
+2020/11/23 | 6288 | graphics/asymptote/transform.h
+2020/11/23 | 6285 | graphics/asymptote/base/plain_prethree.asy
+2020/11/23 | 626 | graphics/asymptote/examples/venn.asy
+2020/11/23 | 6265 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Node.lua
+2020/11/23 | 62618 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-animations.tex
+2020/11/23 | 6254 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Collection.lua
+2020/11/23 | 62448 | graphics/pgf/base/tex/pgfsys-common-svg.def
+2020/11/23 | 623786 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2020/11/23 | 62281 | graphics/pgf/base/tex/pgflibraryshapes.multipart.code.tex
+2020/11/23 | 6223 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PriorityQueue.lua
+2020/11/23 | 620 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/library.lua
+2020/11/23 | 620 | graphics/asymptote/tests/arith/integer.asy
+2020/11/23 | 61 | graphics/asymptote/examples/axialshade.asy
+2020/11/23 | 6189 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-design.tex
+2020/11/23 | 61837 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2020/11/23 | 617 | graphics/asymptote/doc/logo.asy
+2020/11/23 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2020/11/23 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
+2020/11/23 | 6169 | graphics/asymptote/base/plain_strings.asy
+2020/11/23 | 61664 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-animations.tex
+2020/11/23 | 6154 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
+2020/11/23 | 61358 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-map.tex
+2020/11/23 | 610 | graphics/asymptote/examples/impact.asy
+2020/11/23 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
+2020/11/23 | 609 | graphics/asymptote/keywords.cc
+2020/11/23 | 608 | graphics/asymptote/examples/spline.asy
+2020/11/23 | 608 | graphics/asymptote/base/size10.asy
+2020/11/23 | 60866 | graphics/asymptote/runtime.cc
+2020/11/23 | 60544 | graphics/pgf/base/tex/pgfsys.code.tex
+2020/11/23 | 604 | graphics/asymptote/doc/flow.asy
+2020/11/23 | 60485 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.jpg
+2020/11/23 | 6038 | graphics/pgf/base/tex/pgfcoregraphicstate.code.tex
+2020/11/23 | 602 | graphics/asymptote/examples/treetest.asy
+2020/11/23 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
+2020/11/23 | 6017 | graphics/pgf/base/tex/pgflibrarydatavisualization.formats.functions.code.tex
+2020/11/23 | 60150 | graphics/asymptote/base/webgl/asygl.js
+2020/11/23 | 600 | graphics/asymptote/base/size11.asy
+2020/11/23 | 59 | graphics/asymptote/examples/stroke3.asy
+2020/11/23 | 599 | graphics/asymptote/GUI/xasyStrings.py
+2020/11/23 | 598 | graphics/asymptote/examples/integraltest.asy
+2020/11/23 | 5984 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Simplifiers.lua
+2020/11/23 | 598219 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2020/11/23 | 597 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/library.lua
+2020/11/23 | 597318 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2020/11/23 | 59652 | graphics/pgf/base/tex/pgfsysanimations.code.tex
+2020/11/23 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2020/11/23 | 5923 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Edge.lua
+2020/11/23 | 591 | graphics/pgf/base/source/GreedyInsertHeuristic_script.h
+2020/11/23 | 591 | graphics/asymptote/examples/sinc.asy
+2020/11/23 | 59122 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex
+2020/11/23 | 590 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.CDH.code.tex
+2020/11/23 | 58 | graphics/asymptote/examples/progrid.asy
+2020/11/23 | 589 | graphics/asymptote/GUI/res/icons/bucket.asy
+2020/11/23 | 589 | graphics/asymptote/examples/trefoilknot.asy
+2020/11/23 | 5883 | graphics/asymptote/Delaunay.cc
+2020/11/23 | 5880 | graphics/asymptote/base/three_tube.asy
+2020/11/23 | 58801 | graphics/pgf/base/tex/pgflibraryarrows.meta.code.tex
+2020/11/23 | 5879 | graphics/asymptote/runfile.in
+2020/11/23 | 586 | graphics/pgf/base/source/module_script.h
+2020/11/23 | 58632 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2020/11/23 | 5849 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fixedpoint.tex
+2020/11/23 | 58495 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2020/11/23 | 582 | graphics/asymptote/examples/cos3.asy
+2020/11/23 | 581 | graphics/asymptote/examples/BezierSaddle.asy
+2020/11/23 | 5811 | graphics/asymptote/drawpath3.h
+2020/11/23 | 580 | graphics/asymptote/examples/xsin1x.asy
+2020/11/23 | 580935 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2020/11/23 | 57 | graphics/asymptote/GUI/requirements.txt
+2020/11/23 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
+2020/11/23 | 579 | graphics/asymptote/examples/sin3.asy
+2020/11/23 | 579 | graphics/asymptote/examples/exp3.asy
+2020/11/23 | 5797 | graphics/asymptote/base/trembling.asy
+2020/11/23 | 578 | graphics/asymptote/base/annotate.asy
+2020/11/23 | 577 | graphics/pgf/base/source/BarycenterHeuristic_script.h
+2020/11/23 | 576 | graphics/asymptote/examples/threeviews.asy
+2020/11/23 | 576 | graphics/asymptote/examples/circles.asy
+2020/11/23 | 5760 | graphics/asymptote/base/plain_scaling.asy
+2020/11/23 | 575 | graphics/pgf/base/source/GreedyCycleRemoval_script.h
+2020/11/23 | 575 | graphics/pgf/base/source/DfsAcyclicSubgraph_script.h
+2020/11/23 | 57538 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-commands.tex
+2020/11/23 | 57480 | graphics/pgf/base/doc/FILES
+2020/11/23 | 57429 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex
+2020/11/23 | 5733 | graphics/asymptote/item.h
+2020/11/23 | 572 | graphics/asymptote/examples/curvedlabel3.asy
+2020/11/23 | 57255 | graphics/pgf/base/tex/pgfmanual-en-macros.tex
+2020/11/23 | 57227 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2020/11/23 | 57126 | graphics/asymptote/runpicture.cc
+2020/11/23 | 570 | graphics/asymptote/examples/fillcontour.asy
+2020/11/23 | 57081 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.jpg
+2020/11/23 | 5693 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityDegree.lua
+2020/11/23 | 56766 | macros/latex/contrib/nameauth/examples.tex
+2020/11/23 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2020/11/23 | 56656 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2020/11/23 | 56646 | graphics/asymptote/GUI/pyUIClass/window1.py
+2020/11/23 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
+2020/11/23 | 561 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.table
+2020/11/23 | 561 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example.table
+2020/11/23 | 561 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.table
+2020/11/23 | 56037 | graphics/asymptote/base/smoothcontour3.asy
+2020/11/23 | 5601 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Vector.lua
+2020/11/23 | 56012 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2020/11/23 | 55968 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/11/23 | 5595 | graphics/asymptote/bezierpatch.h
+2020/11/23 | 558 | graphics/asymptote/examples/floatingdisk.asy
+2020/11/23 | 55873 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex
+2020/11/23 | 55829 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2020/11/23 | 557 | graphics/asymptote/examples/Pythagoras.asy
+2020/11/23 | 557911 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2020/11/23 | 5578 | graphics/asymptote/drawpath3.cc
+2020/11/23 | 5573 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/PathLengths.lua
+2020/11/23 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2020/11/23 | 5546 | graphics/pgf/base/tex/pgfsys-common-pdf.def
+2020/11/23 | 5543 | graphics/asymptote/examples/filesurface.dat
+2020/11/23 | 553 | graphics/pgf/base/source/ogdf_script.c++
+2020/11/23 | 5537 | graphics/asymptote/examples/cpkcolors.asy
+2020/11/23 | 5515 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-layers.tex
+2020/11/23 | 5510 | graphics/pgf/base/tex/pgfsys-dvisvgm.def
+2020/11/23 | 550966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2020/11/23 | 550962 | systems/win32/miktex/tm/packages/files.csv.lzma
+2020/11/23 | 5505 | graphics/asymptote/interact.cc
+2020/11/23 | 5500537 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2020/11/23 | 54 | graphics/asymptote/tests/gc/funcall.asy
+2020/11/23 | 549 | graphics/pgf/base/source/MedianHeuristic_script.h
+2020/11/23 | 5493 | graphics/pgf/base/tex/tikzlibrarydecorations.code.tex
+2020/11/23 | 548 | graphics/asymptote/examples/equilchord.asy
+2020/11/23 | 547 | graphics/asymptote/examples/tetra.asy
+2020/11/23 | 54664 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2020/11/23 | 544 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-sin.table
+2020/11/23 | 544 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-sin.table
+2020/11/23 | 5443 | graphics/asymptote/main.cc
+2020/11/23 | 54438 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex
+2020/11/23 | 5441 | graphics/asymptote/env.cc
+2020/11/23 | 543 | graphics/pgf/base/tex/t-pgf.tex
+2020/11/23 | 543 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-exp.table
+2020/11/23 | 543 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-exp.table
+2020/11/23 | 542 | graphics/pgf/base/source/SplitHeuristic_script.h
+2020/11/23 | 541 | graphics/pgf/base/source/tikzexternaltest.sharedpreamble.tex
+2020/11/23 | 5401 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceGraphDistance.lua
+2020/11/23 | 5400 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/NodeAnchors.lua
+2020/11/23 | 5364 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Components.lua
+2020/11/23 | 5364 | graphics/pgf/base/doc/extract.lua
+2020/11/23 | 534 | graphics/pgf/base/doc/version-for-dvipdfmx/en/pgfmanual-test.tex
+2020/11/23 | 533 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-x.table
+2020/11/23 | 533 | graphics/pgf/base/doc/version-for-luatex/en/pgfmanual-test.tex
+2020/11/23 | 533 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-x.table
+2020/11/23 | 532 | graphics/pgf/base/tex/tikzlibrarygraphdrawing.evolving.code.tex
+2020/11/23 | 532 | graphics/pgf/base/doc/version-for-dvips/en/pgfmanual-test.tex
+2020/11/23 | 531487 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2020/11/23 | 52 | graphics/asymptote/doc/square.asy
+2020/11/23 | 5297 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/library.lua
+2020/11/23 | 5292 | graphics/pgf/base/tex/tikzexternal.sty
+2020/11/23 | 5287 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/GreedyTemporalCycleRemoval.lua
+2020/11/23 | 5286 | graphics/pgf/base/tex/tikzlibraryintersections.code.tex
+2020/11/23 | 5279 | graphics/asymptote/base/bsp.asy
+2020/11/23 | 5277 | graphics/asymptote/base/shaders/fragment.glsl
+2020/11/23 | 5262 | graphics/asymptote/patches/bison.patch
+2020/11/23 | 525 | graphics/asymptote/examples/vectorfield3.asy
+2020/11/23 | 5258 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceCore.lua
+2020/11/23 | 5251 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-views.tex
+2020/11/23 | 5250 | graphics/asymptote/pipestream.cc
+2020/11/23 | 524 | graphics/asymptote/doc/brokenaxis.asy
+2020/11/23 | 523 | graphics/pgf/base/tex/pgfsys.tex
+2020/11/23 | 5238 | graphics/asymptote/base/animation.asy
+2020/11/23 | 5236 | graphics/asymptote/name.h
+2020/11/23 | 5227 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceCanvasDistance.lua
+2020/11/23 | 52250 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-coordinates.tex
+2020/11/23 | 5222 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/SupergraphVertexSplitOptimization.lua
+2020/11/23 | 5220 | graphics/pgf/base/tex/pgflibrarydecorations.markings.code.tex
+2020/11/23 | 52201 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2020/11/23 | 521 | graphics/pgf/base/tex/pgfmath.code.tex
+2020/11/23 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
+2020/11/23 | 5216 | graphics/asymptote/examples/mosaic.asy
+2020/11/23 | 52167 | graphics/asymptote/settings.cc
+2020/11/23 | 5214 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/ReingoldTilford1981.lua
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/pgf/base/doc/text-en/plots/pgf-parametric-example.table
+2020/11/23 | 520 | graphics/asymptote/examples/smoothelevation.asy
+2020/11/23 | 520803 | macros/latex/contrib/nameauth/nameauth.dtx
+2020/11/23 | 5204 | graphics/pgf/base/source/InterfaceFromC++.c++
+2020/11/23 | 519 | graphics/asymptote/examples/extrudedcontour.asy
+2020/11/23 | 5196 | graphics/pgf/base/tex/pgfcorerdf.code.tex
+2020/11/23 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2020/11/23 | 518 | graphics/asymptote/doc/CDlabel.asy
+2020/11/23 | 517 | graphics/pgf/base/tex/pgflibraryshapes.code.tex
+2020/11/23 | 5151 | graphics/asymptote/GUI/labelEditor.py
+2020/11/23 | 5149 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlCoarsening.lua
+2020/11/23 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2020/11/23 | 51432 | graphics/asymptote/prc/oPRCFile.h
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/pgf/base/doc/text-en/plots/pgf-sin.table
+2020/11/23 | 513 | graphics/asymptote/examples/buildcycle.asy
+2020/11/23 | 5111 | graphics/asymptote/runsystem.in
+2020/11/23 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2020/11/23 | 5104 | graphics/asymptote/pair.h
+2020/11/23 | 50 | graphics/asymptote/base/babel.asy
+2020/11/23 | 509 | graphics/asymptote/examples/dimension.asy
+2020/11/23 | 509635 | macros/latex/contrib/nicematrix/nicematrix.dtx
+2020/11/23 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2020/11/23 | 5082 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/PathLengthsFW.lua
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-exp.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-exp.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-exp.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-exp.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-exp.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-exp.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-exp.table
+2020/11/23 | 507 | graphics/pgf/base/doc/text-en/plots/pgf-x.table
+2020/11/23 | 507 | graphics/pgf/base/doc/text-en/plots/pgf-exp.table
+2020/11/23 | 506 | graphics/asymptote/examples/delu.asy
+2020/11/23 | 50671 | graphics/pgf/base/tex/pgfmanual.prettyprinter.code.tex
+2020/11/23 | 5064 | graphics/asymptote/runhistory.in
+2020/11/23 | 50600 | graphics/asymptote/GUI/xasy2asy.py
+2020/11/23 | 5052 | graphics/asymptote/errormsg.h
+2020/11/23 | 50509 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2020/11/23 | 5048 | graphics/asymptote/GUI/xasyOptions.py
+2020/11/23 | 50437 | graphics/asymptote/gsl.cc
+2020/11/23 | 50436 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2020/11/23 | 503 | graphics/pgf/base/tex/pgf.tex
+2020/11/23 | 503 | graphics/asymptote/GUI/xasy.py
+2020/11/23 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
+2020/11/23 | 503734 | graphics/asymptote/libatomic_ops-7.6.10.tar.gz
+2020/11/23 | 50179 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.eps
+2020/11/23 | 500 | graphics/asymptote/examples/floor.asy
+2020/11/23 | 500 | graphics/asymptote/doc/Hobbydir.asy
+2020/11/23 | 5003 | graphics/asymptote/base/rational.asy
+2020/11/23 | 49 | graphics/asymptote/doc/quartercircle.asy
+2020/11/23 | 49 | graphics/asymptote/doc/dots.asy
+2020/11/23 | 49 | graphics/asymptote/doc/colons.asy
+2020/11/23 | 499 | graphics/pgf/base/tex/pgflibrarysnakes.code.tex
+2020/11/23 | 499 | graphics/asymptote/examples/galleon.asy
+2020/11/23 | 4992 | graphics/asymptote/base/tube.asy
+2020/11/23 | 498 | graphics/asymptote/examples/fano.asy
+2020/11/23 | 498 | graphics/asymptote/doc/penfunctionimage.asy
+2020/11/23 | 49818 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2020/11/23 | 4972 | graphics/asymptote/memory.h
+2020/11/23 | 496 | graphics/pgf/base/doc/version-for-luatex/pgfmanual-luatex.cfg
+2020/11/23 | 496 | graphics/asymptote/examples/bars3.asy
+2020/11/23 | 495 | graphics/asymptote/examples/cones.asy
+2020/11/23 | 494 | graphics/pgf/base/tex/tikzlibraryshapes.code.tex
+2020/11/23 | 494 | graphics/asymptote/drawgrestore.h
+2020/11/23 | 49471 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-external.tex
+2020/11/23 | 493 | graphics/pgf/base/tex/pgflibrarygraphdrawing.trees.code.tex
+2020/11/23 | 4937 | graphics/pgf/base/lua/graphdrawing/pgf/gd/tools/make_gd_wrap.lua
+2020/11/23 | 491 | graphics/pgf/base/doc/version-for-dvipdfmx/pgfmanual-dvipdfmx.cfg
+2020/11/23 | 4919 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-internalregisters.tex
+2020/11/23 | 490 | graphics/pgf/base/doc/version-for-pdftex/pgfmanual-pdftex.cfg
+2020/11/23 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/11/23 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
+2020/11/23 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
+2020/11/23 | 4883 | graphics/pgf/base/tex/pgfcorelayers.code.tex
+2020/11/23 | 4878 | graphics/pgf/base/tex/pgflibraryshapes.gates.ee.code.tex
+2020/11/23 | 4876 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-ogdf.tex
+2020/11/23 | 4865 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-er.tex
+2020/11/23 | 4861 | graphics/asymptote/fileio.cc
+2020/11/23 | 485 | graphics/pgf/base/tex/pgfbasesnakes.tex
+2020/11/23 | 485 | graphics/asymptote/examples/cards.asy
+2020/11/23 | 4855 | graphics/pgf/base/tex/pgflibrarydatavisualization.barcharts.code.tex
+2020/11/23 | 4849 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
+2020/11/23 | 48481 | graphics/asymptote/prc/writePRC.h
+2020/11/23 | 4847 | graphics/asymptote/parser.cc
+2020/11/23 | 48441 | graphics/asymptote/config.guess
+2020/11/23 | 4841 | graphics/asymptote/tests/array/slice.asy
+2020/11/23 | 48417 | graphics/asymptote/runarray.in
+2020/11/23 | 482420 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2020/11/23 | 4812 | graphics/asymptote/base/x11colors.asy
+2020/11/23 | 480 | graphics/asymptote/doc/logimage.asy
+2020/11/23 | 48091 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transformations.tex
+2020/11/23 | 4808 | graphics/asymptote/examples/interpolate1.asy
+2020/11/23 | 479 | graphics/asymptote/examples/magnetic.asy
+2020/11/23 | 47679 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2020/11/23 | 475 | graphics/pgf/base/tex/tikzlibraryshapes.symbols.code.tex
+2020/11/23 | 475 | graphics/pgf/base/tex/pgfbaseshapes.tex
+2020/11/23 | 475 | graphics/pgf/base/tex/pgfbasematrix.tex
+2020/11/23 | 4735 | graphics/asymptote/array.cc
+2020/11/23 | 472 | graphics/asymptote/examples/colorplanes.asy
+2020/11/23 | 472 | graphics/asymptote/absyn.cc
+2020/11/23 | 4727 | graphics/asymptote/doc/westnile.csv
+2020/11/23 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
+2020/11/23 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
+2020/11/23 | 470 | graphics/pgf/base/doc/README
+2020/11/23 | 46825 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex
+2020/11/23 | 467 | graphics/pgf/base/tex/pgfbaseplot.tex
+2020/11/23 | 46727 | graphics/asymptote/base/plain_picture.asy
+2020/11/23 | 4668 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
+2020/11/23 | 465847 | graphics/asymptote/doc/png/asymptote.info
+2020/11/23 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2020/11/23 | 464 | graphics/asymptote/drawgsave.h
+2020/11/23 | 464 | graphics/asymptote/doc/GaussianSurface.asy
+2020/11/23 | 463 | graphics/pgf/base/tex/pgf.revision.tex
+2020/11/23 | 463731 | macros/latex/contrib/arraycols.zip
+2020/11/23 | 462 | graphics/pgf/base/tex/pgfrcs.tex
+2020/11/23 | 46241 | graphics/pgf/base/tex/pgflibraryshapes.misc.code.tex
+2020/11/23 | 461751 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2020/11/23 | 46142 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-chains.tex
+2020/11/23 | 4612 | graphics/asymptote/castop.h
+2020/11/23 | 4611 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SocialGravityCloseness.lua
+2020/11/23 | 460 | graphics/asymptote/examples/lever.asy
+2020/11/23 | 460 | graphics/asymptote/examples/cosaddition.asy
+2020/11/23 | 4602 | graphics/asymptote/util.h
+2020/11/23 | 46026 | graphics/asymptote/glrender.cc
+2020/11/23 | 459 | graphics/asymptote/examples/hierarchy.asy
+2020/11/23 | 4597 | graphics/asymptote/drawfill.cc
+2020/11/23 | 458 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual.tex
+2020/11/23 | 458 | graphics/asymptote/doc/multicontour.asy
+2020/11/23 | 458546 | macros/latex/contrib/arraycols/arraycols.pdf
+2020/11/23 | 45812 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/11/23 | 457 | graphics/pgf/base/tex/t-pgfbim.tex
+2020/11/23 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
+2020/11/23 | 4572 | graphics/pgf/base/tex/tikzlibrarybackgrounds.code.tex
+2020/11/23 | 4570 | graphics/asymptote/env.h
+2020/11/23 | 456 | graphics/pgf/base/doc/version-for-dvipdfm/pgfmanual-dvipdfm.cfg
+2020/11/23 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2020/11/23 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2020/11/23 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2020/11/23 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2020/11/23 | 455 | graphics/pgf/base/doc/version-for-xetex/pgfmanual-xetex.cfg
+2020/11/23 | 45551 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-rdf.tex
+2020/11/23 | 45368 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2020/11/23 | 4520 | graphics/asymptote/getopt1.c
+2020/11/23 | 4513 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered.lua
+2020/11/23 | 450 | graphics/pgf/base/doc/version-for-dvipdfmx/en/pgfmanual.tex
+2020/11/23 | 449 | graphics/pgf/base/doc/version-for-dvipdfm/en/pgfmanual.tex
+2020/11/23 | 449 | graphics/asymptote/tests/arith/pair.asy
+2020/11/23 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2020/11/23 | 4494 | graphics/pgf/base/tex/pgfrcs.code.tex
+2020/11/23 | 448 | graphics/pgf/base/tex/tikz.tex
+2020/11/23 | 448 | graphics/pgf/base/doc/version-for-xetex/en/pgfmanual.tex
+2020/11/23 | 448 | graphics/pgf/base/doc/version-for-pdftex/en/pgfmanual.tex
+2020/11/23 | 448 | graphics/pgf/base/doc/version-for-dvips/en/pgfmanual.tex
+2020/11/23 | 447 | graphics/pgf/base/doc/version-for-vtex/en/pgfmanual.tex
+2020/11/23 | 4477 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/library.lua
+2020/11/23 | 4474 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-design.tex
+2020/11/23 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
+2020/11/23 | 4473 | graphics/asymptote/bbox.h
+2020/11/23 | 445 | graphics/asymptote/examples/sacone.asy
+2020/11/23 | 44571 | graphics/pgf/base/tex/pgflibraryintersections.code.tex
+2020/11/23 | 44472 | graphics/asymptote/fftw++.h
+2020/11/23 | 4445 | graphics/pgf/base/source/GEMLayout_script.h
+2020/11/23 | 443 | graphics/pgf/base/tex/pgfsys.sty
+2020/11/23 | 44372 | systems/texlive/tlnet/archive/chemmacros.r56983.tar.xz
+2020/11/23 | 442 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees/library.lua
+2020/11/23 | 442 | graphics/asymptote/doc/join3.asy
+2020/11/23 | 441 | graphics/asymptote/examples/triangles.asy
+2020/11/23 | 441 | graphics/asymptote/doc/histogram.asy
+2020/11/23 | 44195 | graphics/pgf/base/tex/pgfcorepathconstruct.code.tex
+2020/11/23 | 4415 | graphics/pgf/base/source/InterfaceFromC++.h
+2020/11/23 | 440 | graphics/pgf/base/doc/version-for-tex4ht/en/pgfmanual.tex
+2020/11/23 | 4404 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Bezier.lua
+2020/11/23 | 43 | graphics/asymptote/examples/spring2.asy
+2020/11/23 | 439 | graphics/asymptote/examples/gamma.asy
+2020/11/23 | 4392 | graphics/asymptote/stm.h
+2020/11/23 | 43904 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-nodes.tex
+2020/11/23 | 43820 | graphics/pgf/base/tex/pgfcorearrows.code.tex
+2020/11/23 | 437 | graphics/pgf/base/tex/pgfarrows.sty
+2020/11/23 | 4375 | graphics/pgf/base/tex/tikzlibrarypetri.code.tex
+2020/11/23 | 436 | graphics/asymptote/examples/colorpatch.asy
+2020/11/23 | 4363 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/doc.lua
+2020/11/23 | 435 | graphics/pgf/base/tex/pgfshade.sty
+2020/11/23 | 435 | graphics/pgf/base/tex/pgfbasepatterns.tex
+2020/11/23 | 43551 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-decorations.tex
+2020/11/23 | 43539 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-parsing.tex
+2020/11/23 | 434 | graphics/pgf/base/tex/pgfnodes.sty
+2020/11/23 | 4348 | graphics/asymptote/doc/colo-asy.tex
+2020/11/23 | 4341 | graphics/asymptote/fundec.h
+2020/11/23 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
+2020/11/23 | 43335 | graphics/asymptote/examples/100d.pdb1
+2020/11/23 | 432 | graphics/pgf/base/tex/pgfmath.tex
+2020/11/23 | 432 | graphics/pgf/base/tex/pgfcore.tex
+2020/11/23 | 4326 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/PlanarLayout.lua
+2020/11/23 | 43260 | graphics/pgf/base/tex/pgfmoduleshapes.code.tex
+2020/11/23 | 431 | graphics/pgf/base/tex/pgfbaselayers.tex
+2020/11/23 | 430 | graphics/pgf/base/tex/pgflibrarygraphdrawing.circular.code.tex
+2020/11/23 | 430 | graphics/asymptote/examples/unitoctant.asy
+2020/11/23 | 43083 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2020/11/23 | 42 | graphics/asymptote/base/animate.asy
+2020/11/23 | 429 | graphics/pgf/base/tex/pgfbaseimage.tex
+2020/11/23 | 4294 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-babel.tex
+2020/11/23 | 429184 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
+2020/11/23 | 42915 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2020/11/23 | 4286 | graphics/asymptote/asy.ico
+2020/11/23 | 4285 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentDistance.lua
+2020/11/23 | 427 | graphics/asymptote/examples/projectrevolution.asy
+2020/11/23 | 426 | graphics/asymptote/examples/pathintersectsurface.asy
+2020/11/23 | 426 | graphics/asymptote/doc/grid3xyz.asy
+2020/11/23 | 4265 | graphics/asymptote/newexp.cc
+2020/11/23 | 42631 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2020/11/23 | 42628 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2020/11/23 | 4253 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/cycle_removal.lua
+2020/11/23 | 424 | graphics/asymptote/examples/spiral3.asy
+2020/11/23 | 4244 | graphics/asymptote/examples/fin.asy
+2020/11/23 | 4242 | graphics/asymptote/tests/types/keyword.asy
+2020/11/23 | 423 | graphics/asymptote/doc/log2graph.asy
+2020/11/23 | 423 | graphics/asymptote/doc/helix.asy
+2020/11/23 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfmanual-sine.table
+2020/11/23 | 421 | graphics/pgf/base/doc/text-en/plots/pgfmanual-sine.table
+2020/11/23 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
+2020/11/23 | 4209 | graphics/asymptote/flatguide.h
+2020/11/23 | 42078 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2020/11/23 | 4202 | graphics/pgf/base/tex/tikzlibrarymatrix.code.tex
+2020/11/23 | 41 | graphics/asymptote/doc/bigdiagonal.asy
+2020/11/23 | 419 | graphics/asymptote/examples/torus.asy
+2020/11/23 | 418 | graphics/asymptote/examples/planeproject.asy
+2020/11/23 | 417 | graphics/pgf/base/doc/version-for-vtex/pgfmanual-vtex.cfg
+2020/11/23 | 417 | graphics/asymptote/doc/knots.asy
+2020/11/23 | 4177 | graphics/pgf/base/tex/tikzlibrarycircuits.ee.code.tex
+2020/11/23 | 416 | graphics/pgf/base/tex/pgflibraryplothandlers.sty
+2020/11/23 | 416 | graphics/asymptote/doc/bezier2.asy
+2020/11/23 | 41696 | systems/texlive/tlnet/archive/acro.r56982.tar.xz
+2020/11/23 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
+2020/11/23 | 415 | graphics/pgf/base/tex/pgflibrarytikzbackgrounds.sty
+2020/11/23 | 415 | graphics/asymptote/doc/linetype.asy
+2020/11/23 | 4158 | graphics/asymptote/examples/advection.asy
+2020/11/23 | 4156 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular/Tantau2012.lua
+2020/11/23 | 4156 | graphics/asymptote/runpair.in
+2020/11/23 | 4151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/GEMLayout.lua
+2020/11/23 | 414 | graphics/pgf/base/tex/tikzlibrarydatavisualization.formats.functions.code.tex
+2020/11/23 | 414 | graphics/asymptote/examples/animations/glmovie.asy
+2020/11/23 | 4128 | graphics/asymptote/base/plain_boxes.asy
+2020/11/23 | 411 | graphics/pgf/base/tex/pgflibraryautomata.sty
+2020/11/23 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
+2020/11/23 | 41155 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-scopes.tex
+2020/11/23 | 41150 | graphics/pgf/base/source/pgfmathtestsuite.tex
+2020/11/23 | 410 | graphics/pgf/base/tex/tikzlibraryshapes.arrows.code.tex
+2020/11/23 | 410 | graphics/pgf/base/tex/pgflibraryplotmarks.sty
+2020/11/23 | 410 | graphics/pgf/base/tex/pgfcore.sty
+2020/11/23 | 410 | graphics/asymptote/examples/Sierpinski.asy
+2020/11/23 | 41054 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2020/11/23 | 4099 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/FineTune.lua
+2020/11/23 | 4089 | graphics/asymptote/camp.tab.h
+2020/11/23 | 40899 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
+2020/11/23 | 40817 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2020/11/23 | 407 | graphics/asymptote/examples/parametricsurface.asy
+2020/11/23 | 407 | graphics/asymptote/examples/BezierPatch.asy
+2020/11/23 | 4078 | graphics/asymptote/base/plain_shipout.asy
+2020/11/23 | 4076 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/Preprocessing.lua
+2020/11/23 | 4073 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/FMMMLayout.lua
+2020/11/23 | 4072 | graphics/asymptote/tests/types/order.asy
+2020/11/23 | 4070 | graphics/pgf/base/tex/tikzlibraryspy.code.tex
+2020/11/23 | 4067 | graphics/asymptote/doc/diatom.csv
+2020/11/23 | 40665 | graphics/asymptote/examples/tvgen.asy
+2020/11/23 | 40657 | graphics/asymptote/picture.cc
+2020/11/23 | 405 | graphics/pgf/base/tex/pgflibraryshapes.sty
+2020/11/23 | 4051 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-angles.tex
+2020/11/23 | 404 | graphics/pgf/base/tex/t-pgfbsn.tex
+2020/11/23 | 404 | graphics/pgf/base/tex/pgflibrarysnakes.sty
+2020/11/23 | 403 | graphics/pgf/base/tex/pgflibraryarrows.sty
+2020/11/23 | 402 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/EdgeRoutingGansnerKNV1993.lua
+2020/11/23 | 401 | graphics/asymptote/doc/image.asy
+2020/11/23 | 400 | graphics/pgf/base/tex/pgflibrarytikztrees.sty
+2020/11/23 | 400 | graphics/asymptote/examples/sacylinder.asy
+2020/11/23 | 39 | graphics/asymptote/base/nopapersize.ps
+2020/11/23 | 3998 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3998 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 398 | graphics/pgf/base/tex/pgfbasesnakes.sty
+2020/11/23 | 398 | graphics/asymptote/examples/epix.asy
+2020/11/23 | 3986 | graphics/pgf/base/tex/tikzlibraryautomata.code.tex
+2020/11/23 | 397 | graphics/asymptote/doc/legend.asy
+2020/11/23 | 396 | graphics/asymptote/doc/triangulate.asy
+2020/11/23 | 3969 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SugiyamaLayout.lua
+2020/11/23 | 3968 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-turtle.tex
+2020/11/23 | 39636 | graphics/pgf/base/tex/pgfmoduleanimations.code.tex
+2020/11/23 | 395 | graphics/asymptote/GUI/configs/xasykeymap.cson
+2020/11/23 | 394 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface.lua
+2020/11/23 | 394 | graphics/asymptote/GUI/setup.py
+2020/11/23 | 393 | graphics/pgf/base/tex/t-pgfbsh.tex
+2020/11/23 | 393 | graphics/pgf/base/tex/t-pgfbma.tex
+2020/11/23 | 393 | graphics/pgf/base/tex/pgffor.tex
+2020/11/23 | 3937 | graphics/pgf/base/tex/tikzlibrarypositioning.code.tex
+2020/11/23 | 3937 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/FruchtermanReingold.lua
+2020/11/23 | 39378 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/LayoutPipeline.lua
+2020/11/23 | 3935 | graphics/asymptote/base/interpolate.asy
+2020/11/23 | 39353 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2020/11/23 | 3931 | graphics/pgf/base/tex/tikzlibraryquotes.code.tex
+2020/11/23 | 39308 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2020/11/23 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples.lua
+2020/11/23 | 392 | graphics/pgf/base/lua/graphdrawing/pgf/gd/bindings.lua
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3928 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.table
+2020/11/23 | 3928 | graphics/pgf/base/doc/text-en/plots/pgf-asymptotic-example.table
+2020/11/23 | 392344 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2020/11/23 | 3912 | graphics/asymptote/tr.h
+2020/11/23 | 390 | graphics/asymptote/doc/tile.asy
+2020/11/23 | 3905 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-marks.tex
+2020/11/23 | 38 | graphics/asymptote/examples/spring0.asy
+2020/11/23 | 389 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control.lua
+2020/11/23 | 388 | graphics/pgf/base/tex/t-pgfbpl.tex
+2020/11/23 | 388 | graphics/pgf/base/tex/pgfbaseshapes.sty
+2020/11/23 | 388 | graphics/pgf/base/tex/pgfbasematrix.sty
+2020/11/23 | 388 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics.lua
+2020/11/23 | 388699 | graphics/asymptote/doc/asymptote.texi
+2020/11/23 | 386 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model.lua
+2020/11/23 | 386 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force.lua
+2020/11/23 | 3869 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/library.lua
+2020/11/23 | 3865 | graphics/pgf/base/tex/pgfmathfunctions.comparison.code.tex
+2020/11/23 | 3857 | graphics/asymptote/examples/pipes.asy
+2020/11/23 | 384 | graphics/pgf/base/tex/pgfcalendar.tex
+2020/11/23 | 384 | graphics/pgf/base/tex/pgfbaseplot.sty
+2020/11/23 | 384 | graphics/pgf/base/lua/graphdrawing/pgf/gd/ogdf.lua
+2020/11/23 | 384 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
+2020/11/23 | 384 | graphics/asymptote/Delaunay.h
+2020/11/23 | 383 | graphics/asymptote/tests/arith/real.asy
+2020/11/23 | 383 | graphics/asymptote/examples/Gouraud.asy
+2020/11/23 | 38364 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-calendar.tex
+2020/11/23 | 382 | graphics/asymptote/doc/loggrid.asy
+2020/11/23 | 3823 | graphics/pgf/base/tex/tikzlibraryexternal.code.tex
+2020/11/23 | 380 | graphics/pgf/base/tex/tikzlibrarybabel.code.tex
+2020/11/23 | 37917 | graphics/asymptote/path3.cc
+2020/11/23 | 378 | graphics/pgf/base/lua/graphdrawing/pgf/gd/circular.lua
+2020/11/23 | 378 | graphics/asymptote/examples/sinxlex.asy
+2020/11/23 | 378 | graphics/asymptote/doc/icon.asy
+2020/11/23 | 376 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees.lua
+2020/11/23 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
+2020/11/23 | 376 | graphics/asymptote/doc/generalaxis3.asy
+2020/11/23 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2020/11/23 | 3765 | graphics/asymptote/prc/PRCdouble.h
+2020/11/23 | 374 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing.lua
+2020/11/23 | 374 | graphics/asymptote/doc/monthaxis.asy
+2020/11/23 | 37431 | graphics/pgf/base/tex/pgfkeysfiltered.code.tex
+2020/11/23 | 37424 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transparency.tex
+2020/11/23 | 373 | graphics/asymptote/examples/projectelevation.asy
+2020/11/23 | 373 | graphics/asymptote/doc/lineargraph.asy
+2020/11/23 | 3739 | graphics/asymptote/examples/xstitch.asy
+2020/11/23 | 37376 | graphics/pgf/base/tex/pgfmathparser.code.tex
+2020/11/23 | 372 | graphics/pgf/base/tex/pgfkeys.tex
+2020/11/23 | 372 | graphics/pgf/base/doc/text-en/pgfmanual-en-main.tex
+2020/11/23 | 3727 | graphics/pgf/base/tex/pgfpict2e.sty
+2020/11/23 | 3724 | graphics/asymptote/base/three_light.asy
+2020/11/23 | 3716 | graphics/asymptote/base/plain_constants.asy
+2020/11/23 | 3706 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleEdgeDemo.lua
+2020/11/23 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
+2020/11/23 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2020/11/23 | 36938 | graphics/pgf/base/tex/pgfkeys.code.tex
+2020/11/23 | 36930 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2020/11/23 | 368 | graphics/pgf/base/tex/pgflibrarygraphdrawing.layered.code.tex
+2020/11/23 | 367 | graphics/pgf/base/doc/version-for-dvips/pgfmanual-dvips.cfg
+2020/11/23 | 366 | graphics/pgf/base/tex/pgflibrarygraphdrawing.examples.code.tex
+2020/11/23 | 366 | graphics/asymptote/doc/lineargraph0.asy
+2020/11/23 | 3668 | graphics/asymptote/constructor.cc
+2020/11/23 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2020/11/23 | 364 | systems/texlive/tlnet/archive/hyperxmp.x86_64-darwinlegacy.r56984.tar.xz
+2020/11/23 | 364 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees.lua
+2020/11/23 | 3648 | graphics/pgf/base/doc/text-en/pgfmanual-en-xxcolor.tex
+2020/11/23 | 3643 | graphics/pgf/base/tex/tikzlibraryfit.code.tex
+2020/11/23 | 3640 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodePositioningGansnerKNV1993.lua
+2020/11/23 | 3640 | graphics/asymptote/bbox3.h
+2020/11/23 | 36374 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2020/11/23 | 362 | graphics/asymptote/examples/pipeintersection.asy
+2020/11/23 | 36299 | graphics/pgf/base/tex/pgfpages.sty
+2020/11/23 | 36243 | graphics/asymptote/prc/test.cc
+2020/11/23 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
+2020/11/23 | 361 | graphics/asymptote/examples/phase.asy
+2020/11/23 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
+2020/11/23 | 3614 | graphics/pgf/base/tex/tikzlibraryangles.code.tex
+2020/11/23 | 360 | systems/texlive/tlnet/archive/hyperxmp.x86_64-linuxmusl.r56984.tar.xz
+2020/11/23 | 360 | graphics/asymptote/examples/washer.asy
+2020/11/23 | 35 | graphics/pgf/base/doc/version-for-dvisvgm/en/color.cfg
+2020/11/23 | 35 | graphics/asymptote/base/fontsize.asy
+2020/11/23 | 3594 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.code.tex
+2020/11/23 | 358 | graphics/asymptote/base/pstoedit.asy
+2020/11/23 | 3583 | graphics/pgf/base/doc/version-for-tex4ht/pgfmanual-tex4ht.cfg
+2020/11/23 | 357 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/TwoLayerCrossMin.lua
+2020/11/23 | 357 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout.lua
+2020/11/23 | 357 | graphics/asymptote/doc/irregularcontour.asy
+2020/11/23 | 3574 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc.lua
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-solaris.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-linux.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-darwin.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.x86_64-cygwin.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-solaris.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-netbsd.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.i386-freebsd.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.armhf-linux.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.amd64-netbsd.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.amd64-freebsd.r56984.tar.xz
+2020/11/23 | 356 | systems/texlive/tlnet/archive/hyperxmp.aarch64-linux.r56984.tar.xz
+2020/11/23 | 355 | graphics/asymptote/doc/scaledgraph.asy
+2020/11/23 | 354 | graphics/asymptote/doc/reloadpdf.tex
+2020/11/23 | 354 | graphics/asymptote/doc/planes.asy
+2020/11/23 | 3544 | graphics/pgf/base/tex/tikzlibraryperspective.code.tex
+2020/11/23 | 3534 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlIteration.lua
+2020/11/23 | 352 | systems/texlive/tlnet/archive/hyperxmp.i386-linux.r56984.tar.xz
+2020/11/23 | 352 | systems/texlive/tlnet/archive/hyperxmp.i386-cygwin.r56984.tar.xz
+2020/11/23 | 352 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered.lua
+2020/11/23 | 352 | graphics/asymptote/examples/cylinder.asy
+2020/11/23 | 35298 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-algorithm-layer.tex
+2020/11/23 | 35249 | graphics/pgf/base/tex/pgfcoreshade.code.tex
+2020/11/23 | 351 | graphics/pgf/base/tex/t-pgfbpt.tex
+2020/11/23 | 351 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/planarity.lua
+2020/11/23 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
+2020/11/23 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2020/11/23 | 35147 | graphics/asymptote/LICENSE
+2020/11/23 | 350 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/AcyclicSubgraphModule.lua
+2020/11/23 | 3507 | graphics/asymptote/build-scripts/build-asymptote.dos
+2020/11/23 | 3503 | graphics/asymptote/GUI/CustMatTransform.py
+2020/11/23 | 34 | graphics/asymptote/autogen.sh
+2020/11/23 | 349 | graphics/pgf/base/tex/t-pgfbla.tex
+2020/11/23 | 349 | graphics/asymptote/examples/logdown.asy
+2020/11/23 | 34987 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-algorithms-in-c.tex
+2020/11/23 | 3497 | graphics/asymptote/doc/ocg.sty
+2020/11/23 | 34957 | graphics/pgf/base/tex/pgflibrarygraphdrawing.code.tex
+2020/11/23 | 3493 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Event.lua
+2020/11/23 | 348 | graphics/pgf/base/tex/pgffor.sty
+2020/11/23 | 348 | graphics/asymptote/examples/RiemannSurface.asy
+2020/11/23 | 34787 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2020/11/23 | 3473 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-protocol.tex
+2020/11/23 | 346 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-examples.tex
+2020/11/23 | 3466 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NodeRankingGansnerKNV1993.lua
+2020/11/23 | 3465 | graphics/asymptote/drawpath.cc
+2020/11/23 | 345 | graphics/pgf/base/tex/tikzlibrarybending.code.tex
+2020/11/23 | 345 | graphics/asymptote/examples/rainbow.asy
+2020/11/23 | 344 | graphics/pgf/base/tex/pgfbasepatterns.sty
+2020/11/23 | 344 | graphics/pgf/base/tex/pgfbaselayers.sty
+2020/11/23 | 344 | graphics/pgf/base/tex/pgfbaseimage.sty
+2020/11/23 | 344 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/MultilevelBuilder.lua
+2020/11/23 | 3441 | graphics/asymptote/rounding.h
+2020/11/23 | 343 | graphics/asymptote/doc/externalprc.tex
+2020/11/23 | 34338 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-usage-pgf.tex
+2020/11/23 | 3431 | graphics/asymptote/picture.h
+2020/11/23 | 3430 | graphics/asymptote/base/roundedpath.asy
+2020/11/23 | 342 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/HierarchyLayoutModule.lua
+2020/11/23 | 342 | graphics/asymptote/lexical.h
+2020/11/23 | 341 | graphics/asymptote/examples/slidedemo_.bbl
+2020/11/23 | 341 | graphics/asymptote/examples/sacylinder3D.asy
+2020/11/23 | 341 | graphics/asymptote/doc/subpictures.asy
+2020/11/23 | 34184 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2020/11/23 | 340 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/InitialPlacer.lua
+2020/11/23 | 34020 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToAlgorithms.lua
+2020/11/23 | 339 | graphics/pgf/base/tex/tikz.sty
+2020/11/23 | 339 | graphics/pgf/base/tex/tikzlibraryshapes.geometric.code.tex
+2020/11/23 | 3397 | graphics/pgf/base/tex/pgflibrarygraphdrawing.force.code.tex
+2020/11/23 | 33851 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-main.tex
+2020/11/23 | 33828 | graphics/asymptote/exp.cc
+2020/11/23 | 33813 | graphics/asymptote/path.cc
+2020/11/23 | 337 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased.lua
+2020/11/23 | 3379 | graphics/pgf/base/tex/pgfmathfunctions.round.code.tex
+2020/11/23 | 3375 | graphics/asymptote/tests/types/guide.asy
+2020/11/23 | 33646 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Path.lua
+2020/11/23 | 3360 | graphics/pgf/base/tex/tikzlibrarytrees.code.tex
+2020/11/23 | 3358 | graphics/asymptote/examples/slidedemo.asy
+2020/11/23 | 33432 | graphics/pgf/base/tex/tikzlibraryanimations.code.tex
+2020/11/23 | 333 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/module/RankingModule.lua
+2020/11/23 | 333 | graphics/asymptote/doc/asy.1.end
+2020/11/23 | 3335 | graphics/asymptote/examples/pdb.asy
+2020/11/23 | 33336 | graphics/pgf/base/tex/pgflibraryshapes.callouts.code.tex
+2020/11/23 | 33335 | graphics/pgf/base/tex/pgfcorepoints.code.tex
+2020/11/23 | 332 | graphics/pgf/base/tex/pgfparser.sty
+2020/11/23 | 332 | graphics/pgf/base/tex/pgfmanual.sty
+2020/11/23 | 331 | graphics/pgf/base/tex/tikzlibraryplothandlers.code.tex
+2020/11/23 | 331 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/library.lua
+2020/11/23 | 33150 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2020/11/23 | 329 | graphics/pgf/base/tex/tikzlibraryshapes.misc.code.tex
+2020/11/23 | 32995 | graphics/pgf/base/tex/pgflibraryplothandlers.code.tex
+2020/11/23 | 3297 | graphics/asymptote/access.cc
+2020/11/23 | 329620 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/11/23 | 3295 | graphics/asymptote/stack.h
+2020/11/23 | 3294 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToGrid.lua
+2020/11/23 | 32926 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-paths.tex
+2020/11/23 | 32922 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2020/11/23 | 328 | graphics/pgf/base/tex/pgfcalendar.sty
+2020/11/23 | 327 | graphics/asymptote/examples/sin1x.asy
+2020/11/23 | 3278 | graphics/asymptote/base/obj.asy
+2020/11/23 | 32766 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-matrices.tex
+2020/11/23 | 326 | graphics/asymptote/examples/polardatagraph.asy
+2020/11/23 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
+2020/11/23 | 3265 | graphics/asymptote/program.cc
+2020/11/23 | 325 | graphics/pgf/base/tex/tikzlibraryplotmarks.code.tex
+2020/11/23 | 325 | graphics/pgf/base/tex/pgfrcs.sty
+2020/11/23 | 325 | graphics/asymptote/examples/elevation.asy
+2020/11/23 | 324 | graphics/asymptote/doc/HermiteSpline.asy
+2020/11/23 | 3249 | graphics/asymptote/GUI/Widg_addLabel.py
+2020/11/23 | 3243 | graphics/pgf/base/tex/tikzlibrary3d.code.tex
+2020/11/23 | 32339 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2020/11/23 | 322 | graphics/asymptote/examples/unitcircle.asy
+2020/11/23 | 322 | graphics/asymptote/examples/cheese.asy
+2020/11/23 | 321 | graphics/pgf/base/tex/tikzlibrarydecorations.pathmorphing.code.tex
+2020/11/23 | 321 | graphics/pgf/base/doc/INSTALL
+2020/11/23 | 3216 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/doc.lua
+2020/11/23 | 320 | graphics/asymptote/runtriple.h
+2020/11/23 | 32095 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-trees.tex
+2020/11/23 | 32094 | graphics/asymptote/bezierpatch.cc
+2020/11/23 | 320403 | graphics/asymptote/base/geometry.asy
+2020/11/23 | 319 | graphics/pgf/base/tex/tikzlibrarydecorations.footprints.code.tex
+2020/11/23 | 319 | graphics/pgf/base/tex/tikzlibraryarrows.code.tex
+2020/11/23 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
+2020/11/23 | 318790 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2020/11/23 | 31877 | graphics/pgf/base/doc/text-en/pgfmanual-en-guidelines.tex
+2020/11/23 | 31874 | graphics/pgf/base/tex/pgflibraryarrows.code.tex
+2020/11/23 | 3183 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/Hints.lua
+2020/11/23 | 317 | graphics/pgf/base/tex/tikzlibrarydecorations.fractals.code.tex
+2020/11/23 | 3177 | graphics/pgf/base/tex/pgfmathfunctions.integerarithmetics.code.tex
+2020/11/23 | 31708 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-shadings.tex
+2020/11/23 | 31609 | graphics/asymptote/config.sub
+2020/11/23 | 315 | graphics/pgf/base/tex/tikzlibrarydecorations.shapes.code.tex
+2020/11/23 | 315 | graphics/asymptote/examples/strokepath.asy
+2020/11/23 | 315 | graphics/asymptote/examples/hyperboloid.asy
+2020/11/23 | 3159 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Storage.lua
+2020/11/23 | 3153 | graphics/asymptote/genv.cc
+2020/11/23 | 3150 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/crossing_minimization.lua
+2020/11/23 | 314 | graphics/asymptote/doc/logticks.asy
+2020/11/23 | 314 | graphics/asymptote/base/graph_settings.asy
+2020/11/23 | 3134 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/Scope.lua
+2020/11/23 | 31342 | graphics/asymptote/builtin.cc
+2020/11/23 | 312 | graphics/asymptote/examples/textpath.asy
+2020/11/23 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/11/23 | 31214 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2020/11/23 | 31195 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-numberprinting.tex
+2020/11/23 | 3107 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/ShiftMethod.lua
+2020/11/23 | 3106 | graphics/asymptote/doc/latexusage.tex
+2020/11/23 | 31041 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2020/11/23 | 31025 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToDisplay.lua
+2020/11/23 | 3096 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalEadesLS1993.lua
+2020/11/23 | 30933 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2020/11/23 | 308 | graphics/asymptote/tests/types/shadow.asy
+2020/11/23 | 308 | graphics/asymptote/tests/Makefile
+2020/11/23 | 308 | graphics/asymptote/examples/oneoverx.asy
+2020/11/23 | 308 | graphics/asymptote/examples/1overx.asy
+2020/11/23 | 3081 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlElectric.lua
+2020/11/23 | 30763 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex
+2020/11/23 | 306 | graphics/pgf/base/tex/pgfmath.sty
+2020/11/23 | 306 | graphics/asymptote/doc/binarytreetest.asy
+2020/11/23 | 30682 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/11/23 | 3063 | graphics/pgf/base/tex/pgfint.code.tex
+2020/11/23 | 3057 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceCanvasPosition.lua
+2020/11/23 | 3056 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForcePullToPoint.lua
+2020/11/23 | 303 | graphics/asymptote/examples/tensor.asy
+2020/11/23 | 3036 | graphics/pgf/base/tex/tikzlibrarypatterns.meta.code.tex
+2020/11/23 | 3034 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/parameters.lua
+2020/11/23 | 302 | graphics/pgf/base/source/misclayout_script.h
+2020/11/23 | 3024 | graphics/asymptote/drawimage.h
+2020/11/23 | 3023 | graphics/asymptote/doc/Makefile.in
+2020/11/23 | 30208 | graphics/asymptote/prc/PRC.h
+2020/11/23 | 30147 | graphics/asymptote/getopt.c
+2020/11/23 | 3013 | graphics/pgf/base/lua/graphdrawing/pgf/gd/pedigrees/Koerner2015.lua
+2020/11/23 | 3001 | graphics/asymptote/asymptote.spec
+2020/11/23 | 299 | graphics/asymptote/runpair.h
+2020/11/23 | 2982 | graphics/asymptote/process.h
+2020/11/23 | 297 | graphics/asymptote/build-scripts/README-binaries
+2020/11/23 | 2979 | graphics/asymptote/doc/diatom.asy
+2020/11/23 | 29754 | graphics/pgf/base/tex/tikzlibrarydecorations.text.code.tex
+2020/11/23 | 29731 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2020/11/23 | 2968 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/HuSpringElectricalFW.lua
+2020/11/23 | 2965 | graphics/pgf/base/tex/pgfcorequick.code.tex
+2020/11/23 | 2964 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastHierarchyLayout.lua
+2020/11/23 | 2964 | graphics/asymptote/access.h
+2020/11/23 | 29582 | graphics/pgf/base/source/InterfaceFromC.c
+2020/11/23 | 295366 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2020/11/23 | 294 | graphics/asymptote/guideflags.h
+2020/11/23 | 293 | graphics/asymptote/doc/makepen.asy
+2020/11/23 | 2926 | graphics/pgf/base/tex/pgfsys-xetex.def
+2020/11/23 | 2926 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfsys-overview.tex
+2020/11/23 | 291 | graphics/asymptote/examples/trumpet.asy
+2020/11/23 | 2919 | graphics/pgf/base/tex/tikzlibrarydatavisualization.3d.code.tex
+2020/11/23 | 29156 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2020/11/23 | 289 | graphics/asymptote/examples/jump.asy
+2020/11/23 | 289 | graphics/asymptote/base/res/notes.txt
+2020/11/23 | 2894 | graphics/asymptote/shaders.cc
+2020/11/23 | 28917 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2020/11/23 | 288 | graphics/asymptote/examples/sacone3D.asy
+2020/11/23 | 288 | graphics/asymptote/doc/mexicanhat.asy
+2020/11/23 | 2889 | graphics/pgf/base/tex/tikzlibraryshadows.code.tex
+2020/11/23 | 28891 | graphics/pgf/base/doc/text-en/pgfmanual-en-oo.tex
+2020/11/23 | 28872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-visualizers.tex
+2020/11/23 | 28852 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/Skambath2016.lua
+2020/11/23 | 2880 | graphics/asymptote/drawgroup.h
+2020/11/23 | 287885 | graphics/asymptote/configure
+2020/11/23 | 28783 | graphics/asymptote/exp.h
+2020/11/23 | 2866 | graphics/pgf/base/tex/tikzlibrarylindenmayersystems.code.tex
+2020/11/23 | 28643 | graphics/pgf/base/doc/text-en/pgfmanual-en-main-body.tex
+2020/11/23 | 2861 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/layered.lua
+2020/11/23 | 28606 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2020/11/23 | 28579 | graphics/pgf/base/tex/pgfutil-common.tex
+2020/11/23 | 284 | graphics/asymptote/GUI/res/icons/text.svg
+2020/11/23 | 283 | graphics/pgf/base/tex/tikzlibraryfpu.code.tex
+2020/11/23 | 2832 | graphics/asymptote/examples/alignedaxis.asy
+2020/11/23 | 2825 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
+2020/11/23 | 282449 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2020/11/23 | 28178 | graphics/pgf/base/tex/pgfmathfunctions.basic.code.tex
+2020/11/23 | 28115 | graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial-Euclid.tex
+2020/11/23 | 2804 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/FastSimpleHierarchyLayout.lua
+2020/11/23 | 280105 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2020/11/23 | 2800 | graphics/asymptote/doc/asycolors.sty
+2020/11/23 | 279 | graphics/asymptote/doc/hatch.asy
+2020/11/23 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2020/11/23 | 2790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Direct.lua
+2020/11/23 | 277 | graphics/asymptote/doc/generalaxis.asy
+2020/11/23 | 27767 | graphics/asymptote/pen.h
+2020/11/23 | 27758 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2020/11/23 | 2774 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/Transform.lua
+2020/11/23 | 2771 | graphics/asymptote/doc/pixel.pdf
+2020/11/23 | 27708 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2020/11/23 | 276 | graphics/pgf/base/tex/tikzlibraryfixedpointarithmetic.code.tex
+2020/11/23 | 276 | graphics/asymptote/tests/bench/6000circles.asy
+2020/11/23 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
+2020/11/23 | 2764 | graphics/asymptote/base/three_margins.asy
+2020/11/23 | 2763 | graphics/pgf/base/tex/pgfsys-textures.def
+2020/11/23 | 2758 | graphics/pgf/base/tex/pgfsys-vtex.def
+2020/11/23 | 2757 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentOrder.lua
+2020/11/23 | 274 | graphics/pgf/base/tex/pgfkeys.sty
+2020/11/23 | 274109 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.eps
+2020/11/23 | 2739 | graphics/pgf/base/tex/pgflibrarydecorations.fractals.code.tex
+2020/11/23 | 27353 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fpu.tex
+2020/11/23 | 2732 | graphics/pgf/base/tex/tikzlibrarysnakes.code.tex
+2020/11/23 | 2732 | graphics/asymptote/record.h
+2020/11/23 | 2731 | graphics/asymptote/tests/types/resolve.asy
+2020/11/23 | 27253 | graphics/pgf/base/doc/text-en/pgfmanual-en-pages.tex
+2020/11/23 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
+2020/11/23 | 27103 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2020/11/23 | 27080 | graphics/pgf/base/tex/pgfmoduleoo.code.tex
+2020/11/23 | 2707 | graphics/asymptote/runtriple.in
+2020/11/23 | 27056 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2020/11/23 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2020/11/23 | 26 | graphics/asymptote/doc/filegraph.dat
+2020/11/23 | 269 | graphics/asymptote/runmath.h
+2020/11/23 | 26982 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2020/11/23 | 2697 | graphics/asymptote/table.h
+2020/11/23 | 268 | graphics/asymptote/base/asy-init.el
+2020/11/23 | 26872 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex
+2020/11/23 | 2684 | graphics/asymptote/settings.h
+2020/11/23 | 26844 | graphics/asymptote/runpath.cc
+2020/11/23 | 2680 | graphics/asymptote/examples/soccerball.asy
+2020/11/23 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
+2020/11/23 | 2674 | graphics/asymptote/doc/markers1.asy
+2020/11/23 | 2668 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Anchoring.lua
+2020/11/23 | 2661 | graphics/asymptote/runbacktrace.cc
+2020/11/23 | 2654 | graphics/asymptote/symbol.h
+2020/11/23 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
+2020/11/23 | 264 | graphics/asymptote/examples/labelbox.asy
+2020/11/23 | 264 | graphics/asymptote/examples/coag.asy
+2020/11/23 | 26467 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Digraph.lua
+2020/11/23 | 2635855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2020/11/23 | 2632 | graphics/asymptote/material.h
+2020/11/23 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
+2020/11/23 | 262 | graphics/pgf/base/tex/example_graph_for_ascii_displayer.txt
+2020/11/23 | 262 | graphics/asymptote/doc/loggraph.asy
+2020/11/23 | 2627 | graphics/pgf/base/tex/pgfsys-dvipdfm.def
+2020/11/23 | 2626 | graphics/asymptote/examples/worldmap.asy
+2020/11/23 | 261 | graphics/asymptote/doc/join.asy
+2020/11/23 | 2616 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-examples.tex
+2020/11/23 | 2614 | graphics/asymptote/pipestream.h
+2020/11/23 | 2613 | graphics/asymptote/base/patterns.asy
+2020/11/23 | 260 | graphics/pgf/base/doc/images/brave-gnu-world-logo.xbb
+2020/11/23 | 26096 | graphics/asymptote/examples/uhrturm.obj
+2020/11/23 | 2582 | graphics/asymptote/base/plain_margins.asy
+2020/11/23 | 258220 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2020/11/23 | 2576 | graphics/pgf/base/tex/tikzlibrarygraphs.standard.code.tex
+2020/11/23 | 2571 | graphics/pgf/base/lua/graphdrawing/pgf/gd/deprecated/Iterators.lua
+2020/11/23 | 25701 | graphics/asymptote/runpath3d.cc
+2020/11/23 | 256 | graphics/asymptote/doc/shadedtiling.asy
+2020/11/23 | 2563 | graphics/pgf/base/tex/pgflibraryfadings.code.tex
+2020/11/23 | 2561 | graphics/asymptote/program.h
+2020/11/23 | 255 | graphics/pgf/base/source/tikzexternaltestmakefile.tex
+2020/11/23 | 2556 | graphics/pgf/base/source/SpringEmbedderFRExact_script.h
+2020/11/23 | 2554 | graphics/asymptote/GUI/xasyFile.py
+2020/11/23 | 25517 | graphics/pgf/base/tex/tikzlibrarymath.code.tex
+2020/11/23 | 254 | graphics/asymptote/examples/parametricelevation.asy
+2020/11/23 | 254 | graphics/asymptote/examples/contextfonts.asy
+2020/11/23 | 2549 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout/CircularLayout.lua
+2020/11/23 | 2544 | graphics/pgf/base/tex/pgfmanual.code.tex
+2020/11/23 | 2544 | graphics/pgf/base/tex/pgfcoreobjects.code.tex
+2020/11/23 | 2542 | graphics/asymptote/policy.h
+2020/11/23 | 2541 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/forcetypes/ForceAbsoluteValue.lua
+2020/11/23 | 2540 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/LookupTable.lua
+2020/11/23 | 25357 | graphics/asymptote/base/lmfit.asy
+2020/11/23 | 25223 | graphics/asymptote/process.cc
+2020/11/23 | 251 | graphics/pgf/base/source/tikzexternaltest.tex
+2020/11/23 | 251 | graphics/asymptote/examples/triceratops.asy
+2020/11/23 | 251 | graphics/asymptote/base/metapost.asy
+2020/11/23 | 2518 | graphics/asymptote/prc/PRCbitStream.h
+2020/11/23 | 25154 | graphics/asymptote/doc/extra/intro.asy
+2020/11/23 | 2514453 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2020/11/23 | 250 | graphics/asymptote/examples/transparentCubes.asy
+2020/11/23 | 250931 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2020/11/23 | 2505 | graphics/pgf/base/source/InterfaceFromOGDF.c++
+2020/11/23 | 2505 | graphics/asymptote/README
+2020/11/23 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
+2020/11/23 | 2505 | graphics/asymptote/binaries/i386-windows/README
+2020/11/23 | 2504 | graphics/asymptote/examples/mosquito.asy
+2020/11/23 | 24 | graphics/asymptote/doc/diagonal.asy
+2020/11/23 | 24998 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/Maeusle2012.lua
+2020/11/23 | 24941 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-scopes.tex
+2020/11/23 | 249040 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2020/11/23 | 24891 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/11/23 | 2488 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/library.lua
+2020/11/23 | 24840 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2020/11/23 | 2482 | graphics/asymptote/build-scripts/build-asymptote
+2020/11/23 | 2479 | graphics/pgf/base/lua/graphdrawing/pgf/gd/routing/NecklaceRouting.lua
+2020/11/23 | 24742 | graphics/pgf/base/tex/pgflibrarysvg.path.code.tex
+2020/11/23 | 2472 | graphics/pgf/base/lua/graphdrawing/pgf/gd/interface/InterfaceToC.lua
+2020/11/23 | 246 | graphics/asymptote/examples/transparency.asy
+2020/11/23 | 246 | graphics/asymptote/doc/axis3.asy
+2020/11/23 | 2463 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/algorithms/SimpleSpring.lua
+2020/11/23 | 24617 | graphics/pgf/base/tex/pgflibraryshapes.gates.logic.IEC.code.tex
+2020/11/23 | 245 | graphics/asymptote/examples/alignbox.asy
+2020/11/23 | 2451 | graphics/asymptote/base/labelpath3.asy
+2020/11/23 | 244 | graphics/asymptote/tests/arith/triple.asy
+2020/11/23 | 243 | graphics/asymptote/doc/cube.asy
+2020/11/23 | 2439 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-phylogenetics.tex
+2020/11/23 | 243100 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2020/11/23 | 242 | graphics/asymptote/examples/equilateral.asy
+2020/11/23 | 242 | graphics/asymptote/BUGS
+2020/11/23 | 24270016 | systems/texlive/tlnet/install-tl.zip
+2020/11/23 | 240 | graphics/asymptote/doc/parametricgraph.asy
+2020/11/23 | 24091 | graphics/pgf/base/tex/pgfcalendar.code.tex
+2020/11/23 | 23 | graphics/asymptote/GUI/__init__.py
+2020/11/23 | 2399 | graphics/asymptote/GUI/PrimitiveShape.py
+2020/11/23 | 23997 | graphics/pgf/base/tex/pgffor.code.tex
+2020/11/23 | 2398 | graphics/asymptote/examples/SierpinskiSponge.asy
+2020/11/23 | 238 | graphics/asymptote/tests/TestLib.asy
+2020/11/23 | 238 | graphics/asymptote/GUI/xasyValidator.py
+2020/11/23 | 238 | graphics/asymptote/doc/filegraph.asy
+2020/11/23 | 23888 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-pics.tex
+2020/11/23 | 23791 | graphics/asymptote/base/three_arrows.asy
+2020/11/23 | 2378 | graphics/asymptote/profile.py
+2020/11/23 | 23778 | graphics/pgf/base/source/InterfaceFromC.h
+2020/11/23 | 23764 | graphics/asymptote/drawsurface.cc
+2020/11/23 | 23738 | graphics/pgf/base/tex/pgfsys-dvips.def
+2020/11/23 | 236 | graphics/asymptote/tests/string/erase.asy
+2020/11/23 | 236 | graphics/asymptote/examples/annotation.asy
+2020/11/23 | 23638 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/11/23 | 23635 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-decorations.tex
+2020/11/23 | 2360 | graphics/asymptote/examples/spectrum.asy
+2020/11/23 | 235 | graphics/pgf/base/source/planarity_script.h
+2020/11/23 | 235 | graphics/asymptote/examples/cos2theta.asy
+2020/11/23 | 2351 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/SimpleDemo.lua
+2020/11/23 | 234 | graphics/asymptote/doc/beziercurve.asy
+2020/11/23 | 23492 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-points.tex
+2020/11/23 | 23458 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-plots.tex
+2020/11/23 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
+2020/11/23 | 233 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual.html
+2020/11/23 | 233 | graphics/asymptote/examples/cardioid.asy
+2020/11/23 | 2328 | graphics/asymptote/virtualfieldaccess.h
+2020/11/23 | 23159 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-plot-handlers.tex
+2020/11/23 | 23024 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2020/11/23 | 22 | graphics/asymptote/tests/output/line.asy
+2020/11/23 | 22 | graphics/asymptote/GUI/configs/__init__.py
+2020/11/23 | 22971 | graphics/asymptote/base/syzygy.asy
+2020/11/23 | 22936 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalHu2006.lua
+2020/11/23 | 2291 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderKK.lua
+2020/11/23 | 228 | graphics/asymptote/examples/circumcircle.asy
+2020/11/23 | 22892 | graphics/pgf/base/tex/pgflibraryshapes.gates.ee.IEC.code.tex
+2020/11/23 | 2288 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/PhylogeneticTree.lua
+2020/11/23 | 2287 | graphics/asymptote/errormsg.cc
+2020/11/23 | 22873 | graphics/asymptote/examples/piicon.png
+2020/11/23 | 2282 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib/DepthFirstSearch.lua
+2020/11/23 | 2277 | graphics/asymptote/base/texcolors.asy
+2020/11/23 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
+2020/11/23 | 2266 | graphics/asymptote/align.h
+2020/11/23 | 225 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-calc.tex
+2020/11/23 | 22594 | graphics/asymptote/base/plain_arrows.asy
+2020/11/23 | 224 | graphics/asymptote/tests/types/init.asy
+2020/11/23 | 2243888 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2020/11/23 | 224114 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2020/11/23 | 2238 | graphics/pgf/base/source/FastMultipoleEmbedder_script.h
+2020/11/23 | 22345 | graphics/asymptote/knot.cc
+2020/11/23 | 2232 | graphics/pgf/base/tex/xxcolor.sty
+2020/11/23 | 22307 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/BoyerMyrvold2004.lua
+2020/11/23 | 222 | graphics/asymptote/wce
+2020/11/23 | 222 | graphics/asymptote/examples/yingyang.asy
+2020/11/23 | 2224 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/planarity/PlanarizationLayout.lua
+2020/11/23 | 2222 | graphics/asymptote/tests/frames/loop.asy
+2020/11/23 | 22211 | graphics/pgf/base/tex/pgfsys-common-postscript.def
+2020/11/23 | 2220 | graphics/pgf/base/tex/pgfheaps.sty
+2020/11/23 | 22123 | graphics/pgf/base/tex/pgflibraryluamath.code.tex
+2020/11/23 | 22072 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-usage-tikz.tex
+2020/11/23 | 22045 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/NetworkSimplex.lua
+2020/11/23 | 219 | graphics/asymptote/doc/penimage.asy
+2020/11/23 | 21989 | graphics/pgf/base/tex/pgfcoretransformations.code.tex
+2020/11/23 | 2194 | graphics/asymptote/locate.cc
+2020/11/23 | 2193 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
+2020/11/23 | 21933 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfcalendar.tex
+2020/11/23 | 21926 | graphics/asymptote/runmath.cc
+2020/11/23 | 2191 | graphics/asymptote/examples/splitpatch.asy
+2020/11/23 | 218 | graphics/asymptote/doc/datagraph.asy
+2020/11/23 | 2187 | graphics/asymptote/base/plain_debugger.asy
+2020/11/23 | 21856 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeysfiltered.tex
+2020/11/23 | 2184 | graphics/pgf/base/tex/tikzlibraryturtle.code.tex
+2020/11/23 | 21849 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2020/11/23 | 2181 | graphics/asymptote/build-scripts/HOWTO-MSWindows
+2020/11/23 | 2164 | graphics/asymptote/frame.h
+2020/11/23 | 2161 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-svg-path.tex
+2020/11/23 | 2152 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderFRExact.lua
+2020/11/23 | 2148 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
+2020/11/23 | 2146 | graphics/asymptote/webgl/fragment.glsl
+2020/11/23 | 21452 | graphics/pgf/base/doc/text-en/pgfmanual-en-drivers.tex
+2020/11/23 | 21448 | graphics/asymptote/base/feynman.asy
+2020/11/23 | 2136 | graphics/asymptote/seconds.h
+2020/11/23 | 2134 | graphics/asymptote/drawlabel.h
+2020/11/23 | 21326 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/GraphAnimationCoordination.lua
+2020/11/23 | 21302 | graphics/pgf/base/tex/pgfcorepathusage.code.tex
+2020/11/23 | 212028 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2020/11/23 | 21201 | graphics/pgf/base/tex/pgfmodulematrix.code.tex
+2020/11/23 | 210 | graphics/asymptote/examples/spiral.asy
+2020/11/23 | 210 | graphics/asymptote/build-scripts/asy-indent.el
+2020/11/23 | 2109 | graphics/asymptote/base/drawtree.asy
+2020/11/23 | 2108 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.IEC.code.tex
+2020/11/23 | 2107 | graphics/asymptote/jsfile.h
+2020/11/23 | 21068 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-mindmaps.tex
+2020/11/23 | 210214 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2020/11/23 | 2101 | graphics/asymptote/examples/truncatedIcosahedron.asy
+2020/11/23 | 21013 | graphics/pgf/base/tex/pgfcomp-version-0-65.sty
+2020/11/23 | 21005 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Arc.lua
+2020/11/23 | 20989 | graphics/asymptote/base/plain_bounds.asy
+2020/11/23 | 2095 | graphics/pgf/base/README
+2020/11/23 | 20840 | graphics/asymptote/dec.cc
+2020/11/23 | 20816 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2020/11/23 | 207 | graphics/asymptote/examples/triangle.asy
+2020/11/23 | 207412 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2020/11/23 | 20726 | graphics/pgf/base/tex/pgfcorescopes.code.tex
+2020/11/23 | 207260 | graphics/asymptote/asy.list
+2020/11/23 | 2070 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-tan-example.table
+2020/11/23 | 2070 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-tan-example.table
+2020/11/23 | 206 | graphics/asymptote/examples/log.asy
+2020/11/23 | 20622 | graphics/asymptote/runtime.in
+2020/11/23 | 205495 | graphics/asymptote/base/colormap.asy
+2020/11/23 | 20502 | graphics/pgf/base/tex/tikzlibrarydatavisualization.polar.code.tex
+2020/11/23 | 20474 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-external.tex
+2020/11/23 | 2046 | graphics/asymptote/base/slopefield.asy
+2020/11/23 | 204621 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2020/11/23 | 204575 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-tan-example.table
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-tan-example.table
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-tan-example.table
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-tan-example.table
+2020/11/23 | 2044 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-tan-example.table
+2020/11/23 | 2044 | graphics/pgf/base/doc/text-en/plots/pgf-tan-example.table
+2020/11/23 | 204243 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2020/11/23 | 20415 | graphics/pgf/base/doc/licenses/gnu-free-documentation-license-1.2.txt
+2020/11/23 | 2034 | graphics/asymptote/doc/elliptic.asy
+2020/11/23 | 20330 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-patterns.tex
+2020/11/23 | 202 | graphics/asymptote/tests/frames/stat2.asy
+2020/11/23 | 202 | graphics/asymptote/glew.c
+2020/11/23 | 202 | graphics/asymptote/doc/exp.asy
+2020/11/23 | 202 | graphics/asymptote/build-scripts/run-in-indent.el
+2020/11/23 | 202421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2020/11/23 | 2023 | graphics/asymptote/examples/slope.asy
+2020/11/23 | 20166 | graphics/pgf/base/tex/pgflibraryprofiler.code.tex
+2020/11/23 | 2012 | graphics/asymptote/varinit.h
+2020/11/23 | 20051 | graphics/asymptote/doc/asyRefCard.tex
+2020/11/23 | 20029 | graphics/asymptote/camp.y
+2020/11/23 | 199 | graphics/asymptote/examples/upint.asy
+2020/11/23 | 199 | graphics/asymptote/examples/BezierTriangle.asy
+2020/11/23 | 19990 | graphics/asymptote/base/contour.asy
+2020/11/23 | 1997 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/LongestPathRanking.lua
+2020/11/23 | 19946 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2020/11/23 | 1993 | macros/latex/contrib/arraycols/arraycols.ins
+2020/11/23 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2020/11/23 | 19915 | graphics/asymptote/drawsurface.h
+2020/11/23 | 198 | graphics/asymptote/examples/tanh.asy
+2020/11/23 | 19862 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex
+2020/11/23 | 1985300 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2020/11/23 | 19835 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-chains.tex
+2020/11/23 | 1982 | graphics/asymptote/inst.h
+2020/11/23 | 197843 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2020/11/23 | 19781 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/Embedding.lua
+2020/11/23 | 1977 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1977 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1976 | graphics/asymptote/varinit.cc
+2020/11/23 | 1975 | graphics/asymptote/array.h
+2020/11/23 | 19702 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-spy.tex
+2020/11/23 | 19700 | graphics/asymptote/fileio.h
+2020/11/23 | 196 | graphics/asymptote/examples/lowint.asy
+2020/11/23 | 196 | graphics/asymptote/examples/label3ribbon.asy
+2020/11/23 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
+2020/11/23 | 1968 | graphics/asymptote/examples/mergeExample.asy
+2020/11/23 | 1967 | graphics/asymptote/GUI/res/icons/filledbucket.svg
+2020/11/23 | 19618 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedMinimumEvolution.lua
+2020/11/23 | 19597 | graphics/asymptote/doc/external-proposal.html
+2020/11/23 | 19581 | graphics/pgf/base/tex/pgfmoduleparser.code.tex
+2020/11/23 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/11/23 | 1952 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalBergerS1990b.lua
+2020/11/23 | 19512 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalWalshaw2000.lua
+2020/11/23 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
+2020/11/23 | 194617 | graphics/asymptote/doc/asy-latex.pdf
+2020/11/23 | 1945 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlSprings.lua
+2020/11/23 | 19455 | graphics/asymptote/runpicture.in
+2020/11/23 | 1944 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/CircularInitialPositioning.lua
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1944 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 1944 | graphics/pgf/base/doc/text-en/plots/pgfplotgnuplot-example.table
+2020/11/23 | 194088 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2020/11/23 | 193 | graphics/asymptote/tests/gc/shipout.asy
+2020/11/23 | 193 | graphics/asymptote/tests/arith/random.asy
+2020/11/23 | 19385141 | systems/texlive/tlnet/install-tl-windows.exe
+2020/11/23 | 1936 | graphics/asymptote/refaccess.h
+2020/11/23 | 19324 | graphics/pgf/base/tex/pgfcoreexternal.code.tex
+2020/11/23 | 1927 | graphics/asymptote/tests/array/fields.asy
+2020/11/23 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
+2020/11/23 | 192634 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2020/11/23 | 1920 | graphics/asymptote/GUI/res/icons/social-python.svg
+2020/11/23 | 191 | graphics/pgf/base/doc/version-for-dvisvgm/en/pgfmanual-test.html
+2020/11/23 | 191 | graphics/asymptote/runpicture.h
+2020/11/23 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
+2020/11/23 | 1918 | graphics/pgf/base/tex/pgfmodulesorting.code.tex
+2020/11/23 | 19154 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-actions.tex
+2020/11/23 | 19110 | graphics/pgf/base/doc/licenses/latex-project-public-license-1.3c.txt
+2020/11/23 | 1910 | graphics/pgf/base/lua/graphdrawing/pgf.lua
+2020/11/23 | 1910 | graphics/asymptote/examples/linearregression.asy
+2020/11/23 | 18 | graphics/asymptote/tests/output/circle.asy
+2020/11/23 | 1896 | graphics/pgf/base/tex/pgfsysprotocol.code.tex
+2020/11/23 | 18938 | graphics/asymptote/psfile.cc
+2020/11/23 | 188 | graphics/asymptote/runstring.h
+2020/11/23 | 188050 | graphics/pgf/base/tex/tikz.code.tex
+2020/11/23 | 187 | graphics/asymptote/tests/string/rfind.asy
+2020/11/23 | 187 | graphics/asymptote/examples/label3solid.asy
+2020/11/23 | 18773 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/PDP.lua
+2020/11/23 | 1876 | graphics/asymptote/cc-mode2.el
+2020/11/23 | 18739 | graphics/asymptote/runstring.cc
+2020/11/23 | 186 | graphics/asymptote/runpath3d.h
+2020/11/23 | 186 | graphics/asymptote/doc/unitcircle3.asy
+2020/11/23 | 1868 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/AuthorDefinedPhylogeny.lua
+2020/11/23 | 18669 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/Supergraph.lua
+2020/11/23 | 18668 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/SpanningTreeComputation.lua
+2020/11/23 | 1865 | graphics/pgf/base/source/CirclePlacer_script.h
+2020/11/23 | 1864 | graphics/pgf/base/lua/graphdrawing/pgf/gd/examples/BindingToASCII.lua
+2020/11/23 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
+2020/11/23 | 186126 | graphics/asymptote/doc/CAD.pdf
+2020/11/23 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
+2020/11/23 | 18578 | graphics/asymptote/application.cc
+2020/11/23 | 1851 | graphics/asymptote/drawclipbegin.h
+2020/11/23 | 184 | graphics/asymptote/examples/roll.asy
+2020/11/23 | 18491 | graphics/pgf/base/tex/pgfsys-dvipdfmx.def
+2020/11/23 | 1846 | graphics/asymptote/common.h
+2020/11/23 | 1841 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/FastMultipoleEmbedder.lua
+2020/11/23 | 183 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 183 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 183 | graphics/pgf/base/doc/text-en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 183 | graphics/asymptote/build-scripts/cc-indent.el
+2020/11/23 | 1839 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/node_ranking.lua
+2020/11/23 | 18393 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-matrices.tex
+2020/11/23 | 1838 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/SpringEmbedderFR.lua
+2020/11/23 | 18384 | graphics/asymptote/texfile.cc
+2020/11/23 | 1835 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalBergerS1990a.lua
+2020/11/23 | 1835 | graphics/asymptote/examples/cyclohexane.asy
+2020/11/23 | 182 | graphics/asymptote/tests/string/find.asy
+2020/11/23 | 182 | graphics/asymptote/examples/label3.asy
+2020/11/23 | 1828 | graphics/asymptote/beziercurve.cc
+2020/11/23 | 181683 | graphics/pgf/base/doc/ChangeLog
+2020/11/23 | 18126 | graphics/asymptote/doc/asy-latex.dtx
+2020/11/23 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
+2020/11/23 | 18032 | graphics/pgf/base/doc/licenses/gnu-public-license-2.txt
+2020/11/23 | 179938 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2020/11/23 | 17987 | graphics/asymptote/entry.cc
+2020/11/23 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2020/11/23 | 1790 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/node_positioning.lua
+2020/11/23 | 17815 | graphics/asymptote/asy-keywords.el
+2020/11/23 | 177 | graphics/asymptote/runpath.h
+2020/11/23 | 177 | graphics/asymptote/examples/curvedlabel.asy
+2020/11/23 | 1778 | graphics/pgf/base/lua/graphdrawing/pgf/gd/planar/LinkedList.lua
+2020/11/23 | 1778 | graphics/asymptote/examples/conicurv.asy
+2020/11/23 | 177246 | graphics/asymptote/prc/PRCdouble.cc
+2020/11/23 | 17715 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2020/11/23 | 17690 | graphics/asymptote/runfile.cc
+2020/11/23 | 1764 | graphics/asymptote/GUI/res/icons/grid.svg
+2020/11/23 | 17629 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2020/11/23 | 17612 | graphics/pgf/base/tex/pgfsys-tex4ht.def
+2020/11/23 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
+2020/11/23 | 175 | graphics/pgf/base/INSTALL_NOTES
+2020/11/23 | 175 | graphics/asymptote/examples/strokeshade.asy
+2020/11/23 | 1746 | graphics/asymptote/doc/westnile.asy
+2020/11/23 | 1741 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/InitialTemplate.lua
+2020/11/23 | 1740 | graphics/pgf/base/source/FastHierarchyLayout_script.h
+2020/11/23 | 1731 | graphics/pgf/base/source/SugiyamaLayout_script.h
+2020/11/23 | 17311 | graphics/pgf/base/tex/pgfcorepathprocessing.code.tex
+2020/11/23 | 17294 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-polar.tex
+2020/11/23 | 17288 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-math.tex
+2020/11/23 | 1724 | graphics/asymptote/GUI/GuidesManager.py
+2020/11/23 | 1718 | graphics/pgf/base/tex/tikzlibraryviews.code.tex
+2020/11/23 | 1715 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/GridInitialPositioning.lua
+2020/11/23 | 17151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/ForceController.lua
+2020/11/23 | 1711 | graphics/asymptote/GUI/res/icons.qrc
+2020/11/23 | 1710 | graphics/asymptote/tests/arith/roots.asy
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 170 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-asymptotic-example.gnuplot
+2020/11/23 | 1707142 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2020/11/23 | 1705 | graphics/pgf/base/tex/pgfsys-dvisvgm4ht.def
+2020/11/23 | 1701 | graphics/pgf/base/source/LongestPathRanking_script.h
+2020/11/23 | 169 | graphics/asymptote/runbacktrace.h
+2020/11/23 | 1699 | graphics/pgf/base/lua/graphdrawing/pgf/gd.lua
+2020/11/23 | 1698 | graphics/asymptote/record.cc
+2020/11/23 | 16959 | graphics/pgf/base/source/unittest_luamathparser.tex
+2020/11/23 | 1694 | graphics/asymptote/fftw++.cc
+2020/11/23 | 168 | graphics/asymptote/examples/lines.asy
+2020/11/23 | 1679 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentDirection.lua
+2020/11/23 | 16757 | graphics/pgf/base/lua/luamath/pgf/luamath/parser.lua
+2020/11/23 | 16694 | macros/latex/contrib/arraycols/arraycols.dtx
+2020/11/23 | 1665 | graphics/asymptote/GUI/Widg_editBezier.py
+2020/11/23 | 16647147 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2020/11/23 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
+2020/11/23 | 165516 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2020/11/23 | 1651 | graphics/pgf/base/source/CircularLayout_script.h
+2020/11/23 | 16492 | graphics/asymptote/base/plain_Label.asy
+2020/11/23 | 16483 | graphics/asymptote/runpair.cc
+2020/11/23 | 16467 | graphics/pgf/base/tex/pgflibrarydecorations.shapes.code.tex
+2020/11/23 | 164511 | graphics/asymptote/GUI/icons_rc.py
+2020/11/23 | 1640 | graphics/asymptote/callable.h
+2020/11/23 | 16342 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-lsystems.tex
+2020/11/23 | 16323 | graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex
+2020/11/23 | 1630 | graphics/asymptote/builtin.h
+2020/11/23 | 162 | graphics/asymptote/examples/stereoscopic.asy
+2020/11/23 | 162 | graphics/asymptote/examples/sphereskeleton.asy
+2020/11/23 | 1626 | graphics/asymptote/genv.h
+2020/11/23 | 1620 | graphics/asymptote/doc/colors.asy
+2020/11/23 | 161 | graphics/asymptote/runhistory.h
+2020/11/23 | 16150 | graphics/asymptote/base/slide.asy
+2020/11/23 | 1612 | graphics/asymptote/asy-list.pl
+2020/11/23 | 16121 | graphics/pgf/base/tex/pgfmoduleplot.code.tex
+2020/11/23 | 161076 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2020/11/23 | 160993 | graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
+2020/11/23 | 1608 | graphics/pgf/base/source/SpringEmbedderFR_script.h
+2020/11/23 | 16083 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-petri.tex
+2020/11/23 | 160672 | graphics/asymptote/examples/animations/dice.u3d
+2020/11/23 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2020/11/23 | 1602396 | macros/latex/contrib/nicematrix.zip
+2020/11/23 | 159 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 159 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 159 | graphics/pgf/base/doc/text-en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 159 | graphics/asymptote/tests/types/cast.asy
+2020/11/23 | 15989 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2020/11/23 | 159525 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2020/11/23 | 1594 | graphics/asymptote/pen.cc
+2020/11/23 | 15929 | graphics/pgf/base/tex/tikzlibrarycalc.code.tex
+2020/11/23 | 158 | graphics/asymptote/tests/frames/stat.asy
+2020/11/23 | 1589 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/CycleRemovalGansnerKNV1993.lua
+2020/11/23 | 1588 | graphics/asymptote/build-scripts/asy-format.el
+2020/11/23 | 15829 | graphics/asymptote/runlabel.cc
+2020/11/23 | 15822 | graphics/asymptote/dec.h
+2020/11/23 | 157 | graphics/asymptote/runsystem.h
+2020/11/23 | 157 | graphics/asymptote/doc/saddle.asy
+2020/11/23 | 1578 | graphics/asymptote/build-scripts/cc-format.el
+2020/11/23 | 1576 | graphics/pgf/base/doc/version-for-dvisvgm/en/Makefile
+2020/11/23 | 1572 | graphics/pgf/base/source/SimpleDemoC.c
+2020/11/23 | 1571 | graphics/pgf/base/tex/tikzlibrarycircuits.logic.US.code.tex
+2020/11/23 | 156872 | systems/texlive/tlnet/archive/hyperxmp.source.r56984.tar.xz
+2020/11/23 | 1566 | graphics/asymptote/examples/near_earth.asy
+2020/11/23 | 15645 | graphics/asymptote/install-sh
+2020/11/23 | 1563 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlDeclare.lua
+2020/11/23 | 15631 | graphics/pgf/base/tex/pgflibraryfixedpointarithmetic.code.tex
+2020/11/23 | 156060 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-axes.tex
+2020/11/23 | 155 | graphics/asymptote/tests/types/ecast.asy
+2020/11/23 | 15564745 | graphics/asymptote.zip
+2020/11/23 | 1551 | graphics/asymptote/examples/NURBSsurface.asy
+2020/11/23 | 154 | graphics/pgf/base/source/ExampleLocalMakefileConfig.mk
+2020/11/23 | 154 | graphics/asymptote/examples/billboard.asy
+2020/11/23 | 154 | graphics/asymptote/doc/slopefield1.asy
+2020/11/23 | 15497 | graphics/pgf/base/tex/pgfmanual.pdflinks.code.tex
+2020/11/23 | 1548 | graphics/asymptote/examples/BezierSurface.asy
+2020/11/23 | 15479 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-transparency.tex
+2020/11/23 | 15474 | graphics/pgf/base/tex/pgflibrarypatterns.meta.code.tex
+2020/11/23 | 15451 | graphics/asymptote/types.h
+2020/11/23 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2020/11/23 | 153 | graphics/asymptote/runlabel.h
+2020/11/23 | 1537 | graphics/asymptote/examples/refs.bib
+2020/11/23 | 1532 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.IEC.code.tex
+2020/11/23 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2020/11/23 | 15277 | graphics/asymptote/base/flowchart.asy
+2020/11/23 | 15274 | graphics/asymptote/base/ode.asy
+2020/11/23 | 1524 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-fadings.tex
+2020/11/23 | 1524 | graphics/asymptote/patches/flex.patch
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 151 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example-cut.gnuplot
+2020/11/23 | 151809 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2020/11/23 | 15179 | graphics/asymptote/configure.ac
+2020/11/23 | 151776 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2020/11/23 | 150 | graphics/asymptote/examples/spheresilhouette.asy
+2020/11/23 | 150 | graphics/asymptote/doc/latexmkrc_asydir
+2020/11/23 | 1508 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/initialpositioning/RandomInitialPositioning.lua
+2020/11/23 | 1504 | graphics/asymptote/GUI/xasyUtils.py
+2020/11/23 | 15008 | systems/texlive/tlnet/archive/hyperxmp.r56984.tar.xz
+2020/11/23 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
+2020/11/23 | 1492 | graphics/asymptote/runarray.h
+2020/11/23 | 1492 | graphics/asymptote/GUI/res/icons/bucket.svg
+2020/11/23 | 1482 | graphics/asymptote/GUI/res/icons/android-hand.svg
+2020/11/23 | 14804 | graphics/pgf/base/tex/tikzlibrarymindmap.code.tex
+2020/11/23 | 14802 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Sublayouts.lua
+2020/11/23 | 147 | graphics/asymptote/doc/vectorfield.asy
+2020/11/23 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
+2020/11/23 | 14749 | graphics/asymptote/base/contour3.asy
+2020/11/23 | 147198 | macros/latex/contrib/nicematrix/nicematrix-french.tex
+2020/11/23 | 147175 | graphics/pgf/base/doc/images/pgfmanual-mindmap-1.pdf
+2020/11/23 | 1469 | graphics/asymptote/doc/png/Makefile.in
+2020/11/23 | 1468 | graphics/pgf/base/lua/graphdrawing/pgf/gd/experimental/evolving/TimeSpec.lua
+2020/11/23 | 146833 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2020/11/23 | 14669 | graphics/asymptote/base/palette.asy
+2020/11/23 | 1461 | graphics/asymptote/examples/logo3.asy
+2020/11/23 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2020/11/23 | 145 | graphics/asymptote/examples/star.asy
+2020/11/23 | 14536 | graphics/pgf/base/doc/text-en/pgfmanual-en-introduction.tex
+2020/11/23 | 14534 | graphics/pgf/base/lua/luamath/pgf/luamath/functions.lua
+2020/11/23 | 14524 | graphics/pgf/base/tex/pgflibraryplotmarks.code.tex
+2020/11/23 | 14515 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-perspective.tex
+2020/11/23 | 14504 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-overview.tex
+2020/11/23 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 144 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-parametric-example.gnuplot
+2020/11/23 | 144 | graphics/asymptote/doc/latexmkrc
+2020/11/23 | 1446 | graphics/asymptote/webgl/vertex.glsl
+2020/11/23 | 14469 | graphics/asymptote/stack.cc
+2020/11/23 | 144418 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2020/11/23 | 1440291 | graphics/asymptote/ChangeLog
+2020/11/23 | 143 | graphics/asymptote/tests/gc/label.asy
+2020/11/23 | 14370 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/CoarseGraph.lua
+2020/11/23 | 1433 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/misclayout/BalloonLayout.lua
+2020/11/23 | 143246 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex
+2020/11/23 | 142672 | graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex
+2020/11/23 | 141 | graphics/asymptote/examples/sphere.asy
+2020/11/23 | 141 | graphics/asymptote/examples/ring.asy
+2020/11/23 | 14160 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2020/11/23 | 1415728 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2020/11/23 | 14117 | graphics/pgf/base/tex/pgflibrarycurvilinear.code.tex
+2020/11/23 | 14072 | graphics/asymptote/types.cc
+2020/11/23 | 14014 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/ComponentAlign.lua
+2020/11/23 | 139 | graphics/pgf/base/doc/images/brave-gnu-world-logo-mask.bb
+2020/11/23 | 1398 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/CirclePlacer.lua
+2020/11/23 | 13980 | graphics/asymptote/arrayop.h
+2020/11/23 | 13944 | graphics/asymptote/runtriple.cc
+2020/11/23 | 1393 | graphics/asymptote/GUI/SetCustomAnchor.py
+2020/11/23 | 1391 | graphics/asymptote/doc/CAD1.asy
+2020/11/23 | 13901 | graphics/asymptote/examples/teapot.asy
+2020/11/23 | 138 | graphics/asymptote/Pipfile
+2020/11/23 | 13892 | graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex
+2020/11/23 | 1384 | graphics/asymptote/tests/pic/trans.asy
+2020/11/23 | 137 | graphics/pgf/base/doc/images/brave-gnu-world-logo.25.bb
+2020/11/23 | 1375 | graphics/asymptote/base/tree.asy
+2020/11/23 | 136 | graphics/asymptote/examples/latticeshading.asy
+2020/11/23 | 13663 | graphics/asymptote/doc/install-sh
+2020/11/23 | 13663 | graphics/asymptote/doc/FAQ/install-sh
+2020/11/23 | 13615 | graphics/asymptote/entry.h
+2020/11/23 | 13605 | graphics/asymptote/base/grid3.asy
+2020/11/23 | 13550 | graphics/asymptote/GUI/xasyBezierInterface.py
+2020/11/23 | 1352 | graphics/asymptote/examples/Klein.asy
+2020/11/23 | 134 | graphics/pgf/base/doc/images/brave-gnu-world-logo.bb
+2020/11/23 | 1345 | graphics/asymptote/interact.h
+2020/11/23 | 1341 | graphics/asymptote/runtimebase.in
+2020/11/23 | 13391 | graphics/pgf/base/tex/pgfmathcalc.code.tex
+2020/11/23 | 1337 | graphics/pgf/base/source/layered_script.h
+2020/11/23 | 13375 | graphics/pgf/base/tex/pgflibrarydecorations.footprints.code.tex
+2020/11/23 | 1334 | graphics/pgf/base/source/FMMMLayout_script.h
+2020/11/23 | 133473 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2020/11/23 | 13339 | graphics/asymptote/camp.l
+2020/11/23 | 1331 | graphics/asymptote/tests/types/spec.asy
+2020/11/23 | 132 | graphics/asymptote/tests/string/length.asy
+2020/11/23 | 13288 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2020/11/23 | 13244 | graphics/pgf/base/tex/pgfsys-luatex.def
+2020/11/23 | 131 | graphics/asymptote/GUI/DebugFlags.py
+2020/11/23 | 1319 | graphics/pgf/base/tex/tikzlibrarydecorations.pathreplacing.code.tex
+2020/11/23 | 1319 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
+2020/11/23 | 13195658 | install/graphics/pgf/base/pgf.tds.zip
+2020/11/23 | 13134 | graphics/pgf/base/tex/pgflibraryshadings.code.tex
+2020/11/23 | 13122232 | graphics/pgf/base.zip
+2020/11/23 | 1311 | graphics/asymptote/patches/dvipdf
+2020/11/23 | 1310 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-force.tex
+2020/11/23 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
+2020/11/23 | 1309 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/edge_routing.lua
+2020/11/23 | 1309 | graphics/asymptote/examples/roundpath.asy
+2020/11/23 | 13093 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringHu2006.lua
+2020/11/23 | 1308 | graphics/pgf/base/source/PlanarizationLayout_script.h
+2020/11/23 | 130510 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2020/11/23 | 1303 | graphics/pgf/base/tex/tikzlibraryshapes.gates.logic.US.code.tex
+2020/11/23 | 1303 | graphics/pgf/base/source/FastSimpleHierarchyLayout_script.h
+2020/11/23 | 13039 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-automata.tex
+2020/11/23 | 130320 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2020/11/23 | 1302289 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/11/23 | 129 | graphics/asymptote/tests/gc/struct.asy
+2020/11/23 | 1298 | graphics/asymptote/examples/electromagnetic.asy
+2020/11/23 | 1296 | graphics/pgf/base/tex/t-pgfmod.tex
+2020/11/23 | 1293 | graphics/asymptote/TODO
+2020/11/23 | 1286 | graphics/pgf/base/tex/t-pgfcor.tex
+2020/11/23 | 1284 | graphics/asymptote/tests/output/Makefile
+2020/11/23 | 12813 | graphics/asymptote/impdatum.cc
+2020/11/23 | 1280 | graphics/pgf/base/tex/pgfexternalwithdepth.tex
+2020/11/23 | 1280 | graphics/pgf/base/source/SpringEmbedderKK_script.h
+2020/11/23 | 127885 | graphics/asymptote/camp.tab.cc
+2020/11/23 | 1276 | graphics/asymptote/base/asymptote.py
+2020/11/23 | 1274 | graphics/asymptote/newexp.h
+2020/11/23 | 1274537 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2020/11/23 | 1270 | graphics/asymptote/beziercurve.h
+2020/11/23 | 1266 | graphics/asymptote/drawverbatim.h
+2020/11/23 | 12656 | graphics/pgf/base/tex/pgflibrarydecorations.text.code.tex
+2020/11/23 | 12653 | graphics/pgf/base/tex/tikzlibrarycalendar.code.tex
+2020/11/23 | 1265171 | macros/latex/contrib/nameauth.zip
+2020/11/23 | 1261761 | graphics/asymptote/examples/worldmap.dat
+2020/11/23 | 126096 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex
+2020/11/23 | 12604 | graphics/asymptote/runsystem.cc
+2020/11/23 | 12601 | graphics/pgf/base/tex/pgfsys-pdftex.def
+2020/11/23 | 1254 | graphics/pgf/base/source/SimpleDemoCPlusPlus.c++
+2020/11/23 | 1253 | graphics/asymptote/keywords.pl
+2020/11/23 | 12534 | graphics/asymptote/ax_pthread.m4
+2020/11/23 | 1251 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-through.tex
+2020/11/23 | 1251 | graphics/asymptote/examples/odetest.asy
+2020/11/23 | 124 | graphics/asymptote/tests/gc/path.asy
+2020/11/23 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
+2020/11/23 | 1247 | graphics/asymptote/examples/animations/slidemovies.asy
+2020/11/23 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
+2020/11/23 | 1245 | graphics/asymptote/findsym.pl
+2020/11/23 | 1245396 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2020/11/23 | 124164 | graphics/asymptote/ReleaseNotes
+2020/11/23 | 12413 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/DistanceMatrix.lua
+2020/11/23 | 1240 | graphics/asymptote/examples/arrows3.asy
+2020/11/23 | 123 | graphics/asymptote/examples/Coons.asy
+2020/11/23 | 123 | graphics/asymptote/doc/superpath.asy
+2020/11/23 | 1238 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/CoffmanGrahamRanking.lua
+2020/11/23 | 1237 | graphics/asymptote/GUI/res/icons/closedcurve.svg
+2020/11/23 | 1236 | graphics/asymptote/primitives.h
+2020/11/23 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
+2020/11/23 | 1235777 | graphics/asymptote/GL/glew.c
+2020/11/23 | 1227 | graphics/asymptote/build-scripts/build-asygl
+2020/11/23 | 1227951 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2020/11/23 | 1227486 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2020/11/23 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
+2020/11/23 | 12261 | graphics/pgf/base/lua/graphdrawing/pgf/gd/phylogenetics/BalancedNearestNeighbourInterchange.lua
+2020/11/23 | 12259 | graphics/asymptote/knot.h
+2020/11/23 | 12243 | graphics/pgf/base/tex/pgfmodulenonlineartransformations.code.tex
+2020/11/23 | 1222 | graphics/pgf/base/source/SolarMerger_script.h
+2020/11/23 | 12227 | graphics/pgf/base/lua/graphdrawing/pgf/gd/layered/Sugiyama.lua
+2020/11/23 | 12221 | macros/generic/schemata/schematest.tex
+2020/11/23 | 121 | graphics/asymptote/doc/labelsquare.asy
+2020/11/23 | 1216 | graphics/asymptote/examples/dragon.asy
+2020/11/23 | 1216364 | systems/texlive/tlnet/archive/acro.doc.r56982.tar.xz
+2020/11/23 | 1213 | graphics/asymptote/base/plain_arcs.asy
+2020/11/23 | 1212778 | graphics/asymptote/doc/asymptote.pdf
+2020/11/23 | 121144 | graphics/asymptote/doc/asyRefCard.pdf
+2020/11/23 | 1209 | graphics/asymptote/tests/imp/unravel.asy
+2020/11/23 | 12089 | graphics/asymptote/runlabel.in
+2020/11/23 | 12035 | graphics/asymptote/base/solids.asy
+2020/11/23 | 12024 | graphics/asymptote/stm.cc
+2020/11/23 | 1201 | graphics/pgf/base/tex/tikzlibraryshapes.callouts.code.tex
+2020/11/23 | 119 | graphics/asymptote/fftw++asy.cc
+2020/11/23 | 1197 | graphics/asymptote/drawclipend.h
+2020/11/23 | 11960 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-images.tex
+2020/11/23 | 1194 | graphics/asymptote/GUI/res/icons/code.svg
+2020/11/23 | 11907 | graphics/asymptote/tests/gsl/random.asy
+2020/11/23 | 118 | graphics/asymptote/tests/string/substr.asy
+2020/11/23 | 1189 | graphics/asymptote/tests/types/var.asy
+2020/11/23 | 118974 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/11/23 | 1186 | graphics/asymptote/GUI/res/icons/opencurve.svg
+2020/11/23 | 1186601 | graphics/asymptote/GL/glew.h
+2020/11/23 | 1185 | graphics/asymptote/examples/functionshading.asy
+2020/11/23 | 1183 | graphics/asymptote/camperror.cc
+2020/11/23 | 1179 | graphics/pgf/base/tex/tikzlibraryfadings.code.tex
+2020/11/23 | 1178 | graphics/asymptote/base/embed.asy
+2020/11/23 | 11777 | graphics/pgf/base/tex/pgfutil-context.def
+2020/11/23 | 1172 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/energybased/multilevelmixer/SolarMerger.lua
+2020/11/23 | 1172 | graphics/pgf/base/doc/version-for-dvips/en/Makefile
+2020/11/23 | 1171 | graphics/asymptote/parser.h
+2020/11/23 | 1169 | graphics/pgf/base/tex/tikzlibraryer.code.tex
+2020/11/23 | 1169 | graphics/pgf/base/source/SiftingHeuristic_script.h
+2020/11/23 | 1168166 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2020/11/23 | 11672 | graphics/asymptote/Makefile.in
+2020/11/23 | 11656 | graphics/asymptote/base/binarytree.asy
+2020/11/23 | 1164 | graphics/asymptote/examples/genustwo.asy
+2020/11/23 | 11642 | graphics/asymptote/coder.h
+2020/11/23 | 1163 | graphics/asymptote/runtime.h
+2020/11/23 | 11627 | graphics/asymptote/path.h
+2020/11/23 | 1160528 | graphics/asymptote/gc-8.0.4.tar.gz
+2020/11/23 | 116025 | graphics/asymptote/predicates.cc
+2020/11/23 | 11601 | graphics/pgf/base/doc/text-en/pgfmanual-en-gd-display-layer.tex
+2020/11/23 | 115 | graphics/asymptote/doc/onecontour.asy
+2020/11/23 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2020/11/23 | 11566 | graphics/pgf/base/doc/version-for-dvisvgm/pgfmanual-dvisvgm.cfg
+2020/11/23 | 11557 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-edges.tex
+2020/11/23 | 11541 | graphics/asymptote/aspy.py
+2020/11/23 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2020/11/23 | 11528 | graphics/asymptote/GUI/InplaceAddObj.py
+2020/11/23 | 11521 | graphics/asymptote/util.cc
+2020/11/23 | 1151 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/OptimalRanking.lua
+2020/11/23 | 1151 | graphics/asymptote/callable.cc
+2020/11/23 | 115153 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-animations.tex
+2020/11/23 | 1149 | graphics/asymptote/guide.cc
+2020/11/23 | 1148 | graphics/asymptote/GUI/configs/xasyconfig.cson
+2020/11/23 | 1147012 | systems/texlive/tlnet/archive/hyperxmp.doc.r56984.tar.xz
+2020/11/23 | 1146535 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2020/11/23 | 1146485 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2020/11/23 | 1144403 | macros/latex/contrib/nameauth/nameauth.pdf
+2020/11/23 | 114400 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2020/11/23 | 1142 | graphics/pgf/base/doc/licenses/LICENSE
+2020/11/23 | 1142 | graphics/asymptote/envcompleter.cc
+2020/11/23 | 11407 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-design.tex
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-exp.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-exp.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-luatex/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvisvgm/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/text-en/plots/pgf-tan-example.gnuplot
+2020/11/23 | 113 | graphics/pgf/base/doc/text-en/plots/pgf-exp.gnuplot
+2020/11/23 | 113 | graphics/asymptote/patches/fixmem.reg
+2020/11/23 | 11395 | graphics/pgf/base/tex/tikzlibrarytopaths.code.tex
+2020/11/23 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2020/11/23 | 1135 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/ControlStart.lua
+2020/11/23 | 11349 | graphics/pgf/base/tex/pgfsys-dvi.def
+2020/11/23 | 11324 | graphics/pgf/base/lua/graphdrawing/pgf/gd/trees/doc.lua
+2020/11/23 | 11320 | graphics/asymptote/base/plain_markers.asy
+2020/11/23 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
+2020/11/23 | 11312 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Vertex.lua
+2020/11/23 | 1126 | graphics/asymptote/coenv.cc
+2020/11/23 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2020/11/23 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
+2020/11/23 | 11217 | graphics/asymptote/texfile.h
+2020/11/23 | 11212 | graphics/asymptote/drawelement.h
+2020/11/23 | 1120 | graphics/asymptote/examples/animations/wheel.asy
+2020/11/23 | 1120 | graphics/asymptote/base/external.asy
+2020/11/23 | 111 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 111 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 111 | graphics/pgf/base/doc/text-en/plots/pgfplotgnuplot-example.gnuplot
+2020/11/23 | 111 | graphics/pgf/base/doc/AUTHORS
+2020/11/23 | 111 | graphics/asymptote/GUI/res/icons/center.asy
+2020/11/23 | 111 | graphics/asymptote/examples/shadestroke.asy
+2020/11/23 | 1114 | graphics/asymptote/examples/laserlattice.asy
+2020/11/23 | 11127 | graphics/pgf/base/lua/graphdrawing/pgf/gd/lib.lua
+2020/11/23 | 1111 | graphics/asymptote/examples/imagehistogram.asy
+2020/11/23 | 11083 | graphics/pgf/base/lua/graphdrawing/pgf/gd/control/Distances.lua
+2020/11/23 | 1107 | graphics/pgf/base/source/tikzexternaltest.code.tex
+2020/11/23 | 1105 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/base/ForceTemplate.lua
+2020/11/23 | 1104 | graphics/pgf/base/source/IndependentSetMerger_script.h
+2020/11/23 | 1102 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
+2020/11/23 | 1101 | graphics/pgf/base/source/LocalBiconnectedMerger_script.h
+2020/11/23 | 11008 | graphics/asymptote/base/math.asy
+2020/11/23 | 109 | graphics/asymptote/tests/string/insert.asy
+2020/11/23 | 1096 | graphics/asymptote/tests/array/transpose.asy
+2020/11/23 | 1096 | graphics/asymptote/refaccess.cc
+2020/11/23 | 10925 | graphics/pgf/base/tex/pgfmathfunctions.misc.code.tex
+2020/11/23 | 1090 | graphics/pgf/base/tex/pgf.sty
+2020/11/23 | 10901 | graphics/pgf/base/tex/pgfmodulebending.code.tex
+2020/11/23 | 108 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-sin.gnuplot
+2020/11/23 | 108 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-sin.gnuplot
+2020/11/23 | 108 | graphics/pgf/base/doc/text-en/plots/pgf-sin.gnuplot
+2020/11/23 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
+2020/11/23 | 108945 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2020/11/23 | 1087 | graphics/pgf/base/source/multilevelmixer_script.h
+2020/11/23 | 1087 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/SpringElectricalLayouts.lua
+2020/11/23 | 1085 | graphics/asymptote/GUI/res/icons/openpolygon.svg
+2020/11/23 | 10830 | graphics/asymptote/base/CAD.asy
+2020/11/23 | 1082 | graphics/asymptote/patches/README
+2020/11/23 | 1080 | graphics/pgf/base/source/INSTALL
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-xetex/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-pdftex/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-dvips/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-dvipdfmx/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 107 | graphics/pgf/base/doc/version-for-dvipdfm/en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 107 | graphics/pgf/base/doc/text-en/plots/pgfmanual-sine.gnuplot
+2020/11/23 | 1078185 | macros/latex/contrib/nicematrix/nicematrix.pdf
+2020/11/23 | 1077 | graphics/pgf/base/source/SimpleDemoOGDF.c++
+2020/11/23 | 1077 | graphics/pgf/base/source/BarycenterPlacer_script.h
+2020/11/23 | 10778 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-matrices.tex
+2020/11/23 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2020/11/23 | 1068 | graphics/pgf/base/lua/graphdrawing/pgf/gd/doc/ogdf/layered/SiftingHeuristic.lua
+2020/11/23 | 106851 | graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex
+2020/11/23 | 1065 | graphics/asymptote/examples/shellmethod.asy
+2020/11/23 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
+2020/11/23 | 10610 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-profiler.tex
+2020/11/23 | 105 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
+2020/11/23 | 105 | graphics/asymptote/GUI/res/icons/closedcurve.asy
+2020/11/23 | 10585 | graphics/asymptote/path3.h
+2020/11/23 | 1057 | graphics/pgf/base/source/CoffmanGrahamRanking_script.h
+2020/11/23 | 10576905 | graphics/pgf/base/doc/pgfmanual.pdf
+2020/11/23 | 1055 | graphics/asymptote/examples/partitionExample.asy
+2020/11/23 | 10535 | graphics/pgf/base/doc/text-en/pgfmanual-en-base-patterns.tex
+2020/11/23 | 1052 | graphics/asymptote/GUI/res/icons/centerorigin.svg
+2020/11/23 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
+2020/11/23 | 1051 | graphics/asymptote/doc/eetomumu.asy
+2020/11/23 | 1050 | graphics/asymptote/opsymbols.pl
+2020/11/23 | 104 | graphics/asymptote/examples/tiling.asy
+2020/11/23 | 104935 | graphics/pgf/base/tex/pgfmathfloat.code.tex
+2020/11/23 | 10461 | graphics/pgf/base/doc/text-en/pgfmanual-en-library-shadows.tex
+2020/11/23 | 104487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2020/11/23 | 10445 | graphics/asymptote/INSTALL
+2020/11/23 | 1042 | graphics/asymptote/examples/NURBSsphere.asy
+2020/11/23 | 10416 | graphics/pgf/base/doc/text-en/pgfmanual-en-math-algorithms.tex
+2020/11/23 | 1040 | graphics/pgf/base/tex/tikzlibrarythrough.code.tex
+2020/11/23 | 1040 | graphics/asymptote/examples/lmfit1.asy
+2020/11/23 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
+2020/11/23 | 1036 | graphics/asymptote/examples/workcone.asy
+2020/11/23 | 1033 | graphics/pgf/base/source/MatchingMerger_script.h
+2020/11/23 | 1033 | graphics/asymptote/examples/basealign.asy
+2020/11/23 | 1030 | graphics/pgf/base/lua/graphdrawing/pgf/gd/model/Hyperedge.lua
+2020/11/23 | 1030 | graphics/asymptote/absyn.h
+2020/11/23 | 102 | graphics/asymptote/tests/gc/file.asy
+2020/11/23 | 102882 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2020/11/23 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
+2020/11/23 | 1024756 | systems/texlive/tlnet/archive/chemmacros.doc.r56983.tar.xz
+2020/11/23 | 1022 | graphics/pgf/base/source/OptimalRanking_script.h
+2020/11/23 | 10224 | graphics/asymptote/tr.cc
+2020/11/23 | 1020 | graphics/asymptote/flatguide.cc
+2020/11/23 | 101 | graphics/pgf/base/doc/version-for-vtex/en/plots/pgf-x.gnuplot
+2020/11/23 | 101 | graphics/pgf/base/doc/version-for-tex4ht/en/plots/pgf-x.gnuplot
+2020/11/23 | 101 | graphics/pgf/base/doc/text-en/plots/pgf-x.gnuplot
+2020/11/23 | 10197 | graphics/pgf/base/lua/graphdrawing/pgf/gd/force/jedi/doc.lua
+2020/11/23 | 10196 | graphics/asymptote/doc/CAD.tex
+2020/11/23 | 101948 | macros/generic/schemata/schemata.dtx
+2020/11/23 | 1017 | graphics/pgf/base/tex/pgfexternal.tex
+2020/11/23 | 1017 | graphics/pgf/base/source/EdgeCoverMerger_script.h
+2020/11/23 | 10165 | graphics/pgf/base/tex/pgfmathfunctions.base.code.tex
+2020/11/23 | 101592 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2020/11/23 | 1013 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
+2020/11/23 | 10130 | graphics/pgf/base/tex/pgfmodulesnakes.code.tex
+2020/11/23 | 1010 | graphics/asymptote/examples/washermethod.asy
+2020/11/23 | 1008 | graphics/asymptote/doc/leastsquares.asy
+2020/11/23 | 10074 | graphics/pgf/base/doc/text-en/pgfmanual-en-main-preamble.tex
+2020/11/23 | 10072 | graphics/asymptote/jsfile.cc
+2020/11/23 | 1005 | graphics/asymptote/doc/asy.1.begin
+2020/11/23 | 1003 | graphics/asymptote/GUI/res/icons/eye.svg
+2020/11/23 | 1000 | graphics/pgf/base/source/MultilevelLayout_script.h
+2020/11/23 | 1000 | graphics/asymptote/doc/FAQ/Makefile
+2020/11/23 | 10009 | graphics/pgf/base/tex/pgfutil-plain.def
2020/11/22 | 996938 | macros/latex/contrib/chemmacros/chemmacros-manual.pdf
-2020/11/22 | 99229 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2020/11/22 | 98597 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
2020/11/22 | 983 | macros/latex/contrib/acro/examples/acro.example.issue-119.tex
2020/11/22 | 979 | macros/latex/contrib/hyperxmp/hyperxmp-add-bytecount.1
-2020/11/22 | 97451 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2020/11/22 | 965659 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2020/11/22 | 96263 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2020/11/22 | 94605 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2020/11/22 | 94446 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2020/11/22 | 9371 | macros/latex/contrib/chemmacros/chemmacros.module.chemformula.code.tex
-2020/11/22 | 93661 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2020/11/22 | 93590 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2020/11/22 | 9080 | systems/texlive/tlnet/archive/subfiles.source.r56977.tar.xz
2020/11/22 | 897220 | systems/texlive/tlnet/archive/tex4ht.r56978.tar.xz
2020/11/22 | 882709 | macros/latex/contrib/acro/acro-manual.pdf
-2020/11/22 | 87399 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2020/11/22 | 86663 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2020/11/22 | 863 | systems/win32/miktex/tm/packages/pr.ini
-2020/11/22 | 8593 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2020/11/22 | 84911 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2020/11/22 | 8424 | macros/latex/contrib/chemmacros/chemmacros.sty
2020/11/22 | 8175 | macros/latex/contrib/acro/examples/acro.example.issue-119.pdf
-2020/11/22 | 808896 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2020/11/22 | 80691 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2020/11/22 | 8003 | macros/latex/contrib/chemmacros/chemmacros.module.isotopes.code.tex
-2020/11/22 | 78403 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
2020/11/22 | 7815 | macros/latex/contrib/hyperxmp/hyperxmp-add-bytecount.pl
2020/11/22 | 779 | macros/latex/contrib/acro/examples/acro.example.possessive.tex
2020/11/22 | 77679 | macros/latex/contrib/hyperxmp/einstein2.pdf
-2020/11/22 | 77239 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
2020/11/22 | 757 | macros/latex/contrib/acro/examples/acro.example.texsx-542461.tex
-2020/11/22 | 7570 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2020/11/22 | 74258 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2020/11/22 | 74049 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2020/11/22 | 738798 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2020/11/22 | 73421 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2020/11/22 | 7294 | macros/latex/contrib/chemmacros/chemmacros.module.newman.code.tex
-2020/11/22 | 72878 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2020/11/22 | 72711 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2020/11/22 | 71731 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2020/11/22 | 71620 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
2020/11/22 | 70830 | macros/latex/contrib/hyperxmp/einstein1.pdf
2020/11/22 | 706 | macros/latex/contrib/acro/examples/acro.example.issue-111.tex
-2020/11/22 | 70118 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2020/11/22 | 69714 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2020/11/22 | 678091 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2020/11/22 | 67426 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2020/11/22 | 65983 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2020/11/22 | 65969 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2020/11/22 | 65769 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2020/11/22 | 65273 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2020/11/22 | 65067 | macros/latex/contrib/acro/examples/acro.example.units.pdf
-2020/11/22 | 64438 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2020/11/22 | 63607 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2020/11/22 | 63490 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
2020/11/22 | 6325 | macros/latex/contrib/chemmacros/chemmacros.module.tikz.code.tex
-2020/11/22 | 63182 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2020/11/22 | 63010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2020/11/22 | 6265 | macros/latex/contrib/chemmacros/chemmacros.module.lang.code.tex
-2020/11/22 | 623785 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
2020/11/22 | 6226 | macros/latex/contrib/chemmacros/chemmacros.module.polymers.code.tex
-2020/11/22 | 61838 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2020/11/22 | 617436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2020/11/22 | 6070 | macros/latex/contrib/chemmacros/chemmacros.module.thermodynamics.code.tex
-2020/11/22 | 598219 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2020/11/22 | 597314 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2020/11/22 | 59550 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2020/11/22 | 5864 | macros/latex/contrib/chemmacros/chemmacros.module.charges.code.tex
-2020/11/22 | 58631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2020/11/22 | 58496 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2020/11/22 | 580936 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2020/11/22 | 57229 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2020/11/22 | 567104 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2020/11/22 | 56655 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2020/11/22 | 56010 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2020/11/22 | 55970 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2020/11/22 | 55830 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2020/11/22 | 557911 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2020/11/22 | 55605 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2020/11/22 | 550966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2020/11/22 | 550962 | systems/win32/miktex/tm/packages/files.csv.lzma
-2020/11/22 | 5500515 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2020/11/22 | 54665 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2020/11/22 | 5439 | macros/latex/contrib/chemmacros/chemmacros.module.acid-base.code.tex
-2020/11/22 | 531489 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2020/11/22 | 52200 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2020/11/22 | 51964 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2020/11/22 | 51475 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2020/11/22 | 51117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2020/11/22 | 50857 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2020/11/22 | 50513 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2020/11/22 | 50435 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2020/11/22 | 49817 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2020/11/22 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2020/11/22 | 49274 | systems/texlive/tlnet/tlpkg/installer/config.guess
2020/11/22 | 4890 | macros/latex/contrib/chemmacros/chemmacros.module.mechanisms.code.tex
-2020/11/22 | 482421 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2020/11/22 | 47679 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2020/11/22 | 4764 | macros/latex/contrib/chemmacros/chemmacros.module.errorcheck.code.tex
-2020/11/22 | 46533 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2020/11/22 | 461750 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
2020/11/22 | 4612 | macros/latex/contrib/chemmacros/chemmacros.module.particles.code.tex
-2020/11/22 | 45811 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
2020/11/22 | 4562 | macros/latex/contrib/chemmacros/chemmacros.module.phases.code.tex
-2020/11/22 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2020/11/22 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2020/11/22 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2020/11/22 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2020/11/22 | 45369 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2020/11/22 | 44980 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2020/11/22 | 43082 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2020/11/22 | 42915 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2020/11/22 | 4288 | macros/latex/contrib/chemmacros/chemmacros.module.xfrac.code.tex
-2020/11/22 | 42632 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2020/11/22 | 42627 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2020/11/22 | 42238 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2020/11/22 | 42078 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2020/11/22 | 41055 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2020/11/22 | 40820 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2020/11/22 | 39355 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2020/11/22 | 39309 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2020/11/22 | 392343 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2020/11/22 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r56975.tar.xz
-2020/11/22 | 37682 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2020/11/22 | 372 | macros/latex/contrib/acro/examples/acro.example.texsx-515295.tex
-2020/11/22 | 36958 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2020/11/22 | 36930 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2020/11/22 | 36640 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2020/11/22 | 36373 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2020/11/22 | 353 | macros/latex/contrib/acro/examples/acro.example.texsx-513623.tex
-2020/11/22 | 35189 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2020/11/22 | 34789 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2020/11/22 | 3466 | macros/latex/contrib/hyperxmp/gglo-hyxmp.ist
2020/11/22 | 3442 | macros/latex/contrib/hyperxmp/gind-hyxmp.ist
-2020/11/22 | 34185 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
2020/11/22 | 33721 | macros/latex/contrib/acro/examples/acro.example.texsx-507726.pdf
-2020/11/22 | 33151 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
2020/11/22 | 329 | macros/latex/contrib/acro/examples/acro.example.issue-109.tex
-2020/11/22 | 329622 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2020/11/22 | 32923 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2020/11/22 | 32432 | macros/latex/contrib/acro/examples/acro.example.texsx-505891.pdf
-2020/11/22 | 32338 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2020/11/22 | 3214 | macros/latex/contrib/acro/examples/acro.example.basic.tex
-2020/11/22 | 318788 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2020/11/22 | 315 | macros/latex/contrib/acro/examples/acro.example.acflike.tex
-2020/11/22 | 31217 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2020/11/22 | 31214 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2020/11/22 | 31043 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2020/11/22 | 30934 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2020/11/22 | 30681 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2020/11/22 | 3052 | systems/texlive/tlnet/archive/orcidlink.source.r56976.tar.xz
2020/11/22 | 30362 | macros/latex/contrib/chemmacros/chemmacros.module.nomenclature.code.tex
2020/11/22 | 30275 | macros/latex/contrib/acro/examples/acro.example.issue-109.pdf
2020/11/22 | 3002 | macros/latex/contrib/chemmacros/chemmacros.module.symbols.code.tex
-2020/11/22 | 29732 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2020/11/22 | 295368 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2020/11/22 | 29155 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2020/11/22 | 28917 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2020/11/22 | 286 | macros/latex/contrib/acro/examples/acro.example.issue-154.tex
-2020/11/22 | 28607 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2020/11/22 | 282446 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2020/11/22 | 280104 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2020/11/22 | 279491 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2020/11/22 | 27759 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2020/11/22 | 27709 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2020/11/22 | 27104 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2020/11/22 | 27056 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
2020/11/22 | 270551 | macros/latex/contrib/hyperxmp/hyperxmp.dtx
-2020/11/22 | 27009 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2020/11/22 | 26982 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2020/11/22 | 2657 | macros/latex/contrib/chemmacros/chemmacros.module.greek.code.tex
-2020/11/22 | 2635855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2020/11/22 | 258223 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2020/11/22 | 2542 | macros/latex/contrib/chemmacros/README
-2020/11/22 | 2514453 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2020/11/22 | 25122 | macros/latex/contrib/chemmacros/chemmacros.history
-2020/11/22 | 250932 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2020/11/22 | 249036 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2020/11/22 | 24891 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2020/11/22 | 24841 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2020/11/22 | 243101 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2020/11/22 | 24269951 | systems/texlive/tlnet/install-tl.zip
2020/11/22 | 24224 | macros/latex/contrib/acro/examples/acro.example.issue-154.pdf
2020/11/22 | 2413 | macros/latex/contrib/chemmacros/chemmacros.module.all.code.tex
2020/11/22 | 236484 | systems/texlive/tlnet/archive/subfiles.doc.r56977.tar.xz
-2020/11/22 | 23638 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2020/11/22 | 2332 | macros/latex/contrib/chemmacros/chemmacros.module.units.code.tex
-2020/11/22 | 23021 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
2020/11/22 | 2294 | macros/latex/contrib/hyperxmp/README
2020/11/22 | 2284 | systems/texlive/tlnet/archive/subfiles.r56977.tar.xz
2020/11/22 | 22752 | macros/latex/contrib/acro/examples/acro.example.texsx-513623.pdf
-2020/11/22 | 2245148 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2020/11/22 | 224116 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
2020/11/22 | 218656 | systems/texlive/tlnet/archive/texlive-scripts.doc.r56975.tar.xz
-2020/11/22 | 21851 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2020/11/22 | 21350 | macros/latex/contrib/chemmacros/chemmacros.module.orbital.code.tex
-2020/11/22 | 212027 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2020/11/22 | 2104 | macros/latex/contrib/acro/README
-2020/11/22 | 210214 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
2020/11/22 | 20922 | macros/latex/contrib/acro/examples/acro.example.acflike.pdf
-2020/11/22 | 20817 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2020/11/22 | 207413 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2020/11/22 | 204589 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2020/11/22 | 204569 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2020/11/22 | 204245 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
2020/11/22 | 2034 | macros/latex/contrib/hyperxmp/hyperxmp.ins
-2020/11/22 | 202422 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2020/11/22 | 19947 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2020/11/22 | 199230 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2020/11/22 | 1985300 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
2020/11/22 | 1978 | macros/latex/contrib/acro/examples/acro.example.units.tex
-2020/11/22 | 197844 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2020/11/22 | 195337 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2020/11/22 | 194087 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2020/11/22 | 19383257 | systems/texlive/tlnet/install-tl-windows.exe
-2020/11/22 | 192635 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2020/11/22 | 18793 | macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex
-2020/11/22 | 179938 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2020/11/22 | 179400 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2020/11/22 | 17716 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2020/11/22 | 17628 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2020/11/22 | 1707143 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
2020/11/22 | 170400 | systems/texlive/tlnet/archive/texlive-docindex.doc.r56975.tar.xz
-2020/11/22 | 16641497 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2020/11/22 | 165517 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2020/11/22 | 164729 | macros/latex/contrib/acro/acro.sty
2020/11/22 | 162052 | systems/texlive/tlnet/archive/orcidlink.doc.r56976.tar.xz
-2020/11/22 | 161077 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2020/11/22 | 16059 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2020/11/22 | 15990 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2020/11/22 | 159524 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2020/11/22 | 15855 | macros/latex/contrib/acro/examples/acro.example.texsx-515295.pdf
2020/11/22 | 15808 | macros/latex/contrib/acro/examples/acro.example.texsx-542461.pdf
2020/11/22 | 15733 | macros/latex/contrib/acro/examples/acro.example.issue-111.pdf
2020/11/22 | 1555235 | macros/latex/contrib/hyperxmp/hyperxmp.pdf
-2020/11/22 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2020/11/22 | 15398 | macros/latex/contrib/chemmacros/chemmacros.module.redox.code.tex
-2020/11/22 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2020/11/22 | 151810 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2020/11/22 | 151776 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
2020/11/22 | 1488 | systems/texlive/tlnet/archive/orcidlink.r56976.tar.xz
2020/11/22 | 148746 | macros/latex/contrib/chemmacros/chemmacros-manual.tex
2020/11/22 | 1476 | macros/latex/contrib/acro/examples/acro.example.texsx-507726.tex
-2020/11/22 | 146833 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2020/11/22 | 14647 | macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex
-2020/11/22 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2020/11/22 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2020/11/22 | 144419 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
2020/11/22 | 144061 | macros/latex/contrib/acro/acro2.sty
2020/11/22 | 14384 | macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex
-2020/11/22 | 14163 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2020/11/22 | 1415728 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2020/11/22 | 1380823 | install/macros/latex/contrib/hyperxmp.tds.zip
2020/11/22 | 1372782 | macros/latex/contrib/acro.zip
2020/11/22 | 13686 | macros/latex/contrib/acro/examples/acro.example.possessive.pdf
2020/11/22 | 1367199 | macros/latex/contrib/hyperxmp.zip
2020/11/22 | 136160 | systems/texlive/tlnet/archive/tex4ht.doc.r56978.tar.xz
2020/11/22 | 135526 | macros/latex/contrib/chemmacros/chemmacros4.sty
-2020/11/22 | 133474 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2020/11/22 | 13289 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2020/11/22 | 131936 | systems/texlive/tlnet/archive/texlive-scripts.r56975.tar.xz
-2020/11/22 | 130508 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2020/11/22 | 130321 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2020/11/22 | 1302291 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2020/11/22 | 12893 | macros/latex/contrib/chemmacros/chemmacros-manual.cls
-2020/11/22 | 1274541 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2020/11/22 | 125351 | macros/latex/contrib/acro/examples/acro.example.basic.pdf
-2020/11/22 | 1245395 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2020/11/22 | 1228503 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2020/11/22 | 1227722 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2020/11/22 | 118974 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2020/11/22 | 1168165 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2020/11/22 | 115942 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2020/11/22 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2020/11/22 | 1146548 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2020/11/22 | 1145656 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2020/11/22 | 114398 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2020/11/22 | 11394 | macros/latex/contrib/hyperxmp/einstein-xmp.tex
-2020/11/22 | 113870 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2020/11/22 | 1125036 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
2020/11/22 | 1111749 | macros/latex/contrib/chemmacros.zip
2020/11/22 | 11011 | macros/latex/contrib/chemmacros/chemmacros.module.scheme.code.tex
-2020/11/22 | 108946 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2020/11/22 | 1076055 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2020/11/22 | 1068 | macros/latex/contrib/acro/examples/acro.example.texsx-505891.tex
2020/11/22 | 10594 | macros/latex/contrib/chemmacros/chemmacros5.sty
-2020/11/22 | 104486 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2020/11/22 | 102881 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2020/11/22 | 101593 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2020/11/22 | 100220 | macros/latex/contrib/acro/acro-manual.tex
2020/11/21 | 811616 | systems/win32/w32tex/win64/aleph-w64.tar.xz
-2020/11/21 | 741638 | systems/win32/w32tex/ChangeLog
+2020/11/21 | 741687 | systems/win32/w32tex/ChangeLog
2020/11/21 | 6212 | systems/texlive/tlnet/archive/collection-latexextra.r56970.tar.xz
2020/11/21 | 5759 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/11/21 | 5271 | macros/latex/contrib/orcidlink/orcidlink.dtx
@@ -298,7 +2179,7 @@
2020/11/21 | 401704480 | systems/win32/w32tex/ltxpkgdocs.tar.xz
2020/11/21 | 388616 | systems/texlive/tlnet/archive/xkeyval.doc.r56971.tar.xz
2020/11/21 | 27457 | macros/latex/contrib/orcidlink/preview.png
-2020/11/21 | 2598768 | systems/win32/w32tex/tex4htk-w32.tar.xz
+2020/11/21 | 2593956 | systems/win32/w32tex/tex4htk-w32.tar.xz
2020/11/21 | 2322 | macros/latex/contrib/orcidlink/orcidlink.ins
2020/11/21 | 2188 | macros/latex/contrib/orcidlink/README.md
2020/11/21 | 164441 | macros/latex/contrib/orcidlink.zip
@@ -374,6 +2255,7 @@
2020/11/19 | 41602 | support/lacheck/Makefile.in
2020/11/19 | 40836 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
2020/11/19 | 40420 | systems/texlive/tlnet/archive/teubner.source.r56956.tar.xz
+2020/11/19 | 4001 | macros/latex/contrib/nameauth/Makefile
2020/11/19 | 3965 | macros/latex/contrib/reledmac/README.md
2020/11/19 | 394504 | fonts/kpfonts-otf/fonts/KpMath-Regular.otf
2020/11/19 | 38029 | systems/mac/mactex/ExtrasFolder.pdf
@@ -548,7 +2430,6 @@
2020/11/18 | 1095707 | macros/latex/contrib/teubner.zip
2020/11/18 | 10316 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
2020/11/17 | 991820 | macros/latex/contrib/acrotex/doc/eformman.pdf
-2020/11/17 | 9729 | macros/luatex/optex/base/hi-syntax.opm
2020/11/17 | 9720 | systems/texlive/tlnet/archive/skdoc.r56950.tar.xz
2020/11/17 | 951 | macros/latex/contrib/ntgclass/README
2020/11/17 | 93960859 | systems/win32/w32tex/TLW64/tl-win64.zip
@@ -596,52 +2477,8 @@
2020/11/17 | 1781 | macros/latex/contrib/datax/datax.ins
2020/11/17 | 1742484 | systems/texlive/tlnet/archive/bookcover.doc.r56947.tar.xz
2020/11/17 | 15795 | CTAN.sites
-2020/11/17 | 15742 | macros/luatex/optex/base/verbatim.opm
2020/11/17 | 14616 | systems/texlive/tlnet/archive/mismath.source.r56949.tar.xz
2020/11/17 | 13937 | macros/latex/contrib/ntgclass/ChangeLog
2020/11/17 | 1364576 | macros/latex/contrib/acrotex/doc/aeb_man.pdf
2020/11/17 | 1279767 | macros/luatex/optex/doc/optex-doc.pdf
2020/11/17 | 12324 | macros/luatex/optex/base/prefixed.opm
-2020/11/16 | 9891911 | macros/latex/contrib/acmart.zip
-2020/11/16 | 831482 | macros/latex/contrib/acmart/acmart.pdf
-2020/11/16 | 790084 | systems/texlive/tlnet/archive/tugboat.doc.r56942.tar.xz
-2020/11/16 | 768503 | macros/latex/contrib/acmart/samples/sample-lualatex.pdf
-2020/11/16 | 65991060 | systems/win32/w32tex/biblatex-biber.tar.xz
-2020/11/16 | 653283 | macros/latex/contrib/acmart/samples/sample-xelatex.pdf
-2020/11/16 | 599414 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
-2020/11/16 | 599051 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf
-2020/11/16 | 596981 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
-2020/11/16 | 587131 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
-2020/11/16 | 544670 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
-2020/11/16 | 544164 | macros/latex/contrib/mismath.zip
-2020/11/16 | 5348 | systems/texlive/tlnet/archive/biblatex-german-legal.r56939.tar.xz
-2020/11/16 | 491729 | macros/latex/contrib/philosophersimprint.zip
-2020/11/16 | 49095 | macros/latex/contrib/bookcover/bookcover.dtx
-2020/11/16 | 45260 | systems/texlive/tlnet/archive/japanese-otf.source.r56938.tar.xz
-2020/11/16 | 411951 | macros/latex/contrib/acmart/acmguide.pdf
-2020/11/16 | 40236 | systems/texlive/tlnet/archive/tugboat.source.r56942.tar.xz
-2020/11/16 | 3751133 | info/lshort/italian.zip
-2020/11/16 | 353675 | macros/latex/contrib/skdoc.zip
-2020/11/16 | 346633 | macros/latex/contrib/philosophersimprint/philosophersimprint.pdf
-2020/11/16 | 325095 | macros/latex/contrib/skdoc/skdoc.pdf
-2020/11/16 | 324540 | systems/win32/w32tex/otfbeta.tar.xz
-2020/11/16 | 3151915 | macros/latex/contrib/bookcover.zip
-2020/11/16 | 2825 | macros/latex/contrib/bookcover/bookcover-example1.tex
-2020/11/16 | 27916 | systems/texlive/tlnet/archive/tugboat.r56942.tar.xz
-2020/11/16 | 276039 | macros/latex/contrib/bookcover/bookcover-example1.pdf
-2020/11/16 | 2164 | systems/texlive/tlnet/archive/pdfpc.r56940.tar.xz
-2020/11/16 | 205944 | systems/texlive/tlnet/archive/japanese-otf.r56938.tar.xz
-2020/11/16 | 1815 | macros/latex/contrib/skdoc/Makefile
-2020/11/16 | 176124 | systems/texlive/tlnet/archive/pdfpc.doc.r56940.tar.xz
-2020/11/16 | 167748 | systems/texlive/tlnet/archive/biblatex-german-legal.doc.r56939.tar.xz
-2020/11/16 | 1611 | macros/latex/contrib/skdoc/README
-2020/11/16 | 150046 | macros/latex/contrib/bookcover/bookcover-example2.pdf
-2020/11/16 | 1395230 | macros/latex/contrib/bookcover/bookcover.pdf
-2020/11/16 | 129174 | macros/latex/contrib/philosophersimprint/sample.pdf
-2020/11/16 | 123979 | macros/latex/contrib/skdoc/skdoc.dtx
-2020/11/16 | 12328 | systems/texlive/tlnet/archive/japanese-otf.doc.r56938.tar.xz
-2020/11/16 | 1167 | macros/latex/contrib/philosophersimprint/Makefile
-2020/11/16 | 1031481 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
-2020/11/16 | 1028951 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf
-2020/11/16 | 1023619 | macros/latex/contrib/acmart/samples/sample-authordraft.pdf
-2020/11/16 | 1019815 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
diff --git a/graphics/asymptote/BUGS b/graphics/asymptote/BUGS
index 06febe85d4..77e2ef14f2 100644
--- a/graphics/asymptote/BUGS
+++ b/graphics/asymptote/BUGS
@@ -2,5 +2,5 @@ If you find a bug in Asymptote, please check (if possible) whether the bug
is still present in the latest git developmental code before submitting a
bug report.
-New bugs can be submitted using the Bug Tracking System at
-http://asymptote.sourceforge.net/
+New bugs can be submitted at
+https://github.com/vectorgraphics/asymptote/issues
diff --git a/graphics/asymptote/ChangeLog b/graphics/asymptote/ChangeLog
index afd8de3855..a7239423a6 100644
--- a/graphics/asymptote/ChangeLog
+++ b/graphics/asymptote/ChangeLog
@@ -1,3 +1,311 @@
+commit 3b88c382bf0dd59daa6427a9fc4f03c246b5d218
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 22 18:02:21 2020 -0700
+
+ Fix normalization in tube rendering.
+
+commit 31ab4195580be6ac65ad226d29a568c82147e166
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 22 15:09:09 2020 -0700
+
+ Update freeglut installation instructions.
+
+commit 7cedd768019efd0fe435fa7d7a8b281298f4d6ba
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 22 10:34:07 2020 -0700
+
+ Work around further floating point exceptions in OpenGL libraries.
+
+commit 437aef9cb8ae639727f635b51121a00fdb16423d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 22 01:29:47 2020 -0700
+
+ Add Label align(Label,dir) for aligning Label normal in direction dir.
+
+commit df6f1c2641fd51975a11244be7b66c477f73a856
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Nov 21 22:15:22 2020 -0700
+
+ Add settings.compress=true option to control PDF image compression.
+
+commit a36959ecbdc74fe83720dd28a009d65e16a0302a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Nov 21 21:48:36 2020 -0700
+
+ Implement bool isometry(transform) function.
+
+commit 1108f83337b6d6f2ac33b9fd0bb0fb47c0578065
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Nov 21 21:18:53 2020 -0700
+
+ Fix bug2 #149 and #154 (thanks to Oliver Guibe).
+
+commit b1ab048d6cf6b703a992a296c870d3b1c5a63b3e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Nov 21 20:54:05 2020 -0700
+
+ Skip over uninitialized elements of transposed arrays.
+
+commit 959cdd4823cb1e61b407878c89a66ae97a90e326
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Nov 20 23:33:21 2020 -0700
+
+ Work around floating point exceptions (FE_INVALID) in OpenGL libraries.
+
+commit d541f69d20ed7d7a88e25cfe08323780796439ff
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Nov 19 14:30:13 2020 -0700
+
+ Qualify namespace.
+
+commit f8de14a7ed23d3496188275092c731f8a0fc9aa5
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Nov 19 11:51:58 2020 -0700
+
+ Restore image enccoding.
+
+commit 9606da530260600112145360c3eaadada1ed645f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Nov 16 09:57:35 2020 -0700
+
+ Fix comment.
+
+commit f513ffde5c8540e1b45a93fd0391541a6f4aa2f7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Nov 16 09:53:28 2020 -0700
+
+ Read null fields as undefined values in cvs mode and in line mode.
+
+commit 5402f40f5c752ed3069a8102b9a1f46a561bc8b0
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 15 23:35:42 2020 -0700
+
+ Fix warning message.
+
+commit e67fba800818c8713165829ee64268c445355da3
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 15 00:26:51 2020 -0700
+
+ Fix more uninitialized variables.
+
+commit ea1eca1727d19625c5be8359cd88d38236eb0737
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 15 00:06:41 2020 -0700
+
+ Fix uninitialized variable.
+
+commit a9d1f7abf90309502026af608db3aed4cb405ce2
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Nov 14 23:44:25 2020 -0700
+
+ Return unbounded direction in rationalSimplex.
+
+commit ac9ece43497c23bba3d0738db5a0fb1e8e7090d8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 8 12:49:10 2020 -0700
+
+ Fix comment.
+
+commit 4d6872d552573ba947d3a524549b159d322ff284
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Nov 8 12:39:12 2020 -0700
+
+ Add RELEASE variable.
+
+commit a3d85fb37e5a28e021f417b8355362b03f93b5d1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Oct 27 21:49:55 2020 -0600
+
+ Always define xStandard in optimal case in rationalSimplex.
+
+commit 5ced24a1d9658364e76ddc04a9b61890ee53d543
+Author: John Bowman <bowman@ualberta.ca>
+Date: Tue Oct 27 03:18:54 2020 -0600
+
+ Support logarithmic graphs of surfaces.
+
+commit e688d42e33a521facdb050c77b454b819478d3fd
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 25 23:08:36 2020 -0600
+
+ Open files without assuming an asy suffix.
+
+commit 3361214340d58235f4dbb8f24017d0cd5d94da72
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 25 22:24:51 2020 -0600
+
+ Use ps2write instead of eps2write where possible, for compatibility with gs 9.53.
+
+commit 42b291049920c2a023ab5f3598cc917eb36297ca
+Merge: e62d0401 d9826965
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 25 20:18:21 2020 -0600
+
+ Merge branch 'spotrh-curl-config', standardized.
+
+commit d9826965be5768c417b790fb6ff6ba59aeb89246
+Merge: e62d0401 a055a0ae
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 25 20:09:49 2020 -0600
+
+ Merge branch 'curl-config' of https://github.com/spotrh/asymptote into spotrh-curl-config.
+
+commit e62d040114aaadfa9c3a6d6a70cd001cdea11e36
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 25 20:01:06 2020 -0600
+
+ Make end argument of Margin functions optional.
+
+commit e5db49aa7b3ede25ae2cf4c08adfe2fe533420b1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Oct 25 19:59:54 2020 -0600
+
+ Expose solution to standard problem in rationalSimplex.
+
+commit 69e5f0cc8ccdb8128319c4cd8c1f13cae01ce82d
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Oct 10 00:11:57 2020 -0600
+
+ Make --version indicate if configured for OSMesa software rendering.
+
+commit d54e2ac82481e410ffa2bb52a1fb9d217d95eb98
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Oct 7 17:39:51 2020 -0600
+
+ Add high resolution wall clock time.
+
+commit a055a0ae813e7ed443b3d48e0822e5e7199bef65
+Author: Tom Callaway <spot@fedoraproject.org>
+Date: Fri Oct 2 18:50:51 2020 -0400
+
+ add --disable-curl option to prevent curl check and compile without optional URL support
+
+commit 27a55b7891214aa0654e7a97207c5ba762ceb1aa
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Sep 14 13:48:03 2020 -0600
+
+ Fix centering of slides.
+
+commit 576b7333baf56cd833a1098dd85a22af1bbfdafb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Aug 28 21:56:16 2020 -0600
+
+ Support null characters and null strings in replace.
+
+commit be534393f9b3404573479dc9851817e6c5fbda94
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Aug 24 12:59:25 2020 -0600
+
+ Disable image encoding in PDF conversion.
+
+commit 1fd27cc14606206aba81bf131e0bef36e9329457
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 22 12:15:26 2020 -0600
+
+ Fix extraction of git revision.
+
+commit 8dbece952d9ddece1349215243c473bafcc7b4c6
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 22 09:56:46 2020 -0600
+
+ Fix configuration without readline support.
+
+commit d6500a226b021edf99002596f7226015950dc6af
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 20 22:47:49 2020 -0600
+
+ Allow binary mode to read the entire file into a string.
+
+commit 880ef36e9878dfbcdcf28b953d11bfd392805643
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 20 21:04:51 2020 -0600
+
+ Fix getc when reading NUL character.
+
+commit e3ac2208915f6c496974a8dc3342861de4f2e2d1
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 15 12:52:42 2020 -0600
+
+ Fix commit 986d64236b299c1643451f4e774170cb8ebcec00.
+
+commit 6cea1c06c2054f1b7433e2d01ed6a2ec863b6726
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 13 16:06:15 2020 -0600
+
+ Update URLs.
+
+commit af12ec3b6fcca4e273dad4fdd3b431bada30608f
+Merge: 986d6423 68682879
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Aug 9 08:29:58 2020 -0600
+
+ Merge pull request #170 from bmwiedemann/date
+
+ Allow to override build date with SOURCE_DATE_EPOCH.
+
+commit 68682879ce9704606fb0d46734dfaba4966de9b5
+Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
+Date: Sun Aug 9 14:10:55 2020 +0200
+
+ Allow to override build date with SOURCE_DATE_EPOCH
+
+ in order to make builds reproducible.
+ See https://reproducible-builds.org/ for why this is good
+ and https://reproducible-builds.org/specs/source-date-epoch/
+ for the definition of this variable.
+
+ Also consistently use ISO 8601 date format to be understood everywhere.
+ This also avoids %B and %h that are locale-dependent.
+
+ Also use UTC/gmtime to be independent of timezone.
+
+ Also rewrite the shell `date` calls into perl to avoid
+ trouble with the different date command implementations.
+
+ This PR was done while working on reproducible builds for openSUSE.
+
+commit 986d64236b299c1643451f4e774170cb8ebcec00
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 8 11:18:38 2020 -0600
+
+ Fix last revision.
+
+commit 4c06e580baa7051128d3e8ab4b06a0315a1eecd7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Aug 8 01:05:57 2020 -0600
+
+ Simplify code.
+
+commit d2f6e59eb42763c2e9a1f6ca5e057f6bf13991cd
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 6 22:27:33 2020 -0600
+
+ Fix last revision.
+
+commit 7ae96b7754d1025c02be514e3d31433cce52b609
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 6 22:05:07 2020 -0600
+
+ Remove -0 suffix from git version for tagged releases.
+
+commit 610c4624a7ac69ee4ccfedd6075b1cb28c14d7ce
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 5 23:39:05 2020 -0600
+
+ Fix last revision.
+
+commit dc4243ccd1c5ab766241707ab10f16d7c9738ef7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 5 23:34:47 2020 -0600
+
+ Backport curlProgress to libCurl < 7.32.
+
+commit 94f99a26ab9b72f3a3fbc2239f9e7b529b7166e2
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 5 22:18:03 2020 -0600
+
+ Increment version to 2.68.
+
commit bccdb51e0cfa5b7b7bf5c08c1f9496a7ba9a012d
Author: John Bowman <bowman@ualberta.ca>
Date: Wed Aug 5 17:45:17 2020 -0600
diff --git a/graphics/asymptote/GUI/Window1.py b/graphics/asymptote/GUI/Window1.py
index 4e0a57af2c..1f7b67b1fa 100644
--- a/graphics/asymptote/GUI/Window1.py
+++ b/graphics/asymptote/GUI/Window1.py
@@ -772,11 +772,11 @@ class MainWindow1(Qw.QMainWindow):
self.asyfyCanvas()
def actionManual(self):
- asyManualURL = 'http://asymptote.sourceforge.net/asymptote.pdf'
+ asyManualURL = 'https://asymptote.sourceforge.io/asymptote.pdf'
webbrowser.open_new(asyManualURL)
def actionAbout(self):
- Qw.QMessageBox.about(self,"xasy","This is xasy "+xasyVersion.xasyVersion+"; a graphical front end to the Asymptote vector graphics language: http://asymptote.sourceforge.net/")
+ Qw.QMessageBox.about(self,"xasy","This is xasy "+xasyVersion.xasyVersion+"; a graphical front end to the Asymptote vector graphics language: https://asymptote.sourceforge.io/")
def btnExportAsyOnClick(self):
diag = Qw.QFileDialog(self)
diff --git a/graphics/asymptote/GUI/icons_rc.py b/graphics/asymptote/GUI/icons_rc.py
index 0ec79acfe3..96e67359f9 100644
--- a/graphics/asymptote/GUI/icons_rc.py
+++ b/graphics/asymptote/GUI/icons_rc.py
@@ -9,57 +9,7 @@
from PyQt5 import QtCore
qt_resource_data = b"\
-\x00\x00\x02\xf2\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x43\x69\x72\x63\x6c\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\
-\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\
-\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\
-\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\
-\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\
-\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\
-\x22\x20\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\
-\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\
-\x35\x31\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\
-\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\
-\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\
-\x20\x30\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
-\x4d\x31\x30\x2c\x30\x2e\x34\x43\x34\x2e\x36\x39\x38\x2c\x30\x2e\
-\x34\x2c\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x30\x2e\x34\x2c\
-\x31\x30\x43\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x32\x2c\x34\x2e\
-\x36\x39\x38\x2c\x31\x39\x2e\x36\x2c\x31\x30\x2c\x31\x39\x2e\x36\
-\x63\x35\x2e\x33\x30\x31\x2c\x30\x2c\x39\x2e\x36\x2d\x34\x2e\x32\
-\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x30\x31\x0d\x0a\x09\x43\
-\x31\x39\x2e\x36\x2c\x34\x2e\x36\x39\x38\x2c\x31\x35\x2e\x33\x30\
-\x31\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
-\x30\x2c\x31\x37\x2e\x35\x39\x39\x63\x2d\x34\x2e\x31\x39\x37\x2c\
-\x30\x2d\x37\x2e\x36\x2d\x33\x2e\x34\x30\x32\x2d\x37\x2e\x36\x2d\
-\x37\x2e\x36\x53\x35\x2e\x38\x30\x32\x2c\x32\x2e\x34\x2c\x31\x30\
-\x2c\x32\x2e\x34\x63\x34\x2e\x31\x39\x37\x2c\x30\x2c\x37\x2e\x36\
-\x30\x31\x2c\x33\x2e\x34\x30\x32\x2c\x37\x2e\x36\x30\x31\x2c\x37\
-\x2e\x36\x0d\x0a\x09\x53\x31\x34\x2e\x31\x39\x37\x2c\x31\x37\x2e\
-\x35\x39\x39\x2c\x31\x30\x2c\x31\x37\x2e\x35\x39\x39\x7a\x22\x2f\
-\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
-\x0a\
-\x00\x00\x05\xca\
+\x00\x00\x02\x7d\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -90,71 +40,18 @@ qt_resource_data = b"\
\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
-\x64\x3d\x22\x4d\x34\x35\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\
-\x35\x63\x2d\x31\x34\x2e\x35\x38\x35\x2d\x31\x34\x2e\x35\x37\x37\
-\x2d\x33\x36\x2e\x30\x35\x34\x2d\x31\x35\x2e\x38\x39\x2d\x35\x30\
-\x2e\x36\x33\x39\x2d\x31\x2e\x33\x31\x32\x6c\x2d\x34\x31\x2e\x36\
-\x38\x37\x2c\x34\x31\x2e\x36\x36\x34\x63\x2d\x31\x30\x2e\x38\x35\
-\x32\x2c\x31\x30\x2e\x38\x33\x36\x2d\x32\x33\x2e\x39\x33\x2c\x31\
-\x30\x2e\x38\x35\x39\x2d\x33\x31\x2e\x35\x36\x34\x2c\x31\x2e\x38\
-\x35\x32\x0d\x0a\x09\x63\x2d\x35\x2e\x30\x35\x37\x2d\x35\x2e\x39\
-\x36\x38\x2d\x33\x2e\x30\x36\x31\x2d\x32\x34\x2e\x33\x37\x34\x2d\
-\x31\x2e\x36\x34\x34\x2d\x33\x36\x2e\x30\x34\x39\x6c\x32\x30\x2e\
-\x39\x30\x37\x2d\x31\x37\x31\x2e\x38\x34\x39\x63\x31\x2e\x38\x36\
-\x37\x2d\x31\x35\x2e\x33\x35\x33\x2d\x39\x2e\x30\x37\x2d\x33\x30\
-\x2e\x31\x38\x35\x2d\x32\x34\x2e\x34\x33\x2d\x33\x32\x2e\x30\x35\
-\x31\x0d\x0a\x09\x63\x2d\x31\x35\x2e\x33\x35\x38\x2d\x31\x2e\x38\
-\x36\x37\x2d\x32\x39\x2e\x33\x32\x32\x2c\x39\x2e\x39\x33\x39\x2d\
-\x33\x31\x2e\x31\x39\x31\x2c\x32\x35\x2e\x32\x38\x39\x4c\x32\x36\
-\x37\x2e\x33\x37\x2c\x32\x33\x36\x2e\x30\x32\x31\x63\x2d\x31\x2e\
-\x32\x30\x35\x2c\x33\x2e\x33\x35\x38\x2d\x33\x2e\x37\x39\x2c\x33\
-\x2e\x39\x33\x38\x2d\x34\x2e\x30\x38\x31\x2d\x30\x2e\x35\x38\x32\
-\x4c\x32\x35\x35\x2e\x34\x34\x2c\x36\x30\x0d\x0a\x09\x63\x30\x2d\
-\x31\x35\x2e\x34\x36\x35\x2d\x31\x32\x2e\x35\x34\x32\x2d\x32\x38\
-\x2d\x32\x38\x2e\x30\x31\x34\x2d\x32\x38\x63\x2d\x31\x35\x2e\x34\
-\x37\x33\x2c\x30\x2d\x32\x38\x2e\x30\x31\x35\x2c\x31\x32\x2e\x35\
-\x33\x35\x2d\x32\x38\x2e\x30\x31\x35\x2c\x32\x38\x6c\x2d\x30\x2e\
-\x35\x35\x32\x2c\x31\x37\x36\x2e\x37\x35\x32\x63\x30\x2e\x31\x34\
-\x36\x2c\x32\x2e\x30\x34\x2d\x31\x2e\x36\x30\x34\x2c\x32\x2e\x36\
-\x32\x34\x2d\x31\x2e\x39\x32\x2c\x30\x2e\x32\x39\x34\x4c\x31\x37\
-\x32\x2e\x30\x31\x36\x2c\x39\x39\x2e\x30\x37\x37\x0d\x0a\x09\x63\
-\x2d\x32\x2e\x37\x35\x2d\x31\x35\x2e\x32\x31\x39\x2d\x31\x37\x2e\
-\x33\x32\x33\x2d\x32\x36\x2e\x32\x30\x33\x2d\x33\x32\x2e\x35\x34\
-\x38\x2d\x32\x33\x2e\x34\x35\x33\x63\x2d\x31\x35\x2e\x32\x32\x37\
-\x2c\x32\x2e\x37\x34\x38\x2d\x32\x35\x2e\x33\x33\x39\x2c\x31\x38\
-\x2e\x31\x38\x37\x2d\x32\x32\x2e\x35\x39\x31\x2c\x33\x33\x2e\x34\
-\x30\x33\x6c\x32\x32\x2e\x31\x39\x33\x2c\x31\x36\x31\x2e\x34\x35\
-\x35\x0d\x0a\x09\x63\x30\x2e\x30\x32\x33\x2c\x32\x2e\x38\x37\x32\
-\x2d\x30\x2e\x39\x34\x31\x2c\x34\x2e\x35\x31\x33\x2d\x32\x2e\x33\
-\x30\x38\x2c\x30\x2e\x38\x33\x31\x6c\x2d\x33\x33\x2e\x31\x30\x39\
-\x2d\x38\x38\x2e\x35\x31\x37\x63\x2d\x35\x2e\x31\x38\x2d\x31\x34\
-\x2e\x35\x37\x32\x2d\x32\x31\x2e\x31\x39\x36\x2d\x32\x33\x2e\x30\
-\x36\x35\x2d\x33\x35\x2e\x37\x37\x36\x2d\x31\x37\x2e\x38\x38\x39\
-\x0d\x0a\x09\x63\x2d\x31\x34\x2e\x35\x37\x39\x2c\x35\x2e\x31\x37\
-\x37\x2d\x32\x32\x2e\x32\x30\x31\x2c\x32\x32\x2e\x30\x36\x31\x2d\
-\x31\x37\x2e\x30\x32\x33\x2c\x33\x36\x2e\x36\x33\x31\x6c\x35\x38\
-\x2e\x30\x34\x32\x2c\x31\x38\x39\x2e\x36\x32\x35\x63\x30\x2e\x33\
-\x30\x33\x2c\x31\x2e\x30\x34\x36\x2c\x30\x2e\x36\x32\x34\x2c\x32\
-\x2e\x30\x38\x35\x2c\x30\x2e\x39\x35\x33\x2c\x33\x2e\x31\x31\x38\
-\x6c\x30\x2e\x31\x32\x31\x2c\x30\x2e\x33\x39\x0d\x0a\x09\x63\x30\
-\x2e\x30\x31\x31\x2c\x30\x2e\x30\x33\x31\x2c\x30\x2e\x30\x32\x35\
-\x2c\x30\x2e\x30\x35\x38\x2c\x30\x2e\x30\x33\x35\x2c\x30\x2e\x30\
-\x38\x38\x43\x31\x32\x36\x2e\x30\x37\x39\x2c\x34\x34\x34\x2e\x32\
-\x33\x33\x2c\x31\x37\x32\x2e\x35\x37\x2c\x34\x38\x30\x2c\x32\x32\
-\x37\x2e\x34\x32\x37\x2c\x34\x38\x30\x63\x33\x35\x2e\x31\x31\x36\
-\x2c\x30\x2c\x37\x31\x2e\x35\x39\x31\x2d\x31\x32\x2e\x33\x37\x38\
-\x2c\x39\x39\x2e\x33\x35\x37\x2d\x33\x33\x2e\x36\x37\x32\x0d\x0a\
-\x09\x63\x30\x2e\x30\x30\x31\x2c\x30\x2c\x30\x2e\x30\x30\x33\x2d\
-\x30\x2e\x30\x30\x32\x2c\x30\x2e\x30\x30\x33\x2d\x30\x2e\x30\x30\
-\x32\x63\x32\x39\x2e\x39\x39\x2d\x31\x38\x2e\x30\x35\x31\x2c\x31\
-\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x2c\x31\
-\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x43\x34\
-\x36\x37\x2e\x34\x34\x35\x2c\x33\x31\x30\x2e\x34\x30\x32\x2c\x34\
-\x36\x35\x2e\x32\x36\x36\x2c\x32\x38\x38\x2e\x30\x38\x2c\x34\x35\
-\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\x35\x7a\x22\x2f\x3e\x0d\
-\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\xfc\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x32\
+\x37\x2c\x32\x33\x34\x2e\x36\x32\x35\x48\x31\x36\x37\x2e\x32\x39\
+\x36\x6c\x31\x31\x39\x2e\x37\x30\x32\x2d\x31\x31\x39\x2e\x37\x30\
+\x32\x4c\x32\x35\x36\x2c\x38\x35\x4c\x38\x35\x2c\x32\x35\x36\x6c\
+\x31\x37\x31\x2c\x31\x37\x31\x6c\x32\x39\x2e\x39\x32\x32\x2d\x32\
+\x39\x2e\x39\x32\x34\x4c\x31\x36\x37\x2e\x32\x39\x36\x2c\x32\x37\
+\x37\x2e\x33\x37\x35\x48\x34\x32\x37\x56\x32\x33\x34\x2e\x36\x32\
+\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
+\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\x7f\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -181,30 +78,22 @@ qt_resource_data = b"\
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x32\x30\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
-\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\
-\x35\x36\x2c\x34\x38\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\
-\x2c\x34\x38\x2c\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\
-\x35\x36\x73\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\
-\x38\x2c\x32\x30\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\
-\x2c\x32\x30\x38\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\
-\x2c\x34\x38\x2c\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\
-\x2c\x34\x32\x32\x2e\x33\x39\x39\x0d\x0a\x09\x09\x09\x63\x2d\x39\
-\x31\x2e\x35\x31\x38\x2c\x30\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\
-\x37\x34\x2e\x38\x38\x32\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\x31\
-\x36\x36\x2e\x33\x39\x39\x53\x31\x36\x34\x2e\x34\x38\x32\x2c\x38\
-\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\x53\x34\x32\x32\
-\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\x32\x32\x2e\x34\
-\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\x2c\x34\x32\x32\
-\x2e\x33\x39\x39\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x33\x39\x39\
-\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\
-\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\xa2\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
+\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
+\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
+\x3d\x22\x32\x38\x38\x2c\x39\x36\x20\x33\x33\x37\x2e\x39\x2c\x31\
+\x34\x35\x2e\x39\x20\x32\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x32\
+\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x31\x34\x35\x2e\x39\x2c\x33\
+\x33\x37\x2e\x39\x20\x39\x36\x2c\x32\x38\x38\x20\x39\x36\x2c\x34\
+\x31\x36\x20\x32\x32\x34\x2c\x34\x31\x36\x20\x31\x37\x34\x2e\x31\
+\x2c\x33\x36\x36\x2e\x31\x20\x33\x35\x37\x2e\x34\x2c\x31\x38\x32\
+\x2e\x39\x20\x33\x36\x36\x2e\x31\x2c\x31\x37\x34\x2e\x31\x20\x0d\
+\x0a\x09\x34\x31\x36\x2c\x32\x32\x34\x20\x34\x31\x36\x2c\x39\x36\
+\x20\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x07\x80\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -236,19 +125,96 @@ qt_resource_data = b"\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x32\x38\x2c\x34\x30\
-\x35\x2e\x34\x32\x39\x43\x31\x32\x38\x2c\x34\x32\x38\x2e\x38\x34\
-\x36\x2c\x31\x34\x37\x2e\x31\x39\x38\x2c\x34\x34\x38\x2c\x31\x37\
-\x30\x2e\x36\x36\x37\x2c\x34\x34\x38\x68\x31\x37\x30\x2e\x36\x36\
-\x37\x43\x33\x36\x34\x2e\x38\x30\x32\x2c\x34\x34\x38\x2c\x33\x38\
-\x34\x2c\x34\x32\x38\x2e\x38\x34\x36\x2c\x33\x38\x34\x2c\x34\x30\
-\x35\x2e\x34\x32\x39\x56\x31\x36\x30\x48\x31\x32\x38\x56\x34\x30\
-\x35\x2e\x34\x32\x39\x7a\x20\x4d\x34\x31\x36\x2c\x39\x36\x0d\x0a\
-\x09\x09\x68\x2d\x38\x30\x6c\x2d\x32\x36\x2e\x37\x38\x35\x2d\x33\
-\x32\x48\x32\x30\x32\x2e\x37\x38\x36\x4c\x31\x37\x36\x2c\x39\x36\
-\x48\x39\x36\x76\x33\x32\x68\x33\x32\x30\x56\x39\x36\x7a\x22\x2f\
-\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
-\x0a\
+\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x39\x33\x2e\x34\x36\
+\x2c\x32\x34\x39\x2e\x30\x35\x36\x63\x33\x2e\x37\x32\x33\x2d\x30\
+\x2e\x36\x37\x2c\x37\x2e\x35\x38\x39\x2d\x31\x2e\x30\x34\x31\x2c\
+\x31\x31\x2e\x35\x38\x36\x2d\x31\x2e\x30\x34\x31\x4c\x32\x30\x31\
+\x2e\x39\x32\x34\x2c\x32\x34\x38\x68\x31\x30\x33\x2e\x38\x32\x33\
+\x63\x34\x2e\x35\x30\x33\x2c\x30\x2c\x38\x2e\x38\x30\x36\x2d\x30\
+\x2e\x36\x31\x37\x2c\x31\x32\x2e\x39\x30\x38\x2d\x31\x2e\x37\x35\
+\x34\x0d\x0a\x09\x09\x63\x31\x39\x2e\x33\x37\x2d\x35\x2e\x33\x36\
+\x33\x2c\x33\x33\x2e\x33\x34\x35\x2d\x32\x32\x2e\x35\x33\x37\x2c\
+\x33\x33\x2e\x33\x34\x35\x2d\x34\x33\x2e\x36\x36\x33\x76\x2d\x33\
+\x30\x2e\x38\x32\x32\x76\x2d\x35\x36\x2e\x34\x30\x32\x63\x30\x2d\
+\x32\x34\x2e\x38\x33\x32\x2d\x32\x31\x2e\x31\x35\x2d\x34\x33\x2e\
+\x34\x38\x34\x2d\x34\x36\x2e\x32\x38\x39\x2d\x34\x37\x2e\x36\x30\
+\x36\x0d\x0a\x09\x09\x63\x2d\x31\x35\x2e\x39\x33\x31\x2d\x32\x2e\
+\x36\x32\x34\x2d\x33\x39\x2e\x32\x35\x38\x2d\x33\x2e\x38\x32\x37\
+\x2d\x35\x35\x2e\x30\x38\x39\x2d\x33\x2e\x37\x34\x39\x63\x2d\x31\
+\x35\x2e\x38\x32\x39\x2c\x30\x2e\x30\x38\x36\x2d\x33\x30\x2e\x39\
+\x38\x31\x2c\x31\x2e\x34\x30\x34\x2d\x34\x34\x2e\x32\x37\x37\x2c\
+\x33\x2e\x37\x34\x39\x43\x31\x36\x37\x2e\x31\x34\x33\x2c\x37\x34\
+\x2e\x35\x37\x36\x2c\x31\x36\x30\x2c\x38\x38\x2e\x39\x32\x38\x2c\
+\x31\x36\x30\x2c\x31\x31\x35\x2e\x33\x35\x39\x56\x31\x34\x34\x68\
+\x39\x36\x0d\x0a\x09\x09\x76\x31\x36\x48\x31\x32\x38\x2e\x38\x32\
+\x63\x2d\x33\x35\x2e\x36\x32\x38\x2c\x30\x2d\x36\x34\x2e\x35\x33\
+\x38\x2c\x34\x32\x2e\x35\x37\x31\x2d\x36\x34\x2e\x38\x31\x33\x2c\
+\x39\x35\x2e\x32\x34\x32\x43\x36\x34\x2e\x30\x30\x35\x2c\x32\x35\
+\x35\x2e\x34\x39\x35\x2c\x36\x34\x2c\x32\x35\x35\x2e\x37\x34\x37\
+\x2c\x36\x34\x2c\x32\x35\x36\x63\x30\x2c\x39\x2e\x35\x32\x33\x2c\
+\x30\x2e\x39\x34\x2c\x31\x38\x2e\x37\x32\x2c\x32\x2e\x36\x38\x35\
+\x2c\x32\x37\x2e\x34\x30\x34\x0d\x0a\x09\x09\x43\x37\x34\x2e\x36\
+\x34\x38\x2c\x33\x32\x33\x2e\x30\x37\x2c\x39\x39\x2e\x34\x35\x31\
+\x2c\x33\x35\x32\x2c\x31\x32\x38\x2e\x38\x32\x2c\x33\x35\x32\x48\
+\x31\x34\x34\x76\x2d\x32\x2e\x36\x36\x32\x76\x2d\x34\x33\x2e\x32\
+\x37\x33\x43\x31\x34\x34\x2c\x32\x37\x39\x2e\x32\x33\x38\x2c\x31\
+\x36\x34\x2e\x31\x34\x36\x2c\x32\x35\x34\x2e\x33\x33\x32\x2c\x31\
+\x39\x33\x2e\x34\x36\x2c\x32\x34\x39\x2e\x30\x35\x36\x7a\x20\x4d\
+\x32\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x0d\
+\x0a\x09\x09\x63\x2d\x39\x2e\x35\x39\x32\x2c\x30\x2d\x31\x37\x2e\
+\x33\x38\x34\x2d\x37\x2e\x37\x38\x35\x2d\x31\x37\x2e\x33\x38\x34\
+\x2d\x31\x37\x2e\x34\x30\x33\x63\x30\x2d\x39\x2e\x36\x36\x34\x2c\
+\x37\x2e\x37\x37\x34\x2d\x31\x37\x2e\x35\x32\x2c\x31\x37\x2e\x33\
+\x38\x34\x2d\x31\x37\x2e\x35\x32\x63\x39\x2e\x35\x37\x34\x2c\x30\
+\x2c\x31\x37\x2e\x33\x39\x39\x2c\x37\x2e\x38\x35\x35\x2c\x31\x37\
+\x2e\x33\x39\x39\x2c\x31\x37\x2e\x35\x32\x0d\x0a\x09\x09\x43\x32\
+\x32\x31\x2e\x30\x35\x36\x2c\x31\x31\x39\x2e\x32\x31\x37\x2c\x32\
+\x31\x33\x2e\x32\x34\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x2c\x32\
+\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x7a\x22\
+\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
+\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\x35\x34\x33\x43\x34\
+\x33\x34\x2e\x37\x38\x2c\x31\x38\x36\x2e\x30\x32\x31\x2c\x34\x31\
+\x31\x2e\x30\x33\x33\x2c\x31\x36\x30\x2c\x33\x38\x33\x2e\x31\x38\
+\x2c\x31\x36\x30\x48\x33\x36\x38\x76\x32\x2e\x36\x32\x36\x76\x33\
+\x38\x2e\x30\x34\x36\x63\x30\x2c\x33\x33\x2e\x39\x31\x35\x2d\x32\
+\x32\x2e\x32\x38\x36\x2c\x35\x38\x2e\x34\x37\x34\x2d\x34\x39\x2e\
+\x34\x38\x39\x2c\x36\x32\x2e\x36\x38\x31\x0d\x0a\x09\x09\x63\x2d\
+\x32\x2e\x37\x33\x37\x2c\x30\x2e\x34\x32\x34\x2d\x35\x2e\x34\x38\
+\x33\x2c\x30\x2e\x36\x34\x36\x2d\x38\x2e\x33\x30\x31\x2c\x30\x2e\
+\x36\x34\x36\x48\x32\x30\x36\x2e\x33\x35\x31\x63\x2d\x34\x2e\x35\
+\x31\x38\x2c\x30\x2d\x38\x2e\x39\x30\x34\x2c\x30\x2e\x35\x38\x34\
+\x2d\x31\x33\x2e\x30\x34\x39\x2c\x31\x2e\x36\x37\x32\x43\x31\x37\
+\x34\x2e\x31\x38\x2c\x32\x37\x30\x2e\x36\x38\x39\x2c\x31\x36\x30\
+\x2c\x32\x38\x36\x2e\x36\x2c\x31\x36\x30\x2c\x33\x30\x37\x2e\x32\
+\x33\x36\x76\x33\x32\x2e\x39\x32\x32\x0d\x0a\x09\x09\x76\x35\x34\
+\x2e\x33\x30\x35\x63\x30\x2c\x32\x34\x2e\x38\x33\x32\x2c\x32\x34\
+\x2e\x39\x37\x37\x2c\x33\x39\x2e\x34\x32\x36\x2c\x34\x39\x2e\x34\
+\x38\x31\x2c\x34\x36\x2e\x35\x35\x31\x63\x32\x39\x2e\x33\x32\x37\
+\x2c\x38\x2e\x35\x33\x31\x2c\x36\x31\x2e\x32\x36\x37\x2c\x31\x30\
+\x2e\x30\x36\x38\x2c\x39\x36\x2e\x33\x36\x36\x2c\x30\x43\x33\x32\
+\x39\x2e\x31\x35\x2c\x34\x33\x34\x2e\x33\x35\x34\x2c\x33\x35\x32\
+\x2c\x34\x32\x30\x2e\x38\x39\x33\x2c\x33\x35\x32\x2c\x33\x39\x34\
+\x2e\x34\x36\x33\x56\x33\x36\x38\x0d\x0a\x09\x09\x68\x2d\x39\x36\
+\x76\x2d\x31\x36\x68\x31\x32\x37\x2e\x31\x38\x63\x32\x35\x2e\x32\
+\x34\x2c\x30\x2c\x34\x37\x2e\x31\x30\x37\x2d\x32\x31\x2e\x33\x36\
+\x35\x2c\x35\x37\x2e\x38\x31\x34\x2d\x35\x32\x2e\x35\x34\x39\x43\
+\x34\x34\x35\x2e\x34\x37\x34\x2c\x32\x38\x36\x2e\x34\x30\x34\x2c\
+\x34\x34\x38\x2c\x32\x37\x31\x2e\x36\x34\x31\x2c\x34\x34\x38\x2c\
+\x32\x35\x36\x0d\x0a\x09\x09\x43\x34\x34\x38\x2c\x32\x34\x34\x2e\
+\x32\x33\x32\x2c\x34\x34\x36\x2e\x35\x36\x37\x2c\x32\x33\x32\x2e\
+\x39\x36\x32\x2c\x34\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\
+\x35\x34\x33\x7a\x20\x4d\x33\x30\x37\x2e\x38\x36\x37\x2c\x33\x38\
+\x32\x2e\x38\x32\x63\x39\x2e\x35\x39\x2c\x30\x2c\x31\x37\x2e\x33\
+\x38\x31\x2c\x37\x2e\x37\x38\x35\x2c\x31\x37\x2e\x33\x38\x31\x2c\
+\x31\x37\x2e\x34\x0d\x0a\x09\x09\x63\x30\x2c\x39\x2e\x36\x35\x2d\
+\x37\x2e\x37\x39\x31\x2c\x31\x37\x2e\x35\x32\x31\x2d\x31\x37\x2e\
+\x33\x38\x31\x2c\x31\x37\x2e\x35\x32\x31\x63\x2d\x39\x2e\x35\x37\
+\x37\x2c\x30\x2d\x31\x37\x2e\x33\x39\x39\x2d\x37\x2e\x38\x37\x31\
+\x2d\x31\x37\x2e\x33\x39\x39\x2d\x31\x37\x2e\x35\x32\x31\x43\x32\
+\x39\x30\x2e\x34\x36\x38\x2c\x33\x39\x30\x2e\x35\x39\x2c\x32\x39\
+\x38\x2e\x32\x37\x34\x2c\x33\x38\x32\x2e\x38\x32\x2c\x33\x30\x37\
+\x2e\x38\x36\x37\x2c\x33\x38\x32\x2e\x38\x32\x7a\x22\x2f\x3e\x0d\
+\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x03\xc4\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -312,144 +278,6 @@ qt_resource_data = b"\
\x36\x35\x32\x2c\x34\x2e\x30\x30\x34\x2c\x38\x2e\x32\x38\x37\x7a\
\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\
\x3e\x0d\x0a\
-\x00\x00\x05\x27\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x31\x32\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
-\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\
-\x35\x36\x2c\x36\x34\x43\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\
-\x2c\x36\x34\x2c\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\x2c\x32\
-\x35\x36\x63\x30\x2c\x31\x30\x35\x2e\x36\x30\x34\x2c\x38\x36\x2e\
-\x34\x30\x31\x2c\x31\x39\x32\x2c\x31\x39\x32\x2c\x31\x39\x32\x63\
-\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x38\
-\x36\x34\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\
-\x38\x2e\x35\x33\x31\x2d\x33\x2e\x31\x39\x38\x2d\x31\x36\x2d\x38\
-\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\x33\x33\x63\x2d\x35\x2e\x33\
-\x33\x33\x2d\x35\x2e\x33\x33\x34\x2d\x38\x2e\x35\x33\x31\x2d\x31\
-\x32\x2e\x38\x30\x33\x2d\x38\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\
-\x33\x34\x63\x30\x2d\x31\x38\x2e\x31\x33\x35\x2c\x31\x33\x2e\x38\
-\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x68\x33\x38\x2e\x33\
-\x39\x36\x0d\x0a\x09\x09\x09\x63\x35\x38\x2e\x36\x36\x37\x2c\x30\
-\x2c\x31\x30\x36\x2e\x36\x36\x37\x2d\x34\x38\x2c\x31\x30\x36\x2e\
-\x36\x36\x37\x2d\x31\x30\x36\x2e\x36\x36\x36\x43\x34\x34\x38\x2c\
-\x31\x34\x30\x2e\x38\x30\x32\x2c\x33\x36\x31\x2e\x36\x30\x34\x2c\
-\x36\x34\x2c\x32\x35\x36\x2c\x36\x34\x7a\x20\x4d\x31\x33\x38\x2e\
-\x36\x36\x37\x2c\x32\x35\x36\x63\x2d\x31\x38\x2e\x31\x33\x36\x2c\
-\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\
-\x32\x73\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\
-\x32\x0d\x0a\x09\x09\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\
-\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x53\
-\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x35\x36\x2c\x31\x33\x38\x2e\
-\x36\x36\x37\x2c\x32\x35\x36\x7a\x20\x4d\x32\x30\x32\x2e\x36\x36\
-\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\x2e\x31\x33\
-\x36\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\
-\x2d\x33\x32\x63\x30\x2d\x31\x38\x2e\x31\x33\x36\x2c\x31\x33\x2e\
-\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\
-\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\x33\x32\x2c\x31\x33\
-\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x32\x33\x34\x2e\x36\
-\x36\x37\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x32\x30\x2e\x38\
-\x30\x32\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x32\x30\x32\x2e\x36\
-\x36\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\x33\x30\x39\
-\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\
-\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\
-\x2d\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\x31\x38\
-\x2e\x31\x33\x36\x2c\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\x2c\x33\
-\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\
-\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x33\x34\
-\x31\x2e\x33\x33\x33\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x33\x32\
-\x37\x2e\x34\x36\x39\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x33\x30\
-\x39\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\
-\x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x0d\x0a\x09\x09\x09\
-\x63\x2d\x31\x38\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\
-\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\x32\x73\x31\x33\x2e\x38\x36\
-\x35\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\
-\x36\x2c\x30\x2c\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\
-\x2c\x33\x32\x53\x33\x39\x31\x2e\x34\x36\x39\x2c\x32\x35\x36\x2c\
-\x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x7a\x22\x2f\x3e\x0d\
-\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
-\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\x22\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x22\x32\x35\x36\x22\
-\x20\x63\x79\x3d\x22\x32\x38\x30\x22\x20\x72\x3d\x22\x36\x33\x22\
-\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
-\x34\x30\x2c\x39\x36\x68\x2d\x38\x38\x6c\x2d\x33\x32\x2d\x33\x32\
-\x48\x31\x39\x32\x6c\x2d\x33\x32\x2c\x33\x32\x48\x37\x32\x63\x2d\
-\x32\x32\x2e\x30\x39\x32\x2c\x30\x2d\x34\x30\x2c\x31\x37\x2e\x39\
-\x30\x38\x2d\x34\x30\x2c\x34\x30\x76\x32\x37\x32\x63\x30\x2c\x32\
-\x32\x2e\x30\x39\x32\x2c\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2c\
-\x34\x30\x2c\x34\x30\x68\x33\x36\x38\x63\x32\x32\x2e\x30\x39\x32\
-\x2c\x30\x2c\x34\x30\x2d\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2d\
-\x34\x30\x0d\x0a\x09\x09\x56\x31\x33\x36\x43\x34\x38\x30\x2c\x31\
-\x31\x33\x2e\x39\x30\x38\x2c\x34\x36\x32\x2e\x30\x39\x32\x2c\x39\
-\x36\x2c\x34\x34\x30\x2c\x39\x36\x7a\x20\x4d\x32\x35\x36\x2c\x33\
-\x39\x32\x63\x2d\x36\x31\x2e\x38\x35\x35\x2c\x30\x2d\x31\x31\x32\
-\x2d\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2d\x31\x31\x32\x73\
-\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2c\x31\x31\x32\x2d\x31\
-\x31\x32\x73\x31\x31\x32\x2c\x35\x30\x2e\x31\x34\x35\x2c\x31\x31\
-\x32\x2c\x31\x31\x32\x0d\x0a\x09\x09\x53\x33\x31\x37\x2e\x38\x35\
-\x35\x2c\x33\x39\x32\x2c\x32\x35\x36\x2c\x33\x39\x32\x7a\x22\x2f\
-\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
-\x0a\
\x00\x00\x04\xaa\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -527,7 +355,57 @@ qt_resource_data = b"\
\x35\x2c\x31\x36\x2e\x36\x35\x33\x2c\x39\x2e\x39\x38\x36\x2c\x31\
\x36\x2e\x31\x36\x35\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\
\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\xb7\
+\x00\x00\x02\xf2\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x43\x69\x72\x63\x6c\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\
+\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\
+\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\
+\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\
+\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\
+\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\
+\x22\x20\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\
+\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\
+\x35\x31\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\
+\x67\x72\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\
+\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\
+\x20\x30\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
+\x4d\x31\x30\x2c\x30\x2e\x34\x43\x34\x2e\x36\x39\x38\x2c\x30\x2e\
+\x34\x2c\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x30\x2e\x34\x2c\
+\x31\x30\x43\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x32\x2c\x34\x2e\
+\x36\x39\x38\x2c\x31\x39\x2e\x36\x2c\x31\x30\x2c\x31\x39\x2e\x36\
+\x63\x35\x2e\x33\x30\x31\x2c\x30\x2c\x39\x2e\x36\x2d\x34\x2e\x32\
+\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x30\x31\x0d\x0a\x09\x43\
+\x31\x39\x2e\x36\x2c\x34\x2e\x36\x39\x38\x2c\x31\x35\x2e\x33\x30\
+\x31\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
+\x30\x2c\x31\x37\x2e\x35\x39\x39\x63\x2d\x34\x2e\x31\x39\x37\x2c\
+\x30\x2d\x37\x2e\x36\x2d\x33\x2e\x34\x30\x32\x2d\x37\x2e\x36\x2d\
+\x37\x2e\x36\x53\x35\x2e\x38\x30\x32\x2c\x32\x2e\x34\x2c\x31\x30\
+\x2c\x32\x2e\x34\x63\x34\x2e\x31\x39\x37\x2c\x30\x2c\x37\x2e\x36\
+\x30\x31\x2c\x33\x2e\x34\x30\x32\x2c\x37\x2e\x36\x30\x31\x2c\x37\
+\x2e\x36\x0d\x0a\x09\x53\x31\x34\x2e\x31\x39\x37\x2c\x31\x37\x2e\
+\x35\x39\x39\x2c\x31\x30\x2c\x31\x37\x2e\x35\x39\x39\x7a\x22\x2f\
+\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
+\x0a\
+\x00\x00\x04\x64\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -559,21 +437,136 @@ qt_resource_data = b"\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x35\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
-\x6e\x74\x73\x3d\x22\x34\x30\x35\x2c\x31\x33\x36\x2e\x37\x39\x38\
-\x20\x33\x37\x35\x2e\x32\x30\x32\x2c\x31\x30\x37\x20\x32\x35\x36\
-\x2c\x32\x32\x36\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
-\x2c\x31\x30\x37\x20\x31\x30\x37\x2c\x31\x33\x36\x2e\x37\x39\x38\
-\x20\x32\x32\x36\x2e\x32\x30\x32\x2c\x32\x35\x36\x20\x31\x30\x37\
-\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
-\x2c\x34\x30\x35\x20\x32\x35\x36\x2c\x32\x38\x35\x2e\x37\x39\x38\
-\x20\x0d\x0a\x09\x09\x09\x33\x37\x35\x2e\x32\x30\x32\x2c\x34\x30\
-\x35\x20\x34\x30\x35\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x32\x38\
-\x35\x2e\x37\x39\x38\x2c\x32\x35\x36\x20\x09\x09\x22\x2f\x3e\x0d\
-\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
-\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x04\x3d\
+\x22\x49\x63\x6f\x6e\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\x09\
+\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x31\
+\x37\x36\x63\x2d\x34\x34\x2e\x30\x30\x34\x2c\x30\x2d\x38\x30\x2e\
+\x30\x30\x31\x2c\x33\x36\x2d\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\
+\x63\x30\x2c\x34\x34\x2e\x30\x30\x34\x2c\x33\x35\x2e\x39\x39\x37\
+\x2c\x38\x30\x2c\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\x63\x34\x34\
+\x2e\x30\x30\x35\x2c\x30\x2c\x37\x39\x2e\x39\x39\x39\x2d\x33\x35\
+\x2e\x39\x39\x36\x2c\x37\x39\x2e\x39\x39\x39\x2d\x38\x30\x0d\x0a\
+\x09\x09\x09\x43\x33\x33\x35\x2e\x39\x39\x39\x2c\x32\x31\x32\x2c\
+\x33\x30\x30\x2e\x30\x30\x35\x2c\x31\x37\x36\x2c\x32\x35\x36\x2c\
+\x31\x37\x36\x7a\x20\x4d\x34\x34\x36\x2e\x39\x33\x38\x2c\x32\x33\
+\x34\x2e\x36\x36\x37\x63\x2d\x39\x2e\x36\x30\x35\x2d\x38\x38\x2e\
+\x35\x33\x31\x2d\x38\x31\x2e\x30\x37\x34\x2d\x31\x36\x30\x2d\x31\
+\x36\x39\x2e\x36\x30\x35\x2d\x31\x36\x39\x2e\x35\x39\x39\x56\x33\
+\x32\x68\x2d\x34\x32\x2e\x36\x36\x36\x76\x33\x33\x2e\x30\x36\x37\
+\x0d\x0a\x09\x09\x09\x63\x2d\x38\x38\x2e\x35\x33\x31\x2c\x39\x2e\
+\x35\x39\x39\x2d\x31\x36\x30\x2c\x38\x31\x2e\x30\x36\x38\x2d\x31\
+\x36\x39\x2e\x36\x30\x34\x2c\x31\x36\x39\x2e\x35\x39\x39\x48\x33\
+\x32\x76\x34\x32\x2e\x36\x36\x37\x68\x33\x33\x2e\x30\x36\x32\x63\
+\x39\x2e\x36\x30\x34\x2c\x38\x38\x2e\x35\x33\x31\x2c\x38\x31\x2e\
+\x30\x37\x32\x2c\x31\x36\x30\x2c\x31\x36\x39\x2e\x36\x30\x34\x2c\
+\x31\x36\x39\x2e\x36\x30\x34\x56\x34\x38\x30\x68\x34\x32\x2e\x36\
+\x36\x36\x76\x2d\x33\x33\x2e\x30\x36\x32\x0d\x0a\x09\x09\x09\x63\
+\x38\x38\x2e\x35\x33\x31\x2d\x39\x2e\x36\x30\x34\x2c\x31\x36\x30\
+\x2d\x38\x31\x2e\x30\x37\x33\x2c\x31\x36\x39\x2e\x36\x30\x35\x2d\
+\x31\x36\x39\x2e\x36\x30\x34\x48\x34\x38\x30\x76\x2d\x34\x32\x2e\
+\x36\x36\x37\x48\x34\x34\x36\x2e\x39\x33\x38\x7a\x20\x4d\x32\x35\
+\x36\x2c\x34\x30\x35\x2e\x33\x33\x33\x63\x2d\x38\x32\x2e\x31\x33\
+\x37\x2c\x30\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x36\x37\x2e\x31\
+\x39\x38\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\
+\x33\x33\x0d\x0a\x09\x09\x09\x63\x30\x2d\x38\x32\x2e\x31\x33\x36\
+\x2c\x36\x37\x2e\x31\x39\x37\x2d\x31\x34\x39\x2e\x33\x33\x33\x2c\
+\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\x33\x33\x63\
+\x38\x32\x2e\x31\x33\x35\x2c\x30\x2c\x31\x34\x39\x2e\x33\x33\x32\
+\x2c\x36\x37\x2e\x31\x39\x38\x2c\x31\x34\x39\x2e\x33\x33\x32\x2c\
+\x31\x34\x39\x2e\x33\x33\x33\x43\x34\x30\x35\x2e\x33\x33\x32\x2c\
+\x33\x33\x38\x2e\x31\x33\x35\x2c\x33\x33\x38\x2e\x31\x33\x35\x2c\
+\x34\x30\x35\x2e\x33\x33\x33\x2c\x32\x35\x36\x2c\x34\x30\x35\x2e\
+\x33\x33\x33\x7a\x0d\x0a\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x3c\
+\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\
+\x3e\x0d\x0a\
+\x00\x00\x04\xca\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\x72\
+\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\x75\
+\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x39\x2e\x32\x2e\x31\x2c\x20\
+\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\x2d\
+\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\x6e\
+\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\x20\
+\x20\x2d\x2d\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\
+\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\
+\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\
+\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\
+\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\
+\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\
+\x31\x2e\x64\x74\x64\x22\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\
+\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x0a\x09\x20\x69\x64\x3d\
+\x22\x73\x76\x67\x34\x36\x31\x39\x22\x20\x69\x6e\x6b\x73\x63\x61\
+\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x39\x31\
+\x2b\x64\x65\x76\x65\x6c\x2b\x6f\x73\x78\x6d\x65\x6e\x75\x20\x72\
+\x31\x32\x39\x31\x31\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\
+\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x74\x72\x69\x61\x6e\x67\x6c\
+\x65\x2d\x73\x74\x72\x6f\x6b\x65\x64\x2d\x31\x35\x2e\x73\x76\x67\
+\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\
+\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\
+\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\x22\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\
+\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\
+\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\
+\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
+\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\
+\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\
+\x61\x70\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\
+\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x20\x78\x6d\x6c\
+\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\
+\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\x75\
+\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\
+\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\
+\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\
+\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\
+\x30\x30\x2f\x73\x76\x67\x22\x0a\x09\x20\x78\x6d\x6c\x6e\x73\x3d\
+\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\
+\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\
+\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\
+\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\
+\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\
+\x79\x3d\x22\x30\x70\x78\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x36\
+\x34\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\
+\x78\x22\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\
+\x30\x20\x31\x35\x20\x31\x35\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\
+\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
+\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\x31\x35\x20\x31\x35\x3b\
+\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\
+\x73\x65\x72\x76\x65\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x69\x64\
+\x3d\x22\x72\x65\x63\x74\x33\x33\x33\x38\x22\x20\x69\x6e\x6b\x73\
+\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\
+\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x73\x6f\x64\
+\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\
+\x22\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x22\x20\x64\
+\x3d\x22\x4d\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\
+\x0a\x09\x43\x37\x2e\x32\x34\x32\x39\x2c\x31\x2e\x34\x39\x31\x33\
+\x2c\x36\x2e\x39\x37\x38\x37\x2c\x31\x2e\x36\x34\x32\x33\x2c\x36\
+\x2e\x38\x33\x33\x36\x2c\x31\x2e\x38\x39\x35\x32\x6c\x2d\x35\x2e\
+\x35\x2c\x39\x2e\x38\x36\x39\x32\x43\x31\x2e\x30\x32\x31\x38\x2c\
+\x31\x32\x2e\x33\x30\x37\x38\x2c\x31\x2e\x33\x39\x35\x2c\x31\x32\
+\x2e\x39\x39\x39\x39\x2c\x32\x2c\x31\x33\x68\x31\x31\x0a\x09\x63\
+\x30\x2e\x36\x30\x35\x2d\x30\x2e\x30\x30\x30\x31\x2c\x30\x2e\x39\
+\x37\x38\x32\x2d\x30\x2e\x36\x39\x32\x32\x2c\x30\x2e\x36\x36\x36\
+\x34\x2d\x31\x2e\x32\x33\x35\x35\x6c\x2d\x35\x2e\x35\x2d\x39\x2e\
+\x38\x36\x39\x32\x43\x38\x2e\x30\x33\x30\x32\x2c\x31\x2e\x36\x35\
+\x37\x39\x2c\x37\x2e\x37\x38\x38\x34\x2c\x31\x2e\x35\x30\x39\x32\
+\x2c\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\x7a\x20\
+\x4d\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x6c\x34\x2e\x31\x32\
+\x36\x37\x2c\x37\x2e\x34\x37\x30\x34\x0a\x09\x48\x33\x2e\x33\x37\
+\x33\x33\x4c\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x7a\x22\x2f\
+\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
+\x00\x00\x00\x6c\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
+\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x3e\x3c\x70\x61\x74\x68\
+\x20\x64\x3d\x22\x4d\x31\x38\x20\x31\x32\x76\x31\x48\x38\x76\x35\
+\x6c\x2d\x36\x2d\x36\x20\x36\x2d\x36\x76\x35\x68\x38\x56\x32\x68\
+\x32\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x04\xa2\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
@@ -597,53 +590,60 @@ qt_resource_data = b"\
\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
-\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
-\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
-\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
-\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\
-\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
-\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\
-\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\
-\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\x39\
-\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
-\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
-\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
-\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
-\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
-\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\x79\
-\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\
-\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\
-\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
-\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
-\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
-\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
-\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
-\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\x79\
-\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\x6c\
-\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\
-\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\
-\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\
-\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\
-\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\
-\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\
-\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\x20\
-\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\x69\
-\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\
-\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\
-\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\
-\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\
-\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\
-\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\
-\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\x34\
-\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\
-\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\
-\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\
-\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x03\x46\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x34\
+\x2e\x31\x35\x35\x35\x36\x20\x2d\x33\x39\x2e\x32\x37\x34\x35\x20\
+\x36\x2e\x39\x38\x34\x37\x33\x20\x2d\x34\x36\x2e\x31\x30\x34\x37\
+\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
+\x39\x43\x20\x32\x37\x2e\x34\x34\x31\x31\x20\x2d\x36\x37\x2e\x37\
+\x32\x36\x39\x20\x35\x33\x2e\x33\x30\x32\x31\x20\x2d\x36\x31\x2e\
+\x35\x34\x30\x35\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\
+\x2e\x35\x30\x32\x32\x43\x20\x35\x37\x2e\x36\x32\x37\x20\x2d\x33\
+\x32\x2e\x36\x35\x31\x39\x20\x35\x30\x2e\x35\x38\x35\x36\x20\x2d\
+\x32\x33\x2e\x35\x36\x32\x31\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
+\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\
+\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\
+\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
+\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\
+\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\
+\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\
+\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\
+\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
+\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
+\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
+\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\
+\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\
+\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
+\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
+\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
+\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
+\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\
+\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\
+\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
+\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
+\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\
+\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
+\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\
+\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\
+\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\
+\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\
+\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
+\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\
+\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\
+\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\
+\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\
+\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\
+\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\
+\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\
+\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\
+\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\
+\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\
+\x3e\
+\x00\x00\x02\xb7\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -670,34 +670,120 @@ qt_resource_data = b"\
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
-\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
-\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x33\x37\x2e\x35\
-\x2c\x33\x38\x36\x2e\x36\x4c\x33\x30\x36\x2e\x39\x2c\x32\x35\x36\
-\x6c\x31\x33\x30\x2e\x36\x2d\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\
-\x31\x2d\x31\x34\x2e\x31\x2c\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\
-\x2c\x30\x2d\x35\x30\x2e\x39\x63\x2d\x31\x34\x2e\x31\x2d\x31\x34\
-\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\x2d\x35\x30\x2e\
-\x39\x2c\x30\x4c\x32\x35\x36\x2c\x32\x30\x35\x2e\x31\x4c\x31\x32\
-\x35\x2e\x34\x2c\x37\x34\x2e\x35\x0d\x0a\x09\x63\x2d\x31\x34\x2e\
-\x31\x2d\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\
-\x2d\x35\x30\x2e\x39\x2c\x30\x63\x2d\x31\x34\x2e\x31\x2c\x31\x34\
-\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\x35\
-\x30\x2e\x39\x4c\x32\x30\x35\x2e\x31\x2c\x32\x35\x36\x4c\x37\x34\
-\x2e\x35\x2c\x33\x38\x36\x2e\x36\x63\x2d\x31\x34\x2e\x31\x2c\x31\
-\x34\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\
-\x35\x30\x2e\x39\x0d\x0a\x09\x63\x31\x34\x2e\x31\x2c\x31\x34\x2e\
-\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\x39\
-\x2c\x30\x4c\x32\x35\x36\x2c\x33\x30\x36\x2e\x39\x6c\x31\x33\x30\
-\x2e\x36\x2c\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\x31\x2c\x31\x34\
-\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\
-\x39\x2c\x30\x43\x34\x35\x31\x2e\x35\x2c\x34\x32\x33\x2e\x34\x2c\
-\x34\x35\x31\x2e\x35\x2c\x34\x30\x30\x2e\x36\x2c\x34\x33\x37\x2e\
-\x35\x2c\x33\x38\x36\x2e\x36\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x35\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
+\x6e\x74\x73\x3d\x22\x34\x30\x35\x2c\x31\x33\x36\x2e\x37\x39\x38\
+\x20\x33\x37\x35\x2e\x32\x30\x32\x2c\x31\x30\x37\x20\x32\x35\x36\
+\x2c\x32\x32\x36\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
+\x2c\x31\x30\x37\x20\x31\x30\x37\x2c\x31\x33\x36\x2e\x37\x39\x38\
+\x20\x32\x32\x36\x2e\x32\x30\x32\x2c\x32\x35\x36\x20\x31\x30\x37\
+\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x31\x33\x36\x2e\x37\x39\x38\
+\x2c\x34\x30\x35\x20\x32\x35\x36\x2c\x32\x38\x35\x2e\x37\x39\x38\
+\x20\x0d\x0a\x09\x09\x09\x33\x37\x35\x2e\x32\x30\x32\x2c\x34\x30\
+\x35\x20\x34\x30\x35\x2c\x33\x37\x35\x2e\x32\x30\x32\x20\x32\x38\
+\x35\x2e\x37\x39\x38\x2c\x32\x35\x36\x20\x09\x09\x22\x2f\x3e\x0d\
+\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
+\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x05\xca\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
+\x64\x3d\x22\x4d\x34\x35\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\
+\x35\x63\x2d\x31\x34\x2e\x35\x38\x35\x2d\x31\x34\x2e\x35\x37\x37\
+\x2d\x33\x36\x2e\x30\x35\x34\x2d\x31\x35\x2e\x38\x39\x2d\x35\x30\
+\x2e\x36\x33\x39\x2d\x31\x2e\x33\x31\x32\x6c\x2d\x34\x31\x2e\x36\
+\x38\x37\x2c\x34\x31\x2e\x36\x36\x34\x63\x2d\x31\x30\x2e\x38\x35\
+\x32\x2c\x31\x30\x2e\x38\x33\x36\x2d\x32\x33\x2e\x39\x33\x2c\x31\
+\x30\x2e\x38\x35\x39\x2d\x33\x31\x2e\x35\x36\x34\x2c\x31\x2e\x38\
+\x35\x32\x0d\x0a\x09\x63\x2d\x35\x2e\x30\x35\x37\x2d\x35\x2e\x39\
+\x36\x38\x2d\x33\x2e\x30\x36\x31\x2d\x32\x34\x2e\x33\x37\x34\x2d\
+\x31\x2e\x36\x34\x34\x2d\x33\x36\x2e\x30\x34\x39\x6c\x32\x30\x2e\
+\x39\x30\x37\x2d\x31\x37\x31\x2e\x38\x34\x39\x63\x31\x2e\x38\x36\
+\x37\x2d\x31\x35\x2e\x33\x35\x33\x2d\x39\x2e\x30\x37\x2d\x33\x30\
+\x2e\x31\x38\x35\x2d\x32\x34\x2e\x34\x33\x2d\x33\x32\x2e\x30\x35\
+\x31\x0d\x0a\x09\x63\x2d\x31\x35\x2e\x33\x35\x38\x2d\x31\x2e\x38\
+\x36\x37\x2d\x32\x39\x2e\x33\x32\x32\x2c\x39\x2e\x39\x33\x39\x2d\
+\x33\x31\x2e\x31\x39\x31\x2c\x32\x35\x2e\x32\x38\x39\x4c\x32\x36\
+\x37\x2e\x33\x37\x2c\x32\x33\x36\x2e\x30\x32\x31\x63\x2d\x31\x2e\
+\x32\x30\x35\x2c\x33\x2e\x33\x35\x38\x2d\x33\x2e\x37\x39\x2c\x33\
+\x2e\x39\x33\x38\x2d\x34\x2e\x30\x38\x31\x2d\x30\x2e\x35\x38\x32\
+\x4c\x32\x35\x35\x2e\x34\x34\x2c\x36\x30\x0d\x0a\x09\x63\x30\x2d\
+\x31\x35\x2e\x34\x36\x35\x2d\x31\x32\x2e\x35\x34\x32\x2d\x32\x38\
+\x2d\x32\x38\x2e\x30\x31\x34\x2d\x32\x38\x63\x2d\x31\x35\x2e\x34\
+\x37\x33\x2c\x30\x2d\x32\x38\x2e\x30\x31\x35\x2c\x31\x32\x2e\x35\
+\x33\x35\x2d\x32\x38\x2e\x30\x31\x35\x2c\x32\x38\x6c\x2d\x30\x2e\
+\x35\x35\x32\x2c\x31\x37\x36\x2e\x37\x35\x32\x63\x30\x2e\x31\x34\
+\x36\x2c\x32\x2e\x30\x34\x2d\x31\x2e\x36\x30\x34\x2c\x32\x2e\x36\
+\x32\x34\x2d\x31\x2e\x39\x32\x2c\x30\x2e\x32\x39\x34\x4c\x31\x37\
+\x32\x2e\x30\x31\x36\x2c\x39\x39\x2e\x30\x37\x37\x0d\x0a\x09\x63\
+\x2d\x32\x2e\x37\x35\x2d\x31\x35\x2e\x32\x31\x39\x2d\x31\x37\x2e\
+\x33\x32\x33\x2d\x32\x36\x2e\x32\x30\x33\x2d\x33\x32\x2e\x35\x34\
+\x38\x2d\x32\x33\x2e\x34\x35\x33\x63\x2d\x31\x35\x2e\x32\x32\x37\
+\x2c\x32\x2e\x37\x34\x38\x2d\x32\x35\x2e\x33\x33\x39\x2c\x31\x38\
+\x2e\x31\x38\x37\x2d\x32\x32\x2e\x35\x39\x31\x2c\x33\x33\x2e\x34\
+\x30\x33\x6c\x32\x32\x2e\x31\x39\x33\x2c\x31\x36\x31\x2e\x34\x35\
+\x35\x0d\x0a\x09\x63\x30\x2e\x30\x32\x33\x2c\x32\x2e\x38\x37\x32\
+\x2d\x30\x2e\x39\x34\x31\x2c\x34\x2e\x35\x31\x33\x2d\x32\x2e\x33\
+\x30\x38\x2c\x30\x2e\x38\x33\x31\x6c\x2d\x33\x33\x2e\x31\x30\x39\
+\x2d\x38\x38\x2e\x35\x31\x37\x63\x2d\x35\x2e\x31\x38\x2d\x31\x34\
+\x2e\x35\x37\x32\x2d\x32\x31\x2e\x31\x39\x36\x2d\x32\x33\x2e\x30\
+\x36\x35\x2d\x33\x35\x2e\x37\x37\x36\x2d\x31\x37\x2e\x38\x38\x39\
+\x0d\x0a\x09\x63\x2d\x31\x34\x2e\x35\x37\x39\x2c\x35\x2e\x31\x37\
+\x37\x2d\x32\x32\x2e\x32\x30\x31\x2c\x32\x32\x2e\x30\x36\x31\x2d\
+\x31\x37\x2e\x30\x32\x33\x2c\x33\x36\x2e\x36\x33\x31\x6c\x35\x38\
+\x2e\x30\x34\x32\x2c\x31\x38\x39\x2e\x36\x32\x35\x63\x30\x2e\x33\
+\x30\x33\x2c\x31\x2e\x30\x34\x36\x2c\x30\x2e\x36\x32\x34\x2c\x32\
+\x2e\x30\x38\x35\x2c\x30\x2e\x39\x35\x33\x2c\x33\x2e\x31\x31\x38\
+\x6c\x30\x2e\x31\x32\x31\x2c\x30\x2e\x33\x39\x0d\x0a\x09\x63\x30\
+\x2e\x30\x31\x31\x2c\x30\x2e\x30\x33\x31\x2c\x30\x2e\x30\x32\x35\
+\x2c\x30\x2e\x30\x35\x38\x2c\x30\x2e\x30\x33\x35\x2c\x30\x2e\x30\
+\x38\x38\x43\x31\x32\x36\x2e\x30\x37\x39\x2c\x34\x34\x34\x2e\x32\
+\x33\x33\x2c\x31\x37\x32\x2e\x35\x37\x2c\x34\x38\x30\x2c\x32\x32\
+\x37\x2e\x34\x32\x37\x2c\x34\x38\x30\x63\x33\x35\x2e\x31\x31\x36\
+\x2c\x30\x2c\x37\x31\x2e\x35\x39\x31\x2d\x31\x32\x2e\x33\x37\x38\
+\x2c\x39\x39\x2e\x33\x35\x37\x2d\x33\x33\x2e\x36\x37\x32\x0d\x0a\
+\x09\x63\x30\x2e\x30\x30\x31\x2c\x30\x2c\x30\x2e\x30\x30\x33\x2d\
+\x30\x2e\x30\x30\x32\x2c\x30\x2e\x30\x30\x33\x2d\x30\x2e\x30\x30\
+\x32\x63\x32\x39\x2e\x39\x39\x2d\x31\x38\x2e\x30\x35\x31\x2c\x31\
+\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x2c\x31\
+\x32\x36\x2e\x30\x37\x31\x2d\x31\x32\x31\x2e\x33\x34\x37\x43\x34\
+\x36\x37\x2e\x34\x34\x35\x2c\x33\x31\x30\x2e\x34\x30\x32\x2c\x34\
+\x36\x35\x2e\x32\x36\x36\x2c\x32\x38\x38\x2e\x30\x38\x2c\x34\x35\
+\x30\x2e\x36\x37\x39\x2c\x32\x37\x33\x2e\x35\x7a\x22\x2f\x3e\x0d\
+\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x05\xd4\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
@@ -794,13 +880,13 @@ qt_resource_data = b"\
\x2d\x77\x69\x64\x74\x68\x3d\x27\x33\x2e\x35\x31\x33\x31\x32\x27\
\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\
\x76\x67\x3e\
-\x00\x00\x02\x79\
+\x00\x00\x02\xa1\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
@@ -812,30 +898,98 @@ qt_resource_data = b"\
\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x67\x3e\x0d\x0a\x09\x09\x09\x3c\x70\x6f\x6c\
-\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\x22\x31\x38\x36\
-\x2e\x33\x30\x31\x2c\x33\x33\x39\x2e\x38\x39\x33\x20\x39\x36\x2c\
-\x32\x34\x39\x2e\x34\x36\x31\x20\x36\x34\x2c\x32\x37\x39\x2e\x39\
-\x36\x38\x20\x31\x38\x36\x2e\x33\x30\x31\x2c\x34\x30\x32\x20\x34\
-\x34\x38\x2c\x31\x34\x30\x2e\x35\x30\x36\x20\x34\x31\x36\x2c\x31\
-\x31\x30\x20\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x09\x3c\x2f\x67\
-\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\
-\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x3d\x22\x53\x61\x76\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\
+\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\
+\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
+\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\
+\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\x22\x20\
+\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\
+\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\
+\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\
+\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\
+\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
+\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\
+\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\
+\x35\x2e\x31\x37\x33\x2c\x32\x48\x34\x43\x32\x2e\x38\x39\x39\x2c\
+\x32\x2c\x32\x2c\x32\x2e\x39\x2c\x32\x2c\x34\x76\x31\x32\x63\x30\
+\x2c\x31\x2e\x31\x2c\x30\x2e\x38\x39\x39\x2c\x32\x2c\x32\x2c\x32\
+\x68\x31\x32\x63\x31\x2e\x31\x30\x31\x2c\x30\x2c\x32\x2d\x30\x2e\
+\x39\x2c\x32\x2d\x32\x56\x35\x2e\x31\x32\x37\x4c\x31\x35\x2e\x31\
+\x37\x33\x2c\x32\x7a\x20\x4d\x31\x34\x2c\x38\x63\x30\x2c\x30\x2e\
+\x35\x34\x39\x2d\x30\x2e\x34\x35\x2c\x31\x2d\x31\x2c\x31\x48\x37\
+\x0d\x0a\x09\x43\x36\x2e\x34\x35\x2c\x39\x2c\x36\x2c\x38\x2e\x35\
+\x34\x39\x2c\x36\x2c\x38\x56\x33\x68\x38\x56\x38\x7a\x20\x4d\x31\
+\x33\x2c\x34\x68\x2d\x32\x76\x34\x68\x32\x56\x34\x7a\x22\x2f\x3e\
+\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\
+\x00\x00\x03\xe6\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x43\x68\x65\x76\x72\x6f\x6e\x5f\x63\x69\x72\x63\x6c\x65\
+\x64\x5f\x72\x69\x67\x68\x74\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x22\x0d\x0a\x09\x20\x78\x3d\x22\x30\x70\x78\
+\x22\x20\x79\x3d\x22\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\
+\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\
+\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
+\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\
+\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\
+\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\
+\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
+\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\
+\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x31\x2c\x31\
+\x30\x4c\x38\x2e\x36\x39\x38\x2c\x37\x2e\x34\x39\x34\x63\x2d\x30\
+\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x38\x2d\x30\x2e\x31\x39\x36\
+\x2d\x30\x2e\x35\x31\x39\x2c\x30\x2d\x30\x2e\x37\x31\x38\x63\x30\
+\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x35\x31\x35\
+\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x37\x31\x2c\x30\x6c\x32\x2e\
+\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\x0a\x09\x63\x30\x2e\x31\
+\x39\x36\x2c\x30\x2e\x31\x39\x39\x2c\x30\x2e\x31\x39\x36\x2c\x30\
+\x2e\x35\x32\x2c\x30\x2c\x30\x2e\x37\x31\x37\x6c\x2d\x32\x2e\x38\
+\x30\x37\x2c\x32\x2e\x38\x36\x34\x63\x2d\x30\x2e\x31\x39\x35\x2c\
+\x30\x2e\x31\x39\x39\x2d\x30\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\
+\x38\x2d\x30\x2e\x37\x31\x2c\x30\x63\x2d\x30\x2e\x31\x39\x36\x2d\
+\x30\x2e\x31\x39\x37\x2d\x30\x2e\x31\x39\x36\x2d\x30\x2e\x35\x31\
+\x38\x2c\x30\x2d\x30\x2e\x37\x31\x37\x4c\x31\x31\x2c\x31\x30\x7a\
+\x20\x4d\x31\x30\x2c\x30\x2e\x34\x0d\x0a\x09\x63\x35\x2e\x33\x30\
+\x32\x2c\x30\x2c\x39\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2c\x39\x2e\
+\x36\x2c\x39\x2e\x36\x63\x30\x2c\x35\x2e\x33\x30\x33\x2d\x34\x2e\
+\x32\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x2c\x39\x2e\x36\x53\
+\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x33\x2c\x30\x2e\x34\x2c\x31\
+\x30\x43\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x34\x2e\x36\x39\
+\x38\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
+\x30\x2c\x31\x38\x2e\x33\x35\x34\x0d\x0a\x09\x63\x34\x2e\x36\x31\
+\x33\x2c\x30\x2c\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2c\x38\
+\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\
+\x31\x34\x2d\x33\x2e\x37\x34\x31\x2d\x38\x2e\x33\x35\x34\x2d\x38\
+\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x2d\x34\x2e\x36\x31\
+\x35\x2c\x30\x2d\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2d\x38\
+\x2e\x33\x35\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x2e\
+\x36\x34\x35\x2c\x31\x34\x2e\x36\x31\x34\x2c\x35\x2e\x33\x38\x35\
+\x2c\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\
+\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
\x00\x00\x03\x4c\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -891,32 +1045,72 @@ qt_resource_data = b"\
\x2c\x34\x32\x32\x2e\x34\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x34\
\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\
\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x01\x69\
+\x00\x00\x03\xeb\
\x3c\
-\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
-\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\
-\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\
-\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\
-\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x3c\x67\x20\x74\x72\x61\
-\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x32\
-\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\x3c\
-\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x2e\x33\x34\x20\x31\x35\
-\x2e\x36\x36\x41\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\x30\x20\
-\x30\x20\x30\x20\x39\x20\x31\x37\x2e\x39\x34\x56\x31\x30\x48\x35\
-\x56\x38\x68\x34\x56\x35\x2e\x38\x33\x61\x33\x20\x33\x20\x30\x20\
-\x31\x20\x31\x20\x32\x20\x30\x56\x38\x68\x34\x76\x32\x68\x2d\x34\
-\x76\x37\x2e\x39\x34\x61\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\
-\x30\x20\x30\x20\x30\x20\x34\x2e\x36\x36\x2d\x32\x2e\x32\x38\x6c\
-\x2d\x31\x2e\x34\x32\x2d\x31\x2e\x34\x32\x68\x35\x2e\x36\x36\x6c\
-\x2d\x32\x2e\x38\x33\x20\x32\x2e\x38\x33\x61\x31\x30\x20\x31\x30\
-\x20\x30\x20\x30\x20\x31\x2d\x31\x34\x2e\x31\x34\x20\x30\x4c\x2e\
-\x31\x20\x31\x34\x2e\x32\x34\x68\x35\x2e\x36\x36\x6c\x2d\x31\x2e\
-\x34\x32\x20\x31\x2e\x34\x32\x7a\x4d\x31\x30\x20\x34\x61\x31\x20\
-\x31\x20\x30\x20\x31\x20\x30\x20\x30\x2d\x32\x20\x31\x20\x31\x20\
-\x30\x20\x30\x20\x30\x20\x30\x20\x32\x7a\x22\x2f\x3e\x3c\x2f\x67\
-\x3e\x3c\x2f\x73\x76\x67\x3e\x0a\
-\x00\x00\x02\x7d\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
+\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
+\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
+\x4d\x32\x35\x36\x2c\x31\x32\x38\x63\x2d\x38\x31\x2e\x39\x2c\x30\
+\x2d\x31\x34\x35\x2e\x37\x2c\x34\x38\x2e\x38\x2d\x32\x32\x34\x2c\
+\x31\x32\x38\x63\x36\x37\x2e\x34\x2c\x36\x37\x2e\x37\x2c\x31\x32\
+\x34\x2c\x31\x32\x38\x2c\x32\x32\x34\x2c\x31\x32\x38\x63\x39\x39\
+\x2e\x39\x2c\x30\x2c\x31\x37\x33\x2e\x34\x2d\x37\x36\x2e\x34\x2c\
+\x32\x32\x34\x2d\x31\x32\x36\x2e\x36\x0d\x0a\x09\x09\x43\x34\x32\
+\x38\x2e\x32\x2c\x31\x39\x38\x2e\x36\x2c\x33\x35\x34\x2e\x38\x2c\
+\x31\x32\x38\x2c\x32\x35\x36\x2c\x31\x32\x38\x7a\x20\x4d\x32\x35\
+\x36\x2c\x33\x34\x37\x2e\x33\x63\x2d\x34\x39\x2e\x34\x2c\x30\x2d\
+\x38\x39\x2e\x36\x2d\x34\x31\x2d\x38\x39\x2e\x36\x2d\x39\x31\x2e\
+\x33\x63\x30\x2d\x35\x30\x2e\x34\x2c\x34\x30\x2e\x32\x2d\x39\x31\
+\x2e\x33\x2c\x38\x39\x2e\x36\x2d\x39\x31\x2e\x33\x73\x38\x39\x2e\
+\x36\x2c\x34\x31\x2c\x38\x39\x2e\x36\x2c\x39\x31\x2e\x33\x0d\x0a\
+\x09\x09\x43\x33\x34\x35\x2e\x36\x2c\x33\x30\x36\x2e\x34\x2c\x33\
+\x30\x35\x2e\x34\x2c\x33\x34\x37\x2e\x33\x2c\x32\x35\x36\x2c\x33\
+\x34\x37\x2e\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\
+\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\
+\x32\x32\x34\x63\x30\x2d\x37\x2e\x39\x2c\x32\x2e\x39\x2d\x31\x35\
+\x2e\x31\x2c\x37\x2e\x36\x2d\x32\x30\x2e\x37\x63\x2d\x32\x2e\x35\
+\x2d\x30\x2e\x34\x2d\x35\x2d\x30\x2e\x36\x2d\x37\x2e\x36\x2d\x30\
+\x2e\x36\x63\x2d\x32\x38\x2e\x38\x2c\x30\x2d\x35\x32\x2e\x33\x2c\
+\x32\x33\x2e\x39\x2d\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x63\x30\
+\x2c\x32\x39\x2e\x34\x2c\x32\x33\x2e\x35\x2c\x35\x33\x2e\x33\x2c\
+\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x0d\x0a\x09\x09\x09\x73\x35\
+\x32\x2e\x33\x2d\x32\x33\x2e\x39\x2c\x35\x32\x2e\x33\x2d\x35\x33\
+\x2e\x33\x63\x30\x2d\x32\x2e\x33\x2d\x30\x2e\x32\x2d\x34\x2e\x36\
+\x2d\x30\x2e\x34\x2d\x36\x2e\x39\x63\x2d\x35\x2e\x35\x2c\x34\x2e\
+\x33\x2d\x31\x32\x2e\x33\x2c\x36\x2e\x39\x2d\x31\x39\x2e\x38\x2c\
+\x36\x2e\x39\x43\x32\x37\x30\x2e\x33\x2c\x32\x35\x36\x2c\x32\x35\
+\x36\x2c\x32\x34\x31\x2e\x37\x2c\x32\x35\x36\x2c\x32\x32\x34\x7a\
+\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\
+\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\x79\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -948,17 +1142,75 @@ qt_resource_data = b"\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\
-\x2c\x32\x37\x37\x2e\x33\x37\x35\x68\x32\x35\x39\x2e\x37\x30\x34\
-\x4c\x32\x32\x35\x2e\x30\x30\x32\x2c\x33\x39\x37\x2e\x30\x37\x37\
-\x4c\x32\x35\x36\x2c\x34\x32\x37\x6c\x31\x37\x31\x2d\x31\x37\x31\
-\x4c\x32\x35\x36\x2c\x38\x35\x6c\x2d\x32\x39\x2e\x39\x32\x32\x2c\
-\x32\x39\x2e\x39\x32\x34\x6c\x31\x31\x38\x2e\x36\x32\x36\x2c\x31\
-\x31\x39\x2e\x37\x30\x31\x48\x38\x35\x56\x32\x37\x37\x2e\x33\x37\
-\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
-\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\x6c\
+\x22\x49\x63\x6f\x6e\x5f\x31\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x67\x3e\x0d\x0a\x09\x09\x09\x3c\x70\x6f\x6c\
+\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\x22\x31\x38\x36\
+\x2e\x33\x30\x31\x2c\x33\x33\x39\x2e\x38\x39\x33\x20\x39\x36\x2c\
+\x32\x34\x39\x2e\x34\x36\x31\x20\x36\x34\x2c\x32\x37\x39\x2e\x39\
+\x36\x38\x20\x31\x38\x36\x2e\x33\x30\x31\x2c\x34\x30\x32\x20\x34\
+\x34\x38\x2c\x31\x34\x30\x2e\x35\x30\x36\x20\x34\x31\x36\x2c\x31\
+\x31\x30\x20\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x09\x3c\x2f\x67\
+\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\
+\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x03\x7c\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x32\
+\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x36\
+\x32\x2e\x32\x33\x32\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\
+\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\
+\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\
+\x35\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\
+\x35\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\
+\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\
+\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
+\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\
+\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\
+\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\
+\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\
+\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\
+\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\
+\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\
+\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\
+\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\
+\x20\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x33\x32\x2e\x31\x32\x43\
+\x20\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x34\x30\x2e\x34\x33\x35\
+\x33\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\x34\x37\x2e\x31\x37\
+\x36\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x31\x37\x36\
+\x32\x43\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x34\x37\x2e\x31\
+\x37\x36\x32\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x34\x30\x2e\
+\x34\x33\x35\x33\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x33\x32\
+\x2e\x31\x32\x43\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x32\x33\
+\x2e\x38\x30\x34\x37\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x31\
+\x37\x2e\x30\x36\x33\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x37\
+\x2e\x30\x36\x33\x37\x43\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\
+\x31\x37\x2e\x30\x36\x33\x37\x20\x34\x37\x2e\x31\x37\x36\x32\x20\
+\x2d\x32\x33\x2e\x38\x30\x34\x37\x20\x34\x37\x2e\x31\x37\x36\x32\
+\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\
+\x23\x30\x30\x30\x30\x30\x30\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x03\x26\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -990,52 +1242,28 @@ qt_resource_data = b"\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x0d\x0a\x09\x09\x3c\x72\x65\x63\x74\x20\x78\x3d\x22\x31\x37\x38\
-\x2e\x38\x34\x36\x22\x20\x79\x3d\x22\x39\x32\x2e\x30\x38\x37\x22\
-\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\
-\x69\x78\x28\x2d\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\
-\x37\x31\x20\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\x37\
-\x31\x20\x32\x32\x34\x2e\x33\x34\x37\x36\x20\x36\x33\x31\x2e\x31\
-\x34\x39\x38\x29\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\
-\x2e\x30\x38\x35\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x35\
-\x34\x2e\x30\x34\x39\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\
-\x20\x64\x3d\x22\x4d\x34\x37\x31\x2e\x37\x32\x33\x2c\x38\x38\x2e\
-\x33\x39\x33\x6c\x2d\x34\x38\x2e\x31\x31\x35\x2d\x34\x38\x2e\x31\
-\x31\x34\x63\x2d\x31\x31\x2e\x37\x32\x33\x2d\x31\x31\x2e\x37\x32\
-\x34\x2d\x33\x31\x2e\x35\x35\x38\x2d\x31\x30\x2e\x38\x39\x36\x2d\
-\x34\x34\x2e\x33\x30\x34\x2c\x31\x2e\x38\x35\x6c\x2d\x34\x35\x2e\
-\x32\x30\x32\x2c\x34\x35\x2e\x32\x30\x33\x6c\x39\x30\x2e\x35\x36\
-\x39\x2c\x39\x30\x2e\x35\x36\x38\x6c\x34\x35\x2e\x32\x30\x32\x2d\
-\x34\x35\x2e\x32\x30\x32\x0d\x0a\x09\x09\x43\x34\x38\x32\x2e\x36\
-\x31\x36\x2c\x31\x31\x39\x2e\x39\x35\x32\x2c\x34\x38\x33\x2e\x34\
-\x34\x35\x2c\x31\x30\x30\x2e\x31\x31\x36\x2c\x34\x37\x31\x2e\x37\
-\x32\x33\x2c\x38\x38\x2e\x33\x39\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\
-\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
-\x22\x36\x34\x2e\x30\x32\x31\x2c\x33\x36\x33\x2e\x32\x35\x32\x20\
-\x33\x32\x2c\x34\x38\x30\x20\x31\x34\x38\x2e\x37\x33\x37\x2c\x34\
-\x34\x37\x2e\x39\x37\x39\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\
-\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x01\x1c\
-\x3c\
-\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
-\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\
-\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\
-\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x34\x38\x20\x30\x20\x30\x20\x34\x38\x20\x34\
-\x38\x20\x34\x38\x29\x27\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x20\
-\x64\x3d\x22\x4d\x30\x20\x30\x76\x32\x68\x2e\x35\x63\x30\x2d\x2e\
-\x35\x35\x2e\x34\x35\x2d\x31\x20\x31\x2d\x31\x68\x31\x2e\x35\x76\
-\x35\x2e\x35\x63\x30\x20\x2e\x32\x38\x2d\x2e\x32\x32\x2e\x35\x2d\
-\x2e\x35\x2e\x35\x68\x2d\x2e\x35\x76\x31\x68\x34\x76\x2d\x31\x68\
-\x2d\x2e\x35\x63\x2d\x2e\x32\x38\x20\x30\x2d\x2e\x35\x2d\x2e\x32\
-\x32\x2d\x2e\x35\x2d\x2e\x35\x76\x2d\x35\x2e\x35\x68\x31\x2e\x35\
-\x63\x2e\x35\x35\x20\x30\x20\x31\x20\x2e\x34\x35\x20\x31\x20\x31\
-\x68\x2e\x35\x76\x2d\x32\x68\x2d\x38\x7a\x22\x20\x2f\x3e\x0a\x3c\
-\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
-\x00\x00\x02\xc9\
+\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x33\x38\
+\x38\x63\x2d\x37\x32\x2e\x35\x39\x37\x2c\x30\x2d\x31\x33\x32\x2d\
+\x35\x39\x2e\x34\x30\x35\x2d\x31\x33\x32\x2d\x31\x33\x32\x63\x30\
+\x2d\x37\x32\x2e\x36\x30\x31\x2c\x35\x39\x2e\x34\x30\x33\x2d\x31\
+\x33\x32\x2c\x31\x33\x32\x2d\x31\x33\x32\x63\x33\x36\x2e\x33\x2c\
+\x30\x2c\x36\x39\x2e\x32\x39\x39\x2c\x31\x35\x2e\x34\x2c\x39\x32\
+\x2e\x34\x30\x36\x2c\x33\x39\x2e\x36\x30\x31\x4c\x32\x37\x38\x2c\
+\x32\x33\x34\x68\x31\x35\x34\x56\x38\x30\x0d\x0a\x09\x09\x6c\x2d\
+\x35\x31\x2e\x36\x39\x38\x2c\x35\x31\x2e\x37\x30\x32\x43\x33\x34\
+\x38\x2e\x34\x30\x36\x2c\x39\x39\x2e\x37\x39\x38\x2c\x33\x30\x34\
+\x2e\x34\x30\x36\x2c\x38\x30\x2c\x32\x35\x36\x2c\x38\x30\x63\x2d\
+\x39\x36\x2e\x37\x39\x37\x2c\x30\x2d\x31\x37\x36\x2c\x37\x39\x2e\
+\x32\x30\x33\x2d\x31\x37\x36\x2c\x31\x37\x36\x73\x37\x38\x2e\x30\
+\x39\x34\x2c\x31\x37\x36\x2c\x31\x37\x36\x2c\x31\x37\x36\x0d\x0a\
+\x09\x09\x63\x38\x31\x2e\x30\x34\x35\x2c\x30\x2c\x31\x34\x38\x2e\
+\x32\x38\x37\x2d\x35\x34\x2e\x31\x33\x34\x2c\x31\x36\x39\x2e\x34\
+\x30\x31\x2d\x31\x32\x38\x48\x33\x37\x38\x2e\x38\x35\x43\x33\x36\
+\x30\x2e\x31\x30\x35\x2c\x33\x35\x33\x2e\x35\x36\x31\x2c\x33\x31\
+\x31\x2e\x37\x31\x32\x2c\x33\x38\x38\x2c\x32\x35\x36\x2c\x33\x38\
+\x38\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\xa2\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1062,27 +1290,25 @@ qt_resource_data = b"\
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
-\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
-\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
-\x3d\x22\x34\x38\x30\x2c\x32\x35\x36\x20\x33\x38\x34\x2c\x31\x36\
-\x30\x20\x33\x38\x34\x2c\x32\x33\x36\x20\x32\x37\x36\x2c\x32\x33\
-\x36\x20\x32\x37\x36\x2c\x31\x32\x38\x20\x33\x35\x32\x2c\x31\x32\
-\x38\x20\x32\x35\x36\x2c\x33\x32\x20\x31\x36\x30\x2c\x31\x32\x38\
-\x20\x32\x33\x36\x2c\x31\x32\x38\x20\x32\x33\x36\x2c\x32\x33\x36\
-\x20\x31\x32\x38\x2c\x32\x33\x36\x20\x31\x32\x38\x2c\x31\x36\x30\
-\x20\x33\x32\x2c\x32\x35\x36\x20\x31\x32\x38\x2c\x33\x35\x32\x20\
-\x0d\x0a\x09\x31\x32\x38\x2c\x32\x37\x36\x20\x32\x33\x36\x2c\x32\
-\x37\x36\x20\x32\x33\x36\x2c\x33\x38\x34\x20\x31\x36\x30\x2c\x33\
-\x38\x34\x20\x32\x35\x36\x2c\x34\x38\x30\x20\x33\x35\x32\x2c\x33\
-\x38\x34\x20\x32\x37\x35\x2e\x38\x2c\x33\x38\x34\x20\x32\x37\x35\
-\x2e\x34\x2c\x32\x37\x35\x2e\x35\x20\x33\x38\x34\x2c\x32\x37\x35\
-\x2e\x38\x20\x33\x38\x34\x2c\x33\x35\x32\x20\x22\x2f\x3e\x0d\x0a\
-\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\xf7\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x32\x38\x2c\x34\x30\
+\x35\x2e\x34\x32\x39\x43\x31\x32\x38\x2c\x34\x32\x38\x2e\x38\x34\
+\x36\x2c\x31\x34\x37\x2e\x31\x39\x38\x2c\x34\x34\x38\x2c\x31\x37\
+\x30\x2e\x36\x36\x37\x2c\x34\x34\x38\x68\x31\x37\x30\x2e\x36\x36\
+\x37\x43\x33\x36\x34\x2e\x38\x30\x32\x2c\x34\x34\x38\x2c\x33\x38\
+\x34\x2c\x34\x32\x38\x2e\x38\x34\x36\x2c\x33\x38\x34\x2c\x34\x30\
+\x35\x2e\x34\x32\x39\x56\x31\x36\x30\x48\x31\x32\x38\x56\x34\x30\
+\x35\x2e\x34\x32\x39\x7a\x20\x4d\x34\x31\x36\x2c\x39\x36\x0d\x0a\
+\x09\x09\x68\x2d\x38\x30\x6c\x2d\x32\x36\x2e\x37\x38\x35\x2d\x33\
+\x32\x48\x32\x30\x32\x2e\x37\x38\x36\x4c\x31\x37\x36\x2c\x39\x36\
+\x48\x39\x36\x76\x33\x32\x68\x33\x32\x30\x56\x39\x36\x7a\x22\x2f\
+\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
+\x0a\
+\x00\x00\x03\x36\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1109,29 +1335,84 @@ qt_resource_data = b"\
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
-\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
-\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x31\x37\x2e\x34\
-\x2c\x32\x32\x34\x48\x32\x38\x38\x56\x39\x34\x2e\x36\x63\x30\x2d\
-\x31\x36\x2e\x39\x2d\x31\x34\x2e\x33\x2d\x33\x30\x2e\x36\x2d\x33\
-\x32\x2d\x33\x30\x2e\x36\x63\x2d\x31\x37\x2e\x37\x2c\x30\x2d\x33\
-\x32\x2c\x31\x33\x2e\x37\x2d\x33\x32\x2c\x33\x30\x2e\x36\x56\x32\
-\x32\x34\x48\x39\x34\x2e\x36\x43\x37\x37\x2e\x37\x2c\x32\x32\x34\
-\x2c\x36\x34\x2c\x32\x33\x38\x2e\x33\x2c\x36\x34\x2c\x32\x35\x36\
-\x0d\x0a\x09\x63\x30\x2c\x31\x37\x2e\x37\x2c\x31\x33\x2e\x37\x2c\
-\x33\x32\x2c\x33\x30\x2e\x36\x2c\x33\x32\x48\x32\x32\x34\x76\x31\
-\x32\x39\x2e\x34\x63\x30\x2c\x31\x36\x2e\x39\x2c\x31\x34\x2e\x33\
-\x2c\x33\x30\x2e\x36\x2c\x33\x32\x2c\x33\x30\x2e\x36\x63\x31\x37\
-\x2e\x37\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x37\x2c\x33\x32\x2d\
-\x33\x30\x2e\x36\x56\x32\x38\x38\x68\x31\x32\x39\x2e\x34\x63\x31\
-\x36\x2e\x39\x2c\x30\x2c\x33\x30\x2e\x36\x2d\x31\x34\x2e\x33\x2c\
-\x33\x30\x2e\x36\x2d\x33\x32\x0d\x0a\x09\x43\x34\x34\x38\x2c\x32\
-\x33\x38\x2e\x33\x2c\x34\x33\x34\x2e\x33\x2c\x32\x32\x34\x2c\x34\
-\x31\x37\x2e\x34\x2c\x32\x32\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\
-\x73\x76\x67\x3e\x0d\x0a\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
+\x22\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x39\x36\x2e\x38\x20\x33\
+\x32\x30\x2c\x33\x39\x36\x2e\x38\x20\x33\x32\x30\x2c\x34\x34\x38\
+\x20\x34\x34\x38\x2c\x34\x34\x38\x20\x34\x34\x38\x2c\x33\x32\x30\
+\x20\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x32\x30\x20\x09\x22\x2f\
+\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
+\x6e\x74\x73\x3d\x22\x33\x39\x36\x2e\x38\x2c\x31\x31\x35\x2e\x32\
+\x30\x35\x20\x33\x39\x36\x2e\x38\x2c\x31\x39\x32\x20\x34\x34\x38\
+\x2c\x31\x39\x32\x20\x34\x34\x38\x2c\x36\x34\x20\x33\x32\x30\x2c\
+\x36\x34\x20\x33\x32\x30\x2c\x31\x31\x35\x2e\x32\x30\x35\x20\x09\
+\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
+\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\
+\x31\x35\x2e\x32\x20\x31\x39\x32\x2c\x31\x31\x35\x2e\x32\x20\x31\
+\x39\x32\x2c\x36\x34\x20\x36\x34\x2c\x36\x34\x20\x36\x34\x2c\x31\
+\x39\x32\x20\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\x39\x32\x20\x09\
+\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
+\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x2c\x33\x39\x36\
+\x2e\x37\x39\x35\x20\x31\x31\x35\x2e\x32\x2c\x33\x32\x30\x20\x36\
+\x34\x2c\x33\x32\x30\x20\x36\x34\x2c\x34\x34\x38\x20\x31\x39\x32\
+\x2c\x34\x34\x38\x20\x31\x39\x32\x2c\x33\x39\x36\x2e\x37\x39\x35\
+\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
+\x00\x00\x03\x0c\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
+\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
+\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
+\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
+\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
+\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
+\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
+\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
+\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
+\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
+\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
+\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
+\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
+\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
+\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
+\x3d\x22\x43\x68\x65\x63\x6b\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\x79\
+\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\
+\x78\x3d\x22\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\x65\x6e\
+\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\
+\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\
+\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\
+\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
+\x4d\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x63\x2d\x30\
+\x2e\x34\x33\x35\x2c\x30\x2d\x30\x2e\x38\x34\x37\x2d\x30\x2e\x32\
+\x30\x33\x2d\x31\x2e\x31\x31\x31\x2d\x30\x2e\x35\x35\x33\x4c\x33\
+\x2e\x36\x31\x2c\x31\x31\x2e\x37\x32\x34\x63\x2d\x30\x2e\x34\x36\
+\x35\x2d\x30\x2e\x36\x31\x33\x2d\x30\x2e\x33\x34\x34\x2d\x31\x2e\
+\x34\x38\x36\x2c\x30\x2e\x32\x37\x2d\x31\x2e\x39\x35\x31\x0d\x0a\
+\x09\x63\x30\x2e\x36\x31\x35\x2d\x30\x2e\x34\x36\x37\x2c\x31\x2e\
+\x34\x38\x38\x2d\x30\x2e\x33\x34\x34\x2c\x31\x2e\x39\x35\x33\x2c\
+\x30\x2e\x32\x37\x6c\x32\x2e\x33\x35\x31\x2c\x33\x2e\x31\x30\x34\
+\x6c\x35\x2e\x39\x31\x31\x2d\x39\x2e\x34\x39\x32\x63\x30\x2e\x34\
+\x30\x37\x2d\x30\x2e\x36\x35\x32\x2c\x31\x2e\x32\x36\x37\x2d\x30\
+\x2e\x38\x35\x32\x2c\x31\x2e\x39\x32\x31\x2d\x30\x2e\x34\x34\x35\
+\x0d\x0a\x09\x63\x30\x2e\x36\x35\x33\x2c\x30\x2e\x34\x30\x36\x2c\
+\x30\x2e\x38\x35\x34\x2c\x31\x2e\x32\x36\x36\x2c\x30\x2e\x34\x34\
+\x36\x2c\x31\x2e\x39\x32\x4c\x39\x2e\x34\x37\x38\x2c\x31\x36\x2e\
+\x33\x34\x63\x2d\x30\x2e\x32\x34\x32\x2c\x30\x2e\x33\x39\x31\x2d\
+\x30\x2e\x36\x36\x31\x2c\x30\x2e\x36\x33\x35\x2d\x31\x2e\x31\x32\
+\x2c\x30\x2e\x36\x35\x36\x43\x38\x2e\x33\x33\x36\x2c\x31\x36\x2e\
+\x39\x39\x38\x2c\x38\x2e\x33\x31\x36\x2c\x31\x36\x2e\x39\x39\x38\
+\x2c\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x7a\x22\x2f\
+\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x03\xf5\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@@ -1198,299 +1479,7 @@ qt_resource_data = b"\
\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\x34\
\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\
\x67\x3e\x0d\x0a\
-\x00\x00\x04\x4e\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
-\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
-\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
-\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
-\x32\x38\x31\x4c\x20\x33\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\
-\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\
-\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
-\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\
-\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\
-\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\
-\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\
-\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
-\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
-\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
-\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
-\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
-\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\
-\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\
-\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\
-\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
-\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
-\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
-\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
-\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
-\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\
-\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\
-\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\
-\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\
-\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
-\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\
-\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\
-\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\
-\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\
-\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\
-\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
-\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
-\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
-\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
-\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\
-\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\
-\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
-\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
-\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x01\xdd\
-\x00\
-\x00\x06\xe4\x78\x9c\xcd\x54\x4d\x6f\x9b\x40\x10\x3d\x13\x29\xff\
-\x61\xba\xb7\x4a\xec\x17\xc4\xd4\xa6\xa6\x51\xfd\x21\xcb\x52\x9a\
-\x58\x6a\xea\xaa\xa7\x0a\xc3\x16\x50\x28\x20\x58\xc0\xce\xaf\xef\
-\xee\x92\x54\x51\x95\xfa\x18\xfb\xb0\x33\xda\x79\x6f\xde\xbc\x65\
-\x24\xa6\xd7\xfb\xdf\x39\x74\xa2\x6e\xb2\xb2\x08\x10\x27\x0c\x81\
-\x28\xa2\x32\xce\x8a\x24\x40\xad\xfc\x85\xc7\xe8\xfa\xd3\xe5\xc5\
-\xf4\x1d\xc6\xb0\x12\x85\xa8\x43\x59\xd6\x3e\x7c\x8e\xcb\x9d\x80\
-\x75\x9e\xb7\x8d\x34\x25\xe0\x1e\x71\x08\xb7\xe1\xeb\x76\x05\xcb\
-\x7d\x55\xd6\x12\x36\x79\x9b\xe0\x75\x01\xc4\x14\xb7\xc3\x10\x1f\
-\x3c\xc2\x18\xcc\xda\x2c\x8f\x81\xbd\x07\xc0\xd8\xe8\x2f\xee\xe6\
-\xf7\x3f\x36\x4b\x68\xba\x04\x36\xdf\x66\x37\xeb\x39\x20\x4c\xe9\
-\x77\x77\x4e\xe9\xe2\x7e\x61\x24\x38\xe1\x94\x2e\x6f\x11\xa0\x54\
-\xca\xca\xa7\xb4\xef\x7b\xd2\xbb\xa4\xac\x13\xba\xaa\xc3\x2a\xcd\
-\xa2\x86\x2a\x22\xd5\x44\xd5\x44\x95\x18\xe7\x24\x96\x31\xd2\x33\
-\xb4\xf4\x8b\xa7\x72\x04\x59\x1c\xa0\x9b\xf0\x20\xea\x9f\xea\xa2\
-\xbe\x44\xd1\x04\xaf\x48\x3b\x8c\x31\x2d\xf5\x44\xf1\xf7\x79\x56\
-\x3c\xbc\x46\xe4\x93\xc9\x84\x1a\x54\x51\x03\xc4\xaa\x3d\x82\xc3\
-\x90\x2f\x2f\x2c\xe8\xb3\x58\xa6\x01\x1a\x71\x47\x03\xa9\xc8\x92\
-\x54\xfe\xbd\x76\x99\xe8\x67\xa5\xee\x02\x06\xaa\xa6\x0f\x82\x46\
-\x1e\x72\x11\x20\x51\x84\xbb\x5c\xe0\x5d\x18\x3d\x24\x75\xd9\x16\
-\xb1\x5f\x88\x1e\x5e\x30\x3f\x1a\x6f\x7e\x53\x85\x91\xa2\x57\xb5\
-\x68\x44\xdd\x09\xf3\xea\x44\x05\x6b\x88\xd6\xb4\x0a\x65\x0a\xea\
-\xd1\x5f\xb8\xc7\x6c\x3e\x72\x89\x1b\x31\xdb\x25\x1f\xb0\x6b\x7b\
-\x2a\xaa\xa3\x73\x8a\x47\x8c\x8c\x22\xac\x00\x9b\xe9\x22\x76\xf1\
-\x13\xdc\x0d\x10\x33\x98\xfb\xdc\xa0\x73\x6a\x00\xd3\xa2\x4b\xb6\
-\x51\xd4\x67\x6b\xe6\x3c\xea\x4f\x60\x59\xf4\x1f\x1f\xce\x78\x7c\
-\x16\x3e\xae\xb8\x77\x3a\x1f\x53\xfa\xff\x25\x39\x63\xfe\x26\xa6\
-\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x71\x6c\x49\x57\x6c\
-\xf2\x26\xa6\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x31\x2c\
-\xe9\x39\xaa\x7f\xb6\xca\x7f\x00\x99\x18\x96\x19\
-\x00\x00\x03\x36\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
-\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
-\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
-\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
-\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
-\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
-\x22\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x39\x36\x2e\x38\x20\x33\
-\x32\x30\x2c\x33\x39\x36\x2e\x38\x20\x33\x32\x30\x2c\x34\x34\x38\
-\x20\x34\x34\x38\x2c\x34\x34\x38\x20\x34\x34\x38\x2c\x33\x32\x30\
-\x20\x33\x39\x36\x2e\x37\x39\x35\x2c\x33\x32\x30\x20\x09\x22\x2f\
-\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\
-\x6e\x74\x73\x3d\x22\x33\x39\x36\x2e\x38\x2c\x31\x31\x35\x2e\x32\
-\x30\x35\x20\x33\x39\x36\x2e\x38\x2c\x31\x39\x32\x20\x34\x34\x38\
-\x2c\x31\x39\x32\x20\x34\x34\x38\x2c\x36\x34\x20\x33\x32\x30\x2c\
-\x36\x34\x20\x33\x32\x30\x2c\x31\x31\x35\x2e\x32\x30\x35\x20\x09\
-\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
-\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\
-\x31\x35\x2e\x32\x20\x31\x39\x32\x2c\x31\x31\x35\x2e\x32\x20\x31\
-\x39\x32\x2c\x36\x34\x20\x36\x34\x2c\x36\x34\x20\x36\x34\x2c\x31\
-\x39\x32\x20\x31\x31\x35\x2e\x32\x30\x35\x2c\x31\x39\x32\x20\x09\
-\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\
-\x6f\x69\x6e\x74\x73\x3d\x22\x31\x31\x35\x2e\x32\x2c\x33\x39\x36\
-\x2e\x37\x39\x35\x20\x31\x31\x35\x2e\x32\x2c\x33\x32\x30\x20\x36\
-\x34\x2c\x33\x32\x30\x20\x36\x34\x2c\x34\x34\x38\x20\x31\x39\x32\
-\x2c\x34\x34\x38\x20\x31\x39\x32\x2c\x33\x39\x36\x2e\x37\x39\x35\
-\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
-\x00\x00\x04\xa2\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x34\
-\x2e\x31\x35\x35\x35\x36\x20\x2d\x33\x39\x2e\x32\x37\x34\x35\x20\
-\x36\x2e\x39\x38\x34\x37\x33\x20\x2d\x34\x36\x2e\x31\x30\x34\x37\
-\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
-\x39\x43\x20\x32\x37\x2e\x34\x34\x31\x31\x20\x2d\x36\x37\x2e\x37\
-\x32\x36\x39\x20\x35\x33\x2e\x33\x30\x32\x31\x20\x2d\x36\x31\x2e\
-\x35\x34\x30\x35\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\
-\x2e\x35\x30\x32\x32\x43\x20\x35\x37\x2e\x36\x32\x37\x20\x2d\x33\
-\x32\x2e\x36\x35\x31\x39\x20\x35\x30\x2e\x35\x38\x35\x36\x20\x2d\
-\x32\x33\x2e\x35\x36\x32\x31\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
-\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\
-\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\
-\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\
-\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\
-\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\
-\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\
-\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\
-\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\
-\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
-\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
-\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
-\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\
-\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\
-\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
-\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
-\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
-\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
-\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
-\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\
-\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\
-\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
-\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
-\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\
-\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
-\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\
-\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\
-\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\
-\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\
-\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
-\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\
-\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\
-\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\
-\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\
-\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\
-\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\
-\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\
-\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\
-\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\
-\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\
-\x3e\
-\x00\x00\x03\x7c\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x32\
-\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\x36\
-\x32\x2e\x32\x33\x32\x35\x20\x2d\x32\x2e\x30\x30\x37\x35\x4c\x20\
-\x36\x32\x2e\x32\x33\x32\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\x35\
-\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x36\x32\x2e\x32\x33\x32\
-\x35\x4c\x20\x32\x2e\x30\x30\x37\x35\x20\x2d\x32\x2e\x30\x30\x37\
-\x35\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\
-\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\
-\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
-\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\
-\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\
-\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\x6f\
-\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x34\x2e\x30\x31\x35\x27\
-\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\
-\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\
-\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\
-\x36\x34\x20\x35\x36\x2e\x34\x30\x39\x34\x20\x31\x31\x37\x2e\x38\
-\x35\x38\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\
-\x20\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x33\x32\x2e\x31\x32\x43\
-\x20\x34\x37\x2e\x31\x37\x36\x32\x20\x2d\x34\x30\x2e\x34\x33\x35\
-\x33\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\x34\x37\x2e\x31\x37\
-\x36\x32\x20\x33\x32\x2e\x31\x32\x20\x2d\x34\x37\x2e\x31\x37\x36\
-\x32\x43\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x34\x37\x2e\x31\
-\x37\x36\x32\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x34\x30\x2e\
-\x34\x33\x35\x33\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x33\x32\
-\x2e\x31\x32\x43\x20\x31\x37\x2e\x30\x36\x33\x37\x20\x2d\x32\x33\
-\x2e\x38\x30\x34\x37\x20\x32\x33\x2e\x38\x30\x34\x37\x20\x2d\x31\
-\x37\x2e\x30\x36\x33\x37\x20\x33\x32\x2e\x31\x32\x20\x2d\x31\x37\
-\x2e\x30\x36\x33\x37\x43\x20\x34\x30\x2e\x34\x33\x35\x33\x20\x2d\
-\x31\x37\x2e\x30\x36\x33\x37\x20\x34\x37\x2e\x31\x37\x36\x32\x20\
-\x2d\x32\x33\x2e\x38\x30\x34\x37\x20\x34\x37\x2e\x31\x37\x36\x32\
-\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\
-\x23\x30\x30\x30\x30\x30\x30\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
-\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x03\x52\
+\x00\x00\x02\xc9\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1517,115 +1506,26 @@ qt_resource_data = b"\
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
-\x64\x3d\x22\x4d\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x48\
-\x32\x35\x36\x2e\x30\x30\x36\x6c\x2d\x34\x32\x2e\x36\x36\x38\x2d\
-\x34\x38\x48\x37\x34\x2e\x36\x36\x36\x43\x35\x31\x2e\x31\x39\x37\
-\x2c\x39\x36\x2c\x33\x32\x2c\x31\x31\x35\x2e\x31\x39\x38\x2c\x33\
-\x32\x2c\x31\x33\x38\x2e\x36\x36\x37\x76\x32\x33\x34\x2e\x36\x36\
-\x36\x43\x33\x32\x2c\x33\x39\x36\x2e\x38\x30\x32\x2c\x35\x31\x2e\
-\x31\x39\x37\x2c\x34\x31\x36\x2c\x37\x34\x2e\x36\x36\x36\x2c\x34\
-\x31\x36\x68\x33\x36\x32\x2e\x36\x36\x38\x0d\x0a\x09\x43\x34\x36\
-\x30\x2e\x38\x30\x33\x2c\x34\x31\x36\x2c\x34\x38\x30\x2c\x33\x39\
-\x36\x2e\x38\x30\x32\x2c\x34\x38\x30\x2c\x33\x37\x33\x2e\x33\x33\
-\x33\x56\x31\x38\x36\x2e\x36\x36\x37\x43\x34\x38\x30\x2c\x31\x36\
-\x33\x2e\x31\x39\x38\x2c\x34\x36\x30\x2e\x38\x30\x33\x2c\x31\x34\
-\x34\x2c\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x7a\x20\x4d\
-\x34\x34\x38\x2c\x33\x37\x33\x2e\x33\x33\x33\x0d\x0a\x09\x63\x30\
-\x2c\x35\x2e\x37\x38\x32\x2d\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\
-\x36\x36\x37\x2d\x31\x30\x2e\x36\x36\x36\x2c\x31\x30\x2e\x36\x36\
-\x37\x48\x37\x34\x2e\x36\x36\x36\x43\x36\x38\x2e\x38\x38\x34\x2c\
-\x33\x38\x34\x2c\x36\x34\x2c\x33\x37\x39\x2e\x31\x31\x35\x2c\x36\
-\x34\x2c\x33\x37\x33\x2e\x33\x33\x33\x56\x31\x37\x36\x68\x33\x37\
-\x33\x2e\x33\x33\x34\x63\x35\x2e\x37\x38\x31\x2c\x30\x2c\x31\x30\
-\x2e\x36\x36\x36\x2c\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\x36\x36\
-\x36\x2c\x31\x30\x2e\x36\x36\x37\x0d\x0a\x09\x56\x33\x37\x33\x2e\
-\x33\x33\x33\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
-\x0a\
-\x00\x00\x04\xd5\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
-\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
-\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
-\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
-\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
-\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
-\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
-\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
-\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
-\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
-\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
-\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
-\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
-\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
-\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
-\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
-\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x32\
-\x2e\x32\x38\x39\x32\x32\x20\x2d\x33\x39\x2e\x33\x31\x31\x33\x20\
-\x36\x2e\x33\x36\x37\x30\x32\x20\x2d\x34\x36\x2e\x32\x33\x38\x36\
-\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
-\x39\x43\x20\x32\x39\x2e\x36\x36\x38\x37\x20\x2d\x36\x37\x2e\x35\
-\x35\x36\x38\x20\x35\x35\x2e\x32\x32\x39\x32\x20\x2d\x36\x30\x2e\
-\x36\x34\x32\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\
-\x35\x30\x32\x32\x43\x20\x35\x36\x2e\x36\x31\x33\x36\x20\x2d\x33\
-\x33\x2e\x34\x33\x38\x31\x20\x34\x39\x2e\x31\x31\x33\x32\x20\x2d\
-\x32\x36\x2e\x35\x39\x35\x39\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
-\x2d\x32\x32\x2e\x35\x32\x38\x31\x43\x20\x32\x35\x2e\x33\x39\x39\
-\x35\x20\x2d\x31\x35\x2e\x31\x35\x38\x32\x20\x37\x2e\x31\x39\x39\
-\x33\x35\x20\x2d\x31\x38\x2e\x31\x34\x33\x36\x20\x33\x2e\x39\x35\
-\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\
-\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\
-\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\
-\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\
-\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\
-\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
-\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\
-\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
-\x68\x3d\x27\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\
-\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
-\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
-\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
-\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\
-\x35\x37\x33\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\
-\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
-\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\
-\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
-\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
-\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
-\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
-\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\
-\x39\x30\x33\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\
-\x33\x39\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\
-\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\
-\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\
-\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\
-\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
-\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\
-\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\
-\x36\x2e\x31\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\
-\x35\x30\x32\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\
-\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\
-\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\
-\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\
-\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\
-\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\
-\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\
-\x27\x34\x30\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\
-\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\
-\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\
-\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\
-\x73\x76\x67\x3e\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
+\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
+\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
+\x3d\x22\x34\x38\x30\x2c\x32\x35\x36\x20\x33\x38\x34\x2c\x31\x36\
+\x30\x20\x33\x38\x34\x2c\x32\x33\x36\x20\x32\x37\x36\x2c\x32\x33\
+\x36\x20\x32\x37\x36\x2c\x31\x32\x38\x20\x33\x35\x32\x2c\x31\x32\
+\x38\x20\x32\x35\x36\x2c\x33\x32\x20\x31\x36\x30\x2c\x31\x32\x38\
+\x20\x32\x33\x36\x2c\x31\x32\x38\x20\x32\x33\x36\x2c\x32\x33\x36\
+\x20\x31\x32\x38\x2c\x32\x33\x36\x20\x31\x32\x38\x2c\x31\x36\x30\
+\x20\x33\x32\x2c\x32\x35\x36\x20\x31\x32\x38\x2c\x33\x35\x32\x20\
+\x0d\x0a\x09\x31\x32\x38\x2c\x32\x37\x36\x20\x32\x33\x36\x2c\x32\
+\x37\x36\x20\x32\x33\x36\x2c\x33\x38\x34\x20\x31\x36\x30\x2c\x33\
+\x38\x34\x20\x32\x35\x36\x2c\x34\x38\x30\x20\x33\x35\x32\x2c\x33\
+\x38\x34\x20\x32\x37\x35\x2e\x38\x2c\x33\x38\x34\x20\x32\x37\x35\
+\x2e\x34\x2c\x32\x37\x35\x2e\x35\x20\x33\x38\x34\x2c\x32\x37\x35\
+\x2e\x38\x20\x33\x38\x34\x2c\x33\x35\x32\x20\x22\x2f\x3e\x0d\x0a\
+\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x04\x1c\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
@@ -1694,7 +1594,77 @@ qt_resource_data = b"\
\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\
\x3d\x27\x34\x2e\x30\x31\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x07\x80\
+\x00\x00\x04\x3d\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
+\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
+\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
+\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
+\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\x30\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\x70\
+\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
+\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\x6d\
+\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\x72\
+\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\x39\
+\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
+\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
+\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
+\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
+\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
+\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\x79\
+\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\
+\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\
+\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\
+\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
+\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\
+\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\
+\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\
+\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\x79\
+\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\x6c\
+\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\
+\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\
+\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\
+\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\
+\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\
+\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\
+\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\x20\
+\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\x69\
+\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\
+\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\
+\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\
+\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\
+\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\
+\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\
+\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\x34\
+\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\x20\
+\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\
+\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\
+\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x03\x46\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1721,153 +1691,87 @@ qt_resource_data = b"\
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
-\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
-\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x39\x33\x2e\x34\x36\
-\x2c\x32\x34\x39\x2e\x30\x35\x36\x63\x33\x2e\x37\x32\x33\x2d\x30\
-\x2e\x36\x37\x2c\x37\x2e\x35\x38\x39\x2d\x31\x2e\x30\x34\x31\x2c\
-\x31\x31\x2e\x35\x38\x36\x2d\x31\x2e\x30\x34\x31\x4c\x32\x30\x31\
-\x2e\x39\x32\x34\x2c\x32\x34\x38\x68\x31\x30\x33\x2e\x38\x32\x33\
-\x63\x34\x2e\x35\x30\x33\x2c\x30\x2c\x38\x2e\x38\x30\x36\x2d\x30\
-\x2e\x36\x31\x37\x2c\x31\x32\x2e\x39\x30\x38\x2d\x31\x2e\x37\x35\
-\x34\x0d\x0a\x09\x09\x63\x31\x39\x2e\x33\x37\x2d\x35\x2e\x33\x36\
-\x33\x2c\x33\x33\x2e\x33\x34\x35\x2d\x32\x32\x2e\x35\x33\x37\x2c\
-\x33\x33\x2e\x33\x34\x35\x2d\x34\x33\x2e\x36\x36\x33\x76\x2d\x33\
-\x30\x2e\x38\x32\x32\x76\x2d\x35\x36\x2e\x34\x30\x32\x63\x30\x2d\
-\x32\x34\x2e\x38\x33\x32\x2d\x32\x31\x2e\x31\x35\x2d\x34\x33\x2e\
-\x34\x38\x34\x2d\x34\x36\x2e\x32\x38\x39\x2d\x34\x37\x2e\x36\x30\
-\x36\x0d\x0a\x09\x09\x63\x2d\x31\x35\x2e\x39\x33\x31\x2d\x32\x2e\
-\x36\x32\x34\x2d\x33\x39\x2e\x32\x35\x38\x2d\x33\x2e\x38\x32\x37\
-\x2d\x35\x35\x2e\x30\x38\x39\x2d\x33\x2e\x37\x34\x39\x63\x2d\x31\
-\x35\x2e\x38\x32\x39\x2c\x30\x2e\x30\x38\x36\x2d\x33\x30\x2e\x39\
-\x38\x31\x2c\x31\x2e\x34\x30\x34\x2d\x34\x34\x2e\x32\x37\x37\x2c\
-\x33\x2e\x37\x34\x39\x43\x31\x36\x37\x2e\x31\x34\x33\x2c\x37\x34\
-\x2e\x35\x37\x36\x2c\x31\x36\x30\x2c\x38\x38\x2e\x39\x32\x38\x2c\
-\x31\x36\x30\x2c\x31\x31\x35\x2e\x33\x35\x39\x56\x31\x34\x34\x68\
-\x39\x36\x0d\x0a\x09\x09\x76\x31\x36\x48\x31\x32\x38\x2e\x38\x32\
-\x63\x2d\x33\x35\x2e\x36\x32\x38\x2c\x30\x2d\x36\x34\x2e\x35\x33\
-\x38\x2c\x34\x32\x2e\x35\x37\x31\x2d\x36\x34\x2e\x38\x31\x33\x2c\
-\x39\x35\x2e\x32\x34\x32\x43\x36\x34\x2e\x30\x30\x35\x2c\x32\x35\
-\x35\x2e\x34\x39\x35\x2c\x36\x34\x2c\x32\x35\x35\x2e\x37\x34\x37\
-\x2c\x36\x34\x2c\x32\x35\x36\x63\x30\x2c\x39\x2e\x35\x32\x33\x2c\
-\x30\x2e\x39\x34\x2c\x31\x38\x2e\x37\x32\x2c\x32\x2e\x36\x38\x35\
-\x2c\x32\x37\x2e\x34\x30\x34\x0d\x0a\x09\x09\x43\x37\x34\x2e\x36\
-\x34\x38\x2c\x33\x32\x33\x2e\x30\x37\x2c\x39\x39\x2e\x34\x35\x31\
-\x2c\x33\x35\x32\x2c\x31\x32\x38\x2e\x38\x32\x2c\x33\x35\x32\x48\
-\x31\x34\x34\x76\x2d\x32\x2e\x36\x36\x32\x76\x2d\x34\x33\x2e\x32\
-\x37\x33\x43\x31\x34\x34\x2c\x32\x37\x39\x2e\x32\x33\x38\x2c\x31\
-\x36\x34\x2e\x31\x34\x36\x2c\x32\x35\x34\x2e\x33\x33\x32\x2c\x31\
-\x39\x33\x2e\x34\x36\x2c\x32\x34\x39\x2e\x30\x35\x36\x7a\x20\x4d\
-\x32\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x0d\
-\x0a\x09\x09\x63\x2d\x39\x2e\x35\x39\x32\x2c\x30\x2d\x31\x37\x2e\
-\x33\x38\x34\x2d\x37\x2e\x37\x38\x35\x2d\x31\x37\x2e\x33\x38\x34\
-\x2d\x31\x37\x2e\x34\x30\x33\x63\x30\x2d\x39\x2e\x36\x36\x34\x2c\
-\x37\x2e\x37\x37\x34\x2d\x31\x37\x2e\x35\x32\x2c\x31\x37\x2e\x33\
-\x38\x34\x2d\x31\x37\x2e\x35\x32\x63\x39\x2e\x35\x37\x34\x2c\x30\
-\x2c\x31\x37\x2e\x33\x39\x39\x2c\x37\x2e\x38\x35\x35\x2c\x31\x37\
-\x2e\x33\x39\x39\x2c\x31\x37\x2e\x35\x32\x0d\x0a\x09\x09\x43\x32\
-\x32\x31\x2e\x30\x35\x36\x2c\x31\x31\x39\x2e\x32\x31\x37\x2c\x32\
-\x31\x33\x2e\x32\x34\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x2c\x32\
-\x30\x33\x2e\x36\x35\x36\x2c\x31\x32\x37\x2e\x30\x30\x32\x7a\x22\
-\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
-\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\x35\x34\x33\x43\x34\
-\x33\x34\x2e\x37\x38\x2c\x31\x38\x36\x2e\x30\x32\x31\x2c\x34\x31\
-\x31\x2e\x30\x33\x33\x2c\x31\x36\x30\x2c\x33\x38\x33\x2e\x31\x38\
-\x2c\x31\x36\x30\x48\x33\x36\x38\x76\x32\x2e\x36\x32\x36\x76\x33\
-\x38\x2e\x30\x34\x36\x63\x30\x2c\x33\x33\x2e\x39\x31\x35\x2d\x32\
-\x32\x2e\x32\x38\x36\x2c\x35\x38\x2e\x34\x37\x34\x2d\x34\x39\x2e\
-\x34\x38\x39\x2c\x36\x32\x2e\x36\x38\x31\x0d\x0a\x09\x09\x63\x2d\
-\x32\x2e\x37\x33\x37\x2c\x30\x2e\x34\x32\x34\x2d\x35\x2e\x34\x38\
-\x33\x2c\x30\x2e\x36\x34\x36\x2d\x38\x2e\x33\x30\x31\x2c\x30\x2e\
-\x36\x34\x36\x48\x32\x30\x36\x2e\x33\x35\x31\x63\x2d\x34\x2e\x35\
-\x31\x38\x2c\x30\x2d\x38\x2e\x39\x30\x34\x2c\x30\x2e\x35\x38\x34\
-\x2d\x31\x33\x2e\x30\x34\x39\x2c\x31\x2e\x36\x37\x32\x43\x31\x37\
-\x34\x2e\x31\x38\x2c\x32\x37\x30\x2e\x36\x38\x39\x2c\x31\x36\x30\
-\x2c\x32\x38\x36\x2e\x36\x2c\x31\x36\x30\x2c\x33\x30\x37\x2e\x32\
-\x33\x36\x76\x33\x32\x2e\x39\x32\x32\x0d\x0a\x09\x09\x76\x35\x34\
-\x2e\x33\x30\x35\x63\x30\x2c\x32\x34\x2e\x38\x33\x32\x2c\x32\x34\
-\x2e\x39\x37\x37\x2c\x33\x39\x2e\x34\x32\x36\x2c\x34\x39\x2e\x34\
-\x38\x31\x2c\x34\x36\x2e\x35\x35\x31\x63\x32\x39\x2e\x33\x32\x37\
-\x2c\x38\x2e\x35\x33\x31\x2c\x36\x31\x2e\x32\x36\x37\x2c\x31\x30\
-\x2e\x30\x36\x38\x2c\x39\x36\x2e\x33\x36\x36\x2c\x30\x43\x33\x32\
-\x39\x2e\x31\x35\x2c\x34\x33\x34\x2e\x33\x35\x34\x2c\x33\x35\x32\
-\x2c\x34\x32\x30\x2e\x38\x39\x33\x2c\x33\x35\x32\x2c\x33\x39\x34\
-\x2e\x34\x36\x33\x56\x33\x36\x38\x0d\x0a\x09\x09\x68\x2d\x39\x36\
-\x76\x2d\x31\x36\x68\x31\x32\x37\x2e\x31\x38\x63\x32\x35\x2e\x32\
-\x34\x2c\x30\x2c\x34\x37\x2e\x31\x30\x37\x2d\x32\x31\x2e\x33\x36\
-\x35\x2c\x35\x37\x2e\x38\x31\x34\x2d\x35\x32\x2e\x35\x34\x39\x43\
-\x34\x34\x35\x2e\x34\x37\x34\x2c\x32\x38\x36\x2e\x34\x30\x34\x2c\
-\x34\x34\x38\x2c\x32\x37\x31\x2e\x36\x34\x31\x2c\x34\x34\x38\x2c\
-\x32\x35\x36\x0d\x0a\x09\x09\x43\x34\x34\x38\x2c\x32\x34\x34\x2e\
-\x32\x33\x32\x2c\x34\x34\x36\x2e\x35\x36\x37\x2c\x32\x33\x32\x2e\
-\x39\x36\x32\x2c\x34\x34\x33\x2e\x39\x35\x31\x2c\x32\x32\x32\x2e\
-\x35\x34\x33\x7a\x20\x4d\x33\x30\x37\x2e\x38\x36\x37\x2c\x33\x38\
-\x32\x2e\x38\x32\x63\x39\x2e\x35\x39\x2c\x30\x2c\x31\x37\x2e\x33\
-\x38\x31\x2c\x37\x2e\x37\x38\x35\x2c\x31\x37\x2e\x33\x38\x31\x2c\
-\x31\x37\x2e\x34\x0d\x0a\x09\x09\x63\x30\x2c\x39\x2e\x36\x35\x2d\
-\x37\x2e\x37\x39\x31\x2c\x31\x37\x2e\x35\x32\x31\x2d\x31\x37\x2e\
-\x33\x38\x31\x2c\x31\x37\x2e\x35\x32\x31\x63\x2d\x39\x2e\x35\x37\
-\x37\x2c\x30\x2d\x31\x37\x2e\x33\x39\x39\x2d\x37\x2e\x38\x37\x31\
-\x2d\x31\x37\x2e\x33\x39\x39\x2d\x31\x37\x2e\x35\x32\x31\x43\x32\
-\x39\x30\x2e\x34\x36\x38\x2c\x33\x39\x30\x2e\x35\x39\x2c\x32\x39\
-\x38\x2e\x32\x37\x34\x2c\x33\x38\x32\x2e\x38\x32\x2c\x33\x30\x37\
-\x2e\x38\x36\x37\x2c\x33\x38\x32\x2e\x38\x32\x7a\x22\x2f\x3e\x0d\
-\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\x0c\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
+\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
+\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
+\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
+\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
+\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x33\x37\x2e\x35\
+\x2c\x33\x38\x36\x2e\x36\x4c\x33\x30\x36\x2e\x39\x2c\x32\x35\x36\
+\x6c\x31\x33\x30\x2e\x36\x2d\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\
+\x31\x2d\x31\x34\x2e\x31\x2c\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\
+\x2c\x30\x2d\x35\x30\x2e\x39\x63\x2d\x31\x34\x2e\x31\x2d\x31\x34\
+\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\x2d\x35\x30\x2e\
+\x39\x2c\x30\x4c\x32\x35\x36\x2c\x32\x30\x35\x2e\x31\x4c\x31\x32\
+\x35\x2e\x34\x2c\x37\x34\x2e\x35\x0d\x0a\x09\x63\x2d\x31\x34\x2e\
+\x31\x2d\x31\x34\x2e\x31\x2d\x33\x36\x2e\x38\x2d\x31\x34\x2e\x31\
+\x2d\x35\x30\x2e\x39\x2c\x30\x63\x2d\x31\x34\x2e\x31\x2c\x31\x34\
+\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\x35\
+\x30\x2e\x39\x4c\x32\x30\x35\x2e\x31\x2c\x32\x35\x36\x4c\x37\x34\
+\x2e\x35\x2c\x33\x38\x36\x2e\x36\x63\x2d\x31\x34\x2e\x31\x2c\x31\
+\x34\x2e\x31\x2d\x31\x34\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x30\x2c\
+\x35\x30\x2e\x39\x0d\x0a\x09\x63\x31\x34\x2e\x31\x2c\x31\x34\x2e\
+\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\x39\
+\x2c\x30\x4c\x32\x35\x36\x2c\x33\x30\x36\x2e\x39\x6c\x31\x33\x30\
+\x2e\x36\x2c\x31\x33\x30\x2e\x36\x63\x31\x34\x2e\x31\x2c\x31\x34\
+\x2e\x31\x2c\x33\x36\x2e\x38\x2c\x31\x34\x2e\x31\x2c\x35\x30\x2e\
+\x39\x2c\x30\x43\x34\x35\x31\x2e\x35\x2c\x34\x32\x33\x2e\x34\x2c\
+\x34\x35\x31\x2e\x35\x2c\x34\x30\x30\x2e\x36\x2c\x34\x33\x37\x2e\
+\x35\x2c\x33\x38\x36\x2e\x36\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\
+\x76\x67\x3e\x0d\x0a\
+\x00\x00\x01\xdd\
+\x00\
+\x00\x06\xe4\x78\x9c\xcd\x54\x4d\x6f\x9b\x40\x10\x3d\x13\x29\xff\
+\x61\xba\xb7\x4a\xec\x17\xc4\xd4\xa6\xa6\x51\xfd\x21\xcb\x52\x9a\
+\x58\x6a\xea\xaa\xa7\x0a\xc3\x16\x50\x28\x20\x58\xc0\xce\xaf\xef\
+\xee\x92\x54\x51\x95\xfa\x18\xfb\xb0\x33\xda\x79\x6f\xde\xbc\x65\
+\x24\xa6\xd7\xfb\xdf\x39\x74\xa2\x6e\xb2\xb2\x08\x10\x27\x0c\x81\
+\x28\xa2\x32\xce\x8a\x24\x40\xad\xfc\x85\xc7\xe8\xfa\xd3\xe5\xc5\
+\xf4\x1d\xc6\xb0\x12\x85\xa8\x43\x59\xd6\x3e\x7c\x8e\xcb\x9d\x80\
+\x75\x9e\xb7\x8d\x34\x25\xe0\x1e\x71\x08\xb7\xe1\xeb\x76\x05\xcb\
+\x7d\x55\xd6\x12\x36\x79\x9b\xe0\x75\x01\xc4\x14\xb7\xc3\x10\x1f\
+\x3c\xc2\x18\xcc\xda\x2c\x8f\x81\xbd\x07\xc0\xd8\xe8\x2f\xee\xe6\
+\xf7\x3f\x36\x4b\x68\xba\x04\x36\xdf\x66\x37\xeb\x39\x20\x4c\xe9\
+\x77\x77\x4e\xe9\xe2\x7e\x61\x24\x38\xe1\x94\x2e\x6f\x11\xa0\x54\
+\xca\xca\xa7\xb4\xef\x7b\xd2\xbb\xa4\xac\x13\xba\xaa\xc3\x2a\xcd\
+\xa2\x86\x2a\x22\xd5\x44\xd5\x44\x95\x18\xe7\x24\x96\x31\xd2\x33\
+\xb4\xf4\x8b\xa7\x72\x04\x59\x1c\xa0\x9b\xf0\x20\xea\x9f\xea\xa2\
+\xbe\x44\xd1\x04\xaf\x48\x3b\x8c\x31\x2d\xf5\x44\xf1\xf7\x79\x56\
+\x3c\xbc\x46\xe4\x93\xc9\x84\x1a\x54\x51\x03\xc4\xaa\x3d\x82\xc3\
+\x90\x2f\x2f\x2c\xe8\xb3\x58\xa6\x01\x1a\x71\x47\x03\xa9\xc8\x92\
+\x54\xfe\xbd\x76\x99\xe8\x67\xa5\xee\x02\x06\xaa\xa6\x0f\x82\x46\
+\x1e\x72\x11\x20\x51\x84\xbb\x5c\xe0\x5d\x18\x3d\x24\x75\xd9\x16\
+\xb1\x5f\x88\x1e\x5e\x30\x3f\x1a\x6f\x7e\x53\x85\x91\xa2\x57\xb5\
+\x68\x44\xdd\x09\xf3\xea\x44\x05\x6b\x88\xd6\xb4\x0a\x65\x0a\xea\
+\xd1\x5f\xb8\xc7\x6c\x3e\x72\x89\x1b\x31\xdb\x25\x1f\xb0\x6b\x7b\
+\x2a\xaa\xa3\x73\x8a\x47\x8c\x8c\x22\xac\x00\x9b\xe9\x22\x76\xf1\
+\x13\xdc\x0d\x10\x33\x98\xfb\xdc\xa0\x73\x6a\x00\xd3\xa2\x4b\xb6\
+\x51\xd4\x67\x6b\xe6\x3c\xea\x4f\x60\x59\xf4\x1f\x1f\xce\x78\x7c\
+\x16\x3e\xae\xb8\x77\x3a\x1f\x53\xfa\xff\x25\x39\x63\xfe\x26\xa6\
+\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x71\x6c\x49\x57\x6c\
+\xf2\x26\xa6\xcc\x9c\x23\x4b\x3a\x07\x1f\x7a\x49\x27\xf3\x31\x2c\
+\xe9\x39\xaa\x7f\xb6\xca\x7f\x00\x99\x18\x96\x19\
+\x00\x00\x01\x1c\
\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
-\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x30\x2c\
-\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
-\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
-\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
-\x20\x20\x2d\x2d\x3e\x0d\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\
-\x20\x73\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\
-\x57\x33\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\
-\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\
-\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\
-\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
-\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
-\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x43\x68\x65\x63\x6b\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\x79\
-\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\
-\x78\x3d\x22\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\x65\x6e\
-\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3d\
-\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x20\
-\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\
-\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
-\x4d\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x63\x2d\x30\
-\x2e\x34\x33\x35\x2c\x30\x2d\x30\x2e\x38\x34\x37\x2d\x30\x2e\x32\
-\x30\x33\x2d\x31\x2e\x31\x31\x31\x2d\x30\x2e\x35\x35\x33\x4c\x33\
-\x2e\x36\x31\x2c\x31\x31\x2e\x37\x32\x34\x63\x2d\x30\x2e\x34\x36\
-\x35\x2d\x30\x2e\x36\x31\x33\x2d\x30\x2e\x33\x34\x34\x2d\x31\x2e\
-\x34\x38\x36\x2c\x30\x2e\x32\x37\x2d\x31\x2e\x39\x35\x31\x0d\x0a\
-\x09\x63\x30\x2e\x36\x31\x35\x2d\x30\x2e\x34\x36\x37\x2c\x31\x2e\
-\x34\x38\x38\x2d\x30\x2e\x33\x34\x34\x2c\x31\x2e\x39\x35\x33\x2c\
-\x30\x2e\x32\x37\x6c\x32\x2e\x33\x35\x31\x2c\x33\x2e\x31\x30\x34\
-\x6c\x35\x2e\x39\x31\x31\x2d\x39\x2e\x34\x39\x32\x63\x30\x2e\x34\
-\x30\x37\x2d\x30\x2e\x36\x35\x32\x2c\x31\x2e\x32\x36\x37\x2d\x30\
-\x2e\x38\x35\x32\x2c\x31\x2e\x39\x32\x31\x2d\x30\x2e\x34\x34\x35\
-\x0d\x0a\x09\x63\x30\x2e\x36\x35\x33\x2c\x30\x2e\x34\x30\x36\x2c\
-\x30\x2e\x38\x35\x34\x2c\x31\x2e\x32\x36\x36\x2c\x30\x2e\x34\x34\
-\x36\x2c\x31\x2e\x39\x32\x4c\x39\x2e\x34\x37\x38\x2c\x31\x36\x2e\
-\x33\x34\x63\x2d\x30\x2e\x32\x34\x32\x2c\x30\x2e\x33\x39\x31\x2d\
-\x30\x2e\x36\x36\x31\x2c\x30\x2e\x36\x33\x35\x2d\x31\x2e\x31\x32\
-\x2c\x30\x2e\x36\x35\x36\x43\x38\x2e\x33\x33\x36\x2c\x31\x36\x2e\
-\x39\x39\x38\x2c\x38\x2e\x33\x31\x36\x2c\x31\x36\x2e\x39\x39\x38\
-\x2c\x38\x2e\x32\x39\x34\x2c\x31\x36\x2e\x39\x39\x38\x7a\x22\x2f\
-\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x04\x64\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\
+\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\
+\x70\x78\x22\x0a\x20\x20\x20\x20\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x34\x38\x20\x30\x20\x30\x20\x34\x38\x20\x34\
+\x38\x20\x34\x38\x29\x27\x3e\x0a\x20\x20\x3c\x70\x61\x74\x68\x20\
+\x64\x3d\x22\x4d\x30\x20\x30\x76\x32\x68\x2e\x35\x63\x30\x2d\x2e\
+\x35\x35\x2e\x34\x35\x2d\x31\x20\x31\x2d\x31\x68\x31\x2e\x35\x76\
+\x35\x2e\x35\x63\x30\x20\x2e\x32\x38\x2d\x2e\x32\x32\x2e\x35\x2d\
+\x2e\x35\x2e\x35\x68\x2d\x2e\x35\x76\x31\x68\x34\x76\x2d\x31\x68\
+\x2d\x2e\x35\x63\x2d\x2e\x32\x38\x20\x30\x2d\x2e\x35\x2d\x2e\x32\
+\x32\x2d\x2e\x35\x2d\x2e\x35\x76\x2d\x35\x2e\x35\x68\x31\x2e\x35\
+\x63\x2e\x35\x35\x20\x30\x20\x31\x20\x2e\x34\x35\x20\x31\x20\x31\
+\x68\x2e\x35\x76\x2d\x32\x68\x2d\x38\x7a\x22\x20\x2f\x3e\x0a\x3c\
+\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
+\x00\x00\x05\x27\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1899,48 +1803,60 @@ qt_resource_data = b"\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\x09\
-\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x31\
-\x37\x36\x63\x2d\x34\x34\x2e\x30\x30\x34\x2c\x30\x2d\x38\x30\x2e\
-\x30\x30\x31\x2c\x33\x36\x2d\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\
-\x63\x30\x2c\x34\x34\x2e\x30\x30\x34\x2c\x33\x35\x2e\x39\x39\x37\
-\x2c\x38\x30\x2c\x38\x30\x2e\x30\x30\x31\x2c\x38\x30\x63\x34\x34\
-\x2e\x30\x30\x35\x2c\x30\x2c\x37\x39\x2e\x39\x39\x39\x2d\x33\x35\
-\x2e\x39\x39\x36\x2c\x37\x39\x2e\x39\x39\x39\x2d\x38\x30\x0d\x0a\
-\x09\x09\x09\x43\x33\x33\x35\x2e\x39\x39\x39\x2c\x32\x31\x32\x2c\
-\x33\x30\x30\x2e\x30\x30\x35\x2c\x31\x37\x36\x2c\x32\x35\x36\x2c\
-\x31\x37\x36\x7a\x20\x4d\x34\x34\x36\x2e\x39\x33\x38\x2c\x32\x33\
-\x34\x2e\x36\x36\x37\x63\x2d\x39\x2e\x36\x30\x35\x2d\x38\x38\x2e\
-\x35\x33\x31\x2d\x38\x31\x2e\x30\x37\x34\x2d\x31\x36\x30\x2d\x31\
-\x36\x39\x2e\x36\x30\x35\x2d\x31\x36\x39\x2e\x35\x39\x39\x56\x33\
-\x32\x68\x2d\x34\x32\x2e\x36\x36\x36\x76\x33\x33\x2e\x30\x36\x37\
-\x0d\x0a\x09\x09\x09\x63\x2d\x38\x38\x2e\x35\x33\x31\x2c\x39\x2e\
-\x35\x39\x39\x2d\x31\x36\x30\x2c\x38\x31\x2e\x30\x36\x38\x2d\x31\
-\x36\x39\x2e\x36\x30\x34\x2c\x31\x36\x39\x2e\x35\x39\x39\x48\x33\
-\x32\x76\x34\x32\x2e\x36\x36\x37\x68\x33\x33\x2e\x30\x36\x32\x63\
-\x39\x2e\x36\x30\x34\x2c\x38\x38\x2e\x35\x33\x31\x2c\x38\x31\x2e\
-\x30\x37\x32\x2c\x31\x36\x30\x2c\x31\x36\x39\x2e\x36\x30\x34\x2c\
-\x31\x36\x39\x2e\x36\x30\x34\x56\x34\x38\x30\x68\x34\x32\x2e\x36\
-\x36\x36\x76\x2d\x33\x33\x2e\x30\x36\x32\x0d\x0a\x09\x09\x09\x63\
-\x38\x38\x2e\x35\x33\x31\x2d\x39\x2e\x36\x30\x34\x2c\x31\x36\x30\
-\x2d\x38\x31\x2e\x30\x37\x33\x2c\x31\x36\x39\x2e\x36\x30\x35\x2d\
-\x31\x36\x39\x2e\x36\x30\x34\x48\x34\x38\x30\x76\x2d\x34\x32\x2e\
-\x36\x36\x37\x48\x34\x34\x36\x2e\x39\x33\x38\x7a\x20\x4d\x32\x35\
-\x36\x2c\x34\x30\x35\x2e\x33\x33\x33\x63\x2d\x38\x32\x2e\x31\x33\
-\x37\x2c\x30\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x36\x37\x2e\x31\
-\x39\x38\x2d\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\
-\x33\x33\x0d\x0a\x09\x09\x09\x63\x30\x2d\x38\x32\x2e\x31\x33\x36\
-\x2c\x36\x37\x2e\x31\x39\x37\x2d\x31\x34\x39\x2e\x33\x33\x33\x2c\
-\x31\x34\x39\x2e\x33\x33\x34\x2d\x31\x34\x39\x2e\x33\x33\x33\x63\
-\x38\x32\x2e\x31\x33\x35\x2c\x30\x2c\x31\x34\x39\x2e\x33\x33\x32\
-\x2c\x36\x37\x2e\x31\x39\x38\x2c\x31\x34\x39\x2e\x33\x33\x32\x2c\
-\x31\x34\x39\x2e\x33\x33\x33\x43\x34\x30\x35\x2e\x33\x33\x32\x2c\
-\x33\x33\x38\x2e\x31\x33\x35\x2c\x33\x33\x38\x2e\x31\x33\x35\x2c\
-\x34\x30\x35\x2e\x33\x33\x33\x2c\x32\x35\x36\x2c\x34\x30\x35\x2e\
-\x33\x33\x33\x7a\x0d\x0a\x09\x09\x09\x22\x2f\x3e\x0d\x0a\x09\x3c\
-\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\
-\x3e\x0d\x0a\
-\x00\x00\x03\x26\
+\x22\x49\x63\x6f\x6e\x5f\x31\x32\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
+\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\
+\x35\x36\x2c\x36\x34\x43\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\
+\x2c\x36\x34\x2c\x31\x35\x30\x2e\x34\x30\x31\x2c\x36\x34\x2c\x32\
+\x35\x36\x63\x30\x2c\x31\x30\x35\x2e\x36\x30\x34\x2c\x38\x36\x2e\
+\x34\x30\x31\x2c\x31\x39\x32\x2c\x31\x39\x32\x2c\x31\x39\x32\x63\
+\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x38\
+\x36\x34\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\
+\x38\x2e\x35\x33\x31\x2d\x33\x2e\x31\x39\x38\x2d\x31\x36\x2d\x38\
+\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\x33\x33\x63\x2d\x35\x2e\x33\
+\x33\x33\x2d\x35\x2e\x33\x33\x34\x2d\x38\x2e\x35\x33\x31\x2d\x31\
+\x32\x2e\x38\x30\x33\x2d\x38\x2e\x35\x33\x31\x2d\x32\x31\x2e\x33\
+\x33\x34\x63\x30\x2d\x31\x38\x2e\x31\x33\x35\x2c\x31\x33\x2e\x38\
+\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x68\x33\x38\x2e\x33\
+\x39\x36\x0d\x0a\x09\x09\x09\x63\x35\x38\x2e\x36\x36\x37\x2c\x30\
+\x2c\x31\x30\x36\x2e\x36\x36\x37\x2d\x34\x38\x2c\x31\x30\x36\x2e\
+\x36\x36\x37\x2d\x31\x30\x36\x2e\x36\x36\x36\x43\x34\x34\x38\x2c\
+\x31\x34\x30\x2e\x38\x30\x32\x2c\x33\x36\x31\x2e\x36\x30\x34\x2c\
+\x36\x34\x2c\x32\x35\x36\x2c\x36\x34\x7a\x20\x4d\x31\x33\x38\x2e\
+\x36\x36\x37\x2c\x32\x35\x36\x63\x2d\x31\x38\x2e\x31\x33\x36\x2c\
+\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\
+\x32\x73\x31\x33\x2e\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\
+\x32\x0d\x0a\x09\x09\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\
+\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x53\
+\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x35\x36\x2c\x31\x33\x38\x2e\
+\x36\x36\x37\x2c\x32\x35\x36\x7a\x20\x4d\x32\x30\x32\x2e\x36\x36\
+\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\x2e\x31\x33\
+\x36\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\
+\x2d\x33\x32\x63\x30\x2d\x31\x38\x2e\x31\x33\x36\x2c\x31\x33\x2e\
+\x38\x36\x34\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\
+\x09\x63\x31\x38\x2e\x31\x33\x35\x2c\x30\x2c\x33\x32\x2c\x31\x33\
+\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x32\x33\x34\x2e\x36\
+\x36\x37\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x32\x32\x30\x2e\x38\
+\x30\x32\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x32\x30\x32\x2e\x36\
+\x36\x37\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\x33\x30\x39\
+\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x63\x2d\x31\x38\
+\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\x2e\x38\x36\x35\
+\x2d\x33\x32\x2d\x33\x32\x0d\x0a\x09\x09\x09\x63\x30\x2d\x31\x38\
+\x2e\x31\x33\x36\x2c\x31\x33\x2e\x38\x36\x35\x2d\x33\x32\x2c\x33\
+\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\x36\x2c\x30\x2c\x33\x32\
+\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\x2c\x33\x32\x43\x33\x34\
+\x31\x2e\x33\x33\x33\x2c\x31\x35\x36\x2e\x38\x30\x32\x2c\x33\x32\
+\x37\x2e\x34\x36\x39\x2c\x31\x37\x30\x2e\x36\x36\x37\x2c\x33\x30\
+\x39\x2e\x33\x33\x33\x2c\x31\x37\x30\x2e\x36\x36\x37\x7a\x20\x4d\
+\x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x0d\x0a\x09\x09\x09\
+\x63\x2d\x31\x38\x2e\x31\x33\x35\x2c\x30\x2d\x33\x32\x2d\x31\x33\
+\x2e\x38\x36\x34\x2d\x33\x32\x2d\x33\x32\x73\x31\x33\x2e\x38\x36\
+\x35\x2d\x33\x32\x2c\x33\x32\x2d\x33\x32\x63\x31\x38\x2e\x31\x33\
+\x36\x2c\x30\x2c\x33\x32\x2c\x31\x33\x2e\x38\x36\x34\x2c\x33\x32\
+\x2c\x33\x32\x53\x33\x39\x31\x2e\x34\x36\x39\x2c\x32\x35\x36\x2c\
+\x33\x37\x33\x2e\x33\x33\x33\x2c\x32\x35\x36\x7a\x22\x2f\x3e\x0d\
+\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
+\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x02\x7d\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -1971,35 +1887,95 @@ qt_resource_data = b"\
\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
-\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
-\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\x33\x38\
-\x38\x63\x2d\x37\x32\x2e\x35\x39\x37\x2c\x30\x2d\x31\x33\x32\x2d\
-\x35\x39\x2e\x34\x30\x35\x2d\x31\x33\x32\x2d\x31\x33\x32\x63\x30\
-\x2d\x37\x32\x2e\x36\x30\x31\x2c\x35\x39\x2e\x34\x30\x33\x2d\x31\
-\x33\x32\x2c\x31\x33\x32\x2d\x31\x33\x32\x63\x33\x36\x2e\x33\x2c\
-\x30\x2c\x36\x39\x2e\x32\x39\x39\x2c\x31\x35\x2e\x34\x2c\x39\x32\
-\x2e\x34\x30\x36\x2c\x33\x39\x2e\x36\x30\x31\x4c\x32\x37\x38\x2c\
-\x32\x33\x34\x68\x31\x35\x34\x56\x38\x30\x0d\x0a\x09\x09\x6c\x2d\
-\x35\x31\x2e\x36\x39\x38\x2c\x35\x31\x2e\x37\x30\x32\x43\x33\x34\
-\x38\x2e\x34\x30\x36\x2c\x39\x39\x2e\x37\x39\x38\x2c\x33\x30\x34\
-\x2e\x34\x30\x36\x2c\x38\x30\x2c\x32\x35\x36\x2c\x38\x30\x63\x2d\
-\x39\x36\x2e\x37\x39\x37\x2c\x30\x2d\x31\x37\x36\x2c\x37\x39\x2e\
-\x32\x30\x33\x2d\x31\x37\x36\x2c\x31\x37\x36\x73\x37\x38\x2e\x30\
-\x39\x34\x2c\x31\x37\x36\x2c\x31\x37\x36\x2c\x31\x37\x36\x0d\x0a\
-\x09\x09\x63\x38\x31\x2e\x30\x34\x35\x2c\x30\x2c\x31\x34\x38\x2e\
-\x32\x38\x37\x2d\x35\x34\x2e\x31\x33\x34\x2c\x31\x36\x39\x2e\x34\
-\x30\x31\x2d\x31\x32\x38\x48\x33\x37\x38\x2e\x38\x35\x43\x33\x36\
-\x30\x2e\x31\x30\x35\x2c\x33\x35\x33\x2e\x35\x36\x31\x2c\x33\x31\
-\x31\x2e\x37\x31\x32\x2c\x33\x38\x38\x2c\x32\x35\x36\x2c\x33\x38\
-\x38\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\xe6\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
+\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
+\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x38\x35\
+\x2c\x32\x37\x37\x2e\x33\x37\x35\x68\x32\x35\x39\x2e\x37\x30\x34\
+\x4c\x32\x32\x35\x2e\x30\x30\x32\x2c\x33\x39\x37\x2e\x30\x37\x37\
+\x4c\x32\x35\x36\x2c\x34\x32\x37\x6c\x31\x37\x31\x2d\x31\x37\x31\
+\x4c\x32\x35\x36\x2c\x38\x35\x6c\x2d\x32\x39\x2e\x39\x32\x32\x2c\
+\x32\x39\x2e\x39\x32\x34\x6c\x31\x31\x38\x2e\x36\x32\x36\x2c\x31\
+\x31\x39\x2e\x37\x30\x31\x48\x38\x35\x56\x32\x37\x37\x2e\x33\x37\
+\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
+\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x04\x4e\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x4c\x20\x31\
+\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\x39\x4c\
+\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\x35\x30\x32\
+\x32\x4c\x20\x34\x30\x2e\x36\x37\x39\x34\x20\x2d\x32\x32\x2e\x35\
+\x32\x38\x31\x4c\x20\x33\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\
+\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\x6c\x3d\x27\x6e\x6f\x6e\x65\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\x27\x23\x30\x30\x30\x30\x30\
+\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x63\x61\
+\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\
+\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3d\x27\x72\x6f\x75\x6e\x64\
+\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\
+\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\x33\x37\x35\x27\x20\x73\x74\
+\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3d\x27\x32\x2e\x35\x30\
+\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
+\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
+\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
+\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
+\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
+\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\x35\x37\x33\x35\x27\x20\x63\
+\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\x27\x20\x66\x69\x6c\x6c\x3d\
+\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\
+\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\
+\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\
+\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\
+\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\
+\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\
+\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\x39\x30\x33\x36\x27\x20\x63\
+\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\x33\x39\x27\x20\x66\x69\x6c\
+\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\
+\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
+\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\x30\x20\
+\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\x36\x39\
+\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\
+\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\x36\x2e\x31\x35\x32\x33\x27\
+\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\x35\x30\x32\x32\x27\x20\x66\
+\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x72\x3d\
+\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\
+\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\
+\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x30\x20\
+\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\x2e\x34\x36\
+\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\x0a\x3c\x63\
+\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x34\x30\x2e\x36\x37\x39\
+\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\x32\x2e\x35\x32\x38\x31\x27\
+\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\
+\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\x67\
+\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\
+\x00\x00\x03\x52\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
@@ -2011,54 +1987,45 @@ qt_resource_data = b"\
\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x43\x68\x65\x76\x72\x6f\x6e\x5f\x63\x69\x72\x63\x6c\x65\
-\x64\x5f\x72\x69\x67\x68\x74\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\
-\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
-\x78\x6c\x69\x6e\x6b\x22\x0d\x0a\x09\x20\x78\x3d\x22\x30\x70\x78\
-\x22\x20\x79\x3d\x22\x30\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\
-\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\
-\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
-\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\
-\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\
-\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x74\x72\
-\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\
-\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\
-\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\x31\x2c\x31\
-\x30\x4c\x38\x2e\x36\x39\x38\x2c\x37\x2e\x34\x39\x34\x63\x2d\x30\
-\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x38\x2d\x30\x2e\x31\x39\x36\
-\x2d\x30\x2e\x35\x31\x39\x2c\x30\x2d\x30\x2e\x37\x31\x38\x63\x30\
-\x2e\x31\x39\x36\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x35\x31\x35\
-\x2d\x30\x2e\x31\x39\x37\x2c\x30\x2e\x37\x31\x2c\x30\x6c\x32\x2e\
-\x38\x30\x37\x2c\x32\x2e\x38\x36\x34\x0d\x0a\x09\x63\x30\x2e\x31\
-\x39\x36\x2c\x30\x2e\x31\x39\x39\x2c\x30\x2e\x31\x39\x36\x2c\x30\
-\x2e\x35\x32\x2c\x30\x2c\x30\x2e\x37\x31\x37\x6c\x2d\x32\x2e\x38\
-\x30\x37\x2c\x32\x2e\x38\x36\x34\x63\x2d\x30\x2e\x31\x39\x35\x2c\
-\x30\x2e\x31\x39\x39\x2d\x30\x2e\x35\x31\x34\x2c\x30\x2e\x31\x39\
-\x38\x2d\x30\x2e\x37\x31\x2c\x30\x63\x2d\x30\x2e\x31\x39\x36\x2d\
-\x30\x2e\x31\x39\x37\x2d\x30\x2e\x31\x39\x36\x2d\x30\x2e\x35\x31\
-\x38\x2c\x30\x2d\x30\x2e\x37\x31\x37\x4c\x31\x31\x2c\x31\x30\x7a\
-\x20\x4d\x31\x30\x2c\x30\x2e\x34\x0d\x0a\x09\x63\x35\x2e\x33\x30\
-\x32\x2c\x30\x2c\x39\x2e\x36\x2c\x34\x2e\x32\x39\x38\x2c\x39\x2e\
-\x36\x2c\x39\x2e\x36\x63\x30\x2c\x35\x2e\x33\x30\x33\x2d\x34\x2e\
-\x32\x39\x38\x2c\x39\x2e\x36\x2d\x39\x2e\x36\x2c\x39\x2e\x36\x53\
-\x30\x2e\x34\x2c\x31\x35\x2e\x33\x30\x33\x2c\x30\x2e\x34\x2c\x31\
-\x30\x43\x30\x2e\x34\x2c\x34\x2e\x36\x39\x38\x2c\x34\x2e\x36\x39\
-\x38\x2c\x30\x2e\x34\x2c\x31\x30\x2c\x30\x2e\x34\x7a\x20\x4d\x31\
-\x30\x2c\x31\x38\x2e\x33\x35\x34\x0d\x0a\x09\x63\x34\x2e\x36\x31\
-\x33\x2c\x30\x2c\x38\x2e\x33\x35\x34\x2d\x33\x2e\x37\x34\x2c\x38\
-\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x30\x2d\x34\x2e\x36\
-\x31\x34\x2d\x33\x2e\x37\x34\x31\x2d\x38\x2e\x33\x35\x34\x2d\x38\
-\x2e\x33\x35\x34\x2d\x38\x2e\x33\x35\x34\x63\x2d\x34\x2e\x36\x31\
-\x35\x2c\x30\x2d\x38\x2e\x33\x35\x34\x2c\x33\x2e\x37\x34\x2d\x38\
-\x2e\x33\x35\x34\x2c\x38\x2e\x33\x35\x34\x0d\x0a\x09\x43\x31\x2e\
-\x36\x34\x35\x2c\x31\x34\x2e\x36\x31\x34\x2c\x35\x2e\x33\x38\x35\
-\x2c\x31\x38\x2e\x33\x35\x34\x2c\x31\x30\x2c\x31\x38\x2e\x33\x35\
-\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\
-\x76\x67\x3e\x0d\x0a\
-\x00\x00\x03\xeb\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\
+\x64\x3d\x22\x4d\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x48\
+\x32\x35\x36\x2e\x30\x30\x36\x6c\x2d\x34\x32\x2e\x36\x36\x38\x2d\
+\x34\x38\x48\x37\x34\x2e\x36\x36\x36\x43\x35\x31\x2e\x31\x39\x37\
+\x2c\x39\x36\x2c\x33\x32\x2c\x31\x31\x35\x2e\x31\x39\x38\x2c\x33\
+\x32\x2c\x31\x33\x38\x2e\x36\x36\x37\x76\x32\x33\x34\x2e\x36\x36\
+\x36\x43\x33\x32\x2c\x33\x39\x36\x2e\x38\x30\x32\x2c\x35\x31\x2e\
+\x31\x39\x37\x2c\x34\x31\x36\x2c\x37\x34\x2e\x36\x36\x36\x2c\x34\
+\x31\x36\x68\x33\x36\x32\x2e\x36\x36\x38\x0d\x0a\x09\x43\x34\x36\
+\x30\x2e\x38\x30\x33\x2c\x34\x31\x36\x2c\x34\x38\x30\x2c\x33\x39\
+\x36\x2e\x38\x30\x32\x2c\x34\x38\x30\x2c\x33\x37\x33\x2e\x33\x33\
+\x33\x56\x31\x38\x36\x2e\x36\x36\x37\x43\x34\x38\x30\x2c\x31\x36\
+\x33\x2e\x31\x39\x38\x2c\x34\x36\x30\x2e\x38\x30\x33\x2c\x31\x34\
+\x34\x2c\x34\x33\x37\x2e\x33\x33\x34\x2c\x31\x34\x34\x7a\x20\x4d\
+\x34\x34\x38\x2c\x33\x37\x33\x2e\x33\x33\x33\x0d\x0a\x09\x63\x30\
+\x2c\x35\x2e\x37\x38\x32\x2d\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\
+\x36\x36\x37\x2d\x31\x30\x2e\x36\x36\x36\x2c\x31\x30\x2e\x36\x36\
+\x37\x48\x37\x34\x2e\x36\x36\x36\x43\x36\x38\x2e\x38\x38\x34\x2c\
+\x33\x38\x34\x2c\x36\x34\x2c\x33\x37\x39\x2e\x31\x31\x35\x2c\x36\
+\x34\x2c\x33\x37\x33\x2e\x33\x33\x33\x56\x31\x37\x36\x68\x33\x37\
+\x33\x2e\x33\x33\x34\x63\x35\x2e\x37\x38\x31\x2c\x30\x2c\x31\x30\
+\x2e\x36\x36\x36\x2c\x34\x2e\x38\x38\x35\x2c\x31\x30\x2e\x36\x36\
+\x36\x2c\x31\x30\x2e\x36\x36\x37\x0d\x0a\x09\x56\x33\x37\x33\x2e\
+\x33\x33\x33\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
+\x0a\
+\x00\x00\x03\x22\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -2085,60 +2052,39 @@ qt_resource_data = b"\
\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
-\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x73\
-\x74\x79\x6c\x65\x3d\x22\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\
-\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
-\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
-\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x67\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\
-\x4d\x32\x35\x36\x2c\x31\x32\x38\x63\x2d\x38\x31\x2e\x39\x2c\x30\
-\x2d\x31\x34\x35\x2e\x37\x2c\x34\x38\x2e\x38\x2d\x32\x32\x34\x2c\
-\x31\x32\x38\x63\x36\x37\x2e\x34\x2c\x36\x37\x2e\x37\x2c\x31\x32\
-\x34\x2c\x31\x32\x38\x2c\x32\x32\x34\x2c\x31\x32\x38\x63\x39\x39\
-\x2e\x39\x2c\x30\x2c\x31\x37\x33\x2e\x34\x2d\x37\x36\x2e\x34\x2c\
-\x32\x32\x34\x2d\x31\x32\x36\x2e\x36\x0d\x0a\x09\x09\x43\x34\x32\
-\x38\x2e\x32\x2c\x31\x39\x38\x2e\x36\x2c\x33\x35\x34\x2e\x38\x2c\
-\x31\x32\x38\x2c\x32\x35\x36\x2c\x31\x32\x38\x7a\x20\x4d\x32\x35\
-\x36\x2c\x33\x34\x37\x2e\x33\x63\x2d\x34\x39\x2e\x34\x2c\x30\x2d\
-\x38\x39\x2e\x36\x2d\x34\x31\x2d\x38\x39\x2e\x36\x2d\x39\x31\x2e\
-\x33\x63\x30\x2d\x35\x30\x2e\x34\x2c\x34\x30\x2e\x32\x2d\x39\x31\
-\x2e\x33\x2c\x38\x39\x2e\x36\x2d\x39\x31\x2e\x33\x73\x38\x39\x2e\
-\x36\x2c\x34\x31\x2c\x38\x39\x2e\x36\x2c\x39\x31\x2e\x33\x0d\x0a\
-\x09\x09\x43\x33\x34\x35\x2e\x36\x2c\x33\x30\x36\x2e\x34\x2c\x33\
-\x30\x35\x2e\x34\x2c\x33\x34\x37\x2e\x33\x2c\x32\x35\x36\x2c\x33\
-\x34\x37\x2e\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x67\x3e\x0d\x0a\
-\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\x35\x36\x2c\
-\x32\x32\x34\x63\x30\x2d\x37\x2e\x39\x2c\x32\x2e\x39\x2d\x31\x35\
-\x2e\x31\x2c\x37\x2e\x36\x2d\x32\x30\x2e\x37\x63\x2d\x32\x2e\x35\
-\x2d\x30\x2e\x34\x2d\x35\x2d\x30\x2e\x36\x2d\x37\x2e\x36\x2d\x30\
-\x2e\x36\x63\x2d\x32\x38\x2e\x38\x2c\x30\x2d\x35\x32\x2e\x33\x2c\
-\x32\x33\x2e\x39\x2d\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x63\x30\
-\x2c\x32\x39\x2e\x34\x2c\x32\x33\x2e\x35\x2c\x35\x33\x2e\x33\x2c\
-\x35\x32\x2e\x33\x2c\x35\x33\x2e\x33\x0d\x0a\x09\x09\x09\x73\x35\
-\x32\x2e\x33\x2d\x32\x33\x2e\x39\x2c\x35\x32\x2e\x33\x2d\x35\x33\
-\x2e\x33\x63\x30\x2d\x32\x2e\x33\x2d\x30\x2e\x32\x2d\x34\x2e\x36\
-\x2d\x30\x2e\x34\x2d\x36\x2e\x39\x63\x2d\x35\x2e\x35\x2c\x34\x2e\
-\x33\x2d\x31\x32\x2e\x33\x2c\x36\x2e\x39\x2d\x31\x39\x2e\x38\x2c\
-\x36\x2e\x39\x43\x32\x37\x30\x2e\x33\x2c\x32\x35\x36\x2c\x32\x35\
-\x36\x2c\x32\x34\x31\x2e\x37\x2c\x32\x35\x36\x2c\x32\x32\x34\x7a\
-\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\x3e\
-\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x00\x6c\
-\x3c\
-\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
-\x30\x2f\x73\x76\x67\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\
-\x30\x20\x30\x20\x32\x30\x20\x32\x30\x22\x3e\x3c\x70\x61\x74\x68\
-\x20\x64\x3d\x22\x4d\x31\x38\x20\x31\x32\x76\x31\x48\x38\x76\x35\
-\x6c\x2d\x36\x2d\x36\x20\x36\x2d\x36\x76\x35\x68\x38\x56\x32\x68\
-\x32\x7a\x22\x2f\x3e\x3c\x2f\x73\x76\x67\x3e\
-\x00\x00\x02\xa1\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x22\x32\x35\x36\x22\
+\x20\x63\x79\x3d\x22\x32\x38\x30\x22\x20\x72\x3d\x22\x36\x33\x22\
+\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\
+\x34\x30\x2c\x39\x36\x68\x2d\x38\x38\x6c\x2d\x33\x32\x2d\x33\x32\
+\x48\x31\x39\x32\x6c\x2d\x33\x32\x2c\x33\x32\x48\x37\x32\x63\x2d\
+\x32\x32\x2e\x30\x39\x32\x2c\x30\x2d\x34\x30\x2c\x31\x37\x2e\x39\
+\x30\x38\x2d\x34\x30\x2c\x34\x30\x76\x32\x37\x32\x63\x30\x2c\x32\
+\x32\x2e\x30\x39\x32\x2c\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2c\
+\x34\x30\x2c\x34\x30\x68\x33\x36\x38\x63\x32\x32\x2e\x30\x39\x32\
+\x2c\x30\x2c\x34\x30\x2d\x31\x37\x2e\x39\x30\x38\x2c\x34\x30\x2d\
+\x34\x30\x0d\x0a\x09\x09\x56\x31\x33\x36\x43\x34\x38\x30\x2c\x31\
+\x31\x33\x2e\x39\x30\x38\x2c\x34\x36\x32\x2e\x30\x39\x32\x2c\x39\
+\x36\x2c\x34\x34\x30\x2c\x39\x36\x7a\x20\x4d\x32\x35\x36\x2c\x33\
+\x39\x32\x63\x2d\x36\x31\x2e\x38\x35\x35\x2c\x30\x2d\x31\x31\x32\
+\x2d\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2d\x31\x31\x32\x73\
+\x35\x30\x2e\x31\x34\x35\x2d\x31\x31\x32\x2c\x31\x31\x32\x2d\x31\
+\x31\x32\x73\x31\x31\x32\x2c\x35\x30\x2e\x31\x34\x35\x2c\x31\x31\
+\x32\x2c\x31\x31\x32\x0d\x0a\x09\x09\x53\x33\x31\x37\x2e\x38\x35\
+\x35\x2c\x33\x39\x32\x2c\x32\x35\x36\x2c\x33\x39\x32\x7a\x22\x2f\
+\x3e\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\
+\x0a\
+\x00\x00\x03\x6c\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
\x2d\x38\x22\x3f\x3e\x0d\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\
\x72\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\
-\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x38\x2e\x31\x2e\x31\x2c\
+\x75\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x36\x2e\x32\x2e\x31\x2c\
\x20\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\
\x2d\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\
\x6e\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\
@@ -2150,33 +2096,45 @@ qt_resource_data = b"\
\x73\x2f\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\
\x67\x31\x31\x2e\x64\x74\x64\x22\x3e\x0d\x0a\x3c\x73\x76\x67\x20\
\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x20\x69\x64\
-\x3d\x22\x53\x61\x76\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\
-\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\
-\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\x6e\x73\
-\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
-\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\x78\
-\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x35\x31\x32\x70\x78\x22\x20\
-\x79\x3d\x22\x35\x31\x32\x70\x78\x22\x0d\x0a\x09\x20\x76\x69\x65\
-\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
-\x32\x22\x20\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\
-\x6f\x75\x6e\x64\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\
-\x32\x20\x35\x31\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\
-\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\
-\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\
-\x69\x78\x28\x32\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\
-\x29\x27\x3e\x0d\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x31\
-\x35\x2e\x31\x37\x33\x2c\x32\x48\x34\x43\x32\x2e\x38\x39\x39\x2c\
-\x32\x2c\x32\x2c\x32\x2e\x39\x2c\x32\x2c\x34\x76\x31\x32\x63\x30\
-\x2c\x31\x2e\x31\x2c\x30\x2e\x38\x39\x39\x2c\x32\x2c\x32\x2c\x32\
-\x68\x31\x32\x63\x31\x2e\x31\x30\x31\x2c\x30\x2c\x32\x2d\x30\x2e\
-\x39\x2c\x32\x2d\x32\x56\x35\x2e\x31\x32\x37\x4c\x31\x35\x2e\x31\
-\x37\x33\x2c\x32\x7a\x20\x4d\x31\x34\x2c\x38\x63\x30\x2c\x30\x2e\
-\x35\x34\x39\x2d\x30\x2e\x34\x35\x2c\x31\x2d\x31\x2c\x31\x48\x37\
-\x0d\x0a\x09\x43\x36\x2e\x34\x35\x2c\x39\x2c\x36\x2c\x38\x2e\x35\
-\x34\x39\x2c\x36\x2c\x38\x56\x33\x68\x38\x56\x38\x7a\x20\x4d\x31\
-\x33\x2c\x34\x68\x2d\x32\x76\x34\x68\x32\x56\x34\x7a\x22\x2f\x3e\
-\x0d\x0a\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\
+\x3d\x22\x4c\x61\x79\x65\x72\x5f\x31\x22\x20\x78\x6d\x6c\x6e\x73\
+\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\
+\x6f\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\
+\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\
+\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\
+\x20\x79\x3d\x22\x30\x70\x78\x22\x0d\x0a\x09\x20\x77\x69\x64\x74\
+\x68\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\
+\x3d\x22\x35\x31\x32\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\
+\x3d\x22\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\x32\x22\x20\x65\
+\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\
+\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
+\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
+\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x3e\x0d\x0a\x09\
+\x0d\x0a\x09\x09\x3c\x72\x65\x63\x74\x20\x78\x3d\x22\x31\x37\x38\
+\x2e\x38\x34\x36\x22\x20\x79\x3d\x22\x39\x32\x2e\x30\x38\x37\x22\
+\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\
+\x69\x78\x28\x2d\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\
+\x37\x31\x20\x30\x2e\x37\x30\x37\x31\x20\x2d\x30\x2e\x37\x30\x37\
+\x31\x20\x32\x32\x34\x2e\x33\x34\x37\x36\x20\x36\x33\x31\x2e\x31\
+\x34\x39\x38\x29\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\
+\x2e\x30\x38\x35\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\x35\
+\x34\x2e\x30\x34\x39\x22\x2f\x3e\x0d\x0a\x09\x3c\x70\x61\x74\x68\
+\x20\x64\x3d\x22\x4d\x34\x37\x31\x2e\x37\x32\x33\x2c\x38\x38\x2e\
+\x33\x39\x33\x6c\x2d\x34\x38\x2e\x31\x31\x35\x2d\x34\x38\x2e\x31\
+\x31\x34\x63\x2d\x31\x31\x2e\x37\x32\x33\x2d\x31\x31\x2e\x37\x32\
+\x34\x2d\x33\x31\x2e\x35\x35\x38\x2d\x31\x30\x2e\x38\x39\x36\x2d\
+\x34\x34\x2e\x33\x30\x34\x2c\x31\x2e\x38\x35\x6c\x2d\x34\x35\x2e\
+\x32\x30\x32\x2c\x34\x35\x2e\x32\x30\x33\x6c\x39\x30\x2e\x35\x36\
+\x39\x2c\x39\x30\x2e\x35\x36\x38\x6c\x34\x35\x2e\x32\x30\x32\x2d\
+\x34\x35\x2e\x32\x30\x32\x0d\x0a\x09\x09\x43\x34\x38\x32\x2e\x36\
+\x31\x36\x2c\x31\x31\x39\x2e\x39\x35\x32\x2c\x34\x38\x33\x2e\x34\
+\x34\x35\x2c\x31\x30\x30\x2e\x31\x31\x36\x2c\x34\x37\x31\x2e\x37\
+\x32\x33\x2c\x38\x38\x2e\x33\x39\x33\x7a\x22\x2f\x3e\x0d\x0a\x09\
+\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\x3d\
+\x22\x36\x34\x2e\x30\x32\x31\x2c\x33\x36\x33\x2e\x32\x35\x32\x20\
+\x33\x32\x2c\x34\x38\x30\x20\x31\x34\x38\x2e\x37\x33\x37\x2c\x34\
+\x34\x37\x2e\x39\x37\x39\x20\x09\x22\x2f\x3e\x0d\x0a\x3c\x2f\x67\
+\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
\x00\x00\x02\x21\
\x00\
\x00\x07\xaf\x78\x9c\xdd\x55\x4d\x6f\x9c\x30\x10\xbd\xf7\x57\x4c\
@@ -2214,86 +2172,7 @@ qt_resource_data = b"\
\x51\x0c\x8b\x84\xcf\x67\x8a\x37\x17\xad\x36\x39\x84\x6a\x79\x8a\
\xf5\x46\xf9\x6f\x96\xf1\xf2\x70\xbf\xc8\x9b\xdf\xf9\x80\xe2\xe1\
\
-\x00\x00\x04\xca\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x47\x65\x6e\x65\x72\
-\x61\x74\x6f\x72\x3a\x20\x41\x64\x6f\x62\x65\x20\x49\x6c\x6c\x75\
-\x73\x74\x72\x61\x74\x6f\x72\x20\x31\x39\x2e\x32\x2e\x31\x2c\x20\
-\x53\x56\x47\x20\x45\x78\x70\x6f\x72\x74\x20\x50\x6c\x75\x67\x2d\
-\x49\x6e\x20\x2e\x20\x53\x56\x47\x20\x56\x65\x72\x73\x69\x6f\x6e\
-\x3a\x20\x36\x2e\x30\x30\x20\x42\x75\x69\x6c\x64\x20\x30\x29\x20\
-\x20\x2d\x2d\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x73\
-\x76\x67\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x57\x33\
-\x43\x2f\x2f\x44\x54\x44\x20\x53\x56\x47\x20\x31\x2e\x31\x2f\x2f\
-\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\
-\x77\x33\x2e\x6f\x72\x67\x2f\x47\x72\x61\x70\x68\x69\x63\x73\x2f\
-\x53\x56\x47\x2f\x31\x2e\x31\x2f\x44\x54\x44\x2f\x73\x76\x67\x31\
-\x31\x2e\x64\x74\x64\x22\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\
-\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x0a\x09\x20\x69\x64\x3d\
-\x22\x73\x76\x67\x34\x36\x31\x39\x22\x20\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x39\x31\
-\x2b\x64\x65\x76\x65\x6c\x2b\x6f\x73\x78\x6d\x65\x6e\x75\x20\x72\
-\x31\x32\x39\x31\x31\x22\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\
-\x64\x6f\x63\x6e\x61\x6d\x65\x3d\x22\x74\x72\x69\x61\x6e\x67\x6c\
-\x65\x2d\x73\x74\x72\x6f\x6b\x65\x64\x2d\x31\x35\x2e\x73\x76\x67\
-\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\x3d\x22\x68\x74\x74\x70\
-\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\x65\x63\x6f\x6d\x6d\x6f\
-\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\x22\x20\x78\x6d\x6c\x6e\
-\x73\x3a\x64\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\
-\x6c\x2e\x6f\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\
-\x73\x2f\x31\x2e\x31\x2f\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\
-\x6b\x73\x63\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\
-\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\
-\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\
-\x61\x70\x65\x22\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
-\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\
-\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x20\x78\x6d\x6c\
-\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\x74\
-\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\x75\
-\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\x44\
-\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\x22\
-\x20\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\
-\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\
-\x30\x30\x2f\x73\x76\x67\x22\x0a\x09\x20\x78\x6d\x6c\x6e\x73\x3d\
-\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\
-\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x20\x78\x6d\x6c\
-\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\x70\x3a\x2f\
-\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\
-\x2f\x78\x6c\x69\x6e\x6b\x22\x20\x78\x3d\x22\x30\x70\x78\x22\x20\
-\x79\x3d\x22\x30\x70\x78\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x36\
-\x34\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\
-\x78\x22\x0a\x09\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\
-\x30\x20\x31\x35\x20\x31\x35\x22\x20\x73\x74\x79\x6c\x65\x3d\x22\
-\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
-\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\x31\x35\x20\x31\x35\x3b\
-\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\x65\
-\x73\x65\x72\x76\x65\x22\x3e\x0a\x3c\x70\x61\x74\x68\x20\x69\x64\
-\x3d\x22\x72\x65\x63\x74\x33\x33\x33\x38\x22\x20\x69\x6e\x6b\x73\
-\x63\x61\x70\x65\x3a\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\
-\x75\x72\x76\x61\x74\x75\x72\x65\x3d\x22\x30\x22\x20\x73\x6f\x64\
-\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\x65\x73\x3d\
-\x22\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x63\x22\x20\x64\
-\x3d\x22\x4d\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\
-\x0a\x09\x43\x37\x2e\x32\x34\x32\x39\x2c\x31\x2e\x34\x39\x31\x33\
-\x2c\x36\x2e\x39\x37\x38\x37\x2c\x31\x2e\x36\x34\x32\x33\x2c\x36\
-\x2e\x38\x33\x33\x36\x2c\x31\x2e\x38\x39\x35\x32\x6c\x2d\x35\x2e\
-\x35\x2c\x39\x2e\x38\x36\x39\x32\x43\x31\x2e\x30\x32\x31\x38\x2c\
-\x31\x32\x2e\x33\x30\x37\x38\x2c\x31\x2e\x33\x39\x35\x2c\x31\x32\
-\x2e\x39\x39\x39\x39\x2c\x32\x2c\x31\x33\x68\x31\x31\x0a\x09\x63\
-\x30\x2e\x36\x30\x35\x2d\x30\x2e\x30\x30\x30\x31\x2c\x30\x2e\x39\
-\x37\x38\x32\x2d\x30\x2e\x36\x39\x32\x32\x2c\x30\x2e\x36\x36\x36\
-\x34\x2d\x31\x2e\x32\x33\x35\x35\x6c\x2d\x35\x2e\x35\x2d\x39\x2e\
-\x38\x36\x39\x32\x43\x38\x2e\x30\x33\x30\x32\x2c\x31\x2e\x36\x35\
-\x37\x39\x2c\x37\x2e\x37\x38\x38\x34\x2c\x31\x2e\x35\x30\x39\x32\
-\x2c\x37\x2e\x35\x32\x34\x33\x2c\x31\x2e\x35\x30\x30\x34\x7a\x20\
-\x4d\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x6c\x34\x2e\x31\x32\
-\x36\x37\x2c\x37\x2e\x34\x37\x30\x34\x0a\x09\x48\x33\x2e\x33\x37\
-\x33\x33\x4c\x37\x2e\x35\x2c\x33\x2e\x38\x39\x39\x33\x7a\x22\x2f\
-\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
-\x00\x00\x02\x7f\
+\x00\x00\x02\xf7\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -2325,17 +2204,50 @@ qt_resource_data = b"\
\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x6e\x65\x77\x20\x30\x20\x30\x20\
\x35\x31\x32\x20\x35\x31\x32\x3b\x22\x20\x78\x6d\x6c\x3a\x73\x70\
\x61\x63\x65\x3d\x22\x70\x72\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\
-\x0a\x3c\x70\x6f\x6c\x79\x67\x6f\x6e\x20\x70\x6f\x69\x6e\x74\x73\
-\x3d\x22\x32\x38\x38\x2c\x39\x36\x20\x33\x33\x37\x2e\x39\x2c\x31\
-\x34\x35\x2e\x39\x20\x32\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x32\
-\x37\x34\x2c\x32\x30\x39\x2e\x37\x20\x31\x34\x35\x2e\x39\x2c\x33\
-\x33\x37\x2e\x39\x20\x39\x36\x2c\x32\x38\x38\x20\x39\x36\x2c\x34\
-\x31\x36\x20\x32\x32\x34\x2c\x34\x31\x36\x20\x31\x37\x34\x2e\x31\
-\x2c\x33\x36\x36\x2e\x31\x20\x33\x35\x37\x2e\x34\x2c\x31\x38\x32\
-\x2e\x39\x20\x33\x36\x36\x2e\x31\x2c\x31\x37\x34\x2e\x31\x20\x0d\
-\x0a\x09\x34\x31\x36\x2c\x32\x32\x34\x20\x34\x31\x36\x2c\x39\x36\
-\x20\x22\x2f\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
-\x00\x00\x02\x7d\
+\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x31\x37\x2e\x34\
+\x2c\x32\x32\x34\x48\x32\x38\x38\x56\x39\x34\x2e\x36\x63\x30\x2d\
+\x31\x36\x2e\x39\x2d\x31\x34\x2e\x33\x2d\x33\x30\x2e\x36\x2d\x33\
+\x32\x2d\x33\x30\x2e\x36\x63\x2d\x31\x37\x2e\x37\x2c\x30\x2d\x33\
+\x32\x2c\x31\x33\x2e\x37\x2d\x33\x32\x2c\x33\x30\x2e\x36\x56\x32\
+\x32\x34\x48\x39\x34\x2e\x36\x43\x37\x37\x2e\x37\x2c\x32\x32\x34\
+\x2c\x36\x34\x2c\x32\x33\x38\x2e\x33\x2c\x36\x34\x2c\x32\x35\x36\
+\x0d\x0a\x09\x63\x30\x2c\x31\x37\x2e\x37\x2c\x31\x33\x2e\x37\x2c\
+\x33\x32\x2c\x33\x30\x2e\x36\x2c\x33\x32\x48\x32\x32\x34\x76\x31\
+\x32\x39\x2e\x34\x63\x30\x2c\x31\x36\x2e\x39\x2c\x31\x34\x2e\x33\
+\x2c\x33\x30\x2e\x36\x2c\x33\x32\x2c\x33\x30\x2e\x36\x63\x31\x37\
+\x2e\x37\x2c\x30\x2c\x33\x32\x2d\x31\x33\x2e\x37\x2c\x33\x32\x2d\
+\x33\x30\x2e\x36\x56\x32\x38\x38\x68\x31\x32\x39\x2e\x34\x63\x31\
+\x36\x2e\x39\x2c\x30\x2c\x33\x30\x2e\x36\x2d\x31\x34\x2e\x33\x2c\
+\x33\x30\x2e\x36\x2d\x33\x32\x0d\x0a\x09\x43\x34\x34\x38\x2c\x32\
+\x33\x38\x2e\x33\x2c\x34\x33\x34\x2e\x33\x2c\x32\x32\x34\x2c\x34\
+\x31\x37\x2e\x34\x2c\x32\x32\x34\x7a\x22\x2f\x3e\x0d\x0a\x3c\x2f\
+\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x01\x69\
+\x3c\
+\x73\x76\x67\x20\x78\x6d\x6c\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\
+\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
+\x30\x2f\x73\x76\x67\x22\x20\x77\x69\x64\x74\x68\x3d\x22\x35\x31\
+\x32\x70\x78\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x35\x31\x32\
+\x70\x78\x22\x20\x76\x69\x65\x77\x42\x6f\x78\x3d\x22\x30\x20\x30\
+\x20\x35\x31\x32\x20\x35\x31\x32\x22\x3e\x3c\x67\x20\x74\x72\x61\
+\x6e\x73\x66\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x32\
+\x34\x20\x30\x20\x30\x20\x32\x34\x20\x30\x20\x30\x29\x27\x3e\x3c\
+\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x2e\x33\x34\x20\x31\x35\
+\x2e\x36\x36\x41\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\x30\x20\
+\x30\x20\x30\x20\x39\x20\x31\x37\x2e\x39\x34\x56\x31\x30\x48\x35\
+\x56\x38\x68\x34\x56\x35\x2e\x38\x33\x61\x33\x20\x33\x20\x30\x20\
+\x31\x20\x31\x20\x32\x20\x30\x56\x38\x68\x34\x76\x32\x68\x2d\x34\
+\x76\x37\x2e\x39\x34\x61\x37\x2e\x39\x37\x20\x37\x2e\x39\x37\x20\
+\x30\x20\x30\x20\x30\x20\x34\x2e\x36\x36\x2d\x32\x2e\x32\x38\x6c\
+\x2d\x31\x2e\x34\x32\x2d\x31\x2e\x34\x32\x68\x35\x2e\x36\x36\x6c\
+\x2d\x32\x2e\x38\x33\x20\x32\x2e\x38\x33\x61\x31\x30\x20\x31\x30\
+\x20\x30\x20\x30\x20\x31\x2d\x31\x34\x2e\x31\x34\x20\x30\x4c\x2e\
+\x31\x20\x31\x34\x2e\x32\x34\x68\x35\x2e\x36\x36\x6c\x2d\x31\x2e\
+\x34\x32\x20\x31\x2e\x34\x32\x7a\x4d\x31\x30\x20\x34\x61\x31\x20\
+\x31\x20\x30\x20\x31\x20\x30\x20\x30\x2d\x32\x20\x31\x20\x31\x20\
+\x30\x20\x30\x20\x30\x20\x30\x20\x32\x7a\x22\x2f\x3e\x3c\x2f\x67\
+\x3e\x3c\x2f\x73\x76\x67\x3e\x0a\
+\x00\x00\x02\xfc\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x75\x74\x66\
@@ -2367,16 +2279,104 @@ qt_resource_data = b"\
\x3d\x22\x6e\x65\x77\x20\x30\x20\x30\x20\x35\x31\x32\x20\x35\x31\
\x32\x22\x20\x78\x6d\x6c\x3a\x73\x70\x61\x63\x65\x3d\x22\x70\x72\
\x65\x73\x65\x72\x76\x65\x22\x3e\x0d\x0a\x3c\x67\x20\x69\x64\x3d\
-\x22\x49\x63\x6f\x6e\x5f\x38\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\x3e\
-\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x34\x32\
-\x37\x2c\x32\x33\x34\x2e\x36\x32\x35\x48\x31\x36\x37\x2e\x32\x39\
-\x36\x6c\x31\x31\x39\x2e\x37\x30\x32\x2d\x31\x31\x39\x2e\x37\x30\
-\x32\x4c\x32\x35\x36\x2c\x38\x35\x4c\x38\x35\x2c\x32\x35\x36\x6c\
-\x31\x37\x31\x2c\x31\x37\x31\x6c\x32\x39\x2e\x39\x32\x32\x2d\x32\
-\x39\x2e\x39\x32\x34\x4c\x31\x36\x37\x2e\x32\x39\x36\x2c\x32\x37\
-\x37\x2e\x33\x37\x35\x48\x34\x32\x37\x56\x32\x33\x34\x2e\x36\x32\
-\x35\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\
-\x67\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x22\x49\x63\x6f\x6e\x5f\x32\x30\x5f\x22\x3e\x0d\x0a\x09\x3c\x67\
+\x3e\x0d\x0a\x09\x09\x3c\x70\x61\x74\x68\x20\x64\x3d\x22\x4d\x32\
+\x35\x36\x2c\x34\x38\x43\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\
+\x2c\x34\x38\x2c\x31\x34\x31\x2e\x36\x30\x31\x2c\x34\x38\x2c\x32\
+\x35\x36\x73\x39\x33\x2e\x36\x30\x31\x2c\x32\x30\x38\x2c\x32\x30\
+\x38\x2c\x32\x30\x38\x73\x32\x30\x38\x2d\x39\x33\x2e\x36\x30\x31\
+\x2c\x32\x30\x38\x2d\x32\x30\x38\x53\x33\x37\x30\x2e\x33\x39\x39\
+\x2c\x34\x38\x2c\x32\x35\x36\x2c\x34\x38\x7a\x20\x4d\x32\x35\x36\
+\x2c\x34\x32\x32\x2e\x33\x39\x39\x0d\x0a\x09\x09\x09\x63\x2d\x39\
+\x31\x2e\x35\x31\x38\x2c\x30\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\
+\x37\x34\x2e\x38\x38\x32\x2d\x31\x36\x36\x2e\x33\x39\x39\x2d\x31\
+\x36\x36\x2e\x33\x39\x39\x53\x31\x36\x34\x2e\x34\x38\x32\x2c\x38\
+\x39\x2e\x36\x2c\x32\x35\x36\x2c\x38\x39\x2e\x36\x53\x34\x32\x32\
+\x2e\x34\x2c\x31\x36\x34\x2e\x34\x38\x32\x2c\x34\x32\x32\x2e\x34\
+\x2c\x32\x35\x36\x53\x33\x34\x37\x2e\x35\x31\x38\x2c\x34\x32\x32\
+\x2e\x33\x39\x39\x2c\x32\x35\x36\x2c\x34\x32\x32\x2e\x33\x39\x39\
+\x7a\x22\x2f\x3e\x0d\x0a\x09\x3c\x2f\x67\x3e\x0d\x0a\x3c\x2f\x67\
+\x3e\x0d\x0a\x3c\x2f\x73\x76\x67\x3e\x0d\x0a\
+\x00\x00\x04\xd5\
+\x3c\
+\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x27\x31\x2e\
+\x30\x27\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x27\x55\x54\x46\
+\x2d\x38\x27\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x54\x68\x69\x73\x20\
+\x66\x69\x6c\x65\x20\x77\x61\x73\x20\x67\x65\x6e\x65\x72\x61\x74\
+\x65\x64\x20\x62\x79\x20\x64\x76\x69\x73\x76\x67\x6d\x20\x32\x2e\
+\x38\x20\x2d\x2d\x3e\x0a\x3c\x73\x76\x67\x20\x76\x65\x72\x73\x69\
+\x6f\x6e\x3d\x27\x31\x2e\x31\x27\x20\x78\x6d\x6c\x6e\x73\x3d\x27\
+\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
+\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x27\x20\x78\x6d\x6c\x6e\
+\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x27\x68\x74\x74\x70\x3a\x2f\x2f\
+\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\x39\x39\x39\x2f\
+\x78\x6c\x69\x6e\x6b\x27\x20\x77\x69\x64\x74\x68\x3d\x27\x36\x33\
+\x2e\x39\x39\x39\x36\x70\x74\x27\x20\x68\x65\x69\x67\x68\x74\x3d\
+\x27\x36\x33\x2e\x39\x39\x39\x37\x70\x74\x27\x20\x76\x69\x65\x77\
+\x42\x6f\x78\x3d\x27\x35\x36\x2e\x34\x30\x39\x34\x20\x35\x33\x2e\
+\x38\x35\x38\x33\x20\x36\x33\x2e\x39\x39\x39\x36\x20\x36\x33\x2e\
+\x39\x39\x39\x37\x27\x3e\x0a\x3c\x67\x20\x69\x64\x3d\x27\x70\x61\
+\x67\x65\x31\x27\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\
+\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\
+\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\
+\x29\x27\x3e\x0a\x3c\x70\x61\x74\x68\x20\x64\x3d\x27\x4d\x20\x33\
+\x2e\x39\x35\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x43\x20\x32\
+\x2e\x32\x38\x39\x32\x32\x20\x2d\x33\x39\x2e\x33\x31\x31\x33\x20\
+\x36\x2e\x33\x36\x37\x30\x32\x20\x2d\x34\x36\x2e\x32\x33\x38\x36\
+\x20\x31\x31\x2e\x39\x30\x33\x36\x20\x2d\x35\x31\x2e\x33\x30\x33\
+\x39\x43\x20\x32\x39\x2e\x36\x36\x38\x37\x20\x2d\x36\x37\x2e\x35\
+\x35\x36\x38\x20\x35\x35\x2e\x32\x32\x39\x32\x20\x2d\x36\x30\x2e\
+\x36\x34\x32\x20\x35\x36\x2e\x31\x35\x32\x33\x20\x2d\x34\x32\x2e\
+\x35\x30\x32\x32\x43\x20\x35\x36\x2e\x36\x31\x33\x36\x20\x2d\x33\
+\x33\x2e\x34\x33\x38\x31\x20\x34\x39\x2e\x31\x31\x33\x32\x20\x2d\
+\x32\x36\x2e\x35\x39\x35\x39\x20\x34\x30\x2e\x36\x37\x39\x34\x20\
+\x2d\x32\x32\x2e\x35\x32\x38\x31\x43\x20\x32\x35\x2e\x33\x39\x39\
+\x35\x20\x2d\x31\x35\x2e\x31\x35\x38\x32\x20\x37\x2e\x31\x39\x39\
+\x33\x35\x20\x2d\x31\x38\x2e\x31\x34\x33\x36\x20\x33\x2e\x39\x35\
+\x37\x33\x35\x20\x2d\x33\x32\x2e\x31\x32\x5a\x27\x20\x66\x69\x6c\
+\x6c\x3d\x27\x6e\x6f\x6e\x65\x27\x20\x73\x74\x72\x6f\x6b\x65\x3d\
+\x27\x23\x30\x30\x30\x30\x30\x30\x27\x20\x73\x74\x72\x6f\x6b\x65\
+\x2d\x6c\x69\x6e\x65\x63\x61\x70\x3d\x27\x72\x6f\x75\x6e\x64\x27\
+\x20\x73\x74\x72\x6f\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\
+\x3d\x27\x72\x6f\x75\x6e\x64\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\
+\x6d\x69\x74\x65\x72\x6c\x69\x6d\x69\x74\x3d\x27\x31\x30\x2e\x30\
+\x33\x37\x35\x27\x20\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\
+\x68\x3d\x27\x32\x2e\x35\x30\x39\x33\x37\x27\x2f\x3e\x0a\x3c\x2f\
+\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
+\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
+\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
+\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x33\x2e\x39\
+\x35\x37\x33\x35\x27\x20\x63\x79\x3d\x27\x2d\x33\x32\x2e\x31\x32\
+\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\x30\x27\
+\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\x3c\x2f\
+\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\
+\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\x36\x34\
+\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\x35\x38\
+\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\x27\x3e\
+\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x31\x31\x2e\
+\x39\x30\x33\x36\x27\x20\x63\x79\x3d\x27\x2d\x35\x31\x2e\x33\x30\
+\x33\x39\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\x30\x30\
+\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\x3e\x0a\
+\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\x6f\x72\
+\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\x36\x32\
+\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\x34\x20\
+\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\x38\x29\
+\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\x27\x35\
+\x36\x2e\x31\x35\x32\x33\x27\x20\x63\x79\x3d\x27\x2d\x34\x32\x2e\
+\x35\x30\x32\x32\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\x30\x30\
+\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\x27\x2f\
+\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x67\x20\x74\x72\x61\x6e\x73\x66\
+\x6f\x72\x6d\x3d\x27\x6d\x61\x74\x72\x69\x78\x28\x30\x2e\x39\x39\
+\x36\x32\x36\x34\x20\x30\x20\x30\x20\x30\x2e\x39\x39\x36\x32\x36\
+\x34\x20\x35\x38\x2e\x34\x36\x36\x39\x20\x31\x31\x37\x2e\x38\x35\
+\x38\x29\x27\x3e\x0a\x3c\x63\x69\x72\x63\x6c\x65\x20\x63\x78\x3d\
+\x27\x34\x30\x2e\x36\x37\x39\x34\x27\x20\x63\x79\x3d\x27\x2d\x32\
+\x32\x2e\x35\x32\x38\x31\x27\x20\x66\x69\x6c\x6c\x3d\x27\x23\x30\
+\x30\x30\x30\x30\x30\x27\x20\x72\x3d\x27\x36\x2e\x30\x32\x32\x35\
+\x27\x2f\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\x67\x3e\x0a\x3c\x2f\
+\x73\x76\x67\x3e\
"
qt_resource_name = b"\
@@ -2384,235 +2384,235 @@ qt_resource_name = b"\
\x00\x6f\xa6\x53\
\x00\x69\
\x00\x63\x00\x6f\x00\x6e\x00\x73\
-\x00\x0a\
-\x0a\x2d\x1b\xc7\
-\x00\x63\
-\x00\x69\x00\x72\x00\x63\x00\x6c\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x10\
-\x06\xe3\xaf\xe7\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x68\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x1c\
-\x08\x8a\x79\x07\
+\x00\x16\
+\x01\xfb\x76\x27\
\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\
-\x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x12\
-\x08\x55\xef\xc7\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x62\x00\x61\x00\x63\
+\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x10\
+\x0c\x57\x65\x47\
\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\
-\x00\x67\
+\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x65\x00\x73\x00\x69\x00\x7a\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x11\
+\x01\x60\xbc\x47\
+\x00\x73\
+\x00\x6f\x00\x63\x00\x69\x00\x61\x00\x6c\x00\x2d\x00\x70\x00\x79\x00\x74\x00\x68\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\
\x00\x14\
\x0f\xa5\xe0\xc7\
\x00\x6d\
\x00\x61\x00\x67\x00\x6e\x00\x69\x00\x66\x00\x79\x00\x69\x00\x6e\x00\x67\x00\x2d\x00\x67\x00\x6c\x00\x61\x00\x73\x00\x73\x00\x2e\
\x00\x73\x00\x76\x00\x67\
-\x00\x19\
-\x0f\xef\x7b\xe7\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2d\x00\x70\x00\x61\x00\x6c\
-\x00\x65\x00\x74\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x12\
-\x08\x79\x97\xe7\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x61\x00\x6d\x00\x65\x00\x72\x00\x61\x00\x2e\x00\x73\x00\x76\
-\x00\x67\
\x00\x08\
\x05\xa8\x57\x87\
\x00\x63\
\x00\x6f\x00\x64\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0a\
+\x0a\x2d\x1b\xc7\
+\x00\x63\
+\x00\x69\x00\x72\x00\x63\x00\x6c\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x12\
+\x0c\x5e\xd4\xa7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\
+\x00\x67\
+\x00\x17\
+\x06\xc6\x02\xa7\
+\x00\x74\
+\x00\x72\x00\x69\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x2d\x00\x73\x00\x74\x00\x72\x00\x6f\x00\x6b\x00\x65\x00\x64\x00\x2d\
+\x00\x31\x00\x35\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x15\
+\x0f\xc4\x59\xe7\
+\x00\x73\
+\x00\x75\x00\x62\x00\x64\x00\x69\x00\x72\x00\x65\x00\x63\x00\x74\x00\x6f\x00\x72\x00\x79\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\
+\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0d\
+\x05\x20\xce\x87\
+\x00\x6f\
+\x00\x70\x00\x65\x00\x6e\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x11\
\x0c\xdb\x38\xe7\
\x00\x61\
\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
\
-\x00\x0f\
-\x07\x0e\xc4\x87\
-\x00\x6f\
-\x00\x70\x00\x65\x00\x6e\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0f\
-\x09\x76\x60\xc7\
-\x00\x63\
-\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x10\
+\x06\xe3\xaf\xe7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x68\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0a\
\x01\xca\x6d\x87\
\x00\x62\
\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x10\
-\x08\xe4\xaf\x47\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x6f\x00\x6e\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x08\
+\x08\xc8\x55\xe7\
+\x00\x73\
+\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x1d\
+\x06\xec\xf4\xc7\
+\x00\x63\
+\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\
+\x00\x6c\x00\x65\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x1b\
\x0e\xb5\x68\xe7\
\x00\x61\
\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\
\x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x07\
+\x0c\xf8\x5a\x07\
+\x00\x65\
+\x00\x79\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x10\
+\x08\xe4\xaf\x47\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x6f\x00\x6e\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0a\
-\x0f\x68\x53\xe7\
+\x0a\xc8\x62\x67\
+\x00\x63\
+\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x13\
+\x03\x24\x75\x47\
\x00\x61\
-\x00\x6e\x00\x63\x00\x68\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x19\
-\x0a\x43\x45\xc7\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x65\x00\x66\x00\x72\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x73\
+\x00\x76\x00\x67\
+\x00\x12\
+\x08\x55\xef\xc7\
\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x66\x00\x6f\x00\x72\
-\x00\x77\x00\x61\x00\x72\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x08\
-\x0b\x07\x57\xa7\
-\x00\x65\
-\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x08\
-\x0c\xf7\x55\x87\
-\x00\x74\
-\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0e\
-\x05\xed\x38\x67\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x64\x00\x65\x00\x6c\x00\x65\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\
+\x00\x67\
+\x00\x12\
+\x04\xb2\x21\x47\
\x00\x61\
-\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0e\
-\x0f\xcb\xd5\xc7\
-\x00\x70\
-\x00\x6c\x00\x75\x00\x73\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\
+\x00\x67\
+\x00\x09\
+\x0b\x9e\x89\x07\
+\x00\x63\
+\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x1c\
\x04\x66\xe1\x67\
\x00\x63\
\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\
\x00\x6c\x00\x65\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x11\
-\x0c\xa7\xc7\x47\
+\x00\x0e\
+\x05\xed\x38\x67\
+\x00\x61\
+\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x6d\x00\x6f\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x10\
+\x08\x89\xfa\x47\
\x00\x63\
-\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\
+\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6f\x00\x72\x00\x69\x00\x67\x00\x69\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0f\
+\x07\x0e\xc4\x87\
+\x00\x6f\
+\x00\x70\x00\x65\x00\x6e\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0f\
+\x09\x76\x60\xc7\
+\x00\x63\
+\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x08\
\x08\xf7\x57\x07\
\x00\x67\
\x00\x72\x00\x69\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x12\
-\x04\xb2\x21\x47\
+\x00\x08\
+\x0c\xf7\x55\x87\
+\x00\x74\
+\x00\x65\x00\x78\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x19\
+\x0f\xef\x7b\xe7\
\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x65\x00\x78\x00\x70\x00\x61\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\
-\x00\x67\
-\x00\x0d\
-\x05\x20\xce\x87\
-\x00\x6f\
-\x00\x70\x00\x65\x00\x6e\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0a\
-\x0a\xc8\x62\x67\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x6f\x00\x6c\x00\x6f\x00\x72\x00\x2d\x00\x70\x00\x61\x00\x6c\
+\x00\x65\x00\x74\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x19\
+\x0a\x43\x45\xc7\
+\x00\x61\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x66\x00\x6f\x00\x72\
+\x00\x77\x00\x61\x00\x72\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x11\
+\x0c\xa7\xc7\x47\
\x00\x63\
-\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x70\x00\x6f\x00\x6c\x00\x79\x00\x67\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
+\
\x00\x17\
\x07\x87\x48\x27\
\x00\x61\
\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x66\x00\x6f\x00\x6c\x00\x64\x00\x65\x00\x72\x00\x2d\x00\x6f\x00\x70\
\x00\x65\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x0f\
-\x04\xf2\xa7\x87\
-\x00\x63\
-\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x10\
-\x08\x89\xfa\x47\
-\x00\x63\
-\x00\x65\x00\x6e\x00\x74\x00\x65\x00\x72\x00\x6f\x00\x72\x00\x69\x00\x67\x00\x69\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x11\
-\x01\x60\xbc\x47\
-\x00\x73\
-\x00\x6f\x00\x63\x00\x69\x00\x61\x00\x6c\x00\x2d\x00\x70\x00\x79\x00\x74\x00\x68\x00\x6f\x00\x6e\x00\x2e\x00\x73\x00\x76\x00\x67\
-\
-\x00\x09\
-\x0b\x9e\x89\x07\
-\x00\x63\
-\x00\x68\x00\x65\x00\x63\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x12\
-\x0c\x5e\xd4\xa7\
+\x08\x79\x97\xe7\
\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x6c\x00\x6f\x00\x63\x00\x61\x00\x74\x00\x65\x00\x2e\x00\x73\x00\x76\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x61\x00\x6d\x00\x65\x00\x72\x00\x61\x00\x2e\x00\x73\x00\x76\
\x00\x67\
-\x00\x13\
-\x03\x24\x75\x47\
-\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x65\x00\x66\x00\x72\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x73\
-\x00\x76\x00\x67\
-\x00\x1d\
-\x06\xec\xf4\xc7\
-\x00\x63\
-\x00\x68\x00\x65\x00\x76\x00\x72\x00\x6f\x00\x6e\x00\x2d\x00\x77\x00\x69\x00\x74\x00\x68\x00\x2d\x00\x63\x00\x69\x00\x72\x00\x63\
-\x00\x6c\x00\x65\x00\x2d\x00\x72\x00\x69\x00\x67\x00\x68\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x07\
-\x0c\xf8\x5a\x07\
-\x00\x65\
-\x00\x79\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x15\
-\x0f\xc4\x59\xe7\
-\x00\x73\
-\x00\x75\x00\x62\x00\x64\x00\x69\x00\x72\x00\x65\x00\x63\x00\x74\x00\x6f\x00\x72\x00\x79\x00\x2d\x00\x6c\x00\x65\x00\x66\x00\x74\
-\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x08\
-\x08\xc8\x55\xe7\
-\x00\x73\
-\x00\x61\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x0b\x07\x57\xa7\
+\x00\x65\
+\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x10\
\x04\xa9\x22\xc7\
\x00\x66\
\x00\x69\x00\x6c\x00\x6c\x00\x65\x00\x64\x00\x62\x00\x75\x00\x63\x00\x6b\x00\x65\x00\x74\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x17\
-\x06\xc6\x02\xa7\
-\x00\x74\
-\x00\x72\x00\x69\x00\x61\x00\x6e\x00\x67\x00\x6c\x00\x65\x00\x2d\x00\x73\x00\x74\x00\x72\x00\x6f\x00\x6b\x00\x65\x00\x64\x00\x2d\
-\x00\x31\x00\x35\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x10\
-\x0c\x57\x65\x47\
+\x00\x0e\
+\x0f\xcb\xd5\xc7\
+\x00\x70\
+\x00\x6c\x00\x75\x00\x73\x00\x2d\x00\x72\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0a\
+\x0f\x68\x53\xe7\
\x00\x61\
-\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x72\x00\x65\x00\x73\x00\x69\x00\x7a\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
-\x00\x16\
-\x01\xfb\x76\x27\
+\x00\x6e\x00\x63\x00\x68\x00\x6f\x00\x72\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x1c\
+\x08\x8a\x79\x07\
\x00\x61\
-\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x61\x00\x72\x00\x72\x00\x6f\x00\x77\x00\x2d\x00\x62\x00\x61\x00\x63\
-\x00\x6b\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x72\x00\x61\x00\x64\x00\x69\x00\x6f\x00\x2d\x00\x62\x00\x75\x00\x74\
+\x00\x74\x00\x6f\x00\x6e\x00\x2d\x00\x6f\x00\x66\x00\x66\x00\x2e\x00\x73\x00\x76\x00\x67\
+\x00\x0f\
+\x04\xf2\xa7\x87\
+\x00\x63\
+\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x64\x00\x63\x00\x75\x00\x72\x00\x76\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
"
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x02\
-\x00\x00\x04\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x65\x3d\
-\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x29\x77\
-\x00\x00\x06\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x8b\xc7\
-\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x74\x39\
-\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x43\x62\
-\x00\x00\x05\x9a\x00\x01\x00\x00\x00\x01\x00\x00\x82\x51\
-\x00\x00\x03\x88\x00\x00\x00\x00\x00\x01\x00\x00\x4d\x8e\
-\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x00\x5c\x44\
-\x00\x00\x03\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x50\xc8\
-\x00\x00\x01\x48\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x83\
-\x00\x00\x02\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x3d\x9a\
-\x00\x00\x05\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x84\x76\
-\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x02\xf6\
-\x00\x00\x05\x00\x00\x00\x00\x00\x00\x01\x00\x00\x77\x63\
-\x00\x00\x01\x86\x00\x00\x00\x00\x00\x01\x00\x00\x21\xec\
-\x00\x00\x03\xec\x00\x00\x00\x00\x00\x01\x00\x00\x58\xee\
-\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xc4\
-\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x17\x5d\
-\x00\x00\x04\x44\x00\x00\x00\x00\x00\x01\x00\x00\x61\x1d\
-\x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x08\xc4\
-\x00\x00\x05\x84\x00\x00\x00\x00\x00\x01\x00\x00\x7f\xac\
-\x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x2f\x4f\
-\x00\x00\x03\x72\x00\x01\x00\x00\x00\x01\x00\x00\x4b\xad\
-\x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x26\x2d\
+\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x05\x04\
+\x00\x00\x01\xea\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xc9\
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x02\x64\x00\x00\x00\x00\x00\x01\x00\x00\x36\x89\
-\x00\x00\x03\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x55\x6e\
-\x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x39\x0a\
-\x00\x00\x04\x92\x00\x00\x00\x00\x00\x01\x00\x00\x6c\xc1\
-\x00\x00\x05\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x89\x44\
-\x00\x00\x04\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x6f\xd1\
-\x00\x00\x03\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x47\x5b\
-\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x1f\x31\
-\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x3c\x7a\
-\x00\x00\x05\x40\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x4d\
-\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x31\xcc\
-\x00\x00\x02\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x35\x1c\
-\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x6a\
-\x00\x00\x05\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x3c\
-\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x00\x40\x67\
-\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x12\x32\
+\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x00\x48\x6c\
+\x00\x00\x03\x82\x00\x00\x00\x00\x00\x01\x00\x00\x54\x86\
+\x00\x00\x05\x88\x00\x01\x00\x00\x00\x01\x00\x00\x7f\xe2\
+\x00\x00\x03\x40\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x3c\
+\x00\x00\x06\x28\x00\x00\x00\x00\x00\x01\x00\x00\x89\x6f\
+\x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x21\x9a\
+\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x10\x50\
+\x00\x00\x03\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x58\x7f\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x5c\
+\x00\x00\x01\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x28\xfb\
+\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x46\
+\x00\x00\x04\x08\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x6c\
+\x00\x00\x05\x14\x00\x00\x00\x00\x00\x01\x00\x00\x75\xf6\
+\x00\x00\x03\x16\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x96\
+\x00\x00\x05\x48\x00\x00\x00\x00\x00\x01\x00\x00\x79\x4c\
+\x00\x00\x03\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x5b\x4c\
+\x00\x00\x05\xea\x00\x00\x00\x00\x00\x01\x00\x00\x86\x6f\
+\x00\x00\x02\x04\x00\x00\x00\x00\x00\x01\x00\x00\x34\xa1\
+\x00\x00\x02\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x42\x6f\
+\x00\x00\x04\x50\x00\x01\x00\x00\x00\x01\x00\x00\x66\xf7\
+\x00\x00\x04\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x63\xad\
+\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x14\xfe\
+\x00\x00\x04\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x6f\x23\
+\x00\x00\x02\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x44\xec\
+\x00\x00\x05\x72\x00\x00\x00\x00\x00\x01\x00\x00\x7c\x72\
+\x00\x00\x03\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x51\x76\
+\x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x02\x81\
+\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x17\xf4\
+\x00\x00\x04\xec\x00\x00\x00\x00\x00\x01\x00\x00\x71\xa4\
+\x00\x00\x01\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x26\x40\
+\x00\x00\x04\x66\x00\x00\x00\x00\x00\x01\x00\x00\x68\xd8\
+\x00\x00\x02\x96\x00\x00\x00\x00\x00\x01\x00\x00\x3e\x80\
+\x00\x00\x02\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x3b\x30\
+\x00\x00\x05\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x85\x02\
+\x00\x00\x00\x90\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x88\
+\x00\x00\x01\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x21\x2a\
+\x00\x00\x05\xae\x00\x00\x00\x00\x00\x01\x00\x00\x82\x07\
+\x00\x00\x04\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x69\xf8\
"
qt_resource_struct_v2 = b"\
@@ -2620,88 +2620,88 @@ qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x29\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x04\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x65\x3d\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x00\x29\x77\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x06\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x8b\xc7\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x04\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x74\x39\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x43\x62\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x05\x9a\x00\x01\x00\x00\x00\x01\x00\x00\x82\x51\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x03\x88\x00\x00\x00\x00\x00\x01\x00\x00\x4d\x8e\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x00\x5c\x44\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x03\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x50\xc8\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x01\x48\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x83\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x02\xc8\x00\x00\x00\x00\x00\x01\x00\x00\x3d\x9a\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x05\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x84\x76\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x02\xf6\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x05\x00\x00\x00\x00\x00\x00\x01\x00\x00\x77\x63\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x01\x86\x00\x00\x00\x00\x00\x01\x00\x00\x21\xec\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x03\xec\x00\x00\x00\x00\x00\x01\x00\x00\x58\xee\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xc4\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x17\x5d\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x04\x44\x00\x00\x00\x00\x00\x01\x00\x00\x61\x1d\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x00\x50\x00\x00\x00\x00\x00\x01\x00\x00\x08\xc4\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x05\x84\x00\x00\x00\x00\x00\x01\x00\x00\x7f\xac\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00\x2f\x4f\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x03\x72\x00\x01\x00\x00\x00\x01\x00\x00\x4b\xad\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x01\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x26\x2d\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
+\x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x05\x04\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x01\xea\x00\x00\x00\x00\x00\x01\x00\x00\x2e\xc9\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x02\x64\x00\x00\x00\x00\x00\x01\x00\x00\x36\x89\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x03\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x55\x6e\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x39\x0a\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x04\x92\x00\x00\x00\x00\x00\x01\x00\x00\x6c\xc1\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x05\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x89\x44\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x04\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x6f\xd1\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x03\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x47\x5b\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x01\x5e\x00\x00\x00\x00\x00\x01\x00\x00\x1f\x31\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x02\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x3c\x7a\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x05\x40\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x4d\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x02\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x31\xcc\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x02\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x35\x1c\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
-\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x01\x00\x00\x0e\x6a\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x05\x54\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x3c\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x00\x40\x67\
-\x00\x00\x01\x73\xc1\x9d\x51\x38\
-\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x12\x32\
-\x00\x00\x01\x73\xc1\x9d\x51\x37\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdb\
+\x00\x00\x02\xea\x00\x00\x00\x00\x00\x01\x00\x00\x48\x6c\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x03\x82\x00\x00\x00\x00\x00\x01\x00\x00\x54\x86\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x05\x88\x00\x01\x00\x00\x00\x01\x00\x00\x7f\xe2\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x03\x40\x00\x00\x00\x00\x00\x01\x00\x00\x4e\x3c\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x06\x28\x00\x00\x00\x00\x00\x01\x00\x00\x89\x6f\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x01\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x21\x9a\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x10\x50\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x03\xc0\x00\x00\x00\x00\x00\x01\x00\x00\x58\x7f\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x01\x18\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x5c\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x01\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x28\xfb\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\x37\x46\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x04\x08\x00\x00\x00\x00\x00\x01\x00\x00\x5f\x6c\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x05\x14\x00\x00\x00\x00\x00\x01\x00\x00\x75\xf6\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x03\x16\x00\x00\x00\x00\x00\x01\x00\x00\x4b\x96\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x05\x48\x00\x00\x00\x00\x00\x01\x00\x00\x79\x4c\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdb\
+\x00\x00\x03\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x5b\x4c\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x05\xea\x00\x00\x00\x00\x00\x01\x00\x00\x86\x6f\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x02\x04\x00\x00\x00\x00\x00\x01\x00\x00\x34\xa1\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x02\xaa\x00\x00\x00\x00\x00\x01\x00\x00\x42\x6f\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x04\x50\x00\x01\x00\x00\x00\x01\x00\x00\x66\xf7\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x04\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x63\xad\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x14\xfe\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x04\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x6f\x23\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdb\
+\x00\x00\x02\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x44\xec\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x05\x72\x00\x00\x00\x00\x00\x01\x00\x00\x7c\x72\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x03\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x51\x76\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x00\x42\x00\x00\x00\x00\x00\x01\x00\x00\x02\x81\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x00\xee\x00\x00\x00\x00\x00\x01\x00\x00\x17\xf4\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x04\xec\x00\x00\x00\x00\x00\x01\x00\x00\x71\xa4\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x01\x9c\x00\x00\x00\x00\x00\x01\x00\x00\x26\x40\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x04\x66\x00\x00\x00\x00\x00\x01\x00\x00\x68\xd8\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x02\x96\x00\x00\x00\x00\x00\x01\x00\x00\x3e\x80\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x02\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x3b\x30\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
+\x00\x00\x05\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x85\x02\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdb\
+\x00\x00\x00\x90\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x88\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x01\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x21\x2a\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x05\xae\x00\x00\x00\x00\x00\x01\x00\x00\x82\x07\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdd\
+\x00\x00\x04\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x69\xf8\
+\x00\x00\x01\x75\xf2\xdd\xa0\xdc\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]
diff --git a/graphics/asymptote/GUI/setup.py b/graphics/asymptote/GUI/setup.py
index d6a4c0d6a7..e49e3468d7 100644
--- a/graphics/asymptote/GUI/setup.py
+++ b/graphics/asymptote/GUI/setup.py
@@ -8,6 +8,6 @@ setup(
version=xasyVersion.xasyVersion,
author="Supakorn Rassameemasmuang, Orest Shardt, and John C. Bowman",
description="User interface for Asymptote, a vector graphics language",
- url="http://asymptote.sourceforge.net",
+ url="https://asymptote.sourceforge.io",
download_url="https://sourceforge.net/projects/asymptote/"
)
diff --git a/graphics/asymptote/INSTALL b/graphics/asymptote/INSTALL
index ae5e3394b9..602c338363 100644
--- a/graphics/asymptote/INSTALL
+++ b/graphics/asymptote/INSTALL
@@ -16,7 +16,7 @@ you should change the first line to
./configure --prefix=$HOME/asymptote
If you get errors from a broken texinfo or pdftex installation, simply put
-http://asymptote.sourceforge.net/asymptote.pdf
+https://asymptote.sourceforge.io/asymptote.pdf
in the doc directory and repeat the commands make all and make install.
For a list of configure options, type
diff --git a/graphics/asymptote/Makefile.in b/graphics/asymptote/Makefile.in
index f7afa261c3..a6705f9536 100644
--- a/graphics/asymptote/Makefile.in
+++ b/graphics/asymptote/Makefile.in
@@ -107,8 +107,8 @@ REVISION = "const char *REVISION="
last = $(shell head -1 revision.cc | sed -e 's/.*\"\(.*\)\";/\1/')
usinggit = $(shell if test -d ".git"; then echo yes; fi)
ifeq ($(usinggit),yes)
- revision = $(shell LC_ALL="C" git describe --long | sed -e 's/git//' \
- | sed -e 's/-g.*//')
+ revision = $(shell LC_ALL="C" git describe --long | \
+ sed -e 's/git-\([0-9]*\)-g.*/-\1/' | sed -e 's/-0-g.*//')
else
revision = @VERSION@
endif
diff --git a/graphics/asymptote/ReleaseNotes b/graphics/asymptote/ReleaseNotes
index 67e9d70bf7..7e1cbf7fb4 100644
--- a/graphics/asymptote/ReleaseNotes
+++ b/graphics/asymptote/ReleaseNotes
@@ -1,3 +1,24 @@
+Release Notes for Version 2.68
+
+Floating point exceptions in OpenGL libraries are now masked.
+A normalization used to render tubes was fixed. A Label align(Label,dir)
+function was added for aligning label normals. A new settings.compress=true
+option controls PDF image compression. A bool isometry(transform) function
+was added. Various bugs in the geometry module were fixed.
+The transpose function ignores uninitialized elements.
+Null fields are treated as undefined values in cvs mode and in line mode.
+Uninitialized rendering variables were fixed. A RELEASE variable was added.
+Logarithmic graphs of surfaces are supported. Files are opened
+without assuming an asy suffix. Suport for Ghostscript 9.53 was implemented.
+The end argument of Margin functions is now optional. A function
+cputime().change.clock that returns the high-resolution elapsed wall clock
+time was added. A --disable-curl option was added.
+The centering of slides was fixed. Null characters and null strings are
+supported in the replace function. Configuration without readline support
+was fixed. In binary mode, an entire file can be read into a string.
+The getc function now works properly when reading the NUL character.
+Reproducible builds are supported.
+
Release Notes for Version 2.67
Support was added for importing and inputting URLs. Compilation and 2D SVG
diff --git a/graphics/asymptote/asy-keywords.el b/graphics/asymptote/asy-keywords.el
index 2ab35e5d5d..72c6ff8886 100644
--- a/graphics/asymptote/asy-keywords.el
+++ b/graphics/asymptote/asy-keywords.el
@@ -2,7 +2,7 @@
;; This file is automatically generated by asy-list.pl.
;; Changes will be overwritten.
;;
-(defvar asy-keywords-version "2.67")
+(defvar asy-keywords-version "2.68")
(defvar asy-keyword-name '(
and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))
@@ -11,7 +11,7 @@ and controls tension atleast curl if else while for do return break continue str
Braid FitResult Label Legend Solution TreeNode abscissa arc arrowhead binarytree binarytreeNode block bool bool3 bounds bqe circle conic coord coordsys cputime ellipse evaluatedpoint file filltype frame grid3 guide horner hsv hyperbola int inversion key light line linefit marginT marker mass node object pair parabola patch path path3 pen picture point position positionedvector projection rational real revolution scaleT scientific segment side simplex slice solution splitface string surface tensionSpecifier ticklocate ticksgridT tickvalues transform transformation tree triangle trilinear triple vector vertex void ))
(defvar asy-function-name '(
-AND Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _shipout _strokepath _texpath aCos aSin aTan abort abs abs2 accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map mapArray mapTemplate margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo nosetpagesize notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexPhase1 simplexPhase2 simplexStandard simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox toplocation transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube type uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans ))
+AND Arc ArcArrow ArcArrows Arrow Arrows AtA Automatic AvantGarde B03 B13 B23 B33 BBox BWRainbow BWRainbow2 Bar Bars BeginArcArrow BeginArrow BeginBar BeginDotMargin BeginMargin BeginPenMargin Blank Bookman Bottom BottomTop Bounds Break Broken BrokenLog CLZ CTZ Ceil Circle CircleBarIntervalMarker Cos Courier CrossIntervalMarker DOSendl DOSnewl DefaultFormat DefaultLogFormat Degrees Dir DotMargin DotMargins Dotted Draw Drawline Embed EndArcArrow EndArrow EndBar EndDotMargin EndMargin EndPenMargin Fill FillDraw Finite Floor Format Full Gaussian Gaussrand Gaussrandpair Gradient Grayscale Helvetica Hermite HookHead InOutTicks InTicks Jn Label Landscape Left LeftRight LeftTicks Legend Linear Log LogFormat Margin Margins Mark MidArcArrow MidArrow NOT NewCenturySchoolBook NoBox NoMargin NoModifier NoTicks NoTicks3 NoZero NoZeroFormat None OR OmitFormat OmitTick OmitTickInterval OmitTickIntervals OutTicks Ox Oy Palatino PaletteTicks Pen PenMargin PenMargins Pentype Portrait RGB RadialShade RadialShadeDraw Rainbow Range Relative Right RightTicks Rotate Round SQR Scale ScaleX ScaleY ScaleZ Seascape Shift Sin Slant Spline StickIntervalMarker Straight Symbol Tan TeXify Ticks Ticks3 TildeIntervalMarker TimesRoman Top TrueMargin UnFill UpsideDown Wheel X XEquals XOR XY XYEquals XYZero XYgrid XZEquals XZZero XZero XZgrid Y YEquals YXgrid YZ YZEquals YZZero YZero YZgrid Yn Z ZX ZXgrid ZYgrid ZapfChancery ZapfDingbats _begingroup3 _cputime _draw _eval _findroot _image _labelpath _projection _shipout _strokepath _texpath aCos aSin aTan abort abs abs2 accel acos acosh acot acsc activatequote add addArrow addMargins addSaveFunction addpenarc addpenline addseg adjust alias align all altitude angabscissa angle angledegrees angpoint animate annotate anticomplementary antipedal apply approximate arc arcarrowsize arccircle arcdir arcfromcenter arcfromfocus arclength arcnodesnumber arcpoint arcsubtended arcsubtendedcenter arctime arctopath array arrow arrow2 arrowbase arrowbasepoints arrowsize ascii asec asin asinh ask assert asy asycode asydir asyfigure asyfilecode asyinclude asywrite atan atan2 atanh atbreakpoint atexit attach attract atupdate autoformat autoscale autoscale3 axes axes3 axialshade axis axiscoverage azimuth babel background bangles bar barmarksize barsize basealign baseline bbox beep begin beginclip begingroup beginpoint between bevel bezier bezierP bezierPP bezierPPP bezulate bibliography bibliographystyle binarytree binarytreeNode binomial bins bisector bisectorpoint bispline bispline0 bitreverse blend blockconnector box bqe brace breakpoint breakpoints brick buildRestoreDefaults buildRestoreThunk buildcycle bulletcolor byte calculateScaling canonical canonicalcartesiansystem cartesiansystem case1 case2 case3 cbrt cd ceil center centerToFocus centroid cevian change2 changecoordsys checkSegment check_fpt_zero checkconditionlength checker checkincreasing checklengths checkposition checkpt checkptincube checktriangle choose circle circlebarframe circlemarkradius circlenodesnumber circumcenter circumcircle clamped clear clip clipdraw close cmyk code colatitude collect collinear color colorless colors colorspace comma compassmark complement complementary concat concurrent cone conic conicnodesnumber conictype conj connect containmentTree contains contour contour3 controlSpecifier convert coordinates coordsys copy copyPairOrTriple cos cosh cot countIntersections cputime crop cropcode cross crossframe crosshatch crossmarksize csc cubicroots curabscissa curlSpecifier curpoint currentarrow currentexitfunction currentmomarrow currentpolarconicroutine curve cut cutafter cutbefore cyclic cylinder deactivatequote debugger deconstruct defaultdir defaultformat defaultpen defined degenerate degrees delete deletepreamble determinant diagonal diamond diffdiv dir dirSpecifier dirtime display distance divisors do_overpaint dot dotframe dotsize downcase draw drawAll drawCylinder drawDisk drawDoubleLine drawFermion drawGhost drawGluon drawMomArrow drawPhoton drawScalar drawSphere drawTube drawVertex drawVertexBox drawVertexBoxO drawVertexBoxX drawVertexO drawVertexOX drawVertexTriangle drawVertexTriangleO drawVertexX drawarrow drawarrow2 drawbeziertriangle drawline drawpixel drawstrokepath drawtick duplicate elle ellipse ellipsenodesnumber embed embed3 embedplayer empty enclose end endclip endgroup endgroup3 endl endpoint endpoints eof eol equation equations erase erasestep erf erfc error errorbar errorbars eval excenter excircle exit exitfunction exp expfactors expi expm1 exradius extend extension extouch fabs factorial fermat fft fhorner figure file filecode fill filldraw filloutside fillrule filltype find findall findroot finite finiteDifferenceJacobian firstcut firstframe fit fit2 fixedscaling floor flush fmdefaults fmod focusToCenter font fontcommand fontsize foot format frac frequency fromCenter fromFocus fspline functionshade gamma gcd generate_random_backtrace generateticks gergonne getc getint getpair getreal getstring gettriple gluon gouraudshade graph graphic graphicscale gray grestore grid grid3 gsave halfbox hatch hdiffdiv hermite hex histogram history hline hprojection hsv hyperbola hyperbolanodesnumber hyperlink hypot identity image implicitsurface incenter incentral incircle increasing incrementposition indexedfigure initdefaults initialized input inradius insert inside insphere integrate interactive interior interp interpolate intersect intersection intersectionpoint intersectionpoints intersections intouch inverse inversion invisible is3D isDuplicate isnan isogonal isogonalconjugate isometry isotomic isotomicconjugate isparabola italic item jobname key kurtosis kurtosisexcess label labelaxis labelmargin labelpath labels labeltick labelx labelx3 labely labely3 labelz labelz3 lastcut latex latitude latticeshade layer layout lcm ldexp leastsquares legend legenditem length lexorder lift light limits line linear linecap lineinversion linejoin linemargin lineskip linetype linewidth link list lm_enorm lm_evaluate_default lm_lmdif lm_lmpar lm_minimize lm_print_default lm_print_quiet lm_qrfac lm_qrsolv locale locate locatefile location log log10 log1p logaxiscoverage longitude lookup make3dgrid makeMappingArray makeNode makecircle makedraw makepen maketriangle map mapArray mapTemplate margin markangle markangleradius markanglespace markarc marker markinterval marknodes markrightangle markthin markuniform mass masscenter massformat math max max3 maxAfterTransform maxbezier maxbound maxcoords maxlength maxratio maxtimes mean medial median midpoint min min3 minAfterTransform minbezier minbound minipage minratio mintimes miterlimit mktemp momArrowPath momarrowsize monotonic multifigure nGrad nativeformat natural newl newpage newslide newton newtree nextframe nextnormal nextpage nib nodabscissa node none norm normalout normalvideo notaknot nowarn numberpage nurb object offset onpath opacity opposite orient orientation origin orthic orthocentercenter outdirectory outformat outline outname outprefix output overloadedMessage overwrite pack pad pairs palette parabola parabolanodesnumber parallel parallelogram partialsum patchwithnormals path path3 pathbetween pathinface pattern pause pdf pedal periodic perp perpendicular perpendicularmark phantom phi1 phi2 phi3 photon piecewisestraight point polar polarconicroutine polargraph polygon popcount postcontrol postscript pow10 ppoint prc prc0 prconly precision precontrol prepend printBytecode print_random_addresses progress project projection projecttospan projecttospan_findcoeffs purge pwhermite quadpatches quadrant quadraticroots quantize quarticroots quotient radialshade radians radicalcenter radicalline radius rand randompath rationalidentity rd readline realmult realquarticroots rectangle rectangular rectify reflect relabscissa relative relativedistance reldir relpoint reltime remainder remark removeDuplicates rename render replace report resetdefaultpen restore restoredefaults reverse reversevideo rf rfind rgb rgba rgbint rms rotate rotateO rotation round roundbox roundedpath roundrectangle samecoordsys sameside sample save savedefaults saveline scale scale3 scaleO scaleT scaleless scientific search searchtree sec secondaryX secondaryY seconds section sector seek seekeof segment segmentlimits sequence setpens sgn sgnd sharpangle sharpdegrees shift shiftless shipout shipout3 show simeq simplex simplexInit simplexPhase1 simplexPhase2 simplexTableau simplexWrite simpson sin sinh size size3 skewness skip slant sleep slice slope slopefield solve solveBVP sort sourceline sphere split sqrt square srand standardizecoordsys stdev step stickframe stickmarksize stickmarkspace stop straight straightness string stripdirectory stripextension stripfile stripsuffix strokepath subdivide subitem subpath substr sum surface symmedial symmedian system tab tableau tan tangent tangential tangents tanh tell tensionSpecifier tensorshade tex texcolor texify texpath texpreamble texreset texshipout texsize texstring textpath thick thin tick tickMax tickMax3 tickMin tickMin3 ticklabelshift ticklocate tildeframe tildemarksize tile tiling time times title titlepage topbox toplocation transform transformation transpose trembleFuzz triangle triangleAbc triangleabc triangletoquads trianglewithnormals triangulate tricoef tridiagonal trilinear trim truepoint tube type uncycle unfill uniform unique unit unitrand unitsize unityroot unstraighten upcase updatefunction uperiodic upscale uptodate usepackage usersetting usetypescript usleep value variance variancebiased vbox vector vectorfield verbatim view vline vperiodic vprojection warn warning windingnumber write xasyKEY xaxis xaxis3 xaxis3At xaxisAt xequals xlimits xmap xpart xscale xscaleO xtick xtick3 xtrans yaxis yaxis3 yaxis3At yaxisAt yequals ylimits ypart yscale yscaleO ytick ytick3 ytrans zaxis3 zaxis3At zero zlimits zpart ztick ztick3 ztrans ))
(defvar asy-variable-name '(
-Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red RedOrange RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFuzz ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingzero simplex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding ))
+Accent AliceBlue Align Allow AntiqueWhite Apricot Aqua Aquamarine Aspect Azure BeginPoint Beige Bisque Bittersweet Black BlanchedAlmond Blue BlueGreen BlueViolet Blues Both BrBG Break BrickRed Brown BuGn BuPu BurlyWood BurntOrange CCW CMRmap CW CadetBlue CarnationPink Center Centered Cerulean Chartreuse Chocolate Coeff Coral CornflowerBlue Cornsilk Crimson Crop Cyan Dandelion Dark2 DarkBlue DarkCyan DarkGoldenrod DarkGray DarkGreen DarkKhaki DarkMagenta DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen DarkSlateBlue DarkSlateGray DarkTurquoise DarkViolet DeepPink DeepSkyBlue DefaultHead DimGray DodgerBlue Dotted Down Draw E ENE EPS ESE E_Euler E_PC E_RK2 E_RK3BS Emerald EndPoint Euler Fill FillDraw FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite GnBu Gold Goldenrod Gray Green GreenYellow Greens Greys Honeydew HookHead Horizontal HotPink I IgnoreAspect IndianRed Indigo Infinity Ivory JOIN_IN JOIN_OUT JungleGreen Khaki LM_DWARF LM_MACHEP LM_SQRT_DWARF LM_SQRT_GIANT LM_USERTOL Label Lavender LavenderBlush LawnGreen Left LeftJustified LeftSide LemonChiffon LightBlue LightCoral LightCyan LightGoldenrodYellow LightGreen LightGrey LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray LightSteelBlue LightYellow Lime LimeGreen Linear Linen Log Logarithmic Magenta Mahogany Mark MarkFill MarkPath Maroon Max MediumAquamarine MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen MediumTurquoise MediumVioletRed Melon MidPoint MidnightBlue Min MintCream MistyRose Moccasin Move MoveQuiet Mulberry N NE NNE NNW NULL_VERTEX NW NavajoWhite Navy NavyBlue NoAlign NoCrop NoFill NoSide OldLace Olive OliveDrab OliveGreen OrRd Orange OrangeRed Oranges Orchid Ox Oy PC PRGn Paired PaleGoldenrod PaleGreen PaleTurquoise PaleVioletRed PapayaWhip Pastel1 Pastel2 Peach PeachPuff Periwinkle Peru PiYG PineGreen Pink Plum PowderBlue ProcessBlue PuBu PuBuGn PuOr PuRd Purple Purples RELEASE RK2 RK3 RK3BS RK4 RK5 RK5DP RK5F RawSienna RdBu RdGy RdPu RdYlBu RdYlGn Red RedOrange RedViolet Reds Rhodamine Right RightJustified RightSide RosyBrown RoyalBlue RoyalPurple RubineRed S SE SSE SSW SW SaddleBrown Salmon SandyBrown SeaGreen Seashell Sepia Set1 Set2 Set3 Sienna Silver SimpleHead SkyBlue SlateBlue SlateGray Snow Spectral SpringGreen SteelBlue Suppress SuppressQuiet Tan TeXHead Teal TealBlue Thistle Ticksize Tomato Turquoise UnFill Up VERSION Value Vertical Violet VioletRed W WNW WSW Wheat White WhiteSmoke WildStrawberry XHIGH XLOW XYAlign YAlign YHIGH YLOW Yellow YellowGreen YellowOrange YlGn YlGnBu YlOrBr YlOrRd ZHIGH ZLOW _outpipe aboveequationskip addpenarc addpenline align allowstepping angularsystem animationdelay appendsuffix arcarrowangle arcarrowfactor arrow2sizelimit arrowangle arrowbarb arrowdir arrowfactor arrowhookfactor arrowlength arrowsizelimit arrowtexfactor authorpen autumn axis axiscoverage axislabelfactor background backgroundcolor backgroundpen barfactor barmarksizefactor basealign baselinetemplate bernstein beveljoin bigvertexpen bigvertexsize binary black blue bm bone bottom bp bracedefaultratio braceinnerangle bracemidangle braceouterangle brg brown bullet bwr byfoci byvertices camerafactor chartreuse circlemarkradiusfactor circlenodesnumberfactor circleprecision circlescale cividis cm codefile codepen codeskip colorPen coloredNodes coloredSegments conditionlength conicnodesfactor cool coolwarm copper count cputimeformat crossmarksizefactor currentcoordsys currentlight currentpatterns currentpen currentpicture currentposition currentprojection curvilinearsystem cuttings cyan darkblue darkbrown darkcyan darkgray darkgreen darkgrey darkmagenta darkolive darkred dashdotted dashed datepen dateskip debuggerlines debugging deepblue deepcyan deepgray deepgreen deepgrey deepmagenta deepred deepyellow default defaultControl defaultS defaultbackpen defaultcoordsys defaultexcursion defaultfilename defaultformat defaultmassformat defaultpen defaultseparator differentlengths dot dotfactor dotfilltype dotframe dotted doublelinepen doublelinespacing down duplicateFuzz ellipsenodesnumberfactor eps epsgeo epsilon evenodd expansionfactor extendcap fermionpen figureborder figuremattpen file3 firstnode firststep foregroundcolor fuchsia fuzz gapfactor ghostpen gist_earth gist_ncar gist_stern gluonamplitude gluonpen gluonratio gray green grey hatchepsilon havepagenumber heavyblue heavycyan heavygray heavygreen heavygrey heavymagenta heavyred hline hot hsv hwratio hyperbolanodesnumberfactor identity identity4 ignore implicitshipout inch inches includegraphicscommand inf inferno infinity institutionpen intMax intMin invert invisible itempen itemskip itemstep jet labelmargin landscape lastnode left legendhskip legendlinelength legendmargin legendmarkersize legendmaxrelativewidth legendvskip lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightolive lightred lightyellow linemargin lm_infmsg lm_shortmsg longdashdotted longdashed magenta magma magneticRadius mantissaBits markangleradius markangleradiusfactor markanglespace markanglespacefactor maxrefinements mediumblue mediumcyan mediumgray mediumgreen mediumgrey mediummagenta mediumred mediumyellow middle minDistDefault minblockheight minblockwidth mincirclediameter minipagemargin minipagewidth minvertexangle miterjoin mm momarrowfactor momarrowlength momarrowmargin momarrowoffset momarrowpen monoPen morepoints nCircle nan newbulletcolor ngraph nil nipy_spectral nmesh nobasealign nodeMarginDefault nodesystem nomarker nopoint noprimary nullpath nullpen numarray ocgindex oldbulletcolor olive orange origin overpaint page pageheight pagemargin pagenumberalign pagenumberpen pagenumberposition pagewidth paleblue palecyan palegray palegreen palegrey palemagenta palered paleyellow parabolanodesnumberfactor perpfactor phi photonamplitude photonpen photonratio pi pink plain plain_bounds plain_scaling plasma plus preamblenodes pt purple r3 r4a r4b randMax realDigits realEpsilon realMax realMin red relativesystem reverse right roundcap roundjoin royalblue salmon saveFunctions scalarpen seismic sequencereal settings signedtrailingzero simplex solid spinner spring springgreen sqrtEpsilon squarecap squarepen startposition stdin stdout stepfactor stepfraction steppagenumberpen stepping stickframe stickmarksizefactor stickmarkspacefactor summer swap tab10 tab20 tab20b tab20c textpen ticksize tildeframe tildemarksizefactor tinv titlealign titlepagepen titlepageposition titlepen titleskip top trailingzero treeLevelStep treeMinNodeWidth treeNodeStep trembleAngle trembleFrequency trembleRandom tubegranularity twilight twilight_shifted undefined unitcircle unitsquare up urlpen urlskip version vertexpen vertexsize viewportmargin viewportsize viridis vline white winter wistia wye yellow ylabelwidth zeroTransform zerotickfuzz zerowinding ))
diff --git a/graphics/asymptote/asy.list b/graphics/asymptote/asy.list
index 08b1a1d7df..cfca81e8b8 100644
--- a/graphics/asymptote/asy.list
+++ b/graphics/asymptote/asy.list
@@ -8,7 +8,6 @@ string stripdirectory(string s);
real sqrtEpsilon;
string stripextension(string s);
version version;
-void nosetpagesize();
void texpreamble(string s);
pen beveljoin;
string cputimeformat;
@@ -21,7 +20,7 @@ pen heavyblue;
filltype dotfilltype;
pen heavygreen;
pen heavycyan;
-marginT PenMargin(path, pen)(real begin, real end);
+marginT PenMargin(path, pen)(real begin, real end=<default>);
marginT PenMargin(path, pen);
int realDigits;
pen heavymagenta;
@@ -376,6 +375,7 @@ transform fixedscaling(picture pic=<default>, pair min, pair max, pen p=<default
pen Symbol(string series=<default>, string shape=<default>);
slice firstcut(path p, path knife);
pen squarecap;
+bool isometry(transform t);
pen squarepen;
pen deepyellow;
real barsize(pen p=<default>);
@@ -636,8 +636,8 @@ triple[] sequence(triple f(int), int n);
path[] sequence(path f(int), int n);
frame[] sequence(frame f(int), int n);
triple minbezier(triple[][] p, triple b);
-path trim(path g, real begin, real end);
-marginT DotMargin(path, pen)(real begin, real end);
+path trim(path g, real begin, real end=<default>);
+marginT DotMargin(path, pen)(real begin, real end=<default>);
marginT DotMargin(path, pen);
marginT DotMargins(path, pen);
string string(int x);
@@ -989,13 +989,13 @@ bool alias(string[][] a, string[][] b);
bool alias(slice a, slice b);
bool alias(freezableBounds a, freezableBounds b);
bool alias(transformation a, transformation b);
-bool alias(autoscaleT a, autoscaleT b);
+bool alias(scaleT a, scaleT b);
bool alias(object[] a, object[] b);
bool alias(marker a, marker b);
bool alias(real[][] a, real[][] b);
bool alias(bool3 a, bool3 b);
bool alias(bool3[] a, bool3[] b);
-bool alias(scaleT a, scaleT b);
+bool alias(autoscaleT a, autoscaleT b);
bool alias(ScaleT a, ScaleT b);
bool alias(side a, side b);
bool alias(cputime a, cputime b);
@@ -1197,7 +1197,7 @@ pair project(triple v, real[][] t);
bool prc(string format=<default>);
projection projection(triple camera, triple up=<default>, triple target=<default>, triple normal=<default>, real zoom=<default>, real angle=<default>, pair viewportshift=<default>, bool showtarget=<default>, bool autoadjust=<default>, bool center=<default>, transformation projector(triple camera, triple up, triple target));
void endl(file file);
-marginT TrueMargin(path, pen)(real begin, real end);
+marginT TrueMargin(path, pen)(real begin, real end=<default>);
pair bezier(pair a, pair b, pair c, pair d, real t);
triple bezier(triple a, triple b, triple c, triple d, real t);
pair SSE;
@@ -1400,7 +1400,7 @@ projection operator init();
arrowhead operator init();
slice operator init();
transformation operator init();
-autoscaleT operator init();
+scaleT operator init();
marker operator init();
hsv operator init();
coords2 operator init();
@@ -1419,7 +1419,7 @@ bounds operator init();
Legend operator init();
position operator init();
bool3 operator init();
-scaleT operator init();
+autoscaleT operator init();
ScaleT operator init();
side operator init();
cputime operator init();
@@ -1595,7 +1595,7 @@ bool operator ==(file a, file b);
bool operator ==(path a, path b);
bool operator ==(path3 a, path3 b);
bool operator ==(bool3 a, bool3 b);
-bool operator ==(scaleT a, scaleT b);
+bool operator ==(autoscaleT a, autoscaleT b);
bool operator ==(ScaleT a, ScaleT b);
bool operator ==(side a, side b);
bool operator ==(cputime a, cputime b);
@@ -1628,7 +1628,7 @@ bool operator ==(bool a, bool3 b);
bool operator ==(slice a, slice b);
bool operator ==(freezableBounds a, freezableBounds b);
bool operator ==(transformation a, transformation b);
-bool operator ==(autoscaleT a, autoscaleT b);
+bool operator ==(scaleT a, scaleT b);
bool operator ==(marker a, marker b);
bool operator !=(bool a, bool b);
bool[] operator !=(bool a, bool[] b);
@@ -1667,7 +1667,7 @@ bool operator !=(file a, file b);
bool operator !=(path a, path b);
bool operator !=(path3 a, path3 b);
bool operator !=(bool3 a, bool3 b);
-bool operator !=(scaleT a, scaleT b);
+bool operator !=(autoscaleT a, autoscaleT b);
bool operator !=(ScaleT a, ScaleT b);
bool operator !=(side a, side b);
bool operator !=(cputime a, cputime b);
@@ -1700,7 +1700,7 @@ bool operator !=(bool a, bool3 b);
bool operator !=(slice a, slice b);
bool operator !=(freezableBounds a, freezableBounds b);
bool operator !=(transformation a, transformation b);
-bool operator !=(autoscaleT a, autoscaleT b);
+bool operator !=(scaleT a, scaleT b);
bool operator !=(marker a, marker b);
bool operator <(int a, int b);
bool[] operator <(int a, int[] b);
@@ -1825,6 +1825,7 @@ real[][] intersections(path3 p, path3 q, real fuzz=<default>);
real[][] intersections(path3 p, triple[][] p, real fuzz=<default>);
int animate(string args=<default>, string file=<default>, string format=<default>);
void generate_random_backtrace();
+real RELEASE;
pair intersectionpoint(path p, path q, real fuzz=<default>);
pair[] intersectionpoints(path p, path q, real fuzz=<default>);
pair[] intersectionpoints(explicit path[] p, explicit path[] q, real fuzz=<default>);
@@ -1869,7 +1870,7 @@ pen palegreen;
pen palegrey;
void clip(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, bool copy=<default>);
void clip(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, bool copy=<default>);
-marginT Margin(path, pen)(real begin, real end);
+marginT Margin(path, pen)(real begin, real end=<default>);
marginT Margin(path, pen);
position Relative(real position);
side Relative(explicit pair align);
@@ -3108,15 +3109,15 @@ void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT
void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-surface surface(triple[][] f, bool[][] cond=<default>);
-surface surface(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(real[][] f, pair a, pair b, bool[][] cond=<default>);
-surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
-surface surface(triple f(pair z), real[] u, real[] v, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
-surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
-surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
-surface surface(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, triple[][] f, bool[][] cond=<default>);
+surface surface(picture pic=<default>, real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(picture pic=<default>, real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(picture pic=<default>, real[][] f, pair a, pair b, bool[][] cond=<default>);
+surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, triple f(pair z), real[] u, real[] v, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
triple Dir(real)(triple dir);
void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
@@ -3128,7 +3129,11 @@ void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, rea
triple tickMin3(picture pic);
triple tickMax3(picture pic);
triple Scale(picture pic=<default>, triple v);
+triple[][] Scale(picture pic=<default>, triple[][] P);
+real ScaleX(picture pic=<default>, real x);
+real ScaleY(picture pic=<default>, real y);
real ScaleZ(picture pic=<default>, real z);
+real[][] ScaleZ(picture pic=<default>, real[][] P);
picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
@@ -3181,6 +3186,7 @@ void tick(picture pic=<default>, Label L, real value, triple v, triple dir, stri
surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
real[][][] bispline(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
+real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n);
void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
bool Crop;
@@ -3507,9 +3513,9 @@ int lcm(int m, int n);
rational max(rational a, rational b);
rational max(rational[] a);
simplex operator init();
+void simplexInit(rational[] c, rational[][] A, int[] s=<default>, rational[] b, int count);
void simplexPhase1(rational[] c, rational[][] A, rational[] b, int[] Bindices);
void simplexTableau(rational[][] E, int[] Bindices, int I=<default>, int J=<default>);
-void simplexStandard(rational[] c, rational[][] A, int[] s=<default>, rational[] b);
void simplexPhase2();
void simplexWrite(rational[][] E, int[] Bindices, int, int);
path roundedpath(path A, real R, real S=<default>);
@@ -3561,8 +3567,8 @@ void title(string s, pair position=<default>, pair align=<default>, pen p=<defau
pen titlepen;
real titleskip;
pair dateskip;
-pen authorpen;
pair titlealign;
+pen authorpen;
pen titlepagepen;
void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<default>);
pair titlepageposition;
@@ -3575,8 +3581,8 @@ void code(bool center=<default>, string s, pen p=<default>, real indent=<default
transform tinv;
pair urlskip;
void numberpage(pen p=<default>);
-bool allowstepping;
pen urlpen;
+bool allowstepping;
pair currentposition;
int[] firstnode;
bool firststep;
@@ -3747,8 +3753,8 @@ pen ForestGreen;
pen BurntOrange;
pen Tan;
pen Aquamarine;
-pen Lavender;
pen Brown;
+pen Lavender;
pen RubineRed;
pen TealBlue;
pen White;
@@ -3820,12 +3826,12 @@ pen SlateBlue;
pen SlateGray;
pen Magenta;
pen CadetBlue;
-pen LavenderBlush;
pen DeepPink;
+pen LavenderBlush;
pen Wheat;
pen SpringGreen;
-pen PeachPuff;
pen MidnightBlue;
+pen PeachPuff;
pen Olive;
pen OliveDrab;
pen Salmon;
@@ -3868,8 +3874,8 @@ pen Aquamarine;
pen IndianRed;
pen Crimson;
pen Azure;
-pen Lavender;
pen LawnGreen;
+pen Lavender;
pen Brown;
pen BurlyWood;
pen Moccasin;
@@ -3877,8 +3883,8 @@ pen DarkBlue;
pen Peru;
pen White;
pen Purple;
-pen Sienna;
pen WhiteSmoke;
+pen Sienna;
pen DimGray;
pen Orange;
pen OrangeRed;
@@ -3906,8 +3912,8 @@ pen SandyBrown;
pen BlanchedAlmond;
pen PowderBlue;
pen DarkGray;
-pen DeepSkyBlue;
pen DarkGreen;
+pen DeepSkyBlue;
pen DarkGoldenrod;
pen SkyBlue;
pen SeaGreen;
diff --git a/graphics/asymptote/asymptote.nsi b/graphics/asymptote/asymptote.nsi
index c9afcdb8b4..ffa5c89e25 100644
--- a/graphics/asymptote/asymptote.nsi
+++ b/graphics/asymptote/asymptote.nsi
@@ -1,6 +1,6 @@
!define PRODUCT_NAME "Asymptote"
!include AsymptoteInstallInfo.nsi
-!define PRODUCT_WEB_SITE "http://asymptote.sourceforge.net/"
+!define PRODUCT_WEB_SITE "https://asymptote.sourceforge.io/"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Asymptote"
!define PRODUCT_FILE_TYPE_REGKEY1 "Software\Classes\.asy"
!define PRODUCT_FILE_TYPE_REGKEY2 "Software\Classes\ASYFile\shell\open\command"
diff --git a/graphics/asymptote/asymptote.spec b/graphics/asymptote/asymptote.spec
index 348ca52546..aec82a3199 100644
--- a/graphics/asymptote/asymptote.spec
+++ b/graphics/asymptote/asymptote.spec
@@ -3,13 +3,13 @@
%global __python %{__python3}
Name: asymptote
-Version: 2.67
+Version: 2.68
Release: 1%{?dist}
Summary: Descriptive vector graphics language
Group: Applications/Publishing
License: GPL
-URL: http://asymptote.sourceforge.net/
+URL: https://asymptote.sourceforge.io/
Source: http://downloads.sourceforge.net/sourceforge/asymptote/asymptote-%{version}.src.tgz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
diff --git a/graphics/asymptote/base/asy-mode.el b/graphics/asymptote/base/asy-mode.el
index c1960e2303..ec3a3746d7 100644
--- a/graphics/asymptote/base/asy-mode.el
+++ b/graphics/asymptote/base/asy-mode.el
@@ -102,7 +102,7 @@ This package has been tested in:
This package seems to work with XEmacs 21.4 but not all the features are available (in particular syntax highlighting).
-Report bugs to http://asymptote.sourceforge.net
+Report bugs to https://github.com/vectorgraphics/asymptote/issues
Some variables can be customized: M-x customize-group <RET> asymptote <RET>."
diff --git a/graphics/asymptote/base/geometry.asy b/graphics/asymptote/base/geometry.asy
index 2f9d12538b..420d5bdc45 100644
--- a/graphics/asymptote/base/geometry.asy
+++ b/graphics/asymptote/base/geometry.asy
@@ -2636,7 +2636,7 @@ struct hyperbola
this.b = a * sqrt(this.e^2 - 1);
this.p = a * (this.e^2 - 1);
point A = this.C + (a^2/this.c) * unit(P[0]-this.C);
- this.D1 = line(A, A + rotateO(90) * unit(A - this.C));
+ this.D1 = line(A, A + rotate(90,this.C.coordsys.O) * unit(A - this.C));
this.D2 = reverse(rotate(180, C) * D1);
this.V1 = C + a * unit(F1 - C);
this.V2 = C + a * unit(F2 - C);
@@ -6575,7 +6575,7 @@ point[] intersectionpoints(line l, hyperbola h)
point[] op;
coordsys R = coordsys(h);
point A = intersectionpoint(l, h.A1), B = intersectionpoint(l, h.A2);
- point M = midpoint(segment(A, B));
+ point M = 0.5*(A + B);
bool tgt = Finite(M) ? M @ h : false;
if(tgt) {
if(M @ l) op.push(M);
diff --git a/graphics/asymptote/base/graph3.asy b/graphics/asymptote/base/graph3.asy
index 80ca1ec3a5..f690c6a3c1 100644
--- a/graphics/asymptote/base/graph3.asy
+++ b/graphics/asymptote/base/graph3.asy
@@ -650,7 +650,7 @@ void xaxis3At(picture pic=currentpicture, Label L="", axis axis,
pic.scale.x.bound.push(bounds);
}
-// An internal routine to draw an x axis at a particular y value.
+// An internal routine to draw a y axis at a particular value.
void yaxis3At(picture pic=currentpicture, Label L="", axis axis,
real ymin=-infinity, real ymax=infinity, pen p=currentpen,
ticks3 ticks=NoTicks3,
@@ -783,7 +783,7 @@ void yaxis3At(picture pic=currentpicture, Label L="", axis axis,
pic.scale.y.bound.push(bounds);
}
-// An internal routine to draw an x axis at a particular y value.
+// An internal routine to draw a z axis at a particular value.
void zaxis3At(picture pic=currentpicture, Label L="", axis axis,
real zmin=-infinity, real zmax=infinity, pen p=currentpen,
ticks3 ticks=NoTicks3,
@@ -1212,11 +1212,50 @@ triple Scale(picture pic=currentpicture, triple v)
return (pic.scale.x.T(v.x),pic.scale.y.T(v.y),pic.scale.z.T(v.z));
}
+triple[][] Scale(picture pic=currentpicture, triple[][] P)
+{
+ triple[][] Q=new triple[P.length][];
+ for(int i=0; i < P.length; ++i) {
+ triple[] Pi=P[i];
+ Q[i]=new triple[Pi.length];
+ for(int j=0; j < Pi.length; ++j)
+ Q[i][j]=Scale(pic,Pi[j]);
+ }
+ return Q;
+}
+
+real ScaleX(picture pic=currentpicture, real x)
+{
+ return pic.scale.x.T(x);
+}
+
+real ScaleY(picture pic=currentpicture, real y)
+{
+ return pic.scale.y.T(y);
+}
+
real ScaleZ(picture pic=currentpicture, real z)
{
return pic.scale.z.T(z);
}
+real[][] ScaleZ(picture pic=currentpicture, real[][] P)
+{
+ real[][] Q=new real[P.length][];
+ for(int i=0; i < P.length; ++i) {
+ real[] Pi=P[i];
+ Q[i]=new real[Pi.length];
+ for(int j=0; j < Pi.length; ++j)
+ Q[i][j]=ScaleZ(pic,Pi[j]);
+ }
+ return Q;
+}
+
+real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n)
+{
+ return map(Tinv,uniform(T(a),T(b),n));
+}
+
// Draw a tick of length size at triple v in direction dir using pen p.
void tick(picture pic=currentpicture, triple v, triple dir, real size=Ticksize,
pen p=currentpen)
@@ -1596,7 +1635,7 @@ bool vperiodic(triple[][] a) {
}
// return the surface described by a matrix f
-surface surface(triple[][] f, bool[][] cond={})
+surface surface(picture pic=currentpicture, triple[][] f, bool[][] cond={})
{
if(!rectangular(f)) abort("matrix is not rectangular");
@@ -1632,7 +1671,11 @@ surface surface(triple[][] f, bool[][] cond={})
int[] indexi=s.index[i];
for(int j=0; j < ny; ++j) {
if(all || (condi[j] && condi[j+1] && condp[j] && condp[j+1]))
- s.s[++k]=patch(new triple[] {fi[j],fp[j],fp[j+1],fi[j+1]});
+ s.s[++k]=patch(new triple[] {
+ Scale(pic,fi[j]),
+ Scale(pic,fp[j]),
+ Scale(pic,fp[j+1]),
+ Scale(pic,fi[j+1])});
indexi[j]=k;
}
}
@@ -1715,7 +1758,8 @@ surface bispline(real[][] z, real[][] p, real[][] q, real[][] r,
(x1,y2,zippip-qip-hxy*ri[jp]),(x1,yp,zippip)},
{(x2,yj,zpj-ppj),(x2,y1,zpjqpj-ppj-hxy*rp[j]),
(x2,y2,zppmppp-qpp+hxy*rp[jp]),(x2,yp,zppmppp)},
- {(xp,yj,zpj),(xp,y1,zpjqpj),(xp,y2,zpp-qpp),(xp,yp,zpp)}},copy=false);
+ {(xp,yj,zpj),(xp,y1,zpjqpj),(xp,y2,zpp-qpp),(xp,yp,zpp)}},
+ copy=false);
indexi[j]=k;
++k;
}
@@ -1787,11 +1831,11 @@ private real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r,
real zpjqpj=zpj+hy*qp[j];
s[k]=new real[][] {{zij,zijqij,zip-qip,zip},
- {zij+pij,zijqij+pij+hxy*ri[j],
- zippip-qip-hxy*ri[jp],zippip},
- {zpj-ppj,zpjqpj-ppj-hxy*rp[j],
- zppmppp-qpp+hxy*rp[jp],zppmppp},
- {zpj,zpjqpj,zpp-qpp,zpp}};
+ {zij+pij,zijqij+pij+hxy*ri[j],
+ zippip-qip-hxy*ri[jp],zippip},
+ {zpj-ppj,zpjqpj-ppj-hxy*rp[j],
+ zppmppp-qpp+hxy*rp[jp],zppmppp},
+ {zpj,zpjqpj,zpp-qpp,zpp}};
++k;
}
}
@@ -1831,10 +1875,15 @@ real[][][] bispline(real[][] f, real[] x, real[] y,
// return the surface described by a real matrix f, interpolated with
// xsplinetype and ysplinetype.
-surface surface(real[][] f, real[] x, real[] y,
- splinetype xsplinetype=null, splinetype ysplinetype=xsplinetype,
+surface surface(picture pic=currentpicture, real[][] f, real[] x, real[] y,
+ splinetype xsplinetype=null,
+ splinetype ysplinetype=xsplinetype,
bool[][] cond={})
{
+ real[][] f=ScaleZ(pic,f);
+ real[] x=map(pic.scale.x.T,x);
+ real[] y=map(pic.scale.y.T,y);
+
real epsilon=sqrtEpsilon*norm(y);
if(xsplinetype == null)
xsplinetype=(abs(x[0]-x[x.length-1]) <= epsilon) ? periodic : notaknot;
@@ -1863,8 +1912,9 @@ surface surface(real[][] f, real[] x, real[] y,
// return the surface described by a real matrix f, interpolated with
// xsplinetype and ysplinetype.
-surface surface(real[][] f, pair a, pair b, splinetype xsplinetype,
- splinetype ysplinetype=xsplinetype, bool[][] cond={})
+surface surface(picture pic=currentpicture, real[][] f, pair a, pair b,
+ splinetype xsplinetype, splinetype ysplinetype=xsplinetype,
+ bool[][] cond={})
{
if(!rectangular(f)) abort("matrix is not rectangular");
@@ -1873,13 +1923,14 @@ surface surface(real[][] f, pair a, pair b, splinetype xsplinetype,
if(nx == 0 || ny == 0) return nullsurface;
- real[] x=uniform(a.x,b.x,nx);
- real[] y=uniform(a.y,b.y,ny);
- return surface(f,x,y,xsplinetype,ysplinetype,cond);
+ real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nx);
+ real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,ny);
+ return surface(pic,f,x,y,xsplinetype,ysplinetype,cond);
}
// return the surface described by a real matrix f, interpolated linearly.
-surface surface(real[][] f, pair a, pair b, bool[][] cond={})
+surface surface(picture pic=currentpicture, real[][] f, pair a, pair b,
+ bool[][] cond={})
{
if(!rectangular(f)) abort("matrix is not rectangular");
@@ -1891,22 +1942,25 @@ surface surface(real[][] f, pair a, pair b, bool[][] cond={})
bool all=cond.length == 0;
triple[][] v=new triple[nx+1][ny+1];
+
+ pair a=Scale(pic,a);
+ pair b=Scale(pic,b);
for(int i=0; i <= nx; ++i) {
- real x=interp(a.x,b.x,i/nx);
+ real x=pic.scale.x.Tinv(interp(a.x,b.x,i/nx));
bool[] condi=all ? null : cond[i];
triple[] vi=v[i];
real[] fi=f[i];
for(int j=0; j <= ny; ++j)
if(all || condi[j])
- vi[j]=(x,interp(a.y,b.y,j/ny),fi[j]);
+ vi[j]=(x,pic.scale.y.Tinv(interp(a.y,b.y,j/ny)),fi[j]);
}
- return surface(v,cond);
+ return surface(pic,v,cond);
}
// return the surface described by a parametric function f over box(a,b),
// interpolated linearly.
-surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, triple f(pair z), pair a, pair b,
+ int nu=nmesh, int nv=nu, bool cond(pair z)=null)
{
if(nu <= 0 || nv <= 0) return nullsurface;
@@ -1921,23 +1975,25 @@ surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu,
triple[][] v=new triple[nu+1][nv+1];
+ pair a=Scale(pic,a);
+ pair b=Scale(pic,b);
for(int i=0; i <= nu; ++i) {
- real x=interp(a.x,b.x,i*du);
+ real x=pic.scale.x.Tinv(interp(a.x,b.x,i*du));
bool[] activei=all ? null : active[i];
triple[] vi=v[i];
for(int j=0; j <= nv; ++j) {
- pair z=(x,interp(a.y,b.y,j*dv));
+ pair z=(x,pic.scale.y.Tinv(interp(a.y,b.y,j*dv)));
if(all || (activei[j]=cond(z))) vi[j]=f(z);
}
}
- return surface(v,active);
+ return surface(pic,v,active);
}
// return the surface described by a parametric function f evaluated at u and v
// and interpolated with usplinetype and vsplinetype.
-surface surface(triple f(pair z), real[] u, real[] v,
- splinetype[] usplinetype, splinetype[] vsplinetype=Spline,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, triple f(pair z),
+ real[] u, real[] v, splinetype[] usplinetype,
+ splinetype[] vsplinetype=Spline, bool cond(pair z)=null)
{
int nu=u.length-1;
int nv=v.length-1;
@@ -1960,7 +2016,7 @@ surface surface(triple f(pair z), real[] u, real[] v,
for(int j=0; j <= nv; ++j) {
pair z=(ui,v[j]);
if(!all) activei[j]=cond(z);
- triple f=f(z);
+ triple f=Scale(pic,f(z));
fxi[j]=f.x;
fyi[j]=f.y;
fzi[j]=f.z;
@@ -2020,27 +2076,30 @@ surface surface(triple f(pair z), real[] u, real[] v,
// return the surface described by a parametric function f over box(a,b),
// interpolated with usplinetype and vsplinetype.
-surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu,
+surface surface(picture pic=currentpicture, triple f(pair z), pair a, pair b,
+ int nu=nmesh, int nv=nu,
splinetype[] usplinetype, splinetype[] vsplinetype=Spline,
bool cond(pair z)=null)
{
- return surface(f,uniform(a.x,b.x,nu),uniform(a.y,b.y,nv),
- usplinetype,vsplinetype,cond);
+ real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nu);
+ real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,nv);
+ return surface(pic,f,x,y,usplinetype,vsplinetype,cond);
}
// return the surface described by a real function f over box(a,b),
// interpolated linearly.
-surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, real f(pair z), pair a, pair b,
+ int nx=nmesh, int ny=nx, bool cond(pair z)=null)
{
- return surface(new triple(pair z) {return (z.x,z.y,f(z));},a,b,nx,ny,cond);
+ return surface(pic,new triple(pair z) {return (z.x,z.y,f(z));},a,b,nx,ny,
+ cond);
}
// return the surface described by a real function f over box(a,b),
// interpolated with xsplinetype and ysplinetype.
-surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx,
- splinetype xsplinetype, splinetype ysplinetype=xsplinetype,
- bool cond(pair z)=null)
+surface surface(picture pic=currentpicture, real f(pair z), pair a, pair b,
+ int nx=nmesh, int ny=nx, splinetype xsplinetype,
+ splinetype ysplinetype=xsplinetype, bool cond(pair z)=null)
{
bool[][] active;
bool all=cond == null;
@@ -2052,8 +2111,8 @@ surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx,
pair dz=(dx,dy);
real[][] F=new real[nx+1][ny+1];
- real[] x=uniform(a.x,b.x,nx);
- real[] y=uniform(a.y,b.y,ny);
+ real[] x=uniform(pic.scale.x.T,pic.scale.x.Tinv,a.x,b.x,nx);
+ real[] y=uniform(pic.scale.y.T,pic.scale.y.Tinv,a.y,b.y,ny);
for(int i=0; i <= nx; ++i) {
bool[] activei=all ? null : active[i];
real[] Fi=F[i];
@@ -2064,7 +2123,7 @@ surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx,
if(!all) activei[j]=cond(z);
}
}
- return surface(F,x,y,xsplinetype,ysplinetype,active);
+ return surface(pic,F,x,y,xsplinetype,ysplinetype,active);
}
guide3[][] lift(real f(real x, real y), guide[][] g,
diff --git a/graphics/asymptote/base/plain.asy b/graphics/asymptote/base/plain.asy
index 57bdb411a9..365aad02c7 100644
--- a/graphics/asymptote/base/plain.asy
+++ b/graphics/asymptote/base/plain.asy
@@ -39,6 +39,8 @@ include plain_markers;
include plain_arrows;
include plain_debugger;
+real RELEASE=(real) split(VERSION,"-")[0];
+
typedef void exitfcn();
void updatefunction()
@@ -145,7 +147,7 @@ void initdefaults()
atexit(null);
}
-// Return the sequence n,...m
+// Return the sequence n,...,m
int[] sequence(int n, int m)
{
return sequence(new int(int x){return x;},m-n+1)+n;
@@ -244,6 +246,7 @@ void beep()
struct processtime {
real user;
real system;
+ real clock;
}
struct cputime {
@@ -257,16 +260,21 @@ cputime cputime()
static processtime last;
real [] a=_cputime();
cputime cputime;
+ real clock=a[4];
cputime.parent.user=a[0];
cputime.parent.system=a[1];
+ cputime.parent.clock=clock;
cputime.child.user=a[2];
cputime.child.system=a[3];
- real user=a[0]+a[2];
- real system=a[1]+a[3];
+ cputime.child.clock=0;
+ real user=cputime.parent.user+cputime.child.user;
+ real system=cputime.parent.system+cputime.child.system;
cputime.change.user=user-last.user;
cputime.change.system=system-last.system;
+ cputime.change.clock=clock-last.clock;
last.user=user;
last.system=system;
+ last.clock=clock;
return cputime;
}
@@ -298,23 +306,3 @@ if(settings.autoimport != "") {
}
cputime();
-
-void nosetpagesize()
-{
- static bool initialized=false;
- if(!initialized && latex()) {
- // Portably pass nosetpagesize option to graphicx package.
- texpreamble("\usepackage{ifluatex}\ifluatex
-\ifx\pdfpagewidth\undefined\let\pdfpagewidth\paperwidth\fi
-\ifx\pdfpageheight\undefined\let\pdfpageheight\paperheight\fi\else
-\let\paperwidthsave\paperwidth\let\paperwidth\undefined
-\usepackage{graphicx}
-\let\paperwidth\paperwidthsave\fi");
- initialized=true;
- }
-}
-
-nosetpagesize();
-
-if(settings.tex == "luatex")
- texpreamble("\input luatex85.sty");
diff --git a/graphics/asymptote/base/plain_margins.asy b/graphics/asymptote/base/plain_margins.asy
index c452275448..fbd0163050 100644
--- a/graphics/asymptote/base/plain_margins.asy
+++ b/graphics/asymptote/base/plain_margins.asy
@@ -5,7 +5,7 @@ struct marginT {
typedef marginT margin(path, pen);
-path trim(path g, real begin, real end) {
+path trim(path g, real begin, real end=begin) {
real a=arctime(g,begin);
real b=arctime(g,arclength(g)-end);
return a <= b ? subpath(g,a,b) : point(g,a);
@@ -36,7 +36,7 @@ margin NoMargin()
};
}
-margin Margin(real begin, real end)
+margin Margin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
@@ -48,7 +48,7 @@ margin Margin(real begin, real end)
};
}
-margin PenMargin(real begin, real end)
+margin PenMargin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
@@ -60,7 +60,7 @@ margin PenMargin(real begin, real end)
};
}
-margin DotMargin(real begin, real end)
+margin DotMargin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
@@ -73,7 +73,7 @@ margin DotMargin(real begin, real end)
};
}
-margin TrueMargin(real begin, real end)
+margin TrueMargin(real begin, real end=begin)
{
return new marginT(path g, pen p) {
marginT margin;
diff --git a/graphics/asymptote/base/rationalSimplex.asy b/graphics/asymptote/base/rationalSimplex.asy
index 823d91c2d0..6070c7cbdb 100644
--- a/graphics/asymptote/base/rationalSimplex.asy
+++ b/graphics/asymptote/base/rationalSimplex.asy
@@ -1,8 +1,8 @@
// Rational simplex solver written by John C. Bowman and Pouria Ramazi, 2018.
import rational;
-void simplexStandard(rational[] c, rational[][] A, int[] s=new int[],
- rational[] b) {}
+void simplexInit(rational[] c, rational[][] A, int[] s=new int[],
+ rational[] b, int count) {}
void simplexTableau(rational[][] E, int[] Bindices, int I=-1, int J=-1) {}
void simplexPhase1(rational[] c, rational[][] A, rational[] b,
int[] Bindices) {}
@@ -35,7 +35,9 @@ struct simplex {
int case;
rational[] x;
+ rational[] xStandard;
rational cost;
+ rational[] d;
int m,n;
int J;
@@ -319,15 +321,26 @@ struct simplex {
case=(dual ? iterateDual : iterate)(D,n,Bindices);
simplexTableau(D,Bindices);
- if(case != OPTIMAL)
- return;
+ x=new rational[n];
for(int j=0; j < n; ++j)
x[j]=0;
for(int k=0; k < m; ++k)
x[Bindices[k]-1]=D[k][0];
+ if(case == UNBOUNDED) {
+ d=new rational[n];
+ for(int j=0; j < n; ++j)
+ d[j]=0;
+ d[J-1]=1;
+ for(int k=0; k < m; ++k)
+ d[Bindices[k]-1]=-D[k][J];
+ }
+
+ if(case != OPTIMAL)
+ return;
+
cost=-Dm[0];
}
@@ -391,10 +404,13 @@ struct simplex {
}
rational[] C=concat(c,array(count,rational(0)));
- if(count > 0) simplexStandard(C,a,b);
+ simplexInit(C,a,b,count);
operator init(C,a,b,phase1,dual);
- if(case == OPTIMAL && count > 0)
- x.delete(n,n+count-1);
+ if(case != INFEASIBLE) {
+ xStandard=copy(x);
+ if(count > 0)
+ x.delete(n,n+count-1);
+ }
}
}
diff --git a/graphics/asymptote/base/slide.asy b/graphics/asymptote/base/slide.asy
index 8a787c37a5..9d26c68065 100644
--- a/graphics/asymptote/base/slide.asy
+++ b/graphics/asymptote/base/slide.asy
@@ -309,7 +309,7 @@ void remark(bool center=false, string s, pair align=0, pen p=itempen,
void center(string s, pen p=itempen)
{
- remark("\center "+s,p);
+ remark(center=true,"\center "+s,p);
}
void vbox(string s, pen p=itempen)
diff --git a/graphics/asymptote/base/three.asy b/graphics/asymptote/base/three.asy
index de03d7c5ec..d7a20b516c 100644
--- a/graphics/asymptote/base/three.asy
+++ b/graphics/asymptote/base/three.asy
@@ -1880,6 +1880,14 @@ transform3 align(triple u)
return c >= 0 ? identity(4) : diagonal(1,-1,-1,1);
}
+// Align Label with normal in direction dir.
+Label align(Label L, triple dir)
+{
+ Label L=L.copy();
+ L.transform3(align(unit(dir)));
+ return L;
+}
+
// return a rotation that maps X,Y to the projection plane.
transform3 transform3(projection P=currentprojection)
{
diff --git a/graphics/asymptote/base/three_tube.asy b/graphics/asymptote/base/three_tube.asy
index 3a7902587e..60085a7d51 100644
--- a/graphics/asymptote/base/three_tube.asy
+++ b/graphics/asymptote/base/three_tube.asy
@@ -159,10 +159,10 @@ struct tube
triple c0=postcontrol(g,0);
triple c1=precontrol(g,1);
triple z1=point(g,1);
- real norm=sqrtEpsilon*max(abs(z0),abs(c0),abs(c1),abs(z1));
+ real norm=sqrtEpsilon*max(abs(z0),abs(c0),abs(c1),abs(z1),r);
surface[] s;
void Split(triple z0, triple c0, triple c1, triple z1,
- real depth=mantissaBits) {
+ int depth=mantissaBits) {
if(depth > 0) {
pair threshold(triple z0, triple c0, triple c1) {
triple u=c1-z0;
diff --git a/graphics/asymptote/base/tube.asy b/graphics/asymptote/base/tube.asy
index cfaf458db4..756eeabdda 100644
--- a/graphics/asymptote/base/tube.asy
+++ b/graphics/asymptote/base/tube.asy
@@ -14,10 +14,10 @@ real tubegranularity=1e-7;
void render(path3 s, real r, void f(path3, real))
{
void Split(triple z0, triple c0, triple c1, triple z1, real t0=0, real t1=1,
- real depth=mantissaBits) {
+ int depth=mantissaBits) {
if(depth > 0) {
real S=straightness(z0,c0,c1,z1);
- if(S > max(tubegranularity*max(abs(z0),abs(c0),abs(c1),abs(z1)))) {
+ if(S > max(tubegranularity*max(abs(z0),abs(c0),abs(c1),abs(z1),r))) {
--depth;
triple m0=0.5*(z0+c0);
triple m1=0.5*(c0+c1);
diff --git a/graphics/asymptote/bezierpatch.cc b/graphics/asymptote/bezierpatch.cc
index aeea79f77e..314ac94809 100644
--- a/graphics/asymptote/bezierpatch.cc
+++ b/graphics/asymptote/bezierpatch.cc
@@ -1063,9 +1063,9 @@ void Triangles::queue(size_t nP, const triple* P, size_t nN, const triple* N,
if(!nN) return;
data.clear();
- notRendered();
Onscreen=true;
transparent=Transparent;
+ notRendered();
data.Vertices.resize(nP);
data.indices.resize(3*nI);
diff --git a/graphics/asymptote/bezierpatch.h b/graphics/asymptote/bezierpatch.h
index 75ba7a66f9..b4159fe3ac 100644
--- a/graphics/asymptote/bezierpatch.h
+++ b/graphics/asymptote/bezierpatch.h
@@ -155,10 +155,10 @@ struct BezierPatch
void queue(const triple *g, bool straight, double ratio, bool Transparent,
GLfloat *colors=NULL) {
data.clear();
- notRendered();
Onscreen=true;
transparent=Transparent;
color=colors;
+ notRendered();
init(pixel*ratio);
render(g,straight,colors);
}
diff --git a/graphics/asymptote/configure b/graphics/asymptote/configure
index d29ed0cf4a..4cf88d7eab 100755
--- a/graphics/asymptote/configure
+++ b/graphics/asymptote/configure
@@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Asymptote 2.67.
+# Generated by GNU Autoconf 2.69 for Asymptote 2.68.
#
-# Report bugs to <http://sourceforge.net/projects/asymptote>.
+# Report bugs to <https://sourceforge.net/projects/asymptote>.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -267,7 +267,7 @@ fi
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
$as_echo "$0: Please tell bug-autoconf@gnu.org and
-$0: http://sourceforge.net/projects/asymptote about your
+$0: https://sourceforge.net/projects/asymptote about your
$0: system, including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
@@ -580,9 +580,9 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Asymptote'
PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.67'
-PACKAGE_STRING='Asymptote 2.67'
-PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote'
+PACKAGE_VERSION='2.68'
+PACKAGE_STRING='Asymptote 2.68'
+PACKAGE_BUGREPORT='https://sourceforge.net/projects/asymptote'
PACKAGE_URL=''
# Factoring default headers for most tests.
@@ -724,6 +724,7 @@ enable_gc
enable_gc_debug
enable_gc_full_debug
enable_sigsegv
+enable_curl
enable_readline
enable_static
enable_fftw
@@ -1287,7 +1288,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Asymptote 2.67 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.68 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1352,7 +1353,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Asymptote 2.67:";;
+ short | recursive ) echo "Configuration of Asymptote 2.68:";;
esac
cat <<\_ACEOF
@@ -1367,6 +1368,7 @@ Optional Features:
--enable-gc-debug enable (slow) garbage collector debugging
--enable-gc-full-debug enable (very slow) garbage collector backtrace
--enable-sigsegv[=yes] enable GNU Stack Overflow Handler
+ --enable-curl[=yes] enable libcurl and compile with optional URL support
--enable-readline[=yes] enable GNU Readline Library
--enable-static[=no] link against static libraries
--enable-fftw[=yes] enable FFTW Library
@@ -1405,7 +1407,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
-Report bugs to <http://sourceforge.net/projects/asymptote>.
+Report bugs to <https://sourceforge.net/projects/asymptote>.
_ACEOF
ac_status=$?
fi
@@ -1468,7 +1470,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Asymptote configure 2.67
+Asymptote configure 2.68
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1821,9 +1823,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## -------------------------------------------------------- ##
-## Report this to http://sourceforge.net/projects/asymptote ##
-## -------------------------------------------------------- ##"
+( $as_echo "## --------------------------------------------------------- ##
+## Report this to https://sourceforge.net/projects/asymptote ##
+## --------------------------------------------------------- ##"
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
@@ -2054,7 +2056,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Asymptote $as_me 2.67, which was
+It was created by Asymptote $as_me 2.68, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -4228,7 +4230,7 @@ fi
test -n "$TEXI2DVI" && break
done
-test -n "$TEXI2DVI" || TEXI2DVI="@echo \*\*\*\*\*\*\*\*\*\* Please install texi2dvi or put http://asymptote.sourceforge.net/asymptote.pdf in the doc directory: cannot execute texi2dvi"
+test -n "$TEXI2DVI" || TEXI2DVI="@echo \*\*\*\*\*\*\*\*\*\* Please install texi2dvi or put https://asymptote.sourceforge.io/asymptote.pdf in the doc directory: cannot execute texi2dvi"
@@ -6661,7 +6663,13 @@ _ACEOF
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_easy_init in -lcurl" >&5
+# Check whether --enable-curl was given.
+if test "${enable_curl+set}" = set; then :
+ enableval=$enable_curl;
+fi
+
+if test "x$enable_curl" != "xno"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_easy_init in -lcurl" >&5
$as_echo_n "checking for curl_easy_init in -lcurl... " >&6; }
if ${ac_cv_lib_curl_curl_easy_init+:} false; then :
$as_echo_n "(cached) " >&6
@@ -6709,6 +6717,10 @@ else
$as_echo "$as_me: *** Could not find libcurl: will compile without optional URL support. ***" >&6;}
fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: *** libcurl support disabled by configure flag: will compile without optional URL support. ***" >&5
+$as_echo "$as_me: *** libcurl support disabled by configure flag: will compile without optional URL support. ***" >&6;}
+fi
# Check whether --enable-readline was given.
if test "${enable_readline+set}" = set; then :
@@ -9315,7 +9327,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Asymptote $as_me 2.67, which was
+This file was extended by Asymptote $as_me 2.68, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9371,13 +9383,13 @@ $config_files
Configuration headers:
$config_headers
-Report bugs to <http://sourceforge.net/projects/asymptote>."
+Report bugs to <https://sourceforge.net/projects/asymptote>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Asymptote config.status 2.67
+Asymptote config.status 2.68
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/graphics/asymptote/configure.ac b/graphics/asymptote/configure.ac
index fd61d7974d..4abd151a9d 100644
--- a/graphics/asymptote/configure.ac
+++ b/graphics/asymptote/configure.ac
@@ -3,7 +3,7 @@
# this file.
AC_PREREQ(2)
-AC_INIT([Asymptote],[2.67],[http://sourceforge.net/projects/asymptote])
+AC_INIT([Asymptote],[2.68],[https://sourceforge.net/projects/asymptote])
VERSION=$PACKAGE_VERSION
AC_SUBST(VERSION)
m4_include([ax_pthread.m4])
@@ -55,7 +55,7 @@ fi
])
AC_CHECK_PROGS(TEXI2DVI,[texi2dvi],
-[@echo \*\*\*\*\*\*\*\*\*\* Please install texi2dvi or put http://asymptote.sourceforge.net/asymptote.pdf in the doc directory: cannot execute texi2dvi])
+[@echo \*\*\*\*\*\*\*\*\*\* Please install texi2dvi or put https://asymptote.sourceforge.io/asymptote.pdf in the doc directory: cannot execute texi2dvi])
AC_SUBST(TEXI2DVI)
@@ -265,8 +265,14 @@ fi
AC_CHECK_LIB([rt], [sched_yield])
-AC_CHECK_LIB([curl],[curl_easy_init],,
-AC_MSG_NOTICE([*** Could not find libcurl: will compile without optional URL support. ***]))
+AC_ARG_ENABLE(curl,
+[AS_HELP_STRING(--enable-curl[[[=yes]]],enable libcurl and compile with optional URL support)])
+if test "x$enable_curl" != "xno"; then
+ AC_CHECK_LIB([curl],[curl_easy_init],,
+ AC_MSG_NOTICE([*** Could not find libcurl: will compile without optional URL support. ***]))
+else
+ AC_MSG_NOTICE([*** libcurl support disabled by configure flag: will compile without optional URL support. ***])
+fi
AC_ARG_ENABLE(readline,
[AS_HELP_STRING(--enable-readline[[[=yes]]],enable GNU Readline Library)])
diff --git a/graphics/asymptote/doc/CAD.pdf b/graphics/asymptote/doc/CAD.pdf
index 735ca54509..cf9d137376 100644
--- a/graphics/asymptote/doc/CAD.pdf
+++ b/graphics/asymptote/doc/CAD.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/CDlabel.asy b/graphics/asymptote/doc/CDlabel.asy
index 51d8c89110..70c8e50a40 100644
--- a/graphics/asymptote/doc/CDlabel.asy
+++ b/graphics/asymptote/doc/CDlabel.asy
@@ -10,7 +10,7 @@ label(scale(1.1)*minipage(
\small The Vector Graphics Language}\\
\smallskip
\textsc{Andy Hammerlindl, John Bowman, and Tom Prince}
-http://asymptote.sourceforge.net\\
+https://asymptote.sourceforge.io\\
",8cm),(0,0.6));
label(graphic("logo","height=7cm"),(0,-0.22));
clip(unitcircle^^(scale(2/11.7)*unitcircle),evenodd);
diff --git a/graphics/asymptote/doc/FAQ/asy-faq.bfnn b/graphics/asymptote/doc/FAQ/asy-faq.bfnn
index 927d4c753d..a4dc8a0965 100644
--- a/graphics/asymptote/doc/FAQ/asy-faq.bfnn
+++ b/graphics/asymptote/doc/FAQ/asy-faq.bfnn
@@ -9,7 +9,7 @@
\set title Asymptote Frequently Asked Questions
\copyto ASCII
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- `date '+%d %h %Y'`
+ `%perl use POSIX; POSIX::strftime("%Y-%m-%d", gmtime($ENV{SOURCE_DATE_EPOCH} || time))`
\endcopy
\copyto INFO
@@ -22,7 +22,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- `date '+%d %h %Y'`
+ `%perl use POSIX; POSIX::strftime("%Y-%m-%d", gmtime($ENV{SOURCE_DATE_EPOCH} || time))`
\endcopy
diff --git a/graphics/asymptote/doc/FAQ/asy-faq.info b/graphics/asymptote/doc/FAQ/asy-faq.info
index c39a3a8263..bef48f5f9b 100644
--- a/graphics/asymptote/doc/FAQ/asy-faq.info
+++ b/graphics/asymptote/doc/FAQ/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 05 Aug 2020
+ 2020-11-23
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/graphics/asymptote/doc/FAQ/bfnnconv.pl b/graphics/asymptote/doc/FAQ/bfnnconv.pl
index 0a705e2c68..35a636b55e 100755
--- a/graphics/asymptote/doc/FAQ/bfnnconv.pl
+++ b/graphics/asymptote/doc/FAQ/bfnnconv.pl
@@ -135,7 +135,11 @@ while (<>) {
m/([^\\])\`/ || warn "`$_'";
$_= $';
$cmd= $`.$1;
- $it= `$cmd`; chop $it;
+ if($cmd =~ s/^%perl //) {
+ $it= eval($cmd);
+ } else {
+ $it= `$cmd`; chop $it;
+ }
print $fh $it;
}
print $fh $_;
diff --git a/graphics/asymptote/doc/FAQ/m-html.pl b/graphics/asymptote/doc/FAQ/m-html.pl
index 75b8ccc38f..77cc257504 100644
--- a/graphics/asymptote/doc/FAQ/m-html.pl
+++ b/graphics/asymptote/doc/FAQ/m-html.pl
@@ -22,6 +22,8 @@
# by the GPL. However, I would appreciate it if you credited me if
# appropriate in any documents you format using BFNN.)
+use POSIX;
+
%saniarray= ('<','lt', '>','gt', '&','amp', '"','quot');
sub html_init {
@@ -34,8 +36,9 @@ sub html_init {
print HTML "<html>\n";
$html_needpara= -1;
$html_end='';
- chop($html_date=`date '+%d %B %Y'`);
- chop($html_year=`date '+%Y'`);
+ my $epoch=$ENV{SOURCE_DATE_EPOCH} || time;
+ $html_date=POSIX::strftime("%Y-%m-%d", gmtime($epoch));
+ $html_year=POSIX::strftime("%Y", gmtime($epoch));
}
sub html_startup {
@@ -50,9 +53,9 @@ $user_title
content="Frequently asked questions and answers (FAQ) for Asymptote.">
<link rel="Bookmark" title="Asymptote FAQ" href="index.html">
<LINK rel="Bookmark" title="Asymptote Home Page"
- href="http://asymptote.sourceforge.net">
+ href="https://asymptote.sourceforge.io">
<LINK rel="Bookmark" title="Asymptote Manual"
- href="http://asymptote.sourceforge.net/doc/">
+ href="https://asymptote.sourceforge.io/doc/">
</head><body text="#000000" bgcolor="#FFFFFF"><h1>
$user_title
</h1>
diff --git a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
index 339adf81fd..01a57ca157 100644
--- a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+++ b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asy-latex.pdf b/graphics/asymptote/doc/asy-latex.pdf
index bc0b5debdc..923215ef26 100644
--- a/graphics/asymptote/doc/asy-latex.pdf
+++ b/graphics/asymptote/doc/asy-latex.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asy.1 b/graphics/asymptote/doc/asy.1
index a2ff046508..4ad758ce37 100644
--- a/graphics/asymptote/doc/asy.1
+++ b/graphics/asymptote/doc/asy.1
@@ -88,6 +88,9 @@ Command to autoexecute.
.B \-compact
Conserve memory at the expense of speed [false].
.TP
+.B \-compress
+Compress images in PDF output [true].
+.TP
.B \-d,\-debug
Enable debugging messages [false].
.TP
diff --git a/graphics/asymptote/doc/asyRefCard.pdf b/graphics/asymptote/doc/asyRefCard.pdf
index b092139c23..966b19c939 100644
--- a/graphics/asymptote/doc/asyRefCard.pdf
+++ b/graphics/asymptote/doc/asyRefCard.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asymptote.pdf b/graphics/asymptote/doc/asymptote.pdf
index c49b44adb1..d03ce3c779 100644
--- a/graphics/asymptote/doc/asymptote.pdf
+++ b/graphics/asymptote/doc/asymptote.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asymptote.texi b/graphics/asymptote/doc/asymptote.texi
index 643eaaf00a..aec78a639e 100644
--- a/graphics/asymptote/doc/asymptote.texi
+++ b/graphics/asymptote/doc/asymptote.texi
@@ -616,24 +616,22 @@ used; if it is old we recommend first putting
in the @code{Asymptote} source directory.
On @code{UNIX} platforms (other than @code{MacOS X}), we recommend
-using version @code{3.0.0} of the @code{freeglut} library. To compile
+using version @code{3.2.1} of the @code{freeglut} library. To compile
@code{freeglut}, download
@quotation
-@url{https://prdownloads.sourceforge.net/freeglut/freeglut-3.0.0.tar.gz}
+@url{https://prdownloads.sourceforge.net/freeglut/freeglut-3.2.1.tar.gz}
@end quotation
@noindent
and type (as the root user):
@verbatim
-gunzip freeglut-3.0.0.tar.gz
-tar -xf freeglut-3.0.0.tar
-cd freeglut-3.0.0
-./configure --prefix=/usr
-cmake .
+gunzip freeglut-3.2.1.tar.gz
+tar -xf freeglut-3.2.1.tar
+cd freeglut-3.2.1
+cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS=-fcommon .
make
make install
-cd ..
@end verbatim
-@noindent
+@noindent
Then compile @code{Asymptote} with the commands
@verbatim
@@ -1192,21 +1190,22 @@ Margins can be used to shrink the visible portion of a path by
Typical values of @code{margin}
are @code{NoMargin}, @code{BeginMargin}, @code{EndMargin} (or
equivalently @code{Margin}), and @code{Margins} (which leaves a margin
-at both ends of the path). One may use @code{Margin(real begin, real end)}
+at both ends of the path). One may use
+@code{Margin(real begin, real end=begin)}
to specify the size of the beginning and ending margin, respectively,
in multiples of the units @code{labelmargin(p)} used for aligning labels.
Alternatively, @code{BeginPenMargin}, @code{EndPenMargin}
(or equivalently @code{PenMargin}), @code{PenMargins},
-@code{PenMargin(real begin, real end)} specify a margin in units of
+@code{PenMargin(real begin, real end=begin)} specify a margin in units of
the pen line width, taking account of the pen line width when drawing
the path or arrow. For example, use @code{DotMargin}, an
abbreviation for @code{PenMargin(-0.5*dotfactor,0.5*dotfactor)},
to draw from the usual beginning point just up to the boundary of an
end dot of width @code{dotfactor*linewidth(p)}. The qualifiers
@code{BeginDotMargin}, @code{EndDotMargin}, and @code{DotMargins} work
-similarly. The qualifier @code{TrueMargin(real begin, real end)} allows one to
-specify a margin directly in @code{PostScript} units, independent of
-the pen line width.
+similarly. The qualifier @code{TrueMargin(real begin, real end=begin)}
+allows one to specify a margin directly in @code{PostScript} units,
+independent of the pen line width.
The use of arrows, bars, and margins is illustrated by the examples
@code{@uref{https://asymptote.sourceforge.io/gallery/Pythagoras.svg,,Pythagoras}@uref{https://asymptote.sourceforge.io/gallery/Pythagoras.asy,,.asy}} and
@@ -3102,7 +3101,7 @@ The default setting, @code{nobasealign},which may be changed with
full label bounding box for alignment. In contrast, @code{basealign}
requests that the @TeX{} baseline be respected.
The base align setting of a pen is returned by
-@code{int basealigin(pen p=currentpen)}.
+@code{int basealign(pen p=currentpen)}.
@cindex @code{fontsize}
@cindex @code{lineskip}
@@ -3397,6 +3396,8 @@ The implicit initializer for transforms is @code{identity()}.
The routines @code{shift(transform t)} and @code{shiftless(transform t)}
return the transforms @code{(t.x,t.y,0,0,0,0)} and
@code{(0,0,t.xx,t.xy,t.yx,t.yy)} respectively.
+The function bool @code{isometry(transform t)} can be used to test if @code{t}
+is an isometry (preserves distance).
@node Frames and pictures, Files, Transforms, Programming
@@ -3849,7 +3850,7 @@ value) files and portable @acronym{XDR} (External Data Representation)
binary files.
@cindex @code{input}
-An input file must first be opened with
+An input file can be opened with
@verbatim
input(string name="", bool check=true, string comment="#", string mode="");
@end verbatim
@@ -3979,7 +3980,8 @@ Data Representation) portable binary format (available on all
@code{UNIX} platforms).
Alternatively, a file may also be opened with @code{mode="binary"}
to read or write double precision reals and single
-precision integers in the native (nonportable) machine binary format.
+precision integers in the native (nonportable) machine binary format,
+or to read the entire file into a string.
The virtual member functions
@code{file singlereal(bool b=true)} and @code{file singleint(bool b=true)}
be used to change the precision of real and integer I/O
@@ -4399,10 +4401,12 @@ while in the second, it must be the (non-@code{void}) type of the variable.
The function @code{cputime()}
returns a structure @code{cputime} with cumulative @acronym{CPU} times
broken down into the fields @code{parent.user}, @code{parent.system},
-@code{child.user}, and @code{child.system}. For convenience, the
-incremental fields @code{change.user} and @code{change.system} indicate
-the change in the corresponding total parent and child @acronym{CPU}
-times since the last call to @code{cputime()}. The function
+@code{child.user}, and @code{child.system}, along with the cumulative
+wall clock time in @code{parent.clock}, all measured in seconds.
+For convenience, the incremental fields @code{change.user},
+@code{change.system}, and @code{change.clock} indicate the change in
+the corresponding fields since the last call to @code{cputime()}. The
+function
@verbatim
void write(file file=stdout, string s="", cputime c,
string format=cputimeformat, suffix suffix=none);
@@ -10082,7 +10086,7 @@ Pedram Emami developed the @code{Asymptote Web Application} at
@c LocalWords: XZEquals XYEquals XZZero XYZero InTicks OutTicks InOutTicks
@c LocalWords: fitscreen planeproject strokepath meshlight nullpens arrowdir
@c LocalWords: diffusepen emissivepen specularpen arrowbarb keyval
-@c LocalWords: hstretch vstretch roundbox nonconvex miterlimit basealigin cmd
+@c LocalWords: hstretch vstretch roundbox nonconvex miterlimit basealign cmd
@c LocalWords: maxviewport maxtile antialiased sphericalharmonic attachfile
@c LocalWords: vertexshading smoothelevation glOptions iconified iconify kate
@c LocalWords: psviewerOptions pdfviewerOptions viewportmargin asyattach SVG
diff --git a/graphics/asymptote/doc/exp.asy b/graphics/asymptote/doc/exp.asy
index 2c4eed90d4..3558a2759b 100644
--- a/graphics/asymptote/doc/exp.asy
+++ b/graphics/asymptote/doc/exp.asy
@@ -4,11 +4,11 @@ size(150,0);
real f(real x) {return exp(x);}
pair F(real x) {return (x,f(x));}
+draw(graph(f,-4,2,operator ..),red);
+
xaxis("$x$");
yaxis("$y$",0);
-draw(graph(f,-4,2,operator ..),red);
-
labely(1,E);
label("$e^x$",F(1),SE);
diff --git a/graphics/asymptote/doc/extra/intro.asy b/graphics/asymptote/doc/extra/intro.asy
index 68aa7e0347..8fe021e0ec 100644
--- a/graphics/asymptote/doc/extra/intro.asy
+++ b/graphics/asymptote/doc/extra/intro.asy
@@ -32,7 +32,7 @@ titlepage(long ? "Asymptote: The Vector Graphics Language" :
%and Instituto Nacional de Matem\'atica Pura e Aplicada (IMPA)
\medskip\Green{Collaborators: Orest Shardt, Michail Vidiassov}",
"June 30, 2010",
-"http://asymptote.sf.net/intro.pdf");
+"https://asymptote.sourceforge.io/intro.pdf");
title("History");
item("1979: \TeX\ and \MF\ (Knuth)");
@@ -48,7 +48,7 @@ subitem("2010: 3D PDF enhancements (Vidiassov \& Bowman)");
title("Statistics (as of June, 2010)");
item("Runs under Linux/UNIX, Mac OS X, Microsoft Windows.");
item("4000 downloads/month from primary\hfill\\
- {\tt asymptote.sourceforge.net} site alone.");
+ {\tt asymptote.sourceforge.io} site alone.");
item("80\ 000 lines of low-level C++ code.");
item("36\ 000 lines of high-level Asymptote code.");
@@ -941,7 +941,7 @@ defaultpen(0.5);
title("\mbox{Asymptote: 2D \& 3D Vector Graphics Language}");
asyinclude("../examples/logo3");
skip();
-center("\tt http://asymptote.sf.net");
+center("\tt https://asymptote.sourceforge.io");
center("(freely available under the LGPL license)");
// LocalWords: pdflatex mflogo viewportsize pagewidth pagemargin goysr bibtex
diff --git a/graphics/asymptote/doc/png/asymptote.info b/graphics/asymptote/doc/png/asymptote.info
index 4e3bd0ed3e..de9dea4f35 100644
--- a/graphics/asymptote/doc/png/asymptote.info
+++ b/graphics/asymptote/doc/png/asymptote.info
@@ -1,7 +1,7 @@
This is asymptote.info, produced by makeinfo version 6.6 from
asymptote.texi.
-This file documents 'Asymptote', version 2.67.
+This file documents 'Asymptote', version 2.68.
<https://asymptote.sourceforge.io>
@@ -22,7 +22,7 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.67.
+This file documents 'Asymptote', version 2.68.
<https://asymptote.sourceforge.io>
@@ -506,18 +506,16 @@ used; if it is old we recommend first putting
in the 'Asymptote' source directory.
On 'UNIX' platforms (other than 'MacOS X'), we recommend using
-version '3.0.0' of the 'freeglut' library. To compile 'freeglut',
+version '3.2.1' of the 'freeglut' library. To compile 'freeglut',
download
- <https://prdownloads.sourceforge.net/freeglut/freeglut-3.0.0.tar.gz>
+ <https://prdownloads.sourceforge.net/freeglut/freeglut-3.2.1.tar.gz>
and type (as the root user):
-gunzip freeglut-3.0.0.tar.gz
-tar -xf freeglut-3.0.0.tar
-cd freeglut-3.0.0
-./configure --prefix=/usr
-cmake .
+gunzip freeglut-3.2.1.tar.gz
+tar -xf freeglut-3.2.1.tar
+cd freeglut-3.2.1
+cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_FLAGS=-fcommon .
make
make install
-cd ..
Then compile 'Asymptote' with the commands
./configure
@@ -945,18 +943,19 @@ equivalently 'ArcArrow'), 'MidArcArrow', and 'ArcArrows'.
'labelmargin(p)' to avoid overlap with other drawn objects. Typical
values of 'margin' are 'NoMargin', 'BeginMargin', 'EndMargin' (or
equivalently 'Margin'), and 'Margins' (which leaves a margin at both
-ends of the path). One may use 'Margin(real begin, real end)' to
+ends of the path). One may use 'Margin(real begin, real end=begin)' to
specify the size of the beginning and ending margin, respectively, in
multiples of the units 'labelmargin(p)' used for aligning labels.
Alternatively, 'BeginPenMargin', 'EndPenMargin' (or equivalently
-'PenMargin'), 'PenMargins', 'PenMargin(real begin, real end)' specify a
-margin in units of the pen line width, taking account of the pen line
-width when drawing the path or arrow. For example, use 'DotMargin', an
-abbreviation for 'PenMargin(-0.5*dotfactor,0.5*dotfactor)', to draw from
-the usual beginning point just up to the boundary of an end dot of width
+'PenMargin'), 'PenMargins', 'PenMargin(real begin, real end=begin)'
+specify a margin in units of the pen line width, taking account of the
+pen line width when drawing the path or arrow. For example, use
+'DotMargin', an abbreviation for
+'PenMargin(-0.5*dotfactor,0.5*dotfactor)', to draw from the usual
+beginning point just up to the boundary of an end dot of width
'dotfactor*linewidth(p)'. The qualifiers 'BeginDotMargin',
'EndDotMargin', and 'DotMargins' work similarly. The qualifier
-'TrueMargin(real begin, real end)' allows one to specify a margin
+'TrueMargin(real begin, real end=begin)' allows one to specify a margin
directly in 'PostScript' units, independent of the pen line width.
The use of arrows, bars, and margins is illustrated by the examples
@@ -1283,7 +1282,7 @@ label(scale(1.1)*minipage(
\small The Vector Graphics Language}\\
\smallskip
\textsc{Andy Hammerlindl, John Bowman, and Tom Prince}
-http://asymptote.sourceforge.net\\
+https://asymptote.sourceforge.io\\
",8cm),(0,0.6));
label(graphic("logo","height=7cm"),(0,-0.22));
clip(unitcircle^^(scale(2/11.7)*unitcircle),evenodd);
@@ -2438,7 +2437,7 @@ with one or more color components equal to 1.
'defaultpen(pen)', causes the label alignment routines to use the
full label bounding box for alignment. In contrast, 'basealign'
requests that the TeX baseline be respected. The base align
- setting of a pen is returned by 'int basealigin(pen p=currentpen)'.
+ setting of a pen is returned by 'int basealign(pen p=currentpen)'.
* The font size is specified in TeX points (1 pt = 1/72.27 inches)
with the function 'pen fontsize(real size, real
@@ -2688,7 +2687,8 @@ power with the '^' operator.
The implicit initializer for transforms is 'identity()'. The
routines 'shift(transform t)' and 'shiftless(transform t)' return the
transforms '(t.x,t.y,0,0,0,0)' and '(0,0,t.xx,t.xy,t.yx,t.yy)'
-respectively.
+respectively. The function bool 'isometry(transform t)' can be used to
+test if 't' is an isometry (preserves distance).

File: asymptote.info, Node: Frames and pictures, Next: Files, Prev: Transforms, Up: Programming
@@ -3027,7 +3027,7 @@ File: asymptote.info, Node: Files, Next: Variable initializers, Prev: Frames
value) files and portable XDR (External Data Representation) binary
files.
- An input file must first be opened with
+ An input file can be opened with
input(string name="", bool check=true, string comment="#", string mode="");
reading is then done by assignment:
file fin=input("test.txt");
@@ -3103,12 +3103,12 @@ Microsystem's XDR (External Data Representation) portable binary format
(available on all 'UNIX' platforms). Alternatively, a file may also be
opened with 'mode="binary"' to read or write double precision reals and
single precision integers in the native (nonportable) machine binary
-format. The virtual member functions 'file singlereal(bool b=true)' and
-'file singleint(bool b=true)' be used to change the precision of real
-and integer I/O operations, respectively, for an XDR or binary file 'f'.
-Similarly, the function 'file signedint(bool b=true)' can be used to
-modify the signedness of integer reads and writes for an XDR or binary
-file 'f'.
+format, or to read the entire file into a string. The virtual member
+functions 'file singlereal(bool b=true)' and 'file singleint(bool
+b=true)' be used to change the precision of real and integer I/O
+operations, respectively, for an XDR or binary file 'f'. Similarly, the
+function 'file signedint(bool b=true)' can be used to modify the
+signedness of integer reads and writes for an XDR or binary file 'f'.
The virtual members 'name', 'mode', 'singlereal', 'singleint', and
'signedint' may be used to query the respective parameters for a given
@@ -3426,10 +3426,11 @@ be the (non-'void') type of the variable.
The function 'cputime()' returns a structure 'cputime' with
cumulative CPU times broken down into the fields 'parent.user',
-'parent.system', 'child.user', and 'child.system'. For convenience, the
-incremental fields 'change.user' and 'change.system' indicate the change
-in the corresponding total parent and child CPU times since the last
-call to 'cputime()'. The function
+'parent.system', 'child.user', and 'child.system', along with the
+cumulative wall clock time in 'parent.clock', all measured in seconds.
+For convenience, the incremental fields 'change.user', 'change.system',
+and 'change.clock' indicate the change in the corresponding fields since
+the last call to 'cputime()'. The function
void write(file file=stdout, string s="", cputime c,
string format=cputimeformat, suffix suffix=none);
displays the incremental user cputime followed by "u", the incremental
@@ -5872,11 +5873,11 @@ following routines:
real f(real x) {return exp(x);}
pair F(real x) {return (x,f(x));}
+ draw(graph(f,-4,2,operator ..),red);
+
xaxis("$x$");
yaxis("$y$",0);
- draw(graph(f,-4,2,operator ..),red);
-
labely(1,E);
label("$e^x$",F(1),SE);
@@ -8184,6 +8185,7 @@ Options (negate by replacing - with -no):
-cmyk Convert rgb colors to cmyk [false]
-c,-command string Command to autoexecute
-compact Conserve memory at the expense of speed [false]
+-compress Compress images in PDF output [true]
-d,-debug Enable debugging messages [false]
-devicepixelratio n Ratio of physical to logical pixels [1]
-digits n Default output file precision [7]
@@ -8721,9 +8723,9 @@ Index
* ---: Bezier curves. (line 84)
* -=: Self & prefix operators.
(line 6)
-* -c: Options. (line 194)
-* -l: Options. (line 213)
-* -u: Options. (line 204)
+* -c: Options. (line 195)
+* -l: Options. (line 214)
+* -u: Options. (line 205)
* -V: Configuring. (line 6)
* -V <1>: Drawing in batch mode.
(line 16)
@@ -8801,7 +8803,7 @@ Index
* alias: Structures. (line 62)
* alias <1>: Arrays. (line 179)
* Align: label. (line 12)
-* aligndir: Options. (line 186)
+* aligndir: Options. (line 187)
* all: Arrays. (line 338)
* Allow: Pens. (line 363)
* and: Bezier curves. (line 56)
@@ -8815,7 +8817,7 @@ Index
* animation <1>: animation. (line 6)
* annotate: annotate. (line 6)
* antialias: three. (line 254)
-* antialias <1>: Options. (line 156)
+* antialias <1>: Options. (line 157)
* append: Files. (line 38)
* append <1>: Arrays. (line 39)
* arc: Paths and guides. (line 24)
@@ -8869,7 +8871,7 @@ Index
* Asymptote Web Application: Description. (line 6)
* asymptote.sty: LaTeX usage. (line 6)
* asymptote.xml: Editing modes. (line 48)
-* ASYMPTOTE_CONFIG: Options. (line 127)
+* ASYMPTOTE_CONFIG: Options. (line 128)
* atan: Mathematical functions.
(line 6)
* aTan: Mathematical functions.
@@ -8884,7 +8886,7 @@ Index
* attach <1>: LaTeX usage. (line 50)
* attach <2>: graph. (line 406)
* autoadjust: three. (line 398)
-* autoimport: Options. (line 123)
+* autoimport: Options. (line 124)
* automatic scaling: graph. (line 690)
* automatic scaling <1>: graph. (line 690)
* axialshade: fill. (line 43)
@@ -9011,7 +9013,7 @@ Index
* CJK: Pens. (line 244)
* clamped: graph. (line 36)
* clang: Compiling from UNIX source.
- (line 50)
+ (line 48)
* clear: Files. (line 97)
* clear <1>: Debugger. (line 23)
* clip: clip. (line 6)
@@ -9041,13 +9043,13 @@ Index
* conditional <1>: Arithmetic & logical.
(line 61)
* config: Configuring. (line 74)
-* config <1>: Options. (line 127)
+* config <1>: Options. (line 128)
* configuration file: Configuring. (line 20)
-* configuration file <1>: Options. (line 127)
+* configuration file <1>: Options. (line 128)
* configuring: Configuring. (line 6)
* conj: Data types. (line 62)
* constructors: Structures. (line 91)
-* context: Options. (line 156)
+* context: Options. (line 157)
* continue: Programming. (line 48)
* continue <1>: Debugger. (line 31)
* contour: contour. (line 6)
@@ -9058,8 +9060,8 @@ Index
* convert: Configuring. (line 74)
* convert <1>: Files. (line 159)
* convert <2>: animation. (line 6)
-* convert <3>: Options. (line 156)
-* convertOptions: Options. (line 142)
+* convert <3>: Options. (line 157)
+* convertOptions: Options. (line 143)
* Coons shading: fill. (line 78)
* copy: Arrays. (line 172)
* cos: Mathematical functions.
@@ -9148,7 +9150,7 @@ Index
* do: Programming. (line 48)
* DOSendl: Files. (line 65)
* DOSnewl: Files. (line 65)
-* dot: draw. (line 82)
+* dot: draw. (line 83)
* dot <1>: Data types. (line 103)
* dot <2>: Data types. (line 194)
* dot <3>: Arrays. (line 267)
@@ -9163,7 +9165,7 @@ Index
* draw: Drawing commands. (line 34)
* draw <1>: draw. (line 6)
* Draw: draw. (line 26)
-* draw <2>: draw. (line 112)
+* draw <2>: draw. (line 113)
* Draw <1>: Frames and pictures.
(line 160)
* draw <3>: three. (line 144)
@@ -9171,10 +9173,10 @@ Index
* drawline: math. (line 9)
* drawtree: drawtree. (line 6)
* dvips: Configuring. (line 74)
-* dvipsOptions: Options. (line 142)
+* dvipsOptions: Options. (line 143)
* dvisvgm: Configuring. (line 74)
-* dvisvgm <1>: Options. (line 161)
-* dvisvgmOptions: Options. (line 142)
+* dvisvgm <1>: Options. (line 162)
+* dvisvgmOptions: Options. (line 143)
* E: Labels. (line 18)
* E <1>: Mathematical functions.
(line 48)
@@ -9216,7 +9218,7 @@ Index
* eol: Files. (line 97)
* eol <1>: Arrays. (line 352)
* EPS: label. (line 78)
-* EPS <1>: Options. (line 156)
+* EPS <1>: Options. (line 157)
* erase: Drawing in interactive mode.
(line 11)
* erase <1>: Data types. (line 257)
@@ -9268,11 +9270,11 @@ Index
* fft <1>: Arrays. (line 259)
* fft <2>: Arrays. (line 263)
* FFTW: Compiling from UNIX source.
- (line 64)
+ (line 62)
* file: Files. (line 6)
* file <1>: Debugger. (line 44)
* Fill: draw. (line 26)
-* fill: draw. (line 117)
+* fill: draw. (line 118)
* fill <1>: fill. (line 6)
* fill <2>: fill. (line 17)
* Fill <1>: Frames and pictures.
@@ -9307,7 +9309,7 @@ Index
* fontsize: Pens. (line 192)
* for: Programming. (line 26)
* format: Data types. (line 290)
-* format <1>: Options. (line 156)
+* format <1>: Options. (line 157)
* forum: Help. (line 6)
* frame: Frames and pictures.
(line 7)
@@ -9335,7 +9337,7 @@ Index
* globalwrite: Files. (line 40)
* globalwrite <1>: Files. (line 154)
* glOptions: three. (line 254)
-* glOptions <1>: Options. (line 142)
+* glOptions <1>: Options. (line 143)
* GNU Scientific Library: Mathematical functions.
(line 48)
* gouraudshade: fill. (line 63)
@@ -9344,7 +9346,7 @@ Index
* graph: graph. (line 6)
* graph3: graph3. (line 6)
* graphic: label. (line 78)
-* graphic <1>: Options. (line 161)
+* graphic <1>: Options. (line 162)
* graphical user interface: GUI. (line 6)
* gray: Pens. (line 25)
* grayscale: Pens. (line 25)
@@ -9354,10 +9356,10 @@ Index
* grid3: grid3. (line 6)
* gs: Configuring. (line 20)
* GSL: Compiling from UNIX source.
- (line 64)
+ (line 62)
* gsl: Mathematical functions.
(line 48)
-* gsOptions: Options. (line 142)
+* gsOptions: Options. (line 143)
* GUI: GUI. (line 6)
* GUI installation: GUI installation. (line 6)
* GUI usage: GUI usage. (line 6)
@@ -9387,8 +9389,8 @@ Index
* HTML5: three. (line 223)
* htmlviewer: Configuring. (line 20)
* htmlviewer <1>: Configuring. (line 43)
-* htmlviewerOptions: Options. (line 142)
-* hyperrefOptions: Options. (line 142)
+* htmlviewerOptions: Options. (line 143)
+* hyperrefOptions: Options. (line 143)
* hypot: Mathematical functions.
(line 6)
* I: Mathematical functions.
@@ -9406,7 +9408,7 @@ Index
* image <1>: palette. (line 58)
* ImageMagick: Configuring. (line 74)
* ImageMagick <1>: animation. (line 6)
-* ImageMagick <2>: Options. (line 156)
+* ImageMagick <2>: Options. (line 157)
* images: palette. (line 6)
* implicit casts: Casts. (line 6)
* implicit linear solver: MetaPost. (line 10)
@@ -9419,7 +9421,7 @@ Index
* including images: label. (line 78)
* increasing: math. (line 55)
* inf: Data types. (line 35)
-* inheritance: Structures. (line 181)
+* inheritance: Structures. (line 182)
* initialized: Arrays. (line 39)
* initializers: Variable initializers.
(line 6)
@@ -9498,7 +9500,7 @@ Index
* k_scaled: Mathematical functions.
(line 48)
* label: Labels. (line 6)
-* Label: draw. (line 100)
+* Label: draw. (line 101)
* label <1>: label. (line 6)
* Label <1>: label. (line 14)
* Label <2>: graph. (line 330)
@@ -9512,7 +9514,7 @@ Index
* language context: Pens. (line 235)
* lastcut: Paths and guides. (line 266)
* lasy-mode: Editing modes. (line 6)
-* latex: Options. (line 156)
+* latex: Options. (line 157)
* LaTeX NFSS fonts: Pens. (line 206)
* LaTeX usage: LaTeX usage. (line 6)
* latexmk: LaTeX usage. (line 30)
@@ -9528,7 +9530,7 @@ Index
* LeftTicks <1>: graph. (line 233)
* LeftView: three. (line 426)
* legend: Drawing commands. (line 34)
-* legend <1>: draw. (line 64)
+* legend <1>: draw. (line 65)
* legend <2>: graph. (line 424)
* Legendre: Mathematical functions.
(line 48)
@@ -9543,7 +9545,7 @@ Index
* lexorder: math. (line 63)
* lexorder <1>: math. (line 66)
* libcurl: Import. (line 94)
-* libgs: Options. (line 161)
+* libgs: Options. (line 162)
* libm routines: Mathematical functions.
(line 6)
* libsigsegv: Functions. (line 100)
@@ -9576,12 +9578,12 @@ Index
* longdashed: Pens. (line 102)
* longitude: Data types. (line 169)
* loop: Programming. (line 26)
-* lualatex: Options. (line 156)
-* luatex: Options. (line 156)
+* lualatex: Options. (line 157)
+* luatex: Options. (line 157)
* MacOS X binary distributions: MacOS X binary distributions.
(line 6)
* MacOS X configuration: Compiling from UNIX source.
- (line 50)
+ (line 48)
* makepen: Pens. (line 338)
* map: Arrays. (line 131)
* map <1>: Arrays. (line 136)
@@ -9683,7 +9685,7 @@ Index
* None <1>: draw. (line 26)
* none: Files. (line 65)
* normal: three. (line 526)
-* nosafe: Options. (line 181)
+* nosafe: Options. (line 182)
* NOT: Arithmetic & logical.
(line 68)
* notaknot: graph. (line 36)
@@ -9704,7 +9706,7 @@ Index
* obliqueZ: three. (line 358)
* ode: ode. (line 6)
* offset: Pens. (line 123)
-* offset <1>: Options. (line 186)
+* offset <1>: Options. (line 187)
* OmitTick: graph. (line 223)
* OmitTickInterval: graph. (line 223)
* OmitTickIntervals: graph. (line 223)
@@ -9736,7 +9738,7 @@ Index
* outprefix: Frames and pictures.
(line 91)
* output: Files. (line 38)
-* output <1>: Options. (line 156)
+* output <1>: Options. (line 157)
* OutTicks: graph3. (line 35)
* overloading functions: Functions. (line 55)
* overwrite: Pens. (line 360)
@@ -9769,11 +9771,11 @@ Index
* patterns: Pens. (line 271)
* patterns <1>: patterns. (line 6)
* PBR: three. (line 74)
-* PDF: Options. (line 156)
-* pdflatex: Options. (line 156)
-* pdfreloadOptions: Options. (line 142)
+* PDF: Options. (line 157)
+* pdflatex: Options. (line 157)
+* pdfreloadOptions: Options. (line 143)
* pdfviewer: Configuring. (line 20)
-* pdfviewerOptions: Options. (line 142)
+* pdfviewerOptions: Options. (line 143)
* pen: Pens. (line 6)
* PenMargin: draw. (line 42)
* PenMargin2: three. (line 622)
@@ -9830,7 +9832,7 @@ Index
* pstoedit: PostScript to Asymptote.
(line 6)
* psviewer: Configuring. (line 20)
-* psviewerOptions: Options. (line 142)
+* psviewerOptions: Options. (line 143)
* pt: Figure size. (line 18)
* public: Structures. (line 6)
* push: Arrays. (line 39)
@@ -9883,7 +9885,7 @@ Index
* rename: Files. (line 156)
* render: three. (line 46)
* render <1>: three. (line 174)
-* render <2>: Options. (line 156)
+* render <2>: Options. (line 157)
* replace: Data types. (line 270)
* resetdefaultpen: Pens. (line 387)
* rest arguments: Rest arguments. (line 6)
@@ -9922,7 +9924,7 @@ Index
* runtime imports: Import. (line 102)
* Russian: Pens. (line 237)
* S: Labels. (line 18)
-* safe: Options. (line 181)
+* safe: Options. (line 182)
* save: Frames and pictures.
(line 288)
* saveline: Files. (line 139)
@@ -9954,7 +9956,7 @@ Index
(line 6)
* sequence: Arrays. (line 118)
* settings: Configuring. (line 20)
-* settings <1>: Options. (line 127)
+* settings <1>: Options. (line 128)
* sgn: Mathematical functions.
(line 26)
* shading: fill. (line 32)
@@ -9998,7 +10000,7 @@ Index
* size <4>: Frames and pictures.
(line 74)
* size <5>: three. (line 540)
-* size <6>: Options. (line 156)
+* size <6>: Options. (line 157)
* size3: three. (line 300)
* Slant: label. (line 42)
* slant: Transforms. (line 38)
@@ -10067,9 +10069,9 @@ Index
* surface <1>: three. (line 118)
* surface <2>: three. (line 132)
* surface <3>: graph3. (line 99)
-* SVG: Options. (line 161)
+* SVG: Options. (line 162)
* system: Data types. (line 354)
-* system <1>: Options. (line 181)
+* system <1>: Options. (line 182)
* syzygy: syzygy. (line 6)
* tab: Files. (line 65)
* tab completion: Drawing in interactive mode.
@@ -10090,7 +10092,7 @@ Index
* tessellation: three. (line 144)
* tex: Frames and pictures.
(line 305)
-* tex <1>: Options. (line 156)
+* tex <1>: Options. (line 157)
* TeX fonts: Pens. (line 213)
* TeX string: Data types. (line 208)
* texcommand: Configuring. (line 74)
@@ -10214,7 +10216,7 @@ Index
* viewportwidth: LaTeX usage. (line 50)
* views: three. (line 272)
* vim: Editing modes. (line 32)
-* virtual functions: Structures. (line 181)
+* virtual functions: Structures. (line 182)
* void: Data types. (line 10)
* W: Labels. (line 18)
* WebGL: three. (line 223)
@@ -10233,7 +10235,7 @@ Index
* xasy: GUI. (line 6)
* xaxis3: graph3. (line 7)
* xdr: Files. (line 80)
-* xelatex: Options. (line 156)
+* xelatex: Options. (line 157)
* XEquals: graph. (line 265)
* xequals: graph. (line 278)
* xlimits: graph. (line 639)
@@ -10304,141 +10306,141 @@ Node: Microsoft Windows14010
Node: Configuring15217
Node: Search paths19829
Node: Compiling from UNIX source20837
-Node: Editing modes23967
-Node: Git26389
-Node: Uninstall26896
-Node: Tutorial27242
-Node: Drawing in batch mode28089
-Node: Drawing in interactive mode28965
-Node: Figure size29997
-Node: Labels31592
-Node: Paths32420
-Ref: unitcircle33036
-Node: Drawing commands34934
-Node: draw36742
-Ref: arrows37924
-Node: fill43422
-Ref: gradient shading44468
-Node: clip49082
-Node: label49831
-Ref: Label50431
-Node: Bezier curves56289
-Node: Programming60189
-Ref: array iteration61942
-Node: Data types62109
-Ref: format72877
-Node: Paths and guides77323
-Ref: circle77577
-Ref: extension87277
-Node: Pens94087
-Ref: fillrule101778
-Ref: basealign102682
-Ref: transparency106365
-Ref: makepen109959
-Ref: overwrite110843
-Node: Transforms112057
-Node: Frames and pictures113889
-Ref: envelope115047
-Ref: size116140
-Ref: unitsize117127
-Ref: shipout118200
-Ref: filltype120551
-Ref: add123964
-Ref: add about124906
-Ref: tex127936
-Node: Files128832
-Ref: cd129896
-Ref: scroll134755
-Node: Variable initializers137673
-Node: Structures140390
-Node: Operators147892
-Node: Arithmetic & logical148206
-Node: Self & prefix operators150576
-Node: User-defined operators151370
-Node: Implicit scaling152283
-Node: Functions152846
-Ref: stack overflow155988
-Node: Default arguments156270
-Node: Named arguments157026
-Node: Rest arguments159596
-Node: Mathematical functions162718
-Node: Arrays167375
-Ref: sort174664
-Ref: tridiagonal177575
-Ref: solve178806
-Node: Slices182946
-Node: Casts186854
-Node: Import189124
-Node: Static194705
-Node: LaTeX usage197591
-Node: Base modules204086
-Node: plain206563
-Node: simplex207237
-Node: math207510
-Node: interpolate210093
-Node: geometry210372
-Node: trembling210966
-Node: stats211235
-Node: patterns211494
-Node: markers211729
-Node: map213588
-Node: tree214012
-Node: binarytree214196
-Node: drawtree214863
-Node: syzygy215064
-Node: feynman215338
-Node: roundedpath215612
-Node: animation215894
-Ref: animate216315
-Node: embed217427
-Node: slide218381
-Node: MetaPost218712
-Node: babel219428
-Node: labelpath219660
-Node: labelpath3220480
-Node: annotate220791
-Node: CAD221261
-Node: graph221571
-Ref: ticks228731
-Ref: pathmarkers242456
-Ref: marker242927
-Ref: markuniform243281
-Ref: errorbars245089
-Ref: automatic scaling249568
-Node: palette261283
-Ref: images261401
-Ref: image265575
-Ref: logimage266096
-Ref: penimage267202
-Ref: penfunctionimage267465
-Node: three268237
-Ref: PostScript3D297764
-Node: obj299502
-Node: graph3299751
-Ref: GaussianSurface305034
-Node: grid3306184
-Node: solids306969
-Node: tube307961
-Node: flowchart310191
-Node: contour314834
-Node: contour3320149
-Node: smoothcontour3320461
-Node: slopefield322182
-Node: ode323672
-Node: Options323929
-Ref: configuration file330777
-Ref: settings330777
-Ref: texengines332041
-Ref: convert332041
-Node: Interactive mode335475
-Ref: history337625
-Node: GUI338928
-Node: GUI installation339479
-Node: GUI usage340212
-Node: PostScript to Asymptote341275
-Node: Help342034
-Node: Debugger343708
-Node: Credits345464
-Node: Index346572
+Node: Editing modes23988
+Node: Git26410
+Node: Uninstall26917
+Node: Tutorial27263
+Node: Drawing in batch mode28110
+Node: Drawing in interactive mode28986
+Node: Figure size30018
+Node: Labels31613
+Node: Paths32441
+Ref: unitcircle33057
+Node: Drawing commands34955
+Node: draw36763
+Ref: arrows37945
+Node: fill43461
+Ref: gradient shading44507
+Node: clip49121
+Node: label49870
+Ref: Label50470
+Node: Bezier curves56328
+Node: Programming60228
+Ref: array iteration61981
+Node: Data types62148
+Ref: format72916
+Node: Paths and guides77362
+Ref: circle77616
+Ref: extension87316
+Node: Pens94126
+Ref: fillrule101817
+Ref: basealign102721
+Ref: transparency106403
+Ref: makepen109997
+Ref: overwrite110881
+Node: Transforms112095
+Node: Frames and pictures114034
+Ref: envelope115192
+Ref: size116285
+Ref: unitsize117272
+Ref: shipout118345
+Ref: filltype120696
+Ref: add124109
+Ref: add about125051
+Ref: tex128081
+Node: Files128977
+Ref: cd130034
+Ref: scroll134936
+Node: Variable initializers137854
+Node: Structures140571
+Node: Operators148149
+Node: Arithmetic & logical148463
+Node: Self & prefix operators150833
+Node: User-defined operators151627
+Node: Implicit scaling152540
+Node: Functions153103
+Ref: stack overflow156245
+Node: Default arguments156527
+Node: Named arguments157283
+Node: Rest arguments159853
+Node: Mathematical functions162975
+Node: Arrays167632
+Ref: sort174921
+Ref: tridiagonal177832
+Ref: solve179063
+Node: Slices183203
+Node: Casts187111
+Node: Import189381
+Node: Static194962
+Node: LaTeX usage197848
+Node: Base modules204343
+Node: plain206820
+Node: simplex207494
+Node: math207767
+Node: interpolate210350
+Node: geometry210629
+Node: trembling211223
+Node: stats211492
+Node: patterns211751
+Node: markers211986
+Node: map213845
+Node: tree214269
+Node: binarytree214453
+Node: drawtree215120
+Node: syzygy215321
+Node: feynman215595
+Node: roundedpath215869
+Node: animation216151
+Ref: animate216572
+Node: embed217684
+Node: slide218638
+Node: MetaPost218969
+Node: babel219685
+Node: labelpath219917
+Node: labelpath3220737
+Node: annotate221048
+Node: CAD221518
+Node: graph221828
+Ref: ticks228988
+Ref: pathmarkers242713
+Ref: marker243184
+Ref: markuniform243538
+Ref: errorbars245346
+Ref: automatic scaling249825
+Node: palette261540
+Ref: images261658
+Ref: image265832
+Ref: logimage266353
+Ref: penimage267459
+Ref: penfunctionimage267722
+Node: three268494
+Ref: PostScript3D298021
+Node: obj299759
+Node: graph3300008
+Ref: GaussianSurface305291
+Node: grid3306441
+Node: solids307226
+Node: tube308218
+Node: flowchart310448
+Node: contour315091
+Node: contour3320406
+Node: smoothcontour3320718
+Node: slopefield322439
+Node: ode323929
+Node: Options324186
+Ref: configuration file331094
+Ref: settings331094
+Ref: texengines332358
+Ref: convert332358
+Node: Interactive mode335792
+Ref: history337942
+Node: GUI339245
+Node: GUI installation339796
+Node: GUI usage340529
+Node: PostScript to Asymptote341592
+Node: Help342351
+Node: Debugger344025
+Node: Credits345781
+Node: Index346889

End Tag Table
diff --git a/graphics/asymptote/drawsurface.cc b/graphics/asymptote/drawsurface.cc
index ccb34cb970..b491f20b0d 100644
--- a/graphics/asymptote/drawsurface.cc
+++ b/graphics/asymptote/drawsurface.cc
@@ -275,6 +275,8 @@ void drawBezierPatch::render(double size2, const triple& b, const triple& B,
if(offscreen) { // Fully offscreen
S.Onscreen=false;
S.data.clear();
+ S.transparent=transparent;
+ S.color=colors;
S.notRendered();
return;
}
@@ -519,6 +521,8 @@ void drawBezierTriangle::render(double size2, const triple& b, const triple& B,
if(offscreen) { // Fully offscreen
S.Onscreen=false;
S.data.clear();
+ S.transparent=transparent;
+ S.color=colors;
S.notRendered();
return;
}
@@ -980,6 +984,7 @@ void drawTriangles::render(double size2, const triple& b,
if(bbox2(Min,Max).offscreen()) { // Fully offscreen
R.Onscreen=false;
R.data.clear();
+ R.transparent=transparent;
R.notRendered();
return;
}
diff --git a/graphics/asymptote/examples/animations/slidemovies.asy b/graphics/asymptote/examples/animations/slidemovies.asy
index bbfdd21eab..22bd4e2f3c 100644
--- a/graphics/asymptote/examples/animations/slidemovies.asy
+++ b/graphics/asymptote/examples/animations/slidemovies.asy
@@ -16,7 +16,7 @@ access embed; // For non-portable embedded movies
usersetting();
titlepage("Slides with {\tt Asymptote}: Animations","John C. Bowman",
- "University of Alberta","\today","http://asymptote.sf.net");
+ "University of Alberta","\today","https://asymptote.sourceforge.io");
title("Embedded PDF movies (portable)");
animation a=animation("A");
diff --git a/graphics/asymptote/examples/slidedemo.asy b/graphics/asymptote/examples/slidedemo.asy
index 0cbd15af74..107564601f 100644
--- a/graphics/asymptote/examples/slidedemo.asy
+++ b/graphics/asymptote/examples/slidedemo.asy
@@ -31,7 +31,7 @@ titlepage(title="Slides with {\tt Asymptote}: A Demo",
author="John C. Bowman",
institution="University of Alberta",
date="\today",
- url="http://asymptote.sf.net");
+ url="https://asymptote.sourceforge.io");
outline("Basic Commands");
item("item");
@@ -112,7 +112,7 @@ add(pic.fit(0,14cm));
title("\mbox{Asymptote: 2D \& 3D Vector Graphics Language}");
asyinclude("logo3");
-center("\tt http://asymptote.sf.net");
+center("\tt https://asymptote.sourceforge.io");
center("(freely available under the LGPL license)");
bibliography("refs");
diff --git a/graphics/asymptote/fileio.cc b/graphics/asymptote/fileio.cc
index 524e653e12..29752e9524 100644
--- a/graphics/asymptote/fileio.cc
+++ b/graphics/asymptote/fileio.cc
@@ -56,9 +56,10 @@ void ifile::open()
void ifile::ignoreComment()
{
if(comment == 0) return;
- int c;
- bool eol=(stream->peek() == '\n');
- if(eol && csvmode && nullfield) return;
+ int c=stream->peek();
+ bool eol=c == '\n';
+ if((csvmode || linemode) && eol) {nullfield=true; return;}
+ if(csvmode && c == ',') nullfield=true;
for(;;) {
while(isspace(c=stream->peek())) {
stream->ignore();
diff --git a/graphics/asymptote/fileio.h b/graphics/asymptote/fileio.h
index b68ba0431b..0e04088a9f 100644
--- a/graphics/asymptote/fileio.h
+++ b/graphics/asymptote/fileio.h
@@ -62,7 +62,7 @@ inline void openpipeout()
}
inline string locatefile(string name) {
- string s=settings::locateFile(name);
+ string s=settings::locateFile(name,false,"");
return s.empty() ? name : s;
}
@@ -84,7 +84,7 @@ protected:
bool standard; // Standard input/output
bool binary; // Read in binary mode.
- bool nullfield; // Used to detect a final null field in csv+line mode.
+ bool nullfield; // Used to detect null fields in line mode and cvs mode.
string whitespace;
size_t index; // Terminator index.
@@ -224,7 +224,7 @@ public:
if(errorstream::interrupt) throw interrupted();
else {
ignoreComment(val);
- val=T();
+ val=vm::Undefined;
if(!nullfield)
Read(val);
csv();
@@ -537,7 +537,11 @@ public:
}
}
void Read(char& val) {iread(val);}
- void Read(string& val) {char c; iread(c); val=c;}
+ void Read(string& val) {
+ ostringstream buf;
+ buf << fstream->rdbuf();
+ val=buf.str();
+ }
void Read(double& val) {
if(singlereal) {float fval; iread(fval); val=fval;}
diff --git a/graphics/asymptote/glrender.cc b/graphics/asymptote/glrender.cc
index d995fd6f8a..822039d934 100644
--- a/graphics/asymptote/glrender.cc
+++ b/graphics/asymptote/glrender.cc
@@ -560,10 +560,8 @@ void Export()
size_t count=0;
do {
trBeginTile(tr);
- fpu_trap(false); // Work around FE_INVALID in OSMesa.
remesh=true;
drawscene(fullWidth,fullHeight);
- fpu_trap(settings::trap());
++count;
} while (trEndTile(tr));
if(settings::verbose > 1)
@@ -1485,7 +1483,10 @@ void init()
glutInitContextProfile(GLUT_CORE_PROFILE);
#endif
+ fpu_trap(false); // Work around FE_INVALID
glutInit(&argc,argv);
+ fpu_trap(settings::trap());
+
screenWidth=glutGet(GLUT_SCREEN_WIDTH);
screenHeight=glutGet(GLUT_SCREEN_HEIGHT);
#endif
@@ -1586,8 +1587,10 @@ void glrender(const string& prefix, const picture *pic, const string& format,
#ifdef HAVE_GL
#ifdef HAVE_PTHREAD
+#ifndef HAVE_LIBOSMESA
static bool initializedView=false;
#endif
+#endif
#ifdef HAVE_LIBOSMESA
if(!webgl) {
@@ -1740,7 +1743,9 @@ void glrender(const string& prefix, const picture *pic, const string& format,
#endif
#endif
string title=string(settings::PROGRAM)+": "+prefix;
+ fpu_trap(false); // Work around FE_INVALID
window=glutCreateWindow(title.c_str());
+ fpu_trap(settings::trap());
GLint samplebuf[1];
glGetIntegerv(GL_SAMPLES,samplebuf);
@@ -1769,7 +1774,7 @@ void glrender(const string& prefix, const picture *pic, const string& format,
} else if(!havewindow) {
glutInitWindowSize(maxTileWidth,maxTileHeight);
glutInitDisplayMode(displaymode);
- fpu_trap(false); // Work around FE_INVALID in Gallium
+ fpu_trap(false); // Work around FE_INVALID
window=glutCreateWindow("");
fpu_trap(settings::trap());
glutHideWindow();
@@ -1827,8 +1832,10 @@ void glrender(const string& prefix, const picture *pic, const string& format,
if(View) {
#ifdef HAVE_LIBGLUT
#ifdef HAVE_PTHREAD
+#ifndef HAVE_LIBOSMESA
initializedView=true;
#endif
+#endif
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
@@ -1997,7 +2004,9 @@ void drawBuffer(vertexBuffer& data, GLint shader)
glEnableVertexAttribArray(colorAttrib);
}
+ fpu_trap(false); // Work around FE_INVALID
glDrawElements(data.type,data.indices.size(),GL_UNSIGNED_INT,(void *) 0);
+ fpu_trap(settings::trap());
glDisableVertexAttribArray(positionAttrib);
if(normal && gl::Nlights > 0)
diff --git a/graphics/asymptote/locate.cc b/graphics/asymptote/locate.cc
index bb34cbaaf3..d1c11a1f27 100644
--- a/graphics/asymptote/locate.cc
+++ b/graphics/asymptote/locate.cc
@@ -37,15 +37,15 @@ bool exists(string filename)
file_list_t searchPath;
// Returns list of possible filenames, accounting for extensions.
-file_list_t mungeFileName(string id)
+file_list_t mungeFileName(string id, string suffix)
{
string ext = fs::extension(id);
file_list_t files;
- if (ext == "."+settings::suffix) {
+ if (ext == "."+suffix) {
files.push_back(id);
- files.push_back(id+"."+settings::suffix);
+ files.push_back(id+"."+suffix);
} else {
- files.push_back(id+"."+settings::suffix);
+ files.push_back(id+"."+suffix);
files.push_back(id);
}
return files;
@@ -62,10 +62,10 @@ string join(string dir, string file, bool full)
// Find the appropriate file, first looking in the local directory, then the
// directory given in settings, and finally the global system directory.
-string locateFile(string id, bool full)
+string locateFile(string id, bool full, string suffix)
{
if(id.empty()) return "";
- file_list_t filenames = mungeFileName(id);
+ file_list_t filenames = mungeFileName(id,suffix);
for (file_list_t::iterator leaf = filenames.begin();
leaf != filenames.end();
++leaf) {
diff --git a/graphics/asymptote/locate.h b/graphics/asymptote/locate.h
index 338057b805..458d0885df 100644
--- a/graphics/asymptote/locate.h
+++ b/graphics/asymptote/locate.h
@@ -9,6 +9,7 @@
#define LOCATE_H
#include "common.h"
+#include "settings.h"
namespace settings {
@@ -17,7 +18,7 @@ extern file_list_t searchPath;
// Find the appropriate file, first looking in the local directory, then the
// directory given in settings, and finally the global system directory.
-string locateFile(string id, bool full=false);
+string locateFile(string id, bool full=false, string suffix=settings::suffix);
namespace fs {
diff --git a/graphics/asymptote/main.cc b/graphics/asymptote/main.cc
index acd3c7a7a0..e4eb1dc590 100644
--- a/graphics/asymptote/main.cc
+++ b/graphics/asymptote/main.cc
@@ -2,7 +2,7 @@
*
* This file is part of the vector graphics language Asymptote
* Copyright (C) 2004 Andy Hammerlindl, John C. Bowman, Tom Prince
- * http://asymptote.sourceforge.net
+ * https://asymptote.sourceforge.io
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
diff --git a/graphics/asymptote/parser.cc b/graphics/asymptote/parser.cc
index c6b8f76414..06509acd39 100644
--- a/graphics/asymptote/parser.cc
+++ b/graphics/asymptote/parser.cc
@@ -169,7 +169,14 @@ size_t curlCallback(char *data, size_t size, size_t n, stringstream& buf)
return Size;
}
-int curlProgress(void *, curl_off_t, curl_off_t, curl_off_t, curl_off_t)
+#ifdef CURLOPT_XFERINFODATA
+#define CURL_OFF_T curl_off_t
+#else
+#define CURL_OFF_T double
+#define CURLOPT_XFERINFOFUNCTION CURLOPT_PROGRESSFUNCTION
+#endif
+
+int curlProgress(void *, CURL_OFF_T, CURL_OFF_T, CURL_OFF_T, CURL_OFF_T)
{
return errorstream::interrupt ? -1 : 0;
}
diff --git a/graphics/asymptote/picture.cc b/graphics/asymptote/picture.cc
index 7b75a8b836..9cb847ae09 100644
--- a/graphics/asymptote/picture.cc
+++ b/graphics/asymptote/picture.cc
@@ -615,6 +615,7 @@ bool picture::texprocess(const string& texname, const string& outname,
int picture::epstopdf(const string& epsname, const string& pdfname)
{
+ string compress=getSetting<bool>("compress") ? "true" : "false";
mem::vector<string> cmd;
cmd.push_back(getSetting<string>("gs"));
cmd.push_back("-q");
@@ -629,7 +630,8 @@ int picture::epstopdf(const string& epsname, const string& pdfname)
cmd.push_back("-dSubsetFonts=true");
cmd.push_back("-dEmbedAllFonts=true");
cmd.push_back("-dMaxSubsetPct=100");
- cmd.push_back("-dPDFSETTINGS=/prepress");
+ cmd.push_back("-dEncodeColorImages="+compress);
+ cmd.push_back("-dEncodeGrayImages="+compress);
cmd.push_back("-dCompatibilityLevel=1.4");
if(!getSetting<bool>("autorotate"))
cmd.push_back("-dAutoRotatePages=/None");
@@ -670,12 +672,7 @@ int picture::pdftoeps(const string& pdfname, const string& epsname, bool eps)
if(safe)
cmd.push_back("-dSAFER");
string texengine=getSetting<string>("tex");
-
- if(eps)
- cmd.push_back("-sDEVICE="+getSetting<string>("epsdriver"));
- else
- cmd.push_back("-sDEVICE=ps2write");
-
+ cmd.push_back("-sDEVICE="+getSetting<string>(eps ? "epsdriver": "psdriver"));
cmd.push_back("-sOutputFile="+stripDir(epsname));
cmd.push_back(stripDir(pdfname));
diff --git a/graphics/asymptote/revision.cc b/graphics/asymptote/revision.cc
index 7b68ef669c..8ba89c007a 100644
--- a/graphics/asymptote/revision.cc
+++ b/graphics/asymptote/revision.cc
@@ -1,2 +1,2 @@
-const char *REVISION="2.67";
+const char *REVISION="2.68";
const char *AsyGLVersion="1.00";
diff --git a/graphics/asymptote/runarray.cc b/graphics/asymptote/runarray.cc
index 0621833758..05c7f0a1a7 100644
--- a/graphics/asymptote/runarray.cc
+++ b/graphics/asymptote/runarray.cc
@@ -1257,21 +1257,23 @@ void array2Transpose(stack *Stack)
#line 1041 "runarray.in"
size_t asize=checkArray(a);
array *c=new array(0);
+ size_t csize=0;
for(size_t i=0; i < asize; i++) {
size_t ip=i+1;
array *ai=read<array*>(a,i);
size_t aisize=checkArray(ai);
- size_t csize=checkArray(c);
- if(csize < aisize) {
+ if(c->size() < aisize) {
c->resize(aisize);
- for(size_t j=csize; j < aisize; j++) {
- (*c)[j]=new array(ip);
- }
+ for(size_t j=csize; j < aisize; j++)
+ (*c)[j]=new array(0);
+ csize=aisize;
}
for(size_t j=0; j < aisize; j++) {
- array *cj=read<array*>(c,j);
- if(checkArray(cj) < ip) cj->resize(ip);
- (*cj)[i]=(*ai)[j];
+ if(!(*ai)[j].empty()) {
+ array *cj=read<array*>(c,j);
+ if(checkArray(cj) < ip) cj->resize(ip);
+ (*cj)[i]=(*ai)[j];
+ }
}
}
{Stack->push<array*>(c); return;}
@@ -1281,12 +1283,12 @@ void array2Transpose(stack *Stack)
// permutation (021 or 120, etc; original is 012).
// Transpose by sending respective members to the permutated locations:
// return the array obtained by putting a[i][j][k] into position perm{ijk}.
-#line 1068 "runarray.in"
+#line 1070 "runarray.in"
void array3Transpose(stack *Stack)
{
array * perm=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 1069 "runarray.in"
+#line 1071 "runarray.in"
const size_t DIM=3;
if(checkArray(perm) != DIM) {
@@ -1370,13 +1372,13 @@ void array3Transpose(stack *Stack)
// Find the index of the nth true value in a boolean array or -1 if not found.
// If n is negative, search backwards.
-#line 1153 "runarray.in"
+#line 1155 "runarray.in"
// Int find(boolarray *a, Int n=1);
void gen_runarray44(stack *Stack)
{
Int n=vm::pop<Int>(Stack,1);
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1154 "runarray.in"
+#line 1156 "runarray.in"
size_t size=checkArray(a);
Int j=-1;
if(n > 0)
@@ -1393,12 +1395,12 @@ void gen_runarray44(stack *Stack)
}
// Find all indices of true values in a boolean array.
-#line 1171 "runarray.in"
+#line 1173 "runarray.in"
// Intarray* findall(boolarray *a);
void gen_runarray45(stack *Stack)
{
boolarray * a=vm::pop<boolarray *>(Stack);
-#line 1172 "runarray.in"
+#line 1174 "runarray.in"
size_t size=checkArray(a);
array *b=new array(0);
for(size_t i=0; i < size; i++) {
@@ -1411,13 +1413,13 @@ void gen_runarray45(stack *Stack)
// construct vector obtained by replacing those elements of b for which the
// corresponding elements of a are false by the corresponding element of c.
-#line 1185 "runarray.in"
+#line 1187 "runarray.in"
void arrayConditional(stack *Stack)
{
array * c=vm::pop<array *>(Stack);
array * b=vm::pop<array *>(Stack);
array * a=vm::pop<array *>(Stack);
-#line 1186 "runarray.in"
+#line 1188 "runarray.in"
size_t size=checkArray(a);
array *r=new array(size);
if(b && c) {
@@ -1441,22 +1443,22 @@ void arrayConditional(stack *Stack)
}
// Return an n x n identity matrix.
-#line 1210 "runarray.in"
+#line 1212 "runarray.in"
// realarray2* identity(Int n);
void gen_runarray47(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 1211 "runarray.in"
+#line 1213 "runarray.in"
{Stack->push<realarray2*>(Identity(n)); return;}
}
// Return the inverse of an n x n matrix a using Gauss-Jordan elimination.
-#line 1216 "runarray.in"
+#line 1218 "runarray.in"
// realarray2* inverse(realarray2 *a);
void gen_runarray48(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1217 "runarray.in"
+#line 1219 "runarray.in"
size_t n=checkArray(a);
double *A;
copyArray2C(A,a,true,0,NoGC);
@@ -1469,14 +1471,14 @@ void gen_runarray48(stack *Stack)
// Solve the linear equation ax=b by LU decomposition, returning the
// solution x, where a is an n x n matrix and b is an array of length n.
// If no solution exists, return an empty array.
-#line 1230 "runarray.in"
+#line 1232 "runarray.in"
// realarray* solve(realarray2 *a, realarray *b, bool warn=true);
void gen_runarray49(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
realarray * b=vm::pop<realarray *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1231 "runarray.in"
+#line 1233 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<realarray*>(new array(0)); return;}
@@ -1528,14 +1530,14 @@ void gen_runarray49(stack *Stack)
// Solve the linear equation ax=b by LU decomposition, returning the
// solution x, where a is an n x n matrix and b is an n x m matrix.
// If no solution exists, return an empty array.
-#line 1283 "runarray.in"
+#line 1285 "runarray.in"
// realarray2* solve(realarray2 *a, realarray2 *b, bool warn=true);
void gen_runarray50(stack *Stack)
{
bool warn=vm::pop<bool>(Stack,true);
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1284 "runarray.in"
+#line 1286 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<realarray2*>(new array(0)); return;}
@@ -1597,12 +1599,12 @@ void gen_runarray50(stack *Stack)
}
// Compute the determinant of an n x n matrix.
-#line 1346 "runarray.in"
+#line 1348 "runarray.in"
// real determinant(realarray2 *a);
void gen_runarray51(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1347 "runarray.in"
+#line 1349 "runarray.in"
real *A;
copyArray2C(A,a);
size_t n=checkArray(a);
@@ -1617,13 +1619,13 @@ void gen_runarray51(stack *Stack)
{Stack->push<real>(det); return;}
}
-#line 1362 "runarray.in"
+#line 1364 "runarray.in"
// realarray* *(realarray2 *a, realarray *b);
void gen_runarray52(stack *Stack)
{
realarray * b=vm::pop<realarray *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1363 "runarray.in"
+#line 1365 "runarray.in"
size_t n=checkArray(a);
size_t m=checkArray(b);
array *c=new array(n);
@@ -1641,13 +1643,13 @@ void gen_runarray52(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 1381 "runarray.in"
+#line 1383 "runarray.in"
// realarray* *(realarray *a, realarray2 *b);
void gen_runarray53(stack *Stack)
{
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1382 "runarray.in"
+#line 1384 "runarray.in"
size_t n=checkArray(a);
if(n != checkArray(b)) error(incommensurate);
real *A;
@@ -1675,62 +1677,62 @@ void gen_runarray53(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 1410 "runarray.in"
+#line 1412 "runarray.in"
// Intarray2* *(Intarray2 *a, Intarray2 *b);
void gen_runarray54(stack *Stack)
{
Intarray2 * b=vm::pop<Intarray2 *>(Stack);
Intarray2 * a=vm::pop<Intarray2 *>(Stack);
-#line 1411 "runarray.in"
+#line 1413 "runarray.in"
{Stack->push<Intarray2*>(mult<Int>(a,b)); return;}
}
-#line 1415 "runarray.in"
+#line 1417 "runarray.in"
// realarray2* *(realarray2 *a, realarray2 *b);
void gen_runarray55(stack *Stack)
{
realarray2 * b=vm::pop<realarray2 *>(Stack);
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1416 "runarray.in"
+#line 1418 "runarray.in"
{Stack->push<realarray2*>(mult<real>(a,b)); return;}
}
-#line 1420 "runarray.in"
+#line 1422 "runarray.in"
// pairarray2* *(pairarray2 *a, pairarray2 *b);
void gen_runarray56(stack *Stack)
{
pairarray2 * b=vm::pop<pairarray2 *>(Stack);
pairarray2 * a=vm::pop<pairarray2 *>(Stack);
-#line 1421 "runarray.in"
+#line 1423 "runarray.in"
{Stack->push<pairarray2*>(mult<pair>(a,b)); return;}
}
-#line 1425 "runarray.in"
+#line 1427 "runarray.in"
// triple *(realarray2 *t, triple v);
void gen_runarray57(stack *Stack)
{
triple v=vm::pop<triple>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
-#line 1426 "runarray.in"
+#line 1428 "runarray.in"
{Stack->push<triple>(*t*v); return;}
}
-#line 1430 "runarray.in"
+#line 1432 "runarray.in"
// realarray2* AtA(realarray2 *a);
void gen_runarray58(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 1431 "runarray.in"
+#line 1433 "runarray.in"
{Stack->push<realarray2*>(AtA<real>(a)); return;}
}
-#line 1435 "runarray.in"
+#line 1437 "runarray.in"
// pair project(triple v, realarray2 *t);
void gen_runarray59(stack *Stack)
{
realarray2 * t=vm::pop<realarray2 *>(Stack);
triple v=vm::pop<triple>(Stack);
-#line 1436 "runarray.in"
+#line 1438 "runarray.in"
size_t n=checkArray(t);
if(n != 4) error(incommensurate);
array *t0=read<array*>(t,0);
@@ -1755,13 +1757,13 @@ void gen_runarray59(stack *Stack)
}
// Compute the dot product of vectors a and b.
-#line 1461 "runarray.in"
+#line 1463 "runarray.in"
// real dot(realarray *a, realarray *b);
void gen_runarray60(stack *Stack)
{
realarray * b=vm::pop<realarray *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1462 "runarray.in"
+#line 1464 "runarray.in"
size_t n=checkArrays(a,b);
real sum=0.0;
for(size_t i=0; i < n; ++i)
@@ -1770,13 +1772,13 @@ void gen_runarray60(stack *Stack)
}
// Compute the complex dot product of vectors a and b.
-#line 1471 "runarray.in"
+#line 1473 "runarray.in"
// pair dot(pairarray *a, pairarray *b);
void gen_runarray61(stack *Stack)
{
pairarray * b=vm::pop<pairarray *>(Stack);
pairarray * a=vm::pop<pairarray *>(Stack);
-#line 1472 "runarray.in"
+#line 1474 "runarray.in"
size_t n=checkArrays(a,b);
pair sum=zero;
for(size_t i=0; i < n; ++i)
@@ -1791,7 +1793,7 @@ void gen_runarray61(stack *Stack)
// [ a[2] b[2] c[2] ]
// [ ... ]
// [ c[n-1] a[n-1] b[n-1] ]
-#line 1487 "runarray.in"
+#line 1489 "runarray.in"
// realarray* tridiagonal(realarray *a, realarray *b, realarray *c, realarray *f);
void gen_runarray62(stack *Stack)
{
@@ -1799,7 +1801,7 @@ void gen_runarray62(stack *Stack)
realarray * c=vm::pop<realarray *>(Stack);
realarray * b=vm::pop<realarray *>(Stack);
realarray * a=vm::pop<realarray *>(Stack);
-#line 1488 "runarray.in"
+#line 1490 "runarray.in"
size_t n=checkArrays(a,b);
checkEqual(n,checkArray(c));
checkEqual(n,checkArray(f));
@@ -1896,7 +1898,7 @@ void gen_runarray62(stack *Stack)
}
// Root solve by Newton-Raphson
-#line 1585 "runarray.in"
+#line 1587 "runarray.in"
// real newton(Int iterations=100, callableReal *f, callableReal *fprime, real x, bool verbose=false);
void gen_runarray63(stack *Stack)
{
@@ -1905,7 +1907,7 @@ void gen_runarray63(stack *Stack)
callableReal * fprime=vm::pop<callableReal *>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
Int iterations=vm::pop<Int>(Stack,100);
-#line 1587 "runarray.in"
+#line 1589 "runarray.in"
static const real fuzz=1000.0*DBL_EPSILON;
Int i=0;
size_t oldPrec=0;
@@ -1951,7 +1953,7 @@ void gen_runarray63(stack *Stack)
// Root solve by Newton-Raphson bisection
// cf. routine rtsafe (Press et al., Numerical Recipes, 1991).
-#line 1633 "runarray.in"
+#line 1635 "runarray.in"
// real newton(Int iterations=100, callableReal *f, callableReal *fprime, real x1, real x2, bool verbose=false);
void gen_runarray64(stack *Stack)
{
@@ -1961,7 +1963,7 @@ void gen_runarray64(stack *Stack)
callableReal * fprime=vm::pop<callableReal *>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
Int iterations=vm::pop<Int>(Stack,100);
-#line 1635 "runarray.in"
+#line 1637 "runarray.in"
static const real fuzz=1000.0*DBL_EPSILON;
size_t oldPrec=0;
if(verbose)
@@ -2047,7 +2049,7 @@ void gen_runarray64(stack *Stack)
// In this implementation, the binary search is interleaved
// with a modified version of quadratic interpolation.
// This is a C++ port of the Asymptote routine written by Charles Staats III.
-#line 1721 "runarray.in"
+#line 1723 "runarray.in"
// real _findroot(callableReal *f, real a, real b, real tolerance, real fa, real fb);
void gen_runarray65(stack *Stack)
{
@@ -2057,7 +2059,7 @@ void gen_runarray65(stack *Stack)
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
-#line 1723 "runarray.in"
+#line 1725 "runarray.in"
if(fa == 0.0) {Stack->push<real>(a); return;}
if(fb == 0.0) {Stack->push<real>(b); return;}
@@ -2149,7 +2151,7 @@ void gen_runarray65(stack *Stack)
{Stack->push<real>(a-(b-a)/(fb-fa)*fa); return;}
}
-#line 1815 "runarray.in"
+#line 1817 "runarray.in"
// real simpson(callableReal *f, real a, real b, real acc=DBL_EPSILON, real dxmax=0);
void gen_runarray66(stack *Stack)
{
@@ -2158,7 +2160,7 @@ void gen_runarray66(stack *Stack)
real b=vm::pop<real>(Stack);
real a=vm::pop<real>(Stack);
callableReal * f=vm::pop<callableReal *>(Stack);
-#line 1817 "runarray.in"
+#line 1819 "runarray.in"
real integral;
if(dxmax <= 0) dxmax=fabs(b-a);
callable *oldFunc=Func;
@@ -2171,13 +2173,13 @@ void gen_runarray66(stack *Stack)
}
// Compute the fast Fourier transform of a pair array
-#line 1830 "runarray.in"
+#line 1832 "runarray.in"
// pairarray* fft(pairarray *a, Int sign=1);
void gen_runarray67(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray * a=vm::pop<pairarray *>(Stack);
-#line 1831 "runarray.in"
+#line 1833 "runarray.in"
#ifdef HAVE_LIBFFTW3
unsigned n=(unsigned) checkArray(a);
array *c=new array(n);
@@ -2207,13 +2209,13 @@ void gen_runarray67(stack *Stack)
}
// Compute the fast Fourier transform of a 2D pair array
-#line 1861 "runarray.in"
+#line 1863 "runarray.in"
// pairarray2* fft(pairarray2 *a, Int sign=1);
void gen_runarray68(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray2 * a=vm::pop<pairarray2 *>(Stack);
-#line 1862 "runarray.in"
+#line 1864 "runarray.in"
#ifdef HAVE_LIBFFTW3
size_t n=checkArray(a);
size_t m=n == 0 ? 0 : checkArray(read<array*>(a,0));
@@ -2258,13 +2260,13 @@ void gen_runarray68(stack *Stack)
}
// Compute the fast Fourier transform of a 3D pair array
-#line 1907 "runarray.in"
+#line 1909 "runarray.in"
// pairarray3* fft(pairarray3 *a, Int sign=1);
void gen_runarray69(stack *Stack)
{
Int sign=vm::pop<Int>(Stack,1);
pairarray3 * a=vm::pop<pairarray3 *>(Stack);
-#line 1908 "runarray.in"
+#line 1910 "runarray.in"
#ifdef HAVE_LIBFFTW3
size_t n=checkArray(a);
array *a0=read<array*>(a,0);
@@ -2321,12 +2323,12 @@ void gen_runarray69(stack *Stack)
{Stack->push<pairarray3*>(c); return;}
}
-#line 1965 "runarray.in"
+#line 1967 "runarray.in"
// Intarray2* triangulate(pairarray *z);
void gen_runarray70(stack *Stack)
{
pairarray * z=vm::pop<pairarray *>(Stack);
-#line 1966 "runarray.in"
+#line 1968 "runarray.in"
size_t nv=checkArray(z);
// Call robust version of Gilles Dumoulin's port of Paul Bourke's
// triangulation code.
@@ -2360,12 +2362,12 @@ void gen_runarray70(stack *Stack)
{Stack->push<Intarray2*>(t); return;}
}
-#line 2000 "runarray.in"
+#line 2002 "runarray.in"
// real norm(realarray *a);
void gen_runarray71(stack *Stack)
{
realarray * a=vm::pop<realarray *>(Stack);
-#line 2001 "runarray.in"
+#line 2003 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2375,12 +2377,12 @@ void gen_runarray71(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2011 "runarray.in"
+#line 2013 "runarray.in"
// real norm(realarray2 *a);
void gen_runarray72(stack *Stack)
{
realarray2 * a=vm::pop<realarray2 *>(Stack);
-#line 2012 "runarray.in"
+#line 2014 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2394,12 +2396,12 @@ void gen_runarray72(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2026 "runarray.in"
+#line 2028 "runarray.in"
// real norm(triplearray2 *a);
void gen_runarray73(stack *Stack)
{
triplearray2 * a=vm::pop<triplearray2 *>(Stack);
-#line 2027 "runarray.in"
+#line 2029 "runarray.in"
size_t n=checkArray(a);
real M=0.0;
for(size_t i=0; i < n; ++i) {
@@ -2413,12 +2415,12 @@ void gen_runarray73(stack *Stack)
{Stack->push<real>(sqrt(M)); return;}
}
-#line 2041 "runarray.in"
+#line 2043 "runarray.in"
// real change2(triplearray2 *a);
void gen_runarray74(stack *Stack)
{
triplearray2 * a=vm::pop<triplearray2 *>(Stack);
-#line 2042 "runarray.in"
+#line 2044 "runarray.in"
size_t n=checkArray(a);
if(n == 0) {Stack->push<real>(0.0); return;}
@@ -2439,13 +2441,13 @@ void gen_runarray74(stack *Stack)
{Stack->push<real>(M); return;}
}
-#line 2063 "runarray.in"
+#line 2065 "runarray.in"
// triple minbezier(triplearray2 *P, triple b);
void gen_runarray75(stack *Stack)
{
triple b=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2064 "runarray.in"
+#line 2066 "runarray.in"
size_t N;
real *A=copyTripleArray2Components(P,N);
bound_double *B=bounddouble(N);
@@ -2456,13 +2458,13 @@ void gen_runarray75(stack *Stack)
{Stack->push<triple>(b); return;}
}
-#line 2075 "runarray.in"
+#line 2077 "runarray.in"
// triple maxbezier(triplearray2 *P, triple b);
void gen_runarray76(stack *Stack)
{
triple b=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2076 "runarray.in"
+#line 2078 "runarray.in"
size_t N;
real *A=copyTripleArray2Components(P,N);
bound_double *B=bounddouble(N);
@@ -2473,13 +2475,13 @@ void gen_runarray76(stack *Stack)
{Stack->push<triple>(b); return;}
}
-#line 2087 "runarray.in"
+#line 2089 "runarray.in"
// pair minratio(triplearray2 *P, pair b);
void gen_runarray77(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2088 "runarray.in"
+#line 2090 "runarray.in"
size_t N;
triple *A=copyTripleArray2C(P,N);
real fuzz=Fuzz*norm(A,N);
@@ -2490,13 +2492,13 @@ void gen_runarray77(stack *Stack)
{Stack->push<pair>(b); return;}
}
-#line 2099 "runarray.in"
+#line 2101 "runarray.in"
// pair maxratio(triplearray2 *P, pair b);
void gen_runarray78(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
-#line 2100 "runarray.in"
+#line 2102 "runarray.in"
size_t N;
triple *A=copyTripleArray2C(P,N);
bound_triple *B=boundtriple(N);
@@ -2507,11 +2509,11 @@ void gen_runarray78(stack *Stack)
{Stack->push<pair>(b); return;}
}
-#line 2111 "runarray.in"
+#line 2113 "runarray.in"
// realarray* _projection();
void gen_runarray79(stack *Stack)
{
-#line 2112 "runarray.in"
+#line 2114 "runarray.in"
#ifdef HAVE_GL
array *a=new array(14);
gl::projection P=gl::camera();
@@ -2634,79 +2636,79 @@ void gen_runarray_venv(venv &ve)
REGISTER_BLTIN(run::arrayConcat,"arrayConcat");
#line 1040 "runarray.in"
REGISTER_BLTIN(run::array2Transpose,"array2Transpose");
-#line 1064 "runarray.in"
+#line 1066 "runarray.in"
REGISTER_BLTIN(run::array3Transpose,"array3Transpose");
-#line 1151 "runarray.in"
+#line 1153 "runarray.in"
addFunc(ve, run::gen_runarray44, primInt(), SYM(find), formal(booleanArray(), SYM(a), false, false), formal(primInt(), SYM(n), true, false));
-#line 1170 "runarray.in"
+#line 1172 "runarray.in"
addFunc(ve, run::gen_runarray45, IntArray(), SYM(findall), formal(booleanArray(), SYM(a), false, false));
-#line 1183 "runarray.in"
+#line 1185 "runarray.in"
REGISTER_BLTIN(run::arrayConditional,"arrayConditional");
-#line 1209 "runarray.in"
+#line 1211 "runarray.in"
addFunc(ve, run::gen_runarray47, realArray2(), SYM(identity), formal(primInt(), SYM(n), false, false));
-#line 1215 "runarray.in"
+#line 1217 "runarray.in"
addFunc(ve, run::gen_runarray48, realArray2(), SYM(inverse), formal(realArray2(), SYM(a), false, false));
-#line 1227 "runarray.in"
+#line 1229 "runarray.in"
addFunc(ve, run::gen_runarray49, realArray(), SYM(solve), formal(realArray2(), SYM(a), false, false), formal(realArray(), SYM(b), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 1280 "runarray.in"
+#line 1282 "runarray.in"
addFunc(ve, run::gen_runarray50, realArray2(), SYM(solve), formal(realArray2(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false), formal(primBoolean(), SYM(warn), true, false));
-#line 1345 "runarray.in"
+#line 1347 "runarray.in"
addFunc(ve, run::gen_runarray51, primReal(), SYM(determinant), formal(realArray2(), SYM(a), false, false));
-#line 1362 "runarray.in"
+#line 1364 "runarray.in"
addFunc(ve, run::gen_runarray52, realArray(), SYM_TIMES, formal(realArray2(), SYM(a), false, false), formal(realArray(), SYM(b), false, false));
-#line 1381 "runarray.in"
+#line 1383 "runarray.in"
addFunc(ve, run::gen_runarray53, realArray(), SYM_TIMES, formal(realArray(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false));
-#line 1410 "runarray.in"
+#line 1412 "runarray.in"
addFunc(ve, run::gen_runarray54, IntArray2(), SYM_TIMES, formal(IntArray2(), SYM(a), false, false), formal(IntArray2(), SYM(b), false, false));
-#line 1415 "runarray.in"
+#line 1417 "runarray.in"
addFunc(ve, run::gen_runarray55, realArray2(), SYM_TIMES, formal(realArray2(), SYM(a), false, false), formal(realArray2(), SYM(b), false, false));
-#line 1420 "runarray.in"
+#line 1422 "runarray.in"
addFunc(ve, run::gen_runarray56, pairArray2(), SYM_TIMES, formal(pairArray2(), SYM(a), false, false), formal(pairArray2(), SYM(b), false, false));
-#line 1425 "runarray.in"
+#line 1427 "runarray.in"
addFunc(ve, run::gen_runarray57, primTriple(), SYM_TIMES, formal(realArray2(), SYM(t), false, false), formal(primTriple(), SYM(v), false, false));
-#line 1430 "runarray.in"
+#line 1432 "runarray.in"
addFunc(ve, run::gen_runarray58, realArray2(), SYM(AtA), formal(realArray2(), SYM(a), false, false));
-#line 1435 "runarray.in"
+#line 1437 "runarray.in"
addFunc(ve, run::gen_runarray59, primPair(), SYM(project), formal(primTriple(), SYM(v), false, false), formal(realArray2(), SYM(t), false, false));
-#line 1460 "runarray.in"
+#line 1462 "runarray.in"
addFunc(ve, run::gen_runarray60, primReal(), SYM(dot), formal(realArray(), SYM(a), false, false), formal(realArray(), SYM(b), false, false));
-#line 1470 "runarray.in"
+#line 1472 "runarray.in"
addFunc(ve, run::gen_runarray61, primPair(), SYM(dot), formal(pairArray(), SYM(a), false, false), formal(pairArray(), SYM(b), false, false));
-#line 1480 "runarray.in"
+#line 1482 "runarray.in"
addFunc(ve, run::gen_runarray62, realArray(), SYM(tridiagonal), formal(realArray(), SYM(a), false, false), formal(realArray(), SYM(b), false, false), formal(realArray(), SYM(c), false, false), formal(realArray(), SYM(f), false, false));
-#line 1584 "runarray.in"
+#line 1586 "runarray.in"
addFunc(ve, run::gen_runarray63, primReal(), SYM(newton), formal(primInt(), SYM(iterations), true, false), formal(realRealFunction(), SYM(f), false, false), formal(realRealFunction(), SYM(fprime), false, false), formal(primReal(), SYM(x), false, false), formal(primBoolean(), SYM(verbose), true, false));
-#line 1631 "runarray.in"
+#line 1633 "runarray.in"
addFunc(ve, run::gen_runarray64, primReal(), SYM(newton), formal(primInt(), SYM(iterations), true, false), formal(realRealFunction(), SYM(f), false, false), formal(realRealFunction(), SYM(fprime), false, false), formal(primReal(), SYM(x1), false, false), formal(primReal(), SYM(x2), false, false), formal(primBoolean(), SYM(verbose), true, false));
-#line 1713 "runarray.in"
+#line 1715 "runarray.in"
addFunc(ve, run::gen_runarray65, primReal(), SYM(_findroot), formal(realRealFunction(), SYM(f), false, false), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(tolerance), false, false), formal(primReal(), SYM(fa), false, false), formal(primReal(), SYM(fb), false, false));
-#line 1815 "runarray.in"
+#line 1817 "runarray.in"
addFunc(ve, run::gen_runarray66, primReal(), SYM(simpson), formal(realRealFunction(), SYM(f), false, false), formal(primReal(), SYM(a), false, false), formal(primReal(), SYM(b), false, false), formal(primReal(), SYM(acc), true, false), formal(primReal(), SYM(dxmax), true, false));
-#line 1829 "runarray.in"
+#line 1831 "runarray.in"
addFunc(ve, run::gen_runarray67, pairArray(), SYM(fft), formal(pairArray(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1860 "runarray.in"
+#line 1862 "runarray.in"
addFunc(ve, run::gen_runarray68, pairArray2(), SYM(fft), formal(pairArray2(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1906 "runarray.in"
+#line 1908 "runarray.in"
addFunc(ve, run::gen_runarray69, pairArray3(), SYM(fft), formal(pairArray3(), SYM(a), false, false), formal(primInt(), SYM(sign), true, false));
-#line 1965 "runarray.in"
+#line 1967 "runarray.in"
addFunc(ve, run::gen_runarray70, IntArray2(), SYM(triangulate), formal(pairArray(), SYM(z), false, false));
-#line 2000 "runarray.in"
+#line 2002 "runarray.in"
addFunc(ve, run::gen_runarray71, primReal(), SYM(norm), formal(realArray(), SYM(a), false, false));
-#line 2011 "runarray.in"
+#line 2013 "runarray.in"
addFunc(ve, run::gen_runarray72, primReal(), SYM(norm), formal(realArray2(), SYM(a), false, false));
-#line 2026 "runarray.in"
+#line 2028 "runarray.in"
addFunc(ve, run::gen_runarray73, primReal(), SYM(norm), formal(tripleArray2(), SYM(a), false, false));
-#line 2041 "runarray.in"
+#line 2043 "runarray.in"
addFunc(ve, run::gen_runarray74, primReal(), SYM(change2), formal(tripleArray2(), SYM(a), false, false));
-#line 2063 "runarray.in"
+#line 2065 "runarray.in"
addFunc(ve, run::gen_runarray75, primTriple(), SYM(minbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
-#line 2075 "runarray.in"
+#line 2077 "runarray.in"
addFunc(ve, run::gen_runarray76, primTriple(), SYM(maxbezier), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(b), false, false));
-#line 2087 "runarray.in"
+#line 2089 "runarray.in"
addFunc(ve, run::gen_runarray77, primPair(), SYM(minratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
-#line 2099 "runarray.in"
+#line 2101 "runarray.in"
addFunc(ve, run::gen_runarray78, primPair(), SYM(maxratio), formal(tripleArray2(), SYM(p), false, false), formal(primPair(), SYM(b), false, false));
-#line 2111 "runarray.in"
+#line 2113 "runarray.in"
addFunc(ve, run::gen_runarray79, realArray(), SYM(_projection));
}
diff --git a/graphics/asymptote/runarray.in b/graphics/asymptote/runarray.in
index db9e63d420..82308211de 100644
--- a/graphics/asymptote/runarray.in
+++ b/graphics/asymptote/runarray.in
@@ -1041,21 +1041,23 @@ array* :array2Transpose(array *a)
{
size_t asize=checkArray(a);
array *c=new array(0);
+ size_t csize=0;
for(size_t i=0; i < asize; i++) {
size_t ip=i+1;
array *ai=read<array*>(a,i);
size_t aisize=checkArray(ai);
- size_t csize=checkArray(c);
- if(csize < aisize) {
+ if(c->size() < aisize) {
c->resize(aisize);
- for(size_t j=csize; j < aisize; j++) {
- (*c)[j]=new array(ip);
- }
+ for(size_t j=csize; j < aisize; j++)
+ (*c)[j]=new array(0);
+ csize=aisize;
}
for(size_t j=0; j < aisize; j++) {
- array *cj=read<array*>(c,j);
- if(checkArray(cj) < ip) cj->resize(ip);
- (*cj)[i]=(*ai)[j];
+ if(!(*ai)[j].empty()) {
+ array *cj=read<array*>(c,j);
+ if(checkArray(cj) < ip) cj->resize(ip);
+ (*cj)[i]=(*ai)[j];
+ }
}
}
return c;
diff --git a/graphics/asymptote/runfile.cc b/graphics/asymptote/runfile.cc
index 1dab2b958a..72ead073b2 100644
--- a/graphics/asymptote/runfile.cc
+++ b/graphics/asymptote/runfile.cc
@@ -263,82 +263,79 @@ void gen_runfile12(stack *Stack)
#line 145 "runfile.in"
char c=0;
if(f->isOpen()) f->read(c);
- static char str[2];
- str[0]=c;
- str[1]=0;
- {Stack->push<string>(string(str)); return;}
+ {Stack->push<string>(string(1,c)); return;}
}
-#line 154 "runfile.in"
+#line 151 "runfile.in"
// Int tell(file *f);
void gen_runfile13(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 155 "runfile.in"
+#line 152 "runfile.in"
{Stack->push<Int>(f->tell()); return;}
}
-#line 159 "runfile.in"
+#line 156 "runfile.in"
// void seek(file *f, Int pos);
void gen_runfile14(stack *Stack)
{
Int pos=vm::pop<Int>(Stack);
file * f=vm::pop<file *>(Stack);
-#line 160 "runfile.in"
+#line 157 "runfile.in"
f->seek(pos,pos >= 0);
}
-#line 164 "runfile.in"
+#line 161 "runfile.in"
// void seekeof(file *f);
void gen_runfile15(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 165 "runfile.in"
+#line 162 "runfile.in"
f->seek(0,false);
}
-#line 169 "runfile.in"
+#line 166 "runfile.in"
void namePart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 170 "runfile.in"
+#line 167 "runfile.in"
{Stack->push<string>(f.filename()); return;}
}
-#line 174 "runfile.in"
+#line 171 "runfile.in"
void modePart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 175 "runfile.in"
+#line 172 "runfile.in"
{Stack->push<string>(f.FileMode()); return;}
}
// Set file dimensions
-#line 180 "runfile.in"
+#line 177 "runfile.in"
void dimensionSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
Int nz=vm::pop<Int>(Stack,-1);
Int ny=vm::pop<Int>(Stack,-1);
Int nx=vm::pop<Int>(Stack,-1);
-#line 181 "runfile.in"
+#line 178 "runfile.in"
f->dimension(nx,ny,nz);
{Stack->push<file*>(f); return;}
}
-#line 186 "runfile.in"
+#line 183 "runfile.in"
void dimensionSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 187 "runfile.in"
+#line 184 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(dimensionSetHelper),f)); return;}
}
-#line 191 "runfile.in"
+#line 188 "runfile.in"
void dimensionPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 192 "runfile.in"
+#line 189 "runfile.in"
array *a=new array(3);
(*a)[0]=f.Nx();
(*a)[1]=f.Ny();
@@ -347,174 +344,174 @@ void dimensionPart(stack *Stack)
}
// Set file f to read arrays in line-at-a-time mode
-#line 201 "runfile.in"
+#line 198 "runfile.in"
void lineSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 202 "runfile.in"
+#line 199 "runfile.in"
f->LineMode(b);
{Stack->push<file*>(f); return;}
}
-#line 207 "runfile.in"
+#line 204 "runfile.in"
void lineSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 208 "runfile.in"
+#line 205 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(lineSetHelper),f)); return;}
}
-#line 212 "runfile.in"
+#line 209 "runfile.in"
void linePart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 213 "runfile.in"
+#line 210 "runfile.in"
{Stack->push<bool>(f.LineMode()); return;}
}
// Set file to read comma-separated values
-#line 218 "runfile.in"
+#line 215 "runfile.in"
void csvSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 219 "runfile.in"
+#line 216 "runfile.in"
f->CSVMode(b);
{Stack->push<file*>(f); return;}
}
-#line 224 "runfile.in"
+#line 221 "runfile.in"
void csvSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 225 "runfile.in"
+#line 222 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(csvSetHelper),f)); return;}
}
-#line 229 "runfile.in"
+#line 226 "runfile.in"
void csvPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 230 "runfile.in"
+#line 227 "runfile.in"
{Stack->push<bool>(f.CSVMode()); return;}
}
// Set file to read whitespace-separated values
-#line 235 "runfile.in"
+#line 232 "runfile.in"
void wordSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 236 "runfile.in"
+#line 233 "runfile.in"
f->WordMode(b);
{Stack->push<file*>(f); return;}
}
-#line 241 "runfile.in"
+#line 238 "runfile.in"
void wordSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 242 "runfile.in"
+#line 239 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(wordSetHelper),f)); return;}
}
-#line 246 "runfile.in"
+#line 243 "runfile.in"
void wordPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 247 "runfile.in"
+#line 244 "runfile.in"
{Stack->push<bool>(f.WordMode()); return;}
}
// Set file to read/write single precision real XDR values.
-#line 252 "runfile.in"
+#line 249 "runfile.in"
void singlerealSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 253 "runfile.in"
+#line 250 "runfile.in"
f->SingleReal(b);
{Stack->push<file*>(f); return;}
}
-#line 258 "runfile.in"
+#line 255 "runfile.in"
void singlerealSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 259 "runfile.in"
+#line 256 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(singlerealSetHelper),f)); return;}
}
-#line 263 "runfile.in"
+#line 260 "runfile.in"
void singlerealPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 264 "runfile.in"
+#line 261 "runfile.in"
{Stack->push<bool>(f.SingleReal()); return;}
}
// Set file to read/write single precision int XDR values.
-#line 269 "runfile.in"
+#line 266 "runfile.in"
void singleintSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 270 "runfile.in"
+#line 267 "runfile.in"
f->SingleInt(b);
{Stack->push<file*>(f); return;}
}
-#line 275 "runfile.in"
+#line 272 "runfile.in"
void singleintSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 276 "runfile.in"
+#line 273 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(singleintSetHelper),f)); return;}
}
-#line 280 "runfile.in"
+#line 277 "runfile.in"
void singleintPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 281 "runfile.in"
+#line 278 "runfile.in"
{Stack->push<bool>(f.SingleInt()); return;}
}
// Set file to read/write signed int XDR values.
-#line 286 "runfile.in"
+#line 283 "runfile.in"
void signedintSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 287 "runfile.in"
+#line 284 "runfile.in"
f->SignedInt(b);
{Stack->push<file*>(f); return;}
}
-#line 292 "runfile.in"
+#line 289 "runfile.in"
void signedintSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 293 "runfile.in"
+#line 290 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(signedintSetHelper),f)); return;}
}
-#line 297 "runfile.in"
+#line 294 "runfile.in"
void signedintPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 298 "runfile.in"
+#line 295 "runfile.in"
{Stack->push<bool>(f.SignedInt()); return;}
}
// Set file to read an arrayi (i int sizes followed by an i-dimensional array)
-#line 303 "runfile.in"
+#line 300 "runfile.in"
void readSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
Int i=vm::pop<Int>(Stack);
-#line 304 "runfile.in"
+#line 301 "runfile.in"
switch(i) {
case 1:
f->dimension(-2);
@@ -535,21 +532,21 @@ void readSetHelper(stack *Stack)
{Stack->push<file*>(f); return;}
}
-#line 325 "runfile.in"
+#line 322 "runfile.in"
void readSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 326 "runfile.in"
+#line 323 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(readSetHelper),f)); return;}
}
// Delete file named s.
-#line 331 "runfile.in"
+#line 328 "runfile.in"
// Int delete(string s);
void gen_runfile41(stack *Stack)
{
string s=vm::pop<string>(Stack);
-#line 332 "runfile.in"
+#line 329 "runfile.in"
s=outpath(s);
Int rc=unlink(s.c_str());
if(rc == 0 && verbose > 0)
@@ -558,13 +555,13 @@ void gen_runfile41(stack *Stack)
}
// Rename file "from" to file "to".
-#line 341 "runfile.in"
+#line 338 "runfile.in"
// Int rename(string from, string to);
void gen_runfile42(stack *Stack)
{
string to=vm::pop<string>(Stack);
string from=vm::pop<string>(Stack);
-#line 342 "runfile.in"
+#line 339 "runfile.in"
from=outpath(from);
to=outpath(to);
Int rc=rename(from.c_str(),to.c_str());
@@ -574,12 +571,12 @@ void gen_runfile42(stack *Stack)
}
// Create a uniquely named temporary file.
-#line 352 "runfile.in"
+#line 349 "runfile.in"
// string mktemp(string s);
void gen_runfile43(stack *Stack)
{
string s=vm::pop<string>(Stack);
-#line 353 "runfile.in"
+#line 350 "runfile.in"
char *S=StrdupMalloc(s+"XXXXXX");
int fd=mkstemp(S);
if(fd < 0) {
@@ -624,67 +621,67 @@ void gen_runfile_venv(venv &ve)
addFunc(ve, run::gen_runfile11, primVoid(), SYM(flush), formal(primFile(), SYM(f), false, false));
#line 144 "runfile.in"
addFunc(ve, run::gen_runfile12, primString(), SYM(getc), formal(primFile(), SYM(f), false, false));
-#line 154 "runfile.in"
+#line 151 "runfile.in"
addFunc(ve, run::gen_runfile13, primInt(), SYM(tell), formal(primFile(), SYM(f), false, false));
-#line 159 "runfile.in"
+#line 156 "runfile.in"
addFunc(ve, run::gen_runfile14, primVoid(), SYM(seek), formal(primFile(), SYM(f), false, false), formal(primInt(), SYM(pos), false, false));
-#line 164 "runfile.in"
+#line 161 "runfile.in"
addFunc(ve, run::gen_runfile15, primVoid(), SYM(seekeof), formal(primFile(), SYM(f), false, false));
-#line 169 "runfile.in"
+#line 166 "runfile.in"
REGISTER_BLTIN(run::namePart,"namePart");
-#line 174 "runfile.in"
+#line 171 "runfile.in"
REGISTER_BLTIN(run::modePart,"modePart");
-#line 179 "runfile.in"
+#line 176 "runfile.in"
REGISTER_BLTIN(run::dimensionSetHelper,"dimensionSetHelper");
-#line 186 "runfile.in"
+#line 183 "runfile.in"
REGISTER_BLTIN(run::dimensionSet,"dimensionSet");
-#line 191 "runfile.in"
+#line 188 "runfile.in"
REGISTER_BLTIN(run::dimensionPart,"dimensionPart");
-#line 200 "runfile.in"
+#line 197 "runfile.in"
REGISTER_BLTIN(run::lineSetHelper,"lineSetHelper");
-#line 207 "runfile.in"
+#line 204 "runfile.in"
REGISTER_BLTIN(run::lineSet,"lineSet");
-#line 212 "runfile.in"
+#line 209 "runfile.in"
REGISTER_BLTIN(run::linePart,"linePart");
-#line 217 "runfile.in"
+#line 214 "runfile.in"
REGISTER_BLTIN(run::csvSetHelper,"csvSetHelper");
-#line 224 "runfile.in"
+#line 221 "runfile.in"
REGISTER_BLTIN(run::csvSet,"csvSet");
-#line 229 "runfile.in"
+#line 226 "runfile.in"
REGISTER_BLTIN(run::csvPart,"csvPart");
-#line 234 "runfile.in"
+#line 231 "runfile.in"
REGISTER_BLTIN(run::wordSetHelper,"wordSetHelper");
-#line 241 "runfile.in"
+#line 238 "runfile.in"
REGISTER_BLTIN(run::wordSet,"wordSet");
-#line 246 "runfile.in"
+#line 243 "runfile.in"
REGISTER_BLTIN(run::wordPart,"wordPart");
-#line 251 "runfile.in"
+#line 248 "runfile.in"
REGISTER_BLTIN(run::singlerealSetHelper,"singlerealSetHelper");
-#line 258 "runfile.in"
+#line 255 "runfile.in"
REGISTER_BLTIN(run::singlerealSet,"singlerealSet");
-#line 263 "runfile.in"
+#line 260 "runfile.in"
REGISTER_BLTIN(run::singlerealPart,"singlerealPart");
-#line 268 "runfile.in"
+#line 265 "runfile.in"
REGISTER_BLTIN(run::singleintSetHelper,"singleintSetHelper");
-#line 275 "runfile.in"
+#line 272 "runfile.in"
REGISTER_BLTIN(run::singleintSet,"singleintSet");
-#line 280 "runfile.in"
+#line 277 "runfile.in"
REGISTER_BLTIN(run::singleintPart,"singleintPart");
-#line 285 "runfile.in"
+#line 282 "runfile.in"
REGISTER_BLTIN(run::signedintSetHelper,"signedintSetHelper");
-#line 292 "runfile.in"
+#line 289 "runfile.in"
REGISTER_BLTIN(run::signedintSet,"signedintSet");
-#line 297 "runfile.in"
+#line 294 "runfile.in"
REGISTER_BLTIN(run::signedintPart,"signedintPart");
-#line 302 "runfile.in"
+#line 299 "runfile.in"
REGISTER_BLTIN(run::readSetHelper,"readSetHelper");
-#line 325 "runfile.in"
+#line 322 "runfile.in"
REGISTER_BLTIN(run::readSet,"readSet");
-#line 330 "runfile.in"
+#line 327 "runfile.in"
addFunc(ve, run::gen_runfile41, primInt(), SYM(delete), formal(primString(), SYM(s), false, false));
-#line 340 "runfile.in"
+#line 337 "runfile.in"
addFunc(ve, run::gen_runfile42, primInt(), SYM(rename), formal(primString(), SYM(from), false, false), formal(primString(), SYM(to), false, false));
-#line 351 "runfile.in"
+#line 348 "runfile.in"
addFunc(ve, run::gen_runfile43, primString(), SYM(mktemp), formal(primString(), SYM(s), false, false));
}
diff --git a/graphics/asymptote/runfile.in b/graphics/asymptote/runfile.in
index f1554940f3..da08d523ef 100644
--- a/graphics/asymptote/runfile.in
+++ b/graphics/asymptote/runfile.in
@@ -145,10 +145,7 @@ string getc(file *f)
{
char c=0;
if(f->isOpen()) f->read(c);
- static char str[2];
- str[0]=c;
- str[1]=0;
- return string(str);
+ return string(1,c);
}
Int tell(file *f)
diff --git a/graphics/asymptote/runhistory.cc b/graphics/asymptote/runhistory.cc
index 0de09b352f..f6a9cc8cf9 100644
--- a/graphics/asymptote/runhistory.cc
+++ b/graphics/asymptote/runhistory.cc
@@ -75,6 +75,10 @@ using namespace run;
typedef array stringarray;
using types::stringArray;
+namespace camp {
+bool allowRender=true;
+}
+
#if defined(HAVE_LIBREADLINE) && defined(HAVE_LIBCURSES)
#include <readline/readline.h>
#include <readline/history.h>
@@ -120,9 +124,6 @@ string historyfilename(const string &name)
return historyname+"_"+name;
}
-namespace camp {
-bool allowRender=true;
-}
#endif
namespace run {
@@ -165,13 +166,13 @@ void cleanup()
#endif
namespace run {
// Return the last n lines of the history named name.
-#line 109 "runhistory.in"
+#line 110 "runhistory.in"
// stringarray* history(string name, Int n=1);
void gen_runhistory0(stack *Stack)
{
Int n=vm::pop<Int>(Stack,1);
string name=vm::pop<string>(Stack);
-#line 110 "runhistory.in"
+#line 111 "runhistory.in"
#if defined(HAVE_LIBREADLINE) && defined(HAVE_LIBCURSES)
bool newhistory=historyMap.find(name) == historyMap.end();
@@ -203,12 +204,12 @@ void gen_runhistory0(stack *Stack)
}
// Return the last n lines of the interactive history.
-#line 142 "runhistory.in"
+#line 143 "runhistory.in"
// stringarray* history(Int n=0);
void gen_runhistory1(stack *Stack)
{
Int n=vm::pop<Int>(Stack,0);
-#line 143 "runhistory.in"
+#line 144 "runhistory.in"
#if defined(HAVE_LIBREADLINE) && defined(HAVE_LIBCURSES)
{Stack->push<stringarray*>(get_history(n)); return;}
#else
@@ -219,14 +220,14 @@ void gen_runhistory1(stack *Stack)
// Prompt for a string using prompt, the GNU readline library, and a
// local history named name.
-#line 154 "runhistory.in"
+#line 155 "runhistory.in"
// string readline(string prompt=emptystring, string name=emptystring, bool tabcompletion=false);
void gen_runhistory2(stack *Stack)
{
bool tabcompletion=vm::pop<bool>(Stack,false);
string name=vm::pop<string>(Stack,emptystring);
string prompt=vm::pop<string>(Stack,emptystring);
-#line 156 "runhistory.in"
+#line 157 "runhistory.in"
if(!(isatty(STDIN_FILENO) || getSetting<Int>("inpipe") >= 0))
{Stack->push<string>(emptystring); return;}
#if defined(HAVE_LIBREADLINE) && defined(HAVE_LIBCURSES)
@@ -270,14 +271,14 @@ void gen_runhistory2(stack *Stack)
// Save a string in a local history named name.
// If store=true, store the local history in the file historyfilename(name).
-#line 200 "runhistory.in"
+#line 201 "runhistory.in"
// void saveline(string name, string value, bool store=true);
void gen_runhistory3(stack *Stack)
{
bool store=vm::pop<bool>(Stack,true);
string value=vm::pop<string>(Stack);
string name=vm::pop<string>(Stack);
-#line 201 "runhistory.in"
+#line 202 "runhistory.in"
#if defined(HAVE_LIBREADLINE) && defined(HAVE_LIBCURSES)
store_history(&history_save);
bool newhistory=historyMap.find(name) == historyMap.end();
@@ -310,13 +311,13 @@ namespace trans {
void gen_runhistory_venv(venv &ve)
{
-#line 108 "runhistory.in"
+#line 109 "runhistory.in"
addFunc(ve, run::gen_runhistory0, stringArray(), SYM(history), formal(primString(), SYM(name), false, false), formal(primInt(), SYM(n), true, false));
-#line 141 "runhistory.in"
+#line 142 "runhistory.in"
addFunc(ve, run::gen_runhistory1, stringArray(), SYM(history), formal(primInt(), SYM(n), true, false));
-#line 152 "runhistory.in"
+#line 153 "runhistory.in"
addFunc(ve, run::gen_runhistory2, primString(), SYM(readline), formal(primString(), SYM(prompt), true, false), formal(primString(), SYM(name), true, false), formal(primBoolean(), SYM(tabcompletion), true, false));
-#line 198 "runhistory.in"
+#line 199 "runhistory.in"
addFunc(ve, run::gen_runhistory3, primVoid(), SYM(saveline), formal(primString(), SYM(name), false, false), formal(primString(), SYM(value), false, false), formal(primBoolean(), SYM(store), true, false));
}
diff --git a/graphics/asymptote/runhistory.in b/graphics/asymptote/runhistory.in
index fce3ccadfd..78dcbb6d54 100644
--- a/graphics/asymptote/runhistory.in
+++ b/graphics/asymptote/runhistory.in
@@ -22,6 +22,10 @@ using namespace run;
typedef array stringarray;
using types::stringArray;
+namespace camp {
+bool allowRender=true;
+}
+
#if defined(HAVE_LIBREADLINE) && defined(HAVE_LIBCURSES)
#include <readline/readline.h>
#include <readline/history.h>
@@ -67,9 +71,6 @@ string historyfilename(const string &name)
return historyname+"_"+name;
}
-namespace camp {
-bool allowRender=true;
-}
#endif
namespace run {
diff --git a/graphics/asymptote/runlabel.cc b/graphics/asymptote/runlabel.cc
index 44c9544e26..5781426305 100644
--- a/graphics/asymptote/runlabel.cc
+++ b/graphics/asymptote/runlabel.cc
@@ -133,7 +133,7 @@ void showpath(std::ostream& ps)
fillpath(ps);
}
-array *readpath(const string& psname, bool keep, bool pdf=false,
+array *readpath(const string& psname, bool keep,
double hscale=1.0, double vsign=1.0)
{
double vscale=vsign*hscale;
@@ -157,8 +157,8 @@ array *readpath(const string& psname, bool keep, bool pdf=false,
#else
const string null="/dev/null";
#endif
- string epsdriver=getSetting<string>("epsdriver");
- cmd.push_back("-sDEVICE="+epsdriver);
+ string psdriver=getSetting<string>("psdriver");
+ cmd.push_back("-sDEVICE="+psdriver);
cmd.push_back("-sOutputFile="+null);
cmd.push_back(stripDir(psname));
iopipestream gs(cmd,"gs","Ghostscript");
@@ -166,7 +166,7 @@ array *readpath(const string& psname, bool keep, bool pdf=false,
stringstream buf;
string s=gs.readline();
if(s.empty()) break;
- if(!pdf) gs << newl;
+ gs << newl;
// Workaround broken stringstream container in libc++.
#ifdef _LIBCPP_VERSION
@@ -363,13 +363,9 @@ void gen_runlabel3(stack *Stack)
string pdfname,pdfname2,psname2;
bool keep=getSetting<bool>("keep");
- bool legacygs=false;
if(!status) {
if(xe) {
-// Use legacy ghostscript driver for gs-9.13 and earlier.
- string epsdriver=getSetting<string>("epsdriver");
- legacygs=epsdriver == "epswrite";
-
+ string psdriver=getSetting<string>("psdriver");
pdfname=auxname(prefix,"pdf");
pdfname2=auxname(prefix+"_","pdf");
psname2=auxname(prefix+"_","ps");
@@ -398,28 +394,13 @@ void gen_runlabel3(stack *Stack)
cmd.push_back("-dNOPAUSE");
cmd.push_back("-dBATCH");
if(safe) cmd.push_back("-dSAFER");
- cmd.push_back("-sDEVICE="+epsdriver);
- // Work around eps2write bug that forces all postscript to first page.
- cmd.push_back("-sOutputFile="+psname2+(legacygs ? "" : "%d"));
+ cmd.push_back("-sDEVICE="+psdriver);
+ cmd.push_back("-sOutputFile="+psname2);
cmd.push_back(pdfname2);
status=System(cmd,0,true,"gs");
- if(legacygs) {
- std::ifstream in(psname2.c_str());
- ps << in.rdbuf();
- } else {
- for(unsigned int i=1; i <= n ; ++i) {
- ostringstream buf;
- buf << psname2 << i;
- const string& s=buf.str();
- const char *name=s.c_str();
- std::ifstream in(name,std::ios::binary);
- ps << in.rdbuf();
- ps << "(>\n) print flush\n";
- in.close();
- if(!keep) unlink(name);
- }
- }
+ std::ifstream in(psname2.c_str());
+ ps << in.rdbuf();
ps.close();
}
} else {
@@ -455,17 +436,16 @@ void gen_runlabel3(stack *Stack)
unlink(auxname(prefix,"tui").c_str());
}
}
- {Stack->push<patharray2*>(xe ? readpath(psname,keep,!legacygs,0.1) :
- readpath(psname,keep,false,0.12,-1.0)); return;}
+ {Stack->push<patharray2*>(xe ? readpath(psname,keep,0.1) : readpath(psname,keep,0.12,-1.0)); return;}
}
-#line 387 "runlabel.in"
+#line 367 "runlabel.in"
// patharray2* textpath(stringarray *s, penarray *p);
void gen_runlabel4(stack *Stack)
{
penarray * p=vm::pop<penarray *>(Stack);
stringarray * s=vm::pop<stringarray *>(Stack);
-#line 388 "runlabel.in"
+#line 368 "runlabel.in"
size_t n=checkArrays(s,p);
if(n == 0) {Stack->push<patharray2*>(new array(0)); return;}
@@ -506,7 +486,7 @@ void gen_runlabel4(stack *Stack)
cmd2.push_back("-dBATCH");
cmd2.push_back("-P");
if(safe) cmd2.push_back("-dSAFER");
- cmd2.push_back("-sDEVICE="+getSetting<string>("epsdriver"));
+ cmd2.push_back("-sDEVICE="+getSetting<string>("psdriver"));
cmd2.push_back("-sOutputFile=-");
cmd2.push_back("-");
iopipestream gs(cmd2,"gs","Ghostscript");
@@ -535,16 +515,16 @@ void gen_runlabel4(stack *Stack)
bool keep=getSetting<bool>("keep");
if(!keep) // Delete temporary files.
unlink(textname.c_str());
- {Stack->push<patharray2*>(readpath(psname,keep,false,0.1)); return;}
+ {Stack->push<patharray2*>(readpath(psname,keep,0.1)); return;}
}
-#line 461 "runlabel.in"
+#line 441 "runlabel.in"
// patharray* _strokepath(path g, pen p=CURRENTPEN);
void gen_runlabel5(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
path g=vm::pop<path>(Stack);
-#line 462 "runlabel.in"
+#line 442 "runlabel.in"
array *P=new array(0);
if(g.size() == 0) {Stack->push<patharray*>(P); return;}
@@ -582,9 +562,9 @@ void gen_runlabel_venv(venv &ve)
addFunc(ve, run::gen_runlabel2, realArray(), SYM(texsize), formal(primString(), SYM(s), false, false), formal(primPen(), SYM(p), true, false));
#line 243 "runlabel.in"
addFunc(ve, run::gen_runlabel3, pathArray2(), SYM(_texpath), formal(stringArray(), SYM(s), false, false), formal(penArray(), SYM(p), false, false));
-#line 387 "runlabel.in"
+#line 367 "runlabel.in"
addFunc(ve, run::gen_runlabel4, pathArray2(), SYM(textpath), formal(stringArray(), SYM(s), false, false), formal(penArray(), SYM(p), false, false));
-#line 461 "runlabel.in"
+#line 441 "runlabel.in"
addFunc(ve, run::gen_runlabel5, pathArray(), SYM(_strokepath), formal(primPath(), SYM(g), false, false), formal(primPen(), SYM(p), true, false));
}
diff --git a/graphics/asymptote/runlabel.in b/graphics/asymptote/runlabel.in
index 61f66bfcb2..632f68df55 100644
--- a/graphics/asymptote/runlabel.in
+++ b/graphics/asymptote/runlabel.in
@@ -87,7 +87,7 @@ void showpath(std::ostream& ps)
fillpath(ps);
}
-array *readpath(const string& psname, bool keep, bool pdf=false,
+array *readpath(const string& psname, bool keep,
double hscale=1.0, double vsign=1.0)
{
double vscale=vsign*hscale;
@@ -111,8 +111,8 @@ array *readpath(const string& psname, bool keep, bool pdf=false,
#else
const string null="/dev/null";
#endif
- string epsdriver=getSetting<string>("epsdriver");
- cmd.push_back("-sDEVICE="+epsdriver);
+ string psdriver=getSetting<string>("psdriver");
+ cmd.push_back("-sDEVICE="+psdriver);
cmd.push_back("-sOutputFile="+null);
cmd.push_back(stripDir(psname));
iopipestream gs(cmd,"gs","Ghostscript");
@@ -120,7 +120,7 @@ array *readpath(const string& psname, bool keep, bool pdf=false,
stringstream buf;
string s=gs.readline();
if(s.empty()) break;
- if(!pdf) gs << newl;
+ gs << newl;
// Workaround broken stringstream container in libc++.
#ifdef _LIBCPP_VERSION
@@ -288,13 +288,9 @@ patharray2 *_texpath(stringarray *s, penarray *p)
string pdfname,pdfname2,psname2;
bool keep=getSetting<bool>("keep");
- bool legacygs=false;
if(!status) {
if(xe) {
-// Use legacy ghostscript driver for gs-9.13 and earlier.
- string epsdriver=getSetting<string>("epsdriver");
- legacygs=epsdriver == "epswrite";
-
+ string psdriver=getSetting<string>("psdriver");
pdfname=auxname(prefix,"pdf");
pdfname2=auxname(prefix+"_","pdf");
psname2=auxname(prefix+"_","ps");
@@ -323,28 +319,13 @@ patharray2 *_texpath(stringarray *s, penarray *p)
cmd.push_back("-dNOPAUSE");
cmd.push_back("-dBATCH");
if(safe) cmd.push_back("-dSAFER");
- cmd.push_back("-sDEVICE="+epsdriver);
- // Work around eps2write bug that forces all postscript to first page.
- cmd.push_back("-sOutputFile="+psname2+(legacygs ? "" : "%d"));
+ cmd.push_back("-sDEVICE="+psdriver);
+ cmd.push_back("-sOutputFile="+psname2);
cmd.push_back(pdfname2);
status=System(cmd,0,true,"gs");
- if(legacygs) {
- std::ifstream in(psname2.c_str());
- ps << in.rdbuf();
- } else {
- for(unsigned int i=1; i <= n ; ++i) {
- ostringstream buf;
- buf << psname2 << i;
- const string& s=buf.str();
- const char *name=s.c_str();
- std::ifstream in(name,std::ios::binary);
- ps << in.rdbuf();
- ps << "(>\n) print flush\n";
- in.close();
- if(!keep) unlink(name);
- }
- }
+ std::ifstream in(psname2.c_str());
+ ps << in.rdbuf();
ps.close();
}
} else {
@@ -380,8 +361,7 @@ patharray2 *_texpath(stringarray *s, penarray *p)
unlink(auxname(prefix,"tui").c_str());
}
}
- return xe ? readpath(psname,keep,!legacygs,0.1) :
- readpath(psname,keep,false,0.12,-1.0);
+ return xe ? readpath(psname,keep,0.1) : readpath(psname,keep,0.12,-1.0);
}
patharray2 *textpath(stringarray *s, penarray *p)
@@ -426,7 +406,7 @@ patharray2 *textpath(stringarray *s, penarray *p)
cmd2.push_back("-dBATCH");
cmd2.push_back("-P");
if(safe) cmd2.push_back("-dSAFER");
- cmd2.push_back("-sDEVICE="+getSetting<string>("epsdriver"));
+ cmd2.push_back("-sDEVICE="+getSetting<string>("psdriver"));
cmd2.push_back("-sOutputFile=-");
cmd2.push_back("-");
iopipestream gs(cmd2,"gs","Ghostscript");
@@ -455,7 +435,7 @@ patharray2 *textpath(stringarray *s, penarray *p)
bool keep=getSetting<bool>("keep");
if(!keep) // Delete temporary files.
unlink(textname.c_str());
- return readpath(psname,keep,false,0.1);
+ return readpath(psname,keep,0.1);
}
patharray *_strokepath(path g, pen p=CURRENTPEN)
diff --git a/graphics/asymptote/runstring.cc b/graphics/asymptote/runstring.cc
index cb1d3f713d..98f10e08f2 100644
--- a/graphics/asymptote/runstring.cc
+++ b/graphics/asymptote/runstring.cc
@@ -294,9 +294,11 @@ void gen_runstring10(stack *Stack)
array *a=read<array*>(translate,i);
checkArray(a);
}
- const char *p=S->c_str();
+ size_t pos=0;
ostringstream buf;
- while(*p) {
+ size_t Len=S->length();
+
+ while(pos < Len) {
for(size_t i=0; i < size;) {
array *a=read<array*>(translate,i);
size_t size2=checkArray(a);
@@ -304,25 +306,26 @@ void gen_runstring10(stack *Stack)
error("translation table entry must be an array of length 2");
string* from=read<string*>(a,0);
size_t len=from->length();
- if(strncmp(p,from->c_str(),len) != 0) {i++; continue;}
+ if(len == 0 || S->compare(pos,len,*from,0,len) != 0) {i++; continue;}
buf << read<string>(a,1);
- p += len;
- if(*p == 0) {Stack->push<string>(buf.str()); return;}
+ pos += len;
+ if(pos == Len) {Stack->push<string>(buf.str()); return;}
i=0;
}
- buf << *(p++);
+ buf << S->substr(pos,1);
+ ++pos;
}
{Stack->push<string>(buf.str()); return;}
}
-#line 205 "runstring.in"
+#line 208 "runstring.in"
// string format(string *format, Int x, string locale=emptystring);
void gen_runstring11(stack *Stack)
{
string locale=vm::pop<string>(Stack,emptystring);
Int x=vm::pop<Int>(Stack);
string * format=vm::pop<string *>(Stack);
-#line 206 "runstring.in"
+#line 209 "runstring.in"
ostringstream out;
const char *p0=format->c_str();
checkformat(p0,true);
@@ -375,7 +378,7 @@ void gen_runstring11(stack *Stack)
{Stack->push<string>(out.str()); return;}
}
-#line 259 "runstring.in"
+#line 262 "runstring.in"
// string format(string *format, bool forcemath=false, string separator, real x, string locale=emptystring);
void gen_runstring12(stack *Stack)
{
@@ -384,7 +387,7 @@ void gen_runstring12(stack *Stack)
string separator=vm::pop<string>(Stack);
bool forcemath=vm::pop<bool>(Stack,false);
string * format=vm::pop<string *>(Stack);
-#line 261 "runstring.in"
+#line 264 "runstring.in"
if(*format == "%") {Stack->push<string>(""); return;} // Temporary workaround for github Issue #29.
bool tex=getSetting<string>("tex") != "none";
@@ -511,12 +514,12 @@ void gen_runstring12(stack *Stack)
{Stack->push<string>(out.str()); return;}
}
-#line 388 "runstring.in"
+#line 391 "runstring.in"
// Int hex(string s);
void gen_runstring13(stack *Stack)
{
string s=vm::pop<string>(Stack);
-#line 389 "runstring.in"
+#line 392 "runstring.in"
istringstream is(s);
is.setf(std::ios::hex,std::ios::basefield);
Int value;
@@ -526,45 +529,45 @@ void gen_runstring13(stack *Stack)
error(buf);
}
-#line 399 "runstring.in"
+#line 402 "runstring.in"
// Int ascii(string s);
void gen_runstring14(stack *Stack)
{
string s=vm::pop<string>(Stack);
-#line 400 "runstring.in"
+#line 403 "runstring.in"
{Stack->push<Int>(s.empty() ? -1 : (unsigned char) s[0]); return;}
}
-#line 404 "runstring.in"
+#line 407 "runstring.in"
// string string(Int x);
void gen_runstring15(stack *Stack)
{
Int x=vm::pop<Int>(Stack);
-#line 405 "runstring.in"
+#line 408 "runstring.in"
ostringstream buf;
buf << x;
{Stack->push<string>(buf.str()); return;}
}
-#line 411 "runstring.in"
+#line 414 "runstring.in"
// string string(real x, Int digits=DBL_DIG);
void gen_runstring16(stack *Stack)
{
Int digits=vm::pop<Int>(Stack,DBL_DIG);
real x=vm::pop<real>(Stack);
-#line 412 "runstring.in"
+#line 415 "runstring.in"
ostringstream buf;
buf.precision(digits);
buf << x;
{Stack->push<string>(buf.str()); return;}
}
-#line 419 "runstring.in"
+#line 422 "runstring.in"
// string time(string format=defaulttimeformat);
void gen_runstring17(stack *Stack)
{
string format=vm::pop<string>(Stack,defaulttimeformat);
-#line 420 "runstring.in"
+#line 423 "runstring.in"
#ifdef HAVE_STRFTIME
const time_t bintime=time(NULL);
if(!strftime(Time,nTime,format.c_str(),localtime(&bintime))) {Stack->push<string>(""); return;}
@@ -574,13 +577,13 @@ void gen_runstring17(stack *Stack)
#endif
}
-#line 430 "runstring.in"
+#line 433 "runstring.in"
// string time(Int seconds, string format=defaulttimeformat);
void gen_runstring18(stack *Stack)
{
string format=vm::pop<string>(Stack,defaulttimeformat);
Int seconds=vm::pop<Int>(Stack);
-#line 431 "runstring.in"
+#line 434 "runstring.in"
#ifdef HAVE_STRFTIME
const time_t bintime=seconds;
if(!strftime(Time,nTime,format.c_str(),localtime(&bintime))) {Stack->push<string>(""); return;}
@@ -592,13 +595,13 @@ void gen_runstring18(stack *Stack)
#endif
}
-#line 443 "runstring.in"
+#line 446 "runstring.in"
// Int seconds(string t=emptystring, string format=emptystring);
void gen_runstring19(stack *Stack)
{
string format=vm::pop<string>(Stack,emptystring);
string t=vm::pop<string>(Stack,emptystring);
-#line 444 "runstring.in"
+#line 447 "runstring.in"
#if defined(HAVE_STRPTIME)
const time_t bintime=time(NULL);
tm tm=*localtime(&bintime);
@@ -637,23 +640,23 @@ void gen_runstring_venv(venv &ve)
addFunc(ve, run::gen_runstring9, primString(), SYM(upcase), formal(primString(), SYM(s), false, false));
#line 175 "runstring.in"
addFunc(ve, run::gen_runstring10, primString(), SYM(replace), formal(primString(), SYM(s), false, false), formal(stringArray2(), SYM(translate), false, false));
-#line 205 "runstring.in"
+#line 208 "runstring.in"
addFunc(ve, run::gen_runstring11, primString(), SYM(format), formal(primString(), SYM(format), false, false), formal(primInt(), SYM(x), false, false), formal(primString(), SYM(locale), true, false));
-#line 259 "runstring.in"
+#line 262 "runstring.in"
addFunc(ve, run::gen_runstring12, primString(), SYM(format), formal(primString(), SYM(format), false, false), formal(primBoolean(), SYM(forcemath), true, false), formal(primString(), SYM(separator), false, false), formal(primReal(), SYM(x), false, false), formal(primString(), SYM(locale), true, false));
-#line 388 "runstring.in"
+#line 391 "runstring.in"
addFunc(ve, run::gen_runstring13, primInt(), SYM(hex), formal(primString(), SYM(s), false, false));
-#line 399 "runstring.in"
+#line 402 "runstring.in"
addFunc(ve, run::gen_runstring14, primInt(), SYM(ascii), formal(primString(), SYM(s), false, false));
-#line 404 "runstring.in"
+#line 407 "runstring.in"
addFunc(ve, run::gen_runstring15, primString(), SYM(string), formal(primInt(), SYM(x), false, false));
-#line 411 "runstring.in"
+#line 414 "runstring.in"
addFunc(ve, run::gen_runstring16, primString(), SYM(string), formal(primReal(), SYM(x), false, false), formal(primInt(), SYM(digits), true, false));
-#line 419 "runstring.in"
+#line 422 "runstring.in"
addFunc(ve, run::gen_runstring17, primString(), SYM(time), formal(primString(), SYM(format), true, false));
-#line 430 "runstring.in"
+#line 433 "runstring.in"
addFunc(ve, run::gen_runstring18, primString(), SYM(time), formal(primInt(), SYM(seconds), false, false), formal(primString(), SYM(format), true, false));
-#line 443 "runstring.in"
+#line 446 "runstring.in"
addFunc(ve, run::gen_runstring19, primInt(), SYM(seconds), formal(primString(), SYM(t), true, false), formal(primString(), SYM(format), true, false));
}
diff --git a/graphics/asymptote/runstring.in b/graphics/asymptote/runstring.in
index 915811c7ff..415db53652 100644
--- a/graphics/asymptote/runstring.in
+++ b/graphics/asymptote/runstring.in
@@ -181,9 +181,11 @@ string replace(string *S, stringarray2 *translate)
array *a=read<array*>(translate,i);
checkArray(a);
}
- const char *p=S->c_str();
+ size_t pos=0;
ostringstream buf;
- while(*p) {
+ size_t Len=S->length();
+
+ while(pos < Len) {
for(size_t i=0; i < size;) {
array *a=read<array*>(translate,i);
size_t size2=checkArray(a);
@@ -191,13 +193,14 @@ string replace(string *S, stringarray2 *translate)
error("translation table entry must be an array of length 2");
string* from=read<string*>(a,0);
size_t len=from->length();
- if(strncmp(p,from->c_str(),len) != 0) {i++; continue;}
+ if(len == 0 || S->compare(pos,len,*from,0,len) != 0) {i++; continue;}
buf << read<string>(a,1);
- p += len;
- if(*p == 0) return buf.str();
+ pos += len;
+ if(pos == Len) return buf.str();
i=0;
}
- buf << *(p++);
+ buf << S->substr(pos,1);
+ ++pos;
}
return buf.str();
}
diff --git a/graphics/asymptote/runtime.cc b/graphics/asymptote/runtime.cc
index 066213f402..40f52a54bd 100644
--- a/graphics/asymptote/runtime.cc
+++ b/graphics/asymptote/runtime.cc
@@ -106,6 +106,7 @@ function *realRealFunction();
#include "lexical.h"
#include "process.h"
#include "arrayop.h"
+#include "seconds.h"
#if defined(USEGC) && defined(GC_DEBUG) && defined(GC_BACKTRACE)
extern "C" {
@@ -117,6 +118,7 @@ function *realRealFunction();
using namespace vm;
using namespace camp;
using namespace settings;
+using namespace utils;
#undef OUT
#undef IN
@@ -251,54 +253,54 @@ void unused(void *)
namespace run {
// Initializers
-#line 223 "runtime.in"
+#line 225 "runtime.in"
void IntZero(stack *Stack)
{
-#line 224 "runtime.in"
+#line 226 "runtime.in"
{Stack->push<Int>(0); return;}
}
-#line 229 "runtime.in"
+#line 231 "runtime.in"
void realZero(stack *Stack)
{
-#line 230 "runtime.in"
+#line 232 "runtime.in"
{Stack->push<real>(0.0); return;}
}
-#line 234 "runtime.in"
+#line 236 "runtime.in"
void boolFalse(stack *Stack)
{
-#line 235 "runtime.in"
+#line 237 "runtime.in"
{Stack->push<bool>(false); return;}
}
-#line 239 "runtime.in"
+#line 241 "runtime.in"
// bool isnan(real x);
void gen_runtime3(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 240 "runtime.in"
+#line 242 "runtime.in"
{Stack->push<bool>(std::isnan(x)); return;}
}
-#line 244 "runtime.in"
+#line 246 "runtime.in"
void pushNullArray(stack *Stack)
{
-#line 245 "runtime.in"
+#line 247 "runtime.in"
{Stack->push<array*>(0); return;}
}
-#line 249 "runtime.in"
+#line 251 "runtime.in"
void pushNullRecord(stack *Stack)
{
-#line 250 "runtime.in"
+#line 252 "runtime.in"
{Stack->push<frame*>(0); return;}
}
-#line 254 "runtime.in"
+#line 256 "runtime.in"
void pushNullFunction(stack *Stack)
{
-#line 255 "runtime.in"
+#line 257 "runtime.in"
{Stack->push(nullfunc::instance()); return;}
}
@@ -307,222 +309,222 @@ void pushNullFunction(stack *Stack)
// Put the default value token on the stack (in place of an argument when
// making a function call).
-#line 264 "runtime.in"
+#line 266 "runtime.in"
void pushDefault(stack *Stack)
{
-#line 265 "runtime.in"
+#line 267 "runtime.in"
{Stack->push(Default); return;}
}
// Test if the value on the stack is the default value token.
-#line 271 "runtime.in"
+#line 273 "runtime.in"
void isDefault(stack *Stack)
{
item i=vm::pop(Stack);
-#line 272 "runtime.in"
+#line 274 "runtime.in"
{Stack->push<bool>(isdefault(i)); return;}
}
// Casts
-#line 278 "runtime.in"
+#line 280 "runtime.in"
void pairToGuide(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 279 "runtime.in"
+#line 281 "runtime.in"
{Stack->push<guide*>(new pairguide(z)); return;}
}
-#line 284 "runtime.in"
+#line 286 "runtime.in"
void pathToGuide(stack *Stack)
{
path p=vm::pop<path>(Stack);
-#line 285 "runtime.in"
+#line 287 "runtime.in"
{Stack->push<guide*>(new pathguide(p)); return;}
}
-#line 289 "runtime.in"
+#line 291 "runtime.in"
void guideToPath(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 290 "runtime.in"
+#line 292 "runtime.in"
{Stack->push<path>(g->solve()); return;}
}
// Pen operations
-#line 296 "runtime.in"
+#line 298 "runtime.in"
void newPen(stack *Stack)
{
-#line 297 "runtime.in"
+#line 299 "runtime.in"
{Stack->push<pen>(pen()); return;}
}
-#line 302 "runtime.in"
+#line 304 "runtime.in"
// bool ==(pen a, pen b);
void gen_runtime13(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 303 "runtime.in"
+#line 305 "runtime.in"
{Stack->push<bool>(a == b); return;}
}
-#line 307 "runtime.in"
+#line 309 "runtime.in"
// bool !=(pen a, pen b);
void gen_runtime14(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 308 "runtime.in"
+#line 310 "runtime.in"
{Stack->push<bool>(a != b); return;}
}
-#line 312 "runtime.in"
+#line 314 "runtime.in"
// pen +(pen a, pen b);
void gen_runtime15(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 313 "runtime.in"
+#line 315 "runtime.in"
{Stack->push<pen>(a+b); return;}
}
-#line 317 "runtime.in"
+#line 319 "runtime.in"
// pen *(real a, pen b);
void gen_runtime16(stack *Stack)
{
pen b=vm::pop<pen>(Stack);
real a=vm::pop<real>(Stack);
-#line 318 "runtime.in"
+#line 320 "runtime.in"
{Stack->push<pen>(a*b); return;}
}
-#line 322 "runtime.in"
+#line 324 "runtime.in"
// pen *(pen a, real b);
void gen_runtime17(stack *Stack)
{
real b=vm::pop<real>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 323 "runtime.in"
+#line 325 "runtime.in"
{Stack->push<pen>(b*a); return;}
}
-#line 327 "runtime.in"
+#line 329 "runtime.in"
// pair max(pen p);
void gen_runtime18(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 328 "runtime.in"
+#line 330 "runtime.in"
{Stack->push<pair>(p.bounds().Max()); return;}
}
-#line 332 "runtime.in"
+#line 334 "runtime.in"
// pair min(pen p);
void gen_runtime19(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 333 "runtime.in"
+#line 335 "runtime.in"
{Stack->push<pair>(p.bounds().Min()); return;}
}
// Reset the meaning of pen default attributes.
-#line 338 "runtime.in"
+#line 340 "runtime.in"
// void resetdefaultpen();
void gen_runtime20(stack *)
{
-#line 339 "runtime.in"
+#line 341 "runtime.in"
processData().defaultpen=camp::pen::initialpen();
}
-#line 343 "runtime.in"
+#line 345 "runtime.in"
// void defaultpen(pen p);
void gen_runtime21(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 344 "runtime.in"
+#line 346 "runtime.in"
processData().defaultpen=pen(resolvepen,p);
}
-#line 348 "runtime.in"
+#line 350 "runtime.in"
// pen defaultpen();
void gen_runtime22(stack *Stack)
{
-#line 349 "runtime.in"
+#line 351 "runtime.in"
{Stack->push<pen>(processData().defaultpen); return;}
}
-#line 353 "runtime.in"
+#line 355 "runtime.in"
// bool invisible(pen p);
void gen_runtime23(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 354 "runtime.in"
+#line 356 "runtime.in"
{Stack->push<bool>(p.invisible()); return;}
}
-#line 358 "runtime.in"
+#line 360 "runtime.in"
// pen invisible();
void gen_runtime24(stack *Stack)
{
-#line 359 "runtime.in"
+#line 361 "runtime.in"
{Stack->push<pen>(pen(invisiblepen)); return;}
}
-#line 363 "runtime.in"
+#line 365 "runtime.in"
// pen gray(pen p);
void gen_runtime25(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 364 "runtime.in"
+#line 366 "runtime.in"
p.togrey();
{Stack->push<pen>(p); return;}
}
-#line 369 "runtime.in"
+#line 371 "runtime.in"
// pen rgb(pen p);
void gen_runtime26(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 370 "runtime.in"
+#line 372 "runtime.in"
p.torgb();
{Stack->push<pen>(p); return;}
}
-#line 375 "runtime.in"
+#line 377 "runtime.in"
// pen cmyk(pen p);
void gen_runtime27(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 376 "runtime.in"
+#line 378 "runtime.in"
p.tocmyk();
{Stack->push<pen>(p); return;}
}
-#line 381 "runtime.in"
+#line 383 "runtime.in"
// pen interp(pen a, pen b, real t);
void gen_runtime28(stack *Stack)
{
real t=vm::pop<real>(Stack);
pen b=vm::pop<pen>(Stack);
pen a=vm::pop<pen>(Stack);
-#line 382 "runtime.in"
+#line 384 "runtime.in"
{Stack->push<pen>(interpolate(a,b,t)); return;}
}
-#line 386 "runtime.in"
+#line 388 "runtime.in"
// pen rgb(real r, real g, real b);
void gen_runtime29(stack *Stack)
{
real b=vm::pop<real>(Stack);
real g=vm::pop<real>(Stack);
real r=vm::pop<real>(Stack);
-#line 387 "runtime.in"
+#line 389 "runtime.in"
{Stack->push<pen>(pen(r,g,b)); return;}
}
-#line 391 "runtime.in"
+#line 393 "runtime.in"
// pen cmyk(real c, real m, real y, real k);
void gen_runtime30(stack *Stack)
{
@@ -530,25 +532,25 @@ void gen_runtime30(stack *Stack)
real y=vm::pop<real>(Stack);
real m=vm::pop<real>(Stack);
real c=vm::pop<real>(Stack);
-#line 392 "runtime.in"
+#line 394 "runtime.in"
{Stack->push<pen>(pen(c,m,y,k)); return;}
}
-#line 396 "runtime.in"
+#line 398 "runtime.in"
// pen gray(real gray);
void gen_runtime31(stack *Stack)
{
real gray=vm::pop<real>(Stack);
-#line 397 "runtime.in"
+#line 399 "runtime.in"
{Stack->push<pen>(pen(gray)); return;}
}
-#line 401 "runtime.in"
+#line 403 "runtime.in"
// realarray* colors(pen p);
void gen_runtime32(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 402 "runtime.in"
+#line 404 "runtime.in"
size_t n=ColorComponents[p.colorspace()];
array *a=new array(n);
@@ -575,78 +577,78 @@ void gen_runtime32(stack *Stack)
{Stack->push<realarray*>(a); return;}
}
-#line 429 "runtime.in"
+#line 431 "runtime.in"
// string hex(pen p);
void gen_runtime33(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 430 "runtime.in"
+#line 432 "runtime.in"
{Stack->push<string>(p.hex()); return;}
}
-#line 434 "runtime.in"
+#line 436 "runtime.in"
// Int byte(real x);
void gen_runtime34(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 435 "runtime.in"
+#line 437 "runtime.in"
{Stack->push<Int>(camp::byte(x)); return;}
}
-#line 439 "runtime.in"
+#line 441 "runtime.in"
// string colorspace(pen p);
void gen_runtime35(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 440 "runtime.in"
+#line 442 "runtime.in"
string s=ColorDeviceSuffix[p.colorspace()];
std::transform(s.begin(),s.end(),s.begin(),tolower);
{Stack->push<string>(s); return;}
}
-#line 446 "runtime.in"
+#line 448 "runtime.in"
// pen pattern(string *s);
void gen_runtime36(stack *Stack)
{
string * s=vm::pop<string *>(Stack);
-#line 447 "runtime.in"
+#line 449 "runtime.in"
{Stack->push<pen>(pen(setpattern,*s)); return;}
}
-#line 451 "runtime.in"
+#line 453 "runtime.in"
// string pattern(pen p);
void gen_runtime37(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 452 "runtime.in"
+#line 454 "runtime.in"
{Stack->push<string>(p.fillpattern()); return;}
}
-#line 456 "runtime.in"
+#line 458 "runtime.in"
// pen fillrule(Int n);
void gen_runtime38(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 457 "runtime.in"
+#line 459 "runtime.in"
{Stack->push<pen>(pen(n >= 0 && n < nFill ? (FillRule) n : DEFFILL)); return;}
}
-#line 461 "runtime.in"
+#line 463 "runtime.in"
// Int fillrule(pen p);
void gen_runtime39(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 462 "runtime.in"
+#line 464 "runtime.in"
{Stack->push<Int>(p.Fillrule()); return;}
}
-#line 466 "runtime.in"
+#line 468 "runtime.in"
// pen opacity(real opacity=1.0, string blend=defaulttransparency);
void gen_runtime40(stack *Stack)
{
string blend=vm::pop<string>(Stack,defaulttransparency);
real opacity=vm::pop<real>(Stack,1.0);
-#line 467 "runtime.in"
+#line 469 "runtime.in"
for(Int i=0; i < nBlendMode; ++i)
if(blend == BlendMode[i]) {Stack->push<pen>(pen(Transparency(blend,opacity))); return;}
@@ -655,25 +657,25 @@ void gen_runtime40(stack *Stack)
error(buf);
}
-#line 476 "runtime.in"
+#line 478 "runtime.in"
// real opacity(pen p);
void gen_runtime41(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 477 "runtime.in"
+#line 479 "runtime.in"
{Stack->push<real>(p.opacity()); return;}
}
-#line 481 "runtime.in"
+#line 483 "runtime.in"
// string blend(pen p);
void gen_runtime42(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 482 "runtime.in"
+#line 484 "runtime.in"
{Stack->push<string>(p.blend()); return;}
}
-#line 486 "runtime.in"
+#line 488 "runtime.in"
// pen linetype(realarray *pattern, real offset=0, bool scale=true, bool adjust=true);
void gen_runtime43(stack *Stack)
{
@@ -681,7 +683,7 @@ void gen_runtime43(stack *Stack)
bool scale=vm::pop<bool>(Stack,true);
real offset=vm::pop<real>(Stack,0);
realarray * pattern=vm::pop<realarray *>(Stack);
-#line 488 "runtime.in"
+#line 490 "runtime.in"
size_t size=checkArray(pattern);
array *a=new array(size);
for(size_t i=0; i < size; ++i)
@@ -690,272 +692,272 @@ void gen_runtime43(stack *Stack)
{Stack->push<pen>(pen(LineType(*a,offset,scale,adjust))); return;}
}
-#line 497 "runtime.in"
+#line 499 "runtime.in"
// realarray* linetype(pen p=CURRENTPEN);
void gen_runtime44(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 498 "runtime.in"
+#line 500 "runtime.in"
array a=p.linetype()->pattern;
{Stack->push<realarray*>(copyArray(&a)); return;}
}
-#line 503 "runtime.in"
+#line 505 "runtime.in"
// real offset(pen p);
void gen_runtime45(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 504 "runtime.in"
+#line 506 "runtime.in"
{Stack->push<real>(p.linetype()->offset); return;}
}
-#line 508 "runtime.in"
+#line 510 "runtime.in"
// bool scale(pen p);
void gen_runtime46(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 509 "runtime.in"
+#line 511 "runtime.in"
{Stack->push<bool>(p.linetype()->scale); return;}
}
-#line 513 "runtime.in"
+#line 515 "runtime.in"
// bool adjust(pen p);
void gen_runtime47(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 514 "runtime.in"
+#line 516 "runtime.in"
{Stack->push<bool>(p.linetype()->adjust); return;}
}
-#line 518 "runtime.in"
+#line 520 "runtime.in"
// pen adjust(pen p, real arclength, bool cyclic);
void gen_runtime48(stack *Stack)
{
bool cyclic=vm::pop<bool>(Stack);
real arclength=vm::pop<real>(Stack);
pen p=vm::pop<pen>(Stack);
-#line 519 "runtime.in"
+#line 521 "runtime.in"
{Stack->push<pen>(adjustdash(p,arclength,cyclic)); return;}
}
-#line 523 "runtime.in"
+#line 525 "runtime.in"
// pen linecap(Int n);
void gen_runtime49(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 524 "runtime.in"
+#line 526 "runtime.in"
{Stack->push<pen>(pen(setlinecap,n >= 0 && n < nCap ? n : DEFCAP)); return;}
}
-#line 528 "runtime.in"
+#line 530 "runtime.in"
// Int linecap(pen p=CURRENTPEN);
void gen_runtime50(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 529 "runtime.in"
+#line 531 "runtime.in"
{Stack->push<Int>(p.cap()); return;}
}
-#line 533 "runtime.in"
+#line 535 "runtime.in"
// pen linejoin(Int n);
void gen_runtime51(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 534 "runtime.in"
+#line 536 "runtime.in"
{Stack->push<pen>(pen(setlinejoin,n >= 0 && n < nJoin ? n : DEFJOIN)); return;}
}
-#line 538 "runtime.in"
+#line 540 "runtime.in"
// Int linejoin(pen p=CURRENTPEN);
void gen_runtime52(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 539 "runtime.in"
+#line 541 "runtime.in"
{Stack->push<Int>(p.join()); return;}
}
-#line 543 "runtime.in"
+#line 545 "runtime.in"
// pen miterlimit(real x);
void gen_runtime53(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 544 "runtime.in"
+#line 546 "runtime.in"
{Stack->push<pen>(pen(setmiterlimit,x >= 1.0 ? x : DEFJOIN)); return;}
}
-#line 548 "runtime.in"
+#line 550 "runtime.in"
// real miterlimit(pen p=CURRENTPEN);
void gen_runtime54(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 549 "runtime.in"
+#line 551 "runtime.in"
{Stack->push<real>(p.miter()); return;}
}
-#line 553 "runtime.in"
+#line 555 "runtime.in"
// pen linewidth(real x);
void gen_runtime55(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 554 "runtime.in"
+#line 556 "runtime.in"
{Stack->push<pen>(pen(setlinewidth,x >= 0.0 ? x : DEFWIDTH)); return;}
}
-#line 558 "runtime.in"
+#line 560 "runtime.in"
// real linewidth(pen p=CURRENTPEN);
void gen_runtime56(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 559 "runtime.in"
+#line 561 "runtime.in"
{Stack->push<real>(p.width()); return;}
}
-#line 563 "runtime.in"
+#line 565 "runtime.in"
// pen fontcommand(string *s);
void gen_runtime57(stack *Stack)
{
string * s=vm::pop<string *>(Stack);
-#line 564 "runtime.in"
+#line 566 "runtime.in"
{Stack->push<pen>(pen(setfont,*s)); return;}
}
-#line 568 "runtime.in"
+#line 570 "runtime.in"
// string font(pen p=CURRENTPEN);
void gen_runtime58(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 569 "runtime.in"
+#line 571 "runtime.in"
{Stack->push<string>(p.Font()); return;}
}
-#line 573 "runtime.in"
+#line 575 "runtime.in"
// pen fontsize(real size, real lineskip);
void gen_runtime59(stack *Stack)
{
real lineskip=vm::pop<real>(Stack);
real size=vm::pop<real>(Stack);
-#line 574 "runtime.in"
+#line 576 "runtime.in"
{Stack->push<pen>(pen(setfontsize,size > 0.0 ? size : 0.0,
lineskip > 0.0 ? lineskip : 0.0)); return;}
}
-#line 579 "runtime.in"
+#line 581 "runtime.in"
// real fontsize(pen p=CURRENTPEN);
void gen_runtime60(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 580 "runtime.in"
+#line 582 "runtime.in"
{Stack->push<real>(p.size()); return;}
}
-#line 584 "runtime.in"
+#line 586 "runtime.in"
// real lineskip(pen p=CURRENTPEN);
void gen_runtime61(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 585 "runtime.in"
+#line 587 "runtime.in"
{Stack->push<real>(p.Lineskip()); return;}
}
-#line 589 "runtime.in"
+#line 591 "runtime.in"
// pen overwrite(Int n);
void gen_runtime62(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 590 "runtime.in"
+#line 592 "runtime.in"
{Stack->push<pen>(pen(setoverwrite,n >= 0 && n < nOverwrite ? (overwrite_t) n :
DEFWRITE)); return;}
}
-#line 595 "runtime.in"
+#line 597 "runtime.in"
// Int overwrite(pen p=CURRENTPEN);
void gen_runtime63(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 596 "runtime.in"
+#line 598 "runtime.in"
{Stack->push<Int>(p.Overwrite()); return;}
}
-#line 600 "runtime.in"
+#line 602 "runtime.in"
// pen basealign(Int n);
void gen_runtime64(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
-#line 601 "runtime.in"
+#line 603 "runtime.in"
{Stack->push<pen>(pen(n >= 0 && n < nBaseLine ? (BaseLine) n : DEFBASE)); return;}
}
-#line 605 "runtime.in"
+#line 607 "runtime.in"
// Int basealign(pen p=CURRENTPEN);
void gen_runtime65(stack *Stack)
{
pen p=vm::pop<pen>(Stack,CURRENTPEN);
-#line 606 "runtime.in"
+#line 608 "runtime.in"
{Stack->push<Int>(p.Baseline()); return;}
}
-#line 610 "runtime.in"
+#line 612 "runtime.in"
// transform transform(pen p);
void gen_runtime66(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 611 "runtime.in"
+#line 613 "runtime.in"
{Stack->push<transform>(p.getTransform()); return;}
}
-#line 615 "runtime.in"
+#line 617 "runtime.in"
// path nib(pen p);
void gen_runtime67(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 616 "runtime.in"
+#line 618 "runtime.in"
{Stack->push<path>(p.Path()); return;}
}
-#line 620 "runtime.in"
+#line 622 "runtime.in"
// pen makepen(path p);
void gen_runtime68(stack *Stack)
{
path p=vm::pop<path>(Stack);
-#line 621 "runtime.in"
+#line 623 "runtime.in"
{Stack->push<pen>(pen(p)); return;}
}
-#line 625 "runtime.in"
+#line 627 "runtime.in"
// pen colorless(pen p);
void gen_runtime69(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
-#line 626 "runtime.in"
+#line 628 "runtime.in"
p.colorless();
{Stack->push<pen>(p); return;}
}
// Interactive mode
-#line 632 "runtime.in"
+#line 634 "runtime.in"
// bool interactive();
void gen_runtime70(stack *Stack)
{
-#line 633 "runtime.in"
+#line 635 "runtime.in"
{Stack->push<bool>(interact::interactive); return;}
}
-#line 638 "runtime.in"
+#line 640 "runtime.in"
// bool uptodate();
void gen_runtime71(stack *Stack)
{
-#line 639 "runtime.in"
+#line 641 "runtime.in"
{Stack->push<bool>(interact::uptodate); return;}
}
// System commands
-#line 645 "runtime.in"
+#line 647 "runtime.in"
// Int system(stringarray *s);
void gen_runtime72(stack *Stack)
{
stringarray * s=vm::pop<stringarray *>(Stack);
-#line 646 "runtime.in"
+#line 648 "runtime.in"
if(safe) error("system() call disabled; override with option -nosafe");
size_t size=checkArray(s);
if(size == 0) {Stack->push<Int>(0); return;}
@@ -965,57 +967,57 @@ void gen_runtime72(stack *Stack)
{Stack->push<Int>(System(cmd)); return;}
}
-#line 657 "runtime.in"
+#line 659 "runtime.in"
// bool view();
void gen_runtime73(stack *Stack)
{
-#line 658 "runtime.in"
+#line 660 "runtime.in"
{Stack->push<bool>(view()); return;}
}
-#line 662 "runtime.in"
+#line 664 "runtime.in"
// string asydir();
void gen_runtime74(stack *Stack)
{
-#line 663 "runtime.in"
+#line 665 "runtime.in"
{Stack->push<string>(systemDir); return;}
}
-#line 667 "runtime.in"
+#line 669 "runtime.in"
// string locale(string s=emptystring);
void gen_runtime75(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
-#line 668 "runtime.in"
+#line 670 "runtime.in"
char *L=setlocale(LC_ALL,s.empty() ? NULL : s.c_str());
{Stack->push<string>(L != NULL ? string(L) : ""); return;}
}
-#line 673 "runtime.in"
+#line 675 "runtime.in"
// void abort(string s=emptystring);
void gen_runtime76(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
-#line 674 "runtime.in"
+#line 676 "runtime.in"
if(s.empty()) throw handled_error();
error(s.c_str());
}
-#line 679 "runtime.in"
+#line 681 "runtime.in"
// void exit();
void gen_runtime77(stack *)
{
-#line 680 "runtime.in"
+#line 682 "runtime.in"
throw quit();
}
-#line 684 "runtime.in"
+#line 686 "runtime.in"
// void assert(bool b, string s=emptystring);
void gen_runtime78(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
bool b=vm::pop<bool>(Stack);
-#line 685 "runtime.in"
+#line 687 "runtime.in"
flush(cout);
if(!b) {
ostringstream buf;
@@ -1025,34 +1027,34 @@ void gen_runtime78(stack *Stack)
}
}
-#line 695 "runtime.in"
+#line 697 "runtime.in"
// void sleep(Int seconds);
void gen_runtime79(stack *Stack)
{
Int seconds=vm::pop<Int>(Stack);
-#line 696 "runtime.in"
+#line 698 "runtime.in"
if(seconds <= 0) return;
sleep(seconds);
}
-#line 701 "runtime.in"
+#line 703 "runtime.in"
// void usleep(Int microseconds);
void gen_runtime80(stack *Stack)
{
Int microseconds=vm::pop<Int>(Stack);
-#line 702 "runtime.in"
+#line 704 "runtime.in"
if(microseconds <= 0) return;
usleep((unsigned long) microseconds);
}
-#line 707 "runtime.in"
+#line 709 "runtime.in"
// void _eval(string *s, bool embedded, bool interactiveWrite=false);
void gen_runtime81(stack *Stack)
{
bool interactiveWrite=vm::pop<bool>(Stack,false);
bool embedded=vm::pop<bool>(Stack);
string * s=vm::pop<string *>(Stack);
-#line 708 "runtime.in"
+#line 710 "runtime.in"
if(embedded) {
trans::coenv *e=Stack->getEnvironment();
vm::interactiveStack *is=dynamic_cast<vm::interactiveStack *>(Stack);
@@ -1064,13 +1066,13 @@ void gen_runtime81(stack *Stack)
runString(*s,interactiveWrite);
}
-#line 720 "runtime.in"
+#line 722 "runtime.in"
// void _eval(runnable *s, bool embedded);
void gen_runtime82(stack *Stack)
{
bool embedded=vm::pop<bool>(Stack);
runnable * s=vm::pop<runnable *>(Stack);
-#line 721 "runtime.in"
+#line 723 "runtime.in"
absyntax::block *ast=new absyntax::block(s->getPos(), false);
ast->add(s);
@@ -1085,59 +1087,59 @@ void gen_runtime82(stack *Stack)
runCode(ast);
}
-#line 736 "runtime.in"
+#line 738 "runtime.in"
// string xasyKEY();
void gen_runtime83(stack *Stack)
{
-#line 737 "runtime.in"
+#line 739 "runtime.in"
processDataStruct *P=&processData();
xkey_t *xkey=&P->xkey;
xkey_t::iterator p=xkey->find(P->topPos.LineColumn());
{Stack->push<string>(p != xkey->end() ? p->second+" 1" : toplocation()+" 0"); return;}
}
-#line 743 "runtime.in"
+#line 745 "runtime.in"
// void xasyKEY(string *s);
void gen_runtime84(stack *Stack)
{
string * s=vm::pop<string *>(Stack);
-#line 744 "runtime.in"
+#line 746 "runtime.in"
processData().KEY=*s;
}
-#line 747 "runtime.in"
+#line 749 "runtime.in"
// string toplocation();
void gen_runtime85(stack *Stack)
{
-#line 748 "runtime.in"
+#line 750 "runtime.in"
{Stack->push<string>(toplocation()); return;}
}
-#line 751 "runtime.in"
+#line 753 "runtime.in"
// string location();
void gen_runtime86(stack *Stack)
{
-#line 752 "runtime.in"
+#line 754 "runtime.in"
ostringstream buf;
buf << getPos();
{Stack->push<string>(buf.str()); return;}
}
// Wrapper for the stack::load() method.
-#line 758 "runtime.in"
+#line 760 "runtime.in"
void loadModule(stack *Stack)
{
string * index=vm::pop<string *>(Stack);
-#line 759 "runtime.in"
+#line 761 "runtime.in"
Stack->load(*index);
}
-#line 763 "runtime.in"
+#line 765 "runtime.in"
// string cd(string s=emptystring);
void gen_runtime88(stack *Stack)
{
string s=vm::pop<string>(Stack,emptystring);
-#line 764 "runtime.in"
+#line 766 "runtime.in"
if(!globalread()) readDisabled();
if(!s.empty() && !globalwrite()) {
string outname=settings::outname();
@@ -1147,13 +1149,13 @@ void gen_runtime88(stack *Stack)
{Stack->push<string>(setPath(s.c_str())); return;}
}
-#line 774 "runtime.in"
+#line 776 "runtime.in"
// void list(string *s, bool imports=false);
void gen_runtime89(stack *Stack)
{
bool imports=vm::pop<bool>(Stack,false);
string * s=vm::pop<string *>(Stack);
-#line 775 "runtime.in"
+#line 777 "runtime.in"
if(*s == "-") return;
trans::genv ge;
symbol name=symbol::trans(*s);
@@ -1163,18 +1165,18 @@ void gen_runtime89(stack *Stack)
// Guide operations
-#line 785 "runtime.in"
+#line 787 "runtime.in"
void nullGuide(stack *Stack)
{
-#line 786 "runtime.in"
+#line 788 "runtime.in"
{Stack->push<guide*>(new pathguide(path())); return;}
}
-#line 791 "runtime.in"
+#line 793 "runtime.in"
void dotsGuide(stack *Stack)
{
guidearray * a=vm::pop<guidearray *>(Stack);
-#line 792 "runtime.in"
+#line 794 "runtime.in"
guidevector v;
size_t size=checkArray(a);
for (size_t i=0; i < size; ++i)
@@ -1183,11 +1185,11 @@ void dotsGuide(stack *Stack)
{Stack->push<guide*>(new multiguide(v)); return;}
}
-#line 801 "runtime.in"
+#line 803 "runtime.in"
void dashesGuide(stack *Stack)
{
guidearray * a=vm::pop<guidearray *>(Stack);
-#line 802 "runtime.in"
+#line 804 "runtime.in"
static camp::curlSpec curly;
static camp::specguide curlout(&curly, camp::OUT);
static camp::specguide curlin(&curly, camp::IN);
@@ -1213,179 +1215,179 @@ void dashesGuide(stack *Stack)
{Stack->push<guide*>(new multiguide(v)); return;}
}
-#line 828 "runtime.in"
+#line 830 "runtime.in"
void newCycleToken(stack *Stack)
{
-#line 829 "runtime.in"
+#line 831 "runtime.in"
{Stack->push<cycleToken>(cycleToken()); return;}
}
-#line 833 "runtime.in"
+#line 835 "runtime.in"
// guide* operator cast(cycleToken tok);
void gen_runtime94(stack *Stack)
{
cycleToken tok=vm::pop<cycleToken>(Stack);
-#line 834 "runtime.in"
+#line 836 "runtime.in"
// Avoid unused variable warning messages.
unused(&tok);
{Stack->push<guide*>(new cycletokguide()); return;}
}
-#line 840 "runtime.in"
+#line 842 "runtime.in"
// guide* operator spec(pair z, Int p);
void gen_runtime95(stack *Stack)
{
Int p=vm::pop<Int>(Stack);
pair z=vm::pop<pair>(Stack);
-#line 841 "runtime.in"
+#line 843 "runtime.in"
camp::side d=(camp::side) p;
camp::dirSpec *sp=new camp::dirSpec(z);
{Stack->push<guide*>(new specguide(sp,d)); return;}
}
-#line 848 "runtime.in"
+#line 850 "runtime.in"
// curlSpecifier operator curl(real gamma, Int p);
void gen_runtime96(stack *Stack)
{
Int p=vm::pop<Int>(Stack);
real gamma=vm::pop<real>(Stack);
-#line 849 "runtime.in"
+#line 851 "runtime.in"
camp::side s=(camp::side) p;
{Stack->push<curlSpecifier>(curlSpecifier(gamma,s)); return;}
}
-#line 854 "runtime.in"
+#line 856 "runtime.in"
void curlSpecifierValuePart(stack *Stack)
{
curlSpecifier spec=vm::pop<curlSpecifier>(Stack);
-#line 855 "runtime.in"
+#line 857 "runtime.in"
{Stack->push<real>(spec.getValue()); return;}
}
-#line 859 "runtime.in"
+#line 861 "runtime.in"
void curlSpecifierSidePart(stack *Stack)
{
curlSpecifier spec=vm::pop<curlSpecifier>(Stack);
-#line 860 "runtime.in"
+#line 862 "runtime.in"
{Stack->push<Int>(spec.getSide()); return;}
}
-#line 864 "runtime.in"
+#line 866 "runtime.in"
// guide* operator cast(curlSpecifier spec);
void gen_runtime99(stack *Stack)
{
curlSpecifier spec=vm::pop<curlSpecifier>(Stack);
-#line 865 "runtime.in"
+#line 867 "runtime.in"
{Stack->push<guide*>(new specguide(spec)); return;}
}
-#line 869 "runtime.in"
+#line 871 "runtime.in"
// tensionSpecifier operator tension(real tout, real tin, bool atleast);
void gen_runtime100(stack *Stack)
{
bool atleast=vm::pop<bool>(Stack);
real tin=vm::pop<real>(Stack);
real tout=vm::pop<real>(Stack);
-#line 870 "runtime.in"
+#line 872 "runtime.in"
{Stack->push<tensionSpecifier>(tensionSpecifier(tout, tin, atleast)); return;}
}
-#line 874 "runtime.in"
+#line 876 "runtime.in"
void tensionSpecifierOutPart(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 875 "runtime.in"
+#line 877 "runtime.in"
{Stack->push<real>(t.getOut()); return;}
}
-#line 879 "runtime.in"
+#line 881 "runtime.in"
void tensionSpecifierInPart(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 880 "runtime.in"
+#line 882 "runtime.in"
{Stack->push<real>(t.getIn()); return;}
}
-#line 884 "runtime.in"
+#line 886 "runtime.in"
void tensionSpecifierAtleastPart(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 885 "runtime.in"
+#line 887 "runtime.in"
{Stack->push<bool>(t.getAtleast()); return;}
}
-#line 889 "runtime.in"
+#line 891 "runtime.in"
// guide* operator cast(tensionSpecifier t);
void gen_runtime104(stack *Stack)
{
tensionSpecifier t=vm::pop<tensionSpecifier>(Stack);
-#line 890 "runtime.in"
+#line 892 "runtime.in"
{Stack->push<guide*>(new tensionguide(t)); return;}
}
-#line 894 "runtime.in"
+#line 896 "runtime.in"
// guide* operator controls(pair zout, pair zin);
void gen_runtime105(stack *Stack)
{
pair zin=vm::pop<pair>(Stack);
pair zout=vm::pop<pair>(Stack);
-#line 895 "runtime.in"
+#line 897 "runtime.in"
{Stack->push<guide*>(new controlguide(zout, zin)); return;}
}
-#line 899 "runtime.in"
+#line 901 "runtime.in"
// Int size(guide *g);
void gen_runtime106(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 900 "runtime.in"
+#line 902 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<Int>(f.size()); return;}
}
-#line 906 "runtime.in"
+#line 908 "runtime.in"
// Int length(guide *g);
void gen_runtime107(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 907 "runtime.in"
+#line 909 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<Int>(g->cyclic() ? f.size() : f.size()-1); return;}
}
-#line 913 "runtime.in"
+#line 915 "runtime.in"
// bool cyclic(guide *g);
void gen_runtime108(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 914 "runtime.in"
+#line 916 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<bool>(g->cyclic()); return;}
}
-#line 920 "runtime.in"
+#line 922 "runtime.in"
// pair point(guide *g, Int t);
void gen_runtime109(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 921 "runtime.in"
+#line 923 "runtime.in"
flatguide f;
g->flatten(f,false);
{Stack->push<pair>(f.Nodes(adjustedIndex(t,f.size(),g->cyclic())).z); return;}
}
-#line 927 "runtime.in"
+#line 929 "runtime.in"
// pairarray* dirSpecifier(guide *g, Int t);
void gen_runtime110(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 928 "runtime.in"
+#line 930 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1396,13 +1398,13 @@ void gen_runtime110(stack *Stack)
{Stack->push<pairarray*>(c); return;}
}
-#line 939 "runtime.in"
+#line 941 "runtime.in"
// pairarray* controlSpecifier(guide *g, Int t);
void gen_runtime111(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 940 "runtime.in"
+#line 942 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1418,13 +1420,13 @@ void gen_runtime111(stack *Stack)
} else {Stack->push<pairarray*>(new array(0)); return;}
}
-#line 956 "runtime.in"
+#line 958 "runtime.in"
// tensionSpecifier tensionSpecifier(guide *g, Int t);
void gen_runtime112(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 957 "runtime.in"
+#line 959 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1433,13 +1435,13 @@ void gen_runtime112(stack *Stack)
{Stack->push<tensionSpecifier>(tensionSpecifier(curr.tout.val,f.Nodes(t+1).tin.val,curr.tout.atleast)); return;}
}
-#line 966 "runtime.in"
+#line 968 "runtime.in"
// realarray* curlSpecifier(guide *g, Int t);
void gen_runtime113(stack *Stack)
{
Int t=vm::pop<Int>(Stack);
guide * g=vm::pop<guide *>(Stack);
-#line 967 "runtime.in"
+#line 969 "runtime.in"
flatguide f;
g->flatten(f,false);
Int n=f.size();
@@ -1452,12 +1454,12 @@ void gen_runtime113(stack *Stack)
{Stack->push<realarray*>(c); return;}
}
-#line 980 "runtime.in"
+#line 982 "runtime.in"
// guide* reverse(guide *g);
void gen_runtime114(stack *Stack)
{
guide * g=vm::pop<guide *>(Stack);
-#line 981 "runtime.in"
+#line 983 "runtime.in"
flatguide f;
g->flatten(f,false);
if(f.precyclic())
@@ -1508,122 +1510,123 @@ void gen_runtime114(stack *Stack)
{Stack->push<guide*>(new multiguide(v)); return;}
}
-#line 1033 "runtime.in"
+#line 1035 "runtime.in"
// realarray* _cputime();
void gen_runtime115(stack *Stack)
{
-#line 1034 "runtime.in"
+#line 1036 "runtime.in"
static const real ticktime=1.0/sysconf(_SC_CLK_TCK);
struct tms buf;
::times(&buf);
- array *t=new array(4);
- (*t)[0] = ((real) buf.tms_utime)*ticktime;
- (*t)[1] = ((real) buf.tms_stime)*ticktime;
- (*t)[2] = ((real) buf.tms_cutime)*ticktime;
- (*t)[3] = ((real) buf.tms_cstime)*ticktime;
+ array *t=new array(5);
+ (*t)[0]=((real) buf.tms_utime)*ticktime;
+ (*t)[1]=((real) buf.tms_stime)*ticktime;
+ (*t)[2]=((real) buf.tms_cutime)*ticktime;
+ (*t)[3]=((real) buf.tms_cstime)*ticktime;
+ (*t)[4]=utils::totalseconds();
{Stack->push<realarray*>(t); return;}
}
// Transforms
-#line 1049 "runtime.in"
+#line 1052 "runtime.in"
// bool ==(transform a, transform b);
void gen_runtime116(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1050 "runtime.in"
+#line 1053 "runtime.in"
{Stack->push<bool>(a == b); return;}
}
-#line 1055 "runtime.in"
+#line 1058 "runtime.in"
// bool !=(transform a, transform b);
void gen_runtime117(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1056 "runtime.in"
+#line 1059 "runtime.in"
{Stack->push<bool>(a != b); return;}
}
-#line 1060 "runtime.in"
+#line 1063 "runtime.in"
// transform +(transform a, transform b);
void gen_runtime118(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1061 "runtime.in"
+#line 1064 "runtime.in"
{Stack->push<transform>(a+b); return;}
}
-#line 1065 "runtime.in"
+#line 1068 "runtime.in"
// transform *(transform a, transform b);
void gen_runtime119(stack *Stack)
{
transform b=vm::pop<transform>(Stack);
transform a=vm::pop<transform>(Stack);
-#line 1066 "runtime.in"
+#line 1069 "runtime.in"
{Stack->push<transform>(a*b); return;}
}
-#line 1070 "runtime.in"
+#line 1073 "runtime.in"
// pair *(transform t, pair z);
void gen_runtime120(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1071 "runtime.in"
+#line 1074 "runtime.in"
{Stack->push<pair>(t*z); return;}
}
-#line 1075 "runtime.in"
+#line 1078 "runtime.in"
// path *(transform t, path g);
void gen_runtime121(stack *Stack)
{
path g=vm::pop<path>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1076 "runtime.in"
+#line 1079 "runtime.in"
{Stack->push<path>(transformed(t,g)); return;}
}
-#line 1080 "runtime.in"
+#line 1083 "runtime.in"
// pen *(transform t, pen p);
void gen_runtime122(stack *Stack)
{
pen p=vm::pop<pen>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1081 "runtime.in"
+#line 1084 "runtime.in"
{Stack->push<pen>(transformed(t,p)); return;}
}
-#line 1085 "runtime.in"
+#line 1088 "runtime.in"
// picture* *(transform t, picture *f);
void gen_runtime123(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1086 "runtime.in"
+#line 1089 "runtime.in"
{Stack->push<picture*>(transformed(t,f)); return;}
}
-#line 1090 "runtime.in"
+#line 1093 "runtime.in"
// picture* *(realarray2 *t, picture *f);
void gen_runtime124(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
-#line 1091 "runtime.in"
+#line 1094 "runtime.in"
{Stack->push<picture*>(transformed(*t,f)); return;}
}
-#line 1095 "runtime.in"
+#line 1098 "runtime.in"
// transform ^(transform t, Int n);
void gen_runtime125(stack *Stack)
{
Int n=vm::pop<Int>(Stack);
transform t=vm::pop<transform>(Stack);
-#line 1096 "runtime.in"
+#line 1099 "runtime.in"
transform T;
if(n < 0) {
n=-n;
@@ -1633,55 +1636,55 @@ void gen_runtime125(stack *Stack)
{Stack->push<transform>(T); return;}
}
-#line 1106 "runtime.in"
+#line 1109 "runtime.in"
void transformXPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1107 "runtime.in"
+#line 1110 "runtime.in"
{Stack->push<real>(t.getx()); return;}
}
-#line 1111 "runtime.in"
+#line 1114 "runtime.in"
void transformYPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1112 "runtime.in"
+#line 1115 "runtime.in"
{Stack->push<real>(t.gety()); return;}
}
-#line 1116 "runtime.in"
+#line 1119 "runtime.in"
void transformXXPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1117 "runtime.in"
+#line 1120 "runtime.in"
{Stack->push<real>(t.getxx()); return;}
}
-#line 1121 "runtime.in"
+#line 1124 "runtime.in"
void transformXYPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1122 "runtime.in"
+#line 1125 "runtime.in"
{Stack->push<real>(t.getxy()); return;}
}
-#line 1126 "runtime.in"
+#line 1129 "runtime.in"
void transformYXPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1127 "runtime.in"
+#line 1130 "runtime.in"
{Stack->push<real>(t.getyx()); return;}
}
-#line 1131 "runtime.in"
+#line 1134 "runtime.in"
void transformYYPart(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1132 "runtime.in"
+#line 1135 "runtime.in"
{Stack->push<real>(t.getyy()); return;}
}
-#line 1136 "runtime.in"
+#line 1139 "runtime.in"
void real6ToTransform(stack *Stack)
{
real yy=vm::pop<real>(Stack);
@@ -1690,428 +1693,439 @@ void real6ToTransform(stack *Stack)
real xx=vm::pop<real>(Stack);
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 1138 "runtime.in"
+#line 1141 "runtime.in"
{Stack->push<transform>(transform(x,y,xx,xy,yx,yy)); return;}
}
-#line 1142 "runtime.in"
+#line 1145 "runtime.in"
// transform shift(transform t);
void gen_runtime133(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1143 "runtime.in"
+#line 1146 "runtime.in"
{Stack->push<transform>(transform(t.getx(),t.gety(),0,0,0,0)); return;}
}
-#line 1147 "runtime.in"
+#line 1150 "runtime.in"
// transform shiftless(transform t);
void gen_runtime134(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1148 "runtime.in"
+#line 1151 "runtime.in"
{Stack->push<transform>(transform(0,0,t.getxx(),t.getxy(),t.getyx(),t.getyy())); return;}
}
-#line 1152 "runtime.in"
+#line 1155 "runtime.in"
// transform identity();
void transformIdentity(stack *Stack)
{
-#line 1153 "runtime.in"
+#line 1156 "runtime.in"
{Stack->push<transform>(identity); return;}
}
-#line 1157 "runtime.in"
+#line 1160 "runtime.in"
// transform inverse(transform t);
void gen_runtime136(stack *Stack)
{
transform t=vm::pop<transform>(Stack);
-#line 1158 "runtime.in"
+#line 1161 "runtime.in"
{Stack->push<transform>(inverse(t)); return;}
}
-#line 1162 "runtime.in"
+#line 1165 "runtime.in"
// transform shift(pair z);
void gen_runtime137(stack *Stack)
{
pair z=vm::pop<pair>(Stack);
-#line 1163 "runtime.in"
+#line 1166 "runtime.in"
{Stack->push<transform>(shift(z)); return;}
}
-#line 1167 "runtime.in"
+#line 1170 "runtime.in"
// transform shift(real x, real y);
void gen_runtime138(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 1168 "runtime.in"
+#line 1171 "runtime.in"
{Stack->push<transform>(shift(pair(x,y))); return;}
}
-#line 1172 "runtime.in"
+#line 1175 "runtime.in"
// transform xscale(real x);
void gen_runtime139(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 1173 "runtime.in"
+#line 1176 "runtime.in"
{Stack->push<transform>(xscale(x)); return;}
}
-#line 1177 "runtime.in"
+#line 1180 "runtime.in"
// transform yscale(real y);
void gen_runtime140(stack *Stack)
{
real y=vm::pop<real>(Stack);
-#line 1178 "runtime.in"
+#line 1181 "runtime.in"
{Stack->push<transform>(yscale(y)); return;}
}
-#line 1182 "runtime.in"
+#line 1185 "runtime.in"
// transform scale(real x);
void gen_runtime141(stack *Stack)
{
real x=vm::pop<real>(Stack);
-#line 1183 "runtime.in"
+#line 1186 "runtime.in"
{Stack->push<transform>(scale(x)); return;}
}
-#line 1187 "runtime.in"
+#line 1190 "runtime.in"
// transform scale(real x, real y);
void gen_runtime142(stack *Stack)
{
real y=vm::pop<real>(Stack);
real x=vm::pop<real>(Stack);
-#line 1188 "runtime.in"
+#line 1191 "runtime.in"
{Stack->push<transform>(scale(x,y)); return;}
}
-#line 1192 "runtime.in"
+#line 1195 "runtime.in"
// transform slant(real s);
void gen_runtime143(stack *Stack)
{
real s=vm::pop<real>(Stack);
-#line 1193 "runtime.in"
+#line 1196 "runtime.in"
{Stack->push<transform>(slant(s)); return;}
}
-#line 1197 "runtime.in"
+#line 1200 "runtime.in"
// transform rotate(real angle, pair z=0);
void gen_runtime144(stack *Stack)
{
pair z=vm::pop<pair>(Stack,0);
real angle=vm::pop<real>(Stack);
-#line 1198 "runtime.in"
+#line 1201 "runtime.in"
{Stack->push<transform>(rotatearound(z,radians(angle))); return;}
}
-#line 1202 "runtime.in"
+#line 1205 "runtime.in"
// transform reflect(pair a, pair b);
void gen_runtime145(stack *Stack)
{
pair b=vm::pop<pair>(Stack);
pair a=vm::pop<pair>(Stack);
-#line 1203 "runtime.in"
+#line 1206 "runtime.in"
{Stack->push<transform>(reflectabout(a,b)); return;}
}
+#line 1210 "runtime.in"
+// bool isometry(transform t);
+void gen_runtime146(stack *Stack)
+{
+ transform t=vm::pop<transform>(Stack);
+#line 1211 "runtime.in"
+ {Stack->push<bool>(t.isIsometry()); return;}
+}
+
} // namespace run
namespace trans {
void gen_runtime_venv(venv &ve)
{
-#line 221 "runtime.in"
+#line 223 "runtime.in"
REGISTER_BLTIN(run::IntZero,"IntZero");
-#line 229 "runtime.in"
+#line 231 "runtime.in"
REGISTER_BLTIN(run::realZero,"realZero");
-#line 234 "runtime.in"
+#line 236 "runtime.in"
REGISTER_BLTIN(run::boolFalse,"boolFalse");
-#line 239 "runtime.in"
+#line 241 "runtime.in"
addFunc(ve, run::gen_runtime3, primBoolean(), SYM(isnan), formal(primReal(), SYM(x), false, false));
-#line 244 "runtime.in"
+#line 246 "runtime.in"
REGISTER_BLTIN(run::pushNullArray,"pushNullArray");
-#line 249 "runtime.in"
+#line 251 "runtime.in"
REGISTER_BLTIN(run::pushNullRecord,"pushNullRecord");
-#line 254 "runtime.in"
+#line 256 "runtime.in"
REGISTER_BLTIN(run::pushNullFunction,"pushNullFunction");
-#line 259 "runtime.in"
+#line 261 "runtime.in"
REGISTER_BLTIN(run::pushDefault,"pushDefault");
-#line 269 "runtime.in"
+#line 271 "runtime.in"
REGISTER_BLTIN(run::isDefault,"isDefault");
-#line 276 "runtime.in"
+#line 278 "runtime.in"
REGISTER_BLTIN(run::pairToGuide,"pairToGuide");
-#line 284 "runtime.in"
+#line 286 "runtime.in"
REGISTER_BLTIN(run::pathToGuide,"pathToGuide");
-#line 289 "runtime.in"
+#line 291 "runtime.in"
REGISTER_BLTIN(run::guideToPath,"guideToPath");
-#line 294 "runtime.in"
+#line 296 "runtime.in"
REGISTER_BLTIN(run::newPen,"newPen");
-#line 302 "runtime.in"
+#line 304 "runtime.in"
addFunc(ve, run::gen_runtime13, primBoolean(), SYM_EQ, formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 307 "runtime.in"
+#line 309 "runtime.in"
addFunc(ve, run::gen_runtime14, primBoolean(), SYM_NEQ, formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 312 "runtime.in"
+#line 314 "runtime.in"
addFunc(ve, run::gen_runtime15, primPen(), SYM_PLUS, formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 317 "runtime.in"
+#line 319 "runtime.in"
addFunc(ve, run::gen_runtime16, primPen(), SYM_TIMES, formal(primReal(), SYM(a), false, false), formal(primPen(), SYM(b), false, false));
-#line 322 "runtime.in"
+#line 324 "runtime.in"
addFunc(ve, run::gen_runtime17, primPen(), SYM_TIMES, formal(primPen(), SYM(a), false, false), formal(primReal(), SYM(b), false, false));
-#line 327 "runtime.in"
+#line 329 "runtime.in"
addFunc(ve, run::gen_runtime18, primPair(), SYM(max), formal(primPen(), SYM(p), false, false));
-#line 332 "runtime.in"
+#line 334 "runtime.in"
addFunc(ve, run::gen_runtime19, primPair(), SYM(min), formal(primPen(), SYM(p), false, false));
-#line 337 "runtime.in"
+#line 339 "runtime.in"
addFunc(ve, run::gen_runtime20, primVoid(), SYM(resetdefaultpen));
-#line 343 "runtime.in"
+#line 345 "runtime.in"
addFunc(ve, run::gen_runtime21, primVoid(), SYM(defaultpen), formal(primPen(), SYM(p), false, false));
-#line 348 "runtime.in"
+#line 350 "runtime.in"
addFunc(ve, run::gen_runtime22, primPen(), SYM(defaultpen));
-#line 353 "runtime.in"
+#line 355 "runtime.in"
addFunc(ve, run::gen_runtime23, primBoolean(), SYM(invisible), formal(primPen(), SYM(p), false, false));
-#line 358 "runtime.in"
+#line 360 "runtime.in"
addFunc(ve, run::gen_runtime24, primPen(), SYM(invisible));
-#line 363 "runtime.in"
+#line 365 "runtime.in"
addFunc(ve, run::gen_runtime25, primPen(), SYM(gray), formal(primPen(), SYM(p), false, false));
-#line 369 "runtime.in"
+#line 371 "runtime.in"
addFunc(ve, run::gen_runtime26, primPen(), SYM(rgb), formal(primPen(), SYM(p), false, false));
-#line 375 "runtime.in"
+#line 377 "runtime.in"
addFunc(ve, run::gen_runtime27, primPen(), SYM(cmyk), formal(primPen(), SYM(p), false, false));
-#line 381 "runtime.in"
+#line 383 "runtime.in"
addFunc(ve, run::gen_runtime28, primPen(), SYM(interp), formal(primPen(), SYM(a), false, false), formal(primPen(), SYM(b), false, false), formal(primReal(), SYM(t), false, false));
-#line 386 "runtime.in"
+#line 388 "runtime.in"
addFunc(ve, run::gen_runtime29, primPen(), SYM(rgb), formal(primReal(), SYM(r), false, false), formal(primReal(), SYM(g), false, false), formal(primReal(), SYM(b), false, false));
-#line 391 "runtime.in"
+#line 393 "runtime.in"
addFunc(ve, run::gen_runtime30, primPen(), SYM(cmyk), formal(primReal(), SYM(c), false, false), formal(primReal(), SYM(m), false, false), formal(primReal(), SYM(y), false, false), formal(primReal(), SYM(k), false, false));
-#line 396 "runtime.in"
+#line 398 "runtime.in"
addFunc(ve, run::gen_runtime31, primPen(), SYM(gray), formal(primReal(), SYM(gray), false, false));
-#line 401 "runtime.in"
+#line 403 "runtime.in"
addFunc(ve, run::gen_runtime32, realArray(), SYM(colors), formal(primPen(), SYM(p), false, false));
-#line 429 "runtime.in"
+#line 431 "runtime.in"
addFunc(ve, run::gen_runtime33, primString(), SYM(hex), formal(primPen(), SYM(p), false, false));
-#line 434 "runtime.in"
+#line 436 "runtime.in"
addFunc(ve, run::gen_runtime34, primInt(), SYM(byte), formal(primReal(), SYM(x), false, false));
-#line 439 "runtime.in"
+#line 441 "runtime.in"
addFunc(ve, run::gen_runtime35, primString(), SYM(colorspace), formal(primPen(), SYM(p), false, false));
-#line 446 "runtime.in"
+#line 448 "runtime.in"
addFunc(ve, run::gen_runtime36, primPen(), SYM(pattern), formal(primString(), SYM(s), false, false));
-#line 451 "runtime.in"
+#line 453 "runtime.in"
addFunc(ve, run::gen_runtime37, primString(), SYM(pattern), formal(primPen(), SYM(p), false, false));
-#line 456 "runtime.in"
+#line 458 "runtime.in"
addFunc(ve, run::gen_runtime38, primPen(), SYM(fillrule), formal(primInt(), SYM(n), false, false));
-#line 461 "runtime.in"
+#line 463 "runtime.in"
addFunc(ve, run::gen_runtime39, primInt(), SYM(fillrule), formal(primPen(), SYM(p), false, false));
-#line 466 "runtime.in"
+#line 468 "runtime.in"
addFunc(ve, run::gen_runtime40, primPen(), SYM(opacity), formal(primReal(), SYM(opacity), true, false), formal(primString(), SYM(blend), true, false));
-#line 476 "runtime.in"
+#line 478 "runtime.in"
addFunc(ve, run::gen_runtime41, primReal(), SYM(opacity), formal(primPen(), SYM(p), false, false));
-#line 481 "runtime.in"
+#line 483 "runtime.in"
addFunc(ve, run::gen_runtime42, primString(), SYM(blend), formal(primPen(), SYM(p), false, false));
-#line 486 "runtime.in"
+#line 488 "runtime.in"
addFunc(ve, run::gen_runtime43, primPen(), SYM(linetype), formal(realArray(), SYM(pattern), false, false), formal(primReal(), SYM(offset), true, false), formal(primBoolean(), SYM(scale), true, false), formal(primBoolean(), SYM(adjust), true, false));
-#line 497 "runtime.in"
+#line 499 "runtime.in"
addFunc(ve, run::gen_runtime44, realArray(), SYM(linetype), formal(primPen(), SYM(p), true, false));
-#line 503 "runtime.in"
+#line 505 "runtime.in"
addFunc(ve, run::gen_runtime45, primReal(), SYM(offset), formal(primPen(), SYM(p), false, false));
-#line 508 "runtime.in"
+#line 510 "runtime.in"
addFunc(ve, run::gen_runtime46, primBoolean(), SYM(scale), formal(primPen(), SYM(p), false, false));
-#line 513 "runtime.in"
+#line 515 "runtime.in"
addFunc(ve, run::gen_runtime47, primBoolean(), SYM(adjust), formal(primPen(), SYM(p), false, false));
-#line 518 "runtime.in"
+#line 520 "runtime.in"
addFunc(ve, run::gen_runtime48, primPen(), SYM(adjust), formal(primPen(), SYM(p), false, false), formal(primReal(), SYM(arclength), false, false), formal(primBoolean(), SYM(cyclic), false, false));
-#line 523 "runtime.in"
+#line 525 "runtime.in"
addFunc(ve, run::gen_runtime49, primPen(), SYM(linecap), formal(primInt(), SYM(n), false, false));
-#line 528 "runtime.in"
+#line 530 "runtime.in"
addFunc(ve, run::gen_runtime50, primInt(), SYM(linecap), formal(primPen(), SYM(p), true, false));
-#line 533 "runtime.in"
+#line 535 "runtime.in"
addFunc(ve, run::gen_runtime51, primPen(), SYM(linejoin), formal(primInt(), SYM(n), false, false));
-#line 538 "runtime.in"
+#line 540 "runtime.in"
addFunc(ve, run::gen_runtime52, primInt(), SYM(linejoin), formal(primPen(), SYM(p), true, false));
-#line 543 "runtime.in"
+#line 545 "runtime.in"
addFunc(ve, run::gen_runtime53, primPen(), SYM(miterlimit), formal(primReal(), SYM(x), false, false));
-#line 548 "runtime.in"
+#line 550 "runtime.in"
addFunc(ve, run::gen_runtime54, primReal(), SYM(miterlimit), formal(primPen(), SYM(p), true, false));
-#line 553 "runtime.in"
+#line 555 "runtime.in"
addFunc(ve, run::gen_runtime55, primPen(), SYM(linewidth), formal(primReal(), SYM(x), false, false));
-#line 558 "runtime.in"
+#line 560 "runtime.in"
addFunc(ve, run::gen_runtime56, primReal(), SYM(linewidth), formal(primPen(), SYM(p), true, false));
-#line 563 "runtime.in"
+#line 565 "runtime.in"
addFunc(ve, run::gen_runtime57, primPen(), SYM(fontcommand), formal(primString(), SYM(s), false, false));
-#line 568 "runtime.in"
+#line 570 "runtime.in"
addFunc(ve, run::gen_runtime58, primString(), SYM(font), formal(primPen(), SYM(p), true, false));
-#line 573 "runtime.in"
+#line 575 "runtime.in"
addFunc(ve, run::gen_runtime59, primPen(), SYM(fontsize), formal(primReal(), SYM(size), false, false), formal(primReal(), SYM(lineskip), false, false));
-#line 579 "runtime.in"
+#line 581 "runtime.in"
addFunc(ve, run::gen_runtime60, primReal(), SYM(fontsize), formal(primPen(), SYM(p), true, false));
-#line 584 "runtime.in"
+#line 586 "runtime.in"
addFunc(ve, run::gen_runtime61, primReal(), SYM(lineskip), formal(primPen(), SYM(p), true, false));
-#line 589 "runtime.in"
+#line 591 "runtime.in"
addFunc(ve, run::gen_runtime62, primPen(), SYM(overwrite), formal(primInt(), SYM(n), false, false));
-#line 595 "runtime.in"
+#line 597 "runtime.in"
addFunc(ve, run::gen_runtime63, primInt(), SYM(overwrite), formal(primPen(), SYM(p), true, false));
-#line 600 "runtime.in"
+#line 602 "runtime.in"
addFunc(ve, run::gen_runtime64, primPen(), SYM(basealign), formal(primInt(), SYM(n), false, false));
-#line 605 "runtime.in"
+#line 607 "runtime.in"
addFunc(ve, run::gen_runtime65, primInt(), SYM(basealign), formal(primPen(), SYM(p), true, false));
-#line 610 "runtime.in"
+#line 612 "runtime.in"
addFunc(ve, run::gen_runtime66, primTransform(), SYM(transform), formal(primPen(), SYM(p), false, false));
-#line 615 "runtime.in"
+#line 617 "runtime.in"
addFunc(ve, run::gen_runtime67, primPath(), SYM(nib), formal(primPen(), SYM(p), false, false));
-#line 620 "runtime.in"
+#line 622 "runtime.in"
addFunc(ve, run::gen_runtime68, primPen(), SYM(makepen), formal(primPath(), SYM(p), false, false));
-#line 625 "runtime.in"
+#line 627 "runtime.in"
addFunc(ve, run::gen_runtime69, primPen(), SYM(colorless), formal(primPen(), SYM(p), false, false));
-#line 631 "runtime.in"
+#line 633 "runtime.in"
addFunc(ve, run::gen_runtime70, primBoolean(), SYM(interactive));
-#line 638 "runtime.in"
+#line 640 "runtime.in"
addFunc(ve, run::gen_runtime71, primBoolean(), SYM(uptodate));
-#line 643 "runtime.in"
+#line 645 "runtime.in"
addFunc(ve, run::gen_runtime72, primInt(), SYM(system), formal(stringArray(), SYM(s), false, false));
-#line 657 "runtime.in"
+#line 659 "runtime.in"
addFunc(ve, run::gen_runtime73, primBoolean(), SYM(view));
-#line 662 "runtime.in"
+#line 664 "runtime.in"
addFunc(ve, run::gen_runtime74, primString(), SYM(asydir));
-#line 667 "runtime.in"
+#line 669 "runtime.in"
addFunc(ve, run::gen_runtime75, primString(), SYM(locale), formal(primString(), SYM(s), true, false));
-#line 673 "runtime.in"
+#line 675 "runtime.in"
addFunc(ve, run::gen_runtime76, primVoid(), SYM(abort), formal(primString(), SYM(s), true, false));
-#line 679 "runtime.in"
+#line 681 "runtime.in"
addFunc(ve, run::gen_runtime77, primVoid(), SYM(exit));
-#line 684 "runtime.in"
+#line 686 "runtime.in"
addFunc(ve, run::gen_runtime78, primVoid(), SYM(assert), formal(primBoolean(), SYM(b), false, false), formal(primString(), SYM(s), true, false));
-#line 695 "runtime.in"
+#line 697 "runtime.in"
addFunc(ve, run::gen_runtime79, primVoid(), SYM(sleep), formal(primInt(), SYM(seconds), false, false));
-#line 701 "runtime.in"
+#line 703 "runtime.in"
addFunc(ve, run::gen_runtime80, primVoid(), SYM(usleep), formal(primInt(), SYM(microseconds), false, false));
-#line 707 "runtime.in"
+#line 709 "runtime.in"
addFunc(ve, run::gen_runtime81, primVoid(), SYM(_eval), formal(primString(), SYM(s), false, false), formal(primBoolean(), SYM(embedded), false, false), formal(primBoolean(), SYM(interactivewrite), true, false));
-#line 720 "runtime.in"
+#line 722 "runtime.in"
addFunc(ve, run::gen_runtime82, primVoid(), SYM(_eval), formal(primCode(), SYM(s), false, false), formal(primBoolean(), SYM(embedded), false, false));
-#line 736 "runtime.in"
+#line 738 "runtime.in"
addFunc(ve, run::gen_runtime83, primString(), SYM(xasyKEY));
-#line 743 "runtime.in"
+#line 745 "runtime.in"
addFunc(ve, run::gen_runtime84, primVoid(), SYM(xasyKEY), formal(primString(), SYM(s), false, false));
-#line 747 "runtime.in"
+#line 749 "runtime.in"
addFunc(ve, run::gen_runtime85, primString(), SYM(toplocation));
-#line 751 "runtime.in"
+#line 753 "runtime.in"
addFunc(ve, run::gen_runtime86, primString(), SYM(location));
-#line 757 "runtime.in"
+#line 759 "runtime.in"
REGISTER_BLTIN(run::loadModule,"loadModule");
-#line 763 "runtime.in"
+#line 765 "runtime.in"
addFunc(ve, run::gen_runtime88, primString(), SYM(cd), formal(primString(), SYM(s), true, false));
-#line 774 "runtime.in"
+#line 776 "runtime.in"
addFunc(ve, run::gen_runtime89, primVoid(), SYM(list), formal(primString(), SYM(s), false, false), formal(primBoolean(), SYM(imports), true, false));
-#line 783 "runtime.in"
+#line 785 "runtime.in"
REGISTER_BLTIN(run::nullGuide,"nullGuide");
-#line 791 "runtime.in"
+#line 793 "runtime.in"
REGISTER_BLTIN(run::dotsGuide,"dotsGuide");
-#line 801 "runtime.in"
+#line 803 "runtime.in"
REGISTER_BLTIN(run::dashesGuide,"dashesGuide");
-#line 828 "runtime.in"
+#line 830 "runtime.in"
REGISTER_BLTIN(run::newCycleToken,"newCycleToken");
-#line 833 "runtime.in"
+#line 835 "runtime.in"
addFunc(ve, run::gen_runtime94, primGuide(), symbol::trans("operator cast"), formal(primCycleToken(), SYM(tok), false, false));
-#line 840 "runtime.in"
+#line 842 "runtime.in"
addFunc(ve, run::gen_runtime95, primGuide(), symbol::trans("operator spec"), formal(primPair(), SYM(z), false, false), formal(primInt(), SYM(p), false, false));
-#line 848 "runtime.in"
+#line 850 "runtime.in"
addFunc(ve, run::gen_runtime96, primCurlSpecifier(), SYM_CURL, formal(primReal(), SYM(gamma), false, false), formal(primInt(), SYM(p), false, false));
-#line 854 "runtime.in"
+#line 856 "runtime.in"
REGISTER_BLTIN(run::curlSpecifierValuePart,"curlSpecifierValuePart");
-#line 859 "runtime.in"
+#line 861 "runtime.in"
REGISTER_BLTIN(run::curlSpecifierSidePart,"curlSpecifierSidePart");
-#line 864 "runtime.in"
+#line 866 "runtime.in"
addFunc(ve, run::gen_runtime99, primGuide(), symbol::trans("operator cast"), formal(primCurlSpecifier(), SYM(spec), false, false));
-#line 869 "runtime.in"
+#line 871 "runtime.in"
addFunc(ve, run::gen_runtime100, primTensionSpecifier(), SYM_TENSION, formal(primReal(), SYM(tout), false, false), formal(primReal(), SYM(tin), false, false), formal(primBoolean(), SYM(atleast), false, false));
-#line 874 "runtime.in"
+#line 876 "runtime.in"
REGISTER_BLTIN(run::tensionSpecifierOutPart,"tensionSpecifierOutPart");
-#line 879 "runtime.in"
+#line 881 "runtime.in"
REGISTER_BLTIN(run::tensionSpecifierInPart,"tensionSpecifierInPart");
-#line 884 "runtime.in"
+#line 886 "runtime.in"
REGISTER_BLTIN(run::tensionSpecifierAtleastPart,"tensionSpecifierAtleastPart");
-#line 889 "runtime.in"
+#line 891 "runtime.in"
addFunc(ve, run::gen_runtime104, primGuide(), symbol::trans("operator cast"), formal(primTensionSpecifier(), SYM(t), false, false));
-#line 894 "runtime.in"
+#line 896 "runtime.in"
addFunc(ve, run::gen_runtime105, primGuide(), SYM_CONTROLS, formal(primPair(), SYM(zout), false, false), formal(primPair(), SYM(zin), false, false));
-#line 899 "runtime.in"
+#line 901 "runtime.in"
addFunc(ve, run::gen_runtime106, primInt(), SYM(size), formal(primGuide(), SYM(g), false, false));
-#line 906 "runtime.in"
+#line 908 "runtime.in"
addFunc(ve, run::gen_runtime107, primInt(), SYM(length), formal(primGuide(), SYM(g), false, false));
-#line 913 "runtime.in"
+#line 915 "runtime.in"
addFunc(ve, run::gen_runtime108, primBoolean(), SYM(cyclic), formal(primGuide(), SYM(g), false, false));
-#line 920 "runtime.in"
+#line 922 "runtime.in"
addFunc(ve, run::gen_runtime109, primPair(), SYM(point), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 927 "runtime.in"
+#line 929 "runtime.in"
addFunc(ve, run::gen_runtime110, pairArray(), SYM(dirSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 939 "runtime.in"
+#line 941 "runtime.in"
addFunc(ve, run::gen_runtime111, pairArray(), SYM(controlSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 956 "runtime.in"
+#line 958 "runtime.in"
addFunc(ve, run::gen_runtime112, primTensionSpecifier(), SYM(tensionSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 966 "runtime.in"
+#line 968 "runtime.in"
addFunc(ve, run::gen_runtime113, realArray(), SYM(curlSpecifier), formal(primGuide(), SYM(g), false, false), formal(primInt(), SYM(t), false, false));
-#line 980 "runtime.in"
+#line 982 "runtime.in"
addFunc(ve, run::gen_runtime114, primGuide(), SYM(reverse), formal(primGuide(), SYM(g), false, false));
-#line 1033 "runtime.in"
+#line 1035 "runtime.in"
addFunc(ve, run::gen_runtime115, realArray(), SYM(_cputime));
-#line 1047 "runtime.in"
+#line 1050 "runtime.in"
addFunc(ve, run::gen_runtime116, primBoolean(), SYM_EQ, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1055 "runtime.in"
+#line 1058 "runtime.in"
addFunc(ve, run::gen_runtime117, primBoolean(), SYM_NEQ, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1060 "runtime.in"
+#line 1063 "runtime.in"
addFunc(ve, run::gen_runtime118, primTransform(), SYM_PLUS, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1065 "runtime.in"
+#line 1068 "runtime.in"
addFunc(ve, run::gen_runtime119, primTransform(), SYM_TIMES, formal(primTransform(), SYM(a), false, false), formal(primTransform(), SYM(b), false, false));
-#line 1070 "runtime.in"
+#line 1073 "runtime.in"
addFunc(ve, run::gen_runtime120, primPair(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPair(), SYM(z), false, false));
-#line 1075 "runtime.in"
+#line 1078 "runtime.in"
addFunc(ve, run::gen_runtime121, primPath(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPath(), SYM(g), false, false));
-#line 1080 "runtime.in"
+#line 1083 "runtime.in"
addFunc(ve, run::gen_runtime122, primPen(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPen(), SYM(p), false, false));
-#line 1085 "runtime.in"
+#line 1088 "runtime.in"
addFunc(ve, run::gen_runtime123, primPicture(), SYM_TIMES, formal(primTransform(), SYM(t), false, false), formal(primPicture(), SYM(f), false, false));
-#line 1090 "runtime.in"
+#line 1093 "runtime.in"
addFunc(ve, run::gen_runtime124, primPicture(), SYM_TIMES, formal(realArray2(), SYM(t), false, false), formal(primPicture(), SYM(f), false, false));
-#line 1095 "runtime.in"
+#line 1098 "runtime.in"
addFunc(ve, run::gen_runtime125, primTransform(), SYM_CARET, formal(primTransform(), SYM(t), false, false), formal(primInt(), SYM(n), false, false));
-#line 1106 "runtime.in"
+#line 1109 "runtime.in"
REGISTER_BLTIN(run::transformXPart,"transformXPart");
-#line 1111 "runtime.in"
+#line 1114 "runtime.in"
REGISTER_BLTIN(run::transformYPart,"transformYPart");
-#line 1116 "runtime.in"
+#line 1119 "runtime.in"
REGISTER_BLTIN(run::transformXXPart,"transformXXPart");
-#line 1121 "runtime.in"
+#line 1124 "runtime.in"
REGISTER_BLTIN(run::transformXYPart,"transformXYPart");
-#line 1126 "runtime.in"
+#line 1129 "runtime.in"
REGISTER_BLTIN(run::transformYXPart,"transformYXPart");
-#line 1131 "runtime.in"
+#line 1134 "runtime.in"
REGISTER_BLTIN(run::transformYYPart,"transformYYPart");
-#line 1136 "runtime.in"
+#line 1139 "runtime.in"
REGISTER_BLTIN(run::real6ToTransform,"real6ToTransform");
-#line 1142 "runtime.in"
+#line 1145 "runtime.in"
addFunc(ve, run::gen_runtime133, primTransform(), SYM(shift), formal(primTransform(), SYM(t), false, false));
-#line 1147 "runtime.in"
+#line 1150 "runtime.in"
addFunc(ve, run::gen_runtime134, primTransform(), SYM(shiftless), formal(primTransform(), SYM(t), false, false));
-#line 1152 "runtime.in"
+#line 1155 "runtime.in"
addFunc(ve, run::transformIdentity, primTransform(), SYM(identity));
-#line 1157 "runtime.in"
+#line 1160 "runtime.in"
addFunc(ve, run::gen_runtime136, primTransform(), SYM(inverse), formal(primTransform(), SYM(t), false, false));
-#line 1162 "runtime.in"
+#line 1165 "runtime.in"
addFunc(ve, run::gen_runtime137, primTransform(), SYM(shift), formal(primPair(), SYM(z), false, false));
-#line 1167 "runtime.in"
+#line 1170 "runtime.in"
addFunc(ve, run::gen_runtime138, primTransform(), SYM(shift), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 1172 "runtime.in"
+#line 1175 "runtime.in"
addFunc(ve, run::gen_runtime139, primTransform(), SYM(xscale), formal(primReal(), SYM(x), false, false));
-#line 1177 "runtime.in"
+#line 1180 "runtime.in"
addFunc(ve, run::gen_runtime140, primTransform(), SYM(yscale), formal(primReal(), SYM(y), false, false));
-#line 1182 "runtime.in"
+#line 1185 "runtime.in"
addFunc(ve, run::gen_runtime141, primTransform(), SYM(scale), formal(primReal(), SYM(x), false, false));
-#line 1187 "runtime.in"
+#line 1190 "runtime.in"
addFunc(ve, run::gen_runtime142, primTransform(), SYM(scale), formal(primReal(), SYM(x), false, false), formal(primReal(), SYM(y), false, false));
-#line 1192 "runtime.in"
+#line 1195 "runtime.in"
addFunc(ve, run::gen_runtime143, primTransform(), SYM(slant), formal(primReal(), SYM(s), false, false));
-#line 1197 "runtime.in"
+#line 1200 "runtime.in"
addFunc(ve, run::gen_runtime144, primTransform(), SYM(rotate), formal(primReal(), SYM(angle), false, false), formal(primPair(), SYM(z), true, false));
-#line 1202 "runtime.in"
+#line 1205 "runtime.in"
addFunc(ve, run::gen_runtime145, primTransform(), SYM(reflect), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false));
+#line 1210 "runtime.in"
+ addFunc(ve, run::gen_runtime146, primBoolean(), SYM(isometry), formal(primTransform(), SYM(t), false, false));
}
} // namespace trans
diff --git a/graphics/asymptote/runtime.in b/graphics/asymptote/runtime.in
index 9740f82dda..27cde40074 100644
--- a/graphics/asymptote/runtime.in
+++ b/graphics/asymptote/runtime.in
@@ -81,6 +81,7 @@ stringarray2* => stringArray2()
#include "lexical.h"
#include "process.h"
#include "arrayop.h"
+#include "seconds.h"
#if defined(USEGC) && defined(GC_DEBUG) && defined(GC_BACKTRACE)
extern "C" {
@@ -92,6 +93,7 @@ stringarray2* => stringArray2()
using namespace vm;
using namespace camp;
using namespace settings;
+using namespace utils;
#undef OUT
#undef IN
@@ -1036,11 +1038,12 @@ realarray *_cputime()
struct tms buf;
::times(&buf);
- array *t=new array(4);
- (*t)[0] = ((real) buf.tms_utime)*ticktime;
- (*t)[1] = ((real) buf.tms_stime)*ticktime;
- (*t)[2] = ((real) buf.tms_cutime)*ticktime;
- (*t)[3] = ((real) buf.tms_cstime)*ticktime;
+ array *t=new array(5);
+ (*t)[0]=((real) buf.tms_utime)*ticktime;
+ (*t)[1]=((real) buf.tms_stime)*ticktime;
+ (*t)[2]=((real) buf.tms_cutime)*ticktime;
+ (*t)[3]=((real) buf.tms_cstime)*ticktime;
+ (*t)[4]=utils::totalseconds();
return t;
}
@@ -1203,3 +1206,8 @@ transform reflect(pair a, pair b)
{
return reflectabout(a,b);
}
+
+bool isometry(transform t)
+{
+ return t.isIsometry();
+}
diff --git a/graphics/asymptote/settings.cc b/graphics/asymptote/settings.cc
index b49d1e2336..edd9fec784 100644
--- a/graphics/asymptote/settings.cc
+++ b/graphics/asymptote/settings.cc
@@ -85,6 +85,7 @@ const bool havegl=false;
mode_t mask;
string systemDir=ASYMPTOTE_SYSDIR;
+string defaultPSdriver="ps2write";
string defaultEPSdriver="eps2write";
string defaultAsyGL="https://vectorgraphics.github.io/asymptote/base/webgl/asygl-"+
string(AsyGLVersion)+".js";
@@ -888,7 +889,7 @@ void version()
void usage(const char *program)
{
version();
- cerr << "\t\t\t" << "http://asymptote.sourceforge.net/"
+ cerr << "\t\t\t" << "https://asymptote.sourceforge.io/"
<< endl
<< "Usage: " << program << " [options] [file ...]"
<< endl;
@@ -997,7 +998,11 @@ struct versionOption : public option {
#endif
feature("WebGL 3D HTML rendering",glm);
+#ifdef HAVE_LIBOSMESA
+ feature("OpenGL 3D OSMesa offscreen rendering",gl);
+#else
feature("OpenGL 3D OpenGL rendering",gl);
+#endif
feature("GSL GNU Scientific Library (special functions)",gsl);
feature("FFTW3 Fast Fourier transforms",fftw3);
feature("XDR external data representation (portable binary file format)",xdr);
@@ -1282,6 +1287,8 @@ void initSettings() {
addOption(new boolSetting("inlineimage", 0,
"Generate inline embedded image"));
+ addOption(new boolSetting("compress", 0,
+ "Compress images in PDF output", true));
addOption(new boolSetting("parseonly", 'p', "Parse file"));
addOption(new boolSetting("translate", 's',
"Show translated virtual machine code"));
@@ -1423,6 +1430,7 @@ void initSettings() {
addOption(new envSetting("gs", defaultGhostscript));
addOption(new envSetting("libgs", defaultGhostscriptLibrary));
addOption(new envSetting("epsdriver", defaultEPSdriver));
+ addOption(new envSetting("psdriver", defaultPSdriver));
addOption(new envSetting("asygl", defaultAsyGL));
addOption(new envSetting("texpath", ""));
addOption(new envSetting("texcommand", ""));
diff --git a/graphics/asymptote/texfile.h b/graphics/asymptote/texfile.h
index 1546fbe62c..0c16fc91f1 100644
--- a/graphics/asymptote/texfile.h
+++ b/graphics/asymptote/texfile.h
@@ -123,8 +123,27 @@ template<class T>
void texdefines(T& out, mem::list<string>& preamble=processData().TeXpreamble,
bool pipe=false)
{
- if(pipe || !settings::getSetting<bool>("inlinetex"))
+ string texengine=settings::getSetting<string>("tex");
+ bool latex=settings::latex(texengine);
+ bool inlinetex=settings::getSetting<bool>("inlinetex");
+ if(pipe || !inlinetex) {
+ if(latex) {
+ if(texengine == "lualatex") {
+ out << "\\ifx\\pdfpagewidth\\undefined\\let\\pdfpagewidth\\paperwidth"
+ << "\\fi" << newl
+ << "\\ifx\\pdfpageheight\\undefined\\let\\pdfpageheight"
+ << "\\paperheight"
+ << "\\fi" << newl
+ << "\\usepackage{graphicx}" << newl;
+ } else {
+ out << "\\let\\paperwidthsave\\paperwidth\\let\\paperwidth\\undefined"
+ << newl
+ << "\\usepackage{graphicx}" << newl
+ << "\\let\\paperwidth\\paperwidthsave" << newl;
+ }
+ }
texpreamble(out,preamble,pipe);
+ }
if(pipe) {
// Make tex pipe aware of a previously generated aux file.
@@ -137,14 +156,11 @@ void texdefines(T& out, mem::list<string>& preamble=processData().TeXpreamble,
fout << s << endl;
}
}
- string texengine=settings::getSetting<string>("tex");
- if(settings::latex(texengine)) {
- if(pipe || !settings::getSetting<bool>("inlinetex")) {
- out << "\\usepackage{graphicx}" << newl;
- if(!pipe) {
- dvipsfix(out);
- out << "\\usepackage{color}" << newl;
- }
+
+ if(latex) {
+ if(!inlinetex) {
+ dvipsfix(out);
+ out << "\\usepackage{color}" << newl;
}
if(pipe) {
out << "\\begin{document}" << newl;
diff --git a/graphics/asymptote/transform.h b/graphics/asymptote/transform.h
index 158ea018f0..e8e9fff147 100644
--- a/graphics/asymptote/transform.h
+++ b/graphics/asymptote/transform.h
@@ -102,6 +102,11 @@ public:
xx == 1.0 && xy == 0.0 && yx == 0.0 && yy == 1.0;
}
+ bool isIsometry() const
+ {
+ return xx*xx+xy*xy == 1.0 && xx*yx+xy*yy == 0.0 && yx*yx+yy*yy == 1.0;
+ }
+
bool isNull() const
{
return x == 0.0 && y == 0.0 &&
diff --git a/graphics/asymptote/util.cc b/graphics/asymptote/util.cc
index 3782d608ed..81398491c0 100644
--- a/graphics/asymptote/util.cc
+++ b/graphics/asymptote/util.cc
@@ -269,8 +269,8 @@ void execError(const char *command, const char *hint, const char *application)
<< "Alternatively, set the environment variable ASYMPTOTE_" << s
<< endl << "or use the command line option -" << hint
<< "=\"LOCATION\". For further details, see" << endl
- << "http://asymptote.sourceforge.net/doc/Configuring.html" << endl
- << "http://asymptote.sourceforge.net/doc/Search-paths.html" << endl;
+ << "https://asymptote.sourceforge.io/doc/Configuring.html" << endl
+ << "https://asymptote.sourceforge.io/doc/Search-paths.html" << endl;
}
}
diff --git a/graphics/pgf/base/doc/ChangeLog b/graphics/pgf/base/doc/ChangeLog
index e609f0ec7d..58e8b3c429 100644
--- a/graphics/pgf/base/doc/ChangeLog
+++ b/graphics/pgf/base/doc/ChangeLog
@@ -1,3 +1,111 @@
+2020-11-21 Henri Menke
+
+ - Release 3.1.7
+
+2020-11-21 Henri Menke
+
+ - CI: Create release from tag
+
+2020-11-21 Henri Menke
+
+ - pgffor: new expand list option
+
+2020-11-06 Henri Menke
+
+ - Fix spurious spaces #946
+
+2020-11-03 Henri Menke
+
+ - Merge pull request #943 from agrahn/offpagefading
+
+2020-10-29 Alexander Grahn
+
+ - hiding smask in the PS viewer
+
+2020-10-24 Henri Menke
+
+ - Merge pull request #940 from Ordoviz/patch-1
+
+2020-10-24 Henri Menke
+
+ - Merge pull request #941 from Skillmon/improve-parser-doc
+
+2020-10-23 Jonathan Spratte
+
+ - macros are 'letters' for pgfparser as well
+
+2020-10-23 Jonathan Spratte
+
+ - fix comment in example code
+
+2020-10-23 Jonathan Spratte
+
+ - minor change to pgfparserletter
+
+2020-10-23 Jonathan Spratte
+
+ - minor change to pgfparserdefunknown
+
+2020-10-23 Jonathan Spratte
+
+ - minor change to pgfparserlet
+
+2020-10-23 Jonathan Spratte
+
+ - more info for pgfparserdef
+
+2020-10-23 Jonathan Spratte
+
+ - typos
+
+2020-10-19 Jonathan Spratte
+
+ - more precise pgfparserreinsert description
+
+2020-10-23 Lennard Hofmann
+
+ - [doc] Fix typo
+
+2020-10-12 Henri Menke
+
+ - Fix trailing else problem in pgfkeys
+
+2020-10-12 Henri Menke
+
+ - Merge branch 'pgfkeys-small-fixing' of https://github.com/muzimuzhi/pgf
+
+2020-10-12 Henri Menke
+
+ - Always place shadings in TLT in LuaTeX #934
+
+2020-10-11 Andras Deak
+
+ - DOC: typo fix in en-tikz-actions
+
+2020-10-11 muzimuzhi
+
+ - pgfkeys: fix spurious spaces in "/errors" keys
+
+2020-10-11 muzimuzhi
+
+ - pgfkeys: in "/.add code", ensure `/.@cmd` is long
+
+2020-10-04 Henri Menke
+
+ - Random shifts to fix output routine shenenigans #928
+
+2020-10-04 Henri Menke
+
+ - Revert "pgfkeys: make `.initial` compatible with `.code`, fix #654"
+
+2020-10-03 muzimuzhi
+
+ - doc: various minor fix
+
+2020-10-03 muzimuzhi
+
+ - doc: minor fix, #930
+
2020-10-01 Henri Menke
- Release 3.1.6a
diff --git a/graphics/pgf/base/doc/pgfmanual.pdf b/graphics/pgf/base/doc/pgfmanual.pdf
index e6d119603d..5e6f2a0212 100644
--- a/graphics/pgf/base/doc/pgfmanual.pdf
+++ b/graphics/pgf/base/doc/pgfmanual.pdf
Binary files differ
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex
index daa5a45e79..5d81abf79d 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-base-arrows.tex
@@ -142,7 +142,7 @@ We will use the following terminology:
\item There is also a \emph{visual tip end}, the counterpart of the visual
back end for the front. In our case, the visual tip end and the tip end
obviously coincide, but if we were to reverse the arrow tip, the visual
- tip end would be different form the tip end (while the visual back end
+ tip end would be different from the tip end (while the visual back end
would then coincide with the new back end).
\item There are four points that make up the \emph{convex hull} of the
arrow tip: $(1,0)$, $(-3,2)$, and $(-3,-2)$.
@@ -258,7 +258,7 @@ fast arrow tip management.
This defines the name of the arrow tip. It is legal to define an
arrow tip a second time, in this case the previous definition will
be overwritten in the current \TeX\ scope. It is customary to use a
- name with an uppercase fist letter for a ``complete'' arrow tip
+ name with an uppercase first letter for a ``complete'' arrow tip
kind. Short names and lower case names should be used for
shorthands that change their meaning inside a document, while arrow
tips with uppercase first letters should not be redefined.
@@ -917,7 +917,7 @@ you need to make \pgfname\ ``aware'' of this using the following key:
\end{command}
\begin{command}{\pgfarrowslinewidthdependent\marg{dimension}\marg{line width factor}\marg{outer factor}}
- This command take three parameters and does the ``line width dependent
+ This command takes three parameters and does the ``line width dependent
computation'' described on page~\pageref{length-arrow-key} for the |length|
key. The result is returned in |\pgf@x|.
@@ -937,7 +937,7 @@ you need to make \pgfname\ ``aware'' of this using the following key:
\end{command}
\begin{command}{\pgfarrowslengthdependent\marg{dimension}\marg{length factor}\marg{dummy}}
- This command take three parameters, of which the last one is ignored, and
+ This command takes three parameters, of which the last one is ignored, and
does the ``length dependent computation'' described for the |width'| and
|inset'| keys. The result is returned in |\pgf@x|.
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex
index b1dfe59edb..29034d17cb 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-base-nodes.tex
@@ -171,7 +171,7 @@ must set up the box |\pgfnodepartXYZbox|. The box will be placed at the anchor
As can be seen, all coordinate transformations are also applied to the text
of the shape. Sometimes, it is desirable that the transformations are
applied to the point where the shape will be anchored, but you do not wish
- the shape itself to the transformed. In this case, you should call
+ the shape itself to be transformed. In this case, you should call
|\pgftransformresetnontranslations| prior to calling the |\pgfnode|
command.
%
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex
index ad7ddc0ad6..69468800d0 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-formats.tex
@@ -71,7 +71,7 @@ point may span several lines, but deviating from this ``one data point per
line'' rule makes parsers harder to program.
-\subsection{Reference: Build-In Formats}
+\subsection{Reference: Built-In Formats}
The following format is the default format, when no |format=...| is specified.
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex
index 88d5f2bba6..98680aa335 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-dv-stylesheets.tex
@@ -781,7 +781,7 @@ data group {sin functions};
visualizer.
\end{stylesheet}
-\begin{stylesheet}{vary dashing and thickness}
+\begin{stylesheet}{vary thickness and dashing}
This style alternates between varying the thickness and the dashing of
lines. The difference to just using both the |vary thickness| and
|vary dashing| is that too thick lines are avoided. Instead, this style
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex
index 44bc571c4a..143bc16851 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-module-parser.tex
@@ -39,7 +39,7 @@ optionally some code is executed afterwards.
The parser works as follows: At any moment, it is in a certain
\emph{state}, initially this state is called |initial|. Then, the first
- letter of the \meta{text} is examined (using the |\futurlet| command). For
+ letter of the \meta{text} is examined (using the |\futurelet| command). For
each possible state and each possible letter, some action code is stored in
the parser in a table. This code is then executed. This code may, but need
not, trigger a \emph{state switch}, causing a new state to be set. The
@@ -72,19 +72,27 @@ There are \the\mycount\ a's.
}%
This command should be used repeatedly to define a parser named
\meta{parser name}. With a call to this command you specify that the
- \meta{parser name} should do the following: When it is in state \meta{state}%
- and reads the letter \meta{symbol meaning}, perform the code stored in
- \meta{action}.
+ \meta{parser name} should do the following: When it is in state
+ \meta{state} and reads the letter \meta{symbol meaning}, perform the code
+ stored in \meta{action}.
The \meta{symbol meaning} must be the text that results from applying the
\TeX\ command |\meaning| to the given character. For instance, |\meaning a|
yields |the letter a|, while |\meaning 1| yields |the character 1|. A space
- yields |blank space|. Alternatively you can give the symbol you want without
+ yields |blank space |. Alternatively you can give the symbol you want without
surrounding it in braces. So both
|\pgfparserdef{myparser}{initial}{the letter a}{foo}|
and
|\pgfparserdef{myparser}{initial}a{foo}|
- define an \meta{action} for |the letter a|.
+ define an \meta{action} for |the letter a|. This short form works for most
+ tokens, but not for a space (in which case you can use
+ |\pgfparserdef{myparser}{initial}{blank space}{foo}|), and opening braces
+ (in which case you can use
+ |\pgfparserdef{myparser}{initial}{\meaning\bgroup}{foo}|, and one might prefer
+ to use |\pgfparserdef{myparser}{initial}{\meaning\egroup}{foo}| for closing
+ braces as well). You can as well define an action for a macro's meaning (note
+ that macros with different names can have the same meaning), so things like
+ |\pgfparserdef{myparser}{initial}\texttt{foo}| are possible as well.
The \meta{action} might require arguments which you can specify in the
optional \meta{arguments} string. The argument string can contain up to nine
@@ -142,7 +150,7 @@ There are \the\mycount\ a's.
goes back to the parser. You should not launch a parser inside the
\meta{action} code, unless you put it in a scope.
- When you set the \meta{state} to |all|, the state \meta{action} is performed
+ When you use |all| as the \meta{state}, the \meta{action} is performed
in all states as a fallback, whenever \meta{symbol meaning} is encountered.
This means that when you do not specify anything explicitly for a state and a
letter, but you do specify something for |all| and this letter, then the
@@ -151,7 +159,9 @@ There are \the\mycount\ a's.
When the parser encounters a letter for which nothing is specified in the
current state (neither directly nor indirectly via |all|), an error occurs.
Additionally you can specify an action that is executed after the error is
- thrown using |\pgfparserdefunknown|.
+ thrown using |\pgfparserdefunknown|. To suppress these errors (but not the
+ action specified with |\pgfparserdefunknown|) you can use the
+ |/pgfparser/silent| key or the |silent| key of the current \meta{parser name}.
\end{command}%
\begin{command}%
@@ -160,11 +170,11 @@ There are \the\mycount\ a's.
\marg{parser name 1}\marg{state 1}\meta{symbol meaning 1}%
\oarg{opt 1}\oarg{opt 2}\meta{symbol meaning 2}%
}%
- If none of the optional arguments are given in the following \meta{parser
- name 2} and \meta{state 2} are the same as \meta{parser name 1} and
- \meta{state 1}. If only the first is given \meta{state 2} equals
- \meta{opt 1}. If both are given \meta{parser name 2} equals \meta{opt 1} and
- \meta{state 2} equals \meta{opt 2}.
+ If none of the optional arguments are given in the following explanation
+ \meta{parser name 2} and \meta{state 2} are the same as
+ \meta{parser name 1} and \meta{state 1}. If only the first is given
+ \meta{state 2} equals \meta{opt 1}. If both are given \meta{parser name 2}
+ equals \meta{opt 1} and \meta{state 2} equals \meta{opt 2}.
Defines an action for \meta{parser name 1} in \meta{state 1} for the
\meta{symbol meaning 1} to do the same as the action of \meta{parser name 2}
@@ -176,7 +186,8 @@ There are \the\mycount\ a's.
\begin{command}{\pgfparserdefunknown\marg{parser name}\marg{state}\marg{action}}%
With this macro you can define an \meta{action} for the \meta{parser name}
- parser in \meta{state} if the letter which was encountered was undefined.
+ parser in \meta{state} if no action was defined for the letter which was
+ encountered.
\end{command}%
\begin{command}{\pgfparserdeffinal\marg{parser name}\marg{action}}%
@@ -200,9 +211,11 @@ There are \the\mycount\ a's.
\begin{command}{\pgfparserreinsert}%
You can use this as the final macro in an action of |\pgfparserdef| or
- |\pgfparserdefunknown|. This has the effect that the letter which was parsed
- in this action will be parsed again after this action (and after any arguments
- were read).
+ |\pgfparserdefunknown|. This has the effect that the contents of
+ |\pgfparserletter| will be parsed next. Without any redefinition the result
+ will be that the last token will be parsed again. You can change the
+ definition of |\pgfparserletter| just before |\pgfparserreinsert| as well to
+ parse some specific tokens next.
\end{command}%
\begin{command}{\pgfparserstate}%
@@ -220,9 +233,9 @@ There are \the\mycount\ a's.
|\def\pgfparserletter{a}|. This definition is done before any action code is
executed. There are four special cases: If the next token is of category code
1, 2, 6, or 10, so with standard category codes the tokens |{|, |}|, |#|, and
- \textvisiblespace\ (a space) would be treated differently. In those cases this
- macro expands to |\bgroup|, |\egroup|, |##|, and \textvisiblespace\ for the
- categories 1, 2, 6, and 10, respectively.
+ \textvisiblespace\ (a space), it would be treated differently. In those cases
+ this macro expands to |\bgroup|, |\egroup|, |##|, and \textvisiblespace\ for
+ the categories 1, 2, 6, and 10, respectively.
\end{command}%
\begin{command}{\pgfparserset\marg{key list}}%
@@ -285,7 +298,7 @@ Next we want to try something that uses some of the different argument types
available.
%
\begin{codeexample}[preamble={\usepgfmodule{parser}}]
-% using the same syntax as \pgfparserdef
+% using the long syntax of \pgfparserdef
\pgfparserdef{arguments}{initial}{the letter a}[d()]
{\pgfparserifmark{#1}{\textcolor{red}{\textit{use}}}{\textbf{#1}} }%
% using the shortcut syntax
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex
index 34f3aab738..94a41fbfe2 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-pgffor.tex
@@ -372,6 +372,27 @@ This section describes the package |pgffor|, which is loaded automatically by
\end{codeexample}
%
\end{key}
+
+ \begin{key}{/pgf/foreach/expand list=\marg{boolean} (default false)}
+ If this key is set to true the contents of the list are fully expanded
+ with |\edef| before further processing. This allows using complex
+ macros which generate a list upon expansion without having to use an
+ intermediate macro.
+ %
+\begin{codeexample}[]
+\def\Iota#1#2{%
+ \ifnum\numexpr#1\relax<\numexpr#2\relax
+ \the\numexpr#1\relax,%
+ \expandafter\Iota\expandafter{\the\numexpr(#1)+1\relax}{#2}%
+ \else
+ \the\numexpr#2\relax
+ \fi}
+\foreach [expand list=true] \x in {\Iota{1}{5}} {
+ \x
+}
+\end{codeexample}
+ %
+ \end{key}
\end{command}
\begin{command}{\breakforeach}
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex
index 2c22c1a952..8241da2c7e 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-pgfkeys.tex
@@ -402,7 +402,7 @@ In order to setup a special syntax handling for \meta{strings} that begin with
a certain character, two things need to be done:
%
\begin{enumerate}
- \item First, the whole first char syntax detection must be ``switched on'',
+ \item First, the whole |first char syntax| detection must be ``switched on'',
since, by default, it is turned off for efficiency reasons (the
overhead is rather small, however). This is done by setting the
following key:
@@ -1264,7 +1264,7 @@ directly stored in a key.
\end{handler}
\begin{handler}{{.add}|=|\marg{prefix value}\marg{append value}}
- Adds the \meta{prefix value} and the beginning and the \meta{append value}
+ Adds the \meta{prefix value} at the beginning and the \meta{append value}
at the end of the value stored in \meta{key}.
\end{handler}
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex
index 74c7882e51..2cd528bfa2 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-actions.tex
@@ -620,7 +620,7 @@ For this to happen, a number of different things need to be specified:
Section~\ref{section-tikz-arrows}, to setup which kinds of arrow tips
you would like.
\item The path may not be closed (like a circle or a rectangle) and, if
- it consists of several subpath, further restrictions apply as
+ it consists of several subpaths, further restrictions apply as
explained in Section~\ref{section-tikz-arrows}.
\item The |tips| key must be set to an appropriate value, see
Section~\ref{section-tikz-arrows} once more.
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex
index e8da9f3b13..ced3a827fe 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-arrows.tex
@@ -398,7 +398,7 @@ context:
to select this), the size of the arrow should still be the same
as in the first case (that is, as if a miter join were used).
This creates some ``visual consistency'' if the two modes are
- mixed or if you later one change the mode.
+ mixed or if you later want to change the mode.
%
\begin{codeexample}[preamble={\usetikzlibrary{arrows.meta}}]
\tikz{
@@ -417,7 +417,7 @@ context:
\begin{key}{/pgf/arrow keys/width=\meta{dimension}| |\opt{\meta{line width factor}}%
| |\opt{\meta{outer factor}}}
- This key works line the |length| key, only it specifies the ``width'' of
+ This key works like the |length| key, only it specifies the ``width'' of
the arrow tip; so if width and length are identical, the arrow will just
touch the borders of a square. (An exception to this rule are ``halved''
arrow tips, see Section~\ref{section-arrow-key-harpoon}.) The meaning of
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex
index 2f9d95af92..bfe669c724 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-graphs.tex
@@ -160,7 +160,7 @@ the following example:
\graph { foo -> bar -> blub };
\end{codeexample}
-As can be seen, the text |foo -> bar -> my node| creates three nodes, one with
+As can be seen, the text |foo -> bar -> blub| creates three nodes, one with
the text |foo|, one with |bar| and one with the text |blub|. These nodes are
connected by arrows, which are caused by the |->| between the node texts. Such
a sequence of node texts and arrows between them is called a \emph{chain} in
@@ -296,7 +296,7 @@ going from |b| to |c| and the edge going from |b| to |d|. To achieve this
effect, we can no longer specify the label as part of the options of |--|.
Rather, we must pass the desired label to the nodes |c| and |d|, but we must
somehow also indicate that these options actually ``belong'' to the edge
-``leading to'' to nodes. This is achieved by preceding the options with a
+``leading'' to nodes. This is achieved by preceding the options with a
greater-than sign:
%
\begin{codeexample}[preamble={\usetikzlibrary{graphs,quotes}}]
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex
index 968628d5c5..3a3f524eed 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-paths.tex
@@ -69,8 +69,8 @@ which is described in the subsections of the present section.
%
\begin{codeexample}[]
\tikz{\draw (0,0) -- (1,1);
- \draw [color=red] (2,0) -- (3,1);
- \draw [color=blue] (3,0) -- (2,1);}
+ \draw [color=red] (1,1) -- (2,0) -- (3,1);
+ \draw [color=blue] (3,1) -- (3,0) -- (2,1);}
\end{codeexample}
\end{enumerate}
@@ -1134,6 +1134,7 @@ for a reference.
The \emph{let operation} is the first of a number of path operations that do
not actually extend that path, but have different, mostly local, effects.
+It requires the |calc| library, see Section~\ref{tikz-lib-calc}.
\begin{pathoperation}{let}{\meta{assignment}
\opt{|,|\meta{assignment}}%
@@ -1178,7 +1179,7 @@ not actually extend that path, but have different, mostly local, effects.
The second kind of \meta{assignments} have the following form:
%
\begin{quote}
- |\p|\meta{point register}|={|\meta{formula}|}|
+ |\p|\meta{point register}|=|\meta{coordinate}
\end{quote}
%
Point position registers store a single point, consisting of an $x$-part
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex
index 203689729f..a757b394a2 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-plots.tex
@@ -198,7 +198,7 @@ namely whenever you use an expression involving a parenthesis.
The following options influence how the \meta{coordinate expression} is
evaluated:
%
-\begin{key}{/tikz/variable=\meta{macro} (initially x)}
+\begin{key}{/tikz/variable=\meta{macro} (initially \string\x)}
Sets the macro whose value is set to the different values when
\meta{coordinate expression} is evaluated.
\end{key}
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex
index 72cd794c9f..a712c1a4c9 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-shapes.tex
@@ -3033,7 +3033,7 @@ The following macro may be useful there:
Expands to the last node on the path.
\end{command}
-Instead of the |node also| syntax, you can also the following option:
+Instead of the |node also| syntax, you can also use the following option:
\begin{key}{/tikz/late options=\meta{options}}
This option can be given on a path (but not as an argument to a |node| path
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex
index ef049f3cf3..baa38cb438 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tikz-transformations.tex
@@ -97,7 +97,7 @@ To change the $x$-, $y$-, and $z$-vectors, you can use the following options:
corner of the grid.
If \meta{value} is a coordinate, the $x$-vector of \pgfname's
- $xyz$-coordinate system to the specified coordinate. If \meta{value}
+ $xyz$-coordinate system is set to the specified coordinate. If \meta{value}
contains a comma, it must be put in braces.
%
\begin{codeexample}[]
diff --git a/graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex b/graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex
index 0a35440fd1..7f334ddc7f 100644
--- a/graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex
+++ b/graphics/pgf/base/doc/text-en/pgfmanual-en-tutorial.tex
@@ -822,7 +822,7 @@ By comparison, when using a single |+|, the coordinates are different:
Naturally, all of this could have been written more clearly and more
-economically like this (either with a single of a double |+|):
+economically like this (either with a single or a double |+|):
%
\begin{codeexample}[]
\tikz \draw (0,0) rectangle +(1,1) (1.5,0) rectangle +(1,1);
diff --git a/graphics/pgf/base/tex/pgf.revision.tex b/graphics/pgf/base/tex/pgf.revision.tex
index 8b87951e3b..1c04a7bfd7 100644
--- a/graphics/pgf/base/tex/pgf.revision.tex
+++ b/graphics/pgf/base/tex/pgf.revision.tex
@@ -5,10 +5,10 @@
\catcode`\:=12
\catcode`\+=12
\catcode`\-=12
-\gdef\pgfrevision{3.1.6a}
-\gdef\pgfversion{3.1.6a}
-\gdef\pgfversiondatetime{2020-10-01 21:02:59 +0200}
-\gdef\pgfrevisiondatetime{2020-10-01 21:02:59 +0200}
+\gdef\pgfrevision{3.1.7}
+\gdef\pgfversion{3.1.7}
+\gdef\pgfversiondatetime{2020-11-23 12:12:00 +0100}
+\gdef\pgfrevisiondatetime{2020-11-23 12:12:00 +0100}
\gdef\pgf@glob@TMPa#1-#2-#3 #4\relax{#1/#2/#3}
\xdef\pgfversiondate{\expandafter\pgf@glob@TMPa\pgfversiondatetime\relax}
\xdef\pgfrevisiondate{\expandafter\pgf@glob@TMPa\pgfrevisiondatetime\relax}
diff --git a/graphics/pgf/base/tex/pgffor.code.tex b/graphics/pgf/base/tex/pgffor.code.tex
index cdb77b3137..65b62b8cf9 100644
--- a/graphics/pgf/base/tex/pgffor.code.tex
+++ b/graphics/pgf/base/tex/pgffor.code.tex
@@ -79,10 +79,13 @@
\fi%
}
+\def\pgffor@expand@list@true{\let\pgffor@expand@list\edef}
+\def\pgffor@expand@list@false{\let\pgffor@expand@list\def}
\def\pgffor@macro@list#1{%
\expandafter\pgffor@normal@list\expandafter{#1}}
\def\pgffor@normal@list#1{%
- \def\pgffor@values{#1, \pgffor@stop,}%
+ \pgffor@expand@list\pgffor@values{#1}%
+ \expandafter\def\expandafter\pgffor@values\expandafter{\pgffor@values, \pgffor@stop,}%
\ifx\pgffor@values\pgffor@emptyvalues
\def\pgffor@values{\pgffor@stop,}%
\fi%
@@ -619,6 +622,9 @@
count/.code=\pgffor@count@parse#1\pgffor@stop,
parse/.is if=pgffor@assign@parse,
parse/.default=false,
+ expand list/.is if=pgffor@expand@list@,
+ expand list/.default=true,
+ expand list=false,
}
\def\pgffor@assign@parse#1{%
diff --git a/graphics/pgf/base/tex/pgfkeys.code.tex b/graphics/pgf/base/tex/pgfkeys.code.tex
index e32745317c..db89141aca 100644
--- a/graphics/pgf/base/tex/pgfkeys.code.tex
+++ b/graphics/pgf/base/tex/pgfkeys.code.tex
@@ -178,7 +178,13 @@
%
% \pgfkeysifdefined{/tikz/length}{key exists}{does not exist}
-\long\def\pgfkeysifdefined#1#2#3{\ifcsname pgfk@#1\endcsname#2\else#3\fi}
+\long\def\pgfkeysifdefined#1{%
+ \ifcsname pgfk@#1\endcsname
+ \expandafter\pgfkeys@firstoftwo
+ \else
+ \expandafter\pgfkeys@secondoftwo
+ \fi
+}
% Tests whether a key is assignable. For standard keys which just
% store their value, this is identical to \pgfkeysifdefined.
@@ -749,7 +755,7 @@
{%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.@args}{\pgfkeys@tempargs}%
\pgfkeysgetvalue{\pgfkeyscurrentpath/.@body}{\pgfkeys@tempbody}%
- \def\pgfkeys@marshal{\expandafter\gdef\expandafter\pgfkeys@global@temp\pgfkeys@tempargs}%
+ \def\pgfkeys@marshal{\expandafter\long\expandafter\gdef\expandafter\pgfkeys@global@temp\pgfkeys@tempargs}%
\expandafter\pgfkeys@marshal\expandafter{\pgfkeys@tempbody}%
}%
\pgfkeysifdefined{\pgfkeyscurrentpath/.@@body}{%
@@ -799,11 +805,7 @@
% Defining a value
-\pgfkeys{/handlers/.initial/.code=%
- \pgfkeyslet{\pgfkeyscurrentpath/.@cmd}\undefined
- \pgfkeyslet{\pgfkeyscurrentpath/.@args}\undefined
- \pgfkeyssetvalue{\pgfkeyscurrentpath}{#1}%
-}
+\pgfkeys{/handlers/.initial/.code=\pgfkeyssetvalue{\pgfkeyscurrentpath}{#1}}
\pgfkeys{/handlers/.add/.code 2 args=\pgfkeysaddvalue{\pgfkeyscurrentpath}{#1}{#2}}
\pgfkeys{/handlers/.prefix/.code=\pgfkeysaddvalue{\pgfkeyscurrentpath}{#1}{}}
\pgfkeys{/handlers/.append/.code=\pgfkeysaddvalue{\pgfkeyscurrentpath}{}{#1}}
@@ -1039,50 +1041,50 @@
\pgfkeys{
/errors/boolean expected/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\pgfkeys@error{%
Boolean parameter of key '\the\toks1' must be 'true' or 'false', not
'\the\toks2'. I am going to ignore it%
- }
+ }%
},
/errors/value required/.code 2 args=%
- {
- \toks1={#1}
+ {%
+ \toks1={#1}%
\pgfkeys@error{%
The key '\the\toks1' requires a value. I am going to ignore this
key%
- }
+ }%
},
/errors/value forbidden/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\pgfkeys@error{%
You may not specify a value for the key '\the\toks1'. I am going to ignore
the value '\the\toks2' that you provided%
- }
+ }%
},
/errors/unknown choice value/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\pgfkeys@error{%
Choice '\the\toks2' unknown in choice key '\the\toks1'. I am
going to ignore this key%
- }
+ }%
},
/errors/unknown key/.code 2 args=%
- {
- \toks1={#1}
- \toks2={#2}
+ {%
+ \toks1={#1}%
+ \toks2={#2}%
\def\pgf@temp{#2}%
\pgfkeys@error{%
I do not know the key '\the\toks1'\ifx\pgf@temp\pgfkeysnovalue@text\space\else, to which you passed
'\the\toks2', \fi and I am going to ignore it. Perhaps you
misspelled it%
- }
+ }%
}
}
diff --git a/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex b/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
index 6bc4286323..8ed52a5187 100644
--- a/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
+++ b/graphics/pgf/base/tex/pgflibraryshapes.geometric.code.tex
@@ -163,7 +163,7 @@
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@ya
}%
- \anchorborder{
+ \anchorborder{%
\edef\pgf@marshal{%
\noexpand\pgfpointborderellipse
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
diff --git a/graphics/pgf/base/tex/pgfmoduleshapes.code.tex b/graphics/pgf/base/tex/pgfmoduleshapes.code.tex
index 4e8cce59a4..a22aca4757 100644
--- a/graphics/pgf/base/tex/pgfmoduleshapes.code.tex
+++ b/graphics/pgf/base/tex/pgfmoduleshapes.code.tex
@@ -1260,7 +1260,7 @@
\advance\pgf@x by0.707107\pgf@xa
\advance\pgf@y by-0.707107\pgf@xa
}%
- \anchorborder{
+ \anchorborder{%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\edef\pgf@marshal{%
diff --git a/graphics/pgf/base/tex/pgfsys-dvips.def b/graphics/pgf/base/tex/pgfsys-dvips.def
index 70f5ba2887..678fdd4d0b 100644
--- a/graphics/pgf/base/tex/pgfsys-dvips.def
+++ b/graphics/pgf/base/tex/pgfsys-dvips.def
@@ -474,15 +474,27 @@
\expandafter\xdef\csname pgfsmasktrans@#1\endcsname{%
\noexpand\pgftransformcm{1}{0}{0}{1}{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}}%
\edef\@tempa{\noexpand\pgfutil@insertatbegincurrentpagefrombox{%
- % box coordinates (reference point and top) needed for distilling
+ % box coordinates (reference point and top) needed for ps2pdf
\pgfsys@outerinvoke{currentpoint /pgf@refy exch def /pgf@refx exch def}%
\hbox to 0pt {\hbox to \ifdim\ht#2>\ht\strutbox\ht#2\else\ht\strutbox\fi{\hss\pgfsys@outerinvoke{%
/pgf@top pgf@refy currentpoint pop pgf@refx sub VResolution Resolution div mul sub def%
}}\hss}%
+ % lower-right box corner coordinates for viewing
+ \hbox to 0pt {\hbox to \wd#2{\hss\pgfsys@outerinvoke{/pgf@right currentpoint pop def}}\hss}%
+ \hbox to 0pt {\hbox to \ifdim\dp#2>\dp\strutbox\dp#2\else\dp\strutbox\fi{\hss\pgfsys@outerinvoke{%
+ /pgf@bot pgf@refy currentpoint pop pgf@refx sub VResolution Resolution div mul add def%
+ }}\hss}%
\pgfsys@outerinvoke{gsave
- % translate box to upper left page corner, so we have the whole clipping path (i. e.
- % page area) available for distilling, as outlying parts get clipped
- clippath pathbbox newpath pop pop translate pgf@refx neg pgf@top neg translate
+ clippath pathbbox newpath pop pop translate
+ systemdict /pdfmark known {%
+ % for ps2pdf, translate box to upper-left page corner, so we have the whole clipping
+ % path (i. e. page area) available, as outlying parts get clipped
+ pgf@refx neg pgf@top neg translate%
+ } {%
+ % for viewing, however, we want to hide the box by moving it off-page; we do so by aligning
+ % the lower-right box corner with the upper-left page corner
+ pgf@right neg pgf@bot neg translate%
+ } ifelse
% translate origin (0,0) to the reference point
gsave pgf@refx pgf@refy translate
mark /_objdef {pgfsmaskxform@\the\pgf@objectcount}
diff --git a/graphics/pgf/base/tex/pgfsys-luatex.def b/graphics/pgf/base/tex/pgfsys-luatex.def
index 88adfd42d9..b87edd0e6a 100644
--- a/graphics/pgf/base/tex/pgfsys-luatex.def
+++ b/graphics/pgf/base/tex/pgfsys-luatex.def
@@ -84,7 +84,7 @@
{%
\pgf@parsefunc{#3}%
\pgfmathparse{#2}%
- \setbox\pgfutil@tempboxa=\hbox to\pgf@max{\vbox to\pgfmathresult pt{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to\pgf@max{\vbox to\pgfmathresult pt{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@process{\pgfpoint{\pgf@max}{#2}}%
\immediate\saveboxresource resources {%
/Shading << /Sh << /ShadingType 2
@@ -101,7 +101,7 @@
{%
\pgf@parsefunc{#3}%
\pgfmathparse{#2}%
- \setbox\pgfutil@tempboxa=\hbox to\pgfmathresult pt{\vbox to\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to\pgfmathresult pt{\vbox to\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@process{\pgfpoint{#2}{\pgf@max}}%
\immediate\saveboxresource resources {%
/Shading << /Sh << /ShadingType 2
@@ -117,7 +117,7 @@
\def\pgfsys@radialshading#1#2#3{%
{%
\pgf@parsefunc{#3}%
- \setbox\pgfutil@tempboxa=\hbox to2\pgf@max{\vbox to2\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to2\pgf@max{\vbox to2\pgf@max{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@process{#2}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
@@ -149,7 +149,7 @@
\pgf@yb=\pgf@y%
\advance\pgf@x by-\pgf@xa%
\advance\pgf@y by-\pgf@ya%
- \setbox\pgfutil@tempboxa=\hbox to\pgf@x{\vbox to\pgf@y{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
+ \setbox\pgfutil@tempboxa=\hbox dir TLT to\pgf@x{\vbox to\pgf@y{\vfil\pgfsys@invoke{/Sh sh}}\hfil}%
\pgf@sys@bp@correct{\pgf@xa}%
\pgf@sys@bp@correct{\pgf@ya}%
\pgf@sys@bp@correct{\pgf@xb}%
diff --git a/graphics/pgf/base/tex/pgfutil-latex.def b/graphics/pgf/base/tex/pgfutil-latex.def
index e2ed750368..a21f3b4d63 100644
--- a/graphics/pgf/base/tex/pgfutil-latex.def
+++ b/graphics/pgf/base/tex/pgfutil-latex.def
@@ -92,6 +92,9 @@
\AtBeginDocument{\AtEndDocument{\clearpage\the\pgfutil@everybye}}
+% \@ifl@t@r is defined \@onlypremable so we have to save it here
+\let\pgfutil@ifl@t@r=\@ifl@t@r
+
\def\pgfutil@insertatbegincurrentpagefrombox#1{%
\edef\pgf@temp{\the\wd\pgfutil@abb}%
\global\setbox\pgfutil@abb\hbox{%
@@ -105,8 +108,9 @@
%
% CF observed problems when placing patterns in XObjects without
% this skip (dvipdfmx driver for pgfplots shader=interp)
- \hskip-\pgf@temp\relax%
+ \hskip\dimexpr\pgfutil@ifl@t@r\fmtversion{2020/10/01}{2in-2\hoffset}{}-\pgf@temp\relax%
#1%
+ \pgfutil@ifl@t@r\fmtversion{2020/10/01}{\hskip\dimexpr-2in-2\hoffset\relax}{}%
}%
}
\newbox\pgfutil@abb%
@@ -119,7 +123,7 @@
}
\let\pgfutil@abe\pgfutil@empty%
-\@ifl@t@r\fmtversion{2020/10/01}{%
+\pgfutil@ifl@t@r\fmtversion{2020/10/01}{%
\AddToHook{shipout/background}{%
\put(\hoffset-1in,\voffset-1in){%
\pgfutil@abe\unhbox\pgfutil@abb\pgfutil@abc\global\let\pgfutil@abc\pgfutil@empty
diff --git a/macros/generic/schemata/Makefile b/macros/generic/schemata/Makefile
index cb5f9ae189..c72cdb6cbd 100644
--- a/macros/generic/schemata/Makefile
+++ b/macros/generic/schemata/Makefile
@@ -1,14 +1,49 @@
+#Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+#-------------------------------------------------------
+#
+#This file may be distributed and/or modified under the
+#conditions of the LaTeX Project Public License, either version 1.3
+#of this license or (at your option) any later version.
+#The latest version of this license is in:
+#
+# http://www.latex-project.org/lppl.txt
+#
+#and version 1.3 or later is part of all distributions of LaTeX
+#version 2005/12/01 or later.
+#
+# Name of package
NAME = schemata
-ENGINE = pdflatex
+# LaTeX engine to use for package; below is the default.
+# One can choose from latex, pdflatex, xelatex, lualatex, dvilualatex.
+ENGINE ?= pdflatex
+# Engine to use for test; below is the default.
+TESTENGINE ?= pdftex
+# Shell to use; default is bash
SHELL = bash
+# Value of current working directory
PWD = $(shell pwd)
+# Package version info
VERS = $(shell ltxfileinfo -v $(NAME).dtx|sed -e 's/^v//')
+# Local, system-wide tex tree
LOCAL = $(shell kpsewhich --var-value TEXMFLOCAL)
+# Tex tree in user's home directory
UTREE = $(shell kpsewhich --var-value TEXMFHOME)
+#
+# Default make target is release and its dependencies
release: $(NAME).pdf
+#
+# The testing target also compiles the examples file.
testing: $(NAME).pdf schematest.pdf
+
+#
+# This is the recipe for schematest.pdf. It will work also for dvi output.
schematest.pdf : schematest.tex
- pdftex schematest >/dev/null
+ $(TESTENGINE) --interaction=nonstopmode schematest > /dev/null
+ if [ -f schematest.dvi ]; then dvipdf schematest; fi
+ if [ -f schematest.out.ps ]; then rm schematest.out.ps; fi
+
+#
+# This is the recipe for the package docs. It will work also for dvi output.
$(NAME).pdf : $(NAME).dtx
$(ENGINE) -shell-escape -recorder -interaction=batchmode $(NAME).dtx >/dev/null
$(ENGINE) --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
@@ -16,13 +51,24 @@ $(NAME).pdf : $(NAME).dtx
if [ -f $(NAME).idx ]; then makeindex -q -s gind.ist -o $(NAME).ind $(NAME).idx; fi
$(ENGINE) --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
$(ENGINE) --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
- test -e README.txt && mv README.txt README || exit 0
+ if [ -f $(NAME).dvi ]; then dvipdf $(NAME); fi
+#
+# Using this recipe deletes the auxiliary and log files
clean:
- rm -f $(NAME).{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc} README.txt
+ rm -f $(NAME).{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc}
rm -f schematest.{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc}
+#
+# Using this recipe cleans also all generated files
distclean: clean
- rm -f $(NAME).{dvi,pdf,sty,synctex.gz} README
- rm -f schematest.{dvi,pdf,sty,synctex.gz}
+ rm -f $(NAME).{dvi,pdf,sty,synctex.gz,"synctex(busy)"} README.md
+ rm -f schematest.{dvi,pdf,synctex.gz,"synctex(busy)",tex}
+#
+# Using this recipe deletes files for testong
+testclean:
+ rm -f schematest.{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc}
+ rm -f schematest.{dvi,pdf,synctex.gz,"synctex(busy)"}
+#
+# This recipe installs the package release into the user's tree
inst: release
mkdir -p $(UTREE)/{tex,source,doc}/generic/$(NAME)
cp $(NAME).dtx $(UTREE)/source/generic/$(NAME)
@@ -31,19 +77,22 @@ inst: release
cp $(NAME).sty $(UTREE)/tex/generic/$(NAME)
cp $(NAME).pdf $(UTREE)/doc/generic/$(NAME)
cp schematest.tex $(UTREE)/doc/generic/$(NAME)
- cp README $(UTREE)/doc/generic/$(NAME)
+ cp README.md $(UTREE)/doc/generic/$(NAME)
+#
+# This recipe installs the package release into the system tree
install: release
- sudo mkdir -p $(LOCAL)/{tex,source,doc}/latex/$(NAME)
+ sudo mkdir -p $(LOCAL)/{tex,source,doc}/generic/$(NAME)
sudo cp $(NAME).dtx $(LOCAL)/source/generic/$(NAME)
sudo cp $(NAME).png $(LOCAL)/source/generic/$(NAME)
sudo cp Makefile $(LOCAL)/source/generic/$(NAME)
sudo cp $(NAME).sty $(LOCAL)/tex/generic/$(NAME)
sudo cp $(NAME).pdf $(LOCAL)/doc/generic/$(NAME)
sudo cp schematest.tex $(LOCAL)/doc/generic/$(NAME)
- sudo cp README $(LOCAL)/doc/generic/$(NAME)
+ sudo cp README.md $(LOCAL)/doc/generic/$(NAME)
+#
+# This recipe creates a zip file for upload to CTAN
zip: release
ln -sf . $(NAME)
- zip -Drq $(PWD)/$(NAME)-$(VERS).zip\
- $(NAME)/{README,schematest.tex,Makefile,$(NAME).{pdf,dtx,png}}
+ zip -Drq $(PWD)/$(NAME)-$(VERS).zip \
+$(NAME)/{README.md,schematest.tex,Makefile,$(NAME).{pdf,dtx,png}}
rm $(NAME)
-
diff --git a/macros/generic/schemata/README b/macros/generic/schemata/README
deleted file mode 100644
index 1a7653d9a3..0000000000
--- a/macros/generic/schemata/README
+++ /dev/null
@@ -1,117 +0,0 @@
-
---------:| ----------------------------------------------------------------
-schemata:| Generic package to aid construction of topical categories
- Author:| Charles P. Schaum
- E-mail:| charles dot schaum@comcast.net
- License:| Released under the LaTeX Project Public License v1.3c or later
- See:| http://www.latex-project.org/lppl.txt
-
-Short description:
-The schemata package helps the creation of topical outlines that illustrate the breakdown of concepts and categories in academic texts from the late medieval to early modern periods.
-
-Files Distribution
-
-README This file
-schemata.pdf Documentation
-schematest.tex Test file for Plain TeX or Eplain
-schemata.png Image file used for the manual
-
-Makefile Automates building with GNU make 3.81
-schemata.dtx Documented LaTeX file containing both code and documentation
-
-Installation
-
-Download the package from
-
-https://www.ctan.org/tex-archive/macros/generic/schemata
-
-Unpack schemata.zip in an appropriate directory.
-
-If you have a make utility compatible with GNU make, either in
-GNU/Linux, a BSD variant, OSX, or Cygwin in Windows you can type
-
-make inst
-
-to install the package into your $TEXMFHOME tree or
-
-make install
-
-to install the package into your $TEXMFLOCAL tree for all users.
-The latter requires sudo privileges.
-
-Other useful targets include:
-
-(release process)
-
-make release The default target, same as just ``make''.
-
-make clean Removes all intermediate files. Left are
-the files listed above plus schemata.sty.
-
-make distclean Leave only schemata.dtx, schematest.tex,
-schemata.png, and Makefile.
-
-make zip Generate a zip file ready for distribution.
-
-(testing process)
-
-make testing Release files, plus compiles schematest.tex.
-
-It is not necessary, however, to use GNU make. One can generate
-the package files manually. Since the files schemata.ins and README.txt
-are contained in the .dtx file itself, the first step is to generate
-the installer driver schemata.ins, plus the file README.txt, which will
-also trigger the extraction of schemata.sty and produce the first pass of
-the package documentation schemata.pdf:
-
-pdflatex -shell-escape -recorder -interaction=batchmode schemata.dtx
-
-Next one adds a table of contents and all cross-references, this also
-should finalize page numbers for glossary and index input files:
-
-pdflatex --recorder --interaction=nonstopmode schemata.dtx
-
-The next commands generate the glossary/index output files:
-
-makeindex -q -s gglo.ist -o schemata.gls schemata.glo
-makeindex -q -s gind.ist -o schemata.ind schemata.idx
-
-The final two commands integrate the glossary (changes) and index:
-
-pdflatex --recorder --interaction=nonstopmode schemata.dtx
-pdflatex --recorder --interaction=nonstopmode schemata.dtx
-
-Now one can either keep README.txt or rename it to README, e.g.:
-
-mv README.txt README
-
-Normally one creates the following directories for a user:
-
-$TEXMFHOME/source/generic/schemata dtx file, schemata.png
-$TEXMFHOME/doc/generic/schemata pdf file, README, schematest.tex,
-
-and creates the following directories for the local site:
-
-$TEXMFLOCAL/source/generic/schemata dtx file, schemata.png
-$TEXMFLOCAL/doc/generic/schemata pdf file, README, schematest.tex,
-
-The above environment variables often are /usr/local/texlive/texmf-local for
-$TEXMFLOCAL and ~/texmf for $TEXMFHOME.
-
-The make process normally renames the README.txt file created from the
-dtx file to just README by using mv (move / rename utility in the *nix
-userland). Windows distributions of TeX and LaTeX often keep the txt file
-because of using file extensions instead of ``magic numbers'' to identify
-files.
-
-Run mktexlsr with the appropriate level of permissions to complete the
-install.
-
-This packages works with LaTeX and Plain TeX.
-
-License
-
-This material is subject to the LaTeX Project Public License:
-http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
-
-Happy TeXing!
diff --git a/macros/generic/schemata/README.md b/macros/generic/schemata/README.md
new file mode 100644
index 0000000000..f77827815c
--- /dev/null
+++ b/macros/generic/schemata/README.md
@@ -0,0 +1,164 @@
+# Short Description
+
+Short description:
+The schemata package helps the creation of topical outlines that illustrate the breakdown of concepts and categories in academic texts from the late medieval to early modern periods.
+
+# Files
+
+|Filename |Description |
+|----------------|---------------------------------------|
+|`schemata.dtx` |commented style file; source file |
+|`Makefile` |For use with GNU make; with source file|
+|`schemata.ins` |installation driver (generated file) |
+|`schemata.pdf` |Documentation (generated file) |
+|`README.md` |This file (generated file) |
+|`schematest.tex`|Test file for Plain TeX or Eplain |
+|`schemata.png` |Image file used for the manual |
+
+# Obtaining the Package
+
+1. Packaged in your current TeX distrbution: See the appropriate documentation.
+
+2. Otherwise, download `schemata.zip` from [CTAN](www.ctan.org/tex-archive/macros/generic/schemata).
+
+3. Unpack `schemata.zip` in an appropriate directory.
+
+4. Change to the directory containing the `schemata` files.
+
+# File Generation
+
+## Automatic Installation
+
+This method requires GNU `make` on a POSIX-compliant environment, such as GNU/Linux, various BSD flavors, perhaps MacOS (e.g., with various porting systems), and even Cygwin on Windows.
+
+0. A quick install in one's home directory using some of the included files from the `zip` archive just requires the following steps:
+
+ tex schemata.dtx
+ make inst
+
+Otherwise we use the LaTeX installation on the host machine to build the package. When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
+
+1. Type `make distclean release` to generate the release files using `pdflatex`.
+
+3. To use another TeX engine, type one of the following:
+ make ENGINE=latex
+ make ENGINE=lualatex
+ make ENGINE=dvilualatex
+ make ENGINE=xelatex
+
+4. Type `make inst` to install the files in the user's personal TDS-compliant directory tree.
+
+5. Type `sudo make install` to install the files in the system-wide, local TDS-compliant directory tree.
+
+## Manual Compilation
+
+Otherwise, the following steps are used for manual installation. See the general information at the [TeX FAQ](https://www.texfaq.org/FAQ-installthings).
+
+0. To use some of the included files from the `zip` archive and only extract files from the `dtx` file, just do the following step and proceed to installation:
+
+ tex schemata.dtx
+
+1. To build the package on the host system, generate the installation files and a copy of the documentation without the table of contents and cross-references. We use `pdflatex` by default:
+
+ pdflatex --shell-escape --recorder --interaction=batchmode schemata.dtx
+
+2. Generate the TOC and cross-references for the documentation:
+
+ pdflatex --recorder --interaction=nonstopmode schemata.dtx
+
+3. Generate the index files using `makeindex`:
+
+ makeindex -q -s gglo.ist -o schemata.gls schemata.glo
+ makeindex -q -s gind.ist -o schemata.ind schemata.idx
+
+4. Integrate the glossary (changes) and index into the documentation. The second run updates the TOC:
+
+ pdflatex --recorder --interaction=nonstopmode schemata.dtx
+ pdflatex --recorder --interaction=nonstopmode schemata.dtx
+
+One can substitute, e.g., `latex`, `xelatex`, `lualatex`, and `dvilualatex` for `pdflatex`, but the documentation may look different in some cases.
+
+## File Installation
+
+Different TeX distributions have somewhat different ways to store TDS-compliant configuration and package data. See, for example, [MikTeX](https://miktex.org/kb/texmf-roots) and the [TeX FAQ](https://www.texfaq.org/FAQ-privinst). Two approaches below conform generally to a Unix-based system:
+
+## User's Home Directory
+
+`TEXMFHOME` is a variable that points to the root of a TDS-compliant directory tree available to a user. Use `kpsewhich --var-value TEXMFHOME` to obtain its value. Quite often it is equivalent to `$HOME/texmf`. The dollar sign in front of the variable denotes the value of the variable instead of its name. So if `$HOME` is `/home/bob`, then `$TEXMFHOME` would be `/home/bob/texmf`, and we can understand the following paths to be under that directory:
+
+|Path |Description |
+|------------------------------------|--------------------------------------------|
+|`$TEXMFHOME/source/generic/schemata`|`ins` and `dtx` files, Makefile, `png` file |
+|`$TEXMFHOME/tex/generic/schemata` |`sty` file |
+|`$TEXMFHOME/doc/generic/schemata` |`pdf` file, `README.md`, `schematest.tex` |
+
+On older TeX distributions, run `mktexlsr` on $TEXMFHOME to complete the install process.
+
+## System-Wide Directory
+
+`TEXMFLOCAL` is a variable that points to the root of a TDS-compliant directory tree available to all users on a local site, system-wide installation. Use `kpsewhich --var-value TEXMFLOCAL` to obtain its value. See the [TeX FAQ](https://www.texfaq.org/FAQ-what-TDS). We can understand the following paths to be under that directory:
+
+|Path |Description |
+|-------------------------------------|--------------------------------------------|
+|`$TEXMFLOCAL/source/generic/schemata`|`ins` and `dtx` files, Makefile, `png` file |
+|`$TEXMFLOCAL/tex/generic/schemata` |`sty` file |
+|`$TEXMFLOCAL/doc/generic/schemata` |`pdf` file, `README.md`, `schematest.tex` |
+
+Run `mktexlsr` with the appropriate permissions on `$TEXMFLOCAL` to complete the install process.
+
+# Testing
+
+## Compiling `schematest.tex`
+
+1. Either go to the directory used when unpacking the `zip` file or copy the file `schematest.tex` from the `doc/generic/schemata` branch of whatever TDS-compliant tree to a directory of your choice.
+
+2. If one has access to GNU `make`, use either `Makefile` in the directory where one unpacked the `zip` file or copy `Makefile` from either `src/generic/schemata` or `doc/generic/schemata` in whatever TDS-compliant tree it exists.
+
+When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
+
+3. To compile the test file using `make` and `pdftex`, simply type `make testing`.
+
+4. For multi-format testing using `make` in addition to that above, one can do the following:
+
+ make testing TESTENGINE=tex
+ make testing TESTENGINE=eplain
+ make testing TESTENGINE=lollipop
+ make testing TESTENGINE=luatex
+ make testing TESTENGINE=dviluatex
+ make testing TESTENGINE=xetex
+ make testing TESTENGINE=pdflatex
+ make testing TESTENGINE=latex
+ make testing TESTENGINE=lualatex
+ make testing TESTENGINE=dvilualatex
+ make testing TESTENGINE=xelatex
+
+5. If one does not have `make`, one can use any one of the following commands:
+
+ pdftex --interaction=nonstopmode schematest
+ tex --interaction=nonstopmode schematest
+ eplain --interaction=nonstopmode schematest
+ lollipop --interaction=nonstopmode schematest
+ luatex --interaction=nonstopmode schematest
+ dviluatex --interaction=nonstopmode schematest
+ xetex --interaction=nonstopmode schematest
+ pdflatex --interaction=nonstopmode schematest
+ lualatex --interaction=nonstopmode schematest
+ dvilualatex --interaction=nonstopmode schematest
+ xelatex --interaction=nonstopmode schematest
+
+The manual is also a test suite.
+
+# Copyright
+
+Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+-------------------------------------------------------
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in:
+
+ [http://www.latex-project.org/lppl.txt](http://www.latex-project.org/lppl.txt)
+
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
diff --git a/macros/generic/schemata/schemata.dtx b/macros/generic/schemata/schemata.dtx
index 82b39c2f38..133998ebf6 100644
--- a/macros/generic/schemata/schemata.dtx
+++ b/macros/generic/schemata/schemata.dtx
@@ -1,128 +1,188 @@
% \iffalse meta-comment
-% vim: textwidth=75
+%
+% Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+% -------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
%<*internal>
\iffalse
%</internal>
%<*readme>
-
---------:| ----------------------------------------------------------------
-schemata:| Generic package to aid construction of topical categories
- Author:| Charles P. Schaum
- E-mail:| charles dot schaum@comcast.net
- License:| Released under the LaTeX Project Public License v1.3c or later
- See:| http://www.latex-project.org/lppl.txt
+%<<readmevb
+# Short Description
Short description:
The schemata package helps the creation of topical outlines that illustrate the breakdown of concepts and categories in academic texts from the late medieval to early modern periods.
-Files Distribution
+# Files
+
+|Filename |Description |
+|----------------|---------------------------------------|
+|`schemata.dtx` |commented style file; source file |
+|`Makefile` |For use with GNU make; with source file|
+|`schemata.ins` |installation driver (generated file) |
+|`schemata.pdf` |Documentation (generated file) |
+|`README.md` |This file (generated file) |
+|`schematest.tex`|Test file for Plain TeX or Eplain |
+|`schemata.png` |Image file used for the manual |
+
+# Obtaining the Package
+
+1. Packaged in your current TeX distrbution: See the appropriate documentation.
+
+2. Otherwise, download `schemata.zip` from [CTAN](www.ctan.org/tex-archive/macros/generic/schemata).
+
+3. Unpack `schemata.zip` in an appropriate directory.
+
+4. Change to the directory containing the `schemata` files.
+
+# File Generation
+
+## Automatic Installation
+
+This method requires GNU `make` on a POSIX-compliant environment, such as GNU/Linux, various BSD flavors, perhaps MacOS (e.g., with various porting systems), and even Cygwin on Windows.
+
+0. A quick install in one's home directory using some of the included files from the `zip` archive just requires the following steps:
+
+ tex schemata.dtx
+ make inst
+
+Otherwise we use the LaTeX installation on the host machine to build the package. When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
+
+1. Type `make distclean release` to generate the release files using `pdflatex`.
+
+3. To use another TeX engine, type one of the following:
+ make ENGINE=latex
+ make ENGINE=lualatex
+ make ENGINE=dvilualatex
+ make ENGINE=xelatex
+
+4. Type `make inst` to install the files in the user's personal TDS-compliant directory tree.
+
+5. Type `sudo make install` to install the files in the system-wide, local TDS-compliant directory tree.
+
+## Manual Compilation
+
+Otherwise, the following steps are used for manual installation. See the general information at the [TeX FAQ](https://www.texfaq.org/FAQ-installthings).
-README This file
-schemata.pdf Documentation
-schematest.tex Test file for Plain TeX or Eplain
-schemata.png Image file used for the manual
+0. To use some of the included files from the `zip` archive and only extract files from the `dtx` file, just do the following step and proceed to installation:
-Makefile Automates building with GNU make 3.81
-schemata.dtx Documented LaTeX file containing both code and documentation
+ tex schemata.dtx
-Installation
+1. To build the package on the host system, generate the installation files and a copy of the documentation without the table of contents and cross-references. We use `pdflatex` by default:
-Download the package from
+ pdflatex --shell-escape --recorder --interaction=batchmode schemata.dtx
-https://www.ctan.org/tex-archive/macros/generic/schemata
+2. Generate the TOC and cross-references for the documentation:
-Unpack schemata.zip in an appropriate directory.
+ pdflatex --recorder --interaction=nonstopmode schemata.dtx
-If you have a make utility compatible with GNU make, either in
-GNU/Linux, a BSD variant, OSX, or Cygwin in Windows you can type
+3. Generate the index files using `makeindex`:
- make inst
+ makeindex -q -s gglo.ist -o schemata.gls schemata.glo
+ makeindex -q -s gind.ist -o schemata.ind schemata.idx
-to install the package into your $TEXMFHOME tree or
+4. Integrate the glossary (changes) and index into the documentation. The second run updates the TOC:
- make install
+ pdflatex --recorder --interaction=nonstopmode schemata.dtx
+ pdflatex --recorder --interaction=nonstopmode schemata.dtx
-to install the package into your $TEXMFLOCAL tree for all users.
-The latter requires sudo privileges.
+One can substitute, e.g., `latex`, `xelatex`, `lualatex`, and `dvilualatex` for `pdflatex`, but the documentation may look different in some cases.
-Other useful targets include:
+## File Installation
- (release process)
+Different TeX distributions have somewhat different ways to store TDS-compliant configuration and package data. See, for example, [MikTeX](https://miktex.org/kb/texmf-roots) and the [TeX FAQ](https://www.texfaq.org/FAQ-privinst). Two approaches below conform generally to a Unix-based system:
- make release The default target, same as just ``make''.
+## User's Home Directory
- make clean Removes all intermediate files. Left are
- the files listed above plus schemata.sty.
+`TEXMFHOME` is a variable that points to the root of a TDS-compliant directory tree available to a user. Use `kpsewhich --var-value TEXMFHOME` to obtain its value. Quite often it is equivalent to `$HOME/texmf`. The dollar sign in front of the variable denotes the value of the variable instead of its name. So if `$HOME` is `/home/bob`, then `$TEXMFHOME` would be `/home/bob/texmf`, and we can understand the following paths to be under that directory:
- make distclean Leave only schemata.dtx, schematest.tex,
- schemata.png, and Makefile.
+|Path |Description |
+|------------------------------------|--------------------------------------------|
+|`$TEXMFHOME/source/generic/schemata`|`ins` and `dtx` files, Makefile, `png` file |
+|`$TEXMFHOME/tex/generic/schemata` |`sty` file |
+|`$TEXMFHOME/doc/generic/schemata` |`pdf` file, `README.md`, `schematest.tex` |
- make zip Generate a zip file ready for distribution.
+On older TeX distributions, run `mktexlsr` on $TEXMFHOME to complete the install process.
- (testing process)
+## System-Wide Directory
- make testing Release files, plus compiles schematest.tex.
+`TEXMFLOCAL` is a variable that points to the root of a TDS-compliant directory tree available to all users on a local site, system-wide installation. Use `kpsewhich --var-value TEXMFLOCAL` to obtain its value. See the [TeX FAQ](https://www.texfaq.org/FAQ-what-TDS). We can understand the following paths to be under that directory:
-It is not necessary, however, to use GNU make. One can generate
-the package files manually. Since the files schemata.ins and README.txt
-are contained in the .dtx file itself, the first step is to generate
-the installer driver schemata.ins, plus the file README.txt, which will
-also trigger the extraction of schemata.sty and produce the first pass of
-the package documentation schemata.pdf:
+|Path |Description |
+|-------------------------------------|--------------------------------------------|
+|`$TEXMFLOCAL/source/generic/schemata`|`ins` and `dtx` files, Makefile, `png` file |
+|`$TEXMFLOCAL/tex/generic/schemata` |`sty` file |
+|`$TEXMFLOCAL/doc/generic/schemata` |`pdf` file, `README.md`, `schematest.tex` |
- pdflatex -shell-escape -recorder -interaction=batchmode schemata.dtx
+Run `mktexlsr` with the appropriate permissions on `$TEXMFLOCAL` to complete the install process.
-Next one adds a table of contents and all cross-references, this also
-should finalize page numbers for glossary and index input files:
+# Testing
- pdflatex --recorder --interaction=nonstopmode schemata.dtx
-
-The next commands generate the glossary/index output files:
-
- makeindex -q -s gglo.ist -o schemata.gls schemata.glo
- makeindex -q -s gind.ist -o schemata.ind schemata.idx
-
-The final two commands integrate the glossary (changes) and index:
-
- pdflatex --recorder --interaction=nonstopmode schemata.dtx
- pdflatex --recorder --interaction=nonstopmode schemata.dtx
+## Compiling `schematest.tex`
-Now one can either keep README.txt or rename it to README, e.g.:
+1. Either go to the directory used when unpacking the `zip` file or copy the file `schematest.tex` from the `doc/generic/schemata` branch of whatever TDS-compliant tree to a directory of your choice.
- mv README.txt README
+2. If one has access to GNU `make`, use either `Makefile` in the directory where one unpacked the `zip` file or copy `Makefile` from either `src/generic/schemata` or `doc/generic/schemata` in whatever TDS-compliant tree it exists.
-Normally one creates the following directories for a user:
+When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
- $TEXMFHOME/source/generic/schemata dtx file, schemata.png
- $TEXMFHOME/doc/generic/schemata pdf file, README, schematest.tex,
-
-
-and creates the following directories for the local site:
+3. To compile the test file using `make` and `pdftex`, simply type `make testing`.
- $TEXMFLOCAL/source/generic/schemata dtx file, schemata.png
- $TEXMFLOCAL/doc/generic/schemata pdf file, README, schematest.tex,
-
+4. For multi-format testing using `make` in addition to that above, one can do the following:
-The above environment variables often are /usr/local/texlive/texmf-local for
-$TEXMFLOCAL and ~/texmf for $TEXMFHOME.
+ make testing TESTENGINE=tex
+ make testing TESTENGINE=eplain
+ make testing TESTENGINE=lollipop
+ make testing TESTENGINE=luatex
+ make testing TESTENGINE=dviluatex
+ make testing TESTENGINE=xetex
+ make testing TESTENGINE=pdflatex
+ make testing TESTENGINE=latex
+ make testing TESTENGINE=lualatex
+ make testing TESTENGINE=dvilualatex
+ make testing TESTENGINE=xelatex
-The make process normally renames the README.txt file created from the
-dtx file to just README by using mv (move / rename utility in the *nix
-userland). Windows distributions of TeX and LaTeX often keep the txt file
-because of using file extensions instead of ``magic numbers'' to identify
-files.
+5. If one does not have `make`, one can use any one of the following commands:
-Run mktexlsr with the appropriate level of permissions to complete the
-install.
+ pdftex --interaction=nonstopmode schematest
+ tex --interaction=nonstopmode schematest
+ eplain --interaction=nonstopmode schematest
+ lollipop --interaction=nonstopmode schematest
+ luatex --interaction=nonstopmode schematest
+ dviluatex --interaction=nonstopmode schematest
+ xetex --interaction=nonstopmode schematest
+ pdflatex --interaction=nonstopmode schematest
+ lualatex --interaction=nonstopmode schematest
+ dvilualatex --interaction=nonstopmode schematest
+ xelatex --interaction=nonstopmode schematest
-This packages works with LaTeX and Plain TeX.
+The manual is also a test suite.
-License
+# Copyright
-This material is subject to the LaTeX Project Public License:
-http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+-------------------------------------------------------
-Happy TeXing!
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in:
+
+ [http://www.latex-project.org/lppl.txt](http://www.latex-project.org/lppl.txt)
+
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+%readmevb
%</readme>
%<*internal>
\fi
@@ -135,40 +195,26 @@ Happy TeXing!
\input docstrip.tex
\keepsilent
\askforoverwritefalse
-\preamble
---------:| ----------------------------------------------------------------
-schemata:| Generic package to aid construction of topical categories
- Author:| Charles P. Schaum
- E-mail:| charles dot schaum@comcast.net
- License:| Released under the LaTeX Project Public License v1.3c or later
- See:| http://www.latex-project.org/lppl.txt
-
-\endpreamble
-\postamble
+\preamble
-Copyright (C) 2020 by Charles P. Schaum <charles dot schaum@comcast.net>
+This is a generated file.
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License (LPPL), either
-version 1.3c of this license or (at your option) any later
-version. The latest version of this license is in the file:
+Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
-http://www.latex-project.org/lppl.txt
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3 of this license
+or (at your option) any later version. The latest version of this
+license is in:
-This work is "maintained" (as per LPPL maintenance status) by
-Charles P. Schaum.
+ http://www.latex-project.org/lppl.txt
-This work consists of the file schemata.dtx, schematest.tex,
- schemata.png, and a Makefile.
-Running "make" generates the derived files README, schemata.pdf,
- and schemata.sty.
-Running "make inst" installs the files in the user's TeX tree.
-Running "make install" installs the files in the local TeX tree.
+and version 1.3 or later is part of all distributions of LaTeX version
+2005/12/01 or later.
-\endpostamble
+\endpreamble
-\usedir{tex/generic/schemata}
+\usedir{tex/latex/nameauth}
\generate{
\file{\jobname.sty}{\from{\jobname.dtx}{package}}
}
@@ -179,10 +225,14 @@ Running "make install" installs the files in the local TeX tree.
\generate{
\file{\jobname.ins}{\from{\jobname.dtx}{install}}
}
-\nopreamble\nopostamble
\usedir{doc/generic/schemata}
+\nopostamble
+\generate{
+ \file{schematest.tex}{\from{\jobname.dtx}{examples}}
+}
+\nopreamble
\generate{
- \file{README.txt}{\from{\jobname.dtx}{readme}}
+ \file{README.md}{\from{\jobname.dtx}{readme}}
}
\ifx\fmtname\nameofplainTeX
\expandafter\endbatchfile
@@ -199,12 +249,13 @@ Running "make install" installs the files in the local TeX tree.
%<package>{\expandafter}\expandafter\ifx \csname schemataLaTeX\endcsname\relax
%<package> \def\schemataLaTeX{LaTeX2e}\fi
%<package>\ifx\fmtname\schemataLaTeX
-%<package>\expandafter\NeedsTeXFormat\expandafter{\schemataLaTeX}
+%<package>\expandafter\NeedsTeXFormat\expandafter{\schemataLaTeX}[2005/12/01]
%<package>\ProvidesPackage{schemata}
%<*package>
- [2020/03/14 v1.1 generic package to aid construction of topical categories]
+ [2020/11/23 1.2 generic package to aid construction of topical categories]
%</package>
%<package>\fi
+%
%<*driver>
\documentclass[11pt]{ltxdoc}
\usepackage[T1]{fontenc}
@@ -219,7 +270,7 @@ Running "make install" installs the files in the local TeX tree.
\usepackage{mflogo}
\usepackage[toc]{multitoc}
\usepackage{paracol}
-\usepackage{\jobname}
+\usepackage{\jobname}[2020/11/23]
\usepackage{verbatim}
\usepackage[numbered]{hypdoc}
@@ -281,19 +332,21 @@ Running "make install" installs the files in the local TeX tree.
% Right brace \} Tilde \~}
%
%
-% \changes{v0.5}{2013/02/14}{Initial version}
-% \changes{v0.6}{2013/03/10}{Added features}
-% \changes{v0.7}{2013/09/23}{Changed contact info}
-% \changes{v0.8}{2016/01/25}{Rewrote manual; moved to dtxgen}
-% \changes{v1.1}{2020/03/14}{Fix issue with dtx guards}
+% \changes{0.5}{2013/02/14}{Initial version}
+% \changes{0.6}{2013/03/10}{Added features}
+% \changes{0.7}{2013/09/23}{Changed contact info}
+% \changes{0.8}{2016/01/25}{Rewrote manual}
+% \changes{1.0}{2020/03/13}{Ensure better multi-format operation}
+% \changes{1.1}{2020/03/14}{Fix issue with \texttt{dtx} guards}
+% \changes{1.2}{2020/11/11}{Updates to \texttt{Readme.md}, \texttt{Makefile}, \texttt{schematest.tex}, combine \texttt{Readme.md} and \texttt{schematest.tex} files in \texttt{dtx}}
%
% \GetFileInfo{\jobname.dtx}
-% \DoNotIndex{\bgroup, \csname, \DeclareOption, \def, \dimen, \egroup, \else, \endcsname, \endinput, \ExecuteOptions, \expandafter, \fi, \futurelet, \gdef, \hbox, \hfil, \if, \ifcsname, \ifdim, \ifmmode, \ifx, \ignorespaces, \index, \let, \newbox, \newcommand, \newdimen, \newif, \next, \PackageWarning, \ProcessOptions, \relax, \RequirePackage, \setbox, \space, \testchar, \vbox, \vcenter, \vfil, \vskip}
+% \DoNotIndex{\bgroup, \csname, \DeclareOption, \def, \dimen, \egroup, \else, \endcsname, \endinput, \ExecuteOptions, \expandafter, \fi, \futurelet, \gdef, \hbox, \hfil, \if, \ifcsname, \ifdim, \ifmmode, \ifx, \ignorespaces, \index, \let, \newbox, \newcommand, \newdimen, \newif, \next, \PackageWarning, \ProcessOptions, \relax, \RequirePackage, \setbox, \space, \vbox, \vcenter, \vfil, \vskip}
%
%\title{\textsf{schemata} --- Generic package to aid construction of topical categories\thanks{This file
% describes version \fileversion, last revised \filedate.}
%}
-%\author{Charles P. Schaum\thanks{E-mail: charles dot schaum@comcast.net}}
+%\author{Charles P. Schaum\thanks{E-mail: charles[dot]schaum@comcast.net}}
%\date{Released \filedate}
%
%\maketitle
@@ -323,23 +376,23 @@ Running "make install" installs the files in the local TeX tree.
% {\Large\strut}For generic use: & \cmd{\input}\texttt{\textvisiblespace schemata.sty}
% \end{tabular}}
% \end{quote}\smallskip
-%
+%
% \DescribeMacro{\schemataLaTeX}
% Normally, \textsf{schemata} uses generic \TeX{} macros if the format is not \LaTeXe. When using a \LaTeX-like format with a different name than \texttt{LaTeX2e}, one theoretically could insert the following before |\usepackage{schemata}|:
% \begin{quote}
% |\edef\schemataLaTeX{\fmtname}|
% \end{quote}
-%
+%
% Yet\Warn{} this is usually unneeded. We want \cmd{\schemataLaTeX} to be undefined before \texttt{schemata.sty} is loaded to get the default value \texttt{LaTeX2e}. We recommend not using this macro unless you know what you are doing.\medskip
-%
+%
% \LaTeX\Info{options} users can choose one among four package options: \texttt{braces}, \texttt{brackets}, \texttt{parens}, and \texttt{groups}. These set the defaults for the delimiters. If no options are chosen, the default is \texttt{braces}.
-%
+%
% \subsection{Macro Overview}
%
% One can describe schemata as a grouping of boxes that contain content, whose relationships are demonstrated by delimiters. We start with the boxes and their content. Subsequently, we deal with the delimiters, then later, the manner of grouping and arrangement, as well as tweaks and tutorials.
-%
+%
% \subsubsection[\texttt{\textbackslash schemabox}]{Containers: \texttt{\textbackslash schemabox}}
-%
+%
% \DescribeMacro{\schemabox}
% Schemata contain vertically-centered lists of material in inner vertical mode. When in a \cmd{\schema} or a \cmd{\Schema} (see below), a \cmd{\schemabox} stacks one or more lines of \cmd{\hbox}-enclosed text in a \cmd{\vbox.} It redefines the macro |\\| to close the current \cmd{\hbox} and begin a new one, with some options that can be modified (Section~\ref{sec:tweakschema}).
% \begin{quote}
@@ -353,7 +406,7 @@ Running "make install" installs the files in the local TeX tree.
% \newpage
%
% \subsubsection{Delimiters}
-%
+%
% \DescribeMacro{\DoBraces}
% Both generic \TeX{} and \LaTeX{} users can use these four macros to set or change the type of delimiters.
% \DescribeMacro{\DoBrackets}
@@ -363,19 +416,19 @@ Running "make install" installs the files in the local TeX tree.
% \DescribeMacro{\DoGroups}
% except they also change the delimiters when used before \cmd{\schema} and \cmd{\Schema}. They remain in force until the end of a scope:\label{page:SBNudge}
% \begin{displaymath}
-% \DoBrackets\bgroup\renewcommand\SBNudgeFactor{\kern0.08em}
+% \DoBraces
+% \Schema{0ex}{2.3ex}{\schemabox{a}}{\Schema[close]{0ex}{2.4ex}{\schemabox{b\\c}}{\schemabox{d}}}
+% \qquad\DoBrackets\bgroup\renewcommand\SBNudgeFactor{\kern0.08em}
% \Schema{0ex}{2.3ex}{\schemabox{a}}{\Schema[close]{0ex}{2.4ex}{\NudgeSB\schemabox{b\\c}}{\schemabox{d}}}\egroup
% \qquad\DoParens
% \Schema{0ex}{2.3ex}{\schemabox{a}}{\Schema[close]{0ex}{2.4ex}{\schemabox{b\\c}}{\schemabox{d}}}
% \qquad\DoGroups
% \Schema{0ex}{2.3ex}{\schemabox{a}}{\Schema[close]{0ex}{2.4ex}{\schemabox{b\\c}}{\schemabox{d}}}
-% \qquad\DoBraces
-% \Schema{0ex}{2.3ex}{\schemabox{a}}{\Schema[close]{0ex}{2.4ex}{\schemabox{b\\c}}{\schemabox{d}}}
% \end{displaymath}
%
% Additionally, these macros can change the delimiter style within a schema. See Section~\ref{sec:multiple}, as well as the example below:\bigskip
-%
-% \leavevmode\quad\begin{minipage}[c]{0.6\textwidth}\small
+%
+% \leavevmode\quad\begin{minipage}{0.6\textwidth}\small
% \StartNum
% \begin{verbatim}
%\DoBrackets
@@ -386,7 +439,7 @@ Running "make install" installs the files in the local TeX tree.
% {\schemabox{d}}
%}\end{verbatim}
% \end{minipage}
-% \begin{minipage}[c]{0.25\textwidth}
+% \begin{minipage}{0.25\textwidth}
% \begin{displaymath}
% \DoBrackets\Schema{0ex}{2.4ex}
% {\schemabox{a}}
@@ -395,10 +448,10 @@ Running "make install" installs the files in the local TeX tree.
% {\schemabox{d}}}
% \end{displaymath}\medskip
% \end{minipage}\bigskip
-%
+%
% One can add new types by using eligible math-mode delimiters, e.g.:\bigskip
-%
-% \leavevmode\quad\begin{minipage}[c]{0.6\textwidth}\small
+%
+% \leavevmode\quad\begin{minipage}{0.6\textwidth}\small
% \StartNum
% \begin{verbatim}
%\makeatletter
@@ -414,7 +467,7 @@ Running "make install" installs the files in the local TeX tree.
% {\vskip0.6ex\schemabox{{\kern0.1em}f}}
%}\end{verbatim}
% \end{minipage}
-% \begin{minipage}[c]{0.25\textwidth}
+% \begin{minipage}{0.25\textwidth}
% \makeatletter
% \newcommand*{\DoVerts}%
% {\let\@schemata@LD\bracevert%
@@ -441,17 +494,17 @@ Running "make install" installs the files in the local TeX tree.
% \end{tabular}}
% \end{quote}
% The \meta{left side} and \meta{right side} are vertical material in order to allow a \cmd{\smallskip} or other vertical adjustment as needed.\medskip
-%
+%
% The \meta{type} of a schema is \texttt{open} (the delimiter opens to the right) by default:
-%
-% \leavevmode\quad\begin{minipage}[c]{0.6\textwidth}\small
+%
+% \leavevmode\quad\begin{minipage}{0.6\textwidth}\small
% \StartNum
% \begin{verbatim}
%\schema
% {\schemabox{a}}
% {\schemabox{b\\c}}\end{verbatim}
% \end{minipage}
-% \begin{minipage}[c]{0.25\textwidth}
+% \begin{minipage}{0.25\textwidth}
% \begin{displaymath}
% \schema
% {\schemabox{a}}
@@ -459,32 +512,31 @@ Running "make install" installs the files in the local TeX tree.
% \end{displaymath}\vspace{0pt}
% \end{minipage}
% \newpage
-%
+%
% Any value of \meta{type} other than the exact string \texttt{open} makes a ``closed'' schema (the delimiter opens to the left):
%
-% \leavevmode\quad\begin{minipage}[c]{0.6\textwidth}\small
+% \leavevmode\quad\begin{minipage}{0.6\textwidth}\small
% \StartNum
% \begin{verbatim}
%\schema[closed]
% {\NudgeSB\schemabox{b\\c}}
% {\schemabox{a}}\end{verbatim}
% \end{minipage}
-% \begin{minipage}[c]{0.25\textwidth}
+% \begin{minipage}{0.25\textwidth}
% \begin{displaymath}
% \schema[closed]
% {\NudgeSB\schemabox{b\\c}}
% {\schemabox{a}}
% \end{displaymath}\vspace{0pt}
% \end{minipage}
-%
+%
+% \noindent\leavevmode\newlength{\savepar}\setlength{\savepar}{\the\parindent}^^A
+% \begin{minipage}{0.65\textwidth}
% Using \cmd{\NudgeSB} above added a kern of \texttt{0.2em} at the right of the \cmd{\schemabox} to offset an automatic kern of \texttt{-0.2em} that normally pulls the brace slightly closer to the left-hand side when it opens to the right. We cover such tweaks in Section~\ref{sec:tweakschema}.
-%
-% In practice, \cmd{\schema} does not nest, so it is only useful for the right-hand ``leaves'' of a large schema. That makes formatting the ``leaves'' much faster. Thus, the \cmd{\schema} macro is used only in the framed sub-schemata below.\smallskip
%
-% \noindent\leavevmode\begin{minipage}[c]{0.6\textwidth}
-% \quad\space The automatic sizing of \cmd{\schema} changes, depending on the height, depth, and even context of the letters. This can look ugly if uniformity is desired. Use \cmd{\Schema} (next section) to enforce uniform schemata. Section~\ref{sec:tweakschema} gives more details on tweaking \cmd{\schema} as needed.
+% \hspace{\the\savepar}In practice, \cmd{\schema} does not nest, so it is only useful for the right-hand ``leaves'' of a large schema. That makes formatting the ``leaves'' much faster. Thus, the \cmd{\schema} macro is used only in the framed sub-schemata at right.
% \end{minipage}\hfill
-% \begin{minipage}[c]{0.235\textwidth}\small
+% \begin{minipage}{0.2\textwidth}\small
% \Schema{-1ex}{4.2ex}
% {
% \schemabox{a}
@@ -496,7 +548,9 @@ Running "make install" installs the files in the local TeX tree.
% }
% }
% }
-% \end{minipage}
+% \end{minipage}\smallskip
+%
+% \indent The automatic sizing of \cmd{\schema} changes, depending on the height, depth, and even context of the letters. This can look ugly if uniformity is desired. Use \cmd{\Schema} (next section) to enforce uniform schemata.
%
% \subsubsection[\texttt{\textbackslash Schema}]{Branches and Root: \texttt{\textbackslash Schema}}
%
@@ -533,7 +587,7 @@ Running "make install" installs the files in the local TeX tree.
% }
% {
% \Schema{0ex}{3.8ex}
-% {\schemabox{synonym}}
+% {\schemabox{\,synonym}}
% {
% \schema{\schemabox{part 3}}
% {\SwitchSB\schemabox{detail e\\detail f}}\smallskip
@@ -543,7 +597,7 @@ Running "make install" installs the files in the local TeX tree.
% }
% \end{displaymath}
% \newpage
-%
+%
% The source for that complex schema looks like:
% \begin{quote}\small
% \StartNum
@@ -561,7 +615,7 @@ Running "make install" installs the files in the local TeX tree.
%}
%{
% \Schema{0ex}{3.8ex}
-% {\schemabox{synonym}}
+% {\schemabox{\,synonym}}
% {
% \schema{\schemabox{part 3}}
% {\SwitchSB\schemabox{detail e\\detail f}}\smallskip
@@ -572,7 +626,7 @@ Running "make install" installs the files in the local TeX tree.
% \end{quote}
%
% Both \cmd{\schema} and \cmd{\Schema} will stack vertically if set sequentially as paragraphs in running text:
-%
+%
% \begin{paracol}{2}
% \begin{quote}\small
% \StartNum
@@ -587,7 +641,7 @@ Running "make install" installs the files in the local TeX tree.
% \end{quote}
% \switchcolumn
% \vfil
-%
+%
% \schema
% {\schemabox{a}}
% {\schemabox{b\\c}}
@@ -614,7 +668,7 @@ Running "make install" installs the files in the local TeX tree.
% \end{quote}
%
% Now we begin with the trivial example of one \cmd{\Box} on each side of the delimiter:\bigskip
-%
+%
% \begin{paracol}{2}
% \vspace{-0.1cm}
% \begin{quote}\small
@@ -626,9 +680,9 @@ Running "make install" installs the files in the local TeX tree.
% \schema{\Box}{\Box}\bigskip
% \end{paracol}
% \newpage
-%
+%
% This example is more complex, showing how each side stacks \cmd{\Box}es vertically:\bigskip
-%
+%
% \begin{paracol}{2}
% \vspace{0.45cm}
% \begin{quote}\small
@@ -639,9 +693,9 @@ Running "make install" installs the files in the local TeX tree.
% \switchcolumn
% \schema{\Box}{\Box\Box}\bigskip
% \end{paracol}
-%
+%
% Finally we use \cmd{\Schema} to get a schema that is both open and closed:\bigskip
-%
+%
% \begin{paracol}{2}
% \vspace{-0.4cm}
% \begin{quote}\small
@@ -707,7 +761,7 @@ Running "make install" installs the files in the local TeX tree.
% \UCschema
% \end{displaymath}\smallskip
% \newpage
-%
+%
% \DescribeMacro{\SwitchSB}
% The macro \cmd{\SwitchSB} is a per-use toggle. It causes a particular \cmd{\schemabox} to do the opposite of whatever \cmd{\LCschema} and \cmd{\UCschema} call for. It should be placed immediately before the \cmd{\schemabox} to be affected and its effect is reset when that particular \cmd{\schemabox} terminates.
%
@@ -715,7 +769,7 @@ Running "make install" installs the files in the local TeX tree.
%
% \DescribeMacro{\NudgeSB}
% The macro \cmd{\NudgeSB} is another ``per-use'' macro that causes a particular \cmd{\schemabox} to add a default \texttt{0.2em} kern at the end of every line of text, then is reset thereafter. It ``corrects a corrective.''
-%
+%
% \cmd{\NudgeSB} is meant to be used on the left-hand side of a closed \cmd{\schema} or \cmd{\Schema}. Both macros insert a kern of \texttt{-0.2em} to draw the cusp or flexion point of the delimiter closer to the left-hand side. This corrects the spacing of delimiters that open to the right. When a delimiter opens to the left, the kern may be needed if there is punctuation, or it may throw off the spacing.\medskip
%
% \DescribeMacro{\SBNudgeFactor}
@@ -725,7 +779,7 @@ Running "make install" installs the files in the local TeX tree.
% \end{quote}
%
% \subsection{Tutorial}
-%
+%
% Now that we have explained what all the macros are supposed to do, let's take a journey together in establishing and practicing a methodology for creating general forms of schemata.
%
% \subsubsection{Starting Off Basic}
@@ -738,10 +792,10 @@ Running "make install" installs the files in the local TeX tree.
%\schema{a}{b\\c}\end{verbatim}
% \end{quote}
% \switchcolumn
-%
+%
% \vfil\schema{a}{b\\c}\medskip
% \end{paracol}
-%
+%
% Oh dear, that went badly. Oh, wait! Schemata hold internal vertical lists. That weird \cmd{\schemabox} thing handles just that case:
% \begin{paracol}{2}
% \begin{quote}\small
@@ -752,7 +806,7 @@ Running "make install" installs the files in the local TeX tree.
% {\schemabox{b\\c}}\end{verbatim}
% \end{quote}
% \switchcolumn
-%
+%
% \vfil\schema
% {\schemabox{a}}
% {\schemabox{b\\c}}
@@ -768,15 +822,15 @@ Running "make install" installs the files in the local TeX tree.
% {\schemabox{b}}\end{verbatim}
% \end{quote}
% \switchcolumn
-%
+%
% \vfil\schema
% {\schemabox{a}}
% {\schemabox{b}}
% \end{paracol}
-%
+%
% When there is no ``big'' side of a schema, perhaps use inline math mode:
% \begin{quote}
-% |\(\hbox{a}\left\{\hbox{\strut b}\right.\)|\qquad \(\hbox{a}\left\{\hbox{\strut gib}\right.\)
+% |\(\hbox{a}\left\{\hbox{\strut gib}\right.\)|\qquad \(\hbox{a}\left\{\hbox{\strut gib}\right.\)
% \end{quote}
%
% \subsubsection{\textit{Loci} 101}
@@ -858,7 +912,7 @@ Running "make install" installs the files in the local TeX tree.
% }
% }
% \end{displaymath}
-%
+%
% This is not what we want; \cmd{\schema} works for the ``leaves'' on the right, but not for the ``root'' on the left. The brace adjusts to the entire right-hand side.
%
% Before we address the brace, we adjust the spacing, starting from the ``leaves'' at right, going to the ``root'' on the left. We add a \cmd{\smallskip} after a \cmd{\schema} to space out the ``leaves'':\footnote{Using \cmd{\vskip} in \PlainTeX{} starts a new paragraph, so \cmd{\smallskip} cannot be used within the horizontal mode \cmd{\schemabox} when using \PlainTeX. In some cases, putting vertical space in the first or last lines of a \cmd{\schemabox}, regardless of format, will affect centering.}
@@ -866,12 +920,12 @@ Running "make install" installs the files in the local TeX tree.
% \StartNum\addtocounter{VerbLine}{16}
% \begin{verbatim} }\smallskip\end{verbatim}
% \end{quote}
-%
+%
% We have two \cmd{\schema} ``leaves'' and one ``root,'' so we only change one \cmd{\schema} into a \cmd{\Schema}. We count the lines of text, estimate, then revise. Below we have 8--9 lines of text from ``\textsc{Essentiam}'' to ``ut in.'' We estimate \meta{size} at \texttt{8.5ex} and \meta{adjust} at \texttt{0ex}. The large brace is too low, so we \meta{adjust} to \texttt{-1ex}, raising the left side and the delimiter, while lowering the right. We then refine \meta{size} to \texttt{8.7ex}.\footnote{Changes in \TeX{} distributions can change font metrics and thus, the metrics of your schemata.}
% \begin{quote}
% \StartNum\begin{verbatim} \Schema{-1ex}{8.7ex}\end{verbatim}
% \end{quote}
-%
+%
% After those two line changes, we have the finished schema that now looks like it is supposed to appear:
% \begin{displaymath}
% \Schema{-1ex}{8.7ex}
@@ -912,9 +966,9 @@ Running "make install" installs the files in the local TeX tree.
%\end{displaymath}
%
% \subsubsection{Going Big}
-%
+%
% Thus far, we have dealt with many trivial examples. We have amassed a significant body of knowledge:
-%
+%
% \begin{enumerate}
% \item We usually use \cmd{\schemabox} for the contents of a schema.
% \item Schemata usually ``open'' from left to right, from ``root'' to ``leaves.''
@@ -925,26 +979,26 @@ Running "make install" installs the files in the local TeX tree.
% \item We may need to use the tweaking macros \cmd{\UCschema}, \cmd{\LCschema}, \cmd{\SwitchSB}, and \cmd{\NudgeSB}.
% \end{enumerate}
% \newpage
-%
+%
% Armed with this information, we sally forth to reproduce the following schema found on page 13 of Martin Chemnitz, \textit{Loci Theologici} (Frankfurt, 1653).\footnote{This image was created from a photograph taken by the author. It is the victim of a few cage transforms, despeckling, color selection and fill, color equalization, cleanup, scaling, and reduction to a two-color indexed palette.}\bigskip
-%
+%
% \noindent\includegraphics[width=\textwidth]{schemata.png}\bigskip
%
% \begin{itemize}
% \item As you see, the braces were composed of various type sorts, mainly smaller rules and assorted curly and bendy bits.
-%
+%
% \item Because this is Latin we will see roman, italic and small caps, but little of other typefaces. We do see \emph{s-medialis} and many old-style ligatures.
-%
+%
% \item In the reproduction we will use \emph{s-finalis} only, but we will retain some ligatures.
-%
+%
% \item We will improve spacing between elements.
-%
+%
% \item We will not aim for an exact reproduction of line breaks and such.
% \end{itemize}
% \newpage
-%
+%
% We begin by looking at the ``leaves,'' the rightmost bits of text enclosed by braces. We can use \cmd{\schema} in these cases. That results in the following:
-%
+%
% \begin{quote}
% \StartNum
% \begin{verbatim}
@@ -1005,7 +1059,7 @@ Running "make install" installs the files in the local TeX tree.
% Renovationem S. Sancti.}
%}\end{verbatim}
% \qquad\schemabox{Ante lapsum.}\footnote{We delete line 2 after \emph{Ante lapsum} in the large example on page~\pageref{page:firstbig} and thereafter.}
-%
+%
% \qquad\schema
% {\schemabox{Post lapsum:}}
% {
@@ -1082,11 +1136,11 @@ Running "make install" installs the files in the local TeX tree.
% Cognationis.\\
% Agnationis.}
% }
-%
+%
% \qquad\schemabox{Inimicum.}\footnote{We delete line 9 before \emph{Inimicum} in the large example on page~\pageref{page:firstbig} and thereafter.}
% \end{quote}
% \newpage
-%
+%
% \phantomsection
% \label{page:firstbig}
% Below we build all of the ``leaves'' into the larger schema using \cmd{\Schema}. The braces all have dummy values of \texttt{0ex} \meta{adjust} and \texttt{5ex} \meta{size}. Please do not be alarmed at how bad this looks right now! We will adjust the layout shortly. We just want to see the general look of things:\bigskip
@@ -1285,16 +1339,16 @@ Running "make install" installs the files in the local TeX tree.
% \schemabox{Trinus in personis.}
% }\smallskip\end{verbatim}
% \end{quote}
-%
+%
% Again, below, the skip comes at the close of a \cmd{\schema}.
% \begin{quote}\small\ContinueNum\addtocounter{VerbLine}{10}
% \begin{verbatim}
% \textsc{\quad Ad Vitam \AE{}ternam}.}
% }\medskip\end{verbatim}
% \end{quote}
-%
+%
% Below, the first skip helps to separate the lone \cmd{\schemabox} from the \cmd{\schema} beneath it. This illustrates how the internal vertical lists of schemata can contain heterogeneous material.
-%
+%
% A medium skip is placed between two \cmd{\schemabox}es, which slightly throws off the way the brace spans the boxes. A small skip is put at the end of the last \cmd{\schemabox} to correct that. Sometimes putting skips within a \cmd{\schema} can be tricky. Then a \cmd{\smallskip} is added again at the end of the right-hand side.
% \begin{quote}\small\ContinueNum\addtocounter{VerbLine}{8}
% \begin{verbatim}
@@ -1310,7 +1364,7 @@ Running "make install" installs the files in the local TeX tree.
% }\smallskip
% }\end{verbatim}
% \end{quote}
-%
+%
% The skips below generally follow the same patterns that we have seen above.
% \begin{quote}\small\ContinueNum\addtocounter{VerbLine}{15}
% \begin{verbatim}
@@ -1320,7 +1374,7 @@ Running "make install" installs the files in the local TeX tree.
% {\schemabox{seipsum ratione}}
% {\schemabox{Anim\ae{}\\ vel\\ Corporis}}\smallskip\end{verbatim}
% \end{quote}
-%
+%
% \begin{quote}\small\ContinueNum\addtocounter{VerbLine}{10}
% \begin{verbatim}
% }\smallskip
@@ -1418,9 +1472,9 @@ Running "make install" installs the files in the local TeX tree.
% }
%\end{displaymath}\egroup
% \newpage
-%
+%
% \newpage
-%
+%
% Next we estimate the lines of text and blank lines from the top of a \cmd{\Schema} brace to the bottom, e.g., from ``\textsc{Per se}:'' to ``quem vel''. We use those ``ex'' height figures for \meta{size}. The following lines illustrate our ``ball park'' figures:
%
% \begin{quote}\small\StartNum
@@ -1447,7 +1501,7 @@ Running "make install" installs the files in the local TeX tree.
% \begin{verbatim}
% \Schema{0ex}{5ex}\end{verbatim}
% \end{quote}
-%
+%
% \bgroup\small\begin{displaymath}
% \Schema{0ex}{23ex}
% {
@@ -1539,7 +1593,7 @@ Running "make install" installs the files in the local TeX tree.
%\end{displaymath}\egroup
%
% \newpage
-%
+%
% Next we tweak \meta{adjust} values by counting the lines (\texttt{ex}) in the direction the left side needs to move relative to the right, multiply the result by two, and make it negative for up and positive for down. Using an editor, e.g., \texttt{texworks} makes this fairly easy. We also adjust the final \meta{size} of the braces. Work from leaves to root:
% \begin{quote}\small\StartNum
% \begin{verbatim}
@@ -1659,7 +1713,7 @@ Running "make install" installs the files in the local TeX tree.
% \subsubsection[Big Groups]{Big Schema with Groups}
%
% The next example illustrates everything tha we have covered so far, plus \cmd{\DoGroups}, all inside a local scope:\bigskip
-%
+%
% \bgroup\footnotesize\begin{displaymath}
% \DoGroups%
%\Schema{-27ex}{21.5ex}
@@ -1761,9 +1815,9 @@ Running "make install" installs the files in the local TeX tree.
% \schemabox{Universalis} \smallskip \schemabox{Particularis}
% }
% \smallskip
-% \schemabox{Politi\ae{} ut Magistratuum}
+% \schemabox{Politi\ae, ut Magistratuum}
% \smallskip
-% \schemabox{\OE{}conomi\ae{} ut privatorum}
+% \schemabox{\OE{}conomi\ae, ut privatorum}
% }
% }\vskip2ex
% }
@@ -1796,7 +1850,7 @@ Running "make install" installs the files in the local TeX tree.
%
% \newpage
% We use a modified version of our \cmd{\Box} macro from above to show how each part nests within the other. Below we do not use \cmd{\NudgeSB} from Section~\ref{sec:tweakschema} because we are not using \cmd{\schemabox}; instead we directly add the kern: |\hbox{\Box{\,$left_2$}\kern0.2em}| within the closed schema. The result is:\medskip
-%
+%
% \begin{quote}
% \quad\Schema{0ex}{2ex}
% {\Box{\,$left_1$}}
@@ -1808,7 +1862,7 @@ Running "make install" installs the files in the local TeX tree.
% }%^^A
% }
% \end{quote}\medskip
-%
+%
% Here is another, more complex example:\medskip
%
% \begin{displaymath}
@@ -1871,7 +1925,7 @@ Running "make install" installs the files in the local TeX tree.
%\newpage
%
% This is more of a real-world example. As above, one must use \cmd{\Schema} to prevent the opening braces from being slightly larger than the closing braces.
-%
+%
% \bgroup\small\begin{displaymath}
% \Schema{-1.4ex}{10ex}
% {
@@ -1930,7 +1984,7 @@ Running "make install" installs the files in the local TeX tree.
% }
% }
% \end{displaymath}\egroup\smallskip
-%
+%
% This listing of the previous example illustrates how one handles closed schemata. The macro \cmd{\gk} uses \textsf{babel} to create Greek text.
%
% \begin{quote}\small\StartNum
@@ -1971,11 +2025,11 @@ Running "make install" installs the files in the local TeX tree.
%}\end{verbatim}
% \end{quote}
% \newpage
-%
+%
% \subsection{Final features}
% \label{sec:multiple}
% This final example illustrates how one can set the width of a \cmd{\schemabox}, and for what sort of use that might be. Below we invoke \cmd{\DoBrackets} after the start of the group containing the right-hand side of the first \cmd{\Schema}.
-%
+%
% \bgroup\small\begin{displaymath}
% \Schema{-0.2ex}{14.4ex}
% {\schemabox{\bfseries Curricula\\\bfseries Texts}}
@@ -2009,7 +2063,7 @@ Running "make install" installs the files in the local TeX tree.
% 2. Specialized Works}}
% }
%\end{displaymath}\egroup
-%
+%
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -2047,16 +2101,17 @@ Running "make install" installs the files in the local TeX tree.
%}\end{verbatim}
% \end{quote}
% \newpage
-%
+%
%\StopEventually{^^A
% \newgeometry{textwidth=160mm,textheight=237mm,right=25mm}
-% \newpage\PrintChanges
-% \newpage\PrintIndex
+% \PrintChanges\newpage\PrintIndex
%}
% \iffalse
%<*package>
% \fi
+%
% \section{Implementation}
+% \small
%
% Shorter macros are written in both \LaTeX{} and generic \TeX. Longer macros implement a platform-specific front end and a common back end. The macros default to \LaTeXe{} format. If the format test fails, then generic macros are selected.\medskip
%
@@ -2064,28 +2119,28 @@ Running "make install" installs the files in the local TeX tree.
% \leavevmode\llap{\scriptsize 1\ \ }\verb+%<package>{\expandafter}\expandafter\ifx \csname schemataLaTeX\endcsname\relax+
% \leavevmode\llap{\scriptsize 2\ \ }\verb+%<package> \def\schemataLaTeX{LaTeX2e}\fi+
% \leavevmode\llap{\scriptsize 3\ \ }\verb+%<package>\ifx\fmtname\schemataLaTeX+
-% \leavevmode\llap{\scriptsize 4\ \ }\verb+%<package>\expandafter\NeedsTeXFormat\expandafter{\schemataLaTeX}+
+% \leavevmode\llap{\scriptsize 4\ \ }\verb+%<package>\expandafter\NeedsTeXFormat\expandafter{\schemataLaTeX}[2005/12/01]+
% \leavevmode\llap{\scriptsize 5\ \ }\verb+%<package>\ProvidesPackage{schemata}+
% \verb+%<*package>+
-% \leavevmode\llap{\scriptsize 6\ \ }\verb+ [2020/03/14 v1.1 generic package to aid construction of topical categories]+
+% \leavevmode\llap{\scriptsize 6\ \ }\verb+ [2020/11/11 1.2 generic package to aid construction of topical categories]+
% \verb+%</package>+
% \leavevmode\llap{\scriptsize 7\ \ }\verb+%<package>\fi+
% \egroup
% \makeatletter\advance\c@CodelineNo by 7\makeatother
-%
+%
% \subsection{Internal Variables}
%
-% \changes{v1.0}{2020/03/13}{current format handling}
+% \changes{1.0}{2020/03/13}{current format handling}
% If we are not using \LaTeXe, we do the equivalent of \cmd{\makeatletter}.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX\else
\catcode`@=11\relax
\fi
% \end{macrocode}
%
-% \changes{v0.8}{2016/01/25}{Rename box/dimen registers}
-% \changes{v1.0}{2020/03/13}{Rename box/dimen registers}
+% \changes{0.8}{2016/01/25}{Rename box/dimen registers}
+% \changes{1.0}{2020/03/13}{Rename box/dimen registers}
%Two box registers and two dimen registers are used to analyze the left-hand and right-hand vertical sizes of the boxes in a schema. To make it less likely for these internal variables to be redefined, they are now more ``unique.''
%
% \begin{macrocode}
@@ -2095,25 +2150,25 @@ Running "make install" installs the files in the local TeX tree.
\newdimen\@schemata@lheight
% \end{macrocode}
%
-% \changes{v0.6}{2013/03/10}{Added UC/LC tweaks.}
-% \changes{v0.8}{2016/01/25}{Renamed internal macros}
+% \changes{0.6}{2013/03/10}{Added UC/LC tweaks.}
+% \changes{0.8}{2016/01/25}{Renamed internal macros}
% Two Boolean flags affect the height of a \cmd{\schemabox}, respectively setting and toggling that height for lowercase and uppercase content in order to add or remove space for boxes with only lowercase text.
-%
+%
% \begin{macrocode}
\newif\if@schemata@LCBox
\newif\if@schemata@SWBox
% \end{macrocode}
%
% This Boolean flag determines if a kern should be added to the end of each line in a \cmd{\schemabox} (helps with closed braces).
-%
+%
% \begin{macrocode}
\newif\if@schemata@NudgeBox
% \end{macrocode}
%
% \subsection{Package Options}
%
-% \changes{v0.6}{2013/03/10}{Added brackets and parens as well as braces}
-% \changes{v1.0}{2020/03/13}{Added group option}
+% \changes{0.6}{2013/03/10}{Added brackets and parens as well as braces}
+% \changes{1.0}{2020/03/13}{Added group option}
% We set braces to be the default set of delimiters. Apart from \LaTeXe{} we ignore the options. Three options are implemented, namely, \texttt{braces} (the default), \texttt{brackets}, and \texttt{parens}. Since the options are used infrequently, we naively process them in whatever order we get, each overwriting the last.
%
% \begin{macrocode}
@@ -2137,10 +2192,10 @@ Running "make install" installs the files in the local TeX tree.
% \subsection {Macros}
%
% \begin{macro}{\DoBraces}
-% \changes{v0.6}{2013/03/10}{Added macro}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.6}{2013/03/10}{Added macro}
+% \changes{1.0}{2020/03/13}{ensure short}
% Set the delimiters to be braces. This is local to a scope, including within a schema.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\DoBraces}%
@@ -2151,12 +2206,12 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\DoBrackets}
-% \changes{v0.6}{2013/03/10}{Added macro}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.6}{2013/03/10}{Added macro}
+% \changes{1.0}{2020/03/13}{ensure short}
% Set the delimiters to be brackets. This is local, as above.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\DoBrackets}%
@@ -2167,12 +2222,12 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\DoParens}
-% \changes{v0.6}{2013/03/10}{Added macro}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.6}{2013/03/10}{Added macro}
+% \changes{1.0}{2020/03/13}{ensure short}
% Set the delimiters to be parentheses. This is local, as above.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\DoParens}%
@@ -2183,11 +2238,11 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\DoGroups}
-% \changes{v1.0}{2020/03/13}{Added macro}
+% \changes{1.0}{2020/03/13}{Added macro}
% Set the delimiters to be parentheses. This is local, as above.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\DoGroups}%
@@ -2198,12 +2253,12 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\LCschema}
-% \changes{v0.6}{2013/03/10}{Added macro}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.6}{2013/03/10}{Added macro}
+% \changes{1.0}{2020/03/13}{ensure short}
% Prevent \cmd{\schemabox} from adding a \cmd{\strut} in the first line.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\LCschema}{\@schemata@LCBoxtrue}
@@ -2213,12 +2268,12 @@ Running "make install" installs the files in the local TeX tree.
% \end{macrocode}
% \end{macro}
% \newpage
-%
+%
% \begin{macro}{\UCschema}
-% \changes{v0.6}{2013/03/10}{Added macro}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.6}{2013/03/10}{Added macro}
+% \changes{1.0}{2020/03/13}{ensure short}
% Permit \cmd{\schemabox} to add a \cmd{\strut} in the first line (default).
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\UCschema}{\@schemata@LCBoxfalse}
@@ -2227,12 +2282,12 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\SwitchSB}
-% \changes{v0.6}{2013/03/10}{Added macro}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.6}{2013/03/10}{Added macro}
+% \changes{1.0}{2020/03/13}{ensure short}
% Flip the UC/LC settings for one \cmd{\schemabox}, which will reset this value on exit.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\SwitchSB}{\@schemata@SWBoxtrue}%
@@ -2241,12 +2296,12 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\NudgeSB}
-% \changes{v0.8}{2016/01/25}{Added macro}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.8}{2016/01/25}{Added macro}
+% \changes{1.0}{2020/03/13}{ensure short}
% Add a kern to the end of each line in one \cmd{\schemabox}. This will be reset on exit from that \cmd{\schemabox}.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\NudgeSB}{\@schemata@NudgeBoxtrue}
@@ -2255,11 +2310,11 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\SBNudgeFactor}
-% \changes{v1.0}{2020/03/13}{Added macro}
+% \changes{1.0}{2020/03/13}{Added macro}
% Define the \texttt{\textbackslash kern} to be added to the end of each line in one \cmd{\schemabox}. The default is \texttt{0.2em}, equal to the horizontal corrective.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand{\SBNudgeFactor}{\kern0.2em}
@@ -2268,20 +2323,21 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\schemabox}
-% \changes{v0.6}{2013/03/10}{Added lowercase tweaks}
-% \changes{v0.8}{2016/01/25}{Added nudge feature; fix errors when not in internal vertical mode}
-% \changes{v1.0}{2020/03/13}{create front- and back-end; ensure short}
+% \changes{0.6}{2013/03/10}{Added lowercase tweaks}
+% \changes{0.8}{2016/01/25}{Added nudge feature; fix errors when not in internal vertical mode}
+% \changes{1.0}{2020/03/13}{Create front- and back-end; ensure short}
+% \changes{1.2}{2020/11/11}{Fix namespace}
% If in internal vertical mode, restricted horizontal mode, or math mode, wrap a stack of \cmd{\hbox}es in a \cmd{\vbox}, then put that inside an \cmd{\hbox}. The first argument sets an optional width for those \cmd{\hbox}es. Normally insert a \cmd{\strut} in the first \cmd{\hbox}. The second argument contains the rows of horizontal material, where |\\| is redefined to end one \cmd{\hbox} and begin another. When in any other mode mode, just display the second argument as text.
%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\schemabox}[2][0pt]{\@schemata@schemabox[#1]{#2}}
\else
- \def\schemabox{\futurelet\testchar\@schemata@schemab@x}
+ \def\schemabox{\futurelet\@schemata@testchar\@schemata@schemab@x}
\def\@schemata@schemab@x{%
- \ifx[\testchar
+ \ifx[\@schemata@testchar
\let\next\@schemata@schemabox%
\else
\let\next\@schemata@@schemab@x%
@@ -2293,23 +2349,27 @@ Running "make install" installs the files in the local TeX tree.
\def\@schemata@schemabox[#1]#2{%
\ifinner
\if@schemata@LCBox
- \def\@Adj{}%
- \if@schemata@SWBox\def\@Adj{\strut}\fi
+ \def\@schemata@Adj{}%
+ \if@schemata@SWBox\def\@schemata@Adj{\strut}\fi
\else
- \def\@Adj{\strut}%
- \if@schemata@SWBox\def\@Adj{}\fi
+ \def\@schemata@Adj{\strut}%
+ \if@schemata@SWBox\def\@schemata@Adj{}\fi
\fi
\if@schemata@NudgeBox
- \let\@Nudge\SBNudgeFactor%
+ \let\@schemata@Nudge\SBNudgeFactor%
\else
- \def\@Nudge{}%
+ \def\@schemata@Nudge{}%
\fi
\ifdim#1<1pt
- \def\\{\@Nudge\egroup\hbox\bgroup\ignorespaces }%
- \vbox{\hbox\bgroup\@Adj\ignorespaces #2\@Nudge\egroup}%
+ \def\\{\@schemata@Nudge\egroup\hbox\bgroup\ignorespaces }%
+ \vbox{\hbox\bgroup%
+ \@schemata@Adj\ignorespaces #2\@schemata@Nudge%
+ \egroup}%
\else
\def\\{\hfil\egroup\hbox to #1\bgroup\ignorespaces }%
- \vbox{\hbox to #1\bgroup\@Adj\ignorespaces #2\hfil\egroup}%
+ \vbox{\hbox to #1\bgroup%
+ \@schemata@Adj\ignorespaces #2\hfil%
+ \egroup}%
\fi
\else
#2%
@@ -2319,23 +2379,24 @@ Running "make install" installs the files in the local TeX tree.
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\schema}
-% \changes{v1.0}{2020/03/13}{create front- and back-end; ensure long}
+% \changes{1.0}{2020/03/13}{create front- and back-end; ensure long}
+% \changes{1.2}{2020/11/11}{Fix namespace}
% This ``simple'' schema vertically centers two boxes of internal vertical material and puts a ``simple'' brace between the boxes based on the height of the box and the options passed to the schema.
-%
+%
% There is something of a ``magic'' value for adjusting the height used for the larger side of a \cmd{\schema}, namely \texttt{1.44265ex}. By using this adjustment, which is slightly larger than $\sqrt{2}$ times the ex-height of the font, the results look more aesthetically pleasing in terms of centering and size of the braces.
-%
+%
% By default, a schema has a box to the left, an open delimiter, and a box to the right. If any optional argument other than \texttt{open} is used, the schema prints a box to the left, a close brace, and a box to the right.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand{\schema}[3][open]{%
\@schemata@schema[#1]{#2}{#3}}
\else
- \long\def\schema{\futurelet\testchar\@schemata@schem@}
+ \long\def\schema{\futurelet\@schemata@testchar\@schemata@schem@}
\long\def\@schemata@schem@{%
- \ifx[\testchar
+ \ifx[\@schemata@testchar
\let\next\@schemata@schema%
\else
\let\next\@schemata@@schem@%
@@ -2346,8 +2407,8 @@ Running "make install" installs the files in the local TeX tree.
\@schemata@schema[open]{#1}{#2}}
\fi
\long\def\@schemata@schema[#1]#2#3{%
- \def\@ption{#1}\def\@pen{open}%
- \ifx\@ption\@pen
+ \def\@schemata@option{#1}\def\@schemata@open{open}%
+ \ifx\@schemata@option\@schemata@open
\setbox\@schemata@rhs=\vbox{#3}%
\@schemata@rheight=\ht\@schemata@rhs%
\advance\@schemata@rheight\dp\@schemata@rhs%
@@ -2367,19 +2428,20 @@ Running "make install" installs the files in the local TeX tree.
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\Schema}
-% \changes{v1.0}{2020/03/13}{create front- and back-end; ensure long}
+% \changes{1.0}{2020/03/13}{create front- and back-end; ensure long}
+% \changes{1.2}{2020/11/11}{Fix namespace}
% This is the general-purpose form of schemata. The arguments include whether it is an open or closed schema, the vertical adjustment of the left-hand side and delimiter over against the right-hand side, the size of the brace, and the contents of the left and right-hand sizes. It works about the same as above, but requires manual adjustment of the braces. Again we see the ``magic'' height adjustment value of \texttt{1.44265ex}.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand{\Schema}[5][open]{%
\@schemata@Schema[#1]{#2}{#3}{#4}{#5}}
\else
- \long\def\Schema{\futurelet\testchar\@schemata@Schem@}
+ \long\def\Schema{\futurelet\@schemata@testchar\@schemata@Schem@}
\long\def\@schemata@Schem@{%
- \ifx[\testchar
+ \ifx[\@schemata@testchar
\let\next\@schemata@Schema%
\else
\let\next\@schemata@@Schem@%
@@ -2390,10 +2452,10 @@ Running "make install" installs the files in the local TeX tree.
\@schemata@Schema[open]{#1}{#2}{#3}{#4}}
\fi
\long\def\@schemata@Schema[#1]#2#3#4#5{%
- \def\@ption{#1}%
- \def\@pen{open}%
+ \def\@schemata@option{#1}%
+ \def\@schemata@open{open}%
\dimen0=#2%
- \ifx\@ption\@pen
+ \ifx\@schemata@option\@schemata@open
\hbox{$\vcenter{\vskip1.44265\dimen0#4}%
\@schemata@biglbrace{#2}{#3}\vcenter{#5}$}%
\else
@@ -2404,12 +2466,12 @@ Running "make install" installs the files in the local TeX tree.
% \end{macrocode}
% \end{macro}
% \newpage
-%
+%
% \begin{macro}{\@schemata@lbrace}
-% \changes{v0.8}{2016/01/25}{Renamed}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.8}{2016/01/25}{Renamed}
+% \changes{1.0}{2020/03/13}{ensure short}
% Draw an on-center delimiter to the left of a simple box.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\@schemata@lbrace}[1]{%
@@ -2426,12 +2488,12 @@ Running "make install" installs the files in the local TeX tree.
\fi
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\@schemata@rbrace}
-% \changes{v0.8}{2016/01/25}{Renamed}
-% \changes{v1.0}{2020/03/13}{ensure short}
+% \changes{0.8}{2016/01/25}{Renamed}
+% \changes{1.0}{2020/03/13}{ensure short}
% Draw an on-center delimiter to the right of a simple box.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\@schemata@rbrace}[1]{%
@@ -2450,10 +2512,10 @@ Running "make install" installs the files in the local TeX tree.
% \end{macro}
%
% \begin{macro}{\@schemata@biglbrace}
-% \changes{v0.8}{2016/01/25}{Renamed; use absolute value of brace size}
-% \changes{v1.0}{2020/03/13}{ensure short; create front- and back-end}
+% \changes{0.8}{2016/01/25}{Renamed; use absolute value of brace size}
+% \changes{1.0}{2020/03/13}{ensure short; create front- and back-end}
% Draw a vertically-adjustable delimiter to the left of a complex assortment of boxes. Again we see the ``magic'' height adjustment value of \texttt{1.44265ex}, but both positive and negative.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\@schemata@biglbrace}[2]{%
@@ -2481,12 +2543,12 @@ Running "make install" installs the files in the local TeX tree.
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\@schemata@bigrbrace}
-% \changes{v0.8}{2016/01/25}{Renamed; Use absolute value of brace size}
-% \changes{v1.0}{2020/03/13}{ensure short; create front- and back-end}
+% \changes{0.8}{2016/01/25}{Renamed; Use absolute value of brace size}
+% \changes{1.0}{2020/03/13}{ensure short; create front- and back-end}
% Draw a vertically-adjustable delimiter to the right of a complex assortment of boxes. Again we see the ``magic'' height adjustment value of \texttt{1.44265ex}, but both positive and negative.
-%
+%
% \begin{macrocode}
\ifx\fmtname\schemataLaTeX
\newcommand*{\@schemata@bigrbrace}[2]{%
@@ -2524,6 +2586,516 @@ Running "make install" installs the files in the local TeX tree.
\catcode`@=12\relax
\fi
% \end{macrocode}
-%\Finale
-\endinput
+% \Finale
+% \endinput
%</package>
+%<*examples>
+%<<examplesvb
+\def\nameofplain{plain}
+\def\nameofeplain{eplain}
+\def\nameoflatex{LaTeX2e}
+\def\nameoflollipop{Lollipop}
+%
+% See README.md for compiling this document.
+%
+\ifx\fmtname\nameoflatex
+ \documentclass[10pt]{article}
+ \usepackage[T1]{fontenc}
+ \usepackage[polutonikogreek,american]{babel}
+ \newcommand{\gk}[1]{\foreignlanguage{polutonikogreek}{#1}}
+ \usepackage{schemata}
+ \begin{document}
+\else
+ \ifx\fmtname\nameoflollipop
+ \input schemata.sty
+ \font\scshape=cmcsc10
+ \def\textsc#1{\bgroup\scshape #1\egroup}
+ \def\gk#1{\bgroup\it #1\egroup}
+ \Start
+ \else
+ \input schemata.sty
+ \font\scshape=cmcsc10
+ \def\textsc#1{\bgroup\scshape #1\egroup}
+ \def\gk#1{\bgroup\it #1\egroup}
+ \fi
+\fi
+
+Format: \fmtname\par
+
+$$
+\Schema{-1ex}{8.7ex}
+{
+ \schemabox{Subjectum theo-\\
+ logi\ae{} est Notitia\\
+ Dei. Considerat\\
+ ergo, Dei, vel}
+}
+{
+\schema
+ {
+ \schemabox{\textsc{Essentiam},}
+ }
+ {
+ \schemabox{Unitate natur\ae{}.\\
+ Trinitate personarum.\\
+ Operibus ad intra.}
+ }\smallskip
+ \schema
+ {
+ \schemabox{\textsc{Voluntatem},\\
+ manifestatam in\\
+ operibus ad extra;\\
+ ut in}
+ }
+ {
+ \schemabox{Creatione.\\
+ Sustentatione natur\ae{} %
+ laps\ae{}.\\
+ Reparatione.\\
+ Conversione.\\
+ Justificatione.\\
+ Sanctificatione \&\\
+ Glorificatione ejusdem.}
+ }
+}
+$$
+
+$$
+\Schema{-25ex}{20.6ex}
+{
+ \schemabox{Subjectum \&\\
+ summa univer-\\
+ s\ae{} Scriptur\ae{},\\
+ est \textsc{Cognitio}\\
+ vel}
+}
+{
+ \Schema{-6.4ex}{8.5ex}
+ {
+ \schemabox{\textsc{Dei}, qua-\\lis sit, aut}
+ }
+ {
+ \schema
+ {\schemabox{\textsc{Per se}:\\ scilicet.}}
+ {
+ \schemabox{Unus in essentia.}\smallskip
+ \schemabox{Trinus in personis.}
+ }\smallskip
+ \schema
+ {\schemabox{Ad hominem\\ quem vel}}
+ {
+ \schemabox{Accusat \& terret, \textsc{Per Legem},\\
+ Consolatur \& erigit, \textsc{Per Evangelium}.\\
+ Salvat, \textsc{Per Christum}.\\
+ Renovat, \textsc{Per Spiritum Sanctum}.\\
+ Sanctificat, \textsc{Per Verbum} \& \textsc{Sacramenta}.\\
+ Castigat, tentat \& exercet, \textsc{Per Crucem}.\\
+ Glorificat \textsc{Per Resurrectionem Carnis}\\
+ \textsc{\quad Ad Vitam \AE{}ternam}.}
+ }\medskip
+ }
+ \Schema{-13.4ex}{17.4ex}
+ {
+ \schemabox{\textsc{Hominis},\\ qualis sit}
+ }
+ {
+ \Schema{-4.4ex}{5ex}
+ {\schemabox{\textsc{Per se}:}}
+ {
+ \schemabox{Ante lapsum.}\smallskip
+ \schema
+ {\schemabox{Post lapsum:}}
+ {
+ \schemabox{Ante Regenerationem \&\\
+ Renovationem S. Sancti.}\medskip
+ \schemabox{Post Regenerationem \&\\
+ Renovationem S. Sancti.}\smallskip
+ }\smallskip
+ }
+ \Schema{4.2ex}{14.4ex}
+ {\schemabox{Ad}}
+ {
+ \schema
+ {\schemabox{\textsc{Deum},}}
+ {
+ \schemabox{P\oe{}nitentia agens, agnitis peccatis \&\\
+ ira Dei cognita \textsc{Ex Lege}.\\
+ Erigens se \textsc{Voce Evangelii}.\\
+ Credens \textsc{In Christum Salvatorem}.\\
+ Non repugnans \textsc{Spiritui Sancto} impellenti.\\
+ Audiens \textsc{Verbum}: \& utens \textsc{Sacramentis}.\\
+ Patienter \& constanter sufferens \textsc{Crucem}.\\
+ Sperans \& expectans glorificationem\\
+ \textsc{\quad In Resurrectione Carnis}\\
+ \textsc{\quad Ad Vitam \AE{}ternam}.}
+ }\smallskip
+ \schema
+ {\schemabox{seipsum ratione}}
+ {\schemabox{Anim\ae{}\\ vel\\ Corporis}}\smallskip
+ \Schema{2ex}{5.1ex}
+ {\schemabox{Proximum,}}
+ {
+ \schema
+ {\schemabox{Amicum ra-\\ tione vel}}
+ {
+ \schemabox{Religionis.\\
+ Politic\ae{} \& \OE{}conomic\ae{}.\\
+ Cognationis.\\
+ Agnationis.}
+ }\smallskip
+ \schemabox{Inimicum.}
+ }
+ }
+ }
+}
+$$
+
+\eject
+
+\bgroup
+
+\ifx\fmtname\nameofeplain
+\verbatim \DoParens |endverbatim
+\fi
+\DoParens%
+\vfil
+$$
+\Schema{-26ex}{21.5ex}
+{
+ \schemabox{Sacr\ae{}\\ litter\ae{}\\ loquuntur,\\ de}
+}
+{
+ \schema
+ {
+ \schemabox{\textsc{Deo}}
+ }
+ {
+ \schemabox{Uno, in Trinitate.}\smallskip\schemabox{Trino, in unitate.}
+ }
+ \Schema{-16.5ex}{23.4ex}
+ {
+ \vskip30ex
+ \schemabox{\textsc{Dei}\\ \textsc{Operibus}}
+ }
+ {
+ \schema
+ {
+ \schemabox{\textsc{Intra},\\ qu\ae{} sunt\\ divisa, ut}
+ }
+ {
+ \schemabox{\textsc{Patris}, ab \ae{}terno gignere.\\ \textsc{Filii}, ab \ae{}terno genitum esse.\\ \textsc{Spiritus Sancti}, ab utroque\\ ab \ae{}terno procedete.}
+ }
+ \medskip
+ \Schema{-2ex}{21ex}
+ {
+ \schemabox{\textsc{Extra},\\ qu\ae{} sunt\\ indivisa;\\ tervata\\ tamen\\ cujusque\\ person\ae{}\\ divinitatis\\ sua pro-\\prietate}
+ }
+ {
+ \Schema{-0.8ex}{6.4ex}
+ {
+ \schemabox{Creatione\\ natur\ae{}}
+ }
+ {
+ \schema
+ {
+ \schemabox{Brute ut}
+ }
+ {
+ \schemabox{C\oe{}li} \smallskip \schemabox{Elementorum} \smallskip \schemabox{Mundi}
+ }
+ \smallskip
+ \schema
+ {
+ \schemabox{\ifx\fmtname\nameoflatex\gk{logik~hs}\else\gk{logik\=es}\fi, ut}
+ }
+ {
+ \schemabox{Angelorum.} \smallskip \schemabox{Hominum: Ad\ae{},\\ Ev\ae{} \& procreatorum\\ exipsis.}
+ }
+ }
+ \schema
+ {
+ \schemabox{Sustenatione\\ natur\ae{} laps\ae{},}
+ }
+ {
+ \schemabox{Angelorum malorum,} \smallskip \schemabox{Hominum: Ad\ae{}, Ev\ae{}\\ \& procreatorum exipsis.}
+ }
+ \Schema{2.6ex}{8.8ex}
+ {
+ \schemabox{Beneficiis\\ erga Ecc-\\ lesiam: ea\\ versantur\\ aut circa}
+ }
+ {
+ \Schema{2.2ex}{7ex}
+ {
+ \schemabox{Res, ut}
+ }
+ {
+ \schema
+ {
+ \schemabox{Verbum}
+ }
+ {
+ \schemabox{Legis} \smallskip \schemabox{Evangelii} \smallskip \schemabox{Sacramentorum}
+ }
+ \smallskip
+ \schema
+ {
+ \schemabox{Signa vel Veteris\\ vel Novi Testa-\\ mentum ut sunt:}
+ }
+ {
+ \schemabox{Ceremoni\ae{}} \smallskip \schemabox{Miracula}
+ }
+ }
+ \smallskip
+ \Schema{1ex}{5ex}
+ {
+ \schemabox{Personas}
+ }
+ {
+ \schema
+ {
+ \schemabox{Ecclesi\ae{}}
+ }
+ {
+ \schemabox{Universalis} \smallskip \schemabox{Particularis}
+ }
+ \smallskip
+ \schemabox{Politi\ae, ut Magistratuum}
+ \smallskip
+ \schemabox{\OE{}conomi\ae, ut privatorum}
+ }
+ }\vskip2ex
+ }
+ }
+}
+$$
+\vfil
+
+\eject
+
+\ifx\fmtname\nameofeplain
+\verbatim \DoGroups |endverbatim
+\fi
+\DoGroups
+
+\vfil
+$$
+\Schema{-26.5ex}{21ex}
+{
+ \schemabox{Sacr\ae{}\\ litter\ae{}\\ loquuntur,\\ de}
+}
+{
+ \schema
+ {
+ \schemabox{\textsc{Deo}}
+ }
+ {
+ \schemabox{Uno, in Trinitate.}\smallskip\schemabox{Trino, in unitate.}
+ }
+ \Schema{-17ex}{23.4ex}
+ {
+ \vskip30ex
+ \schemabox{\textsc{Dei}\\ \textsc{Operibus}}
+ }
+ {
+ \schema
+ {
+ \schemabox{\textsc{Intra},\\ qu\ae{} sunt\\ divisa, ut}
+ }
+ {
+ \schemabox{\textsc{Patris}, ab \ae{}terno gignere.\\ \textsc{Filii}, ab \ae{}terno genitum esse.\\ \textsc{Spiritus Sancti}, ab utroque\\ ab \ae{}terno procedete.\strut}
+ }
+ \medskip
+ \Schema{-2ex}{21ex}
+ {
+ \schemabox{\textsc{Extra},\\ qu\ae{} sunt\\ indivisa;\\ tervata\\ tamen\\ cujusque\\ person\ae{}\\ divinitatis\\ sua pro-\\prietate}
+ }
+ {
+ \Schema{-0.8ex}{6.4ex}
+ {
+ \schemabox{Creatione\\ natur\ae{}}
+ }
+ {
+ \schema
+ {
+ \schemabox{Brute ut}
+ }
+ {
+ \schemabox{C\oe{}li} \smallskip \schemabox{Elementorum} \smallskip \schemabox{Mundi}
+ }
+ \smallskip
+ \schema
+ {
+ \schemabox{\ifx\fmtname\nameoflatex\gk{logik~hs}\else\gk{logik\=es}\fi, ut}
+ }
+ {
+ \schemabox{Angelorum.} \smallskip \schemabox{Hominum: Ad\ae{},\\ Ev\ae{} \& procreatorum\\ exipsis.\strut}
+ }
+ }
+ \schema
+ {
+ \schemabox{Sustenatione\\ natur\ae{} laps\ae{},}
+ }
+ {
+ \schemabox{Angelorum malorum,} \smallskip \schemabox{Hominum: Ad\ae{}, Ev\ae{}\\ \& procreatorum exipsis.}
+ }
+ \Schema{2.6ex}{8.8ex}
+ {
+ \schemabox{Beneficiis\\ erga Ecc-\\ lesiam: ea\\ versantur\\ aut circa}
+ }
+ {
+ \Schema{2.2ex}{7ex}
+ {
+ \schemabox{Res, ut}
+ }
+ {
+ \schema
+ {
+ \schemabox{Verbum}
+ }
+ {
+ \schemabox{Legis} \smallskip \schemabox{Evangelii} \smallskip \schemabox{Sacramentorum}
+ }
+ \smallskip
+ \schema
+ {
+ \schemabox{Signa vel Veteris\\ vel Novi Testa-\\ mentum ut sunt:}
+ }
+ {
+ \schemabox{Ceremoni\ae{}} \smallskip \schemabox{Miracula}
+ }
+ }
+ \smallskip
+ \Schema{0.6ex}{5.5ex}
+ {
+ \schemabox{Personas}
+ }
+ {
+ \schema
+ {
+ \schemabox{Ecclesi\ae{}}
+ }
+ {
+ \schemabox{Universalis} \smallskip \schemabox{Particularis}
+ }
+ \smallskip
+ \schemabox{Politi\ae, ut Magistratuum}
+ \smallskip
+ \schemabox{\OE{}conomi\ae, ut privatorum}
+ }
+ }\vskip2ex
+ }
+ }
+}
+$$
+\vfil
+\egroup
+
+\eject
+
+$$
+\Schema{-1.4ex}{10ex}
+{
+ \schemabox{Qu\ae{} sit\\ \textsc{Dei}, vel}
+}
+{
+ \Schema{-1ex}{5ex}
+ {
+ \schemabox{\textsc{Essentia}, in}
+ }
+ {
+ \vskip1ex\schemabox{Unitate divina,}
+ \medskip
+ \Schema{0ex}{3.4ex}
+ {
+ \schemabox{Tribus perso-\\ nis divinitatis}
+ }
+ {
+ \Schema[close]{0ex}{3.4ex}
+ {
+ \NudgeSB\schemabox{Patre,\\ Filio,\\ Spiritui Sancto}
+ }
+ {
+ \schemabox{\ifx\fmtname\nameoflatex\gk{<omoous'iois}\else\gk{homoousiois}\fi\\ \& co\ae{}ternis}
+ }
+ }
+ }
+ \medskip
+ \Schema{-0.2ex}{6.4ex}
+ {
+ \schemabox{\textsc{Voluntas},\\ revelatur in\\ actione, sive}
+ }
+ {
+ \Schema{0ex}{3.4ex}
+ {
+ \schemabox{Universali}
+ }
+ {
+ \Schema[close]{0ex}{3.4ex}
+ {
+ \schemabox{Creationis,\\Sustenationis,\\ Propagationis,}
+ }
+ {
+ \schemabox{rerum creatarum.}
+ }
+ }
+ \medskip
+ \schema
+ {
+ \schemabox{Speciali, in beneficiis\\ erga Ecclesiam, eam}
+ }
+ {
+ \schemabox{Colligendo.\\ Justificando.\\ Conservando.\\
+ Glorificando.}
+ }
+ }
+}
+$$
+
+\vfill
+% Use here in Plain TeX.
+\newbox\mybox
+$$
+\Schema{-0.2ex}{14.4ex}
+{\schemabox{\bf Curricula\\\bf Texts}}
+{
+ \DoBrackets%
+ % Doable in LaTeX, not in Plain TeX, because \outer.
+ % \newbox\mybox%
+ \setbox\mybox=\hbox{\bf III. Philosophical }%
+ \dimen0=\wd\mybox%
+ \schema
+ {\schemabox[\dimen0]{\bf I. General\\Studies}}
+ {\schemabox{1. Collected Works\\2. Encyclopedias}}
+ \smallskip
+ \schema
+ {\schemabox[\dimen0]{\bf II. Literary\\Disciplines}}
+ {\schemabox{1. Philology\\
+ 2. Historical Introduction\\
+ 3. Literary Theory\\
+ 4. Application}}
+ \smallskip
+ \schema
+ {\schemabox[\dimen0]{\bf III. Philosophical\\Disciplines}}
+ {\schemabox{1. Source Texts\\
+ 2. History of Philosophy\\
+ 3. General Surveys\\
+ 4. Specific Studies}}
+ \smallskip
+ \schema
+ {\schemabox[\dimen0]{\bf IV. Historical\\Disciplines}}
+ {\schemabox{1. General Surveys\\
+ 2. Specialized Works}}
+}
+$$
+\ifx\fmtname\nameoflatex
+ \end{document}
+\else
+ \ifx\fmtname\nameoflollipop
+ \Stop
+ \else
+ \bye
+ \fi
+\fi
+%examplesvb
+%</examples>
+\endinput
diff --git a/macros/generic/schemata/schemata.pdf b/macros/generic/schemata/schemata.pdf
index 2551bc87b9..11e531a487 100644
--- a/macros/generic/schemata/schemata.pdf
+++ b/macros/generic/schemata/schemata.pdf
Binary files differ
diff --git a/macros/generic/schemata/schematest.tex b/macros/generic/schemata/schematest.tex
index 8a853799b2..dfe7180149 100644
--- a/macros/generic/schemata/schematest.tex
+++ b/macros/generic/schemata/schematest.tex
@@ -1,40 +1,34 @@
-%--------:| ----------------------------------------------------------------
-%schemata:| Generic package to aid construction of topical categories
-% Author:| Charles P. Schaum
-% E-mail:| charles dot schaum@comcast.net
-% License:| Released under the LaTeX Project Public License 1.3c or later
-% See:| http://www.latex-project.org/lppl.txt
-%
-% This is an example file used with the schemata package.
-% See README and schemata.pdf for copyright info.
-%---------------------------------------------------------------------------
+%%
+%% This is file `schematest.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% schemata.dtx (with options: `examples')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
\def\nameofplain{plain}
\def\nameofeplain{eplain}
\def\nameoflatex{LaTeX2e}
\def\nameoflollipop{Lollipop}
%
-% To use Plain TeX, do something like the following, substituting
-% tex, xetex, luatex, etc.:
-%
-% pdftex schematest
-%
-% To use Eplain, do something like the following:
-%
-% touch test.tex
-% pdftex test <<< "\\input eplain \\input schematest"
-%
-% To use lollipop, do something like the following:
-%
-% lollipop schematest
-%
-% To use LaTeX, do something like the following, substituting
-% latex, xelatex, lualatex, etc.:
-%
-% pdflatex schematest
+% See README.md for compiling this document.
%
\ifx\fmtname\nameoflatex
\documentclass[10pt]{article}
- %\usepackage[utf8]{inputenc} %Not needed for newer versions
\usepackage[T1]{fontenc}
\usepackage[polutonikogreek,american]{babel}
\newcommand{\gk}[1]{\foreignlanguage{polutonikogreek}{#1}}
@@ -54,6 +48,9 @@
\def\gk#1{\bgroup\it #1\egroup}
\fi
\fi
+
+Format: \fmtname\par
+
$$
\Schema{-1ex}{8.7ex}
{
@@ -291,9 +288,9 @@ $$
\schemabox{Universalis} \smallskip \schemabox{Particularis}
}
\smallskip
- \schemabox{Politi\ae{} ut Magistratuum}
+ \schemabox{Politi\ae, ut Magistratuum}
\smallskip
- \schemabox{\OE{}conomi\ae{} ut privatorum}
+ \schemabox{\OE{}conomi\ae, ut privatorum}
}
}\vskip2ex
}
@@ -410,9 +407,9 @@ $$
\schemabox{Universalis} \smallskip \schemabox{Particularis}
}
\smallskip
- \schemabox{Politi\ae{} ut Magistratuum}
+ \schemabox{Politi\ae, ut Magistratuum}
\smallskip
- \schemabox{\OE{}conomi\ae{} ut privatorum}
+ \schemabox{\OE{}conomi\ae, ut privatorum}
}
}\vskip2ex
}
diff --git a/macros/latex/contrib/arraycols/README.md b/macros/latex/contrib/arraycols/README.md
index 692ded0364..5c316f85f8 100644
--- a/macros/latex/contrib/arraycols/README.md
+++ b/macros/latex/contrib/arraycols/README.md
@@ -15,7 +15,7 @@ Macros for drawing vertical and horizontal rules of variable thickness are also
- run LaTeX on arraycols.ins, you obtain the file arraycols.sty,
- if then you run pdfLaTeX on arraycols.dtx you get the file arraycols.pdf which is also in the archive,
-- put the files arraycols.sty and arraytweak.pdf in your TeX Directory Structure.
+- put the files arraycols.sty and arraycols.pdf in your TeX Directory Structure.
## Author
diff --git a/macros/latex/contrib/arraycols/arraycols.dtx b/macros/latex/contrib/arraycols/arraycols.dtx
index 335ca53c11..9a62fa7f1c 100644
--- a/macros/latex/contrib/arraycols/arraycols.dtx
+++ b/macros/latex/contrib/arraycols/arraycols.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2019 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+% Copyright (C) 2019-2020 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%
% This file may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3 of this license
@@ -20,7 +20,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
\ProvidesPackage{arraycols}
- [2019/06/26 v1.0 .dtx arraycols file]
+ [2020/11/23 v1.1 .dtx arraycols file]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -50,7 +50,7 @@
%</driver>
% \fi
%
-% \CheckSum{614}
+% \CheckSum{46}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -71,14 +71,16 @@
% \changes{v0.1}{27/12/2011}{First personal version}
% \changes{v1.0}{2019/05/04}{Initial version, creating dtx and ins files}
% \changes{v1.0}{2019/06/17}{English translation by François Bastouil}
+% \changes{v1.1}{2020/11/23}{Incompatibility with tablestyles mentioned,
+% minor changes in documentation}
%
% \GetFileInfo{arraycols.sty}
%
% \title{The \textsf{arraycols} package\thanks{This document
-% corresponds to \textsf{arraycols}~\fileversion, initial version dated \filedate.
-% Thanks to François Bastouil for English translation.}}
+% corresponds to \textsf{arraycols}~\fileversion, dated \filedate.
+% Thanks to François Bastouil for help in English translation.}}
% \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}}
-% \date{June 26, 2019}
+% \date{November 23, 2020}
% \maketitle
%
% \section{Introduction}
@@ -132,12 +134,15 @@
% Note that if a column type has already been defined previously,
% it will be overwritten with a warning message.
%
-% Besides \textsf{array}, \textsf{arraycols} loads the \textsf{cellspace} package,
+% Besides \textsf{array}, \textsf{arraycols} loads the \textsf{cellspace} package~\cite{CELLSP},
% necessary for the \texttt{x}, \texttt{y}, \texttt{z} and \texttt{Z} types of columns and
% \textsf{tabularx}~\cite{TABX}, necessary for \texttt{T} and \texttt{Z},
% as well as \textsf{makecell}~\cite{MKCELL} for various alignments of multilined table cells.
+% The \textsf{tablestyles} package~\cite{TBLSTY} defines also L, C, R, Z column types
+% but in a different way, nevertheless this package is incompatible with \textsf{makecell}
+% and therefore with \textsf{arraycols} too.
%
-% This package, with a very short code, does not claim to develop new macros.
+% With a very short code, this package does not claim to develop new macros.
% Its main action is to combine and set features coming from other packages.
%
% \section{Usage}
@@ -145,13 +150,13 @@
%\medskip
% \DescribeEnv{L} \DescribeEnv{C} \DescribeEnv{R}
% Referring to an example from the \textsf{array} package documentation,
-% \textsf{arraycols} provides the |L|, |C|, |R| type of columns
+% \textsf{arraycols} provides the |L|, |C|, |R| columns types
% which reverse the mathematical mode.
-% Then we can use these column types to get centred, left-aligned or right-aligned
-% LR-mode in an \texttt{array} or math-mode in a \texttt{tabular} environment.
-% For instance, declaration *\begin{tabular}{|l|C|r|}* produces the second column
-% in a centred mathematical mode and declaration *\begin{array}{|L|c|c|}*
-% produces the first column in text mode, left aligned\footnote{The declarations
+% Then we can use them to get centered, left-aligned or right-aligned
+% LR-mode in an \texttt{array} environment or math-mode in a \texttt{tabular} environment.
+% For instance, the declaration *\begin{tabular}{|l|C|r|}* sets centered mathematical mode
+% in the second column and declaration *\begin{array}{|L|c|c|}*
+% sets text mode, left aligned in the first column\footnote{The declarations
% \texttt{L, C, R} do not work in a \texttt{tabularx} environment.
% Note that the \textsf{tabulary} package by David Carlisle~\cite{TABY}
% already defines the \texttt{L, C, R, J} column types for particular alignments
@@ -162,22 +167,24 @@
%
% \medskip
% \DescribeEnv{t\marg{width}}
-% We add the definition \texttt{t}\{\meta{width}\} (text in LR-mode)
-% producing a horizontal and a vertical centering in the column unlike the classics
-% \texttt{p}\marg{width} and \texttt{m}\marg{width} which produce left aligned text.
+% The new column type definition \texttt{t}\{\meta{width}\} (text in LR-mode)
+% produces horizontal and vertical centering in the column unlike the classics
+% \texttt{p}\marg{width} (in standard \LaTeX) and \texttt{m}\marg{width}
+% (from the \textsf{array} package) which produce left aligned text (visible when the column
+% is wider than the text inside).
%
% \medskip
% \DescribeEnv{x} \DescribeEnv{y}
-% To ensure a sufficient height for rows, for instance for formulas
-% in displaymath mode, we have defined the columntypes \texttt{x} (centred)
+% To ensure sufficient height for rows, for instance in displaymath mode
+% formulas, we provide the columntypes \texttt{x} (centered)
% and \texttt{y} (left aligned), based on the \textsf{cellspace} package
% by Josselin Noirel~\cite{CELLSP}.
-% They allows an automatic adjustment of the rows heights to avoid touching the
+% They allow automatic adjustment of row heights to avoid touching the
% horizontal rules when content is too high.
% Although \textsf{cellspace} is defined \emph{a priori} for \texttt{tabular} environments,
% the new \texttt{x} and \texttt{y} column types, defined by \textsf{arraycols},
-% produce a column in mathematical mode with the right adjustment,
-% either with a \texttt{tabular} or with an \texttt{array} environment.
+% produce a column in mathematical mode with good adjustment,
+% either in a \texttt{tabular} or in an \texttt{array} environment.
%
% Look at the following examples produced with
% *\begin{array}{|c|}* and with *\begin{array}{|x|}*.
@@ -213,20 +220,20 @@
% \og the \textsf{amsmath} package can be loaded beforehand with other
% packages (such as \texttt{empheq} or \texttt{mathtools}),
% were an incompatibility to arise from one’s loading it later\fg.}
-% for a good management of rows heights in matrix tables.
+% for a good management of row heights in matrix tables.
%
% \medskip
% Notice that another package, \textsf{booktabs}~\cite{BOOK}, also provides
-% an excellent adjustment for rows heights, but unfortunately, it doesn't handle the height
+% an excellent adjustment of row heights, but unfortunately, it doesn't handle height
% of vertical separators *|*.
% To get the same vertical adjustment as \textsf{booktabs},
-% thus we set the \textsf{cellspace} parameters:\\
+% we set the \textsf{cellspace} parameters as follows:\\
% |\setlength{\cellspacetoplimit}{3pt}|, \\
% |\setlength{\cellspacebottomlimit}{2pt}|.
%
% We should also mention the \textsf{tabls} package by Donald Arneseau~\cite{TABLS}
-% making a good adjustment of rows heights as well, but it's incompatible with the \textsf{array}
-% and \textsf{numprint} packages.
+% that makes a good adjustment of row heights as well, but it is incompatible
+% with the \textsf{array} and \textsf{numprint} packages.
%
% \medskip
% At last, it is also possible to make manual adjustments with the |\vstrut| command
@@ -236,8 +243,9 @@
%
% \medskip
% \DescribeEnv{z\marg{width}}
-% The column definition \texttt{z}\marg{width} enables, just as \texttt{t}\marg{width},
-% to set the column width, but also activates the math mode and adjusts the row height,
+% The column type \texttt{z}\marg{width} enables to set the column width,
+% as \texttt{t}\marg{width},
+% but also activates the math mode and adjusts the row height,
% as \texttt{x}.
%
% \medskip
@@ -249,8 +257,8 @@
% *\begin{tabularx}{8cm}{|c|X|X|}* adjusts the width of the \texttt{X} columns
% for a total witdh of the table equals to 8\,cm. As a complement, we propose
% the \texttt{T} declaration, doing the same thing but with horizontal centering
-% and \texttt{Z} which furthermore activates the mathematical mode and adjusts the height
-% of the line (as \texttt{x} or \texttt{z}). Here is an example with
+% and \texttt{Z} which furthermore activates the mathematical mode and adjusts
+% line heights (as \texttt{x} or \texttt{z}). Here is an example with
% *\begin{tabularx}{\linewidth}{|T|y|x|Z|T|}*.
% \begin{center}
% \begin{tabularx}{\linewidth}{|T|y|x|Z|T|}
@@ -264,7 +272,7 @@
% \end{tabularx}
% \end{center}
% To keep the perfect aligment of fraction bars in mathematical formulas,
-% cells are not vertically centred, however, to get a proper vertical positioning
+% cells are not vertically centered, however, to get a proper vertical positioning
% in the last cell, we have used the powerfull |\makecell| command of
% the \textsf{makecell} package by Olga Lapko~\cite{MKCELL}:
% |\makecell{a multiline \\ piece of text}|.
@@ -295,12 +303,14 @@
% |\renewcommand\theadfont{\footnotesize\sffamily}| \\
% (originally |\footnotesize| only, without |\sffamily|).
% At last, according to a recommendation of the \textsf{array} package~\cite{ARRAY},
-% 1\,pt has been added to the normal height of every row of the table, with the command
+% 1\,pt has been added to the normal height of every row of this table, with the command
% |\setlength{\extrarowheight}{1pt}|\footnote{As mentioned
% in the \textsf{array} package documentation:
% \og This is important for tables with horizontal lines because those
% lines normally touch the capital letters\fg.}.
%
+% \StopEventually{}
+%
% \section{Implementation}
% \begin{macrocode}
\RequirePackage{array}
@@ -326,7 +336,7 @@
\setlength{\cellspacebottomlimit}{2pt}
\newcolumntype{z}[1]{>{$}S{>{\centering\arraybackslash}p{#1}}<{$}}
% \end{macrocode}
-% For the \texttt{z} defintion of column, we use \texttt{p} and not \texttt{m}
+% For the \texttt{z} definition of column, we use \texttt{p} and not \texttt{m}
% (which automatically centers) in order to keep a correct alignment for mathematical
% expressions in the cells of a same row.
% \medskip
@@ -334,7 +344,7 @@
\newcolumntype{T}{>{\centering\arraybackslash}X}
\newcolumntype{Z}{>{$}ST<{$}}
% \end{macrocode}
-% The \texttt{T} columns are not automatically centred. It would be possible to do it
+% The \texttt{T} columns are not automatically centered. It would be possible to do it
% with the command |\renewcommand{\tabularxcolumn}[1]{m{#1}}|
% (with \texttt{m} instead of default value \texttt{p}),
% but unfortunately this has a global effect for all the declarations of columns based
@@ -352,7 +362,7 @@
\renewcommand\theadfont{\footnotesize\sffamily}
% \end{macrocode}
%
-% \begin{thebibliography}{10}
+% \begin{thebibliography}{11}
% \bibitem{ARRAY} \emph{A new implementation of LATEX’s \textsf{tabular} and \textsf{array}
% environment}, Frank Mittelbach, David Carlisle, CTAN, v2.4k revised 2018/12/30.
% \bibitem{CELLSP} \emph{The \textsf{cellspace} package}, Josselin Noirel, CTAN,
@@ -360,6 +370,8 @@
% \bibitem{TABX} \emph{The \textsf{tabularx} package}, David Carlisle, CTAN, v2.11.b 2016/02/03.
% \bibitem{MKCELL} \emph{The \textsf{makecell} package}, Olga Lapko, CTAN, v0.1e 2009/08/03.
% \bibitem{TABY} \emph{The \textsf{tabulary} package}, David Carlisle, CTAN, v1.10 2014/06/11.
+% \bibitem{TBLSTY} \emph{The \textsf{tablestyles} package}, Matthias Pospiech, CTAN,
+% v0.1 2014/06/27.
% \bibitem{BOOK} \emph{Publication quality tables in \LaTeX}, package \textsf{booktabs} by
% Simon Fear, CTAN, v1.618033 2016/04/29.
% \bibitem{TABLS} \emph{The \textsf{tabls} package}, Donald Arseneau, CTAN, v3.5 2010/02/26.
diff --git a/macros/latex/contrib/arraycols/arraycols.ins b/macros/latex/contrib/arraycols/arraycols.ins
index 51d5629aaa..5c6a796f93 100644
--- a/macros/latex/contrib/arraycols/arraycols.ins
+++ b/macros/latex/contrib/arraycols/arraycols.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2019 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+%% Copyright (C) 2019-2020 by Antoine Missier <antoine.missier@ac-toulouse.fr>
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
@@ -21,7 +21,7 @@
This is a generated file.
-Copyright (C) 2019 by Antoine Missier <antoine.missier@ac-toulouse.fr>
+Copyright (C) 2019-2020 by Antoine Missier <antoine.missier@ac-toulouse.fr>
This file may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3 of this license
diff --git a/macros/latex/contrib/arraycols/arraycols.pdf b/macros/latex/contrib/arraycols/arraycols.pdf
index 5d321e7dfd..e00a2109e3 100644
--- a/macros/latex/contrib/arraycols/arraycols.pdf
+++ b/macros/latex/contrib/arraycols/arraycols.pdf
Binary files differ
diff --git a/macros/latex/contrib/nameauth/Makefile b/macros/latex/contrib/nameauth/Makefile
index ad3181780f..d2a47efb83 100644
--- a/macros/latex/contrib/nameauth/Makefile
+++ b/macros/latex/contrib/nameauth/Makefile
@@ -1,17 +1,51 @@
+#Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+#-------------------------------------------------------
+#
+#This file may be distributed and/or modified under the
+#conditions of the LaTeX Project Public License, either version 1.3
+#of this license or (at your option) any later version.
+#The latest version of this license is in:
+#
+# http://www.latex-project.org/lppl.txt
+#
+#and version 1.3 or later is part of all distributions of LaTeX
+#version 2005/12/01 or later.
+#
+# Name of package
NAME = nameauth
+# LaTeX engine to use for package; below is the default.
+# One can choose from latex, pdflatex, xelatex, lualatex, dvilualatex.
ENGINE ?= pdflatex
-# or latex, xelatex, lualatex, dvilualatex
+# Shell to use; default is bash
SHELL = bash
+# Value of current working directory
PWD = $(shell pwd)
+# Package version info
VERS = $(shell ltxfileinfo -v $(NAME).dtx|sed -e 's/^v//')
+# Local, system-wide tex tree
LOCAL = $(shell kpsewhich --var-value TEXMFLOCAL)
+# Tex tree in user's home directory
UTREE = $(shell kpsewhich --var-value TEXMFHOME)
+#
+# Default make target is release and its dependencies
release: $(NAME).pdf
+#
+# The testing target also compiles the examples file.
testing: $(NAME).pdf examples.pdf
+
+#
+# This is the recipe for examples.pdf. It will work also for dvi output.
examples.pdf : examples.tex
- $(ENGINE) examples >/dev/null
+ $(ENGINE) --interaction=nonstopmode examples > /dev/null
+ $(ENGINE) --interaction=nonstopmode examples > /dev/null
if [ -f examples.idx ]; then makeindex -o examples.ind examples.idx; fi
- $(ENGINE) examples > /dev/null
+ if [ -f examples.rdx ]; then makeindex -o examples.rnd examples.rdx; fi
+ $(ENGINE) --interaction=nonstopmode examples > /dev/null
+ $(ENGINE) --interaction=nonstopmode examples > /dev/null
+ if [ -f examples.dvi ]; then dvipdf examples; fi
+ if [ -f examples.out.ps ]; then rm examples.out.ps; fi
+#
+# This is the recipe for the package docs. It will work also for dvi output.
$(NAME).pdf : $(NAME).dtx
$(ENGINE) -shell-escape -recorder -interaction=batchmode $(NAME).dtx >/dev/null
$(ENGINE) --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
@@ -19,13 +53,24 @@ $(NAME).pdf : $(NAME).dtx
if [ -f $(NAME).idx ]; then makeindex -q -s gind.ist -o $(NAME).ind $(NAME).idx; fi
$(ENGINE) --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
$(ENGINE) --recorder --interaction=nonstopmode $(NAME).dtx > /dev/null
- test -e README.txt && mv README.txt README || exit 0
+ if [ -f $(NAME).dvi ]; then dvipdf $(NAME); fi
+#
+# Using this recipe deletes the auxiliary and log files
clean:
- rm -f $(NAME).{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc} README.txt
- rm -f examples.{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc}
+ rm -f $(NAME).{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc}
+ rm -f examples.{rdx,rnd,aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc}
+#
+# Using this recipe cleans also all generated files
distclean: clean
- rm -f $(NAME).{dvi,pdf,sty,synctex.gz} README
- rm -f examples.{dvi,pdf,sty,synctex.gz}
+ rm -f $(NAME).{dvi,pdf,sty,synctex.gz,"synctex(busy)"} README.md
+ rm -f examples.{dvi,pdf,synctex.gz,"synctex(busy)",tex}
+#
+# Using this recipe deletes files for testong
+testclean:
+ rm -f examples.{aux,fls,glo,gls,hd,idx,ilg,ind,ins,log,out,toc}
+ rm -f examples.{dvi,pdf,synctex.gz,"synctex(busy)"}
+#
+# This recipe installs the package release into the user's tree
inst: release
mkdir -p $(UTREE)/{tex,source,doc}/latex/$(NAME)
cp $(NAME).dtx $(UTREE)/source/latex/$(NAME)
@@ -33,7 +78,9 @@ inst: release
cp $(NAME).sty $(UTREE)/tex/latex/$(NAME)
cp $(NAME).pdf $(UTREE)/doc/latex/$(NAME)
cp examples.tex $(UTREE)/doc/latex/$(NAME)
- cp README $(UTREE)/doc/latex/$(NAME)
+ cp README.md $(UTREE)/doc/latex/$(NAME)
+#
+# This recipe installs the package release into the system tree
install: release
sudo mkdir -p $(LOCAL)/{tex,source,doc}/latex/$(NAME)
sudo cp $(NAME).dtx $(LOCAL)/source/latex/$(NAME)
@@ -41,9 +88,10 @@ install: release
sudo cp $(NAME).sty $(LOCAL)/tex/latex/$(NAME)
sudo cp $(NAME).pdf $(LOCAL)/doc/latex/$(NAME)
sudo cp examples.tex $(LOCAL)/doc/latex/$(NAME)
- sudo cp README $(LOCAL)/doc/latex/$(NAME)
+ sudo cp README.md $(LOCAL)/doc/latex/$(NAME)
+#
+# This recipe creates a zip file for upload to CTAN
zip: release
ln -sf . $(NAME)
- zip -Drq $(PWD)/$(NAME)-$(VERS).zip $(NAME)/{README,examples.tex,Makefile,$(NAME).{pdf,dtx}}
+ zip -Drq $(PWD)/$(NAME)-$(VERS).zip $(NAME)/{README.md,examples.tex,Makefile,$(NAME).{pdf,dtx}}
rm $(NAME)
-
diff --git a/macros/latex/contrib/nameauth/README b/macros/latex/contrib/nameauth/README
deleted file mode 100644
index 8a95070117..0000000000
--- a/macros/latex/contrib/nameauth/README
+++ /dev/null
@@ -1,129 +0,0 @@
-|
---------:| ----------------------------------------------------------------
-nameauth:| Name authority mechanism for consistency in text and index
- Author:| Charles P. Schaum
- E-mail:| charles dot schaum@comcast.net
- License:| Released under the LaTeX Project Public License 1.3c or later
- See:| http://www.latex-project.org/lppl.txt
-
-Short description:
-
-The nameauth package automates the correct formatting and indexing of names
-for professional writing. This aids the use of a name authority and the
-editing process without needing to retype name references.
-
-Files Distribution
-
-README This file
-nameauth.pdf Documentation
-examples.tex Some longer example macros from the documentation
-
-Makefile Automates building with GNU make 3.81
-nameauth.dtx Documented LaTeX file containing both code and documentation
-
-Manual Installation
-
-Download the package from
-
-www.ctan.org/tex-archive/macros/latex/contrib/nameauth
-
-Unpack nameauth.zip in an appropriate directory.
-
-If you have a make utility compatible with GNU make, either in
-GNU/Linux, a BSD variant, OSX, or Cygwin in Windows you can type
-
-make inst
-
-to install the package into your $TEXMFHOME tree or
-
-make install
-
-to install the package into your $TEXMFLOCAL tree for all users.
-The latter requires sudo privileges.
-
-Other useful targets include:
-
-(release process)
-
-make release The default target, same as just ``make''.
-
-make clean Removes all intermediate files. Left are
-the files listed above plus nameauth.sty.
-
-make distclean Leave only nameauth.dtx, examples.tex,
-and Makefile.
-
-make zip Generate a zip file ready for distribution.
-
-(testing process)
-
-make testing Release files, plus compiles examples.tex.
-
-make release ENGINE=<command>
-Here, <command> can be pdflatex (default),
-xelatex, lualatex, dvilualatex, or latex.
-
-make testing ENGINE=<command> See above.
-
-It is not necessary, however, to use GNU make. One can generate
-the package files manually. Since the files nameauth.ins and README.txt
-are contained in the .dtx file itself, the first step is to generate
-the installer driver nameauth.ins, plus the file README.txt, which will
-also trigger the extraction of nameauth.sty and produce the first pass of
-the package documentation nameauth.pdf:
-
-pdflatex -shell-escape -recorder -interaction=batchmode nameauth.dtx
-
-Next one adds a table of contents and all cross-references, this also
-should finalize page numbers for glossary and index input files:
-
-pdflatex --recorder --interaction=nonstopmode nameauth.dtx
-
-The next commands generate the glossary/index output files:
-
-makeindex -q -s gglo.ist -o nameauth.gls nameauth.glo
-makeindex -q -s gind.ist -o nameauth.ind nameauth.idx
-
-The final two commands integrate the glossary (changes) and index:
-
-pdflatex --recorder --interaction=nonstopmode nameauth.dtx
-pdflatex --recorder --interaction=nonstopmode nameauth.dtx
-
-Now one can either keep README.txt or rename it to README, e.g.:
-
-mv README.txt README
-
-Normally one creates the following directories for a user:
-
-$TEXMFHOME/source/latex/nameauth dtx file
-$TEXMFHOME/tex/latex/nameauth sty file
-$TEXMFHOME/doc/latex/nameauth pdf file, README, examples.tex
-
-and creates the following directories for the local site:
-
-$TEXMFLOCAL/source/latex/nameauth dtx file
-$TEXMFLOCAL/tex/latex/nameauth sty file
-$TEXMFLOCAL/doc/latex/nameauth pdf file, README, examples.tex
-
-The above environment variables often are /usr/local/texlive/texmf-local
-and ~/texmf.
-
-The make process normally renames the README.txt file created from the
-dtx file to just README by using mv (move / rename utility in the *nix
-userland). Windows distributions of TeX and LaTeX often keep the txt file
-because of using file extensions instead of ``magic numbers'' to identify
-files.
-
-Run mktexlsr with the appropriate level of permissions to complete the
-install.
-
-Testing notes:
-
-See the nameauth manual.
-
-License
-
-This material is subject to the LaTeX Project Public License:
-http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
-
-Happy TeXing!
diff --git a/macros/latex/contrib/nameauth/README.md b/macros/latex/contrib/nameauth/README.md
new file mode 100644
index 0000000000..2ea1c5952b
--- /dev/null
+++ b/macros/latex/contrib/nameauth/README.md
@@ -0,0 +1,156 @@
+# Short Description
+
+The `nameauth` package automates the correct formatting and indexing of names
+for professional writing. This aids the use of a name authority and the
+editing process without needing to retype name references.
+
+# Files
+
+|Filename |Description |
+|--------------|---------------------------------------|
+|`nameauth.dtx`|commented style file; source file |
+|`Makefile` |For use with GNU make; with source file|
+|`nameauth.ins`|installation driver (generated file) |
+|`nameauth.pdf`|Documentation (generated file) |
+|`README.md` |This file (generated file) |
+|`examples.tex`|example macros (generated file) |
+
+# Obtaining the Package
+
+1. Packaged in your current TeX distrbution: See the appropriate documentation.
+
+2. Otherwise, download `nameauth.zip` from [CTAN](www.ctan.org/tex-archive/macros/latex/contrib/nameauth).
+
+3. Unpack `nameauth.zip` in an appropriate directory.
+
+4. Change to the directory containing the `nameauth` files.
+
+# File Generation
+
+## Automatic Installation
+
+This method requires GNU `make` on a POSIX-compliant environment, such as GNU/Linux, various BSD flavors, perhaps MacOS (e.g., with various porting systems), and even Cygwin on Windows.
+
+0. A quick install in one's home directory using some of the included files from the `zip` archive just requires the following steps:
+
+ tex nameauth.dtx
+ make inst
+
+Otherwise we use the LaTeX installation on the host machine to build the package. When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
+
+1. Type `make distclean release` to generate the release files using `pdflatex`.
+
+2. To use another TeX engine, type one of the following:
+ make ENGINE=latex
+ make ENGINE=lualatex
+ make ENGINE=dvilualatex
+ make ENGINE=xelatex
+
+3. Type `make inst` to install the files in the user's personal TDS-compliant directory tree.
+
+4. Type `sudo make install` to install the files in the system-wide, local TDS-compliant directory tree.
+
+## Manual Compilation
+
+Otherwise, the following steps are used for manual installation. See the general information at the [TeX FAQ](https://www.texfaq.org/FAQ-installthings).
+
+0. To use some of the included files from the `zip` archive and only extract files from the `dtx` file, just do the following step and proceed to installation:
+
+ tex nameauth.dtx
+
+1. To build the package on the host system, generate the installation files and a copy of the documentation without the table of contents and cross-references. We use `pdflatex` by default:
+
+ pdflatex --shell-escape --recorder --interaction=batchmode nameauth.dtx
+
+2. Generate the TOC and cross-references for the documentation:
+
+ pdflatex --recorder --interaction=nonstopmode nameauth.dtx
+
+3. Generate the index files using `makeindex`:
+
+ makeindex -q -s gglo.ist -o nameauth.gls nameauth.glo
+ makeindex -q -s gind.ist -o nameauth.ind nameauth.idx
+
+4. Integrate the glossary (changes) and index into the documentation. The second run updates the TOC:
+
+ pdflatex --recorder --interaction=nonstopmode nameauth.dtx
+ pdflatex --recorder --interaction=nonstopmode nameauth.dtx
+
+One can substitute, e.g., `latex`, `xelatex`, `lualatex`, and `dvilualatex` for `pdflatex`, but the documentation may look different in some cases.
+
+## File Installation
+
+Different TeX distributions have somewhat different ways to store TDS-compliant configuration and package data. See, for example, [MikTeX](https://miktex.org/kb/texmf-roots) and the [TeX FAQ](https://www.texfaq.org/FAQ-privinst). Two approaches below conform generally to a Unix-based system:
+
+## User's Home Directory
+
+`TEXMFHOME` is a variable that points to the root of a TDS-compliant directory tree available to a user. Use `kpsewhich --var-value TEXMFHOME` to obtain its value. Quite often it is equivalent to `$HOME/texmf`. The dollar sign in front of the variable denotes the value of the variable instead of its name. So if `$HOME` is `/home/bob`, then `$TEXMFHOME` would be `/home/bob/texmf`, and we can understand the following paths to be under that directory:
+
+|Path |Description |
+|----------------------------------|---------------------------------------|
+|`$TEXMFHOME/source/latex/nameauth`|`ins` and `dtx` files, Makefile |
+|`$TEXMFHOME/tex/latex/nameauth` |`sty` file |
+|`$TEXMFHOME/doc/latex/nameauth` |`pdf` file, `README.md`, `examples.tex`|
+
+On older TeX distributions, run `mktexlsr` on $TEXMFHOME to complete the install process.
+
+## System-Wide Directory
+
+`TEXMFLOCAL` is a variable that points to the root of a TDS-compliant directory tree available to all users on a local site, system-wide installation. Use `kpsewhich --var-value TEXMFLOCAL` to obtain its value. See the [TeX FAQ](https://www.texfaq.org/FAQ-what-TDS). We can understand the following paths to be under that directory:
+
+|Path |Description |
+|-----------------------------------|---------------------------------------|
+|`$TEXMFLOCAL/source/latex/nameauth`|`ins` and `dtx` files, Makefile |
+|`$TEXMFLOCAL/tex/latex/nameauth` |`sty` file |
+|`$TEXMFLOCAL/doc/latex/nameauth` |`pdf` file, `README.md`, `examples.tex`|
+
+Run `mktexlsr` with the appropriate permissions on `$TEXMFLOCAL` to complete the install process.
+
+# Testing
+
+## Compiling `examples.tex`
+
+1. Either go to the directory used when unpacking the `zip` file or copy the file `examples.tex` from the `doc/latex/nameauth` branch of whatever TDS-compliant tree to a directory of your choice.
+
+2. If one has access to GNU `make`, use either `Makefile` in the directory where one unpacked the `zip` file or copy `Makefile` from either `src/latex/nameauth` or `doc/latex/nameauth` in whatever TDS-compliant tree it exists.
+
+When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
+
+3. To compile the test file using `make` and `pdflatex`, simply type `make testing`.
+
+4. For multi-format testing using `make` in addition to that above, one can do the following:
+
+ make testing ENGINE=pdflatex
+ make testing ENGINE=latex
+ make testing ENGINE=lualatex
+ make testing ENGINE=dvilualatex
+ make testing ENGINE=xelatex
+
+5. If one does not have `make`, one can use the following commands, substituting, e.g., `latex`, `xelatex`, `lualatex`, and `dvilualatex` for `pdflatex`:
+
+ pdflatex --interaction=nonstopmode examples
+ pdflatex --interaction=nonstopmode examples
+ makeindex -o examples.ind examples.idx
+ makeindex -o examples.rnd examples.rdx
+ pdflatex --interaction=nonstopmode examples
+ pdflatex --interaction=nonstopmode examples
+
+The use of different extensions for the index results from using the `index` package to generate a persons index separate from a subject index.
+
+The manual is also a test suite.
+
+# Copyright
+
+Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+-------------------------------------------------------
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in:
+
+ [http://www.latex-project.org/lppl.txt](http://www.latex-project.org/lppl.txt)
+
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
diff --git a/macros/latex/contrib/nameauth/examples.tex b/macros/latex/contrib/nameauth/examples.tex
index 105403ef84..c9e41e6eab 100644
--- a/macros/latex/contrib/nameauth/examples.tex
+++ b/macros/latex/contrib/nameauth/examples.tex
@@ -1,20 +1,35 @@
-%--------:| ----------------------------------------------------------------
-%nameauth:| Name authority mechanism for consistency in text and index
-% Author:| Charles P. Schaum
-% E-mail:| charles dot schaum@comcast.net
-% License:| Released under the LaTeX Project Public License 1.3c or later
-% See:| http://www.latex-project.org/lppl.txt
+%%
+%% This is file `examples.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% nameauth.dtx (with options: `examples')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+
+\documentclass[oneside]{article}
%
-% This is an example file used with the nameauth package.
-% See README and nameauth.pdf for copyright info.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Backward compatibility for older distributions of LaTeX.
%
-\documentclass[11pt]{article}
+% Include the iftex package only if it exists. If the iftex
+% package is older than 2019, include additional packages
+% that aid using multiple LaTeX engines.
%
-% This part of the document preamble exists only for backward compatibility in older
-% distributions of LaTeX. It includes the iftex package only if it exists.
-% If the iftex package is older than 2019, it includes the older packages
-% that aid using multiple engines.
-
\IfFileExists{iftex.sty}{\usepackage{iftex}}{}
\unless\ifdefined\RequireTUTeX
\usepackage{ifxetex}
@@ -22,103 +37,177 @@
\usepackage{ifpdf}
\fi
%
-% This template can be used when creating both dvi and pdf output. We
-% do not actually use the tikz package in this example file. We set
-% the condition for using tikz with a Boolean flag.
-%
-% If compatibility with specific dvi viewers is not an issue, then
-% one might ignore the use of \ifDoTikZ altogether.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Compatibility for multiple LaTeX engines.
%
-\newif\ifDoTikZ
\ifxetex
\usepackage{fontspec}
\usepackage{polyglossia}
- \setdefaultlanguage{american} % Use own language
- \usepackage{tikz}
- \DoTikZtrue % Perhaps not needed
+ \setdefaultlanguage{american}
\else
\ifluatex
\ifpdf
\usepackage{fontspec}
\usepackage{polyglossia}
- \setdefaultlanguage{american} % Use own language
- \usepackage{tikz}
- \DoTikZtrue % Perhaps not needed
+ \setdefaultlanguage{american}
\else
\IfFileExists{utf8-2018.def}{}
{\usepackage[utf8]{inputenc}}
\usepackage[TS1,T1]{fontenc}
- \usepackage[american]{babel} % Use own language
+ \usepackage[american]{babel}
\usepackage{lmodern}
-%
-% There may be a need to include tikz using luatex in dvi mode;
-% that goes beyond the scope of the nameauth package.
-%
\fi
\else
\IfFileExists{utf8-2018.def}{}
{\usepackage[utf8]{inputenc}}
\usepackage[TS1,T1]{fontenc}
- \usepackage[american]{babel} % Use own language
+ \usepackage[american]{babel}
\usepackage{lmodern}
- \ifpdf % Perhaps not needed
- \usepackage{tikz}
- \DoTikZtrue % Perhaps not needed
- \fi
\fi
\fi
%
-% Below are the remainder of package inclusions.
-%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Remainder of package inclusions
+%
+\usepackage[textwidth=137mm,textheight=237mm,
+ right=25mm,marginparwidth=39mm,nohead]{geometry}
\usepackage{booktabs}
-\usepackage[textwidth=137mm,textheight=237mm,right=30mm,marginparwidth=30mm,nohead]{geometry}
-\usepackage{makeidx}
-\usepackage{nameauth}
+\usepackage{colortbl}
+\usepackage{index}
+\usepackage{nameauth}[2020/11/23]
\usepackage{verbatim}
+\usepackage{xcolor}
+\colorlet{grey}{black!7!white}
\usepackage[colorlinks=true]{hyperref}
%
-% We set up indexing, put margin paragraphs on the left, set up the counter for
-% line numbering in verbatim environments, and set up \ifNoTag for use in the
-% life dates text tagging example.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We set up indexing, put margin paragraphs on the left,
+% and set up the counter for line numbering in verbatim
+% environments.
%
\makeindex
+\newindex{per}{rdx}{rnd}{Index of Persons}
+\renewcommand\NameauthIndex{\index[per]}
\reversemarginpar
\newcounter{VerbLine}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Global definitions of conditionals for examples
+% For Scipio Africanus
+\newif\ifSkipGens
+\newif\ifNoGens
+\newif\ifSkipAgnomen
+\newif\ifNoAgnomen
+% For Thomas Jefferson
+\newif\ifGenitive
+\newif\ifDoGen
+% For George Washington/Mustafa Kemal
\newif\ifNoTag
+% For William Shakespeare
+\newif\ifSpecialFN
+\newif\ifSpecialSN
+\newif\ifRevertSN
+% For advanced hooks
+\newif\ifFbox
+\newif\ifFirstCap
+\newif\ifInHook
+\Fboxtrue
+\newif\ifCaps
%
-% We establish name shorthands. Note the heavy use of \noexpand in the macro arguments
-% below. This is intrinsic to the proper function of such arguments.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Global definitions of macros for examples
+% For Scipio Africanus
+\newcommand*\SCIPi{\ifNoGens
+ Publius\else Publius Cornelius\fi}
+\newcommand*\SCIPii{\ifNoAgnomen
+ Scipio\else Scipio Africanus\fi}
+\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
+\newcommand*\CSA{\ifNoGens\ifNoAgnomen
+ Scipio\else
+ Scipio Africanus\fi
+ \else\ifNoAgnomen
+ Cornelius Scipio\else
+ Cornelius Scipio Africanus\fi\fi}
+\ExcludeName[Publius]{\noexpand\CSA}
+% For Thomas Jefferson
+\newcommand\JEFF{\ifDoGen\textSC{Jefferson's}\else\textSC{Jefferson}\fi}
+% For William Shakespeare
+\newcommand*\WM{\ifSpecialFN Wm.\else William\fi}
+\newcommand*\SHK{\ifRevertSN \textSC{Shakespeare}\else
+ \ifSpecialSN \noexpand\AltCaps{t}he Bard\else
+ \textSC{Shakespeare}\fi\fi}
+\newcommand*\Revert{\RevertSNtrue}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We include a few macros from ltxdoc.cls and doc.sty.
+% These are copyright by the LaTeX dev team.
+%
+\makeatletter
+\DeclareRobustCommand\meta[1]{%
+ \ensuremath\langle
+ \ifmmode \expandafter \nfss@text \fi
+ {%
+ \meta@font@select
+ \edef\meta@hyphen@restore
+ {\hyphenchar\the\font\the\hyphenchar\font}%
+ \hyphenchar\font\m@ne
+ \language\l@nohyphenation
+ #1\/%
+ \meta@hyphen@restore
+ }\ensuremath\rangle
+}
+\def\meta@font@select{\itshape}
+\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\providecommand\marg[1]{%
+ {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{%
+ {\ttfamily[}\meta{#1}{\ttfamily]}}
+\providecommand\parg[1]{%
+ {\ttfamily(}\meta{#1}{\ttfamily)}}
+\makeatother
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We establish name shorthands. Note the heavy use of \noexpand
+% in the macro arguments below. This is intrinsic to the proper
+% function of such arguments (advanced alternate formatting).
%
\begin{nameauth}
\< Adams & John & \noexpand\textSC{Adams} & >
\< SDJR & Sammy & \noexpand\textSC{Davis}, \noexpand\textSC{Jr}. & >
\< Dem & & Demetrius, I & >
- \< deSmet & Pierre-Jean & \noexpand\Fbox{\noexpand\AltCaps{d}e Smet} & >
+ \< deSmet & Pierre-Jean & \noexpand\Fbox{\noexpand\AltCaps{d}e~Smet} & >
\< HAR & & Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid} & >
\< Harnack & Adolf & Harnack & >
\< Jeff & Thomas & \noexpand\JEFF & >
\< Mencius & & \noexpand\textSC{Mencius} & >
\< Scipio & \noexpand\SCIPi & \noexpand\SCIPii & >
+ \< OScipio & Publius & \noexpand\CSA & >
\< Shak & \noexpand\WM & \noexpand\SHK & >
\< Sutorius & Quintus & \noexpand\SUTOR & >
\< Wash & George & Washington & >
\end{nameauth}
%
-% We set up a text tag here, but we will set more up in the body text.
+% We could add name info database tags (text tags) either
+% in the preamble or in the document environment. We will do
+% the latter in this example file.
%
-\NameAddInfo{Demetrius, I}{ Soter}
-%
-% Below we establish sort tags for names. Note again the consistent use of \noexpand.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Below we establish sort tags for names. We also can do that
+% later on in the body text. Note again the consistent use of
+% \noexpand with alternate formatting.
%
\PretagName[John]{\noexpand\textSC{Adams}}{Adams, John}
\PretagName[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}{Davis, Sammy, Jr.}
\PretagName{Demetrius, I}{Demetrius 1}
-\PretagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e Smet}}{de Smet, Pierre-Jean}
+\PretagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}{de~Smet, Pierre-Jean}
\PretagName{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}}{Harun al-Rashid}
\PretagName[Thomas]{\noexpand\JEFF}{Jefferson, Thomas}
\PretagName{\noexpand\textSC{Mencius}}{Mencius}
\PretagName{\noexpand\textSC{Meng}, Ke}{Meng Ke}
\PretagName[\noexpand\SCIPi]{\noexpand\SCIPii}{Scipio Africanus}
+\PretagName[Publius]{\noexpand\CSA}{Cornelius Scipio Africanus}
\PretagName[Quintus]{\noexpand\SUTOR}{Naevius Sutorius}
\PretagName[\noexpand\WM]{\noexpand\SHK}{Shakespeare, William}
\PretagName{Vlad, Ţepeş}{Vlad Tepes}
@@ -131,6 +220,7 @@
\TagName[Ulysses S.]{Grant}{, president}
\TagName[George]{Washington}{, president}
%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% We set up line numbering in verbatim environments.
%
\makeatletter
@@ -139,26 +229,28 @@
\newcommand*\ContinueNum{\def\verbatim@processline{\stepcounter{VerbLine}\leavevmode\llap{\footnotesize\normalfont\theVerbLine\quad}\the\verbatim@line\par}}
\makeatother
%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The default verbatim format is no line numbers.
% We add title, author, and date.
%
\ClearNum
\title{\bfseries Longer Examples}
\author{Charles P. Schaum}
-\date{2020/02/26}
+\date{2020/11/23}
\begin{document}
\maketitle
+\phantomsection
+\pdfbookmark[1]{\contentsname}{toc}
\tableofcontents
-\bigskip
-
-{\large\bfseries\hyperlink{Index}{Index}}
\newpage
\section{Particles}
-First we use variants with the \(\langle Alternate\rangle\) argument:
+First we use variants with the \meta{Alternate} argument:
+
+\NameAddInfo{Demetrius, I}{ Soter}
\begin{quote}\small
\StartNum
\begin{verbatim}
@@ -166,29 +258,40 @@ First we use variants with the \(\langle Alternate\rangle\) argument:
\PretagName{Demetrius, I}{Demetrius 1}
\TagName{Demetrius, I}{ Soter, king}
\begin{nameauth}
- \< Dem & & Demetrius, I & >
+\< Dem & & Demetrius, I & >
\end{nameauth}
\end{verbatim}
-\smallskip
- \begin{tabular}{@{}ll}
- \verb+\Dem[I Soter]+ & \Dem[I Soter]\\
- \verb+\LDem+ & \LDem\\
- \verb+\Dem+ & \Dem\\
- \end{tabular}
-\end{quote}
+ \smallskip
+ \begin{tabular}{ll}\toprule
+ \cmd{\Dem[I Soter]} & \Dem[I Soter]\\
+ \rowcolor{grey}%
+ \cmd{\LDem} & \LDem\\
+ \cmd{\Dem} & \Dem\\\bottomrule
+ \end{tabular}
+ \end{quote}
\begingroup%
-\makeatletter\renewcommand*\NamesFormat[1]{\begingroup%
-\protected@edef\temp{\endgroup{#1%
-\noexpand\NameQueryInfo[\unexpanded\expandafter{\the\@nameauth@toksa}]
-{\unexpanded\expandafter{\the\@nameauth@toksb}}
-[\unexpanded\expandafter{\the\@nameauth@toksc}]}}\temp}\makeatother
-\noindent For a more automated approach, we use ``text tags'' in the formatting macros:
+\makeatletter
+\renewcommand*\NamesFormat[1]{%
+ \begingroup%
+ \protected@edef\temp{\endgroup%
+ {#1\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]%
+ }%
+ }%
+ \temp%
+}
+\makeatother
+For a more automated approach, we use ``text tags'':
+
\begin{quote}\small
-\makeatletter\ContinueNum\makeatother
+\ContinueNum
\begin{verbatim}
\makeatletter
+\makeatletter
\renewcommand*\NamesFormat[1]{%
\begingroup%
\protected@edef\temp{\endgroup%
@@ -204,237 +307,275 @@ First we use variants with the \(\langle Alternate\rangle\) argument:
\end{verbatim}
\smallskip
- \begin{tabular}{@{}ll}
- \verb+\ForgetThis\Dem+ & \ForgetThis\Dem\\
- \verb+\LDem+ & \LDem\\
- \verb+\Dem+ & \Dem\\
+ \begin{tabular}{ll}\toprule
+ \cmd{\ForgetThis}\cmd{\Dem} & \ForgetThis\Dem\\
+ \rowcolor{grey}%
+ \cmd{\LDem} & \LDem\\
+ \cmd{\Dem} & \Dem\\\bottomrule
\end{tabular}
\end{quote}
\endgroup
+
+\vfil
+\noindent And now for something completely different\dots
+
+ We mention the Electric Boogaloo\index{Boogaloo, Electric}
+ by \Name{Ollie~\& Jerry}.\\
+
+\noindent The index references made here will put:
+
+ ``Boogaloo, Electric'' in the main index
+
+ and ``\ShowIdxPageref*{Ollie~\& Jerry}'' in the index of names.
\newpage
\section{Roman Names}
-\begingroup
-We want all names in the index, so we define two macros that expand to be one or two components: \textit{praenomen} and \textit{nomen}; \textit{cognomen} and \textit{agnomen}. Below we want to index under the \textit{cognomen}. We begin by defining a name with macros using \verb+\noexpand+ to prevent error:
+
+ We define all macros and conditionals used in naming macro arguments in the preamble. We use \cmd{\noexpand} in the naming macro arguments to prevent error. Since we do not use \cmd{\CapThis} in the examples below, we skip alternate formatting for simplicity, yet we still recommend it:
+ \begin{quote}\small
+ \StartNum
+ \begin{verbatim}
\newif\ifSkipGens
\newif\ifNoGens
\newif\ifSkipAgnomen
\newif\ifNoAgnomen
-\newcommand*\SCIPi{\ifNoGens Publius\else
- Publius Cornelius\fi}
-\newcommand*\SCIPii{\ifNoAgnomen Scipio\else
- Scipio Africanus\fi}
+\newcommand*\SCIPi{\ifNoGens
+ Publius\else Publius Cornelius\fi}
+\newcommand*\SCIPii{\ifNoAgnomen
+ Scipio\else Scipio Africanus\fi}
\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
-%
-% This form of \NamesFormat produces the longest possible name form in the first mention.
-%
-\renewcommand*\NamesFormat[1]%
- {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
- \global\SkipGensfalse\global\SkipAgnomenfalse}
-%
-% If we always wanted to skip the nomen or agnomen in subsequent references, we could
-% force either \NoGenstrue or \NoAgnomentrue in \MainNameHook. The form below is
-% neutral to such preferences and thus, one must set them manually.
-%
-\renewcommand*\MainNameHook[1]%
- {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
- \global\SkipGensfalse\global\SkipAgnomenfalse}
- \begin{quote}\small
- \StartNum
- \begin{verbatim}
\begin{nameauth}
\< Scipio & \noexpand\SCIPi & \noexpand\SCIPii & >
\end{nameauth}
-\PretagName[\noexpand\SCIPi]{\noexpand\SCIPii}{Scipio Africanus}
-\end{verbatim}
+\PretagName[\noexpand\SCIPi]{\noexpand\SCIPii}{Scipio Africanus}\end{verbatim}
\end{quote}
- We define the flags and macros by which the name will change. The global state of \verb+\NoGens+ and \verb+\NoAgnomen+ determine the index form. The local scope in the formatting hooks allows changes that are reset when exiting that scope.
+ We begin a new scope below, redefining the formatting hooks, which affect only names printed in the text. If the local Boolean flags are false, one gets longer name forms. If the flags are true, one gets shorter forms. This approach allows the global state of the flags to be false by default, meaning that one need not remember to set any of them true in the preamble. That results in one less thing to remember, and one less problem to fix.
+\begingroup
+\renewcommand*\NamesFormat[1]
+ {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
+ \global\SkipGensfalse\global\SkipAgnomenfalse}
+\renewcommand*\MainNameHook[1]
+ {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
+ \global\SkipGensfalse\global\SkipAgnomenfalse}
\begin{quote}\small
\ContinueNum
-\begin{verbatim}
-\newif\ifSkipGens
-\newif\ifNoGens
-\newif\ifSkipAgnomen
-\newif\ifNoAgnomen
-\newcommand*\SCIPi{\ifNoGens Publius\else
- Publius Cornelius\fi}
-\newcommand*\SCIPii{\ifNoAgnomen Scipio\else
- Scipio Africanus\fi}
-\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
-\renewcommand*\NamesFormat[1]%^^A
+ \begin{verbatim}
+\renewcommand*\NamesFormat[1]
{\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
\global\SkipGensfalse\global\SkipAgnomenfalse}
-\renewcommand*\MainNameHook[1]%^^A
+\renewcommand*\MainNameHook[1]
{\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
- \global\SkipGensfalse\global\SkipAgnomenfalse}
-\end{verbatim}
-\smallskip
-\ScipioOnly\ \verb+\ScipioOnly+ was born around 236 \textsc{bc} into the Scipio branch of the Cornelius clan, one of six large patrician clans. \SkipGenstrue\ScipioOnly\ \verb+\SkipGenstrue\ScipioOnly+ rose to fame with his military exploits in Hispania and Africa during the Second Punic War. Thereafter he was known as \SkipGenstrue\Scipio\ \verb+\SkipGenstrue\Scipio+.
+ \global\SkipGensfalse\global\SkipAgnomenfalse}\end{verbatim}
\end{quote}
-
- The index entry is fairly lengthy by necessity, governed by the global state of the Boolean flags, and expanding to:
-\begin{quote}
- \texttt{\ShowIdxPageref[\noexpand\SCIPi]{\noexpand\SCIPii}}
-\end{quote}
-%
-% We can keep the redefined formatting macros above.
-%
-If we want to index under the \textit{nomen}, we take a slightly different approach:
+ The index always shows the name determined by the global state of \cmd{\NoGens} and \cmd{\NoAgnomen}, which we set up as false, meaning a maximally long name form. In the body text we have:
+ \begin{quote}\small
+ \ForgetThis\ScipioOnly\ \cmd{\ScipioOnly} was born around 236 \textsc{bc} into the Scipio branch of the Cornelius clan, one of six large patrician clans. \ScipioOnly\ \cmd{\ScipioOnly} rose to military fame during the Second Punic War. Thereafter he was known as \Scipio\ \cmd{\Scipio}.
+ \end{quote}
+
+ Below we show more information about popular name forms by way of comparison with scholarly name forms.\medskip
+
+ The \textit{Oxford Classical Dictionary} and other scholarly sources index according to the \textit{nomen}. That approach moves the \textit{nomen} from \meta{FNN} to \meta{SNN}.
+
+ The two methods do not clash \textit{per se} in the text, but they make incompatible index entries. In this case, since we have indexed \ScipioOnly\ under the popular form above, we use \cmd{\ExcludeName} to exclude the scholarly form below.
+
+ In the document preamble we define the following Boolean flags and macros. We use a nested conditional in \meta{SNN}. The default still is to show all names so that they can be indexed that way:
\begin{quote}\small
\StartNum
\begin{verbatim}
+\newif\ifSkipGens % These flags remain the same as above.
+\newif\ifNoGens
+\newif\ifSkipAgnomen
+\newif\ifNoAgnomen
+\global\def\CSA{\ifNoGens\ifNoAgnomen
+ Scipio\else
+ Scipio Africanus\fi
+ \else\ifNoAgnomen
+ Cornelius Scipio\else
+ Cornelius Scipio Africanus\fi\fi}
+\ExcludeName[Publius]{\noexpand\CSA}
\begin{nameauth}
- \< Sutorius & Quintus & \noexpand\SUTOR & >
+ \< OScipio & Publius & \noexpand\CSA & > % O for Oxford
\end{nameauth}
-\PretagName[Quintus]{\noexpand\SUTOR}{Naevius Sutorius}
-\newcommand*\SUTOR{\ifNoGens
- \ifNoAgnomen
- Sutorius\else
- Sutorius Macro\fi
- \else\ifNoAgnomen
- Naevius Sutorius\else
- Naevius Sutorius Macro\fi\fi}
-\end{verbatim}
-\end{quote}
-\newcommand*\SUTOR{\ifNoGens
- \ifNoAgnomen
- Sutorius\else
- Sutorius Macro\fi
- \else\ifNoAgnomen
- Naevius Sutorius\else
- Naevius Sutorius Macro\fi\fi}
-
-\verb+\Sutorius +\Sutorius
+\PretagName[Publius]{\noexpand\CSA}{Cornelius Scipio Africanus}\end{verbatim}
+ \end{quote}
-\verb+\SkipGenstrue\Sutorius +\SkipGenstrue\Sutorius
+ We keep the same formatting macros that we defined above. By the way, these formatting macros could work with regular names as well as Roman names, e.g., \LDem, because they have no side effects.
+
+ The scholarly form of Roman names has a different name pattern, so it is not compatible with the popular version. Nevertheless, we show what the index entries would be in a normal \LaTeX\ document without hyperlinks:
+ \begin{quote}\small\IndexActual{@}
+ \textbf{Simplified Name Patterns:}\\
+ Scholarly: \texttt{\ShowPattern[Publius]{\noexpand\CSA}}\\
+ \setbox0\hbox{Scholarly:}\hbox to \wd0{Popular:\hfill} \texttt{\ShowPattern[\noexpand\SCIPi]{\noexpand\SCIPii}}\\
+
+ \textbf{Full Index Entries:}
+ \UntagName[Publius]{\noexpand\CSA}
+ \UntagName[\noexpand\SCIPi]{\noexpand\SCIPii}\\
+ Scholarly:\\ \hbox{}\quad\texttt{\ShowIdxPageref[Publius]{\noexpand\CSA}}\\
+ Popular:\\ \hbox{}\quad\texttt{\ShowIdxPageref[\noexpand\SCIPi]{\noexpand\SCIPii}}
+ \TagName[Publius]{\noexpand\CSA}{\string|hyperpage}
+ \TagName[\noexpand\SCIPi]{\noexpand\SCIPii}{\string|hyperpage}\\
+
+ \textbf{Basic Index Entries:}\\
+ \UntagName[Publius]{\noexpand\CSA}
+ Scholarly:\\ \hbox{}\quad\ShowIdxPageref*[Publius]{\noexpand\CSA}\\
+ Popular:\\ \hbox{}\quad\ShowIdxPageref*[\noexpand\SCIPi]{\noexpand\SCIPii}
+ \end{quote}
-\endgroup
+ Below we compare some differences between the scholarly and popular forms, and how to get equivalent forms in the text while understanding that they would be two separate forms in the index.
+ \begin{center}\small
+ \begin{tabular}{p{0.51\textwidth}@{\ \ }l}
+ \multicolumn{2}{l}{\textbf{First use:}}\\
+ scholarly:\dotfill \cmd{\OScipio} & \OScipio\\
+ popular:\dotfill \cmd{\Scipio} & \ForgetThis\Scipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use:}}\\
+ scholarly:\dotfill \cmd{\OScipio} & \OScipio\\
+ scholarly:\dotfill \cmd{\SkipGenstrue}\cmd{\OScipio} & \SkipGenstrue\OScipio\\
+ popular:\dotfill \cmd{\Scipio} & \SkipGenstrue\Scipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use, full, no \textit{agnomen}:}}\\
+ scholarly:\dotfill \cmd{\SkipAgnomentrue}\cmd{\LOScipio} & \SkipAgnomentrue\LOScipio\\
+ popular:\dotfill \cmd{\SkipAgnomentrue}\cmd{\LScipio} & \SkipAgnomentrue\LScipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use, shortest forms:}}\\
+ scholarly:\dotfill \cmd{\SkipAgnomentrue}\cmd{\OScipio} & \SkipAgnomentrue\OScipio\\
+ \hfill\cmd{\SkipGenstrue}\cmd{\SkipAgnomentrue}\cmd{\OScipio} & \SkipGenstrue\SkipAgnomentrue\OScipio\\
+ popular:\dotfill \cmd{\SkipAgnomentrue}\cmd{\Scipio\ } & \SkipAgnomentrue\Scipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use, personal name:}}\\
+ scholarly:\dotfill \cmd{\SOScipio} & \SOScipio\\
+ popular:\dotfill \cmd{\SScipio} & \SScipio\\
+ popular:\dotfill \cmd{\SkipGenstrue}\cmd{\SScipio} & \SkipGenstrue\SScipio
+ \end{tabular}
+ \end{center}
+ \endgroup
\newpage
-\section{Alternate Formatting: Inflections}
+\section{Inflected Name Forms}
-In this section we use a scope to contain \verb+\AltFormatActive+ as we show how to implement a simple grammatical inflection. Notice the similarities between handling the Roman names above and the grammatical inflections below this points to a general method when introducing variations into the name macro arguments, while keeping index entries consistent.
-
-\begingroup\AltFormatActive
-\newif\ifGenitive
-\newif\ifDoGen
-\renewcommand*\NamesFormat[1]
- {\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
-\renewcommand*\MainNameHook[1]
- {\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
-\newcommand\JEFF{\ifDoGen\textSC{Jefferson's}\else\textSC{Jefferson}\fi}
-\begin{quote}\small
-\StartNum
-\begin{verbatim}
-\newif\ifGenitive
-\newif\ifDoGen
-\renewcommand*\NamesFormat[1]
- {\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
-\renewcommand*\MainNameHook[1]
- {\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
+\begingroup
+Below we use alternate formatting, sort index entries, and set up a cross-reference, then redefine the hook macros locally.
+\AltFormatActive
+ \renewcommand*\NamesFormat[1]{\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
+ \renewcommand*\MainNameHook[1]{\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
+ \begin{quote}\small
+ \StartNum
+ \begin{verbatim}
\begin{nameauth}
- \< Jeff & Thomas & \noexpand\JEFF & >
+ \< Jeff & Thomas & \noexpand\JEFF & >
\end{nameauth}
\PretagName[Thomas]{\noexpand\JEFF}{Jefferson, Thomas}
\TagName[Thomas]{\noexpand\JEFF}{, president}
-\newcommand\JEFF{\ifDoGen\textSC{Jefferson's}\else
- \textSC{Jefferson}\fi}
+\renewcommand*\NamesFormat[1]
+ {\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
+\renewcommand*\MainNameHook[1]
+ {\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
-Consider \Genitivetrue\Jeff\ influence. More on \Jeff\ later.
+Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
\Genitivetrue\Jeff\ reputation has declined in recent decades.
\end{verbatim}
-\smallskip
-Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
-\Genitivetrue\Jeff\ reputation has declined in recent decades.
-\end{quote}
+ \smallskip
+ Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
+ \Genitivetrue\Jeff\ reputation has declined in recent decades.
+ \end{quote}
+\AltFormatInactive
+\endgroup
\newpage
-
-\section{Continental Format Reference Work}
+\section{Example Reference Work}
-Let us create a macro for entries in a reference work using the basic form of Continental formatting.
+Below we use alternate formatting, sort index entries, set up a cross-reference, and define a reference article macro:
-\begin{quote}\small
- \StartNum
- \begin{verbatim}
\AltFormatActive
\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
+\PretagName{\textSC{Misora}, Hibari}{Misora Hibari}
\PretagName[Heinz]{\textSC{Rühmann}}{Ruehmann, Heinz}
\PretagName[Heinrich Wilhelm]{\textSC{Rühmann}}%
{Ruehmann, Heinrich Wilhelm}
-
-\newcommand{\RefArticle}[4]{%
+\IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
+ {\textSC{Rühmann}, Heinz}%
+\newcommand{\RefArticle}[3]{%
\def\check{#2}%
\ifx\check\empty
- \noindent\ForgetThis#1\ {#4}
+ \noindent\ForgetThis#1\ #3
\else
- \noindent\ForceName#1\ ``\ForceName#2''
- \ForceName#3\ {#4}
+ \noindent\ForgetThis#1\ #2\ #3
\fi
}
-\end{verbatim}
-\end{quote}
-
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\AltFormatActive
\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
+\PretagName{\textSC{Misora}, Hibari}{Misora Hibari}
\PretagName[Heinz]{\textSC{Rühmann}}{Ruehmann, Heinz}
\PretagName[Heinrich Wilhelm]{\textSC{Rühmann}}%
{Ruehmann, Heinrich Wilhelm}
-\newcommand{\RefArticle}[4]{%
+\IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
+ {\textSC{Rühmann}, Heinz}%
+\newcommand{\RefArticle}[3]{%
\def\check{#2}%
\ifx\check\empty
- \noindent\ForgetThis#1\ {#4}
+ \noindent\ForgetThis#1\ #3
\else
- \noindent\ForceName#1\ ``\ForceName#2''
- \ForceName#3\ {#4}
+ \noindent\ForgetThis#1\ #2\ #3
\fi
}
-\verb+\RefArticle+ either formats the name from the first argument and appends the fourth argument, ignoring the others if the second is empty, or it formats the first three arguments and appends the fourth. We determine what those arguments mean by including specific naming macros.
+\end{verbatim}
+\end{quote}
+
+\cmd{\RefArticle} prints only the first and third arguments if the second is empty, else it prints all three. We determine what those arguments mean by including specific naming macros. That includes using \cmd{\RevComma} for Western names, but not for Eastern ones.
+
\begin{quote}\small
- \ContinueNum
- \begin{verbatim}
-\RefArticle%
- {\Name[Greta]{\textSC{Garbo}}}%
- {}{}%
+\ContinueNum
+\begin{verbatim}
+\RefArticle
+ {\RevComma\Name[Greta]{\textSC{Garbo}}}
+ {}
{(18 September 1905\,--\,15 April 1990) was a Swedish
film actress during the 1920s and 1930s.}
-\RefArticle%
- {%
- \IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
- {\textSC{Rühmann}, Heinz}%
- \SubvertThis\FName[Heinrich Wilhelm]{\textSC{Rühmann}}%
- }%
- {\SubvertThis\FName[Heinz]{\textSC{Rühmann}}}%
- {\Name[Heinz]{\textSC{Rühmann}}}%
+\RefArticle
+ {\Name{\textSC{Misora}, Hibari}}
+ {}
+ {(W: ``\RevName\Name*{\textSC{Misora}, Hibari}'';
+ 29 May 1937\,--\,24 June 1989) was a Japanese singer
+ and actress noted for her positive message.}
+
+\RefArticle
+ {\RevComma\Name[Heinrich Wilhelm]{\textSC{Rühmann}}}
+ {``\SubvertThis\ForceName\FName[Heinz]{\textSC{Rühmann}}''}
{(7 March 1902\,--\,3 October 1994) was a German actor
in over 100 films.}
-
\AltFormatInactive
\end{verbatim}
\end{quote}
-\begin{quote}
-\RefArticle%
- {\Name[Greta]{\textSC{Garbo}}}%
- {}{}%
+\begin{quote}\small
+\RefArticle
+ {\RevComma\Name[Greta]{\textSC{Garbo}}}
+ {}
{(18 September 1905\,--\,15 April 1990) was a Swedish
film actress during the 1920s and 1930s.}
-\RefArticle%
- {%
- \IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
- {\textSC{Rühmann}, Heinz}%
- \SubvertThis\FName[Heinrich Wilhelm]{\textSC{Rühmann}}%
- }%
- {\SubvertThis\FName[Heinz]{\textSC{Rühmann}}}%
- {\Name[Heinz]{\textSC{Rühmann}}}%
+\RefArticle
+ {\Name{\textSC{Misora}, Hibari}}
+ {}%
+ {(W: ``\RevName\Name*{\textSC{Misora}, Hibari}'';
+ 29 May 1937\,--\,24 June 1989) was a Japanese singer
+ and actress noted for her positive message.}
+
+\RefArticle
+ {\RevComma\Name[Heinrich Wilhelm]{\textSC{Rühmann}}}
+ {``\SubvertThis\ForceName\FName[Heinz]{\textSC{Rühmann}}''}
{(7 March 1902\,--\,3 October 1994) was a German actor
in over 100 films.}
\end{quote}
-\endgroup
+
+\AltFormatInactive
\newpage
\section{Beamer MWE}
@@ -453,8 +594,7 @@ One must use the macros that control and detect names, otherwise name forms will
\begin{itemize}\footnotesize
\item<1-> Original\ForgetName[George]{Washington}%
\ForgetName[George]{Washington's}\\
- \Name[Martin]{Van Buren} changes
- after the first overlay.
+ This version of \Name[Ulysses S.]{Grant} changes.
\begin{enumerate}
\item<2-> \IfMainName[George]{Washington's}{He}%
{\Name[George]{Washington}}
@@ -468,7 +608,7 @@ One must use the macros that control and detect names, otherwise name forms will
\end{enumerate}
\item<1-> Reordered\ForgetName[George]{Washington}%
\ForgetName[George]{Washington's}\\
- \ForgetThis\Name[Ulysses S.]{Grant}
+ This version of \ForgetThis\Name[Ulysses S.]{Grant}
does not change.
\begin{enumerate}
\item<3-> \IfMainName[George]{Washington}{His}%
@@ -487,7 +627,6 @@ One must use the macros that control and detect names, otherwise name forms will
\end{document}
\end{verbatim}
\IndexName[George]{Washington}
-\IndexName[Martin]{Van Buren}
\IndexName[Ulysses S.]{Grant}
\end{quote}
@@ -497,30 +636,29 @@ The overlays, numbered progressively from one to three, begin by deleting name c
\section{Hooks: Intro}
\label{sec:Hooksi}
-Something more complex than a font switch can occur in \verb+\NamesFormat+. Below we put the first mention of a name in boldface, with a margin note, if possible.
+Here we show that something more complex than a font switch can occur in \cmd{\NamesFormat}. Below we put the first mention of a name in boldface, along with a marginal notation if possible.
\begin{quote}\small
\StartNum
\begin{verbatim}
\let\OldFormat\NamesFormat
\renewcommand*\NamesFormat[1]{\textbf{#1}\unless\ifinner
- \marginpar{\raggedleft\scriptsize #1}\fi}
-\let\NamesFormat\OldFormat
+ \marginpar{\raggedleft\scriptsize #1}\fi}
\PretagName{Vlad, Ţepeş}{Vlad Tepes} % for accented names
-\TagName{Vlad, II}{ Dracul} % for index information
+\TagName{Vlad, II}{ Dracul} % for index information
\TagName{Vlad, III}{ Dracula}
\end{verbatim}
-Within the document after the preamble:\vspace{-\medskipamount}%
-\let\OldFormat\NamesFormat%
+\medskip Within the document after the preamble:
+\let\OldFormat\NamesFormat
\renewcommand*\NamesFormat[1]{\textbf{#1}\unless\ifinner
- \marginpar{\raggedleft\scriptsize #1}\fi}%
+ \marginpar{\raggedleft\scriptsize #1}\fi}
\ContinueNum
-\begin{verbatim}
-\Name{Vlad, III}[III Dracula], known as
+\begin{verbatim}\Name{Vlad, III}[III Dracula], known as
\AKA{Vlad III}{Vlad, Ţepeş} (the Impaler)
after his death, was the son of \Name{Vlad, II}[II Dracul],
a member of the Order of the Dragon. Later references to
-``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.\end{verbatim}
+``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
+\end{verbatim}
\Name{Vlad, III}[III Dracula], known as
\AKA{Vlad III}{Vlad, Ţepeş} (the Impaler)
@@ -529,55 +667,50 @@ a member of the Order of the Dragon. Later references to
``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
\let\NamesFormat\OldFormat
-\begin{verbatim}\let\NamesFormat\OldFormat
-\end{verbatim}
+\begin{verbatim}\let\NamesFormat\OldFormat\end{verbatim}
\end{quote}
-
-Now we have reverted to the default \verb+\NamesFormat+ and we get:
+Now we have reverted to the default \cmd{\NamesFormat} and we get:
\begin{itemize}
- \item \verb+\ForgetThis\Name{Vlad, III}[III Dracula]+\dotfill \ForgetThis\Name{Vlad, III}[III Dracula]
- \item \verb+\Name*{Vlad, III}+\dotfill \Name*{Vlad, III}
- \item \verb+\Name{Vlad, III}+\dotfill \Name{Vlad, III}
+ \item \cmd{\ForgetThis}\cmd{\Name\{Vlad, III\}[III Dracula]}\dotfill \ForgetThis\Name{Vlad, III}[III Dracula]
+ \item \cmd{\Name*\{Vlad, III\}}\dotfill \Name*{Vlad, III}
+ \item \cmd{\Name\{Vlad, III\}}\dotfill \Name{Vlad, III}
\end{itemize}
-
-We also set up the cross-reference \verb+\IndexRef{Dracula}{Vlad III}+\IndexRef{Dracula}{Vlad III}.
+We also set up the cross-reference \cmd{\IndexRef\{Dracula\}\{Vlad III\}}\IndexRef{Dracula}{Vlad III}.
\newpage
\section{Hooks: Life Dates}
\label{sec:Hooksii}
-Here we add name conditionals and ``text tags'' to add information to names when desired. The example \verb+\NamesFormat+ below adds a text tag to the first occurrences of main-matter names. It uses internal macros of \verb+\@nameauth@Name+. To prevent errors, the Boolean values \texttt{\textbackslash if@nameauth@InName} and \texttt{\textbackslash if@nameauth@InAKA} are true only within the scope of \verb+\@nameauth@Name+ and \verb+\AKA+ respectively.
+\begingroup
+Here we add name conditionals and ``text tags'' to add information to names when desired. The example \cmd{\NamesFormat} below adds a text tag to the first occurrences of main-matter names.
-Below we use the three token registers available in \textsf{nameauth} to use the name conditional macros. In \verb+\AKA+ these token registers are copies of the \textbf{last} three arguments, corresponding to the pseudonym. We assume that we will not be using the \texttt{alwaysformat} option, meaning that we only call this hook once for a first use of \verb+\AKA+. We also use a different formatting for the naming macros on the one hand and \verb+\AKA+ on the other:
+Below we use the three token registers available in \textsf{nameauth} to use the name conditional macros. In \cmd{\AKA} these token registers are copies of the \textbf{last} three arguments, corresponding to the pseudonym. We assume that we will not be using the \texttt{alwaysformat} option, meaning that we only call this hook once for a first use of \cmd{\AKA}. We also use a different formatting for the naming macros on the one hand and \cmd{\AKA} on the other:
+The first use of a name is in small caps. Text tags are in boldface with naming macros, and roman with \cmd{\AKA}. Just because we set up a cross-reference does not mean that we have to use \cmd{\AKA}. We use \cmd{\ForceName} as needed with \cmd{\AKA}. In the document preamble we set up the following:
\begin{quote}\small
\StartNum
\begin{verbatim}
-\newif\ifNoTag% allows us to work around \ForgetName
-\let\OldFormat\NamesFormat
-\let\OldFrontFormat\FrontNamesFormat
+\newif\ifNoTag
\makeatletter
\renewcommand*\NamesFormat[1]{\begingroup%
- \protected@edef\temp{\endgroup\textsc{#1}%
- \unless\ifNoTag
- \if@nameauth@InName
- {\bfseries\noexpand\NameQueryInfo
- [\unexpanded\expandafter{\the\@nameauth@toksa}]
- {\unexpanded\expandafter{\the\@nameauth@toksb}}
- [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
- \if@nameauth@InAKA
- {\normalfont\noexpand\NameQueryInfo
- [\unexpanded\expandafter{\the\@nameauth@toksa}]
- {\unexpanded\expandafter{\the\@nameauth@toksb}}
- [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
- \fi}\temp\global\NoTagfalse%
+ \protected@edef\temp{\endgroup\textsc{#1}%
+ \unless\ifNoTag
+ \if@nameauth@InName
+ {\bfseries\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
+ \if@nameauth@InAKA
+ {\normalfont\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
+ \fi}\temp\global\NoTagfalse%
}
\makeatother
\let\FrontNamesFormat\NamesFormat
\end{verbatim}
\end{quote}
-\let\OldFormat\NamesFormat%
-\let\OldFrontFormat\FrontNamesFormat%
-\makeatletter%
+\makeatletter
\renewcommand*\NamesFormat[1]{\begingroup%
\protected@edef\temp{\endgroup\textsc{#1}%
\unless\ifNoTag
@@ -593,10 +726,12 @@ Below we use the three token registers available in \textsf{nameauth} to use the
[\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
\fi}\temp\global\NoTagfalse}%
\makeatother
+\let\FrontNamesFormat\NamesFormat
-We print tags in the first use hooks unless \verb+\NoTag+ is set true. Please note that the conditional path here is placed within the \verb+\edef+. Putting it outside the \verb+\edef+, such as \verb+\unless\ifNoTag\temp\fi+, will cause errors. This method uses the $\epsilon$-\TeX{} primitives \verb+\noexpand+ and \verb+\unexpanded+ to avoid repetition of \verb+\expandafter+.
+We print tags in the first use hooks unless \cmd{\NoTag} is set true. This method uses the two \(\epsilon\)-\TeX{} primitives \cmd{\noexpand} and \cmd{\unexpanded} to avoid repetition of \cmd{\expandafter}. Since \textsf{nameauth} depends on \textsf{etoolbox}, we assume \(\epsilon\)-\TeX.
-Before we can refer to any text tags, we must create them. Using the approach above, we must include a leading space in the text tags. The leading space is needed only when a text tag appears. We also set up a cross-reference:
+Before we can refer to any text tags, we must create them. Using the approach above, we include a leading space in the text tags. The leading space is needed only when a text tag appears.\footnote{Another way to add that space is to put it in the conditional path of the formatting hook and leave it out of the text tags entirely: \dots\texttt{\{ \}}\cmd{\noexpand}\cmd{\NameQueryInfo}\dots}
+We also set up a cross-reference, which we will use regardless of whether we also use \cmd{\AKA}. The cross-reference will be created only once and skipped thereafter:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
@@ -610,25 +745,27 @@ Before we can refer to any text tags, we must create them. Using the approach ab
\NameAddInfo[Mustafa]{Kemal}{ (1881--1938)}
\NameAddInfo{Atatürk}{ (in 1934, a special surname)}
\IndexRef{Atatürk}{Kemal, Mustafa}
+\pagebreak
-Now we begin with the first example, where the name is in small caps, while the dates are in boldface because we use a naming macro. This formatting is used only to show the different decision paths:
-\newpage
-
+Now we begin with the first example, which, after all the setup, looks deceptively simple, but highly reusable without extra work:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
-\ForgetThis\Wash held office 1789--97.\\
+\ForgetThis\Wash held office 1789--97.
No tags: \Wash.\\
-First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.
+First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.\\
+Subsequent use with format and dates: \ForceName\Wash.
\end{verbatim}
\smallskip
\ForgetThis\Wash\ held office 1789--97.\\
No tags: \Wash.\\
-First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.
+First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.\\
+Subsequent use with format and dates: \ForceName\Wash.
\end{quote}
-Since we already set up a cross-reference with \verb+\IndexRef+, we can use the naming macros with ``Atatürk'' and get the desired formatting without any page references:
+Since we already set up a cross-reference with \cmd{\IndexRef}, we can use just the the naming macros with ``Atatürk'' and get the desired formatting without any page references in the index:
+
\begin{quote}\small
\ContinueNum
\begin{verbatim}
@@ -649,7 +786,7 @@ First use, no tag:
\NoTagtrue\ForgetThis\Name{Atatürk}.
\end{quote}
-Since we set up distinct formatting (\verb+\normalfont+ instead of boldface) for name tags and cross-reference tags, we now simulate the \texttt{formatAKA} package option and use \verb+\ForceName+ with \verb+\AKA+:
+Since we set up distinct formatting for \cmd{\AKA} (\cmd{\normalfont} instead of boldface for text tags associated with cross-references), we now simulate the \texttt{formatAKA} package option and use \cmd{\ForceName} with \cmd{\AKA}:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
@@ -675,16 +812,16 @@ First use, no tag:
We show an alternate part of this example on the next page that does not appear in the manual, but works identically to that above.
\newpage
-We change the look of the page reference just to see if it works:
+We change the look of the page reference just to see if it works. Since we are in a local scope, note the use of \cmd{\global}:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
-\def\fett#1{\textbf{\sffamily #1}}
+\global\def\fett#1{\textbf{\sffamily #1}}
\TagName[Mustafa]{Kemal}{|fett}
\end{verbatim}
\end{quote}
-\def\fett#1{\textbf{\sffamily #1}}
+\global\def\fett#1{\textbf{\sffamily #1}}
\TagName[Mustafa]{Kemal}{|fett}
This version does not use $\epsilon$-\TeX primitives. We ``forget'' names as needed and replay the text on the previous page with the new version:
@@ -744,14 +881,14 @@ This version does not use $\epsilon$-\TeX primitives. We ``forget'' names as nee
\end{verbatim}
\smallskip
-With \verb+\Name+:\\
+With \cmd{\Name}:\\
\ForgetThis\Name[Mustafa]{Kemal} was granted the name
\ForgetThis\Name{Atatürk}. We mention \Name[Mustafa]{Kemal}
and \Name{Atatürk} again.
First use, no tag: \NoTagtrue\ForgetThis\Name{Atatürk}.\bigskip
-With \verb+\AKA+:\\
+With \cmd{\AKA}:\\
\makeatletter\@nameauth@AKAFormattrue\makeatother
\ForgetThis\Name[Mustafa]{Kemal} was granted the name
\ForceName\AKA[Mustafa]{Kemal}{Atatürk}. We mention
@@ -760,72 +897,30 @@ With \verb+\AKA+:\\
First use, no tag: \NoTagtrue\ForceName\AKA[Mustafa]{Kemal}{Atatürk}.
\end{quote}
-\begin{quote}\small
-\ContinueNum
-\begin{verbatim}
-\let\NamesFormat\OldFormat
-\let\FrontNamesFormat\OldFrontFormat
-\end{verbatim}
-\end{quote}
-\let\NamesFormat\OldFormat
-\let\FrontNamesFormat\OldFrontFormat
+Now we end the scope.
+\endgroup
\newpage
\section{Hooks: Advanced}
\label{sec:Hooksiii}
-We start alternate formatting in a new scope with \verb+\AltFormatActive+. The scope ends just before the index is printed.
\AltFormatActive
+In this section we invoke \cmd{\AltFormatActive} and create several scopes containing respective examples. Some macros in this section normally should be defined in a document preamble. We define them locally and ensure that names do not use them when they are undefined. This is not best practices, but it makes sense for this manual's need for multiple redefinitions.
-\begin{center}\bfseries Continental Format\end{center}
-
-\noindent Here we look in greater detail at how \textsf{nameauth} implements the advanced version of Continental formatting. Font changes in both text and the index occur with the short macros \verb+\textSC+, \verb+\textIT+, \verb+\textBF+, and \verb+\textUC+. Since they all look similar to \verb+\textSC+, we just show this one macro from the package source:
+\begin{center}\bfseries Continental Format: User-Defined\end{center}
+\phantomsection
+\begingroup
+The user must implement this final step. We use \cmd{\AltFormatActive}, then redefine \cmd{\MainNameHook} to have small caps on by default in the index and first uses in the text, then off in subsequent uses in the text:
\begin{quote}\small
\StartNum
\begin{verbatim}
-\newcommand*\textSC[1]{%
- \if@nameauth@DoAlt\textsc{#1}\else#1\fi
-}
-\end{verbatim}
-\end{quote}
-
-We plan to have small caps on by default, then off in subsequent uses. We therefore use \verb+\AltFormatActive+ for the ``always on'' general condition, then redefine \verb+\MainNameHook+ because it is the subsequent use. We use \verb+\AltOff+ to suppress formatting. It works only in the formatting hooks. \verb+\AltOff+ toggles an internal flag that deactivates any changes:
-\begin{quote}\small
-\ContinueNum
-\begin{verbatim}
-\newcommand*\AltOff{%
- \if@nameauth@InHook\@nameauth@DoAltfalse\fi
-}
-\end{verbatim}
-\end{quote}
-
-Since the normal effects of \verb+\CapThis+ are disabled, \verb+\AltCaps+ does the job by capitalizing its argument in braces \texttt{\{~\}} when it is used in a macro hook and triggered by \verb+\CapThis+. The source looks like:
-\begin{quote}\small
-\ContinueNum
-\begin{verbatim}
-\newcommand*\AltCaps[1]{%
- \if@nameauth@InHook
- \if@nameauth@DoCaps\MakeUppercase{#1}\else#1\fi
- \else#1\fi
-}
-\end{verbatim}
-\end{quote}
-
-It is important that these macros not expand too soon. We therefore must put \verb+\noexpand+ once before \verb+\textSC+, etc., and once before \verb+\AltCaps+. This is because the name arguments in \textsf{nameauth} have to use \verb+\protected@edef+ to work consistently in different document classes.
-
-Before we alter the formatting hooks, we either can \verb+\let+ the hook macros to recall them later or we can use \verb+\begingroup+ and \verb+\endgroup+ to create a new scope that localizes any changes. We use scoping in this section.
-
-The final step \textbf{does not come} from the \textsf{nameauth} source. We must redefine the formatting hooks ourselves. One of the simplest ways to do this when using the \texttt{altformat} option or \verb+\AltFormatActive+ is:
-\begin{quote}\small
-\ContinueNum
-\begin{verbatim}
\renewcommand*\MainNameHook{\AltOff}
\let\FrontNameHook\MainNameHook
\end{verbatim}
\end{quote}
+\renewcommand*\MainNameHook{\AltOff}
+\let\FrontNameHook\MainNameHook
-\renewcommand*\MainNameHook{\AltOff}\let\FrontNameHook\MainNameHook
-Use \verb+\let\FrontNamesFormat\MainNameHook+ to suppress formatting in the front matter.
-Continental formatting usually alters at least one element in the required name argument, as we see below:
+Usually, we set up the names and any related macros in the preamble:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
@@ -840,7 +935,7 @@ Continental formatting usually alters at least one element in the required name
\end{verbatim}
\end{quote}
-Now we must ensure that these names are sorted properly in the index. When sorting names, be sure to use \verb+\noexpand+ before the control sequences in the macro arguments so they expand at the proper time:
+Likewise in the preamble, we must ensure that these names are sorted properly in the index. When sorting names, be sure to use \cmd{\noexpand} as well:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
@@ -856,59 +951,46 @@ Now we must ensure that these names are sorted properly in the index. When sorti
\begin{center}
\small\noindent\begin{tabular}{llll}\toprule
-First & Next & Long & Short \\\midrule
-\verb+\Adams+ & \verb+\Adams+ & \verb+\LAdams+ & \verb+\SAdams+\\
-\Adams & \Adams & \LAdams & \SAdams\\\midrule
-\verb+\SDJR+ & \verb+\SDJR+ & \verb+\LSDJR+ & \verb+\SSDJR+\\
-\SDJR & \SDJR & \LSDJR & \SSDJR\\\midrule
-\verb+\HAR+ & \verb+\HAR+ & \verb+\LHAR+ & \verb+\SHAR+\\
-\HAR & \HAR & \LHAR & \SHAR\\\midrule
-\verb+\Mencius+ & \verb+\Mencius+ & \verb+\LMencius+ & \verb+\SMencius+\\
-\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
+ First & Next & Long & Short \\\midrule
+ \cmd{\Adams} & \cmd{\Adams} & \cmd{\LAdams} & \cmd{\SAdams}\\
+ \Adams & \Adams & \LAdams & \SAdams\\
+ \rowcolor{grey}\cmd{\SDJR} & \cmd{\SDJR} & \cmd{\LSDJR} & \cmd{\SSDJR}\\
+ \rowcolor{grey}\SDJR & \SDJR & \LSDJR & \SSDJR\\
+ \cmd{\HAR} & \cmd{\HAR} & \cmd{\LHAR} & \cmd{\SHAR}\\
+ \HAR & \HAR & \LHAR & \SHAR\\
+ \rowcolor{grey}\cmd{\Mencius} & \cmd{\Mencius} & \cmd{\LMencius} & \cmd{\SMencius}\\
+ \rowcolor{grey}\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
\end{tabular}
-\end{center}\bigskip
+\end{center}
-Debugging tests:
+\begin{itemize}\small
+ \item Punctuation detection works: \ForceName\LSDJR. Also \LSDJR. Then \ForceName\SDJR. Now \SDJR. (We used \cmd{\ForceName} for formatting.)
+ \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Just \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
+ \item \cmd{\RevComma}\cmd{\LAdams} yields \RevComma\LAdams. All the reversing macros work.
+ \item \cmd{\ForceName}\cmd{\ForceFN}\cmd{\SHAR} produces \ForceName\ForceFN\SHAR. \cmd{\ForceFN}\cmd{\SHAR} produces \ForceFN\SHAR. If we add \cmd{\CapThis} we get \CapThis\ForceName\ForceFN\SHAR\ and \CapThis\ForceFN\SHAR.
+ \item One must include all the macros in the name arguments.
+\end{itemize}
+\makeatletter\@nameauth@AKAFormattrue\makeatother
+With the \texttt{formatAKA} option we refer to \Mencius\ as \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke} and \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}:
\begin{quote}\small
-\StartNum
+\ContinueNum
\begin{verbatim}
-\ShowPattern[John]{\noexpand\textSC{Adams}}
-\ShowPattern[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}
-\ShowPattern{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}}
-\ShowPattern{\noexpand\textSC{Mencius}}
-\ShowIdxPageref[John]{\noexpand\textSC{Adams}}
-\ShowIdxPageref[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}
-\ShowIdxPageref{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}}
-\ShowIdxPageref{\noexpand\textSC{Mencius}}
+\PretagName{\noexpand\textSC{Meng}, Ke}{Meng Ke}
+\AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}
\end{verbatim}
\end{quote}
-
-\begin{center}
-\footnotesize\begin{tabular}{ll}\toprule
-First & \verb+\ShowPattern+ \\\midrule
-\ForgetThis\Adams & \ShowPattern[John]{\noexpand\textSC{Adams}}\\
-\ForgetThis\SDJR & \ShowPattern[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}\\
-\ForgetThis\HAR & \ShowPattern{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}}\\
-\ForgetThis\Mencius & \ShowPattern{\noexpand\textSC{Mencius}}\\\bottomrule
-\end{tabular}\bigskip
-
-\begin{tabular}{llll}\toprule
-First & \verb+\ShowIdxPageref+ & \verb+\ShowIdxPageref*+\\\midrule
-\ForgetThis\Adams & \ShowIdxPageref[John]{\noexpand\textSC{Adams}} & \ShowIdxPageref*[John]{\noexpand\textSC{Adams}}\\
-\ForgetThis\SDJR & \ShowIdxPageref[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.} & \ShowIdxPageref*[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}\\
-\ForgetThis\HAR & \ShowIdxPageref{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}} & \ShowIdxPageref*{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}} \\
-\ForgetThis\Mencius & \ShowIdxPageref{\noexpand\textSC{Mencius}} & \ShowIdxPageref*{\noexpand\textSC{Mencius}}\\\bottomrule
-\end{tabular}
-\end{center}
-
-\newpage
+\makeatletter\@nameauth@AKAFormatfalse\makeatother
+\endgroup
\begin{center}\bfseries Rolling Your Own: Basic\end{center}
+\phantomsection
+\begingroup
+Here we set out on the path to custom formatting by using package features that have been implemented already. When redesigning formatting hooks, we recommend using \cmd{\AltFormatActive} or the \texttt{altformat} option to enable alternate formatting and prevent \cmd{\CapThis} from breaking custom formatting macros.
-\noindent When redesigning formatting hooks, one often uses \verb+\AltFormatActive+ or the \texttt{altformat} option to enable alternate formatting and prevent \verb+\CapThis+ from breaking custom formatting macros.
+We recommend examining the internal package flag \cmd{\@nameauth@DoAlt}, which activates alternate formatting, \cmd{\@nameauth@DoCaps}, which handles capitalization, and finally \cmd{\@nameauth@InHook}, which is true when the formatting hooks are called. If you create your own macros, they will look similar.
-We recommend examining the internal package flag \verb+\@nameauth@DoAlt+, which activates alternate formatting, \verb+\@nameauth@DoCaps+, which handles capitalization, and \verb+\@nameauth@InHook+, which is true when the formatting hooks are called. Custom macros tend to look like:
+Normally we define a macro for use in name arguments in the document preamble in order to ensure that it is always defined:
\begin{quote}\small
\StartNum
\begin{verbatim}
@@ -925,7 +1007,7 @@ We recommend examining the internal package flag \verb+\@nameauth@DoAlt+, which
}
\makeatother
-Since \verb+\AltCaps+ is part of \textsf{nameauth}, you need not reinvent that wheel. Just use it. The final step is redefining the hooks, which can be as simple as:
+Since \cmd{\AltCaps} is part of \textsf{nameauth}, you need not reinvent that wheel. Just use it. The final step is redefining the hooks, which can be as simple as:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
@@ -933,87 +1015,91 @@ Since \verb+\AltCaps+ is part of \textsf{nameauth}, you need not reinvent that w
\let\FrontNameHook\MainNameHook
\end{verbatim}
\end{quote}
+\renewcommand*\MainNameHook{\AltOff}
+\let\FrontNameHook\MainNameHook
-When sorting names, be sure to use \verb+\noexpand+ before the control sequences in the macro arguments so they expand at the proper time:
+When sorting names, be sure to use \cmd{\noexpand} as shown previously:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
-\PretagName[Pierre-Jean]%
- {\noexpand\Fbox{\noexpand\AltCaps{d}e Smet}}%
- {de Smet, Pierre-Jean}
-
\begin{nameauth}
\< deSmet & Pierre-Jean &
- \noexpand\Fbox{\noexpand\AltCaps{d}e Smet} & >
+ \noexpand\Fbox{\noexpand\AltCaps{d}e~Smet} & >
\end{nameauth}
+
+\PretagName[Pierre-Jean]%
+ {\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}%
+ {de~Smet, Pierre-Jean}
\end{verbatim}
\end{quote}
Now we show how the formatting hooks work in the body text. One can check the index to see that it is formatted properly and consistently.
-\begin{center}\footnotesize
-\begin{tabular}{llll}\toprule
-First & Next & Long & Short \\\midrule
-\verb+\deSmet+ & \verb+\deSmet+ & \verb+\LdeSmet+ & \verb+\SdeSmet+\\
-\deSmet & \deSmet & \LdeSmet & \SdeSmet\\
-& \verb+\CapThis+ & \verb+\ForceName+ & \\
-& \CapThis\deSmet & \ForceName\LdeSmet & \\\bottomrule
+\begin{center}\small
+\begin{tabular}{rll}\toprule
+ First & \cmd{\deSmet} & \deSmet\\
+ \rowcolor{grey}Next & \cmd{\deSmet} & \deSmet\\
+ Long & \cmd{\LdeSmet} & \LdeSmet\\
+ \rowcolor{grey}Short & \cmd{\SdeSmet} & \SdeSmet\\
+ & \cmd{\CapThis}\cmd{\deSmet} & \CapThis\deSmet\\
+ \rowcolor{grey} & \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet} & \ForceName\CapThis\deSmet\\\bottomrule
\end{tabular}
-\end{center}\smallskip
-\newpage
+\end{center}
-\begin{center}\bfseries Rolling Your Own: Intermediate\end{center}
+With \cmd{\CapThis}\cmd{\deSmet}: \CapThis\deSmet. \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet}: \ForceName\CapThis\deSmet.\medskip
-\noindent We begin by defining a name composed only of macros:
+Some formatting, such as the use of \cmd{\textSC}, is fairly standard. Other formatting, such as \cmd{\Fbox} above, is ornamental and may be handled better with custom features, but those features appear only in the text.
+\endgroup
+
+\begin{center}\bfseries Rolling Your Own: Intermediate\end{center}
+\phantomsection
\begingroup
-\newif\ifSpecialFN
-\newif\ifSpecialSN
-\newif\ifRevertSN
-\newcommand*\WM{\ifSpecialFN Wm.\else William\fi}
-\newcommand*\SHK{\ifRevertSN \textSC{Shakespeare}\else
- \ifSpecialSN \noexpand\AltCaps{t}he Bard\else
- \textSC{Shakespeare}\fi\fi}
-\newcommand*\Revert{\RevertSNtrue}
+``Intermediate'' and ``advanced'' refer to the way that formatting hooks were designed before version 3.1. The user-accessible \cmd{\NameParser} builds a printed name from the internal, locally-scoped macros \cmd{\FNN}, \cmd{\SNN}, \cmd{\rootb} and \cmd{\suffb}.
+
+We create a hook that can ignore the output of \cmd{\@nameauth@Name}, which is the \texttt{\#1} in the hook dispatcher's code \cmd{\bgroup}\meta{Hook}\texttt{\{\#1\}}\cmd{\egroup}:
+\begin{quote}\small
+ \cmd{\renewcommand*}\meta{FirstHook}\texttt{[1]\{\dots}\cmd{\NameParser}\texttt{\dots\}}
+\end{quote}
+
+With the \texttt{altformat} option or \cmd{\AltFormatActive} we can design a subsequent-use hook that deactivates formatting inside of it:
+\begin{quote}\small
+ \cmd{\renewcommand*}\meta{SubsequentHook}\texttt{[1]\{\dots}\cmd{\AltOff}\cmd{\NameParser}\texttt{\dots\}}
+\end{quote}
+
+If we used \cmd{\AltFormatActive*}, where the formatting macros are enabled, but deactivated, then we might want a hook that activates the macros:
+\begin{quote}\small
+ \cmd{\renewcommand*}\meta{Hook}\texttt{[1]\{\dots}\cmd{\AltOn}\cmd{\NameParser}\texttt{\dots\}}
+\end{quote}
+
\makeatletter
\renewcommand*\NamesFormat[1]{%
- \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%
- \unless\ifinner\marginpar{%
- \footnotesize\raggedleft%
- \@nameauth@FullNametrue%
- \@nameauth@FirstNamefalse%
- \@nameauth@EastFNfalse%
- \SpecialFNtrue\SpecialSNfalse%
- \NameParser}%
- \fi\global\RevertSNfalse}
+ \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%
+ \unless\ifinner\marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNametrue%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNtrue\SpecialSNfalse%
+ \NameParser}%
+ \fi\global\RevertSNfalse}
\renewcommand*\MainNameHook[1]{%
- \AltOff\SpecialFNfalse\SpecialSNtrue#1%
- \unless\ifinner
- \unless\ifRevertSN
- \marginpar{%
- \footnotesize\raggedleft%
- \@nameauth@FullNamefalse%
- \@nameauth@FirstNamefalse%
- \@nameauth@EastFNfalse%
- \SpecialFNfalse\SpecialSNfalse%
- \NameParser}%
- \fi
- \fi\global\RevertSNfalse}
+ \AltOff\SpecialFNfalse\SpecialSNtrue#1%
+ \unless\ifinner
+ \unless\ifRevertSN
+ \marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNamefalse%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNfalse\SpecialSNfalse%
+ \NameParser}%
+ \fi
+ \fi\global\RevertSNfalse}
\makeatother
+We begin in the document preamble by defining a series of conditionals and macros whose default expansion produces the index entry, yet whose other expansions occur only in the formatting hooks. Then we create a name that is composed only of macros, using \cmd{\noexpand} with \cmd{\WM} and \cmd{\SHK}. We use \cmd{\PretagName} to sort the names. \cmd{\Revert} is used to print a last name without a margin note.
\begin{quote}\small
\StartNum
\begin{verbatim}
-\begin{nameauth}
- \< Shak & \noexpand\WM & \noexpand\SHK & >
-\end{nameauth}
-\PretagName[\noexpand\WM]{\noexpand\SHK}{Shakespeare, William}
-\PretagName[Robert]{\textSC{Burns}}{Burns, Robert}
-\end{verbatim}
-\end{quote}
-
-Now we define the flags by which the macros \verb+\WM+ and \verb+\SHK+ can change inside of the formatting macros, and the different values the macros can have:
-\begin{quote}\small
-\ContinueNum
-\begin{verbatim}
\newif\ifSpecialFN
\newif\ifSpecialSN
\newif\ifRevertSN
@@ -1021,92 +1107,91 @@ Now we define the flags by which the macros \verb+\WM+ and \verb+\SHK+ can chang
\newcommand*\SHK{\ifRevertSN \textSC{Shakespeare}\else
\ifSpecialSN \noexpand\AltCaps{t}he Bard\else
\textSC{Shakespeare}\fi\fi}
-\newcommand\Revert{\RevertSNtrue}
-\makeatletter
+\newcommand*\Revert{\RevertSNtrue}
+
+\begin{nameauth}
+ \< Shak & \noexpand\WM & \noexpand\SHK & >
+\end{nameauth}
+
+\PretagName[\noexpand\WM]{\noexpand\SHK}{Shakespeare, William}
+\PretagName[Robert]{\textSC{Burns}}{Burns, Robert}
\end{verbatim}
\end{quote}
-Finally, we define the formatting hooks that execute these changes:
+Below we define the two formatting hooks that structure the ways in which these macros can expand when printed in the text. \cmd{\NamesFormat} allows only the canonical name via \cmd{\RevertSNfalse}, \cmd{\SpecialFNfalse}, and \cmd{\SpecialSNfalse}. We print the canonical name in the body text. If allowed, we print a margin paragraph with an alternate full name using \cmd{\NameParser} and two flags. Both hooks set \cmd{\RevertSNfalse} so that \cmd{\Revert} works on a per-name basis. The subsequent-use hook disables formatting with \cmd{\AltOff}, but it allows variant forms.
+
\begin{quote}\small
\ContinueNum
\begin{verbatim}
+\makeatletter
\renewcommand*\NamesFormat[1]{%
- \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%
- \unless\ifinner\marginpar{%
- \footnotesize\raggedleft%
- \@nameauth@FullNametrue%
- \@nameauth@FirstNamefalse%
- \@nameauth@EastFNfalse%
- \SpecialFNtrue\SpecialSNfalse%
- \NameParser}%
- \fi\global\RevertSNfalse}
-\end{verbatim}
-
-\begin{verbatim}
+ \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%
+ \unless\ifinner\marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNametrue%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNtrue\SpecialSNfalse%
+ \NameParser}%
+ \fi\global\RevertSNfalse}
\renewcommand*\MainNameHook[1]{%
- \AltOff\SpecialFNfalse\SpecialSNtrue#1%
- \unless\ifinner
- \unless\ifRevertSN
- \marginpar{%
- \footnotesize\raggedleft%
- \@nameauth@FullNamefalse%
- \@nameauth@FirstNamefalse%
- \@nameauth@EastFNfalse%
- \SpecialFNfalse\SpecialSNfalse%
- \NameParser}%
- \fi
- \fi\global\RevertSNfalse}
+ \AltOff\SpecialFNfalse\SpecialSNtrue#1%
+ \unless\ifinner
+ \unless\ifRevertSN
+ \marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNamefalse%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNfalse\SpecialSNfalse%
+ \NameParser}%
+ \fi
+ \fi\global\RevertSNfalse}
\makeatother
\end{verbatim}
\smallskip
-\Shak\ (\verb+\Shak+) is the national poet of England in much the same way as \Name[Robert]{\textSC{Burns}} (\verb+\Name[Robert]{\textSC{Burns}}+) is that of Scotland. With the latter's rise of influence in the 1800s, \Revert\Shak\ (\verb+\Revert+\verb+\Shak+) became known as ``\Shak'' (\verb+\Shak+).
+\Shak\ \cmd{\Shak} is the national poet of England in much the same way that \Name[Robert]{\textSC{Burns}} \cmd{\Name[Robert]\{}\cmd{\textSC\{Burns\}\}} is that of Scotland. With the latter's rise of influence in the 1800s, \Revert\Shak\ \cmd{\Revert}\cmd{\Shak} became known as ``\Shak'' \cmd{\Shak}.
\end{quote}
\endgroup
-First, we establish macros \verb+\WM+ and \verb+\SHK+ in name arguments using \verb+\noexpand+. That will make the index work properly. We use \verb+\PretagName+ to sort the names. Since we need to make some name decisions, we set up three Boolean values. One is for \verb+\WM+ and two are for variations within \verb+\SHK+. The macro \verb+\Revert+ is used to print a canonical last name without a margin note.
-
-In the first-use hook above, we prevent any form except the canonical name via \verb+\RevertSNfalse\SpecialFNfalse\SpecialSNfalse+. The default global state is set by \verb+\AltFormatActive+, so we do not need to modify that. We then print the canonical name in the body text. If not in inner horizontal mode, we print a margin paragraph containing a full name. Yet with \verb+\NameParser+ we print a special form of the personal name with the canonical form of the surname. Both hooks globally set \verb+\RevertSNfalse+ because we want \verb+\Revert+ used on a per-name basis.
-
-The subsequent-use hook uses \verb+\AltOff+ to disable formatting within the hook. Here we do not allow special forenames but we do select special surname forms. Thus, ``the Bard'' will be selected instead of ``Shakespeare''. Yet if we call \verb+\Revert+, we get ``Shakespeare'' in the text, but no margin note.
-\newpage
-
\begin{center}\bfseries Rolling Your Own: Advanced\end{center}
-
-\newif\ifFbox
-\newif\ifFirstCap
-\newif\ifInHook
-\Fboxtrue
-We create three flags. We set \texttt{\textbackslash ifFbox} true; it replaces \texttt{\textbackslash @nameauth@DoAlt}. \texttt{\textbackslash ifFirstCap} replaces \texttt{\textbackslash @nameauth@DoCaps}, which is set by \verb+\CapThis+. The flag \texttt{\textbackslash ifInHook} replaces \texttt{\textbackslash @nameauth@InHook}, which normally is enabled by the internal format hook dispatcher.
+\phantomsection
+\begingroup
+Here is how formatting hooks were designed before version 3.0. Updating older hooks may be helpful, but is not necessary. We do not use the internal package macros. We only use \cmd{\NameParser} in the hooks to produce output. We still recommend using \cmd{\AltFormatActive} to mitigate errors. In the preamble, three flags replace package internals.\footnote{The internal flag \texttt{\textbackslash @nameauth@DoAlt} activates formatting, \cmd{\CapThis} sets \texttt{\textbackslash @nameauth@DoCaps} true, and \texttt{\textbackslash @nameauth@InHook} is set by the hook dispatcher.}
+Setting \texttt{\textbackslash Fboxtrue} is equivalent to using \cmd{\AltFormatActive}:
\begin{quote}\small
\StartNum
\begin{verbatim}
-\newif\ifFbox
-\newif\ifFirstCap
-\newif\ifInHook
+\newif\ifFbox% Replaces \@nameauth@DoAlt
+\newif\ifFirstCap% Replaces \@nameauth@DoCaps
+\newif\ifInHook% Replaces \@nameauth@InHook
\Fboxtrue
\end{verbatim}
\end{quote}
-\renewcommand*\Fbox[1]{\ifFbox\protect\fbox{#1}\else#1\fi}
-The formatting macro is like what we have seen, except it refers to \texttt{\textbackslash ifFbox}:
+\newcommand*\Fbox[1]{\ifFbox\protect\fbox{#1}\else#1\fi}
+Also in the preamble, the formatting macro is like what we have seen, except it refers to \texttt{\textbackslash ifFbox}:\footnote{We define \cmd{\Fbox} locally because it has multiple definitions, but are very careful where we use names with it.}
\begin{quote}\small
\ContinueNum
\begin{verbatim}
-\renewcommand*\Fbox[1]{%
+\newcommand*\Fbox[1]{%
\ifFbox\protect\fbox{#1}\else#1\fi
}
\end{verbatim}
\end{quote}
-\renewcommand*\AltCaps[1]{\ifInHook
- \ifFirstCap\MakeUppercase{#1}\else#1\fi
- \else
- #1\fi}
-Our new \verb+\AltCaps+ works like the built-in version, except it does not use the internal macros and flags:
-\begin{quote}\small
-\ContinueNum
-\begin{verbatim}
+\renewcommand*\AltCaps[1]{%
+ \ifInHook
+ \ifFirstCap\MakeUppercase{#1}\else#1\fi
+ \else
+ #1%
+ \fi
+}
+Our new \cmd{\AltCaps} works like the built-in version, except it does not use the internal macros and flags:
+ \begin{quote}\small
+ \ContinueNum
+ \begin{verbatim}
\renewcommand*\AltCaps[1]{%
\ifInHook
\ifFirstCap\MakeUppercase{#1}\else#1\fi
@@ -1119,12 +1204,12 @@ Our new \verb+\AltCaps+ works like the built-in version, except it does not use
\renewcommand*\CapThis{\FirstCaptrue}
\renewcommand*\NamesFormat[1]
-{\InHooktrue\NameParser\global\FirstCapfalse}
+ {\InHooktrue\NameParser\global\FirstCapfalse}
\renewcommand*\MainNameHook[1]
-{\Fboxfalse\InHooktrue\NameParser\global\FirstCapfalse}
+ {\Fboxfalse\InHooktrue\NameParser\global\FirstCapfalse}
\let\FrontNamesFormat\Namesformat
\let\FrontNameHook\MainNameHook
-Here we redefine \verb+\CapThis+ to use our flag instead of the internal flag:
+Here we redefine \cmd{\CapThis} to use our flag instead of the internal flag:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
@@ -1132,27 +1217,21 @@ Here we redefine \verb+\CapThis+ to use our flag instead of the internal flag:
\end{verbatim}
\end{quote}
-We have to reproduce the logic and macros that the package would have provided. That means defining everything, including \verb+\NamesFormat+, from scratch:
+We have to reproduce the logic and macros that the package would have provided. That means defining everything, including \cmd{\NamesFormat}, from scratch:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
\renewcommand*\NamesFormat[1]
-{%
- \InHooktrue\NameParser%
- \global\FirstCapfalse%
-}
+ {\InHooktrue\NameParser\global\FirstCapfalse}
\end{verbatim}
\end{quote}
-Changes to \texttt{\textbackslash ifInHook} (default false) and \texttt{\textbackslash ifFbox} (default true) are local to the scope in which the hook macros are called. \texttt{\textbackslash ifFirstCap} must be \verb+\global+ in order to work correctly. Instead of using just \verb+\AltOff+ before \verb+\NameParser+ below, we have mimic the functions of the internal flags:
+Changes to \texttt{\textbackslash ifInHook} (default false) and \texttt{\textbackslash ifFbox} (default true) are local to the scope in which the hook macros are called. \texttt{\textbackslash ifFirstCap} must be set globally. Below we reproduce the logic of \cmd{\AltOff} before \cmd{\NameParser}:
\begin{quote}\small
\ContinueNum
\begin{verbatim}
\renewcommand*\MainNameHook[1]
-{%
- \Fboxfalse\InHooktrue\NameParser%
- \global\FirstCapfalse%
-}
+{\Fboxfalse\InHooktrue\NameParser\global\FirstCapfalse}
\end{verbatim}
\end{quote}
@@ -1165,127 +1244,102 @@ We avoid spurious index entries in the front matter by using the same hooks.
\end{verbatim}
\end{quote}
-Because we use \verb+\noexpand+, our ``old-style'' macros will index the name below under the same entry as the ``new-style'' macros.
-\begin{center}\footnotesize
-\begin{tabular}{llll}\toprule
-First & Next & Long & Short \\\midrule
-\verb+\deSmet+ & \verb+\deSmet+ & \verb+\LdeSmet+ & \verb+\SdeSmet+\\
-\ForgetThis\deSmet & \deSmet & \LdeSmet & \SdeSmet\\
-& \verb+\CapThis+ & \verb+\ForceName+ & \\
-& \CapThis\deSmet & \ForceName\LdeSmet & \\\bottomrule
+Because we use \cmd{\noexpand}, our ``old-style'' macros will index the following names under the same entry as the ``new-style'' macros.
+\begin{center}\small
+\begin{tabular}{rll}\toprule
+ First & \cmd{\deSmet} & \ForgetThis\deSmet\\
+ \rowcolor{grey}Next & \cmd{\deSmet} & \deSmet\\
+ Long & \cmd{\LdeSmet} & \LdeSmet\\
+ \rowcolor{grey}Short & \cmd{\SdeSmet} & \SdeSmet\\
+ & \cmd{\CapThis}\cmd{\deSmet} & \CapThis\deSmet\\
+ \rowcolor{grey} & \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet} & \ForceName\CapThis\deSmet\\\bottomrule
\end{tabular}
-\end{center}\smallskip
+\end{center}
-We can reuse new-style names (above) with old-style macros when needed. We reinstate alternate formatting:
-\AltFormatActive
+With \cmd{\CapThis}\cmd{\deSmet}: \CapThis\deSmet. \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet}: \ForceName\CapThis\deSmet.\medskip
-\newif\ifCaps
-\Capstrue
-\begin{quote}\small
-\StartNum
-\begin{verbatim}
-\newif\ifFCaps
-\newif\ifFirstCap
-\newif\ifInHook
+We can reuse new-style names with old-style macros, shown below in abbreviated fashion. We keep the flags \texttt{\textbackslash ifFirstCap} and \texttt{\textbackslash ifInHook}. We also keep the redefined \cmd{\AltCaps}, \cmd{\CapThis}, and \cmd{\NamesFormat}. We then add:
\Capstrue
-\end{verbatim}
-\end{quote}
-
-We redefine the other macros:
\renewcommand*\textSC[1]{%
\ifCaps\textsc{#1}\else#1\fi
}
-\renewcommand*\AltCaps[1]{%
- \ifInHook
- \ifFirstCap\MakeUppercase{#1}\else#1\fi
- \else
- #1%
- \fi
-}
-\renewcommand\CapThis{\FirstCaptrue}
-\renewcommand*\NamesFormat[1]
-{%
- \InHooktrue\NameParser\InHookfalse%
- \global\FirstCapfalse%
-}
\renewcommand*\MainNameHook[1]
{%
- \Capsfalse\InHooktrue\NameParser\InHookfalse%
- \global\FirstCapfalse\Capstrue%
+ \Capsfalse\InHooktrue\NameParser%
+ \global\FirstCapfalse%
}
-\let\FrontNamesFormat\Namesformat
\let\FrontNameHook\MainNameHook
\begin{quote}\small
-\ContinueNum
+\StartNum
\begin{verbatim}
+\newif\ifCaps
+\Capstrue
\renewcommand*\textSC[1]{%
\ifCaps\textsc{#1}\else#1\fi
}
-
-\renewcommand*\AltCaps[1]{%
- \ifInHook
- \ifFirstCap\MakeUppercase{#1}\else#1\fi
- \else
- #1%
- \fi
-}
-
-\renewcommand\CapThis{\FirstCaptrue}
-
-\renewcommand*\NamesFormat[1]
-{%
- \InHooktrue\NameParser\InHookfalse%
- \global\FirstCapfalse%
-}
-
\renewcommand*\MainNameHook[1]
{%
- \Capsfalse\InHooktrue\NameParser\InHookfalse%
- \global\FirstCapfalse\Capstrue%
+ \Capsfalse\InHooktrue\NameParser%
+ \global\FirstCapfalse%
}
-
-\let\FrontNamesFormat\Namesformat
\let\FrontNameHook\MainNameHook
\end{verbatim}
\end{quote}
-The names below have the same declarations and index entries as they did above. They look and work the same but use different macros.
+The names below have the same declarations and index entries as they did above. They look and work the same but use different back-end macros:
\begin{center}
\small\noindent\begin{tabular}{llll}\toprule
-First & Next & Long & Short \\\midrule
-\ForgetThis\Adams & \Adams & \LAdams & \SAdams\\
-\ForgetThis\SDJR & \SDJR & \LSDJR & \SSDJR\\
-\ForgetThis\HAR & \HAR & \LHAR & \SHAR\\
-\ForgetThis\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
+ First & Next & Long & Short \\\midrule
+ \ForgetThis\Adams & \Adams & \LAdams & \SAdams\\
+ \rowcolor{grey}\ForgetThis\SDJR & \SDJR & \LSDJR & \SSDJR\\
+ \ForgetThis\HAR & \HAR & \LHAR & \SHAR\\
+ \rowcolor{grey}\ForgetThis\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
\end{tabular}
\end{center}
-\section{Feature Redesign}
+\begin{itemize}\small
+ \item Punctuation detection works: \ForceName\LSDJR. Also \LSDJR. Then \ForceName\SDJR. Now \SDJR. (We used \cmd{\ForceName} for formatting.)
+ \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Just \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
+ \item \cmd{\RevComma}\cmd{\LAdams} yields \RevComma\LAdams. All the reversing macros work.
+ \item \cmd{\ForceName}\cmd{\ForceFN}\cmd{\SHAR} produces \ForceName\ForceFN\SHAR. \cmd{\ForceFN}\cmd{\SHAR} produces \ForceFN\SHAR. If we add \cmd{\CapThis} we get \CapThis\ForceName\ForceFN\SHAR\ and \CapThis\ForceFN\SHAR.
+\end{itemize}
+
+We now close the scope of this current example and resume normal formatting.
+\endgroup
+\AltFormatInactive
+\newpage
+
+\section{Customization}
+Assuming that redefining hooks and adding control sequences is insufficient, one could redesign the core name macros partially or wholly, then hook those modifications into the \textsf{nameauth} package without needing to patch the style file itself.
+
+All these macros are set by default to \cmd{\@nameauth@Name}, the internal name parser. \cmd{\Name}, or an unmodified shorthand, calls \cmd{\NameauthName}. \cmd{\Name*}, or an L-shorthand, sets \cmd{\@nameauth@FullNametrue}, then calls \cmd{\NameauthLName}. \cmd{\FName}, or an S-shorthand, sets \cmd{\@nameauth@FirstNametrue}, then calls \cmd{\NameauthFName}. One should not modify \cmd{\Name} and \cmd{\FName} directly.
+
+We use features of \textsf{xargs}. Below we introduce formatting that is additional to, inter-operative with, yet distinct from the formatting hooks:
\begin{quote}\small
\StartNum
\begin{verbatim}
\makeatletter
\newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%
- \@nameauth@toksa\expandafter{#1}%
- \@nameauth@toksb\expandafter{#2}%
- \@nameauth@toksc\expandafter{#3}%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
\hbox to 4em{Normal: \hfill}%
- \fbox{\@nameauth@Name[#1]{#2}[#3]}%
+ \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
}
\newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%
- \@nameauth@toksa\expandafter{#1}%
- \@nameauth@toksb\expandafter{#2}%
- \@nameauth@toksc\expandafter{#3}%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
\hbox to 4em{Long: \hfill}%
- \fbox{\@nameauth@Name[#1]{#2}[#3]}%
+ \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
}
\newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%
- \@nameauth@toksa\expandafter{#1}%
- \@nameauth@toksb\expandafter{#2}%
- \@nameauth@toksc\expandafter{#3}%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
\hbox to 4em{Short: \hfill}%
- \fbox{\@nameauth@Name[#1]{#2}[#3]}%
+ \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
}
\makeatother
\renewcommand*\NamesFormat[1]
@@ -1295,50 +1349,50 @@ First & Next & Long & Short \\\midrule
\renewcommand*\NameauthLName{\MyLName}
\renewcommand*\NameauthFName{\MyFName}
\end{verbatim}
+
\makeatletter
\newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%
- \@nameauth@toksa\expandafter{#1}%
- \@nameauth@toksb\expandafter{#2}%
- \@nameauth@toksc\expandafter{#3}%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
\hbox to 4em{Normal: \hfill}%
- \fbox{\@nameauth@Name[#1]{#2}[#3]}%
+ \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
}
\newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%
- \@nameauth@toksa\expandafter{#1}%
- \@nameauth@toksb\expandafter{#2}%
- \@nameauth@toksc\expandafter{#3}%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
\hbox to 4em{Long: \hfill}%
- \fbox{\@nameauth@Name[#1]{#2}[#3]}%
+ \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
}
\newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%
- \@nameauth@toksa\expandafter{#1}%
- \@nameauth@toksb\expandafter{#2}%
- \@nameauth@toksc\expandafter{#3}%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
\hbox to 4em{Short: \hfill}%
- \fbox{\@nameauth@Name[#1]{#2}[#3]}%
+ \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
}
\makeatother
-\renewcommand*\NamesFormat[1]
- {\hbox to 9em{\hfil\scshape#1\hfil}}
+\renewcommand*\NamesFormat[1]{\hbox to 9em{\hfil\scshape#1\hfil}}
\renewcommand*\MainNameHook[1]{\hbox to 9em{\hfil#1\hfil}}
-\renewcommand*\NameauthName{\MyName}
-\renewcommand*\NameauthLName{\MyLName}
+\renewcommand*\NameauthName{\MyName}%
+\renewcommand*\NameauthLName{\MyLName}%
\renewcommand*\NameauthFName{\MyFName}
\smallskip
-\verb+\ForgetName[Adolf]{Harnack}+\ForgetName[Adolf]{Harnack}\\[1ex]
+\cmd{\ForgetName[Adolf]\{Harnack\}}\ForgetName[Adolf]{Harnack}\\[1ex]
\begin{tabular}{@{}rl}
-\verb+\Harnack+ & \Harnack\\
-\verb+\LHarnack[Adolf von]+ & \LHarnack[Adolf von]\\
-\verb+\Harnack+ & \Harnack\\
-\verb+\SHarnack+ & \SHarnack\\
+ \cmd{\Harnack} & \Harnack\\
+ \cmd{\LHarnack[Adolf von]} & \LHarnack[Adolf von]\\
+ \cmd{\Harnack} & \Harnack\\
+ \cmd{\SHarnack} & \SHarnack\\
\end{tabular}
\end{quote}
\newpage
\section{\protect\LaTeX\ Engines}
-We use \texttt{american} for the language; one should use one's own. We use Latin Modern. We load \textsf{tikz} only in pdf mode to avoid crashing some DVI viewers.
+We use \texttt{american} for the language; one should use one's own. We use Latin Modern. We could load \textsf{tikz} using \texttt{\textbackslash ifDoTikZ} to avoid crashing some \texttt{dvi} viewers in a \texttt{dvi}-only workflow.
\begin{quote}\small
\StartNum
@@ -1349,14 +1403,14 @@ We use \texttt{american} for the language; one should use one's own. We use Lati
\usepackage{ifluatex}
\usepackage{ifpdf}
\fi
-% Used to create both dvi and pdf output
-\newif\ifDoTikZ % Perhaps not needed
+
+\newif\ifDoTikZ % If dvi-only workflow
\ifxetex
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{american} % Use own language
\usepackage{tikz}
- \DoTikZtrue % Perhaps not needed
+ \DoTikZtrue % If dvi-only workflow
\else
\ifluatex
\ifpdf
@@ -1364,7 +1418,7 @@ We use \texttt{american} for the language; one should use one's own. We use Lati
\usepackage{polyglossia}
\setdefaultlanguage{american} % Use own language
\usepackage{tikz}
- \DoTikZtrue % Perhaps not needed
+ \DoTikZtrue % If dvi-only workflow
\else
\IfFileExists{utf8-2018.def}{}
{\usepackage[utf8]{inputenc}}
@@ -1379,23 +1433,32 @@ We use \texttt{american} for the language; one should use one's own. We use Lati
\usepackage[TS1,T1]{fontenc}
\usepackage[american]{babel} % Use own language
\usepackage{lmodern}
- \ifpdf % Perhaps not needed
- \usepackage{tikz}
- \DoTikZtrue % Perhaps not needed
+ \ifpdf
+ \usepackage{tikz} % If dvi-only workflow
+ \DoTikZtrue % If dvi-only workflow
\fi
\fi
\fi
\end{verbatim}
\end{quote}
-In the body text we can use something like the test below for \fbox{\ifDoTikZ doing \texttt{pdf} things\else doing \texttt{dvi} things\fi}
+\newpage
+
+In the body text we can use something like the test below for:
+
+\begin{center}\fbox{\ifxetex doing \texttt{pdf} things\else \ifpdf doing \texttt{pdf} things\else doing \texttt{dvi} things\fi\fi}\end{center}
+
\begin{quote}\small
\begin{verbatim}
-\ifDoTikZ
- doing \texttt{pdf} things\else
- doing \texttt{dvi} things\fi
-\end{verbatim}
+\ifxetex
+ doing \texttt{pdf} things
+\else
+ \ifpdf
+ doing \texttt{pdf} things
+ \else
+ doing \texttt{dvi} things
+ \fi
+\fi\end{verbatim}
\end{quote}
-\newpage
The following equivalent conditional statements can help a macro or just the body text to work under multiple engines:
\begin{quote}\small
@@ -1431,9 +1494,15 @@ The following equivalent conditional statements can help a macro or just the bod
\fi
\end{verbatim}
\end{quote}
-
-\def\indexname{\hypertarget{Index}{Index}}
\newpage
+
+\phantomsection
+\addcontentsline{toc}{section}{Index of Persons}
+\printindex[per]
+
+\renewcommand\indexname{Index of Subjects}
+\phantomsection
+\addcontentsline{toc}{section}{Index of Subjects}
\printindex
\end{document}
diff --git a/macros/latex/contrib/nameauth/nameauth.dtx b/macros/latex/contrib/nameauth/nameauth.dtx
index b523a08777..5a9d1ad126 100644
--- a/macros/latex/contrib/nameauth/nameauth.dtx
+++ b/macros/latex/contrib/nameauth/nameauth.dtx
@@ -1,139 +1,179 @@
% \iffalse meta-comment
-% vim: textwidth=75
+%
+% Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+% -------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
%<*internal>
\iffalse
%</internal>
%<*readme>
-|
---------:| ----------------------------------------------------------------
-nameauth:| Name authority mechanism for consistency in text and index
- Author:| Charles P. Schaum
- E-mail:| charles dot schaum@comcast.net
- License:| Released under the LaTeX Project Public License 1.3c or later
- See:| http://www.latex-project.org/lppl.txt
-
-
-Short description:
+%<<readmevb
+# Short Description
-The nameauth package automates the correct formatting and indexing of names
+The `nameauth` package automates the correct formatting and indexing of names
for professional writing. This aids the use of a name authority and the
editing process without needing to retype name references.
-Files Distribution
+# Files
+
+|Filename |Description |
+|--------------|---------------------------------------|
+|`nameauth.dtx`|commented style file; source file |
+|`Makefile` |For use with GNU make; with source file|
+|`nameauth.ins`|installation driver (generated file) |
+|`nameauth.pdf`|Documentation (generated file) |
+|`README.md` |This file (generated file) |
+|`examples.tex`|example macros (generated file) |
+
+# Obtaining the Package
+
+1. Packaged in your current TeX distrbution: See the appropriate documentation.
+
+2. Otherwise, download `nameauth.zip` from [CTAN](www.ctan.org/tex-archive/macros/latex/contrib/nameauth).
+
+3. Unpack `nameauth.zip` in an appropriate directory.
+
+4. Change to the directory containing the `nameauth` files.
+
+# File Generation
-README This file
-nameauth.pdf Documentation
-examples.tex Some longer example macros from the documentation
+## Automatic Installation
-Makefile Automates building with GNU make 3.81
-nameauth.dtx Documented LaTeX file containing both code and documentation
+This method requires GNU `make` on a POSIX-compliant environment, such as GNU/Linux, various BSD flavors, perhaps MacOS (e.g., with various porting systems), and even Cygwin on Windows.
-Manual Installation
+0. A quick install in one's home directory using some of the included files from the `zip` archive just requires the following steps:
-Download the package from
+ tex nameauth.dtx
+ make inst
-www.ctan.org/tex-archive/macros/latex/contrib/nameauth
+Otherwise we use the LaTeX installation on the host machine to build the package. When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
-Unpack nameauth.zip in an appropriate directory.
+1. Type `make distclean release` to generate the release files using `pdflatex`.
-If you have a make utility compatible with GNU make, either in
-GNU/Linux, a BSD variant, OSX, or Cygwin in Windows you can type
+2. To use another TeX engine, type one of the following:
+ make ENGINE=latex
+ make ENGINE=lualatex
+ make ENGINE=dvilualatex
+ make ENGINE=xelatex
- make inst
+3. Type `make inst` to install the files in the user's personal TDS-compliant directory tree.
-to install the package into your $TEXMFHOME tree or
+4. Type `sudo make install` to install the files in the system-wide, local TDS-compliant directory tree.
- make install
+## Manual Compilation
-to install the package into your $TEXMFLOCAL tree for all users.
-The latter requires sudo privileges.
+Otherwise, the following steps are used for manual installation. See the general information at the [TeX FAQ](https://www.texfaq.org/FAQ-installthings).
-Other useful targets include:
+0. To use some of the included files from the `zip` archive and only extract files from the `dtx` file, just do the following step and proceed to installation:
- (release process)
+ tex nameauth.dtx
- make release The default target, same as just ``make''.
+1. To build the package on the host system, generate the installation files and a copy of the documentation without the table of contents and cross-references. We use `pdflatex` by default:
- make clean Removes all intermediate files. Left are
- the files listed above plus nameauth.sty.
+ pdflatex --shell-escape --recorder --interaction=batchmode nameauth.dtx
- make distclean Leave only nameauth.dtx, examples.tex,
- and Makefile.
+2. Generate the TOC and cross-references for the documentation:
- make zip Generate a zip file ready for distribution.
+ pdflatex --recorder --interaction=nonstopmode nameauth.dtx
- (testing process)
+3. Generate the index files using `makeindex`:
- make testing Release files, plus compiles examples.tex.
+ makeindex -q -s gglo.ist -o nameauth.gls nameauth.glo
+ makeindex -q -s gind.ist -o nameauth.ind nameauth.idx
- make release ENGINE=<command>
- Here, <command> can be pdflatex (default),
- xelatex, lualatex, dvilualatex, or latex.
+4. Integrate the glossary (changes) and index into the documentation. The second run updates the TOC:
- make testing ENGINE=<command> See above.
-
-It is not necessary, however, to use GNU make. One can generate
-the package files manually. Since the files nameauth.ins and README.txt
-are contained in the .dtx file itself, the first step is to generate
-the installer driver nameauth.ins, plus the file README.txt, which will
-also trigger the extraction of nameauth.sty and produce the first pass of
-the package documentation nameauth.pdf:
+ pdflatex --recorder --interaction=nonstopmode nameauth.dtx
+ pdflatex --recorder --interaction=nonstopmode nameauth.dtx
- pdflatex -shell-escape -recorder -interaction=batchmode nameauth.dtx
+One can substitute, e.g., `latex`, `xelatex`, `lualatex`, and `dvilualatex` for `pdflatex`, but the documentation may look different in some cases.
-Next one adds a table of contents and all cross-references, this also
-should finalize page numbers for glossary and index input files:
+## File Installation
- pdflatex --recorder --interaction=nonstopmode nameauth.dtx
-
-The next commands generate the glossary/index output files:
-
- makeindex -q -s gglo.ist -o nameauth.gls nameauth.glo
- makeindex -q -s gind.ist -o nameauth.ind nameauth.idx
-
-The final two commands integrate the glossary (changes) and index:
-
- pdflatex --recorder --interaction=nonstopmode nameauth.dtx
- pdflatex --recorder --interaction=nonstopmode nameauth.dtx
+Different TeX distributions have somewhat different ways to store TDS-compliant configuration and package data. See, for example, [MikTeX](https://miktex.org/kb/texmf-roots) and the [TeX FAQ](https://www.texfaq.org/FAQ-privinst). Two approaches below conform generally to a Unix-based system:
-Now one can either keep README.txt or rename it to README, e.g.:
+## User's Home Directory
- mv README.txt README
+`TEXMFHOME` is a variable that points to the root of a TDS-compliant directory tree available to a user. Use `kpsewhich --var-value TEXMFHOME` to obtain its value. Quite often it is equivalent to `$HOME/texmf`. The dollar sign in front of the variable denotes the value of the variable instead of its name. So if `$HOME` is `/home/bob`, then `$TEXMFHOME` would be `/home/bob/texmf`, and we can understand the following paths to be under that directory:
-Normally one creates the following directories for a user:
+|Path |Description |
+|----------------------------------|---------------------------------------|
+|`$TEXMFHOME/source/latex/nameauth`|`ins` and `dtx` files, Makefile |
+|`$TEXMFHOME/tex/latex/nameauth` |`sty` file |
+|`$TEXMFHOME/doc/latex/nameauth` |`pdf` file, `README.md`, `examples.tex`|
- $TEXMFHOME/source/latex/nameauth dtx file
- $TEXMFHOME/tex/latex/nameauth sty file
- $TEXMFHOME/doc/latex/nameauth pdf file, README, examples.tex
-
-and creates the following directories for the local site:
+On older TeX distributions, run `mktexlsr` on $TEXMFHOME to complete the install process.
- $TEXMFLOCAL/source/latex/nameauth dtx file
- $TEXMFLOCAL/tex/latex/nameauth sty file
- $TEXMFLOCAL/doc/latex/nameauth pdf file, README, examples.tex
+## System-Wide Directory
-The above environment variables often are /usr/local/texlive/texmf-local
-and ~/texmf.
+`TEXMFLOCAL` is a variable that points to the root of a TDS-compliant directory tree available to all users on a local site, system-wide installation. Use `kpsewhich --var-value TEXMFLOCAL` to obtain its value. See the [TeX FAQ](https://www.texfaq.org/FAQ-what-TDS). We can understand the following paths to be under that directory:
-The make process normally renames the README.txt file created from the
-dtx file to just README by using mv (move / rename utility in the *nix
-userland). Windows distributions of TeX and LaTeX often keep the txt file
-because of using file extensions instead of ``magic numbers'' to identify
-files.
+|Path |Description |
+|-----------------------------------|---------------------------------------|
+|`$TEXMFLOCAL/source/latex/nameauth`|`ins` and `dtx` files, Makefile |
+|`$TEXMFLOCAL/tex/latex/nameauth` |`sty` file |
+|`$TEXMFLOCAL/doc/latex/nameauth` |`pdf` file, `README.md`, `examples.tex`|
-Run mktexlsr with the appropriate level of permissions to complete the
-install.
+Run `mktexlsr` with the appropriate permissions on `$TEXMFLOCAL` to complete the install process.
-Testing notes:
+# Testing
-See the nameauth manual.
+## Compiling `examples.tex`
-License
+1. Either go to the directory used when unpacking the `zip` file or copy the file `examples.tex` from the `doc/latex/nameauth` branch of whatever TDS-compliant tree to a directory of your choice.
-This material is subject to the LaTeX Project Public License:
-http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+2. If one has access to GNU `make`, use either `Makefile` in the directory where one unpacked the `zip` file or copy `Makefile` from either `src/latex/nameauth` or `doc/latex/nameauth` in whatever TDS-compliant tree it exists.
-Happy TeXing!
+When using `make`, any `dvi` files that are created will also be converted to `pdf` format.
+
+3. To compile the test file using `make` and `pdflatex`, simply type `make testing`.
+
+4. For multi-format testing using `make` in addition to that above, one can do the following:
+
+ make testing ENGINE=pdflatex
+ make testing ENGINE=latex
+ make testing ENGINE=lualatex
+ make testing ENGINE=dvilualatex
+ make testing ENGINE=xelatex
+
+5. If one does not have `make`, one can use the following commands, substituting, e.g., `latex`, `xelatex`, `lualatex`, and `dvilualatex` for `pdflatex`:
+
+ pdflatex --interaction=nonstopmode examples
+ pdflatex --interaction=nonstopmode examples
+ makeindex -o examples.ind examples.idx
+ makeindex -o examples.rnd examples.rdx
+ pdflatex --interaction=nonstopmode examples
+ pdflatex --interaction=nonstopmode examples
+
+The use of different extensions for the index results from using the `index` package to generate a persons index separate from a subject index.
+
+The manual is also a test suite.
+
+# Copyright
+
+Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+-------------------------------------------------------
+
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in:
+
+ [http://www.latex-project.org/lppl.txt](http://www.latex-project.org/lppl.txt)
+
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+%readmevb
%</readme>
%<*internal>
\fi
@@ -146,35 +186,24 @@ Happy TeXing!
\input docstrip.tex
\keepsilent
\askforoverwritefalse
+
\preamble
---------:| ----------------------------------------------------------------
-nameauth:| Name authority mechanism for consistency in text and index
- Author:| Charles P. Schaum
- E-mail:| charles dot schaum@comcast.net
- License:| Released under the LaTeX Project Public License 1.3c or later
- See:| http://www.latex-project.org/lppl.txt
+This is a generated file.
-\endpreamble
-\postamble
+Copyright (C) 2020 by Charles P. Schaum <charles[dot]schaum@comcast.net>
-Copyright (C) 2020 by Charles P. Schaum <charles dot schaum@comcast.net>
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3 of this license
+or (at your option) any later version. The latest version of this
+license is in:
-This work may be distributed and / or modified under the
-conditions of the LaTeX Project Public License (LPPL), either
-version 1.3c of this license or (at your option) any later
-version. The latest version of this license is in the file:
+ http://www.latex-project.org/lppl.txt
-http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX version
+2005/12/01 or later.
-This work is "maintained" (as per LPPL maintenance status) by
-Charles P. Schaum.
-
-This work consists of the files nameauth.dtx, examples.tex, and a Makefile.
-These files generate README.txt / README, nameauth.ins, nameauth.sty, and
-nameauth.pdf, with other intermediate files, as a part of this work. See
-the README.txt or README for more information.
-\endpostamble
+\endpreamble
\usedir{tex/latex/nameauth}
\generate{
@@ -187,10 +216,14 @@ the README.txt or README for more information.
\generate{
\file{\jobname.ins}{\from{\jobname.dtx}{install}}
}
-\nopreamble\nopostamble
\usedir{doc/latex/nameauth}
+\nopostamble
+\generate{
+ \file{examples.tex}{\from{\jobname.dtx}{examples}}
+}
+\nopreamble
\generate{
- \file{README.txt}{\from{\jobname.dtx}{readme}}
+ \file{README.md}{\from{\jobname.dtx}{readme}}
}
\ifx\fmtname\nameofplainTeX
\expandafter\endbatchfile
@@ -204,15 +237,18 @@ the README.txt or README for more information.
%<*driver>
\ProvidesFile{nameauth.dtx}
%</driver>
-%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<package>\ProvidesPackage{nameauth}
%<*package>
- [2020/02/26 3.4 Name authority mechanism for consistency in text and index]
+ [2020/11/23 3.5 Name authority mechanism for consistency in text and index]
%</package>
+%
%<*driver>
\documentclass[11pt]{ltxdoc}
+
%^^A Below we check if our TL distribution has the iftex package and load it.
\IfFileExists{iftex.sty}{\usepackage{iftex}}{}
+
%^^A Only versions of iftex since 2019 have the macro \RequireTUTeX.
%^^A If the package is not loaded or if it is not new,
%^^A we load the older, transitional packages.
@@ -221,14 +257,15 @@ the README.txt or README for more information.
\usepackage{ifluatex}
\usepackage{ifpdf}
\fi
+
+%^^A We include packages depending on the LaTeX engine, mode,
+%^^A and version of TeX being used.
\ifxetex %^^A \ifpdf will not be true, but a pdf results.
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{american}
\setotherlanguage{german}
\newcommand\de[1]{\textgerman{#1}}
- \usepackage{tikz}
- \usepackage{tcolorbox}
\else
\ifluatex
\ifpdf %^^A pdf mode
@@ -237,8 +274,6 @@ the README.txt or README for more information.
\setdefaultlanguage{american}
\setotherlanguage{german}
\newcommand\de[1]{\textgerman{#1}}
- \usepackage{tikz}
- \usepackage{tcolorbox}
\else %^^A dvi mode
\IfFileExists{utf8-2018.def}{}{\usepackage[utf8]{inputenc}}
\usepackage[TS1,T1]{fontenc}
@@ -260,43 +295,62 @@ the README.txt or README for more information.
\DeclareTextSymbolDefault{\textlongs}{TS1}
\DeclareTextSymbol{\textlongs}{TS1}{115}
\newunicodechar{ſ}{\textlongs}
- \ifpdf %^^A These only get included for pdf.
- \usepackage{tikz}
- \usepackage{tcolorbox}
- \fi
\fi
\fi
+
+%^^A Used unconditionally because we convert the dvi to pdf
+%^^A Otherwise we would put this in \ifpdf...\fi
+\usepackage{tikz}
+\usepackage{tcolorbox}
+
+\usepackage{microtype}
+
%^^A Set up initial page layout to fit both letter and DIN A4.
-\usepackage[textwidth=137mm,textheight=237mm,right=25mm,marginparwidth=40mm,nohead]{geometry}
-%^^A Include only this version of the package.
-\usepackage{\jobname}[2020/02/26]
-%^^A Set up all tabular information.
+\usepackage[textwidth=137mm,textheight=237mm,
+ right=25mm,marginparwidth=39mm,nohead]{geometry}
+
+%^^A Include specifically the current version of the package.
+\usepackage{\jobname}[2020/11/23]
+
+%^^A Set up all tabular packages. Booktabs makes them pretty,
+%^^A colortabl shades rows, and tabularx allows some fiddly
+%^^A stuff when typesetting the nameauth environment as a table.
\usepackage{booktabs}
\usepackage{colortbl}
-\usepackage{tabularx}
+
%^^A Set up lists.
\usepackage{enumitem}
\setlist{rightmargin=\leftmargin,itemsep=0pt}
-%^^A Create indexes and set up the ``actual'' character in nameauth.
+
+%^^A Create indexes and set up the ``actual'' character in nameauth
+%^^A to conform to gind.ist.
\usepackage{makeidx}
\IndexActual{=}
+
%^^A Dangerous bend ahead...
\usepackage{manfnt}
+
%^^A Two-column TOC
\usepackage[toc]{multitoc}
+
%^^A Some examples get some stretch to aid clarity and readability.
\usepackage{setspace}
+
%^^A Color helps categorize information.
\usepackage{xcolor}
+
\colorlet{nared}{red!50!black}
\colorlet{nagreen}{green!35!black}
\colorlet{nablue}{blue!50!black}
-\colorlet{nabrown}{brown!55!black}
+\colorlet{nabrown}{brown!50!black}
\colorlet{naviolet}{violet!90!black}
\colorlet{nataupe}{yellow!40!black}
\colorlet{naslate}{cyan!45!black}
+\colorlet{grey}{black!7!white}
+
%^^A For example...
\usepackage{verbatim}
+
%^^A Have documentation with hyperlinks
\usepackage[numbered]{hypdoc}
@@ -320,8 +374,8 @@ the README.txt or README for more information.
\makeatother
%^^A Use color indicators in a couple of tables.
-\newcommand\NO{\bgroup\color{lightgray}\lower 0.075ex\hbox{\rule{1.5ex}{1.5ex}}\egroup}
-\newcommand\YES{\bgroup\color{darkgray}\lower 0.075ex\hbox{\rule{1.5ex}{1.5ex}}\egroup}
+\newcommand\NO{\bgroup\color{black!20!white}\lower 0.075ex\hbox{\rule{1.5ex}{1.5ex}}\egroup}
+\newcommand\YES{\bgroup\color{black!80!white}\lower 0.075ex\hbox{\rule{1.5ex}{1.5ex}}\egroup}
%^^A Stretch out some text for clarity.
\newcommand*\MyStretch{\setstretch{1.1}}
@@ -331,37 +385,43 @@ the README.txt or README for more information.
\newcommand*\BigBlank{{\large\itshape\vfil\leavevmode\hfil This space is intentionally left blank.}}
%^^A Macros for marginalia.
-\newcommand*\Version[1]{\unless\ifinner\marginpar{\strut\raggedleft\textsf{\bfseries#1}}\fi}
-\newcommand*\VersionWarn[1]{{\unless\ifinner\marginpar{\strut\raggedleft\textsf{\bfseries#1}\break\small\dbend}\fi}}
-\newcommand*\Warn{{\unless\ifinner\marginpar{\strut\small\raggedleft\dbend}\fi}}
-\newcommand*\Info[1]{{\unless\ifinner\marginpar{\strut\small\raggedleft#1}\fi}}
+\newcommand*\Version[1]{\unless\ifinner\marginpar{\raggedleft\strut\textsf{\bfseries#1}}\fi}
+\newcommand*\Warn{{\unless\ifinner\marginpar{\small\strut\raggedleft\raise0.7ex\hbox{\dbend}}\fi}}
+\newcommand*\Info[1]{{\MyStretch\unless\ifinner\marginpar{\small\raggedleft#1}\fi}}
+\newcommand*\SPatInfo[1]{{\MyStretch\unless\ifinner\marginpar{\footnotesize\raggedleft Simplified Name Pattern(s):\break\ttfamily#1}\fi}}
+\newcommand*\PatInfo[1]{{\MyStretch\unless\ifinner\marginpar{\footnotesize\raggedleft Name Pattern(s):\hfill\break\ttfamily#1}\fi}}
+\newcommand*\IdxInfo[1]{{\MyStretch\unless\ifinner\marginpar{\footnotesize\raggedleft Basic Index:\hfill\break#1}\fi}}
+\newcommand*\Illus{{\MyStretch\unless\ifinner\marginpar{\footnotesize\raggedleft
+ Name color and\\
+ typeface are only\\
+ illustrative, not\\
+ package defaults.}\fi}}
%^^A Use this example in the body text.
\newcommand\Orphan[2]{#1(\hyperpage{#2})}
\TagName[Lost]{Name}{\,\S|Orphan{perdit}}
\TagName{foo\Name {bar}}{\,\S|hyperpage}
-%^^A Redefine emphasis in the body text
+%^^A Redefine emphasis in the body text because italic has some dedicated uses.
\let\oldemph\emph
\let\emph\textbf
-%^^A Struts for framed boxes
-\newcommand*{\mystrut}{\rule[-0.25\baselineskip]{0pt}{\baselineskip}}
-
-%^^A Set up all the shorthands, but not all the names.
+%^^A Set up all the shorthands, but not all the names. Even if one does not set
+%^^A up all the names here, it is a very good idea to set up the (pre)tags just below,
+%^^A especially in a dtx file.
\begin{nameauth}
\< Adams & John & \noexpand\textSC{Adams} & >
\< Aeth & & Æthelred, II & >
- \< Anth & Susan B. & Anthony & >
\< Aris & & Aristotle & >
- \< Attil & & Attila, the Hun & >
+ \< Bailey & Betsey & Bailey & >
\< Cicero & M.T. & Cicero & >
\< Confucius & & Confucius & >
\< Dagb & & Dagobert & I >
\< SDJR & Sammy & \noexpand\textSC{Davis}, \noexpand\textSC{Jr}. & >
\< Dem & & Demetrius, I & >
- \< deSmet & Pierre-Jean & \noexpand\Fbox{\noexpand\AltCaps{d}e Smet} & >
- \< Soto & Hernando & de Soto & >
+ \< deSmet & Pierre-Jean & \noexpand\Fbox{\noexpand\AltCaps{d}e~Smet} & >
+ \< Soto & Hernando & de~Soto & >
+ \< Doug & Frederick & Douglass & >
\< DuBois & W.E.B. & Du~Bois & >
\< AltDuBois & W.E.B. & DuBois & >
\< Einstein & Albert & Einstein & >
@@ -373,6 +433,7 @@ the README.txt or README for more information.
\< Harnack & Adolf & Harnack & >
\< Henry & & Henry & VIII >
\< Jeff & Thomas & \noexpand\JEFF & >
+ \< Eriugena & & John, Eriugena & >
\< Lewis & Clive Staples & Lewis & >
\< CSL & Clive Staples & Lewis & C.S. >
\< Luth & Martin & \noexpand\textSC{Luther} & >
@@ -382,16 +443,13 @@ the README.txt or README for more information.
\< MSens & & Miyazaki, Hayao & Sensei >
\< Noguchi & Hideyo & Noguchi & >
\< Pat & George S. & Patton, Jr. & >
- \< JRIII & John David & \textSC{Rockefeller},\textSC{III} & >
- \< JRIV & John David & Rockefeller, IV & >
- \< JayR & John David & Rockefeller, IV & Jay >
+ \< JRIII & J.D. & \textSC{Rockefeller},\textSC{III} & >
+ \< JRIV & J.D. & Rockefeller, IV & >
+ \< JayR & J.D. & Rockefeller, IV & Jay >
\< Scipio & \noexpand\SCIPi & \noexpand\SCIPii & >
\< OScipio & Publius & \noexpand\CSA & >
\< Shak & \noexpand\WM & \noexpand\SHK & >
\< Striet & John & \de{Strietelmeier} & >
- \< Ches & Chesley B. & Sullenberger, III & >
- \< Sully & Chesley B. & Sullenberger, III & Sully >
- \< Sun & & Sun, Yat-sen & >
\< KempMed & & Thomas, à~Kempis & >
\< KempW & Thomas & à~Kempis & >
\< Tyson & Mike & Tyson & >
@@ -403,10 +461,11 @@ the README.txt or README for more information.
\< Yosh & & Yoshida & Shigeru >
\end{nameauth}
-%^^A Add sort tags for those needing them.
+%^^A Add sort tags here for those needing them. Especially for dtx files.
\PretagName[John]{\noexpand\textSC{Adams}}{Adams, John}
\PretagName{Æthelred, II}{Aethelred 2}
\PretagName{Atatürk}{Ataturk}
+\PretagName[W.H.]{Auden}{Auden, Wystan}
\PretagName{\textit{Doctor mellifluus}}{Doctor mellifluus}
\PretagName[Charles]{\textBF{Babbage}}{Babbage, Charles}
\PretagName{Bo\"ethius}{Boethius}
@@ -415,12 +474,12 @@ the README.txt or README for more information.
\PretagName[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}{Davis, Sammy, Jr.}
\PretagName{Demetrius, I}{Demetrius 1}
\PretagName[Jacques]{De~Pamele}{Depamele, Jacques}
-\PretagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e Smet}}{desmet, Pierre-Jean}
-\PretagName[Hernando]{de Soto}{Desoto, Hernando}
-\PretagName[W.E.B.]{Du~Bois}{Dubois, W.E.B.}
-\PretagName[W.E.B.]{DuBois}{Dubois, W.E.B.}
-\PretagName[Charles]{du Fresne}{Dufresne, Charles}
-\PretagName{du Cange}{Ducange}
+\PretagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}{deSmet, Pierre-Jean}
+\PretagName[Hernando]{de~Soto}{Desoto, Hernando}
+\PretagName[W.E.B.]{Du~Bois}{Dubois, William}
+\PretagName[W.E.B.]{DuBois}{Dubois, William}
+\PretagName[Charles]{du~Fresne}{Dufresne, Charles}
+\PretagName{du~Cange}{Ducange}
\PretagName{Elizabeth, I}{Elizabeth 1}
\PretagName{\textUC{Fukuyama}, Takeshi}{Fukuyama Takeshi}
\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
@@ -428,14 +487,14 @@ the README.txt or README for more information.
\PretagName{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}}{Harun Alrashid}
\PretagName[Thomas]{\noexpand\JEFF}{Jefferson, Thomas}
\PretagName[Ada]{\textIT{Lovelace}}{Lovelace, Ada}
-\PretagName[Jan]{Łukasiewicz}{Lukasiewicz, Jan}
\PretagName[Martin]{\noexpand\textSC{Luther}}{Luther, Martin}
\PretagName[Catherine \noexpand\AltCaps{d}e']{\noexpand\textSC{Medici}}{Medici, Catherine de}
\PretagName{\noexpand\textSC{Mencius}}{Mencius}
\PretagName{\noexpand\textSC{Meng}, Ke}{Meng Ke}
+\PretagName{\textSC{Misora}, Hibari}{Misora Hibari}
\PretagName[Frenec]{Molnár}{Molnar, Frenec}
-\PretagName[John David]{\textSC{Rockefeller},\textSC{III}}{Rockefeller, John David 3}
-\PretagName[John David]{Rockefeller, IV}{Rockefeller, John David 4}
+\PretagName[J.D.]{\textSC{Rockefeller},\textSC{III}}{Rockefeller, John D 3}
+\PretagName[J.D.]{Rockefeller, IV}{Rockefeller, John D 4}
\PretagName[Heinrich Wilhelm]{\textSC{Rühmann}}{Ruehmann, Heinrich Wilhelm}
\PretagName[\noexpand\SCIPi]{\noexpand\SCIPii}{Scipio Africanus}
\PretagName[Publius]{\noexpand\CSA}{Cornelius Scipio Africanus}
@@ -447,16 +506,16 @@ the README.txt or README for more information.
\PretagName[Thomas]{à~Kempis}{Akempis, Thomas}
\PretagName{\textUC{Tokugawa}, Ieyasu}{Tokugawa Ieyasu}
\PretagName{Vlad, Ţepeş}{Vlad Tepes}
-\PretagName[E.\,B.]{White}{White, E.B.}
+\PretagName[E.\,B.]{White}{White, Elwyn}
-%^^A Add index tags for all names.
+%^^A Add index tags for all names. Failing to do this here, especially in
+%^^A dtx files, can result in errors.
\TagName[John]{\noexpand\textSC{Adams}}{, pres.|hyperpage}
\TagName{Æthelred, II}{, king|hyperpage}
-\TagName[Susan B.]{Anthony}{|hyperpage}
-\TagName{Arai, Akino}{|hyperpage}
\TagName{Aristotle}{|hyperpage}
-\TagName{Attila, the Hun}{|hyperpage}
+\TagName[W.H.]{Auden}{|hyperpage}
\TagName[Charles]{\textBF{Babbage}}{|hyperpage}
+\TagName[Thomas Haynes]{Bayly}{|hyperpage}
\TagName{Bernard, of Clairvaux}{|hyperpage}
\TagName{Bo\"ethius}{|hyperpage}
\TagName[Robert]{\textSC{Burns}}{|hyperpage}
@@ -473,11 +532,13 @@ the README.txt or README for more information.
\TagName[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}{|hyperpage}
\TagName{Demetrius, I}{ Soter, king|hyperpage}
\TagName[Jacques]{De~Pamele}{|hyperpage}
-\TagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e Smet}}{|hyperpage}
-\TagName[Hernando]{de Soto}{|hyperpage}
+\TagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}{|hyperpage}
+\TagName[Hernando]{de~Soto}{|hyperpage}
\TagName[Marc van]{Dongen}{|hyperpage}
+\TagName[Frederick]{Douglass}{|hyperpage}
+\TagName[Betsey]{Bailey}{|hyperpage}
\TagName[W.E.B.]{Du~Bois}{|hyperpage}
-\TagName[Charles]{du Fresne}{|hyperpage}
+\TagName[Charles]{du~Fresne}{|hyperpage}
\TagName[Albert]{Einstein}{|hyperpage}
\TagName{Elizabeth, I}{, queen|hyperpage}
\TagName{\textUC{Fukuyama}, Takeshi}{|hyperpage}
@@ -493,38 +554,36 @@ the README.txt or README for more information.
\TagName[Adolf]{Harnack}{|hyperpage}
\TagName{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}}{|hyperpage}
\TagName[Lafcadio]{Hearn}{|hyperpage}
-\TagName{Henry}[VIII]{\ddag, king|hyperpage}
+\TagName{Henry}[VIII]{, king|hyperpage}
\TagName[Bob]{Hope}{|hyperpage}
\TagName{Ishida}[Yoko]{\ddag|hyperpage}
\TagName[Thomas]{\noexpand\JEFF}{, pres.|hyperpage}
\TagName{Jesus, Christ}{|hyperpage}
-\TagName[Yoko]{Kanno}{\dag|hyperpage}
+\TagName{John, Eriugena}{|hyperpage}
\TagName[Mustafa]{Kemal}{|hyperpage}
-\TagName[John Maynard]{Keynes}{|hyperpage}
\TagName[Martin Luther]{King, Jr.}{|hyperpage}
-\TagName[The Amazing]{Kreskin}{|hyperpage}
\TagName{Lao-tzu}{|hyperpage}
-\TagName{Leo, I}{, pope|hyperpage}
\TagName[Clive Staples]{Lewis}{|hyperpage}
\TagName{Louis, XIV}{, king|hyperpage}
\TagName[Ada]{\textIT{Lovelace}}{|hyperpage}
\TagName[Uwe]{Lueck}{|hyperpage}
\TagName[Dan]{Luecking}{|hyperpage}
-\TagName[Jan]{Łukasiewicz}{|hyperpage}
\TagName[Martin]{\noexpand\textSC{Luther}}{|hyperpage}
\TagName{Maimonides}{|hyperpage}
+\TagName{\textSC{Misora}, Hibari}{|hyperpage}
\TagName[Nicolas]{Malebranche}{|hyperpage}
\TagName[Catherine \noexpand\AltCaps{d}e']{\noexpand\textSC{Medici}}{|hyperpage}
\TagName{\noexpand\textSC{Mencius}}{|hyperpage}
\TagName{Miyazaki, Hayao}{|hyperpage}
\TagName[Frenec]{Molnár}{\dag|hyperpage}
\TagName[Hideyo]{Noguchi}{\dag|hyperpage}
+\TagName{Novalis}{|hyperpage}
\TagName[Heiko]{Oberdiek}{|hyperpage}
\TagName[George S.]{Patton, Jr.}{|hyperpage}
\TagName[Lucius]{Sergius Paulus}{|hyperpage}
\TagName{Rambam}{|hyperpage}
-\TagName[John David]{\textSC{Rockefeller},\textSC{III}}{|hyperpage}
-\TagName[John David]{Rockefeller, IV}{|hyperpage}
+\TagName[J.D.]{\textSC{Rockefeller},\textSC{III}}{|hyperpage}
+\TagName[J.D.]{Rockefeller, IV}{|hyperpage}
\TagName[Heinz]{\textSC{Rühmann}}{|hyperpage}
\TagName{Saul, of Tarsus}{|hyperpage}
\TagName[Robert]{Schlicht}{|hyperpage}
@@ -533,9 +592,9 @@ the README.txt or README for more information.
\TagName[\noexpand\WM]{\noexpand\SHK}{|hyperpage}
\TagName[R.]{Snel van Royen}{|hyperpage}
\TagName[W.]{Snel van Royen}{|hyperpage}
+\TagName[Gertrude]{Stein}{|hyperpage}
\TagName[Philipp]{Stephani}{|hyperpage}
\TagName[John]{\de{Strietelmeier}}{|hyperpage}
-\TagName[Chesley B.]{Sullenberger, III}{|hyperpage}
\TagName{Sun, Yat-sen}{, pres.|hyperpage}
\TagName{Thomas, à~Kempis}{|hyperpage}
\TagName{Thomas, Aquinas}{|hyperpage}
@@ -551,10 +610,11 @@ the README.txt or README for more information.
\TagName[E.\,B.]{White}{|hyperpage}
\TagName{William, I}{|hyperpage}
\TagName{Yamamoto, Isoroku}{|hyperpage}
-\TagName{Yohko}{|hyperpage}
\TagName{Yoshida}[Shigeru]{\ddag, PM|hyperpage}
\TagName[Caspar]{Ziegler}{|hyperpage}
+%^^A These options allow the index to focus on names in the index more like
+%^^A one might see in a normal document.
\DisableCrossrefs
\CodelineIndex
\RecordChanges
@@ -566,7 +626,7 @@ the README.txt or README for more information.
%</driver>
% \fi
%
-% \CheckSum{3799}
+% \CheckSum{3447}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -585,66 +645,104 @@ the README.txt or README for more information.
% Right brace \} Tilde \~}
%
% \changes{0.7}{2011/12/26}{Initial release}
+% \changes{0.75}{2012/01/19}{Standardized arguments}
+% \changes{0.85}{2012/02/05}{Show or hide commas}
% \changes{1.0}{2012/02/20}{Works with \textsf{microtype}, \textsf{memoir}}
-% \changes{2.0}{2015/11/11}{Use dtxgen; prevent bad args}
+% \changes{2.3}{2016/01/05}{New back-end for naming macros}
% \changes{2.5}{2016/04/06}{No default format}
-% \changes{3.3}{2020/02/20}{Update manual}
+% \changes{3.2}{2017/03/22}{Root, suffix macros renamed, redesigned}
% \changes{3.4}{2020/02/26}{Update manual, \texttt{examples.tex}}
+% \changes{3.5}{2020/11/23}{Updates to manual, \texttt{Readme.md}, \texttt{Makefile}, \texttt{examples.tex}, combine \texttt{Readme.md} and \texttt{examples.tex} files in \texttt{dtx}}
%
% \GetFileInfo{\jobname.dtx}
%
% \DoNotIndex{\@empty, \@gobble, \@period, \@token, \trim@spaces,
% \zap@space}
-%
+%
% \DoNotIndex{\begingroup, \bfseries, \bgroup, \csdef, \csgdef, \csname,
% \csundef, \DeclareOption, \def, \detokenize, \edef, \egroup, \else,
% \endcsname, \endgroup, \endinput, \ExecuteOptions, \expandafter, \fi,
% \futurelet, \global, \hbox, \if, \ifcsname, \ifx, \ignorespaces, \index,
% \itshape, \leavevmode, \let, \newcommand, \newcommandx, \newenvironment,
% \newif, \nobreakspace, \PackageError, \PackageWarning, \ProcessOptions,
-% \relax, \renewcommand, \RequirePackage, \scshape, \space, \textbackslash,
-% \uppercase}
-%
-% \newif\ifNoTag
-% \newif\ifDoTikZ
-% \ifxetex
-% \DoTikZtrue
-% \else
-% \ifluatex
-% \ifpdf
-% \DoTikZtrue
-% \fi
-% \else
-% \ifpdf
-% \DoTikZtrue
-% \fi
-% \fi
-% \fi
+% \relax, \renewcommand, \RequirePackage, \scshape, \textbackslash, \uppercase}
+%
+% \hfuzz=3pt
%
% \ClearNum
-% \ifDoTikZ
-% \tcbset{fonttitle=\bfseries\sffamily,box align=top,lower separated=false}
-% \fi
-%
-% \renewcommand*\FrontNamesFormat[1]{\color{nared}\sffamily #1}
-% \renewcommand*\FrontNameHook[1]{\color{nagreen}\sffamily #1}
-% \renewcommand*\NamesFormat[1]{\color{nablue}\sffamily #1}
-% \renewcommand*\MainNameHook[1]{\color{nabrown}\sffamily #1}
-% \newcommand*\ReturnLink{\ifDoTikZ
-% \begin{tcolorbox}\centering Back to Section~\ref{sec:Dashboard}\end{tcolorbox}\else
-% \medskip{\hfil\large Back to Section~\ref{sec:Dashboard}}\fi}
+% \tcbset{fonttitle=\bfseries\sffamily,box align=top,lower separated=false}
%
-% \newif\ifFontDebug
-%^^A \FontDebugtrue
+% \renewcommand*\FrontNamesFormat[1]{\color{red}\sffamily #1}
+% \renewcommand*\FrontNameHook[1]{\color{darkgray}\sffamily #1}
+% \renewcommand*\NamesFormat[1]{\color{blue}\sffamily #1}
+% \renewcommand*\MainNameHook[1]{\sffamily #1}
+% \newcommand*\ReturnLink{\leavevmode^^A
+% \begin{tcolorbox}\centering Back to Section~\ref{sec:Dashboard}\end{tcolorbox}^^A
+% \leavevmode}
%
+%^^A This helps track down any stray or unintended changes to font sizes.
+% \newif\ifFontDebug
+%^^A Uncomment the following line to debug font sizes.
+%^^A\FontDebugtrue
% \makeatletter
-% \@setpar{\ifFontDebug\edef\@FS{ \f@size pt}{\tiny\@FS}\fi\@@par}
+% \@setpar{^^A
+% \ifFontDebug
+% \edef\@FS{ \f@size pt}^^A
+% \unless\ifinner\marginpar{\scriptsize\normalfont\@FS}\fi
+% \fi
+% \@@par}
% \makeatother
%
-% \begingroup\FontDebugfalse
+%^^A Global definitions of conditionals for examples
+%^^A For Scipio Africanus
+% \newif\ifSkipGens
+% \newif\ifNoGens
+% \newif\ifSkipAgnomen
+% \newif\ifNoAgnomen
+%^^A For Thomas Jefferson
+% \newif\ifGenitive
+% \newif\ifDoGen
+%^^A For George Washington/Mustafa Kemal
+% \newif\ifNoTag
+%^^A For William Shakespeare
+% \newif\ifSpecialFN
+% \newif\ifSpecialSN
+% \newif\ifRevertSN
+%^^A For advanced hooks
+% \newif\ifFbox
+% \newif\ifFirstCap
+% \newif\ifInHook
+% \Fboxtrue
+% \newif\ifCaps
+%^^A Global definitions of macros for examples
+%^^A For Scipio Africanus
+% \newcommand*\SCIPi{\ifNoGens
+% Publius\else Publius Cornelius\fi}
+% \newcommand*\SCIPii{\ifNoAgnomen
+% Scipio\else Scipio Africanus\fi}
+% \newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
+% \newcommand*\CSA{\ifNoGens\ifNoAgnomen
+% Scipio\else
+% Scipio Africanus\fi
+% \else\ifNoAgnomen
+% Cornelius Scipio\else
+% Cornelius Scipio Africanus\fi\fi}
+% \ExcludeName[Publius]{\noexpand\CSA}
+%^^A For Thomas Jefferson
+% \newcommand\JEFF{\ifDoGen\textSC{Jefferson's}\else\textSC{Jefferson}\fi}
+%^^A For William Shakespeare
+% \newcommand*\WM{\ifSpecialFN Wm.\else William\fi}
+% \newcommand*\SHK{\ifRevertSN \textSC{Shakespeare}\else
+% \ifSpecialSN \noexpand\AltCaps{t}he Bard\else
+% \textSC{Shakespeare}\fi\fi}
+% \newcommand*\Revert{\RevertSNtrue}
+%^^A End of global definitions for examples
+%
+% \begingroup^^A This group prevents font debugging on the title page.
+% \FontDebugfalse
% \title{\textsf{nameauth} --- Name authority mechanism\\ for consistency in text and
% index\thanks{This file describes version \fileversion, last revised \filedate.}}
-% \author{Charles P. Schaum\thanks{E-mail: charles dot schaum@comcast.net}}
+% \author{Charles P. Schaum\thanks{E-mail: charles[dot]schaum@comcast.net}}
% \date{Released \filedate}
%
% \maketitle
@@ -654,513 +752,548 @@ the README.txt or README for more information.
% \end{abstract}
%
% \bgroup\small\tableofcontents\egroup
-% \endgroup
+% \endgroup^^A End title page group.
+% \newpage
%
% \section{Quick Start}
+% \begin{tcolorbox}[colback=white,colframe=nared,adjusted title={\hfil Disclaimer}]
+% \small\noindent Names are about real people; examples should be too. This manual mentions notable figures both living and deceased. All names herein are meant to be used respectfully, for teaching purposes only. At no time is any disrespect or bias intended.
+% \end{tcolorbox}
%
-% \subsection{How to Use the Manual}
+% \subsection{Introduction}
+% A \emph{name authority} is a canonical, scholarly list of name forms to which all variant name forms and aliases must refer. The task dashboard (Section~\ref{sec:Dashboard}) guides one to various areas of interest. To load the defaults, simply type:
+% \begin{center}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\texttt{\textbackslash usepackage\{nameauth\}}\\
+% \end{tabular}
+% }\smallskip
+% \end{center}
+%
+% The \textsf{nameauth} macros permit ambiguity because name forms are ambiguous unless they are put into a cultural context. Therefore, keep it simple. Use the quick interface. Use the fewest number of \textsf{nameauth} macros for one's use case.
%
-% A \emph{name authority} is a canonical, scholarly list of names to which all variants must refer. The task dashboard (Section~\ref{sec:Dashboard}) guides one to various areas of interest. Start with the basics and add features as needed. To load the defaults, simply type:
-% \begin{quote}
-% \fbox{\mystrut\ \texttt{\textbackslash usepackage\{nameauth\}} }
-% \end{quote}
+% \begin{center}\bfseries Package Design and Features\end{center}
%
-% \begin{center}\large\bfseries Package Design and Features\end{center}
-% \noindent With \textsf{nameauth} names become abstractions: verbs that alter state and nouns that have state. That improves accuracy and consistency:
+% The editorial process for book-length projects may require one to add, delete, or relocate text. Several issues emerge from this:
% \begin{itemize}
-% \item \emph{Automate} name forms used in professional writing. First uses of names will have full forms. Later uses have shorter forms. Names vary in the text, but stay constant in the index.
-% \item Permit \emph{complex name formatting}.
-% \item Many \emph{cross-cultural, multilingual naming conventions} are possible. More details appear in Sections~\ref{sec:ErrorProt}, \ref{sec:AltFormat}, \ref{sec:IndexSort}, and~\ref{sec:Hooksiii}.
-% \item \emph{Automatic sort keys and tags} aid indexing.
-% \item One can \emph{associate information with names.}
-% \item The standard used for implementing the \textsf{nameauth} indexing macros is Nancy C. Mulvany, \textit{Indexing Books} (Chicago: University of Chicago Press, 1994). All references [\hypertarget{Mulvany}{Mulvany}] refer to this edition.
-% \item In Section~\ref{sec:ErrorProt} we see how to avoid common errors.
-% \item Section~\ref{sec:TechNotes} contains \emph{thanks} and various technical notes.
+% \item Professional writing needs a full name form to introduce a person, using shorter forms thereafter. Moving text may require re-checking names.
+% \item If a name is keyed to another name or narrative event, moving text may require checking for anachronistic references.
+% \item Including special information in the index, such as including non-Latin script name forms with Latin script forms, can be complex and tedious.
+% \item Unless one is familiar with professional indexing, one might create incorrect index entries.
+% \item One must check if any names straddle page breaks and index them.
% \end{itemize}
%
-% \begin{center}\large\bfseries Special Signs\end{center}
-% \noindent As teaching aids, this manual uses markings that are not part of \textsf{nameauth}, but in some cases are implemented using it:
+% The \textsf{nameauth} package provides automated solutions for all points above at the time of writing. Names become abstractions; they are verbs that alter state and nouns that have state. That improves accuracy and consistency:
% \begin{itemize}
-% \item[\ \ ]We show \fbox{\mystrut\NamesFormat{first uses}} and \fbox{\mystrut\MainNameHook{subsequent uses}} of names (Sections~\ref{sec:Formatting}, \ref{sec:NameControl}).
+% \item \emph{Automate} name forms. First uses of names have long forms. Later uses are short by default. Names vary in the text, but not in the index.
+% \item Implement \emph{cross-cultural, multilingual naming conventions}.
+% \item Implement \emph{complex name formatting} using conditional elements.
+% \item Improve indexing with \emph{automatic sorting and tagging, and cross-reference control.} Indexing rules are based on Nancy C. Mulvany, \textit{Indexing Books} (Chicago: University of Chicago Press, 1994). All references [\hypertarget{Mulvany}{Mulvany}] refer to this edition.
+% \item \emph{Associate and retrieve information} bound to names.
+% \end{itemize}
+%
+% \begingroup
+% \renewcommand{\NamesFormat}{}
+% \renewcommand{\MainNameHook}{}
+% For example,\IdxInfo{\ShowIdxPageref*[Frederick]{Douglass}\break \ShowIdxPageref*[Betsey]{Bailey}} from a biography written a century ago, we show reordered paragraphs that require no subsequent changes. We use the ``quick interface'' and no name formatting (the package default). We ``forget'' names at the top of the right-hand column to simulate not using them yet (Section~\ref{sec:NameControl}):
+% \begin{quote}\small
+% \begin{multicols}{2}
+% |\Doug\| \Doug\ rose to eminence by sheer force of character and talents that neither slavery nor caste proscription could crush. Circumstances could not prevent him from becoming a freeman and a leader.
+%
+% |\Doug's| \Doug's early life is perhaps the most complete indictment of the slave system ever presented at the bar of public opinion.
+%
+% |\Doug\| \Doug\ was born in February, l8l7. His earliest memories centered around the private cabin of his grandmother, |\Bailey,| \Bailey, who was charged with only the duty of looking after young children.
+%
+% \columnbreak\ForgetName[Frederick]{Douglass}\ForgetName[Betsey]{Bailey}
+% |\Doug's| \Doug's early life is perhaps the most complete indictment of the slave system ever presented at the bar of public opinion.
+%
+% |\Doug\| \Doug\ was born in February, l8l7. His earliest memories centered around the private cabin of his grandmother, |\Bailey,| \Bailey, who was charged with only the duty of looking after young children.
+%
+% |\Doug\| \Doug\ rose to eminence by sheer force of character and talents that neither slavery nor caste proscription could crush. Circumstances could not prevent him from becoming a freeman and a leader.
+% \end{multicols}
+% \end{quote}
+% \endgroup
+%
+% \subsection{How to Use the Manual}
+% Topics in this manual that are more basic or frequent in use are toward the front. Topics that are more complex or less-used are toward the back. As topics get more advanced, various sections mutually inform each other.
+%
+% For reference, throughout this manual we show simplified and complete \emph{name patterns} in the margins (Section~\ref{sec:NamePatterns}). These patterns control name behavior. In the early pages of the manual we also show \emph{basic index entries} in the margins.
+%
+% \begin{center}\bfseries Special Signs\end{center}
+% \noindent This manual uses signs and illustrative typesetting that are not built-in defaults of \textsf{nameauth}, but in some cases are implemented using it:
+% \begin{itemize}
+% \item[\ \ ]We often highlight {\NamesFormat{first}} and {\MainNameHook{later}} uses of names (Sections~\ref{sec:Formatting}, \ref{sec:NameControl}).
% \item[\dag\ ]A dagger indicates ``non-native'' Eastern forms (Section~\ref{sec:Eastern}).
% \item[\ddag\ ]A double dagger shows usage of the obsolete syntax (Section~\ref{sec:Obsolete}).
% \item[\S\ ]A section mark denotes index entries of fictional names.
% \item[\(\leftarrow\)]Major\Version{3.0} changes have package version numbers in the margin.
% \item[\(\leftarrow\)]The\Warn{} ``dangerous bend'' shows where caution is needed.
% \end{itemize}
+% \vfill
%
-% \ifDoTikZ\begin{tcolorbox}[colback=white,colframe=nared,adjusted title={\hfil Disclaimer}]\else
-% \begin{center}\large\bfseries Disclaimer\end{center}\fi
-% \noindent Names are about real people. This manual mentions notable figures both living and deceased. All names herein are meant to be used respectfully, for teaching purposes only. At no time is any disrespect or bias intended.
-% \ifDoTikZ\end{tcolorbox}\fi
+% \begin{tcolorbox}[colback=white,colframe=nared,adjusted title={\hfil Thanks}]
+% \small\noindent Thanks to \Name[Marc van]{Dongen}, \Name[Enrico]{Gregorio}, \Name[Philipp]{Stephani}, \Name[Heiko]{Oberdiek}, \Name[Uwe]{Lueck}, \Name[Dan]{Luecking} and \Name[Robert]{Schlicht} for assistance in early versions of this package. Thanks also to users for valuable feedback.\vfil
+% \end{tcolorbox}
% \newpage
%
% \subsection{Task Dashboard}
% \label{sec:Dashboard}
%
% Here we link to sections by task in order to get things done quickly. Many sections have return links at their end that bring the reader back to this page.
-% \ifDoTikZ
-% \begin{tcolorbox}[colframe=naslate,adjusted title={\hfil Where do you want to go today?}]\centering
-% \tcbox[equal height group=Z,on line,tikznode,colframe=nabrown,colback=white,adjusted title={\bfseries\sffamily\hfil Quick Start}]{Sections~\ref{sec:QuickStart}, \ref{sec:TradStart},\\ \ref{sec:SimpleStart}, \ref{sec:SelectOver}, \ref{sec:Obsolete},\\ \ref{sec:NamePatterns}, \ref{sec:ErrorProt}}\hfill
-% \tcbox[equal height group=Z,on line,tikznode,colframe=nabrown,colback=white,adjusted title={\bfseries\sffamily\hfil Basics}]{Package options:\\ Section~\ref{sec:PkgOptions}}\hfill
-% \tcbox[equal height group=Z,on line,tikznode,colframe=nabrown,colback=white,adjusted title={\bfseries\sffamily\hfil Basics}]{Name macros:\\ Sections~\ref{sec:Naming},\\ \ref{sec:FName}}\bigskip
-%
-% \tcbox[equal height group=Zi,on line,tikznode,colframe=nagreen,colback=white,adjusted title={\bfseries\sffamily\hfil Intermediate}]{Variant forms:\\Sections~\ref{sec:VarNames},\\\ref{sec:NameParticles}, \ref{sec:IndexXref}}\hfill
-% \tcbox[equal height group=Zi,on line,tikznode,colframe=nagreen,colback=white,adjusted title={\bfseries\sffamily\hfil Intermediate}]{Avoid errors: Sec-\\tions~\ref{sec:Obsolete}, \ref{sec:NamePatterns}, \ref{sec:ErrorProt},\\ \ref{sec:NameParticles}, \ref{sec:Unicode}}\hfill
-% \tcbox[equal height group=Zi,on line,tikznode,colframe=naviolet,colback=white,adjusted title={\bfseries\sffamily\hfil Language}]{Western names:\\ Sections~\ref{sec:Affix},\\ \ref{sec:LastFirst}}\bigskip
-%
-% \tcbox[equal height group=Zii,on line,tikznode,colframe=naviolet,colback=white,adjusted title={\bfseries\sffamily\hfil Language}]{Eastern names:\\ Sections~\ref{sec:Affix},\\ \ref{sec:Eastern}}\hfill
-% \tcbox[equal height group=Zii,on line,tikznode,colframe=naviolet,colback=white,adjusted title={\bfseries\sffamily\hfil Language}]{Particles, medieval,\\ ancient names: Sec-\\ tions\,\ref{sec:NameParticles},\,\ref{sec:AltFormat},\,\ref{sec:Hooksiii}}\hfill
-% \tcbox[equal height group=Zii,on line,tikznode,colframe=nataupe,colback=white,adjusted title={\bfseries\sffamily\hfil Index}]{Index entries\\ and control:\\ Section~\ref{sec:IndexControl}}\bigskip
-%
-% \tcbox[equal height group=Ziii,on line,tikznode,colframe=nataupe,colback=white,adjusted title={\bfseries\sffamily\hfil Index}]{\hbox to 0.385\textwidth{\ Index cross-refs, automatic\ }\\ sorting, and auto-info: Sec-\\ tions~\ref{sec:IndexXref}, \ref{sec:IndexSort}, \ref{sec:IndexTag}, \ref{sec:AKA}}\hfill
-% \tcbox[equal height group=Ziii,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{\hbox to 0.39\textwidth{Generally manage how names}\\ are typeset: Sections~\ref{sec:Formatting}, \ref{sec:AltFormat},\\ \ref{sec:NameControl}, \ref{sec:NameTests}, \ref{sec:Hooksi}\,--\,\ref{sec:Customize}}\bigskip
%
-% \tcbox[equal height group=Ziv,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{\hbox to 0.385\textwidth{Generally manage names by}\\ using a name authority: Sec-\\ tions~\ref{sec:VarNames}, \ref{sec:Formatting}, \ref{sec:IndexControl}, \ref{sec:NameControl}}\hfill
-% \tcbox[equal height group=Ziv,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{Make complex elements\\\hbox to 0.39\textwidth{determined automatically by}\\ names: Sections \ref{sec:TextTags}, \ref{sec:NameTests}}\bigskip
-%
-% \tcbox[equal height group=Zv,on line,tikznode,colframe=nablue,colback=white,adjusted title={\bfseries\sffamily\hfil Application}]{Use \textsf{nameauth} with \textsf{beamer}\\\hbox to 0.385\textwidth{overlays to get correct name}\\ forms: Sections~\ref{sec:Formatting}, \ref{sec:NameDecisions},\\ \ref{sec:NameControl}, \ref{sec:NameTests}}\hfill
-% \tcbox[equal height group=Zv,on line,tikznode,colframe=nablue,colback=white,adjusted title={\bfseries\sffamily\hfil Application}]{\hbox to 0.39\textwidth{History / game books, other}\\ complex layouts: Sections\\ \ref{sec:Formatting}, \ref{sec:IndexTag}, \ref{sec:TextTags}, \ref{sec:NameControl},\\ \ref{sec:NameTests}, \ref{sec:Hooksi}\,--\,\ref{sec:Hooksiii}}\smallskip
+% \begin{tcolorbox}[colframe=naslate,adjusted title={\hfil Where do you want to go today?}]\centering
+% \tcbox[equal height group=Z,on line,tikznode,colframe=nablue,colback=white,adjusted title={\bfseries\sffamily\hfil Quick Start}]{^^A
+% Basic concepts: \ref{sec:QuickStart}\\
+% Macros: \ref{sec:TradStart}, \ref{sec:SimpleStart}, \ref{sec:SelectOver}\\
+% Various hints: \ref{sec:Hints}}^^A
+% \hfill
+% \tcbox[equal height group=Z,on line,tikznode,colframe=nablue,colback=white,adjusted title={\bfseries\sffamily\hfil Basics}]{^^A
+% Package options: \ref{sec:PkgOptions}\\
+% Name macros: \ref{sec:Naming}, \ref{sec:FName}\\
+% Simple\,Variants\,(text/index): \ref{sec:VarNames}, \ref{sec:Indexing}}^^A
+% \vspace{9pt}
+%
+% \tcbox[equal height group=Zi,on line,tikznode,colframe=nagreen,colback=white,adjusted title={\bfseries\sffamily\hfil Language}]{^^A
+% Western names: \ref{sec:Affix}, \ref{sec:LastFirst}\\
+% Eastern names: \ref{sec:Affix}, \ref{sec:Eastern}\\
+% Particles: \ref{sec:NameParticles}, \ref{sec:AltFormat}, \ref{sec:Hooksiii}}^^A
+% \hfill
+% \tcbox[equal height group=Zi,on line,tikznode,colframe=nagreen,colback=white,adjusted title={\bfseries\sffamily\hfil Language}]{^^A
+% Medieval/Ancient: \ref{sec:NameAncient}, \ref{sec:Hooksi}\\
+% ``Continental'' typesetting:\\
+% \ref{sec:AltFormat}, \ref{sec:AltBasic}, \ref{sec:AltAdvanced}, \ref{sec:Hooksiii}}^^A
+% \vspace{9pt}
+%
+% \tcbox[equal height group=Zii,on line,tikznode,colframe=nataupe,colback=white,adjusted title={\bfseries\sffamily\hfil Index}]{^^A
+% Page entries, index\\
+% \,control, \& xrefs: \ref{sec:GeneralIndex}\,}^^A
+% \hfill
+% \tcbox[equal height group=Zii,on line,tikznode,colframe=nataupe,colback=white,adjusted title={\bfseries\sffamily\hfil Index}]{^^A
+% Setting up automatic sorting: \ref{sec:IndexSort}\\
+% Auto-add info to index entries: \ref{sec:IndexTag}}^^A
+% \vspace{9pt}
+%
+% \tcbox[equal height group=Ziii,on line,tikznode,colframe=nabrown,colback=white,adjusted title={\bfseries\sffamily\hfil Intermediate}]{^^A
+% Name info database: \ref{sec:TextTags}\\
+% Test for the presence of names:\\
+% \ref{sec:NameDecisions}, \ref{sec:NameControl}, \ref{sec:NameTests}}^^A
+% \hfill
+% \tcbox[equal height group=Ziii,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{^^A
+% \hbox{\ }Various discussions about\hbox{\ }\\
+% errors: \ref{sec:NameParticles}, \ref{sec:Warnings}, \ref{sec:Errors},\\
+% \ref{sec:Obsolete}, \ref{sec:NamePatterns}, \ref{sec:Unicode}}^^A
+% \vspace{9pt}
+%
+% \tcbox[equal height group=Ziv,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{^^A
+% Formatting: \ref{sec:Formatting}, \ref{sec:AltFormat}, \ref{sec:AltBasic},\\
+% \ref{sec:AltAdvanced}, \ref{sec:Hooksi}, \ref{sec:Hooksii}, \ref{sec:Hooksiii}\\
+% Customizing: \ref{sec:Customize}}^^A
+% \hfill
+% \tcbox[equal height group=Ziv,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{^^A
+% Link names \& text to sequences\\
+% of time or ideas: \ref{sec:TextTags}, \ref{sec:NameTests}\\
+% (history/game books)}^^A
+% \vspace{9pt}
+%
+% \tcbox[equal height group=Zv,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{^^A
+% Use different formats\\
+% to call out information: \ref{sec:TextTags},\\
+% \ \ref{sec:Formatting}, \ref{sec:AltFormat}, \ref{sec:NameTests},
+% \ref{sec:Hooksi}, \ref{sec:Hooksii},\ \ \ \\
+% \ref{sec:Hooksiii} (history/game books)}^^A
+% \hfill
+% \tcbox[equal height group=Zv,on line,tikznode,colframe=nared,colback=white,adjusted title={\bfseries\sffamily\hfil Advanced}]{^^A
+% Use \textsf{nameauth} with \textsf{beamer}\\
+% overlays to get correct name\\
+% forms: Sections~\ref{sec:Formatting}, \ref{sec:NameDecisions},\\
+% \ref{sec:NameControl}, \ref{sec:NameTests}}^^A
+% \vspace{4pt}
+%
+% \begin{tcolorbox}[colframe=nared,colback=white]
+% \centering For building the \textsf{nameauth} package, see \texttt{README.md},\\
+% located with this manual, and Section~\ref{sec:TechNotes}.
+% \end{tcolorbox}
+% \vspace{-3pt}
% \end{tcolorbox}
-% \else
-% \begin{center}
-% \begin{tabularx}{0.9\textwidth}{@{}X|X|X@{}}\toprule
-% &&\\
-% Concept overview: Sections~\ref{sec:QuickStart}, \ref{sec:TradStart}, \ref{sec:SimpleStart}, \ref{sec:SelectOver}, \ref{sec:Obsolete}, \ref{sec:NamePatterns}, \ref{sec:ErrorProt} & Package options: Section~\ref{sec:PkgOptions} & Basic macros: Section \ref{sec:Naming}, \ref{sec:FName}\\
-% &&\\\midrule
-% &&\\
-% Variant forms: Sections~\ref{sec:VarNames}, \ref{sec:NameParticles}, \ref{sec:IndexXref} & Avoid errors: Sections~\ref{sec:Obsolete}, \ref{sec:NamePatterns}, \ref{sec:ErrorProt}, \ref{sec:NameParticles}, \ref{sec:Unicode} & Western names: Sections~\ref{sec:Affix}, \ref{sec:LastFirst}\\
-% &&\\\midrule
-% &&\\
-% Eastern names: Sections~\ref{sec:Affix}, \ref{sec:Eastern} & Particles, medieval, ancient names: Sections~\ref{sec:NameParticles}, \ref{sec:AltFormat}, \ref{sec:Hooksiii} & Index entries and control: Section~\ref{sec:IndexControl}\\
-% &&\\\midrule
-% &&\\
-% Index cross-refs, automatic sorting, and auto-info: Sections~\ref{sec:IndexXref}, \ref{sec:IndexSort}, \ref{sec:IndexTag}, \ref{sec:AKA} & Generally manage how names are typeset: Sections~\ref{sec:Formatting}, \ref{sec:AltFormat}, \ref{sec:NameControl}, \ref{sec:NameTests}, \ref{sec:Hooksi}\,--\,\ref{sec:Customize} & Generally manage names by using a name authority: Sections~\ref{sec:VarNames}, \ref{sec:Formatting}, \ref{sec:IndexControl}, \ref{sec:NameControl}\\
-% &&\\\midrule
-% &&\\
-% Make complex elements determined automatically by names: Sections \ref{sec:TextTags}, \ref{sec:NameTests} & Use \textsf{nameauth} with \textsf{beamer} overlays to get correct name forms: Sections~\ref{sec:Formatting}, \ref{sec:NameDecisions}, \ref{sec:NameControl}, \ref{sec:NameTests} & History\,/\,game books, other complex layouts: Sections~\ref{sec:Formatting}, \ref{sec:IndexTag}, \ref{sec:TextTags}, \ref{sec:NameControl}, \ref{sec:NameTests}, \ref{sec:Hooksi}\,--\,\ref{sec:Hooksiii}\\
-% &&\\\bottomrule
-% \end{tabularx}
-% \end{center}
-% \fi
-% \newpage
%
-% \subsection{Basic Concepts}
+% \subsection{Basic Name Concepts}
% \label{sec:QuickStart}
%
% We encode names in macro arguments to address multiple naming systems. Required name elements are shown in \emph{black}; optional parts are in \emph{\color{nared}red}.\footnote{Compare [\hyperlink{Mulvany}{Mulvany}, 152--82] and the \textit{Chicago Manual of Style}.}
-% The arguments appear in the order \meta{FNN} \meta{SNN} \meta{Affix} \meta{Alternate}:
-%
-% \ifDoTikZ
-% \noindent\begin{tcolorbox}[colframe=naslate,adjusted title={Western Name}]\centering
-% \tcbox[equal height group=A,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Forename(s):\\ \meta{FNN}}]{%
-% Personal name(s):\\
-% \textit{baptismal name}\\
-% \textit{Christian name}\\
-% \textit{multiple names}\\
-% \textit{praenomen}\footnotemark\\
-% \hphantom{Family\,/\,clan name}}
-% \tcbox[equal height group=A,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Surname(s):\\ \meta{SNN}}]{%
-% Family name:\\
-% \textit{of father, mother}\\
-% \textit{ancestor, vocation}\\
-% \textit{origin, region}\\
-% \textit{nomen, cognomen}\\
-% \textit{patronym}\\
-% \vspace{-2ex}\hphantom{\textit{ancestor, vocation}}}
-% \tcbox[equal height group=A,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Affix}}]{%
-% Sobriquet\,/\,title:\\
-% \textit{Sr., Jr., III\dots}\\
-% \textit{notable attribute}\\
-% \textit{origin, region}}
-% \tcbox[tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Alternate Name(s): \meta{Alternate}}]{\hbox to 0.913\textwidth{\hfil In the body text, not the index, \meta{Alternate} swaps with \meta{FNN}\hfil}\\ \hbox to 0.913\textwidth{\hfil for Western names and \meta{Affix} for all other name categories.\hfil}}
-% \end{tcolorbox}\medskip
-% \begin{tcolorbox}[colframe=naslate,adjusted title={Eastern Name}]\centering
-% \tcbox[equal height group=B,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Family name:\\ \meta{SNN}}]{Family\,/\,clan name}
-% \tcbox[equal height group=B,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Personal name:\\ \meta{Affix}}]{Seldom multiple\\
-% names; multi-\\
-% character okay.\\
-% \vspace{-2ex}\hphantom{\textit{ancestor, vocation}}}
-% \tcbox[equal height group=B,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Alternate}}]{%
-% Title, etc.\\
-% (old syntax for\\
-% personal names)\\
-% \vspace{-2ex}\hphantom{Sobriquet\,/\,title:}}
-% \end{tcolorbox}\medskip
-% \begin{tcolorbox}[colframe=naslate,adjusted title={Ancient name}]\centering
-% \tcbox[equal height group=C,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Personal name:\\ \meta{SNN}}]{Given name(s)\\
-% \hphantom{Family\,/\,clan name}}
-% \tcbox[equal height group=C,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Affix}}]{%
-% Sobriquet\,/\,title:\\
-% \textit{Sr., Jr., III\dots}\\
-% \textit{notable attribute}\\
-% \textit{origin, region}\\
-% \textit{patronym}\\
-% \vspace{-2ex}\hphantom{\textit{ancestor, vocation}}}
-% \tcbox[equal height group=C,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Alternate}}]{%
-% Alternate name\\
-% (old syntax for\\
-% titles, etc.)\\
-% \hphantom{Sobriquet\,/\,title:}}
+% The arguments appear in the order \meta{FNN} \meta{SNN} \meta{Affix} \meta{Alternate}. Section~\ref{sec:Obsolete} shows the obsolete syntax, which is usable but discouraged. Basic syntactic forms are:
+%
+% \noindent\begin{tcolorbox}[colframe=naslate,adjusted title={Western Name and ``Non-native'' Eastern Name}]
+% \tcbox[equal height group=A,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Forename(s):\\ \meta{FNN}}]{%
+% Personal name(s):\\
+% \textit{baptismal name}\\
+% \textit{Christian name}\\
+% \textit{multiple names}\\
+% \textit{praenomen}\footnotemark\\
+% \hphantom{Family/clan name}}\hfill
+% \tcbox[equal height group=A,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Surname(s):\\ \meta{SNN}}]{%
+% Family name:\\
+% \textit{of father, mother}\\
+% \textit{ancestor, vocation}\\
+% \textit{origin, region}\\
+% \textit{nomen, cognomen}\\
+% \textit{patronym}\\
+% \vspace{-2ex}\hphantom{\textit{ancestor, vocation}}}\hfill
+% \tcbox[equal height group=A,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Affix}}]{%
+% Sobriquet/title:\\
+% \textit{Sr., Jr., III\dots}\\
+% \textit{notable attribute}\\
+% \textit{origin, region}}
+%
+% \begin{tcolorbox}[colback=white,colframe=nared,adjusted title={\bfseries\sffamily Alternate Name(s): \meta{Alternate}}]
+% \centering In the body text, not the index, \meta{Alternate} swaps with \meta{FNN}\\
+% for Western names and \meta{Affix} for all other name categories.
+% \end{tcolorbox}
% \end{tcolorbox}
-% \else
-% \begin{enumerate}[noitemsep]
-% \item Western Name:\medskip\\
-% \begin{tabular}{p{0.28\textwidth}p{0.28\textwidth}p{0.28\textwidth}}
-% \strut\textbf{Forename(s)} &
-% \strut\textbf{Surname(s)} &
-% \strut\textbf{\color{nared}Descriptor}\smallskip\\
-% \strut Personal name(s): &
-% \strut Family name: &
-% \strut Sobriquet\,/\,title:\smallskip\\
-% \textit{baptismal name}\newline
-% \textit{Christian name}\newline
-% \textit{multiple names}\newline
-% \textit{praenomen}\footnotemark &
-% \textit{of father, mother}\newline
-% \textit{ancestor, vocation}\newline
-% \textit{origin, region}\newline
-% \textit{nomen, cognomen}\newline
-% \textit{patronym} &
-% \textit{Sr., Jr., III\dots}\newline
-% \textit{notable attribute}\newline
-% \textit{origin, region}\medskip\\
-% \end{tabular}\\
-%
-% \noindent \textbf{Alternate Name(s):} In the body text, not the index, \meta{Alternate} swaps with \meta{FNN} for Western names and \meta{Affix} for all other name categories.\medskip\\
-% \item Eastern Name:\medskip\\
-% \begin{tabular}{p{0.28\textwidth}p{0.28\textwidth}p{0.28\textwidth}}
-% \textbf{Family name} &
-% \textbf{Given name} &
-% \textbf{\color{nared}Descriptor}\smallskip\\
-% Family\,/\,clan name &
-% \textit{Seldom multiple}\newline
-% \textit{names; multi-}\newline
-% \textit{character okay.} &
-% Title, etc.\newline
-% \textit{(old syntax for}\newline
-% \textit{personal names)}\medskip\\
-% \end{tabular}
-%
-% \item Ancient name:\medskip\\
-% \begin{tabular}{p{0.28\textwidth}p{0.28\textwidth}p{0.28\textwidth}}
-% \textbf{Personal name} &
-% \textbf{\color{nared}Descriptor} &
-% \textbf{\color{nared}Alt. Desc.}\smallskip\\
-% Given name(s): &
-% Sobriquet\,/\,title: &
-% Alternate name:\smallskip\\
-% &
-% \textit{Sr., Jr., III\dots}\newline
-% \textit{notable attribute}\newline
-% \textit{origin, region}\newline
-% \textit{patronym} &
-% \textit{(old syntax for}\newline
-% \textit{titles, etc.)}\\
-% \end{tabular}
-% \end{enumerate}\fi
-%\begingroup
-%\newif\ifSkipGens
-%\newif\ifNoGens
-%\newif\ifSkipAgnomen
-%\newif\ifNoAgnomen
-%\newcommand*\SCIPi{\unless\ifNoGens Publius Cornelius\else Publius\fi}
-%\newcommand*\SCIPii{\unless\ifNoAgnomen Scipio Africanus\else Scipio\fi}
-%\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
-%\renewcommand*\NamesFormat[1]%^^A
-% {\sffamily\color{nablue}\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%^^A
-% \global\SkipGensfalse\global\SkipAgnomenfalse}
-%\renewcommand*\MainNameHook[1]%^^A
-% {\sffamily\color{nabrown}\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%^^A
-% \global\SkipGensfalse\global\SkipAgnomenfalse}
-% \footnotetext{How one handles Roman names depends on index entry form; some possible suggestions are given above. Explained on page~\pageref{page:Sobriquets} and following, we have a name \ScipioOnly\ that can be \SkipGenstrue\Scipio\ or just \SkipGenstrue\ScipioOnly, using macro expansion.}
-% \endgroup
+%
+% \begin{tcolorbox}[colframe=naslate,adjusted title={``Native'' Eastern Name}]\centering
+% \tcbox[equal height group=B,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Family name:\\ \meta{SNN}}]{Family/clan name}\hfill
+% \tcbox[equal height group=B,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Personal name:\\ \meta{Affix}}]{Few multiple\\
+% names; multi-\\
+% character okay.\\
+% \vspace{-2ex}\hphantom{\textit{ancestor, vocation}}}\hfill
+% \tcbox[equal height group=B,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Alternate}}]{%
+% Replaces \meta{Affix}\\
+% (new); personal\\
+% name (obsolete)\\
+% \vspace{-2ex}\hphantom{Sobriquet/title:}}
+% \end{tcolorbox}
+%
+% \begin{tcolorbox}[colframe=naslate,adjusted title={Royal/Medieval/Ancient Name}]\centering
+% \tcbox[equal height group=C,on line,tikznode,colback=white,adjusted title={\bfseries\sffamily Personal name:\\ \meta{SNN}}]{Given name(s)\\
+% \hphantom{Family/clan name}}\hfill
+% \tcbox[equal height group=C,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Affix}}]{%
+% Sobriquet/title:\\
+% \textit{Sr., Jr., III\dots}\\
+% \textit{notable attribute}\\
+% \textit{origin, region}\\
+% \textit{patronym}\\
+% \vspace{-2ex}\hphantom{\textit{ancestor, vocation}}}\hfill
+% \tcbox[equal height group=C,on line,tikznode,colback=white,colframe=nared,adjusted title={\bfseries\sffamily Descriptor:\\ \meta{Alternate}}]{%
+% Alternate name\\
+% Replaces \meta{Affix}\\
+% (new); titles,\\
+% etc. (obsolete)\\
+% \hphantom{Sobriquet/title:}}
+% \end{tcolorbox}
+%
+% \footnotetext{How one handles Roman names depends on index entry form; some possible suggestions are given above. See more on page~\pageref{page:Romani} and following.}
% \newpage
%
-% \subsubsection{Traditional Interface}
+% \subsection{Basic Interface}
% \label{sec:TradStart}
%
-% Mandatory arguments are shown in \emph{black}, with optional elements in \emph{\color{nared}red}. If the required argument \meta{SNN} expands to the empty string, \textsf{nameauth} will generate a package error. Extra spaces around each argument are stripped (Section~\ref{sec:ErrorProt}). The argument patterns shown here are used in many \textsf{nameauth} macros.
-%
-% \bgroup\ifDoTikZ
-% \begin{tcolorbox}[colframe=naslate,adjusted title={Western Names}]\centering
+% Using \textsf{nameauth}\Illus{} allows one to use names according to one's culture of origin. The name arguments in this section are used in many \textsf{nameauth} macros.
+% \begin{itemize}
+% \item The name form's required arguments are shown below in \emph{black}, with optional elements shown in \emph{\color{nared}red}.
+% \item If the required argument \meta{SNN} expands to the empty string, \textsf{nameauth} will generate a package error.
+% \item Extra spaces around each argument are stripped.
+% \item Always include all name arguments to have consistent index entries.
+% \item \cmd{\Name} prints first uses of names long, then short thereafter. \cmd{\Name*} always creates a long form. \cmd{\FName} prints a short form in later uses.
+% \end{itemize}\leavevmode
+%
+% \begin{tcolorbox}[colframe=naslate,adjusted title={\large\hfil Western Name}]\centering
% \begin{tabular}{l@{ }c@{ }c@{ }c}
% & \small Required & \small Required & \small Optional,\\
% & \small forename(s) & \small surname(s), & \small in text only \\
% & & \small optional \meta{Affix}\smallskip\\
-% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{\space}}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
+% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{ }}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\oarg{FNN}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\marg{SNN\color{nared}, Affix}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\oarg{\color{nared}Alternate}}
% \end{tabular}
%
% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN\color{nared}, Affix}} if other text in brackets \texttt{\bfseries[\,]} follows.
-% \end{tcolorbox}
-% \else
-% \bigskip\noindent{\bfseries Western Names}
-%
-% \bigskip\begin{tabular}{lccc}
-% & \small Required & \small Required surname(s), & \small Optional,\\
-% & \small forename(s) & \small optional \meta{Affix} & \small in text only\smallskip\\
-% \cmd{\Name}\\
-% \cmd{\Name*} & \bfseries\oarg{FNN} & \bfseries\marg{SNN\color{nared}, Affix} & \bfseries\oarg{\color{nared}Alternate}\\
-% \cmd{\FName}
-% \end{tabular}\\
+% \end{tcolorbox}\medskip
%
-% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN\color{nared}, Affix}} if other text in brackets \texttt{\bfseries[\,]} follows.
-% \fi\egroup
-%
-% \begin{center}\bfseries Examples\end{center}
-%
-% \noindent Western names require the \meta{FNN} argument to be present. One always includes all arguments for consistent index entries. The simplified interface (Section~\ref{sec:SimpleStart}) cuts down the amount of typing in many cases.\medskip
-%
-% \bgroup\MyStretch\noindent%
-% |\Name [George]{Washington}|\dotfill\Name[George]{Washington}\\
-% |\Name*[George]{Washington}|\dotfill\Name*[George]{Washington}\\
-% |\Name [George]{Washington}|\dotfill\Name[George]{Washington}\\
-% |\FName[George]{Washington}|\dotfill\FName[George]{Washington}\smallskip\\
-% |\Name [George S.]{Patton, Jr.}|\dotfill\Name[George S.]{Patton, Jr.}\\
-% |\Name*[George S.]{Patton, Jr.}|\dotfill\Name*[George S.]{Patton, Jr.}\\
-% |\Name [George S.]{Patton, Jr.}|\dotfill\Name[George S.]{Patton, Jr.}\\
-% |\FName[George S.]{Patton, Jr.}|\dotfill\FName[George S.]{Patton, Jr.}\egroup\medskip
-%
-% The \meta{Alternate} argument will swap with \meta{FNN} in the text, not in the index or the name pattern (Section~\ref{sec:NamePatterns}). To see alternate names, one must use a macro that shows forenames (first use, \cmd{\Name*}, and \cmd{\FName}). Western names require a comma to delimit affixes (Section~\ref{sec:Affix}). Below we see alternate names:\medskip
-%
-% \bgroup\MyStretch\noindent%
-% |\DropAffix\Name*[George S.]{Patton, Jr.}[George]|\dotfill\DropAffix\Name*[George S.]{Patton, Jr.}[George]\smallskip\\
-% |\Name [John David]{Rockefeller, IV}|\dotfill\Name[John David]{Rockefeller, IV}\\
-% |\Name*[John David]{Rockefeller, IV}[Jay]|\dotfill\Name*[John David]{Rockefeller, IV}[Jay]\\
-% |\DropAffix\Name*[John David]{Rockefeller, IV}[Jay]|\dotfill\DropAffix\Name*[John David]{Rockefeller, IV}[Jay]\\
-% |\Name [John David]{Rockefeller, IV}[Jay]|\dotfill\Name[John David]{Rockefeller, IV}[Jay]\smallskip\\
-% |\Name [Clive Staples]{Lewis}|\dotfill\Name[Clive Staples]{Lewis}\\
-% |\Name*[Clive Staples]{Lewis}[C.S.]|\dotfill\Name*[Clive Staples]{Lewis}[C.S.]\\
-% |\FName[Clive Staples]{Lewis}[Jack]|\dotfill\FName[Clive Staples]{Lewis}[Jack]\egroup\medskip
-%
-% In addition to alternate forenames, one also can display alternate surnames, but that uses several different approaches (Sections~\ref{sec:VarNames}, \ref{sec:NameParticles}, \ref{sec:AltAdvanced}, \ref{sec:Hooksiii}).
+% \noindent
+% Within \textsf{nameauth}, Western names have distinct features:
+% \begin{itemize}
+% \item Western names must use the first optional \meta{FNN} argument.
+% \item They require a comma to delimit any affixes (Section~\ref{sec:Affix}).
+% \item Western index entries have two general forms: \meta{SNN}, \meta{FNN} and \meta{SNN}, \meta{FNN}, \meta{Affix}.
+% \item They do not share control patterns (Section~\ref{sec:NamePatterns}) and index entry forms with non-Western names.
+% \end{itemize}\smallskip
+%
+% \bgroup\MyStretch\noindent
+% |\Name [George]{Washington}|\SPatInfo{\ShowPattern[George]{Washington}\break\ShowPattern[George S.]{Patton, Jr.}}\dotfill \Name [George]{Washington}\\
+% |\Name*[George]{Washington}|\dotfill \Name*[George]{Washington}\\
+% |\Name [George]{Washington}|\dotfill \Name [George]{Washington}\\
+% |\FName[George]{Washington}|\IdxInfo{\ShowIdxPageref*[George]{Washington}\break\ShowIdxPageref*[George S.]{Patton, Jr.}}\dotfill \FName[George]{Washington}\medskip\\
+% |\Name [George S.]{Patton, Jr.}|\dotfill \Name [George S.]{Patton, Jr.}\\
+% |\Name*[George S.]{Patton, Jr.}|\dotfill \Name*[George S.]{Patton, Jr.}\\
+% |\Name [George S.]{Patton, Jr.}|\dotfill \Name [George S.]{Patton, Jr.}\\
+% |\FName[George S.]{Patton, Jr.}|\dotfill \FName[George S.]{Patton, Jr.}^^A
+% \egroup\medskip
+%
+% Below, \meta{Alternate} swaps with \meta{FNN} only in the text. Alternate forenames print in the text with a first use, \cmd{\Name*}, or \cmd{\FName}. Use \cmd{\DropAffix}, a prefix macro (Section~\ref{sec:SelectOver}), to drop affixes in long name forms, but only in the text.\medskip
% \newpage
%
-% \bgroup\ifDoTikZ
-% \begin{tcolorbox}[colframe=naslate,adjusted title={``Non-native'' Eastern Names, Western Index Entry}]\centering
+% \bgroup\MyStretch\noindent
+% |\Name*[George S.]{Patton, Jr.}|\SPatInfo{\ShowPattern[George S.]{Patton, Jr.}\break \ShowPattern[J.D.]{Rockefeller, IV}\break \ShowPattern[Clive Staples]{Lewis}}\dotfill \Name*[George S.]{Patton, Jr.}\\
+% |\DropAffix\Name*[George S.]{Patton, Jr.}[George]|\dotfill \DropAffix\Name*[George S.]{Patton, Jr.}[George]\medskip\\
+% |\Name [J.D.]{Rockefeller, IV}|\dotfill \Name [J.D.]{Rockefeller, IV}\\
+% |\Name*[J.D.]{Rockefeller, IV}[John David]|\dotfill \Name*[J.D.]{Rockefeller, IV}[John David]\\
+% \vspace{-2ex}\IdxInfo{\ShowIdxPageref*[George S.]{Patton, Jr.}\break \ShowIdxPageref*[J.D.]{Rockefeller, IV}\break \ShowIdxPageref*[Clive Staples]{Lewis}}\vspace{2ex}|\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]|\dotfill \DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]\\
+% |\Name [J.D.]{Rockefeller, IV}[Jay]|\dotfill \Name [J.D.]{Rockefeller, IV}[Jay]\medskip\\
+% |\Name [Clive Staples]{Lewis}|\dotfill \Name [Clive Staples]{Lewis}\\
+% |\Name*[Clive Staples]{Lewis}[C.S.]|\dotfill \Name*[Clive Staples]{Lewis}[C.S.]\\
+% |\FName[Clive Staples]{Lewis}[Jack]|\dotfill \FName[Clive Staples]{Lewis}[Jack]^^A
+% \egroup\medskip
+%
+% Use the first name for sorting names instead of the initials, as with \DropAffix\Name*[J.D.]{Rockefeller, IV}: |\PretagName[J.D.]{Rockefeller, IV}{Rockefeller, John D 4}| (Section~\ref{sec:IndexSort}).
+% For alternate surnames see Sections~\ref{sec:VarNames}, \ref{sec:NameAncient}, \ref{sec:AltAdvanced}, \ref{sec:Hooksiii}.
+% \medskip
+%
+% \begin{tcolorbox}[colframe=naslate,adjusted title={\large\hfil ``Non-native'' Eastern Name}]\centering
% \begin{tabular}{l@{ }c@{ }c@{ }c}
% & \small Required & \small Required & \small Optional,\\
% & \small forename(s) & \small surname(s), & \small in text only \\
% & & \small no \meta{Affix}\smallskip\\
-% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{\space}}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
+% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{ }}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\oarg{FNN}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\marg{SNN}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\oarg{\color{nared}Alternate}}
% \end{tabular}
%
% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN}} if other text in brackets \texttt{\bfseries[\,]} follows.
-% \end{tcolorbox}
-% \else
-% \bigskip\noindent{\bfseries ``Non-native'' Eastern Names, Western Index Entry}
-%
-% \bigskip\begin{tabular}{lccc}
-% & \small Required & \small Required surname(s), & \small Optional,\\
-% & \small forename(s) & \small no \meta{Affix} & \small in text only\smallskip\\
-% \cmd{\Name}\\
-% \cmd{\Name*} & \bfseries\oarg{FNN} & \bfseries\marg{SNN} & \bfseries\oarg{\color{nared}Alternate}\\
-% \cmd{\FName}
-% \end{tabular}\\
-%
-% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN}} if other text in brackets \texttt{\bfseries[\,]} follows.
-% \fi\egroup
-%
-%
-% \begin{center}\bfseries Examples\end{center}
-%
-% \noindent Below we start with ``regular'' Western name forms:\medskip
-%
-% \bgroup\noindent\MyStretch|\Name[Hideyo]{Noguchi}|\dotfill\Name[Hideyo]{Noguchi}\\
-% |\Name*[Hideyo]{Noguchi}[Doctor]|\dotfill\Name*[Hideyo]{Noguchi}[Doctor]\\
-% |\Name[Frenec]{Molnár}|\dotfill\Name[Frenec]{Molnár}\egroup\medskip
-%
-% To turn them into ``non-native'' Eastern names or proper Hungarian names [\hyperlink{Mulvany}{Mulvany}, 166] we use the reversing macros and leave the \meta{Alternate} argument empty (Section~\ref{sec:Eastern}). Index entries are in Western style: \meta{SNN}, \meta{FNN}:\medskip
+% \end{tcolorbox}\medskip
%
-% \bgroup\MyStretch\noindent|\CapName\RevName\Name*[Hideyo]{Noguchi}|\dotfill\CapName\RevName\Name*[Hideyo]{Noguchi}\dag\\
-% |\CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]|\dotfill\CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]\dag\\
-% |\RevName\Name*[Frenec]{Molnár}|\dotfill\RevName\Name*[Frenec]{Molnár}\dag\egroup\medskip
-%
-% Reversed Western forms do not work with the older syntax (Section~\ref{sec:Obsolete}) and \emph{they do not share name control sequences and index entries} with ``native'' Eastern names and ancient name forms (Section~\ref{sec:NamePatterns}).
+% \noindent
+% ``Non-native'' Eastern names (Section~\ref{sec:Eastern}) have these features:
+% \begin{itemize}
+% \item They must use the first optional \meta{FNN} argument.
+% \item They cannot use affixes; one would get \meta{FNN} \meta{Affix} \meta{SNN}.
+% \item Index entries have the Western form with no affix: \meta{SNN}, \meta{FNN}.
+% \item They do not share control patterns and index entry forms with non-Western names.
+% \item They do not work with the obsolete syntax (Section~\ref{sec:Obsolete}).
+% \end{itemize}
+% % Below we start with Western name forms:\medskip
+%
+% \bgroup\noindent\MyStretch
+% |\Name [Hideyo]{Noguchi}|\SPatInfo{\ShowPattern[Hideyo]{Noguchi}\break\ShowPattern[Frenec]{Molnár}}\dotfill \Name [Hideyo]{Noguchi}\hbox to 0.45em{\hfill}\\
+% |\Name*[Hideyo]{Noguchi}[Doctor]|\dotfill \Name*[Hideyo]{Noguchi}[Doctor]\hbox to 0.45em{\hfill}\\
+% |\Name [Frenec]{Molnár}|\dotfill \Name [Frenec]{Molnár}\footnote{With \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern[Frenec]{Molnár}} the glyphs \texttt{Ãą} correspond to \cmd{\IeC\{\textbackslash\textquotesingle a\}}.}^^A
+% \egroup\medskip
+%
+% \vspace{1.5ex}\IdxInfo{\ShowIdxPageref*[Hideyo]{Noguchi}\break\ShowIdxPageref*[Frenec]{Molnár}}\vspace{-1.5ex}\noindent We use the prefix macros \cmd{\RevName} and optionally \cmd{\CapName} (Section~\ref{sec:SelectOver}) to print an Eastern or Hungarian name order in the text [\hyperlink{Mulvany}{Mulvany}, 166]. We see above that these macros work in context, not arbitrarily:\medskip
+%
+% \bgroup\vspace{2.4ex}\Info{Same name patterns and\break index entries as above.}\vspace{-2.4ex}\MyStretch\noindent
+% |\CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]|\dotfill \CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]\dag\\
+% |\CapName\RevName\Name [Hideyo]{Noguchi}[Sensei]|\dotfill \CapName\RevName\Name [Hideyo]{Noguchi}[Sensei]\dag\\
+% |\RevName\Name*[Frenec]{Molnár}|\dotfill \RevName\Name*[Frenec]{Molnár}\dag\\
+% |\RevName\Name [Frenec]{Molnár}|\dotfill \RevName\Name [Frenec]{Molnár}\dag^^A
+% \egroup
+% \newpage
%
-% \bgroup\ifDoTikZ
-% \begin{tcolorbox}[colframe=naslate,adjusted title={\bfseries ``Native'' Eastern Names in the Text, Eastern Index Entry}]\centering
+% \begin{tcolorbox}[colframe=naslate,adjusted title={\large\hfil ``Native'' Eastern Name}]\centering
% \begin{tabular}{l@{ }c@{ }c}
% & \small Required surname & \small Optional,\\
% & \small and forename & \small in text only\smallskip\\
-% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{\space}}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
+% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{ }}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\marg{SNN, Affix}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\oarg{\color{nared}Alternate}}
% \end{tabular}
%
% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN, Affix}} if other text in brackets \texttt{\bfseries[\,]} follows.
-% \end{tcolorbox}
-% \else
-% \bigskip\noindent{\bfseries ``Native'' Eastern Names in the Text, Eastern Index Entry}
+% \end{tcolorbox}\medskip
%
-% \bigskip\begin{tabular}{lcc}
-% & \small Required Surname & \small Optional,\\
-% & \small and forename & \small in text only\smallskip\\
-% \cmd{\Name}\\
-% \cmd{\Name*} & \bfseries\marg{SNN, Affix} & \bfseries\oarg{\color{nared}Alternate}\\
-% \cmd{\FName}
-% \end{tabular}\\
+% \noindent
+% These features denote ``native'' Eastern names in \textsf{nameauth}:
+% \begin{itemize}
+% \item They must \emph{leave empty} the \meta{FNN} argument.
+% \item They use instead the \meta{SNN, Affix} arguments.
+% \item Their index entries take the non-Western form: \meta{SNN Affix}.
+% \item They do not share control patterns and index entry forms with both Western names and ``non-native'' Eastern names.
+% \end{itemize}
%
-% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN, Affix}} if text in brackets \texttt{\bfseries[\,]} follows.
-% \fi\egroup
+% The basic forms of ``native'' Eastern names are shown below. Notice that the macro \cmd{\FName} does not show the personal name by default. This design choice helps to prevent one from naively causing offense:\medskip
%
-% \begin{center}\bfseries Examples\end{center}
+% \bgroup\MyStretch\noindent
+% \SPatInfo{\ShowPattern{Miyazaki, Hayao}}|\Name {Miyazaki, Hayao}|\dotfill \Name {Miyazaki, Hayao}\\
+% |\Name {Miyazaki, Hayao}|\dotfill \Name {Miyazaki, Hayao}\\
+% \IdxInfo{\ShowIdxPageref*{Miyazaki, Hayao}}|\FName{Miyazaki, Hayao}|\dotfill \FName{Miyazaki, Hayao}^^A
+% \egroup\medskip
%
-% \noindent The comma-delimited required argument, \meta{SNN, Affix}, is the key to non-Western names, which always take the form \meta{SNN Affix} in the index. See Section~\ref{sec:Eastern}. ``Native'' Eastern names have Eastern name order from the start and \emph{they do not share name control sequences and index entries} with Western names (Section~\ref{sec:NamePatterns}). They can be reversed to have Western name order in the body text.
-% \newpage
+% If ``Native'' Eastern names are reversed, they will have Western name order in the text, but \emph{they will retain Eastern-form index entries.}
%
-% Except\Version{3.0} for mononyms, non-Western forms also can have alternate names. This is incompatible with the older syntax (see Section~\ref{sec:Obsolete}). Unless the index must have Western-style entries, ``native'' forms are best for Eastern names:\medskip
+% One must use the prefix macro \cmd{\ForceFN} (Section~\ref{sec:SelectOver}) with \cmd{\FName} to get a personal name. \meta{Alternate} swaps with \meta{FNN} (in long forms and in short forms using \cmd{\ForceFN}) in the text only. \meta{Alternate} does not work with the obsolete syntax (Section~\ref{sec:Obsolete}):\medskip
%
-% \bgroup\MyStretch\noindent|\Name{Yamamoto, Isoroku}|\dotfill\Name{Yamamoto, Isoroku}\\
-% |\Name{Yamamoto, Isoroku}|\dotfill\Name{Yamamoto, Isoroku}\\
-% |\RevName\Name*{Yamamoto, Isoroku}[Admiral]|\dotfill\RevName\Name*{Yamamoto, Isoroku}[Admiral]\smallskip\\
-% |\Name{Miyazaki, Hayao}|\dotfill\Name{Miyazaki, Hayao}\\
-% |\Name*{Miyazaki, Hayao}[Sensei]|\dotfill\Name*{Miyazaki, Hayao}[Sensei]\\
-% |\RevName\Name*{Miyazaki, Hayao}[Mr.]|\dotfill\RevName\Name*{Miyazaki, Hayao}[Mr.]\egroup\medskip
+% \bgroup\vspace{2.4ex}\Info{Same name patterns and\break index entries as above.}\vspace{-2.4ex}\MyStretch\noindent
+% |\ForceFN\FName{Miyazaki, Hayao}|\dotfill \ForceFN\FName{Miyazaki, Hayao}\\
+% |\CapName\Name*{Miyazaki, Hayao}[Sensei]|\dotfill \CapName\Name*{Miyazaki, Hayao}[Sensei]\\
+% |\ForceFN\FName{Miyazaki, Hayao}[Sensei]|\dotfill \ForceFN\FName{Miyazaki, Hayao}[Sensei]\\
+% |\RevName\Name*{Miyazaki, Hayao}[Mr.]|\dotfill \RevName\Name*{Miyazaki, Hayao}[Mr.]^^A
+% \egroup\medskip
+%
+% ``Native'' Eastern names have the same kind of macro parameters as do royal, medieval, and ancient names from Europe and the Near East (below). From the standpoint of how the macros work, one can identify ``non-western'' names with the form \meta{SNN, Affix}.
+%
+% Yet one should not confuse similarity in form with similarity in what the names themselves mean. Even though the syntactic form of non-Western names works the same, that form has different meanings in different contexts. For one context, \meta{SNN, Affix} refers to a family name and a personal name. For another context, \meta{SNN, Affix} refers to a person's name and any affixes thereto.
+% \newpage
%
-% \bgroup\ifDoTikZ
-% \begin{tcolorbox}[colframe=naslate,adjusted title={\bfseries Ancient and Medieval Names}]\centering
+% \begin{tcolorbox}[colframe=naslate,adjusted title={\large\hfil Royal/Medieval/Ancient Name}]\centering
% \begin{tabular}{l@{ }c@{ }c}
% & \small Required name & \small Optional,\\
% & \small optional \meta{Affix} & \small in text only\smallskip\\
-% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{\space}}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
+% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\strut \hbox{\cmd{\Name}\texttt{ }}\\ \strut \cmd{\Name*}\\ \strut \cmd{\FName}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\marg{SNN\color{nared}, Affix}} &
% \tcbox[equal height group=D,colback=white,tikznode,left=1mm,right=1mm,valign=center]{\bfseries\oarg{\color{nared}Alternate}}
% \end{tabular}
%
% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN\color{nared}, Affix}} if other text in brackets \texttt{\bfseries[\,]} follows.
-% \end{tcolorbox}
-% \else
-% \bigskip\noindent{\bfseries Ancient and Medieval Names}
-%
-% \bigskip\begin{tabular}{lcc}
-% & \small Required name & \small Optional,\\
-% & \small optional \meta{Affix} & \small in text only\smallskip\\
-% \cmd{\Name}\\
-% \cmd{\Name*} & \bfseries\marg{SNN\color{nared}, Affix} & \bfseries\oarg{\color{nared}Alternate}\\
-% \cmd{\FName}
-% \end{tabular}\\
-%
-% Add braces \texttt{\bfseries\{\,\}} after {\bfseries\marg{SNN\color{nared}, Affix}} if other text in brackets \texttt{\bfseries[\,]} follows.
-% \fi\egroup
+% \end{tcolorbox}\medskip
%
-% \begin{center}\bfseries Examples\end{center}
-%
-% \noindent These forms are meant for royalty and ancient figures. They can be mononyms or have multiple names, and may have an affix. Note the teaser for Section~\ref{sec:FName}:\medskip
-%
-% \bgroup\MyStretch\noindent|\Name{Aristotle}|\dotfill\Name{Aristotle}\\
-% |\Name{Aristotle}|\dotfill\Name{Aristotle}\smallskip\\
-% |\Name{Elizabeth, I}|\dotfill\Name{Elizabeth, I}\\
-% |\Name{Elizabeth, I}|\dotfill\Name{Elizabeth, I}\\
-% |\ForceFN\FName{Elizabeth, I}[Good Queen Bess]|\dotfill\ForceFN\FName{Elizabeth, I}[Good Queen Bess]\egroup
+% \noindent
+% These features denote royal, medieval, and ancient names in \textsf{nameauth}, grouped under the general rubric of ``non-Western'' name forms:
+% \begin{itemize}
+% \item They must \emph{leave empty} the \meta{FNN} argument.
+% \item They use instead the \meta{SNN, Affix} arguments or just \meta{SNN}.
+% \item Their index entries take the non-Western forms: \meta{SNN Affix} or \meta{SNN}.
+% \item Names\Version{3.0} with the form \meta{SNN, Affix} can use the \meta{Alternate} argument.
+% \item Names with the form \meta{SNN} cannot use \meta{Alternate}.
+% \item They do not share control patterns and index entry forms with both Western names and ``non-native'' Eastern names.
+% \end{itemize}
%
-% \subsubsection{Simplified Interface}
+% As with ``native'' Eastern names, \cmd{\FName} prints \meta{SNN} unless forced otherwise by \cmd{\ForceFN}. This guards against nonsense names in the text:\medskip
+%
+% \bgroup\MyStretch\noindent
+% |\Name {Elizabeth, I}|\SPatInfo{\ShowPattern{Elizabeth, I}\break \ShowPattern{John, Eriugena}\break \ShowPattern{Aristotle}}\dotfill \Name {Elizabeth, I}\\
+% |\Name {Elizabeth, I}|\dotfill \Name {Elizabeth, I}\\
+% |\FName{Elizabeth, I}|\dotfill \FName{Elizabeth, I}\\
+% |\ForceFN\FName{Elizabeth, I}|\dotfill \ForceFN\FName{Elizabeth, I}\\
+% |\ForceFN\FName{Elizabeth, I}[Good Queen Bess]|\IdxInfo{\ShowIdxPageref*{Elizabeth, I}\break \ShowIdxPageref*{John, Eriugena}\break \ShowIdxPageref*{Aristotle}}\dotfill \ForceFN\FName{Elizabeth, I}[Good Queen Bess]\medskip\\% |\Name{John, Eriugena}|\dotfill \Name{John, Eriugena}\\
+% |\Name{John, Eriugena}|\dotfill \Name{John, Eriugena}\\
+% |\ForceFN\FName{John, Eriugena}|\dotfill \ForceFN\FName{John, Eriugena}\medskip\\
+% |\Name{Aristotle}|\dotfill \Name{Aristotle}\\
+% |\Name{Aristotle}|\dotfill \Name{Aristotle}^^A
+% \egroup
+%
+% \subsection{Quick Interface}
% \label{sec:SimpleStart}
-%
% \DescribeEnv{nameauth}
-% Although not required, using the \texttt{nameauth} environment in the preamble guards against undefined macros. This environment defines a tabular-like macro:
+% To reduce typing, we replace frequently-used macros with the shorthand forms of the quick interface. Using the \texttt{nameauth} environment in the preamble guards against undefined macros. It defines a delimited macro \cmd{\<}, recalling a \texttt{tabular}:
% \begin{quote}
-% \fbox{\vbox{
-% \hbox{\mystrut\ \cmd{\begin\{nameauth\}}}\par
-% \hbox{\hspace{2em}\cmd{\<} \meta{arg1} \texttt{\&} \meta{arg2} \texttt{\&} \meta{arg3} \texttt{\&} \meta{arg4} \texttt{>} }\par
-% \hbox{\mystrut\ \cmd{\end\{nameauth\}}}}}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\begin\{nameauth\}}\\
+% \hspace{2em}\cmd{\<} \meta{arg1} \texttt{\&} \meta{arg2}
+% \texttt{\&} \meta{arg3} \texttt{\&} \meta{arg4} \texttt{>}\vspace{-1pt}\\
+% {\Large\strut}\cmd{\end\{nameauth\}}\\
+% \end{tabular}
+% }
% \end{quote}
-% It uses \meta{arg1} as a basis to create three macros that are equivalent to:\medskip
+% \newpage
+%
+% \noindent
+% The macro \cmd{\<} uses \meta{arg1} as a basis to create three new macros per name:\medskip
%
-% \begin{tabular}{@{\quad}l@{\ \(\rightarrow\)\ }ll}
-% \texttt{\textbackslash}\meta{arg1} & \cmd{\Name}\oarg{arg2}\marg{arg3}\oarg{arg4} \\
+% \begin{tabular}{@{\quad}l@{\ same as: }ll}
+% \texttt{\textbackslash}\meta{arg1} & \cmd{\Name\ }\oarg{arg2}\marg{arg3}\oarg{arg4} \\
% \texttt{\textbackslash L}\meta{arg1} & \cmd{\Name*}\oarg{arg2}\marg{arg3}\oarg{arg4} & {\color{nared} |%| L for \textit{long}} \\
% \texttt{\textbackslash S}\meta{arg1} & \cmd{\FName}\oarg{arg2}\marg{arg3}\oarg{arg4} & {\color{nared} |%| S for \textit{short}} \\
% \end{tabular}\medskip\\
-% If either \meta{arg1} or \meta{arg3} are empty, or \meta{SNN} is empty, \textsf{nameauth} will generate a package error. Forgetting the backslash, ampersands, or angle brackets will cause errors. For more on \meta{arg4} see page~\pageref{page:ArgIV}.
-% \newpage
-%
-% Comments below are not part of the environment. Extra spaces in each argument are stripped (Section~\ref{sec:ErrorProt}). Put trailing braces \texttt{\{\,\}} or something else after the shorthand macros if text in brackets \texttt{[\,]} follows, so it does not become an optional argument. Below we introduce name forms with particles.
-%
-% \begin{center}\bfseries Examples\end{center}
-% \def\startrowa{\ \ \cmd{\< }}
-% \def\startrowb{\color{nared}\% }
-% \def\midrowa{\texttt{ \& }}
-% \def\midrowb{\texttt{\ \ \ }}
-% \def\endrowa{\texttt{ >}}
-% \def\endrowb{}
-% \def\startrow{\startrowb}
-% \def\midrow{\midrowb}
-% \def\endrow{\endrowb}
+% If either \meta{arg1} or \meta{arg3} are empty, or \meta{SNN} is empty, \textsf{nameauth} will generate a package error. Forgetting the backslash, any ampersand, argument, or angle bracket will cause errors. The \meta{Alternate} field is \meta{arg4} (see below).
+%
+% Here we do not show the obsolete syntax (Section~\ref{sec:Obsolete}). Comments are not part of the \texttt{nameauth} environment. Extra spaces around each argument are stripped. Put trailing braces \texttt{\{\,\}} after the shorthand macros if text in brackets \texttt{[\,]} follows. We introduce Western name forms with particles (followed by {\color{nared}\textit{W. part.}}).\medskip
+%
+% \def\startrowa{\ \ \cmd{\< }}^^A
+% \def\startrowb{\color{nared}\% }^^A
+% \def\midrowa{\texttt{ \& }}^^A
+% \def\midrowb{\texttt{\ \ \ }}^^A
+% \def\endrowa{\texttt{ >}}^^A
+% \def\endrowb{}^^A
+% \def\startrow{\startrowb}^^A
+% \def\midrow{\midrowb}^^A
+% \def\endrow{\endrowb}^^A
% \bgroup\noindent\ttfamily\small| \begin{nameauth}|\\
% \begin{tabular}{>{\startrow}l@{\midrow}l@{\midrow}l@{\midrow}l@{\endrow}l}
-% {\normalfont\color{nared}\quad\ \ \,\meta{arg1}}\gdef\startrow{\startrowa} & {\normalfont\color{nared}\meta{arg2}} & {\normalfont\color{nared}\meta{arg3}} & {\normalfont\color{nared}\meta{arg4}}\\\gdef\midrow{\midrowa}\gdef\endrow{\endrowa}%^^A
-% Wash & George & Washington & &{\color{nared} \% \normalfont\textit{Western}}\\
-% Harnack & Adolf & Harnack & &{\color{nared} \% \normalfont\textit{Western}}\\
-% Lewis & Clive Staples & Lewis & &{\color{nared} \% \normalfont\textit{Western}}\\
-% Pat & George S. & Patton, Jr. & &{\color{nared} \% \normalfont\textit{W. affix}}\\
-% JRIV & John David & Rockefeller, IV & &{\color{nared} \% \normalfont\textit{W. affix}}\\
-% Ches & Chesley B. & Sullenberger, III & &{\color{nared} \% \normalfont\textit{W. affix}}\\
-% Soto & Hernando & de Soto & &{\color{nared} \% \normalfont\textit{W. part.}}\\
-% JWG & J.W. von & Goethe & &{\color{nared} \% \normalfont\textit{W. part.}}\\
-% VBuren & Martin & Van Buren & &{\color{nared} \% \normalfont\textit{W. part.}}\\
-% Noguchi & Hideyo & Noguchi & &{\color{nared} \% \normalfont\textit{W. as E.}}\\
-% Miyaz & & Miyazaki, Hayao & &{\color{nared} \% \normalfont\textit{Eastern}}\\
-% Yamt & & Yamamoto, Isoroku & &{\color{nared} \% \normalfont\textit{Eastern}}\\
-% Aeth & & Æthelred, II & &{\color{nared} \% \normalfont\textit{Ancient}}\\
-% Attil & & Attila, the Hun & &{\color{nared} \% \normalfont\textit{Ancient}}\\
-% Dem & & Demetrius, I & &{\color{nared} \% \normalfont\textit{Ancient}}\\
-% Eliz & & Elizabeth, I & &{\color{nared} \% \normalfont\textit{Ancient}}\\
-% Aris & & Aristotle & &{\color{nared} \% \normalfont\textit{Mono}}\\
-% CSL & Clive Staples & Lewis & C.S. &{\color{nared} \% \normalfont\textit{W. alt.}}\\
-% MSens & & Miyazaki, Hayao & Sensei &{\color{nared} \% \normalfont\textit{E. alt.}}\\
+% {\normalfont\color{nared}\quad\ \ \,\meta{arg1}}\gdef\startrow{\startrowa} & {\normalfont\color{nared}\meta{arg2}} & {\normalfont\color{nared}\meta{arg3}} & {\normalfont\color{nared}\meta{arg4}}\\\gdef\midrow{\midrowa}\gdef\endrow{\endrowa}^^A
+% Wash & George & Washington & &{\color{nared} \%
+% \normalfont\textit{Western}}\\
+% Lewis & Clive Staples & Lewis & &{\color{nared} \%
+% \normalfont\textit{Western}}\\
+% Pat & George S. & Patton, Jr. & &{\color{nared} \%
+% \normalfont\textit{W. affix}}\\
+% JRIV & J.D. & Rockefeller, IV & &{\color{nared} \%
+% \normalfont\textit{W. affix}}\\
+% Soto & Hernando & de~Soto & &{\color{nared} \%
+% \normalfont\textit{W. part.}}\\
+% JWG & J.W. von & Goethe & &{\color{nared} \%
+% \normalfont\textit{W. part.}}\\
+% VBuren & Martin & Van Buren & &{\color{nared} \%
+% \normalfont\textit{W. part.}}\\
+% Noguchi & Hideyo & Noguchi & &{\color{nared} \%
+% \normalfont\textit{W. as E.}}\\
+% Molnar & Frenec & Molnár & &{\color{nared} \%
+% \normalfont\textit{W. as E.}}\\
+% Miyaz & & Miyazaki, Hayao & &{\color{nared} \%
+% \normalfont\textit{Eastern}}\\
+% Yamt & & Yamamoto, Isoroku & &{\color{nared} \%
+% \normalfont\textit{Eastern}}\\
+% Eliz & & Elizabeth, I & &{\color{nared} \%
+% \normalfont\textit{Royal}}\\
+% Aeth & & Æthelred, II & &{\color{nared} \%
+% \normalfont\textit{Royal}}\\
+% Eriugena & & John, Eriugena & &{\color{nared} \%
+% \normalfont\textit{Medieval}}\\
+% Aris & & Aristotle & &{\color{nared} \%
+% \normalfont\textit{Mono}}\\
+% CSL & Clive Staples & Lewis & C.S. &{\color{nared} \%
+% \normalfont\textit{W. alt.}}\\
+% MSens & & Miyazaki, Hayao & Sensei &{\color{nared} \%
+% \normalfont\textit{E. alt.}}\\
% \end{tabular}\\
-% | \end{nameauth}|\egroup\medskip
+% | \end{nameauth}|\egroup
%
-% \begin{center}\small\MyStretch
-% \begin{tabular}{rlp{0.41\textwidth}}\toprule
-% Output & Short Form & Long Form\\\midrule
-% \Wash & \cmd{\Wash} & \cmd{\Name}\texttt{[George]\{Washington\}}\\
-% \rowcolor{black!7!white}\LWash & \cmd{\LWash} & \cmd{\Name*}\texttt{[George]\{Washington\}}\\
-% \SWash & \cmd{\SWash} & \cmd{\FName}\texttt{[George]\{Washington\}}\\
-% \rowcolor{black!7!white}\JustIndex\Wash & \cmd{\JustIndex}\cmd{\Wash} & \cmd{\IndexName}\texttt{[George]\{Washington\}}\\
-% \Eliz & \cmd{\SubvertThis}\cmd{\Eliz} & \cmd{\SubvertThis}\cmd{\Name}\texttt{\{Elizabeth,I\}}\\
-% \rowcolor{black!7!white}\ForgetThis\Eliz & \cmd{\ForgetThis}\cmd{\Eliz} & \cmd{\ForgetThis}\cmd{\Name}\texttt{\{Elizabeth,I\}}\\\bottomrule
+% \begin{center}\bfseries \meta{Alternate} Tips\end{center}
+% \phantomsection
+% Two shorthands above use \meta{arg4}: \cmd{\CSL} and \cmd{\MSens}. Their similar forms \cmd{\Lewis} and \cmd{\Miyaz} leave \meta{arg4} empty. Here is how they are related:\label{page:ArgIV}
+% \begin{itemize}
+% \item They\SPatInfo{\ShowPattern[Clive Staples]{Lewis}\break \ShowPattern{Miyazaki, Hayao}} share name control patterns (Section~\ref{sec:NamePatterns}). Therefore, they have the same ``first-use'' and ``later-use'' conditions.
+% \item Usually, one adds alternate names to shorthands with an empty \meta{arg4}:\\[1ex]
+% \vspace{-7ex}\IdxInfo{\ShowIdxPageref*[Clive Staples]{Lewis}\break \ShowIdxPageref*{Miyazaki, Hayao}}\vspace{7ex}\leavevmode
+% \begin{tabular}{llll}\toprule
+% \cmd{\LLewis[C.S.]} & \LLewis[C.S.] & \cmd{\LCSL} & \LCSL\\
+% \rowcolor{grey}\cmd{\LMiyaz[Sensei]} & \LMiyaz[Sensei] & \cmd{\LMSens} & \LMSens\\\bottomrule
% \end{tabular}
-% \end{center}
+% \item The field \meta{arg4} contains either \meta{Alternate} or uses the obsolete syntax. Trying to add ``alternate names'' to shorthands that use \meta{arg4} fails:\\[1ex]
+% \begin{tabular}{ll}\toprule
+% \cmd{\LCSL[Jack]} & \LCSL[Jack]\\
+% \rowcolor{grey}\cmd{\LMSens[Sensei]} & \LMSens[Sensei]\\\bottomrule
+% \end{tabular}
+% \end{itemize}
+% \newpage
%
-% English and modern Romance languages keep the particle with the surname. German and other languages do not (cf. Sections~\ref{sec:NameParticles} and~\ref{sec:AltFormat}).\footnote{See also [\hyperlink{Mulvany}{Mulvany}, 152--82], and the \textit{Chicago Manual of Style}.}
+% \begin{center}\bfseries How Quick Is Quick?\end{center}
%
+% Prefix macros (Section~\ref{sec:SelectOver}) work with both interfaces. Here we show just a few examples showing how much typing we save with common macros:
% \begin{center}\small\MyStretch
-% \begin{tabular}{rll}\toprule
-% \bfseries Macro & \bfseries Body Text & \bfseries Index \\\midrule
-% \cmd{\VBuren} & \VBuren & \ShowIdxPageref*[Martin]{Van Buren}\\
-% \rowcolor{black!7!white}\cmd{\VBuren} & \VBuren & \ShowIdxPageref*[Martin]{Van Buren}\\
-% \cmd{\Soto} & \Soto & \ShowIdxPageref*[Hernando]{de Soto}\\
-% \rowcolor{black!7!white}\cmd{\CapThis}\cmd{\Soto} & \CapThis\Soto & \ShowIdxPageref*[Hernando]{de Soto}\\
-% \cmd{\JWG} & \JWG & \ShowIdxPageref*[J.W. von]{Goethe}\\
-% \rowcolor{black!7!white}\cmd{\JWG} & \JWG & \ShowIdxPageref*[J.W. von]{Goethe}\\\bottomrule
-% \end{tabular}
-% \end{center}
-% \newpage
-%
-% \begin{center}\bfseries \meta{Alternate} Tips\end{center}
+% \begin{tabular}{r@{\ \ \ }l@{\ \ }l}\toprule
+% Output & Short Form & Long Form\\\midrule
+% \rowcolor{grey}\Wash & \cmd{\Wash} & \cmd{\Name}\texttt{[George]\{Washington\}}\\
+% \LWash & \cmd{\LWash} & \cmd{\Name*}\texttt{[George]\{Washington\}}\\
+% \rowcolor{grey}\SWash & \cmd{\SWash} & \cmd{\FName}\texttt{[George]\{Washington\}}\\
+% \ForgetThis\Wash & \cmd{\ForgetThis}\cmd{\Wash} & \cmd{\ForgetName}\texttt{[George]\{Washington\}}\\
+% & & \cmd{\Name}\texttt{[George]\{Washington\}}\\
+% \rowcolor{grey}\SubvertThis\Wash & \cmd{\SubvertThis}\cmd{\Wash} & \cmd{\SubvertName}\texttt{[George]\{Washington\}}\\
+% \rowcolor{grey}& & \cmd{\Name}\texttt{[George]\{Washington\}}\\
+% \JustIndex\Wash & \cmd{\JustIndex}\cmd{\Wash} & \cmd{\IndexName}\texttt{[George]\{Washington\}}\\\bottomrule
+% \end{tabular}
+% \end{center}\leavevmode
%
+% \begin{center}\bfseries Name Variant Overview\end{center}
% \phantomsection
-% \noindent Above we listed two shorthands that had alternate names in \meta{arg4}: \cmd{\CSL} and \cmd{\MSens}. They have related shorthands whose \meta{arg4} are empty: \cmd{\Lewis} and \cmd{\Miyaz}. Here are how they are related (cf. Section~\ref{sec:FName}):\label{page:ArgIV}
-% \begin{itemize}
-% \item They share the same name patterns (Section~\ref{sec:NamePatterns}): |\ForgetThis\Lewis| \ForgetThis\Lewis; \cmd{\CSL} \CSL. |\ForgetThis\Miyaz| \ForgetThis\Miyaz; and \cmd{\MSens} \MSens.
-% \item More commonly, one produces alternate names with \cmd{\LLewis[C.S.]} \LLewis[C.S.] and \cmd{\LMiyaz[Sensei]} \LMiyaz[Sensei].
-% \item Both\Warn{} \cmd{\LCSL} \LCSL\ and \cmd{\LMSens} \LMSens\ already have \meta{Alternate} built in. They cannot take another optional argument. One must remember which shorthands have used \meta{arg4}.
-% \item If one should forget that, one will get errors: \cmd{\LCSL[C.S.]} \LCSL[C.S.] and \cmd{\LMsens[Sensei]} \LMSens[Sensei].
-% \end{itemize}
%
-% \begin{center}\bfseries Variant Overview\end{center}
+% \vspace{-2ex}\Illus{}\vspace{2ex}Below we use \cmd{\ForgetThis} (Section~\ref{sec:NameControl}) to simulate first uses of names as needed, then proceed with subsequent uses:\footnote{With \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern{Æthelred, II}} the glyphs \texttt{ÃĘ} correspond to \cmd{\IeC\{}\cmd{\AE\}}.}
%
% \begin{center}\footnotesize\MyStretch
+% \leavevmode\SPatInfo{\ShowPattern[George]{Washington}\break \ShowPattern[Hernando]{de~Soto}\break \ShowPattern[George S.]{Patton, Jr.}\break \ShowPattern[J.D.]{Rockefeller, IV}\break \ShowPattern[Clive Staples]{Lewis}\break \ShowPattern{Aristotle}\break \ShowPattern{Æthelred, II}\break \ShowPattern{John, Eriugena}\break \ShowPattern[Hideyo]{Noguchi}\break \ShowPattern{Yamamoto, Isoroku}}\vspace{-2.3ex}
% \begin{tabular}{@{}p{18.4em}p{22.4em}@{}}
-% \textsc{Western:}\par
+% \textsc{Western:} \hfill (Sections~\ref{sec:Naming}, \ref{sec:FName})\par
% |\Wash|\dotfill \ForgetThis\Wash\par
% |\LWash|\dotfill \LWash\par
% |\Wash|\dotfill \Wash\par
@@ -1171,16 +1304,31 @@ the README.txt or README for more information.
% |\Soto|\dotfill \ForgetThis\Soto\par
% |\Soto|\dotfill \Soto\par
% |\CapThis\Soto|\dotfill \CapThis\Soto\par
-% \par\hbox{}\par
+% &
+% \textsc{Ancient Mononym} \hfill (trivial case)\par
+% |\Aris|\dotfill \ForgetThis\Aris\par
+% |\Aris|\dotfill \Aris \par
+% (This is the trivial case.)\par\hbox{}\par
+% \textsc{Royal and Medieval:} \hfill (Sections~\ref{sec:Eastern}, \ref{sec:NameAncient})\par
+% |\Aeth|\dotfill \ForgetThis\Aeth\par
+% |\Aeth|\dotfill \Aeth\par
+% |\LAeth[Unrædig]|\dotfill \LAeth[Unrædig]\par
+% |\Eriugena|\dotfill \ForgetThis\Eriugena\par
+% |\Eriugena|\dotfill \Eriugena\par
+% \\
+% \end{tabular}
+% \leavevmode\vspace{2ex}\IdxInfo{\ShowIdxPageref*[George]{Washington}\break \ShowIdxPageref*[Hernando]{de~Soto}\break \ShowIdxPageref*[George S.]{Patton, Jr.}\break \ShowIdxPageref*[J.D.]{Rockefeller, IV}\break \ShowIdxPageref*[Clive Staples]{Lewis}\break \ShowIdxPageref*{Aristotle}\break \ShowIdxPageref*{Æthelred, II}\break \ShowIdxPageref*{John, Eriugena}\break \ShowIdxPageref*[Hideyo]{Noguchi}\break \ShowIdxPageref*{Yamamoto, Isoroku}}\vspace{-2.5ex}
+% \begin{tabular}{@{}p{18.4em}p{22.4em}@{}}
% \textsc{Affixes:} \hfill (Section~\ref{sec:Affix})\par
% |\Pat|\dotfill \ForgetThis\Pat\par
% |\LPat|\dotfill \LPat\par
% |\DropAffix\LPat|\dotfill \DropAffix\LPat\par
% |\Pat|\dotfill \Pat\par
-% |\SPat|\dotfill \SPat\par
% \par\hbox{}\par
% \textsc{Nicknames:} \hfill (Section~\ref{sec:FName})\par
-% |\JRIV|\dotfill \ForgetThis\JRIV\par
+% |\DropAffix\LPat[George]|\dotfill \DropAffix\LPat[George]\par
+% |\SPat[George]|\dotfill \SPat[George]\par
+% |\JRIV[John D.]|\dotfill \ForgetThis\JRIV[John D.]\par
% |\DropAffix\LJRIV[Jay]|\dotfill \DropAffix\LJRIV[Jay]\par
% |\SJRIV[Jay]|\dotfill \SJRIV[Jay]\par
% |\Lewis|\dotfill \ForgetThis\Lewis\par
@@ -1189,17 +1337,6 @@ the README.txt or README for more information.
% |\LCSL|\dotfill \LCSL\par
% |\SCSL|\dotfill \SCSL
% &
-% \textsc{Ancient\,/\,Mononym}\par
-% |\Aris|\dotfill \ForgetThis\Aris\par
-% |\Aris|\dotfill \Aris \par
-% \par\hbox{}\par
-% \textsc{Ancient\,/\,Royal:} \hfill (Sections~\ref{sec:Eastern}, \ref{sec:NameParticles})\par
-% |\Aeth|\dotfill \ForgetThis\Aeth\par
-% |\Aeth|\dotfill \Aeth\par
-% |\LAeth[Unrædig]|\dotfill \LAeth[Unrædig]\par
-% |\Attil|\dotfill \ForgetThis\Attil\par
-% |\Attil|\dotfill \Attil\par
-% \par\hbox{}\par
% \textsc{``Non-native'' Eastern:} \hfill (Section~\ref{sec:Eastern})\par
% |\Noguchi|\dotfill \ForgetThis\Noguchi\par
% |\LNoguchi|\dotfill \LNoguchi\par
@@ -1218,278 +1355,153 @@ the README.txt or README for more information.
% |\SYamt|\dotfill \SYamt\par
% |\ForceFN\SYamt|\dotfill \ForceFN\SYamt
% \\
-% \end{tabular}
+% \end{tabular}\medskip
% \end{center}
-% Above we used \cmd{\ForgetThis} (Section~\ref{sec:NameControl}) to reset first uses of names. Now we set up examples on page~\pageref{page:ExPage} by invoking \cmd{\ExcludeName\{Attila, the Hun\}}\ExcludeName{Attila, the Hun} and \cmd{\AKA[John David]\{Rockefeller,IV\}[Jay]\{Rockefeller\}} \AKA[John David]{Rockefeller,IV}[Jay]{Rockefeller}. On why that form has a different index entry than |\DropAffix\LJRIV[Jay]| \DropAffix\LJRIV[Jay], see Sections~\ref{sec:IndexXref} and~\ref{sec:AKA}.
% \newpage
%
-% \subsubsection[Macro Overview]{Select Macro Overview}
+% \subsection[Macro Overview]{Select Macro Overview}
% \label{sec:SelectOver}
%
-% \noindent Below we have a partial selection of macros and their arguments in overview:
+% \begin{center}\bfseries Macros Taking Name Arguments\end{center}
+%
% \begin{center}\small\MySmallStretch
% \begin{tabular}{lrccl}\toprule
-% \meta{prefix macros} & \cmd{\Name} & \meta{optional *} & \meta{name args} & \\
+% \llap{Naming\qquad}\meta{prefix macros} & \cmd{\Name} & \meta{optional *} & \meta{name args} & \\
% \meta{prefix macros} & \cmd{\FName} & \meta{optional *} & \meta{name args} & \\
-% \rowcolor{black!7!white}\meta{prefix macros} & \cmd{\IndexName} & & \meta{name args} & \\
-% \rowcolor{black!7!white}\meta{prefix macros} & \cmd{\IndexRef} & & \meta{xref args} & \meta{target}\\
-% \meta{prefix macros} & \cmd{\AKA} & \meta{optional *} & \meta{target args} & \meta{xref args}\\
-% \rowcolor{black!7!white} & \cmd{\ExcludeName} & & \meta{name args} & \\
-% \rowcolor{black!7!white} & \cmd{\IncludeName} & \meta{optional *} & \meta{name args} & \\
-% & \cmd{\PretagName} & & \meta{name args} & \meta{sort key} \\
-% & \cmd{\TagName} & & \meta{name args} & \meta{tag} \\
-% & \cmd{\UntagName} & & \meta{name args} & \\
-% \rowcolor{black!7!white} & \cmd{\NameAddInfo} & & \meta{name args} & \meta{tag} \\
-% \rowcolor{black!7!white} & \cmd{\NameQueryInfo} & & \meta{name args} & \\
-% \rowcolor{black!7!white} & \cmd{\NameClearInfo} & & \meta{name args} & \\
-% & \cmd{\ForgetName} & & \meta{name args} & \\
-% & \cmd{\SubvertName} & & \meta{name args} & \\
-% \rowcolor{black!7!white} & \cmd{\IfMainName} & & \meta{name args} & \marg{y}\marg{n}\\
-% \rowcolor{black!7!white} & \cmd{\IfFrontName} & & \meta{name args} & \marg{y}\marg{n}\\
-% \rowcolor{black!7!white} & \cmd{\IfAKA} & & \meta{name args} & \marg{y}\marg{n}\marg{x}\\\bottomrule
+% \rowcolor{grey}\llap{Page ref\qquad}\cmd{\SeeAlso} & \cmd{\IndexName} & & \meta{name args} & \\
+% \rowcolor{grey}\llap{Only cross-ref\qquad}\cmd{\SeeAlso} & \cmd{\IndexRef} & & \meta{xref args} & \meta{target}\\
+% \llap{Prevent page ref\qquad} & \cmd{\ExcludeName} & & \meta{name args} & \\
+% \llap{Enable page ref\qquad} & \cmd{\IncludeName} & \meta{optional *} & \meta{name args} & \\
+% \rowcolor{grey}\llap{Sort index\qquad}& \cmd{\PretagName} & & \meta{name args} & \meta{sort key} \\
+% \rowcolor{grey}\llap{Append idx tag\qquad}& \cmd{\TagName} & & \meta{name args} & \meta{tag} \\
+% \rowcolor{grey}\llap{Delete idx tag\qquad}& \cmd{\UntagName} & & \meta{name args} & \\
+% \llap{Make text tag\qquad} & \cmd{\NameAddInfo} & & \meta{name args} & \meta{tag} \\
+% \llap{Show text tag\qquad} & \cmd{\NameQueryInfo} & & \meta{name args} & \\
+% \llap{Delete text tag\qquad} & \cmd{\NameClearInfo} & & \meta{name args} & \\
+% \rowcolor{grey}\llap{Delete name cs\qquad} & \cmd{\ForgetName} & & \meta{name args} & \\
+% \rowcolor{grey}\llap{Create name cs\qquad} & \cmd{\SubvertName} & & \meta{name args} & \\
+% \llap{Name cs tests\qquad} & \cmd{\IfMainName} & & \meta{name args} & \marg{y}\marg{n}\\
+% & \cmd{\IfFrontName} & & \meta{name args} & \marg{y}\marg{n}\\
+% & \cmd{\IfAKA} & & \meta{name args} & \marg{y}\marg{n}\marg{x}\\
+% \rowcolor{grey}\llap{Debugging\qquad} & \cmd{\ShowPattern} & & \meta{name args} & \\
+% \rowcolor{grey} & \cmd{\ShowIdxPageref} & \meta{optional *} & \meta{name args} & \\\bottomrule
% \end{tabular}
% \end{center}
+% Not shown above are \cmd{\AKA}, \cmd{\AKA*}, \cmd{\PName}, and \cmd{\PName*} (Section~\ref{sec:AKA}). These macros from the early days of \textsf{nameauth} have specialized arguments and issues.
+%
+% \begin{center}\bfseries Prefix Macros (One Use Per Name)\end{center}
%
-% \noindent The \meta{prefix macros} below have a one-time effect per name and they also stack. For example: |\CapThis\RevName\SkipIndex\Name[bar]{foo}|: \CapThis\RevName\SkipIndex\Name[bar]{foo}.
% \begin{center}\small\MySmallStretch
% \begin{tabular}{rp{0.72\textwidth}}\toprule
% & \bfseries Capitalization in the Text\\
+% \cmd{\CapName} & Cap entire \meta{SNN} in body text. Overrides \cmd{\CapThis}.\\
% \cmd{\CapThis} & Capitalize first letter of all name components in body text.\\
% \cmd{\AccentCapThis} & Fallback when Unicode detection cannot be done.\\
-% \cmd{\CapName} & Cap entire \meta{SNN} in body text. Overrides \cmd{\CapThis}.\\
-% \rowcolor{black!7!white} & \bfseries Reversing in the Text\\
-% \rowcolor{black!7!white}\cmd{\RevName} & Reverse order of any name in body text. Overrides \cmd{\RevComma}\\
-% \rowcolor{black!7!white}\cmd{\RevComma} & Reverse only Western names to \meta{SNN}, \meta{FNN}.\\
+% \rowcolor{grey} & \bfseries Reversing in the Text\\
+% \rowcolor{grey}\cmd{\RevName} & Reverse order of any name in body text. Overrides \cmd{\RevComma}\\
+% \rowcolor{grey}\cmd{\RevComma} & Reverse only Western names to \meta{SNN}, \meta{FNN}.\\
% & \bfseries Commas in the Text\\
% \cmd{\ShowComma} & Add comma between \meta{SNN} and \meta{Affix}.\\
% \cmd{\NoComma} & No comma between \meta{SNN} and \meta{Affix}. Overrides \cmd{\ShowComma}.\\
-% \rowcolor{black!7!white} & \bfseries Name Breaks in the Text\\
-% \rowcolor{black!7!white}\cmd{\DropAffix} & Drop affix only for a long Western name reference.\\
-% \rowcolor{black!7!white}\cmd{\KeepAffix} & Insert non-breaking space (NBSP) between \meta{SNN}, \meta{FNN/Affix}.\\
-% \rowcolor{black!7!white}\cmd{\KeepName} & Insert NBSP between all name elements. Overrides \cmd{\KeepAffix}.\\
-% & \bfseries Forcing Name Forms in the Text\\
+% \rowcolor{grey} & \bfseries Name Breaks in the Text\\
+% \rowcolor{grey}\cmd{\DropAffix} & Drop affix only for a long Western name reference.\\
+% \rowcolor{grey}\cmd{\KeepAffix} & Insert non-breaking space (NBSP) between \meta{SNN}, \meta{FNN/Affix}.\\
+% \rowcolor{grey}\cmd{\KeepName} & Insert NBSP between all name elements. Overrides \cmd{\KeepAffix}.\\
+% & \bfseries Forcing Name Forms via Control Sequence\\
% \cmd{\ForgetThis} & Force a first-time name use. Negates \cmd{\SubvertThis}.\\
% \cmd{\SubvertThis} & Force a subsequent use.\\
-% \cmd{\ForceName} & Force first-use formatting hooks.\\
-% \cmd{\ForceFN} & Force printing of \meta{Affix} in non-Western short forms.\\
-% \rowcolor{black!7!white} & \bfseries Indexing\\
-% % \rowcolor{black!7!white}\cmd{\SeeAlso} & Make a \textit{see also} reference instead of a page reference. Only for use with \cmd{\IndexRef}, \cmd{\AKA}, \cmd{\PName} and their starred variants.\\
-% \rowcolor{black!7!white}\cmd{\SkipIndex} & Do not create index entries.\\
-% \rowcolor{black!7!white}\cmd{\JustIndex} & Act like \cmd{\IndexName}; negated by \cmd{\AKA}, \cmd{\PName}.\\\bottomrule
+% \rowcolor{grey} & \bfseries Forcing Name Forms via Boolean Flags\\
+% \rowcolor{grey}\cmd{\ForceName} & Force first-use formatting hooks.\\
+% \rowcolor{grey}\cmd{\ForceFN} & Force printing of \meta{Affix} in non-Western short forms.\\
+% & \bfseries Indexing\\
+% \cmd{\SeeAlso} & For \cmd{\IndexName}, \cmd{\AKA}, and \cmd{\PName}; make a \textit{see also} xref.\\
+% \cmd{\SkipIndex} & For naming macros; do not create an index entry.\\
+% \cmd{\JustIndex} & For naming macros; index only (once); negated by \cmd{\AKA}, \cmd{\PName}.\\\bottomrule
% \end{tabular}
% \end{center}
-%
-% \ReturnLink
% \newpage
%
-% \subsection{Obsolete Syntax}
-% \label{sec:Obsolete}
-%
-% This ``ghost''\Warn{} of \textsf{nameauth} past limits alternate names and cross-references (Section~\ref{sec:AKA}), excludes comma-delimited names, and complicates indexing and tagging (Sections~\ref{sec:IndexTag} and~\ref{sec:TextTags}). When the \meta{FNN} and \meta{Affix} arguments are empty, \meta{Alternate} acts like \meta{Affix} and affects both name and index patterns (Section~\ref{sec:NamePatterns}). In this manual we designate these names with a double dagger (\ddag):
-%
-% \begin{quote}\small\MyStretch
-% |\Name{Henry}[VIII] | {\color{nared}|%| \textit{Ancient}}\\
-% |\Name{Chiang}[Kai-shek] | {\color{nared}|%| \textit{Eastern}}\\
-% |\begin{nameauth}|\\
-% | \< Dagb & & Dagobert & I > | {\color{nared}|%| \textit{Ancient}}\\
-% | \< Yosh & & Yoshida & Shigeru > | {\color{nared}|%| \textit{Eastern}}\\
-% |\end{nameauth}|\medskip
-% \end{quote}
-%
-% \begin{center}\small\MyStretch
-% \begin{tabular}{ll}\toprule
-% |\Name{Henry}[VIII]| & \Name{Henry}[VIII]\ddag\\
-% |\Name{Henry}[VIII]| & \Name{Henry}[VIII]\ddag\\
-% \rowcolor{black!7!white}|\Name{Chiang}[Kai-shek]| & \Name{Chiang}[Kai-shek]\ddag\\
-% \rowcolor{black!7!white}|\Name{Chiang}[Kai-shek]| & \Name{Chiang}[Kai-shek]\ddag\\
-% |\Dagb| & \Dagb\ddag\\
-% |\Dagb| & \Dagb\ddag\\
-% \rowcolor{black!7!white}|\CapName\Yosh| & \CapName\Yosh\ddag\\
-% \rowcolor{black!7!white}|\CapName\RevName\LYosh| & \CapName\RevName\LYosh\ddag\\\bottomrule
-% \end{tabular}
-% \end{center}
-%
-% |\Name{Henry}[VIII]|\Version{2.6} (older syntax) and |\Name{Henry, VIII}| (new syntax) share name patterns, tags, and index entries, as shown below. We recommend using the newer syntax unless otherwise needed.
-% \begin{quote}\small
-% \NameAddInfo{Henry}[VIII]{ (\textit{Defensor Fidei})}%
-% |\NameAddInfo{Henry}[VIII]{ (\textit{Defensor Fidei})}|{\color{nared}| % old|}\\
-% {.\,.\,.}\\
-% |\Name*{Henry, VIII}\NameQueryInfo{Henry, VIII} |{\color{nared}| % new|}\smallskip\\
-% \Name*{Henry, VIII}\NameQueryInfo{Henry, VIII}
-% \end{quote}
-%
-% \ReturnLink
-%
-% \subsection{Name Pattern Overview}
-% \label{sec:NamePatterns}
-%
-% The table below shows how the macro arguments generate name patterns central to \textsf{nameauth}. The \meta{Alternate} argument only affects patterns when using the obsolete syntax. The naming macro arguments create internal control sequences that affect names in both the text and the index:
-%
-% \begin{center}\MyStretch
-% \begin{tabular}{lll}\toprule
-% Macro Arguments & Patterns & Type\\\midrule
-% \rowcolor{black!7!white}\oarg{FNN}\marg{SNN} & \meta{FNN}!\meta{SNN} & \normalfont Western\\
-% \oarg{FNN}\marg{SNN, Affix} & \meta{FNN}!\meta{SNN},\meta{Affix} & \normalfont Western\\
-% \rowcolor{black!7!white}\hphantom{\oarg{FNN}}\marg{SNN, Affix} & \meta{SNN},\meta{Affix} & \normalfont non-Western\\
-% \hphantom{\oarg{FNN}}\marg{SNN}\oarg{Alt} & \meta{SNN},\meta{Alt} & \normalfont (obsolete)\\
-% \rowcolor{black!7!white}\hphantom{\oarg{FNN}}\marg{SNN} & \meta{SNN} & \normalfont mononym\\\bottomrule
-% \end{tabular}
-% \end{center}
-% \newpage
-%
-% \noindent We ``forget'' several names below to create first-use cases:
-% \begin{center}\footnotesize\MyStretch
-% \begin{tabular}{rll}\toprule
-% Macro & Body Text & \cmd{\ShowPattern}\\\midrule
-% \cmd{\Harnack[Adolf von]} & \Harnack[Adolf von] & \texttt{\ShowPattern[Adolf]{Harnack}}\\
-% \cmd{\LHarnack} & \LHarnack & \texttt{\ShowPattern[Adolf]{Harnack}}\\
-% \rowcolor{black!7!white}\cmd{\ForgetThis}\cmd{\Pat} & \ForgetThis\Pat & \texttt{\ShowPattern[George S.]{Patton, Jr.}}\\
-% \rowcolor{black!7!white}\cmd{\DropAffix}\cmd{\LPat} & \DropAffix\LPat & \texttt{\ShowPattern[George S.]{Patton, Jr.}}\\
-% \cmd{\ForgetThis}\cmd{\Noguchi} & \ForgetThis\Noguchi & \texttt{\ShowPattern[Hideyo]{Noguchi}}\\
-% \cmd{\RevName}\cmd{\LNoguchi} & \RevName\LNoguchi\dag & \texttt{\ShowPattern[Hideyo]{Noguchi}}\\
-% \rowcolor{black!7!white}\cmd{\ForgetThis}\cmd{\Yamt} & \ForgetThis\Yamt & \texttt{\ShowPattern{Yamamoto,Isoroku}}\\
-% \rowcolor{black!7!white}\cmd{\RevName}\cmd{\LYamt} & \RevName\LYamt & \texttt{\ShowPattern{Yamamoto,Isoroku}}\\
-% \cmd{\ForgetThis}\cmd{\Name\{Henry,VIII\}} & \ForgetThis\Name{Henry,VIII} & \texttt{\ShowPattern{Henry,VIII}}\\
-% \cmd{\Name*\{Henry\}[VIII]} & \Name*{Henry}[VIII]\ddag & \texttt{\ShowPattern{Henry,VIII}}\\
-% \rowcolor{black!7!white}\cmd{\Dem[I Soter]} & \Dem[I Soter] & \texttt{\ShowPattern{Demetrius,I}}\\
-% \rowcolor{black!7!white}\cmd{\LDem} & \LDem & \texttt{\ShowPattern{Demetrius,I}}\\
-% \cmd{\ForgetThis}\cmd{\Aris} & \ForgetThis\Aris & \texttt{\ShowPattern{Aristotle}}\\
-% \cmd{\Aris} & \Aris & \texttt{\ShowPattern{Aristotle}}\\\bottomrule
-% \end{tabular}
-% \ForgetName{Demetrius, I}\ForgetName[Adolf]{Harnack}
-% \end{center}\bigskip
-%
-% \noindent Six suffixes are appended to these patterns to create independent data sets:
-% \begin{center}\small\MyStretch
-% \begin{tabular}{llll}\toprule
-% Description & Pattern & Mnemonic & Example\\\midrule
-% \rowcolor{black!7!white}Front-matter names & \meta{pattern}\texttt{!NF} & ``name front'' & \texttt{\ShowPattern[Adolf]{Harnack}{!NF}}\\
-% Main-matter names & \meta{pattern}\texttt{!MN} & ``main name'' & \texttt{\ShowPattern[Hideyo]{Noguchi}{!MN}}\\
-% \rowcolor{black!7!white}Index cross-refs & \meta{pattern}\texttt{!PN} & ``pseudonym'' & \texttt{\ShowPattern{Yamamoto, Isoroku}{!PN}}\\
-% Index sorting tags & \meta{pattern}\texttt{!PRE} & ``pretag'' & \texttt{\ShowPattern{Henry, VIII}{!PRE}}\\
-% \rowcolor{black!7!white}Index info tags & \meta{pattern}\texttt{!TAG} & ``tag'' & \texttt{\ShowPattern{Demetrius, I}{!TAG}}\\
-% ``Text tag'' database & \meta{pattern}\texttt{!DB} & ``database'' & \texttt{\ShowPattern{Aristotle}{!DB}}\\\bottomrule
-% \end{tabular}
-% \end{center}\bigskip
-%
-% \noindent The following macros \emph{write} to these data sets; others also can read from them:
-% \begin{center}\small\MyStretch
-% \begin{tabular}{lcccccc}\toprule[1pt]
-% Macros & \ttfamily \,!NF\, & \ttfamily \,!MN\, & \ttfamily \,!PN\, & \ttfamily !PRE & \ttfamily !TAG & \ttfamily \,!DB\,\\\midrule
-% \cmd{\Name} \cmd{\Name*} \cmd{\FName} & \YES & \YES & \NO & \NO & \NO & \NO\\
-% \cmd{\ForgetName} \cmd{\SubvertName} & \YES & \YES & \NO & \NO & \NO & \NO\\\midrule
-% \cmd{\PName}\cmd{\PName*} & \YES & \YES & \YES & \NO & \NO & \NO\\\midrule
-% \cmd{\AKA} \cmd{\AKA*} \cmd{\IndexRef} & \NO & \NO & \YES & \NO & \NO & \NO\\
-% \cmd{\ExcludeName} & \NO & \NO & \YES & \NO & \NO & \NO\\
-% \cmd{\IncludeName} \cmd{\IncludeName*} & \NO & \NO & \YES & \NO & \NO & \NO\\\midrule
-% \cmd{\PretagName} & \NO & \NO & \NO & \YES & \NO & \NO\\\midrule
-% \cmd{\TagName} \cmd{\UntagName} & \NO & \NO & \NO & \NO & \YES & \NO\\\midrule
-% \cmd{\NameAddInfo} \cmd{\NameClearInfo} & \NO & \NO & \NO & \NO & \NO & \YES\\\bottomrule
-% \end{tabular}
-% \end{center}\bigskip
-%
-% \ReturnLink
-% \newpage
-%
-% \subsection[Debug and Avoid Errors]{Debugging and Avoiding Errors}
-% \label{sec:ErrorProt}
-%
-% \begin{center}\bfseries Debugging Macros\end{center}
-%
-% \DescribeMacro{\ShowPattern}
-% \cmd{\ShowPattern} displays how the name arguments create name patterns. One can debug pattern collisions and other issues with this macro:\Version{3.3}
-% \begin{quote}
-% \fbox{\mystrut\ \cmd{\ShowPattern}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }
-% \end{quote}
-% We used \cmd{\ShowPattern} in two of the tables on the previous page in order to illustrate name control patterns. We set the macro using a typewriter font, e.g.: |\texttt{\ShowPattern[Hernando]{de Soto}}|:\quad \texttt{\ShowPattern[Hernando]{de Soto}}\medskip
-%
-% \DescribeMacro{\ShowIdxPageref}
-% \cmd{\ShowIdxPageref} displays a full index entry in the text.
-% Its analogue is \cmd{\ShowIdxPageref*},
-% \DescribeMacro{\ShowIdxPageref*}
-% which shows a short index entry. Both only show names as page references, even if they are cross-references\Version{3.3}:
-% \begin{quote}
-% \fbox{\vbox{\hbox{\mystrut\ \cmd{\ShowIdxPageref\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }\par
-% \hbox{\mystrut\ \cmd{\ShowIdxPageref*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }}}
-% \end{quote}
-% The full entry produced by \cmd{\ShowIdxPageref} can be affected by both index styles and tags produced by \cmd{\PretagName} and \cmd{\TagName}, e.g.:
-% \begin{quote}
-% |\texttt{\ShowIdxPageref[Hernando]{de Soto}}:|\\
-% \ShowIdxPageref[Hernando]{de Soto}
-% \end{quote}
-% \cmd{\ShowIdxPageref*} appears throughout this manual to illustrate basic index entries, e.g.: |\ShowIdxPageref*[Hernando]{de Soto}|:\quad \ShowIdxPageref*[Hernando]{de Soto}
-%
-% \begin{center}\bfseries Avoiding Common Errors\end{center}
-%
+% \begin{center}\bfseries More on Prefix Macros\end{center}
% \begin{itemize}
-% \item Keep it simple! Avoid unneeded macros and use the simplified interface.
-% \item Compare index entries with names in the body text.
-% \item Check package warnings. Set the \texttt{verbose} option if needed.
-% \item Check arguments' braces and brackets to avoid errors like ``\texttt{Paragraph ended}'' and ``\texttt{Missing} \meta{grouping token} \texttt{inserted.}''
-% \item Do not format \meta{SNN},\meta{Affix} together as a pair. Format \meta{SNN} and \meta{Affix} separately (Section~\ref{sec:AltFormat}).
-% \item Sort names in the index with \cmd{\PretagName} (Section~\ref{sec:IndexSort}).
-% \item In package docs (\texttt{dtx} files) set up the \texttt{nameauth} environment and tags in the driver section to avoid errors.
+% \item Prefix macros stack:\\ \hbox{}\quad |\CapThis\RevName\SkipIndex\Name[bar]{foo}| \qquad \CapThis\RevName\SkipIndex\Name[bar]{foo}.
+% \item The Boolean flags governed by the prefix macros are reverted after the appropriate macros produce output in the text (or index) unless the output of the naming macros is suppressed.
+% \item Except for \cmd{\SeeAlso}, use prefix macros only before a naming macro that is designed to print output in the text.
+% \item Use \cmd{\SeeAlso}\Version{3.5} only with \cmd{\IndexRef}, \cmd{\AKA}, and \cmd{\PName}. Otherwise it will be reset by \cmd{\IndexName} and the naming macros.
+% \item Using \cmd{\JustIndex}\Version{3.5} will cause name form modifiers to be reset.
% \end{itemize}
-%
-% \begin{center}\bfseries Obsolete Syntax Caution\end{center}
%
+% Macros that do not take name arguments include:
% \begin{itemize}
-% \item The older syntax has restrictions (Section~\ref{sec:Obsolete}). Only the new syntax permits variant names, e.g.: \cmd{\Name*\{Henry, VIII\}[Tudor]} \Name*{Henry, VIII}[Tudor]. The new syntax is preferred.
-% \item A proper form for the old syntax is \cmd{\Name*\{Henry\}[VIII]}: \Name*{Henry}[VIII].
-% \item \bgroup\IndexInactive\cmd{\Name[Henry]\{VIII\}} is a malformed Western name: ``\Name*[Henry]{VIII}'' and ``\Name[Henry]{VIII}.'' Likewise \cmd{\Name[Henry]\{VIII\}[Tudor]}: ``\Name*[Henry]{VIII}[Tudor]'' and ``\Name[Henry]{VIII}[Tudor].'' Both have the incorrect index entry ``\ShowIdxPageref*[Henry]{VIII}''.\egroup
+% \item State-changing macros with broad effects (document, section, scope).
+% \item State-changing macros with single-use effects (prefix macros).
+% \item Macros that alter general \textsf{nameauth} package behavior.
+% \item Formatting macros.
% \end{itemize}
+%
+% \subsection{Various Hints}
+% \label{sec:Hints}
%
-% \begin{center}\bfseries Standard Warnings\end{center}
+% In this section we make a brief foray into some technical issues that are good to keep in mind, but not overwhelming at this point. Sections~\ref{sec:Warnings} and~\ref{sec:Errors} go into greater detail on the things that one can do to diagnose missteps and avoid errors. The point here is to keep the quick start quick.
%
-% \begin{itemize}
-% \item If one defines shorthand macros in the \texttt{nameauth} environment whose control sequence already exists, warnings always appear. For example:
-% \begin{quote}\small\StartNum
-% \begin{verbatim}
-%\PretagName[E.\,B.]{White}{White, E.B.}
-%\begin{nameauth}
-% \< White & E.B. & White & > % v.1
-% \< White & E.\,B. & White & > % v.2
-%\end{nameauth}\end{verbatim}
-% \end{quote}
-%\begin{nameauth}
-% \< White & E.B. & White & >
-% \< White & E.\,B. & White & >
-%\end{nameauth}
-% \item \cmd{\White} gives ``\White''. Its pattern is: \texttt{\ShowPattern[E.\,B.]{White}}. We lost the first version. We forget \White\ for later.\ForgetName[E.\,B.]{White} There should be two package warnings in this section for the redefinition of \cmd{\White}, because we defined it in the driver, then again here twice.
-% \item This could be a problem if a name shorthand replaces an actual macro that is used for something else and breaks that macro.
-% \item Then again, if one uses, e.g., a new \texttt{nameauth} environment per chapter, these warnings may be harmless. User discretion is advised.
-% \end{itemize}
+% \begin{center}\bfseries Automatic Stripping of Spaces\end{center}
+% The\SPatInfo{\ShowPattern[Martin Luther]{King, Jr.}} \textsf{nameauth} package trims extra spaces \emph{around} name arguments to prevent errors. Here, name arguments include \meta{FNN}, \meta{SNN}, \meta{Affix}, and \meta{Alternate}. For example,\IdxInfo{\ShowIdxPageref*[Martin Luther]{King, Jr.}} instead of being two different names, below we have the same name in a first, then subsequent use. We use no name formatting below in order to show this:\bigskip
%
-% \begin{center}\bfseries Verbose Warnings\end{center}
+% \begingroup^^A Local scope for format
+% \renewcommand*\NamesFormat{}
+% \renewcommand*\MainNameHook{}
+% \leavevmode\quad\begin{minipage}[c]{0.43\textwidth}\small
+% \StartNum
+% \begin{verbatim*}
+%\Name*[Martin Luther]
+%{King,Jr.}\\
+%\Name*[ Martin Luther ]
+%{ King, Jr. }\end{verbatim*}
+% \end{minipage}
+% \begin{minipage}[c]{0.45\textwidth}\small
+% \def\sep{\vrule width0.5pt\kern-0.5pt}%
+% \begin{tabular}{@{}ll@{}}
+% No spaces: & \sep\SubvertThis\FName[Martin Luther]{King,Jr.}\sep\ \sep\Name*[Martin Luther]{King,Jr.}[\ignorespaces]\sep\\
+% & \sep\hphantom{Martin Luther}\sep\ \sep\hphantom{King Jr.}\sep\\
+% Spaces: & \sep\FName[ Martin Luther ]
+% { King, Jr. }\sep\ \sep\Name*[ Martin Luther ]
+% { King, Jr. }[\ignorespaces]\sep\\
+% \end{tabular}
+% \end{minipage}\bigskip
%
-% \noindent Package warnings result from the following \emph{only} when the \texttt{verbose} option is used because we do not want the default to be ``chatty'':
-% \begin{itemize}
-% \item Creating an index page reference after using a name as an xref or excluding it. Not allowed.
-% \item Creating the same cross-reference multiple times. Not allowed.
-% \item Using \cmd{\ExcludeName} on an xref. Not allowed.
-% \item Using\Version{3.3} \cmd{\IncludeName} on an xref. Not allowed.
-% \item Using \cmd{\ExcludeName} to exclude a name that exists is allowed, but a warning still results.
-% \item \cmd{\PretagName} sorts xrefs, but also creates ``informational warnings.''
-% \item Using \cmd{\TagName} and \cmd{\UntagName} on xrefs. No tag allowed.
-% \end{itemize}
+% \IndexInactive
+% Using macros that expand to spaces will produce a totally different name:\bigskip
%
-% \begin{center}\bfseries Error Protection Strategies\end{center}
-%
-% \noindent The\Info{extra spaces} \textsf{nameauth} package trims extra spaces \emph{around} name arguments to prevent errors like multiple index entries that appear due to extra spaces. \LaTeX\ usually compacts internal spaces. For example, instead of being two different names, below we have the same name in a first, then subsequent use:
-%
-% \begin{center}\small\MyStretch\ForgetName[Martin Luther]{King, Jr.}
-% \begin{tabular}{ll}
-% \cmd{\Name*[Martin Luther]\{King,Jr.\}} & \Name*[Martin Luther]{King,Jr.}\\
-% \cmd{\Name*}\texttt{[\textvisiblespace\textvisiblespace Martin\textvisiblespace\textvisiblespace Luther\textvisiblespace\textvisiblespace]\{\textvisiblespace\textvisiblespace King\textvisiblespace\textvisiblespace,\textvisiblespace\textvisiblespace Jr.\textvisiblespace\textvisiblespace\}} & \Name*[ Martin Luther ]{ King , Jr. }\\
-% \end{tabular}
-% \end{center}
+% \leavevmode\quad\begin{minipage}[c]{0.43\textwidth}\small
+% \StartNum
+% \begin{verbatim*}
+%\Name*[ Martin Luther ]
+%{ King, Jr. }\\
+%\Name*[\ Martin Luther\ ]
+%{\ King, Jr.\ }\end{verbatim*}
+% \end{minipage}
+% \begin{minipage}[c]{0.45\textwidth}\small
+% \def\sep{\vrule width0.5pt\kern-0.5pt}%
+% \begin{tabular}{@{}ll@{}}
+% Spaces:\hphantom{No} & \sep\SubvertThis\FName[ Martin Luther ]{ King, Jr. }\sep\ \sep\Name*[ Martin Luther ]{ King, Jr. }[\ignorespaces]\sep\\
+% & \sep\hphantom{Martin Luther}\sep\ \sep\hphantom{King Jr.}\sep\\
+% Macros: & \sep\SubvertThis\FName[\ Martin Luther\ ]
+% {\ King, Jr.\ }\sep\ \sep\Name*[\ Martin Luther\ ]
+% {\ King, Jr.\ }[\ignorespaces]\sep\\
+% \end{tabular}\smallskip
%
-% This does not include explicit spaces from \cmd{\space}, etc. For example, the pattern \texttt{\ShowPattern[Martin Luther]{King, Jr.}} comes from \cmd{\Name[Martin Luther]\{King, Jr.\}} while \texttt{\ShowPattern[Martin~Luther]{King, Jr.}} comes from \cmd{\Name[Martin}|~|\texttt{Luther]\{King, Jr.\}}. The tilde appears as a non-breaking space in the text.
+% Simple Pattern:\\
+% \hphantom{Index: }\fbox{\texttt{\ShowPattern[\ Martin Luther\ ]{\ King, Jr.\ }}}\\
+% Index: \fbox{\ShowIdxPageref*[\ Martin Luther\ ]{\ King, Jr.\ }}
+% \end{minipage}\bigskip
+% \endgroup^^A Local scope for format
+%
+% Yet one may have to include a non-breaking space (active character |~|) after a name particle like \textit{de} to keep the name from breaking badly (Section~\ref{sec:NameParticles}). One must use that non-breaking space consistently to avoid errors.
% \newpage
-%
-% Full\Info{full stop\break detection} stops appear in one's initials and in affixes like ``Jr.'' (junior), ``Sr.'' (senior), ``d.\,J.'' (\textit{der Jüngere}), and ``d.\,Ä.'' (\textit{der Ältere}). The naming macros and some of the alternate name macros (Section~\ref{sec:AKA}) check if the printed name ends with a full stop and is followed by one. They gobble the extra full stop:
+%
+% \begin{center}\bfseries Full Stop Detection\end{center}
+% Full stops appear in one's initials and in affixes like ``Jr''. (junior), ``Sr''. (senior), ``d.\,J''. (\textit{der Jüngere}), and ``d.\,Ä''. (\textit{der Ältere}). The naming macros and some alternate name macros (Section~\ref{sec:AKA}) check if the printed name ends with a full stop and is followed by one. They gobble the extra full stop. Below we resume formatting and pretend that we have not seen Dr. King's name yet:
% \begin{quote}\small\ForgetName[Martin Luther]{King, Jr.}
-% |This is Rev. Dr. \Name[Martin Luther]{King, Jr.}.|\\
+% |This is Rev. Dr. \Name[Martin Luther]{King, Jr.}.|\SPatInfo{\ShowPattern[Martin Luther]{King,Jr.}}\\
% This is Rev. Dr. \Name[Martin Luther]{King, Jr.}. \hfill Full stop is gobbled.\\[2ex]
% |This is Rev. Dr. \Name[Martin Luther]{King, Jr.}.|\\
% This is Rev. Dr. \Name[Martin Luther]{King, Jr.}. \hfill Full stop is not gobbled.\\[2ex]
@@ -1501,176 +1513,228 @@ the README.txt or README for more information.
% His initials are \FName[Martin Luther]{King, Jr.}[M.L.]. \hfill Full stop is gobbled.
% \end{quote}
%
-% Take\Info{grouping\break issues} care when using braces and spaces with a name at the end of a sentence. Braces can change name arguments, even though they look the same. We disable indexing for the three points below:\IndexInactive
+% \begin{center}\bfseries Caveats with Grouping\end{center}
+% Take care when using braces and spaces with a name at the end of a sentence. Braces will change the control sequence patterns generated by name arguments. Put simply, this means that both the names and their index entries will be different and behave differently\,---\,even though they look the same (Sections~\ref{sec:IndexSort}, \ref{sec:NamePatterns}). We disable indexing for the three points below:\IndexInactive
% \begin{itemize}\small
-% \item If one encapsulates a name in braces, the punctuation detection fails:\\
+% \item If one\SPatInfo{\ShowPattern[Martin Luther]{King,Jr.}} encapsulates a name in braces, the punctuation detection fails:\\
% |This is Rev. Dr. {\Name*[Martin Luther]{King, Jr.}}.|\\
% This is Rev. Dr. {\Name*[Martin Luther]{King, Jr.}}. \hfill Full stop is not gobbled.
% \item[] A solution encapsulates both the name and the full stop:\\
% |This is Rev. Dr. {\Name*[Martin Luther]{King, Jr.}.}|\\
% This is Rev. Dr. {\Name*[Martin Luther]{King, Jr.}.} \hfill Full stop is gobbled.
-% \item If one encapsulates \meta{Affix} in braces, the punctuation detection fails:\\
+% \item If one\SPatInfo{\ShowPattern[Martin Luther]{King, {Jr.}}\break \ShowPattern[Martin Luther]{King, {Jr}.}} encapsulates \meta{Affix} in braces, the punctuation detection fails:\\
% |This is Rev. Dr. \Name*[Martin Luther]{King, {Jr.}}.|\\
% This is Rev. Dr. \Name*[Martin Luther]{King, {Jr.}}. \hfill Full stop is not gobbled.
-% \item[] The solution leaves the full stop in \meta{Affix} outside the braces:\\
+% \item[] A solution\vspace{-1ex}\IdxInfo{\ShowIdxPageref*[Martin Luther]{King, {Jr.}}\break \ShowIdxPageref*[Martin Luther]{King, {Jr}.}\break (Looks identical, but not.)}\vspace{1ex} leaves the full stop in \meta{Affix} outside the braces:\\
% |This is Rev. Dr. \Name*[Martin Luther]{King, {Jr}.}.|\\
% This is Rev. Dr. \Name*[Martin Luther]{King, {Jr}.}. \hfill Full stop is gobbled.
-% \item[] The name patterns, however, are different, creating different names:\\
-% \texttt{\ShowPattern[Martin Luther]{King, {Jr.}}}\\
-% \texttt{\ShowPattern[Martin Luther]{King, {Jr}.}}
-% \item If one leaves an extra space after a name, the punctuation detection fails:\\
+% \item[] Yet the name patterns (Section~\ref{sec:NamePatterns}) are different, creating two different names and two different index entries.
+% \item A space\SPatInfo{\ShowPattern[Martin Luther]{King,Jr.}} between a name and full stop hinders punctuation detection, except with the quick interface:\\
% |This is Rev. Dr. \Name*[Martin Luther]{King, Jr.}|\texttt{\textvisiblespace.}\\
% This is Rev. Dr. \Name*[Martin Luther]{King, Jr.} . \hfill Full stop is not gobbled.
% \item[] The solution removes the extra space:\\
% |This is Rev. Dr. \Name*[Martin Luther]{King, Jr.}.|\\
% This is Rev. Dr. \Name*[Martin Luther]{King, Jr.}. \hfill Full stop is gobbled.
% \end{itemize}\IndexActive
+% \newpage
%
-% Variations\Info{active chars\break and macros} in the use of active characters and control sequences also change name arguments and index sorting (Section~\ref{sec:IndexSort}; cf.~\ref{sec:Unicode} and~\ref{sec:TeXengines}):
-% \begin{itemize}\small
-% \item |\Name*{Æthelred, II}| \Name*{Æthelred, II};\hfill Pattern: \texttt{\ShowPattern{Æthelred, II}}\footnote{With \texttt{pdflatex} / \texttt{latex}, the glyphs \texttt{ÃĘ} correspond to \cmd{\IeC\{\textbackslash AE\}}.}\newline We have seen this name earlier.
-% \item |\SkipIndex\Name{\AE thelred, II}| \SkipIndex\Name{\AE thelred, II};\hfill Pattern: \texttt{\ShowPattern{\AE thelred, II}}\newline This is a new name that looks the same.\newpage
-% \item |\Name{Bo\"ethius}| \Name{Bo\"ethius};\hfill Pattern: \texttt{\ShowPattern{Bo\"ethius}}\newline We introduce this new name.
-% \item |\SkipIndex\Name{Boëthius}| \SkipIndex\Name{Boëthius} \hfill Pattern: \texttt{\ShowPattern{Boëthius}}\footnote{With \texttt{pdflatex} / \texttt{latex}, the glyphs \texttt{Ãń} correspond to \cmd{\IeC\{\textbackslash"e\}}.}\newline This is a different name that looks the same.
-% \item |\SkipIndex\Name{Bo{\"e}thius}| \SkipIndex\Name{Bo{\"e}thius};\hfill Pattern: \texttt{\ShowPattern{Bo{\"e}thius}}\newline This also is a different name that looks the same.
-% \end{itemize}
-%
-% Omit\Info{formatting\break initials} spaces between initials; see Bringhurst, \textit{Elements of Typographic Style}. If a style guide requires spaces, try thin spaces. Use \cmd{\PretagName} to sort those names (Section~\ref{sec:IndexSort}). Below we use no formatting:\bigskip
+% \begin{center}\bfseries Caveats with Active Characters\end{center}
+% Variations in the use of active characters and control sequences also change name arguments, name control patterns, and index sorting. These changes can depend on the \LaTeX\ engine being used, but often different names are just different, even if they appear the same (Section~\ref{sec:IndexSort}; cf.~\ref{sec:Unicode} and~\ref{sec:TeXengines}):
+% \begin{enumerate}\small
+% \item |\Name*{Æthelred, II}|\dotfill \Name*{Æthelred, II}\SPatInfo{\ShowPattern{Æthelred, II} \textrm{(1)}\break \ShowPattern{\AE thelred, II} \textrm{(2)}\break \ShowPattern{Bo\"ethius} \textrm{(3)}\break \ShowPattern{Boëthius} \textrm{(4)}\break \ShowPattern{Bo{\"e}thius} \textrm{(5)}}\footnote{With \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern{Æthelred, II}} the glyphs \texttt{ÃĘ} correspond to \cmd{\IeC\{}\cmd{\AE\}}.}\newline We have seen this name earlier.
+% \item |\SkipIndex\Name{\AE thelred, II}|\dotfill \SkipIndex\Name{\AE thelred, II}\hbox to 0.45em{\hfill}\newline This is a new name that looks the same.
+% \item |\Name{Bo\"ethius}|\dotfill \Name{Bo\"ethius}\hbox to 0.45em{\hfill}\newline We introduce this new name.
+% \item |\SkipIndex\Name{Boëthius}|\dotfill \SkipIndex\Name{Boëthius}\footnote{With \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern{Boëthius}} the glyphs \texttt{Ãń} correspond to \cmd{\IeC\{}\cmd{\"e\}}.}\newline This is a different name that looks the same.
+% \item |\SkipIndex\Name{Bo{\"e}thius}|\dotfill \SkipIndex\Name{Bo{\"e}thius}\hbox to 0.45em{\hfill}\newline This is a third, different name that looks the same.
+% \end{enumerate}
+%
+% \begin{center}\bfseries Formatting Initials\end{center}
+% This is a thorny topic. Some publishers are dead-set on having a space between initials. Many designers find that practice to be inelegant at best. Robert Bringhurst wisely advises one to omit spaces between initials.\footnote{Robert Bringhurst, \textit{Elements of Typographic Style} 3.2 ed. (Point Roberts, Washington: Hartley \& Marks, 2008.)}
+%
+% Yet fighting with one's editor will be a lost cause unless one already has sufficient \textit{gravitas}. If a style guide requires spaces, try thin spaces. Use \cmd{\PretagName} to sort those names (Section~\ref{sec:IndexSort}). Below we use no formatting:\bigskip
%
% \leavevmode\quad\begin{minipage}[c]{0.45\textwidth}\small
% \StartNum
% \begin{verbatim}
%\PretagName[E.\,B.]{White}%
-% {White, E.B.}
+% {White, Elwyn}
%\begin{nameauth}
% \< White & E.\,B. & White & >
%\end{nameauth}\end{verbatim}
% \end{minipage}
-% \begin{minipage}[c]{0.35\textwidth}\normalsize\renewcommand*\NamesFormat{}
+% \begin{minipage}[c]{0.35\textwidth}\renewcommand*\NamesFormat{}
% \def\sep{\vrule width0.5pt\kern-0.5pt}%
-% \begin{tabular}{@{}ll@{}}\hline
-% & \sep\hphantom{E.}\sep\,\sep\hphantom{B.}\sep\hphantom{\ }\sep\hphantom{White}\\
+% \begin{tabular}{@{}ll@{}}\toprule
% \cmd{\White} & \hspace{0.48pt}\White\\
% & \sep\hphantom{E.}\sep\,\sep\hphantom{B.}\sep\hphantom{\ }\sep\hphantom{White}\\\hline
% & \sep\hphantom{E.}\sep\ \sep\hphantom{B.}\sep\ \sep\hphantom{White}\\
-% Normal text:\hfill & E. B. White\\
-% & \sep\hphantom{E.}\sep\ \sep\hphantom{B.}\sep\ \sep\hphantom{White}\\\hline
+% Normal text:\hfill & E. B. White\\\bottomrule
% \end{tabular}
% \end{minipage}\bigskip
%
-% English\Info{hyphenation} contains names from many cultures. The rules for hyphenation go to the heart of how names with non-English origins should be pronounced. With \textsf{nameauth}, one can use either optional hyphens or the \textsf{babel}\,/\,\textsf{polyglossia} packages to handle such names:
-% \NameAddInfo[John]{\de{Strietelmeier}}{late professor at Valparaiso University}
+% \begin{center}\bfseries Multicultural Hyphenation\end{center}
+% Names can be hyphenated to reflect their cultural and linguistic origins. With \textsf{nameauth}, one can use either optional hyphens or the \textsf{babel}/\textsf{polyglossia} packages to handle such names. Below we offer a simplified example without alternate formatting (Section~\ref{sec:AltFormat}):
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
%\newcommand\de[1]{\foreignlanguage{ngerman}{#1}}
% % or polyglossia: \newcommand\de[1]{\textgerman{#1}}
%\NameAddInfo[John]{\de{Strietelmeier}}%
-% {late professor at Valparaiso University}
+% {a professor at Valparaiso University}
%\begin{nameauth}
% \< Striet & John & \de{Strietelmeier} & >
%\end{nameauth}
%\PretagName[John]{\de{Strietelmeier}}{Strietelmeier, John}\end{verbatim}
% \end{quote}
+% \newpage
+%
+% Now we demonstrate three different ways of engaging this problem. In the first example we use the default hyphenation. We omit this version from the index. One might think that the name were pronounced ``stree-et-el-mai-er'':\medskip
+%
+% \noindent \emph{Not fixed:}\SPatInfo{\ShowPattern[John]{Strietelmeier}}
+%
+% \noindent In English, some names come from other cultures. These names, like \SkipIndex\Name[John]{Strietelmeier}, |\SkipIndex\Name[John]{Strietelmeier},| can break badly.\medskip
+%
+% The next example uses discretionary hyphens. It is a different name from the one above and one must be consistent with the discretionary hyphens. We also omit this version from the index:\medskip
%
-% \noindent \emph{Not fixed:}\\
-% \noindent In English, some names come from other cultures. These names, like \SkipIndex\Name[John]{Strietelmeier} \cmd{\SkipIndex}\cmd{\Name[John]\{Strietelmeier\}} can break badly.\smallskip
+% \noindent \emph{Fixed with discretionary hyphens:}\SPatInfo{\ShowPattern[John]{Strie\-tel\-meier}}\medskip
%
-% \noindent \emph{Fixed with discretionary hyphens:}\\
-% \noindent In English, some names come from other cultures. These names, like \SkipIndex\Name[John]{Strie\-tel\-meier}, \cmd{\SkipIndex}\cmd{\Name[John]\{Strie\textbackslash-tel\textbackslash-meier\}} could break badly.\smallskip
+% \noindent In English, some names come from other cultures. These names, like \SkipIndex\Name[John]{Strie\-tel\-meier}, |\SkipIndex\Name[John]{Strie\-tel\-meier},| could break badly.\medskip
%
-% \noindent \emph{Fixed with language packages:}\\
-% \noindent In English, some names come from other cultures. These names, like \Striet, \cmd{\Striet} could break badly.\medskip
+% Finally we use what may be the best general solution, the \textsf{babel} or \textsf{polyglossia} packages. Since the leading element of \meta{SNN} is a macro, using \cmd{\CapThis} would halt \LaTeX\ with errors unless we used alternate formatting (Section~\ref{sec:AltFormat}):\medskip
%
-% \Striet\ (\NameQueryInfo[John]{\de{Strietelmeier}}) is neither pronounced nor hyphenated as ``Stri-etel-meier''; rather, it is pronounced and hyphenated as ``Strie-tel-meier''. See Sections~\ref{sec:NameParticles} and~\ref{sec:AltFormat} when using macros in name arguments.
-% Using \textsf{babel} or \textsf{polyglossia} likely is best.
+% \noindent \emph{Fixed with language packages:}\SPatInfo{\ShowPattern[John]{\de{Strietelmeier}}}\medskip
%
+% \noindent In English, some names come from other cultures. These names, like \Striet, \cmd{\Striet,} could break badly. \Striet\ was at Valparaiso University.
+%
+% \begin{center}\bfseries Obsolete Syntax Caution\end{center}
+% We moved the discussion of the obsolete syntax to Section~\ref{sec:Obsolete} because, as this package matures, we do not expect people to use it much anymore. There are more advantages to using the current syntax.
+%
+% \begin{enumerate}
+% \item Only\SPatInfo{\ShowPattern{Henry, VIII}[Tudor]\hfil \textrm{(1--2)}\break \ShowPattern[Henry]{VIII}[Tudor]\hfil \textrm{\ \ \ (3)}} the newer syntax permits variants: \cmd{\Name*\{Henry, VIII\}[Tudor]} \Name*{Henry, VIII}[Tudor]. The new syntax is preferred.
+% \item A proper form for the old syntax is \cmd{\Name*\{Henry\}[VIII]}: \Name*{Henry}[VIII]. Both\vspace{-2ex}\IdxInfo{\ShowIdxPageref*{Henry}[VIII]\hfil \textrm{(1--2)}\break \ShowIdxPageref*[Henry]{VIII}[Tudor]\hfil \textrm{\ \ (3)}}\vspace{2ex} old and new share name patterns (Section~\ref{sec:NamePatterns}).
+% \item \bgroup\IndexInactive\cmd{\Name[Henry]\{VIII\}} is a malformed Western name: ``\Name*[Henry]{VIII}'' and ``\Name[Henry]{VIII}''. Likewise \cmd{\Name[Henry]\{VIII\}[Tudor]}: ``\Name*[Henry]{VIII}[Tudor]'' and ``\Name[Henry]{VIII}[Tudor]''. Both have the incorrect index entry ``\ShowIdxPageref*[Henry]{VIII}''.\egroup
+% \end{enumerate}
+%
% \ReturnLink
+% \vfill
+%
+% \AltFormatActive^^A
+% \begin{verse}
+% 'Tis but thy name that is my enemy;\dots\\
+% What's in a name? That which we call a rose\\
+% By any other name would smell as sweet;\\
+% So Romeo would, were he not Romeo call'd,\\
+% Retain that dear perfection which he owes\\
+% Without that title. Romeo, doff thy name,\\
+% And for that name which is no part of thee\\
+% Take all myself.\\[1ex]\hfill---\Shak, \textit{Romeo and Juliet}, Act II, Scene II
+% \end{verse}
+% \AltFormatInactive^^A
% \newpage
%
% \section{Detailed Usage}
-%
+%
% \subsection{Package Options}
% \label{sec:PkgOptions}
%
% One includes the \textsf{nameauth} package thus:
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\usepackage[}\meta{\(option_1\)}\texttt{,}\meta{\(option_2\)}\texttt{,}\dots\texttt{,}\meta{\(option_n\)}\texttt{]\{nameauth\} }}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\usepackage[}\meta{\(option_1\)}\texttt{,}\meta{\(option_2\)}\texttt{,}\dots\texttt{,}\meta{\(option_n\)}\texttt{]\{nameauth\}}
+% \end{tabular}
+% }
% \end{quote}
% The options have no required order. Still, we discuss them from the general to the specific, as the headings below indicate. In the listings below, {\bfseries implicit default options are boldface and need not be invoked by the user.} {\color{nared}Non-default options are in red and must be invoked explicitly.}
%
% \begin{center}\bfseries Choosing Features\end{center}
%
-% \noindent{\bfseries Enable Package Warnings}\medskip\\
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
-% \leavevmode\color{nared}\quad\texttt{verbose} & \leavevmode\color{nared}Show warnings about index cross-references.\medskip\\
-% \end{tabular}\egroup
-%
-% \noindent The default\Version{3.0} suppresses package warnings from the indexing macros. Warnings from the \texttt{nameauth} environment are not suppressed.\bigskip
-%
-% \noindent{\bfseries Choose Formatting}\medskip\\
+% \noindent{\bfseries Choose Formatting System}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
-% \bfseries\quad\texttt{mainmatter} & \bfseries Start with ``main-matter names'' and formatting hooks (see also page~\pageref{page:PostProcess}).\smallskip\\
-% \leavevmode\color{nared}\quad\texttt{frontmatter} & \leavevmode\color{nared}Start with ``front-matter names'' and hooks.\smallskip\\
+% \bfseries\quad\texttt{mainmatter} & \bfseries Start with ``main-matter names'' and formatting hooks \normalfont (see also page~\pageref{page:PostProcess}).\smallskip\\
+% \leavevmode\color{nared}\quad\texttt{frontmatter} & \leavevmode\color{nared}Start with ``front-matter names'' and hooks until \cmd{\NamesActive} starts the main system.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{alwaysformat} & \leavevmode\color{nared}Use only respective ``first use'' formatting hooks.\smallskip\\
-% \leavevmode\color{nared}\quad\texttt{formatAKA} & \leavevmode\color{nared}Format the first use of a name with \cmd{\AKA} like the first use of a name with \cmd{\Name}.\smallskip\\
-% \leavevmode\color{nared}\quad\texttt{oldAKA} & \leavevmode\color{nared}Force \cmd{\AKA*} to act like it did before version 3.0.\smallskip\\
-% \leavevmode\color{nared}\quad\texttt{oldreset} & \leavevmode\color{nared}Reset per-use name flags locally within the naming macros, as before version 3.3.\smallskip\\
-% \leavevmode\color{nared}\quad\texttt{oldpass} & \leavevmode\color{nared}When \cmd{\Justindex} is called, allow long\,/\,short flags to pass through, as before version 3.3.\medskip\\
+% \leavevmode\color{nared}\quad\texttt{formatAKA} & \leavevmode\color{nared}Format the first use of a name with \cmd{\AKA} like the first use of a name with \cmd{\Name}.\medskip\\
% \end{tabular}\egroup
-%
-% \noindent The \texttt{mainmatter} option and the \texttt{frontmatter} option enable two different systems of name use and formatting. They are mutually exclusive. \cmd{\NamesActive} starts the main matter system when \texttt{frontmatter} is used. See Section~\ref{sec:Formatting}.
-%
-% The \texttt{alwaysformat} option forces ``first use'' hooks globally in both naming systems. Its use is limited in current versions of \textsf{nameauth}.
%
-% The\Version{3.1} \texttt{formatAKA} option permits \cmd{\AKA} to use the ``first use'' formatting hooks. This enables \cmd{\ForceName} to trigger those hooks at will (Section~\ref{sec:AKA}). Otherwise \cmd{\AKA} uses ``subsequent use'' hooks.
+% \noindent The \texttt{mainmatter} and \texttt{frontmatter} options enable two respectively independent systems of name use and formatting. See Section~\ref{sec:Formatting}.
%
-% Using the\Version{3.0} \texttt{oldAKA} option forces \cmd{\AKA*} always to print a ``forename'' argument in the text, as in versions before 3.0. Otherwise the current behavior of \cmd{\AKA*} prints in the same fashion as \cmd{\FName} (see Sections~\ref{sec:FName} and~\ref{sec:AKA}).
+% The \texttt{alwaysformat} option forces ``first use'' hooks globally in both naming systems. Its use is limited in current versions of \textsf{nameauth}.
%
-% Used together,\Version{3.3} the next two options restore pre-version 3.3 handling of flags that could lead to undocumented behavior. The \texttt{oldreset} option causes all Boolean flags related to the prefix macros and long\,/\,short name forms to be reset locally. The new default is to reset them globally (Section~\ref{sec:Customize}). Likewise, the \texttt{oldpass} option allows the long\,/\,short flags to pass through \cmd{\JustIndex} instead of being reset (Section~\ref{sec:IndexControl}).
-% \newpage
+% The\Version{3.1} \texttt{formatAKA} option permits \cmd{\AKA} to use the ``first use'' formatting hooks. This enables \cmd{\ForceName} to trigger those hooks at will (Section~\ref{sec:AKA}). Otherwise \cmd{\AKA} only uses ``subsequent use'' formatting hooks.\bigskip
%
-% \noindent{\bfseries Enable\,/\,Disable Indexing}\medskip\\
+% \noindent{\bfseries Enable/Disable Indexing}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{index} & \bfseries Create index entries in place with names.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{noindex} & \leavevmode\color{nared}Suppress indexing of names.\medskip\\
% \end{tabular}\egroup
-%
-% \noindent These options and related macros do not affect the normal use of \cmd{\index}. They apply only to the \textsf{nameauth} package macros. The default \texttt{index} option enables name indexing right away. The \texttt{noindex} option disables the indexing of names until \cmd{\IndexActive} enables it. \emph{Caution:}\Warn{} using \texttt{noindex} and \cmd{\IndexInactive} prevents index tags until you call \cmd{\IndexActive}, as explained also in Section~\ref{sec:IndexControl}.\bigskip
%
-% \noindent{\bfseries Enable\,/\,Disable Index Sorting}\medskip\\
+% \noindent These options and related macros apply only to the \textsf{nameauth} package macros. The default \texttt{index} option enables name indexing right away. The \texttt{noindex} option disables the indexing of names until \cmd{\IndexActive} enables it. \emph{Caution:}\Warn{} using \texttt{noindex} and \cmd{\IndexInactive} prevents index tags until you call \cmd{\IndexActive}, as explained also in Section~\ref{sec:GeneralIndex}. For indexing feature priority, see page~\pageref{page:Priorities}.\bigskip
+%
+% \noindent{\bfseries Enable/Disable Index Sorting}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{pretag} & \bfseries Create sort keys used with \texttt{makeindex}.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{nopretag} & \leavevmode\color{nared}Do not create sort keys.\medskip\\
% \end{tabular}\egroup
-%
-% \noindent The default allows \cmd{\PretagName} to create sort keys used with \texttt{makeindex}. The \texttt{nopretag} option disables the sorting mechanism, e.g., if a different sorting method is used with \texttt{xindy}. See Section~\ref{sec:IndexSort}.
+%
+% \noindent The default allows \cmd{\PretagName} to create sort keys used with \texttt{makeindex}. The \texttt{nopretag} option disables the sorting mechanism and causes \cmd{\PretagName} only to emit warnings. That is designed for cases that use different sorting methods, such as \texttt{xindy}. See Section~\ref{sec:IndexSort}.\newpage
+%
+% \noindent{\bfseries Enable ``Global'' Decision Paths}\medskip\\
+% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \leavevmode\color{nared}\quad\texttt{globaltest} & \leavevmode\color{nared}Do not put name decision paths in a local scope.\medskip\\
+% \end{tabular}\egroup
+%
+% \noindent The default puts the decision paths of \cmd{\IfMainName}, etc., into groups with local scope (Section~\ref{sec:NameTests}). This option removes that scoping.\bigskip
+%
+% \noindent{\bfseries Enable Package Warnings}\medskip\\
+% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \leavevmode\color{nared}\quad\texttt{verbose} & \leavevmode\color{nared}Show more diagnostic warnings.\medskip\\
+% \end{tabular}\egroup
+%
+% \noindent The default suppresses all but the most essential package warnings. Increasing the warnings may help to debug index page entries, cross-references, and exclusions.\bigskip
+%
+% \noindent{\bfseries Choose Version Compatibility}\medskip\\
+% \textbf{Using these options will increase the chance of undocumented behavior.} They are included only for the sake of backward compatibility.\medskip\\
+% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \leavevmode\color{nared}\quad\texttt{oldAKA} & \leavevmode\color{nared}Force \cmd{\AKA*} to act like it did before version 3.0, instead of like \cmd{\FName}.\smallskip\\
+% \leavevmode\color{nared}\quad\texttt{oldreset} & \leavevmode\color{nared}Reset per-use name flags locally; let \cmd{\ForgetThis} and \cmd{\SubvertThis} pass through \cmd{\AKA} (pre-v3.3). Let \cmd{\SeeAlso} pass through \cmd{\IndexName} and other macros. Keep \cmd{\IndexName} and \cmd{\IndexRef} from resetting \cmd{\SkipIndex} (pre-version 3.5).\smallskip\\
+% \leavevmode\color{nared}\quad\texttt{oldpass} & \leavevmode\color{nared}When \cmd{\Justindex} is called, allow long/short flags to pass through, as before version 3.3.\smallskip\\
+% \leavevmode\color{nared}\quad\texttt{oldtoks} & \leavevmode\color{nared}Token registers holding the arguments of the last-used name are set locally, as before version 3.5.\smallskip\\
+% \leavevmode\color{nared}\quad\texttt{oldsee} & \leavevmode\color{nared}Allow lax handling of \textit{see} references that are extant names, as before version 3.5.\medskip\\
+% \end{tabular}\egroup
+%
+% \noindent Previously, local scope for Boolean flags related to the prefix macros and long/short name forms could produce unexpected results, but that could hide the problems with some flags not being reset by \cmd{\AKA}, \cmd{\AKA*}, and the use of \cmd{\JustIndex}. Global name token registers are preferable, as is the newer, stricter control over \textit{see} references related to index page entries.
+%
+% \begin{center}
+% \begin{tabular}{rr}\toprule
+% \textsf{nameauth} version & compatibility options to approximate:\\\midrule
+% \rowcolor{grey}2.6 & \texttt{oldAKA,oldpass,oldreset,oldtoks,oldsee}\\
+% 3.0--3.2 & \texttt{oldpass,oldreset,oldtoks,oldsee}\\
+% \rowcolor{grey}3.3--3.4 & \texttt{oldreset,oldtoks,oldsee}\\\bottomrule
+% \end{tabular}
+% \end{center}\leavevmode
%
% \begin{center}\bfseries Affect the Syntax of Names\end{center}
%
-% \noindent{\bfseries Show\,/\,Hide Affix Commas}\medskip\\
+% \noindent{\bfseries Show/Hide Affix Commas}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{nocomma} & \bfseries Suppress commas between surnames and affixes, following the \textit{Chicago Manual of Style} and other conventions.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{comma} & \leavevmode\color{nared}Retain commas between surnames and affixes.\medskip\\
% \end{tabular}\egroup
-%
-% \noindent If you use \emph{modern standards}, choose the default \texttt{nocomma} option to get, e.g., \Name[J.E.]{Carter, Jr.}[James Earl]. If you need to adopt \emph{older standards} that use commas between surnames and affixes, you have two choices:
+%
+% \noindent These options do not affect the index. On comma macro priority, see page~\pageref{page:Priorities}. If you use \emph{modern standards}, choose the default \texttt{nocomma} option to get, e.g., \Name[J.E.]{Carter, Jr.}[James Earl]. If you need to adopt \emph{older standards} that use commas between surnames and affixes, you have two choices:
% \begin{enumerate}
% \item The \texttt{comma} option globally produces, e.g., \ShowComma\Name*[J.E.]{Carter, Jr.}[James Earl].
% \item Section~\ref{sec:Affix} shows how one can use \cmd{\ShowComma} with the \texttt{nocomma} option and \cmd{\NoComma} with the \texttt{comma} option to get per-name results.
-% \end{enumerate}
-% In both cases, the display of commas (or the lack thereof) does not affect the appearance or the sorting of index entries.\bigskip
+% \end{enumerate}\medskip
%
% \noindent{\bfseries Capitalize Entire Surnames}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{normalcaps} & \bfseries Do not perform any special capitalization.\smallskip\\
-% \leavevmode\color{nared}\quad\texttt{allcaps} & \leavevmode\color{nared}Capitalize entire surnames, e.g., romanized Eastern names.\medskip\\
+% \leavevmode\color{nared}\quad\texttt{allcaps} & \leavevmode\color{nared}Capitalize entire surnames, e.g., romanized Eastern names, throughout the document.\medskip\\
% \end{tabular}\egroup
-%
-% \noindent This only capitalizes names printed in the body text. English standards usually do not propagate typographic changes into the index.
%
-% Still, you can use this package with non-English conventions (just not via these options). You can add, e.g., uppercase or small caps in surnames, formatting them also in the index. See also Sections~\ref{sec:AltFormat} and~\ref{sec:Hooksiii}. The simplified interface aids the embedding of control sequences in names. Section~\ref{sec:Eastern} deals with capitalization on a section-level and per-name basis.
-% \newpage
+% \noindent These options do not affect the index. See Section~\ref{sec:Eastern} for finer control. To capitalize names in the index, use all caps or alternate formatting (Section~\ref{sec:AltFormat}). On capitalization feature priority, see page~\pageref{page:Priorities}.\bigskip
%
% \noindent{\bfseries Reverse Name Order}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
@@ -1678,16 +1742,13 @@ the README.txt or README for more information.
% \leavevmode\color{nared}\quad\texttt{allreversed} & \leavevmode\color{nared}Print all name forms in ``smart'' reverse order.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{allrevcomma} & \leavevmode\color{nared}Print all names in ``Surname, Forenames'' order, meant for Western names.\medskip\\
% \end{tabular}\egroup
-%
-% \noindent These three options are mutually exclusive. Section~\ref{sec:Eastern} speaks more about reversing. The \texttt{allreversed} option, \cmd{\ReverseActive}, and \cmd{\RevName} work with all names and override \texttt{allrevcomma} and its macros.
%
-% So-called ``last-comma-first'' lists of names via \texttt{allrevcomma} and the reversing macros \cmd{\ReverseCommaActive} and \cmd{\RevComma} (Section~\ref{sec:LastFirst}) are \emph{not} the same as the \texttt{comma} option. They only affect Western names.
+% \noindent These options do not affect the index and are mutually exclusive. See also Sections~\ref{sec:LastFirst} and~\ref{sec:Eastern}. Regarding which of these features overrides the other, see page~\pageref{page:Priorities}. So-called ``last-comma-first'' lists of names via \texttt{allrevcomma} and the reversing macros \cmd{\ReverseCommaActive} and \cmd{\RevComma} (Section~\ref{sec:LastFirst}) are \emph{not} the same as the \texttt{comma} option. They only affect Western names.
%
+% \begin{center}\bfseries Typographic Post-Processing\end{center}
% \phantomsection
% \label{page:PostProcess}
%
-% \begin{center}\bfseries Typographic Post-Processing\end{center}
-%
% \noindent{\bfseries Formatting Attributes}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{noformat} & \bfseries Do not define a default format.\smallskip\\
@@ -1695,12 +1756,13 @@ the README.txt or README for more information.
% \leavevmode\color{nared}\quad\texttt{italic} & \leavevmode\color{nared}First use of a main-matter name in italic.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{boldface} & \leavevmode\color{nared}First use of a main-matter name in boldface.\medskip\\
% \end{tabular}\egroup
-%
-% \noindent Current\Version{2.5} versions assign no default formatting to names. Most users have preferred the \texttt{noformat} option as the default and then design their own hooks as needed.\footnote{For those that want the old default option from the early days of this package, one can recover that behavior with the \texttt{smallcaps} option.}
-% The options above are ``quick'' solutions based on English typography.
%
-% What\Version{2.4} was ``typographic formatting'' has become a generalized concept of ``post-processing'' via hook macros.\footnote{This package was designed with type hierarchies and flexibility in mind. See Robert Bringhurst, \textit{The Elements of Typographic Style}, version 3.2 (Point Roberts, Washington: Hartley \& Marks, 2008), 53--60. Typographic inspiration comes from Bernhard Lohse, \textit{Luthers Theologie} (G\"ottingen: Vandenhoeck \& Ruprecht, 1995) and Jaroslav J. Pelikan Jr., \textit{The Christian Tradition: A History of the Development of Doctrine}, 5 vols. (Chicago: Chicago UP, 1971--89).}
-% Post-processing does not affect the index. Sections \ref{sec:Formatting}, \ref{sec:Hooksi}, \ref{sec:Hooksii}, and~\ref{sec:Hooksiii} explain these hooks in greater detail:
+% \noindent The options above are ``quick'' definitions of \cmd{\NamesFormat} based on English typography.\footnote{For the old default, use the \texttt{smallcaps} option. See also Robert Bringhurst, \textit{The Elements of Typographic Style}, version 3.2 (Point Roberts, Washington: Hartley \& Marks, 2008), 53--60.}
+% The default is no formatting, the overwhelming user preference.
+%
+% The following macros are formatting hooks that do ``typographic post-processing'' of names in the text. Originally, \cmd{\NamesFormat} was the only such hook, which resulted in the organic development of the names of these macros. This development reflects the use of two naming systems, one for main-matter text (default) and one for front-matter text.
+%
+% Unlike alternate formatting, the hooks do not affect the index. Sections \ref{sec:Formatting}, \ref{sec:Hooksi}, \ref{sec:Hooksii}, and~\ref{sec:Hooksiii} explain these hooks and their redefinition in greater detail. Changes to the formatting hooks apply within the scope where they are made:
% \begin{itemize}
% \item \cmd{\NamesFormat} formats first uses of main-matter names.
% \item \cmd{\MainNameHook} formats subsequent uses of main-matter names.
@@ -1708,29 +1770,24 @@ the README.txt or README for more information.
% \item \cmd{\FrontNameHook} formats subsequent uses of front-matter names.
% \end{itemize}
%
-% Changes\Info{\cmd{\global}} to the formatting hooks apply within the scope where they are made. Use \cmd{\global} explicitly to alter that. \cmd{\NamesFormat} originally was the only hook, so any oddity in the naming of these hooks results from the need for backward compatibility with old versions.
-%
-% Section~\ref{sec:AKA} discusses how \cmd{\AKA} does not respect these formatting systems and uses the hooks differently. To avoid using the \texttt{formatAKA} option and \cmd{\ForceName} with \cmd{\AKA}, Section~\ref{sec:IndexXref} shows how to use \cmd{\IndexRef} and \cmd{\Name} instead.
-% \newpage
-%
+% Section~\ref{sec:AKA} discusses how \cmd{\AKA} does not respect these formatting systems and uses the hooks differently. To avoid using the \texttt{formatAKA} option and \cmd{\ForceName} with \cmd{\AKA}, Section~\ref{sec:GeneralIndex} shows how to use \cmd{\IndexRef} and \cmd{\Name} instead.
+%
% \begin{center}\bfseries Alternate or Continental Formatting\end{center}
%
% \noindent{\bfseries Alternate Formatting}\medskip\\
% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \leavevmode\color{nared}\quad\texttt{altformat} & \leavevmode\color{nared}Make available the alternate formatting framework from the start of the document. Activate formatting by default.\medskip\\
% \end{tabular}\egroup
-%
+%
% \noindent A built-in\Version{3.1} framework provides an alternate formatting mechanism that can be used for ``Continental'' formatting that one sees in German, French, and so on. Continental standards often format surnames only, both in the text and in the index. Section~\ref{sec:AltFormat} introduces the topic and should be sufficient for most users, while Section~\ref{sec:Hooksiii} goes into greater detail.
%
-% The previous methods that produced Continental formatting were rather complex compared to the current, simplified manner of doing so. Yet it is likely that these older solutions still ought to work. The error protection that prevents \cmd{\CapThis} from breaking alternately formatted names remains available to these older solutions by using \texttt{altformat} or the related macros (Section~\ref{sec:AltFormat}).\bigskip
+% Previous methods that produced Continental formatting were more complex than the current ones. Yet these older solutions still should work, as long as one uses the \texttt{altformat} option and related macros.
%
+% \begin{center}\bfseries Feature Priority\end{center}
% \phantomsection
% \label{page:Priorities}
-% \begin{center}\bfseries Feature Priority\end{center}
%
-% \noindent The following table shows the relative priority of package options and macros related to indexing, capitalization, and reversing. The darker the row, the lower the priority. Those macros or options in a particular category (column) that have higher priority (row) tend to override similar macros that have lower priority in that same category.
-%
-% Thus, \cmd{\IndexInactive} overrides \cmd{\JustIndex}, which overrides \cmd{\SkipIndex}; using \cmd{\SeeAlso} depends entirely on the interaction of the three others.
+% \noindent Below we see the relative priority of package options and macros, with darker rows showing lower priority. Within a column, high priority can override low priority. Thus, \cmd{\IndexInactive} overrides \cmd{\JustIndex}, which overrides \cmd{\SkipIndex}.
%
% \begin{center}\small\MyStretch
% \begin{tabular}{llll}\toprule
@@ -1740,13 +1797,13 @@ the README.txt or README for more information.
% \texttt{noindex} & \texttt{allcaps} & \texttt{allreversed} & \cmd{\DropAffix}\\
% \cmd{\IndexActive} & \cmd{\AllCapsInactive} & \cmd{\ReverseActive} \\
% \cmd{\IndexInactive} & \cmd{\AllCapsActive} & \cmd{\ReverseInactive} \\
-% \rowcolor{black!7!white}\cmd{\JustIndex} & \cmd{\CapName} & \cmd{\RevName} & \cmd{\SubvertThis}\\
-% \rowcolor{black!7!white} & & & \cmd{\ForceName}\\
-% \rowcolor{black!7!white} & & & \cmd{\NoComma}\\
+% \rowcolor{black!6!white}\cmd{\JustIndex} & \cmd{\CapName} & \cmd{\RevName} & \cmd{\SubvertThis}\\
+% \rowcolor{black!6!white} & & & \cmd{\ForceName}\\
+% \rowcolor{black!6!white} & & & \cmd{\NoComma}\\
% \rowcolor{black!12!white}\cmd{\SkipIndex} & \cmd{\AccentCapThis} & \texttt{allrevcomma} & \cmd{\KeepName}\\
% \rowcolor{black!12!white} & & \cmd{\RevCommaActive} & \cmd{\ForceFN}\\
% \rowcolor{black!12!white} & & \cmd{\RevCommaInactive} & \cmd{\ShowComma}\\
-% \rowcolor{black!17!white}\cmd{\SeeAlso} & \cmd{\CapThis} & \cmd{\RevComma} & \cmd{\KeepAffix}\\\bottomrule
+% \rowcolor{black!18!white}\cmd{\SeeAlso} & \cmd{\CapThis} & \cmd{\RevComma} & \cmd{\KeepAffix}\\\bottomrule
% \end{tabular}
% \end{center}
%
@@ -1755,7 +1812,7 @@ the README.txt or README for more information.
%
% \subsection{Naming Macros}
%
-% In this manual we modify the formatting hooks to show first and later name uses, forcing such uses as needed (Sections~\ref{sec:Formatting} and~\ref{sec:NameControl}). All naming macros create index entries before and after a name for when a name straddles a page break.
+% In this\Illus{} manual we modify the formatting hooks to show first and later name uses, forcing such uses as needed (Sections~\ref{sec:Formatting}--\ref{sec:NameControl}). All naming macros create index entries before and after a name for when a name straddles a page break.
%
% \subsubsection{\texttt{\textbackslash Name} and \texttt{\textbackslash Name*}}
% \label{sec:Naming}
@@ -1765,12 +1822,15 @@ the README.txt or README for more information.
% \DescribeMacro{\Name*}
% then usually just the \meta{SNN} argument thereafter. \cmd{\Name*} always prints the full name:
% \begin{quote}
-% \fbox{\vbox{\hbox{\mystrut\ \cmd{\Name}| |\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }\par
-% \hbox{\mystrut\ \cmd{\Name}|*|\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }}}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\Name\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\vspace{-2pt}\\
+% {\Large\strut}\cmd{\Name*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% In\Version{3.0} the body text, not the index, the \meta{Alternate} argument replaces either \meta{FNN} or, if \meta{FNN} is absent, \meta{Affix}.\footnote{If \meta{Alternate} is \cmd{\ignorespaces}, the Western long form of \cmd{\Name} looks like the short form. ``Native'' Eastern and ancient forms would have an extra trailing space.}
-% If both \meta{FNN} and \meta{Affix} are absent, then the obsolete syntax is used (Section~\ref{sec:Obsolete}).
+% In the body text, not the index, the \meta{Alternate} argument replaces either \meta{FNN} or, if \meta{FNN} is absent, \meta{Affix}. If both \meta{FNN} and \meta{Affix} are absent when \meta{Alternate} is present, then the obsolete syntax is used (Section~\ref{sec:Obsolete}).
%
% \begin{quote}\small
% \StartNum
@@ -1783,28 +1843,37 @@ the README.txt or README for more information.
% \< Eliz & & Elizabeth, I & >
%\end{nameauth}\end{verbatim}
% \end{quote}
-%
-% \begin{center}\small\MyStretch
+%
+% \leavevmode\SPatInfo{\ShowPattern[Albert]{Einstein}\break \ShowPattern[M.T.]{Cicero}\break \ShowPattern{Confucius}\break \ShowPattern{Miyazaki, Hayao}\break \ShowPattern{Elizabeth, I}}\vspace{-4.25ex}
+%
+% \begin{center}\small\MyStretch\leavevmode\vspace{-26ex}\IdxInfo{\ShowIdxPageref*[Albert]{Einstein}\break \ShowIdxPageref*[M.T.]{Cicero}\break \ShowIdxPageref*{Confucius}\break \ShowIdxPageref*{Miyazaki, Hayao}\break \ShowIdxPageref*{Elizabeth, I}}\vspace{26ex}
% \begin{tabular}{ll}\toprule
% |\Name [Albert]{Einstein}| or |\Einstein| & \Name [Albert]{Einstein}\\
% |\Name*[Albert]{Einstein}| or |\LEinstein| & \LEinstein\\
% |\Name [Albert]{Einstein}| or |\Einstein| & \Einstein\\
-% \rowcolor{black!7!white}|\Name [M.T.]{Cicero}| or |\Cicero| & \Name [M.T.]{Cicero}\\
-% \rowcolor{black!7!white}|\Name*[M.T.]{Cicero}[Marcus Tullius]| & \Name*[M.T.]{Cicero}[Marcus Tullius]\\
-% \rowcolor{black!7!white}|\Name [M.T.]{Cicero}| or |\Cicero| & \Cicero\\
+% \rowcolor{grey}|\Name [M.T.]{Cicero}| or |\Cicero| & \Name [M.T.]{Cicero}\\
+% \rowcolor{grey}|\Name*[M.T.]{Cicero}[Marcus Tullius]| & \Name*[M.T.]{Cicero}[Marcus Tullius]\\
+% \rowcolor{grey}|\Name [M.T.]{Cicero}| or |\Cicero| & \Cicero\\
% |\Name {Confucius}|, |\Confucius| & \Confucius\\
% \footnotesize Same for all variants; no \meta{Affix} or \meta{Alternate}. & \Confucius\\
-% \rowcolor{black!7!white}|\Name {Miyazaki, Hayao}| or |\Miyaz| & \ForgetThis\Name {Miyazaki, Hayao}\\
-% \rowcolor{black!7!white}|\Name*{Miyazaki, Hayao}[Sensei]| & \Name*{Miyazaki, Hayao}[Sensei]\\
-% \rowcolor{black!7!white}|\Name {Miyazaki, Hayao}| or |\Miyaz| & \Name {Miyazaki, Hayao}\\
+% \rowcolor{grey}|\Name {Miyazaki, Hayao}| or |\Miyaz| & \ForgetThis\Name {Miyazaki, Hayao}\\
+% \rowcolor{grey}|\Name*{Miyazaki, Hayao}[Sensei]| & \Name*{Miyazaki, Hayao}[Sensei]\\
+% \rowcolor{grey}|\Name {Miyazaki, Hayao}| or |\Miyaz| & \Name {Miyazaki, Hayao}\\
% |\Name {Elizabeth, I}| or |\Eliz| & \ForgetThis\Eliz\\
% |\Name*{Elizabeth, I}| or |\LEliz| & \Name*{Elizabeth, I}\\
% |\Name {Elizabeth, I}| or |\Eliz| & \Name {Elizabeth, I}\\\bottomrule
% \end{tabular}
% \end{center}
%
-% When using the simplified interface, the preferred way to get alternate names is |\LCicero[Marcus Tullius]| and |\LMiyaz[Sensei]|: \LCicero[Marcus Tullius] and \LMiyaz[Sensei]. The alternate forename is not shown in subsequent short name references e.g., |\Cicero[Marcus Tullius]| \Cicero[Marcus Tullius].
-%
+% When using the quick interface, the preferred way to get alternate names is |\LCicero[Marcus Tullius]| and |\LMiyaz[Sensei]|: \LCicero[Marcus Tullius] and \LMiyaz[Sensei]. The alternate forename is not shown in subsequent short name references e.g., |\Cicero[Marcus Tullius]| \Cicero[Marcus Tullius]. Remember the following:
+% \begin{center}\small
+% \begin{tabular}{rll}\toprule
+% \rowcolor{grey}No: & \cmd{\LEinstein}\texttt{\ \ \ [said]\dots} & \LEinstein [said]\dots\\
+% \rowcolor{grey}No: & \cmd{\Einstein}\texttt{\ \ \ \ [said]\dots} & \Einstein [said]\dots\\
+% Yes: & \cmd{\LEinstein}\texttt{\{\} [said]\dots} & \LEinstein{} [said]\dots\\
+% Yes: & \cmd{\Einstein}\texttt{\{\}\ \ [said]\dots} & \Einstein{} [said]\dots\\\bottomrule
+% \end{tabular}
+% \end{center}
% \newpage
%
% \subsubsection{Forenames: \texttt{\textbackslash FName}}
@@ -1815,50 +1884,62 @@ the README.txt or README for more information.
% \DescribeMacro{\FName*}
% These synonyms let one add an \texttt{F} either to \cmd{\Name} or \cmd{\Name*} to get the same effect:
% \begin{quote}
-% \fbox{\vbox{\hbox{\mystrut\ \cmd{\FName\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }\par
-% \hbox{\mystrut\ \cmd{\FName*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }}}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\FName\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\vspace{-2pt}\\
+% {\Large\strut}\cmd{\FName*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
%
% \DescribeMacro{\ForceFN}
-% These macros work with both Eastern and Western names, but to get an Eastern personal name, one must precede these macros with \cmd{\ForceFN}.
-% See\Version{3.0} also Sections~\ref{sec:NameParticles} and~\ref{sec:NameControl} on how to vary some of the forms below:
+% These macros work with both Eastern and Western names, but to get an Eastern personal name, one must precede these macros with \cmd{\ForceFN}.\Version{3.0} This was designed to discourage one from being too familiar and causing offense.
+% See also Sections~\ref{sec:NameParticles} and~\ref{sec:NameControl} on how to vary some of the forms below:
%
+% \vspace{1.5ex}\leavevmode\SPatInfo{\ShowPattern[Albert]{Einstein}\break \ShowPattern[M.T.]{Cicero}\break \ShowPattern{Confucius}\break \ShowPattern{Miyazaki, Hayao}\break \ShowPattern{Elizabeth, I}}\vspace{-4ex}
% \begin{center}\small\MyStretch
% \begin{tabular}{ll}\toprule
% |\FName[Albert]{Einstein}| or |\SEinstein| & \SEinstein\\
-% \rowcolor{black!7!white}|\FName[M.T.]{Cicero}[Marcus Tullius]| & \\
-% \rowcolor{black!7!white}or |\SCicero[Marcus Tullius]| & \SCicero[Marcus Tullius]\\
+% \rowcolor{grey}|\FName[M.T.]{Cicero}[Marcus Tullius]| & \\
+% \rowcolor{grey}or |\SCicero[Marcus Tullius]| & \SCicero[Marcus Tullius]\\
% |\FName{Confucius}| or |\SConfucius |& \FName{Confucius}\\
-% \rowcolor{black!7!white}|\FName{Miyazaki, Hayao}| or |\SMiyaz| & \FName{Miyazaki, Hayao}\\
+% \rowcolor{grey}|\FName{Miyazaki, Hayao}| or |\SMiyaz| & \FName{Miyazaki, Hayao}\\
% |\ForceFN\FName{Miyazaki, Hayao}| & \\
% or |\ForceFN\SMiyaz| & \ForceFN\FName{Miyazaki, Hayao} \\
-% \rowcolor{black!7!white}|\ForceFN\FName{Miyazaki, Hayao}[Sensei]| & \\
-% \rowcolor{black!7!white}or |\ForceFN\SMiyaz[Sensei]| & \ForceFN\FName{Miyazaki, Hayao}[Sensei]\\
+% \rowcolor{grey}|\ForceFN\FName{Miyazaki, Hayao}[Sensei]| & \\
+% \rowcolor{grey}or |\ForceFN\SMiyaz[Sensei]| & \ForceFN\FName{Miyazaki, Hayao}[Sensei]\\
% |\FName{Elizabeth, I}| or |\SEliz| & \SEliz\\
-% \rowcolor{black!7!white}|\ForceFN\SEliz[Good Queen Bess]| & \ForceFN\SEliz[Good Queen Bess]\\\bottomrule
+% \rowcolor{grey}|\ForceFN\SEliz[Good Queen Bess]| & \ForceFN\SEliz[Good Queen Bess]\\\bottomrule
% \end{tabular}
% \end{center}
%
-% The \meta{Alternate} argument replaces forenames in the text, which strongly shapes the use of \cmd{\FName}.\footnote{If \meta{Alternate} is \cmd{\ignorespaces}, the Western long form of \cmd{\FName} looks like the short form of \cmd{\Name}, while the Western short form of \cmd{\FName} acts like \cmd{\leavevmode} and prints nothing. ``Native'' Eastern and ancient forms would have an extra trailing space.}
-% We recap what we saw on page~\pageref{page:ArgIV}, emphasizing forenames:
+% The \meta{Alternate} argument replaces forenames in the text, which strongly shapes the use of \cmd{\FName}. We apply page~\pageref{page:ArgIV} to forenames:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
%\begin{nameauth}
% \< Lewis & Clive Staples & Lewis & >
% \< CSL & Clive Staples & Lewis & C.S. >
-% \< Ches & Chesley B. & Sullenberger, III & >
-% \< Sully & Chesley B. & Sullenberger, III & Sully >
% \< Miyaz & & Miyazaki, Hayao & >
% \< MSens & & Miyazaki, Hayao & Sensei >
%\end{nameauth}\end{verbatim}
% \end{quote}
%
-% These share name patterns: \cmd{\SCSL} \SCSL, \cmd{\SLewis} \SLewis; \cmd{\SChes} \SChes, \cmd{\SSully} \SSully; \cmd{\SMiyaz} \SMiyaz, \cmd{\SMSens} \SMSens.
-%
-% Equivalents: \cmd{\SCSL} \SCSL, \cmd{\SLewis[C.S.]} \SLewis[C.S.]; \cmd{\SSully} \SSully, \cmd{\SChes[Sully]} \SChes[Sully]; |\ForceFN\SMSens| \ForceFN\SMSens, |\ForceFN\SMiyaz[Sensei]|: \ForceFN\SMiyaz[Sensei].
-%
-% These\Warn{} fail: \cmd{\SCSL[Jack]}: \SCSL[Jack]; \cmd{\SSully[Chesley]}: \SSully[Chesley]; and |\ForceFN\SMSens[Hayao]|: \ForceFN\SMSens[Hayao]. Whenever \meta{arg4} of the \texttt{nameauth} environment is used, the respective shorthands cannot take optional arguments.
+% \begin{itemize}
+% \item They\SPatInfo{\ShowPattern[Clive Staples]{Lewis}\break \ShowPattern{Miyazaki, Hayao}} share name control patterns (Section~\ref{sec:NamePatterns}). Therefore, they have the same ``first-use'' and ``later-use'' conditions.
+% \item Usually, one adds alternate names to shorthands with an empty \meta{arg4}:\\[1ex]
+% \vspace{-11ex}\IdxInfo{\ShowIdxPageref*[Clive Staples]{Lewis}\break \ShowIdxPageref*{Miyazaki, Hayao}}\vspace{11ex}\leavevmode
+% \begin{tabular}{l@{\ }ll@{\ }l}\toprule
+% \cmd{\SLewis[C.S.]} & \SLewis[C.S.] & \cmd{\SCSL} & \SCSL\\
+% \rowcolor{grey}\cmd{\SMiyaz[Sensei]} & \SMiyaz[Sensei] & \cmd{\SMSens} & \SMSens\\
+% \cmd{\ForceFN}\cmd{\SMiyaz[Sensei]} & \ForceFN\SMiyaz[Sensei] & \cmd{\ForceFN}\cmd{\SMSens} & \ForceFN\SMSens\\\bottomrule
+% \end{tabular}
+% \item Trying to add ``alternate names'' to shorthands that use \meta{arg4} fails:\\[1ex]
+% \begin{tabular}{l@{\ }l}\toprule
+% \rowcolor{grey}\cmd{\SCSL[Jack]} & \SCSL[Jack]\\
+% \cmd{\ForceFN}\cmd{\SMSens[Sensei]} & \ForceFN\SMSens[Sensei]\\\bottomrule
+% \end{tabular}
+% \end{itemize}
%
% \ReturnLink
% \newpage
@@ -1866,9 +1947,9 @@ the README.txt or README for more information.
% \subsubsection{Variant Names}
% \label{sec:VarNames}
%
-% This\Version{3.1} section explains how to manage more complicated variants, which gives one the skills needed to implement a name authority. We draw from Sections~\ref{sec:Formatting}, \ref{sec:IndexXref}, \ref{sec:IndexSort}, \ref{sec:NameControl}, and \ref{sec:AKA}. One might want to consult those sections also.
-%
-% We\Info{variant forenames} begin with the easier kind of variant names, namely, variant forenames indexed under a canonical name entry:
+% This\Version{3.1} section explains how to manage more complicated variants, which gives one the skills needed to implement a name authority. We draw from Sections~\ref{sec:GeneralIndex}, \ref{sec:IndexSort}, \ref{sec:Formatting}, and \ref{sec:NameControl}. One might want to consult those sections also.\medskip
+%
+% We\Info{Variant forenames} begin with the easier kind of variant names, namely, variant forenames indexed under a canonical name entry:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -1876,15 +1957,20 @@ the README.txt or README for more information.
% \< Tyson & Mike & Tyson & >
% \< Iron & Mike & Tyson & Iron Mike >
%\end{nameauth}\end{verbatim}
+% \end{quote}
+%
+% Below,\SPatInfo{\ShowPattern[Mike]{Tyson}} all variants have the same pattern and index entry because they are based on the same name form:
%
-% \begin{tabular}{@{}lrlrl}
-% Same pattern: & \cmd{\Iron} & \Iron & \cmd{\LTyson} & \LTyson\\
-% & \cmd{\SIron} & \SIron & \cmd{\STyson} & \STyson\\
+% \begin{quote}\small\leavevmode\vspace{-8ex}\IdxInfo{\ShowIdxPageref*[Mike]{Tyson}}\vspace{8ex}
+% \begin{tabular}{rlrl}
+% \cmd{\Iron} & \Iron & \cmd{\LTyson[Iron Mike]} & \LTyson[Iron Mike]\\
+% \cmd{\LIron} & \LIron & \cmd{\LTyson} & \LTyson\\
+% \cmd{\SIron} & \SIron & \cmd{\STyson} & \STyson\\
% \end{tabular}
% \end{quote}
-% Since \LIron\ is indexed as ``\ShowIdxPageref*[Mike]{Tyson}'' throughout the document, we can use |\IndexRef{Iron Mike}{Tyson, Mike}| with no output in the text or |\AKA[Mike]{Tyson}{Iron Mike}| \AKA[Mike]{Tyson}{Iron Mike} to print a name. Both create the cross-reference ``Iron Mike \textit{see} Tyson, Mike'' in the index.
+% Since \LIron\ is indexed as ``\ShowIdxPageref*[Mike]{Tyson}'' throughout the document, we can use \cmd{\IndexRef\{Iron Mike\}\{Tyson, Mike\}}\IndexRef{Iron Mike}{Tyson, Mike}, which produces no output in the text. Thus we get ``Iron Mike \textit{see} Tyson, Mike'' as a cross-reference in the index.\medskip
%
-% Variant\Info{variant surnames} family names are more complicated than variant personal names. For surname variants, one can use the following method to get fairly good results, depending on the trade-offs that one wishes to accept:
+% Variant\Info{Variant surnames} family names are more complicated. The following method avoids using macros in name arguments (cf. Page~\pageref{page:Romani}) to get decent results:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -1892,27 +1978,28 @@ the README.txt or README for more information.
% \< DuBois & W.E.B. & Du~Bois & >
% \< AltDuBois & W.E.B. & DuBois & >
%\end{nameauth}
-%\PretagName[W.E.B.]{Du~Bois}{Dubois, W.E.B.}\end{verbatim}
+%\PretagName[W.E.B.]{Du~Bois}{Dubois, William}%
+%\PretagName[W.E.B.]{DuBois}{Dubois, William}\end{verbatim}
% \end{quote}
-% \begin{enumerate}
-% \item We decide the canonical name form: \cmd{\DuBois} \ForgetThis\DuBois.
-% \item Both\Warn{} \cmd{\Name[W.E.B.]\{Du Bois\}} and \cmd{\Name[W.E.B.]\{DuBois\}} have the pattern ``\texttt{\ShowPattern[W.E.B.]{Du Bois}}'' (Section~\ref{sec:NamePatterns}). Here we use |Du~Bois| as the argument because we want no breaks, giving us ``\texttt{\ShowPattern[W.E.B.]{Du~Bois}}''.
-% \item We set the sort key for both names to be \texttt{\{Dubois, W.E.B.\}}. If it were of the form \texttt{\{Du Bois, W.E.B.\}}, they would sort differently (Section~\ref{sec:IndexSort}). One must check a style manual for proper sorting.
+% \begin{itemize}
+% \item We decide\SPatInfo{\ShowPattern[W.E.B.]{Du~Bois}\break \ShowPattern[W.E.B.]{DuBois}} the canonical name form: \cmd{\DuBois} \ForgetThis\DuBois.
+% \item Both \cmd{\Name[W.E.B.]\{Du Bois\}} and \cmd{\Name[W.E.B.]\{DuBois\}} have the same pattern: \texttt{\ShowPattern[W.E.B.]{DuBois}} (Section~\ref{sec:NamePatterns}).
+% \item Here\vspace{-3ex}\IdxInfo{\ShowIdxPageref*[W.E.B.]{Du~Bois}\break \ShowIdxPageref*[W.E.B.]{DuBois}}\vspace{3ex} we use |\Name[W.E.B.]{Du~Bois}| to avoid bad breaks.
+% \item The sort key for both names is \texttt{\{Dubois, William\}}. Had we kept the space, the name would be sorted before \texttt{dual} (Section~\ref{sec:IndexSort}). One may have to spell out a name when sorting its initials.
% \item Instead of using \cmd{\SkipIndex}\cmd{\AltDuBois} many times, we create a cross-reference in the preamble so that no page entry for the alternate form will occur in the index:\IndexRef[W.E.B.]{DuBois}{Du Bois, W.E.B.}\smallskip\\
% | \IndexRef[W.E.B.]{DuBois}{Du Bois, W.E.B.}|
% \item We can use |\JustIndex\DuBois\AltDuBois| \JustIndex\DuBois\AltDuBois, keep full stop detection, and check if the name straddles a page break in order to append |\JustIndex\DuBois| if needed.
% \item If we create a macro like the one below, we lose full stop detection but then we do not have to check if the name straddles a page break. Normally, the name macros create two index entries each in order to handle this issue automatically:\smallskip\\
% | \newcommand\NewDuBois%|\\
% | {\JustIndex\DuBois\AltDubois\JustIndex\DuBois}|
-% \end{enumerate}
-%
+% \end{itemize}
+%
% \newpage
% \begin{center}\bfseries Example Name Authority\end{center}
-%
% Below are a couple of names from a name authority created for a translation of \textit{De Diaconis et Diaconissis Veteris Ecclesiae Liber Commentarius} by \Name[Caspar]{Ziegler}, of which the present author was the editor.\footnote{The book, \textit{The Diaconate of the Ancient and Medieval Church}, originally was typeset using \LaTeX, but had to be converted to a different format. Using \LaTeX, the present author has published Charles P. Schaum and Albert B. Collver III, \textit{Breath of God, Yet Work of Man: Scripture, Philosophy, Dialogue, and Conflict} (St. Louis: Concordia Publishing House, 2019).}
-%
+%
% Constructing that name authority was a challenge. In order to get the names right\,---\,the deceased translator unfortunately had left them in abbreviated Latin, as well as leaving many place names in Latin or translating them incorrectly\,---\,the present author used the following sources, among several others:
-%
+%
% \begin{itemize}
% \item CERL Thesaurus: \url{https://data.cerl.org/thesaurus/_search}
% \item Virtual International Authority File: \url{http://viaf.org/}
@@ -1920,12 +2007,13 @@ the README.txt or README for more information.
% \item WorldCat: \url{https://www.worldcat.org/}
% \item An older version of Graesse, \textit{Orbis Latinus}:\\ \url{http://www.columbia.edu/acis/ets/Graesse/contents.html}
% \end{itemize}
-%
-% This author followed the scholarly standards for determining the canonical name forms and used the alternate names (which were the ones actually in the original text) to refer to the canonical forms. I just translated all the place-names.
-%
-% Below we have candidates for sorting with \cmd{\PretagName} (Section~\ref{sec:IndexSort}) and potential use of \cmd{\CapThis} (Section~\ref{sec:NameParticles}). After using \cmd{\IndexRef} with a particular name, using \cmd{\Name} with that same name will not create a page reference from that point onward (Section~\ref{sec:IndexXref}).
-%
-% \begin{quote}
+%
+% This author used the vernacular forms as canonical, with the Latin versions as alternates. I translated all the place-names.
+%
+% Below we have candidates for sorting with \cmd{\PretagName} (Section~\ref{sec:IndexSort}) and potential use of \cmd{\CapThis} (Section~\ref{sec:NameParticles}). \emph{After} using \cmd{\IndexRef} with a particular name, using \cmd{\Name} with that same name will not create a page reference from that point onward (Section~\ref{sec:GeneralIndex}). If one were to use the alternate name \emph{before} using \cmd{\IndexRef}, then \cmd{\SeeAlso}\cmd{\IndexRef} would be used after all name references.
+%
+% \begin{quote}\small\vspace{3.5ex}\SPatInfo{\ShowPattern[Jacques]{De~Pamele}\break \ShowPattern[Jacobus]{Pamelius}\break \ShowPattern[Giovanni]{d'Andrea}\break \ShowPattern[Ioannes]{Andreae}}
+% \vspace{-3ex}
% \StartNum
% \begin{verbatim}
%\PretagName[Jacques]{De~Pamele}{Depamele, Jacques}
@@ -1938,59 +2026,62 @@ the README.txt or README for more information.
%\IndexRef[Ioannes]{Andreae}{d'Andrea, Giovanni}
%\Name[Ioannes]{Andreae}\end{verbatim}
%
-% \medskip \begin{tabular}{ll}\toprule
+% \leavevmode\vspace{-12ex}\IdxInfo{\ShowIdxPageref*[Jacques]{De~Pamele}\break \ShowIdxPageref*[Jacobus]{Pamelius}\break \ShowIdxPageref*[Giovanni]{d'Andrea}\break \ShowIdxPageref*[Ioannes]{Andreae}}\vspace{12ex}
+%
+% \begin{tabular}{ll}\toprule
% Canonical Name & Alternate Name\\\midrule
-% \Name[Jacques]{De~Pamele}[Jacques de~Joigny] &
-% \leavevmode\IndexRef[Jacobus]{Pamelius}{De~Pamele, Jacques}\Name[Jacobus]{Pamelius}\\
-% \rowcolor{black!7!white}\Name[Giovanni]{d'Andrea} &
-% \leavevmode\IndexRef[Ioannes]{Andreae}{d'Andrea, Giovanni}\Name[Ioannes]{Andreae}\\\bottomrule
+% \rowcolor{grey}\Name[Jacques]{De~Pamele}[Jacques de~Joigny]\IndexRef[Jacobus]{Pamelius}{De~Pamele, Jacques} &
+% \Name[Jacobus]{Pamelius}\\
+% \Name[Giovanni]{d'Andrea}\IndexRef[Ioannes]{Andreae}{d'Andrea, Giovanni} &
+% \Name[Ioannes]{Andreae}\\\bottomrule
% \end{tabular}
% \end{quote}
% \CapThis\Name[Giovanni]{d'Andrea} |\CapThis\Name[Giovanni]{d'Andrea}| can be used at the beginning of a sentence. |\Name[Jacques]{De~Pamele}| gives \Name[Jacques]{De~Pamele}.
-%
+%
% \ReturnLink
% \newpage
%
% \subsection{Language Topics}
% \label{sec:Lang}
-% This section looks at how \textsf{nameauth} addresses grammar, usage, and cultural standards. The concept of comma-delimited affixes dominates much of this section.
+% Here we focus on specific issues that are related to parts of names used differently in various cultures and kinds of names related to specific cultures. Comma-delimited affixes \meta{SNN, Affix} are a key concept here. Advanced topics in this section draw on Sections~\ref{sec:Indexing}, \ref{sec:Formatting}, \ref{sec:AltFormat}, and \ref{sec:NameDecisions}.
%
% \subsubsection[Affixes]{Affixes Require Commas}
% \label{sec:Affix}
%
-% A comma is required to separate a Western surname and affix, an Eastern family name and personal name, and an ancient name and affix. Yet we must take care because an example like \cmd{\Name\{}\cmd{\textsc\{a Name, Problem\}\}} will halt \LaTeX\ with errors (Section~\ref{sec:AltFormat}). Spaces around the comma are ignored (Section~\ref{sec:ErrorProt}).
+% A comma\SPatInfo{\ShowPattern[Oskar]{Hammerstein, II}\break \ShowPattern{Louis, XIV}\break \ShowPattern{Sun, Yat-sen}} separates a Western surname and affix; a ``native'' Eastern family name and personal name; and a royal, medieval, or ancient name and affix. To avoid errors, one must treat \meta{SNN, Affix} as two separate arguments (Section~\ref{sec:AltFormat}). Spaces around the comma are ignored.
%
-% \begin{center}\small\ForgetName{Sun, Yat-sen}\MyStretch
+% \begin{center}\small\ForgetName{Sun, Yat-sen}\IdxInfo{\ShowIdxPageref*[Oskar]{Hammerstein, II}\break \ShowIdxPageref*{Louis, XIV}\break \ShowIdxPageref*{Sun, Yat-sen}}\MyStretch
% \begin{tabular}{ll}\toprule
% |\Name[Oskar]{Hammerstein, II}| & \KeepAffix\Name[Oskar]{Hammerstein, II}\\
% |\Name[Oskar]{Hammerstein, II}| & \Name[Oskar]{Hammerstein, II}\\
-% \rowcolor{black!7!white}|\Name{Louis, XIV}| & \KeepAffix\Name{Louis, XIV}\\
-% \rowcolor{black!7!white}|\Name{Louis, XIV}| & \Name{Louis, XIV}\\
+% \rowcolor{grey}|\Name{Louis, XIV}| & \KeepAffix\Name{Louis, XIV}\\
+% \rowcolor{grey}|\Name{Louis, XIV}| & \Name{Louis, XIV}\\
% |\Name{Sun, Yat-sen}| & \KeepAffix\Name{Sun, Yat-sen}\\
% |\Name{Sun, Yat-sen}| & \Name{Sun, Yat-sen}\\\bottomrule
% \end{tabular}
% \end{center}
%
-% Western\Warn{} names with affixes must use the comma-delimited syntax. Using the obsolete syntax, |\SkipIndex\Name[Oskar]{Hammerstein}[II]| produces \SkipIndex\Name[Oskar]{Hammerstein}[II] which is an error. See also (Section~\ref{sec:AKA}).\medskip
-%
+% Western\SPatInfo{\ShowPattern[Oskar]{Hammerstein}[II]} names with affixes must use \meta{SNN, Affix}, never the obsolete syntax, which is meant for non-Western names and is discouraged. We get \SkipIndex\Name[Oskar]{Hammerstein}[II] and a bad index entry from, e.g., \cmd{\SkipIndex}\cmd{\Name[Oskar]\{Hammerstein\}[II]}.\medskip
+%
% \DescribeMacro{\KeepAffix}
-% In the text only, \cmd{\KeepAffix} turns the space \emph{between} \meta{SNN} and \meta{Affix} into a non-breaking space. This holds for a Western surname and affix, an ancient name and affix, and a ``native'' Eastern family name and personal name.\medskip
+% In the text only, \cmd{\KeepAffix} turns the space \emph{between} \meta{SNN} and \meta{Affix} into a non-breaking space if both \meta{SNN} and \meta{Affix} are displayed. This macro works with all name types, even with the obsolete syntax.\medskip
%
% \DescribeMacro{\KeepName}
-% In the text only, \cmd{\KeepName} turns all spaces \emph{between} name elements \meta{FNN}, \meta{SNN}, and \meta{Affix} into non-breaking spaces;\Version{3.1} |\KeepName\LJWG[von]| \KeepName\LJWG[von] will not break. This macro does not alter spaces \emph{within} name elements like \meta{FNN} (French or German forenames) and \meta{SNN} (Spanish surnames). Both \cmd{\KeepAffix} and \cmd{\KeepName} can affect \textsf{nameauth} macros that print in the text.\medskip
+% In the text only, \cmd{\KeepName} turns all spaces \emph{between} name elements \meta{FNN}, \meta{SNN}, and \meta{Affix} into non-breaking spaces if those elements are displayed.\Version{3.1} This macro does not alter spaces \emph{within} name elements that have multiple names like French or German forenames and Spanish surnames. As above, this macro works with all name types, even with the obsolete syntax.\medskip
%
% \DescribeMacro{\DropAffix}
-% Preceding the naming macros with \cmd{\DropAffix} will suppress an affix in a Western name. |\DropAffix\Name*[Oskar]{Hammerstein, II}| produces\Version{3.0} ``\DropAffix\Name*[Oskar]{Hammerstein, II}.'' This does not affect non-Western names.\medskip
+% Preceding the naming macros with \cmd{\DropAffix} will suppress an affix only in a Western name. |\DropAffix\Name*[Oskar]{Hammerstein, II}| produces\Version{3.0} ``\DropAffix\Name*[Oskar]{Hammerstein, II}''. This macro does not affect non-Western names.
+%
+% With non-Western names, the \meta{Affix} in the \meta{SNN, Affix} pair drops automatically in the text for subsequent uses, making \cmd{\DropAffix} redundant. We see that above in the case of \Name*{Louis,XIV}, who becomes \Name{Louis,XIV}.\medskip
%
% \DescribeMacro{\ShowComma}
-% \cmd{\ShowComma} forces a comma between a Western name and its affix. It works like the \texttt{comma} option on a per-name basis, and only in the body text.
+% \cmd{\ShowComma} forces a comma between a Western name and its affix. It works like the \texttt{comma} option on a per-name basis, and only in the text.
% \DescribeMacro{\NoComma}
-% \cmd{\NoComma} works like the \texttt{nocomma} option in the body text on a per-name basis.
-% Neither\Version{2.6} of these macros affect the use of \cmd{\RevComma}, which always prints a comma.
+% One uses \cmd{\ShowComma} with older publication styles that separate a Western name and affix with a comma. \cmd{\NoComma} works like the \texttt{nocomma} option in the body text on a per-name basis. Neither of these macros affect the use of \cmd{\RevComma}, which always prints a comma.
% \begin{center}\small\MyStretch
% \begin{tabular}{ll}\toprule
-% |\ShowComma\Name*[Louis]{Gossett, Jr.}| & \ShowComma\Name*[Louis]{Gossett, Jr.}\\
-% \rowcolor{black!7!white}|\NoComma\Name*[Louis]{Gossett, Jr.}| & \NoComma\Name*[Louis]{Gossett, Jr.}\\\bottomrule
+% \rowcolor{grey}|\ShowComma\LPat| & \ShowComma\LPat\\
+% |\NoComma\LPat| & \NoComma\LPat\\\bottomrule
% \end{tabular}
% \end{center}
%
@@ -1999,21 +2090,25 @@ the README.txt or README for more information.
%
% \subsubsection[Listing by Surname]{Listing Western names by Surname}
% \label{sec:LastFirst}
+%^^A Starting with this point, if there is an error in the docs then the aux files will
+%^^A be ruined and must be deleted. Above this point it will be okay. Why?
%
% \DescribeMacro{\ReverseCommaActive}
% In addition to the options for reversed comma listing (Section~\ref{sec:PkgOptions}), the macros \cmd{\ReverseCommaActive} and \cmd{\ReverseCommaInactive}
% \DescribeMacro{\ReverseCommaInactive}
% function the same way with blocks of text. They all override \cmd{\RevComma}.
% \DescribeMacro{\RevComma}
-% These all reorder long Western name forms (via \cmd{\Name*} and the like). The first two are broad toggles, while the third works on a per-name basis. These\Version{3.0} macros only affect Western and ``non-native'' Eastern name forms.
+% These all reorder only long Western and ``non-native'' Eastern name forms.\Version{3.0} The first two are broad toggles, while the third works on a per-name basis.
+%
+% \vspace{1.5ex}\leavevmode\SPatInfo{\ShowPattern[Oskar]{Hammerstein, II}\break \ShowPattern[Hideyo]{Noguchi}\break \ShowPattern{Æthelred,II}\break \ShowPattern{Sun, Yat-sen}\break \ShowPattern{Confucius}}\vspace{-4ex}
% \begin{center}\small\MyStretch
% \begin{tabular}{lll}\toprule
-% \ForgetThis\VBuren & \RevComma\LVBuren & OK\\
-% \ForgetThis\Name[Oskar]{Hammerstein, II} & \RevComma\Name*[Oskar]{Hammerstein, II} & OK\\
-% \ForgetThis\LNoguchi & \RevComma\LNoguchi\dag & OK\\
-% \rowcolor{black!7!white}\ForgetThis\Aeth & \RevComma\LAeth & no change\\
-% \rowcolor{black!7!white}\ForgetThis\Name{Chiang}[Kai-shek] & \RevComma\Name*{Chiang}[Kai-shek] & no change\\
-% \rowcolor{black!7!white}\ForceName\Name{Confucius} & \RevComma\Name{Confucius} & no change\\\bottomrule
+% \ForgetThis\VBuren & \RevComma\LVBuren & change\\
+% \ForgetThis\Name[Oskar]{Hammerstein, II} & \RevComma\Name*[Oskar]{Hammerstein, II} & change\\
+% \ForgetThis\LNoguchi & \RevComma\LNoguchi\dag & change\\
+% \rowcolor{grey}\ForgetThis\Aeth & \RevComma\LAeth & no change\\
+% \rowcolor{grey}\ForgetThis\Name{Sun, Yat-sen} & \RevComma\Name*{Sun, Yat-sen} & no change\\
+% \rowcolor{grey}\ForceName\Name{Confucius} & \RevComma\Name{Confucius} & no change\\\bottomrule
% \end{tabular}
% \end{center}
%
@@ -2024,44 +2119,54 @@ the README.txt or README for more information.
% \subsubsection{Eastern Names}
% \label{sec:Eastern}
%
-% One\Info{``non-native''} produces a ``non-native'' Eastern name in the text by reversing a Western without \meta{Affix} using \cmd{\RevName}:
+% All non-Western name forms using the \textsf{nameauth} macros omit the first optional argument. Yet the reversing macros can make Western names have Eastern name order, but only in the text, not in the index.\medskip
+%
+% One\Info{``Non-native''} produces a ``non-native'' Eastern name in the text by reversing a Western name without \meta{Affix} using \cmd{\RevName}, e.g.:
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\RevName}\cmd{\Name*}\oarg{FNN}\marg{SNN}\oarg{Alternate} }
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\RevName}\cmd{\Name}\oarg{FNN}\marg{SNN}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
-%
% The index entry of this name form looks like \meta{SNN}, \meta{FNN} (including the comma). This is a Western index entry. This form is used also for Hungarian names, e.g.: |\RevName\Name[Frenec]{Molnár}| \ForgetThis\RevName\Name[Frenec]{Molnár}\dag, \RevName\Name[Frenec]{Molnár}\dag.\medskip
%
-% In\Info{``native''} contrast, ``native'' Eastern names use either comma-delimited syntax or the obsolete syntax. They have Eastern-form index entries \meta{SNN} \meta{Affix/Alternate} (no comma). The new syntax permits alternate names; the obsolete does not. These forms work also with ancient and medieval names:
+% In\Info{``Native''} contrast, ``native'' Eastern names use either comma-delimited syntax or the obsolete syntax (Section~\ref{sec:Obsolete}). They have index entries appropriate to Eastern names: \meta{SNN} \meta{Affix} (no comma). The current syntax permits alternate names; the obsolete does not. These forms work also with ancient and medieval names:
%
% \begin{quote}
-% \fbox{\ \parbox{0.45\textwidth}{%
-% \mystrut\cmd{\Name}\marg{SNN, Affix}\oarg{Alternate}\\
-% \mystrut\cmd{\Name}\marg{SNN}\oarg{Alternate}}
-% \parbox{0.225\textwidth}{\color{nared}\mystrut\texttt{\%} \textit{new syntax}\\ \mystrut\texttt{\%} \textit{obsolete syntax}}}
+% \fbox{
+% \begin{tabular}{ll}
+% {\Large\strut}\cmd{\Name}\marg{SNN, Affix}\oarg{Alternate} & \color{nared}\texttt{\%} \textit{new syntax}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% People\Info{avoid error} can make mistakes that these forms help one to avoid. For example, in an otherwise excellent German-language history textbook series, one finds an index entry for ``Yat-sen, Sun''. It should be ``Sun Yat-sen''.\footnote{See Immanuel Geiss, \textit{Personen: Die biographische Dimension der Weltgeschichte}, Geschichte Griffbereit vol. 2 (Munich: Wissen Media Verlag, 2002), 720. Errors arising from cultural differences and basic mistakes give justification for the design of \textsf{nameauth}.}
-% The form |\Name{Sun, Yat-sen}| \Sun\ ensures the correct entry.\medskip
+% People\Info{Avoid error} can make mistakes that these forms help one to avoid. For example, in an otherwise excellent German-language multi-volume history text, one finds the incorrect, Western-form index entry ``\ShowIdxPageref*[Sun]{Yat-Sen}''. It should be ``\ShowIdxPageref*{Sun, Yat-sen}''.\footnote{See Immanuel Geiss, \textit{Personen: Die biographische Dimension der Weltgeschichte}, Geschichte Griffbereit vol. 2 (Munich: Wissen Media Verlag, 2002), 720.}
+% The macro |\Name*{Sun, Yat-sen}| \Name*{Sun, Yat-sen} ensures the correct entry by using the correct form. The goal is to promote cross-cultural sensitivity.\medskip
+% \newpage
%
% \DescribeMacro{\ReverseActive}
% In addition to the options for reversing (Section~\ref{sec:PkgOptions}), \cmd{\ReverseActive} and \cmd{\ReverseInactive} reverse name order for blocks of text.
% \DescribeMacro{\ReverseInactive}
% These all override the use of \cmd{\RevName}, which reverses once per name.
% \DescribeMacro{\RevName}
-% These macros do not affect the index. They work also with \cmd{\AKA} and its derivatives. The reverse mechanism shows only in full names, but it does not force full names. ``Non-native'' forms are shown by a dagger (\dag) in the next table:
-% \begin{center}\small\MyStretch
+% These macros do not affect the index. They work also with \cmd{\AKA} and friends. Reversing only affects long name forms. ``Non-native'' forms are shown with a dagger (\dag):
+%
+% \vspace{1.5ex}\leavevmode\SPatInfo{\ShowPattern[Hideyo]{Noguchi}\break \ShowPattern{Miyazaki, Hayao}}\vspace{-3.5ex}
+% \begin{center}\small\MyStretch\leavevmode\vspace{-29ex}\IdxInfo{\ShowIdxPageref*[Hideyo]{Noguchi}\break \ShowIdxPageref*{Miyazaki, Hayao}}\vspace{29ex}
% \begin{tabular}{rll}\toprule
% & unchanged & |\RevName|\\\midrule
-% |\LNoguchi| & \LNoguchi & \RevName\LNoguchi\dag\\
-% |\LNoguchi[Doctor]| & \LNoguchi[Doctor] & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} \\
-% |\LNoguchi[Sensei]| & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} & \RevName\LNoguchi[Sensei]\dag\\
-% |\Noguchi| & \Noguchi & \RevName\Noguchi\dag\\
-% |\SNoguchi| & \SNoguchi & \RevName\SNoguchi\dag\\
-% \rowcolor{black!7!white}|\LYamt| & \LYamt & \RevName\LYamt\\
-% \rowcolor{black!7!white}|\LYamt[Admiral]| & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} & \RevName\LYamt[Admiral]\\
-% \rowcolor{black!7!white}|\Yamt| & \Yamt & \RevName\Yamt\\
-% \rowcolor{black!7!white}|\SYamt| & \SYamt & \RevName\SYamt\\
-% \rowcolor{black!7!white}|\ForceFN\SYamt| & \ForceFN\SYamt & \ForceFN\RevName\SYamt\\\bottomrule
+% \rowcolor{grey}|\LNoguchi| & \LNoguchi & \RevName\LNoguchi\dag\\
+% \rowcolor{grey}|\LNoguchi[Doctor]| & \LNoguchi[Doctor] & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} \\
+% \rowcolor{grey}|\LNoguchi[Sensei]| & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} & \RevName\LNoguchi[Sensei]\dag\\
+% \rowcolor{grey}|\Noguchi| & \Noguchi & \RevName\Noguchi\dag\\
+% \rowcolor{grey}|\SNoguchi| & \SNoguchi & \RevName\SNoguchi\dag\\
+% |\LMiyaz| & \LMiyaz & \RevName\LMiyaz\\
+% |\LMiyaz[Mr.]| & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} & \RevName\LMiyaz[Mr.]\\
+% |\LMiyaz[Sensei]| & \LMiyaz[Sensei] & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}}\\
+% |\Miyaz| & \Miyaz & \RevName\Miyaz\\
+% |\SMiyaz| & \SMiyaz & \RevName\SMiyaz\\
+% |\ForceFN\SMiyaz| & \ForceFN\SMiyaz & \ForceFN\RevName\SMiyaz\\\bottomrule
% \end{tabular}\medskip\\
% \end{center}
%
@@ -2072,120 +2177,194 @@ the README.txt or README for more information.
% \DescribeMacro{\AllCapsInactive}
% All override \cmd{\CapName}, which works once per name.
% \DescribeMacro{\CapName}
-% These capitalize \meta{SNN} in the body text only. They also work with \cmd{\AKA} and friends. For caps in the text and index see Sections~\ref{sec:AltFormat} and~\ref{sec:Hooksiii}. We show ``non-native'' Eastern forms with a dagger ({\dag}) and the old syntax with a double dagger(\ddag).
+% These capitalize \meta{SNN} in the body text only. They also work with \cmd{\AKA} and friends. For caps in the text and index see Sections~\ref{sec:AltFormat} and~\ref{sec:Hooksiii}. We show ``non-native'' Eastern forms with a dagger ({\dag}):
%
% \begin{center}\small\MyStretch\AllCapsActive
% \begin{tabular}{lll}\toprule
% & |\CapName| only & |\CapName\RevName|\\\midrule
-% |\Name*[Yoko]{Kanno}| & \CapName\Name*[Yoko]{Kanno} & \CapName\RevName\Name*[Yoko]{Kanno}\dag\\
-% \rowcolor{black!7!white}|\Name*{Arai, Akino}| & \Name*{Arai, Akino} & \RevName\Name*{Arai, Akino}\\
-% |\Name*{Ishida}[Yoko]| & \CapName\Name*{Ishida}[Yoko]\ddag & \CapName\RevName\Name*{Ishida}[Yoko]\ddag\\
-% \rowcolor{black!7!white}|\Name*{Yohko}| & \Name*{Yohko} & \RevName\Name*{Yohko}\\\bottomrule
+% \rowcolor{grey}|\LNoguchi| & \CapName\LNoguchi & \RevName\LNoguchi\dag\\
+% |\LMiyaz| & \LMiyaz & \RevName\LMiyaz\\\bottomrule
% \end{tabular}\AllCapsInactive
% \end{center}
-%
+%
% Both\Info{\cmd{\global}} \cmd{\AllCapsActive} and \cmd{\AllCapsInactive} can be used either as a pair or singly within an explicitly local scope. Use \cmd{\global} to force a global effect.
%
% \ReturnLink
%
-% \subsubsection[Particles / Ancient]{Particles, Medieval Names, and Ancient Names}
+% \subsubsection[Particles]{Particles in Names}
% \label{sec:NameParticles}
%
-% English\Info{cap rules} names with particles \textit{de}, \textit{de\ la}, \textit{d'}, \textit{von}, \textit{van}, and \textit{ten} often keep them with the last name, using varied capitalization.\footnote{According to [\hyperlink{Mulvany}{Mulvany}, 165f.] and the \textit{Chicago Manual of Style}.} \textit{Le}, \textit{La}, and \textit{L'} always are capitalized unless preceded by \textit{de}. See also Sections~\ref{sec:SimpleStart}, \ref{sec:NamePatterns}, \ref{sec:VarNames}, and \ref{sec:AltFormat}.\medskip
+% Particles in names have specific rules:
+% \begin{itemize}
+% \item English use of \textit{de}, \textit{de\ la}, \textit{d'}, \textit{von}, \textit{van}, and \textit{ten} often keeps them with the surname with varied capitalization.
+% \item \textit{Le}, \textit{La}, and \textit{L'} always are capitalized unless preceded by \textit{de}.\footnote{According to [\hyperlink{Mulvany}{Mulvany}, 152–82] and the \textit{Chicago Manual of Style}.}
+% \item Modern Romance languages keep particles with the surname.
+% \item German and medieval Romance languages put particles with forenames.
+% \end{itemize}
+% \newpage
+%
+% \leavevmode\SPatInfo{\ShowPattern[Martin]{Van Buren}\break \ShowPattern[Hernando]{de~Soto}\break \ShowPattern[J.W. von]{Goethe}}
+% \vspace{-3ex}
+% \begin{center}\small\MyStretch\leavevmode\vspace{-12ex}\IdxInfo{\ShowIdxPageref*[Martin]{Van Buren}\break \ShowIdxPageref*[Hernando]{de~Soto}\break \ShowIdxPageref*[J.W. von]{Goethe}}\vspace{12ex}
+% \begin{tabular}{rll}\toprule
+% \bfseries Macro & \bfseries Body Text & \bfseries Index \\\midrule
+% \rowcolor{grey}\cmd{\ForgetThis}\cmd{\VBuren} & \ForgetThis\VBuren & \ShowIdxPageref*[Martin]{Van Buren}\\
+% \cmd{\VBuren} & \VBuren & \ShowIdxPageref*[Martin]{Van Buren}\\
+% \rowcolor{grey}\cmd{\ForgetThis}\cmd{\Soto} & \ForgetThis\Soto & \ShowIdxPageref*[Hernando]{de~Soto}\\
+% \cmd{\CapThis}\cmd{\Soto} & \CapThis\Soto & \ShowIdxPageref*[Hernando]{de~Soto}\\
+% \rowcolor{grey}\cmd{\ForgetThis}\cmd{\JWG} & \ForgetThis\JWG & \ShowIdxPageref*[J.W. von]{Goethe}\\
+% \cmd{\JWG} & \JWG & \ShowIdxPageref*[J.W. von]{Goethe}\\\bottomrule
+% \end{tabular}
+% \end{center}
%
-% We\Info{non-breaking\break spaces} recommend inserting a tilde (active character for a non-breaking space) or \cmd{\nobreakspace} between some particles and names to prevent bad breaks, sorting them with \cmd{\PretagName} (Section~\ref{sec:IndexSort}).
-% Some particles look similar: \textit{L'} (L+apostrophe) and \textit{d'} (d+apostrophe) are two separate glyphs each. In contrast, \textit{Ľ} (L+caron) and \textit{ď} (d+caron) are one Unicode glyph each (Section~\ref{sec:Unicode}).
-%\newpage
+% We\Info{A few tips} recommend inserting a tilde (active character for a non-breaking space) or \cmd{\nobreakspace} between some particles and names to prevent bad breaks, sorting them with \cmd{\PretagName} (Section~\ref{sec:IndexSort}).
+% Some particles look similar: \textit{L'} (L+apostrophe) and \textit{d'} (d+apostrophe) are two separate glyphs each. In contrast, \textit{Ľ} (L+caron) and \textit{ď} (d+caron) are one Unicode glyph each (Section~\ref{sec:Unicode}).\medskip
%
% \phantomsection
% \label{page:CapThis}
% \DescribeMacro{\CapThis}
-% In English and modern Romance languages, e.g., \ForgetThis\Soto\ shows that these particles go in the \meta{SNN} argument of \cmd{\Name}: \Soto. When the particle appears at the beginning of a sentence, one must capitalize it:
+% In English and modern Romance languages, e.g., \LSoto\ shows that these particles go in the \meta{SNN} argument of \cmd{\Name}: \Soto. When the particle appears at the beginning of a sentence, one must capitalize it:
% \begin{quote}\small
% |\CapThis\Soto\| \CapThis\Soto\ was a famous Spanish explorer in North America.
% \end{quote}
%
% \cmd{\CapName} overrides the \meta{SNN} created by \cmd{\CapThis}. \cmd{\CapThis}\Version{3.2} should work with all of the Unicode characters available in the T1 encoding (its mechanism is explained in Section~\ref{sec:Unicode} and on page~\pageref{page:CapSystem}). For a broader set of Unicode characters, consider using \texttt{xelatex} and \texttt{lualatex}.\medskip
%
-% For\Info{surname variants} another example, we mention poet \Name[e.e.]{cummings}. One can have formatted name caps and inflections, e.g.: \ExcludeName[e.e.]{cummings's}``\SubvertThis\CapThis\Name[e.e.]{cummings's} motif of the goat-footed balloon man has underlying sexual themes that nevertheless have a childish facade.'' The easiest way to do that is from Section~\ref{sec:IndexXref}:
+% For\Info{Surname variants} another example, we mention poet \Name[e.e.]{cummings}. One can have formatted name caps and inflections. The easiest way to do that is from Section~\ref{sec:GeneralIndex}:
+%
+% \vspace{1.5ex}\leavevmode\SPatInfo{\ShowPattern[e.e.]{cummings}\break \ShowPattern[e.e.]{cummings's}}\vspace{-4.5ex}
% \begin{quote}\small
-% |\ExcludeName[e.e.]{cummings's}|\\
-% . . .\\
-% |\SubvertThis\CapThis\Name[e.e.]{cummings's}%|\\
-% |\IndexName[e.e.]{cummings}|\dotfill \SubvertThis\CapThis\Name[e.e.]{cummings's}\IndexName[e.e.]{cummings}
+% \StartNum
+% \begin{verbatim}
+%\ExcludeName[e.e.]{cummings's}\IndexName[e.e.]{cummings}
+%\SubvertThis\CapThis\Name[e.e.]{cummings's} motif of the
+%goat-footed balloon man has underlying sexual themes that
+%nevertheless have a childish facade''.\end{verbatim}
+%
+%\vspace{1ex}\IdxInfo{\ShowIdxPageref*[e.e.]{cummings}}\vspace{-1ex}\ExcludeName[e.e.]{cummings's}\IndexName[e.e.]{cummings}
+%\SubvertThis\CapThis\Name[e.e.]{cummings's} motif of the
+%goat-footed balloon man has underlying sexual themes that
+%nevertheless have a childish facade''.
% \end{quote}
%
-% One\Warn{} must use \cmd{\SubvertThis} only for the first use to avoid ``\ForgetThis\CapThis\Name[e.e.]{cummings's}''; all name elements are capped with \cmd{\CapThis}. Using \cmd{\ExcludeName} keeps one from having to use \cmd{\SkipIndex} every time. With \textsf{nameauth} we can use both simple and complex solutions to name variation. See also Section~\ref{sec:VarNames}.
+% One\Warn{} must use \cmd{\SubvertThis} only for the first use to avoid ``\ForgetThis\CapThis\Name[e.e.]{cummings's}''; all name elements are capped with \cmd{\CapThis}. Using \cmd{\ExcludeName} keeps one from having to use \cmd{\SkipIndex} every time. See also Section~\ref{sec:VarNames}.
%
-% Section~\ref{sec:AltFormat} explains how to use \cmd{\CapThis} with alternate formatting when using macros in name arguments. Page~\pageref{page:Inflections} describes how automation lends itself to Continental (French, German, etc.) formats and grammatical inflections.\medskip
+% Section~\ref{sec:AltFormat} explains how to use \cmd{\CapThis} with alternate formatting when using macros in name arguments. Page~\pageref{page:Inflections} describes how automation lends itself to Continental formats (French, German, etc.) and grammatical inflections.\medskip
%
% \DescribeMacro{\AccentCapThis}
-% If one uses this package on a system that does not handle Unicode, one can use \cmd{\AccentCapThis} instead of \cmd{\CapThis}\Version{3.0} to handle active initial characters. Otherwise, one should not need to use \cmd{\AccentCapThis}.
+% If one uses this package on a system that does not support Unicode, one can use \cmd{\AccentCapThis} instead of \cmd{\CapThis}\Version{3.0} to handle active initial characters. Otherwise, one should not need to use \cmd{\AccentCapThis}.
%
-% \begin{center}\bfseries Examples\end{center}
+% \ReturnLink
+% \vfill
+%
+% \begin{verse}
+% ``Rose is a rose is a rose is a rose''\\\hfill---\Name[Gertrude]{Stein}, ``Sacred Emily'' in \textit{Geography and Plays}
+% \end{verse}
+% \newpage
+%
+% \subsubsection[Medieval/Ancient]{Medieval, Ancient, and Roman Names}
+% \label{sec:NameAncient}
+% \medskip
+%
+% \begin{center}\bfseries Medieval Names\end{center}
+% Medieval names present some interesting difficulties, often based on the expected standards of the context in which they are used. Some publications use them like Western names while others do not. In the following preamble snippet we have:
%
-% Medieval\Info{medieval names} names present some interesting difficulties, often based on the expected standards of the context in which they are used:
+% \vspace{1.5ex}\leavevmode\SPatInfo{\ShowPattern{Thomas, à~Kempis}\hfill \textrm{(1--4, 7)}\break \ShowPattern{Thomas,\`a~Kempis}\hfill \textrm{(5--6)}\break \ShowPattern[Thomas]{à~Kempis}\hfill \textrm{(8--10)}}\vspace{-4.5ex}
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
%\PretagName{Thomas, à~Kempis}{Thomas Akempis} % medieval
%\PretagName[Thomas]{à~Kempis}{Akempis, Thomas} % Western
-%\IndexRef[Thomas]{à~Kempis}{Thomas à~Kempis} % xref
+%\IndexRef[Thomas]{à~Kempis}{Thomas à~Kempis} % xref
%\ExcludeName{Thomas,\`a~Kempis} % alternate form excluded
%\begin{nameauth}
-% \< KempMed & & Thomas, à~Kempis & > % medieval
-% \< KempW & Thomas & à~Kempis & > % Western
+% \< KempMed & & Thomas, à~Kempis & > % medieval
+% \< KempW & Thomas & à~Kempis & > % Western
%\end{nameauth}\end{verbatim}
% \IndexRef[Thomas]{à~Kempis}{Thomas à~Kempis}
% \ExcludeName{Thomas,\`a~Kempis}
-% \end{quote}
+% \end{quote}\vspace{-9ex}\IdxInfo{\ShowIdxPageref*{Thomas, à~Kempis}\hfill (1--4, 7)\break \ShowIdxPageref*{Thomas,\`a~Kempis}\hfill (5--6)\break \ShowIdxPageref*[Thomas]{à~Kempis}\hfill (8--10)}\vspace{8ex}
%
-% The medieval forms\Version{3.1} \KempMed\ and \KempMed\ are indexed as ``\ShowIdxPageref*{Thomas, à~Kempis}.'' The place name |\ForceFN\SKempMed| ``\ForceFN\SKempMed'' (Latin for \textit{von Kempen}) technically is not a Western surname.
-% \CapThis\ForceFN\SKempMed\ |\CapThis\ForceFN\SKempMed| starts a sentence. \Name{Thomas,\`a~Kempis} |\Name{Thomas,\`a~Kempis}| is different. \CapThis\SubvertThis\ForceFN\FName{Thomas, \`a~Kempis} is |\CapThis\SubvertThis\ForceFN\FName{Thomas,\`a~Kempis}|.
-% One should use \cmd{\PretagName} to sort the index entry (Section~\ref{sec:IndexSort}). We excluded this alternate form (Section~\ref{sec:IndexXref}).
-% \newpage
+% \begin{enumerate}
+% \item \KempMed\Version{3.1} is indexed as ``\ShowIdxPageref*{Thomas, à~Kempis}''.
+% \item Later uses display \KempMed\ because ``\ForceFN\SKempMed'' |\ForceFN\SKempMed| is a place name, not a surname. It is Latin for \textit{von Kempen}.
+% \item \CapThis\ForceFN\SKempMed\ |\CapThis\ForceFN\SKempMed| starts a sentence.
+% \item We use \cmd{\PretagName} (Section~\ref{sec:IndexSort}) to sort the name.
+% \item \Name{Thomas,\`a~Kempis} |\Name{Thomas,\`a~Kempis}| is a different name. As above, we would sort this name with \cmd{\PretagName}.
+% \item We used \cmd{\ExcludeName} (Section~\ref{sec:GeneralIndex}) before using the alternate name to keep it out of the index.
+% \item We index the canonical form here with \JustIndex\KempMed|\JustIndex\KempMed|.
+% \item \KempW\ |\KempW| is a Western form with the index entry: ``\ShowIdxPageref*[Thomas]{à~Kempis}''.
+% \item \CapThis\KempW\ appears via |\CapThis\KempW|.
+% \item We created a cross-reference from the Western form to the medieval form, before we used the Western form, thus preventing any spurious page entries (Section~\ref{sec:GeneralIndex}). We index with the medieval form (7).
+% \end{enumerate}
%
-% Western forms\Warn{} like |\KempW|: \KempW\ are very different from medieval forms and create different index entries. |\CapThis\KempW| gives ``\CapThis\KempW'' in the text and ``\ShowIdxPageref*[Thomas]{à~Kempis}'' in the index.
-%
-% Above, we created a cross-reference from the Western form to the medieval form, preventing page entries (Section~\ref{sec:IndexXref}). If we sorted the cross-reference using |\PretagName[Thomas]{à~Kempis}{a Kempis, Thomas}|, it would precede \texttt{aardvark}. We use |\PretagName[Thomas]{à~Kempis}{Akempis, Thomas}|, which sorts the cross-reference between \texttt{ajar} and \texttt{alkaline}. One should check a style manual for correct sorting (Section~\ref{sec:IndexSort}).\medskip
+% Spaces count\Warn{} when sorting index entries (Section~\ref{sec:IndexSort}). Sorting the cross-reference with |\PretagName[Thomas]{à~Kempis}{a Kempis, Thomas}|, would put it before \texttt{aardvark}. |\PretagName[Thomas]{à~Kempis}{Akempis, Thomas}| sorts the cross-reference between \texttt{ajar} and \texttt{alkaline}.
+% \vfil
%
+% \begin{tcolorbox}[colback=white,colframe=nared]
+% From this point forward, we shall change what we show in the margin.
+% We shall show full name patterns that reflect naming systems,
+% index sorting tags, index entry tags, cross-references,
+% and name info (Section~\ref{sec:NamePatterns}).\\[2ex]
+% No longer shall we show index entries in the margins because they
+% shall become too complex for such display to work well.
+% \end{tcolorbox}
+% \newpage
+%
+% \begin{center}\bfseries Ancient Names\end{center}
% \phantomsection
% \label{page:Sobriquets}
-% \begingroup%^^A
-% \renewcommand*\NamesFormat{}%^^A
-% \renewcommand*\MainNameHook{}%^^A
-% Ancient\Info{ancient names} contexts may or may not bind particles to surnames. The \meta{alternate} argument, \cmd{\PretagName}, and \cmd{\TagName} address this (Sections~\ref{sec:IndexSort}, \ref{sec:IndexTag}).
+% \begingroup%^^A Local format hook redefinition
+% \renewcommand*\NamesFormat{}^^A
+% \renewcommand*\MainNameHook{}^^A
+% Ancient contexts may or may not bind particles or other name elements to surnames. One must handle these cases not only in the text, but also in the index. In the rest of this section the examples do not use the formatting conventions of this manual and present themselves as if they were in an ordinary \LaTeX\ document.
+%
+% \begin{itemize}
+% \item For name entries in the index, we can use \cmd{\PretagName} and \cmd{\TagName} to ensure that any ``long form'' information is displayed without using macros in the name arguments. See Sections~\ref{sec:IndexSort}, \ref{sec:IndexTag}.
+% \item In the text, we can use the \meta{Alternate} argument or the name information database (Section~\ref{sec:TextTags}) to add ``long form'' information as needed. Beyond that, we would have to use macros in the name arguments.
+% \end{itemize}
%
-% The next examples do not use the formatting conventions of this manual and sometimes hide details that are specific to this manual in order to keep things simple and reflect normal document usage. See the \texttt{dtx} source code for more information. First we use variants with \meta{alternate}:\footnote{Copies of these examples are in \texttt{examples.tex}, collocated with this manual.}
+% First we explore the easiest way to handle royal or ancient variants with extra ``long form'' information using the \meta{Alternate} argument. We use macros introduced in Sections~\ref{sec:IndexSort} and~\ref{sec:IndexTag}.\footnote{Copies of examples in this section are in \texttt{examples.tex}, located with this manual.}
+%
% \NameAddInfo{Demetrius, I}{ Soter}
+% \vspace{1.5ex}\leavevmode\PatInfo{\ShowPattern{Demetrius, I}!PRE\break \ShowPattern{Demetrius, I}!TAG\break \ShowPattern{Demetrius, I}!MN}\vspace{-4.5ex}
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
-%\NameAddInfo{Demetrius, I}{ Soter}
%\PretagName{Demetrius, I}{Demetrius 1}
%\TagName{Demetrius, I}{ Soter, king}
%\begin{nameauth}
% \< Dem & & Demetrius, I & >
%\end{nameauth}\end{verbatim}
-%
% \smallskip
+%
+% \MyStretch
% \begin{tabular}{ll}\toprule
-% |\Dem[I Soter]| & \Dem[I Soter]\\
-% \rowcolor{black!7!white}|\LDem| & \LDem\\
-% |\Dem| & \Dem\\\bottomrule
-% \end{tabular}
-% \end{quote}
+% \cmd{\Dem[I Soter]} & \Dem[I Soter]\\
+% \rowcolor{grey}^^A
+% \cmd{\LDem} & \LDem\\
+% \cmd{\Dem} & \Dem\\\bottomrule
+% \end{tabular}\smallskip
%
-% \makeatletter\renewcommand*\NamesFormat[1]{\begingroup%^^A
-% \protected@edef\temp{\endgroup{#1%^^A
+% \IndexActual{@}^^A
+% \TagName{Demetrius, I}{ Soter, king}^^A
+% Index (normal \LaTeX\ document): \texttt{\ShowIdxPageref{Demetrius, I}}^^A
+% \TagName{Demetrius, I}{ Soter, king\string|hyperpage}^^A
+% \end{quote}
+%
+% \makeatletter\renewcommand*\NamesFormat[1]{^^A
+% \begingroup^^A
+% \protected@edef\temp{\endgroup{#1^^A
% \noexpand\NameQueryInfo[\unexpanded\expandafter{\the\@nameauth@toksa}]
% {\unexpanded\expandafter{\the\@nameauth@toksb}}
% [\unexpanded\expandafter{\the\@nameauth@toksc}]}}\temp}\makeatother
-% For a more automated approach, we can use ``text tags'' in the formatting macros (see Sections~\ref{sec:TextTags}, \ref{sec:Hooksii}).
+% Using the name information database (``text tags'') with the formatting macros (Sections~\ref{sec:TextTags}, \ref{sec:Hooksii}), we can provide a more automatic approach:
%
+% \vspace{1.5ex}\leavevmode\PatInfo{\ShowPattern{Demetrius, I}!DB\break \ShowPattern{Demetrius, I}!MN}\vspace{-4.5ex}
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
+%\NameAddInfo{Demetrius, I}{ Soter}
%\makeatletter
%\renewcommand*\NamesFormat[1]{%
% \begingroup%
@@ -2200,924 +2379,618 @@ the README.txt or README for more information.
%}
%\makeatother\end{verbatim}
%
-% \smallskip
+% \smallskip\MyStretch
% \begin{tabular}{ll}\toprule
-% |\ForgetThis\Dem| & \ForgetThis\Dem\\
-% \rowcolor{black!7!white}|\LDem| & \LDem\\
-% |\Dem| & \Dem\\\bottomrule
-% \end{tabular}
+% \cmd{\ForgetThis}\cmd{\Dem} & \ForgetThis\Dem\\
+% \rowcolor{grey}^^A
+% \cmd{\LDem} & \LDem\\
+% \cmd{\Dem} & \Dem\\\bottomrule
+% \end{tabular}\smallskip
+%
+% The index entry is the same as above.
% \end{quote}
-%
-% The Roman naming\Info{Roman names} system does present some challenges. As long as we do not use \cmd{\CapThis}, we do not need alternate formatting (Section~\ref{sec:AltFormat}). Earlier we treated \LCicero[Marcus Tullius] as a Western name. Now we show how to handle Roman names more properly.
-%
-% Roman names have a \textit{praenomen}, a personal name, then a \textit{nomen}, a clan name, followed by a \textit{cognomen}, a ``nickname,'' except it could be inherited from one's father to denote clan branches. Added to that are \textit{agnomina}, affixed names.
-%
-% Popular\Info{popular works} sources tend to treat the \textit{cognomen} as we might a surname, with the indexed form: \ShowIdxPageref*[\meta{praenomen} \meta{nomen}]{\meta{cognomen} \meta{agnomen}}.\footnote{See Geiss, \textit{Geschichte Griffbereit}; Kinder and Hilgemann, \textit{dtv-Atlas zur Weltgeschichte}, 2 vols., 29th printing (1964; Munich: Deutscher Taschenbuch Verlag, 1993). For further resources see: \url{http://books.infotoday.com/books/Indexing-names.shtml}. See also \url{https://en.wikipedia.org/wiki/Roman_naming_conventions}.}
-% We want all names in the index, so we define macros in \meta{FNN} and \meta{SNN} that expand to become one or two components: \textit{praenomen} and \textit{nomen}; \textit{cognomen} and \textit{agnomen}. We begin by defining a name with macros using \cmd{\noexpand} to prevent error:
+% \endgroup^^A Local format hook redefinition
+%
+% \newpage
+%
+% \leavevmode\begin{center}\bfseries Roman Names\end{center}
+% \phantomsection
+% \label{page:Romani}
+% Earlier we treated \Name*[M.T.]{Cicero}[Marcus Tullius] as a Western name. Now we handle Roman names properly. The examples below do not use this manual's standard formatting.
+% Roman names have the following format:
+% \begin{itemize}
+% \item A personal name: \textit{praenomen}
+% \item A clan name: \textit{nomen}
+% \item A nickname, often hereditary to denote clan branches: \textit{cognomen}
+% \item Affixed names: \textit{agnomina}
+% \end{itemize}
+%
+% Popular\Info{Popular works} sources tend to treat the \textit{cognomen} as if it were a Western surname.\footnote{See Geiss, \textit{Geschichte Griffbereit}; Kinder and Hilgemann, \textit{dtv-Atlas zur Weltgeschichte}, 2 vols., 29th printing (1964; Munich: Deutscher Taschenbuch Verlag, 1993). See also \href{http://books.infotoday.com/books/Indexing-names.shtml}{this page} on indexing and \href{https://en.wikipedia.org/wiki/Roman_naming_conventions}{Wikipedia} on Roman names.}
+% Using this approach, Roman names have the indexed form:
+% \begin{quote}
+% \ShowIdxPageref*[\meta{praenomen} \meta{nomen}]{\meta{cognomen} \meta{agnomen}}
+% \end{quote}
+%
+% Using \textsf{nameauth}, one can drop both \textit{praenomen} and \textit{nomen} automatically in subsequent uses in the text. We accomplish this by designing names using macros in their arguments. When doing so, here are a few tips:
+%
+% \begin{itemize}
+% \item Use alternate formatting (Sections~\ref{sec:AltFormat}) if the macros in the name arguments will be ``segmented'' in some way, as \cmd{\CapThis} does by separating the first letter from the rest.
+% \item Use \cmd{\noexpand} before the macros in the name arguments if they contain conditional statements. Otherwise one will get spurious index entries.
+% \item Ensure that the default state of any Boolean flags (\texttt{\textbackslash if}\meta{flag}) trigger expansion so that all the desired names appear in the index entry.
+% \end{itemize}
+% We define all macros and conditionals used in naming macro arguments in the preamble. We use \cmd{\noexpand} in the naming macro arguments to prevent error. Since we do not use \cmd{\CapThis} in the examples below, we skip alternate formatting for simplicity, yet we still recommend it.
+%
+%Since we have four name components, we need two Boolean flags to reflect local changes and two global flags to trigger the local changes without affecting the index. We define macros in \meta{FNN} and \meta{SNN} that expand one or two components: \textit{praenomen} and \textit{nomen}, \textit{cognomen} and \textit{agnomen}.
+%
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
%\newif\ifSkipGens
%\newif\ifNoGens
%\newif\ifSkipAgnomen
%\newif\ifNoAgnomen
-%\newcommand*\SCIPi{\ifNoGens Publius\else
-% Publius Cornelius\fi}
-%\newcommand*\SCIPii{\ifNoAgnomen Scipio\else
-% Scipio Africanus\fi}
+%\newcommand*\SCIPi{\ifNoGens
+% Publius\else Publius Cornelius\fi}
+%\newcommand*\SCIPii{\ifNoAgnomen
+% Scipio\else Scipio Africanus\fi}
%\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
-%\renewcommand*\NamesFormat[1]%^^A
-% {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%^^A
-% \global\SkipGensfalse\global\SkipAgnomenfalse}
-%\renewcommand*\MainNameHook[1]%^^A
-% {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%^^A
-% \global\SkipGensfalse\global\SkipAgnomenfalse}
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
%\begin{nameauth}
% \< Scipio & \noexpand\SCIPi & \noexpand\SCIPii & >
%\end{nameauth}
%\PretagName[\noexpand\SCIPi]{\noexpand\SCIPii}{Scipio Africanus}\end{verbatim}
% \end{quote}
%
-% We define the flags and macros by which the name will change. The global state of \cmd{\NoGens} and\cmd{\NoAgnomen} determine the index form. The local scope in the formatting hooks allows changes that are reset when exiting that scope. The logic is inverted; false prints long, true prints short:
+% We begin a new scope below, redefining the formatting hooks (Section~\ref{sec:Formatting}), which affect only names printed in the text. If the local Boolean flags are false, one gets longer name forms. If the flags are true, one gets shorter forms. This approach allows the global state of the flags to be false by default, meaning that one need not remember to set any of them true in the preamble. That results in one less thing to remember, and one less problem to fix.
+%\begingroup^^A Local format hook redefinition
+%\renewcommand*\NamesFormat[1]^^A
+% {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1^^A
+% \global\SkipGensfalse\global\SkipAgnomenfalse}
+%\renewcommand*\MainNameHook[1]^^A
+% {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1^^A
+% \global\SkipGensfalse\global\SkipAgnomenfalse}
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
-%\newif\ifSkipGens
-%\newif\ifNoGens
-%\newif\ifSkipAgnomen
-%\newif\ifNoAgnomen
-%\newcommand*\SCIPi{\ifNoGens Publius\else
-% Publius Cornelius\fi}
-%\newcommand*\SCIPii{\ifNoAgnomen Scipio\else
-% Scipio Africanus\fi}
-%\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
-%\renewcommand*\NamesFormat[1]%^^A
+%\renewcommand*\NamesFormat[1]
% {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
% \global\SkipGensfalse\global\SkipAgnomenfalse}
-%\renewcommand*\MainNameHook[1]%^^A
+%\renewcommand*\MainNameHook[1]
% {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
% \global\SkipGensfalse\global\SkipAgnomenfalse}\end{verbatim}
-%\smallskip
-% \ForgetThis\ScipioOnly\ \cmd{\ScipioOnly} was born around 236 \textsc{bc} into the Scipio branch of the Cornelius clan, one of six large patrician clans. \ScipioOnly\ \cmd{\ScipioOnly} rose to military fame during the Second Punic War. Thereafter he was known as \Scipio\ \cmd{\Scipio}.
% \end{quote}
-%
-% An advantage of the popular format is that one can drop both \textit{praenomen} and \textit{nomen} automatically in subsequent uses. Yet in any case, one can define helper macros to change Boolean flags. The raw index entry is fairly lengthy by necessity, governed by the global state of the Boolean flags, and expanding to:
+%
+% The index always shows the name determined by the global state of \cmd{\NoGens} and \cmd{\NoAgnomen}, which we set up as false, meaning a maximally long name form. In the body text we have:
% \begin{quote}\small
-% \ShowIdxPageref[\noexpand\SCIPi]{\noexpand\SCIPii}
+% \ForgetThis\ScipioOnly\ \cmd{\ScipioOnly} was born around 236 \textsc{bc} into the Scipio branch of the Cornelius clan, one of six large patrician clans. \ScipioOnly\ \cmd{\ScipioOnly} rose to military fame during the Second Punic War. Thereafter he was known as \Scipio\ \cmd{\Scipio}.
% \end{quote}
-%
-% The\Info{scholarly works} \textit{Oxford Classical Dictionary} and other scholarly sources index under the \textit{nomen}. That requires a similar approach, but it moves the \textit{nomen} from \meta{FNN} to \meta{SNN}. Although we will not index the name, we will show how to set up \SkipGenstrue\Scipio\ to work in that alternate configuration.
-% \newpage
-%
-% We keep the Boolean flags and formatting hooks from above. We redefine the name in the following manner:
+%
+% Below we show more information about popular name forms by way of comparison with scholarly name forms.\medskip
+%
+% The\Info{Scholarly works} \textit{Oxford Classical Dictionary} and other scholarly sources index according to the \textit{nomen}. That approach moves the \textit{nomen} from \meta{FNN} to \meta{SNN}. They have the the indexed form:
+% \begin{quote}
+% \ShowIdxPageref*[\meta{praenomen}]{\meta{nomen} \meta{cognomen} \meta{agnomen}}
+% \end{quote}
+%
+% The two methods do not clash \textit{per se} in the text, but they make incompatible index entries. In this case, since we have indexed \ScipioOnly\ under the popular form above, we use \cmd{\ExcludeName} to exclude the scholarly form below.
+%
+% In the document preamble we define the following Boolean flags and macros. We use a nested conditional in \meta{SNN}. The default still is to show all names so that they can be indexed that way:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
+%\newif\ifSkipGens % These flags remain the same as above.
+%\newif\ifNoGens
+%\newif\ifSkipAgnomen
+%\newif\ifNoAgnomen
+%\global\def\CSA{\ifNoGens\ifNoAgnomen
+% Scipio\else
+% Scipio Africanus\fi
+% \else\ifNoAgnomen
+% Cornelius Scipio\else
+% Cornelius Scipio Africanus\fi\fi}
+%\ExcludeName[Publius]{\noexpand\CSA}
%\begin{nameauth}
-% \< OScipio & Publius & \noexpand\CSA & >
+% \< OScipio & Publius & \noexpand\CSA & > % O for Oxford
%\end{nameauth}
%\PretagName[Publius]{\noexpand\CSA}{Cornelius Scipio Africanus}\end{verbatim}
% \end{quote}
-%
-%\newcommand*\CSA{\ifNoGens
-% \ifNoAgnomen
-% Scipio\else
-% Scipio Africanus\fi
-% \else\ifNoAgnomen
-% Cornelius Scipio\else
-% Cornelius Scipio Africanus\fi\fi}
-% \ExcludeName[Publius]{\noexpand\CSA}
-% We use a nested conditional in \meta{SNN}. The default still is to show all names so that they can be indexed that way. This time we decided to index under the popular form instead of the scholarly one, so we exclude the scholarly form:
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\newcommand*\CSA{\ifNoGens
-% \ifNoAgnomen
-% Scipio\else
-% Scipio Africanus\fi
-% \else\ifNoAgnomen
-% Cornelius Scipio\else
-% Cornelius Scipio Africanus\fi\fi}
-%\ExcludeName[Publius]{\noexpand\CSA}\end{verbatim}
-% \end{quote}
-%
-% The scholarly form has a different name pattern, so it is not compatible with the popular version. Nevertheless, we show what the raw index entry of the scholarly form would be. We include some of the more meaningful forms of both versions:
-% \begin{quote}\small
-% \cmd{\ShowPattern[Publius]\{}\cmd{\noexpand}\cmd{\CSA\}}:\\
-% \hbox{}\quad \ShowPattern[Publius]{\noexpand\CSA}
-%
-% \cmd{\ShowIdxPageref[Publius]\{}\cmd{\noexpand}\cmd{\CSA\}}:\\
-% \hbox{}\quad \ShowIdxPageref[Publius]{\noexpand\CSA}
-%
-% \textbf{First use:}\\[0.5ex]
-% \cmd{\OScipio}:\quad \OScipio\\
-% \cmd{\Scipio\ }:\quad \ForgetThis\Scipio
-%
-% \textbf{Subsequent use:}\\[0.5ex]
-% \hphantom{\cmd{\SkipGenstrue}}\cmd{\OScipio}:\quad \OScipio\\
-% \cmd{\SkipGenstrue}\cmd{\OScipio}:\quad \SkipGenstrue\OScipio\\
-% \hphantom{\cmd{\SkipGenstrue}}\cmd{\Scipio\ }:\quad \SkipGenstrue\Scipio
-%
-% \textbf{Subsequent use, full, no \textit{agnomen}:}\\[0.5ex]
-% \cmd{\SkipAgnomentrue}\cmd{\LOScipio}:\quad \SkipAgnomentrue\LOScipio\\
-% \cmd{\SkipAgnomentrue}\cmd{\LScipio\ }:\quad \SkipAgnomentrue\LScipio
-%
-% \textbf{Subsequent use, shortest forms:}\\[0.5ex]
-% \hphantom{\cmd{\SkipGenstrue}}\cmd{\SkipAgnomentrue}\cmd{\OScipio}:\quad \SkipAgnomentrue\OScipio\\
-% \cmd{\SkipGenstrue}\cmd{\SkipAgnomentrue}\cmd{\OScipio}:\quad \SkipGenstrue\SkipAgnomentrue\OScipio\\
-% \hphantom{\cmd{\SkipGenstrue}}\cmd{\SkipAgnomentrue}\cmd{\Scipio\ }:\quad \SkipAgnomentrue\Scipio
-%
-% \textbf{Subsequent use, personal name:}\\[0.5ex]
-% \hphantom{\cmd{\SkipGenstrue}}\cmd{\SOScipio}:\quad \SOScipio\\
-% \cmd{\SkipGenstrue}\cmd{\SScipio\ }:\quad \SkipGenstrue\SScipio
-% \end{quote}
-%
-% See Sections~\ref{sec:ErrorProt}, \ref{sec:AltFormat}, and \ref{sec:Hooks} for more guidance on avoiding errors when using name arguments that contain macros.
-% \endgroup
-%
-% \ReturnLink
-% \newpage
%
-% \subsection{Basic Formatting}
-% \label{sec:Formatting}
+% We keep the same formatting macros that we defined above. By the way, these formatting macros could work with regular names as well as Roman names, e.g., \LDem, because they have no side effects.
%
-% Below are many of the forms and formats that names can have:
-%
-% \ifDoTikZ
-% \begin{tcolorbox}[colframe=naslate,sidebyside,lower separated=true,adjusted title={\hfil Full Forms, Front Matter\hspace{5em} Short Forms, Front matter}]\centering
-% {\cmd{\NamesInactive}}\NamesInactive
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil First Use (Default)}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name} & \ForgetThis\Pat\\
-% & \ForgetThis\Eliz\\
-% & \ForgetThis\Yamt\\
-% \cmd{\Name*} & \ForgetThis\LPat\\
-% \cmd{\FName} & \ForgetThis\SPat\\
-% \end{tabular}
-% \end{tcolorbox}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\texttt{*} or \cmd{\L}\meta{macro})}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name*} & \LPat\\
-% & \LEliz\\
-% & \LYamt\\
-% \end{tabular}
-% \end{tcolorbox}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Long, with \cmd{\DropAffix}}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\DropAffix}\cmd{\LPat}\\ \SubvertThis\DropAffix\LPat\\
-% \end{tabular}
-% \end{tcolorbox}
-% \tcblower\centering
-% {\cmd{\NamesInactive}}\NamesInactive
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (Default)}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name} & \SubvertThis\Pat; \SubvertThis\Eliz\\
-% & \SubvertThis\Yamt\\
-% \cmd{\FName}, & \SubvertThis\SPat; \SubvertThis\SEliz\\
-% \cmd{\S}\meta{macro} & \SubvertThis\SYamt\\
-% \end{tabular}
-% \end{tcolorbox}\vspace{1.4ex}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceName})}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name} & \SubvertThis\ForceName\Pat; \SubvertThis\ForceName\Eliz\\
-% & \SubvertThis\ForceName\Yamt\\
-% \cmd{\FName}, & \SubvertThis\ForceName\SPat; \SubvertThis\ForceName\SEliz\\
-% \cmd{\S}\meta{macro} & \SubvertThis\ForceName\SYamt\\
-% \end{tabular}
-% \end{tcolorbox}\vspace{1.4ex}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceFN})}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\FName}, \cmd{\S}\meta{macro} & \SubvertThis\ForceFN\SYamt\\
-% \end{tabular}
-% \end{tcolorbox}
-% \end{tcolorbox}
-% \vfil
-% \begin{tcolorbox}[colframe=naslate,sidebyside,lower separated=true,adjusted title={\hfil Full Forms, Main Matter\hspace{5em} Short Forms, Main Matter}]\centering
-% {\cmd{\NamesActive}}\NamesActive
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil First Use (Default)}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name} & \ForgetThis\Pat\\
-% & \ForgetThis\Eliz\\
-% & \ForgetThis\Yamt\\
-% \cmd{\Name*} & \ForgetThis\LPat\\
-% \cmd{\FName} & \ForgetThis\SPat\\
-% \end{tabular}
-% \end{tcolorbox}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\texttt{*} or \cmd{\L}\meta{macro})}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name*} & \LPat\\
-% & \LEliz\\
-% & \LYamt\\
-% \end{tabular}
-% \end{tcolorbox}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Long, with \cmd{\DropAffix}}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\DropAffix}\cmd{\LPat}\\ \SubvertThis\DropAffix\LPat\\
-% \end{tabular}
-% \end{tcolorbox}
-% \tcblower\centering
-% {\cmd{\NamesActive}}\NamesActive
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (Default)}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name} & \SubvertThis\Pat; \SubvertThis\Eliz\\
-% & \SubvertThis\Yamt\\
-% \cmd{\FName}, & \SubvertThis\SPat; \SubvertThis\SEliz\\
-% \cmd{\S}\meta{macro} & \SubvertThis\SYamt\\
-% \end{tabular}
-% \end{tcolorbox}\vspace{1.4ex}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceName})}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\Name} & \SubvertThis\ForceName\Pat; \SubvertThis\ForceName\Eliz\\
-% & \SubvertThis\ForceName\Yamt\\
-% \cmd{\FName}, & \SubvertThis\ForceName\SPat; \SubvertThis\ForceName\SEliz\\
-% \cmd{\S}\meta{macro} & \SubvertThis\ForceName\SYamt\\
-% \end{tabular}
-% \end{tcolorbox}\vspace{1.4ex}
-% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceFN})}]\small
-% \begin{tabular}{@{}ll@{}}
-% \cmd{\FName}, \cmd{\S}\meta{macro} & \SubvertThis\ForceFN\SYamt\\
-% \end{tabular}
-% \end{tcolorbox}
-% \end{tcolorbox}
-% \else\bigskip
-% \begin{center}\small\NamesInactive
-% \begin{tabular}{@{\hspace{4em}}c@{\hspace{6em}}c}
-% Full Forms, Front Matter & Short Forms, Front Matter\\
-% \cmd{\NamesInactive} & \cmd{\NamesInactive}\medskip\\
-% \end{tabular}
-%
-% \begin{tabular}{llll}\toprule
-% \cmd{\Name} & \ForgetThis\Pat & \cmd{\Name} & \SubvertThis\Pat, \SubvertThis\Eliz\\
-% & \ForgetThis\Eliz & & \SubvertThis\Yamt\\
-% & \ForgetThis\Yamt & \cmd{\FName}, & \SubvertThis\SPat; \SubvertThis\SEliz\\
-% \cmd{\Name*} & \ForgetThis\LPat & \cmd{\S}\meta{macro} & \SubvertThis\SYamt\\
-% \cmd{\FName} & \ForgetThis\SPat & \\\midrule
-% & & Using \cmd{\ForceName} \\
-% \cmd{\Name*}, & \LPat & \cmd{\Name} & \SubvertThis\ForceName\Pat; \SubvertThis\ForceName\Eliz\\
-% \cmd{\L}\meta{macro} & \LEliz & & \SubvertThis\ForceName\Yamt\\
-% & \LYamt & \cmd{\FName}, & \SubvertThis\ForceName\SPat; \SubvertThis\ForceName\SEliz\\
-% & & \cmd{\S}\meta{macro} & \SubvertThis\ForceName\SYamt\\\midrule
-% & & Using \cmd{\ForceFN} \\
-% \cmd{\DropAffix}\cmd{\LPat} & \SubvertThis\DropAffix\LPat & \cmd{\FName}, \cmd{\S}\meta{macro} & \SubvertThis\ForceFN\SYamt\\\bottomrule% \end{tabular}
-% \end{center}\bigskip
-% \begin{center}\small\NamesActive
-% \begin{tabular}{@{\hspace{4em}}c@{\hspace{6em}}c}
-% Full Forms, Main Matter & Short Forms, Main Matter\\
-% \cmd{\NamesActive} & \cmd{\NamesActive}\medskip\\
-% \end{tabular}
-%
-% \begin{tabular}{llll}\toprule
-% \cmd{\Name} & \ForgetThis\Pat & \cmd{\Name} & \SubvertThis\Pat; \SubvertThis\Eliz\\
-% & \ForgetThis\Eliz & & \SubvertThis\Yamt\\
-% & \ForgetThis\Yamt & \cmd{\FName}, & \SubvertThis\SPat; \SubvertThis\SEliz\\
-% \cmd{\Name*} & \ForgetThis\LPat & \cmd{\S}\meta{macro} & \SubvertThis\SYamt\\
-% \cmd{\FName} & \ForgetThis\SPat & \\\midrule
-% & & Using \cmd{\ForceName} \\
-% \cmd{\Name*}, & \LPat & \cmd{\Name} & \SubvertThis\ForceName\Pat; \SubvertThis\ForceName\Eliz\\
-% \cmd{\L}\meta{macro} & \LEliz & & \SubvertThis\ForceName\Yamt\\
-% & \LYamt & \cmd{\FName}, & \SubvertThis\ForceName\SPat; \SubvertThis\ForceName\SEliz\\
-% & & \cmd{\S}\meta{macro} & \SubvertThis\ForceName\SYamt\\\midrule
-% & & Using \cmd{\ForceFN} \\
-% \cmd{\DropAffix}\cmd{\LPat} & \SubvertThis\DropAffix\LPat & \cmd{\FName}, \cmd{\S}\meta{macro} & \SubvertThis\ForceFN\SYamt\\\bottomrule
+% The scholarly form of Roman names has a different name pattern, so it is not compatible with the popular version. Nevertheless, we show what the index entries would be in a normal \LaTeX\ document without hyperlinks. Since we have excluded the scholarly form in order to suppress any spurious index entries, we only index the popular form below:
+%
+% \begin{center}\footnotesize\IndexActual{@}
+% \begin{tabular}{ll}
+% \multicolumn{2}{l}{\small\textbf{Simplified Name Patterns:}}\\
+% Scholarly: & \texttt{\ShowPattern[Publius]{\noexpand\CSA}}\\
+% Popular: & \texttt{\ShowPattern[\noexpand\SCIPi]{\noexpand\SCIPii}}\\[2ex]
+%
+% \multicolumn{2}{l}{\small\textbf{Full Index Entries:}}\\
+% \UntagName[Publius]{\noexpand\CSA}^^A
+% \UntagName[\noexpand\SCIPi]{\noexpand\SCIPii}^^A
+% Scholarly: & \texttt{\ShowIdxPageref[Publius]{\noexpand\CSA}}\\
+% Popular: & \texttt{\ShowIdxPageref[\noexpand\SCIPi]{\noexpand\SCIPii}}^^A
+% \TagName[Publius]{\noexpand\CSA}{\string|hyperpage}^^A
+% \TagName[\noexpand\SCIPi]{\noexpand\SCIPii}{\string|hyperpage}\\[2ex]
+%
+% \multicolumn{2}{l}{\small\textbf{Basic Index Entries:}}\\
+% \UntagName[Publius]{\noexpand\CSA}^^A
+% Scholarly: & \ShowIdxPageref*[Publius]{\noexpand\CSA}\\
+% Popular: & \ShowIdxPageref*[\noexpand\SCIPi]{\noexpand\SCIPii}^^A
+% \TagName[Publius]{\noexpand\CSA}{\string|hyperpage}\\
% \end{tabular}
% \end{center}
-% \fi
-% \newpage
-%
-% These formatting features of \textsf{nameauth} can work with name control macros (Section~\ref{sec:NameControl}) in, for example, \textsf{beamer} overlays to define consistently the context and outcome of how names appear. There are two kinds of formatting at work that interact with each other:
-% \begin{enumerate}\small
-% \item \emph{Syntactic Formatting:} Reversing and caps normally occur only in the body text, not the index. Yet macros in name arguments affect both text and index.
-% \item \emph{Name Post-Processing:} Hook macros apply formatting only to the printed form of a name after parsing. See also Section~\ref{sec:Hooksiii}.
-% \end{enumerate}
-%
-% \DescribeMacro{\NamesFormat}
-% Independent ``main-matter'' and ``front-matter'' systems are used to format first and subsequent name uses.
-% \DescribeMacro{\MainNameHook}
-% The main-matter system uses \cmd{\NamesFormat} to post-process first occurrences of names and \cmd{\MainNameHook} for subsequent uses.
-% \DescribeMacro{\FrontNamesFormat}
-% The front-matter system uses \cmd{\FrontNamesFormat} for first uses and
-% \DescribeMacro{\FrontNameHook}
-% \cmd{\FrontNameHook} for subsequent uses. The \texttt{alwaysformat} option\Version{2.5} causes only \cmd{\NamesFormat} and \cmd{\FrontNamesFormat} to be used (cf. Section~\ref{sec:NamePatterns}).\footnote{The names of these macros may seem poorly conceived. When starting work on this package, this author was ignorant of the breadth of how names might be handled. Designed to meet the needs of a master's thesis, this package has evolved to meet the needs of several published works. At one time, \cmd{\NamesFormat} was the only macro that did any formatting. The rest came later. A certain degree of cargo cult programming arose, to be corrected in the 3.0 series of \textsf{nameauth}.}\medskip
-%
-% \DescribeMacro{\NamesActive}
-% \cmd{\NamesInactive} and the \texttt{frontmatter} option make names use the front matter system. \cmd{\NamesActive} switches names to the main matter system.
-% \DescribeMacro{\NamesInactive}\medskip
-%
-% These\Info{\cmd{\global}} two macros can be used explicitly as a pair or singly within an explicit local scope. Use \cmd{\global} to force a global effect.\medskip
-%
-% The two formatting systems are distinct, useful for front matter and main matter, text and footnotes, etc. We show this with different colors:
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\colorlet{nared}{red!50!black}
-%\colorlet{nagreen}{green!35!black}
-%\colorlet{nablue}{blue!50!black}
-%\colorlet{nabrown}{brown!55!black}
-%\renewcommand*\FrontNamesFormat[1]{\color{nared}\sffamily #1}
-%\renewcommand*\FrontNameHook[1]{\color{nagreen}\sffamily #1}
-%\renewcommand*\NamesFormat[1]{\color{nablue}\sffamily #1}
-%\renewcommand*\MainNameHook[1]{\color{nabrown}\sffamily #1}\end{verbatim}
-% \end{quote}
%
-% \begin{center}\small\MyStretch
-% \NamesInactive
-% \begin{tabular}{ll}\toprule
-% Front-matter system: & \cmd{\NamesInactive}\\\midrule
-% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% \rowcolor{black!7!white}|\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
-% \rowcolor{black!7!white}|\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\\bottomrule
-% \end{tabular}\vfil
+% Below we compare some differences between the scholarly and popular forms, and how to get equivalent forms in the text while understanding that they would be two separate forms in the index.
%
-% \NamesActive
-% \begin{tabular}{ll}\toprule
-% Main-matter system: & \cmd{\NamesActive}\\\midrule
-% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% \rowcolor{black!7!white}|\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
-% \rowcolor{black!7!white}|\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\\bottomrule
+% \begin{center}\footnotesize
+% \begin{tabular}{p{0.51\textwidth}l}
+% \multicolumn{2}{l}{\small\textbf{First use:}}\\
+% scholarly:\dotfill \cmd{\OScipio} & \OScipio\\
+% popular:\dotfill \cmd{\Scipio} & \ForgetThis\Scipio\\[2ex]
+%
+% \multicolumn{2}{l}{\small\textbf{Subsequent use:}}\\
+% scholarly:\dotfill \cmd{\OScipio} & \OScipio\\
+% scholarly:\dotfill \cmd{\SkipGenstrue}\cmd{\OScipio} & \SkipGenstrue\OScipio\\
+% popular:\dotfill \cmd{\Scipio} & \SkipGenstrue\Scipio\\[2ex]
+%
+% \multicolumn{2}{l}{\small\textbf{Subsequent use, full, no \textit{agnomen}:}}\\
+% scholarly:\dotfill \cmd{\SkipAgnomentrue}\cmd{\LOScipio} & \SkipAgnomentrue\LOScipio\\
+% popular:\dotfill \cmd{\SkipAgnomentrue}\cmd{\LScipio} & \SkipAgnomentrue\LScipio\\[2ex]
+%
+% \multicolumn{2}{l}{\small\textbf{Subsequent use, shortest forms:}}\\
+% scholarly:\dotfill \cmd{\SkipAgnomentrue}\cmd{\OScipio} & \SkipAgnomentrue\OScipio\\
+% \hfill\cmd{\SkipGenstrue}\cmd{\SkipAgnomentrue}\cmd{\OScipio} & \SkipGenstrue\SkipAgnomentrue\OScipio\\
+% popular:\dotfill \cmd{\SkipAgnomentrue}\cmd{\Scipio\ } & \SkipAgnomentrue\Scipio\\[2ex]
+%
+% \multicolumn{2}{l}{\small\textbf{Subsequent use, personal name:}}\\
+% scholarly:\dotfill \cmd{\SOScipio} & \SOScipio\\
+% popular:\dotfill \cmd{\SScipio} & \SScipio\\
+% popular:\dotfill \cmd{\SkipGenstrue}\cmd{\SScipio} & \SkipGenstrue\SScipio
% \end{tabular}
% \end{center}
-% \newpage
-%
-% \DescribeMacro{\ForceName}
-% Use this prefix macro to force ``first use'' formatting for the next \cmd{\Name}, etc. This will not force a full name reference like \cmd{\ForgetThis}.\Version{3.1} One must use the \texttt{formatAKA} option when using this with \cmd{\AKA}, etc. We show \cmd{\ForceName} in Sections~\ref{sec:NameControl}, \ref{sec:AKA}, and~\ref{sec:Hooksii}.\medskip
+% \endgroup^^A Local format hook redefinition
%
-% Below\Info{\texttt{alwaysformat}} we simulate the \texttt{alwaysformat} option by manipulating the package internals. Using first-use hooks will not force full name references. This option made more sense when \cmd{\NamesFormat} was the only formatting hook.
-% \makeatletter\@nameauth@AlwaysFormattrue\makeatother%
-% \ForgetName[M.T.]{Cicero}\ForgetName{Elizabeth, I}%
-% \begin{itemize}
-% \item \NamesInactive Using \texttt{alwaysformat} in the front matter will produce: \Name[Albert]{Einstein}, then \Name[Albert]{Einstein}; \Name{Confucius}, then \Name{Confucius}.
-% \item \global\NamesActive Using \texttt{alwaysformat} in the main matter will produce: \Name[M.T.]{Cicero}[Marcus Tullius], then \Name[M.T.]{Cicero}[Marcus Tullius]; \Name{Elizabeth, I}, then \Name{Elizabeth, I}.
-% \end{itemize}
-% \makeatletter\@nameauth@AlwaysFormatfalse\makeatother
-%
-% The internal\Info{hook caveats} hook dispatcher calls the formatting hooks using the pattern \cmd{\bgroup}\meta{Hook}\texttt{\{\#1\}}\cmd{\egroup}. Thus one can use, e.g., \cmd{\itshape} in a local scope. One also can use macros that take one argument (cf. Section~\ref{sec:Hooksiii}), e.g., |\renewcommand*\NamesFormat{\sffamily\color{nablue}\textit}| will create\break the forms \bgroup\renewcommand*\NamesFormat{\sffamily\color{nablue}\textit}\ForgetThis\Einstein\ and \Einstein.\egroup\medskip
-%
-% The\Info{applied to\break footnotes} independent systems or ``species'' of names fit independent text elements, like front matter or even footnotes. Names in the body text, such as \Name[John Maynard]{Keynes}, also affect names in the footnotes.\footnote{We have \Name[John Maynard]{Keynes} from \cmd{\Name}\texttt{[John Maynard]\{Keynes\}} instead of \ForgetThis\Name[John Maynard]{Keynes}.}
-% In footnote \arabic{footnote} \cmd{\MainNameHook} is called instead of \cmd{\NamesFormat} because \Name[John Maynard]{Keynes} already had occurred above.
-%
-% If we wanted to format names differently in the footnotes than in the body text, an easy way to do that is to use the front-matter system. For example:
-%
-% \makeatletter
-% \let\@oldfntext\@makefntext
-% \long\def\@makefntext#1{\NamesInactive\@oldfntext{#1}\NamesActive}
-% \makeatother
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\makeatletter
-% \let\@oldfntext\@makefntext
-% \long\def\@makefntext#1{\NamesInactive\@oldfntext{#1}\NamesActive}
-%\makeatother\end{verbatim}
-% \end{quote}
-%
-% When we create another footnote, we see very different results.\footnote{We have \Name[John Maynard]{Keynes} from \cmd{\Name}\texttt{[John Maynard]\{Keynes\}}, then \Name[John Maynard]{Keynes}.}
-% Footnote \arabic{footnote} shows a completely independent formatting. One also can synchronize the two systems with \cmd{\ForgetThis} and \cmd{\SubvertThis} (Section~\ref{sec:NameDecisions} and its subsections).
-%
-% To finish this example, we change footnotes back to normal:
-% \begin{quote}\small
-% \ContinueNum
-% \begin{verbatim}
-%\makeatletter
-%\let\@makefntext\@oldfntext
-%\makeatother\end{verbatim}
-% \end{quote}
-% \makeatletter\let\@makefntext\@oldfntext\makeatother
-%
-% Of cource, one can force long and short forms as needed (Section~\ref{sec:NameControl}). Yet the main point of \textsf{nameauth} is to do the complex work once, then use that in automated fashion for the rest of the document.
-%
% \ReturnLink
-% \newpage
-%
-% \subsection{Alternate Formatting}
-% \label{sec:AltFormat}
-% \begingroup\AltFormatActive
-%
-% \noindent The formatting hooks only affect names in the body text. Continental formatting occurs in both the text and in the index. One needs to format those names with macros in the name arguments. The basic way formats names in both text and index. The advanced way allows changes in the text, but keeps the index consistent.
-%
-% \subsubsection{Basic Features}
-% \label{sec:AltBasic}
-%
-%Section~\ref{sec:ErrorProt} showed us that changing a control sequence will change the index entry of a name, even if one cannot see differences on the page. Alternate formatting helps one avert spurious index entries.
-%
-% Using,\Warn{} e.g., \cmd{\Name\{}\cmd{\textsc\{a Name, Problem\}\}} will halt \LaTeX\ because the comma tries to break \cmd{\textsc} and its argument into two elements. We fix that with: \cmd{\Name\{}\cmd{\textsc\{a Name\},} \cmd{\textsc\{Problem\}\}}. Yet \cmd{\CapThis} still needs alternate formatting, given that \cmd{\textsc} is robust (Section~\ref{sec:AltAdvanced}).\footnote{Pre-version 3.1 methods of Continental formatting should work if one uses the \texttt{altformat} option or \cmd{\AltFormatActive} to protect against the default behavior of \cmd{\CapThis}.}\medskip
-%
-% \DescribeMacro{\AltFormatActive}
-% Both the \texttt{altformat} option and \cmd{\AltFormatActive} enable and activate alternate formatting. Both cause \cmd{\CapThis} to work via \cmd{\AltCaps} instead of the normal way. \cmd{\AltFormatActive} countermands \cmd{\AltFormatActive*}.
-% \begin{itemize}
-% \item \emph{Enabled} means that the alternate formatting mechanism inhibits the normal behavior of \cmd{\CapThis}.
-% \item \emph{Activated} means that \cmd{\textSC} and other alternate formatting macros (see below) format their arguments. When deactivated, they do not format their arguments.
-% \end{itemize}
-%
-% At\Version{3.1} the start of this section we used \cmd{\AltFormatActive} to enable alternate formatting and ``switch on'' the alternate formatting macros. That is the basic set of conditions for the simple use of alternate formatting. \medskip
-%
-% \DescribeMacro{\AltFormatActive*}
-% The starred form \cmd{\AltFormatActive*} enables alternate formatting but deactivates the special formatting macros, preventing them from changing their arguments. It countermands both the \texttt{altformat} option and \cmd{\AltFormatActive}. It causes \cmd{\CapThis} only to work via \cmd{\AltCaps}.\medskip
+% \vfill
%
-% \DescribeMacro{\AltFormatInactive}
-% To both disable alternate formatting and deactivate the alternate formatting macros, use \cmd{\AltFormatInactive}. This reverts globally to standard formatting and the normal function of \cmd{\CapThis}.
-%
-% \begin{center}
-% \begin{tabular}{lcc}
-% & Enabled & Activated\\\midrule
-% \cmd{\AltFormatActive} & \YES & \YES\\
-% \cmd{\AltFormatActive*} & \YES & \NO\\
-% \cmd{\AltFormatInactive} & \NO & \NO\\\bottomrule
-% \end{tabular}
-% \end{center}
-%
-% On the next page we describe the formatting macros that are built in to \textsf{nameauth} in order to use the basic features of alternate formatting and provide a foundation for the advanced features. One should use \cmd{\PretagName} (Section~\ref{sec:IndexSort}) to sort the related index entries for these names.
+% \begin{verse}
+% Oft fühl ich jetzt \dots [und] je tiefer ich einsehe, dass\\
+% Schicksal und Gemüt Namen eines Begriffes sind.\\[1ex]\hfill---\Name{Novalis}, \textit{Heinrich von Ofterdingen}
+% \end{verse}
% \newpage
%
-% \DescribeMacro{\textSC}
-% Continental formatting can be as simple as using the short macro \cmd{\textSC}. Three other macros also implement alternate formatting.
-% \DescribeMacro{\textIT}
-% These macros make changes only when alternate formatting is active.
-% \DescribeMacro{\textBF}
-% We sort the index entry with \cmd{\PretagName} and demonstrate the formatting.
-% \DescribeMacro{\textUC}
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
-%\PretagName[Ada]{\textIT{Lovelace}}{Lovelace, Ada}
-%\PretagName[Charles]{\textBF{Babbage}}{Babbage, Charles}
-%\PretagName{\textUC{Tokugawa}, Ieyasu}{Tokugawa Ieyasu}\end{verbatim}
-%
-% \smallskip\MyStretch
-% |\Name[Greta]{\textSC{Garbo}}|\dotfill \Name[Greta]{\textSC{Garbo}}; \Name[Greta]{\textSC{Garbo}}\\
-% |\Name[Ada]{\textIT{Lovelace}}|\dotfill \Name[Ada]{\textIT{Lovelace}}; \Name[Ada]{\textIT{Lovelace}}\\
-% |\Name[Charles]{\textBF{Babbage}}|\dotfill \Name[Charles]{\textBF{Babbage}}; \Name[Charles]{\textBF{Babbage}}\\
-% |\Name{\textUC{Tokugawa}, Ieyasu}|\dotfill \Name{\textUC{Tokugawa}, Ieyasu}; \Name{\textUC{Tokugawa}, Ieyasu}
-% \end{quote}
-%
-% Since we switch to Latin Modern Sans in the formatting hooks, the switch to small caps in \Name[Greta]{\textSC{Garbo}} forces a substitution to Latin Modern Roman. This action varies with the font being used.
-%
-% Using basic alternate formatting, these macros \emph{always format their arguments} with the \texttt{altformat} option or \cmd{\AltFormatActive}. Likewise, they \emph{never format their arguments} when \cmd{\AltFormatActive*} is used. To change the formatting of the name arguments, one must use the advanced features. Whenever\Warn{} a naming macro writes to the index, the formatting macros must be in the same Boolean state to avoid spurious index entries. The next section explains more.
-%
-% As with normal formatting, \cmd{\CapName} interacts with alternate formatting only in the text. Thus \CapName\Name*[Greta]{\textSC{Garbo}} instead of \Name[Greta]{\textSC{Garbo}}. \cmd{\RevComma} likewise gives \RevComma\Name*[Ada]{\textIT{Lovelace}}. \cmd{\RevName} produces \RevName\Name*{\textUC{Tokugawa}, Ieyasu}.\medskip
+% \subsection{Indexing Macros}
+% \label{sec:Indexing}
%
-% A comma\Info{comma karma} delimiter splits the mandatory macro argument into a root and an affix. To avoid errors, format the name and suffix separately.
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\PretagName[John David]{\textSC{Rockefeller},\textSC{III}}
-% {Rockefeller, John David 3}
-%\PretagName{\textUC{Fukuyama}, Takeshi}{Fukuyama Takeshi}
-%\begin{nameauth}
-% \< JRIII & John David & \textSC{Rockefeller},\textSC{III} & >
-% \< Fukuyama & & \textUC{Fukuyama}, Takeshi & >
-% \< OFukuyama & & \textUC{Fukuyama} & Takeshi >
-%\end{nameauth}\end{verbatim}
-% \end{quote}
+% The strictness\Version{3.5} of the \textsf{nameauth} indexing macros and the detail of index-related warnings, especially with the \texttt{verbose} option, are comparable to professional indexing software. In addition to the macros below, please see also:
%
-% From above we get \JRIII, then \JRIII. For non-Western names, the new syntax and the older syntax produce the same control sequence that identifies names. Again we are careful to avoid putting the comma delimiter within a container macro.
% \begin{center}\small\MyStretch
-% \begin{tabular}{rl}\toprule
-% |\Fukuyama| & \Fukuyama\\
-% \rowcolor{black!7!white}|\OFukuyama| & \OFukuyama\\
-% |\LOFukuyama| & \LOFukuyama\\
-% \rowcolor{black!7!white}|\Fukuyama| & \Fukuyama\\\bottomrule
-% \end{tabular}
+% \begin{tabular}{ll}\toprule
+% error prevention & page~\pageref{page:IdxErrors}\\
+% \rowcolor{grey}index-related prefix macros & page~\pageref{page:IdxPrefix}\\
+% variant names and cross-references & page~\pageref{page:IdxVariants}\\\bottomrule
+% \end{tabular}
% \end{center}
%
-% Only the new syntax allows one to use alternate names in the text (Section~\ref{sec:FName}). For example, ``|\LFukuyama[Sensei]| \LFukuyama[Sensei] wrote \textit{Nihon Fukuin R\=uteru Ky\=okai Shi} in 1954, after studying in the US in the 1930s.''
-% \newpage
-%
-% \subsubsection{Advanced Features}
-% \label{sec:AltAdvanced}
-%
-% \noindent A more complex version of alternate formatting allows us to make formatting and other changes in the text while keeping the index consistent. In order to do this, we will be using \cmd{\textSC}, \cmd{\textIT}, \cmd{\textBF}, and \cmd{\textUC} with \cmd{\noexpand} and special triggering macros. Below we briefly see the difference:
+% Here also are the general protection rules for the indexing macros:
% \begin{center}\small\MyStretch
-% \begin{tabular}{ll}
-% |\Name[Martin]{\textSC{Luther}}| & {\color{nared}|%| \textit{basic alternate formatting}}\\
-% |\Name[Martin]{\noexpand\textSC{Luther}}| & {\color{nared}|%| \textit{advanced version}}\\
+% \begin{tabular}{c@{\ \ }c@{\ \ }p{0.6\textwidth}}\toprule
+% Permit & Ignore & Attempted Action \\\midrule
+% \NO & \YES & Use \cmd{\IndexRef} with an extant name.\\
+% \YES & \NO & Use \cmd{\SeeAlso}\cmd{\IndexRef} with an extant name.\\
+% \NO & \YES & Create page references to a name after \cmd{\IndexRef} created a cross-reference using that name.\\\midrule
+% \NO & \YES & Try to make the same cross-reference multiple times.\\
+% \NO & \YES & Use \cmd{\IndexName} with a cross-reference.\\
+% \NO & \YES & Use \cmd{\ExcludeName} with a cross-reference.\\
+% \NO & \YES & Use \cmd{\IncludeName} with a cross-reference.\\
+% \YES & \NO & Use \cmd{\IncludeName*} with a cross-reference.\\
+% \YES & \NO & Use \cmd{\PretagName} to sort a cross-reference.\\
+% \NO & \YES & Use \cmd{\TagName} and \cmd{\UntagName} with a cross-reference.\\\bottomrule
% \end{tabular}
-% \end{center}
-% The reason for this approach is that indexing operations occur outside the formatting hooks, never within the hooks, and \cmd{\noexpand} keeps the two separate.
-%
-% \ifDoTikZ
+% \end{center}\smallskip
+%
% \begin{tcolorbox}[colback=white,colframe=nared]
-% \centering Using \cmd{\noexpand} is key to consistent index entries.
-% \end{tcolorbox}\bigskip
-% \else
-% \begin{center}\bfseries Using \cmd{\noexpand} is key to consistent index entries.\end{center}
-% \fi
+% \centering We test \cmd{\ExcludeName\{Gregory, I\}}\ExcludeName{Gregory, I} here. See page~\pageref{page:ExPage}.
+% \end{tcolorbox}
%
-% \cmd{\CapThis}\DescribeMacro{\AltCaps}\ causes \cmd{\AltCaps} to cap its argument only in a formatting hook. It is enabled whenever alternate formatting is enabled. \cmd{\AltCaps} works independently of \cmd{\AltOn} and \cmd{\AltOff}:
-% \begin{quote}
-% \fbox{\mystrut\ \cmd{\noexpand}\cmd{\AltCaps}\marg{Arg} }
-% \end{quote}
-% In the example below we redefine \cmd{\MainNameHook} to suppress formatting:
-% \renewcommand*\MainNameHook{\color{nabrown}\sffamily\AltOff}
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\renewcommand*\MainNameHook%
-% {\color{nabrown}\sffamily\AltOff}% we match the manual
+% \subsubsection[General Macros]{General Indexing Macros}
+% \label{sec:GeneralIndex}
+%
+% \begin{center}\bfseries General Control\end{center}
+% \DescribeMacro{\IndexInactive}
+% \cmd{\IndexInactive} deactivates the indexing functions of the naming macros, \cmd{\IndexName}, and \cmd{\IndexRef}.
+% \DescribeMacro{\IndexActive}
+% \cmd{\IndexActive} enables indexing.
+% These can be used throughout the document.
%
-%\IndexInactive
-%What's in a \Name{\noexpand\AltCaps{a} Name}?
-%\CapThis\Name{\noexpand\AltCaps{a} Name} smells not,
-%but a rose does. We avoid \Name{
-% \noexpand\textSC{\noexpand\AltCaps{a} Name},
-% \noexpand\textSC{Problem}}.
-%\CapThis\Name*{
-% \noexpand\textSC{\noexpand\AltCaps{a} Name},
-% \noexpand\textSC{Problem}} will not occur,
-% even if it smells like a rose.\end{verbatim}
-%
-% \smallskip\IndexInactive
-% What's in a \Name{\noexpand\AltCaps{a} Name}?
-% \CapThis\Name{\noexpand\AltCaps{a} Name} smells not,
-% but a rose does. We avoid \Name{
-% \noexpand\textSC{\noexpand\AltCaps{a} Name},
-% \noexpand\textSC{Problem}}.
-% \CapThis\Name*{
-% \noexpand\textSC{\noexpand\AltCaps{a} Name},
-% \noexpand\textSC{Problem}} will not occur,
-% even if it smells like a rose.
-% \end{quote}
-%
-% Like\DescribeMacro{\AltOff}\ a manual automobile clutch and gearbox, \cmd{\AltOff} deactivates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook.\medskip
-%
-% \cmd{\AltOn}\DescribeMacro{\AltOn}\ activates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook. To summarize:
-%
% \begin{itemize}
-% \item \cmd{\AltFormatActive} and \cmd{\AltFormatActive*} set global states.
-% \item \cmd{\AltFormatActive} causes formatting in the text and index, as well as forcing the use of \cmd{\AltCaps}.
-% \item With \cmd{\AltFormatActive*} inhibits formatting, but still requires one to use \cmd{\AltCaps}.
-% \item \cmd{\AltOn} and \cmd{\AltOff} change local state only in the formatting hooks.
-% \item The user adds \cmd{\AltOn} and \cmd{\AltOff} to the hooks as needed.
-% \item The actual formatting happens via macros in the name arguments.
+% \item \cmd{\IndexInactive} broadly suppresses \cmd{\IndexName}, \cmd{\IndexRef}, the page entry indexing components of the naming macros, and the cross-referencing components of \cmd{\AKA} and \cmd{\PName}.
+% \item For a fine degree of control, use \cmd{\ExcludeName} and \cmd{\IncludeName}.
% \end{itemize}
-% \newpage
+%
+% \cmd{\IndexActive}\Info{\cmd{\global}} and \cmd{\IndexInactive} can be used as a pair or singly within a group. They have top priority (page~\pageref{page:Priorities}). Use \cmd{\global} to force a global effect.\medskip
%
-% Keeping the \cmd{\MainNameHook} example above, we have:
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\begin{nameauth}
-% \< Luth & Martin & \noexpand\textSC{Luther} & >
-%\end{nameauth}
-%\PretagName[Martin]{\noexpand\textSC{Luther}}{Luther, Martin}\end{verbatim}
-% \end{quote}
+% \DescribeMacro{\IndexProtect}
+% This macro causes all naming macros to do nothing. \cmd{\IndexProtect} is local in scope, e.g., |{\IndexProtect\Name{Error}}|{\IndexProtect\Name{Error}} is isolated.\Version{3.3}
+% The naming macros and \cmd{\AKA} have locks that prevent them from being used in their own arguments to prevent errors. To prevent unlikely errors in the index, one can use \cmd{\IndexProtect} right before \cmd{\printindex} to eliminate spurious output.\footnote{This manual uses the tag \S\ for \cmd{\Name\{foo}\cmd{\Name\{bar\}\}}, not shown in the example.}
%
-% We first mention \cmd{\Luth} \Luth. Then again, \cmd{\Luth} \Luth. Medieval Italian differs from modern Italian with respect to particles. Below the index entry should be ``\ShowIdxPageref*[Catherine \noexpand\AltCaps{d}e']{\noexpand\textSC{Medici}}\,'' instead of ``\ShowIdxPageref*[Catherine]{de~\textSC{Medici}}'':
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\begin{nameauth}
-% \< Cath & Catherine \noexpand\AltCaps{d}e'
-% & \noexpand\textSC{Medici} & >
-%\end{nameauth}
-%\PretagName[Catherine \noexpand\AltCaps{d}e']
-% {\noexpand\textSC{Medici}}{Medici, Catherine de}\end{verbatim}
-% \end{quote}
-%This gives us \Cath\ and \Cath. To get \ForceName\CapThis\LCath[\noexpand\AltCaps{d}e'] and \CapThis\LCath[\noexpand\AltCaps{d}e'] in the text, use |\CapThis\LCath[\noexpand\AltCaps{d}e']|.\medskip
+% \begin{center}\small\MyStretch
+% \begin{tabular}{llll}\toprule
+% \bfseries Macro & \bfseries Text & \bfseries \texttt{.ind} file & \bfseries Index\\\midrule
+% \rowcolor{grey}|\Name{foo\Name{bar}}| & \Name{foo\Name{bar}} & |\item foo\Name {bar}| & foo{\NamesFormat bar}\\
+% \rowcolor{grey}\cmd{\printindex} (next iteration adds) \(\rightarrow\) & & |\item bar| & bar\\
+% |\Name{foo\Name{bar}}| & \Name{foo\Name{bar}} & |\item foo\Name {bar}| & foo\\
+% \cmd{\IndexProtect}\cmd{\printindex} & & (no further output) & \\\bottomrule
+% \end{tabular}
+% \end{center}
%
-% \phantomsection
-% \label{page:Inflections}
-% We\Info{name inflections\break\dbend} can use alternate formatting for grammatical inflections (cf. Section~\ref{sec:Hooksiii}). We tell the same set of lies that we did on page~\pageref{page:Sobriquets}. \cmd{\DoGentrue} occurs only in the formatting hook, thereby keeping the index entries consistent:\footnote{A copy of this example is in \texttt{examples.tex}, collocated with this manual.}
+% \DescribeMacro{\NameauthIndex}
+% \LaTeX\ has various ways to produce multiple indexes. \cmd{\NameauthIndex}, which is defined as \cmd{\index}, can be redefined to implement multiple indexes of names.\Version{3.5} Below we use the \textsf{index} package to do this, but other alternatives also are possible.\footnote{See also \href{https://www.texfaq.org/FAQ-multind}{this} on multiple indexes and the test in \texttt{examples.tex}, located with this manual.}
%
-% \newif\ifGenitive
-% \newif\ifDoGen
-% \renewcommand*\NamesFormat[1]{\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
-% \renewcommand*\MainNameHook[1]{\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
-% \newcommand\JEFF{\ifDoGen\textSC{Jefferson's}\else\textSC{Jefferson}\fi}
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\newif\ifGenitive
-%\newif\ifDoGen
-%\renewcommand*\NamesFormat[1]
-% {\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
-%\renewcommand*\MainNameHook[1]
-% {\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
-%\begin{nameauth}
-% \< Jeff & Thomas & \noexpand\JEFF & >
-%\end{nameauth}
-%\PretagName[Thomas]{\noexpand\JEFF}{Jefferson, Thomas}
-%\TagName[Thomas]{\noexpand\JEFF}{, pres.|hyperpage}
-%\newcommand\JEFF{\ifDoGen\textSC{Jefferson's}\else
-% \textSC{Jefferson}\fi}
+%\begin{quote}\small\StartNum
+%\begin{verbatim}
+%\documentclass{article}
+%\usepackage[T1]{fontenc}
+%\usepackage{index}
+%\usepackage{nameauth}
%
-%Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
-%\Genitivetrue\Jeff\ reputation has declined in recent decades.\end{verbatim}
+%\makeindex % Default index
+%\newindex{per}{rdx}{rnd}{Index of Persons} % Other index
+%\renewcommand\NameauthIndex{\index[per]}
%
-% \smallskip
-% Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
-% \Genitivetrue\Jeff\ reputation has declined in recent decades.
-% \end{quote}
-%
-% For highly inflected languages, this would require two Boolean flags per case and nested conditional statements. Now we resume normal formatting with \cmd{\AltFormatInactive} and we do not use the names in this section outside of it.\footnote{In a \texttt{dtx} file it is best to put the \texttt{nameauth} environment, \cmd{\PretagName}, and \cmd{\TagName} macros in the driver section, especially when names contain macros.}
-% \AltFormatInactive\endgroup
-%
-% \ReturnLink
-% \newpage
+%\begin{document}
+% Electric Boogaloo\index{Boogaloo, Electric}% to main index
+% by \Name{Ollie~\& Jerry}% to name index
%
-% \subsection{Indexing Macros}
+% \printindex[per]% Shows the entry: Ollie & Jerry, 1
%
-% \subsubsection[Entries \& Control]{Index Entries and Control}
-% \label{sec:IndexControl}
+% \renewcommand\indexname{Index of Subjects}
+% \printindex % Shows the entry: Boogaloo, Electric, 1
+%\end{document}\end{verbatim}
+% \end{quote}
%
+% \begin{center}\bfseries Page Entries\end{center}
% \DescribeMacro{\IndexName}
% Both package users and the naming macros themselves use this macro to create index entries. It prints nothing in the body text:
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\IndexName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\IndexName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% If \meta{FNN} is present, it ignores \meta{Alternate} for Western and ``native'' Eastern name forms. If \meta{FNN} is absent, \cmd{\IndexName} may use the current or obsolete non-Western syntax (Section~\ref{sec:Obsolete}). Indexing follows [\hyperlink{Mulvany}{Mulvany}, 152--82].
-%
-% If \cmd{\IndexInactive} or the \texttt{noindex} option are used, this macro does nothing until \cmd{\IndexActive} appears. Additionally, it will not create index entries for cross-references made by \cmd{\IndexRef} and \cmd{\AKA}. It will not index names excluded by \cmd{\ExcludeName}. This provides some error protection for professional indexing.
+% If \meta{FNN} is present, it ignores \meta{Alternate} for Western and ``native'' Eastern name forms. If \meta{FNN} is absent, \cmd{\IndexName} can use either the current or the obsolete non-Western syntax (Section~\ref{sec:Obsolete}). Indexing follows [\hyperlink{Mulvany}{Mulvany}, 152--82].
%
-% \cmd{\IndexName} and \cmd{\IndexRef} call \cmd{\@nameauth@Index}, a macro that assembles an index entry from the sort tag (Section~\ref{sec:IndexXref}), name arguments, and index tag (Section~\ref{sec:IndexTag}).
-% Different standards exist for index entries and cross-references. Check with your publisher, style guide, and docs for \textsf{xindy} and \textsf{makeindex}.\medskip
-%
-% \DescribeMacro{\IndexActive}
-% The \texttt{noindex} option deactivates the indexing function of this package until \cmd{\IndexActive} enables indexing.
-% \DescribeMacro{\IndexInactive}
-% Another macro, \cmd{\IndexInactive}, will deactivate indexing again. These can be used throughout the document. {\bfseries \cmd{\IndexInactive} suppresses index sorting and tagging macros.} Compare the use of macros \cmd{\ExcludeName} and \cmd{\IncludeName} (Section~\ref{sec:IndexXref}).\medskip
-%
-% \DescribeMacro{\IndexProtect}
-% Both the core name engine \cmd{\@nameauth@Name} and \cmd{\AKA} have locks that prevent them from being re-entrant.\VersionWarn{3.3} This protects the text. Usually, one does not put naming macros in the index. Just in case, now one can use \cmd{\IndexProtect} right before \cmd{\printindex} to prevent \textsf{nameauth} macros from producing any output.
-%
-% This example shows the difference between the effects of the older and newer approaches. We use the tag \S\ in this manual's index, but not below:
-% \begin{center}\small
-% \begin{tabular}{llll}\toprule
-% \bfseries Macro & \bfseries Text & \bfseries \texttt{.ind} file & \bfseries Index\\\midrule
-% no protection\\
-% |\Name{foo\Name{bar}}| & \Name{foo\Name{bar}} & |\item foo\Name {bar}| & foo{\NamesFormat bar}\\
-% (next iteration adds) \(\rightarrow\) & & |\item bar| & bar\\
-% \rowcolor{black!7!white}\cmd{\IndexProtect} & & & \\
-% \rowcolor{black!7!white}|\Name{foo\Name{bar}}| & \Name{foo\Name{bar}} &
-% |\item foo\Name {bar}| & foo\\
-% \rowcolor{black!7!white}(no further output results) & & & \\\bottomrule
-% \end{tabular}
-% \end{center}
-%
-% \cmd{\IndexActive}\Info{\cmd{\global}} and \cmd{\IndexInactive} can be used as a pair or singly within a group. These macros override any prefix macros. \cmd{\IndexProtect} also can be used in a local scope. Use \cmd{\global} with these macros to force a global effect.\medskip
-%
-% \DescribeMacro{\SkipIndex}
-% The prefix macro \cmd{\SkipIndex} will suppress indexing for just one instance of a naming or cross-referencing macro.\VersionWarn{3.1} It will not alter name forms or formatting. For example, |\SkipIndex\Name[Monty]{Python}| produces \SkipIndex\Name[Monty]{Python} in the text with no index entry. The same thing again yields \SkipIndex\Name[Monty]{Python}. Since prefix macros are meant for macros that print a name, both \cmd{\IndexName} and \cmd{\IndexRef} ignore \cmd{\SkipIndex} and allow the Boolean flags set by the prefix macros, to ``pass through'' to the next naming macro. That may seem counter-intuitive.
-% \newpage
+% Currently,\Version{3.5} we assume that if one wants to use \cmd{\IndexName}, one really wants to index something. That means \cmd{\IndexName} will not respect \cmd{\SkipIndex}. Using \cmd{\IndexInactive} will still suppress indexing. The naming macros have used the following for some time, which causes \cmd{\IndexName} to obey \cmd{\SkipIndex}:
+% \begin{quote}\small
+% |\unless\if@nameauth@SkipIndex \IndexName|\dots|\fi.|
+% \end{quote}
%
-% \DescribeMacro{\JustIndex}
-% This prefix macro makes \cmd{\Name}, \cmd{\Name*}, \cmd{\Fname}, and the shorthands act like a one-time call to \cmd{\IndexName}.\VersionWarn{3.3} Flags set by the prefix macros ``pass through'' to the next naming macro except these three: \cmd{\@nameauth@JustIndexfalse} (obviously), but also \cmd{\@nameauth@FullNamefalse} and \cmd{\@nameauth@FirstNamefalse}.
+% The stricter indexing control\Version{3.5} in place means that:
% \begin{itemize}
-% \item Both \cmd{\AKA} and \cmd{\PName} ignore and reset the flag set by \cmd{\JustIndex}.
-% \item \cmd{\SkipIndex} \cmd{\JustIndex} \cmd{\Name\{A\}} \cmd{\Name\{B\}} is just like \cmd{\JustIndex} \cmd{\Name\{A\}} \cmd{\SkipIndex} \cmd{\Name\{B\}}. See the table on page~\pageref{page:Priorities}.
-% \item Version 3.3 eliminates the undocumented behavior that used to occur when not using, e.g., \cmd{\JustIndex}\cmd{\Wash}. Now any version will do:\smallskip\\
-% \bgroup\small\begin{tabular}{ll@{ }ll@{ }l}
-% |\JustIndex\LWash \Wash| & old: & \makeatletter\@nameauth@OldPasstrue\makeatother\JustIndex\LWash \Wash & new: & \Wash\\
-% |\JustIndex\SWash \Wash| & old: & \makeatletter\@nameauth@OldPasstrue\makeatother\JustIndex\SWash \Wash & new: & \Wash\\
-% \end{tabular}\egroup
-% \item The \texttt{oldpass} option restores the old behavior. Cf. Section~\ref{sec:Customize}.
+% \item \cmd{\IndexName} will not index names excluded by \cmd{\ExcludeName}, as well as cross-references. This has been true for quite a while.
+% \item \cmd{\IndexName} resets the effects of both \cmd{\SeeAlso} and \cmd{\SkipIndex} unless one uses the \texttt{oldreset} option.
% \end{itemize}
%
-% \ReturnLink
+% \DescribeMacro{\SkipIndex}
+% The prefix macro \cmd{\SkipIndex} will suppress indexing for just one instance of a naming macro.\Version{3.1} See also page~\pageref{page:IdxPrefix}. |\SkipIndex\Name[Monty]{Python}| produces \SkipIndex\Name[Monty]{Python} and \SkipIndex\Name[Monty]{Python} in the text, but with no index entry.\medskip
%
-% \subsubsection{Cross-References}
-% \label{sec:IndexXref}
+% \DescribeMacro{\JustIndex}
+% This prefix macro makes \cmd{\Name}, \cmd{\Name*}, \cmd{\FName}, and the quick interface shorthand macros act similar to a one-time call to \cmd{\IndexName}.\Version{3.5} \cmd{\JustIndex} suppresses name output in the text, but it resets flags for long and first name forms as if the naming macro had produced output. Using the \texttt{oldreset} option prevents these flags from being reset. See also page~\pageref{page:IdxPrefix}.
%
+% \begin{center}\bfseries Cross-References\end{center}
% \DescribeMacro{\IndexRef}
-% This macro emerged from the macros in Section~\ref{sec:AKA}. By default, \cmd{\IndexRef} creates a \textit{see} reference\Version{3.0} from the name defined by its first three arguments to the target in its final argument:
-% \begin{quote}\small
-% \fbox{\mystrut\ \cmd{\IndexRef}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{reference target} }
+% By default, \cmd{\IndexRef} creates a \textit{see} reference from the name defined by its first three arguments to the target in its final argument:
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{@{}l@{}}
+% {\Large\strut}\small\cmd{\IndexRef}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{reference target}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% The name parsing is like \cmd{\IndexName}, except that the final argument is neither parsed nor checked if a target entry exists. For example, to cross-reference ``Sun King'' with \Name*{Louis, XIV} use: \cmd{\IndexRef}\texttt{\{Sun King\}\{Louis XIV\}}\IndexRef{Sun King}{Louis XIV}.
-%
-% When\Warn{} \cmd{\IndexRef} calls \cmd{\@nameauth@Index}, a preexisting tag of the form \meta{some text}\texttt{\textbar}\meta{some macro} is reduced to \meta{some text}. One cannot tag an extant cross-reference, but one can tag a name, then later create a \textit{see also} reference. For related warnings activated by the \texttt{verbose} option, see Section~\ref{sec:ErrorProt}.
-%
-% Next we look at variant names and cross-references. Some can be handled with the \meta{Alternate} argument. Others require more work to implement (Section~\ref{sec:VarNames}).
+% The stricter indexing control\Version{3.5} in place means that:
% \begin{itemize}
-% \item Variant names potentially can have page numbers in index entries. Cross-references cannot have page numbers.
-% \item |\DropAffix\ForgetThis\Name[J.E.]{Carter, Jr.}[Jimmy]| gives a variant name: \DropAffix\ForgetThis\Name[J.E.]{Carter, Jr.}[Jimmy] indexed under ``\ShowIdxPageref*[J.E.]{Carter, Jr.}''
-% \item |\IndexRef[Jimmy]{Carter}{Carter, J.E., Jr.}| makes an xref but prints nothing. We need only create this cross-reference once.\IndexRef[Jimmy]{Carter}{Carter, J.E., Jr.}
-% \item By contrast, \cmd{\AKA} automatically formats the cross-reference name in the text and in the index.
-% \item Yet \cmd{\AKA} has limited formatting. Instead, after creating the xref with \cmd{\IndexRef}, one can use |\SubvertThis\Name*[Jimmy]{Carter}| \SubvertThis\Name*[Jimmy]{Carter} with full formatting, but without creating any page entries.
-% \item \cmd{\SubvertThis} syncs the variant with the canonical form \cmd{\DropAffix} \cmd{\Name*[J.E.]\{Carter, Jr.\}[Jimmy]} \DropAffix\Name*[J.E.]{Carter, Jr.}[Jimmy]. Otherwise, they would act as different names. See also Section~\ref{sec:NameTests}.
-% \item If we use |\Name[Jimmy]{Carter}| \Name[Jimmy]{Carter} we have to index this alternate name with the canonical one: |\IndexName[J.E.]{Carter, Jr.}|
+% \item \cmd{\IndexRef} will not cross-reference names excluded by \cmd{\ExcludeName}, as well as cross-references. This has been true for quite a while.
+% \item \cmd{\IndexRef} will not index any extant names used with \cmd{\Name} and friends, as well as the quick interface, unless one uses the \texttt{oldsee} option.
+% \item \cmd{\IndexName} resets the effects of both \cmd{\SeeAlso} and \cmd{\SkipIndex} unless one uses the \texttt{oldreset} option.
+% \item To have multiple names and cross-references interact, see page~\pageref{page:IdxVariants}.
% \end{itemize}
%
-% \DescribeMacro{\SeeAlso}
-% Put \cmd{\SeeAlso} before \cmd{\IndexRef}, \cmd{\AKA}, and \cmd{\PName} to make a \textit{see also} reference for a name that has appeared already in the index.\Version{3.0}
-% Yet one should mind the caveats:
-% \begin{itemize}
-% \item If |\SeeAlso\IndexRef{Bar}{Foo}| occurs on page 10, \cmd{\Name\{Bar\}} will not create index entries thereafter. A \textit{see also} ref follows all page refs.
-% \item If |\SeeAlso\IndexRef{Bar}{Foo}| occurs on page 10, \cmd{\Name\{Foo\}} will create index entries thereafter because it is the target of ``Bar.''
-% \item If |\Name{Baz}| occurs on page 12 and |\IndexRef{Baz}{Meschugge}| on page 16, no xref will be created. A \textit{see} reference has no page refs.
-% \end{itemize}
+% \cmd{\IndexRef} prints nothing in the text. The name parsing is like \cmd{\IndexName}. The final argument is not checked in any way. For example:
+% \begin{quote}\leavevmode\Info{\vspace{-4ex}\break \strut\footnotesize Name Pattern(s):\hfill \break\ttfamily\ShowPattern{Sun King}!PN}
+% \begin{tabular}{ll}
+% source: & \cmd{\IndexRef}\texttt{\{Sun King\}\{Louis XIV\}}\IndexRef{Sun King}{Louis XIV}\\
+% index: & Sun King \textit{see} Louis XIV\\
+% \end{tabular}
+% \end{quote}
%
+% \DescribeMacro{\SeeAlso}
+% Put \cmd{\SeeAlso} before \cmd{\IndexRef}, \cmd{\AKA}, and \cmd{\PName} to make a \textit{see also} reference for a name that has appeared already in the index.\Version{3.5} If enabled before invoking \cmd{\PName}, \cmd{\SeeAlso} will be disabled when the regular name is generated, then enabled when the cross-reference is generated. Currently \cmd{\IndexName} and any macros that use it will reset the Boolean flag governed by \cmd{\SeeAlso} unless one uses the \texttt{oldreset} option. This does not change the intended behavior of \cmd{\SeeAlso}. Rather, it prevents a stray use of the macro from affecting the index.\medskip
+%
% \DescribeMacro{\ExcludeName}
% This macro prevents a name from being used as either an index entry or as an index cross-reference.\Version{3.0} It will not exclude extant cross-references:
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\ExcludeName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\ExcludeName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
-% \cmd{\IndexRef} works best if one needs a cross-reference from a variant to the canonical name. If no cross-reference is needed, then \cmd{\ExcludeName} is used. Unlike \cmd{\IndexInactive} and \cmd{\IndexActive}, this macro works only on a per-name basis. Below we keep specific names and cross-references out of the index:\ExcludeName[Kris]{Kringle}\ExcludeName[Santa]{Claus}\ExcludeName{Grinch}\vspace{2.5ex}
+% Unlike \cmd{\IndexInactive} and \cmd{\IndexActive}, which inhibit indexing altogether, this macro only excludes a specific name from being printed as a page reference or cross-reference in the index. See the following example, as well as examples in Sections~\ref{sec:VarNames} and \ref{sec:NameParticles}:
+% \newpage
%
-%\leavevmode\quad\begin{minipage}[b]{0.9\textwidth}\small
-% \StartNum
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern[Kris]{Kringle}!PN\break \ShowPattern[Santa]{Claus}!PN\break \ShowPattern{Grinch}!PN\break \ShowPattern[Kris]{Kringle}!MN\break \ShowPattern[Santa]{Claus}!MN\break \ShowPattern{Grinch}!MN}
+% \ExcludeName[Kris]{Kringle}\ExcludeName[Santa]{Claus}\ExcludeName{Grinch}
+% \StartNum\vspace{-5ex}
% \begin{verbatim}
%\ExcludeName[Kris]{Kringle}
%\ExcludeName[Santa]{Claus}
-%\ExcludeName{Grinch}\end{verbatim}
-% \end{minipage}\medskip
+%\ExcludeName{Grinch}
+%\Name[Kris]{Kringle}, a.k.a. \Name[Santa]{Claus}
+%even likes the \Name{Grinch}.\end{verbatim}
%
-%\leavevmode\quad\begin{minipage}[b]{0.5\textwidth}\small
-% \ContinueNum
-% \begin{verbatim}
-%\Name[Kris]{Kringle}
-%\Name[Kris]{Kringle}
-%\AKA[Kris]{Kringle}[Santa]{Claus}\end{verbatim}
-% \end{minipage}
-% \begin{minipage}[b]{0.3\textwidth}\small
-% \Name[Kris]{Kringle}\\
-% \Name[Kris]{Kringle}\\
-% \AKA[Kris]{Kringle}[Santa]{Claus}
-% \end{minipage}\vspace{2ex}
-%
-% For more examples of using \cmd{\ExcludeName} to handle variants, see Sections~\ref{sec:VarNames} and \ref{sec:NameParticles}, among others. We will check on the \Name{Grinch} later.\medskip
+% \Name[Kris]{Kringle}, a.k.a. \Name[Santa]{Claus}
+% even likes the \Name{Grinch}.
+% \end{quote}
%
-% \phantomsection
-% \label{page:ExPage}
% \DescribeMacro{\IncludeName}
-% For those who might need to break the indexing rules set by \textsf{nameauth}, these two macros get the job done.
+% Use these macros to break a few indexing rules. They remove the protections used for exclusion and cross-referencing.
% \DescribeMacro{\IncludeName*}
-% They remove the protections used for exclusion and cross-referencing. These macros have the same syntax as \cmd{\ExcludeName}:\Version{3.0}
+% They have the same syntax as \cmd{\ExcludeName}:
% \begin{quote}
-% \fbox{\vbox{\hbox{\mystrut\ \cmd{\IncludeName\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }\par
-% \hbox{\mystrut\ \cmd{\IncludeName*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }}}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\IncludeName\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\vspace{-2pt}\\
+% {\Large\strut}\cmd{\IncludeName*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% \cmd{\IncludeName} only removes an excluded reference created by \cmd{\ExcludeName} while \cmd{\IncludeName*} completely un-protects a cross-reference. Thereafter, one may create page entries for it like a name.
+% \phantomsection
+% \label{page:ExPage}
+% \cmd{\IncludeName} only voids an exclusion created by \cmd{\ExcludeName}. The more extreme \cmd{\IncludeName*} completely un-protects a cross-reference. Thereafter, one may create page entries for it as a name. For example:
+%
+% \begin{itemize}
+% \item As an\PatInfo{\ShowPattern{Gregory, I}!PN\break \ShowPattern{Gregory, I}!MN} excluded name, |\Name*{Gregory, I}| \Name*{Gregory, I} does not create an index entry.
+% \item \cmd{\IfAKA\{Gregory, I\}}|{|\meta{an xref}|}{|\meta{a name}|}{|\meta{excluded}|}| tells us that \Name{Gregory, I} is \IfAKA{Gregory, I}{\meta{an xref}}{\meta{a name}}{\meta{excluded}} (cf. Section~\ref{sec:NameTests}).
+% \end{itemize}
%
-% For example, we used |\ExcludeName{Attila, the Hun}| at the end of Section~\ref{sec:SimpleStart}. Using \cmd{\IfAKA\{Attila, the Hun\}}|{|\meta{an xref}|}{|\meta{no xref}|}{|\meta{excluded}|}| tells us that he is \IfAKA{Attila, the Hun}{\meta{an xref}}{\meta{no xref}}{\meta{excluded}} (cf. Section~\ref{sec:NameTests}).
-%
-% Once we use |\IncludeName{Attila, the Hun}|\IncludeName{Attila, the Hun}, using |\LAttil| \LAttil\ will create a name and an index entry on this page. \cmd{\IfAKA} now tells us that he is \IfAKA{Attila, the Hun}{\meta{an xref}}{\meta{no xref}}{\meta{excluded}}. We again have a name that can be indexed.
+% After using |\IncludeName{Gregory, I}|\IncludeName{Gregory, I}, the following points are true:
+% \begin{itemize}
+% \item |\Name*{Gregory, I}| displays \Name*{Gregory, I} and creates an index entry.
+% \item \cmd{\IfAKA\{Gregory, I\}}|{|\meta{an xref}|}{|\meta{a name}|}{|\meta{excluded}|}| now tells us that \Name{Gregory, I} has become \IfAKA{Gregory, I}{\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
+% \end{itemize}
%
-% Cross-references get more protection. \cmd{\IfAKA[Jay]\{Rockefeller\}} (a reference from Section~\ref{sec:SimpleStart}) tells us that he is \IfAKA[Jay]{Rockefeller}{\meta{an xref}}{\meta{no xref}}{}. If we follow the previous example and use |\IncludeName[Jay]{Rockefeller}|\IncludeName[Jay]{Rockefeller} he still is \IfAKA[Jay]{Rockefeller}{\meta{an xref}}{\meta{no xref}}{}. After using |\IncludeName*[Jay]{Rockefeller}|\IncludeName*[Jay]{Rockefeller} he finally becomes \IfAKA[Jay]{Rockefeller}{\meta{an xref}}{\meta{no xref}}{}, removing all protection from that cross-reference.
+% Cross-references get more protection.\PatInfo{\ShowPattern[J.D.]{Rockefeller, IV}!MN\break \ShowPattern[Jay]{Rockefeller}!PN\break \ShowPattern[Jay]{Rockefeller}!MN} We have seen \DropAffix\LJRIV[Jay] indexed under ``\ShowIdxPageref*[J.D.]{Rockefeller, IV}'' with |\DropAffix\LJRIV[Jay]|. We create the cross-index \IndexRef[Jay]{Rockefeller}{Rockefeller, J.D., IV}|\IndexRef[Jay]{Rockefeller}{Rockefeller, J.D., IV}|.
+% \begin{itemize}
+% \item \cmd{\IfAKA[Jay]\{Rockefeller\}}|{|\meta{xref}|}{|\meta{name}|}{}| calls \SJRIV[Jay] an \IfAKA[Jay]{Rockefeller}{\meta{xref}}{\meta{name}}{}.
+% \item After |\IncludeName[Jay]{Rockefeller}|\IncludeName[Jay]{Rockefeller} he still is an \IfAKA[Jay]{Rockefeller}{\meta{xref}}{\meta{name}}{}.
+% \item After |\IncludeName*[Jay]{Rockefeller}|\IncludeName*[Jay]{Rockefeller} he becomes a \IfAKA[Jay]{Rockefeller}{\meta{xref}}{\meta{name}}{}.
+% \item Now \cmd{\Name[Jay]\{Rockefeller\}} will create page entries.
+% \end{itemize}
%
+% Analogous to how \cmd{\IncludeName*} allows one to turn an xref into a name with page references, \cmd{\ForgetName} and possibly \cmd{\ForgetThis} (Section~\ref{sec:NameControl}) allow one to assign a \textit{see} reference to an extant name. This is bad when using one index, but desirable when using multiple indexes.\medskip
+%
+% \begin{center}\bfseries Error Prevention\end{center}
% \phantomsection
-% \label{page:ManualXref}
-% \begin{center}\bfseries Advanced Cross-Referencing\end{center}
+% \label{page:IdxErrors}
+% \cmd{\IndexName} and \cmd{\IndexRef}\Version{3.5} strictly enforce professional indexing practices. Now they are more sensitive to order of use. Both \cmd{\ForgetName} and \cmd{\ForgetThis} (Section~\ref{sec:NameControl}) can affect this mechanism. The \texttt{verbose} option aids debugging.
+% \begin{itemize}
+% \item[]
+% \bgroup\small\MyStretch\begin{tabular}{rp{0.38\textwidth}@{\ }p{0.23\textwidth}}\toprule
+% Page & Macro & Index Result\\\midrule
+% \rowcolor{grey}1 & \cmd{\Name\{bar\}}\dotfill \hbox{} & bar, 1\\
+% 2 & \cmd{\Name\{bar\}}\dotfill \hbox{} & bar, 1, 2\\
+% \end{tabular}\egroup\smallskip
+%
+% \item A \textit{see also} reference to a certain name must follow all page references to that name. The use of \cmd{\SeeAlso}\cmd{\IndexRef\{bar\}\{foo\}} on page~3 prevents \cmd{\Name\{bar\}} from creating an index page reference on page~4:\\[1.5ex]
+% \bgroup\small\MyStretch\begin{tabular}{rp{0.38\textwidth}@{\ }p{0.23\textwidth}}
+% \phantom{Page} & \phantom{Macro} & \phantom{Index Result}\\[-2.5ex]
+% \rowcolor{grey}3 & \cmd{\SeeAlso}\cmd{\IndexRef\{bar\}\{foo\}} & bar, 1, 2, \textit{see also} foo\\
+% 4 & \cmd{\Name\{bar\}}\dotfill \hbox{} & bar, 1, 2, \textit{see also} foo\\
+% \end{tabular}\egroup\smallskip
+%
+% \item Targets of cross-references are not affected by this. \cmd{\Name\{foo\}} creates index page entries because it is the target, not the xref:\\[1.5ex]
+% \bgroup\small\begin{tabular}{rp{0.38\textwidth}@{\ }p{0.23\textwidth}}
+% \phantom{Page} & \phantom{Macro} & \phantom{Index Result}\\[-2.5ex]
+% \rowcolor{grey}5 & \cmd{\Name\{foo\}}\dotfill \hbox{} & bar, 1, 2, \textit{see also} foo\\
+% \rowcolor{grey}& & foo, 5\\
+% \end{tabular}\egroup
%
-% \noindent \cmd{\IndexRef}\Info{combining xrefs} will not merge multiple cross-references. One must manually merge cross-references: |\IndexRef{Bar}{Baz; Foo}| makes the index entry ``Bar, \textit{see} Baz; Foo.'' The preferred standard (in the humanities) suggests that one avoid something like |\IndexRef{Bar}{Baz} \IndexRef{Bar}{Foo}|.\medskip
+% \item A \textit{see}\Version{3.5} reference is supposed to have no page references; a \textit{see also} reference does have page references, but only before it is created. Trying to use an extant name as a \textit{see} reference is strictly ignored:\\[1.5ex]
+% \bgroup\small\begin{tabular}{rp{0.38\textwidth}@{\ }p{0.23\textwidth}}
+% \phantom{Page} & \phantom{Macro} & \phantom{Index Result}\\[-2.5ex]
+% 6 & \cmd{\Name\{baz\}}\dotfill \hbox{} & bar, 1, 2, \textit{see also} foo\\
+% & & baz, 6\\
+% & & foo, 5\\
+% \rowcolor{grey}7 & \cmd{\IndexRef\{baz\}\{meschugge\}}\dotfill \hbox{} & bar, 1, 2, \textit{see also} foo\\
+% \rowcolor{grey}& & baz, 6\\
+% \rowcolor{grey}& & foo, 5\\\bottomrule
+% \end{tabular}\egroup
+% \end{itemize}\leavevmode
%
-% There\Info{one xref\break many targets} is a special case where one cross-reference can point to multiple targets, such as demonstrated in the example below:
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\PretagName{\textit{Snellius}}{Snellius}
-%\IndexRef{\textit{Snellius}}{Snel van Royen, R.; Snel van Royen, W.}
+% \begin{center}\bfseries Prefix Macros and Indexing Macros\end{center}
+% \phantomsection
+% \label{page:IdxPrefix}
+% Indexing macros ignore Boolean flags meant for naming macros. Yet there are three prefix macros that affect indexing: \cmd{\SeeAlso}, \cmd{\SkipIndex}, and \cmd{\JustIndex}.
%
-%Both \Name[W.]{Snel van Royen}[Willebrord] and
-%his son \Name[R.]{Snel van Royen}[Rudolph] were known
-%by the Latin moniker \Name{\textit{Snellius}}.\end{verbatim}
+% \begin{itemize}
+% \item \cmd{\SeeAlso} works with and is reset by \cmd{\IndexRef}, \cmd{\AKA}, and \cmd{\PName} (see also Section~\ref{sec:AKA}). There are few, if any, side effects.\medskip
+% \item \cmd{\SkipIndex} works with the naming macros. Side effects include:
+% \begin{itemize}
+% \item Unless the \texttt{oldreset} option is used,\Version{3.5} both \cmd{\IndexName} and \cmd{\IndexRef} issue warnings if \cmd{\SkipIndex} precedes them, ignore \cmd{\SkipIndex}, and reset its flag.
+% \item Only when the \texttt{oldreset} option is used, both \cmd{\PName}\Version{3.5} and \cmd{\PName*} issue warnings when \texttt{\textbackslash if@nameauth@SkipIndex} is true on exit.
+% \end{itemize}
+% \item \cmd{\JustIndex} makes the naming macros act like \cmd{\IndexName}. That affects both the printing and indexing flags governed by prefix macros.
+% \end{itemize}
%
-% \smallskip
-% \IndexRef{\textit{Snellius}}{Snel van Royen, R.; Snel van Royen, W.}
-% Both \Name[W.]{Snel van Royen}[Willebrord] and
-% his son \Name[R.]{Snel van Royen}[Rudolph] were known
-% by the Latin moniker \Name{\textit{Snellius}}.
-% \end{quote}
+% There are many potential side effects related to \cmd{\JustIndex}:
+% \begin{itemize}
+% \item Both \cmd{\AKA} and \cmd{\PName} ignore \cmd{\JustIndex} and go on about their business. They also set \cmd{\@nameauth@JustIndexfalse}.
+% \item \cmd{\JustIndex} causes the naming macros to imitate \cmd{\IndexName} and ignore most flags, except for those discussed in the next bullet point. That makes the following two lines equivalent:
+% \begin{quote}\small\MyStretch
+% \cmd{\SkipIndex} \cmd{\JustIndex} \cmd{\Name\{A\}} \cmd{\Name\{B\}}\\
+% \cmd{\JustIndex} \cmd{\Name\{A\}} \cmd{\SkipIndex} \cmd{\Name\{B\}}
+% \end{quote}
+% According to the table on page~\pageref{page:Priorities}, \cmd{\JustIndex} takes priority with \cmd{\Name\{A\}} and passes \cmd{\@nameauth@SkipIndextrue} to \cmd{\Name\{B\}}.
+% \item Currently,\Version{3.3} the naming macros always reset \cmd{\@nameauth@FullNamefalse} and \cmd{\@nameauth@FirstNamefalse}. For example:\\[1.5ex]
+% \bgroup\small\vspace{-17ex}\PatInfo{\ShowPattern[George]{Washington}!MN}\vspace{17ex}\MyStretch\begin{tabular}{ll}\toprule
+% Source & Output\\\midrule
+% \rowcolor{grey}|\JustIndex\FName[George]{Washington}%| & \\
+% \rowcolor{grey}| \Name[George]{Washington}| &
+% \JustIndex\FName[George]{Washington}\Name[George]{Washington}\\
+% \rowcolor{grey}|\JustIndex\SWash \Wash| & \JustIndex\SWash \Wash \hphantom{ George}\\
+% |\JustIndex\Name*[George]{Washington}%| & \\
+% | \Name[George]{Washington}| &
+% \JustIndex\Name*[George]{Washington}\Name[George]{Washington}\\
+% |\JustIndex\LWash \Wash| & \JustIndex\LWash \Wash\\
+% \end{tabular}\egroup\smallskip
+%
+% \item The \texttt{oldpass} option restores the old behavior, which did not always reset the name length modifier. For example:\\[1.5ex]
+% \bgroup\makeatletter\@nameauth@OldPasstrue\makeatother%
+% \small\vspace{-17ex}\PatInfo{\ShowPattern[George]{Washington}!MN}\vspace{17ex}\MyStretch\begin{tabular}{ll}
+% \rowcolor{grey}|\JustIndex\FName[George]{Washington}%| & \\
+% \rowcolor{grey}| \Name[George]{Washington}| &
+% \JustIndex\FName[George]{Washington}\Name[George]{Washington}\\
+% \rowcolor{grey}|\JustIndex\SWash \Wash| & \JustIndex\SWash \Wash\\
+% |\JustIndex\Name*[George]{Washington}%| & \\
+% | \Name[George]{Washington}| &
+% \JustIndex\Name*[George]{Washington}\Name[George]{Washington}\\
+% |\JustIndex\LWash \Wash| & \JustIndex\LWash \Wash\\\bottomrule
+% \end{tabular}\egroup
+% \end{itemize}\leavevmode
%
-% \cmd{\IndexRef}\Info{location matters} prevents page numbers in cross-references, so one must plan how to set up complex cross-references. Above, |\Name{\textit{Snellius}}| produces no index entry because \cmd{\IndexRef} comes first.\medskip
+% \begin{center}\bfseries Variant Names and Cross-References\end{center}
+% \phantomsection
+% \label{page:IdxVariants}
+% Here we show differences among variants and cross-references. We can choose to index variants under the canonical name or we can set up cross-references with variants. The order in which we do that is significant:
+% \begin{enumerate}
+% \item We use\PatInfo{\ShowPattern[J.E.]{Carter, Jr.}!MN\hfill \textrm{(1--2)}\break \ShowPattern[Jimmy]{Carter}!PN\hfill \textrm{(3, 6)}\break \ShowPattern[Jimmy]{Carter}!MN\hfill \textrm{(4)}\break \ShowPattern[J.E.]{Carter, Jr.}!PN\hfill \textrm{(5)}} the canonical name to create page references:\smallskip\\
+% \hbox{}\quad|\Name*[J.E.]{Carter, Jr.}|\dotfill \Name*[J.E.]{Carter, Jr.}
+% \item Variants that use \meta{Alternate} in the text create page entries under the canonical form, not the variant form:\smallskip\\
+% \hbox{}\quad|\DropAffix\Name*[J.E.]{Carter, Jr.}[Jimmy]|\dotfill \DropAffix\Name*[J.E.]{Carter, Jr.}[Jimmy]\\
+% \hbox{}\quad|\ShowIdxPageref*[J.E.]{Carter, Jr.}[Jimmy]|\dotfill \ShowIdxPageref*[J.E.]{Carter, Jr.}[Jimmy]
+% \item We must create\Version{3.5} a \textit{see} reference from an alternate form to a canonical form \emph{before} using the alternate form in a naming macro, or it will be ignored and a warning will result:\smallskip\\
+% \hbox{}\quad|\IndexRef[Jimmy]{Carter}{Carter, J.E., Jr.}|\IndexRef[Jimmy]{Carter}{Carter, J.E., Jr.}
+% \item No page references will occur below because we made the \textit{see} reference first. Note how the alternate form is an independent name:\smallskip\\
+% \hbox{}\quad|\Name[Jimmy]{Carter}|\dotfill \Name[Jimmy]{Carter}
+% \item If we want to index the alternate name, we have to use the canonical name instead of the alternate name:\smallskip\\
+% \hbox{}\quad|\IndexName[J.E.]{Carter, Jr.}|
+% \item If instead we wanted to make a \textit{see also} reference, we would use both the canonical name and the alternate name, then create the cross-reference \emph{after} all uses of the alternate name (at the end of the document), e.g.:\smallskip\\
+% \hbox{}\quad|\SeeAlso\IndexRef[Jimmy]{Carter}{Carter, J.E., Jr.}|
+% \end{enumerate}
%
% Below,\Info{Multiple\break connections} two names are indexed with page numbers. They have \textit{see also} cross-references to each other. One of those names also has a \textit{see} reference to it:
-% \begin{itemize}
-% \item We use the canonical name to set up page references:\smallskip\\
-% \hbox{}\qquad|\Name{Maimonides}|\dotfill\Name{Maimonides}
+% \begin{enumerate}
+% \item We use\PatInfo{\ShowPattern{Maimonides}!MN \textrm{(1)}\break \ShowPattern{Moses, ben-Maimon}!PN \textrm{(2)}\break \ShowPattern{Moses, ben-Maimon}!MN \textrm{(3)}\break \ShowPattern{Rambam}!MN \textrm{(4)}\break \ShowPattern{Rambam}!PN \textrm{(5)}} the canonical name to set up page references:\smallskip\\
+% \hbox{}\qquad|\Name{Maimonides}|\dotfill \Name{Maimonides}
% \item \Name{Maimonides} has two other names, one more used than the other. We set up his least-used name as the \textit{see} reference:\smallskip\\
-% \hbox{}\qquad|\IndexRef{Moses, ben-Maimon}{Maimonides}|\IndexRef{Moses, ben-Maimon}{Maimonides}\\
-% \hbox{}\qquad|\Name{Moses, ben-Maimon}|\dotfill\Name{Moses, ben-Maimon}
-% \item We now have a main name with a page entry and a ``\textit{see} reference'' to that name. \Name*{Moses, ben-Maimon} has no page entries because we made the xref before we started to use the name.
+% \hbox{}\qquad|\IndexRef{Moses, ben-Maimon}{Maimonides}|\IndexRef{Moses, ben-Maimon}{Maimonides}
+% \item We now have a main name with a page entry and a ``\textit{see} reference'' to that name. No page references will occur below because we made the \textit{see} reference first:\smallskip\\
+% \hbox{}\qquad|\Name{Moses, ben-Maimon}|\dotfill \Name{Moses, ben-Maimon}
% \item Before creating \textit{see also} cross-references, we use the other alternate name so that all the page entries precede the cross-references:\smallskip\\
-% \hbox{}\qquad|\Name{Rambam}|\dotfill\Name{Rambam}
+% \hbox{}\qquad|\Name{Rambam}|\dotfill \Name{Rambam}
% \item All \textit{see also} references must come after all page references. For example, one could put both of these macros at the end of the document:\smallskip\\
% \hbox{}\qquad|\SeeAlso\IndexRef{Maimonides}{Rambam}|\SeeAlso\IndexRef{Maimonides}{Rambam}\\
% \hbox{}\qquad|\SeeAlso\IndexRef{Rambam}{Maimonides}|\SeeAlso\IndexRef{Rambam}{Maimonides}
-% \end{itemize}
-%
-% \BigBlank
-% \newpage
-%
-% \begin{center}\bfseries Continental Format Reference Work\end{center}
-%
-% Let us create a macro for entries in a reference work using the basic form of Continental formatting from Section~\ref{sec:AltBasic}. We enable alternate formatting, set up tags, and define an article with head-words:
-% \AltFormatActive
-%\newcommand{\RefArticle}[4]{%^^A
-% \def\check{#2}%^^A
-% \ifx\check\empty
-% \noindent\ForgetThis#1\ {#4}
-% \else
-% \noindent\ForceName#1\ ``\ForceName#2''
-% \ForceName#3\ {#4}
-% \fi
-%}
-% \begin{quote}\small
-% \StartNum
-% \begin{verbatim}
-%\AltFormatActive
-%\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
-%\PretagName[Heinz]{\textSC{Rühmann}}{Ruehmann, Heinz}
-%\PretagName[Heinrich Wilhelm]{\textSC{Rühmann}}%
-% {Ruehmann, Heinrich Wilhelm}
+% \end{enumerate}
%
-%\newcommand{\RefArticle}[4]{%
-% \def\check{#2}%
-% \ifx\check\empty
-% \noindent\ForgetThis#1\ {#4}
-% \else
-% \noindent\ForceName#1\ ``\ForceName#2''
-% \ForceName#3\ {#4}
-% \fi
-%}\end{verbatim}
+% \cmd{\IndexRef}\Info{Combining xrefs} will not merge multiple cross-references and it will not allow more than one cross-reference. For multiple cross-references one must use something like:
+% \begin{quote}
+% \begin{tabular}{ll}
+% source: & |\IndexRef{bar}{baz; foo}|\\[0.5ex]
+% index: & bar, \textit{see} baz; foo\\
+% \end{tabular}
% \end{quote}
%
-% \cmd{\RefArticle} either formats the name from the first argument and appends the fourth argument, ignoring the others if the second is empty, or it formats the first three arguments and appends the fourth. We determine what those arguments mean by including specific naming macros.
-% \begin{quote}\small
-% \ContinueNum
+% There\Info{Multiple targets} is a special case where one cross-reference can point to multiple targets, such as demonstrated in the example below:
+%
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern{\textit{Snellius}}!PRE\break \ShowPattern{\textit{Snellius}}!PN\break \ShowPattern[W.]{Snel van Royen}!MN\break \ShowPattern[R.]{Snel van Royen}!MN}\vspace{-5ex}
+% \StartNum
% \begin{verbatim}
-%\RefArticle%
-% {\Name[Greta]{\textSC{Garbo}}}%
-% {}{}%
-% {(18 September 1905\,--\,15 April 1990) was a Swedish
-% film actress during the 1920s and 1930s.}
+%\PretagName{\textit{Snellius}}{Snellius}
+%\IndexRef{\textit{Snellius}}
+% {Snel van Royen, R.; Snel van Royen, W.}
+%Both \Name[W.]{Snel van Royen}[Willebrord] and
+%his son \Name[R.]{Snel van Royen}[Rudolph] were known
+%by the Latin moniker \Name{\textit{Snellius}}.\end{verbatim}
%
-%\RefArticle%
-% {%
-% \IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
-% {\textSC{Rühmann}, Heinz}%
-% \SubvertThis\FName[Heinrich Wilhelm]{\textSC{Rühmann}}%
-% }%
-% {\SubvertThis\FName[Heinz]{\textSC{Rühmann}}}%
-% {\Name[Heinz]{\textSC{Rühmann}}}%
-% {(7 March 1902\,--\,3 October 1994) was a German actor
-% in over 100 films.}
-%
-%\AltFormatInactive\end{verbatim}
+% \smallskip
+% \IndexRef{\textit{Snellius}}
+% {Snel van Royen, R.; Snel van Royen, W.}
+% Both \Name[W.]{Snel van Royen}[Willebrord] and
+% his son \Name[R.]{Snel van Royen}[Rudolph] were known
+% by the Latin moniker \Name{\textit{Snellius}}.
% \end{quote}
%
-% \begin{quote}
-%\RefArticle%^^A
-% {\Name[Greta]{\textSC{Garbo}}}%^^A
-% {}{}%^^A
-% {(18 September 1905\,--\,15 April 1990) was a Swedish
-% film actress during the 1920s and 1930s.}
-%
-%\RefArticle%^^A
-% {%^^A
-% \IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%^^A
-% {\textSC{Rühmann}, Heinz}%^^A
-% \SubvertThis\FName[Heinrich Wilhelm]{\textSC{Rühmann}}%^^A
-% }%^^A
-% {\SubvertThis\FName[Heinz]{\textSC{Rühmann}}}%^^A
-% {\Name[Heinz]{\textSC{Rühmann}}}%^^A
-% {(7 March 1902\,--\,3 October 1994) was a German actor
-% in over 100 films.}
-% \end{quote}
+% \cmd{\IndexRef}\Info{Location matters} prevents page numbers in cross-references, so one must plan how to set up complex cross-references. Above, |\Name{\textit{Snellius}}| produces no index entry because \cmd{\IndexRef} comes first.
%
-% \AltFormatInactive
% \ReturnLink
% \newpage
%
% \subsubsection{Index Sorting}
% \label{sec:IndexSort}
%
+% Here we introduce the index sorting macros, with examples of error prevention:
+% \begin{center}\small\MyStretch
+% \begin{tabular}{ll}\toprule
+% potential sorting problems & page~\pageref{page:DebugSort}\\
+% \rowcolor{grey}example reference work & page~\pageref{page:ContinentalXref}\\\bottomrule
+% \end{tabular}
+% \end{center}
+%
% \DescribeMacro{\IndexActual}
-% The general practice for sorting with \texttt{makeindex -s} involves creating your own |.ist| file (pages 659--65 in \textit{The Latex Companion}). The following form works with both \texttt{makeindex} and \texttt{texindy}: |\index{|\meta{sort key}|@|\meta{actual}|}|. By default, the ``actual'' character is |@|. If one needs to change the ``actual'' character, such as when using \texttt{gind.ist} with \texttt{.dtx} files, one would put |\IndexActual{=}| in the preamble (or driver section) before using \cmd{\PretagName}.\medskip
+% Using \cmd{\index\{}\meta{sort key}\texttt{@}\meta{actual}\texttt{\}} works with both \texttt{makeindex} and \texttt{texindy}.\footnote{The general practice for sorting with \texttt{makeindex -s} involves creating an \texttt{.ist} file (pages 659--65 in \textit{The Latex Companion}).}
+% By default, the ``actual'' character is |@|. If one needs to change the ``actual'' character, such as when using \texttt{gind.ist} with \texttt{.dtx} files, one would put |\IndexActual{=}| in the preamble (or driver section) before using \cmd{\PretagName}.\medskip
%
+% Effects of \cmd{\IndexActual}\Info{\cmd{\global}} are local in scope. Use \cmd{\global} to make it otherwise, but that will affect every use of \cmd{\PretagName} thereafter. We demonstrate this scoping below as it pertains to \texttt{gind.ist} in a \texttt{dtx} file:
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern{Ægidius}!PRE}\vspace{-5ex}
+% \StartNum
+% \begin{verbatim}
+%\PretagName{Ægidius}{Aegidius}
+%\begingroup
+% \IndexActual{@}
+% \ShowIdxPageref{Ægidius}\qquad
+%\endgroup
+%\ShowIdxPageref{Ægidius}\end{verbatim}
+%
+%\PretagName{Ægidius}{Aegidius}
+%\begingroup
+% \IndexActual{@}
+% \ShowIdxPageref{Ægidius}\qquad
+%\endgroup
+%\ShowIdxPageref{Ægidius}
+% \end{quote}
+%
% \noindent \DescribeMacro{\PretagName}
-% The \textsf{nameauth} package enables automatic index sorting using a ``pretag'' (see Section~\ref{sec:NamePatterns}).\Version{2.0} \cmd{\PretagName} creates a sort key terminated with the ``actual'' character. Do not put the ``actual'' character in the ``pretag'':
+% The \textsf{nameauth} package enables automatic index sorting using a ``pretag'' (cf. Section~\ref{sec:NamePatterns}). Unless the \texttt{nopretag} option is used (which results in warnings), \cmd{\PretagName} creates a sort key terminated with the ``actual'' character. Do not put the ``actual'' character in the ``pretag'':
+%
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\PretagName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{tag} }
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\PretagName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{tag}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% One need only ``pretag'' names once in the preamble. Thereafter, they will be sorted automatically. For example:
-% \begin{quote}\small
+% One can ``pretag'' any name, any cross-reference, and even excluded names. Once made, sorting tags cannot be unmade. If one uses \cmd{\PretagName} in the preamble, those names will be sorted automatically. For example:
+%
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern{Æthelred, II}!PRE\break \ShowPattern[W.E.B.]{Du~Bois}!PRE\break \ShowPattern{Æthelred, II}!MN\break \ShowPattern[W.E.B.]{Du~Bois}!MN}\vspace{-5ex}
% \StartNum
% \begin{verbatim}
-%\PretagName[Jan]{Łukasiewicz}{Lukasiewicz, Jan}
%\PretagName{Æthelred, II}{Aethelred 2}
-%\PretagName[W.E.B.]{Du~Bois}{Dubois, W.E.B.}\end{verbatim}
+%\PretagName[W.E.B.]{Du~Bois}{Dubois, William}\end{verbatim}
% \end{quote}
%
-% Every reference to \Name*[Jan]{Łukasiewicz}, \LAeth, and \LDuBois\ is automatically tagged and sorted. One also must ``pretag'' names that contain spaces, macros, active characters, control spaces, non-breaking spaces, and anything that is not basic ASCII. That can differ when using \texttt{xindy} and Unicode-based \LaTeX.\medskip
-%
-% For example, the\Info{particles and\break languages} sort tag \texttt{de Soto} precedes \texttt{deal} due to the space: \texttt{de\textvisiblespace}. The sort tag \texttt{Desoto} falls between \texttt{derp} and \texttt{determinism}. German \textsf{ä ö ü ß} map to English \textsf{ae oe ue ss}. Yet Norwegian \textsf{æ ø å} follow \textsf{z} in that order. Check a style guide regarding collating sequences, spaces, and sorting. This is where using \texttt{xindy} can be very helpful. See also Section~\ref{sec:NameParticles}.\medskip
-%
-% One\Info{sub-entries} can sort names by creating sub-entries, which depends on the index style and formatting files: \cmd{\PretagName[Some]\{Name\}\{}\meta{category}\texttt{!Name, Some\}}. See the documentation for \texttt{xindy} and \texttt{makeindex}.
-%
-% Below we show how \cmd{\PretagName} helps one to avoid manually sorting cross-references (cf. Section~\ref{sec:NameParticles}):
+% Every reference to \LAeth\ and \LDuBois\ is automatically tagged and sorted. One should ``pretag'' all names that contain active characters or macros. That can differ when using \texttt{xindy} and Unicode-based \LaTeX. We keep this example simple and do not use alternate formatting (cf. Sections~\ref{sec:NameAncient}, \ref{sec:AltFormat}). The name patterns are: \texttt{\ShowPattern{\textit{Doctor angelicus}}!PRE \ShowPattern{\textit{Doctor angelicus}}!PN \ShowPattern{Thomas, Aquinas}!MN \ShowPattern{\textit{Doctor angelicus}}!MN}:
%
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
%\PretagName{\textit{Doctor angelicus}}{Doctor angelicus}
-%\IndexRef{\textit{Doctor angelicus}}{Thomas, Aquinas}
+%\IndexRef{\textit{Doctor angelicus}}{Thomas Aquinas}
%
%Perhaps the greatest medieval theologian was
%\Name{Thomas, Aquinas}, later known as
@@ -3125,64 +2998,69 @@ the README.txt or README for more information.
%
% \smallskip
% \PretagName{\textit{Doctor angelicus}}{Doctor Angelicus}
-% \IndexRef{\textit{Doctor angelicus}}{Thomas, Aquinas}
+% \IndexRef{\textit{Doctor angelicus}}{Thomas Aquinas}
% Perhaps the greatest medieval theologian was
% \Name{Thomas, Aquinas}, later known as
% \Name{\textit{Doctor angelicus}}.
% \end{quote}
%
-% \cmd{\PretagName} differs from the other tagging macros because its function is sorting entries, not appending information to entries:
-% \begin{itemize}
-% \item You can ``pretag'' any name and any cross-reference.
-% \item You can ``tag'' and ``untag'' only page-reference names, not xrefs, but you can turn a page-reference name into a \textit{see also} xref.
-% \item You can undo a ``tag'' but you cannot undo a ``pretag.''
-% \end{itemize}
-% \newpage
-%
-% \begin{center}\bfseries Debugging Problems with Sorting\end{center}
+% Spaces change sorting. For example, the\Info{Particles and\break languages} sort tag \texttt{De\textvisiblespace Soto} precedes \texttt{deal} due to the space therein. The sort tag \texttt{DeSoto} falls between \texttt{derp} and \texttt{determinism}. German \textsf{ä ö ü ß} map to English \textsf{ae oe ue ss}. Yet Norwegian \textsf{æ ø å} follow \textsf{z} in that order. Check a style guide regarding collating sequences, spaces, and sorting. This is where using \texttt{xindy} can be very helpful. See also Section~\ref{sec:NameParticles}.\medskip
+%
+% One\Info{Sub-entries} can sort names by creating sub-entries, which depends on the index style and formatting files: \cmd{\PretagName[Some]\{Name\}\{}\meta{category}\texttt{!Name, Some\}}. See also the documentation for \texttt{xindy} and \texttt{makeindex}.
%
-% \bgroup If an entry is incorrect in the index, check the following:
+% \begin{center}\bfseries Potential Sorting Problems\end{center}
+% \phantomsection
+% \label{page:DebugSort}
+% If an entry is sorted incorrectly in the index, check the following:
% \begin{itemize}
% \item Are there any active characters, internal spaces, or control sequences in the name arguments? Use \cmd{\PretagName}.
% \item Is alternate formatting used consistently? Are any names used within sections of alternate formatting ever used outside of them?
% \item Are macros in the name arguments that can expand differently under different conditions preceded by \cmd{\noexpand}?
% \end{itemize}
%
-% Since 2018 changes in the way that Unicode characters are handled in \texttt{pdflatex} and \texttt{latex} have made indexing simpler and more intuitive, e.g.\medskip
-%
+% Since 2018, changes in the way that \texttt{pdflatex} and \texttt{latex} handle Unicode characters have made indexing simpler and more intuitive, e.g.
+%
% \def\arrow{\ \(\rightarrow\)\ }
% \def\midrowa{\arrow\quad}
% \def\midrowb{\hphantom{\arrow}\quad}
% \def\midrow{\midrowb}
% \begin{center}\MyStretch
-% \begin{tabular}{ll>{\hspace{-1em}\midrow}lll>{\hspace{-1em}\midrow}l}\toprule
+% \begin{tabular}{l@{\ }l>{\hspace{-1em}\midrow}ll@{\ }l>{\hspace{-1em}\midrow}l}\toprule
% pre-2018 & text & index & post-2018 & text & index\gdef\midrow{\midrowa}\\\midrule
-% & ä & \texttt{\cmd{\IeC\textvisiblespace}\{\cmd{\"a}\}} & & ä & \texttt{ä}\\
-% \rowcolor{black!7!white} & æ & \texttt{\cmd{\IeC\textvisiblespace}\{\cmd{\ae\textvisiblespace}\}}
-% & & æ & \texttt{æ}\\\bottomrule
+% \rowcolor{grey} & ä & \texttt{\cmd{\IeC\textvisiblespace}\{\cmd{\"a}\}} & & ä & \texttt{ä}\\
+% & æ & \texttt{\cmd{\IeC\textvisiblespace}\{\cmd{\ae\textvisiblespace}\}}
+% & & æ & \texttt{æ}\\\bottomrule
% \end{tabular}
% \end{center}
+%
% One can test for this change and take different approaches with:
-% \begin{quote}
+% \begin{quote}\small
% \cmd{\IfFileExists\{utf8-2018.def\}}\marg{yes}\marg{no}
% \end{quote}
+%
% One also should look at the entries in the \texttt{.idx} or \texttt{.ind} files to see how the name arguments and other index entry components are turned into index entries. If there are entries that do not work, one can find the corresponding page numbers in order to identify the problem.
%
-% Extra spaces\Warn{} are significant when sorting index entries, yet usually are not significant in the body text. Hidden spaces, tokens, macros, and control sequences create unique index entries that look similar, yet expand and sort differently. Some macros can add spaces to index entries. For example, index tags in this manual that include \cmd{\dag} show up as \cmd{\dag\textvisiblespace\textvisiblespace} in the index (two trailing spaces). Below we show a general form of macro that adds extra spaces to index entries:
+% Extra spaces\Warn{} are significant when sorting index entries, yet usually are not significant in the body text. Hidden spaces, tokens, macros, and control sequences create unique index entries that look similar, yet expand and sort differently. Some macros can add spaces to index entries.
+%
+% This is not an issue with the \textsf{nameauth} package as such. Rather, it stems from the use of \cmd{\protected@edef}. This package requires \cmd{\protected@edef} in any situation where the macros that generate index entries are written to the \texttt{aux} file for execution there, such as in the \textsf{memoir} class. Without \cmd{\protected@edef}, any active Unicode characters would start expanding, thus making different index entries than those one might make by hand. Since we do not want a ``package way'' to index names and a ``regular way'' that is different and hard to integrate with the ``package way'', this is an unavoidable necessity.
+% \newpage
+%
+% Below we show the general minimal working example:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
%\newcommand\Idx[1]{%
% \protected@edef\arg{#1}%
% \index{\arg}}\end{verbatim}
-% \end{quote}
+% \medskip
%
-% \begin{center}\MyStretch\footnotesize
-% \begin{tabular}{l>{\hspace{-1em}\arrow\ }l}\toprule
-% |\Idx{\textsc{football}}| & \cmd{\indexentry}\texttt{\{\cmd{\textsc\textvisiblespace\textvisiblespace}\{football\}\}\{}\meta{page}\texttt{\}}\\
-% \rowcolor{black!7!white}|\index{\textsc{football}}| & \cmd{\indexentry}\texttt{\{\cmd{\textsc}\{football\}\}\{}\meta{page}\texttt{\}}\\\bottomrule
-% \end{tabular}
-% \end{center}\egroup
+% The macro \cmd{\Idx\{}\cmd{\textsc\{football\}\}} produces:\\
+% \hbox{}\qquad\cmd{\indexentry}\texttt{\{\cmd{\textsc\textvisiblespace\textvisiblespace}\{football\}\}\{}\meta{page}\texttt{\}}\\[1ex]
+% The macro \cmd{\index\{}\cmd{\textsc\{football\}\}} produces:\\
+% \hbox{}\qquad\cmd{\indexentry}\texttt{\{\cmd{\textsc}\{football\}\}\{}\meta{page}\texttt{\}}
+% \end{quote}
+%
+% The debugging macros will not help at this point. We must inspect the \texttt{idx} file. The problem with the debugging macros is that they show how an index entry will appear on the page, more or less, but not how it will appear in the \texttt{idx} file, which determines sorting.
%
% \ReturnLink
%
@@ -3193,14 +3071,17 @@ the README.txt or README for more information.
% This macro creates a tag appended to all index entries for a corresponding \cmd{\Name}.
% \DescribeMacro{\UntagName}
% The tag persists until one changes it with \cmd{\TagName} or destroys it with \cmd{\UntagName}.
-% Tags can include life dates, regnal dates, and other information. Both \cmd{\TagName} and \cmd{\UntagName} handle their arguments like \cmd{\IndexName}:
+% Tags can include life dates, regnal dates, and other information. Both \cmd{\TagName} and \cmd{\UntagName} have \emph{global scope} and handle arguments like \cmd{\IndexName}:
% \begin{quote}
-% \fbox{\vbox{\hbox{\mystrut\ \cmd{\TagName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{tag} }\par
-% \hbox{\mystrut\ \cmd{\UntagName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }}}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\TagName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{tag}\vspace{-2pt}\\
+% {\Large\strut}\cmd{\UntagName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
-% \newpage
-%
-% All the indexing macros are keyed to the name patterns. \cmd{\PretagName} generates the leading sort key. \cmd{\TagName} and \cmd{\UntagName} affect the trailing content:
+%
+% All the indexing macros are keyed to the name patterns. \cmd{\PretagName} generates the leading sort key. \cmd{\TagName} and \cmd{\UntagName} affect the trailing content. The following graphic illustrates the ``segments'' of an index entry and the \textsf{nameauth} macros that affect the respective segments:
%
% \begin{center}\small\MyStretch
% \begin{tabular}{r@{\,\vrule width0.5pt\,}c@{\,\vrule width0.5pt\,}c@{\,\vrule width0.5pt\,}l}
@@ -3210,29 +3091,25 @@ the README.txt or README for more information.
% & & & \quad\cmd{\UntagName}\\
% \end{tabular}
% \end{center}
-% \noindent
%
-% Tags\Info{scholarly\break helps} created by \cmd{\TagName} can be helpful in the indexes of academic texts by adding dates, titles, etc. \cmd{\TagName} causes the \textsf{nameauth} indexing macros to append ``\texttt{,\textvisiblespace pope}'' to the index entries for the popes below:
-% \begin{quote}\small
+% Tags\Info{Scholarly\break helps} created by \cmd{\TagName} can be helpful in the indexes of academic texts by adding dates, titles, etc. \cmd{\TagName} causes the \textsf{nameauth} indexing macros to append ``\texttt{,\textvisiblespace pope}'' to the index entries created below:
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern{Gregory, I}!TAG\break \ShowPattern{Gregory, I}!MN\break \ShowPattern{Gregory, the Great}!PN}\vspace{-5ex}
% \StartNum
% \begin{verbatim}
-%\TagName{Leo, I}{, pope}
%\TagName{Gregory, I}{, pope}
-%Pope \Name{Leo, I} was known as \AKA{Leo, I}{Leo, the Great}.\\
-%Pope \Name{Gregory, I} was known as \Name{Gregory, I}
-%``\ForceFN\AKA*{Gregory, I}{Gregory, the Great}.''\end{verbatim}
+%Pope \Name*{Gregory, I} was known as \Name{Gregory, I}
+%``the Great''.\IndexRef{Gregory, the Great}{Gregory I}\end{verbatim}
%
% \smallskip
-% Pope \Name{Leo, I} was known as \AKA{Leo, I}{Leo, the Great}.\\
-% Pope \Name{Gregory, I} was known as \Name{Gregory, I}
-% ``\ForceFN\AKA*{Gregory, I}{Gregory, the Great}.''
+% Pope \Name*{Gregory, I} was known as \Name{Gregory, I}
+% ``the Great''.\IndexRef{Gregory, the Great}{Gregory I}
% \end{quote}
%
-% \cmd{\TagName} works with all names, but not with cross-references from \cmd{\IndexRef}, \cmd{\AKA}, etc. (cf. Sections~\ref{sec:IndexXref}, \ref{sec:AKA}). Tags also can be daggers, asterisks, and so on. For example, all fictional names in the index of this manual are tagged with \S. One must add any desired spaces to the start of the tag.\medskip
+% \cmd{\TagName} works with all names, but not with cross-references from \cmd{\IndexRef}, \cmd{\AKA}, etc. (cf. Sections~\ref{sec:GeneralIndex}, \ref{sec:AKA}). Tags also can be daggers, asterisks, and so on. For example, all fictional names in the index of this manual are tagged with \S. One must add any desired spaces to the start of the tag.\medskip
%
-% We\Info{same name\break game} can format and index one name as two different people with \cmd{\TagName} and \cmd{\ForgetThis} (Section~\ref{sec:NameControl}). The index tags group together their respective entries. In a normal \LaTeX\ document one would write, e.g.:
+% We\Info{Same name\break game} can format and index one name as two different people with \cmd{\TagName} and \cmd{\ForgetThis} (Section~\ref{sec:NameControl}). The index tags group together their respective entries. In a normal \LaTeX\ document one would write, e.g.:
%
-% \begin{quote}\small
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern[E.]{Humperdinck}!TAG\break \ShowPattern[E.]{Humperdinck}!MN}\vspace{-4.5ex}
% \StartNum
% \begin{verbatim}
%\TagName[E.]{Humperdinck}{ (composer)}
@@ -3253,13 +3130,12 @@ the README.txt or README for more information.
% \ForgetThis\Name[E.]{Humperdinck}[Engelbert].
% \end{quote}
%
-% One\Info{special tags} can use \cmd{\TagName} to create ``special'' index entries for names with the general form \cmd{\TagName\{}\meta{Name}\texttt{\}\{\textbar}\meta{Macro}\texttt{\}}, when \cmd{\def}\texttt{\textbackslash}\meta{Macro}\texttt{\#1\{\#1\}} exists. These\Version{3.3} tags are compatible with \textsf{hyperref}.\footnote{Before version 3.3 these special tags did not work with \textsf{hyperref}. The fix was inspired by the answer of \Name[Heiko]{Oberdiek} in: \url{https://tex.stackexchange.com/questions/201720/index-produces-invalid-idx-entry-with-manual-style-commaparse-hyperref}}
+% One\Info{Special tags} can use \cmd{\TagName} to create ``special'' index entries for names with the general form \cmd{\TagName}\meta{name args}\texttt{\{\textbar}\meta{Macro}\texttt{\}},\Version{3.3} when \cmd{\def}\texttt{\textbackslash}\meta{Macro}\texttt{\#1\{\#1\}} exists. These tags are compatible with \textsf{hyperref}.\footnote{Before version 3.3 these special tags did not work with \textsf{hyperref}. The fix was inspired by \Name*[Heiko]{Oberdiek} in \href{https://tex.stackexchange.com/questions/201720/index-produces-invalid-idx-entry-with-manual-style-commaparse-hyperref}{this question}.}
+%
+% For example, using the \textsf{ltxdoc} class with \textsf{hypdoc} does not create hyperlinked page entries with \textsf{nameauth}. This behavior does not affect normal \LaTeX\ documents that use \textsf{nameauth} and \textsf{hyperref}. In this manual we had to tag every name with \cmd{\TagName}\meta{name args}\texttt{\{\textbar hyperpage\}} in the driver section of the \texttt{dtx} file.
+%
+% In the ``commented'' package documentation part of a \texttt{dtx} file, the vertical bar is active. This adds an extra layer of complexity. Index tags in the documentation part must use the form: \cmd{\TagName}\meta{name args}\texttt{\{}\cmd{\string}\texttt{\textbar hyperpage\}}.
%
-% For example, using the \textsf{ltxdoc} class with \textsf{hypdoc} does not create hyperlinked page entries with \textsf{nameauth}. This behavior does not affect normal \LaTeX\ documents that use \textsf{nameauth} and \textsf{hyperref}. When creating this manual, we had to tag every name with: \cmd{\TagName\{}\meta{Name}\}\texttt{\{\textbar hyperpage\}} in the driver section of the \texttt{dtx} file.
-%
-% In the ``commented'' package documentation part of a \texttt{dtx} file, the vertical bar is active. This adds an extra layer of complexity. Index tags in the documentation part must use the form: \cmd{\TagName\{}\meta{Name}\texttt{\}\{}\cmd{\string}\texttt{\textbar hyperpage\}}.
-% \newpage
-%
% Below we use the conventions of this manual to create a special tag:
% \begin{quote}\small
% \StartNum
@@ -3268,15 +3144,20 @@ the README.txt or README for more information.
%\TagName[Lost]{Name}{\,\S|Orphan{perdit}}
%\Name[Lost]{Name}\end{verbatim}
%
-% \smallskip
-% \MyStretch\Name[Lost]{Name}\\
+% \smallskip\MyStretch
+% \Name[Lost]{Name}\\
% \texttt{idx} file: |\indexentry{Name, Lost\,\S |\texttt{\textbar}|Orphan{perdit}}{|\meta{page}|}|\\
% \texttt{ind} file: |\item Name, Lost\,\S \pfill \Orphan{perdit}{|\meta{page}|}|
% \end{quote}
%
-% The \textsf{microtype} package and its \texttt{Spacing} environment may be the best solution to fix index entries and sub-entries that break badly across columns or pages. Suppose, however, that we wanted to insert manual breaks into an index at will, preferably after the final page reference in an entry.
+% When \cmd{\IndexRef}\Info{Error\break prevention} calls \cmd{\@nameauth@Index}, a tag of the form \meta{some text}\texttt{\textbar}\meta{some macro} is reduced to \meta{some text}, allowing a new \texttt{\textbar}\meta{cross-reference} macro to be added. This keeps cross-references from breaking.\medskip
+%
+% The \textsf{microtype}\Info{Manual breaks\break and entries} package and its \texttt{Spacing} environment may be the best solution to fix index entries and sub-entries that break badly across columns or pages. Suppose, however, that we wanted to insert manual breaks into an index at the very end of the editing and proofreading passes. That is fairly easy to do.
+%
+% We cannot just insert something like \cmd{\newpage} or \cmd{\columnbreak} directly into an index. Instead, we create a helper macro that takes an argument and adds a break after that argument. That is, for example, how macros like \cmd{\textbf} use implied page references: \cmd{\index\{Doe, John\string|textbf\}}.
%
-% We cannot just insert something like \cmd{\newpage}. In order to accomplish our goal, we need a helper macro that can take an argument. Below we use \cmd{\newpage}, but if we instead make use of the \textsf{multicol} or \textsf{idxlayout} packages we can replace that with \cmd{\columnbreak}. Two macros illustrate a similar concept:
+% Below we use \cmd{\newpage}, but if we instead make use of the \textsf{multicol} or \textsf{idxlayout} packages we can replace that with \cmd{\columnbreak}. On line 1 we define the \cmd{\Endbreak} macro that will break the index page or column at the end of an entry. On line 3 we do the same for somewhere in the middle of an index entry. In the latter case there will be a comma that we must \cmd{\@gobble} after a page reference:
+%
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -3286,27 +3167,36 @@ the README.txt or README for more information.
%\makeatother\end{verbatim}
% \end{quote}
%
-% Putting a break into the middle of an index entry is quite sketchy and probably should be avoided, but it can be done by using \cmd{\@gobble} to eat the comma after the break. Instead, breaking after the entry is preferable. That entry is a list of page numbers corresponding to several pages:
-% \begin{quote}
-% (page 10) \cmd{\Name\{Some, Name\}}\\
-% \dots\\
-% (page 15) \cmd{\Name\{Some, Name\}}\\
-% \dots\\
-% (page 18) \cmd{\TagName\{Some, Name\textbar EndBreak\}\%}\\
-% \hphantom{(page 18)} \cmd{\Name\{Some, Name\}}
-% \end{quote}
+% Using \cmd{\MidBreak} to insert a break into the middle of an index entry does work to some extent, but what it does is quite sketchy and error-prone. We avoid using it for these reasons, but we just wanted to show that it can be done.
%
-% If all instances of \cmd{\Name\{Some, Name\}} on page 18 have the same tag, there will be no duplicate page entries, \textsf{hyperref} will work, and the index will break after:
-% \begin{quote}
-% \texttt{Some Name \dots\ 10, 15, 18}
+% Instead, we use \cmd{\EndBreak} after the last page in a given entry. This method works for manual index entries and for the \textsf{nameauth} macros. If all instances of \cmd{\Name\{Some, Name\}} on page 18 have the same tag, there will be no duplicate page entries, hyperlinks will work, and the index will break as indicated:
+%
+% \begin{quote}\footnotesize\MyStretch
+% \begin{tabular}{p{0.055\textwidth}@{\ }p{0.4\textwidth}@{\ }l}\toprule
+% Page & Macro & Index Result\\\midrule
+% \rowcolor{grey}10 & \cmd{\Name\{Some, Name\}}\dotfill \hbox{} & Some Name, 10\\
+% \rowcolor{grey} & \cmd{\index\{Topic\}}\dotfill \hbox{} & Topic, 10\\
+% 15 & \cmd{\Name\{Some, Name\}}\dotfill \hbox{} & Some Name, 10, 15\\
+% & \cmd{\index\{Topic\}}\dotfill \hbox{} & Topic, 10, 15\\
+% \rowcolor{grey}18 & \cmd{\TagName\{Some, Name\textbar EndBreak\}\%} & \\
+% \rowcolor{grey} & \cmd{\Name\{Some, Name\}}\dotfill \hbox{} & Some Name, 10, 15, 18\meta{break}\\
+% \rowcolor{grey} & \cmd{\index\{Topic\textbar EndBreak\}}\dotfill \hbox{} & Topic, 10, 15, 18\meta{break}\\
+% \end{tabular}
% \end{quote}
-%
-% We\Info{manual entries} can use the same macros in manual index entries. We may need to look at the \texttt{idx} or \texttt{ind} files to craft matching entries on the page that corresponds to the placement of the break:\footnote{Results vary, depending on what distribution of \LaTeX\ is being used and how old it is. As we saw in the previous section, any name with active characters needs to be handled differently before 2018 than after 2018.}
-% \begin{quote}
-% (page 18) \cmd{\SkipIndex}\cmd{\Name\{Some, Name\}\%}\\
-% \hphantom{(page 18)} \cmd{\index\{Some Name\textbar EndBreak\}}
+%
+% We do not have to supply an argument to \cmd{\EndBreak} because, as with the font switching example above, the page reference is implied.
+%
+% We can intermix \textsf{nameauth} macros with manual index entries. We may need to look at the \texttt{idx} or \texttt{ind} files to craft matching entries on the page where the break occurs. Instead of using \cmd{\TagName}, we can do this:
+%
+% \begin{quote}\footnotesize\MyStretch
+% \begin{tabular}{p{0.055\textwidth}@{\ }p{0.4\textwidth}@{\ }l}
+% 18 & \cmd{\SkipIndex}\cmd{\Name\{Some, Name\}\%}\hfill\hbox{} & \\
+% & \cmd{\index\{Some Name\textbar EndBreak\}}\dotfill \hbox{} & Some Name, 10, 15, 18\meta{break}\\\bottomrule
+% \end{tabular}
% \end{quote}
-%
+%
+% Results for manual entries may vary, depending on what distribution of \LaTeX\ is being used and how old it is. As we saw in the previous section, any name with active characters needs to be handled differently before 2018 than after 2018. All instances of \cmd{\index\{Some Name\textbar EndBreak\}} must fall on the same page.
+%
% \ReturnLink
% \newpage
%
@@ -3316,22 +3206,30 @@ the README.txt or README for more information.
% \DescribeMacro{\NameAddInfo}
% Unlike index tags, ``text tags'' are not printed automatically with every name managed by \textsf{nameauth}. Sections~\ref{sec:NameTests} and~\ref{sec:Hooksii} have more examples. The macro is \cmd{\long}, allowing for some complexity in the \meta{tag} argument:
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\NameAddInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{tag} }
-% \end{quote}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\NameAddInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{tag}\\
+% \end{tabular}
+% }
+% \end{quote}\PatInfo{\ShowPattern[George]{Washington}!DB\break \ShowPattern[George]{Washington}!MN}
%
-% For example, |\NameAddInfo[George]{Washington}{(1732--99)}|\NameAddInfo[George]{Washington}{(1732--99)} makes a text tag but does not print whenever \cmd{\Wash} ``\Wash'' is used.\medskip
+% For example, |\NameAddInfo[George]{Washington}{(1732--99)}|\NameAddInfo[George]{Washington}{(1732--99)} makes a text tag but does not print whenever \cmd{\Wash} \Wash\ is used.\medskip
%
% \DescribeMacro{\NameQueryInfo}
% To print the text tag macro associated with a name, we use \cmd{\NameQueryInfo}, which calls the appropriate macro in the name info data set:
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\NameQueryInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\NameQueryInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
%
% \NameAddInfo[Ulysses S.]{Grant}{(president from 1869 to 1877)}
% \NameAddInfo[Schuyler]{Colfax}{\footnote{He was the seventeenth
% US vice-president, holding office during the first term (1869--73)
% of \Name[Ulysses S.]{Grant} \NameQueryInfo[Ulysses S.]{Grant}.}}
-% |\NameQueryInfo[George]{Washington}| expands to \NameQueryInfo[George]{Washington}. One can insert a space at its start or use signs like asterisks, daggers, and even footnotes, such as one for \Name[Schuyler]{Colfax}.\NameQueryInfo[Schuyler]{Colfax} Below is the source for footnote \arabic{footnote}:
+% |\NameQueryInfo[George]{Washington}|\PatInfo{\ShowPattern[George]{Washington}!DB\break \ShowPattern[Ulysses S.]{Grant}!DB\break \ShowPattern[Schuyler]{Colfax}!DB\break \ShowPattern[Schuyler]{Colfax}!MN\break \ShowPattern[Ulysses S.]{Grant}!MN} expands to \NameQueryInfo[George]{Washington}. One can insert a space at its start or use signs like asterisks, daggers, and even footnotes, such as one for \Name[Schuyler]{Colfax}.\NameQueryInfo[Schuyler]{Colfax} Below is the source for footnote \arabic{footnote}:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -3343,13 +3241,13 @@ the README.txt or README for more information.
% \texttt{\dots}|\Name[Schuyler]{Colfax}.\NameQueryInfo[Schuyler]{Colfax}|
% \end{quote}
%
-% Since\Warn{} one can nest ``text tags'' or have them call each other, one can build complex relations. Yet one must protect against a stack overflow by using Boolean flags to stop the recursion:
+% One can\Warn{} nest ``text tags'' and have them call each other. Therefore, one must protect against a stack overflow by using Boolean flags to stop the recursion:
% \begin{quote}\small
% \newif\ifA
% \newif\ifB
-% \NameAddInfo{A}{%^^A
+% \NameAddInfo{A}{^^A
% \Atrue A \ifB Stop \else \NameQueryInfo{B} \fi \Afalse}
-% \NameAddInfo{B}{%^^A
+% \NameAddInfo{B}{^^A
% \Btrue B \ifA Stop \else \NameQueryInfo{A} \fi \Bfalse}
% \StartNum
% \begin{verbatim}
@@ -3361,27 +3259,644 @@ the README.txt or README for more information.
% \Btrue B \ifA Stop \else \NameQueryInfo{A} \fi \Bfalse}\end{verbatim}
% \medskip
%
-% \begin{tabular}{@{}l@{ \(\rightarrow\) }l}
+% \MyStretch\begin{tabular}{@{}l@{ \(\rightarrow\) }l}
% \cmd{\NameQueryInfo\{A\}} & \NameQueryInfo{A}\\
% \cmd{\NameQueryInfo\{B\}} & \NameQueryInfo{B}\\
% \end{tabular}
% \end{quote}
-%
+%
% \DescribeMacro{\NameClearInfo}
% \cmd{\NameAddInfo} will replace one text tag with another text tag, but it does not delete a text tag. That is the role of \cmd{\NameClearInfo}. The syntax is:
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\NameClearInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
+% \end{quote}
+%
+% After using\PatInfo{\ShowPattern[George]{Washington}!DB} |\NameClearInfo[George]{Washington}|\NameClearInfo[George]{Washington}, the next attempt to query the tag |\NameQueryInfo[George]{Washington}| will produce nothing\NameQueryInfo[George]{Washington}.
+%
+% \ReturnLink
+% \newpage
+%
+% \subsection{Basic Formatting}
+% \label{sec:Formatting}
+%
+% Below are color-coded forms and formats of names, showing most (but not all) of the variations that can occur. The next several sections will explain such variations (and quite a few more) in detail:\medskip
+%
+% \begin{tcolorbox}[colframe=naslate,sidebyside,lower separated=true,adjusted title={\hfil Full Forms, Front Matter\hspace{5em} Short Forms, Front matter}]\centering
+% {\cmd{\NamesInactive}}\NamesInactive
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil First Use (Default)}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name} & \ForgetThis\Pat\\
+% & \ForgetThis\Eliz\\
+% & \ForgetThis\Yamt\\
+% & (cf. Section~\ref{sec:NameControl})\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\texttt{*} or \cmd{\L}\meta{macro})}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name*} & \LPat\\
+% & \LEliz\\
+% & \LYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Long, with \cmd{\DropAffix}}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\DropAffix}\cmd{\L}\meta{macro}\\ \SubvertThis\DropAffix\LPat\\
+% \end{tabular}
+% \end{tcolorbox}
+% \tcblower\centering
+% {\cmd{\NamesInactive}}\NamesInactive
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (Default)}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name} & \SubvertThis\Pat; \SubvertThis\Eliz\\
+% & \SubvertThis\Yamt\\
+% \cmd{\FName}, & \SubvertThis\SPat; \SubvertThis\SEliz\\
+% \cmd{\S}\meta{macro} & \SubvertThis\SYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceName})}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name} & \SubvertThis\ForceName\Pat; \SubvertThis\ForceName\Eliz\\
+% & \SubvertThis\ForceName\Yamt\\
+% \cmd{\FName}, & \SubvertThis\ForceName\SPat; \SubvertThis\ForceName\SEliz\\
+% \cmd{\S}\meta{macro} & \SubvertThis\ForceName\SYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceFN})}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\FName}, \cmd{\S}\meta{macro} & \SubvertThis\ForceFN\SYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \end{tcolorbox}
+% \vfil
+% \begin{tcolorbox}[colframe=naslate,sidebyside,lower separated=true,adjusted title={\hfil Full Forms, Main Matter\hspace{5em} Short Forms, Main Matter}]\centering
+% \cmd{\NamesActive}\NamesActive
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil First Use (Default)}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name} & \ForgetThis\Pat\\
+% & \ForgetThis\Eliz\\
+% & \ForgetThis\Yamt\\
+% & (cf. Section~\ref{sec:NameControl})\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\texttt{*} or \cmd{\L}\meta{macro})}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name*} & \LPat\\
+% & \LEliz\\
+% & \LYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Long, with \cmd{\DropAffix}}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\DropAffix}\cmd{\L}\meta{macro}\\ \SubvertThis\DropAffix\LPat\\
+% \end{tabular}
+% \end{tcolorbox}
+% \tcblower\centering
+% \cmd{\NamesActive}\NamesActive
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (Default)}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name} & \SubvertThis\Pat; \SubvertThis\Eliz\\
+% & \SubvertThis\Yamt\\
+% \cmd{\FName}, & \SubvertThis\SPat; \SubvertThis\SEliz\\
+% \cmd{\S}\meta{macro} & \SubvertThis\SYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceName})}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\Name} & \SubvertThis\ForceName\Pat; \SubvertThis\ForceName\Eliz\\
+% & \SubvertThis\ForceName\Yamt\\
+% \cmd{\FName}, & \SubvertThis\ForceName\SPat; \SubvertThis\ForceName\SEliz\\
+% \cmd{\S}\meta{macro} & \SubvertThis\ForceName\SYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \begin{tcolorbox}[left=2mm,right=2mm,bottom=1mm,colback=white,adjusted title={\sffamily\bfseries\hfil Later Use (\cmd{\ForceFN})}]\small
+% \begin{tabular}{@{}ll@{}}
+% \cmd{\FName}, \cmd{\S}\meta{macro} & \SubvertThis\ForceFN\SYamt\\
+% \end{tabular}
+% \end{tcolorbox}
+% \end{tcolorbox}
+% \newpage
+%
+% Since\Info{Naming system\break behavior} formatting is related closely to name usage (the existence of a name control sequence), we use similar descriptors for these distinct topics. A name's classification, elements, and control sequence are determined in the syntactic element layer. A name's displayed form is determined in the name display layer. Finally, a name's typographic form is determined by the format hook dispatcher and formatting hooks. Here is the general layout:
+%
+% \begin{tcolorbox}[colframe=naslate,colback=white,adjusted title={\bfseries Syntactic Element Layer}]
+% \cmd{\@nameauth@Parse}: Determine name category, capitalization, punctuation, elements to be used, and pass on to\dots
+% \begin{tcolorbox}[colframe=nablue,adjusted title={\sffamily\bfseries Name Display Layer}]
+% \cmd{\@nameauth@NonWest}: Consult rules, construct displayed form.\\
+% \cmd{\@nameauth@West}: Consult rules, construct displayed form.\\
+% \cmd{\@nameauth@Form}: ``Magic Eight Ball'' of rules for name forms. Includes checking if a name control sequence exists, checking which is the calling macro, and so on.
+% Pass the information to\dots
+% \begin{tcolorbox}[colframe=nared,colback=white,adjusted title={\sffamily\bfseries Format Hook Dispatcher}]
+% \cmd{\@nameauth@Hook}: Check the name to be printed for a final full stop. Check which naming system we are using. Call a formatting hook to print the name in the text.
+% \end{tcolorbox}
+% \end{tcolorbox}
+% \cmd{\@nameauth@Parse}: Instantiate name control sequence.
+% \end{tcolorbox}
+%
+% The different forms and formats seen on the previous page are a result of all three layers interacting. Sections~\ref{sec:Formatting} and~\ref{sec:AltFormat} (with its subsections) deal mostly with the format hook dispatcher and formatting hooks, but they also interact with the name display layer. Section~\ref{sec:NameDecisions} (with its subsections) deals mostly with the syntactic element and name display layers, but also in some cases with the format hook dispatcher and formatting hooks. The following concepts flow from this layout and affect both form and formatting:
+% \begin{itemize}
+% \item \textbf{Name first use}
+% \begin{itemize}
+% \item No name control sequence exists.
+% \item A name is printed with its long form (default).
+% \item The ``first-use'' formatting hook is used (default).
+% \item When the name is printed, a name control sequence is created.
+% \end{itemize}
+% \item \textbf{Name subsequent use}
+% \begin{itemize}
+% \item A name control sequence already exists.
+% \item A name is printed using a shorter form (default).
+% \item The ``subsequent-use'' formatting hook is used (default).
+% \end{itemize}
+% \end{itemize}
+%
+% The parser and related macros create name forms and formats only in the text. Macros in name arguments affect both text and index (Section~\ref{sec:AltFormat}).\medskip
+%
+% \DescribeMacro{\NamesActive}
+% Independent ``main-matter'' and ``front-matter'' systems are used to format first and subsequent name uses.
+% \DescribeMacro{\NamesInactive}
+% \cmd{\NamesInactive} and the \texttt{frontmatter} option enable the front-matter system. \cmd{\NamesActive}
+% switches names to the main-matter system. The \texttt{mainmatter} option is the default setting for names.
+% \medskip
+%
+% These\Info{\cmd{\global}} two macros can be used explicitly as a pair or singly within an explicit local scope. Use \cmd{\global} to force a global effect.\medskip
+%
+% \DescribeMacro{\NamesFormat}
+% The main-matter system uses \cmd{\NamesFormat} to post-process first occurrences of names and
+% \DescribeMacro{\MainNameHook}
+% \cmd{\MainNameHook} for subsequent uses. The front-matter system uses \cmd{\FrontNamesFormat}
+% \DescribeMacro{\FrontNamesFormat}
+% for first uses and \cmd{\FrontNameHook} for subsequent uses. The \texttt{alwaysformat}
+% \DescribeMacro{\FrontNameHook}
+% option causes only \cmd{\NamesFormat} and \cmd{\FrontNamesFormat} to be used.\footnote{The names of these macros grew from \cmd{\NamesFormat}, originally the only formatting hook.}
+% Section~\ref{sec:NamePatterns} shows how name control sequences are keyed either to the main-matter system or to the front-matter system.
+% The two formatting systems are distinct, useful for separate document elements. We color-code them below:\smallskip
+%
+% \begin{center}\small\vspace{2ex}\PatInfo{\textrm{front-matter}\hfill\break \ShowPattern[Rudolph]{Carnap}!NF\break \ShowPattern[Nicolas]{Malebranche}!NF\break \textrm{main-matter}\hfill\break \ShowPattern[Rudolph]{Carnap}!MN\break \ShowPattern[Nicolas]{Malebranche}!MN}\vspace{-2ex}\MyStretch
+% \NamesInactive
+% \begin{tabular}{ll}\toprule
+% Front-matter system: & \cmd{\NamesInactive}\\\midrule
+% \rowcolor{grey}|\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
+% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
+% \rowcolor{grey}|\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
+% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\\bottomrule
+% \end{tabular}\\[4ex]
+%
+% \NamesActive
+% \begin{tabular}{ll}\toprule
+% Main-matter system: & \cmd{\NamesActive}\\\midrule
+% \rowcolor{grey}|\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
+% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
+% \rowcolor{grey}|\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
+% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\\bottomrule
+% \end{tabular}
+% \end{center}
+%
+% We achieved that color coding using the following macros and the \textsf{xcolor} package:
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\renewcommand*\FrontNamesFormat[1]{\color{red}\sffamily #1}
+%\renewcommand*\FrontNameHook[1]{\color{darkgray}\sffamily #1}
+%\renewcommand*\NamesFormat[1]{\color{blue}\sffamily #1}
+%\renewcommand*\MainNameHook[1]{\sffamily #1}\end{verbatim}
+% \end{quote}
+%
+% \DescribeMacro{\ForceName}
+% We show examples of \cmd{\ForceName} in Sections~\ref{sec:NameControl}, \ref{sec:AKA}, and~\ref{sec:Hooksii}. Use this prefix macro to force ``first use'' formatting for the next \cmd{\Name}, etc.,\Version{3.1} but without changing any name control sequences. Thus:
% \begin{quote}\small
-% \fbox{\mystrut\ \cmd{\NameClearInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate} }
+% \hphantom{\cmd{\ForceName}}\PatInfo{\ShowPattern[Rudolph]{Carnap}!MN}\cmd{\Name[Rudolph]\{Carnap\}} \Name[Rudolph]{Carnap}\\
+% \cmd{\ForceName}\cmd{\Name[Rudolph]\{Carnap\}} \ForceName\Name[Rudolph]{Carnap}
% \end{quote}
%
-% After using |\NameClearInfo[George]{Washington}|\NameClearInfo[George]{Washington}, the next attempt to query the tag |\NameQueryInfo[George]{Washington}| will produce nothing\NameQueryInfo[George]{Washington}.\footnote{Had any information from a text tag been present, it would have appeared between ``nothing'' and the full stop.}
+% Below\Info{\texttt{alwaysformat}} we simulate \texttt{alwaysformat} via package internals:
+% \makeatletter\@nameauth@AlwaysFormattrue\makeatother%
+% \ForgetName[M.T.]{Cicero}\ForgetName{Elizabeth, I}%
+% \begin{itemize}
+% \item Front matter: \NamesInactive \Name[Albert]{Einstein}, \Name[Albert]{Einstein}; \Name{Confucius}, \Name{Confucius}.\\ Patterns: \texttt{\ShowPattern[Albert]{Einstein}!NF \ShowPattern{Confucius}!NF}
+% \item Main matter: \NamesActive \Name[M.T.]{Cicero}, \Name[M.T.]{Cicero}; \Name{Elizabeth, I}, \Name{Elizabeth, I}.\\ Patterns: \texttt{\ShowPattern[M.T.]{Cicero}!MN \ShowPattern{Elizabeth, I}!MN}
+% \end{itemize}
+% \makeatletter\@nameauth@AlwaysFormatfalse\makeatother
+% \newpage
+%
+% The name parser\Info{Hook caveats} determines what syntactic name elements exist and how they are constituted. It passes that information to macros that determine the form of non-Western or Western names to be displayed. They in turn call the format hook dispatcher for post-processing, which calls the formatting hooks using the pattern:
+% \begin{quote}\small
+% \cmd{\bgroup}\meta{Hook}\texttt{\{\#1\}}\cmd{\egroup}.
+% \end{quote}
+% Thus, one can create hooks that take either no arguments or one argument, e.g.:
+% \begin{quote}\small\MyStretch
+% \cmd{\renewcommand*}\cmd{\NamesFormat\{}\meta{content}\texttt{\}}\\
+% \cmd{\renewcommand*}\cmd{\NamesFormat[1]\{}\meta{content}\texttt{\}}
+% \end{quote}
+% A hook that takes one argument can discard it and invoke \cmd{\NameParser} (Page~\pageref{page:Intermediate}). Due to the dispatcher design, both the following achieve the same effect, giving the choice of non-robust and robust forms:
+% \begin{quote}\small\MyStretch
+% \cmd{\renewcommand*}\cmd{\NamesFormat\{}\cmd{\itshape}\texttt{\}}\\
+% \cmd{\renewcommand*}\cmd{\NamesFormat\{}\cmd{\textit}\texttt{\}}
+% \end{quote}
+%
+% The\Info{Applied to\break footnotes} independent systems of names work with footnotes. Names in the body text, such as \Harnack, normally affect name forms in the footnotes.\footnote{We have \Harnack\ from \cmd{\Harnack} instead of \ForgetThis\Harnack.}
+% In footnote \arabic{footnote} \cmd{\MainNameHook} is called instead of \cmd{\NamesFormat} because \Harnack\ already had occurred above. We can use the front-matter system to change that:
+% \makeatletter
+% \let\@oldfntext\@makefntext
+% \long\def\@makefntext#1{\NamesInactive\@oldfntext{#1}\NamesActive}
+% \makeatother
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern[Adolf]{Harnack}!MN\break \ShowPattern[Adolf]{Harnack}!NF}\vspace{-5ex}
+% \StartNum
+% \begin{verbatim}
+%\begingroup
+%\makeatletter
+%\let\@oldfntext\@makefntext
+%\long\def\@makefntext#1{\NamesInactive\@oldfntext{#1}\NamesActive}
+%\makeatother\end{verbatim}
+% \end{quote}
%
+% When we create another footnote, we see very different results.\footnote{We have \Harnack\ from \cmd{\Harnack}, then \Harnack.}
+% Footnote \arabic{footnote} shows a different result. One can synchronize the two systems with \cmd{\ForgetThis} and \cmd{\SubvertThis} (Section~\ref{sec:NameControl}). Below we revert footnotes with:
+% \makeatletter
+% \let\@makefntext\@oldfntext
+% \makeatother
+% \begin{quote}\small
+% \ContinueNum
+% \begin{verbatim}
+% \makeatletter
+% \let\@makefntext\@oldfntext
+% \makeatother\end{verbatim}
+% \end{quote}
% \ReturnLink
+% \vfill
+%
+% \begingroup^^A Local format hook redefinition
+% \AltFormatActive
+% \begin{verse}
+% Eyn Chriſten menſch iſt eyn freyer herr / über alle ding /\\
+% \qquad und niemande unterthan.\\
+% Eyn Chriſten menſch iſt eyn dienſtpar knecht aller ding\\
+% \qquad und yderman unterthan.\\[1ex]\hfill---\Luth, \textit{Von der Freiheit eines Christenmenschen}
+% \end{verse}
+% \newpage
+%
+% \subsection{Alternate Formatting}
+% \label{sec:AltFormat}
+%
+% \noindent The\Info{In this section, the name patterns do not fit in the margin.} formatting hooks only affect names in the body text. Continental formatting occurs in both the text and in the index. One needs to format those names with macros in the name arguments.
+%
+% We already saw the use of macros in name arguments for Roman names (page~\pageref{page:Romani}). We did not use alternate formatting there because we knew that we would not use an \meta{SNN}\texttt{,}\meta{Affix} pair; we would not use \cmd{\CapThis}; and we used \cmd{\noexpand} before the macros in the arguments.
+%
+% In larger contexts, however, these constraints might not hold. The following scenarios, especially where there is segmentation of input, can be problematic:
+% \begin{itemize}
+% \item Using a comma-delimited required name argument pair as the argument of a robust macro like \cmd{\textsc} will halt \LaTeX\ with errors. The \textsf{nameauth} macros will split that pair, which will break the robust macro:\\[1ex]
+% \bgroup\small\MyStretch\begin{tabular}{@{\qquad}ll}
+% Bad & \cmd{\Name\{}\cmd{\textsc\{}\meta{SNN}\texttt{,}\meta{Affix}\texttt{\}\}}\\
+% Good & \cmd{\Name\{}\cmd{\textsc\{}\meta{SNN}\texttt{\},}\cmd{\textsc\{}\meta{Affix}\texttt{\}\}}\\
+% \end{tabular}\egroup\\[1ex]
+% Not even alternate formatting can fix this issue; one simply must avoid the problem when encoding names.
+% \item Using \cmd{\CapThis} with a name whose leading element in any one argument is neither a letter nor an active Unicode character, such as a macro. This may work in normal formatting or it may fail, depending on the macro. Use alternate formatting to have \cmd{\CapThis} activate the alternate capitalization mechanism.
+% \item In a name argument, using a macro that contains a conditional statement can cause the macro to expand to different results. When such conditional changes occur, spurious results follow. Use \cmd{\noexpand} in the name arguments to fix this.
+% \end{itemize}
+%
+% \subsubsection{Basic Features}
+% \label{sec:AltBasic}
+%
+% What we call ``basic'' alternate formatting is meant to be a temporary stop on the road to ``advanced'' usage, which is more robust. For reasons shown above, it is quite helpful to use \cmd{\noexpand} before macros in name arguments:
+%
+% \begin{center}\small\MyStretch
+% \begin{tabular}{ll}
+% |\Name[Martin]{\textSC{Luther}}| & {\color{nared}|%| \textit{basic; good}}\\
+% |\Name[Martin]{\noexpand\textSC{Luther}}| & {\color{nared}|%| \textit{advanced; better}}\\
+% \end{tabular}
+% \end{center}
+%
+% The reason why the basic features work is because the built-in formatting macros discussed below have their effects set when alternate formatting is enabled. If one does not use the macros in names apart from alternate formatting and one does not change the Boolean flags that govern them, the basic features may suffice.
+%
+% \begin{center}\bfseries Enabling and Disabling\end{center}
+% The first thing we need to know is how to enable and disable alternate formatting. The macros that accomplish this are global in scope and cannot be isolated in a local scope. Normally, they are used in pairs, except with the \texttt{altformat} option.
+%
+% At the start of this section we used \cmd{\AltFormatActive} to enable alternate formatting and activate the formatting macros (see below). At the end of this section we must use \cmd{\AltFormatInactive} to deactivate and disable them.\medskip
+%
+% \DescribeMacro{\AltFormatActive}
+% Both the \texttt{altformat} option and \cmd{\AltFormatActive} enable and activate alternate formatting. Both cause \cmd{\CapThis} to work via \cmd{\AltCaps} instead of the normal way. \cmd{\AltFormatActive} countermands \cmd{\AltFormatActive*}.
+% \begin{itemize}
+% \item \emph{Enabled} means that the alternate formatting mechanism inhibits the normal behavior of \cmd{\CapThis}.
+% \item \emph{Disabled} means that the normal behavior of \cmd{\CapThis} is again in force and alternate formatting is inhibited.
+% \item \emph{Activated} means that \cmd{\textSC} and other alternate formatting macros below format their arguments.
+% \item \emph{Deactivated} means that \cmd{\textSC} and other macros below do not format their arguments.
+% \end{itemize}
+%
+% \DescribeMacro{\AltFormatActive*}
+% The starred form \cmd{\AltFormatActive*} enables alternate formatting but deactivates the special formatting macros, preventing them from changing their arguments. It countermands both the \texttt{altformat} option and \cmd{\AltFormatActive}. It causes \cmd{\CapThis} only to work via \cmd{\AltCaps}.\medskip
+%
+% \DescribeMacro{\AltFormatInactive}
+% This macro both disables and deactivates alternate formatting. This reverts globally to standard formatting and the normal function of \cmd{\CapThis}.
+%
+% \begin{center}\MyStretch
+% \begin{tabular}{lcc}\toprule
+% Macro & Enabled & Activated\\\midrule
+% \cmd{\AltFormatActive} & \YES & \YES\\
+% \cmd{\AltFormatActive*} & \YES & \NO\\
+% \cmd{\AltFormatInactive} & \NO & \NO\\\bottomrule
+% \end{tabular}
+% \end{center}\leavevmode
+%
+% \begin{tcolorbox}[colback=white,colframe=nared]
+% \centering All three macros \emph{always} make global changes.\\ This differs from other macros in \textsf{nameauth}.
+% \end{tcolorbox}\smallskip
+%
+% \begin{center}\bfseries Basic Alternate Formatting\end{center}
+% \DescribeMacro{\textSC}
+% Continental formatting can be as simple as using the short macro \cmd{\textSC}. Three other macros also implement alternate formatting.
+% \DescribeMacro{\textIT}
+% These macros make changes only when alternate formatting is active.
+% \DescribeMacro{\textBF}
+% We sort the index entry with \cmd{\PretagName} (Section~\ref{sec:IndexSort}):
+% \DescribeMacro{\textUC}
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
+%\PretagName[Ada]{\textIT{Lovelace}}{Lovelace, Ada}
+%\PretagName[Charles]{\textBF{Babbage}}{Babbage, Charles}
+%\PretagName{\textUC{Tokugawa}, Ieyasu}{Tokugawa Ieyasu}\end{verbatim}
+%
+% \smallskip\MyStretch
+% |\Name[Greta]{\textSC{Garbo}}|\dotfill \Name[Greta]{\textSC{Garbo}}; \Name[Greta]{\textSC{Garbo}}\\
+% |\Name[Ada]{\textIT{Lovelace}}|\dotfill \Name[Ada]{\textIT{Lovelace}}; \Name[Ada]{\textIT{Lovelace}}\\
+% |\Name[Charles]{\textBF{Babbage}}|\dotfill \Name[Charles]{\textBF{Babbage}}; \Name[Charles]{\textBF{Babbage}}\\
+% |\Name{\textUC{Tokugawa}, Ieyasu}|\dotfill \Name{\textUC{Tokugawa}, Ieyasu}; \Name{\textUC{Tokugawa}, Ieyasu}
+% \end{quote}
+%
+% Font substitutions might occur with these macros.\footnote{Since we switch to Latin Modern Sans in the formatting hooks, the switch to small caps forces a substitution to Latin Modern Roman. This action varies with the font being used.}
+% They \emph{always format their arguments} when using the \texttt{altformat} option or after \cmd{\AltFormatActive}. Likewise, they \emph{never format their arguments} when \cmd{\AltFormatActive*} is used. Still, \cmd{\CapName}, \cmd{\RevComma}, and \cmd{\RevName} can modify the effects of alternate formatting, but only in the text, not the index:
+%
+% \begin{center}\small\MyStretch
+% \begin{tabular}{rl}\toprule
+% |\CapName\Name*[Greta]{\textSC{Garbo}}| & \CapName\Name*[Greta]{\textSC{Garbo}}\\
+% \rowcolor{grey}|\RevComma\Name*[Ada]{\textIT{Lovelace}}| & \RevComma\Name*[Ada]{\textIT{Lovelace}}\\
+% |\RevName\Name*{\textUC{Tokugawa}, Ieyasu}| & \RevName\Name*{\textUC{Tokugawa}, Ieyasu}\\\bottomrule
+% \end{tabular}
+% \end{center}
+%
+% Here is a more practical example on how to format the required argument \marg{SNN\texttt{,\,}Affix} as two separate arguments:
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\PretagName[J.D.]{\textSC{Rockefeller},\textSC{III}}
+% {Rockefeller, John D 3}
+%\PretagName{\textUC{Fukuyama}, Takeshi}{Fukuyama Takeshi}
+%\begin{nameauth}
+% \< JRIII & J.D. & \textSC{Rockefeller},\textSC{III} & >
+% \< Fukuyama & & \textUC{Fukuyama}, Takeshi & >
+%\end{nameauth}\end{verbatim}
+% \end{quote}
+%
+% From above we get \JRIII, then \JRIII. This works also for non-Western names. Applying the macros above, we get:
+% \begin{center}\small\MyStretch
+% \begin{tabular}{rl}\toprule
+% \rowcolor{grey}|\Fukuyama| & \Fukuyama \\
+% |\Fukuyama| & \Fukuyama \\\bottomrule
+% \end{tabular}
+% \end{center}
+%
+% Only the new syntax allows one to use alternate names in the text. For example, ``|\LFukuyama[Sensei]| \LFukuyama[Sensei] wrote \textit{Nihon Fukuin R\=uteru Ky\=okai Shi} in 1954, after studying in the US in the 1930s''.\smallskip
+%
+% \begin{tcolorbox}[colback=white,colframe=nared]
+% \centering Using names designed for alternate formatting also with regular formatting will produce inconsistent formatting and spurious index entries.
+% \end{tcolorbox}\leavevmode
+%
+% \begin{center}\bfseries Example Reference Work\end{center}
+% \phantomsection
+% \label{page:ContinentalXref}
+% This example uses basic Continental formatting. We build on our knowledge so far to construct head-words and articles. Below we use alternate formatting, sort index entries, set up a cross-reference, and define an article macro:
+% \AltFormatActive
+%\newcommand{\RefArticle}[3]{^^A
+% \def\check{#2}^^A
+% \ifx\check\empty
+% \noindent\ForgetThis#1\ #3
+% \else
+% \noindent\ForgetThis#1\ #2\ #3
+% \fi
+%}
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
+%\PretagName{\textSC{Misora}, Hibari}{Misora Hibari}
+%\PretagName[Heinz]{\textSC{Rühmann}}{Ruehmann, Heinz}
+%\PretagName[Heinrich Wilhelm]{\textSC{Rühmann}}%
+% {Ruehmann, Heinrich Wilhelm}
+%\IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
+% {\textSC{Rühmann}, Heinz}%
+%
+%\newcommand{\RefArticle}[3]{%
+% \def\check{#2}%
+% \ifx\check\empty
+% \noindent\ForgetThis#1\ #3
+% \else
+% \noindent\ForgetThis#1\ #2\ #3
+% \fi
+%}\end{verbatim}
+% \end{quote}
+% \IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}{\textSC{Rühmann}, Heinz}
+%
+% \cmd{\RefArticle} either formats the name from the first argument and appends the third argument, ignoring the the second if it is empty, or it formats the first two arguments and appends the third. We determine what those arguments mean by including specific naming macros. That includes using \cmd{\RevComma} for Western names, but not for Eastern ones.
+% \begin{quote}\small
+% \ContinueNum
+% \begin{verbatim}
+%\RefArticle
+% {\RevComma\Name[Greta]{\textSC{Garbo}}}
+% {}
+% {(18 September 1905\,--\,15 April 1990) was a Swedish
+% film actress during the 1920s and 1930s.}
+%
+%\RefArticle
+% {\Name{\textSC{Misora}, Hibari}}
+% {}
+% {(W: ``\RevName\Name*{\textSC{Misora}, Hibari}'';
+% 29 May 1937\,--\,24 June 1989) was a Japanese singer
+% and actress noted for her positive message.}
+%
+%\RefArticle
+% {\RevComma\Name[Heinrich Wilhelm]{\textSC{Rühmann}}}
+% {``\SubvertThis\ForceName\FName[Heinz]{\textSC{Rühmann}}''}
+% {(7 March 1902\,--\,3 October 1994) was a German actor
+% in over 100 films.}
+%\AltFormatInactive\end{verbatim}
+% \end{quote}
+%
+% \begin{quote}\small
+%\RefArticle
+% {\RevComma\Name[Greta]{\textSC{Garbo}}}
+% {}
+% {(18 September 1905\,--\,15 April 1990) was a Swedish
+% film actress during the 1920s and 1930s.}
+%
+%\RefArticle
+% {\Name{\textSC{Misora}, Hibari}}
+% {}%
+% {(W: ``\RevName\Name*{\textSC{Misora}, Hibari}'';
+% 29 May 1937\,--\,24 June 1989) was a Japanese singer
+% and actress noted for her positive message.}
+%
+%\RefArticle
+% {\RevComma\Name[Heinrich Wilhelm]{\textSC{Rühmann}}}
+% {``\SubvertThis\ForceName\FName[Heinz]{\textSC{Rühmann}}''}
+% {(7 March 1902\,--\,3 October 1994) was a German actor
+% in over 100 films.}
+% \end{quote}
+%
+% \subsubsection[Advanced Features]{Advanced Formatting Features}
+% \label{sec:AltAdvanced}
+%
+% Advanced features involve a dance of sorts between the name argument macros and the formatting hooks. We are moving from immutability to changeability. Yet so far, we have heard that this could change conditional statements and create spurious index entries.
+%
+% Using \cmd{\noexpand} befor macros in name arguments that expand conditionally will solve this problem for us:
+% \begin{itemize}
+% \item The use of \cmd{\noexpand} isolates the global state of \cmd{\textSC} and the other formatting macros from local changes in the formatting hooks.
+% \item Indexing never occurs within the formatting hooks.
+% \item Special triggering macros in the formatting hooks isolate local changes.
+% \end{itemize}
+%
+% As a result of these points, advanced alternate formatting works as expected. It uses a similar approach as did the Boolean flags for Roman names (page~\pageref{page:Romani}).
+% \smallskip
+%
+% \begin{tcolorbox}[colback=white,colframe=nared]
+% \centering Using \cmd{\noexpand} is key to consistent index entries.
+% \end{tcolorbox}\smallskip
+% \newpage
+%
+% \begin{center}\bfseries Alternate Capitalization\end{center}
+% When alternate formatting is enabled, \cmd{\CapThis}\DescribeMacro{\AltCaps}\ causes \cmd{\AltCaps} to format its argument only in a formatting hook. It is enabled whenever alternate formatting is enabled, but it works independently of \cmd{\AltOn} and \cmd{\AltOff} below:
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\noexpand}\cmd{\AltCaps}\marg{Arg}\\
+% \end{tabular}
+% }
+% \end{quote}
+%
+% We introduce this macro with a silly example, disabling indexing in the process:
+% \IndexInactive
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\IndexInactive
+%What's in \Name[\noexpand\AltCaps{a}]{Name}?
+%\CapThis\Name*[\noexpand\AltCaps{a}]{Name} smells not,
+%but a rose does, even if it has a
+%\Name[\noexpand\AltCaps{a}]{Name}.\end{verbatim}
+%
+% What's in \Name[\noexpand\AltCaps{a}]{Name}?
+% \CapThis\Name*[\noexpand\AltCaps{a}]{Name} smells not,
+% but a rose does, even if it has a
+% \Name[\noexpand\AltCaps{a}]{Name}.
+% \end{quote}
+%
+% \begin{center}\bfseries Advanced Alternate Formatting\end{center}
+% Advanced features come with ``some assembly required''. An author must put one of the trigger macros below into one or more of the \textsf{nameauth} formatting hooks. These macros change the state of the formatting macros.\medskip
+%
+% Vaguely reminiscent of\DescribeMacro{\AltOff}\ an automobile's manual clutch and gearbox, \cmd{\AltOff} deactivates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook.\medskip
+%
+% Likewise, \cmd{\AltOn}\DescribeMacro{\AltOn}\ activates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook.\medskip
+%
+% Continuing the example (indexing suppressed), we redefine \cmd{\MainNameHook} to suppress small caps. Note the copious use of \cmd{\noexpand}:
+% \renewcommand*\MainNameHook{\sffamily\AltOff}
+% \begin{quote}\small
+% \ContinueNum
+% \begin{verbatim}
+%\renewcommand*\MainNameHook%
+% {\sffamily\AltOff}% we match the manual
+%
+%\CapThis\Name
+% [\noexpand\textSC{\noexpand\AltCaps{a} Name}]
+% {\noexpand\textSC{Problem}}
+%will not become a \Name
+% [\noexpand\textSC{\noexpand\AltCaps{a} Name}]
+% {\noexpand\textSC{Problem}},
+%even if it smells like a rose.
+%\IndexActive\end{verbatim}
+%
+%\CapThis\Name
+% [\noexpand\textSC{\noexpand\AltCaps{a} Name}]
+% {\noexpand\textSC{Problem}}
+%will not become a \Name
+% [\noexpand\textSC{\noexpand\AltCaps{a} Name}]
+% {\noexpand\textSC{Problem}},
+%even if it smells like a rose.
+% \end{quote}
+% \IndexActive
+%
+% Now indexing is active again. Using the same \cmd{\MainNameHook} defined above, consider the following in a document preamble:
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\begin{nameauth}
+% \< Luth & Martin & \noexpand\textSC{Luther} & >
+% \< Cath & Catherine \noexpand\AltCaps{d}e'
+% & \noexpand\textSC{Medici} & >
+%\end{nameauth}
+%\PretagName[Martin]{\noexpand\textSC{Luther}}{Luther, Martin}
+%\PretagName[Catherine \noexpand\AltCaps{d}e']
+% {\noexpand\textSC{Medici}}{Medici, Catherine de}\end{verbatim}
+% \end{quote}
+%
+% In the body text, we see \cmd{\ForgetThis}\cmd{\Luth} \ForgetThis\Luth\ and \cmd{\Luth} \Luth. Likewise \cmd{\Cath} \Cath, then \cmd{\Cath} \Cath. Medieval Italian differs from modern Italian with respect to particles. To get \LCath[\noexpand\AltCaps{d}e'] in the text, use |\LCath[\noexpand\AltCaps{d}e']|, with which \cmd{\CapThis} also works. The index entry should be ``\ShowIdxPageref*[Catherine \noexpand\AltCaps{d}e']{\noexpand\textSC{Medici}}\,'', instead of ``\ShowIdxPageref*[Catherine]{de'~\textSC{Medici}}''.\medskip
+%
+% \phantomsection
+% \label{page:Inflections}
+% We\Info{Name inflections} can design grammatical inflections either with or without alternate formatting. \cmd{\DoGentrue} occurs only in the formatting hook, keeping the index entries consistent via \cmd{\noexpand}. Highly inflected languages require two Boolean flags per case and nested conditional statements.\footnote{We hide the same information that we did on page~\pageref{page:Sobriquets}. A copy of this example is in \texttt{examples.tex}, located with this manual.} In the example below we do not use the formatting in this manual and we hide the special tags used herein. In the preamble of a document we would have:
+%
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\newif\ifGenitive
+%\newif\ifDoGen
+%\newcommand*\JEFF{\ifDoGen\textSC{Jefferson's}\else
+% \textSC{Jefferson}\fi}
+%\begin{nameauth}
+% \< Jeff & Thomas & \noexpand\JEFF & >
+%\end{nameauth}
+%\PretagName[Thomas]{\noexpand\JEFF}{Jefferson, Thomas}
+%\TagName[Thomas]{\noexpand\JEFF}{, pres.}\end{verbatim}
+% \end{quote}
+%
+% In the preamble or document text, we can have:
+% \renewcommand*\NamesFormat[1]{\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
+% \renewcommand*\MainNameHook[1]{\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
+% \begin{quote}\small
+% \ContinueNum
+% \begin{verbatim}
+%\renewcommand*\NamesFormat[1]
+% {\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
+%\renewcommand*\MainNameHook[1]
+% {\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
+%
+%Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
+%\Genitivetrue\Jeff\ reputation has declined in recent decades.\end{verbatim}
+%
+% \smallskip
+% Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
+% \Genitivetrue\Jeff\ reputation has declined in recent decades.
+% \end{quote}
+%
+% Now we end the scope, resume normal formatting, and do not use the names in this section outside of it.\footnote{In a \texttt{dtx} file it is best to put the \texttt{nameauth} environment, \cmd{\PretagName}, and \cmd{\TagName} macros in the driver section, especially when names contain macros.}
+% \AltFormatInactive
+% \endgroup^^A Local format hook redefinition
+%
+% \ReturnLink
+% \vfill
+%
+% \noindent Perhaps one can use the \textsf{nameauth package}\dots
+% \begin{verse}
+% There in the ring where name and image meet\\[1ex]\hfill---\Name[W.H.]{Auden}, ``Perhaps''
+% \end{verse}
% \newpage
%
% \subsection{Name Decisions}
% \label{sec:NameDecisions}
%
-% The macros in this section force and detect name states. Below we keep names consistent with \textsf{beamer} overlays using some of the macros explained in this section. Otherwise, name forms will change as one advances the slides:\footnote{A copy of this example is in \texttt{examples.tex}, collocated with this manual.}
+% The macros in this section force and detect name states. Below we keep names consistent with \textsf{beamer} overlays using some of the macros explained in this section. Otherwise, name forms will change as one advances the slides:\footnote{A copy of this example is in \texttt{examples.tex}, located with this manual.}
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -3396,8 +3911,7 @@ the README.txt or README for more information.
% \begin{itemize}\footnotesize
% \item<1-> Original\ForgetName[George]{Washington}%
% \ForgetName[George]{Washington's}\\
-% \Name[Martin]{Van Buren} changes
-% after the first overlay.
+% This version of \Name[Ulysses S.]{Grant} changes.
% \begin{enumerate}
% \item<2-> \IfMainName[George]{Washington's}{He}%
% {\Name[George]{Washington}}
@@ -3411,7 +3925,7 @@ the README.txt or README for more information.
% \end{enumerate}
% \item<1-> Reordered\ForgetName[George]{Washington}%
% \ForgetName[George]{Washington's}\\
-% \ForgetThis\Name[Ulysses S.]{Grant}
+% This version of \ForgetThis\Name[Ulysses S.]{Grant}
% does not change.
% \begin{enumerate}
% \item<3-> \IfMainName[George]{Washington}{His}%
@@ -3429,7 +3943,6 @@ the README.txt or README for more information.
%
%\end{document}\end{verbatim}
%\IndexName[George]{Washington}
-%\IndexName[Martin]{Van Buren}
%\IndexName[Ulysses S.]{Grant}
% \end{quote}
%
@@ -3438,50 +3951,111 @@ the README.txt or README for more information.
% \subsubsection{Making Decisions}
% \label{sec:NameControl}
%
-% By\Info{Naming system\break behavior} default, the macros below produce global effects. They change both the \texttt{!MN} and \texttt{!NF} data sets (Section~\ref{sec:NamePatterns}). With \cmd{\ForceName} (Section~\ref{sec:Formatting}), they change formatting. Apart from \cmd{\ForceName}, they also change long or short name forms and the outcome of the testing macros in the next section:
-%
-% \begin{center}\small\MyStretch
-% \begin{tabular}{lccc}\toprule
-% \bfseries Defaults & \bfseries Name Length & \bfseries Format Hooks & \bfseries Test Path\\\midrule
-% \bfseries Pre-First Use & Long & First & False\\
-% \rowcolor{black!7!white}\bfseries Subsequent Use\quad\hbox{} & Long or short & Subsequent & True\\\bottomrule
-% \end{tabular}\medskip\\
+% By default, the macros below produce global effects. They change both the \texttt{!MN} and \texttt{!NF} data sets (Section~\ref{sec:NamePatterns}). With \cmd{\ForceName} (Section~\ref{sec:Formatting}), they change formatting. Apart from \cmd{\ForceName}, they also change long or short name forms and the outcome of both indexing error protection (Section~\ref{sec:GeneralIndex}) and the name testing macros (Section~\ref{sec:NameTests}).\medskip
%
-% \begin{tabular}{lll}\toprule
-% \bfseries Modifications & \bfseries Form & \bfseries Function\\\midrule
-% \hfill|\SubvertThis\LAnth| & \SubvertThis\LAnth & force subsequent use \hbox to 3.02em{\hfill}\\
-% & & force long form\\
-% \rowcolor{black!7!white} |\ForceName\SAnth| & \ForceName\SAnth & default subsequent use\\
-% \rowcolor{black!7!white} & & force first-use format\\
-% |\ForgetThis\SAnth| & \ForgetThis\SAnth & force first use; default long\\
-% & & default first-use format\\
-% \rowcolor{black!7!white}|\SAnth| & \SAnth & default subsequent use\\
-% \rowcolor{black!7!white} & & default short form\\\bottomrule
-% \end{tabular}
-% \end{center}
-%
% \DescribeMacro{\ForgetName}
-% This macro takes the same arguments as \cmd{\Name}. It ``forgets'' a name, forcing a ``pre-first use'' state that will trigger a first-time name use:
+% This macro takes the same arguments as \cmd{\Name}, but it prints no output. It ``forgets'' a name, forcing a ``pre-first use'' state that will trigger a first-time name use the next time a naming macro makes reference to the name:
% \begin{quote}
-% \fbox{\mystrut\ \cmd{\ForgetName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\ }
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\ForgetName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
-%
-% \DescribeMacro{\ForgetThis}
-% This prefix macro causes the next instance of a naming macro or shorthand to ``forget'' a name before printing it.\Version{3.1} After knowing |\Einstein| ``\Einstein'' we forget him and again have a first reference: |\ForgetThis\Einstein| ``\ForgetThis\Einstein.''\medskip
+% This macro ``unprotects'' names like \cmd{\IncludeName*} ``unprotects'' cross-references, allowing one to make a \textit{see} reference to a name, even if that name already has index page references. If one is using a single name index, that could be an error. If one is using multiple indexes for names, however, that could be necessary.\medskip
%
% \DescribeMacro{\SubvertName}
-% This macro takes the same arguments as \cmd{\Name}. It ``subverts'' a name, creating a name pattern control sequence and forcing a ``subsequent use'' case:
-% \begin{quote}\small
-% \fbox{\mystrut\ \cmd{\SubvertName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\ }
+% This macro takes the same arguments as \cmd{\Name}, but it produces no output in the text. It ``subverts'' a name by creating a name pattern control sequence, forcing a ``subsequent use'', and ``protecting'' a name from being used as a \textit{see} reference (similar to \cmd{\ExcludeName} and cross-references):
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\SubvertName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
%
+% \DescribeMacro{\ForgetThis}
+% This prefix macro causes the next instance of a naming macro or shorthand to ``forget'' a name before printing it.\Version{3.1} After knowing |\Einstein| ``\Einstein'' we forget him and again have a first reference: |\ForgetThis\Einstein| ``\ForgetThis\Einstein''.\medskip
+%
+% This\Warn{} macro does not affect the index unless one uses \cmd{\ForgetThis} in a situation where a naming macro produces no output in the text. That results in the same outcome as a careless use of \cmd{\ForgetName}:
+% \begin{center}\small\MyStretch
+% \begin{tabular}{c@{\ \ }p{0.43\textwidth}@{\ }p{0.22\textwidth}}\toprule
+% Page & Macro & Index Result\\\midrule
+% \rowcolor{grey}^^A
+% 10 & \cmd{\ForgetThis}\cmd{\JustIndex}\cmd{\Einstein} & Einstein, Albert, 10\\
+% 12 & \cmd{\IndexRef[Albert]\{Einstein\}\%} & \\
+% & \texttt{\{Smart Dude\}}\dotfill \hbox{} & Einstein, Albert, 10, \textit{see} Smart Dude\\\bottomrule
+% \end{tabular}
+% \end{center}
+%
+%
% \DescribeMacro{\SubvertThis}
-% This prefix macro causes the next instance of a naming macro or shorthand to ``subvert'' a name before printing it.\Version{3.1} As in the table on page~\pageref{page:Priorities}, \cmd{\ForgetThis} has a higher priority than \cmd{\SubvertThis} and nullifies it when used together.\medskip
+% This prefix macro causes the next instance of a naming macro or shorthand to ``subvert'' a name before printing it.\Version{3.1} As indicated in the table on page~\pageref{page:Priorities}, \cmd{\ForgetThis} has a higher priority than \cmd{\SubvertThis} and negates it. The caveat regarding naming macro output applies to both \cmd{\SubvertThis} and \cmd{\ForgetThis}.
+% \vfil
+%
+% \begin{tcolorbox}[colback=white,colframe=nared]
+% \centering We advise one to avoid using \cmd{\ForgetThis} and \cmd{\SubvertThis}\\ before any naming macro that produces no output in the text.
+% \end{tcolorbox}\medskip
+% \newpage
+%
+% \begin{center}\bfseries Name Decision and Formatting Summary\end{center}
+% \phantomsection
+%
+% \begin{itemize}\small
+% \item[First Use:] \cmd{\Bailey} \dotfill \ForgetThis\Bailey\\
+% Name control sequence (cseq) undefined, then created with text output. Index \textit{see} protection set.
+% Default name form (long). Default first-use format hooks.
+%
+% \item[Later Use:] \cmd{\Bailey} \dotfill \Bailey\\
+% No change to extant name cseq. No change to index \textit{see} protection.
+% Default name form (short). Default later-use format hooks.
+%
+% \item[Forgotten:] \cmd{\ForgetName[Betsey]\{Bailey\}} \dotfill (no output)\ForgetName[Betsey]{Bailey}\\
+% \emph{Name cseq deleted. Index \textit{see} protection removed. Force first use.}
+% Next use of \cmd{\Bailey} will be a first use.
+%
+% \item[Subverted:] \cmd{\SubvertName[Betsey]\{Bailey\}} \dotfill (no output)\SubvertName[Betsey]{Bailey}\\
+% \emph{Name cseq created. Index \textit{see} protection set. Force later use.}
+% Next use of \cmd{\Bailey} will be a later use.
+%
+% \item[\cmd{\ForgetThis}:] \cmd{\ForgetThis}\cmd{\Bailey} \dotfill \ForgetThis\Bailey\\
+% \emph{Name cseq deleted, then created. Index \textit{see} protection removed, then set. Force first use.} Default form (long). Default first-use format hooks. Next use of \cmd{\Bailey} will be a later use if output occurs.
+%
+% \item[\cmd{\SubvertThis}:] \cmd{\SubvertThis}\cmd{\Bailey} \dotfill \SubvertThis\Bailey\\
+% \emph{Name cseq created if undefined. Index \textit{see} protection set.
+% Force later use.} Default form (short). Default later-use format hooks. Next use of \cmd{\Bailey} will be a later use if output occurs.
+%
+% \item[Long Use:] \cmd{\LBailey} \dotfill \LBailey\\
+% No change to extant name cseq. No change to index \textit{see} protection.
+% \emph{Force long name form.} No change to format hooks.
+%
+% \item[``Short'', first:] \cmd{\ForgetThis}\cmd{\SBailey} \dotfill \ForgetThis\SBailey\\
+% \emph{Name cseq deleted, then created}. \emph{Index \textit{see} protection removed, then set}. \emph{First use forces long form.} Default first-use format hooks.
+%
+% \item[Short, later:] \cmd{\SBailey} \dotfill \SBailey\\
+% No change to extant name cseq. No change to index \textit{see} protection.
+% \emph{Force first name or short name.} No change to format hooks.
+%
+% \item[Forced, later:] \cmd{\ForceName}\cmd{\Bailey} \dotfill \ForceName\Bailey\\
+% No change to extant name cseq. No change to index \textit{see} protection. Default name form. \emph{Force first-use hooks.}
+%
+% \item[Forced, long:] \cmd{\ForceName}\cmd{\LBailey} \dotfill \ForceName\LBailey\\
+% No change to extant name cseq. No change to index \textit{see} protection. \emph{Force long name form. Force first-use hooks.}
+%
+% \item[Forced, short:] \cmd{\ForceName}\cmd{\SBailey} \dotfill \ForceName\SBailey\\
+% No change to extant name cseq. No change to index \textit{see} protection.
+% \emph{Force first name or short name if subsequent use. Force first-use hooks.}
+% \end{itemize}
+% \medskip
%
% \DescribeMacro{\LocalNames}
-% \cmd{\LocalNames} restricts the effects of the macros above to the current naming system.
+% By default, \cmd{\ForgetName}, \cmd{\SubvertName}, \cmd{\ForgetThis}, and \cmd{\SubvertThis} are not limited either by scope or by the active naming system.
% \DescribeMacro{\GlobalNames}
-% \cmd{\GlobalNames} restores the default behavior. We define a macro that reports whether a name exists in the main matter, front matter, both, or none:
+% \cmd{\LocalNames} restricts the effects of these macros to the current naming system, but not to scope. \cmd{\GlobalNames} restores the default behavior that affects both systems. Both macros always have global scope.
+%
+% To see how these two macros work, in the following example we define a macro that reports whether or not |\Name[Charlie]{Chaplin}| exists. This macro gives four possible results: the name exists in the main matter, it exists in the front matter, it exists in both systems, or it does not exist (see Section~\ref{sec:NameTests}):
+% \newpage
+%
% \def\CheckChuck{{\bfseries\IfFrontName[Charlie]{Chaplin}%
% {\IfMainName[Charlie]{Chaplin}{both}{front}}%
% {\IfMainName[Charlie]{Chaplin}{main}{none}}}}%
@@ -3492,130 +4066,187 @@ the README.txt or README for more information.
% {\IfMainName[Charlie]{Chaplin}{both}{front}}%
% {\IfMainName[Charlie]{Chaplin}{main}{none}}}}\end{verbatim}
% \end{quote}
-%
-% We start with no extant name:
-% \begin{quote}\small\MyStretch
-% |\CheckChuck|\dotfill\CheckChuck\qquad\qquad\qquad\hbox{}
+% \noindent
+% We start in the ``main-matter'' system with no extant name:
+% \begin{quote}\small\MyStretch\ForgetName[Charlie]{Chaplin}
+% |\CheckChuck|\dotfill \CheckChuck\qquad\qquad\qquad\hbox{}
% \end{quote}
-%
% We create a name in the ``main matter'':
% \begin{quote}\small\MyStretch
-% |\Name*[Charlie]{Chaplin}|\dotfill\Name*[Charlie]{Chaplin}\qquad\qquad\qquad\hbox{}\\
-% |\CheckChuck|\dotfill\CheckChuck\qquad\qquad\qquad\hbox{}
+% |\Name[Charlie]{Chaplin}|\dotfill \Name[Charlie]{Chaplin}\qquad\qquad\qquad\hbox{}\\
+% |\CheckChuck|\dotfill \CheckChuck\qquad\qquad\qquad\hbox{}
% \end{quote}
-%
-% We switch to the ``front-matter'' and create a name, but since we are using the \texttt{quote} environment, we add \cmd{\global}:
+% We switch to the ``front-matter'' system and create a name, but since we are using the \texttt{quote} environment, we add \cmd{\global}:
% \begin{quote}\small\MyStretch
% |\global\NamesInactive|\global\NamesInactive\\
-% |\Name*[Charlie]{Chaplin}|\dotfill\Name*[Charlie]{Chaplin}\qquad\qquad\qquad\hbox{}\\
-% |\CheckChuck|\dotfill\CheckChuck\qquad\qquad\qquad\hbox{}
+% |\Name[Charlie]{Chaplin}|\dotfill \Name[Charlie]{Chaplin}\qquad\qquad\qquad\hbox{}\\
+% |\CheckChuck|\dotfill \CheckChuck\qquad\qquad\qquad\hbox{}
% \end{quote}
+% We now have two names. Their patterns are: \texttt{\ShowPattern[Charlie]{Chaplin}!MN} for the main matter and \texttt{\ShowPattern[Charlie]{Chaplin}!NF} for the front matter (Section~\ref{sec:NamePatterns}).
%
-% We now have two names. Their patterns are:
-% \begin{quote}\small\MyStretch
-% \texttt{\ShowPattern[Charlie]{Chaplin}!MN}\\
-% \texttt{\ShowPattern[Charlie]{Chaplin}!NF}
-% \end{quote}
-%
-% We use \cmd{\Localnames} to make \cmd{\ForgetName} and \cmd{\SubvertName} work with only the front-matter system. Then we ``forget'' the front-matter name:
+% We use \cmd{\LocalNames} to make both \cmd{\ForgetName} and \cmd{\SubvertName} work with only the current system. When we ``forget'' the name, the current system is front matter, so we forget the front-matter name:
% \begin{quote}\small\MyStretch
% |\LocalNames|\LocalNames\\
% |\ForgetName[Charlie]{Chaplin}|\ForgetName[Charlie]{Chaplin}\\
-% |\CheckChuck|\dotfill\CheckChuck\qquad\qquad\qquad\hbox{}
+% |\CheckChuck|\dotfill \CheckChuck\qquad\qquad\qquad\hbox{}
% \end{quote}
-%
% Next we ``subvert'' the front-matter name to ``remember'' it again and switch to main matter, again using \cmd{\global} to ignore scoping.
% \begin{quote}\small\MyStretch
% |\SubvertName[Charlie]{Chaplin}|\SubvertName[Charlie]{Chaplin}\\
% |\global\NamesActive|\global\NamesActive\\
-% |\CheckChuck|\dotfill\CheckChuck\qquad\qquad\qquad\hbox{}
+% |\CheckChuck|\dotfill \CheckChuck\qquad\qquad\qquad\hbox{}
% \end{quote}
-%
-% We forget the main-matter name and additionally reset the default behavior so that \cmd{\ForgetName} and \cmd{\SubvertName} work with both systems:
+% Now the current system is main matter. We then forget the main-matter name only. Additionally, we use \cmd{\GlobalNames} to reset the default behavior so that \cmd{\ForgetName} and \cmd{\SubvertName} work with both systems again:
% \begin{quote}\small\MyStretch
% |\ForgetName[Charlie]{Chaplin}|\ForgetName[Charlie]{Chaplin}\\
% |\GlobalNames|\GlobalNames\\
-% |\CheckChuck|\dotfill\CheckChuck\qquad\qquad\qquad\hbox{}
+% |\CheckChuck|\dotfill \CheckChuck\qquad\qquad\qquad\hbox{}
% \end{quote}
-%
% Finally, we forget everything. Even though we are in a main-matter section, the front-matter name also goes away:
% \begin{quote}\small\MyStretch
% |\ForgetName[Charlie]{Chaplin}|\ForgetName[Charlie]{Chaplin}\\
-% |\CheckChuck|\dotfill\CheckChuck\qquad\qquad\qquad\hbox{}
+% |\CheckChuck|\dotfill \CheckChuck\qquad\qquad\qquad\hbox{}
% \end{quote}
-%
% \ReturnLink
-%
+% \newpage
+%
% \subsubsection{Testing Decisions}
% \label{sec:NameTests}
%
-% The macros in this section test for the presence or absence of a name, then expand based on the result. For example, they can synchronize information between a float and body text by each testing whether a name exists and making decisions about the information accordingly.\medskip
+% The macros in this section test for the presence or absence of a name, then expand to a result based on the outcome of the test.\medskip
+%
+% \DescribeMacro{\GlobalNameTest}
+% The default behavior encapsulates the decision paths in a local scope, insulating any changes therein.
+% \DescribeMacro{\LocalNameTest}
+% If this is not desired, use the \texttt{globaltest} option or \cmd{\GlobalNameTest}. \cmd{\LocalNameTest} will enable it again.\Version{3.5} These commands affect assignment statements in test paths. By default, one must explicitly use \cmd{\global} when desired. See also the example below.\medskip
%
% \DescribeMacro{\IfMainName}
% In order to test whether or not a ``main matter'' name control sequence exists, use this long macro that can accommodate paragraph breaks:
-% \begin{quote}\small
-% \fbox{\mystrut\ \cmd{\IfMainName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{yes}\marg{no} }
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{@{}l@{}}
+% {\Large\strut}\cmd{\IfMainName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{yes}\marg{no}\\
+% \end{tabular}
+% }
% \end{quote}
-%
-% For example, because we have not seen the equivalent of |\Name[Bob]{Hope}| or |\SubvertName[Bob]{Hope}|, we try the following test and get:
-% \begin{quote}\small\MyStretch
-% |\IfMainName[Bob]{Hope}{Bob here!}{No Bob.}|\dotfill \IfMainName[Bob]{Hope}{Bob here!}{No Bob.}
+%
+% For example we have not encountered |\Name[Bob]{Hope}| yet. Using \cmd{\IndexName} does not affect the tests in this section. We could do the following test that will reflect whether or not the name is present:
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%I heard someone say: \IfMainName[Bob]{Hope}
+% {Bob here!}
+% {No Bob here.}\IndexName[Bob]{Hope}\end{verbatim}
+%
+% I heard someone say: \IfMainName[Bob]{Hope}
+% {Bob here!}
+% {No Bob.}\IndexName[Bob]{Hope}
% \end{quote}
%
-% Still, we can create an index entry here with \IndexName[Bob]{Hope}|\IndexName[Bob]{Hope}| and it will not affect the test above. Since, however, we have encountered the equivalent of |\Name{Elizabeth,I}| many times in the document, we get the following result:
+% Now we test for |\Name{Elizabeth,I}|, a name that has occurred, and we also show the difference between local and global test paths:
% \begin{quote}\small
-% |\IfMainName{Elizabeth,I}{Bess here!}{No Bess.}|\dotfill\IfMainName{Elizabeth,I}{Bess here!}{No Bess.}
+% \StartNum
+% \begin{verbatim}
+%\GlobalNameTest
+%\def\msg{We are unsure about \LEliz}
+%\IfMainName{Elizabeth,I}
+% {\def\msg{We really do know of \LEliz}}
+% {\def\msg{We do not know of \LEliz}}
+% \msg\quad (\cmd{\GlobalNameTest}).
+%
+%\LocalNameTest
+%\def\msg{We are unsure about \LEliz}
+%\IfMainName{Elizabeth,I}
+% {\def\msg{We really do know of \LEliz}}
+% {\def\msg{We do not know of \LEliz}}
+% \msg\quad (\cmd{\LocalNameTest}).\end{verbatim}
+% \smallskip
+%
+% \GlobalNameTest
+% \def\msg{We are unsure about \LEliz}
+% \IfMainName{Elizabeth,I}
+% {\def\msg{We really do know of \LEliz}}
+% {\def\msg{We do not know of \LEliz}}
+% \msg\quad (\cmd{\GlobalNameTest}).
+%
+% \LocalNameTest
+% \def\msg{We are unsure about \LEliz}
+% \IfMainName{Elizabeth,I}
+% {\def\msg{We really do know of \LEliz}}
+% {\def\msg{We do not know of \LEliz}}
+% \msg\quad (\cmd{\LocalNameTest}).
% \end{quote}
+% We see that the default keeps local any assignments made in the test paths.\medskip
%
% \DescribeMacro{\IfFrontName}
% In order to test whether or not a ``front matter'' name control sequence exists, use this long macro that can accommodate paragraph breaks. Its syntax is:
-% \begin{quote}\small
-% \fbox{\mystrut\ \cmd{\IfFrontName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{yes}\marg{no} }
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{@{}l@{}}
+% {\Large\strut}\cmd{\IfFrontName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{yes}\marg{no}\\
+% \end{tabular}
+% }
% \end{quote}
-% This macro works like \cmd{\IfMainName}, except using the ``front matter'' name control sequences as the test subject.
+% This macro works just like \cmd{\IfMainName}, except using the ``front matter'' name control sequences as the test subject. These testing macros prove their worth especially through combination. For example, on the next page we do a test based on Section~\ref{sec:Formatting}.
+% \newpage
%
% \phantomsection\label{page:Carnap}
-% For example, based on Section~\ref{sec:Formatting}, we see that ``\ignorespaces
-% \IfFrontName[Rudolph]{Carnap}%
-% {\IfMainName[Rudolph]{Carnap}%
-% {\Name[Rudolph]{Carnap} is both}%
-% {\Name[Rudolph]{Carnap} is only front-matter}}%
-% {\IfMainName[Rudolph]{Carnap}%
-% {\Name[Rudolph]{Carnap} is only main-matter}%
-% {\Name[Rudolph]{Carnap} is not mentioned}}'' a main-matter and front-matter name with the following test:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
-%\IfFrontName[Rudolph]{Carnap}%
+%\IfFrontName[Rudolph]{Carnap}
%{%
-% \IfMainName[Rudolph]{Carnap}%
-% {\Name[Rudolph]{Carnap} is both}%
-% {\Name[Rudolph]{Carnap} is only front-matter}%
+% \IfMainName[Rudolph]{Carnap}
+% {\Name[Rudolph]{Carnap} is in both main- and front-matter text.}
+% {\Name[Rudolph]{Carnap} is only in front-matter text.}
%}%
%{%
-% \IfMainName[Rudolph]{Carnap}%
-% {\Name[Rudolph]{Carnap} is only main-matter}%
-% {\Name[Rudolph]{Carnap} is not mentioned}%
+% \IfMainName[Rudolph]{Carnap}
+% {\Name[Rudolph]{Carnap} is only in main-matter text.}
+% {\Name[Rudolph]{Carnap} has not been mentioned.}
%}\end{verbatim}
+%
+% \IfFrontName[Rudolph]{Carnap}
+% {%
+% \IfMainName[Rudolph]{Carnap}
+% {\Name[Rudolph]{Carnap} is in both main- and front-matter text.}
+% {\Name[Rudolph]{Carnap} is only in front-matter text.}
+% }%
+% {%
+% \IfMainName[Rudolph]{Carnap}
+% {\Name[Rudolph]{Carnap} is only in main-matter text.}
+% {\Name[Rudolph]{Carnap} has not been mentioned.}
+% }
% \end{quote}
%
% \DescribeMacro{\IfAKA}
% This macro tests whether or not a regular or excluded form of cross-reference control sequence exists. The syntax is:
-% \begin{quote}\small
-% \fbox{\mystrut\ \cmd{\IfAKA}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{y}\marg{n}\marg{excluded} }
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{@{}l@{}}
+% {\Large\strut}^^A
+% \cmd{\IfAKA}\oarg{FNN}\marg{SNN|,|Affix}\oarg{Alternate}\marg{y}\marg{n}\marg{excl}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% This macro works like \cmd{\IfMainName}, although it has an additional \meta{excluded} branch in order to detect the activity of \cmd{\ExcludeName} (Section~\ref{sec:IndexXref}).
-%
-% Cross-references are governed by name control sequences ending in \texttt{!PN} (Section~\ref{sec:NamePatterns}). Regular cross-reference control sequences (the \marg{y} path) expand to empty. Excluded control sequences (the \marg{excluded} path) expand to \texttt{!}.
+% This macro also works like \cmd{\IfMainName}, except that it has an additional \meta{excl} branch in order to detect the activity of \cmd{\ExcludeName} (Section~\ref{sec:GeneralIndex}).
%
-%\cmd{\ExcludeName} creates excluded xrefs; \cmd{\IncludeName} destroys them. Regular xrefs are created by \cmd{\IndexRef}, \cmd{\AKA}, \cmd{\AKA*}, and \cmd{\PName}; they are destroyed by \cmd{\IncludeName*}. Here is how we use this logic:
-%
-% \begin{enumerate}
-% \item In the text we refer to former pro-wrestler and Minnesota governor \Name[Jesse]{Ventura}, |\Name[Jesse]{Ventura}|.
-% \item We establish his lesser-known legal name as an alias: ``\IndexRef[James]{Janos}{Ventura, Jesse}\Name[James]{Janos},''\\ |\IndexRef[James]{Janos}{Ventura,|\,|Jesse}\Name[James]{Janos}|.
+% Cross-references\Version{3.5} are governed by name control sequences ending in \texttt{!PN} (Section~\ref{sec:NamePatterns}).
+% \begin{itemize}
+% \item Excluded control sequences (the \meta{excl} path) expand to the value of \cmd{\@nameauth@Exclude}.
+% \item Regular cross-references (the \meta{y} path) do not expand to that value. At present, they are empty.
+% \item \cmd{\ExcludeName} creates excluded xrefs. \cmd{\IncludeName} destroys them.
+% \item Regular xrefs are created by \cmd{\IndexRef}, \cmd{\AKA}, \cmd{\PName} and their starred forms. Regular xrefs are destroyed by \cmd{\IncludeName*}.
+% \end{itemize}
%
-% \item We get the result: ``\IfAKA[James]{Janos}{\Name*[Jesse]{Ventura} is a stage name}{\Name*[Jesse]{Ventura} is a regular name}{}.'' If we do not use \cmd{\ExcludeName}, we can leave the \marg{excluded} branch empty:
+% Based on the known facts above, here we offer some examples about how to use this logic:
+% \begin{enumerate}
+% \item In the\PatInfo{\ShowPattern[Jesse]{Ventura}!MN\break \ShowPattern[James]{Janos}!PN\break \ShowPattern[James]{Janos}!MN} text we refer to former pro-wrestler and Minnesota governor \Name[Jesse]{Ventura}, |\Name[Jesse]{Ventura}|.
+% \item We establish his lesser-known legal name as an alias: ``\IndexRef[James]{Janos}{Ventura, Jesse}\Name[James]{Janos}'',\\ |\IndexRef[James]{Janos}{Ventura,|\,|Jesse}\Name[James]{Janos}|.
+%
+% \item We get the result: ``\IfAKA[James]{Janos}{\Name*[Jesse]{Ventura} is a stage name}{\Name*[Jesse]{Ventura} is a regular name}{}''. If we do not use \cmd{\ExcludeName}, we can leave the \meta{excl} branch empty:
+% \end{enumerate}
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -3624,16 +4255,19 @@ the README.txt or README for more information.
% {\Name*[Jesse]{Ventura} is a regular name}%
% {}\end{verbatim}
% \end{quote}
-% \end{enumerate}
%
-% Otherwise, based on Section~\ref{sec:IndexXref}, we get: ``\IfAKA{Grinch}{\Name{Grinch} is an alias}{\Name{Grinch} is not an alias}{\Name{Grinch} is excluded}'':
-% \begin{quote}\small
+% Otherwise, based on Section~\ref{sec:GeneralIndex}, we get:
+% ``\IfAKA{Grinch}
+% {\Name{Grinch} is an alias}
+% {\Name{Grinch} is not an alias}
+% {\Name{Grinch} is excluded}'':
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern{Grinch}!PN}\vspace{-5ex}
% \StartNum
% \begin{verbatim}
-%\IfAKA{Grinch}%
+%``\IfAKA{Grinch}%
% {\Name{Grinch} is an alias}%
% {\Name{Grinch} is not an alias}%
-% {\Name{Grinch} is excluded}\end{verbatim}
+% {\Name{Grinch} is excluded}''\end{verbatim}
% \end{quote}
%
% We can combine all these macros create a complete test:
@@ -3656,39 +4290,47 @@ the README.txt or README for more information.
% {excluded path}\end{verbatim}
% \end{quote}
%
-% We can use the text tag macros with the conditional macros to present information that depends on what names have already occurred. One must avoid unbounded recursion that results in a stack overflow (Section~\ref{sec:TextTags}):
-% \begin{quote}\small
+% If\Info{Sync with floats} one uses names in floats and in the text, the testing macros can synchronize a float with the text. Assume that we want to print a full name for whichever appears first, like \LJWG[Johann Wolfgang von] instead of \LJWG. In both the text and the float we use the following:
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern[J.W. von]{Goethe}!MN}\vspace{-5ex}
+% \StartNum
+% \begin{verbatim}
+%\IfMainName[J.W. von]{Goethe}
+% {\Name*[J.W. von]{Goethe}}
+% {\Name*[J.W. von]{Goethe}[Johann Wolfgang von]}\end{verbatim}
+% \end{quote}
+%
+% Text tags can work\Info{Sync with events} with the conditional macros to prevent anachronistic references. This aids working with history texts, game books, and so on. One must avoid unbounded recursion that results in a stack overflow (Section~\ref{sec:TextTags}):
+% \begin{quote}\small\leavevmode\PatInfo{\ShowPattern{Paul}!PN\break \ShowPattern{Saul, of Tarsus}!DB\break \ShowPattern{Jesus, Christ}!MN\break \ShowPattern[Lucius]{Sergius Paulus}!MN\break \ShowPattern{Paul}!MN\break \ShowPattern{Saul, of Tarsus}!MN}\vspace{-5ex}
% \StartNum
% \begin{verbatim}
%\IndexRef{Paul}{Saul of Tarsus}
-%\NameAddInfo{Saul, of Tarsus}{\IfMainName{Jesus, Christ}
+%\NameAddInfo{Saul, of Tarsus}
+% {\IfMainName{Jesus, Christ}
% {\IfMainName[Lucius]{Sergius Paulus}
-% {renames himself \Name{Paul}}
+% {renamed himself \Name{Paul}}
% {a preacher to the Gentiles}}
% {wrote that he persecuted Christians}}
+%\Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}.
+%He saw a vision of \Name{Jesus, Christ} on the road to Damascus.
+%\Name{Saul, of Tarsus} became \NameQueryInfo{Saul, of Tarsus}.
+%After converting \Name[Lucius]{Sergius Paulus},
+%\Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}.\end{verbatim}
%
-%\Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}. He
-%saw a vision of \Name{Jesus, Christ} on the road to Damascus
-%and became \NameQueryInfo{Saul, of Tarsus}. After converting
-%\Name[Lucius]{Sergius Paulus}, \Name{Saul, of Tarsus}
-%\NameQueryInfo{Saul, of Tarsus} in honor of that.\end{verbatim}
-%
-% \smallskip
% \IndexRef{Paul}{Saul of Tarsus}
-% \NameAddInfo{Saul, of Tarsus}{\IfMainName{Jesus, Christ}
-% {\IfMainName[Lucius]{Sergius Paulus}
-% {renamed himself \Name{Paul}}
-% {a preacher to the Gentiles}}
-% {wrote that he persecuted Christians}}
-%
-% \Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}. He
-% saw a vision of \Name{Jesus, Christ} on the road to Damascus
-% and became \NameQueryInfo{Saul, of Tarsus}. After converting
-% \Name[Lucius]{Sergius Paulus}, \Name{Saul, of Tarsus}
-% \NameQueryInfo{Saul, of Tarsus} in honor of that.
+% \NameAddInfo{Saul, of Tarsus}
+% {\IfMainName{Jesus, Christ}
+% {\IfMainName[Lucius]{Sergius Paulus}
+% {renamed himself \Name{Paul}}
+% {a preacher to the Gentiles}}
+% {wrote that he persecuted Christians}}
+% \Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}.
+% He saw a vision of \Name{Jesus, Christ} on the road to Damascus.
+% \Name{Saul, of Tarsus} became \NameQueryInfo{Saul, of Tarsus}.
+% After converting \Name[Lucius]{Sergius Paulus},
+% \Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}.
% \end{quote}
%
-% Using these tests inside other macros or passing control sequences to them may create false results (see \textit{The \TeX book}, 212--15). That is why \textsf{nameauth} uses token registers to save name arguments (Section~\ref{sec:Hooksii}. Consider using \cmd{\noexpand} in macros passed as name arguments and see also Section~\ref{sec:Unicode}. Using the \textsf{trace} package, \cmd{\show}, or \cmd{\meaning} can help one mitigate problems.
+% Using these tests\Info{Caveats} inside other macros or passing control sequences to them may create false results (see \textit{The \TeX book}, 212--15). That is why \textsf{nameauth} uses token registers to save name arguments (Section~\ref{sec:Hooksii}. Consider using \cmd{\noexpand} in macros passed as name arguments and see also Section~\ref{sec:Unicode}. Using the \textsf{trace} package, \cmd{\show}, or \cmd{\meaning} can help one mitigate problems.
%
% \ReturnLink
% \newpage
@@ -3696,166 +4338,161 @@ the README.txt or README for more information.
% \subsection{Alternate Name Macros}
% \label{sec:AKA}
%
-% The\Version{3.0} macros in this section predate \cmd{\IndexRef} and have a syntax and behavior recalling early package versions.\footnote{Before version 3.0 the lack of modularity resulted in separate name parsing, name display, and indexing for the naming macros and the alternate name macros. The version 3 series has corrected many early missteps while remaining compatible.}
-% Using \cmd{\IndexRef} with \cmd{\Name} can be more flexible (cf. page~\pageref{page:ManualXref}). To save space, we show the syntax of these macros using \meta{SAFX} as the equivalent of \meta{SNN|,| Affix}. Common properties include:
+% The\Version{3.0} macros in this section predate \cmd{\IndexRef} and are less flexible than just using \cmd{\IndexRef} with \cmd{\Name} (cf. page~\pageref{page:IdxVariants}). We recommend the macros below only for backward compatibility, or if one likes using them. To save space, we show the syntax of these macros using \meta{SAFX} as the equivalent of \meta{SNN|,| Affix}.
%
% \begin{itemize}
% \item These macros do not create page references.
-% \item The target \oarg{FNN}\marg{SAFX} comes before the xref printed in the text: \oarg{xref FNN}\marg{xref SAFX}\oarg{xref Alternate}.
-% \item The obsolete syntax cannot be used with \oarg{FNN}\marg{SAFX}.
-% \item Only the \meta{SAFX} and \meta{xref SAFX} arguments are able to use comma-delimited suffixes.
+% \item Opposite of \cmd{\IndexRef}, the target \oarg{FNN}\marg{SAFX} comes first; then the cross-reference \oarg{xref FNN}\marg{xref SAFX}\oarg{xref Alternate}.
+% \item The obsolete syntax cannot be used with \oarg{FNN}\marg{SAFX}; it can be used with \oarg{xref FNN}\marg{xref SAFX}\oarg{xref Alternate}.
+% \item Only \meta{SAFX} and \meta{xref SAFX} can have comma-delimited suffixes.
% \item One cannot use \cmd{\TagName} with a cross-reference, but one can sort it with \cmd{\PretagName}\oarg{xref FNN}\marg{xref SAFX}\marg{sort tag}.
% \end{itemize}
%
% \DescribeMacro{\AKA}
% \cmd{\AKA} (\textit{also known as}) and its starred form display an alias in the text and create a cross-reference in the index.
% \DescribeMacro{\AKA*}
-% They display and format names differently than the name macros:
+% They format names differently than \cmd{\Name}, etc.:
% \begin{quote}\small
-% \fbox{\vbox{\hbox{\mystrut\ \cmd{\AKA\ }\oarg{FNN}\marg{SAFX}\oarg{xref FNN}\marg{xref SAFX}\oarg{xref Alternate} }\par
-% \hbox{\mystrut\ \cmd{\AKA*}\oarg{FNN}\marg{SAFX}\oarg{xref FNN}\marg{xref SAFX}\oarg{xref Alternate} }}}
+% \fbox{
+% \begin{tabular}{@{}l@{}}
+% {\Large\strut}\cmd{\AKA\ }\oarg{FNN}\marg{SAFX}\oarg{xref FNN}\marg{xref SAFX}\oarg{xref Alternate} \vspace{-2pt}\\
+% {\Large\strut}\cmd{\AKA*}\oarg{FNN}\marg{SAFX}\oarg{xref FNN}\marg{xref SAFX}\oarg{xref Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
%
-% Both macros create a cross-reference in the index from the \meta{xref FNN}, \meta{xref SAFX}, and \meta{xref Alternate} arguments to a target defined by \meta{FNN} and \meta{SAFX}, regardless of whether that name exists. The order of the name and cross-reference in \cmd{\AKA} is opposite that of \cmd{\IndexRef}. Otherwise the \meta{xref Alternate} argument would be ambiguous with \meta{FNN}. \cmd{\AKA} prints a long form of the cross-reference name in the text. \cmd{\SeeAlso} works with \cmd{\AKA}, \cmd{\AKA*}, and \cmd{\PName}.
-%
-% \cmd{\AKA} prints the \meta{xref FNN} and \meta{xref SAFX} arguments in the body text. If \meta{xref Alternate} is present with \meta{xref FNN}, \cmd{\AKA} swaps them in the text. If \meta{xref Alternate} is present without \meta{xref FNN}, the old syntax is triggered, which we do not recommend. The caps and reversing macros work with \cmd{\AKA}.
-%
-% \cmd{\AKA*}\Version{3.0} prints short name references like \cmd{\FName}, meaning that \cmd{\ForceFN} works with it in the same manner. For the older behavior of \cmd{\AKA*} use the \texttt{oldAKA} option or always precede \cmd{\AKA*} with \cmd{\ForceFN}.
+% \begin{itemize}
+% \item Both macros create a cross-reference in the index from the \meta{xref FNN}, \meta{xref SAFX}, and \meta{xref Alternate} arguments to a target defined by \meta{FNN} and \meta{SAFX}.
+% \item The order of the name and cross-reference in \cmd{\AKA} is opposite that of \cmd{\IndexRef} in order to avoid ambiguity.
+% \item \cmd{\AKA} prints a long form of the cross-reference name in the text. \cmd{\SeeAlso} works with \cmd{\AKA}, \cmd{\AKA*}, \cmd{\PName}, and \cmd{\PName*}.
+% \item \cmd{\AKA} prints the \meta{xref FNN} and \meta{xref SAFX} arguments in the text.
+% \item If \meta{xref Alternate} is present with \meta{xref FNN}, or if \meta{xref Affix} when \meta{xref FNN} is absent, \cmd{\AKA} swaps them only in the text.
+% \item If \meta{xref Alternate} is present without \meta{xref FNN} and \meta{xref Affix}, the obsolete syntax is used.
+% \item \cmd{\AKA*}\Version{3.0} is analogous to \cmd{\FName} and \cmd{\ForceFN} works with it. The \texttt{oldAKA} option implies \cmd{\ForceFN} with every use of \cmd{\AKA*}.
+% \item Neither\Version{3.5} \cmd{\AKA} nor its derivatives permit the effects of \cmd{\ForgetThis} and \cmd{\SubvertThis} to ``pass through'' because they produce output in the text. The \texttt{oldreset} option negates this.
+% \end{itemize}
%
-% We make cross-references to \Name[Bob]{Hope}, where all of the forms below create the cross-reference ``\ShowIdxPageref*[Leslie Townes]{Hope} \textit{see} \ShowIdxPageref*[Bob]{Hope}'':
-% \begin{center}\small\MyStretch
+% We make cross-references to \Name[Bob]{Hope}; all of the forms below will create the cross-reference ``\ShowIdxPageref*[Leslie Townes]{Hope} \textit{see} \ShowIdxPageref*[Bob]{Hope}'':
+% \begin{center}\footnotesize\vspace{2ex}\Info{\strut\footnotesize Name Pattern(s):\hfill \break \ttfamily \ShowPattern[Bob]{Hope}!MN\break \ShowPattern[Leslie Townes]{Hope}!PN}\vspace{-2ex}\MyStretch
% \begin{tabular}{p{0.6\textwidth}l}\toprule
-% \footnotesize|\AKA[Bob]{Hope}[Leslie Townes]{Hope}| & \AKA[Bob]{Hope}[Leslie Townes]{Hope}\\
-% \rowcolor{black!7!white}\footnotesize|\RevComma\AKA[Bob]{Hope}[Leslie Townes]{Hope}| & \RevComma\AKA[Bob]{Hope}[Leslie Townes]{Hope}\\
-% \footnotesize|\AKA[Bob]{Hope}[Leslie Townes]{Hope}[Lester T.]| & \AKA[Bob]{Hope}[Leslie Townes]{Hope}[Lester T.]\\
-% \rowcolor{black!7!white}\footnotesize|\AKA*[Bob]{Hope}[Leslie Townes]{Hope}| & \AKA*[Bob]{Hope}[Leslie Townes]{Hope}\\
-% \footnotesize|\AKA*[Bob]{Hope}[Leslie Townes]{Hope}[Lester]| & \AKA*[Bob]{Hope}[Leslie Townes]{Hope}[Lester]\\\bottomrule
+% |\AKA[Bob]{Hope}[Leslie Townes]{Hope}| & \AKA[Bob]{Hope}[Leslie Townes]{Hope}\\
+% \rowcolor{grey}|\RevComma\AKA[Bob]{Hope}[Leslie Townes]{Hope}| & \RevComma\AKA[Bob]{Hope}[Leslie Townes]{Hope}\\
+% |\AKA[Bob]{Hope}[Leslie Townes]{Hope}[Lester T.]| & \AKA[Bob]{Hope}[Leslie Townes]{Hope}[Lester T.]\\
+% \rowcolor{grey}|\AKA*[Bob]{Hope}[Leslie Townes]{Hope}| & \AKA*[Bob]{Hope}[Leslie Townes]{Hope}\\
+% |\AKA*[Bob]{Hope}[Leslie Townes]{Hope}[Lester]| & \AKA*[Bob]{Hope}[Leslie Townes]{Hope}[Lester]\\\bottomrule
% \end{tabular}
% \end{center}
-% \newpage
%
-% Next we have references to \KeepAffix\Name*{Louis, XIV}, \Name{Lao-tzu}, and \KeepAffix\Name*{Gregory, I}, as well as \Name[Lafcadio]{Hearn} and \Name[Charles]{du Fresne}:
-% \begin{center}\small\MyStretch
-% \begin{tabular}{p{0.6\textwidth}l}\toprule
-% |\AKA{Louis, XIV}{Sun King}| & \AKA{Louis, XIV}{Sun King}\\
-% \rowcolor{black!7!white}|\AKA*{Louis, XIV}{Sun King}| & \AKA{Louis, XIV}{Sun King}\\
+% Next we refer to \KeepAffix\Name*{Louis, XIV}, and \Name{Lao-tzu}, as well as \Name[Lafcadio]{Hearn} and \Name[Charles]{du~Fresne}. The caps and reversing macros work. Even with \cmd{\ForceName}, the formatting hooks do not change. \cmd{\AKA} and its derivatives use only \cmd{\MainNamesHook} and \cmd{\FrontNamesHook}.
+%
+% \begin{center}\small\vspace{2ex}\PatInfo{\ShowPattern{Louis, XIV}!MN\break \ShowPattern{Lao-tzu}!MN\break \ShowPattern[Lafcadio]{Hearn}!MN\break \ShowPattern[Charles]{du~Fresne}!MN\break \ShowPattern{Sun King}!PN\break \ShowPattern{Li, Er}!PN\break \ShowPattern{du~Cange}!PN\break \ShowPattern{Koizumi, Yakumo}!PN}\vspace{-2ex}\MyStretch
+% \begin{tabular}{p{0.65\textwidth}l}\toprule
+% \rowcolor{grey}|\AKA{Louis, XIV}{Sun King}| & \AKA{Louis, XIV}{Sun King}\\
+% |\ForceName\AKA{Louis, XIV}{Sun King}| & \ForceName\AKA{Louis, XIV}{Sun King}\\
+% \rowcolor{grey}|\AKA*{Louis, XIV}{Sun King}| & \AKA{Louis, XIV}{Sun King}\\
% |\AKA{Lao-tzu}{Li, Er}| & \AKA{Lao-tzu}{Li, Er}\\
-% \rowcolor{black!7!white}|\AKA*{Lao-tzu}{Li, Er}| & \AKA*{Lao-tzu}{Li, Er}\\
-% |\AKA[Charles]{du Fresne}{du Cange}| & \AKA[Charles]{du Fresne}{du Cange}\\
-% \rowcolor{black!7!white}|\CapThis\AKA[Charles]{du Fresne}{du Cange}| & \CapThis\AKA[Charles]{du Fresne}{du Cange}\\
-% \footnotesize|\CapName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}| & \CapName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}\\
-% \rowcolor{black!7!white}\footnotesize|\RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}| & \RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}\\
-% \footnotesize|\AKA{Gregory, I}{Gregory}[the Great]| & \AKA{Gregory, I}{Gregory}[the Great]\\
-% \rowcolor{black!7!white}\footnotesize|\AKA*{Gregory, I}{Gregory}[the Great]| & \AKA*{Gregory, I}{Gregory}[the Great]\\
-% \footnotesize|\ForceFN\AKA*{Gregory, I}{Gregory}[the Great]| & \ForceFN\AKA*{Gregory, I}{Gregory}[the Great]\\\bottomrule
+% \rowcolor{grey}|\AKA*{Lao-tzu}{Li, Er}| & \AKA*{Lao-tzu}{Li, Er}\\
+% |\AKA[Charles]{du~Fresne}{du~Cange}| & \AKA[Charles]{du~Fresne}{du~Cange}\\
+% \rowcolor{grey}|\CapThis\AKA[Charles]{du~Fresne}{du~Cange}| & \CapThis\AKA[Charles]{du~Fresne}{du~Cange}\\
+% |\CapName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}| & \CapName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}\\
+% \rowcolor{grey}|\RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}| & \RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}\\\bottomrule
% \end{tabular}
% \end{center}\medskip
%
-% \noindent\cmd{\AKA}\Info{\texttt{formatAKA}} and its derivatives use \cmd{\MainNamesHook} and \cmd{\FrontNamesHook} to print the cross-reference because that helped keep cross-references distinct from names in early package versions.
-%
-% The \texttt{formatAKA} package option allows first-use formatting of alternate names, but cross-references use their own system for being ``first'' (Section~\ref{sec:NamePatterns}). We simulate \texttt{formatAKA} and use |\AKA{Elizabeth,I}[Good Queen]{Bess}|. The colors indicate which hooks are used.
-% \begin{quote}\small\MyStretch
-% \makeatletter\@nameauth@AKAFormattrue\makeatother\NamesInactive
-% \emph{Front Matter:} \ForgetThis\LEliz\ was known as ``\AKA{Elizabeth,I}[Good Queen]{Bess}.''\\
-% Again we mention Queen \Eliz, ``\AKA{Elizabeth, I}[Good Queen]{Bess}.''\\
-% \cmd{\ForceName}: \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}.
+% In order to format\Info{\texttt{formatAKA}} cross-references like names, either avoid using these older macros or use the \texttt{formatAKA} option. That allows \cmd{\ForceName} to work properly, but cross-references use their own system for being ``first'' (Section~\ref{sec:NamePatterns}). We simulate \texttt{formatAKA} and use |\AKA{Elizabeth,I}[Good Queen]{Bess}|:
%
-% \NamesActive
-% \emph{Main Matter:} \ForgetThis\LEliz\ was known as ``\AKA{Elizabeth,I}[Good Queen]{Bess}.''\\
-% Again we mention Queen \Eliz, ``\AKA{Elizabeth, I}[Good Queen]{Bess}.''\\
-% \cmd{\ForceName}: \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}.
-% \end{quote}
+% \begin{center}\small\vspace{2ex}\PatInfo{\ShowPattern{Elizabeth, I}!NF\break \ShowPattern[Good Queen]{Bess}!PN\break \ShowPattern{Elizabeth, I}!MN}\vspace{-2ex}\MyStretch
+% \makeatletter\@nameauth@AKAFormattrue\makeatother
+% \begin{tabular}{rlll}\toprule
+% \global\NamesInactive Front Matter: & \ForgetThis\Eliz & \Eliz & \AKA{Elizabeth,I}[Good Queen]{Bess}\\
+% \rowcolor{grey}\global\NamesActive Main Matter: & \ForgetThis\Eliz & \Eliz & \AKA{Elizabeth, I}[Good Queen]{Bess}\\
+% Using \cmd{\ForceName}: & & & \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}\\\bottomrule
+% \end{tabular}
+% \end{center}
+%
+% The first appearance of \AKA{Elizabeth,I}[Good Queen]{Bess} uses either \cmd{\NamesFormat} or \cmd{\FrontNamesFormat}. After that, only \cmd{\mainNameHook} and \cmd{\FrontNameHook} can be used without \cmd{\ForceName}, which triggers the first-use hooks.\medskip
%
-% The first appearance of the cross-reference uses the first-use hooks of whatever naming system is active. Thereafter we only use the subsequent-use hooks of both systems unless we use \cmd{\ForceName}.\medskip
-%
% Below\Info{\texttt{alwaysformat}} we compare the behavior of the \texttt{alwaysformat} option, where all regular names use only \cmd{\NamesFormat} and \cmd{\FrontNamesFormat}:
-%
-% \begin{quote}\small\MyStretch
-% \makeatletter\@nameauth@AlwaysFormattrue\makeatother\NamesInactive
-% \emph{Front Matter:} \ForgetThis\LEliz\ was known as ``\AKA{Elizabeth, I}[Good Queen]{Bess}.''\\
-% Again we mention Queen \Eliz, ``\AKA{Elizabeth, I}[Good Queen]{Bess}.''\\
-% \cmd{\ForceName}: \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}.
%
-% \NamesActive
-% \emph{Main Matter:} \ForgetThis\LEliz\ was known as ``\AKA{Elizabeth, I}[Good Queen]{Bess}.''\\
-% Again we mention Queen \Eliz, ``\AKA{Elizabeth, I}[Good Queen]{Bess}.''\\
-% \cmd{\ForceName}: \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}.
+% \begin{quote}\small\MyStretch
+% \makeatletter\@nameauth@AlwaysFormattrue\makeatother
+% \ForgetThis\LEliz\ was known as ``\AKA{Elizabeth,I}[Good Queen]{Bess}''. Again we mention Queen \Eliz, ``\AKA{Elizabeth, I}[Good Queen]{Bess}''. Using \cmd{\ForceName}: \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}.
% \end{quote}
%
% \DescribeMacro{\PName}
% These convenience macros (an early feature) print a main name and a cross-reference in parentheses:
% \DescribeMacro{\PName*}
% \begin{quote}\small
-% \fbox{\vbox{\hbox{\mystrut\ \cmd{\PName\ }\oarg{FNN}\marg{SAFX}\oarg{xref\,FNN}\marg{xref\,SAFX}\oarg{xref\,Alternate}\ }\par
-% \hbox{\mystrut\ \cmd{\PName*}\oarg{FNN}\marg{SAFX}\oarg{xref\,FNN}\marg{xref\,SAFX}\oarg{xref\,Alternate}\ }}}
+% \fbox{
+% \begin{tabular}{@{}l@{}}
+% {\Large\strut}\cmd{\PName\ }\oarg{FNN}\marg{SAFX}\oarg{xref\,FNN}\marg{xref\,SAFX}\oarg{xref\,Alternate}\vspace{-2pt}\\
+% {\Large\strut}\cmd{\PName*}\oarg{FNN}\marg{SAFX}\oarg{xref\,FNN}\marg{xref\,SAFX}\oarg{xref\,Alternate}\\
+% \end{tabular}
+% }
% \end{quote}
% The starred form \cmd{\PName*} is like the starred form \cmd{\Name*} to the extent that it prints a long form of \meta{FNN}\meta{SAFX}. It does not affect the cross-reference arguments \meta{xref FNN}\meta{xref SAFX}\meta{xref Alternate}.
-%
-% Except \cmd{\SkipIndex}, prefix macros only affect \meta{FNN}\meta{SAFX}, not the cross-reference, which always takes a long form. \cmd{\SkipIndex} keeps both names out of the index. \cmd{\PName} cannot use the obsolete syntax for the main name, but it can do so for the alternate name.
-%
-% \begin{center}\footnotesize\MyStretch
-% \begin{tabular}{p{0.45\textwidth}l}\toprule
-% \bfseries\small Recommended Macro\,/\,Output & \bfseries\small Index\\\midrule
-% |\PName[Mark]{Twain}%|\newline| [Samuel L.]{Clemens}| & \\
-% \PName[Mark]{Twain}[Samuel L.]{Clemens} & \ShowIdxPageref*[Samuel L.]{Clemens} \textit{see} \ShowIdxPageref*[Mark]{Twain}\\
-% \PName[Mark]{Twain}[Samuel L.]{Clemens} & \ShowIdxPageref*[Samuel L.]{Clemens} \textit{see} \ShowIdxPageref*[Mark]{Twain}\\
-% \rowcolor{black!7!white}|\PName*[Mark]{Twain}%|\newline| [Samuel L.]{Clemens}[Sam]| & \\
-% \rowcolor{black!7!white}\PName*[Mark]{Twain}[Samuel L.]{Clemens}[Sam] & \ShowIdxPageref*[Samuel L.]{Clemens} \textit{see} \ShowIdxPageref*[Mark]{Twain}\\
-% |\PName{Voltaire}%|\newline| [François-Marie]{Arouet}| & \\
-% \PName{Voltaire}[François-Marie]{Arouet} & \ShowIdxPageref*[François-Marie]{Arouet} \textit{see} \ShowIdxPageref*{Voltaire}\\
-% \PName{Voltaire}[François-Marie]{Arouet} & \ShowIdxPageref*[François-Marie]{Arouet} \textit{see} \ShowIdxPageref*{Voltaire}\\
-% \rowcolor{black!7!white}|\PName{William, I}%|\newline| {William, the Conqueror}| & \\
-% \rowcolor{black!7!white}\PName{William, I}{William, the Conqueror} & \ShowIdxPageref*{William, the Conqueror} \textit{see} \ShowIdxPageref*{William, I}\\
-% \rowcolor{black!7!white}\PName{William, I}{William, the Conqueror} & \ShowIdxPageref*{William, the Conqueror} \textit{see} \ShowIdxPageref*{William, I}\\
-% |\PName*{William, I}%|\newline| {William, the Conqueror}| & \\
-% \PName*{William, I}{William, the Conqueror} & \ShowIdxPageref*{William, the Conqueror} \textit{see} \ShowIdxPageref*{William, I}\\
-% \rowcolor{black!7!white}|\PretagName%|\newline| {\textit{Doctor mellifluus}}%|\newline| {Doctor mellifluus}| & \\
-% \rowcolor{black!7!white}|\PName{Bernard, of Clairvaux}%|\newline| {\textit{Doctor mellifluus}}| & \\
-% \rowcolor{black!7!white}\PName{Bernard, of Clairvaux}{\textit{Doctor mellifluus}} & \ShowIdxPageref*{\textit{Doctor mellifluus}} \textit{see} \ShowIdxPageref*{Bernard, of Clairvaux}\\
-% \rowcolor{black!7!white}\PName{Bernard, of Clairvaux}{\textit{Doctor mellifluus}} & \ShowIdxPageref*{\textit{Doctor mellifluus}} \textit{see} \ShowIdxPageref*{Bernard, of Clairvaux}\\
-% |\ForgetThis\PName{Lao-tzu}{Li, Er}| & \\
+%
+% \begin{itemize}
+% \item Most prefix macros only affect \meta{FNN}\meta{SAFX}, not the cross-reference, which always has a long form.
+% \item \cmd{\SkipIndex} keeps both names out of the index.
+% \item \cmd{\PName} allows the obsolete syntax only for the alternate name.
+% \item Even though it is permitted, please avoid using the obsolete syntax with the xref part of \cmd{\PName}, such as \cmd{\PName\{Lao-tzu\}\{Li\}[Er]} and \cmd{\PName\{William, I\}\{William\}[the Conqueror]}.
+% \end{itemize}
+%
+% Alternate names for the non-Western syntax do not work with the name portion of \cmd{\PName}; only the cross-reference portion can support it. If we attempted to use |\SkipIndex\PName*{William, I}[William]{the Conqueror}|, this macro would put ``\SkipIndex\PName*{William, I}[William]{the Conqueror}'' in the body text, but its index entry would be incorrect: ``\ShowIdxPageref*[William]{the Conqueror} \textit{see} \ShowIdxPageref*{William, I}''. We use |\ForgetName{William, I}|\ForgetName{William, I} to prepare for the example below that shows the preferred usage of these macros:\footnote{The xref pattern \texttt{\ShowPattern{\textit{Doctor mellifluus}}!PN} is too large for the margin note. With \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern[François-Marie]{Arouet}!PN} the glyphs \texttt{Ãğ} correspond to the Unicode encoding macro \cmd{\IeC\{}\cmd{\c\ c\}}.}
+%
+% \begin{center}\small\vspace{2ex}\PatInfo{\scriptsize\ShowPattern[Mark]{Twain}!MN\break \ShowPattern[Samuel L.]{Clemens}!PN\break \ShowPattern{Voltaire}!MN\break \ShowPattern[François-Marie]{Arouet}!PN\break \ShowPattern{William, I}!MN\break \ShowPattern{William, the Conqueror}!PN\break \ShowPattern{Bernard, of Clairvaux}!MN\break \ShowPattern{Lao-tzu}!MN\break \ShowPattern{Li, Er}!PN}\vspace{-2ex}\MyStretch
+% \begin{tabular}{p{0.42\textwidth}@{\ \ }p{0.46\textwidth}}\toprule
+% \bfseries\small Macro/Output & \bfseries\small Index\\\midrule
+% \rowcolor{grey}\multicolumn{2}{l}{\cmd{\PName[Mark]\{Twain\}[Samuel L.]\{Clemens\}}}\\
+% \rowcolor{grey}\PName[Mark]{Twain}[Samuel L.]{Clemens} & \ShowIdxPageref*[Samuel L.]{Clemens} \textit{see} \ShowIdxPageref*[Mark]{Twain}\\
+% \rowcolor{grey}\PName[Mark]{Twain}[Samuel L.]{Clemens} & \ShowIdxPageref*[Samuel L.]{Clemens} \textit{see} \ShowIdxPageref*[Mark]{Twain}\\
+% \multicolumn{2}{l}{\cmd{\PName*[Mark]\{Twain\}[Samuel L.]\{Clemens\}[Sam]}}\\
+% \PName*[Mark]{Twain}[Samuel L.]{Clemens}[Sam] & \ShowIdxPageref*[Samuel L.]{Clemens} \textit{see} \ShowIdxPageref*[Mark]{Twain}\\
+% \rowcolor{grey}\multicolumn{2}{l}{\cmd{\PName\{Voltaire\}[François-Marie]\{Arouet\}}}\\
+% \rowcolor{grey}\PName{Voltaire}[François-Marie]{Arouet} & \ShowIdxPageref*[François-Marie]{Arouet} \textit{see} \ShowIdxPageref*{Voltaire}\\
+% \rowcolor{grey}\PName{Voltaire}[François-Marie]{Arouet} & \ShowIdxPageref*[François-Marie]{Arouet} \textit{see} \ShowIdxPageref*{Voltaire}\\
+% \multicolumn{2}{l}{\cmd{\PName\{William, I\}\{William, the Conqueror\}}}\\
+% \PName{William, I}{William, the Conqueror} & \ShowIdxPageref*{William, the Conqueror} \textit{see} \ShowIdxPageref*{William, I}\\
+% \PName{William, I}{William, the Conqueror} & \ShowIdxPageref*{William, the Conqueror} \textit{see} \ShowIdxPageref*{William, I}\\
+% \rowcolor{grey}\multicolumn{2}{l}{\cmd{\PretagName\{}\cmd{\textit\{Doctor mellifluus\}\}\{Doctor mellifluus\}}}\\
+% \rowcolor{grey}\multicolumn{2}{l}{\cmd{\PName\{Bernard, of Clairvaux\}\{}\cmd{\textit\{Doctor mellifluus\}}}\\
+% \rowcolor{grey}\PName{Bernard, of Clairvaux}{\textit{Doctor mellifluus}} & \ShowIdxPageref*{\textit{Doctor mellifluus}} \textit{see} \ShowIdxPageref*{Bernard, of Clairvaux}\\
+% \rowcolor{grey}\PName{Bernard, of Clairvaux}{\textit{Doctor mellifluus}} & \ShowIdxPageref*{\textit{Doctor mellifluus}} \textit{see} \ShowIdxPageref*{Bernard, of Clairvaux}\\
+% \multicolumn{2}{l}{\cmd{\ForgetThis}\cmd{\PName\{Lao-tzu\}\{Li, Er\}}}\\
% \ForgetThis\PName{Lao-tzu}{Li, Er} & \ShowIdxPageref*{Li, Er} \textit{see} \ShowIdxPageref*{Lao-tzu}\\
-% \PName{Lao-tzu}{Li, Er} & \ShowIdxPageref*{Li, Er} \textit{see} \ShowIdxPageref*{Lao-tzu}\\\midrule
-% \bfseries\small Discouraged Macro\,/\,Output & \bfseries\small Index\\\midrule
-% |\PName{William, I}{William}%|\newline| [the Conqueror]| & \\
-% \PName{William, I}{William}[the Conqueror] & \ShowIdxPageref*{William}[the Conqueror] \textit{see} \ShowIdxPageref*{William, I}\\
-% \rowcolor{black!7!white}|\PName{Lao-tzu}{Li}[Er]| & \\
-% \rowcolor{black!7!white}\PName{Lao-tzu}{Li}[Er] & \ShowIdxPageref*{Li}[Er] \textit{see} \ShowIdxPageref*{Lao-tzu}\\\bottomrule
+% \PName{Lao-tzu}{Li, Er} & \ShowIdxPageref*{Li, Er} \textit{see} \ShowIdxPageref*{Lao-tzu}\\\bottomrule
% \end{tabular}
% \end{center}
%
-% The newer non-Western syntax does not work with \cmd{\PName}. If we attempted to use |\SkipIndex\PName*{William, I}[William]{the Conqueror}|, this macro would put ``\SkipIndex\PName*{William, I}[William]{the Conqueror}'' in the body text, but its index entry would be incorrect: ``\ShowIdxPageref*[William]{the Conqueror} \textit{see} \ShowIdxPageref*{William, I}''.
-%
% \ReturnLink
+% \BigBlank
% \newpage
%
+% \begingroup^^A General format hook redefinition.
% \subsection{Longer Examples}
% \label{sec:Hooks}
%
-% Examples from the remainder of this manual are in \texttt{examples.tex}, included with the \textsf{nameauth} documentation.
-%
-% When\Info{\texttt{dtx} files} creating package documentation, any name that has a macro in its argument should be set up in the driver section (the \texttt{nameauth} environment and tags from \cmd{\PretagName} and \cmd{\TagName}). Otherwise, errors can result.
-%
-% \begingroup^^A Start of hook macro redefinition.
-% \subsubsection{Hooks: Intro}
-% \label{sec:Hooksi}
-%
-% In these sections on advanced topics we reset all formatting hooks to do nothing. This helps us focus on the modifications made hereafter.
+% For the rest of this manual, many examples are in \texttt{examples.tex} with the \textsf{nameauth} documentation. Here we set the formatting hooks to the package default.
% \renewcommand*\NamesFormat{}
% \renewcommand*\FrontNamesFormat{}
% \renewcommand*\MainNameHook{}
% \renewcommand*\FrontNameHook{}
%
-% Before we get to the use of text tags and name conditionals in name formatting, we seek to illustrate that something more complex than a font switch can occur in \cmd{\NamesFormat}. Below we put the first mention of a name in boldface, along with a marginal notation if possible.
+% A reminder: When\Info{\texttt{dtx} files} creating package documentation, any name that has a macro in its argument should be set up in the driver section (the \texttt{nameauth} environment and tags from \cmd{\PretagName} and \cmd{\TagName}). Otherwise, errors can result.
+%
+% \subsubsection{Hooks: Intro}
+% \label{sec:Hooksi}
+%
+% Before we get to the use of text tags and name conditionals in name formatting, we seek to illustrate that something more complex than a font switch can occur in \cmd{\NamesFormat}. Below we put the first mention of a name in boldface, along with a marginal notation if possible. Unlike the rest of this section, we do not change formatting macros within a scope. Instead, we illustrate a different approach using \cmd{\let} to save the old value, then restore it later.
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
%\let\OldFormat\NamesFormat
%\renewcommand*\NamesFormat[1]{\textbf{#1}\unless\ifinner
% \marginpar{\raggedleft\scriptsize #1}\fi}
-%\let\NamesFormat\OldFormat
%\PretagName{Vlad, Ţepeş}{Vlad Tepes} % for accented names
-%\TagName{Vlad, II}{ Dracul} % for index information
+%\TagName{Vlad, II}{ Dracul} % for index information
%\TagName{Vlad, III}{ Dracula}\end{verbatim}
%
% \medskip Within the document after the preamble:
@@ -3880,18 +4517,19 @@ the README.txt or README for more information.
% \end{quote}
% Now we have reverted to the default \cmd{\NamesFormat} and we get:
% \begin{itemize}
-% \item |\ForgetThis\Name{Vlad, III}[III Dracula]|\dotfill \ForgetThis\Name{Vlad, III}[III Dracula]
-% \item |\Name*{Vlad, III}|\dotfill \Name*{Vlad, III}
-% \item |\Name{Vlad, III}|\dotfill \Name{Vlad, III}
+% \item \cmd{\ForgetThis}\cmd{\Name\{Vlad, III\}[III Dracula]}\dotfill \ForgetThis\Name{Vlad, III}[III Dracula]
+% \item \cmd{\Name*\{Vlad, III\}}\dotfill \Name*{Vlad, III}
+% \item \cmd{\Name\{Vlad, III\}}\dotfill \Name{Vlad, III}
% \end{itemize}
-% We also set up the cross-reference |\IndexRef{Dracula}{Vlad III}|\IndexRef{Dracula}{Vlad III}. Compare the examples for \LDem\ in Section~\ref{sec:NameParticles}.
-%
+% We also set up the cross-reference \cmd{\IndexRef\{Dracula\}\{Vlad III\}}\IndexRef{Dracula}{Vlad III}. Compare the examples for \LDem\ in Section~\ref{sec:NameAncient}.
+%
% \ReturnLink
% \newpage
-%
+%
% \subsubsection{Hooks: Life Dates}
% \label{sec:Hooksii}
-% We can use name conditionals (Section~\ref{sec:NameTests}) and text tags (Section~\ref{sec:TextTags}) to add life information to names when desired.
+% \begingroup^^A Local format hook redefinition
+% We can use name conditionals (Section~\ref{sec:NameTests}) and text tags (Section~\ref{sec:TextTags}) to add life information to names when desired. We begin a local scope to isolate any changes to the formatting hooks.
%
% \DescribeMacro{\if@nameauth@InName}
% The example \cmd{\NamesFormat} below adds a text tag to the first occurrences of main-matter names.
@@ -3901,17 +4539,14 @@ the README.txt or README for more information.
% \DescribeMacro{\@nameauth@toksa}
% This package makes three token registers available to facilitate using the name conditional macros as we do below.
% \DescribeMacro{\@nameauth@toksb}
-% These registers are necessary for names that contain accents and diacritics.\footnote{In \cmd{\AKA} these registers correspond to the \emph{last} three arguments, the xref.}
-% \DescribeMacro{\@nameauth@toksc}
-%
+% These registers are necessary for names that contain accents and\DescribeMacro{\@nameauth@toksc}
+% diacritics.\footnote{In \cmd{\AKA} these registers correspond to the \emph{last} three arguments, the xref.}
%
-% Below the first use of a name is in small caps. Text tags are in boldface with naming macros, and roman with \cmd{\AKA}. Just because we set up a cross-reference does not mean that we use \cmd{\AKA} by default, as was the case in early versions of \textsf{nameauth}. We use \cmd{\ForceName} to use it more than once with \cmd{\AKA}:
+% Below the first use of a name is in small caps. Text tags are in boldface with naming macros, and roman with \cmd{\AKA}. Just because we set up a cross-reference does not mean that we have to use \cmd{\AKA}. We use \cmd{\ForceName} as needed with \cmd{\AKA}. In the document preamble we set up the following:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
-%\newif\ifNoTag% allows us to work around \ForgetName
-%\let\OldFormat\NamesFormat
-%\let\OldFrontFormat\FrontNamesFormat
+%\newif\ifNoTag
%\makeatletter
%\renewcommand*\NamesFormat[1]{\begingroup%
% \protected@edef\temp{\endgroup\textsc{#1}%
@@ -3931,11 +4566,9 @@ the README.txt or README for more information.
%\makeatother
%\let\FrontNamesFormat\NamesFormat\end{verbatim}
% \end{quote}
-% \let\OldFormat\NamesFormat
-% \let\OldFrontFormat\FrontNamesFormat
% \makeatletter
-% \renewcommand*\NamesFormat[1]{\begingroup%^^A
-% \protected@edef\temp{\endgroup\textsc{#1}%^^A
+% \renewcommand*\NamesFormat[1]{\begingroup^^A
+% \protected@edef\temp{\endgroup\textsc{#1}^^A
% \unless\ifNoTag
% \if@nameauth@InName
% {\bfseries\noexpand\NameQueryInfo
@@ -3947,12 +4580,13 @@ the README.txt or README for more information.
% [\unexpanded\expandafter{\the\@nameauth@toksa}]
% {\unexpanded\expandafter{\the\@nameauth@toksb}}
% [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
-% \fi}\temp\global\NoTagfalse}%^^A
+% \fi}\temp\global\NoTagfalse}^^A
% \makeatother
+% \let\FrontNamesFormat\NamesFormat
%
% We print tags in the first use hooks unless \cmd{\NoTag} is set true. This method uses the two \(\epsilon\)-\TeX{} primitives \cmd{\noexpand} and \cmd{\unexpanded} to avoid repetition of \cmd{\expandafter}. Since \textsf{nameauth} depends on \textsf{etoolbox}, we assume \(\epsilon\)-\TeX.
-%
-% Before we can refer to any text tags, we must create them. Using the approach above, we include a leading space in the text tags. The leading space is needed only when a text tag appears.\footnote{Another way to add that space is to put it in the conditional path of the formatting hook and leave it out of the text tags entirely: \dots\texttt{\{ \}}\cmd{\noexpand}\cmd{\NameQueryInfo}\dots}
+%
+% Before we can refer to any text tags, we must create them. Using the approach above, we include a leading space in the text tags. The leading space is needed only when a text tag appears.\footnote{Another way to add that space is to put it in the conditional path of the formatting hook and leave it out of the text tags: \dots\texttt{\{ \}}\cmd{\noexpand}\cmd{\NameQueryInfo}\dots}
% We also set up a cross-reference, which we will use regardless of whether we also use \cmd{\AKA}. The cross-reference will be created only once and skipped thereafter:
% \begin{quote}\small
% \ContinueNum
@@ -3967,19 +4601,21 @@ the README.txt or README for more information.
% \NameAddInfo{Atatürk}{ (in 1934, a special surname)}
% \IndexRef{Atatürk}{Kemal, Mustafa}
% \newpage
-%
+%
% Now we begin with the first example, which, after all the setup, looks deceptively simple, but highly reusable without extra work:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
%\ForgetThis\Wash held office 1789--97.
%No tags: \Wash.\\
-%First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.\end{verbatim}
+%First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.\\
+%Subsequent use with format and dates: \ForceName\Wash.\end{verbatim}
%
% \smallskip
% \ForgetThis\Wash\ held office 1789--97.\\
% No tags: \Wash.\\
-% First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.
+% First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.\\
+% Subsequent use with format and dates: \ForceName\Wash.
% \end{quote}
%
% Since we already set up a cross-reference with \cmd{\IndexRef}, we can use just the the naming macros with ``Atatürk'' and get the desired formatting without any page references in the index:
@@ -4023,36 +4659,30 @@ the README.txt or README for more information.
% First use, no tag:
% \NoTagtrue\ForceName\AKA[Mustafa]{Kemal}{Atatürk}.
% \end{quote}%
-% Please remember to reset the formatting:
-% \begin{quote}\small
-% \ContinueNum
-% \begin{verbatim}
-%\let\NamesFormat\OldFormat
-%\let\FrontNamesFormat\OldFrontFormat\end{verbatim}
-% \end{quote}
-% \let\NamesFormat\OldFormat
-% \let\FrontNamesFormat\OldFrontFormat
+% Now we end the scope to revert any changes to formatting hooks.
+% \endgroup^^A Local format hook redefinition
%
% \ReturnLink
-% \newpage
-%
+%
% \subsubsection{Hooks: Advanced}
% \label{sec:Hooksiii}
-% \AltFormatActive\begingroup
+% \AltFormatActive
+% In this section we invoke \cmd{\AltFormatActive} and create several scopes containing respective examples. Some macros in this section normally should be defined in a document preamble. We define them locally and ensure that names do not use them when they are undefined. This is not best practices, but it makes sense for this manual's need for multiple redefinitions.
+% \newpage
%
-% \begin{center}\bfseries Alternate Formatting\end{center}
+% \begin{center}\bfseries Alternate Formatting: Details\end{center}
+% \phantomsection
+% Here we discuss the implementation details of alternate formatting, which will engage the rest of the section. This framework provides features that aid both error protection and ease of hook design. Names that use alternate formatting may cause spurious index entries if used also in the default formatting regime.
%
-% \noindent The\Version{3.1} alternate formatting framework provides features that aid both error protection and ease of use. This section uses \cmd{\AltFormatActive}. We do not use the names in this section elsewhere. A name designed for the alternate formatting regime may cause spurious index entries when used in the default formatting regime.
+% Both \cmd{\AltFormatActive} and \cmd{\AltFormatActive*} globally set the internal Boolean flag \cmd{\@nameauth@AltFormattrue}, enabling alternate formatting. \cmd{\AltFormatActive} globally sets \cmd{\@nameauth@DoAlttrue}, which activates formatting. Both flags are reset globally by \cmd{\AltFormatInactive} and normal formatting resumes.
%
-% Both \cmd{\AltFormatActive} and \cmd{\AltFormatActive*} set the internal Boolean flag \cmd{\@nameauth@AltFormattrue}, enabling alternate formatting. \cmd{\AltFormatActive} sets \cmd{\@nameauth@DoAlttrue}, which activates formatting. \cmd{\AltFormatInactive} sets both flags false.
+% \cmd{\AltFormatActive*} normally suppresses formatting changes but it still forces \cmd{\CapThis} to work through \cmd{\AltCaps}. One can leverage this to get the default look of \textsf{nameauth} while mitigating errors if many names use macros in their arguments.
%
-% \cmd{\AltFormatActive*} normally suppresses formatting changes but it still forces \cmd{\CapThis} to work through \cmd{\AltCaps}. This produces the default look of \textsf{nameauth} and prevents Continental formatting, but it also reduces spurious index entries and errors if many names use macros in their arguments.
-%
% Alternate formatting protects against errors created when \cmd{\@nameauth@Cap} (used by \cmd{\CapThis}) gets a failure result from \cmd{\@nameauthUTFtest}, but that result is neither a letter nor a macro that expands to a sequence of letters. Protected macros and other cases may create errors if \cmd{\MakeUppercase} is applied to them. \cmd{\AltCaps} and \cmd{\CapThis} work together to avoid this problem (Section~\ref{sec:AltFormat}).
%
-% \begin{center}\bfseries Continental Format\end{center}
-%
-% \noindent Here we look in greater detail at how \textsf{nameauth} implements the advanced version of Continental formatting. Font changes occur in the short macros \cmd{\textSC}, \cmd{\textIT}, \cmd{\textBF}, and \cmd{\textUC}. They all look similar to \cmd{\textSC}:
+% \begin{center}\bfseries Continental Format: Predefined\end{center}
+% \phantomsection
+% Here we look in greater detail at how \textsf{nameauth} implements the advanced version of Continental formatting. Font changes occur in the short macros \cmd{\textSC}, \cmd{\textIT}, \cmd{\textBF}, and \cmd{\textUC}. They all look similar to \cmd{\textSC}:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4060,8 +4690,8 @@ the README.txt or README for more information.
% \if@nameauth@DoAlt\textsc{#1}\else#1\fi
%}\end{verbatim}
% \end{quote}
-%
-% If the \texttt{altformat} option or \cmd{\AltFormatActive} is used, formatting occurs in both the text and in the index. We want small caps on by default in the text and index, then off in subsequent uses. Thus, we use \cmd{\AltFormatActive}, then redefine \cmd{\MainNameHook} because it is the subsequent use hook. \cmd{\AltOff} deactivates formatting only in the formatting hooks:
+%
+% If the \texttt{altformat} option or \cmd{\AltFormatActive} is used, formatting occurs in both the text and in the index. \cmd{\AltOff} deactivates formatting only in the formatting hooks:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
@@ -4070,7 +4700,7 @@ the README.txt or README for more information.
%}\end{verbatim}
% \end{quote}
%
-% \cmd{\CapThis} now triggers \cmd{\AltCaps} to capitalize its argument:
+% \cmd{\CapThis} triggers \cmd{\AltCaps} to capitalize its argument:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
@@ -4083,18 +4713,23 @@ the README.txt or README for more information.
%
% We must put \cmd{\noexpand} before \cmd{\textSC}, \cmd{\AltCaps}, and so on to prevent them from expanding outside of the formatting hooks.
%
-% Before we alter the formatting hooks, we either can \cmd{\let} the hook macros to recall them later or we can use \cmd{\begingroup} and \cmd{\endgroup} to create a new scope that localizes any changes. We use scoping in this section.
+% Before we alter the formatting hooks, either we can \cmd{\let} the hook macros to recall them later or we can use \cmd{\begingroup} and \cmd{\endgroup} to create a new scope that localizes any changes. We use scoping in this section.
+% \newpage
%
-% This final step \emph{does not come} from the \textsf{nameauth} source. We must redefine the formatting hooks ourselves. One of the simplest ways to do this when using the \texttt{altformat} option or \cmd{\AltFormatActive} is:
+% \begin{center}\bfseries Continental Format: User-Defined\end{center}
+% \phantomsection
+% \begingroup^^A Local format hook redefinition
+% The user must implement this final step. We use \cmd{\AltFormatActive}, then redefine \cmd{\MainNameHook} to have small caps on by default in the index and first uses in the text, then off in subsequent uses in the text:
% \begin{quote}\small
-% \ContinueNum
+% \StartNum
% \begin{verbatim}
%\renewcommand*\MainNameHook{\AltOff}
%\let\FrontNameHook\MainNameHook\end{verbatim}
% \end{quote}
+%\renewcommand*\MainNameHook{\AltOff}
+%\let\FrontNameHook\MainNameHook
%
-% \renewcommand*\MainNameHook{\AltOff}\let\FrontNameHook\MainNameHook
-% To suppress all formatting in the front-matter text, one need simply to use |\let\FrontNamesFormat\MainNameHook|. Continental formatting usually alters at least one element in the required name argument, as we see below:
+% To suppress all formatting in the front-matter text, one need simply to use \cmd{\let}\cmd{\FrontNamesFormat}\cmd{\MainNameHook}. We do not do that here. Usually, we set up the names and any related macros in the preamble:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
@@ -4108,7 +4743,7 @@ the README.txt or README for more information.
%\end{nameauth}\end{verbatim}
% \end{quote}
%
-% Now we must ensure that these names are sorted properly in the index. When sorting names, be sure to use \cmd{\noexpand} before the macros:
+% Likewise in the preamble, we must ensure that these names are sorted properly in the index. When sorting names, be sure to use \cmd{\noexpand} as well:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
@@ -4124,27 +4759,27 @@ the README.txt or README for more information.
% \begin{center}
% \small\noindent\begin{tabular}{llll}\toprule
% First & Next & Long & Short \\\midrule
-% |\Adams| & |\Adams| & |\LAdams| & |\SAdams|\\
-% \Adams & \Adams & \LAdams & \SAdams\\
-% \rowcolor{black!7!white}|\SDJR| & |\SDJR| & |\LSDJR| & |\SSDJR|\\
-% \rowcolor{black!7!white}\SDJR & \SDJR & \LSDJR & \SSDJR\\
-% |\HAR| & |\HAR| & |\LHAR| & |\SHAR|\\
-% \HAR & \HAR & \LHAR & \SHAR\\
-% \rowcolor{black!7!white}|\Mencius| & |\Mencius| & |\LMencius| & |\SMencius|\\
-% \rowcolor{black!7!white}\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
+% \rowcolor{grey}\cmd{\Adams} & \cmd{\Adams} & \cmd{\LAdams} & \cmd{\SAdams}\\
+% \rowcolor{grey}\Adams & \Adams & \LAdams & \SAdams\\
+% \cmd{\SDJR} & \cmd{\SDJR} & \cmd{\LSDJR} & \cmd{\SSDJR}\\
+% \SDJR & \SDJR & \LSDJR & \SSDJR\\
+% \rowcolor{grey}\cmd{\HAR} & \cmd{\HAR} & \cmd{\LHAR} & \cmd{\SHAR}\\
+% \rowcolor{grey}\HAR & \HAR & \LHAR & \SHAR\\
+% \cmd{\Mencius} & \cmd{\Mencius} & \cmd{\LMencius} & \cmd{\SMencius}\\
+% \Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
% \end{tabular}
% \end{center}
%
% \begin{itemize}\small
% \item Punctuation detection works: \ForceName\LSDJR. Also \LSDJR. Then \ForceName\SDJR. Now \SDJR. (We used \cmd{\ForceName} for formatting.)
-% \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Otherwise, only using the macro \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
+% \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Otherwise, using the macro \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
% \item \cmd{\RevComma}\cmd{\LAdams} yields \RevComma\LAdams. All the reversing macros work.
% \item \cmd{\ForceName}\cmd{\ForceFN}\cmd{\SHAR} produces \ForceName\ForceFN\SHAR. \cmd{\ForceFN}\cmd{\SHAR} produces \ForceFN\SHAR. If we add \cmd{\CapThis} we get \CapThis\ForceName\ForceFN\SHAR\ and \CapThis\ForceFN\SHAR.\footnote{The way that Continental resources treat certain affixes relates to similar issues in [\hyperlink{Mulvany}{Mulvany}, 168--73]. Handling non-Western names in Western sources can be a gray area. One ought take care to be culturally sensitive in these matters.}
% \item One must include all the macros in the name arguments.
% \end{itemize}
%
% \makeatletter\@nameauth@AKAFormattrue\makeatother
-% If we use the \texttt{formatAKA} option we can refer to \Mencius\ as \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}, and again \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}. We get that with:
+% With the \texttt{formatAKA} option we refer to \Mencius\ as \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke} and \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
@@ -4152,14 +4787,18 @@ the README.txt or README for more information.
%\AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}\end{verbatim}
% \end{quote}
% \makeatletter\@nameauth@AKAFormatfalse\makeatother
+% \endgroup^^A Local format hook redefinition
%
% \begin{center}\bfseries Rolling Your Own: Basic\end{center}
+% \phantomsection
+% \begingroup^^A Local format hook redefinition
+% Here we set out on the path to custom formatting by using package features that have been implemented already and look similar to the solutions in Section~\ref{sec:AltFormat}.
%
-% \noindent Here we set out on the path to custom formatting by using package features that have been implemented already and look similar to the solutions in Section~\ref{sec:AltFormat}.
+% When\Warn{} redesigning formatting hooks, we recommend using \cmd{\AltFormatActive} or the \texttt{altformat} option to enable alternate formatting and prevent \cmd{\CapThis} from breaking custom formatting macros.
%
-% When\Warn{} redesigning formatting hooks, one should use \cmd{\AltFormatActive} or the \texttt{altformat} option to enable alternate formatting and prevent \cmd{\CapThis} from breaking custom formatting macros.
+% We recommend examining the internal package flag \cmd{\@nameauth@DoAlt}, which activates alternate formatting, \cmd{\@nameauth@DoCaps}, which handles capitalization, and \cmd{\@nameauth@InHook}, which is true when the formatting hooks are called. See page~\pageref{page:Hooks} and following. If you create your own macros, they will look similar.
%
-% We recommend examining the internal package flag \cmd{\@nameauth@DoAlt}, which activates alternate formatting, \cmd{\@nameauth@DoCaps}, which handles capitalization, and \cmd{\@nameauth@InHook}, which is true when the formatting hooks are called. See page~\pageref{page:Hooks} and following. If you create your own macros, they will look similar:
+% Normally we define a macro for use in name arguments in the document preamble in order to ensure that it is always defined:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4178,42 +4817,48 @@ the README.txt or README for more information.
%\renewcommand*\MainNameHook{\AltOff}
%\let\FrontNameHook\MainNameHook\end{verbatim}
% \end{quote}
+%\renewcommand*\MainNameHook{\AltOff}
+%\let\FrontNameHook\MainNameHook
%
% When sorting names, be sure to use \cmd{\noexpand} as shown previously:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
-%\PretagName[Pierre-Jean]%
-% {\noexpand\Fbox{\noexpand\AltCaps{d}e Smet}}%
-% {de Smet, Pierre-Jean}
-%
%\begin{nameauth}
% \< deSmet & Pierre-Jean &
-% \noexpand\Fbox{\noexpand\AltCaps{d}e Smet} & >
-%\end{nameauth}\end{verbatim}
+% \noexpand\Fbox{\noexpand\AltCaps{d}e~Smet} & >
+%\end{nameauth}
+%
+%\PretagName[Pierre-Jean]%
+% {\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}%
+% {de~Smet, Pierre-Jean}\end{verbatim}
% \end{quote}
%
% Now we show how the formatting hooks work in the body text. One can check the index to see that it is formatted properly and consistently.
%
-% \begin{center}\footnotesize
-% \begin{tabular}{llll}\toprule
-% First & Next & Long & Short \\\midrule
-% |\deSmet| & |\deSmet| & |\LdeSmet| & |\SdeSmet|\\
-% \deSmet & \deSmet & \LdeSmet & \SdeSmet\\\bottomrule
+% \begin{center}\small
+% \begin{tabular}{rll}\toprule
+% First & \cmd{\deSmet} & \deSmet\\
+% \rowcolor{grey}Next & \cmd{\deSmet} & \deSmet\\
+% Long & \cmd{\LdeSmet} & \LdeSmet\\
+% \rowcolor{grey}Short & \cmd{\SdeSmet} & \SdeSmet\\
+% & \cmd{\CapThis}\cmd{\deSmet} & \CapThis\deSmet\\
+% \rowcolor{grey} & \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet} & \ForceName\CapThis\deSmet\\\bottomrule
% \end{tabular}
% \end{center}
%
-% The capitalized version |\CapThis\deSmet| is \CapThis\deSmet. This also works for a formatted use via \cmd{\ForceName}: \ForceName\CapThis\deSmet.
-%
% Some formatting, such as the use of \cmd{\textSC}, is fairly standard. Other formatting, such as \cmd{\Fbox} above, is ornamental and may be handled better with custom features (Section~\ref{sec:Customize}), but those features appear only in the text.
+% \endgroup^^A Local format hook redefinition
% \newpage
%
% \begin{center}\bfseries Rolling Your Own: Intermediate\end{center}
-%
-% \noindent \hspace{-0.47em}``Intermediate'' and ``advanced'' refer to the way hooks were designed before version 3.1. We begin the journey to more customized formatting by looking at \cmd{\NameParser}, whose logic Sections~\ref{sec:InternalMacros} and~\ref{sec:UserInterface} show in detail.\medskip
+% \phantomsection
+% \label{page:Intermediate}
+% \begingroup^^A Local format hook redefinition
+% ``Intermediate'' and ``advanced'' refer to the way that formatting hooks were designed before version 3.1. We begin the journey to more customized formatting by looking at \cmd{\NameParser}, whose logic Sections~\ref{sec:InternalMacros} and~\ref{sec:UserInterface} show in detail.\medskip
%
% \DescribeMacro{\NameParser}
-% This user-accessible parser (Section~\ref{sec:UserInterface}) builds a printed name from the internal macros \cmd{\FNN}, \cmd{\SNN}, \cmd{\rootb} and \cmd{\suffb}.\Version{3.1} It uses the following Boolean flags:\footnote{These exclude all capitalization macros.}
+% This user-accessible parser (Section~\ref{sec:UserInterface}) builds a printed name from internal, locally-scoped macros \cmd{\FNN}, \cmd{\SNN}, \cmd{\rootb} and \cmd{\suffb}.\Version{3.1} It uses only these Boolean flags:\footnote{The capitalization macros interact with the internal macros before the name parser, therefore, they do not directly engage the output of the name parser.}
% \begin{quote}\small\MyStretch
% Only one or the other of these can be true to avoid undocumented behavior.\smallskip\\
% |\if@nameauth@FullName|\hfill Print a full name if true.\\
@@ -4224,23 +4869,22 @@ the README.txt or README for more information.
% |\if@nameauth@RevThisComma|\hfill Reverse Western name, add comma.
% \end{quote}
%
-% We create a hook that can ignore ignore the output of \cmd{\@nameauth@Name}, which is the \texttt{\#1} in the hook dispatcher's code \cmd{\bgroup}\meta{Hook}\texttt{\{\#1\}}\cmd{\egroup}:
+% We create a hook that can ignore the output of \cmd{\@nameauth@Name}, which is the \texttt{\#1} in the hook dispatcher's code \cmd{\bgroup}\meta{Hook}\texttt{\{\#1\}}\cmd{\egroup}:
% \begin{quote}\small\MyStretch
-% |\renewcommand*|\meta{FirstHook}|[1]{|\texttt{\dots}\cmd{\NameParser}\texttt{\dots}|}|
+% \cmd{\renewcommand*}\meta{FirstHook}\texttt{[1]\{\dots}\cmd{\NameParser}\texttt{\dots\}}
% \end{quote}
%
% With the \texttt{altformat} option or \cmd{\AltFormatActive} we can design a subsequent-use hook that deactivates formatting inside of it:
% \begin{quote}\small\MyStretch
-% |\renewcommand*|\meta{SubsequentHook}|[1]{|\texttt{\dots}\cmd{\AltOff}\cmd{\NameParser}\texttt{\dots}|}|
+% \cmd{\renewcommand*}\meta{SubsequentHook}\texttt{[1]\{\dots}\cmd{\AltOff}\cmd{\NameParser}\texttt{\dots\}}
% \end{quote}
%
% If we used \cmd{\AltFormatActive*}, where the formatting macros are enabled, but deactivated, then we might want a hook that activates the macros:
% \begin{quote}\small\MyStretch
-% |\renewcommand*|\meta{Hook}|[1]{|\texttt{\dots}\cmd{\AltOn}\cmd{\NameParser}\texttt{\dots}|}|
+% \cmd{\renewcommand*}\meta{Hook}\texttt{[1]\{\dots}\cmd{\AltOn}\cmd{\NameParser}\texttt{\dots\}}
% \end{quote}
-%
-% Within the hooks we can use the user-level parser as often as we want. We also can change internal Boolean flags, for example:
-% \begingroup
+%
+% Within the hooks we can use the user-side parser as often as we want. We also can change internal Boolean flags, for example:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4257,74 +4901,53 @@ the README.txt or README for more information.
%
% \smallskip
% \makeatletter
-% \renewcommand*\NamesFormat[1]{\small%^^A
-% \hbox to 3.5em{[now]\hfill}\space\NameParser\\%^^A
-% \@nameauth@FullNametrue%^^A
-% \hbox to 3.5em{[long]\hfill}\space\NameParser\\%^^A
-% \@nameauth@FullNamefalse%^^A
-% \@nameauth@FirstNametrue%^^A
+% \renewcommand*\NamesFormat[1]{\small^^A
+% \hbox to 3.5em{[now]\hfill}\space\NameParser\\^^A
+% \@nameauth@FullNametrue^^A
+% \hbox to 3.5em{[long]\hfill}\space\NameParser\\^^A
+% \@nameauth@FullNamefalse^^A
+% \@nameauth@FirstNametrue^^A
% \hbox to 3.5em{[short]\hfill}\space\NameParser}
% \makeatother
% \let\MainNameHook\NamesFormat
%
-% |\JRIV| displays:
-%
+% One instance of \cmd{\JRIV} displays:
+%
% \JRIV
% \end{quote}
-% \endgroup
%
-% The proof of concept above is interesting, but not very useful. Now we move on toward more useful designs, based on Sections~\ref{sec:Hooksi} and~\ref{sec:Hooksii}.
+% The proof of concept above is interesting, but not very useful in a practical setting. Now we move on toward more useful and practical designs.
% \newpage
-%
-% We begin by defining a name that is composed only of macros:
-% \begingroup
-% \newif\ifSpecialFN
-% \newif\ifSpecialSN
-% \newif\ifRevertSN
-% \newcommand*\WM{\ifSpecialFN Wm.\else William\fi}
-% \newcommand*\SHK{\ifRevertSN \textSC{Shakespeare}\else
-% \ifSpecialSN \noexpand\AltCaps{t}he Bard\else
-% \textSC{Shakespeare}\fi\fi}
-% \newcommand*\Revert{\RevertSNtrue}
+%
% \makeatletter
-% \renewcommand*\NamesFormat[1]{%^^A
-% \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%^^A
-% \unless\ifinner\marginpar{%^^A
-% \footnotesize\raggedleft%^^A
-% \@nameauth@FullNametrue%^^A
-% \@nameauth@FirstNamefalse%^^A
-% \@nameauth@EastFNfalse%^^A
-% \SpecialFNtrue\SpecialSNfalse%^^A
-% \NameParser}%^^A
+% \renewcommand*\NamesFormat[1]{^^A
+% \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1^^A
+% \unless\ifinner\marginpar{^^A
+% \footnotesize\raggedleft^^A
+% \@nameauth@FullNametrue^^A
+% \@nameauth@FirstNamefalse^^A
+% \@nameauth@EastFNfalse^^A
+% \SpecialFNtrue\SpecialSNfalse^^A
+% \NameParser}^^A
% \fi\global\RevertSNfalse}
-% \renewcommand*\MainNameHook[1]{%^^A
-% \AltOff\SpecialFNfalse\SpecialSNtrue#1%^^A
+% \renewcommand*\MainNameHook[1]{^^A
+% \AltOff\SpecialFNfalse\SpecialSNtrue#1^^A
% \unless\ifinner
% \unless\ifRevertSN
-% \marginpar{%^^A
-% \footnotesize\raggedleft%^^A
-% \@nameauth@FullNamefalse%^^A
-% \@nameauth@FirstNamefalse%^^A
-% \@nameauth@EastFNfalse%^^A
-% \SpecialFNfalse\SpecialSNfalse%^^A
-% \NameParser}%^^A
+% \marginpar{^^A
+% \footnotesize\raggedleft^^A
+% \@nameauth@FullNamefalse^^A
+% \@nameauth@FirstNamefalse^^A
+% \@nameauth@EastFNfalse^^A
+% \SpecialFNfalse\SpecialSNfalse^^A
+% \NameParser}^^A
% \fi
% \fi\global\RevertSNfalse}
% \makeatother
+% We begin in the document preamble by defining a series of conditionals and macros whose default expansion produces the index entry, yet whose other expansions occur only in the formatting hooks. Then we create a name that is composed only of macros, using \cmd{\noexpand} with \cmd{\WM} and \cmd{\SHK}. We use \cmd{\PretagName} to sort the names. \cmd{\Revert} is used to print a last name without a margin note.
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
-%\begin{nameauth}
-% \< Shak & \noexpand\WM & \noexpand\SHK & >
-%\end{nameauth}
-%\PretagName[\noexpand\WM]{\noexpand\SHK}{Shakespeare, William}
-%\PretagName[Robert]{\textSC{Burns}}{Burns, Robert}\end{verbatim}
-% \end{quote}
-%
-% Now we define the flags by which the macros \cmd{\WM} and \cmd{\SHK} expand differently in the formatting hooks than in the index:
-% \begin{quote}\small
-% \ContinueNum
-% \begin{verbatim}
%\newif\ifSpecialFN
%\newif\ifSpecialSN
%\newif\ifRevertSN
@@ -4333,13 +4956,20 @@ the README.txt or README for more information.
% \ifSpecialSN \noexpand\AltCaps{t}he Bard\else
% \textSC{Shakespeare}\fi\fi}
%\newcommand*\Revert{\RevertSNtrue}
-%\makeatletter\end{verbatim}
+%
+%\begin{nameauth}
+% \< Shak & \noexpand\WM & \noexpand\SHK & >
+%\end{nameauth}
+%
+%\PretagName[\noexpand\WM]{\noexpand\SHK}{Shakespeare, William}
+%\PretagName[Robert]{\textSC{Burns}}{Burns, Robert}\end{verbatim}
% \end{quote}
%
-% Finally, we define the two formatting hooks that trigger these changes:
+% Below we define the two formatting hooks that structure the ways in which these macros can expand when printed in the text. \cmd{\NamesFormat} allows only the canonical name via \cmd{\RevertSNfalse}, \cmd{\SpecialFNfalse}, and \cmd{\SpecialSNfalse}. We print the canonical name in the body text. If allowed, we print a margin paragraph with an alternate full name using \cmd{\NameParser} and two flags. Both hooks set \cmd{\RevertSNfalse} so that \cmd{\Revert} works on a per-name basis. The subsequent-use hook disables formatting with \cmd{\AltOff}, but it allows variant forms.
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
+%\makeatletter
%\renewcommand*\NamesFormat[1]{%
% \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%
% \unless\ifinner\marginpar{%
@@ -4366,38 +4996,30 @@ the README.txt or README for more information.
%\makeatother\end{verbatim}
%
% \smallskip
-% \Shak\ \cmd{\Shak} is the national poet of England in much the same way as \Name[Robert]{\textSC{Burns}} |\Name[Robert]{\textSC{Burns}}| is that of Scotland. With the latter's rise of influence in the 1800s, \Revert\Shak\ \cmd{\Revert}\cmd{\Shak} became known as ``\Shak'' \cmd{\Shak}.
+% \ForgetThis\Shak\ \cmd{\ForgetThis}\cmd{\Shak} is the national poet of England in much the same way that \Name[Robert]{\textSC{Burns}} \cmd{\Name[Robert]\{}\cmd{\textSC\{Burns\}\}} is that of Scotland. With the latter's rise of influence in the 1800s, \Revert\Shak\ \cmd{\Revert}\cmd{\Shak} became known as ``\Shak'' \cmd{\Shak}.
% \end{quote}
-% \endgroup
-%
-% First, we put macros \cmd{\WM} and \cmd{\SHK} in name arguments using \cmd{\noexpand}. That will make the index work properly. We use \cmd{\PretagName} to sort the names. We set up three flags. One is for \cmd{\WM} and two are for \cmd{\SHK}. \cmd{\Revert} is used to print a last name without a margin note.
-%
-%In the first-use hook we allow only the canonical name via \cmd{\RevertSNfalse}, \cmd{\SpecialFNfalse}, and \cmd{\SpecialSNfalse}. The default global formatting state is set by \cmd{\AltFormatActive}. We print the canonical name in the body text. If not in inner horizontal mode, we print a margin paragraph with an alternate full name using \cmd{\NameParser} and two flags. Both hooks set \cmd{\RevertSNfalse} so that \cmd{\Revert} works on a per-name basis. The subsequent-use hook disables formatting with \cmd{\AltOff}, but it allows variant forms.
+% \endgroup^^A Local format hook redefinition
%
% \begin{center}\bfseries Rolling Your Own: Advanced\end{center}
-%
-% Here\Warn{} is how formatting hooks were designed before version 3.0. Updating these older hooks is helpful, but may not be necessary. Here we do not use the internal package macros. We only use \cmd{\NameParser} in the hooks to produce output. We still recommend using \cmd{\AltFormatActive} to prevent problems with \cmd{\CapThis}.
-%
-% \newif\ifFbox
-% \newif\ifFirstCap
-% \newif\ifInHook
-% \Fboxtrue
-% Three flags replace package internals. \texttt{\textbackslash @nameauth@DoAlt} activates formatting; \texttt{\textbackslash @nameauth@DoCaps} is set by \cmd{\CapThis}; and \texttt{\textbackslash @nameauth@InHook} is set by the hook dispatcher. Setting \texttt{\textbackslash Fboxtrue} is equivalent to using \cmd{\AltFormatActive}:
+% \phantomsection
+% \begingroup^^A Local format hook redefinition
+% Here is how formatting hooks were designed before version 3.0. Updating older hooks may be helpful, but is not necessary. We\Warn{} do not use the internal package macros. We only use \cmd{\NameParser} in the hooks to produce output. We still recommend using \cmd{\AltFormatActive} to mitigate errors. In the preamble, three flags replace package internals.\footnote{The internal flag \texttt{\textbackslash @nameauth@DoAlt} activates formatting, \cmd{\CapThis} sets \texttt{\textbackslash @nameauth@DoCaps} true, and \texttt{\textbackslash @nameauth@InHook} is set by the hook dispatcher.}
+% Setting \texttt{\textbackslash Fboxtrue} is equivalent to using \cmd{\AltFormatActive}:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
-%\newif\ifFbox% Replaces \@nameauth@DoAlt
-%\newif\ifFirstCap% Replaces \@nameauth@DoCaps
-%\newif\ifInHook% Replaces \@nameauth@InHook
+%\newif\ifFbox% Replaces \@nameauth@DoAlt
+%\newif\ifFirstCap% Replaces \@nameauth@DoCaps
+%\newif\ifInHook% Replaces \@nameauth@InHook
%\Fboxtrue\end{verbatim}
% \end{quote}
%
-% \renewcommand*\Fbox[1]{\ifFbox\protect\fbox{#1}\else#1\fi}
-% The formatting macro is like what we have seen, except it refers to \texttt{\textbackslash ifFbox}:
+% \newcommand*\Fbox[1]{\ifFbox\protect\fbox{#1}\else#1\fi}
+% Also in the preamble, the formatting macro is like what we have seen, except it refers to \texttt{\textbackslash ifFbox}:\footnote{As previously noted, we define \cmd{\Fbox} locally in this manual because it has multiple definitions, but are very careful where we use names with it.}
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
-%\renewcommand*\Fbox[1]{%
+%\newcommand*\Fbox[1]{%
% \ifFbox\protect\fbox{#1}\else#1\fi
%}\end{verbatim}
% \end{quote}
@@ -4433,7 +5055,7 @@ the README.txt or README for more information.
%\renewcommand*\CapThis{\FirstCaptrue}\end{verbatim}
% \end{quote}
%
-% We have to reproduce the logic and macros that the package would have provided. That means defining everything, including \cmd{\NamesFormat}, from scratch:
+% We have to reproduce the logic and macros that the package would have provided. That means defining everything, including \cmd{\NamesFormat}, from scratch:
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
@@ -4458,18 +5080,19 @@ the README.txt or README for more information.
% \end{quote}
%
% Because we use \cmd{\noexpand}, our ``old-style'' macros will index the following names under the same entry as the ``new-style'' macros.
-% \begin{center}\footnotesize
-% \begin{tabular}{llll}\toprule
-% First & Next & Long & Short \\\midrule
-% |\deSmet| & |\deSmet| & |\LdeSmet| & |\SdeSmet|\\
-% \ForgetThis\deSmet & \deSmet & \LdeSmet & \SdeSmet\\\bottomrule
+%
+% \begin{center}\small
+% \begin{tabular}{rll}\toprule
+% First & \cmd{\deSmet} & \ForgetThis\deSmet\\
+% \rowcolor{grey}Next & \cmd{\deSmet} & \deSmet\\
+% Long & \cmd{\LdeSmet} & \LdeSmet\\
+% \rowcolor{grey}Short & \cmd{\SdeSmet} & \SdeSmet\\
+% & \cmd{\CapThis}\cmd{\deSmet} & \CapThis\deSmet\\
+% \rowcolor{grey} & \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet} & \ForceName\CapThis\deSmet\\\bottomrule
% \end{tabular}
% \end{center}
%
-% The capitalized version |\CapThis\deSmet| is \CapThis\deSmet. This also works for a formatted use via \cmd{\ForceName}: \ForceName\CapThis\deSmet.
-%
% We can reuse\Warn{} new-style names with old-style macros, shown below in abbreviated fashion. We keep the flags \texttt{\textbackslash ifFirstCap} and \texttt{\textbackslash ifInHook}. We also keep the redefined \cmd{\AltCaps}, \cmd{\CapThis}, and \cmd{\NamesFormat}. We then add:
-% \newif\ifCaps
% \Capstrue
% \renewcommand*\textSC[1]{\ifCaps\textsc{#1}\else#1\fi}
% \renewcommand*\MainNameHook[1]
@@ -4495,22 +5118,23 @@ the README.txt or README for more information.
% \begin{center}
% \small\noindent\begin{tabular}{llll}\toprule
% First & Next & Long & Short \\\midrule
-% \ForgetThis\Adams & \Adams & \LAdams & \SAdams\\
-% \rowcolor{black!7!white}\ForgetThis\SDJR & \SDJR & \LSDJR & \SSDJR\\
-% \ForgetThis\HAR & \HAR & \LHAR & \SHAR\\
-% \rowcolor{black!7!white}\ForgetThis\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
+% \rowcolor{grey}\ForgetThis\Adams & \Adams & \LAdams & \SAdams\\
+% \ForgetThis\SDJR & \SDJR & \LSDJR & \SSDJR\\
+% \rowcolor{grey}\ForgetThis\HAR & \HAR & \LHAR & \SHAR\\
+% \ForgetThis\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
% \end{tabular}
% \end{center}
%
% \begin{itemize}\small
% \item Punctuation detection works: \ForceName\LSDJR. Also \LSDJR. Then \ForceName\SDJR. Now \SDJR. (We used \cmd{\ForceName} for formatting.)
-% \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Otherwise, only using the macro \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
+% \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Otherwise, using the macro \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
% \item \cmd{\RevComma}\cmd{\LAdams} yields \RevComma\LAdams. All the reversing macros work.
% \item \cmd{\ForceName}\cmd{\ForceFN}\cmd{\SHAR} produces \ForceName\ForceFN\SHAR. \cmd{\ForceFN}\cmd{\SHAR} produces \ForceFN\SHAR. If we add \cmd{\CapThis} we get \CapThis\ForceName\ForceFN\SHAR\ and \CapThis\ForceFN\SHAR.
% \end{itemize}
%
-% We now resume normal formatting with \cmd{\AltFormatInactive} and close the scope that we began at the start of Section~\ref{sec:Hooksi}.
-% \AltFormatInactive\endgroup
+% We now close the scope of this current example and resume normal formatting.
+% \endgroup^^A Local format hook redefinition
+% \AltFormatInactive
%
% \ReturnLink
% \newpage
@@ -4527,7 +5151,7 @@ the README.txt or README for more information.
% \DescribeMacro{\NameauthFName}
% \cmd{\FName}, or an S-shorthand, sets \cmd{\@nameauth@FirstNametrue}, then calls \cmd{\NameauthFName}. One should not modify \cmd{\Name} and \cmd{\FName} directly.
%
-% Next we see a minimal working example that implements the obsolete syntax. We use few internal Boolean values, save those governing name forms. We do not implement short forms or any other features in \textsf{nameauth}. We must index the names with \cmd{\IndexName}. This example shows how to hook these redefined macros into the user interface:
+% Since \textsf{nameauth} depends on \textsf{xargs}, we use that in a minimal working example that implements the obsolete syntax (Section~\ref{sec:Obsolete}). We use few internal Boolean values, save those governing name forms. We do not implement short forms or any other features in \textsf{nameauth}. We must index the names with \cmd{\IndexName}. This example shows how to hook these redefined macros into the user interface. Note that the \texttt{quote} environment creates a local scope that we leverage below:
%
% \begin{quote}\small
% \StartNum
@@ -4560,10 +5184,10 @@ the README.txt or README for more information.
%\IndexName{Dagobert}[I]
%\IndexName{Aristotle}\end{verbatim}
% \makeatletter
-% \newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%^^A
-% \protected@edef\a{\trim@spaces{#1}}%^^A
-% \protected@edef\b{\trim@spaces{#2}}%^^A
-% \protected@edef\c{\trim@spaces{#3}}%^^A
+% \newcommandx*\MyName[3][1=\@empty, 3=\@empty]{^^A
+% \protected@edef\a{\trim@spaces{#1}}^^A
+% \protected@edef\b{\trim@spaces{#2}}^^A
+% \protected@edef\c{\trim@spaces{#3}}^^A
% \ifx\b\empty fail \else
% \ifx\a\empty
% \ifx\c\empty \hbox to 5em{Mononym:\hfill} {\b}\else
@@ -4573,8 +5197,8 @@ the README.txt or README for more information.
% \hbox to 5em{Alternate:\hfill} {\c\ \b}\fi
% \fi
% \fi
-% \global\@nameauth@FullNamefalse%^^A
-% \global\@nameauth@FirstNamefalse%^^A
+% \global\@nameauth@FullNamefalse^^A
+% \global\@nameauth@FirstNamefalse^^A
% }
% \makeatother
% \let\MyLName\MyName
@@ -4598,29 +5222,30 @@ the README.txt or README for more information.
% The previous example is not particularly useful. There is, however, a more practical use for these macros. One could choose to implement additional features, then pass the information in the name argument token registers to the extant parsing macros of \textsf{nameauth} (cf. Section~\ref{sec:Hooksii}).
% \newpage
%
-% Below we introduce formatting that is additional to, inter-operative with, yet distinct from the formatting hooks:
+% We continue to use features of \textsf{xargs}, as well as the local scope of a \texttt{quote} environment. Below we introduce formatting that is additional to, inter-operative with, yet distinct from the formatting hooks:
+%
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
%\makeatletter
%\newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%
-% \@nameauth@toksa\expandafter{#1}%
-% \@nameauth@toksb\expandafter{#2}%
-% \@nameauth@toksc\expandafter{#3}%
+% \global\@nameauth@toksa\expandafter{#1}%
+% \global\@nameauth@toksb\expandafter{#2}%
+% \global\@nameauth@toksc\expandafter{#3}%
% \hbox to 4em{Normal: \hfill}%
% \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
%}
%\newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%
-% \@nameauth@toksa\expandafter{#1}%
-% \@nameauth@toksb\expandafter{#2}%
-% \@nameauth@toksc\expandafter{#3}%
+% \global\@nameauth@toksa\expandafter{#1}%
+% \global\@nameauth@toksb\expandafter{#2}%
+% \global\@nameauth@toksc\expandafter{#3}%
% \hbox to 4em{Long: \hfill}%
% \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
%}
%\newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%
-% \@nameauth@toksa\expandafter{#1}%
-% \@nameauth@toksb\expandafter{#2}%
-% \@nameauth@toksc\expandafter{#3}%
+% \global\@nameauth@toksa\expandafter{#1}%
+% \global\@nameauth@toksb\expandafter{#2}%
+% \global\@nameauth@toksc\expandafter{#3}%
% \hbox to 4em{Short: \hfill}%
% \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
%}
@@ -4631,28 +5256,27 @@ the README.txt or README for more information.
%\renewcommand*\NameauthName{\MyName}
%\renewcommand*\NameauthLName{\MyLName}
%\renewcommand*\NameauthFName{\MyFName}\end{verbatim}
-%
% \makeatletter
-% \newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%^^A
-% \@nameauth@toksa\expandafter{#1}%^^A
-% \@nameauth@toksb\expandafter{#2}%^^A
-% \@nameauth@toksc\expandafter{#3}%^^A
-% \hbox to 4em{Normal: \hfill}%^^A
-% \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}%^^A
+% \newcommandx*\MyName[3][1=\@empty, 3=\@empty]{^^A
+% \global\@nameauth@toksa\expandafter{#1}^^A
+% \global\@nameauth@toksb\expandafter{#2}^^A
+% \global\@nameauth@toksc\expandafter{#3}^^A
+% \hbox to 4em{Normal: \hfill}^^A
+% \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}^^A
% }
-% \newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%^^A
-% \@nameauth@toksa\expandafter{#1}%^^A
-% \@nameauth@toksb\expandafter{#2}%^^A
-% \@nameauth@toksc\expandafter{#3}%^^A
-% \hbox to 4em{Long: \hfill}%^^A
-% \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}%^^A
+% \newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{^^A
+% \global\@nameauth@toksa\expandafter{#1}^^A
+% \global\@nameauth@toksb\expandafter{#2}^^A
+% \global\@nameauth@toksc\expandafter{#3}^^A
+% \hbox to 4em{Long: \hfill}^^A
+% \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}^^A
% }
-% \newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%^^A
-% \@nameauth@toksa\expandafter{#1}%^^A
-% \@nameauth@toksb\expandafter{#2}%^^A
-% \@nameauth@toksc\expandafter{#3}%^^A
-% \hbox to 4em{Short: \hfill}%^^A
-% \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}%^^A
+% \newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{^^A
+% \global\@nameauth@toksa\expandafter{#1}^^A
+% \global\@nameauth@toksb\expandafter{#2}^^A
+% \global\@nameauth@toksc\expandafter{#3}^^A
+% \hbox to 4em{Short: \hfill}^^A
+% \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}^^A
% }
% \makeatother
% \renewcommand*\NamesFormat[1]{\hbox to 9em{\hfil\scshape#1\hfil}}
@@ -4662,107 +5286,455 @@ the README.txt or README for more information.
% \renewcommand*\NameauthFName{\MyFName}
%
% \smallskip
-% |\ForgetName[Adolf]{Harnack}|\ForgetName[Adolf]{Harnack}\\[1ex]
+% \cmd{\ForgetName[Adolf]\{Harnack\}}\ForgetName[Adolf]{Harnack}\\[1ex]
% \begin{tabular}{@{}rl}
-% |\Harnack| & \Harnack\\
-% |\LHarnack[Adolf von]| & \LHarnack[Adolf von]\\
-% |\Harnack| & \Harnack\\
-% |\SHarnack| & \SHarnack\\
+% \cmd{\Harnack} & \Harnack\\
+% \cmd{\LHarnack[Adolf von]} & \LHarnack[Adolf von]\\
+% \cmd{\Harnack} & \Harnack\\
+% \cmd{\SHarnack} & \SHarnack\\
% \end{tabular}
-% \end{quote}
+% \end{quote}\medskip
%
-% After\Version{3.3} the name is printed in the body text, the internal macros \emph{globally} set \cmd{\@nameauth@FullNamefalse} and \cmd{\@nameauth@FirstNamefalse}, as well as other flags related to the prefix macros. This prevents certain cases of undocumented behavior in versions of \textsf{nameauth} before 3.3, where resetting flags locally could cause unexpected name forms. If an existing document leverages the local resetting of flags, one can use the \texttt{oldreset} option. Compare Section~\ref{sec:IndexControl}.\medskip
+% After\Version{3.3} the name is printed in the body text, the internal macros \emph{globally} set \cmd{\@nameauth@FullNamefalse} and \cmd{\@nameauth@FirstNamefalse}, as well as other flags related to the prefix macros. This prevents certain cases of undocumented behavior in versions of \textsf{nameauth} before 3.3, where resetting flags locally could cause unexpected name forms. If an existing document leverages the local resetting of flags, one can use the \texttt{oldreset} option. Compare Section~\ref{sec:GeneralIndex}.\medskip
+%
+% Like\Info{\cmd{\global}} many of the macros in this package, these macros can be redefined or used locally within a scope without making global changes to the document unless you specifically use \cmd{\global}.
+% \endgroup^^A General format hook redefinition
%
-% Like\Info{\cmd{\global}} many of the macros in this package, these naming macros can be redefined or used locally within a scope without making global changes to the document unless you specifically use \cmd{\global}.
-%
% \ReturnLink
% \newpage
-% \endgroup^^A End of hook macro redefinition.
%
% \subsection{Technical Notes}
% \label{sec:TechNotes}
-%
-% \hfil This manual was created with
-% \fbox{\mystrut\ \bfseries\ifxetex xelatex (pdf)%^^A
+%
+% \subsubsection{General}
+% \label{sec:GenNotes}
+%
+% About the package itself:
+% \begin{itemize}
+% \item Current features\Version{3.5} allow \textsf{nameauth} to meet its goals: stability, professional features, and backward-compatibility.
+% \begin{itemize}
+% \item Internal macros not in a local scope start with \cmd{\@nameauth@}. No more assumptions of ``throwaway'' macro names.
+% \item Index control has become stricter and more sensitive to the order of both name and xref creation.
+% \item It is now easy to have a separate index of persons when using packages and classes that enable that.
+% \item Internals of all macros that handle name arguments use a standard, optimized logic.
+% \end{itemize}
+% \item We keep \textsf{xargs} for backward compatibility. Future package versions will use \textsf{xparse} instead of \textsf{xargs} and shed all compatibility options. A ``maintenance'' version will be preserved for backward compatibility.
+% \item The package works with both \texttt{texindy} and \texttt{makeindex}.
+% \end{itemize}
+%
+% \noindent About the manual (which is the test suite):
+% \begin{itemize}
+% \item It has been reworked and expanded. Many months of testing has yielded better explanations that reflect best practices.
+% \item We now emphasize current workflows and de-emphasize older, less-relevant macros and the obsolete syntax.
+% \item It is compatible with both A4 and US letter formats.
+% \item We mention when this manual changes package internals, does actions that are not visually discernible, or deviates from ``normal'' usage.
+% \end{itemize}
+%
+% \noindent About package building:
+% \begin{itemize}
+% \item Consult \texttt{README.md} for building instructions.
+% \item The \textsf{nameauth} package requires \textsf{etoolbox}, \textsf{suffix}, \textsf{trimspaces}, and \textsf{xargs}.
+% \item The package and manual build on current and older \LaTeX\ distributions.
+% \item The \texttt{dvi} test modes (\texttt{latex} and \texttt{dvilualatex}) use \texttt{dvipdf} to make \textit{TikZ} and \textsf{tcolorbox} render properly. The \texttt{pdf} test modes use \texttt{pdflatex}, \texttt{lualatex}, and \texttt{xelatex}. All modes use \texttt{makeindex}.
+% \item This release was tested ``officially'' on Linux (Manjaro; vanilla TL 2020 and 2017) and Windows 10 (Mik\TeX). The CTAN release is created with the latest vanilla TL release on Manjaro.
+% \end{itemize}\bigskip
+%
+% \begin{center}\bfseries This manual was created with
+% {\ttfamily\ifxetex xelatex (pdf)^^A
% \else
% \ifluatex
-% \ifpdf lualatex (pdf)%^^A
-% \else lualatex (dvi)%^^A
+% \ifpdf lualatex (pdf)^^A
+% \else lualatex (dvi)^^A
% \fi
% \else
-% \ifpdf pdflatex%^^A
-% \else latex (dvi)%^^A
+% \ifpdf pdflatex^^A
+% \else latex (dvi)^^A
% \fi
% \fi
-% \fi\ }
+% \fi}.\end{center}
%
-% \ifDoTikZ\begin{tcolorbox}[colback=white,colframe=nared,adjusted title={\hfil Thanks}]\else
-% \begin{center}\large\bfseries Thanks\end{center}\fi
-% \noindent Thanks to \Name[Marc van]{Dongen}, \Name[Enrico]{Gregorio}, \Name[Philipp]{Stephani}, \Name*[Heiko]{Oberdiek}, \Name[Uwe]{Lueck}, \Name[Dan]{Luecking} and \Name[Robert]{Schlicht} for assistance in early versions of this package. Thanks also to users for valuable feedback.\vfil
-% \ifDoTikZ\end{tcolorbox}\fi
-%
-% \subsubsection{General}
-% \label{sec:GenNotes}
-%
-% About the package itself:
+% \ReturnLink
+% \newpage
+%
+% \subsubsection{Package Warnings}
+% \label{sec:Warnings}
+% \medskip
+%
+% \begin{center}\bfseries Standard and Verbose Warnings\end{center}
+% Package warnings\Info{Standard warnings} result if one redefines name shorthands in the \texttt{nameauth} environment. That could be a problem. Yet if one uses, for example, a new \texttt{nameauth} environment per chapter, such warnings might be harmless. For example:
+% \begin{quote}\small\StartNum
+% \begin{verbatim}
+%\PretagName[E.\,B.]{White}{White, Elwyn}
+%\begin{nameauth}
+% \< White & E.B. & White & > % v.1
+% \< White & E.\,B. & White & > % v.2
+%\end{nameauth}\end{verbatim}
+%\begin{nameauth}
+% \< White & E.B. & White & >
+% \< White & E.\,B. & White & >
+%\end{nameauth}
+% \cmd{\White} gives ``\White''. We lost the first version when we redefined it. We ``forget'' \White\ for later (Section~\ref{sec:NameControl}) with |\ForgetName[E.\,B.]{White}|.\ForgetName[E.\,B.]{White}\footnote{There should be two package warnings for redefining \cmd{\White}. We defined it in the \texttt{dtx} driver, then redefined it twice above.}
+% \end{quote}
+%
+% Additionally,\Version{3.5} the following situations cause package warnings, especially since the indexing macros have been made stricter:
% \begin{itemize}
-% \item For version 3.2 behavior, use both the \texttt{oldpass} and \texttt{oldreset} options.
-% \item For version 2.6 behavior, use \texttt{oldpass}, \texttt{oldreset}, and \texttt{oldAKA}.
-% \item The package works with both \texttt{xindy} and \texttt{makeindex}.
-% \item Name\Version{3.0} output, index entry creation, and index cross-reference creation occur in independent modules.
-% \item Use\Version{3.0} the \texttt{verbose} option for warnings about indexing.
-% \item The \texttt{nameauth} environment always will emit warnings as needed.
-% \item The\Version{2.6} \texttt{comma} option and the older syntax are no longer restrictive, save with \cmd{\AKA} and its derivatives. See Sections~\ref{sec:Obsolete}, \ref{sec:Affix}, and~\ref{sec:AKA}.
-% \item No\Version{2.5} formatting is selected by default.
+% \item \emph{Ignore \& reset:} \cmd{\IndexName} and \cmd{\IndexRef} warn if \cmd{\SkipIndex} is active, and they reset its flag unless the \texttt{oldreset} option is used.
+% \item \emph{Ignore \& reset:} \cmd{\IndexName} warns if it or a naming macro that contains it was preceded by \cmd{\SeeAlso}, whose Boolean flag is then reset.
+% \item \emph{Ignore:} \cmd{\IndexRef} warns if one tries to create a \textit{see} reference from an extant name and ignores the attempt unless the \texttt{oldsee} option is used.
+% \item \emph{Ignore:} \cmd{\PretagName} warns if the \texttt{nopretag} option is used and it produces no sort tags in that case.
+% \item \emph{Warn:} \cmd{\PName} and \cmd{\PName*} warn if \cmd{\@nameauth@SkipIndextrue} on exit (only if the \texttt{oldreset} option is used).
% \end{itemize}
-% \noindent About the manual:
+%
+% Package warnings\Info{Verbose warnings} result from the following \emph{only} when using the \texttt{verbose} option. The macros either allow or ignore certain actions:
+%
% \begin{itemize}
-% \item This manual is the test suite.
-% \item This manual is designed for both current and older \LaTeX\ distributions.
-% \item This\Version{3.3} manual has been redesigned.
-% \item It is compatible with both A4 and US letter formats.
-% \item We mention when this manual changes package internals.
+% \item \emph{Allow:} \cmd{\ExcludeName} with an extant name.
+% \item \emph{Allow:} \cmd{\PretagName} to sort cross-references.
+% \item \emph{Allow:}\Version{3.5} \cmd{\IndexRef} with the \texttt{oldsee} option.
+% \item \emph{Ignore:} make an index page reference from an xref or excluded name.
+% \item \emph{Ignore:} make the same cross-reference multiple times.
+% \item \emph{Ignore:} use \cmd{\ExcludeName} with a cross-reference.
+% \item \emph{Ignore:} use \Version{3.3} \cmd{\IncludeName} with an xref (but \cmd{\IncludeName*} works.
+% \item \emph{Ignore:} use \cmd{\TagName} and \cmd{\UntagName} with a cross-reference.
% \end{itemize}
-% About package building:
+% \ReturnLink
+% \newpage
+%
+% \subsubsection[Debugging/Errors]{Debugging and Avoiding Errors}
+% \label{sec:Errors}
+% \medskip
+%
+% \begin{center}\bfseries Debugging Macros\end{center}
+% \DescribeMacro{\ShowPattern}
+% We use \cmd{\ShowPattern} in Section~\ref{sec:NamePatterns} to illustrate name control patterns. It displays how\Version{3.3} the name arguments create name patterns that form name control sequences. One can debug pattern collisions and other issues with this macro:
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\ShowPattern}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}%
+% }
+% \end{quote}
+%
+% Thus, |\texttt{\ShowPattern[Hernando]{de~Soto}}| will produce the output \JustIndex\Soto\texttt{\ShowPattern[Hernando]{de~Soto}}. As we have seen above, using \textsf{inputenc}/\textsf{fontenc} will cause names like |\texttt{\ShowPattern{Boëthius}}| to produce \texttt{\ShowPattern{Boëthius}}\JustIndex\Name{Bo\"ethius}.\medskip
+%
+% \DescribeMacro{\ShowIdxPageref}
+% \cmd{\ShowIdxPageref} displays a full index entry in the text.
+% Its counterpart is \cmd{\ShowIdxPageref*},
+% \DescribeMacro{\ShowIdxPageref*}
+% which shows a short index entry. Both only show names formatted as page references, even if they are cross-references\Version{3.3}:
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{l}
+% {\Large\strut}\cmd{\ShowIdxPageref\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\vspace{-2pt}\\
+% {\Large\strut}\cmd{\ShowIdxPageref*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\\
+% \end{tabular}
+% }
+% \end{quote}
+%
+% Index styles, \cmd{\PretagName}, and \cmd{\TagName} affect the output of \cmd{\ShowIdxPageref}. Active characters and macros appear as printed, not as in \texttt{idx} files. In a normal \LaTeX\ document without hyperlinks, for example, we would get:
+%
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\PretagName[Hernando]{de~Soto}{Desoto, Hernando}
+%\texttt{\ShowIdxPageref[Hernando]{de~Soto}}\\\end{verbatim}
+%
+% \IndexActual{@}\UntagName[Hernando]{de~Soto}
+% \texttt{\ShowIdxPageref[Hernando]{de~Soto}}
+% \TagName[Hernando]{de~Soto}{\string|hyperpage}
+% \end{quote}
+%
+% Throughout this manual, \cmd{\ShowIdxPageref*} illustrates basic index entries that do not contain sorting information or tags. The simple index entry of \Name*[Hernando]{de~Soto} is |``\ShowIdxPageref*[Hernando]{de~Soto}''| ``\ShowIdxPageref*[Hernando]{de~Soto}''.
+%
+% \begin{center}\bfseries Avoiding Common Errors: General\end{center}
% \begin{itemize}
-% \item The \textsf{nameauth} package requires \textsf{etoolbox}, \textsf{suffix}, \textsf{trimspaces}, and \textsf{xargs}. The \texttt{dtx} file encoding is UTF-8; we assume Unicode support.
-% \item We tested this release in \texttt{dvi} mode (\texttt{latex} and \texttt{dvilualatex}), and in \texttt{pdf} mode (\texttt{pdflatex}, \texttt{lualatex}, and \texttt{xelatex}). We used \texttt{makeindex}.
-% \item This release has been tested on GNU/Linux (distro TL 2017 and vanilla TL 2019), and Windows (Mik\TeX, using GNU make via Cygwin.)
-% \item The release uploaded to CTAN is generated using \texttt{pdflatex} in GNU/Linux.
+% \item A missing square bracket or curly brace can cause errors like ``\texttt{Paragraph ended}'' and ``\texttt{Missing} \meta{grouping token} \texttt{inserted.}''
+% \item In the \texttt{nameauth} environment, \cmd{\<} \meta{arg1} \texttt{\&} \meta{arg2} \texttt{\&} \meta{arg3} \texttt{\&} \meta{arg4} \texttt{>}\\
+% is a macro that cannot miss a delimiter, an argument, or an ampersand.
+% \item Generally use \cmd{\noexpand} before macros in name arguments, which is required if the macros contain conditional statements.
+% \item Ensure that macros and conditionals used in name arguments are defined in the preamble or outermost scope (see below).
+% \item Do not format \meta{SNN},\meta{Affix} together as a pair. Format \meta{SNN} and \meta{Affix} separately (Section~\ref{sec:AltFormat}). The comma will segment the input into two arguments, which could cause errors.
+% \item Using \cmd{\CapThis} on a name with macros in its arguments while not using alternate formatting (Section~\ref{sec:AltFormat}) could trigger an error. Normally \cmd{\CapThis} also segments the input, which could cause errors.
+% \item Something like |\edef\foo{\CapThis\Name{bar}}| will fail. Yet one can use |\CapThis\Name{bar}| as an argument to a macro defined with either \cmd{\edef} or \cmd{\xdef}.
+% \item In \texttt{dtx} files, put the \texttt{nameauth} environment and tags in the \texttt{<driver>} section preamble that inputs the \texttt{dtx} file as documentation.
+% \item \cmd{\Name\ }\oarg{FNN}\marg{SNN}\texttt{[\cmd{\ignorespaces}]} prints only \meta{SNN}.\\
+% \cmd{\Name*}\oarg{FNN}\marg{SNN, Affix}\texttt{[\cmd{\ignorespaces}]} prints \meta{SNN} \meta{Affix}.\\
+% \cmd{\FName}\oarg{FNN}\marg{SNN}\texttt{[\cmd{\ignorespaces}]} either prints \meta{SNN}\\
+% \hbox{}\qquad or acts like the macro \cmd{\leavevmode}.\\
+% \cmd{\Name\ }\marg{SNN, Affix}\texttt{[\cmd{\ignorespaces}]} prints only \meta{SNN}^^A
+% \texttt{\textvisiblespace}.\\
+% \cmd{\FName}\marg{SNN, Affix}\texttt{[\cmd{\ignorespaces}]} either prints \meta{SNN}^^A
+% \texttt{\textvisiblespace}\\
+% \hbox{}\qquad or acts like the macros \cmd{\leavevmode}\cmd{\space}.
+% \end{itemize}
+%
+% \begin{center}\bfseries Avoiding Common Errors: Indexing\end{center}
+% \begin{itemize}
+% \item Be sure to define all \textit{see} references with \cmd{\IndexRef} \emph{before} making any \cmd{\Name} references to them. Otherwise \cmd{\IndexRef} will generate a warning that it could not create a \textit{see} reference.
+% \item Be sure to define all \textit{see also} references with \cmd{\SeeAlso}\cmd{\IndexRef} \emph{after} making all needed \cmd{\Name} references to the respective names. Otherwise \cmd{\IndexName} and the naming macros will not create page references to the respective \cmd{\Name} thereafter.
+% \item Two names may look identical on the page, but their internal name patterns can differ (Sections~\ref{sec:IndexSort} and~\ref{sec:NamePatterns}). This will create spurious index entries. Check the \texttt{idx} file and possibly use (below).
+% \item To fix spurious entries, compare index entries with names in the text.
+% \begin{itemize}
+% \item Check if naming macros always use the same arguments.
+% \item Check sorting tags (\cmd{\PretagName} (Section~\ref{sec:IndexSort}).
+% \item Check use of active Unicode characters (Section~\ref{sec:Unicode}).
+% \item Use \cmd{\ShowPattern} and \cmd{\ShowIdxPageref} (below).
+% \item Check if macros in name arguments did not follow \cmd{\noexpand}.
+% \end{itemize}
+% \item Check \textsf{nameauth} package warnings. Set the \texttt{verbose} option, which will offer a number of ``informational'' warnings that could be of assistance with the index.
+% \end{itemize}
+%
+% \begin{center}\bfseries Macros in Name Arguments\end{center}
+% \begin{itemize}
+% \item Use alternate formatting to avoid potential problems, especially when using \cmd{\CapThis} (Sections~\ref{sec:AltFormat}, \ref{sec:Hooksiii}).
+% \item Use \cmd{\noexpand}\meta{macro} in name macro arguments as a best practice. This is required for all such macros that contain conditional statements.
+% \item Macros used in name arguments must be defined either in the preamble or in the outermost document environment scope to avoid \texttt{Undefined control sequence} errors.
+% \item Boolean flags (\texttt{\textbackslash if}\meta{flag}) used in formatting hooks must be defined either in the preamble or in the outermost document scope.
+% \item The \cmd{\global} modifier does not work with \cmd{\newif} and \cmd{\newcommand}.\footnote{See \href{https://tex.stackexchange.com/questions/51733/global-renewcommand-equivalent-of-global-def}{this page} on redefining \cmd{\newcommand}, with the caveats that apply.}
+% Yet \cmd{\global} can precede a macro defined with \cmd{\newcommand}, and the first \cmd{\def} used therein may be global.
+% \end{itemize}
+%
+% \textit{The \TeX book}, pages 275--277, shows what \cmd{\global} can and cannot do. In the following example, we declare a Boolean flag and a macro in the outer scope, then make several declarations and assignments in the inner scope. After the inner scope ends, we test to see what has happened:
+%
+% \newif\ifCondA
+% \newcommand\MacroA{}
+% \begingroup^^A Demo local scope
+% \newif\ifCondB
+% \global\newif\ifCondC
+% \global\newcommand\MacroB{}
+% \newcommand\MacroC{\def\MacroD{}}
+% \global\MacroC
+% \global\CondAtrue
+% \endgroup^^A Demo local scope
+% \begin{quote}\small
+% \StartNum
+% \begin{verbatim}
+%\newif\ifCondA
+%\newcommand\MacroA{}
+%\begingroup
+% \newif\ifCondB
+% \global\newif\ifCondC
+% \global\newcommand\MacroB{}
+% \newcommand\MacroC{\def\MacroD{}}
+% \global\MacroC
+% \global\CondAtrue
+%\endgroup\end{verbatim}
+% \end{quote}
+%
+%\begin{itemize}
+% \item \ifdefined\CondAtrue \texttt{\textbackslash ifCondA} is defined \else \texttt{\textbackslash ifCondA} is not defined \fi in the outer scope (outer definition).
+% \item \ifdefined\MacroA \cmd{\MacroA} is \else \cmd{\MacroA} is not \fi defined in the outer scope (outer definition).
+% \item \ifdefined\CondBtrue \texttt{\textbackslash ifCondB} is defined \else \texttt{\textbackslash ifCondB} is not defined \fi in the outer scope (local definition).
+% \item \ifdefined\CondCtrue \texttt{\textbackslash ifCondC} is defined \else \texttt{\textbackslash ifCondC} is not defined \fi in the outer scope (no \cmd{\global}\cmd{\newif}).
+% \item \ifdefined\MacroB \cmd{\MacroB} is defined \else
+% \cmd{\MacroB} is not defined \fi in the outer scope (no \cmd{\global}\cmd{\newcommand}).
+% \item \cmd{\MacroC} \ifdefined\MacroC is defined \else is not defined \fi in the outer scope (local definition).
+% \item \cmd{\MacroD} \ifdefined\MacroD is defined \else is not defined \fi in the outer scope (\cmd{\global} affects \cmd{\def} in \cmd{\MacroC}).
+% \item \ifCondA \texttt{\textbackslash ifCondA} is true \else \texttt{\textbackslash ifCondA} is false \fi (\cmd{\global} assignment works, not instantiation).
% \end{itemize}
+%
+% Any macro that is used in the argument of a naming macro must be defined in all scopes in which that name is used. Below we deactivate indexing and show this:
+% \begin{quote}\small
+% \IndexInactive
+% \StartNum
+% \begin{verbatim}
+%\begin{nameauth}
+% \< Testi & & \noexpand\TESTi & >
+% \< Testii & & \noexpand\TESTii & >
+%\end{nameauth}
+%\def\TESTi{Test One}
+%\indent \hbox to 10em{(Outer 1) \Testi\hfill}
+%\bgroup
+% (Inner 1) \Testi\\
+% \def\TESTii{Test Two}
+% \hbox to 10em{(Inner 2) \Testii\hfill}
+%\egroup
+%(Outer 2) \unless\ifdefined\TESTii \cmd{\TESTii} undefined\fi\end{verbatim}
+%
+%\begin{nameauth}
+% \< Testi & & \noexpand\TESTi & >
+% \< Testii & & \noexpand\TESTii & >
+%\end{nameauth}
+%\def\TESTi{Test One}
+%\indent \hbox to 10em{(Outer 1) \Testi\hfill}
+%\bgroup
+% (Inner 1) \Testi\\
+% \def\TESTii{Test Two}
+% \hbox to 10em{(Inner 2) \Testii\hfill}
+%\egroup
+%(Outer 2) \unless\ifdefined\TESTii \cmd{\TESTii} undefined\fi
+% \end{quote}
+
+% \ReturnLink
% \newpage
+%
+% \subsubsection{Obsolete Syntax}
+% \label{sec:Obsolete}
+%
+% This non-Western syntax limits alternate names and xrefs, excludes comma-delimited names, and complicates indexing. It is a ghost of \textsf{nameauth} past.
+% \begin{quote}
+% \fbox{
+% \begin{tabular}{ll}
+% {\Large\strut}\cmd{\Name}\marg{SNN}\oarg{Alternate} & \color{nared}\texttt{\%} \textit{obsolete syntax}\\
+% \end{tabular}
+% }
+% \end{quote}
+%
+% \begin{itemize}
+% \item One must \emph{leave empty} the first optional \meta{FNN} argument.
+% \item One must \emph{never} use the comma-delimited argument \meta{SNN, Affix}.
+% \item Instead, these names \emph{always} use the final optional \meta{Alternate} argument, which acts like \meta{Affix} and affects both name and index patterns (Section~\ref{sec:NamePatterns}).
+% \item These names take the form \meta{SNN Alternate} in the index.
+% \end{itemize}
+% In this manual we designate these names with a double dagger (\ddag):
+%
+% \begin{quote}\small\MyStretch
+% |\Name{Henry}[VIII] | {\color{nared}|%| \textit{Ancient}}\\
+% |\Name{Chiang}[Kai-shek] | {\color{nared}|%| \textit{Eastern}}\\
+% |\begin{nameauth}|\\
+% | \< Dagb & & Dagobert & I > | {\color{nared}|%| \textit{Ancient}}\\
+% | \< Yosh & & Yoshida & Shigeru > | {\color{nared}|%| \textit{Eastern}}\\
+% | \< OFukuyama & & |\\
+% | \textUC{Fukuyama} & Takeshi > | {\color{nared}|%| \textit{Alt. format}}\\
+% |\end{nameauth}|
+% \end{quote}
+%
+% \begin{center}\small\PatInfo{\ShowPattern{Henry}[VIII]!MN\break \ShowPattern{Chiang}[Kai-shek]!MN\break \ShowPattern{Dagobert}[I]!MN\break \ShowPattern{Yoshida}[Shigeru]!MN}\MyStretch
+% \begin{tabular}{ll}\toprule
+% |\ForgetThis\Name{Henry}[VIII]| & \ForgetThis\Name{Henry}[VIII]\ddag\\
+% |\Name{Henry}[VIII]| & \Name{Henry}[VIII]\ddag\\
+% \rowcolor{grey}^^A
+% |\ForgetThis\Name{Chiang}[Kai-shek]| & \ForgetThis\Name{Chiang}[Kai-shek]\ddag\\
+% \rowcolor{grey}^^A
+% |\Name{Chiang}[Kai-shek]| & \Name{Chiang}[Kai-shek]\ddag\\
+% |\Dagb| & \Dagb\ddag\\
+% |\Dagb| & \Dagb\ddag\\
+% \rowcolor{grey}|\CapName\Yosh| & \CapName\Yosh\ddag\\
+% \rowcolor{grey}|\CapName\RevName\LYosh| & \CapName\RevName\LYosh\ddag\\
+% |\AltFormatActive| \AltFormatActive\\
+% |\ForgetThis\OFukuyama| & \ForgetThis\OFukuyama\ddag\\
+% |\OFukuyama| & \OFukuyama\ddag\\
+% |\AltFormatInactive| \AltFormatInactive\\\bottomrule
+% \end{tabular}
+% \end{center}
+%
+% Regardless of its flaws,\Version{2.6} the obsolete syntax shares name patterns, index tags, text tags, and index entries with the current syntax:
+% \begin{quote}\small\MyStretch
+% \begin{tabular}{@{}lll}
+% Obsolete syntax: & \cmd{\ForgetThis}\cmd{\Name\{Henry\}[VIII]} & \ForgetThis\Name{Henry}[VIII]\ddag\\
+% Current syntax: & \cmd{\Name\{Henry, VIII\}} & \Name{Henry, VIII}\\
+% \end{tabular}
+% \end{quote}
+%
+% \ReturnLink
+% \bigskip
+%
+% \subsubsection[Name Patterns]{Name Pattern Overview}
+% \label{sec:NamePatterns}
+%
+% The table below shows how the macro arguments generate name patterns central to \textsf{nameauth}. The \meta{Alternate} argument only affects patterns when using the obsolete syntax. The naming macro arguments create internal control sequences that affect names in both the text and the index:\medskip
+% \begin{center}\MyStretch
+% \begin{tabular}{lll}\toprule
+% Macro Arguments & Patterns & Type\\\midrule
+% \rowcolor{grey}\oarg{FNN}\marg{SNN} & \meta{FNN}!\meta{SNN} & \normalfont Western\\
+% \oarg{FNN}\marg{SNN, Affix} & \meta{FNN}!\meta{SNN},\meta{Affix} & \normalfont Western\\
+% \rowcolor{grey}\hphantom{\oarg{FNN}}\marg{SNN, Affix} & \meta{SNN},\meta{Affix} & \normalfont non-Western\\
+% \hphantom{\oarg{FNN}}\marg{SNN}\oarg{Alt} & \meta{SNN},\meta{Alt} & \normalfont obsolete\\
+% \rowcolor{grey}\hphantom{\oarg{FNN}}\marg{SNN} & \meta{SNN} & \normalfont non-Western\\\bottomrule
+% \end{tabular}
+% \end{center}\medskip
+%
+% The internal parser \cmd{\@nameauth@Parse} determines the type of name through the presence or absence of certain arguments. Then it assigns name control sequences keyed to the type of name pattern and the current naming system. Other macros do similar tasks with name control sequences associated with other data sets.
%
-% \subsubsection{Active Unicode}
-% \label{sec:Unicode}
+% First we show name patterns generated from name elements and the type of name. ``Non-native'' Eastern names are marked by a dagger (\dag); names that use the obsolete syntax are marked by a double dagger (\ddag).\medskip
+% \begin{center}\footnotesize\MyStretch
+% \begin{tabular}{rll}\toprule
+% Macro & Body Text & \cmd{\ShowPattern}\\\midrule
+% \rowcolor{grey}\cmd{\ForgetThis}\cmd{\Harnack[Adolf von]} & \ForgetThis\Harnack[Adolf von] & \texttt{\ShowPattern[Adolf]{Harnack}}\\
+% \rowcolor{grey}\cmd{\LHarnack} & \LHarnack & \texttt{\ShowPattern[Adolf]{Harnack}}\\
+% \cmd{\ForgetThis}\cmd{\Pat} & \ForgetThis\Pat & \texttt{\ShowPattern[George S.]{Patton, Jr.}}\\
+% \cmd{\DropAffix}\cmd{\LPat} & \DropAffix\LPat & \texttt{\ShowPattern[George S.]{Patton, Jr.}}\\
+% \rowcolor{grey}\cmd{\ForgetThis}\cmd{\Noguchi} & \ForgetThis\Noguchi & \texttt{\ShowPattern[Hideyo]{Noguchi}}\\
+% \rowcolor{grey}\cmd{\RevName}\cmd{\LNoguchi} & \RevName\LNoguchi\dag & \texttt{\ShowPattern[Hideyo]{Noguchi}}\\
+% \cmd{\ForgetThis}\cmd{\Yamt} & \ForgetThis\Yamt & \texttt{\ShowPattern{Yamamoto,Isoroku}}\\
+% \cmd{\RevName}\cmd{\LYamt} & \RevName\LYamt & \texttt{\ShowPattern{Yamamoto,Isoroku}}\\
+% \rowcolor{grey}\cmd{\ForgetThis}\cmd{\Name\{Henry,VIII\}} & \ForgetThis\Name{Henry,VIII} & \texttt{\ShowPattern{Henry,VIII}}\\
+% \rowcolor{grey}\cmd{\Name*\{Henry\}[VIII]} & \Name*{Henry}[VIII]\ddag & \texttt{\ShowPattern{Henry,VIII}}\\
+% \cmd{\ForgetThis}\cmd{\Dem[I Soter]} & \ForgetThis\Dem[I Soter] & \texttt{\ShowPattern{Demetrius,I}}\\
+% \cmd{\LDem} & \LDem & \texttt{\ShowPattern{Demetrius,I}}\\
+% \rowcolor{grey}\cmd{\ForgetThis}\cmd{\Aris} & \ForgetThis\Aris & \texttt{\ShowPattern{Aristotle}}\\
+% \rowcolor{grey}\cmd{\Aris} & \Aris & \texttt{\ShowPattern{Aristotle}}\\\bottomrule
+% \end{tabular}
+% \ForgetName{Demetrius, I}\ForgetName[Adolf]{Harnack}
+% \end{center}\medskip
+%
+% \noindent Six suffixes are appended to these patterns to create independent data sets:\medskip
+% \begin{center}\small\MyStretch
+% \begin{tabular}{llll}\toprule
+% Description & Pattern & Mnemonic & Example\\\midrule
+% \rowcolor{grey}Front-matter names & \meta{pattern}\texttt{!NF} & ``name front'' & \texttt{\ShowPattern[Adolf]{Harnack}{!NF}}\\
+% Main-matter names & \meta{pattern}\texttt{!MN} & ``main name'' & \texttt{\ShowPattern[Hideyo]{Noguchi}{!MN}}\\
+% \rowcolor{grey}Index cross-refs & \meta{pattern}\texttt{!PN} & ``pseudonym'' & \texttt{\ShowPattern{Yamamoto, Isoroku}{!PN}}\\
+% Index sorting tags & \meta{pattern}\texttt{!PRE} & ``pretag'' & \texttt{\ShowPattern{Henry, VIII}{!PRE}}\\
+% \rowcolor{grey}Index info tags & \meta{pattern}\texttt{!TAG} & ``tag'' & \texttt{\ShowPattern{Demetrius, I}{!TAG}}\\
+% ``Text tag'' database & \meta{pattern}\texttt{!DB} & ``database'' & \texttt{\ShowPattern{Aristotle}{!DB}}\\\bottomrule
+% \end{tabular}
+% \end{center}
+% \newpage
+%
+% \noindent The following macros \emph{write} to these data sets; others also can read from them:
+% \begin{center}\small\MyStretch
+% \begin{tabular}{lcccccc}\toprule[1pt]
+% Macros & \ttfamily \,!NF\, & \ttfamily \,!MN\, & \ttfamily \,!PN\, & \ttfamily !PRE & \ttfamily !TAG & \ttfamily \,!DB\,\\\midrule
+% \cmd{\Name} \cmd{\Name*} \cmd{\FName} & \YES & \YES & \NO & \NO & \NO & \NO\\
+% \cmd{\ForgetName} \cmd{\SubvertName} & \YES & \YES & \NO & \NO & \NO & \NO\\\midrule
+% \cmd{\PName}\cmd{\PName*} & \YES & \YES & \YES & \NO & \NO & \NO\\\midrule
+% \cmd{\AKA} \cmd{\AKA*} \cmd{\IndexRef} & \NO & \NO & \YES & \NO & \NO & \NO\\
+% \cmd{\ExcludeName} & \NO & \NO & \YES & \NO & \NO & \NO\\
+% \cmd{\IncludeName} \cmd{\IncludeName*} & \NO & \NO & \YES & \NO & \NO & \NO\\\midrule
+% \cmd{\PretagName} & \NO & \NO & \NO & \YES & \NO & \NO\\\midrule
+% \cmd{\TagName} \cmd{\UntagName} & \NO & \NO & \NO & \NO & \YES & \NO\\\midrule
+% \cmd{\NameAddInfo} \cmd{\NameClearInfo} & \NO & \NO & \NO & \NO & \NO & \YES\\\bottomrule
+% \end{tabular}
+% \end{center}\leavevmode
%
-% With |\usepackage[T1]{fontenc}| we can use many active Unicode characters automatically.\footnote{As of release, most documents typeset with \texttt{latex} and \texttt{pdflatex} do not require explicit loading of either \textsf{inputenc} or \textsf{inputenx}.}
-% We already covered using \cmd{\PretagName} to sort names with these characters (Section~\ref{sec:IndexSort}).
-% Below we group by accents and diacritical marks:
+% \ReturnLink
%
-% \begin{center}\small\setstretch{1.4}
+% \subsubsection[Active Unicode]{Active Unicode Characters}
+% \label{sec:Unicode}
+%
+% \leavevmode\begin{center}\bfseries General Information\end{center}
+% Below we group characters by accents and diacritical marks:
+% \begin{center}\large\setstretch{1.3}
% \def\Bullet#1{\setbox0\hbox{#1}\raise 0.4ex\hbox to\wd0{\hfil\tiny\textbullet\hfil}}
% \def\bullet#1{\setbox0\hbox{#1}\raise 0.2ex\hbox to\wd0{\hfil\tiny\textbullet\hfil}}
% \begin{tabular}{lll}\toprule
-% acute & Á Ć É Ǵ \Bullet{H} Í Ĺ Ń Ó Ŕ Ś Ú Ý Ź & á ć é ǵ \bullet{h} í ĺ ń ó ŕ ś ú ý ź \strut\\
-% \rowcolor{black!7!white}grave & À \Bullet{C} È \Bullet{G} \Bullet{H} Ì Ò Ù & à \bullet{c} è \bullet{g} \bullet{h} ì ò ù \strut\\
+% acute & Á Ć É Ǵ \Bullet{H} Í Ĺ & á ć é ǵ \bullet{h} í ĺ \strut\\
+% & Ń Ó Ŕ Ś Ú Ý Ź & ń ó ŕ ś ú ý ź \strut\\
+% \rowcolor{grey}grave & À \Bullet{C} È \Bullet{G} \Bullet{H} Ì Ò Ù & à \bullet{c} è \bullet{g} \bullet{h} ì ò ù \strut\\
% circumflex & Â Ĉ Ê Ĝ Ĥ Î Ĵ Ô Ŝ Û Ŵ Ŷ & â ĉ ê ĝ ĥ î ĵ ô ŝ û ŵ ŷ \strut\\
-% \rowcolor{black!7!white}tilde & Ã \Bullet{C} \Bullet{E} \Bullet{G} \Bullet{H} Ĩ Ñ Õ Ũ & ã \bullet{c} \bullet{e} \bullet{g} \Bullet{h} ĩ ñ õ ũ \strut\\
+% \rowcolor{grey}tilde & Ã \Bullet{C} \Bullet{E} \Bullet{G} \Bullet{H} Ĩ Ñ Õ Ũ & ã \bullet{c} \bullet{e} \bullet{g} \Bullet{h} ĩ ñ õ ũ \strut\\
% diaresis\footnotemark & Ä \Bullet{C} Ë \Bullet{G} \Bullet{H} Ï Ö Ü Ÿ & ä \bullet{c} ë \bullet{g} \bullet{h} ï ö ü ÿ \strut\\
-% \rowcolor{black!7!white}cedilla & \Bullet{A} Ç \Bullet{E} Ģ Ķ Ļ Ņ Ŗ Ş Ţ & \bullet{a} ç \bullet{e} ģ ķ ļ ņ ŗ ş ţ \strut\\
+% \rowcolor{grey}cedilla & \Bullet{A} Ç \Bullet{E} Ģ Ķ Ļ Ņ Ŗ Ş Ţ & \bullet{a} ç \bullet{e} ģ ķ ļ ņ ŗ ş ţ \strut\\
% macron & Ā \Bullet{C} Ē Ḡ \Bullet{H} Ī Ō Ū Ǣ Ȳ & ā \bullet{c} ē ḡ \bullet{h} ī ō ū ǣ ȳ \strut\\
-% \rowcolor{black!7!white}breve & Ă \Bullet{C} \Bullet{E} Ğ \Bullet{H} Ĭ Ŏ Ŭ & ă \bullet{c} \bullet{e} ğ \bullet {h} ĭ ŏ ŭ \strut\\
-% dot\,/\,dotless & Ḃ Ċ Ė Ġ \Bullet{H} İ Ż & ḃ ċ ė ġ \bullet{h} ı ż \strut\\
-% \rowcolor{black!7!white}ogonek & Ą \Bullet{C} Ę \Bullet{G} \Bullet{H} Į Ǫ Ų & ą \bullet{c} ę \bullet{g} \bullet{h} į ǫ ų \strut\\
-% caron & Ǎ Č Ď Ě Ǧ Ǐ Ǩ Ľ Ň Ǒ Ř Š Ť Ǔ Ž & ǎ č ď ě ǧ ǐ ǰ ǩ ľ ň ǒ ř š ť ǔ ž \strut\\
-% \rowcolor{black!7!white}various & Å Æ Ð (eth) Đ (stroke) IJ\ Ł Ŋ & å æ ð đ ij\ ł ŋ \strut\\
-% \rowcolor{black!7!white} & Ø Œ Ő Ů Ű Ș Ț Þ & ø œ ő ů ű ș ß ț þ \strut\\\bottomrule
+% \rowcolor{grey}breve & Ă \Bullet{C} \Bullet{E} Ğ \Bullet{H} Ĭ Ŏ Ŭ & ă \bullet{c} \bullet{e} ğ \bullet {h} ĭ ŏ ŭ \strut\\
+% dot/dotless & Ḃ Ċ Ė Ġ \Bullet{H} İ Ż & ḃ ċ ė ġ \bullet{h} ı ż \strut\\
+% \rowcolor{grey}ogonek & Ą \Bullet{C} Ę \Bullet{G} \Bullet{H} Į Ǫ Ų & ą \bullet{c} ę \bullet{g} \bullet{h} į ǫ ų \strut\\
+% caron & Ǎ Č Ď Ě Ǧ Ǐ Ǩ Ľ & ǎ č ď ě ǧ ǐ ǰ ǩ ľ \strut\\
+% & Ň Ǒ Ř Š Ť Ǔ Ž & ň ǒ ř š ť ǔ ž \strut\\
+% \rowcolor{grey}various & Å Æ Ð (eth) Đ (stroke) IJ\ Ł & å æ ð đ ij\ ł \strut\\
+% \rowcolor{grey} & Ŋ Ø Œ Ő Ů Ű Ș Ț Þ & ŋ ø œ ő ů ű ș ß ț þ \strut\\\bottomrule
% \end{tabular}
% \footnotetext{A diaresis mark is one way to indicate an umlaut, a sound change. German originally used a superscript \textsf{e} over \textsf{a}, \textsf{o}, and \textsf{u}. The cursive form of \textsf{e} simplified to a diaresis mark in the 1800s. A diaresis mark also signals a diaresis: reading a diphthong as two monophthongs.}
% \end{center}
-%
-% Additional Unicode characters can be made available when using fonts with TS1 glyphs (pages 455--463 in \textit{The Latex Companion}). Compare the list: \url{http://tug.ctan.org/info/symbols/comprehensive/} or \texttt{texdoc comprehensive}.
+% \newpage
+%
+% With |\usepackage[T1]{fontenc}|, \texttt{latex} and \texttt{pdflatex} can use many active Unicode characters automatically. Use \cmd{\PretagName} to sort names with these characters (Section~\ref{sec:IndexSort}). Currently, most documents typeset with \texttt{latex} and \texttt{pdflatex} do not require explicit loading of either \textsf{inputenc} or \textsf{inputenx}.
+%
+% Additional Unicode characters can be made available when using fonts with TS1 glyphs (pages 455--463 in \textit{The Latex Companion}). Compare the list on \href{http://tug.ctan.org/info/symbols/comprehensive/}{this page} or type \texttt{texdoc comprehensive} in a terminal window.
+%
+% Active Unicode characters work much like macros. When using a font with TS1 glyphs and slots, the following preamble snippet is an example of how one might add more Unicode characters, such as a long s (\textit{s-medialis}):
%
-% When using a font with TS1 glyphs and slots, the following preamble snippet lets one add more Unicode characters. That enables one to write, ``In Congreſs, July 4, 1776'' as |``In Congreſs, July 4, 1776''|:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4772,12 +5744,25 @@ the README.txt or README for more information.
%\usepackage{newunicodechar}
%\DeclareTextSymbolDefault{\textlongs}{TS1}
%\DeclareTextSymbol{\textlongs}{TS1}{115}
-%\newunicodechar{ſ}{\textlongs}\end{verbatim}
+%\newunicodechar{ſ}{\textlongs}
+%
+%In Congreſs, July 4, 1776\end{verbatim}
+%
+%In Congreſs, July 4, 1776
% \end{quote}
-%
+%
% Many\Warn{} Unicode characters have native support in \texttt{xelatex} and \texttt{lualatex}, but not in \texttt{pdflatex}. Yet the latter has certain features (e.g., with respect to \textsf{microtype}) that others lack. The features of \texttt{makeindex} do not always equate to those in \texttt{xindy}. Those differences impact design choices.
%
-% Before\Warn{} 2018, some index styles excluded characters with macrons, e.g., \textsf{ā}. Even now, control sequences like \cmd{\=a} in the index create undocumented behavior when using \texttt{makeindex} and \texttt{gind.ist}, which changes the ``actual'' character from~\texttt{@} to~\texttt{=}. Since 2018, names like \ifPDFTeX\IfFileExists{utf8-2018.def}{\Name{Ghazāli}}{\Name{Ghazali}}\else\Name{Ghazāli}\fi\ work properly due to new Unicode conventions. We allow for backward compatibility using the \textsf{iftex} package thus:
+% \begin{center}\bfseries Compatibility: Old and New\end{center}
+% As mentioned\Warn{} in Section~\ref{sec:IndexSort}, before 2018, some index styles could not work with characters that contained macrons:
+% \begin{center}\large
+% \begin{tabular}{ll}
+% Ā Ē Ḡ Ī Ō Ū Ǣ Ȳ & ā ē ḡ ī ō ū ǣ ȳ\\
+% \end{tabular}
+% \end{center}
+% Since 2018, those restrictions have been removed due to better handling of Unicode characters in \texttt{latex} and \texttt{pdflatex}.
+%
+% If compiled on a recent version of \LaTeX, one will see a macron in the name below. To allow the manual to compile on older versions, the following code prints a version without the macron as needed:
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4786,41 +5771,46 @@ the README.txt or README for more information.
% {\Name{Ghazāli}}{\Name{Ghazali}}%
% \else\Name{Ghazāli}%
%\fi\end{verbatim}
+%
+%\ifPDFTeX^^A
+% \IfFileExists{utf8-2018.def}^^A
+% {\Name{Ghazāli}}{\Name{Ghazali}}^^A
+% \else\Name{Ghazāli}\fi
% \end{quote}
%
+% Even now,\Warn{} although one can use the Unicode characters with macrons, control sequences like \cmd{\=a} in the index will cause undocumented behavior when using \texttt{makeindex} and \texttt{gind.ist}. The latter index style, used for \texttt{dtx} files, changes the ``actual'' character from~\texttt{@} to~\texttt{=}.
+% \newpage
+%
+% \begin{center}\bfseries Fragility of Active Unicode\end{center}
% \TeX\Warn{} macros that partition their arguments can break active Unicode characters. Consider the simple macro |\def\foo#1#2#3!{<#1#2><#3>}|. It takes three undelimited arguments and groups the first two, then the third:
%
% \begin{center}\MyStretch
% \def\foo#1#2#3!{<#1#2><#3>}
% \begin{tabular}{llll}\toprule
% Argument & Macro & Engine & Result\\\midrule
-% |abc| & |\foo abc!| & (any) & \foo abc!\\
-% |{æ}bc| & |\foo {æ}bc!| & (any) & \foo {æ}bc!\\
-% |\ae bc| & |\foo \ae bc!| & (any) & \foo \ae bc!\\
-% \rowcolor{black!7!white}|æbc| & |\foo æbc!| & \texttt{xelatex} & \ifxetex\foo æbc!\else<æb><c>\fi\\
-% \rowcolor{black!7!white}|æbc| & |\foo æbc!| & \texttt{lualatex} & \ifluatex\foo æbc!\else<æb><c>\fi\\
-% |æbc| & |\foo æbc!| & \texttt{pdflatex} & \unless\ifxetex\unless\ifluatex\foo æbc!\else<æ><bc>\fi\else<æ><bc>\fi\\
-% |æbc| & |\foo æbc!| & \texttt{latex} & \unless\ifxetex\unless\ifluatex\foo æbc!\else<æ><bc>\fi\else<æ><bc>\fi\\\bottomrule
+% \rowcolor{grey}|abc| & |\foo abc!| & (any) & \foo abc!\\
+% \rowcolor{grey}|{æ}bc| & |\foo {æ}bc!| & (any) & \foo {æ}bc!\\
+% \rowcolor{grey}|\ae bc| & |\foo \ae bc!| & (any) & \foo \ae bc!\\
+% |æbc| & |\foo æbc!| & \texttt{xelatex} & \ifxetex\foo æbc!\else<æb><c>\fi\\
+% |æbc| & |\foo æbc!| & \texttt{lualatex} & \ifluatex\foo æbc!\else<æb><c>\fi\\
+% \rowcolor{grey}|æbc| & |\foo æbc!| & \texttt{pdflatex} & \unless\ifxetex\unless\ifluatex\foo æbc!\else<æ><bc>\fi\else<æ><bc>\fi\\
+% \rowcolor{grey}|æbc| & |\foo æbc!| & \texttt{latex} & \unless\ifxetex\unless\ifluatex\foo æbc!\else<æ><bc>\fi\else<æ><bc>\fi\\\bottomrule
% \end{tabular}
% \end{center}
%
% The letter \texttt{a} is one argument. Since \texttt{\{æ\}} is in a group, it is one argument. The macro \cmd{\ae} also is one argument. Thus, the first two glyphs are grouped together in |#1#2| and \texttt{c} is left by itself in |#3|. Both \texttt{xelatex} and \texttt{lualatex} likewise treat the Unicode letter \texttt{æ} as one argument.
-%
+%
% In \texttt{latex} and \texttt{pdflatex}, however, \texttt{æ} is an active Unicode control sequence that uses two arguments: |#1#2|. The tail of the input, \texttt{bc}, is crowded into |#3|. Any macro where this |#1#2| pair is divided into |#1| and |#2| will produce one of two errors: \texttt{Unicode char \dots not set up for LaTeX} or \texttt{Argument of \textbackslash UTFviii@two@octets has an extra \}}.
%
+% \begin{center}\bfseries Testing for Fragility\end{center}
% We\Version{3.0} test if \cmd{\Umathchar} is not defined. If so, we check if the leading token of the argument matches the start of an active Unicode control sequence: If \cmd{\@car}\meta{test}\cmd{\@nil} is equal to \cmd{\@car ß}\cmd{\@nil} (page~\pageref{page:CapSystem}) we capitalize |#1#2|, otherwise just |#1|. Should |#1| be a protected macro or something that does not expand to a sequence of letters, we use alternate formatting and \cmd{\AltCaps} (Section~\ref{sec:AltAdvanced}).
%
-% A\Warn{} macro defined like |\edef\foo{\CapThis\Name{bar}}| will fail. However, |\CapThis\Name{bar}| can be an argument to a macro defined with \cmd{\edef} or \cmd{\xdef}.
-%
-% \LaTeX\Warn{} removes spaces between undelimited macro arguments, except the trailing argument. We use \cmd{\trim@spaces} to address this in \textsf{nameauth}. Explicit spacing macros change the results, but also require sorting with \cmd{\PretagName}. See also Sections~\ref{sec:ErrorProt} and~\ref{sec:NameParticles}, as well as Section~\ref{sec:IndexSort}.
-%
% \ReturnLink
-% \newpage
-%
+%
% \subsubsection{\LaTeX\ Engines}
% \label{sec:TeXengines}
-%
-% The following preamble snippet lets one build \textsf{nameauth} also with older TL versions. We do not load \texttt{iftex.sty} if it does not exist. We load the transitional packages when \textsf{iftex} is absent or older than 2019:\footnote{A copy of this example is in \texttt{examples.tex}, collocated with this manual.}
+%
+% This preamble snippet lets us build \textsf{nameauth}, e.g., on TL 2017. We load \texttt{iftex.sty} only if it exists. We load transitional packages when \textsf{iftex} is absent or old:\footnote{A copy of this example is in \texttt{examples.tex}, located with this manual.}
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4832,17 +5822,21 @@ the README.txt or README for more information.
%\fi\end{verbatim}
% \end{quote}
%
-% Next we test for the \LaTeX\ engine and include packages accordingly. We could just include \textsf{inputenc} either way, but we are illustrating a point about testing. Some statements below should be modified, depending on one's workflow.
+% If we
+% Next we test for the \LaTeX\ engine and include packages accordingly. We could just include \textsf{inputenc} either way, but we are illustrating a point about testing.
+%
+% Some statements below should be modified at need. The font packages do affect \textsf{nameauth} indirectly. The use of \textit{TikZ} does not, but it is easy to let such concerns also use the test below. With \textsf{fontspec}, Latin Modern is the default. Otherwise, Computer Modern is the default. If we \emph{only} make \texttt{pdf} documents, the test below simplifies to a test for for \cmd{\Umathchar}, then loading either \textsf{fontspec} (success) or \textsf{fontenc} (failure).
+%
% \begin{quote}\small
% \ContinueNum
% \begin{verbatim}
-%\newif\ifDoTikZ % Perhaps not needed
+%\newif\ifDoTikZ % If dvi-only workflow
%\ifxetex
% \usepackage{fontspec}
% \usepackage{polyglossia}
% \setdefaultlanguage{american} % Use own language
% \usepackage{tikz}
-% \DoTikZtrue % Perhaps not needed
+% \DoTikZtrue % If dvi-only workflow
%\else
% \ifluatex
% \ifpdf
@@ -4850,7 +5844,7 @@ the README.txt or README for more information.
% \usepackage{polyglossia}
% \setdefaultlanguage{american} % Use own language
% \usepackage{tikz}
-% \DoTikZtrue % Perhaps not needed
+% \DoTikZtrue % If dvi-only workflow
% \else
% \IfFileExists{utf8-2018.def}{}
% {\usepackage[utf8]{inputenc}}
@@ -4865,26 +5859,39 @@ the README.txt or README for more information.
% \usepackage[TS1,T1]{fontenc}
% \usepackage[american]{babel} % Use own language
% \usepackage{lmodern}
-% \ifpdf % Perhaps not needed
-% \usepackage{tikz}
-% \DoTikZtrue % Perhaps not needed
+% \ifpdf
+% \usepackage{tikz} % If dvi-only workflow
+% \DoTikZtrue % If dvi-only workflow
% \fi
% \fi
%\fi\end{verbatim}
% \end{quote}
+%
+% To avoid problems, \texttt{\textbackslash ifDoTikZ} can help one conditionally load \textit{TikZ}. One can observe some \texttt{dvi} viewers (e.g., \texttt{yap}, \texttt{dviout}) crash either when loading or at some later point if one loads \textit{TikZ}. Neither \texttt{xdvi} nor \texttt{advi} crash.
+%
+% Using \texttt{xdvi} or \texttt{advi} (from \href{http://cristal.inria.fr/whizzytex/}{Whizzy\TeX}) may result in certain aspects of \textit{TikZ} not rendering correctly until conversion to \texttt{ps}/\texttt{pdf}. Using either \texttt{dvipdf} or \texttt{dvips} with \texttt{ps2pdf} will fix that. Using \texttt{dvipdfm} does not help here.
% \newpage
-%
-% For the sake of comparing \texttt{dvi} viewers \texttt{xdvi}, \texttt{yap}, and others, we load \textsf{tikz} only when making a \texttt{pdf} because some \texttt{dvi} viewers crash otherwise. This may be wholly unnecessary in a \texttt{dvips} workflow or the like. With \textsf{fontspec}, Latin Modern is the default. If we only make \texttt{pdf} documents, the test simplifies to testing for \cmd{\Umathchar}, then loading either \textsf{fontspec} (success) or \textsf{fontenc} (failure).
%
-%In the body text we can use something like the test below for \fbox{\ifDoTikZ doing \texttt{pdf} things\else doing \texttt{dvi} things\fi}
+% In the body text we can use something like the test below for:
+%
+% \begin{center}\fbox{\ifxetex doing \texttt{pdf} things\else \ifpdf doing \texttt{pdf} things\else doing \texttt{dvi} things\fi\fi}\end{center}
+%
% \begin{quote}\small
+% \StartNum
% \begin{verbatim}
-%\ifDoTikZ
-% doing \texttt{pdf} things\else
-% doing \texttt{dvi} things\fi\end{verbatim}
+%\ifxetex
+% doing \texttt{pdf} things
+%\else
+% \ifpdf
+% doing \texttt{pdf} things
+% \else
+% doing \texttt{dvi} things
+% \fi
+%\fi\end{verbatim}
% \end{quote}
%
% The following equivalent conditional statements can help a macro or just the body text to work under multiple engines:
+%
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4901,7 +5908,7 @@ the README.txt or README for more information.
% \fi
%\fi\end{verbatim}
% \end{quote}
-%
+%
% \begin{quote}\small
% \StartNum
% \begin{verbatim}
@@ -4918,28 +5925,33 @@ the README.txt or README for more information.
%\else xelatex%
%\fi\end{verbatim}
% \end{quote}
-%
% \ReturnLink
% \BigBlank
% \newpage
-%
+%
% \StopEventually{^^A
+% \FontDebugfalse^^A prevents font debugging errors
% \let\emph\oldemph
% \newgeometry{textwidth=160mm,textheight=237mm,right=25mm}
% \IndexProtect\PrintChanges\newpage\PrintIndex
% }
-%
-% \section{Implementation}
-%
% \iffalse
%<*package>
% \fi
+%
+% \section{Implementation}
% \small
+%
% \subsection{Flags and Registers}
+% \begin{center}\normalsize\bfseries General Process Flow Control\end{center}
%
-% The flags below are grouped according to function. We begin with flow control\medskip
+% \noindent{\normalsize\bfseries Warning Levels}\medskip\\
+% This flag controls how many warnings you get. Defaults to few warnings. Verbose gives you plenty of warnings about cross-references and page entries in the index.
+% \begin{macrocode}
+\newif\if@nameauth@Verbose
+% \end{macrocode}\medskip
%
-% \noindent{\large\bfseries Who Called Me?}\medskip\\
+% \noindent{\normalsize\bfseries Who Called Me?}\medskip\\
% Various macros use these flags to protect against stack overflows or choose the right output.
% \begin{macrocode}
\newif\if@nameauth@InAKA
@@ -4947,16 +5959,29 @@ the README.txt or README for more information.
\newif\if@nameauth@Xref
% \end{macrocode}\smallskip
%
-% \noindent{\large\bfseries Core Macro Locks}\medskip\\
-% The macros \cmd{\@nameauth@Name} and \cmd{\AKA}, with some auxiliary macros, process names in a ``locked'' state to avoid a stack overflow. The \texttt{BigLock} always locks the macros, preventing execution. See also Sections~\ref{sec:Hooksii} and~\ref{sec:Hooksiii}.
+% \noindent{\normalsize\bfseries Core Macro Locks}\medskip\\
+% \cmd{\@nameauth@Name}, \cmd{\AKA}, and other macros use a lock to avoid a stack overflow. With \texttt{\textbackslash @nameauth@BigLock} one prevents execution. See also Sections~\ref{sec:Hooksii} and~\ref{sec:Hooksiii}.
% \begin{macrocode}
\newif\if@nameauth@Lock
\newif\if@nameauth@BigLock
\newif\if@nameauth@InHook
% \end{macrocode}\smallskip
%
-% \noindent{\large\bfseries Indexing}\medskip\\
-% The indexing flags permit or prevent indexing and tags. \cmd{\IndexActive} and \cmd{\IndexInctive} or the \texttt{index} and \texttt{noindex} options toggle the first flag; \cmd{\SkipIndex} toggles the second. \cmd{\JustIndex} toggles the third, which makes the core naming engine act like a call to \cmd{\IndexName}:
+% \noindent{\normalsize\bfseries Name Decision Paths}\medskip\\
+% \cmd{\IfMainName}, \cmd{\IfFrontName}, and \cmd{\IfAKA} use locally-scoped paths by default. This flag causes that scoping not to be used.
+% \begin{macrocode}
+\newif\if@nameauth@GlobalScope
+% \end{macrocode}\smallskip
+%
+% \noindent{\normalsize\bfseries Debugging}\medskip\\
+% Both flags below are used to show name patterns and index entries in the text.
+% \begin{macrocode}
+\newif\if@nameauth@IdxDebug
+\newif\if@nameauth@LongIdxDebug
+% \end{macrocode}\smallskip
+%
+% \noindent{\normalsize\bfseries Indexing}\medskip\\
+% The indexing flags permit or prevent indexing and tags. \cmd{\IndexActive} and \cmd{\IndexInctive} or the \texttt{index} and \texttt{noindex} options toggle the first flag; \cmd{\SkipIndex} toggles the second. \cmd{\JustIndex} toggles the third, which makes the core naming engine \cmd{\@nameauth@Name} act like a call to \cmd{\IndexName}:
% \begin{macrocode}
\newif\if@nameauth@DoIndex
\newif\if@nameauth@SkipIndex
@@ -4966,12 +5991,13 @@ the README.txt or README for more information.
% \begin{macrocode}
\newif\if@nameauth@Pretag
% \end{macrocode}
-% This flag determines whether \cmd{\IndexRef} creates a \textit{see} reference or a \textit{see also} reference.
+% The first flag determines whether \cmd{\IndexRef} creates a \textit{see} reference or a \textit{see also} reference. The second determines how strict to be with \textit{see} references.
% \begin{macrocode}
\newif\if@nameauth@SeeAlso
+\newif\if@nameauth@OldSee
% \end{macrocode}\smallskip
%
-% \noindent{\large\bfseries Formatting}\medskip\\
+% \noindent{\normalsize\bfseries Formatting}\medskip\\
% \cmd{\NamesActive} and \cmd{\NamesInactive}, with the \texttt{mainmatter} and \texttt{frontmatter} options, toggle formatting hooks via \texttt{\textbackslash if@nameauth@MainFormat}. \texttt{\textbackslash if@nameauth@AKAFormat} permits \cmd{\AKA} to call the first-use hooks once.
% \begin{macrocode}
\newif\if@nameauth@MainFormat
@@ -4981,10 +6007,11 @@ the README.txt or README for more information.
% \begin{macrocode}
\newif\if@nameauth@LocalNames
% \end{macrocode}\medskip
-% These two flags are used only for backward compatibility. The first broadly determines how per-name flags are reset, while the second affects the behavior of \cmd{\JustIndex}.
+% These three flags are used only for backward compatibility. The first broadly determines how per-name flags are reset; the second affects the behavior of \cmd{\JustIndex}; and the third toggles whether or not the name argument token registers are set globally.
% \begin{macrocode}
\newif\if@nameauth@OldReset
\newif\if@nameauth@OldPass
+\newif\if@nameauth@OldToks
% \end{macrocode}\medskip
% These two flags trigger \cmd{\ForgetName} and \cmd{\SubvertName} within \cmd{\@nameauth@Name}.
% \begin{macrocode}
@@ -4995,11 +6022,11 @@ the README.txt or README for more information.
% \begin{macrocode}
\newif\if@nameauth@FirstFormat
\newif\if@nameauth@AlwaysFormat
-% \end{macrocode}\medskip
+% \end{macrocode}
%
-% \noindent Next we move from general flow control to specific modification of name forms.\medskip
+% \begin{center}\normalsize\bfseries Specific Name Form Modifications\end{center}
%
-% \noindent{\large\bfseries Affix Commas}\medskip\\
+% \noindent{\normalsize\bfseries Affix Commas}\medskip\\
% The \texttt{comma} and \texttt{nocomma} options toggle the first flag value below. \cmd{\ShowComma} and \cmd{\NoComma} respectively toggle the second and third.
% \begin{macrocode}
\newif\if@nameauth@AlwaysComma
@@ -5007,20 +6034,20 @@ the README.txt or README for more information.
\newif\if@nameauth@NoComma
% \end{macrocode}\medskip
%
-% \noindent{\large\bfseries Name Breaking}\medskip\\
+% \noindent{\normalsize\bfseries Name Breaking}\medskip\\
% \cmd{\KeepAffix} toggles the first flag below, while \cmd{\KeepName} toggles the second. Both affect the use of non-breaking spaces in the text.
% \begin{macrocode}
\newif\if@nameauth@NBSP
\newif\if@nameauth@NBSPX
% \end{macrocode}\medskip
%
-% \noindent{\large\bfseries Detect Punctuation}\medskip\\
+% \noindent{\normalsize\bfseries Detect Punctuation}\medskip\\
% This Boolean value is used to prevent double full stops at the end of a name in the text.
% \begin{macrocode}
\newif\if@nameauth@Punct
% \end{macrocode}\medskip
%
-% \noindent{\large\bfseries Long and Short Names}\medskip\\
+% \noindent{\normalsize\bfseries Long and Short Names}\medskip\\
% \texttt{\textbackslash if@nameauth@FullName} is true for a long name reference. \texttt{\textbackslash if@nameauth@FirstName} disables full-name references and causes only Western forenames to be displayed. The default is to reset both globally on a per-name basis.
%
% \texttt{\textbackslash if@nameauth@AltAKA} is toggled respectively by \cmd{\AKA} and \cmd{\AKA*} to print a longer or shorter name. \texttt{\textbackslash if@nameauth@OldAKA} forces the pre-3.0 behavior of \cmd{\AKA*}.
@@ -5035,7 +6062,7 @@ the README.txt or README for more information.
\newif\if@nameauth@EastFN
% \end{macrocode}\medskip
%
-% \noindent{\large\bfseries Eastern Names}\medskip\\
+% \noindent{\normalsize\bfseries Eastern Names}\medskip\\
% The next flags values govern name reversing and full surname capitalization. The first of each pair is a global state. The second of each pair is an individual state.
% \begin{macrocode}
\newif\if@nameauth@RevAll
@@ -5044,14 +6071,14 @@ the README.txt or README for more information.
\newif\if@nameauth@AllThis
% \end{macrocode}\medskip
%
-% \noindent{\large\bfseries Last-Comma-First}\medskip\\
+% \noindent{\normalsize\bfseries Last-Comma-First}\medskip\\
% This pair of flags deals with Western names reordered in a list according to surname.
% \begin{macrocode}
\newif\if@nameauth@RevAllComma
\newif\if@nameauth@RevThisComma
% \end{macrocode}\medskip
%
-% \noindent{\large\bfseries Cap First Letter and Format}\medskip\\
+% \noindent{\normalsize\bfseries Cap First Letter and Format}\medskip\\
% The next flags deal with first-letter capitalization. \cmd{\CapThis} sets the first Boolean value. The second is triggered by \cmd{\@nameauth@UTFtest} when it encounters an active Unicode character. The third is a fallback triggered by \cmd{\AccentCapThis}. The fourth disables \cmd{\CapThis} for alternate formatting. The fifth toggles alternate formatting.
% \begin{macrocode}
\newif\if@nameauth@DoCaps
@@ -5059,37 +6086,31 @@ the README.txt or README for more information.
\newif\if@nameauth@Accent
\newif\if@nameauth@AltFormat
\newif\if@nameauth@DoAlt
-% \end{macrocode}\medskip
-%
-% \noindent{\large\bfseries Warning Levels}\medskip\\
-% This flag controls how many warnings you get. Defaults to few warnings. Verbose gives you plenty of warnings about cross-references in the index.
-% \begin{macrocode}
-\newif\if@nameauth@Verbose
-% \end{macrocode}\medskip
+% \end{macrocode}
%
-% \noindent{\large\bfseries Name Argument Token Registers}\vspace{-1.5ex}
+% \begin{center}\normalsize\bfseries Name Argument Token Registers\end{center}
% \begin{macro}{\@nameauth@toksa}
% \begin{macro}{\@nameauth@toksb}
% \begin{macro}{\@nameauth@toksc}
% These three token registers contain the current values of the name arguments passed to \cmd{\Name}, its variants, and the cross-reference arguments of \cmd{\AKA}. Users can access them especially in formatting hooks.
% \begin{macrocode}
-\newtoks\@nameauth@toksa%
-\newtoks\@nameauth@toksb%
-\newtoks\@nameauth@toksc%
+\newtoks\@nameauth@toksa
+\newtoks\@nameauth@toksb
+\newtoks\@nameauth@toksc
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% These three token registers contain the current values of the name arguments in each line of the \texttt{nameauth} environment.
% \begin{macrocode}
-\newtoks\@nameauth@etoksb%
-\newtoks\@nameauth@etoksc%
-\newtoks\@nameauth@etoksd%
+\newtoks\@nameauth@etoksb
+\newtoks\@nameauth@etoksc
+\newtoks\@nameauth@etoksd
% \end{macrocode}
%
% \subsection{Hooks}
% \begin{macro}{\NamesFormat}
-% Post-process ``first'' instance of final complete name form in text. See Sections~\ref{sec:Formatting} and~\ref{sec:Hooksi}f. Called when both |\@nameauth@MainFormat| and |\@nameauth@FirstFormat| are true.
+% Post-process ``first'' instance of final complete name form in text. See Sections~\ref{sec:Formatting} and~\ref{sec:Hooksi}. Called when both |\@nameauth@MainFormat| and |\@nameauth@FirstFormat| are true.
% \begin{macrocode}
\newcommand*\NamesFormat{}
% \end{macrocode}
@@ -5136,36 +6157,46 @@ the README.txt or README for more information.
\newcommand*\NameauthFName{\@nameauth@Name}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\NameauthIndex}
+% \changes{3.5}{2020/11/23}{Added}
+% Customization hook that allows one to redefine what happens when any naming or indexing function calls the equivalent of \cmd{\index}. See Section~\ref{sec:GeneralIndex}.
+% \begin{macrocode}
+\newcommand*\NameauthIndex{\index}
+% \end{macrocode}
+% \end{macro}
%
% \subsection{Package Options}
% The following package options interact with many of the prior Boolean values.
% \begin{macrocode}
-\DeclareOption{comma}{\@nameauth@AlwaysCommatrue}
-\DeclareOption{nocomma}{\@nameauth@AlwaysCommafalse}
\DeclareOption{mainmatter}{\@nameauth@MainFormattrue}
\DeclareOption{frontmatter}{\@nameauth@MainFormatfalse}
+\DeclareOption{alwaysformat}{\@nameauth@AlwaysFormattrue}
\DeclareOption{formatAKA}{\@nameauth@AKAFormattrue}
-\DeclareOption{oldAKA}{\@nameauth@OldAKAtrue}
-\DeclareOption{oldreset}{\@nameauth@OldResettrue}
-\DeclareOption{oldpass}{\@nameauth@OldPasstrue}
\DeclareOption{index}{\@nameauth@DoIndextrue}
\DeclareOption{noindex}{\@nameauth@DoIndexfalse}
\DeclareOption{pretag}{\@nameauth@Pretagtrue}
\DeclareOption{nopretag}{\@nameauth@Pretagfalse}
-\DeclareOption{allcaps}{\@nameauth@AllCapstrue}
+\DeclareOption{verbose}{\@nameauth@Verbosetrue}
+\DeclareOption{globaltest}{\@nameauth@GlobalScopetrue}
+\DeclareOption{oldAKA}{\@nameauth@OldAKAtrue}
+\DeclareOption{oldreset}{\@nameauth@OldResettrue}
+\DeclareOption{oldpass}{\@nameauth@OldPasstrue}
+\DeclareOption{oldtoks}{\@nameauth@OldTokstrue}
+\DeclareOption{oldsee}{\@nameauth@OldSeetrue}
+\DeclareOption{nocomma}{\@nameauth@AlwaysCommafalse}
+\DeclareOption{comma}{\@nameauth@AlwaysCommatrue}
\DeclareOption{normalcaps}{\@nameauth@AllCapsfalse}
+\DeclareOption{allcaps}{\@nameauth@AllCapstrue}
+\DeclareOption{notreversed}%
+ {\@nameauth@RevAllfalse\@nameauth@RevAllCommafalse}
\DeclareOption{allreversed}%
{\@nameauth@RevAlltrue\@nameauth@RevAllCommafalse}
\DeclareOption{allrevcomma}%
{\@nameauth@RevAllfalse\@nameauth@RevAllCommatrue}
-\DeclareOption{notreversed}%
- {\@nameauth@RevAllfalse\@nameauth@RevAllCommafalse}
-\DeclareOption{alwaysformat}{\@nameauth@AlwaysFormattrue}
+\DeclareOption{noformat}{\renewcommand*\NamesFormat{}}
\DeclareOption{smallcaps}{\renewcommand*\NamesFormat{\scshape}}
\DeclareOption{italic}{\renewcommand*\NamesFormat{\itshape}}
\DeclareOption{boldface}{\renewcommand*\NamesFormat{\bfseries}}
-\DeclareOption{noformat}{\renewcommand*\NamesFormat{}}
-\DeclareOption{verbose}{\@nameauth@Verbosetrue}
\DeclareOption{altformat}{%
\@nameauth@AltFormattrue\@nameauth@DoAlttrue}
\ExecuteOptions%
@@ -5174,31 +6205,58 @@ the README.txt or README for more information.
\ProcessOptions\relax
% \end{macrocode}
%
-% Now we load the required packages. They facilitate the first\,/\,subsequent name uses, the parsing of arguments, and the implementation of starred forms.
+% Now we load the required packages. They facilitate the first/subsequent name uses, the parsing of arguments, and the implementation of starred forms.
% \begin{macrocode}
\RequirePackage{etoolbox}
-\RequirePackage{suffix}
\RequirePackage{trimspaces}
+\RequirePackage{suffix}
\RequirePackage{xargs}
% \end{macrocode}
%
-% The \textsf{etoolbox} package is essential for processing name control sequences. Using \textsf{xargs} allows the optional arguments to work. Using \textsf{suffix} facilitated the starred form of macros. Finally, \textsf{trimspaces} helps the fault tolerance of name arguments.
-% \BigBlank
-% \newpage
-%
% \subsection{Internal Macros}
% \label{sec:InternalMacros}
%
-% \noindent{\large\bfseries Name Control Sequence: Who Am I?}
+% \noindent{\normalsize\bfseries Internal Values}
+% \begin{macro}{\@nameauth@Actual}
+% \changes{2.0}{2015/11/11}{Added}
+% \changes{3.5}{2020/11/23}{Use \cmd{\def}}
+% This sets the ``actual'' character used by \textsf{nameauth} for index sorting. This lets one use, for example, |\global\IndexActual{=}|.
+% \begin{macrocode}
+\def\@nameauth@Actual{@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nameauth@Exclude}
+% \changes{3.5}{2020/11/23}{Added}
+% This makes an xref into an ``exclusion''. An exclusion is any name control sequence ending in \texttt{!PN} that expands to this value. See \cmd{\ExcludeName}.
+% \begin{macrocode}
+\newcommand*\@nameauth@Exclude{!}
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent{\normalsize\bfseries Name Control Sequence: Who Am I?}
% \begin{macro}{\@nameauth@Clean}
-% Thanks to \Name*[Heiko]{Oberdiek}, this macro produces a ``sanitized'' string used to make a (hopefully) unique control sequence for a name. We can test the existence of that control string to determine first occurrences of a name or cross-reference.
+% Thanks to \Name*[Heiko]{Oberdiek}, this macro produces a ``sanitized'' string to make a control sequence for a name. Testing the existence of that control sequence is the core of \textsf{nameauth}.
% \begin{macrocode}
\newcommand*\@nameauth@Clean[1]
{\expandafter\zap@space\detokenize{#1} \@empty}
% \end{macrocode}
-% \end{macro}\medskip
+% \end{macro}
+%
+% \begin{macro}{\@nameauth@MakeCS}
+% \changes{3.5}{2020/11/23}{Added}
+% Unless we are in \cmd{\AKA}, create a name control sequence in the core name engine.
+% \begin{macrocode}
+\newcommand*\@nameauth@MakeCS[1]
+{%
+ \unless\ifcsname#1\endcsname
+ \unless\if@nameauth@InAKA\csgdef{#1}{}\fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
%
-% \noindent{\large\bfseries Parsing: Root and Suffix}
+% \noindent{\normalsize\bfseries Parsing: Root and Suffix}
% \begin{macro}{\@nameauth@Root}
% The following two macros return everything before a comma in \meta{SNN}.
% \begin{macrocode}
@@ -5219,7 +6277,7 @@ the README.txt or README for more information.
% \begin{macro}{\@nameauth@TrimTag}
% \changes{3.0}{2016/10/26}{Added}
% \changes{3.2}{2017/03/22}{Renamed}
-% The following two macros return everything before a vertical bar (\verb+|+) in an index tag.
+% The following two macros return everything before a vertical bar (\texttt{\textbar}) in an index tag.
% \begin{macrocode}
\newcommand*\@nameauth@TrimTag[1]{\@nameauth@@TrimTag#1|\\}
% \end{macrocode}
@@ -5248,8 +6306,9 @@ the README.txt or README for more information.
% \changes{3.2}{2017/03/22}{Renamed}
% Throw out the radix; return the suffix with no leading spaces. We use this when printing the suffix.
% \begin{macrocode}
-\def\@nameauth@@Suffix#1,#2,#3\\%
- {\ifx\\#2\\\@empty\else\trim@spaces{#2}\fi}
+\def\@nameauth@@Suffix#1,#2,#3\\{%
+ \ifx\\#2\\\@empty\else\trim@spaces{#2}\fi
+}
% \end{macrocode}
% \end{macro}
%
@@ -5269,33 +6328,39 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Parsing: Capitalization}
+% \noindent{\normalsize\bfseries Parsing: Capitalization}
% \begin{macro}{\@nameauth@TestToks}
% \phantomsection
% \label{page:CapSystem}
% \changes{3.2}{2017/03/22}{Added}
+% \changes{3.5}{2020/11/23} {Fix namespace}
% Test if the leading token is the same as the leading token of an active Unicode character, using an \textit{Esszett} (\texttt{ß}) as the control. We only run this macro if we are in the \textsf{inputenc} regime.
% \begin{macrocode}
\newcommand*\@nameauth@TestToks[1]
{%
\toks@\expandafter{\@car#1\@nil}%
- \edef\one{\the\toks@}%
+ \edef\@nameauth@one{\the\toks@}%
\toks@\expandafter{\@carß\@nil}%
- \edef\two{\the\toks@}%
- \ifx\one\two\@nameauth@UTFtrue\else\@nameauth@UTFfalse\fi
+ \edef\@nameauth@two{\the\toks@}%
+ \ifx\@nameauth@one\@nameauth@two
+ \@nameauth@UTFtrue%
+ \else
+ \@nameauth@UTFfalse%
+ \fi
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@nameauth@UTFtest}
% \changes{3.0}{2016/10/26}{Added}
-% \changes{3.1}{2017/01/13}{Override bypasses test}
+% \changes{3.1}{2017/01/13}{Can skip test}
% \changes{3.2}{2017/03/22}{Non-suffix only}
-% Before we attempt at capitalizing anything, we need to determine if we are running under \texttt{xelatex} or \texttt{lualatex} by testing for \cmd{\Umathchar}. Then we see if \textsf{inputenc} is loaded. We set up the comparison and pass off to \cmd{\@nameauth@TestToks}.
+% \changes{3.5}{2020/11/23}{Fix namespace}
+% We choose how to capitalize a letter by determining if we are running under \texttt{xelatex} or \texttt{lualatex}. We test for \cmd{\Umathchar}. Then we see if \textsf{inputenc} is loaded. We set up the comparison and pass off to \cmd{\@nameauth@TestToks}.
% \begin{macrocode}
\newcommand*\@nameauth@UTFtest[1]
{%
- \def\testarg{#1}%
+ \def\@nameauth@testarg{#1}%
\ifdefined\Umathchar
\@nameauth@UTFfalse%
\else
@@ -5303,7 +6368,8 @@ the README.txt or README for more information.
\if@nameauth@Accent
\@nameauth@UTFtrue\@nameauth@Accentfalse%
\else
- \expandafter\@nameauth@TestToks\expandafter{\testarg}%
+ \expandafter\@nameauth@TestToks%
+ \expandafter{\@nameauth@testarg}%
\fi
\else
\@nameauth@UTFfalse%
@@ -5315,14 +6381,23 @@ the README.txt or README for more information.
%
% \begin{macro}{\@nameauth@UTFtestS}
% \changes{3.2}{2017/03/22}{Added}
+% \changes{3.5}{2020/11/23}{Fix namespace}
% This test is like the one above, but a special case when we have a suffix. We have to do a bit more in the way of expansion to get the comparison to work properly. Moreover, we only use this when the regular suffix macro is not \cmd{\@empty}.
% \begin{macrocode}
\newcommand*\@nameauth@UTFtestS[1]
{%
- \let\ex\expandafter%
- \ex\def\ex\testarg\ex{\@nameauth@GetSuff{#1}}%
- \ex\toks@\ex\ex\ex{\testarg}%
- \ex\def\ex\test@rg\ex{\the\toks@}%
+ \expandafter\def\expandafter\@nameauth@testarg%
+ \expandafter{\@nameauth@GetSuff{#1}}%
+% \end{macrocode}
+% This following token register assignment looks weird, but it is how we get a test that works.
+% \begin{macrocode}
+ \expandafter\toks@%
+ \expandafter\expandafter\expandafter{\@nameauth@testarg}%
+% \end{macrocode}
+% We take that token register and assign its value to a macro to do the test.
+% \begin{macrocode}
+ \expandafter\def\expandafter\@nameauth@test@rg%
+ \expandafter{\the\toks@}%
\ifdefined\Umathchar
\@nameauth@UTFfalse%
\else
@@ -5330,7 +6405,8 @@ the README.txt or README for more information.
\if@nameauth@Accent
\@nameauth@UTFtrue\@nameauth@Accentfalse%
\else
- \expandafter\@nameauth@TestToks\expandafter{\test@rg}%
+ \expandafter\@nameauth@TestToks%
+ \expandafter{\@nameauth@test@rg}%
\fi
\else
\@nameauth@UTFfalse%
@@ -5354,8 +6430,9 @@ the README.txt or README for more information.
% \changes{3.2}{2017/03/22}{Renamed, use \cmd{\MakeUppercase}}
% Helper macro for the one above.
% \begin{macrocode}
-\def\@nameauth@C@p#1#2\\%
- {\expandafter\trim@spaces\expandafter{\MakeUppercase{#1}#2}}
+\def\@nameauth@C@p#1#2\\{%
+ \expandafter\trim@spaces\expandafter{\MakeUppercase{#1}#2}%
+}
% \end{macrocode}
% \end{macro}
%
@@ -5372,80 +6449,424 @@ the README.txt or README for more information.
% \changes{3.2}{2017/03/22}{Use \cmd{\MakeUppercase}}
% Helper macro for the one above.
% \begin{macrocode}
-\def\@nameauth@C@pUTF#1#2#3\\%
- {\expandafter\trim@spaces\expandafter{\MakeUppercase{#1#2}#3}}
+\def\@nameauth@C@pUTF#1#2#3\\{%
+ \expandafter\trim@spaces\expandafter{\MakeUppercase{#1#2}#3}%
+}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Parsing: Punctuation Detection}
+% \begin{macro}{\@nameauth@CapArgs}
+% \changes{3.5}{2020/11/23}{Added}
+% Capitalize the first letter of all name arguments. Implements capitalization on demand in the body text (not the index) when not in alternate formatting. We only use this macro in the local scope of \cmd{\@nameauth@Parse}.
+% \begin{macrocode}
+\newcommand*\@nameauth@CapArgs[3]
+{%
+ \ifdefined\@nameauth@InParser
+ \unless\if@nameauth@AltFormat
+ \let\carga\arga%
+ \let\crootb\rootb%
+ \let\csuffb\suffb%
+ \let\cargc\argc%
+% \end{macrocode}
+% We test the first argument for active Unicode characters, then cap the first letter.
+% \begin{macrocode}
+ \unless\ifx\arga\@empty
+ \def\test{#1}%
+ \expandafter\@nameauth@UTFtest\expandafter{\test}%
+% \end{macrocode}
+% Capitalize the first active Unicode character.
+% \begin{macrocode}
+ \if@nameauth@UTF
+ \expandafter\def\expandafter\carga\expandafter{%
+ \expandafter\@nameauth@CapUTF\expandafter{\test}}%
+% \end{macrocode}
+% Capitalize the first character (not active Unicode).
+% \begin{macrocode}
+ \else
+ \expandafter\def\expandafter\carga\expandafter{%
+ \expandafter\@nameauth@Cap\expandafter{\test}}%
+ \fi
+ \fi
+% \end{macrocode}
+% We test the root surname for active Unicode characters, then cap the first letter.
+% \begin{macrocode}
+ \def\test{#2}%
+ \expandafter\@nameauth@UTFtest\expandafter{\test}%
+% \end{macrocode}
+% Capitalize the first active Unicode character.
+% \begin{macrocode}
+ \if@nameauth@UTF
+ \expandafter\def\expandafter\crootb\expandafter{%
+ \expandafter\@nameauth@CapUTF\expandafter{\rootb}}%
+% \end{macrocode}
+% Capitalize the first character (not active Unicode).
+% \begin{macrocode}
+ \else
+ \expandafter\def\expandafter\crootb\expandafter{%
+ \expandafter\@nameauth@Cap\expandafter{\rootb}}%
+ \fi
+% \end{macrocode}
+% We test the suffix for active Unicode characters, then cap the first letter.
+% \begin{macrocode}
+ \unless\ifx\suffb\@empty
+ \def\test{#2}%
+ \expandafter\@nameauth@UTFtestS\expandafter{\test}%
+ \protected@edef\test{\@nameauth@GetSuff{#2}}%
+% \end{macrocode}
+% Capitalize the first active Unicode character.
+% \begin{macrocode}
+ \if@nameauth@UTF
+ \protected@edef\test{\@nameauth@Suffix{#2}}%
+ \expandafter\def\expandafter\csuffb\expandafter{%
+ \expandafter\@nameauth@CapUTF\expandafter{\test}}%
+% \end{macrocode}
+% Capitalize the first character (not active Unicode).
+% \begin{macrocode}
+ \else
+ \edef\@nameauth@test{\@nameauth@Suffix{#2}}%
+ \expandafter\def\expandafter\csuffb\expandafter{%
+ \expandafter\@nameauth@Cap\expandafter{\test}}%
+ \fi
+ \fi
+% \end{macrocode}
+% We test the final argument for active Unicode characters, then cap the first letter.
+% \begin{macrocode}
+ \unless\ifx\argc\@empty
+ \def\test{#3}%
+ \expandafter\@nameauth@UTFtest\expandafter{\test}%
+% \end{macrocode}
+% Capitalize the first active Unicode character.
+% \begin{macrocode}
+ \if@nameauth@UTF
+ \expandafter\def\expandafter\cargc\expandafter{%
+ \expandafter\@nameauth@CapUTF\expandafter{\test}}%
+% \end{macrocode}
+% Capitalize the first character (not active Unicode).
+% \begin{macrocode}
+ \else
+ \expandafter\def\expandafter\cargc\expandafter{%
+ \expandafter\@nameauth@Cap\expandafter{\test}}%
+ \fi
+ \fi
+% \end{macrocode}
+% Let the arguments be the macros with caps.
+% \begin{macrocode}
+ \let\arga\carga%
+ \let\rootb\crootb%
+ \let\suffb\csuffb%
+ \let\argc\cargc%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent{\normalsize\bfseries Parsing: Punctuation Detection and Alteration}
% \begin{macro}{\@nameauth@TestDot}
-% This macro, based on a snippet by \Name*[Uwe]{Lueck}, checks for a period at the end of its argument. It determines whether we need to call \cmd{\@nameauth@CheckDot} below.
+% \changes{3.5}{2020/11/23}{Redesigned}
+% This macro, based on a snippet by \Name*[Uwe]{Lueck}, checks for a full stop at the end of its argument using the two internal helper macros below.
% \begin{macrocode}
\newcommand*\@nameauth@TestDot[1]
{%
- \def\TestDot##1.\TestEnd##2\\{\TestPunct{##2}}%
- \def\TestPunct##1{%
- \ifx\TestPunct##1\TestPunct%
+% \end{macrocode}
+% If no full stop is present, \texttt{\#\#1} is associated with the first \cmd{\@End.}. The second \cmd{\@End} gets absorbed as a parameter, leaving \texttt{\#\#2} empty. If a full stop is present, \texttt{\#\#2} will contain it.
+% \begin{macrocode}
+ \def\@nameauth@TestD@t##1.\@End##2\\{\@nameauth@TestPunct{##2}}%
+% \end{macrocode}
+% The two control sequences are equal if \texttt{\#\#1} is empty (no full stop). If \texttt{\#\#1} is not empty, it sets \cmd{\@nameauth@Puncttrue}, which triggers the call to \cmd{\@nameauth@CheckDot} below.
+% \begin{macrocode}
+ \def\@nameauth@TestPunct##1%
+ {%
+ \ifx\@nameauth@TestPunct##1\@nameauth@TestPunct
\else
- \@nameauth@Puncttrue%
+ \global\@nameauth@Puncttrue%
\fi
}%
- \@nameauth@Punctfalse%
- \TestDot#1\TestEnd.\TestEnd\\%
+ \global\@nameauth@Punctfalse%
+ \@nameauth@TestD@t#1\@End.\@End\\%
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@nameauth@CheckDot}
-% We assume that \cmd{\expandafter} precedes the invocation of \cmd{\@nameauth@CheckDot}, which only is called if the terminal character of the input is a period. We evaluate the lookahead \cmd{\@token} while keeping it on the list of input tokens.
+% We assume that \cmd{\expandafter} precedes the invocation of \cmd{\@nameauth@CheckDot}, which only is called if the terminal character of the input is a period. We evaluate the lookahead \cmd{\@nameauth@token} while keeping it on the list of input tokens.
% \begin{macrocode}
-\newcommand*\@nameauth@CheckDot%
- {\futurelet\@token\@nameauth@EvalDot}
+\newcommand*\@nameauth@CheckDot
+ {\futurelet\@nameauth@token\@nameauth@EvalDot}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@nameauth@EvalDot}
-% If \cmd{\@token} is a full stop, we gobble the token.
+% If \cmd{\@nameauth@token} is a full stop, we gobble the next token. Note that we cannot have this conditional statement span more than one line.
+% \begin{macrocode}
+\newcommand*\@nameauth@EvalDot
+{%
+ \let\@nameauth@stop=.%
+ \ifx\@nameauth@token\@nameauth@stop\expandafter\@gobble \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nameauth@AddPunct}
+% \changes{3.5}{2020/11/23}{Added}
+% Here we govern whether spaces between name elements break or not, and whether to add commas or not. This all occurs in the text, not the index. The priority from highest to lowest is no commas, show commas, and always show commas. Much applies only to Western names, thus we check of \meta{FNN} is empty or not. We only use this macro in the local scope of \cmd{\@nameauth@Parse}.
+% \begin{macrocode}
+\newcommand*\@nameauth@AddPunct
+{%
+ \ifdefined\@nameauth@InParser
+ \def\Space{ }%
+ \def\SpaceX{ }%
+% \end{macrocode}
+% \cmd{\SpaceX} is used for the space between a Western name and an affix, specifically tied to \cmd{\KeepAffix}. \cmd{\Space} is used for all other spaces between name elements.
+% \begin{macrocode}
+ \if@nameauth@NBSP \edef\Space{\nobreakspace}\fi
+ \if@nameauth@NBSPX \edef\SpaceX{\nobreakspace}\fi
+% \end{macrocode}
+% Western names have a set of comma-use conventions that differ from all other name forms, so we only use the following logic if \meta{FNN} is not empty, thus, a Western name.
+% \begin{macrocode}
+ \unless\ifx\arga\@empty
+ \if@nameauth@AlwaysComma
+ \def\Space{, }%
+ \if@nameauth@NBSP \edef\Space{,\nobreakspace}\fi
+ \fi
+ \if@nameauth@ShowComma
+ \def\Space{, }%
+ \if@nameauth@NBSP \edef\Space{,\nobreakspace}\fi
+ \fi
+ \if@nameauth@NoComma
+ \def\Space{ }%
+ \if@nameauth@NBSP \edef\Space{\nobreakspace}\fi
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent{\normalsize\bfseries Parsing: Name Argument Loading}
+% \begin{macro}{\@nameauth@LoadArgs}
+% \changes{3.5}{2020/11/23}{Added}
+% Assign name arguments to internal macros to determine name syntax. This is used in all macros that take name arguments.
+% \begin{macrocode}
+\newcommand*\@nameauth@LoadArgs[3]
+{%
+% \end{macrocode}
+% We want these arguments to expand to \cmd{\@empty} (or not) when we test them.
+% \begin{macrocode}
+ \protected@edef\@nameauth@A{\trim@spaces{#1}}%
+ \protected@edef\@nameauth@B{\@nameauth@Root{#2}}%
+ \protected@edef\@nameauth@SB{\@nameauth@Suffix{#2}}%
+ \protected@edef\@nameauth@C{\trim@spaces{#3}}%
+% \end{macrocode}
+% Make (usually) unique control sequence values from the name arguments.
+% \begin{macrocode}
+ \def\@nameauth@csb{\@nameauth@Clean{#2}}%
+ \def\@nameauth@csbc{\@nameauth@Clean{#2,#3}}%
+ \def\@nameauth@csab{\@nameauth@Clean{#1!#2}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent{\normalsize\bfseries Parsing: Standard Parsing Logic}
+% \begin{macro}{\@nameauth@Choice}
+% \changes{3.5}{2020/11/23}{Added}
+% This standard logic applies to all macros that take name arguments.
+% \begin{macrocode}
+\newcommand\@nameauth@Choice[3]
+{%
+ \ifx\@nameauth@A\@empty
+ \ifx\@nameauth@C\@empty
+% \end{macrocode}
+% This decision path is for non-Western names. The \texttt{\#1} argument recurs below where \cmd{\@nameauth@SB} is present. Thus, for output to the text, the \texttt{\#1} argument must test both \cmd{\@nameauth@C} and \cmd{\@nameauth@SB}, and swap the former with the latter if necessary. For output to the index or for handling control sequences, one ignores \cmd{\@nameauth@C}.
+% \begin{macrocode}
+ #1%
+ \else
+ \ifx\@nameauth@SB\@empty
+% \end{macrocode}
+% The \texttt{\#2} argument is only for non-Western names that use the obsolete syntax. In the \texttt{\#2} argument \cmd{\@nameauth@SB} never occurs. For indexing and control sequences, one cannot ignore the use of \cmd{\@nameauth@C} in this path.
+% \begin{macrocode}
+ #2%
+ \else
+% \end{macrocode}
+% But if both \cmd{\@nameauth@SB} and \cmd{\@nameauth@C} are present, we invoke the \texttt{\#1} argument instead and let it do any further testing and processing.
+% \begin{macrocode}
+ #1%
+ \fi
+ \fi
+ \else
+% \end{macrocode}
+% This decision path is for Western names. In those cases where one must work with name forms in the text, somewhere in the \texttt{\#3} argument one must test for \cmd{\@nameauth@C} and swap it for \cmd{\@nameauth@A}, as well as accounting for the presence or absence of \cmd{\@nameauth@SB}. Otherwise, for indexing and control sequences, one ignores \cmd{\@nameauth@C} in this path and handles \cmd{\@nameauth@SB} appropriately.
+% \begin{macrocode}
+ #3%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nameauth@Flags}
+% \changes{3.5}{2020/09/25}{Added}
+% Reset flags after the naming macros and \cmd{\AKA} and friends create output in the text. This is not the only place where formatting flags are reset, but the other places in the core naming engine and name parser are special-use cases designed for the use of \cmd{\JustIndex} and macros like \cmd{\PName}.
% \begin{macrocode}
-\newcommand*\@nameauth@EvalDot%
+\newcommand*\@nameauth@Flags
{%
- \let\@period=.%
- \ifx\@token\@period\expandafter\@gobble \fi
+ \if@nameauth@OldReset
+% \end{macrocode}
+% The \texttt{oldreset} option implies not only a difference in scope regarding how flags are reset, but it also lets the effects of \cmd{\ForgetThis} and \cmd{\SubvertThis} to pass through \cmd{\AKA} and \cmd{\AKA*}. Regardless, we only reset \texttt{\textbackslash if@nameauth@AltAKA} here due to macros like \cmd{\PName}.
+% \begin{macrocode}
+ \if@nameauth@InAKA
+ \@nameauth@AltAKAfalse%
+ \fi
+ \@nameauth@SkipIndexfalse%
+ \if@nameauth@InName
+ \@nameauth@Forgetfalse%
+ \@nameauth@Subvertfalse%
+ \fi
+ \@nameauth@NBSPfalse%
+ \@nameauth@NBSPXfalse%
+ \@nameauth@DoCapsfalse%
+ \@nameauth@Accentfalse%
+ \@nameauth@AllThisfalse%
+ \@nameauth@ShowCommafalse%
+ \@nameauth@NoCommafalse%
+ \@nameauth@RevThisfalse%
+ \@nameauth@RevThisCommafalse%
+ \@nameauth@ShortSNNfalse%
+ \@nameauth@EastFNfalse%
+ \else
+% \end{macrocode}
+% \newpage\noindent
+% The current way that the flags are reset makes them both global and more uniform, hopefully eliminating a few chances for errors that might be quite difficult to debug.
+% \begin{macrocode}
+ \if@nameauth@InAKA
+ \global\@nameauth@AltAKAfalse%
+ \fi
+ \global\@nameauth@SkipIndexfalse%
+ \global\@nameauth@Forgetfalse%
+ \global\@nameauth@Subvertfalse%
+ \global\@nameauth@NBSPfalse%
+ \global\@nameauth@NBSPXfalse%
+ \global\@nameauth@DoCapsfalse%
+ \global\@nameauth@Accentfalse%
+ \global\@nameauth@AllThisfalse%
+ \global\@nameauth@ShowCommafalse%
+ \global\@nameauth@NoCommafalse%
+ \global\@nameauth@RevThisfalse%
+ \global\@nameauth@RevThisCommafalse%
+ \global\@nameauth@ShortSNNfalse%
+ \global\@nameauth@EastFNfalse%
+ \fi
}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Error Detection}
+% \noindent{\normalsize\bfseries Error Detection and Debugging}
% \begin{macro}{\@nameauth@Error}
% \changes{3.0}{2016/10/26}{Added}
% \changes{3.01}{2016/10/27}{Fixed}
-% One can cause \textsf{nameauth} to halt with an error by leaving a required name argument empty, providing an argument that expands to empty, or creating an empty root within a root\,/\,suffix pair.
+% \changes{3.5}{2020/11/23}{Fix namespace}
+% One can cause \textsf{nameauth} to halt with an error by leaving a required name argument empty, providing an argument that expands to empty, or creating an empty root within a malformed root/suffix pair. We provide meaningful feedback regarding these cases.
% \begin{macrocode}
\newcommand*\@nameauth@Error[2]
{%
- \edef\msga{#2 SNN arg empty}%
- \edef\msgb{#2 SNN arg malformed}%
- \protected@edef\testname{\trim@spaces{#1}}%
- \protected@edef\testroot{\@nameauth@Root{#1}}%
- \ifx\testname\@empty
- \PackageError{nameauth}{\msga}%
+ \edef\@nameauth@msga{#2 SNN arg empty}%
+ \edef\@nameauth@msgb{#2 SNN arg malformed}%
+ \protected@edef\@nameauth@testname{\trim@spaces{#1}}%
+ \protected@edef\@nameauth@testroot{\@nameauth@Root{#1}}%
+ \ifx\@nameauth@testname\@empty
+ \PackageError{nameauth}{\@nameauth@msga}%
\fi
- \ifx\testroot\@empty
- \PackageError{nameauth}{\msgb}%
+ \ifx\@nameauth@testroot\@empty
+ \PackageError{nameauth}{\@nameauth@msgb}%
\fi
}
% \end{macrocode}
% \end{macro}
-% \newpage
%
-% \noindent{\large\bfseries Core Name Engine}
+% \begin{macro}{\@nameauth@Debug}
+% \changes{3.3}{2020/02/20}{added}
+% \changes{3.5}{2020/11/23}{use index hook, optimize logic, fix namespace, use Boolean flags}
+% In this Swiss-army knife for debugging, we set up a local scope because we make changes that would otherwise affect normal \textsf{nameauth} output. We redefine \cmd{\NameauthIndex} to print an argument in the text instead of the index, and we force indexing to occur.
+% \begin{macrocode}
+\newcommandx*\@nameauth@Debug[3][1=\@empty, 3=\@empty]
+{%
+ \begingroup%
+ \def\NameauthIndex##1{##1}%
+ \@nameauth@DoIndextrue%
+% \end{macrocode}
+% Process and load the arguments into the appropriate macros.
+% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
+ \@nameauth@Error{#2}{macro \string\@nameauth@Debug}%
+% \end{macrocode}
+% \newpage\noindent
+% Below, given \cmd{\@nameauth@IdxDebugfalse} and \cmd{\@nameauth@LongIdxDebugfalse}, we produce the output of \cmd{\ShowPattern}.
+%
+% Otherwise we locally delete any tag and xref control sequences as needed. They will be restored when the scope ends. If \cmd{\ShowIdxPageref} set \cmd{\@nameauth@IdxDebugtrue} and \cmd{\@nameauth@LongIdxDebugtrue} we produce a full index entry that shows all the tags and the ``actual'' character as well as the name. If \cmd{\ShowIdxPageref*} set \cmd{\@nameauth@IdxDebugtrue} we produce a short index entry that shows only the name.
%
+% \begin{macrocode}
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names, current syntax.
+% \begin{macrocode}
+ {%
+ \unless\if@nameauth@IdxDebug
+ \@nameauth@csb%
+ \else
+ \csundef{\@nameauth@csb!PN}%
+ \unless\if@nameauth@LongIdxDebug
+ \csundef{\@nameauth@csb!PRE}%
+ \csundef{\@nameauth@csb!TAG}%
+ \fi
+ \IndexName[#1]{#2}[#3]%
+ \fi
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax.
+% \begin{macrocode}
+ {%
+ \unless\if@nameauth@IdxDebug
+ \@nameauth@csbc%
+ \else
+ \csundef{\@nameauth@csbc!PN}%
+ \unless\if@nameauth@LongIdxDebug
+ \csundef{\@nameauth@csbc!PRE}%
+ \csundef{\@nameauth@csbc!TAG}%
+ \fi
+ \IndexName[#1]{#2}[#3]%
+ \fi
+ }%
+% \end{macrocode}
+% Western names.
+% \begin{macrocode}
+ {%
+ \unless\if@nameauth@IdxDebug
+ \@nameauth@csab%
+ \else
+ \csundef{\@nameauth@csab!PN}%
+ \unless\if@nameauth@LongIdxDebug
+ \csundef{\@nameauth@csab!PRE}%
+ \csundef{\@nameauth@csab!TAG}%
+ \fi
+ \IndexName[#1]{#2}[#3]%
+ \fi
+ }%
+% \end{macrocode}
+% We close the scope and reset the flags.
+% \begin{macrocode}
+ \endgroup%
+ \global\@nameauth@IdxDebugfalse%
+ \global\@nameauth@LongIdxDebugfalse%
+}
+% \end{macrocode}
+% \end{macro}
+% \newpage
+%
+% \noindent{\normalsize\bfseries Core Name Engine}
% \begin{macro}{\@nameauth@Name}
-% \changes{0.85}{2012/02/05}{Hide commas}
-% \changes{1.5}{2013/02/22}{Reversing\,/\,caps}
+% \changes{1.5}{2013/02/22}{Reversing/caps}
% \changes{2.0}{2015/11/11}{Trim spaces; fix tags}
% \changes{2.1}{2015/11/24}{Fix Unicode}
-% \changes{2.3}{2016/01/05}{Internal}
+% \changes{2.3}{2016/01/05}{Now internal}
% \changes{2.4}{2016/03/15}{Set token regs}
% \changes{2.41}{2016/03/17}{Fix token regs}
% \changes{2.5}{2016/04/06}{Fix old syntax}
@@ -5460,7 +6881,7 @@ the README.txt or README for more information.
% \end{macrocode}
% Both \cmd{\@nameauth@Name} and \cmd{\AKA} engage the lock below, preventing a stack overflow. Tell the formatting mechanism that it is being called from \cmd{\@nameauth@Name}.
% \begin{macrocode}
- \if@nameauth@BigLock\@nameauth@Locktrue\fi
+ \if@nameauth@BigLock \@nameauth@Locktrue\fi
\unless\if@nameauth@Lock
\@nameauth@Locktrue%
\@nameauth@InNametrue%
@@ -5488,277 +6909,169 @@ the README.txt or README for more information.
\fi
\else
% \end{macrocode}
-% Delete\,/\,create name cseq if directed. If the delete flag is set, the create flag is ignored. Ensure that names are printed in horizontal mode. Wrap the name with two index entries in case a page break occurs between name elements.
+% Create or delete name cseq if directed, with deletion override. Ensure that names are printed in horizontal mode. Wrap the name with two index entries in case a page break occurs between name elements.
% \begin{macrocode}
- \if@nameauth@Forget
- \ForgetName[#1]{#2}[#3]%
- \else
- \if@nameauth@Subvert
- \SubvertName[#1]{#2}[#3]%
- \fi
- \fi
+ \if@nameauth@Subvert \SubvertName[#1]{#2}[#3]\fi
+ \if@nameauth@Forget \ForgetName[#1]{#2}[#3]\fi
\leavevmode\hbox{}%
- \unless\if@nameauth@SkipIndex\IndexName[#1]{#2}[#3]\fi
+ \unless\if@nameauth@SkipIndex \IndexName[#1]{#2}[#3]\fi
\if@nameauth@MainFormat
- \@nameauth@Parse[#1]{#2}[#3]{!MN}%
+ \@nameauth@Parse{#1}{#2}{#3}{!MN}%
\else
- \@nameauth@Parse[#1]{#2}[#3]{!NF}%
+ \@nameauth@Parse{#1}{#2}{#3}{!NF}%
\fi
- \unless\if@nameauth@SkipIndex\IndexName[#1]{#2}[#3]\fi
+ \unless\if@nameauth@SkipIndex \IndexName[#1]{#2}[#3]\fi
% \end{macrocode}
-% Reset all the ``per name'' Boolean values. The default is global.
+% Reset all the ``per name'' Boolean values after printing a name. The default is global.
% \begin{macrocode}
- \if@nameauth@OldReset
- \@nameauth@SkipIndexfalse%
- \@nameauth@Forgetfalse%
- \@nameauth@Subvertfalse%
- \@nameauth@NBSPfalse%
- \@nameauth@NBSPXfalse%
- \@nameauth@DoCapsfalse%
- \@nameauth@Accentfalse%
- \@nameauth@AllThisfalse%
- \@nameauth@ShowCommafalse%
- \@nameauth@NoCommafalse%
- \@nameauth@RevThisfalse%
- \@nameauth@RevThisCommafalse%
- \@nameauth@ShortSNNfalse%
- \@nameauth@EastFNfalse%
- \else
- \global\@nameauth@SkipIndexfalse%
- \global\@nameauth@Forgetfalse%
- \global\@nameauth@Subvertfalse%
- \global\@nameauth@NBSPfalse%
- \global\@nameauth@NBSPXfalse%
- \global\@nameauth@DoCapsfalse%
- \global\@nameauth@Accentfalse%
- \global\@nameauth@AllThisfalse%
- \global\@nameauth@ShowCommafalse%
- \global\@nameauth@NoCommafalse%
- \global\@nameauth@RevThisfalse%
- \global\@nameauth@RevThisCommafalse%
- \global\@nameauth@ShortSNNfalse%
- \global\@nameauth@EastFNfalse%
- \fi
+ \@nameauth@Flags%
\fi
\@nameauth@Lockfalse%
\@nameauth@InNamefalse%
% \end{macrocode}
-% Close the ``locked'' branch.
+% Close the ``locked'' branch and complete the full stop detection and removal. This conditional statement must be on one line.
% \begin{macrocode}
\fi
-% \end{macrocode}
-% Call the full stop detection.
-% \begin{macrocode}
\if@nameauth@Punct\expandafter\@nameauth@CheckDot\fi
}
% \end{macrocode}
% \end{macro}
%
+% \noindent{\normalsize\bfseries Core Name Engine: Syntactic Element Layer}
% \begin{macro}{\@nameauth@Parse}
% \changes{3.0}{2016/10/26}{Added}
% \changes{3.1}{2017/01/13}{New workflow, caps}
% \changes{3.2}{2017/03/22}{Fix alt. format, affixes, use \cmd{\MakeUppercase}}
-% Parse and print a name in the text. The final required argument tells us which naming system we are in (Section~\ref{sec:NamePatterns}). Both \cmd{\@nameauth@Name} and \cmd{\AKA} call this parser.
+% \changes{3.5}{2020/11/23}{Global token regs, optimize logic, fix namespace}
+% Parse and print a name in the text. The final required argument tells us which naming system we are in (Section~\ref{sec:NamePatterns}). Both \cmd{\@nameauth@Name} and \cmd{\AKA} call this parser, which only works in a locked state.
% \begin{macrocode}
-\newcommandx*\@nameauth@Parse[4][1=\@empty, 3=\@empty]
+\newcommand\@nameauth@Parse[4]
{%
- \if@nameauth@BigLock\@nameauth@Lockfalse\fi
+ \if@nameauth@BigLock \@nameauth@Lockfalse\fi
\if@nameauth@Lock
- \let\ex\expandafter%
-% \end{macrocode}
-% We want these arguments to expand to \cmd{\@empty} (or not) when we test them.
-% \begin{macrocode}
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\rootb{\@nameauth@Root{#2}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \protected@edef\argc{\trim@spaces{#3}}%
-% \end{macrocode}
-% \newpage
-% \noindent If global caps. reversing, and commas are true, set the local flags true.
-% \begin{macrocode}
- \if@nameauth@AllCaps\@nameauth@AllThistrue\fi
- \if@nameauth@RevAll\@nameauth@RevThistrue\fi
- \if@nameauth@RevAllComma\@nameauth@RevThisCommatrue\fi
-% \end{macrocode}
-% Make (usually) unique control sequence values from the name arguments.
-% \begin{macrocode}
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
% \end{macrocode}
% Make token register copies of the current name args to be available for the hook macros.
% \begin{macrocode}
- \@nameauth@toksa\expandafter{#1}%
- \@nameauth@toksb\expandafter{#2}%
- \@nameauth@toksc\expandafter{#3}%
-% \end{macrocode}
-% Implement capitalization on demand in the body text if not in Continental mode.
-% \begin{macrocode}
- \if@nameauth@DoCaps
- \let\carga\arga%
- \let\crootb\rootb%
- \let\csuffb\suffb%
- \let\cargc\argc%
- \unless\if@nameauth@AltFormat
+ \if@nameauth@OldToks
+ \@nameauth@toksa\expandafter{#1}%
+ \@nameauth@toksb\expandafter{#2}%
+ \@nameauth@toksc\expandafter{#3}%
+ \else
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \fi
% \end{macrocode}
-% We test the first optarg for active Unicode characters. Then we capitalize the first letter.
+% If global caps. reversing, and commas are true, set the per-name flags true.
% \begin{macrocode}
- \unless\ifx\arga\@empty
- \def\test{#1}%
- \ex\@nameauth@UTFtest\ex{\test}%
- \if@nameauth@UTF
- \ex\def\ex\carga\ex{\ex\@nameauth@CapUTF\ex{\test}}%
- \else
- \ex\def\ex\carga\ex{\ex\@nameauth@Cap\ex{\test}}%
- \fi
- \fi
+ \if@nameauth@AllCaps \@nameauth@AllThistrue\fi
+ \if@nameauth@RevAll \@nameauth@RevThistrue\fi
+ \if@nameauth@RevAllComma \@nameauth@RevThisCommatrue\fi
% \end{macrocode}
-% We test the root surname for active Unicode characters. Then we capitalize the first letter.
+% Now we enter a local scope where we can use simple control strings without
+% needing to worry about collisions. We process and load the arguments into the appropriate macros.
% \begin{macrocode}
- \def\test{#2}%
- \ex\@nameauth@UTFtest\ex{\test}%
- \if@nameauth@UTF
- \ex\def\ex\crootb\ex{\ex\@nameauth@CapUTF\ex{\rootb}}%
- \else
- \ex\def\ex\crootb\ex{\ex\@nameauth@Cap\ex{\rootb}}%
- \fi
+ \begingroup%
+ \def\@nameauth@InParser{}%
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
% \end{macrocode}
-% We test the suffix for active Unicode characters. Then we capitalize the first letter.
+% Copy the protected control sequences to local, unprotected ones for backward compatibility and readability.
% \begin{macrocode}
- \unless\ifx\suffb\@empty
- \def\test{#2}%
- \ex\@nameauth@UTFtestS\ex{\test}%
- \protected@edef\test{\@nameauth@GetSuff{#2}}%
- \if@nameauth@UTF
- \protected@edef\test{\@nameauth@Suffix{#2}}%
- \ex\def\ex\csuffb\ex{\ex\@nameauth@CapUTF\ex{\test}}%
- \else
- \edef\test{\@nameauth@Suffix{#2}}%
- \ex\def\ex\csuffb\ex{\ex\@nameauth@Cap\ex{\test}}%
- \fi
- \fi
+ \let\arga\@nameauth@A%
+ \let\rootb\@nameauth@B%
+ \let\suffb\@nameauth@SB%
+ \let\argc\@nameauth@C%
% \end{macrocode}
-% We test the final optarg for active Unicode characters. Then we capitalize the first letter.
+% Capitalization on demand in the body text if not in alternate formatting.
% \begin{macrocode}
- \unless\ifx\argc\@empty
- \def\test{#3}%
- \ex\@nameauth@UTFtest\ex{\test}%
- \if@nameauth@UTF
- \ex\def\ex\cargc\ex{\ex\@nameauth@CapUTF\ex{\test}}%
- \else
- \ex\def\ex\cargc\ex{\ex\@nameauth@Cap\ex{\test}}%
- \fi
- \fi
+ \if@nameauth@DoCaps
+ \@nameauth@CapArgs{#1}{#2}{#3}%
\fi
- \let\arga\carga%
- \let\rootb\crootb%
- \let\suffb\csuffb%
- \let\argc\cargc%
- \fi
% \end{macrocode}
-% We capitalize the entire surname when desired; different from above.
+% We capitalize the entire surname when desired; different from above and overrides it.
% \begin{macrocode}
- \if@nameauth@AllThis
- \protected@edef\rootb{\MakeUppercase{\@nameauth@Root{#2}}}%
- \fi
+ \if@nameauth@AllThis
+ \protected@edef\rootb%
+ {\MakeUppercase{\@nameauth@Root{#2}}}%
+ \fi
% \end{macrocode}
% Use non-breaking spaces and commas as desired.
% \begin{macrocode}
- \edef\Space{\space}%
- \edef\SpaceX{\space}%
- \if@nameauth@NBSP\edef\Space{\nobreakspace}\fi
- \if@nameauth@NBSPX\edef\SpaceX{\nobreakspace}\fi
- \unless\ifx\arga\@empty
- \if@nameauth@AlwaysComma
- \edef\Space{,\space}%
- \if@nameauth@NBSP\edef\Space{,\nobreakspace}\fi
- \fi
- \if@nameauth@ShowComma
- \edef\Space{,\space}%
- \if@nameauth@NBSP\edef\Space{,\nobreakspace}\fi
- \fi
- \if@nameauth@NoComma
- \edef\Space{\space}%
- \if@nameauth@NBSP\edef\Space{\nobreakspace}\fi
- \fi
- \fi
+ \@nameauth@AddPunct%
% \end{macrocode}
% We parse names by attaching ``meaning'' to patterns of macro arguments primarily via \cmd{\FNN} and \cmd{\SNN}. Then we call the name printing macros, based on the optional arguments.
% \begin{macrocode}
- \let\SNN\rootb%
- \ifx\arga\@empty
- \ifx\argc\@empty
+ \let\SNN\rootb%
+ \@nameauth@Choice%
% \end{macrocode}
-% When \cmd{\arga}, \cmd{\argc}, and \cmd{\suffb} are empty, we have a mononym. When \cmd{\suffb} is not empty, we have a ``native'' Eastern name or non-Western name.
+% Non-Western names, current syntax.
+% We test \cmd{\argc} and \cmd{\suffb} as needed.
% \begin{macrocode}
- \let\FNN\suffb%
- \let\SNN\rootb%
- \@nameauth@NonWest{\csb#4}%
- \else
+ {%
+ \ifx\argc\@empty
+ \let\FNN\suffb%
+ \else
+ \let\FNN\argc%
+ \fi
+ \@nameauth@NonWest{\@nameauth@csb#4}%
+ \@nameauth@MakeCS{\@nameauth@csb#4}%
+ }%
% \end{macrocode}
-% When \cmd{\arga} and \cmd{\suffb} are empty, but \cmd{\argc} is not, we have the older syntax. When \cmd{\arga} is empty, but \cmd{\argc} and \cmd{\suffb} are not, we have alternate names for non-Western names.
+% Non-Western names, obsolete syntax. Here \cmd{\argc} is significant.
% \begin{macrocode}
- \ifx\suffb\@empty
- \let\FNN\argc%
- \let\SNN\rootb%
- \@nameauth@NonWest{\csbc#4}%
+ {%
+ \let\FNN\argc%
+ \@nameauth@NonWest{\@nameauth@csbc#4}%
+ \@nameauth@MakeCS{\@nameauth@csbc#4}%
+ }%
+% \end{macrocode}
+% Western names.
+% We test for \cmd{\argc} and swap it for \cmd{\arga} and account for \cmd{\suffb}.
+% \begin{macrocode}
+ {%
+ \ifx\argc\@empty
+ \let\FNN\arga%
\else
\let\FNN\argc%
- \let\SNN\rootb%
- \@nameauth@NonWest{\csb#4}%
\fi
- \fi
- \else
+ \unless\ifx\suffb\@empty
+ \def\SNN{\rootb\Space\suffb}%
+ \if@nameauth@ShortSNN
+ \let\SNN\rootb%
+ \fi
+ \fi
+ \@nameauth@West{\@nameauth@csab#4}%
+ \@nameauth@MakeCS{\@nameauth@csab#4}%
+ }%
% \end{macrocode}
-% When \cmd{\arga} is not empty, we have either a Western name or a ``non-native'' Eastern name. When \cmd{\argc} is not empty, we use alternate names. When \cmd{\suffb} is not empty we use suffixed forms.
+% We end the local group and reset the flags for name forms here.
% \begin{macrocode}
- \ifx\argc\@empty
- \let\FNN\arga%
- \else
- \let\FNN\argc%
- \fi
- \unless\ifx\suffb\@empty
- \def\SNN{\rootb\Space\suffb}%
- \if@nameauth@ShortSNN\let\SNN\rootb\fi
- \fi
- \@nameauth@West{\csab#4}%
+ \endgroup%
+ \if@nameauth@OldReset
+ \@nameauth@FullNamefalse%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@FirstFormatfalse%
+ \else
+ \global\@nameauth@FullNamefalse%
+ \global\@nameauth@FirstNamefalse%
+ \global\@nameauth@FirstFormatfalse%
\fi
\fi
}
% \end{macrocode}
% \end{macro}
%
+% \noindent{\normalsize\bfseries Core Name Engine: Name Display Layer}
% \begin{macro}{\@nameauth@NonWest}
% \changes{3.0}{2016/10/26}{Added}
% \changes{3.02}{2016/11/01}{Restrict \cmd{\ForceFN}}
% \changes{3.3}{2020/02/20}{global flag reset}
-% Print non-Western names from \cmd{\@nameauth@name} and \cmd{\AKA}. We inherit internal macros from the parser and do nothing apart from the locked state.
+% Arrange forms of non-Western names. We inherit macros from the parser and only use this macro in the local scope of the parser.
% \begin{macrocode}
\newcommand*\@nameauth@NonWest[1]
{%
- \if@nameauth@BigLock\@nameauth@Lockfalse\fi
- \if@nameauth@Lock
- \unless\ifcsname#1\endcsname
- \@nameauth@FirstFormattrue%
- \fi
- \if@nameauth@InAKA
- \if@nameauth@AltAKA
- \if@nameauth@OldAKA\@nameauth@EastFNtrue\fi
- \@nameauth@FullNamefalse%
- \@nameauth@FirstNametrue%
- \else
- \@nameauth@FullNametrue%
- \@nameauth@FirstNamefalse%
- \fi
- \else
- \unless\ifcsname#1\endcsname
- \@nameauth@FullNametrue%
- \@nameauth@FirstNamefalse%
- \fi
- \fi
- \if@nameauth@FirstName
- \@nameauth@FullNamefalse%
- \fi
+ \ifdefined\@nameauth@InParser
+ \@nameauth@Form{#1}%
\ifx\FNN\@empty
\@nameauth@Hook{\SNN}%
\else
@@ -5780,19 +7093,6 @@ the README.txt or README for more information.
\fi
\fi
\fi
- \unless\ifcsname#1\endcsname
- \unless\if@nameauth@InAKA\csgdef{#1}{}\fi
- \fi
-% \end{macrocode}
-% We have to reset these flags here because both the naming and cross-referencing macros use the parser.
-% \begin{macrocode}
- \if@nameauth@OldReset
- \@nameauth@FullNamefalse%
- \@nameauth@FirstNamefalse%
- \else
- \global\@nameauth@FullNamefalse%
- \global\@nameauth@FirstNamefalse%
- \fi
\fi
}
% \end{macrocode}
@@ -5801,32 +7101,12 @@ the README.txt or README for more information.
% \begin{macro}{\@nameauth@West}
% \changes{3.0}{2016/10/26}{Added}
% \changes{3.3}{2020/02/20}{global flag reset}
-% Print Western names and ``non-native'' Eastern names from \cmd{\@nameauth@name} and \cmd{\AKA}. We inherit internal macros from the parser and do nothing apart from the locked state.
+% Arrange forms of Western names and ``non-native'' Eastern names. We inherit macros from the parser and only use this macro in the local scope of the parser.
% \begin{macrocode}
\newcommand*\@nameauth@West[1]
{%
- \if@nameauth@BigLock\@nameauth@Lockfalse\fi
- \if@nameauth@Lock
- \unless\ifcsname#1\endcsname
- \@nameauth@FirstFormattrue%
- \fi
- \if@nameauth@InAKA
- \if@nameauth@AltAKA
- \@nameauth@FullNamefalse%
- \@nameauth@FirstNametrue%
- \else
- \@nameauth@FullNametrue%
- \@nameauth@FirstNamefalse%
- \fi
- \else
- \unless\ifcsname#1\endcsname
- \@nameauth@FullNametrue%
- \@nameauth@FirstNamefalse%
- \fi
- \fi
- \if@nameauth@FirstName
- \@nameauth@FullNamefalse%
- \fi
+ \ifdefined\@nameauth@InParser
+ \@nameauth@Form{#1}%
\if@nameauth@FullName
\if@nameauth@RevThis
\@nameauth@Hook{\SNN\SpaceX\FNN}%
@@ -5845,230 +7125,165 @@ the README.txt or README for more information.
\@nameauth@Hook{\rootb}%
\fi
\fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nameauth@Form}
+% \changes{3.5}{2020/11/23}{Added}
+% Set up the flags per the formatting rules for first, subsequent, long, and short uses. We only use this macro in the local scope of the parser.
+% \begin{macrocode}
+\newcommand*\@nameauth@Form[1]
+{%
+ \ifdefined\@nameauth@InParser
+% \end{macrocode}
+% If the name does not exist yet or if the \texttt{alwaysformat} option is used, force first-use formatting, force a long name, and inhibit a short name.
+% \begin{macrocode}
\unless\ifcsname#1\endcsname
- \unless\if@nameauth@InAKA\csgdef{#1}{}\fi
+ \@nameauth@FirstFormattrue%
+ \@nameauth@FullNametrue%
+ \@nameauth@FirstNamefalse%
+ \else
+ \if@nameauth@AlwaysFormat \@nameauth@FirstFormattrue\fi
\fi
% \end{macrocode}
-% We have to reset these flags here because both the naming and cross-referencing macros use the parser.
+% If we are not in \cmd{\AKA}, if a short name form is desired, inhibit a long form.
% \begin{macrocode}
- \if@nameauth@OldReset
- \@nameauth@FullNamefalse%
- \@nameauth@FirstNamefalse%
+ \unless\if@nameauth@InAKA
+ \if@nameauth@FirstName \@nameauth@FullNamefalse\fi
\else
- \global\@nameauth@FullNamefalse%
- \global\@nameauth@FirstNamefalse%
+% \end{macrocode}
+% If we are in \cmd{\AKA} use special formatting rules. \cmd{\AKA*} acts like \cmd{\FName}, while \cmd{\AKA} acts like \cmd{\Name*}. Both prefer using the subsequent-use hooks unless the \texttt{formatAKA} option or the \texttt{alwaysformat} option are used.
+% \begin{macrocode}
+ \if@nameauth@AltAKA
+ \if@nameauth@OldAKA \@nameauth@EastFNtrue\fi
+ \@nameauth@FullNamefalse%
+ \@nameauth@FirstNametrue%
+ \else
+ \@nameauth@FullNametrue%
+ \@nameauth@FirstNamefalse%
+ \fi
+ \unless\if@nameauth@AlwaysFormat
+ \unless\if@nameauth@AKAFormat
+ \@nameauth@FirstFormatfalse%
+ \fi
+ \fi
\fi
\fi
}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Format Hook Dispatcher}
+% \noindent{\normalsize\bfseries Core Name Engine: Format Hook Dispatcher}
% \begin{macro}{\@nameauth@Hook}
% \changes{2.4}{2016/03/15}{Current form}
% \changes{2.5}{2016/04/06}{Improve hooks}
% \changes{3.0}{2016/10/26}{Fix punct. detection}
-% Flags help the dispatcher invoke the correct formatting hooks. The flags control which hook is called (first\,/\,subsequent use, name type). The first set of tests handles formatting within \cmd{\AKA}. The second set of tests handles regular name formatting.
+% \changes{3.5}{2020/11/23} {Fix namespace}
+% Boolean flags control which hook is called (first/subsequent use, name type). We only use this macro in the local scope of the parser.
% \begin{macrocode}
\newcommand*\@nameauth@Hook[1]
{%
- \if@nameauth@BigLock\@nameauth@Lockfalse\fi
- \if@nameauth@Lock
+ \ifdefined\@nameauth@InParser
+% \end{macrocode}
+% We tell the formatting hooks that they are in the hook dispatcher to enable alternate formatting. We test the printed name form to see if it has a trailing full stop.
+% \begin{macrocode}
\@nameauth@InHooktrue%
\protected@edef\test{#1}%
\expandafter\@nameauth@TestDot\expandafter{\test}%
- \if@nameauth@InAKA
- \if@nameauth@AlwaysFormat
- \@nameauth@FirstFormattrue%
- \else
- \unless\if@nameauth@AKAFormat
- \@nameauth@FirstFormatfalse\fi
- \fi
- \if@nameauth@MainFormat
- \if@nameauth@FirstFormat
- \bgroup\NamesFormat{#1}\egroup%
- \else
- \bgroup\MainNameHook{#1}\egroup%
- \fi
+ \if@nameauth@MainFormat
+% \end{macrocode}
+% We use the formatting hooks for the main-matter system.
+% \begin{macrocode}
+ \if@nameauth@FirstFormat
+ \bgroup\NamesFormat{#1}\egroup%
\else
- \if@nameauth@FirstFormat
- \bgroup\FrontNamesFormat{#1}\egroup%
- \else
- \bgroup\FrontNameHook{#1}\egroup%
- \fi
+ \bgroup\MainNameHook{#1}\egroup%
\fi
\else
- \if@nameauth@AlwaysFormat
- \@nameauth@FirstFormattrue%
- \fi
- \if@nameauth@MainFormat
- \if@nameauth@FirstFormat
- \bgroup\NamesFormat{#1}\egroup%
- \else
- \bgroup\MainNameHook{#1}\egroup%
- \fi
+% \end{macrocode}
+% We use the formatting hooks for the front-matter system.
+% \begin{macrocode}
+ \if@nameauth@FirstFormat
+ \bgroup\FrontNamesFormat{#1}\egroup%
\else
- \if@nameauth@FirstFormat
- \bgroup\FrontNamesFormat{#1}\egroup%
- \else
- \bgroup\FrontNameHook{#1}\egroup%
- \fi
+ \bgroup\FrontNameHook{#1}\egroup%
\fi
\fi
% \end{macrocode}
-% We have to reset this flag here because both the naming and cross-referencing macros use the parser.
+% We tell the formatting hooks that they are not in the hook dispatcher.
% \begin{macrocode}
- \if@nameauth@OldReset
- \@nameauth@FirstFormatfalse%
- \else
- \global\@nameauth@FirstFormatfalse%
- \fi
\@nameauth@InHookfalse%
\fi
}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Indexing Internals}
+% \noindent{\normalsize\bfseries Indexing Internals: Entry Formatter}
% \begin{macro}{\@nameauth@Index}
% \changes{0.94}{2012/02/15}{Added}
% \changes{2.0}{2015/11/11}{New tagging}
-% \changes{3.3}{2020/02/20}{Tags support hyperref}
-% If the indexing flag is true, create an index entry, otherwise do nothing. Add tags automatically if they exist.
+% \changes{3.3}{2020/02/20}{Support hyperref}
+% \changes{3.5}{2020/11/23}{Fix namespace}
+% This is the core index mechanism. If the indexing flag is true, create an index entry, otherwise do nothing. Add any tags automatically if they exist.
% \begin{macrocode}
\newcommand*\@nameauth@Index[2]
{%
- \let\ex\expandafter%
\if@nameauth@DoIndex
+% \end{macrocode}
+% If an index tag exists for the entry, get it. Also create a short version of the tag without any vertical bar or trailing macro. If we are creating a cross-reference, use the short tag, otherwise use the long tag.
+% \begin{macrocode}
\ifcsname#1!TAG\endcsname
- \protected@edef\Tag{\csname#1!TAG\endcsname}%
- \ex\def\ex\ShortTag\ex{\ex\@nameauth@TrimTag\ex{\Tag}}%
+ \protected@edef\@nameauth@Tag{\csname#1!TAG\endcsname}%
+ \expandafter\def\expandafter\@nameauth@ShortTag\expandafter{%
+ \expandafter\@nameauth@TrimTag\expandafter{\@nameauth@Tag}}%
+% \end{macrocode}
+% Create entries with a sorting tag and an info tag.
+% \begin{macrocode}
\ifcsname#1!PRE\endcsname
- \protected@edef\Pre{\csname#1!PRE\endcsname}%
+ \protected@edef\@nameauth@Pre{\csname#1!PRE\endcsname}%
\if@nameauth@Xref
- \protected@edef\Entry{\Pre#2\ShortTag}%
+ \protected@edef\@nameauth@IdxEntry%
+ {\@nameauth@Pre#2\@nameauth@ShortTag}%
\else
- \protected@edef\Entry{\Pre#2\Tag}%
+ \protected@edef\@nameauth@IdxEntry%
+ {\@nameauth@Pre#2\@nameauth@Tag}%
\fi
\else
+% \end{macrocode}
+% Create entries with just an info tag.
+% \begin{macrocode}
\if@nameauth@Xref
- \protected@edef\Entry{#2\ShortTag}%
+ \protected@edef\@nameauth@IdxEntry%
+ {#2\@nameauth@ShortTag}%
\else
- \protected@edef\Entry{#2\Tag}%
+ \protected@edef\@nameauth@IdxEntry%
+ {#2\@nameauth@Tag}%
\fi
\fi
\else
+% \end{macrocode}
+% Create entries with just a sorting tag.
+% \begin{macrocode}
\ifcsname#1!PRE\endcsname
- \protected@edef\Pre{\csname#1!PRE\endcsname}%
- \protected@edef\Entry{\Pre#2}%
+ \protected@edef\@nameauth@Pre{\csname#1!PRE\endcsname}%
+ \protected@edef\@nameauth@IdxEntry{\@nameauth@Pre#2}%
\else
- \protected@edef\Entry{#2}%
+ \protected@edef\@nameauth@IdxEntry{#2}%
\fi
\fi
- \ex\index\ex{\Entry}%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@nameauth@Actual}
-% \changes{2.0}{2015/11/11}{Added}
-% This sets the ``actual'' character used by \textsf{nameauth} for index sorting.
-% \begin{macrocode}
-\newcommand*\@nameauth@Actual{@}
% \end{macrocode}
-% \end{macro}
-%
-% \noindent{\large\bfseries Debugging Help}
-% \begin{macro}{\@nameauth@Debug}
-% \changes{3.3}{2020/02/20}{added}
-% This Swiss-army knife for debugging shows name control sequence patterns, full index entries with tags, and short index entries with just the name. Other macros call it to get the desired info. We set up a local scope, redefine \cmd{\index} to print an argument in the text, force indexing to occur, and ignore whether we are working with xrefs.
-% \begin{macrocode}
-\newcommandx*\@nameauth@Debug[3][1=\@empty, 3=\@empty]
-{%
- \bgroup%
- \def\index##1{##1}%
- \@nameauth@DoIndextrue%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
- \@nameauth@Error{#2}{macro \string\@nameauth@Debug}%
-% \end{macrocode}
-% We interleave printing name patterns (\cmd{\ShowPattern}), printing full index entries as if they were page refs (\cmd{\ShowIdxPageref*}), and printing short index entries (\cmd{\ShowIdxPageref}). Since we are in a local scope we delete the tag and xref control sequences as needed. They will be restored when the scope ends. We do not care about xrefs because we just want to see what happens with the name. We can always go to the \texttt{idx} and \texttt{ind} files if needed.
+% Create entries with no tag.
% \begin{macrocode}
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifdefined\ShortIdxEntry
- \csundef{\csb!PRE}%
- \csundef{\csb!TAG}%
- \csundef{\csb!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \ifdefined\LongIdxEntry
- \csundef{\csb!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \csb%
- \fi
- \fi
- \else
- \ifx\suffb\@empty
- \ifdefined\ShortIdxEntry
- \csundef{\csbc!PRE}%
- \csundef{\csbc!TAG}%
- \csundef{\csbc!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \ifdefined\LongIdxEntry
- \csundef{\csbc!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \csbc%
- \fi
- \fi
- \else
- \ifdefined\ShortIdxEntry
- \csundef{\csb!PRE}%
- \csundef{\csb!TAG}%
- \csundef{\csb!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \ifdefined\LongIdxEntry
- \csundef{\csb!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \csb%
- \fi
- \fi
- \fi
- \fi
- \else
- \ifdefined\ShortIdxEntry
- \csundef{\csab!PRE}%
- \csundef{\csab!TAG}%
- \csundef{\csab!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \ifdefined\LongIdxEntry
- \csundef{\csab!PN}%
- \IndexName[#1]{#2}[#3]%
- \else
- \csab%
- \fi
- \fi
- \fi
- \global\undef{\LongIdxEntry}%
- \global\undef{\ShortIdxEntry}%
- \egroup%
+ \expandafter\NameauthIndex\expandafter{\@nameauth@IdxEntry}%
+ \fi
}
% \end{macrocode}
% \end{macro}
%
% \subsection[Prefix Macros]{User Interface Macros: Prefix Macros}
-% \noindent{\large\bfseries Syntactic Formatting\,---\,Capitalization}
+% \noindent{\normalsize\bfseries Syntactic Formatting\,---\,Capitalization}
% \begin{macro}{\CapThis}
% \changes{0.94}{2012/02/15}{Added}
% Tells the root capping macro to cap the first character of all name elements.
@@ -6081,8 +7296,11 @@ the README.txt or README for more information.
% \changes{2.1}{2015/11/24}{Added}
% Overrides the automatic test for active Unicode characters. This is a fall-back in case the automatic test for active Unicode characters fails.
% \begin{macrocode}
-\newcommand*\AccentCapThis%
- {\@nameauth@Accenttrue\@nameauth@DoCapstrue}
+\newcommand*\AccentCapThis
+{%
+ \@nameauth@Accenttrue%
+ \@nameauth@DoCapstrue%
+}
% \end{macrocode}
% \end{macro}
%
@@ -6110,7 +7328,7 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Syntactic Formatting\,---\,Reversing}
+% \noindent{\normalsize\bfseries Syntactic Formatting\,---\,Reversing}
% \begin{macro}{\RevName}
% \changes{1.5}{2013/02/22}{Added}
% Reverse name order.
@@ -6143,41 +7361,40 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Syntactic Formatting\,---\,Reversing with Commas}
+% \noindent{\normalsize\bfseries Syntactic Formatting\,---\,Reversing with Commas}
% \begin{macro}{\RevComma}
% \changes{1.5}{2013/02/22}{Added}
% Last name, comma, first name.
% \begin{macrocode}
-\newcommand*\RevComma%
- {\@nameauth@RevThisCommatrue}
+\newcommand*\RevComma{\@nameauth@RevThisCommatrue}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ReverseCommaInactive}
-% Turn off global ``last-name-comma-first.''
+% Turn off global ``last-name-comma-first''.
% \changes{1.5}{2013/02/22}{Added}
% \begin{macrocode}
-\newcommand*\ReverseCommaInactive%
- {\@nameauth@RevAllCommafalse}
+\newcommand*\ReverseCommaInactive{\@nameauth@RevAllCommafalse}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ReverseCommaActive}
-% Turn on global ``last-name-comma-first.'' Activates \cmd{\RevComma} for every name.
+% Turn on global ``last-name-comma-first''. Activates \cmd{\RevComma} for every name.
% \changes{1.5}{2013/02/22}{Added}
% \begin{macrocode}
-\newcommand*\ReverseCommaActive%
- {\@nameauth@RevAllCommatrue}
+\newcommand*\ReverseCommaActive{\@nameauth@RevAllCommatrue}
% \end{macrocode}
% \end{macro}
+% \newpage
%
-% \noindent{\large\bfseries Alternate Formatting}
+% \noindent{\normalsize\bfseries Alternate Formatting}
% \phantomsection\label{page:Hooks}
% \begin{macro}{\AltFormatActive}
% \changes{3.1}{2017/01/13}{Added}
% Turn on alternate formatting, engage the formatting macros.
% \begin{macrocode}
-\newcommand*\AltFormatActive{%
+\newcommand*\AltFormatActive
+{%
\global\@nameauth@AltFormattrue%
\global\@nameauth@DoAlttrue%
}
@@ -6188,7 +7405,8 @@ the README.txt or README for more information.
% \changes{3.1}{2017/01/13}{Added}
% Turn on alternate formatting, disengage the formatting macros.
% \begin{macrocode}
-\WithSuffix{\newcommand*}\AltFormatActive*{%
+\WithSuffix{\newcommand*}\AltFormatActive*
+{%
\global\@nameauth@AltFormattrue%
\global\@nameauth@DoAltfalse%
}
@@ -6199,7 +7417,8 @@ the README.txt or README for more information.
% Turn off alternate formatting altogether.
% \changes{3.1}{2017/01/13}{Added}
% \begin{macrocode}
-\newcommand*\AltFormatInactive{%
+\newcommand*\AltFormatInactive
+{%
\global\@nameauth@AltFormatfalse%
\global\@nameauth@DoAltfalse%
}
@@ -6210,9 +7429,12 @@ the README.txt or README for more information.
% Locally turn on alternate formatting.
% \changes{3.1}{2017/01/13}{Added}
% \begin{macrocode}
-\newcommand*\AltOn{%
+\newcommand*\AltOn
+{%
\if@nameauth@InHook
- \if@nameauth@AltFormat\@nameauth@DoAlttrue\fi
+ \if@nameauth@AltFormat
+ \@nameauth@DoAlttrue%
+ \fi
\fi
}
% \end{macrocode}
@@ -6222,9 +7444,12 @@ the README.txt or README for more information.
% Locally turn off alternate formatting.
% \changes{3.1}{2017/01/13}{Added}
% \begin{macrocode}
-\newcommand*\AltOff{%
+\newcommand*\AltOff
+{%
\if@nameauth@InHook
- \if@nameauth@AltFormat\@nameauth@DoAltfalse\fi
+ \if@nameauth@AltFormat
+ \@nameauth@DoAltfalse%
+ \fi
\fi
}
% \end{macrocode}
@@ -6235,10 +7460,16 @@ the README.txt or README for more information.
% \changes{3.2}{2017/03/22}{Use \cmd{\MakeUppercase}}
% Alternate discretionary capping macro triggered by \cmd{\CapThis}.
% \begin{macrocode}
-\newcommand*\AltCaps[1]{%
+\newcommand*\AltCaps[1]
+{%
\if@nameauth@InHook
- \if@nameauth@DoCaps\MakeUppercase{#1}\else#1\fi
- \else#1%
+ \if@nameauth@DoCaps
+ \MakeUppercase{#1}%
+ \else
+ #1%
+ \fi
+ \else
+ #1%
\fi
}
% \end{macrocode}
@@ -6248,40 +7479,64 @@ the README.txt or README for more information.
% \changes{3.1}{2017/01/13}{Added}
% Alternate formatting macro: small caps when active.
% \begin{macrocode}
-\newcommand*\textSC[1]{%
- \if@nameauth@DoAlt\textsc{#1}\else#1\fi}
+\newcommand*\textSC[1]
+{%
+ \if@nameauth@DoAlt
+ \textsc{#1}%
+ \else
+ #1%
+ \fi
+}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\textUC}
% \changes{3.1}{2017/01/13}{Added}
% \changes{3.2}{2017/03/22}{Use \cmd{\MakeUppercase}}
% Alternate formatting macro: uppercase when active.
% \begin{macrocode}
-\newcommand*\textUC[1]{%
- \if@nameauth@DoAlt\MakeUppercase{#1}\else#1\fi}
+\newcommand*\textUC[1]
+{%
+ \if@nameauth@DoAlt
+ \MakeUppercase{#1}%
+ \else
+ #1%
+ \fi
+}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\textIT}
% \changes{3.1}{2017/01/13}{Added}
% Alternate formatting macro: italic when active.
% \begin{macrocode}
-\newcommand*\textIT[1]{%
- \if@nameauth@DoAlt\textit{#1}\else#1\fi}
+\newcommand*\textIT[1]
+{%
+ \if@nameauth@DoAlt
+ \textit{#1}%
+ \else
+ #1%
+ \fi
+}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\textBF}
% \changes{3.1}{2017/01/13}{Added}
% Alternate formatting macro: boldface when active.
% \begin{macrocode}
-\newcommand*\textBF[1]{%
- \if@nameauth@DoAlt\textbf{#1}\else#1\fi}
+\newcommand*\textBF[1]
+{%
+ \if@nameauth@DoAlt
+ \textbf{#1}%
+ \else
+ #1%
+ \fi
+}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Syntactic Formatting\,---\,Affixes}
+% \noindent{\normalsize\bfseries Syntactic Formatting\,---\,Affixes}
% \begin{macro}{\ShowComma}
% \changes{1.4}{2012/07/24}{Added}
% Put comma between name and suffix one time.
@@ -6318,11 +7573,15 @@ the README.txt or README for more information.
% \changes{3.1}{2017/01/13}{Added}
% Use non-breaking spaces between name syntactic forms.
% \begin{macrocode}
-\newcommand*\KeepName{\@nameauth@NBSPtrue\@nameauth@NBSPXtrue}
+\newcommand*\KeepName
+{%
+ \@nameauth@NBSPtrue%
+ \@nameauth@NBSPXtrue%
+}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Post-Processing\,---\,Main Versus Front Matter}
+% \noindent{\normalsize\bfseries Post-Processing\,---\,Main Versus Front Matter}
% \begin{macro}{\NamesInactive}
% Switch to the ``non-formatted'' species of names.
% \begin{macrocode}
@@ -6337,7 +7596,7 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Name Decisions\,---\,First\,/\,Subsequent Reference}
+% \noindent{\normalsize\bfseries Name Decisions\,---\,First/Subsequent Reference}
% \begin{macro}{\ForgetThis}
% \changes{3.1}{2017/01/13}{Added}
% Have the naming engine \cmd{\@nameauth@Name} call \cmd{\ForgetName} internally.
@@ -6362,7 +7621,23 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Name Occurrence Tweaks}
+% \begin{macro}{\LocalNameTest}
+% \changes{3.5}{2020/11/23}{Added}
+% Causes decision paths in the name decision macros to be in a local scope.
+% \begin{macrocode}
+\newcommand*\LocalNameTest{\global\@nameauth@GlobalScopefalse}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GlobalNameTest}
+% \changes{3.5}{2020/11/23}{Added}
+% Causes decision paths in the name decision macros to have no scoping.
+% \begin{macrocode}
+\newcommand*\GlobalNameTest{\global\@nameauth@GlobalScopetrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent{\normalsize\bfseries Name Occurrence Tweaks}
% \begin{macro}{\LocalNames}
% \changes{2.3}{2016/01/05}{Added}
% \changes{2.4}{2016/03/15}{Ensure global}
@@ -6381,7 +7656,16 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Index Operations}
+% \noindent{\normalsize\bfseries Index Operations}
+% \begin{macro}{\IndexActual}
+% \changes{2.0}{2015/11/11}{Added}
+% \changes{3.5}{2020/11/23}{Use \cmd{\def}}
+% Change the ``actual'' character from the default. This allows one to use, for example, |\global\IndexActual{=}|.
+% \begin{macrocode}
+\newcommand*\IndexActual[1]{\def\@nameauth@Actual{#1}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\IndexInactive}
% \changes{0.94}{2012/02/15}{Added}
% Turn off global indexing of names.
@@ -6390,6 +7674,14 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\IndexActive}
+% \changes{0.94}{2012/02/15}{Added}
+% Turn on global indexing of names.
+% \begin{macrocode}
+\newcommand*\IndexActive{\@nameauth@DoIndextrue}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\SkipIndex}
% \changes{3.1}{2017/01/13}{Added}
% Turn off the next instance of indexing in \cmd{\Name}, \cmd{\FName}, and starred forms.
@@ -6406,23 +7698,6 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\IndexActive}
-% \changes{0.94}{2012/02/15}{Added}
-% Turn on global indexing of names.
-% \begin{macrocode}
-\newcommand*\IndexActive{\@nameauth@DoIndextrue}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\IndexActual}
-% \changes{2.0}{2015/11/11}{Added}
-% Change the ``actual'' character from the default.
-% \begin{macrocode}
-\newcommand*\IndexActual[1]
- {\global\renewcommand*\@nameauth@Actual{#1}}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\SeeAlso}
% \changes{3.0}{2016/10/26}{Added}
% Change the type of cross-reference from a \textit{see} reference to a \textit{see also} reference. Works once per xref, unless one uses \cmd{\Include*}, in which case, take care!
@@ -6435,7 +7710,7 @@ the README.txt or README for more information.
% \label{sec:UserInterface}
%
% \begin{macro}{\ShowPattern}
-% \changes{3.3}{2020/02/20}{added}
+% \changes{3.3}{2020/02/20}{Added}
% This displays the pattern that the name arguments generate; maybe useful for debugging.
% \begin{macrocode}
\newcommand*\ShowPattern{\@nameauth@Debug}
@@ -6443,75 +7718,58 @@ the README.txt or README for more information.
% \end{macro}
%
% \begin{macro}{\ShowIdxPageref}
-% \changes{3.3}{2020/02/20}{added}
-% This displays the index entry that will be generated. This may be useful for debugging.
+% \changes{3.3}{2020/02/20}{Added}
+% \changes{3.5}{2020/11/23}{Fix namespace, use Boolean flags}
+% This displays (expanded, as printed) the index entry that will be generated, but not exactly what is in the \texttt{idx} file. This may be useful for debugging.
% \begin{macrocode}
-\newcommand*\ShowIdxPageref%
- {\def\LongIdxEntry{}\ShowPattern}
+\newcommand*\ShowIdxPageref
+{%
+ \global\@nameauth@IdxDebugtrue%
+ \global\@nameauth@LongIdxDebugtrue%
+ \@nameauth@Debug%
+}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ShowIdxPageref*}
-% \changes{3.3}{2020/02/20}{added}
-% This displays an index entry with no tag. This may be useful for debugging.
+% \changes{3.3}{2020/02/20}{Added}
+% \changes{3.5}{2020/11/23}{Fix namespace, use Boolean flags}
+% This displays a basic index entry with no tag. This may be useful for debugging.
% \begin{macrocode}
-\WithSuffix{\newcommand*}\ShowIdxPageref*%
- {\def\ShortIdxEntry{}\ShowPattern}
+\WithSuffix{\newcommand*}\ShowIdxPageref*
+{%
+ \global\@nameauth@IdxDebugtrue%
+ \@nameauth@Debug%
+}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\NameParser}
% \changes{3.0}{2016/10/26}{Added}
-% \changes{3.03}{2016/11/01}{First name only for short forms}
+% \changes{3.03}{2016/11/01}{Restrict first names}
% \changes{3.1}{2017/01/13}{Fix old syntax; add NBSP}
% \changes{3.2}{2017/03/22}{Fix alt. format, affixes}
-% Generate a name form based on the current state of the \textsf{nameauth} macros in the locked path. Available for use only in the hook macros.
+% \changes{3.5}{2020/11/23}{Optimize logic}
+% Generate a name form based on the current state of the \textsf{nameauth} macros in the locked path. Available for use only in the hook macros. We only use this macro in the local scope of the parser.
% \begin{macrocode}
\newcommand*\NameParser
{%
\if@nameauth@InHook
\let\SNN\rootb%
- \ifx\arga\@empty
+ \@nameauth@Choice%
% \end{macrocode}
-% If the first optarg is empty, it is a non-Western name. The forename will be either the suffix or the final optarg.
+% Non-Western names.
+% We test both \cmd{\argc} and \cmd{\suffb} as needed.
% \begin{macrocode}
+ {%
\ifx\argc\@empty
\let\FNN\suffb%
\else
\let\FNN\argc%
\fi
- \ifx\suffb\@empty
-% \end{macrocode}
-% Mononym case
-% \begin{macrocode}
- \ifx\FNN\@empty
- \SNN%
- \else
-% \end{macrocode}
-% Eastern or ancient name, using the older syntax, with name reversing and forcing
-% \begin{macrocode}
- \if@nameauth@FullName%
- \if@nameauth@RevThis
- \FNN\Space\SNN%
- \else
- \SNN\Space\FNN%
- \fi
- \else
- \if@nameauth@FirstName
- \if@nameauth@EastFN
- \FNN%
- \else
- \SNN%
- \fi
- \else
- \SNN%
- \fi
- \fi
- \fi
+ \ifx\FNN\@empty
+ \SNN%
\else
-% \end{macrocode}
-% Eastern or ancient name, using the new syntax, with name reversing and forcing
-% \begin{macrocode}
\if@nameauth@FullName
\if@nameauth@RevThis
\FNN\Space\SNN%
@@ -6530,10 +7788,36 @@ the README.txt or README for more information.
\fi
\fi
\fi
- \else
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax.
+% Using \cmd{\argc} in this path affects indexing.
+% \begin{macrocode}
+ {%
+ \let\FNN\argc%
+ \if@nameauth@FullName%
+ \if@nameauth@RevThis
+ \FNN\Space\SNN%
+ \else
+ \SNN\Space\FNN%
+ \fi
+ \else
+ \if@nameauth@FirstName
+ \if@nameauth@EastFN
+ \FNN%
+ \else
+ \SNN%
+ \fi
+ \else
+ \SNN%
+ \fi
+ \fi
+ }%
% \end{macrocode}
-% Western name with name reversing and suffixes
+% Western names.
+% We test for \cmd{\argc} and swap it for \cmd{\arga}, and account for \cmd{\suffb}.
% \begin{macrocode}
+ {%
\ifx\argc\@empty
\let\FNN\arga%
\else
@@ -6541,7 +7825,9 @@ the README.txt or README for more information.
\fi
\unless\ifx\suffb\@empty
\def\SNN{\rootb\Space\suffb}%
- \if@nameauth@ShortSNN\let\SNN\rootb\fi%
+ \if@nameauth@ShortSNN
+ \let\SNN\rootb%
+ \fi%
\fi
\if@nameauth@FullName
\if@nameauth@RevThis
@@ -6561,15 +7847,14 @@ the README.txt or README for more information.
\SNN%
\fi
\fi
- \fi
+ }%
\fi
}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Traditional Naming Interface}
+% \noindent{\normalsize\bfseries Traditional Naming Interface}
% \begin{macro}{\Name}
-% \changes{2.3}{2016/01/05}{Interface macro}
% \cmd{\Name} calls \cmd{\NameauthName}, the interface hook.
% \begin{macrocode}
\newcommand\Name{\NameauthName}
@@ -6577,36 +7862,39 @@ the README.txt or README for more information.
% \end{macro}
%
% \begin{macro}{\Name*}
-% \changes{2.3}{2016/01/05}{Interface macro}
% \cmd{\Name*} sets up a long name reference and calls \cmd{\NameauthLName}, the interface hook.
% \begin{macrocode}
-\WithSuffix{\newcommand*}\Name*%
- {\@nameauth@FullNametrue\NameauthLName}
+\WithSuffix{\newcommand*}\Name*
+{%
+ \@nameauth@FullNametrue%
+ \NameauthLName%
+}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\FName}
% \changes{0.9}{2012/02/10}{Added}
-% \changes{2.3}{2016/01/05}{Interface macro}
% \cmd{\FName} sets up a short name reference and calls \cmd{\NameauthFName}, the interface hook.
% \begin{macrocode}
-\newcommand\FName{\@nameauth@FirstNametrue\NameauthFName}
+\newcommand\FName
+{%
+ \@nameauth@FirstNametrue%
+ \NameauthFName%
+}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\FName*}
-% \changes{2.3}{2016/01/05}{Interface macro}
% \cmd{\FName} and \cmd{\FName*} are identical in function.
% \begin{macrocode}
-\WithSuffix{\newcommand*}\FName*%
- {\@nameauth@FirstNametrue\NameauthFName}
+\WithSuffix{\newcommand*}\FName*{\FName}
% \end{macrocode}
% \end{macro}
-%
-% \noindent{\large\bfseries Index Operations}
+%
+% \noindent{\normalsize\bfseries Index Operations}
% \begin{macro}{\IndexProtect}
-% \changes{3.3}{2020/02/20}{added}
-% We shut down all output from the naming and indexing macros to protect against problems in the index in case a macro in an index entry should expand into one of the naming macros.
+% \changes{3.3}{2020/02/20}{Added}
+% We shut down all output from the naming and indexing macros to protect against problems in the index in case a macro in the index contains one of the naming macros.
% \begin{macrocode}
\newcommand*\IndexProtect
{%
@@ -6617,94 +7905,124 @@ the README.txt or README for more information.
% \end{macro}
%
% \begin{macro}{\IndexName}
-% \changes{0.75}{2012/01/19}{Current args}
-% \changes{0.85}{2012/02/05}{Hide commas}
% \changes{1.26}{2012/04/24}{Fix affixes}
% \changes{2.0}{2015/11/11}{Fix spaces, tagging}
% \changes{2.6}{2016/09/19}{Fix commas}
% \changes{3.0}{2016/10/26}{Redesigned}
% \changes{3.1}{2017/01/13}{Better tests}
-% This creates an index entry with page references. It issues warnings if the \texttt{verbose} option is selected. It prints nothing. First we make copies of the arguments.
+% \changes{3.5}{2020/11/23}{New warnings, new exclusion test, optimize logic, fix namespace}
+% This creates an index entry with page references. It warns if the \cmd{\SkipIndex} prefix macro was used before it was called. It issues additional warnings if the \texttt{verbose} option is selected. It prints nothing. First we make copies of the arguments.
% \begin{macrocode}
\newcommandx*\IndexName[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\rootb{\@nameauth@Root{#2}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
% \end{macrocode}
-% Test for malformed input.
+% Process and load the arguments into the appropriate macros.
+% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
+ \def\@nameauth@space{ }%
+% \end{macrocode}
+% Test for malformed input.
% \begin{macrocode}
\@nameauth@Error{#2}{macro \string\IndexName}%
% \end{macrocode}
-% We create the appropriate index entries, calling \cmd{\@nameauth@Index} to handle sorting and tagging. We do not create an index entry for a cross-reference (code !PN for pseudonym), used by \cmd{\IndexRef}, \cmd{\Excludename}, \cmd{\Includename}, \cmd{\AKA}, and \cmd{\PName}. If the first optarg is empty, it is a non-Western name.
+% Warn if \cmd{\SkipIndex} was called before \cmd{\IndexName}, and reset it unless the \texttt{oldreset} option was used.
% \begin{macrocode}
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
+ \if@nameauth@SkipIndex
+ \PackageWarning{nameauth}%
+ {\SkipIndex precedes \IndexName; check for problems}%
+ \unless\if@nameauth@OldReset
+ \@nameauth@SkipIndexfalse%
+ \fi
+ \fi
+% \end{macrocode}
+% Warn if \cmd{\SeeAlso} was called before \cmd{\IndexName} and reset it.
+% \begin{macrocode}
+ \unless\if@nameauth@OldReset
+ \if@nameauth@SeeAlso
+ \global\@nameauth@SeeAlsofalse%
+ \PackageWarning{nameauth}%
+ {\SeeAlso precedes \IndexName or a naming macro and was reset}%
+ \fi
+ \fi
+% \end{macrocode}
+% We create the appropriate index entries, calling \cmd{\@nameauth@Index} to handle sorting and tagging. We do not create an index entry for a cross-reference or exclusion.
+% \begin{macrocode}
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names.
+% We ignore \cmd{\@nameauth@C} and handle \cmd{\@nameauth@SB} appropriately.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csb!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csb!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \IndexName: Exclusion: #2 exists}%
+ \else
\PackageWarning{nameauth}%
{macro \IndexName: XRef: #2 exists}%
\fi
+ \fi
+ \else
+ \ifx\@nameauth@SB\@empty
+ \@nameauth@Index{\@nameauth@csb}{\@nameauth@B}%
\else
- \ifx\suffb\@empty
+ \@nameauth@Index{\@nameauth@csb}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@SB}%
+ \fi
+ \fi
+ }%
% \end{macrocode}
-% mononym or Eastern\,/\,ancient name, new syntax
+% Non-Western names, obsolete syntax.
+% Using \cmd{\@nameauth@C} in this path affects indexing.
% \begin{macrocode}
- \@nameauth@Index{\csb}{\rootb}%
+ {%
+ \ifcsname\@nameauth@csbc!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csbc!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \IndexName: Exclusion: #2 #3 exists}%
\else
- \@nameauth@Index{\csb}{\rootb\space\suffb}%
+ \PackageWarning{nameauth}%
+ {macro \IndexName: XRef: #2 #3 exists}%
\fi
\fi
\else
- \ifx\suffb\@empty
- \ifcsname\csbc!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IndexName: XRef: #2 #3 exists}%
- \fi
- \else
+ \@nameauth@Index{\@nameauth@csbc}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@C}%
+ \fi
+ }%
% \end{macrocode}
-% Eastern or ancient name, older syntax
+% Western names.
+% We ignore \cmd{\@nameauth@C} and handle \cmd{\@nameauth@SB} appropriately.
% \begin{macrocode}
- \@nameauth@Index{\csbc}{\rootb\space\argc}%
- \fi
- \else
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IndexName: XRef: #2 exists}%
- \fi
+ {%
+ \ifcsname\@nameauth@csab!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csab!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \IndexName: Exclusion: #1 #2 exists}%
\else
-% \end{macrocode}
-% Eastern or ancient name, new syntax, alternate name ignored
-% \begin{macrocode}
- \@nameauth@Index{\csb}{\rootb\space\suffb}%
+ \PackageWarning{nameauth}%
+ {macro \IndexName: XRef: #1 #2 exists}%
\fi
\fi
- \fi
- \else
- \ifcsname\csab!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IndexName: XRef: #1 #2 exists}%
- \fi
\else
-% \end{macrocode}
-% Western name, without and with affix
-% \begin{macrocode}
- \ifx\suffb\@empty
- \@nameauth@Index{\csab}%
- {\rootb,\space\arga}%
+ \ifx\@nameauth@SB\@empty
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space\@nameauth@A}%
\else
- \@nameauth@Index{\csab}%
- {\rootb,\space\arga,\space\suffb}%
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space%
+ \@nameauth@A,\@nameauth@space\@nameauth@SB}%
\fi
\fi
- \fi
+ }%
}
% \end{macrocode}
% \end{macro}
@@ -6712,131 +8030,276 @@ the README.txt or README for more information.
% \begin{macro}{\IndexRef}
% \changes{3.0}{2016/10/26}{Added}
% \changes{3.1}{2017/01/13}{Better tests}
-% \changes{3.3}{2020/02/20}{global flag reset}
-% This creates an index cross-reference that is not already a pseudonym. It prints nothing. First we make copies of the arguments to test them and make parsing decisions.
+% \changes{3.3}{2020/02/20}{Global flag reset}
+% \changes{3.5}{2020/11/23}{Strict \textit{see} refs, new warnings, new exclusion test, optimize logic, fix namespace}
+% Create a cross-reference that is not already an exclusion or a cross-reference. Print nothing.
% \begin{macrocode}
\newcommandx*\IndexRef[4][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\rootb{\@nameauth@Root{#2}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\target{#4}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
- \let\ex\expandafter%
+% \end{macrocode}
+% Process and load the arguments into the appropriate macros.
+% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
+ \protected@edef\@nameauth@Target{#4}%
+ \def\@nameauth@space{ }%
% \end{macrocode}
% Test for malformed input.
% \begin{macrocode}
\@nameauth@Error{#2}{macro \string\IndexRef}%
\@nameauth@Xreftrue%
% \end{macrocode}
-% We create either \textit{see also} entries or \textit{see} entries. The former are unrestricted. The latter are only created if they do not already exist as main entries.
+% Warn if \cmd{\SkipIndex} was called before \cmd{\IndexName}, and reset it unless the \texttt{oldreset} option was used.
% \begin{macrocode}
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
+ \if@nameauth@SkipIndex
+ \PackageWarning{nameauth}%
+ {\SkipIndex preceded \IndexRef; check for problems}%
+ \unless\if@nameauth@OldReset
+ \@nameauth@SkipIndexfalse%
+ \fi
+ \fi
+% \end{macrocode}
+% We create either \textit{see also} entries or \textit{see} entries. The former are unrestricted with respect to names, not to extant cross-references. The latter are only created if they do not already exist as either page entries or cross-references.
+% \begin{macrocode}
+ \@nameauth@Choice%
+% \end{macrocode}
+% Mononym or Eastern/ancient name, new syntax. First check if an xref or excluded, and if so, do nothing except issue warnings if so desired.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csb!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csb!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Exclusion: #2 exists}%
+ \else
\PackageWarning{nameauth}%
{macro \IndexRef: XRef: #2 exists}%
\fi
- \else
- \ifx\suffb\@empty
+ \fi
% \end{macrocode}
-% mononym or Eastern\,/\,ancient name, new syntax
+% If no xref or exclusion control sequence exists, either create a \textit{see also} or a \textit{see} reference. If the latter, forbid a \textit{see} reference to an extant name unless the \texttt{oldsee} option is used; then allow, but issue a warning.
% \begin{macrocode}
- \if@nameauth@SeeAlso
- \@nameauth@Index{\csb}{\rootb|seealso{\target}}%
+ \else
+ \ifx\@nameauth@SB\@empty
+ \if@nameauth@SeeAlso
+ \@nameauth@Index{\@nameauth@csb}%
+ {\@nameauth@B|seealso{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csb!PN}{}%
+ \else
+ \unless\if@nameauth@OldSee
+ \unless\ifcsname\@nameauth@csb!MN\endcsname
+ \unless\ifcsname\@nameauth@csb!NF\endcsname
+ \@nameauth@Index{\@nameauth@csb}%
+ {\@nameauth@B|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csb!PN}{}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #2 stops see ref.}%
+ \fi
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #2 stops see ref.}%
+ \fi
\else
- \@nameauth@Index{\csb}{\rootb|see{\target}}%
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Non-strict XRef #2 created}%
+ \fi
+ \@nameauth@Index{\@nameauth@csb}%
+ {\@nameauth@B|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csb!PN}{}%
\fi
+ \fi
+% \end{macrocode}
+% \newpage\noindent
+% When the suffix is non-empty, either create a \textit{see also} or a \textit{see} reference. If the latter, forbid a \textit{see} reference to an extant name unless the \texttt{oldsee} option is used; then allow and warn.
+% \begin{macrocode}
+ \else
+ \if@nameauth@SeeAlso
+ \@nameauth@Index{\@nameauth@csb}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@SB|seealso{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csb!PN}{}%
\else
- \if@nameauth@SeeAlso
- \@nameauth@Index{\csb}%
- {\rootb\space\suffb|seealso{\target}}%
+ \unless\if@nameauth@OldSee
+ \unless\ifcsname\@nameauth@csb!MN\endcsname
+ \unless\ifcsname\@nameauth@csb!NF\endcsname
+ \@nameauth@Index{\@nameauth@csb}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@SB|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csb!PN}{}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #2 stops see ref.}%
+ \fi
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #2 stops see ref.}%
+ \fi
\else
- \@nameauth@Index{\csb}%
- {\rootb\space\suffb|see{\target}}%
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Non-strict XRef #2 created}%
+ \fi
+ \@nameauth@Index{\@nameauth@csb}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@SB|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csb!PN}{}%
\fi
\fi
- \csgdef{\csb!PN}{}%
\fi
- \else
- \ifx\suffb\@empty
- \ifcsname\csbc!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IndexRef: XRef: #2 #3 exists}%
- \fi
- \else
+ \fi
+ }%
% \end{macrocode}
-% Eastern or ancient name, older syntax
+% Eastern or ancient name, obsolete syntax. First check if an xref or excluded.
% \begin{macrocode}
- \if@nameauth@SeeAlso
- \@nameauth@Index{\csbc}%
- {\rootb\space\argc|seealso{\target}}%
- \else
- \@nameauth@Index{\csbc}%
- {\rootb\space\argc|see{\target}}%
- \fi
- \csgdef{\csbc!PN}{}%
+ {%
+ \ifcsname\@nameauth@csbc!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csbc!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Exclusion: #2 #3 exists}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: XRef: #2 #3 exists}%
\fi
+ \fi
+% \end{macrocode}
+% \newpage\noindent
+% If no xref control sequence exists, either create a \textit{see also} or a \textit{see} reference. If the latter, forbid a \textit{see} reference to an extant name unless the \texttt{oldsee} option is used; then allow, but issue a warning.
+% \begin{macrocode}
+ \else
+ \if@nameauth@SeeAlso
+ \@nameauth@Index{\@nameauth@csbc}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@C|seealso{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csbc!PN}{}%
\else
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
+ \unless\if@nameauth@OldSee
+ \unless\ifcsname\@nameauth@csbc!MN\endcsname
+ \unless\ifcsname\@nameauth@csbc!NF\endcsname
+ \@nameauth@Index{\@nameauth@csbc}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@C|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csbc!PN}{}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #2 #3 stops see ref.}%
+ \fi
+ \else
\PackageWarning{nameauth}%
- {macro \IndexRef: XRef: #2 exists}%
+ {macro \IndexRef: Extant name #2 #3 stops see ref.}%
\fi
\else
-% \end{macrocode}
-% Eastern or ancient name, new syntax, alternate name ignored
-% \begin{macrocode}
- \if@nameauth@SeeAlso
- \@nameauth@Index{\csb}%
- {\rootb\space\suffb|seealso{\target}}%
- \else
- \@nameauth@Index{\csb}%
- {\rootb\space\suffb|see{\target}}%
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Non-strict XRef #2 #3 created}%
\fi
- \csgdef{\csb!PN}{}%
+ \@nameauth@Index{\@nameauth@csbc}%
+ {\@nameauth@B\@nameauth@space%
+ \@nameauth@C|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csbc!PN}{}%
\fi
\fi
\fi
- \else
- \ifcsname\csab!PN\endcsname
+ }%
+% \end{macrocode}
+% Western name, without and with affix. First check if an xref or excluded.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csab!PN\endcsname
\if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IndexRef: XRef: #1 #2 exists}%
+ \edef\@nameauth@testex{\csname\@nameauth@csab!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Exclusion: #1 #2 exists}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: XRef: #1 #2 exists}%
+ \fi
\fi
- \else
% \end{macrocode}
-% Western name, without and with affix
+% \newpage\noindent
+% If no xref control sequence exists, either create a \textit{see also} or a \textit{see} reference. If the latter, forbid a \textit{see} reference to an extant name unless the \texttt{oldsee} option is used; then allow, but issue a warning.
% \begin{macrocode}
- \ifx\suffb\@empty
+ \else
+ \ifx\@nameauth@SB\@empty
\if@nameauth@SeeAlso
- \@nameauth@Index{\csab}%
- {\rootb,\space\arga|seealso{\target}}%
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space%
+ \@nameauth@A|seealso{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csab!PN}{}%
\else
- \@nameauth@Index{\csab}%
- {\rootb,\space\arga|see{\target}}%
+ \unless\if@nameauth@OldSee
+ \unless\ifcsname\@nameauth@csab!MN\endcsname
+ \unless\ifcsname\@nameauth@csab!NF\endcsname
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space%
+ \@nameauth@A|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csab!PN}{}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #1 #2 stops see ref.}%
+ \fi
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #1 #2 stops see ref.}%
+ \fi
+ \else
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Non-strict XRef #1 #2 created}%
+ \fi
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space%
+ \@nameauth@A|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csab!PN}{}%
+ \fi
\fi
+% \end{macrocode}
+% When the suffix is non-empty, either create a \textit{see also} or a \textit{see} reference. If the latter, forbid a \textit{see} reference to an extant name unless the \texttt{oldsee} option is used; then allow and warn.
+% \begin{macrocode}
\else
\if@nameauth@SeeAlso
- \@nameauth@Index{\csab}%
- {\rootb,\space\arga,\space\suffb|seealso{\target}}%
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space%
+ \@nameauth@A,\@nameauth@space%
+ \@nameauth@SB|seealso{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csab!PN}{}%
\else
- \@nameauth@Index{\csab}%
- {\rootb,\space\arga,\space\suffb|see{\target}}%
+ \unless\if@nameauth@OldSee
+ \unless\ifcsname\@nameauth@csab!MN\endcsname
+ \unless\ifcsname\@nameauth@csab!NF\endcsname
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space%
+ \@nameauth@A,\@nameauth@space%
+ \@nameauth@SB|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csab!PN}{}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #1 #2 stops see ref.}%
+ \fi
+ \else
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Extant name #1 #2 stops see ref.}%
+ \fi
+ \else
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}%
+ {macro \IndexRef: Non-strict XRef #1 #2 created}%
+ \fi
+ \@nameauth@Index{\@nameauth@csab}%
+ {\@nameauth@B,\@nameauth@space%
+ \@nameauth@A,\@nameauth@space%
+ \@nameauth@SB|see{\@nameauth@Target}}%
+ \csgdef{\@nameauth@csab!PN}{}%
+ \fi
\fi
\fi
- \csgdef{\csab!PN}{}%
\fi
- \fi
+ }%
\@nameauth@Xreffalse%
-% \end{macrocode}
-% This may not be necessary, but we do it for consistency.
-% \begin{macrocode}
\if@nameauth@OldReset
\@nameauth@SeeAlsofalse%
\else
@@ -6850,103 +8313,117 @@ the README.txt or README for more information.
% \changes{0.94}{2012/02/15}{Added}
% \changes{2.3}{2016/01/05}{New xref test}
% \changes{3.0}{2016/10/26}{Redesigned}
-% \changes{3.3}{2020/02/20}{More accurate warnings}
-% This macro prevents a name from being indexed.
+% \changes{3.3}{2020/02/20}{Better warnings}
+% \changes{3.5}{2020/11/23}{New warnings, new exclusion test, fix bug in old syntax, new logic, fix namespace}
+% Prevent a name from being indexed. Now, the set of macro expansions that comprise an exclusion contains one member: the value of \cmd{\@nameauth@Exclude}. Formerly, an exclusion was the set of all non-empty strings, preventing any other features from being added.
% \begin{macrocode}
\newcommandx*\ExcludeName[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
% \end{macrocode}
-% Below we parse the name arguments and create a non-empty pseudonym macro.
+% Process and load the arguments into the appropriate macros.
% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\ExcludeName}%
- \ifx\arga\@empty
- \ifx\argc\@empty
+% \end{macrocode}
+% Below we parse the name arguments and create an excluded form of cross-reference, unless one already exists.
+% \begin{macrocode}
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names. Verbose warnings let one know that an extant name is being excluded, but the operation is still allowed.
+% \begin{macrocode}
+ {%
+ \if@nameauth@Verbose
+ \ifcsname\@nameauth@csb!MN\endcsname
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: Name: #2 exists}%
+ \fi
+ \ifcsname\@nameauth@csb!NF\endcsname
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: Name: #2 exists}%
+ \fi
+ \fi
+% \end{macrocode}
+% One cannot exclude an extant cross-reference or exclusion. Verbose warnings only.
+% \begin{macrocode}
+ \ifcsname\@nameauth@csb!PN\endcsname
\if@nameauth@Verbose
- \ifcsname\csb!MN\endcsname
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #2 exists}%
- \fi
- \ifcsname\csb!NF\endcsname
+ \edef\@nameauth@testex{\csname\@nameauth@csb!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
\PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #2 exists}%
- \fi
- \fi
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
+ {macro \ExcludeName: Exclusion: #2 exists}%
+ \else
\PackageWarning{nameauth}%
- {macro \ExcludeName: Xref: #2 exists}%
+ {macro \ExcludeName: XRef: #2 exists}%
\fi
- \else
- \csgdef{\csb!PN}{!}%
\fi
\else
- \ifx\suffb\@empty
- \if@nameauth@Verbose
- \ifcsname\csbc!MN\endcsname
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #2 #3 exists}%
- \fi
- \ifcsname\csbc!NF\endcsname
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #2 #3 exists}%
- \fi
- \fi
- \csgdef{\csbc!PN}{!}%
- \ifcsname\csbc!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Xref: #2 #3 exists}%
- \fi
- \else
- \csgdef{\csbc!PN}{!}%
- \fi
- \else
- \if@nameauth@Verbose
- \ifcsname\csb!MN\endcsname
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #2 exists}%
- \fi
- \ifcsname\csb!NF\endcsname
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #2 exists}%
- \fi
- \fi
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Xref: #2 exists}%
- \fi
+ \csxdef{\@nameauth@csb!PN}{\@nameauth@Exclude}%
+ \fi
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax. Verbose warnings let one know that an extant name is being excluded, but the operation is still allowed.
+% \begin{macrocode}
+ {%
+ \if@nameauth@Verbose
+ \ifcsname\@nameauth@csbc!MN\endcsname
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: Name: #2 #3 exists}%
+ \fi
+ \ifcsname\@nameauth@csbc!NF\endcsname
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: Name: #2 #3 exists}%
+ \fi
+ \fi
+% \end{macrocode}
+% One cannot exclude an extant cross-reference or exclusion. Verbose warnings only.
+% \begin{macrocode}
+ \ifcsname\@nameauth@csbc!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csbc!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: Exclusion: #2 #3 exists}%
\else
- \csgdef{\csb!PN}{!}%
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: XRef: #2 #3 exists}%
\fi
\fi
+ \else
+ \csxdef{\@nameauth@csbc!PN}{\@nameauth@Exclude}%
\fi
- \else
+ }%
+% \end{macrocode}
+% Western names. Verbose warnings let one know that an extant name is being excluded, but the operation is still allowed.
+% \begin{macrocode}
+ {%
\if@nameauth@Verbose
- \ifcsname\csab!MN\endcsname
+ \ifcsname\@nameauth@csab!MN\endcsname
\PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #1 #2 exists}%
+ {macro \ExcludeName: Name: #1 #2 exists}%
\fi
- \ifcsname\csab!NF\endcsname
+ \ifcsname\@nameauth@csab!NF\endcsname
\PackageWarning{nameauth}%
- {macro \ExcludeName: Reference: #1 #2 exists}%
+ {macro \ExcludeName: Name: #1 #2 exists}%
\fi
\fi
- \ifcsname\csab!PN\endcsname
+% \end{macrocode}
+% One cannot exclude an extant cross-reference or exclusion. Verbose warnings only.
+% \begin{macrocode}
+ \ifcsname\@nameauth@csab!PN\endcsname
\if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \ExcludeName: Xref: #1 #2 exists}%
+ \edef\@nameauth@testex{\csname\@nameauth@csab!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: Exclusion: #1 #2 exists}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \ExcludeName: XRef: #1 #2 exists}%
+ \fi
\fi
\else
- \csgdef{\csab!PN}{!}%
+ \csxdef{\@nameauth@csab!PN}{\@nameauth@Exclude}%
\fi
- \fi
+ }%
}
% \end{macrocode}
% \end{macro}
@@ -6954,61 +8431,57 @@ the README.txt or README for more information.
% \begin{macro}{\IncludeName}
% \changes{3.0}{2016/10/26}{Added}
% \changes{3.3}{2020/02/20}{Added warnings}
-% This macro allows a name to be indexed if it is not a cross-reference.
+% \changes{3.5}{2020/11/23}{New exclusion test, optimize logic, fix namespace}
+% This macro allows a name to be indexed once again only if it had been excluded.
% \begin{macrocode}
\newcommandx*\IncludeName[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
% \end{macrocode}
-% Below we parse the name arguments and undefine only an ``excluded'' name.
+% Process and load the arguments into the appropriate macros.
% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\IncludeName}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!PN\endcsname
- \edef\testex{\csname\csb!PN\endcsname}%
- \unless\ifx\testex\@empty\global\csundef{\csb!PN}%
- \else
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IncludeName: Xref: #2 exists}%
- \fi
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csb!PN\endcsname
+ \edef\@nameauth@testex{\csname\@nameauth@csb!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \global\csundef{\@nameauth@csb!PN}%
+ \else
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}%
+ {macro \IncludeName: Xref: #2 exists}%
\fi
\fi
- \else
- \ifx\suffb\@empty
- \ifcsname\csbc!PN\endcsname
- \edef\testex{\csname\csbc!PN\endcsname}%
- \unless\ifx\testex\@empty\global\csundef{\csbc!PN}%
- \else
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IncludeName: Xref: #2 #3 exists}%
- \fi
- \fi
- \fi
+ \fi
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csbc!PN\endcsname
+ \edef\@nameauth@testex{\csname\@nameauth@csbc!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \global\csundef{\@nameauth@csbc!PN}%
\else
- \ifcsname\csb!PN\endcsname
- \edef\testex{\csname\csb!PN\endcsname}%
- \unless\ifx\testex\@empty\global\csundef{\csb!PN}%
- \else
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \IncludeName: Xref: #2 exists}%
- \fi
- \fi
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}%
+ {macro \IncludeName: Xref: #2 #3 exists}%
\fi
\fi
\fi
- \else
- \ifcsname\csab!PN\endcsname
- \edef\testex{\csname\csab!PN\endcsname}%
- \unless\ifx\testex\@empty\global\csundef{\csab!PN}%
+ }%
+% \end{macrocode}
+% Western names.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csab!PN\endcsname
+ \edef\@nameauth@testex{\csname\@nameauth@csab!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \global\csundef{\@nameauth@csab!PN}%
\else
\if@nameauth@Verbose
\PackageWarning{nameauth}%
@@ -7016,230 +8489,216 @@ the README.txt or README for more information.
\fi
\fi
\fi
- \fi
+ }%
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\IncludeName*}
% \changes{3.0}{2016/10/26}{Added}
-% \changes{3.1}{2017/01/13}{Fixed}
-% This macro allows any name to be indexed, undefining cross-references.
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace}
+% This macro allows any name to be indexed by voiding any exclusion or cross-reference.
% \begin{macrocode}
\WithSuffix{\newcommandx*}\IncludeName*[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
-% \end{macrocode}
-% Below we parse the name arguments and undefine an xref control sequence.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\IncludeName*}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \global\csundef{\csb!PN}%
- \else
- \ifx\suffb\@empty
- \global\csundef{\csbc!PN}%
- \else
- \global\csundef{\csb!PN}%
- \fi
- \fi
- \else
- \global\csundef{\csab!PN}%
- \fi
+ \@nameauth@Choice%
+ {\global\csundef{\@nameauth@csb!PN}}%
+ {\global\csundef{\@nameauth@csbc!PN}}%
+ {\global\csundef{\@nameauth@csab!PN}}%
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\PretagName}
% \changes{2.0}{2015/11/11}{Added}
-% This creates an index entry tag that is applied before a name.
+% \changes{3.5}{2020/11/23}{New warnings, new exclusion test, optimize logic, fix namespace}
+% This creates an index entry tag that is applied before a name by \cmd{\@nameauth@Index}.
% \begin{macrocode}
\newcommandx*\PretagName[4][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
% \end{macrocode}
-% We parse the arguments, defining the sort tag control sequences used by\newline \cmd{\@nameauth@Index}.
+% Process and load the arguments into the appropriate macros.
% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\PretagName}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!PN\endcsname
+% \end{macrocode}
+% Sort only when permitted.
+% \begin{macrocode}
+ \if@nameauth@Pretag
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names. Verbose warnings let us know if we are sorting either exclusions or cross-references. The former will be ignored. The latter will be used.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csb!PN\endcsname
\if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \PretagName: tagging xref: #2}%
+ \edef\@nameauth@testex{\csname\@nameauth@csb!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \PretagName: tagging exclusion: #2}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \PretagName: tagging xref: #2}%
+ \fi
\fi
\fi
- \if@nameauth@Pretag\csgdef{\csb!PRE}{#4\@nameauth@Actual}\fi
- \else
- \ifx\suffb\@empty
- \ifcsname\csbc!PN\endcsname
- \if@nameauth@Verbose
+ \csgdef{\@nameauth@csb!PRE}{#4\@nameauth@Actual}%
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax. Verbose warnings let us know if we are sorting either exclusions or cross-references. The former will be ignored. The latter will be used.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csbc!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csbc!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \PretagName: tagging exclusion: #2 #3}%
+ \else
\PackageWarning{nameauth}%
{macro \PretagName: tagging xref: #2 #3}%
\fi
\fi
- \if@nameauth@Pretag\csgdef{\csbc!PRE}{#4\@nameauth@Actual}\fi
- \else
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
+ \fi
+ \csgdef{\@nameauth@csbc!PRE}{#4\@nameauth@Actual}%
+ }%
+% \end{macrocode}
+% Western names. Verbose warnings let us know if we are sorting either exclusions or cross-references. The former will be ignored. The latter will be used.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csab!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csab!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
\PackageWarning{nameauth}%
- {macro \PretagName: tagging xref: #2}%
+ {macro \PretagName: tagging exclusion: #1 #2}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \PretagName: tagging xref: #1 #2}%
\fi
\fi
- \if@nameauth@Pretag\csgdef{\csb!PRE}{#4\@nameauth@Actual}\fi
\fi
- \fi
+ \csgdef{\@nameauth@csab!PRE}{#4\@nameauth@Actual}%
+ }%
\else
- \ifcsname\csab!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \PretagName: tagging xref: #1 #2}%
- \fi
- \fi
- \if@nameauth@Pretag\csgdef{\csab!PRE}{#4\@nameauth@Actual}\fi
+ \PackageWarning{nameauth}%
+ {macro \PretagName: deactivated}%
\fi
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\TagName}
% \changes{1.2}{2012/02/25}{Added}
% \changes{1.9}{2015/07/09}{Fix cs collisions}
% \changes{2.0}{2015/11/11}{Redesign tagging}
-% This creates an index entry tag for a name that is not used as a cross-reference.
+% \changes{3.5}{2020/11/23}{New warnings, new exclusion test, optimize logic, fix namespace}
+% This creates an index entry tag for a name that is not either an exclusion or a cross-reference.
% \begin{macrocode}
\newcommandx*\TagName[4][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
% \end{macrocode}
-% We parse the arguments, defining the macros used by \cmd{\@nameauth@Index}.
+% Process and load the arguments into the appropriate macros.
% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\TagName}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csb!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csb!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \TagName: not tagging exclusion: #2}%
+ \else
\PackageWarning{nameauth}%
{macro \TagName: not tagging xref: #2}%
\fi
- \else
- \csgdef{\csb!TAG}{#4}%
\fi
\else
- \ifx\suffb\@empty
- \ifcsname\csbc!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \TagName: not tagging xref: #2 #3}%
- \fi
- \else
- \csgdef{\csbc!TAG}{#4}%
- \fi
- \else
- \ifcsname\csb!PN\endcsname
- \if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \TagName: not tagging xref: #2}%
- \fi
+ \csgdef{\@nameauth@csb!TAG}{#4}%
+ \fi
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csbc!PN\endcsname
+ \if@nameauth@Verbose
+ \edef\@nameauth@testex{\csname\@nameauth@csbc!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \TagName: not tagging exclusion: #2 #3}%
\else
- \csgdef{\csb!TAG}{#4}%
+ \PackageWarning{nameauth}%
+ {macro \TagName: not tagging xref: #2 #3}%
\fi
\fi
+ \else
+ \csgdef{\@nameauth@csbc!TAG}{#4}%
\fi
- \else
- \ifcsname\csab!PN\endcsname
+ }%
+% \end{macrocode}
+% Western names.
+% \begin{macrocode}
+ {%
+ \ifcsname\@nameauth@csab!PN\endcsname
\if@nameauth@Verbose
- \PackageWarning{nameauth}%
- {macro \TagName: not tagging xref: #1 #2}%
+ \edef\@nameauth@testex{\csname\@nameauth@csab!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \PackageWarning{nameauth}%
+ {macro \TagName: not tagging exclusion: #1 #2}%
+ \else
+ \PackageWarning{nameauth}%
+ {macro \TagName: not tagging xref: #1 #2}%
+ \fi
\fi
\else
- \csgdef{\csab!TAG}{#4}%
+ \csgdef{\@nameauth@csab!TAG}{#4}%
\fi
- \fi
+ }%
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\UntagName}
% \changes{1.2}{2012/02/25}{Added}
% \changes{1.9}{2015/07/09}{Global undef, no cs collisions}
% \changes{2.0}{2015/11/11}{Redesign tagging}
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace}
% This deletes an index tag.
% \begin{macrocode}
\newcommandx*\UntagName[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
-% \end{macrocode}
-% We parse the arguments, undefining the index tag macros.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\UntagName}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \global\csundef{\csb!TAG}%
- \else
- \ifx\suffb\@empty
- \global\csundef{\csbc!TAG}%
- \else
- \global\csundef{\csb!TAG}%
- \fi
- \fi
- \else
- \global\csundef{\csab!TAG}%
- \fi
+ \@nameauth@Choice%
+ {\global\csundef{\@nameauth@csb!TAG}}%
+ {\global\csundef{\@nameauth@csbc!TAG}}%
+ {\global\csundef{\@nameauth@csab!TAG}}%
}
% \end{macrocode}
% \end{macro}
-%
-% \noindent{\large\bfseries Name Info Data Set: ``Text Tags''}
+%
+% \noindent{\normalsize\bfseries Name Info Data Set: ``Text Tags''}
% \begin{macro}{\NameAddInfo}
% \changes{2.4}{2016/03/15}{Added}
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace}
% This creates a macro that expands to information associated with a given name, similar to an index tag, but usable in the body text.
% \begin{macrocode}
\newcommandx\NameAddInfo[4][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\Suff{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
-% \end{macrocode}
-% We parse the arguments, defining the text tag control sequences.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\NameAddInfo}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \csgdef{\csb!DB}{#4}%
- \else
- \ifx\Suff\@empty
- \csgdef{\csbc!DB}{#4}%
- \else
- \csgdef{\csb!DB}{#4}%
- \fi
- \fi
- \else
- \csgdef{\csab!DB}{#4}%
- \fi
+ \@nameauth@Choice%
+ {\csgdef{\@nameauth@csb!DB}{#4}}%
+ {\csgdef{\@nameauth@csbc!DB}{#4}}%
+ {\csgdef{\@nameauth@csab!DB}{#4}}%
}
% \end{macrocode}
% \end{macro}
@@ -7247,255 +8706,320 @@ the README.txt or README for more information.
% \begin{macro}{\NameQueryInfo}
% \changes{2.4}{2016/03/15}{Added}
% \changes{3.1}{2017/01/13}{Short macro}
-% \changes{3.3}{2020/02/20}{lock added}
+% \changes{3.3}{2020/02/20}{Lock added}
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace}
% This prints the information created by \cmd{\NameAddInfo} if it exists.
% \begin{macrocode}
\newcommandx*\NameQueryInfo[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\Suff{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
\unless\if@nameauth@BigLock
-% \end{macrocode}
-% We parse the arguments, invoking the tag macros to expand to their contents.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\NameQueryInfo}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!DB\endcsname\csname\csb!DB\endcsname\fi
- \else
- \ifx\Suff\@empty
- \ifcsname\csbc!DB\endcsname\csname\csbc!DB\endcsname\fi
- \else
- \ifcsname\csb!DB\endcsname\csname\csb!DB\endcsname\fi
- \fi
- \fi
- \else
- \ifcsname\csab!DB\endcsname\csname\csab!DB\endcsname\fi
- \fi
- \fi
+ \@nameauth@Choice%
+ {\ifcsname\@nameauth@csb!DB\endcsname
+ \csname\@nameauth@csb!DB\endcsname\fi}%
+ {\ifcsname\@nameauth@csbc!DB\endcsname
+ \csname\@nameauth@csbc!DB\endcsname\fi}%
+ {\ifcsname\@nameauth@csab!DB\endcsname
+ \csname\@nameauth@csab!DB\endcsname\fi}%
+ \fi
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\NameClearInfo}
% \changes{2.4}{2016/03/15}{Added}
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace}
% This deletes a text tag. It has the same structure as \cmd{\UntagName}.
% \begin{macrocode}
\newcommandx*\NameClearInfo[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\Suff{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
-% \end{macrocode}
-% We parse the arguments, undefining the text tag control sequences.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\NameClearInfo}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \global\csundef{\csb!DB}%
- \else
- \ifx\Suff\@empty
- \global\csundef{\csbc!DB}%
- \else
- \global\csundef{\csb!DB}%
- \fi
- \fi
- \else
- \global\csundef{\csab!DB}%
- \fi
+ \@nameauth@Choice%
+ {\global\csundef{\@nameauth@csb!DB}}%
+ {\global\csundef{\@nameauth@csbc!DB}}%
+ {\global\csundef{\@nameauth@csab!DB}}%
}
% \end{macrocode}
% \end{macro}
-%
-% \noindent{\large\bfseries Name Decisions}
+% \BigBlank
+% \newpage
+%
+% \noindent{\normalsize\bfseries Name Decisions}
% \begin{macro}{\IfMainName}
% \changes{2.3}{2016/01/05}{Added}
-% This macro expands one path if a main matter name exists, or else the other.
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace, local or global scope}
+% This macro expands one path if a main matter name exists, or else the other. The state of \texttt{\textbackslash if@nameauth@GlobalScope} determines whether or not the paths are in a local scope.
% \begin{macrocode}
\newcommandx\IfMainName[5][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
-% \end{macrocode}
-% Below we parse the name arguments and choose the path.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\IfMainName}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!MN\endcsname{#4}\else{#5}\fi
+ \@nameauth@Choice%
+ {%
+ \ifcsname\@nameauth@csb!MN\endcsname
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
\else
- \ifx\suffb\@empty
- \ifcsname\csbc!MN\endcsname{#4}\else{#5}\fi
+ \if@nameauth@GlobalScope
+ #5%
\else
- \ifcsname\csb!MN\endcsname{#4}\else{#5}\fi
+ {#5}%
\fi
\fi
- \else
- \ifcsname\csab!MN\endcsname{#4}\else{#5}\fi
- \fi
+ }%
+ {%
+ \ifcsname\@nameauth@csbc!MN\endcsname
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #5%
+ \else
+ {#5}%
+ \fi
+ \fi
+ }%
+ {%
+ \ifcsname\@nameauth@csab!MN\endcsname
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #5%
+ \else
+ {#5}%
+ \fi
+ \fi
+ }%
}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\IfFrontName}
% \changes{2.3}{2016/01/05}{Added}
-% This macro expands one path if a front matter name exists, or else the other.
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace, local or global scope}
+% This macro expands one path if a front matter name exists, or else the other. The state of \texttt{\textbackslash if@nameauth@GlobalScope} determines whether or not the paths are in a local scope.
% \begin{macrocode}
\newcommandx\IfFrontName[5][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
-% \end{macrocode}
-% Below we parse the name arguments and choose the path.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\IfFrontName}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!NF\endcsname{#4}\else{#5}\fi
+ \@nameauth@Choice%
+ {%
+ \ifcsname\@nameauth@csb!NF\endcsname
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
\else
- \ifx\suffb\@empty
- \ifcsname\csbc!NF\endcsname{#4}\else{#5}\fi
+ \if@nameauth@GlobalScope
+ #5%
\else
- \ifcsname\csb!NF\endcsname{#4}\else{#5}\fi
+ {#5}%
\fi
\fi
- \else
- \ifcsname\csab!NF\endcsname{#4}\else{#5}\fi
- \fi
+ }%
+ {%
+ \ifcsname\@nameauth@csbc!NF\endcsname
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #5%
+ \else
+ {#5}%
+ \fi
+ \fi
+ }%
+ {%
+ \ifcsname\@nameauth@csab!NF\endcsname
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #5%
+ \else
+ {#5}%
+ \fi
+ \fi
+ }%
}
% \end{macrocode}
% \end{macro}
-%
+% \newpage
+%
% \begin{macro}{\IfAKA}
% \changes{2.3}{2016/01/05}{Added}
% \changes{2.4}{2016/03/15}{Test for excluded}
% \changes{3.0}{2016/10/26}{Redesigned}
-% This macro expands one path if a cross-reference exists, another if it does not exist, and a third if it is excluded.
+% \changes{3.5}{2020/11/23}{New exclusion test, optimize logic, fix namespace, local or global scope}
+% This macro expands one path if a cross-reference exists, another if it does not exist, and a third if it is excluded. The state of \texttt{\textbackslash if@nameauth@GlobalScope} determines whether or not the paths are in a local scope.
% \begin{macrocode}
\newcommandx\IfAKA[6][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
+ \@nameauth@Error{#2}{macro \string\IfAKA}%
% \end{macrocode}
% For each class of name we test first if a cross-reference exists, then if it is excluded.
% \begin{macrocode}
- \@nameauth@Error{#2}{macro \string\IfAKA}%
- \ifx\arga\@empty
- \ifx\argc\@empty
- \ifcsname\csb!PN\endcsname
- \edef\testex{\csname\csb!PN\endcsname}%
- \ifx\testex\@empty{#4}\else{#6}\fi
- \else{#5}\fi
+ \@nameauth@Choice%
+ {%
+ \ifcsname\@nameauth@csb!PN\endcsname
+ \edef\@nameauth@testex{\csname\@nameauth@csb!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \if@nameauth@GlobalScope
+ #6%
+ \else
+ {#6}%
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
+ \fi
\else
- \ifx\suffb\@empty
- \ifcsname\csbc!PN\endcsname
- \edef\testex{\csname\csbc!PN\endcsname}%
- \ifx\testex\@empty{#4}\else{#6}\fi
- \else{#5}\fi
+ \if@nameauth@GlobalScope
+ #5%
\else
- \ifcsname\csb!PN\endcsname
- \edef\testex{\csname\csb!PN\endcsname}%
- \ifx\testex\@empty{#4}\else{#6}\fi
- \else{#5}\fi
+ {#5}%
\fi
\fi
- \else
- \ifcsname\csab!PN\endcsname
- \edef\testex{\csname\csab!PN\endcsname}%
- \ifx\testex\@empty{#4}\else{#6}\fi
- \else{#5}\fi
- \fi
+ }%
+ {%
+ \ifcsname\@nameauth@csbc!PN\endcsname
+ \edef\@nameauth@testex{\csname\@nameauth@csbc!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \if@nameauth@GlobalScope
+ #6%
+ \else
+ {#6}%
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #5%
+ \else
+ {#5}%
+ \fi
+ \fi
+ }%
+ {%
+ \ifcsname\@nameauth@csab!PN\endcsname
+ \edef\@nameauth@testex{\csname\@nameauth@csab!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \if@nameauth@GlobalScope
+ #6%
+ \else
+ {#6}%
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #4%
+ \else
+ {#4}%
+ \fi
+ \fi
+ \else
+ \if@nameauth@GlobalScope
+ #5%
+ \else
+ {#5}%
+ \fi
+ \fi
+ }%
}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Changing Name Decisions}
+% \noindent{\normalsize\bfseries Changing Name Decisions}
% \begin{macro}{\ForgetName}
-% \changes{0.75}{2012/01/19}{Current args}
% \changes{1.9}{2015/07/09}{Global undef}
% \changes{2.3}{2016/01/05}{Global or local}
-% This undefines a control sequence to force a ``first use.''
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace}
+% This undefines a control sequence to force a ``first use''.
% \begin{macrocode}
\newcommandx*\ForgetName[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
+% \end{macrocode}
+% Process and load the arguments into the appropriate macros.
+% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\ForgetName}%
% \end{macrocode}
% Now we parse the arguments, undefining the control sequences either by current name type (via |@nameauth@MainFormat|) or completely (toggled by |@nameauth@LocalNames|).
% \begin{macrocode}
- \ifx\arga\@empty
- \ifx\argc\@empty
- \if@nameauth@LocalNames
- \if@nameauth@MainFormat
- \global\csundef{\csb!MN}%
- \else
- \global\csundef{\csb!NF}%
- \fi
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names.
+% \begin{macrocode}
+ {%
+ \if@nameauth@LocalNames
+ \if@nameauth@MainFormat
+ \global\csundef{\@nameauth@csb!MN}%
\else
- \global\csundef{\csb!MN}%
- \global\csundef{\csb!NF}%
+ \global\csundef{\@nameauth@csb!NF}%
\fi
\else
- \ifx\suffb\@empty
- \if@nameauth@LocalNames
- \if@nameauth@MainFormat
- \global\csundef{\csbc!MN}%
- \else
- \global\csundef{\csbc!NF}%
- \fi
- \else
- \global\csundef{\csbc!MN}%
- \global\csundef{\csbc!NF}%
- \fi
+ \global\csundef{\@nameauth@csb!MN}%
+ \global\csundef{\@nameauth@csb!NF}%
+ \fi
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax.
+% \begin{macrocode}
+ {%
+ \if@nameauth@LocalNames
+ \if@nameauth@MainFormat
+ \global\csundef{\@nameauth@csbc!MN}%
\else
- \if@nameauth@LocalNames
- \if@nameauth@MainFormat
- \global\csundef{\csb!MN}%
- \else
- \global\csundef{\csb!NF}%
- \fi
- \else
- \global\csundef{\csb!MN}%
- \global\csundef{\csb!NF}%
- \fi
+ \global\csundef{\@nameauth@csbc!NF}%
\fi
+ \else
+ \global\csundef{\@nameauth@csbc!MN}%
+ \global\csundef{\@nameauth@csbc!NF}%
\fi
- \else
+ }%
+% \end{macrocode}
+% Western names.
+% \begin{macrocode}
+ {%
\if@nameauth@LocalNames
\if@nameauth@MainFormat
- \global\csundef{\csab!MN}%
+ \global\csundef{\@nameauth@csab!MN}%
\else
- \global\csundef{\csab!NF}%
+ \global\csundef{\@nameauth@csab!NF}%
\fi
\else
- \global\csundef{\csab!MN}%
- \global\csundef{\csab!NF}%
+ \global\csundef{\@nameauth@csab!MN}%
+ \global\csundef{\@nameauth@csab!NF}%
\fi
- \fi
+ }%
}
% \end{macrocode}
% \end{macro}
@@ -7504,97 +9028,89 @@ the README.txt or README for more information.
% \changes{0.9}{2012/02/10}{Added}
% \changes{2.3}{2016/01/05}{Global or local}
% \changes{3.1}{2017/01/13}{Fix old syntax}
-% This defines a control sequence to force a ``subsequent use.''
+% \changes{3.5}{2020/11/23}{Optimize logic, fix namespace}
+% This defines a control sequence to force a ``subsequent use''.
% \begin{macrocode}
\newcommandx*\SubvertName[3][1=\@empty, 3=\@empty]
{%
- \protected@edef\arga{\trim@spaces{#1}}%
- \protected@edef\argc{\trim@spaces{#3}}%
- \protected@edef\suffb{\@nameauth@Suffix{#2}}%
- \def\csb{\@nameauth@Clean{#2}}%
- \def\csbc{\@nameauth@Clean{#2,#3}}%
- \def\csab{\@nameauth@Clean{#1!#2}}%
-% \end{macrocode}
-% We make copies of the arguments to test them.
-% \begin{macrocode}
+ \@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\SubvertName}%
% \end{macrocode}
% Now we parse the arguments, defining the control sequences either locally by section type or globally. |@nameauth@LocalNames| toggles the local or global behavior, while we select the type of name with |@nameauth@MainFormat|.
% \begin{macrocode}
- \ifx\arga\@empty
- \ifx\argc\@empty
- \if@nameauth@LocalNames
- \if@nameauth@MainFormat
- \csgdef{\csb!MN}{}%
- \else
- \csgdef{\csb!NF}{}%
- \fi
+ \@nameauth@Choice%
+% \end{macrocode}
+% Non-Western names.
+% \begin{macrocode}
+ {%
+ \if@nameauth@LocalNames
+ \if@nameauth@MainFormat
+ \csgdef{\@nameauth@csb!MN}{}%
\else
- \csgdef{\csb!MN}{}%
- \csgdef{\csb!NF}{}%
+ \csgdef{\@nameauth@csb!NF}{}%
\fi
\else
- \ifx\suffb\@empty
- \if@nameauth@LocalNames
- \if@nameauth@MainFormat
- \csgdef{\csbc!MN}{}%
- \else
- \csgdef{\csbc!NF}{}%
- \fi
- \else
- \csgdef{\csbc!MN}{}%
- \csgdef{\csbc!NF}{}%
- \fi
- \else
- \if@nameauth@LocalNames
- \if@nameauth@MainFormat
- \csgdef{\csb!MN}{}%
- \else
- \csgdef{\csb!NF}{}%
- \fi
- \else
- \csgdef{\csb!MN}{}%
- \csgdef{\csb!NF}{}%
- \fi
+ \csgdef{\@nameauth@csb!MN}{}%
+ \csgdef{\@nameauth@csb!NF}{}%
+ \fi
+ }%
+% \end{macrocode}
+% Non-Western names, obsolete syntax.
+% \begin{macrocode}
+ {%
+ \if@nameauth@LocalNames
+ \if@nameauth@MainFormat
+ \csgdef{\@nameauth@csbc!MN}{}%
+ \else
+ \csgdef{\@nameauth@csbc!NF}{}%
\fi
+ \else
+ \csgdef{\@nameauth@csbc!MN}{}%
+ \csgdef{\@nameauth@csbc!NF}{}%
\fi
- \else
+ }%
+% \end{macrocode}
+% Western names.
+% \begin{macrocode}
+ {%
\if@nameauth@LocalNames
\if@nameauth@MainFormat
- \csgdef{\csab!MN}{}%
+ \csgdef{\@nameauth@csab!MN}{}%
\else
- \csgdef{\csab!NF}{}%
+ \csgdef{\@nameauth@csab!NF}{}%
\fi
\else
- \csgdef{\csab!MN}{}%
- \csgdef{\csab!NF}{}%
+ \csgdef{\@nameauth@csab!MN}{}%
+ \csgdef{\@nameauth@csab!NF}{}%
\fi
- \fi
+ }%
}
% \end{macrocode}
% \end{macro}
-%
-% \noindent{\large\bfseries Alternate Names}
+%
+% \noindent{\normalsize\bfseries Alternate Names}
% \begin{macro}{\AKA}
-% \changes{0.85}{2012/02/05}{Hide commas}
% \changes{1.26}{2012/04/24}{Fix affixes}
-% \changes{1.5}{2013/02/22}{Reversing, caps}
-% \changes{2.0}{2015/11/11}{Trim spaces; fix tagging}
+% \changes{1.5}{2013/02/22}{Reversing/caps}
+% \changes{2.0}{2015/11/11}{Trim spaces; fix tags}
% \changes{2.1}{2015/11/24}{Fix Unicode}
% \changes{2.3}{2016/01/05}{Fix starred mode}
% \changes{2.41}{2016/03/17}{Fix token regs}
% \changes{2.6}{2016/09/19}{Fix index commas}
% \changes{3.0}{2016/10/26}{Redesigned}
% \changes{3.1}{2017/01/13}{Can skip index}
-% \changes{3.3}{2020/02/20}{global flag reset}
+% \changes{3.3}{2020/02/20}{Global flag reset}
+% \changes{3.5}{2020/11/23}{Fix namespace}
% \cmd{\AKA} prints an alternate name and creates index cross-references. It prevents multiple generation of cross-references and suppresses double periods.
% \begin{macrocode}
\newcommandx*\AKA[5][1=\@empty, 3=\@empty, 5=\@empty]
{%
% \end{macrocode}
-% Prevent entering \cmd{\AKA} via itself or \cmd{\@nameauth@Name}. Prevent the index-only flag. Tell the formatting system that \cmd{\AKA} is running.
+% Prevent entering \cmd{\AKA} via itself or \cmd{\@nameauth@Name}. Prevents and resets \cmd{\JustIndex}. Tell the formatting system that \cmd{\AKA} is running.
% \begin{macrocode}
- \if@nameauth@BigLock\@nameauth@Locktrue\fi
+ \if@nameauth@BigLock
+ \@nameauth@Locktrue%
+ \fi
\unless\if@nameauth@Lock
\@nameauth@Locktrue%
\@nameauth@InAKAtrue%
@@ -7612,69 +9128,45 @@ the README.txt or README for more information.
% Names occur in horizontal mode; we ensure that. Next we make copies of the target name arguments and we parse and print the cross-reference name.
% \begin{macrocode}
\leavevmode\hbox{}%
- \protected@edef\argi{\trim@spaces{#1}}%
- \protected@edef\rooti{\@nameauth@Root{#2}}%
- \protected@edef\suffi{\@nameauth@Suffix{#2}}%
- \@nameauth@Parse[#3]{#4}[#5]{!PN}%
+ \protected@edef\@nameauth@Ai{\trim@spaces{#1}}%
+ \protected@edef\@nameauth@Bi{\@nameauth@Root{#2}}%
+ \protected@edef\@nameauth@Si{\@nameauth@Suffix{#2}}%
+ \@nameauth@Parse{#3}{#4}{#5}{!PN}%
+ \def\@nameauth@space{ }%
% \end{macrocode}
+% \newpage\noindent
% Create an index cross-reference based on the arguments.
% \begin{macrocode}
\unless\if@nameauth@SkipIndex
- \ifx\argi\@empty
- \ifx\suffi\@empty
- \IndexRef[#3]{#4}[#5]{\rooti}%
+ \ifx\@nameauth@Ai\@empty
+ \ifx\@nameauth@Si\@empty
+ \IndexRef[#3]{#4}[#5]{\@nameauth@Bi}%
\else
- \IndexRef[#3]{#4}[#5]{\rooti\space\suffi}%
+ \IndexRef[#3]{#4}[#5]%
+ {\@nameauth@Bi\@nameauth@space%
+ \@nameauth@Si}%
\fi
\else
- \ifx\suffi\@empty
- \IndexRef[#3]{#4}[#5]{\rooti,\space\argi}%
+ \ifx\@nameauth@Si\@empty
+ \IndexRef[#3]{#4}[#5]%
+ {\@nameauth@Bi,\@nameauth@space\@nameauth@Ai}%
\else
- \IndexRef[#3]{#4}[#5]{\rooti,\space\argi,\space\suffi}%
+ \IndexRef[#3]{#4}[#5]%
+ {\@nameauth@Bi,\@nameauth@space%
+ \@nameauth@Ai,\@nameauth@space\@nameauth@Si}%
\fi
\fi
\fi
% \end{macrocode}
% Reset all the ``per name'' Boolean values. The default is global.
% \begin{macrocode}
- \if@nameauth@OldReset
- \@nameauth@SkipIndexfalse%
- \@nameauth@AltAKAfalse%
- \@nameauth@NBSPfalse%
- \@nameauth@NBSPXfalse%
- \@nameauth@DoCapsfalse%
- \@nameauth@Accentfalse%
- \@nameauth@AllThisfalse%
- \@nameauth@ShowCommafalse%
- \@nameauth@NoCommafalse%
- \@nameauth@RevThisfalse%
- \@nameauth@RevThisCommafalse%
- \@nameauth@ShortSNNfalse%
- \@nameauth@EastFNfalse%
- \else
- \global\@nameauth@SkipIndexfalse%
- \global\@nameauth@AltAKAfalse%
- \global\@nameauth@NBSPfalse%
- \global\@nameauth@NBSPXfalse%
- \global\@nameauth@DoCapsfalse%
- \global\@nameauth@Accentfalse%
- \global\@nameauth@AllThisfalse%
- \global\@nameauth@ShowCommafalse%
- \global\@nameauth@NoCommafalse%
- \global\@nameauth@RevThisfalse%
- \global\@nameauth@RevThisCommafalse%
- \global\@nameauth@ShortSNNfalse%
- \global\@nameauth@EastFNfalse%
- \fi
+ \@nameauth@Flags%
\@nameauth@Lockfalse%
\@nameauth@InAKAfalse%
% \end{macrocode}
-% Close the ``locked'' branch.
+% Close the ``locked'' branch and call the full stop detection. This conditional statement must be on one line.
% \begin{macrocode}
\fi
-% \end{macrocode}
-% Call the full stop detection.
-% \begin{macrocode}
\if@nameauth@Punct\expandafter\@nameauth@CheckDot\fi
}
% \end{macrocode}
@@ -7684,22 +9176,52 @@ the README.txt or README for more information.
% \changes{0.9}{2012/02/10}{Added}
% This starred form sets a Boolean to print only the alternate name argument, if that exists, and calls \cmd{\AKA}.
% \begin{macrocode}
-\WithSuffix{\newcommand*}\AKA*{\@nameauth@AltAKAtrue\AKA}
+\WithSuffix{\newcommand*}\AKA*{\@nameauth@AltAKAtrue \AKA}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\PName}
% \changes{2.3}{2016/01/05}{Work with hooks}
% \changes{3.1}{2017/01/13}{Can skip index}
-% \cmd{\PName} is a convenience macro that calls \cmd{\NameauthName}, then \cmd{\AKA}. It prevents the index-only feature from triggering.
+% \changes{3.5}{2020/11/23}{Warning and flag resets added}
+% \cmd{\PName} is a convenience macro that calls \cmd{\NameauthName}, then \cmd{\AKA}.
% \begin{macrocode}
\newcommandx*\PName[5][1=\@empty,3=\@empty,5=\@empty]
{%
- \@nameauth@JustIndexfalse%
+% \end{macrocode}
+% If we used \cmd{\JustIndex}, we ignore and reset its flag to false.
+% \begin{macrocode}
+ \if@nameauth@OldReset
+ \@nameauth@JustIndexfalse%
+ \else
+ \global\@nameauth@JustIndexfalse%
+ \fi
+% \end{macrocode}
+% If we used \cmd{\SkipIndex}, we reset the flag of \cmd{\SeeAlso} and activate \cmd{\SkipIndex}for both \cmd{\NameauthName} and \cmd{\AKA}.
+% \begin{macrocode}
\if@nameauth@SkipIndex
- \NameauthName[#1]{#2}\space(\SkipIndex\AKA[#1]{#2}[#3]{#4}[#5])%
+ \unless\if@nameauth@OldReset
+ \global\@nameauth@SeeAlsofalse%
+ \fi
+ \NameauthName[#1]{#2} (\SkipIndex\AKA[#1]{#2}[#3]{#4}[#5])%
\else
- \NameauthName[#1]{#2}\space(\AKA[#1]{#2}[#3]{#4}[#5])%
+% \end{macrocode}
+% Otherwise, if we used \cmd{\SeeAlso} we set the flag of \cmd{\SeeAlso} false for \cmd{\NameauthName} and true for \cmd{\AKA}. The ``normal'' case after that is trivial.
+% \begin{macrocode}
+ \if@nameauth@SeeAlso
+ \@nameauth@SeeAlsofalse\NameauthName[#1]{#2}
+ \@nameauth@SeeAlsotrue(\AKA[#1]{#2}[#3]{#4}[#5])%
+ \else
+ \NameauthName[#1]{#2}
+ (\AKA[#1]{#2}[#3]{#4}[#5])%
+ \fi
+ \fi
+% \end{macrocode}
+% Warn if \cmd{\SkipIndex} remains in effect (potentially due to the \texttt{oldreset} option). Normally, this state should not occur.
+% \begin{macrocode}
+ \if@nameauth@SkipIndex
+ \PackageWarning{nameauth}%
+ {\SkipIndex still active after \PName; check for problems}%
\fi
}
% \end{macrocode}
@@ -7708,108 +9230,111 @@ the README.txt or README for more information.
% \begin{macro}{\PName*}
% This sets up a long name reference and calls \cmd{\PName}.
% \begin{macrocode}
-\WithSuffix{\newcommand*}\PName*{\@nameauth@FullNametrue\PName}
+\WithSuffix{\newcommand*}\PName*{\@nameauth@FullNametrue \PName}
% \end{macrocode}
% \end{macro}
%
-% \noindent{\large\bfseries Simplified Interface}
+% \noindent{\normalsize\bfseries Quick Interface}
% \begin{environment}{nameauth}
% \changes{1.6}{2013/03/10}{Environment added}
-% \changes{1.9}{2015/07/09}{Bugfix}
% \changes{2.0}{2015/11/11}{Better arg handling}
-% \changes{2.11}{2015/11/29}{Bugfix}
% \changes{2.41}{2016/03/17}{No local \cmd{\newtoks}}
-% The \texttt{nameauth} environment creates macro shorthands. First we define a control sequence \cmd{\<} that takes four parameters, delimited by three ampersands and \texttt{>}.
+% \changes{3.5}{2020/11/23}{Fix namespace}
+% The \texttt{nameauth} environment creates macro shorthands. First we define a control sequence \cmd{\<} that takes four parameters, delimited by three ampersands and \texttt{>}. This macro is defined only within the \texttt{nameauth} environment, but the shorthand macros that it creates are globally defined.
% \begin{macrocode}
\newenvironment{nameauth}{%
\begingroup%
\let\ex\expandafter%
\csdef{<}##1&##2&##3&##4>{%
- \protected@edef\@arga{\trim@spaces{##1}}%
- \protected@edef\@testb{\trim@spaces{##2}}%
- \protected@edef\@testd{\trim@spaces{##4}}%
- \@nameauth@etoksb\expandafter{##2}%
- \@nameauth@etoksc\expandafter{##3}%
- \@nameauth@etoksd\expandafter{##4}%
+ \protected@edef\@arga@{\trim@spaces{##1}}%
+ \protected@edef\@larga@{L\trim@spaces{##1}}%
+ \protected@edef\@sarga@{S\trim@spaces{##1}}%
+ \protected@edef\@testb@{\trim@spaces{##2}}%
+ \protected@edef\@testd@{\trim@spaces{##4}}%
+ \@nameauth@etoksb\ex{##2}%
+ \@nameauth@etoksc\ex{##3}%
+ \@nameauth@etoksd\ex{##4}%
% \end{macrocode}
% The first argument must have some text to create a set of control sequences with it. The third argument is the required name argument. Redefining a shorthand creates a warning.
% \begin{macrocode}
- \ifx\@arga\@empty
+ \ifx\@arga@\@empty
\PackageError{nameauth}%
{environment nameauth: Control sequence missing}%
\fi
\@nameauth@Error{##3}{environment nameauth}%
- \ifcsname\@arga\endcsname
+ \ifcsname\@arga@\endcsname
\PackageWarning{nameauth}%
{environment nameauth: Shorthand macro already exists}%
\fi
% \end{macrocode}
-% Set up shorthands according to name form. We have to use \cmd{\expandafter}, not the \(\epsilon\)-\TeX{} way, due to \cmd{\protected@edef} in the naming macros.
+% Set up shorthands according to name form. We have to use \cmd{\ex}, not the \(\epsilon\)-\TeX{} way, due to \cmd{\protected@edef} in the naming macros.
+% \newpage
%
-% We begin with mononyms and non-Western names that use the new syntax. We use one \cmd{\expandafter} per token because we only have one argument to expand first.
+% We begin with mononyms and non-Western names that use the new syntax. We use one \cmd{\ex} per token because we only have one argument to expand first.
% \begin{macrocode}
- \ifx\@testd\@empty
- \ifx\@testb\@empty
- \ex\csgdef\ex{\ex\@arga\ex}%
+ \ifx\@testd@\@empty
+ \ifx\@testb@\@empty
+ \ex\csgdef\ex{\ex\@arga@\ex}%
\ex{\ex\NameauthName\ex{\the\@nameauth@etoksc}}%
- \ex\csgdef\ex{\ex L\ex\@arga\ex}%
+ \ex\csgdef\ex{\ex\@larga@\ex}%
\ex{\ex\@nameauth@FullNametrue%
\ex\NameauthLName\ex{\the\@nameauth@etoksc}}%
- \ex\csgdef\ex{\ex S\ex\@arga\ex}%
+ \ex\csgdef\ex{\ex\@sarga@\ex}%
\ex{\ex\@nameauth@FirstNametrue%
\ex\NameauthFName\ex{\the\@nameauth@etoksc}}%
\else
% \end{macrocode}
-% Next we have Western names with no alternate names. Here we have two arguments to expand in reverse order, so we need three, then one uses of \cmd{\expandafter} per token.
+% Next we have Western names with no alternate names. Here we have two arguments to expand in reverse order, so we need three, then one uses of \cmd{\ex} per token.
% \begin{macrocode}
- \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@arga\ex\ex\ex}%
+ \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@arga@\ex\ex\ex}%
\ex\ex\ex{\ex\ex\ex\NameauthName%
\ex\ex\ex[\ex\the\ex\@nameauth@etoksb\ex]%
\ex{\the\@nameauth@etoksc}}%
- \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex L\ex\ex\ex\@arga%
- \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\@nameauth@FullNametrue%
+ \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@larga@\ex\ex\ex}%
+ \ex\ex\ex{\ex\ex\ex\@nameauth@FullNametrue%
\ex\ex\ex\NameauthLName%
\ex\ex\ex[\ex\the\ex\@nameauth@etoksb\ex]%
\ex{\the\@nameauth@etoksc}}%
- \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex S\ex\ex\ex\@arga%
- \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\@nameauth@FirstNametrue%
+ \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@sarga@\ex\ex\ex}%
+ \ex\ex\ex{\ex\ex\ex\@nameauth@FirstNametrue%
\ex\ex\ex\NameauthFName%
\ex\ex\ex[\ex\the\ex\@nameauth@etoksb\ex]%
\ex{\the\@nameauth@etoksc}}%
\fi
\else
% \end{macrocode}
-% Below are ``native'' Eastern names with alternates and the older syntax. Again, we have three or one use of \cmd{\expandafter} per step before the respective arguments.
+% Below are ``native'' Eastern names with alternates and the older syntax. Again, we have three or one use of \cmd{\ex} per step before the respective arguments.
% \begin{macrocode}
- \ifx\@testb\@empty
- \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@arga\ex\ex\ex}%
+ \ifx\@testb@\@empty
+ \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@arga@\ex\ex\ex}%
\ex\ex\ex{\ex\ex\ex\NameauthName%
\ex\ex\ex{\ex\the\ex\@nameauth@etoksc\ex}%
\ex[\the\@nameauth@etoksd]}%
- \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex L\ex\ex\ex\@arga%
- \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\@nameauth@FullNametrue%
+ \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@larga@\ex\ex\ex}%
+ \ex\ex\ex{\ex\ex\ex\@nameauth@FullNametrue%
\ex\ex\ex\NameauthLName%
\ex\ex\ex{\ex\the\ex\@nameauth@etoksc\ex}%
\ex[\the\@nameauth@etoksd]}%
- \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex S\ex\ex\ex\@arga%
- \ex\ex\ex}\ex\ex\ex{\ex\ex\ex\@nameauth@FirstNametrue%
+ \ex\ex\ex\csgdef\ex\ex\ex{\ex\ex\ex\@sarga@\ex\ex\ex}%
+ \ex\ex\ex{\ex\ex\ex\@nameauth@FirstNametrue%
\ex\ex\ex\NameauthFName%
\ex\ex\ex{\ex\the\ex\@nameauth@etoksc\ex}%
\ex[\the\@nameauth@etoksd]}%
\else
% \end{macrocode}
-% Here are Western names with alternates. We have three arguments to expand, so we have seven, three, and one respective use of \cmd{\expandafter}.
+% \newpage\noindent
+% Here are Western names with alternates. We have three arguments to expand, so we have seven, three, and one respective use of \cmd{\ex}.
% \begin{macrocode}
\ex\ex\ex\ex\ex\ex\ex\csgdef\ex\ex\ex\ex\ex\ex\ex{%
- \ex\ex\ex\ex\ex\ex\ex\@arga\ex\ex\ex\ex\ex\ex\ex}%
+ \ex\ex\ex\ex\ex\ex\ex\@arga@\ex\ex\ex\ex\ex\ex\ex}%
\ex\ex\ex\ex\ex\ex\ex{\ex\ex\ex\ex\ex\ex\ex\NameauthName%
\ex\ex\ex\ex\ex\ex\ex[\ex\ex\ex\the%
\ex\ex\ex\@nameauth@etoksb\ex\ex\ex]%
\ex\ex\ex{\ex\the\ex\@nameauth@etoksc\ex}%
\ex[\the\@nameauth@etoksd]}%
\ex\ex\ex\ex\ex\ex\ex\csgdef\ex\ex\ex\ex\ex\ex\ex{%
- \ex\ex\ex\ex\ex\ex\ex L\ex\ex\ex\ex\ex\ex\ex\@arga%
- \ex\ex\ex\ex\ex\ex\ex}\ex\ex\ex\ex\ex\ex\ex{%
+ \ex\ex\ex\ex\ex\ex\ex\@larga@\ex\ex\ex\ex\ex\ex\ex}%
+ \ex\ex\ex\ex\ex\ex\ex{%
\ex\ex\ex\ex\ex\ex\ex\@nameauth@FullNametrue%
\ex\ex\ex\ex\ex\ex\ex\NameauthLName%
\ex\ex\ex\ex\ex\ex\ex[\ex\ex\ex\the\ex\ex\ex%
@@ -7817,8 +9342,8 @@ the README.txt or README for more information.
\ex\ex\ex{\ex\the\ex\@nameauth@etoksc\ex}%
\ex[\the\@nameauth@etoksd]}%
\ex\ex\ex\ex\ex\ex\ex\csgdef\ex\ex\ex\ex\ex\ex\ex{%
- \ex\ex\ex\ex\ex\ex\ex S\ex\ex\ex\ex\ex\ex\ex\@arga%
- \ex\ex\ex\ex\ex\ex\ex}\ex\ex\ex\ex\ex\ex\ex{%
+ \ex\ex\ex\ex\ex\ex\ex\@sarga@\ex\ex\ex\ex\ex\ex\ex}%
+ \ex\ex\ex\ex\ex\ex\ex{%
\ex\ex\ex\ex\ex\ex\ex\@nameauth@FirstNametrue%
\ex\ex\ex\ex\ex\ex\ex\NameauthFName%
\ex\ex\ex\ex\ex\ex\ex[\ex\ex\ex\the\ex\ex\ex%
@@ -7832,7 +9357,1495 @@ the README.txt or README for more information.
% \end{macrocode}
% \end{environment}
% \Finale
-\endinput
-%\iffalse
+% \endinput
%</package>
-%\fi
+%<*examples>
+%<<examplesvb
+\documentclass[oneside]{article}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Backward compatibility for older distributions of LaTeX.
+%
+% Include the iftex package only if it exists. If the iftex
+% package is older than 2019, include additional packages
+% that aid using multiple LaTeX engines.
+%
+\IfFileExists{iftex.sty}{\usepackage{iftex}}{}
+\unless\ifdefined\RequireTUTeX
+ \usepackage{ifxetex}
+ \usepackage{ifluatex}
+ \usepackage{ifpdf}
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Compatibility for multiple LaTeX engines.
+%
+\ifxetex
+ \usepackage{fontspec}
+ \usepackage{polyglossia}
+ \setdefaultlanguage{american}
+\else
+ \ifluatex
+ \ifpdf
+ \usepackage{fontspec}
+ \usepackage{polyglossia}
+ \setdefaultlanguage{american}
+ \else
+ \IfFileExists{utf8-2018.def}{}
+ {\usepackage[utf8]{inputenc}}
+ \usepackage[TS1,T1]{fontenc}
+ \usepackage[american]{babel}
+ \usepackage{lmodern}
+ \fi
+ \else
+ \IfFileExists{utf8-2018.def}{}
+ {\usepackage[utf8]{inputenc}}
+ \usepackage[TS1,T1]{fontenc}
+ \usepackage[american]{babel}
+ \usepackage{lmodern}
+ \fi
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Remainder of package inclusions
+%
+\usepackage[textwidth=137mm,textheight=237mm,
+ right=25mm,marginparwidth=39mm,nohead]{geometry}
+\usepackage{booktabs}
+\usepackage{colortbl}
+\usepackage{index}
+\usepackage{nameauth}[2020/11/23]
+\usepackage{verbatim}
+\usepackage{xcolor}
+\colorlet{grey}{black!7!white}
+\usepackage[colorlinks=true]{hyperref}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We set up indexing, put margin paragraphs on the left,
+% and set up the counter for line numbering in verbatim
+% environments.
+%
+\makeindex
+\newindex{per}{rdx}{rnd}{Index of Persons}
+\renewcommand\NameauthIndex{\index[per]}
+\reversemarginpar
+\newcounter{VerbLine}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Global definitions of conditionals for examples
+% For Scipio Africanus
+\newif\ifSkipGens
+\newif\ifNoGens
+\newif\ifSkipAgnomen
+\newif\ifNoAgnomen
+% For Thomas Jefferson
+\newif\ifGenitive
+\newif\ifDoGen
+% For George Washington/Mustafa Kemal
+\newif\ifNoTag
+% For William Shakespeare
+\newif\ifSpecialFN
+\newif\ifSpecialSN
+\newif\ifRevertSN
+% For advanced hooks
+\newif\ifFbox
+\newif\ifFirstCap
+\newif\ifInHook
+\Fboxtrue
+\newif\ifCaps
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Global definitions of macros for examples
+% For Scipio Africanus
+\newcommand*\SCIPi{\ifNoGens
+ Publius\else Publius Cornelius\fi}
+\newcommand*\SCIPii{\ifNoAgnomen
+ Scipio\else Scipio Africanus\fi}
+\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
+\newcommand*\CSA{\ifNoGens\ifNoAgnomen
+ Scipio\else
+ Scipio Africanus\fi
+ \else\ifNoAgnomen
+ Cornelius Scipio\else
+ Cornelius Scipio Africanus\fi\fi}
+\ExcludeName[Publius]{\noexpand\CSA}
+% For Thomas Jefferson
+\newcommand\JEFF{\ifDoGen\textSC{Jefferson's}\else\textSC{Jefferson}\fi}
+% For William Shakespeare
+\newcommand*\WM{\ifSpecialFN Wm.\else William\fi}
+\newcommand*\SHK{\ifRevertSN \textSC{Shakespeare}\else
+ \ifSpecialSN \noexpand\AltCaps{t}he Bard\else
+ \textSC{Shakespeare}\fi\fi}
+\newcommand*\Revert{\RevertSNtrue}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We include a few macros from ltxdoc.cls and doc.sty.
+% These are copyright by the LaTeX dev team.
+%
+\makeatletter
+\DeclareRobustCommand\meta[1]{%
+ \ensuremath\langle
+ \ifmmode \expandafter \nfss@text \fi
+ {%
+ \meta@font@select
+ \edef\meta@hyphen@restore
+ {\hyphenchar\the\font\the\hyphenchar\font}%
+ \hyphenchar\font\m@ne
+ \language\l@nohyphenation
+ #1\/%
+ \meta@hyphen@restore
+ }\ensuremath\rangle
+}
+\def\meta@font@select{\itshape}
+\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\providecommand\marg[1]{%
+ {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{%
+ {\ttfamily[}\meta{#1}{\ttfamily]}}
+\providecommand\parg[1]{%
+ {\ttfamily(}\meta{#1}{\ttfamily)}}
+\makeatother
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We establish name shorthands. Note the heavy use of \noexpand
+% in the macro arguments below. This is intrinsic to the proper
+% function of such arguments (advanced alternate formatting).
+%
+\begin{nameauth}
+ \< Adams & John & \noexpand\textSC{Adams} & >
+ \< SDJR & Sammy & \noexpand\textSC{Davis}, \noexpand\textSC{Jr}. & >
+ \< Dem & & Demetrius, I & >
+ \< deSmet & Pierre-Jean & \noexpand\Fbox{\noexpand\AltCaps{d}e~Smet} & >
+ \< HAR & & Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid} & >
+ \< Harnack & Adolf & Harnack & >
+ \< Jeff & Thomas & \noexpand\JEFF & >
+ \< Mencius & & \noexpand\textSC{Mencius} & >
+ \< Scipio & \noexpand\SCIPi & \noexpand\SCIPii & >
+ \< OScipio & Publius & \noexpand\CSA & >
+ \< Shak & \noexpand\WM & \noexpand\SHK & >
+ \< Sutorius & Quintus & \noexpand\SUTOR & >
+ \< Wash & George & Washington & >
+\end{nameauth}
+%
+% We could add name info database tags (text tags) either
+% in the preamble or in the document environment. We will do
+% the latter in this example file.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Below we establish sort tags for names. We also can do that
+% later on in the body text. Note again the consistent use of
+% \noexpand with alternate formatting.
+%
+\PretagName[John]{\noexpand\textSC{Adams}}{Adams, John}
+\PretagName[Sammy]{\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}{Davis, Sammy, Jr.}
+\PretagName{Demetrius, I}{Demetrius 1}
+\PretagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}{de~Smet, Pierre-Jean}
+\PretagName{Harun, \noexpand\textSC{\noexpand\AltCaps{a}l-Rashid}}{Harun al-Rashid}
+\PretagName[Thomas]{\noexpand\JEFF}{Jefferson, Thomas}
+\PretagName{\noexpand\textSC{Mencius}}{Mencius}
+\PretagName{\noexpand\textSC{Meng}, Ke}{Meng Ke}
+\PretagName[\noexpand\SCIPi]{\noexpand\SCIPii}{Scipio Africanus}
+\PretagName[Publius]{\noexpand\CSA}{Cornelius Scipio Africanus}
+\PretagName[Quintus]{\noexpand\SUTOR}{Naevius Sutorius}
+\PretagName[\noexpand\WM]{\noexpand\SHK}{Shakespeare, William}
+\PretagName{Vlad, Ţepeş}{Vlad Tepes}
+\TagName[John]{\noexpand\textSC{Adams}}{, president}
+\TagName{Demetrius, I}{ Soter, king}
+\TagName[Thomas]{\noexpand\JEFF}{, president}
+\TagName{Vlad, II}{ Dracul}
+\TagName{Vlad, III}{ Dracula}
+\TagName[Martin]{Van Buren}{, president}
+\TagName[Ulysses S.]{Grant}{, president}
+\TagName[George]{Washington}{, president}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We set up line numbering in verbatim environments.
+%
+\makeatletter
+\newcommand*\ClearNum{\def\verbatim@processline{\the\verbatim@line\par}}
+\newcommand*\StartNum{\setcounter{VerbLine}{0}\def\verbatim@processline{\stepcounter{VerbLine}\leavevmode\llap{\footnotesize\normalfont\theVerbLine\quad}\the\verbatim@line\par}}
+\newcommand*\ContinueNum{\def\verbatim@processline{\stepcounter{VerbLine}\leavevmode\llap{\footnotesize\normalfont\theVerbLine\quad}\the\verbatim@line\par}}
+\makeatother
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The default verbatim format is no line numbers.
+% We add title, author, and date.
+%
+\ClearNum
+\title{\bfseries Longer Examples}
+\author{Charles P. Schaum}
+\date{2020/11/23}
+
+\begin{document}
+\maketitle
+
+\phantomsection
+\pdfbookmark[1]{\contentsname}{toc}
+\tableofcontents
+\newpage
+
+\section{Particles}
+
+First we use variants with the \meta{Alternate} argument:
+
+\NameAddInfo{Demetrius, I}{ Soter}
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\NameAddInfo{Demetrius, I}{ Soter}
+\PretagName{Demetrius, I}{Demetrius 1}
+\TagName{Demetrius, I}{ Soter, king}
+\begin{nameauth}
+\< Dem & & Demetrius, I & >
+\end{nameauth}
+\end{verbatim}
+
+ \smallskip
+ \begin{tabular}{ll}\toprule
+ \cmd{\Dem[I Soter]} & \Dem[I Soter]\\
+ \rowcolor{grey}%
+ \cmd{\LDem} & \LDem\\
+ \cmd{\Dem} & \Dem\\\bottomrule
+ \end{tabular}
+ \end{quote}
+
+\begingroup%
+\makeatletter
+\renewcommand*\NamesFormat[1]{%
+ \begingroup%
+ \protected@edef\temp{\endgroup%
+ {#1\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]%
+ }%
+ }%
+ \temp%
+}
+\makeatother
+For a more automated approach, we use ``text tags'':
+
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\makeatletter
+\makeatletter
+\renewcommand*\NamesFormat[1]{%
+ \begingroup%
+ \protected@edef\temp{\endgroup%
+ {#1\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]%
+ }%
+ }%
+ \temp%
+}
+\makeatother
+\end{verbatim}
+
+\smallskip
+ \begin{tabular}{ll}\toprule
+ \cmd{\ForgetThis}\cmd{\Dem} & \ForgetThis\Dem\\
+ \rowcolor{grey}%
+ \cmd{\LDem} & \LDem\\
+ \cmd{\Dem} & \Dem\\\bottomrule
+ \end{tabular}
+\end{quote}
+\endgroup
+
+\vfil
+\noindent And now for something completely different\dots
+
+ We mention the Electric Boogaloo\index{Boogaloo, Electric}
+ by \Name{Ollie~\& Jerry}.\\
+
+\noindent The index references made here will put:
+
+ ``Boogaloo, Electric'' in the main index
+
+ and ``\ShowIdxPageref*{Ollie~\& Jerry}'' in the index of names.
+\newpage
+
+\section{Roman Names}
+
+ We define all macros and conditionals used in naming macro arguments in the preamble. We use \cmd{\noexpand} in the naming macro arguments to prevent error. Since we do not use \cmd{\CapThis} in the examples below, we skip alternate formatting for simplicity, yet we still recommend it:
+ \begin{quote}\small
+ \StartNum
+ \begin{verbatim}
+\newif\ifSkipGens
+\newif\ifNoGens
+\newif\ifSkipAgnomen
+\newif\ifNoAgnomen
+\newcommand*\SCIPi{\ifNoGens
+ Publius\else Publius Cornelius\fi}
+\newcommand*\SCIPii{\ifNoAgnomen
+ Scipio\else Scipio Africanus\fi}
+\newcommand*\ScipioOnly{\SkipAgnomentrue\Scipio}
+\begin{nameauth}
+ \< Scipio & \noexpand\SCIPi & \noexpand\SCIPii & >
+\end{nameauth}
+\PretagName[\noexpand\SCIPi]{\noexpand\SCIPii}{Scipio Africanus}\end{verbatim}
+ \end{quote}
+
+ We begin a new scope below, redefining the formatting hooks, which affect only names printed in the text. If the local Boolean flags are false, one gets longer name forms. If the flags are true, one gets shorter forms. This approach allows the global state of the flags to be false by default, meaning that one need not remember to set any of them true in the preamble. That results in one less thing to remember, and one less problem to fix.
+\begingroup
+\renewcommand*\NamesFormat[1]
+ {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
+ \global\SkipGensfalse\global\SkipAgnomenfalse}
+\renewcommand*\MainNameHook[1]
+ {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
+ \global\SkipGensfalse\global\SkipAgnomenfalse}
+ \begin{quote}\small
+ \ContinueNum
+ \begin{verbatim}
+\renewcommand*\NamesFormat[1]
+ {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
+ \global\SkipGensfalse\global\SkipAgnomenfalse}
+\renewcommand*\MainNameHook[1]
+ {\ifSkipGens\NoGenstrue\fi\ifSkipAgnomen\NoAgnomentrue\fi#1%
+ \global\SkipGensfalse\global\SkipAgnomenfalse}\end{verbatim}
+ \end{quote}
+
+ The index always shows the name determined by the global state of \cmd{\NoGens} and \cmd{\NoAgnomen}, which we set up as false, meaning a maximally long name form. In the body text we have:
+ \begin{quote}\small
+ \ForgetThis\ScipioOnly\ \cmd{\ScipioOnly} was born around 236 \textsc{bc} into the Scipio branch of the Cornelius clan, one of six large patrician clans. \ScipioOnly\ \cmd{\ScipioOnly} rose to military fame during the Second Punic War. Thereafter he was known as \Scipio\ \cmd{\Scipio}.
+ \end{quote}
+
+ Below we show more information about popular name forms by way of comparison with scholarly name forms.\medskip
+
+ The \textit{Oxford Classical Dictionary} and other scholarly sources index according to the \textit{nomen}. That approach moves the \textit{nomen} from \meta{FNN} to \meta{SNN}.
+
+ The two methods do not clash \textit{per se} in the text, but they make incompatible index entries. In this case, since we have indexed \ScipioOnly\ under the popular form above, we use \cmd{\ExcludeName} to exclude the scholarly form below.
+
+ In the document preamble we define the following Boolean flags and macros. We use a nested conditional in \meta{SNN}. The default still is to show all names so that they can be indexed that way:
+ \begin{quote}\small
+ \StartNum
+ \begin{verbatim}
+\newif\ifSkipGens % These flags remain the same as above.
+\newif\ifNoGens
+\newif\ifSkipAgnomen
+\newif\ifNoAgnomen
+\global\def\CSA{\ifNoGens\ifNoAgnomen
+ Scipio\else
+ Scipio Africanus\fi
+ \else\ifNoAgnomen
+ Cornelius Scipio\else
+ Cornelius Scipio Africanus\fi\fi}
+\ExcludeName[Publius]{\noexpand\CSA}
+\begin{nameauth}
+ \< OScipio & Publius & \noexpand\CSA & > % O for Oxford
+\end{nameauth}
+\PretagName[Publius]{\noexpand\CSA}{Cornelius Scipio Africanus}\end{verbatim}
+ \end{quote}
+
+ We keep the same formatting macros that we defined above. By the way, these formatting macros could work with regular names as well as Roman names, e.g., \LDem, because they have no side effects.
+
+ The scholarly form of Roman names has a different name pattern, so it is not compatible with the popular version. Nevertheless, we show what the index entries would be in a normal \LaTeX\ document without hyperlinks:
+ \begin{quote}\small\IndexActual{@}
+ \textbf{Simplified Name Patterns:}\\
+ Scholarly: \texttt{\ShowPattern[Publius]{\noexpand\CSA}}\\
+ \setbox0\hbox{Scholarly:}\hbox to \wd0{Popular:\hfill} \texttt{\ShowPattern[\noexpand\SCIPi]{\noexpand\SCIPii}}\\
+
+ \textbf{Full Index Entries:}
+ \UntagName[Publius]{\noexpand\CSA}
+ \UntagName[\noexpand\SCIPi]{\noexpand\SCIPii}\\
+ Scholarly:\\ \hbox{}\quad\texttt{\ShowIdxPageref[Publius]{\noexpand\CSA}}\\
+ Popular:\\ \hbox{}\quad\texttt{\ShowIdxPageref[\noexpand\SCIPi]{\noexpand\SCIPii}}
+ \TagName[Publius]{\noexpand\CSA}{\string|hyperpage}
+ \TagName[\noexpand\SCIPi]{\noexpand\SCIPii}{\string|hyperpage}\\
+
+ \textbf{Basic Index Entries:}\\
+ \UntagName[Publius]{\noexpand\CSA}
+ Scholarly:\\ \hbox{}\quad\ShowIdxPageref*[Publius]{\noexpand\CSA}\\
+ Popular:\\ \hbox{}\quad\ShowIdxPageref*[\noexpand\SCIPi]{\noexpand\SCIPii}
+ \end{quote}
+
+ Below we compare some differences between the scholarly and popular forms, and how to get equivalent forms in the text while understanding that they would be two separate forms in the index.
+ \begin{center}\small
+ \begin{tabular}{p{0.51\textwidth}@{\ \ }l}
+ \multicolumn{2}{l}{\textbf{First use:}}\\
+ scholarly:\dotfill \cmd{\OScipio} & \OScipio\\
+ popular:\dotfill \cmd{\Scipio} & \ForgetThis\Scipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use:}}\\
+ scholarly:\dotfill \cmd{\OScipio} & \OScipio\\
+ scholarly:\dotfill \cmd{\SkipGenstrue}\cmd{\OScipio} & \SkipGenstrue\OScipio\\
+ popular:\dotfill \cmd{\Scipio} & \SkipGenstrue\Scipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use, full, no \textit{agnomen}:}}\\
+ scholarly:\dotfill \cmd{\SkipAgnomentrue}\cmd{\LOScipio} & \SkipAgnomentrue\LOScipio\\
+ popular:\dotfill \cmd{\SkipAgnomentrue}\cmd{\LScipio} & \SkipAgnomentrue\LScipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use, shortest forms:}}\\
+ scholarly:\dotfill \cmd{\SkipAgnomentrue}\cmd{\OScipio} & \SkipAgnomentrue\OScipio\\
+ \hfill\cmd{\SkipGenstrue}\cmd{\SkipAgnomentrue}\cmd{\OScipio} & \SkipGenstrue\SkipAgnomentrue\OScipio\\
+ popular:\dotfill \cmd{\SkipAgnomentrue}\cmd{\Scipio\ } & \SkipAgnomentrue\Scipio\\[2ex]
+
+ \multicolumn{2}{l}{\textbf{Subsequent use, personal name:}}\\
+ scholarly:\dotfill \cmd{\SOScipio} & \SOScipio\\
+ popular:\dotfill \cmd{\SScipio} & \SScipio\\
+ popular:\dotfill \cmd{\SkipGenstrue}\cmd{\SScipio} & \SkipGenstrue\SScipio
+ \end{tabular}
+ \end{center}
+ \endgroup
+\newpage
+
+\section{Inflected Name Forms}
+
+\begingroup
+Below we use alternate formatting, sort index entries, and set up a cross-reference, then redefine the hook macros locally.
+\AltFormatActive
+ \renewcommand*\NamesFormat[1]{\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
+ \renewcommand*\MainNameHook[1]{\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
+ \begin{quote}\small
+ \StartNum
+ \begin{verbatim}
+\begin{nameauth}
+ \< Jeff & Thomas & \noexpand\JEFF & >
+\end{nameauth}
+\PretagName[Thomas]{\noexpand\JEFF}{Jefferson, Thomas}
+\TagName[Thomas]{\noexpand\JEFF}{, president}
+\renewcommand*\NamesFormat[1]
+ {\ifGenitive\DoGentrue\fi#1\global\Genitivefalse}
+\renewcommand*\MainNameHook[1]
+ {\ifGenitive\DoGentrue\fi\AltOff#1\global\Genitivefalse}
+
+Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
+\Genitivetrue\Jeff\ reputation has declined in recent decades.
+\end{verbatim}
+
+ \smallskip
+ Consider \Genitivetrue\Jeff\ legacy. More on \Jeff\ later.
+ \Genitivetrue\Jeff\ reputation has declined in recent decades.
+ \end{quote}
+\AltFormatInactive
+\endgroup
+\newpage
+
+\section{Example Reference Work}
+
+Below we use alternate formatting, sort index entries, set up a cross-reference, and define a reference article macro:
+
+\AltFormatActive
+\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
+\PretagName{\textSC{Misora}, Hibari}{Misora Hibari}
+\PretagName[Heinz]{\textSC{Rühmann}}{Ruehmann, Heinz}
+\PretagName[Heinrich Wilhelm]{\textSC{Rühmann}}%
+ {Ruehmann, Heinrich Wilhelm}
+\IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
+ {\textSC{Rühmann}, Heinz}%
+\newcommand{\RefArticle}[3]{%
+ \def\check{#2}%
+ \ifx\check\empty
+ \noindent\ForgetThis#1\ #3
+ \else
+ \noindent\ForgetThis#1\ #2\ #3
+ \fi
+}
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\AltFormatActive
+\PretagName[Greta]{\textSC{Garbo}}{Garbo, Greta}
+\PretagName{\textSC{Misora}, Hibari}{Misora Hibari}
+\PretagName[Heinz]{\textSC{Rühmann}}{Ruehmann, Heinz}
+\PretagName[Heinrich Wilhelm]{\textSC{Rühmann}}%
+ {Ruehmann, Heinrich Wilhelm}
+\IndexRef[Heinrich Wilhelm]{\textSC{Rühmann}}%
+ {\textSC{Rühmann}, Heinz}%
+\newcommand{\RefArticle}[3]{%
+ \def\check{#2}%
+ \ifx\check\empty
+ \noindent\ForgetThis#1\ #3
+ \else
+ \noindent\ForgetThis#1\ #2\ #3
+ \fi
+}
+\end{verbatim}
+\end{quote}
+
+\cmd{\RefArticle} prints only the first and third arguments if the second is empty, else it prints all three. We determine what those arguments mean by including specific naming macros. That includes using \cmd{\RevComma} for Western names, but not for Eastern ones.
+
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\RefArticle
+ {\RevComma\Name[Greta]{\textSC{Garbo}}}
+ {}
+ {(18 September 1905\,--\,15 April 1990) was a Swedish
+ film actress during the 1920s and 1930s.}
+
+\RefArticle
+ {\Name{\textSC{Misora}, Hibari}}
+ {}
+ {(W: ``\RevName\Name*{\textSC{Misora}, Hibari}'';
+ 29 May 1937\,--\,24 June 1989) was a Japanese singer
+ and actress noted for her positive message.}
+
+\RefArticle
+ {\RevComma\Name[Heinrich Wilhelm]{\textSC{Rühmann}}}
+ {``\SubvertThis\ForceName\FName[Heinz]{\textSC{Rühmann}}''}
+ {(7 March 1902\,--\,3 October 1994) was a German actor
+ in over 100 films.}
+\AltFormatInactive
+\end{verbatim}
+\end{quote}
+
+\begin{quote}\small
+\RefArticle
+ {\RevComma\Name[Greta]{\textSC{Garbo}}}
+ {}
+ {(18 September 1905\,--\,15 April 1990) was a Swedish
+ film actress during the 1920s and 1930s.}
+
+\RefArticle
+ {\Name{\textSC{Misora}, Hibari}}
+ {}%
+ {(W: ``\RevName\Name*{\textSC{Misora}, Hibari}'';
+ 29 May 1937\,--\,24 June 1989) was a Japanese singer
+ and actress noted for her positive message.}
+
+\RefArticle
+ {\RevComma\Name[Heinrich Wilhelm]{\textSC{Rühmann}}}
+ {``\SubvertThis\ForceName\FName[Heinz]{\textSC{Rühmann}}''}
+ {(7 March 1902\,--\,3 October 1994) was a German actor
+ in over 100 films.}
+\end{quote}
+
+\AltFormatInactive
+\newpage
+
+\section{Beamer MWE}
+One must use the macros that control and detect names, otherwise name forms will change as one advances the slides:
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\documentclass{beamer}
+\usepackage{nameauth}
+\mode<presentation>
+\beamerdefaultoverlayspecification{<+->}
+
+\begin{document}
+
+\begin{frame}{Move Text Without Retyping Names}
+ \begin{itemize}\footnotesize
+ \item<1-> Original\ForgetName[George]{Washington}%
+ \ForgetName[George]{Washington's}\\
+ This version of \Name[Ulysses S.]{Grant} changes.
+ \begin{enumerate}
+ \item<2-> \IfMainName[George]{Washington's}{He}%
+ {\Name[George]{Washington}}
+ became the first president
+ of the United States.
+ \item<3-> \IfMainName[George]{Washington}{His}%
+ {\SkipIndex\Name*[George]{Washington's}}
+ military successes during the Seven Years War
+ readied him to command the army
+ of the Continental Congress.
+ \end{enumerate}
+ \item<1-> Reordered\ForgetName[George]{Washington}%
+ \ForgetName[George]{Washington's}\\
+ This version of \ForgetThis\Name[Ulysses S.]{Grant}
+ does not change.
+ \begin{enumerate}
+ \item<3-> \IfMainName[George]{Washington}{His}%
+ {\SkipIndex\Name*[George]{Washington's}}
+ military successes during the Seven Years War
+ readied him to command the army
+ of the Continental Congress.
+ \item<2-> \IfMainName[George]{Washington's}{He}%
+ {\Name[George]{Washington}}
+ became the first president
+ of the United States.
+ \end{enumerate}
+ \end{itemize}
+\end{frame}
+
+\end{document}
+\end{verbatim}
+\IndexName[George]{Washington}
+\IndexName[Ulysses S.]{Grant}
+\end{quote}
+
+The overlays, numbered progressively from one to three, begin by deleting name control sequence patterns. Uncontrolled names will change. Name conditionals ensure specific, context-dependent forms based on what name has appeared. These conditionals allow the text to be order-independent.
+\newpage
+
+\section{Hooks: Intro}
+\label{sec:Hooksi}
+
+Here we show that something more complex than a font switch can occur in \cmd{\NamesFormat}. Below we put the first mention of a name in boldface, along with a marginal notation if possible.
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\let\OldFormat\NamesFormat
+\renewcommand*\NamesFormat[1]{\textbf{#1}\unless\ifinner
+ \marginpar{\raggedleft\scriptsize #1}\fi}
+\PretagName{Vlad, Ţepeş}{Vlad Tepes} % for accented names
+\TagName{Vlad, II}{ Dracul} % for index information
+\TagName{Vlad, III}{ Dracula}
+\end{verbatim}
+
+\medskip Within the document after the preamble:
+\let\OldFormat\NamesFormat
+\renewcommand*\NamesFormat[1]{\textbf{#1}\unless\ifinner
+ \marginpar{\raggedleft\scriptsize #1}\fi}
+\ContinueNum
+\begin{verbatim}\Name{Vlad, III}[III Dracula], known as
+\AKA{Vlad III}{Vlad, Ţepeş} (the Impaler)
+after his death, was the son of \Name{Vlad, II}[II Dracul],
+a member of the Order of the Dragon. Later references to
+``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
+\end{verbatim}
+
+\Name{Vlad, III}[III Dracula], known as
+\AKA{Vlad III}{Vlad, Ţepeş} (the Impaler)
+after his death, was the son of \Name{Vlad, II}[II Dracul],
+a member of the Order of the Dragon. Later references to
+``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
+
+\let\NamesFormat\OldFormat
+\begin{verbatim}\let\NamesFormat\OldFormat\end{verbatim}
+\end{quote}
+Now we have reverted to the default \cmd{\NamesFormat} and we get:
+\begin{itemize}
+ \item \cmd{\ForgetThis}\cmd{\Name\{Vlad, III\}[III Dracula]}\dotfill \ForgetThis\Name{Vlad, III}[III Dracula]
+ \item \cmd{\Name*\{Vlad, III\}}\dotfill \Name*{Vlad, III}
+ \item \cmd{\Name\{Vlad, III\}}\dotfill \Name{Vlad, III}
+\end{itemize}
+We also set up the cross-reference \cmd{\IndexRef\{Dracula\}\{Vlad III\}}\IndexRef{Dracula}{Vlad III}.
+\newpage
+
+\section{Hooks: Life Dates}
+\label{sec:Hooksii}
+\begingroup
+Here we add name conditionals and ``text tags'' to add information to names when desired. The example \cmd{\NamesFormat} below adds a text tag to the first occurrences of main-matter names.
+
+Below we use the three token registers available in \textsf{nameauth} to use the name conditional macros. In \cmd{\AKA} these token registers are copies of the \textbf{last} three arguments, corresponding to the pseudonym. We assume that we will not be using the \texttt{alwaysformat} option, meaning that we only call this hook once for a first use of \cmd{\AKA}. We also use a different formatting for the naming macros on the one hand and \cmd{\AKA} on the other:
+
+The first use of a name is in small caps. Text tags are in boldface with naming macros, and roman with \cmd{\AKA}. Just because we set up a cross-reference does not mean that we have to use \cmd{\AKA}. We use \cmd{\ForceName} as needed with \cmd{\AKA}. In the document preamble we set up the following:
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\newif\ifNoTag
+\makeatletter
+\renewcommand*\NamesFormat[1]{\begingroup%
+ \protected@edef\temp{\endgroup\textsc{#1}%
+ \unless\ifNoTag
+ \if@nameauth@InName
+ {\bfseries\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
+ \if@nameauth@InAKA
+ {\normalfont\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
+ \fi}\temp\global\NoTagfalse%
+}
+\makeatother
+\let\FrontNamesFormat\NamesFormat
+\end{verbatim}
+\end{quote}
+\makeatletter
+\renewcommand*\NamesFormat[1]{\begingroup%
+ \protected@edef\temp{\endgroup\textsc{#1}%
+ \unless\ifNoTag
+ \if@nameauth@InName
+ {\bfseries\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
+ \if@nameauth@InAKA
+ {\normalfont\noexpand\NameQueryInfo
+ [\unexpanded\expandafter{\the\@nameauth@toksa}]
+ {\unexpanded\expandafter{\the\@nameauth@toksb}}
+ [\unexpanded\expandafter{\the\@nameauth@toksc}]}\fi
+ \fi}\temp\global\NoTagfalse}%
+\makeatother
+\let\FrontNamesFormat\NamesFormat
+
+We print tags in the first use hooks unless \cmd{\NoTag} is set true. This method uses the two \(\epsilon\)-\TeX{} primitives \cmd{\noexpand} and \cmd{\unexpanded} to avoid repetition of \cmd{\expandafter}. Since \textsf{nameauth} depends on \textsf{etoolbox}, we assume \(\epsilon\)-\TeX.
+
+Before we can refer to any text tags, we must create them. Using the approach above, we include a leading space in the text tags. The leading space is needed only when a text tag appears.\footnote{Another way to add that space is to put it in the conditional path of the formatting hook and leave it out of the text tags entirely: \dots\texttt{\{ \}}\cmd{\noexpand}\cmd{\NameQueryInfo}\dots}
+We also set up a cross-reference, which we will use regardless of whether we also use \cmd{\AKA}. The cross-reference will be created only once and skipped thereafter:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\NameAddInfo[George]{Washington}{ (1732--99)}
+\NameAddInfo[Mustafa]{Kemal}{ (1881--1938)}
+\NameAddInfo{Atatürk}{ (in 1934, a special surname)}
+\IndexRef{Atatürk}{Kemal, Mustafa}
+\end{verbatim}
+\end{quote}
+\NameAddInfo[George]{Washington}{ (1732--99)}
+\NameAddInfo[Mustafa]{Kemal}{ (1881--1938)}
+\NameAddInfo{Atatürk}{ (in 1934, a special surname)}
+\IndexRef{Atatürk}{Kemal, Mustafa}
+\pagebreak
+
+Now we begin with the first example, which, after all the setup, looks deceptively simple, but highly reusable without extra work:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\ForgetThis\Wash held office 1789--97.
+No tags: \Wash.\\
+First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.\\
+Subsequent use with format and dates: \ForceName\Wash.
+\end{verbatim}
+
+\smallskip
+\ForgetThis\Wash\ held office 1789--97.\\
+No tags: \Wash.\\
+First use, dates suppressed: \NoTagtrue\ForgetThis\Wash.\\
+Subsequent use with format and dates: \ForceName\Wash.
+\end{quote}
+
+Since we already set up a cross-reference with \cmd{\IndexRef}, we can use just the the naming macros with ``Atatürk'' and get the desired formatting without any page references in the index:
+
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\Name[Mustafa]{Kemal} was granted the name
+\Name{Atatürk}. We mention \Name[Mustafa]{Kemal}
+and \Name{Atatürk} again.
+
+First use, no tag:
+\NoTagtrue\ForgetThis\Name{Atatürk}.
+\end{verbatim}
+
+\smallskip
+\Name[Mustafa]{Kemal} was granted the name
+\Name{Atatürk}. We mention \Name[Mustafa]{Kemal}
+and \Name{Atatürk} again.
+
+First use, no tag:
+\NoTagtrue\ForgetThis\Name{Atatürk}.
+\end{quote}
+
+Since we set up distinct formatting for \cmd{\AKA} (\cmd{\normalfont} instead of boldface for text tags associated with cross-references), we now simulate the \texttt{formatAKA} package option and use \cmd{\ForceName} with \cmd{\AKA}:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\makeatletter\@nameauth@AKAFormattrue\makeatother
+\ForgetThis\Name[Mustafa]{Kemal} was granted the name
+\ForceName\AKA[Mustafa]{Kemal}{Atatürk}. We mention
+\Name[Mustafa]{Kemal} and \AKA[Mustafa]{Kemal}{Atatürk} again.
+
+First use, no tag:
+\NoTagtrue\ForceName\AKA[Mustafa]{Kemal}{Atatürk}.
+\end{verbatim}
+
+\smallskip
+\makeatletter\@nameauth@AKAFormattrue\makeatother
+\ForgetThis\Name[Mustafa]{Kemal} was granted the name
+\ForceName\AKA[Mustafa]{Kemal}{Atatürk}. We mention
+\Name[Mustafa]{Kemal} and \AKA[Mustafa]{Kemal}{Atatürk} again.
+
+First use, no tag:
+\NoTagtrue\ForceName\AKA[Mustafa]{Kemal}{Atatürk}.
+\end{quote}
+
+We show an alternate part of this example on the next page that does not appear in the manual, but works identically to that above.
+\newpage
+
+We change the look of the page reference just to see if it works. Since we are in a local scope, note the use of \cmd{\global}:
+
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\global\def\fett#1{\textbf{\sffamily #1}}
+\TagName[Mustafa]{Kemal}{|fett}
+\end{verbatim}
+\end{quote}
+\global\def\fett#1{\textbf{\sffamily #1}}
+\TagName[Mustafa]{Kemal}{|fett}
+
+This version does not use $\epsilon$-\TeX primitives. We ``forget'' names as needed and replay the text on the previous page with the new version:
+
+\makeatletter
+\renewcommand*\NamesFormat[1]{%
+ \let\ex\expandafter%
+ \textsc{#1}%
+ \if@nameauth@InName
+ \ifNoTag
+ \else
+ \bfseries%
+ \ex\ex\ex\ex\ex\ex\ex\NameQueryInfo\ex\ex\ex\ex\ex\ex\ex[%
+ \ex\ex\ex\the\ex\ex\ex\@nameauth@toksa\ex\ex\ex]%
+ \ex\ex\ex{\ex\the\ex\@nameauth@toksb\ex}%
+ \ex[\the\@nameauth@toksc]%
+ \fi\fi
+ \if@nameauth@InAKA
+ \ifNoTag
+ \else
+ \normalfont%
+ \ex\ex\ex\ex\ex\ex\ex\NameQueryInfo\ex\ex\ex\ex\ex\ex\ex[%
+ \ex\ex\ex\the\ex\ex\ex\@nameauth@toksa\ex\ex\ex]%
+ \ex\ex\ex{\ex\the\ex\@nameauth@toksb\ex}%
+ \ex[\the\@nameauth@toksc]%
+ \fi\fi
+ \global\NoTagfalse}
+\makeatother
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\newif\ifNoTag
+\makeatletter
+\renewcommand*\NamesFormat[1]{%
+ \let\ex\expandafter%
+ \textsc{#1}%
+ \if@nameauth@InName
+ \ifNoTag
+ \else
+ \bfseries%
+ \ex\ex\ex\ex\ex\ex\ex\NameQueryInfo\ex\ex\ex\ex\ex\ex\ex[%
+ \ex\ex\ex\the\ex\ex\ex\@nameauth@toksa\ex\ex\ex]%
+ \ex\ex\ex{\ex\the\ex\@nameauth@toksb\ex}%
+ \ex[\the\@nameauth@toksc]%
+ \fi\fi
+ \if@nameauth@InAKA
+ \ifNoTag
+ \else
+ \normalfont%
+ \ex\ex\ex\ex\ex\ex\ex\NameQueryInfo\ex\ex\ex\ex\ex\ex\ex[%
+ \ex\ex\ex\the\ex\ex\ex\@nameauth@toksa\ex\ex\ex]%
+ \ex\ex\ex{\ex\the\ex\@nameauth@toksb\ex}%
+ \ex[\the\@nameauth@toksc]%
+ \fi\fi
+ \global\NoTagfalse}
+\makeatother
+\end{verbatim}
+
+\smallskip
+With \cmd{\Name}:\\
+\ForgetThis\Name[Mustafa]{Kemal} was granted the name
+\ForgetThis\Name{Atatürk}. We mention \Name[Mustafa]{Kemal}
+and \Name{Atatürk} again.
+
+First use, no tag: \NoTagtrue\ForgetThis\Name{Atatürk}.\bigskip
+
+With \cmd{\AKA}:\\
+\makeatletter\@nameauth@AKAFormattrue\makeatother
+\ForgetThis\Name[Mustafa]{Kemal} was granted the name
+\ForceName\AKA[Mustafa]{Kemal}{Atatürk}. We mention
+\Name[Mustafa]{Kemal} and \AKA[Mustafa]{Kemal}{Atatürk} again.
+
+First use, no tag: \NoTagtrue\ForceName\AKA[Mustafa]{Kemal}{Atatürk}.
+\end{quote}
+
+Now we end the scope.
+\endgroup
+\newpage
+
+\section{Hooks: Advanced}
+\label{sec:Hooksiii}
+\AltFormatActive
+In this section we invoke \cmd{\AltFormatActive} and create several scopes containing respective examples. Some macros in this section normally should be defined in a document preamble. We define them locally and ensure that names do not use them when they are undefined. This is not best practices, but it makes sense for this manual's need for multiple redefinitions.
+
+\begin{center}\bfseries Continental Format: User-Defined\end{center}
+\phantomsection
+\begingroup
+The user must implement this final step. We use \cmd{\AltFormatActive}, then redefine \cmd{\MainNameHook} to have small caps on by default in the index and first uses in the text, then off in subsequent uses in the text:
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\renewcommand*\MainNameHook{\AltOff}
+\let\FrontNameHook\MainNameHook
+\end{verbatim}
+\end{quote}
+\renewcommand*\MainNameHook{\AltOff}
+\let\FrontNameHook\MainNameHook
+
+Usually, we set up the names and any related macros in the preamble:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\begin{nameauth}
+ \< Adams & John & \noexpand\textSC{Adams} & >
+ \< SDJR & Sammy & \noexpand\textSC{Davis},
+ \noexpand\textSC{Jr}. & >
+ \< HAR & & Harun, \noexpand\textSC%
+ {\noexpand\AltCaps{a}l-Rashid} & >
+ \< Mencius & & \noexpand\textSC{Mencius} & >
+\end{nameauth}
+\end{verbatim}
+\end{quote}
+
+Likewise in the preamble, we must ensure that these names are sorted properly in the index. When sorting names, be sure to use \cmd{\noexpand} as well:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\PretagName[John]{\noexpand\textSC{Adams}}{Adams, John}
+\PretagName[Sammy]%
+ {\noexpand\textSC{Davis}, \noexpand\textSC{Jr}.}%
+ {Davis, Sammy, Jr.}
+\PretagName{Harun, \noexpand\textSC%
+ {\noexpand\AltCaps{a}l-Rashid}}{Harun al-Rashid}
+\PretagName{\noexpand\textSC{Mencius}}{Mencius}
+\end{verbatim}
+\end{quote}
+
+\begin{center}
+\small\noindent\begin{tabular}{llll}\toprule
+ First & Next & Long & Short \\\midrule
+ \cmd{\Adams} & \cmd{\Adams} & \cmd{\LAdams} & \cmd{\SAdams}\\
+ \Adams & \Adams & \LAdams & \SAdams\\
+ \rowcolor{grey}\cmd{\SDJR} & \cmd{\SDJR} & \cmd{\LSDJR} & \cmd{\SSDJR}\\
+ \rowcolor{grey}\SDJR & \SDJR & \LSDJR & \SSDJR\\
+ \cmd{\HAR} & \cmd{\HAR} & \cmd{\LHAR} & \cmd{\SHAR}\\
+ \HAR & \HAR & \LHAR & \SHAR\\
+ \rowcolor{grey}\cmd{\Mencius} & \cmd{\Mencius} & \cmd{\LMencius} & \cmd{\SMencius}\\
+ \rowcolor{grey}\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
+\end{tabular}
+\end{center}
+
+\begin{itemize}\small
+ \item Punctuation detection works: \ForceName\LSDJR. Also \LSDJR. Then \ForceName\SDJR. Now \SDJR. (We used \cmd{\ForceName} for formatting.)
+ \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Just \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
+ \item \cmd{\RevComma}\cmd{\LAdams} yields \RevComma\LAdams. All the reversing macros work.
+ \item \cmd{\ForceName}\cmd{\ForceFN}\cmd{\SHAR} produces \ForceName\ForceFN\SHAR. \cmd{\ForceFN}\cmd{\SHAR} produces \ForceFN\SHAR. If we add \cmd{\CapThis} we get \CapThis\ForceName\ForceFN\SHAR\ and \CapThis\ForceFN\SHAR.
+ \item One must include all the macros in the name arguments.
+\end{itemize}
+
+\makeatletter\@nameauth@AKAFormattrue\makeatother
+With the \texttt{formatAKA} option we refer to \Mencius\ as \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke} and \AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\PretagName{\noexpand\textSC{Meng}, Ke}{Meng Ke}
+\AKA{\noexpand\textSC{Mencius}}{\noexpand\textSC{Meng}, Ke}
+\end{verbatim}
+\end{quote}
+\makeatletter\@nameauth@AKAFormatfalse\makeatother
+\endgroup
+
+\begin{center}\bfseries Rolling Your Own: Basic\end{center}
+\phantomsection
+\begingroup
+Here we set out on the path to custom formatting by using package features that have been implemented already. When redesigning formatting hooks, we recommend using \cmd{\AltFormatActive} or the \texttt{altformat} option to enable alternate formatting and prevent \cmd{\CapThis} from breaking custom formatting macros.
+
+We recommend examining the internal package flag \cmd{\@nameauth@DoAlt}, which activates alternate formatting, \cmd{\@nameauth@DoCaps}, which handles capitalization, and finally \cmd{\@nameauth@InHook}, which is true when the formatting hooks are called. If you create your own macros, they will look similar.
+
+Normally we define a macro for use in name arguments in the document preamble in order to ensure that it is always defined:
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\makeatletter
+\newcommand*\Fbox[1]{%
+ \if@nameauth@DoAlt\protect\fbox{#1}\else#1\fi
+}
+\makeatother
+\end{verbatim}
+\end{quote}
+\makeatletter
+\newcommand*\Fbox[1]{%
+ \if@nameauth@DoAlt\protect\fbox{#1}\else#1\fi
+}
+\makeatother
+
+Since \cmd{\AltCaps} is part of \textsf{nameauth}, you need not reinvent that wheel. Just use it. The final step is redefining the hooks, which can be as simple as:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\renewcommand*\MainNameHook{\AltOff}
+\let\FrontNameHook\MainNameHook
+\end{verbatim}
+\end{quote}
+\renewcommand*\MainNameHook{\AltOff}
+\let\FrontNameHook\MainNameHook
+
+When sorting names, be sure to use \cmd{\noexpand} as shown previously:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\begin{nameauth}
+ \< deSmet & Pierre-Jean &
+ \noexpand\Fbox{\noexpand\AltCaps{d}e~Smet} & >
+\end{nameauth}
+
+\PretagName[Pierre-Jean]%
+ {\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}%
+ {de~Smet, Pierre-Jean}
+\end{verbatim}
+\end{quote}
+
+Now we show how the formatting hooks work in the body text. One can check the index to see that it is formatted properly and consistently.
+
+\begin{center}\small
+\begin{tabular}{rll}\toprule
+ First & \cmd{\deSmet} & \deSmet\\
+ \rowcolor{grey}Next & \cmd{\deSmet} & \deSmet\\
+ Long & \cmd{\LdeSmet} & \LdeSmet\\
+ \rowcolor{grey}Short & \cmd{\SdeSmet} & \SdeSmet\\
+ & \cmd{\CapThis}\cmd{\deSmet} & \CapThis\deSmet\\
+ \rowcolor{grey} & \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet} & \ForceName\CapThis\deSmet\\\bottomrule
+\end{tabular}
+\end{center}
+
+With \cmd{\CapThis}\cmd{\deSmet}: \CapThis\deSmet. \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet}: \ForceName\CapThis\deSmet.\medskip
+
+Some formatting, such as the use of \cmd{\textSC}, is fairly standard. Other formatting, such as \cmd{\Fbox} above, is ornamental and may be handled better with custom features, but those features appear only in the text.
+\endgroup
+
+\begin{center}\bfseries Rolling Your Own: Intermediate\end{center}
+\phantomsection
+\begingroup
+``Intermediate'' and ``advanced'' refer to the way that formatting hooks were designed before version 3.1. The user-accessible \cmd{\NameParser} builds a printed name from the internal, locally-scoped macros \cmd{\FNN}, \cmd{\SNN}, \cmd{\rootb} and \cmd{\suffb}.
+
+We create a hook that can ignore the output of \cmd{\@nameauth@Name}, which is the \texttt{\#1} in the hook dispatcher's code \cmd{\bgroup}\meta{Hook}\texttt{\{\#1\}}\cmd{\egroup}:
+\begin{quote}\small
+ \cmd{\renewcommand*}\meta{FirstHook}\texttt{[1]\{\dots}\cmd{\NameParser}\texttt{\dots\}}
+\end{quote}
+
+With the \texttt{altformat} option or \cmd{\AltFormatActive} we can design a subsequent-use hook that deactivates formatting inside of it:
+\begin{quote}\small
+ \cmd{\renewcommand*}\meta{SubsequentHook}\texttt{[1]\{\dots}\cmd{\AltOff}\cmd{\NameParser}\texttt{\dots\}}
+\end{quote}
+
+If we used \cmd{\AltFormatActive*}, where the formatting macros are enabled, but deactivated, then we might want a hook that activates the macros:
+\begin{quote}\small
+ \cmd{\renewcommand*}\meta{Hook}\texttt{[1]\{\dots}\cmd{\AltOn}\cmd{\NameParser}\texttt{\dots\}}
+\end{quote}
+
+\makeatletter
+\renewcommand*\NamesFormat[1]{%
+ \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%
+ \unless\ifinner\marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNametrue%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNtrue\SpecialSNfalse%
+ \NameParser}%
+ \fi\global\RevertSNfalse}
+\renewcommand*\MainNameHook[1]{%
+ \AltOff\SpecialFNfalse\SpecialSNtrue#1%
+ \unless\ifinner
+ \unless\ifRevertSN
+ \marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNamefalse%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNfalse\SpecialSNfalse%
+ \NameParser}%
+ \fi
+ \fi\global\RevertSNfalse}
+\makeatother
+We begin in the document preamble by defining a series of conditionals and macros whose default expansion produces the index entry, yet whose other expansions occur only in the formatting hooks. Then we create a name that is composed only of macros, using \cmd{\noexpand} with \cmd{\WM} and \cmd{\SHK}. We use \cmd{\PretagName} to sort the names. \cmd{\Revert} is used to print a last name without a margin note.
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\newif\ifSpecialFN
+\newif\ifSpecialSN
+\newif\ifRevertSN
+\newcommand*\WM{\ifSpecialFN Wm.\else William\fi}
+\newcommand*\SHK{\ifRevertSN \textSC{Shakespeare}\else
+ \ifSpecialSN \noexpand\AltCaps{t}he Bard\else
+ \textSC{Shakespeare}\fi\fi}
+\newcommand*\Revert{\RevertSNtrue}
+
+\begin{nameauth}
+ \< Shak & \noexpand\WM & \noexpand\SHK & >
+\end{nameauth}
+
+\PretagName[\noexpand\WM]{\noexpand\SHK}{Shakespeare, William}
+\PretagName[Robert]{\textSC{Burns}}{Burns, Robert}
+\end{verbatim}
+\end{quote}
+
+Below we define the two formatting hooks that structure the ways in which these macros can expand when printed in the text. \cmd{\NamesFormat} allows only the canonical name via \cmd{\RevertSNfalse}, \cmd{\SpecialFNfalse}, and \cmd{\SpecialSNfalse}. We print the canonical name in the body text. If allowed, we print a margin paragraph with an alternate full name using \cmd{\NameParser} and two flags. Both hooks set \cmd{\RevertSNfalse} so that \cmd{\Revert} works on a per-name basis. The subsequent-use hook disables formatting with \cmd{\AltOff}, but it allows variant forms.
+
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\makeatletter
+\renewcommand*\NamesFormat[1]{%
+ \RevertSNfalse\SpecialFNfalse\SpecialSNfalse#1%
+ \unless\ifinner\marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNametrue%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNtrue\SpecialSNfalse%
+ \NameParser}%
+ \fi\global\RevertSNfalse}
+\renewcommand*\MainNameHook[1]{%
+ \AltOff\SpecialFNfalse\SpecialSNtrue#1%
+ \unless\ifinner
+ \unless\ifRevertSN
+ \marginpar{%
+ \footnotesize\raggedleft%
+ \@nameauth@FullNamefalse%
+ \@nameauth@FirstNamefalse%
+ \@nameauth@EastFNfalse%
+ \SpecialFNfalse\SpecialSNfalse%
+ \NameParser}%
+ \fi
+ \fi\global\RevertSNfalse}
+\makeatother
+\end{verbatim}
+
+\smallskip
+\Shak\ \cmd{\Shak} is the national poet of England in much the same way that \Name[Robert]{\textSC{Burns}} \cmd{\Name[Robert]\{}\cmd{\textSC\{Burns\}\}} is that of Scotland. With the latter's rise of influence in the 1800s, \Revert\Shak\ \cmd{\Revert}\cmd{\Shak} became known as ``\Shak'' \cmd{\Shak}.
+\end{quote}
+\endgroup
+
+\begin{center}\bfseries Rolling Your Own: Advanced\end{center}
+\phantomsection
+\begingroup
+Here is how formatting hooks were designed before version 3.0. Updating older hooks may be helpful, but is not necessary. We do not use the internal package macros. We only use \cmd{\NameParser} in the hooks to produce output. We still recommend using \cmd{\AltFormatActive} to mitigate errors. In the preamble, three flags replace package internals.\footnote{The internal flag \texttt{\textbackslash @nameauth@DoAlt} activates formatting, \cmd{\CapThis} sets \texttt{\textbackslash @nameauth@DoCaps} true, and \texttt{\textbackslash @nameauth@InHook} is set by the hook dispatcher.}
+Setting \texttt{\textbackslash Fboxtrue} is equivalent to using \cmd{\AltFormatActive}:
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\newif\ifFbox% Replaces \@nameauth@DoAlt
+\newif\ifFirstCap% Replaces \@nameauth@DoCaps
+\newif\ifInHook% Replaces \@nameauth@InHook
+\Fboxtrue
+\end{verbatim}
+\end{quote}
+
+\newcommand*\Fbox[1]{\ifFbox\protect\fbox{#1}\else#1\fi}
+Also in the preamble, the formatting macro is like what we have seen, except it refers to \texttt{\textbackslash ifFbox}:\footnote{We define \cmd{\Fbox} locally because it has multiple definitions, but are very careful where we use names with it.}
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\newcommand*\Fbox[1]{%
+ \ifFbox\protect\fbox{#1}\else#1\fi
+}
+\end{verbatim}
+\end{quote}
+
+\renewcommand*\AltCaps[1]{%
+ \ifInHook
+ \ifFirstCap\MakeUppercase{#1}\else#1\fi
+ \else
+ #1%
+ \fi
+}
+Our new \cmd{\AltCaps} works like the built-in version, except it does not use the internal macros and flags:
+ \begin{quote}\small
+ \ContinueNum
+ \begin{verbatim}
+\renewcommand*\AltCaps[1]{%
+ \ifInHook
+ \ifFirstCap\MakeUppercase{#1}\else#1\fi
+ \else
+ #1%
+ \fi
+}
+\end{verbatim}
+\end{quote}
+
+\renewcommand*\CapThis{\FirstCaptrue}
+\renewcommand*\NamesFormat[1]
+ {\InHooktrue\NameParser\global\FirstCapfalse}
+\renewcommand*\MainNameHook[1]
+ {\Fboxfalse\InHooktrue\NameParser\global\FirstCapfalse}
+\let\FrontNamesFormat\Namesformat
+\let\FrontNameHook\MainNameHook
+Here we redefine \cmd{\CapThis} to use our flag instead of the internal flag:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\renewcommand*\CapThis{\FirstCaptrue}
+\end{verbatim}
+\end{quote}
+
+We have to reproduce the logic and macros that the package would have provided. That means defining everything, including \cmd{\NamesFormat}, from scratch:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\renewcommand*\NamesFormat[1]
+ {\InHooktrue\NameParser\global\FirstCapfalse}
+\end{verbatim}
+\end{quote}
+
+Changes to \texttt{\textbackslash ifInHook} (default false) and \texttt{\textbackslash ifFbox} (default true) are local to the scope in which the hook macros are called. \texttt{\textbackslash ifFirstCap} must be set globally. Below we reproduce the logic of \cmd{\AltOff} before \cmd{\NameParser}:
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\renewcommand*\MainNameHook[1]
+{\Fboxfalse\InHooktrue\NameParser\global\FirstCapfalse}
+\end{verbatim}
+\end{quote}
+
+We avoid spurious index entries in the front matter by using the same hooks.
+\begin{quote}\small
+\ContinueNum
+\begin{verbatim}
+\let\FrontNamesFormat\Namesformat
+\let\FrontNameHook\MainNameHook
+\end{verbatim}
+\end{quote}
+
+Because we use \cmd{\noexpand}, our ``old-style'' macros will index the following names under the same entry as the ``new-style'' macros.
+\begin{center}\small
+\begin{tabular}{rll}\toprule
+ First & \cmd{\deSmet} & \ForgetThis\deSmet\\
+ \rowcolor{grey}Next & \cmd{\deSmet} & \deSmet\\
+ Long & \cmd{\LdeSmet} & \LdeSmet\\
+ \rowcolor{grey}Short & \cmd{\SdeSmet} & \SdeSmet\\
+ & \cmd{\CapThis}\cmd{\deSmet} & \CapThis\deSmet\\
+ \rowcolor{grey} & \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet} & \ForceName\CapThis\deSmet\\\bottomrule
+\end{tabular}
+\end{center}
+
+With \cmd{\CapThis}\cmd{\deSmet}: \CapThis\deSmet. \cmd{\ForceName}\cmd{\CapThis}\cmd{\deSmet}: \ForceName\CapThis\deSmet.\medskip
+
+We can reuse new-style names with old-style macros, shown below in abbreviated fashion. We keep the flags \texttt{\textbackslash ifFirstCap} and \texttt{\textbackslash ifInHook}. We also keep the redefined \cmd{\AltCaps}, \cmd{\CapThis}, and \cmd{\NamesFormat}. We then add:
+\Capstrue
+\renewcommand*\textSC[1]{%
+ \ifCaps\textsc{#1}\else#1\fi
+}
+\renewcommand*\MainNameHook[1]
+{%
+ \Capsfalse\InHooktrue\NameParser%
+ \global\FirstCapfalse%
+}
+\let\FrontNameHook\MainNameHook
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\newif\ifCaps
+\Capstrue
+\renewcommand*\textSC[1]{%
+ \ifCaps\textsc{#1}\else#1\fi
+}
+\renewcommand*\MainNameHook[1]
+{%
+ \Capsfalse\InHooktrue\NameParser%
+ \global\FirstCapfalse%
+}
+\let\FrontNameHook\MainNameHook
+\end{verbatim}
+\end{quote}
+
+The names below have the same declarations and index entries as they did above. They look and work the same but use different back-end macros:
+\begin{center}
+\small\noindent\begin{tabular}{llll}\toprule
+ First & Next & Long & Short \\\midrule
+ \ForgetThis\Adams & \Adams & \LAdams & \SAdams\\
+ \rowcolor{grey}\ForgetThis\SDJR & \SDJR & \LSDJR & \SSDJR\\
+ \ForgetThis\HAR & \HAR & \LHAR & \SHAR\\
+ \rowcolor{grey}\ForgetThis\Mencius & \Mencius & \LMencius & \SMencius\\\bottomrule
+\end{tabular}
+\end{center}
+
+\begin{itemize}\small
+ \item Punctuation detection works: \ForceName\LSDJR. Also \LSDJR. Then \ForceName\SDJR. Now \SDJR. (We used \cmd{\ForceName} for formatting.)
+ \item \cmd{\ForceName}\cmd{\DropAffix}\cmd{\LSDJR} gives \ForceName\DropAffix\LSDJR. Just \cmd{\DropAffix}\cmd{\LSDJR} gives \DropAffix\LSDJR.
+ \item \cmd{\RevComma}\cmd{\LAdams} yields \RevComma\LAdams. All the reversing macros work.
+ \item \cmd{\ForceName}\cmd{\ForceFN}\cmd{\SHAR} produces \ForceName\ForceFN\SHAR. \cmd{\ForceFN}\cmd{\SHAR} produces \ForceFN\SHAR. If we add \cmd{\CapThis} we get \CapThis\ForceName\ForceFN\SHAR\ and \CapThis\ForceFN\SHAR.
+\end{itemize}
+
+We now close the scope of this current example and resume normal formatting.
+\endgroup
+\AltFormatInactive
+\newpage
+
+\section{Customization}
+
+Assuming that redefining hooks and adding control sequences is insufficient, one could redesign the core name macros partially or wholly, then hook those modifications into the \textsf{nameauth} package without needing to patch the style file itself.
+
+All these macros are set by default to \cmd{\@nameauth@Name}, the internal name parser. \cmd{\Name}, or an unmodified shorthand, calls \cmd{\NameauthName}. \cmd{\Name*}, or an L-shorthand, sets \cmd{\@nameauth@FullNametrue}, then calls \cmd{\NameauthLName}. \cmd{\FName}, or an S-shorthand, sets \cmd{\@nameauth@FirstNametrue}, then calls \cmd{\NameauthFName}. One should not modify \cmd{\Name} and \cmd{\FName} directly.
+
+We use features of \textsf{xargs}. Below we introduce formatting that is additional to, inter-operative with, yet distinct from the formatting hooks:
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\makeatletter
+\newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \hbox to 4em{Normal: \hfill}%
+ \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+\newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \hbox to 4em{Long: \hfill}%
+ \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+\newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \hbox to 4em{Short: \hfill}%
+ \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+\makeatother
+\renewcommand*\NamesFormat[1]
+ {\hbox to 9em{\hfil\scshape#1\hfil}}
+\renewcommand*\MainNameHook[1]{\hbox to 9em{\hfil#1\hfil}}
+\renewcommand*\NameauthName{\MyName}
+\renewcommand*\NameauthLName{\MyLName}
+\renewcommand*\NameauthFName{\MyFName}
+\end{verbatim}
+
+\makeatletter
+\newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \hbox to 4em{Normal: \hfill}%
+ \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+\newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \hbox to 4em{Long: \hfill}%
+ \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+\newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \hbox to 4em{Short: \hfill}%
+ \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+\makeatother
+\renewcommand*\NamesFormat[1]{\hbox to 9em{\hfil\scshape#1\hfil}}
+\renewcommand*\MainNameHook[1]{\hbox to 9em{\hfil#1\hfil}}
+\renewcommand*\NameauthName{\MyName}%
+\renewcommand*\NameauthLName{\MyLName}%
+\renewcommand*\NameauthFName{\MyFName}
+
+\smallskip
+\cmd{\ForgetName[Adolf]\{Harnack\}}\ForgetName[Adolf]{Harnack}\\[1ex]
+\begin{tabular}{@{}rl}
+ \cmd{\Harnack} & \Harnack\\
+ \cmd{\LHarnack[Adolf von]} & \LHarnack[Adolf von]\\
+ \cmd{\Harnack} & \Harnack\\
+ \cmd{\SHarnack} & \SHarnack\\
+\end{tabular}
+\end{quote}
+\newpage
+
+\section{\protect\LaTeX\ Engines}
+
+We use \texttt{american} for the language; one should use one's own. We use Latin Modern. We could load \textsf{tikz} using \texttt{\textbackslash ifDoTikZ} to avoid crashing some \texttt{dvi} viewers in a \texttt{dvi}-only workflow.
+
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\IfFileExists{iftex.sty}{\usepackage{iftex}}{}
+\unless\ifdefined\RequireTUTeX
+ \usepackage{ifxetex}
+ \usepackage{ifluatex}
+ \usepackage{ifpdf}
+\fi
+
+\newif\ifDoTikZ % If dvi-only workflow
+\ifxetex
+ \usepackage{fontspec}
+ \usepackage{polyglossia}
+ \setdefaultlanguage{american} % Use own language
+ \usepackage{tikz}
+ \DoTikZtrue % If dvi-only workflow
+\else
+ \ifluatex
+ \ifpdf
+ \usepackage{fontspec}
+ \usepackage{polyglossia}
+ \setdefaultlanguage{american} % Use own language
+ \usepackage{tikz}
+ \DoTikZtrue % If dvi-only workflow
+ \else
+ \IfFileExists{utf8-2018.def}{}
+ {\usepackage[utf8]{inputenc}}
+ \usepackage[TS1,T1]{fontenc}
+ \usepackage[american]{babel} % Use own language
+ \usepackage{lmodern}
+ % Perhaps add \usepackage{tikz}
+ \fi
+ \else
+ \IfFileExists{utf8-2018.def}{}
+ {\usepackage[utf8]{inputenc}}
+ \usepackage[TS1,T1]{fontenc}
+ \usepackage[american]{babel} % Use own language
+ \usepackage{lmodern}
+ \ifpdf
+ \usepackage{tikz} % If dvi-only workflow
+ \DoTikZtrue % If dvi-only workflow
+ \fi
+ \fi
+\fi
+\end{verbatim}
+\end{quote}
+\newpage
+
+In the body text we can use something like the test below for:
+
+\begin{center}\fbox{\ifxetex doing \texttt{pdf} things\else \ifpdf doing \texttt{pdf} things\else doing \texttt{dvi} things\fi\fi}\end{center}
+
+\begin{quote}\small
+\begin{verbatim}
+\ifxetex
+ doing \texttt{pdf} things
+\else
+ \ifpdf
+ doing \texttt{pdf} things
+ \else
+ doing \texttt{dvi} things
+ \fi
+\fi\end{verbatim}
+\end{quote}
+
+The following equivalent conditional statements can help a macro or just the body text to work under multiple engines:
+\begin{quote}\small
+\StartNum
+\begin{verbatim}
+\ifxetex xelatex%
+\else
+ \ifluatex
+ \ifpdf lualatex (pdf)%
+ \else lualatex (dvi)%
+ \fi
+ \else
+ \ifpdf pdflatex%
+ \else latex (dvi)%
+ \fi
+ \fi
+\fi
+\end{verbatim}
+
+\StartNum
+\begin{verbatim}
+\unless\ifxetex
+ \unless\ifluatex
+ \ifpdf pdflatex%
+ \else latex (dvi)%
+ \fi
+ \else
+ \ifpdf lualatex (pdf)%
+ \else lualatex (dvi)%
+ \fi
+ \fi
+\else xelatex%
+\fi
+\end{verbatim}
+\end{quote}
+\newpage
+
+\phantomsection
+\addcontentsline{toc}{section}{Index of Persons}
+\printindex[per]
+
+\renewcommand\indexname{Index of Subjects}
+\phantomsection
+\addcontentsline{toc}{section}{Index of Subjects}
+\printindex
+
+\end{document}
+%examplesvb
+%</examples>
+\endinput
diff --git a/macros/latex/contrib/nameauth/nameauth.pdf b/macros/latex/contrib/nameauth/nameauth.pdf
index d33860b49e..63ce4add2a 100644
--- a/macros/latex/contrib/nameauth/nameauth.pdf
+++ b/macros/latex/contrib/nameauth/nameauth.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index d2425b4bb2..6ce7fd41b2 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 52949c1d76..d634e3ff1e 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -419,7 +419,7 @@ avec deux arguments.
\item Le premier argument est la taille de ce bloc avec la syntaxe $i$-$j$ où
$i$ est le nombre de rangées et $j$ le nombre de colonnes du bloc.
-\colorbox{yellow!50}{\bfseries Nouveau 5.6}\enskip Si cet argument est laissé
+\colorbox{yellow!30}{Nouveau 5.6}\enskip Si cet argument est laissé
blanc, la valeur par défaut est |1-1|. Si le nombre de rangées n'est pas
indiqué, le bloc s'étend jusqu'à la dernière rangée (idem pour les colonnes).
@@ -518,7 +518,8 @@ construction |wc{...}| de \pkg{array}).
\begin{BVerbatim}
\begin{NiceTabular}~emphase#{cwc{2cm}wc{3cm}c}@
rose & tulipe & marguerite & dahlia \\
-violette & \Block{2-2}{\LARGE\color{blue}De très jolies fleurs} & & souci \\
+violette
+& \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\
pervenche & & & lys \\
arum & iris & jacinthe & muguet
\end{NiceTabular}
@@ -529,12 +530,18 @@ arum & iris & jacinthe & muguet
\begin{center}
\begin{NiceTabular}{cwc{2cm}wc{3cm}c}
rose & tulipe & marguerite & dahlia \\
-violette & \Block{2-2}{\LARGE\color{blue}De très jolies fleurs} & & souci \\
+violette & \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\
pervenche & & & lys \\
arum & iris & jacinthe & muguet
\end{NiceTabular}
\end{center}
+\medskip
+\colorbox{yellow!50}{\bfseries Nouveau 5.7}\enskip Comme on le voit sur cet
+exemple, on peut fixer la couleur de fond avec la clé |fill| et la couleur du
+cadre avec la clé |draw|\footnote{Si la clé |draw| est utilisée sans valeur,
+c'est la couleur par défaut des filets de tableaux qui est utilisée.}. On peut
+aussi fixer l'épaisseur du trait avec la clé |line-width|.
@@ -590,7 +597,7 @@ Henri & 14 \\ \hline
\subsection{Les blocs mono-rangée}
-\colorbox{yellow!50}{\textbf{Nouveau 5.6}}\enskip Pour les blocs mono-rangée, la
+\colorbox{yellow!30}{Nouveau 5.6}\enskip Pour les blocs mono-rangée, la
hauteur (\emph{height}) et la profondeur (\emph{depth}) naturelles sont prises en
compte pour la hauteur et la largeur de la rangée en cours (comme le fait la
commande standard |\multicolumn| de LaTeX).
@@ -598,20 +605,26 @@ commande standard |\multicolumn| de LaTeX).
-\subsection{Les blocs mono-cellule}
+\subsection{Les blocs mono-case}
-Les blocs mono-cellule héritent des caractéristiques des blocs mono-colonne et
+Les blocs mono-case héritent des caractéristiques des blocs mono-colonne et
des blocs mono-rangée.
\medskip
-Il y a deux raisons à l'utilisation d'un bloc mono-cellule.
+On pourrait penser que des blocs d'une seule case n'ont aucune utilité mais, en
+fait, il y a plusieurs situations où leur utilisation peut présenter des avantages.
\begin{itemize}
-\item Un bloc mono-cellule permet d'utiliser la commande |\\| pour composer le
+\item Un bloc mono-case permet d'utiliser la commande |\\| pour composer le
bloc sur plusieurs lignes.
\item On peut utiliser l'option d'alignement horizontal du bloc pour déroger à
la consigne générale donnée dans le préambule pour cette colonne.
+
+\item On peut tracer un cadre autour du bloc avec la clé |draw| de la commande
+|\Block|.\footnote{Pour colorier le fond d'une case, il n'est pas besoin
+ d'utiliser un bloc mono-case : on peut utiliser la commande |\cellcolor| si la
+ clé |colortbl-like| est utilisée : voir p.~\pageref{colortbl-like}.}
\end{itemize}
\medskip
@@ -638,8 +651,8 @@ Balzac & 1799 \\
\end{NiceTabular}
\medskip
-On rappelle que si le premier argument obligatoire de |\Block| est laisssé
-blanc, alors le bloc est mono-cellule\footnote{On peut considérer que la valeur par
+On rappelle que si le premier argument obligatoire de |\Block| est laissé
+blanc, alors le bloc est mono-case\footnote{On peut considérer que la valeur par
défaut de ce premier argument obligatoire est |1-1|.}.
@@ -908,13 +921,14 @@ $\begin{pNiceMatrix}[vlines,rules/width=0.2pt]
La clé |hvlines| demande le tracé de tous les filets horizontaux et verticaux
(sauf dans les blocs et dans les blocs virtuels déterminés par des
-lignes en pointillés).
+lignes en pointillés et sauf les filets correspondants à des clés |draw| de
+commandes |\Block|, filets qui sont tracés avec leurs caractéristiques).
\medskip
\begin{Verbatim}
\begin{NiceTabular}{cccc}[~emphase#hvlines@,rules/color=blue,rules/width=1pt]
rose & tulipe & marguerite & dahlia \\
-violette & \Block{2-2}{\LARGE\color{blue} fleurs} & & souci \\
+violette & \Block[~emphase#draw=red@]{2-2}{\LARGE fleurs} & & souci \\
pervenche & & & lys \\
arum & iris & jacinthe & muguet
\end{NiceTabular}
@@ -923,7 +937,7 @@ arum & iris & jacinthe & muguet
\begin{center}
\begin{NiceTabular}{cccc}[hvlines,rules/color=blue,rules/width=1pt]
rose & tulipe & marguerite & dahlia \\
-violette & \Block{2-2}{\LARGE\color{blue} fleurs} & & souci \\
+violette & \Block[draw=red]{2-2}{\LARGE fleurs} & & souci \\
pervenche & & & lys \\
arum & iris & jacinthe & muguet
\end{NiceTabular}
@@ -1119,10 +1133,10 @@ tracés postérieurement (conformément à l'esprit du «modèle du peintre» de
PostScript et PDF). De ce point de vue, MuPDF (qui est utilisé par exemple par
SumatraPDF) donne de meilleurs résultats que Adobe Reader.
-\item Une fine ligne blanche semble apparaître entre deux cellules de même
-couleur. Ce phénomène se produit quand chaque cellule est coloriée avec sa
+\item Une fine ligne blanche semble apparaître entre deux cases de même
+couleur. Ce phénomène se produit quand chaque case est coloriée avec sa
propre instruction |fill| (opérateur |fill| de PostScript noté |f| en PDF).
-C'est le cas avec \pkg{colortbl} avec lequel chaque cellule est coloriée
+C'est le cas avec \pkg{colortbl} avec lequel chaque case est coloriée
individuellement même si on utilise |\columncolor| ou |\rowcolor|.
Concernant ce phénomène, Adobe Reader donne de meilleurs résultats que
@@ -1409,6 +1423,8 @@ On a utilisé le type de colonne |S| de \pkg{siunitx}.
\subsection{Outils de coloriage avec la syntaxe de colortbl}
+\label{colortbl-like}
+
On peut accéder aux outils de coloriage précédents avec une syntaxe proche de
celle proposée par \pkg{colortbl}. On doit pour cela utiliser la clé
|colortbl-like| dans l'environnement concerné.\footnote{Pour le moment, cette
@@ -2334,8 +2350,8 @@ Pour améliorer la lisibilité du code, une syntaxe alternative est proposée :
peut spécifier les instructions du |code-after| à la fin de l'environnement,
après le mot-clé |\CodeAfter|\footnote{Dans certaines circonstances, on doit
mettre |\omit \CodeAfter|, |\omit| étant un mot-clé de TeX qui annule le motif
- de la cellule courante.} (pour un exemple, voir page
-\pageref{exemple-CodeAfter}). \colorbox{yellow!50}{\textbf{Nouveau 5.5}}\enskip
+ de la case courante.} (pour un exemple, voir page
+\pageref{exemple-CodeAfter}). \colorbox{yellow!30}{Nouveau 5.5}\enskip
Avant la version 5.5, il fallait parfois mettre le mot-clé |\omit| devant
|\CodeAfter| dans certaines circonstances. Depuis la version 5.5, on ne doit
\emph{jamais} mettre |\omit|.
@@ -2457,7 +2473,7 @@ titre inséré par |\caption| dans un environnement |{table}| de LaTeX.
séparés par une virgule (comme avec l'option |multiple| de \pkg{footmisc} pour
les notes de pied de page).
-\item Si une commande |\tabularnote{...}| se trouve exactement à la fin d'une cellule
+\item Si une commande |\tabularnote{...}| se trouve exactement à la fin d'une case
(sans aucun espace après), l'appel de note est composé en débordement vers la
droite (cela peut permettre de mieux conserver l'alignement des contenus d'une
colonne).
@@ -2946,6 +2962,25 @@ d'éléments en verbatim (avec par exemple la commande
environnement de LaTeX qui se contente d'insérer des commandes avant et
après.}
+\subsection{Couleur des délimiteurs}
+
+Pour les environnements avec délimiteurs (|{pNiceArray}|, |{pNiceMatrix}|,
+etc.), il est possible de changer la couleur des délimiteurs avec la clé
+|delimiters-color|.
+
+\medskip
+\begin{BVerbatim}[boxwidth=12cm,baseline=c]
+$\begin{bNiceMatrix}[delimiters-color=red]
+1 & 2 \\
+3 & 4
+\end{bNiceMatrix}$
+\end{BVerbatim}
+$\begin{bNiceMatrix}[delimiters-color=red]
+1 & 2 \\
+3 & 4
+\end{bNiceMatrix}$
+
+
\subsection{L'environnement \{NiceArrayWithDelims\}}
En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un
@@ -2989,7 +3024,7 @@ lignes en pointillés entre les cases du tableau.
\textbf{Attention} : Par défaut, aucun nœud n'est créé dans une case vide.
\smallskip
-\colorbox{yellow!50}{\textbf{Nouveau 5.6}}\enskip
+\colorbox{yellow!30}{Nouveau 5.6}\enskip
Néanmoins, on peut forcer la création d'un nœud avec la commande
|\NotEmpty|.\footnote{Il faut toutefois remarquer qu'avec cette commande, la
case est considérée comme non vide, ce qui a des conséquences sur le tracé des
@@ -3396,9 +3431,9 @@ L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\foot
\medskip
Ces variables constituent le code du «|code-before|» et du «|code-after|». Le
-développeur peut donc les utiliser pour y ajouter du code à partir d'une cellule
+développeur peut donc les utiliser pour y ajouter du code à partir d'une case
du tableau (l'affectation devra être globale, ce qui permettra de sortir de la
-cellule, qui est un groupe au sens de TeX).
+case, qui est un groupe au sens de TeX).
\medskip
On remarquera que l'utilisation de |\g_nicematrix_code_before_tl| nécessite une
@@ -3407,7 +3442,7 @@ compilation supplémentaire (car les instructions sont écrites dans le fichier
\bigskip
\emph{Example} : On souhaite écrire une commande |\hatchcell| pour hachurer la
-cellule courante (avec un argument optionnel entre crochets pour la couleur des
+case courante (avec un argument optionnel entre crochets pour la couleur des
hachures). Il est possible de programmer une telle commande |\hatchcell| comme
suit, en utilisant explicitement la variable publique
|\g_nicematrix_code_before_tl| (ce code nécessite le chargement préalable de la
@@ -4072,67 +4107,35 @@ $\begin{pNiceArray}{cccc:c}
\end{multicols}
-\subsection{Comment surligner les cases}
+\subsection{Comment surligner les cases d'une matrice}
\label{highlight}
\medskip
-Les exemples suivants nécessitent d'avoir chargé Tikz (\pkg{nicematrix} ne
-charge que \textsc{pgf}) ainsi que la bibliothèque Tikz |fit|, ce qui peut se
-faire avec les deux instructions suivantes dans le préambule du document :
-
-\begin{verbatim}
-\usepackage{tikz}
-\usetikzlibrary{fit}
-\end{verbatim}
-
-
-
-\medskip
-Pour mettre en évidence une case, il est possible de «dessiner» l'un des nœuds
-(le «nœud normal», le «nœud moyen» ou le «nœud large»). Dans l'exemple suivant,
-on utilise les «nœuds larges» de la diagonale de la matrice (avec la clé de Tikz
-«|name suffix|», il est facile d'utiliser les «nœuds larges»).
-
-Nous redessinons les nœuds avec de nouveaux nœuds en utilisant la bibliothèque
-\pkg{fit} de Tikz. Comme nous voulons recréer des nœuds identiques aux premiers,
-nous devons fixer |inner sep = 0pt| (si on ne fait pas cela, les nouveaux nœuds
-seront plus grands que les nœuds d'origine créés par \pkg{nicematrix}).
+Pour mettre en évidence une case d'une matrice, il est possible de «dessiner»
+cette case avec la clé |draw| de la commande |\Block| (c'est l'un des usages des
+blocs mono-case\footnote{On rappelle que si le premier argument obligatoire de
+la commande |\Block| est laissé vide, le bloc est considéré comme mono-case}).
\label{exemple-CodeAfter}
\begin{Verbatim}
-$\begin{pNiceArray}{>{\strut}cccc}[create-large-nodes,margin,extra-margin = 2pt]
- a_{11} & a_{12} & a_{13} & a_{14} \\
- a_{21} & a_{22} & a_{23} & a_{24} \\
- a_{31} & a_{32} & a_{33} & a_{34} \\
- a_{41} & a_{42} & a_{43} & a_{44} \\
-\CodeAfter
- \begin{tikzpicture}[~emphase#name suffix = -large@,
- every node/.style = {draw,~emphase#inner sep = 0 pt@}]
- \node [fit = (1-1)] {} ;
- \node [fit = (2-2)] {} ;
- \node [fit = (3-3)] {} ;
- \node [fit = (4-4)] {} ;
- \end{tikzpicture}
+$\begin{pNiceArray}{>{\strut}cccc}[margin,rules/color=blue]
+~emphase#\Block[draw]{}{a_{11}}@ & a_{12} & a_{13} & a_{14} \\
+a_{21} & \Block[draw]{}{a_{22}} & a_{23} & a_{24} \\
+a_{31} & a_{32} & \Block[draw]{}{a_{33}} & a_{34} \\
+a_{41} & a_{42} & a_{43} & \Block[draw]{}{a_{44}} \\
\end{pNiceArray}$
\end{Verbatim}
%
-\[\begin{pNiceArray}{>{\strut}cccc}[create-large-nodes,margin,extra-margin = 2pt]
-a_{11} & a_{12} & a_{13} & a_{14} \\
-a_{21} & a_{22} & a_{23} & a_{24} \\
-a_{31} & a_{32} & a_{33} & a_{34} \\
-a_{41} & a_{42} & a_{43} & a_{44} \\
-\CodeAfter
-\begin{tikzpicture}[name suffix = -large,
- every node/.style = {draw,inner sep = 0 pt}]
- \node [fit = (1-1)] {} ;
- \node [fit = (2-2)] {} ;
- \node [fit = (3-3)] {} ;
- \node [fit = (4-4)] {} ;
-\end{tikzpicture}
+\[\begin{pNiceArray}{>{\strut}cccc}[margin,rules/color=blue]
+\Block[draw]{}{a_{11}} & a_{12} & a_{13} & a_{14} \\
+a_{21} & \Block[draw]{}{a_{22}} & a_{23} & a_{24} \\
+a_{31} & a_{32} & \Block[draw]{}{a_{33}} & a_{34} \\
+a_{41} & a_{42} & a_{43} & \Block[draw]{}{a_{44}} \\
\end{pNiceArray}\]
+
On remarquera que les traits que l'on vient de tracer sont dessinés \emph{après}
la matrice sans modifier la position des composantes de celle-ci. En revanche,
les traits tracés par |\hline|, le spécificateur «\verb+|+» ou les options
@@ -4140,15 +4143,29 @@ les traits tracés par |\hline|, le spécificateur «\verb+|+» ou les options
matrice.\footnote{Pour la commande |\cline|, voir la remarque
p.~\pageref{remark-cline}.}
-\vspace{1cm} Il est possible de colorier une rangée avec |\rowcolor| dans le
-|code-before| (ou avec |\rowcolor| dans la première case de la
-rangée). Les possibilités de réglages sont néanmoins limitées. C'est pourquoi
-nous présentons ici une autre méthode pour surligner une rangée de la matrice.
-Nous créons un nœud Tikz rectangulaire qui englobe les nœuds de la deuxième
-rangée en utilisant les outils de la bibliothèque Tikz \pkg{fit}. Ce nœud est
-rempli après la construction de la matrice. Pour que l'on puisse voir le texte
-\emph{sous} le nœud, nous devons utiliser la transparence avec le |blend mode|
-égal à |multiply|.
+\vspace{1cm}
+Il est possible de colorier une rangée avec |\rowcolor| dans le |code-before|
+(ou avec |\rowcolor| dans la première case de la rangée si on utilise la clé
+|colortbl-like|). Les possibilités de réglages sont néanmoins limitées. C'est
+pourquoi nous présentons ici une autre méthode pour surligner une rangée d'une
+matrice.
+
+\medskip
+Cet exemple et les suivants nécessitent d'avoir chargé Tikz (\pkg{nicematrix} ne
+charge que \textsc{pgf}) ainsi que la bibliothèque Tikz |fit|, ce qui peut se
+faire avec les deux instructions suivantes dans le préambule du document :
+
+\begin{verbatim}
+\usepackage{tikz}
+\usetikzlibrary{fit}
+\end{verbatim}
+
+\medskip
+Nous créons un nœud Tikz rectangulaire qui englobe les nœuds de la
+deuxième rangée en utilisant les outils de la bibliothèque Tikz \pkg{fit}. Ce
+nœud est rempli après la construction de la matrice. Pour que l'on puisse voir
+le texte \emph{sous} le nœud, nous devons utiliser la transparence avec le
+|blend mode| égal à |multiply|.
\tikzset{highlight/.style={rectangle,
@@ -4167,17 +4184,19 @@ rempli après la construction de la matrice. Pour que l'on puisse voir le texte
inner sep=1pt,
fit=~#1}}
-$\begin{bNiceMatrix}[~emphase#code-after = {\tikz \node [highlight = (2-1) (2-3)] {} ;}@]
+$\begin{bNiceMatrix}
0 & \Cdots & 0 \\
1 & \Cdots & 1 \\
-0 & \Cdots & 0
+0 & \Cdots & 0 \\
+~emphase#\CodeAfter \tikz \node [highlight = (2-1) (2-3)] {} ;@
\end{bNiceMatrix}$
\end{Verbatim}
-\[\begin{bNiceMatrix}[code-after = {\tikz \node [highlight = (2-1) (2-3)] {} ;}]
+\[\begin{bNiceMatrix}
0 & \Cdots & 0 \\
1 & \Cdots & 1 \\
-0 & \Cdots & 0
+0 & \Cdots & 0 \\
+\CodeAfter \tikz \node [highlight = (2-1) (2-3)] {} ;
\end{bNiceMatrix}\]
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index a8427171e2..b485a9139d 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{5.6}
-\def\myfiledate{2020/11/08}
+\def\myfileversion{5.7}
+\def\myfiledate{2020/11/23}
%
%
%<*batchfile>
@@ -459,7 +459,7 @@ version 2005/12/01 or later.
% $i$\verb|-|$j$ where $i$ is the number of rows of the block and $j$ its number
% of columns.
%
-% \colorbox{yellow!50}{\bfseries New 5.6}\enskip If this argument is empty, its
+% \colorbox{yellow!30}{New 5.6}\enskip If this argument is empty, its
% default value is |1-1|. If the number of rows is not specified, the block
% extends until the last row (idem for the columns).
%
@@ -558,7 +558,8 @@ version 2005/12/01 or later.
% \begin{BVerbatim}
% \begin{NiceTabular}~emphase#{cwc{2cm}wc{3cm}c}@
% rose & tulipe & marguerite & dahlia \\
-% violette & \Block{2-2}{\LARGE\color{blue}De très jolies fleurs} & & souci \\
+% violette
+% & \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\
% pervenche & & & lys \\
% arum & iris & jacinthe & muguet
% \end{NiceTabular}
@@ -569,12 +570,18 @@ version 2005/12/01 or later.
% \begin{center}
% \begin{NiceTabular}{cwc{2cm}wc{3cm}c}
% rose & tulipe & marguerite & dahlia \\
-% violette & \Block{2-2}{\LARGE\color{blue}De très jolies fleurs} & & souci \\
+% violette &
+% \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\
% pervenche & & & lys \\
% arum & iris & jacinthe & muguet
% \end{NiceTabular}
% \end{center}
%
+% \colorbox{yellow!50}{\bfseries New 5.7}\enskip As we can see on this example,
+% it's possible to fill the block by using the key |fill| and to draw the frame
+% with the key |draw|\footnote{If the key |draw| is used without value, the
+% default color the rules of the tabulars is used}. It's also possible to change
+% the width (thickness) of that rules with the key |line-width|.
%
% \subsection{The mono-column blocks}
%
@@ -628,7 +635,7 @@ version 2005/12/01 or later.
%
% \subsection{The mono-row blocks}
%
-% \colorbox{yellow!50}{\textbf{New 5.6}}\enskip For the mono-row blocks, the
+% \colorbox{yellow!30}{New 5.6}\enskip For the mono-row blocks, the
% natural height and depth are taken into account for the height and depth of
% the current row (as does a standard |\multicolumn| of LaTeX).
%
@@ -638,12 +645,18 @@ version 2005/12/01 or later.
% mono-column blocks.
%
% \medskip
-% There are two reasons to use a mono-column block:
+% At first sight, one may think that there is no point using a mono-cell block.
+% However, there are some good reasons to use such a block.
% \begin{itemize}
% \item It's possible to use the command |\\| in a (mono-cell) block.
%
% \item It's possible to use the option of horizontal alignment of the block in
% derogation of the type of column given in the preamble of the array.
+%
+% \item It's possible do draw a frame around the cell with the key |draw| of the
+% command |\Block|.\footnote{If one wishes to color the background of a unique
+% celle, there is no point using the command |\Block|: it's possible to use the
+% command |\cellcolor| (when the key |colortbl-like| is used).}
% \end{itemize}
%
% \bigskip
@@ -669,7 +682,7 @@ version 2005/12/01 or later.
% \medskip
% We recall that if the first mandatory argument of |\Block| is left blank, the
% block is mono-cell.\footnote{One may consider that the default value of the
-% first mandatory argument of |\Block| is |1-1|}
+% first mandatory argument of |\Block| is |1-1|.}
%
%
%
@@ -920,15 +933,17 @@ version 2005/12/01 or later.
% \subsection{The key hvlines}
% \label{hvlines}
%
-% The key |hvlines| draws all the vertical and horizontal rules excepted
-% in the blocks (and the virtual blocks determined by dotted lines).
+% The key |hvlines| draws all the vertical and horizontal rules (excepted
+% in the blocks and the virtual blocks determined by dotted lines and excepted
+% the rules corresponding of the frame of the blocks using the key |draw| which
+% are drawn with their own characteristics).
%
% \medskip
% \begin{Verbatim}
% \setlength{\arrayrulewidth}{1pt}
% \begin{NiceTabular}{cccc}[~emphase#hvlines@,rules/color=blue]
% rose & tulipe & marguerite & dahlia \\
-% violette & \Block{2-2}{\LARGE\color{blue} fleurs} & & souci \\
+% violette & \Block[draw=red]{2-2}{\LARGE fleurs} & & souci \\
% pervenche & & & lys \\
% arum & iris & jacinthe & muguet
% \end{NiceTabular}
@@ -938,7 +953,7 @@ version 2005/12/01 or later.
% \setlength{\arrayrulewidth}{1pt}
% \begin{NiceTabular}{cccc}[hvlines,rules/color=blue]
% rose & tulipe & marguerite & dahlia \\
-% violette & \Block{2-2}{\LARGE\color{blue} fleurs} & & souci \\
+% violette & \Block[draw=red]{2-2}{\LARGE fleurs} & & souci \\
% pervenche & & & lys \\
% arum & iris & jacinthe & muguet
% \end{NiceTabular}
@@ -2074,9 +2089,9 @@ version 2005/12/01 or later.
% \Vdots & \Ddots & \Vdots & \Hdotsfor{1} & \Vdots & \Ddots & \Vdots \\
% C[a_n^{(p)},a_1] & \Cdots & C[a_n^{(p)},a_n] & & C[a_n^{(p)},a_1^{(p)}] & \Cdots & C[a_n^{(p)},a_n^{(p)}]
% \end{bNiceMatrix}\]
-
-
-
+%
+%
+%
%
% \subsection{How to generate the continuous dotted lines transparently}
%
@@ -2314,7 +2329,7 @@ version 2005/12/01 or later.
% For the legibility of the code, an alternative syntax is provided: it's
% possible to give the instructions of the |\code-after| at the end of the
% environment, after the keyword |\CodeAfter| (for an example, cf.
-% p.~\pageref{example-CodeAfter}). \colorbox{yellow!50}{\textbf{New 5.5}}\enskip
+% p.~\pageref{example-CodeAfter}). \colorbox{yellow!30}{New 5.5}\enskip
% Before the version 5.5, it was necessary, in some circonstancies, to put the
% keyword |\omit| before |\CodeAfter|. Since version~5.5, one must never put~|\omit|.
%
@@ -2889,9 +2904,6 @@ version 2005/12/01 or later.
% TeX world, the spaces after a control sequence are discarded and the elements
% between curly braces are considered as a whole.
%
-% \bigskip
-% The following example has been composed with XeLaTeX with \pkg{unicode-math},
-% which allows the use of greek letters directly in the TeX source.
%
% \medskip
% \begin{scope}
@@ -2922,6 +2934,24 @@ version 2005/12/01 or later.
% environment of LaTeX which only put TeX commands before and after the content.}
%
%
+% \subsection{Color of the delimiters}
+%
+% For the environements with delimiters (|{pNiceArray}|, |{pNiceMatrix}|, etc.),
+% it's possible to change the color of the delimiters with the key
+% |delimiters-color|.
+%
+% \medskip
+% \begin{BVerbatim}[boxwidth=12cm,baseline=c]
+% $\begin{bNiceMatrix}[delimiters-color=red]
+% 1 & 2 \\
+% 3 & 4
+% \end{bNiceMatrix}$
+% \end{BVerbatim}
+% $\begin{bNiceMatrix}[delimiters-color=red]
+% 1 & 2 \\
+% 3 & 4
+% \end{bNiceMatrix}$
+%
%
% \subsection{The environment \{NiceArrayWithDelims\}}
%
@@ -2963,7 +2993,7 @@ version 2005/12/01 or later.
% \textbf{Caution} : By default, no node is created in a empty cell.
%
% \smallskip
-% \colorbox{yellow!50}{\textbf{New 5.6}}\enskip
+% \colorbox{yellow!30}{New 5.6}\enskip
% However, it's possible to impose the creation of a node with the command |\NotEmpty|.
% \footnote{One should note that, with that command, the cell is considered as
% non-empty, which has consequencies for the continuous dotted lines (cf.
@@ -4026,64 +4056,34 @@ version 2005/12/01 or later.
% \end{multicols}
%
%
-% \subsection{How to highlight cells of the matrix}
+% \subsection{How to highlight cells of a matrix}
%
%
% \label{highlight}
-% The following examples require Tikz (by default, \pkg{nicematrix} only loads
-% \textsc{pgf}) and the Tikz library |fit|. The following lines in the preamble
-% of your document do the job:
-% \begin{verbatim}
-% \usepackage{tikz}
-% \usetikzlibrary{fit}
-% \end{verbatim}
%
% \medskip
-% In order to highlight a cell of a matrix, it's possible to ``draw'' one of the
-% correspondant nodes (the ``normal node'', the ``medium node'' or the ``large
-% node''). In the following example, we use the ``large nodes'' of the diagonal
-% of the matrix (with the Tikz key ``|name suffix|'', it's easy to use the
-% ``large nodes'').
-%
-% We redraw the nodes with other nodes by using the Tikz library |fit|. Since we
-% want to redraw the nodes exactly, we have to set |inner sep = 0 pt| (if we
-% don't do that, the new nodes will be larger that the nodes created by
-% \pkg{nicematrix}).
+% In order to highlight a cell of a matrix, it's possible to ``draw'' that cell
+% with the key |draw| of the command |\Block| (this is one of the uses of a
+% mono-cell block\footnote{We recall that, if the first mandatory argument of
+% the command |\Block| is left empty, that means that the block is a mono-cell block}).
%
% \label{example-CodeAfter}
%
+%
% \begin{Verbatim}
-% $\begin{pNiceArray}{>{\strut}cccc}[create-large-nodes,margin,extra-margin = 2pt]
-% a_{11} & a_{12} & a_{13} & a_{14} \\
-% a_{21} & a_{22} & a_{23} & a_{24} \\
-% a_{31} & a_{32} & a_{33} & a_{34} \\
-% a_{41} & a_{42} & a_{43} & a_{44} \\
-% \CodeAfter
-% \begin{tikzpicture}[~emphase#name suffix = -large@,
-% every node/.style = {draw,~emphase#inner sep = 0 pt@}]
-% \node [fit = (1-1)] {} ;
-% \node [fit = (2-2)] {} ;
-% \node [fit = (3-3)] {} ;
-% \node [fit = (4-4)] {} ;
-% \end{tikzpicture}
+% $\begin{pNiceArray}{>{\strut}cccc}[margin,rules/color=blue]
+% ~emphase#\Block[draw]{}{a_{11}}@ & a_{12} & a_{13} & a_{14} \\
+% a_{21} & \Block[draw]{}{a_{22}} & a_{23} & a_{24} \\
+% a_{31} & a_{32} & \Block[draw]{}{a_{33}} & a_{34} \\
+% a_{41} & a_{42} & a_{43} & \Block[draw]{}{a_{44}} \\
% \end{pNiceArray}$
% \end{Verbatim}
-%
-% \[\begin{pNiceArray}{>{\strut}cccc}[create-large-nodes,margin,extra-margin = 2pt]
-% a_{11} & a_{12} & a_{13} & a_{14} \\
-% a_{21} & a_{22} & a_{23} & a_{24} \\
-% a_{31} & a_{32} & a_{33} & a_{34} \\
-% a_{41} & a_{42} & a_{43} & a_{44} \\
-% \CodeAfter
-% \begin{tikzpicture}[name suffix = -large,
-% every node/.style = {draw,inner sep = 0 pt}]
-% \node [fit = (1-1)] {} ;
-% \node [fit = (2-2)] {} ;
-% \node [fit = (3-3)] {} ;
-% \node [fit = (4-4)] {} ;
-% \end{tikzpicture}
+% \[\begin{pNiceArray}{>{\strut}cccc}[margin,rules/color=blue]
+% \Block[draw]{}{a_{11}} & a_{12} & a_{13} & a_{14} \\
+% a_{21} & \Block[draw]{}{a_{22}} & a_{23} & a_{24} \\
+% a_{31} & a_{32} & \Block[draw]{}{a_{33}} & a_{34} \\
+% a_{41} & a_{42} & a_{43} & \Block[draw]{}{a_{44}} \\
% \end{pNiceArray}\]
-%
%
% We should remark that the rules we have drawn are drawn \emph{after} the
% construction of the array and thus, they don't spread the cells of the array.
@@ -4095,13 +4095,23 @@ version 2005/12/01 or later.
%
% \vspace{1cm}
% It's possible to color a row with |\rowcolor| in the |code-before| (or with
-% |\rowcolor| of \pkg{colortbl} in the first cell of the row). However, it's not
-% possible to do a fine tuning. That's why we describe now method to highlight a
-% row of the matrix. We create a rectangular Tikz node which encompasses the
-% nodes of the second row with the Tikz library \pkg{fit}. This Tikz node is
-% filled after the construction of the matrix. In order to see the text
-% \emph{under} this node, we have to use transparency with the |blend mode|
-% equal to |multiply|.
+% |\rowcolor| in the first cell of the row if the key |colortbl-like| is used).
+% However, it's not possible to do a fine tuning. That's why we describe now a
+% method to highlight a row of the matrix. We create a rectangular Tikz node
+% which encompasses the nodes of the second row with the Tikz library \pkg{fit}.
+% This Tikz node is filled after the construction of the matrix. In order to see
+% the text \emph{under} this node, we have to use transparency with the
+% |blend mode| equal to |multiply|.
+%
+%
+% \medskip
+% That example and the following ones require Tikz (by default, \pkg{nicematrix}
+% only loads \textsc{pgf}) and the Tikz library |fit|. The following lines in
+% the preamble of your document do the job:
+% \begin{verbatim}
+% \usepackage{tikz}
+% \usetikzlibrary{fit}
+% \end{verbatim}
%
% \tikzset{highlight/.style={rectangle,
% fill=red!15,
@@ -4119,19 +4129,21 @@ version 2005/12/01 or later.
% inner sep=1pt,
% fit = ~#1}}
%
-% $\begin{bNiceMatrix}[~emphase#code-after = {\tikz \node [highlight = (2-1) (2-3)] {} ;}@]
+%
+% $\begin{bNiceMatrix}
% 0 & \Cdots & 0 \\
% 1 & \Cdots & 1 \\
-% 0 & \Cdots & 0
+% 0 & \Cdots & 0 \\
+% ~emphase#\CodeAfter \tikz \node [highlight = (2-1) (2-3)] {} ;@
% \end{bNiceMatrix}$
% \end{Verbatim}
-%
-% \[\begin{bNiceMatrix}[code-after = {\tikz \node [highlight = (2-1) (2-3)] {} ;}]
+% \[\begin{bNiceMatrix}
% 0 & \Cdots & 0 \\
% 1 & \Cdots & 1 \\
-% 0 & \Cdots & 0
+% 0 & \Cdots & 0 \\
+% \CodeAfter \tikz \node [highlight = (2-1) (2-3)] {} ;
% \end{bNiceMatrix}\]
-%
+%
%
%
% \vspace{1cm}
@@ -5144,6 +5156,15 @@ version 2005/12/01 or later.
\tl_new:N \l_@@_rules_color_tl
% \end{macrocode}
%
+%
+% \bigskip
+% This boolean will be used only to detect in an expandable way whether we are
+% at the beginning of the (potential) column zero, in order to raise an error if
+% |\Hdotsfor| is used in that column.
+% \begin{macrocode}
+\bool_new:N \g_@@_after_col_zero_bool
+% \end{macrocode}
+%
% \bigskip
% A kind of false row will be inserted at the end of the array for the
% construction of the |col| nodes (and also to fix the width of the columns when
@@ -5158,7 +5179,7 @@ version 2005/12/01 or later.
% \bigskip
% It's possible to use the command |\NotEmpty| to specify explicitely that a
% cell must be considered as non empty by \pkg{nicematrix} (the Tikz nodes are
-% constructed only the non empty cells).
+% constructed only in the non empty cells).
% \begin{macrocode}
\bool_new:N \g_@@_not_empty_cell_bool
% \end{macrocode}
@@ -5220,7 +5241,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% The following sequence will contain the caracteristics of the blocks of the
+% The following sequence will contain the characteristics of the blocks of the
% array, specified by the command |\Block|. Each block is represented by 6
% components surrounded by braces:
%
@@ -5256,6 +5277,17 @@ version 2005/12/01 or later.
% blocks corresponding to the dotted lines).
%
% \medskip
+% The final user may decide to ``stroke'' a block (using, for example, the key
+% |color=red!15| when using the command |\Block|). In that case, the rules
+% specified, for instance, by |hvlines| must not be drawn around the block.
+% That's why we keep the information of all that stroken blocks in the following
+% sequence.
+% \begin{macrocode}
+\seq_new:N \g_@@_pos_of_stroken_blocks_seq
+% \end{macrocode}
+%
+%
+% \medskip
% We are able to determine the number of columns specified in the preamble (for
% the environments with explicit preamble, of course and without the potential
% exterior columns).
@@ -5263,12 +5295,32 @@ version 2005/12/01 or later.
\int_new:N \g_@@_static_num_of_col_int
% \end{macrocode}
%
+% \medskip
+% The following token lists correspond to the keys |fill| and |draw| of
+% a command |\Block|.
+% \begin{macrocode}
+\tl_new:N \l_@@_fill_tl
+\tl_new:N \l_@@_draw_tl
+% \end{macrocode}
+%
% \medskip
-% Used for the color of the blocks.
+% The following token list correspond to the key |color| of the command
+% |\Block|. However, as of now (v. 5.7 of \pkg{nicematrix}), the key |color|
+% linked to |fill| with an error. We will give to the key |color| of |\Block|
+% its new meaning in a few months (with its new definition, the key |color| will
+% draw the frame with the given color but also color the content of the block
+% (that is to say the text) as does the key |color| of a Tikz node).
% \begin{macrocode}
\tl_new:N \l_@@_color_tl
% \end{macrocode}
-%
+%
+% \medskip
+% Here is the dimension for the width of the rule when a block (created by
+% |\Block|) is stroked.
+% \begin{macrocode}
+\dim_new:N \l_@@_line_width_dim
+% \end{macrocode}
+%
% \medskip
% The parameter of position of the label of a block (|c|, |r| or |l|).
% \begin{macrocode}
@@ -5844,7 +5896,13 @@ version 2005/12/01 or later.
\tl_new:N \l_@@_xdots_color_tl
% \end{macrocode}
%
-% \medskip
+% \bigskip
+% The following token list corresponds to the key |delimiters-color|.
+% \begin{macrocode}
+\tl_new:N \l_@@_delimiters_color_tl
+% \end{macrocode}
+%
+% \bigskip
% Sometimes, we want to have several arrays vertically juxtaposed in order to
% have an alignment of the columns of these arrays. To acheive this goal, one
% may wish to use the same width for all the columns (for example with the
@@ -6143,6 +6201,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\keys_define:nn { NiceMatrix / NiceMatrixOptions }
{
+ delimiters-color .tl_set:N = \l_@@_delimiters_color_tl ,
+ delimiters-color .value_required:n = true ,
last-col .code:n = \tl_if_empty:nF { #1 }
{ \@@_error:n { last-col~non~empty~for~NiceMatrixOptions } }
\int_zero:N \l_@@_last_col_int ,
@@ -6247,6 +6307,8 @@ version 2005/12/01 or later.
r .code:n = \tl_set:Nn \l_@@_type_of_col_tl r ,
small .bool_set:N = \l_@@_small_bool ,
small .value_forbidden:n = true ,
+ delimiters-color .tl_set:N = \l_@@_delimiters_color_tl ,
+ delimiters-color .value_required:n = true ,
unknown .code:n = \@@_error:n { Unknown~option~for~NiceMatrix }
}
% \end{macrocode}
@@ -6277,6 +6339,8 @@ version 2005/12/01 or later.
notes / bottomrule .default:n = true ,
tabularnote .tl_set:N = \l_@@_tabularnote_tl ,
tabularnote .value_required:n = true ,
+ delimiters-color .tl_set:N = \l_@@_delimiters_color_tl ,
+ delimiters-color .value_required:n = true ,
unknown .code:n = \@@_error:n { Unknown~option~for~NiceArray }
}
% \end{macrocode}
@@ -6392,7 +6456,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_begin_of_row:
{
- \int_gincr:N \c@iRow
+ \refstepcounter { iRow }
\dim_gset_eq:NN \g_@@_dp_ante_last_row_dim \g_@@_dp_last_row_dim
\dim_gset:Nn \g_@@_dp_last_row_dim { \box_dp:N \@arstrutbox }
\dim_gset:Nn \g_@@_ht_last_row_dim { \box_ht:N \@arstrutbox }
@@ -6733,6 +6797,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_everycr_i:
{
\int_gzero:N \c@jCol
+ \bool_gset_false:N \g_@@_after_col_zero_bool
\bool_if:NF \g_@@_row_of_col_done_bool
{
\@@_create_row_node:
@@ -7073,10 +7138,14 @@ version 2005/12/01 or later.
% \begin{macrocode}
\seq_gclear:N \g_@@_blocks_seq
\seq_gclear:N \g_@@_pos_of_blocks_seq
- \seq_gclear:N \g_@@_pos_of_xdots_seq
% \end{macrocode}
% In fact, the sequence |\g_@@_pos_of_blocks_seq| will also contain the
% positions of the cells with a |\diagbox|.
+%
+% \begin{macrocode}
+ \seq_gclear:N \g_@@_pos_of_stroken_blocks_seq
+ \seq_gclear:N \g_@@_pos_of_xdots_seq
+% \end{macrocode}
%
% \begin{macrocode}
\tl_if_exist:cT { g_@@_code_before_ \int_use:N \g_@@_env_int _ tl }
@@ -7455,6 +7524,8 @@ version 2005/12/01 or later.
\hbox_set:Nn \l_tmpa_box
{
\c_math_toggle_token
+ \tl_if_empty:NF \l_@@_delimiters_color_tl
+ { \color { \l_@@_delimiters_color_tl } }
\left #1
\vcenter
{
@@ -7688,6 +7759,9 @@ version 2005/12/01 or later.
\@@_w: { \@@_patch_preamble_v:nnnn { } #1 }
\@@_W: { \@@_patch_preamble_v:nnnn { \cs_set_eq:NN \hss \hfil } #1 }
\@@_true_c: { \@@_patch_preamble_vi:n #1 }
+ C { \@@_error:nn { old~column~type } C }
+ L { \@@_error:nn { old~column~type } L }
+ R { \@@_error:nn { old~column~type } R }
\q_stop { }
}
{
@@ -7963,7 +8037,7 @@ version 2005/12/01 or later.
% \bigskip
% The following command is \emph{always} used by |{NiceArrayWithDelims}| (even
% if, in fact, there is no tabular notes: in fact, it's not possible to know
-% whether there is or not before the composition of the blocks).
+% whether there is tabular notes or not before the composition of the blocks).
% \begin{macrocode}
\cs_new_protected:Npn \@@_use_arraybox_with_notes_c:
{
@@ -8511,6 +8585,7 @@ version 2005/12/01 or later.
{
>
{
+ \bool_gset_true:N \g_@@_after_col_zero_bool
\@@_begin_of_row:
% \end{macrocode}
% The contents of the cell is constructed in the box |\l_@@_cell_box| because we
@@ -10381,8 +10456,15 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new:Npn \@@_Hdotsfor:
{
- \int_compare:nNnTF \c@jCol = 0
- { \@@_error:n { Hdotsfor~in~col~0 } }
+ \int_compare:nNnTF \c@jCol = 0
+ {
+ \bool_if:NTF \g_@@_after_col_zero_bool
+ {
+ \multicolumn { 1 } { c } { }
+ \@@_Hdotsfor_i
+ }
+ { \@@_fatal:n { Hdotsfor~in~col~0 } }
+ }
{
\multicolumn { 1 } { c } { }
\@@_Hdotsfor_i
@@ -10416,7 +10498,7 @@ version 2005/12/01 or later.
#1 , #3 ,
down = \exp_not:n { #4 } , up = \exp_not:n { #5 }
}
- }
+ }
\prg_replicate:nn { #2 - 1 } { & \multicolumn { 1 } { c } { } }
}
}
@@ -11086,6 +11168,9 @@ version 2005/12/01 or later.
}
}
% \end{macrocode}
+%
+%
+%
%
% \bigskip
% \subsection*{The vertical rules}
@@ -11189,6 +11274,8 @@ version 2005/12/01 or later.
{ \@@_test_if_vline_in_block:nnnn ##1 }
\seq_map_inline:Nn \g_@@_pos_of_xdots_seq
{ \@@_test_if_vline_in_block:nnnn ##1 }
+ \seq_map_inline:Nn \g_@@_pos_of_stroken_blocks_seq
+ { \@@_test_if_vline_in_stroken_block:nnnn ##1 }
\clist_if_empty:NF \l_@@_except_corners_clist
\@@_test_in_corner_v:
\bool_if:NTF \g_tmpa_bool
@@ -11364,6 +11451,8 @@ version 2005/12/01 or later.
{ \@@_test_if_hline_in_block:nnnn ##1 }
\seq_map_inline:Nn \g_@@_pos_of_xdots_seq
{ \@@_test_if_hline_in_block:nnnn ##1 }
+ \seq_map_inline:Nn \g_@@_pos_of_stroken_blocks_seq
+ { \@@_test_if_hline_in_stroken_block:nnnn ##1 }
\clist_if_empty:NF \l_@@_except_corners_clist \@@_test_in_corner_h:
\bool_if:NTF \g_tmpa_bool
{
@@ -11565,7 +11654,34 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_test_if_hline_in_stroken_block:nnnn #1 #2 #3 #4
+ {
+ \bool_lazy_all:nT
+ {
+ { \int_compare_p:nNn \l_tmpa_tl > { #1 - 1 } }
+ { \int_compare_p:nNn \l_tmpa_tl < { #3 + 2 } }
+ { \int_compare_p:nNn \l_tmpb_tl > { #2 - 1 } }
+ { \int_compare_p:nNn \l_tmpb_tl < { #4 + 1 } }
+ }
+ { \bool_gset_false:N \g_tmpa_bool }
+ }
+% \end{macrocode}
%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_test_if_vline_in_stroken_block:nnnn #1 #2 #3 #4
+ {
+ \bool_lazy_all:nT
+ {
+ { \int_compare_p:nNn \l_tmpa_tl > { #1 - 1 } }
+ { \int_compare_p:nNn \l_tmpa_tl < { #3 + 1 } }
+ { \int_compare_p:nNn \l_tmpb_tl > { #2 - 1 } }
+ { \int_compare_p:nNn \l_tmpb_tl < { #4 + 2 } }
+ }
+ { \bool_gset_false:N \g_tmpa_bool }
+ }
+% \end{macrocode}
+%
% \bigskip
% \subsubsection*{The key except-corners}
%
@@ -12400,8 +12516,8 @@ version 2005/12/01 or later.
%
% \bigskip
% The options of the command |\Block| will be analyzed first in the cell of the
-% array (and once again when the block will be put in the array in the
-% |code-after|). Here is the set of keys for the first pass.
+% array (and once again when the block will be put in the array).
+% Here is the set of keys for the first pass.
% \begin{macrocode}
\keys_define:nn { NiceMatrix / Block / FirstPass }
{
@@ -12411,6 +12527,12 @@ version 2005/12/01 or later.
r .value_forbidden:n = true ,
c .code:n = \tl_set:Nn \l_@@_pos_of_block_tl c ,
c .value_forbidden:n = true ,
+% \end{macrocode}
+% The two following lines will be uncommented when we will give to the key
+% |color| its new definition.
+% \begin{macrocode}
+ % color .tl_set:N = \l_@@_color_tl ,
+ % color .value_required:n = true ,
}
% \end{macrocode}
%
@@ -12418,8 +12540,9 @@ version 2005/12/01 or later.
% The following command |\@@_Block:| will be linked to |\Block| in the
% environments of \pkg{nicematrix}. We define it with
% |\NewExpandableDocumentCommand| because it has an optional argument between
-% |<| and |>| (for TeX instructions put before the math mode of the label). It's
-% mandatory to use an expandable command.
+% |<| and |>| (for TeX instructions put before the math mode of the label and
+% before the beginning of the small array of the block). It's mandatory to use
+% an expandable command.
%
% \begin{macrocode}
\NewExpandableDocumentCommand \@@_Block: { O { } m D < > { } m }
@@ -12444,17 +12567,21 @@ version 2005/12/01 or later.
% \medskip
% Now, the arguments have been extracted: |#1| is $i$ (the number of rows of the
% block), |#2| is $j$ (the number of columns of the block), |#3| is the list of
-% key-values, |#4| are the tokens to put before the math mode and |#5| is the
-% label of the block.
+% key-values, |#4| are the tokens to put before the math mode and the beginning
+% of the small array of the block and |#5| is the label of the block.
% \begin{macrocode}
\cs_new_protected:Npn \@@_Block_ii:nnnnn #1 #2 #3 #4 #5
{
% \end{macrocode}
%
% \begin{macrocode}
- \tl_if_empty:NTF \l_@@_cell_type_tl
+ \int_compare:nNnTF { #2 } = 1
+ {
+ \tl_if_empty:NTF \l_@@_cell_type_tl
+ { \tl_set:Nn \l_@@_pos_of_block_tl c }
+ { \tl_set_eq:NN \l_@@_pos_of_block_tl \l_@@_cell_type_tl }
+ }
{ \tl_set:Nn \l_@@_pos_of_block_tl c }
- { \tl_set_eq:NN \l_@@_pos_of_block_tl \l_@@_cell_type_tl }
% \end{macrocode}
%
% \medskip
@@ -12488,7 +12615,7 @@ version 2005/12/01 or later.
% \end{macrocode}
% Now, |\l_tmpa_tl| contains an ``object'' corresponding to the position of the
% block whith four components, each of them surrounded by curly brackets:
-%
+%
% |{|\textsl{imin}|}{|\textsl{jmin}|}{|\textsl{imax}|}{|\textsl{jmax}|}|.
%
% We store this information in the sequence |\g_@@_pos_of_blocks_seq|.
@@ -12553,13 +12680,13 @@ version 2005/12/01 or later.
% command seems to be bugged: it doesn't work in XeLaTeX when \pkg{fontspec} is
% loaded.
% \begin{macrocode}
- \int_compare:nNnT { #2 } = 1 \set@color
- \bool_if:NTF \l_@@_NiceTabular_bool
- {
- \group_begin:
- \cs_set:Npn \arraystretch { 1 }
- \dim_set_eq:NN \extrarowheight \c_zero_dim
- #4
+ \tl_if_empty:NTF \l_@@_color_tl
+ { \int_compare:nNnT { #2 } = 1 \set@color }
+ { \color { \l_@@_color_tl } }
+ \group_begin:
+ \cs_set:Npn \arraystretch { 1 }
+ \dim_set_eq:NN \extrarowheight \c_zero_dim
+ #4
% \end{macrocode}
% If the box is rotated (the key |\rotate| may be in the previous |#4|), the
% tabular used for the content of the cell will be constructed with a format
@@ -12568,29 +12695,23 @@ version 2005/12/01 or later.
% the tabular is the same as the external alignment of the tabular (that is to
% say the position of the block in its zone of merged cells).
% \begin{macrocode}
- \bool_if:NT \g_@@_rotate_bool
- { \tl_set:Nn \l_@@_pos_of_block_tl c }
+ \bool_if:NT \g_@@_rotate_bool { \tl_set:Nn \l_@@_pos_of_block_tl c }
+ \bool_if:NTF \l_@@_NiceTabular_bool
+ {
\exp_args:Nnx \begin { tabular }
{ @ { } \l_@@_pos_of_block_tl @ { } }
#5
\end { tabular }
- \group_end:
}
{
- \group_begin:
- \cs_set:Npn \arraystretch { 1 }
- \dim_set_eq:NN \extrarowheight \c_zero_dim
- #4
- \bool_if:NT \g_@@_rotate_bool
- { \tl_set:Nn \l_@@_pos_of_block_tl c }
\c_math_toggle_token
\exp_args:Nnx \begin { array }
{ @ { } \l_@@_pos_of_block_tl @ { } }
#5
\end { array }
\c_math_toggle_token
- \group_end:
}
+ \group_end:
}
\bool_if:NT \g_@@_rotate_bool
{
@@ -12721,17 +12842,25 @@ version 2005/12/01 or later.
% array \emph{after the construction of the array} (by using \textsc{pgf}).
%
% \medskip
-% The key |tikz| is for Tikz options used when the \textsc{pgf} node of the
-% block is created (the ``normal'' block node and not the ``short'' one nor the
-% ``medium'' one). \textbf{In fact, as of now, it is \emph{not} documented}. Is
-% it really a good idea to provide such a key?
% \begin{macrocode}
\keys_define:nn { NiceMatrix / Block / SecondPass }
{
- tikz .tl_set:N = \l_@@_tikz_tl ,
- tikz .value_required:n = true ,
- color .tl_set:N = \l_@@_color_tl ,
+ fill .tl_set:N = \l_@@_fill_tl ,
+ fill .value_required:n = true ,
+ draw .tl_set:N = \l_@@_draw_tl ,
+ draw .default:n = default ,
+% \end{macrocode}
+% The following definition for the key |color| will be deleted when we will give
+% to the key |color| of the command |\Block| its new definition. It will be
+% replaced by the line which is commented.
+% \begin{macrocode}
+ color .code:n =
+ \@@_error:n { Key~color~for~Block }
+ \tl_set:Nn \l_@@_fill_tl { #1 } ,
+ % color .code:n = \color { #1 } \tl_set:Nn \l_@@_draw_tl { #1 } ,
color .value_required:n = true ,
+ line-width .dim_set:N = \l_@@_line_width_dim ,
+ line-width .value_required:n = true ,
l .code:n = \tl_set:Nn \l_@@_pos_of_block_tl l ,
l .value_forbidden:n = true ,
r .code:n = \tl_set:Nn \l_@@_pos_of_block_tl r ,
@@ -12762,11 +12891,11 @@ version 2005/12/01 or later.
% The group is for the keys.
% \begin{macrocode}
\group_begin:
- \keys_set:nn { NiceMatrix / Block / SecondPass} { #5 }
+ \keys_set:nn { NiceMatrix / Block / SecondPass } { #5 }
% \end{macrocode}
%
% The integer |\l_@@_last_row_int| will be the last row of the block and
-% |\l_@@_last_col_int| it's last column.
+% |\l_@@_last_col_int| its last column.
% \begin{macrocode}
\int_zero_new:N \l_@@_last_row_int
\int_zero_new:N \l_@@_last_col_int
@@ -12789,12 +12918,29 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
- \tl_if_empty:NF \l_@@_color_tl
+ \bool_lazy_or:nnT
+ { ! \tl_if_empty_p:N \l_@@_draw_tl }
+ { \dim_compare_p:nNn \l_@@_line_width_dim > \c_zero_dim }
+ {
+ \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ {
+ \@@_stroke_block:nnn
+ { #5 }
+ { #1 - #2 }
+ { \int_use:N \l_@@_last_row_int - \int_use:N \l_@@_last_col_int }
+ }
+ \seq_gput_right:Nn \g_@@_pos_of_stroken_blocks_seq
+ { { #1 } { #2 } { #3 } { #4 } }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \tl_if_empty:NF \l_@@_fill_tl
{
\tl_gput_right:Nx \g_nicematrix_code_before_tl
{
\exp_not:N \rectanglecolor
- { \l_@@_color_tl }
+ { \l_@@_fill_tl }
{ #1 - #2 }
{ \int_use:N \l_@@_last_row_int - \int_use:N \l_@@_last_col_int }
}
@@ -12897,7 +13043,6 @@ version 2005/12/01 or later.
% and the four coordinates of two opposite corner points of the rectangle.
% \begin{macrocode}
\begin { pgfscope }
- \exp_args:Nx \pgfset { \l_@@_tikz_tl }
\@@_pgf_rect_node:nnnnn
{ \@@_env: - #1 - #2 - block }
\l_tmpb_dim \l_tmpa_dim \l_tmpd_dim \l_tmpc_dim
@@ -13036,17 +13181,20 @@ version 2005/12/01 or later.
%
% \medskip
% If the number of rows is different of $1$, we will put the label of the block
-% in using the short node (the label of the block has been composed in
+% by using the short node (the label of the block has been composed in
% |\l_@@_cell_box|).
% \begin{macrocode}
{
% \end{macrocode}
% If we are in the first column, we must put the block as if it was with the key~|r|.
% \begin{macrocode}
- \int_compare:nNnT \c@jCol = 0
+ \int_compare:nNnT { #2 } = 0
{ \tl_set:Nn \l_@@_pos_of_block_tl r }
- \int_compare:nNnT \c@jCol = \l_@@_last_col_int
- { \tl_set:Nn \l_@@_pos_of_block_tl l }
+ \bool_if:nT \g_@@_last_col_found_bool
+ {
+ \int_compare:nNnT { #2 } = \g_@@_col_total_int
+ { \tl_set:Nn \l_@@_pos_of_block_tl l }
+ }
\pgftransformshift
{
\pgfpointanchor
@@ -13079,6 +13227,76 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+%
+% % \bigskip
+% The first argument of |\@@_stroke_block:nnn| is a list of options for the
+% rectangle that you will stoke. The second argument is the upper-left cell of
+% the block (with, as usual, the syntex $i$|-|$j$) and the third is the last
+% cell of the block (with the same syntax).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_stroke_block:nnn #1 #2 #3
+ {
+ \group_begin:
+ \tl_clear:N \l_@@_draw_tl
+ \dim_set_eq:NN \l_@@_line_width_dim \arrayrulewidth
+ \keys_set_known:nn { NiceMatrix / BlockStroke } { #1 }
+ \pgfpicture
+ \pgfrememberpicturepositiononpagetrue
+ \pgf@relevantforpicturesizefalse
+ \tl_if_empty:NF \l_@@_draw_tl
+ {
+% \end{macrocode}
+% If the user has used the key |color| of the command |\Block| without value,
+% the color fixed by |\arrayrulecolor| is used.
+% \begin{macrocode}
+ \str_if_eq:VnTF \l_@@_draw_tl { default }
+ { \CT@arc@ }
+ { \pgfsetstrokecolor { \l_@@_draw_tl } }
+ }
+ \@@_cut_on_hyphen:w #2 \q_stop
+ \bool_lazy_and:nnT
+ { \int_compare_p:n { \l_tmpa_tl <= \c@iRow } }
+ { \int_compare_p:n { \l_tmpb_tl <= \c@jCol } }
+ {
+ \@@_qpoint:n { row - \l_tmpa_tl }
+ \dim_set:Nn \l_tmpb_dim { \pgf@y }
+ \@@_qpoint:n { col - \l_tmpb_tl }
+ \dim_set:Nn \l_tmpc_dim { \pgf@x }
+ \@@_cut_on_hyphen:w #3 \q_stop
+ \int_compare:nNnT \l_tmpa_tl > \c@iRow
+ { \tl_set:Nx \l_tmpa_tl { \int_use:N \c@iRow } }
+ \int_compare:nNnT \l_tmpb_tl > \c@jCol
+ { \tl_set:Nx \l_tmpb_tl { \int_use:N \c@jCol } }
+ \@@_qpoint:n { row - \@@_succ:n \l_tmpa_tl }
+ \dim_set:Nn \l_tmpa_dim { \pgf@y }
+ \@@_qpoint:n { col - \@@_succ:n \l_tmpb_tl }
+ \dim_set:Nn \l_tmpd_dim { \pgf@x }
+ \pgfpathrectanglecorners
+ { \pgfpoint \l_tmpc_dim \l_tmpb_dim }
+ { \pgfpoint \l_tmpd_dim \l_tmpa_dim }
+ \pgfsetlinewidth { 1.1 \l_@@_line_width_dim }
+ \pgfusepathqstroke
+ }
+ \endpgfpicture
+ \group_end:
+ }
+% \end{macrocode}
+%
+% Here is the set of keys for the command |\@@_stroke_block:nnn|.
+% \begin{macrocode}
+\keys_define:nn { NiceMatrix / BlockStroke }
+ {
+% \end{macrocode}
+% We will uncomment the following line when we will give to the key |color| of
+% the command |\Block| its new definition.
+% \begin{macrocode}
+ % color .tl_set:N = \l_@@_draw_tl ,
+ draw .tl_set:N = \l_@@_draw_tl ,
+ draw .default:n = default ,
+ line-width .dim_set:N = \l_@@_line_width_dim ,
+ }
+% \end{macrocode}
+%
% \bigskip
% \subsection*{How to draw the dotted lines transparently}
% \begin{macrocode}
@@ -13658,6 +13876,16 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { Key~color~for~Block }
+ {
+ The~key~'color'~for~the~command~\token_to_str:N \Block\
+ is~deprecated:~you~should~use~'fill'~instead.\\
+ You~can~go~on~for~this~time~but~remember~that~that~key~
+ will~be~deleted~in~a~future~version.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { ampersand~in~light-syntax }
{
You~can't~use~an~ampersand~(\token_to_str &)~to~separate~columns~because
@@ -13682,7 +13910,16 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-%
+% \begin{macrocode}
+\@@_msg_new:nn { old~column~type }
+ {
+ The~column~type~'#1'~is~no~longer~defined~in~'nicematrix'.~
+ Since~version~5.0,~you~have~to~use~'l',~'c'~and~'r'~instead~of~'L',~
+ 'C'~and~'R'.~You~can~also~use~the~key~'define-L-C-R'.\\
+ This~error~is~fatal.
+ }
+% \end{macrocode}
+%
% \begin{macrocode}
\@@_msg_new:nn { bad~value~for~baseline }
{
@@ -13712,7 +13949,7 @@ version 2005/12/01 or later.
\@@_msg_new:nn { Hdotsfor~in~col~0 }
{
You~can't~use~\token_to_str:N \Hdotsfor\ in~an~exterior~column~of~
- the~array.~If~you~go~on,~the~corresponding~dotted~line~won't~be~drawn.
+ the~array.~This~error~is~fatal.
}
% \end{macrocode}
%
@@ -13882,6 +14119,7 @@ version 2005/12/01 or later.
create-extra-nodes,~
create-medium-nodes,~
create-large-nodes,~
+ delimiters-color,~
end-of-row,~
first-col,~
first-row,~
@@ -13932,6 +14170,7 @@ version 2005/12/01 or later.
create-extra-nodes,~
create-medium-nodes,~
create-large-nodes,~
+ delimiters-color,~
extra-left-margin,~
extra-right-margin,~
first-col,~
@@ -13989,6 +14228,7 @@ version 2005/12/01 or later.
create-extra-nodes,~
create-medium-nodes,~
create-large-nodes,~
+ delimiters-color,~
extra-left-margin,~
extra-right-margin,~
first-col,~
@@ -14486,6 +14726,12 @@ version 2005/12/01 or later.
% Different behaviour for the mono-row blocks.
%
% New command |\NotEmpty|.
+%
+% \subsection*{Changes between versions 5.6 and 5.7}
+%
+% New key |delimiters-color|
+%
+% Keys |fill|, |draw| and |line-width| for the command |\Block|.
%
% \PrintIndex
%
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index c8e2b90a5c..3f0097097d 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/config.guess b/systems/texlive/tlnet/tlpkg/installer/config.guess
index 0fc11edb2d..699b3a10b2 100755
--- a/systems/texlive/tlnet/tlpkg/installer/config.guess
+++ b/systems/texlive/tlnet/tlpkg/installer/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2020 Free Software Foundation, Inc.
-timestamp='2020-11-07'
+timestamp='2020-11-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@ timestamp='2020-11-07'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.
@@ -138,9 +138,7 @@ UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown
case "$UNAME_SYSTEM" in
Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
+ LIBC=unknown
set_cc_for_build
cat <<-EOF > "$dummy.c"
@@ -149,16 +147,30 @@ Linux|GNU|GNU/*)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
+ #elif defined(__GLIBC__)
+ LIBC=gnu
#else
#include <stdarg.h>
+ /* First heuristic to detect musl libc. */
#ifdef __DEFINED_va_list
LIBC=musl
- #else
- LIBC=gnu
#endif
#endif
EOF
eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')"
+
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
+ fi
;;
esac
@@ -1638,9 +1650,9 @@ This script (version $timestamp), has failed to recognize the
operating system you are using. If your script is old, overwrite *all*
copies of config.guess and config.sub with the latest versions from:
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
- https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
EOF
year=$(echo $timestamp | sed 's,-.*,,')
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index c69f378557..d45ed2af18 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2020
-depend revision/56978
+depend revision/56984
name 00texlive.image
category TLCore
-revision 56977
+revision 56984
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -40,7 +40,7 @@ longdesc IgnorePatterns in the check_files routine in tlmgr.pl augment
longdesc this list. Those are not included in the source/ tarball. For
longdesc information on the 00texlive prefix see
longdesc 00texlive.installation(.tlpsrc)
-runfiles size=13580
+runfiles size=13581
.mkisofsrc
autorun.inf
texmf-dist/README
@@ -4299,7 +4299,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 56975
+revision 56980
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -4309,7 +4309,7 @@ longdesc allowed, but in this case, 00texlive.installer is never used
longdesc *except* to build the installer archives, so it's ok. For
longdesc information on the 00texlive prefix see
longdesc 00texlive.installation(.tlpsrc)
-runfiles size=808
+runfiles size=809
install-tl
release-texlive.txt
tlpkg/installer/COPYING.MinGW-runtime.txt
@@ -8696,7 +8696,7 @@ catalogue-version 1.3
name acro
category Package
-revision 56884
+revision 56982
shortdesc Typeset acronyms
relocated 1
longdesc The package enables the author to create acronyms in a simple
@@ -8709,11 +8709,11 @@ longdesc which automatically sorts the list created by \printacronyms.
depend etoolbox
depend l3kernel
depend l3packages
-containersize 41572
-containerchecksum dbd6a2637f04d5f699cf714a2f605596c5bc04c6dd6b8d201766ac81e21280d172114343ee6d0b375f8ca9ca9120e4dd48af798ebfca1ff8b3f579056f8864bf
-doccontainersize 1199816
-doccontainerchecksum 2ce315be4d0b0276932578c050f2d3f35e2fd4906856e9fb7ac3900f489691d6f033373cb62a57d31db91167a58b1d06c224bcf691e8dc6859e8c364c551e446
-docfiles size=359
+containersize 41696
+containerchecksum 4f5a61ad12863365074b35e679f3a784472ee7aef4795db00de696ac422d46682ee90628d74ab3aa9f8eb8c5fa2f3f7ce6f9b347e4b735f6d6c2e189f694c474
+doccontainersize 1216364
+doccontainerchecksum 5ae8c590a6dba51635845bedec41ea252e7ec58f86421146d6cdc831d7f02014dc344c106bd88eecacc4a559d854428ab7615ec2358585f425ebb07678ed1131
+docfiles size=363
RELOC/doc/latex/acro/README details="Readme"
RELOC/doc/latex/acro/acro-manual.pdf details="Package documentation"
RELOC/doc/latex/acro/acro-manual.tex
@@ -8743,7 +8743,7 @@ docfiles size=359
RELOC/doc/latex/acro/examples/acro.example.texsx-542461.tex
RELOC/doc/latex/acro/examples/acro.example.units.pdf
RELOC/doc/latex/acro/examples/acro.example.units.tex
-runfiles size=76
+runfiles size=77
RELOC/tex/latex/acro/acro.sty
RELOC/tex/latex/acro/acro2.sty
catalogue-contact-bugs https://github.com/cgnieder/acro/issues
@@ -8751,7 +8751,7 @@ catalogue-contact-repository https://github.com/cgnieder/acro/
catalogue-ctan /macros/latex/contrib/acro
catalogue-license lppl1.3c
catalogue-topics acronym expl3
-catalogue-version 3.2a
+catalogue-version 3.3
name acronym
category Package
@@ -51222,7 +51222,7 @@ catalogue-version 1.1a
name chemmacros
category Package
-revision 54191
+revision 56983
shortdesc A collection of macros to support typesetting chemistry documents
relocated 1
longdesc The bundle offers a collection of macros and commands which are
@@ -51237,11 +51237,11 @@ longdesc and ghsystem, providing for the UN globally harmonised chemical
longdesc notation. The packages are written using current versions of
longdesc the experimental LaTeX 3 coding conventions and the LaTeX 3
longdesc support packages.
-containersize 44344
-containerchecksum 8e70d109cd203cea5c8424dc306d6c5c5ae96ee8c83adf605cc54215a68f70dd656a6c53ace711ab99255e7ea1fa7978a2ec5fff4585d885a3cfe7c0a0951f6f
-doccontainersize 1020796
-doccontainerchecksum 357b7d8c3f5cc554ce86d71e2e31cc65307ae836d8bad177b4510ae4ed59b106f9dc85d4856ade241e5bab23cf2e4d4977942f2670b609167f627eed3d82d694
-docfiles size=287
+containersize 44372
+containerchecksum 9ca4d903e5d1126aa4f6fc6c07ea2efc86a5750883c354f3bcd48dbe3960ac3ea2cbc47626c67c8f8bec5343d7dd4d61aa548faa33cc42ab09d15011da551a2a
+doccontainersize 1024756
+doccontainerchecksum 3482d6c49bf23bd604a2d0c4f506762c61abc1e2785cf83685af2f96006b9093886d51fed8c16a5e430b35f138ccbd35d183291208df47e1281b47d758d7d123
+docfiles size=289
RELOC/doc/latex/chemmacros/README details="Readme"
RELOC/doc/latex/chemmacros/chemmacros-manual.pdf details="Chemmacros package documentation" language="en"
RELOC/doc/latex/chemmacros/chemmacros-manual.tex
@@ -51279,9 +51279,9 @@ runfiles size=111
catalogue-contact-bugs https://github.com/cgnieder/chemmacros/issues
catalogue-contact-repository https://github.com/cgnieder/chemmacros/
catalogue-ctan /macros/latex/contrib/chemmacros
-catalogue-license lppl1.3
+catalogue-license lppl1.3c
catalogue-topics chemistry expl3
-catalogue-version 5.11
+catalogue-version 5.11a
name chemnum
category Package
@@ -133953,9 +133953,8 @@ catalogue-version 7.00e
name hyperxmp
category Package
-revision 56839
+revision 56984
shortdesc Embed XMP metadata within a LaTeX document
-relocated 1
longdesc XMP (eXtensible Metadata Platform) is a mechanism proposed by
longdesc Adobe for embedding document metadata within the document
longdesc itself. The metadata is designed to be easy to extract, even by
@@ -133975,30 +133974,177 @@ longdesc PDF version, and contact telephone number/postal address/email
longdesc address/URL. Hyperxmp currently embeds XMP only within PDF
longdesc documents; it is compatible with pdfLaTeX, XeLaTeX,
longdesc LaTeX+dvipdfm, and LaTeX+dvips+ps2pdf.
-containersize 12748
-containerchecksum c5ef56bc423bcef593a65869212e6505c4e3add2657df7990dfffaca8f8a5c1923185b8073496e3f9e343c3cdd403ab26f1599daa0eb82b90a441b9ed0e623b7
-doccontainersize 1141540
-doccontainerchecksum ab946796bd8e8e8944f15360e81aefa4b8575054ae962fbf96bd8af46166b89da9d07223d771007fab5f43fd316862515a0c4e67ee7c55aea0994ff1563c9d3e
-docfiles size=380
- RELOC/doc/latex/hyperxmp/README details="Readme"
- RELOC/doc/latex/hyperxmp/hyperxmp.pdf details="Package documentation"
-srccontainersize 155716
-srccontainerchecksum 4bf6d1108b19e1a01b56fcfb7f3fb9a53221c0caa308bdedf13153fc2b85a108be7c39111c279a2e3123a5097e4fb4c0a49970a5cd32b43f22a2851baec9ba15
-srcfiles size=109
- RELOC/source/latex/hyperxmp/einstein-xmp.tex
- RELOC/source/latex/hyperxmp/einstein1.pdf
- RELOC/source/latex/hyperxmp/einstein2.pdf
- RELOC/source/latex/hyperxmp/gglo-hyxmp.ist
- RELOC/source/latex/hyperxmp/gind-hyxmp.ist
- RELOC/source/latex/hyperxmp/hyperxmp-stds.tex
- RELOC/source/latex/hyperxmp/hyperxmp.dtx
- RELOC/source/latex/hyperxmp/hyperxmp.ins
-runfiles size=15
- RELOC/tex/latex/hyperxmp/hyperxmp.sty
+depend hyperxmp.ARCH
+containersize 15008
+containerchecksum 92fa64be6609c759ae8621057d32a63774bcdeb5d03aa27628dddac3304f394c2dd19b7de2001b9f3562f7aa6bf50570f992eafef91821387c5bc584e2151b59
+doccontainersize 1147012
+doccontainerchecksum 7da93211f49ff3824310a0a475061a77612b987197cc78b651f5d251950e401337abd685b57ed7e0e37b9da18280884ad4afac85c6660523170cf02953f9bc9b
+docfiles size=382
+ texmf-dist/doc/latex/hyperxmp/README details="Readme"
+ texmf-dist/doc/latex/hyperxmp/hyperxmp.pdf details="Package documentation"
+ texmf-dist/doc/man/man1/hyperxmp-add-bytecount.1
+srccontainersize 156872
+srccontainerchecksum 38a796e730494cc8f4e72096f48a6c3025284f1d3bcba069a0f9f9cf78e5930e815b8e17b883185908f1944500a4ddbd457149bd5531c21f639c07651c477045
+srcfiles size=111
+ texmf-dist/source/latex/hyperxmp/einstein-xmp.tex
+ texmf-dist/source/latex/hyperxmp/einstein1.pdf
+ texmf-dist/source/latex/hyperxmp/einstein2.pdf
+ texmf-dist/source/latex/hyperxmp/gglo-hyxmp.ist
+ texmf-dist/source/latex/hyperxmp/gind-hyxmp.ist
+ texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex
+ texmf-dist/source/latex/hyperxmp/hyperxmp.dtx
+ texmf-dist/source/latex/hyperxmp/hyperxmp.ins
+runfiles size=17
+ texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl
+ texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
catalogue-ctan /macros/latex/contrib/hyperxmp
catalogue-license lppl1.3c
catalogue-topics pdf-feat
-catalogue-version 5.7
+catalogue-version 5.9
+
+name hyperxmp.aarch64-linux
+category Package
+revision 56984
+shortdesc aarch64-linux files of hyperxmp
+containersize 356
+containerchecksum f2a246ef685b1066cb3a0fc871342375c21b4c5e2ac1b09c6f50cd788e507cb63075bf6b7ebc34d195ece86ae33a8a0cbd6fa4c77d931c3b35fd94f8ba44fa53
+binfiles arch=aarch64-linux size=1
+ bin/aarch64-linux/hyperxmp-add-bytecount
+
+name hyperxmp.amd64-freebsd
+category Package
+revision 56984
+shortdesc amd64-freebsd files of hyperxmp
+containersize 356
+containerchecksum 8501031c9395b6b59a6c54164e35b25ba927825d8db0c39f2613723ede2dca4141b6ad0863389e835de4a2b75d460d0569d2b8c0ee9ec44991bb06882f36ab89
+binfiles arch=amd64-freebsd size=1
+ bin/amd64-freebsd/hyperxmp-add-bytecount
+
+name hyperxmp.amd64-netbsd
+category Package
+revision 56984
+shortdesc amd64-netbsd files of hyperxmp
+containersize 356
+containerchecksum 0b9d056733b499c4c293f4ff2aea63d2895a5001db068c084ab625aac312cadf1471754e11920c0e9de7362c4ad0f1536d4f8a32597f8b647890603bb7e56368
+binfiles arch=amd64-netbsd size=1
+ bin/amd64-netbsd/hyperxmp-add-bytecount
+
+name hyperxmp.armhf-linux
+category Package
+revision 56984
+shortdesc armhf-linux files of hyperxmp
+containersize 356
+containerchecksum 82914de22b25572cc29fa5f37cfc5903078162c34ede50dd7fc2e76f32381c03889e11a139f32cfe5a6972007017ee4e4c6808f997b5384cf38449eceaf68eba
+binfiles arch=armhf-linux size=1
+ bin/armhf-linux/hyperxmp-add-bytecount
+
+name hyperxmp.i386-cygwin
+category Package
+revision 56984
+shortdesc i386-cygwin files of hyperxmp
+containersize 352
+containerchecksum 7a778fbfcd149fc318f52b4916f237ac92ce424cac1316488df3d6d1548d0e87ec22554868847aeaa9440d0656731b60e56adde4678021244612d0f816f2fafc
+binfiles arch=i386-cygwin size=1
+ bin/i386-cygwin/hyperxmp-add-bytecount
+
+name hyperxmp.i386-freebsd
+category Package
+revision 56984
+shortdesc i386-freebsd files of hyperxmp
+containersize 356
+containerchecksum bef83621ccaf1c3350958ed2a70abdc190d692b85bcdb00f36831c52d78f578e75522f79e62ef00b4d1cd43ef23806162d5fe790ad31f5f5e0a6e24bd2dd7374
+binfiles arch=i386-freebsd size=1
+ bin/i386-freebsd/hyperxmp-add-bytecount
+
+name hyperxmp.i386-linux
+category Package
+revision 56984
+shortdesc i386-linux files of hyperxmp
+containersize 352
+containerchecksum bb63f48e21e50d9b393a57ebc734bbc6a69fcebff908544e7326821c32be8ab19ab230ba0774870780e8b100a8c2f1318fddfe5e770976b6fb12f18eac85844c
+binfiles arch=i386-linux size=1
+ bin/i386-linux/hyperxmp-add-bytecount
+
+name hyperxmp.i386-netbsd
+category Package
+revision 56984
+shortdesc i386-netbsd files of hyperxmp
+containersize 356
+containerchecksum e872e4d6e961d03c76e4936502e134609f656ed8825afe68717daa7b08b8d58a7447ad02e3630d5a7e2a10246cb09c7ab41e0759e11e38d183927be384f91cba
+binfiles arch=i386-netbsd size=1
+ bin/i386-netbsd/hyperxmp-add-bytecount
+
+name hyperxmp.i386-solaris
+category Package
+revision 56984
+shortdesc i386-solaris files of hyperxmp
+containersize 356
+containerchecksum cfadade0595175b3babcc9a6784847bacfd8f13035fc8a291ec5c7e87a9ffcebeffeaec6ba4a4f434da42f73a1e6649022c5993e11373e0b42928ecbcc2ea78d
+binfiles arch=i386-solaris size=1
+ bin/i386-solaris/hyperxmp-add-bytecount
+
+name hyperxmp.win32
+category Package
+revision 56984
+shortdesc win32 files of hyperxmp
+containersize 692
+containerchecksum 68e8e7357c79c12b04fd0854eed3a1038b1f6fdb6d1a62338c13b3a56f6ac38467b618a6f7bb01d101784e65eae90399bd36efa74a2329e630e71f535c75aa65
+binfiles arch=win32 size=1
+ bin/win32/hyperxmp-add-bytecount.exe
+
+name hyperxmp.x86_64-cygwin
+category Package
+revision 56984
+shortdesc x86_64-cygwin files of hyperxmp
+containersize 356
+containerchecksum 8d8b51cbb45c34dd3c20ac1c10001798b37640476f62dec20bffa11c065c09c4714e5272317fad24c3f036abfba88eb8738cea4a1a8ec490c08adf47f9479f97
+binfiles arch=x86_64-cygwin size=1
+ bin/x86_64-cygwin/hyperxmp-add-bytecount
+
+name hyperxmp.x86_64-darwin
+category Package
+revision 56984
+shortdesc x86_64-darwin files of hyperxmp
+containersize 356
+containerchecksum 37c77380577fce7d144a806591779e88975004a94c0372bcf0952b5674bc452fd42ea2497c2ec71501d1dd691bb30d55c0a02c8cd0b98500c84760b3d663fff9
+binfiles arch=x86_64-darwin size=1
+ bin/x86_64-darwin/hyperxmp-add-bytecount
+
+name hyperxmp.x86_64-darwinlegacy
+category Package
+revision 56984
+shortdesc x86_64-darwinlegacy files of hyperxmp
+containersize 364
+containerchecksum dba978cc5ffcb499e5348dcbae5343f2e816bca3ae9de63b8cdd4055618320727556307423a8a0c14f60a0743ba73bfc49181d788f9191d636940b7b783f01c1
+binfiles arch=x86_64-darwinlegacy size=1
+ bin/x86_64-darwinlegacy/hyperxmp-add-bytecount
+
+name hyperxmp.x86_64-linux
+category Package
+revision 56984
+shortdesc x86_64-linux files of hyperxmp
+containersize 356
+containerchecksum 7eba3567c55235b7108a10f47b63f0150b70e52505491e4dd04caf1e906baa46435c3bf711127fea73a4f212fe586a460fb92c76b22c2fc673ae770b60dcdcf2
+binfiles arch=x86_64-linux size=1
+ bin/x86_64-linux/hyperxmp-add-bytecount
+
+name hyperxmp.x86_64-linuxmusl
+category Package
+revision 56984
+shortdesc x86_64-linuxmusl files of hyperxmp
+containersize 360
+containerchecksum 4f00ba444df3a11587f26386282aa90c8135d52052358f94d20953e23ea80f3bf5a97fdb4def10e8ef67b24b3393628739d564de81df20bb23131098102ce9d4
+binfiles arch=x86_64-linuxmusl size=1
+ bin/x86_64-linuxmusl/hyperxmp-add-bytecount
+
+name hyperxmp.x86_64-solaris
+category Package
+revision 56984
+shortdesc x86_64-solaris files of hyperxmp
+containersize 356
+containerchecksum 866d9eb2c5b83f93e683ae86d336f5322b79cb8f91ff2de7273014eb7a305a8c107dcf1a9dc0558f01f6866f9bb42b18cbd7c6c69a120c2f19e91374dddbcaa5
+binfiles arch=x86_64-solaris size=1
+ bin/x86_64-solaris/hyperxmp-add-bytecount
name hyph-utf8
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index b299b15514..d15612f3ad 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-9c66d9037dc0cc97efe8999ac5973ede texlive.tlpdb
+e26395a9112f6692ecfcd9af6d5154eb texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 872bfade98..a777df404f 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-1815b0b23fec5266894265a26f06e24163cdb7d12253ba53f845e45696e034fcfec67761605994357ef9d2a4adab3df0fe4edc70af975251f513ea44a82b82d0 texlive.tlpdb
+e9bcd9e10864ffbce430f95d8eccf7be80e5fc85bdf2dd4c6f3845b628d1913b33c378e5d381f041dddfbbc1cb57ad951a147ba6cd3ebaa6a7c1b9f0b04caef7 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 42ae49f4ac..dfbf258c6a 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJfubecAAoJEEzhh34ZQ4xwiMcIALCPLWMewK4Ip5cUfd+Y9vu7
-8ANwX1aFwTcv44USryD1Uv7K5tzA2i5yY96ffTSg1zdAm5AcT8fz77I2v13/ZqG6
-MopfpkvAS8ptB96gENnqQd/fQdAqymwF31qjzAapNBbrb65tyli0yMGC388GCy91
-gNLSQK8mYUrGPi3BitXFXPezV0totXn+xiv3maiXZmRs2HeeDDKvjwSyH7QpIfOL
-8NeQut+qFi46sBtN5mYsH1MJFZOoMxR3du7txcBlTpRZp0URwOXPK+wzG+JFhTr4
-neuXPaEGzJrV9oto5/iHDttrxcL6lLShjgvSP2b3KYTcOvTWcB1OThGSUZ6/0PU=
-=guAo
+iQEcBAEBCgAGBQJfuwj5AAoJEEzhh34ZQ4xw7n0H/jXLOCrxOUPqv7MADH32rbX+
+pPjZZMTP3ql2N8S5Pv0EqPGLrbDeFI/Ke5G5+evgk0qxiXtM+DwKBnPLSB2tEXXB
+Czy9CC7fgji2TwAUs4RUcDTzJ174JchPemwQgvJFV2gRxagUMAE1f9QyioKEgMKk
+ShBrlcOqS4fHJRD416gI84ud2iDAp1S1KSjUl08IM56UWV45f9+BSe8bE0WXSYHP
+WBT3E2agt4bw/YNFlc0yAXnqqIalBo7QyUuf6Cxjnmsfho2yQvrcpjjhUBgTW9HW
+eGqyXvtqSjUqlDf9a0pl9iDdO2C1e4uvHHbB/rC21Q27wPbtmL/cIywEkUaH5e8=
+=g3IW
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 7ae0b33f5f..97018392e5 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 3da2a11264..488747db9d 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1606079658
+date=1606166052
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=8e887be25f5b68146d2e167003b66940
+lstdigest=e597868af628e2e8eddc51a042810177
numpkg=4003
relstate=next
-version=7631
+version=7632
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: YLlP4MBfmWZ7SZHzqTRsx7XDH4ev9ui2Hf4T3ziBXIMcZevAKbLR/Tc+e0fHdojEYd+9wSOcpYTearMy2LwynHnMNcKtCLwAV+VlWlckq5SbnxPBojarDyz9z7NMOncXyMHzokYAcoOuKiPlGJP6wIdXOJlyz+LyMw43rFRKIhr5BxeCssJCTKQ/B3xjFy6c/wQn9N/QS/V+xKM+lUxBGQnd3Lq1Ss3sbUl4OLLfg32XylsA00NM3q+XTjRBX3H0DktHIZAEflF3bdaE/eS/O8OBRLAFXc3I4LDBROGbEleFnZD4rYDvfGtwoq1BSCjlTkWvSMjsHzIXceqQHAtzXw==
+;;;; signature/miktex: voak+kKBCIDXcfWTOO6cOQfxlMuHl8P4LUOf6WQwFXjlSOq0LSSFm9R5Pj0212Bmgn7Yw95uDG0ygym6YZiLFxlmWmdaL5C5kFO6AAI5/UwYEEudyv3E8ppCvIqOAztN5Fzb7eALyTOORoz1P2TdoLAKu0me5Fg+ioeRY/E0eirE0TQ/JX/X5Ns20OJ9Vsi88hyXE6LauIvK0wM1zMTu/g/jFCmPzS2cRWWsQBTyMguyCyeQ1BNWSlh11fGDzj0JNP0/4QvZEijkVTBO+4U7N+H4TfRq1Va7MkvfV+YMadiV5MC/Nqa2Q62PfOUINVe0gkkg6bUs4Ipz/KwFgNX8Og==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 41efe4ef63..b861de18fa 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1606079480
+date=1606165867
lastupd=acro algolrevived baskervaldx bookmark causets jnuexam kvoptions latexindent leaflet libertinust1math mlacls modiagram nicematrix numspell pm-isomath quantumarticle reledmac semantex subfiles tex4ebook
-lstdigest=ff7f7d4599aab77df936e02b66bf0dd2
+lstdigest=731dc41d51e49aef5534bd13ba31ba3a
numpkg=4003
relstate=stable
-version=7631
+version=7632
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: vArtQN8z18EPPlIicy3uAFtzXqpthrLWzmEfc6eDS62n0TXE2p0+RQLrfLyS6yJvpWtaI+lT+0CxP+kdi3wNE7sBEOxBFrb4LWn+VVRGhjHm2N7dRdMiYwDyfId6EarSQeM3QmZlf2B2EyuA6/TlZVGaktPInbLSDVGuBBtD+0PCP4YI370uUuKZkiyg1cI4a+b5P9VsRgN9+BkDQLYQon6bESGgFiQHNWcmuf7u4oZ7fCJ0P+umP9dZNyXBqpFATTzz8JqJwbmIBxedjPBojhT7HMas3igWBazLK7Og9lHv1/zn54Ec+MCphedlVOrOcrHg/h0ku/LI9piLGC/N+g==
+;;;; signature/miktex: Fqrl4F5MaYOeG0bAqkdDlfYENys3td+bev/l4CdkYx30LQzvB8B7wLHsojzwKrPBFZV+dQ8g8QLnDxqxkTiXHMnAW2y+U1NQPgl5kAj8JSsORAyPEsRIHtwvc/gPw4qDwppN4B/psVsjsLUtWz7HiB+yWU+Jky8f1l+T4HC/1gbAB1Vz6q3VB2LlCibTKj5DFzABgTw39qe624qL5Bw5IIrF7PVK6STVnBv1CPZlwZlZ6Eibn92jaJ588U/ft958wJOZLPlKrgOyHgLna7K+Gt3LeEdvs796QOGszTP+Du3QzgZoV2OMhxnDRRSbMLUaI/xQRKjXYcfL+ZdRS3s3dQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index a028dcf381..095b261e92 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -3,6 +3,8 @@
[2020/11/22]
(01) ltxpkgdocs.tar.xz
Update documents for packages.
+(02) tex4htk-w32.tar.xz
+ Update caption.4ht.
[2020/11/21]
(01) aleph-w32.tar.xz
diff --git a/timestamp b/timestamp
index c46661e5b7..7a405ce922 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2020-11-23-02-02
+2020-11-24-02-02