summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-10 03:00:43 +0000
committerNorbert Preining <norbert@preining.info>2024-02-10 03:00:43 +0000
commit1d28728327083b2e09300af044d37336abafbe02 (patch)
tree587bf83e2f85c0a4ef67c12707de3395e6194e9c
parentfa4b456400bb2b415dcbbfe785542c50e9dd61e3 (diff)
CTAN sync 202402100300
-rw-r--r--FILES.byname255
-rw-r--r--FILES.byname.gzbin2634518 -> 2634707 bytes
-rw-r--r--FILES.last07days276
-rw-r--r--biblio/ctan-bibdata/ctan.bib46
-rw-r--r--fonts/newtx/README6
-rw-r--r--fonts/newtx/doc/newtxdoc.pdfbin684099 -> 684402 bytes
-rw-r--r--fonts/newtx/doc/newtxdoc.tex24
-rw-r--r--fonts/newtx/tex/newtx.sty44
-rw-r--r--fonts/newtx/tex/newtxtext.sty17
-rw-r--r--graphics/pgf/contrib/circuitikz/README.md8
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/changelog.tex32
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdfbin13459 -> 13460 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdfbin1738145 -> 1761778 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex122
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz.sty12
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex1
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex92
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex10
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex158
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex16
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdfbin1727093 -> 1735647 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex227
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib182
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx40
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx106
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714texttobib.pl65
-rw-r--r--macros/latex/contrib/contract/LICENSE.md19
-rw-r--r--macros/latex/contrib/contract/MANIFEST.md107
-rw-r--r--macros/latex/contrib/contract/README.md238
-rw-r--r--macros/latex/contrib/contract/contract-example-de.pdfbin0 -> 56928 bytes
-rw-r--r--macros/latex/contrib/contract/contract-example-de.tex145
-rw-r--r--macros/latex/contrib/contract/contract-example-en.pdfbin0 -> 58111 bytes
-rw-r--r--macros/latex/contrib/contract/contract-example-en.tex143
-rw-r--r--macros/latex/contrib/contract/contract.dtx3551
-rw-r--r--macros/latex/contrib/contract/contract.pdfbin0 -> 770987 bytes
-rw-r--r--macros/latex/contrib/nameauth/Makefile4
-rw-r--r--macros/latex/contrib/nameauth/README.md122
-rw-r--r--macros/latex/contrib/nameauth/nameauth.dtx6735
-rw-r--r--macros/latex/contrib/nameauth/nameauth.pdfbin1577041 -> 1621233 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb162
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2545236 -> 2548132 bytes
-rw-r--r--timestamp2
84 files changed, 10116 insertions, 4031 deletions
diff --git a/FILES.byname b/FILES.byname
index 40a46c0cc7..467e37cd35 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2077,12 +2077,12 @@
2023/10/05 | 1710 | biblio/citation-style-language/README.md
2023/10/05 | 12878 | biblio/citation-style-language/vancouver.csl
2023/10/05 | 4531754 | biblio/citation-style-language.zip
-2024/02/08 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/02/09 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2024/02/08 | 2844170 | biblio/ctan-bibdata/ctan.bib
-2024/02/08 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/02/09 | 2844940 | biblio/ctan-bibdata/ctan.bib
+2024/02/09 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2024/02/08 | 4116614 | biblio/ctan-bibdata.zip
+2024/02/09 | 4116858 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5444,7 +5444,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
-2024/02/08 | 63228 | FILES.last07days
+2024/02/09 | 62748 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -88653,8 +88653,8 @@
2015/01/31 | 478 | fonts/newtx/doc/MANIFEST-newtx.txt
2013/09/09 | 188187 | fonts/newtx/doc/mathnotes.pdf
2013/09/09 | 4388 | fonts/newtx/doc/mathnotes.tex
-2024/01/10 | 684099 | fonts/newtx/doc/newtxdoc.pdf
-2024/01/10 | 131652 | fonts/newtx/doc/newtxdoc.tex
+2024/02/08 | 684402 | fonts/newtx/doc/newtxdoc.pdf
+2024/02/08 | 132314 | fonts/newtx/doc/newtxdoc.tex
2012/05/27 | 17530 | fonts/newtx/doc/sample-lib-crop.pdf
2012/05/22 | 18519 | fonts/newtx/doc/sample-libmtp-crop.pdf
2012/05/06 | 18157 | fonts/newtx/doc/sample-mtp-crop.pdf
@@ -88739,7 +88739,7 @@
2023/09/20 | 217888 | fonts/newtx/opentype/TeXGyreTermesX-Italic.otf
2023/10/29 | 226088 | fonts/newtx/opentype/TeXGyreTermesX-Regular.otf
2023/11/15 | 240740 | fonts/newtx/opentype/TeXGyreTermesX-Slanted.otf
-2024/01/11 | 47569 | fonts/newtx/README
+2024/02/09 | 47922 | fonts/newtx/README
2023/05/07 | 245268 | fonts/newtxsf/doc/newtxsf-doc.pdf
2023/05/07 | 6715 | fonts/newtxsf/doc/newtxsf-doc.tex
2014/09/30 | 43780 | fonts/newtxsf/doc/OFL-FAQ.txt
@@ -88791,9 +88791,9 @@
2019/10/01 | 164 | fonts/newtx/tex/newtx-ebgaramond-subs.tex
2019/10/01 | 149 | fonts/newtx/tex/newtx-libertine-subs.tex
2023/12/20 | 141079 | fonts/newtx/tex/newtxmath.sty
-2023/12/19 | 27844 | fonts/newtx/tex/newtx.sty
+2024/02/09 | 28784 | fonts/newtx/tex/newtx.sty
2020/12/19 | 144 | fonts/newtx/tex/newtx-subs.tex
-2024/01/11 | 29988 | fonts/newtx/tex/newtxtext.sty
+2024/02/09 | 30013 | fonts/newtx/tex/newtxtext.sty
2019/10/23 | 818 | fonts/newtx/tex/omlntxebgmi.fd
2016/10/07 | 1919 | fonts/newtx/tex/omlntxmi.fd
2018/04/27 | 781 | fonts/newtx/tex/omlntxstx2mi.fd
@@ -89854,7 +89854,7 @@
2019/11/02 | 2656 | fonts/newtx/vf/zutbmi.vf
2021/03/22 | 2176 | fonts/newtx/vf/zutmia.vf
2019/11/02 | 2552 | fonts/newtx/vf/zutmi.vf
-2024/01/11 | 9651078 | fonts/newtx.zip
+2024/02/09 | 9651778 | fonts/newtx.zip
2005/10/24 | 6224 | fonts/niceframe/afm/bbding10.afm
2005/10/24 | 2299 | fonts/niceframe/afm/dingbat.afm
2005/10/24 | 9099 | fonts/niceframe/afm/karta15.afm
@@ -172084,60 +172084,60 @@
2019/04/14 | 24014 | graphics/pgf/contrib/chordbox/chordbox.tex
2019/04/14 | 1125 | graphics/pgf/contrib/chordbox/README.md
2019/04/15 | 567774 | graphics/pgf/contrib/chordbox.zip
-2023/12/09 | 53795 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
-2023/12/09 | 13459 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
-2023/12/09 | 1512 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
-2023/12/09 | 1738145 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
-2023/12/09 | 554784 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
-2023/12/09 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
-2023/12/09 | 8445 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
-2023/12/09 | 5088 | graphics/pgf/contrib/circuitikz/README.md
-2023/12/09 | 364117 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
-2023/12/09 | 728 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
-2023/12/09 | 393884 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
-2023/12/09 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
-2023/12/09 | 403567 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
-2023/12/09 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
-2023/12/09 | 422295 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
-2023/12/09 | 641 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
-2023/12/09 | 690729 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
-2023/12/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
-2023/12/09 | 758991 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
-2023/12/09 | 633 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
-2023/12/09 | 841340 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
-2023/12/09 | 626 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
-2023/12/09 | 937130 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
-2023/12/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
-2023/12/09 | 1021798 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
-2023/12/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
-2023/12/09 | 1081680 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
-2023/12/09 | 631 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
-2023/12/09 | 13737 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
-2023/12/09 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
-2023/12/09 | 3150 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
-2023/12/09 | 2188 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
-2023/12/09 | 299395 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
-2023/12/09 | 9538 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
-2023/12/09 | 42380 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
-2023/12/09 | 9804 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
-2023/12/09 | 15442 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
-2023/12/09 | 57153 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
-2023/12/09 | 140094 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
-2023/12/09 | 16722 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
-2023/12/09 | 84261 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
-2023/12/09 | 32826 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
-2023/12/09 | 384633 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
-2023/12/09 | 14587 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
-2023/12/09 | 36148 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
-2023/12/09 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
-2023/12/09 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
-2023/12/09 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
-2023/12/09 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
-2023/12/09 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
-2023/12/09 | 1014383 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
-2023/12/09 | 1073051 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
-2023/12/09 | 3901 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
-2023/12/09 | 3346294 | graphics/pgf/contrib/circuitikz.zip
+2024/02/09 | 54936 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
+2024/02/09 | 13460 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+2024/02/09 | 1512 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+2024/02/09 | 1761778 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+2024/02/09 | 560868 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+2024/02/09 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
+2024/02/09 | 8445 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
+2024/02/09 | 5088 | graphics/pgf/contrib/circuitikz/README.md
+2024/02/09 | 364117 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
+2024/02/09 | 728 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
+2024/02/09 | 393884 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
+2024/02/09 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
+2024/02/09 | 403567 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
+2024/02/09 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
+2024/02/09 | 422295 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
+2024/02/09 | 641 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
+2024/02/09 | 690729 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
+2024/02/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
+2024/02/09 | 758991 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
+2024/02/09 | 633 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
+2024/02/09 | 841340 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
+2024/02/09 | 626 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
+2024/02/09 | 937130 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
+2024/02/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
+2024/02/09 | 1021798 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
+2024/02/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
+2024/02/09 | 1081680 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
+2024/02/09 | 631 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
+2024/02/09 | 13737 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+2024/02/09 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
+2024/02/09 | 3150 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
+2024/02/09 | 2240 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
+2024/02/09 | 301035 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+2024/02/09 | 9538 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+2024/02/09 | 42380 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+2024/02/09 | 9804 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+2024/02/09 | 15442 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+2024/02/09 | 57153 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
+2024/02/09 | 140094 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+2024/02/09 | 16722 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+2024/02/09 | 89399 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+2024/02/09 | 32826 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+2024/02/09 | 384633 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+2024/02/09 | 14587 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
+2024/02/09 | 36148 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+2024/02/09 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
+2024/02/09 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
+2024/02/09 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
+2024/02/09 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
+2024/02/09 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
+2024/02/09 | 1014383 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
+2024/02/09 | 1073051 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
+2024/02/09 | 3965 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+2024/02/09 | 3372649 | graphics/pgf/contrib/circuitikz.zip
2023/10/06 | 136241 | graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.pdf
2023/10/06 | 13137 | graphics/pgf/contrib/circularglyphs/doc/circularglyphs-doc.tex
2023/10/06 | 44763 | graphics/pgf/contrib/circularglyphs/doc/circularglyphs-sample.pdf
@@ -206569,7 +206569,7 @@
2023/01/15 | 12260744 | 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
-2023/12/09 | 3367473 | install/graphics/pgf/contrib/circuitikz.tds.zip
+2024/02/09 | 3394056 | install/graphics/pgf/contrib/circuitikz.tds.zip
2023/08/24 | 640925 | install/graphics/pgf/contrib/commutative-diagrams.tds.zip
2014/06/15 | 843875 | install/graphics/pgf/contrib/logicpuzzle.tds.zip
2021/05/15 | 17583452 | install/graphics/pgf/contrib/pgfplots.tds.zip
@@ -206671,6 +206671,7 @@
2010/07/10 | 510716 | install/macros/latex/contrib/combine.tds.zip
2008/05/22 | 339932 | install/macros/latex/contrib/conferences/active-conf.tds.zip
2008/05/21 | 226177 | install/macros/latex/contrib/conferences/icsv.tds.zip
+2024/02/08 | 941417 | install/macros/latex/contrib/contract.tds.zip
2009/06/06 | 535939 | install/macros/latex/contrib/cpssp.tds.zip
2022/09/14 | 349032 | install/macros/latex/contrib/csquotes.tds.zip
2024/01/19 | 2140492 | install/macros/latex/contrib/csvsimple.tds.zip
@@ -226915,16 +226916,16 @@
2017/11/21 | 1662 | macros/latex/contrib/biblatex-contrib/biblatex-fiwi/latex/dbx/fiwi.dbx
2017/11/21 | 2941 | macros/latex/contrib/biblatex-contrib/biblatex-fiwi/README
2017/11/21 | 793984 | macros/latex/contrib/biblatex-contrib/biblatex-fiwi.zip
-2023/09/11 | 1727093 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
+2024/02/09 | 1735647 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
2023/05/25 | 17234 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex
-2023/09/11 | 230592 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
+2024/02/09 | 234027 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
2023/04/10 | 33217 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-css.bbx
2023/04/24 | 5121 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-css.cbx
2023/04/02 | 10735 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.bbx
2023/04/24 | 5888 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.cbx
2023/04/25 | 27143 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-jmw.bbx
2023/04/25 | 6705 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-jmw.cbx
-2022/04/16 | 132176 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib
+2024/02/09 | 136446 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib
2021/08/19 | 7077 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.bbx
2021/08/19 | 780 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.cbx
2021/08/19 | 7058 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.bbx
@@ -226933,14 +226934,14 @@
2021/08/19 | 520 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005ay.cbx
2021/12/11 | 3184 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.bbx
2021/08/19 | 643 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2005.cbx
-2023/09/11 | 176983 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
+2024/02/09 | 179996 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
2023/05/25 | 19645 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
-2023/09/11 | 178497 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
+2024/02/09 | 179434 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
2023/06/18 | 20259 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx
2021/08/19 | 924 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015-gbk.def
-2023/04/27 | 124626 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
+2024/02/09 | 125117 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
2021/09/11 | 515 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx
-2023/04/27 | 145060 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
+2024/02/09 | 145551 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
2022/06/26 | 15816 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
2022/05/27 | 18353 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.bbx
2022/03/14 | 941 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-CCNU.cbx
@@ -226948,10 +226949,10 @@
2022/03/14 | 1654 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-NWAFU.cbx
2022/04/03 | 10511 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.bbx
2022/03/14 | 415 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-SEU.cbx
-2021/09/11 | 56865 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714texttobib.pl
+2023/09/13 | 58155 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714texttobib.pl
2023/04/27 | 5660 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/makeall.py
-2023/09/11 | 75748 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
-2023/09/11 | 1777467 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip
+2024/02/09 | 76557 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
+2024/02/09 | 1790083 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip
2023/02/22 | 167639 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/biblatex-german-legal.pdf
2023/02/22 | 18622 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/biblatex-german-legal.tex
2023/02/22 | 11374 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/german-legal-book.bbx
@@ -230401,6 +230402,16 @@
2019/03/03 | 1051 | macros/latex/contrib/contracard/Makefile
2019/03/03 | 540 | macros/latex/contrib/contracard/README
2019/03/03 | 201832 | macros/latex/contrib/contracard.zip
+2024/02/08 | 137430 | macros/latex/contrib/contract/contract.dtx
+2024/02/08 | 56928 | macros/latex/contrib/contract/contract-example-de.pdf
+2024/02/08 | 3732 | macros/latex/contrib/contract/contract-example-de.tex
+2024/02/08 | 58111 | macros/latex/contrib/contract/contract-example-en.pdf
+2024/02/08 | 3417 | macros/latex/contrib/contract/contract-example-en.tex
+2024/02/08 | 770987 | macros/latex/contrib/contract/contract.pdf
+2024/02/08 | 1081 | macros/latex/contrib/contract/LICENSE.md
+2024/02/08 | 2615 | macros/latex/contrib/contract/MANIFEST.md
+2024/02/08 | 10339 | macros/latex/contrib/contract/README.md
+2024/02/09 | 900887 | macros/latex/contrib/contract.zip
2017/03/20 | 15255 | macros/latex/contrib/conv-xkv/conv-xkv.dtx
2016/12/21 | 2012 | macros/latex/contrib/conv-xkv/conv-xkv.ins
2017/03/20 | 86415 | macros/latex/contrib/conv-xkv/doc/conv-xkv.pdf
@@ -243652,15 +243663,15 @@
2023/08/11 | 727116 | macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
2023/08/11 | 1428 | macros/latex/contrib/naive-ebnf/README.md
2023/08/11 | 723302 | macros/latex/contrib/naive-ebnf.zip
-2023/02/03 | 68498 | macros/latex/contrib/nameauth/beamer01.pdf
-2023/02/03 | 68500 | macros/latex/contrib/nameauth/beamer02.pdf
-2023/02/03 | 68492 | macros/latex/contrib/nameauth/beamer03.pdf
-2023/02/03 | 88992 | macros/latex/contrib/nameauth/cat01.pdf
-2023/02/03 | 13545 | macros/latex/contrib/nameauth/Makefile
-2023/02/03 | 611536 | macros/latex/contrib/nameauth/nameauth.dtx
-2023/02/03 | 1577041 | macros/latex/contrib/nameauth/nameauth.pdf
-2023/02/03 | 26721 | macros/latex/contrib/nameauth/README.md
-2023/02/04 | 1984070 | macros/latex/contrib/nameauth.zip
+2024/01/10 | 68498 | macros/latex/contrib/nameauth/beamer01.pdf
+2024/01/10 | 68500 | macros/latex/contrib/nameauth/beamer02.pdf
+2024/01/10 | 68492 | macros/latex/contrib/nameauth/beamer03.pdf
+2024/01/10 | 88992 | macros/latex/contrib/nameauth/cat01.pdf
+2024/01/25 | 13546 | macros/latex/contrib/nameauth/Makefile
+2024/02/09 | 636130 | macros/latex/contrib/nameauth/nameauth.dtx
+2024/02/09 | 1621233 | macros/latex/contrib/nameauth/nameauth.pdf
+2024/02/09 | 26621 | macros/latex/contrib/nameauth/README.md
+2024/02/09 | 2030794 | macros/latex/contrib/nameauth.zip
2022/12/15 | 1116 | macros/latex/contrib/namedtensor/LICENSE.md
2022/12/15 | 611 | macros/latex/contrib/namedtensor/namedtensor.sty
2022/12/15 | 1302 | macros/latex/contrib/namedtensor/README.md
@@ -306253,7 +306264,7 @@
2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz
2023/05/16 | 400 | systems/texlive/tlnet/archive/collection-langportuguese.r67125.tar.xz
2023/06/09 | 396 | systems/texlive/tlnet/archive/collection-langspanish.r67307.tar.xz
-2024/01/25 | 7100 | systems/texlive/tlnet/archive/collection-latexextra.r69580.tar.xz
+2024/02/09 | 7100 | systems/texlive/tlnet/archive/collection-latexextra.r69752.tar.xz
2023/12/14 | 704 | systems/texlive/tlnet/archive/collection-latex.r69131.tar.xz
2023/12/14 | 736 | systems/texlive/tlnet/archive/collection-latexrecommended.r69131.tar.xz
2024/01/13 | 1020 | systems/texlive/tlnet/archive/collection-luatex.r69404.tar.xz
@@ -307079,8 +307090,8 @@
2023/02/25 | 14468 | systems/texlive/tlnet/archive/denisbdoc.doc.r66137.tar.xz
2023/02/25 | 15584 | systems/texlive/tlnet/archive/denisbdoc.r66137.tar.xz
2023/02/25 | 22704 | systems/texlive/tlnet/archive/denisbdoc.source.r66137.tar.xz
-2023/11/10 | 225856 | systems/texlive/tlnet/archive/derivative.doc.r68787.tar.xz
-2023/11/10 | 10316 | systems/texlive/tlnet/archive/derivative.r68787.tar.xz
+2024/02/09 | 223524 | systems/texlive/tlnet/archive/derivative.doc.r69746.tar.xz
+2024/02/09 | 10424 | systems/texlive/tlnet/archive/derivative.r69746.tar.xz
2023/02/20 | 46664 | systems/texlive/tlnet/archive/detex.aarch64-linux.r65927.tar.xz
2023/02/18 | 49376 | systems/texlive/tlnet/archive/detex.amd64-freebsd.r65877.tar.xz
2023/02/20 | 44048 | systems/texlive/tlnet/archive/detex.amd64-netbsd.r65923.tar.xz
@@ -307612,9 +307623,9 @@
2021/07/19 | 313228 | systems/texlive/tlnet/archive/easing.doc.r59975.tar.xz
2021/07/19 | 2220 | systems/texlive/tlnet/archive/easing.r59975.tar.xz
2021/07/19 | 7876 | systems/texlive/tlnet/archive/easing.source.r59975.tar.xz
-2024/02/08 | 621996 | systems/texlive/tlnet/archive/easybook.doc.r69742.tar.xz
-2024/02/08 | 16396 | systems/texlive/tlnet/archive/easybook.r69742.tar.xz
-2024/02/08 | 16292 | systems/texlive/tlnet/archive/easybook.source.r69742.tar.xz
+2024/02/09 | 617724 | systems/texlive/tlnet/archive/easybook.doc.r69747.tar.xz
+2024/02/09 | 16472 | systems/texlive/tlnet/archive/easybook.r69747.tar.xz
+2024/02/09 | 16368 | systems/texlive/tlnet/archive/easybook.source.r69747.tar.xz
2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz
2023/10/12 | 344 | systems/texlive/tlnet/archive/easydtx.aarch64-linux.r68514.tar.xz
2023/10/12 | 344 | systems/texlive/tlnet/archive/easydtx.amd64-freebsd.r68514.tar.xz
@@ -307833,6 +307844,8 @@
2021/07/18 | 43104 | systems/texlive/tlnet/archive/emoji.r59961.tar.xz
2023/04/27 | 119612 | systems/texlive/tlnet/archive/emo.r66944.tar.xz
2023/04/27 | 14440 | systems/texlive/tlnet/archive/emo.source.r66944.tar.xz
+2024/02/09 | 31576 | systems/texlive/tlnet/archive/emotion.doc.r69752.tar.xz
+2024/02/09 | 1352 | systems/texlive/tlnet/archive/emotion.r69752.tar.xz
2019/02/28 | 212864 | systems/texlive/tlnet/archive/emp.doc.r23483.tar.xz
2019/02/28 | 3236 | systems/texlive/tlnet/archive/emp.r23483.tar.xz
2019/02/28 | 9284 | systems/texlive/tlnet/archive/emp.source.r23483.tar.xz
@@ -308128,9 +308141,9 @@
2019/02/28 | 277732 | systems/texlive/tlnet/archive/eurosym.doc.r17265.tar.xz
2019/02/28 | 139880 | systems/texlive/tlnet/archive/eurosym.r17265.tar.xz
2020/03/04 | 25788 | systems/texlive/tlnet/archive/euxm.r54074.tar.xz
-2023/08/26 | 582032 | systems/texlive/tlnet/archive/evangelion-jfm.doc.r68059.tar.xz
-2023/08/26 | 3460 | systems/texlive/tlnet/archive/evangelion-jfm.r68059.tar.xz
-2023/08/26 | 16632 | systems/texlive/tlnet/archive/evangelion-jfm.source.r68059.tar.xz
+2024/02/09 | 582400 | systems/texlive/tlnet/archive/evangelion-jfm.doc.r69751.tar.xz
+2024/02/09 | 3468 | systems/texlive/tlnet/archive/evangelion-jfm.r69751.tar.xz
+2024/02/09 | 16636 | systems/texlive/tlnet/archive/evangelion-jfm.source.r69751.tar.xz
2019/02/28 | 116288 | systems/texlive/tlnet/archive/everyhook.doc.r35675.tar.xz
2019/02/28 | 2080 | systems/texlive/tlnet/archive/everyhook.r35675.tar.xz
2019/02/28 | 7344 | systems/texlive/tlnet/archive/everyhook.source.r35675.tar.xz
@@ -310272,13 +310285,13 @@
2019/02/28 | 344 | systems/texlive/tlnet/archive/l3build.amd64-freebsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.amd64-netbsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.armhf-linux.r46894.tar.xz
-2024/01/20 | 752832 | systems/texlive/tlnet/archive/l3build.doc.r69495.tar.xz
+2024/02/09 | 754064 | systems/texlive/tlnet/archive/l3build.doc.r69748.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-freebsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-linux.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-netbsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-solaris.r46894.tar.xz
-2024/01/20 | 36768 | systems/texlive/tlnet/archive/l3build.r69495.tar.xz
-2024/01/20 | 31808 | systems/texlive/tlnet/archive/l3build.source.r69495.tar.xz
+2024/02/09 | 36836 | systems/texlive/tlnet/archive/l3build.r69748.tar.xz
+2024/02/09 | 31884 | systems/texlive/tlnet/archive/l3build.source.r69748.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/l3build.universal-darwin.r57908.tar.xz
2023/02/20 | 2308 | systems/texlive/tlnet/archive/l3build.windows.r65891.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/l3build.x86_64-cygwin.r46894.tar.xz
@@ -313695,12 +313708,12 @@
2024/01/23 | 1336892 | systems/texlive/tlnet/archive/profcollege.r69539.tar.xz
2022/04/27 | 134096 | systems/texlive/tlnet/archive/proflabo.doc.r63147.tar.xz
2022/04/27 | 2748 | systems/texlive/tlnet/archive/proflabo.r63147.tar.xz
-2024/01/30 | 1808456 | systems/texlive/tlnet/archive/proflycee.doc.r69630.tar.xz
-2024/01/30 | 54928 | systems/texlive/tlnet/archive/proflycee.r69630.tar.xz
+2024/02/09 | 3425796 | systems/texlive/tlnet/archive/proflycee.doc.r69749.tar.xz
+2024/02/09 | 55980 | systems/texlive/tlnet/archive/proflycee.r69749.tar.xz
2024/01/22 | 297292 | systems/texlive/tlnet/archive/profmaquette.doc.r69526.tar.xz
2024/01/22 | 22356 | systems/texlive/tlnet/archive/profmaquette.r69526.tar.xz
-2023/12/14 | 397408 | systems/texlive/tlnet/archive/profsio.doc.r69125.tar.xz
-2023/12/14 | 12660 | systems/texlive/tlnet/archive/profsio.r69125.tar.xz
+2024/02/09 | 438260 | systems/texlive/tlnet/archive/profsio.doc.r69745.tar.xz
+2024/02/09 | 14624 | systems/texlive/tlnet/archive/profsio.r69745.tar.xz
2019/02/28 | 49880 | systems/texlive/tlnet/archive/program.doc.r44214.tar.xz
2019/02/28 | 11780 | systems/texlive/tlnet/archive/program.r44214.tar.xz
2019/02/28 | 86236 | systems/texlive/tlnet/archive/progressbar.doc.r33822.tar.xz
@@ -315919,7 +315932,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2024/02/08 | 431936 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69731.tar.xz
+2024/02/09 | 432168 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69744.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -315941,7 +315954,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2024/02/08 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r69731.tar.xz
+2024/02/09 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r69744.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2023/05/14 | 60312 | systems/texlive/tlnet/archive/texlive-scripts.windows.r67095.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -316789,9 +316802,9 @@
2019/02/28 | 2324 | systems/texlive/tlnet/archive/ucharcat.source.r38907.tar.xz
2022/10/23 | 143504 | systems/texlive/tlnet/archive/ucharclasses.doc.r64782.tar.xz
2022/10/23 | 9188 | systems/texlive/tlnet/archive/ucharclasses.r64782.tar.xz
-2023/09/10 | 719340 | systems/texlive/tlnet/archive/ucph-revy.doc.r68224.tar.xz
-2023/09/10 | 4764 | systems/texlive/tlnet/archive/ucph-revy.r68224.tar.xz
-2023/09/10 | 28044 | systems/texlive/tlnet/archive/ucph-revy.source.r68224.tar.xz
+2024/02/09 | 720324 | systems/texlive/tlnet/archive/ucph-revy.doc.r69750.tar.xz
+2024/02/09 | 4788 | systems/texlive/tlnet/archive/ucph-revy.r69750.tar.xz
+2024/02/09 | 28316 | systems/texlive/tlnet/archive/ucph-revy.source.r69750.tar.xz
2023/11/10 | 1251668 | systems/texlive/tlnet/archive/ucs.doc.r68759.tar.xz
2019/11/09 | 427212 | systems/texlive/tlnet/archive/ucsmonograph.doc.r52698.tar.xz
2019/11/09 | 4664 | systems/texlive/tlnet/archive/ucsmonograph.r52698.tar.xz
@@ -317849,16 +317862,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2024/02/05 | 125030 | systems/texlive/tlnet/install-tl
-2024/02/08 | 5748551 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2024/02/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2024/02/08 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/02/09 | 5748185 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/02/09 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/02/09 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2024/02/08 | 21030994 | systems/texlive/tlnet/install-tl-windows.exe
-2024/02/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/02/08 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/02/08 | 26035519 | systems/texlive/tlnet/install-tl.zip
-2024/02/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/02/08 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/02/09 | 21031021 | systems/texlive/tlnet/install-tl-windows.exe
+2024/02/09 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/02/09 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/02/09 | 26035519 | systems/texlive/tlnet/install-tl.zip
+2024/02/09 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/02/09 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2023/03/19 | 1229 | systems/texlive/tlnet/README.md
2023/03/19 | 0 | systems/texlive/tlnet/TEXLIVE_2023
2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -317910,12 +317923,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2024/01/31 | 5840 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2024/02/08 | 19317221 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2024/02/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/02/09 | 19318808 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/02/09 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/01/31 | 87229 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2024/02/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2024/02/08 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/02/08 | 2545236 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/02/09 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/02/09 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/02/09 | 2548132 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -329046,7 +329059,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2024/02/09 | 186 | timestamp
+2024/02/10 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 5ce393c135..fd7a134a78 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 44ba4158cf..ef83bc6783 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,4 +1,119 @@
+2024/02/09 | 9804 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+2024/02/09 | 9651778 | fonts/newtx.zip
+2024/02/09 | 9538 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+2024/02/09 | 937130 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
+2024/02/09 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
+2024/02/09 | 900887 | macros/latex/contrib/contract.zip
+2024/02/09 | 89399 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+2024/02/09 | 8445 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
+2024/02/09 | 841340 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
+2024/02/09 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
+2024/02/09 | 76557 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
+2024/02/09 | 758991 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
+2024/02/09 | 754064 | systems/texlive/tlnet/archive/l3build.doc.r69748.tar.xz
+2024/02/09 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
+2024/02/09 | 728 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
+2024/02/09 | 720324 | systems/texlive/tlnet/archive/ucph-revy.doc.r69750.tar.xz
+2024/02/09 | 7100 | systems/texlive/tlnet/archive/collection-latexextra.r69752.tar.xz
+2024/02/09 | 690729 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
+2024/02/09 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
+2024/02/09 | 641 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
+2024/02/09 | 636130 | macros/latex/contrib/nameauth/nameauth.dtx
+2024/02/09 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
+2024/02/09 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
+2024/02/09 | 633 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
+2024/02/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
+2024/02/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
+2024/02/09 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
+2024/02/09 | 631 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
+2024/02/09 | 626 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
+2024/02/09 | 617724 | systems/texlive/tlnet/archive/easybook.doc.r69747.tar.xz
+2024/02/09 | 582400 | systems/texlive/tlnet/archive/evangelion-jfm.doc.r69751.tar.xz
+2024/02/09 | 5748185 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/02/09 | 57153 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
+2024/02/09 | 560868 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+2024/02/09 | 55980 | systems/texlive/tlnet/archive/proflycee.r69749.tar.xz
+2024/02/09 | 54936 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
+2024/02/09 | 5088 | graphics/pgf/contrib/circuitikz/README.md
+2024/02/09 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/02/09 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/02/09 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/02/09 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/02/09 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/02/09 | 47922 | fonts/newtx/README
+2024/02/09 | 4788 | systems/texlive/tlnet/archive/ucph-revy.r69750.tar.xz
+2024/02/09 | 438260 | systems/texlive/tlnet/archive/profsio.doc.r69745.tar.xz
+2024/02/09 | 432168 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69744.tar.xz
+2024/02/09 | 42380 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+2024/02/09 | 422295 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
+2024/02/09 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
+2024/02/09 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
+2024/02/09 | 4116858 | biblio/ctan-bibdata.zip
+2024/02/09 | 403567 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
+2024/02/09 | 3965 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+2024/02/09 | 393884 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
+2024/02/09 | 384633 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+2024/02/09 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/02/09 | 36836 | systems/texlive/tlnet/archive/l3build.r69748.tar.xz
+2024/02/09 | 364117 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
+2024/02/09 | 36148 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+2024/02/09 | 3468 | systems/texlive/tlnet/archive/evangelion-jfm.r69751.tar.xz
+2024/02/09 | 3425796 | systems/texlive/tlnet/archive/proflycee.doc.r69749.tar.xz
+2024/02/09 | 3394056 | install/graphics/pgf/contrib/circuitikz.tds.zip
+2024/02/09 | 3372649 | graphics/pgf/contrib/circuitikz.zip
+2024/02/09 | 32826 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+2024/02/09 | 31884 | systems/texlive/tlnet/archive/l3build.source.r69748.tar.xz
+2024/02/09 | 31576 | systems/texlive/tlnet/archive/emotion.doc.r69752.tar.xz
+2024/02/09 | 3150 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
+2024/02/09 | 301035 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+2024/02/09 | 30013 | fonts/newtx/tex/newtxtext.sty
+2024/02/09 | 28784 | fonts/newtx/tex/newtx.sty
+2024/02/09 | 2844940 | biblio/ctan-bibdata/ctan.bib
+2024/02/09 | 28316 | systems/texlive/tlnet/archive/ucph-revy.source.r69750.tar.xz
+2024/02/09 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
+2024/02/09 | 26621 | macros/latex/contrib/nameauth/README.md
+2024/02/09 | 26035519 | systems/texlive/tlnet/install-tl.zip
+2024/02/09 | 2548132 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/02/09 | 234027 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
+2024/02/09 | 2240 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
+2024/02/09 | 223524 | systems/texlive/tlnet/archive/derivative.doc.r69746.tar.xz
+2024/02/09 | 21031021 | systems/texlive/tlnet/install-tl-windows.exe
+2024/02/09 | 2030794 | macros/latex/contrib/nameauth.zip
+2024/02/09 | 19318808 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/02/09 | 179996 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
+2024/02/09 | 179434 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
+2024/02/09 | 1790083 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip
+2024/02/09 | 1761778 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+2024/02/09 | 1735647 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
+2024/02/09 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/02/09 | 16722 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+2024/02/09 | 16636 | systems/texlive/tlnet/archive/evangelion-jfm.source.r69751.tar.xz
+2024/02/09 | 16472 | systems/texlive/tlnet/archive/easybook.r69747.tar.xz
+2024/02/09 | 16368 | systems/texlive/tlnet/archive/easybook.source.r69747.tar.xz
+2024/02/09 | 1621233 | macros/latex/contrib/nameauth/nameauth.pdf
+2024/02/09 | 15442 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+2024/02/09 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/02/09 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/02/09 | 1512 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+2024/02/09 | 14624 | systems/texlive/tlnet/archive/profsio.r69745.tar.xz
+2024/02/09 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/02/09 | 14587 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
+2024/02/09 | 145551 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
+2024/02/09 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/02/09 | 140094 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+2024/02/09 | 13737 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+2024/02/09 | 136446 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib
+2024/02/09 | 1352 | systems/texlive/tlnet/archive/emotion.r69752.tar.xz
+2024/02/09 | 13460 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+2024/02/09 | 125117 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
+2024/02/09 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r69744.tar.xz
+2024/02/09 | 1081680 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
+2024/02/09 | 1073051 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
+2024/02/09 | 10424 | systems/texlive/tlnet/archive/derivative.r69746.tar.xz
+2024/02/09 | 1021798 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
+2024/02/09 | 1014383 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
2024/02/08 | 9457541 | systems/texlive/tlnet/update-tlmgr-r69740.sh
+2024/02/08 | 941417 | install/macros/latex/contrib/contract.tds.zip
2024/02/08 | 9073 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
2024/02/08 | 9012 | systems/texlive/tlnet/archive/musixtex.source.r69742.tar.xz
2024/02/08 | 886560 | systems/texlive/tlnet/archive/babel.source.r69742.tar.xz
@@ -11,12 +126,14 @@
2024/02/08 | 8093 | macros/latex/contrib/l3build/l3build-variables.lua
2024/02/08 | 8092 | systems/texlive/tlnet/archive/undar-digitacion.source.r69742.tar.xz
2024/02/08 | 7755 | macros/latex/contrib/l3build/l3build-arguments.lua
+2024/02/08 | 770987 | macros/latex/contrib/contract/contract.pdf
2024/02/08 | 750889 | macros/latex/contrib/l3build/l3build.pdf
2024/02/08 | 75043 | macros/latex/contrib/easybook/easybook.dtx
2024/02/08 | 742998 | macros/luatex/generic/evangelion-jfm.zip
2024/02/08 | 741028 | systems/texlive/tlnet/archive/bodeplot.doc.r69742.tar.xz
2024/02/08 | 7201 | macros/latex/contrib/l3build/l3build-manifest.lua
2024/02/08 | 7019 | macros/latex/contrib/l3build/l3build.lua
+2024/02/08 | 684402 | fonts/newtx/doc/newtxdoc.pdf
2024/02/08 | 6828 | systems/texlive/tlnet/archive/undar-digitacion.r69742.tar.xz
2024/02/08 | 67800 | systems/texlive/tlnet/archive/siunitx.r69742.tar.xz
2024/02/08 | 6482 | macros/latex/contrib/l3build/l3build-typesetting.lua
@@ -25,25 +142,20 @@
2024/02/08 | 6344 | systems/texlive/tlnet/archive/beamerthemeamurmaple.r69742.tar.xz
2024/02/08 | 6336 | macros/latex/contrib/l3build/l3build-aux.lua
2024/02/08 | 6240 | systems/texlive/tlnet/archive/non-decimal-units.r69742.tar.xz
-2024/02/08 | 621996 | systems/texlive/tlnet/archive/easybook.doc.r69742.tar.xz
2024/02/08 | 616 | macros/luatex/generic/evangelion-jfm/make.sh
2024/02/08 | 593897 | macros/latex/contrib/easybook/easybook.pdf
2024/02/08 | 5932 | systems/texlive/tlnet/archive/bodeplot.r69742.tar.xz
2024/02/08 | 58190 | macros/latex/contrib/derivative/derivative.sty
-2024/02/08 | 5748551 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/02/08 | 58111 | macros/latex/contrib/contract/contract-example-en.pdf
+2024/02/08 | 56928 | macros/latex/contrib/contract/contract-example-de.pdf
2024/02/08 | 5448 | systems/texlive/tlnet/archive/psizzl.doc.r69742.tar.xz
2024/02/08 | 5420 | systems/texlive/tlnet/archive/babel-slovenian.source.r69742.tar.xz
2024/02/08 | 5416 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
2024/02/08 | 51288 | systems/texlive/tlnet/archive/lollipop.r69742.tar.xz
2024/02/08 | 511988 | systems/texlive/tlnet/archive/startex.doc.r69742.tar.xz
2024/02/08 | 4973 | macros/latex/contrib/l3build/l3build-ctan.lua
-2024/02/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/02/08 | 488 | systems/texlive/tlnet/update-tlmgr-r69740.sh.sha512.asc
2024/02/08 | 488 | systems/texlive/tlnet/update-tlmgr-r69740.exe.sha512.asc
-2024/02/08 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/02/08 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2024/02/08 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/02/08 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/02/08 | 4792 | macros/luatex/generic/evangelion-jfm/README.md
2024/02/08 | 47623 | macros/luatex/generic/evangelion-jfm/Evangelion-JFM.dtx
2024/02/08 | 473 | macros/unicodetex/latex/emotion/emotion.lua
@@ -55,27 +167,24 @@
2024/02/08 | 437 | macros/luatex/generic/evangelion-jfm/makefile
2024/02/08 | 4353 | macros/latex/contrib/l3build/l3build-stdmain.lua
2024/02/08 | 432 | macros/unicodetex/latex/emotion/emotion.def
-2024/02/08 | 431936 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69731.tar.xz
2024/02/08 | 4156 | macros/latex/contrib/l3build/l3build-zip.lua
-2024/02/08 | 4116614 | biblio/ctan-bibdata.zip
2024/02/08 | 38591 | macros/latex/contrib/l3build/l3build-check.lua
-2024/02/08 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/02/08 | 3732 | macros/latex/contrib/contract/contract-example-de.tex
2024/02/08 | 361928 | systems/texlive/tlnet/archive/texlive.infra.r69740.tar.xz
2024/02/08 | 3503615 | macros/latex/contrib/proflycee.zip
+2024/02/08 | 3417 | macros/latex/contrib/contract/contract-example-en.tex
2024/02/08 | 341360 | systems/texlive/tlnet/archive/lollipop.doc.r69742.tar.xz
2024/02/08 | 33706 | macros/unicodetex/latex/emotion.zip
2024/02/08 | 3239220 | systems/texlive/tlnet/archive/asmeconf.doc.r69742.tar.xz
2024/02/08 | 31788 | systems/texlive/tlnet/archive/jadetex.doc.r69742.tar.xz
2024/02/08 | 3012 | macros/unicodetex/latex/emotion/doc/emotion-doc.tex
2024/02/08 | 29932 | systems/texlive/tlnet/archive/jadetex.r69742.tar.xz
-2024/02/08 | 2844170 | biblio/ctan-bibdata/ctan.bib
2024/02/08 | 28436 | systems/texlive/tlnet/archive/asmeconf.r69742.tar.xz
2024/02/08 | 278982 | macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-jp.pdf
2024/02/08 | 2746 | macros/latex/contrib/l3build/l3build-unpack.lua
2024/02/08 | 26890 | macros/unicodetex/latex/emotion/doc/emotion-doc.pdf
2024/02/08 | 265483 | macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-sc.pdf
-2024/02/08 | 26035519 | systems/texlive/tlnet/install-tl.zip
-2024/02/08 | 2545236 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/02/08 | 2615 | macros/latex/contrib/contract/MANIFEST.md
2024/02/08 | 25200 | systems/texlive/tlnet/archive/startex.source.r69742.tar.xz
2024/02/08 | 247256 | systems/texlive/tlnet/archive/beamertheme-focus.doc.r69742.tar.xz
2024/02/08 | 2469 | macros/latex/contrib/l3build/l3build-help.lua
@@ -89,36 +198,29 @@
2024/02/08 | 22171 | macros/luatex/generic/evangelion-jfm/jfm-eva.lua
2024/02/08 | 2165548 | systems/texlive/tlnet/archive/musixtex.doc.r69742.tar.xz
2024/02/08 | 2145 | macros/latex/contrib/l3build/l3build-clean.lua
-2024/02/08 | 21030994 | systems/texlive/tlnet/install-tl-windows.exe
2024/02/08 | 205047 | macros/latex/contrib/derivative/derivative.pdf
2024/02/08 | 203936 | systems/texlive/tlnet/archive/texlive.infra.doc.r69740.tar.xz
-2024/02/08 | 19317221 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2024/02/08 | 19312 | systems/texlive/tlnet/archive/jadetex.source.r69742.tar.xz
2024/02/08 | 1835867 | macros/latex/contrib/proflycee/doc/ProfLycee-docctan.zip
2024/02/08 | 18272 | systems/texlive/tlnet/archive/xmltex.r69742.tar.xz
2024/02/08 | 17624 | systems/texlive/tlnet/archive/bodeplot.source.r69742.tar.xz
2024/02/08 | 174560 | systems/texlive/tlnet/archive/non-decimal-units.doc.r69742.tar.xz
2024/02/08 | 17004 | systems/texlive/tlnet/archive/xmltex.doc.r69742.tar.xz
-2024/02/08 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2024/02/08 | 164073 | macros/luatex/generic/evangelion-jfm/Eva-JFM_doc-en.pdf
-2024/02/08 | 16396 | systems/texlive/tlnet/archive/easybook.r69742.tar.xz
-2024/02/08 | 16292 | systems/texlive/tlnet/archive/easybook.source.r69742.tar.xz
2024/02/08 | 16272 | macros/latex/contrib/proflycee/tex/proflycee-tools-ecritures.tex
2024/02/08 | 154 | systems/texlive/tlnet/update-tlmgr-r69740.exe.sha512
2024/02/08 | 153 | systems/texlive/tlnet/update-tlmgr-r69740.sh.sha512
-2024/02/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2024/02/08 | 1537 | macros/latex/contrib/l3build/l3build.ins
2024/02/08 | 1536938 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
-2024/02/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2024/02/08 | 1518 | macros/latex/contrib/derivative/README.md
2024/02/08 | 150644 | systems/texlive/tlnet/archive/undar-digitacion.doc.r69742.tar.xz
2024/02/08 | 1481144 | systems/texlive/tlnet/archive/tex4ht.source.r69739.tar.xz
2024/02/08 | 1460 | systems/texlive/tlnet/archive/musixtnt.r69742.tar.xz
-2024/02/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/02/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2024/02/08 | 1396 | macros/unicodetex/latex/emotion/README.md
+2024/02/08 | 137430 | macros/latex/contrib/contract/contract.dtx
2024/02/08 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r69739.tar.xz
2024/02/08 | 136132 | systems/texlive/tlnet/archive/babel-slovenian.doc.r69742.tar.xz
+2024/02/08 | 132314 | fonts/newtx/doc/newtxdoc.tex
2024/02/08 | 13186 | macros/latex/contrib/l3build/l3build-upload.lua
2024/02/08 | 130016 | systems/texlive/tlnet/archive/texsis.doc.r69742.tar.xz
2024/02/08 | 1288068 | systems/texlive/tlnet/archive/siunitx.doc.r69742.tar.xz
@@ -127,16 +229,17 @@
2024/02/08 | 122936 | systems/texlive/tlnet/archive/siunitx.source.r69742.tar.xz
2024/02/08 | 119400 | systems/texlive/tlnet/archive/musixtnt.doc.r69742.tar.xz
2024/02/08 | 114194 | macros/latex/contrib/l3build/l3build.dtx
-2024/02/08 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r69731.tar.xz
2024/02/08 | 11357 | macros/unicodetex/latex/emotion/LICENSE
2024/02/08 | 1118960 | systems/texlive/tlnet/archive/tex4ht.r69739.tar.xz
2024/02/08 | 111108 | systems/texlive/tlnet/archive/texsis.r69742.tar.xz
2024/02/08 | 11077 | macros/latex/contrib/l3build/l3build-install.lua
+2024/02/08 | 1081 | macros/latex/contrib/contract/LICENSE.md
2024/02/08 | 10782 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
2024/02/08 | 1068 | macros/luatex/generic/evangelion-jfm/LICENSE
2024/02/08 | 105616 | systems/texlive/tlnet/archive/musixtex.r69742.tar.xz
2024/02/08 | 10535 | macros/luatex/generic/evangelion-jfm/figure/fig-tc.pdf
2024/02/08 | 1051364 | systems/texlive/tlnet/archive/babel.doc.r69742.tar.xz
+2024/02/08 | 10339 | macros/latex/contrib/contract/README.md
2024/02/08 | 1021 | macros/latex/contrib/l3build/README.md
2024/02/08 | 10160 | systems/texlive/tlnet/archive/startex.r69742.tar.xz
2024/02/08 | 10077 | macros/luatex/generic/evangelion-jfm/figure/fig-jp.pdf
@@ -667,130 +770,3 @@
2024/02/03 | 1091 | macros/latex/contrib/wargame/doc/tutorial/Makefile
2024/02/03 | 10305 | macros/latex/contrib/wargame/source/utils/wgsvg2tikz.py
2024/02/03 | 10066 | macros/latex/contrib/wargame/source/hex/board.dtx
-2024/02/02 | 98554 | graphics/pstricks/base/doc/pst-news24.pdf
-2024/02/02 | 9660964 | systems/texlive/tlnet/archive/ysabeau.r69663.tar.xz
-2024/02/02 | 9563 | support/texdoc/NEWS
-2024/02/02 | 950 | macros/latex/contrib/morewrites/morewrites.ins
-2024/02/02 | 90384 | systems/texlive/tlnet/archive/leftindex.doc.r69660.tar.xz
-2024/02/02 | 89528 | support/texdoc/doc/texdoc.pdf
-2024/02/02 | 892 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsonetwo.tfm
-2024/02/02 | 84867548 | systems/texlive/tlnet/archive/context.doc.r69665.tar.xz
-2024/02/02 | 8275472 | systems/texlive/tlnet/archive/context.r69665.tar.xz
-2024/02/02 | 8163 | graphics/pstricks/base/latex/pstricks.sty
-2024/02/02 | 8105595 | graphics/pstricks/base.zip
-2024/02/02 | 7844 | support/texdoc/script/texdoclib-util.tlu
-2024/02/02 | 771748 | systems/texlive/tlnet/archive/ysabeau.doc.r69663.tar.xz
-2024/02/02 | 749644 | macros/latex/contrib/morewrites/morewrites.pdf
-2024/02/02 | 69163 | macros/latex/contrib/litetable/doc/litetable-demo2.pdf
-2024/02/02 | 6726 | support/texdoc/doc/texdoc-doc.cls
-2024/02/02 | 6365 | support/texdoc/script/texdoclib-cli.tlu
-2024/02/02 | 635299 | macros/latex/contrib/morewrites/primargs.pdf
-2024/02/02 | 6147261 | fonts/simpleicons.zip
-2024/02/02 | 608972 | macros/latex/contrib/litetable.zip
-2024/02/02 | 591 | macros/latex/contrib/morewrites/README.md
-2024/02/02 | 58592 | systems/texlive/tlnet/archive/europecv.r69661.tar.xz
-2024/02/02 | 572384 | systems/texlive/tlnet/archive/kotex-oblivoir.doc.r69662.tar.xz
-2024/02/02 | 546561 | graphics/pstricks/contrib/pst-solarsystem/doc/pst-solarsystem-doc.pdf
-2024/02/02 | 541624 | systems/texlive/tlnet/archive/latexmk.doc.r69657.tar.xz
-2024/02/02 | 517 | graphics/pstricks/contrib/pst-solarsystem/latex/pst-solarsystem.sty
-2024/02/02 | 51694 | macros/latex/contrib/morewrites/morewrites.dtx
-2024/02/02 | 505129 | graphics/pstricks/contrib/pst-solarsystem.zip
-2024/02/02 | 499 | systems/win32/miktex/source/miktex-24.1.tar.xz.asc
-2024/02/02 | 4818 | graphics/pstricks/base/README
-2024/02/02 | 4693 | graphics/pstricks/base/Changes
-2024/02/02 | 45427 | macros/latex/contrib/litetable/doc/litetable-demo1.pdf
-2024/02/02 | 45387 | macros/latex/contrib/randexam/randexam.cls
-2024/02/02 | 4471 | graphics/pstricks/base/doc/pst-news24.tex
-2024/02/02 | 44572 | systems/texlive/tlnet/archive/kotex-oblivoir.r69662.tar.xz
-2024/02/02 | 434 | graphics/pstricks/contrib/pst-solarsystem/Changes
-2024/02/02 | 4151568 | systems/texlive/tlnet/archive/novel.doc.r69658.tar.xz
-2024/02/02 | 404200 | systems/texlive/tlnet/archive/schooldocs.doc.r69659.tar.xz
-2024/02/02 | 3905 | support/texdoc/doc/texdoc.1
-2024/02/02 | 3884 | fonts/simpleicons/enc/simpleiconsfive.enc
-2024/02/02 | 3871 | support/texdoc/README.md
-2024/02/02 | 3861 | fonts/simpleicons/enc/simpleiconsone.enc
-2024/02/02 | 3732 | fonts/simpleicons/enc/simpleiconseight.enc
-2024/02/02 | 3708 | fonts/simpleicons/enc/simpleiconsthree.enc
-2024/02/02 | 3675 | fonts/simpleicons/enc/simpleiconsseven.enc
-2024/02/02 | 3672 | fonts/simpleicons/enc/simpleiconsonezero.enc
-2024/02/02 | 36424 | support/texdoc/doc/texdoc.tex
-2024/02/02 | 3641 | fonts/simpleicons/enc/simpleiconstwo.enc
-2024/02/02 | 3636 | fonts/simpleicons/enc/simpleiconsoneone.enc
-2024/02/02 | 3566 | fonts/simpleicons/enc/simpleiconsfour.enc
-2024/02/02 | 3561 | fonts/simpleicons/enc/simpleiconsnine.enc
-2024/02/02 | 35147 | support/texdoc/COPYING
-2024/02/02 | 3466 | fonts/simpleicons/enc/simpleiconssix.enc
-2024/02/02 | 3465 | graphics/pstricks/contrib/pst-solarsystem/doc/pst-solarsystem-doc.tex
-2024/02/02 | 346146 | macros/latex/contrib/docshots.zip
-2024/02/02 | 342675 | macros/latex/contrib/docshots/docshots.pdf
-2024/02/02 | 34154 | macros/latex/contrib/morewrites/primargs.dtx
-2024/02/02 | 3352 | macros/latex/contrib/litetable/doc/litetable-demo2.tex
-2024/02/02 | 3203 | support/texdoc/script/texdoclib-alias.tlu
-2024/02/02 | 3188 | macros/latex/contrib/litetable/doc/litetable-demo1.tex
-2024/02/02 | 3060 | systems/texlive/tlnet/archive/schooldocs.r69659.tar.xz
-2024/02/02 | 3059 | fonts/simpleicons/enc/simpleiconsonetwo.enc
-2024/02/02 | 294196 | macros/latex/contrib/litetable/doc/litetable-cn.pdf
-2024/02/02 | 29411352 | systems/win32/miktex/source/miktex-24.1.tar.xz
-2024/02/02 | 287634 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex
-2024/02/02 | 281358 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
-2024/02/02 | 274 | fonts/simpleicons/tex/usimpleiconsonezero.fd
-2024/02/02 | 270 | macros/latex/contrib/docshots/DEPENDS.txt
-2024/02/02 | 269 | fonts/simpleicons/tex/usimpleiconsonetwo.fd
-2024/02/02 | 269 | fonts/simpleicons/tex/usimpleiconsoneone.fd
-2024/02/02 | 264 | fonts/simpleicons/tex/usimpleiconsthree.fd
-2024/02/02 | 264 | fonts/simpleicons/tex/usimpleiconsseven.fd
-2024/02/02 | 264 | fonts/simpleicons/tex/usimpleiconseight.fd
-2024/02/02 | 2634 | macros/latex/contrib/docshots/docshots.ins
-2024/02/02 | 259 | fonts/simpleicons/tex/usimpleiconsnine.fd
-2024/02/02 | 259 | fonts/simpleicons/tex/usimpleiconsfour.fd
-2024/02/02 | 259 | fonts/simpleicons/tex/usimpleiconsfive.fd
-2024/02/02 | 254 | fonts/simpleicons/tex/usimpleiconstwo.fd
-2024/02/02 | 254 | fonts/simpleicons/tex/usimpleiconssix.fd
-2024/02/02 | 254 | fonts/simpleicons/tex/usimpleiconsone.fd
-2024/02/02 | 24629 | support/texdoc/script/texdoclib-search.tlu
-2024/02/02 | 2454480 | fonts/simpleicons/doc/simpleicons.pdf
-2024/02/02 | 2368928 | fonts/simpleicons/opentype/SimpleIcons.otf
-2024/02/02 | 22838 | macros/latex/contrib/docshots/docshots.dtx
-2024/02/02 | 2192050 | fonts/simpleicons/type1/SimpleIcons.pfb
-2024/02/02 | 21736 | macros/latex/contrib/randexam/randexam.tex
-2024/02/02 | 21717 | support/texdoc/script/texdoclib-config.tlu
-2024/02/02 | 2048 | macros/latex/contrib/exesheet/exesheet.ins
-2024/02/02 | 2020 | systems/texlive/tlnet/archive/collection-fontsextra.r69663.tar.xz
-2024/02/02 | 1812 | fonts/simpleicons/doc/simpleicons.tex
-2024/02/02 | 180356 | macros/latex/contrib/litetable/doc/litetable-en.pdf
-2024/02/02 | 17409 | support/texdoc/texdoc.cnf
-2024/02/02 | 171449 | fonts/simpleicons/doc/bindings.tex
-2024/02/02 | 1632 | fonts/simpleicons/tex/simpleicons.sty
-2024/02/02 | 161127 | support/texdoc.zip
-2024/02/02 | 1496 | systems/texlive/tlnet/archive/leftindex.r69660.tar.xz
-2024/02/02 | 1419 | macros/latex/contrib/docshots/README.md
-2024/02/02 | 1382 | support/texdoc/script/texdoc.tlu
-2024/02/02 | 1362899 | macros/latex/contrib/morewrites.zip
-2024/02/02 | 1353 | fonts/simpleicons/map/simpleicons.map
-2024/02/02 | 1320 | support/texdoc/script/texdoclib.tlu
-2024/02/02 | 125903 | graphics/pstricks/base/generic/pstricks.tex
-2024/02/02 | 1236 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsnine.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconstwo.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsthree.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconssix.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsseven.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsonezero.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsone.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsoneone.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsfour.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsfive.tfm
-2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconseight.tfm
-2024/02/02 | 1207 | fonts/simpleicons/README.md
-2024/02/02 | 11884 | macros/latex/contrib/litetable/tex/litetable.cls
-2024/02/02 | 117280 | systems/texlive/tlnet/archive/latexmk.r69657.tar.xz
-2024/02/02 | 116428 | systems/texlive/tlnet/archive/novel.r69658.tar.xz
-2024/02/02 | 11629 | support/texdoc/script/texdoclib-view.tlu
-2024/02/02 | 11568 | macros/latex/contrib/litetable/doc/litetable-en.tex
-2024/02/02 | 11388 | systems/texlive/tlnet/archive/schooldocs.source.r69659.tar.xz
-2024/02/02 | 11336 | graphics/pstricks/contrib/pst-solarsystem/tex/pst-solarsystem.tex
-2024/02/02 | 10863 | support/texdoc/script/texdoclib-score.tlu
-2024/02/02 | 1083 | macros/latex/contrib/docshots/LICENSE.txt
-2024/02/02 | 10522 | macros/latex/contrib/randexam/randexam-a-answer.tex
-2024/02/02 | 10441 | support/texdoc/script/texdoclib-const.tlu
-2024/02/02 | 1020072 | systems/texlive/tlnet/archive/europecv.doc.r69661.tar.xz
-2024/02/02 | 10135 | macros/latex/contrib/litetable/doc/litetable-cn.tex
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 3275f594e5..25232f4898 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 08-02-2024, 02:00:04
+%% created at 09-02-2024, 02:00:03
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -18448,8 +18448,8 @@
title = {The \texttt{derivative} package},
subtitle = {Nice and easy derivatives},
author = {Simon Jensen},
- date = {2023-11-04},
- version = {1.31},
+ date = {2024-02-08},
+ version = {1.4},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/derivative},
url = {https://ctan.org/pkg/derivative},
@@ -20708,8 +20708,8 @@
title = {The \texttt{easybook} package},
subtitle = {Easily typesetting Chinese theses or books},
author = {Qu Yi},
- date = {2024-02-07},
- version = {2024x},
+ date = {2024-02-08},
+ version = {2024z},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/easybook},
url = {https://ctan.org/pkg/easybook},
@@ -21942,6 +21942,24 @@
url = {https://ctan.org/pkg/emojicite},
}
+@manual{ctan-emotion,
+ title = {The \texttt{emotion} package},
+ subtitle = {Make emojis more easy to use in \XeLaTeX{} and LuaLaTeX},
+ author = {Xuwang Zeng},
+ date = {2024-02-08},
+ version = {0.1},
+ license = {apache2},
+ mirror = {https://mirror.ctan.org/macros/unicodetex/latex/emotion},
+ url = {https://ctan.org/pkg/emotion},
+ annotation = {There are many emojis with long names, and we cannot
+ remember them all. At the same time, when we type an
+ emoji, we want to see what it looks like in text editor.
+ Now, you do not need to remember the emoji name, just
+ select it from the keyboard and wrap it with .
+ Unlike other emoji packages, you can thus use emojis
+ more easily and flexibly.},
+}
+
@manual{ctan-emp,
title = {The \texttt{emp} package},
subtitle = {"Encapsulate" MetaPost figures in a document},
@@ -23782,8 +23800,8 @@
title = {The \texttt{Evangelion-JFM} package},
subtitle = {A Japanese font metric supporting many advanced features},
author = {Jing Huang},
- date = {2023-08-25},
- version = {1.0.5 (b)},
+ date = {2024-02-08},
+ version = {1.0.5 (c)},
license = {mit},
mirror = {https://mirror.ctan.org/macros/luatex/generic/evangelion-jfm},
url = {https://ctan.org/pkg/evangelion-jfm},
@@ -37210,7 +37228,7 @@
title = {The \texttt{l3build} package},
subtitle = {A testing and building system for (La)TeX},
author = {{The LaTeX Project Team}},
- date = {2024-01-18},
+ date = {2024-02-08},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/l3build},
@@ -55474,8 +55492,8 @@
title = {The \texttt{ProfLycee} package},
subtitle = {A \LaTeX{} package for French maths teachers in high school},
author = {Cédric Pierquet},
- date = {2024-01-29},
- version = {3.01g},
+ date = {2024-02-08},
+ version = {3.02a},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/proflycee},
url = {https://ctan.org/pkg/proflycee},
@@ -55496,8 +55514,8 @@
title = {The \texttt{ProfSio} package},
subtitle = {Commands (with TikZ) to work with French “BTS SIO†maths themes},
author = {Cédric Pierquet},
- date = {2023-12-14},
- version = {0.1.9},
+ date = {2024-02-08},
+ version = {0.2.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/pgf/contrib/profsio},
url = {https://ctan.org/pkg/profsio},
@@ -73607,8 +73625,8 @@
title = {The \texttt{ucph-revy} package},
subtitle = {Musical script formatting},
author = {Kristoffer Levin Hansen},
- date = {2023-09-11},
- version = {1.0.0},
+ date = {2024-02-08},
+ version = {1.0.1},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/ucph-revy},
url = {https://ctan.org/pkg/ucph-revy},
diff --git a/fonts/newtx/README b/fonts/newtx/README
index 433b51bb16..d66b81e445 100644
--- a/fonts/newtx/README
+++ b/fonts/newtx/README
@@ -1,10 +1,14 @@
This package, initially based on txfonts, provides many fixes and enhancements to the txfonts package, splitting it into two separate packages---newtxtext and newtxmath, which may be run independently of one another. It provides scaling, improved metrics, and other options. In particular, newtxmath offers a libertine option which substitutes Linux Libertine (provided with TeXLive and MikTeX) italic and Greek letters for the default Times letters, providing a good match for the Libertine text font, which is heavier than Computer Modern but lighter than Times, and in my experience, looks very sharp and clear on the screen.
-Current version: 1.737 2024-01-11
+Current version: 1.738 2024-02-08
This material is subject to the LaTeX Project Public License. See http://www.ctan.org/license/lppl1.3
for the details of that license.
+Changes in version 1.738
+1. Documentation updated for newtx.sty usage.
+2. Modified newtx.sty and newtxtext.sty to ensure that default effects of \mathsf and \mathtt are the same in both cases, and to ensure that in both, the prior loading of a sf or tt text font would result in those being used for \mathsf, \mathtt without any further interventions.
+
Changes in version 1.737
Moved all sups code from newtxtext.sty to superiors.sty, version 2, leaving a stub
in place to warn users of the associated newtxtext options about the changes.
diff --git a/fonts/newtx/doc/newtxdoc.pdf b/fonts/newtx/doc/newtxdoc.pdf
index f3d8916ce2..82aed81682 100644
--- a/fonts/newtx/doc/newtxdoc.pdf
+++ b/fonts/newtx/doc/newtxdoc.pdf
Binary files differ
diff --git a/fonts/newtx/doc/newtxdoc.tex b/fonts/newtx/doc/newtxdoc.tex
index a412dd6dba..4390083f97 100644
--- a/fonts/newtx/doc/newtxdoc.tex
+++ b/fonts/newtx/doc/newtxdoc.tex
@@ -27,7 +27,7 @@
%\renewcommand{\rmdefault}{minntx}% Roman and Bold Termes for math
\usepackage[type1,sfdefault,scale=1]{sourcesanspro}% used by \mathsf, optional
\usepackage[scaled=.98,varqu,varl]{zi4}
-%\usepackage[nohelv,nott,amsthm,largesc,theoremfont,trueslanted,scosf]{newtx}% Use newtxmath, not a unicode math package
+%\usepackage[amsthm,largesc,theoremfont,trueslanted,scosf]{newtx}% Use newtxmath, not a unicode math package
\usepackage[textscale=1,amsthm,theoremfont,newsu,scosf]{newtx}% Use newtxmath, not a unicode math package
%\usepackage{amsthm}
%\usepackage{newtxmath}
@@ -108,7 +108,7 @@ or
\item
Superior letters and figures distinct from numerators have been added along with some special features. The text switch \verb|\sustyle| (or \verb|\sufigures|) or the commands \verb|\textsu|, \verb|\textsup|, \verb|\textsups| may be used to invoke ordinary superiors.
The command \verb|\textsuperscript| is reserved for a form of superiors that respond to adjustments you may specify in the package options, and which are used for footnote marker typesetting: \verb|supscale| rescales them, \verb|supsraised| specifies an amount to move them vertically, and \verb|supLspaced|, \verb|supRspaced| specify additional kerning to be applied at the left and right. These changes are applied in the order: scaling, raising, kerning. All except \verb|supscale| should be dimensions with units like {\tt em} which will scale properly. Their relative vertical positions stack up like this: X\textinf{12}X\textde{345}X\textnu{678}X\textsu{90}.
- There is also a {\tt supscolor} option that will apply a color specified in a form understood by {\tt xcolor}, like {\tt red!70!black}. \textbf{IMPORTANT: As of version 1.737, the options and code described in this paragraph has been moved to the new {\tt superiors} package.}
+ There is also a {\tt supscolor} option that will apply a color specified in a form understood by {\tt xcolor}, like {\tt red!70!black}. \textbf{IMPORTANT: As of version 1.737, the options and code described in this paragraph has been moved to the new completely rewritten {\tt superiors} package.}
\item
Version 1.732 introduces some new mathematical glyphs. First, there are new curly braces invoked by the option {\tt curlybraces} with {\tt height+depth} of 940, 1200, 1800, 2400, 3000 and 3600 em units. Second, there are three new math symbols:
\begin{itemize}
@@ -182,16 +182,19 @@ You do not need to load {\tt amsmath}: it is loaded by {\tt unicode-math}.
Supports specially prepared text font packages with {\tt newtxmath}.
\begin{verbatim}
% Without newtx
- \renewcommand*{\rmdefault}{t1minntx} % loads minimal version of text font
+ \renewcommand*{\rmdefault}{minntx} % loads minimal version of text font
+ % Load tt and sans text fonts for use in \mathtt, \mathsf
\usepackage[]{newtxmath} % specify math options
\usepackage[no-math]{fontspec}
\usepackage{} % the chosen otf text font package, or fontspec \setmainfont, etc
% or, using newtx
- \usepackage[]{newtx} % options will be passed to text font package and newtxmath---option no-math can be specified here
+ % Load tt and sans text fonts for use in \mathtt, \mathsf
+ \usepackage[]{newtx} % options will be passed to text font package and newtxmath
+ %---option no-math may be specified here
\end{verbatim}
\textsc{Notes:}
\begin{itemize}
-\item No special option requirements---this is the default case.
+\item If you specify no sf text or tt text fonts before {\tt newtxmath}/{\tt newtx}, those packages will load a Helvetica clone and the typewriter font from {\tt txfonts}. If you prefer to use those from Computer Modern and its descendents, specify options {\tt nohelv}, {\tt nott}.
\item Babel, if used, must be specified before {\tt newtx[text]}, which loads {\tt fontspec}.
\item Polyglossia, if used, must be specified after loading {\tt newtx[text]}.
\end{itemize}
@@ -201,7 +204,8 @@ Supports specially prepared text font packages with {\tt newtxmath}.
\textsc{III: type1 text, type1 math (requires non-unicode engine)}
\begin{verbatim}
% Without newtx
- \renewcommand*{\rmdefault}{t1minntx}% minimal text family, Roman and Bold for math
+ \renewcommand*{\rmdefault}{minntx}% minimal text family, Roman and Bold for math
+ % Load tt and sans text fonts for use in \mathtt, \mathsf
\usepackage{newtxmath} % options will be as passed from newtx
\usepackage{} % the chosen text package
% should load tt and sans math before math
@@ -213,6 +217,7 @@ Supports specially prepared text font packages with {\tt newtxmath}.
\textsc{Notes:}
\begin{itemize}
+\item If you specify no sf text or tt text fonts before {\tt newtxmath}/{\tt newtx}, those packages will load a Helvetica clone and the typewriter font from {\tt txfonts}. If you prefer to use those from Computer Modern and its descendents, specify options {\tt nohelv}, {\tt nott}.
\item Babel, if used, must be specified before {\tt newtx[text]}.
\end{itemize}
@@ -268,7 +273,7 @@ Aside from options that are passed along to the text and math packages, {\tt new
\begin{itemize}
\item
You may set the scale for both text and math by setting {\tt scale} or, equivalently, {\tt scaled}. Alternatively, you may scale text and math separately by means of the options {\tt textscale[d]}, {\tt mathscale[d]}.
-\item Option {otfmath} is acted upon only under a unicode engine, and specifies unicode math rather than the default---type1 math using {\tt newtxmath}. The effect is the exact opposite to {\tt no-math}, which would specify math not controlled by {\tt fontspec}.
+\item Option {\tt otfmath} is acted upon only under a unicode engine, and specifies unicode math rather than the default---type1 math using {\tt newtxmath}. The effect is the exact opposite to {\tt no-math}, which would specify math not controlled by {\tt fontspec}.
\item Option {\tt subscriptcorrectionfile} allows you to set your own file specifying subscript corrections.
\item You may specify as an option to {\tt newtx} the name of any supported text package and any options other than scale[d] that are understood by that package. The default text package is {\tt newtxtext}, which need not be specified explicitly. Other valid options as of early May, 2022, are:
\begin{verbatim}
@@ -362,7 +367,7 @@ A more realistic preamble than those detailed above would follow the general pat
<General packages, babel (optional) and those necessary for latex>
<latex encoding, sf and tt fonts to be used by newtxmath>
\usepackage[]{newtx} % include all desired options to newtxtext and newtxmath
-% options nohelv, nott to newtxtext will prevent it from overwriting sf and tt choices
+% options nohelv, nott to newtx will prevent it from loading its default sans and tt text fonts in favor of Computer Modern
% option amsthm will correctly load that option, if specified
<fontspec is loaded, add \setmainfont, \setmonofont etc>
% Uncomment example lines below to use polyglossia, which must be loaded after fontspec
@@ -384,8 +389,7 @@ For example:
\usepackage[T1]{fontenc} % Active encoding for use in math text
\usepackage[type1,sfdefault,scale=1]{sourcesanspro}% used by \mathsf
\usepackage[scaled=.98,varqu,varl]{zi4} % mathtt
-\usepackage[nohelv,nott,amsthm,largesc,theoremfont,trueslanted,scosf]{newtx} % this line loads fontspec
-% nohelv and nott stop overwriting initial mathsf and mathtt choices
+\usepackage[amsthm,largesc,theoremfont,trueslanted,scosf]{newtx} % this line loads fontspec
%\setmonofont and \setsansfont could be set here if necessary for use in text
% polyglossia, if used, must be loaded after fontspec
\usepackage{polyglossia}
diff --git a/fonts/newtx/tex/newtx.sty b/fonts/newtx/tex/newtx.sty
index 753b259ef2..ed91042f05 100644
--- a/fonts/newtx/tex/newtx.sty
+++ b/fonts/newtx/tex/newtx.sty
@@ -2,8 +2,8 @@
%Package to simplify loading of newtxmath with a text font family such as newtxtext for all latex engines, or for newtxtext and an otf math package.
-\def\fileversion{1.735}
-\def\filedate{2023/12/18}
+\def\fileversion{1.738}
+\def\filedate{2024/02/08}
\ProvidesPackage{newtx}[%
\filedate\space v\fileversion (Michael Sharpe) latex and unicode latex support for newtxmath and a supported text font family, or for newtxtext and an otf math package]
@@ -105,7 +105,6 @@
\newcommand*{\ntxtext@rm}{} % not understood by libertinus-otf
\newcommand*{\ntxtext@sf}{}% not understood by libertinus-otf
-
\newcommand*{\ntxtext@scale}{1}
\newcommand*{\ntxmath@scale}{1}
\DeclareOptionX{scaled}[1]{\renewcommand*{\ntxtext@scale}{#1}\renewcommand*{\ntxmath@scale}{#1}}
@@ -121,6 +120,16 @@
\DeclareOptionX{ttscale}[]{\renewcommand*{\ntxtext@ttscale}{#1}}
\DeclareOptionX{rm}[true]{\renewcommand*{\ntxtext@rm}{#1}}
\DeclareOptionX{sf}[true]{\renewcommand*{\ntxtext@sf}{#1}}
+\newif\iftx@helv \tx@helvtrue
+\newif\iftx@tt \tx@tttrue
+\DeclareOptionX{nohelv}[true]{%
+\@nameuse{if#1}\tx@helvfalse\fi}
+\DeclareOptionX{nott}[true]{%
+\@nameuse{if#1}\tx@ttfalse\fi}
+\def\tx@helvratio{.94}
+\DeclareOptionX{helvratio}[0.94]{%
+\def\tx@helvratio{#1}
+}
\DeclareOptionX{type1}[true]{}% no effect now
%{%\@nameuse{if#1}\ntx@otftextfalse\fi}
@@ -259,7 +268,8 @@
\DeclareOptionX{sfracscaling}{%
\def\tx@sfrSC{#1}}
% \ntx@Topt contains all unknown options that are not math options. It contains no scale options. \ntx@Mopt lists all the math options.
-\ProcessOptionsX\relax
+\ProcessOptionsX\relax
+
%\show\ntx@Mopt
%\show\ntx@Topt
%\traceon
@@ -275,8 +285,30 @@
\PackageWarning{newtx.sty}{Reverting to newtxtext: newtx with option {\tt otfmath} can not handle other text packages.}
\ntx@id=0
\ntx@text % revert to newtxtext
-\fi\fi
-
+ \fi
+\else % t1 math
+ \ifnum\ntx@id=0
+ \ifthenelse{\not\equal{\sfdefault}{cmss}}%
+ {\tx@helvfalse}{}
+ \ifthenelse{\not\equal{\ttdefault}{cmtt}}%
+ {\tx@ttfalse}{}
+ \iftx@helv
+ \renewcommand*{\sfdefault}{qhv}
+ \@tempdima=\ntxtext@scale\p@
+ \@tempdima=\tx@helvratio\@tempdima%
+ \edef\qhv@scale{\strip@pt\@tempdima}
+ \else
+ \PassOptionsToPackage{nohelv=true}{newtxtext}
+ \fi
+ \iftx@tt\renewcommand*{\ttdefault}{ntxtt}\fi
+ \ifthenelse{\not\equal{\tx@helvratio}{.94}}%
+ {\PassOptionsToPackage{helvratio=\tx@helvratio}%
+ {newtxtext}}{}
+ \iftx@tt\else%
+ \PassOptionsToPackage{nott=true}{newtxtext}\fi
+
+ \fi
+\fi
%\ifntx@badnof\PackageError{newtx.sty}{Incompatible options, nofontspec and otfmath}{Incompatible options, nofontspec and otfmath}\fi
% Set the text scale macros appropriately
%\show\ntx@TF
diff --git a/fonts/newtx/tex/newtxtext.sty b/fonts/newtx/tex/newtxtext.sty
index ac7033051d..8cf041be09 100644
--- a/fonts/newtx/tex/newtxtext.sty
+++ b/fonts/newtx/tex/newtxtext.sty
@@ -11,8 +11,8 @@
%\def\ntx@state{0} % 0 for both, 1 for tutex only, 2 for legacy only
\def\setstate#1{\if 1\ntx@showstate\typeout{State=#1}\fi}
-\def\fileversion{1.737}
-\def\filedate{2024/01/11}
+\def\fileversion{1.738}
+\def\filedate{2024/02/08}
\ProvidesPackage{newtxtext}[%
\filedate\space v\fileversion (Michael Sharpe) latex and unicode latex support for TeXGyreTermesX]
@@ -227,7 +227,14 @@
\ProcessOptionsX\relax
\ifntx@supsflag%
-\PackageWarningNoLine{newpxtext}{sups options no longer handled---use superiors package (v2) instead.}\fi
+\PackageWarningNoLine{newtxtext}{sups options no longer handled---use superiors package (v2) instead.}\fi
+
+\ifthenelse{\not\equal{\sfdefault}{cmss}}%
+ {\ntx@helvfalse}{}
+\ifthenelse{\not\equal{\ttdefault}{cmtt}}%
+ {\ntx@ttfalse}{}
+\ifntx@helv\renewcommand*{\sfdefault}{qhv}\fi
+\ifntx@tt\renewcommand*{\ttdefault}{ntxtt}\fi
% otfmath beats no-math
\ifntx@otfmath\ntx@nomathfalse\fi
@@ -241,8 +248,6 @@
\ifntx@newtx\let\ntx@scale=\ntxtext@scale\fi
% following lines required by newtxmath
% They must follow the definition of \ntx@scaled
-\@tempdima=\ntx@scale\p@\@tempdima=\ntx@helvratio\@tempdima%
-\edef\qhv@scale{\strip@pt\@tempdima}
\edef\ntx@scaled{s*[\ntx@scale]}% used in fd files
\providecommand*{\ntx@minfam}{minntx} % won't override value from newtx
@@ -552,8 +557,6 @@
% \fi}%
% \fi
% \fi
- \ifntx@helv\renewcommand*{\sfdefault}{qhv}\fi
- \ifntx@tt\renewcommand*{\ttdefault}{ntxtt}\fi
\DeclareRobustCommand\thfamily % new family for theorem font
{\not@math@alphabet\thfamily\relax
\fontfamily\thdefault\selectfont}
diff --git a/graphics/pgf/contrib/circuitikz/README.md b/graphics/pgf/contrib/circuitikz/README.md
index 28b4c20f3f..584e271042 100644
--- a/graphics/pgf/contrib/circuitikz/README.md
+++ b/graphics/pgf/contrib/circuitikz/README.md
@@ -82,12 +82,12 @@ This file may be distributed and/or modified
1. under the LaTeX Project Public License and/or
2. under the GNU Public License.
-Copyright 2018-2023 by Romano Giannetti
+Copyright 2018-2024 by Romano Giannetti
-Copyright 2015-2023 by Stefan Lindner
+Copyright 2015-2024 by Stefan Lindner
-Copyright 2013-2023 by Stefan Erhardt
+Copyright 2013-2024 by Stefan Erhardt
-Copyright 2007-2023 by Massimo Redaelli
+Copyright 2007-2024 by Massimo Redaelli
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
index c2e1f56ffb..c79304aa16 100644
--- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
@@ -5,6 +5,38 @@ full list of changes.
\begin{itemize}
\item
+ Version 1.6.7 (2024-02-09)
+
+ Several new blocks, more flexible generic anchors for blocks, and a
+ new option to align the signs on american-style voltage sources.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Added \texttt{saturation} block (contributed by
+ \href{https://github.com/circuitikz/circuitikz/issues/758}{P. Sacco
+ \textless paul.sacco@estaca.eu\textgreater{}})
+ \item
+ Added \texttt{iamp}, \texttt{sigmoid}, and \texttt{allornothing}
+ blocks
+ \item
+ Added optical fiber \texttt{fiber} (contributed by
+ \href{https://github.com/circuitikz/circuitikz/pull/771}{Christopher
+ Beck})
+ \item
+ Now the position of the lateral anchors (\texttt{left\ up} and
+ similar) of blocks is configurable (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/769}{user
+ ``sputeanus'' on GitHub})
+ \item
+ Now you can choose how the signs on american-style sources rotate
+ when the source is not vertical (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/773}{jotagah
+ on GitHub})
+ \item
+ New section in the manual about related packages
+ \end{itemize}
+\item
Version 1.6.6 (2023-12-09)
Several new components.
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
index c105bd373a..add5ceae2a 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
index 59eeb6f8b6..cf033189f9 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
index b53cafb444..c21540a9be 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
index f0f68f16ff..c775d7f9fc 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
@@ -5,10 +5,10 @@
% !TeX spellcheck = en_US
% !TeX encoding = utf8
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -30,7 +30,8 @@
}
% \setmainfont{Gentium Book Basic}
}
-
+% to check thanks to Max Chernoff https://tex.stackexchange.com/a/705682/38080
+% \usepackage[version=latest]{pgf}
% do not split this line in more lines, otherwise "make git-manual" will show the wrong version
\usepackage[siunitx, RPvoltages]{circuitikz}
% Let this be the same as the chosen voltage direction for coherence
@@ -114,7 +115,7 @@
Lorenzo and Mirella, 57 years ago, started a trip that eventually lead to a lot of things --- among them, \Circuitikz{} \texttt{v1.0}.
In loving memory
- --- R.\@G.\@, 2020-02-04
+ --- R.\,G., 2020-02-04
\end{minipage}
\subsection{About}
@@ -125,10 +126,10 @@ The use of \Circuitikz\ is, of course, not limited to academic teaching. The pac
\subsection{License}
Copyright \copyright{}
-2007--2023 by Massimo Redaelli,
-2013--2023 by Stefan Erhardt,
-2015--2023 by Stefan Lindner,
-and 2018--2023 by Romano Giannetti.
+2007--2024 by Massimo Redaelli,
+2013--2024 by Stefan Erhardt,
+2015--2024 by Stefan Lindner,
+and 2018--2024 by Romano Giannetti.
This package is author-maintained. Permission is granted to copy, distribute and/or modify this software under the terms of the \LaTeX\ Project Public License, version 1.3.1, or the GNU Public License. This software is provided ‘as is’, without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
\subsection{Loading the package}
@@ -190,6 +191,16 @@ Another thing to take into account is that any \TikZ{} figure (and \Circuitikz{}
Finally, the \TikZ{} library \texttt{bending} is loaded by the package, and its effects (the bending of the arrows on curved paths) will also affect the rest of your drawings.
+\subsection{Related and extension packages}
+
+\Circuitikz{} is meant to be, as much as possible, format-agnostic (which means that it can be used from \LaTeX{}, plain \TeX{} and~\ConTeXt). It is growing in functionality and components, but not everything can be added to the package. In this section, there is a list of packages, available at CTAN, that extend or enhance \Circuitikz{} but are distributed separately.\footnote{If you have a package or know a package that should be listed here, please contact the \Circuitikz{} authors, or, better, send a pull request to the project and it will be added.}
+
+\begin{description}
+ \item [\href{https://ctan.org/pkg/tikzquads}{tikzquads}] is a package for easily drawing the equivalent electrical circuits for quadrupoles and similar blocks. \LaTeX{} only.
+ \item [\href{https://ctan.org/pkg/tikzdotncross}{tikzdotncross}] offers a few alternative ways for declaring and marking coordinates and drawing a line with "jumps" over an already existent path\footnote{\dots read the introduction: try not to overuse the jumping symbol; it's not a standard for the last 25 years. Nevertheless, sometimes is very useful, especially for didactic reasons (Romano's personal opinion in this comment).}. \LaTeX{} only.
+\end{description}
+
+
\subsection{Known bugs and limitation}\label{sec:bugs}
\Circuitikz{} will \textbf{not work} correctly with global (in the main \texttt{circuitikz} environment, or in \texttt{scope} environments) \emph{negative} scale parameters (\texttt{scale}, \texttt{xscale} or \texttt{yscale}), unless \texttt{transform shape} is also used, and even in this cases the behavior is not guaranteed.
@@ -1435,14 +1446,29 @@ for example changing the parameter \texttt{bipoles/thickness} (default 2). The n
\paragraph{Shape of the components} (on a per-component-class basis)
The shape of the components are adjustable with a lot of parameters; in this manual we will comment the main ones, but you can look into the source files specified above to find more.
+Notice however that the ``internal'' parameters, the ones not commented in this manual, are not part of the public interface so they can disappear or change in future versions.
+
+It is recommended to use the styling parameters to change the shapes; they are not so fine-grained (for example, you can change the width of resistor), but they are more stable and coherent across your circuit.
+
\begin{LTXexample}[varwidth=true]
- \tikz \draw (0,0) to[R=1<\ohm>] (2,0); \par
- \ctikzset{bipoles/resistor/height=.6}
- \tikz \draw (0,0) to[R=1<\ohm>] (2,0);
+ \tikz \draw (0,0) to[R=1<\ohm>] (3,0); \par
+ \ctikzset{resistors/width=2}
+ \tikz \draw (0,0) to[R=1<\ohm>] (3,0);
\end{LTXexample}
-It is recommended to use the styling parameters to change the shapes; they are not so fine-grained (for example, you can change the width of resistor, not the height at the moment), but they are more stable and coherent across your circuit.
+To change the height, you can use (locally) the class scale parameter and the width; you can even define a style that will work across the resistor styles:
+
+\begin{LTXexample}[varwidth=true]
+ \ctikzset{american}
+ \tikz \draw (0,0) to[R=1<\ohm>] (4,0);
+
+ \ctikzset{tallR/.style={
+ resistors/scale=2, resistors/width=0.4}}
+ \tikz \draw (0,0) to[R=1<\ohm>, tallR] (4,0);
+ \ctikzset{european}
+ \tikz \draw (0,0) to[R=1<\ohm>, tallR] (4,0);
+\end{LTXexample}
\subsubsection{Descriptions}
The typical entry in the component list will be like this:
@@ -2856,6 +2882,31 @@ You can do the same with the \texttt{american controlled voltage sources}, subst
\end{circuitikz}
\end{LTXexample}
+\paragraph{Orientation of the polarity symbols.}
+
+When rotating the sources, they usually move rigidly. This results in the fact that American voltage sources look nice when vertical but could be better in other directions. Since \texttt{v1.6.7}\footnote{Thanks to the suggestions and discussion
+\href{https://github.com/circuitikz/circuitikz/issues/773}{by user @jotagah on GitHub}.}, you can choose several rotation modes for those symbols (independent and dependent sources).
+
+ You can obtain several different rotations or rotation modes by changing the value of the key \texttt{sources/symbol/sign rotation} (with \verb!\ctikzset!). The value \texttt{default} (also the default value!) uses the legacy, ``rigid'' position.
+
+If you provide a number, the symbols are rotated by that value (\texttt{0} means that the minus sign is aligned with the wire, \texttt{90} is very similar to \texttt{default}\footnote{Not exactly equal; the position of the symbols could be slightly different depending on the font.}).
+If you use \texttt{straight}, the symbols are rotated to be always horizontal. With \texttt{auto}, the symbols are drawn in the same way as \texttt{0} for inclination less the \SI{45}{\degree}, and as \texttt{90} otherwise.The following drawing shows the results for several different parameter values.
+
+\begin{LTXexample}[varwidth=true, pos=t]
+\begin{tikzpicture}[american, scale=0.6, transform shape]
+ %\ctikzset{sources/symbol/sign rotation=default}
+ \foreach \a in {0,30,...,359} \draw (0,0) -- ++(\a:1) to[V] ++(\a:2);
+ \ctikzset{sources/symbol/sign rotation=0}
+ \foreach \a in {0,30,...,359} \draw[color=red] (6,0) -- ++(\a:1) to[V] ++(\a:2);
+ \ctikzset{sources/symbol/sign rotation=auto}
+ \foreach \a in {0,30,...,359} \draw[color=blue] (12,0) -- ++(\a:1) to[V] ++(\a:2);
+ \ctikzset{sources/symbol/sign rotation=straight}
+ \foreach \a in {0,30,...,359} \draw (18,0) -- ++(\a:1) to[V] ++(\a:2);
+\end{tikzpicture}
+\end{LTXexample}
+
+
+
\paragraph{Three-phase symbols.}
The three-phase symbols \texttt{delta}, \texttt{wye}, \texttt{eyw}, and \texttt{zig} follows the line thickness exactly as
the waveform ones (see above). Additionally, you can scale them up and down by changing the value of the keys
@@ -3581,7 +3632,8 @@ You can use the \texttt{plug center} anchor to add the IEC ``multiplier'':
\circuitdescbip*{dac}{D/A converter}{}
\circuitdescbip*{dsp}{DSP}{}
\circuitdescbip*{fft}{FFT}{}
- \circuitdescbip*{amp}{amplifier}{}
+ \circuitdescbip*{amp}{amplifier; use \texttt{t=\dots} to add a text}{}(up/90/0.2, down/-90/0.2)
+ \circuitdescbip*{iamp}{instrumentation amplifier; use \texttt{t=\dots} to add a text}{}(up/90/0.2, down/-90/0.2)
\circuitdescbip*{vamp}{VGA}{}
\circuitdescbip*{piattenuator}{$\pi$ attenuator}{}
\circuitdescbip*{vpiattenuator}{var. $\pi$ attenuator}{}
@@ -3590,6 +3642,11 @@ You can use the \texttt{plug center} anchor to add the IEC ``multiplier'':
\circuitdescbip*{phaseshifter}{phase shifter}{}
\circuitdescbip*{vphaseshifter}{var.\ phase shifter}{}
\circuitdescbip*{detector}{detector}{}
+ \circuitdescbip*{saturation}{Saturation\footnotemark}{}
+ \footnotetext{Contributed by \href{https://github.com/circuitikz/circuitikz/issues/758}{P. Sacco \texttt{<paul.sacco@estaca.eu>}}}
+ \circuitdescbip*{sigmoid}{Sigmoid}{}
+ \circuitdescbip*{allornothing}{Comparison, all-or-nothing}{}
+ \circuitdescbip*{fiber}{Optical Fiber}{}
\circuitdescbip*{sdcdc}{single wire DC/DC converter\footnotemark}{}(dc up in/135/.3, dc down in/185/.3, dc up out/45/.3, dc down out/-35/.3)
\footnotetext{the converter blocks added by \texttt{olfline}}
\circuitdescbip*{sacdc}{single phase AC/DC converter}{}(ac up in/135/.3, ac down in/185/.3, dc up out/45/.3, dc down out/-35/.3)
@@ -3627,20 +3684,36 @@ In addition, since \texttt{v1.6.0}, most blocks also have the \texttt{left up},
(bp.left up) node[circ, red]{}
(bp.left down) node[circ, blue]{}
(bp.right up) node[circ, green]{}
- (bp.right down) node[circ, yellow]{}
+ (bp.right down) node[circ, orange]{}
;\end{circuitikz}
\end{LTXexample}
-You can use those anchors to build ``mixed-type'' circuits, positioning the node-shapes:
+Since \texttt{1.6.7} you can change the relative position of the lateral generic anchors\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/769}{user @sputeanus} on GitHub} using the keys \texttt{block left anchors pos} and \texttt{block right anchor pos} (default \texttt{0.5}, as in previous releases) which set the position as a fraction of the top to center segment.
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+ \ctikzset{block left anchors pos=0.8, block right anchors pos=0.2}
+ \draw (0,0) to[bandpass, name=bp] ++(2,0)
+ (bp.left up) node[circ, red]{}
+ (bp.left down) node[circ, blue]{}
+ (bp.right up) node[circ, green]{}
+ (bp.right down) node[circ, orange]{}
+;\end{circuitikz}
+\end{LTXexample}
+
+To set both left and right at the same value, you can use the key \texttt{block lateral anchors pos}, which set both to the same number.
+You can use those anchors to build ``mixed-type'' circuits, using the node-shapes (the following drawing is a bit silly, but shows that the anchor position can be changed locally):
\begin{LTXexample}[pos=t, varwidth=true]
\begin{tikzpicture}[
big/.style={circuitikz/blocks/scale=1.5},
long/.style={circuitikz/bipoles/twoportsplit/width=1.5}]
- \path (0,0) node[sacdcshape, big](A){}
+ \ctikzset{block lateral anchors pos=0.8}
+ \path (0,0) node[sacdcshape, big, circuitikz/block right anchors pos=0.2](A){}
(5,0) node[twoportsplitshape, big, long, t1=LNA, t2=Digital](B){};
\draw (A.right up) -- (B.left up) (A.right down) to[cute choke] (B.left down);
\end{tikzpicture}
\end{LTXexample}
+
Notice also from the previous example that the generic blocks (\texttt{twoport} and \texttt{twoportsplit}) can be made ``longer'' by setting different \texttt{width} and \texttt{height} (the other blocks are square, and just use the \texttt{width} key for both dimensions).
Also, for \texttt{amp} and \texttt{vamp}, the \texttt{up} and \texttt{down} anchors follow the shape when they are not boxed.
@@ -3766,6 +3839,19 @@ With the option \texttt{>} you can draw an arrow to the input of the block diagr
\end{circuitikz}
\end{LTXexample}
+You can also change the width for the generic block:
+
+\begin{LTXexample}[pos=t, varwidth=t, basicstyle=\small\ttfamily]
+\begin{circuitikz}[european]
+ \draw (0,0) to[amp, >, t=$K_{\mathrm{p}}$] ++(2,0)
+ to[saturation, >, name=sat] ++(2,0) -- ++(0.5,0)
+ to[twoport, t=$\displaystyle\frac{\tau s +1}{\tau s}$, >,
+ bipoles/twoport/width=1.5] ++(3,0);
+ \node[above] at (sat.ne) {$+I_{\mathrm{max}}$};
+ \node[below] at (sat.sw) {$-I_{\mathrm{max}}$};
+\end{circuitikz}
+\end{LTXexample}
+
\paragraph{Multi ports}
Since inputs and outputs can vary, input arrows can be placed as nodes. Note that you have to rotate the arrow on your own:
diff --git a/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty b/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
index 8960e5c9be..1104d2c0d2 100644
--- a/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
+++ b/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
index e05e4fabbd..fa6fb3c2a8 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
index 3bda1fd0d7..faa09eb32f 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
index b0a0d627cc..0630698e49 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
index 780463cbde..3d41bfcc1d 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
index cc77be9ae6..91f5dabcd0 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
index 4fc6fc169f..efe138d2a2 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
index b39ef183dd..b65bc59c8f 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
index 7c9d26cb73..ccd07fea83 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
index 8688369e0d..dfaa1bb4d6 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
index fed626f544..2ce27f90e2 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
index 0b8b762c6a..450ac4fcff 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
index bad8d06b94..49fe5703fa 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
index a65d6bad90..b4cbf9d327 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -342,10 +342,10 @@
%%%%%%%%%
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2304,10 +2304,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2376,10 +2376,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3182,10 +3182,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4198,10 +4198,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -9302,10 +9302,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -15010,10 +15010,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16161,10 +16161,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17939,10 +17939,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18308,10 +18308,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18807,10 +18807,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19022,10 +19022,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19236,10 +19236,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
index d7dd1e5140..9771552881 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
index 93bb055575..9d25525027 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -343,10 +343,10 @@
%%%%%%%%%
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2449,10 +2449,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2535,10 +2535,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3341,10 +3341,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4357,10 +4357,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10254,10 +10254,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16161,10 +16161,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17448,10 +17448,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20142,10 +20142,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20511,10 +20511,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21060,10 +21060,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21275,10 +21275,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21489,10 +21489,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
index 0b23374863..0a3ea7c761 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
index c24149926f..e36e6ff66c 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -320,10 +320,10 @@
%%%%%%%%%
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2641,10 +2641,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2736,10 +2736,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3548,10 +3548,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4650,10 +4650,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10813,10 +10813,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17247,10 +17247,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18993,10 +18993,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22024,10 +22024,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22395,10 +22395,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23026,10 +23026,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23256,10 +23256,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23497,10 +23497,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
index f2062c16dd..10621785e2 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
index 7a5975ff04..4182695e66 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -324,10 +324,10 @@
%% we have to load this before options to define the magics for compatibility
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -1225,10 +1225,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -1630,10 +1630,10 @@
%%%---------- close: tex/pgfcircutils
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -1995,10 +1995,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2817,10 +2817,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4020,10 +4020,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10250,10 +10250,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18818,10 +18818,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22579,10 +22579,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -24740,10 +24740,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -25142,10 +25142,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -25852,10 +25852,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -26098,10 +26098,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
index 55727a0784..fb63155a42 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
index e558e4199a..fa00218f0f 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16,8 +16,8 @@
\providecommand\DeclareRelease[3]{}
\providecommand\DeclareCurrentRelease[2]{}
-\def\pgfcircversion{1.6.6}
-\def\pgfcircversiondate{2023/12/09}
+\def\pgfcircversion{1.6.7}
+\def\pgfcircversiondate{2024/02/09}
\DeclareRelease{0.4}{2012/12/20}{circuitikz-0.4-body.tex}
\DeclareRelease{v0.4}{2012/12/20}{circuitikz-0.4-body.tex}
diff --git a/graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex b/graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
index d53f87cfc6..865f7c846f 100644
--- a/graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
@@ -36,6 +36,7 @@ sources/thickness=1.0,
csources/scale=0.9,
csources/thickness=1.0,
bipoles/noise sources/fillcolor=dashed,
+sources/symbol/sign rotation/.try=auto,%since 1.6.7
%
% Instruments
instruments/scale=1.0,
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
index 094e0de4c0..943745bf7a 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
index 6bf0b72ac7..5be686bdff 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2167,12 +2167,74 @@
\pgfusepath{draw}
}
+
+%% macros for the sources with plus and minus internally
%% To change the internal symbols of the voltage source american style
\ctikzset{bipoles/vsourceam/inner plus/.initial={$+$}}
% In the mayority of fonts, the size of - is smaller than +, so we have
% unaligned signs when positioned independently.
% See https://github.com/circuitikz/circuitikz/issues/721
\ctikzset{bipoles/vsourceam/inner minus/.initial={$\vphantom{+}-$}}
+%%
+%% add the possibility to change the orientation of signs
+\ctikzset{sources/symbol/sign rotation/.initial=default}% default, auto, or value
+%% this should be more or less equivalent to \ctikzset{sources/symbol/sign rotation=90}, but it's font-dependent,
+%% so you never know. Let's keep the traditional one here.
+\def\pgf@circ@vsources@signs@default{%
+ \ifpgf@circ@oldvoltagedirection
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner plus}}%
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner minus}}%
+ \else
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner minus}}%
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner plus}}%
+ \fi
+}
+\def\pgf@circ@vsources@sign@auto@or@fix{%
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ % the distance here is choosen so that it seems ok with standard fonts... probably, it must be changed.
+ \pgfmathsetlength{\pgf@circ@res@temp}{%
+ \ctikzvalof{bipoles/vsourceam/margin}*\pgf@circ@res@up
+ -0.5*height("\ctikzvalof{bipoles/vsourceam/inner plus}")}
+ \ifx\@@rotmode\@@auto
+ \pgfmathsetmacro{\innerrot}{abs(\rot)<46?0:(abs(\rot)>134?0:90)}
+ \else
+ \ifx\@@rotmode\@@straight
+ \pgfmathsetmacro{\innerrot}{\rot}
+ \else
+ \pgfmathsetmacro{\innerrot}{\@@rotmode}
+ \fi
+ \fi
+ \ifpgf@circ@oldvoltagedirection
+ \pgfscope
+ \pgftransformxshift{\pgf@circ@res@temp}
+ \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner plus}}
+ \endpgfscope
+ \pgfscope
+ \pgftransformxshift{-\pgf@circ@res@temp}
+ \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner minus}}
+ \endpgfscope
+ \else
+ \pgfscope
+ \pgftransformxshift{\pgf@circ@res@temp}
+ \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner minus}}
+ \endpgfscope
+ \pgfscope
+ \pgftransformxshift{-\pgf@circ@res@temp}
+ \pgftext[rotate=\innerrot]{\ctikzvalof{bipoles/vsourceam/inner plus}}
+ \endpgfscope
+ \fi
+}
+\def\pgf@circ@vsources@draw@signs{%
+ \edef\@@auto{auto}\edef\@@default{default}\edef\@@straight{straight}%
+ \edef\@@rotmode{\ctikzvalof{sources/symbol/sign rotation}}%
+ \ifx\@@rotmode\@@default
+ \pgf@circ@vsources@signs@default
+ \else
+ \pgf@circ@vsources@sign@auto@or@fix
+ \fi
+}
+
%% Independent voltage source - American style
\pgfcircdeclarebipolescaled{sources}
{}
@@ -2188,13 +2250,7 @@
\pgf@circ@draworfill
\endpgfscope
\pgf@circ@text@strokecolor
- \ifpgf@circ@oldvoltagedirection
- \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner plus}}
- \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner minus}}
- \else
- \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner minus}}
- \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner plus}}
- \fi
+ \pgf@circ@vsources@draw@signs
}
%% Independent sinusoidal voltage source
@@ -2992,13 +3048,7 @@
\pgf@circ@draworfill
\endpgfscope
\pgf@circ@text@strokecolor
- \ifpgf@circ@oldvoltagedirection
- \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner plus}}
- \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner minus}}
- \else
- \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner minus}}
- \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner plus}}
- \fi
+ \pgf@circ@vsources@draw@signs
}
%% Controlled sinusoidal voltage source
@@ -6303,7 +6353,7 @@
\pgfpatharc{\@starta}{\@stopa}{2\pgf@circ@res@up}
\pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}}
\pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up}
- \pgfclosepath
+ \pgfpathclose
\pgfpathmoveto{\pgfpointpolar{80}{2\pgf@circ@res@up}}
\pgfpathlineto{\pgfpointpolar{80}{2.4\pgf@circ@res@up}}
\pgfusepath{draw}
@@ -6353,7 +6403,7 @@
\pgfpatharc{\@starta}{\@stopa}{2.1\pgf@circ@res@up}
\pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}}
\pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up}
- \pgfclosepath
+ \pgfpathclose
\pgfpathmoveto{\pgfpointpolar{83}{2.1\pgf@circ@res@up}}
\pgfpathlineto{\pgfpointpolar{83}{2.4\pgf@circ@res@up}}
\pgfusepath{draw}
@@ -7090,7 +7140,7 @@
\pgfusepath{draw}
\endpgfscope{}
- \pgfcircle{\pgfpoint{\ctikzvalof{bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\ctikzvalof{bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\ctikzvalof{bipoles/american gas filled surge arrester/size}\pgf@circ@res@down}
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\ctikzvalof{bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\ctikzvalof{bipoles/american gas filled surge arrester/size}\pgf@circ@res@down}
\pgfusepath{fill}
}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
index 3f921aaa6d..e1843d5da8 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
index ed86ae3c62..364c56a414 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
index ee77a872f9..a81bfdc6c6 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
index a208715d0c..84fa6c6d1e 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -969,7 +969,7 @@
\pgfpatharc{135}{45}{\pgf@circ@res@step}
\pgfpathlineto{\pgfpointpolar{45}{\pgf@circ@res@up}}
\pgfpatharc{45}{135}{\pgf@circ@res@up}
- \pgfclosepath
+ \pgfpathclose
\pgf@circ@draworfill
\endpgfscope
}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
index dd4a94c716..e403a53fa6 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
index c0edc823c3..e3665b8862 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
index 32a85cb0c9..2cc6e461aa 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -303,11 +303,11 @@
% compatible with the quadpoles "inner" style.
\pgfmathsetlength{\pgf@circ@res@other}{2.5*\stretto*\ctikzvalof{quadpoles/transformer core/core width}*\pgf@circ@res@right}
- \pgfmoveto{\pgfpoint%
+ \pgfpathmoveto{\pgfpoint%
{\pgf@circ@res@other}%
{\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
}
- \pgflineto{
+ \pgfpathlineto{
\pgfpoint%
{\pgf@circ@res@other}%
{\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
@@ -315,11 +315,11 @@
%% this should be just -\pgf@circ@res@other, but in case someone define an asymmetric trafo someday...
\pgfmathsetlength{\pgf@circ@res@other}{2.5*\stretto*\ctikzvalof{quadpoles/transformer core/core width}*\pgf@circ@res@left}
- \pgfmoveto{\pgfpoint%
+ \pgfpathmoveto{\pgfpoint%
{\pgf@circ@res@other}%
{\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
}
- \pgflineto{
+ \pgfpathlineto{
\pgfpoint%
{\pgf@circ@res@other}%
{\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
@@ -549,6 +549,7 @@
\ctikzset{bipoles/dsp/width/.initial=.7}
\ctikzset{bipoles/fft/width/.initial=.7}
\ctikzset{bipoles/amp/width/.initial=.7}
+\ctikzset{bipoles/iamp/width/.initial=.7}
\ctikzset{bipoles/vamp/width/.initial=.7}
\ctikzset{bipoles/piattenuator/width/.initial=.7}
\ctikzset{bipoles/vpiattenuator/width/.initial=.7}
@@ -557,10 +558,14 @@
\ctikzset{bipoles/phaseshifter/width/.initial=.7}
\ctikzset{bipoles/vphaseshifter/width/.initial=.7}
\ctikzset{bipoles/detector/width/.initial=.7}
+\ctikzset{bipoles/saturation/width/.initial=.7}
+\ctikzset{bipoles/sigmoid/width/.initial=.7}
+\ctikzset{bipoles/allornothing/width/.initial=.7}
\ctikzset{tripoles/mixer/width/.initial=0.7}
\ctikzset{tripoles/adder/width/.initial=0.7}
\ctikzset{tripoles/circulator/width/.initial=.7}
\ctikzset{tripoles/oscillator/width/.initial=.7}
+\ctikzset{bipoles/fiber/width/.initial=.7}
\ctikzset{tripoles/wilkinson/height/.initial=1.3}
\ctikzset{tripoles/wilkinson/width/.initial=1.3}
@@ -635,11 +640,19 @@
\fi
}
%%% blocks additional anchors
+\ctikzset{block left anchors pos/.initial=0.5}
+\ctikzset{block right anchors pos/.initial=0.5}
+\ctikzset{block lateral anchors pos/.code={
+ \ctikzset{block left anchors pos=#1}%
+ \ctikzset{block right anchors pos=#1}%
+}}
\def\pgcirc@twoport@additional@anchors{%
- \anchor{right down}{\northeast\pgf@y=-0.5\pgf@y}
- \anchor{left down}{\northeast\pgf@x=-\pgf@x\pgf@y=-0.5\pgf@y}
- \anchor{left up}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
- \anchor{right up}{\northeast\pgf@y=0.5\pgf@y}
+ \savedmacro{\blockleftanchorpos}{\edef\blockleftanchorpos{\ctikzvalof{block left anchors pos}}}
+ \savedmacro{\blockrightanchorpos}{\edef\blockrightanchorpos{\ctikzvalof{block right anchors pos}}}
+ \anchor{right down}{\northeast\pgf@y=-\blockrightanchorpos\pgf@y}
+ \anchor{left down}{\northeast\pgf@x=-\pgf@x\pgf@y=-\blockleftanchorpos\pgf@y}
+ \anchor{left up}{\northeast\pgf@x=-\pgf@x\pgf@y=\blockleftanchorpos\pgf@y}
+ \anchor{right up}{\northeast\pgf@y=\blockrightanchorpos\pgf@y}
\anchor{up}{\northeast\pgf@x=0pt\relax}
\anchor{down}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt\relax}
}
@@ -1043,7 +1056,6 @@
\pgf@circ@text@strokecolor
\pgftext[center,x=0,y=0]{\Large$\varphi$}
}
-
%% detector
\pgfcirc@define@twoports@norotate{blocks}
{}
@@ -1067,7 +1079,57 @@
\pgfnode{emptydiodeshape}{center}{}{pgf@emptydiode}{\pgfusepath{fill}}
\fi
}
-
+%% saturation block, contributed by P.Sacco <paul.sacco@estaca,eu>
+\pgfcirc@define@twoports{blocks}
+{}
+{\ctikzvalof{bipoles/saturation/width}}
+{saturation}
+{\ctikzvalof{bipoles/saturation/width}}
+{\ctikzvalof{bipoles/saturation/width}}
+{
+ \pgfsetlinewidth{1.2\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.65\pgf@circ@res@step}{.4\pgf@circ@res@step}}
+ %
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@step}{-.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.65\pgf@circ@res@step}{-.4\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+%% sigmoid
+\pgfcirc@define@twoports{blocks}
+{}
+{\ctikzvalof{bipoles/sigmoid/width}}
+{sigmoid}
+{\ctikzvalof{bipoles/sigmoid/width}}
+{\ctikzvalof{bipoles/sigmoid/width}}
+{
+ \pgfsetlinewidth{1.2\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.65\pgf@circ@res@step}{-.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-.45\pgf@circ@res@step}{-.4\pgf@circ@res@step}}
+ \pgfpathparabola{\pgfpointorigin}{\pgfpoint{.45\pgf@circ@res@step}{.4\pgf@circ@res@step}}
+ %
+ \pgfpathmoveto{\pgfpoint{.65\pgf@circ@res@step}{.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.45\pgf@circ@res@step}{.4\pgf@circ@res@step}}
+ \pgfpathparabola{\pgfpointorigin}{\pgfpoint{-.45\pgf@circ@res@step}{-.4\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+%% all-or-nothing (comparator) block
+\pgfcirc@define@twoports{blocks}
+{}
+{\ctikzvalof{bipoles/allornothing/width}}
+{allornothing}
+{\ctikzvalof{bipoles/allornothing/width}}
+{\ctikzvalof{bipoles/allornothing/width}}
+{
+ \pgfsetlinewidth{1.2\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-0.55\pgf@circ@res@step}{-.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{+0pt}{-.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{+0pt}{.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.55\pgf@circ@res@step}{.4\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
%% converters help function
%% definition for styling the DC symbols (GitHub issue #680)
\ctikzset{blocks dc in segments/.initial=1}
@@ -1357,7 +1419,7 @@
\pfgcirc@twoport@rotate@inner@symbol
\pgfcirc@twoport@draw@sine{0}{0}
}
-%% amplifier and vamplifier
+%% amplifier, iamplifier, and vamplifier
%% Amplifier %% Beware, not using the generic twoport(s) macros.
\pgfcirc@define@twoports@boxed{blocks}
{
@@ -1395,8 +1457,45 @@
\pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
\fi
}
+%% Instrumentation amplifier %% Beware, not using the generic twoport(s) macros.
+\pgfcirc@define@twoports@boxed{blocks}
+{
+ \anchor{up}{%
+ \northeast\pgf@x=0pt\relax
+ \ifnum\componentisboxed=0
+ \pgf@y=0.75\pgf@y
+ \fi
+ }
+ \anchor{down}{%
+ \northeast\pgf@x=0pt\pgf@y=-\pgf@y\relax
+ \ifnum\componentisboxed=0
+ \pgf@y=0.75\pgf@y
+ \fi
+ }
+}
+{\ifpgf@circuit@boxed\ctikzvalof{bipoles/twoport/width}\else\ctikzvalof{bipoles/amp/width}\fi}
+{iamp}
+{\ifpgf@circuit@boxed\ctikzvalof{bipoles/twoport/width}\else\ctikzvalof{bipoles/amp/width}\fi}
+{\ifpgf@circuit@boxed\ctikzvalof{bipoles/twoport/width}\else\ctikzvalof{bipoles/amp/width}\fi}
+{
+ % draw blunt triangle
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.55\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-0.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.55\pgf@circ@res@step}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pfgcirc@twoport@get@symbol@rotation
+ % draw inner text
+ \pgf@circ@text@strokecolor
+ \ifnum\@@rotation=180
+ \pgftransformrotate{180}
+ \pgftext[center,x=0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+ \else
+ \pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+ \fi
+}
%% variable amplifier %% Beware, not using the generic twoport(s) macros.
-% \pgfcircdeclarebipolescaled{blocks}
\pgfcirc@define@twoports@boxed{blocks}
{
\anchor{up}{%
@@ -1439,6 +1538,28 @@
\pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
\fi
}
+
+%% optical fiber
+\pgfcirc@define@twoports@norotate{blocks}
+{}
+{\ctikzvalof{bipoles/fiber/width}}
+{fiber}
+{\ctikzvalof{bipoles/fiber/width}}
+{\ctikzvalof{bipoles/fiber/width}}
+{
+ \pgfpathcircle{\pgfpoint{0.2\pgf@circ@res@left}{0.4\pgf@circ@res@up}}{0.4\pgf@circ@res@up}
+ \pgfpathcircle{\pgfpoint{0\pgf@circ@res@left}{0.4\pgf@circ@res@up}}{0.4\pgf@circ@res@up}
+ \pgfpathcircle{\pgfpoint{-0.2\pgf@circ@res@left}{0.4\pgf@circ@res@up}}{0.4\pgf@circ@res@up}
+ \pgfusepath{draw}
+ % always use basic line width for this
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+}
+
+\pgfcirc@activate@bipole@simple{l}{fiber}
+%
% %>>>
%% Path definitions for Blocks%<<<
@@ -1458,6 +1579,7 @@
\pgfcirc@activate@bipole@simple{l}{dsp}
\pgfcirc@activate@bipole@simple{l}{fft}
\pgfcirc@activate@bipole@simple{l}{amp}
+\pgfcirc@activate@bipole@simple{l}{iamp}
\pgfcirc@activate@bipole@simple{l}{vamp}
\pgfcirc@activate@bipole@simple{l}{piattenuator}
\pgfcirc@activate@bipole@simple{l}{vpiattenuator}
@@ -1466,6 +1588,10 @@
\pgfcirc@activate@bipole@simple{l}{phaseshifter}
\pgfcirc@activate@bipole@simple{l}{vphaseshifter}
\pgfcirc@activate@bipole@simple{l}{detector}
+\pgfcirc@activate@bipole@simple{l}{saturation}
+\pgfcirc@activate@bipole@simple{l}{sigmoid}
+\pgfcirc@activate@bipole@simple{l}{allornothing}
+\pgfcirc@activate@bipole@simple{l}{fiber}
\pgfcirc@activate@bipole@simple{l}{sacdc}
\pgfcirc@activate@bipole@simple{l}{sdcac}
\pgfcirc@activate@bipole@simple{l}{sdcdc}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
index a3317ad5fb..f633ba1c5b 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
index 826c3eaad3..9c72001919 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
index 356098f132..08535b7bc0 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
index 6634531c2c..e041b3b524 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
index b82ab7a7b1..9f955a4654 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -31,10 +31,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -1993,10 +1993,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2065,10 +2065,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2871,10 +2871,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3887,10 +3887,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -8991,10 +8991,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -14699,10 +14699,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -15850,10 +15850,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17628,10 +17628,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17997,10 +17997,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18496,10 +18496,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18711,10 +18711,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19008,10 +19008,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
index d3dd59b2de..ea2d3e5b14 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -32,10 +32,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2138,10 +2138,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2224,10 +2224,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3030,10 +3030,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4046,10 +4046,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -9943,10 +9943,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -15850,10 +15850,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17137,10 +17137,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19831,10 +19831,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20200,10 +20200,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20749,10 +20749,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20964,10 +20964,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21261,10 +21261,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
index 992b6faf0f..52008ac993 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -32,10 +32,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2353,10 +2353,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2448,10 +2448,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3260,10 +3260,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4362,10 +4362,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10525,10 +10525,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16959,10 +16959,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18705,10 +18705,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21736,10 +21736,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22107,10 +22107,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22738,10 +22738,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22968,10 +22968,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23292,10 +23292,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
index 54d3f42939..422784d674 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -32,10 +32,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -927,10 +927,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -1332,10 +1332,10 @@
%%%---------- close: tex/pgfcircutils
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -1697,10 +1697,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2519,10 +2519,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3722,10 +3722,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -9952,10 +9952,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18520,10 +18520,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22281,10 +22281,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -24442,10 +24442,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -24844,10 +24844,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -25554,10 +25554,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -25800,10 +25800,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
index d4358b98c3..92299ca649 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2023 by Romano Giannetti
-% Copyright 2015-2023 by Stefan Lindner
-% Copyright 2013-2023 by Stefan Erhardt
-% Copyright 2007-2023 by Massimo Redaelli
+% Copyright 2018-2024 by Romano Giannetti
+% Copyright 2015-2024 by Stefan Lindner
+% Copyright 2013-2024 by Stefan Erhardt
+% Copyright 2007-2024 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16,8 +16,8 @@
\startmodule[circuitikz]
\usemodule[tikz]
-\def\pgfcircversion{1.6.6}
-\def\pgfcircversiondate{2023/12/09}
+\def\pgfcircversion{1.6.7}
+\def\pgfcircversiondate{2024/02/09}
\writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
@@ -148,7 +148,9 @@
\catcode`\!=\tikzexclaimcode
% define the environment
-\long\def\startcircuitikz#1\stopcircuitikz{\starttikzpicture#1\stoptikzpicture}
+% thanks to Max Chernoff https://tex.stackexchange.com/a/705683/38080
+\let\startcircuitikz\starttikzpicture
+\let\stopcircuitikz\stoptikzpicture
\protect
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
index df74edf5c8..5634883569 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
@@ -1,4 +1,4 @@
-<b>Date of last change: 2023-09-10 to version v1.1o</b>
+<b>Date of last change: 2024-02-10 to version v1.1p</b>
# biblatex-gb7714-2015: a biblatex style package
@@ -22,7 +22,11 @@ A biblatex implementation of the `GB/T 7714-2015` bibliography style for Chinese
The biblatex-gb7714-2015 package provides an implementation of the bibliography style of the `GB/T 7714-2015` bibliography style. This implementation follows `GB/T 7714-2015` standard, and can be used simply by loading biblatex with the appropriate option
-biblatex-gb7714-2015 å®åŒ…是中文å‚考文献著录/标注标准 `GB/T 7714-2015` çš„ biblatex 实现。它本质上是一个样å¼åŒ…,æ供了顺åºç¼–ç åˆ¶å’Œè‘—者年份制样å¼ï¼Œåœ¨ tex 文档中é…åˆ biblatex å®åŒ…使用,以生æˆæ»¡è¶³ã€ŠGB/T 7714-2015 ä¿¡æ¯ä¸Žæ–‡çŒ® å‚考文献著录规则》è¦æ±‚çš„å‚考文献。除了具备 biblatex æ供的ä¸åŒäºŽä¼ ç»ŸåŸºäºŽ bibtex çš„å‚考文献解决方案的特点外,还具有如下特点:
+biblatex-gb7714-2015 å®åŒ…是中文å‚考文献著录/标注标准 `GB/T 7714-2015` çš„ biblatex 实现。它本质上是一个样å¼åŒ…,在 tex 文档中é…åˆ biblatex å®åŒ…使用,以生æˆæ»¡è¶³ã€ŠGB/T 7714-2015 ä¿¡æ¯ä¸Žæ–‡çŒ® å‚考文献著录规则》è¦æ±‚çš„å‚考文献。
+å®åŒ…主è¦æ供两ç§ç¼–制样å¼: 一ã€é¡ºåºç¼–ç åˆ¶ï¼ˆgb7714-2015);二ã€è‘—者-出版年制(gb7714-2015ay),能够精确实现国标æ出的著录和标注格å¼ã€‚
+å¦å¤–æä¾›: 两个è€ç‰ˆå›½æ ‡æ ·å¼(gb7714-2005/gb7714-2005ayã€gb7714-1987/gb7714-1987ay);
+两个特殊样å¼(一个文献表内中英文格å¼ä¸åŒçš„gb7714-2015ms〠一个文档内顺åºç¼–ç å’Œä½œè€…年制混用的gb7714-2015mx); 三个典型文科期刊样å¼(ç»æµŽå­¦ç ”究的chinese-erjã€ç¤¾ä¼šç§‘学的chinese-cssã€ç®¡ç†ä¸–界的chinese-jmw); 以åŠå‡ ä¸ªæ˜Žæ˜¾æœ‰åˆ«äºŽå›½æ ‡çš„特殊学ä½è®ºæ–‡æ ·å¼(西北农林的gb7714-NWAFUã€åŽä¸­å¸ˆèŒƒçš„gb7714-CCNUã€ä¸œå—大学的gb7714-SEU)等。
+å®åŒ…除了具备 biblatex æ供的ä¸åŒäºŽä¼ ç»ŸåŸºäºŽ bibtex çš„å‚考文献解决方案外,还具有如下特点:
* 较强的兼容性。能够兼容 biblatex v2.8 以上版本;能够兼容国标样å¼çš„一些常用æ¡ç›®ç±»åž‹ã€æ•°æ®åŸŸã€‚
@@ -1356,6 +1360,8 @@ biblatex中处ç†é¡ºåºæ•°å­—ç¼–ç åŽ‹ç¼©çš„代ç é»˜è®¤ä»Ž3个连续编ç å¼€å§
- ![test-gbt-7714-2005.tex](example/test-gbt-7714-2005.tex) 测试GB/T7714-2005标准的样å¼
测试标注中本地化字符串ã€æ ‡ç‚¹çš„中英文切æ¢
- ![test-punct-quanjiao.tex](example/test-punct-quanjiao.tex) 测试标点中英文切æ¢
+ - ![test-authoryear-date.tex](example/test-authoryear-date.tex) 测试著者-出版年制è”机网络文献的“出版年â€
+
@@ -1602,6 +1608,8 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information!
* 2023/04/24 v1.1m,ctan,github
* 2023/05/24 v1.1n,ctan,github
* 2023/09/10 v1.1o,ctan,github
+* 2024/02/10 v1.1p,ctan,github
+
---------------------------------------------------------
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
index 9226cb0107..e0b7222d5e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
index bab5e1f479..2dce4783ce 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
@@ -36,7 +36,7 @@ Style Files (gb7714-2015*.*) have version number: \versionofgbtstyle.}
\titleandauthor
\begin{quotation}
-biblatex-gb7714-2015 å®åŒ…是为满足《GB/T 7714-2015~~ä¿¡æ¯ä¸Žæ–‡çŒ®~~å‚考文献著录规则》è¦æ±‚而开å‘çš„ biblatex æ ·å¼åŒ…。å®åŒ…主è¦æ供两ç§ç¼–制样å¼: 一ã€é¡ºåºç¼–ç åˆ¶ï¼ˆgb7714-2015);二ã€è‘—者-出版年制(gb7714-2015ay),能够精确地实现国标æ出的著录和标注格å¼ã€‚å¦å¤–æä¾›gb7714-2005å’Œgb7714-1987两个è€ç‰ˆæœ¬çš„国标样å¼ï¼Œgb7714-2015ms(一个文献表中英文ä¸åŒ)å’Œgb7714-2015mx(一个文档顺åºç¼–ç å’Œä½œè€…年制混用)两个特殊样å¼ï¼Œå’Œç»æµŽå­¦ç ”究(chinese-erj)ã€ç¤¾ä¼šç§‘å­¦(chinese-css)ã€ç®¡ç†ä¸–ç•Œ(chinese-jmw)等典型文科期刊样å¼ï¼Œä»¥åŠè¥¿åŒ—农林(gb7714-NWAFU)ã€åŽä¸­å¸ˆèŒƒ(gb7714-CCNU)ã€ä¸œå—大学(gb7714-SEU)等几个明显有别于国标的特殊学ä½è®ºæ–‡æ ·å¼ã€‚
+biblatex-gb7714-2015 å®åŒ…是为满足《GB/T 7714-2015~~ä¿¡æ¯ä¸Žæ–‡çŒ®~~å‚考文献著录规则》è¦æ±‚而开å‘çš„ biblatex æ ·å¼åŒ…。å®åŒ…主è¦æ供两ç§ç¼–制样å¼: 一ã€é¡ºåºç¼–ç åˆ¶ï¼ˆgb7714-2015);二ã€è‘—者-出版年制(gb7714-2015ay),能够精确实现国标æ出的著录和标注格å¼ã€‚å¦å¤–æä¾›: 两个è€ç‰ˆå›½æ ‡æ ·å¼(gb7714-2005/gb7714-2005ayã€gb7714-1987/gb7714-1987ay); 两个特殊样å¼(一个文献表内中英文格å¼ä¸åŒçš„gb7714-2015ms〠一个文档内顺åºç¼–ç å’Œä½œè€…年制混用的gb7714-2015mx); 三个典型文科期刊样å¼(ç»æµŽå­¦ç ”究的chinese-erjã€ç¤¾ä¼šç§‘学的chinese-cssã€ç®¡ç†ä¸–界的chinese-jmw); 以åŠå‡ ä¸ªæ˜Žæ˜¾æœ‰åˆ«äºŽå›½æ ‡çš„特殊学ä½è®ºæ–‡æ ·å¼(西北农林的gb7714-NWAFUã€åŽä¸­å¸ˆèŒƒçš„gb7714-CCNUã€ä¸œå—大学的gb7714-SEU)等。
具备çµæ´»ã€æ˜“用ã€å…¼å®¹æ€§å¥½ç­‰ç‰¹ç‚¹ï¼Œèƒ½ä¸ºå›½å†…\LaTeX{}用户æ供一个å¯é çš„å‚考文献生æˆå·¥å…·ã€‚
%old:
%biblatex-gb7714-2015 æ ·å¼å®åŒ…æ供了符åˆã€ŠGB/T 7714-2015 ä¿¡æ¯ä¸Žæ–‡çŒ® å‚考文献
@@ -62,7 +62,7 @@ biblatex-gb7714-2015 å®åŒ…是为满足《GB/T 7714-2015~~ä¿¡æ¯ä¸Žæ–‡çŒ®~~å‚è€
\pagestyle{fancy}
\section{概述}
-《GB/T 7714-2015~~ä¿¡æ¯ä¸Žæ–‡çŒ®~~å‚考文献著录规则》是国内科技文档å‚考文献著录的一般标准,国内多数大学ã€å‡ºç‰ˆç¤¾ã€æœŸåˆŠç¼–辑部对于学ä½è®ºæ–‡ã€å‡ºç‰ˆç‰©ã€æœŸåˆŠè®ºæ–‡çš„å‚考文献è¦æ±‚通常都基于该标准。对于\LaTeX{}用户æ¥è¯´ï¼Œå‚考文献生æˆæ˜¯å…¸åž‹çš„自动化应用,主è¦æœ‰ä¸¤ç§æ–¹æ³•ï¼Œä¸€æ˜¯åŸºäºŽbibtex的传统方法,二是基于biblatex的新方法。生æˆç¬¦åˆGB/T 7714 标准è¦æ±‚çš„å‚考文献,这两æ¡è·¯éƒ½å·²ç»å®žè·µå¤šå¹´ã€‚
+《GB/T 7714-2015~~ä¿¡æ¯ä¸Žæ–‡çŒ®~~å‚考文献著录规则》是国内科技文档å‚考文献著录的一般标准,国内多数大学ã€å‡ºç‰ˆç¤¾ã€æœŸåˆŠç¼–辑部对于学ä½è®ºæ–‡ã€å‡ºç‰ˆç‰©ã€æœŸåˆŠè®ºæ–‡çš„å‚考文献è¦æ±‚通常都基于该标准。对于\LaTeX{}用户æ¥è¯´ï¼Œå‚考文献生æˆæ˜¯å…¸åž‹çš„自动化应用。主è¦æœ‰ä¸¤ç§æ–¹æ³•ï¼šä¸€æ˜¯åŸºäºŽbibtex的传统方法,二是基于biblatex的新方法。生æˆç¬¦åˆGB/T 7714 标准è¦æ±‚çš„å‚考文献,这两æ¡è·¯éƒ½å·²ç»å®žè·µå¤šå¹´ã€‚
基于biblatex的方法,早期有æŽå¿—奇(icetea)çš„gbtstyle实现以åŠCasper Ti. Vectorçš„caspervectoræ ·å¼ï¼Œç„¶è€Œç”±äºŽbiblatexå®åŒ…å‡çº§ã€æ ·å¼åŒ…维护和完善等方é¢çš„问题,未能达到精确符åˆå›½æ ‡è¦æ±‚ã€ä¸”具备高å¯ç”¨æ€§ã€å…¼å®¹æ€§å’Œå¯ç»´æŠ¤æ€§çš„ç†æƒ³çŠ¶æ€ã€‚å¼€å‘biblatex-gb7714-2015 æ ·å¼åŒ…çš„åˆè¡·é¦–先是基于当时这样的状æ€ï¼Œå…¶æ¬¡ä¹Ÿä¸ºè§£å†³å¾ˆå¤šå®žé™…应用中的问题,因此考虑如下原则:
\subsection{设计原则}
@@ -76,31 +76,29 @@ biblatex-gb7714-2015 å®åŒ…是为满足《GB/T 7714-2015~~ä¿¡æ¯ä¸Žæ–‡çŒ®~~å‚è€
\item 易用性
-å‚考文献是\LaTeX{}自动化应用之一,尽å¯èƒ½è®©å…¶è‡ªåŠ¨å®Œæˆï¼Œå‡å°‘用户的人工干预,包括数æ®çš„准备ã€æ ¼å¼çš„调整等等。因此å®åŒ…试图å‡å°‘用户对于bib文件的调整,åªéœ€è¦ç®€å•åœ°è¾“入文献本身的信æ¯ï¼Œæˆ–者从å„类学术网站或利用zotero等工具下载å‚考文献数æ®å³å¯ï¼Œè€Œä¸éœ€è¦ä¸ºäº†ç¬¦åˆå›½æ ‡æ ¼å¼è€ŒåŽ»æ‰‹åŠ¨å¢žæ·»å‚考文献类型和载体标识等一些数æ®åŸŸï¼Œä¹Ÿä¸å¿…为了文献语言分集ã€æ–‡çŒ®æŽ’åºç­‰åŽ»å¢žåŠ è¯­è¨€ã€æŽ’åºå…³é”®å­—等数æ®åŸŸï¼Œæ‰€æœ‰è¿™äº›å·¥ä½œéƒ½ç”±ä¼šå®åŒ…自动处ç†ã€‚
+å‚考文献是\LaTeX{}自动化应用之一,尽å¯èƒ½è®©å…¶è‡ªåŠ¨å®Œæˆï¼Œå‡å°‘用户的人工干预,包括数æ®çš„准备ã€æ ¼å¼çš„调整等等。因此å®åŒ…试图å‡å°‘用户对于bib文件的调整,åªéœ€è¦ç®€å•åœ°è¾“入文献本身的信æ¯ï¼Œæˆ–者从å„类学术网站或利用zotero等工具下载å‚考文献数æ®å³å¯ï¼Œè€Œä¸éœ€è¦ä¸ºäº†ç¬¦åˆå›½æ ‡æ ¼å¼è€ŒåŽ»æ‰‹åŠ¨å¢žæ·»å‚考文献类型和载体标识等一些数æ®åŸŸï¼Œä¹Ÿä¸å¿…为了文献语言分集ã€æ–‡çŒ®æŽ’åºç­‰åŽ»å¢žåŠ è¯­è¨€ã€æŽ’åºå…³é”®å­—等数æ®åŸŸï¼Œæ‰€æœ‰è¿™äº›å·¥ä½œéƒ½ç”±å®åŒ…自动处ç†ã€‚
-为了符åˆå›½æ ‡è¦æ±‚以åŠä¸­æ–‡å‚考文献标注习惯,æ供丰富的标注(引用)命令,用户åªéœ€ç†Ÿæ‚‰å‡ ä¸ªå‘½ä»¤çš„特性å³èƒ½å¤Ÿå®Œæˆä¸¤ç§ç¼–制样å¼ä¸‹å¤šæ ·çš„标注格å¼ï¼ŒåŒ…括:顺åºç¼–ç åˆ¶çš„ \verb|\cite|(上标å¯è®¾ç½®é¡µç )〠\verb|\parencite|(éžä¸Šæ ‡å¯è®¾ç½®é¡µç )〠\verb|\pagescite|(上标加自动页ç )〠\verb|\textcite|(æ供作者为主语加éžä¸Šæ ‡ç¼–å·)〠\verb|\authornumcite|(æ供作者为主语加上标编å·)〠\verb|\footfullcite|(脚注注释);著者-年份制的\verb|\cite|(作者加年份用括å·åŒ…å›´å¯è®¾ç½®é¡µç )〠\verb|\pagescite|(作者加年份用括å·åŒ…围自动页ç )ã€
+为了符åˆå›½æ ‡è¦æ±‚以åŠä¸­æ–‡å‚考文献标注习惯,æ供丰富的标注(引用)命令,用户åªéœ€ç†Ÿæ‚‰å‡ ä¸ªå‘½ä»¤çš„特性å³èƒ½å¤Ÿå®Œæˆä¸¤ç§ç¼–制样å¼ä¸‹å¤šæ ·çš„标注格å¼ï¼ŒåŒ…括:顺åºç¼–ç åˆ¶çš„ \verb|\cite|(上标å¯è®¾ç½®é¡µç )〠\verb|\parencite|(éžä¸Šæ ‡å¯è®¾ç½®é¡µç )〠\verb|\pagescite|(上标加自动页ç )〠\verb|\textcite|(æ供作者为主语加éžä¸Šæ ‡ç¼–å·)〠\verb|\authornumcite|(æ供作者为主语加上标编å·)ã€\verb|\fullcite|(类似文献表的标注)〠\verb|\footfullcite|(脚注文献表);著者-年份制的\verb|\cite|(作者加年份用括å·åŒ…å›´å¯è®¾ç½®é¡µç )〠\verb|\pagescite|(作者加年份用括å·åŒ…围自动页ç )ã€
\verb|\yearcite|(æ供年份用括å·åŒ…å›´)〠\verb|\yearpagescite|(æ供年份用括å·åŒ…围自动页ç )ã€
\verb|\textcite|(æ供主语作者加括å·åŒ…围年份)〠\verb|\footfullcite|(脚注注释)。
-
也æ供与natbibå®åŒ…常用命令åŒå的命令 \verb|\citet| å’Œ \verb|\citep|,
和一些惯常使用的命令,如\verb|\citetns|ã€\verb|\citepns|ã€
\verb|\upcite|ã€\verb|\inlinecite|等,让用户å¯ä»¥æ— ç¼è¡”接从bibtex转到biblatex。
-
å¦å¤–,增加并完善对多语言混åˆæ–‡çŒ®è¡¨ã€å¤šè¯­è¨€å¯¹ç…§æ–‡çŒ®è¡¨çš„支æŒã€‚ä¸åŒè¯­è¨€æ–‡çŒ®å¯æŒ‰æ–‡çŒ®è‡ªèº«è¯­è¨€å½•å…¥ï¼Œå®åŒ…自动识别语言并通过autolang选项自动完æˆè¯­è¨€åˆ‡æ¢ï¼Œé’ˆå¯¹å¤šè¯­è¨€å¯¹ç…§æ–‡çŒ®è¡¨æ供了基于æ¡ç›®é›†å’Œå…³è”æ¡ç›®æ¦‚念的两ç§å®žçŽ°æ–¹å¼ã€‚
\item çµæ´»æ€§
-在考虑实现严格符åˆGB/T 7714-2015标准的格å¼å¤–,也希望能够针对用户的特殊格å¼éœ€æ±‚,æ供方便的定制方å¼ï¼Œæ¯”如通过设置选项æ¥è¾¾åˆ°æ ¼å¼çš„å˜åŒ–。为此,增加了多个方é¢çš„设置选项,使用户å¯ä»¥æ ¹æ®è‡ªèº«éœ€æ±‚çµæ´»åœ°è°ƒæ•´ã€‚主è¦åŒ…括:
+除严格实现符åˆGB/T 7714-2015标准的格å¼å¤–,也希望能针对ä¸åŒç”¨æˆ·çš„特殊需求,æ供方便的定制方å¼ï¼Œæ¯”如通过选项æ¥è¾¾åˆ°æ ¼å¼çš„调整。为此,增加了多个方é¢çš„设置选项,使用户å¯ä»¥æ ¹æ®è‡ªèº«éœ€æ±‚çµæ´»è®¾ç½®ã€‚主è¦åŒ…括:
著录表排åºé€‰é¡¹ï¼š
-sorting选项值(gb7714-2015支æŒä»¥è¯­è¨€è‘—者-出版年标题å‡åºæŽ’列,gbnytd支æŒä»¥è¯­è¨€è‘—者-出版年标题é™åºæŽ’列,gbynta支æŒä»¥è¯­è¨€å¹´ä»½ä½œè€…标题å‡åºæŽ’列,gbyntd支æŒä»¥è¯­è¨€å¹´ä»½ä½œè€…标题é™åºæŽ’列)ã€gblanorder 选项(å¯ä»¥è®¾ç½®ä¸åŒçš„æ–‡ç§(语言)文献的排列顺åº)ã€sortlocale 选项(å¯ä»¥è®¾ç½®æœ¬åœ°è¯­è¨€çš„排åºè°ƒæ•´æ–¹æ¡ˆï¼Œæ¯”如zh\_\_pinyin支æŒæ±‰å­—字符以拼音排åºï¼Œzh\_\_stroke以笔画排åºï¼Œauto/zh以unicodeç¼–ç æŽ’åºï¼Œzh\_\_gb2312han 以gb2312ç¼–ç æŽ’åº)。使用拼音排åºæ—¶é‡åˆ°å¤šéŸ³å­—也å¯ä»¥åˆ©ç”¨æ·»åŠ key域或使用修改åŽçš„locale文件pinyin.pm解决。
-
+sorting选项值(gb7714-2015支æŒä»¥è¯­è¨€è‘—者-出版年标题å‡åºæŽ’列,gbnytd支æŒä»¥è¯­è¨€è‘—者-出版年标题é™åºæŽ’列,gbynta支æŒä»¥è¯­è¨€å¹´ä»½ä½œè€…标题å‡åºæŽ’列,gbyntd支æŒä»¥è¯­è¨€å¹´ä»½ä½œè€…标题é™åºæŽ’列)ã€gblanorder 选项(å¯ä»¥è®¾ç½®ä¸åŒçš„æ–‡ç§(语言)文献的排列顺åº)ã€sortlocale 选项(å¯ä»¥è®¾ç½®æœ¬åœ°è¯­è¨€çš„排åºè°ƒæ•´æ–¹æ¡ˆï¼Œæ¯”如:zh\_\_pinyin 以拼音排åºä¸­æ–‡ï¼Œzh\_\_stroke 以笔画排åºï¼Œauto/zh 以unicodeç¼–ç æŽ’åºï¼Œzh\_\_gb2312han 以gb2312ç¼–ç æŽ’åº)。使用拼音排åºæ—¶é‡åˆ°å¤šéŸ³å­—也å¯ä»¥åˆ©ç”¨æ·»åŠ key域或使用修改åŽçš„locale文件(å³ pinyin.pm)解决。
著录项格å¼é€‰é¡¹ï¼š
-姓åæ ¼å¼è°ƒæ•´(gbnamefmt选项,å¯ä»¥è®¾ç½®å¤§å†™ã€å°å†™ã€è¥¿è¯­ä¹ æƒ¯ç”¨æ³•ã€æ‹¼éŸ³ä¹ æƒ¯ç”¨æ³•)ã€
-出版项控制(gbpub选项,å¯è®¾ç½®å‡ºç‰ˆé¡¹ç¼ºå¤±æ—¶æ˜¯å¦å¡«è¡¥ä¿¡æ¯)ã€ç±»åž‹å’Œè½½ä½“标识控制(gbtype选项,å¯è®¾ç½®ä¸è¾“出)ã€
+姓åæ ¼å¼è°ƒæ•´(gbnamefmt选项,å¯ä»¥è®¾ç½®å¤§å†™ã€å°å†™ã€è¥¿è¯­ä¹ æƒ¯ç”¨æ³•ã€æ‹¼éŸ³ä¹ æƒ¯ç”¨æ³•ç­‰)ã€
+出版项控制(gbpub选项,å¯è®¾ç½®å‡ºç‰ˆé¡¹ç¼ºå¤±æ—¶æ˜¯å¦å¡«è¡¥ä¿¡æ¯)ã€
+类型和载体标识控制(gbtype选项,å¯è®¾ç½®ä¸è¾“出)ã€
æžå‡ºæ–‡çŒ®æ ‡è¯†ç¬¦æŽ§åˆ¶(gbpunctin选项,å¯è®¾ç½®\texttt{//}ä¸è¾“出或其它表示形å¼)ã€
标题超链接控制(gbtitlelink选项,å¯è®¾ç½®æ–‡çŒ®è¡¨ä¸­å„æ¡ç›®æ ‡é¢˜è¶…链接)ã€
标准标签超链接控制(gblabelref选项,å¯è®¾ç½®æ ‡æ³¨ä¸­ä½œè€…标签的超链接)ã€
@@ -121,22 +119,24 @@ sorting选项值(gb7714-2015支æŒä»¥è¯­è¨€è‘—者-出版年标题å‡åºæŽ’列,
ç¼–ç è®¾ç½®é€‰é¡¹ï¼š
GBKç¼–ç å…¼å®¹(gbcodegbk选项,å¯è®¾ç½®GBKç¼–ç æ–‡æ¡£ç¼–译)等等。
-é…åˆbiblatexæ供的选项ã€\verb|\bibfont|命令ã€\verb|\bibitemsep|é—´è·ç­‰å¯ä»¥å®žçŽ°ä¸°å¯Œçš„æ ¼å¼ï¼ŒåŒ…括标注和文献表采用ä¸åŒæ ·å¼ã€url/doi/isbn输出控制ã€æ ‡æ³¨å’Œæ–‡çŒ®è¡¨ä¸­ä½œè€…æ•°é‡æŽ§åˆ¶ã€æ–‡çŒ®è¡¨æ‹¼éŸ³æˆ–笔画排åºç­‰ç­‰ã€‚
+é…åˆbiblatexæ供的选项ã€\verb|\bibfont|命令ã€\verb|\bibitemsep|é—´è·ç­‰å¯ä»¥å®žçŽ°ä¸°å¯Œçš„æ ¼å¼è°ƒæ•´ï¼ŒåŒ…括标注和文献表采用ä¸åŒæ ·å¼ã€url/doi/isbn输出控制ã€æ ‡æ³¨å’Œæ–‡çŒ®è¡¨ä¸­ä½œè€…æ•°é‡æŽ§åˆ¶ã€æ–‡çŒ®è¡¨æŒ‰æ‹¼éŸ³æˆ–笔画排åºç­‰ç­‰ã€‚
\item å¯ç»´æŠ¤æ€§
-å®åŒ…的长期使用价值体现在å®åŒ…的维护和更新上é¢ï¼Œè¿½æ±‚å®åŒ…具有高的å¯è¯»æ€§ã€å¯ç†è§£æ€§ã€å¯ç»´æŠ¤æ€§ï¼Œå¯ä¸ºå®åŒ…长期å‘挥作用æ供帮助。由于biblatexå·²ç»æ˜¯ä¸€ä¸ªç›¸å½“æˆç†Ÿå®Œå–„çš„å®åŒ…,å³ä¾¿æ˜¯åœ¨æ ·å¼æ–¹é¢è€ƒè™‘也相当全é¢ï¼Œè¿™å¯èƒ½ä¸Žè¥¿æ–¹å‡ºç‰ˆç•Œå¯¹äºŽå‚考文献的多样且细致的è¦æ±‚有关。而国内åªæœ‰ä¸€ä¸ªé€šç”¨æ ‡å‡†å°±æ˜¯GB/T 7714标准,且除了一些特殊需求è¦å…·ä½“实现外,标准中大多数格å¼è¦æ±‚的实现完全å¯ä»¥å€Ÿç”¨biblatexæ供的标准样å¼ï¼Œå› æ­¤æ—¢ä¸éœ€è¦é‡æ–°é€ è½®å­ï¼Œä¹Ÿå¯ä»¥ä½¿gb7714-2015æ ·å¼ä¸Žbiblatexå®åŒ…的标准样å¼ä¿æŒä¸€è‡´çš„结构ã€é£Žæ ¼å’Œä¹ æƒ¯ï¼Œè¿™æ ·å¯ä»¥å¤§å¤§å¢žåŠ ä»£ç å¯è¯»æ€§å’Œå¯ç»´æŠ¤æ€§ã€‚通过在biblatex原有样å¼åŸºç¡€ä¸Šå¢žåŠ æœ‰é™ä¿®æ”¹ï¼Œå¹¶å¯¹ä»£ç åŠ ä¸Šè¯¦ç»†æ³¨é‡Šï¼Œå¯ä½¿ç»´æŠ¤è€…åªéœ€é€šè¿‡å­¦ä¹ biblatex,å³å¯è½»æ¾ç†è§£gb7714-2015æ ·å¼çš„代ç ã€‚
-%åšçš„工作,比如åšäº†å“ªäº›ä¿®æ”¹ï¼Œä¸ºä»€ä¹ˆè¿™ä¹ˆä¿®æ”¹ï¼Œå®žçŽ°äº†ä»€ä¹ˆæ ·çš„效果。
+å®åŒ…的长期使用价值体现在å®åŒ…的维护和更新上,追求å®åŒ…具有高的å¯è¯»æ€§ã€å¯ç†è§£æ€§ã€å¯ç»´æŠ¤æ€§ï¼Œå¯ä¸ºå®åŒ…长期å‘挥作用æ供帮助。由于biblatexå·²ç»æ˜¯ä¸€ä¸ªç›¸å½“æˆç†Ÿå®Œå–„çš„å®åŒ…,å³ä½¿åœ¨æ ·å¼æ–¹é¢è€ƒè™‘也相当全é¢ï¼Œè¿™å¯èƒ½ä¸Žè¥¿æ–¹å‡ºç‰ˆç•Œå¯¹äºŽå‚考文献的多样且细致的è¦æ±‚有关。而国内åªæœ‰ä¸€ä¸ªé€šç”¨æ ‡å‡†å°±æ˜¯GB/T 7714标准,且除了部分特殊需求è¦é¢å¤–实现外,标准中的大多数格å¼è¦æ±‚å¯å€ŸåŠ©biblatexæ供的标准样å¼å®žçŽ°ï¼Œå› æ­¤å®Œå…¨ä¸éœ€è¦é‡æ–°é€ è½®å­ï¼Œè€Œåªéœ€åœ¨biblatex原有样å¼åŸºç¡€ä¸Šå¢žåŠ æœ‰é™ä¿®æ”¹å¹¶åŠ ä¸Šè¯¦ç»†æ³¨é‡Šæ¥è¾¾æˆç›®æ ‡ã€‚如此,既å¯ä½¿gb7714-2015æ ·å¼ä¸Žbiblatexå®åŒ…的标准样å¼ä¿æŒä¸€è‡´çš„结构ã€é£Žæ ¼å’Œä¹ æƒ¯ï¼Œè¿˜å¯ä»¥å¤§å¤§å¢žåŠ ä»£ç çš„å¯è¯»æ€§å’Œå¯ç»´æŠ¤æ€§ï¼Œè¯»è€…åªéœ€é€šè¿‡å­¦ä¹ biblatex,å³å¯è½»æ¾ç†è§£gb7714-2015æ ·å¼çš„代ç ã€‚
+%åšçš„工作,比如åšäº†å“ªäº›ä¿®æ”¹ï¼Œä¸ºä»€ä¹ˆè¿™ä¹ˆä¿®æ”¹ï¼Œå®žçŽ°äº†ä»€ä¹ˆæ ·çš„效果。维护者
å¦å¤–,为方便用户,样å¼åŒ…æ供了全é¢ã€è¯¦å®žçš„说明,包括
GB/T 7714标准的ç†è§£å’Œè§£é‡Šï¼ˆ\ref{sec:gbt:std}节)ã€
æ¡ç›®ç±»åž‹å’ŒåŸŸçš„ç†è§£å’Œå½•å…¥æ–¹æ³•ï¼ˆ\ref{sec:bib:bibtex}节)ã€
å‚考文献引用和文献表打å°åŠå…¶æ ¼å¼æŽ§åˆ¶æ–¹æ³•(\ref{sec:cbx:usage},\ref{sec:usage:bbx}节)ã€
+\hypertarget{lab:manual:hyper}{以åŠ}
\href{https://github.com/hushidong/biblatex-gb7714-2015/wiki}{biblatex和样å¼åŒ…基本使用方法}ã€
-\href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography/blob/master/biblatex-solution-to-latex-bibliography.pdf}%
-{biblatex高级使用方法和样å¼åŒ…设计实现方法}等,å¯ä¸ºç”¨æˆ·å¿«é€Ÿå…¥é—¨å’Œç»´æŠ¤è€…深入ç†è§£æ供有效帮助。
+\href{https://github.com/plk/biblatex}{biblatex手册}ã€
+\href{https://github.com/hushidong/biblatex-zh-cn}{biblatex手册中文版}ã€
+\href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography}{LaTeX 文档中文å‚考文献的biblatex解决方案}等手册,å¯ä¸ºç”¨æˆ·å¿«é€Ÿå…¥é—¨å’Œæ·±å…¥ç†è§£æ供有效帮助。
\end{enumerate}
@@ -154,7 +154,7 @@ GB/T 7714标准的ç†è§£å’Œè§£é‡Šï¼ˆ\ref{sec:gbt:std}节)ã€
å®åŒ…文件结构如图\ref{fig:pkg:structure}所示。
\zd{gb7714-2015.bbx/cbx}ã€\zd{gb7714-2015ay.bbx/cbx}分别为国标å‚考文献样å¼2015版本的顺åºç¼–ç åˆ¶å’Œè‘—者年份制样å¼æ–‡ä»¶ã€‚
对应的\zd{gb7714-1987/ay.bbx/cbx}ã€\zd{gb7714-2005/ay.bbx/cbx}则是1987å’Œ2005版本的国标样å¼ã€‚
-\zd{gb7714-2015ms.bbx/cbx}是混åˆæ ·å¼ï¼Œæ”¯æŒåŒºåˆ†ä¸­è‹±æ–‡è¯­è¨€åˆ†è®¾ä¸åŒæ ‡å‡†çš„著录格å¼ã€‚
+\zd{gb7714-2015ms.bbx/cbx}是混åˆæ ·å¼ï¼Œæ”¯æŒåŒºåˆ†ä¸­è‹±æ–‡è¯­è¨€æ–‡çŒ®åˆ†è®¾ä¸åŒçš„著录格å¼ã€‚
\zd{gb7714-2015mx.bbx/cbx}是混åˆæ ·å¼ï¼Œæ”¯æŒåœ¨ä¸åŒçš„å‚考文献分节中使用ä¸åŒçš„编制样å¼ï¼Œæ¯”如有的节使用顺åºç¼–ç åˆ¶ï¼Œæœ‰çš„节使用著者年份制。
\zd{gb7715-2015-gbk.def}为GBKç¼–ç æ–‡æ¡£ç¼–译所需的支撑文件。
\zd{chinese-erj.bbx/cbx}ã€\zd{chinese-css.bbx/cbx}ã€\zd{chinese-jmw.bbx/cbx} 是ç»æµŽå­¦ç ”究ã€ç¤¾ä¼šç§‘å­¦ã€ç®¡ç†ä¸–界期刊的文献样å¼ã€‚%åŽä¸‰è€…仅支æŒè¾ƒæ–°çš„biblatex版本。
@@ -231,13 +231,14 @@ GB/T 7714标准的ç†è§£å’Œè§£é‡Šï¼ˆ\ref{sec:gbt:std}节)ã€
\subsection{最å°ç¤ºä¾‹}
-基于biblatexå®åŒ…çš„å‚考文献生æˆæ–¹æ³•éžå¸¸ç®€å•ï¼Œä¾‹ \ref{code:doc:structrue} 是一个最å°å·¥ä½œç¤ºä¾‹ã€‚示例代ç ä¸­ç»™å‡ºäº†è¯¦ç»†æ³¨é‡Šï¼Œä»‹ç»äº†ä½¿ç”¨biblatex çš„texæºæ–‡æ¡£åŸºæœ¬ç»“构,其中:
+基于biblatexå®åŒ…生æˆå‚考文献éžå¸¸ç®€å•ï¼Œä¸€ä¸ªæœ€å°å·¥ä½œç¤ºä¾‹ (Minimum Work Example, MWE) 如例 \ref{code:doc:structrue}所示,其编译结果如图\ref{fig:eg:ref}所示。该Texæºæ–‡æ¡£ç»™å‡ºäº†ä½¿ç”¨biblatex时的基本结构åŠå…¶è¯¦ç»†æ³¨é‡Šï¼Œå…¶ä¸­ï¼š
\begin{itemize}
-\item gb7714-2015 æ ·å¼éšbiblatexå®åŒ…加载;
-\item bib(å‚考文献数æ®)文件利用 \verb|\addbibresource|加载 (注æ„:bib文件需å¦å¤–准备,详è§\ref{sec:bib:bibtex}节);
-\item 引用文献则在正文中利用\verb|\cite|等命令带上entrykey(文献唯一标识)å‚数,
-比如\verb|\cite{entrykey}|,
-\item 打å°æ–‡çŒ®è¡¨åˆ©ç”¨ \verb|\printbibliography| 命令输出(å¯æ”¾åœ¨æ­£æ–‡ä»»æ„ä½ç½®)。
+\item å‚考文献样å¼(å³cbx/bbx文件)éšbiblatexå®åŒ…加载(比如:style=gb7714-2015,加载了gb7714-2015.cbxå’Œgb7714-2015.bbx);
+\item å‚考文献数æ®åº“文件(å³bib文件)利用 \verb|\addbibresource| 加载 (比如:
+\lstinline[breaklines=true]!\addbibresource[location=local]{example.bib}!,
+注æ„:bib文件需å¦å¤–准备,详è§\ref{sec:bib:bibtex}节);
+\item 引用文献则使用\verb|\cite|等命令,å³ä½¿ç”¨è¿™äº›å‘½ä»¤åœ¨æ­£æ–‡ä¸­é€‚当ä½ç½®å¼•ç”¨å‚考文献的唯一标识(å³entrykey),比如\verb|\cite{entrykey}|;
+\item 打å°æ–‡çŒ®è¡¨åˆ™ä½¿ç”¨ \verb|\printbibliography| 命令,该命令å¯æ”¾åœ¨æ­£æ–‡ä»»æ„ä½ç½®(å³æ–‡çŒ®è¡¨å¯åœ¨ä»»æ„ä½ç½®è¾“出)。
\end{itemize}
\begin{example}{biblatexå‚考文献生æˆçš„最å°å·¥ä½œç¤ºä¾‹}{code:doc:structrue}
@@ -288,21 +289,21 @@ GB/T 7714标准的ç†è§£å’Œè§£é‡Šï¼ˆ\ref{sec:gbt:std}节)ã€
\end{figure}
%\end{refsection}
-上述最å°å·¥ä½œç¤ºä¾‹çš„编译结果如图\ref{fig:eg:ref}所示。所有基于 biblatex 生æˆå‚考文献的文档无论大å°ä¸‡å˜ä¸ç¦»å…¶å®—,
-若需更全é¢äº†è§£biblatexåŠå‚考文献生æˆé«˜çº§åŠŸèƒ½å¦å¯å‚考:
-\href{https://github.com/plk/biblatex}{biblatexå®åŒ…手册}
+正所谓万å˜ä¸ç¦»å…¶å®—,无论文档大å°å¦‚何,结构如何å˜åŒ–,基于biblatex 生æˆå‚考文献的方å¼
+大体如例\ref{code:doc:structrue}一般。使用其它功能如分章å‚考文献表等时,所需的修改也æžä¸ºæœ‰é™ã€‚è¦å…¨é¢äº†è§£æ›´å¤šé«˜çº§åŠŸèƒ½å¯å‚考å‰è¿°\hyperlink{lab:manual:hyper}{手册}。
+
+
+
+
%\footnote{地å€:\url{https://github.com/plk/biblatex}}ã€
-\href{https://github.com/hushidong/biblatex-zh-cn}{中文版}
%\footnote{地å€:\url{https://github.com/hushidong/biblatex-zh-cn}}
-或者
-\href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography}{LaTeX 文档中文å‚考文献的biblatex解决方案}
%\footnote{地å€:%
%\url{https://github.com/hushidong/biblatex-solution-to-latex-bibliography}}。
\subsection{编译方å¼}
-与基于bibtex传统方法的四步编译ä¸åŒï¼ŒåŸºäºŽbiblatex生æˆå‚考文献一般åªéœ€ä¸‰æ­¥ç¼–译,第一éxelatex,第二ébiber,第三éxelatex。如若需è¦åŽå‘超链接,则除设置backref 选项外,还需第四é xelatex 编译。例\ref{eg:compile:cmd} 给出编译命令,其中\verb|--synctex=-1| 选项也å¯ä»¥æ˜¯-synctex=1。å¦å¤–四步命令å¯ä»¥ç”¨ä¸€æ¡ latexmk 命令代替。
+与基于bibtex传统方法的四步编译ä¸åŒï¼ŒåŸºäºŽbiblatex生æˆå‚考文献一般åªéœ€ä¸‰æ­¥ç¼–译:第一éxelatex,第二ébiber,第三éxelatex。如若需è¦åå‘超链接,除设置backref 选项外,则还需第四é xelatex 编译。例\ref{eg:compile:cmd} 给出编译命令,其中\verb|--synctex=-1| 选项也å¯ä»¥æ˜¯-synctex=1。å¦å¤–四步命令å¯ä»¥ç”¨ä¸€æ¡ latexmk 命令代替。
关于éžutf-8ç¼–ç æ–‡æ¡£å’Œä½¿ç”¨pdflatex命令编译的细节å¦è§ç¬¬\ref{sec:pkg:hints}节。
\begin{example}{文档编译命令}{eg:compile:cmd}
@@ -320,11 +321,11 @@ latexmk -xelatex jobname.tex
-\subsection{æ ·å¼åŠé€‰é¡¹åŠ è½½}
+\subsection{æ ·å¼ã€é€‰é¡¹å’Œå‘½ä»¤}
\subsubsection{几ç§æ ·å¼}
-本样å¼åŒ…æ供了两ç§åŸºæœ¬æ ·å¼(gb7714-2015æ ·å¼(例\ref{eg:gb7714numeric})实现顺åºç¼–ç åˆ¶å›½æ ‡ï¼Œgb7714-2015ayæ ·å¼(例\ref{eg:gb7714authoryear})实现著者年份制国标)和其他一些为ä¸åŒåº”用目的和格å¼è¦æ±‚而实现的样å¼
+本样å¼åŒ…æ供了两ç§åŸºæœ¬æ ·å¼ï¼šgb7714-2015æ ·å¼å®žçŽ°é¡ºåºç¼–ç åˆ¶å›½æ ‡(例\ref{eg:gb7714numeric}),gb7714-2015ayæ ·å¼å®žçŽ°è‘—者年份制国标(例\ref{eg:gb7714authoryear}),和其他一些样å¼ä»¥å®žçŽ°ä¸åŒçš„应用目的和格å¼è¦æ±‚
(例\ref{eg:gb7714ms},\ref{eg:gb7714mx},\ref{eg:gb87and2005}等),
以åŠä¸€ä¸ªå°†é¡ºåºç¼–ç åˆ¶å›½æ ‡æ–‡æœ¬è½¬æ¢ä¸ºbib文件的工具(例\ref{eg:transtobib})。
@@ -410,32 +411,33 @@ v1.0z版本增加的gb7714-1987å’Œgb7714-2005两个版本的顺åºç¼–ç å’Œè‘—è€
å¦å¤–,根æ®å›½å†…大学的学ä½è®ºæ–‡çš„文献生æˆéœ€æ±‚,增加了几个与国标有明显区别的样å¼ï¼ŒåŒ…括:西北农林(gb7714-NWAFU)ã€åŽä¸­å¸ˆèŒƒ(gb7714-CCNU)ã€ä¸œå—大学(gb7714-SEU)等。其他大学的文献样å¼ä¸Žå›½æ ‡åŸºæœ¬ä¸€è‡´ï¼Œæ¯”如上海交大ã€æµ™å¤§ã€å¤æ—¦ç­‰ï¼Œç›´æŽ¥ä½¿ç”¨å³å¯ã€‚å¦å¤–一些大学与国标略有差别,å¯ä»¥é€šè¿‡ç®€å•çš„设置满足è¦æ±‚,比如清åŽã€ç§‘学院大学ã€ä¸­ç§‘大ã€å›½é˜²ç§‘大等,通常在学ä½è®ºæ–‡æ¨¡æ¿ä¸­å®žçŽ°ã€‚而在egthesis文件夹内则对一些大学的学ä½è®ºæ–‡å‚考文献åšäº†æµ‹è¯•ã€‚
+\pdfbookmark[4]{gb7714-NWAFU/CCNU/SEU}{gb7714-NWAFU/CCNU/SEU}
+\begin{example}{国内一些大学è¦æ±‚的特殊文献样å¼}{eg:gbchnuniversity}
+\begin{texlist}
+%使用西北农林的文献样å¼
+\usepackage[backend=biber,style=gb7714-NWAFU]{biblatex}
+%使用åŽä¸­å¸ˆèŒƒçš„文献样å¼
+\usepackage[backend=biber,style=gb7714-CCNU]{biblatex}
+%使用东å—大学的文献样å¼
+\usepackage[backend=biber,style=gb7714-SEU]{biblatex}
+\end{texlist}
+\end{example}
+
此外,根æ®æœŸåˆŠæ–‡çŒ®ç”Ÿæˆéœ€æ±‚,为文科类期刊增加了如下样å¼ï¼š
v1.0r版本增加了chinese-erjæ ·å¼ç”¨äºŽç”Ÿæˆç»æµŽç ”究期刊的文献;
v1.1l版本增加了chinese-cssæ ·å¼ç”¨äºŽç”Ÿæˆç¤¾ä¼šç§‘学期刊的脚注注释文献;
v1.1m版本增加了chinese-jmwæ ·å¼ç”¨äºŽç”Ÿæˆç®¡ç†ä¸–界期刊的文献。
-而ç†å·¥ç±»æœŸåˆŠæ–‡çŒ®é€šå¸¸ä¸Žå›½æ ‡å·®åˆ«ä¸å¤§ï¼Œéƒ¨åˆ†æœŸåˆŠä¸Žå›½æ ‡çš„最大的差异主è¦æ˜¯åŒè¯­å¯¹ç…§æ–‡çŒ®çš„æ ¼å¼ï¼Œæ¯”如计算机学报等,这å¯ä»¥é€šè¿‡ç®€å•çš„设置实现格å¼è°ƒæ•´(å¯ä»¥å‚考github上的问题)。
+而ç†å·¥ç±»æœŸåˆŠæ–‡çŒ®é€šå¸¸ä¸Žå›½æ ‡å·®åˆ«ä¸å¤§ï¼Œéƒ¨åˆ†æœŸåˆŠä¸Žå›½æ ‡çš„最大的差异主è¦æ˜¯åŒè¯­å¯¹ç…§æ–‡çŒ®çš„æ ¼å¼ï¼Œæ¯”如计算机学报等,这å¯ä»¥é€šè¿‡ç®€å•çš„设置实现格å¼è°ƒæ•´(å¯ä»¥å‚考github上的
+\href{https://github.com/hushidong/biblatex-gb7714-2015/issues/154}{issue154})。
+
-\pdfbookmark[4]{chinese-erj}{chinese-erj}
-\begin{example}{ç»æµŽç ”究期刊文献样å¼(chinese-erj)}{eg:gbchineseerj}
+\pdfbookmark[4]{chinese-erj/css/jmw}{chinese-erj/css/jmw}
+\begin{example}{ç»æµŽç ”究等文科类期刊文献样å¼}{eg:gbchinesesocial}
\begin{texlist}
%使用ç»æµŽç ”究期刊文献样å¼
\usepackage[backend=biber,style=chinese-erj]{biblatex}
-\end{texlist}
-\end{example}
-
-\pdfbookmark[4]{chinese-css}{chinese-css}
-\begin{example}{社会科学期刊文献样å¼(chinese-css)}{eg:gbchinesecss}
-\begin{texlist}
%使用社会科学期刊文献样å¼
\usepackage[backend=biber,style=chinese-css,gbfootbib=true,gbfnperpage=true]{biblatex}
-\end{texlist}
-\end{example}
-
-
-\pdfbookmark[4]{chinese-jmw}{chinese-jmw}
-\begin{example}{管ç†ä¸–界期刊文献样å¼(chinese-jmw)}{eg:gbchinesejmw}
-\begin{texlist}
%使用社会科学期刊文献样å¼
\usepackage[backend=biber,style=chinese-jmw]{biblatex}
\end{texlist}
@@ -443,11 +445,14 @@ v1.1m版本增加了chinese-jmwæ ·å¼ç”¨äºŽç”Ÿæˆç®¡ç†ä¸–界期刊的文献。
+
+
\subsubsection{新增选项}\label{sec:added:opt}
æ ·å¼åŒ…新增了一些选项。
%由于选项更为常用,所以在本节集中介ç»ã€‚
%而新增命令往往涉åŠæ›´ç»†èŠ‚的修改,所以在åŽé¢å„类格å¼è°ƒæ•´çš„内容中介ç»ã€‚
-新增选项用于处ç†æ ‡ç­¾å¯¹é½ã€ç¼ºçœå‡ºç‰ˆé¡¹ã€ç¼ºçœè´£ä»»è€…(作者)处ç†ç­‰ï¼Œå…¶ä½¿ç”¨æ–¹å¼ä¸Žbiblatexå®åŒ…选项完全相åŒï¼Œä¸»è¦åŒ…括:
+新增选项用于处ç†æ ‡ç­¾å¯¹é½ã€ç¼ºçœå‡ºç‰ˆé¡¹ã€ç¼ºçœè´£ä»»è€…(作者)处ç†ç­‰ï¼Œå…¶ä½¿ç”¨æ–¹å¼ä¸Žbiblatexå®åŒ…选项完全相åŒã€‚关于文献表排åºï¼Œé™¤äº†ä¸‹é¢gblanorderå’Œsorting选项外,也还需了解一些其它知识,详è§ç¬¬\ref{sec:sort:adj}节。
+
\begin{description}
\pdfbookmark[4]{gbalign}{gbalign}
@@ -548,7 +553,11 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\item gbbiblabel=box,åºå·æ•°å­—由方框包围,比如\framebox{1}ï¼›
\item gbbiblabel=circle,åºå·æ•°å­—由圆圈包围,比如\textcircled{1}。
\end{itemize}
- 效果示例如图\ref{fig:eg:optgbbiblabel}所示。
+ 效果示例如图\ref{fig:eg:optgbbiblabel}所示。若上述效果并ä¸æ»¡è¶³éœ€æ±‚,还å¯ä»¥è‡ªå®šä¹‰ï¼Œæ¯”如:
+ \begin{texlist}
+ \usepackage{circledtext}
+ \renewcommand{\mkgbnumlabel}[1]{\circledtext*[height=2.0ex]{#1}}
+ \end{texlist}
\begin{figure}[!htb]
\centering
@@ -838,7 +847,10 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\item mergedate=none,著者年份制文献表仅在出版项中输出日期。该选项用于满足中科院大学的著者年份制格å¼è¦æ±‚。
\item no mergedate,å³ä¸ç»™å‡ºè¯¥é€‰é¡¹ï¼Œè¿™æ˜¯gb7714-2015ay默认的情况,仅在作者åŽè¾“出日期且已ç»æ ¹æ®å›½æ ‡æ ¼å¼åŒ–。
\end{itemize}
- 效果示例如图\ref{fig:eg:optmergedate}所示。
+ 效果示例如图\ref{fig:eg:optmergedate}所示。注æ„:对于在线资æºå½“没有date等信æ¯è€Œåªæœ‰urldateä¿¡æ¯æ—¶ï¼Œè‘—者年份制è¦æ±‚使用urldate的年份作为标签,且è¦æ±‚加上方括å·ï¼Œé»˜è®¤å°±æŒ‰è¿™ä¸€è¦æ±‚处ç†ã€‚但若希望去掉方括å·ï¼Œåˆ™å¯ä»¥é€šè¿‡åœ¨å¯¼è¨€åŒºå¢žåŠ å¦‚下定义:
+ \lstinline[breaklines=true]!\DeclareFieldFormat{labelurlyear}{#1}!。
+ å过æ¥ï¼Œå…¶å®ƒä¸ä½¿ç”¨urldate的标签默认ä¸å¸¦æ–¹æ‹¬å·ï¼Œè‹¥å¸Œæœ›åŠ ä¸Šæ–¹æ‹¬å·æˆ–者其它符å·ï¼Œåˆ™å¯ä»¥é€šè¿‡å¢žåŠ å¦‚下定义实现:
+ \lstinline[breaklines=true]!\DeclareFieldFormat{labelyear}{ã€#1】}!。
\begin{figure}[!htb]
\centering
@@ -1195,6 +1207,11 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
结åˆlangid/langidopts域,结åˆbabel/polyglossiaå®åŒ…,å¯ä»¥å¯¹è¥¿æ–‡åšåŸºäºŽæ¡ç›®çš„本地化处ç†ã€‚详细说明è§biblatex 手册。
+ \item[sorting]=none ç­‰. \hfill default: none/gb7714-2015
+
+ sortingå¯ä»¥ä½¿ç”¨biblatexæ供的选项,也å¯ä»¥ä½¿ç”¨æœ¬æ ·å¼åŒ…æ供的选项,详è§
+ 第\ref{sec:sort:adj}节。
+
\item[sortcites]=true, false. \hfill default: false
详细说明è§biblatex手册。
@@ -1237,7 +1254,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\subsection{文献引用åŠæ ‡æ³¨æ ¼å¼}\label{sec:cbx:usage}
-è¦ç”Ÿæˆå‚考文献,第一步就是在正文中引用å‚考文献。正文中因引用文献所形æˆçš„标注的格å¼ç§°ä¸ºå‚考文献标注样å¼ï¼Œä¹Ÿç§°å¼•ç”¨æ ·å¼æˆ–引用标签样å¼ï¼Œåˆ†ä¸ºä¸¤ç±»: 顺åºç¼–ç åˆ¶å’Œè‘—者-出版年(作者年)制。引用文献的基本命令是\verb|\cite|,但为了在一篇文档中实现ä¸åŒçš„标签效果,通常还需è¦ä½¿ç”¨\verb|\parencite|等其它命令,以åŠè¿™äº›å‘½ä»¤çš„å¤æ•°å½¢å¼ä»¥å®žçŽ°åŒä¸€å¤„引用多篇文献的附加信æ¯è¾“入。
+è¦ç”Ÿæˆå‚考文献,第一步就是在正文中引用å‚考文献。正文中因引用文献所形æˆçš„标注的格å¼ç§°ä¸ºå‚考文献标注样å¼ï¼Œä¹Ÿç§°å¼•ç”¨æ ·å¼æˆ–引用标签样å¼ï¼Œåˆ†ä¸ºä¸¤ç±»: 顺åºç¼–ç åˆ¶å’Œè‘—者-出版年(作者年)制。引用文献的基本命令是\verb|\cite|,但为了在一篇文档中实现ä¸åŒçš„标签效果,通常还需è¦ä½¿ç”¨\verb|\parencite|等其它命令,以åŠè¿™äº›å‘½ä»¤çš„å¤æ•°å½¢å¼ä»¥å®žçŽ°åŒä¸€å¤„引用多篇文献时的附加信æ¯è¾“出。
%比如\verb|\parencite|, \verb|\textcite|, \verb|\pagescite|,\verb|\footfullcite|等。此外为éµå¾ªbiblatex对于å¤æ•°å½¢å¼æ ‡æ³¨å‘½ä»¤çš„使用习惯,也æ供上述命令的å¤æ•°å½¢å¼ï¼Œæ¯”如\verb|\cite|命令的å¤æ•°å½¢å¼å‘½ä»¤\verb|\cites|,便于输出å•ä¸ªæ–‡çŒ®çš„页ç ç­‰å‰åŽæ³¨ä¿¡æ¯ã€‚
%熟悉natbib的用户也å¯ä»¥ç›´æŽ¥ä½¿ç”¨ä½¿ç”¨\verb|\citet|, \verb|\citep|命令。
@@ -1248,17 +1265,17 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
%顺åºç¼–ç åˆ¶çš„标注样å¼æ–‡ä»¶å¤§ä½“使用标准引用样å¼numeric-comp的内容
\paragraph{\heiti 顺åºç¼–ç åˆ¶çš„标注样å¼}
-为满足GB/T 7714-2015第10.1节的è¦æ±‚,考虑\verb|\cite| 命令为上标模å¼ï¼Œ\verb|\parencite|ä¿ç•™éžä¸Šæ ‡æ¨¡å¼ã€‚增加 \verb|\pagescite| 命令,用于输出上标顺åºç¼–å·å¹¶è‡ªåŠ¨åŠ é¡µç ã€‚
-为使用户å…于输入文献作者,完善了\verb|\textcite|命令,æ供作者为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带行内éžä¸Šæ ‡çš„顺åºç¼–ç ï¼Œ
-并增加了\verb|\authornumcite|命令,以输出作者作为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带上标的顺åºç¼–ç ã€‚
-增加了\verb|\citec|命令,输出å¦ä¸€ç§å½¢å¼çš„ç¼–ç åŽ‹ç¼©æ ‡ç­¾ï¼Œæ¯”如\textsuperscript{[2]-[4]}区别于一般的\textsuperscript{[2-4]}。
-其它命令\verb|\citet|ã€\verb|\citep|ã€\verb|\citetns|ã€\verb|\citepns|ã€
-\verb|\upcite|ã€\verb|\inlinecite|分别等价于
+为满足GB/T 7714-2015第10.1节的è¦æ±‚,考虑 \verb|\cite| 命令为上标模å¼ï¼Œ\verb|\parencite| ä¿ç•™éžä¸Šæ ‡æ¨¡å¼ã€‚增加 \verb|\pagescite| 命令,用于输出上标顺åºç¼–å·å¹¶è‡ªåŠ¨åŠ é¡µç ã€‚
+为使用户å…于输入文献作者,完善了 \verb|\textcite| 命令,æ供作者为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带行内éžä¸Šæ ‡çš„顺åºç¼–ç ï¼Œ
+并增加了 \verb|\authornumcite| 命令,以输出作者作为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带上标的顺åºç¼–ç ã€‚
+增加了 \verb|\citec| 命令,输出å¦ä¸€ç§å½¢å¼çš„ç¼–ç åŽ‹ç¼©æ ‡ç­¾ï¼Œæ¯”如\textsuperscript{[2]-[4]}区别于一般的\textsuperscript{[2-4]}。
+其它命令 \verb|\citet|ã€\verb|\citep|ã€\verb|\citetns|ã€\verb|\citepns|ã€
+\verb|\upcite|ã€\verb|\inlinecite| 分别等价于
\verb|\authornumcite|ã€\verb|\cite|ã€\verb|\textcite|ã€\verb|\parencite|ã€
\verb|\cite|ã€\verb|\parencite|。
-上述命令å‡å¯æŒ‡å®šé¡µç ç­‰ä¿¡æ¯ç”¨äºŽè¾“出,å³åœ¨{entrykey}å‰é¢çš„[]内或第二个[]内(当有两个[]æ—¶)给出需è¦é™„加输出的信æ¯ï¼Œæ¯”如:\verb|\cite[p. 9]{entrykey}| 或 \verb|\cite[第ä¹é¡µ]{中文entrykey}|。若ä¸æŒ‡å®šé¡µç ï¼Œåˆ™ä»…有\verb|\pagescite|命令默认æå–å‚考文献的页ç ä¿¡æ¯è¿›è¡Œè¾“出。
-å„引用命令的使用方å¼å¦‚表\ref{tab:cite:num}所示。
+上述命令å‡å¯æŒ‡å®šé¡µç ç­‰ä¿¡æ¯ç”¨äºŽè¾“出,å³åœ¨\{entrykey\}å‰é¢çš„[]内或第二个[]内(当有两个[]æ—¶)给出需è¦é™„加输出的信æ¯ï¼Œæ¯”如:\verb|\cite[p. 9]{entrykey}| 或 \verb|\cite[第ä¹é¡µ]{中文entrykey}|。若ä¸æŒ‡å®šé¡µç ï¼Œåˆ™ä»…有\verb|\pagescite|命令默认æå–å‚考文献的页ç ä¿¡æ¯è¿›è¡Œè¾“出。
+å„引用命令的使用方å¼åŠå…¶æ•ˆæžœå¦‚表\ref{tab:cite:num}所示。
测试文档è§\href{run:example/testallformat.tex}{testallformat.tex}。
@@ -1313,8 +1330,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\verb|\cites[p.2]{entrykey1}[p.5]{entrykey2}|,
而ä¸æ˜¯\verb|\cite[p.5]{entrykey1,entrykey2}|。
-注æ„:在åŒä¸€å¤„引用多篇åºå·è¿žç»­çš„文献时,标注标签默认是从两篇文献开始压缩的,比如åŒæ—¶è¿žç»­å¼•ç”¨ä¸¤ç¯‡å’Œä¸‰ç¯‡æ–‡çŒ®æ—¶æ ‡æ³¨åˆ†åˆ«ä¸º[1-2]å’Œ[1-3]。若需è¦ä¿®æ”¹ä»Žä¸‰ç¯‡æ–‡çŒ®å¼€å§‹åŽ‹ç¼©ï¼Œæ¯”如:两篇和三篇文献分别标注为[1,2]å’Œ[1-3]。则åªéœ€è¦åœ¨å¯¼è¨€åŒºè®¾ç½®è®¡æ•°å™¨gbrefcompress的值为3,å³ï¼š
-\verb|\setcounter{gbrefcompress}{3}|
+注æ„:在åŒä¸€å¤„引用多篇åºå·è¿žç»­çš„文献时,标注标签默认是从两篇文献开始压缩的,比如åŒæ—¶è¿žç»­å¼•ç”¨ä¸¤ç¯‡å’Œä¸‰ç¯‡æ–‡çŒ®æ—¶æ ‡æ³¨åˆ†åˆ«ä¸º[1-2]å’Œ[1-3]。若需è¦ä¿®æ”¹ä»Žä¸‰ç¯‡æ–‡çŒ®å¼€å§‹åŽ‹ç¼©ï¼Œæ¯”如:两篇和三篇文献分别标注为[1,2]å’Œ[1-3],则åªéœ€è¦åœ¨å¯¼è¨€åŒºè®¾ç½®è®¡æ•°å™¨gbrefcompress的值为3,å³ï¼š
+\verb|\setcounter{gbrefcompress}{3}|。
%当然除了这ç§å¤šæ¬¡ä½¿ç”¨æ ‡æ³¨å‘½ä»¤å¤–,也å¯ä»¥ä½¿ç”¨å¯¹åº”标注命令的å¤æ•°å½¢å¼æ¥ä¸ºæ¯ç¯‡æ–‡çŒ®æ供相应的页ç ä¿¡æ¯ã€‚
@@ -1322,11 +1339,11 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
%著者-出版年制的标注样å¼æ–‡ä»¶å¤§ä½“使用标准引用样å¼authoryear的内容。
\paragraph{\heiti 著者-出版年制的标注样å¼}
为满足GB/T 7714-2015第10.2节的è¦æ±‚,
-考虑\verb|\cite|å’Œ\verb|\parencite|命令将引用标签用圆括å·æ‹¬èµ·æ¥ã€‚增加了\verb|\pagescite|命令,用于自动加页ç ã€‚增加了\verb|\yearpagescite|, \verb|\yearcite|命令用于处ç†æ–‡ä¸­å·²æœ‰ä½œè€…ä¿¡æ¯åªéœ€è¦å¹´ä»½å’Œé¡µç çš„情况(为兼容性考虑,顺åºç¼–ç åˆ¶ä¹Ÿç»™å‡ºè¯¥å‘½ä»¤ï¼Œä½†ä½œç”¨ä¸Ž
-\verb|\pagescite| 命令相åŒ),也完善了 \verb|\textcite| 命令,æ供作者为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带行内éžä¸Šæ ‡çš„页ç ï¼Œå¢žåŠ äº†\verb|\authornumcite|命令,以输出作者作为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带上标的页ç ã€‚
-
-其它命令\verb|\citet|ã€\verb|\citep|ã€\verb|\citetns|ã€\verb|\citepns|ã€
-\verb|\upcite|ã€\verb|\inlinecite|分别等价于
+考虑 \verb|\cite| å’Œ \verb|\parencite| 命令将引用标签用圆括å·æ‹¬èµ·æ¥ã€‚增加了
+\verb|\pagescite|命令,用于自动加页ç ã€‚增加了 \verb|\yearpagescite|, \verb|\yearcite| 命令用于处ç†æ–‡ä¸­å·²æœ‰ä½œè€…ä¿¡æ¯åªéœ€è¦å¹´ä»½å’Œé¡µç çš„情况(为兼容性考虑,顺åºç¼–ç åˆ¶ä¹Ÿç»™å‡ºè¯¥å‘½ä»¤ï¼Œä½†ä½œç”¨ä¸Ž
+\verb|\pagescite| 命令相åŒ),也完善了 \verb|\textcite| 命令,æ供作者为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带行内éžä¸Šæ ‡çš„页ç ï¼Œå¢žåŠ äº† \verb|\authornumcite| 命令,以输出作者作为å¥å­ä¸»è¯­ï¼Œå¹¶é™„带上标的页ç ã€‚
+其它命令 \verb|\citet|ã€\verb|\citep|ã€\verb|\citetns|ã€\verb|\citepns|ã€
+\verb|\upcite|ã€\verb|\inlinecite| 分别等价于
\verb|\authornumcite|ã€\verb|\cite|ã€\verb|\textcite|ã€\verb|\parencite|ã€
\verb|\cite|ã€\verb|\parencite|。
@@ -1385,11 +1402,45 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
除了利用命令æ¥è°ƒæ•´æ ‡æ³¨æ ¼å¼å¤–,还有更多方法å¯è¿›è¡Œå±€éƒ¨æ ¼å¼è°ƒæ•´ã€‚这利用了tex的编组特性,编组内的局部格å¼ä¸å½±å“编组外的格å¼ï¼Œæ‰€ä»¥å¯åˆ©ç”¨ç¼–组内的局部设置æ¥è°ƒæ•´æ ‡æ³¨çš„æ ¼å¼ã€‚类似的,文献表的著录格å¼ä¹Ÿå¯å±€éƒ¨è°ƒæ•´ï¼Œè¯¦è§ä¸‹ä¸€èŠ‚。
-引用文献所产生标注标签的格å¼åŒ…括很多内容,包括作者数é‡ã€æ ‡ç‚¹ã€æœ¬åœ°åŒ–字符串等。最常è§çš„局部调整需求是本地化字符串和标点。这里以åŒè¯­å›¾é¢˜ä¸­çš„引用标注标签的ä¸åŒæœ¬åœ°åŒ–字符串需求为例æ¥å±•ç¤ºå±€éƒ¨è°ƒæ•´çš„方法。
+引用文献所产生标注标签的格å¼åŒ…括很多内容,包括作者数é‡ã€æ ‡ç‚¹ã€æœ¬åœ°åŒ–字符串等。最常è§çš„局部调整需求是本地化字符串和标点(下é¢ä¼šä»¥åŒè¯­å›¾é¢˜ä¸­çš„引用标注标签的ä¸åŒæœ¬åœ°åŒ–字符串需求为例æ¥å±•ç¤ºå±€éƒ¨è°ƒæ•´çš„方法)。
+
+\paragraph{标注中输出的作者数é‡} å¯ä»¥é€šè¿‡å®åŒ…选项 maxcitenames å’Œ mincitenames 进行控制(文献表中的作者数é‡çš„控制选项则是maxbibnames å’Œ minbibnames)。 在著者年份制的样å¼ä¸­ï¼Œæœ‰äº›å‡ºç‰ˆç‰©ä¼šè¦æ±‚当文献作者是两ä½æ—¶å…¨éƒ¨è¾“出,而ä¸æ˜¯å›½æ ‡é»˜è®¤çš„åªè¾“出第一个作者。此时设置:maxcitenames=2,mincitenames=1 表示当作者数超过2则åªè¾“出1ä½ä½œè€…,å¦åˆ™å…¨éƒ¨è¾“出。
+注æ„:这一设置其实是全局的设置,若è¦å±€éƒ¨è°ƒæ•´ä½œè€…æ•°é‡ï¼Œæ¯”如æŸç¯‡æ–‡çŒ®å•ç‹¬è°ƒæ•´æ•°é‡æˆ–æŸä¸ªç« èŠ‚调整数é‡ï¼Œåˆ™æœ‰ä¸¤ç§æ–¹æ³•å¯ä»¥å®žçŽ°ï¼šä¸€æ˜¯ç»™æŒ‡å®šæ–‡çŒ®é™„加选项; 二是在局部编组内调整内部计数器值。例\ref{eg:resume:localset}给出了文献表的作者数é‡å±€éƒ¨è°ƒæ•´çš„一个示例,标注中的调整原ç†ç›¸åŒï¼Œé‡‡ç”¨ç›¸åŒæ–¹æ³•å³å¯ã€‚
+
\paragraph{标注中“等â€â€œå’Œâ€ç­‰æœ¬åœ°åŒ–字符串调整}
-在中科院æŸç±»å­¦ä½è®ºæ–‡ä¸­ï¼Œæ­£æ–‡çš„标注标签è¦æ±‚两个英文作者之间用“和â€è€Œä¸æ˜¯â€œandâ€è¿žæŽ¥ï¼Œå¤šä¸ªè‹±æ–‡ä½œè€…则截断æˆä¸€ä¸ªä½œè€…æ—¶åŽé¢ç”¨â€œç­‰.â€è€Œä¸æ˜¯â€œet al.â€è¡¨ç¤ºã€‚è¿™å¯ä»¥å®¹æ˜“通过设置本地化字符串æ¥å®žçŽ°ã€‚然而对于åŒè¯­çš„图题,英文图题中ä¸é€‚åˆå‡ºçŽ°â€œç­‰â€ä¸Žâ€œå’Œâ€è¿™æ ·çš„字符,所以åˆè¦æ±‚在这ç§å…¨è‹±æ–‡çš„环境中将“和â€ä¸Žâ€œç­‰.â€æ›´æ¢ä¸ºè‹±æ–‡ç¬¦å·ï¼Œè¿™å°±éœ€è¦å¯¹æœ¬åœ°åŒ–字符串åšå±€éƒ¨è°ƒæ•´ã€‚而这ç§å±€éƒ¨è°ƒæ•´å…¶å®žå·²ç»æ˜¯æ¯”较底层的处ç†ï¼Œbiblatexæ供的接å£DefineBibliographyStrings仅用于全局设置,因此局部调整则需采用其它方å¼ã€‚
+å‰è¿°æ ¹æ®gbcitelocal选项å¯ä»¥é€‰æ‹©æœ¬åœ°åŒ–字符串使用默认的中文ã€è‹±æ–‡æˆ–区分中英文选择中英文字符串的方å¼ã€‚但这å¯èƒ½è¿˜ä¸è¶³ä»¥æ»¡è¶³æ›´å¤šçš„定制化需求,比如:
+在中科院æŸç±»å­¦ä½è®ºæ–‡ä¸­ï¼Œæ­£æ–‡çš„标注标签è¦æ±‚两个英文作者之间用“和â€è€Œä¸æ˜¯â€œandâ€è¿žæŽ¥ï¼Œå¤šä¸ªè‹±æ–‡ä½œè€…截断æˆä¸€ä¸ªä½œè€…æ—¶åŽé¢ç”¨â€œç­‰.â€è€Œä¸æ˜¯â€œet al.â€è¡¨ç¤ºã€‚è¿™å¯ä»¥é€šè¿‡è®¾ç½®æœ¬åœ°åŒ–字符串æ¥å®žçŽ°ï¼Œå¦‚例\ref{eg:localstr:diff}和图\ref{fig:content:fmtc}所示。
+
+\begin{example}{著者-出版年制标注和文献表ä¸åŒæœ¬åœ°å­—符串效果}{eg:localstr:diff}
+\begin{texlist}
+\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1,
+sortcites=false,sorting=gbynta]{biblatex}
+\renewcommand{\bibauthorfont}{\color{violet}}%
+%通过本地化字符串设置等ã€å’Œ
+\DefineBibliographyStrings{english}{
+ andincite = {和},
+ andincitecn = {和},
+ andothersincite = {ç­‰{\adddot}},%adddotæ‰èƒ½é¿å¼€æ ‡ç‚¹è¿½è¸ª
+ andothersincitecn = {ç­‰}, }
+%通过标点设置等å‰çš„标点,比如:
+\DeclareDelimFormat[textcite,citet]{andothersdelim}{}%\space
+\end{texlist}
+\end{example}
+
+\begin{figure}[!htb]
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\centering
+\deflength{\textparwd}{\linewidth-1cm}
+\includegraphics[width=\textparwd]{egcontentfmtc.pdf}
+\end{tcolorbox}
+\caption{引用标注和文献表æ¡ç›®ä¸åŒæœ¬åœ°åŒ–字符串示例}\label{fig:content:fmtc}
+\end{figure}
+
+然而对于åŒè¯­çš„图题,英文图题中ä¸é€‚åˆå‡ºçŽ°â€œç­‰â€ä¸Žâ€œå’Œâ€è¿™æ ·çš„字符,所以åˆè¦æ±‚在这ç§å…¨è‹±æ–‡çš„环境中将“和â€ä¸Žâ€œç­‰.â€æ›´æ¢ä¸ºè‹±æ–‡ç¬¦å·ï¼Œè¿™å°±éœ€è¦å¯¹æœ¬åœ°åŒ–字符串åšå±€éƒ¨è°ƒæ•´ã€‚而这ç§å±€éƒ¨è°ƒæ•´å…¶å®žå·²ç»æ˜¯æ¯”较底层的处ç†ï¼Œbiblatexæ供的接å£DefineBibliographyStrings仅用于全局设置,因此局部调整则需采用其它方å¼ã€‚
%如何进行局部调整并没有éžå¸¸æ–¹ä¾¿çš„接å£ï¼Œè¦è§£å†³è¿™ä¸€éœ€æ±‚,需è¦å¯¹biblatex以åŠgb7714-2015æ ·å¼æœ‰æ¯”较深入的了解。
gb7714-2015通过gbcitelocalcase计数器æ¥é€‰æ‹©ä½¿ç”¨ä¸­æ–‡æˆ–英文的本地化字符串,因此通过局部设置gbcitelocalcaseå¯ä»¥å±€éƒ¨çš„选择ä¸åŒè¯­è¨€çš„本地化字符串,比如在一个编组内,局部化设置计数器为:\verb|\defcounter{gbcitelocalcase}{1}|,那么这个编组内的所有本地化字符串会使用默认的中文字符串,å之若设置为2,则本地化字符串会使用默认的英文字符串。
@@ -1719,8 +1770,8 @@ bibitemindent表示
\paragraph{\heiti 文献表中的标点或间隔符控制} 文献表中有时需è¦è°ƒæ•´æ ‡ç‚¹ä¸ºä¸­æ–‡çš„全角标点等其它形å¼ï¼Œåˆ™éœ€è¦é€šè¿‡ä¸åŒæœºåˆ¶ä¸‹çš„标点(或间隔符)设置æ¥è°ƒæ•´ã€‚
-有时通过间隔符设置直接调整,比如标题与类型标识符之间间隔符。
-有时则通过设置本地化字符串进行,比如and,in等本地化字符串。
+有时通过间隔符设置直接调整,比如标题与类型标识符之间间隔符 titletypedelim;
+有时则通过设置本地化字符串进行,比如and,in等本地化字符串;
有时则需è¦åœ¨åŸŸæ ¼å¼è®¾ç½®ä¸­è¿›è¡Œè°ƒæ•´ï¼Œæ¯”如title,doi等域的DeclareFieldFormatæ ¼å¼å®šä¹‰ã€‚
此外,因为ä¸åŒè¯­è¨€çš„存在,å¯èƒ½éœ€è¦åŒºåˆ†è¯­è¨€è¿›è¡Œè°ƒæ•´ï¼Œæ¯”如bibrangedash等符å·ã€‚
具体情况是比较å¤æ‚的,这里ä¸å†ä¸€ä¸€åˆ—举,
@@ -1737,6 +1788,12 @@ bibitemindent表示
% 标题与文献类型表示符之间的间隔符 title<titletypedelim>[J]
\DeclareDelimFormat[bib,biblist]{titletypedelim}{\space}
+%将页ç é—´éš”符替æ¢ä¼šè‹±æ–‡çš„短横线
+\newcommand{\fttilde}{\fontspec{FreeSerif}\selectfont}
+\DefineBibliographyExtras{english}{\renewcommand*{\bibrangedash}{{\fttilde\textsim}}}
+%比如:~$\sim$\symbol{"FF5E}\symbol{"223C}\symbol{"2053}\symbol{"02DC}\symbol{"02F7}
+%\textsim \textbacksim \texttildebelow \texttildelow \texttilde
+
%文献表å„æ¡æ–‡çŒ®ä¸­å„å•å…ƒé—´éš”标点设置(与异步标点机制相关的)
\renewcommand*{\newunitpunct}{,}%\addcomma\space %,
\renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{。}{\adddot}}
@@ -1788,18 +1845,8 @@ gbpub=false, gbtitlelink=true, gbstyle=false, sorting=nyt 时的文献表,å¯ä
图\ref{fig:content:fmtc}为选项和本地化字符串如例\ref{eg:localstr:diff}设置时的引用标注和文献表,注æ„其中引用标注和文献表中的ä¸åŒæœ¬åœ°åŒ–字符串输出效果,引用标注中英文作者和中文作者缩略è¯çš„ä¸åŒã€‚这是中科院大学资环类学ä½è®ºæ–‡çš„è¦æ±‚æ ¼å¼ï¼Œå¯ä»¥çœ‹åˆ°å°½ç®¡æœ‰äº›ç‰¹æ®Šï¼Œä½†é€šè¿‡é€‰é¡¹è®¾ç½®å’Œæœ¬åœ°åŒ–字符串设置也能实现。
-\begin{example}{著者-出版年制标注和文献表ä¸åŒæœ¬åœ°å­—符串效果}{eg:localstr:diff}
-\begin{texlist}
-\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1,
-sortcites=false,sorting=gbynta]{biblatex}
- \renewcommand{\bibauthorfont}{\color{violet}}%
-\DefineBibliographyStrings{english}{
- andincite = {和},
- andincitecn = {和},
- andothersincite = {ç­‰{\adddot}},%adddotæ‰èƒ½é¿å¼€æ ‡ç‚¹è¿½è¸ª
- andothersincitecn = {ç­‰}, }
-\end{texlist}
-\end{example}
+
+
\begin{figure}[!htb]
@@ -1824,16 +1871,6 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\caption{文献表æ¡ç›®è‘—录格å¼ç¤ºä¾‹äºŒ}\label{fig:content:fmtb}
\end{figure}
-\begin{figure}[!htb]
-\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
-width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
-leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
-\centering
-\deflength{\textparwd}{\linewidth-1cm}
-\includegraphics[width=\textparwd]{egcontentfmtc.pdf}
-\end{tcolorbox}
-\caption{文献表æ¡ç›®è‘—录格å¼ç¤ºä¾‹ä¸‰}\label{fig:content:fmtc}
-\end{figure}
\subsubsection{å‚考文献表的局部调整}\label{sec:entry:fmtlocal}
@@ -2411,7 +2448,7 @@ sorting=gb7714-2015,gblanorder=chineseahead,sortlocale=zh__pinyin
这些设置是样å¼çš„默认设置,用户如果没有其他需求则无需调整,若需调整详è§ä¸‹ä¸€èŠ‚。
-\subsubsection{排åºçš„逻辑和调整方法}
+\subsubsection{排åºçš„逻辑和调整方法}\label{sec:sort:adj}
文献表中文献的排åºé€šå¸¸æ˜¯ç”±å¤„ç†bib文件的åŽç«¯ç¨‹åºå®žæ–½çš„,比如bibtex或biber程åºã€‚通常biblatex选择biber作为åŽç«¯ç¨‹åºæ¥å®žçŽ°æ›´çµæ´»çš„排åºæœºåˆ¶ã€‚biber在处ç†è¿‡ç¨‹ä¸­è¯»å–bib文件信æ¯å¹¶æ ¹æ®biblatexå®åŒ…和文献样å¼åœ¨bcf文件中输出设置信æ¯æ‰§è¡ŒæŽ’åºã€‚而bibtex程åºåˆ™åœ¨è¯»å–bib文件åŽæ ¹æ®bstæ ·å¼è¿›è¡ŒæŽ’åºï¼Œå°½ç®¡å¯ä»¥è®©bibtex读入特殊格å¼bib文件æ¥æ供一些设置å‚数,但总的æ¥è¯´åŸºäºŽbibtex的文献排åºæ˜¯ç”±bstæ ·å¼å†³å®šçš„。而biber程åºåˆ™æ˜¯æ供了一套工具,具体的排åºæ–¹å¼æ˜¯ç”±biblatexå®åŒ…和样å¼æ–‡ä»¶ä¸­çš„设置决定的,biberæ ¹æ®è¿™äº›è®¾ç½®æ‰§è¡Œç‰¹å®šçš„逻辑æ¥å®žçŽ°æŽ’åºã€‚
@@ -3142,7 +3179,7 @@ biblatex没有将报纸的æžå‡ºæ–‡çŒ®(newspaper)作为一ç§æ–‡çŒ®æ¡ç›®ç±»åž‹ï
其对应的biblatexæ•°æ®åŸŸä¸º:
\begin{example}{报纸æžå‡ºçš„文献/newspaperæ¡ç›®çš„域格å¼}{eg:newspaperfieldfmt}
\begin{texlist}
-author.title[usera].journaltitle或journal,date(number)[urldate].url.doi
+author.title[usera].journaltitle或journal,date(number/pages)[urldate].url.doi
\end{texlist}
\end{example}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib
index c52b279ccb..e10ed1fe74 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib
@@ -353,6 +353,188 @@ author={乔纳斯}
urldate={2013-11-12},
}
+
+@BOOK{æŽå››1991--,
+ AUTHOR = {æŽå››},
+ PUBLISHER = {ç»æµŽå‡ºç‰ˆç¤¾},
+ DATE = {1991},
+ TITLE = {论ç»æµŽ},
+ key={li3}
+}
+
+@book{胡长清1997,
+ title={中国民法总论},
+ author={胡长清},
+ authortype={è‘—},
+ publisher={中国民法总论},
+ year={1997},
+ pages={20},
+}
+
+@book{å¼ æ–°å®2016,
+ edition = {4},
+ title = {ä¾µæƒè´£ä»»æ³•},
+ publisher = {中国人民大学出版社},
+ author = {å¼ æ–°å®},
+ authortype={主编},
+ date = {2016},
+ pages={100},
+}
+
+@book{Polo1997,
+ location = {Hertfordshire},
+ title = {The travels of Marco Polo},
+ publisher = {Cumberland House},
+ author = {Polo, Marco},
+ translator = {Marsden, William},
+ date = {1997},
+}
+
+
+@article{å­£å«ä¸œ1993,
+ title = {法律程åºçš„æ„义:对中国法制建设的å¦ä¸€ç§æ€è€ƒ},
+ number = {1},
+ journaltitle = {中国社会科学},
+ author = {å­£å«ä¸œ},
+ date = {1993},
+}
+
+@article{Li1999,
+ author = {æŽæ™“东 and 张庆红 and å¶ç‘¾ç³},
+ title = {气候学研究的若干ç†è®ºé—®é¢˜},
+ journal = {北京大学学报: 自然科学版},
+ year = {1999},
+ volume = {35},
+ number = {1},
+ pages = {101--106}
+}
+
+@Article{li2013,
+title = {Satellite-derived land surface temperature: Current status and perspectives},
+volume = {131},
+issn = {0034-4257},
+url = {https://www.sciencedirect.com/science/article/pii/S0034425712004749},
+doi = {10.1016/j.rse.2012.12.008},
+shorttitle = {Satellite-derived land surface temperature},
+pages = {14--37},
+journaltitle = {Remote Sensing of Environment},
+shortjournal = {Remote Sensing of Environment},
+author = {Li, Zhaoliang and Tang, Bohui and Wu, Hua and Ren, Huazhong and Yan, Guangjian and Wan, Zhengming and Trigo, Isabel F. and Sobrino, José A.},
+urldate = {2024-01-15},
+date = {2013-04-15},
+}
+
+@article{Chamberlain1993,
+ title = {On the search for civil society in China},
+ volume = {19},
+ doi = {10.1177/009770049301900206},
+ pages = {199--215},
+ number = {2},
+ journaltitle = {Modern China},
+ shortjournal = {Mod. China},
+ author = {Chamberlain, Heath B.},
+ date = {1993-04},
+}
+
+
+@inproceedings{任东æ¥2009,
+ location = {天津},
+ title = {对国际体制和国际制度的ç†è§£å’Œç¿»è¯‘},
+ booktitle = {å…¨çƒåŒ–与亚太区域化国际研讨会},
+ pages = {9},
+ author = {任东æ¥},
+ date={2009},
+ editor={赵玮},
+ editortype={editor},
+ publisher={西安电å­ç§‘技大学出版社}
+}
+
+
+
+@incollection{Schfield1983,
+ title = {The impact of scarcity and plenty on population change in England},
+ shorttitle = {Hunger and History},
+ pages = {55--88},
+ booktitle = {Hunger and history: The impact of changing food production and consumption pattern on society},
+ location = {Cambridge, Mass.},
+ publisher = {Cambridge University Press},
+ author = {Schfield, R. S.},
+ editor = {Rotberg, R. I. and Rabb, T. K.},
+ editortype={editor},
+ date = {1983},
+}
+
+
+@inproceedings{è¨åˆ©æ–¯2000,
+ author = {è¨åˆ©æ–¯}, %[美]è¨åˆ©æ–¯
+ author+an={1:=paperauthor},
+ author+an:nation={=American},
+ title = {想象的真ç†},
+ editor={å®‰ä¸œå°¼Â·å¼—å¢ and others}, %[英]
+ editor+an:nation={=Britain},
+ editortype={è‘—},
+ booktitle = {西方哲学演讲录},
+ translator={æŽè¶…æ°},
+ publisher={商务å°ä¹¦é¦†},
+ date={2000},
+ pages = {112},
+}
+
+
+@book{富勒2005,
+ title = {法律的é“德性},
+ publisher = {商务å°ä¹¦é¦†},
+ author = {{[美]富勒}},
+ translator = {{郑戈}},
+ date = {2005},
+ pages={55}
+}
+
+@Newspaper{余建斌2013,
+ author = {余建斌},
+ date = {2013-01-12},
+ journal = {人民日报},
+ number = {2},
+ title = {我们的科技一直在追赶: 访中国工程院院长周济},
+ year = {2013},
+}
+
+
+@book{庄å­å¤©ä¸‹,
+title={庄å­Â·å¤©ä¸‹},
+}
+
+
+@book{汉语è¯å…¸,
+ location = {北京},
+ edition = {修订本},
+ title = {现代汉语è¯å…¸},
+ publisher = {商务å°ä¹¦é¦†},
+ date = {1996},
+ pages={24}
+}
+
+
+@online{扬之水2007,
+ title = {两宋茶诗与茶事},
+ author = {扬之水},
+ urldate = {2007-09-13},
+ url = {http://www.literature.org.cn/Article.asp?ID=199},
+ langid = {pinyin},
+}
+
+
+@thesis{æŽæ¾é”‹2015,
+ title = {游走在上å¸ä¸Žå‡¯æ’’之间:美国宪法第一修正案中的政教关系研究},
+ institution = {中国政法大学},
+ type = {åšå£«å­¦ä½è®ºæ–‡},
+ author = {æŽæ¾é”‹},
+ date = {2015},
+}
+
+
+
+
@Book{曹凌2011-19-,
author = {曹凌},
title = {中国佛教疑伪ç»ç»¼å½•},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
index 2ce88b01ad..bc09f63c6e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
@@ -11,7 +11,7 @@
%
% 版本和时间信æ¯
%
-\def\versionofgbtstyle{2023/09/10 v1.1o}
+\def\versionofgbtstyle{2024/02/10 v1.1p}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显å¼æŒ‡å®šç”¨biberåŽç«¯ï¼Œå½“用bibtex时会报错,但其实ä¸ä¼šå½±å“编译,åªæ˜¯é‡‡ç”¨bibtexåŽæ— æ³•è¾¾æˆæ ¼å¼éœ€æ±‚
@@ -796,8 +796,8 @@
\ifstrequal{#1}{uppercase}{\setcounter{gbnamefmtcase}{0}}{}%
\ifstrequal{#1}{lowercase}{\setcounter{gbnamefmtcase}{1}}{}%
\ifstrequal{#1}{givenahead}{\setcounter{gbnamefmtcase}{2}}{}%given-family
- \ifstrequal{#1}{familyahead}{\setcounter{gbnamefmtcase}{3}}{}
- \ifstrequal{#1}{pinyin}{\setcounter{gbnamefmtcase}{4}}{}%family-given
+ \ifstrequal{#1}{familyahead}{\setcounter{gbnamefmtcase}{3}}{}%family-given
+ \ifstrequal{#1}{pinyin}{\setcounter{gbnamefmtcase}{4}}{}
\ifstrequal{#1}{reverseorder}{\setcounter{gbnamefmtcase}{5}}{}%family-given/given-family
\ifstrequal{#1}{quanpin}{\setcounter{gbnamefmtcase}{6}}{}%全拼
\ifstrequal{#1}{fullname}{\setcounter{gbnamefmtcase}{7}}{}%英文的全拼,å在å‰-姓在åŽ
@@ -1181,6 +1181,10 @@
\step[fieldsource=publisher] %有时会把publisherå’Œinstitution混淆,处ç†åŽä½¿ç”¨institution
\step[fieldset=institution, origfieldval]
}
+ \map{
+ \pertype{legislation}
+ \step[typesource=legislation, typetarget=archive]
+ }
\map{%对应增加的一个档案类型archive确定文献类型标识符
\pertype{archive}
\step[fieldset=usera, fieldvalue={A}]
@@ -1197,6 +1201,10 @@
\pertype{misc}
\step[fieldset=usera, fieldvalue={Z}]%
}
+ \map{\pertype{mvbook}
+ \step[typesource=mvbook,typetarget=book]
+ \step[fieldset=usera, fieldvalue={M}]%
+ }
\map{
\pertype{book}
\pertype{inbook}
@@ -2664,6 +2672,8 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iffieldundef{titleaddon}{}{\setunit{\subtitlepunct}\printfield{titleaddon}}%判断一下titleaddon
\ifboolexpr{test{\ifentrytype{book}} and (not test{\iffieldundef{volume}})}%判断一下book类有没有volume
{\setunit{\subtitlepunct}\printfield{volume}}{}%
+ \ifboolexpr{(test{\ifentrytype{archive}} or test{\ifentrytype{online}}) and (not test{\iffieldundef{number}})}%判断一下archive类有没有number
+ {\setunit{\subtitlepunct}\printfield{number}}{}%
\iftoggle{bbx:gbtype}%
{\iffieldundef{entrysubtype}{\printfield[gbtypeflag]{usera}}%在标题åŽç›´æŽ¥ç»™å‡ºæ–‡çŒ®æ ‡è¯†å­—æ¯ï¼Œåˆ¤æ–­ä¸€ä¸‹ï¼Œæ˜¯å¦æ˜¯æŠ¥çº¸å’Œæ ‡å‡†
{\iffieldequalstr{entrysubtype}{standard}{\printfield[gbtypeflags]{usera}}%判断是å¦ä¸ºæ ‡å‡†
@@ -3604,9 +3614,23 @@ incollection,proceedings,inproceedings]{number}{%
%
\renewbibmacro*{note+pages}{%æºæ¥è‡ªstandard.bbx
%\printfield{note}%
- \iffieldundef{pages}{}{%
- \setunit{\bibpagespunct}%
- \printfield{pages}}%
+ \iffieldundef{entrysubtype}{%
+ \iffieldundef{pages}{}{%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}}%
+ }%
+ {%
+ \ifboolexpr{test{\iffieldequalstr{entrysubtype}{news}} and test{\iffieldundef{number}}}%判断一下archive类有没有number
+ {%
+ \iffieldundef{pages}{}{%
+ \printtext[parens]{\printfield{pages}}}%
+ }%
+ {%
+ \iffieldundef{pages}{}{%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}}%
+ }%
+ }%
%\newunit
}
@@ -3903,7 +3927,7 @@ incollection,proceedings,inproceedings]{number}{%
\newunit\newblock%%
\iftoggle{bbx:gbstrict}{}{%
\iffieldundef{maintitle}%
-{\printfield{volume}%
+{%\printfield{volume}%
\printfield{part}}%
{}%
\newunit%
@@ -4194,7 +4218,7 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{
\usebibmacro{institution+location+date}%
%\newunit\newblock
\usebibmacro{chapter+pages}%
- \iffieldundef{url}{}{%当没有网å€æ—¶ä¹Ÿä¸è¾“出修改或更新日期
+ \iffieldundef{url}{}{a%当没有网å€æ—¶ä¹Ÿä¸è¾“出修改或更新日期
\usebibmacro{modifydate}}%修改或更新日期为带括å·çš„时间
\usebibmacro{doi+eprint+url}%
\newunit
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
index fa23a27dcf..73316ea3cb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
@@ -10,7 +10,7 @@
%
% 版本和时间信æ¯
%
-\def\versionofgbtstyle{2023/09/10 v1.1o}
+\def\versionofgbtstyle{2024/02/10 v1.1p}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显å¼æŒ‡å®šç”¨biberåŽç«¯ï¼Œå½“用bibtex时会报错,但其实ä¸ä¼šå½±å“编译,åªæ˜¯é‡‡ç”¨bibtexåŽæ— æ³•è¾¾æˆæ ¼å¼éœ€æ±‚
@@ -1133,6 +1133,10 @@
\step[fieldsource=publisher] %有时会把publisherå’Œinstitution混淆,处ç†åŽä½¿ç”¨institution
\step[fieldset=institution, origfieldval]
}
+ \map{
+ \pertype{legislation}
+ \step[typesource=legislation, typetarget=archive]
+ }
\map{%对应增加的一个档案类型archive确定文献类型标识符
\pertype{archive}
\step[fieldset=usera, fieldvalue={A}]
@@ -1149,6 +1153,10 @@
\pertype{misc}
\step[fieldset=usera, fieldvalue={Z}]%
}
+ \map{\pertype{mvbook}
+ \step[typesource=mvbook,typetarget=book]
+ \step[fieldset=usera, fieldvalue={M}]%
+ }
\map{
\pertype{book}
\pertype{inbook}
@@ -2520,6 +2528,8 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\iffieldundef{titleaddon}{}{\setunit{\subtitlepunct}\printfield{titleaddon}}%判断一下titleaddon
\ifboolexpr{test{\ifentrytype{book}} and (not test{\iffieldundef{volume}})}%判断一下book类有没有volume
{\setunit{\subtitlepunct}\printfield{volume}}{}%
+ \ifboolexpr{(test{\ifentrytype{archive}} or test{\ifentrytype{online}}) and (not test{\iffieldundef{number}})}%判断一下archive类有没有number
+ {\setunit{\subtitlepunct}\printfield{number}}{}%
\iftoggle{bbx:gbtype}%
{\iffieldundef{entrysubtype}{\printfield[gbtypeflag]{usera}}%在标题åŽç›´æŽ¥ç»™å‡ºæ–‡çŒ®æ ‡è¯†å­—æ¯ï¼Œåˆ¤æ–­ä¸€ä¸‹ï¼Œæ˜¯å¦æ˜¯æŠ¥çº¸å’Œæ ‡å‡†
{\iffieldequalstr{entrysubtype}{standard}{\printfield[gbtypeflags]{usera}}%判断是å¦ä¸ºæ ‡å‡†
@@ -3365,6 +3375,22 @@ incollection,proceedings,inproceedings]{number}{%
\usebibmacro{date+extrayear}
}
+
+\DeclareFieldFormat{Labelyear}{%
+\ifboolexpr{%
+ (test{\iffieldundef{year}}%
+ and %
+ test{\iffieldundef{endyear}}%
+ and
+ test{\iffieldundef{eventyear}}) and (not test{\iffieldundef{urlyear}})%
+ }%
+ {\printtext[labelurlyear]{#1}}%
+ {\printtext[labelyear]{#1}}%
+}
+
+\DeclareFieldFormat{labelurlyear}{\mkbibbrackets{#1}}
+\DeclareFieldFormat{labelyear}{#1}
+ %\mkbibbrackets{#1}/\mkbibparens{#1}/ã€#1】等
%
% 设置标注和文献表中作者和年份之间的分隔符
%
@@ -3377,7 +3403,7 @@ incollection,proceedings,inproceedings]{number}{%
\renewbibmacro*{date+extrayear}{%%é‡è®¾date+extrayearæ ¼å¼ï¼Œæºæ¥è‡ªauthoryear.BBX
\iffieldundef{\thefield{datelabelsource}year}
{}
- {\printtext{%[parens]%这里把括å·åŽ»æŽ‰
+ {\printtext[Labelyear]{%[parens]%这里把括å·åŽ»æŽ‰
\iffieldsequal{year}{\thefield{datelabelsource}year}
{\printdateextralabel}%
{\printfield{labelyear}%
@@ -3391,7 +3417,7 @@ incollection,proceedings,inproceedings]{number}{%
\renewbibmacro*{date+extrayear}{%%é‡è®¾date+extrayearæ ¼å¼ï¼Œæºæ¥è‡ªauthoryear.BBX
\iffieldundef{\thefield{datelabelsource}year}
{}
- {\printtext{%[parens]%这里把括å·åŽ»æŽ‰
+ {\printtext[Labelyear]{%[parens]%这里把括å·åŽ»æŽ‰
\iffieldsequal{year}{\thefield{datelabelsource}year}
{\printdateextralabel}%
{\printfield{labelyear}%
@@ -3404,7 +3430,7 @@ incollection,proceedings,inproceedings]{number}{%
\renewbibmacro*{date+extrayear}{%以å‰çš„\printdateextralabelå®å˜ä¸ºäº†\printlabeldateextra
\iffieldundef{labelyear}
{}
- {\printtext{%[parens]
+ {\printtext[Labelyear]{%[parens]
\iffieldsequal{year}{labelyear}
{\printlabeldateextra}%
{\printfield{labelyear}%
@@ -3441,7 +3467,7 @@ incollection,proceedings,inproceedings]{number}{%
\renewbibmacro*{date+extradate}{%
\iffieldundef{labelyear}
{}
- {\printtext{%[parens]%这里去掉括å·
+ {\printtext[Labelyear]{%[parens]%这里去掉括å·
\iflabeldateisdate
{\printdateextra}
{\printlabeldateextra}}}}%
@@ -3479,6 +3505,35 @@ incollection,proceedings,inproceedings]{number}{%
}%
}
+\def\bbx@opt@mergedate@false{%
+ \renewbibmacro*{date+extradate}{%
+ \iffieldundef{labelyear}
+ {}
+ {\printtext[Labelyear]{%[parens]%这里去掉括å·
+ \iflabeldateisdate
+ {\printdateextra}
+ {\printlabeldateextra}}}}%
+\renewbibmacro*{bbx:ifmergeddate}{\@secondoftwo}%这一å¥ç”¨äºŽ3.12版本
+\renewbibmacro*{date}{\printdate}%这一å¥ç”¨äºŽbiblatex3.11以下版本
+\renewbibmacro*{issue+date}{%去掉括å·
+ \printtext{%去掉了[parens]
+ \iffieldundef{issue}
+ {%\usebibmacro{date}
+ \iffieldundef{entrysubtype}{\usebibmacro{date}}%判断一下,是å¦æ˜¯æŠ¥çº¸
+ {\iffieldequalstr{entrysubtype}{news}{\usebibmacro{newsdate}}%判断是å¦ä¸ºæŠ¥çº¸
+ {\usebibmacro{date}}%
+ }}%
+ {\iftoggle{bbx:gbstrict}{}{\printfield{issue}%
+ \setunit*{\addspace}}%
+ %\usebibmacro{date}
+ \iffieldundef{entrysubtype}{\usebibmacro{date}}%判断一下,是å¦æ˜¯æŠ¥çº¸
+ {\iffieldequalstr{entrysubtype}{news}{\usebibmacro{newsdate}}%判断是å¦ä¸ºæŠ¥çº¸
+ {\usebibmacro{date}}%
+ }}}%
+ %\newunit
+ }%
+ }
+
\iftoggle{iftlfive}{\switchversion{3.0}{dateextra}}{}%biblatex<=3.2
\iftoggle{iftlsix}{\switchversion{3.4}{dateextra}}{}%3.3<=biblatex<=3.6
\iftoggle{iftlseven}{\switchversion{3.7}{dateextra}}{}%biblatex=3.7
@@ -3575,9 +3630,21 @@ incollection,proceedings,inproceedings]{number}{%
% 原ç†æ–¹æ³•:原在authoryear.BBX中\bbx@opt@mergedate@compact中定义
% 当issue存在时,æ‰è®¾ç½®newunit。é¿å…直接设置标点åŽï¼Œå½“volumeä¸å­˜åœ¨æ˜¯éœ€è¦ä½¿ç”¨\nopuct去标点进而引入ä¸å¿…è¦çš„空格
\renewbibmacro*{issue+date}{%
+ \printtext{%去掉了[parens]
\iffieldundef{issue}%
- {}%
- {\iftoggle{bbx:gbstrict}{}{\printtext[parens]{\printfield{issue}}\newunit}}}
+ {%\usebibmacro{date}
+ \iffieldundef{entrysubtype}{}%判断一下,是å¦æ˜¯æŠ¥çº¸
+ {\iffieldequalstr{entrysubtype}{news}{\usebibmacro{newsdate}}{}%判断是å¦ä¸ºæŠ¥çº¸
+ }}%
+ {\iftoggle{bbx:gbstrict}{}{\printfield{issue}%
+ \setunit*{\addspace}}%
+ %\usebibmacro{date}
+ \iffieldundef{entrysubtype}{}%判断一下,是å¦æ˜¯æŠ¥çº¸
+ {\iffieldequalstr{entrysubtype}{news}{\usebibmacro{newsdate}}{}%判断是å¦ä¸ºæŠ¥çº¸
+ }}}%
+ }
+
+
@@ -3586,9 +3653,23 @@ incollection,proceedings,inproceedings]{number}{%
%
\renewbibmacro*{note+pages}{%æºæ¥è‡ªstandard.bbx
%\printfield{note}%
- \iffieldundef{pages}{}{%
- \setunit{\bibpagespunct}%
- \printfield{pages}}%
+ \iffieldundef{entrysubtype}{%
+ \iffieldundef{pages}{}{%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}}%
+ }%
+ {%
+ \ifboolexpr{test{\iffieldequalstr{entrysubtype}{news}} and test{\iffieldundef{number}}}%判断一下archive类有没有number
+ {%
+ \iffieldundef{pages}{}{%
+ \printtext[parens]{\printfield{pages}}}%
+ }%
+ {%
+ \iffieldundef{pages}{}{%
+ \setunit{\bibpagespunct}%
+ \printfield{pages}}%
+ }%
+ }%
%\newunit
}
@@ -3917,7 +3998,7 @@ test {\ifentrytype{conference}}
\newunit\newblock%%
\iftoggle{bbx:gbstrict}{}{%
\iffieldundef{maintitle}%
-{\printfield{volume}%
+{%\printfield{volume}%
\printfield{part}}%
{}%
\newunit%
@@ -3980,7 +4061,8 @@ test {\ifentrytype{conference}}
% \usebibmacro{byeditor+others}%
% \newunit
\usebibmacro{note+pages}%
- \iffieldequalstr{entrysubtype}{news}{}{%当是新闻时ä¸è¾“出修改或更新日期
+ \iffieldequalstr{entrysubtype}{news}{}%当是新闻时ä¸è¾“出修改或更新日期
+ {%
\iffieldundef{url}{}{%当没有网å€æ—¶ä¹Ÿä¸è¾“出
\iftoggle{bbx:url}{%当url选项为false时,也ä¸è¾“出
\usebibmacro{modifydate}}{}}}%带括å·çš„修改或更新日期,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
index fe97e02286..a4668eb0ff 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
@@ -11,7 +11,7 @@
%
% 版本和时间信æ¯
%
-\def\versionofgbtstyle{2022/11/07 v1.1k}
+\def\versionofgbtstyle{2024/02/10 v1.1p}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显å¼æŒ‡å®šç”¨biberåŽç«¯ï¼Œå½“用bibtex时会报错,但其实ä¸ä¼šå½±å“编译,åªæ˜¯é‡‡ç”¨bibtexåŽæ— æ³•è¾¾æˆæ ¼å¼éœ€æ±‚
@@ -857,6 +857,10 @@
\step[fieldsource=publisher] %有时会把publisherå’Œinstitution混淆,处ç†åŽä½¿ç”¨institution
\step[fieldset=institution, origfieldval]
}
+ \map{
+ \pertype{legislation}
+ \step[typesource=legislation, typetarget=archive]
+ }
\map{%对应增加的一个档案类型archive确定文献类型标识符
\pertype{archive}
\step[fieldset=usera, fieldvalue={A}]
@@ -873,6 +877,10 @@
\pertype{misc}
\step[fieldset=usera, fieldvalue={Z}]%
}
+ \map{\pertype{mvbook}
+ \step[typesource=mvbook,typetarget=book]
+ \step[fieldset=usera, fieldvalue={M}]%
+ }
\map{
\pertype{book}
\pertype{inbook}
@@ -2084,6 +2092,8 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}%
\iffieldundef{titleaddon}{}{\setunit{\subtitlepunct}\printfield{titleaddon}}%判断一下titleaddon
\ifboolexpr{test{\ifentrytype{book}} and (not test{\iffieldundef{volume}})}%判断一下book类有没有volume
{\setunit{\subtitlepunct}\printfield{volume}}{}%
+ \ifboolexpr{(test{\ifentrytype{archive}} or test{\ifentrytype{online}}) and (not test{\iffieldundef{number}})}%判断一下archive类有没有number
+ {\setunit{\subtitlepunct}\printfield{number}}{}%
\iftoggle{bbx:gbtype}%
{\iffieldundef{entrysubtype}{\printfield[gbtypeflag]{usera}}%在标题åŽç›´æŽ¥ç»™å‡ºæ–‡çŒ®æ ‡è¯†å­—æ¯ï¼Œåˆ¤æ–­ä¸€ä¸‹ï¼Œæ˜¯å¦æ˜¯æŠ¥çº¸å’Œæ ‡å‡†
{\iffieldequalstr{entrysubtype}{standard}{\printfield[gbtypeflags]{usera}}%判断是å¦ä¸ºæ ‡å‡†
@@ -2542,7 +2552,7 @@ incollection,proceedings,inproceedings]{number}{%
\newunit\newblock%%
\iftoggle{bbx:gbstrict}{}{%
\iffieldundef{maintitle}%
-{\printfield{volume}%
+{%\printfield{volume}%
\printfield{part}}%
{}%
\newunit%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
index e829ef3c3a..8351664a2a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
@@ -11,7 +11,7 @@
%
% 版本和时间信æ¯
%
-\def\versionofgbtstyle{2022/11/07 v1.1k}
+\def\versionofgbtstyle{2024/02/10 v1.1p}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显å¼æŒ‡å®šç”¨biberåŽç«¯ï¼Œå½“用bibtex时会报错,但其实ä¸ä¼šå½±å“编译,åªæ˜¯é‡‡ç”¨bibtexåŽæ— æ³•è¾¾æˆæ ¼å¼éœ€æ±‚
@@ -904,6 +904,10 @@
\step[fieldsource=publisher] %有时会把publisherå’Œinstitution混淆,处ç†åŽä½¿ç”¨institution
\step[fieldset=institution, origfieldval]
}
+ \map{
+ \pertype{legislation}
+ \step[typesource=legislation, typetarget=archive]
+ }
\map{%对应增加的一个档案类型archive确定文献类型标识符
\pertype{archive}
\step[fieldset=usera, fieldvalue={A}]
@@ -920,6 +924,10 @@
\pertype{misc}
\step[fieldset=usera, fieldvalue={Z}]%
}
+ \map{\pertype{mvbook}
+ \step[typesource=mvbook,typetarget=book]
+ \step[fieldset=usera, fieldvalue={M}]%
+ }
\map{
\pertype{book}
\pertype{inbook}
@@ -2055,6 +2063,8 @@
\iffieldundef{titleaddon}{}{\setunit{\subtitlepunct}\printfield{titleaddon}}%判断一下titleaddon
\ifboolexpr{test{\ifentrytype{book}} and (not test{\iffieldundef{volume}})}%判断一下book类有没有volume
{\setunit{\subtitlepunct}\printfield{volume}}{}%
+ \ifboolexpr{(test{\ifentrytype{archive}} or test{\ifentrytype{online}}) and (not test{\iffieldundef{number}})}%判断一下archive类有没有number
+ {\setunit{\subtitlepunct}\printfield{number}}{}%
\iftoggle{bbx:gbtype}%
{\iffieldundef{entrysubtype}{\printfield[gbtypeflag]{usera}}%在标题åŽç›´æŽ¥ç»™å‡ºæ–‡çŒ®æ ‡è¯†å­—æ¯ï¼Œåˆ¤æ–­ä¸€ä¸‹ï¼Œæ˜¯å¦æ˜¯æŠ¥çº¸å’Œæ ‡å‡†
{\iffieldequalstr{entrysubtype}{standard}{\printfield[gbtypeflags]{usera}}%判断是å¦ä¸ºæ ‡å‡†
@@ -2946,7 +2956,7 @@ incollection,proceedings,inproceedings]{number}{%
\newunit\newblock%%
\iftoggle{bbx:gbstrict}{}{%
\iffieldundef{maintitle}%
-{\printfield{volume}%
+{%\printfield{volume}%
\printfield{part}}%
{}%
\newunit%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714texttobib.pl b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714texttobib.pl
index 68f265bbf6..43aaf94fea 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714texttobib.pl
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714texttobib.pl
@@ -8,6 +8,7 @@
##% history:
##% 2017/02/26 v1.0g
##% 2021/09/04 add compatablity for text with no space after punctuations.
+##% 2023/09/13 change CJK punctuations to EN punct and add final dot.
##% E-mail:
##% hzzmail@163.com
##% Released under the LaTeX Project Public License v1.3c or later
@@ -30,7 +31,8 @@
# å¯ä»¥åœ¨bib文件中完善,尽管从实用角度并ä¸éœ€è¦è¿™ä¹ˆåšã€‚
#
##% ---------------------------------------------------------------
-##% todo: 1. pdf 的比较?
+##% note:
+##% 1. 对于英文的姓åè‹¥éžæ ‡å‡†çš„国标写法,通常当åšæœºæž„作者处ç†ï¼Œæ‰€ä»¥ç”Ÿæˆçš„bib文件需è¦è‡ªå·±æ‰‹åŠ¨å¤„ç†
##% obsolete intro:
##% 1.æºæ–‡ä»¶æ–‡æ¡£å¦‚果个别地方ä¸ç¬¦åˆè§„范,å¯ä»¥ä¿®æ”¹ä¸€ä¸‹
##% (a):inbook/standard类中,当出现//åŽé¢ç¬¬äºŒé¡¹æ˜¯booktitle且其中存在:时,先把父标题的冒å·æ”¹æˆcolon,比如
@@ -56,20 +58,50 @@ print FHW '% Encoding: UTF-8',"\n";
@references=<FHR>;#将所有的文献存为@references数组,å„文献以<è¡Œ>为å•ä½è¿›è¡ŒåŒºåˆ†
+#20230913,hzz,å°†æ¡ç›®ä¸­çš„中文全角标点转æ¢ä¸ºè‹±æ–‡çš„
+foreach $stra (@references) {
+ print "orig: $stra\n";
+ $stra=~s/,/\,/g;
+ $stra=~s/:/\:/g;
+ $stra=~s/ï¼›/\,/g;
+ print "modf: $stra\n";
+}
+
+
+#20230913,hzz,è‹¥æ¡ç›®æœ€åŽæ²¡æœ‰ç‚¹å…ˆåŠ ä¸Šç‚¹
+foreach $stra (@references) {
+ print "orig: $stra\n";
+ if ($stra=~m/\.$/ || $stra=~m/\.\s*$/)
+ {
+ print "str ened with dot\n";
+ }
+ else
+ {
+ #$stra=$stra+'.'; #ä¸èƒ½è¿™ä¹ˆç›´æŽ¥åŠ 
+ $stra=~s/(.*)/$1\./;
+ print "add dot for str end without dot\n";
+ print "modf: $stra\n";
+ }
+}
+
+
#有些文本标点åŽé¢æ²¡æœ‰ç©ºæ ¼ï¼Œæ‰€ä»¥å…ˆå¯¹è¿™ä¸ªé—®é¢˜è¿›è¡Œå¤„ç†
#在所有的关键标点åŽé¢åŠ ä¸Šç©ºæ ¼
#20210904,HZZ
foreach $stra (@references) {
- print "$stra\n";
+ print "orig: $stra\n";
$stra=~s/\.(\S)/\. $1/g;
$stra=~s/\,(\S)/\, $1/g;
$stra=~s/\:(\S)/\: $1/g;
- print "$stra\n";
+ print "modf: $stra\n";
}
print "@references\n";
+
+
+
$ns=1;
$ne=@references;
$nline=0;
@@ -1001,8 +1033,10 @@ foreach $reference(@references){
}
#最åŽè¾“出
print "\n";
+ print 'authorlabel=',$authorlabel,"\n";
#print '@',"$entrytype",'{',"ref-$nline-$sn",',',"\n";
- print '@',"$entrytype",'{',"$author$date",',',"\n";
+ #print '@',"$entrytype",'{',"$author$date",',',"\n";
+ print '@',"$entrytype",'{',"$authorlabel$date",',',"\n";
$author&& print 'author = {',$author,'},',"\n";
$title&& print 'title = {',$title,'},',"\n";
$journal&& print 'journal = {',$journal,'},',"\n";
@@ -1023,7 +1057,7 @@ foreach $reference(@references){
$doi&& print 'doi = {',$doi,'},',"\n";
$note&& print 'note = {',$note,'},',"\n";
print '}',"\n";
- print 'authorlabel=',$authorlabel,"\n";
+
#print FHW "\n@","$entrytype",'{',"ref-$nline-$sn-$authorlabel",',',"\n";
@@ -1092,6 +1126,7 @@ foreach $reference(@references){
print 'sn =',"$sn \n";
print 'title =',"$title \n";
}
+ $title=~s/(^\s+|\s+$)//g; #å°†titleå‰åŽçš„空格去掉
#进一步处ç†è´£ä»»è€…的姓å,主è¦é’ˆå¯¹è‹±æ–‡å需è¦æœ‰ä¸€äº›ç¬¦å·è¿›è¡ŒåŒºåˆ†å§“,å,å‰ç¼€å’ŒåŽç¼€ã€‚
@names=split('and',$author);
@@ -1222,7 +1257,7 @@ foreach $reference(@references){
}
}
- if($translator=~m/译/){#当译者真实存在
+ if($translator=~m/,\s*译/){#当译者真实存在
$translator=~s/,\s*译//;#将译去掉
if($translator=~m/ç­‰/){
$translator=~s/ç­‰/others/;#将等æ¢æˆothers
@@ -1233,7 +1268,21 @@ foreach $reference(@references){
$translator=~s/,/ and /;#将逗å·æ¢æˆand
}
print 'translator =',"$translator \n";
- }else {#当译者ä¸å­˜åœ¨ï¼Œé‚£ä¹ˆtranslator中信æ¯å¯èƒ½æ˜¯éžæ•°å­—的版本信æ¯
+ }
+ elsif($translator=~m/译$/)#若最åŽä¸€ä¸ªå­—是译
+ {
+ $translator=~s/译//;#将译去掉
+ if($translator=~m/ç­‰/){
+ $translator=~s/ç­‰/others/;#将等æ¢æˆothers
+ }else{
+ $translator=~s/,\s*$//;#将最åŽä¸€ä¸ªé€—å·åŽ»æŽ‰
+ }
+ while($translator=~m/,/){
+ $translator=~s/,/ and /;#将逗å·æ¢æˆand
+ }
+ print 'translator =',"$translator \n";
+ }
+ else {#当译者ä¸å­˜åœ¨ï¼Œé‚£ä¹ˆtranslator中信æ¯å¯èƒ½æ˜¯éžæ•°å­—的版本信æ¯
unless($version) {#除éžversion没有信æ¯
$version=$translator;
$translator="";
@@ -1396,7 +1445,7 @@ foreach $reference(@references){
if ($pospublisher=~m/.*\[s\.n\.\].*/) {#当存在英文的[s.n.]
$pospublisher=~s/\[s\.n\.\]/\[s-n-\]/; #先将[s.n.]æ¢æˆ[s-n-]然åŽæ¢å›žæ¥
}
- if ($pospublisher=~m/.*,\s*\d{4}\S+/){#匹é…存在年份的è¯
+ if ($pospublisher=~m/.*,\s*\d{4}\S*/){#匹é…存在年份的è¯
($publisher, $year, $posyear)=($pospublisher=~m/(.*),\s*(\d{4})(.*)/);
print 'publisher=',"$publisher \n";
print 'year =',"$year \n";
diff --git a/macros/latex/contrib/contract/LICENSE.md b/macros/latex/contrib/contract/LICENSE.md
new file mode 100644
index 0000000000..99a6973749
--- /dev/null
+++ b/macros/latex/contrib/contract/LICENSE.md
@@ -0,0 +1,19 @@
+----------------------------------------------------------------------------
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, version 1.3c of the license. The latest
+version of this license is in http://www.latex-project.org/lppl.txt and
+version 1.3c or later is part of all distributions of LaTeX 2005/12/01
+or later. This work has the LPPL maintenance status “maintainedâ€.
+The current maintainer and author of this work is Markus Kohm.
+
+----------------------------------------------------------------------------
+
+Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
+in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle
+Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
+oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintainedâ€
+Der aktuelle Verwalter und Autor dieses Werks ist Markus Kohm.
+
+----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/contract/MANIFEST.md b/macros/latex/contrib/contract/MANIFEST.md
new file mode 100644
index 0000000000..576495de9d
--- /dev/null
+++ b/macros/latex/contrib/contract/MANIFEST.md
@@ -0,0 +1,107 @@
+# Manifest for contract
+
+This file is a listing of all files considered to be part of this package.
+It is automatically generated with `l3build manifest`.
+
+
+## Repository manifest
+
+The following groups list the files included in the development repository of the package.
+Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed
+with ‘‡’ are included in both.
+
+### Source files
+
+These are source files for a number of purposes, including the `unpack` process which
+generates the installation files of the package. Additional files included here will also
+be installed for processing such as testing.
+
+* contract.dtx ‡
+
+### Documentation files
+
+These files form part of the documentation but are not typeset. Generally they will be
+additional input files for the typeset documentation files listed above.
+
+* contract-example-en.tex ‡
+* contract.dtx ‡
+* contract-example-de.tex ‡
+* contract-example-en.pdf ‡
+* contract-example-de.pdf ‡
+* contract.pdf ‡
+
+### Text files
+
+Plain text files included as documentation or metadata.
+
+* LICENSE.md ‡
+* MANIFEST.md ‡
+* README.md ‡
+
+### Derived files
+
+The files created by ‘unpacking’ the package sources. This typically includes
+`.sty` and `.cls` files created from DocStrip `.dtx` files.
+
+* contract.sty †
+
+### Test files
+
+These files form the test suite for the package. `.lvt` or `.lte` files are the individual
+unit tests, and `.tlg` are the stored output for ensuring changes to the package produce
+the same output. These output files are sometimes shared and sometime specific for
+different engines (pdfTeX, XeTeX, LuaTeX, etc.).
+
+* env-contract-std.lvt
+* env-contract.lvt
+* env-contract-std.tlg
+* env-contract.tlg
+
+
+## TDS manifest
+
+The following groups list the files included in the TeX Directory Structure used to install
+the package into a TeX distribution.
+
+### Source files (TDS)
+
+All files included in the `contract/source` directory.
+
+* contract.dtx
+
+### TeX files (TDS)
+
+All files included in the `contract/tex` directory.
+
+* contract.sty
+
+### Doc files (TDS)
+
+All files included in the `contract/doc` directory.
+
+* LICENSE.md
+* MANIFEST.md
+* README.md
+* contract-example-de.pdf
+* contract-example-de.tex
+* contract-example-en.pdf
+* contract-example-en.tex
+* contract.dtx
+* contract.pdf
+
+
+## CTAN manifest
+
+The following group lists the files included in the CTAN package.
+
+### CTAN files
+
+* LICENSE.md
+* MANIFEST.md
+* README.md
+* contract-example-de.pdf
+* contract-example-de.tex
+* contract-example-en.pdf
+* contract-example-en.tex
+* contract.dtx
+* contract.pdf
diff --git a/macros/latex/contrib/contract/README.md b/macros/latex/contrib/contract/README.md
new file mode 100644
index 0000000000..56b9784c5b
--- /dev/null
+++ b/macros/latex/contrib/contract/README.md
@@ -0,0 +1,238 @@
+# The LaTeX package `contract`
+
+Copyright © 2007–2024 Markus Kohm
+
+Release: 2024-02-07 v0.91
+
+License: LPPL 1.3c
+
+KOMA presents the KOMA-Script spin-off `contract`. Package `contract` provides
+environments for legal contracts, sections, paragraphs and similar. It is the
+official successor to the former KOMA-Script package `scrjura`.
+
+----------------------------------------------------------------------------
+
+This work may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, version 1.3c of the license.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+The Current Maintainer and author of this work is Markus Kohm.
+
+This work consists of the files listed in MANIFEST.md.
+
+----------------------------------------------------------------------------
+
+# Abstract
+
+For several years
+[KOMA-Script](https://www.sourceforge.net/project/koma-script) provides
+package `scrjura`. The package was developed at the request of and in
+co-operation with a German lawyer. In 2024, the package was separated from
+KOMA-Script and has since been called `contract`. The new name was chosen to
+avoid confusion with KOMA-Script packages. Secondly, it better reflects the
+purpose of the package.
+
+# Installation for Users
+
+If you are a user, I would usually say, that you should wait until the
+package has been added to your preferred TeX distribution. Then you can use
+the package manager of your TeX distribution to install the package. But in
+case of `contract` it currently seems, that it could not be uploaded to CTAN
+and therefore will never be part of any TeX distribution. So if you would like
+to use the package, you would need to
+
+ - [Download the current
+release](https://github.com/komascript/latex-contract/releases)
+ You can either use the file named “**Source code** (zip)†or the file “**Source
+ code** (tar.gz)â€. Windows users are recommended to use the zip. By
+ downloading the file you will get something like `latex-contract-0.91.zip`
+ resp. `latex-contract-0.91.tar.gz`.
+
+ - Unpack the downloaded file
+ The downloaded file is an archive, that contains several files. Despite the
+ Windows File Explorer and also Mac-OS, KDE's Dolphin, Gnome's Nautilus and
+ many other file managers are able to open such archive files, you should
+ instead right-click on it to extract it. I recommend to keep the directory
+ structure while extracting. This gives a new directory
+ `latex-contract-<version>`, e.g., `latex-contract-0.91`.
+
+ - Open a shell/terminal in the new directory `latex-contract-<version>`.
+
+ - Use `l3build` to install the package and the documentation:
+
+ l3build install --full
+
+
+If you don't get an error message, the installation was successful and you
+should be able to use LaTeX package `contract`. To test, that LaTeX is able to
+find the file, try:
+
+ kpsewhich contract.sty
+
+This should show you the whole path of the LaTeX package file.
+
+**Note:** The installation above is currently tested only with TeX
+Live. MiKTeX users may also need to run the `MiKTeX Console` to update the
+filename database. See the MiKTeX manual for more information.
+
+**Note:** The installation described above, does not work for a snapshot
+archive or a git clone of the `main` branch. It only works for the `release`
+branch resp. [a release
+download](https://github.com/komascript/latex-contract/releases). For
+installation of a snapshot or git clone of the `main` branch see “[Unpacking
+and Installation for Developers](#unpacking-and-installation-for-developers)â€
+below. For some reasons it also does not work for release v0.9. If you need to
+use release v0.9 see “[Unpacking and Installation for
+Developers](#unpacking-and-installation-for-developers)â€.
+
+# Unpacking for Distributors
+
+Distributors should [download the current
+release](https://github.com/komascript/latex-contract/releases). See
+[`MANIFEST.md`](https://github.com/komascript/latex-contract/blob/main/MANIFEST.md)
+for information about the files, that build the distribution.
+
+If distributors also want to distribute `contract.sty`, they can
+unpack it using:
+
+ tex contract.dtx
+
+For a temporary local installation see “[Installation for
+Users](#installation-for-users)†above.
+
+# Unpacking and Installation for Developers
+
+Developers who want the current developer version of the code to be installed
+for testing, should clone [the `latex-contract`
+repository](https://github.com/komascript/latex-contract), e.g.,
+using
+
+ git clone https://github.com/komascript/latex-contract.git
+
+You can than unpack and install `contract` using:
+
+ l3build install
+
+from within the main directory of the cloned respository.
+
+**Important Note:** The user manual of `contract` uses some packages, which
+are still under development and therefore currently may not be available on
+CTAN. So you usually cannot use `l3build doc` to generate the documentation or
+`l3build install --full` to install `contract` with the documentation. Instead
+you either have to read `contract.dtx` or use the `contract.pdf` available at
+the newest [`contract`
+release](https://github.com/komascript/latex-contract/releases) or [the
+`release`
+branch](https://github.com/komascript/latex-contract/tree/release). You can
+copy such PDFs to the `doc/latex/contract/` folder of any TEXMF tree.
+
+# How to get the Manual
+
+After installation of `contract` and the user manual you can use:
+
+ texdoc contract
+
+Without installation you can get `contract.pdf` as part of the corresponding
+[`contract`
+release](https://github.com/komascript/latex-contract/releases) or [the
+`release`
+branch](https://github.com/komascript/latex-contract/tree/release).
+
+# How to Contribute
+
+To become a contributor, e.g., do heavy testing. If you find an issue, please
+[report it](#how-to-report-issues). You can also become a developer and, e.g.,
+make new test files to the packageP. See the
+[`l3build`](https://ctan.org/pkg/l3build) manual for more information about
+tests. If you've created a new test and think that it would be useful, please
+either do a pull request or [add a new issue](#how-to-report-issues) and
+include your test file.
+
+If you would like to have the package on CTAN and also in TeX distributions,
+you can become the CTAN release agent of `latex-contract`. To do this,
+however, you must first convince the CTAN team that `contract` is a suitable,
+not too generic name for a new LaTeX package. Unfortunately, I was not able to
+do this. Queries to me about this and about possible renaming of the package
+are undesirable and risk further stalling the development of this LaTeX
+package and all my other LaTeX packages.
+
+
+# How to Report Issues
+
+If you think you have found a bug (or another kind of issue) using
+`contract` you should use [the issue
+tracker](https://github.com/komascript/latex-contract/issues). Please
+first search for similar issues already reported and maybe also already fixed
+and closed. Maybe the replies to such a similar report would help you too.
+
+If your issue is new, you should report it also using [the issue
+tracker](https://github.com/komascript/latex-contract/issues). Please be kind,
+not only when writing the report but also when reading replies and commenting
+or answering. And please always add a minimal working example and usually the
+relevant parts of the `log`-file to your report. Please use the [markdown for
+code](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks)
+to add such files into the text of your report. The correct language
+identifier for LaTeX code would be `latex`. For `log`-files you won't need any
+language identifier. Usually you should not use attachments for code or
+`log`-files unless you've been asked to do so. And please note, reports should
+always be self-containing. External links often break and so the report become
+useles.
+
+# How to Say Thank You for my Work
+
+Hey, I'm doing this as a hobby. So no need to say thank you. But I'm a vain
+fop, so I'm certainly up for a quick thank you by email. On komascript.de you
+can find an [explanation of my wishes](https://komascript.de/wunschliste) if
+you want to give more. If you don't understand German, just click to links at
+that page.
+
+# Milestones
+
+The development has just begun. Currently [the first
+milestone](https://github.com/komascript/latex-contract/milestone/1):
+
+ - [x] creating a new repository
+ - [x] copying `scrjura.dtx` from KOMA-Script as `contract.dtx` to the new
+ repository
+ - [x] creating a new build environment:
+ - [x] `README.md`
+ - [x] `LICENSE.md`
+ - [x] `MANIFEST.md`
+ - [x] `build.lua`
+ - [x] test files
+ - [x] renaming several internals of `contract`
+ - [x] adding user documentation based on the `scrjura` chapters of the English
+ KOMA-Script manual
+ - [x] improving user documentation
+
+has been reached.
+
+Further milestones could be:
+
+ - [ ] replacing `scrjura` by a `contract` wrapper in KOMA-Script for
+ compatibility only
+ - [ ] reimplementing several internals of `contract`:
+ - [ ] replacing KOMA-Script options by LaTeX key-value options
+ - [ ] replacing \newkomafont, \setkomafont by something not KOMA-Script
+ related or alterntively internally uses `scrkbase` by `scrextend`,
+ - [ ] using `expl3`,
+ - [ ] using the new paragraph hooks of LaTeX,
+ - [ ] using the extended referencing mechanism of LaTeX.
+
+# From `scrjura` to `contract`
+
+If you have been using the `scrjura` package and are now switching to the
+`contract` package, you should read chapter “From `scrjura` to `contract`†in
+the `contract` user manual. The most important and incompatible change IMHO
+is, that the argument of `\Clause` and `\SubClause` isn't mandaroty any longer
+but optional. So the syntax has changed to `\Clause[<options>]`
+resp. `\SubClause[<options>]`.
+
+**Note:** For a transitional period, KOMA-Script will continue to contain a
+package `scrjura`, which is a wrapper to `contract` and attempts to increase
+compatibility. With this package, the argument of `\Clause` and `\SubClause`
+will remain mandatory for the time being. However, this package is expected to
+disappear from KOMA-Script after a reasonable period of smooth transition.
diff --git a/macros/latex/contrib/contract/contract-example-de.pdf b/macros/latex/contrib/contract/contract-example-de.pdf
new file mode 100644
index 0000000000..386eaffe60
--- /dev/null
+++ b/macros/latex/contrib/contract/contract-example-de.pdf
Binary files differ
diff --git a/macros/latex/contrib/contract/contract-example-de.tex b/macros/latex/contrib/contract/contract-example-de.tex
new file mode 100644
index 0000000000..1be3a02c2d
--- /dev/null
+++ b/macros/latex/contrib/contract/contract-example-de.tex
@@ -0,0 +1,145 @@
+\documentclass[fontsize=12pt,parskip=half]
+ {scrartcl}
+
+\usepackage[ngerman]{babel}
+
+\usepackage[T1]{fontenc}
+% Hinweis: Nur einer der beiden folgenden Zeilen wird benötigt.
+\usepackage{lmodern}
+\usepackage{charter,helvet}
+
+\usepackage{enumerate}
+
+\usepackage[clausemark=forceboth,
+ juratotoc, juratocnumberwidth=2.5em]
+ {contract}
+\useshorthands{'}
+\defineshorthand{'S}{\Sentence\ignorespaces}
+\defineshorthand{'.}{. \Sentence\ignorespaces}
+
+\pagestyle{myheadings}
+
+\begin{document}
+
+\subject{Satzung}
+\title{VfVmai}
+\subtitle{Verein für Vereinsmaierei mit ai n.\,e.\,V.}
+\date{11.\,11.\,2011}
+\maketitle
+
+\tableofcontents
+
+\addsec{Präambel}
+
+Die Vereinslandschaft in Deutschland ist vielfältig.
+Doch leider mussten wir feststellen, dass es dabei oft
+am ernsthaften Umgang mit der Ernsthaftigkeit krankt.
+
+\appendix
+
+\section{Allgemeines}
+
+\begin{contract}
+\Clause[title={Name, Rechtsform, Sitz des Vereins}]
+
+Der Verein führt den Namen »Verein für Vereinsmaierei mit
+ai n.e.V.« und ist in keinem Vereinsregister eingetragen.
+
+'S Der Verein ist ein nichtwirtschaftlicher, unnützer
+Verein'. Er hat keinen Sitz und muss daher stehen.
+
+Geschäftsjahr ist vom 31.~März bis zum 1.~April.
+
+\Clause[title={Zweck des Vereins}]
+
+'S Der Verein ist zwar sinnlos, aber nicht zwecklos'.
+Vielmehr soll er den ernsthaften Umgang mit der
+Ernsthaftigkeit auf eine gesunde Basis stellen.
+
+Zu diesem Zweck kann der Verein
+\begin{enumerate}[\qquad a)]
+\item in der Nase bohren,
+\item Nüsse knacken,
+\item am Daumen lutschen.
+\end{enumerate}
+
+Der Verein ist selbstsüchtig und steht dazu.
+
+Der Verein verfügt über keinerlei Mittel.\label{a:mittel}
+
+\Clause[title={Vereinsämter}]
+
+Die Vereinsämter sind Ehrenämter.
+
+'S Würde der Verein über Mittel verfügen
+(siehe \ref{a:mittel}), so könnte er einen
+hauptamtlichen Geschäftsführer bestellen'. Ohne
+die notwendigen Mittel ist dies nicht möglich.
+
+\Clause[title={Vereinsmaier},dummy]
+\label{p.maier}
+\end{contract}
+
+\section{Mitgliedschaft}
+
+\begin{contract}
+\Clause[title={Mitgliedsarten},dummy]
+
+\Clause[title={Erwerb der Mitgliedschaft}]
+
+Die Mitgliedschaft kann jeder zu einem angemessenen
+Preis von einem der in \refClause{p.maier}
+genannten Vereinsmaier erwerben.\label{a.preis}
+
+'S Zum Erwerb der Mitgliedschaft ist ein formloser
+Antrag erforderlich'. Dieser Antrag ist in grüner
+Tinte auf rosa Papier einzureichen.
+
+Die Mitgliedschaft kann nicht abgelehnt werden.
+
+\SubClause[title={Ergänzung zu vorstehendem
+ Paragraphen}]
+
+'S Mit Abschaffung von \refClause{p.maier} verliert
+\ref{a.preis} seine Umsetzbarkeit'. Mitgliedschaften
+können ersatzweise vererbt werden.
+
+\Clause[title={Ende der Mitgliedschaft}]
+
+'S Die Mitgliedschaft endet mit dem Leben'. Bei nicht
+lebenden Mitgliedern endet die Mitgliedschaft nicht.
+
+\Clause[title={Mitgliederversammlung}]
+
+Zweimal jährlich findet eine Mitgliederversammlung statt.
+
+Der Abstand zwischen zwei Mitgliederversammlungen
+beträgt höchstens 6~Monate, 1~Woche und 2~Tage.
+
+Frühestens 6~Monate nach der letzten Mitgliederversammlung
+hat die Einladung zur nächsten Mitgliederversammlung zu
+erfolgen.
+
+\SubClause[title={Ergänzung zur Mitgliederversammlung}]
+
+Die Mitgliederversammlung darf frühstens 2~Wochen nach
+letztem Eingang der Einladung abgehalten werden.
+\end{contract}
+
+\section{Gültigkeit}
+
+\begin{contract}
+\Clause[title={In Kraft treten}]
+
+Diese Satzung tritt am 11.\,11.\,2011 um 11:11~Uhr
+in Kraft.
+
+'S Sollten irgendwelche Bestimmungen dieser Satzung im
+Widerspruch zueinander stehen, tritt die Satzung am
+11.\,11.\,2011 um 11:11~Uhr und 11~Sekunden wieder
+außer Kraft'. Der Verein ist in diesem Fall als
+aufgelöst zu betrachten.
+
+\end{contract}
+
+\end{document}
diff --git a/macros/latex/contrib/contract/contract-example-en.pdf b/macros/latex/contrib/contract/contract-example-en.pdf
new file mode 100644
index 0000000000..aa4fe752c8
--- /dev/null
+++ b/macros/latex/contrib/contract/contract-example-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/contract/contract-example-en.tex b/macros/latex/contrib/contract/contract-example-en.tex
new file mode 100644
index 0000000000..f1d17d1994
--- /dev/null
+++ b/macros/latex/contrib/contract/contract-example-en.tex
@@ -0,0 +1,143 @@
+\documentclass[fontsize=12pt,parskip=half]
+ {scrartcl}
+
+\usepackage[british]{babel}
+
+\usepackage[T1]{fontenc}
+% Note: Only one of the following two lines is needed.
+\usepackage{lmodern}
+\usepackage{charter,helvet}
+
+\usepackage{enumerate}
+
+\usepackage[clausemark=forceboth,
+ juratotoc,
+ juratocnumberwidth=2.5em]
+ {contract}
+\useshorthands{'}
+\defineshorthand{'S}{\Sentence\ignorespaces}
+\defineshorthand{'.}{. \Sentence\ignorespaces}
+
+\pagestyle{myheadings}
+
+\begin{document}
+
+\subject{By-Laws}
+\title{CfCH}
+\subtitle{Club for Club Hoppers}
+\date{11.\,11.\,2011}
+\maketitle
+
+\tableofcontents
+
+\addsec{Preamble}
+
+The club landscape in England is diverse. But we have
+unfortunately been forced to conclude that it often
+suffers seriously when dealing with seriousness.
+
+\appendix
+
+\section{Overview}
+
+\begin{contract}
+\Clause[title={Name, Legal Form, Headquarters}]
+
+The name of this club shall be the ``Club for Club
+Hoppers'' and is not registered in any club register.
+
+'S The club is a non-economic, useless club'. It has no
+headquarters because its members heads are in their
+hindquarters.
+
+The fiscal year is from March 31st through April 1st.
+
+\Clause[title={Purpose of the Club}]
+
+'S The club is pointless but not useless'. Rather,
+it should put the serious handling of seriousness on a
+sound footing.
+
+For this purpose, the club members can
+\begin{enumerate}[\qquad a)]
+\item pick their noses,
+\item crack nuts,
+\item such their thumbs.
+\end{enumerate}
+
+The club is selfish and stands by it.
+
+The club has no financial means.\label{a:mittel}
+
+\Clause[title={Club Officers}]
+
+The club officers hold honorary positions.
+
+'S If the club had resources (see \ref{a:mittel}), it
+could afford a full-time manager'. Without the necessary
+funds, this is not possible.
+
+\Clause[title={Club Hopper},dummy]
+\label{p.maier}
+\end{contract}
+
+\section{Membership}
+
+\begin{contract}
+\Clause[title={Types of Members},dummy]
+
+\Clause[title={Becoming a Member}]
+
+Everyone can purchase a membership from one of the
+associations listed in \refClause{p.maier}.\label{a.preis}
+
+'S To become a member, an informal application is
+required'. This application should be submitted in green
+ink on pink paper.
+
+Membership applications cannot be rejected.
+
+\SubClause[title={Amendment to the Previous Clause}]
+
+'S With the repeal of \refClause{p.maier},
+\ref{a.preis} has become impractical'. In its place,
+memberships can be inherited.
+
+\Clause[title={Termination of Membership}]
+
+'S Membership ends with one's life'. For non-living
+members, membership does not end.
+
+\Clause[title={General Meeting}]
+
+A general meeting shall take place twice per year.
+
+The interval between two general meetings shall be
+no more than 6~months, 1~week, and 2~days.
+
+The invitation to the next general meeting shall be sent
+no earlier than 6~months from the previous general
+meeting.
+
+\SubClause[title={Amendment to the General Meeting}]
+
+The general meeting may be held at the earliest 2~weeks after
+the invitation is received.
+\end{contract}
+
+\section{Validity}
+
+\begin{contract}
+\Clause[title={Effective Date}]
+
+These articles will enter into force on 11.\,11.\,2011 at
+11:11~am.
+
+'S If any provision of these by-laws is in conflict with
+any other, the by-laws will be repealed on
+11.\,11.\,2011 at 11:11~am and 11~seconds'. The club is
+considered to be dissolved in this case.
+
+\end{contract}
+
+\end{document}
diff --git a/macros/latex/contrib/contract/contract.dtx b/macros/latex/contrib/contract/contract.dtx
new file mode 100644
index 0000000000..cc83aa1df1
--- /dev/null
+++ b/macros/latex/contrib/contract/contract.dtx
@@ -0,0 +1,3551 @@
+% \iffalse meta-comment
+% ======================================================================
+% contract.dtx
+% Copyright (c) 2007–2024 Markus Kohm
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of the files listed in MANIFEST.md.
+% ======================================================================
+%<identify>%%% --- docstrip run: identify ---
+%<doc>%%% --- docstrip run: doc ---
+%<init>%%% --- docstrip run: init ---
+%<options>%%% --- docstrip run: options ---
+%<postoptions>%%% --- docstrip run: postoptions ---
+%<body>%%% --- docstrip run: body ---
+%<final>%%% --- docstrip run: final ---
+%<*dtx>
+\expandafter\ifx\csname ProvidesFile\endcsname\relax
+ \def\ProvidesFile#1[#2]{}
+\fi
+\ProvidesFile{contract.dtx}[%
+%</dtx>
+%<package&identify>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+%<package&identify>\ProvidesPackage{contract}[%
+%<*dtx|(package&identify)>
+ 2024-02-07 v0.91
+%<*dtx>
+ source of
+%</dtx>
+ package for jurists
+]
+%</dtx|(package&identify)>
+%<*dtx>
+\ifx\documentclass\undefined
+%</dtx>
+%<*ins>
+ \input docstrip.tex
+ \generate{\usepreamble\defaultpreamble
+% \file{contract.ins}{%
+% \from{contract.dtx}{ins}%
+% }%
+ \file{contract.sty}{%
+ \from{contract.dtx}{package,identify}%
+ \from{contract.dtx}{package,init}%
+ \from{contract.dtx}{package,options}%
+ \from{contract.dtx}{package,postoptions}%
+ \from{contract.dtx}{package,body}%
+ \from{contract.dtx}{package,final}%
+ }%
+ }%
+%</ins>
+%<*dtx>
+\else
+ \let\endbatchfile\relax
+\fi
+%</dtx>
+%<*ins>
+\endbatchfile
+%</ins>
+%<*dtx>
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[ngerman,main=USenglish]{babel}
+\usepackage{hvlogos}
+\usepackage{tabularx}
+\usepackage{graphicx}
+
+% Note: The scrguide-… packages may currently not be available in any TeX
+% distribution.
+\usepackage[colorize]{scrguide-listings}
+\usepackage{scrguide-doclink}
+\usepackage{scrguide-index}
+
+\usepackage{booktabs}
+\usepackage{csquotes}
+\usepackage[style=alphabetic,autolang=other]{biblatex}
+\begin{filecontents}{\jobname.bib}
+@online{pkg:babel,
+ author={Bezos López, Javier and Braams, Johannes L.},
+ version={24.1},
+ date={2024-01-07},
+ title={\pkg*{babel} --- Multilingual support for \LaTeX, Lua\LaTeX,
+ \XeLaTeX{} and Plain \TeX},
+ url={https://ctan.org/pkg/babel},
+ urldate={2024-01-08},
+ note={This package manages culturally-determined typographical (and other)
+ rules for a wide range of languages. A document may select a single
+ language to be supported, or it may select several, in which case the
+ document may switch from one language to another in a variety of ways.
+
+ Babel uses contributed configuration files that provide the detail of
+ what has to be done for each language, as well as \file{.ini} files
+ for about 300 languages from around the World, including many written
+ in non-Latin and RTL scripts. Many of them work with pdf\LaTeX, as
+ well as with \XeLaTeX{} and Lua\LaTeX, out of the box. A few even
+ work with plain formats.},
+}
+@online{pkg:koma-script,
+ author={Markus Kohm},
+ version={3.41},
+ date={2023-07-07},
+ title={{\KOMAScript} --- A bundle of versatile classes and packages},
+ url={https://ctan.org/pkg/koma-script},
+ urldate={2023-07-14},
+ note={The \KOMAScript{} bundle provides replacements for the \cls*{article},
+ \cls*{report}, and \cls*{book} classes with emphasis on typography and
+ versatility. There is also a letter class.},
+}
+@manual{pkg:koma-script:manual:de,
+ langid={ngerman},
+ author={Markus Kohm},
+ date={2023-06-16},
+ title={{\KOMAScript}},
+ subtitle={Die Anleitung},
+ url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-de.pdf}
+,
+ urldate={2023-07-04},
+}
+@manual{pkg:koma-script:manual:en,
+ author={Markus Kohm},
+ date={2023-06-16},
+ title={{\KOMAScript}},
+ subtitle={The Guide},
+ url={http://mirrors.ctan.org/macros/latex/contrib/koma-script/scrguide-en.pdf},
+ urldate={2023-07-14},
+}
+@book{bk:koma-script,
+ langid ={ngerman},
+ author ={Kohm, Markus},
+ title ={{\KOMAScript}},
+ subtitle ={Eine Sammlung von Klassen und Paketen für {\LaTeXe}},
+ year =2020,
+ edition =7,
+ publisher={Lehmanns Media},
+ address ={Berlin},
+ series ={Edition DANTE},
+ isbn ={978-3-96543-097-6},
+ note ={Print-Ausgabe},
+}
+@book{ebk:koma-script,
+ langid ={ngerman},
+ author ={Kohm, Markus},
+ title ={{\KOMAScript}},
+ subtitle ={Eine Sammlung von Klassen und Paketen für {\LaTeXe}},
+ year =2020,
+ edition =7,
+ publisher={Lehmanns Media},
+ address ={Berlin},
+ series ={Edition DANTE},
+ isbn ={978-3-96543-103-4},
+ note ={eBook-Ausgabe},
+}
+\@online{pkg:parskip,
+ author ={Frank Mittelbach and Robin Fairbairns and H. Partl},
+ version ={2.0h},
+ date ={2021-03-14},
+ title ={\pkg*{parskip} --- Layout with zero \len{parindent}, non-zero \len{parskip}},
+ url ={https://www.ctan.org/pkg/parskip},
+ urldate ={2024-01-19},
+ note ={Simply changing \len{parskip} and \len{parindent} leaves a
+ layout that is untidy; this package (though it is no
+ substitute for a properly-designed class) helps alleviate this
+ untidiness.},
+}
+@manual{pkg:parskip:manual,
+ author ={Frank Mittelbach},
+ title ={The \pkg*{parskip} package},
+ date ={2021-03-14},
+ abstract ={The \pkg*{parskip} package helps in implementing paragraph
+ layouts where the paragraphs are separated by a vertical space
+ instead of (or in addition to) indenting them.
+
+ The package can be used with any document class at any size.
+ By default it produces the following paragraph layout: Zero
+ \len{parindent} and non-zero \len{parskip}. The stretchable
+ glue in \len{parskip} helps \LaTeX{} in finding the best place
+ for page breaks},
+ url ={http://mirrors.ctan.org/macros/latex/contrib/parskip/parskip.pdf},
+ urldate ={2024-01-19},
+}
+\end{filecontents}
+\addbibresource{\jobname.bib}
+\setcounter{StandardModuleDepth}{2}
+\setcounter{IndexColumns}{2}
+\setcounter{GlossaryColumns}{2}
+\providecommand*\targ[1]{\texttt{\char`\{#1\char`\}}}
+\providecommand*\toarg[1]{\texttt{[#1]}}
+\newenvironment{syntax}{%
+ \list{}{%
+ \listparindent -\leftmargin
+ \rightmargin \leftmargin
+ \leftmargin 2\leftmargin
+ \itemindent \listparindent
+ \parsep 0pt plus 1pt
+ }%
+ \def\obeyedlinedline{\item\relax}%
+ \obeylines
+ \obeyedlinedline
+ \MacroFont
+}{%
+ \endlist
+}
+\makeatletter
+\newenvironment{desctabular}{%
+ \renewcommand*{\arraystretch}{1.25}%
+ \newcommand{\entry}[2]{%
+ \l@addto@macro\desctab@content{%
+ \relax
+ \renewcommand*\arraystretch{1}\begin{tabular}[t]{@{}l@{}}##1\end{tabular}
+ & ##2\tabularnewline
+ }%
+ }
+ \newcommand\desctab@content{\begin{tabularx}{\linewidth}{@{}lX@{}}\toprule}%
+}{%
+ \desctab@content
+ \bottomrule
+ \end{tabularx}
+}
+\makeatother
+\newenvironment{desclist}{%
+ \newcommand*{\desccaption}[2]{%
+ \par
+ \vspace{5\baselineskip}\pagebreak[2]\vspace{-5\baselineskip}\nopagebreak
+ \captionof{table}{##1}\nopagebreak
+ \begin{desctabular}
+ }%
+}{%
+ \end{desctabular}
+}
+\newenvironment{Example}{%
+ \lstset{belowskip=0pt plus 1pt minus .5pt}%
+ \labeling{{\usekomafont{disposition}\Examplename:}}
+ \item[{\usekomafont{disposition}\Examplename:}]%
+}{%
+ \endlabeling
+}
+\newcaptionname{USenglish}{\Examplename}{Example}
+
+\DeclareTOCStyleEntry[dynnumwidth,dynindent]{section}{section}
+\DeclareTOCStyleEntries[dynnumwidth,dynindent]{subsection}
+ {subsection,subsubsection}
+
+\DeclareLinkFallback{Counter}{tocdepth}
+ {https://en.wikibooks.org/wiki/LaTeX/Tables_of_Contents_and_Lists_of_Figures}
+\DeclareLinkFallback{Macro}{arabic}
+ {https://en.wikibooks.org/wiki/LaTeX/Counters#Counter_style}
+\DeclareLinkFallback{Macro}{begin}
+ {https://en.wikibooks.org/wiki/LaTeX/Basics#LaTeX_environments}
+\DeclareLinkFallback{Macro}{bfseries}
+ {https://en.wikibooks.org/wiki/LaTeX/Fonts#Font_styles}
+\DeclareLinkFallback{Macro}{end}
+ {https://en.wikibooks.org/wiki/LaTeX/Basics#LaTeX_environments}
+\DeclareLinkFallback{Macro}{refstepcounter}
+ {https://en.wikibooks.org/wiki/LaTeX/Counters#Counter_manipulation}
+\DeclareLinkFallback{Macro}{sffamily}
+ {https://en.wikibooks.org/wiki/LaTeX/Fonts#Font_styles}
+
+\DeclareLinkFallback{Macro}{newcommand}
+ {https://mirrors.ctan.org/macros/latex/base/usrguide-historic.pdf#subsection.3.4}
+\DeclareLinkFallback{Macro}{renewcommand}
+ {https://mirrors.ctan.org/macros/latex/base/usrguide-historic.pdf#subsection.3.4}
+
+\DeclareLinkFallback{Macro}{defineshorthand}
+ {http://mirrors.ctan.org/macros/latex/required/babel/base/babel.pdf#subsection.1.10}
+\DeclareLinkFallback{Macro}{useshorthands}
+ {http://mirrors.ctan.org/macros/latex/required/babel/base/babel.pdf#subsection.1.10}
+
+\DeclareLinkFallback{Macro}{setkeys}
+ {https://mirrors.ctan.org/macros/latex/required/graphics/keyval.pdf#section.3}
+
+\DeclareLinkFallback{Macro}{documentclass}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#12}
+\DeclareLinkFallback{Macro}{dots}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#a7}
+\DeclareLinkFallback{Macro}{label}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2b}
+\DeclareLinkFallback{Macro}{large}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#b3}
+\DeclareLinkFallback{Macro}{pageref}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2b}
+\DeclareLinkFallback{Macro}{paragraph}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2a}
+\DeclareLinkFallback{Macro}{ref}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2b}
+\DeclareLinkFallback{Macro}{section}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2a}
+\DeclareLinkFallback{Macro}{subparagraph}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#2a}
+\DeclareLinkFallback{Macro}{usepackage}
+ {http://mirrors.ctan.org/info/lshort/english/lshort.pdf#13}
+
+\DeclareLinkFallback{Macro}{addsec}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls.cmd.addsec}
+\DeclareLinkFallback{Macro}{markboth}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls.cmd.markboth}
+\DeclareLinkFallback{Macro}{markright}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls.cmd.markright}
+
+\DeclareLinkFallback{Macro}{newkomafont}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls-experts.cmd.newkomafont}
+
+\DeclareLinkFallback{Macro}{providecaptionname}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrbase.cmd.providecaptionname}
+
+\DeclareLinkFallback{Macro}{KOMAoption}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.KOMAoption}
+\DeclareLinkFallback{Macro}{KOMAoptions}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.KOMAoptions}
+\DeclareLinkFallback{Macro}{addtokomafont}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.addtokomafont}
+\DeclareLinkFallback{Macro}{setkomafont}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.setkomafont}
+\DeclareLinkFallback{Macro}{usekomafont}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:scrextend.cmd.usekomafont}
+\DeclareLinkFallback{Macro}{usekomafont}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:maincls-experts.cmd.newkomafont}
+
+\DeclareLinkFallback{Macro}{DeclareTOCStyleEntry}
+ {http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide-en.pdf#desc:tocbasic.cmd.DeclareTOCStyleEntry}
+\begin{document}
+ \nocite{pkg:koma-script}
+ \DocInput{contract.dtx}
+\end{document}
+%</dtx>
+% \fi
+%
+% \changes{v0.0.1}{2023-10-10}{new \KOMAScript{} spin-off}
+% \changes{v0.9}{2024-02-02}{first release as standalone package}
+%
+% \GetFileInfo{contract.dtx}
+% \title{\LaTeX{} Package \pkg*{contract}\thanks{%
+% The repository of this package can be found at
+% \url{https://github.com/komascript/latex-contract} where you also should
+% report issues.%^^A
+% }%^^A
+% }
+% \date{Version \fileversion{} of \filedate}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \maketitle
+% \begin{abstract}
+% The \pkg*{contract} package is intended for cautelar jurisprudence. It is
+% intended to provide flexible help for lawyers and notaries in drafting
+% contracts, statutes and legal commentaries. It has been developed in
+% cooperation with Dr~Alexander Willand, and is still in the process of
+% development.
+%
+% Package \pkg*{contract} is a
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} spin-off. It has
+% been released from 2011 till 2023 as \pkg*{scrjura}. With
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} 3.42
+% \pkg*{scrjura} is removed from
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} and released as
+% new package \pkg*{contract}.
+% \end{abstract}
+%
+% \tableofcontents
+% \listoftables
+% \listoffigures
+%
+% \addpart{User Manual}
+%
+% If you want to write a contract\Index{contract}, the articles of association
+% for a company or an association, a law, or a legal commentary, the package
+% \pkg*{contract} will provide typographical support. Although \pkg*{contract}
+% is intended to provide general help for legal documents, the contract is the
+% central element of the package. Particular attention is paid to
+% clauses\Index{clause}, titles, and numbered provisions\,---\,if there are
+% several of them in a clause\,---, numbered sentences, entries in the table
+% of contents, and cross references according to German standards.
+%
+% The package has been developed in cooperation with Dr Alexander Willand of
+% Karls\-ruhe. Many of its features go back to constructive inquiries from
+% Prof Heiner Richter of the Hochschule Stralsund University of Applied
+% Sciences.
+%
+% Some of you may search for the German user manual formally available in
+% \cite{pkg:koma-script:manual:de}. The author's acute overload has resulted
+% in this no longer being freely available. However, the corresponding chapter
+% in \cite{bk:koma-script} and \cite{ebk:koma-script} is still accessible and
+% applicable with appropriate adjustments to the package name.
+%
+%
+% \section{Package Loading and Option Setting}
+%
+% You can load the package as common using:
+% \begin{syntax}
+% \cs{usepackage}\oarg{options}|{contract}|\quad.
+% \end{syntax}
+% In case of package \pkg*{contract} the \meta{options} are
+% \meta{key}|=|\meta{value} options.
+% \begin{description}
+% \item[Note:] In case of using package \pkg*{contract} with package
+% \pkg{hyperref} you should load \pkg{hyperref} always after
+% \pkg*{contract}.
+% \end{description}
+%
+% \DescribeCommand\contractSetup
+% To change options after loading the package, you should use:
+% \begin{syntax}
+% \cs{contractSetup}\marg{options}
+% \end{syntax}
+% with \meta{options} is a comma separated list of \meta{key}=\meta{value}
+% options as explained before.
+% \begin{description}
+% \item[Note:] Currently the options are still implemented using the internal
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} package
+% \href{https://www.ctan.org/pkg/koma-script}{\pkg*{scrkbase}}. Therefore
+% you could also setup \meta{options} using the
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} commands
+% \cs{KOMAoptions} or \cs{KOMAoption}, which are described in
+% \cite{pkg:koma-script:manual:en}. Moreover, because of the implementation,
+% currently \cs{contractSetup} could also be used to setup other
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} options not
+% related to package \pkg*{contract}. However, you should avoid this,
+% because it will fail, when the implementation will be changed.
+% \end{description}
+%
+% \section{Changing the Fonts of Elements}
+% \label{sec:textmarkup}
+%
+% Currently package \pkg*{contract} still uses the font selection features of
+% the internal \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
+% package \pkg{scrkbase}. So the commands \cs{setkomafont},
+% \cs{addtokomafont}, and \cs{usekomafont}, which are described in
+% \cite{pkg:koma-script:manual:en}, can be used to change the fonts of the
+% following elements:
+% \begin{description}\setkomafont{descriptionlabel}{}
+% \item[{\fnt{Clause}:}] \hfill\\
+% Alias for \fnt{\meta{environment}.Clause} within any contract environment,
+% e.\,g., \fnt{contract.Clause} within environment \env{contract}. If no
+% corresponding element is defined, \fnt{contract.Clause} is used.
+% \item[{\fnt{contract.Clause}:}]
+% \hfill\mbox{(Default: \cs{sffamily}\cs{bfseries}\cs{large})}\\
+% The heading of a \cs{Clause} within the environment \env{contract}.
+% \item[{\fnt{\meta{environment}.Clause}:}]
+% \hfill\mbox{(Default: \emph{none})}\\
+% The heading of a \cs{Clause} within environment \meta{environment}, which
+% has been defined using \cs{DeclareNewJuraEnvironment}, if the font has
+% been setup using property |ClauseFont| or the element has been defined
+% explicitly.
+% \item[{\fnt{parnumber}:}]
+% \hfill\mbox{(Default: \emph{empty})}\\
+% The paragraph number within a contract environment.
+% \item[{\fnt{sentencenumber}:}]
+% \hfill\mbox{(Default: \emph{empty})}\\
+% The sentence number printed by \cs{Sentence}.
+% \end{description}
+%
+% \begin{description}
+% \item[Note:] There are plans to no longer use package \pkg*{scrkbase}, but
+% maybe package \pkg{scrextend} instead, if \pkg*{scrjura} is used with a
+% non-\KOMAScript{} class. So the commands \cs{setkomafont},
+% \cs{addtokomafont} and \cs{usekomafont} would still be available in
+% future.
+% \end{description}
+%
+% \section{Clauses in the Table of Contents}
+% \label{sec:toc}
+%
+% The headings of clauses can also be added automatically to the table of
+% contents, if desired. For this the package uses command
+% \cs{DeclareTOCStyleEntry} of
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} package
+% \pkg{tocbasic} to define an entry level named |cpar|. Usage of package
+% \pkg{tocbasic} also means, that you should not use another package to
+% configure the Table of Contents, e.g., \pkg{tocloft}, \pkg{tocstyle} etc.
+%
+% \DescribeOption{juratotoc}
+% \SpecialOptionIndex{juratotoc\quotechar=\meta{boolean}}
+% \SpecialOptionIndex{juratotoc\quotechar=\meta{integer}}
+% Clauses\Index{clause} are shown in the table of contents only if their
+% level number is less than or equal to the
+% \cnt{tocdepth} counter. By default, the level
+% number is \len{maxdimen}, which is also used if the option is switched
+% off using \opt[element=juratotoc]{juratotoc=false}. Because the
+% \cnt{tocdepth} counter usually has a one-digit value,
+% clause entries are therefore not normally displayed in the table of contents.
+%
+% If you switch on the option using the
+% \opt[element=juratotoc]{juratotoc=true}, the level number 2 is used so that
+% clauses are shown in the table of contents on the same level as
+% subsections. For the default setting of \cnt{tocdepth}, clauses are then
+% shown in all \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
+% classes or standard classes.
+%
+% You can also use \opt[element=juratotoc]{juratotoc=\meta{integer}} to use
+% \meta{integer} instead of \len{maxdimen} or 2 as level number.
+%
+% Internally usage of this option results in a call of
+% \begin{syntax}
+% \cs{DeclareTOCStyleEntry}\toarg{level=\meta{integer}}\targ{default}\targ{cpar}
+% \end{syntax}
+% respectively
+% \begin{syntax}
+% \cs{DeclareTOCStyleEntry}\toarg{level=2}\targ{default}\targ{cpar}
+% \end{syntax}
+% respectively
+% \begin{syntax}
+% \cs{DeclareTOCStyleEntry}\toarg{level=\cs{maxdimen}}\targ{default}\targ{cpar}\quad.
+% \end{syntax}
+%
+% \DescribeOption[noindex]{juratocindent}
+% \SpecialOptionIndex{juratocindent\quotechar=\meta{length}}
+% \DescribeOption[noindex]{juratocnumberwidth}
+% \SpecialOptionIndex{juratocnumberwidth\quotechar=\meta{length}}
+% These options determine the indentation and spacing for clause entries in
+% the table of contents. Any valid \meta{length} can be assigned. The defaults
+% are the same as for subsection entries in \cls{scrartcl}.
+%
+% Internally, usage of these options results in calls to:
+% \begin{syntax}
+% \cs{DeclareTOCStyleEntry}\toarg{indent=\meta{length}}\targ{default}\targ{cpar}
+% \end{syntax}
+% respective
+% \begin{syntax}
+% \cs{DeclareTOCStyleEntry}\toarg{numwidth=\meta{length}}\targ{default}\targ{cpar}\quad.
+% \end{syntax}
+%
+% \section{Environment for Contracts}
+% \label{sec:contract}
+%
+% The essential mechanisms of package \pkg*{contract} are available only
+% inside contract environments, either the predefined \env{contract} or any
+% other environment defined with command \cs{DeclareNewJuraEnvironment}.
+%
+% \DescribeEnv{contract}^^A
+% Currently, this is the one and only predefined environment for
+% \pkg*{contract}. Using it activates automatic numbering of paragraphs and
+% the \cs{Clause} and \cs{SubClause} commands, which will be documented below,
+% are given concrete form.
+%
+% The \env{contract} environment must
+% not be nested within itself. Within a document, however, you can use the
+% environment several times. The clauses within these environments are treated
+% as if they were within a single environment. As a result, ending the
+% environment really only temporarily interrupts it, and the old environment is
+% continued by the beginning of a new environment. However, you cannot end the
+% environment within a clause. If you want instead print several contracts,
+% you would need to define several contract environments using command
+% \cs{DeclareNewJuraEnvironment}.
+%
+% \DescribeOption{contract}
+% The whole document becomes a contract\Index{contract} if you use this option
+% while loading the package with:
+% \begin{syntax}
+% \cs{usepackage}\toarg{\opt{contract}}\targ{contract}
+% \end{syntax}
+% or as a global option with \cs{documentclass}. The document then behaves
+% exactly as if it would contain one \env{contract} environment.
+%
+%
+% \subsection{Clauses}
+% \label{sec:clause}
+%
+% Clauses^^A
+% \Index[see{clause}]{section}^^A
+% \Index[see{clause}]{paragraph}^^A
+% \Index[indexmain]{clause}^^A
+% \footnote{%^^A
+% In English, a ``clause'' in a legal document is a section, paragraph, or
+% phrase that relates to a particular point. Although it is common in English
+% to also use the terms ``article'' or ``section'' for what we here call a
+% ``clause'', we use the latter term throughout to avoid confusion with the
+% \cls{article} class and the \cs{section} and
+% \cs{paragraph} sectioning divisions of most document
+% classes.} in a legal sense are defined in package \pkg*{contract} only
+% within contracts\Index{contract}, that is inside the
+% \env{contract} environment or other environments declared
+% with \cs{DeclareNewJuraEnvironment}.
+%
+% \DescribeCommand{\Clause}
+% \DescribeCommand{\SubClause}
+% Each clause starts either with \cs{Clause}\oarg{property list} or
+% \cs{SubClause}\oarg{property list}. The optional argument \meta{property
+% list} is a comma separated list of \meta{key}|=|\meta{value}.
+%
+% These are the most important commands inside of a contract. Without using
+% any additional \meta{key}, \cs{Clause} creates the heading of a clause,
+% which consists of the sign ``\S'', followed by its number. In contrast,
+% \cs{SubClause} creates the heading of a clause with the last number used by
+% \cs{Clause} and adds a lower-case letter. \cs{SubClause} is mainly intended
+% for cases where an act or a contract is amended and not only are clauses
+% changed or deleted but new clauses are inserted between existing ones
+% without completely changing the numbering.
+%
+% Both commands accept a comma-separated list of \meta{key}|=|\meta{value}
+% properties and also some \meta{key}s without value. An overview
+% of the available properties is shown in \autoref{tab:Clause.options}.
+% The most important of them will be discussed in more detail.
+%
+% \begin{table}
+% \captionabove{Available properties for the optional argument of
+% \cs{Clause} and \cs{SubClause}}%^^A
+% \label{tab:Clause.options}
+% \begin{desctabular}
+% \entry{|dummy|}{%^^A
+% The heading will not be printed but is counted in the automatic
+% numbering.%^^A
+% }%^^A
+% \entry{|head=|\meta{running head}}{%^^A
+% If running heads are active, this \meta{running head} is used instead
+% of the clause \meta{title}.%^^A
+% }%^^A
+% \entry{|nohead|}{%^^A
+% The running head stays unchanged.%^^A
+% }%^^A
+% \entry{|notocentry|}{%^^A
+% Does not make an entry into the table of contents.%^^A
+% }%^^A
+% \entry{|number=|\meta{number}}{%^^A
+% Uses \meta{number} for the output of the clause number.%^^A
+% }%^^A
+% \entry{|preskip=|\meta{skip}}{%^^A
+% Changes the vertical \meta{skip} before the clause heading.%^^A
+% }%^^A
+% \entry{|postskip=|\meta{skip}}{%^^A
+% Changes the vertical \meta{skip} after the clause heading.%^^A
+% }%^^A
+% \entry{|title=|\meta{title}}{%^^A
+% The clause \meta{title} will be printed in addition to the clause
+% number. This is also used as the default for the \meta{running head}
+% and the \meta{entry} in the table of contents.%^^A
+% }%^^A
+% \entry{|tocentry=|\meta{entry}}{%^^A
+% Regardless of the clause \meta{title}, an \meta{entry} into the
+% table of contents will be made, if such entries are activated (see
+% option \opt{juratotoc}).%^^A
+% }%^^A
+% \end{desctabular}
+% \end{table}
+%
+% By default, a skip of two lines is inserted before the heading and a skip of
+% one line afterwards. You can change the size of these skips with the
+% |preskip| and |postskip| properties. The new values apply not only
+% to the current clause but from the current clause until the end of the
+% current contract environment. You can also make the appropriate settings in
+% advance with
+% \begin{syntax}
+% \cs{setkeys}\targ{\env{contract}}%^^A
+% \targ{preskip=\meta{skip},postskip=\meta{skip}}
+% \end{syntax}
+% regardless of the specific clause and outside of a contract environment. You
+% can also set these options inside the preamble after loading
+% \pkg*{contract}, but you cannot set them while loading the package or by
+% using \cs{contractSetup}.
+%
+% By default, clause headings use the font style
+% \cs{sffamily}\cs{bfseries}\cs{large}. See \autoref{sec:textmarkup} for
+% information about how to change the font for element \fnt{contract.Clause}.
+%
+% With the |title|, |head|, and |tocentry| property, you can title a clause in
+% addition to the number. You should enclose the \meta{value} of each property
+% inside curly brackets. Otherwise, for example, commas which are meant to be
+% part of the \meta{value} will be confused with the delimiters between
+% different properties of the \meta{property list}. Empty values for |head|
+% and |tocentry| cause empty entries. If you want to avoid an entry, use the
+% |nohead| resp. |notocentry| property.
+%
+% Instead of consecutive numbers, you can also set a clause number manually
+% with the |number| property. However, this does not affect the numbers of
+% the subsequent clauses. Empty numbers are not possible. Fragile commands
+% inside |number| have to be protected with \cs{protect}. You should use
+% only numbers and letters as a |number|.
+%
+% With the |dummy| property, you can suppress the output of the whole heading
+% of a clause. The automatic numbering, however, will still count this
+% clause. In this way, you can skip an automatically numbered clause with
+%\begin{syntax}
+% \cs{Clause}\toarg{dummy}
+%\end{syntax}
+% in case the clause corresponding clause has been deleted in a later version
+% of a contract.
+%
+% Note that the |dummy| property only accepts the \meta{value}s |true| and
+% |false|. All other \meta{value}s are usually ignored, but can lead to an
+% error message in the worst case scenario.
+%
+% \DescribeCommand{\Clauseformat}
+% As already mentioned, clauses and subclauses are normally numbered. The
+% number is formatted with the help of the \cs{Clauseformat} command, which
+% expects the \meta{number} as the only argument. The default is the
+% following:
+%\begin{syntax}
+% \cs{newcommand*}\targ{\cs{Clauseformat}}\toarg{1}\targ{\cs{S}~\#1}
+%\end{syntax}
+% This produces the section mark, \cs{S} (\S), followed by a non-breaking
+% space and the number. If you redefine this command, be sure it remains
+% expandable.
+%
+% \DescribeOption{juratitlepagebreak}^^A
+% \SpecialOptionIndex{juratitlepagebreak\quotechar=\meta{boolean}}^^A
+% Usually, page breaks are prohibited within heading of all kinds. However,
+% some lawyers require page breaks within clause headings. You can allow such
+% a break by using option \opt{juratitlepagebreak} or
+% \opt[element=juratitlepagebreak]{juratitlepagebreak=\meta{boolean}}. Boolean
+% values of \texttt{true} or \texttt{false} can be used to toggle the option
+% on or off. Using the option without a value is the same as using
+% \texttt{true}. The option can be used as an optional argument of
+% \cs{documentclass}, \cs{usepackage} when loading package \pkg*{contract}, or
+% as an argument of \cs{contractSetup}.
+%
+% \DescribeOption[noindex]{clausemark}
+% \SpecialOptionIndex{clausemark\quotechar=\meta{value}}
+% Since clauses are a subordinate structure with independent numbering, they
+% do not produce running heads by default. You can, however, create running
+% heads with various settings using:
+% \begin{syntax}
+% \opt{clausemark}=\meta{value}
+% \end{syntax}
+% as an optional argument of \cs{documentclass}, \cs{usepackage} when loading
+% package \pkg*{contract}, or as an argument of \cs{contractSetup}. You can
+% find the available \meta{value}s and their meanings in
+% \autoref{tab:clausemark}.
+% \begin{table}
+% \captionabove{Available values for the \opt{clausemark} option to
+% activate running heads}%^^A
+% \label{tab:clausemark}%^^A
+% \begin{desctabular}
+% \entry{\optvalue{both}}{%^^A
+% Clauses generate left and right marks for running heads, if the
+% document provides automatic running heads.%^^A
+% \SpecialOptionIndex{clausemark\quotechar=both}%^^A
+% }%^^A
+% \entry{\optvalue{false}, \optvalue{off}, \optvalue{no}}{%^^A
+% Clauses do not generate marks for running heads and therefore do not
+% change running heads.%^^A
+% \SpecialOptionIndex{clausemark\quotechar=false}%^^A
+% }%^^A
+% \entry{\optvalue{forceboth}}{%^^A
+% Clauses use \cs{markboth} to generate left and right
+% marks for running heads even if the document does not provide
+% automatic running heads for the current page style.%^^A
+% \SpecialOptionIndex{clausemark\quotechar=forceboth}%^^A
+% }%^^A
+% \entry{\optvalue{forceright}}{%^^A
+% Clauses use \cs{markright} to generate right marks for
+% running heads even if the document does not provide automatic running
+% heads for the current page style.%^^A
+% \SpecialOptionIndex{clausemark\quotechar=forceright}%^^A
+% }%^^A
+% \entry{\optvalue{right}}{%^^A
+% Clauses generate right marks for running heads, if the document
+% provides automatic running heads.%^^A
+% \SpecialOptionIndex{clausemark\quotechar=right}%^^A
+% }%^^A
+% \end{desctabular}
+% \end{table}
+%^^A
+%
+%
+% \subsection{Paragraphs}
+% \label{sec:par}
+% \Index{paragraph>numbering}%^^A
+% Within clauses, \pkg*{contract} usually numbers paragraphs automatically.
+% With this, the paragraphs provide a powerful structuring element, similar to
+% \cs{paragraph} or \cs{subparagraph} in
+% normal documents. For this reason, contracts usually use a vertical skip
+% between paragraphs. The \pkg*{contract} package does not provide its own
+% mechanism for this. Instead, you should uses the
+% \opt{parskip}\SpecialOptionIndex{parskip} option of the
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
+% classes. If you do not use a
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} class, see the
+% documentation of the used class or package \pkg{parskip}
+% \nocite{pkg:parskip}\cite{pkg:parskip:manual}.
+%
+%
+% \DescribeOption{parnumber}
+% \SpecialOptionIndex{parnumber\quotechar=\meta{value}}
+% The option can be used as an optional argument of \cs{documentclass},
+% \cs{usepackage} when loading package \pkg*{contract}, or as an argument of
+% \cs{contractSetup}.
+%
+% The default numbering of paragraphs is
+% \opt[element=parnumber]{parnumber=auto}\SpecialOptionIndex{parnumber\quotechar=auto}
+% and
+% \opt[element=parnumber]{parnumber=true}\SpecialOptionIndex{parnumber\quotechar=true}. Sometimes
+% you may need to disable the automatic numbering. You can do this with
+% \opt[element=parnumber]{parnumber=false}\SpecialOptionIndex{parnumber\quotechar=false}.
+% In this case, only the sentence numbering is reset.
+%
+% To implement this option, it has been necessary to hook into the
+% paragraph-building mechanism of \LaTeX. In some rare cases, this can have a
+% negative effect. If so, you can undo the change with
+% \opt[element=parnumber]{parnumber=manual}\SpecialOptionIndex{parnumber\quotechar=manual}.
+% On the other hand, \LaTeX{} itself sometimes undoes the change. In those
+% cases you can activate it again with
+% \opt[element=parnumber]{parnumber=auto}\SpecialOptionIndex{parnumber\quotechar=auto}.
+%
+% Clauses that consist of a single paragraph do not automatically receive a
+% paragraph number. For this to work, there must not be two clauses with an
+% identical number in a document. However should you ever need such numbering,
+% you should switch to another contract environment (see
+% \cs{DeclareNewJuraEnvironment}). Note that the number of
+% paragraphs in a clause is not available before the end of the
+% clause. Therefore you need a least two \LaTeX{} runs before the automatic
+% paragraph numbering is correct.
+%
+%
+% \DescribeCounter{par}
+% \DescribeCommand{\thepar}
+% \DescribeCommand{\parformat}
+% \DescribeCommand{\parformatseparation}
+% For numbering the paragraphs inside a clause we use the \cnt{par} counter.
+% The output of \cs{thepar} will display an Arabic number, because the
+% default is \cs{arabic}\targ{par}. \cs{parformat} provides the
+% format, which is \cs{thepar} in rounded brackets. When numbering a
+% paragraph manually, you should also use \cs{parformat}. It makes sense to
+% call \cs{parformat} with a subsequent \cs{parformatseparation}, or at
+% least a \cs{nobreakspace} or tilde.
+%
+% With automatic numbering, \cs{parformat} is followed by
+% \cs{parformatseparation}, which currently consists of
+% \cs{nonbreakspace}, the non-breakable space.
+%
+% The paragraph number is usually printed using the currently active font.
+% See \autoref{sec:textmarkup} for information how to change the font of the
+% \fnt{parnumber} element.
+%
+% \begin{description}
+% \item{Note:} \pkg*{contract} currently assumes internally that
+% \cs{thepar} is an Arabic number. Therefore you should definitely not
+% redefine it!
+% \end{description}
+%
+%
+% \DescribeCommand{\withoutparnumber}
+% If the paragraph number is not printed, \pkg*{contract} executes the
+% \cs{withoutparnumber} command at the beginning of the new paragraph. The
+% initial definition of this command is empty. This means it is a kind of
+% dummy command that does nothing. It has been implemented because of a user
+% request. Most users can ignore this command.
+%
+%
+% \DescribeCommand{\ellipsispar}
+% \DescribeCommand{\parellipsis}
+% Sometimes\,---\,particularly in comparative commentaries\,---\,it is
+% desirable to omit paragraphs but to mark the omission. Those omitted
+% paragraphs\Index{paragraph>omission} should be taken into account by the
+% paragraph counter. The package \pkg*{contract} provides the command
+% \cs{ellipsispar} to do this.
+%
+% By default, \cs{ellipsispar} omits precisely one paragraph. Using the
+% optional argument of
+% \begin{syntax}
+% \cs{ellipsispar}\oarg{number}
+% \end{syntax}
+% you can omit multiple paragraphs. In any case, the output shows just one
+% unnumbered paragraph, which consists only of the ellipsis defined by
+% \cs{parellipsis}. The automatic numbering of paragraphs takes the
+% \meta{number} of omitted paragraphs into account.
+% \begin{Example}
+% Suppose you are writing a comment on the German\footnote{Please remember,
+% this translation does not refer to an existing law but is only an example
+% of how you might realise such a commentary with \pkg*{contract}.} penal
+% code, but only on paragraph 3 of \S~2. Nevertheless, you'd like to
+% indicate the omission indirectly. You can do this with:
+%\begin{lstcode}[gobble=1]
+% \documentclass[parskip=half]{scrartcl}
+% \usepackage{contract}
+% \begin{document}
+% \begin{contract}
+% \Clause{title={Temporal application},number=2}
+% \ellipsispar[2]
+%
+% If the law that applies at the time the criminal act is
+% committed is changed before the verdict, then the most
+% lenient law shall be applicable.
+%
+% \ellipsispar[3]
+% \end{contract}
+% \end{document}
+%\end{lstcode}
+% To see the result, just give it a try.
+% \end{Example}
+%
+% The ellipsis is by default \cs{textellipsis}, if such a command is
+% defined. If not, \cs{dots} is used. You can redefine \cs{parellipsis} at any
+% time with \cs{renewcommand}.
+%
+%
+% \subsection{Sentences}
+% \label{sec:sentence}
+%
+% \Index{sentence>number}%^^A
+% Paragraphs in contracts consist of one or more sentences, some of which may
+% also be numbered. However, as automatic numbering is cumbersome and
+% error-prone, it has not yet been implemented in
+% \pkg*{contract}. Semi-automatic numbering, however, is supported.
+%
+% \DescribeCounter{sentence}
+% \DescribeCommand{\thesentence}
+% \DescribeCommand{\sentencenumberformat}
+% \DescribeCommand{\Sentence}
+% Manual numbering of sentences is done with the \cs{Sentence} command. It
+% adds one to the \cnt{sentence} counter. By default,
+% \cs{sentencenumberformat} prints \cs{thesentence} as an Arabic number in
+% superscript.
+%
+% The sentence number is usually printed using the currently active font.
+% See \autoref{sec:textmarkup} for information how to change the font of the
+% \fnt{sentencenumber} element.
+%
+% Using \pkg{babel} offers an easy way to define a shorthand for
+% \cs{Sentence}:%^^A
+% \phantomsection\label{sec:shorthandexample}%^^A
+%\begin{lstcode}[moretexcs={useshorthands,defineshorthand},gobble=1]
+% \useshorthands{'}
+% \defineshorthand{'S}{\Sentence\ignorespaces}
+%\end{lstcode}
+% With this definition, any space after \lstinline|'S| will be ignored. You
+% can even use the dot as an abbreviation for a dot and a new sentence number:
+%\begin{lstcode}[moretexcs={useshorthands,defineshorthand},gobble=1]
+% \defineshorthand{'.}{. \Sentence\ignorespaces}
+%\end{lstcode}
+% For details regarding \cs{useshorthands} and \cs{defineshorthand},
+% please consult the manual of the \pkg{babel} package (see
+% \cite{pkg:babel}). You can find an example of their application in
+% \autoref{sec:example}, \autopageref{sec:example}.%^^A
+%
+%
+% \section{Cross References}
+% \label{sec:ref}
+%
+% The conventional mechanism to set cross references using \cs{label},
+% \cs{ref}, and \cs{pageref} does not suffice for clauses, paragraphs, and
+% sentences. Therefore \pkg*{contract} provides additional commands.
+%
+% \DescribeCommand{\ref}
+% \DescribeCommand{\refL}
+% \DescribeCommand{\refS}
+% \DescribeCommand{\refN}
+% The commands
+% \begin{syntax}
+% \cs{ref}\marg{label}
+% \cs{refL}\marg{label}
+% \cs{refS}\marg{label}
+% \cs{refN}\marg{label}
+% \end{syntax}
+% give a full reference to clause, paragraph and sentence. \cs{refL} is a long
+% text, \cs{refS} a short text, and \cs{refN} an abbreviated, numeric form.
+% \cs{ref} defaults to \cs{refL}.
+%
+%
+% \DescribeCommand{\refClause}
+% \DescribeCommand{\refClauseN}
+% The commands
+% \begin{syntax}
+% \cs{refClause}\marg{label}
+% \cs{refClauseN}\marg{label}
+% \end{syntax}
+% reference a clause without displaying the paragraph or
+% sentences. \cs{refClause} puts a section mark (\S) in front of the
+% reference, while \cs{refClauseN} does not.
+%
+%
+% \DescribeCommand{\refPar}
+% \DescribeCommand{\refParL}
+% \DescribeCommand{\refParS}
+% \DescribeCommand{\refParN}
+% The commands
+% \begin{syntax}
+% \cs{refPar}\marg{label}
+% \cs{refParL}\marg{label}
+% \cs{refParS}\marg{label}
+% \cs{refParN}\oarg{number format}\marg{label}
+% \end{syntax}
+% reference a paragraph of a clause. The differences between the forms
+% correspond to the differences between \cs{refL}, \cs{refN} and \cs{refS}. A
+% feature worth noting is the optional argument of \cs{refParN}. Usually the
+% numeric reference to a paragraph uses a Roman number. You can, however,
+% specify a different \meta{number format} in the optional argument. This
+% option primarily makes sense to use Arabic numbers. By default, \cs{refPar}
+% is \cs{refParL}.
+%
+%
+% \DescribeCommand{\refSentence}
+% \DescribeCommand{\refSentenceL}
+% \DescribeCommand{\refSentenceS}
+% \DescribeCommand{\refSentenceN}
+% The commands
+% \begin{syntax}
+% \cs{refSentence}\marg{label}
+% \cs{refSentenceL}\marg{label}
+% \cs{refSentenceS}\marg{label}
+% \cs{refSentenceN}\marg{label}
+% \end{syntax}
+% reference a sentence of a paragraph. Again, there is a long text form, a
+% short text form, and a numerical form. By default, \cs{refSentence} is
+% \cs{refSentenceL}.%^^A
+%
+%
+% \DescribeOption[noindex]{ref}
+% \SpecialOptionIndex{ref\quotechar=\meta{value}}
+% The results of \cs{ref}, \cs{refPar}, and \cs{refSentence} depend on the
+% option
+% \begin{syntax}
+% \opt{ref}|=|\meta{value}
+% \end{syntax}
+% that can be used as an optional argument of \cs{documentclass},
+% \cs{usepackage} when loading package \pkg*{contract}, or as an argument of
+% \cs{contractSetup}. The default is \opt[element=ref]{ref=long} and
+% therefore \cs{refL}, \cs{refParL} and \cs{refSentenceL}. You can find the
+% available \meta{value}s for his option and their meaning in
+% \autoref{tab:ref}.%^^A
+% %^^A
+% \begin{table}
+% \captionabove[{%^^A
+% Available values for the \opt{ref} option to configure the
+% cross reference format%^^A
+% }]{%^^A
+% Available values for the \opt{ref} option to configure the
+% cross reference format of \cs{ref},
+% \cs{refPar}, and \cs{refSentence}%^^A
+% \label{tab:ref}%^^A
+% }%^^A
+% \begin{desctabular}
+% \entry{\optvalue{long}}{%^^A
+% A combination of \optvalue{parlong} and \optvalue{sentencelong}.%^^A
+% \SpecialOptionIndex{ref\quotechar=long}%^^A
+% }%^^A
+% \entry{\optvalue{numeric}}{%^^A
+% A combination of \optvalue{parnumeric} and
+% \optvalue{sentencenumeric}.%^^A
+% \SpecialOptionIndex{ref\quotechar=numeric}%^^A
+% }%^^A
+% \entry{\optvalue{clauseonly}, \optvalue{onlyclause},\\
+% \optvalue{ClauseOnly}, \optvalue{OnlyClause}}{%^^A
+% A combination of \optvalue{paroff} and \optvalue{sentenceoff}. Note
+% that \cs{refPar} and \cs{refSentence}
+% produce empty results!%^^A
+% \SpecialOptionIndex{ref\quotechar=long}%^^A
+% }%^^A
+% \entry{\optvalue{parlong}, \optvalue{longpar},\\
+% \optvalue{ParL}}{%^^A
+% Paragraphs are referenced in long textual form.%^^A
+% \SpecialOptionIndex{ref\quotechar=parlong}%^^A
+% }%^^A
+% \entry{\optvalue{parnumeric}, \optvalue{numericpar}, \optvalue{ParN}}{%^^A
+% Paragraphs are referenced in simple numerical form.%^^A
+% \SpecialOptionIndex{ref\quotechar=parnumeric}%^^A
+% }%^^A
+% \entry{\optvalue{paroff}, \optvalue{nopar}}{%^^A
+% Paragraphs have no reference. Note that \cs{refPar}
+% produces an empty result!%^^A
+% \SpecialOptionIndex{ref\quotechar=paroff}%^^A
+% }%^^A
+% \entry{\optvalue{parshort}, \optvalue{shortpar}, \optvalue{ParS}}{%^^A
+% Paragraphs are referenced in short textual form.%^^A
+% \SpecialOptionIndex{ref\quotechar=parshort}%^^A
+% }%^^A
+% \entry{\optvalue{sentencelong}, \optvalue{longsentence}, \\
+% \optvalue{SentenceL}}{%^^A
+% Sentences are referenced in long textual form.%^^A
+% \SpecialOptionIndex{ref\quotechar=parlong}%^^A
+% }%^^A
+% \entry{\optvalue{sentencenumeric}, \optvalue{numericsentence},\\
+% \optvalue{SentenceN}}{%^^A
+% Sentences are referenced in simple numeric form.%^^A
+% \SpecialOptionIndex{ref\quotechar=sentencenumeric}%^^A
+% }%^^A
+% \entry{\optvalue{sentenceoff}, \optvalue{nosentence}}{%^^A
+% Sentences have no reference. Note that
+% \cs{refSentence} produces an empty result!%^^A
+% \SpecialOptionIndex{ref\quotechar=sentenceoff}%^^A
+% }%^^A
+% \entry{\optvalue{sentenceshort}, \optvalue{shortsentence},\\
+% \optvalue{SentenceS}}{%^^A
+% Sentences are referenced in short textual form.%^^A
+% \SpecialOptionIndex{ref\quotechar=sentenceshort}%^^A
+% }%^^A
+% \entry{\optvalue{short}}{%^^A
+% A combination of \optvalue{parshort} and \optvalue{sentenceshort}.%^^A
+% \SpecialOptionIndex{ref\quotechar=value}%^^A
+% }%^^A
+% \end{desctabular}
+% \end{table}
+%
+% \begin{Example}
+% Suppose you always want to reference paragraphs in the form ``paragraph 1
+% in clause 1''. As there is no predefined command for this, you have to
+% create your own definition from the available options. You can achieve
+% this easily with:%^^A
+%\begin{lstcode}[gobble=1]
+% \newcommand*{\refParM}[1]{%
+% paragraph~\refParN[arabic]{#1}
+% in clause~\refClauseN{#1}%
+% }
+%\end{lstcode}
+% This new command can be used in the same way as
+% \cs{refParL}.%^^A
+% \end{Example}%^^A
+%
+% You can find examples of results of the basic commands\,---\,this means the
+% commands, that are independent from option \opt{ref}\,---\,in
+% \autoref{tab:refexamples}.%^^A
+% %^^A
+% \begin{table}
+% \KOMAoptions{captions=topbeside}%^^A
+% \setcapindent{0pt}%^^A
+% \begin{captionbeside}{Example outputs of the \opt{ref}-independent
+% cross reference commands}[l]
+% \begin{tabular}[t]{ll}
+% \toprule
+% Command & Example output \\
+% \midrule
+% \cs{refL}\marg{label} & \S{} 1 paragraph 1 sentence 1 \\
+% \cs{refS}\marg{label} & \S{} 1 par. 1 sent. 1 \\
+% \cs{refN}\marg{label} & \S{} 1 I 1. \\
+% \cs{refClause}\marg{label} & \S{} 1 \\
+% \cs{refClauseN}\marg{label} & 1 \\
+% \cs{refParL}\marg{label} & paragraph 1 \\
+% \cs{refParS}\marg{label} & par. 1 \\
+% \cs{refParN}\marg{label} & I \\
+% \cs{refParN}\toarg{arabic}\marg{label} & 1 \\
+% \cs{refParN}\toarg{roman}\marg{label} & i \\
+% \cs{refSentenceL}\marg{label} & sentence 1 \\
+% \cs{refSentenceS}\marg{label} & sent. 1 \\
+% \cs{refSentenceN}\marg{label} & 1. \\
+% \bottomrule
+% \end{tabular}
+% \end{captionbeside}
+% \label{tab:refexamples}
+% \end{table}
+%
+%
+% \section{Additional Contract Environments}
+% \label{sec:newenv}
+%
+% Some users do not use \pkg*{contract} to draft contracts or commentaries on
+% individual laws but to examine different types of laws, which may not
+% necessarily use the section prefix (\S) before the title of each clause but
+% perhaps something like ``Art.'' or ``IAS'', and so forth. An independent
+% counter is also required for each of these different clause types.
+%
+% \DescribeCommand{\DeclareNewJuraEnvironment}
+% You can use:
+% \begin{syntax}
+% \cs{DeclareNewJuraEnvironment}\marg{environment}\oarg{property list}\\%^^A
+% \marg{start commands}\marg{end commands}
+% \end{syntax}
+% to define new and independent environments for contracts or other legal
+% texts. The argument \meta{environment} is the name of the new environment,
+% of course. The \meta{start commands} are commands which will be executed at
+% the beginning of the environment, as if they were added directly after
+% \cs{begin}\marg{environment}. Correspondingly \meta{end commands} will be
+% executed at the end of the environment, as if added directly before
+% \cs{end}\marg{environment}. Without a \meta{property list} the new
+% environment behaves like the \env{contract} environment, but with its own
+% counters. You can use several \meta{key}|=|\meta{value} properties as a
+% comma-separated \meta{property list}. See
+% \autoref{tab:DeclareNewJuraEnvironment} for the currently supported
+% \meta{options}.
+%
+% \begin{table}
+% \captionabove{Properties provided by \cs{DeclareNewJuraEnvironment} for
+% new contract environments}\label{tab:DeclareNewJuraEnvironment}%^^A
+% \begin{desctabular}
+% \entry{|Clause=|\meta{command}}{%^^A
+% Defines the \meta{command} to which the \cs{Clause}
+% command is mapped within the environment. This \meta{command}, like the
+% one documented for \env{contract}, expects exactly one
+% argument. To use it correctly requires advanced knowledge of the
+% \pkg*{contract}'s internal functioning. Furthermore, the requirements
+% for the \meta{command} may change in future versions. Therefore it is
+% recommended not to use this option!%^^A
+% }%^^A
+% \entry{|ClauseFont=|\meta{commands}}{%^^A
+% If this property is used, a new \fnt{\meta{environment}.Clause}
+% element is defined with the
+% \meta{commands} used as its default setting. If the element was
+% previously defined as an alias, it will become an independent element
+% instead. If it has already been defined as an independent element, the
+% \meta{commands} are used as new font settings. Please note the
+% limitations for font settings in \autoref{sec:textmarkup}.%^^A
+% }%^^A
+% \entry{|SubClause=|\meta{command}}{%^^A
+% Defines the \meta{command} to which the
+% \cs{SubClause} command is mapped within the
+% environment. This \meta{command}, like the one documented for
+% \env{contract}, expects exactly one argument. To use it
+% correctly requires advanced knowledge of the \pkg*{contract}'s internal
+% functioning. Furthermore, the requirements for the \meta{command} may
+% change in future versions. Therefore it is recommended not to use this
+% property!%^^A
+% }%^^A
+% \entry{|Sentence=|\meta{command}}{%^^A
+% Defines the \meta{command} to which the \cs{Sentence}
+% is mapped within the environment. This \meta{command} must not have an
+% argument. Typically it should add one to the
+% \cnt{sentence} (using \cs{refstepcounter}) counter and display it
+% appropriately. It is particularly important to avoid adding unwanted
+% spaces.%^^A
+% }%^^A
+% \entry{|ClauseNumberFormat=|\meta{command}}{%^^A
+% Formats the numbers of clauses within the environment. The
+% \meta{command} should expect exactly one argument: the number of the
+% clause. If the \meta{command} implements a series of commands and the
+% number is the last argument of a that series, you can directly use the
+% series of commands as \meta{command}.%^^A
+% }
+% \end{desctabular}
+% \end{table}
+% \begin{Example}
+% To define the environment for articles we mentioned in the preface of this
+% section, it is sufficient to write:
+%\begin{lstcode}[gobble=1]
+% \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.~]{}{}
+%\end{lstcode}
+% If we are using a \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}
+% class and want to separate the paragraphs in this environment with space
+% instead of using paragraph indentation, we can use:
+%\begin{lstcode}[gobble=1]
+% \DeclareNewJuraEnvironment{Article}[ClauseNumberFormat=Art.~]
+% {\KOMAoptions{parskip}}{}
+%\end{lstcode}
+% In cross references, ``Art.'' will of course be used instead of ``\S''.%^^A
+%
+% The new environment is used like \env{contract}:
+%\begin{lstcode}[gobble=1]
+% \begin{Article}
+% \Clause{}
+% Human dignity is inviolable. To respect and protect people is a
+% duty of all state authority.
+% \end{Article}
+%\end{lstcode}
+% \end{Example}
+%
+%
+% \section{Support for Different Languages}
+% \label{sec:babel}
+%
+% The \pkg*{contract} package has been developed in cooperation with a German
+% lawyer. Therefore it initially supported only the languages |german|,
+% |ngerman|, |austrian|, and |naustrian|. Nevertheless, it has been designed
+% to support common language packages like \pkg{babel}. Users can easily make
+% changes by using \cs{providecaptionname}. If you have definitive information
+% about the correct legal terms and conventions of a language, please contact
+% the \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} author. Support
+% for English has been added in this way, and so \pkg*{contract} now also
+% provides terms for the languages |english|, |american|, |british|,
+% |canadian|, |USenglish|, and |UKenglish|.
+%
+% \DescribeCommand{\parname}
+% \DescribeCommand{\partshortname}
+% \DescribeCommand{\sentencename}
+% \DescribeCommand{\sentenceshortname}
+% These are the language-dependent terms used by \pkg*{contract}. The meaning
+% of the terms and their English defaults are shown in
+% \autoref{tab:captionnames}. The package itself defines them by
+% using \cs{providecaptionname} inside
+% \cs{begin}\targ{document} only if other requirements have not already
+% been met. If you use \pkg*{contract} with an unsupported language, the
+% package will throw an error.%^^A
+% %^^A
+% \begin{table}
+% \KOMAoptions{captions=topbeside}%^^A
+% \setcapindent{0pt}%^^A
+% \begin{captionbeside}
+% [{%^^A
+% Meanings and English defaults of language-dependent terms%^^A
+% }]{%^^A
+% Meanings and English defaults of language-dependent terms, if not
+% already defined%^^A
+% } [l]
+% \begin{tabular}[t]{lll}
+% \toprule
+% Command & Meaning & Default \\
+% \midrule
+% \cs{parname} & long form ``paragraph'' & paragraph \\
+% \cs{parshortname} & short form ``paragraph'' & par. \\
+% \cs{sentencename} & long form ``sentence'' & sentence \\
+% \cs{sentenceshortname} & short form ``sentence'' & sent. \\
+% \bottomrule
+% \end{tabular}
+% \end{captionbeside}
+% \label{tab:captionnames}
+% \end{table}
+%
+%
+%
+% \section{A Detailed Example}
+% \label{sec:example}
+%
+% You may remember the letter from the \cls{scrlttr2} chapter of the
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} manual
+% \cite{pkg:koma-script:manual:en}, in which a club member wanted to remind
+% the board about an overdue meeting that was prescribed by the club's
+% by-laws. Such club by-laws are a kind of contract, and you can create them
+% using \pkg*{contract}.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=1-2}]{contract-example-en.tex}%^^A
+% We use class \cls{scrartcl}. Because paragraph distance instead of paragraph
+% indentation is usual in club by-laws, we load the class with option
+% \opt[element=parskip]{parskip=half}.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=4-4}]{contract-example-en.tex}%^^A
+% The club rules are in British English. Therefore we load the \pkg{babel}
+% package with the \opt{british} option too.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange={6-6,8-8}}]{contract-example-en.tex}%^^A
+% We make some default font settings. Earlier versions of the example also
+% loaded the \pkg{textcomp} package here for an improved section mark
+% (\S). Since \LaTeX{} 2020/02/01, however, the desired functionality is
+% directly integrated in the \LaTeX{} kernel.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=11-11}]{contract-example-en.tex}%^^A
+% Later in the document, we want lists numbered not with Arabic numbers but with
+% lower-case letters. We can do this easily with the \pkg{enumerate}
+% package. Alternatively, we could have used the \pkg{enumitem} package.
+%
+% \lstinputcode[{moretexcs={useshorthands,defineshorthand},%^^A
+% xleftmargin=2em,%^^A
+% linerange=13-21}]{contract-example-en.tex}%^^A
+% Now it is time for \pkg*{contract}. The
+% \opt[element=clausemark]{clausemark=forceboth}\SpecialOptionIndex{clausemark=forceboth}
+% option forces clauses to create left and right marks for the running
+% head. On the other hand, we do not want \cs{section} to change the marks for
+% the running head. Therefore we use the \pstyle{myheadings} page style. This
+% page style generally does not provide automatic running heads.
+%
+% Later, we also want a table of contents with the clauses. This can be
+% achieved with the \opt{juratotoc} option. Doing so we will see that the
+% default width for these numbers is insufficient for the clause numbers in
+% the table of contents. With
+% \opt[element=juratocnumberwidth]{juratocnumberwidth=2.5em}\SpecialOptionIndex{juratocnumberwidth\quotechar=\meta{length}},
+% we reserve more space.
+%
+% The definition of shorthands has already been explained in
+% \autoref{sec:shorthandexample}. In this example we do the same thing
+% to simplify the input.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=23-23}]{contract-example-en.tex}%^^A
+% It is time to begin the actual document.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=25-29}]{contract-example-en.tex}%^^A
+% Like other documents, the by-laws have a title. We created it with the usual
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} commands%\iffalse
+% (see \autoref{sec:maincls.titlepage}, starting on
+% \autopageref{sec:maincls.titlepage})%\fi
+% .
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=31-31}]{contract-example-en.tex}%^^A
+% As already mentioned, we want to create a table of contents.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=33-37}]{contract-example-en.tex}%^^A
+% Preambles are not unusual in club by-laws. Here we use
+% \cs{addsec} to create one because we want it to have an entry
+% in the table of contents.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=39-39}]{contract-example-en.tex}%^^A
+% Here we use a small trick. The articles of the club by-laws should be numbered
+% with upper-case letters instead of Arabic numbers, just as
+% the appendix sections of an article using \cls{scrartcl} are.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=41-43}]{contract-example-en.tex}%^^A
+% We begin the contract with the first article.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=44-54}]{contract-example-en.tex}%^^A
+% The first clause has a number and a title. We will do the same with all
+% following clauses.
+%
+% The first paragraph of the clause contains nothing unusual. Because it is not
+% the only paragraph, every paragraph will be automatically preceded by a
+% paragraph number. Note that the numbering the first paragraph requires at
+% least two \LaTeX{} runs. Since this is the case for the table of contents as
+% well, this does not create any additional problems.
+%
+% In the second paragraph we have two sentences. Here we can see the shorthands
+% \texttt{'S} and \texttt{'.} in action. The first one only generates the
+% sentence number. The second one generates not only the full stop but also the
+% sentence number. With this, both sentences are numbered.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=55-70}]{contract-example-en.tex}%^^A
+% The second clause: again this contains several paragraphs, some of which
+% include several sentences. The second paragraph also has a numbered list. In
+% the last paragraph, we set a label, because we want to reference it later.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=72-78}]{contract-example-en.tex}%^^A
+% The third clause contains something special: a cross reference. Here we use
+% the long form with clause, paragraph, and sentence. If we decided later that
+% sentences should not be included in the reference, we could use the
+% \opt{ref=nosentence} option to set this globally.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=80-81}]{contract-example-en.tex}%^^A
+% Here we have a special kind of clause. In earlier versions of the club
+% by-laws,
+% this was a real clause, but it was later removed. However, the
+% numbering of the following clauses should not be changed by removing this
+% one. Therefore the \cs{Clause} statement has not been
+% removed but supplemented by |dummy| property. With this, we also can set
+% a label even though the clause will not be printed.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=82-86}]{contract-example-en.tex}%^^A
+% Another article begins. To avoid problems with the paragraph numbering, we
+% interrupt the \env{contract} environment.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=87-87}]{contract-example-en.tex}%^^A
+% The first clause of the next article also has been deleted.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=89-98}]{contract-example-en.tex}%^^A
+% Here we have a real clause again. We cross reference one of the deleted
+% clauses and also set a label.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=100-104}]{contract-example-en.tex}%^^A
+% Once more, this is a special kind of clause. This time we have not removed a
+% clause but added one without renumbering the following clauses. To do so,
+% we use \cs{SubClause}. Therefore the clause number is the
+% same like the previous one but with an appended ``a''.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=106-126}]{contract-example-en.tex}%^^A
+% The other clauses of this article are very usual. You already know all the
+% features used for them.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=128-141}]{contract-example-en.tex}%^^A
+% There follows another article no special features.
+%
+% \lstinputcode[{xleftmargin=2em,%^^A
+% linerange=143-143}]{contract-example-en.tex}%^^A
+% Then the \LaTeX{} document ends. You can see first three pages in
+% \autoref{fig:example}.%^^A
+% %^^A
+% \begin{figure}
+% \centering
+% \frame{\includegraphics[page=1,width=.482\textwidth,%^^A
+% height=.49\textheight,keepaspectratio]{contract-example-en}}\enskip
+% \frame{\includegraphics[page=2,width=.482\textwidth,%^^A
+% height=.49\textheight,keepaspectratio]{contract-example-en}}\par
+% \smallskip
+% \frame{\includegraphics[page=3,width=.482\textwidth,%^^A
+% height=.49\textheight,keepaspectratio]{contract-example-en}}\enskip
+% \frame{\includegraphics[page=4,width=.482\textwidth,%^^A
+% height=.49\textheight,keepaspectratio]{contract-example-en}}\par
+% \caption{The four pages of the CfCH example of
+% \protect\autoref{sec:example}}
+% \label{fig:example}
+% \end{figure}
+%
+% \section{From \pkg*{scrjura} to \pkg*{contract}}
+% \label{sec:switchpackage}
+%
+% If you have been using the \pkg*{scrjura} package and are now switching to
+% the \pkg*{contract} package, there are a few things you need to be aware of:
+% \begin{itemize}
+% \item Instead of
+% \begin{syntax}
+% \cs{usepackage}\oarg{options}\targ{scrjura}\quad,
+% \end{syntax}
+% should now use
+% \begin{syntax}
+% \cs{usepackage}\oarg{options}\targ{contract}\quad.
+% \end{syntax}
+% The same \meta{options} are allowed as the \pkg*{scrjura} package
+% understands.
+% \item Instead of using \cs{KOMAoptions} or \cs{KOMAoption} to set
+% \meta{options} for the \pkg*{contract} package, use \cs{contractSetup}.
+% \item The \cs{Clause} and \cs{SubClause} commands now have an optional
+% argument instead of a mandatory argument. This makes more sense because it
+% is allowed to use \cs{Clause} or \cs{SubClause} without an
+% argument. Instead of braces, the list of properties must be given
+% in square brackets, for example:
+%\begin{lstcode}[gobble=1]
+% \Clause[title={title of clause}]
+%\end{lstcode}
+% Therefore, even more care should be taken to ensure that the values of
+% each property are enclosed in braces. Otherwise, there may be problems not
+% only with commas, but also with square brackets in the values.
+% \item Check your code if you have used or redefined any internal macros as
+% several of them have been renamed.
+% \end{itemize}
+%
+% \section{State of Development}
+% \label{sec:draft}
+%
+% Since \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}~3.24, the
+% \pkg*{scrjura} package has shared the version number of the classes and
+% other important packages of
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}. Package
+% \pkg*{contract} on the other hand now has a new version number independent
+% from \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript}.
+%
+% Independent from the version number you should note that so far, the
+% interaction of the \env{contract} environment with the many different
+% settings possible with other \LaTeX{} environments, packages, or classes has
+% not been tested. The main reason for this is that \pkg*{contract} is very
+% specialized and far beyond the author's ordinary practice. So the author
+% mostly relies on detailed user feedback.
+%
+%
+% \MaybeStop{%
+% \printbibliography[heading=bibintoc]
+% \PrintChanges
+% \PrintIndex
+% }
+%
+% \addpart{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \changes{scrjura-v0.7b}{2014/11/11}{General renaming of ``Paragraph'' into
+% ``Clause''}
+%
+% \section{Cooperation with \pkg{hyperref}}
+%
+% If \pkg{hyperref} has already loaded before \pkg*{contract} the package cannot
+% work correctly. So we throw an error. Maybe it would be a good idea to make
+% this error fatal. But currently it is only an error.
+% \begin{macrocode}
+%<*init>
+\@ifpackageloaded{hyperref}{%
+ \PackageError{contract}{Package hyperref already loaded}{%
+ If you want to use package contract with package hyperref, you have
+ to\MessageBreak
+ load package contract before package hyperref.\MessageBreak
+ To solve the problem, you just should move the loading of package
+ hyperref\MessageBreak
+ behind the loading of package contract.}%
+}
+%</init>
+% \end{macrocode}
+%
+% \section{Prerequisites}
+%
+% We need package \pkg{scrkbase}. We could load this also together with
+% \pkg{tocbasic}, which is loaded later. But loading it on its own, we can
+% require a minimum version.
+% \begin{description}
+% \item[Todo:] Package \pkg*{contract} is no longer a
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} package. So it
+% should not use the internal
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} package
+% \pkg{scrkbase}. For keys of contract environments we can just load
+% \pkg{scrbase}. For package options we should either also switch to
+% \pkg{scrbase} or use native key-value options of \LaTeX. After doing so we
+% would be able to replace \pkg*{scrkbase} at least by \pkg{scrextend}. With
+% this package we still could use commands like
+% \cs{setkomafont}. Theoretically we would also be able to still use
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} options, but this
+% would still not be recommended.
+% \end{description}
+% \begin{macrocode}
+%<*init>
+\RequirePackage{scrkbase}[2013/03/26]
+%</init>
+% \end{macrocode}
+%
+% And now, \pkg{tocbasic}.
+% \begin{macrocode}
+%<*init>
+\RequirePackage{tocbasic}
+%</init>
+% \end{macrocode}
+%
+% \section{Options}
+%
+% \begin{option}{contract}
+% \begin{macro}{\if@documentcontract,
+% \@documentcontractfalse,\@documentcontracttrue}
+% \changes{scrjura-v3.36}{2022/01/25}{switched to a
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} option} Option
+% \opt{contract} can be used to make the whole document to be a
+% contract. But in this case you are not allowed to reuse the \env{contract}
+% environment in the document. Nor is it allowed to stop or restart the
+% contract. With older \LaTeX{} this is done by adding \cs{contract} to the
+% end of \cs{document}. With an up to date \LaTeX{} we us a hook.
+% \begin{macrocode}
+%<*options>
+\KOMA@ifkey{contract}{@documentcontract}
+\IfLTXAtLeastTF{2020/10/01}{%
+ \AddToHook{begindocument/end}{%
+ \RelaxFamilyKey[.contract.sty]{KOMA}{contract}%
+ \if@documentcontract\expandafter\contract\fi
+ }%
+}{%
+ \g@addto@macro\document{%
+ \RelaxFamilyKey[.contract.sty]{KOMA}{contract}%
+ \if@documentcontract\expandafter\contract\fi
+ }%
+}
+%</options>
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{juratotoc}
+% \changes{scrjura-v3.39}{2022/11/11}{initial dot in member argument of
+% option storage commands removed}
+% Allow to set the toc level of the entries. Value \optvalue{true} is
+% the same like \optvalue{2}, value \optvalue{false} is the same like
+% \cs{maxdimen}. \changes{scrjura-v0.7}{2013/11/04}{usage of renewed
+% interface with \cs{FamilyKeyState}}
+% \changes{scrjura-v0.9a}{2015/03/09}{internal value storage}
+% \begin{macro}{\if@juratotoc}
+% \changes{scrjura-v0.6}{2011/09/29}{replaced by counter}
+% \begin{counter}{juratoclevel}
+% \changes{scrjura-v0.6}{2011/09/29}{definition moved}
+% \changes{scrjura-v3.27}{2019/02/25}{removed}
+% \begin{macro}{\toclevel@cpar}
+% \changes{scrjura-v0.7}{2013/06/09}{new, because of \pkg{hyperref}}
+% \changes{scrjura-v3.27}{2019/02/25}{handled by \pkg{tocbasic}}
+% \begin{macrocode}
+%<*options>
+\KOMA@key{juratotoc}[true]{%
+ \KOMA@set@ifkey{juratotoc}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \DeclareTOCStyleEntry[level=2]{default}{cpar}%
+ \else
+ \DeclareTOCStyleEntry[level=\maxdimen]{default}{cpar}%
+ \fi
+ \else
+ \DeclareTOCStyleEntry[level=#1]{default}{cpar}%
+ \fi
+ \KOMA@kav@xreplacevalue{contract.sty}{juratotoc}{\cpartocdepth}%
+}
+\KOMA@kav@xadd{contract.sty}{juratotoc}{\cpartocdepth}%
+%</options>
+% \end{macrocode}
+% \end{macro}
+% \end{counter}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{juratocnumberwidth,juratocindent}
+% \changes{scrjura-v0.6}{2011/09/29}{new}
+% \changes{scrjura-v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{scrjura-v0.9a}{2015/03/09}{internal value storage}
+% \changes{scrjura-v3.39}{2022/11/11}{initial dot in member argument of option storage
+% commands removed}
+% \begin{ilength}{\cpar@numberwidth,\cpar@indent}
+% \changes{scrjura-v0.6}{2011/09/29}{new}
+% \changes{scrjura-v3.27}{2019/02/25}{replaced by usage of \cs{DeclareTOCStyleEntry}}
+% Indent and number width of the toc entries.
+% \begin{description}
+% \item[Todo:] Since we are using package \pkg{tocbasic} for the ToC entries
+% these options (and lengths) are not needed any longer, but users should
+% use \cs{DeclareTOCStyleEntry} to setup the number width and indent of the
+% entries.
+% \end{description}
+% \begin{macrocode}
+%<*options>
+\KOMA@key{juratocnumberwidth}{%
+ \DeclareTOCStyleEntry[numwidth=#1]{default}{cpar}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{contract.sty}{juratocnumberwidth}{#1}%
+}
+\KOMA@kav@add{contract.sty}{juratocnumberwidth}{2em}
+\KOMA@key{juratocindent}{%
+ \DeclareTOCStyleEntry[indent=#1]{default}{cpar}%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@replacevalue{contract.sty}{juratocindent}{#1}%
+}
+\KOMA@kav@add{contract.sty}{juratocindent}{1.5em}%
+%</options>
+% \end{macrocode}
+% \end{ilength}
+% \end{option}
+%
+% \begin{option}{juratitlepagebreak}
+% \changes{scrjura-v0.5b}{2010/04/05}{new}
+% The options sets the boolean \cs{if@juratitlepagebreak}.
+% \begin{macro}{\if@juratitlepagebreak,
+% \@juratitlepagebreaktrue,\@juratitlepagebreakfalse}
+% If the boolean is \cs{iftrue} page breaks inside clause headings are
+% allowed (which is not recommended).
+% \begin{description}
+% \item[Todo:] Re-implementation either using a native key-value option (easy)
+% or a new \pkg{scrbase} family.
+% \end{description}
+% \begin{macrocode}
+%<*options>
+\KOMA@ifkey{juratitlepagebreak}{@juratitlepagebreak}
+%</options>
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+%
+% \begin{option}{parnumber}
+% \changes{scrjura-v0.6}{2011/09/29}{new}
+% \changes{scrjura-v0.6a}{2012/10/15}{value mistake message changed}
+% \changes{scrjura-v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{scrjura-v0.9a}{2015/03/09}{internal value storage}
+% \changes{scrjura-v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
+% \changes{scrjura-v3.39}{2022/11/11}{initial dot in member argument of option storage
+% commands removed}
+% The options switches the (automatic) paragraph numbering.
+% \begin{description}
+% \item[Todo:] Re-implementation either using a native key-value option (easy)
+% or a new \pkg{scrbase} family.
+% \end{description}
+% \begin{macrocode}
+%<*options>
+\newif\ifparnumber
+\KOMA@key{parnumber}[true]{%
+ \Ifstr{#1}{auto}{%
+ \AutoPar
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{contract.sty}{parnumber}{manual}%
+ \KOMA@kav@remove{contract.sty}{parnumber}{auto}%
+ \KOMA@kav@add{contract.sty}{parnumber}{auto}%
+ }{%
+ \Ifstr{#1}{manual}{%
+ \ManualPar
+ \FamilyKeyStateProcessed
+ \KOMA@kav@remove{contract.sty}{parnumber}{manual}%
+ \KOMA@kav@remove{contract.sty}{parnumber}{auto}%
+ \KOMA@kav@add{contract.sty}{parnumber}{manual}%
+ }{%
+ \KOMA@set@ifkey{parnumber}{parnumber}{#1}%
+ \KOMA@kav@replacebool{contract.sty}{parnumber}{parnumber}%
+ }%
+ }%
+}
+\KOMA@kav@add{contract.sty}{parnumber}{true}
+\KOMA@kav@add{contract.sty}{parnumber}{auto}
+%</options>
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{paragraphmark,clausemark}
+% \changes{scrjura-v0.9h}{2016/04/11}{\opt{paragraphmark} renamed to
+% \opt{clausemark}}
+% \changes{scrjura-v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{scrjura-v0.9a}{2015/03/09}{internal value storage}
+% \changes{scrjura-v3.39}{2022/11/11}{initial dot in member argument of option
+% storage commands removed}
+% \begin{description}
+% \item[Todo:] Re-implementation either using a native key-value option
+% or a new \pkg{scrbase} family (easy).
+% \end{description}
+% \begin{option}{markright,markboth}
+% \changes{scrjura-v0.7}{2013/11/04}{deprecated}
+% \changes{scrjura-v3.39}{2022/11/16}{only with \KOMAScript~3}
+% \begin{description}
+% \item[Todo:] Remove deprecated options, because they need an internal
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} macro.
+% \end{description}
+% \begin{command}{\Clausemark}
+% \changes{scrjura-v0.5e}{2011/08/31}{support for \cs{MakeMarkcase}}
+% The options are used to activate either \cs{markright} or \cs{markboth} for
+% clauses. \cs{Clausemark} expects not only the title but also the
+% number. So it differs from, e.g., \cs{chaptermark}, which uses the counter
+% automatically. But maybe I will change this some time.
+% \begin{macrocode}
+%<*options>
+\newcommand*{\Clausemark}[1]{}
+\KOMA@key{clausemark}{%
+ \begingroup
+ \KOMA@set@ncmdkey{clausemark}{@tempa}{%
+ {false}{0},{off}{0},{no}{0},%
+ {forceright}{1},%
+ {forceboth}{2},%
+ {right}{3},%
+ {both}{4}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase\number\@tempa
+ \endgroup
+ \let\Clausemark\@gobble
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \markright{\csname MakeMarkcase\endcsname{##1}}}%
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \markboth{\csname MakeMarkcase\endcsname{##1}}%
+ {\csname MakeMarkcase\endcsname{##1}}}%
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \ifx
+ \@mkboth\@gobbletwo
+ \else
+ \markright{\csname MakeMarkcase\endcsname{##1}}%
+ \fi}%
+ \or
+ \endgroup
+ \renewcommand*{\Clausemark}[1]{%
+ \@mkboth{\csname MakeMarkcase\endcsname{##1}}%
+ {\csname MakeMarkcase\endcsname{##1}}}%
+ \else
+ \endgroup
+ \fi
+ \FamilyKeyStateProcessed
+ \else
+ \endgroup
+ \FamilyKeyStateUnknownValue
+ \fi
+ \KOMA@kav@xreplacevalue{contract.sty}{clausemark}{#1}%
+}
+\KOMA@kav@add{contract.sty}{clausemark}{false}
+\@ifundefined{KOMA@DeclareDeprecatedOption}{}{%
+ \KOMA@DeclareDeprecatedOption[contract]{markright}{clausemark=forceright}%
+ \KOMA@DeclareDeprecatedOption[contract]{markboth}{clausemark=forceboth}%
+}
+\KOMA@key{paragraphmark}{%
+ \PackageWarningNoLine{contract}{%
+ You've used obsolete option `paragraphmark'.\MessageBreak
+ Usage of this option is deprecated.\MessageBreak
+ You should simply replace `paragraphmark'\MessageBreak
+ by `clausemark'%
+ }%
+ \KOMAExecuteOptions[.contract.sty]{clausemark=#1}%
+}
+%</options>
+% \end{macrocode}
+% \end{command}
+% \end{option}
+% \end{option}
+%
+% \begin{option}{ref}
+% \changes{scrjura-v0.5d}{2010/06/07}{new values \optvalue{nopar},
+% \optvalue{nosentence}, \optvalue{OnlyParagraph}}
+% \changes{scrjura-v0.7}{2013/11/04}{usage of renewed interface with
+% \cs{FamilyKeyState}}
+% \changes{scrjura-v0.9a}{2015/03/09}{internal value storage}
+% \changes{scrjura-v3.39}{2022/11/11}{initial dot in member argument of option
+% storage commands removed}
+% \begin{description}
+% \item[Todo:] Re-implementation either using a native key-value option
+% or a new \pkg{scrbase} family (easy).
+% \end{description}
+% \begin{option}{parcitename,sentencecitename}
+% \changes{scrjura-v0.5d}{2010/06/07}{deprecated}
+% \changes{scrjura-v3.39}{2022/11/16}{only with \KOMAScript~3}
+% The formatting of the references of paragraphs and sentences. There are a
+% long a short and a numeric form.
+% \begin{description}
+% \item[Todo:] Remove deprecated options, because they need an internal
+% \href{https://www.ctan.org/pkg/koma-script}{\KOMAScript} macro.
+% \end{description}
+% \begin{macro}{\parcite@format,\sentencecite@format}
+% Default is the long form. Corresponding values of the two helper macros are:
+% 0 = long, 1 = short, 2 = numerical, -1 = nothing.
+% \begin{macrocode}
+%<*options>
+\newcommand*{\parcite@format}{0}
+\newcommand*{\sentencecite@format}{0}
+% \end{macrocode}
+% \end{macro}
+% The options can be used to change the default.
+% \begin{macrocode}
+\KOMA@key{ref}{%
+ \begingroup
+ \KOMA@set@ncmdkey{ref}{@tempa}{%
+ {parlong}{1},{longpar}{1},{ParL}{1},%
+ {parshort}{2},{shortpar}{2},{ParS}{2},%
+ {parnumeric}{3},{numericpar}{3},{ParN}{3},%
+ {paroff}{4},{nopar}{4},%
+ {sentencelong}{10},{longsentence}{10},{SentenceL}{10},%
+ {sentenceshort}{20},{shortsentence}{20},{SentenceS}{20},%
+ {sentencenumeric}{30},{numericsentence}{30},{SentenceN}{30},%
+ {sentenceoff}{40},{nosentence}{40},%
+ {long}{11},%
+ {short}{22},%
+ {numeric}{33},%
+ {paragraphonly}{44},{onlyparagraph}{44},%
+ {ParagraphOnly}{44},{OnlyParagraph}{44}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \aftergroup\FamilyKeyStateProcessed
+ \@tempcnta=\@tempa\relax
+ \@tempcntb=\z@
+ \@whilenum \@tempcnta>9 \do{%
+ \advance\@tempcnta -10\relax
+ \advance\@tempcntb \@ne\relax
+ }%
+ \ifcase \@tempcnta
+ \or
+ \aftergroup\def\aftergroup\parcite@format
+ \aftergroup{\aftergroup0\aftergroup}%
+ \or
+ \aftergroup\def\aftergroup\parcite@format
+ \aftergroup{\aftergroup1\aftergroup}%
+ \or
+ \aftergroup\def\aftergroup\parcite@format
+ \aftergroup{\aftergroup2\aftergroup}%
+ \or
+ \aftergroup\def\aftergroup\parcite@format
+ \aftergroup{\aftergroup-\aftergroup1\aftergroup}%
+ \fi
+ \ifcase \@tempcntb
+ \or
+ \aftergroup\def\aftergroup\sentencecite@format
+ \aftergroup{\aftergroup0\aftergroup}%
+ \or
+ \aftergroup\def\aftergroup\sentencecite@format
+ \aftergroup{\aftergroup1\aftergroup}%
+ \or
+ \aftergroup\def\aftergroup\sentencecite@format
+ \aftergroup{\aftergroup2\aftergroup}%
+ \or
+ \aftergroup\def\aftergroup\sentencecite@format
+ \aftergroup{\aftergroup-\aftergroup1\aftergroup}%
+ \fi
+ \else
+ \aftergroup\FamilyKeyStateUnknownValue
+ \fi
+ \endgroup
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \KOMA@kav@removekey{contract.sty}{ref}%
+ \ifcase\parcite@format
+ \KOMA@kav@add{contract.sty}{ref}{parlong}%
+ \or
+ \KOMA@kav@add{contract.sty}{ref}{parshort}%
+ \or
+ \KOMA@kav@add{contract.sty}{ref}{parnumeric}%
+ \or
+ \KOMA@kav@add{contract.sty}{ref}{paroff}%
+ \fi
+ \ifcase\sentencecite@format
+ \KOMA@kav@add{contract.sty}{ref}{sentencelong}%
+ \or
+ \KOMA@kav@add{contract.sty}{ref}{sentenceshort}%
+ \or
+ \KOMA@kav@add{contract.sty}{ref}{sentencenumeric}%
+ \or
+ \KOMA@kav@add{contract.sty}{ref}{sentenceoff}%
+ \fi
+ \fi
+}
+\KOMA@kav@add{contract.sty}{ref}{parlong}%
+\KOMA@kav@add{contract.sty}{ref}{sentencelong}%
+\@ifundefined{KOMA@DeclareDeprecatedOption}{}{%
+ \KOMA@DeclareDeprecatedOption[contract]{parcitename}{ref=parlong}
+ \KOMA@DeclareDeprecatedOption[contract]{sentencecitename}{ref=sentencelong}
+}
+%</options>
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+% Execute the options.
+% \begin{macrocode}
+%<*postoptions>
+\KOMAProcessOptions\relax
+%</postoptions>
+% \end{macrocode}
+%
+% \section{Deprecated Paragraph Commands}
+%
+% All these commands are deprecated and now generate error messages instead of
+% code.
+%
+% \begin{command}{\Paragraph,\SubParagraph,\refParagraph,\refParagraphN,
+% \DeprecatedParagraph,\ParagraphCompatibilityHacks}
+% \changes{scrjura-v1.0}{2014/11/22}{throw error for deprecated commands but
+% only once}
+% \begin{description}
+% \item[Todo:] Remove deprecated commands, because they already throw errors
+% for about nine years.
+% \end{description}
+% \begin{macrocode}
+%<*body>
+\providecommand*{\DeprecatedParagraph}{%
+ \PackageError{contract}{modification of old document needed}{%
+ It seem that this document was made for scrjura up to version
+ 0.7a.\MessageBreak
+ Since scrjura version 0.9 \string\Paragraph, \string\SubParagraph, and all
+ depending\MessageBreak
+ commands, options, and counters have been renamed.\MessageBreak
+ You should replace the terms `Paragraph' and `paragraph` by `Clause`
+ and\MessageBreak
+ `clause` if they are part of the name of a contract feature, otherwise
+ this\MessageBreak
+ document may produce severall additional error messages and maybe the
+ wrong\MessageBreak
+ result. Sorry for the inconvenience.%
+ }%
+ \ParagraphCompatibilityHacks
+}
+\newcommand*{\ParagraphCompatibilityHacks}{%
+ \PackageWarning{contract}{compatibility hacks for `\string\Paragraph'
+ executed.\MessageBreak
+ There is no support for documents using these hacks!\MessageBreak
+ There is no warranty for real compatibility!\MessageBreak
+ Even if the LaTeX run of the document doesn't report\MessageBreak
+ any error, the result may be completely wrong.\MessageBreak
+ Therefore it is recommended to solve the problem,\MessageBreak
+ instead of trying to work around using the\MessageBreak
+ compatibility hacks%
+ }%
+ \gdef\Paragraph{\Clause}%
+ \gdef\SubParagraph{\SubClause}%
+ \gdef\c@Paragraph{\c@Clause}%
+ \gdef\cl@Paragraph{\cl@Clause}%
+ \gdef\c@SubParagraph{\c@SubClause}%
+ \gdef\cl@SubParagraph{\cl@SubClause}%
+ \gdef\theParagraph{\theClause}%
+ \gdef\theSubParagraph{\theSubClause}%
+ \gdef\refParagraph{\refClause}%
+ \gdef\refParagraphN{\refClauseN}%
+ \aliaskomafont{Paragraph}{Clause}%
+ \scr@ifundefinedorrelax{Paragraphmark}{}{%
+ \global\let\Clausemark\Paragraphmark
+ }%
+}
+\providecommand*{\Paragraph}{\DeprecatedParagraph\Paragraph}
+\providecommand*{\SubParagraph}{\DeprecatedParagraph\SubParagraph}
+\providecommand*{\refParagraph}{\DeprecatedParagraph\refParagraph}
+\providecommand*{\refParagraphN}{\DeprecatedParagraph\refParagraphN}
+%</body>
+% \end{macrocode}
+% \end{command}
+%
+%
+% \section{Contracts, Clauses, Paragraphs and Sentences}
+%
+%
+% \begin{macro}{\contract@env@type}
+% \changes{scrjura-v0.5d}{2010/04/28}{new}
+% \changes{scrjura-v0.7b}{2014/11/03}{\cs{jura@env@type} renamed}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@env@type} renamed}
+% This macro shows the currently active \pkg*{contract} environment.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\contract@env@type}{}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{command}{\ellipsispar}
+% \changes{scrjura-v0.7}{2013/05/02}{new}
+% \changes{scrjura-v0.7b}{2014/11/03}{\cs{thecontractAbsoluteClause} made more
+% flexible}
+% \changes{scrjura-v0.9g}{2016/03/25}{write to \file{aux}-file only \cs{if@filesw}}
+% \begin{command}{\parellipsis}
+% \changes{scrjura-v0.7}{2013/05/02}{new}
+% Count one or more paragraphs given by the optional argument but print
+% \cs{parellipsis} instead of a real paragraph. The default is either
+% \cs{dots} or \cs{textellipsis} if available.
+% \changes{scrjura-v0.7}{2013/05/02}{new}
+% \begin{macrocode}
+%<*body>
+\newcommand*{\ellipsispar}[1][1]{%
+ \begingroup
+ \KOMAoptions{parnumber=manual}\parellipsis\par
+ \addtocounter{par}{#1}%
+ \if@filesw
+ \protected@write\@auxout{}{%
+ \string\newmaxpar{\contract@env@type}%
+ {\csname the\contract@env@type
+ AbsoluteClause\endcsname}%
+ {\thepar}%
+ }%
+ \fi
+ \endgroup
+ \addtocounter{par}{-1}\refstepcounter{par}%
+ \ignorespaces
+}
+\newcommand*{\parellipsis}{%
+ \scr@ifundefinedorrelax{textellipsis}{\dots}{\textellipsis}%
+}
+%</body>
+% \end{macrocode}
+% \end{command}
+% \end{command}
+%
+% \begin{environment}{contract}
+% \changes{scrjura-v0.5d}{2010/04/28}{missing error message added}
+% \changes{scrjura-v0.5d}{2010/04/28}{not self-redefining any more}
+% \changes{scrjura-v0.5d}{2010/04/28}{defining \cs{jura@env@type}}
+% \changes{scrjura-v3.36}{2022/01/25}{defining an environment (because of hooks)}
+% \begin{macro}{\if@contract@skiphyperref}
+% \changes{v0.0.1}{2023-10-10}{\cs{if@scrjura@skiphyperref} renamed}
+% \begin{counter}{contractClause}
+% \begin{command}{\thecontractClause}
+% \changes{scrjura-v0.9b}{2015/05/01}{must use counter \cnt{Clause} instead of
+% \cnt{contractClause}}
+% \begin{macro}{\contract@Clauseformat}
+% \begin{command}{\Clauseformat,\paragraphformat}
+% \changes{scrjura-v0.6b}{2013/04/16}{redefinition of \cs{paragraphformat}}
+% \begin{counter}{contractSubClause}
+% \changes{scrjura-v0.9b}{2015/05/01}{must use counter \cnt{SubClause} instead of
+% \cnt{contractSubClause}}
+% \begin{command}{\thecontractSubClause}
+% \begin{counter}{contractAbsoluteClause}
+% \changes{scrjura-v0.7}{2013/04/18}{new (internal) counter for all clauses to make
+% it possible to reset the users clause counter}
+% It is not allowed to nest the \env{contract} environments, but you can end
+% them and start them new. But this would not end the contract and start a new
+% contract but only delay it for some other code.
+% \begin{macrocode}
+%<*body>
+\newenvironment{contract}{%
+ \ifx\contract@env@type\@empty
+ \let\@doendpe\contract@doendpe
+ \let\Clause\contract@paragraph
+ \let\c@Clause\c@contractClause
+ \edef\cl@Clause{\cl@Clause\cl@contractClause}%
+ \let\SubClause\contract@subparagraph
+ \let\c@SubClause\c@contractSubClause
+ \edef\cl@SubClause{\cl@SubClause\cl@contractSubClause}%
+ \let\Sentence\contract@sentence
+ \renewcommand*{\contract@env@type}{contract}%
+ \aliaskomafont{Clause}{contract.Clause}%
+ \else
+ \PackageError{contract}{nested `contract` detected}{%
+ You may not use a `contract' environment inside\MessageBreak
+ a `\contract@env@type' environment or after loading\MessageBreak
+ package `contract' with option `\contract@env@type'!}%
+ \fi
+}{}
+\let\if@contract@skiphyperref\iftrue
+\let\cl@Clause\@empty
+\let\cl@SubClause\@empty
+\newcounter{contractClause}
+\renewcommand*{\thecontractClause}{%
+ {\contract@Clauseformat{\arabic{Clause}}}}
+\DeclareRobustCommand*{\contract@Clauseformat}[1]{\Clauseformat{#1}}
+\newcommand*{\Clauseformat}[1]{\S~#1}
+\newcounter{contractSubClause}
+\@addtoreset{SubClause}{Clause}
+\renewcommand*{\thecontractSubClause}{%
+ {\theClause\alph{SubClause}}}
+\newcounter{contractAbsoluteClause}
+%</body>
+% \end{macrocode}
+% \end{counter}
+% \end{command}
+% \end{counter}
+% \end{command}
+% \end{macro}
+% \end{command}
+% \end{counter}
+% \end{macro}
+% \end{environment}
+%
+% \begin{command}{\DeclareNewJuraEnvironment}
+% \changes{scrjura-v0.9}{2014/11/12}{new}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}
+% Using \cs{@defjuraenvironment} to define a new juristic environment. This
+% can be done only in document preamble.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\DeclareNewJuraEnvironment}[1]{%
+ \@ifundefined{#1}{\expandafter\let\csname #1\expandafter\endcsname
+ \csname end#1\endcsname}{}%
+ \@ifundefined{#1}{\let\reserved@defjuraenvironment\@defjuraenvironment}{%
+ \PackageError{contract}{ignorring declaration of `#1'}{%
+ You've tried to declare jura environment `#1', but
+ environment\MessageBreak
+ `#1' or command
+ \expandafter\string\csname #1\endcsname\space or
+ \expandafter\string\csname end#1\endcsname\MessageBreak
+ already exists.\MessageBreak
+ Declaration will be ignored}%
+ \long\def\reserved@defjuraenvironment##1[##2]##3##4{}%
+ }%
+ \kernel@ifnextchar [%]
+ {\reserved@defjuraenvironment{#1}}{\reserved@defjuraenvironment{#1}[]}%
+}
+\@onlypreamble\DeclareNewJuraEnvironment
+% \end{macrocode}
+% \begin{macro}{\@defjuraenvironment}
+% \changes{scrjura-v0.9}{2014/11/04}{new}
+% \changes{scrjura-v3.25}{2017/12/08}{new command options \texttt{ClauseFont}}
+% \changes{scrjura-v3.25}{2017/12/08}{\cs{reserved@defjuraenvironment} set
+% back to \cs{relax}}
+% \changes{scrjura-v3.25}{2017/12/08}{using local instead of global command
+% options}
+% This command is used to define a new \pkg*{contract} environment like
+% \env{contract}. Several options are provided (see the user manual for
+% details).
+% \begin{macrocode}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember{KOMAarg}
+\newcommand{\@defjuraenvironment}{}
+\long\def\@defjuraenvironment#1[#2]#3#4{%
+ \let\reserved@defjuraenvironment\relax
+% \end{macrocode}
+% The counters:
+% \begin{macrocode}
+ \newcounter{#1Clause}%
+ \newcounter{#1AbsoluteClause}%
+ \newcounter{#1SubClause}%
+ \FamilyCSKey[.contract.sty]{KOMAarg}{Clause}{#1@Clause}%
+ \FamilyCSKey[.contract.sty]{KOMAarg}{SubClause}{#1@SubClause}%
+ \FamilyCSKey[.contract.sty]{KOMAarg}{Sentence}{#1@Sentence}%
+ \DefineFamilyKey[.contract.sty]{KOMAarg}{ClauseNumberFormat}{%
+ \expandafter\def\csname #1@Clauseformat \endcsname####1{##1{####1}}%
+ \expandafter\edef\csname #1@Clauseformat\endcsname{%
+ \noexpand\protect\expandafter\noexpand\csname #1@Clauseformat \endcsname
+ }%
+ \FamilyKeyStateProcessed
+ }
+ \DefineFamilyKey[.contract.sty]{KOMAarg}{ClauseFont}{%
+ \IfExistskomafont{#1.Clause}{%
+ \IfIsAliaskomafont{#1.Clause}{%
+ \expandafter\let\csname scr@fnt@instead@#1.Clause\endcsname\relax
+ \newkomafont{#1.Clause}{##1}%
+ }{\setkomafont{#1.Clause}{##1}}%
+ }{%
+ \newkomafont{#1.Clause}{##1}%
+ }%
+ }
+ \FamilyExecuteOptions[.contract.sty]{KOMAarg}{#2}%
+ \RelaxFamilyKey[.contract.sty]{KOMAarg}{ClauseFont}%
+ \RelaxFamilyKey[.contract.sty]{KOMAarg}{ClauseNumberFormat}%
+ \RelaxFamilyKey[.contract.sty]{KOMAarg}{Sentence}%
+ \RelaxFamilyKey[.contract.sty]{KOMAarg}{SubClause}%
+ \RelaxFamilyKey[.contract.sty]{KOMAarg}{Clause}%
+ \@ifundefined{#1@Clauseformat}{%
+ \expandafter\DeclareRobustCommand\expandafter*%
+ \csname #1@Clauseformat\endcsname[1]{\Clauseformat{##1}}%
+ }{}%
+% \end{macrocode}
+% \changes{scrjura-v0.9c}{2015/05/13}{defining \cs{the\dots Clause}}
+% \changes{scrjura-v0.9f}{2016/02/24}{\cs{protect}\cs{@nameuse} instead of
+% \cs{csname}\dots\cs{endcsname}}
+% \begin{macrocode}
+ \expandafter\renewcommand\expandafter*\csname the#1Clause\endcsname{%
+ \protect\@nameuse{#1@Clauseformat}{\arabic{#1Clause}}}%
+% \end{macrocode}
+% Environment:
+% \begin{macrocode}
+ \newenvironment{#1}{%
+ \par
+ \ifx\contract@env@type\@empty
+ \edef\contract@env@type{#1}%
+ \let\@doendpe\contract@doendpe
+ \expandafter\let\expandafter\c@Clause\csname c@#1Clause\endcsname
+ \edef\cl@Clause{\cl@Clause\csname cl@#1Clause\endcsname}%
+ \expandafter\let\expandafter\c@SubClause
+ \csname c@#1SubClause\endcsname
+ \edef\cl@SubClause{\cl@SubClause
+ \csname cl@#1SubClause\endcsname}%
+ \@ifundefined{#1@Clause}{%
+ \let\Clause\contract@paragraph
+ }{%
+ \expandafter\let\expandafter\Clause
+ \csname #1@Clause\endcsname
+ }%
+ \@ifundefined{#1@SubClause}{%
+ \let\SubClause\contract@subparagraph
+ }{%
+ \expandafter\let\expandafter\SubClause
+ \csname #1@SubClause\endcsname
+ }%
+ \@ifundefined{#1@Sentence}{%
+ \let\Sentence\contract@sentence
+ }{%
+ \expandafter\let\expandafter\Sentence\csname #1@Sentence\endcsname
+ }%
+ \@ifundefined{\contract@env@type @everypar}{%
+ \expandafter\let
+ \csname \contract@env@type @everypar\endcsname
+ \contract@everypar
+ }{}%
+% \end{macrocode}
+% Font alias for \fnt{Clause}. If neither a font not an alias is defined for
+% the new environment \fnt{contract.Clause} is used.
+% \changes{scrjura-v3.25}{2017/12/08}{Font alias fixed}
+% \begin{macrocode}
+ \IfExistskomafont{#1.Clause}{%
+ \IfIsAliaskomafont{#1.Clause}{%
+ \aliaskomafont{Clause}{\csname scr@fnt@instead@#1.Clause\endcsname}%
+ }{%
+ \aliaskomafont{Clause}{#1.Clause}%
+ }%
+ }{%
+ \aliaskomafont{Clause}{contract.Clause}%
+ }%
+ #3%
+ \else
+ \PackageError{contract}{nested contract environments detected}{%
+ You must not use a `#1' environment inside\MessageBreak
+ a `\contract@env@type' environment or after loading\MessageBreak
+ package `contract' with option `\contract@env@type'!}%
+ \fi
+ }{%
+ #4%
+ \par
+ }%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}%^^A \@dewjuraenvironment
+% \end{command}%^^A \DeclareNewJuraEnvironment
+%
+% \begin{macro}{\contract@paragraph}
+% This is the \cs{Clause} used by contracts. A contract consists (usually) of
+% several clauses. Each clause has optional elements managed by
+% \meta{key}=\meta{value} pairs handled by \pkg{scrkbase} and last but not
+% least by \pkg{keyval}.
+% \begin{option}{title,head,nohead}
+% \begin{option}{entry,noentry}
+% \changes{scrjura-v0.6}{2011/09/30}{deprecated}
+% \begin{option}{tocentry,notocentry}
+% \changes{scrjura-v0.6}{2011/09/30}{new}
+% Title, running head and toc entry of the clause. The title is the default
+% for running head and toc entry. But you can also use an empty value for
+% each of them or use the \texttt{no\dots} options to switch them off.
+% \begin{macrocode}
+%<*body>
+\define@key{contract}{title}{%
+ \def\contract@title{#1}%
+ \ifx\contract@entry\relax\def\contract@entry{\contract@title}\fi
+ \ifx\contract@head\relax\def\contract@head{\contract@title}\fi
+}
+\define@key{contract}{entry}{%
+ \PackageWarning{contract}{deprecated option `entry'.\MessageBreak
+ You should use option `tocentry' instead of\MessageBreak
+ option `entry'%
+ }%
+ \def\contract@entry{#1}}
+\define@key{contract}{tocentry}{\def\contract@entry{#1}}
+\define@key{contract}{noentry}[]{%
+ \PackageWarning{contract}{deprecated option `noentry'.\MessageBreak
+ You should use option `notocentry' instead of\MessageBreak
+ option `noentry'%
+ }%
+ \let\contract@entry\relax}
+\define@key{contract}{notocentry}[]{\let\contract@entry\relax}
+\define@key{contract}{head}{\def\contract@head{#1}}
+\define@key{contract}{nohead}[]{\let\contract@head\relax}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \end{option}
+% \begin{option}{number}
+% The number can be changed manually. But clauses without numbers are not
+% allowed. So if you use an empty value, the number is automatically set.
+% \begin{macrocode}
+\define@key{contract}{number}{\def\contract@number{#1}}
+% \end{macrocode}
+% \end{option}
+% \begin{macro}{\contract@preskip,\contract@postskip}
+% \begin{option}{preskip,postskip}
+% The options are used to specify the distance before and after the
+% clause. The preset value of these options are the global settings done by
+% |\setkeys{contract}{…}|.
+% \begin{macrocode}
+\newcommand*{\contract@preskip}{2\baselineskip}
+\newcommand*{\contract@postskip}{\baselineskip}
+\define@key{contract}{preskip}{\def\contract@preskip{#1}}
+\define@key{contract}{postskip}{\def\contract@postskip{#1}}
+% \end{macrocode}
+% \end{option}
+% \end{macro}
+% \begin{option}{dummy}
+% The option switches the boolean \cs{ifcontract@dummy}.
+% \begin{macro}{\ifcontract@dummy}
+% If the boolean is \cs{iftrue} the clause will not be printed. But note: you
+% cannot use this to remove the paragraphs or sentences of the clause. But you
+% can use this option to generate holes in the numbering without manually
+% manipulating the counters.
+% \begin{macrocode}
+\newif\ifcontract@dummy
+\define@key{contract}{dummy}[true]{\csname contract@dummy#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+% \end{option}
+% \begin{fontelement}{contract.Clause}
+% \begin{macro}{\contract@paragraph@font}
+% \changes{scrjura-v3.25}{2017/12/08}{using element \fnt{Clause} instead of
+% \fnt{contract.Clause}}
+% Correctly this macro should be named \cs{contract@paragraph@format}. But it
+% is already used by some users for ugly tricks. So I will not rename it to
+% avoid problems for existing documents. Additionally it would be better to
+% use a new macro per environment. However the same reason not to change this.
+% \begin{macrocode}
+\newkomafont{contract.Clause}{\sffamily\bfseries\large}
+\newcommand*{\contract@paragraph@font}{\usekomafont{Clause}%
+ \@hangfrom}
+% \end{macrocode}
+% \end{macro}
+% \end{fontelement}
+% \begin{counter}{@AbsClause}
+% \begin{macro}{\theH@AbsClause}
+% \changes{scrjura-v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
+% of \cs{newcommand*}}
+% \begin{command}{\theHClause,\theHSubClause}
+% \changes{scrjura-v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
+% of \cs{newcommand*}}
+% \begin{macrocode}
+% Here we have some not good tested code for \pkg{hyperref}.
+\newcounter{@AbsClause}
+\def\theH@AbsClause{P-\arabic{@AbsClause}}
+\def\theHClause{\theH@AbsClause}
+\def\theHSubClause{\theH@AbsClause}
+% \end{macrocode}
+% \end{command}
+% \end{macro}
+% \end{counter}
+% For the headings we use manual paragraph numbering, because we don't want
+% any paragraph numbering inside the heading. After initializing the options
+% they are processed.
+% \changes{scrjura-v0.7}{2013/04/18}{increase counter
+% \cnt{contractAbsoluteClause}}
+% \changes{scrjura-v0.7b}{2014/11/03}{more flexible
+% \cnt{\meta{environment}AbsoluteClause}}
+% \changes{v0.0.2}{2024/01/23}{the argument is optional}
+% \begin{macrocode}
+\NewDocumentCommand\contract@paragraph {o} {%
+ \stepcounter{\contract@env@type AbsoluteClause}%
+ \ManualPar\parnumbertrue
+ \let\contract@title\relax
+ \let\contract@entry\relax
+ \let\contract@head\relax
+ \let\contract@number\relax
+ \contract@dummyfalse
+ \IfValueT{#1}{\setkeys{contract}{#1}}%
+% \end{macrocode}
+% Unless this is a dummy clause, the headings will be initialized and vertical
+% skips will be done.
+% \changes{scrjura-v0.6a}{2012/10/08}{missing \cs{par} added}
+% \begin{macrocode}
+ \ifcontract@dummy\else
+ \par
+ \@afterindentfalse
+ \addvspace{\contract@preskip}%
+ \fi
+% \end{macrocode}
+% If there isn't a manual number, we use the next number. If there is a manual
+% number, this number is printed and we take care that labels and
+% \pkg{hyperref} also use the manual number.
+% \changes{scrjura-v0.6b}{2013/04/16}{using \cs{contract@Clauseformat} for manual
+% numbers too}
+% \changes{scrjura-v0.9c}{2015/05/13}{\cs{thecontractClause} replaced by
+% environment-dependent macro}
+% \begin{macrocode}
+ \ifx\contract@number\relax
+ \let\p@Clause\@empty
+ \expandafter\let\expandafter\theClause
+ \csname the\contract@env@type Clause\endcsname
+ \refstepcounter{Clause}%
+ \else
+ \begingroup
+ \let\@elt\@stpelt
+ \cl@Clause
+ \endgroup
+% \end{macrocode}
+% \changes{scrjura-v0.9f}{2016/02/24}{\cs{protect}\cs{@nameuse} instead of
+% \cs{csname}\dots\cs{endcsname}}
+% \changes{scrjura-v3.41}{2023/06/24}{update of \cs{@currentcounter} added}
+% \begin{macrocode}
+ \protected@edef\theClause{%
+ \protect\@nameuse{\contract@env@type @Clauseformat}{\contract@number}%
+ }%
+ \protected@edef\@currentlabel{\theClause}%
+ \def\@currentcounter{Clause}%
+ \fi
+ \stepcounter{@AbsClause}%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname if@skiphyperref\endcsname\relax
+ \else
+ \expandafter\let\csname if@contract@skiphyperref\expandafter\endcsname
+ \csname if@skiphyperref\endcsname
+ \fi
+ \if@contract@skiphyperref\else
+ \hyper@refstepcounter{@AbsClause}%
+%<+trace> \typeout{absolute Number: \the@AbsClause^^JLabel: `\@currentHref'}%
+ \fi
+% \end{macrocode}
+% For simplification we use the code of clauses for sub-clauses.
+% \begin{macrocode}
+ \let\theSubClause\theClause
+% \end{macrocode}
+% Unless for dummy clauses, the heading is printed, the toc entry is done
+% and also the running head.
+% \changes{scrjura-v0.7}{2013/04/28}{distance behind the number is part of the number}
+% \changes{scrjura-v0.9i}{2017/02/23}{usage of \cs{ext@toc}}
+% \begin{macrocode}
+ \ifcontract@dummy\else
+ \begingroup
+ \if@juratitlepagebreak\else\interlinepenalty\@M\fi
+ \contract@paragraph@font{\theClause
+ \ifx\contract@title\relax\else\enskip\fi}%
+ \contract@title
+ \ifx\contract@entry\relax\else
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {cpar}[\theClause]\contract@entry
+ \addxcontentsline{cpa}{cpar}[\theClause]\contract@entry
+ \fi
+ \ifx\contract@head\relax\else
+ \expandafter\Clausemark\expandafter{%
+ \expandafter\theSubClause\expandafter\enskip\contract@head}%
+ \fi
+ \par
+ \endgroup\nobreak\vskip\contract@postskip
+% \end{macrocode}
+% Last but not least paragraph numbering is initialized.
+% \begin{macrocode}
+ \contract@afterheading
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\contract@subparagraph}
+% \changes{scrjura-v0.6a}{2012/10/08}{missing \cs{par} added}
+% \changes{scrjura-v0.7}{2013/04/18}{increasing counter
+% \cnt{contractAbsoluteClause}}
+% \changes{scrjura-v0.7}{2013/04/28}{distance after number}
+% \changes{scrjura-v0.9i}{2017/02/23}{usage of \cs{ext@toc}}
+% \changes{scrjura-v3.41}{2023/06/24}{update of \cs{@currentcounter} added}
+% \changes{v0.0.2}{2024/01/23}{the argument is optional}
+% This is almost the same like \cs{contract@paragraph}.
+% \begin{macrocode}
+%<*body>
+\NewDocumentCommand \contract@subparagraph {o}{%
+ \stepcounter{\contract@env@type AbsoluteClause}%
+ \ManualPar\parnumbertrue
+ \let\contract@title\relax
+ \let\contract@entry\relax
+ \let\contract@head\relax
+ \let\contract@number\relax
+ \contract@dummyfalse
+ \IfValueT{#1}{\setkeys{contract}{#1}}%
+ \ifcontract@dummy\else
+ \par
+ \@afterindentfalse
+ \vskip\contract@preskip
+ \fi
+ \ifx\contract@number\relax
+ \let\p@SubClause\@empty
+ \let\theSubClause\thecontractSubClause
+ \refstepcounter{SubClause}%
+ \else
+ \begingroup
+ \let\@elt\@stpelt
+ \cl@SubClause
+ \endgroup
+ \protected@edef\theSubClause{\theClause\contract@number}%
+ \protected@edef\@currentlabel{\theSubClause}%
+ \def\@currentcounter{SubClause}%
+ \fi
+ \stepcounter{@AbsClause}%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname if@skiphyperref\endcsname\relax
+ \else
+ \expandafter\let\csname if@contract@skiphyperref\expandafter\endcsname
+ \csname if@skiphyperref\endcsname
+ \fi
+ \if@contract@skiphyperref\else
+ \hyper@refstepcounter{@AbsClause}%
+%<+trace> \typeout{absolute Number: \the@AbsClause^^JLabel: `\@currentHref'}%
+ \fi
+ \ifcontract@dummy\else
+ \begingroup
+ \if@juratitlepagebreak\else\interlinepenalty\@M\fi
+ \contract@paragraph@font{\theSubClause
+ \ifx\contract@title\relax\else\enskip\fi}%
+ \contract@title
+ \ifx\contract@entry\relax\else
+ \expandafter\addxcontentsline\expandafter{\ext@toc}%
+ {cpar}[\theSubClause]\contract@entry
+ \addxcontentsline{cpa}{cpar}[\theSubClause]\contract@entry
+ \fi
+ \ifx\contract@head\relax\else
+ \expandafter\Clausemark\expandafter{%
+ \expandafter\theSubClause\expandafter\enskip\contract@head}%
+ \fi
+ \par
+ \endgroup
+ \nobreak\vskip\contract@postskip
+ \contract@afterheading
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{command}{\AutoPar,\ManualPar}
+% Switching between automatic or manual paragraph numbers for all
+% \pkg*{contract} environments.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\AutoPar}{%
+ \expandafter\let\expandafter\contract@used@everypar
+ \csname \contract@env@type @everypar\endcsname
+}
+\newcommand*{\ManualPar}{%
+ \let\contract@used@everypar\relax
+}
+%</body>
+% \end{macrocode}
+% \end{command}
+%
+% \begin{macro}{\contract@afterheading}
+% \changes{scrjura-v0.7b}{2014/11/03}{\cs{jura@afterheading} renamed}
+% \changes{scrjura-v0.7b}{2014/11/03}{no argument}
+% \changes{scrjura-v3.27}{2019/02/25}{\cs{CheckCommand} for \cs{@afterheading}}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@afterheading} renamed}
+% Similar to \cs{afterheading} but with automatic paragraph numbers.
+% \begin{description}
+% \item[ToDo:] Test if this can be done using \LaTeX{} hooks, depending on the
+% \LaTeX{} release.
+% \end{description}
+% \begin{macrocode}
+%<*body>
+\CheckCommand*{\@afterheading}{%
+ \@nobreaktrue
+ \everypar{%
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \if@afterindent \else
+ {\setbox\z@\lastbox}%
+ \fi
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi}%
+}
+\newcommand*{\contract@afterheading}{%
+ \@nobreaktrue
+ \everypar{%
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \if@afterindent \else
+ {\setbox\z@\lastbox}%
+ \fi
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{%
+ \contract@used@everypar
+ }%
+ \fi
+ \contract@used@everypar
+ }%
+ \AutoPar
+}
+% \end{macrocode}
+% \begin{macro}{\contract@used@everypar}
+% \changes{scrjura-v0.7b}{2014/11/03}{\cs{jura@everypar} renamed}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@everypar} renamed}
+% The macro to be used at the very beginning of every paragraph to add the
+% number. To be used only inside \pkg*{contract} environments, so empty
+% outside.
+% \begin{macrocode}
+\newcommand*{\contract@used@everypar}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@doendpe}
+% \LaTeX{} used this macro, to reset all paragraph actions at the end of
+% environments. To avoid unwanted switching-off of the paragraph number it
+% will be reinitialized.
+% \begin{macro}{\contract@doendpe}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@doendpe} renamed}
+% \begin{macro}{\IncludeInRelease}
+% \changes{scrjura-v0.9e}{2015/11/03}{used temporary}
+% \changes{scrjura-v3.28}{2019/11/18}{\cs{ifstr} renamed into \cs{Ifstr}}
+% \begin{macro}{\@gobble@IncludeInRelease}
+% \changes{scrjura-v0.9e}{2015/11/03}{used temporary}
+% \begin{macro}{\EndIncludeInRelease}
+% \changes{scrjura-v0.9e}{2015/11/03}{used temporary}
+% From \LaTeX{} 2015/01/01 a different definition of \cs{@doendpe} is used. So
+% we also have to use different versions depending on the release. We do so
+% with some tricks. Maybe this should be replaced by usage of
+% \cs{IfLTXAtLeastTF} from already loaded \pkg{scrbase}.
+% \begin{description}
+% \item[Todo:] Using \cs{everypar} is evil and should be replaced by using a
+% generic paragraph hook.
+% \end{description}
+% \begin{macrocode}
+\providecommand*{\IncludeInRelease}[3]{%
+ \PackageInfo{contract}{temporary definition of \string\IncludeInRelease}%
+ \Ifstr{#1}{0000/00/00}{%
+ \let\IncludeInRelease\@undefined
+ \def\EndIncludeInRelease{\let\EndIncludeInRelease\@undefined}%
+ }{%
+ \let\EndIncludeInRelease\relax
+ \long\def\@gobble@IncludeInRelease##1\EndIncludeInRelease{%
+ \let\@gobble@IncludeInRelease\@undefined
+ }%
+ \expandafter\@gobble@IncludeInRelease
+ }%
+}
+\IncludeInRelease{2015/01/01}{\@doendpe}{clubpenalty fix}
+\CheckCommand*\@doendpe{\@endpetrue
+ \def\par{\@restorepar
+ \clubpenalty\@clubpenalty
+ \everypar{}\par\@endpefalse}\everypar
+ {{\setbox\z@\lastbox}%
+ \everypar{}\@endpefalse}}
+\newcommand*{\contract@doendpe}{%
+ \@endpetrue
+ \def\par{%
+ \@restorepar
+ \clubpenalty\@clubpenalty
+ \everypar{%
+ \csname contract@used@everypar\endcsname
+ }%
+ \par\@endpefalse
+ }%
+ \everypar{%
+ {\setbox\z@\lastbox}\everypar{%
+ \csname contract@used@everypar\endcsname
+ }%
+ \@endpefalse
+ }%
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@doendpe}{clubpenalty fix}
+\CheckCommand*\@doendpe{\@endpetrue
+ \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar
+ {{\setbox\z@\lastbox}\everypar{}\@endpefalse}}
+\newcommand*{\contract@doendpe}{%
+ \@endpetrue
+ \def\par{%
+ \@restorepar\everypar{%
+ \csname contract@used@everypar\endcsname
+ }%
+ \par\@endpefalse
+ }%
+ \everypar{%
+ {\setbox\z@\lastbox}\everypar{%
+ \csname contract@used@everypar\endcsname
+ }%
+ \@endpefalse
+ }%
+}
+\EndIncludeInRelease
+%</body>
+% \end{macrocode}
+% \end{macro}%^^A \EndIncludeInRelease
+% \end{macro}%^^A \@gobble@IncludeInRelease
+% \end{macro}%^^A \IncludeInRelease
+% \end{macro}%^^A \contract@doendpe
+% \end{macro}%^^A \@doendpe
+% \end{macro}%^^A \contract@used@everypar
+%
+% \section{Entry to Table of Contents}
+% \begin{macro}{\l@cpar}
+% Toc entry of contract clauses.
+% \changes{scrjura-v3.27}{2019/02/25}{usage of \pkg{tocbasic}}
+% This is done using \pkg{tocbasic}. The definition has to be part of the
+% initialization of the package, otherwise package options wouldn't be able to
+% change the setting.
+% \begin{macrocode}
+%<*init>
+\DeclareTOCStyleEntry[%
+ indent=1.5em,
+ numwidth=2em,
+ level=\maxdimen
+]{default}{cpar}
+%</init>
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Numbering of Paragraphs and Sentences}
+%
+% \begin{macro}{\contract@separator}
+% \changes{scrjura-v0.7b}{2014/11/03}{\cs{jura@separator} renamed}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@separator} renamed}
+% Used to make it possible to remove white spaces at the beginning or end.
+% \begin{macrocode}
+%<*body>
+\DeclareRobustCommand*{\contract@separator}[1]{#1}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\contract@usetype}
+% \changes{scrjura-v0.5d}{2010/04/28}{new}
+% \changes{scrjura-v0.7b}{2014/11/03}{\cs{jura@usetype} renamed}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@usetype} renamed}
+% By default it is robust but does only call \cs{contract@@usetype} with the
+% only argument.
+% \begin{macro}{\contract@@usetype}
+% \changes{scrjura-v0.5d}{2010/04/28}{new}
+% \changes{scrjura-v0.7b}{2014/11/03}{\cs{jura@@usetype} renamed}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@@usetype} renamed}
+% This second command is not robust and can easily be redefined. But by
+% default it also does nothing but eating the argument.
+% \begin{macrocode}
+%<*body>
+\DeclareRobustCommand*{\contract@usetype}[1]{\contract@@usetype{#1}}
+\newcommand*{\contract@@usetype}[1]{}
+%</body>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\contract@everypar}
+% The \cs{contract@everpar} used by contracts.
+% \begin{macro}{\ifparnumber,\parnumbertrue,\parnumberfalse}
+% \changes{scrjura-v0.6}{2011/09/29}{moved the definition into the definition of the
+% option}
+% \begin{counter}{par}
+% \begin{command}{\thepar,\theHpar}
+% \changes{scrjura-v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
+% of \cs{newcommand*}}
+% \begin{command}{\parformat}
+% \changes{scrjura-v0.7}{2013/06/07}{new font element \fnt{parnumber}}
+% \begin{command}{\parformatseparation}
+% \changes{scrjura-v0.9f}{2016/02/06}{new}
+% \begin{macro}{\p@par}
+% \changes{scrjura-v0.5d}{2010/04/28}{added \cs{jura@usetype} with argument
+% \cs{jura@env@type}}
+% \begin{command}{\withoutparnumber}
+% \changes{scrjura-v3.25}{2017/12/19}{new}
+% The boolean defines if paragraph numbers have to be used. If they are
+% deactivated also manual paragraph numbers are deactivated and the paragraphs
+% are not counted. Otherwise the paragraphs are numbered using \cs{thepar}. It
+% is important to reset the paragraph counter with every clause and
+% sub-clause. And for labels the parent object the clause has to be used.
+% \begin{macrocode}
+%<*body>
+\newcounter{par}
+\renewcommand*{\thepar}{\arabic{par}}
+\def\theHpar{\theH@AbsClause-\Roman{par}}
+\newcommand*{\parformat}{(\thepar)}
+\newcommand*{\parformatseparation}{\nobreakspace}
+\newkomafont{parnumber}{}
+\renewcommand*\p@par{{\contract@usetype{\contract@env@type}\theSubClause\contract@separator{\nobreakspace}}}
+\@addtoreset{par}{Clause}
+\@addtoreset{par}{SubClause}
+\newcommand*{\withoutparnumber}{}
+%</body>
+% \end{macrocode}
+% \end{command}
+% \end{macro}
+% \end{command}
+% \end{command}
+% \end{command}
+% \end{counter}
+% \end{macro}
+% \changes{scrjura-v0.5c}{2010/04/26}{first argument of \cs{newmaxpar} and second
+% argument of \cs{getmaxpar} is \meta{contract} not \meta{contractpars}}
+% \changes{scrjura-v0.5c}{2010/04/26}{\cs{contract@Clauseformat} expands while writing
+% to its own argument}
+% \changes{scrjura-v0.7}{2013/04/18}{using counter \cnt{contractAbsoluteClause}}
+% \changes{scrjura-v0.7}{2013/05/23}{initializing sentence number for manually
+% numbered paragraphs to 0 instead of 1, because first action of
+% \cs{Sentence} is increasing the number}
+% \changes{scrjura-v0.7}{2013/05/23}{recognize paragraph number of \cs{thisparnumber}}
+% \changes{scrjura-v0.7}{2013/06/06}{if paragraph numbers are not completely numerical
+% always set the number}
+% \changes{scrjura-v0.7b}{2014/11/03}{more flexible replacement of
+% \cnt{contractAbsoluteClause}}
+% \changes{scrjura-v0.9f}{2016/02/06}{\cs{nobreakspace} replaced by
+% \cs{parformatseparation}}
+% \changes{scrjura-v0.9g}{2016/03/25}{writing to \file{aux}-file \cs{if@filesw}}
+% \begin{macrocode}
+%<*body>
+\newcommand*{\contract@everypar}{%
+ \ifparnumber
+ \ifx\contract@special@par\relax
+ \ifx\contract@special@reset@par\relax\else
+ \global\let\thepar\contract@special@reset@par
+ \global\let\contract@special@reset@par\relax
+ \fi
+ \refstepcounter{par}%
+ \refstepcounter{sentence}%
+ \else
+ \ifx\contract@special@reset@par\relax
+ \global\let\contract@special@reset@par\thepar
+ \fi
+ \global\let\thepar\contract@special@par
+ \global\let\contract@special@par\relax
+ \setcounter{sentence}{0}\refstepcounter{sentence}%
+ \fi
+ \begingroup
+ \if@filesw
+ \protected@write\@auxout{%
+ \expandafter\let\csname \contract@env@type @Clauseformat\endcsname
+ \@firstofone
+ }{%
+ \string\newmaxpar{\contract@env@type}%
+ {\csname the\contract@env@type
+ AbsoluteClause\endcsname}%
+ {\thepar}%
+ }%
+ \fi
+ \getmaxpar\@tempa{\contract@env@type}%
+ {\csname the\contract@env@type AbsoluteClause\endcsname}%
+%<+trace> \typeout{Stored max is \@tempa}%
+ \def\reserved@a##1\@nnil{\def\@tempa{##1}}%
+ \afterassignment\reserved@a\@tempcnta=0\@tempa\relax\@nnil
+ \ifnum \@tempcnta>\@ne
+ {\usekomafont{parnumber}{\parformat\parformatseparation}}%
+ \else
+ \def\reserved@a{\relax}%
+ \ifx\@tempa\reserved@a
+ \withoutparnumber
+ \else
+ {\usekomafont{parnumber}{\parformat\parformatseparation}}%
+ \fi
+ \fi
+ \endgroup
+ \else
+ \begingroup\withoutparnumber\endgroup
+ \setcounter{sentence}{-1}\refstepcounter{sentence}%
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{command}{\thisparnumber}
+% \changes{scrjura-v0.7}{2013/05/23}{new}
+% \begin{macro}{\contract@special@par,\contract@special@reset@par}
+% \changes{scrjura-v0.7}{2013/05/23}{new}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@special@par} renamed}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@special@reset@par} renamed}
+% You can use this for manual paragraph numbering. But the number has to be
+% fully expandable!
+% \begin{macrocode}
+%<*body>
+\newcommand*{\thisparnumber}[1]{%
+ \def\contract@special@par{#1}%
+}
+\newcommand*{\contract@special@par}{}
+\let\contract@special@par\relax
+\newcommand*{\contract@special@reset@par}{}
+\let\contract@special@reset@par\relax
+%</body>
+% \end{macrocode}
+% \end{macro}%^^A \contract@special@par
+% \end{command}%^^A\thisparnumber
+%
+%
+% \section{Referencing}
+%
+% \begin{command}{\refL}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@L}
+% Similar to \cs{ref} but always the long form.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\refL}{\kernel@ifstar {\ref@L*}{\ref@L{}}}
+\newcommand*{\ref@L}[2]{%
+ \begingroup
+ \def\parcite@format{0}%
+ \let\sentencecite@format\parcite@format
+ \ref#1{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refS}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@S}
+% Similar to \cs{ref} but always the short form.
+% \begin{macrocode}
+\newcommand*{\refS}{\kernel@ifstar {\ref@S*}{\ref@S{}}}
+\newcommand*{\ref@S}[2]{%
+ \begingroup
+ \def\parcite@format{1}%
+ \let\sentencecite@format\parcite@format
+ \ref#1{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refN}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@N}
+% Similar to \cs{ref} but always the numerical form.
+% \begin{macrocode}
+\newcommand*{\refN}{\kernel@ifstar {\ref@N*}{\ref@N{}}}
+\newcommand*{\ref@N}[2]{%
+ \begingroup
+ \def\parcite@format{2}%
+ \let\sentencecite@format\parcite@format
+ \ref#1{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refClause}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@Clause}
+% Reference only the clause of a clause, paragraph or sentence. For better
+% compatibility with \pkg{hyperref} there is also a star version if
+% \pkg{hyperref} is used. Without \pkg{hyperref} the star version is nonsense.
+% \begin{macrocode}
+\newcommand*{\refClause}{%
+ \kernel@ifstar {\ref@Clause*}{\ref@Clause{}}
+}
+\newcommand*{\ref@Clause}[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax
+ \ref#1{#2}%
+ \else
+ \begingroup
+% \end{macrocode}
+% Copy all parts of the reference but the first one to \cs{@tempb}.
+% \begin{macrocode}
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\@tempb
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
+% \end{macrocode}
+% Copy the first part of the reference to \cs{@tempa}.
+% \begin{macrocode}
+ \def\@tempc##1##2\@nil{##1}%
+ \let\contract@separator\@gobble
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \csname r@#2\endcsname\noexpand\@nil}%
+% \end{macrocode}
+% Copy the first part of \cs{@tempa} to \cs{@tempb}.
+% \begin{macrocode}
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \@tempa\@nil}%
+ \let\@@protect\protect
+ \let\protect\noexpand
+ \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
+ \let\protect\@@protect
+ \ref#1{#2}%
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refClauseN}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@ClauseN}
+% Reference only the clause number of a clause, a paragraph or a sentence.
+% For improved compatibility with \pkg{hyperref} there is also a star version
+% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
+% nonsense.
+% \begin{macrocode}
+\newcommand*{\refClauseN}{%
+ \kernel@ifstar {\ref@ClauseN*}{\ref@ClauseN{}}
+}
+\newcommand*{\ref@ClauseN}[2]{%
+ \begingroup
+ \let\Clauseformat\relax
+ \ref@Clause{#1}{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refPar}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@Par}
+% References only the paragraph of a paragraph or sentence.
+% For improved compatibility with \pkg{hyperref} there is also a star version
+% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
+% nonsense.
+% \begin{macrocode}
+\newcommand*{\refPar}{%
+ \kernel@ifstar {\ref@Par*}{\ref@Par{}}
+}
+\newcommand*{\ref@Par}[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax
+ \ref#1{#2}%
+ \else
+ \begingroup
+% \end{macrocode}
+% Copy all parts of the reference but the first one to \cs{@tempb}.
+% \begin{macrocode}
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\@tempb
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
+% \end{macrocode}
+% Copy the first part of the reference to \cs{@tempa}.
+% \begin{macrocode}
+ \def\@tempc##1##2\@nil{##1}%
+ \let\contract@separator\@gobble
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \csname r@#2\endcsname\noexpand\@nil}%
+% \end{macrocode}
+% Copy the second part of \cs{@tempa} to \cs{@tempa} ablegen.
+% \begin{macrocode}
+ \def\@tempc##1##2##3\@nil{##2}%
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \@tempa{%
+ \protect\G@refundefinedtrue
+ \nfss@text{\reset@font\bfseries ??}%
+ \@latex@warning{Reference `#2' on page \thepage \space
+ with undefined par number}%
+ }\noexpand\@nil}%
+ \let\@@protect\protect
+ \let\protect\noexpand
+ \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
+ \let\protect\@@protect
+ \ref#1{#2}%
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refParL}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@ParX}
+% The same but long.
+% \begin{macrocode}
+\newcommand*{\refParL}{%
+ \kernel@ifstar {\ref@ParX0*}{\ref@ParX0{}}
+}
+\newcommand*{\ref@ParX}[3]{%
+ \begingroup
+ \def\parcite@format{#1}%
+ \let\sentencecite@format\parcite@format
+ \ref@Par{#2}{#3}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refParS}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% The same but short.
+% \begin{macrocode}
+\newcommand*{\refParS}{%
+ \kernel@ifstar {\ref@ParX1*}{\ref@ParX1{}}
+}
+% \end{macrocode}
+% \end{command}
+%
+% \begin{command}{\refParN}
+% \begin{macro}{\ref@ParN}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@@ParN}
+% The same but numerical.
+% \begin{macrocode}
+\newcommand*{\refParN}{%
+ \kernel@ifstar {\ref@ParN2*}{\ref@ParN2{}}
+}
+\newcommand*{\ref@ParN}[2]{%
+ \kernel@ifnextchar [%]
+ {\ref@@ParN{#1}{#2}}%
+ {\ref@ParX{#1}{#2}}%
+}
+\newcommand*{\ref@@ParN}{}
+\def\ref@@ParN#1#2[#3]#4{%
+ \begingroup
+ \renewcommand*{\parnumericformat}[1]{%
+ \csname @#3\endcsname{\number ##1\relax}%
+ }%
+ \ref@ParX{#1}{#2}{#4}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refSentence}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@Sentence}
+% Reference only the sentence of a sentence.
+% For improved compatibility with \pkg{hyperref} there is also a star version
+% if \pkg{hyperref} is used. Without \pkg{hyperref} the star version is
+% nonsense.
+% \begin{macrocode}
+\newcommand*{\refSentence}{%
+ \kernel@ifstar {\ref@Sentence*}{\ref@Sentence{}}
+}
+\newcommand*{\ref@Sentence}[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax
+ \ref#1{#2}%
+ \else
+ \begingroup
+% \end{macrocode}
+% Copy all parts of the reference to \cs{@tempb}.
+% \begin{macrocode}
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\@tempb
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter\@gobble\csname r@#2\endcsname}%
+% \end{macrocode}
+% Copy the first part of the reference to \cs{@tempa}.
+% \begin{macrocode}
+ \def\@tempc##1##2\@nil{##1}%
+ \let\contract@separator\@gobble
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \csname r@#2\endcsname\noexpand\@nil}%
+% \end{macrocode}
+% Copy the third part of \cs{@tempa} to \cs{@tempa}.
+% \begin{macrocode}
+ \def\@tempc##1##2##3##4\@nil{##3}%
+ \protected@edef\@tempa{\expandafter\expandafter\expandafter\@tempc
+ \@tempa{}{%
+ \protect\G@refundefinedtrue
+ \nfss@text{\reset@font\bfseries ??}%
+ \@latex@warning{Reference `#2' on page \thepage \space
+ with undefined sentence number}%
+ }\noexpand\@nil}%
+ \let\@@protect\protect
+ \let\protect\noexpand
+ \expandafter\edef\csname r@#2\endcsname{{\@tempa}\@tempb}%
+ \let\protect\@@protect
+ \ref#1{#2}%
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refSentenceL}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% \begin{macro}{\ref@SentenceX}
+% The same but long.
+% \begin{macrocode}
+\newcommand*{\refSentenceL}{%
+ \kernel@ifstar {\ref@SentenceX0*}{\ref@SentenceX0{}}
+}
+\newcommand*{\ref@SentenceX}[3]{%
+ \begingroup
+ \def\parcite@format{#1}%
+ \let\sentencecite@format\parcite@format
+ \ref@Sentence{#2}{#3}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \begin{command}{\refSentenceS}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% The same but short.
+% \begin{macrocode}
+\newcommand*{\refSentenceS}{%
+ \kernel@ifstar {\ref@SentenceX1*}{\ref@SentenceX1{}}
+}
+% \end{macrocode}
+% \end{command}
+%
+% \begin{command}{\refSentenceN}
+% \changes{scrjura-v0.9h}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}}
+% The same but numeric.
+% \begin{macrocode}
+\newcommand*{\refSentenceN}{%
+ \kernel@ifstar {\ref@SentenceX2*}{\ref@SentenceX2{}}
+}
+%</body>
+% \end{macrocode}
+% \end{command}
+%
+% \begin{macro}{\contract@sentence}
+% \changes{scrjura-v0.7a}{2014/01/28}{using \cs{textsuperscript}}
+% \changes{scrjura-v0.7a}{2014/01/28}{\cs{nobreak}\cs{hskip}\cs{z@} added to allow
+% hyphenation of the first word after the sentence mark}
+% Numbering of sentences.
+% \begin{counter}{sentence}
+% \begin{command}{\thesentence,\theHsentence}
+% \changes{scrjura-v3.41}{2023/06/24}{Ulrike Fischer requested to use \cs{def} instead
+% of \cs{newcommand*}}
+% \begin{macro}{\p@sentence}
+% \changes{scrjura-v3.27}{2019/10/09}{adaption for \LaTeX{} 2019-10-01}
+% The counter is used for numbering the sentences. It is important to add the
+% paragraph as parent object to labels. The original method to make it
+% possible to use \cs{thesentence} as an argument of \cs{p@sentence} does not
+% work any longer using \LaTeX{} 2019-10-01 or newer. It would result in an
+% error message. So the code has to be adapted to the new definition of
+% \cs{refstepcounter} in \LaTeX{} 2019-10-01. From this version it uses
+% \cs{labelformat}. Don't ask me, what I think about the fact, that every new
+% versions of \LaTeX{} can break existing packages and package authors have to
+% find out such incompatibilities on their own.
+% \begin{macrocode}
+%<*body>
+\newcounter{sentence}[par]
+\renewcommand*{\thesentence}{\arabic{sentence}}
+\def\theHsentence{\theHpar-\arabic{sentence}}
+\scr@ifundefinedorrelax{labelformat}{%
+ \renewcommand*{\p@sentence}{\expandafter\p@@sentence}
+ \newcommand*{\p@@sentence}[1]{\p@par{{\par@cite{\thepar}}%
+ \contract@separator{\nobreakspace}}{\sentence@cite{#1}}}%
+}{%
+ \labelformat{sentence}{\p@par{{\par@cite{\thepar}}%
+ \contract@separator{\nobreakspace}}{\sentence@cite{#1}}}%
+}
+\newcommand*{\contract@sentence}{%
+% \end{macrocode}
+% \changes{scrjura-v0.9e}{2015/11/04}{first start the paragraph then print the number}
+% \changes{scrjura-v3.26}{2018/07/20}{new font element \fnt{sentencenumber}}
+% \changes{scrjura-v3.26}{2018/07/20}{new formatting \cs{sentencenumberformat}}
+% For the numbering it is important not to increase the paragraph number at
+% the very beginning, because the paragraph already does so. To make this
+% work, the paragraph has to start before we print the number. But immediately
+% after a \env{minipage}, a list or a \cs{parbox} we should behave as not
+% being at the beginning of a paragraph.
+% \begin{macrocode}
+ \ifvmode
+ \if@endpe
+ \refstepcounter{sentence}%
+ \else
+ \leavevmode
+ \fi
+ \else
+ \refstepcounter{sentence}%
+ \fi
+ {\usekomafont{sentencenumber}{\sentencenumberformat}}%
+ \nobreak\hskip\z@
+}
+% \end{macrocode}
+% \begin{fontelement}{sentencenumber}
+% \begin{command}{\sentencenumberformat}
+% \changes{scrjura-v3.26}{2018/07/20}{new}
+% Formatting an font can be changed using font element \fnt{sentencenumber}
+% and command \cs{sentencenumberformat}. The last has the preset
+% \cs{textsuperscript}.
+% \begin{macrocode}
+\newkomafont{sentencenumber}{}
+\newcommand*{\sentencenumberformat}{\textsuperscript{\thesentence}}
+%</body>
+% \end{macrocode}
+% \end{command}
+% \end{fontelement}
+% \end{macro}
+% \end{command}
+% \end{counter}
+% \end{macro}
+%
+% \begin{macro}{\par@cite}
+% \begin{command}{\parciteformat}
+% \changes{scrjura-v0.5d}{2010/04/28}{argument moved}
+% Reference style for paragraphs.
+% \begin{macrocode}
+%<*body>
+\DeclareRobustCommand*{\par@cite}[1]{\parciteformat{#1}}
+\newcommand*{\parciteformat}[1]{%
+ \ifcase \parcite@format
+ \expandafter\parlongformat
+ \or
+ \expandafter\parshortformat
+ \or
+ \expandafter\parnumericformat
+ \else
+ \unskip\expandafter\@gobble
+ \fi
+ {#1}%
+}
+% \end{macrocode}
+% \end{command}
+% \end{macro}
+%
+% \begin{macro}{\sentence@cite}
+% \begin{command}{\sentenceciteformat}
+% \changes{scrjura-v0.5d}{2010/04/28}{argument moved}
+% Reference style for sentences. Preset is \cs{@arabic}.
+% \begin{macrocode}
+\DeclareRobustCommand*{\sentence@cite}[1]{\sentenceciteformat{#1}}
+\newcommand*{\sentenceciteformat}[1]{%
+ \ifcase \sentencecite@format
+ \expandafter\sentencelongformat
+ \or
+ \expandafter\sentenceshortformat
+ \or
+ \expandafter\sentencenumericformat
+ \else
+ \unskip\expandafter\@gobble
+ \fi
+ {#1}%
+}
+% \end{macrocode}
+% \end{command}
+% \end{macro}
+%
+% \begin{command}{\parlongformat,\parshortformat,\parnumericformat,
+% \sentencelongformat,\sentenceshortformat,
+% \sentencenumericformat}
+% The six formattings.
+% \begin{macrocode}
+\newcommand*{\parlongformat}[1]{\parname~#1}
+\newcommand*{\parshortformat}[1]{\parshortname~#1}
+\newcommand*{\parnumericformat}[1]{\@Roman{\number #1\relax}}
+\newcommand*{\sentencelongformat}[1]{\sentencename~#1}
+\newcommand*{\sentenceshortformat}[1]{\sentenceshortname~#1}
+\newcommand*{\sentencenumericformat}[1]{\@arabic{\number #1\relax}.}
+%</body>
+% \end{macrocode}
+% \end{command}
+%
+% \section{Language Dependent Names}
+%
+% \begin{command}{\parname,\parshortname,\sentencename,\sentenceshortname}
+% \begin{macro}{\contract@lang@error}
+% \changes{scrjura-v0.7}{2013/09/19}{Usage of \cs{PackageError} instead of
+% \cs{PackageErrorNoLine}}
+% \changes{scrjura-v3.24}{2017/05/29}{adaption for language name bug in
+% \pkg{babel}~3.10}
+% \changes{v0.0.1}{2023-10-10}{\cs{scrjura@lang@error} renamed}
+% The names of paragraphs and sentences and their short versions. The English
+% names are donated by ``m.eik''.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\parname}{Paragraph}
+\AtBeginDocument{%
+ \providecaptionname{german,ngerman,austrian,naustrian}\parname{Absatz}%
+ \providecaptionname{german,ngerman,austrian,naustrian}\parshortname{Abs.}%
+ \providecaptionname{german,ngerman,austrian,naustrian}\sentencename{Satz}%
+ \providecaptionname{german,ngerman,austrian,naustrian}\sentenceshortname{S.}%
+ \providecaptionname{english,american,british,canadian,%
+ USenglish,UKenglish,usenglish,ukenglish}\parname{paragraph}%
+ \providecaptionname{english,american,british,canadian,%
+ USenglish,UKenglish,usenglish,ukenglish}\parshortname{par.}%
+ \providecaptionname{english,american,british,canadian,%
+ USenglish,UKenglish,usenglish,ukenglish}\sentencename{sentence}%
+ \providecaptionname{english,american,british,canadian,%
+ USenglish,UKenglish,usenglish,ukenglish}\sentenceshortname{sent.}%
+}
+\providecommand*{\parname}{\contract@lang@error{\parname}}
+\providecommand*{\parshortname}{\contract@lang@error{\parshortname}}
+\providecommand*{\sentencename}{\contract@lang@error{\sentencename}}
+\providecommand*{\sentenceshortname}{\contract@lang@error{\sentenceshortname}}
+\newcommand*{\contract@lang@error}[1]{%
+ \PackageError{contract}{%
+ current language not supported%
+ }{%
+ Currently contract only supports languages `german', `ngerman',
+ `austrian',\MessageBreak
+ `naustrian', `english', `american', `british', `canadian',
+ `USenglish',\MessageBreak
+ `UKenglish', `usenglish`, and `ukenglish'.\MessageBreak
+ It seems, that you are using another language (maybe `\languagename') or
+ that\MessageBreak
+ your language selection isn't compatible to package `babel'.\MessageBreak
+ Because of this you have to define `\string#1' by yourself!\MessageBreak
+ It would be nice if you'll send your definitions to the author.%
+ }%
+ \textbf{??}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}
+% \end{command}
+%
+% \section{Using Values from last \LaTeX{} Run}
+%
+% \begin{command}{\newmaxpar}
+% \changes{scrjura-v0.6b}{2013/04/16}{\cs{\#1@Clauseformat} expands to its argument}
+% \begin{command}{\getmaxpar}
+% \changes{scrjura-v0.6}{2011/09/30}{argument no 3 is expanded using
+% \cs{protected@edef}}
+% \changes{scrjura-v0.5c}{2010/04/26}{\cs{protected@edef} replaced by \cs{edef}}
+% \changes{scrjura-v0.5c}{2010/04/26}{\cs{\#2@Clauseformat} expands to its argument}
+% Two helper macros, to save a counter in a \file{aux}-file and get the value
+% back or another value of it is not in the \file{aux}-file.
+% \begin{macrocode}
+%<*body>
+\newcommand*{\newmaxpar}[3]{%
+ \begingroup
+ \expandafter\let\csname #1@Clauseformat\endcsname\@firstofone
+ \protected@edef\@tempa{#2}\@onelevel@sanitize\@tempa
+ \expandafter\xdef\csname max@#1@\@tempa\endcsname{#3}%
+ \endgroup
+}
+\newcommand*{\getmaxpar}[3]{%
+ \begingroup
+ \expandafter\let\csname #2@Clauseformat\endcsname\@firstofone
+ \protected@edef\@tempa{#3}%
+ \@onelevel@sanitize\@tempa
+ \expandafter\ifx \csname max@#2@\@tempa\endcsname\relax
+ \edef\@tempa{\endgroup\edef\noexpand#1{\expandafter\the\value{par}}}%
+ \else
+ \edef\@tempa{\endgroup
+ \edef\noexpand#1{\csname max@#2@\@tempa\endcsname}}%
+ \fi
+ \@tempa
+}
+% \end{macrocode}
+% \changes{scrjura-v0.7b}{2014/11/10}{added fallback code to \file{aux}-file}
+% \changes{scrjura-v0.9g}{2015/03/25}{write to \file{aux}-file \cs{if@filesw}}
+% Because some users remove \pkg*{contract} from their documents without
+% deleting the \file{aux}-file, we add a fallback definition of \cs{newmaxpar}
+% to the \file{aux}-file. This avoids error messages because of undefined
+% \cs{newmaxpar}.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \string\providecommand*\string\newmaxpar[3]{}
+ }%
+ \fi
+}
+%</body>
+% \end{macrocode}
+% \end{command}
+% \end{command}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% TeX-engine: luatex-dev
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End:
+%
+% LocalWords: cautelar
diff --git a/macros/latex/contrib/contract/contract.pdf b/macros/latex/contrib/contract/contract.pdf
new file mode 100644
index 0000000000..9ac5b1c60f
--- /dev/null
+++ b/macros/latex/contrib/contract/contract.pdf
Binary files differ
diff --git a/macros/latex/contrib/nameauth/Makefile b/macros/latex/contrib/nameauth/Makefile
index 6bd5f42d95..44d46cbfeb 100644
--- a/macros/latex/contrib/nameauth/Makefile
+++ b/macros/latex/contrib/nameauth/Makefile
@@ -239,7 +239,7 @@ $(NAME).pdf : $(NAME).sty
# files as well.
$(NAME).sty : $(NAME).dtx
- $(BUILDENGINE)$(EXT) $(COREOPTS) $(ADDOPTS) $(NAME).dtx >/dev/null
+ $(BUILDENGINE)$(EXT) $(COREOPTS) $(ADDOPTS) $(NAME).dtx > /dev/null
#
# Examples and Testing Section
@@ -332,7 +332,7 @@ imageout : test07_02.pdf test09_01.pdf
.PHONY: tests images unpack clean exclean testclean distclean uninst ununstall
# Simply unpack the other supplied files from the dtx file.
-# Not usually deeded to build the package, but can be used,
+# Not usually needed to build the package, but can be used,
# for example, in case one accidentally deletes a file.
unpack :
diff --git a/macros/latex/contrib/nameauth/README.md b/macros/latex/contrib/nameauth/README.md
index 4f7b180364..dbcf3b3971 100644
--- a/macros/latex/contrib/nameauth/README.md
+++ b/macros/latex/contrib/nameauth/README.md
@@ -1,6 +1,6 @@
# 1. 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.
+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 instances.
# 2. Files in Zip Archive
@@ -35,7 +35,7 @@ If not using the tools above, one can download `nameauth.zip` from [CTAN](https:
**Please inspect the included `Makefile` before using it.**
-`Makefile` has an extensive comment on usage, as well as many other comments. This file lists all the programs that must be installed in order to use GNU make file, helping one to check for prerequisites and dependencies. This method is designed for a POSIX-compliant environment, such as GNU/Linux, various BSDs, MacOS, and WSL or Cygwin on Windows.
+`Makefile` has an extensive comment on usage, as well as many other comments. This file lists all the programs that must be installed in order to use the GNU make file, helping one to check for prerequisites and dependencies. This method is designed for a POSIX-compliant environment, such as GNU/Linux, various BSDs, MacOS, and WSL or Cygwin on Windows.
### 4.2.2 Prepare to Install, No Building
@@ -43,7 +43,7 @@ One does not need to build `nameauth` completely from source (although it may be
make unpack
-This target only unpack the supplied generated files from `nameauth.dtx`. It does not try to create the documentation. One will have the following files now:
+This target only unpacks the supplied generated files from `nameauth.dtx`. It does not try to create the documentation. One will have the following files now:
| Filename | Description | TDS-where to |
| :------------- | :------------------------- | :----------- |
@@ -67,11 +67,11 @@ Take a look at **4.2.3 Specific Build Cases** and, depending on the use case, sk
### 4.2.3 Specific Build Cases: Program Extensions
-Windows presents some interesting cases. Both Cygwin and WSL provide POSIX environments that include respective TeX distros of their own. Yet they also will operate with native Windows-based TeX distros like MiokTeX and TeXlive.
+Windows presents some interesting cases. Both Cygwin and WSL provide POSIX environments that include respective TeX distros of their own. Yet they also will operate with native Windows-based TeX distros like MikTeX and TeXlive.
When using the TeX distros built in to Cygwin and WSL exclusively, one can treat it basically as a POSIX-compliant environment.
-Even when using Cygwin and a Windows-based TeX distro, one can treat package building as being mostly the same as a POSIX environment if all the preqequisite programs are installed. Installation, however, must be manual.
+Even when using Cygwin and a Windows-based TeX distro, one can treat package building as being mostly the same as a POSIX environment if all the prerequisite programs are installed. Installation, however, must be manual.
When one uses WSL with a Windows-based TeX distro, the `Makefile` will test whether an ".exe" extension is needed by the programs used in the building process.
@@ -87,19 +87,19 @@ With both Cygwin and WSL, tests will determine if the standard POSIX method is c
Here is a table showing the feasibility of a few scenarios:
-| Platform | TeX Distro Platform | Build package and zip with make | Install package with make |
-| :------- | :------------------------ | :------------------------------ | :------------------------------ |
-| POSIX | POSIX | Yes<sup>1</sup> | Yes |
-| Cygwin | Cygwin (distro packages) | Not tested; likely<sup>1</sup> | Not tested; likely <sup>2</sup> |
-| Cygwin | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
-| Cygwin | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
-| Cygwin | Both Cygwin and Windows | Not tested; not recommended | Not tested; not recommended |
-| WSL | WSL Linux distro packages | Yes<sup>1</sup> | Yes<sup>5</sup> |
-| WSL | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
-| WSL | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
-| WSL | Both WSL and Windows | Not tested; not recommended | Not tested; not recommended |
-| WSL/Cyg | Both WSL and Cygwin | Not tested; not recommended | Not tested; not recommended |
-| GNUWin | any (Windows) | Not tested; not recommended | Not tested; not recommended |
+| Platform | TeX Distro Platform | Make builds pkg/zip | Make installs package |
+| :------- | :------------------ | :----------------------------- | :------------------------------ |
+| POSIX | POSIX | Yes<sup>1</sup> | Yes |
+| Cygwin | Cygwin (packages) | Not tested; likely<sup>1</sup> | Not tested; likely <sup>2</sup> |
+| Cygwin | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
+| Cygwin | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
+| Cygwin | Cygwin and Windows | Not tested; not recommended | Not tested; not recommended |
+| WSL | WSL Linux packages | Yes<sup>1</sup> | Yes<sup>5</sup> |
+| WSL | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
+| WSL | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
+| WSL | WSL and Windows | Not tested; not recommended | Not tested; not recommended |
+| WSL/Cyg | WSL and Cygwin | Not tested; not recommended | Not tested; not recommended |
+| GNUWin | any (Windows) | Not tested; not recommended | Not tested; not recommended |
<sup>1</sup> All dependencies must be met. Bear in mind MacOS quirks.
@@ -127,7 +127,7 @@ Assuming that one has a use case where one can use GNU make, one can choose the
If, for some reason, this fails, do a manual install (below).
-Note that these make targets depend on `package`, which does not do a clean build. To ensure a clean build, use `make release inst` or `make release install`.
+Note that these make targets depend on `package`, which does not do a clean build. If one desires a clean build that is followed by an install, use `make release inst` or `make release install`.
### 4.2.6 Removal
@@ -181,22 +181,22 @@ One may skip past building to **4.3.3 Installation Prerequisites** below.
Now we should have the following files:
-| Filename | Description |
-| :------------- | :--------------------------- |
-| `Makefile` | for use with GNU make |
-| `cat01.pdf` | manual illustration, ch. 7 |
-| `beamer01.pdf` | manual illustration, ch. 9 |
-| `beamer02.pdf` | manual illustration, ch. 9 |
-| `beamer03.pdf` | manual illustration, ch. 9 |
-| `nameauth.dtx` | commented style file |
-| | |
-| `compat.tex` | compatibility module |
-| `examples.tex` | example file |
-| `nameauth.pdf` | package documentation |
-| `README.md` | this file |
-| | |
-| `nameauth.ins` | installation driver |
-| `nameauth.sty` | style file |
+| Filename | Description |
+| :------------- | :------------------------- |
+| `Makefile` | for use with GNU make |
+| `cat01.pdf` | manual illustration, ch. 7 |
+| `beamer01.pdf` | manual illustration, ch. 9 |
+| `beamer02.pdf` | manual illustration, ch. 9 |
+| `beamer03.pdf` | manual illustration, ch. 9 |
+| `nameauth.dtx` | commented style file |
+| | |
+| `compat.tex` | compatibility module |
+| `examples.tex` | example file |
+| `nameauth.pdf` | package documentation |
+| `README.md` | this file |
+| | |
+| `nameauth.ins` | installation driver |
+| `nameauth.sty` | style file |
In addition, we have the following temporary files:
@@ -304,17 +304,17 @@ Create the directories in the left-hand column, or whatever one needs to do in o
* The documentation now builds only with `pdflatex`, but the examples and tests can use any LaTeX engine. This is because several typesetting decisions that are quite helpful for the manual work only with `pdflatex`.
-* This release was tested on Linux (Pop! OS; vanilla TL 2022 and 2017) and Windows 10 (MikTeX with both Cygwin and WSL). The tests using TL 2017 include my published book manuscript, *Breath of God, Yet Work of Man: Scripture, Philosophy, Dialogue, and Conflict*, with Dr. Albert B. Collver III.
+* This release was tested on Linux (Pop! OS; vanilla TL 2023 and 2017) and Windows 10 (MikTeX using shells from both Cygwin and WSL). The tests using TL 2017 include my published book manuscript, *Breath of God, Yet Work of Man: Scripture, Philosophy, Dialogue, and Conflict*, with Dr. Albert B. Collver III.
-* The CTAN release was created with vanilla TL 2022 on Pop! OS. The most recent `equivs` file was used to meet package equivalencies. See also [this page](https://tug.org/texlive/debian.html).
+* The CTAN release was created with vanilla TL 2023 on Pop! OS. The most recent `equivs` file was used to meet package equivalences. See also [this page](https://tug.org/texlive/debian.html).
-* TeXlive 2022 and TL 2017 are managed on Pop! OS using [tl-switch](https://github.com/ServusCarolus/tl-switch).
+* TeXlive 2023 and TL 2017 are managed on Pop! OS using [tl-switch](https://github.com/ServusCarolus/tl-switch).
* Four pdf files (`cat01.pdf` and `beamer*.pdf`) used in graphic illustrations are created from the output of test files associated with this manual (see below). Normally, the user need not generate them; they are supplied as source files.
# 6. Examples / Testing
-The file `examples.tex`, which also uses `compat.tex`, usually should be enough to illustrate various non-trivial features of this package. It includes most of the longer examples in the manual, edited to fit together in a single document.
+The file `examples.tex`, also includes `compat.tex`; they should be in the same directory when compiled. The examples document should be enough to illustrate various non-trivial features of this package. It includes most of the longer examples in the manual, edited to fit together in a single document. It also includes other material and tests.
In addition to this file, a special run of `nameauth.dtx` that defines the macro `\NameauthDoTestFiles` will generate many separate test files. Normally they are written out to `nameauth.tmp` and read in again as verbatim text. They are not included in the package archive by default in order to minimize clutter.
@@ -324,6 +324,8 @@ To test `nameauth`, either test the files right after installing, or create a ne
* Use the default: `make examples`.
+* If one wants to change engines and re-test the file, type `make exclean`.
+
* To create `examples.pdf` with other LaTeX engines, one can do the following:
make examples ENGINE=xelatex
@@ -331,19 +333,19 @@ To test `nameauth`, either test the files right after installing, or create a ne
make examples ENGINE=dvilualatex
make examples ENGINE=latex
-* If one wants to change engines and re-test the file, type `make exclean`.
-
* To generate additional test files, type `make tests`.
- This will produce many test files numbered by chapter and example within that chapter from the `nameauth.dtx` file. It will compile all of the test files using `pdflatex`. One can add the value of ENGINE:
+ This will produce many test files numbered by chapter and example within that chapter from the `nameauth.dtx` file. By default it will compile all of the test files using `pdflatex`.
+
+* If one wants to change engines and re-test the files, type `make testclean`.
+
+* One can add the value of ENGINE:
make tests ENGINE=xelatex
make tests ENGINE=lualatex
make tests ENGINE=dvilualatex
make tests ENGINE=latex
-* If one wants to change engines and re-test the files, type `make testclean`.
-
* If, for some reason, one wanted to make the manual illustrations (usually not required), one would type `make images`.
## 6.2 Manual Method
@@ -369,7 +371,7 @@ Another step is used only with `latex` and `dvilualatex`. We default to `dvipdfm
dvipdfmx examples
-If one changes LaTeX engines, one must remove all of the auxiliary files.
+If one changes LaTeX engines, one first must remove all of the auxiliary files.
### 6.2.2 Tests
@@ -396,7 +398,7 @@ This step is used only when using `latex` and `dvilualatex`.
dvipdfmx test01-01
-If one changes LaTeX engines, one must remove all of the auxiliary files.
+If one changes LaTeX engines, one first must remove all of the auxiliary files.
### 6.2.3 Images
@@ -427,27 +429,35 @@ Compile the test files:
# 7. Additional Notes
-In version 3.7 I spent over seven months analyzing and optimizing both code and documentation. Stepping away from this package for a bit gave me the perspective and clarity to improve it greatly.
+Version 4.0 switches from `xargs` and `suffix` to `xparse`. Should any modifications still require `xargs` and `suffix`, one can use the `oldargs` package option.
+
+Improvements in version 4.0 include:
+
+* Change to `xparse`, which increases power and flexibility going forward.
+
+* Further changes to the manual that make it more readable and consistent.
+
+Version 3.7 remains here: [style](https://www.tug.org/svn/texlive/branches/branch2022.final/Master/texmf-dist/tex/latex/nameauth/), [docs](https://www.tug.org/svn/texlive/branches/branch2022.final/Master/texmf-dist/doc/latex/nameauth/), and [source](https://www.tug.org/svn/texlive/branches/branch2022.final/Master/texmf-dist/source/latex/nameauth/).
-* I cast aside a number of stale presuppositions that had built up over time. I explored all the ways that one could use certain features and fixed the bugs that appeared by using a better general approach.
+Improvements in version 3.7 include:
-* I brought back some thorough tests reminiscent of early package versions, but moved to the examples file.
+* Rejection of stale assumptions that had built up over time, based either on initial ignorance or on features that have since changed in LaTeX.
-* I rewrote the documentation to remove a lot of idiosyncratic formatting. It looks much cleaner, both as source code and as typeset documentation.
+* The examples file contains some tests that used to be in the documentation.
-* Extensive rewriting has led to the TOC becoming the principal expression of scope and sequence. The goal was greater rigor in keeping the easy stuff easy and the complex stuff more accessible.
+* Major rewrite of documentation.
-* The package itself has been reorganized to follow the same sequence as the documentation, letting the rhythm of repetition aid learning. One sees this right away in the TOC.
+* The table of contents better frflects scope and sequence.
-* Several macros have been optimized, leading to simpler and cleaner designs that are easier to debug.
+* The package itself has been reorganized to follow the same scope and sequence as the documentation.
-* A few bugs that could result from directly changing internal package flags have been fixed, allowing the user-accessible parser to work in all cases as intended.
+* Several macros have been optimized, leading to simpler and cleaner designs that are easier to debug. Additional bug fixes ensure stability,
-* Any name arguments shown in warnings are detokenized in order to prevent potential errors. Regressions caused by a reverted edit in an earlier version that I failed to catch caused several package warnings to halt with errors. These "lameauth" errors are fixed.
+* Name arguments shown in package warnings are detokenized in order to prevent potential errors.
# 8. Copyright
-Copyright (C) 2023 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+Copyright (C) 2024 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
diff --git a/macros/latex/contrib/nameauth/nameauth.dtx b/macros/latex/contrib/nameauth/nameauth.dtx
index 448c9f9a28..6c7589aa3e 100644
--- a/macros/latex/contrib/nameauth/nameauth.dtx
+++ b/macros/latex/contrib/nameauth/nameauth.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2023 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+% Copyright (C) 2024 by Charles P. Schaum <charles[dot]schaum@comcast.net>
% -------------------------------------------------------
%
% This file may be distributed and/or modified under the
@@ -20,7 +20,7 @@
%<<readmevb
# 1. 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.
+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 instances.
# 2. Files in Zip Archive
@@ -55,7 +55,7 @@ If not using the tools above, one can download `nameauth.zip` from [CTAN](https:
**Please inspect the included `Makefile` before using it.**
-`Makefile` has an extensive comment on usage, as well as many other comments. This file lists all the programs that must be installed in order to use GNU make file, helping one to check for prerequisites and dependencies. This method is designed for a POSIX-compliant environment, such as GNU/Linux, various BSDs, MacOS, and WSL or Cygwin on Windows.
+`Makefile` has an extensive comment on usage, as well as many other comments. This file lists all the programs that must be installed in order to use the GNU make file, helping one to check for prerequisites and dependencies. This method is designed for a POSIX-compliant environment, such as GNU/Linux, various BSDs, MacOS, and WSL or Cygwin on Windows.
### 4.2.2 Prepare to Install, No Building
@@ -63,7 +63,7 @@ One does not need to build `nameauth` completely from source (although it may be
make unpack
-This target only unpack the supplied generated files from `nameauth.dtx`. It does not try to create the documentation. One will have the following files now:
+This target only unpacks the supplied generated files from `nameauth.dtx`. It does not try to create the documentation. One will have the following files now:
| Filename | Description | TDS-where to |
| :------------- | :------------------------- | :----------- |
@@ -87,11 +87,11 @@ Take a look at **4.2.3 Specific Build Cases** and, depending on the use case, sk
### 4.2.3 Specific Build Cases: Program Extensions
-Windows presents some interesting cases. Both Cygwin and WSL provide POSIX environments that include respective TeX distros of their own. Yet they also will operate with native Windows-based TeX distros like MiokTeX and TeXlive.
+Windows presents some interesting cases. Both Cygwin and WSL provide POSIX environments that include respective TeX distros of their own. Yet they also will operate with native Windows-based TeX distros like MikTeX and TeXlive.
When using the TeX distros built in to Cygwin and WSL exclusively, one can treat it basically as a POSIX-compliant environment.
-Even when using Cygwin and a Windows-based TeX distro, one can treat package building as being mostly the same as a POSIX environment if all the preqequisite programs are installed. Installation, however, must be manual.
+Even when using Cygwin and a Windows-based TeX distro, one can treat package building as being mostly the same as a POSIX environment if all the prerequisite programs are installed. Installation, however, must be manual.
When one uses WSL with a Windows-based TeX distro, the `Makefile` will test whether an ".exe" extension is needed by the programs used in the building process.
@@ -107,19 +107,19 @@ With both Cygwin and WSL, tests will determine if the standard POSIX method is c
Here is a table showing the feasibility of a few scenarios:
-| Platform | TeX Distro Platform | Build package and zip with make | Install package with make |
-| :------- | :------------------------ | :------------------------------ | :------------------------------ |
-| POSIX | POSIX | Yes<sup>1</sup> | Yes |
-| Cygwin | Cygwin (distro packages) | Not tested; likely<sup>1</sup> | Not tested; likely <sup>2</sup> |
-| Cygwin | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
-| Cygwin | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
-| Cygwin | Both Cygwin and Windows | Not tested; not recommended | Not tested; not recommended |
-| WSL | WSL Linux distro packages | Yes<sup>1</sup> | Yes<sup>5</sup> |
-| WSL | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
-| WSL | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
-| WSL | Both WSL and Windows | Not tested; not recommended | Not tested; not recommended |
-| WSL/Cyg | Both WSL and Cygwin | Not tested; not recommended | Not tested; not recommended |
-| GNUWin | any (Windows) | Not tested; not recommended | Not tested; not recommended |
+| Platform | TeX Distro Platform | Make builds pkg/zip | Make installs package |
+| :------- | :------------------ | :----------------------------- | :------------------------------ |
+| POSIX | POSIX | Yes<sup>1</sup> | Yes |
+| Cygwin | Cygwin (packages) | Not tested; likely<sup>1</sup> | Not tested; likely <sup>2</sup> |
+| Cygwin | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
+| Cygwin | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
+| Cygwin | Cygwin and Windows | Not tested; not recommended | Not tested; not recommended |
+| WSL | WSL Linux packages | Yes<sup>1</sup> | Yes<sup>5</sup> |
+| WSL | MikTeX (Windows) | Yes<sup>1, 3</sup> | No;<sup>4</sup> do manually |
+| WSL | TeXlive (Windows) | Not tested; likely<sup>1</sup> | Not tested; do manually |
+| WSL | WSL and Windows | Not tested; not recommended | Not tested; not recommended |
+| WSL/Cyg | WSL and Cygwin | Not tested; not recommended | Not tested; not recommended |
+| GNUWin | any (Windows) | Not tested; not recommended | Not tested; not recommended |
<sup>1</sup> All dependencies must be met. Bear in mind MacOS quirks.
@@ -147,7 +147,7 @@ Assuming that one has a use case where one can use GNU make, one can choose the
If, for some reason, this fails, do a manual install (below).
-Note that these make targets depend on `package`, which does not do a clean build. To ensure a clean build, use `make release inst` or `make release install`.
+Note that these make targets depend on `package`, which does not do a clean build. If one desires a clean build that is followed by an install, use `make release inst` or `make release install`.
### 4.2.6 Removal
@@ -201,22 +201,22 @@ One may skip past building to **4.3.3 Installation Prerequisites** below.
Now we should have the following files:
-| Filename | Description |
-| :------------- | :--------------------------- |
-| `Makefile` | for use with GNU make |
-| `cat01.pdf` | manual illustration, ch. 7 |
-| `beamer01.pdf` | manual illustration, ch. 9 |
-| `beamer02.pdf` | manual illustration, ch. 9 |
-| `beamer03.pdf` | manual illustration, ch. 9 |
-| `nameauth.dtx` | commented style file |
-| | |
-| `compat.tex` | compatibility module |
-| `examples.tex` | example file |
-| `nameauth.pdf` | package documentation |
-| `README.md` | this file |
-| | |
-| `nameauth.ins` | installation driver |
-| `nameauth.sty` | style file |
+| Filename | Description |
+| :------------- | :------------------------- |
+| `Makefile` | for use with GNU make |
+| `cat01.pdf` | manual illustration, ch. 7 |
+| `beamer01.pdf` | manual illustration, ch. 9 |
+| `beamer02.pdf` | manual illustration, ch. 9 |
+| `beamer03.pdf` | manual illustration, ch. 9 |
+| `nameauth.dtx` | commented style file |
+| | |
+| `compat.tex` | compatibility module |
+| `examples.tex` | example file |
+| `nameauth.pdf` | package documentation |
+| `README.md` | this file |
+| | |
+| `nameauth.ins` | installation driver |
+| `nameauth.sty` | style file |
In addition, we have the following temporary files:
@@ -324,17 +324,17 @@ Create the directories in the left-hand column, or whatever one needs to do in o
* The documentation now builds only with `pdflatex`, but the examples and tests can use any LaTeX engine. This is because several typesetting decisions that are quite helpful for the manual work only with `pdflatex`.
-* This release was tested on Linux (Pop! OS; vanilla TL 2022 and 2017) and Windows 10 (MikTeX with both Cygwin and WSL). The tests using TL 2017 include my published book manuscript, *Breath of God, Yet Work of Man: Scripture, Philosophy, Dialogue, and Conflict*, with Dr. Albert B. Collver III.
+* This release was tested on Linux (Pop! OS; vanilla TL 2023 and 2017) and Windows 10 (MikTeX using shells from both Cygwin and WSL). The tests using TL 2017 include my published book manuscript, *Breath of God, Yet Work of Man: Scripture, Philosophy, Dialogue, and Conflict*, with Dr. Albert B. Collver III.
-* The CTAN release was created with vanilla TL 2022 on Pop! OS. The most recent `equivs` file was used to meet package equivalencies. See also [this page](https://tug.org/texlive/debian.html).
+* The CTAN release was created with vanilla TL 2023 on Pop! OS. The most recent `equivs` file was used to meet package equivalences. See also [this page](https://tug.org/texlive/debian.html).
-* TeXlive 2022 and TL 2017 are managed on Pop! OS using [tl-switch](https://github.com/ServusCarolus/tl-switch).
+* TeXlive 2023 and TL 2017 are managed on Pop! OS using [tl-switch](https://github.com/ServusCarolus/tl-switch).
* Four pdf files (`cat01.pdf` and `beamer*.pdf`) used in graphic illustrations are created from the output of test files associated with this manual (see below). Normally, the user need not generate them; they are supplied as source files.
# 6. Examples / Testing
-The file `examples.tex`, which also uses `compat.tex`, usually should be enough to illustrate various non-trivial features of this package. It includes most of the longer examples in the manual, edited to fit together in a single document.
+The file `examples.tex`, also includes `compat.tex`; they should be in the same directory when compiled. The examples document should be enough to illustrate various non-trivial features of this package. It includes most of the longer examples in the manual, edited to fit together in a single document. It also includes other material and tests.
In addition to this file, a special run of `nameauth.dtx` that defines the macro `\NameauthDoTestFiles` will generate many separate test files. Normally they are written out to `nameauth.tmp` and read in again as verbatim text. They are not included in the package archive by default in order to minimize clutter.
@@ -344,6 +344,8 @@ To test `nameauth`, either test the files right after installing, or create a ne
* Use the default: `make examples`.
+* If one wants to change engines and re-test the file, type `make exclean`.
+
* To create `examples.pdf` with other LaTeX engines, one can do the following:
make examples ENGINE=xelatex
@@ -351,19 +353,19 @@ To test `nameauth`, either test the files right after installing, or create a ne
make examples ENGINE=dvilualatex
make examples ENGINE=latex
-* If one wants to change engines and re-test the file, type `make exclean`.
-
* To generate additional test files, type `make tests`.
- This will produce many test files numbered by chapter and example within that chapter from the `nameauth.dtx` file. It will compile all of the test files using `pdflatex`. One can add the value of ENGINE:
+ This will produce many test files numbered by chapter and example within that chapter from the `nameauth.dtx` file. By default it will compile all of the test files using `pdflatex`.
+
+* If one wants to change engines and re-test the files, type `make testclean`.
+
+* One can add the value of ENGINE:
make tests ENGINE=xelatex
make tests ENGINE=lualatex
make tests ENGINE=dvilualatex
make tests ENGINE=latex
-* If one wants to change engines and re-test the files, type `make testclean`.
-
* If, for some reason, one wanted to make the manual illustrations (usually not required), one would type `make images`.
## 6.2 Manual Method
@@ -389,7 +391,7 @@ Another step is used only with `latex` and `dvilualatex`. We default to `dvipdfm
dvipdfmx examples
-If one changes LaTeX engines, one must remove all of the auxiliary files.
+If one changes LaTeX engines, one first must remove all of the auxiliary files.
### 6.2.2 Tests
@@ -416,7 +418,7 @@ This step is used only when using `latex` and `dvilualatex`.
dvipdfmx test01-01
-If one changes LaTeX engines, one must remove all of the auxiliary files.
+If one changes LaTeX engines, one first must remove all of the auxiliary files.
### 6.2.3 Images
@@ -447,27 +449,35 @@ Compile the test files:
# 7. Additional Notes
-In version 3.7 I spent over seven months analyzing and optimizing both code and documentation. Stepping away from this package for a bit gave me the perspective and clarity to improve it greatly.
+Version 4.0 switches from `xargs` and `suffix` to `xparse`. Should any modifications still require `xargs` and `suffix`, one can use the `oldargs` package option.
+
+Improvements in version 4.0 include:
-* I cast aside a number of stale presuppositions that had built up over time. I explored all the ways that one could use certain features and fixed the bugs that appeared by using a better general approach.
+* Change to `xparse`, which increases power and flexibility going forward.
-* I brought back some thorough tests reminiscent of early package versions, but moved to the examples file.
+* Further changes to the manual that make it more readable and consistent.
-* I rewrote the documentation to remove a lot of idiosyncratic formatting. It looks much cleaner, both as source code and as typeset documentation.
+Version 3.7 remains here: [style](https://www.tug.org/svn/texlive/branches/branch2022.final/Master/texmf-dist/tex/latex/nameauth/), [docs](https://www.tug.org/svn/texlive/branches/branch2022.final/Master/texmf-dist/doc/latex/nameauth/), and [source](https://www.tug.org/svn/texlive/branches/branch2022.final/Master/texmf-dist/source/latex/nameauth/).
-* Extensive rewriting has led to the TOC becoming the principal expression of scope and sequence. The goal was greater rigor in keeping the easy stuff easy and the complex stuff more accessible.
+Improvements in version 3.7 include:
-* The package itself has been reorganized to follow the same sequence as the documentation, letting the rhythm of repetition aid learning. One sees this right away in the TOC.
+* Rejection of stale assumptions that had built up over time, based either on initial ignorance or on features that have since changed in LaTeX.
-* Several macros have been optimized, leading to simpler and cleaner designs that are easier to debug.
+* The examples file contains some tests that used to be in the documentation.
-* A few bugs that could result from directly changing internal package flags have been fixed, allowing the user-accessible parser to work in all cases as intended.
+* Major rewrite of documentation.
-* Any name arguments shown in warnings are detokenized in order to prevent potential errors. Regressions caused by a reverted edit in an earlier version that I failed to catch caused several package warnings to halt with errors. These "lameauth" errors are fixed.
+* The table of contents better frflects scope and sequence.
+
+* The package itself has been reorganized to follow the same scope and sequence as the documentation.
+
+* Several macros have been optimized, leading to simpler and cleaner designs that are easier to debug. Additional bug fixes ensure stability,
+
+* Name arguments shown in package warnings are detokenized in order to prevent potential errors.
# 8. Copyright
-Copyright (C) 2023 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+Copyright (C) 2024 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
@@ -497,7 +507,7 @@ version 2005/12/01 or later.
This is a generated file.
-Copyright (C) 2023 by Charles P. Schaum <charles[dot]schaum@comcast.net>
+Copyright (C) 2024 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
@@ -549,7 +559,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<package>\ProvidesPackage{nameauth}
%<*package>
- [2023/02/03 3.7 Name authority mechanism for consistency in text and index]
+ [2024/02/09 4.0 Name authority mechanism for consistency in text and index]
%</package>
%
%<*driver>
@@ -557,61 +567,82 @@ and version 1.3 or later is part of all distributions of LaTeX version
\documentclass[11pt]{ltxdoc}
-%^^A Below we check if our TL distribution has the iftex package and load it.
-\IfFileExists{iftex.sty}{\usepackage{iftex}}{}
+%^^A %%%%% General layout %%%%%
-%^^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.
-\unless\ifdefined\RequireTUTeX
- \usepackage{ifxetex}
- \usepackage{ifluatex}
- \usepackage{ifpdf}
-\fi
+%^^A Set up page layout to fit both letter and DIN A4.
+\usepackage[paperheight=279.4mm,paperwidth=210mm,
+ textheight=239.4mm,textwidth=140mm,
+ right=20mm,marginparwidth=40mm,nohead]{geometry}
+
+%^^A Permit horizontal boxes to be overfull.
+\hfuzz=3pt
+
+%^^A Define negative skip values if needed.
+\newcommand\negsmallskip{\vspace{-\smallskipamount}}
+\newcommand\negmedskip{\vspace{-\medskipamount}}
+\newcommand\negbigskip{\vspace{-\bigskipamount}}
+
+%^^A Redefine emphasis in the body text because italic has dedicated uses.
+\let\oldemph\emph
+\let\emph\textbf
+
+%^^A %%%%% Detecting LaTeX engine used %%%%%
+
+%^^A Since we only use pdflatex to make the documentation,
+%^^A this section is not as much of a big deal as it used to be.
+%^^A We still use these macros for some detection examples.
-%^^A We only use pdflatex to make the documentation.
+%^^A We need etoolbox for this functionality.
+\usepackage{etoolbox}
+
+%^^A Provide a macro to check against latex versions and set a flag.
+%^^A This must be done in the document preamble.
+%^^A We use the date 2018/10/05 because that is when unicode
+%^^A processing changed for the better.
+%^^A We use the date 2018/04/30 because that is when xparse
+%^^A added the ! modifier.
+\makeatletter
+ \@ifl@t@r\fmtversion{2018/10/05}{\def\nameauthltx{}}{}
+ \@ifl@t@r\fmtversion{2018/04/30}{\def\nameauthxp{}}{}
+\makeatother
+
+%^^A %%%%% Set up fonts and typography %%%%%
+
+%^^A Again, this is specific to our use of pdflatex.
+%^^A We do not load inputenc unless we are using an old distro.
\IfFileExists{utf8-2018.def}{}{\usepackage[utf8]{inputenc}}
-\usepackage[TS1,T1]{fontenc}
-\usepackage{textcomp} %^^A For backward compatibility
-\usepackage[ngerman,american]{babel}
+
+\usepackage[LGR,TS1,T1]{fontenc}
+
+%^^A We load textcomp for backward compatibility.
+\usepackage{textcomp}
+
+%^^A We demonstrate hyphenation only with English and German.
+%^^A Otherwise we don't hyphenate any other languages.
+\usepackage[ngerman,latin,polutonikogreek,american]{babel}
\newcommand\de[1]{\foreignlanguage{ngerman}{#1}}
+\newcommand{\la}[1]{\foreignlanguage{latin}{#1}}
+\newcommand{\el}[1]{\foreignlanguage{polutonikogreek}{#1}}
+
+%^^A The Latin Modern font gives us the glyphs that we need.
\usepackage{lmodern}
+
+%^^A This bit is for an example that involves accents and names.
\usepackage{newunicodechar}
\DeclareTextSymbolDefault{\textlongs}{TS1}
\DeclareTextSymbol{\textlongs}{TS1}{115}
\newunicodechar{Å¿}{\textlongs}
-%^^A Finish with fonts and micro-typography.
+%^^A Load the dangerous bend symbol and microtypography..
\usepackage{manfnt}
\usepackage{microtype}
-%^^A This helps track down any stray or unintended changes to font sizes.
-\let\savegraf\everypar
-\makeatletter
-\newcommand\FontDebugStart
-{%^^A
- \let\oldep\everypar%^^A
- \newtoks\everypar%^^A
- \oldep{\the\everypar \llap{\f@size pt\hspace{4em plus 1fil minus 1em}}}%^^A
-}
-\newcommand\FontDebugStop
-{%^^A
- \let\oldep\savegraf%^^A
- \oldep{\the\everypar}%^^A
-}
-\makeatother
-
-%^^A Add fancy graphical features
-\usepackage{tikz}
-\usepackage{tcolorbox}
+%^^A Do not automatically put extra space after a full stop.
+\frenchspacing
-%^^A Set basic format for boxes drawn by TikZ.
-\tcbset{fonttitle=\bfseries\sffamily,box align=top,lower separated=false}
+%^^A %%%%% Set up specific document elements %%%%%
-%^^A Set up page layout to fit both letter and DIN A4.
-\usepackage[paperheight=279.4mm,paperwidth=210mm,
- textheight=239.4mm,textwidth=140mm,
- right=20mm,marginparwidth=40mm,nohead]{geometry}
+%^^A ----- TOC and index -----
%^^A Two-column TOC
\usepackage[toc]{multitoc}
@@ -621,28 +652,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%^^A These options allow the index to focus on names in the index more
%^^A like one might see in a normal document.
-%^^A \DisableCrossrefs
+%^^A We do not use \DisableCrossrefs
\CodelineIndex
\RecordChanges
-\frenchspacing
-
-%^^A Include specifically the current version of the package.
-\usepackage{\jobname}[2023/02/03]
-
-%^^A Set up the ``actual'' character
-\IndexActual{=}
-
-%^^A Set up all tabular packages. Booktabs makes them pretty,
-%^^A colortabl shades rows.
-\usepackage{booktabs}
-\usepackage{colortbl}
-
-%^^A Set up lists.
-\usepackage[inline]{enumitem}
-\setlist{rightmargin=\leftmargin,itemsep=0pt}
-%^^A Use underlining in certain contexts.
-\usepackage{soulutf8}
+%^^A ----- Color and graphical diagram elements -----
%^^A Color helps categorize information.
\usepackage{xcolor}
@@ -653,33 +667,20 @@ and version 1.3 or later is part of all distributions of LaTeX version
\colorlet{naslate}{cyan!45!black}
\colorlet{nagrey}{black!7!white}
-%^^A Use color indicators in a couple of tables.
+%^^A Use color for yes/no indicators in tables.
\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 Let verbatim environments be fancy.
-\usepackage{fancyvrb}
-
-%^^A Define fancyvrb defaults.
-\fvset{gobble=2,numbers=left,fontsize=\small}
-
-%^^A Tweak spacing as needed
-\usepackage{setspace}
+%^^A Diagrams
+\usepackage{tikz}
+\usepackage{tcolorbox}
-%^^A Define some stretch if needed
-\newcommand\smallstretch{\setstretch{1.05}}
-\newcommand\medstretch{\setstretch{1.1}}
-\newcommand\bigstretch{\setstretch{1.2}}
+%^^A Set basic format for tcolorboxes drawn by TikZ.
+\tcbset{fonttitle=\bfseries\sffamily,box align=top,lower separated=false}
-%^^A Permit horizontal boxes to be overfull.
-\hfuzz=3pt
-
-%^^A Define negative skip values if needed.
-\newcommand\negsmallskip{\vspace{-\smallskipamount}}
-\newcommand\negmedskip{\vspace{-\medskipamount}}
-\newcommand\negbigskip{\vspace{-\bigskipamount}}
+%^^A ----- Hyperlinks and URLs -----
%^^A Have documentation with hyperlinks
\usepackage[numbered]{hypdoc}
@@ -687,15 +688,46 @@ and version 1.3 or later is part of all distributions of LaTeX version
%^^A Change URL color
\hypersetup{urlcolor=violet}
-%^^A Redefine emphasis in the body text because italic has dedicated uses.
-\let\oldemph\emph
-\let\emph\textbf
+%^^A ----- Tables, lists, quotes, center -----
-%^^A Redefine name formatting for this manual.
-\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}
+\usepackage{booktabs}
+\usepackage{colortbl}
+
+\usepackage[inline]{enumitem}
+\setlist{rightmargin=\leftmargin,itemsep=0pt}
+
+%^^A Make default font small for quote and center environments
+\apptocmd{\quote}{\small}{}{}
+\apptocmd{\center}{\small}{}{}
+
+%^^A ----- Verbatim environments -----
+
+%^^A Let verbatim environments be fancy.
+\usepackage{fancyvrb}
+
+%^^A Define fancyvrb defaults.
+\fvset{gobble=2,numbers=left,fontsize=\small}
+
+%^^A ----- Font debugging; only for dev use -----
+
+%^^A These two macros help track down any unintended changes to font sizes.
+%^^A One can use these only once each.
+\let\savegraf\everypar
+\makeatletter
+\newcommand\FontDebugStart
+{%^^A
+ \let\oldep\everypar%^^A
+ \newtoks\everypar%^^A
+ \oldep{\the\everypar \llap{\color{red}\hbox to \marginparwidth {\f@size\hfill}}}%^^A
+}
+\newcommand\FontDebugStop
+{%^^A
+ \let\oldep\savegraf%^^A
+ \oldep{\the\everypar}%^^A
+}
+\makeatother
+
+%^^A ----- Various text elements -----
%^^A Show a ``dangerous bend'' in the margin.
\newcommand*\Warn
@@ -745,7 +777,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
{%^^A
\marginpar{%^^A
\raggedleft\footnotesize Name Pattern(s):\hfill\break%^^A
- {\ttfamily#1}\smallskip\break%^^A
+ {\ttfamily#1}\break%^^A
\raggedleft\footnotesize Basic Index:\hfill\break#2%^^A
}%^^A
}%^^A
@@ -796,15 +828,15 @@ and version 1.3 or later is part of all distributions of LaTeX version
{%^^A
\def\titulus{#1}%^^A
\ifx\titulus\empty
- \smallskip\begin{tcolorbox}[colback=white,colframe=darkgray]%^^A
+ \begin{tcolorbox}[colback=white,colframe=darkgray]%^^A
\begingroup\begin{tabular}{@{}ll@{}}
\else
- \smallskip\begin{tcolorbox}[colback=white,colframe=darkgray,
+ \begin{tcolorbox}[colback=white,colframe=darkgray,
adjusted title={\bfseries\hfil #1}]%^^A
\begingroup\begin{tabular}{@{}ll@{}}
\fi
}
-{\end{tabular}\endgroup\end{tcolorbox}\smallskip}
+{\end{tabular}\endgroup\end{tcolorbox}\medskip}
%^^A Print a quote and the source.
@@ -812,13 +844,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
\leavevmode\leaders\hrule height 1.5pt\hfill\kern0pt }
\newenvironment{Quote}[1]
-{\def\QuoteName{#1}\begin{quote}\small\vfill\hrulefill\medskip\\}
-{\\[1ex]\hbox{}\hfill---\normalsize\QuoteName\end{quote}}
+{%^^A
+ \def\QuoteName{#1}%^^A
+ \vfill\noindent\hfil\hbox to 0.9\textwidth{\hrulefill}
+ \begin{quote}}
+{\negmedskip\end{quote}\begin{quote}\hfill---\QuoteName\end{quote}}
%^^A Used for one or more examples
\newenvironment{Block}
{%^^A
- \begin{quote}\small
+ \begin{quote}
\setlist{rightmargin=0pt,leftmargin=0pt,topsep=0ex,itemsep=0pt}%^^A
\begin{itemize}\item[]
}
@@ -828,10 +863,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
\newcommand\NameArgWarning
{%^^A
\begin{InfoBox}%^^A
- When a macro occurs in a name argument and the argument will be
- displayed in the text and in the index, if there are any concerns
- about macro expansion, one should put \cmd{\noexpand} before that
- macro.
+ When a macro occurs in a name argument appearing in both text
+ and index, fix any concerns about macro expansion by using
+ \cmd{\noexpand} before that macro.
\end{InfoBox}%^^A
}
@@ -856,6 +890,21 @@ and version 1.3 or later is part of all distributions of LaTeX version
%^^A Used when introducing name forms
\newcommand\FUse{\leavevmode\hbox to 5em{First use:\hfill}}
\newcommand\LUse{\leavevmode\hbox to 5em{Later use:\hfill}}
+\newcommand\UseB{\leavevmode\hbox to 5em{\hfill}}
+
+%^^A ----- Names, the reason for it all -----
+
+%^^A Include specifically the current version of the package.
+\usepackage{\jobname}[2024/02/09]
+
+%^^A Set up the ``actual'' character
+\IndexActual{=}
+
+%^^A Redefine name formatting for this manual.
+\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}
%^^A Use this example in the body text. It is defined here due
%^^A to the vertical bars, which are redefined in the body text.
@@ -947,6 +996,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\PretagName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}
{deSmet, Pierre-Jean}
\PretagName[Hernando]{de~Soto}{Desoto, Hernando}
+\PretagName{\textit{Doctor angelicus}}{Doctor angelicus}
\PretagName{\textit{Doctor mellifluus}}{Doctor mellifluus}
\PretagName[W.E.B.]{Du~Bois}{DuBois, William}
\PretagName{du~Cange}{Ducange}
@@ -1042,6 +1092,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\TagName[Albert]{Einstein}{|hyperpage}
\TagName[Dwight D.]{Eisenhower}{, pres.|hyperpage}
\TagName{Elizabeth, I}{, queen|hyperpage}
+\TagName[Leif]{Erikson}{|hyperpage}
\TagName[Robin]{Fairbairns}{|hyperpage}
\TagName{\noexpand\textUC{Fukuyama}}[Takeshi]{\ddag|hyperpage}
@@ -1053,7 +1104,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\TagName[J.W. von]{Goethe}{|hyperpage}
\TagName[Ulysses S.]{Grant}{, pres.|hyperpage}
\TagName[Enrico]{Gregorio}{|hyperpage}
-\TagName{Gregory, I}{, pope|hyperpage}
+\TagName{Gregory, I}{ the Great, pope|hyperpage}
\TagName[Oskar]{Hammerstein, II}{|hyperpage}
\TagName[Adolf]{Harnack}{|hyperpage}
@@ -1076,7 +1127,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
\TagName{Lao-tzu}{|hyperpage}
\TagName[Clive Staples]{Lewis}{|hyperpage}
\TagName[Abraham]{Lincoln}{, pres.|hyperpage}
+\TagName[Frenec]{Liszt}{\dag|hyperpage}
\TagName[Titus]{Livius}{|hyperpage}
+\TagName{Llywelyn, ap Gruffudd}{, prince|hyperpage}
\TagName{Louis, XIV}{, king|hyperpage}
\TagName[Ada]{\noexpand\textIT{Lovelace}}{|hyperpage}
\TagName[Uwe]{Lueck}{|hyperpage}
@@ -1170,7 +1223,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
%^^A %%%%%%%%%%%%%%%%%%%%%%% Error Correction %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% \CheckSum{3451}
+% \CheckSum{3388}
%
% \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
@@ -1203,35 +1256,32 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.6}{2021/02/27}
% {Update \texttt{Readme.md}, \texttt{Makefile}}
% \changes{3.7}{2023/02/03}{Major updates to all files}
+% \changes{4.0}{2024/02/09}{Improve manual, \texttt{Readme.md}, \texttt{compat.tex}}
%
% \GetFileInfo{\jobname.dtx}
%
-% \DoNotIndex{\@empty, \@gobble, \@period, \@token, \trim@spaces,
-% \zap@space}
+% \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,
-% \textbackslash,
-% \uppercase}
+% \DeclareOption, \def, \detokenize, \edef,
+% \egroup, \else, \endcsname, \endgroup, \endinput,
+% \ExecuteOptions, \expandafter, \fi, \futurelet,
+% \global, \hbox, \if, \ifcsname, \ifx, \ignorespaces,
+% \index, \itshape, \leavevmode, \let, \newcommand,
+% \NewDocumentCommand, \newenvironment, \newif,
+% \nobreakspace, \PackageError, \PackageWarning,
+% \ProcessOptions, \relax, \renewcommand,
+% \RequirePackage, \scshape, \textbackslash, \uppercase}
%
%^^A %%%%%%%%%%%%%%% Macros That Must Be Defined Here %%%%%%%%%%%%%%%%%%%%
%
-%^^A Conditional set if we have an old TeXLive version
+%^^A Lengths to size tcboxes
%
-% \newif\ifOldTeX
-% \IfFileExists{utf8-2018.def}{}{\OldTeXtrue}
+% \newlength{\nameboxi}
+% \newlength{\nameboxii}
+% \newlength{\nameboxiii}
%
%^^A Global definitions of conditionals used for examples
%^^A must be included here because \newif statements cannot
@@ -1350,7 +1400,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \vspace{-16.67pt}
%
% \begin{abstract}
-% \noindent The \textsf{nameauth} package automates the correct formatting and indexing of names for professional writing. This aids the use of a \emph{name authority} and the editing process without needing to retype name references.
+% \noindent The \textsf{nameauth} package automates the correct formatting and indexing of names for professional writing. This aids the use of a \emph{name authority} and the editing process without needing to retype name instances.
% \end{abstract}
%
%^^A %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TOC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1361,21 +1411,28 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \tableofcontents
% \endgroup
%
-% \bigskip
-%
% \begin{InfoBox}[Disclaimer]
-% 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 or implied by the author.
+% This manual mentions names of historical figures both living and deceased. We intend to use all names herein with respect, for teaching purposes only, and never express or imply any disrespect or bias.
% \end{InfoBox}
%
-% \bigskip
+% \begin{InfoBox}[Compatibility]
+% Starting with version 4.0, \textsf{nameauth} uses \textsf{xparse} for starred macros and name arguments. Benefits include better macro design, more control over arguments, less code duplication, and better customization.
+% \begin{itemize}
+% \item Use with a pre-2017 \TeX\ distribution might cause occasional errors. See also Sections~\ref{sec:FinalOptargs}, \ref{sec:ChangeParse} and~\ref{sec:CompatON}.
+% \item Older user customizations using \textsf{xargs} may still work with the \texttt{oldargs} option. See Sections~\ref{sec:OptionCompat} and~\ref{sec:ChangeParse}.
+% \end{itemize}
+% If one should require version 3.7, see section 7 of \texttt{README.md}.
+% \end{InfoBox}
%
-% \begin{InfoBox}
-% All direct quotes contained herein are in the public domain or copyrighted works cited in small excerpts under the terms of fair use, to which the present author claims no copyright. Such quotes are used to stimulate the mind and promote the concept that names have value, can take different forms, and can represent sharply different viewpoints. Some quotes are a kind of ``running gag'' about Shakespearian names and roses. That illustrates the transformative aspect of fair use as well as the ratio of work quoted to its total size.
+% \begin{InfoBox}[Fair Use]
+% Other works quoted herein either are in the public domain or they are copyrighted works cited under the terms of fair use, to which the present author claims no copyright. The purpose is to show the power of words and names.
% \end{InfoBox}
%
-% \begin{Quote}{\Name[Theodore]{Roosevelt}\break\hbox{}\hfill
-% Introduction, \textit{The Papers and Writings of Abraham Lincoln} (1905)}
-% It is a very poor thing, whether for nations or individuals, to advance the history of great deeds done in the past as an excuse for doing poorly in the present; but it is an excellent thing to study the history of the great deeds of the past, and of the great men who did them, with an earnest desire to profit thereby so as to render better service in the present. In their essentials, the men of the present day are much like the men of the past, and the live issues of the present can be faced to better advantage by men who have in good faith studied how the leaders of the nation faced the dead issues of the past.
+% \begin{Quote}{\Name[Leonard]{Bernstein}\break
+% \hbox{}\hfill ``What Makes Opera Grand?'', \textit{Vogue}
+% (December 1958)}
+% \textls[-15]{Any great work of art \dots revives and readapts time and space, and the measure of its success is the extent to which it makes you an inhabitant of that world\,---\,the extent to which it invites you in and lets you breathe its strange, special air.}^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -1385,7 +1442,22 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \section{Quick Start}
% \label{sec:QuickStart}
%
-% A \emph{name authority} is a canonical, scholarly list of names to which variant name forms and aliases refer. This package helps one easily work with a name authority to manage, format, and index names, especially in larger publications.
+% A \emph{name authority} is a canonical, scholarly list of names to which variant name forms and aliases refer. Books can contain hundreds of names and index entries. The \textsf{nameauth} package assists academic and business writing to minimize the work of managing many names:
+%
+% \begin{itemize}
+% \item Automate the display and formatting of names.
+% \item Manage and display information that is associated with names.
+% \item Make decisions relating to names (name control sequence patterns).
+% \item Sort name index entries properly.
+% \item Automatically add information to index entries.
+% \item Ensure correct indexing of names that span page breaks.
+% \item Change name forms in the text while retaining consistent index entries.
+% \item Adopt name forms in the text and index that are culturally appropriate.
+% \item Do not force the user to adopt any one culture's naming conventions.
+% \item Permit European academic conventions (``Continental'' formatting).
+% \end{itemize}
+%
+% Indexing rules implemented by \textsf{nameauth} are based on \Name[Nancy C.]{Mulvany}, \textit{Indexing Books} (Chicago: University of Chicago Press, 1994). All references [\hypertarget{Mulvany}{Mulvany}] refer to this edition. See also similar information in \textit{The Chicago Manual of Style} (15\textsuperscript{th} ed., Chicago: Chicago UP, 2003, 309f., 755f.) or newer editions; referenced as [\hypertarget{Chicago}{Chicago}].
%
% \subsection{Simple Example}
% \label{sec:QuickExample}
@@ -1394,21 +1466,23 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \renewcommand{\MainNameHook}{}
%
% We begin with an excerpt from a biography written by \Name[Charles W.]{Chesnutt}[Charles Waddell], a prominent African-American author at the turn of the twentieth century.\footnote{\Name[Charles W.]{Chesnutt}, \textit{Frederick Douglass} (Boston: Small, Maynard, 1899). See also \href{https://docsouth.unc.edu/neh/chesnutt/summary.html} {\bfseries this web page}.}
-% We create a new document and use only the default \textsf{nameauth} package options. We do not create any formatting for names (Section~\ref{sec:Formatting}).
+% We create a new document, use only the default \textsf{nameauth} options, and create no extra formatting for names (cf. Section~\ref{sec:Formatting}).
%
-% The \texttt{nameauth} environment (Section~\ref{sec:QuickUIStart}) is in the preamble. It resembles a \texttt{tabular} with four columns. In column one we define the naming macros. In columns two and three we define the names that the macros will display. We leave column four empty. After the first group, we use \cmd{\Forgetname} (Section~\ref{sec:NameControl}) to ``forget'' that the names appeared, making the conditions of the second group the same as the first for illustrative purposes.
+% The \texttt{nameauth} environment (Section~\ref{sec:QuickUIStart}) in the preamble resembles a \texttt{tabular} with four columns. In column one we define the naming macros. In columns two and three we define the names that the macros will display. We leave column four empty.
+%
+% We use \cmd{\Forgetname} (Section~\ref{sec:NameControl}) in Group 2 to ``forget'' about the names in Group 1. When we reorder the statements, the names change form automatically.
%
% \ifdefined\NameauthDoTestFiles \edef\NameauthTestFile{test01_01.tex}\else
% \edef\NameauthTestFile{\jobname.tmp}\fi
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage{nameauth}
-% \makeindex
% \usepackage[inline]{enumitem}
+% \makeindex
%
% \begin{nameauth}
% % Col. 1 Col. 2 Col. 3 Col. 4
@@ -1418,6 +1492,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{document}
%
+% \textbf{Group 1}\\
% \begin{enumerate*}
% \item[\textbf{1.}] \Doug\ rose to eminence by sheer force
% of character and talents that neither slavery nor caste
@@ -1430,6 +1505,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% grandmother, \Bailey.
% \end{enumerate*}
%
+% \textbf{Group 2}\\
% \ForgetName[Frederick]{Douglass}
% \ForgetName[Betsey]{Bailey}
% \begin{enumerate*}
@@ -1448,11 +1524,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
-% \end{quote}
%
-% \begin{quote}\small
+% \textbf{Group 1}\\
% \begin{enumerate*}
% \item[\textbf{1.}] \Doug\ rose to eminence by sheer force
% of character and talents that neither slavery nor caste
@@ -1465,6 +1540,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% grandmother, \Bailey.
% \end{enumerate*}
%
+% \textbf{Group 2}\\
% \ForgetName[Frederick]{Douglass}
% \ForgetName[Betsey]{Bailey}
% \begin{enumerate*}
@@ -1480,28 +1556,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{enumerate*}
% \end{quote}
%
-% If we reorder the statements, the names change form automatically. In a book-length project, one might manage hundreds of names, associated information, and index entries. The \textsf{nameauth} package automates aspects of academic and business writing to minimize the work of such management:
-%
-% \begin{itemize}
-% \item Automate the display and formatting of names.
-% \item Manage and display information that is associated with names.
-% \item Make decisions relating to names (name control sequence patterns).
-% \item Sort name index entries properly.
-% \item Automatically add information to index entries.
-% \item Ensure correct indexing of names that span page breaks.
-% \item Change name forms in the text while retaining consistent index entries.
-% \item Adopt name forms in the text and index that are culturally appropriate.
-% \item Do not force the user to adopt any one culture's naming conventions.
-% \item Permit European academic conventions (``Continental'' formatting).
-% \end{itemize}
-%
-% Indexing rules implemented by \textsf{nameauth} are based on \Name[Nancy C.]{Mulvany}, \textit{Indexing Books} (Chicago: University of Chicago Press, 1994). All references [\hypertarget{Mulvany}{Mulvany}] refer to this edition. See also \textit{The Chicago Manual of Style} by the same publisher.
% \endgroup
%
% \begin{Quote}{\ForgetThis\Doug\break
% \hbox{}\hfill motto, \textit{The North Star} (Rochester, NY, 1847)}
% Right Is of No Sex\,---\,Truth Is of No Color\,---\,God Is the Father
-% of Us All, and All We Are Brethren.\vspace{-1ex}
+% of Us All, and All We Are Brethren.\negmedskip^^A
+% \index{north star, concept of\noexpand\string|hyperpage}^^A
+% \index{civil rights leaders, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -1511,7 +1573,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% This manual tries to support various learning styles by using layout, colors, shapes, and similar ordering of both document sections and package code.
%
-% \subsubsection*{Macro Argument Types}
+% \subsubsection*{\hfil Macro Argument Types}
% \vspace{-4ex}
%
% \begin{multicols}{2}
@@ -1526,15 +1588,15 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{tcolorbox}
% \end{multicols}
%
-% \subsubsection*{Scope and Sequence}
+% \subsubsection*{\hfil Scope and Sequence}
%
-% The table of contents has become detailed in order to indicate more clearly what topics are covered, from frequent and simple to infrequent and complex. Later topics require knowledge from multiple sections. The end of each major section includes a return link to the table of contents.
+% The table of contents indicates what topics are covered, the simpler and frequent to the complex and infrequent. Later topics require knowledge from multiple sections. The end of each major section includes a return link to the table of contents.
%
-% \subsubsection*{Key Concepts}
+% \subsubsection*{\hfil Key Concepts}
%
-% Throughout much of this manual, starting in Section~\ref{sec:BasicStart}, we use debugging macros (Section~\ref{sec:Debugging}) to show \emph{name control patterns} in the margins (cf. Section~\ref{sec:NamePatterns}). These patterns are the key to how names work in \textsf{nameauth}. Through Section~\ref{sec:NameMedieval} we show \emph{basic index entries} in the margins. These macros and the \texttt{idx} file can aid greatly with complex use cases and subtle issues.
+% Starting in Section~\ref{sec:BasicStart}, we use debugging macros to show \emph{name control patterns} in the margins (Section~\ref{sec:NamePatterns}). These patterns are the key to how names work in \textsf{nameauth}. Through Section~\ref{sec:NameMedieval} we show \emph{basic index entries} in the margins in order to illustrate the things for which one should look when debugging.
%
-% \subsubsection*{Special Signs}
+% \subsubsection*{\hfil Special Signs}
%
% \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:
%
@@ -1551,9 +1613,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% is needed.
% \end{itemize}
%
-% \subsubsection*{Example Files}
+% \subsubsection*{\hfil Example Files}
+%
+% The files \texttt{examples.tex} and \texttt{compat.tex} are located with this manual. For generating package testing files, see \texttt{README.md}, also located with this manual.
%
-% The files \texttt{examples.tex} and \texttt{compat.tex} located with this manual. For generating package testing files, see \texttt{README.md}, also located with this manual.
+% \vfill
%
% \begin{InfoBox}[Thanks]\small
% For assistance at various times, thanks to \Name[Marc van]{Dongen}, \Name[Enrico]{Gregorio}, \Name[Philipp]{Stephani}, \Name[Heiko]{Oberdiek}, \Name[Uwe]{Lueck}, \Name[Dan]{Luecking}, \Name[Robert]{Schlicht}, and others.\\[1ex]
@@ -1566,223 +1630,239 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Basic Concepts}
%
% This section introduces fundamental concepts needed by package users.
-%
-% \subsubsection{Name Ambiguity}
-% \negmedskip
-%
-% Apart from cultural context, the elements of a name are ambiguous. The \textsf{nameauth} macros embrace the ambiguity of culture, context, and publishing markets as they create consistent name forms and index entries Let us consider three names from history. Many Western readers will tend to interpret them in this manner:
-%
-% \begin{center}\small\medstretch
-% \begin{tabular}{lll}\toprule
-% & Forename(s) & Surname\\
-% \rowcolor{nagrey}\Name[M.T.]{Cicero}[Marcus Tullius] &
-% \FName[M.T.]{Cicero}[Marcus Tullius] &
-% \Name[M.T.]{Cicero}\\
-% \Name{Jesus, Christ} &
-% \Name{Jesus, Christ} &
-% \ForceFN\FName{Jesus, Christ}\\
-% \rowcolor{nagrey}\Name{Pontius, Pilate} &
-% \Name{Pontius, Pilate} &
-% \ForceFN\FName{Pontius, Pilate}\\\bottomrule
-% \end{tabular}
-% \end{center}
-%
-% The problem is that all these interpretations technically are wrong! Yet popular books tend to permit error for the sake of readability. To illustrate that, we encode \Name[M.T.]{Cicero} as a Western name. Yet this approach would be quite incorrect in a scholarly publication or reference work (Section~\ref{sec:Romani}).
-%
-% As a Roman \textit{praenomen}, \FName[M.T.]{Cicero}[Marcus] did not have the same importance or meaning as a modern Western forename.\footnote{\url{https://en.wikipedia.org/wiki/Praenomen}}
-% Moreover, \Name[M.T.]{Cicero} is not the surname of the great Roman orator. His \textit{nomen}, the name of his clan or \textit{gens}, is \FName[M.T.]{Cicero}[Tullius]. For quite some time in English he was known as \IndexRef{Tully}{Cicero, M.T.}\Name{Tully}. The name \Name[M.T.]{Cicero} is a \textit{cognomen}, a name tied to a personal attribute or later, a branch family in a clan.
-%
-% The case of \Name*{Jesus, Christ} becomes clearer when we consider \Name*{Jesus, Christ}[of Nazareth] (John 19:19) and \Name*{Jesus, Christ} [son of David] (Mark~10:47; cf. Matthew~1:20). The personal name is \Name{Jesus, Christ} (Greek for Joshua). Adding \ForceFN \FName*{Jesus, Christ}[of Nazareth] and \ForceFN\FName*{Jesus, Christ} [Son of David] shows, respectively, the place of notable origin and family descent. \ForceFN\FName*{Jesus, Christ} is a religious title (Anointed One), a Greek loan-word from Hebrew \textit{mashiach} (Messiah).
-%
-% The name \Name*{Pontius, Pilate} is interesting because his \textit{praenomen} has been lost to history. This fits with Roman naming trends at the time. \Name{Pontius, Pilate} is a clan name. Most references, including his own inscriptions, favor his \textit{cognomen} \ForceFN\FName{Pontius, Pilate}[Pilatus], which is due likely to its connection to skill with the \textit{pilum} and martial prowess.
-%
-% Thus, in this manual, we make the following name encoding choices, targeted for a ``semi-scholarly'' book that popularizes history for a general Western readership:
-%
-% \begin{center}\small\medstretch
-% \begin{tabular}{lll}\toprule
-% Macro & Type & Index\\
-% \rowcolor{nagrey}|\Name[M.T.]{Cicero}| &
-% Western name &
-% \ShowIdxPageref*[M.T.]{Cicero}\\
-% |\Name{Jesus, Christ}| &
-% ancient name &
-% \ShowIdxPageref*{Jesus, Christ}\\
-% \rowcolor{nagrey}|\Name{Pontius, Pilate}| &
-% ancient name &
-% \ShowIdxPageref*{Pontius, Pilate}\\\bottomrule
-% \end{tabular}
-% \end{center}
-%
-% \begin{Quote}{\ForgetThis\Name[M.T.]{Cicero}[Marcus Tullius]\break
-% \hbox{}\hfill\textit{De oratore} B II; C IX, \S 36}
-% By what other voice, too, than that of the orator, is history, the evidence of time, the light of truth, the life of memory, the directress of life, the herald of antiquity, committed to immortality?\vspace{-1ex}
-% \end{Quote}
+% The rest of the manual requires these to be understood.
%
% \subsubsection{Name Arguments}
% \label{sec:NameArgs}
%
-% Below are the forms of name arguments, as defined by the current syntax. Compare [\hyperlink{Mulvany}{Mulvany}, 152--82] and the \textit{Chicago Manual of Style}. \Name[Nancy C.]{Mulvany} offers some excellent advice on names, cross-references, and name variants that can guide one well when using this package. The forms below are an adaptation of these sources to \LaTeX.
+% Below we show how familiar categories of names map to name arguments in the appropriate macros, as defined by the current syntax. We use the excellent advice in [\hyperlink{Mulvany}{Mulvany}, 152--82] and [\hyperlink{Chicago}{Chicago}], adapting them for use in \LaTeX.
+% \medskip
+%
+% \begingroup\small
+% \setbox0\hbox{Family / clan name\ }
+% \global\setlength{\nameboxi}{\wd0}
+% \setbox0\hbox{nomen / cognomen\ }
+% \global\setlength{\nameboxii}{\wd0}
+% \setbox0\hbox{notable attribute\ }
+% \global\setlength{\nameboxiii}{\wd0}
+% \endgroup
%
% \noindent\begin{tcolorbox}[colframe=naslate,
-% adjusted title={Western Name:
+% adjusted title={\large Western Name:
% \oarg{FNN}\marg{SNN, Affix}\oarg{Alternate}}]
-% \centering\small\smallskip
+% \centering\small^^A
%^^A
% \tcbox[equal height group=A,on line,tikznode,colback=white,
-% adjusted title={\bfseries\sffamily Forename(s):\\ \meta{FNN}}]
-% {Personal name(s):\\
+% adjusted title={\centering\bfseries\sffamily Forename(s):\meta{FNN}}]
+% {\hbox to \nameboxi {\hfil Personal name(s):\hfil}\\
% \textit{baptismal name}\\
% \textit{Christian name}\\
% \textit{multiple names}\\
-% \textit{praenomen}\footnotemark\\
-% \phantom{Family\,/\,clan name}}\hfill^^A
+% \textit{praenomen}\footnotemark}\hfill^^A
%^^A
% \tcbox[equal height group=A,on line,tikznode,colback=white,
-% adjusted title={\bfseries\sffamily Surname(s):\\ \meta{SNN}}]
-% {Family name:\\
+% adjusted title={\bfseries\sffamily Surname(s):\meta{SNN}}]
+% {\hbox to \nameboxii {\hfil Family name:\hfil}\\
% \textit{of father, mother}\\
% \textit{ancestor, vocation}\\
% \textit{origin, region}\\
% \textit{nomen\,/\,cognomen}\\
-% \textit{patronym}\\\vspace{-3ex}
-% \phantom{\textit{nomen\,/\,cognomen}}}\hfill^^A
+% \textit{patronym}}\hfill^^A
%^^A
-% \tcbox[equal height group=A,on line,tikznode,
-% colback=white,colframe=nared,
-% adjusted title={\bfseries\sffamily Qualifier:\\ \meta{Affix}}]
-% {Sobriquet/title:\\
+% \tcbox[equal height group=A,on line,tikznode,colback=white,colframe=nared,
+% adjusted title={\bfseries\sffamily Qualifier:\meta{Affix}}]
+% {\hbox to \nameboxiii {\hfil Sobriquet\,/\,title:\hfil}\\
% \textit{Sr., Jr., III\dots}\\
% \textit{notable attribute}\\
-% \textit{origin, region}\\
-% \phantom{\textit{notable attribute}}}\medskip
+% \textit{origin, region}}
%
% \begin{tcolorbox}[colback=white,colframe=nared,
-% adjusted title={\bfseries\sffamily Alternate Name(s):
-% \meta{Alternate}}]
+% adjusted title={\bfseries\sffamily Alias:\meta{Alternate}}]
% \centering Replaces \meta{FNN} only in the text.
-% \end{tcolorbox}\negsmallskip
+% \end{tcolorbox}
%
% \end{tcolorbox}
% \footnotetext{There are several ways of handling the Roman \textit{tria
% nomina}. See Section~\ref{sec:Romani}.}
%
% \begin{tcolorbox}[colframe=naslate,
-% adjusted title={``Native'' Eastern Name}:
+% adjusted title={\large ``Native'' Eastern Name}:
% \marg{SNN, Affix}\oarg{Alternate}]
-% \centering\small\smallskip
-%
-% \tcbox[equal height group=B,on line,tikznode,
-% colback=white,
-% adjusted title={\bfseries\sffamily Family name:\\ \meta{SNN}}]
-% {Family\,/\,clan name}\hfill^^A
+% \centering\small^^A
+%^^A
+% \tcbox[equal height group=B,on line,tikznode,colback=white,
+% adjusted title={\bfseries\sffamily Family:\meta{SNN}}]
+% {\hbox to \nameboxi {\hfil Family\,/\,clan name\hfil}}\hfill^^A
%^^A
-% \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{-3ex}
-% \phantom{\textit{nomen\,/\,cognomen}}}\hfill^^A
+% \tcbox[equal height group=B,on line,tikznode,colback=white,
+% adjusted title={\bfseries\sffamily Personal:\meta{Affix}}]
+% {\hbox to \nameboxii {\hfil Usually one name\hfil}}\hfill^^A
%^^A
-% \tcbox[equal height group=B,on line,tikznode,
-% colback=white,colframe=nared,
-% adjusted title={\bfseries\sffamily Alt. name:\\ \meta{Alternate}}]
-% {Replaces \meta{Affix}\\
-% only in text.\footnotemark\\
-% \phantom{\textit{notable attribute}}}\smallskip
+% \tcbox[equal height group=B,on line,tikznode,colback=white,colframe=nared,
+% adjusted title={\bfseries\sffamily Alias:\meta{Alternate}}]
+% {\hbox to \nameboxiii {\hfil Replaces \meta{Affix}\hfil}\\
+% only in text.\footnotemark}
% \end{tcolorbox}
% \footnotetext{The obsolete syntax uses \meta{Alternate} instead of
% \meta{Affix} for a personal name (Section~\ref{sec:Obsolete}).}
%
% \begin{tcolorbox}[colframe=naslate,
-% adjusted title={Royal/Medieval/Ancient Name}:
+% adjusted title={\large Royal/Medieval/Ancient Name}:
% \marg{SNN, Affix}\oarg{Alternate}]
-% \centering\small\smallskip
-%
+% \centering\small^^A
+%^^A
% \tcbox[equal height group=C,on line,tikznode,colback=white,
-% adjusted title={\bfseries\sffamily Personal name:\\ \meta{SNN}}]
-% {\small Given name(s)\\
+% adjusted title={\bfseries\sffamily Personal:\meta{SNN}}]
+% {\hbox to \nameboxi {\hfil Given name(s)\hfil}\\
% \phantom{Family\,/\,clan name}}\hfill^^A
%^^A
-% \tcbox[equal height group=C,on line,tikznode,
-% colback=white,colframe=nared,
-% adjusted title={\bfseries\sffamily Qualifier:\\ \meta{Affix}}]
-% {Sobriquet/title:\\
+% \tcbox[equal height group=C,on line,tikznode,colback=white,colframe=nared,
+% adjusted title={\bfseries\sffamily Qualifier:\meta{Affix}}]
+% {\hbox to \nameboxii {\hfil Sobriquet\,/\,title:\hfil}\\
% \textit{Sr., Jr., III\dots}\\
% \textit{notable attribute}\\
% \textit{origin, region}\\
-% \textit{patronym}\\\vspace{-3ex}
-% \phantom{\textit{nomen\,/\,cognomen}}}\hfill^^A
+% \textit{patronym}}\hfill^^A
%^^A
-% \tcbox[equal height group=C,on line,tikznode,
-% colback=white,colframe=nared,
-% adjusted title={\bfseries\sffamily Alt. name:\\ \meta{Alternate}}]
-% {Replaces \meta{Affix}\\
-% only in text.\footnotemark\\
-% \phantom{\textit{notable attribute}}}\smallskip
+% \tcbox[equal height group=C,on line,tikznode,colback=white,colframe=nared,
+% adjusted title={\bfseries\sffamily Alias:\meta{Alternate}}]
+% {\hbox to \nameboxiii {\hfil Replaces \meta{Affix}\hfil}\\
+% only in text.\footnotemark}
% \end{tcolorbox}
% \footnotetext{The obsolete syntax uses \meta{Alternate} instead of
% \meta{Affix} for a qualifier (Section~\ref{sec:Obsolete}).}
%
% \newpage
%
-% \subsubsection[Final Optargs]{Final Optional Arguments}
-% \label{sec:FinalOptargs}
+% \subsubsection{Name Ambiguity}
%
-% Macros that take name arguments (Sections~\ref{sec:NameArgs} and~\ref{sec:NameArgMacros}) have the potential to contain a final optional argument. Their trailing arguments look like:
+% \begin{itemize}
+% \item \textbf{Name forms are ambiguous.}
%
-% \begin{tcolorbox}[colframe=naslate]\centering
-% \begin{tabular}{c@{ }c}
-% \small Required & \small Optional\\
-% \tcbox[equal height group=E,colback=white,
-% tikznode,left=1mm,right=1mm,valign=center]
-% {\bfseries\dots\marg{SNN\color{nared}, Affix}} &
-% \tcbox[equal height group=E,colback=white,
-% tikznode,left=1mm,right=1mm,valign=center]
-% {\bfseries\oarg{\color{nared}Alternate}}
+% In Western culture, one often sees forenames followed by a surname. Patronyms, as in \Name[Leif]{Erikson} and \Name{Llywelyn, ap Gruffudd}, and other exceptions exist.\footnote{Indexed here under \Name[Leif]{Erikson} and \Name{Llywelyn, ap Gruffudd}. See also \href{https://www.theindexer.org/wp-content/uploads/2020/07/welsh-personal-names.pdf} {\bfseries this document} on indexing Welsh names.}
+% Some readers might assume the following:
+%
+% \begin{center}
+% \renewcommand\NamesFormat{\color{blue}\sffamily}
+% \renewcommand\MainNameHook{\color{blue}\sffamily}
+% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}\bfseries Forename & \bfseries Forename & \bfseries Surname\\
+% \SubvertThis\FName[M.T.]{Cicero}[Marcus] &
+% \FName[M.T.]{Cicero}[Tullius] &
+% \Name[M.T.]{Cicero}\\\midrule
+% \rowcolor{nagrey}\bfseries Forename & & \bfseries Surname\\
+% \SubvertThis\Name{Pontius, Pilate} & &
+% \ForceFN\FName{Pontius, Pilate}\\
+% \SubvertThis\Name{Jesus, Christ} & &
+% \ForceFN\FName{Jesus, Christ}\\\bottomrule
% \end{tabular}
-% \end{tcolorbox}\smallskip
+% \end{center}
%
-% Usually these arguments have no side effects, except in the case where we want to follow a name with an editorial insertion enclosed in square brackets. Since this does occur in academic and journalistic writing, we show how to handle this below and on the next page, where we suppress formatting to focus on syntax:
+% Even though all these initial assumptions are false, Western naming conventions tend to dominate the general readership market and, \textit{mutatis mutandis}, they affect the use and indexing of names.
%
-% \begin{VerbatimOut}{\jobname.tmp}
-% \begin{itemize}
-% \item We are looking for ``Albert Einstein [said]'' and
-% ``Miyazaki Hayao [said]''; also ``Einstein [said]''
-% and ``Miyazaki [said]''.
-% \item We get ``\Name[Albert]{Einstein} [said]'' and
-% ``\Name{Miyazaki, Hayao} [said]''.
-% The personal names got replaced with alternate
-% name arguments in the long name forms.
-% \item Repeating does not help: ``\Name[Albert]{Einstein}
-% [said]'' and ``\Name{Miyazaki, Hayao} [said]''.
-% The text \texttt{[said]} was not displayed due to
-% shorter name forms being shown by default in
-% subsequent name uses.
-% \item[] \textbf{We fix the situation thus:}
-% \item Add explicit spaces: ``\Name[Albert]{Einstein}\
-% [said]'' and ``\Name {Miyazaki, Hayao}\ [said]''.
-% \item Add curly braces: ``\Name[Albert]{Einstein}{}
-% [said]'' and ``\Name{Miyazaki, Hayao}{} [said]''.
-% \end{itemize}
-% \end{VerbatimOut}
+% \item \textbf{Cultural context resolves ambiguity.}
%
-% \begin{quote}\small
-% \VerbatimInput[gobble=0]{\jobname.tmp}
+% Here we see how the names above have meaning in their proper context. The words themselves \textit{as signs} do not offer the as many clues about their meaning until the signs become part of a cultural landscape.
+%
+% \begin{center}
+% \renewcommand\NamesFormat{\sffamily}
+% \renewcommand\MainNameHook{\sffamily}
+% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}\bfseries Personal Name &
+% \bfseries Clan Name & \bfseries Branch Family or Nickname\\
+% \SubvertThis\FName[M.T.]{Cicero}[Marcus] &
+% \FName[M.T.]{Cicero}[Tullius] &
+% \Name[M.T.]{Cicero}\\
+% & \SubvertThis\Name{Pontius, Pilate} &
+% \ForceFN\FName{Pontius, Pilate}\\\midrule
+% \rowcolor{nagrey}\bfseries Personal Name & & \bfseries Sobriquet\\
+% \SubvertThis\Name{Jesus, Christ} & &
+% \ForceFN\FName{Jesus, Christ}\\\bottomrule
+% \end{tabular}
+% \end{center}
+%
+% \item \textbf{This package embraces such ambiguities.}
+%
+% Roman \textit{praenomina} did not have the same significance as Western forenames.\footnote{See \href{https://en.wikipedia.org/wiki/Praenomen}{Wikipedia}. Roman names in particular are sensitive to the historical and political development of Rome and its empire, the history of Roman families and culture, as well as other factors.}
+% Yet the family name (\textit{nomen}) of the man we call \Name[M.T.]{Cicero} is \FName[M.T.]{Cicero}[Tullius]. In English, he used to be known as \IndexRef{Tully}{Cicero, M.T.}\Name{Tully}. In this manual we choose the popular case for the \textit{cognomen} \Name[M.T.]{Cicero} as a Western surname. Scholarly publications can take at least two different approaches (see Section~\ref{sec:Romani}).
+%
+% The name \Name*{Pontius, Pilate} has no personal name, which fits with Roman naming trends. \Name{Pontius, Pilate} is a clan name. Most texts and inscriptions favor the \textit{cognomen} \ForceFN\FName{Pontius, Pilate}[Pilatus], denoting martial prowess.
+%
+% \Name*{Jesus, Christ} is a name derived from Greek \el{Ἰησοῦς ΧÏιστός}, from \textit{Y'shua ha-Mashiach}, Joshua the Anointed One. The personal name is \Name{Jesus, Christ}. Other added names are titles or descriptors.
+%
+% \item \textbf{Macros can modify names in the text to fit cultural norms.}
+%
+% Name forms in the text are independent of their index entries. This is necessary for special cases like Hungarian names. Thus, a text oriented to Hungarian readers can talk about \RevName\Name[Frenec]{Liszt}\dag\ (\IndexRef[Franz]{Liszt}{Liszt, Frenec}\Name[Franz]{Liszt}) in the body text, but he can be indexed as \ShowIdxPageref*[Frenec]{Liszt}. One can do something similar with East Asian names, if Western index entries are required.
+%
+% \item \textbf{Name arguments determine index entry forms.}
+%
+% The way that one puts names into macro name arguments absolutely determines the entry form in the index:\medskip
+%
+% \begingroup\IndexInactive\footnotesize
% \renewcommand\NamesFormat{}
% \renewcommand\MainNameHook{}
+% \begin{tabular}{l@{\ }l@{\ }l}\toprule
+% \rowcolor{nagrey}\bfseries Printed Name &
+% \bfseries Macro and Arguments & \bfseries Western Index Entry\\
+% \Name[Person]{Family, Affix} & |\Name[Person]{Family, Affix}| &
+% \ShowIdxPageref*[Person]{Family, Affix}\\
+% \Name[Person]{Family} & |\Name[Person]{Family}| &
+% \ShowIdxPageref*[Person]{Family}\\
+% \RevName\Name*[Person]{Family} & |\RevName%| &
+% \ShowIdxPageref*[Person]{Family}\\
+% & |\Name[Person]{Family}|\\\midrule
+% \rowcolor{nagrey}\bfseries Printed Name &
+% \bfseries Macro and Arguments & \bfseries Nonwestern Index Entry\\
+% \Name{Family, Person} & |\Name{Family, Person}| &
+% \ShowIdxPageref*{Family, Person}\\
+% \RevName\Name*{Family, Person} & |\RevName%| &
+% \ShowIdxPageref*{Family, Person}\\
+% & |\Name{Family, Person}|\\
+% \Name{Person, Affix} & |\Name{Person, Affix}| &
+% \ShowIdxPageref*{Person, Affix}\\
+% \Name{Person} & |\Name{Person}| &
+% \ShowIdxPageref*{Person}\\\bottomrule
+% \end{tabular}\IndexActive
+% \endgroup\bigskip
+%
+% The following choices reflect non-scholarly English-language books. Later sections will show different ways to encode name arguments for scholarly works or non-English books.
%
-% \input{\jobname.tmp}
-% \end{quote}
+% \begin{center}\footnotesize
+% \renewcommand\NamesFormat{\sffamily}
+% \renewcommand\MainNameHook{\sffamily}
+% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}\bfseries Printed Name &
+% \bfseries Macro and Arguments & \bfseries Western Index Entry\\
+% \ForgetThis\Name[M.T.]{Cicero} & \cmd{\Name[M.T.]\{Cicero\}} &
+% \ShowIdxPageref*[M.T.]{Cicero}\\\midrule
+% \rowcolor{nagrey}\bfseries Printed Name &
+% \bfseries Macro and Arguments & \bfseries Nonwestern Index Entry\\
+% \ForgetThis\Name{Pontius, Pilate} & \cmd{\Name\{Pontius, Pilate\}} &
+% \ShowIdxPageref*{Pontius, Pilate}\\
+% \ForgetThis\Name{Jesus, Christ} & \cmd{\Name\{Jesus, Christ\}} &
+% \ShowIdxPageref*{Jesus, Christ}\\\bottomrule
+% \end{tabular}
+% \end{center}
%
-% The same situation and resolution happens also when name shorthands have been defined. For example, ``\cmd{\Einstein\textbackslash\ [said]}'' produces ``\Einstein\ [said]'' and ``\cmd{\Miyazaki\textbackslash\ [said]}'' produces ``\Miyazaki\ [said]''. This situation does not arise with great frequency, but it can crop up occasionally and may leave one scratching one's head over something odd in the text.
+% \item \textbf{Name complexity creates \textsf{nameauth} complexity.}
+%
+% We might take names for granted until we have to consider them, use them in multicultural contexts, index them, and so on. Even if one does not use the \textsf{nameauth} package, one cannot escape this complexity.
+%
+% Indeed, it is only through the process of making \textsf{nameauth} that the present author became aware of the many intricate and fascinating complexities of names. The hope is that this package might facilitate accurate and respectful cross-cultural use of names in quality publications.
+% \end{itemize}
+%
+% \begin{Quote}{\Name[Theodore]{Roosevelt}\break\hbox{}\hfill
+% Introduction, \textit{The Papers and Writings of Abraham Lincoln} (1905)}
+% It is a very poor thing, whether for nations or individuals, to advance the history of great deeds done in the past as an excuse for doing poorly in the present; but it is an excellent thing to study the history of the great deeds of the past, and of the great men who did them, with an earnest desire to profit thereby so as to render better service in the present. In their essentials, the men of the present day are much like the men of the past, and the live issues of the present can be faced to better advantage by men who have in good faith studied how the leaders of the nation faced the dead issues of the past.\negmedskip^^A
+% \index{politicians, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
%
% \newpage
%
% \subsection{Basic Interface}
% \label{sec:BasicStart}
%
-% The description of macro arguments in this section applies to all \textsf{nameauth} macros that take name arguments (Sections~\ref{sec:NameArgs} and~\ref{sec:NameArgMacros}). Thus, this section and its subsection are the most critical to understanding and mastering the use of \textsf{nameauth}.
+% The description of macro arguments in this section applies to all \textsf{nameauth} macros that take name arguments (Sections~\ref{sec:NameArgs} and~\ref{sec:NameArgMacros}), making this section critical to using and mastering \textsf{nameauth}.
%
% \begin{itemize}
% \item If the required argument \meta{SNN} is empty, \textsf{nameauth}
@@ -1796,9 +1876,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{itemize}
%
% \subsubsection{Western Names}
-% \negsmallskip
%
-% \begin{tcolorbox}[colframe=naslate]\centering\small
+% \begin{tcolorbox}[colframe=naslate]\centering
% \begin{tabular}{l@{ }c@{ }c@{ }c}
% & Required & Required \meta{SNN} & Optional\\
% & \meta{FNN} & optional \meta{Affix} & (text only)\\[1ex]
@@ -1837,7 +1916,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection*{\hfil Full, Last, and First Names}
%
-% \cmd{\Name} prints first uses of names long, then short thereafter. \cmd{\Name*} ensures a long form. \cmd{\FName} prints long in first uses, then just a forename in later uses. \cmd{\FName*} does the same thing as \cmd{\FName} (just add an \texttt{F}\dots). The affix in a surname only appears in long name references.
+% \cmd{\Name} prints first uses of names long, then short thereafter. \cmd{\Name*} ensures a long form. Both \cmd{\FName} and \cmd{\FName*} print long names in first uses, then just a forename in later uses.\footnote{The intent is that one can just add an \texttt{F} to either \cmd{\Name} or \cmd{\Name*}.}
+% The affix in a surname only appears in long name instances.
%
% \begin{Block}
% \vspace{3.5ex}
@@ -1846,79 +1926,92 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\ShowIdxPageref*[George]{Washington}\break
% \ShowIdxPageref*[George S.]{Patton, Jr.}}
% \vspace{-3.5ex}
-% \FUse |\Name [George]{Washington}|\dotfill \Name [George]{Washington}\\
-% \LUse |\Name*[George]{Washington}|\dotfill \Name*[George]{Washington}\\
-% \LUse |\Name [George]{Washington}|\dotfill \Name [George]{Washington}\\
-% \LUse |\FName[George]{Washington}|\dotfill \FName[George]{Washington}
-% \end{Block}\negmedskip
+% \ForgetName[George]{Washington}
+% \FUse \Name [George]{Washington}\dotfill^^A
+% |\Name [George]{Washington}|\break
+% \LUse \Name*[George]{Washington}\dotfill^^A
+% |\Name*[George]{Washington}|\break
+% \LUse \Name [George]{Washington}\dotfill^^A
+% |\Name [George]{Washington}|\break
+% \LUse \FName[George]{Washington}\dotfill^^A
+% |\FName[George]{Washington}|
+% \end{Block}
%
% \begin{Block}
-% \FUse |\Name [George S.]{Patton, Jr.}|\dotfill
-% \Name [George S.]{Patton, Jr.}\\
-% \LUse |\Name*[George S.]{Patton, Jr.}|\dotfill
-% \Name*[George S.]{Patton, Jr.}\\
-% \LUse |\Name [George S.]{Patton, Jr.}|\dotfill
-% \Name [George S.]{Patton, Jr.}\\
-% \LUse |\FName[George S.]{Patton, Jr.}|\dotfill
-% \FName[George S.]{Patton, Jr.}
+% \FUse \Name [George S.]{Patton, Jr.}\dotfill^^A
+% |\Name [George S.]{Patton, Jr.}|\break
+% \LUse \Name*[George S.]{Patton, Jr.}\dotfill^^A
+% |\Name*[George S.]{Patton, Jr.}|\break
+% \LUse \Name [George S.]{Patton, Jr.}\dotfill^^A
+% |\Name [George S.]{Patton, Jr.}|\break
+% \LUse \FName[George S.]{Patton, Jr.}\dotfill^^A
+% |\FName[George S.]{Patton, Jr.}|
% \end{Block}
%
% \subsubsection*{\hfil Affixes and Alternate Forms}
%
-% In a long name reference, \cmd{\DropAffix} drops a name affix from a Western name. The \meta{Alternate} argument permits changes in the text only for long references and forename-only references. Otherwise, the automatic shortening of names will display only a short surname.
+% In a long name instance, \cmd{\DropAffix} drops the affix from a Western surname. The \meta{Alternate} argument appears only in long names or forename-only names in the text. Otherwise, the automatic shortening of names will display only a short surname.
%
% \begin{itemize}
-% \vspace{5ex}
+% \item Drop the affix in a long name instance (forced by \cmd{\Name*}):
% \BothInfo{\ShowPattern[George S.]{Patton, Jr.}\break
% \ShowPattern[J.D.]{Rockefeller, IV}\break
% \ShowPattern[Clive Staples]{Lewis}}
% {\ShowIdxPageref*[George S.]{Patton, Jr.}\break
% \ShowIdxPageref*[J.D.]{Rockefeller, IV}\break
% \ShowIdxPageref*[Clive Staples]{Lewis}}
-% \vspace{-5ex}
-% \item Drop the affix in a long name reference:\\[1ex]
-% \FUse |\DropAffix\Name*[George S.]{Patton, Jr.}|\dotfill\hbox{}\\
-% \hbox{}\dotfill \ForgetThis\DropAffix\Name*[George S.]{Patton, Jr.}\\
-% \LUse |\DropAffix\Name*[George S.]{Patton, Jr.}|\dotfill\hbox{}\\
-% \hbox{}\dotfill \DropAffix\Name*[George S.]{Patton, Jr.}
-% \item Use an alternate forename in a long name or forename
-% reference:\\[1ex]
-% \FUse \cmd{\Name[J.D.]\{Rockefeller, IV\}[John Davison]}\dotfill
-% \hbox{}\\
-% \hbox{}\dotfill\Name[J.D.]{Rockefeller, IV}[John Davison]\\
-% \LUse |\FName[George S.]{Patton, Jr.}[George]|\dotfill
-% \FName[George S.]{Patton, Jr.}[George]
-% \item Drop the affix and alter the forenames:\\[1ex]
-% \FUse |\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]|\dotfill\hbox{}\\
-% \hbox{}\dotfill\ForgetThis\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]
-% \LUse |\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]|\dotfill\hbox{}\\
-% \hbox{}\dotfill\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]
-% \item Use multiple alternate forenames for the same person:\\[1ex]
-% \FUse |\Name [Clive Staples]{Lewis}|\dotfill \Name [Clive Staples]{Lewis}\\
-% \LUse |\Name*[Clive Staples]{Lewis}[C.S.]|\dotfill
-% \Name*[Clive Staples]{Lewis}[C.S.]\\
-% \LUse |\FName[Clive Staples]{Lewis}[Jack]|\dotfill
-% \FName[Clive Staples]{Lewis}[Jack]
-% \end{itemize}
-% \negmedskip
+% \begin{Block}
+% \FUse \ForgetThis\DropAffix\Name*[George S.]{Patton, Jr.}\\
+% \UseB |\DropAffix\Name*[George S.]{Patton, Jr.}|\\
+% \LUse \DropAffix\Name*[George S.]{Patton, Jr.}\\
+% \UseB |\DropAffix\Name*[George S.]{Patton, Jr.}|
+% \end{Block}
%
-% To sort the index consistently and properly, all names should be sorted by their longest unique name forms and by the Arabic equivalents of Roman numerals. See Section~\ref{sec:NameMedieval}, \ref{sec:IndexSort}, \ref{sec:IndexInitials}, \ref{sec:VarNames}. and all of Section~\ref{sec:AdvancedFormat}.
+% \item Use an alternate forename in a long- or forename instance:
+% \begin{Block}
+% \FUse \Name[J.D.]{Rockefeller, IV}[John Davison]\\
+% \UseB |\Name[J.D.]{Rockefeller, IV}[John Davison]|\\
+% \LUse \FName[George S.]{Patton, Jr.}[George]\\
+% \UseB |\FName[George S.]{Patton, Jr.}[George]|
+% \end{Block}
%
-% \begin{itemize}
-% \item[] For example, with the name \LJRIV:
-% \item The initials \texttt{J.D.} become \texttt{John D} in the sort tag.
-% \item The affix \texttt{IV} becomes \texttt{4}.
-% \item |\PretagName[J.D.]{Rockefeller, IV}{Rockefeller, John D 4}|
+% \item Drop the affix and alter the forenames:
+% \begin{Block}
+% \FUse \ForgetThis\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]\\
+% \UseB |\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]|\\
+% \LUse \DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]\\
+% \UseB |\DropAffix\Name*[J.D.]{Rockefeller, IV}[Jay]|
+% \end{Block}
+%
+% \item Use multiple alternate forenames for the same person:
+% \begin{Block}
+% \FUse \Name [Clive Staples]{Lewis}\\
+% \UseB |\Name [Clive Staples]{Lewis}|\\
+% \LUse \Name*[Clive Staples]{Lewis}[C.S.]\\
+% \UseB |\Name*[Clive Staples]{Lewis}[C.S.]|\\
+% \LUse \FName[Clive Staples]{Lewis}[Jack]\\
+% \UseB |\FName[Clive Staples]{Lewis}[Jack]|
+% \end{Block}
% \end{itemize}
%
+% \begin{InfoBox}
+% To sort the index consistently and properly, all names should be sorted by their longest unique name forms and by the Arabic equivalents of Roman numerals. See Section~\ref{sec:NameMedieval}, \ref{sec:IndexSort}, \ref{sec:IndexInitials}, \ref{sec:VarNames}. and all of Section~\ref{sec:AdvancedFormat}. For example:
+%
+% \begin{center}
+% |\PretagName[J.D.]{Rockefeller, IV}{Rockefeller, John D 4}|
+% \end{center}
+% \end{InfoBox}
+%
% \begin{Quote}{\ForgetThis\Wash, Farewell Address (1796)}
-% The alternate domination of one faction over another, sharpened by the spirit of revenge, \dots is itself a frightful despotism. But this leads at length to a more formal and permanent despotism. The disorders and miseries, which result, gradually incline the minds of men to seek security and repose in the absolute power of an individual; and sooner or later the chief of some prevailing faction, more able or more fortunate than his competitors, turns this disposition to the purposes of his own elevation, on the ruins of Public Liberty.
+% The alternate domination of one faction over another, sharpened by the spirit of revenge, \dots is itself a frightful despotism. But this leads at length to a more formal and permanent despotism. The disorders and miseries, which result, gradually incline the minds of men to seek security and repose in the absolute power of an individual; and sooner or later the chief of some prevailing faction, more able or more fortunate than his competitors, turns this disposition to the purposes of his own elevation, on the ruins of Public Liberty.^^A
+% \index{politicians, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
+% \newpage
+%
% \subsubsection[Reversed Western]{Reversed Western Names}
-% \negsmallskip
%
-% \begin{tcolorbox}[colframe=naslate]\centering\small
+% \begin{tcolorbox}[colframe=naslate]\centering
% \begin{tabular}{l@{ }c@{ }c@{ }c}
% & Required & Required \meta{SNN} & Optional\\
% & \meta{FNN} & no \meta{Affix} & (text only)\\[1ex]
@@ -1955,41 +2048,40 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection*{\hfil Starting with Western Name Forms}
%
-% \leavevmode^^A
+% These reversed Western forms are used optimally in a context where Hungarian names and similar cases of name order appear in a document because their index entries take a Western form [\hyperlink{Mulvany}{Mulvany}, 166].\footnote{Regarding the margin note that shows name control sequences, with \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern[Frenec]{Molnár}} the glyphs \texttt{Ãą} correspond to \cmd{\IeC\{\textbackslash\textquotesingle a\}}.}
+%
+% \begin{Block}
% \BothInfo{\ShowPattern[Frenec]{Molnár}\break
% \ShowPattern[Hideyo]{Noguchi}}
% {\ShowIdxPageref*[Hideyo]{Noguchi}\break
% \ShowIdxPageref*[Frenec]{Molnár}}
-% These reversed Western forms are used optimally in a context where Hungarian names and similar cases of name order appear in a document because their index entries take a Western form [\hyperlink{Mulvany}{Mulvany}, 166].\footnote{Regarding the margin note that shows name control sequences, with \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern[Frenec]{Molnár}} the glyphs \texttt{Ãą} correspond to \cmd{\IeC\{\textbackslash\textquotesingle a\}}.}
-%
-% \begin{Block}
-% \FUse |\Name [Frenec]{Molnár}|\dotfill \Name [Frenec]{Molnár}\\
-% \FUse |\Name [Hideyo]{Noguchi}|\dotfill \Name [Hideyo]{Noguchi}\\
-% \LUse |\Name*[Hideyo]{Noguchi}[Doctor]|\dotfill \Name*[Hideyo]{Noguchi}[Doctor]
+% \FUse \Name [Frenec]{Molnár}\dotfill |\Name [Frenec]{Molnár}|\\
+% \FUse \Name [Hideyo]{Noguchi}\dotfill |\Name [Hideyo]{Noguchi}|\\
+% \LUse \Name*[Hideyo]{Noguchi}[Doctor]\dotfill |\Name*[Hideyo]{Noguchi}[Doctor]|
% \end{Block}
%
% \subsubsection*{\hfil Using the Reversing Macros}
%
-% \noindent We use the prefix macros \cmd{\RevName} and optionally \cmd{\CapName} (Section~\ref{sec:SelectOver}) to print a Hungarian or ``non-native'' Eastern name in the text while keeping Western forms in the index. These macros, as is the case with many \textsf{nameauth} macros, work properly in context, not arbitrarily:
+% \noindent We use the prefix macros \cmd{\RevName} and optionally \cmd{\CapName} (Section~\ref{sec:SelectOver}) to print either a Hungarian or ``non-native'' Eastern name in the text while keeping Western forms in the index:
%
% \begin{Block}
-% \LUse |\RevName\Name*[Frenec]{Molnár}\dag|\Same\dotfill
-% \RevName\Name*[Frenec]{Molnár}\dag\\
-% \LUse |\RevName\Name [Frenec]{Molnár}\dag|\dotfill
-% \RevName\Name [Frenec]{Molnár}\dag\\
-% \LUse |\CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]\dag|\dotfill\\
-% \hbox{}\dotfill \CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]\dag\\
-% \LUse |\CapName\RevName\Name [Hideyo]{Noguchi}[Sensei]\dag|\dotfill\\
-% \hbox{}\dotfill \CapName\RevName\Name [Hideyo]{Noguchi}[Sensei]\dag
+% \LUse\Same \RevName\Name*[Frenec]{Molnár}\dag\\
+% \UseB |\RevName\Name*[Frenec]{Molnár}\dag|\\
+% \LUse \RevName\Name [Frenec]{Molnár}\dag\\
+% \UseB |\RevName\Name [Frenec]{Molnár}\dag|\\
+% \LUse \CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]\dag\\
+% \UseB |\CapName\RevName\Name*[Hideyo]{Noguchi}[Sensei]\dag|\\
+% \LUse \CapName\RevName\Name [Hideyo]{Noguchi}[Sensei]\dag\\
+% \UseB |\CapName\RevName\Name [Hideyo]{Noguchi}[Sensei]\dag|
% \end{Block}
%
-% If Western names are reversed to have Eastern order, they will have Eastern name order in the text, but \emph{they will retain Western-form index entries.} The reversing macros help when a publication uses only Western name entries in the index, or when printing and indexing names with requirements like Hungarian names.
+% These macros, as is the case with many \textsf{nameauth} macros, work properly in context, not arbitrarily. \emph{They always have Western index entries,} regardless of how they appear in the text.
%
% \subsubsection{Eastern Names}
%
-% All non-Western name forms in \textsf{nameauth} have the syntax: \meta{SNN,Affix}. In Eastern names, \meta{SNN} refers to a family name and \meta{Affix} to a personal name. Otherwise, \meta{SNN} refers to a person's name and \meta{Affix} to added information. Knowing this difference helps one avoid nonsense names.\medskip
+% All nonwestern name forms in \textsf{nameauth} have the syntax: \meta{SNN,Affix}. In Eastern names, \meta{SNN} refers to a family name and \meta{Affix} to a personal name. Otherwise, \meta{SNN} refers to a person's name and \meta{Affix} to added information. Knowing this difference helps one avoid nonsense names.\medskip
%
-% \negsmallskip\begin{tcolorbox}[colframe=naslate]\centering\small
+% \begin{tcolorbox}[colframe=naslate]\centering
% \begin{tabular}{l@{ }c@{ }c}
% & Required \meta{SNN} & Optional\\
% & required \meta{Affix} & (text only)\\[1ex]
@@ -2013,10 +2105,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \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 Their index entries take the nonwestern form: \meta{SNN Affix}.
% \item Names with the form \meta{SNN, Affix} can use the \meta{Alternate}
% argument to swap \meta{Affix} with \meta{Alternate}.
-% \item They have non-Western name patterns and index entry forms.
+% \item They have nonwestern name patterns and index entry forms.
% \end{itemize}
%
% \subsubsection*{\hfil ``Native'', Reversible Eastern Name Forms}
@@ -2028,39 +2120,33 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \BothInfo{\ShowPattern{Miyazaki, Hayao}}
% {\ShowIdxPageref*{Miyazaki, Hayao}}
% \vspace{-3.5ex}
-% \FUse |\Name {Miyazaki, Hayao}|\dotfill
-% \ForgetThis\Name {Miyazaki, Hayao}\\
-% \LUse |\Name {Miyazaki, Hayao}|\dotfill \Name {Miyazaki, Hayao}\\
-% \LUse |\Name*{Miyazaki, Hayao}[Sensei]|\dotfill
-% \Name*{Miyazaki, Hayao}[Sensei]\\
-% \LUse |\FName{Miyazaki, Hayao}|\dotfill \FName{Miyazaki, Hayao}
+% \ForgetName {Miyazaki, Hayao}
+% \FUse \Name {Miyazaki, Hayao}\dotfill |\Name {Miyazaki, Hayao}|\\
+% \LUse \Name {Miyazaki, Hayao}\dotfill |\Name {Miyazaki, Hayao}|\\
+% \LUse \Name*{Miyazaki, Hayao}[Sensei]\dotfill |\Name*{Miyazaki, Hayao}[Sensei]|\\
+% \LUse \FName{Miyazaki, Hayao}\dotfill |\FName{Miyazaki, Hayao}|
% \end{Block}
%
% One must use \cmd{\ForceFN} with \cmd{\FName} (Section~\ref{sec:FName}) to get a personal name. \meta{Alternate} swaps with \meta{FNN} (in both long forms and in short forms) in the text only. \meta{Alternate} does not work with the obsolete syntax (Section~\ref{sec:Obsolete}):
%
% \begin{Block}
-% \LUse |\ForceFN\FName{Miyazaki, Hayao}|\Same\dotfill
-% \ForceFN\FName{Miyazaki, Hayao}\\
-% \LUse |\CapName\Name*{Miyazaki, Hayao}[Sensei]|\dotfill
-% \CapName\Name*{Miyazaki, Hayao}[Sensei]\\
-% \LUse |\ForceFN\FName{Miyazaki, Hayao}[Sensei]|\dotfill
-% \ForceFN\FName{Miyazaki, Hayao}[Sensei]\\
-% \LUse |\RevName\Name*{Miyazaki, Hayao}[Mr.]|\dotfill
-% \RevName\Name*{Miyazaki, Hayao}[Mr.]
+% \LUse\Same \ForceFN\FName{Miyazaki, Hayao}\dotfill^^A
+% |\ForceFN\FName{Miyazaki, Hayao}|\\
+% \LUse \CapName\Name*{Miyazaki, Hayao}[Sensei]\dotfill^^A
+% |\CapName\Name*{Miyazaki, Hayao}[Sensei]|\\
+% \LUse \ForceFN\FName{Miyazaki, Hayao}[Sensei]\dotfill^^A
+% |\ForceFN\FName{Miyazaki, Hayao}[Sensei]|\\
+% \LUse \RevName\Name*{Miyazaki, Hayao}[Mr.]\dotfill^^A
+% |\RevName\Name*{Miyazaki, Hayao}[Mr.]|
% \end{Block}
%
% If ``native'' Eastern names are reversed, they will have Western name order in the text, but \emph{they will retain Eastern-form index entries.}
%
-% \begin{Quote}{\Name[Harold]{Urey} (1961)}
-% The space program is not only scientific in purpose but also is an expression of man's insistent determination to do the nearly impossible\,---\,to explore the unknown, even at great risk.\vspace{-1ex}
-% \end{Quote}
-%
% \newpage
%
% \subsubsection[Ancient Names]{Royal, Medieval, and Ancient Names}
-% \negsmallskip
%
-% \begin{tcolorbox}[colframe=naslate]\centering\small
+% \begin{tcolorbox}[colframe=naslate]\centering
% \begin{tabular}{l@{ }c@{ }c}
% & Required \meta{SNN} & Optional,\\
% & optional \meta{Affix} & special\\[1ex]
@@ -2079,61 +2165,66 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{tcolorbox}\medskip
%
% \noindent
-% These features denote royal, medieval, and ancient names in \textsf{nameauth}, grouped under the general rubric of ``non-Western'' name forms:
+% These features denote royal, medieval, and ancient names in \textsf{nameauth}, grouped under the general rubric of ``nonwestern'' name forms:
%
% \begin{itemize}
% \item They must \emph{leave empty} the \meta{FNN} argument.
% \item They use either the \meta{SNN, Affix} arguments or just \meta{SNN}.
-% \item Their index entries take the non-Western forms: \meta{SNN Affix}
+% \item Their index entries take the nonwestern forms: \meta{SNN Affix}
% or \meta{SNN}.
% \item Names with the form \meta{SNN, Affix} can use the \meta{Alternate}
% argument to swap \meta{Affix} with \meta{Alternate}.
% \item Names with the form \meta{SNN} should not use \meta{Alternate}
% (cf. Section~\ref{sec:Obsolete}).
-% \item They have non-Western name patterns and index entry forms.
+% \item They have nonwestern name patterns and index entry forms.
% \item One generally does not reverse these names (Section~\ref{sec:RevNames}).
% \end{itemize}
%
% \subsubsection*{\hfil No School Like the Old School}
%
% \begin{itemize}
-% \vspace{3ex}
+% \item \cmd{\FName} normally prints \meta{SNN} to avoid nonsense names
+% in the text.
% \BothInfo{\ShowPattern{Elizabeth, I}\break
% \ShowPattern{John, Eriugena}\break
% \ShowPattern{Aristotle}}
% {\ShowIdxPageref*{Elizabeth, I}\break
% \ShowIdxPageref*{John, Eriugena}\break
% \ShowIdxPageref*{Aristotle}}
-% \vspace{-3ex}
-% \item \cmd{\FName} normally prints \meta{SNN} to avoid nonsense names
-% in the text.\\[1ex]
-% \FUse |\Name {Elizabeth, I}|\dotfill \Name {Elizabeth, I}\\
-% \LUse |\Name {Elizabeth, I}|\dotfill \Name {Elizabeth, I}\\
-% \LUse |\FName{Elizabeth, I}|\dotfill \FName{Elizabeth, I}
-%
-% \item Here we work with titles and sobriquets:\\[1ex]
-% \FUse |\ForgetThis\Name{Elizabeth, I}[I ``Gloriana'']|\dotfill\hbox{}\\
-% \hbox{}\dotfill \ForgetThis\Name{Elizabeth, I}[I ``Gloriana'']
-% \LUse |\ForceFN\FName{Elizabeth, I}[Gloriana]|\dotfill
-% \ForceFN\FName{Elizabeth, I}[Gloriana]
-%
-% \item Here we show a non-royal:\\[1ex]
-% \FUse |\Name {John, Eriugena}[Scotus Eriugena]|\dotfill\hbox{}\\
-% \hbox{}\dotfill \Name {John, Eriugena}[Scotus Eriugena]\\
-% \LUse |\Name*{John, Eriugena}|\dotfill \Name*{John, Eriugena}\\
-% \LUse |\Name {John, Eriugena}|\dotfill \Name {John, Eriugena}\\
-% \LUse |\ForceFN\FName{John, Eriugena}|\dotfill
-% \ForceFN\FName{John, Eriugena}
-%
-% \item These are nonsense names:\\[1ex]
-% \LUse |\ForceFN\FName{Elizabeth, I}|\dotfill
-% \ForceFN\FName{Elizabeth, I}\\
-% \LUse |\RevName\Name*{John, Eriugena}|\dotfill
-% \RevName\Name*{John, Eriugena}
-%
-% \item The trivial case:\\[1ex]
-% \FUse |\Name{Aristotle}|\dotfill \Name{Aristotle}\\
-% \LUse |\Name{Aristotle}|\dotfill \Name{Aristotle}
+% \begin{Block}
+% \FUse \Name {Elizabeth, I}\dotfill |\Name {Elizabeth, I}|\\
+% \LUse \Name {Elizabeth, I}\dotfill |\Name {Elizabeth, I}|\\
+% \LUse \FName{Elizabeth, I}\dotfill |\FName{Elizabeth, I}|
+% \end{Block}
+%
+% \item Here we work with titles and sobriquets:
+% \begin{Block}
+% \FUse \ForgetThis\Name{Elizabeth, I}[I ``Gloriana'']\\
+% \UseB |\ForgetThis\Name{Elizabeth, I}[I ``Gloriana'']|\\
+% \LUse \ForceFN\FName{Elizabeth, I}[Gloriana]\\
+% \UseB |\ForceFN\FName{Elizabeth, I}[Gloriana]|
+% \end{Block}
+%
+% \item Here we show a non-royal:
+% \begin{Block}
+% \FUse \Name {John, Eriugena}[Scotus Eriugena]\\
+% \UseB |\Name {John, Eriugena}[Scotus Eriugena]|\\
+% \LUse \Name*{John, Eriugena}\dotfill |\Name*{John, Eriugena}|\\
+% \LUse \Name {John, Eriugena}\dotfill |\Name {John, Eriugena}|\\
+% \LUse \ForceFN\FName{John, Eriugena}\dotfill |\ForceFN\FName{John, Eriugena}|
+% \end{Block}
+%
+% \item These are nonsensical name forms:
+% \begin{Block}
+% \LUse \ForceFN\FName{Elizabeth, I}\dotfill |\ForceFN\FName{Elizabeth, I}|\\
+% \LUse \RevName\Name*{John, Eriugena}\dotfill |\RevName\Name*{John, Eriugena}|
+% \end{Block}
+%
+% \item The trivial case:
+% \begin{Block}
+% \FUse \Name{Aristotle}\dotfill |\Name{Aristotle}|\\
+% \LUse \Name{Aristotle}\dotfill |\Name{Aristotle}|
+% \end{Block}
% \end{itemize}
%
% \newpage
@@ -2155,8 +2246,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\end\{nameauth\}}
% \end{SyntaxBox}
%
-% In this context, \meta{arg1} becomes the root of three new macros per name:\medskip
+% In this context, \meta{arg1} becomes the root of three new macros per name:
%
+% \begin{quote}
% \begin{tabular}{@{\quad}l@{\ same as: }ll}
% \texttt{\textbackslash}\meta{arg1} &
% \cmd{\Name\ }\oarg{arg2}\marg{arg3}\oarg{arg4} \\
@@ -2166,7 +2258,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \texttt{\textbackslash S}\meta{arg1} &
% \cmd{\FName}\oarg{arg2}\marg{arg3}\oarg{arg4} &
% {\color{nared} |%| S for \textit{short}} \\
-% \end{tabular}\medskip
+% \end{tabular}
+% \end{quote}
%
% Usually we leave \meta{arg4} empty, apart from specific contexts. That field permanently displays only alternate names, or is used with the obsolete syntax (Section~\ref{sec:Obsolete}). Here is another way of thinking about arguments in the \texttt{nameauth} environment that relates back to what we have seen:
%
@@ -2179,11 +2272,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\end\{nameauth\}}
% \end{SyntaxBox}
%
-% By seeing the mandatory arguments in black and the optional ones in red, it helps us to see that, 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, or angle bracket will cause fatal errors. See Section~\ref{sec:FinalOptargs} on final optional arguments.\medskip
+% By seeing the mandatory arguments in black and the optional ones in red, it helps us to see that, 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, or angle bracket will cause fatal errors. See Section~\ref{sec:FinalOptargs} on final optional arguments.
%
% Package warnings\Warn\ result when one redefines name shorthands using the \texttt{nameauth} environment. For example, we use \texttt{White} in two different rows to populate \meta{Arg1}. That causes \cmd{\White}, \cmd{\LWhite}, and \cmd{\SWhite} to be redefined:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \begin{nameauth}
% \< White & E.B. & White & > % version 1
@@ -2204,7 +2297,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% The comments below are merely explanatory and in no wise required to use the environment. Likewise, extra spaces that are added for clarity are stripped.
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \begin{nameauth}
% % Western Name Forms
@@ -2236,212 +2329,227 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{quote}
%
% Here is an example of how much typing one can save with the quick interface, not to mention the prevention of error by not retyping arguments:
-% \begin{center}\small\medstretch
+%
+% \begin{center}
% \begin{tabular}{rll}\toprule
-% Output & & Macro\\
-% \rowcolor{nagrey}\Wash & Quick: & \cmd{\Wash}\\
-% \rowcolor{nagrey} & Basic: &
-% \cmd{\Name}\texttt{[George]\{Washington\}}\\
-% \LWash & Quick: & \cmd{\LWash}\\
-% & Basic: &
-% \cmd{\Name*}\texttt{[George]\{Washington\}}\\
-% \rowcolor{nagrey}\SWash & Quick: & \cmd{\SWash}\\
-% \rowcolor{nagrey} & Basic: &
-% \cmd{\FName}\texttt{[George]\{Washington\}}\\
-% \ForgetThis\Wash & Quick: & \cmd{\ForgetThis}\cmd{\Wash}\\
-% & Basic: &
-% \cmd{\ForgetName}\texttt{[George]\{Washington\}}\\
-% & &
-% \cmd{\Name}\texttt{[George]\{Washington\}}\\
-% \rowcolor{nagrey}\ForgetThis\Wash & Quick: & \cmd{\ForgetThis}\cmd{\Wash}\\
-% \rowcolor{nagrey} & Basic: &
-% \cmd{\ForgetThis}\cmd{\Name}\texttt{[George]\{Washington\}}\\
-% \SubvertThis\Wash & Quick: & \cmd{\SubvertThis}\cmd{\Wash}\\
-% & Basic: &
-% \cmd{\SubvertName}\texttt{[George]\{Washington\}}\\
-% & &
-% \cmd{\Name}\texttt{[George]\{Washington\}}\\
-% \rowcolor{nagrey}\SubvertThis\Wash & Quick: & \cmd{\SubvertThis}\cmd{\Wash}\\
-% \rowcolor{nagrey} & Basic: &
-% \cmd{\SubvertThis}\cmd{\Name}\texttt{[George]\{Washington\}}\\
-% \JustIndex\Wash(unseen in text) & Quick: & \cmd{\JustIndex}\cmd{\Wash}\\
-% & Basic: &
-% \cmd{\IndexName}\texttt{[George]\{Washington\}}\\\bottomrule
+% \rowcolor{nagrey}^^A
+% \bfseries Output & & \bfseries Macro\\
+%
+% \Wash & Quick: & \cmd{\Wash}\\
+% & Basic: &
+% \cmd{\Name}\texttt{[George]\{Washington\}}\\
+%
+% \rowcolor{nagrey}^^A
+% \LWash & Quick: & \cmd{\LWash}\\
+% \rowcolor{nagrey}^^A
+% & Basic: &
+% \cmd{\Name*}\texttt{[George]\{Washington\}}\\
+%
+% \SWash & Quick: & \cmd{\SWash}\\
+% & Basic: &
+% \cmd{\FName}\texttt{[George]\{Washington\}}\\
+%
+% \rowcolor{nagrey}^^A
+% \ForgetThis\Wash & Quick: & \cmd{\ForgetThis}\cmd{\Wash}\\
+% \rowcolor{nagrey}^^A
+% & Basic: &
+% \cmd{\ForgetName}\texttt{[George]\{Washington\}}\\
+% \rowcolor{nagrey}^^A
+% & &
+% \cmd{\Name}\texttt{[George]\{Washington\}}\\
+%
+% \ForgetThis\Wash & Quick: & \cmd{\ForgetThis}\cmd{\Wash}\\
+% & Basic: &
+% \cmd{\ForgetThis}^^A
+% \cmd{\Name}\texttt{[George]\{Washington\}}\\
+%
+% \rowcolor{nagrey}^^A
+% \SubvertThis\Wash & Quick: & \cmd{\SubvertThis}\cmd{\Wash}\\
+% \rowcolor{nagrey}^^A
+% & Basic: &
+% \cmd{\SubvertName}\texttt{[George]\{Washington\}}\\
+% \rowcolor{nagrey}^^A
+% & &
+% \cmd{\Name}\texttt{[George]\{Washington\}}\\
+%
+% \SubvertThis\Wash & Quick: & \cmd{\SubvertThis}\cmd{\Wash}\\
+% & Basic: &
+% \cmd{\SubvertThis}\cmd{\Name}\texttt{[George]\{Washington\}}\\
+%
+% \rowcolor{nagrey}^^A
+% \JustIndex\Wash(unseen in text) & Quick: & \cmd{\JustIndex}\cmd{\Wash}\\
+% \rowcolor{nagrey}^^A
+% & Basic: &
+% \cmd{\IndexName}\texttt{[George]\{Washington\}}\\\bottomrule
% \end{tabular}
% \end{center}
%
+% \newpage
+%
% \subsubsection[Name Variants]{Quick Name Variant Overview}
%
-% After setting up the previous environment, we can use the resulting name shorthands. Below we introduce more ``prefix macros'' that affect syntactic forms of names. For the sake of clarity we use but do not show the prefix macro \cmd{\ForgetThis} (Section~\ref{sec:NameControl}), which produces a first use of a name.
+% After setting up the previous \texttt{nameauth} environment, we use the resulting name shorthands. Below we show more ``prefix macros'' that affect name forms in the text. We hide the use of \cmd{\ForgetThis} (Section~\ref{sec:NameControl}), which creates first instances.
%
-% \vspace{4ex}
+% \begin{itemize}
+% \item Western Names: \hfill Sections~\ref{sec:Naming},
+% \ref{sec:FName}
% \BothInfo{\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{Miyazaki, Hayao}}
% {\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*{Miyazaki, Hayao}}
-% \vspace{-4ex}
% \begin{Block}
-% \textsc{Western:} \hfill (Sections~\ref{sec:Naming},
-% \ref{sec:FName}\\
-% \FUse \cmd{\Wash}\dotfill \ForgetThis\Wash\\
-% \LUse \cmd{\LWash}\dotfill \LWash\\
-% \LUse \cmd{\Wash}\dotfill \Wash\\
-% \LUse \cmd{\SWash}\dotfill \SWash
+% \FUse \ForgetThis\Wash \dotfill \cmd{\Wash}\\
+% \LUse \LWash \dotfill \cmd{\LWash}\\
+% \LUse \Wash \dotfill \cmd{\Wash}\\
+% \LUse \SWash \dotfill \cmd{\SWash}
% \end{Block}
%
+% \item Nicknames and Affixes: \hfill Sections~\ref{sec:FName},
+% \ref{sec:Affix}
% \begin{Block}
-% \textsc{Nicknames and Affixes:} \hfill
-% (Sections~\ref{sec:FName}, \ref{sec:Affix})\\
-% \FUse \cmd{\DropAffix}\cmd{\Patton}\hfill
-% \ForgetThis\DropAffix\Patton\\
-% \LUse \cmd{\LPatton}\dotfill \LPatton\\
-% \LUse \cmd{\DropAffix}\cmd{\LPatton}\dotfill \DropAffix\LPatton\\
-% \LUse \cmd{\Patton}\dotfill \Patton\medskip
-%
-% \FUse \cmd{\Patton}\dotfill \ForgetThis\Patton\\
-% \LUse \cmd{\DropAffix}\cmd{\LPatton}\dotfill
-% \DropAffix\LPatton\\
-% \LUse \cmd{\DropAffix}\cmd{\LPatton[George]}\dotfill
-% \DropAffix\LPatton[George]\\
-% \LUse \cmd{\SPatton[George]}\dotfill \SPatton[George]\medskip
-%
-% \FUse \cmd{\JRIV[John Davison]}\dotfill
-% \ForgetThis\JRIV[John Davison]\\
-% \LUse \cmd{\LJRIV}\dotfill \LJRIV\\
-% \LUse \cmd{\DropAffix}\cmd{\LJRIV[Jay]}\dotfill
-% \DropAffix\LJRIV[Jay]\medskip
-%
-% \FUse \cmd{\Lewis}\dotfill \ForgetThis\Lewis\\
-% \LUse \cmd{\LLewis[C.S.]}\dotfill \LLewis[C.S.]\\
-% \LUse \cmd{\LLewis[Jack]}\dotfill \LLewis[Jack]\\
-% \LUse \cmd{\SLewis}\dotfill \SLewis\\
-% \LUse \cmd{\SLewis[Jack]}\dotfill \SLewis[Jack]\\
-% \LUse \cmd{\LCSL}\dotfill \LCSL\\
-% \LUse \cmd{\SCSL}\dotfill \SCSL
+% \FUse \ForgetThis\DropAffix\Patton \dotfill \cmd{\DropAffix}\cmd{\Patton}\\
+% \LUse \LPatton \dotfill \cmd{\LPatton}\\
+% \LUse \Patton \dotfill \cmd{\Patton}\\
+% \LUse \DropAffix\LPatton \dotfill \cmd{\DropAffix}\cmd{\LPatton}\\
+% \LUse \DropAffix\LPatton[George]\dotfill^^A
+% \cmd{\DropAffix}\cmd{\LPatton[George]}\\
+% \LUse \SPatton\dotfill \cmd{\SPatton}\\
+% \LUse \SPatton[George]\dotfill \cmd{\SPatton[George]}
% \end{Block}
%
% \begin{Block}
-% \textsc{``Native'' Eastern:} \hfill (Section~\ref{sec:Eastern})\\
-% \FUse \cmd{\CapName}\cmd{\Miyazaki}\dotfill
-% \ForgetThis\CapName\Miyazaki\\
-% \LUse \cmd{\CapName}\cmd{\LMiyazaki}\dotfill
-% \CapName\LMiyazaki\\
-% \LUse \cmd{\CapName}\cmd{\Miyazaki}\dotfill
-% \CapName\Miyazaki\\
-% \LUse \cmd{\RevName}\cmd{\LMiyazaki}\dotfill
-% \RevName\LMiyazaki\\
-% \LUse \cmd{\RevName}\cmd{\LMiyazaki[Mr.]}\dotfill
-% \RevName\LMiyazaki[Mr.]\\
-% \LUse \cmd{\SMiyazaki}\dotfill \SMiyazaki\\
-% \LUse \cmd{\ForceFN}\cmd{\SMiyazaki}\dotfill
-% \ForceFN\SMiyazaki
+% \FUse \ForgetThis\JRIV[John Davison]\dotfill^^A
+% \cmd{\JRIV[John Davison]}\\
+% \LUse \LJRIV \dotfill \cmd{\LJRIV}\\
+% \LUse \DropAffix\LJRIV[Jay]\dotfill \cmd{\DropAffix}\cmd{\LJRIV[Jay]}
% \end{Block}
%
% \begin{Block}
-% \textsc{Reversed Western:} \hfill (Section~\ref{sec:RevNames})\\
-% \FUse \cmd{\Noguchi}\dotfill \ForgetThis\Noguchi\\
-% \LUse \cmd{\LNoguchi}\dotfill \LNoguchi\\
-% \LUse \cmd{\LNoguchi[Doctor]}\dotfill \LNoguchi[Doctor]\\
-% \LUse \cmd{\SNoguchi}\dotfill \SNoguchi\\
-% \LUse \cmd{\RevName}\cmd{\LNoguchi}\cmd{\dag}\dotfill
-% \RevName\LNoguchi\dag\\
-% \LUse \cmd{\CapName}\cmd{\RevName}\cmd{\LNoguchi}\cmd{\dag}\dotfill
-% \CapName\RevName\LNoguchi\dag\\
-% \LUse \cmd{\CapName}\cmd{\Noguchi}\cmd{\dag}\dotfill
-% \CapName\Noguchi\dag
+% \FUse \ForgetThis\Lewis\dotfill \cmd{\Lewis}\\
+% \LUse \LLewis[C.S.]\dotfill \cmd{\LLewis[C.S.]}\\
+% \LUse \LLewis[Jack]\dotfill \cmd{\LLewis[Jack]}\\
+% \LUse \SLewis\dotfill \cmd{\SLewis}\\
+% \LUse \SLewis[Jack]\dotfill \cmd{\SLewis[Jack]}\\
+% \LUse \LCSL\dotfill \cmd{\LCSL}\\
+% \LUse \SCSL\dotfill \cmd{\SCSL}
% \end{Block}
%
+% \item ``Native'' Eastern Names: \hfill Section~\ref{sec:Eastern}
% \begin{Block}
-% \textsc{Western, Reversed by Surname:} \hfill
-% (Section \ref{sec:LastFirst})\\
-% \FUse \cmd{\RevComma}\cmd{\LWash}\dotfill
-% \ForgetThis\RevComma\LWash\\
-% \LUse \cmd{\RevComma}\cmd{\LWash}\dotfill \RevComma\LWash
+% \FUse \ForgetThis\CapName\Miyazaki\dotfill \cmd{\CapName}\cmd{\Miyazaki}\\
+% \LUse \CapName\LMiyazaki\dotfill \cmd{\CapName}\cmd{\LMiyazaki}\\
+% \LUse \CapName\Miyazaki\dotfill \cmd{\CapName}\cmd{\Miyazaki}\\
+% \LUse \RevName\LMiyazaki\dotfill \cmd{\RevName}\cmd{\LMiyazaki}\\
+% \LUse \RevName\LMiyazaki[Mr.]\dotfill \cmd{\RevName}\cmd{\LMiyazaki[Mr.]}\\
+% \LUse \SMiyazaki\dotfill \cmd{\SMiyazaki}\\
+% \LUse \ForceFN\SMiyazaki\dotfill \cmd{\ForceFN}\cmd{\SMiyazaki}
% \end{Block}
%
-% \newpage
+% \item Reversed Western Names: \hfill Section~\ref{sec:RevNames}
+% \begin{Block}
+% \FUse \ForgetThis\Noguchi\dotfill \cmd{\Noguchi}\\
+% \LUse \LNoguchi\dotfill \cmd{\LNoguchi}\\
+% \LUse \LNoguchi[Doctor]\dotfill \cmd{\LNoguchi[Doctor]}\\
+% \LUse \SNoguchi\dotfill \cmd{\SNoguchi}\\
+% \LUse \RevName\LNoguchi\dag\dotfill \cmd{\RevName}\cmd{\LNoguchi}\cmd{\dag}\\
+% \LUse \CapName\RevName\LNoguchi\dag\dotfill^^A
+% \cmd{\CapName}\cmd{\RevName}\cmd{\LNoguchi}\cmd{\dag}\\
+% \LUse \CapName\Noguchi\dag\dotfill \cmd{\CapName}\cmd{\Noguchi}\cmd{\dag}
+% \end{Block}
%
+% \item Western Names Reversed by Surname: \hfill Section \ref{sec:LastFirst}
% \begin{Block}
-% \textsc{Particles:} \hfill (Section~\ref{sec:NameParticles})\\
-% \LUse \cmd{\Soto}\dotfill \ForgetThis\Soto\\
-% \LUse \cmd{\Soto}\dotfill \Soto\\
-% \LUse \cmd{\CapThis}\cmd{\Soto}\dotfill \CapThis\Soto
+% \FUse \ForgetThis\RevComma\LWash\dotfill \cmd{\RevComma}\cmd{\LWash}\\
+% \LUse \RevComma\LWash\dotfill \cmd{\RevComma}\cmd{\LWash}
% \end{Block}
%
+% \item Particles: \hfill Section~\ref{sec:NameParticles}
+% \BothInfo{\ShowPattern[Hernando]{de~Soto}\break
+% \ShowPattern{Aristotle}\break
+% \ShowPattern{Æthelred, II}\break
+% \ShowPattern{John, Eriugena}}
+% {\ShowIdxPageref*[Hernando]{de~Soto}\break
+% \ShowIdxPageref*{Aristotle}\break
+% \ShowIdxPageref*{Æthelred, II}\break
+% \ShowIdxPageref*{John, Eriugena}}
% \begin{Block}
-% \textsc{Royal and Medieval:} \hfill
-% (Section~\ref{sec:NameMedieval})\\
-% \LUse \cmd{\Aeth}\dotfill \ForgetThis\Aeth\footnote
+% \FUse \ForgetThis\Soto\dotfill \cmd{\Soto}\\
+% \LUse \Soto\dotfill \cmd{\Soto}\\
+% \LUse \CapThis\Soto\dotfill \cmd{\CapThis}\cmd{\Soto}
+% \end{Block}
+%
+% \item Royal and Medieval Names: \hfill Section~\ref{sec:NameMedieval}
+% \begin{Block}
+% \FUse \ForgetThis\Aeth\footnote
% {Regarding the margin note that shows name control sequences,
% with \texttt{pdflatex} and \texttt{latex}, in
% \texttt{\ShowPattern{Æthelred, II}} the glyphs \texttt{ÃĘ}
-% correspond to \cmd{\IeC\{}\cmd{\AE\}}.}\\
-% \LUse \cmd{\Aeth}\dotfill \Aeth\\
-% \LUse |\LAeth[II, ``Unræd'']|\dotfill
-% \LAeth[II, ``Unræd'']\\[1ex]
-% \LUse \cmd{\Eriugena[Scotus Eriugena]}\dotfill
-% \ForgetThis\Eriugena[Scotus Eriugena]\\
-% \LUse \cmd{\LEriugena}\dotfill \LEriugena\\
-% \LUse \cmd{\Eriugena}\dotfill \Eriugena
+% correspond to \cmd{\IeC\{}\cmd{\AE\}}.}\dotfill \cmd{\Aeth}\\
+% \LUse \Aeth\dotfill \cmd{\Aeth}\\
+% \LUse \LAeth[II, ``Unræd'']\dotfill |\LAeth[II, ``Unræd'']|
% \end{Block}
%
% \begin{Block}
-% \textsc{Ancient Mononym} \hfill (trivial case)\\
-% \LUse \cmd{\Aris}\dotfill \ForgetThis\Aris\\
-% \LUse \cmd{\Aris}\dotfill \Aris
+% \FUse \ForgetThis\Eriugena[Scotus Eriugena]\dotfill^^A
+% \cmd{\Eriugena[Scotus Eriugena]}\\
+% \LUse \LEriugena\dotfill \cmd{\LEriugena}\\
+% \LUse \Eriugena\dotfill \cmd{\Eriugena}
% \end{Block}
%
+% \begin{Block}
+% \FUse \ForgetThis\Aris\dotfill \cmd{\Aris}\\
+% \LUse \Aris\dotfill \cmd{\Aris}
+% \end{Block}
+% \end{itemize}
+%
% \subsubsection[\protect\textit{Alternate} Field]
% {\protect\meta{Alternate} Name Field Tips}
% \label{sec:ArgIV}
%
-% \vspace{3ex}
-% \BothInfo{\ShowPattern[Clive Staples]{Lewis}\break
-% \ShowPattern{Miyazaki, Hayao}}
-% {\ShowIdxPageref*[Clive Staples]{Lewis}\break
-% \ShowIdxPageref*{Miyazaki, Hayao}}
-% \vspace{-3ex}
% Two shorthands above use \meta{arg4}, the final field in each row of the \texttt{nameauth} environment. These are \cmd{\CSL} and \cmd{\MSens}. They correspond to similar name shorthands \cmd{\Lewis} and \cmd{\Miyazaki}, which leave \meta{arg4} empty. Here is how they are related:
%
% \begin{itemize}
% \item They share identical name control patterns
-% (Section~\ref{sec:NamePatterns}).\\[1ex]
+% (Section~\ref{sec:NamePatterns}).
+% \BothInfo{\ShowPattern[Clive Staples]{Lewis}\break
+% \ShowPattern{Miyazaki, Hayao}}
+% {\ShowIdxPageref*[Clive Staples]{Lewis}\break
+% \ShowIdxPageref*{Miyazaki, Hayao}}
+% \begin{Block}
% \ForgetName{Miyazaki, Hayao}\ForgetName[Clive Staples]{Lewis}
-% First: \cmd{\MSens} \MSens; subsequent: \cmd{\Miyazaki} \Miyazaki.\\
-% First: \cmd{\CSL\ \ } \CSL;\hspace{2.2em}
-% subsequent: \cmd{\Lewis \ \ \ } \Lewis.
+% \FUse \MSens\dotfill \cmd{\MSens}\\
+% \LUse \Miyazaki\dotfill \cmd{\Miyazaki}\\
+% \FUse \CSL\dotfill \cmd{\CSL}\\
+% \LUse \Lewis\dotfill \cmd{\Lewis}
+% \end{Block}
+%
% \item Usually, one leaves \meta{arg4} empty and adds alternate names in
-% brackets as needed: \cmd{\LLewis[C.S.]} \LLewis[C.S.]
+% brackets as needed: \LLewis[C.S.] \cmd{\LLewis[C.S.]}
+%
% \item By using \meta{arg4}, one trades less work for more ambiguity: Can
% one add an alternate name or not? To answer that, one should keep track
% of all name shorthands that use \meta{arg4}.
-% \item Failure to keep track of such macros creates output like
-% \cmd{\LCSL[Jack]} \LCSL[Jack] and \cmd{\LMSens[Sensei]} \LMSens[Sensei].
+%
+% \item Failure to keep track of such macros creates output like \LCSL[Jack]
+% \cmd{\LCSL[Jack]} and \LMSens[Sensei] \cmd{\LMSens[Sensei]}.
% The reason why these macro versions produce undesired output is because
% \meta{arg4} permanently populates \meta{Alternate}.
-% \item Bear also in mind that \meta{arg4} can be used for the obsolete
+%
+% \item Remember that \meta{arg4} can be used for the obsolete
% syntax, as mentioned previously, but we do not cover that here.
% \end{itemize}
%
-% \begin{Quote}{\ForgetThis\Miyazaki\break
-% \hbox{}\hfill Proposal for \textit{Princess Mononoke}}
-% We depict hatred, but it is to depict that there are more important things. We depict a curse, to depict the joy of liberation.
+% \begin{Quote}{\Name[Harold]{Urey} (1961)}
+% The space program is not only scientific in purpose but also is an expression of man's insistent determination to do the nearly impossible\,---\,to explore the unknown, even at great risk.\negmedskip^^A
+% \index{scientists, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -2452,57 +2560,95 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsubsection[With Name Args]{Macros with Name Arguments}
% \label{sec:NameArgMacros}
%
-% All macros that take name arguments (Section~\ref{sec:NameArgs}) will update \cmd{\NameauthPattern} (used in Section~\ref{sec:DataTemp}) and can have final optional arguments (Section~\ref{sec:FinalOptargs}). Those with additional starred forms are shown followed by a \texttt{*}. Optional prefix macros are shown in the next subsection.
-%
-% \begin{center}\medstretch
+% All macros that take name arguments (Section~\ref{sec:NameArgs}) can have final optional arguments (Section~\ref{sec:FinalOptargs}) and update \cmd{\NameauthPattern} (Section~\ref{sec:DataTemp}). The \meta{xref args} are the same as \meta{name args} for a cross-reference to a \meta{target} (Section~\ref{sec:IndexRef}).
+% \begin{center}
% \begin{tabular}{lrcll}\toprule
-% Optional Prefix & Macro & & Arguments & \\
-% \rowcolor{nagrey}\llap{Naming\qquad}\meta{prefix macros} &
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill}}\qquad\qquad}^^A
+% Optional Prefix & Macro & Star & Arguments & \\
+%
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill Naming}}\qquad\qquad}^^A
+% \meta{prefix macros} &
% \cmd{\Name} & \texttt{*} & \meta{name args} & \\
-% \rowcolor{nagrey}\llap{\ul{\ \ \ \ \ \ \ \ \ \ \ \ }\qquad}^^A
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill}}\qquad\qquad}^^A
% \meta{prefix macros} &
% \cmd{\FName} & \texttt{*} & \meta{name args} & \\
-% \llap{Page ref\qquad}\cmd{\SeeAlso} & \cmd{\IndexName} & &
+%
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Page entry}}\qquad\qquad}^^A
+% \cmd{\SeeAlso} & \cmd{\IndexName} & &
% \meta{name args} & \\
-% \llap{\ul{Only cross-ref}\qquad}\cmd{\SeeAlso} & \cmd{\IndexRef} & &
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Only cross-ref}}\qquad\qquad}^^A
+% \cmd{\SeeAlso} & \cmd{\IndexRef} & &
% \meta{xref args} & \meta{target}\\
-% \rowcolor{nagrey}\llap{Prevent page ref\qquad} & \cmd{\ExcludeName} & &
+%
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill Stop page entry}}\qquad\qquad}^^A
+% & \cmd{\ExcludeName} & &
% \meta{name args} & \\
-% \rowcolor{nagrey}\llap{\ul{Enable page ref}\qquad} & \cmd{\IncludeName} &
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill Allow page entry}}\qquad\qquad}^^A
+% & \cmd{\IncludeName} &
% \texttt{*} & \meta{name args} & \\
-% \llap{Sort index\qquad} & \cmd{\PretagName} & & \meta{name args} &
+%
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Sort index}}\qquad\qquad}^^A
+% & \cmd{\PretagName} & & \meta{name args} &
% \meta{sort key} \\
-% \llap{Append idx tag\qquad} & \cmd{\TagName} & & \meta{name args} &
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Make index tag}}\qquad\qquad}^^A
+% & \cmd{\TagName} & & \meta{name args} &
% \meta{tag} \\
-% \llap{\ul{Delete idx tag}\qquad}& \cmd{\UntagName} & & \meta{name args} & \\
-% \rowcolor{nagrey}\llap{Make data tag\qquad} & \cmd{\NameAddInfo} & &
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Delete index tag}}\qquad\qquad}^^A
+% & \cmd{\UntagName} & & \meta{name args} & \\
+%
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill Make name tag}}\qquad\qquad}^^A
+% & \cmd{\NameAddInfo} & &
% \meta{name args} & \meta{tag} \\
-% \rowcolor{nagrey}\llap{Show data tag\qquad} & \cmd{\NameQueryInfo} & &
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill Show name tag}}\qquad\qquad}^^A
+% & \cmd{\NameQueryInfo} & &
% \meta{name args} & \\
-% \rowcolor{nagrey}\llap{\ul{Delete data tag}\qquad} & \cmd{\NameClearInfo} & &
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill Delete name tag}}\qquad\qquad}^^A
+% & \cmd{\NameClearInfo} & &
% \meta{name args} & \\
-% \llap{Delete name cs\qquad} & \cmd{\ForgetName} & & \meta{name args} & \\
-% \llap{\ul{Create name cs}\qquad} & \cmd{\SubvertName} & &
+%
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Delete name cs}}\qquad\qquad}^^A
+% & \cmd{\ForgetName} & & \meta{name args} & \\
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Create name cs}}\qquad\qquad}^^A
+% & \cmd{\SubvertName} & &
% \meta{name args} & \\
-% \rowcolor{nagrey}\llap{Name cs tests\qquad} & \cmd{\IfMainName} & &
+%
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill Name cs tests}}\qquad\qquad}^^A
+% & \cmd{\IfMainName} & &
% \meta{name args} & \marg{y}\marg{n}\\
-% \rowcolor{nagrey}& \cmd{\IfFrontName} & & \meta{name args} &
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill}}\qquad\qquad}^^A
+% & \cmd{\IfFrontName} & & \meta{name args} &
% \marg{y}\marg{n}\\
-% \rowcolor{nagrey}\llap{\ul{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\qquad} &
-% \cmd{\IfAKA} & & \meta{name args} & \marg{y}\marg{n}\marg{x}\\
-% \llap{Debugging\qquad} & \cmd{\ShowPattern} & & \meta{name args} & \\
-% & \cmd{\ShowIdxPageref} & \texttt{*} & \meta{name args} & \\
-% & \cmd{\ShowNameInfo} & & \meta{name args} & \\
-% & \cmd{\ShowNameState} & & \meta{name args} &\\\bottomrule
+% \llap{\colorbox{white}{\hbox to 2.65cm{\strut\hfill}}\qquad\qquad}^^A
+% & \cmd{\IfAKA} & & \meta{name args} & \marg{y}\marg{n}\marg{x}\\
+%
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill Debugging}}\qquad\qquad}^^A
+% & \cmd{\ShowPattern} & & \meta{name args} & \\
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill}}\qquad\qquad}^^A
+% & \cmd{\ShowIdxPageref} & \texttt{*} & \meta{name args} & \\
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill}}\qquad\qquad}^^A
+% & \cmd{\ShowNameInfo} & & \meta{name args} & \\
+% \rowcolor{nagrey}^^A
+% \llap{\colorbox{nagrey}{\hbox to 2.65cm{\strut\hfill}}\qquad\qquad}^^A
+% & \cmd{\ShowNameState} & & \meta{name args} &\\\bottomrule
% \end{tabular}
% \end{center}
%
-% The \meta{xref args} are the same as \meta{name args} for a cross-reference to a \meta{target} (Section~\ref{sec:IndexRef}). Not shown are \cmd{\AKA}, \cmd{\AKA*}, \cmd{\PName}, and \cmd{\PName*} (Section~\ref{sec:AKA}). Here we do not describe in detail what the arguments mean.
+% Optional prefix macros are shown in the next subsection. Not shown above are \cmd{\AKA}, \cmd{\AKA*}, \cmd{\PName}, and \cmd{\PName*} (Section~\ref{sec:AKA}).
%
-% \begin{Quote}{\ForgetThis\MLK[Dr. Martin Luther]\break
-% \hbox{}\hfill \textit{Stride Towards Freedom} (1958)}
-% \IndexName{Jesus, Christ}^^A
-% We believe firmly in the revelation of God in Jesus Christ. I can see no conflict between our devotion to Jesus Christ and our present action. In fact, I can see a necessary relationship. If one is truly devoted to the religion of Jesus he will seek to rid the earth of social evils. The gospel is social as well as personal.
+% \begin{Quote}{\Name[John F.]{Kennedy}, Inaugural Address (1961)}
+% The world is very different now. For man holds in his mortal hands the power to abolish all forms of human poverty and all forms of human life. And yet the same revolutionary beliefs for which our forebears fought are still at issue around the globe\,---\,the belief that the rights of man come not from the generosity of the state, but from the hand of God.^^A
+% \index{politicians, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -2511,94 +2657,108 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% Similar to the package options (Section~\ref{sec:PkgOptions}), many prefix macros alter the values of the Boolean flags that reflect the state of names and name processing. The naming and indexing macros reset the Boolean flags after they are invoked.
%
-% \begin{center}\small\medstretch
-% \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.\\
-% \rowcolor{nagrey} & \bfseries Reversing in the Text\\
-% \rowcolor{nagrey}\cmd{\RevName} &
-% Reverse order of any name in body text. Overrides \cmd{\RevComma}\\
-% \rowcolor{nagrey}\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{nagrey} & \bfseries Name Breaks in the Text\\
-% \rowcolor{nagrey}\cmd{\DropAffix} &
-% Drop affix only for a long Western name reference.\\
-% \rowcolor{nagrey}\cmd{\KeepAffix} &
-% Insert non-breaking space (NBSP) between \meta{SNN}, \meta{FNN/Affix}.\\
-% \rowcolor{nagrey}\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.\\
-% \rowcolor{nagrey} & \bfseries Forcing Name Forms via Boolean Flags\\
-% \rowcolor{nagrey}\cmd{\ForceName} & Force first-use formatting hooks.\\
-% \rowcolor{nagrey}\cmd{\ForceFN} &
-% Force printing of \meta{Affix}/\meta{Alternate} 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}
+% \begin{itemize}[rightmargin=0em]
+% \item Capitalization in the Text\negmedskip
+% \begin{itemize}[leftmargin=6.5em]\small
+% \item[\cmd{\CapName}] Capitalize entire \meta{SNN}. Overrides \cmd{\CapThis}.
+% \item[\cmd{\CapThis}] Capitalize first letter of all name components.
+% \item[\cmd{\AccentCapThis}] Fallback when Unicode detection cannot be done.
+% \end{itemize}
+%
+% \item Reversing in the Text\negmedskip
+% \begin{itemize}[leftmargin=6.5em]\small
+% \item[\cmd{\RevName}] Reverse order of any name. Overrides \cmd{\RevComma}
+% \item[\cmd{\RevComma}] Reverse only Western names to \meta{SNN}, \meta{FNN}.
+% \end{itemize}
+%
+% \item Commas in the Text\negmedskip
+% \begin{itemize}[leftmargin=6.5em]\small
+% \item[\cmd{\ShowComma}] Add comma between \meta{SNN} and \meta{Affix}.
+% \item[\cmd{\NoComma}] No comma between \meta{SNN} and \meta{Affix}. Overrides \cmd{\ShowComma}.
+% \end{itemize}
+%
+% \item Name Breaks in the Text\negmedskip
+% \begin{itemize}[leftmargin=6.5em]\small
+% \item[\cmd{\DropAffix}] Drop affix only for a long Western name instance.
+% \item[\cmd{\KeepAffix}] Insert non-breaking space (NBSP) between \meta{SNN}, \meta{FNN/Affix}.
+% \item[\cmd{\KeepName}] Insert NBSP between all name elements. Overrides \cmd{\KeepAffix}.
+% \end{itemize}
+%
+% \item Forcing Name Forms via Control Sequence\negmedskip
+% \begin{itemize}[leftmargin=6.5em]\small
+% \item[\cmd{\ForgetThis}] Force first name instance. Negates \cmd{\SubvertThis}.
+% \item[\cmd{\SubvertThis}] Force subsequent name instance.
+% \end{itemize}
+%
+% \item Forcing Name Forms via Boolean Flags\negmedskip
+% \begin{itemize}[leftmargin=6.5em]\small
+% \item[\cmd{\ForceName}] Force first-use formatting hooks.
+% \item[\cmd{\ForceFN}] Print \meta{Affix}/\meta{Alternate} in nonwestern short forms.
+% \end{itemize}
+%
+% \item Indexing\negmedskip
+% \begin{itemize}[leftmargin=6.5em]\small
+% \item[\cmd{\SeeAlso}] For \cmd{\IndexName}, \cmd{\AKA}, and \cmd{\PName}; make a \textit{see also} xref.
+% \item[\cmd{\SkipIndex}] For naming macros; do not create index entry (once).
+% \item[\cmd{\JustIndex}] For naming macros; index only (once); negated by \cmd{\AKA}, \cmd{\PName}.
+% \end{itemize}
+% \end{itemize}
%
% \noindent Some important notes include:
%
% \begin{itemize}
% \item Prefix macros stack:\\[0.4ex]
-% |\CapThis\RevName\SkipIndex\Name[bar]{foo}|\dotfill
-% \CapThis\RevName\SkipIndex\Name[bar]{foo}
+% \CapThis\RevName\SkipIndex\Name[bar]{foo}\dotfill^^A
+% |\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.
+% output of the naming macros is suppressed via \cmd{\JustIndex}.
+% \item Even after using \cmd{\JustIndex}, several name form modifiers are reset.
+% This prevents errors when handling the next name.
% \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} only with \cmd{\IndexRef}, \cmd{\AKA}, and
% \cmd{\PName}. Otherwise it will be ignored and reset by \cmd{\IndexName}
% and the naming macros.
-% \item Using \cmd{\JustIndex} will cause name form modifiers to be reset.
% \end{itemize}
%
-% \noindent Macros that do not take name arguments include:
+% \noindent Macros that do not take name arguments include prefix macros (Section~\ref{sec:PrefixMacs}), helper macros (Section~\ref{sec:Helpers}), most internal package macros, and formatting macros (Sections~\ref{sec:Formatting} and~\ref{sec:AdvancedFormat}).
%
-% \begin{itemize}
-% \item Prefix macros (Section~\ref{sec:PrefixMacs}).
-% \item Helper macros (Section~\ref{sec:Helpers}).
-% \item Most internal package macros.
-% \item Formatting macros.
-% \end{itemize}
+% \newpage
%
% \subsection{Names and Complexity}
% \label{sec:Complexity}
%
% The \textsf{nameauth} package allows levels of complexity when representing names. Already, we have seen this example above:
%
-% \begin{Block}\small
-% |\LEliz[I ``Gloriana'']|\dotfill \LEliz[I ``Gloriana'']
+% \begin{Block}
+% \LEliz[I ``Gloriana'']\dotfill |\LEliz[I ``Gloriana'']|
% \end{Block}
%
-% We can so the same thing with different macros, but they do not offer more features, only more complexity:
+% We can display the same thing with different macros. This next example does not offer more features; it only offers more complexity:
%
% \begin{Block}
-% |\LEliz\ ``\ForceFN\SEliz[Gloriana]''|\dotfill
-% \LEliz\ ``\ForceFN\SEliz[Gloriana]''
+% \LEliz\ ``\ForceFN\SEliz[Gloriana]''\dotfill^^A
+% |\LEliz\ ``\ForceFN\SEliz[Gloriana]''|
% \end{Block}
%
-% In Section~\ref{sec:NameAncient} we will learn how to add a one-time increase in complexity by using ``name info tags'' with modified formatting hooks to do the following that \emph{does} offer potentially more features:
+% The next example offers more features and better automation. Based on Section~\ref{sec:NameAncient} we use name tags and change the formatting hooks to match this manual's conventions. The key here is that \emph{we make a few key changes once,} which then govern many appearances of names:
%
% \begingroup
+% \begin{quote}
+% \begin{Verbatim}
+% \NameAddInfo{Elizabeth, I}{ ``Gloriana''}
+% \renewcommand*\NamesFormat[1]
+% {
+% \color{blue}\sffamily #1
+% \ifcsname\NameauthPattern!DB\endcsname
+% \expandafter\csname\NameauthPattern!DB\endcsname
+% \fi
+% }
+% \renewcommand*\MainNameHook{\sffamily}
+% \end{Verbatim}
+% \end{quote}
+%
% \NameAddInfo{Elizabeth, I}{ ``Gloriana''}
% \renewcommand*\NamesFormat[1]
% {^^A
@@ -2608,31 +2768,25 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \fi
% }
% \renewcommand*\MainNameHook{\sffamily}
-% \begin{Block}\small
-% \FUse |\ForgetThis\LEliz|\dotfill \ForgetThis\LEliz\\
-% \LUse |\LEliz|\dotfill \LEliz\\
-% \LUse |\Eliz|\dotfill \Eliz
+% \begin{Block}
+% \FUse \ForgetThis\LEliz\dotfill |\ForgetThis\LEliz|\\
+% \LUse \LEliz\dotfill |\LEliz|\\
+% \LUse \Eliz\dotfill |\Eliz|
% \end{Block}
% \endgroup
%
-% There can be needless complexity, and there can be helpful complexity. For example, if \LaTeX\ is used as the back end for an \texttt{xslt} transform, it can be useful to have well-defined macro states that map systematically to the input without needing human intervention.
-%
-% Section~\ref{sec:NameParticles} shows a similar trade-off between a simple example and a formatted example using the name of poet \Name[e.e.]{cummings}. Moving on to Section~\ref{sec:Romani}, complexity increases, yet the state of any given name remains well-defined.
+% Section~\ref{sec:NameParticles} shows a similar trade-off between simplicity and automation with an example using the name of poet \Name[e.e.]{cummings}. Moving on to Section~\ref{sec:Romani}, complexity increases, yet the state of any given name remains well-defined.
%
% \begin{InfoBox}[Avoid the Rabbit Hole]
% \begin{itemize}[leftmargin=1em]
-% \item There are trade-offs between ease of use and automation.
-% \item Examples that are easy to implement often are not easily automated.
-% \item Examples that are more complex lend themselves to automation using
-% package features as building blocks.
% \item In \textsf{nameauth}, names are nouns that have state and modifiers.
-% \item In \textsf{nameauth}, names are verbs capable of changing their
-% environment.
+% \item In \textsf{nameauth}, names are verbs capable of changing their environment.
+% \item There are trade-offs between ease of use and automation.
+% \item Simple examples often are not easy to automate.
+% \item Automation works best with a few key changes.
+% \item Most use-cases can be as simple as Section~\ref{sec:QuickExample}.
+% \item Use the simple approach unless a complex approach is needed.
% \end{itemize}
-%
-% The example in Section~\ref{sec:QuickExample} was quite simple, yet there are many use cases that need not be much more complex than that. Thus, one must discern useful complexity from useless complexity.\medskip
-%
-% Unless one has a use case that demands automation and complexity, hopefully illustrated by examples in this manual, one should tend toward simplicity and the macros seen in the earlier pages of this manual.
% \end{InfoBox}
%
% \ReturnLink
@@ -2641,7 +2795,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \section{Package Options}
% \label{sec:PkgOptions}
-% \negmedskip
+%
+% There are many options for use in \textsf{nameauth}, which can be divided into specific areas of functionality. These range from defaults that make conforming to certain standards easier to backward compatibility with old versions. The expected syntax follows:
%
% \begin{SyntaxBox}
% \cmd{\usepackage[}\meta{\(option_1\)}\texttt{,}\meta{\(option_2\)}^^A
@@ -2656,59 +2811,55 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection[Affix Commas]{Show/Hide Affix Commas}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{nocomma} &
% \bfseries Modern standards: Suppress commas between surnames and
% affixes.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{comma} &
% \leavevmode\color{nared}Older standards: Retain commas between surnames
% and affixes.\medskip\\
-% \end{tabular}\egroup
+% \end{tabular}
%
% \noindent These options do not affect the index. They permit different standards for name affixes. The default \texttt{nocomma} option gives, e.g., \Name[J.E.]{Carter, Jr.}[James Earl]. The \texttt{comma} option produces \ShowComma\Name*[J.E.]{Carter, Jr.}[James Earl]. Macros that allow finer control of commas and affixes are shown in Section~\ref{sec:Affix}.
%
% \subsubsection[Surname in Caps]{Capitalize Entire Surnames}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \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, throughout the document.\medskip\\
-% \end{tabular}\egroup
+% \leavevmode\color{nared}\textls[-5]{Capitalize entire surnames, e.g., Romanized
+% Eastern names, throughout the document.}\medskip\\
+% \end{tabular}
%
% \noindent These options do not affect the index. See Section~\ref{sec:Eastern} for finer control. To capitalize names in the index, use caps as desired or alternate formatting (Section~\ref{sec:AltFormat}).
%
% \subsubsection{Reverse Name Order}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{notreversed} &
% \bfseries Print names in the order specified by \cmd{\Name}
% and the other macros.\smallskip\\
% \leavevmode\color{nared}\quad\texttt{allreversed} &
% \leavevmode\color{nared}Print all name forms in ``smart'' reverse order;
-% Western as non-Western, and vice versa.\smallskip\\
+% Western as nonwestern, and vice versa.\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
+% \end{tabular}
%
% \noindent These options do not affect the index and are mutually exclusive (Sections~\ref{sec:RevNames} and~\ref{sec:LastFirst}). Use \texttt{allrevcomma} option only for listing Western names by surname.
%
-% \begin{Quote}{\Name[Mark]{Twain}, \textit{The Innocents Abroad} (1869)}
-% Virtue never has been as respectable as money.
-% \end{Quote}
-%
% \subsection{Indexing}
%
% \subsubsection{Toggle Indexing}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \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
+% \end{tabular}
%
%^^A Starting with the text below, any errors will force one to remove all
%^^A auxiliary files before compiling this file. There is no clear indication
@@ -2719,21 +2870,21 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection{Toggle Index Sorting}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \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
+% \end{tabular}
%
-% \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, as may be needed with, e.g., \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, as might be needed with, e.g., \texttt{xindy}. See Section~\ref{sec:IndexSort}.
%
% \subsubsection{Verbose Warnings}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \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
+% \end{tabular}
%
% \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. Section~\ref{sec:GeneralIndex} shows macros that can enable and disable verbose warnings.
%
@@ -2745,7 +2896,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection[Choose System]{Choose Formatting System}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \bfseries\quad\texttt{mainmatter} &
% \bfseries Start with ``main-matter names'' and formatting hooks \normalfont
% (Section~\ref{sec:PostProcess}).\smallskip\\
@@ -2758,7 +2909,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \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
+% \end{tabular}
%
% \noindent The \texttt{mainmatter} and \texttt{frontmatter} options enable two respectively independent systems of name use and formatting. Even when no extra formatting occurs, the formatting hooks are defined. Changes require \cmd{\renewcommand}. See Section~\ref{sec:Formatting}.
%
@@ -2769,7 +2920,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsubsection[Predefined Hooks]{Predefined Formatting Hooks}
% \label{sec:PostProcess}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
% \quad\bfseries\texttt{noformat} &
% \bfseries Pass the displayed name through the formatting hooks
% unchanged.\smallskip\\
@@ -2782,7 +2933,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \leavevmode\color{nared}\quad\texttt{boldface} &
% \leavevmode\color{nared}First use of a main-matter name in
% boldface.\medskip\\
-% \end{tabular}\egroup
+% \end{tabular}
%
% \noindent The options above are ``quick'' definitions of \cmd{\NamesFormat} based on English typography. The default is no formatting.\footnote{For the old default, use the \texttt{smallcaps} option. User feedback dictated this change.}
% See also Robert Bringhurst, \textit{The Elements of Typographic Style}, version 3.2 (Point Roberts, Washington: Hartley \& Marks, 2008), 53--60. All references [\hypertarget{Bringhurst}{Bringhurst}] refer to this edition.
@@ -2801,12 +2952,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsection{Alternate Formatting}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \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 alternate formatting by
% default.\medskip\\
-% \end{tabular}\egroup
+% \end{tabular}
%
% \noindent A built-in 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:AdvCustomize} goes into greater detail for customization.
%
@@ -2814,19 +2965,18 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsection[Scope of Decisions]{Change Scope of Name Decision Macros}
%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \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
+% \end{tabular}
%
% \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.
%
% \subsection{Version Compatibility}
+% \label{sec:OptionCompat}
%
-% \emph{Using these options will increase the chance of undocumented behavior.} They are included only for the sake of backward compatibility with older versions of \textsf{nameauth}. The goal is to preserve the behavior of this package at the point it was used in a document, especially if local fixes were employed.\medskip
-%
-% \bgroup\begin{tabular}{p{0.22\textwidth}p{0.6\textwidth}}
+% \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\\
@@ -2844,61 +2994,90 @@ and version 1.3 or later is part of all distributions of LaTeX version
% 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
+% are extant names, as before version 3.5.\smallskip\\
+% \leavevmode\color{nared}\quad\texttt{oldargs} &
+% \leavevmode\color{nared}Load the \textsf{xargs} and \textsf{suffix}
+% packages in order to permit user-supplied modifications to work as
+% in version 3.7 and before. The package macros will still use
+% \textsf{xparse} because of its advantages.\medskip\\
+% \end{tabular}
%
-% \noindent Previously, local scope for Boolean flags related to the prefix macros and long/short name forms could produce unexpected results. Those results, in turn, could mask problems caused by some flags not being reset by \cmd{\AKA}, \cmd{\AKA*}, and \cmd{\JustIndex}. The result was undocumented behavior.
+% Using these options may increase the chance of undocumented behavior.\footnote{Previously, the prefix macros and mechanisms for long and short names used Boolean flags locally. With continued use of this package, it became clear that such local scope could produce unexpected results. Those results, in turn, could mask problems caused by some flags not being reset by \cmd{\AKA}, \cmd{\AKA*}, and \cmd{\JustIndex}. The result was undocumented behavior.}
+% They are included for the sake of approximate backward compatibility with older documents, illustrated by the following table:
%
-% \begin{itemize}
-% \item Version 2.6 approximate compatibility\\
-% \texttt{oldAKA,oldpass,oldreset,oldtoks,oldsee}
-% \item Versions 3.0--3.2 compatibility\\
-% \texttt{oldpass,oldreset,oldtoks,oldsee}
-% \item Versions 3.3--3.4 compatibility\\
-% \texttt{oldreset,oldtoks,oldsee}
-% \end{itemize}
-% \negbigskip
+% \begin{center}
+% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Version & \bfseries Needed Options & \bfseries Possible Options \\
+%
+% 2.6 & \ttfamily oldreset,oldtoks,oldsee, & \ttfamily oldargs \\
+% & \ttfamily oldAKA,oldpass & \\
+%
+% \rowcolor{nagrey}^^A
+% 3.0--3.2 & \ttfamily oldreset,oldtoks,oldsee, & \ttfamily oldargs \\
+% \rowcolor{nagrey}^^A
+% & \ttfamily oldpass & \\
+%
+% 3.3--3.4 & \ttfamily oldreset,oldtoks,oldsee & \ttfamily oldargs \\
+%
+% \rowcolor{nagrey}^^A
+% 3.5--3.7 & \ttfamily & \ttfamily oldargs \\\bottomrule
+% \end{tabular}
+% \end{center}
%
% \ReturnLink
%
-% \begin{Quote}{\Name[John F.]{Kennedy}, Inaugural Address (1961)}
-% The world is very different now. For man holds in his mortal hands the power to abolish all forms of human poverty and all forms of human life. And yet the same revolutionary beliefs for which our forebears fought are still at issue around the globe\,---\,the belief that the rights of man come not from the generosity of the state, but from the hand of God.
+% \begin{Quote}{\ForgetThis\MLK[Dr. Martin Luther], \textit{Stride Towards Freedom} (1958)}
+% \IndexName{Jesus, Christ}^^A
+% We believe firmly in the revelation of God in Jesus Christ. I can see no conflict between our devotion to Jesus Christ and our present action. In fact, I can see a necessary relationship. If one is truly devoted to the religion of Jesus he will seek to rid the earth of social evils. The gospel is social as well as personal.^^A
+% \index{civil rights leaders, quotes of\noexpand\string|hyperpage}^^A
+% \index{theologians, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
+% \newpage
+%
% \section{Feature Priority}
% \label{sec:Priorities}
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{llll}\toprule
% \bfseries Indexing & \bfseries Capitalization &
-% \bfseries Reversing & \bfseries Name Forms, \\
+% \bfseries Reversing & \bfseries Name Forms,\\
% & & & \bfseries Commas, Breaks\\\midrule
+%
% \ttfamily\bfseries index & \ttfamily\bfseries normalcaps &
-% \ttfamily\bfseries notreversed & \cmd{\ForgetThis} \\
+% \ttfamily\bfseries notreversed & \cmd{\ForgetThis}\\
% \ttfamily\bfseries noindex & \ttfamily\bfseries allcaps &
-% \ttfamily\bfseries allreversed & \cmd{\DropAffix} \\
-% \cmd{\IndexActive} & \cmd{\AllCapsInactive} & \cmd{\ReverseActive} \\
-% \cmd{\IndexInactive} & \cmd{\AllCapsActive} & \cmd{\ReverseInactive} \\
+% \ttfamily\bfseries allreversed & \cmd{\DropAffix}\\
+% \cmd{\IndexActive} & \cmd{\AllCapsInactive} & \cmd{\ReverseActive}\\
+% \cmd{\IndexInactive} & \cmd{\AllCapsActive} & \cmd{\ReverseInactive}\\[1ex]
+%
% \rowcolor{black!6!white}
-% \cmd{\JustIndex} & \cmd{\CapName} & \cmd{\RevName} & \cmd{\SubvertThis}\\
-% \rowcolor{black!6!white} & & & \cmd{\ForceName}\\
-% \rowcolor{black!6!white} & & & \cmd{\NoComma}\\
+% \cmd{\JustIndex} & \cmd{\CapName} & \cmd{\RevName} & \cmd{\SubvertThis}\\
+% \rowcolor{black!6!white}
+% & & & \cmd{\ForceName}\\
+% \rowcolor{black!6!white}
+% & & & \cmd{\NoComma}\\[1ex]
+%
% \rowcolor{black!12!white}
-% \cmd{\SkipIndex} & \cmd{\AccentCapThis} &
+% \cmd{\SkipIndex} & \cmd{\AccentCapThis} &
% \ttfamily\bfseries allrevcomma & \cmd{\KeepName}\\
-% \rowcolor{black!12!white} & & \cmd{\RevCommaActive} & \cmd{\ForceFN}\\
-% \rowcolor{black!12!white} & & \cmd{\RevCommaInactive} & \cmd{\ShowComma}\\
+% \rowcolor{black!12!white}
+% & & \cmd{\RevCommaActive} & \cmd{\ForceFN}\\
+% \rowcolor{black!12!white}
+% & & \cmd{\RevCommaInactive} & \cmd{\ShowComma}\\[1ex]
+%
% \rowcolor{black!18!white}
-% \cmd{\SeeAlso} & \cmd{\CapThis} & \cmd{\RevComma} &
+% \cmd{\SeeAlso} & \cmd{\CapThis} & \cmd{\RevComma} &
% \cmd{\KeepAffix}\\\bottomrule
% \end{tabular}
% \end{center}
%
-% Above we see the relative priority of package options and macros. Package options are shown in boldface.
+% Above we see the relative priority of package options and their related macros. Package options are shown in boldface.
%
% \begin{itemize}
% \item Lighter-colored rows show higher priority. Darker-colored rows show
-% lower priority. Higher-priority options and macros can override
+% lower priority. Higher-priority options and macros have the ability to override
% lower-priority ones.
% \item All options and macros in a given row have equal priority and are
% able to countermand each other within a given column.
@@ -2906,10 +3085,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\IndexInactive} overrides \cmd{\JustIndex}, which overrides
% \cmd{\SkipIndex}. If \cmd{\IndexInactive} is invoked, \cmd{\JustIndex}
% will have no effect.
-% \item Section~\ref{sec:IdxPrefix} shows the interaction between
-% \cmd{\SkipIndex} and \cmd{\JustIndex} to be complex and non-intuitive.
-% It explains why it is best to use only \cmd{\SkipIndex} or
-% \cmd{\JustIndex} before a naming macro.
+% \item Section~\ref{sec:IdxPrefix} shows the complex interaction between
+% \cmd{\SkipIndex} and \cmd{\JustIndex}. It it is best to use \cmd{\SkipIndex}
+% and \cmd{\JustIndex} only before a naming macro that can print to the text.
% \item Priority usually does not affect macros and options in different
% columns. Yet the macros themselves can have specific effects that change
% the expected behavior of macros in other columns.
@@ -2951,7 +3129,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% 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}, not shown below).
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \begin{nameauth}
% \< Einstein & Albert & Einstein & >
@@ -2964,7 +3142,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{quote}
%
% \ForgetName[Albert]{Einstein}\ForgetName[J.E.]{Carter, Jr.}
-% \begin{center}\small
+% \begin{center}
% \vspace{3ex}
% \BothInfo{\ShowPattern[Albert]{Einstein}\break
% \ShowPattern[J.E.]{Carter, Jr.}\break
@@ -2976,32 +3154,42 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \ShowIdxPageref*{Confucius}\break
% \ShowIdxPageref*{Miyazaki, Hayao}\break
% \ShowIdxPageref*{Elizabeth, I}}
-% \vspace{-3ex}\medstretch
+% \vspace{-3ex}
% \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{nagrey}|\Name [J.E.]{Carter, Jr.}| or |\Carter| &
-% \Name [J.E.]{Carter, Jr.}\\
-% \rowcolor{nagrey}|\Name*[J.E.]{Carter, Jr.}[James Earl]| &
-% \LCarter[James Earl]\\
-% \rowcolor{nagrey} or |\LCarter[James Earl]|& \\
-% \rowcolor{nagrey}|\Name [J.E.]{Carter, Jr.}| or |\Carter| & \Carter\\
-% |\Name {Confucius}|, |\Confucius| & \Confucius\\
-% |\Name {Confucius}|, |\Confucius| & \Confucius\\
-% \rowcolor{nagrey}|\Name {Miyazaki, Hayao}| or |\Miyazaki| &
-% \ForgetThis\Name {Miyazaki, Hayao}\\
-% \rowcolor{nagrey}|\Name*{Miyazaki, Hayao}[Sensei]| &
-% \Name*{Miyazaki, Hayao}[Sensei]\\
-% \rowcolor{nagrey}|\Name {Miyazaki, Hayao}| or |\Miyazaki| &
-% \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
+% \rowcolor{nagrey}^^A
+% \Name [Albert]{Einstein} & |\Name [Albert]{Einstein}| or |\Einstein|\\
+% \rowcolor{nagrey}^^A
+% \LEinstein & |\Name*[Albert]{Einstein}| or |\LEinstein|\\
+% \rowcolor{nagrey}^^A
+% \Einstein & |\Name [Albert]{Einstein}| or |\Einstein|\\
+%
+% \Name [J.E.]{Carter, Jr.} & |\Name [J.E.]{Carter, Jr.}| or |\Carter|\\
+% \LCarter[James Earl] & |\Name*[J.E.]{Carter, Jr.}[James Earl]|\\
+% & or |\LCarter[James Earl]|\\
+% \Carter & |\Name [J.E.]{Carter, Jr.}| or |\Carter|\\
+%
+% \rowcolor{nagrey}^^A
+% \Confucius & |\Name {Confucius}| or |\Confucius|\\
+% \rowcolor{nagrey}^^A
+% \Confucius & |\Name {Confucius}| or |\Confucius|\\
+%
+% \ForgetThis\Name {Miyazaki, Hayao} &
+% |\Name {Miyazaki, Hayao}| or |\Miyazaki|\\
+% \Name*{Miyazaki, Hayao}[Sensei] & |\Name*{Miyazaki, Hayao}[Sensei]|\\
+% \Name {Miyazaki, Hayao} & |\Name {Miyazaki, Hayao}| or |\Miyazaki|\\
+%
+% \rowcolor{nagrey}^^A
+% \ForgetThis\Eliz & |\Name {Elizabeth, I}| or |\Eliz|\\
+% \rowcolor{nagrey}^^A
+% \Name*{Elizabeth, I} & |\Name*{Elizabeth, I}| or |\LEliz|\\
+% \rowcolor{nagrey}^^A
+% \Name {Elizabeth, I} & |\Name {Elizabeth, I}| or |\Eliz|\\\bottomrule
% \end{tabular}
% \end{center}
%
-% When using the quick interface, the preferred way to get alternate names is |``\LCarter[James Earl]''| ``\LCarter[James Earl]'' and |``\LMiyazaki[Sensei]''| ``\LMiyazaki[Sensei]''. The alternate forename is not shown in subsequent short name references e.g., |``\Carter[James Earl]''| is just ``\Carter[James Earl]''. Thus, one must use either long-name references or forename references to see the alternate names.
+% With the quick interface, the best way to get alternate names follows patterns like ``\LCarter[James Earl]'' |\LCarter[James Earl]| and ``\LMiyazaki[Sensei]'' |\LMiyazaki[Sensei]|. The alternate forename is not shown in subsequent short name instances e.g., ``\Carter[James Earl]'' |\Carter[James Earl]|. Thus, one must use either long-name instances or forename instances to see the alternate names.
+%
+% \newpage
%
% \subsection{Forenames: \texttt{\textbackslash FName}}
% \label{sec:FName}
@@ -3018,35 +3206,44 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\FName*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% These forename reference macros will permit all name types, but the normal behavior prints forenames only with Western names. With non-Western names only \meta{SNN} is printed. This is designed to prevent Western writers from causing undue offense in Eastern contexts. It also prevents the display of nonsense names in the context of royal names.\medskip
+% These forename instance macros will permit all name types, but the normal behavior prints forenames only with Western names. With nonwestern names only \meta{SNN} is printed. This is designed to prevent Western writers from causing unintended offense in Eastern contexts. It also prevents the display of nonsense names in the context of ancient and royal names.
%
% \DescribeMacro{\ForceFN}
% To get an Eastern personal name or any affixed components of an ancient name, or to get \meta{Alternate} to display in their place, one must precede these macros with \cmd{\ForceFN}. See also Section~\ref{sec:NameMedieval} for more uses of \cmd{\ForceFN}.
%
-% \begin{center}\small
+% \begin{center}
% \vspace{3ex}
% \PatInfo{\ShowPattern[Albert]{Einstein}\break
% \ShowPattern[J.E.]{Carter, Jr.}\break
% \ShowPattern{Confucius}\break
% \ShowPattern{Miyazaki, Hayao}\break
% \ShowPattern{Elizabeth, I}}
-% \vspace{-3ex}\medstretch
+% \vspace{-3ex}
% \begin{tabular}{ll}\toprule
-% |\FName[Albert]{Einstein}| or |\SEinstein| & \SEinstein\\
-% \rowcolor{nagrey}|\FName[J.E.]{Carter, Jr.}[James Earl]| &
-% \SCarter[James Earl]\\
-% \rowcolor{nagrey}or |\SCarter[James Earl]| & \\
-% |\FName{Confucius}| or |\SConfucius |& \FName{Confucius}\\
-% \rowcolor{nagrey}|\FName{Miyazaki, Hayao}| or |\SMiyazaki| &
-% \FName{Miyazaki, Hayao}\\
-% |\ForceFN\FName{Miyazaki, Hayao}| & \ForceFN\FName{Miyazaki, Hayao}\\
-% or |\ForceFN\SMiyazaki| & \\
-% \rowcolor{nagrey}|\ForceFN\FName{Miyazaki, Hayao}[Sensei]| &
-% \ForceFN\FName{Miyazaki, Hayao}[Sensei]\\
-% \rowcolor{nagrey}or |\ForceFN\SMiyazaki[Sensei]| & \\
-% |\FName{Elizabeth, I}| or |\SEliz| & \SEliz\\
-% \rowcolor{nagrey}|\ForceFN\SEliz[Good Queen Bess]| &
-% \ForceFN\SEliz[Good Queen Bess]\\\bottomrule
+% \rowcolor{nagrey}^^A
+% \SEinstein & |\FName[Albert]{Einstein}| or |\SEinstein|\\
+%
+% \SCarter[Jimmy] & |\FName[J.E.]{Carter, Jr.}[Jimmy]|\\
+% & or |\SCarter[Jimmy]|\\
+%
+% \rowcolor{nagrey}^^A
+% \FName{Confucius} & |\FName{Confucius}| or |\SConfucius |\\
+%
+% \FName{Miyazaki, Hayao} & |\FName{Miyazaki, Hayao}| or |\SMiyazaki|\\
+%
+% \rowcolor{nagrey}^^A
+% \ForceFN\FName{Miyazaki, Hayao} & |\ForceFN\FName{Miyazaki, Hayao}|\\
+% \rowcolor{nagrey}^^A
+% & or |\ForceFN\SMiyazaki|\\
+%
+% \ForceFN\FName{Miyazaki, Hayao}[Sensei] &
+% |\ForceFN\FName{Miyazaki, Hayao}[Sensei]|\\
+% & or |\ForceFN\SMiyazaki[Sensei]|\\
+%
+% \rowcolor{nagrey}^^A
+% \SEliz & |\FName{Elizabeth, I}| or |\SEliz|\\
+% \ForceFN\SEliz[Good Queen Bess] &
+% |\ForceFN\SEliz[Good Queen Bess]|\\\bottomrule
% \end{tabular}
% \end{center}
%
@@ -3054,82 +3251,235 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{Quote}{\Name[Dwight D.]{Eisenhower}\break
% \hbox{}\hfill Associated Press luncheon (24 April 1950)}
-% Censorship, in my opinion, is a stupid and shallow way of approaching the solution to any problem. Though sometimes necessary, as witness a professional and technical secret that may have a bearing upon the welfare and very safety of this country, we should be very careful in the way we apply it, because in censorship always lurks the very great danger of working to the disadvantage of the American nation.
+% Censorship, in my opinion, is a stupid and shallow way of approaching the solution to any problem. Though sometimes necessary, as witness a professional and technical secret that may have a bearing upon the welfare and very safety of this country, we should be very careful in the way we apply it, because in censorship always lurks the very great danger of working to the disadvantage of the American nation.\negmedskip^^A
+% \index{politicians, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \subsection{Technical Details}
% \label{sec:TechDetails}
%
-% \subsubsection{Spaces in Arguments}
+% \subsubsection[Final Optargs]{Final Optional Arguments}
+% \label{sec:FinalOptargs}
%
-% To get consistent index entries (where spaces are significant), all \textsf{nameauth} macros that take name arguments trim extra spaces around each name argument. We shade those areas below, after which we provide an example with suppressed formatting:\medskip
+% Macros that take name arguments (see also Section~\ref{sec:NameArgMacros}) sometimes use a final optional argument. Using these arguments with the current syntax gives:
%
-% \begin{tcolorbox}[colframe=naslate,
-% valign=center,top=0mm,bottom=0mm]\centering
-% \begin{tabular}{c@{\qquad}c@{\qquad}c@{\qquad}c@{\qquad}c}
-% \tcbox[equal height group=F,colback=white,tikznode,
-% left=1mm,right=1mm,valign=center]
-% {\bfseries\meta{\color{nared}FNN}} &
-% \tcbox[equal height group=F,colback=white,tikznode,
-% left=1mm,right=1mm,valign=center]
-% {\bfseries\meta{SNN}} &
-% \tcbox[equal height group=F,colback=white,tikznode,
-% left=1mm,right=1mm,valign=center]
-% {\bfseries\ttfamily\strut\color{nared},} &
-% \tcbox[equal height group=F,colback=white,tikznode,
-% left=1mm,right=1mm,valign=center]
-% {\bfseries\meta{\color{nared}Affix}} &
-% \tcbox[equal height group=F,colback=white,tikznode,
-% left=1mm,right=1mm,valign=center]
-% {\bfseries\meta{\color{nared}Alternate}}
-% \end{tabular}
-% \end{tcolorbox}\smallskip
+% \begin{center}\IndexInactive\footnotesize
+% \renewcommand\NamesFormat{}
+% \renewcommand\MainNameHook{}
+% \begin{tabular}{l@{\ }l@{\ }l}\toprule
+% \rowcolor{nagrey}\bfseries Printed Name &
+% \bfseries Macro and Arguments & \bfseries Western Index Entry\\
+% \ForgetThis\Name[Person]{Family, Affix}[Alias] & |\Name[Person]{Family, Affix}[Alias]| &
+% \ShowIdxPageref*[Person]{Family, Affix}\\
+% \ForgetThis\Name[Person]{Family}[Alias] & |\Name[Person]{Family}[Alias]| &
+% \ShowIdxPageref*[Person]{Family}\\
+% \RevName\Name*[Person]{Family}[Alias] & |\RevName%| &
+% \ShowIdxPageref*[Person]{Family}\\
+% & |\Name[Person]{Family}[Alias]|\\\midrule
+% \rowcolor{nagrey}\bfseries Printed Name &
+% \bfseries Macro and Arguments & \bfseries Nonwestern Index Entry\\
+% \ForgetThis\Name{Family, Person}[Alias] & |\Name{Family, Person}[Alias]| &
+% \ShowIdxPageref*{Family, Person}\\
+% \RevName\Name*{Family, Person}[Alias] & |\RevName%| &
+% \ShowIdxPageref*{Family, Person}\\
+% & |\Name{Family, Person}[Alias]|\\
+% \ForgetThis\Name{Person, Affix}[Alias] & |\Name{Person, Affix}[Alias]| &
+% \ShowIdxPageref*{Person, Affix}\\\bottomrule
+% \end{tabular}\IndexActive
+% \end{center}
+%
+% Since May 2018, \textsf{xparse} offers two approaches that have their own pros and cons. Below \cmd{\Namei} works the same as \textsf{nameauth}. \cmd{\Nameii} takes the alternate route. If one builds this package with a \LaTeX\ distro from before 2018, \cmd{\Nameii} will not appear, and \cmd{\Namei} will work like \cmd{\Nameii} in newer versions. It was for the sake of stability and consistency that \textsf{nameauth} used \textsf{xargs} and \textsf{suffix} in its early days. Now that all the issues with \textsf{xparse} have been addressed, the latter is the best choice going forward.
+%
+% \begin{quote}
+% \begin{Verbatim}
+% \NewDocumentCommand {\Namei}{O{} m O{}}
+% {\def\Opt{#3}\ifx\Opt\empty #1\ #2\else \Opt\ #2\fi}
+% % Cannot use this definition before May 2018.
+% \NewDocumentCommand{\Nameii}{O{} m !O{}}
+% {\def\Opt{#3}\ifx\Opt\empty #1\ #2\else \Opt\ #2\fi}
+%
+% |\Namei: | \Namei[Person1]{Family1} [something1]\\[1ex]
+% |\Nameii:| \Nameii[Person2]{Family2} [something2]
+% \end{Verbatim}
+%
+% \ifdefined\nameauthxp%^^A
+% \NewDocumentCommand {\Namei}{O{} m O{}}
+% {\def\Opt{#3}\ifx\Opt\empty #1\ #2\else \Opt\ #2\fi}
+% \NewDocumentCommand{\Nameii}{O{} m !O{}}
+% {\def\Opt{#3}\ifx\Opt\empty #1\ #2\else \Opt\ #2\fi}
+% |\Namei: | \Namei[Person1]{Family1} [something1]\\[1ex]
+% |\Nameii:| \Nameii[Person2]{Family2} [something2]%^^A
+% \else
+% \NewDocumentCommand {\Namei}{O{} m O{}}
+% {\def\Opt{#3}\ifx\Opt\empty #1\ #2\else \Opt\ #2\fi}
+% |\Namei: | \Namei[Person1]{Family1} [something1]\\[1ex]
+% |\Nameii:| (\LaTeX\ too old)%^^A
+% \fi
+% \end{quote}
+%
+% \begin{itemize}
+% \item \cmd{\Namei} ignores spaces between the mandatory argument and the final optional argument.
+% \begin{itemize}
+% \item Subsequent text in brackets will be interpreted as a name argument, even if unintended.
+% \item Yet we avoid errors from unintended spaces when using alternate names and the obsolete syntax.
+% \end{itemize}
+%
+% \item \cmd{\Nameii} treats spaces between the mandatory argument and the final optional argument as significant.
+% \begin{itemize}
+% \item Subsequent text in brackets will be seen as a name argument only if no spaces occur between the mandatory argument and final optional argument.
+% \item Yet when using alternate names and the obsolete syntax, with unintended spaces we could ``lose'' names from the arguments and see unwanted results in the text.
+% \end{itemize}
+% \end{itemize}
+%
+% In the next example we show the default approach of \textsf{nameauth} in practice using the basic name interface. \cmd{\ForgetName} (Section~\ref{sec:NameControl}) lets us simulate first instances of names, even if they have appeared already.
+%
+% \begin{quote}
+% \ForgetName[Albert]{Einstein} \ForgetName{Miyazaki, Hayao}
+% \renewcommand\NamesFormat{}
+% \renewcommand\MainNameHook{}
+%
+% \begin{itemize}
+% \item[We want:] ``Albert Einstein [then] said'';
+% ``Miyazaki Hayao [apparently] said''.
+% \item[Also:] ``Einstein [then] said'';
+% ``Miyazaki [apparently] said''.
+% \item[Macros:] |``\Name[Albert]{Einstein} [then] said'';|\\
+% |``\Name{Miyazaki, Hayao} [apparently] said''.|
+% \item[We get:] ``\Name[Albert]{Einstein} [then] said'';
+% ``\Name{Miyazaki, Hayao} [apparently] said''.
+% \item[Repeat:] ``\Name[Albert]{Einstein} [then] said'';
+% ``\Name{Miyazaki, Hayao} [apparently] said''.
+% \end{itemize}
+%
+% \ForgetName[Albert]{Einstein} \ForgetName{Miyazaki, Hayao}
+% \begin{itemize}
+% \item Add explicit spaces:\\
+% ``\Name[Albert]{Einstein}\ [then] said'';
+% ``\Name {Miyazaki, Hayao}\ [apparently] said''.\\
+% |``\Name[Albert]{Einstein}\ [then] said'';|\\
+% |``\Name {Miyazaki, Hayao}\ [apparently] said''.|
+% \item Add curly braces:\\
+% ``\Name[Albert]{Einstein}{} [then] said'';
+% ``\Name{Miyazaki, Hayao}{} [apparently] said''.\\
+% |``\Name[Albert]{Einstein}{} [then] said'' and|\\
+% |``\Name{Miyazaki, Hayao}{} [apparently] said''.|
+% \end{itemize}
+% \end{quote}
+%
+% Now we show how the \textsf{nameauth} default argument handling works with the quick naming interface:
+%
+% \begin{quote}
+% \begin{Verbatim}
+% \begin{nameauth}
+% \< Einstein & Albert & Einstein & >
+% \< Miyazaki & & Miyazaki, Hayao & >
+% \end{nameauth}
+% \end{Verbatim}
+% \end{quote}
+%
+% \begin{quote}
+% \renewcommand\NamesFormat{}
+% \renewcommand\MainNameHook{}
+%
+% \ForgetName[Albert]{Einstein} \ForgetName{Miyazaki, Hayao}
+% \begin{itemize}
+% \item[We want:] ``Albert Einstein [then] said'';
+% ``Miyazaki Hayao [apparently] said''.
+% \item[Also:] ``Einstein [then] said'';
+% ``Miyazaki [apparently] said''.
+% \item[Macros:] |``\Einstein [then] said'';|\\
+% |``\Miyazaki [apparently] said''.|
+% \item[We get:] ``\Einstein [then] said'';
+% ``\Miyazaki [apparently] said''.
+% \item[Repeat:] ``\Einstein [then] said'';
+% ``\Miyazaki [apparently] said''.
+% \end{itemize}
+%
+% \ForgetName[Albert]{Einstein} \ForgetName{Miyazaki, Hayao}
+% \begin{itemize}
+% \item Add explicit spaces:\\
+% ``\Einstein\ [then] said'';
+% ``\Miyazaki\ [apparently] said''.\\
+% |``\Einstein\ [then] said'' and|\\
+% |``\Miyazaki\ [apparently] said''.|
+% \item Add curly braces:\\
+% ``\Einstein{} [then] said'';
+% ``\Miyazaki{} [apparently] said''.\\
+% |``\Einstein{} [then] said'' and|\\
+% |``\Miyazaki{} [apparently] said''.|
+% \end{itemize}
+% \end{quote}
+%
+% Section~\ref{sec:ChangeParse} shows how one can customize and change argument handling, addressing some of the same issues and caveats illustrated above.
+%
+% \begin{Quote}{\ForgetThis\Miyazaki\break
+% \hbox{}\hfill Proposal for \textit{Princess Mononoke}}
+% We depict hatred, but it is to depict that there are more important things. We depict a curse, to depict the joy of liberation.\negmedskip^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
+%
+% \newpage
+%
+% \subsubsection[Name Arg Caveats]{Name Argument Caveats}
+%
+% To get consistent index entries, all \textsf{nameauth} macros that take name arguments trim extra spaces around each name argument, shown in gray below:
+% \begin{quote}
+% \def\gbox{\colorbox{nagrey}{\strut\quad\strut}}
+% \cmd{\Name}\texttt{[}\gbox\meta{\color{nared}FNN}\gbox\texttt{]}^^A
+% \texttt{\{}\gbox\meta{SNN}\gbox\texttt{\color{nared},}\gbox^^A
+% \meta{\color{nared}Affix}\gbox\texttt{\}}^^A
+% \texttt{[}\gbox\meta{\color{nared}Alternate}\gbox\texttt{]}
+% \end{quote}
+% We show this in practice while suppressing name formatting:
%
% \begin{VerbatimOut}{\jobname.tmp}
-% No spaces:
+% No spaces:\\
% \fbox{\strut\Name*[Martin Luther]{King,Jr.}}
% \fbox{\strut\Name [Martin Luther]{King,Jr.}}
% \fbox{\strut\FName[Martin Luther]{King,Jr.}}
%
-% Spaces:\hspace{1.4em}
+% Spaces:\\
% \fbox{\strut\Name*[ Martin Luther ]{ King , Jr. }}
% \fbox{\strut\Name [ Martin Luther ]{ King , Jr. }}
% \fbox{\strut\FName[ Martin Luther ]{ King , Jr. }}
% \end{VerbatimOut}
%
-% \begin{quote}\small
-% \vspace{3.5ex}
-% \BothInfo{\ShowPattern[Martin Luther]{King, Jr.}\break
-% \ShowPattern[ Martin Luther ]{ King , Jr. }}
-% {\ShowIdxPageref*[Martin Luther]{King, Jr.}\break
-% \ShowIdxPageref*[ Martin Luther ]{ King , Jr. }}
-% \vspace{-3.5ex}
-%
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
% \renewcommand*\NamesFormat{}
% \renewcommand*\MainNameHook{}
%
+% \vspace{3ex}
+% \BothInfo{\ShowPattern[Martin Luther]{King, Jr.}\break
+% \ShowPattern[ Martin Luther ]{ King , Jr. }}
+% {\ShowIdxPageref*[Martin Luther]{King, Jr.}\break
+% \ShowIdxPageref*[ Martin Luther ]{ King , Jr. }}
+% \vspace{-3ex}
% \input{\jobname.tmp}
% \end{quote}
%
-% Now we resume this manual's formatting to help show that the names below are different, even though they appear similar.
+% We resume name formatting to show names that look the same, but are different. Non-breaking spaces, explicit spaces, thin spaces, and macros that expand to spaces \emph{are not trimmed}. They produce different name patterns, shown below:
+%
+% \begin{center}\IndexInactive
+% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Output & \bfseries Macro & \bfseries Name Pattern\\
%
-% Non-breaking spaces, explicit spaces, thin spaces, and macros that expand to spaces \emph{are not trimmed} by either \LaTeX\ or \textsf{nameauth}. They produce different name patterns and, if used in macro arguments, must be used consistently (Section~\ref{sec:NameParticles}). Below we suppress indexing and show three different names:
+% \Name{foo~bar} & |\Name{foo~bar}| & \ttfamily\ShowPattern{foo~bar} \\
%
-% \begin{center}\IndexInactive\small\medstretch
-% \begin{tabular}{lcl}\toprule
-% Macro\,/\,Char: & Appearance: & Name Pattern:\\
-% \rowcolor{nagrey}|\Name{foo~bar}| & \Name{foo~bar} &
-% \ttfamily\ShowPattern{foo~bar} \\
-% |\Name{foo\ bar}| & \Name{foo\ bar} & \ttfamily\ShowPattern{foo\ bar} \\
-% \rowcolor{nagrey}|\Name{foo\space bar}| &
-% \Name{foo\space bar} & \ttfamily\ShowPattern{foo\space bar} \\\bottomrule
+% \rowcolor{nagrey}^^A
+% \Name{foo\ bar} & |\Name{foo\ bar}| & \ttfamily\ShowPattern{foo\ bar} \\
+%
+% \Name{foo\space bar} & |\Name{foo\space bar}| &
+% \ttfamily\ShowPattern{foo\space bar} \\\bottomrule
% \end{tabular}\IndexActive
% \end{center}
%
+% Name patterns, not name appearance, determine if names are the same (Section~\ref{sec:NamePatterns}). There may be cases where one might leverage that point.
+%
% \subsubsection{Full Stop Detection}
%
-% Western names tend to use full stops in these cases:
+% Western names tend to use full stops in various cases, including the following:
%
% \begin{itemize}
% \item After the initial letter abbreviation of forenames.
@@ -3140,90 +3490,152 @@ and version 1.3 or later is part of all distributions of LaTeX version
% (\textit{Philosophiae Doctor}), etc.
% \end{itemize}
%
-% The naming macros and some others (Section~\ref{sec:AKA}) check if the printed name ends with a full stop. They also check the lookahead token for a full stop and gobble the lookahead. In the following example we ``forget'' the existence of a name pattern via \cmd{\ForgetName} below (Section~\ref{sec:NameControl}) to simulate not having seen it before:
+% If name contains a full stop at the end, followed by a full stop in the text. the \textsf{nameauth} macros try to prevent two adjacent full stops. All macros that take name arguments and print names in the text check if the printed name ends with a full stop. They also check the lookahead token for a full stop. If both cases are true, they gobble the lookahead token.
%
-% \begin{VerbatimOut}{\jobname.tmp}
-% Full stop on lookahead gobbled\dotfill
-% \Name[Martin Luther]{King, Jr.}[Rev. Dr. Martin Luther].
+% \newpage
%
-% Full stop remains (affix auto-drops)\dotfill
-% Rev. Dr. \Name[Martin Luther]{King, Jr.}.
+% We show this behavior in the example below. \cmd{\ForgetName} (Section~\ref{sec:NameControl}) lets us simulate the first instances of names. The table tells us whether or not the full stop on the lookahead token is gobbled, why that is the case, as well as the output of the name in the text and its correlating source.
%
-% Full stop gobbled (force long name form)\dotfill
-% \Name*[Martin Luther]{King, Jr.}.
+% \begin{quote}
+% \begin{Verbatim}
+% \begin{nameauth}
+% \< MLK & Martin Luther & King, Jr. & >
+% \end{nameauth}
+% \end{Verbatim}
+% \end{quote}
%
-% Full stop remains (force affix to drop)\dotfill
-% \DropAffix\Name*[Martin Luther]{King, Jr.}.
+% \ForgetName[Martin Luther]{King, Jr.}
%
-% Full stop gobbled (alternate using initials)\dotfill
-% \FName[Martin Luther]{King, Jr.}[M.L.].
-% \end{VerbatimOut}
+% \begin{center}
+% \begin{tabular}{ll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Gobbled & \bfseries Long Name Form, First Use\\
+% Dr. \Name[Martin Luther]{King, Jr.}. &
+% |Dr. \Name[Martin Luther]{King, Jr.}.| \\
%
-% \begin{quote}\small
-% \VerbatimInput[gobble=0]{\jobname.tmp}
-% \ForgetName[Martin Luther]{King, Jr.}
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Gobbled & \bfseries Force Long Name Form \\
+% Dr. \Name*[Martin Luther]{King, Jr.}. &
+% |Dr. \Name*[Martin Luther]{King, Jr.}.| \\
+% Dr. \LMLK. &
+% |Dr. \LMLK.| \\
%
-% \input{\jobname.tmp}
-% \end{quote}
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Gobbled & \bfseries Alternate FNN with Initials \\
+% \FName[Martin Luther]{King, Jr.}[M.L.]. &
+% |\FName[Martin Luther]{King, Jr.}[M.L.].| \\
+% \SMLK[M.L.]. &
+% |\SMLK[M.L.].| \\
+%
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Remains & \bfseries Affix Auto-Drops \\
+% Dr. \Name[Martin Luther]{King, Jr.}. &
+% |Dr. \Name[Martin Luther]{King, Jr.}.| \\
+%
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Remains & \bfseries Force Affix to Drop \\
+% \DropAffix\Name*[Martin Luther]{King, Jr.}. &
+% |\DropAffix\Name*[Martin Luther]{King, Jr.}.| \\
+% \DropAffix \LMLK. &
+% |\DropAffix \LMLK.| \\\bottomrule
+% \end{tabular}
+% \end{center}
%
-% \subsubsection{Braces and Spaces}
+% \subsubsection[Grouping, Spaces]{Grouping and Spaces}
+% \label{sec:GroupSpace}
%
% We disable indexing for the examples below so that we do not generate unwanted entries. Take care when using curly braces \texttt{\bfseries\{\,\}} in naming macro arguments. They will produce different names, as the formatting shows:
%
% \IndexInactive
-% \begin{center}\small\medstretch
-% \begin{tabular}{llll}\toprule
-% & Macro: & Result: & Name Pattern:\\
-% \rowcolor{nagrey} 1 & |\Name[one]{two}| & \Name[one]{two} &
-% \ttfamily\ShowPattern[one]{two} \\
+% \begin{center}
+% \begin{tabular}{lllll}\toprule
+% \rowcolor{nagrey}^^A
+% & \bfseries Macro & \bfseries Result & \bfseries Name Pattern & \bfseries Type\\
+%
+% 1 & |\Name[one]{two}| & \Name[one]{two} &
+% \ttfamily\ShowPattern[one]{two} & Western\\
+%
+% \rowcolor{nagrey}^^A
% 2 & |\Name[{one}]{{t}w{o}}| & \Name[{one}]{{t}w{o}} &
-% \ttfamily\ShowPattern[{one}]{{t}w{o}} \\
-% \rowcolor{nagrey} 3 & |\Name{one, two}| & \Name{one, two} &
-% \ttfamily\ShowPattern{one, two} \\
-% 4 & |\Name{{one}, two}| & \Name{{one}, two} &
-% \ttfamily\ShowPattern{{one}, two} \\
-% \rowcolor{nagrey} 5 & |\Name{{one, two}}| & \Name{{one, two}} &
-% \ttfamily\ShowPattern{{one, two}} \\\bottomrule
+% \ttfamily\ShowPattern[{one}]{{t}w{o}} & Western\\
+%
+% 3 & |\Name{{one}, two}| & \Name{{one}, two} &
+% \ttfamily\ShowPattern{{one}, two} & nonwestern\\
+%
+% \rowcolor{nagrey}^^A
+% 4 & |\Name{{one}, {two}}| & \Name{{one}, {two}} &
+% \ttfamily\ShowPattern{{one}, {two}} & nonwestern\\
+%
+% 5 & |\Name{{one, two}}| & \Name{{one, two}} &
+% \ttfamily\ShowPattern{{one, two}} & abnormal\\\bottomrule
% \end{tabular}
% \end{center}
%
-% Names one and two are Western; names three and four are non-Western. All names have different patterns and different index entries, even if they look similar in the text (Sections~\ref{sec:NamePatterns}, \ref{sec:IndexSort}). Name~5 is very tricky. The parts of |\Name{{one, two}}| are: \ShowNameInfo{{one, two}}. Compare that with the parts of |\Name{one, two}|: \ShowNameInfo{one, two}. This can affect alternate formatting (Section~\ref{sec:AltFormat}).
+% These names have different patterns and different index entries, even if they look similar in the text (Sections~\ref{sec:NamePatterns}, \ref{sec:IndexSort}). Similar issues pertain to grouping used with alternate formatting (Section~\ref{sec:AltFormat}). Consistency is key.
+%
+% The grouping used in name~5 creates an abnormality . Here we illustrate that with the output of \cmd{\ShowNameInfo} (Section~\ref{sec:DebuggingMacros}). Normally, the comma should delimit or segment the argument into two names:
+%
+% \begin{quote}
+% |\Name{one, two} | \ShowNameInfo{one, two}\\
+% |\Name{{one, two}}| \ShowNameInfo{{one, two}}
+% \end{quote}
% \IndexActive
%
-% Curly braces can change the lookahead token and defeat punctuation detection (as well as create a unique name). Using spaces between a name and a full stop can have a similar effect:
+% Curly braces can change the lookahead token and defeat punctuation detection (as well as create a new, unique name). Using spaces between a name and a full stop can have a similar effect. The next table shows us several actions that allow or inhibit full stop detection. We se ethe results of each action, the action taken, and both output and source related to that action.
%
-% \begin{VerbatimOut}{\jobname.tmp}
-% Full stop remains (not in group)\dotfill
-% Dr. {\Name*[Martin Luther]{King, Jr.}}.
-%
-% Full stop is gobbled (in containing group)\dotfill
-% Dr. {\Name*[Martin Luther]{King, Jr.}.}
+% \begin{center}
+% \begin{tabular}{ll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Remains & \bfseries Not Contained in Group \\
+% Dr. {\Name*[Martin Luther]{King, Jr.}}. &
+% |Dr. {\Name*[Martin Luther]{King, Jr.}}.| \\
+% Dr. {\LMLK}. &
+% |Dr. {\LMLK}.| \\
%
-% Full stop remains (affix in own group)\dotfill
-% Dr. \SkipIndex\Name*[Martin Luther]{King, {Jr.}}.
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Gobbled & \bfseries Contained in Group \\
+% Dr. {\Name*[Martin Luther]{King, Jr.}.} &
+% |Dr. {\Name*[Martin Luther]{King, Jr.}.}| \\
+% Dr. {\LMLK.} &
+% |Dr. {\LMLK.}| \\
%
-% Full stop is gobbled (outside affix group)\dotfill
-% Dr. \SkipIndex\Name*[Martin Luther]{King, {Jr}.}.
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Remains & \bfseries Grouped in Affix; New Name \\
+% Dr. \SkipIndex\Name*[Martin Luther]{King, {Jr.}}. &
+% |Dr. \Name*[Martin Luther]{King, {Jr.}}.| \\
%
-% Full stop remains (intervening space)\dotfill
-% Dr. \Name*[Martin Luther]{King, Jr.} .
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Gobbled & \bfseries Not Grouped in Affix; New Name \\
+% Dr. \SkipIndex\Name*[Martin Luther]{King, {Jr}.}. &
+% |Dr. \Name*[Martin Luther]{King, {Jr}.}.| \\
%
-% Full stop gobbled (follows macro cs)\dotfill \LPatton .
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Remains & \bfseries Intervening Space \\
+% Dr. \Name*[Martin Luther]{King, Jr.} . &
+% |Dr. \Name*[Martin Luther]{King, Jr.} .| \\
%
-% Full stop remains (follows optarg)\dotfill \LPatton[George] .
-% \end{VerbatimOut}
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Gobbled & \bfseries After Shorthand \\
+% Dr. \LMLK . &
+% |Dr. \LMLK .| \\
%
-% \begin{quote}\small
-% \VerbatimInput[gobble=0]{\jobname.tmp}
+% \rowcolor{nagrey}^^A
+% \bfseries Full Stop Remains & \bfseries After Shorthand with Optional Argument \\
+% Dr. \LMLK[M.L.] . &
+% |Dr. \LMLK[M.L.] .| \\
%
-% \input{\jobname.tmp}
-% \end{quote}
+% \rowcolor{nagrey}^^A
+% \bfseries Fixed; Space Removed & \\
+% Dr. \LMLK[M.L.]. &
+% |Dr. \LMLK[M.L.].| \\\bottomrule
+% \end{tabular}
+% \end{center}
%
% \subsubsection{Formatting Initials}
%
-% 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. [\hyperlink{Bringhurst}{Bringhurst}] wisely advises one to omit spaces between initials.
+% This can be a thorny topic. Some publishers are dead-set on having a space between initials. Many designers find that practice to be inelegant at best. [\hyperlink{Bringhurst}{Bringhurst}] wisely advises one to omit spaces between initials.
%
-% 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. The quick interface reduces the likelihood that one will produce names that look the same, but whose arguments and name patterns differ. Below we use no formatting:
+% Fighting with one's editor does little good. If a style guide requires spaces, try thin spaces. The quick interface simplifies the task. Below we use no formatting:
%
% \begin{quote}^^A Normal size to show the spacing better.
% \begin{minipage}[c]{0.45\textwidth}
@@ -3248,116 +3660,124 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{minipage}
% \end{quote}
%
-% One might notice that we used \cmd{\PretagName} to sort this name by something other than its initials: ``White, Elwyn''. sorting only by initials (and with embedded macros like a thin space) will produce unexpected orderings of entries (Section~\ref{sec:IndexInitials}).
+% One might notice that we used \cmd{\PretagName} to sort this name by something other than its initials: ``White, Elwyn''. Sorting only by initials (and with embedded macros like a thin space) will produce unexpected entry order (Section~\ref{sec:IndexInitials}).
%
% \ReturnLink
%
-% \begin{Quote}{\Name[Leonard]{Bernstein}\break
-% \hbox{}\hfill ``What Makes Opera Grand?'', \textit{Vogue}
-% (December 1958)}
-% \textls[-15]{Any great work of art \dots revives and readapts time and space, and the measure of its success is the extent to which it makes you an inhabitant of that world\,---\,the extent to which it invites you in and lets you breathe its strange, special air.}
-% \end{Quote}
-%
-% \newpage
-%
% \section{Language Topics}
% \label{sec:Lang}
%
-% Here we cover technical issues related to various languages and cultures.
+% Here we cover technical issues related to the use of names in various languages and cultures. Specifically, we show how they should be represented in English, but this material can apply to other language standards as well.
%
% \subsection[Active Characters]{Caveats with Active Characters}
%
-% Active characters affect name patterns and index sorting, depending on the \LaTeX\ engine being used. We pay more attention to \cmd{\PretagName} (Section~\ref{sec:IndexSort}; cf.~\ref{sec:Unicode}):\footnote{Regarding the margin note that shows name control sequences, with \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern{Æthelred, II}} the glyphs \texttt{ÃĘ} correspond to \cmd{\IeC\{}\cmd{\AE\}}. Likewise in \texttt{\ShowPattern{Boëthius}} the glyphs \texttt{Ãń} correspond to \cmd{\IeC\{}\cmd{\"e\}}.}
+% Active characters affect name patterns and index sorting, depending on the \LaTeX\ engine being used. We use \cmd{\PretagName} (Section~\ref{sec:IndexSort}; cf.~\ref{sec:Unicode}) to get correct sorting and \cmd{\SkipIndex} (Section~\ref{sec:IdxPrefix}) to suppress bogus index entries:
+%
+% \newpage
%
% \begin{enumerate}\small
-% \vspace{4ex}
+% \item \Name*{Æthelred, II}\dotfill |\Name*{Æthelred, II}|
% \PatInfo{\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)}}
-% \vspace{-4ex}
-% \item |\Name*{Æthelred, II}|\dotfill \Name*{Æthelred, II}
-% \item[] We have seen this name earlier, as the formatting shows.
+% \item[] We have seen this name earlier, as the formatting shows.\footnote{Regarding the margin note that shows name control sequences, with \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern{Æthelred, II}} the glyphs \texttt{ÃĘ} correspond to \cmd{\IeC\{}\cmd{\AE\}}. Likewise in \texttt{\ShowPattern{Boëthius}} the glyphs \texttt{Ãń} correspond to \cmd{\IeC\{}\cmd{\"e\}}.}
% \item[] We sort this with |\PretagName{Æthelred, II}{Aethelred, 2}|
-% \item |\SkipIndex\Name{\AE thelred, II}|\dotfill
-% \SkipIndex\Name{\AE thelred, II}
+% \item \SkipIndex\Name{\AE thelred, II}\dotfill |\SkipIndex\Name{\AE thelred, II}|
% \item[] This name is new, as the formatting shows us. It looks like the
% name above, but its control pattern differs by the macro \cmd{\AE}.
% \item[] We get a different index entry, regardless of how we sort it.
-% \item |\Name{Bo\"ethius}|\dotfill \Name{Bo\"ethius}
+% \item \Name{Bo\"ethius}\dotfill |\Name{Bo\"ethius}|
% \item[] This new name uses |\"e| to display a lowercase e with a diaeresis.
% \item[] We sort it with |\PretagName{Bo\"ethius}{Boethius}|.
-% \item |\SkipIndex\Name{Boëthius}|\dotfill \SkipIndex\Name{Boëthius}
-% \item[] This name differs by the character ë.
-% \item |\SkipIndex\Name{Bo{\"e}thius}|\dotfill \SkipIndex\Name{Bo{\"e}thius}
-% \item[] Yet another different name differs by grouping tokens. These are
-% significant with regard to name patterns and indexing.
+% \item \SkipIndex\Name{Boëthius}\dotfill |\SkipIndex\Name{Boëthius}|
+% \item[] This name differs by the character ë. It cannot have the same index entry as \Name{Bo\"ethius} above.
+% \item \SkipIndex\Name{Bo{\"e}thius}\dotfill |\SkipIndex\Name{Bo{\"e}thius}|
+% \item[] Yet another different name by virtue of grouping tokens (Section~\ref{sec:GroupSpace}). The index entry for this one is again different.
% \end{enumerate}
%
% \subsection{Hyphenation}
-% \negmedskip
-% \NameArgWarning
%
-% In modern English, names can be hyphenated to reflect their cultural origins. With \textsf{nameauth}, one can handle such names by using optional hyphens, the \textsf{babel} package, or the \textsf{polyglossia} package. Below we offer an example using a mancro that does not expand differently throughout the document.\footnote{Using macros in name arguments does introduce potential problems that we discuss in Sections~\ref{sec:NameParticles}, \ref{sec:AltFormat}, and elsewhere, showing how to prevent errors.}
+% In modern English, names can be hyphenated to reflect their cultural origins. With \textsf{nameauth}, one can handle such names by using default hyphenation, optional hyphens, or packages like \textsf{babel} and \textsf{polyglossia}.
% \IndexName[John]{\noexpand\de{Strietelmeier}}
%
-% \begin{quote}\small
-% \begin{Verbatim}
-% \newcommand\de[1]{\foreignlanguage{ngerman}{#1}}
-% % or polyglossia: \newcommand\de[1]{\textgerman{#1}}
+% \subsubsection*{\hfil Default Hyphenation}
%
-% \begin{nameauth}
-% \< Striet & John & \noexpand\de{Strietelmeier} & >
-% \end{nameauth}
+% Here\PatInfo{\ShowPattern[John]{Strietelmeier}} we use the default hyphenation. Using \cmd{\textls} from \textsf{microtype} we get the name to break badly. We use \cmd{\SkipIndex} to omit this version from the index.
%
-% \PretagName[John]{\noexpand\de{Strietelmeier}}
-% {Strietelmeier, John}
-% \end{Verbatim}
+% \begin{VerbatimOut}{\jobname.tmp}
+% \textls[20]{In English, some names come from other cultures.
+% Names like \SkipIndex\Name[John]{Strietelmeier}
+% can break badly in some cases.}
+% \end{VerbatimOut}
+%
+% \begin{quote}
+% \VerbatimInput[gobble=0]{\jobname.tmp}
+%
+% \input{\jobname.tmp}
% \end{quote}
%
-% \begin{itemize}
-% \item \textbf{Example 1: Default Hyphenation}
+% \subsubsection*{\hfil Discretionary Hyphens}
+%
+% We\PatInfo{\ShowPattern[John]{Strie\-tel\-meier}} create a different name from that above. One must use the discretionary hyphens consistently in the macro arguments. We use \cmd{\Name[John]\{Strie\textbackslash-tel\textbackslash-meier\}} to omit this version from the index. We see that it breaks properly.
+%
+% \begin{VerbatimOut}{\jobname.tmp}
+% \textls[20]{In English, some names come from other cultures.
+% Names like \SkipIndex\Name[John]{Strie\-tel\-meier}
+% can break badly in some cases.}
+% \end{VerbatimOut}
+%
+% \begin{quote}
+% \VerbatimInput[gobble=0]{\jobname.tmp}
+%
+% \input{\jobname.tmp}
+% \end{quote}
%
-% \item[] Here\PatInfo{\ShowPattern[John]{Strietelmeier}} we use the default hyphenation. Using \cmd{\textls} from \textsf{microtype} we get the name to break badly. We omit this version from the index. One might think that the name were pronounced ``stre-et-el-mei-er''.\smallskip
+% \subsubsection*{\hfil Language Packages}
%
-% \item[] \textls[5]{In English, some names come from other cultures. Names
-% like \SkipIndex\Name[John]{Strietelmeier}
-% \cmd{\SkipIndex}\cmd{\Name[John]\{Strietelmeier\}} can break badly.}\medskip
+% Here\PatInfo{\textls[-5]{\ShowPattern[John]{\de{Strietelmeier}}}} we use an approach with macros in name arguments that can be applied to \textsf{babel} and \textsf{polyglossia}. This approach has issues that we discuss in Sections~\ref{sec:NameParticles}, \ref{sec:AltFormat}, and elsewhere, showing how to prevent errors.
%
-% \item \textbf{Example 2: Discretionary Hyphens}
+% \NameArgWarning
%
-% Here\PatInfo{\ShowPattern[John]{Strie\-tel\-meier}} we create a different name from the one above. One must use the discretionary hyphens consistently in the macro arguments. We also omit this version from the index. We see that it breaks properly.\smallskip
+% 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}):
%
-% \item[] \textls[9]{In English, some names come from other cultures. Names
-% like \SkipIndex\Name[John]{Strie\-tel\-meier}}
-% \textls[10]{\cmd{\SkipIndex}^^A
-% \cmd{\Name[John]\{Strie\textbackslash-tel\textbackslash-meier\}}
-% break badly in some cases.}\medskip
+% \begin{VerbatimOut}{\jobname.tmp}
+% \textls[20]{In English, some names come from other cultures.
+% Names like \Striet\ or \Name[John]{\noexpand\de{Strietelmeier}}
+% break badly in some cases.}
+% \end{VerbatimOut}
%
-% \item \textbf{Example 3: Language Packages}
+% \begin{quote}
+% \begin{Verbatim}
+% \newcommand\de[1]{\foreignlanguage{ngerman}{#1}}
+% % or polyglossia: \newcommand\de[1]{\textgerman{#1}}
%
-% Finally\PatInfo{\textls[-5]{\ShowPattern[John]{\de{Strietelmeier}}}} we use the general solution shown above with \textsf{babel} or \textsf{polyglossia}. Since the leading element of \meta{SNN} is a macro, using \cmd{\CapThis} would halt \LaTeX\ with errors unless we used alternate formatting that does not segment the argument (Section~\ref{sec:AltFormat}):\smallskip
+% \begin{nameauth}
+% \< Striet & John & \noexpand\de{Strietelmeier} & >
+% \end{nameauth}
%
-% \item[] \textls[7]{In English, some names come from other cultures. Names
-% like} \Striet, \textls[20]{\cmd{\Striet} or
-% \cmd{\Name[John]\{}\cmd{\noexpand}\cmd{\de\{Strietelmeier\}\}}}\break
-% break badly in some cases.
-% \end{itemize}
+% \PretagName[John]{\noexpand\de{Strietelmeier}}
+% {Strietelmeier, John}
+% \end{Verbatim}
+% \VerbatimInput[gobble=0,firstnumber=10]{\jobname.tmp}
+%
+% \input{\jobname.tmp}
+% \end{quote}
%
% \subsection{Affixes Need Commas}
% \label{sec:Affix}
+% \negmedskip
%
-% \negmedskip\begin{InfoBox}
-% Regarding an \meta{SNN, Affix} pair, the key to avoiding error is to apply macros to \meta{SNN} and \meta{Affix} as if they were independent arguments.\end{InfoBox}
+% \begin{InfoBox}
+% Regarding an \meta{SNN, Affix} pair, the key to avoiding error is to apply macros to \meta{SNN} and \meta{Affix} as if they were independent arguments.^^A
+% \end{InfoBox}
%
% A comma is not a required name element unless used in an \meta{SNN, Affix} pair. When thus used it delimits a Western surname from its affix, an Eastern family name from a personal name, and an ancient name from an affix.
%
-% When a comma appears in a required name argument, each member of the \meta{SNN, Affix} pair is treated as a separate argument. Thus, we say that the comma segments the macro argument.
+% When a comma appears in a required name argument, each member of the \meta{SNN, Affix} pair is treated as a separate argument. Thus, we say that the comma delimits or segments the name argument. Spaces around the comma are ignored. See Section~\ref{sec:Noexpand} for more information when using macros in name arguments. Below we see the basics of commas in name arguments.
%
-% If one encapsulates an \meta{SNN, Affix} pair within a macro, \LaTeX\ may halt with errors. We have seen above that spaces around the comma are ignored.
-%
-% \begin{center}\small
+% \begin{center}
% \vspace{1ex}
% \BothInfo{\ShowPattern[Oskar]{Hammerstein, II}\break
% \ShowPattern{Louis, XIV}\break
@@ -3365,25 +3785,29 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\ShowIdxPageref*[Oskar]{Hammerstein, II}\break
% \ShowIdxPageref*{Louis, XIV}\break
% \ShowIdxPageref*{Sun, Yat-sen}}
-% \vspace{-1ex}\medstretch
+% \vspace{-1ex}
% \ForgetName{Sun, Yat-sen}
% \begin{tabular}{ll}\toprule
-% |\Name[Oskar]{Hammerstein, II}| & \KeepAffix\Name[Oskar]{Hammerstein, II}\\
-% |\Name[Oskar]{Hammerstein, II}| & \Name[Oskar]{Hammerstein, II}\\
-% \rowcolor{nagrey}|\Name{Louis, XIV}| & \KeepAffix\Name{Louis, XIV}\\
-% \rowcolor{nagrey}|\Name{Louis, XIV}| & \Name{Louis, XIV}\\
-% |\Name{Sun, Yat-sen}| & \KeepAffix\Name{Sun, Yat-sen}\\
-% |\Name{Sun, Yat-sen}| & \Name{Sun, Yat-sen}\\\bottomrule
+% \rowcolor{nagrey}^^A
+% \Name[Oskar]{Hammerstein, II} & |\Name[Oskar]{Hammerstein, II}|\\
+% \rowcolor{nagrey}^^A
+% \Name[Oskar]{Hammerstein, II} & |\Name[Oskar]{Hammerstein, II}|\\
+%
+% \Name{Louis, XIV} & |\Name{Louis, XIV}|\\
+% \Name{Louis, XIV} & |\Name{Louis, XIV}|\\
+%
+% \rowcolor{nagrey}^^A
+% \Name{Sun, Yat-sen} & |\Name{Sun, Yat-sen}|\\
+% \rowcolor{nagrey}^^A
+% \Name{Sun, Yat-sen} & |\Name{Sun, Yat-sen}|\\\bottomrule
% \end{tabular}
% \end{center}
%
-% \newpage
-%
% Western names with affixes must use \meta{SNN,Affix},^^A
-% \PatInfo{\ShowPattern[Oskar]{Hammerstein}[II]} 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
+% \PatInfo{\ShowPattern[Oskar]{Hammerstein}[II]} never the obsolete syntax, which is meant for nonwestern 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]}.
%
% \DescribeMacro{\KeepAffix}
-% If the name displayed in the text shows both \meta{SNN} and \meta{Affix}, then \cmd{\KeepAffix} turns the space \emph{between} \meta{SNN} and \meta{Affix} into a non-breaking space. \cmd{\KeepAffix}\cmd{\Name\{Louis, XIV\}} will not break between \Name{Louis, XIV} and \ForceFN\FName{Louis, XIV}. All name types that use \meta{Affix} are supported. \medskip
+% If the name displayed in the text shows both \meta{SNN} and \meta{Affix}, then \cmd{\KeepAffix} turns the space \emph{between} \meta{SNN} and \meta{Affix} into a non-breaking space. \cmd{\KeepAffix}\cmd{\Name\{Louis, XIV\}} will not break between \Name{Louis, XIV} and \ForceFN\FName{Louis, XIV}. All name types that use \meta{Affix} are supported.
%
% \DescribeMacro{\KeepName}
% In longer name forms, \cmd{\KeepName} turns spaces \emph{between} all visible name elements into non-breaking spaces.
@@ -3398,22 +3822,23 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \FName[Sandra Day]{O'Connor}[Sandra].
% \end{itemize}
%
-% This macro does not alter spaces \emph{within} name elements composed of multiple names, like French or German forenames and Spanish surnames. \cmd{\KeepName} works with all name types.\medskip
+% This macro does not alter spaces \emph{within} name elements with multiple names, such as French and German forenames, as well as Spanish surnames. \cmd{\KeepName} works with all name types.
%
% \DescribeMacro{\DropAffix}
-% If \cmd{\DropAffix} precedes only a Western name, it will suppress the affix after the surname in a first or long reference. We get ``\DropAffix\Name*[Oskar]{Hammerstein, II}'' From |\DropAffix\Name*[Oskar]{Hammerstein, II}|.
+% If \cmd{\DropAffix} precedes only a Western name, it will suppress the affix after the surname in a first or long instance. We get ``\DropAffix\Name*[Oskar]{Hammerstein, II}'' From |\DropAffix\Name*[Oskar]{Hammerstein, II}|.
%
-% 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
+% With nonwestern 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}.
%
% \DescribeMacro{\ShowComma}
% In a long name form, \cmd{\ShowComma} forces the display of a comma between a Western name and its affix.
% \DescribeMacro{\NoComma}
% It works like the \texttt{comma} option on a per-name basis, and only in the text. 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.
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{ll}\toprule
-% |\ShowComma\LPatton| & \ShowComma\LPatton\\
-% \rowcolor{nagrey}|\NoComma\LPatton| & \NoComma\LPatton\\\bottomrule
+% \rowcolor{nagrey}^^A
+% \ShowComma\LPatton & |\ShowComma\LPatton|\\
+% \NoComma\LPatton & |\NoComma\LPatton|\\\bottomrule
% \end{tabular}
% \end{center}
%
@@ -3423,98 +3848,110 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {Eastern Names and Family Names in All Caps}
% \label{sec:Eastern}
%
-% Proper Eastern names, included with ancient and medieval forms in the broader group of non-Western names, are encoded using comma-delimited syntax (compare the obsolete syntax in Section~\ref{sec:Obsolete}). They have non-Western index entries: \meta{SNN} \meta{Affix} (no comma between name elements). The current syntax permits alternate names; the obsolete does not.
+% Proper Eastern names, included with ancient and medieval forms in the broader group of nonwestern names, are encoded using comma-delimited syntax (compare the obsolete syntax in Section~\ref{sec:Obsolete}). They have nonwestern index entries: \meta{SNN} \meta{Affix} (no comma between name elements). The current syntax permits alternate names; the obsolete does not.
%
% \begin{SyntaxBox}
% \cmd{\Name}\marg{SNN, Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% Even in some academic texts, one sees non-Western names encoded with Western forms.\footnote{\textls[-5]{Jaroslav Pelikan, \textit{The Christian Tradition}, 5 vols. (Chicago: Chicago UP, 1971–1989); Immanuel Geiss, \textit{Personen: Die biographische Dimension der Weltgeschichte}, Geschichte Griffbereit vol. 2 (Munich: Wissen Media Verlag, 2002).} At this time, \href{https://www.nndb.com/}{\bfseries NNDB} sorts \Name{Kim, Jong Un} under U, not K.}
-% The \textsf{nameauth} package seeks to remedy that issue, which has more to do with outsourcing indexes to non-expert providers than with scholars. For example, the macro |\Name*{Sun, Yat-sen}| \Name*{Sun, Yat-sen} ensures correct forms in the text and the index. We get cross-cultural sensitivity and scholarly accuracy.\medskip
+% Even in some academic texts, one sees nonwestern names encoded with Western forms.\footnote{\textls[-5]{Jaroslav Pelikan, \textit{The Christian Tradition}, 5 vols. (Chicago: Chicago UP, 1971–1989); Immanuel Geiss, \textit{Personen: Die biographische Dimension der Weltgeschichte}, Geschichte Griffbereit vol. 2 (Munich: Wissen Media Verlag, 2002).} At this time, \href{https://www.nndb.com/}{\bfseries NNDB} sorts \Name{Kim, Jong Un} under U, not K.}
+% The \textsf{nameauth} package seeks to remedy that issue, which has more to do with outsourcing indexes to non-expert providers than with scholars. For example, the macro |\Name*{Sun, Yat-sen}| \Name*{Sun, Yat-sen} ensures correct forms in the text and the index. We get cross-cultural sensitivity and scholarly accuracy.
%
% \DescribeMacro{\AllCapsActive}
% Certain contexts call for one's entire family name to be capitalized. This differs
% \DescribeMacro{\AllCapsInactive}
% from the way in which initial letter capitalization is handled (Section~\ref{sec:NameParticles}). In addition to the \texttt{allcaps} package option
% \DescribeMacro{\CapName}
-% (Section~\ref{sec:PkgOptions}), \cmd{\AllCapsActive} and \cmd{\AllCapsInactive} work for blocks of text. All have priority over \cmd{\CapName}, which works once per name. These capitalize \meta{SNN} in the body text only. They also work with \cmd{\AKA} and friends. For capitalization in both the text and index (beyond doing it manually) see Sections~\ref{sec:AltFormat} and~\ref{sec:AdvCustomize}.\medskip
+% (Section~\ref{sec:PkgOptions}), \cmd{\AllCapsActive} and \cmd{\AllCapsInactive} work for blocks of text. All have priority over \cmd{\CapName}, which works once per name. These capitalize \meta{SNN} in the body text only. They also work with \cmd{\AKA} and friends. For capitalization in both the text and index (beyond doing it manually) see Sections~\ref{sec:AltFormat} and~\ref{sec:AdvCustomize}.
%
% 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.
+% \medskip
%
-% \vspace{2ex}
+% \begin{center}
+% \begin{tabular}{ll}\toprule
+% \rowcolor{nagrey}^^A
+% \LNoguchi & |\LNoguchi| \\
+%
+% \CapName\LNoguchi & |\CapName\LNoguchi}|\\
+%
+% \rowcolor{nagrey}^^A
+% \LMiyazaki & |\LMiyazaki| \\
+%
+% \CapName\LMiyazaki & |\CapName\LMiyazaki|\\\bottomrule
+% \end{tabular}
+% \end{center}
+% \vspace{-14ex}
% \BothInfo{\ShowPattern[Hideyo]{Noguchi}\break
% \ShowPattern{Miyazaki, Hayao}}
% {\ShowIdxPageref*[Hideyo]{Noguchi}\break
% \ShowIdxPageref*{Miyazaki, Hayao}}
-% \vspace{-2ex}
-% \begin{center}\small\medstretch
-% \begin{tabular}{ll}\toprule
-% |\LNoguchi| & \LNoguchi \\
-% \rowcolor{nagrey}|\CapName\LNoguchi}| & \CapName\LNoguchi\\
-% |\LMiyazaki| & \LMiyazaki \\
-% \rowcolor{nagrey}|\CapName\LMiyazaki| & \CapName\LMiyazaki\\\bottomrule
-% \end{tabular}
-% \end{center}
+% \vspace{14ex}
%
% \subsection{Reversed Names}
% \label{sec:RevNames}
%
-% Sometimes the name form in the text differs from its expected index entry, as we saw with Hungarian names. In another example, a publisher might expect Western-style name forms in the index. In \textsf{nameauth} we can use the reversing option and macros to change the form in the text while not disturbing the index entries.\medskip
+% Sometimes a publisher expects Western-style index entries. Sometimes certain names have specific forms in the index, The reversing option and macros can adapt forms in the text to the index entries required in such cases.
%
% \DescribeMacro{\ReverseActive}
% In addition to the \texttt{allreversed} option for reversing name order (Section~\ref{sec:PkgOptions}), \cmd{\ReverseActive} and \cmd{\ReverseInactive} do the same for blocks of text.
% \DescribeMacro{\ReverseInactive}
% These all have priority over the use of \cmd{\RevName}, used once per name.
% \DescribeMacro{\RevName}
-% These macros do not affect the index. They work also with \cmd{\AKA} and friends. Reversing only affects long name forms. In this manual, reversed Western forms are shown with a dagger (\dag).\medskip
+% These macros do not affect the index. They work also with \cmd{\AKA} and friends. \emph{Reversing only affects long name forms,} which is why we show only long names below. In this manual, reversed Western forms are shown with a dagger (\dag).
%
% Both\Info{\cmd{\global}} \cmd{\ReverseActive} and \cmd{\ReverseInactive} can be used either as a pair or singly within an explicitly local scope. Use \cmd{\global} to force a global effect.
%
-% \vspace{4ex}
+% \begin{center}
+% \vspace{3ex}
% \BothInfo{\ShowPattern[Hideyo]{Noguchi}\break \ShowPattern{Miyazaki, Hayao}}
% {\ShowIdxPageref*[Hideyo]{Noguchi}\break \ShowIdxPageref*{Miyazaki, Hayao}}
-% \vspace{-4ex}
-% \begin{center}\small\medstretch
-% \begin{tabular}{rll}\toprule
-% & unchanged & |\RevName|\\
-% \rowcolor{nagrey}|\LNoguchi| & \LNoguchi & \RevName\LNoguchi\dag\\
-% \rowcolor{nagrey}|\LNoguchi[Doctor]| & \LNoguchi[Doctor] &
-% \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} \\
-% \rowcolor{nagrey}|\LNoguchi[Sensei]| &
-% \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} &
-% \RevName\LNoguchi[Sensei]\dag\\
-% \rowcolor{nagrey}|\Noguchi| & \Noguchi & \RevName\Noguchi\dag\\
-% \rowcolor{nagrey}|\SNoguchi| & \SNoguchi & \RevName\SNoguchi\dag\\
-% |\LMiyazaki| & \LMiyazaki & \RevName\LMiyazaki\\
-% |\LMiyazaki[Mr.]| & \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}} &
-% \RevName\LMiyazaki[Mr.]\\
-% |\LMiyazaki[Sensei]| & \LMiyazaki[Sensei] &
-% \raise0.5ex\hbox to 5em{\hfil\rule{3em}{0.6pt}}\\
-% |\Miyazaki| & \Miyazaki & \RevName\Miyazaki\\
-% |\SMiyazaki| & \SMiyazaki & \RevName\SMiyazaki\\
-% |\ForceFN\SMiyazaki| & \ForceFN\SMiyazaki &
-% \ForceFN\RevName\SMiyazaki\\\bottomrule
+% \vspace{-3ex}
+% \begin{tabular}{ll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Output & \bfseries Macro \\
+%
+% \LNoguchi & |\LNoguchi| \\
+% \LNoguchi[Doctor] & |\LNoguchi[Doctor]| \\
+% \strut Bad result: \fbox{\LNoguchi[Sensei]} & |\LNoguchi[Sensei]| \\
+%
+% \rowcolor{nagrey}^^A
+% \RevName\LNoguchi\dag & |\RevName\LNoguchi\dag| \\
+% \rowcolor{nagrey}^^A
+% \strut Bad result: \fbox{\RevName\LNoguchi[Doctor]} & |\RevName\LNoguchi[Doctor]| \\
+% \rowcolor{nagrey}^^A
+% \RevName\LNoguchi[Sensei]\dag & |\RevName\LNoguchi[Sensei]| \\
+%
+% \LMiyazaki & |\LMiyazaki| \\
+% \LMiyazaki[Sensei] & |\LMiyazaki[Sensei]| \\
+% \strut Bad result: \fbox{\LMiyazaki[Mr.]} & |\LMiyazaki[Mr.]| \\
+%
+% \rowcolor{nagrey}^^A
+% \RevName\LMiyazaki & |\RevName\LMiyazaki| \\
+% \rowcolor{nagrey}^^A
+% \RevName\LMiyazaki[Mr.] & |\RevName\LMiyazaki[Mr.]| \\
+% \rowcolor{nagrey}^^A
+% \strut Bad result: \fbox{\RevName\LMiyazaki[Sensei]} &
+% |\RevName\LMiyazaki[Sensei]| \\\bottomrule
% \end{tabular}
% \end{center}
+% \negmedskip
%
% \begin{SyntaxBox}[Reversing Western Names]
% \cmd{\RevName}\cmd{\Name}\oarg{FNN}\marg{SNN}\oarg{Alternate}
% \end{SyntaxBox}
%
-% As we see from the syntax, one should avoid using \meta{Affix} with such names. For example, |\RevName\LPatton\dag| produces ``\RevName\LPatton\dag''. The name looks wrong unless one uses either \cmd{\RevComma} or \cmd{\DropAffix}.
-%
-% 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}\dag| \ForgetThis\RevName\Name[Frenec]{Molnár}\dag, \RevName\Name[Frenec]{Molnár}\dag.
+% Avoid using \meta{Affix} with such names. For example, |\RevName\LPatton\dag| produces ``\RevName\LPatton\dag''. The name looks wrong unless one uses either \cmd{\RevComma} or \cmd{\DropAffix}. This name has a Western index entry.
%
% \begin{SyntaxBox}[Reversing Eastern Names]
% \cmd{\RevName}\cmd{\Name}\marg{SNN, Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% The index entry of this name form looks like \meta{SNN} \meta{FNN} (no comma). This is and remains a non-Western index entry.
+% The index entry of this name form looks like \meta{SNN} \meta{FNN} (no comma). This name has a nonwestern index entry.
%
-% \begin{InfoBox}[Reversing Ancient Names]
-% The syntax would be the same for reversing Eastern names, but this
-% usually results in producing nonsense names. We do not recommend it.
+% \begin{InfoBox}
+% Reversing ancient names works the same as reversing Eastern names. The problem is that, in most cases, one produces a nonsense name.
% \end{InfoBox}
+% \negmedskip
%
% \subsection[Listing by Surname]{Listing Western names by Surname}
% \label{sec:LastFirst}
@@ -3522,17 +3959,20 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\ReverseCommaActive}
% To make lists of ``last comma first'' names, in addition to the \texttt{allrevcomma} option (Section~\ref{sec:PkgOptions}),
% \DescribeMacro{\ReverseCommaInactive}
-% the macros \cmd{\ReverseCommaActive} and \cmd{\ReverseCommaInactive} function the same way with blocks of text.\DescribeMacro{\RevComma} They both have priority over \cmd{\RevComma}. These all affect only long Western name forms. The first two are broad toggles, while the third is used once per name.\medskip
+% the macros \cmd{\ReverseCommaActive} and \cmd{\ReverseCommaInactive} function the same way with blocks of text.\DescribeMacro{\RevComma} They both have priority over \cmd{\RevComma}. These all affect only long Western name forms. The first two are broad toggles, while the third is used once per name.
%
% Both\Info{\cmd{\global}} \cmd{\ReverseCommaActive} and \cmd{\ReverseCommaInactive} can be used either as a pair or singly within a local scope. Use \cmd{\global} to force a global effect.
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}^^A
% \Name*[Oskar]{Hammerstein, II} &
% \RevComma\Name*[Oskar]{Hammerstein, II} & change\\
+% \rowcolor{nagrey}^^A
% \LNoguchi & \RevComma\LNoguchi & change\\
-% \rowcolor{nagrey}\LAeth & \RevComma\LAeth & no change\\
-% \rowcolor{nagrey}\Name*{Sun, Yat-sen} &
+%
+% \LAeth & \RevComma\LAeth & no change\\
+% \Name*{Sun, Yat-sen} &
% \RevComma\Name*{Sun, Yat-sen} & no change\\\bottomrule
% \end{tabular}
% \end{center}^^A
@@ -3543,13 +3983,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \ShowPattern{Sun, Yat-sen}}
% \vspace{12ex}
%
-% \begin{Quote}{\small\Name[W.H.]{Auden}\break
-% \hbox{}\hfill \textit{Paris Review} interview (1972) p. 206}
-% I don't think the mystical experience can be verbalized. When the ego disappears, so does power over language.
-% \end{Quote}
-%
-% \newpage
-%
% \subsection{Particles in Names}
% \label{sec:NameParticles}
%
@@ -3557,23 +3990,21 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection{Standard Rules}
%
-% Modern standards tend to treat particles in the following way:
+% According to [\hyperlink{Mulvany}{Mulvany}, 152–82], one may treat name particles in the following way:
%
% \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.
+% surname. Capitalization may vary.
% \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}.}
+% unless preceded by \textit{de}.
% \item Modern Romance languages keep particles with the surname.
% \item German and medieval Romance languages keep particles with forenames.
-% \item Welsh, Irish, and Scots names often merge particles with surnames:
-% FitzRoy or Fitzroy; O'Leary; McDonald, MacLeish.
+% \item Modern Welsh, Irish, and Scots names often merge particles with
+% surnames: FitzRoy or Fitzroy; O'Leary; McDonald, MacLeish.
% \end{itemize}
%
-% \begin{center}\small
+% \begin{center}
% \vspace{2ex}
% \BothInfo{\ShowPattern[Martin]{Van Buren}\break
% \ShowPattern[Hernando]{de~Soto}\break
@@ -3581,19 +4012,26 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\ShowIdxPageref*[Martin]{Van Buren}\break
% \ShowIdxPageref*[Hernando]{de~Soto}\break
% \ShowIdxPageref*[J.W. von]{Goethe}}
-% \vspace{-2ex}\medstretch
-% \begin{tabular}{rll}\toprule
-% \bfseries Macro & \bfseries Body Text & \bfseries Index \\
-% \rowcolor{nagrey}\cmd{\ForgetThis}\cmd{\VBuren} &
-% \ForgetThis\VBuren & \ShowIdxPageref*[Martin]{Van Buren}\\
-% \cmd{\VBuren} & \VBuren & \ShowIdxPageref*[Martin]{Van Buren}\\
-% \rowcolor{nagrey}\cmd{\ForgetThis}\cmd{\Soto} &
-% \ForgetThis\Soto & \ShowIdxPageref*[Hernando]{de~Soto}\\
-% \cmd{\CapThis}\cmd{\Soto} & \CapThis\Soto &
-% \ShowIdxPageref*[Hernando]{de~Soto}\\
-% \rowcolor{nagrey}\cmd{\ForgetThis}\cmd{\JWG} & \ForgetThis\JWG &
-% \ShowIdxPageref*[J.W. von]{Goethe}\\
-% \cmd{\JWG} & \JWG & \ShowIdxPageref*[J.W. von]{Goethe}\\\bottomrule
+% \vspace{-2ex}
+% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Body Text & \bfseries Index & \bfseries Macro \\
+%
+% \ForgetThis\VBuren & \ShowIdxPageref*[Martin]{Van Buren} &
+% \cmd{\ForgetThis}\cmd{\VBuren} \\
+% \VBuren & \ShowIdxPageref*[Martin]{Van Buren} & \cmd{\VBuren} \\
+%
+% \rowcolor{nagrey}^^A
+% \ForgetThis\Soto & \ShowIdxPageref*[Hernando]{de~Soto} &
+% \cmd{\ForgetThis}\cmd{\Soto} \\
+% \rowcolor{nagrey}^^A
+% \CapThis\Soto & \ShowIdxPageref*[Hernando]{de~Soto} &
+% \cmd{\CapThis}\cmd{\Soto} \\
+%
+% \ForgetThis\JWG & \ShowIdxPageref*[J.W. von]{Goethe} &
+% \cmd{\ForgetThis}\cmd{\JWG}\\
+%
+% \JWG & \ShowIdxPageref*[J.W. von]{Goethe} & \cmd{\JWG}\\\bottomrule
% \end{tabular}
% \end{center}
%
@@ -3605,34 +4043,40 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% There are characters that look similar, but in fact are different. For example, \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}). If one confuses these similar characters, spurious results can occur.
%
-% \subsubsection{Capitalizing Particles}
+% \subsubsection[Capitalizing]{Capitalizing Particles}
%
% \DescribeMacro{\CapThis}
-% In English and modern Romance languages, names like \LSoto\ have their particles in the \meta{SNN} argument: \Soto. When the particle appears at the beginning of a sentence, one must capitalize it, e.g.,: ``\CapThis\Soto\ |\CapThis\Soto\| was a famous Spanish explorer in North America.''
+% In English and modern Romance languages, names like \LSoto\ have their particles in the \meta{SNN} argument: \Soto. When the particle appears at the beginning of a sentence, one must capitalize it, e.g.,:
%
% \begin{itemize}
+% \item[] \CapThis\Soto\ was a famous Spanish explorer.
+% \item[] |\CapThis\Soto\ was a famous Spanish explorer.|\medskip
+%
% \item With \texttt{latex} and \texttt{pdflatex}, using \cmd{\CapThis}
% should work with all of the Unicode characters available in the T1
% encoding. For a broader set of characters, consider using \texttt{xelatex}
% and \texttt{lualatex}.
+%
% \item Section~\ref{sec:NonstandardCaps} applies \cmd{\CapThis}
% to nonstandard names and indexing.
+%
% \item Sections~\ref{sec:AltFormat} and~\ref{sec:Unicode} explain
% potential problems of \cmd{\CapThis}. That is a trade-off
% for using a natural language approach.
+%
% \item \cmd{\CapName} overrides the \meta{SNN} created by \cmd{\CapThis}.
% It is unlikely that the two would be used in the same context.
% \end{itemize}
%
% \DescribeMacro{\AccentCapThis}
-% Before \textsf{nameauth} used automatic Unicode detection, \cmd{\AccentCapThis} placed before \cmd{\CapThis} handled Unicode characters. It remains for backward compatibility. Otherwise it is seldom used
+% Before \textsf{nameauth} used automatic Unicode detection, \cmd{\AccentCapThis} placed before \cmd{\CapThis} handled Unicode characters. It remains for backward compatibility. Otherwise it is seldom used and not needed.
%
% \subsection{Medieval Names}
% \label{sec:NameMedieval}
%
% 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:\footnote{Regarding the margin note that shows name control sequences, with \texttt{pdflatex} and \texttt{latex}, in \texttt{\ShowPattern{Thomas, à~Kempis}} the glyphs \texttt{Ãă} correspond to \cmd{\IeC\{}\texttt{\textbackslash\textquotesingle a\}}.}
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \PretagName{Thomas, à~Kempis}{Thomas Akempis} % medieval
% \PretagName[Thomas]{à~Kempis}{Akempis, Thomas} % Western
@@ -3674,6 +4118,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% name under \texttt{Thomas}, followed by \texttt{Akempis}, not
% \texttt{A kempis} (cf. 10 below).
% \end{enumerate}
+%
% \item Alternate medieval form: |\Name{Thomas,\`a~Kempis}|
% \begin{enumerate}\addtocounter{enumi}{4}
% \item \Name{Thomas,\`a~Kempis} is a different name.
@@ -3684,8 +4129,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \JustIndex\KempMed|\JustIndex\KempMed|.
% \end{enumerate}
%
-% \newpage
-%
% \item Western form: \cmd{\KempW}
% \begin{enumerate}\addtocounter{enumi}{7}
% \item \KempW\ is a Western name form with the index entry:
@@ -3703,135 +4146,168 @@ and version 1.3 or later is part of all distributions of LaTeX version
% |\PretagName[Thomas]{à~Kempis}{Akempis, Thomas}|
% \end{enumerate}
% \end{itemize}
-% \negmedskip
%
% \ReturnLink
%
+% \newpage
+%
% \addtocontents{toc}{\protect\goodbreak}
% \section{Debugging}
% \label{sec:Debugging}
%
-% As we move forward in this manual, many concepts will mesh together in complex ways. Indexing is the first topic to do that. Name patterns govern those interactions, and debugging macros illustrate what is going on. First, we explain what the debugging macros are trying to communicate. Next, we describe the macros.
-%
-% Previously, we have seen simple name patterns displayed in the margin, which look like the examples shown below:
+% From this point onward, concepts that we introduced earlier will mesh together in complex ways, starting with indexing. Name patterns govern those interactions, illustrated by debugging macros. We explain what the debugging macros communicate, then we describe the macros.
%
-% \begin{quote}\small\ttfamily
-% \begin{tabular}{@{\qquad}l}
-% \ShowPattern[George]{Washington}\\
-% \ShowPattern{Miyazaki, Hayao}
-% \end{tabular}
-% \end{quote}
-%
-% Now we switch to full name patterns, which indicate the ``system'' or data set to which a control sequence representing a name belongs. Name patterns usually expand to empty, except for exclusions.\footnote{To fit the information in the margin, we display them by taking the output of \cmd{\ShowPattern} and manually adding the system to correspond to the package internals.}
-% The patterns look like this:
+% \leavevmode^^A
+% \PatInfo{\ShowPattern[George]{Washington}\\
+% \ShowPattern{Miyazaki, Hayao}}
+% Previously, we have seen simple name patterns displayed in the margin, which look like the examples to the left of this paragraph. Now we show full name patterns, which indicate the ``system'' or data set to which they belong. Name patterns are control sequences that usually expand to the empty string.
+% They look like this:\footnote{To fit the information in the margin, we display them by taking the output of \cmd{\ShowPattern} and manually adding the system to correspond to the package internals.}
%
-% \begin{quote}\small
+% \begin{quote}
% \ttfamily\begin{tabular}{@{\qquad}l@{\quad \% }l}
% \ShowPattern[George]{Washington}!MN & name, main matter\\
% \ShowPattern{Miyazaki, Hayao}!NF & name, front matter\\
% \ShowPattern[Jay]{Rockefeller}!PN & index cross-reference\\
% \ShowPattern[W.E.B.]{Du~Bois}!PRE & index sort tag\\
-% \ShowPattern{Gregory, I}!TAG & index data tag\\
-% \ShowPattern[Schuyler]{Colfax}!DB & name data tag\\
+% \ShowPattern{Gregory, I}!TAG & index tag\\
+% \ShowPattern[Schuyler]{Colfax}!DB & name tag\\
% \end{tabular}
% \end{quote}
+% \negmedskip
%
-% No longer will we show index entries in the margin because they shall become too large and complex to fit there. We will show index entries in the body text.
+% \begin{InfoBox}
+% From this point onward, we show index entries in the body text instead of the margin due to their increasing complexity.
+% \end{InfoBox}
+% \negmedskip
%
% \subsection[Name Patterns]{Name Pattern Overview}
% \label{sec:NamePatterns}
%
-% The next table shows how macro arguments generate name patterns. The \meta{Alternate} argument only affects patterns when using the obsolete syntax (Section~\ref{sec:Obsolete}). The patterns govern names in both the text and the index. The colon at the beginning of each pattern was added to prevent any collisions with extant macros:
+% Below we show how macro arguments generate name patterns. The \meta{Alternate} argument only affects patterns when using the obsolete syntax (Section~\ref{sec:Obsolete}). The patterns govern names in both the text and the index. The colon at the beginning of each pattern prevents any collisions with extant macros:
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{lll}\toprule
-% Macro Arguments & Patterns & Name Type\\
-% \rowcolor{nagrey}\oarg{FNN}\marg{SNN} &
+% \rowcolor{nagrey}^^A
+% \bfseries Macro Arguments & \bfseries Patterns & \bfseries Name Type\\
+%
+% \oarg{FNN}\marg{SNN} &
% :\meta{FNN}!\meta{SNN} & Western\\
% \oarg{FNN}\marg{SNN}\oarg{Alt} &
% :\meta{FNN}!\meta{SNN} & Western\\
-% \rowcolor{nagrey}\oarg{FNN}\marg{SNN, Affix} &
+% \oarg{FNN}\marg{SNN, Affix} &
% :\meta{FNN}!\meta{SNN},\meta{Affix} & Western\\
% \oarg{FNN}\marg{SNN, Affix}\oarg{Alt} &
% :\meta{FNN}!\meta{SNN},\meta{Affix} & Western\\
-% \rowcolor{nagrey}\hphantom{\oarg{FNN}}\marg{SNN, Affix} &
-% :\meta{SNN},\meta{Affix} & non-Western\\
+%
+% \rowcolor{nagrey}^^A
+% \hphantom{\oarg{FNN}}\marg{SNN, Affix} &
+% :\meta{SNN},\meta{Affix} & nonwestern\\
+% \rowcolor{nagrey}^^A
% \hphantom{\oarg{FNN}}\marg{SNN, Affix}\oarg{Alt} &
-% :\meta{SNN},\meta{Affix} & non-Western\\
-% \rowcolor{nagrey}\hphantom{\oarg{FNN}}\marg{SNN}\oarg{Alt} &
+% :\meta{SNN},\meta{Affix} & nonwestern\\
+%
+% \hphantom{\oarg{FNN}}\marg{SNN}\oarg{Alt} &
% :\meta{SNN},\meta{Alt} & old syntax\\
+%
+% \rowcolor{nagrey}^^A
% \hphantom{\oarg{FNN}}\marg{SNN} &
-% :\meta{SNN} & non-Western\\\bottomrule
+% :\meta{SNN} & nonwestern\\\bottomrule
% \end{tabular}
-% \end{center}\medskip
+% \end{center}
%
% \DescribeMacro{\NameauthPattern}
% Every time a macro that takes name arguments is called (Section~\ref{sec:NameArgMacros}), the internal name category logic will \cmd{\let} the current name pattern to \cmd{\NameauthPattern}, making it available to formatting hooks (cf. Section~\ref{sec:DataTagHooks}).
%
-% The name category logic is provided by \cmd{\@nameauth@Choice}, which determines the type of name (Western or non-Western) by its arguments. Various \textsf{nameauth} macros append the appropriate ``system'' or name data set indicator to the pattern. We use this concept starting here, but mostly in Section~\ref{sec:AdvancedFormat}.
-%
-% First we show name patterns generated from name elements and the type of name. Reversed Western names are marked by a dagger (\dag); names that use the obsolete syntax are marked by a double dagger (\ddag). We use two versions of each name, plus variations in formatting, to show that the patterns depend on the arguments, not the appearance of the name. Note also that the obsolete non-Western syntax and the current one still share the same patterns.
-%
-% \begin{center}\small\medstretch
-% \begin{tabular}{rll}\toprule
-% Macro & Body Text & \cmd{\ShowPattern}\\
-% \rowcolor{nagrey}\cmd{\Harnack[Adolf von]} & \Harnack[Adolf von] &
-% \texttt{\ShowPattern[Adolf]{Harnack}}\\
-% \rowcolor{nagrey}\cmd{\LHarnack} & \LHarnack &
-% \texttt{\ShowPattern[Adolf]{Harnack}}\\
-% \cmd{\ForgetThis}\cmd{\Patton} & \ForgetThis\Patton &
-% \texttt{\ShowPattern[George S.]{Patton, Jr.}}\\
-% \cmd{\DropAffix}\cmd{\LPatton} & \DropAffix\LPatton &
-% \texttt{\ShowPattern[George S.]{Patton, Jr.}}\\
-% \rowcolor{nagrey}\cmd{\ForgetThis}\cmd{\Noguchi} & \ForgetThis\Noguchi &
-% \texttt{\ShowPattern[Hideyo]{Noguchi}}\\
-% \rowcolor{nagrey}\cmd{\RevName}\cmd{\LNoguchi}\cmd{\dag} &
-% \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{nagrey}\cmd{\Name\{Henry,VIII\}} & \Name{Henry,VIII} &
-% \texttt{\ShowPattern{Henry,VIII}}\\
-% \rowcolor{nagrey}\cmd{\Name*\{Henry\}[VIII]}\cmd{\ddag} &
-% \Name*{Henry}[VIII]\ddag & \texttt{\ShowPattern{Henry,VIII}}\\
-% \cmd{\Dem[I Soter]} & \Dem[I Soter] & \texttt{\ShowPattern{Demetrius,I}}\\
-% \cmd{\LDem} & \LDem & \texttt{\ShowPattern{Demetrius,I}}\\
-% \rowcolor{nagrey}\cmd{\ForgetThis}\cmd{\Aris} & \ForgetThis\Aris &
-% \texttt{\ShowPattern{Aristotle}}\\
-% \rowcolor{nagrey}\cmd{\Aris} & \Aris &
-% \texttt{\ShowPattern{Aristotle}}\\\bottomrule
+% The name category logic is provided by \cmd{\@nameauth@Choice}, which determines the type of name (Western or nonwestern) by its arguments. Various \textsf{nameauth} macros append the appropriate ``system'' or name data set indicator to the pattern. We use this concept starting here, but mostly in Section~\ref{sec:AdvancedFormat}.
+%
+% Below are name patterns generated from name elements. We mark reversed Western names with a dagger (\dag) and names using the obsolete syntax with a double dagger (\ddag). We show that name patterns depend on name arguments, not on the appearance of a name. The obsolete nonwestern syntax and the current syntax share the same patterns.
+%
+% \begin{center}
+% \begin{tabular}{lll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Body Text & \bfseries \cmd{\ShowPattern} & \bfseries Macro\\
+%
+% \Harnack[Adolf von] & \texttt{\ShowPattern[Adolf]{Harnack}} &
+% \cmd{\Harnack[Adolf von]}\\
+% \LHarnack & \texttt{\ShowPattern[Adolf]{Harnack}} &
+% \cmd{\LHarnack}\\
+%
+% \rowcolor{nagrey}^^A
+% \ForgetThis\Patton & \texttt{\ShowPattern[George S.]{Patton, Jr.}} &
+% \cmd{\ForgetThis}\cmd{\Patton}\\
+% \rowcolor{nagrey}^^A
+% \DropAffix\LPatton & \texttt{\ShowPattern[George S.]{Patton, Jr.}} &
+% \cmd{\DropAffix}\cmd{\LPatton}\\
+%
+% \ForgetThis\Noguchi & \texttt{\ShowPattern[Hideyo]{Noguchi}} &
+% \cmd{\ForgetThis}\cmd{\Noguchi}\\
+% \RevName\LNoguchi\dag & \texttt{\ShowPattern[Hideyo]{Noguchi}} &
+% \cmd{\RevName}\cmd{\LNoguchi}\cmd{\dag}\\
+%
+% \rowcolor{nagrey}^^A
+% \ForgetThis\Yamt & \texttt{\ShowPattern{Yamamoto,Isoroku}} &
+% \cmd{\ForgetThis}\cmd{\Yamt}\\
+% \rowcolor{nagrey}^^A
+% \RevName\LYamt & \texttt{\ShowPattern{Yamamoto,Isoroku}} &
+% \cmd{\RevName}\cmd{\LYamt}\\
+%
+% \Name{Henry,VIII} & \texttt{\ShowPattern{Henry,VIII}} &
+% \cmd{\Name\{Henry,VIII\}}\\
+% \Name*{Henry}[VIII]\ddag & \texttt{\ShowPattern{Henry,VIII}} &
+% \cmd{\Name*\{Henry\}[VIII]}\cmd{\ddag}\\
+%
+% \rowcolor{nagrey}^^A
+% \Dem[I Soter] & \texttt{\ShowPattern{Demetrius,I}} & \cmd{\Dem[I Soter]}\\
+% \rowcolor{nagrey}^^A
+% \LDem & \texttt{\ShowPattern{Demetrius,I}} & \cmd{\LDem}\\
+%
+% \ForgetThis\Aris & \texttt{\ShowPattern{Aristotle}} &
+% \cmd{\ForgetThis}\cmd{\Aris}\\
+% \Aris & \texttt{\ShowPattern{Aristotle}} &
+% \cmd{\Aris}\\\bottomrule
% \end{tabular}
-% \end{center}\medskip
+% \end{center}
%
-% Six suffixes are appended to these patterns to create six ``systems'' or data sets. The \meta{pattern} element in the next table is the output of \cmd{\ShowPattern}. Within that \meta{pattern} is a leading colon, name elements with spaces removed, and delimiters that separate those elements. Western names use an exclamation point and a comma. Non-Western names only use a comma. For the use of ID, see \cmd{\ShowNameState} on page~\pageref{page:NameState}. For the way that exclusions use the cross-reference system as a special case for preventing index interaction, see Section~\ref{sec:IdxFine}.
+% Six suffixes are appended to these patterns to create six ``systems'' or data sets. The \meta{pattern} element in the next table is the output of \cmd{\ShowPattern}. Within that \meta{pattern} is a leading colon, name elements with spaces removed, and delimiters that separate those elements. Western names use an exclamation point and a comma. Nonwestern names only use a comma. For the use of ID, see \cmd{\ShowNameState} on page~\pageref{page:NameState}. For the way that exclusions use the cross-reference system as a special case for preventing index interaction, see Section~\ref{sec:IdxFine}.
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{llll}\toprule
-% Description & Pattern & ID & Example\\
-% \rowcolor{nagrey}Front-matter names & \meta{pattern}\texttt{!NF} &
+% \rowcolor{nagrey}^^A
+% \bfseries Description & \bfseries Pattern & \bfseries ID & \bfseries Example\\
+%
+% Front-matter names & \meta{pattern}\texttt{!NF} &
% front & \texttt{\ShowPattern[Adolf]{Harnack}{!NF}}\\
+%
+% \rowcolor{nagrey}^^A
% Main-matter names & \meta{pattern}\texttt{!MN} & main &
% \texttt{\ShowPattern[Hideyo]{Noguchi}{!MN}}\\
-% \rowcolor{nagrey}Index cross-refs & \meta{pattern}\texttt{!PN} &
+%
+% Index cross-refs & \meta{pattern}\texttt{!PN} &
% xref & \texttt{\ShowPattern{Yamamoto, Isoroku}{!PN}}\\
+%
+% \rowcolor{nagrey}^^A
% Exclusions & \meta{pattern}\texttt{!PN} &
% excl & (like xref, special value)\\
-% \rowcolor{nagrey}Index sort tags & \meta{pattern}\texttt{!PRE} & pretag &
+%
+% Index sort tags & \meta{pattern}\texttt{!PRE} & pretag &
% \texttt{\ShowPattern{Henry, VIII}{!PRE}}\\
+%
+% \rowcolor{nagrey}^^A
% Index data tags & \meta{pattern}\texttt{!TAG} &
% idxtag & \texttt{\ShowPattern{Demetrius, I}{!TAG}}\\
-% \rowcolor{nagrey}Name data tags & \meta{pattern}\texttt{!DB} & namedb &
+%
+% Name data tags & \meta{pattern}\texttt{!DB} & namedb &
% \texttt{\ShowPattern{Aristotle}{!DB}}\\\bottomrule
% \end{tabular}
% \end{center}
%
-% The following macros write the patterns that they generate to certain systems or data sets. \cmd{\IndexName} does not generate a name pattern, even though it writes index entries. This lets the index control logic be keyed to cross-references.
+% Next we see what macros write patterns to what systems. \cmd{\IndexName} does not generate a name pattern. This lets cross-references determine the index control logic.
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{lcccccc}\toprule[1pt]
-% Macros & \ttfamily \,!NF\, & \ttfamily \,!MN\, & \ttfamily \,!PN\, &
-% \ttfamily !PRE & \ttfamily !TAG & \ttfamily \,!DB\,\\\midrule
+% \bfseries Macros & \bfseries \ttfamily \,!NF\, & \bfseries \ttfamily \,!MN\, &
+% \bfseries \ttfamily \,!PN\, & \bfseries \ttfamily !PRE &
+% \bfseries \ttfamily !TAG & \bfseries \ttfamily \,!DB\,\\\midrule
% \cmd{\Name} \cmd{\Name*} \cmd{\FName} \cmd{\FName*} & \YES & \YES & \NO &
% \NO & \NO & \NO\\
% \cmd{\ForgetName} \cmd{\SubvertName} & \YES & \YES & \NO &
@@ -3853,7 +4329,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Indexing: States}
% \label{sec:RuleStates}
%
-% Six distinct ``states'' describe any name pattern with respect to the index. They are derived using \cmd{\ShowNameState}. Below we show these states and what they mean.
+% Six distinct ``states'' describe any name pattern with respect to the index. They are derived using \cmd{\ShowNameState}. Below we show these states and what they mean.\medskip
%
% \begin{tcolorbox}
% [colback=white,colframe=darkgray,
@@ -3907,6 +4383,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{itemize}
% \end{tcolorbox}
%
+% \begin{Quote}{\Name[Mark]{Twain}, \textit{The Innocents Abroad} (1869)}
+% Virtue never has been as respectable as money.^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
+%
% \begin{tcolorbox}
% [colback=white,colframe=darkgray,
% adjusted title={\bfseries\hfil State 3: Only an Xref Pattern Exists}]
@@ -3971,6 +4452,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{itemize}
% \end{tcolorbox}
%
+% \begin{Quote}{\Name[W.H.]{Auden}, \textit{Paris Review} interview (1972) p. 206}
+% I don't think the mystical experience can be verbalized. When the ego disappears, so does power over language.^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
+%
% \begin{tcolorbox}
% [colback=white,colframe=darkgray,
% adjusted title={\bfseries\hfil State 6: Both Name Pattern and
@@ -4001,30 +4487,28 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\ShowPattern}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% Thus, |\texttt{\ShowPattern[Hernando]{de~Soto}}| will produce the output \JustIndex\Soto\texttt{\ShowPattern[Hernando]{de~Soto}}. As we have seen before, using \textsf{inputenc}/\textsf{fontenc} will cause names like |\texttt{\ShowPattern{Boëthius}}| to produce \texttt{\ShowPattern{Boëthius}}\JustIndex\Name{Bo\"ethius}.\medskip
+% Thus, |\texttt{\ShowPattern[Hernando]{de~Soto}}| will produce the output \JustIndex\Soto\texttt{\ShowPattern[Hernando]{de~Soto}}. As we have seen before, using \textsf{inputenc}/\textsf{fontenc} will cause names like |\texttt{\ShowPattern{Boëthius}}| to produce \texttt{\ShowPattern{Boëthius}}\JustIndex\Name{Bo\"ethius}.
%
% \DescribeMacro{\ShowIdxPageref}
-% \cmd{\ShowIdxPageref} displays a full index entry in the text as if it were only a page reference, not a cross-reference.
+% \cmd{\ShowIdxPageref} displays a full index entry in the text as if it were only a page entry, not a cross-reference.
%
% \begin{SyntaxBox}
% \cmd{\ShowIdxPageref\ }\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% 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, for example, if we mention \LSoto\ after setting up the following sort tag (Section~\ref{sec:IndexSort}), we get:
+% 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, for example, if we mention \LSoto\ after setting up a sort tag (Section~\ref{sec:IndexSort}), we get the following:
%
-% \begin{quote}\small
+% \begin{quote}
% |\PretagName[Hernando]{de~Soto}{Desoto, Hernando}|
%
% \IndexActual{@}\UntagName[Hernando]{de~Soto}
% |\ShowIdxPageref[Hernando]{de~Soto}|\\
-% \ShowIdxPageref[Hernando]{de~Soto}\footnote{We cannot generate any index
-% entries in this quote because we changed \cmd{\IndexActual}.}
+% \ShowIdxPageref[Hernando]{de~Soto}
% \end{quote}
%
-% In this \texttt{dtx} file, however, due to extra setup needed in the
-% ``commented'' part of the file (Section~\ref{sec:IndexTag}), we get:
+% We could not create index entries within the quote above in this \texttt{dtx} file because we changed \cmd{\IndexActual}. A \texttt{dtx} file uses a different default for \cmd{\IndexActual} (see Section~\ref{sec:IndexTag}). Here we get instead:
%
-% \begin{quote}\small
+% \begin{quote}
% |\PretagName[Hernando]{de~Soto}{Desoto, Hernando}|\\
% \verb+\TagName[Hernando]{de~Soto}{\string|hyperpage}+
%
@@ -4043,7 +4527,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% Regardless of whether we have a normal \LaTeX\ document or a \texttt{dtx} file, we get:\JustIndex\Soto
%
-% \begin{quote}\small
+% \begin{quote}
% |\ShowIdxPageref*[Hernando]{de~Soto}|\\
% \ShowIdxPageref*[Hernando]{de~Soto}
% \end{quote}
@@ -4055,73 +4539,74 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\ShowNameInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% Below we show several name forms. This macro shows detokenized name arguments to prevent potential errors and to disclose any macros in the name arguments, which are designated according to Section~\ref{sec:NameArgs}. Below are names that (mostly) appear elsewhere in the manual:
+% Below we show several name forms. This macro shows detokenized name arguments to prevent potential errors and to disclose any macros in the name arguments, which are designated according to Section~\ref{sec:NameArgs}.
%
% \begin{itemize}\small
-% \item |\ShowNameInfo[J.E.]{Carter, Jr.}[James Earl]|
-% \item[] \ShowNameInfo[J.E.]{Carter, Jr.}[James Earl]
-% \item[] |\Name*[J.E.]{Carter, Jr.}[James Earl]|\dotfill
-% \Name*[J.E.]{Carter, Jr.}[James Earl]
-% \item |\ShowNameInfo{Miyazaki, Hayao}[Sensei]|
-% \item[] \ShowNameInfo{Miyazaki, Hayao}[Sensei]
-% \item[] |\Name*{Miyazaki, Hayao}[Sensei]|\dotfill
-% \Name*{Miyazaki, Hayao}[Sensei]
-% \item |\ShowNameInfo{Elizabeth, I}[I, ``Gloriana'']|
-% \item[] \ShowNameInfo{Elizabeth, I}[I, ``Gloriana'']
-% \item[] |\Name*{Elizabeth, I}[I, ``Gloriana'']|\dotfill
-% \Name*{Elizabeth, I}[I, ``Gloriana'']
-%
-% \newpage
-%
-% \item |\ShowNameInfo{Henry}[VIII]| (obsolete syntax)
-% \item[] \ShowNameInfo{Henry}[VIII]
-% \item[] |\Name*{Henry}[VIII]\ddag|\dotfill
-% \Name*{Henry}[VIII]\ddag
-% \item |\ShowNameInfo{Confucius}|
-% \item[]\ShowNameInfo{Confucius}
-% \item[] |\Name*{Confucius}|\dotfill\Name*{Confucius}
+% \item \Name*[J.E.]{Carter, Jr.}[James Earl]\dotfill^^A
+% |\Name*[J.E.]{Carter, Jr.}[James Earl]|
+% \item[] |\ShowNameInfo[J.E.]{Carter, Jr.}[James Earl]|:\\
+% \ShowNameInfo[J.E.]{Carter, Jr.}[James Earl]
+%
+% \item \Name*{Miyazaki, Hayao}[Sensei]\dotfill^^A
+% |\Name*{Miyazaki, Hayao}[Sensei]|
+% \item[] |\ShowNameInfo{Miyazaki, Hayao}[Sensei]|:\\
+% \ShowNameInfo{Miyazaki, Hayao}[Sensei]
+%
+% \item \Name*{Elizabeth, I}[I, ``Gloriana'']\dotfill^^A
+% |\Name*{Elizabeth, I}[I, ``Gloriana'']|
+% \item[] |\ShowNameInfo{Elizabeth, I}[I, ``Gloriana'']|:\\
+% \ShowNameInfo{Elizabeth, I}[I, ``Gloriana'']
+%
+% \item \Name*{Henry}[VIII]\ddag\dotfill |\Name*{Henry}[VIII]\ddag|
+% \item[] |\ShowNameInfo{Henry}[VIII]| (obsolete syntax):\\
+% \ShowNameInfo{Henry}[VIII]
+%
+% \item \Name*{Confucius}\dotfill |\Name*{Confucius}|
+% \item[] |\ShowNameInfo{Confucius}|:\\
+% \ShowNameInfo{Confucius}
% \end{itemize}
%
% For the following examples we activate alternate formatting
-% (Section~\ref{sec:AltFormat}).
+% (Section~\ref{sec:AltFormat}), which permits typesetting more complex name forms seen in European academic writing. This use of small caps may generate harmless font substitution warnings.
%
% \AltFormatActive
% \begin{itemize}\small
-% \item |\ShowNameInfo[John]{\noexpand\de{Strietelmeier}}|
-% \item[]\ShowNameInfo[John]{\noexpand\de{Strietelmeier}}
-% \item[]|\Name* [John]{\noexpand\de{Strietelmeier}|\dotfill\LStriet
-% \item |\ShowNameInfo[Catherine \noexpand\AltCaps{d}e']|\\
-% |{\noexpand\textSC{Medici}}|
-% \item[]\ShowNameInfo[Catherine \noexpand\AltCaps{d}e']
-% {\noexpand\textSC{Medici}}
-% \item[]|\Name [Catherine \noexpand\AltCaps{d}e']|\\
-% |{\noexpand\textSC{Medici}}|\dotfill\Cath
-% \item |\ShowNameInfo[Martin]{\noexpand\textSC{Luther}}|\footnote{In
-% several cases (e.g., here) when one uses small caps, harmless
-% font substitution warnings result.}
-% \item[]\ShowNameInfo[Martin]{\noexpand\textSC{Luther}}
-% \item[]|\Name* [Martin]{\noexpand\textSC{Luther}}|\dotfill\Luth
-% \item Using \cmd{\noexpand} before macros in name arguments
-% ``fixates'' them.
+% \item \ForgetThis\LStriet\\
+% |\ForgetThis\Name[John]{\noexpand\de{Strietelmeier}|
+% \item[] |\ShowNameInfo[John]{\noexpand\de{Strietelmeier}}|:\\
+% \ShowNameInfo[John]{\noexpand\de{Strietelmeier}}
+%
+% \item \Cath\\
+% |\Name[Catherine \noexpand\AltCaps{d}e']{\noexpand\textSC{Medici}}|
+% \item[] |\ShowNameInfo[Catherine \noexpand\AltCaps{d}e']|\\
+% |{\noexpand\textSC{Medici}}|:\\
+% \ShowNameInfo[Catherine \noexpand\AltCaps{d}e']{\noexpand\textSC{Medici}}
+%
+% \item \Luth\\
+% |\Name[Martin]{\noexpand\textSC{Luther}}|
+% \item[] |\ShowNameInfo[Martin]{\noexpand\textSC{Luther}}|:\\
+% \ShowNameInfo[Martin]{\noexpand\textSC{Luther}}
+%
+% \item Using \cmd{\noexpand} before macros in name arguments ``fixates'' them, ensuring consistency (important for name patterns and the index):
% \begin{itemize}
-% \item|\ShowNameInfo[John]{\noexpand\de{Strietelmeier}}|
-% \item[]\ShowNameInfo[John]{\noexpand\de{Strietelmeier}}
-% \item|\ShowNameInfo[John]{\de{Strietelmeier}}|
-% \item[]\footnotesize\ShowNameInfo [John]{\de{Strietelmeier}}
+% \item |\ShowNameInfo[John]{\noexpand\de{Strietelmeier}}|
+% \item[] \ShowNameInfo[John]{\noexpand\de{Strietelmeier}}
+% \item |\ShowNameInfo[John]{\de{Strietelmeier}}|
+% \item[] \footnotesize\ShowNameInfo [John]{\de{Strietelmeier}}
% \end{itemize}
+%
% \item If one uses an undefined macro in the arguments,
% but precedes it with \cmd{\noexpand}, \cmd{\ShowNameInfo}
% will not generate an error.
% \begin{itemize}
-% \item|\ShowNameInfo{\noexpand\SomeUndefinedMacro}|
-% \item\ShowNameInfo{\noexpand\SomeUndefinedMacro}
+% \item |\ShowNameInfo{\noexpand\SomeUndefinedMacro}|
+% \item[] \ShowNameInfo{\noexpand\SomeUndefinedMacro}
% \end{itemize}
% \end{itemize}
% \AltFormatInactive
+% \negbigskip
%
-% \negmedskip
% \NameArgWarning
-% \medskip
%
% \phantomsection
% \label{page:NameState}
@@ -4132,30 +4617,26 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\ShowNameState}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% For example: |\ShowNameState[George]{Washington}| outputs a line of plain text regarding \LWash, which we can typeset any way we like:
-%
-% \begin{quote}\small
-% \hfil\ShowNameState[George]{Washington}.\IndexName[George]{Washington}
-% \end{quote}
-%
-% \newpage
-%
-% The information given includes:
+% \cmd{\ShowNameState} produces a line of text with the following information:
%
% \begin{itemize}
% \item Base name pattern, the base control pattern that
-% \textsf{nameauth} sees.
+% \textsf{nameauth} sees. This would be the output of \cmd{\ShowPattern}.
% \item Type of name, referring to how the name in the argument was parsed.
+%
% \begin{itemize}[leftmargin=3.7em]
% \item[w :] Western (regardless of whether it is reversed)
-% \item[nw :] non-Western (regardless of whether it is reversed)
-% \item[nw,os :] non-Western name, obsolete syntax (Section~\ref{sec:Obsolete})
+% \item[nw :] nonwestern (regardless of whether it is reversed)\\
+% current syntax
+% \item[nw,os :] nonwestern name, obsolete syntax (Section~\ref{sec:Obsolete})
% \end{itemize}
+%
% \item Index state (Section~\ref{sec:RuleStates}) shows what index-related
% options are permissible and how the indexing macros will behave.
% \begin{itemize}[leftmargin=3.7em]
% \item[states :] 1, 2, 3, 4, 5, and 6
% \end{itemize}
+%
% \item All the control systems (Section~\ref{sec:NamePatterns}) that
% the name pattern inhabits.
% \begin{itemize}[leftmargin=4.5em]
@@ -4163,35 +4644,60 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{itemize}
% \end{itemize}
%
-% In the next table we show examples that have indexing states in order from one to six, and we illustrate all name types and control systems. All extant names have index tags because, in a \texttt{dtx} file using the \textsf{ltxdoc} class with \textsf{hypdoc}, one must add a hyperlink to all names in the index (Section~\ref{sec:SpecialTag}). Otherwise, names need not always have a control pattern in the \texttt{idxtag} system.
-%
-% \begin{center}\small\medstretch
-% \begin{tabular}{p{0.4\textwidth}p{0.5\textwidth}}\toprule
-% Name & \cmd{\ShowNameState}\\
-% \rowcolor{nagrey}(\textit{unused in naming macro})\par
-% |\ShowNameState{Not Seen, Yet}| & \ShowNameState{Not Seen, Yet} \\
-% \Name*[Rudolph]{Carnap}\par |\Name*[Rudolph]{Carnap}| &
-% \ShowNameState[Rudolph]{Carnap}\\
-% \rowcolor{nagrey}\Name*{Henry, VIII}\par
-% |\Name*{Henry, VIII}| & \ShowNameState{Henry, VIII}\\
-% \Name*{Henry}[VIII]\ddag\par |\Name*{Henry}[VIII]\ddag| &
-% \ShowNameState{Henry}[VIII]\\
-% \rowcolor{nagrey}\Name*{Thomas, à~Kempis}\par
-% |\Name*{Thomas, à~Kempis}| & \ShowNameState{Thomas, à~Kempis}\\
-% (\textit{unused in naming macro})\par
-% |\IndexRef{Sun King}{Louis XIV}|\IndexRef{Sun King}{Louis XIV}\par
-% |\ShowNameState{Sun King}| & \hbox{}\par \ShowNameState{Sun King}\\
-% \rowcolor{nagrey}\Name*{Sun King}\par
-% |\Name*{Sun King}| & \ShowNameState{Sun King}\\
-% (\textit{unused in naming macro})\ExcludeName{Santa, Claus}\par
-% |\ExcludeName{Santa, Claus}| & \ShowNameState{Santa, Claus}\\
-% \rowcolor{nagrey}\Name*{Thomas,\`a~Kempis}\par
-% |\Name*{Thomas,\`a~Kempis}| & \ShowNameState{Thomas,\`a~Kempis}\\
-% \bottomrule
-% \end{tabular}
-% \end{center}
+% In the next example we show names in indexing states from one to six, and we illustrate all name types and many of the control systems. All extant names have index tags due to being used in a \texttt{dtx} file with the \textsf{ltxdoc} class and the \textsf{hypdoc} package (Section~\ref{sec:SpecialTag}). Otherwise, names need not always have a control pattern in the \texttt{idxtag} system.
%
-% \ReturnLink
+% \begin{itemize}
+% \item Some yet unused name:\dotfill |\ShowNameState{Not Seen, Yet}|\\
+% \ShowNameState{Not Seen, Yet}
+%
+% \item New and extant names:
+% \begin{itemize}
+% \item \Name*[Rudolph]{Carnap}\dotfill |\Name*[Rudolph]{Carnap}|\\
+% \ShowNameState[Rudolph]{Carnap}
+%
+% \item \Name*{Henry, VIII}\dotfill |\Name*{Henry, VIII}|\\
+% \ShowNameState{Henry, VIII}
+%
+% \item \Name*{Henry}[VIII]\ddag\dotfill |\Name*{Henry}[VIII]\ddag|\\
+% \ShowNameState{Henry}[VIII]
+%
+% \item \Name*{Thomas, à~Kempis}\dotfill |\Name*{Thomas, à~Kempis}|\\
+% \ShowNameState{Thomas, à~Kempis}
+% \end{itemize}
+%
+% \item Name used only in xref:\dotfill^^A
+% |\IndexRef{Sun King}{Louis XIV}|\IndexRef{Sun King}{Louis XIV}\\
+% \ShowNameState{Sun King}
+%
+% \item Name used after xref exists:\\
+% \Name*{Sun King}\dotfill |\Name*{Sun King}|\\
+% \ShowNameState{Sun King}
+%
+% \item Unused name excluded from index:\dotfill^^A
+% \ExcludeName{Santa, Claus}|\ExcludeName{Santa, Claus}|\\
+% \ShowNameState{Santa, Claus}
+%
+% \item Previously excluded name gets used:\\
+% \Name*{Thomas,\`a~Kempis}\dotfill |\Name*{Thomas,\`a~Kempis}|\\
+% \ShowNameState{Thomas,\`a~Kempis}
+% \end{itemize}
+% \negbigskip
+%
+% \ReturnLink\smallskip
+%
+% \AltFormatActive
+% \begin{Quote}{\ForgetThis\Luth\break
+% \hbox{}\hfill \textit{\de{Von der Freiheit eines Christenmenschen}} (1520)}
+% \de{Eyn Chriſten menſch iſt eyn freyer herr /
+% u\raise 0.2ex\hbox{\kern -1.1ex\textsuperscript{e}\kern 1pt}ber alle
+% ding / und niemande unterthan. Eyn Chriſten menſch iſt eyn dienſtpar
+% knecht aller ding und yderman unterthan.}
+%
+% (A Christian person is a free lord, above all things, and subject to no one. A Christian person is a willing servant of all things and is subject to
+% everyone.)^^A
+% \index{theologians, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
+% \AltFormatInactive
%
% \newpage
%
@@ -4199,7 +4705,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \label{sec:Indexing}
% \IndexWarnVerbose
%
-% We discuss indexing here because it pulls together all the concepts from the previous sections and applies them to the index instead of the body text.
+% Indexing pulls together all the concepts from the previous sections, yet applies them to the index. In this section we enable (and trigger) verbose index warnings.
%
% \subsection[General Control]{General Indexing Control}
% \label{sec:GeneralIndex}
@@ -4211,13 +4717,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\IndexActive}
% \cmd{\IndexActive} enables indexing. These can be used throughout the document. They do not affect indexing apart from \textsf{nameauth}.
%
-% \vspace{2ex}
-% \Info{Test indexing rules:\break
-% \Name{Yamaha, Torakusu}\label{page:Idx1}\break
-% create index entry:\break
-% \cmd{\IndexName}\break
-% \texttt{\{Nippon Gakki\}}\IndexName{Nippon Gakki}}
-% \vspace{-2ex}
% \begin{itemize}
% \item \cmd{\IndexInactive} broadly suppresses \cmd{\IndexName},
% \cmd{\IndexRef}, and the indexing components of the naming macros,
@@ -4232,14 +4731,23 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \DescribeMacro{\NameauthIndex}
% \LaTeX\ has various ways to produce multiple indexes; see \href{https://www.texfaq.org/FAQ-multind}{\bfseries this page}. \cmd{\NameauthIndex} is the indexing hook defined by default as \cmd{\index}. Users can redefined this hook for use with multiple indexes. Below we use the \textsf{index} package to do this.
+% \vspace{3ex}
+% \Info{\hrule\strut Test indexing rules:\break
+% \Name{Yamaha, Torakusu}\label{page:Idx1}\break
+% create index entry:\break
+% \cmd{\IndexName}\break
+% \texttt{\{Nippon Gakki\}}\IndexName{Nippon Gakki}\strut\hrule}
+% \vspace{-3ex}
%
% \ifdefined\NameauthDoTestFiles \edef\NameauthTestFile{test07_01.tex}\else
% \edef\NameauthTestFile{\jobname.tmp}\fi
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
+%
+% \usepackage{makeidx} % Must have for defining \seealso macro.
% \usepackage{index}
% \usepackage{nameauth}
%
@@ -4258,7 +4766,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
% \end{quote}
%
@@ -4267,10 +4775,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\IndexWarnVerbose}
% As with many of the other options in \textsf{nameauth}, we have added two macros that toggle verbose index warnings like the \texttt{verbose} option (default is terse).
% \DescribeMacro{\IndexWarnTerse}
-% To disable verbose warnings, use \cmd{\IndexWarnTerse}. To enable verbose warnings, use the \texttt{verbose} option or \cmd{\IndexWarnVerbose}. Throughout Section~\ref{sec:Indexing} we enable verbose warnings.\footnote{We both enable verbose warnings, and we deliberately trigger many of them. This helps to test if they are working as expected.}
+% To disable verbose warnings, use \cmd{\IndexWarnTerse}. To enable verbose warnings, use the \texttt{verbose} option or \cmd{\IndexWarnVerbose}. Throughout Section~\ref{sec:Indexing} we enable verbose warnings.
%
-% \newpage
-%
% \cmd{\IndexWarnVerbose}\Info{\cmd{\global}} and \cmd{\IndexWarnTerse} can be used as a pair or singly within a group. They have the same priority as the \texttt{verbose} option, but they do not affect what is displayed in the document. Use \cmd{\global} to force a global effect.
%
% \subsubsection{Index Protection}
@@ -4278,12 +4784,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\IndexProtect}
% This macro prevents naming macros from producing output, both in the text and in the index. It is local in scope. Its primary use is to prevent errors in the index, in case the naming macros get passed as arguments to themselves or passed into index entries by mistake. The core naming engine uses internal locks to protect against this problem in the text.
%
-% \vspace{3ex}
-% \Info{Test indexing rules:\break
-% \Name{Yamaha, Torakusu}\label{page:Idx2}}
-% \vspace{-3ex}
% One can use \cmd{\IndexProtect} right before \cmd{\printindex} to protect the index against bogus output. For example:
%
+% \vspace{4ex}
+% \Info{\hrule\strut Test indexing rules:\break
+% \Name{Yamaha, Torakusu}\label{page:Idx2}\strut\hrule}
+% \vspace{-4ex}
% \begin{itemize}
% \item |\Name{foo\Name{bar}}| in the text generates \Name{foo\Name{bar}}.
% Notice that the internal locks prevent |\Name{bar}| from producing
@@ -4314,7 +4820,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\IndexName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% 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]. The points below deal with macros explained in Section~\ref{sec:IdxPrefix}.
+% 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 nonwestern syntax (Section~\ref{sec:Obsolete}). Indexing follows [\hyperlink{Mulvany}{Mulvany}, 152--82]. The points below deal with macros explained in Section~\ref{sec:IdxPrefix}.
%
% \begin{itemize}
% \item \cmd{\IndexName} obeys both \cmd{\IndexInactive} and
@@ -4335,7 +4841,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Cross-References}
% \label{sec:IndexRef}
%
-% Index cross-references have two kinds. \textit{See} references only point from a name to other name entries containing page references. \textit{See also} references occur at the end of an entry with page references or subentries.
+% Index cross-references have two kinds. \textit{See} references only point from a name to other name entries containing page entries. \textit{See also} references occur at the end of an entry with page entries or sub-entries.
%
% \subsubsection[Basic Macro]{Basic Macros for Both Kinds of Xrefs}
%
@@ -4349,21 +4855,21 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Affix}\oarg{Alternate}\marg{Target}
% \end{SyntaxBox}
%
-% Although it might be redundant to point this out, in practice, when using \cmd{\IndexName} and \cmd{\IndexRef}, one can forget that the latter has four arguments, at least two of which are required. Missing text and bad xrefs can result.
+% Although it might be redundant to point this out, in practice, when using \cmd{\IndexName} and \cmd{\IndexRef}, one might forget that the latter has four arguments, at least two of which are required. Missing text and bad xrefs can result.
%
% \begin{itemize}
% \item Define \textit{see} references \emph{before} making any
-% \cmd{\Name} references to them.
+% \cmd{\Name} entries for them.
% \vspace{-1ex}
-% \Info{Test indexing rules:\break
+% \Info{\hrule\strut Test indexing rules:\break
% Creating \textit{see also} xref\break\footnotesize
% \cmd{\SeeAlso}\cmd{\IndexRef}\break\ttfamily
% \{Yamaha, Torakusu\}\break
% \{Nippon Gakki\}\SeeAlso\IndexRef{Yamaha, Torakusu}{Nippon Gakki}^^A
-% \label{page:Idx3}}
+% \label{page:Idx3}\strut\hrule}
% \vspace{1ex}
% \item Define \textit{see also} references \emph{after} all
-% \cmd{\Name} references to the respective names have been created.
+% \cmd{\Name} instances to the respective names have been created.
% \item \cmd{\IndexRef} will not alter or repeat extant cross-references.
% \item \cmd{\IndexRef} will not cross-reference names excluded
% by \cmd{\ExcludeName}.
@@ -4382,7 +4888,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \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}\small
+% \begin{quote}
% \vspace{3ex}
% \Info{\strut\footnotesize Name Pattern(s):\hfill
% \break\ttfamily\ShowPattern{Sun King}!PN}
@@ -4396,7 +4902,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \cmd{\IndexRef} 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 the following example, or create manual index entries:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{tabular}{ll}
% source: & |\IndexRef{bar}{baz; foo}|\\[0.5ex]
% index: & bar, \textit{see} baz; foo\\
@@ -4408,7 +4914,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsubsection[Fine Control]{Fine Control of Xref Logic}
% \label{sec:IdxFine}
%
-% Here we show how the index control logic pertinent to cross-references can be extended to establish fine-grained control that can exclude or include names.\medskip
+% Here we show how the index control logic pertinent to cross-references can be extended to establish fine-grained control that can exclude or include names.
%
% \DescribeMacro{\ExcludeName}
% We can prevent a name from being used as either an index entry or as an index cross-reference. This macro will not exclude extant cross-references:
@@ -4417,16 +4923,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\ExcludeName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% Unlike \cmd{\IndexInactive} and \cmd{\IndexActive}, which globally prevent and permit indexing, \cmd{\ExcludeName} 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:NameParticles} and \ref{sec:VarNames}. Indexing remains active:
+% Unlike \cmd{\IndexInactive} and \cmd{\IndexActive}, which prevent and permit all indexing, \cmd{\ExcludeName} only excludes a specific name from being printed as a page entry or cross-reference in the index. See the following example, as well as examples in Sections~\ref{sec:NameParticles} and \ref{sec:VarNames}. Indexing remains active:
%
% \begin{VerbatimOut}{\jobname.tmp}
% \ExcludeName{Mr. Baseball}
-% In this example we cannot get page references for
+% In this example we cannot get page entries for
% \Name{Mr. Baseball}, the nickname of
% \Name[Bob]{Uecker}, because it was excluded.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{3ex}
% \PatInfo{\ShowPattern{Mr. Baseball}!PN\break
% \ShowPattern[Bob]{Uecker}!MN}
@@ -4437,7 +4943,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{quote}
%
% \DescribeMacro{\IncludeName}
-% Use these macros to break a few indexing rules. They remove the protections used for exclusion and cross-referencing.
+% Use the following macros to break a few indexing rules. They remove protections used for exclusion and cross-referencing.
% \DescribeMacro{\IncludeName*}
% They have the same syntax as \cmd{\ExcludeName}:
%
@@ -4446,146 +4952,156 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\IncludeName*}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% \cmd{\IncludeName} removes an exclusion attached to a name by \cmd{\ExcludeName}. \cmd{\IncludeName*} completely erases both exclusion and cross-reference information. Once that protection is removed, one can create page references to a name in the index that had been used as a cross-reference.
+% \cmd{\IncludeName} removes an exclusion attached to a name by \cmd{\ExcludeName}. \cmd{\IncludeName*} completely erases both exclusion and cross-reference information. Once that protection is removed, one can create page entries to a name in the index that had been used as a cross-reference.
%
+% Analogously, \cmd{\ForgetName} (Section~\ref{sec:NameControl}) removes name control patterns, allowing one to create a cross-reference. Section~\ref{sec:RuleStates} explains this behavior as a set of states. Below we run some tests (cf. Section~\ref{sec:NameTests}) and produce a few warnings because verbose warnings are active here.
% \vspace{3ex}
-% \Info{Test indexing rules:\break \Name{Yamaha, Torakusu}\label{page:Idx4}}
+% \Info{\hrule\strut Test indexing rules:\break
+% \Name{Yamaha, Torakusu}\label{page:Idx4}\strut\hrule}
% \vspace{-3ex}
-% Analogously, \cmd{\ForgetName} (Section~\ref{sec:NameControl}) removes name control patterns, allowing one to create a cross-reference. Section~\ref{sec:RuleStates} explains this behavior as a set of states. Below we run some tests (cf. Section~\ref{sec:NameTests}) and produce a few warnings because verbose warnings are active here.
%
+% \begin{VerbatimOut}{\jobname.tmp}
% \begin{itemize}
% \item \Name*{Mr. Baseball} is
-% \IfAKA{Mr. Baseball}{\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
-% The test used was:
-% \item[] |\IfAKA{Mr. Baseball}{|\meta{an xref}|}{|\meta{a name}^^A
-% |}{|\meta{excluded}|}|
-% \item We now try |\IndexRef{Mr. Baseball}{Uecker, Bob}|^^A
-% \IndexRef{Mr. Baseball}{Uecker, Bob}.
+% \IfAKA{Mr. Baseball}
+% {\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
+%
+% \item Making an xref fails.\IndexRef{Mr. Baseball}{Uecker, Bob}
% \Name*{Mr. Baseball} is still
-% \IfAKA{Mr. Baseball}{\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
-% No cross-reference was created.
-% \item Using |\IncludeName{Mr. Baseball}|\IncludeName{Mr. Baseball}
-% makes it
-% \IfAKA{Mr. Baseball}{\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
-% Now we could create page entries with a naming macro, but we
-% do not do so.
-% \item Instead, we use
-% |\ForgetName{Mr. Baseball}|\ForgetName{Mr. Baseball} to destroy
-% the name pattern, the control sequence that governs the name.
-% It is now
% \IfAKA{Mr. Baseball}
-% {\meta{an xref}}
-% {\IfMainName{Mr. Baseball}{\meta{extant}}
-% {\IfFrontName{Mr. Baseball}
-% {\meta{extant}}{\meta{destroyed}}^^A
-% }^^A
-% }
-% {\meta{excluded}}.
-% \item |\IndexRef{Mr. Baseball}{Uecker, Bob}|^^A
-% \IndexRef{Mr. Baseball}{Uecker, Bob} creates
-% \IfAKA{Mr. Baseball}{\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
-% \end{itemize}
+% {\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
%
-% \newpage
+% \item The inclusion macro\IncludeName{Mr. Baseball} makes it
+% \IfAKA{Mr. Baseball}
+% {\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
+% Now we could create page entries with a naming macro.
+%
+% \item Instead, we forget the name\ForgetName{Mr. Baseball}
+% to destroy the name pattern that governs the name. It is now
+% \IfAKA{Mr. Baseball}
+% {\meta{an xref}}
+% {\IfMainName{Mr. Baseball}{\meta{extant}}
+% {\IfFrontName{Mr. Baseball}{\meta{extant}}
+% {\meta{destroyed}}}}
+% {\meta{excluded}}.
%
-% Cross-references get more protection. We have seen
-% \DropAffix\LJRIV[Jay] indexed under
-% ``\ShowIdxPageref*[J.D.]{Rockefeller, IV}'' with
-% |\DropAffix\LJRIV[Jay]|.
-% We create the following cross-reference:
-% \IndexRef[Jay]{Rockefeller}{Rockefeller, J.D., IV}^^A
-% |\IndexRef[Jay]{Rockefeller}{Rockefeller, J.D., IV}|.
-% \vspace{-6ex}
+% \item Making another xref\IndexRef{Mr. Baseball}{Uecker, Bob} creates
+% \IfAKA{Mr. Baseball}
+% {\meta{an xref}}{\meta{a name}}{\meta{excluded}}.
+% \end{itemize}
+% \end{VerbatimOut}
+%
+% \begin{quote}
+% \VerbatimInput[gobble=0]{\jobname.tmp}
+%
+% \input{\jobname.tmp}
+% \end{quote}
+%
+% Cross-references get more protection than exclusions:
+% \vspace{-1ex}
% \PatInfo{\ShowPattern[J.D.]{Rockefeller, IV}!MN\break
% \ShowPattern[Jay]{Rockefeller}!PN\break
% \ShowPattern[Jay]{Rockefeller}!MN}
-% \vspace{6ex}
+% \vspace{1ex}
+% \begin{VerbatimOut}{\jobname.tmp}
% \begin{itemize}
-% \item
-% \cmd{\IfAKA[Jay]\{Rockefeller\}}|{|\meta{xref}|}{|\meta{name}|}{}|
-% calls \SJRIV[Jay] an
+% \item \DropAffix\LJRIV[Jay] was indexed as
+% ``\ShowIdxPageref*[J.D.]{Rockefeller, IV}.
+%
+% \item We create the
+% xref\IndexRef[Jay]{Rockefeller}{Rockefeller, J.D., IV}.
+%
+% \item The test calls \SJRIV[Jay] an
% \IfAKA[Jay]{Rockefeller}{\meta{xref}}{\meta{name}}{}.
-% \item After
-% |\IncludeName[Jay]{Rockefeller}|\IncludeName[Jay]{Rockefeller}
+%
+% \item After being ``included''\IncludeName[Jay]{Rockefeller}
% he still is an
% \IfAKA[Jay]{Rockefeller}{\meta{xref}}{\meta{name}}{}.
-% \item After
-% |\IncludeName*[Jay]{Rockefeller}|\IncludeName*[Jay]{Rockefeller}
-% he may be a \IfAKA[Jay]{Rockefeller}{\meta{xref}}{\meta{name}}{}.
-% \item Now \cmd{\Name[Jay]\{Rockefeller\}} can create page entries.
+%
+% \item After ``forced inclusion''\IncludeName*[Jay]{Rockefeller}
+% he can be a \IfAKA[Jay]{Rockefeller}{\meta{xref}}{\meta{name}}{}
+% and create page entries.
% \end{itemize}
+% \end{VerbatimOut}
+%
+% \begin{quote}
+% \VerbatimInput[gobble=0]{\jobname.tmp}
+%
+% \input{\jobname.tmp}
+% \end{quote}
%
-% \negmedskip
% \begin{InfoBox}
-% Using \cmd{\IncludeName*} is necessary when creating index sub-entries for a name using \cmd{\IndexTag}. If one creates a cross-reference in any sub-entry of a name, \cmd{\IncludeName*} will permit additional page references to be made for the other sub-entries of that name or for the name itself. See Section~\ref{sec:CatSub}.
+% Using \cmd{\IncludeName*} is necessary when creating index sub-entries for a name using \cmd{\IndexTag}. If one creates a cross-reference in any sub-entry of a name, \cmd{\IncludeName*} will permit additional page entries to be made for the other sub-entries of that name or for the name itself. See Section~\ref{sec:CatSub}.
% \end{InfoBox}
%
% \subsection[Prefix Macros]{Prefix Macros Used for Indexing}
% \label{sec: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}.\medskip
+% 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}.
%
% \DescribeMacro{\SeeAlso}
% Put \cmd{\SeeAlso} before \cmd{\IndexRef}, \cmd{\AKA}, and \cmd{\PName} (Section~\ref{sec:AKA}) to make a \textit{see also} reference for a name that has appeared already in the index. 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.
+% \vspace{3ex}
+% \Info{\hrule\strut Test indexing rules:\break
+% \Name{Nippon Gakki}\label{page:Idx5}\strut\hrule}
+% \vspace{-3ex}
%
% \begin{VerbatimOut}{\jobname.tmp}
% One can refer to \Name[the]{Rat Pack} as a group of entertainers
% including \Name[Sammy]{Davis, Jr.}, \Name[Dean]{Martin}, and
-% \Name[Frank]{Sinatra}. No more page references to
+% \Name[Frank]{Sinatra}. No more page entries for
% \Name*[the]{Rat Pack} will occur after this line, and a
% \textit{see also} xref will exist.
% \SeeAlso\IndexRef[the]{Rat Pack}
% {Davis, Sammy, Jr.; Martin, Dean; Sinatra, Frank}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
% \end{quote}
%
-% \leavevmode\Info{Test indexing rules:\break
-% \Name{Nippon Gakki}\label{page:Idx5}}
-% Currently \cmd{\IndexName} and other \textsf{nameauth} macros that create index entries will reset the Boolean flag governed by \cmd{\SeeAlso} unless one uses the \texttt{oldreset} option. preventing a stray use of the macro from affecting the index.\medskip
+% Currently \cmd{\IndexName} and other \textsf{nameauth} macros that create index entries will reset the Boolean flag governed by \cmd{\SeeAlso} unless one uses the \texttt{oldreset} option. preventing a stray use of the macro from affecting the index.
%
% \DescribeMacro{\SkipIndex}
% The prefix macro \cmd{\SkipIndex} will suppress indexing for just one instance of a name displayed by a naming macro. |\SkipIndex\Name[Monty]{Python}| produces \SkipIndex\Name[Monty]{Python} in the text, but with no index entry. \cmd{\SkipIndex} works with the naming macros. Side effects include:
%
% \begin{itemize}
% \item Unless the \texttt{oldreset} option is used, 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}
-% and \cmd{\PName*} issue warnings when {\ttfamily
-% \string \if@nameauth@SkipIndex} is true on exit.
+% and \cmd{\IndexRef} issue warnings if \cmd{\SkipIndex} precedes them.
+% Then, both \cmd{\IndexName} and \cmd{\IndexRef} ignore \cmd{\SkipIndex}
+% and reset its flag.
+%
+% \item When the \texttt{oldreset} option is used, both \cmd{\PName}
+% and \cmd{\PName*} issue warnings when
+% {\ttfamily \string \if@nameauth@SkipIndex} is true on exit.
% \end{itemize}
%
% \DescribeMacro{\JustIndex}
% This prefix macro makes \cmd{\Name}, \cmd{\Name*}, \cmd{\FName}, and the quick interface shorthand macros act similar to \cmd{\IndexName}. \cmd{\JustIndex} suppresses name output in the text, but flags for long and first name forms are reset as if the naming macro had produced output. Using the \texttt{oldreset} option prevents these flags from being reset, completely mimicking a call to \cmd{\IndexName}.
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{lll}\toprule
-% Option & Source & Output\\
-% \rowcolor{nagrey}default & |\JustIndex\SWash \Wash| &
-% \JustIndex\SWash \Wash \hphantom{ George}\\
-% default & |\JustIndex\LWash \Wash| & \JustIndex\LWash \Wash\\
-% \rowcolor{nagrey}\ttfamily oldpass & |\JustIndex\SWash \Wash| &
-% \JustIndex\SWash \Wash\\
-% \ttfamily oldpass & |\JustIndex\LWash \Wash| &
-% \JustIndex\LWash \Wash\\\bottomrule
+% \rowcolor{nagrey}^^A
+% \bfseries Option & \bfseries Output & \bfseries Source\\
+%
+% default & \JustIndex\SWash \Wash & |\JustIndex\SWash \Wash|\\
+%
+% default & \JustIndex\LWash \Wash & |\JustIndex\LWash \Wash|\\
+%
+% \rowcolor{nagrey}^^A
+% \makeatletter\global\@nameauth@OldPasstrue\makeatother^^A
+% \ttfamily oldpass & \JustIndex\SWash \Wash &
+% |\JustIndex\SWash \Wash|\\
+% \rowcolor{nagrey}^^A
+% \ttfamily oldpass & \JustIndex\LWash \Wash &
+% |\JustIndex\LWash \Wash|\\\bottomrule
+% \makeatletter\global\@nameauth@OldPassfalse\makeatother^^A
% \end{tabular}
-% \vspace{-15ex}\PatInfo{\ShowPattern[George]{Washington}!MN}\vspace{15ex}
+% \vspace{-16ex}\PatInfo{\ShowPattern[George]{Washington}!MN}\vspace{14ex}
% \end{center}
%
-% \phantomsection
-% \vspace{1ex}
-% \Info{Test indexing rules:\break
-% Creating \textit{see} xref\break\footnotesize
-% \cmd{\IndexRef}\ttfamily \{Nippon Gakki\}\break
-% \{Yamaha Corp.\}^^A
-% \IndexRef{Nippon Gakki}{Yamaha Corp.}^^A
-% \label{page:Idx6}}
-% \vspace{-1ex}
% There are potential side effects related to \cmd{\JustIndex}:
%
% \begin{itemize}
@@ -4594,19 +5110,26 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\@nameauth@JustIndexfalse}.
% \item \cmd{\JustIndex} resets the flags set by \cmd{\ForgetThis}
% and \cmd{\SubvertThis}, preventing them from passing through.
-% \item The following three lines are equivalent. According to
-% Section~\ref{sec:Priorities}, \cmd{\JustIndex} takes priority
-% with \cmd{\Name\{A\}} and passes \cmd{\SkipIndex} to
-% \cmd{\Name\{B\}}.
-%
-% \begin{quote}\small
-% \cmd{\JustIndex} \cmd{\SkipIndex} \cmd{\Name\{A\}} \cmd{\Name\{B\}}\\
-% \cmd{\SkipIndex} \cmd{\JustIndex} \cmd{\Name\{A\}} \cmd{\Name\{B\}}\\
-% \cmd{\JustIndex} \cmd{\Name\{A\}} \cmd{\SkipIndex} \cmd{\Name\{B\}}
-% \end{quote}
-%
-% \item One cannot use \cmd{\JustIndex} and the naming macros in place
-% of \cmd{\IndexRef}.
+% \item The following three lines are equivalent:
+% \begin{itemize}
+% \phantomsection
+% \Info{\hrule\strut Test indexing rules:\break
+% Creating \textit{see} xref\break\footnotesize
+% \cmd{\IndexRef}\ttfamily \{Nippon Gakki\}\break
+% \{Yamaha Corp.\}^^A
+% \IndexRef{Nippon Gakki}{Yamaha Corp.}^^A
+% \label{page:Idx6}\strut\hrule}
+% \item\cmd{\JustIndex} \cmd{\SkipIndex}
+% \cmd{\Name\{A\}} \cmd{\Name\{B\}}
+% \item\cmd{\SkipIndex} \cmd{\JustIndex}
+% \cmd{\Name\{A\}} \cmd{\Name\{B\}}
+% \item\cmd{\JustIndex} \cmd{\Name\{A\}}
+% \cmd{\SkipIndex} \cmd{\Name\{B\}}
+% \end{itemize}
+% \cmd{\JustIndex} takes priority with \cmd{\Name\{A\}} and passes
+% \cmd{\SkipIndex} to \cmd{\Name\{B\}}
+% (see also Section~\ref{sec:Priorities}).
+% \item \cmd{\JustIndex} and the naming macros do not replace \cmd{\IndexRef}.
% \end{itemize}
%
% \subsection{Automatic Rules}
@@ -4614,36 +5137,46 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% Below we indicate what to expect regarding index rules in any given state. Here we do not attempt to concatenate page ranges. Above, we put a series of names and cross-references in margin notes, Here is the result:
%
-% \begin{center}\footnotesize\smallstretch
+% \begin{center}\footnotesize
% \begin{tabular}{rp{0.3\textwidth}p{0.5\textwidth}}\toprule
-% Page & Macro & Index Result\\
-% \rowcolor{nagrey}\pageref{page:Idx1} &
+% \rowcolor{nagrey}^^A
+% \bfseries Page & \bfseries Macro & \bfseries Index Result\\
+%
+% \pageref{page:Idx1} &
% \cmd{\Name\{Yamaha, Torakusu\}}\par
% \cmd{\IndexName\{Nippon Gakki\}} &
% \ShowIdxPageref*{Yamaha, Torakusu}, \pageref{page:Idx1}\par
% \ShowIdxPageref*{Nippon Gakki}, \pageref{page:Idx1}\\
-% \pageref{page:Idx2} &
+%
+% \rowcolor{nagrey}^^A
+% \pageref{page:Idx2} &
% \cmd{\Name\{Yamaha, Torakusu\}} &
% \ShowIdxPageref*{Yamaha, Torakusu}, \pageref{page:Idx1},
% \pageref{page:Idx2}\par
% \ShowIdxPageref*{Nippon Gakki}, \pageref{page:Idx1}\\
-% \rowcolor{nagrey}\pageref{page:Idx3} &
+%
+% \pageref{page:Idx3} &
% \cmd{\SeeAlso}\cmd{\IndexRef\{Yamaha,}\par
% \texttt{Torakusu\}\{Nippon Gakki\}} &
% \ShowIdxPageref*{Yamaha, Torakusu}, \pageref{page:Idx1},
% \pageref{page:Idx2} \textit{see also} Nippon Gakki\par
% \ShowIdxPageref*{Nippon Gakki}, \pageref{page:Idx1}\\
-% \pageref{page:Idx4} &
+%
+% \rowcolor{nagrey}^^A
+% \pageref{page:Idx4} &
% \cmd{\Name\{Yamaha, Torakusu\}} &
% \ShowIdxPageref*{Yamaha, Torakusu}, \pageref{page:Idx1},
% \pageref{page:Idx2} \textit{see also} Nippon Gakki\par
% \ShowIdxPageref*{Nippon Gakki}, \pageref{page:Idx1}\\
-% \rowcolor{nagrey}\pageref{page:Idx5} &
+%
+% \pageref{page:Idx5} &
% \cmd{\Name\{Nippon Gakki\}} &
% \ShowIdxPageref*{Yamaha, Torakusu}, \pageref{page:Idx1},
% \pageref{page:Idx2} \textit{see also} Nippon Gakki\par
% \ShowIdxPageref*{Nippon Gakki}, \pageref{page:Idx1}, \pageref{page:Idx5}\\
-% \pageref{page:Idx6} &
+%
+% \rowcolor{nagrey}^^A
+% \pageref{page:Idx6} &
% \cmd{\IndexRef\{Nippon Gakki\}}\par \texttt{\{Yamaha Corp.\}} &
% \ShowIdxPageref*{Yamaha, Torakusu}, \pageref{page:Idx1},
% \pageref{page:Idx2} \textit{see also} Nippon Gakki\par
@@ -4669,7 +5202,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% are generated.
% \item On page \pageref{page:Idx3}^^A
% \PatInfo{\ShowPattern{Yamaha,Torakusu}!PN}
-% we create a \textit{see also} cross reference from
+% we create a \textit{see also} cross-reference from
% \Name*{Yamaha, Torakusu} to the name \Name{Nippon Gakki}. Now a
% cross-reference pattern exists for Mr. \Name{Yamaha, Torakusu}.
% We can no longer create index page entries for him.
@@ -4683,7 +5216,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% that does not restrict the ability to make page entries for it.
% \item On page \pageref{page:Idx6}^^A
% \PatInfo{\ShowPattern{Yamaha Corp.}!MN}
-% we attempt to create a \textit{see} cross reference from
+% we attempt to create a \textit{see} cross-reference from
% \Name{Nippon Gakki} to the name \Name{Yamaha Corp.}. (Notice that
% the extra full stop in the text gets gobbled.) That fails because,
% unlike a \textit{see also} reference, a \textit{see} reference
@@ -4702,11 +5235,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\IndexActual}
% Using \cmd{\index\{}\meta{sort key}\texttt{@}\meta{actual}\texttt{\}} works with both \texttt{makeindex} and \texttt{texindy}. 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 creating index entries with the naming macros. \cmd{\PretagName} does not care about the ``actual'' character, but it provides the information that is automatically added after that character. \medskip
+% 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 creating index entries with the naming macros. \cmd{\PretagName} does not care about the ``actual'' character, but it provides the information that is automatically added after that character.
%
% 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
+% \begin{quote}
% \vspace{4ex}
% \PatInfo{\ShowPattern{Ægidius}!PRE}
% \vspace{-4ex}
@@ -4748,7 +5281,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \vspace{-2ex}
% 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 throughout the document. For example:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \PretagName{Æthelred, II}{Aethelred 2}
% \PretagName[W.E.B.]{Du~Bois}{Dubois, William}
@@ -4768,7 +5301,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \Name{\textit{Doctor angelicus}}.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% {\ttfamily\ShowPattern{\textit{Doctor angelicus}}!PRE\\
% \ShowPattern{\textit{Doctor angelicus}}!PN\\
% \ShowPattern{Thomas, Aquinas}!MN\\
@@ -4776,45 +5309,68 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
-% \input{\jobname.tmp}
+% \IndexRef{\textit{Doctor angelicus}}{Thomas Aquinas}
+%
+% Perhaps the greatest medieval theologian was
+% \Name{Thomas, Aquinas}, later known as
+% \Name{\textit{Doctor angelicus}}.
% \end{quote}
%
-% If we had wanted \Name{\textit{Doctor angelicus}} to have page entries and a \textit{see also} reference, we would have omitted line~2 above, waited until the end of the body text, after both names were fully indexed, and then used the following:
+% To give \Name{\textit{Doctor angelicus}} page entries and a \textit{see also} reference, we omit line~2 above, wait until the end of the body text, after both names are fully indexed, and then use:
+% \fbox{\cmd{\SeeAlso}\cmd{\IndexRef\{}\cmd{\textit\{Doctor angelicus\}\}\{Thomas Aquinas\}}}.
%
-% \begin{quote}\small
-% |\SeeAlso\IndexRef{\textit{Doctor angelicus}}{Thomas Aquinas}|
-% \end{quote}
+% \subsubsection*{\hfil Name Particles}
%
-% Spaces change sorting. For example, the\Info{Particles} sort tag \texttt{De\textvisiblespace Soto} precedes \texttt{deal} due to the space therein. The sort tag \texttt{DeSoto} falls as expected between \texttt{derp} and \texttt{determinism}.
+% Spaces change sorting. For example, the sort tag \texttt{De\textvisiblespace Soto} precedes \texttt{deal} due to the space therein. The sort tag \texttt{DeSoto} falls as expected between \texttt{derp} and \texttt{determinism}.
%
-% \newpage
+% \subsubsection*{\hfil Collating Sequences}
+%
+% 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}.
+%
+% \subsubsection*{\hfil Alternate Formatting}
+%
+% Additional examples starting with Section~\ref{sec:RealAltEx} deal with index sorting as it relates to alternate formatting, ``Continental'' practice, and macros in name arguments. Please ensure that such macros expand to the form desired in the index in order to get proper sorting with \cmd{\PretagName}.
%
-% German\Info{Collating\break sequences} \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}.
+% \begin{Quote}{\Name[Publius]{Vegetius Renatus}, \textit{De re militari} (c. 390)}
+% Igitur qui desiderat pacem, praeparet bellum.
%
-% Additional examples\Info{Alternate\break formatting} starting with Section~\ref{sec:RealAltEx} deal with index sorting as it relates to alternate formatting and ``Continental'' practice. When sorting names that use alternate formatting or macros in name arguments, please ensure that the macros expand to the form desired in the index. If one is not using built-in macros related to alternate formatting, additional steps might be required when using \cmd{\PretagName} with names containing macros.
+% (Accordingly, the person who would desire peace prepares for war.)^^A
+% \index{Romans, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
%
% \subsubsection{Sorting Initials}
% \label{sec:IndexInitials}
-%
-% Sorting \Name*[J.D.]{Rockefeller, IV} |\Name*[J.D.]{Rockefeller, IV}| presents a problem that does not occur with \Name*[Clive Staples]{Lewis} |\Name*[Clive Staples]{Lewis}|. In the case of \Name*[J.D.]{Rockefeller, IV}[Jay], the initials will appear in the index, while with \Name*[Clive Staples]{Lewis}[C.S.], the longer names will appear in the index.
+% \negbigskip
%
% \begin{InfoBox}
% In order to sort the index consistently and properly, all names
% should be sorted by their longer name forms, not their initials.
% \end{InfoBox}
%
+% Sorting \Name*[J.D.]{Rockefeller, IV} |\Name*[J.D.]{Rockefeller, IV}| presents a problem that does not occur with \Name*[Clive Staples]{Lewis} |\Name*[Clive Staples]{Lewis}|. In the case of \Name*[J.D.]{Rockefeller, IV}[Jay], the initials will appear in the index, while with \Name*[Clive Staples]{Lewis}[C.S.], the longer names will appear in the index.
+%
% In \textsf{nameauth} we have a specific way to do that once per name, and all the remaining names will be sorted as expected. Before we use a name like \Name[J.D.]{Rockefeller, IV}, preferably in the preamble, we use the following macro:
%
-% \begin{quote}\small
+% \begin{quote}
% |\PretagName[J.D.]{Rockefeller, IV}{Rockefeller, John D 4}|
+%
+% \begin{itemize}
+% \item The index entry is ``\ShowIdxPageref*[J.D.]{Rockefeller, IV}''.
+%
+% \item In the ``pretag'' we spell out the first forename
+% and add enough of the second to get a unique sorting key.
+%
+% \item We turn the Roman numeral affix into an Arabic numeral
+% so that it does not sort like letters.
+% \end{itemize}
% \end{quote}
%
-% Notice that we follow the form of the index entry, which will be ``\ShowIdxPageref*[J.D.]{Rockefeller, IV}''. We spell out the first forename, leave enough of the second forename for sorting, and turn the Roman numeral affix into an Arabic numeral so that it does not sort like alphabetic letters. For more examples of handling alternate forms of surnames see Sections~\ref{sec:NameMedieval}, \ref{sec:VarNames}, all subsections of Section~\ref{sec:AdvancedFormat}, and~\ref{sec:AdvCustomize}.
+% For more examples of handling alternate forms of surnames see Sections~\ref{sec:NameMedieval}, \ref{sec:VarNames}, all subsections of Section~\ref{sec:AdvancedFormat}, and~\ref{sec:AdvCustomize}.
%
% \subsection{Index Tags}
% \label{sec:IndexTag}
%
-% Index info tags (``index tags'') are information added automatically to index page entries for names used with \textsf{nameauth} macros.
+% Index data tags are information added automatically to index page entries for names used with \textsf{nameauth} macros.
%
% \subsubsection{General Approach}
%
@@ -4830,7 +5386,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% 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\smallstretch
+% \begin{center}
% \begin{tabular}{r|l|l|l}\toprule
% & & Naming macros\\
% & \cmd{\PretagName} & \cmd{\IndexName}\\
@@ -4841,29 +5397,27 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{tabular}
% \end{center}
%
-% Tags created by \cmd{\TagName} can be \Info{Scholarly texts}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:
+% Tags 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
+% {\ttfamily\fbox{\textvisiblespace the Great, pope}}
+% to the index entries created in the next example:
%
-% \begin{VerbatimOut}{\jobname.tmp}
-% \TagName{Gregory, I}{, pope}
-% Pope \Name*{Gregory, I} was known as \Name{Gregory, I}
-% ``the Great''.\IndexRef{Gregory, the Great}{Gregory I}
-% \end{VerbatimOut}
-%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{3.5ex}
% \PatInfo{\ShowPattern{Gregory, I}!TAG\break
-% \ShowPattern{Gregory, I}!MN\break
-% \ShowPattern{Gregory, the Great}!PN}
+% \ShowPattern{Gregory, I}!MN}
% \vspace{-3.5ex}
-% \VerbatimInput[gobble=0]{\jobname.tmp}
+% \begin{Verbatim}
+% \TagName{Gregory, I}{ the Great, pope}
+% Pope \Name*{Gregory, I} was known as \Name*{Gregory, I}
+% [the Great].
+% \end{Verbatim}
%
-% Pope \Name*{Gregory, I} was known as \Name{Gregory, I}
-% ``the Great''.\IndexRef{Gregory, the Great}{Gregory I}
+% Pope \Name*{Gregory, I} was known as \Name*{Gregory, I}
+% [the Great].
% \end{quote}
%
-% \cmd{\TagName} works with all names that produce index page entries. It does not work with with cross-references that are produced by \cmd{\IndexRef}, \cmd{\AKA}, etc.
-%
-% Tags can hold different kinds of information, but they should not be overly verbose. They can include 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.
+% See Section~\ref{sec:NameAncient} for more ways to deal with ancient names. \cmd{\TagName} works with all names that produce index page entries. It does not work with with cross-references produced by \cmd{\IndexRef}, \cmd{\AKA}, etc.
+% Tags can hold different kinds of information, but they should not be verbose. They can include 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.
%
% \subsubsection[Identical Names]{Disambiguating Identical Names}
%
@@ -4879,7 +5433,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \ForgetThis\Name[E.]{Humperdinck}[Engelbert].
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{4ex}
% \PatInfo{\ShowPattern[E.]{Humperdinck}!TAG\break
% \ShowPattern[E.]{Humperdinck}!MN}
@@ -4906,24 +5460,25 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\TagName}\meta{name args}\texttt{\{\textbar}\meta{macro}\texttt{\}}
% \end{SyntaxBox}
%
-% When \Warn\ using the \textsf{ltxdoc} class with \textsf{hypdoc}, as in this manual, \textsf{nameauth} does not create hyperlinked page entries. If one puts index tags in the |<driver>| section of the \texttt{dtx} file, which will read the ``commented''part of the \texttt{dtx} file into a \texttt{document} environment, then one can use the following:
+% When \Warn\ using the \textsf{ltxdoc} class with \textsf{hypdoc}, as in this manual, neither \textsf{nameauth} nor regular use of \cmd{\index} creates hyperlinked page entries. Index data tags in the |<driver>| section of the \texttt{dtx} file, which reads the ``commented'' part of the \texttt{dtx} file into a \texttt{document} environment, take the form:
%
-% \begin{quote}\small
+% \begin{quote}
% \cmd{\TagName}\meta{name args}\texttt{\{\textbar hyperpage\}}
% \end{quote}
%
-% Things get more complicated in the ``commented'' part of the package documentation in this \texttt{dtx} file. There, thanks to \textsf{ltxdoc}, the vertical bar is active. Index tags in the documentation part must use the form:
+% Within the ``commented'' part of the package documentation in this \texttt{dtx} file, the vertical bar is active. Hence, we use:
%
-% \begin{quote}\small
-% \cmd{\TagName}\meta{name args}\texttt{\{}\cmd{\string}\texttt{\textbar
-% hyperpage\}}
+% \begin{quote}
+% \cmd{\TagName}\meta{name args}\texttt{\{}\cmd{\noexpand}\cmd{\string\textbar hyperpage\}}\\[0.5ex]
+% or\\[0.5ex]
+% \cmd{\index\{}\meta{entry argument}\cmd{\noexpand}\cmd{\string \textbar hyperpage\}}
% \end{quote}
%
% Internally, in \cmd{\@nameauth@IdxFormat}, when a cross-reference is being created, a tag of the form \meta{some text}\texttt{\textbar}\meta{some macro} is reduced to \meta{some text}, allowing the macros \texttt{\textbar see} and \texttt{\textbar seealso} internally to be appended to the index entry even if a tag with a vertical bar exists.
%
% Next we create a special tag. Since we used lines~1–2 in this \texttt{dtx} file\Warn, we put them in the driver section to avoid both errors with the redefinition of the vertical bar and any possible confusion when using \cmd{\string}.
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \newcommand\Orphan[2]{#1(\hyperpage{#2})}
% \TagName[Lost]{Name}{\,\S|Orphan{perdit}}
@@ -4938,56 +5493,62 @@ and version 1.3 or later is part of all distributions of LaTeX version
% |\item Name, Lost\,\S \pfill \Orphan{perdit}{|\meta{page}|}|
% \end{quote}
%
-% 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. Yet we could add manual breaks after editing is complete.
+% \subsubsection*{\hfil Manual Breaks and Entries}
%
-% We must create a helper macro that takes an argument and adds a break after that argument. That is how macros like \cmd{\textbf} use implied page references in the index page entries, e.g.: \cmd{\index\{Doe, John\string|textbf\}}.
+% 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. Yet we could add manual breaks after editing is complete.
+%
+% We must create a helper macro that takes an argument and adds a break after that argument. That is how macros like \cmd{\textbf} use implied page entries in the index, e.g.: \cmd{\index\{Doe, John\string|textbf\}}.
%
% Below we use \cmd{\newpage} to jump to a new column. See also the \textsf{multicol} and \textsf{idxlayout} packages, as well as classes like \textsf{memoir}. On line~1 we define the \cmd{\Endbreak} macro that will break the column after the end of an index entry.
%
-% \begin{quote}\small
+% \begin{quote}
% |\newcommand*{\EndBreak}[1]{#1\newpage}|
% \end{quote}
%
% We use \cmd{\EndBreak} after the last page in a given entry. This method works for both manual index entries and for the \textsf{nameauth} macros. If all instances of \cmd{\Name\{Some, Name\}} on the same page have that same index tag, there will be no duplicate page entries, hyperlinks will work, and the index will break as indicated:
%
-% \begin{quote}\footnotesize\smallstretch
-% \begin{tabular}{p{0.055\textwidth}@{\ }p{0.4\textwidth}@{\ }l}\toprule
-% Page & Macro & Index Result\\
-% \rowcolor{nagrey}10 & \cmd{\Name\{Some, Name\}}\dotfill \hbox{} &
-% Some Name, 10\\
-% \rowcolor{nagrey} & \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{nagrey}18 & \cmd{\TagName\{Some, Name\textbar EndBreak\}\%} & \\
-% \rowcolor{nagrey} & \cmd{\Name\{Some, Name\}}\dotfill \hbox{} &
-% Some Name, 10, 15, 18\meta{break}\\
-% \rowcolor{nagrey} &
-% \cmd{\index\{Topic\textbar EndBreak\}}\dotfill \hbox{} &
-% Topic, 10, 15, 18\meta{break}\\\bottomrule
+% \begin{center}
+% \begin{tabular}{rll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Page & \bfseries Macro & \bfseries Index Result\\
+%
+% 10 & \cmd{\Name\{Some, Name\}} & Some Name, 10\\
+% & \cmd{\index\{Topic\}} & Topic, 10\\
+%
+% \rowcolor{nagrey}^^A
+% 15 & \cmd{\Name\{Some, Name\}} & Some Name, 10, 15\\
+% \rowcolor{nagrey}^^A
+% & \cmd{\index\{Topic\}} & Topic, 10, 15\\
+%
+% 18 & \cmd{\TagName\{Some, Name\textbar EndBreak\}\%} & \\
+% & \cmd{\Name\{Some, Name\}} &
+% Some Name, 10, 15, 18\meta{break}\\
+% &
+% \cmd{\index\{Topic\textbar EndBreak\}} &
+% Topic, 10, 15, 18\meta{break}\\\bottomrule
% \end{tabular}
-% \end{quote}
+% \end{center}
%
-% 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 do not have to supply an argument to \cmd{\EndBreak} because, as with the font switching example above, the page entry 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 also can do this:
%
-% \begin{quote}\footnotesize\smallstretch
-% \begin{tabular}{p{0.055\textwidth}@{\ }p{0.4\textwidth}@{\ }l}\toprule
-% Page & Macro & Index Result\\
-% \rowcolor{nagrey} 18 &
-% \cmd{\SkipIndex}\cmd{\Name\{Some, Name\}\%}\hfill\hbox{} & \\
-% \rowcolor{nagrey} &
-% \cmd{\index\{Some Name\textbar EndBreak\}}\dotfill \hbox{} &
-% Some Name, 10, 15, 18\meta{break}\\\bottomrule
+% \begin{center}
+% \begin{tabular}{rll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Page & \bfseries Macro & \bfseries Index Result\\
+%
+% 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}
+% \end{center}
%
% Results for manual entries may vary, depending on what distribution of \LaTeX\ is being used and how old it is. 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.
%
-% We do not\Warn\ recommend breaking an index entry in the middle. There are several web pages that discuss the topic of gobbling the commas that are generated when one wants to use macros to manipulate index entries. \href{https://tex.stackexchange.com/questions/86646/indexing-subentries-and-see-also}{\bfseries This page} and \href{https://tex.stackexchange.com/questions/231840/what-is-the-proper-use-of-several-seealso-in-the-same-index-entry-with-makeinde}{\bfseries this one} also share a number of viewpoints. A ``quick and dirty'' version corresponding to the \cmd{\EndBreak} macro above would be the one that follows:
+% We do not\Warn\ recommend breaking an index entry in the middle. There are several discussions, such as \href{https://tex.stackexchange.com/questions/86646/indexing-subentries-and-see-also}{\bfseries this page} and \href{https://tex.stackexchange.com/questions/231840/what-is-the-proper-use-of-several-seealso-in-the-same-index-entry-with-makeinde}{\bfseries that page}. A ``quick and dirty'' version corresponding to the \cmd{\EndBreak} macro follows:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \makeatletter
% \newcommand*{\MidBreak}[1]{#1\newpage\@gobble}
@@ -5000,7 +5561,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection[Categories/Sub-entries]{Categories and Sub-entries}
% \label{sec:CatSub}
%
-% It is possible for indexes to have a structure of categories and sub-entries similar to the example outline below:
+% Indexes can have categories and sub-entries such as the following:
%
% \begin{itemize}
% \item[] \meta{category 1}
@@ -5015,24 +5576,30 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item[] \meta{category 2}\dots
% \end{itemize}
%
-% In order to get names in \textsf{nameauth} to work with this structure, one must make use of both \cmd{\PretagName} and \cmd{\TagName}. For example, to sort a name under \meta{category}, one must use, e.g.:
+% To get \textsf{nameauth} to work with this structure, one must use both \cmd{\PretagName} and \cmd{\TagName}. For example, to sort a name under \meta{category}, use something like:
%
% \begin{SyntaxBox}
-% \cmd{\PretagName[}\meta{FNN}\texttt{]\{}\meta{SNN}\texttt
-% {\}\{}\meta{category 1}\texttt{!}\meta{SNN}\texttt
-% {, }\meta{FNN}\texttt{\}}
+% \cmd{\PretagName}\oarg{FNN}\marg{SNN}\texttt
+% {\{}\meta{category 1}\texttt{!}\meta{SNN}\texttt
+% {, }\meta{FNN}\texttt{\}}\\
+% \cmd{\PretagName}\marg{SNN, Affix}\texttt
+% {\{}\meta{category 1}\texttt{!}\meta{SNN} \meta{Affix}\texttt{\}}
% \end{SyntaxBox}
%
-% Whenever one wants to generate a sub-entry for a name, one can use \cmd{\TagName} to create that sub-entry when needed via, e.g.:
+% Whenever one wants to generate a sub-entry for a name, one can use \cmd{\TagName} to create that sub-entry when needed via something like:
%
% \begin{SyntaxBox}
-% \cmd{\TagName[}\meta{FNN}\texttt{]\{}\meta{SNN}\texttt
-% {\}\{!}\meta{name sub-entry 1}\texttt{\}}
+% \cmd{\TagName}\oarg{FNN}\marg{SNN}\texttt
+% {\{!}\meta{name sub-entry}\texttt{\}}\\
+% \cmd{\TagName}\marg{SNN, Affix}\texttt
+% {\{!}\meta{name sub-entry}\texttt{\}}
% \end{SyntaxBox}
%
-% One is not restricted to Western or non-Western name arguments; the boxes above are meant just to show the basic tag formats.
+% One is not restricted to Western or nonwestern name arguments; the boxes above are meant just to show the basic tag formats.
+%
+% \newpage
%
-% One could use \Warn\cmd{\TagName} to change to another sub-entry or the default tag as needed, or use \cmd{\UntagName} to remove the tag. If a sub-entry contains a cross-reference via \cmd{\IndexRef}, it is necessary to follow that with \cmd{\IncludeName*} to permit any further page references in other sub-entries or the main name entry. Below we demonstrate how one would implement sub-entries using index tags in a normal \LaTeX\ document. We cannot show categories when using \texttt{gind.ist}.
+% One could use \Warn\cmd{\TagName} to change to another sub-entry or the default tag as needed, or use \cmd{\UntagName} to remove the tag. If a sub-entry contains a cross-reference via \cmd{\IndexRef}, it is necessary to follow that with \cmd{\IncludeName*} to permit any further page entries in other sub-entries or the main name entry. Below we demonstrate how one would implement sub-entries using index tags in a normal \LaTeX\ document. We cannot show categories when using \texttt{gind.ist}.
%
% Categories higher than names are handled by \cmd{\PretagName}. Categories lower in the hierarchy are handled by \cmd{\TagName}. It is best practice to have three or less levels of categories in an index. Two levels are more common. Using such levels also depends on the index style and formatting files.
% \JustIndex\Wash \JustIndex\Ike
@@ -5042,12 +5609,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
+% \usepackage[a6paper,landscape,left=1cm,right=1cm]{geometry}
% \usepackage{makeidx}
% \usepackage{nameauth}
+%
% \makeindex
-% \usepackage[a6paper,landscape,left=1cm,right=1cm]{geometry}
%
% \newcommand*{\EndBreak}[1]{#1\newpage}
%
@@ -5141,23 +5709,25 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
% \end{quote}
%
-% Below we show only the index, which is page three of the document.
+% \newpage
+%
+% Below we show only the index from this example.
% A few notable features include:
%
% \begin{itemize}
% \item \Patton\ uses a regular index tag instead of a subcategory.
-% If one cannot use a subcategory due to layout constraints, regular
-% index tags are a good substitute.
+% That is a way to `cheat'' and get more groupings of entries
+% than allowed categories.
% \item \Ike\ illustrates multiple subcategories for a name. A
% cross-reference from a sub-entry of US presidents points to him.
% \item \Wash\ illustrates having both a super-category and a subcategory.
% \item \Ike, \Patton, and \Sun\ are not sorted under categories. The
% other names are sorted under categories.
-% \end{itemize}\smallskip
+% \end{itemize}
% \JustIndex\MLK \JustIndex\Doug \JustIndex\Aeth \JustIndex\Soto
% \JustIndex\Aris \JustIndex\Plato \JustIndex\Linc
%
@@ -5166,24 +5736,22 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\hbox{\vbox to 8cm{\hbox{\hfill}}}}
% \end{tcolorbox}
% \JustIndex\Wash \JustIndex\Ike
-% \medskip
-%
% \IndexWarnTerse
%
% \ReturnLink
%
-% \begin{Quote}{\Name[Publius]{Vegetius Renatus}, \textit{De re militari}}
-% Igitur qui desiderat pacem, praeparet bellum.\\
-% (Accordingly, the person who would desire peace prepares for war.)
+% \begin{Quote}{\Linc, \textit{Gettysburg Address} (19 November 1863)}
+% Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. \dots It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us\,---\,that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion\,---\,that we here highly resolve that these dead shall not have died in vain\,---\,that this nation, under God, shall have a new birth of freedom\,---\,and that government of the people, by the people, for the people, shall not perish from the earth.^^A
+% \index{politicians, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
%
-% \section{Name Data Tags}
+% \section{Name Tags}
% \label{sec:DataTags}
%
% \DescribeMacro{\NameAddInfo}
-% All valid names in \textsf{nameauth} can have data tags; no restrictions exist. Unlike index tags, name data tags are not printed automatically with every name managed by \textsf{nameauth}. Sections~\ref{sec:NameTests} and~\ref{sec:DataTagHooks} have more examples. The macro is \cmd{\long}, allowing for some complexity in the \meta{tag} argument:
+% All valid names in \textsf{nameauth} can have name tags; no restrictions exist. Unlike index tags, name tags are not printed automatically with every name managed by \textsf{nameauth}. Sections~\ref{sec:NameTests} and~\ref{sec:DataTagHooks} have more examples. The macro is \cmd{\long}, allowing for some complexity in the \meta{tag} argument:
%
% \begin{SyntaxBox}
% \cmd{\NameAddInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}\marg{tag}
@@ -5193,39 +5761,40 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \PatInfo{\ShowPattern[George]{Washington}!DB\break
% \ShowPattern[George]{Washington}!MN}
% \vspace{-2ex}
-% For example, |\NameAddInfo[George]{Washington}{(1732--99)}| \NameAddInfo[George]{Washington}{(1732--99)} makes a data tag but does not print whenever \Wash\ \cmd{\Wash} is used. The data tag is a hidden macro that needs to be displayed using another helper macro keyed to that name, which we discuss below.\medskip
+% For example, |\NameAddInfo[George]{Washington}{(1732--99)}|\NameAddInfo[George]{Washington}{(1732--99)} makes a name tag but does not print whenever \Wash\ \cmd{\Wash} is used. The name tag needs to be displayed using the helper macro below.
%
% \DescribeMacro{\NameQueryInfo}
-% To print the data tag macro associated with a name, we use \cmd{\NameQueryInfo}, a helper macro that uses the name arguments to display the hidden macro associated with that name in the name info data set:
+% To print a name tag for a given name, we use \cmd{\NameQueryInfo}, a helper macro that prints a name tag in the name info data set:
%
% \begin{SyntaxBox}
% \cmd{\NameQueryInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% Since we already created a data tag for \LWash, we will retrieve that data now: \cmd{\NameQueryInfo[George]\{Washington\}} expands to \NameQueryInfo[George]{Washington}. Of course, it may seem tedious to retrieve this information by hand. In Section~\ref{sec:DataTagHooks} and thereafter we show how one can automate the retrieval of data tags using formatting hooks, Yet therein also lies a caution:
+% \cmd{\NameQueryInfo[George]\{Washington\}} prints the name tag for \LWash:
+% \NameQueryInfo[George]{Washington}. In Section~\ref{sec:DataTagHooks} and thereafter we show how one can automate the retrieval of name tags using formatting hooks, Yet therein also lies a caution:
%
-% \begin{InfoBox}[Caution for Using \cmd{\noexpand}]
-% When using a formatting hook definition based on the recommended template (Section~\ref{sec:DataTemp}), one can use \cmd{\noexpand} in arguments for \cmd{\NameAddInfo}, \cmd{\NameQueryInfo}, and \cmd{\NameClearInfo} without restriction.\medskip
+% \begin{itemize}
+% \item When using the recommended template for a formatting hook (Section~\ref{sec:DataTemp}), one can use \cmd{\noexpand} in arguments for \cmd{\NameAddInfo}, \cmd{\NameQueryInfo}, and \cmd{\NameClearInfo} without restriction.
%
-% When using designs based on older templates, using \cmd{\noexpand} may cause \cmd{\NameQueryInfo} to print nothing if one uses the basic interface. Using the quick interface will work as expected.
-% \end{InfoBox}
+% \item When using designs based on older templates, using \cmd{\noexpand} may cause \cmd{\NameQueryInfo} to print nothing if one uses the basic interface. Using the quick interface will work as expected.
+% \end{itemize}
%
-% One can insert a space at the start of a data tag; use signs like asterisks, daggers, and the like; and even create footnotes, such as the source for footnote \addtocounter{footnote}{1}\arabic{footnote}\addtocounter{footnote}{-1} on the following page:
+% One can insert a space at the start of a name tag; use signs like asterisks, daggers, and the like; and even create footnotes, such as footnote \addtocounter{footnote}{1}\arabic{footnote}\addtocounter{footnote}{-1} (below):
%
% \begin{VerbatimOut}{\jobname.tmp}
% \NameAddInfo[Ulysses S.]{Grant}
% {eighteenth US president (1869--1877)}
% \NameAddInfo[Schuyler]{Colfax}
% {\footnote{\Name[Schuyler]{Colfax} was the seventeenth US
-% vice-president during the first term (1869--73) of
-% \Name*[Ulysses S.]{Grant}, \NameQueryInfo[Ulysses S.]{Grant}.}}
+% vice-president during the first term (1869--73) of
+% \Name*[Ulysses S.]{Grant}, \NameQueryInfo[Ulysses S.]{Grant}.}}
%
% Remember \Name[Schuyler]{Colfax}?\NameQueryInfo[Schuyler]{Colfax}
% Derived from the same origin as ``scholar'', this name can occur
% as ``Skylar'' for girls and ``Skyler'' for boys.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{3.5ex}
% \PatInfo{\ShowPattern[George]{Washington}!DB\break
% \ShowPattern[Ulysses S.]{Grant}!DB\break
@@ -5238,9 +5807,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \input{\jobname.tmp}
% \end{quote}
%
-% The previous\Warn{} example cannot be used in a formatting hook (Section~\ref{sec:DataTagHooks}). Within the formatting hooks, one is in a ``locked path'' that will not permit the ``re-entrant'' call to a naming macro. This is necessary to prevent a stack overflow. Were this example called in a formatting hook, \Name*[Ulysses S.]{Grant} would not print, although the data tag for \Name[Ulysses S.]{Grant} would print because it is called separately.
+% \newpage
+%
+% The previous\Warn{} example cannot be used in a formatting hook (Section~\ref{sec:DataTagHooks}). Within the formatting hooks, one is in a ``locked path'' that prevents calling a naming macro. This prevents a stack overflow. |\Name*[Ulysses S.]{Grant}| would not print inside a formatting hook, although |\NameQueryInfo[Ulysses S.]{Grant}| would print.
%
-% One can\Warn{} nest data tags and have them call each other. Therefore, one must protect against a stack overflow by using Boolean flags and conditional statements. In the minimal working example below, \cmd{\NameQueryInfo} calls a tag that sets a Boolean flag true, which causes the \emph{other} tag called later to stop the potential for recursion and exit.
+% Name\Warn{} tags can call each other. To protect against a stack overflow, use Boolean flags and conditional statements. Below, \cmd{\NameQueryInfo} calls a tag that sets a Boolean flag true, which causes the \emph{other} tag to stop any recursion and exit.
%
% \begin{VerbatimOut}{\jobname.tmp}
% \newif\ifA
@@ -5250,47 +5821,50 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \NameAddInfo{B}
% {\Btrue B \ifA Stop \else \NameQueryInfo{A} \fi \Bfalse}
% \begin{itemize}
-% \item \NameQueryInfo{A}
-% \item \NameQueryInfo{B}
+% \item \NameQueryInfo{A}
+% \item \NameQueryInfo{B}
% \end{itemize}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
% \end{quote}
%
% \DescribeMacro{\NameClearInfo}
-% \cmd{\NameAddInfo} will replace one data tag with another data tag, but it does not delete a data tag. That is the role of \cmd{\NameClearInfo}. The syntax is:
+% \cmd{\NameAddInfo} will replace one name tag with another name tag, but it does not delete a tag. That is the role of \cmd{\NameClearInfo}. The syntax is:
%
% \begin{SyntaxBox}
% \cmd{\NameClearInfo}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% We now revisit \LWash\ and his associated data tag. \PatInfo{\ShowPattern[George]{Washington}!DB}
+% We now revisit \LWash\ and his associated name tag. \PatInfo{\ShowPattern[George]{Washington}!DB}
%
% \begin{VerbatimOut}{\jobname.tmp}
-% The data tag is: \fbox{\NameQueryInfo[George]{Washington}}\quad
+% The name tag is: \fbox{\NameQueryInfo[George]{Washington}}\quad
% Clearing data.\NameClearInfo[George]{Washington}\quad
-% The data tag is empty: \fbox{\NameQueryInfo[George]{Washington}}
+% The name tag is empty: \fbox{\NameQueryInfo[George]{Washington}}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
% \end{quote}
-%
% \ReturnLink
%
+% \begin{Quote}{\ForgetThis\Name{Confucius}, \textit{The Analects}, C II (475–221 \textsc{bc})}
+% He who exercises government by means of his virtue may be compared to the north polar star, which keeps its place and all the stars turn towards it.^^A
+% \index{north star, concept of\noexpand\string|hyperpage}^^A
+% \index{philosophers, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
+%
% \newpage
%
% \section[Formatting and Decisions]{Basic Formatting and Name Decisions}
% \label{sec:FormatChoice}
%
-% Since both syntactic name forms and formatting interact heavily with the presence and absence of name patterns, we include them together in one section.
-%
% \subsection{Basic Formatting}
% \label{sec:Formatting}
%
@@ -5302,18 +5876,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \renewcommand\FrontNamesFormat{}
% \renewcommand\FrontNameHook{}
% \begin{tcolorbox}[colframe=naslate,colback=white,
-% adjusted title={\hfil Syntactic Changes;^^A
+% adjusted title={\large\hfil Syntactic Changes;
% No Formatting/Post-Processing}]\centering
% \begin{tabular}{llll}\toprule
-% First & Later & First name & Later name\\\midrule
-% \cmd{\Patton} & \cmd{\Patton} & \ForgetThis\Patton & \Patton\\
-% \cmd{\LPatton} & \cmd{\LPatton} & \ForgetThis\LPatton &
-% \LPatton\\
-% \cmd{\SPatton} & \cmd{\SPatton} & \ForgetThis\SPatton &
-% \SPatton\\\midrule
-% \cmd{\Yamt} & \cmd{\Yamt} & \ForgetThis\Yamt & \Yamt\\
-% \cmd{\LYamt} & \cmd{\LYamt} & \ForgetThis\LYamt & \LYamt\\
-% \cmd{\SYamt} & \cmd{\SYamt} & \ForgetThis\SYamt & \SYamt\\\bottomrule
+% \bfseries First Instance & \bfseries Macro & \bfseries Later Instance & \bfseries Macro\\\midrule
+% \ForgetThis\Patton & \cmd{\Patton} & \Patton & \cmd{\Patton}\\
+% \ForgetThis\LPatton & \cmd{\LPatton} & \LPatton & \cmd{\LPatton}\\
+% \ForgetThis\SPatton & \cmd{\SPatton} & \SPatton & \cmd{\SPatton}\\\midrule
+% \ForgetThis\Yamt & \cmd{\Yamt} & \Yamt & \cmd{\Yamt}\\
+% \ForgetThis\LYamt & \cmd{\LYamt} & \LYamt & \cmd{\LYamt}\\
+% \ForgetThis\SYamt & \cmd{\SYamt} & \SYamt & \cmd{\SYamt}\\\bottomrule
% \end{tabular}
% \end{tcolorbox}
% \endgroup
@@ -5323,14 +5895,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Many books are structured with front matter that includes a table of contents, foreword, introductory material or survey material, and other instructive content that is not part of the main matter. The \textsf{nameauth} package has separate syntax and formatting system for front matter (\texttt{!NF}) and main matter (\texttt{!MN}). These formatting systems are linked to the existence of a name control pattern.
%
% \begin{itemize}
-% \item Name first use
+% \item First instance of a name
% \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 After the name is printed, a name control sequence is created.
% \end{itemize}
-% \item Name subsequent use
+% \item Subsequent instance of a name
% \begin{itemize}
% \item A name control sequence already exists.
% \item A name is printed using a shorter form (default).
@@ -5338,16 +5910,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \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
+% 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}).
%
% \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.
%
-% Especially with the macros that deal with formatting, the naming scheme is unfortunate because it involved some groping in the dark regarding the concepts.\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.
%
-% 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
+% \newpage
%
% \DescribeMacro{\NamesFormat}
% The main-matter system uses \cmd{\NamesFormat} to post-process first occurrences of names and
@@ -5356,9 +5928,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \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. Since the formatting hooks always are defined when using \textsf{nameauth}, one must use \cmd{\renewcommand} when changing their definitions.\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 and ``forget'' any previous name uses: \medskip
+% option causes only \cmd{\NamesFormat} and \cmd{\FrontNamesFormat} to be used. Since the formatting hooks always are defined when using \textsf{nameauth}, one must use \cmd{\renewcommand} when changing their definitions.\footnote{The names of these macros grew from \cmd{\NamesFormat}, originally the only formatting hook. Especially with the macros in this section, the naming scheme is unfortunate because package development involved some groping in the dark regarding the concepts.}
+% 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 and ``forget'' any previous name uses:
%
+% \begin{quote}
% \ForgetName[Rudolph]{Carnap}
% \vspace{4ex}
% \PatInfo{\textrm{front-matter}\hfill\break
@@ -5369,31 +5942,30 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \ShowPattern[Nicolas]{Malebranche}!MN}
% \vspace{-4ex}
% \begin{tcolorbox}[colframe=red,colback=white,
-% adjusted title={\hfil Front-matter system: \cmd{\NamesInactive}}]
+% adjusted title={\large\hfil Front-matter system: \cmd{\NamesInactive}}]
% \NamesInactive
% \begin{tabular}{ll}
-% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
-% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
+% \Name[Rudolph]{Carnap} & |\Name[Rudolph]{Carnap}|\\
+% \Name[Rudolph]{Carnap} & |\Name[Rudolph]{Carnap}|\\
+% \Name[Nicolas]{Malebranche} & |\Name[Nicolas]{Malebranche}|\\
+% \Name[Nicolas]{Malebranche} & |\Name[Nicolas]{Malebranche}|\\
% \end{tabular}
% \end{tcolorbox}
-% \medskip
%
% \begin{tcolorbox}[colframe=blue,colback=white,
-% adjusted title={\hfil Main-matter system: \cmd{\NamesActive}}]
+% adjusted title={\large\hfil Main-matter system: \cmd{\NamesActive}}]
% \NamesActive
% \begin{tabular}{ll}
-% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% |\Name[Rudolph]{Carnap}| & \Name[Rudolph]{Carnap}\\
-% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
-% |\Name[Nicolas]{Malebranche}| & \Name[Nicolas]{Malebranche}\\
+% \Name[Rudolph]{Carnap} & |\Name[Rudolph]{Carnap}|\\
+% \Name[Rudolph]{Carnap} & |\Name[Rudolph]{Carnap}|\\
+% \Name[Nicolas]{Malebranche} & |\Name[Nicolas]{Malebranche}|\\
+% \Name[Nicolas]{Malebranche} & |\Name[Nicolas]{Malebranche}|\\
% \end{tabular}
% \end{tcolorbox}
-% \medskip
+% \end{quote}
%
% We used the \textsf{xcolor} package with the following macros:
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \renewcommand*\FrontNamesFormat[1]{\color{red}\sffamily #1}
% \renewcommand*\FrontNameHook[1]{\color{darkgray}\sffamily #1}
@@ -5405,15 +5977,15 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\ForceName}
% We show examples of \cmd{\ForceName} in Sections~\ref{sec:NameControl}, \ref{sec:DataTagHooks}, and~\ref{sec:AKA}. Use this prefix macro to force ``first use'' formatting for the next \cmd{\Name}, etc., but without deleting any name control sequences. Thus:
%
-% \begin{quote}\small
-% \hphantom{\cmd{\ForceName}}^^A
-% \PatInfo{\ShowPattern[Rudolph]{Carnap}!MN}^^A
-% \cmd{\Name[Rudolph]\{Carnap\}} \Name[Rudolph]{Carnap}\\
-% \cmd{\ForceName}\cmd{\Name[Rudolph]\{Carnap\}}
+% \begin{quote}
+% \Name[Rudolph]{Carnap}^^A
+% \PatInfo{\ShowPattern[Rudolph]{Carnap}!MN}
+% \cmd{\Name[Rudolph]\{Carnap\}} \\[1ex]
% \ForceName\Name[Rudolph]{Carnap}
+% \cmd{\ForceName}\cmd{\Name[Rudolph]\{Carnap\}}
% \end{quote}
%
-% Below\Info{\texttt{alwaysformat}} we simulate \texttt{alwaysformat} via package internals:
+% Below\Info{\texttt{alwaysformat}} we simulate \texttt{alwaysformat} via package internals. Only the ``first use'' formatting hooks are used:
%
% \makeatletter\@nameauth@AlwaysFormattrue\makeatother%
% \ForgetName[M.T.]{Cicero}\ForgetName{Elizabeth, I}%
@@ -5431,22 +6003,24 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \newpage
%
-% The internal 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:
+% \subsubsection*{\hfil Hook caveats}
+%
+% The internal name parser determines what syntactic name elements exist and how they are constituted. It passes that information to macros that determine the form of nonwestern 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
+% \begin{quote}
% \cmd{\bgroup}\meta{Hook}\texttt{\{\#1\}}\cmd{\egroup}.
% \end{quote}
%
% One can create formatting hooks that take either no argument or one argument. Since the formatting hooks are already defined, one must not use \cmd{\newcommand} to create new hooks. Instead, use \cmd{\renewcommand} e.g.:
%
-% \begin{quote}\small
+% \begin{quote}
% \cmd{\renewcommand*}\cmd{\NamesFormat\{}\meta{content}\texttt{\}}\\
% \cmd{\renewcommand*}\cmd{\NamesFormat[1]\{}\meta{content}\texttt{\}}
% \end{quote}
%
% A hook that takes one argument can use, change, or discard it and invoke \cmd{\NameParser} (Section~\ref{sec:SpecialUses}). Due to package design using local scope, both the following achieve exactly the same effect:
%
-% \begin{quote}\small
+% \begin{quote}
% \cmd{\renewcommand*}\cmd{\NamesFormat\{}\cmd{\itshape}\texttt{\}}\\
% \cmd{\renewcommand*}\cmd{\NamesFormat\{}\cmd{\textit}\texttt{\}}
% \end{quote}
@@ -5463,7 +6037,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \makeatother
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{4ex}
% \PatInfo{\ShowPattern[Adolf]{Harnack}!MN\break
% \ShowPattern[Adolf]{Harnack}!NF}
@@ -5481,13 +6055,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \makeatother
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
% \end{quote}
% \input{\jobname.tmp}
%
-% \begin{Quote}{\Name[Hubert H.]{Humphrey}, speech (26 March 1966)}
-% In real life, unlike in Shakespeare, the sweetness of the rose depends upon the name it bears. Things are not only what they are. They are, in very important respects, what they seem to be.
+% \begin{Quote}{\ForgetThis\Name[M.T.]{Cicero}[Marcus Tullius], \textit{De oratore} B II; C IX, \S 36 (55 \textsc{BC})}
+% By what other voice, too, than that of the orator, is history, the evidence of time, the light of truth, the life of memory, the directress of life, the herald of antiquity, committed to immortality?^^A
+% \index{Romans, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -5495,19 +6070,19 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Making Name Decisions}
% \label{sec:NameControl}
%
-% By default, the macros below produce global effects. They change both the \texttt{!MN} and \texttt{!NF} data sets (Section~\ref{sec:NamePatterns}). Those changes implicitly affect syntactic name forms, name formatting, index protection with respect to creating cross-references (Section~\ref{sec:IndexRef}), and the name testing macros (Section~\ref{sec:NameTests}).\medskip
+% By default, the macros below produce global effects. They change both the \texttt{!MN} and \texttt{!NF} data sets (Section~\ref{sec:NamePatterns}). Those changes implicitly affect syntactic name forms, name formatting, index protection with respect to creating cross-references (Section~\ref{sec:IndexRef}), and the name testing macros (Section~\ref{sec:NameTests}).
%
% \DescribeMacro{\ForgetName}
-% This macro takes the same arguments as \cmd{\Name}, but it prints no output. It ``forgets'' a name, forcing a ``pre-first use'' state. The next time a naming macro makes reference to the name, it will display as if the name did not yet exist:
+% This macro takes the same arguments as \cmd{\Name}, but it prints no output. It ``forgets'' a name, forcing a ``pre-first use'' state. The next instance of that name will display as if the name did not yet exist:
%
% \begin{SyntaxBox}
% \cmd{\ForgetName}\oarg{FNN}\marg{SNN|,| Affix}\oarg{Alternate}
% \end{SyntaxBox}
%
-% \cmd{\ForgetName} ``unprotects'' names like \cmd{\IncludeName*} ``unprotects'' xrefs. This allows one to make both \textit{see} and \textit{see also} cross-references to a name, even if that name already has index page references.\medskip
+% \cmd{\ForgetName} ``unprotects'' names like \cmd{\IncludeName*} ``unprotects'' xrefs. This allows one to make both \textit{see} and \textit{see also} cross-references to a name, even if that name already has index page entries.
%
% \DescribeMacro{\ForgetThis}
-% This prefix macro causes the next instance of a naming macro or shorthand to ``forget'' a name before printing it. After knowing |\Einstein| ``\Einstein'' we forget him and again have a first reference: |\ForgetThis\Einstein| ``\ForgetThis\Einstein''. \cmd{\ForgetThis} no longer affects the index unless one uses the \texttt{oldreset} option.\medskip
+% This prefix macro causes the next instance of a naming macro or shorthand to ``forget'' a name before printing it. After knowing \Einstein, we forget him and again have a first instance via |\ForgetThis\Einstein|: \ForgetThis\Einstein. \cmd{\ForgetThis} no longer affects the index unless one uses the \texttt{oldreset} option.
%
% \DescribeMacro{\SubvertName}
% 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 (analogous to \cmd{\ExcludeName} and \cmd{\IndexRef}:
@@ -5536,7 +6111,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\IfMainName[Charlie]{Chaplin}{main}{none}}}}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
% \end{quote}
% \input{\jobname.tmp}
@@ -5558,7 +6133,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \item Switch to the ``front-matter'' system and create a name.
% \PatInfo{\ShowPattern[Charlie]{Chaplin}!NF}
-% Ifone is within a group or local scope, one may have to add
+% If one is within a group or local scope, one may have to add
% \cmd{\global} to \cmd{\NamesInactive}:
% \begin{itemize}[rightmargin=2\leftmargin]
% \item[] |\global\NamesInactive|\global\NamesInactive
@@ -5584,7 +6159,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item Next ``subvert'' the front-matter name to ``remember'' it again.
% Then switch to main matter:
% \begin{itemize}[rightmargin=2\leftmargin]
-% \item[] |\Subvert\Name[Charlie]{Chaplin}|\SubvertName[Charlie]{Chaplin}
+% \item[] |\SubvertName[Charlie]{Chaplin}|\SubvertName[Charlie]{Chaplin}
% \item[] |\CheckChuck|\dotfill \CheckChuck
% \item[] |\global\NamesActive|\global\NamesActive
% \end{itemize}
@@ -5615,69 +6190,59 @@ and version 1.3 or later is part of all distributions of LaTeX version
% We pull together information on name forms and formatting, focusing on what happens in one naming system only, since the two systems are independent.
%
% \begin{itemize}[leftmargin=3cm]\small
-% \item[First Use:] \cmd{\Bailey} \dotfill \ForgetThis\Bailey\\
-% \cmd{\LBailey} \dotfill \ForgetThis\LBailey\\
-% \cmd{\SBailey} \dotfill \ForgetThis\SBailey\\
+% \item[First Instance:] \ForgetThis\Bailey \dotfill \cmd{\Bailey}\\
+% \ForgetThis\LBailey \dotfill \cmd{\LBailey}\\
+% \ForgetThis\SBailey \dotfill \cmd{\SBailey}\\
% Name control pattern created with text output.
% Index state 2, 4, or 6 (Section~\ref{sec:RuleStates}).
% Name form: long. First-use hooks.
%
-% \item[Later Use:] \cmd{\Bailey} \dotfill \Bailey\\
-% \cmd{\LBailey} \dotfill \LBailey\\
-% \cmd{\SBailey} \dotfill \SBailey\\
+% \item[Later Instance:] \Bailey \dotfill \cmd{\Bailey}\\
+% \LBailey \dotfill \cmd{\LBailey}\\
+% \SBailey \dotfill \cmd{\SBailey}\\
% No change to name pattern. Index state 2, 4, or 6.
% Name form: short. Subsequent-use hooks.
%
-% \item[Forgotten:] \cmd{\ForgetName[Betsey]\{Bailey\}} \dotfill
-% (no output)\ForgetName[Betsey]{Bailey}\\
+% \item[Forgotten:] (no output)\ForgetName[Betsey]{Bailey} \dotfill^^A
+% \cmd{\ForgetName[Betsey]\{Bailey\}}\\
% Name pattern deleted. Index state 1, 3, or 5
% (Section~\ref{sec:RuleStates}).
-% Next use usually will be a first use, e.g.: \Bailey.
+% next instance usually will be a first use, e.g.: \Bailey.
%
-% \item[Subverted:] \cmd{\SubvertName[Betsey]\{Bailey\}} \dotfill
-% (no output)\SubvertName[Betsey]{Bailey}\\
+% \item[Subverted:] (no output)\SubvertName[Betsey]{Bailey} \dotfill^^A
+% \cmd{\SubvertName[Betsey]\{Bailey\}}\\
% Name pattern created. Index state 2, 4, or 6.
-% Next use usually will be a later use, e.g.: \Bailey, \LBailey, \SBailey.
+% next instance usually will be a later use, e.g.: \Bailey, \LBailey, \SBailey.
%
% \item[\cmd{\ForgetThis}:]
-% \cmd{\ForgetThis}\cmd{\Bailey} \dotfill \ForgetThis\Bailey\\
-% \cmd{\ForgetThis}\cmd{\LBailey} \dotfill \ForgetThis\LBailey\\
-% \cmd{\ForgetThis}\cmd{\SBailey} \dotfill \ForgetThis\SBailey\\
+% \ForgetThis\Bailey \dotfill \cmd{\ForgetThis}\cmd{\Bailey}\\
+% \ForgetThis\LBailey \dotfill \cmd{\ForgetThis}\cmd{\LBailey}\\
+% \ForgetThis\SBailey \dotfill \cmd{\ForgetThis}\cmd{\SBailey}\\
% Name pattern deleted, then created again. Index state 2, 4, or 6.
-% Name form and format: same as first use above. Next use usually
+% Name form and format: same as first use above. next instance usually
% will be a later use, e.g.: \Bailey, \LBailey, \SBailey.
%
% \item[\cmd{\SubvertThis}:]
-% \cmd{\SubvertThis}\cmd{\Bailey} \dotfill \SubvertThis\Bailey\\
-% \cmd{\SubvertThis}\cmd{\LBailey} \dotfill \SubvertThis\LBailey\\
-% \cmd{\SubvertThis}\cmd{\SBailey} \dotfill \SubvertThis\SBailey\\
+% \SubvertThis\Bailey \dotfill \cmd{\SubvertThis}\cmd{\Bailey}\\
+% \SubvertThis\LBailey \dotfill \cmd{\SubvertThis}\cmd{\LBailey}\\
+% \SubvertThis\SBailey \dotfill \cmd{\SubvertThis}\cmd{\SBailey}\\
% Name pattern created. Index state 2, 4, or 6.
-% Name form and format: same as later use above. Next use usually
+% Name form and format: same as later use above. next instance usually
% will be a later use, e.g.: \Bailey, \LBailey, \SBailey.
%
-% \item[Format First:]
-% \cmd{\ForceName}\cmd{\Bailey} \dotfill \ForceName\Bailey\\
-% \cmd{\ForceName}\cmd{\LBailey} \dotfill \ForceName\LBailey\\
-% \cmd{\ForceName}\cmd{\SBailey} \dotfill \ForceName\SBailey\\
+% \item[Format as First:]
+% \ForceName\Bailey \dotfill \cmd{\ForceName}\cmd{\Bailey}\\
+% \ForceName\LBailey \dotfill \cmd{\ForceName}\cmd{\LBailey}\\
+% \ForceName\SBailey \dotfill \cmd{\ForceName}\cmd{\SBailey}\\
% No change to name pattern. Index state 2, 4, or 6.
% Name form: short or long. Name format: First-use hooks.
% \end{itemize}
%
-% \AltFormatActive
-% \begin{Quote}{\ForgetThis\Luth\break
-% \hbox{}\hfill \textit{Von der Freiheit eines Christenmenschen}
-% (1520)\footnote{In several cases (e.g., here) when one uses small
-% caps, harmless font substitution warnings result.}}
-% Eyn Chriſten menſch iſt eyn freyer herr /
-% u\raise 0.2ex\hbox{\kern -1.1ex\textsuperscript{e}\kern 1pt}ber alle
-% ding / und niemande unterthan. Eyn Chriſten menſch iſt eyn dienſtpar
-% knecht aller ding und yderman unterthan.
-%
-% (A Christian is a free lord, above all things, and subject to no one.
-% A Christian is a willing servant of all things and is subject to
-% everyone.)
+% \begin{Quote}{\Name[Hubert H.]{Humphrey}, speech (26 March 1966)}
+% In real life, unlike in Shakespeare, the sweetness of the rose depends upon the name it bears. Things are not only what they are. They are, in very important respects, what they seem to be.^^A
+% \index{politicians, quotes of\noexpand\string|hyperpage}^^A
+% \index{Shakespearian rose, references to\noexpand\string|hyperpage}
% \end{Quote}
-% \AltFormatInactive
%
% \newpage
%
@@ -5688,12 +6253,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection{Testing Macros}
%
-% 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
+% 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.
%
% \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 re-enable the default. These commands affect assignment statements in test paths. By default, one must explicitly use \cmd{\global} when desired. See also the examples below.\medskip
+% If this is not desired, use the \texttt{globaltest} option or \cmd{\GlobalNameTest}. \cmd{\LocalNameTest} will re-enable the default. These commands affect assignment statements in test paths. By default, one must explicitly use \cmd{\global} when desired. See also the examples below.
%
% \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:
@@ -5711,7 +6276,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {No Bob here.}\IndexName[Bob]{Hope}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
@@ -5739,7 +6304,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \parbox{0.4\textwidth}{\msg} (\cmd{\LocalNameTest}).
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
@@ -5767,7 +6332,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\Name[Rudolph]{Carnap} has not been mentioned.}}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
@@ -5801,7 +6366,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item In\PatInfo{\ShowPattern[Jesse]{Ventura}!MN\break
% \ShowPattern[James]{Janos}!PN\break
% \ShowPattern[James]{Janos}!MN}
-% the text we first create a reference to former pro-wrestler and
+% the text we first create an instance of 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}'',\\
@@ -5815,7 +6380,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \meta{excl} branch empty:
% \end{enumerate}
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \IfAKA[James]{Janos}
% {\Name*[Jesse]{Ventura} is a stage name}
@@ -5828,7 +6393,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% We can combine all these macros to create a complete, unified test:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \IfAKA[FNN]{SNN, Affix}[Alternate]
% {%
@@ -5870,7 +6435,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{quote}
% \begin{Verbatim}
-% \ifMainName[Ferris}{Bueller}
+% \ifMainName[Ferris]{Bueller}
% {\Name[Cameron]{Frye} is gloomy and introspective.}
% {\Name[Cameron]{Frye} is developing positive traits.}
% \end{Verbatim}
@@ -5881,23 +6446,23 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{quote}
% \JustIndex\JWG^^A
% \begin{Verbatim}
-% \ifMainName[J.W. von}{Goethe}
-% {\Name[J.W. von}{Goethe}}
-% {\Name[J.W. von}{Goethe}[Johann Wolfgang von]}
+% \ifMainName[J.W. von]{Goethe}
+% {\Name[J.W. von]{Goethe}}
+% {\Name[J.W. von]{Goethe}[Johann Wolfgang von]}
% \end{Verbatim}
% \end{quote}
%
% In Sections~\ref{sec:NameAncient} and~\ref{sec:SpecialUses} we explore ways that one could automate something like what we have above. Section~\ref{sec:SpecialUses} applies better to Western names.
%
-% In addition to using the name decision testing macros by themselves, one can use them with name data tags to ensure that the information associated with a given name is not anachronistic.
+% In addition to using the name decision testing macros by themselves, one can use them with name tags to ensure that the information associated with a given name is not anachronistic.
%
-% For example, we know that certain people are associated with chronological events. We associate those people and events to the information presented in a name data tag via name testing macros:
+% For example, we know that certain people are associated with chronological events. We associate those people and events to the information presented in a name tag via name testing macros:
%
% \begin{VerbatimOut}{\jobname.tmp}
% \NameAddInfo{Saul, of Tarsus}
% {\IfMainName{Jesus, Christ}
% {\IfMainName[Lucius]{Sergius Paulus}
-% {finally renamed himself \Name{Paul}, in
+% {renamed himself \Name{Paul}, in
% honor of his patron}
% {next became a preacher to the Gentiles}}
% {wrote first that he persecuted Christians}}
@@ -5911,16 +6476,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
% on the road to Damascus.
%
% \Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}.
-% He undertook three great missionary trips before being
-% sent to Rome to face trial in an appeal to Caesar. On one
-% journey, while in Cyprus, \Name{Saul, of Tarsus} converted
+% He undertook three missionary journeys before being
+% sent to Rome for trial in an appeal to Caesar.
+% While in Cyprus, \Name{Saul, of Tarsus} converted
% \Name[Lucius]{Sergius Paulus}, who became a patron.
%
% \Name{Saul, of Tarsus} \NameQueryInfo{Saul, of Tarsus}.
% Under the name \Name{Paul} he wrote his letters.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{3ex}
% \PatInfo{\ShowPattern{Paul}!PN\break
% \ShowPattern{Saul, of Tarsus}!DB\break
@@ -5934,7 +6499,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \input{\jobname.tmp}
% \end{quote}
%
-% 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). This was especially the case before 2018 with names using diacritical marks and other letters outside the basic Latin characters. That is why \textsf{nameauth} uses token registers to save name arguments.
+% \subsubsection*{\hfil Caveats}
+%
+% Using these tests inside other macros or passing control sequences to them may create false results (see \textit{The \TeX book}, 212--15). This was especially the case before 2018 with names using diacritical marks and other letters outside the basic Latin characters. That is why \textsf{nameauth} uses token registers to save name arguments.
%
% We have stressed and will continue to stress using \cmd{\noexpand} in macros passed as name arguments to stabilize what happens. See also Section~\ref{sec:Unicode} regarding how one might engage possible Unicode issues in certain \LaTeX\ engines.
%
@@ -5951,9 +6518,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{beamer}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage[noindex]{nameauth}
+%
% \mode<presentation>
% \beamerdefaultoverlayspecification{<+->}
%
@@ -5996,7 +6564,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
% \IndexName[George]{Washington}
% \IndexName[Ulysses S.]{Grant}
@@ -6014,7 +6582,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{tcolorbox}
% \IndexName[George]{Washington}
% \IndexName[Ulysses S.]{Grant}
-% \medskip
+%
%
% The second overlay uses \cmd{\ForgetName} forcing specific name forms respective to each overlay, instead of respective to the overall sequence of overlays. We also observe the use of name conditionals in text elements that one might reorder.
%
@@ -6025,6 +6593,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \IndexName[George]{Washington}
% \IndexName[Ulysses S.]{Grant}
%
+% \newpage
+%
% Overlay three fully illustrates how all these features integrate. This could allow a presenter to maintain information used in different presentations, making each element or slide a ``drop-in'' unit that can figure out how to present names, name forms, and related information without extensive retyping.
%
% \begin{tcolorbox}\centering
@@ -6038,7 +6608,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \AltFormatActive
% \begin{Quote}{\ForgetThis\Shak\break
-% \hbox{}\hfill ``Romeo and Juliet'', Act II, Scene II}
+% \hbox{}\hfill ``Romeo and Juliet'', Act II, Scene II (published 1597)}
% '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;\\
@@ -6046,7 +6616,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
% 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.
+% Take all myself.\negmedskip^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}^^A
+% \index{Shakespearian rose, references to\noexpand\string|hyperpage}
% \end{Quote}
% \AltFormatInactive
%
@@ -6063,12 +6635,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item Use \meta{Alternate} to create variant forms, yet retain consistent
% index entries. This is the default function of \textsf{nameauth} that
% readers already have seen.
+%
% \item Create several names. Index one or more occurrences of these names
% as ``standard'' variants that refer to each other via \textit{see also}
% references. In relation to the ``standard'' variants, any other variants
% would be indexed only with a \textit{see} reference. The macros
% \cmd{\JustIndex}, \cmd{\IndexName}, and \cmd{\IndexRef} play a big role
% here (Sections~\ref{sec:IndexPageno} and~\ref{sec:IndexRef}).
+%
% \item Use alternate formatting, \cmd{\noexpand}, and macros in the name
% arguments that expand differently under specific conditions in the
% formatting hooks, but expand consistently when indexed.
@@ -6080,9 +6654,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection[Alternate Argument]{Variants and the Alternate Argument}
%
-% We begin with the first kind of variant names listed above. We decide that the canonical name to be used is \Tyson. We set up both the canonical name and a alternate name in the \texttt{nameauth} environment:
+% We begin with the first kind of variant names listed above. We decide that the canonical name to be used is \Tyson. We set up both the canonical name and an alternate name in the \texttt{nameauth} environment:
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{4ex}
% \PatInfo{\ShowPattern[Mike]{Tyson}!MN}
% \vspace{-4ex}
@@ -6091,19 +6665,26 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \< Tyson & Mike & Tyson & >
% \< Iron & Mike & Tyson & Iron Mike >
% \end{nameauth}
+%
+% \IndexRef{Iron Mike}{Tyson, Mike}
% \end{Verbatim}
% \end{quote}
%
-% When one takes advantage of \meta{Alternate}, all index page entries for the name variants occur under the canonical entry. The only additional step that one needs to include is a cross-reference: \cmd{\IndexRef\{Iron Mike\}\{Tyson, Mike\}}\IndexRef{Iron Mike}{Tyson, Mike} which will produce ``Iron Mike \textit{see} Tyson, Mike'' in the index.
+% Because \cmd{\Iron} uses the \meta{Alternate} column, all index page entries are the same as those for \cmd{\Tyson}, the canonical name. Adding the cross-reference via \cmd{\IndexRef} produces ``Iron Mike \textit{see} Tyson, Mike'' in the index.
%
-% \begin{quote}\small\medstretch
+% \begin{quote}
% \begin{tabular}{rlrl}\toprule
-% Macro & Output & Macro & Output\\
-% \rowcolor{nagrey}\cmd{\LIron} \qquad & \LIron &
-% \cmd{\LTyson[Iron Mike]} & \LTyson[Iron Mike]\\
-% \cmd{\Iron} & \Iron & \cmd{\Tyson} & \Tyson\\
-% \rowcolor{nagrey}\cmd{\SIron} & \SIron & \cmd{\STyson} &
-% \STyson\\\bottomrule
+% \rowcolor{nagrey}^^A
+% \bfseries Output & \bfseries Macro &
+% \bfseries Output & \bfseries Macro\\
+%
+% \LIron \qquad & \cmd{\LIron} &
+% \LTyson[Iron Mike] & \cmd{\LTyson[Iron Mike]}\\
+%
+% \rowcolor{nagrey}^^A
+% \Iron & \cmd{\Iron} & \Tyson & \cmd{\Tyson}\\
+%
+% \SIron & \cmd{\SIron} & \STyson & \cmd{\STyson}\\\bottomrule
% \end{tabular}
% \end{quote}
%
@@ -6111,7 +6692,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% We will engage this topic more, beginning with Section~\ref{sec:NameAncient}, Here we give a basic illustration of how one can start to manage these names. For instance:
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{4ex}
% \PatInfo{\ShowPattern{Elizabeth, I}!MN}
% \vspace{-4ex}
@@ -6120,10 +6701,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \< Eliz & & Elizabeth, I & >
% \end{nameauth}
%
-% \LEliz[I, ``Gloriana''] was known also as
-% \ForceFN\SEliz[``Good Queen Bess''].
% \IndexRef{Gloriana}{Elizabeth I}
% \IndexRef[Good Queen]{Bess}{Elizabeth I}
+%
+% \LEliz[I, ``Gloriana''] was known also as
+% \ForceFN\SEliz[``Good Queen Bess''].
% \end{Verbatim}
%
% \LEliz[I, ``Gloriana''] was known also as
@@ -6139,10 +6721,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% endings, or vary in other ways. See Sections~\ref{sec:NameParticles},
% \ref{sec:NameMedieval}, \ref{sec:NameAncient}, \ref{sec:RealAltEx}ff.,
% and~\ref{sec:Romani}, for increasingly complex examples.
+%
% \item Names having separate index entries that are linked together with
% cross-references. Sections~\ref{sec:IndexPageno} and~\ref{sec:IndexRef}
% give many examples, which we will not repeat here because most of the
% work is done with indexing macros.
+%
% \item Names that the author wants to treat as different, yet which the
% \textsf{nameauth} internals might see as the same. One can use the
% naming macros, index tagging macros, and formatting macros to simulate
@@ -6152,7 +6736,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% The following method avoids using macros in name arguments and it is easier to set up. The trade-off is that, while macros in name arguments are harder to set up, they benefit from automation. Below we establish two names and a sort key for the main name under which both names are indexed:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \begin{nameauth}
% \< DuBois & W.E.B. & Du~Bois & >
@@ -6164,9 +6748,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{itemize}
% \item Based on\PatInfo{\ShowPattern[W.E.B.]{Du~Bois}!MN\break
-% \ShowPattern[W.E.B.]{DuBois}!MN} historical research and what we can
-% tell from some name authorities, we decide that the the canonical
-% name will be: \cmd{\DuBois} \ForgetThis\DuBois.
+% \ShowPattern[W.E.B.]{DuBois}!MN} historical research and
+% some name authorities, we decide that the the canonical
+% name will be: \ForgetThis\DuBois\ \cmd{\DuBois}.
+%
% \item We use the non-breaking space (the tilde active character) because
% internally, \textsf{nameauth} removes all regular spaces from
% name patterns. Both \cmd{\Name[W.E.B.]\{Du Bois\}} and
@@ -6174,19 +6759,23 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \texttt{\ShowPattern[W.E.B.]{DuBois}} (Section~\ref{sec:NamePatterns}).
% The name pattern \texttt{\ShowPattern[W.E.B.]{Du~Bois}} differs from
% both of the other names.
+%
% \item Another reason to use the non-breaking space is that it prevents
% a line break between the particle \textit{Du} and the name \textit{Bois}.
+%
% \item The sort key that could be applicable to both names is
% \texttt{\{DuBois, William\}}. Had we used the sort key
% \texttt{\{Du Bois, William\}}, the name would be sorted before
% \texttt{dual}, which is not in order (Section~\ref{sec:IndexInitials}).
+%
% \item Instead of using \cmd{\SkipIndex}\cmd{\AltDuBois} many times, we
% create a cross-reference before the alternate name is used to prevent
% index page entries from being created for the alternate form:
-% \IndexRef[W.E.B.]{DuBois}{Du Bois, W.E.B.}\smallskip\\
+% \IndexRef[W.E.B.]{DuBois}{Du Bois, W.E.B.}\\[1ex]
% | \IndexRef[W.E.B.]{DuBois}{Du Bois, W.E.B.}|
-% \item We can keep full stop detection, modify name forms, and check
-% if the name straddles a page break in order to append
+%
+% \item With the following setup we keep full stop detection, modify name
+% forms, and check if the name straddles a page break in order to append
% |\JustIndex\DuBois| if needed:
%
% \begin{VerbatimOut}{\jobname.tmp}
@@ -6198,7 +6787,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Speaking of \SVarDuBois[William E.B.].
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
@@ -6208,7 +6797,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% automatically handle the name spanning a page break, just like the
% regular naming macros. Yet it is rather inelegant.
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \newcommand\NewDuBois[2]{%
% \def\Test{#1}%
@@ -6223,7 +6812,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \NewDuBois{L}{}\\
% \NewDuBois{S}{William}
% \end{Verbatim}
-% \medskip
+%
% \newcommand\NewDuBois[2]{^^A
% \def\Test{#1}^^A
% \def\Long{L}^^A
@@ -6241,7 +6830,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{Quote}{\ForgetThis\DuBois\break
% \hbox{}\hfill \textit{Darkwater} (1920), C II: The Souls of White Folk}
-% The cause of war is preparation for war.\vspace{-1ex}
+% The cause of war is preparation for war.\negmedskip^^A
+% \index{civil rights leaders, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -6254,10 +6844,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{VerbatimOut}{\jobname.tmp}
% \SubvertThis\CapThis\Name[e.e.]{cummings}'s motif of the
% goat-footed balloon man has underlying sexual themes that
-% nevertheless have a childish facade.
+% nevertheless present a childish facade.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{4ex}
% \BothInfo{\ShowPattern[e.e.]{cummings}!MN}
% {\ShowIdxPageref*[e.e.]{cummings}}
@@ -6272,13 +6862,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Suppose, however, that we want both some kind of name formatting and still use capitalization. We can use the indexing macros discussed in Section~\ref{sec:GeneralIndex}:
%
% \begin{VerbatimOut}{\jobname.tmp}
-% \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.
+% \ExcludeName[e.e.]{cummings's}
+% We consider the work of \ForgetThis\Name[e.e.]{cummings}.
+% \SubvertThis\CapThis\Name[e.e.]{cummings's}
+% motif of the goat-footed balloon man has underlying
+% sexual themes that nevertheless present a childish facade.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{4.5ex}
% \PatInfo{\ShowPattern[e.e.]{cummings's}}
% \vspace{-4.5ex}
@@ -6289,7 +6880,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% In both examples above, we\Warn{} use \cmd{\SubvertThis} to force a subsequent use in order to prevent a first use that looks like ``\ForgetThis\CapThis\Name[e.e.]{cummings's}''. The macro \cmd{\CapThis} will capitalize the first letter in all name elements. Using \cmd{\ExcludeName} keeps one from having to use \cmd{\SkipIndex} every time.
%
-% Section~\ref{sec:AltFormat} explains how to use \cmd{\CapThis} with alternate formatting when using macros in name arguments. Section~\ref{sec:InflNames} describes how automation lends itself to grammatical inflections of names.\medskip
+% Section~\ref{sec:AltFormat} explains how to use \cmd{\CapThis} with alternate formatting when using macros in name arguments. Section~\ref{sec:InflNames} describes how automation lends itself to grammatical inflections of names.
%
% \subsubsection[Variants and Xrefs]{Variant Names and Index Cross-References}
% \label{sec:IdxVariants}
@@ -6297,73 +6888,91 @@ and version 1.3 or later is part of all distributions of LaTeX version
% 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
+% \vspace{5ex}
+% \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
+% \vspace{-5ex}
+% \item We use the canonical name to create page entries:
+% \item[] \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:
+% \item[] \DropAffix\Name*[J.E.]{Carter, Jr.}[Jimmy]\dotfill^^A
+% |\DropAffix\Name*[J.E.]{Carter, Jr.}[Jimmy]|
+% \item[] |\ShowIdxPageref*[J.E.]{Carter, Jr.}[Jimmy]|\dotfill^^A
% \ShowIdxPageref*[J.E.]{Carter, Jr.}[Jimmy]
+%
% \item We must create 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.}|
+% macro, or it will be ignored and a warning will result:
+% \item[] |\IndexRef[Jimmy]{Carter}{Carter, J.E., Jr.}|^^A
% \IndexRef[Jimmy]{Carter}{Carter, J.E., Jr.}
-% \item No page references will occur below because we made the
+%
+% \newpage
+%
+% \item No page entries 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}
+% independent name:
+% \item[] \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.}|
+% canonical name instead of the alternate name:
+% \item[] |\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.}|
+% (at the end of the document), e.g.:
+% \item[] |\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:
+% \subsubsection*{\hfil Multiple Connections}
+%
+% Below, 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{enumerate}
-% \item We use\PatInfo{\ShowPattern{Maimonides}!MN \textrm{(1)}\break
+% \vspace{5ex}
+% \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}
+% \vspace{-5ex}
+% \item We use the canonical name to set up page entries:
+% \item[] \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}|
+% reference:
+% \item[] |\IndexRef{Moses, ben-Maimon}{Maimonides}|^^A
% \IndexRef{Moses, ben-Maimon}{Maimonides}
+%
% \item We 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 xref first:\smallskip\\
-% \hbox{}\qquad|\Name{Moses, ben-Maimon}|\dotfill \Name{Moses, ben-Maimon}
+% reference'' to that name. No page entries will occur below because
+% we made the xref first:
+% \item[] \Name{Moses, ben-Maimon}\dotfill |\Name{Moses, ben-Maimon}|
+%
% \item Before creating \textit{see also} cross-references, we use the other
% alias so that all the page entries precede the
-% cross-references:\smallskip\\
-% \hbox{}\qquad|\Name{Rambam}|\dotfill \Name{Rambam}
-% \item All \textit{see also} references must come after all page references.
+% cross-references:
+% \item[] \Name{Rambam}\dotfill |\Name{Rambam}|
+%
+% \item All \textit{see also} references must come after all page entries.
% 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}|
+% document:
+% \item[] |\SeeAlso\IndexRef{Maimonides}{Rambam}|\\
+% \SeeAlso\IndexRef{Maimonides}{Rambam}^^A
+% |\SeeAlso\IndexRef{Rambam}{Maimonides}|^^A
% \SeeAlso\IndexRef{Rambam}{Maimonides}
% \end{enumerate}
%
-% There\Info{Multiple targets} is a case where one cross-reference can point to multiple targets, such as demonstrated in the example below:
+% \subsubsection*{\hfil Multiple Targets}
+%
+% There is a case where one cross-reference can point to multiple targets, such as demonstrated in the example below:
%
% \begin{VerbatimOut}{\jobname.tmp}
% \PretagName{\textit{Snellius}}{Snellius}
@@ -6374,7 +6983,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% by the Latin moniker \Name{\textit{Snellius}}.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{5ex}
% \PatInfo{\ShowPattern{\textit{Snellius}}!PRE\break
% \ShowPattern{\textit{Snellius}}!PN\break
@@ -6388,16 +6997,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% One must plan the location of xrefs or use \cmd{\IncludeName*}. Above, we have no page entry for |\Name{\textit{Snellius}}| because \cmd{\IndexRef} comes first.
%
-% \begin{Quote}{\ForgetThis\Name{Maimonides},
-% \textit{Guide for the Perplexed} (1190)}
-% For a truth, once established by proof, does neither gain force nor certainty by the consent of all scholars, nor lose by the general dissent.
-% \end{Quote}
-%
-% \newpage
-%
% \subsection{Using a Name Authority}
%
-% 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} was typeset using \LaTeX, but had to be converted to a different format.}
+% 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} had been typeset using \LaTeX, but then had to be converted to a different format.}
%
% Constructing that name authority of over 500 names was a challenge. The deceased translator left names in abbreviated Latin. He left many place-names in Latin and incorrectly translated some others. To get valid names that one can research, the present author recommends:
%
@@ -6419,13 +7021,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item If Latin names are only cross-references, use
% \cmd{\IndexRef}\meta{name args} to generate cross-references
% before referring to any names (Section~\ref{sec:IndexRef}).
-% \item If Latin names have page references, then place
+% \item If Latin names have page entries, then place
% \cmd{\SeeAlso}\cmd{\IndexRef}\meta{name args} as needed
% at the end of the document, before \cmd{\printindex}.
% \item Use \cmd{\CapThis} (Section~\ref{sec:NameParticles}).
% \end{enumerate*}
%
-% \begin{quote}\small
+% \begin{quote}
% \vspace{3.5ex}
% \BothInfo{\ShowPattern[Jacques]{De~Pamele}!MN\break
% \ShowPattern[Jacobus]{Pamelius}!MN\break
@@ -6448,7 +7050,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \Name[Ioannes]{Andreae}
% \end{Verbatim}
% \end{quote}
-% \negmedskip
%
% \IndexRef[Jacobus]{Pamelius}{De~Pamele, Jacques}
% \IndexRef[Ioannes]{Andreae}{d'Andrea, Giovanni}
@@ -6463,7 +7064,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \Name[Ioannes]{Andreae}
% \end{itemize}
%
-% \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}.\negmedskip
+% \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
%
@@ -6478,7 +7079,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% We thus merge the two concepts of syntax and formatting to create more complex examples that are able to do more complicated things with names. We thus can meet a few specific, real-world cultural expectations and scholarly conventions.
%
-% Before we delve into this section, below we see a general scheme of how the core name engine processes a name:\bigskip
+% Before we delve into this section, below we see a general scheme of how the core name engine processes a name:
%
% \begin{tcolorbox}[colback=white,
% adjusted title={\bfseries Naming Macro Layer}]
@@ -6542,10 +7143,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage{nameauth}
+%
% \makeindex
%
% % First save main- and front-matter hooks. Then change
@@ -6572,7 +7174,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \SubvertThis\Name*{Vlad, {\c T}epe{\c s}}
% (\Name*{Vlad, {\c T}epe{\c s}}[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
+% a member of the Order of the Dragon. Later instances of
% ``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
%
% The new format (main matter):\NamesActive
@@ -6582,7 +7184,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \SubvertThis\Name*{Vlad, {\c T}epe{\c s}}
% (\Name*{Vlad, {\c T}epe{\c s}}[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
+% a member of the Order of the Dragon. Later instances of
% ``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
%
% \let\NamesFormat\OldFormat
@@ -6602,7 +7204,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \let\OldFormat\NamesFormat
@@ -6620,7 +7222,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \SubvertThis\Name*{Vlad, {\c T}epe{\c s}}
% (\Name*{Vlad, {\c T}epe{\c s}}[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
+% a member of the Order of the Dragon. Later instances of
% ``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
%
% The new format (main matter):\NamesActive
@@ -6630,7 +7232,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \SubvertThis\Name*{Vlad, {\c T}epe{\c s}}
% (\Name*{Vlad, {\c T}epe{\c s}}[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
+% a member of the Order of the Dragon. Later instances of
% ``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
%
% \let\NamesFormat\OldFormat
@@ -6649,10 +7251,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% The reason why we redefine \cmd{\NamesFormat} is because it is more common to add extra information with the first mention of a name. Yet one similarly could redefine \cmd{\MainNameHook} or \cmd{\FrontNameHook} for subsequent uses of names.
%
-% \subsection{Data tags in Hooks}
+% \subsection{Name Tags in Hooks}
% \label{sec:DataTagHooks}
%
-% By recalling name data tags (Section~\ref{sec:DataTags}) in formatting hooks, one can automate how they either appear with a name or not. This package is all about automation and the associated trade-offs.
+% By recalling name tags (Section~\ref{sec:DataTags}) in formatting hooks, one can automate how they either appear with a name or not. This package is all about automation and the associated trade-offs.
%
% Formatting hooks are called within a local scope. They take zero or one argument (Section~\ref{sec:Formatting}). When they take one argument, they have the option to print that argument, add information to the argument, or discard the argument. Yet macros used in formatting hooks can present challenges that we show how to manage:
%
@@ -6672,7 +7274,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\@nameauth@toksc}
% Historically, these registers have been necessary for names that contain accents and diacritics. In Section~\ref{sec:AKA}, these registers correspond to the \emph{last} three name arguments. They can be used, if needed, in formatting hooks by \textsf{nameauth} macros that take name arguments.
%
-% Their chief use, historically speaking, was to facilitate retrieving name data tags via \cmd{\NameQueryInfo}. That use has been superseded by \cmd{\NameauthPattern}, which is described in Section~\ref{sec:NamePatterns}.
+% Their chief use, historically speaking, was to facilitate retrieving name tags via \cmd{\NameQueryInfo}. That use has been superseded by \cmd{\NameauthPattern}, which is described in Section~\ref{sec:NamePatterns}.
%
% \newpage
%
@@ -6683,7 +7285,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection*{\hfil Recommended Template}
%
-% The hook below prints the name data tag with the first use of a name in the main-matter system, if such a tag exists. It is simple, it avoids the \cmd{\NameQueryInfo} problem, and it is easy to debug.
+% The hook below prints the name tag with the first use of a name in the main-matter system, if such a tag exists. It is simple, it avoids the \cmd{\NameQueryInfo} problem, and it is easy to debug.
%
% \begin{quote}
% \begin{Verbatim}
@@ -6699,7 +7301,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection*{\hfil Older Templates}
%
-% Two other hook designs were used in the past to display name data tags. They are included here only for the sake of illustration. After showing the templates, we test all three of them to show why we recommend the template above.
+% Two other hook designs were used in the past to display name tags. They are included here only for the sake of illustration. After showing the templates, we test all three of them to show why we recommend the template above.
%
% We use \(\epsilon\)-\TeX\ features next. See \href{https://tex.stackexchange.com/questions/140785/how-is-unexpanded-defined}{\bfseries this page} on the use of \cmd{\unexpanded} and \href{https://tex.stackexchange.com/questions/61223/explanations-about-begingroup-edef-x-endgroup}{\bfseries another page} pertinent to the structure of this hook. We print the name, expand the arguments of \cmd{\NameQueryInfo}, and use those arguments to print the tag.
%
@@ -6764,7 +7366,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{quote}
% The macro \cmd{\testname} contains the first part of our test output.
-% The name data tag contains the second part. We will use both name
+% The name tag contains the second part. We will use both name
% interfaces with all three templates.
%
% \VerbatimInput[gobble=0]{\jobname.tmp}
@@ -6884,7 +7486,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \cmd{\Dem}\dotfill \Dem
% \end{Block}
%
-% As discussed in Section~\ref{sec:Complexity}, simple examples do not lend themselves to automation. Below we trade automation, where we do not need to add information manually to the \meta{Alternate} argument, for a complex initial setup that uses name data tags and the recommended template:
+% As discussed in Section~\ref{sec:Complexity}, simple examples do not lend themselves to automation. Below we trade automation, where we do not need to add information manually to the \meta{Alternate} argument, for a complex initial setup that uses name tags and the recommended template:
%
% \begin{quote}
% \vspace{3ex}
@@ -6927,16 +7529,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \TagName{Demetrius, I}{ Soter, king\string|hyperpage}
% \endgroup
%
-% The first use of a name, or one after the use of \cmd{\ForgetName} or \cmd{\ForgetThis}, shows the most information. A long reference to an extant name shows a little less info, and a short reference shows the least. Every difference in name form corresponds with a macro in a known state.
+% The first use of a name, or one after the use of \cmd{\ForgetName} or \cmd{\ForgetThis}, shows the most information. A long instance of an extant name shows a little less info, and a short instance shows the least. Every difference in name form corresponds with a macro in a known state.
% \endgroup^^A Local format hook redefinition
%
% \subsubsection[Life Dates]{Application: Life Dates}
%
% \begingroup^^A Local format hook redefinition
%
-% History texts tend to use life dates, regnal dates, and dates when certain figures flourished. As we used more information with ancient names via name data tags, we can do something similar here.
+% History texts tend to use life dates, regnal dates, and dates when certain figures flourished. As we used more information with ancient names via name tags, we can do something similar here.
%
-% First we must create any data tags that might be used. Whether it is in the preamble or in the body text, the main point is that the tag can only be used if it exists. The tags have a leading space because they are printed conditionally.
+% First we must create any name tags that might be used. Whether it is in the preamble or in the body text, the main point is that the tag can only be used if it exists. The tags have a leading space because they are printed conditionally.
%
% We also define a cross-reference ``Atat\"urk,'' yet we use naming macros with that name, printing formatted names in the text but making no index page entries. We add a Boolean flag to the formatting hook that lets us suppress dates in first uses as needed, while normally displaying dates in first uses by default. Below we suppress the usual formatting of this manual.
%
@@ -6945,13 +7547,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage{nameauth}
+%
% \makeindex
%
-% % Add data tags to names.
+% % Add name tags to names.
% \NameAddInfo[George]{Washington}{ (1732--99)}
% \NameAddInfo[Mustafa]{Kemal}{ (1881--1938)}
% \NameAddInfo{Atat\"urk}{ (in 1934, a special surname)}
@@ -6960,11 +7563,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% % has no page entries in the index.
% \IndexRef{Atat\"urk}{Kemal, Mustafa}
%
-% % Manually suppress data tag in ``first'' reference
+% % Manually suppress name tag in ``first'' instance
% \newif\ifNoTag
%
% % Redesign formatting hook to usually print a tag
-% % only in ``first'' reference. On exit, It resets
+% % only in ``first'' instance. On exit, It resets
% % the flag that suppresses tags, making that flag
% % work only once per name use.
%
@@ -6985,7 +7588,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% president from 1789 to 1797. \Name[George]{Washington} was the only
% president whose term in office was completely in the eighteenth
% century. If we need to trigger the first use hook at some point,
-% we can suppress dates and get an automatic long reference via:
+% we can suppress dates and get an automatic long instance via:
% \NoTagtrue\ForgetThis\Name[George]{Washington}. Or we can trigger
% the first-use hook in a subsequent name use and still have dates:
% \ForceName\Name[George]{Washington}.
@@ -6994,7 +7597,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% references. For example, \Name[Mustafa]{Kemal} was granted
% the name \Name{Atat\"urk}. We mention \Name[Mustafa]{Kemal}
% and \Name{Atat\"urk} again. Likewise, we can trigger a
-% first use, but with no data tag tag:
+% first use, but with no name tag tag:
% \NoTagtrue\ForgetThis\Name{Atat\"urk}.
%
% \printindex
@@ -7017,35 +7620,35 @@ and version 1.3 or later is part of all distributions of LaTeX version
% }
% \renewcommand*\MainNameHook{}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,lastline=34]{\NameauthTestFile}
% \end{quote}
%
% Up to this point it seems as if there has been a lot of setup. The payoff, however, comes in the main body text where the use of the naming macros does not look much different than normal.
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,firstline=35,lastline=45]{\NameauthTestFile}
%
% \ForgetThis\Name[George]{Washington} held office as the first US
% president from 1789 to 1797. \Name[George]{Washington} was the only
% president whose term in office was completely in the eighteenth
% century. If we need to trigger the first use hook at some point,
-% we can suppress dates and get an automatic long reference via:
+% we can suppress dates and get an automatic long instance via:
% \NoTagtrue\ForgetThis\Name[George]{Washington}. Or we can trigger
% the first-use hook in a subsequent name use and still have dates:
% \ForceName\Name[George]{Washington}.
% \end{quote}
%
-% Since we already set up a cross-reference with \cmd{\IndexRef}, we can use just the the naming macros with ``Atat\"urk'' and get the desired formatting without any page references in the index:
+% Since we already set up a cross-reference with \cmd{\IndexRef}, we can use just the the naming macros with ``Atat\"urk'' and get the desired formatting without any page entries in the index:
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,firstline=46]{\NameauthTestFile}
%
% We can add name info tags to names used only as cross-
% references. For example, \Name[Mustafa]{Kemal} was granted
% the name \Name{Atat\"urk}. We mention \Name[Mustafa]{Kemal}
% and \Name{Atat\"urk} again. Likewise, we can trigger a
-% first use, but with no data tag tag:
+% first use, but with no name tag tag:
% \NoTagtrue\ForgetThis\Name{Atat\"urk}.
% \end{quote}
%
@@ -7060,7 +7663,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% The first thing we need to know is how to enable and disable alternate formatting:
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{lcc}\toprule
% Macro & Enabled & Activated\\\midrule
% \cmd{\AltFormatActive} & \YES & \YES\\
@@ -7081,17 +7684,17 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{itemize}
%
% \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*}.\medskip
+% 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*}.
%
% \DescribeMacro{\AltFormatActive*}
-% The starred form \cmd{\AltFormatActive*} enables alternate formatting but deactivates the built-in alternate 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
+% The starred form \cmd{\AltFormatActive*} enables alternate formatting but deactivates the built-in alternate 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}.
%
% \newpage
%
% \DescribeMacro{\AltFormatInactive}
-% This macro both disables and deactivates alternate formatting. This reverts globally to standard formatting and the normal function of \cmd{\CapThis}. \medskip
+% This macro both disables and deactivates alternate formatting. This reverts globally to standard formatting and the normal function of \cmd{\CapThis}.
%
-% Most \textsf{nameauth}\Info{Global scope} macros that turn things on and off have a local scope unless one uses \cmd{\global}. These alternate formatting macros have global scope to eliminate implied scope becoming a point of failure, creating spurious index entries.
+% Most \textsf{nameauth} macros that turn things on and off have a local scope unless one uses \cmd{\global}. These alternate formatting macros have global scope to eliminate implied scope becoming a point of failure, creating spurious index entries.\medskip
%
% \begin{InfoBox}
% The macros above \emph{always} make global changes. Using names designed for alternate formatting in a document section that uses regular formatting will produce an inconsistent appearance in the text and spurious index entries.
@@ -7099,16 +7702,17 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \negmedskip
%
% \subsubsection{Using \texttt{\textbackslash noexpand}}
+% \label{sec:Noexpand}
%
% As we get into advanced formatting, we will encounter \cmd{\noexpand} with greater frequency. Even before we consider that discussion, we need to touch on a few ways that macros can break \textsf{nameauth} when used in name arguments.
%
% In order to handle the inherent ambiguity of name forms, macros that take name arguments trade a certain ``fragility'' for the ability to be as close to natural language as possible. In versions of \textsf{nameauth} before 3.5, enclosing an \meta{SNN},\meta{Affix} argument within a robust macro like \cmd{\textsc} would halt \LaTeX\ with errors. That seems to be no longer the case. Nevertheless, depending on the macros used, it may be helpful to apply macros separately to \meta{SNN} and \meta{Affix} like this:
%
% \begin{quote}
-% |\Name{\noexpand\MyMacro{|\meta{SNN}|},\noexpand\MyMacro{|\meta{Affix}|}}|.
+% |\Name{\noexpand\MyMacro{|\meta{SNN}|},\noexpand\MyMacro{|\meta{Affix}|}}|
% \end{quote}
%
-% Using \cmd{\CapThis} with a name whose leading element is a macro may fail, depending on the particular macro. Use alternate formatting to have \cmd{\CapThis} activate the alternate capitalization mechanism.
+% Using \cmd{\CapThis} with a name whose leading element is a macro may fail, depending on the particular macro. Use alternate formatting to have \cmd{\CapThis} activate the alternate capitalization mechanism.\medskip
%
% \NameArgWarning
%
@@ -7133,7 +7737,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsubsection[Capitalization]{Alternate Capitalization}
% \AltFormatActive
%
-% Above we referred to potential problems using \cmd{\CapThis}. When alternate formatting is enabled, \cmd{\CapThis} changes its mechanism to avoid such problems.\medskip
+% Above we referred to potential problems using \cmd{\CapThis}. When alternate formatting is enabled, \cmd{\CapThis} changes its mechanism to avoid such problems.
%
% \DescribeMacro{\AltCaps}
% Using the aid of the helper macro \cmd{\AltCaps}, \cmd{\CapThis} will cause \cmd{\AltCaps} to capitalize its argument only in a formatting hook. \cmd{\AltCaps} is enabled whenever alternate formatting is enabled, but it works independently of both \cmd{\AltOn} and \cmd{\AltOff}, which are covered in the next section. We describe the syntax:
@@ -7152,10 +7756,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \Name*[\noexpand\AltCaps{a}]{Name}.
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
-% \input{\jobname.tmp}
+% \input{\jobname.tmp}^^A
+% \index{Shakespearian rose, references to\noexpand\string|hyperpage}
% \end{quote}
%
% \cmd{\AltCaps} does not partition its argument, so it will not have the same issues as the normal use of \cmd{\CapThis}, adding to stability and robustness at the expense of doing a little more work.
@@ -7189,7 +7794,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \Name{\noexpand\textUC{Kanade}, Takeo}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
%
% \input{\jobname.tmp}
@@ -7197,13 +7802,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% Font substitutions might occur with these macros, depending on the font used. \cmd{\CapName}, \cmd{\RevComma}, and \cmd{\RevName} can modify the names, but only in the text.
%
-% The alternate formatting macros shown above become more interesting when we automate how they turn on and off. Using \cmd{\noexpand} is necessary here. Both macros below are used in formatting hooks. They hide some complexity from authors.\medskip
+% The alternate formatting macros shown above become more interesting when we automate how they turn on and off. Using \cmd{\noexpand} is necessary here. Both macros below are used in formatting hooks. They hide some complexity from authors.
%
-% Vaguely reminiscent of depressing\DescribeMacro{\AltOff}\ an automobile's manual clutch lever, \cmd{\AltOff} deactivates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook. The alternate formatting mechanism is still ``running'', but it is not transferring ``power'' to the formatting macros. They display their arguments unmodified.\medskip
+% Vaguely reminiscent of depressing\DescribeMacro{\AltOff}\ an automobile's manual clutch lever, \cmd{\AltOff} deactivates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook. The alternate formatting mechanism is still ``running'', but it is not transferring ``power'' to the formatting macros. They display their arguments unmodified.
%
-% Likewise, \cmd{\AltOn}\DescribeMacro{\AltOn}\ activates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook, as if one let out the clutch pedal, causing ``power'' to transfer through the gearbox to the formatting macros. They now modify their arguments.\medskip
+% Likewise, \cmd{\AltOn}\DescribeMacro{\AltOn}\ activates \cmd{\textSC}, \cmd{\textBF}, \cmd{\textIT}, and \cmd{\textUC} only in a formatting hook, as if one let out the clutch pedal, causing ``power'' to transfer through the gearbox to the formatting macros. They now modify their arguments.
%
-% If one uses the \texttt{altformat} option or \cmd{\AltFormatActive}, the formatting ``power'' goes to the formatting macros by default in order to have formatted names in the index. Otherwise, the normal formatting regime isolates formatting in the text, as the Anglosphere is wont to do.
+% If one uses the \texttt{altformat} option or \cmd{\AltFormatActive}, the formatting ``power'' goes to the formatting macros by default in order to have formatted names in the index. Otherwise, the normal formatting regime isolates formatting in the text, as the Anglosphere seems wont to do.
%
% We use \cmd{\noexpand} as discussed and add a formatting hook to get changes in the text, not in the index. We also suspend this manual's formatting conventions:
%
@@ -7212,10 +7817,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% \PretagName[Konrad]{\noexpand\textSC{Zuse}}{Zuse, Konrad}
@@ -7241,7 +7847,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \renewcommand*\NamesFormat{}
@@ -7273,10 +7879,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% \begin{nameauth}
@@ -7308,7 +7915,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{VerbatimOut}
%
% \renewcommand*\MainNameHook{\sffamily\AltOff}
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \ForgetThis\Luth\ was a leading figure in the Protestant
@@ -7326,9 +7933,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Comparing the example above to Section~\ref{sec:NameParticles} shows us some differences. Medieval Italian, similar to modern German, keeps the particle(s) with the forename(s). Modern Italian groups particles and surnames together. Thus, we must use here:
%
% \begin{itemize}
-% \item \parbox{0.3\textwidth}{\LCath[\noexpand\AltCaps{d}e']}
+% \item \parbox{0.2\textwidth}{\LCath[\noexpand\AltCaps{d}e']}
% |\LCath[\noexpand\AltCaps{d}e']|
-% \item \parbox{0.3\textwidth}{\CapThis\LCath[\noexpand\AltCaps{d}e']}
+% \item \parbox{0.2\textwidth}{\CapThis\LCath[\noexpand\AltCaps{d}e']}
% |\CapThis\LCath[\noexpand\AltCaps{d}e']|
% \end{itemize}
% \endgroup^^A Local format hook redefinition
@@ -7350,10 +7957,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% \newif\ifGenitive
@@ -7379,16 +7987,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{document}
%
% Consider \Genitivetrue\Jeff\ legacy as the author of the
-% colonies' Declaration of Independence and his impact as third
-% president of the United States. \Jeff\ was a complex historical
-% figure whose actions defy a consistent moral compass both in
-% public policy and in personal affairs.
+% colonies' \textit{Declaration of Independence} and his impact
+% as third president of the United States. \Jeff\ was a complex
+% historical figure whose actions defy a consistent moral compass
+% both in public policy and in personal affairs.
%
% \printindex
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \renewcommand*\NamesFormat[1]
@@ -7397,10 +8005,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\ifGenitive\DoGenitivetrue\fi\AltOff#1\global\Genitivefalse}
%
% Consider \Genitivetrue\Jeff\ legacy as the author of the
-% colonies' Declaration of Independence and his impact as third
-% president of the United States. \Jeff\ was a complex historical
-% figure whose actions defy a consistent moral compass both in
-% public policy and in personal affairs.
+% colonies' \textit{Declaration of Independence} and his impact
+% as third president of the United States. \Jeff\ was a complex
+% historical figure whose actions defy a consistent moral compass
+% both in public policy and in personal affairs.
% \end{quote}
% \endgroup^^A Local format hook redefinition
%
@@ -7411,12 +8019,16 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{itemize}
% \item Sort all names that use alternate formatting.
+%
% \item Match index entry forms to article head-words. Name variants
% are cross-referenced to the name form in the head-word.
+%
% \item Ensure that the first appearance of a name displays only the
% active alternate formatting. Any additional formatting comes from
-% the macro that formats entries.
-% \item Deactivate alternate formatting in subsequent name references.
+% the macro that formats entries.
+%
+% \item Deactivate alternate formatting in subsequent name instances.
+%
% \item Since some \LaTeX\ fonts do not combine small caps and boldface,
% we instead use slanted text to set the head-words off from the articles.
% That font switch is done in the macro that formats the articles
@@ -7428,10 +8040,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% % Sort any names with macros in the arguments.
@@ -7494,7 +8107,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \IndexRef[Heinrich Wilhelm]{\noexpand\textSC{R\"uhmann}}
@@ -7540,8 +8153,10 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \AltFormatInactive
%
% \begin{Quote}{\Name[L.M.]{Montgomery},
-% \textit{Anne of Green Gables}, C 5}
-% I read in a book once that a rose by any other name would smell as sweet, but I've never been able to believe it. I don't believe a rose \textsc{would} be as nice if it was called a thistle or a skunk cabbage.
+% \textit{Anne of Green Gables}, C 5 (1908)}
+% I read in a book once that a rose by any other name would smell as sweet, but I've never been able to believe it. I don't believe a rose \textsc{would} be as nice if it was called a thistle or a skunk cabbage.^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}^^A
+% \index{Shakespearian rose, references to\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -7559,7 +8174,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% surname and the rest forenames:\footnote{Philip J. Adler, \textit{World
% Civilizations}, 3rd ed. (Belmont, Calif.: Thomson/Wadsworth, 2003).}
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \TagName[Julius]{Caesar}{, imperator} % for index
% \Name[Julius]{Caesar}[Gaius Julius]\\
@@ -7578,7 +8193,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Historian Looks at Christmas, Easter, and the Early Church}, revised ed.
% (San Francisco: Harper, 1991).}
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \ForgetThis\Name[Lucius]{Sergius Paulus}\\
% \Name[Lucius]{Sergius Paulus}
@@ -7591,26 +8206,28 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \item Treat as ancient names, especially those with no \textit{praenomen}:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \ForgetThis\Name{Pontius, Pilate}[Pilatus]\\
% \Name*{Pontius, Pilate}\\
-% \Name{Pontius, Pilate}\\
+% \ForceFN\FName{Pontius, Pilate}
% \end{Verbatim}
% \ForgetThis\Name{Pontius, Pilate}[Pilatus]^^A
% \PatInfo{\ShowPattern{Pontius, Pilate}[Pilatus]!MN}\\
% \Name*{Pontius, Pilate}\\
-% \Name{Pontius, Pilate}\\[1ex]
-% Index: \ShowIdxPageref*{Pontius, Pilate}^^A
+% \ForceFN\FName{Pontius, Pilate}\\[1ex]
+% Index: \ShowIdxPageref*{Pontius, Pilate}
% \end{quote}
% \end{itemize}
%
% There is also a method where Roman names are indexed as mononyms using the most recognizable of their names.\footnote{Justo L. González, \textit{The Story of Christianity}, 2 vols. (San Francisco: Harper, 1984).} That method is ill-suited for \textsf{nameauth}.
%
% \begin{Quote}{\ForgetThis\Name[Julius]{Caesar},
-% \textit{De bello gallico} 3.16.6}
-% Fere libenter homines, id quod volunt, credunt.\\
-% (In general, people willingly believe what they want [to believe].)
+% \textit{\la{De bello gallico}} 3.16.6 (58–49 \textsc{bc})}
+% \la{Fere libenter homines, id quod volunt, credunt.}
+%
+% (In general, people willingly believe what they want [to believe].)^^A
+% \index{Romans, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -7632,8 +8249,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% (\textit{agnomina})
% \end{itemize}
%
-% In ancient Rome, the family name (\textit{nomen}) was important, helping also to structure society.\footnote{\url{https://en.wikipedia.org/wiki/Patrician_(ancient_Rome)}}
-% The exact roles of names changed over time.\footnote{\url{https://en.wikipedia.org/wiki/Roman_naming_conventions}}
+% In ancient Rome, the family name (\textit{nomen}) was important, helping also to structure society. \href{https://en.wikipedia.org/wiki/Patrician_(ancient_Rome)}{This page} offers a good overview.
+% The exact roles of names changed over time. \href{https://en.wikipedia.org/wiki/Roman_naming_conventions}{Another page} gives an overview of Roman naming conventions.
% A very \href{https://www.youtube.com/watch?v=RMLb1jVl_Uo}{helpful video} can be found on the YouTube channel PolýMATHY by \Name[Luke]{Ranieri}.
%
% Some reference works 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{https://books.infotoday.com/books/Indexing-names.shtml}{\bfseries this page}.}
@@ -7669,16 +8286,17 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item If the macros in the name arguments will be ``segmented'' in some
% way, as \cmd{\CapThis} does, then use alternate formatting
% (Sections~\ref{sec:AltFormat}).
+%
% \item When using Boolean flags (\texttt{\textbackslash if}\meta{flag}) in
% the macros that represent name elements, ensure that those flags only change
% their value within the local scope of the name formatting hooks
% (Section~\ref{sec:Formatting}).
+%
% \item Two Boolean flags are needed for each automated variant in the name. One
% flag reflects the global state and the name form in the index. The other
% reflects the local state of the formatting hooks.
% \end{itemize}
%
-% \negmedskip
% \NameArgWarning
%
% Since we have four name components, we need at most eight Boolean flags. Our two examples each use six flags, with four in common and one separate pair each. In the preamble we define all macros and conditionals used in naming macro arguments. Instead of \texttt{\textbackslash ifNoNomen} we use \texttt{\textbackslash ifNoGens} for readability.
@@ -7692,10 +8310,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% % Global Boolean flags need to be defined only once.
@@ -7747,7 +8366,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \< TGrac & \noexpand\TSemp & Gracchus & >
% \end{nameauth}
%
-% % We add the name data tag.
+% % We add the name tag.
% \NameAddInfo[\noexpand\TSemp]{Gracchus}
% { (consul, 177 \textsc{bc})}
%
@@ -7792,8 +8411,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \global\NoAgnomenfalse%
% }
%
-% \Scipio\ was born around 236 \textsc{bc} into the
-% Scipiones branch of the Cornelii clan.
+% \NoAgnomentrue\Scipio\ was born around 236 \textsc{bc}
+% into the Scipiones branch of the Cornelii clan.
% \NoAgnomentrue\Scipio\ rose to military fame during the
% Second Punic War. Thereafter he was known as \Scipio.
% He flourished during the Egyptian reigns of
@@ -7804,7 +8423,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% % We make no change to \MainNameHook, but we do
% % change \NamesFormat to display any extant
-% % name data tags.
+% % name tags.
%
% \renewcommand*\NamesFormat[1]
% {%
@@ -7824,7 +8443,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \TGrac\ served as tribune of the plebs in 184 \textsc{bc}.
% \NoGenstrue\STGrac\ was elected praetor for 180 \textsc{bc},
-% after which he was appointed governor of Hispania Citerior.
+% after which he was appointed governor of Hispania Citerior,
% serving with the rank of proconsul. In 177 \textsc{bc},
% he was elected consul, again in 163 \textsc{bc}.
%
@@ -7863,15 +8482,15 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \global\NoCognomenfalse^^A
% \global\NoAgnomenfalse^^A
% }
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0, firstline=75, lastline=87]{\NameauthTestFile}
%
% \newpage
%
% \VerbatimInput[gobble=0, firstline=88, lastline=110]{\NameauthTestFile}
%
-% \Scipio\ was born around 236 \textsc{bc} into the
-% Scipiones branch of the Cornelii clan.
+% \NoAgnomentrue\Scipio\ was born around 236 \textsc{bc}
+% into the Scipiones branch of the Cornelii clan.
% \NoAgnomentrue\Scipio\ rose to military fame during the
% Second Punic War. Thereafter he was known as \Scipio.
% He flourished during the Egyptian reigns of
@@ -7884,20 +8503,20 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Below we show more name name variations than were shown above. In addition, we use those same formatting hooks to display non-Roman names:
%
% \begin{Block}
-% |\ForgetThis\Scipio|\dotfill\ForgetThis\Scipio\\
-% |\LScipio|\dotfill\LScipio\\
-% |\Scipio|\dotfill\Scipio\\
-% |\SScipio|\dotfill\SScipio\\[2ex]
-% |\NoAgnomentrue\LScipio|\dotfill\NoAgnomentrue\LScipio\\
-% |\NoAgnomentrue\Scipio|\dotfill\NoAgnomentrue\Scipio\\
-% |\NoGenstrue\SScipio|\dotfill\NoGenstrue\SScipio\\
-% |\NoPraenomentrue\SScipio|\dotfill\NoPraenomentrue\SScipio\\[2ex]
-% |\Name*{Ptolemy, IV}[IV Philopator]|\dotfill\Name*{Ptolemy, IV}[IV Philopator]\\
-% |\Name*{Ptolemy, IV}|\dotfill\Name*{Ptolemy, IV}\\
-% |\Name{Ptolemy, IV}|\dotfill\Name{Ptolemy, IV}
+% \ForgetThis\Scipio \dotfill |\ForgetThis\Scipio|\\
+% \LScipio \dotfill |\LScipio|\\
+% \Scipio \dotfill |\Scipio|\\
+% \SScipio \dotfill |\SScipio|\\[2ex]
+% \NoAgnomentrue\LScipio \dotfill |\NoAgnomentrue\LScipio|\\
+% \NoAgnomentrue\Scipio \dotfill |\NoAgnomentrue\Scipio|\\
+% \NoGenstrue\SScipio \dotfill |\NoGenstrue\SScipio|\\
+% \NoPraenomentrue\SScipio \dotfill |\NoPraenomentrue\SScipio|\\[2ex]
+% \Name*{Ptolemy, IV}[IV Philopator]\dotfill |\Name*{Ptolemy, IV}[IV Philopator]|\\
+% \Name*{Ptolemy, IV}\dotfill |\Name*{Ptolemy, IV}|\\
+% \Name{Ptolemy, IV}\dotfill |\Name{Ptolemy, IV}|
% \end{Block}
%
-% In Section~\ref{sec:NameAncient}, we used name data tags instead of \meta{Alternate} in the first-use formatting hook. Here we show the changes needed to add name data tags to the first-use formatting hook. Even though we are changing the formatting hooks throughout the document, none of the changes cause different index entries and will be unnoticed in the finished document.
+% In Section~\ref{sec:NameAncient}, we used name tags instead of \meta{Alternate} in the first-use formatting hook. Here we show the changes needed to add name tags to the first-use formatting hook. Even though we are changing the formatting hooks throughout the document, none of the changes cause different index entries and will be unnoticed in the finished document.
%
% \NameAddInfo[\noexpand\TSemp]{Gracchus}
% { (consul, 177 \textsc{bc})}
@@ -7916,12 +8535,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \global\NoCognomenfalse^^A
% \global\NoAgnomenfalse^^A
% }
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,firstline=111]{\NameauthTestFile}
%
% \TGrac\ served as tribune of the plebs in 184 \textsc{bc}.
-% \NoGenstrue\STGrac\ was elected praetor for 180 \textsc{bc},
-% after which he was appointed governor of Hispania Citerior.
+% \TGrac\ was elected praetor for 180 \textsc{bc},
+% after which he was appointed governor of Hispania Citerior,
% serving with the rank of proconsul. In 177 \textsc{bc},
% he was elected consul, again in 163 \textsc{bc}.
% \end{quote}
@@ -7929,24 +8548,30 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Below we show both a Roman name and a different name type working the same way with the formatting hook:
%
% \begin{Block}
-% |\ForgetThis\TGrac|\dotfill\ForgetThis\TGrac\\
-% |\LTGrac|\dotfill\LTGrac\\
-% |\NoGenstrue\LTGrac|\dotfill\NoGenstrue\LTGrac\\
-% |\TGrac|\dotfill\TGrac\\
-% |\STGrac|\dotfill\STGrac\\
-% |\NoGenstrue\STGrac|\dotfill\NoGenstrue\STGrac\\
-% |\NoPraenomentrue\STGrac|\dotfill\NoPraenomentrue\STGrac\\[2ex]
-% |\ForgetThis\Dem|\dotfill\ForgetThis\Dem\\
-% |\LDem|\dotfill\LDem\\
-% |\Dem|\dotfill\Dem
+% \ForgetThis\TGrac \dotfill |\ForgetThis\TGrac|\\
+% \LTGrac \dotfill |\LTGrac|\\
+% \NoGenstrue\LTGrac \dotfill |\NoGenstrue\LTGrac|\\
+% \TGrac \dotfill |\TGrac|\\
+% \STGrac \dotfill |\STGrac|\\
+% \NoGenstrue\STGrac \dotfill |\NoGenstrue\STGrac|\\
+% \NoPraenomentrue\STGrac \dotfill |\NoPraenomentrue\STGrac|\\[2ex]
+% \ForgetThis\Dem \dotfill |\ForgetThis\Dem|\\
+% \LDem \dotfill |\LDem|\\
+% \Dem \dotfill |\Dem|
% \end{Block}
%
+% \begingroup
+% \renewcommand*\NamesFormat[1]{\color{blue}\sffamily #1}
+% \renewcommand*\MainNameHook[1]{\sffamily #1}
% \begin{Quote}{\ForgetThis\Scipio\break
% \hbox{}\hfill attributed by \Name[Titus]{Livius} in
-% \textit{Ab urbe condita} B 30}
-% Bellum parate, quoniam pacem pati non potuistis.\\
-% (Prepare for war, for it seems that you are unable to tolerate peace.)
+% \textit{\la{Ab urbe condita}} B 30 (27–9 \textsc{bc})}
+% \la{Bellum parate, quoniam pacem pati non potuistis.}
+%
+% (Prepare for war, for it seems that you are unable to tolerate peace.)\footnote{Here we enclosed this quote in a group and redefined the formatting hooks locally.}^^A
+% \index{Romans, quotes of\noexpand\string|hyperpage}
% \end{Quote}
+% \endgroup
%
% \newpage
%
@@ -7980,10 +8605,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% % Global Boolean flags need to be defined only once.
@@ -8052,7 +8678,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \OScipio\ was born around 337 \textsc{bc} into the
@@ -8065,14 +8691,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Instead of relying on some \textsf{nameauth} features that drop some names automatically, in all but \meta{FNN} we have to state explicitly what we want:
%
% \begin{Block}
-% |\ForgetThis\OScipio|\dotfill\ForgetThis\OScipio\\
-% |\LOScipio|\dotfill\LOScipio\\
-% |\OScipio|\dotfill\OScipio\\
-% |\SOScipio|\dotfill\SOScipio\\[2ex]
-% |\NoCognomentrue\OScipio|\dotfill\NoCognomentrue\OScipio\\
-% |\NoAgnomentrue\OScipio|\dotfill\NoAgnomentrue\OScipio\\
-% |\NoGenstrue\OScipio|\dotfill\NoGenstrue\OScipio\\
-% |\NoGenstrue\NoAgnomentrue\OScipio|\dotfill\NoGenstrue\NoAgnomentrue\OScipio
+% \ForgetThis\OScipio \dotfill |\ForgetThis\OScipio|\\
+% \LOScipio \dotfill |\LOScipio|\\
+% \OScipio \dotfill |\OScipio|\\
+% \SOScipio \dotfill |\SOScipio|\\[2ex]
+% \NoCognomentrue\OScipio \dotfill |\NoCognomentrue\OScipio|\\
+% \NoAgnomentrue\OScipio \dotfill |\NoAgnomentrue\OScipio|\\
+% \NoGenstrue\OScipio \dotfill |\NoGenstrue\OScipio|\\
+% \NoGenstrue\NoAgnomentrue\OScipio \dotfill |\NoGenstrue\NoAgnomentrue\OScipio|
% \end{Block}
%
% One may create convenience macros instead of using the Boolean flags. Yet this might make things less clear at first glance, for example:
@@ -8080,13 +8706,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{Block}
% \newcommand*\LucScipio{\NoGenstrue\NoAgnomentrue\OScipio}
% |\newcommand*\LucScipio{\NoGenstrue\NoAgnomentrue\OScipio}|\\
-% |\ForgetThis\LucScipio|\dotfill\ForgetThis\LucScipio\\
-% |\LucScipio|\dotfill\LucScipio
+% \ForgetThis\LucScipio \dotfill |\ForgetThis\LucScipio|\\
+% \LucScipio \dotfill |\LucScipio|
% \end{Block}
%
-% The student and scholarly forms of Roman names are incompatible. Yet we show what the index entries would be in a normal \LaTeX document without hyperlinks:
+% The student and scholarly forms of Roman names are incompatible. Yet we show what the index entries would be in a normal \LaTeX\ document without hyperlinks:
%
-% \begin{quote}\small
+% \begin{quote}
% \IndexActual{@}
% \UntagName[\noexpand\SCIPi]{\noexpand\SCIPii}
% \TagName[\noexpand\TSemp]{Gracchus}{, consul}
@@ -8111,7 +8737,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \AltFormatActive
% \begingroup^^A Local format hook redefinition
-% Previously, formatting hooks either changed typefaces or mutated their arguments. Now we move beyond parsing the argument as we have received it.\medskip
+% Previously, formatting hooks either changed typefaces or mutated their arguments. Now we move beyond parsing the argument as we have received it.
%
% \DescribeMacro{\NameParser}
% The user-accessible parser (Section~\ref{sec:NameParser}) builds a printed name from internal, locally-scoped macros. Its output is affected by a subset of the Boolean flags, namely, those flags that affect long and short forms, as well as name reversal. Within the hooks we can use the user-accessible parser as often as we want.
@@ -8126,25 +8752,76 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Using |\if@nameauth@RevThis|, reversing without commas,
% overrides |\if@nameauth@RevThisComma| if both are true.
% \item |\if@nameauth@RevThisComma| creates the form
-% \meta{SNN}, \meta{FNN}.
+% \meta{SNN}, \meta{FNN}.
% \end{itemize}
%
-% Two Boolean\Info{\texttt{\textbackslash ifNameauthWestern}\break \texttt{\textbackslash ifNameauthObsolete}} flags are available to users so that they can know quickly what type of name was processed most recently by \cmd{\@nameauth@Choice}, which is called by all macros that take name arguments. These allow hook designers to vary the hook behavior based on the name type. They also persist after the macro that uses name arguments exits, unlike many other flags.
-%
-% \begin{center}\small\medstretch
-% \begin{tabular}{lccl}\toprule
-% Boolean flag & True & False & Name Type\\
-% \midrule
-% \texttt{\textbackslash ifNameauthWestern} & \YES & \NO & Western\\
-% \texttt{\textbackslash ifNameauthObsolete} & \NO & \NO\\\midrule
-% \texttt{\textbackslash ifNameauthWestern} & \NO & \YES & Non-Western\\
-% \texttt{\textbackslash ifNameauthObsolete} & \NO & \NO & current syntax\\
-% \midrule
-% \texttt{\textbackslash ifNameauthWestern} & \NO & \YES & Non-Western\\
-% \texttt{\textbackslash ifNameauthObsolete} & \NO & \YES & obsolete syntax\\
-% \bottomrule
-% \end{tabular}
-% \end{center}
+% Two Boolean\Info{\texttt{\textbackslash ifNameauthWestern}\break \texttt{\textbackslash ifNameauthObsolete}} flags are available to users so that they can know quickly what type of name was processed most recently by \cmd{\@nameauth@Choice}, which is called by all macros that take name arguments. These allow hook designers to vary the hook behavior based on the name type.
+%
+% These flags also persist after the macro that uses name arguments exits, unlike many other flags. This allows one to poll the last macro that took naming arguments, which may or may not be the last name printed in the text.
+%
+% To illustrate how one might poll these flags, either in a formatting hook or after a macro that takes name arguments exits, we set up the following macros and show how the flags are set. Notice that the name type is a function solely of the name arguments used, not how the name eventually ends up printed in the text, and not based on the name control sequence.
+%
+% \begin{VerbatimOut}{\jobname.tmp}
+% \newcommand\ShowType
+% {%
+% \ifNameauthWestern Western name\else
+% \ifNameauthObsolete nonwestern name using obsolete syntax\else
+% nonwestern name using current syntax\fi
+% \fi
+% }
+%
+% First, we begin with a Western name:
+%
+% \Name*[Albert]{Einstein} is a \ShowType.
+%
+% Even though this name is reversed in the text, it is still Western:
+%
+% \RevName\Name*[Frenec]{Liszt}\dag\ is a \ShowType.
+%
+% Here we present the same name twice, but using the two different
+% syntax versions for nonwestern names:
+%
+% \Name*{Henry, VIII} is a \ShowType.
+%
+% \Name*{Henry}[VIII]\ddag\ is a \ShowType.
+%
+% Finally, even though we do not print the name,
+% \IndexName{Elizabeth, I} we get a \ShowType.
+% \end{VerbatimOut}
+%
+% \begin{quote}
+% \VerbatimInput[gobble=0]{\jobname.tmp}
+%
+% \newcommand\ShowType
+% {%^^A
+% \ifNameauthWestern Western name\else
+% \ifNameauthObsolete nonwestern name using obsolete syntax\else
+% nonwestern name using current syntax\fi
+% \fi
+% }
+%
+% First, we begin with a Western name:
+%
+% \Name*[Albert]{Einstein} is a \ShowType.
+%
+% Even though this name is reversed in the text, it is still Western:
+%
+% \RevName\Name*[Frenec]{Liszt}\dag\ is a \ShowType.
+%
+% Here we present the same name twice, but using the two different
+% syntax versions for nonwestern names:
+%
+% \Name*{Henry, VIII} is a \ShowType.
+%
+% \Name*{Henry}[VIII]\ddag\ is a \ShowType.
+%
+% Finally, even though we do not print the name,
+% \IndexName{Elizabeth, I} we get a \ShowType.
+% \end{quote}
+%
+% \subsubsection{Reference Work II}
+%
+% Below we revisit the idea of a reference work, leveraging the formatting hooks to format headwords, add information from name info tags:
%
% Since we are using the \texttt{altformat} option or \cmd{\AltFormatActive}, we can expect that formatting is activated by default. We design a subsequent-use hook that deactivates alternate formatting inside of it:
%
@@ -8153,31 +8830,29 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {\AltOff}\cmd{\NameParser}\texttt{\dots\}}
% \end{SyntaxBox}
%
-% If we used \cmd{\AltFormatActive*}, where the formatting macros are enabled, but deactivated by default, then we might want a hook that activates the macros:
+% \newpage
+%
+% If we had used \cmd{\AltFormatActive*}, where the formatting macros are enabled, but \emph{deactivated} by default, then we might want instead a first-use hook that activates the macros:
%
% \begin{SyntaxBox}
-% \cmd{\renewcommand*}\meta{Hook}\texttt{[1]\{\dots}\cmd{\AltOn}\cmd
+% \cmd{\renewcommand*}\meta{FirstHook}\texttt{[1]\{\dots}\cmd{\AltOn}\cmd
% {\NameParser}\texttt{\dots\}}
% \end{SyntaxBox}
-% \negmedskip
-%
-% \subsubsection{Reference Work II}
-%
-% Below we revisit the idea of a reference work, leveraging the formatting hooks to format headwords, add information from name info tags:
-%
+%
% \ifdefined\NameauthDoTestFiles \edef\NameauthTestFile{test11_09.tex}\else
% \edef\NameauthTestFile{\jobname.tmp}\fi
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% % Boolean flags; the first sets up headwords and the second
-% % indicates that a non-Western form should not be reversed.
+% % indicates that a nonwestern form should not be reversed.
% \newif\ifHeadword
% \newif\ifAncientName
%
@@ -8233,7 +8908,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \newcommand{\RefArticle}[2]
% {%
% \noindent\Headword #1 #2%
-% \medskip
+%
% }
%
% \begin{document}
@@ -8260,7 +8935,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \NameAddInfo{Aristotle}{ (384--322 \textsc{bc})}
@@ -8307,7 +8982,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \newcommand{\RefArticle}[2]
% {^^A
% \noindent\Headword #1 #2^^A
-% \medskip
% }
%
% \RefArticle{\AncientNametrue\Name{Aristotle}}{was the first to offer
@@ -8329,6 +9003,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Engine. \Name[Ada]{\noexpand\textIT{Lovelace}}\dots}
% \end{quote}
%
+% \newpage
+%
% \subsubsection{Marginalia}
%
% \ifdefined\NameauthDoTestFiles \edef\NameauthTestFile{test11_10.tex}\else
@@ -8336,10 +9012,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% % Global Boolean flags need to be defined only once.
@@ -8446,12 +9123,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Starting where we left off with Roman names, we begin in the document preamble by defining Boolean flags and macros. As with Roman names, their default values produce the name form in the index entry. The default name form aligns with the default Boolean flag setting: false. All non-default values and expansions of these macros occur only in the formatting hooks. We use \cmd{\PretagName} to sort the names. \cmd{\Revert} is used to print a last name without a margin note.
%
% \begin{quote}
-% \VerbatimInput[gobble=0,lastline=39]{\NameauthTestFile}
+% \VerbatimInput[gobble=0,lastline=54]{\NameauthTestFile}
% \end{quote}
%
% Next we define the two formatting hooks that structure the ways in which these macros can expand when printed in the text. We force \cmd{\NamesFormat} to print only allows only the default name via \cmd{\RevertSNfalse}, \cmd{\SpecialFNfalse}, and \cmd{\SpecialSNfalse}. \cmd{\MainNameHook} disables alternate formatting with \cmd{\AltOff}, but it allows variant name forms.
%
-% We print the default name in the body text. If allowed, we print a margin paragraph with an alternate full name using \cmd{\NameParser}. Both hooks set \cmd{\RevertSNfalse} on exit, so that \cmd{\Revert} works on a per-name basis.
+% In the hooks we print the default name in the body text. If allowed, we print a margin paragraph with an alternate full name using \cmd{\NameParser}. Both hooks set \cmd{\RevertSNfalse} on exit, so that \cmd{\Revert} works on a per-name basis.
%
% \makeatletter
% \renewcommand*\NamesFormat[1]
@@ -8485,8 +9162,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \global\RevertSNfalse^^A
% }
% \makeatother
-% \begin{quote}\small
-% \VerbatimInput[gobble=0,firstline=40]{\NameauthTestFile}
+% \begin{quote}
+% \VerbatimInput[gobble=0,firstline=55,lastline=96]{\NameauthTestFile}
+% \end{quote}
+%
+% Finally, we put all these macros to work in the text:
+%
+% \begin{quote}
+% \VerbatimInput[gobble=0,firstline=97]{\NameauthTestFile}
%
% \ForgetThis\Shak\ is the national poet of England
% in much the same way that \Name[Robert]{\textSC{Burns}}
@@ -8496,13 +9179,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \endgroup^^A Local format hook redefinition
% \AltFormatInactive
-% \negmedskip
%
% \ReturnLink
%
% \AltFormatActive
% \begin{Quote}{\ForgetThis\Shak\break
-% \hbox{}\hfill ``Julius Caesar'', Act III, Scene II}
+% \hbox{}\hfill ``Julius Caesar'', Act III, Scene II (first performed 1599)}
% \textbf{Antony:} Friends, Romans, countrymen, lend me your ears;\\
% I come to bury Caesar, not to praise him.\\
% The evil that men do lives after them;\\
@@ -8517,7 +9199,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Come I to speak in Caesar's funeral.\\
% He was my friend, faithful and just to me:\\
% But Brutus says he was ambitious;\\
-% And Brutus is an honourable man.
+% And Brutus is an honourable man.\negmedskip^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}
% \end{Quote}
% \AltFormatInactive
%
@@ -8538,7 +9221,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Target Name & Cross-Reference Name\\\midrule
% \oarg{FNN}\marg{SAFX} & \oarg{xref FNN}\marg
% {xref SAFX}\oarg{xref Alternate}\\
-% \end{SyntaxBoxii}\negmedskip
+% \end{SyntaxBoxii}
%
% \begin{itemize}
% \item The target name comes first, which is the opposite of
@@ -8554,7 +9237,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item One cannot use \cmd{\TagName} with a cross-reference, but one can
% sort a cross-reference with \cmd{\PretagName}
% (Section~\ref{sec:IndexSort}):
-% \end{itemize}\negmedskip
+% \end{itemize}
%
% \subsubsection{The Macros}
%
@@ -8568,7 +9251,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% {xref SAFX}\oarg{xref Alternate}\\
% \cmd{\AKA*}\oarg{FNN}\marg{SAFX}\oarg{xref FNN}\marg
% {xref SAFX}\oarg{xref Alternate}\\
-% \end{SyntaxBox}\negmedskip
+% \end{SyntaxBox}
+% \negmedskip
%
% \begin{itemize}
% \item Both macros create a cross-reference in the index to the
@@ -8579,7 +9263,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item If \meta{xref Alternate} is present in a Western name form, then
% instead of \meta{xref FNN}, \meta{xref Alternate} will be printed
% in the text.
-% \item If \meta{xref Alternate} is present in a non-Western name form,
+% \item If \meta{xref Alternate} is present in a nonwestern name form,
% then instead of \meta{xref Affix} (if present), \meta{xref Alternate}
% will be printed in the text.
% \item If \meta{xref Alternate} is present without either \meta{xref FNN}
@@ -8593,44 +9277,51 @@ and version 1.3 or later is part of all distributions of LaTeX version
% this.
% \end{itemize}
%
-% Below we make cross-references to \cmd{\Name[Bob]\{Hope\}} \Name[Bob]{Hope}; all of the forms listed create the cross-reference ``\ShowIdxPageref*[Leslie Townes]{Hope} \textit{see} \ShowIdxPageref*[Bob]{Hope}''.
+% Below we make cross-references to \Name[Bob]{Hope} \cmd{\Name[Bob]\{Hope\}}; all of the forms listed create the cross-reference ``\ShowIdxPageref*[Leslie Townes]{Hope} \textit{see} \ShowIdxPageref*[Bob]{Hope}''.
%
-% \begin{center}\footnotesize
+% \begin{center}\small
% \vspace{2ex}
% \Info{\strut\footnotesize Name Pattern(s):\hfill \break
% \ttfamily \ShowPattern[Bob]{Hope}!MN\break
% \ShowPattern[Leslie Townes]{Hope}!PN}
-% \vspace{-2ex}\smallstretch
-% \begin{tabular}{p{0.6\textwidth}l}\toprule
-% |\AKA[Bob]{Hope}[Leslie Townes]{Hope}| &
-% \AKA[Bob]{Hope}[Leslie Townes]{Hope}\\
-% \rowcolor{nagrey}|\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{nagrey}|\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
+% \vspace{-2ex}
+% \begin{tabular}{ll}\toprule
+% \rowcolor{nagrey}^^A
+% \AKA[Bob]{Hope}[Leslie Townes]{Hope}&
+% |\AKA[Bob]{Hope}[Leslie Townes]{Hope}|\\
+%
+% \RevComma\AKA[Bob]{Hope}[Leslie Townes]{Hope}&
+% |\RevComma\AKA[Bob]{Hope}[Leslie Townes]{Hope}|\\
+%
+% \rowcolor{nagrey}^^A
+% \AKA[Bob]{Hope}[Leslie Townes]{Hope}[Lester T.]&
+% |\AKA[Bob]{Hope}[Leslie Townes]{Hope}[Lester T.]|\\
+%
+% \AKA*[Bob]{Hope}[Leslie Townes]{Hope}&
+% |\AKA*[Bob]{Hope}[Leslie Townes]{Hope}|\\
+%
+% \rowcolor{nagrey}^^A
+% \AKA*[Bob]{Hope}[Leslie Townes]{Hope}[Lester]&
+% |\AKA*[Bob]{Hope}[Leslie Townes]{Hope}[Lester]|\\\bottomrule
% \end{tabular}
% \end{center}
%
-% We display other name forms after referring to some names to ensure that they have sensible page references:
+% We display other name forms after referring to some names to ensure that they have sensible page entries:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{tabular}{ll}
-% \cmd{\ForgetThis}\cmd{\Name\{Louis, XIV\}} &
-% \ForgetThis\Name{Louis, XIV}\\
-% \cmd{\Name\{Lao-tzu\}} & \Name{Lao-tzu}\\
-% \cmd{\Name[Lafcadio]\{Hearn\}} & \Name[Lafcadio]{Hearn}\\
-% \cmd{\Name[Charles]\{du\string~Fresne\}} &
-% \Name[Charles]{du~Fresne}\\
+% \ForgetThis\Name{Louis, XIV}&
+% |\ForgetThis\Name{Louis, XIV}|\\
+% \Name{Lao-tzu} & |\Name{Lao-tzu}|\\
+% \Name[Lafcadio]{Hearn} & |\Name[Lafcadio]{Hearn}|\\
+% \Name[Charles]{du~Fresne}&
+% |\Name[Charles]{du~Fresne}|\\
% \end{tabular}
% \end{quote}
% Caps and reversing macros work on the arguments that are printed
% in the text.
%
-% \begin{center}\small
+% \begin{center}
% \vspace{2ex}
% \PatInfo{\ShowPattern{Louis, XIV}!MN\break
% \ShowPattern{Lao-tzu}!MN\break
@@ -8640,24 +9331,30 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \ShowPattern{Li, Er}!PN\break
% \ShowPattern{du~Cange}!PN\break
% \ShowPattern{Koizumi, Yakumo}!PN}
-% \vspace{-2ex}\medstretch
-% \begin{tabular}{p{0.65\textwidth}l}\toprule
-% |\AKA{Louis, XIV}{Sun King}| & \AKA{Louis, XIV}{Sun King}\\
-% \rowcolor{nagrey}|\AKA*{Louis, XIV}{Sun King}| &
-% \AKA{Louis, XIV}{Sun King}\\
-% |\AKA{Lao-tzu}{Li, Er}| & \AKA{Lao-tzu}{Li, Er}\\
-% \rowcolor{nagrey}|\AKA*{Lao-tzu}{Li, Er}| & \AKA*{Lao-tzu}{Li, Er}\\
-% |\AKA[Charles]{du~Fresne}{du~Cange}| &
-% \AKA[Charles]{du~Fresne}{du~Cange}\\
-% \rowcolor{nagrey}|\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{nagrey}|\RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}| &
-% \RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}\\\bottomrule
+% \vspace{-2ex}
+% \begin{tabular}{ll}\toprule
+% \rowcolor{nagrey}^^A
+% \AKA{Louis, XIV}{Sun King} & |\AKA{Louis, XIV}{Sun King}|\\
+% \rowcolor{nagrey}^^A
+% \AKA{Louis, XIV}{Sun King} & |\AKA*{Louis, XIV}{Sun King}|\\
+%
+% \AKA{Lao-tzu}{Li, Er} & |\AKA{Lao-tzu}{Li, Er}|\\
+% \AKA*{Lao-tzu}{Li, Er} & |\AKA*{Lao-tzu}{Li, Er}|\\
+%
+% \rowcolor{nagrey}^^A
+% \AKA[Charles]{du~Fresne}{du~Cange}&
+% |\AKA[Charles]{du~Fresne}{du~Cange}|\\
+% \rowcolor{nagrey}^^A
+% \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}|\\
+% \RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}&
+% |\RevName\AKA[Lafcadio]{Hearn}{Koizumi, Yakumo}|\\\bottomrule
% \end{tabular}
% \end{center}
-% \medskip
+%
%
% \DescribeMacro{\PName}
% These convenience macros were an early feature of \textsf{nameauth}. They print a main name followed by a cross-reference in parentheses.
@@ -8695,23 +9392,23 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item[Macro:] \cmd{\PName*[Mark]\{Twain\}[Samuel L.]\{Clemens\}}
% \item[Text:] \PName*[Mark]{Twain}[Samuel L.]{Clemens}
% \item[Index:] \ShowIdxPageref*[Samuel L.]{Clemens} \textit{see}
-% \ShowIdxPageref*[Mark]{Twain}\medskip
+% \ShowIdxPageref*[Mark]{Twain}
% \item[Macro:] \cmd{\PName\{Voltaire\}[François-Marie]\{Arouet\}}
% \item[Text:] \PName{Voltaire}[François-Marie]{Arouet}
% \item[Index:] \ShowIdxPageref*[François-Marie]{Arouet} \textit{see}
-% \ShowIdxPageref*{Voltaire}\medskip
+% \ShowIdxPageref*{Voltaire}
% \item[Macro:] \cmd{\PName\{William, I\}\{William, the Conqueror\}}
% \item[Text:] \PName{William, I}{William, the Conqueror}\\
% \PName{William, I}{William, the Conqueror}
% \item[Index:] \ShowIdxPageref*{William, the Conqueror} \textit{see}
-% \ShowIdxPageref*{William, I}\medskip
+% \ShowIdxPageref*{William, I}
% \item[Macro:] \cmd{\PretagName\{}\cmd{\textit\{Doctor mellifluus\}\}^^A
% \{Doctor mellifluus\}}\\
% \cmd{\PName\{Bernard, of Clairvaux\}\{}\cmd{\textit\{Doctor mellifluus\}}
% \item[Text:] \PName{Bernard, of Clairvaux}{\textit{Doctor mellifluus}}\\
% \PName{Bernard, of Clairvaux}{\textit{Doctor mellifluus}}
% \item[Index:] \ShowIdxPageref*{\textit{Doctor mellifluus}} \textit{see}
-% \ShowIdxPageref*{Bernard, of Clairvaux}\medskip
+% \ShowIdxPageref*{Bernard, of Clairvaux}
% \item[Macro:] \cmd{\ForgetThis}\cmd{\PName\{Lao-tzu\}\{Li, Er\}}
% \item[Text:] \ForgetThis\PName{Lao-tzu}{Li, Er}
% \item[Index:] \ShowIdxPageref*{Li, Er} \textit{see}
@@ -8723,37 +9420,39 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsubsection[Workarounds]{Formatting Workarounds}
%
-% By default, the macros in this section use only the formatting hooks for subsequent instances of names (Section~\ref{sec:Formatting}).\medskip
+% By default, the macros in this section use only the formatting hooks for subsequent instances of names (Section~\ref{sec:Formatting}).
%
% First, the \texttt{formatAKA}\Info{\texttt{formatAKA}} option will permit \cmd{\ForceName} to force the ``first-use'' formatting hooks to be employed, but under different conditions. The name patterns that control these uses (Section~\ref{sec:NamePatterns}) apply only to cross-references; they are a distinct system of patterns that differs from normal names and ignores the difference between main-matter and front-matter name formatting.
%
-% \begin{center}\small\medstretch
-% \makeatletter\@nameauth@AKAFormattrue\makeatother\global\NamesInactive
-% \begin{tabular}{rll}\toprule
+% \begin{center}
+% \makeatletter\@nameauth@AKAFormattrue\makeatother
+% \global\NamesInactive
+% \begin{tabular}{>{\columncolor{nagrey}}rll}
+% \rowcolor{nagrey}^^A
% & |\ForgetThis\Eliz| & |\AKA{Elizabeth,I}%|\\
-% & & |[Good Queen]{Bess}|\\
% \rowcolor{nagrey}^^A
+% & & |[Good Queen]{Bess}|\\[0.5ex]
+%
% Front Matter: & \ForgetThis\Eliz &
-% \AKA{Elizabeth,I}[Good Queen]{Bess}\\
+% \AKA{Elizabeth,I}[Good Queen]{Bess}\\[0.5ex]
% \global\NamesActive^^A
-% Main Matter: & \ForgetThis\Eliz &
-% \AKA{Elizabeth, I}[Good Queen]{Bess}\\
-% \rowcolor{nagrey}^^A
+% \strut Main Matter: & \ForgetThis\Eliz &
+% \AKA{Elizabeth, I}[Good Queen]{Bess}\\[0.5ex]
% With \cmd{\ForceName}: & &
-% \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}\\\bottomrule
+% \ForceName\AKA{Elizabeth, I}[Good Queen]{Bess}\\
% \end{tabular}
% \vspace{-14ex}
-% \small\PatInfo{\ShowPattern{Elizabeth, I}!NF\break
+% \PatInfo{\ShowPattern{Elizabeth, I}!NF\break
% \ShowPattern[Good Queen]{Bess}!PN\break
% \ShowPattern{Elizabeth, I}!MN}
% \vspace{14ex}
-% \end{center}\medskip
+% \end{center}
%
-% The first appearance of \AKA{Elizabeth,I}[Good Queen]{Bess} above uses \cmd{\FrontNamesFormat} as its formatting hook because it is the first occurrence of the alternate name in the front matter. After that, even though \AKA{Elizabeth,I}[Good Queen]{Bess} occurs for the first time in the main matter, it uses the subsequent-use \cmd{\MainNameHook} because we are not using the regular name patterns. We need to use \cmd{\ForceName}, which triggers the expected use of \cmd{\NamesFormat}, the first-use main-matter hook.\medskip
+% The first appearance of \AKA{Elizabeth,I}[Good Queen]{Bess} above uses \cmd{\FrontNamesFormat} as its formatting hook because it is the first occurrence of the alternate name in the front matter. After that, even though \AKA{Elizabeth,I}[Good Queen]{Bess} occurs for the first time in the main matter, it uses the subsequent-use \cmd{\MainNameHook} because we are not using the regular name patterns. We need to use \cmd{\ForceName}, which triggers the expected use of \cmd{\NamesFormat}, the first-use main-matter hook.
%
% Second,\Info{\texttt{alwaysformat}} we can use the \texttt{alwaysformat} option to force only the use of \cmd{\NamesFormat} and \cmd{\FrontNamesFormat}. Of course, this can look like rubbish in certain circumstances.
%
-% \begin{quote}\small
+% \begin{quote}
% \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}''.
@@ -8763,13 +9462,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Obsolete Syntax}
% \label{sec:Obsolete}
%
-% This non-Western syntax limits alternate names and cross-references, prevents the use of comma-delimited names, and complicates indexing. It is a ``ghost of \textsf{nameauth} past'' that remains for the sake of backward compatibility and to prevent ``holes'' where naming macro arguments are discarded without apparent reason.
+% This nonwestern syntax limits alternate names and cross-references, prevents the use of comma-delimited names, and complicates indexing. It is a ``ghost of \textsf{nameauth} past'' that remains for the sake of backward compatibility and to prevent ``holes'' where naming macro arguments are discarded without apparent reason.
%
% \begin{SyntaxBox}
% \cmd{\Name}\marg{SNN}\oarg{Alternate}
% \end{SyntaxBox}
%
-% The genesis of this syntax was the use of the \meta{Alternate} field for variant forenames in Western names, personal names in Eastern names, and sobriquets, titles, and so on in ancient names. Yet this prevented using alternate names for non-Western names and it limited those names to an unacceptable second-tier status. Developing the comma delimiter in \meta{SNN, Affix} presented significant challenges, but it was worth overcoming them to put all name forms on equal footing.
+% The genesis of this syntax was the use of the \meta{Alternate} field for variant forenames in Western names, personal names in Eastern names, and sobriquets, titles, and so on in ancient names. Yet this prevented using alternate names for nonwestern names and it limited those names to an unacceptable second-tier status. Developing the comma delimiter in \meta{SNN, Affix} presented significant challenges, but it was worth overcoming them to put all name forms on equal footing.
%
% We show this syntax for the sake of completeness, but we strongly encourage using the comma-delimited syntax instead.
%
@@ -8783,7 +9482,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \item In this manual we designate these names with a double dagger (\ddag).
% \end{itemize}
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \Name{Henry}[VIII] % Ancient
% \Name{Chiang}[Kai-shek] % Eastern
@@ -8798,68 +9497,81 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \AltFormatActive
% After studying in the US during the 1930s, in 1954 Rev.
-% \cmd{\Fukuyama}\cmd{\ddag} \Fukuyama\ddag\ published
+% \Fukuyama\ddag\ \cmd{\Fukuyama}\cmd{\ddag} published
% \textit{Nihon Fukuin R\=uteru Ky\=okai Shi} (History
% of the Evangelical Lutheran Church in Japan).
% \AltFormatInactive
%
% \newpage
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{ll}\toprule
-% |\ForgetThis\Name{Henry}[VIII]\ddag| &
-% \ForgetThis\Name{Henry}[VIII]\ddag\\
-% |\Name{Henry}[VIII]\ddag| &
-% \Name{Henry}[VIII]\ddag\\
-% \rowcolor{nagrey}|\ForgetThis\Name{Chiang}[Kai-shek]\ddag| &
-% \ForgetThis\Name{Chiang}[Kai-shek]\ddag\\
-% \rowcolor{nagrey}|\Name{Chiang}[Kai-shek]\ddag| &
-% \Name{Chiang}[Kai-shek]\ddag\\
-% |\Dagb\ddag| & \Dagb\ddag\\
-% |\Dagb\ddag| & \Dagb\ddag\\
-% \rowcolor{nagrey}|\CapName\Yosh\ddag| & \CapName\Yosh\ddag\\
-% \rowcolor{nagrey}|\CapName\RevName\LYosh\ddag| & \CapName\RevName\LYosh\ddag\\
-% |\AltFormatActive| \AltFormatActive\\
-% |\ForgetThis\Fukuyama\ddag| & \ForgetThis\Fukuyama\ddag\\
-% |\Fukuyama\ddag| & \Fukuyama\ddag\\
-% |\AltFormatInactive| \AltFormatInactive\\\bottomrule
+% \rowcolor{nagrey}^^A
+% \ForgetThis\Name{Henry}[VIII]\ddag &
+% |\ForgetThis\Name{Henry}[VIII]\ddag|\\
+% \rowcolor{nagrey}^^A
+% \Name{Henry}[VIII]\ddag &
+% |\Name{Henry}[VIII]\ddag|\\
+%
+% \ForgetThis\Name{Chiang}[Kai-shek]\ddag &
+% |\ForgetThis\Name{Chiang}[Kai-shek]\ddag|\\
+% \Name{Chiang}[Kai-shek]\ddag &
+% |\Name{Chiang}[Kai-shek]\ddag|\\
+%
+% \rowcolor{nagrey}^^A
+% \Dagb\ddag & |\Dagb\ddag|\\
+% \rowcolor{nagrey}^^A
+% \Dagb\ddag & |\Dagb\ddag|\\
+%
+% \CapName\Yosh\ddag & |\CapName\Yosh\ddag|\\
+% \CapName\RevName\LYosh\ddag & |\CapName\RevName\LYosh\ddag|\\
+%
+% \rowcolor{nagrey}^^A
+% & |\AltFormatActive| \AltFormatActive\\
+% \rowcolor{nagrey}^^A
+% \ForgetThis\Fukuyama\ddag & |\ForgetThis\Fukuyama\ddag|\\
+% \rowcolor{nagrey}^^A
+% \Fukuyama\ddag & |\Fukuyama\ddag|\\
+% \rowcolor{nagrey}^^A
+% & |\AltFormatInactive| \AltFormatInactive\\\bottomrule
% \end{tabular}
% \end{center}
%
-% Regardless of its flaws, the obsolete syntax shares name patterns, index tags, data tags, and index entries with the current syntax:
+% Regardless of its flaws, the obsolete syntax shares name patterns, index tags, name tags, and index entries with the current syntax:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{tabular}{@{}lll}
-% Obsolete syntax: & \cmd{\ForgetThis}\cmd{\Name\{Henry\}[VIII]}\cmd{\ddag} &
-% \ForgetThis\Name{Henry}[VIII]\ddag\\
-% & \cmd{\ShowPattern\{Henry\}[VIII]} & \ShowPattern{Henry}[VIII]\\[1ex]
-% Current syntax: & \cmd{\Name\{Henry, VIII\}} & \Name{Henry, VIII}\\
-% & \cmd{\ShowPattern\{Henry, VIII\}} & \ShowPattern{Henry, VIII}\\
+% Obsolete syntax: & \ForgetThis\Name{Henry}[VIII]\ddag &
+% \cmd{\ForgetThis}\cmd{\Name\{Henry\}[VIII]}\cmd{\ddag}\\[1ex]
+% & \ShowPattern{Henry}[VIII] & \cmd{\ShowPattern\{Henry\}[VIII]}\\[1ex]
+% Current syntax: & \Name{Henry, VIII} & \cmd{\Name\{Henry, VIII\}}\\[1ex]
+% & \ShowPattern{Henry, VIII} & \cmd{\ShowPattern\{Henry, VIII\}}\\
% \end{tabular}
% \end{quote}
%
% We do not expect people to use the obsolete syntax much anymore. Here we list more advantages to using the current syntax and avoiding the old.
%
% \begin{itemize}
-% \item Only the newer syntax permits variants:\\
-% \cmd{\Name*\{Henry, VIII\}[Tudor]} \Name*{Henry, VIII}[Tudor].
-% \item The proper form for the old syntax is, e.g.:\\
-% \cmd{\Name*\{Henry\}[VIII]}: \Name*{Henry}[VIII].
+% \item Only the newer syntax permits such variants:
+% \item[] \Name*{Henry, VIII}[Tudor]\dotfill \cmd{\Name*\{Henry, VIII\}[Tudor]}
+% \item The proper form for the old syntax is, e.g.:
+% \item[] \Name*{Henry}[VIII]\dotfill \cmd{\Name*\{Henry\}[VIII]}
% \IndexInactive
-% \item \cmd{\Name[Henry]\{VIII\}} is a malformed Western name:\\
-% ``\Name*[Henry]{VIII}'' and ``\Name[Henry]{VIII}''.
-% \item \cmd{\Name[Henry]\{VIII\}[Tudor]} also is malformed:\\
-% ``\Name*[Henry]{VIII}[Tudor]'' and ``\Name[Henry]{VIII}[Tudor]''
-% \item Both incorrect name forms have the same index entry:\\
-% ``\ShowIdxPageref*[Henry]{VIII}''
+% \item Next we see malformed Western names:
+% \item[] \Name[Henry]{VIII}\dotfill \cmd{\Name[Henry]\{VIII\}}\\
+% \Name[Henry]{VIII}\dotfill \cmd{\Name[Henry]\{VIII\}}\\
+% \Name*[Henry]{VIII}[Tudor]\dotfill \cmd{\Name*[Henry]\{VIII\}[Tudor]}\\
+% \Name[Henry]{VIII}[Tudor]\dotfill \cmd{\Name[Henry]\{VIII\}[Tudor]}
+% \item These malformed names have the same index entry\dotfill^^A
+% \ShowIdxPageref*[Henry]{VIII}
% \IndexActive
% \end{itemize}
-% \negmedskip
%
% \ReturnLink
%
% \begin{Quote}{\Name[Salman]{Rushdie}, \textit{The Satanic Verses} (1988)}
-% Names, once they are in common use, quickly become mere sounds, their etymology being buried, like so many of the earth's marvels, beneath the dust of habit.
+% Names, once they are in common use, quickly become mere sounds, their etymology being buried, like so many of the earth's marvels, beneath the dust of habit.\negmedskip^^A
+% \index{creatives, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -8868,7 +9580,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \section{Advanced Customization}
% \label{sec:AdvCustomize}
%
-% This section is meant to help those who want to access package internals as they add features, as well as those who want to design their own constructs and mesh them with \textsf{nameauth}. Here we set the formatting hooks to the package default, setting aside the common usage in this manual. We also use alternate formatting for much of this section. We set up the following hooks:
+% Here we discuss package internals to help users customize and add features. We set aside the common formatting in this manual and reset the formatting hooks to the default settings. We use alternate formatting for much of this section:
%
% \begin{VerbatimOut}{\jobname.tmp}
% \renewcommand*\NamesFormat{}
@@ -8877,7 +9589,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \renewcommand*\FrontNameHook{\AltOff}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\jobname.tmp}
% \end{quote}
% \input{\jobname.tmp}
@@ -8887,17 +9599,19 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \subsection{Using Package Internals}
%
-% We move toward custom formatting by starting with the established paradigm of alternate formatting (Section~\ref{sec:AltFormat}). We will change the ``back-end'' macros to a degree, so that we get a substantially similar experience with custom code.
+% We start with alternate formatting (Section~\ref{sec:AltFormat}), changing the ``back-end'' macros to our custom code. Here, we need only check \texttt{\textbackslash if@nameauth@DoAlt}, which is toggled by \cmd{\AltOn} and \cmd{\AltOff}.
+% Instead of using \cmd{\textSC} and friends, we define a new macro that works in similar fashion. \cmd{\Fbox} draws a frame around the name:
%
% \ifdefined\NameauthDoTestFiles \edef\NameauthTestFile{test13_01.tex}\else
% \edef\NameauthTestFile{\jobname.tmp}\fi
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% % Alternate formatting macro definition
@@ -8933,17 +9647,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% When designing macros that work with alternate formatting hooks, the Boolean flags that one must know are \texttt{\textbackslash if@nameauth@DoAlt}, which is toggled by \cmd{\AltOn} and \cmd{\AltOff}; \texttt{\textbackslash if@nameauth@DoCaps}, which handles capitalization via \cmd{\AltCaps}, and \texttt{\textbackslash if@nameauth@InHook}, which is true when the formatting hooks are called.
-%
-% Next, instead of using \cmd{\textSC} and friends, we define a new macro that works in similar fashion. \cmd{\Fbox} draws a frame around the name:
-%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,lastline=13]{\NameauthTestFile}
% \end{quote}
%
% Since \cmd{\AltCaps} is part of \textsf{nameauth}, one need not reinvent that wheel. Just use it in the name arguments and sorting macros:
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,firstline=14,lastline=24]{\NameauthTestFile}
% \end{quote}
%
@@ -8953,11 +9663,22 @@ and version 1.3 or later is part of all distributions of LaTeX version
% }^^A
% \makeatother
%
+% \begingroup
+% \renewcommand*\NamesFormat[1]{\color{blue}\sffamily #1}
+% \renewcommand*\MainNameHook[1]{\sffamily #1}
+% \begin{Quote}{\ForgetThis\Name{Maimonides},
+% \textit{Guide for the Perplexed} (1190)}
+% For a truth, once established by proof, does neither gain force nor certainty by the consent of all scholars, nor lose by the general dissent.\footnote{Here we enclosed this quote in a group and redefined the formatting hooks locally.}^^A
+% \index{theologians, quotes of\noexpand\string|hyperpage}
+% \index{philosophers, quotes of\noexpand\string|hyperpage}
+% \end{Quote}
+% \endgroup
+%
% \newpage
%
% The final step is redefining the hooks, which can be quite simple:
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,firstline=25]{\NameauthTestFile}
%
% \deSmet\ was a Jesuit missionary who arrived in North
@@ -8977,9 +9698,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Using Separate Macros}
%
% \ForgetName[Pierre-Jean]{\noexpand\Fbox{\noexpand\AltCaps{d}e~Smet}}
-% One is not tied to the internal mechanisms of \textsf{nameauth} in order to design alternate formatting, but this approach is more labor-intensive and requires one to keep track of more details.
-%
-% We still recommend using \cmd{\AltFormatActive} to mitigate errors. The following example tries to show how far one might go afield, yet remain compatible with standard names.
+% Alternate formatting can work with greater customization, but that is more labor-intensive and requires one to keep track of more details. We still recommend using \cmd{\AltFormatActive} to mitigate errors. The following example shows greater customization that remains compatible with package internals.
%
% Three Boolean flags replace package internals. The flag \texttt{\textbackslash ifFbox} activates formatting, \cmd{\CapThis} sets \texttt{\textbackslash ifFirstCap} true, and \texttt{\textbackslash ifInHook} is set manually, instead of being set by the hook dispatcher.
%
@@ -8988,16 +9707,17 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
-% \newif\ifFbox % Replaces \if@nameauth@DoAlt
-% \newif\ifFirstCap % Replaces \if@nameauth@DoCaps
-% \newif\ifInHook % Replaces \if@nameauth@InHook
-% \Fboxtrue % Replaces \AltFormatActive
+% \newif\ifFbox % Replaces \if@nameauth@DoAlt \AltOn \AltOff
+% \newif\ifFirstCap % Replaces \if@nameauth@DoCaps \AltCaps
+% \newif\ifInHook % Replaces \if@nameauth@InHook hook dispatcher
+% \Fboxtrue % Replaces \AltFormatActive
%
% % Alternate formatting macro definition
% \newcommand*\Fbox[1]{%
@@ -9046,7 +9766,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,lastline=11]{\NameauthTestFile}
% \end{quote}
%
@@ -9056,7 +9776,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \VerbatimInput[gobble=0,firstline=12,lastline=16]{\NameauthTestFile}
% \end{quote}
%
-% Our new \cmd{\AltCaps} works like the built-in version, except it does not use the internal macros and flags. We also redefine \cmd{\CapThis} to use our flag instead of the internal flag:
+% Our \cmd{\AltCaps} works like the built-in version, except it does not use the internal macros and flags. We redefine \cmd{\CapThis} to use our flag instead of the internal flag:
%
% \begin{quote}
% \VerbatimInput[gobble=0,firstline=17,lastline=26]{\NameauthTestFile}
@@ -9070,7 +9790,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \VerbatimInput[gobble=0,firstline=27,lastline=32]{\NameauthTestFile}
% \end{quote}
%
-% By using the same hook logic and \cmd{\noexpand}, the new ``back-end'' meshes with the ``front-end'' macros used before without creating spurious index entries.
+% By using the same hook logic and \cmd{\noexpand}, the same macros used before now use a different ``back end'' without creating spurious index entries.
%
% \newcommand*\Fbox[1]{^^A
% \ifFbox\protect\fbox{#1}\else#1\fi
@@ -9090,7 +9810,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \let\FrontNamesFormat\Namesformat
% \let\FrontNameHook\MainNameHook
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0,firstline=33]{\NameauthTestFile}
%
% \deSmet\ was a Jesuit missionary who arrived in North
@@ -9105,10 +9825,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
+%
% \makeindex
%
% \newif\ifCaps % Replaces \if@nameauth@DoAlt
@@ -9181,9 +9902,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \let\FrontNamesFormat\Namesformat
% \let\FrontNameHook\MainNameHook
%
-% We can go one step further and use our own macros with names designed for the built-in macros, as the next example shows:
+% We can go one step further and use our own ``back-end'' macros with other documents that were designed for the built-in macros used in alternate formatting, as the next example shows:
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \ForgetThis\Luth\ was a leading figure in the Protestant
@@ -9211,26 +9932,30 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \DescribeMacro{\NameauthLName}
% \cmd{\Name}, or an unmodified shorthand, calls \cmd{\NameauthName}. \cmd{\Name*}, or an L-shorthand, sets \cmd{\@nameauth@FullNametrue}, then calls \cmd{\NameauthLName}.
% \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. Since \textsf{nameauth} uses \textsf{xargs}, the next example uses it also.
+% \cmd{\FName}, or an S-shorthand, sets \cmd{\@nameauth@FirstNametrue}, then calls \cmd{\NameauthFName}. One should not modify \cmd{\Name} and \cmd{\FName} directly.
+%
+% \subsubsection{Names In Boxes}
%
+% Since \textsf{nameauth} uses \textsf{xparse}, the next examples use it also. Here we look at decorationin the sense of putting a name into something around it. This could be useful if, in certain parts of a document, one wanted to turn names into hyperlinks or some other kind of feature. Here we simply put names into colored boxes.
+%
% \ifdefined\NameauthDoTestFiles \edef\NameauthTestFile{test13_04.tex}\else
% \edef\NameauthTestFile{\jobname.tmp}\fi
%
% \begin{VerbatimOut}{\NameauthTestFile}
% \documentclass{article}
-% \input{compat.tex} % Included with nameauth; needed only if
-% % compiling on multiple TeX distros or LaTeX engines.
+% \input{compat.tex} % Included with nameauth; example file aids
+% % compatibility across different LaTeX versions and engines.
% \usepackage{makeidx}
% \usepackage[altformat]{nameauth}
-% \makeindex
% \usepackage{xcolor}
%
-% \makeatletter
+% \makeindex
%
+% \makeatletter
% % Change the general-case name macro to show
% % a name in a framed, colored box.
%
-% \newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%
+% \NewDocumentCommand{\MyName}{O{} m O{}}{%
% \global\@nameauth@toksa\expandafter{#1}%
% \global\@nameauth@toksb\expandafter{#2}%
% \global\@nameauth@toksc\expandafter{#3}%
@@ -9238,7 +9963,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% }
%
% % Likewise change the macro for when names are forced long.
-% \newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%
+% \NewDocumentCommand{\MyLName}{O{} m O{}}{%
% \global\@nameauth@toksa\expandafter{#1}%
% \global\@nameauth@toksb\expandafter{#2}%
% \global\@nameauth@toksc\expandafter{#3}%
@@ -9246,7 +9971,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% }
%
% % Likewise change the macro when personal names are desired.
-% \newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%
+% \NewDocumentCommand{\MyFName}{O{} m O{}}{%
% \global\@nameauth@toksa\expandafter{#1}%
% \global\@nameauth@toksb\expandafter{#2}%
% \global\@nameauth@toksc\expandafter{#3}%
@@ -9269,32 +9994,31 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \ForgetThis\Name[Adolf]{Harnack} was a theologian who stressed
% the Fatherhood of God and the brotherhood of man.
% \Name[Adolf]{Harnack} flourished in the early twentieth
-% century. We also produce \Name*[Adolf]{Harnack} and
-% \FName[Adolf]{Harnack}.
+% century; \Name*[Adolf]{Harnack}[Adolf von]; \FName[Adolf]{Harnack}.
%
% \printindex
% \end{document}
% \end{VerbatimOut}
%
-% \begin{quote}\small
+% \begin{quote}
% \VerbatimInput[gobble=0]{\NameauthTestFile}
%
% \makeatletter
-% \newcommandx*\MyName[3][1=\@empty, 3=\@empty]{^^A
+% \NewDocumentCommand{\MyName}{O{} m O{}}{^^A
% \global\@nameauth@toksa\expandafter{#1}^^A
% \global\@nameauth@toksb\expandafter{#2}^^A
% \global\@nameauth@toksc\expandafter{#3}^^A
% \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}^^A
% }
%
-% \newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{^^A
+% \NewDocumentCommand{\MyLName}{O{} m O{}}{^^A
% \global\@nameauth@toksa\expandafter{#1}^^A
% \global\@nameauth@toksb\expandafter{#2}^^A
% \global\@nameauth@toksc\expandafter{#3}^^A
% \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}^^A
% }
%
-% \newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{^^A
+% \NewDocumentCommand{\MyFName}{O{} m O{}}{^^A
% \global\@nameauth@toksa\expandafter{#1}^^A
% \global\@nameauth@toksb\expandafter{#2}^^A
% \global\@nameauth@toksc\expandafter{#3}^^A
@@ -9311,22 +10035,105 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \ForgetThis\Name[Adolf]{Harnack} was a theologian who stressed
% the Fatherhood of God and the brotherhood of man.
% \Name[Adolf]{Harnack} flourished in the early twentieth
-% century. We also produce \Name*[Adolf]{Harnack} and
-% \FName[Adolf]{Harnack}.
+% century; \Name*[Adolf]{Harnack}[Adolf von]; \FName[Adolf]{Harnack}.
% \end{quote}
%
-% After 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.\medskip
+% After 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.
%
% 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}.
+%
+% \newpage
+%
+% \subsubsection{Change Parsing}
+% \label{sec:ChangeParse}
+%
+% In Section~\ref{sec:FinalOptargs} we saw reasons why \textsf{nameauth} ignores spaces before final optional arguments. Here we show how to change that. With \textsf{xparse} since May 2018, the \texttt{!O\{\}} specifier makes spaces significant before an optional argument. Before then, the example below got the same result through undocumented behavior, now fixed.
+%
+% \begin{VerbatimOut}{\jobname.tmp}
+% \makeatletter
+% \@ifl@t@r\fmtversion{2018/04/30}{\def\nameauthxp{}}{}
+% \makeatother
+%
+% \makeatletter
+% \ifdefined\nameauthxp
+% \NewDocumentCommand{\MyName}{O{} m !O{}}{%
+% \global\@nameauth@toksa\expandafter{#1}%
+% \global\@nameauth@toksb\expandafter{#2}%
+% \global\@nameauth@toksc\expandafter{#3}%
+% \@nameauth@Name[#1]{#2}[#3]%
+% }
+% \else
+% \NewDocumentCommand{\MyName}{O{} m O{}}{%
+% \global\@nameauth@toksa\expandafter{#1}%
+% \global\@nameauth@toksb\expandafter{#2}%
+% \global\@nameauth@toksc\expandafter{#3}%
+% \@nameauth@Name[#1]{#2}[#3]%
+% }
+% \fi
+% \makeatother
+%
+% \let\NameauthName\MyName
+% \let\NameauthLName\MyName
+% \let\NameauthFName\MyName
+%
+% \ForgetName[Albert]{Einstein}
+% \ForgetName{Miyazaki, Hayao}
+%
+% We want ``Albert Einstein [reportedly] said'',
+% ``Miyazaki Hayao [supposedly] said'',
+% ``Einstein [reportedly] said'', and
+% ``Miyazaki [supposedly] said''.
+%
+% We get ``\Name[Albert]{Einstein} [reportedly] said'',
+% ``\Name{Miyazaki, Hayao} [supposedly] said'',
+% ``\Name[Albert]{Einstein} [reportedly] said'', and
+% ``\Name{Miyazaki, Hayao} [supposedly] said''.
+% \end{VerbatimOut}
+%
+% \begin{quote}
+%^^A Display the appropriate verbatim text above.
+% \VerbatimInput[gobble=0]{\jobname.tmp}
+%^^A Redefine formatting macros.
+% \renewcommand\NamesFormat{}
+% \renewcommand\MainNameHook{}
+%
+% \makeatletter
+% \ifdefined\nameauthxp
+% \NewDocumentCommand{\MyName}{O{} m !O{}}{%^^A
+% \global\@nameauth@toksa\expandafter{#1}%^^A
+% \global\@nameauth@toksb\expandafter{#2}%^^A
+% \global\@nameauth@toksc\expandafter{#3}%^^A
+% \@nameauth@Name[#1]{#2}[#3]}
+% \else
+% \NewDocumentCommand{\MyName}{O{} m O{}}{%^^A
+% \global\@nameauth@toksa\expandafter{#1}%^^A
+% \global\@nameauth@toksb\expandafter{#2}%^^A
+% \global\@nameauth@toksc\expandafter{#3}%^^A
+% \@nameauth@Name[#1]{#2}[#3]}
+% \fi
+% \makeatother
+%
+% \let\NameauthName\MyName
+% \let\NameauthLName\MyName
+% \let\NameauthFName\MyName
+%
+% \ForgetName[Albert]{Einstein}
+% \ForgetName{Miyazaki, Hayao}
+%
+% We want ``Albert Einstein [reportedly] said'',
+% ``Miyazaki Hayao [supposedly] said'',
+% ``Einstein [reportedly] said'', and
+% ``Miyazaki [supposedly] said''.
+%
+% We get ``\Name[Albert]{Einstein} [reportedly] said'',
+% ``\Name{Miyazaki, Hayao} [supposedly] said'',
+% ``\Name[Albert]{Einstein} [reportedly] said'', and
+% ``\Name{Miyazaki, Hayao} [supposedly] said''.
+% \end{quote}
% \endgroup^^A General format hook redefinition
-% \negmedskip
%
% \ReturnLink
%
-% \begin{Quote}{\ForgetThis\Name{Confucius}, \textit{The Analects}, C II}
-% He who exercises government by means of his virtue may be compared to the north polar star, which keeps its place and all the stars turn towards it.
-% \end{Quote}
-%
% \newpage
%
% \section{Technical Notes and Tips}
@@ -9335,65 +10142,20 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Tips: General}
%
% \begin{itemize}
-% \item A missing square bracket or curly brace can cause errors like
-% ``\texttt{Paragraph ended}'' and ``\texttt{Missing} \meta{grouping token}
-% \texttt{inserted.}''
-% \item Ensure that macros and conditionals used in name arguments are
-% defined in the preamble or outermost scope.
-% \item Because \cmd{\CapThis} segments a name argument, using it with
-% macros in name arguments can cause errors if not used with alternate
-% formatting (Section~\ref{sec:AltFormat}).
-% \item Something like |\edef\foo{\CapThis\Name{bar}}| will fail. Yet
-% one can use |\CapThis\Name{bar}| as an argument to |\edef\foo#1{#1}|.
-% \item In \texttt{dtx} files, put the \texttt{nameauth} environment and
-% tags in the \texttt{<driver>} section preamble. Do not, however put
-% any \cmd{\newif} statements there because they cannot be placed between
-% \texttt{\textbackslash iffalse} and \texttt{\textbackslash fi}. Save the
-% \cmd{\newif} statements for the ``commented'' part.
+% \item Technical details about package development and testing are in \texttt{README.md}.
+% \item Both \texttt{compat.tex} and \texttt{examples.tex} contain useful information.
+% \item Do not put naming macros withing a macro defined by \cmd{\edef}.
+% Yet naming macros can be passed as arguments to such a macro.
+% \item In \texttt{dtx} files, the \texttt{nameauth} environment and initial tagging
+% macros work easiest in the \texttt{<driver>} section preamble. Yet if any of these
+% contains one or more \cmd{\newif} statements, they must go in the ``commented part''
+% since the preamble falls between \texttt{\textbackslash iffalse} and
+% \texttt{\textbackslash fi}.
% \end{itemize}
%
% \subsection[Tips: Indexing]{Tips: Indexing and Sorting}
% \label{sec:DebugSort}
%
-% The following warnings are always active. These warnings are issued when the following actions are attempted, but are \emph{not allowed} unless certain package options are used:
-%
-% \begin{itemize}
-% \item Use \cmd{\SeeAlso} before \cmd{\IndexName} or a naming macro.
-% \item Use \cmd{\PretagName} with the \texttt{nopretag} option.
-% \item Use \cmd{\IndexRef} with an extant name.
-% The \texttt{oldsee} option permits this.
-% \item Put \cmd{\SkipIndex} before \cmd{\IndexName} and \cmd{\IndexRef}.
-% The \texttt{oldsee} option permits this.
-% \item Prevent \cmd{\SkipIndex} from remaining active after being done
-% with \cmd{\PName} and \cmd{\PName*}. Only when the \texttt{oldreset}
-% option is used, do not reset \cmd{\SkipIndex} and warn if is effects
-% remain active.
-% \end{itemize}
-%
-% Many warnings occur only when the \texttt{verbose} package option is used. These are less likely to indicate a serious problem, but might be helpful:
-%
-% \begin{itemize}
-% \item When the following actions are attempted, they are \emph{not allowed}
-% unless certain package options are used:
-% \begin{itemize}
-% \item Use \cmd{\IndexName} or a naming macro with a cross-reference
-% or exclusion.
-% \item Use \cmd{\IndexRef} with a cross-reference or exclusion.
-% \item Use \cmd{\ExcludeName}, \cmd{\IncludeName}, \cmd{\TagName},
-% or \cmd{\UntagName} with a cross-reference.
-% \item Only if the \texttt{oldsee} option is used, instead of preventing
-% \cmd{\IndexRef} to create an xref on top of an extant name, just warn
-% if a name exists and creates a \textit{see} reference, which
-% prevents further page entries for that name.
-% \end{itemize}
-% \item When the following actions are attempted, they are \emph{permitted.}
-% \begin{itemize}
-% \item Use \cmd{\ExcludeName} with an extant name.
-% \item Use \cmd{\IncludeName*} with a cross-reference.
-% \item Use \cmd{\PretagName} to sort a cross-reference.
-% \end{itemize}
-% \end{itemize}
-%
% \begin{itemize}
% \item Two names may look alike on the page, but their name patterns can
% differ, creating spurious index entries. Check the \texttt{idx} file
@@ -9412,18 +10174,18 @@ and version 1.3 or later is part of all distributions of LaTeX version
% could be of assistance.
% \item If an entry is sorted incorrectly in the index, check the following:
% \begin{itemize}
-% \item Are there any ac tive characters, spaces, or control sequences
+% \item Are there any active characters, 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 Is alternate formatting used consistently? Are names used
+% within sections of alternate formatting used outside of them?
% \item Are macros in the name arguments that can expand differently
% under different conditions preceded by \cmd{\noexpand}?
% \end{itemize}
% \end{itemize}
%
-% Extra spaces are significant when sorting index entries, yet usually are not significant in the body text. Macros that use \cmd{\protected@edef} can add spaces to index entries. Because \textsf{nameauth} must work with classes that write index entries to \texttt{aux} files, its macros must use \cmd{\protected@edef}. The only way to verify this is to inspect the \texttt{idx} file. We show this below:
+% Using \cmd{\protected@edef} in macros can add spaces to index entries. The \textsf{nameauth} macros must use \cmd{\protected@edef} to work with classes that write index entries to \texttt{aux} files. One must check this in the \texttt{idx} file. We show this below:
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \makeatletter
% \newcommand\Idx[1]{\protected@edef\arg{#1}\index{\arg}}
@@ -9442,11 +10204,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection[Tips: Name Args]{Tips: Macros in Name Arguments}
%
% \begin{itemize}
+% \item A missing square bracket or curly brace in name arguments can cause errors like
+% ``\texttt{Paragraph ended}'' and ``\texttt{Missing} \meta{grouping token}
+% \texttt{inserted.}''
% \item Use alternate formatting to avoid potential problems, especially
-% when using \cmd{\CapThis} (Sections~\ref{sec:AltFormat},
+% when using \cmd{\CapThis}, which segments arguments (Sections~\ref{sec:AltFormat},
% \ref{sec:AdvCustomize}).
-% \item |\SkipIndex\Name{\noexpand\empty}| will not trigger a package error,
-% while |\SkipIndex\Name{\empty}| will trigger an error.
% \item Use \cmd{\noexpand}\meta{macro} in name macro arguments as
% a best practice.
% \item Macros used in name arguments must be defined either in the
@@ -9461,10 +10224,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
% and cannot do. See more about this issue and \cmd{\newcommand} on
% \href{https://tex.stackexchange.com/questions/51733/global-renewcommand-equivalent-of-global-def}
% {\bfseries this page}.
+% \item Below we show general aspects of scoping to apply them to this package:
% \end{itemize}
%
-% Below we demonstrate how scoping rules work:
-%
% \begin{VerbatimOut}{\jobname.tmp}
% \newif\ifCondA
% \newcommand\MacroA{}
@@ -9476,59 +10238,51 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \global\MacroC
% \global\CondAtrue
% \endgroup
-% \end{VerbatimOut}
-%
-% \begin{quote}\small
-% \VerbatimInput[gobble=0]{\jobname.tmp}
-% \end{quote}
-% \input{\jobname.tmp}
%
% \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 defined
% \else \cmd{\MacroA} is not defined \fi
% 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}
+% \end{VerbatimOut}
+%
+% \begin{quote}
+% \VerbatimInput[gobble=0]{\jobname.tmp}
%
-% 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:
+% \input{\jobname.tmp}
+% \end{quote}
%
-% \begin{quote}\small
-% \IndexInactive
-% \begin{Verbatim}
-% \begin{nameauth}
-% \< Testi & & \noexpand\TESTi & >
-% \< Testii & & \noexpand\TESTii & >
-% \end{nameauth}
-% \def\TESTi{Test One}
-% \indent \hbox to 10em{(Outer 1) \Testi\hfill}
-% \begingroup
-% (Inner 1) \Testi\\
-% \def\TESTii{Test Two}
-% \hbox to 10em{(Inner 2) \Testii\hfill}
-% \ndegroup
-% (Outer 2) \unless\ifdefined\TESTii \cmd{\TESTii} undefined\fi
-% \end{Verbatim}
+% Any macro that is used in the argument of a naming macro must be defined in all scopes in which that name is used. The names themselves are global, but macros in their arguments are not guaranteed to be so:
%
+% \begin{VerbatimOut}{\jobname.tmp}
% \begin{nameauth}
% \< Testi & & \noexpand\TESTi & >
% \< Testii & & \noexpand\TESTii & >
@@ -9541,20 +10295,28 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \hbox to 10em{(Inner 2) \Testii\hfill}
% \endgroup
% (Outer 2) \unless\ifdefined\TESTii \cmd{\TESTii} undefined\fi
+% \end{VerbatimOut}
+%
+% \begin{quote}
+% \IndexInactive
+% \VerbatimInput[gobble=0]{\jobname.tmp}
+%
+% \input{\jobname.tmp}
% \end{quote}
%
-% \newpage
%
% \subsection[Active Unicode]{Active Unicode Characters}
% \label{sec:Unicode}
%
% \subsubsection{General Information}
%
-% 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}). More Unicode characters can be made available when using fonts with TS1 glyphs (pages 455--463 in \textit{The Latex Companion}). Compare \href{https://tug.ctan.org/info/symbols/comprehensive/}{\bfseries this page} or type either \texttt{texdoc comprehensive}, \texttt{texdoc symbols-A4}, or \texttt{texdoc symbols-letter}.
+% Both \texttt{xelatex} and \texttt{lualatex} support Unicode natively. In \texttt{pdflatex}, this happens with active characters. There are features (e.g., in \textsf{microtype}) that require \texttt{pdflatex}. Both \texttt{makeindex} and \texttt{xindy} have their own design choices.
+%
+% 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}). More Unicode characters can be made available when using fonts with TS1 glyphs (pages 455--463 in \textit{The Latex Companion}). Compare \href{https://tug.ctan.org/info/symbols/comprehensive/}{\bfseries this page} or type either \texttt{texdoc comprehensive}, \texttt{texdoc symbols-A4}, or \texttt{texdoc symbols-letter} for more information.
%
% 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}):
%
-% \begin{quote}\small
+% \begin{quote}
% \begin{Verbatim}
% \usepackage[utf8]{inputenc} % For older TL releases
% \usepackage[TS1,T1]{fontenc}
@@ -9570,47 +10332,124 @@ and version 1.3 or later is part of all distributions of LaTeX version
% In Congreſs, July 4, 1776
% \end{quote}
%
-% Many Unicode characters have native support in \texttt{xelatex} and
-% \texttt{lualatex}, but not in \texttt{pdflatex}. Yet the latter has
-% features (e.g., in \textsf{microtype}) that others lack. The features of
-% \texttt{makeindex} do not always equate to those in \texttt{xindy}.
-% Those differences impact design choices.
-% Below we group characters by accents and diacritical marks:
+% Below we group characters that are supported in \texttt{pdflatex}
+% without additional modification by accents and diacritical marks:
%
-% \begin{center}\large\bigstretch
+% \begin{center}\large
% \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\\
-% & Ń Ó Ŕ Ś Ú à Ź &
-% ń ó ŕ ś ú ý ź \strut\\
-% \rowcolor{nagrey}grave & À \Bullet{C} È \Bullet{G} \Bullet{H} Ì Ò Ù &
-% à \bullet{c} è \bullet{g} \bullet{h} ì ò ù \strut\\
-% circumflex & Â Ĉ Ê Ĝ Ĥ Î Ĵ Ô Ŝ Û Ŵ Ŷ &
-% â ĉ ê Ä Ä¥ î ĵ ô Šû ŵ Å· \strut\\
-% \rowcolor{nagrey}tilde &
-% Ã \Bullet{C} \Bullet{E} \Bullet{G} \Bullet{H} Ĩ Ñ Õ Ũ &
-% ã \bullet{c} \bullet{e} \bullet{g} \Bullet{h} ĩ ñ õ ũ \strut\\
-% diaeresis\footnotemark & Ä \Bullet{C} Ë \Bullet{G} \Bullet{H} à Ö Ü Ÿ &
-% ä \bullet{c} ë \bullet{g} \bullet{h} ï ö ü ÿ \strut\\
-% \rowcolor{nagrey}cedilla & \Bullet{A} Ç \Bullet{E} Ģ Ķ Ļ Ņ Ŗ Ş Ţ &
-% \bullet{a} ç \bullet{e} ģ ķ ļ ņ ŗ ş ţ \strut\\
-% macron & Ā \Bullet{C} Ē Ḡ \Bullet{H} Ī Ō Ū Ǣ Ȳ &
-% Ä \bullet{c} Ä“ ḡ \bullet{h} Ä« Å Å« Ç£ ȳ \strut\\
-% \rowcolor{nagrey}breve & Ă \Bullet{C} \Bullet{E} Ğ \Bullet{H} Ĭ Ŏ Ŭ &
-% ă \bullet{c} \bullet{e} ğ \bullet {h} ĭ Šŭ \strut\\
-% dot/dotless & Ḃ Ċ Ė Ġ \Bullet{H} İ Ż & ḃ ċ ė ġ \bullet{h} ı ż \strut\\
-% \rowcolor{nagrey}ogonek & Ą \Bullet{C} Ę \Bullet{G} \Bullet{H} Į Ǫ Ų &
-% ą \bullet{c} ę \bullet{g} \bullet{h} į ǫ ų \strut\\
-% caron & Ç ÄŒ ÄŽ Äš Ǧ Ç Ç¨ Ľ & ÇŽ Ä Ä Ä› ǧ Ç Ç° Ç© ľ \strut\\
-% & Ň Ǒ Ř Š Ť Ǔ Ž & ň ǒ ř š ť ǔ ž \strut\\
-% \rowcolor{nagrey}various & Ã… Æ à (eth) Ä (stroke) IJ\ Å &
-% å æ ð đ ij\ ł \strut\\
-% \rowcolor{nagrey} & Ŋ Ø Œ ŠŮ Ű Ș Ț Þ &
-% ŋ ø œ ő ů ű ș ß ț þ \strut\\\bottomrule
+% \begin{tabular}{ll}\toprule
+% \rowcolor{nagrey}^^A
+% \bfseries Capitals & \strut\\
+%
+% acute & à Ć \Bullet{D} É Ǵ \Bullet{H} à \Bullet{J} \Bullet{K} Ĺ
+% Ń Ó Ŕ Ś \Bullet{T} Ú \Bullet{W} à Ź \strut\\
+%
+% \rowcolor{nagrey}^^A
+% grave & À \Bullet{C} \Bullet{D} È \Bullet{G} \Bullet{H} Ì \Bullet{J}
+% \Bullet{K} \Bullet{L} \Bullet{N} Ã’ \Bullet{R} \Bullet{S}
+% \Bullet{T} Ù \Bullet{W} \Bullet{Y} \Bullet{Z} \strut\\
+%
+% circumflex & Â Ĉ \Bullet{D} Ê Ĝ Ĥ Î Ĵ \Bullet{K} \Bullet{L}
+% \Bullet{N} Ô \Bullet{R} Ŝ \Bullet{T} Û Ŵ Ŷ
+% \Bullet{Z} \strut\\
+%
+% \rowcolor{nagrey}^^A
+% tilde & Ã \Bullet{C} \Bullet{D} \Bullet{E} \Bullet{G} \Bullet{H}
+% Ĩ \Bullet{J} \Bullet{K} \Bullet{L} Ñ Õ \Bullet{R}
+% \Bullet{S} \Bullet{T} Ũ \Bullet{W} \Bullet{Y}
+% \Bullet{Z} \strut\\
+%
+% diaeresis\footnotemark & Ä \Bullet{C} \Bullet{D} Ë \Bullet{G} \Bullet{H}
+% à \Bullet{J} \Bullet{K} \Bullet{L} \Bullet{N} Ö \Bullet{R}
+% \Bullet{S} \Bullet{T} Ü \Bullet{W} Ÿ \Bullet{Z} \strut\\
+%
+% \rowcolor{nagrey}^^A
+% cedilla & \Bullet{A} Ç \Bullet{D} \Bullet{E} Ģ \Bullet{H} \Bullet{I}
+% \Bullet{J} Ķ Ļ Ņ \Bullet{O} Ŗ Ş Ţ \Bullet{U} \Bullet{W}
+% \Bullet{Y} \Bullet{Z} \strut\\
+%
+% macron & Ā \Bullet{C} \Bullet{D} Ē Ḡ \Bullet{H} Ī \Bullet{J}
+% \Bullet{K} \Bullet{L} \Bullet{N} Ō \Bullet{R} \Bullet{S}
+% \Bullet{T} Ū Ǣ Ȳ \Bullet{Z} \strut\\
+%
+% \rowcolor{nagrey}^^A
+% breve & Ă \Bullet{C} \Bullet{D} \Bullet{E} Ğ \Bullet{H} Ĭ \Bullet{J}
+% \Bullet{K} \Bullet{L} \Bullet{N} ÅŽ \Bullet{R} \Bullet{S}
+% \Bullet{T} Ŭ \Bullet{W} \Bullet{Y} \Bullet{Z} \strut\\
+%
+% dot/dotless & Ḃ Ċ \Bullet{D} Ė Ġ \Bullet{H} İ \Bullet{J} \Bullet{K}
+% \Bullet{L} \Bullet{N} \Bullet{O} \Bullet{R} \Bullet{S}
+% \Bullet{T} \Bullet{U} \Bullet{W} \Bullet{Y} Å» \strut\\
+%
+% \rowcolor{nagrey}^^A
+% ogonek & Ą \Bullet{C} \Bullet{D} Ę \Bullet{G} \Bullet{H} Į \Bullet{J}
+% \Bullet{K} \Bullet{L} \Bullet{N} Ǫ \Bullet{R} \Bullet{S}
+% \Bullet{T} Ų \Bullet{W} \Bullet{Y} \Bullet{Z} \strut\\
+%
+% caron & Ç ÄŒ ÄŽ Äš Ǧ \Bullet{H} Ç \Bullet{J} Ǩ Ľ Ň Ç‘ Ř Å  Ť Ç“ \Bullet{W}
+% \Bullet{Y} Ž \strut\\
+%
+% \rowcolor{nagrey}^^A
+% various & Ã… Æ à (eth) Ä (stroke) IJ\ Å
+% Ŋ Ø Œ ŠŮ Ű Ș Ț Þ \strut\\\midrule
+%
+% \\\midrule
+%
+% \rowcolor{nagrey}^^A
+% \bfseries Lowercase & \strut\\
+%
+% acute & á ć \bullet{d} é ǵ \bullet{h} í \bullet{j} \bullet{k} ĺ
+% ń ó ŕ ś \bullet{t} ú \bullet{w} ý ź \strut\\
+%
+% \rowcolor{nagrey}^^A
+% grave & à \bullet{c} \bullet{d} è \bullet{g} \bullet{h} ì \bullet{j}
+% \bullet{k} \bullet{l} \bullet{n} ò \bullet{r} \bullet{s}
+% \bullet{t} ù \bullet{w} \bullet{y} \bullet{z} \strut\\
+%
+% circumflex & â ĉ \bullet{d} ê Ä Ä¥ î ĵ \bullet{k} \bullet{l} \bullet{n}
+% ô \bullet{r} Š\bullet{t} û ŵ ŷ \bullet{z} \strut\\
+%
+% \rowcolor{nagrey}^^A
+% tilde & ã \bullet{c} \bullet{d} \bullet{e} \bullet{g} \Bullet{h} ĩ
+% \bullet{j} \bullet{k} \bullet{l} ñ õ \bullet{r} \bullet{s}
+% \bullet{t} Å© \bullet{w} \bullet{y} \bullet{z} \strut\\
+%
+% diaeresis & ä \bullet{c} \bullet{d} ë \bullet{g} \bullet{h} ï \bullet{j}
+% \bullet{k} \bullet{l} \bullet{n} ö \bullet{r} \bullet{s}
+% \bullet{t} ü \bullet{w} ÿ \bullet{z} \strut\\
+%
+% \rowcolor{nagrey}^^A
+% cedilla & \bullet{a} ç \bullet{d} \bullet{e} ģ \bullet{h} \bullet{i}
+% \bullet{j} ķ ļ ņ \bullet{o} ŗ ş ţ \bullet{u} \bullet{w}
+% \bullet{y} \bullet{z} \strut\\
+%
+% macron & Ä \bullet{c} \bullet{d} Ä“ ḡ \bullet{h} Ä« \bullet{j}
+% \bullet{k} \bullet{l} \bullet{n} Å \bullet{r}
+% \bullet{s} \bullet{t} ū ǣ ȳ \bullet{z} \strut\\
+%
+% \rowcolor{nagrey}^^A
+% breve & ă \bullet{c} \bullet{d} \bullet{e} ğ \bullet {h} ĭ
+% \bullet{j} \bullet{k} \bullet{l} \bullet{n} Å \bullet{r}
+% \bullet{s} \bullet{t} Å­ \bullet{w} \bullet{y}
+% \bullet{z} \strut\\
+%
+% dot/dotless & ḃ ċ \bullet{d} ė ġ \bullet{h} ı \bullet{j} \bullet{k}
+% \bullet{l} \bullet{n} \bullet{o} \bullet{r} \bullet{s}
+% \bullet{t} \bullet{u} \bullet{w} \bullet{y} ż \strut\\
+%
+% \rowcolor{nagrey}^^A
+% ogonek & ą \bullet{c} \bullet{d} ę \bullet{g} \bullet{h} į \bullet{j}
+% \bullet{k} \bullet{l} \bullet{n} Ç« \bullet{r} \bullet{s}
+% \bullet{t} ų \bullet{w} \bullet{y} \bullet{z} \strut\\
+%
+% caron & ÇŽ Ä Ä Ä› ǧ \bullet{h} Ç Ç° Ç© ľ ň Ç’ Å™ Å¡ Å¥ Ç” \bullet{w}
+% \bullet{y} ž \strut\\
+%
+% \rowcolor{nagrey}^^A
+% various & å æ ð đ ij\ ł ŋ ø œ ő ů ű ș ß ț þ \strut\\\bottomrule
% \end{tabular}
% \footnotetext{A diaeresis mark is one way to indicate a sound change
% (\textit{Umlaut}). German originally used a superscript \textsf{e} over
@@ -9622,15 +10461,21 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \newpage
%
% \subsubsection[Compatibility]{Compatibility: Old and New}
+% \label{sec:CompatON}
%
-% Since 2018, changes in the way that \texttt{pdflatex} and \texttt{latex} handle Unicode characters have made indexing simpler and more intuitive, e.g.
+% Changes in the way that \texttt{pdflatex} and \texttt{latex} handle Unicode characters since 2018 have made indexing simpler and more intuitive, e.g.
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \begin{tabular}{rllrll}\toprule
-% pre-2018 text & & index & post-2018 text & & index\\
-% \rowcolor{nagrey} ä & \textrightarrow &
+% \rowcolor{nagrey}^^A
+% \bfseries Pre-2018 & & \bfseries Index &
+% \bfseries Post-2018 & & \bfseries Index\\
+%
+% ä & \textrightarrow &
% \texttt{\cmd{\IeC\textvisiblespace}\{\cmd{\"a}\}} &
% ä & \textrightarrow & \texttt{ä}\\
+%
+% \rowcolor{nagrey}^^A
% æ & \textrightarrow &
% \texttt{\cmd{\IeC\textvisiblespace}\{\cmd{\ae\textvisiblespace}\}} &
% æ & \textrightarrow & \texttt{æ}\\\bottomrule
@@ -9639,36 +10484,39 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% The \cmd{\IeC} macro plus its argument then would expand to \cmd{\T1} plus its argument, which would occur especially if accented characters were written out to a file, then read in again. This could cause a number of problems.
%
-% One can test for this change and take different approaches as needed. In making such choices, one may need to consult the entries in the \texttt{idx} and \texttt{ind} files to see how the name arguments are being indexed. The basic test is:
+% There are two ways to test if one is working with a newer or older version of \texttt{pdflatex} or \texttt{latex}. The first involves \LaTeX\ kernel macros in the document preamble to check the format date. We check if the date is later than the first use of the file \texttt{utf8-2018.def}, If that is the case, we can define macros or set Boolean flags, which we can test repeatedly. For example, in the document preamble we could have:
%
-% \begin{quote}\small
-% \cmd{\IfFileExists\{utf8-2018.def\}}\marg{new}\marg{old}
+% \begin{quote}
+% \begin{Verbatim}
+% \makeatletter
+% \@ifl@t@r\fmtversion{2018/10/05}{\def\nameauthltx{}}{}
+% \@ifl@t@r\fmtversion{2018/04/30}{\def\nameauthxp{}}{}
+% \makeatother
+% \end{Verbatim}
% \end{quote}
%
-% Now we apply the test to an example. Before 2018, some index styles like \texttt{gind.ist} could not work with characters that contained macrons:
-%
-% \begin{center}\large
-% \begin{tabular}{ll}
-% Ä€ Ä’ Ḡ Ī ÅŒ Ū Ç¢ Ȳ & Ä Ä“ ḡ Ä« Å Å« Ç£ ȳ\\
-% \end{tabular}
-% \end{center}
+% The tests above apply to two things that are pertinent to \textsf{nameauth}. The first is the presence of \texttt{utf8-2018.def}. The second involves changes in \textsf{xparse} that could impact \textsf{nameauth}, which we used silently in Section~\ref{sec:ChangeParse}.
+% Another test checks directly for the presence of \texttt{utf8-2018.def}:
%
-% Since 2018, those restrictions have been removed. In order to create a document that can work with old or new versions of \LaTeX, one can conditionally use macrons or not. In a recent version of \LaTeX, one will see a macron in the name
-% \ifPDFTeX^^A
-% \IfFileExists{utf8-2018.def}^^A
-% {\Name{GhazÄli}}{\Name{Ghazali}}^^A
-% \else\Name{GhazÄli}^^A
-% \fi.
-% Otherwise, no macron will be present. We avoid errors that could arise with control sequences like \cmd{\=a} in the index when using \texttt{makeindex} and \texttt{gind.ist} by using the following snippet:
+% \begin{quote}
+% \begin{Verbatim}
+% \IfFileExists{utf8-2018.def}
+% {do if exists}
+% {do if absent}
+% \end{Verbatim}
+% \end{quote}
%
-% \begin{quote}\small
+% Now we apply the test to an example. Before 2018, some index styles like \texttt{gind.ist} could not work with characters that contained macrons. Since 2018, those restrictions have been removed.
+% To create a document that can work with old or new versions of \texttt{pdflatex} and \texttt{latex}, one can choose to use macrons or not. In a recent version, one will see macrons in the following names, otherwise, no macron will be present.
+% \begin{quote}
% \begin{Verbatim}
-% \ifPDFTeX
-% \IfFileExists{utf8-2018.def}%
-% {\Name{GhazÄli}}{\Name{Ghazali}}%
-% \else\Name{GhazÄli}%
-% \fi
+% \ifdefined\nameauthltx \Name{GhazÄli} \else \Name{Ghazali}\fi
+%
+% \IfFileExists{utf8-2018.def}{\Name{GhazÄli}}{\Name{Ghazali}}
% \end{Verbatim}
+% \ifdefined\nameauthltx \Name{GhazÄli} \else \Name{Ghazali}\fi
+%
+% \IfFileExists{utf8-2018.def}{\Name{GhazÄli}}{\Name{Ghazali}}
% \end{quote}
%
% The challenge of compatibility arises in this manual in a few instances, which we summarize below to mention specific resources without going too far afield.
@@ -9676,35 +10524,43 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{itemize}
% \item To use older distributions, one must include the \textsf{textcomp}
% package for backward compatibility. Otherwise it is not needed in
-% recent \TeX\ distributions, e.g., since 2019.
-% \item We \cmd{\input} the included snippet \texttt{compat.tex} to
-% allow \texttt{examples.tex} and the test files (see \texttt{README.md})
-% to be compatible with different \LaTeX\ engines and older \TeX\
-% distributions. The file \texttt{examples.tex} includes additional
-% examples that deal with compatibility.
+% recent \TeX\ distributions, e.g., since 2018.
% \item Use of certain text elements, such as \cmd{\dotfill} within
% tables, has become more permissive in recent \TeX\ distributions.
-% This manual avoids situations that would cause compatibility
-% problems in older distributions.
-% \end{itemize}
+% \item The file \texttt{examples.tex} (see \texttt{README.md}) includes
+% additional code snippets that deal with compatibility.
+% \item We \cmd{\input} the included snippet \texttt{compat.tex} in
+% \texttt{examples.tex} to permit use with different \LaTeX\ engines
+% and older \TeX\ distributions.
+% \end{itemize}\negbigskip
+%
+% \begin{InfoBox}
+% Users are encouraged to view and modify \texttt{compat.tex} to meet their own needs.
+% \end{InfoBox}\negbigskip
%
% \subsubsection[Fragility]{Fragility of Active Unicode}
%
% \TeX\ macros that partition their arguments can break active Unicode characters.The simple macro |\def\foo#1#2#3!{<#1#2><#3>}| takes three arguments, groups the first two, then the third, followed by a delimiter that ends the argument list:
%
-% \begin{center}\small\medstretch
+% \begin{center}
% \def\foo#1#2#3!{<#1#2><#3>}
% \begin{tabular}{llll}\toprule
-% Argument & Macro & Engine & Result\\
-% \rowcolor{nagrey}|abc| & |\foo abc!| & (any) & \foo abc!\\
-% \rowcolor{nagrey}|{æ}bc| & |\foo {æ}bc!| & (any) & \foo {æ}bc!\\
-% \rowcolor{nagrey}|\ae bc| & |\foo \ae bc!| & (any) & \foo \ae bc!\\
-% |æbc| & |\foo æbc!| & \texttt{xelatex} &
+% \rowcolor{nagrey}^^A
+% \bfseries Arg. & \bfseries Macro & \bfseries Engine & \bfseries Result\\
+%
+% |abc| & |\foo abc!| & (any) & \foo abc!\\
+% |{æ}bc| & |\foo {æ}bc!| & (any) & \foo {æ}bc!\\
+% |\ae bc| & |\foo \ae bc!| & (any) & \foo \ae bc!\\
+%
+% \rowcolor{nagrey}^^A
+% |æbc| & |\foo æbc!| & \texttt{xelatex} &
% \ifxetex\foo æbc!\else<æb><c>\fi\\
-% |æbc| & |\foo æbc!| & \texttt{lualatex} &
+% \rowcolor{nagrey}^^A
+% |æbc| & |\foo æbc!| & \texttt{lualatex} &
% \ifluatex\foo æbc!\else<æb><c>\fi\\
-% \rowcolor{nagrey}|æbc| & |\foo æbc!| & \texttt{pdflatex} & \foo æbc!\\
-% \rowcolor{nagrey}|æbc| & |\foo æbc!| & \texttt{latex} & \foo æbc!\\
+%
+% |æbc| & |\foo æbc!| & \texttt{pdflatex} & \foo æbc!\\
+% |æbc| & |\foo æbc!| & \texttt{latex} & \foo æbc!\\
% \bottomrule
% \end{tabular}
% \end{center}
@@ -9717,8 +10573,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \ReturnLink
%
-% \begin{Quote}{\Name{Plato}, opening statement in \textit{Cratylus}}
-% \Name{Hermogenes}: I should explain to you, \Name{Socrates}, that our friend \Name{Cratylus} has been arguing about names; he says that they are natural and not conventional; not a portion of the human voice which men agree to use; but that there is a truth or correctness in them, which is the same for Hellenes as for barbarians. Whereupon I ask him, whether his own name of \Name{Cratylus} is a true name or not, and he answers `Yes.' And \Name{Socrates}? `Yes.' Then every man's name, as I tell him, is that which he is called. To this he replies{---}`If all the world were to call you \Name{Hermogenes}, that would not be your name.' And when I am anxious to have a further explanation he is ironical and mysterious, and seems to imply that he has a notion of his own about the matter, if he would only tell, and could entirely convince me, if he chose to be intelligible.
+% \begin{Quote}{\Name{Plato}, opening statement in \textit{Cratylus} (c. 388 \textsc{bc})}
+% \Name{Hermogenes}: I should explain to you, \Name{Socrates}, that our friend \Name{Cratylus} has been arguing about names; he says that they are natural and not conventional; not a portion of the human voice which men agree to use; but that there is a truth or correctness in them, which is the same for Hellenes as for barbarians.^^A
+% \index{philosophers, quotes of\noexpand\string|hyperpage}
% \end{Quote}
%
% \newpage
@@ -9733,7 +10590,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \fi
%
% \section{Implementation}
-% \small
%
% This package has been reorganized so that the manual and the package
% have substantially the same ordering. This repetition should aid
@@ -9742,7 +10598,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsection{Boolean Flags}
%
% The \textsf{nameauth} package is a parser. The flags in this section
-% show the state of that parser.
+% show and change the state of that parser.
%
% \subsubsection{Flow Control}
%
@@ -9801,7 +10657,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \texttt{\textbackslash ifNameauthObsolete}}
% reflect the last name type evaluated by any macro that takes
% name arguments. The first shows whether or not we have a Western
-% or non-Western name. The second shows the kind of non-Western
+% or nonwestern name. The second shows the kind of nonwestern
% syntax used. These are not reset after evaluation.
%
% \begin{macrocode}
@@ -9871,7 +10727,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \texttt{\textbackslash if@nameauth@FullName} is true for a long
% name form. \texttt{\textbackslash if@nameauth@FirstName} causes only
-% Western forenames or non-Western surnames to be displayed when a shorter
+% Western forenames or nonwestern surnames to be displayed when a shorter
% form is used. The default is to reset both globally on a per-name basis.
%
% \texttt{\textbackslash if@nameauth@ShortSNN} is used with
@@ -10028,14 +10884,17 @@ and version 1.3 or later is part of all distributions of LaTeX version
\newif\if@nameauth@OldSee
% \end{macrocode}
% 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.
+% broadly determines how per-name flags are reset. The second affects the
+% behavior of \cmd{\JustIndex}. The third toggles whether or not the
+% name argument token registers are set globally. The fourth toggles the
+% inclusion of \textsf{xargs} and \textsf{suffix} for legacy cases where
+% user customizations were made.
%
% \begin{macrocode}
\newif\if@nameauth@OldReset
\newif\if@nameauth@OldPass
\newif\if@nameauth@OldToks
+\newif\if@nameauth@OldArgs
% \end{macrocode}
%
% \subsection[Registers, Hooks, Values]
@@ -10161,7 +11020,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{macro}{\NameauthPattern}
% \changes{3.7}{2023/02/03}{Added}
% Gives access to the current name control pattern. This hook can be
-% used, e.g., in formatting hooks to recall a name data tag
+% used, e.g., in formatting hooks to recall a name tag
% (Section~\ref{sec:DataTagHooks}). We preset it to an empty value. With
% every call to a macro that takes name arguments
% (Section~\ref{sec:NameArgMacros}), this hook is updated.
@@ -10255,7 +11114,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\DeclareOption{boldface}{\renewcommand*\NamesFormat{\bfseries}}
% \end{macrocode}
%
-% \subsubsection{Alternate Formatting}
+% \subsubsection[Alternate Format]{Alternate Formatting}
%
% Enable alternate formatting.
%
@@ -10282,6 +11141,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\DeclareOption{oldpass}{\@nameauth@OldPasstrue}
\DeclareOption{oldtoks}{\@nameauth@OldTokstrue}
\DeclareOption{oldsee}{\@nameauth@OldSeetrue}
+\DeclareOption{oldargs}{\@nameauth@OldArgstrue}
% \end{macrocode}
%
% \subsection{Package Initialization}
@@ -10297,10 +11157,21 @@ and version 1.3 or later is part of all distributions of LaTeX version
\ProcessOptions\relax
\RequirePackage{etoolbox}
\RequirePackage{trimspaces}
-\RequirePackage{suffix}
-\RequirePackage{xargs}
+\RequirePackage{xparse}
% \end{macrocode}
+% Test for the OldArgs flag and include legacy packages
+% if the flag is true.
%
+% \begin{macrocode}
+\if@nameauth@OldArgs
+ \RequirePackage{xargs}
+ \RequirePackage{suffix}
+\fi
+% \end{macrocode}
+%
+% \newpage
+%
+% \addtocontents{toc}{\protect\goodbreak}
% \subsection{Internal Macros}
% \label{sec:InternalMacros}
%
@@ -10500,6 +11371,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
\expandafter\def\expandafter\@nameauth@testarg%
\expandafter{\@nameauth@GetSuff{#1}}%
% \end{macrocode}
+%
+% \newpage\noindent
+%
% This following token register assignment looks weird, but it is
% how we get a test that works.
%
@@ -10772,8 +11646,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \newpage
-%
% \subsubsection*{\hfil Parsing: Breaking, Spaces, and Commas}
%
% \begin{macro}{\@nameauth@AddPunct}
@@ -10870,11 +11742,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
\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,
+% This path is for nonwestern names. The \texttt{\#1} argument is
+% used both here and below when \cmd{\@nameauth@SB} is present. The
+% \texttt{\#1} path always corresponds to the present syntax.
+% Thus, when printing names in the text, the \texttt{\#1} argument
+% must test both \cmd{\@nameauth@C} and \cmd{\@nameauth@SB}, replacing
+% the latter with former ifit exists. With indexing and other macros,
% one ignores \cmd{\@nameauth@C}.
%
% \begin{macrocode}
@@ -10884,8 +11757,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
\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}
+% The \texttt{\#2} argument is only for nonwestern names that use
+% the obsolete syntax. Here \cmd{\@nameauth@SB}
% never occurs. For indexing and control sequences, one cannot ignore
% the use of \cmd{\@nameauth@C} in this path.
%
@@ -10897,7 +11770,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \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.
+% testing and processing. That shows we are again using the current
+% syntax with a potential name swap.
%
% \begin{macrocode}
\let\NameauthPattern\@nameauth@csb%
@@ -10907,11 +11781,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
\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}
+% This decision path is for Western names. When printing
+% names 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,
+% \cmd{\@nameauth@A}. One also must check for and handle
+% \cmd{\@nameauth@SB}. Otherwise, for indexing and control sequences,
% one ignores \cmd{\@nameauth@C} in this path and handles
% \cmd{\@nameauth@SB} appropriately.
%
@@ -11088,13 +11962,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{2.6}{2016/09/19}{Better indexing}
% \changes{3.0}{2016/10/26}{Redesigned}
% \changes{3.1}{2017/01/13}{New workflow}
-% \changes{3.3}{2020/02/20}{global flag reset}
+% \changes{3.3}{2020/02/20}{Global flag reset}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% \Name*[Marc van]{Dongen} provided the original basic structure.
% Parsing, indexing, and formatting are more modularized than
% in earlier versions.
%
% \begin{macrocode}
-\newcommandx*\@nameauth@Name[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\@nameauth@Name}{O{} m O{}}
{%
% \end{macrocode}
% Both \cmd{\@nameauth@Name} and \cmd{\AKA} engage the lock below,
@@ -11263,7 +12138,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\let\SNN\rootb%
\@nameauth@Choice
% \end{macrocode}
-% Non-Western names, current syntax.
+% Nonwestern names, current syntax.
% We test \cmd{\argc} and \cmd{\suffb} as needed.
%
% \begin{macrocode}
@@ -11277,7 +12152,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\@nameauth@MakeCS{\@nameauth@csb#4}%
}%
% \end{macrocode}
-% Non-Western names, obsolete syntax. Here \cmd{\argc} is significant.
+% Nonwestern names, obsolete syntax. Here \cmd{\argc} is significant.
%
% \begin{macrocode}
{%
@@ -11331,7 +12206,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \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}
-% Arrange forms of non-Western names. We inherit macros from
+% Arrange forms of nonwestern names. We inherit macros from
% the parser and only use this macro in the local scope of the parser.
%
% \begin{macrocode}
@@ -11581,8 +12456,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \newpage
-%
% \subsection[User Macros: Prefixes]{For Users: Prefix Macros}
% \label{sec:PrefixMacs}
%
@@ -11931,30 +12804,23 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{Alternate Formatting}
+% \subsubsection[Alternate Format]{Alternate Formatting}
%
% \begin{macro}{\AltFormatActive}
% \changes{3.1}{2017/01/13}{Added}
-% Turn on alternate formatting, engage the formatting macros.
+% \changes{4.0}{2024/02/09}{Combine starred, un-starred macros}
+% \begin{macro}{\AltFormatActive*}\end{macro}\vspace{-2.7ex}
+% Turn on alternate formatting and
+% disengage the formatting macros if using the starred form or
+% engage the formatting macros if using the un-starred form.
%
% \begin{macrocode}
-\newcommand*\AltFormatActive
+\NewDocumentCommand{\AltFormatActive}{s}
{%
\global\@nameauth@AltFormattrue%
- \global\@nameauth@DoAlttrue%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\AltFormatActive*}
-% \changes{3.1}{2017/01/13}{Added}
-% Turn on alternate formatting, disengage the formatting macros.
-%
-% \begin{macrocode}
-\WithSuffix{\newcommand*}\AltFormatActive*
-{%
- \global\@nameauth@AltFormattrue%
- \global\@nameauth@DoAltfalse%
+ \IfBooleanTF{#1}
+ {\global\@nameauth@DoAltfalse}
+ {\global\@nameauth@DoAlttrue}%
}
% \end{macrocode}
% \end{macro}
@@ -12118,7 +12984,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\let\SNN\rootb%
\@nameauth@Choice
% \end{macrocode}
-% Non-Western names.
+% Nonwestern names.
% We test both \cmd{\argc} and \cmd{\suffb} as needed.
%
% \begin{macrocode}
@@ -12140,7 +13006,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\fi
}%
% \end{macrocode}
-% Non-Western names, obsolete syntax.
+% Nonwestern names, obsolete syntax.
% Using \cmd{\argc} in this path affects indexing.
%
% \begin{macrocode}
@@ -12201,42 +13067,34 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \subsubsection{Basic Interface}
%
% \begin{macro}{\Name}
-% \cmd{\Name} calls \cmd{\NameauthName}, the interface hook.
-%
-% \begin{macrocode}
-\newcommand\Name{\NameauthName}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Name*}
-% \cmd{\Name*} sets up a long name reference and calls \cmd{\NameauthLName},
-% the interface hook.
+% \changes{4.0}{2024/02/09}{Combine starred, un-starred macros}
+% \begin{macro}{\Name*}\end{macro}\vspace{-2.7ex}
+% \cmd{\Name} calls \cmd{\NameauthName}, the interface hook, printing
+% a long name and calling \cmd{\NameauthLName} when using the starred form.
%
% \begin{macrocode}
-\WithSuffix{\newcommand*}\Name*
- {\@nameauth@FullNametrue\NameauthLName}
+\NewDocumentCommand{\Name}{s}
+{%
+ \IfBooleanTF{#1}
+ {\@nameauth@FullNametrue\NameauthLName}
+ {\NameauthName}%
+}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\FName}
% \changes{0.9}{2012/02/10}{Added}
-% \cmd{\FName} sets up a short name reference and calls \cmd{\NameauthFName},
-% the interface hook.
+% \changes{4.0}{2024/02/09}{Combine starred, un-starred macros}
+% \begin{macro}{\FName*}\end{macro}\vspace{-2.7ex}
+% \cmd{\FName} sets up a short name instance and calls \cmd{\NameauthFName},
+% the interface hook. Its starred form is identical in function.
%
% \begin{macrocode}
-\newcommand\FName
+\NewDocumentCommand{\FName}{s}
{\@nameauth@FirstNametrue\NameauthFName}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\FName*}
-% \cmd{\FName} and \cmd{\FName*} are identical in function.
-%
-% \begin{macrocode}
-\WithSuffix{\newcommand*}\FName*{\FName}
-% \end{macrocode}
-% \end{macro}
-%
% \subsubsection{Quick Interface}
%
% \begin{environment}{nameauth}
@@ -12283,7 +13141,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% Set up shorthands according to name form. We use \cmd{\expandafter}
% due to \cmd{\protected@edef} in the naming macros. We begin with
-% non-Western names that use the new syntax. We use one \cmd{\ex} per
+% nonwestern names that use the new syntax. We use one \cmd{\ex} per
% token because we only have one argument to expand first.
%
% \begin{macrocode}
@@ -12384,13 +13242,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{macro}{\ShowPattern}
% \changes{3.3}{2020/02/20}{Added}
% \changes{3.7}{2023/02/03}{Redesigned}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% This displays the pattern that the name arguments generate;
% useful for debugging. We test for bad input, then load the argument
% values into the appropriate macros. We determine the name type
% and produce the output of the appropriate name control sequence.
%
% \begin{macrocode}
-\newcommandx*\ShowPattern[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\ShowPattern}{O{} m O{}}
{%
\@nameauth@Error{#2}{macro: \string\ShowPattern}%
\@nameauth@LoadArgs{#1}{#2}{#3}%
@@ -12399,53 +13258,54 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \newpage
-%
% \begin{macro}{\ShowIdxPageref}
% \changes{3.3}{2020/02/20}{Added}
% \changes{3.5}{2020/11/23}{Fix name space, use Boolean flags}
% \changes{3.7}{2023/02/03}{Use common back-end}
-% This displays (expanded, as printed) the index entry that will be
-% generated, but not exactly what is in the \texttt{idx} file.
+% \changes{4.0}{2024/02/09}{Combine starred, un-starred macros}
+% \begin{macro}{\ShowIdxPageref*}\end{macro}\vspace{-2.7ex}
+% Show an index page entry appearance for given name parameters.
+% \begin{macrocode}
+\NewDocumentCommand{\ShowIdxPageref}{s O{} m O{}}
+{%
+ \IfBooleanTF {#1}%
+% \end{macrocode}
+% The starred form displays a basic index entry with no tag.
% Test for bad input, load the argument values into
% the appropriate macros, then call the back-end.
%
% \begin{macrocode}
-\newcommandx*\ShowIdxPageref[3][1=\@empty, 3=\@empty]
-{%
- \@nameauth@Error{#2}{macro: \string\ShowIdxPageref}%
- \@nameauth@LoadArgs{#1}{#2}{#3}%
- \global\@nameauth@LongIdxDebugtrue%
- \@nameauth@IdxPageref{#1}{#2}{#3}%
-}
+ {%
+ \@nameauth@Error{#3}{macro: \string\ShowIdxPageref*}%
+ \@nameauth@LoadArgs{#2}{#3}{#4}%
+ \@nameauth@IdxPageref{#2}{#3}{#4}%
+ }%
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\ShowIdxPageref*}
-% \changes{3.3}{2020/02/20}{Added}
-% \changes{3.5}{2020/11/23}{Fix name space, use Boolean flags}
-% \changes{3.7}{2023/02/03}{Use common back-end}
-% Display a basic index entry with no tag.
+% The un-starred form displays (expanded, as printed) the index
+% entry that will be generated, but not exactly what is in the
+% \texttt{idx} file.
% Test for bad input, load the argument values into
% the appropriate macros, then call the back-end.
%
% \begin{macrocode}
-\WithSuffix{\newcommandx*}\ShowIdxPageref*[3][1=\@empty, 3=\@empty]
-{%
- \@nameauth@Error{#2}{macro: \string\ShowIdxPageref*}%
- \@nameauth@LoadArgs{#1}{#2}{#3}%
- \@nameauth@IdxPageref{#1}{#2}{#3}%
+ {%
+ \@nameauth@Error{#3}{macro: \string\ShowIdxPageref}%
+ \@nameauth@LoadArgs{#2}{#3}{#4}%
+ \global\@nameauth@LongIdxDebugtrue%
+ \@nameauth@IdxPageref{#2}{#3}{#4}%
+ }%
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ShowNameInfo}
% \changes{3.7}{2023/02/03}{Added}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}, improve output}
% Show how the name arguments are being interpreted by the
% \textsf{nameauth} macros, but as detokenized text,
%
% \begin{macrocode}
-\newcommandx*\ShowNameInfo[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\ShowNameInfo}{O{} m O{}}
{%
% \end{macrocode}
% Test for bad input, then load the argument values into
@@ -12456,14 +13316,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
\@nameauth@LoadArgs{#1}{#2}{#3}%
% \end{macrocode}
% We produce what we know about the name arguments.
-% First is non-Western names using the current syntax.
+% First is nonwestern names using the current syntax.
%
% \begin{macrocode}
\@nameauth@Choice
{%
(SNN: \expandafter\detokenize\expandafter{\@nameauth@B})%
\unless\ifx\@nameauth@SB\@empty
- \ (Affix [FNN, other]:
+ \ (Affix*:
\expandafter\detokenize\expandafter{\@nameauth@SB})%
\fi
\unless\ifx\@nameauth@C\@empty
@@ -12472,19 +13332,17 @@ and version 1.3 or later is part of all distributions of LaTeX version
\fi
}%
% \end{macrocode}
-% Next is non-Western names using the obsolete syntax.
+% Next is nonwestern names using the obsolete syntax.
%
% \begin{macrocode}
{%
(SNN: \expandafter\detokenize\expandafter{\@nameauth@B})%
\unless\ifx\@nameauth@C\@empty
- \ (Alt [FNN, other]:
+ \ (Alt*:
\expandafter\detokenize\expandafter{\@nameauth@C})%
\fi
}%
% \end{macrocode}
-%
-% \newpage \noindent
% Finally we have Western names.
%
% \begin{macrocode}
@@ -12506,11 +13364,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{macro}{\ShowNameState}
% \changes{3.7}{2023/02/03}{Added}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% This macro tells the user what control sequence patterns
% exist for any given name.
%
% \begin{macrocode}
-\newcommandx\ShowNameState[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\ShowNameState}{O{} m O{}}
{%
% \end{macrocode}
% Create a local scope to kill any local definitions on exit.
@@ -12627,13 +13486,14 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{New warnings, new exclusion test,
% improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Fix warnings}
-% This creates an index entry with page references. It warns if
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
+% This creates an index entry with page entries. 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.
%
% \begin{macrocode}
-\newcommandx*\IndexName[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\IndexName}{O{} m O{}}
{%
% \end{macrocode}
% Process and load the arguments into the appropriate macros;
@@ -12672,7 +13532,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \begin{macrocode}
\@nameauth@Choice
% \end{macrocode}
-% Non-Western names.
+% Nonwestern names.
% We ignore \cmd{\@nameauth@C} and handle \cmd{\@nameauth@SB} appropriately.
%
% \begin{macrocode}
@@ -12700,7 +13560,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\fi
}%
% \end{macrocode}
-% Non-Western names, obsolete syntax.
+% Nonwestern names, obsolete syntax.
% Using \cmd{\@nameauth@C} in this path affects indexing.
%
% \begin{macrocode}
@@ -12764,11 +13624,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{Strict \textit{see} refs, new warnings,
% new exclusion test, improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Fix warnings}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% 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]
+\NewDocumentCommand{\IndexRef}{O{} m O{} m}
{%
% \end{macrocode}
% Process and load the arguments into the appropriate macros.
@@ -12784,7 +13645,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
\@nameauth@Xreftrue%
% \end{macrocode}
%
-% \newpage \noindent
% Warn if \cmd{\SkipIndex} was called before \cmd{\IndexName},
% and reset it unless the \texttt{oldreset} option was used.
%
@@ -12798,7 +13658,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\fi
\@nameauth@Choice
% \end{macrocode}
-% Non-Western name, new syntax. First check if
+% Nonwestern name, new syntax. First check if
% an xref or excluded, and if so, do nothing except issue
% warnings if so desired.
%
@@ -13086,12 +13946,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{New warnings, new exclusion test,
% fix bug in old syntax, new logic, fix namespace}
% \changes{3.7}{2023/02/03}{Fix warnings, optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% Prevent a name from being indexed by initializing a regular
% cross-reference control sequence with the value of
% \cmd{\@nameauth@Exclude}.
%
% \begin{macrocode}
-\newcommandx*\ExcludeName[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\ExcludeName}{O{} m O{}}
{%
% \end{macrocode}
% Process and load the arguments into the appropriate macros.
@@ -13110,7 +13971,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
{\def\@nameauth@Temp{\expandafter\detokenize\expandafter{#1 #2}}}%
% \end{macrocode}
%
-% \newpage \noindent
% Verbose warnings say that an extant name is being excluded;
% the operation is allowed.
%
@@ -13155,60 +14015,61 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{New exclusion test, optimize logic,
% fix namespace}
% \changes{3.7}{2023/02/03}{Fix warnings, optimized}
-% This macro allows a name to be indexed once again only if
-% it had been excluded.
-%
+% \changes{4.0}{2024/02/09}{Combine starred, un-starred macros}
+% \begin{macro}{\IncludeName*}\end{macro}\vspace{-2.7ex}
+% Allow names to be included as page entries, even if they have been
+% used as cross-references.
% \begin{macrocode}
-\newcommandx*\IncludeName[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\IncludeName}{s O{} m O{}}
{%
+ \IfBooleanTF {#1}%
% \end{macrocode}
+% The starred form allows any name to be indexed by voiding any
+% exclusion or cross-reference.
+% Process and load the arguments into the appropriate macros.
+% Check for errors, get the current name pattern, then nuke it.
+%
+% \begin{macrocode}
+ {%
+ \@nameauth@LoadArgs{#2}{#3}{#4}%
+ \@nameauth@Error{#3}{macro \string\IncludeName*}%
+ \@nameauth@Choice{}{}{}%
+ \global\csundef{\NameauthPattern!PN}%
+ }%
+% \end{macrocode}
+% The un-starred form allows a name to be indexed once again only if
+% it had been excluded.
% Process and load the arguments into the appropriate macros.
% Get the current name type, pattern, and contents if a warning
% is needed.
%
% \begin{macrocode}
- \@nameauth@LoadArgs{#1}{#2}{#3}%
- \@nameauth@Error{#2}{macro \string\IncludeName}%
- \@nameauth@Choice
- {\def\@nameauth@Temp{\expandafter\detokenize\expandafter{#2}}}
- {\def\@nameauth@Temp{\expandafter\detokenize\expandafter{#2 #3}}}
- {\def\@nameauth@Temp{\expandafter\detokenize\expandafter{#1 #2}}}%
+ {%
+ \@nameauth@LoadArgs{#2}{#3}{#4}%
+ \@nameauth@Error{#3}{macro \string\IncludeName}%
+ \@nameauth@Choice
+ {\def\@nameauth@Temp{\expandafter\detokenize\expandafter{#3}}}
+ {\def\@nameauth@Temp{\expandafter\detokenize\expandafter{#3 #4}}}
+ {\def\@nameauth@Temp{\expandafter\detokenize\expandafter{#2 #3}}}%
% \end{macrocode}
% Test whether the name is an exclusion or a regular xref.
% If the former, delete its control sequence. If the latter,
% do nothing and issue a warning.
%
% \begin{macrocode}
- \ifcsname\NameauthPattern!PN\endcsname
- \edef\@nameauth@testex
- {\csname\NameauthPattern!PN\endcsname}%
- \ifx\@nameauth@testex\@nameauth@Exclude
- \global\csundef{\NameauthPattern!PN}%
- \else
- \if@nameauth@Verbose
- \PackageWarning{nameauth}
- {\string\IncludeName: extant xref \@nameauth@Temp}%
+ \ifcsname\NameauthPattern!PN\endcsname
+ \edef\@nameauth@testex
+ {\csname\NameauthPattern!PN\endcsname}%
+ \ifx\@nameauth@testex\@nameauth@Exclude
+ \global\csundef{\NameauthPattern!PN}%
+ \else
+ \if@nameauth@Verbose
+ \PackageWarning{nameauth}
+ {\string\IncludeName: extant xref \@nameauth@Temp}%
+ \fi
\fi
\fi
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\IncludeName*}
-% \changes{3.0}{2016/10/26}{Added}
-% \changes{3.5}{2020/11/23}{Improve logic, fix namespace}
-% \changes{3.7}{2023/02/03}{Optimized}
-% 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]
-{%
- \@nameauth@LoadArgs{#1}{#2}{#3}%
- \@nameauth@Error{#2}{macro \string\IncludeName*}%
- \@nameauth@Choice{}{}{}%
- \global\csundef{\NameauthPattern!PN}%
+ }%
}
% \end{macrocode}
% \end{macro}
@@ -13218,11 +14079,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{New warnings, new exclusion test,
% improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Fix warnings, optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% 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]
+\NewDocumentCommand{\PretagName}{O{} m O{} m}
{%
% \end{macrocode}
% Process and load the arguments into the appropriate macros.
@@ -13273,11 +14135,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{New warnings, new exclusion test,
% improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% 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]
+\NewDocumentCommand{\TagName}{O{} m O{} m}
{%
% \end{macrocode}
% Process and load the arguments into the appropriate macros.
@@ -13316,16 +14179,19 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
+% \newpage
+%
% \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}{Improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% This deletes an index tag.
%
% \begin{macrocode}
-\newcommandx*\UntagName[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\UntagName}{O{} m O{}}
{%
\@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\UntagName}%
@@ -13335,17 +14201,18 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{Name Data Tags}
+% \subsubsection{Name Tags}
%
% \begin{macro}{\NameAddInfo}
% \changes{2.4}{2016/03/15}{Added}
% \changes{3.5}{2020/11/23}{Improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% 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]
+\NewDocumentCommand{\NameAddInfo}{O{} m O{} +m}
{%
\@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\NameAddInfo}%
@@ -13361,10 +14228,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.3}{2020/02/20}{Lock added}
% \changes{3.5}{2020/11/23}{Improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% This prints the information created by \cmd{\NameAddInfo} if it exists.
%
% \begin{macrocode}
-\newcommandx*\NameQueryInfo[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\NameQueryInfo}{O{} m O{}}
{%
\unless\if@nameauth@BigLock
\@nameauth@LoadArgs{#1}{#2}{#3}%
@@ -13382,10 +14250,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{2.4}{2016/03/15}{Added}
% \changes{3.5}{2020/11/23}{Improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% This deletes a text tag. It has the same structure as \cmd{\UntagName}.
%
% \begin{macrocode}
-\newcommandx*\NameClearInfo[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\NameClearInfo}{O{} m O{}}
{%
\@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\NameClearInfo}%
@@ -13402,6 +14271,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{Improve logic, fix namespace,
% local or global scope}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% 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. First we
@@ -13409,7 +14279,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% get the current name pattern.
%
% \begin{macrocode}
-\newcommandx\IfMainName[5][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\IfMainName}{O{} m O{} +m +m}
{%
\@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\IfMainName}%
@@ -13436,6 +14306,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{Improve logic, fix namespace,
% local or global scope}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% 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. First we
@@ -13443,7 +14314,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% get the current name pattern.
%
% \begin{macrocode}
-\newcommandx\IfFrontName[5][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\IfFrontName}{O{} m O{} +m +m}
{%
\@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\IfFrontName}%
@@ -13465,8 +14336,6 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \newpage
-%
% \begin{macro}{\IfAKA}
% \changes{2.3}{2016/01/05}{Added}
% \changes{2.4}{2016/03/15}{Test for excluded}
@@ -13474,6 +14343,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.5}{2020/11/23}{New exclusion test, optimize logic,
% fix namespace, local or global scope}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% 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
@@ -13481,7 +14351,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
% the standard macros, check for error, and get the current name pattern.
%
% \begin{macrocode}
-\newcommandx\IfAKA[6][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\IfAKA}{O{} m O{} +m +m +m}
{%
\@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\IfAKA}%
@@ -13518,10 +14388,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{2.3}{2016/01/05}{Global or local}
% \changes{3.5}{2020/11/23}{Improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% This undefines a control sequence to force a ``first use''.
%
% \begin{macrocode}
-\newcommandx*\ForgetName[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\ForgetName}{O{} m O{}}
{%
% \end{macrocode}
% Process and load the arguments into the appropriate macros.
@@ -13557,10 +14428,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.1}{2017/01/13}{Fix old syntax}
% \changes{3.5}{2020/11/23}{Improve logic, fix namespace}
% \changes{3.7}{2023/02/03}{Optimized}
+% \changes{4.0}{2024/02/09}{Use \textsf{xparse}}
% This defines a control sequence to force a ``subsequent use''.
%
% \begin{macrocode}
-\newcommandx*\SubvertName[3][1=\@empty, 3=\@empty]
+\NewDocumentCommand{\SubvertName}{O{} m O{}}
{%
\@nameauth@LoadArgs{#1}{#2}{#3}%
\@nameauth@Error{#2}{macro \string\SubvertName}%
@@ -13586,6 +14458,8 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
+% \newpage
+%
% \subsubsection{Pseudonyms}
%
% \begin{macro}{\AKA}
@@ -13600,10 +14474,13 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \changes{3.1}{2017/01/13}{Can skip index}
% \changes{3.3}{2020/02/20}{Global flag reset}
% \changes{3.5}{2020/11/23}{Fix namespace}
+% \changes{4.0}{2024/02/09}{Combine starred, un-starred macros}
+% \begin{macro}{\AKA*}\end{macro}\vspace{-2.7ex}
% \cmd{\AKA} prints an alternate name and creates index cross-references.
+% The starred form displays the alternate name like \cmd{\FName}.
%
% \begin{macrocode}
-\newcommandx*\AKA[5][1=\@empty, 3=\@empty, 5=\@empty]
+\NewDocumentCommand{\AKA}{s O{} m O{} m O{}}
{%
% \end{macrocode}
% Prevent entering \cmd{\AKA} via itself or \cmd{\@nameauth@Name}.
@@ -13614,6 +14491,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\if@nameauth@BigLock
\@nameauth@Locktrue%
\fi
+ \IfBooleanTF {#1}{\@nameauth@AltAKAtrue}{}%
\unless\if@nameauth@Lock
\@nameauth@Locktrue%
\@nameauth@InAKAtrue%
@@ -13626,18 +14504,18 @@ and version 1.3 or later is part of all distributions of LaTeX version
% Test for malformed input.
%
% \begin{macrocode}
- \@nameauth@Error{#2}{macro \string\AKA}%
- \@nameauth@Error{#4}{macro \string\AKA}%
+ \@nameauth@Error{#3}{macro \string\AKA}%
+ \@nameauth@Error{#5}{macro \string\AKA}%
% \end{macrocode}
% 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\@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}%
+ \protected@edef\@nameauth@Ai{\trim@spaces{#2}}%
+ \protected@edef\@nameauth@Bi{\@nameauth@Root{#3}}%
+ \protected@edef\@nameauth@Si{\@nameauth@Suffix{#3}}%
+ \@nameauth@Parse{#4}{#5}{#6}{!PN}%
% \end{macrocode}
% \noindent Create an index cross-reference based on the arguments.
%
@@ -13645,17 +14523,17 @@ and version 1.3 or later is part of all distributions of LaTeX version
\unless\if@nameauth@SkipIndex
\ifx\@nameauth@Ai\@empty
\ifx\@nameauth@Si\@empty
- \IndexRef[#3]{#4}[#5]{\@nameauth@Bi}%
+ \IndexRef[#4]{#5}[#6]{\@nameauth@Bi}%
\else
- \IndexRef[#3]{#4}[#5]
+ \IndexRef[#4]{#5}[#6]
{\@nameauth@Bi\@nameauth@space\@nameauth@Si}%
\fi
\else
\ifx\@nameauth@Si\@empty
- \IndexRef[#3]{#4}[#5]
+ \IndexRef[#4]{#5}[#6]
{\@nameauth@Bi,\@nameauth@space\@nameauth@Ai}%
\else
- \IndexRef[#3]{#4}[#5]
+ \IndexRef[#4]{#5}[#6]
{\@nameauth@Bi,\@nameauth@space
\@nameauth@Ai,\@nameauth@space\@nameauth@Si}%
\fi
@@ -13679,30 +14557,24 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\AKA*}
-% \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}
-% \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}
% \changes{3.5}{2020/11/23}{Warning and flag resets added}
% \changes{3.7}{2023/02/03}{Fix warnings}
-% \cmd{\PName} is a convenience macro that calls \cmd{\NameauthName}, then \cmd{\AKA}.
+% \changes{4.0}{2024/02/09}{Combine starred, un-starred macros}
+% \begin{macro}{\PName*}\end{macro}\vspace{-2.7ex}
+% \cmd{\PName} is a convenience macro that calls \cmd{\NameauthName}, then \cmd{\AKA}. Its starred form prints a long name.
%
% \begin{macrocode}
-\newcommandx*\PName[5][1=\@empty,3=\@empty,5=\@empty]
+\NewDocumentCommand{\PName}{s O{} m O{} m O{}}
{%
% \end{macrocode}
+% If we have a starred form, we will display a long name.
% If we used \cmd{\JustIndex}, we ignore and reset its flag to false.
%
% \begin{macrocode}
+ \IfBooleanTF {#1}{\@nameauth@FullNametrue}{}%
\if@nameauth@OldReset
\@nameauth@JustIndexfalse%
\else
@@ -13717,7 +14589,7 @@ and version 1.3 or later is part of all distributions of LaTeX version
\unless\if@nameauth@OldReset
\global\@nameauth@SeeAlsofalse%
\fi
- \NameauthName[#1]{#2} (\SkipIndex\AKA[#1]{#2}[#3]{#4}[#5])%
+ \NameauthName[#2]{#3} (\SkipIndex\AKA[#2]{#3}[#4]{#5}[#6])%
\else
% \end{macrocode}
% Otherwise, if we used \cmd{\SeeAlso} we set the flag of \cmd{\SeeAlso}
@@ -13726,11 +14598,11 @@ and version 1.3 or later is part of all distributions of LaTeX version
%
% \begin{macrocode}
\if@nameauth@SeeAlso
- \@nameauth@SeeAlsofalse\NameauthName[#1]{#2}
- \@nameauth@SeeAlsotrue(\AKA[#1]{#2}[#3]{#4}[#5])%
+ \@nameauth@SeeAlsofalse\NameauthName[#2]{#3}
+ \@nameauth@SeeAlsotrue(\AKA[#2]{#3}[#4]{#5}[#6])%
\else
- \NameauthName[#1]{#2}
- (\AKA[#1]{#2}[#3]{#4}[#5])%
+ \NameauthName[#2]{#3}
+ (\AKA[#2]{#3}[#4]{#5}[#6])%
\fi
\fi
% \end{macrocode}
@@ -13746,57 +14618,104 @@ and version 1.3 or later is part of all distributions of LaTeX version
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\PName*}
-% This sets up a long name reference and calls \cmd{\PName}.
-%
-% \begin{macrocode}
-\WithSuffix{\newcommand*}\PName*{\@nameauth@FullNametrue \PName}
-% \end{macrocode}
-% \end{macro}
-%
% \Finale
% \endinput
%</package>
%<*compat>
%<<compatvb
-% This snippet assists backward compatibility for older
+% This is not a standalone document.
+% Use this file only in the document preamble.
+
+\makeatletter
+
+% Do not include the rest of this file
+% unless we are in a document preamble.
+
+\ifx\@onlypreamble\@notprerr\else
+
+% Check against the latex version date. Create a macro
+% if the date is at least 2018/10/05 because that is
+% when Unicode processing changed for the better.
+
+ \@ifl@t@r\fmtversion{2018/10/05}{\def\nameauthltx{}}{}
+
+% Here we check for 2018/04/30 because that is when xparse
+% added the ! modifier.
+
+ \@ifl@t@r\fmtversion{2018/04/30}{\def\nameauthxp{}}{}
+
+% Here we assist backward compatibility for older
% distributions of LaTeX and compatibility for multiple
-% LaTeX engines. It is not a standalone document.
-%
-\IfFileExists{iftex.sty}{\usepackage{iftex}}{}
-\unless\ifdefined\RequireTUTeX
- \usepackage{ifxetex}
- \usepackage{ifluatex}
- \usepackage{ifpdf}
-\fi
+% LaTeX engines.
-\ifxetex
- \usepackage{fontspec}
- \usepackage{polyglossia}
- \setdefaultlanguage{american}
-\else
- \ifluatex
- \ifpdf
- \usepackage{fontspec}
- \usepackage{polyglossia}
- \setdefaultlanguage{american}
+% If we want to use TikZ, this flag will help us.
+
+ \newif\ifDoTikZ
+
+% If we couch this statement in a conditional, we avoid
+% potential errors in older versions.
+
+ \IfFileExists{iftex.sty}{\usepackage{iftex}}{}
+
+% The presence of \RequireTUTeX means that these older
+% packages are not needed (thanks to iftex). Otherwise
+% we are using an older version and need these packages.
+
+ \unless\ifdefined\RequireTUTeX
+ \usepackage{ifxetex}
+ \usepackage{ifluatex}
+ \usepackage{ifpdf}
+ \fi
+
+% Instead of worrying about older or newer changes, we
+% ensure consistency when the LaTeX engine changes.
+% The goal is to get the same ``lmodern'' look.
+% Users will need to change language and font options
+% for their own needs.
+
+ \ifxetex
+ \usepackage{fontspec}
+ \usepackage{polyglossia}
+ \setdefaultlanguage{american}
+ \DoTikZtrue % Loading TikZ will work (pdf)
+ \else
+ \ifluatex
+ \ifpdf
+ \usepackage{fontspec}
+ \usepackage{polyglossia}
+ \setdefaultlanguage{american}
+ \DoTikZtrue % Loading TikZ will work (pdf)
+ \else
+ \IfFileExists{utf8-2018.def}{}
+ {\usepackage[utf8]{inputenc}}
+ \usepackage[TS1,T1]{fontenc}
+ \usepackage[american]{babel}
+ \usepackage{lmodern}
+ % Using dvi-based workflows does not
+ % work well with TikZ; pstricks instead
+ \fi
\else
\IfFileExists{utf8-2018.def}{}
{\usepackage[utf8]{inputenc}}
\usepackage[TS1,T1]{fontenc}
\usepackage[american]{babel}
\usepackage{lmodern}
+ \ifpdf
+ \usepackage{tikz}
+ \DoTikZtrue % Loading TikZ will work (pdf)
+ \fi
+ % Using dvi-based workflows does not
+ % work well with TikZ; pstricks instead
\fi
- \else
- \IfFileExists{utf8-2018.def}{}
- {\usepackage[utf8]{inputenc}}
- \usepackage[TS1,T1]{fontenc}
- \usepackage[american]{babel}
- \usepackage{lmodern}
\fi
+
+% Here one would load TikZ if needed
+% \ifDoTikZ \usepackage{tikz} \fi
+
\fi
+\makeatother
%compatvb
%</compat>
%<*examples>
@@ -13809,8 +14728,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
\usepackage[textwidth=137mm,textheight=237mm,
right=40mm,marginparwidth=40mm]{geometry}
+
+\usepackage{makeidx} % Must have for defining \seealso macro.
\usepackage{index}
-\usepackage{nameauth}[2023/02/03]
+
+\usepackage[oldargs]{nameauth}[2024/02/09]
+
\usepackage[inline]{enumitem}
\usepackage{fancyvrb}
@@ -13967,9 +14890,9 @@ and version 1.3 or later is part of all distributions of LaTeX version
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-\title{\bfseries Collected Examples}
+\title{\bfseries Some Examples}
\author{Charles P. Schaum}
-\date{2023/02/03}
+\date{2024/02/09}
\begin{document}
\maketitle
@@ -13979,8 +14902,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
\tableofcontents
\newpage
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Minimal Example}
+\textbf{Group 1}\\
\begin{enumerate*}
\item[\textbf{1.}] \Doug\ rose to eminence by sheer force
of character and talents that neither slavery nor caste
@@ -13990,13 +14917,12 @@ and version 1.3 or later is part of all distributions of LaTeX version
the bar of public opinion.
\item[\textbf{3.}] \Doug\ was born in February, l8l7. His
earliest memories centered around the cabin of his
- grandmother, \Bailey.\\
+ grandmother, \Bailey.
\end{enumerate*}
-\index{example, minimal}
+\medskip\noindent\textbf{Group 2}\\
\ForgetName[Frederick]{Douglass}
\ForgetName[Betsey]{Bailey}
-\noindent
\begin{enumerate*}
\item[\textbf{2.}] \Doug's early life is perhaps the most
complete indictment of the slave system ever presented at
@@ -14009,12 +14935,18 @@ and version 1.3 or later is part of all distributions of LaTeX version
proscription could crush.
\end{enumerate*}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Multiple Indexes}
The Electric Boogaloo\index{Boogaloo, Electric}\\ % main index
was created by \Name{Ollie~\& Jerry}. % name index
\index{indexes, multiple}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Index Categories}
\subsection{Famous Black Americans}
@@ -14024,18 +14956,15 @@ force of character and talents that neither slavery nor caste
proscription could crush. Circumstances made
\Name[Frederick]{Douglass} a slave, but they could not prevent
him from becoming a freeman and a leader among mankind.\\
-
We also celebrate \MLK, then \MLK.
\subsection{Patres Patriae}
We mention President \Wash; again, \Wash.
-Family and close friends called him \SWash.\\
-
+Family and close friends called him \SWash.%
\TagName[George]{Washington}{!as general}
-We can reminisce about \LWash[General].
+We reminisce about \LWash[General].%
\UntagName[George]{Washington}
-
When speaking of \Linc, we can refer to \LLinc[Abe].
\subsection{Philosophers}
@@ -14053,16 +14982,18 @@ We note \Soto, then just \Soto.
\TagName[George]{Washington}{!as general}
\TagName[Dwight D.]{Eisenhower}{!as general}
-\LWash, \LPatton, and \LIke\ were high-ranking generals.\\
-
+\LWash, \LPatton, and \LIke\ were high-ranking generals.%
\TagName[Dwight D.]{Eisenhower}{!as president}
-\UntagName[George]{Washington}
+\UntagName[George]{Washington}%
\Wash\ and \Ike\ also were US presidents.
\small
% Instead of pre-tagging Ike we do the following:
\index[per]{US Presidents!other|see{Eisenhower, Dwight D., president}}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{More Complex Hooks}
% First save main- and front-matter hooks. Then change
@@ -14079,19 +15010,21 @@ We note \Soto, then just \Soto.
The new format (front matter):\NamesInactive
\Name{Vlad, III}[III Dracula], known as
-\IndexRef{Vlad, Ţepeş}{Vlad III}\SubvertThis\Name*{Vlad, Ţepeş}
+\IndexRef{Vlad, Ţepeş}{Vlad III}
+\SubvertThis\Name*{Vlad, Ţepeş}
(\Name*{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
+a member of the Order of the Dragon. Later instances of
``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
The new format (main matter):\NamesActive
\Name{Vlad, III}[III Dracula], known as
-\IndexRef{Vlad, Ţepeş}{Vlad III}\SubvertThis\Name*{Vlad, Ţepeş}
+\IndexRef{Vlad, Ţepeş}{Vlad III}
+\SubvertThis\Name*{Vlad, Ţepeş}
(\Name*{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
+a member of the Order of the Dragon. Later instances of
``\Name*{Vlad, III}'' and ``\Name{Vlad, III}'' appear thus.
\let\NamesFormat\OldFormat
@@ -14107,9 +15040,12 @@ in the main matter we see: \NamesActive
\ForgetThis\Name{Vlad, III}[III Dracula],
\Name*{Vlad, III}, and \Name{Vlad, III}.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Life Dates in Hooks}
-% Add data tags to names.
+% Add name tags to names.
\NameAddInfo[George]{Washington}{ (1732--99)}
\NameAddInfo[Mustafa]{Kemal}{ (1881--1938)}
\NameAddInfo{Atat\"urk}{ (in 1934, a special surname)}
@@ -14118,11 +15054,11 @@ in the main matter we see: \NamesActive
% has no page entries in the index.
\IndexRef{Atat\"urk}{Kemal, Mustafa}
-% Manually suppress data tag in ``first'' reference
+% Manually suppress name tag in ``first'' instance
\newif\ifNoTag
% Redesign formatting hook to usually print a tag
-% only in ``first'' reference. On exit, It resets
+% only in ``first'' instance. On exit, It resets
% the flag that suppresses tags, making that flag
% work only once per name use.
@@ -14141,7 +15077,7 @@ in the main matter we see: \NamesActive
president from 1789 to 1797. \Name[George]{Washington} was the only
president whose term in office was completely in the eighteenth
century. If we need to trigger the first use hook at some point,
-we can suppress dates and get an automatic long reference via:
+we can suppress dates and get an automatic long instance via:
\NoTagtrue\ForgetThis\Name[George]{Washington}. Or we can trigger
the first-use hook in a subsequent name use and still have dates:
\ForceName\Name[George]{Washington}.
@@ -14151,9 +15087,12 @@ We can add name info tags to names used only as cross-
references. For example, \Name[Mustafa]{Kemal} was granted
the name \Name{Atat\"urk}. We mention \Name[Mustafa]{Kemal}
and \Name{Atat\"urk} again. Likewise, we can trigger a
-first use, but with no data tag tag:
+first use, but with no name tag tag:
\NoTagtrue\ForgetThis\Name{Atat\"urk}.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Alternate Formatting}
\AltFormatActive
@@ -14185,6 +15124,9 @@ was blamed for the St.\ Bartholomew's Day massacre that saw the
murder of thousands of Huguenots.
\index{formatting, alternate}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Grammatical Inflections in Names}
\newif\ifGenitive
@@ -14204,6 +15146,9 @@ figure whose actions defy a consistent moral compass both in
public policy and in personal affairs.
\index{inflections, grammatical}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Sample Reference Work I}
% Make a cross-reference from a variant name form to the
@@ -14254,6 +15199,9 @@ public policy and in personal affairs.
in over 100 films.
\Name[Heinz]{\noexpand\textSC{R\"uhmann}}\dots}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Roman Names: Student Reference}
% Global Boolean flags need to be defined only once.
@@ -14296,7 +15244,7 @@ public policy and in personal affairs.
\fi
}
-% We add the name data tag.
+% We add the name tag.
\NameAddInfo[\noexpand\TSemp]{Gracchus}
{ (consul, 177 \textsc{bc})}
@@ -14333,8 +15281,8 @@ public policy and in personal affairs.
}
\index{Roman names, student}
-\Scipio\ was born around 236 \textsc{bc} into the
-Scipiones branch of the Cornelii clan.
+\NoAgnomentrue\Scipio\ was born around 236 \textsc{bc}
+into the Scipiones branch of the Cornelii clan.
\NoAgnomentrue\Scipio\ rose to military fame during the
Second Punic War. Thereafter he was known as \Scipio.
He flourished during the Egyptian reigns of
@@ -14345,7 +15293,7 @@ reigns of \Name{Seleucus, III}[III Ceraunus] and
% We make no change to \MainNameHook, but we do
% change \NamesFormat to display any extant
-% name data tags.
+% name tags.
\renewcommand*\NamesFormat[1]
{%
@@ -14364,11 +15312,14 @@ reigns of \Name{Seleucus, III}[III Ceraunus] and
}
\TGrac\ served as tribune of the plebs in 184 \textsc{bc}.
-\NoGenstrue\STGrac\ was elected praetor for 180 \textsc{bc},
-after which he was appointed governor of Hispania Citerior.
+\TGrac\ was elected praetor for 180 \textsc{bc},
+after which he was appointed governor of Hispania Citerior,
serving with the rank of proconsul. In 177 \textsc{bc},
he was elected consul, again in 163 \textsc{bc}.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Roman Names: Scholarly Work}
% Name variant macros need to be defined
@@ -14395,10 +15346,13 @@ patrician clans. \NoGenstrue\NoAgnomentrue\OScipio\ was
one of the two elected consuls in 298 \textsc{bc}
and served during the Third Samnite War.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Reference Work II}
% Boolean flags; the first sets up headwords and the second
-% indicates that a non-Western form should not be reversed.
+% indicates that a nonwestern form should not be reversed.
\newif\ifHeadword
\newif\ifAncientName
@@ -14451,7 +15405,6 @@ and served during the Third Samnite War.
\renewcommand{\RefArticle}[2]
{%
\noindent\Headword #1 #2%
- \medskip
}
\index{reference work}
@@ -14469,11 +15422,14 @@ foremost pioneers in the field of computer vision.
\Name{\noexpand\textUC{Kanade}, Takeo}\dots}
\RefArticle{\Name[Ada]{\noexpand\textIT{Lovelace}}}{collaborated with
-\Name*[Charles]{\noexpand\textBF{Babbage}}* and wrote what some
+\Name*[Charles]{\noexpand\textBF{Babbage}}* and wrote what some
consider to be the first computer program for the Analytical
Engine. \Name[Ada]{\noexpand\textIT{Lovelace}}\dots}
\index{reference work}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Marginalia}
% Global Boolean flags need to be defined only once.
@@ -14560,6 +15516,9 @@ in much the same way that \Name[Robert]{\textSC{Burns}}
is that of Scotland. With the latter's rise of influence
in the 1800s, \Revert\Shak\ became known as ``\Shak''.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Customization, Easy}
\makeatletter
@@ -14580,12 +15539,15 @@ education. \CapThis\deSmet\ was ordained in 1827 and worked
among American Indian nations after 1837. We can show the forms
\LdeSmet\ and \SdeSmet.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Customization, Complicated}
-\newif\ifFbox % Replaces \if@nameauth@DoAlt
-\newif\ifFirstCap % Replaces \if@nameauth@DoCaps
-\newif\ifInHook % Replaces \if@nameauth@InHook
-\Fboxtrue % Replaces \AltFormatActive
+\newif\ifFbox % Replaces \if@nameauth@DoAlt \AltOn \AltOff
+\newif\ifFirstCap % Replaces \if@nameauth@DoCaps \AltCaps
+\newif\ifInHook % Replaces \if@nameauth@InHook hook dispatcher
+\Fboxtrue % Replaces \AltFormatActive
% Alternate formatting macro definition
\renewcommand*\Fbox[1]{%
@@ -14659,14 +15621,76 @@ murder of thousands of Huguenots.
\renewcommand*\MainNameHook{}
\renewcommand*\FrontNameHook{}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Customization, Complete}
+\subsection[With xparse]{With \textsf{xparse}}
+
+\makeatletter
+
+% Change the general-case name macro to show
+% a name in a framed, colored box.
+
+\NewDocumentCommand{\MyName}{O{} m O{}}{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \fcolorbox{black}{gray!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+
+% Likewise change the macro for when names are forced long.
+\NewDocumentCommand{\MyLName}{O{} m O{}}{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \fcolorbox{black}{green!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+
+% Likewise change the macro when personal names are desired.
+\NewDocumentCommand{\MyFName}{O{} m O{}}{%
+ \global\@nameauth@toksa\expandafter{#1}%
+ \global\@nameauth@toksb\expandafter{#2}%
+ \global\@nameauth@toksc\expandafter{#3}%
+ \fcolorbox{black}{yellow!25!white}{\@nameauth@Name[#1]{#2}[#3]}%
+}
+\makeatother
+
+% Change the formatting hooks, but do not use alternate.
+% formatting, which is separate from that above.
+\renewcommand*\NamesFormat[1]{\scshape#1}
+\renewcommand*\MainNameHook[1]{#1}
+
+% Change the naming macro hooks.
+\renewcommand*\NameauthName{\MyName}
+\renewcommand*\NameauthLName{\MyLName}
+\renewcommand*\NameauthFName{\MyFName}
+
+\index{customization, insane}
+\ForgetThis\Name[Adolf]{Harnack} was a theologian who stressed
+the Fatherhood of God and the brotherhood of man.
+\Name[Adolf]{Harnack} flourished in the early twentieth
+century; \Name*[Adolf von]{Harnack}; \FName[Adolf]{Harnack}.
+\AltFormatInactive
+
+\makeatletter
+\renewcommand*\NameauthName{\@nameauth@Name}
+\renewcommand*\NameauthLName{\@nameauth@Name}
+\renewcommand*\NameauthFName{\@nameauth@Name}
+\makeatother
+
+\renewcommand*\NamesFormat{}
+\renewcommand*\MainNameHook{}
+
+\subsection[With xargs]{With \textsf{xargs}}
+
\makeatletter
% Change the general-case name macro to show
% a name in a framed, colored box.
-\newcommandx*\MyName[3][1=\@empty, 3=\@empty]{%
+\renewcommandx\MyName[3][1=\empty, 3=\empty]{%
\global\@nameauth@toksa\expandafter{#1}%
\global\@nameauth@toksb\expandafter{#2}%
\global\@nameauth@toksc\expandafter{#3}%
@@ -14674,7 +15698,7 @@ murder of thousands of Huguenots.
}
% Likewise change the macro for when names are forced long.
-\newcommandx*\MyLName[3][1=\@empty, 3=\@empty]{%
+\renewcommandx\MyLName[3][1=\empty, 3=\empty]{%
\global\@nameauth@toksa\expandafter{#1}%
\global\@nameauth@toksb\expandafter{#2}%
\global\@nameauth@toksc\expandafter{#3}%
@@ -14682,7 +15706,7 @@ murder of thousands of Huguenots.
}
% Likewise change the macro when personal names are desired.
-\newcommandx*\MyFName[3][1=\@empty, 3=\@empty]{%
+\renewcommandx\MyFName[3][1=\empty, 3=\empty]{%
\global\@nameauth@toksa\expandafter{#1}%
\global\@nameauth@toksb\expandafter{#2}%
\global\@nameauth@toksc\expandafter{#3}%
@@ -14704,8 +15728,7 @@ murder of thousands of Huguenots.
\ForgetThis\Name[Adolf]{Harnack} was a theologian who stressed
the Fatherhood of God and the brotherhood of man.
\Name[Adolf]{Harnack} flourished in the early twentieth
-century. We also produce \Name*[Adolf]{Harnack} and
-\FName[Adolf]{Harnack}.
+century; \Name*[Adolf von]{Harnack}; \FName[Adolf]{Harnack}.
\AltFormatInactive
\makeatletter
@@ -14717,64 +15740,23 @@ century. We also produce \Name*[Adolf]{Harnack} and
\renewcommand*\NamesFormat{}
\renewcommand*\MainNameHook{}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\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
+We use Latin Modern for the font; that should be changed at the user's
+discretion. We could load \textsf{tikz} using
\texttt{\textbackslash ifDoTikZ} to avoid crashing some \texttt{dvi}
-viewers in a \texttt{dvi}-only workflow.
+viewers in a \texttt{dvi}-only workflow. Below we list the salient
+points from \texttt{compat.tex}, included with \textsf{nameauth}.
\index{\protect\LaTeX\ engines}
\begin{quote}\small
-\begin{Verbatim}
- \IfFileExists{iftex.sty}{\usepackage{iftex}}{}
- \unless\ifdefined\RequireTUTeX
- \usepackage{ifxetex}
- \usepackage{ifluatex}
- \usepackage{ifpdf}
- \fi
-
- \newif\ifDoTikZ % Is loading TikZ okay?
-
- \ifxetex
- \usepackage{fontspec}
- \usepackage{polyglossia}
- \setdefaultlanguage{american} % Use own language
- \usepackage{tikz}
- \DoTikZtrue % PDF: yes TikZ okay.
- \else
- \ifluatex
- \ifpdf
- \usepackage{fontspec}
- \usepackage{polyglossia}
- \setdefaultlanguage{american} % Use own language
- \usepackage{tikz}
- \DoTikZtrue % PDF: yes TikZ okay.
- \else
- \IfFileExists{utf8-2018.def}{}
- {\usepackage[utf8]{inputenc}}
- \usepackage[TS1,T1]{fontenc}
- \usepackage[american]{babel} % Use own language
- \usepackage{lmodern}
- % Perhaps add \usepackage{tikz} with caveats.
- \fi
- \else
- \IfFileExists{utf8-2018.def}{}
- {\usepackage[utf8]{inputenc}}
- \usepackage[TS1,T1]{fontenc}
- \usepackage[american]{babel} % Use own language
- \usepackage{lmodern}
- \ifpdf
- \usepackage{tikz}
- \DoTikZtrue % PDF: yes TikZ okay.
- \fi
- \fi
- \fi
-\end{Verbatim}
+ \VerbatimInput[gobble=0, firstline=29]{compat.tex}
\end{quote}
-\newpage
-
In the body text we can use something like the test below for:\quad
\fbox{\ifxetex doing \texttt{pdf} things\else
\ifpdf doing \texttt{pdf} things\else
@@ -14813,6 +15795,8 @@ or just the body text to work under multiple engines:
\fi
\end{Verbatim}
+\newpage
+
\begin{Verbatim}
\unless\ifxetex
\unless\ifluatex
@@ -14829,267 +15813,373 @@ or just the body text to work under multiple engines:
\end{Verbatim}
\end{quote}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\section{Miscellaneous Tests: Spaces}
-Here we test to see if any unwanted spaces exist in macros that take name arguments.
-If everything is OK, two vertical bars should either immediately precede and follow
-the arguments, or have no space between them. This section also tests if all possible
-argument combinations work in most macros that take name arguments.
-We disable indexing here.\\
-\IndexInactive
-
-\hbox to 0.7\textwidth{\Verb+\Name[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\Name[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\Name*[FNN]{SNN,Affix}+\dotfill
- |\Name*[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\DropAffix\Name*[FNN]{SNN,Affix}+\dotfill
- |\DropAffix\Name*[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\Name[FNN]{SNN,Affix}+\dotfill
- |\Name[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\FName[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\FName[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\FName[FNN]{SNN,Affix}+\dotfill
- |\FName[FNN]{SNN,Affix}|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\Name{SNN,Affix}[Alternate]+\dotfill
- |\Name{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\Name*{SNN,Affix}+\dotfill
- |\Name*{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\Name{SNN,Affix}+\dotfill
- |\Name{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\FName{SNN,Affix}+\dotfill
- |\FName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\ForceFN\FName{SNN,Affix}[Alternate]+\dotfill
- |\ForceFN\FName{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\ForceFN\FName{SNN,Affix}+\dotfill
- |\ForceFN\FName{SNN,Affix}|}\medskip
+Here we test to see if any unwanted spaces exist in macros that take
+name arguments. If everything is OK, one should see two vertical bars
+\texttt{||} where no output in the text is produced, or no spaces
+between an enclosed name and the bars. This section also tests if most
+possible argument combinations work in most macros that take name arguments.
+
+\begin{quote}
+\Verb+\Name[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\Name[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\Name*[FNNa]{SNNa,Affix}+\dotfill
+ |\Name*[FNNa]{SNNa,Affix}|\\
+\Verb+\DropAffix\Name*[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\DropAffix\Name*[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\DropAffix\Name*[FNNa]{SNNa,Affix}+\dotfill
+ |\DropAffix\Name*[FNNa]{SNNa,Affix}|\\
+\Verb+\Name[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\Name[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\Name[FNNa]{SNNa,Affix}+\dotfill
+ |\Name[FNNa]{SNNa,Affix}|\\
+\Verb+\FName[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\FName[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\FName[FNNa]{SNNa,Affix}+\dotfill
+ |\FName[FNNa]{SNNa,Affix}|
+\end{quote}
-\newpage
+\begin{quote}
+\Verb+\Name[FNNb]{SNNb}[Alternate]+\dotfill
+ |\Name[FNNb]{SNNb}[Alternate]|\\
+\Verb+\Name*[FNNb]{SNNb}+\dotfill
+ |\Name*[FNNb]{SNNb}|\\
+\Verb+\Name[FNNb]{SNNb}[Alternate]+\dotfill
+ |\Name[FNNb]{SNNb}[Alternate]|\\
+\Verb+\Name[FNNb]{SNNb}+\dotfill
+ |\Name[FNNb]{SNNb}|\\
+\Verb+\FName[FNNb]{SNNb}[Alternate]+\dotfill
+ |\FName[FNNb]{SNNb}[Alternate]|\\
+\Verb+\FName[FNNb]{SNNb}+\dotfill
+ |\FName[FNNb]{SNNb}|
+\end{quote}
-\hbox to 0.7\textwidth{\Verb+\ForgetThis\Name{SNN}[Alternate]+\dotfill
- |\ForgetThis\Name{SNN}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\Name*{SNN}[Alternate]+\dotfill
- |\Name*{SNN}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\Name{SNN}[Alternate]+\dotfill
- |\Name{SNN}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\FName{SNN}[Alternate]+\dotfill
- |\FName{SNN}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\ForceFN\FName{SNN}[Alternate]+\dotfill
- |\ForceFN\FName{SNN}[Alternate]|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\IndexName[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\IndexName[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexName[FNN]{SNN,Affix}+\dotfill
- |\IndexName[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexName{SNN,Affix}[Alternate]+\dotfill
- |\IndexName{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexName{SNN,Affix}+\dotfill
- |\IndexName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexName{SNN}[Alternate]+\dotfill
- |\IndexName{SNN}[Alternate]|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\IndexRef[FNN]{SNN,Affix}[Alternate]{Target}+\dotfill
- |\IndexRef[FNN]{SNN,Affix}[Alternate]{Target}|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexRef[FNN]{SNN,Affix}{Target}+\dotfill
- |\IndexRef[FNN]{SNN,Affix}{Target}|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexRef{SNN,Affix}[Alternate]{Target}+\dotfill
- |\IndexRef{SNN,Affix}[Alternate]{Target}|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexRef{SNN,Affix}{Target}+\dotfill
- |\IndexRef{SNN,Affix}{Target}|}\par
-\hbox to 0.7\textwidth{\Verb+\IndexRef{SNN}[Alternate]{Target}+\dotfill
- |\IndexRef{SNN}[Alternate]{Target}|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\ExcludeName[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\ExcludeName[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\ExcludeName[FNN]{SNN,Affix}+\dotfill
- |\ExcludeName[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\ExcludeName{SNN,Affix}[Alternate]+\dotfill
- |\ExcludeName{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\ExcludeName{SNN,Affix}+\dotfill
- |\ExcludeName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\ExcludeName{SNN}[Alternate]+\dotfill
- |\ExcludeName{SNN}[Alternate]|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\IncludeName[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\IncludeName[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName[FNN]{SNN,Affix}+\dotfill
- |\IncludeName[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName{SNN,Affix}[Alternate]+\dotfill
- |\IncludeName{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName{SNN,Affix}+\dotfill
- |\IncludeName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName{SNN}[Alternate]+\dotfill
- |\IncludeName{SNN}[Alternate]|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\IncludeName*[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\IncludeName*[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName*[FNN]{SNN,Affix}+\dotfill
- |\IncludeName*[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName*{SNN,Affix}[Alternate]+\dotfill
- |\IncludeName*{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName*{SNN,Affix}+\dotfill
- |\IncludeName*{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\IncludeName*{SNN}[Alternate]+\dotfill
- |\IncludeName*{SNN}[Alternate]|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\PretagName[FNN]{SNN,Affix}[Alternate]{Sort}+\dotfill
- |\PretagName[FNN]{SNN,Affix}[Alternate]{Sort}|}\par
-\hbox to 0.7\textwidth{\Verb+\PretagName[FNN]{SNN,Affix}{Sort}+\dotfill
- |\PretagName[FNN]{SNN,Affix}{Sort}|}\par
-\hbox to 0.7\textwidth{\Verb+\PretagName{SNN,Affix}[Alternate]{Sort}+\dotfill
- |\PretagName{SNN,Affix}[Alternate]{Sort}|}\par
-\hbox to 0.7\textwidth{\Verb+\PretagName{SNN,Affix}{Sort}+\dotfill
- |\PretagName{SNN,Affix}{Sort}|}\par
-\hbox to 0.7\textwidth{\Verb+\PretagName{SNN}[Alternate]{Sort}+\dotfill
- |\PretagName{SNN}[Alternate]{Sort}|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\TagName[FNN]{SNN,Affix}[Alternate]{Tag}+\dotfill
- |\TagName[FNN]{SNN,Affix}[Alternate]{Tag}|}\par
-\hbox to 0.7\textwidth{\Verb+\TagName[FNN]{SNN,Affix}{Tag}+\dotfill
- |\TagName[FNN]{SNN,Affix}{Tag}|}\par
-\hbox to 0.7\textwidth{\Verb+\TagName{SNN,Affix}[Alternate]{Tag}+\dotfill
- |\TagName{SNN,Affix}[Alternate]{Tag}|}\par
-\hbox to 0.7\textwidth{\Verb+\TagName{SNN,Affix}{Tag}+\dotfill
- |\TagName{SNN,Affix}{Tag}|}\par
-\hbox to 0.7\textwidth{\Verb+\TagName{SNN}[Alternate]{Tag}+\dotfill
- |\TagName{SNN}[Alternate]{Tag}|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\UntagName[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\UntagName[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\UntagName[FNN]{SNN,Affix}+\dotfill
- |\UntagName[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\UntagName{SNN,Affix}[Alternate]+\dotfill
- |\UntagName{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\UntagName{SNN,Affix}+\dotfill
- |\UntagName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\UntagName{SNN}[Alternate]+\dotfill
- |\UntagName{SNN}[Alternate]|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\NameAddInfo[FNN]{SNN,Affix}[Alternate]{Info}+\dotfill
- |\NameAddInfo[FNN]{SNN,Affix}[Alternate]{Info}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameAddInfo[FNN]{SNN,Affix}{Info}+\dotfill
- |\NameAddInfo[FNN]{SNN,Affix}{Info}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameAddInfo{SNN,Affix}[Alternate]{Info}+\dotfill
- |\NameAddInfo{SNN,Affix}[Alternate]{Info}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameAddInfo{SNN,Affix}{Info}+\dotfill
- |\NameAddInfo{SNN,Affix}{Info}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameAddInfo{SNN}[Alternate]{Info}+\dotfill
- |\NameAddInfo{SNN}[Alternate]{Info}|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\NameQueryInfo[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\NameQueryInfo[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\NameQueryInfo[FNN]{SNN,Affix}+\dotfill
- |\NameQueryInfo[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameQueryInfo{SNN,Affix}[Alternate]+\dotfill
- |\NameQueryInfo{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\NameQueryInfo{SNN,Affix}+\dotfill
- |\NameQueryInfo{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameQueryInfo{SNN}[Alternate]+\dotfill
- |\NameQueryInfo{SNN}[Alternate]|}\medskip
+\begin{quote}
+\Verb+\Name{SNNc,Affix}[Alternate]+\dotfill
+ |\Name{SNNc,Affix}[Alternate]|\\
+\Verb+\Name*{SNNc,Affix}+\dotfill
+ |\Name*{SNNc,Affix}|\\
+\Verb+\Name{SNNc,Affix}[Alternate]+\dotfill
+ |\Name{SNNc,Affix}[Alternate]|\\
+\Verb+\Name{SNNc,Affix}+\dotfill
+ |\Name{SNNc,Affix}|\\
+\Verb+\FName{SNNc,Affix}[Alternate]+\dotfill
+ |\FName{SNNc,Affix}[Alternate]|\\
+\Verb+\FName{SNNc,Affix}+\dotfill
+ |\FName{SNNc,Affix}|\\
+\Verb+\ForceFN\FName{SNNc,Affix}[Alternate]+\dotfill
+ |\ForceFN\FName{SNNc,Affix}[Alternate]|\\
+\Verb+\ForceFN\FName{SNNc,Affix}+\dotfill
+ |\ForceFN\FName{SNNc,Affix}|
+\end{quote}
-\newpage
+\begin{quote}
+\Verb+\Name{SNNd}[Alternate]+\dotfill
+ |\Name{SNNd}[Alternate]|\\
+\Verb+\Name*{SNNd}[Alternate]+\dotfill
+ |\Name*{SNNd}[Alternate]|\\
+\Verb+\Name{SNNd}[Alternate]+\dotfill
+ |\Name{SNNd}[Alternate]|\\
+\Verb+\FName{SNNd}[Alternate]+\dotfill
+ |\FName{SNNd}[Alternate]|\\
+\Verb+\ForceFN\FName{SNNd}[Alternate]+\dotfill
+ |\ForceFN\FName{SNNd}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\IndexName[FNNe]{SNNe,Affix}[Alternate]+\dotfill
+ |\IndexName[FNNe]{SNNe,Affix}[Alternate]|\\
+\Verb+\IndexName[FNNe]{SNNe,Affix}+\dotfill
+ |\IndexName[FNNe]{SNNe,Affix}|\\
+\Verb+\IndexName{SNNf,Affix}[Alternate]+\dotfill
+ |\IndexName{SNNf,Affix}[Alternate]|\\
+\Verb+\IndexName{SNNf,Affix}+\dotfill
+ |\IndexName{SNNf,Affix}|\\
+\Verb+\IndexName{SNNf}[Alternate]+\dotfill
+ |\IndexName{SNNf}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\IndexRef[FNNg]{SNNg,Affix}[Alternate]{Target}+\dotfill
+ |\IndexRef[FNNg]{SNNg,Affix}[Alternate]{Target}|\\
+\Verb+\IndexRef[FNNg]{SNNg,Affix}{Target}+\dotfill
+ |\IndexRef[FNNg]{SNNg,Affix}{Target}|\\
+\Verb+\IndexRef{SNNh,Affix}[Alternate]{Target}+\dotfill
+ |\IndexRef{SNNh,Affix}[Alternate]{Target}|\\
+\Verb+\IndexRef{SNNh,Affix}{Target}+\dotfill
+ |\IndexRef{SNNh,Affix}{Target}|\\
+\Verb+\IndexRef{SNNh}[Alternate]{Target}+\dotfill
+ |\IndexRef{SNNh}[Alternate]{Target}|
+\end{quote}
+
+\begin{quote}
+\Verb+\ExcludeName[FNNi]{SNNi,Affix}[Alternate]+\dotfill
+ |\ExcludeName[FNNi]{SNNi,Affix}[Alternate]|\\
+\Verb+\ExcludeName[FNNi]{SNNi,Affix}+\dotfill
+ |\ExcludeName[FNNi]{SNNi,Affix}|\\
+\Verb+\ExcludeName{SNNj,Affix}[Alternate]+\dotfill
+ |\ExcludeName{SNNj,Affix}[Alternate]|\\
+\Verb+\ExcludeName{SNNj,Affix}+\dotfill
+ |\ExcludeName{SNNj,Affix}|\\
+\Verb+\ExcludeName{SNNj}[Alternate]+\dotfill
+ |\ExcludeName{SNNj}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\IncludeName[FNNi]{SNNi,Affix}[Alternate]+\dotfill
+ |\IncludeName[FNNi]{SNNi,Affix}[Alternate]|\\
+\Verb+\IncludeName[FNNi]{SNNi,Affix}+\dotfill
+ |\IncludeName[FNNi]{SNNi,Affix}|\\
+\Verb+\IncludeName{SNNj,Affix}[Alternate]+\dotfill
+ |\IncludeName{SNNj,Affix}[Alternate]|\\
+\Verb+\IncludeName{SNNj,Affix}+\dotfill
+ |\IncludeName{SNNj,Affix}|\\
+\Verb+\IncludeName{SNNj}[Alternate]+\dotfill
+ |\IncludeName{SNNj}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\IncludeName*[FNNi]{SNNi,Affix}[Alternate]+\dotfill
+ |\IncludeName*[FNNi]{SNNi,Affix}[Alternate]|\\
+\Verb+\IncludeName*[FNNi]{SNNi,Affix}+\dotfill
+ |\IncludeName*[FNNi]{SNNi,Affix}|\\
+\Verb+\IncludeName*{SNNj,Affix}[Alternate]+\dotfill
+ |\IncludeName*{SNNj,Affix}[Alternate]|\\
+\Verb+\IncludeName*{SNNj,Affix}+\dotfill
+ |\IncludeName*{SNNj,Affix}|\\
+\Verb+\IncludeName*{SNNj}[Alternate]+\dotfill
+ |\IncludeName*{SNNj}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\PretagName[FNNk]{SNNk,Affix}[Alternate]{Sorta}+\dotfill
+ |\PretagName[FNNk]{SNNk,Affix}[Alternate]{Sorta}|\\
+\Verb+\PretagName[FNNl]{SNNl,Affix}{Sortb}+\dotfill
+ |\PretagName[FNNl]{SNNl,Affix}{Sortb}|\\
+\Verb+\PretagName{SNNm,Affix}[Alternate]{Sortc}+\dotfill
+ |\PretagName{SNNm,Affix}[Alternate]{Sortc}|\\
+\Verb+\PretagName{SNNn,Affix}{Sortd}+\dotfill
+ |\PretagName{SNNn,Affix}{Sortd}|\\
+\Verb+\PretagName{SNNo}[Alternate]{Sorte}+\dotfill
+ |\PretagName{SNNo}[Alternate]{Sorte}|
+\end{quote}
+
+\begin{quote}
+\Verb+\TagName[FNNa]{SNNa,Affix}[Alternate]{Tag}+\dotfill
+ |\TagName[FNNa]{SNNa,Affix}[Alternate]{Tag}|\\
+\Verb+\TagName[FNNa]{SNNa,Affix}{Tag}+\dotfill
+ |\TagName[FNNa]{SNNa,Affix}{Tag}|\\
+\Verb+\TagName[FNNb]{SNNb}[Alternate]{Tag}+\dotfill
+ |\TagName[FNNb]{SNNb}[Alternate]{Tag}|\\
+\Verb+\TagName[FNNb]{SNNb}{Tag}+\dotfill
+ |\TagName[FNNb]{SNNb,Affix}{Tag}|\\
+\Verb+\TagName{SNNc,Affix}[Alternate]{Tag}+\dotfill
+ |\TagName{SNNc,Affix}[Alternate]{Tag}|\\
+\Verb+\TagName{SNNc,Affix}{Tag}+\dotfill
+ |\TagName{SNNc,Affix}{Tag}|\\
+\Verb+\TagName{SNNd}[Alternate]{Tag}+\dotfill
+ |\TagName{SNNd}[Alternate]{Tag}|
+\end{quote}
-\hbox to 0.7\textwidth{\Verb+\NameClearInfo[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\NameClearInfo[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\NameClearInfo[FNN]{SNN,Affix}+\dotfill
- |\NameClearInfo[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameClearInfo{SNN,Affix}[Alternate]+\dotfill
- |\NameClearInfo{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\NameClearInfo{SNN,Affix}+\dotfill
- |\NameClearInfo{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\NameClearInfo{SNN}[Alternate]+\dotfill
- |\NameClearInfo{SNN}[Alternate]|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\ForgetName[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\ForgetName[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\ForgetName[FNN]{SNN,Affix}+\dotfill
- |\ForgetName[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\ForgetName{SNN,Affix}[Alternate]+\dotfill
- |\ForgetName{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\ForgetName{SNN,Affix}+\dotfill
- |\ForgetName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\ForgetName{SNN}[Alternate]+\dotfill
- |\ForgetName{SNN}[Alternate]|}\medskip
-
-\Verb+\LocalNames+\LocalNames\par
-\hbox to 0.7\textwidth{\Verb+\SubvertName[FNN]{SNN,Affix}[Alternate]+\dotfill
- |\SubvertName[FNN]{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\SubvertName[FNN]{SNN,Affix}+\dotfill
- |\SubvertName[FNN]{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\SubvertName{SNN,Affix}[Alternate]+\dotfill
- |\SubvertName{SNN,Affix}[Alternate]|}\par
-\hbox to 0.7\textwidth{\Verb+\SubvertName{SNN,Affix}+\dotfill
- |\SubvertName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\SubvertName{SNN}[Alternate]+\dotfill
- |\SubvertName{SNN}[Alternate]|}\par
-\Verb+\GlobalNames+\GlobalNames\medskip
-
-\hbox to 0.7\textwidth{\Verb+\IfMainName[FNN]{SNN,Affix}[Alternate]{Y}{N}+\dotfill
- |\IfMainName[FNN]{SNN,Affix}[Alternate]{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfMainName[FNN]{SNN,Affix}{Y}{N}+\dotfill
- |\IfMainName[FNN]{SNN,Affix}{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfMainName{SNN,Affix}[Alternate]{Y}{N}+\dotfill
- |\IfMainName{SNN,Affix}[Alternate]{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfMainName{SNN,Affix}{Y}{N}+\dotfill
- |\IfMainName{SNN,Affix}{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfMainName{SNN}[Alternate]{Y}{N}+\dotfill
- |\IfMainName{SNN}[Alternate]{Y}{N}|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\IfFrontName[FNN]{SNN,Affix}[Alternate]{Y}{N}+\dotfill
- |\IfFrontName[FNN]{SNN,Affix}[Alternate]{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfFrontName[FNN]{SNN,Affix}{Y}{N}+\dotfill
- |\IfFrontName[FNN]{SNN,Affix}{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfFrontName{SNN,Affix}[Alternate]{Y}{N}+\dotfill
- |\IfFrontName{SNN,Affix}[Alternate]{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfFrontName{SNN,Affix}{Y}{N}+\dotfill
- |\IfFrontName{SNN,Affix}{Y}{N}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfFrontName{SNN}[Alternate]{Y}{N}+\dotfill
- |\IfFrontName{SNN}[Alternate]{Y}{N}|}\medskip
-
-\hbox to 0.7\textwidth{\Verb+\SeeAlso\IndexRef[FNN]{SNN,Affix}{Target}+\dotfill
- |\SeeAlso\IndexRef[FNN]{SNN,Affix}{Target}|}\par
-\hbox to 0.7\textwidth{\Verb+\ExcludeName{SNN,Affix}+\dotfill
- |\ExcludeName{SNN,Affix}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfAKA[FNN]{SNN,Affix}[Alternate]{Y}{N}{X}+\dotfill
- |\IfAKA[FNN]{SNN,Affix}[Alternate]{Y}{N}{X}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfAKA[FNN]{SNN,Affix}{Y}{N}{X}+\dotfill
- |\IfAKA[FNN]{SNN,Affix}{Y}{N}{X}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfAKA{SNN,Affix}[Alternate]{Y}{N}{X}+\dotfill
- |\IfAKA{SNN,Affix}[Alternate]{Y}{N}{X}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfAKA{SNN,Affix}{Y}{N}{X}+\dotfill
- |\IfAKA{SNN,Affix}{Y}{N}{X}|}\par
-\hbox to 0.7\textwidth{\Verb+\IfAKA{SNN}[Alternate]{Y}{N}{X}+\dotfill
- |\IfAKA{SNN}[Alternate]{Y}{N}{X}|}\medskip
-
-\hbox to \textwidth{\Verb+\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}[Alternate2]+\dotfill
- |\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}[Alternate2]|}\par
-\hbox to \textwidth{\Verb+\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}+\dotfill
- |\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}|}\par
-\hbox to \textwidth{\Verb+\DropAffix\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}+\dotfill
- |\DropAffix\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}|}\par
-\hbox to \textwidth{\Verb+\AKA*[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}[Alternate2]+\dotfill
- |\AKA*[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}[Alternate2]|}\par
-\hbox to \textwidth{\Verb+\AKA*[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}+\dotfill
- |\AKA*[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}|}\medskip
-
-\hbox to \textwidth{\Verb+\AKA[FNN1]{SNN1,Affix1}{SNN3,Affix3}[Alternate3]+\dotfill
- |\AKA[FNN1]{SNN1,Affix1}{SNN3,Affix3}[Alternate3]|}\par
-\hbox to \textwidth{\Verb+\AKA[FNN1]{SNN1,Affix1}{SNN3,Affix3}+\dotfill
- |\AKA[FNN1]{SNN1,Affix1}{SNN3,Affix3}|}\par
-\hbox to \textwidth{\Verb+\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}+\dotfill
- |\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}|}\par
-\hbox to \textwidth{\Verb+\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}[Alternate3]+\dotfill
- |\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}[Alternate3]|}\par
-\hbox to \textwidth{\Verb+\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}+\dotfill
- |\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}|}\medskip
-
-\hbox to \textwidth{\Verb+\AKA[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]+\dotfill
- |\AKA[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]|}\par
-\hbox to \textwidth{\Verb+\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]+\dotfill
- |\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]|}\par
-\hbox to \textwidth{\Verb+\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]+\dotfill
- |\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]|}\medskip
+\begin{quote}
+\Verb+\UntagName[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\UntagName[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\UntagName[FNNa]{SNNa,Affix}+\dotfill
+ |\UntagName[FNNa]{SNNa,Affix}|\\
+\Verb+\UntagName[FNNb]{SNNb}[Alternate]+\dotfill
+ |\UntagName[FNNb]{SNNb}[Alternate]|\\
+\Verb+\UntagName[FNNb]{SNNb}+\dotfill
+ |\UntagName[FNNb]{SNNb,Affix}|\\
+\Verb+\UntagName{SNNc,Affix}[Alternate]+\dotfill
+ |\UntagName{SNNc,Affix}[Alternate]|\\
+\Verb+\UntagName{SNNc,Affix}+\dotfill
+ |\UntagName{SNNc,Affix}|\\
+\Verb+\UntagName{SNNd}[Alternate]+\dotfill
+ |\UntagName{SNNd}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\NameAddInfo[FNNa]{SNNa,Affix}[Alternate]{Info1}+\dotfill
+ |\NameAddInfo[FNNa]{SNNa,Affixa}[Alternate]{Info1}|\\
+\Verb+\NameAddInfo[FNNa]{SNNa,Affix}{Info2}+\dotfill
+ |\NameAddInfo[FNNa]{SNNa,Affix}{Info2}|\\
+\Verb+\NameAddInfo[FNNb]{SNNb}[Alternate]{Info3}+\dotfill
+ |\NameAddInfo[FNNb]{SNNb}[Alternate]{Info3}|\\
+\Verb+\NameAddInfo[FNNb]{SNNb}{Info4}+\dotfill
+ |\NameAddInfo[FNNb]{SNNb}{Info4}|\\
+\Verb+\NameAddInfo{SNNc,Affix}[Alternate]{Info5}+\dotfill
+ |\NameAddInfo{SNNc,Affix}[Alternate]{Info5}|\\
+\Verb+\NameAddInfo{SNNc,Affix}{Info6}+\dotfill
+ |\NameAddInfo{SNNc,Affix}{Info6}|\\
+\Verb+\NameAddInfo{SNNd}[Alternate]{Info7}+\dotfill
+ |\NameAddInfo{SNNd}[Alternate]{Info7}|
+\end{quote}
+
+\begin{quote}
+\Verb+\NameQueryInfo[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\NameQueryInfo[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\NameQueryInfo[FNNa]{SNNa,Affix}+\dotfill
+ |\NameQueryInfo[FNNa]{SNNa,Affix}|\\
+\Verb+\NameQueryInfo[FNNb]{SNNb}[Alternate]+\dotfill
+ |\NameQueryInfo[FNNb]{SNNb}[Alternate]|\\
+\Verb+\NameQueryInfo[FNNb]{SNNb}+\dotfill
+ |\NameQueryInfo[FNNb]{SNNb}|\\
+\Verb+\NameQueryInfo{SNNc,Affix}[Alternate]+\dotfill
+ |\NameQueryInfo{SNNc,Affix}[Alternate]|\\
+\Verb+\NameQueryInfo{SNNc,Affix}+\dotfill
+ |\NameQueryInfo{SNNc,Affix}|\\
+\Verb+\NameQueryInfo{SNNd}[Alternate]+\dotfill
+ |\NameQueryInfo{SNNd}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\NameClearInfo[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\NameClearInfo[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\NameClearInfo[FNNa]{SNNa,Affix}+\dotfill
+ |\NameClearInfo[FNNa]{SNNa,Affix}|\\
+\Verb+\NameClearInfo[FNNb]{SNNb}[Alternate]+\dotfill
+ |\NameClearInfo[FNNb]{SNNb}[Alternate]|\\
+\Verb+\NameClearInfo[FNNb]{SNNb}+\dotfill
+ |\NameClearInfo[FNNb]{SNNb}|\\
+\Verb+\NameClearInfo{SNNc,Affix}[Alternate]+\dotfill
+ |\NameClearInfo{SNNc,Affix}[Alternate]|\\
+\Verb+\NameClearInfo{SNNc,Affix}+\dotfill
+ |\NameClearInfo{SNNc,Affix}|\\
+\Verb+\NameClearInfo{SNNd}[Alternate]+\dotfill
+ |\NameClearInfo{SNNd}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\ForgetName[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\ForgetName[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\ForgetName[FNNa]{SNNa,Affix}+\dotfill
+ |\ForgetName[FNNa]{SNNa,Affix}|\\
+\Verb+\ForgetName[FNNb]{SNNb}[Alternate]+\dotfill
+ |\ForgetName[FNNb]{SNNb}[Alternate]|\\
+\Verb+\ForgetName[FNNb]{SNNb}+\dotfill
+ |\ForgetName[FNNb]{SNNb}|\\
+\Verb+\ForgetName{SNNc,Affix}[Alternate]+\dotfill
+ |\ForgetName{SNNc,Affix}[Alternate]|\\
+\Verb+\ForgetName{SNNc,Affix}+\dotfill
+ |\ForgetName{SNNc,Affix}|\\
+\Verb+\ForgetName{SNNd}[Alternate]+\dotfill
+ |\ForgetName{SNNd}[Alternate]|
+\end{quote}
+
+\begin{quote}
+\Verb+\LocalNames+\LocalNames\\
+\Verb+\SubvertName[FNNa]{SNNa,Affix}[Alternate]+\dotfill
+ |\SubvertName[FNNa]{SNNa,Affix}[Alternate]|\\
+\Verb+\SubvertName[FNNb]{SNNb}[Alternate]+\dotfill
+ |\SubvertName[FNNb]{SNNb}[Alternate]|\\
+\Verb+\SubvertName{SNNc,Affix}[Alternate]+\dotfill
+ |\SubvertName{SNNc,Affix}[Alternate]|\\
+\Verb+\SubvertName{SNNd}[Alternate]+\dotfill
+ |\SubvertName{SNNd}[Alternate]|\\
+\Verb+\GlobalNames+\GlobalNames
+\end{quote}
+
+\begin{quote}
+\Verb+\IfMainName[FNNa]{SNNa,Affix}{Y}{N}+\dotfill
+ |\IfMainName[FNNa]{SNNa,Affix}{Y}{N}|\\
+\Verb+\IfMainName[FNNb]{SNNb}{Y}{N}+\dotfill
+ |\IfMainName[FNNb]{SNNb}{Y}{N}|\\
+\Verb+\IfMainName{SNNc,Affix}{Y}{N}+\dotfill
+ |\IfMainName{SNNc,Affix}{Y}{N}|\\
+\Verb+\IfMainName{SNNd}[Alternate]{Y}{N}+\dotfill
+ |\IfMainName{SNNd}[Alternate]{Y}{N}|
+\end{quote}
+
+\begin{quote}
+\Verb+\IfFrontName[FNNa]{SNNa,Affix}[Alternate]{Y}{N}+\dotfill
+ |\IfFrontName[FNNa]{SNNa,Affix}[Alternate]{Y}{N}|\\
+\Verb+\IfFrontName[FNNb]{SNNb}[Alternate]{Y}{N}+\dotfill
+ |\IfFrontName[FNNb]{SNNb}[Alternate]{Y}{N}|\\
+\Verb+\IfFrontName{SNNc,Affix}[Alternate]{Y}{N}+\dotfill
+ |\IfFrontName{SNNc,Affix}[Alternate]{Y}{N}|\\
+\Verb+\IfFrontName{SNNd}[Alternate]{Y}{N}+\dotfill
+ |\IfFrontName{SNNd}[Alternate]{Y}{N}|
+\end{quote}
+\begin{quote}
+\Verb+\SeeAlso\IndexRef[FNNp]{SNNp,Affix}{Target}+\dotfill
+ |\SeeAlso\IndexRef[FNNp]{SNNp,Affix}{Target}|\\
+\Verb+\ExcludeName{SNNq,Affix}+\dotfill
+ |\ExcludeName{SNNq,Affix}|\\
+\Verb+\IfAKA[FNNp]{SNNp,Affix}[Alternate]{Y}{N}{X}+\dotfill
+ |\IfAKA[FNNp]{SNNp,Affix}[Alternate]{Y}{N}{X}|\\
+\Verb+\IfAKA[FNNp]{SNNp,Affix}{Y}{N}{X}+\dotfill
+ |\IfAKA[FNNp]{SNNp,Affix}{Y}{N}{X}|\\
+\Verb+\IfAKA{SNNq,Affix}[Alternate]{Y}{N}{X}+\dotfill
+ |\IfAKA{SNNq,Affix}[Alternate]{Y}{N}{X}|\\
+\Verb+\IfAKA{SNNq,Affix}{Y}{N}{X}+\dotfill
+ |\IfAKA{SNNq,Affix}{Y}{N}{X}|\\
+\Verb+\IfAKA{SNNr}[Alternate]{Y}{N}{X}+\dotfill
+ |\IfAKA{SNNr}[Alternate]{Y}{N}{X}|
+\end{quote}
+
+\begin{quote}
+\Verb+\AKA[FNN1]{SNN1,Affix1}%+\\
+\Verb+ [FNN2]{SNN2,Affix2}[Alternate2]+\dotfill
+ |\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}[Alternate2]|\\
+\Verb+\AKA[FNN1]{SNN1,Affix1}%+\\
+\Verb+ [FNN2]{SNN2,Affix2}+\dotfill
+ |\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}|\\
+\Verb+\DropAffix\AKA[FNN1]{SNN1,Affix1}%+\\
+\Verb+ [FNN2]{SNN2,Affix2}+\dotfill
+ |\DropAffix\AKA[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}|\\
+\Verb+\AKA*[FNN1]{SNN1,Affix1}%+\\
+\Verb+ [FNN2]{SNN2,Affix2}[Alternate2]+\dotfill
+ |\AKA*[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}[Alternate2]|\\
+\Verb+\AKA*[FNN1]{SNN1,Affix1}%+\\
+\Verb+ [FNN2]{SNN2,Affix2}+\dotfill
+ |\AKA*[FNN1]{SNN1,Affix1}[FNN2]{SNN2,Affix2}|
+\end{quote}
+
+\begin{quote}
+\Verb+\AKA[FNN1]{SNN1,Affix1}%+\\
+\Verb+ {SNN3,Affix3}[Alternate3]+\dotfill
+ |\AKA[FNN1]{SNN1,Affix1}{SNN3,Affix3}[Alternate3]|\\
+\Verb+\AKA[FNN1]{SNN1,Affix1}%+\\
+\Verb+ {SNN3,Affix3}+\dotfill
+ |\AKA[FNN1]{SNN1,Affix1}{SNN3,Affix3}|\\
+\Verb+\AKA*[FNN1]{SNN1,Affix1}%+\\
+\Verb+ {SNN3,Affix3}+\dotfill
+ |\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}|\\
+\Verb+\ForceFN\AKA*[FNN1]{SNN1,Affix1}%+\\
+\Verb+ {SNN3,Affix3}[Alternate3]+\dotfill
+ |\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}[Alternate3]|\\
+\Verb+\ForceFN\AKA*[FNN1]{SNN1,Affix1}%+\\
+\Verb+ {SNN3,Affix3}+\dotfill
+ |\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN3,Affix3}|
+\end{quote}
+
+\begin{quote}
+\Verb+\AKA[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]+\dotfill
+ |\AKA[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]|\\
+\Verb+\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]+\dotfill
+ |\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]|\\
+\Verb+\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]+\dotfill
+ |\ForceFN\AKA*[FNN1]{SNN1,Affix1}{SNN4}[Alternate4]|
+\end{quote}
+
+\begin{quote}
+\Verb+\AKA{SNN5,Affix5}%+\\
+\Verb+ [FNN6]{SNN6,Affix6}[Alternate6]+\dotfill
+ |\AKA{SNN5,Affix5}[FNN6]{SNN6,Affix6}[Alternate6]|\\
+\Verb+\AKA{SNN5,Affix5}{SNN7,Affix7}+\dotfill
+ |\AKA{SNN5,Affix5}{SNN7,Affix7}|\\
+\Verb+\AKA{SNN5,Affix5}{SNN8}[Alternate8]+\dotfill
+ |\AKA{SNN5,Affix5}{SNN8}[Alternate8]|\\
+\end{quote}
+
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
\phantomsection
\addcontentsline{toc}{section}{Index of Persons}
\printindex[per]
@@ -15100,7 +16190,6 @@ We disable indexing here.\\
\printindex
\end{document}
-
%examplesvb
%</examples>
\endinput
diff --git a/macros/latex/contrib/nameauth/nameauth.pdf b/macros/latex/contrib/nameauth/nameauth.pdf
index 6290eb1dc3..0fa566fad6 100644
--- a/macros/latex/contrib/nameauth/nameauth.pdf
+++ b/macros/latex/contrib/nameauth/nameauth.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 590772ff02..007b8c6a4f 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2023
-depend revision/69741
+depend revision/69752
name 00texlive.image
category TLCore
-revision 69742
+revision 69752
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
@@ -1629,6 +1629,7 @@ runfiles size=14451
tlpkg/tlpsrc/emo.tlpsrc
tlpkg/tlpsrc/emoji.tlpsrc
tlpkg/tlpsrc/emojicite.tlpsrc
+ tlpkg/tlpsrc/emotion.tlpsrc
tlpkg/tlpsrc/emp.tlpsrc
tlpkg/tlpsrc/emptypage.tlpsrc
tlpkg/tlpsrc/emulateapj.tlpsrc
@@ -71785,7 +71786,7 @@ containerchecksum 889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a0
name collection-latexextra
category Collection
-revision 69580
+revision 69752
shortdesc LaTeX additional packages
relocated 1
longdesc A very large collection of add-on packages for LaTeX.
@@ -72215,6 +72216,7 @@ depend embedall
depend embedfile
depend embrac
depend emo
+depend emotion
depend emptypage
depend emulateapj
depend endfloat
@@ -73320,7 +73322,7 @@ depend zref-vario
depend zwgetfdate
depend zwpagelayout
containersize 7100
-containerchecksum 89e5b2e4bab9e1ca4759a2f1089051137032806c631baf33fbe88f355aa6f6f5c5d4b4e9767adbc1668fb7467d9fb7a753e0b7b0b9eb8c9c0df0be4724000fef
+containerchecksum 7e57e95cc6ffaf88b52042dcf659b4c3b001cd0f71f380070747303d32923ad7b98da3a925002e92de939db25a9021f90e628bcc86e5d3ec5597c4e07962994f
name collection-latexrecommended
category Collection
@@ -95221,7 +95223,7 @@ catalogue-version 0.9.4
name derivative
category Package
-revision 68787
+revision 69746
shortdesc Nice and easy derivatives
relocated 1
longdesc Typesetting derivatives and differentials in a consistent way
@@ -95239,10 +95241,10 @@ longdesc commands. It also provides a set of commands that can define
longdesc custom derivatives and differential operators. The options
longdesc follow a consistent naming scheme making them easy to use and
longdesc understand.
-containersize 10316
-containerchecksum 64a219eb707e54c1c57715243e4bb5c676d495eec5c0095887f33f30591b7e90a7278ce6401c649f1902ded58c9fc890a23f0611dc8780e9a7bb6bd55a728083
-doccontainersize 225856
-doccontainerchecksum 3f660b6b8c0c1da3d7434f3a0ecf19c51a8618ad660ac4a6518ca67a4bbdb788b36a457a6f52c544618e814a3bf2b73a5c84590125f3e1d55cd95bda01f6b9e8
+containersize 10424
+containerchecksum a936429cc5b9933deaa349121fed565fd46e2d81f8d5a5be3b282f3a5107c13e2ff29e159759c10dad12bda9d5fefc5177fbba636dac0dd31aedb0074cb5ea3f
+doccontainersize 223524
+doccontainerchecksum 8951a888d07fa9136a71c0b0fb25b7f3925e137100460fb41cae0766c56cbbadad6b58e0afd690a608306032f5c2d95c6d4bc8f07651a1354b184fc28b9fd2b9
docfiles size=83
RELOC/doc/latex/derivative/README.md details="Readme"
RELOC/doc/latex/derivative/derivative.pdf details="Package documentation"
@@ -95254,7 +95256,7 @@ catalogue-contact-repository https://github.com/sjelatex/derivative
catalogue-ctan /macros/latex/contrib/derivative
catalogue-license lppl1.3
catalogue-topics maths expl3
-catalogue-version 1.31
+catalogue-version 1.4
name detex
category TLCore
@@ -105783,7 +105785,7 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 69742
+revision 69747
shortdesc Easily typesetting Chinese theses or books
relocated 1
longdesc easybook is a pure academic template created based on the
@@ -105794,16 +105796,16 @@ longdesc providing multiple commands and interfaces allows users to
longdesc easily customize the thesis template. Its basic macro package
longdesc easybase can also be used with CTeX and standard document
longdesc classes.
-containersize 16396
-containerchecksum 81e8c4d1559ae8b3871de9f318c35130b7d143262a7ca13b5e3d4b21220d94d0edd5fbfb092575b52a3cbaceb1a9f3e89a761569424230e9aaa656c389b9005c
-doccontainersize 621996
-doccontainerchecksum 4b5ead3c16512dabc511de3c250867ff543ba38f2ee63d9f1c9187c02af42dff991ba5b71a42db8a6691f7b30b0e9d15a693f927f9221adefdef43031b3b9e64
-docfiles size=169
+containersize 16472
+containerchecksum 38554bc9968c4da8315ab1b5853f2b5f4661359740ced27f6599563958828a0398978d5771e578487924322b7b7828629e6159ba9302df444784015ab55c7ad0
+doccontainersize 617724
+doccontainerchecksum 7df79b065276184344b5cafe7e05f9758e8a44a2bdffdd68c4a0318ce3774581bcd406c51ce4c4697963999e2e7925a6a081e8f8e23a5bda6d4cc2190db678f1
+docfiles size=168
RELOC/doc/latex/easybook/README.md details="Readme"
RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh"
RELOC/doc/latex/easybook/easybook.tex
-srccontainersize 16292
-srccontainerchecksum d4c96861d3eefc76f52c54304179f4e14ba51f2311c76cc066d9741bf187687ccb94540c1e91946bba7688e0ea31ac6a3efaed86a55969bf475e0eaa7c798b88
+srccontainersize 16368
+srccontainerchecksum 49731e976977ada605d54eb31b69f1c36db4219710685311ea41fd3660dd0564aed4919874c2ea81ddb3dddc3e886de2948abbf6a5011d367bd540dd86d59fc1
srcfiles size=20
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -105816,7 +105818,7 @@ catalogue-contact-repository https://gitee.com/texno3/easybook
catalogue-ctan /macros/latex/contrib/easybook
catalogue-license lppl1.3c
catalogue-topics book-pub dissertation class doc-templ chinese expl3
-catalogue-version 2024x
+catalogue-version 2024z
name easydtx
category Package
@@ -112128,6 +112130,38 @@ catalogue-license lppl1.3c
catalogue-topics luatex graphics-use cite-supp expl3
catalogue-version 0.3
+name emotion
+category Package
+revision 69752
+shortdesc Make emojis more easy to use in XeLaTeX and LuaLaTeX
+relocated 1
+longdesc There are many emojis with long names, and we cannot remember
+longdesc them all. At the same time, when we type an emoji, we want to
+longdesc see what it looks like in text editor. Now, you do not need to
+longdesc remember the emoji name, just select it from the keyboard and
+longdesc wrap it with \emotion. Unlike other emoji packages, you can
+longdesc thus use emojis more easily and flexibly.
+containersize 1352
+containerchecksum 5ee2a38186a79c720a12f185083c03ceaab4ff758b6046115cd0e18e4e5c2ff9b40f2ecf25e1502b9bd2e3a4a4e7f541453050099dbeb353e24b744a34d72a16
+doccontainersize 31576
+doccontainerchecksum f8381526f7feb3b74f561f48cd78ddd328d7007b08848933925ae8783107c4883ed6327108432a1b06dfb3fd2f346995eb8d27a4722d9d0e5e71d9dac4b7fadb
+docfiles size=12
+ RELOC/doc/latex/emotion/LICENSE
+ RELOC/doc/latex/emotion/README.md details="Readme"
+ RELOC/doc/latex/emotion/emotion-doc.pdf details="Package documentation"
+ RELOC/doc/latex/emotion/emotion-doc.tex
+runfiles size=3
+ RELOC/tex/latex/emotion/emotion.def
+ RELOC/tex/latex/emotion/emotion.lua
+ RELOC/tex/latex/emotion/emotion.sty
+catalogue-contact-bugs https://github.com/ourfor/LaTeX-emotion/issues
+catalogue-contact-home https://github.com/ourfor/LaTeX-emotion
+catalogue-contact-repository https://github.com/ourfor/LaTeX-emotion.git
+catalogue-ctan /macros/unicodetex/latex/emotion
+catalogue-license apache2
+catalogue-topics expl3 use-luatex
+catalogue-version 0.1
+
name emp
category Package
revision 23483
@@ -118459,7 +118493,7 @@ runfiles size=40
name evangelion-jfm
category Package
-revision 68059
+revision 69751
shortdesc A Japanese font metric supporting many advanced features
relocated 1
longdesc This package provides a Japanese Font Metric supporting
@@ -118469,10 +118503,10 @@ longdesc using traditional ('tc') and simplified ('sc') Chinese or
longdesc Japanese fonts under LuaTeX-ja. It also makes full use of the
longdesc 'priority' feature, meeting the standards, and allows easy
longdesc customisation.
-containersize 3460
-containerchecksum 5839d7899e8dd8a5fcae792fe40e234fcfeeca9a19bec8d2e8ec7be0217a73fbd58066f6d094e37b36ab9501d53eafed7f3220ee1ebb37ce767c8dd3868708f8
-doccontainersize 582032
-doccontainerchecksum 65447d983cd4a2b112966f8bc9de7f9a7eb2c8f38a9266db5a416219ae8b817f82f62fdc79bddcb2bfe3a67c84c6097975f178bce664e7ac23e2f29363c3df7c
+containersize 3468
+containerchecksum ff08a32b6283fc7ca0454e0071ce1d90b7a6fbf8989ca3eb4cc1f804f002f920890b083e5aa81a9455f57659a4df52b6c4677096621d9dffefa37c318e79a0f9
+doccontainersize 582400
+doccontainerchecksum ef98234e6c6609dc9ea6f60027c3dad1f417d677d5177525945330122b9b513a90bd296ba86a1d96eadb52792b5d162264578118872d5a7b1794b4a1a7fe06a4
docfiles size=201
RELOC/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.pdf details="Package documentation (English)"
RELOC/doc/luatex/evangelion-jfm/Eva-JFM_doc-en.tex
@@ -118487,8 +118521,8 @@ docfiles size=201
RELOC/doc/luatex/evangelion-jfm/figure/fig.tex
RELOC/doc/luatex/evangelion-jfm/make.sh
RELOC/doc/luatex/evangelion-jfm/makefile
-srccontainersize 16632
-srccontainerchecksum 8f31d019c8db0d9c817e5579ee9e3a31b936e91d0270eccb52ee6bfa544d5aedf8d0bb0d4af5a7aaaf3366d338ee0cc47647e211738d956857f57f28770e08bd
+srccontainersize 16636
+srccontainerchecksum 348b751825e0ad309ba4d37709d9ea5949448e1a3985b69ba446404316486e40a4fcd3a5c337c26b10c63a6b9051ed4c88cbd1f31a0707ec15242f7fd19ac7e8
srcfiles size=12
RELOC/source/luatex/evangelion-jfm/Evangelion-JFM.dtx
runfiles size=6
@@ -118499,7 +118533,7 @@ catalogue-contact-repository https://github.com/RadioNoiseE/Evangelion-JFM
catalogue-ctan /macros/luatex/generic/evangelion-jfm
catalogue-license mit
catalogue-topics chinese japanese font-supp luatex
-catalogue-version 1.0.5 (b)
+catalogue-version 1.0.5 (c)
name everyhook
category Package
@@ -178834,7 +178868,7 @@ catalogue-topics latex3 expl3 macro-supp pre-release
name l3build
category Package
-revision 69495
+revision 69748
shortdesc A testing and building system for (La)TeX
longdesc The build system supports testing and building LaTeX3 code, on
longdesc Linux, Mac OS X and Windows systems. The package offers: A unit
@@ -178846,18 +178880,18 @@ longdesc material released by the LaTeX3 team, and may be updated on a
longdesc different schedule.
depend l3build.ARCH
depend luatex
-containersize 36768
-containerchecksum 71aec98d8dbac38feb092be44b8fb2db66cc28b6d4168b774b521c0d559e41d4b5ac67d985922a3bfedc3709d676fea30f7d18d9db0ee94be0a037cb32ca9404
-doccontainersize 752832
-doccontainerchecksum 3e4deebf805c31f6280c3f19642065ec4ba70b8d19dd07bbfea262a162eaabf39dd62d3b67cb55508eb33163495744d82d27019bc1d6b38be97f4524e658e7a3
+containersize 36836
+containerchecksum 32999f257488429d109eecff598df6f7cba7e4511aa2b9cedcdd7cdb9acbbb959f13a1d3253d73f75e02c5c91e29744fdd934230d186ae7e76c057e51145cce1
+doccontainersize 754064
+doccontainerchecksum aeca997d50468e929d32c727606273fb01ddbce1fde2ec8f03f7e92f3f334ff7cf537432516b584f0420b9a93d7dfdf1f277d789222d9a3fe346009d2d46d72a
docfiles size=196
texmf-dist/doc/latex/l3build/CHANGELOG.md
texmf-dist/doc/latex/l3build/README.md details="Readme"
texmf-dist/doc/latex/l3build/l3build.pdf details="Package documentation"
texmf-dist/doc/man/man1/l3build.1
texmf-dist/doc/man/man1/l3build.man1.pdf
-srccontainersize 31808
-srccontainerchecksum 11fa8e9dc8b0dcffd390e89c0b3a713a70a749d77cdbd8592896a2183777d63c6fe470c9b43f07002d8830a502f9bfc84315905e0abc124ee474a8a9c5a41cfd
+srccontainersize 31884
+srccontainerchecksum 5969f5f85c71844c7d3abea497059f2bcf8b7bf96294ad746d2acfb876f3edc5e573aeee081f2ef45baee4eeef5465e69c1591412d45d2912f0391d6dfe35d18
srcfiles size=29
texmf-dist/source/latex/l3build/l3build.dtx
texmf-dist/source/latex/l3build/l3build.ins
@@ -266829,7 +266863,7 @@ catalogue-version 1.0
name proflycee
category Package
-revision 69630
+revision 69749
shortdesc A LaTeX package for French maths teachers in high school
relocated 1
longdesc This package provides some commands to help French mathematics
@@ -266838,11 +266872,11 @@ longdesc create splines with "derivative control";
longdesc \CalculFormelParametres and \CalculFormelLigne in order to
longdesc create an xcas-windows-like; \CodePythonLstFichier to create
longdesc code presentation and code execution with pythontex.
-containersize 54928
-containerchecksum 414aa9e93f9b3d63f5a4fcdf455e5457b3a8b9370575925733fe7d8825acc643a4b9b61425c39d26b5dccf2585dca8e69a79613ed128b6280fa0beb4f34fb50e
-doccontainersize 1808456
-doccontainerchecksum bec669af27391215651d005173fb676f41eee35d34aeb1b11d0f20672de14772dfebe712d4312f56bcfcc17ca6db41da9b0b6a9a7f4cc7d108c75dbb30e3dcf1
-docfiles size=463
+containersize 55980
+containerchecksum ff7639ef5b690a235777f3da687dbb03a02dadfcf3143ac44df7d97c8d902a441082bb6240e1a416490eadbcfaf394cf52bd5e13772b61dc663d8ff8ef618bed
+doccontainersize 3425796
+doccontainerchecksum ade38d0713c590e893e706117614e9768f36dd4cc7ba5f369b92892f60a58981c695d04bba487f3362d329732e2dad411123304a03a3a6d7d8a0ca4663f2b2bb
+docfiles size=858
RELOC/doc/latex/proflycee/ProfLycee-doc.pdf details="Package documentation" language="fr"
RELOC/doc/latex/proflycee/ProfLycee-doc.tex
RELOC/doc/latex/proflycee/ProfLycee-docctan.zip
@@ -266851,7 +266885,7 @@ docfiles size=463
RELOC/doc/latex/proflycee/ProfLycee-exemples-pythontex.pdf details="Examples using python" language="fr"
RELOC/doc/latex/proflycee/ProfLycee-exemples-pythontex.tex
RELOC/doc/latex/proflycee/README.md details="Readme"
-runfiles size=101
+runfiles size=102
RELOC/tex/latex/proflycee/ProfLycee.sty
RELOC/tex/latex/proflycee/proflycee-tools-aleatoire.tex
RELOC/tex/latex/proflycee/proflycee-tools-analyse.tex
@@ -266875,7 +266909,7 @@ catalogue-contact-repository https://github.com/cpierquet/ProfLycee
catalogue-ctan /macros/latex/contrib/proflycee
catalogue-license lppl1.3c
catalogue-topics maths french teaching expl3 pgf-tikz
-catalogue-version 3.01g
+catalogue-version 3.02a
name profmaquette
category Package
@@ -266907,27 +266941,27 @@ catalogue-version 0.87
name profsio
category Package
-revision 69125
+revision 69745
shortdesc Commands (with TikZ) to work with French "BTS SIO" maths themes
relocated 1
longdesc This package provides some commands (in French) to work with:
longdesc tables of Karnaugh ; MPM graphs ; simple graphs.
-containersize 12660
-containerchecksum 01f1aa3951194f5bdedf6c3c44445b1f628a6abd633fcfdc5dcf01f8777ec50b28367a4deb0c303b41983881c255ab21e3916dbe03c1c926f7f2df6be119fdb2
-doccontainersize 397408
-doccontainerchecksum f6c650c6d4977df846a62a697fc1b4e82ac541b68db55ec15a0370be2f7b06e8e45e0c8abb81d5573d4ac2dc868cf63b5b19b65de7025afd4f5f69a6cf516b99
-docfiles size=115
+containersize 14624
+containerchecksum c418c56a32e2ff102ae02cdc9907f195fcf3c953afc9b8391202f46be68da2a60b32f89e3a1b756d54ac5d38ecffc15afd73af21a4554e990ef7757d5652948b
+doccontainersize 438260
+doccontainerchecksum f60aa80f61d18bee36017ca7b110c38d4e45c00fed524398aa0e1bb728aad681f76ad91716c2c204474d5ae67337a6fbdfae241873011b516810fb22fe6c368e
+docfiles size=126
RELOC/doc/latex/profsio/ProfSio-doc-fr.pdf details="Package documentation" language="fr"
RELOC/doc/latex/profsio/ProfSio-doc-fr.tex
RELOC/doc/latex/profsio/README.md details="Readme"
-runfiles size=25
+runfiles size=28
RELOC/tex/latex/profsio/ProfSio.sty
catalogue-contact-bugs https://github.com/cpierquet/profsio/issues
catalogue-contact-repository https://github.com/cpierquet/profsio
catalogue-ctan /graphics/pgf/contrib/profsio
catalogue-license lppl1.3c
catalogue-topics graphics pgf-tikz maths
-catalogue-version 0.1.9
+catalogue-version 0.2.0
name program
category Package
@@ -324463,7 +324497,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 69731
+revision 69744
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -324472,9 +324506,9 @@ depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
containersize 114060
-containerchecksum 89e359a47e4f6ce4fcd518bb0305d00a17a7e6d4fd2c4dc81089969fe26df4d124e49dc4a59b677c66d9782c337355795cf215802e19fe2455421618bb09de6e
-doccontainersize 431936
-doccontainerchecksum da8a910a9d1c6342744813cebeea148f2eee1acd302414faa0eca2fc0f42d626b1049b422fe808d841066f9de158fa4b4d1a04cabf572251a41a9c97c28b7b9c
+containerchecksum 90e0f4952dcc85267739e04f7f9a34ceee56d73f6d04c8f180509fb480e3213f0525d063eb489752e2cacc2846b8ce73c073cd3a8dda67e5d3012118e6751b67
+doccontainersize 432168
+doccontainerchecksum ae3997e5d8d359a76d82cdd18f68aa3489406d0dca72c86157a643c1092ecad431826d5c3e45bc85915e4df91897683f839694296121f9d2eef4c770a5c977db
docfiles size=563
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -344616,18 +344650,18 @@ catalogue-version 2.6
name ucph-revy
category Package
-revision 68224
+revision 69750
shortdesc Musical script formatting
relocated 1
longdesc This package provides a class for typesetting scripts
longdesc containing both lyrics and prose, in the style used by the
longdesc student revues (revy) at the Faculties of Science at the
longdesc University of Copenhagen (uchp).
-containersize 4764
-containerchecksum 9b8cd59c35a8e94b04de4490fcf3637b75a4f858383d0d8ca263346f08d10a7ae8dfa2bbf0d5800329e1a90c40110a7767d6af6d2b24b4f94854a78bcc77aa15
-doccontainersize 719340
-doccontainerchecksum 18319c8a2137d7d2642dab7f9569b6073ab3ae1657c51c840a16821297539ad38fc283efdc98349bacacfbaf6f674b4c4a3d56317757af74de89511747f852ed
-docfiles size=221
+containersize 4788
+containerchecksum f9fb2dd19b7a963308e5c5058ac990ce3b944377ff6eaf52b26fcd7a12087c75bbb464e5e1155a1c3340e8fb3fca65b6d344d76f47a9a386fdb6e5425303f81b
+doccontainersize 720324
+doccontainerchecksum 0ad9f32badd36c033dd3d368e507518bd27d79e3bb94747b86622c2e41b81e87b5db673ddb4cebf7a88df4180b7cbb2bb0826ee19990e572c5e5ff33394c05f0
+docfiles size=222
RELOC/doc/latex/ucph-revy/Eksempel.tex
RELOC/doc/latex/ucph-revy/Example.tex
RELOC/doc/latex/ucph-revy/README.md details="Readme"
@@ -344637,9 +344671,9 @@ docfiles size=221
RELOC/doc/latex/ucph-revy/ucph-revy-en-doc.pdf details="Full package documentation (English)"
RELOC/doc/latex/ucph-revy/ucph-revy-en-man.pdf details="User manual (English)"
RELOC/doc/latex/ucph-revy/ucph-revy.bib
-srccontainersize 28044
-srccontainerchecksum 1da208bbfe27b5b1ff7aaab0e808ecf65709913ac1636596261e6421237c5584eb4028accd27d9efee18045fb3be1176044cea3b0dbb083927dad55543a8de7a
-srcfiles size=34
+srccontainersize 28316
+srccontainerchecksum b8245b1d950ca2af99683fe87f3eb5211cb4990b0911d11963cadbcc9c9d23d29bda0e7bd18a12184c5ac2501e69b67c89844d061c00f0e1ddb842d5d51d7112
+srcfiles size=35
RELOC/source/latex/ucph-revy/ucph-revy-da-doc.ins
RELOC/source/latex/ucph-revy/ucph-revy-da-man.ins
RELOC/source/latex/ucph-revy/ucph-revy-en-doc.ins
@@ -344654,7 +344688,7 @@ runfiles size=5
catalogue-ctan /macros/latex/contrib/ucph-revy
catalogue-license lppl1.3
catalogue-topics drama-script
-catalogue-version 1.0.0
+catalogue-version 1.0.1
name ucs
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index dec905fcea..ba7bbc5958 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-a383ae28a6a30cc0a33da8b60b775472 texlive.tlpdb
+77d347efcde2d398cd884aff7d6b084b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index ca407c94f7..2fbfe40f1c 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-b900191f6938b03991c0d575e4e4622db66a8fbd8711b23121f46f07938833ef5a11b203601f79eb84001af56a63c5282340c4523dc6cc93968c030cc3f8f938 texlive.tlpdb
+505c8f1fc04a7a918022e7b2fd2d1a8d803f2e3135e0d98eb2675ac0f4fe68d03ff09abf320d7548d8224e87b2d0c9c2f96b14325c69a5eaf717bf0d755251ca texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 84a996283c..856de95fe4 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmXEJHIACgkQTOGHfhlD
-jHCj9gf/QFAPfOyBROggT3LgMbV2vJmylBRci2Ea7T5B3U2CmWmWlyYqOG/bsV2x
-3K0fvdRWDuffK+o3cn6gEN+stiDEVP6eUayBtiP+sJ17Xq2ASOa9OPFamaYmS7rj
-3nCwktBcLvnYxqZaQq+IkIO6itzqYv1s3dYIXIlL4ATOzfg89Imvmye4VioBs6BZ
-MVhA799NmVQDBPU7wF5+fotn5/kPqXUTvf/GPnBBsjPUJwMdH0SLA64G0qR52pY8
-YAoNBZHvKvGWTyMYxKZZRUbh9/mGvy7DNI91eyIeZnDQO4k77q1oqcYeE6SVwTed
-HBdPoeYEwCeLMhBu1EQH/ezUyRqsGA==
-=IyhB
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmXFdWsACgkQTOGHfhlD
+jHCGcAgAsJ8xfhbPYcybWZjnKhgVn5/aOtv6BrgHSh+xL9PUaDjp44EU+8vR1nq1
+sijHjj6U05seLsxPcbBWbIhlxF5V4ir1XnQPM1Nd6jRHJT+X5xQoj/7TvbGaHpd8
+XEpAXktXtxn+HTsMhzHqmiP8Nmd2d4vSqz3fEcWMfptJ38j7QQ2sy1NNcvIAzpNY
+a0kmNzD4rgifPMC+Ci8GoR0Nro2H6kL1fjLzSzpJfhk+52KDOmnqnZCJbuUAzAsv
+rsVfUOynZOrmcreBAq6ojLQgGdQn+8eOdtVp6k0nw+RjbPC9qfULQvWTu2RIjVaw
+8TaiAwtUvXrgoowhvTNtAcngnanWjQ==
+=Jzlo
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index f537ad6679..eb100444f9 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index ba7bf93e2a..ed7245ec5e 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:
-2024-02-09-02-02
+2024-02-10-02-02