summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/generic/unicode-data/README.md3
-rw-r--r--macros/generic/unicode-data/WordBreakProperty.txt1397
-rw-r--r--macros/generic/unicode-data/load-unicode-data.tex2
-rw-r--r--macros/generic/unicode-data/load-unicode-math-classes.tex2
-rw-r--r--macros/generic/unicode-data/load-unicode-xetex-classes.tex2
-rw-r--r--macros/latex/base/README.md2
-rw-r--r--macros/latex/base/alltt.pdfbin173079 -> 173079 bytes
-rw-r--r--macros/latex/base/cfgguide.pdfbin220217 -> 220217 bytes
-rw-r--r--macros/latex/base/changes.txt19
-rw-r--r--macros/latex/base/classes.pdfbin520851 -> 520851 bytes
-rw-r--r--macros/latex/base/clsguide.pdfbin372555 -> 372555 bytes
-rw-r--r--macros/latex/base/cmfonts.pdfbin264505 -> 264505 bytes
-rw-r--r--macros/latex/base/cyrguide.pdfbin216997 -> 216997 bytes
-rw-r--r--macros/latex/base/doc.pdfbin630928 -> 630922 bytes
-rw-r--r--macros/latex/base/docstrip.pdfbin479545 -> 479544 bytes
-rw-r--r--macros/latex/base/encguide.pdfbin1532144 -> 1532144 bytes
-rw-r--r--macros/latex/base/exscale.pdfbin195877 -> 195877 bytes
-rw-r--r--macros/latex/base/fix-cm.pdfbin262059 -> 262059 bytes
-rw-r--r--macros/latex/base/fntguide.pdfbin417861 -> 417861 bytes
-rw-r--r--macros/latex/base/graphpap.pdfbin156277 -> 156277 bytes
-rw-r--r--macros/latex/base/ifthen.pdfbin205213 -> 205213 bytes
-rw-r--r--macros/latex/base/inputenc.pdfbin294900 -> 294900 bytes
-rw-r--r--macros/latex/base/latexchanges.pdfbin232390 -> 232390 bytes
-rw-r--r--macros/latex/base/latexrelease.pdfbin246195 -> 246195 bytes
-rw-r--r--macros/latex/base/latexsym.pdfbin192297 -> 192297 bytes
-rw-r--r--macros/latex/base/lb2.pdfbin138219 -> 138219 bytes
-rw-r--r--macros/latex/base/letter.pdfbin305701 -> 305700 bytes
-rw-r--r--macros/latex/base/lgc2.pdfbin101343 -> 101343 bytes
-rw-r--r--macros/latex/base/lppl.pdfbin125830 -> 125830 bytes
-rw-r--r--macros/latex/base/ltclass.dtx26
-rw-r--r--macros/latex/base/ltfilehook-code.pdfbin735762 -> 735464 bytes
-rw-r--r--macros/latex/base/ltfilehook-doc.pdfbin516631 -> 516397 bytes
-rw-r--r--macros/latex/base/ltfilehook.dtx39
-rw-r--r--macros/latex/base/lthooks-code.pdfbin900409 -> 901929 bytes
-rw-r--r--macros/latex/base/lthooks-doc.pdfbin619426 -> 621088 bytes
-rw-r--r--macros/latex/base/lthooks.dtx41
-rw-r--r--macros/latex/base/ltluatex.pdfbin305339 -> 305339 bytes
-rw-r--r--macros/latex/base/ltmiscen.dtx5
-rw-r--r--macros/latex/base/ltnews.pdfbin989398 -> 989398 bytes
-rw-r--r--macros/latex/base/ltnews01.pdfbin150020 -> 150020 bytes
-rw-r--r--macros/latex/base/ltnews02.pdfbin134751 -> 134751 bytes
-rw-r--r--macros/latex/base/ltnews03.pdfbin134742 -> 134742 bytes
-rw-r--r--macros/latex/base/ltnews04.pdfbin128772 -> 128772 bytes
-rw-r--r--macros/latex/base/ltnews05.pdfbin157181 -> 157181 bytes
-rw-r--r--macros/latex/base/ltnews06.pdfbin133138 -> 133138 bytes
-rw-r--r--macros/latex/base/ltnews07.pdfbin124029 -> 124029 bytes
-rw-r--r--macros/latex/base/ltnews08.pdfbin144482 -> 144482 bytes
-rw-r--r--macros/latex/base/ltnews09.pdfbin120222 -> 120222 bytes
-rw-r--r--macros/latex/base/ltnews10.pdfbin147946 -> 147946 bytes
-rw-r--r--macros/latex/base/ltnews11.pdfbin104936 -> 104936 bytes
-rw-r--r--macros/latex/base/ltnews12.pdfbin137919 -> 137919 bytes
-rw-r--r--macros/latex/base/ltnews13.pdfbin161065 -> 161065 bytes
-rw-r--r--macros/latex/base/ltnews14.pdfbin150907 -> 150907 bytes
-rw-r--r--macros/latex/base/ltnews15.pdfbin122092 -> 122092 bytes
-rw-r--r--macros/latex/base/ltnews16.pdfbin130687 -> 130687 bytes
-rw-r--r--macros/latex/base/ltnews17.pdfbin149838 -> 149838 bytes
-rw-r--r--macros/latex/base/ltnews18.pdfbin36005 -> 36005 bytes
-rw-r--r--macros/latex/base/ltnews19.pdfbin235073 -> 235073 bytes
-rw-r--r--macros/latex/base/ltnews20.pdfbin283318 -> 283318 bytes
-rw-r--r--macros/latex/base/ltnews21.pdfbin233492 -> 233492 bytes
-rw-r--r--macros/latex/base/ltnews22.pdfbin302836 -> 302836 bytes
-rw-r--r--macros/latex/base/ltnews23.pdfbin274459 -> 274459 bytes
-rw-r--r--macros/latex/base/ltnews24.pdfbin252645 -> 252645 bytes
-rw-r--r--macros/latex/base/ltnews25.pdfbin196326 -> 196326 bytes
-rw-r--r--macros/latex/base/ltnews26.pdfbin362839 -> 362839 bytes
-rw-r--r--macros/latex/base/ltnews27.pdfbin239758 -> 239758 bytes
-rw-r--r--macros/latex/base/ltnews28.pdfbin368226 -> 368226 bytes
-rw-r--r--macros/latex/base/ltnews29.pdfbin433004 -> 433004 bytes
-rw-r--r--macros/latex/base/ltnews30.pdfbin491246 -> 491246 bytes
-rw-r--r--macros/latex/base/ltnews31.pdfbin500919 -> 500919 bytes
-rw-r--r--macros/latex/base/ltnews32.pdfbin520923 -> 520923 bytes
-rw-r--r--macros/latex/base/ltshipout-code.pdfbin749397 -> 749471 bytes
-rw-r--r--macros/latex/base/ltshipout-doc.pdfbin503916 -> 503979 bytes
-rw-r--r--macros/latex/base/ltvers.dtx2
-rw-r--r--macros/latex/base/ltx3info.pdfbin191527 -> 191527 bytes
-rw-r--r--macros/latex/base/ltxdoc.pdfbin215102 -> 215102 bytes
-rw-r--r--macros/latex/base/makeindx.pdfbin160667 -> 160667 bytes
-rw-r--r--macros/latex/base/manual.pdfbin151347 -> 151347 bytes
-rw-r--r--macros/latex/base/modguide.pdfbin220388 -> 220388 bytes
-rw-r--r--macros/latex/base/nfssfont.pdfbin202451 -> 202451 bytes
-rw-r--r--macros/latex/base/proc.pdfbin216877 -> 216877 bytes
-rw-r--r--macros/latex/base/slides.pdfbin351586 -> 351586 bytes
-rw-r--r--macros/latex/base/slifonts.pdfbin214710 -> 214710 bytes
-rw-r--r--macros/latex/base/source2e.pdfbin4347415 -> 4349921 bytes
-rw-r--r--macros/latex/base/syntonly.pdfbin181388 -> 181390 bytes
-rw-r--r--macros/latex/base/tlc2.pdfbin164947 -> 164947 bytes
-rw-r--r--macros/latex/base/tulm.pdfbin156546 -> 156546 bytes
-rw-r--r--macros/latex/base/usrguide.pdfbin399035 -> 399035 bytes
-rw-r--r--macros/latex/base/utf8ienc.pdfbin330675 -> 330853 bytes
-rw-r--r--macros/latex/base/webcomp.pdfbin136159 -> 136159 bytes
-rw-r--r--macros/latex/contrib/acmart/README4
-rw-r--r--macros/latex/contrib/acmart/acmart.dtx13
-rw-r--r--macros/latex/contrib/acmart/acmart.pdfbin833076 -> 857825 bytes
-rw-r--r--macros/latex/contrib/acmart/acmguide.pdfbin414628 -> 414633 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmlarge.pdfbin605236 -> 587177 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdfbin1049664 -> 1031530 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdfbin617494 -> 599461 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall.pdfbin615055 -> 597030 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog.pdfbin561536 -> 544722 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-authordraft.pdfbin1040427 -> 1023661 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-lualatex.pdfbin719153 -> 768503 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-manuscript.pdfbin615814 -> 599099 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf.pdfbin1036629 -> 1019869 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigplan.pdfbin1047112 -> 1029005 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-xelatex.pdfbin653215 -> 653288 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md18
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty16
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty17
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpgbin26430 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.pdf)bin324539 -> 324510 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.tex)4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-appendix.jpg)bin27131 -> 27131 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-focus.jpg)bin9717 -> 9717 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-references.jpg)bin32126 -> 32126 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpgbin0 -> 35571 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage-color.jpg)bin57942 -> 57942 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage.jpg)bin35777 -> 35777 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-typeset.jpg)bin49291 -> 49291 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo_bibliography.bib)0
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focuslogo.pdf)bin4062 -> 4062 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdfbin634668 -> 634631 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdfbin291778 -> 292445 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex78
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx17
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx2
-rw-r--r--macros/latex/contrib/caption/CHANGELOG3
-rw-r--r--macros/latex/contrib/caption/README4
-rw-r--r--macros/latex/contrib/caption/bicaption.dtx114
-rw-r--r--macros/latex/contrib/caption/bicaption.pdfbin115778 -> 117664 bytes
-rw-r--r--macros/latex/contrib/caption/caption-ams-smf.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-beamer.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-elsarticle.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-eng.pdfbin402642 -> 402934 bytes
-rw-r--r--macros/latex/contrib/caption/caption-eng.tex69
-rw-r--r--macros/latex/contrib/caption/caption-koma.dtx8
-rw-r--r--macros/latex/contrib/caption/caption-light.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-memoir.dtx113
-rw-r--r--macros/latex/contrib/caption/caption-ntg.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-thesis.dtx2
-rw-r--r--macros/latex/contrib/caption/caption.dtx273
-rw-r--r--macros/latex/contrib/caption/caption2.dtx61
-rw-r--r--macros/latex/contrib/caption/caption3.dtx397
-rw-r--r--macros/latex/contrib/caption/ltcaption.dtx2
-rw-r--r--macros/latex/contrib/caption/subcaption.dtx101
-rw-r--r--macros/latex/contrib/fgruler/fgruler.dtx571
-rw-r--r--macros/latex/contrib/fgruler/fgruler.pdfbin259375 -> 283694 bytes
-rw-r--r--macros/latex/contrib/principia/README2
-rw-r--r--macros/latex/contrib/principia/principia.pdfbin368370 -> 366457 bytes
-rw-r--r--macros/latex/contrib/principia/principia.sty37
-rw-r--r--macros/latex/contrib/principia/principia.tex27
-rw-r--r--macros/latex/contrib/sttools/README.md6
-rw-r--r--macros/latex/contrib/sttools/flushend.dtx231
-rw-r--r--macros/latex/contrib/sttools/flushend.pdfbin147962 -> 83883 bytes
201 files changed, 2904 insertions, 939 deletions
diff --git a/macros/generic/unicode-data/README.md b/macros/generic/unicode-data/README.md
index e6ca0b2bb9..543be03e21 100644
--- a/macros/generic/unicode-data/README.md
+++ b/macros/generic/unicode-data/README.md
@@ -113,6 +113,7 @@ Unicode Consortium (see below):
- `SpecialCasing.txt`
- `Scripts.txt`
- `ScriptExtension.txt`
+- `WordBreakProperty.txt`
With the exception of `MathClass.txt`, which is currently not
formally part of the Unicode Character Database, and
@@ -189,6 +190,8 @@ Changes
- Update data files to Unicode release 13.0.0
- v1.13 (2020-04-15)
- Add `emoji-data.txt` and `GraphemeBreakProperty.txt`
+- v1.14 (2020-10-24)
+ - Add `WordBreakProperty.txt`
License and permission
======================
diff --git a/macros/generic/unicode-data/WordBreakProperty.txt b/macros/generic/unicode-data/WordBreakProperty.txt
new file mode 100644
index 0000000000..36d1438c26
--- /dev/null
+++ b/macros/generic/unicode-data/WordBreakProperty.txt
@@ -0,0 +1,1397 @@
+# WordBreakProperty-13.0.0.txt
+# Date: 2020-01-22, 00:07:44 GMT
+# © 2020 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode Character Database
+# For documentation, see http://www.unicode.org/reports/tr44/
+
+# ================================================
+
+# Property: Word_Break
+
+# All code points not explicitly listed for Word_Break
+# have the value Other (XX).
+
+# @missing: 0000..10FFFF; Other
+
+# ================================================
+
+0022 ; Double_Quote # Po QUOTATION MARK
+
+# Total code points: 1
+
+# ================================================
+
+0027 ; Single_Quote # Po APOSTROPHE
+
+# Total code points: 1
+
+# ================================================
+
+05D0..05EA ; Hebrew_Letter # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05EF..05F2 ; Hebrew_Letter # Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
+FB1D ; Hebrew_Letter # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F..FB28 ; Hebrew_Letter # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB2A..FB36 ; Hebrew_Letter # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Hebrew_Letter # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Hebrew_Letter # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Hebrew_Letter # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Hebrew_Letter # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+
+# Total code points: 75
+
+# ================================================
+
+000D ; CR # Cc <control-000D>
+
+# Total code points: 1
+
+# ================================================
+
+000A ; LF # Cc <control-000A>
+
+# Total code points: 1
+
+# ================================================
+
+000B..000C ; Newline # Cc [2] <control-000B>..<control-000C>
+0085 ; Newline # Cc <control-0085>
+2028 ; Newline # Zl LINE SEPARATOR
+2029 ; Newline # Zp PARAGRAPH SEPARATOR
+
+# Total code points: 5
+
+# ================================================
+
+0300..036F ; Extend # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+0483..0487 ; Extend # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489 ; Extend # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+0591..05BD ; Extend # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BF ; Extend # Mn HEBREW POINT RAFE
+05C1..05C2 ; Extend # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C4..05C5 ; Extend # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C7 ; Extend # Mn HEBREW POINT QAMATS QATAN
+0610..061A ; Extend # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+064B..065F ; Extend # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+0670 ; Extend # Mn ARABIC LETTER SUPERSCRIPT ALEF
+06D6..06DC ; Extend # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DF..06E4 ; Extend # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E7..06E8 ; Extend # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06EA..06ED ; Extend # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+0711 ; Extend # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0730..074A ; Extend # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+07A6..07B0 ; Extend # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07EB..07F3 ; Extend # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07FD ; Extend # Mn NKO DANTAYALAN
+0816..0819 ; Extend # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081B..0823 ; Extend # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+08D3..08E1 ; Extend # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
+08E3..0902 ; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
+0903 ; Extend # Mc DEVANAGARI SIGN VISARGA
+093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
+093B ; Extend # Mc DEVANAGARI VOWEL SIGN OOE
+093C ; Extend # Mn DEVANAGARI SIGN NUKTA
+093E..0940 ; Extend # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948 ; Extend # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C ; Extend # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+094D ; Extend # Mn DEVANAGARI SIGN VIRAMA
+094E..094F ; Extend # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+0951..0957 ; Extend # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+0962..0963 ; Extend # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0981 ; Extend # Mn BENGALI SIGN CANDRABINDU
+0982..0983 ; Extend # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+09BC ; Extend # Mn BENGALI SIGN NUKTA
+09BE..09C0 ; Extend # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4 ; Extend # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8 ; Extend # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; Extend # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD ; Extend # Mn BENGALI SIGN VIRAMA
+09D7 ; Extend # Mc BENGALI AU LENGTH MARK
+09E2..09E3 ; Extend # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09FE ; Extend # Mn BENGALI SANDHI MARK
+0A01..0A02 ; Extend # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03 ; Extend # Mc GURMUKHI SIGN VISARGA
+0A3C ; Extend # Mn GURMUKHI SIGN NUKTA
+0A3E..0A40 ; Extend # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42 ; Extend # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; Extend # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D ; Extend # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51 ; Extend # Mn GURMUKHI SIGN UDAAT
+0A70..0A71 ; Extend # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A75 ; Extend # Mn GURMUKHI SIGN YAKASH
+0A81..0A82 ; Extend # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83 ; Extend # Mc GUJARATI SIGN VISARGA
+0ABC ; Extend # Mn GUJARATI SIGN NUKTA
+0ABE..0AC0 ; Extend # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5 ; Extend # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; Extend # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9 ; Extend # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; Extend # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0ACD ; Extend # Mn GUJARATI SIGN VIRAMA
+0AE2..0AE3 ; Extend # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AFA..0AFF ; Extend # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+0B01 ; Extend # Mn ORIYA SIGN CANDRABINDU
+0B02..0B03 ; Extend # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B3C ; Extend # Mn ORIYA SIGN NUKTA
+0B3E ; Extend # Mc ORIYA VOWEL SIGN AA
+0B3F ; Extend # Mn ORIYA VOWEL SIGN I
+0B40 ; Extend # Mc ORIYA VOWEL SIGN II
+0B41..0B44 ; Extend # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48 ; Extend # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; Extend # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D ; Extend # Mn ORIYA SIGN VIRAMA
+0B55..0B56 ; Extend # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
+0B57 ; Extend # Mc ORIYA AU LENGTH MARK
+0B62..0B63 ; Extend # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B82 ; Extend # Mn TAMIL SIGN ANUSVARA
+0BBE..0BBF ; Extend # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0 ; Extend # Mn TAMIL VOWEL SIGN II
+0BC1..0BC2 ; Extend # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; Extend # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; Extend # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD ; Extend # Mn TAMIL SIGN VIRAMA
+0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
+0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03 ; Extend # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04 ; Extend # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44 ; Extend # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C62..0C63 ; Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C81 ; Extend # Mn KANNADA SIGN CANDRABINDU
+0C82..0C83 ; Extend # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0CBC ; Extend # Mn KANNADA SIGN NUKTA
+0CBE ; Extend # Mc KANNADA VOWEL SIGN AA
+0CBF ; Extend # Mn KANNADA VOWEL SIGN I
+0CC0..0CC4 ; Extend # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6 ; Extend # Mn KANNADA VOWEL SIGN E
+0CC7..0CC8 ; Extend # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; Extend # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D00..0D01 ; Extend # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
+0D02..0D03 ; Extend # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D3B..0D3C ; Extend # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+0D3E..0D40 ; Extend # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44 ; Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48 ; Extend # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C ; Extend # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D4D ; Extend # Mn MALAYALAM SIGN VIRAMA
+0D57 ; Extend # Mc MALAYALAM AU LENGTH MARK
+0D62..0D63 ; Extend # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D81 ; Extend # Mn SINHALA SIGN CANDRABINDU
+0D82..0D83 ; Extend # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0DCA ; Extend # Mn SINHALA SIGN AL-LAKUNA
+0DCF..0DD1 ; Extend # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4 ; Extend # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; Extend # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF ; Extend # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DF2..0DF3 ; Extend # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0E31 ; Extend # Mn THAI CHARACTER MAI HAN-AKAT
+0E34..0E3A ; Extend # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
+0EB4..0EBC ; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
+0EC8..0ECD ; Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F39 ; Extend # Mn TIBETAN MARK TSA -PHRU
+0F3E..0F3F ; Extend # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F71..0F7E ; Extend # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F7F ; Extend # Mc TIBETAN SIGN RNAM BCAD
+0F80..0F84 ; Extend # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F86..0F87 ; Extend # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F8D..0F97 ; Extend # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; Extend # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FC6 ; Extend # Mn TIBETAN SYMBOL PADMA GDAN
+102B..102C ; Extend # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030 ; Extend # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031 ; Extend # Mc MYANMAR VOWEL SIGN E
+1032..1037 ; Extend # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1038 ; Extend # Mc MYANMAR SIGN VISARGA
+1039..103A ; Extend # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C ; Extend # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E ; Extend # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+1056..1057 ; Extend # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059 ; Extend # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105E..1060 ; Extend # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1062..1064 ; Extend # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1067..106D ; Extend # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+1071..1074 ; Extend # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1082 ; Extend # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084 ; Extend # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086 ; Extend # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C ; Extend # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; Extend # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108F ; Extend # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+109A..109C ; Extend # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
+109D ; Extend # Mn MYANMAR VOWEL SIGN AITON AI
+135D..135F ; Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1712..1714 ; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1732..1734 ; Extend # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1752..1753 ; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1772..1773 ; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+17B4..17B5 ; Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6 ; Extend # Mc KHMER VOWEL SIGN AA
+17B7..17BD ; Extend # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5 ; Extend # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6 ; Extend # Mn KHMER SIGN NIKAHIT
+17C7..17C8 ; Extend # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3 ; Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17DD ; Extend # Mn KHMER SIGN ATTHACAN
+180B..180D ; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+1885..1886 ; Extend # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
+18A9 ; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+1920..1922 ; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926 ; Extend # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928 ; Extend # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B ; Extend # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931 ; Extend # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932 ; Extend # Mn LIMBU SMALL LETTER ANUSVARA
+1933..1938 ; Extend # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B ; Extend # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1A17..1A18 ; Extend # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A19..1A1A ; Extend # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+1A1B ; Extend # Mn BUGINESE VOWEL SIGN AE
+1A55 ; Extend # Mc TAI THAM CONSONANT SIGN MEDIAL RA
+1A56 ; Extend # Mn TAI THAM CONSONANT SIGN MEDIAL LA
+1A57 ; Extend # Mc TAI THAM CONSONANT SIGN LA TANG LAI
+1A58..1A5E ; Extend # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+1A60 ; Extend # Mn TAI THAM SIGN SAKOT
+1A61 ; Extend # Mc TAI THAM VOWEL SIGN A
+1A62 ; Extend # Mn TAI THAM VOWEL SIGN MAI SAT
+1A63..1A64 ; Extend # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
+1A65..1A6C ; Extend # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+1A6D..1A72 ; Extend # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+1A73..1A7C ; Extend # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
+1ABF..1AC0 ; Extend # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
+1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04 ; Extend # Mc BALINESE SIGN BISAH
+1B34 ; Extend # Mn BALINESE SIGN REREKAN
+1B35 ; Extend # Mc BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A ; Extend # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B ; Extend # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; Extend # Mn BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41 ; Extend # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; Extend # Mn BALINESE VOWEL SIGN PEPET
+1B43..1B44 ; Extend # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B6B..1B73 ; Extend # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B80..1B81 ; Extend # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82 ; Extend # Mc SUNDANESE SIGN PANGWISAD
+1BA1 ; Extend # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5 ; Extend # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7 ; Extend # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9 ; Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA ; Extend # Mc SUNDANESE SIGN PAMAAEH
+1BAB..1BAD ; Extend # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BE6 ; Extend # Mn BATAK SIGN TOMPI
+1BE7 ; Extend # Mc BATAK VOWEL SIGN E
+1BE8..1BE9 ; Extend # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BEA..1BEC ; Extend # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BED ; Extend # Mn BATAK VOWEL SIGN KARO O
+1BEE ; Extend # Mc BATAK VOWEL SIGN U
+1BEF..1BF1 ; Extend # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+1BF2..1BF3 ; Extend # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
+1C24..1C2B ; Extend # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33 ; Extend # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35 ; Extend # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36..1C37 ; Extend # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1CD0..1CD2 ; Extend # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD4..1CE0 ; Extend # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1 ; Extend # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE2..1CE8 ; Extend # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CED ; Extend # Mn VEDIC SIGN TIRYAK
+1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
+1CF7 ; Extend # Mc VEDIC SIGN ATIKRAMA
+1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1DC0..1DF9 ; Extend # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
+1DFB..1DFF ; Extend # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+200C ; Extend # Cf ZERO WIDTH NON-JOINER
+20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0 ; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1 ; Extend # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4 ; Extend # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0 ; Extend # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2CEF..2CF1 ; Extend # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2D7F ; Extend # Mn TIFINAGH CONSONANT JOINER
+2DE0..2DFF ; Extend # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+302A..302D ; Extend # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F ; Extend # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3099..309A ; Extend # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+A66F ; Extend # Mn COMBINING CYRILLIC VZMET
+A670..A672 ; Extend # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A674..A67D ; Extend # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A69E..A69F ; Extend # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+A6F0..A6F1 ; Extend # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A802 ; Extend # Mn SYLOTI NAGRI SIGN DVISVARA
+A806 ; Extend # Mn SYLOTI NAGRI SIGN HASANTA
+A80B ; Extend # Mn SYLOTI NAGRI SIGN ANUSVARA
+A823..A824 ; Extend # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826 ; Extend # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827 ; Extend # Mc SYLOTI NAGRI VOWEL SIGN OO
+A82C ; Extend # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
+A880..A881 ; Extend # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A8B4..A8C3 ; Extend # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4..A8C5 ; Extend # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
+A8E0..A8F1 ; Extend # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8FF ; Extend # Mn DEVANAGARI VOWEL SIGN AY
+A926..A92D ; Extend # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A947..A951 ; Extend # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953 ; Extend # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A980..A982 ; Extend # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+A983 ; Extend # Mc JAVANESE SIGN WIGNYAN
+A9B3 ; Extend # Mn JAVANESE SIGN CECAK TELU
+A9B4..A9B5 ; Extend # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+A9B6..A9B9 ; Extend # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+A9BA..A9BB ; Extend # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+A9BC..A9BD ; Extend # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9C0 ; Extend # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
+A9E5 ; Extend # Mn MYANMAR SIGN SHAN SAW
+AA29..AA2E ; Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30 ; Extend # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32 ; Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34 ; Extend # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36 ; Extend # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA43 ; Extend # Mn CHAM CONSONANT SIGN FINAL NG
+AA4C ; Extend # Mn CHAM CONSONANT SIGN FINAL M
+AA4D ; Extend # Mc CHAM CONSONANT SIGN FINAL H
+AA7B ; Extend # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; Extend # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; Extend # Mc MYANMAR SIGN TAI LAING TONE-5
+AAB0 ; Extend # Mn TAI VIET MAI KANG
+AAB2..AAB4 ; Extend # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB7..AAB8 ; Extend # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AABE..AABF ; Extend # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC1 ; Extend # Mn TAI VIET TONE MAI THO
+AAEB ; Extend # Mc MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED ; Extend # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF ; Extend # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF5 ; Extend # Mc MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6 ; Extend # Mn MEETEI MAYEK VIRAMA
+ABE3..ABE4 ; Extend # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ABE5 ; Extend # Mn MEETEI MAYEK VOWEL SIGN ANAP
+ABE6..ABE7 ; Extend # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8 ; Extend # Mn MEETEI MAYEK VOWEL SIGN UNAP
+ABE9..ABEA ; Extend # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ABEC ; Extend # Mc MEETEI MAYEK LUM IYEK
+ABED ; Extend # Mn MEETEI MAYEK APUN IYEK
+FB1E ; Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FE00..FE0F ; Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE20..FE2F ; Extend # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+101FD ; Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+102E0 ; Extend # Mn COPTIC EPACT THOUSANDS MARK
+10376..1037A ; Extend # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10A01..10A03 ; Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F ; Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A38..10A3A ; Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F ; Extend # Mn KHAROSHTHI VIRAMA
+10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+11000 ; Extend # Mc BRAHMI SIGN CANDRABINDU
+11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
+11002 ; Extend # Mc BRAHMI SIGN VISARGA
+11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
+11082 ; Extend # Mc KAITHI SIGN VISARGA
+110B0..110B2 ; Extend # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B7..110B8 ; Extend # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+110B9..110BA ; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+11100..11102 ; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C ; Extend # Mc CHAKMA VOWEL SIGN E
+1112D..11134 ; Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11145..11146 ; Extend # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
+11173 ; Extend # Mn MAHAJANI SIGN NUKTA
+11180..11181 ; Extend # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182 ; Extend # Mc SHARADA SIGN VISARGA
+111B3..111B5 ; Extend # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE ; Extend # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0 ; Extend # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C9..111CC ; Extend # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+111CE ; Extend # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E
+111CF ; Extend # Mn SHARADA SIGN INVERTED CANDRABINDU
+1122C..1122E ; Extend # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231 ; Extend # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233 ; Extend # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234 ; Extend # Mn KHOJKI SIGN ANUSVARA
+11235 ; Extend # Mc KHOJKI SIGN VIRAMA
+11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+1123E ; Extend # Mn KHOJKI SIGN SUKUN
+112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2 ; Extend # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+11300..11301 ; Extend # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
+11302..11303 ; Extend # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+1133B..1133C ; Extend # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+1133E..1133F ; Extend # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340 ; Extend # Mn GRANTHA VOWEL SIGN II
+11341..11344 ; Extend # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; Extend # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; Extend # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11357 ; Extend # Mc GRANTHA AU LENGTH MARK
+11362..11363 ; Extend # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C ; Extend # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; Extend # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11435..11437 ; Extend # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
+11438..1143F ; Extend # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+11440..11441 ; Extend # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
+11442..11444 ; Extend # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+11445 ; Extend # Mc NEWA SIGN VISARGA
+11446 ; Extend # Mn NEWA SIGN NUKTA
+1145E ; Extend # Mn NEWA SANDHI MARK
+114B0..114B2 ; Extend # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8 ; Extend # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; Extend # Mc TIRHUTA VOWEL SIGN E
+114BA ; Extend # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE ; Extend # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0 ; Extend # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1 ; Extend # Mc TIRHUTA SIGN VISARGA
+114C2..114C3 ; Extend # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+115AF..115B1 ; Extend # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5 ; Extend # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB ; Extend # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD ; Extend # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE ; Extend # Mc SIDDHAM SIGN VISARGA
+115BF..115C0 ; Extend # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115DC..115DD ; Extend # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
+11630..11632 ; Extend # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A ; Extend # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C ; Extend # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D ; Extend # Mn MODI SIGN ANUSVARA
+1163E ; Extend # Mc MODI SIGN VISARGA
+1163F..11640 ; Extend # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+116AB ; Extend # Mn TAKRI SIGN ANUSVARA
+116AC ; Extend # Mc TAKRI SIGN VISARGA
+116AD ; Extend # Mn TAKRI VOWEL SIGN AA
+116AE..116AF ; Extend # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5 ; Extend # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6 ; Extend # Mc TAKRI SIGN VIRAMA
+116B7 ; Extend # Mn TAKRI SIGN NUKTA
+1171D..1171F ; Extend # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
+11720..11721 ; Extend # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
+11722..11725 ; Extend # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+11726 ; Extend # Mc AHOM VOWEL SIGN E
+11727..1172B ; Extend # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+1182C..1182E ; Extend # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
+1182F..11837 ; Extend # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+11838 ; Extend # Mc DOGRA SIGN VISARGA
+11839..1183A ; Extend # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+11930..11935 ; Extend # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
+11937..11938 ; Extend # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
+1193B..1193C ; Extend # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
+1193D ; Extend # Mc DIVES AKURU SIGN HALANTA
+1193E ; Extend # Mn DIVES AKURU VIRAMA
+11940 ; Extend # Mc DIVES AKURU MEDIAL YA
+11942 ; Extend # Mc DIVES AKURU MEDIAL RA
+11943 ; Extend # Mn DIVES AKURU SIGN NUKTA
+119D1..119D3 ; Extend # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7 ; Extend # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; Extend # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF ; Extend # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E0 ; Extend # Mn NANDINAGARI SIGN VIRAMA
+119E4 ; Extend # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+11A01..11A0A ; Extend # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+11A33..11A38 ; Extend # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+11A39 ; Extend # Mc ZANABAZAR SQUARE SIGN VISARGA
+11A3B..11A3E ; Extend # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A47 ; Extend # Mn ZANABAZAR SQUARE SUBJOINER
+11A51..11A56 ; Extend # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+11A57..11A58 ; Extend # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
+11A59..11A5B ; Extend # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
+11A8A..11A96 ; Extend # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
+11A97 ; Extend # Mc SOYOMBO SIGN VISARGA
+11A98..11A99 ; Extend # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+11C2F ; Extend # Mc BHAIKSUKI VOWEL SIGN AA
+11C30..11C36 ; Extend # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
+11C38..11C3D ; Extend # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
+11C3E ; Extend # Mc BHAIKSUKI SIGN VISARGA
+11C3F ; Extend # Mn BHAIKSUKI SIGN VIRAMA
+11C92..11CA7 ; Extend # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+11CA9 ; Extend # Mc MARCHEN SUBJOINED LETTER YA
+11CAA..11CB0 ; Extend # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
+11CB1 ; Extend # Mc MARCHEN VOWEL SIGN I
+11CB2..11CB3 ; Extend # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+11CB4 ; Extend # Mc MARCHEN VOWEL SIGN O
+11CB5..11CB6 ; Extend # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
+11D31..11D36 ; Extend # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
+11D3A ; Extend # Mn MASARAM GONDI VOWEL SIGN E
+11D3C..11D3D ; Extend # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+11D3F..11D45 ; Extend # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
+11D47 ; Extend # Mn MASARAM GONDI RA-KARA
+11D8A..11D8E ; Extend # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
+11D90..11D91 ; Extend # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D93..11D94 ; Extend # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
+11D95 ; Extend # Mn GUNJALA GONDI SIGN ANUSVARA
+11D96 ; Extend # Mc GUNJALA GONDI SIGN VISARGA
+11D97 ; Extend # Mn GUNJALA GONDI VIRAMA
+11EF3..11EF4 ; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11EF5..11EF6 ; Extend # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
+16F51..16F87 ; Extend # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+16F8F..16F92 ; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16FE4 ; Extend # Mn KHITAN SMALL SCRIPT FILLER
+16FF0..16FF1 ; Extend # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
+1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1D165..1D166 ; Extend # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16D..1D172 ; Extend # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D17B..1D182 ; Extend # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D185..1D18B ; Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D1AA..1D1AD ; Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D242..1D244 ; Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1DA00..1DA36 ; Extend # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+1DA3B..1DA6C ; Extend # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+1DA75 ; Extend # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA84 ; Extend # Mn SIGNWRITING LOCATION HEAD NECK
+1DA9B..1DA9F ; Extend # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA1..1DAAF ; Extend # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+1E000..1E006 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E008..1E018 ; Extend # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E01B..1E021 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
+E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
+E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+
+# Total code points: 2399
+
+# ================================================
+
+1F1E6..1F1FF ; Regional_Indicator # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+
+# Total code points: 26
+
+# ================================================
+
+00AD ; Format # Cf SOFT HYPHEN
+0600..0605 ; Format # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+061C ; Format # Cf ARABIC LETTER MARK
+06DD ; Format # Cf ARABIC END OF AYAH
+070F ; Format # Cf SYRIAC ABBREVIATION MARK
+08E2 ; Format # Cf ARABIC DISPUTED END OF AYAH
+180E ; Format # Cf MONGOLIAN VOWEL SEPARATOR
+200E..200F ; Format # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+202A..202E ; Format # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+2060..2064 ; Format # Cf [5] WORD JOINER..INVISIBLE PLUS
+2066..206F ; Format # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+FEFF ; Format # Cf ZERO WIDTH NO-BREAK SPACE
+FFF9..FFFB ; Format # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+110BD ; Format # Cf KAITHI NUMBER SIGN
+110CD ; Format # Cf KAITHI NUMBER SIGN ABOVE
+13430..13438 ; Format # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+1BCA0..1BCA3 ; Format # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1D173..1D17A ; Format # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+E0001 ; Format # Cf LANGUAGE TAG
+
+# Total code points: 62
+
+# ================================================
+
+3031..3035 ; Katakana # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+309B..309C ; Katakana # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+30A0 ; Katakana # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1..30FA ; Katakana # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FC..30FE ; Katakana # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+30FF ; Katakana # Lo KATAKANA DIGRAPH KOTO
+31F0..31FF ; Katakana # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+32D0..32FE ; Katakana # So [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO
+3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
+FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; Katakana # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
+1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
+
+# Total code points: 314
+
+# ================================================
+
+0041..005A ; ALetter # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+0061..007A ; ALetter # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+00AA ; ALetter # Lo FEMININE ORDINAL INDICATOR
+00B5 ; ALetter # L& MICRO SIGN
+00BA ; ALetter # Lo MASCULINE ORDINAL INDICATOR
+00C0..00D6 ; ALetter # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D8..00F6 ; ALetter # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
+00F8..01BA ; ALetter # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB ; ALetter # Lo LATIN LETTER TWO WITH STROKE
+01BC..01BF ; ALetter # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3 ; ALetter # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..0293 ; ALetter # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
+0294 ; ALetter # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF ; ALetter # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02C1 ; ALetter # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5 ; ALetter # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6..02D1 ; ALetter # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7 ; ALetter # Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02DE..02DF ; ALetter # Sk [2] MODIFIER LETTER RHOTIC HOOK..MODIFIER LETTER CROSS ACCENT
+02E0..02E4 ; ALetter # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02EB ; ALetter # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; ALetter # Lm MODIFIER LETTER VOICING
+02ED ; ALetter # Sk MODIFIER LETTER UNASPIRATED
+02EE ; ALetter # Lm MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF ; ALetter # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0370..0373 ; ALetter # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0374 ; ALetter # Lm GREEK NUMERAL SIGN
+0376..0377 ; ALetter # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A ; ALetter # Lm GREEK YPOGEGRAMMENI
+037B..037D ; ALetter # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037F ; ALetter # L& GREEK CAPITAL LETTER YOT
+0386 ; ALetter # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0388..038A ; ALetter # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; ALetter # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..03A1 ; ALetter # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
+03A3..03F5 ; ALetter # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
+03F7..0481 ; ALetter # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
+048A..052F ; ALetter # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER
+0531..0556 ; ALetter # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559 ; ALetter # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055C ; ALetter # Po [3] ARMENIAN APOSTROPHE..ARMENIAN EXCLAMATION MARK
+055E ; ALetter # Po ARMENIAN QUESTION MARK
+0560..0588 ; ALetter # L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
+058A ; ALetter # Pd ARMENIAN HYPHEN
+05F3 ; ALetter # Po HEBREW PUNCTUATION GERESH
+0620..063F ; ALetter # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640 ; ALetter # Lm ARABIC TATWEEL
+0641..064A ; ALetter # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+066E..066F ; ALetter # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0671..06D3 ; ALetter # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D5 ; ALetter # Lo ARABIC LETTER AE
+06E5..06E6 ; ALetter # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06EE..06EF ; ALetter # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06FA..06FC ; ALetter # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FF ; ALetter # Lo ARABIC LETTER HEH WITH INVERTED V
+0710 ; ALetter # Lo SYRIAC LETTER ALAPH
+0712..072F ; ALetter # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+074D..07A5 ; ALetter # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
+07B1 ; ALetter # Lo THAANA LETTER NAA
+07CA..07EA ; ALetter # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07F4..07F5 ; ALetter # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07FA ; ALetter # Lm NKO LAJANYALAN
+0800..0815 ; ALetter # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
+081A ; ALetter # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+0824 ; ALetter # Lm SAMARITAN MODIFIER LETTER SHORT A
+0828 ; ALetter # Lm SAMARITAN MODIFIER LETTER I
+0840..0858 ; ALetter # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+0860..086A ; ALetter # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
+08A0..08B4 ; ALetter # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
+08B6..08C7 ; ALetter # Lo [18] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
+0904..0939 ; ALetter # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093D ; ALetter # Lo DEVANAGARI SIGN AVAGRAHA
+0950 ; ALetter # Lo DEVANAGARI OM
+0958..0961 ; ALetter # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0971 ; ALetter # Lm DEVANAGARI SIGN HIGH SPACING DOT
+0972..0980 ; ALetter # Lo [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI
+0985..098C ; ALetter # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990 ; ALetter # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8 ; ALetter # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0 ; ALetter # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2 ; ALetter # Lo BENGALI LETTER LA
+09B6..09B9 ; ALetter # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BD ; ALetter # Lo BENGALI SIGN AVAGRAHA
+09CE ; ALetter # Lo BENGALI LETTER KHANDA TA
+09DC..09DD ; ALetter # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1 ; ALetter # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09F0..09F1 ; ALetter # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09FC ; ALetter # Lo BENGALI LETTER VEDIC ANUSVARA
+0A05..0A0A ; ALetter # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10 ; ALetter # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28 ; ALetter # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30 ; ALetter # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33 ; ALetter # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36 ; ALetter # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39 ; ALetter # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A59..0A5C ; ALetter # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E ; ALetter # Lo GURMUKHI LETTER FA
+0A72..0A74 ; ALetter # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A85..0A8D ; ALetter # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91 ; ALetter # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8 ; ALetter # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0 ; ALetter # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3 ; ALetter # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9 ; ALetter # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABD ; ALetter # Lo GUJARATI SIGN AVAGRAHA
+0AD0 ; ALetter # Lo GUJARATI OM
+0AE0..0AE1 ; ALetter # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AF9 ; ALetter # Lo GUJARATI LETTER ZHA
+0B05..0B0C ; ALetter # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10 ; ALetter # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28 ; ALetter # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30 ; ALetter # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33 ; ALetter # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39 ; ALetter # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3D ; ALetter # Lo ORIYA SIGN AVAGRAHA
+0B5C..0B5D ; ALetter # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61 ; ALetter # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B71 ; ALetter # Lo ORIYA LETTER WA
+0B83 ; ALetter # Lo TAMIL SIGN VISARGA
+0B85..0B8A ; ALetter # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90 ; ALetter # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95 ; ALetter # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A ; ALetter # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C ; ALetter # Lo TAMIL LETTER JA
+0B9E..0B9F ; ALetter # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4 ; ALetter # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA ; ALetter # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9 ; ALetter # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BD0 ; ALetter # Lo TAMIL OM
+0C05..0C0C ; ALetter # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10 ; ALetter # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28 ; ALetter # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C39 ; ALetter # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3D ; ALetter # Lo TELUGU SIGN AVAGRAHA
+0C58..0C5A ; ALetter # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C60..0C61 ; ALetter # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C80 ; ALetter # Lo KANNADA SIGN SPACING CANDRABINDU
+0C85..0C8C ; ALetter # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90 ; ALetter # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8 ; ALetter # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3 ; ALetter # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9 ; ALetter # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBD ; ALetter # Lo KANNADA SIGN AVAGRAHA
+0CDE ; ALetter # Lo KANNADA LETTER FA
+0CE0..0CE1 ; ALetter # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CF1..0CF2 ; ALetter # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D04..0D0C ; ALetter # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
+0D0E..0D10 ; ALetter # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D3A ; ALetter # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+0D3D ; ALetter # Lo MALAYALAM SIGN AVAGRAHA
+0D4E ; ALetter # Lo MALAYALAM LETTER DOT REPH
+0D54..0D56 ; ALetter # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
+0D5F..0D61 ; ALetter # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
+0D7A..0D7F ; ALetter # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D85..0D96 ; ALetter # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1 ; ALetter # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB ; ALetter # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD ; ALetter # Lo SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6 ; ALetter # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0F00 ; ALetter # Lo TIBETAN SYLLABLE OM
+0F40..0F47 ; ALetter # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C ; ALetter # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F88..0F8C ; ALetter # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
+10A0..10C5 ; ALetter # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7 ; ALetter # L& GEORGIAN CAPITAL LETTER YN
+10CD ; ALetter # L& GEORGIAN CAPITAL LETTER AEN
+10D0..10FA ; ALetter # L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FC ; ALetter # Lm MODIFIER LETTER GEORGIAN NAR
+10FD..10FF ; ALetter # L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100..1248 ; ALetter # Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA
+124A..124D ; ALetter # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256 ; ALetter # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258 ; ALetter # Lo ETHIOPIC SYLLABLE QHWA
+125A..125D ; ALetter # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288 ; ALetter # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D ; ALetter # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0 ; ALetter # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5 ; ALetter # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE ; ALetter # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0 ; ALetter # Lo ETHIOPIC SYLLABLE KXWA
+12C2..12C5 ; ALetter # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6 ; ALetter # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310 ; ALetter # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315 ; ALetter # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A ; ALetter # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+1380..138F ; ALetter # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+13A0..13F5 ; ALetter # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
+13F8..13FD ; ALetter # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
+1401..166C ; ALetter # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166F..167F ; ALetter # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1681..169A ; ALetter # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+16A0..16EA ; ALetter # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EE..16F0 ; ALetter # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; ALetter # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+1700..170C ; ALetter # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
+170E..1711 ; ALetter # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1720..1731 ; ALetter # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1740..1751 ; ALetter # Lo [18] BUHID LETTER A..BUHID LETTER HA
+1760..176C ; ALetter # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770 ; ALetter # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1820..1842 ; ALetter # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843 ; ALetter # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1878 ; ALetter # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
+1880..1884 ; ALetter # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1887..18A8 ; ALetter # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18AA ; ALetter # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+18B0..18F5 ; ALetter # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+1900..191E ; ALetter # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+1A00..1A16 ; ALetter # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1B05..1B33 ; ALetter # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B45..1B4B ; ALetter # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B83..1BA0 ; ALetter # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BAE..1BAF ; ALetter # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BBA..1BE5 ; ALetter # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U
+1C00..1C23 ; ALetter # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C4D..1C4F ; ALetter # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C5A..1C77 ; ALetter # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D ; ALetter # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C80..1C88 ; ALetter # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
+1C90..1CBA ; ALetter # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBD..1CBF ; ALetter # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+1CE9..1CEC ; ALetter # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CEE..1CF3 ; ALetter # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF5..1CF6 ; ALetter # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CFA ; ALetter # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
+1D00..1D2B ; ALetter # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C..1D6A ; ALetter # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B..1D77 ; ALetter # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78 ; ALetter # Lm MODIFIER LETTER CYRILLIC EN
+1D79..1D9A ; ALetter # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBF ; ALetter # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1E00..1F15 ; ALetter # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; ALetter # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; ALetter # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; ALetter # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; ALetter # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; ALetter # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; ALetter # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; ALetter # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; ALetter # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; ALetter # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; ALetter # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBE ; ALetter # L& GREEK PROSGEGRAMMENI
+1FC2..1FC4 ; ALetter # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; ALetter # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FD0..1FD3 ; ALetter # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; ALetter # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FE0..1FEC ; ALetter # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FF2..1FF4 ; ALetter # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; ALetter # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+2071 ; ALetter # Lm SUPERSCRIPT LATIN SMALL LETTER I
+207F ; ALetter # Lm SUPERSCRIPT LATIN SMALL LETTER N
+2090..209C ; ALetter # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+2102 ; ALetter # L& DOUBLE-STRUCK CAPITAL C
+2107 ; ALetter # L& EULER CONSTANT
+210A..2113 ; ALetter # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
+2115 ; ALetter # L& DOUBLE-STRUCK CAPITAL N
+2119..211D ; ALetter # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+2124 ; ALetter # L& DOUBLE-STRUCK CAPITAL Z
+2126 ; ALetter # L& OHM SIGN
+2128 ; ALetter # L& BLACK-LETTER CAPITAL Z
+212A..212D ; ALetter # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
+212F..2134 ; ALetter # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
+2135..2138 ; ALetter # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; ALetter # L& INFORMATION SOURCE
+213C..213F ; ALetter # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2145..2149 ; ALetter # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214E ; ALetter # L& TURNED SMALL F
+2160..2182 ; ALetter # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
+2183..2184 ; ALetter # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188 ; ALetter # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+24B6..24E9 ; ALetter # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
+2C00..2C2E ; ALetter # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C30..2C5E ; ALetter # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C60..2C7B ; ALetter # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D ; ALetter # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+2C7E..2CE4 ; ALetter # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI
+2CEB..2CEE ; ALetter # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CF2..2CF3 ; ALetter # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
+2D00..2D25 ; ALetter # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27 ; ALetter # L& GEORGIAN SMALL LETTER YN
+2D2D ; ALetter # L& GEORGIAN SMALL LETTER AEN
+2D30..2D67 ; ALetter # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D6F ; ALetter # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D80..2D96 ; ALetter # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6 ; ALetter # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE ; ALetter # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6 ; ALetter # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE ; ALetter # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6 ; ALetter # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE ; ALetter # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6 ; ALetter # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE ; ALetter # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2E2F ; ALetter # Lm VERTICAL TILDE
+3005 ; ALetter # Lm IDEOGRAPHIC ITERATION MARK
+303B ; ALetter # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
+303C ; ALetter # Lo MASU MARK
+3105..312F ; ALetter # Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
+3131..318E ; ALetter # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+31A0..31BF ; ALetter # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
+A000..A014 ; ALetter # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+A015 ; ALetter # Lm YI SYLLABLE WU
+A016..A48C ; ALetter # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A4D0..A4F7 ; ALetter # Lo [40] LISU LETTER BA..LISU LETTER OE
+A4F8..A4FD ; ALetter # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
+A500..A60B ; ALetter # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C ; ALetter # Lm VAI SYLLABLE LENGTHENER
+A610..A61F ; ALetter # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A62A..A62B ; ALetter # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A640..A66D ; ALetter # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E ; ALetter # Lo CYRILLIC LETTER MULTIOCULAR O
+A67F ; ALetter # Lm CYRILLIC PAYEROK
+A680..A69B ; ALetter # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D ; ALetter # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A6A0..A6E5 ; ALetter # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF ; ALetter # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A708..A716 ; ALetter # Sk [15] MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F ; ALetter # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; ALetter # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722..A76F ; ALetter # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770 ; ALetter # Lm MODIFIER LETTER US
+A771..A787 ; ALetter # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A788 ; ALetter # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; ALetter # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B..A78E ; ALetter # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+A78F ; ALetter # Lo LATIN LETTER SINOLOGICAL DOT
+A790..A7BF ; ALetter # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
+A7C2..A7CA ; ALetter # L& [9] LATIN CAPITAL LETTER ANGLICANA W..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7F5..A7F6 ; ALetter # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
+A7F7 ; ALetter # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8..A7F9 ; ALetter # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA ; ALetter # L& LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A801 ; ALetter # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
+A803..A805 ; ALetter # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A807..A80A ; ALetter # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80C..A822 ; ALetter # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A840..A873 ; ALetter # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A882..A8B3 ; ALetter # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8F2..A8F7 ; ALetter # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8FB ; ALetter # Lo DEVANAGARI HEADSTROKE
+A8FD..A8FE ; ALetter # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
+A90A..A925 ; ALetter # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A930..A946 ; ALetter # Lo [23] REJANG LETTER KA..REJANG LETTER A
+A960..A97C ; ALetter # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A984..A9B2 ; ALetter # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9CF ; ALetter # Lm JAVANESE PANGRANGKEP
+AA00..AA28 ; ALetter # Lo [41] CHAM LETTER A..CHAM LETTER HA
+AA40..AA42 ; ALetter # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA44..AA4B ; ALetter # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AAE0..AAEA ; ALetter # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAF2 ; ALetter # Lo MEETEI MAYEK ANJI
+AAF3..AAF4 ; ALetter # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AB01..AB06 ; ALetter # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB09..AB0E ; ALetter # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB11..AB16 ; ALetter # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB20..AB26 ; ALetter # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB28..AB2E ; ALetter # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A ; ALetter # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B ; ALetter # Sk MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F ; ALetter # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB60..AB68 ; ALetter # L& [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69 ; ALetter # Lm MODIFIER LETTER SMALL TURNED W
+AB70..ABBF ; ALetter # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
+ABC0..ABE2 ; ALetter # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
+AC00..D7A3 ; ALetter # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+D7B0..D7C6 ; ALetter # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7CB..D7FB ; ALetter # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+FB00..FB06 ; ALetter # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; ALetter # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB50..FBB1 ; ALetter # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3..FD3D ; ALetter # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50..FD8F ; ALetter # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; ALetter # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; ALetter # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FE70..FE74 ; ALetter # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; ALetter # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FF21..FF3A ; ALetter # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF41..FF5A ; ALetter # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FFA0..FFBE ; ALetter # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; ALetter # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; ALetter # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; ALetter # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+10000..1000B ; ALetter # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026 ; ALetter # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A ; ALetter # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D ; ALetter # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D ; ALetter # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D ; ALetter # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA ; ALetter # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10140..10174 ; ALetter # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10280..1029C ; ALetter # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0 ; ALetter # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
+10300..1031F ; ALetter # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+1032D..10340 ; ALetter # Lo [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA
+10341 ; ALetter # Nl GOTHIC LETTER NINETY
+10342..10349 ; ALetter # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A ; ALetter # Nl GOTHIC LETTER NINE HUNDRED
+10350..10375 ; ALetter # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10380..1039D ; ALetter # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+103A0..103C3 ; ALetter # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF ; ALetter # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D1..103D5 ; ALetter # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+10400..1044F ; ALetter # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10450..1049D ; ALetter # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+104B0..104D3 ; ALetter # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
+104D8..104FB ; ALetter # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+10500..10527 ; ALetter # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563 ; ALetter # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10600..10736 ; ALetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; ALetter # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; ALetter # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10800..10805 ; ALetter # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808 ; ALetter # Lo CYPRIOT SYLLABLE JO
+1080A..10835 ; ALetter # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838 ; ALetter # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C ; ALetter # Lo CYPRIOT SYLLABLE ZA
+1083F..10855 ; ALetter # Lo [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW
+10860..10876 ; ALetter # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10880..1089E ; ALetter # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108E0..108F2 ; ALetter # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
+108F4..108F5 ; ALetter # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
+10900..10915 ; ALetter # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10920..10939 ; ALetter # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
+10980..109B7 ; ALetter # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
+109BE..109BF ; ALetter # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+10A00 ; ALetter # Lo KHAROSHTHI LETTER A
+10A10..10A13 ; ALetter # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17 ; ALetter # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A35 ; ALetter # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
+10A60..10A7C ; ALetter # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A80..10A9C ; ALetter # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10AC0..10AC7 ; ALetter # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC9..10AE4 ; ALetter # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10B00..10B35 ; ALetter # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
+10B40..10B55 ; ALetter # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B60..10B72 ; ALetter # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80..10B91 ; ALetter # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10C00..10C48 ; ALetter # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10C80..10CB2 ; ALetter # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+10CC0..10CF2 ; ALetter # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+10D00..10D23 ; ALetter # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
+10E80..10EA9 ; ALetter # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
+10EB0..10EB1 ; ALetter # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10F00..10F1C ; ALetter # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+10F27 ; ALetter # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
+10F30..10F45 ; ALetter # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10FB0..10FC4 ; ALetter # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
+10FE0..10FF6 ; ALetter # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
+11003..11037 ; ALetter # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+11083..110AF ; ALetter # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
+110D0..110E8 ; ALetter # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+11103..11126 ; ALetter # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11144 ; ALetter # Lo CHAKMA LETTER LHAA
+11147 ; ALetter # Lo CHAKMA LETTER VAA
+11150..11172 ; ALetter # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11176 ; ALetter # Lo MAHAJANI LIGATURE SHRI
+11183..111B2 ; ALetter # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
+111C1..111C4 ; ALetter # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111DA ; ALetter # Lo SHARADA EKAM
+111DC ; ALetter # Lo SHARADA HEADSTROKE
+11200..11211 ; ALetter # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B ; ALetter # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+11280..11286 ; ALetter # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
+11288 ; ALetter # Lo MULTANI LETTER GHA
+1128A..1128D ; ALetter # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
+1128F..1129D ; ALetter # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA
+1129F..112A8 ; ALetter # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA
+112B0..112DE ; ALetter # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+11305..1130C ; ALetter # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; ALetter # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; ALetter # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; ALetter # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; ALetter # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; ALetter # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133D ; ALetter # Lo GRANTHA SIGN AVAGRAHA
+11350 ; ALetter # Lo GRANTHA OM
+1135D..11361 ; ALetter # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11400..11434 ; ALetter # Lo [53] NEWA LETTER A..NEWA LETTER HA
+11447..1144A ; ALetter # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+1145F..11461 ; ALetter # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
+11480..114AF ; ALetter # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114C4..114C5 ; ALetter # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C7 ; ALetter # Lo TIRHUTA OM
+11580..115AE ; ALetter # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115D8..115DB ; ALetter # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
+11600..1162F ; ALetter # Lo [48] MODI LETTER A..MODI LETTER LLA
+11644 ; ALetter # Lo MODI SIGN HUVA
+11680..116AA ; ALetter # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
+116B8 ; ALetter # Lo TAKRI LETTER ARCHAIC KHA
+11800..1182B ; ALetter # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
+118A0..118DF ; ALetter # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118FF..11906 ; ALetter # Lo [8] WARANG CITI OM..DIVES AKURU LETTER E
+11909 ; ALetter # Lo DIVES AKURU LETTER O
+1190C..11913 ; ALetter # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
+11915..11916 ; ALetter # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
+11918..1192F ; ALetter # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
+1193F ; ALetter # Lo DIVES AKURU PREFIXED NASAL SIGN
+11941 ; ALetter # Lo DIVES AKURU INITIAL RA
+119A0..119A7 ; ALetter # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; ALetter # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119E1 ; ALetter # Lo NANDINAGARI SIGN AVAGRAHA
+119E3 ; ALetter # Lo NANDINAGARI HEADSTROKE
+11A00 ; ALetter # Lo ZANABAZAR SQUARE LETTER A
+11A0B..11A32 ; ALetter # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
+11A3A ; ALetter # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
+11A50 ; ALetter # Lo SOYOMBO LETTER A
+11A5C..11A89 ; ALetter # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A9D ; ALetter # Lo SOYOMBO MARK PLUTA
+11AC0..11AF8 ; ALetter # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11C00..11C08 ; ALetter # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
+11C0A..11C2E ; ALetter # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
+11C40 ; ALetter # Lo BHAIKSUKI SIGN AVAGRAHA
+11C72..11C8F ; ALetter # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A
+11D00..11D06 ; ALetter # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
+11D08..11D09 ; ALetter # Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
+11D0B..11D30 ; ALetter # Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
+11D46 ; ALetter # Lo MASARAM GONDI REPHA
+11D60..11D65 ; ALetter # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
+11D67..11D68 ; ALetter # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
+11D6A..11D89 ; ALetter # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
+11D98 ; ALetter # Lo GUNJALA GONDI OM
+11EE0..11EF2 ; ALetter # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11FB0 ; ALetter # Lo LISU LETTER YHA
+12000..12399 ; ALetter # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
+12400..1246E ; ALetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12480..12543 ; ALetter # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+13000..1342E ; ALetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+14400..14646 ; ALetter # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+16800..16A38 ; ALetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E ; ALetter # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16AD0..16AED ; ALetter # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16B00..16B2F ; ALetter # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B40..16B43 ; ALetter # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B63..16B77 ; ALetter # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; ALetter # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16E40..16E7F ; ALetter # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+16F00..16F4A ; ALetter # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F50 ; ALetter # Lo MIAO LETTER NASALIZATION
+16F93..16F9F ; ALetter # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+16FE0..16FE1 ; ALetter # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
+16FE3 ; ALetter # Lm OLD CHINESE ITERATION MARK
+1BC00..1BC6A ; ALetter # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C ; ALetter # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; ALetter # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99 ; ALetter # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1D400..1D454 ; ALetter # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C ; ALetter # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; ALetter # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; ALetter # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; ALetter # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; ALetter # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; ALetter # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; ALetter # L& MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; ALetter # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505 ; ALetter # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; ALetter # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; ALetter # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; ALetter # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539 ; ALetter # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; ALetter # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; ALetter # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; ALetter # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; ALetter # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; ALetter # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; ALetter # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C2..1D6DA ; ALetter # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DC..1D6FA ; ALetter # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FC..1D714 ; ALetter # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D716..1D734 ; ALetter # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D736..1D74E ; ALetter # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D750..1D76E ; ALetter # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D770..1D788 ; ALetter # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D78A..1D7A8 ; ALetter # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7AA..1D7C2 ; ALetter # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C4..1D7CB ; ALetter # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1E100..1E12C ; ALetter # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E137..1E13D ; ALetter # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E14E ; ALetter # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E2C0..1E2EB ; ALetter # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E800..1E8C4 ; ALetter # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E900..1E943 ; ALetter # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
+1E94B ; ALetter # Lm ADLAM NASALIZATION MARK
+1EE00..1EE03 ; ALetter # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F ; ALetter # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22 ; ALetter # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24 ; ALetter # Lo ARABIC MATHEMATICAL INITIAL HEH
+1EE27 ; ALetter # Lo ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32 ; ALetter # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37 ; ALetter # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39 ; ALetter # Lo ARABIC MATHEMATICAL INITIAL DAD
+1EE3B ; ALetter # Lo ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42 ; ALetter # Lo ARABIC MATHEMATICAL TAILED JEEM
+1EE47 ; ALetter # Lo ARABIC MATHEMATICAL TAILED HAH
+1EE49 ; ALetter # Lo ARABIC MATHEMATICAL TAILED YEH
+1EE4B ; ALetter # Lo ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F ; ALetter # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52 ; ALetter # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54 ; ALetter # Lo ARABIC MATHEMATICAL TAILED SHEEN
+1EE57 ; ALetter # Lo ARABIC MATHEMATICAL TAILED KHAH
+1EE59 ; ALetter # Lo ARABIC MATHEMATICAL TAILED DAD
+1EE5B ; ALetter # Lo ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D ; ALetter # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F ; ALetter # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62 ; ALetter # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64 ; ALetter # Lo ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A ; ALetter # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72 ; ALetter # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77 ; ALetter # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C ; ALetter # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E ; ALetter # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89 ; ALetter # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B ; ALetter # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3 ; ALetter # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9 ; ALetter # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB ; ALetter # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1F130..1F149 ; ALetter # So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
+1F150..1F169 ; ALetter # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F170..1F189 ; ALetter # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
+
+# Total code points: 28854
+
+# ================================================
+
+003A ; MidLetter # Po COLON
+00B7 ; MidLetter # Po MIDDLE DOT
+0387 ; MidLetter # Po GREEK ANO TELEIA
+055F ; MidLetter # Po ARMENIAN ABBREVIATION MARK
+05F4 ; MidLetter # Po HEBREW PUNCTUATION GERSHAYIM
+2027 ; MidLetter # Po HYPHENATION POINT
+FE13 ; MidLetter # Po PRESENTATION FORM FOR VERTICAL COLON
+FE55 ; MidLetter # Po SMALL COLON
+FF1A ; MidLetter # Po FULLWIDTH COLON
+
+# Total code points: 9
+
+# ================================================
+
+002C ; MidNum # Po COMMA
+003B ; MidNum # Po SEMICOLON
+037E ; MidNum # Po GREEK QUESTION MARK
+0589 ; MidNum # Po ARMENIAN FULL STOP
+060C..060D ; MidNum # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+066C ; MidNum # Po ARABIC THOUSANDS SEPARATOR
+07F8 ; MidNum # Po NKO COMMA
+2044 ; MidNum # Sm FRACTION SLASH
+FE10 ; MidNum # Po PRESENTATION FORM FOR VERTICAL COMMA
+FE14 ; MidNum # Po PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE50 ; MidNum # Po SMALL COMMA
+FE54 ; MidNum # Po SMALL SEMICOLON
+FF0C ; MidNum # Po FULLWIDTH COMMA
+FF1B ; MidNum # Po FULLWIDTH SEMICOLON
+
+# Total code points: 15
+
+# ================================================
+
+002E ; MidNumLet # Po FULL STOP
+2018 ; MidNumLet # Pi LEFT SINGLE QUOTATION MARK
+2019 ; MidNumLet # Pf RIGHT SINGLE QUOTATION MARK
+2024 ; MidNumLet # Po ONE DOT LEADER
+FE52 ; MidNumLet # Po SMALL FULL STOP
+FF07 ; MidNumLet # Po FULLWIDTH APOSTROPHE
+FF0E ; MidNumLet # Po FULLWIDTH FULL STOP
+
+# Total code points: 7
+
+# ================================================
+
+0030..0039 ; Numeric # Nd [10] DIGIT ZERO..DIGIT NINE
+0660..0669 ; Numeric # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066B ; Numeric # Po ARABIC DECIMAL SEPARATOR
+06F0..06F9 ; Numeric # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+07C0..07C9 ; Numeric # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+0966..096F ; Numeric # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+09E6..09EF ; Numeric # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+0A66..0A6F ; Numeric # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0AE6..0AEF ; Numeric # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0B66..0B6F ; Numeric # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0BE6..0BEF ; Numeric # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0C66..0C6F ; Numeric # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0CE6..0CEF ; Numeric # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0D66..0D6F ; Numeric # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0DE6..0DEF ; Numeric # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0E50..0E59 ; Numeric # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0ED0..0ED9 ; Numeric # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0F20..0F29 ; Numeric # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+1040..1049 ; Numeric # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+1090..1099 ; Numeric # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+17E0..17E9 ; Numeric # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+1810..1819 ; Numeric # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1946..194F ; Numeric # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+19D0..19D9 ; Numeric # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+1A80..1A89 ; Numeric # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+1A90..1A99 ; Numeric # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1B50..1B59 ; Numeric # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1BB0..1BB9 ; Numeric # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1C40..1C49 ; Numeric # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C50..1C59 ; Numeric # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+A620..A629 ; Numeric # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A8D0..A8D9 ; Numeric # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A900..A909 ; Numeric # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A9D0..A9D9 ; Numeric # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9F0..A9F9 ; Numeric # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+AA50..AA59 ; Numeric # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+ABF0..ABF9 ; Numeric # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+104A0..104A9 ; Numeric # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10D30..10D39 ; Numeric # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+11066..1106F ; Numeric # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+110F0..110F9 ; Numeric # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+11136..1113F ; Numeric # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+111D0..111D9 ; Numeric # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+112F0..112F9 ; Numeric # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11450..11459 ; Numeric # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
+114D0..114D9 ; Numeric # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11650..11659 ; Numeric # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
+116C0..116C9 ; Numeric # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+11730..11739 ; Numeric # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
+118E0..118E9 ; Numeric # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+11950..11959 ; Numeric # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
+11C50..11C59 ; Numeric # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
+11D50..11D59 ; Numeric # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
+11DA0..11DA9 ; Numeric # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+16A60..16A69 ; Numeric # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16B50..16B59 ; Numeric # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+1D7CE..1D7FF ; Numeric # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E140..1E149 ; Numeric # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E2F0..1E2F9 ; Numeric # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E950..1E959 ; Numeric # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
+1FBF0..1FBF9 ; Numeric # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
+
+# Total code points: 651
+
+# ================================================
+
+005F ; ExtendNumLet # Pc LOW LINE
+202F ; ExtendNumLet # Zs NARROW NO-BREAK SPACE
+203F..2040 ; ExtendNumLet # Pc [2] UNDERTIE..CHARACTER TIE
+2054 ; ExtendNumLet # Pc INVERTED UNDERTIE
+FE33..FE34 ; ExtendNumLet # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE4D..FE4F ; ExtendNumLet # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FF3F ; ExtendNumLet # Pc FULLWIDTH LOW LINE
+
+# Total code points: 11
+
+# ================================================
+
+200D ; ZWJ # Cf ZERO WIDTH JOINER
+
+# Total code points: 1
+
+# ================================================
+
+0020 ; WSegSpace # Zs SPACE
+1680 ; WSegSpace # Zs OGHAM SPACE MARK
+2000..2006 ; WSegSpace # Zs [7] EN QUAD..SIX-PER-EM SPACE
+2008..200A ; WSegSpace # Zs [3] PUNCTUATION SPACE..HAIR SPACE
+205F ; WSegSpace # Zs MEDIUM MATHEMATICAL SPACE
+3000 ; WSegSpace # Zs IDEOGRAPHIC SPACE
+
+# Total code points: 14
+
+# EOF
diff --git a/macros/generic/unicode-data/load-unicode-data.tex b/macros/generic/unicode-data/load-unicode-data.tex
index 662dfe975f..abdc6a034b 100644
--- a/macros/generic/unicode-data/load-unicode-data.tex
+++ b/macros/generic/unicode-data/load-unicode-data.tex
@@ -57,7 +57,7 @@
\catcode`\^=7 %
\newlinechar=`\^^J %
\message{^^J}%
- \message{load-unicode-data.tex v1.13 (2020-04-15)^^J}%
+ \message{load-unicode-data.tex v1.14 (2020-10-24)^^J}%
\message{Reading Unicode data^^J}%
% The first stage of parsing is dealing with the fact that there are lots of
% data items separated by |;|. Of those, only a few are needed so they are
diff --git a/macros/generic/unicode-data/load-unicode-math-classes.tex b/macros/generic/unicode-data/load-unicode-math-classes.tex
index 0f897dd187..e3734146fe 100644
--- a/macros/generic/unicode-data/load-unicode-math-classes.tex
+++ b/macros/generic/unicode-data/load-unicode-math-classes.tex
@@ -48,7 +48,7 @@
\catcode`\^=7 %
\newlinechar=`\^^J %
\message{^^J}%
- \message{load-unicode-math-classes.tex v1.13 (2020-04-15)^^J}%
+ \message{load-unicode-math-classes.tex v1.14 (2020-10-24)^^J}%
\message{Reading math class data^^J}%
% The parser for data lines starts by skipping any comments (which start with
% a |#| and which will be category code~$12$).
diff --git a/macros/generic/unicode-data/load-unicode-xetex-classes.tex b/macros/generic/unicode-data/load-unicode-xetex-classes.tex
index 33bbd8ab30..5a088700f6 100644
--- a/macros/generic/unicode-data/load-unicode-xetex-classes.tex
+++ b/macros/generic/unicode-data/load-unicode-xetex-classes.tex
@@ -64,7 +64,7 @@
\catcode`\^=7 %
\newlinechar=`\^^J %
\message{^^J}%
- \message{load-unicode-xetex-classes.tex v1.13 (2020-04-15)^^J}%
+ \message{load-unicode-xetex-classes.tex v1.14 (2020-10-24)^^J}%
\message{Reading Unicode east Asian character class data^^J}%
% A string version of |#| will be needed to look for comment lines in the
% source. Once that is done proper parsing can begin.
diff --git a/macros/latex/base/README.md b/macros/latex/base/README.md
index f10a94deee..d566ca97ce 100644
--- a/macros/latex/base/README.md
+++ b/macros/latex/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2020-10-01 patch level 1
+Release 2020-10-01 patch level 2
Overview
--------
diff --git a/macros/latex/base/alltt.pdf b/macros/latex/base/alltt.pdf
index 3e1905c11e..dce36a436c 100644
--- a/macros/latex/base/alltt.pdf
+++ b/macros/latex/base/alltt.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.pdf b/macros/latex/base/cfgguide.pdf
index 570ac543f2..2f9e6e9974 100644
--- a/macros/latex/base/cfgguide.pdf
+++ b/macros/latex/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex/base/changes.txt b/macros/latex/base/changes.txt
index 36a22af10e..29f3d2937f 100644
--- a/macros/latex/base/changes.txt
+++ b/macros/latex/base/changes.txt
@@ -11,6 +11,25 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2020-10-01 PL 2 Release
+#########################
+
+2020-10-23 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltmiscen.dtx:
+ Make 'enddocument/afteraux' a one-time hook (gh/418).
+
+2020-10-18 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltclass.dtx:
+ Fix passing options to class/package in \input@path (gh/414).
+
+2020-10-11 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltclass.dtx:
+ Reset \@currpkg@reqd after loading a package file (gh/408).
+
+#########################
# 2020-10-01 PL 1 Release
#########################
diff --git a/macros/latex/base/classes.pdf b/macros/latex/base/classes.pdf
index 4cc983e297..b0be55c53f 100644
--- a/macros/latex/base/classes.pdf
+++ b/macros/latex/base/classes.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.pdf b/macros/latex/base/clsguide.pdf
index 49b8cc76a4..1a7e752cc3 100644
--- a/macros/latex/base/clsguide.pdf
+++ b/macros/latex/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex/base/cmfonts.pdf b/macros/latex/base/cmfonts.pdf
index ff673d73bd..c3502760ce 100644
--- a/macros/latex/base/cmfonts.pdf
+++ b/macros/latex/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.pdf b/macros/latex/base/cyrguide.pdf
index ee3a39c730..1331bbc54f 100644
--- a/macros/latex/base/cyrguide.pdf
+++ b/macros/latex/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex/base/doc.pdf b/macros/latex/base/doc.pdf
index dc66e7df02..dcb78001b3 100644
--- a/macros/latex/base/doc.pdf
+++ b/macros/latex/base/doc.pdf
Binary files differ
diff --git a/macros/latex/base/docstrip.pdf b/macros/latex/base/docstrip.pdf
index 766592f1f9..aeda25af00 100644
--- a/macros/latex/base/docstrip.pdf
+++ b/macros/latex/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex/base/encguide.pdf b/macros/latex/base/encguide.pdf
index 6ca1541239..286a167553 100644
--- a/macros/latex/base/encguide.pdf
+++ b/macros/latex/base/encguide.pdf
Binary files differ
diff --git a/macros/latex/base/exscale.pdf b/macros/latex/base/exscale.pdf
index 69727ba012..8d33cdefab 100644
--- a/macros/latex/base/exscale.pdf
+++ b/macros/latex/base/exscale.pdf
Binary files differ
diff --git a/macros/latex/base/fix-cm.pdf b/macros/latex/base/fix-cm.pdf
index bc778e9a23..07ff74d687 100644
--- a/macros/latex/base/fix-cm.pdf
+++ b/macros/latex/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.pdf b/macros/latex/base/fntguide.pdf
index c89713ed12..b3824b59a1 100644
--- a/macros/latex/base/fntguide.pdf
+++ b/macros/latex/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex/base/graphpap.pdf b/macros/latex/base/graphpap.pdf
index e417f74dde..8ebd4c91d3 100644
--- a/macros/latex/base/graphpap.pdf
+++ b/macros/latex/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex/base/ifthen.pdf b/macros/latex/base/ifthen.pdf
index a6be5d449d..6218e4883a 100644
--- a/macros/latex/base/ifthen.pdf
+++ b/macros/latex/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex/base/inputenc.pdf b/macros/latex/base/inputenc.pdf
index 76ed961588..0ee0cdd0ff 100644
--- a/macros/latex/base/inputenc.pdf
+++ b/macros/latex/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex/base/latexchanges.pdf b/macros/latex/base/latexchanges.pdf
index d5c1ff3e85..d78a1e3b5a 100644
--- a/macros/latex/base/latexchanges.pdf
+++ b/macros/latex/base/latexchanges.pdf
Binary files differ
diff --git a/macros/latex/base/latexrelease.pdf b/macros/latex/base/latexrelease.pdf
index 5b8221881f..f458d1a97c 100644
--- a/macros/latex/base/latexrelease.pdf
+++ b/macros/latex/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex/base/latexsym.pdf b/macros/latex/base/latexsym.pdf
index 82bad4ba5c..88db5ce701 100644
--- a/macros/latex/base/latexsym.pdf
+++ b/macros/latex/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex/base/lb2.pdf b/macros/latex/base/lb2.pdf
index a5f2bd43f0..4885ef5646 100644
--- a/macros/latex/base/lb2.pdf
+++ b/macros/latex/base/lb2.pdf
Binary files differ
diff --git a/macros/latex/base/letter.pdf b/macros/latex/base/letter.pdf
index ae5549b6d5..85986ca947 100644
--- a/macros/latex/base/letter.pdf
+++ b/macros/latex/base/letter.pdf
Binary files differ
diff --git a/macros/latex/base/lgc2.pdf b/macros/latex/base/lgc2.pdf
index 5cb60acbbd..bfed998126 100644
--- a/macros/latex/base/lgc2.pdf
+++ b/macros/latex/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex/base/lppl.pdf b/macros/latex/base/lppl.pdf
index 5c60effa01..18c3995534 100644
--- a/macros/latex/base/lppl.pdf
+++ b/macros/latex/base/lppl.pdf
Binary files differ
diff --git a/macros/latex/base/ltclass.dtx b/macros/latex/base/ltclass.dtx
index e771044e66..b639ae9410 100644
--- a/macros/latex/base/ltclass.dtx
+++ b/macros/latex/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2020/10/08 v1.3s LaTeX Kernel (Class & Package Interface)]
+ [2020/10/18 v1.3t LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -943,8 +943,9 @@
\def\@pr@videpackage[#1]{%
\expandafter\protected@xdef % <-- protected...
\csname ver@\@currname.\@currext\endcsname{#1}% Loaded package
- \expandafter\protected@xdef % <-- protected...
- \csname ver@\@currpkg@reqd\endcsname{#1}% Requested package
+ \expandafter\let
+ \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package
+ \csname ver@\@currname.\@currext\endcsname
\ifx\@currext\@clsextension
\typeout{Document Class: \@gtempa\space#1}%
\else
@@ -1064,13 +1065,16 @@
% \begin{macro}{\PassOptionsToClass}
% If the package has been loaded, we check that it was first loaded with
% the options. Otherwise we add the option list to that of the package.
+% \changes{v1.3t}{2020/10/18}{Drop path from \cs{input@path} (gh/414).}
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2020/10/01}{\@pass@ptions}
%<latexrelease> {Add file replacement in \@pass@ptions}%
%<*2ekernel|latexrelease>
\def\@pass@ptions#1#2#3{%
- \edef\reserved@a{\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+ \@expl@@@filehook@set@curr@file@@nNN
+ {\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+ \reserved@a\reserved@b
\expandafter\xdef\csname opt@\reserved@a\endcsname{%
\@ifundefined{opt@\reserved@a}\@empty
{\csname opt@\reserved@a\endcsname,}%
@@ -1801,7 +1805,13 @@
% \cs{@currext} are used we lose track of the substitution, so
% \cs{CurrentFile} and \cs{CurrentFileUsed} will be (incorrectly)
% the same.
+%
+% \changes{v1.3t}{2020-10-11}{Restore \cs{@currpkg@reqd} after
+% finished loading a package file (gh/408).}
% \begin{macrocode}
+ \expandafter\@swaptwoargs\expandafter
+ {\expandafter{\@currpkg@reqd}}%
+ {% <
\edef\@currpkg@reqd{\@currname.\@currext}%
\ifx\CurrentFile\CurrentFileUsed
\else
@@ -1810,6 +1820,8 @@
\edef\@currext{\string@makeletter\filename@ext}%
\fi
\load@onefile@withoptions{#2}%
+ \def\@currpkg@reqd%{\@currpkg@reqd}
+ }% >
% \end{macrocode}
% Now just clean up and exit.
% \begin{macrocode}
@@ -1836,7 +1848,11 @@
\@popfilename
\@reset@ptions}
% \end{macrocode}
-%
+%
+% \begin{macrocode}
+\let\@currpkg@reqd\@empty
+% \end{macrocode}
+%
% \begin{macrocode}
\@onlypreamble\@onefilewithoptions
% \end{macrocode}
diff --git a/macros/latex/base/ltfilehook-code.pdf b/macros/latex/base/ltfilehook-code.pdf
index 695028ba23..e35be13efe 100644
--- a/macros/latex/base/ltfilehook-code.pdf
+++ b/macros/latex/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-doc.pdf b/macros/latex/base/ltfilehook-doc.pdf
index cd3cf7d46e..7bd9392a4d 100644
--- a/macros/latex/base/ltfilehook-doc.pdf
+++ b/macros/latex/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook.dtx b/macros/latex/base/ltfilehook.dtx
index 24ba88f576..ecb499f347 100644
--- a/macros/latex/base/ltfilehook.dtx
+++ b/macros/latex/base/ltfilehook.dtx
@@ -31,8 +31,8 @@
%%% From File: ltfilehook.dtx
%
% \begin{macrocode}
-\providecommand\ltfilehookversion{v1.0b}
-\providecommand\ltfilehookdate{2020/09/26}
+\providecommand\ltfilehookversion{v1.0c}
+\providecommand\ltfilehookdate{2020/10/18}
% \end{macrocode}
%
%<*driver>
@@ -840,7 +840,7 @@
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\declare@file@substitution}{File substitution}%
\ExplSyntaxOn
-\cs_new_eq:NN \declare@file@substitution \@@_subst_add:nn
+\cs_new_eq:NN \declare@file@substitution \@@_subst_add:nn
\cs_new_eq:NN \undeclare@file@substitution \@@_subst_remove:n
\ExplSyntaxOff
%</2ekernel|latexrelease>
@@ -872,8 +872,8 @@
%
% \begin{macro}{\set@curr@file,\@curr@file,\@curr@file@reqd}
% Now we hook into \cs{set@curr@file} to resolve a possible file
-% substitution, and add \cs{@expl@@@filehook@set@curr@file@@N} at the end, after
-% \cs{@curr@file} is set.
+% substitution, and add \cs{@expl@@@filehook@set@curr@file@@nNN}
+% at the end, after \cs{@curr@file} is set.
%
% A file name is built using
% \cs{expandafter}\cs{string}\cs{csname}\meta{filename}\cs{endcsname}
@@ -987,24 +987,24 @@
.tex\else\string#1\fi}
% \end{macrocode}
%
-% Then we call \cs{@expl@@@filehook@set@curr@file@@N} once for \cs{@curr@file}
-% to set \cs[no-index]{CurrentFile(Path)Used} and once for
+% Then we call \cs{@expl@@@filehook@set@curr@file@@nNN} once for
+% \cs{@curr@file} to set \cs[no-index]{CurrentFile(Path)Used} and once for
% \cs{@curr@file@reqd} to set \cs[no-index]{CurrentFile(Path)}.
% Here too the slower route is only used if a substitution happened,
-% but here \cs{@expl@@@filehook@if@file@replaced@@TF} can't be used because the
-% flag is reset at the \cs{endgroup} above, so we check if
+% but here \cs{@expl@@@filehook@if@file@replaced@@TF} can't be used because
+% the flag is reset at the \cs{endgroup} above, so we check if
% \cs{@curr@file} and \cs{@curr@file@reqd} differ. This macro is
% issued separate from \cs{set@curr@file} because it changes
% \cs{CurrentFile}, and side-effects would quickly get out of control.
% \begin{macrocode}
\def\@filehook@set@CurrentFile{%
- \@expl@@@filehook@set@curr@file@@N{\@curr@file}%
+ \@expl@@@filehook@set@curr@file@@nNN{\@curr@file}%
\CurrentFileUsed\CurrentFilePathUsed
\ifx\@curr@file@reqd\@curr@file
\let\CurrentFile\CurrentFileUsed
\let\CurrentFilePath\CurrentFilePathUsed
\else
- \@expl@@@filehook@set@curr@file@@N{\@curr@file@reqd}%
+ \@expl@@@filehook@set@curr@file@@nNN{\@curr@file@reqd}%
\CurrentFile\CurrentFilePath
\fi}
%</2ekernel|latexrelease>
@@ -1016,8 +1016,7 @@
%
%
%
-% \begin{macro}{\@@_set_curr_file:N,
-% \@@_set_curr_file:nNN,
+% \begin{macro}{\@@_set_curr_file:nNN,
% \@@_set_curr_file_assign:nnnNN}
% When inputting a file, \cs{set@curr@file} does a file lookup
% (in \cs{input@path} and \cs{l_file_search_path_seq}) and returns the
@@ -1032,17 +1031,12 @@
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}%
-%<latexrelease> {@@_set_curr_file:N}{Set curr file}%
+%<latexrelease> {@@_set_curr_file:nNN}{Set curr file}%
\ExplSyntaxOn
%<@@=filehook>
-\cs_new_protected:Npn \@@_set_curr_file:N #1
- { \exp_args:NV \@@_set_curr_file:nNN #1 }
-% \end{macrocode}
-%
-% \begin{macrocode}
\cs_new_protected:Npn \@@_set_curr_file:nNN #1
{
- \@@_file_parse_full_name:nN {#1}
+ \exp_args:Nf \@@_file_parse_full_name:nN {#1}
\@@_set_curr_file_assign:nnnNN
}
\cs_new_protected:Npn \@@_set_curr_file_assign:nnnNN #1 #2 #3 #4 #5
@@ -1331,8 +1325,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_eq:NN \@expl@@@filehook@set@curr@file@@N
- \__filehook_set_curr_file:N
+\cs_new_eq:NN \@expl@@@filehook@set@curr@file@@nNN
+ \__filehook_set_curr_file:nNN
% \end{macrocode}
%
% \begin{macrocode}
@@ -1348,7 +1342,6 @@
% \begin{macrocode}
\cs_new_eq:NN \@expl@@@filehook@if@file@replaced@@TF
\__filehook_if_file_replaced:TF
-
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/macros/latex/base/lthooks-code.pdf b/macros/latex/base/lthooks-code.pdf
index b0b5f66939..e181e4bb27 100644
--- a/macros/latex/base/lthooks-code.pdf
+++ b/macros/latex/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks-doc.pdf b/macros/latex/base/lthooks-doc.pdf
index b547c414a1..5949974141 100644
--- a/macros/latex/base/lthooks-doc.pdf
+++ b/macros/latex/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks.dtx b/macros/latex/base/lthooks.dtx
index a5953cc25d..e4ff7dd2ed 100644
--- a/macros/latex/base/lthooks.dtx
+++ b/macros/latex/base/lthooks.dtx
@@ -31,8 +31,8 @@
%%% From File: lthooks.dtx
%
% \begin{macrocode}
-\def\lthooksversion{v1.0d}
-\def\lthooksdate{2020/10/09}
+\def\lthooksversion{v1.0e}
+\def\lthooksdate{2020/10/23}
% \end{macrocode}
%
%<*driver>
@@ -1084,6 +1084,7 @@
%
% \subsection{Difference between \enquote{normal} and
% \enquote{one-time} hooks}
+% \label{sec:onetime-hooks}
%
% When executing a hook a developer has the choice of using
% either \cs{UseHook} or \cs{UseOneTimeHook} (or their \pkg{expl3}
@@ -1182,6 +1183,11 @@
%
% \subsection{Legacy \LaTeXe{} interfaces}
%
+% \newcommand\onetimetext{%
+% This is a one-time hook, so after it is executed, all further
+% attempts to add code to it will execute such code immediately
+% (see section~\ref{sec:onetime-hooks}).}
+%
% \LaTeXe{} offered a small number of hooks together with commands to
% add to them. They are listed here and are retained for backwards
% compatibility.
@@ -1211,6 +1217,14 @@
% \cs{AddToHook} \texttt{\{begindocument\}} \oarg{label}
% \Arg{code}.
%
+% \cs{AtBeginDocument} is a wrapper around the \hook{begindocument}
+% hook (see section~\ref{sec:begindocument-hooks}), which is a
+% one-time hook. As such, after the \hook{begindocument} hook is
+% executed at \verb=\begin{document}= any attempt to add \meta{code}
+% to this hook with \cs{AtBeginDocument} or with \cs{AddToHook} will
+% cause that \meta{code} to execute immediately instead.
+% See section~\ref{sec:onetime-hooks} for more on one-time hooks.
+%
% For important packages with known order requirement we may over
% time add rules to the kernel (or to those packages) so that they
% work regardless of the loading-order in the document.
@@ -1345,9 +1359,9 @@
% \end{function}
%
%
-%
%
% \subsubsection{Hooks provided by \cs{begin}\texttt{\{document\}}}
+% \label{sec:begindocument-hooks}
%
% Until 2020 \cs{begin}\texttt{\{document\}} offered exactly one
% hook that one could add to using
@@ -1370,12 +1384,12 @@
% section and this is how it is used by \pkg{etoolbox}'s
% \cs{AtEndPreamble}.
%
-%
+% \onetimetext
%
% \item[\hook{begindocument}]
%
-% This hook is added to when using \cs{AtBeginDocument} and it is executed
-% after the \texttt{.aux} file as be read in and most
+% This hook is added to when using \cs{AtBeginDocument} and it is
+% executed after the \texttt{.aux} file as be read in and most
% initialization are done, so they can be altered and inspected by
% the hook code. It is followed by a small number of further
% initializations that shouldn't be altered and are therefore
@@ -1386,12 +1400,16 @@
% document body. If such material needs to be added to the document
% body use the next hook instead.
%
+% \onetimetext
+%
% \item[\hook{begindocument/end}]
%
% This hook is executed at the end of the \cs{document} code in
% other words at the beginning of the document body. The only
% command that follows it is \cs{ignorespaces}.
%
+% \onetimetext
+%
% \end{description}
% The generic hooks executed by \cs{begin} also exist, i.e.,
% \hook{env/document/before} and \hook{env/document/begin}, but
@@ -1432,6 +1450,7 @@
% called to ensure that all such material gets typeset. If there
% is nothing waiting the \cs{clearpage} has no effect.
%
+% \onetimetext
%
% \item[\hook{enddocument/afterlastpage}]
%
@@ -1448,6 +1467,8 @@
% closed for writing and then read back in to do some tests
% (e.g., looking for missing references or duplicated labels, etc.).
%
+% \onetimetext
+%
% \item[\hook{enddocument/afteraux}]
%
% At this point, the \texttt{.aux} file has been reprocessed and so
@@ -1456,6 +1477,8 @@
% prefer the next hook, so that your information is displayed after the
% (possibly longish) list of files if that got requested via \cs{listfiles}.
%
+% \onetimetext
+%
% \item[\hook{enddocument/info}]
%
% This hook is meant to receive code that write final information
@@ -1470,11 +1493,15 @@
% \cs{listfiles} has been used and the warnings for duplicate
% labels, missing references, font substitutions etc.
%
+% \onetimetext
+%
% \item[\hook{enddocument/end}]
%
% Finally, this hook is executed just in front of the final call
% to \cs{@{}@end}.
%
+% \onetimetext % is it even possible to add code after this one?
+%
% \end{description}
%
%
@@ -3314,7 +3341,7 @@
\cs_new_protected:Npn \@@_log:nN #1 #2
{
\@@_preamble_hook:n {#1}
- \iow_term:x { ^^J ->~The~hook~'#1': }
+ \@@_log_cmd:x { ^^J ->~The~hook~'#1': }
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/macros/latex/base/ltluatex.pdf b/macros/latex/base/ltluatex.pdf
index 57762988e5..e20118360c 100644
--- a/macros/latex/base/ltluatex.pdf
+++ b/macros/latex/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex/base/ltmiscen.dtx b/macros/latex/base/ltmiscen.dtx
index 0c115d3be1..9acbcccd68 100644
--- a/macros/latex/base/ltmiscen.dtx
+++ b/macros/latex/base/ltmiscen.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmiscen.dtx}
- [2020/08/21 v1.1v LaTeX Kernel (Misc. Environments)]
+ [2020/10/23 v1.1w LaTeX Kernel (Misc. Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltmiscen.dtx}
@@ -239,13 +239,14 @@
% \changes{v1.1k}{2010/08/17}{Use braces around \cs{input} arg (pr/4124)}
% \changes{v1.1l}{2010/08/17}{Change of plan: use \cs{@@input} instead
% (pr/4124)}
+% \changes{v1.1w}{2020/10/23}{Make \texttt{enddocument/afteraux} one-time}
% We use |\@@input| to load the \texttt{.aux} file, so that it doesn't
% show up in the list of files produced by |\listfiles|.
% \begin{macrocode}
\@tempswafalse
\makeatletter \@@input\jobname.aux
\fi
- \UseHook{enddocument/afteraux}%
+ \UseOneTimeHook{enddocument/afteraux}%
% \end{macrocode}
% Next hook is expect to contain only code for writing info
% messages on the terminal.
diff --git a/macros/latex/base/ltnews.pdf b/macros/latex/base/ltnews.pdf
index 23c0dd26c1..902ff811d9 100644
--- a/macros/latex/base/ltnews.pdf
+++ b/macros/latex/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews01.pdf b/macros/latex/base/ltnews01.pdf
index bfbea06e7f..8752885008 100644
--- a/macros/latex/base/ltnews01.pdf
+++ b/macros/latex/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews02.pdf b/macros/latex/base/ltnews02.pdf
index cf688058cb..a4dff175fa 100644
--- a/macros/latex/base/ltnews02.pdf
+++ b/macros/latex/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews03.pdf b/macros/latex/base/ltnews03.pdf
index bc23990d0b..b5cfd1312b 100644
--- a/macros/latex/base/ltnews03.pdf
+++ b/macros/latex/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews04.pdf b/macros/latex/base/ltnews04.pdf
index e15bb561d1..eff5873f9a 100644
--- a/macros/latex/base/ltnews04.pdf
+++ b/macros/latex/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews05.pdf b/macros/latex/base/ltnews05.pdf
index e9341e9aca..f963a2945a 100644
--- a/macros/latex/base/ltnews05.pdf
+++ b/macros/latex/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews06.pdf b/macros/latex/base/ltnews06.pdf
index baa3c67c49..ce4e6027fd 100644
--- a/macros/latex/base/ltnews06.pdf
+++ b/macros/latex/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews07.pdf b/macros/latex/base/ltnews07.pdf
index 758f0d9331..29e99ec882 100644
--- a/macros/latex/base/ltnews07.pdf
+++ b/macros/latex/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews08.pdf b/macros/latex/base/ltnews08.pdf
index e3b73cf681..9a29dfdc01 100644
--- a/macros/latex/base/ltnews08.pdf
+++ b/macros/latex/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews09.pdf b/macros/latex/base/ltnews09.pdf
index b4356f35b8..3792d6944e 100644
--- a/macros/latex/base/ltnews09.pdf
+++ b/macros/latex/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews10.pdf b/macros/latex/base/ltnews10.pdf
index 2de518f198..08f4794fb0 100644
--- a/macros/latex/base/ltnews10.pdf
+++ b/macros/latex/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews11.pdf b/macros/latex/base/ltnews11.pdf
index c374a53349..47d305bb00 100644
--- a/macros/latex/base/ltnews11.pdf
+++ b/macros/latex/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews12.pdf b/macros/latex/base/ltnews12.pdf
index 386d78e184..353e08f72f 100644
--- a/macros/latex/base/ltnews12.pdf
+++ b/macros/latex/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews13.pdf b/macros/latex/base/ltnews13.pdf
index 8385a22c65..9f04262286 100644
--- a/macros/latex/base/ltnews13.pdf
+++ b/macros/latex/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews14.pdf b/macros/latex/base/ltnews14.pdf
index 569ded2002..07bf87f377 100644
--- a/macros/latex/base/ltnews14.pdf
+++ b/macros/latex/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews15.pdf b/macros/latex/base/ltnews15.pdf
index 583e931323..48d7b278e4 100644
--- a/macros/latex/base/ltnews15.pdf
+++ b/macros/latex/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews16.pdf b/macros/latex/base/ltnews16.pdf
index 60005231b7..86bce9ff9b 100644
--- a/macros/latex/base/ltnews16.pdf
+++ b/macros/latex/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews17.pdf b/macros/latex/base/ltnews17.pdf
index b59c29cd94..4c4edcce1d 100644
--- a/macros/latex/base/ltnews17.pdf
+++ b/macros/latex/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews18.pdf b/macros/latex/base/ltnews18.pdf
index ca3a515a2a..dbad7935b3 100644
--- a/macros/latex/base/ltnews18.pdf
+++ b/macros/latex/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews19.pdf b/macros/latex/base/ltnews19.pdf
index 3f099b4a9e..254e795808 100644
--- a/macros/latex/base/ltnews19.pdf
+++ b/macros/latex/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews20.pdf b/macros/latex/base/ltnews20.pdf
index 419a89a8b7..96ec4b6137 100644
--- a/macros/latex/base/ltnews20.pdf
+++ b/macros/latex/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews21.pdf b/macros/latex/base/ltnews21.pdf
index 3e2441d77d..5829c7a022 100644
--- a/macros/latex/base/ltnews21.pdf
+++ b/macros/latex/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews22.pdf b/macros/latex/base/ltnews22.pdf
index 5d38155d83..8a6b871ce8 100644
--- a/macros/latex/base/ltnews22.pdf
+++ b/macros/latex/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews23.pdf b/macros/latex/base/ltnews23.pdf
index aa38c11c14..518555e784 100644
--- a/macros/latex/base/ltnews23.pdf
+++ b/macros/latex/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews24.pdf b/macros/latex/base/ltnews24.pdf
index 91a8d86ba6..11210010a2 100644
--- a/macros/latex/base/ltnews24.pdf
+++ b/macros/latex/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews25.pdf b/macros/latex/base/ltnews25.pdf
index add99bcdf0..4965241eec 100644
--- a/macros/latex/base/ltnews25.pdf
+++ b/macros/latex/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews26.pdf b/macros/latex/base/ltnews26.pdf
index de17bfda82..9af3fd445a 100644
--- a/macros/latex/base/ltnews26.pdf
+++ b/macros/latex/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews27.pdf b/macros/latex/base/ltnews27.pdf
index 72c1d5587d..1359bc7efc 100644
--- a/macros/latex/base/ltnews27.pdf
+++ b/macros/latex/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews28.pdf b/macros/latex/base/ltnews28.pdf
index 3575e10cd4..f5cb87308b 100644
--- a/macros/latex/base/ltnews28.pdf
+++ b/macros/latex/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews29.pdf b/macros/latex/base/ltnews29.pdf
index bcff75a9d6..5d618bc87e 100644
--- a/macros/latex/base/ltnews29.pdf
+++ b/macros/latex/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews30.pdf b/macros/latex/base/ltnews30.pdf
index 8e96ec9962..35846d4fc9 100644
--- a/macros/latex/base/ltnews30.pdf
+++ b/macros/latex/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews31.pdf b/macros/latex/base/ltnews31.pdf
index efebbb5b94..f0778f9d30 100644
--- a/macros/latex/base/ltnews31.pdf
+++ b/macros/latex/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews32.pdf b/macros/latex/base/ltnews32.pdf
index 7e18de6fe5..aed46fe573 100644
--- a/macros/latex/base/ltnews32.pdf
+++ b/macros/latex/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-code.pdf b/macros/latex/base/ltshipout-code.pdf
index 2798161f94..c5cfd30a88 100644
--- a/macros/latex/base/ltshipout-code.pdf
+++ b/macros/latex/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-doc.pdf b/macros/latex/base/ltshipout-doc.pdf
index 36bf7eaddc..6a4b41f60e 100644
--- a/macros/latex/base/ltshipout-doc.pdf
+++ b/macros/latex/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltvers.dtx b/macros/latex/base/ltvers.dtx
index fcd722b0e8..dd69d5a6e3 100644
--- a/macros/latex/base/ltvers.dtx
+++ b/macros/latex/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2020-10-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{1}
+\def\patch@level{2}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex/base/ltx3info.pdf b/macros/latex/base/ltx3info.pdf
index df2407717f..620a9b2c6f 100644
--- a/macros/latex/base/ltx3info.pdf
+++ b/macros/latex/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex/base/ltxdoc.pdf b/macros/latex/base/ltxdoc.pdf
index e71726bb93..5080c0e0bc 100644
--- a/macros/latex/base/ltxdoc.pdf
+++ b/macros/latex/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex/base/makeindx.pdf b/macros/latex/base/makeindx.pdf
index 45c46bc9ea..97b26b4e72 100644
--- a/macros/latex/base/makeindx.pdf
+++ b/macros/latex/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex/base/manual.pdf b/macros/latex/base/manual.pdf
index 431b6c3c45..0958c15eb6 100644
--- a/macros/latex/base/manual.pdf
+++ b/macros/latex/base/manual.pdf
Binary files differ
diff --git a/macros/latex/base/modguide.pdf b/macros/latex/base/modguide.pdf
index 046822176f..7dafc9125a 100644
--- a/macros/latex/base/modguide.pdf
+++ b/macros/latex/base/modguide.pdf
Binary files differ
diff --git a/macros/latex/base/nfssfont.pdf b/macros/latex/base/nfssfont.pdf
index 7de676f4ce..8292894e71 100644
--- a/macros/latex/base/nfssfont.pdf
+++ b/macros/latex/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex/base/proc.pdf b/macros/latex/base/proc.pdf
index e7d82693a1..a046c4fbfa 100644
--- a/macros/latex/base/proc.pdf
+++ b/macros/latex/base/proc.pdf
Binary files differ
diff --git a/macros/latex/base/slides.pdf b/macros/latex/base/slides.pdf
index 7081d4f442..37779f807a 100644
--- a/macros/latex/base/slides.pdf
+++ b/macros/latex/base/slides.pdf
Binary files differ
diff --git a/macros/latex/base/slifonts.pdf b/macros/latex/base/slifonts.pdf
index dc704d9b86..67f44b6017 100644
--- a/macros/latex/base/slifonts.pdf
+++ b/macros/latex/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex/base/source2e.pdf b/macros/latex/base/source2e.pdf
index 3726b124d1..bc06f27f18 100644
--- a/macros/latex/base/source2e.pdf
+++ b/macros/latex/base/source2e.pdf
Binary files differ
diff --git a/macros/latex/base/syntonly.pdf b/macros/latex/base/syntonly.pdf
index 486c6597fd..c13cc82d80 100644
--- a/macros/latex/base/syntonly.pdf
+++ b/macros/latex/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex/base/tlc2.pdf b/macros/latex/base/tlc2.pdf
index ba77288259..03eec97dc7 100644
--- a/macros/latex/base/tlc2.pdf
+++ b/macros/latex/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex/base/tulm.pdf b/macros/latex/base/tulm.pdf
index 93c492ea0c..e67d8d3522 100644
--- a/macros/latex/base/tulm.pdf
+++ b/macros/latex/base/tulm.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide.pdf b/macros/latex/base/usrguide.pdf
index ce13d76976..96de459ec3 100644
--- a/macros/latex/base/usrguide.pdf
+++ b/macros/latex/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex/base/utf8ienc.pdf b/macros/latex/base/utf8ienc.pdf
index ee4c898fbb..e97c6a4527 100644
--- a/macros/latex/base/utf8ienc.pdf
+++ b/macros/latex/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex/base/webcomp.pdf b/macros/latex/base/webcomp.pdf
index 754b111b1d..a6b1e79980 100644
--- a/macros/latex/base/webcomp.pdf
+++ b/macros/latex/base/webcomp.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/README b/macros/latex/contrib/acmart/README
index 17cf74a203..67302fa174 100644
--- a/macros/latex/contrib/acmart/README
+++ b/macros/latex/contrib/acmart/README
@@ -275,4 +275,6 @@ Version 1.72 Bug fixes. Better handling of metadata.
Version 1.73 Bug fixes
The elements institution, city and country are now obligatory
for affiliations
- \ No newline at end of file
+
+Version 1.74 Bug fixes. A regression introduced in the font changes
+ is reverted. \ No newline at end of file
diff --git a/macros/latex/contrib/acmart/acmart.dtx b/macros/latex/contrib/acmart/acmart.dtx
index 1138db98e9..a901526f72 100644
--- a/macros/latex/contrib/acmart/acmart.dtx
+++ b/macros/latex/contrib/acmart/acmart.dtx
@@ -1886,7 +1886,7 @@
\ProvidesFile{acmart.dtx}
%</gobble>
%<class>\ProvidesClass{acmart}
-[2020/09/13 v1.73 Typesetting articles for the Association for Computing Machinery]
+[2020/10/25 v1.74 Typesetting articles for the Association for Computing Machinery]
% \end{macrocode}
%
% \changes{v1.00}{2016/04/14}{First released version}
@@ -3212,22 +3212,29 @@
% Breitner)}
% \changes{v1.54}{2018/07/16}{XeTeX now uses T1 encoding}
% \changes{v1.56}{2018/11/11}{Looks like XeTeX requires explicit
-% monotype font delcaration}
+% monotype font declaration}
+% \changes{v1.74}{2020/10/25}{Changed the order of font loading}%
% We use Libertine throughout.
% \begin{macrocode}
\if@ACM@newfonts
\RequirePackage[T1]{fontenc}
- \RequirePackage[libertine]{newtxmath}
+ % Note that the order in which packages are loaded matters,
+ % and the correct order depends on the LaTeX engine used.
+ % See https://github.com/borisveytsman/acmart/issues/402
+ % and https://github.com/borisveytsman/acmart/issues/410
\ifxetex
+ \RequirePackage[libertine]{newtxmath}
\RequirePackage[tt=false]{libertine}
\setmonofont[StylisticSet=3]{inconsolata}
\else
\ifluatex
+ \RequirePackage[libertine]{newtxmath}
\RequirePackage[tt=false]{libertine}
\setmonofont[StylisticSet=3]{inconsolata}
\else
\RequirePackage[tt=false, type1=true]{libertine}
\RequirePackage[varqu]{zi4}
+ \RequirePackage[libertine]{newtxmath}
\fi
\fi
\fi
diff --git a/macros/latex/contrib/acmart/acmart.pdf b/macros/latex/contrib/acmart/acmart.pdf
index 2277d25c20..97af4bc0b9 100644
--- a/macros/latex/contrib/acmart/acmart.pdf
+++ b/macros/latex/contrib/acmart/acmart.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/acmguide.pdf b/macros/latex/contrib/acmart/acmguide.pdf
index 089664bc53..974e50ecb0 100644
--- a/macros/latex/contrib/acmart/acmguide.pdf
+++ b/macros/latex/contrib/acmart/acmguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
index 23e6435b0a..6da30912f5 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
index 815150402a..2e3826f380 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
index 4a79a30f9e..380e3c4054 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
index 999f18a825..3b982c2b9c 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
index 9db12266a6..eb5aa9d0e3 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
index 13d9f8c29d..39ddfcb499 100644
--- a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
index 66626b757c..67ab63ed06 100644
--- a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
index d38eacec64..e2349dd0aa 100644
--- a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
index ac225b5f82..3114e63ddc 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
index 3fb6176307..2d4b6a5a54 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
index c41474733a..a6840bf543 100644
--- a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
index 154ae8123a..94dbbb48d3 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
@@ -1,4 +1,4 @@
-# Focus v2.6
+# Focus v2.7
A presentation theme for LaTeX Beamer that aims at a clean and minimalist design,
so to minimize distractions and put the focus directly on the content.
@@ -11,14 +11,14 @@ to be installed in your LaTeX distribution.
Demo
----
-A full demo is available. Refer to `demo.tex` and `demo.pdf`.
+A full demo is available. Refer to `focus-demo.tex` and `focus-demo.pdf`.
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-titlepage.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-subsectionpage.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-typeset.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-focus.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-references.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-appendix.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-titlepage.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-subsectionpage.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-typeset.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-focus.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-references.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-appendix.jpg)
Download
========
@@ -49,7 +49,7 @@ For example:
```
produces the following ice-blue color theme.
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-titlepage-color.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-titlepage-color.jpg)
Customize the footline
----------------------
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
index e0317d51af..637c95cd7d 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
@@ -38,9 +38,9 @@
\defbeamertemplate*{title page}{focus}{%
{%
\usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
- \begin{tikzpicture}[overlay, remember picture]
- \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
- \end{tikzpicture}
+ \begin{tikzpicture}[overlay, remember picture]
+ \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
+ \end{tikzpicture}
}
\vspace{-1.65\baselineskip}
@@ -103,8 +103,8 @@
\let\hyperlink\@secondoftwo\insertsection
\end{minipage}
- \vspace{1.5\baselineskip}
- \begin{minipage}[t][0.55\paperheight]{\textwidth}
+ \vspace{\baselineskip}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
\usebeamerfont{subsectiontitle}
\usebeamercolor[bg]{frametitle}
\insertsubsection
@@ -122,7 +122,7 @@
{%
\usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
\begin{tikzpicture}[overlay, remember picture]
- \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
+ \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
\end{tikzpicture}%
}
@@ -133,8 +133,8 @@
\let\hyperlink\@secondoftwo\insertsection
\end{minipage}
- \vspace{1.5\baselineskip}
- \begin{minipage}[t][0.55\paperheight]{\textwidth}
+ \vspace{\baselineskip}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
\usebeamerfont{subsectiontitle}
\usebeamercolor[bg]{frametitle}
\insertsubsection
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
index bbf893eeaa..88e82d3c71 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
@@ -51,7 +51,7 @@
}
% Plain header.
-\defbeamertemplate*{frametitle}{plain}{%
+\defbeamertemplate{frametitle}{plain}{%
% If not title page.
\ifnum\value{realframenumber}>0%
\vspace{-1pt}%
@@ -109,7 +109,7 @@
}
% Full bar footline.
-\defbeamertemplate*{footline}{fullbar}{%
+\defbeamertemplate{footline}{fullbar}{%
% If not appendix.
\ifnum\mainend<0% From package appendixnumberbeamer.
%
@@ -134,7 +134,7 @@
}
% Empty footline.
-\defbeamertemplate*{footline}{none}{}
+\defbeamertemplate{footline}{none}{}
\DeclareOptionBeamer{numbering}{\def\beamer@focus@numbering{#1}}
\ExecuteOptionsBeamer{numbering=progressbar}
@@ -153,14 +153,7 @@
\end{tikzpicture}%
}
-\defbeamertemplate*{background canvas}{focusplain}{%
- \begin{tikzpicture}
- \clip (0,0) rectangle ++(\paperwidth,\paperheight);
- \fill[normal text.bg] (0,0) rectangle ++(\paperwidth,\paperheight);
- \end{tikzpicture}%
-}
-
-\defbeamertemplate*{background canvas}{focusframe}{%
+\defbeamertemplate{background canvas}{focusframe}{%
\begin{tikzpicture}
\clip (0,0) rectangle ++(\paperwidth,\paperheight);
\fill[frametitle.bg] (0,0) rectangle ++(\paperwidth,\paperheight);
@@ -207,7 +200,7 @@
% Enable plain option.
\define@key{beamerframe}{plain}[true]{%
- \setbeamertemplate{background canvas}[focusplain]%
+ \setbeamertemplate{background canvas}[focus]%
\setbeamertemplate{frametitle}[plain]%
%
\setbeamertemplate{footline}[none]%
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
index 6da4b05683..b8ac174f3d 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
@@ -19,7 +19,7 @@
% along with beamerthemefocus. If not, see <http://www.gnu.org/licenses/>.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthemefocus}[2020/04/15 v2.6 Focus Beamer theme]
+\ProvidesPackage{beamerthemefocus}[2020/10/26 v2.7 Focus Beamer theme]
\mode<presentation>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpg
deleted file mode 100644
index f993c1beea..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
index d4eafee0dc..ac3f38f0f5 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
index a4153d1be4..bc77b118d0 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
@@ -103,7 +103,7 @@
\column{0.4\textwidth}
\begin{figure}
\centering
- \includegraphics{focuslogo.pdf}
+ \includegraphics{focus-logo.pdf}
\caption{Figure caption.}
\label{fig:focuslogo}
\end{figure}
@@ -130,7 +130,7 @@
\appendix
\begin{frame}{References}
\nocite{*}
- \bibliography{demo_bibliography}
+ \bibliography{focus-demo_bibliography}
\bibliographystyle{plain}
\end{frame}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-appendix.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
index d8ad6e3bfa..d8ad6e3bfa 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-appendix.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-focus.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
index 1a2e576aba..1a2e576aba 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-focus.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-references.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
index e2f93f76a4..e2f93f76a4 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-references.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
new file mode 100644
index 0000000000..348e6444e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage-color.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
index 000339af6e..000339af6e 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage-color.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
index 8d7d3c3b4b..8d7d3c3b4b 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-typeset.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
index a0132b54ea..a0132b54ea 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-typeset.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo_bibliography.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
index 819fe0e886..819fe0e886 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo_bibliography.bib
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focuslogo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
index c8327be60e..c8327be60e 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focuslogo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf
index 1c6e5eb055..2df72e6cbd 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf
index e8650e5644..93b9931faf 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex
index 2b56723ae4..ddd886ddbe 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex
@@ -487,10 +487,15 @@ This package is maintained.
\bibfield{shorttitle} (о многоточиях при сокращении заголовков
см.~\secref{ellipsis}).
-По умолчанию стиль устанавливает опции \kvopt{autocite}{inline}, \kvopt{sorting}{ntvy},
- \kvopt{pagetracker}{true}, \kvopt{strict}{true}, \kvopt{citetracker}{constrict},
-\kvopt{opcittracker}{constrict}, \kvopt{citepages}{omit},
-\kvopt{labelyear}{true}.
+По умолчанию стиль устанавливает опции \kvopt{autocite}{inline}, %
+\kvopt{sorting}{ntvy}, %
+\kvopt{pagetracker}{true}, %
+\kvopt{strict}{true}, %
+\kvopt{citetracker}{constrict}, %
+\kvopt{opcittracker}{constrict}, %
+\kvopt{citepages}{omit}, %
+\kvopt{labeldateparts}{true}, %
+\kvopt{labeltitle}{true}.
\item[gost-footnote]
Подстрочные ссылки.
@@ -508,10 +513,15 @@ This package is maintained.
там не выводятся поля \bibfield{doi},
\bibfield{eprint}, \bibfield{url}, \bibfield{addendum}, \bibfield{pubstate}.
-По умолчанию стиль устанавливает опции \kvopt{autocite}{footnote}, \kvopt{sorting}{ntvy},
-\kvopt{pagetracker}{true}, \kvopt{strict}{true}, \kvopt{citetracker}{constrict},
-\kvopt{opcittracker}{constrict}, \kvopt{citepages}{omit},
-\kvopt{labelyear}{true}.
+По умолчанию стиль устанавливает опции \kvopt{autocite}{footnote}, %
+\kvopt{sorting}{ntvy}, %
+\kvopt{pagetracker}{true}, %
+\kvopt{strict}{true}, %
+\kvopt{citetracker}{constrict}, %
+\kvopt{opcittracker}{constrict}, %
+\kvopt{citepages}{omit}, %
+\kvopt{labeldateparts}{true}, %
+\kvopt{labeltitle}{true}.
\item[gost-numeric]
Затекстовые ссылки. Основан на стандартном стиле \bibsty{numeric-comp} и отличается
@@ -526,7 +536,8 @@ This package is maintained.
\renewcommand*{\multicitedelim}{\addsemicolon\space}
\end{lstlisting}
-По умолчанию стиль устанавливает опции \kvopt{autocite}{inline}, \kvopt{sortcites}{true}.
+По умолчанию стиль устанавливает опцию %
+% \kvopt{autocite}{inline}, \kvopt{sortcites}{true}.
\kvopt{labelnumber}{true}.
\item[gost-authoryear]
@@ -548,16 +559,25 @@ This package is maintained.
имеется лишь одна публикация данного автора или лишь одна публикация без автора с данным
названием).
-По умолчанию стиль устанавливает опции
-\kvopt{autocite}{inline},
-\kvopt{sorting}{nyt},
-\kvopt{pagetracker}{true},
-\kvopt{mergedate}{gostletter},
+По умолчанию стиль устанавливает опции %
+\kvopt{autocite}{inline}, %
+\kvopt{sorting}{nyt}, %
+\kvopt{pagetracker}{true}, %
+\kvopt{mergedate}{gostletter}, %
\kvopt{dropdates}{false},
(или \opt{true} при \kvopt{mergedate}{goststrict},
-см.~\secref{sec:newoptions}).
-
-\item[gost-alphabetic]
+см.~\secref{sec:newoptions}), %
+\kvopt{labeldateparts}{true}, %
+\kvopt{citetracker}{constrict}, %
+\kvopt{loccittracker}{constrict}, %
+\kvopt{dropdates}{false}, %
+\kvopt{labeltitleyear}{true}, %
+\kvopt{uniquename}{init}, % %
+\kvopt{uniquelist}{true}, %
+\kvopt{ibidtracker}{constrict}, %
+\kvopt{sortcites}{true}.
+
+\item[gost-alphabetic] %
Этот стиль не предусмотрен ГОСТом, но добавлен для полноты. Он соответствует стандартному
стилю \bibsty{alphabetic}, а также \bibsty{alphabetic-verb}, если его использовать в виде:
@@ -617,11 +637,21 @@ This package is maintained.
\starsdelim
Дополнительно, все стили по умолчанию устанавливают опции
-\kvopt{dashed}{false},
-\kvopt{useeditor}{false},
-\kvopt{usetranslator}{false},
-\kvopt{maxnames}{3},
-\kvopt{minnames}{1}.
+\kvopt{dashed}{false}, %
+\kvopt{useeditor}{false}, %
+\kvopt{usetranslator}{false}, %
+\kvopt{maxnames}{3}, %
+\kvopt{minnames}{1}, %
+\kvopt{dashed}{false}, %
+\kvopt{movenames}{true}, %
+\kvopt{giveninits}{true}, %
+\kvopt{volsorder}{vbpi}, %
+\kvopt{related}{true}, %
+\kvopt{alldates}{short}, %
+\kvopt{eventdate}{comp}, %
+\kvopt{blockpunct}{emdash}, %
+\kvopt{doublevols}{true}, %
+\kvopt{otherlangs}{true}. %
Значения по умолчанию для опций \opt{cite\ldots} и \opt{bib\ldots} см. в \tabref{tab:bibcite}.
\vspace{.5\baselineskip}
@@ -2509,6 +2539,10 @@ pageref & + & + & + & + & + & + & + & +
\begin{changelog}
+ \begin{release}{1.19}{25-10-2020}
+ \item Добавлен обход для deprecated \cmd{mkrelatedstring}.
+ \end{release}
+
\begin{release}{1.18}{23-02-2020}
\item Добавлен патч для обхода ошибки \biblatex 3.14.
См. подробнее \url{https://github.com/odomanov/biblatex-gost/issues/22},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
index afb0c782ef..4248d44720 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-alphabetic}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
index b220e27f93..ff92a99d29 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
\ExecuteBibliographyOptions{labelalpha,sorting=anyvt}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
index 542d584d44..7b390ffe75 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-authoryear}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
index 849e83fd6b..3326eca938 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
index c84cd3b379..4de83c4f59 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-inline-min}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
index 0845dd95a4..ebdae552a2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-inline}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
index a27ac3bad9..a627604418 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-inline}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
index 2d45396449..483303ab48 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
index d3d2c750b8..f87f542cd6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-numeric}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
index 26dc8db11c..1c23b7b8d9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
\ExecuteBibliographyOptions{labelnumber,bibisbn,biburl,bibdoi,bibeprint}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
index befce113ae..2d92933cfa 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
@@ -1,8 +1,8 @@
\ProvidesFile{gost-standard.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
-\def\bbx@gost@date{2020/02/23}
-\def\bbx@gost@version{1.18}
+\def\bbx@gost@date{2020/10/25}
+\def\bbx@gost@version{1.19}
\@ifpackagelater{biblatex}{2019/09/01}
{}
@@ -35,6 +35,10 @@
\RequireBiber[3] % strictly required
+% workaround for the \mkrelatedstring deprecation.
+% https://github.com/odomanov/biblatex-gost/issues/27
+\providecommand*{\mkrelatedstringtext}[1]{{{\mainlang #1}}}
+
\blx@inputonce{biblatex-gost.def}{biblatex-gost generic definitions}{}{}{}{}
\newtoggle{bbx:isbn}
@@ -535,6 +539,7 @@
% clear \newblock in citations, not in biblists
\AtUsedriver*{%
+ \delimcontext{bib}%
\ifcitation{\let\newblock\relax}{}%
\let\finentry\blx@finentry@usedrv
\let\abx@macro@bibindex\@empty
@@ -2468,14 +2473,14 @@
test {\ifbibxstring{\thefield{relatedtype}s}}
}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}s}}}
{\iffieldbibstring{relatedtype}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}}}}
{}}}
{\iffieldbibstring{relatedstring}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedstring}}}}
{\printfield[\bbx@tempb]{relatedstring}}}%
\docsvfield{related}%
\usebibmacro{endrelatedloop}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
index 21ada061cb..0aaf4389ec 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
@@ -1,5 +1,5 @@
\ProvidesFile{biblatex-gost.def}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
% these declarations should be here, not in lbx, to be initialized for all languages
\NewBibliographyString{
@@ -520,13 +520,10 @@
\entrydata{#1}{%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}
- {\begingroup
- \mkrelatedstring%
- \lbx@initnamehook{#1}%
- \endgroup}
+ {\mkrelatedstringtext{\lbx@initnamehook{#1}}}
{}}%
\printnames[bytranslator]{translator}%
- \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
+ \setunit*{\addspace\bibstring[\mkrelatedstringtext]{astitle}\space}%
\usebibmacro{author}%
\setunit*{\labelnamepunct}%
\usebibmacro{title}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
index 7779c2e34a..b82670552e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-alphabetic}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
index d6ebfe597b..77aa8f5a92 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{alphabetic}
\ExecuteBibliographyOptions{labelalpha,autocite=inline}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
index b49f13dd78..76da8fd244 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-authoryear}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
index 42cc003886..f3925e6473 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\ExecuteBibliographyOptions{dashed=false,citetracker=constrict,loccittracker=constrict,
dropdates=false,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
index 5dfdcff83a..ac99c6c51d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-footnote}
\renewbibmacro*{cite:clearfields}{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
index a84aba835c..d3a6e98774 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-inline}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
index c4a9c94dc7..bd6e2387f7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-inline}
\renewbibmacro*{cite:clearfields}{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
index 9521e93d64..6ecc9b91d1 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\DeclareLabelname
[inbook,incollection,inproceedings,inreference,suppbook,suppcollection,suppperiodical,bookinbook]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
index c041821c47..d36549a545 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-numeric}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
index 7f31a0858f..d7a0ae6af2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{numeric-comp}
\ExecuteBibliographyOptions{dashed=false,citeisbn,citeurl,citedoi,citeeprint}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
index 3c7f3b3c34..c710909b37 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{biblatex-gost.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
% Biblatex-GOST data model
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
index f2fe4543fa..1ccbe7ce3e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
index 61039e80a4..c1f95f4a75 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
index 91773b5351..50841a9fba 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
index 1c85e127a1..813c788163 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
index 7755432e02..175a01a316 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
index 2d840913b9..8e192490a9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
index 746c27a6c7..68b24367a8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
index 98250941e1..be249bd300 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
index 0e9f2779da..256c87eda4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
index b010d659a7..6d4a172443 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
index 9d8b6281d8..a720763766 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{american-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{american}
\InheritBibliographyStrings{american}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
index c4052074cb..0d8fbdc823 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{brazilian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{brazilian}
\InheritBibliographyStrings{brazilian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
index d235ceaa6c..586af50de8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{british-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{british}
\InheritBibliographyStrings{british}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
index 57e4a5774b..c5d83b553f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{catalan-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{catalan}
\InheritBibliographyStrings{catalan}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
index 4be2631311..271e423fcc 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{croatian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{croatian}
\InheritBibliographyStrings{croatian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
index 4b2f928433..381bf677c9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{english-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{english}
\InheritBibliographyStrings{english}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
index 1cd2477f32..a5c6524e61 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{french-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{french}
\InheritBibliographyStrings{french}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
index 24d423937c..4bcd22a322 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{galician-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{galician}
\InheritBibliographyStrings{galician}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
index 5060e35457..0a9c7efd84 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{german-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{german}
\InheritBibliographyStrings{german}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
index c760f0643c..106978a969 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{greek-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{greek}
\InheritBibliographyStrings{greek}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
index 19e640fb06..1b3c4ae492 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{icelandic-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{icelandic}
\InheritBibliographyStrings{icelandic}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
index 0ef978a477..43795ac9d0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{italian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{italian}
\InheritBibliographyStrings{italian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
index 7d49f2e285..a25f644b72 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{portuguese-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{portuguese}
\InheritBibliographyStrings{portuguese}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
index 89ec537b3b..355db49ad5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{russian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{russian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
index 4f9f1f089d..d7e987cec6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{slovene-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{slovene}
\InheritBibliographyStrings{slovene}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
index 1c7c6b203d..dc9e62ae67 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{spanish-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{spanish}
\InheritBibliographyStrings{spanish}
diff --git a/macros/latex/contrib/caption/CHANGELOG b/macros/latex/contrib/caption/CHANGELOG
index 089a3caa59..1eba38b6a1 100644
--- a/macros/latex/contrib/caption/CHANGELOG
+++ b/macros/latex/contrib/caption/CHANGELOG
@@ -146,6 +146,9 @@ v1.1 (2012/12/26)
v1.2 (2016/03/27)
- \DeclareLangDependantCaptionOption added
+v1.3 (2020/10/25)
+- Option "bi-separator" and command \DeclareBiCaptionSeparator added
+
ltcaption package
-----------------
diff --git a/macros/latex/contrib/caption/README b/macros/latex/contrib/caption/README
index fc4002ca49..143820eda6 100644
--- a/macros/latex/contrib/caption/README
+++ b/macros/latex/contrib/caption/README
@@ -1,7 +1,7 @@
==========================================================================
The `caption' package bundle
-Release 2020-09-17
+Release 2020-10-26
Copyright (C) 1994-2020 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
License: LPPL = LaTeX Project Public Licence
@@ -45,7 +45,7 @@ User Manual: caption-eng.pdf (English)
--------------------------------------------------------------------------
-The `bicaption' package v1.2 is a tiny package supporting the typesetting
+The `bicaption' package v1.3 is a tiny package supporting the typesetting
of bilingual captions.
User Manual: bicaption.pdf (English)
diff --git a/macros/latex/contrib/caption/bicaption.dtx b/macros/latex/contrib/caption/bicaption.dtx
index f2a52185c9..5bba05cb2f 100644
--- a/macros/latex/contrib/caption/bicaption.dtx
+++ b/macros/latex/contrib/caption/bicaption.dtx
@@ -2,7 +2,7 @@
%
% This is file `bicaption.dtx'.
%
-% Copyright (C) 2010-2018 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+% Copyright (C) 2010-2020 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%
% --------------------------------------------------------------------------
%
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{431}
+% \CheckSum{457}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{bicaption.drv}[2016/03/27 v1.2 Adds a bilingual caption feature to the caption package]
+\ProvidesFile{bicaption.drv}[2020/10/25 v1.3 Adds a bilingual caption feature to the caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=74pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -45,17 +45,11 @@
\setlength\parindent{0pt}
\setlength\parskip{\smallskipamount}
%
-\newcommand\LineBreak{\linebreak[3]}
-\newcommand\PageBreak{\pagebreak[3]}
\usepackage{ifpdf}
\ifpdf
\usepackage{mathptmx,courier}
\usepackage[scaled=0.90]{helvet}
\addtolength\marginparwidth{15pt}
- \ifdim\paperheight=297mm % a4paper
- \renewcommand\LineBreak{\\}
- \renewcommand\PageBreak{\clearpage}
- \fi
\fi
%
\usepackage[T1]{fontenc}
@@ -79,7 +73,7 @@
%
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
%
\usepackage{marvosym}
\makeatletter
@@ -167,16 +161,17 @@
% \label{sec:options}
%
% \DescribeMacro{\captionsetup}
+% The command
% \begin{quote}
% |\captionsetup[bi]|\marg{options}
% \end{quote}
-% do setup options which will be used for bilanguage captions \emph{additionally}
+% does setup options which will be used for bilanguage captions \emph{additionally}
% to the ones which are setup for the specific floating environment.
%
% \begin{quote}
% |\captionsetup[bi-first]|\marg{options}
% \end{quote}
-% do setup options which will be used for the \emph{first} heading
+% does setup options which will be used for the \emph{first} heading
% of the bilanguage captions \emph{additionally}
% to the ones which are setup for the specific floating environment
% and the ones which are setup by |\captionsetup[bi]{|\ldots|}|.
@@ -184,16 +179,16 @@
% \begin{quote}
% |\captionsetup[bi-second]|\marg{options}
% \end{quote}
-% do setup options which will be used for the \emph{second} heading
+% does setup options which will be used for the \emph{second} heading
% of the bilanguage captions \emph{additionally}
% to the ones which are setup for the specific floating environment
% and the ones which are setup by |\captionsetup[bi]{|\ldots|}|.
%
% \bigskip
%
-% Options specified with |\use|\-|package[|\ldots|]{bi|\-|caption}| and
-% |\caption|\-|setup[bi|\ldots|]{|\ldots|}| will override the ones specified by
-% |\caption|\-|setup{|\ldots|}| and |\caption|\-|setup[fig|\-|ure]{|\ldots|}|
+% Options specified with |\use|\-|package[|\ldots|]{bi|\-|cap|\-|tion}| and
+% |\cap|\-|tion|\-|setup[bi|\ldots|]{|\ldots|}| will override the ones specified by
+% |\cap|\-|tion|\-|setup{|\ldots|}| and |\cap|\-|tion|\-|setup[fig|\-|ure]{|\ldots|}|
% (same for `table'). So finally we have the following order how
% settings for bilingual captions are applied:
% \begin{enumerate}
@@ -242,7 +237,6 @@
%
% \begin{Options}{language=}
% \item[lang=]
-% \DescribeMacro{language=}
% Sets the language of the caption, e.g.
% \begin{quote}|\use|\-|package|\-|[lang=eng|\-|lish]{bi|\-|caption}|\end{quote}
% will typeset the second caption of bilingual captions in English.
@@ -250,7 +244,6 @@
% see \autoref{sec:babel} for details.)
%
% \item[bi-lang=]
-% \DescribeMacro{bi-lang=}
% Causes a selection of the headings of bilingual captions.
% \begin{quote}|\captionsetup{bi-lang=both}|\end{quote}
% will cause that both caption headings are being typeset.\\
@@ -261,18 +254,42 @@
% will cause that only the \emph{second} heading is being typeset.
%
% \item[bi-slc=]
-% \DescribeMacro{bi-singlelinecheck=}
-% Switches the common single-line-check |on| or |off|, i.e.~when switched on
+% \begin{quote}|\captionsetup{bi-slc=|\meta{bool}|}|\end{quote}
+% switches the common single-line-check |on| or |off|, i.e.~when switched on
% only a single check will be done for both captions, and the result will affect
% both captions afterwards. So if only one caption is longer than a single line,
% both captions will be treated as if they are longer than a single line, even if
% the second one isn't. (The default is |on|.)
%
% \item[bi-swap=]
-% \DescribeMacro{bi-swap=}
% \begin{quote}|\captionsetup{bi-swap}|\end{quote}
% will swap the primary and secondary language,
% making the first language the second one and vice versa. (The default is |false|.)
+%
+% \NEWfeature{v1.3}
+% \item[bi-separator=]
+% \begin{quote}|\captionsetup{bi-separator=|\meta{name}|}|\end{quote}
+% will select a separator between first and second bilingual caption.
+% You could choose one of the following: `none' (which is the default one
+% and could also be addressed as `default'), `smallskip', `medskip',
+% `largeskip', or a self-defined one using
+% \DescribeMacro{\DeclareBiCaptionSeparator}
+% \begin{quote}|\DeclareBiCaptionSeparator|\marg{name}\marg{code}\end{quote}
+% Examples:
+% \begin{quote}
+% |\captionsetup{bi-separator=smallskip}|
+% \end{quote}
+% will put a |\smallskip| between the two bilingual captions.
+% \begin{quote}
+% |\DeclareBiCaptionSeparator{hrule}{\hrule}|\\
+% |\captionsetup{bi-separator=hrule}|
+% \end{quote}
+% will draw a horizontal line between the two bilingual captions.
+% \begin{quote}
+% |\DeclareBiCaptionSeparator{3pt}{\vspace{3pt}}|\\
+% |\captionsetup{bi-separator=3pt}|
+% \end{quote}
+% will put |3pt| vertical space between the two bilingual captions.
% \end{Options}
%
% \section{The \cs{bicaption} commands}
@@ -337,7 +354,7 @@
% \cs{subcaptionbox}.)
% \endgroup
%
-% \PageBreak
+% \pagebreak[3]
% \section{A sample document}
% \label{sec:example}
%
@@ -444,7 +461,7 @@
% |\end{document}|
% \end{quote}
%
-% \PageBreak
+% \pagebreak[3]
% \captionsetup[bi-first]{lang=german}
% \captionsetup[bi-second]{lang=english,font=it}
% \captionsetup[sub]{format=hang,list=on}
@@ -535,7 +552,7 @@
% {Short English heading}
% \end{figure}
%
-% \PageBreak
+% \pagebreak[3]
% \section{Customising lists}
% \label{sec:lists}
%
@@ -831,7 +848,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{bicaption}[2020/08/23 v1.2a Bilingual Captions (AR)]
+\ProvidesPackage{bicaption}[2020/10/25 v1.3 Bilingual Captions (AR)]
% \end{macrocode}
% \begin{macrocode}
\RequirePackage{caption}[2020/08/23] % needs v3.5 or newer
@@ -953,6 +970,37 @@
\caption@set@bool\bicaption@ifswap{#1}}
% \end{macrocode}
%
+% The option |bi-separator| will setup the separator between
+% the two bi-lingual captions.
+% \begin{macrocode}
+\DeclareCaptionOption{bi-separator}[1]{%
+ \caption@set{biseparator}{#1}}
+% \end{macrocode}
+%
+% \begin{macro}{\DeclareBiCaptionSeparator}
+% \changes{v1.3}{2020/10/25}{This macro added}
+% |\DeclareBiCaptionSeparator|\marg{name}\marg{code}
+% \begin{macrocode}
+\newcommand\DeclareBiCaptionSeparator[2]{%
+ \caption@decl{biseparator}{#1}{#2}}
+\@onlypreamble\DeclareBiCaptionSeparator
+% \end{macrocode}
+% \end{macro}
+%
+% There are four pre-defined separators, called `none',
+% `smallskip', `medskip', and `bigskip'.
+% \begin{macrocode}
+\DeclareBiCaptionSeparator{none}{}
+\DeclareBiCaptionSeparator{smallskip}{\smallskip}
+\DeclareBiCaptionSeparator{medskip}{\medskip}
+\DeclareBiCaptionSeparator{bigskip}{\bigskip}
+% \end{macrocode}
+%
+% The default separator usually maps to `none'.
+% \begin{macrocode}
+\SetCaptionDefault{biseparator}{none}
+% \end{macrocode}
+%
% The option |lang=|\meta{language} will setup the language of the caption.
% We can't set the language immediately because otherwise we will get in trouble, e.g. when
% using the \package{microtype} package via |\usepackage[babel]{microtype}|.
@@ -1052,9 +1100,10 @@
% \pagebreak[3]
% \subsection{Execution of options}
%
-% Setup default values for |bi-lang| and |bi-singlelinecheck|.
+% Setup default values for |bi-lang|, |bi-single|\-|line|\-|check|,
+% |bi-swap|, and |bi-separator|.
% \begin{macrocode}
-\caption@ExecuteOptions{caption}{bi-lang=0,bi-slc=1,bi-swap=0}
+\caption@ExecuteOptions{caption}{bi-lang=0,bi-slc=1,bi-swap=0,bi-separator=default}
% \end{macrocode}
%
% Set the language for the first caption.
@@ -1178,6 +1227,7 @@
%
% \begin{macro}{\bicaption@@make}
% \changes{v1.1}{2015/09/16}{\cs{bicaption@label} replaced by \cs{caption@thelabel}}
+% \changes{v1.3}{2020/10/25}{Usage of \cs{caption@biseparator} added}
% |\bicaption@@make|\marg{text \#2}\marg{label}\marg{text \#1}\par
% Typeset both captions using the original version of \cs{caption@@make}.
% \begin{macrocode}
@@ -1191,8 +1241,8 @@
% \begin{macrocode}
\ifnum\bicaption@lang=0\relax
\bicaption@ifslc
- {\caption@slc{#2}{#3}{}{\KV@caption@singlelinecheck0}%
- \caption@slc{#2}{#1}{}{\KV@caption@singlelinecheck0}}%
+ {\caption@slc{#2}{#3}{}{\caption@setsinglelinecheck0}%
+ \caption@slc{#2}{#1}{}{\caption@setsinglelinecheck0}}%
{}%
\fi
% \end{macrocode}
@@ -1202,17 +1252,20 @@
\ifnum\bicaption@lang=2\relax
\caption@thelabel
\global\let\caption@thelabel\relax
+ \let\bicaption@tempa\relax
\else
\begingroup
\caption@setoptions{bi-first}%
\caption@@make@{#2}{#3}%
\endgroup
+ \def\bicaption@tempa{\bicaption@separator\caption@biseparator}%
\fi
% \end{macrocode}
% Typeset the second caption, if requested.
% \begin{macrocode}
\ifnum\bicaption@lang=1\relax
\else
+ \bicaption@tempa
\begingroup
\caption@setoptions{bi-second}%
\caption@@make@{#2}{#1}%
@@ -1220,6 +1273,9 @@
\fi
}
% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\bicaption@separator{\par}
+% \end{macrocode}
% \end{macro}
%
% \pagebreak[3]
diff --git a/macros/latex/contrib/caption/bicaption.pdf b/macros/latex/contrib/caption/bicaption.pdf
index 577c124eac..07d8b5937c 100644
--- a/macros/latex/contrib/caption/bicaption.pdf
+++ b/macros/latex/contrib/caption/bicaption.pdf
Binary files differ
diff --git a/macros/latex/contrib/caption/caption-ams-smf.dtx b/macros/latex/contrib/caption/caption-ams-smf.dtx
index e36d586fb5..cc036505c6 100644
--- a/macros/latex/contrib/caption/caption-ams-smf.dtx
+++ b/macros/latex/contrib/caption/caption-ams-smf.dtx
@@ -80,7 +80,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-ams-smf.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-beamer.dtx b/macros/latex/contrib/caption/caption-beamer.dtx
index 57993b5c49..934f489f4a 100644
--- a/macros/latex/contrib/caption/caption-beamer.dtx
+++ b/macros/latex/contrib/caption/caption-beamer.dtx
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-beamer.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-elsarticle.dtx b/macros/latex/contrib/caption/caption-elsarticle.dtx
index c7f0922c14..878e855022 100644
--- a/macros/latex/contrib/caption/caption-elsarticle.dtx
+++ b/macros/latex/contrib/caption/caption-elsarticle.dtx
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-elsarticle.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-eng.pdf b/macros/latex/contrib/caption/caption-eng.pdf
index 781d10e0c4..866fef2063 100644
--- a/macros/latex/contrib/caption/caption-eng.pdf
+++ b/macros/latex/contrib/caption/caption-eng.pdf
Binary files differ
diff --git a/macros/latex/contrib/caption/caption-eng.tex b/macros/latex/contrib/caption/caption-eng.tex
index a26aa0ca3b..21a61546be 100644
--- a/macros/latex/contrib/caption/caption-eng.tex
+++ b/macros/latex/contrib/caption/caption-eng.tex
@@ -31,7 +31,7 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-eng.tex}[2020/09/12 v3.5 The caption package]
+\ProvidesFile{caption-eng.tex}[2020/09/21 v3.5 The caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=20pt % Make TeX shut up.
%\errorcontextlines=3
@@ -115,7 +115,7 @@
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
\newcommand*\x{\discretionary{}{}{}}
\newenvironment{Annotation}%
@@ -253,7 +253,7 @@ It documents the options and commands available in version \version{3.1} of the
What now?
\begin{itemize}
\item
- I will start revising this documentation in the next weeks, finally bringing it up-to-date.
+ I will update this documentation in the next weeks, finally bringing it up-to-date.
\item
Until the revised documentation is ready the most recent version could be found at
\url{https://gitlab.com/axelsommerfeldt/caption/-/blob/master/doc/caption-eng.pdf}
@@ -447,10 +447,14 @@ you specify how the caption label will be typeset.
There are five standard caption label formats:
\begin{Options}{\OptionLabel}
- \item[default]
+ \item[original]
The caption label will be typeset as specified by the document class,
usually this means the name and the number (like \texttt{simple}).
- (This is the default behaviour.)
+
+ Until \version{3.4} of \thispackage\ this label format was called `default'.
+ Since \version{3.5} it is called `original' and usually is the default label
+ format, so |label|\-|format=|\-|default| will still select this label format,
+ unless the default was changed by either a document class or babel language package.
\item[empty]
The caption label will be empty.
@@ -4147,36 +4151,51 @@ could be used to adapt the \package{caption} package default values:
\DescribeMacro{\SetCaptionDefault}
The command
-\begin{quote}|\SetCaptionDefault*|\marg{option}\marg{default value}\end{quote}
+\begin{quote}
+ |\SetCaptionDefault*|\marg{option}\marg{default value}
+\end{quote}
changes the default value for the option \meta{option}, for example:
\begin{quote}
-|\SetCaptionDefault{format}{hang}|\\
-|\SetCaptionDefault{justification}{raggedright}|\\
-|\DeclareCaptionLabelSeparator{silly}{ +++ }|\\
-|\SetCaptionDefault{labelseparator}{silly}|
+ |\SetCaptionDefault{format}{hang}|\\
+ |\SetCaptionDefault{justification}{raggedright}|\\
+ |\DeclareCaptionLabelSeparator{silly}{ +++ }|\\
+ |\SetCaptionDefault{labelseparator}{silly}|
\end{quote}
This command is available for the options
-|box|,
-|font|,
-|format|,
-|justification|,
-|label|\-|font|,
-|label|\-|format|,
-|label|\-|separator|,
-|list|\-|format|,
-|margin|,
-|parbox|,
-|position|,
-|single|\-|line|\-|check|,
-|text|\-|font|,
-|text|\-|format|, and
-|width|.
+ |box|,
+ |font|,
+ |format|,
+ |justification|,
+ |label|\-|font|,
+ |label|\-|format|,
+ |label|\-|separator|,
+ |list|\-|format|,
+ |margin|,
+ |parbox|,
+ |position|,
+ |single|\-|line|\-|check|,
+ |text|\-|font|,
+ |text|\-|format|, and
+ |width|.
The starred variant only makes a difference when setting the default length
of either |margin| or |width|, in this case it will use |\def| internally
instead of |\edef| to store the value so the actual margin will be calculated
when used (and not when set).
+\DescribeMacro{\SetCaptionFallback}
+The command
+\begin{quote}
+ |\SetCaptionFallback|\marg{option}\marg{fallback value}
+\end{quote}
+changes the fallback value for the option \meta{option}, for example:
+\begin{quote}
+ |\SetCaptionFallback{labelformat}{simple}|
+\end{quote}
+Currently only the pre-defined label format `original' uses a fallback
+value when |\fnum@|\meta{environment} is not defined for the current (floating)
+environment.
+
\DescribeMacro{\AtCaptionPackage}
The adaption file will be loaded when the \package{caption} kernel |caption3.sty|
will be loaded so the given adaptions will be done for the \package{floatrow}
diff --git a/macros/latex/contrib/caption/caption-koma.dtx b/macros/latex/contrib/caption/caption-koma.dtx
index dc76dbad1c..380a054df9 100644
--- a/macros/latex/contrib/caption/caption-koma.dtx
+++ b/macros/latex/contrib/caption/caption-koma.dtx
@@ -79,7 +79,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-koma.drv}
% \let\docdate\filedate
@@ -193,7 +193,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-koma.sto}[2020/09/12 v2.0a Adaption of the caption package to the KOMA-Script document classes (AR)]
+\ProvidesFile{caption-koma.sto}[2020/09/21 v2.0b Adaption of the caption package to the KOMA-Script document classes (AR)]
% \end{macrocode}
%
% \section{Margin resp. width}
@@ -380,9 +380,9 @@
%
% \section{Label format}
%
-% The `default' caption label format maps to `autodot'.
+% The `fallback' caption label format maps to `autodot'.
% \begin{macrocode}
-\SetCaptionDefault{labelformat}{autodot}
+\SetCaptionFallback{labelformat}{autodot}
% \end{macrocode}
%
% \section{Label separator}
diff --git a/macros/latex/contrib/caption/caption-light.dtx b/macros/latex/contrib/caption/caption-light.dtx
index 3b9b907112..c56734a414 100644
--- a/macros/latex/contrib/caption/caption-light.dtx
+++ b/macros/latex/contrib/caption/caption-light.dtx
@@ -75,7 +75,7 @@
%
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
%
\usepackage{marvosym}
\makeatletter
diff --git a/macros/latex/contrib/caption/caption-memoir.dtx b/macros/latex/contrib/caption/caption-memoir.dtx
index 1233515b1c..1f29e68cb8 100644
--- a/macros/latex/contrib/caption/caption-memoir.dtx
+++ b/macros/latex/contrib/caption/caption-memoir.dtx
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{7}
+% \CheckSum{56}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-memoir.drv}[2018/05/24 v2.0 Implementation of the caption-memoir package]
+\ProvidesFile{caption-memoir.drv}[2020/10/10 v2.1 Implementation of the caption-memoir package]
\hbadness=9999 \newcount\hbadness \hfuzz=100pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-memoir.drv}
% \let\docdate\filedate
@@ -183,7 +183,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-memoir.sto}[2020/07/31 v2.0 Adaption of the caption package to the memoir document class (AR)]
+\ProvidesFile{caption-memoir.sto}[2020/10/10 v2.1 Adaption of the caption package to the memoir document class (AR)]
% \end{macrocode}
%
% \section{Adaptions already included in the caption package}
@@ -193,24 +193,115 @@
% \item \cs{@caption} expands \cs{memcaptioninfo}
% \item \cs{caption@prepareanchor} expands \cs{M@gettitle}
% \item \cs{caption@refstepcounter} expands \cs{donemaincaptiontrue}
-% \item Since the \class{memoir} document class resets the sub-caption
-% counter at |\@float|, right after |\done|\-|main|\-|caption|\-|false|,
-% all sub-caption counters will be saved at |\done|\-|main|\-|caption|\-|false|
-% so they can (and will) be restored using |\caption@|\-|restore|\-|counters|
-% at |\continued|\-|float|.
+% \item All sub-caption counters will be reset at |\@mem|\-|reset|\-|sub|\-|counter|,
+% even if they weren't defined by the \class{memoir} document class itself.
+% As work-around this command will be patched to protect the counters
+% defined by |\Declare|\-|Caption|\-|Sub|\-|Type|.
% \end{itemize}
%
% \section{Single-line-check}
%
% \begin{macro}{\caption@prepareslc}
-% \changes{v1.4a}{2011/10/21}{Redefinition of \cs{pagenote} from \textsf{memoir} document class added}
-% We re-define \cs{pagenote} here so it won't disturb the single-line-check.
+% \changes{v1.4a}{2011/10/21}{Re-definition of \cs{pagenote} added}
+% We re-define \cs{pagenote} here so it won't disturb the single-line-check.
% \begin{macrocode}
\g@addto@macro\caption@prepareslc{%
\let\pagenote\caption@gobble}
% \end{macrocode}
% \end{macro}
%
+% \section{Label separator}
+%
+% The `default' caption label separator maps to \cs{@contdelim}.
+% \begin{macrocode}
+\DeclareCaptionLabelSeparator{@contdelim}{\@contdelim}
+\SetCaptionDefault{labelseparator}{@contdelim}
+% \end{macrocode}
+%
+% \begin{macro}{\captiondelim}
+% \changes{v2.1}{2020/10/10}{Re-definition of \cs{captiondelim} added}
+% We re-define |\caption|\-|delim| so it will set the \package{caption3} label separator setting, too.
+% \begin{macrocode}
+\let\caption@memoir@delim\captiondelim
+\renewcommand\captiondelim{%
+ \captionsetup{labelsep=@contdelim}%
+ \caption@memoir@delim}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.0a}{2020/10/10}{Re-definition of label separator `gobble' added}
+% If |\fnum@figure| (or |\fnum@table| or\ldots) ends with |\@gobble|, the `:' part of the caption
+% label separator will be suppressed when a standard document class (\class{article}, \class{report},
+% or \class{book}) will be used, leaving the following space character intact.
+% This is different when using the \class{memoir} document class, in this case the complete
+% label separator will be suppressed. For this reason we re-define the pre-defined caption label
+% separator `gobble' to emulate this behaviour.
+%
+% \begin{macrocode}
+\DeclareCaptionLabelSeparator{gobble}{}
+% \end{macrocode}
+%
+% \section{Fonts}
+%
+% The `default' caption fonts map to \cs{@contnfont} resp.~\cs{conttfont}.
+% \begin{macrocode}
+\DeclareCaptionFont{@contnfont}{\@contnfont}
+\SetCaptionDefault{labelfont}{@contnfont}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareCaptionFont{@conttfont}{\@conttfont}
+\SetCaptionDefault{textfont}{@conttfont}
+% \end{macrocode}
+%
+% \begin{macro}{\captionnamefont}
+% \changes{v2.1}{2020/10/10}{Re-definition of \cs{captionnamefont} added}
+% We re-define |\caption|\-|delim| so it will set the \package{caption3} label separator setting, too.
+% \begin{macrocode}
+\let\caption@memoir@namefont\captionnamefont
+\renewcommand\captionnamefont{%
+ \captionsetup{labelfont=@contnfont}%
+ \caption@memoir@namefont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captiontitlefont}
+% \changes{v2.1}{2020/10/10}{Re-definition of \cs{captiontitlefont} added}
+% We re-define |\caption|\-|delim| so it will set the \package{caption3} label separator setting, too.
+% \begin{macrocode}
+\let\caption@memoir@titlefont\captiontitlefont
+\renewcommand\captiontitlefont{%
+ \captionsetup{textfont=@conttfont}%
+ \caption@memoir@titlefont}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Vertical spaces before and after captions}
+%
+% The \class{memoir} document classes uses |\above|\-|caption|\-|skip| and |\below|\-|caption|\-|skip|
+% different than the standard document classes and the \package{caption} package:
+% They always typeset |\above|\-|caption|\-|skip| before the caption and
+% |\below|\-|caption|\-|skip| after the captions. Both are preset to |0.5\one|\-|line|\-|skip|.
+%
+% For this reason we have to set the |\below|\-|caption|\-|skip| to |0pt| if the \package{caption}
+% package is used, so no extra vertical space will be created.
+%
+% \begin{macrocode}
+\AtCaptionPackage{\setlength\belowcaptionskip{0pt}}
+% \end{macrocode}
+%
+% \section{TODO}
+%
+% \begin{macrocode}
+% TODO: \captionstyle
+% TODO: \captionwidth, \changecaptionwidth, \normalcaptionwidth
+% TODO: \hangcaption, \indentcaption, \normalcaption
+% TODO: \precaption, \postcaption, \midbicaption
+% TODO: \captiontitlefinal
+% TODO: \contcaption
+% TODO: \newfixedcaption, \renewfixedcaption, \providefixedcaption
+%
+% \end{macrocode}
+%
% \iffalse
%</package>
% \fi
diff --git a/macros/latex/contrib/caption/caption-ntg.dtx b/macros/latex/contrib/caption/caption-ntg.dtx
index 61c6ed8116..97e0379f5f 100644
--- a/macros/latex/contrib/caption/caption-ntg.dtx
+++ b/macros/latex/contrib/caption/caption-ntg.dtx
@@ -77,7 +77,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-ntg.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-thesis.dtx b/macros/latex/contrib/caption/caption-thesis.dtx
index a26ea7b31a..c358eadff1 100644
--- a/macros/latex/contrib/caption/caption-thesis.dtx
+++ b/macros/latex/contrib/caption/caption-thesis.dtx
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-thesis.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption.dtx b/macros/latex/contrib/caption/caption.dtx
index 3e79199f55..09cef7fb86 100644
--- a/macros/latex/contrib/caption/caption.dtx
+++ b/macros/latex/contrib/caption/caption.dtx
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{2697}
+% \CheckSum{2692}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption.drv}[2015/09/16 v3.5 Implementation of the caption package]
+\ProvidesFile{caption.drv}[2020/10/11 v3.5 Implementation of the caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=100pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -84,7 +84,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \newcommand*\issue[1]{GitLab~\##1}
%
@@ -136,6 +136,30 @@
% \footnotetext{Thanks a lot to Olga Lapko for this translation}
% \end{quote}
%
+% \pagebreak[4]
+% \section*{Internal commands}
+%
+% These internal commands are save to use by other packages as well
+% since their interface will not change in future releases:
+% \begin{quote}\begin{tabular}{ll}
+% Internal command & Currently used by \\
+% \hline
+% |\caption@kernel@addcontentsline| & \package{floatrow} \\
+% |\caption@makecaption| & \package{bidi} \\
+% |\caption@settype| & \package{newfloat} \\
+% |\caption@setsubtype| & \package{floatrow} \\
+% |\caption@starfalse| & \package{bidi} \\
+% |\caption@startrue| & \package{bidi} \\
+% |\caption@xlabel| & \package{cleveref} \\
+% \end{tabular}\end{quote}
+%
+% If your package wants to use any other internal command of the \package{caption} package,
+% please write me an e-mail so we can define a proper interface together.
+%
+% The \package{lwarp} package uses a lot of internal commands as well,
+% but we are working on it on the Git branch \texttt{feature/lwarp}:
+% \url{https://gitlab.com/axelsommerfeldt/caption/-/tree/feature/lwarp}
+%
% \StopEventually{}
% \clearpage
% \tableofcontents
@@ -217,13 +241,13 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption}[2020/09/12 v3.5b Customizing captions (AR)]
+\ProvidesPackage{caption}[2020/10/26 v3.5g Customizing captions (AR)]
% \end{macrocode}
%
% \section{Loading the kernel}
%
% \begin{macrocode}
-\RequirePackage{caption3}[2020/09/12] % needs v2.1 or newer
+\RequirePackage{caption3}[2020/10/06] % needs v2.2b or newer
% \end{macrocode}
%
% \section{Check against unknown document classes}
@@ -311,36 +335,105 @@
\captionsetup{list-entry=default}
% \end{macrocode}
%
+% \begin{macro}{\caption@declparboxrestore}
+% \changes{v3.5g}{2020/10/26}{This macro added}
+% |\caption@declparboxrestore|\marg{name}\marg{code}
+% \begin{macrocode}
+% TODO: Remove \caption@declparboxrestore
+\newcommand\caption@declparboxrestore{%
+ \caption@decl{parboxrestore}}
+% \end{macrocode}
+% \begin{macrocode}
+\@onlypreamble\caption@declparboxrestore
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@setparboxrestore}
% \changes{v3.2}{2010/11/07}{This macro added}
+% \changes{v3.5g}{2020/10/26}{New implementation; default changed from `partial' to `full'}
% |\caption@setparboxrestore|\marg{\purett{partial} or \purett{full}}
% \begin{macrocode}
-\newcommand*\caption@setparboxrestore[1]{%
- \caption@ifinlist{#1}{full}{%
- \caption@setfullparboxrestore
- }{\caption@ifinlist{#1}{default,light,partial}{%
- \let\caption@parboxrestore\@secondoftwo
- }{%
- \caption@Error{Undefined parboxrestore `#1'}%
- }}}
+% TODO: Remove \caption@setparboxrestore
+\newcommand*\caption@setparboxrestore{%
+ \caption@set{parboxrestore}}
+% \end{macrocode}
+% \begin{macrocode}
+\caption@declparboxrestore{full}{%
+ \@parboxrestore}
+% \end{macrocode}
+% The original code (from |latex/base/ltboxes.dtx|):
+% \begin{verbatim}
+% \def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
+% \def\@arrayparboxrestore{%
+% \let\if@nobreak\iffalse
+% \let\if@noskipsec\iffalse
+% \let\par\@@par
+% \let\-\@dischyph
+% \let\'\@acci\let\`\@accii\let\=\@acciii
+% \parindent\z@ \parskip\z@skip
+% \everypar{}%
+% \linewidth\hsize
+% \@totalleftmargin\z@
+% \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+% \parfillskip\@flushglue \lineskip\normallineskip
+% \baselineskip\normalbaselineskip
+% \sloppy}
+% \end{verbatim}%^^A
+% This one will be used by |\@caption| instead of |\@parboxrestore|.
+% \begin{macrocode}
+\caption@declparboxrestore{partial}{%
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+% \let\-\@dischyph
+% \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parindent\z@ \parskip\z@skip
+ \everypar{}%
+% \linewidth\hsize
+% \@totalleftmargin\z@
+ \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+ \parfillskip\@flushglue \lineskip\normallineskip
+ \baselineskip\normalbaselineskip
+ \sloppy
+ \let\\\@normalcr}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption@setfullparboxrestore}
-% \changes{v3.2}{2010/11/07}{This macro added}
-% |\caption@setfullparboxrestore|\par
-% This is an abbreviation for |\caption@setparboxrestore{full}|.
+% \begin{macro}{\caption@parboxrestore@mini}
+% \changes{v3.2}{2010/10/24}{This macro added}
+% \changes{v3.5g}{2020/10/26}{Renamed from \cs{caption@boxrestore@mini} to \cs{caption@parboxrestore@mini}}
+% Resets |\par| so the very first |\par| in |\@caption| behaves quite the same as in floating environments.
+% Will be used by |\set|\-|caption|\-|type|.
% \begin{macrocode}
-\newcommand*\caption@setfullparboxrestore{%
- \let\caption@parboxrestore\@firstoftwo}
+\caption@declparboxrestore{mini}{%
+ \let\par\@@par
+ \parindent\z@ \parskip\z@skip
+ \sloppy}
% \end{macrocode}
% \end{macro}
%
+% `default' usually maps to `full'.
+% \changes{v3.5g}{2020/10/26}{The default of \cs{caption@parboxrestore} maps to `full' instead of `partial' now}
+% \begin{macrocode}
+\SetCaptionDefault{parboxrestore}{full}
+% \end{macrocode}
+%
% \changes{v3.2}{2010/11/07}{Option \opt{parboxrestore} added}
% \begin{macrocode}
+% TODO: Remove the (undocumentated) option "parboxrestore"
\DeclareCaptionOption{parboxrestore}{\caption@setparboxrestore{#1}}
+% \end{macrocode}
+%
+% \begin{macro}{\caption@parboxrestore}
+% \changes{v3.1}{2007/03/03}{This macro and its usage added}
+% \changes{v3.1b}{2007/09/17}{Bugfix: Redefinition of CR added}
+% \changes{v3.2}{2010/11/07}{Support of option \opt{parboxrestore} added}
+% \changes{v3.5g}{2020/10/26}{New implementation; renamed from \cs{caption@boxrestore} to \cs{caption@parboxrestore}}
+% \begin{macrocode}
+% TODO: Change definition to \def\caption@parboxrestore{\@parboxrestore}
\captionsetup{parboxrestore=default}
% \end{macrocode}
+% \end{macro}
%
% \changes{v3.1f}{2007/11/28}{Option \opt{@minipage=} added}
% \begin{macrocode}
@@ -644,14 +737,10 @@
% \changes{v3.2f}{2012/01/14}{Usage of \cs{M@gettitle} moved to \cs{caption@prepareanchor}}
% \changes{v3.3}{2013/01/06}{Adapted to the \textsf{nag} package}
% As above, our version has been adapted to the packages we support.
-% Additionally our code is nested by |\caption@beginex| \&
-% |\caption@end| instead of |\begingroup| \& |\endgroup|.
-% Furthermore we use |\caption@boxrestore| instead of |\@parboxrestore|
-% so this code also works correctly inside list-based environments
-% like |wide| \& |addmargin|. (This, and the fact that we use
-% |\linewidth| instead of |\hsize| inside |\@makecaption|, solves
-% \href{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/2472}%^^A
-% {\LaTeX\ PR \texttt{latex/2472}}.)
+% Additionally our code is nested by |\caption@begin|\-|ex| \&
+% |\caption@end| instead of |\begin|\-|group| \& |\end|\-|group|.
+% Furthermore we use |\caption@par|\-|box|\-|restore| instead of
+% |\@parbox|\-|restore|.
% \begin{macrocode}
\long\def\caption@@caption#1[#2]#3{%
% \end{macrocode}
@@ -666,7 +755,7 @@
\par
\caption@beginex{#1}{#2}{#3}%
\caption@setfloatcapt{%
- \caption@boxrestore
+ \caption@parboxrestore
\if@minipage
\@setminipage
\fi
@@ -916,16 +1005,17 @@
% \changes{v3.2}{2010/10/24}{This macro added}
% \changes{v3.4e}{2020/01/02}{Check added if the subtype is defined}
% \changes{v3.5}{2020/08/24}{Definition method adapted to the \package{caption-light} package}
-% Like |\captionsetup{type=xxx}|, but also works if \cs{captionsetup} was redefined.
+% Like |\captionsetup{type=xxx}|, but also works if |\caption|\-|setup| was redefined.
% \begin{macrocode}
\def\setcaptiontype{%
- \caption@boxrestore@mini
+ \caption@parboxrestore@mini
\caption@settype}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\setcaptionsubtype}
% \changes{v3.2a}{2011/08/15}{This macro added}
+% \changes{v3.5d}{2020/09/28}{This macro revised}
% Same, but sets the sub-type.
% \begin{macrocode}
\newcommand\setcaptionsubtype{%
@@ -935,9 +1025,11 @@
% \end{macrocode}
% \begin{macrocode}
\newcommand\caption@setsubtype{%
- \@ifstar
- {\caption@@settype{sub}*{sub\@captype}}%
- {\caption@@settype{sub}{sub\@captype}}}%
+ \caption@teststar\caption@@setsubtype\@firstoftwo\@secondoftwo}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@@setsubtype[1]{%
+ \caption@@@settype{sub}{#1}{sub\@captype}}
% \end{macrocode}
% \end{macro}
%
@@ -951,6 +1043,7 @@
% \changes{v3.2}{2010/10/26}{Error message moved from here to \cs{caption@refstepcounter}}
% \changes{v3.3}{2011/12/28}{Resetting of \cs{ifcaption@caption} and \cs{ifcaption@subcaption} added}
% \changes{v3.4e}{2020/01/02}{Checks added to prevent misuse regading subtypes}
+% \changes{v3.5d}{2020/09/28}{This macro revised}
% |\caption@settype*|\marg{type}\par
% sets |\@captype| and executes the options associated with it
% (using |\caption@set|\-|options|).
@@ -968,17 +1061,17 @@
% \end{macrocode}
% \begin{macrocode}
\newcommand*\caption@set@type{%
- \caption@@settype{}}
+ \caption@teststar\caption@@settype\@firstoftwo\@secondoftwo}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*\caption@@settype[1]{%
- \caption@teststar{\caption@@@settype{#1}}\@firstoftwo\@secondoftwo}
+\newcommand*\caption@@settype{%
+ \caption@@@settype{}}
% \end{macrocode}
% \begin{macrocode}
\newcommand*\caption@@@settype[3]{%
% #1 = "" or "sub"
% #2 = \@firstoftwo in star form, \@secondoftwo otherwise
-% #3 = <type>, e.g. "figure" or "subfigure"
+% #3 = <type>, e.g.: "figure" or "subfigure"
\caption@Debug{#1type=#3}%
\@nameuse{caption@check#1type}{#3}%
{\caption@checkgrouplevel{#1}{%
@@ -1273,6 +1366,7 @@
% \changes{v3.3}{2013/05/01}{Usage of \cs{caption@restorecounters} added}
% \changes{v3.3}{2013/12/16}{Bugfix: Does not use \cs{caption@ContinuedFloat} anymore since this breaks \cs{ContinuedFloat} offered by the \package{subfig} package}
% \changes{v3.4}{2015/09/16}{Renamed from \cs{ContinuedFloat} to \cs{continuedfloat}}
+% \changes{v3.5f}{2020/10/06}{Usage of \cs{caption@restorecounters} removed}
% |\continuedfloat|\\
% |\continuedfloat*|\par
% This mainly sets the appropriate flag, increments the
@@ -1308,7 +1402,6 @@
\newcommand*\caption@continued@float[1]{%
\edef\caption@tempa{#1}%
\ifx\caption@tempa\caption@CFtype
- \caption@restorecounters
\caption@@continuedfloat{#1}%
\else
\caption@Error{Continued `#1' after `\caption@CFtype'}%
@@ -1381,18 +1474,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\donemaincaptionfalse}
-% Since the \class{memoir} document class resets the sub-caption
-% counter at |\@float|, right after |\done|\-|main|\-|caption|\-|false|,
-% we save all sub-caption counters at |\done|\-|main|\-|caption|\-|false|
-% so we can restore them using |\caption@restore|\-|counters|
-% inside |\continued|\-|float|.
-% \begin{macrocode}
-\caption@ifdefined\donemaincaptionfalse{%
- \g@addto@macro\donemaincaptionfalse\caption@savesubcounters}{}
-% \end{macrocode}
-% \end{macro}
-%
% \section{Internal helpers}
%
% \begin{macro}{\caption@refstepcounter}
@@ -1400,6 +1481,7 @@
% \changes{v3.2}{2010/10/26}{Error message moved from \cs{caption@@@settype} to here}
% \changes{v3.2c}{2011/09/04}{Support of \cs{donemaincaptiontrue} from \textsf{memoir} document class added}
% \changes{v3.3}{2011/12/28}{Usage of \cs{ifcaption@caption}, \cs{ifcaption@subcaption}, and \cs{ifcaption@ContinuedFloat} added}
+% \changes{v3.5e}{2020/09/28}{Bugfix in re-definition of \cs{stepcounter}; uses \cs{edef} instead of \cs{def} now}
% Increments the float (i.e. |figure| or |table|) counter,
% resets the continuation counter, and redefines itself to |\@gobble|.
% \begin{macrocode}
@@ -1433,7 +1515,7 @@
\let\caption@tempa\caption@@refstepcounter
\caption@ifflag2{}{% caption
\caption@ifflag4{% subcaption
-% Counter was already incremented by content, so we suppress \stepcounter{#1} here
+ % Counter was already incremented by content, so we suppress \stepcounter{#1} here
\let\caption@tempa\caption@@refcounter
}{}%
}%
@@ -1444,8 +1526,8 @@
\newcommand*\caption@@refcounter[1]{%
\let\caption@stepcounter@ORI\stepcounter
\def\stepcounter##1{%
- \def\caption@tempa{#1}%
- \def\caption@tempb{##1}%
+ \edef\caption@tempa{#1}%
+ \edef\caption@tempb{##1}%
\ifx\caption@tempa\caption@tempb \else
\caption@stepcounter@ORI{##1}%
\fi}%
@@ -1477,8 +1559,7 @@
%
% \begin{macro}{\caption@dblarg}
% \changes{v3.1}{2007/02/05}{This macro added}
-% \changes{v3.1f}{2007/12/06}{Bugfix 07-12-06: Changed so it works without \cs{kernel@ifnextchar}
-% (which was introduced in \LaTeXe\ 2004/01/23), too}
+% \changes{v3.1f}{2007/12/06}{Bugfix 07-12-06: Changed so it works without \cs{kernel@ifnextchar} (which was introduced in \LaTeXe\ 2004/01/23), too}
% \changes{v3.3}{2012/03/25}{Support of option \opt{list-entry} added}
% A |\relax| was added compared to |\@dblarg| so |\caption{}| will be
% expanded to |\caption[\relax]{}| (and not to |\caption[]{}|).
@@ -1572,62 +1653,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption@boxrestore}
-% \changes{v3.1}{2007/03/03}{This macro and its usage added}
-% \changes{v3.1b}{2007/09/17}{Bugfix: Redefinition of CR added}
-% \changes{v3.2}{2010/11/07}{Support of option \opt{parboxrestore} added}
-% The original code (from |latex/base/ltboxes.dtx|):
-% \begin{verbatim}
-% \def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
-% \def\@arrayparboxrestore{%
-% \let\if@nobreak\iffalse
-% \let\if@noskipsec\iffalse
-% \let\par\@@par
-% \let\-\@dischyph
-% \let\'\@acci\let\`\@accii\let\=\@acciii
-% \parindent\z@ \parskip\z@skip
-% \everypar{}%
-% \linewidth\hsize
-% \@totalleftmargin\z@
-% \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
-% \parfillskip\@flushglue \lineskip\normallineskip
-% \baselineskip\normalbaselineskip
-% \sloppy}
-% \end{verbatim}%^^A
-% This one will be used by |\@caption| instead of |\@parboxrestore|.
-% \begin{macrocode}
-\newcommand*\caption@boxrestore{%
- \caption@parboxrestore{\@parboxrestore}{%
- \let\if@nobreak\iffalse
- \let\if@noskipsec\iffalse
- \let\par\@@par
-% \let\-\@dischyph
-% \let\'\@acci\let\`\@accii\let\=\@acciii
- \parindent\z@ \parskip\z@skip
- \everypar{}%
-% \linewidth\hsize
-% \@totalleftmargin\z@
- \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
- \parfillskip\@flushglue \lineskip\normallineskip
- \baselineskip\normalbaselineskip
- \sloppy
- \let\\\@normalcr
- }}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@boxrestore@mini}
-% \changes{v3.2}{2010/10/24}{This macro added}
-% Resets \cs{par} so the very first \cs{par} in \cs{@caption} behaves quite the same as in floating environments.
-% Will be used by \cs{setcaptiontype}.
-% \begin{macrocode}
-\newcommand\caption@boxrestore@mini{%
- \let\par\@@par
- \parindent\z@ \parskip\z@skip
- \sloppy}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\caption@normalsize}
% \changes{v3.1}{2007/05/05}{This macro and its usage added}
% \changes{v3.5}{2020/07/27}{Adapted to \package{caption3} v2.0}
@@ -1776,7 +1801,8 @@
\caption@AtBeginDocument{%
\caption@ifundefined\@subfloatrowtrue
{\newif\if@subfloatrow
- \caption@ifundefined\subfloatrow{}%
+ \caption@ifundefined\subfloatrow
+ {}%
{\caption@Debug{Patching subfloatrow environment}%
\g@addto@macro\capsubrowsettings{\@subfloatrowtrue}%
\g@addto@macro\killfloatstyle{%
@@ -1831,8 +1857,7 @@
% \end{macro}
%
% \begin{macro}{\caption@addsubcontentsline}
-% \changes{v3.1i}{2008/08/02}{Bugfix 08-07-28:
-% \cs{label}, \cs{index}, and \cs{glossary} are allowed inside the list entry now}
+% \changes{v3.1i}{2008/08/02}{\cs{label}, \cs{index}, and \cs{glossary} are allowed inside the list entry now}
% \changes{v3.2}{2011/06/26}{Uses \cs{caption@@addcontentsline} instead of \cs{addcontentsline} now}
% \changes{v3.2c}{2011/08/19}{Uses \cs{caption@gobble} instead of \cs{@gobble} now}
% \changes{v3.3}{2012/01/15}{Debug message added}
@@ -2551,14 +2576,14 @@
% |\caption|\-|setup[|\-|floating|\meta{type}|]{|\ldots|}| is supported.
% \item |\line|\-|width| must be set correctly.
% Usually this is done by |\@par|\-|box|\-|restore| inside |\@caption|,
-% but since we use |\@caption@box|\-|restore| we have to map this to
+% but since we use |\@caption@parbox|\-|restore| we have to map this to
% |\@par|\-|box|\-|restore| instead.
% \end{enumerate}
% \begin{macrocode}
\newcommand*\caption@floatflt[1]{%
\caption@settype{#1}%
\caption@clearmargin
- \caption@setfullparboxrestore
+ \caption@setparboxrestore{full}%
\caption@setoptions{floating#1}}%
% \end{macrocode}
% \end{macro}
@@ -3451,7 +3476,7 @@
%
% \begin{macro}{\caption@window}
% \changes{v3.1c}{2007/10/06}{Bugfix: \cs{caption@clearmargin} added}
-% Beside calling |\caption@settype| we redefine |\caption@boxrestore|
+% Beside calling |\caption@settype| we redefine |\caption@par|\-|box|\-|restore|
% (as in \package{floatflt} \& \package{picins} package support)
% and |\@makecaption| (as in \package{float} package support) here.
% \begin{macrocode}
@@ -3460,7 +3485,7 @@
\caption@setautoposition b%
\caption@settype{#1}%
\caption@clearmargin
- \caption@setfullparboxrestore}%
+ \caption@setparboxrestore{full}}%
% \end{macrocode}
% \end{macro}
%
@@ -3567,9 +3592,9 @@
% \item We use |\caption@setoptions{parpic}| so
% |\captionsetup[parpic]{|\ldots|}| is supported.
% \item |\linewidth| must be set correctly.
-% Usually this is done by |\@parboxrestore| inside |\@caption|,
-% but since we use |\@caption@boxrestore| we have to map this to
-% |\@parboxrestore| instead.
+% Usually this is done by |\@parbox|\-|restore| inside |\@caption|,
+% but since we use |\@caption@parbox|\-|restore| we have to map this to
+% |\@parbox|\-|restore| instead.
% \item The two arguments of |\caption| (|\sh@rtf@rm| \& |\capti@nt@xt|)
% should be expanded on first level so |\caption[]{|\ldots|}| and
% |\caption[|\ldots|]{}| work correctly.
@@ -3588,7 +3613,7 @@
% \else
% \captionwidth\z@ % do not use "width=" setting
% \fi
- \caption@setfullparboxrestore
+ \caption@setparboxrestore{full}%
\caption@setoptions{parpic}%
\caption@setautoposition b%
% \end{macrocode}
@@ -3905,7 +3930,7 @@
% \end{macrocode}
% \begin{macrocode}
\caption@beginex{#1}{#2}{#3}%
- \caption@boxrestore
+ \caption@parboxrestore
\caption@normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\caption@end}%
@@ -3972,7 +3997,7 @@
% \begin{macrocode}
\@initisotab
\caption@beginex{#1}{#2}{#3}%
- \caption@boxrestore
+ \caption@parboxrestore
\caption@normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\caption@end
diff --git a/macros/latex/contrib/caption/caption2.dtx b/macros/latex/contrib/caption/caption2.dtx
index 074dd7c630..9e6850dfe6 100644
--- a/macros/latex/contrib/caption/caption2.dtx
+++ b/macros/latex/contrib/caption/caption2.dtx
@@ -32,7 +32,7 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{868}
+% \CheckSum{864}
%
% \iffalse
%<*driver>
@@ -211,7 +211,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption2}[2020/01/02 v2.2e Customising captions (AR)]
+\ProvidesPackage{caption2}[2020/09/28 v2.2f Customising captions (AR)]
% \end{macrocode}
%
% \changes{v2.2b}{2007/06/15}{Made obsolete warning even more annoying}
@@ -230,7 +230,7 @@
% \subsection{Loading the caption3 kernel}
%
% \begin{macrocode}
-\RequirePackage{caption3}[2019/12/31] % should be used with v1.8f or newer
+\RequirePackage{caption3}[2020/09/28] % needs v2.2a or newer
% \end{macrocode}
% We undefine user commands offered by \package{caption} but not by \package{caption2}
% since they should not be used together with \package{caption2}.
@@ -242,15 +242,25 @@
\let\DeclareCaptionSubType\@undefined
% \end{macrocode}
%
+% \begin{macro}{\captiontwo@Error}
+% \changes{v2.2f}{2020/09/28}{This macro added}
+% |\captiontwo@Error|\marg{message}\\
+% issues an error message (with code line indication).
+% \begin{macrocode}
+\newcommand*\captiontwo@Error[2][]{%
+ \PackageError{caption2}{#2}{#1\caption@@eh{caption2}}}
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Check against the regular caption package}
% \changes{v2.2}{2007/04/06}{Check against regular \package{caption} package added}
% \changes{v2.2a}{2007/04/11}{Bugfix: Usage of \cs{caption@error} replaced by \cs{PackageError}}
%
% \begin{macrocode}
\@ifpackageloaded{caption}{%
- \PackageError{caption2}{%
+ \captiontwo@Error{%
You can't use both, the (current) caption *and*\MessageBreak
- the (obsolete) caption2 package}\caption@eh
+ the (obsolete) caption2 package}%
\endinput
}{}
% \end{macrocode}
@@ -347,7 +357,9 @@
%
% \begin{macro}{\defcaptionstyle}
% \begin{macro}{\newcaptionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% \begin{macro}{\renewcaptionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% These macros will define a new caption style. \cs{newcaptionstyle} and \cs{renewcaptionstyle}
% will additionally check if the caption style already exists or not.
% \begin{macrocode}
@@ -359,7 +371,7 @@
\expandafter\ifx\csname caption@@#1\endcsname\relax
\expandafter\defcaptionstyle
\else
- \PackageError{caption2}{Caption style `#1' already defined}{\caption@eh}%
+ \captiontwo@Error{Caption style `#1' already defined}%
\expandafter\@gobbletwo
\fi
{#1}}
@@ -367,7 +379,7 @@
% \begin{macrocode}
\newcommand*\renewcaptionstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
- \PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}%
+ \captiontwo@Error{Caption style `#1' undefined}%
\expandafter\@gobbletwo
\else
\expandafter\defcaptionstyle
@@ -379,6 +391,7 @@
% \end{macro}
%
% \begin{macro}{\dummycaptionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% This macro will also define a new caption style, but a one which is based on the
% actual set caption style. Therefore you can't set a caption style made with this
% command with \cs{captionstyle} -- we check this to avoid an endless recursion.
@@ -387,11 +400,11 @@
\defcaptionstyle{#1}{%
\expandafter\ifx\csname caption@@\caption@style\expandafter\endcsname%
\csname caption@@#1\endcsname
- \PackageError{caption2}{You can't use the caption style `#1' directy}{%
- The caption style `#1' is only a dummy and does not really exists.%
- \MessageBreak You have to redefine it (with \protect\renewcaptionstyle)
- before you can select\MessageBreak it with \protect\captionstyle.
- \space\caption@eh}%
+ \captiontwo@Error
+ [The caption style `#1' is only a dummy and does not really exists.%
+ \MessageBreak You have to redefine it (with \protect\renewcaptionstyle)
+ before you can select\MessageBreak it with \protect\captionstyle.\space]%
+ {You can't use the caption style `#1' directy}%
\else
#2\usecaptionstyle\caption@style
\fi}}
@@ -399,12 +412,13 @@
% \end{macro}
%
% \begin{macro}{\captionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% \cs{captionstyle} sets the actual caption style. It includes a check if the given caption
% style is defined or not.
% \begin{macrocode}
\newcommand*\captionstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
- \PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}%
+ \captiontwo@Error{Undefined caption style `#1'}%
\else
\def\caption@style{#1}%
\fi}
@@ -824,22 +838,22 @@
% \end{macro}
%
% \begin{macro}{\usecaptionstyle}
-% First we check if we are inside a caption -- if \cs{captiontext} is undefined we are not.
-% If we are we call the appropriate caption definition.
-%
% \changes{v2.1b}{2004/04/16}{Missing percent added (and extra space removed)}
% \changes{v2.2}{2007/04/06}{\cs{let}\cs{caption@make}\cs{caption@makecaption} added}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
+% First we check if we are inside a caption -- if \cs{captiontext} is undefined we are not.
+% If we are we call the appropriate caption definition.
% \begin{macrocode}
\newcommand*\usecaptionstyle[1]{%
\caption@ifundefined\captiontext{%
- \PackageError{caption2}{You can't use \protect#1
- in normal text}{The usage of \protect#1 is only
- allowed inside code declared with\MessageBreak \protect\defcaptionstyle,
- \protect\newcaptionstyle \space or \protect\renewcaptionstyle.
- \space\caption@eh}
+ \captiontwo@Error
+ [The usage of \protect#1 is only
+ allowed inside code declared with\MessageBreak \protect\defcaptionstyle,
+ \protect\newcaptionstyle \space or \protect\renewcaptionstyle.\space]%
+ {You can't use \protect#1 in normal text}%
}{%
\@ifundefined{caption@@#1}%
- {\PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}}%
+ {\captiontwo@Error{Caption style `#1' undefined}}%
{\let\caption@make\caption@makecaption
\@nameuse{caption@@#1}}%
}}
@@ -1301,12 +1315,13 @@
% \end{macro}
%
% \begin{macro}{\subcapstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% Analogous to \cs{captionstyle} we define \cs{subcapstyle}
% and set it (via \cs{setsubcapstyle}) to a appropriate value.
% \begin{macrocode}
\newcommand*\subcapstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
- \PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}%
+ \captiontwo@Error{Undefined caption style `#1'}%
\else
\def\caption@substyle{#1}%
\fi}
diff --git a/macros/latex/contrib/caption/caption3.dtx b/macros/latex/contrib/caption/caption3.dtx
index ea759a3c87..96b2bc8ea9 100644
--- a/macros/latex/contrib/caption/caption3.dtx
+++ b/macros/latex/contrib/caption/caption3.dtx
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{3648}
+% \CheckSum{3674}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption3.drv}[2020/09/12 v2.1 Implementation of the caption kernel]
+\ProvidesFile{caption3.drv}[2020/10/11 v2.2 Implementation of the caption kernel]
\hbadness=9999 \newcount\hbadness \hfuzz=100pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -84,7 +84,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption3.drv}
% \let\docdate\filedate
@@ -117,6 +117,56 @@
% \package{subfig} packages.
% \end{abstract}
%
+% \section*{Internal commands}
+%
+% These internal commands are save to use by other packages as well
+% since their interface will not change in future releases:
+% \begin{quote}\begin{tabular}{ll}
+% Internal command & Currently used by \\
+% \hline
+% |\caption@addcontentsline| & \package{floatrow} \\
+% |\caption@fnun| & \package{floatrow} \\
+% |\caption@ifinlist| & \package{floatrow} \\
+% |\caption@iftop| & \package{keyfloat}, \package{subfig} \\
+% |\caption@make| & \package{subfig} \\
+% |\caption@@make| & \package{floatrow} \\
+% |\caption@setautoposition| & \package{bidi} \\
+% |\caption@setoptions| & \package{floatrow} \\
+% |\caption@setposition| & \package{floatrow} \\
+% |\caption@switchdefault| & \emph{none} \\
+% \end{tabular}\end{quote}
+%
+% If your package wants to use any other internal command of the \package{caption3} package,
+% please write me an e-mail so we can define a proper interface together.
+%
+% Unfortunately these internal commands are used by other packages and therefore will likely
+% not change in the future, too, but I do not support them (and maybe I will change them anyway
+% and patch the other package on-the-fly instead, at least if it's unmaintained):
+% \begin{quote}\begin{tabular}{ll}
+% Internal command & Currently used by \\
+% \hline
+% |\caption@hangindent | & \package{bidi} \\
+% |\caption@@@make| & \package{floatrow} \\
+% |\caption@@par| & \package{bidi} \\
+% |\caption@parindent| & \package{bidi} \\
+% |\caption@set@bool| & \package{floatrow} \\
+% |\caption@setfont| & \package{floatrow} \\
+% |\caption@setkeys| & \package{floatrow} \\
+% |\caption@setstyle*| & \package{floatrow} \\
+% \hline
+% |\caption@hj@|\meta{name} & \package{floatrow} \\
+% |\caption@lsep@|\meta{name} & \package{floatrow} \\
+% |\caption@lsep@default| & \package{babel-hungarian} \\
+% |\caption@sty@|\meta{name} & \package{floatrow} \\
+% \end{tabular}\end{quote}
+%
+% Furthermore the \package{floatrow} package uses the undocumented option
+% |position=a| (as abbreviation of |position=auto|).
+%
+% The \package{lwarp} package uses a lot of internal commands as well,
+% but we are working on it on the Git branch \texttt{feature/lwarp}:
+% \url{https://gitlab.com/axelsommerfeldt/caption/-/tree/feature/lwarp}
+%
% \StopEventually{}
% \clearpage
% \tableofcontents
@@ -192,17 +242,17 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption3}[2020/09/17 v2.1b caption3 kernel (AR)]
+\ProvidesPackage{caption3}[2020/10/21 v2.2e caption3 kernel (AR)]
% \end{macrocode}
%
% \section{Generic helpers}
%
% \begin{macro}{\@nameundef}
% |\@nameundef|\marg{command name}\\
-% is the opposite to |\@namedef| which is offered by the \LaTeX\ kernel.
+% is the opposite to |\@name|\-|def| which is offered by the \LaTeX\ kernel.
% We use it to remove the definition of some commands and keyval options after
% |\begin{document}| (to save \TeX\ memory) and to remove caption options defined
-% with |\captionsetup|\oarg{type}.
+% with |\caption|\-|setup|\oarg{type}.
% \begin{macrocode}
\providecommand*\@nameundef[1]{%
\expandafter\let\csname #1\endcsname\@undefined}
@@ -223,29 +273,44 @@
% \end{macro}
%
% \begin{macro}{\bothIfFirst}
+% \changes{v2.2}{2020/09/21}{Usage of \cs{caption@prepare@bothif} added}
% \begin{macro}{\bothIfSecond}
+% \changes{v2.2}{2020/09/21}{Usage of \cs{caption@prepare@bothif} added}
% |\bothIfFirst|\marg{code no. 1}\marg{code no. 2}\\
% |\bothIfSecond|\marg{code no. 1}\marg{code no. 2}\\
% |\bothIfFirst| tests if the first argument is not empty, |\bothIfSecond|
% tests if the second argument is not empty. If yes both arguments get
% typeset, otherwise none of them.
% \begin{macrocode}
-\def\bothIfFirst#1#2{%
- \protected@edef\caption@tempa{#1}%
- \ifx\caption@tempa\@empty \else
- #1#2%
- \fi}
+\def\bothIfFirst#1#2{\caption@bothif{#1}{#1#2}}
+% \end{macrocode}
+% \begin{macrocode}
+\def\bothIfSecond#1#2{\caption@bothif{#2}{#1#2}}
% \end{macrocode}
% \begin{macrocode}
-\def\bothIfSecond#1#2{%
- \protected@edef\caption@tempa{#2}%
+\newcommand*\caption@bothif[2]{%
+ \begingroup
+ \caption@prepare@bothif
+ \protected@xdef\caption@tempa{#1}%
+ \endgroup
\ifx\caption@tempa\@empty \else
- #1#2%
+ #2%
\fi}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\caption@prepare@bothif}
+% \changes{v2.2}{2020/09/21}{This macro added}
+% |\caption@prepare@bothif|\\
+% re-defines anything which could disturb either |\both|\-|If|\-|First| or |\both|\-|If|\-|Second| check.
+% \begin{macrocode}
+\providecommand*\caption@prepare@bothif{}
+\g@addto@macro\caption@prepare@bothif{%
+ \let\inputencoding\@gobble}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@ifundefined}
% \changes{v1.3a}{2011/08/12}{This macro added}
% \changes{v1.3b}{2011/08/18}{Made expandable}
@@ -612,16 +677,17 @@
% \changes{v1.0j}{2007/01/20}{This macro added, will now be used for errors}
% \changes{v1.0o}{2007/04/11}{Renamed from \cs{caption@error} to \cs{caption@Error}}
% \changes{v1.1b}{2007/09/18}{Usage of \cs{caption@Package} removed}
+% \changes{v2.2a}{2020/09/28}{\cs{caption@eh} renamed to \cs{caption@@eh} and revised}
% |\caption@Error|\marg{message}\\
% issues an error message (with code line indication).
% \begin{macrocode}
\newcommand*\caption@Error[1]{%
- \PackageError{caption}{#1}\caption@eh}
+ \PackageError{caption}{#1}{\caption@@eh{caption}}}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*\caption@eh{%
+\newcommand*\caption@@eh[1]{%
If you do not understand this error, please take a closer look\MessageBreak
- at the documentation of the `caption' package, especially the\MessageBreak
+ at the documentation of the `#1' package, especially the\MessageBreak
section about errors.\MessageBreak\@ehc}
% \end{macrocode}
% \end{macro}
@@ -729,7 +795,7 @@
%
% \begin{macro}{\ifcaptionsetup@star}
% \changes{v1.2a}{2008/01/12}{This macro added}
-% If the starred form of |\captionsetup| is used, this will be set to |true|.
+% If the starred form of |\caption|\-|setup| is used, this will be set to |true|.
% (It will be reset to |false| at the end of |\caption@set|\-|keys|.)
% \begin{macrocode}
\newif\ifcaptionsetup@star
@@ -1225,9 +1291,12 @@
% expands to \meta{yes-code} if the \meta{value} expands to `default',
% and to \meta{no-code} otherwise.
% \begin{macrocode}
-\newcommand*\caption@ifdefault[1]{%
+\newcommand*\caption@ifdefault{\caption@ifequal{default}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@ifequal[2]{%
\edef\caption@tempa{#1}%
- \def\caption@tempb{default}%
+ \edef\caption@tempb{#2}%
\ifx\caption@tempa\caption@tempb
\expandafter\@firstoftwo
\else
@@ -1296,6 +1365,24 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\SetCaptionFallback}
+% \changes{v2.2}{2020/09/21}{This macro added}
+% |\SetCaptionFallback|\marg{option}\marg{name}\\
+% sets the fallback value for the \meta{option}.
+% \begin{macrocode}
+\newcommand*\SetCaptionFallback{%
+ \caption@maparg\caption@@setfallback}
+\@onlypreamble\SetCaptionFallback
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@@setfallback[3]{%
+ \caption@ifequal{fallback}{#3}%
+ {\caption@Error{Invalid argument for \string\SetCaptionFallback: `#3'}}% would cause an infinite loop otherwise
+ {\caption@@set{#1}{#2@fallback}{#3}}}
+\@onlypreamble\caption@@setfallback
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@decl@package}
% \changes{v2.0}{2020/07/26}{This macro added}
% |\caption@decl@package|\marg{option}\marg{cmd}\oarg{package}\marg{name}\ldots\\
@@ -1529,9 +1616,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption@counter}
+% \begin{macro}{\caption@thecounter}
% \changes{v1.0n}{2007/04/03}{This counter added}
-% \changes{v1.1e}{2007/10/28}{Renamed to \cs{caption@thecounter}; \cs{caption@stepcounter} added}
+% \changes{v1.1e}{2007/10/28}{Renamed from \cs{caption@counter} to \cs{caption@thecounter}; \cs{caption@stepcounter} added}
% \changes{v1.5}{2012/04/09}{\cs{caption@stepcounter} renamed to \cs{caption@stepthecounter}}
% Internal counter.
% At the moment it will be used inside |\caption@if|\-|odd|\-|page| only.
@@ -1541,7 +1628,7 @@
% \begin{macrocode}
\newcommand*\caption@stepthecounter{%
\@tempcnta\caption@thecounter
- \advance\@tempcnta\@ne
+ \advance\@tempcnta\@ne\relax
\xdef\caption@thecounter{\the\@tempcnta}}
% \end{macrocode}
% \end{macro}
@@ -1862,8 +1949,8 @@
\colorbox{\caption@boxcolor}{%
\setlength\caption@tempdima{#1}%
\addtolength\caption@tempdima{-2\fboxsep}%
- \linewidth\caption@tempdima
- \hsize\caption@tempdima
+ \linewidth\caption@tempdima\relax
+ \hsize\caption@tempdima\relax
#2}}
\DeclareCaptionOption{boxcolor}{\def\caption@boxcolor{#1}}
\DeclareCaptionOption{boxsep}{\setlength\fboxsep{#1}}
@@ -1938,8 +2025,8 @@
The option `labelsep=\caption@labelsep@name' does not work\MessageBreak
with `format=hang'}}%
{\@hangfrom{#1#2}%
- \advance\caption@parindent\hangindent
- \advance\caption@hangindent\hangindent
+ \advance\caption@parindent\hangindent\relax
+ \advance\caption@hangindent\hangindent\relax
\caption@@par#3\par}}
% \end{macrocode}
%
@@ -1991,12 +2078,13 @@
\DeclareCaptionLabelFormat{original}{%
\caption@ifdefined\caption@original@fnum
{\caption@original@fnum}%
- {\caption@labelformat@simple{#1}{#2}}}
+ {\caption@labelformat@fallback{#1}{#2}}}
% \end{macrocode}
%
-% `default' usually maps to `original'.
+% `default' usually maps to `original' resp. `simple'.
% \begin{macrocode}
\SetCaptionDefault{labelformat}{original}
+\SetCaptionFallback{labelformat}{simple}
% \end{macrocode}
%
% \section{Label separators}
@@ -2094,8 +2182,9 @@
\DeclareCaptionOption{labelseparator}{\caption@set{labelseparator}{#1}}
% \end{macrocode}
%
-% \changes{v1.0e}{2005/06/11}{Bugfix 05-03-23: Caption label separator \opt{newline} implementation changed from \cs{newline} to \cs{\textbackslash}}
+% \changes{v1.0e}{2005/06/11}{Caption label separator \opt{newline} implementation changed from \cs{newline} to \cs{textbackslash}}
% \changes{v1.0f}{2005/08/24}{Caption label separator \opt{endash} added}
+% \changes{v1.12}{2020/05/30}{Caption label separator \opt{newline} implementation changed from \cs{textbackslash} to \cs{captionnewline}}
% There are seven pre-defined label separators, called `none', `colon', `period', `space',
% `quad', `newline', and `endash'.
% \begin{macrocode}
@@ -2105,10 +2194,35 @@
\DeclareCaptionLabelSeparator{space}{ }
\DeclareCaptionLabelSeparator*{quad}{\quad}
\DeclareCaptionLabelSeparator*{newline}{\captionnewline}
+% TODO: \DeclareCaptionLabelSeparator should detect on its own if it contains \captionnewline or not
\caption@LabelSeparatorWithNewline{newline} % does not work with "format=hang"
\DeclareCaptionLabelSeparator*{endash}{\space\textendash\space}
% \end{macrocode}
%
+% \changes{v2.2c}{2020/10/10}{Caption label separators \opt{gobble} and \opt{gobbletwo} added}
+%
+% It's a common hack to mis-use |\fnum@figure| and |\fnum@table| to replace the caption
+% label separator, for example changing the separator to a period plus space with
+% \begin{quote}
+% |\renewcommand\fnum@figure[1]{\figurename~\thefigure.}|
+% \end{quote}
+% or dropping the label and separator completely with
+% \begin{quote}
+% |\renewcommand\fnum@figure[1]{\ignorespaces}|\quad
+% \end{quote}
+% (taken from \url{http://compgroups.net/comp.text.tex/figure-without-caption/1915079}).
+%
+% We emulate the behaviour of |\@make|\-|caption| of the base document classes
+% \class{article}, \class{report}, and \class{book} in this regard (in |\caption@@@make|)
+% so these hacks still work if the \package{caption} package is loaded.
+%
+% These are the label separators used when one or two tokens after the label format
+% should be dropped, called `gobble' and `gobbletwo':
+% \begin{macrocode}
+\DeclareCaptionLabelSeparator{gobble}{ }
+\DeclareCaptionLabelSeparator{gobbletwo}{}
+% \end{macrocode}
+%
% \begin{macro}{\captionnewline}
% \changes{v1.12}{2020/05/30}{This macro added}
% \changes{v2.0}{2020/07/31}{\cs{relax} added to definition}
@@ -2358,6 +2472,15 @@
\SetCaptionDefault{textfont}{none}
% \end{macrocode}
%
+% The \package{floatrow} package uses the fonts `footfont` and `@tempa` additionally,
+% so we need to map and define the default value for them, too.
+% \begin{macrocode}
+\caption@setmapping{footfont}{font}
+\SetCaptionDefault{footfont}{none}
+\caption@setmapping{@tempa}{font}
+\SetCaptionDefault{@tempa}{none}
+% \end{macrocode}
+%
% \begin{macro}{\caption@smaller}
% |\caption@smaller|\\
% selects a font size which is smaller than the current one.
@@ -2612,9 +2735,6 @@
% \changes{v2.0}{2020/07/27}{Uses \cs{caption@set} now}
% |\caption@setposition|\marg{position}\\
% puts |\caption@position| to the right value.
-% \emph{Please do \textbf{not} use the internal macro
-% \cs{caption@position} in your own package or document, but use the
-% wrapper command \cs{caption@iftop} instead.}\par
% (Note: Since this command is used by the \package{floatrow} package as well
% its syntax should not change.)
% \begin{macrocode}
@@ -3093,7 +3213,7 @@
}
% \end{macrocode}
%
-% \subsection{The french babel option}
+% \subsection{The babel-french package}
% \changes{v1.1}{2006/05/14}{\package{frenchb} babel support added}
% \changes{v2.0}{2020/08/01}{\package{french} babel support updated}
%
@@ -3131,7 +3251,10 @@
% in order to avoid problems when |Auto|\-|Space|\-|Punctuation| is set to |false|.
%
% \begin{macrocode}
- \DeclareCaptionLabelSeparator{colon}{\autospace@beforeFDP : }%
+ \ifFB@active@punct
+ \DeclareCaptionLabelSeparator{colon}{%
+ \ifFBfrench\penalty\@M\FBcolonspace\fi : }%
+ \fi
% \end{macrocode}
%
% We switch the default label separator to `french', dependant on the switches
@@ -3215,7 +3338,7 @@
}{}
% \end{macrocode}
%
-% \subsection{The hungarian \& magyar babel option}
+% \subsection{The babel-hungarian package}
% \changes{v1.3}{2009/03/29}{\package{magyar} babel support added}
% \changes{v1.3a}{2011/08/12}{\package{magyar} babel support revised}
% \changes{v1.8b}{2018/08/26}{\package{magyar} babel support revised}
@@ -3388,84 +3511,6 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{The floatrow package}
-% \changes{v2.0}{2020/07/28}{Adaptions to the \package{floatrow} package added}
-%
-% Since the \package{floatrow} package is not maintained anymore,
-% we have to make adaptions to \thispackage~\version{2.0} here.
-% Please note that we only support the version $0.3b$ of the \package{floatrow} package,
-% so older versions do not work with this version of \thispackage, and newer
-% versions are expected to be adapted.
-%
-% \begin{macrocode}
-\caption@AtBeginDocument{%
- \def\@tempa{2008/08/02 v0.3b floatrow: float package extension}%
- \expandafter\ifx\csname ver@floatrow.sty\endcsname\@tempa
- \caption@InfoNoLine{floatrow package v0.3b is loaded}%
-% \end{macrocode}
-%
-% \begin{macro}{\captionlabel}
-% |\caption@format| needs to be expanded prior the use of |\caption@@@make|.
-% \begin{macrocode}
- \renewcommand\captionlabel[1]{{% l.559
- \def\FR@tmp{\@captype}%
- \ifnum\floatbox@depth>\@ne
- \def\FR@tmp{sub\@captype}\caption@setsubtype*{\FR@tmp}\stepcounter{\FR@tmp}%
- \fi
- \caption@format % <= This line added
- \caption@@@make{\caption@fnum\FR@tmp}{#1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flrow@setstyle}
-% This patch isn't working since |\flrow@setstyle| will be used by
-% \package{floatrow} right after loading \package{caption3}.
-% For this reason we still define |\caption@sty@|\meta{name} in
-% |\Declare|\-|Caption|\-|Style| instead.
-% \begin{macrocode}
-% \renewcommand*\flrow@setstyle[1]{% l.986
-% \@ifundefined{flrow@sty@#1}%
-% {\flrow@error{Undefined float style `#1'}}%
-% {\FBstyle@reset
-% \def\flrow@capsetup{%
-% \caption@ifdecl{style}{#1}{\caption@setstyle*{#1}}{}%
-% \caption@setoptions{#1}}%
-% \flrow@esetup{\csname flrow@sty@#1\endcsname}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flrow@FBoAlign}
-% This patch isn't working since |\flrow@FBoAlign| will be used by
-% \package{floatrow} right after loading \package{caption3}.
-% For this reason we still define |\caption@hj@|\meta{name} in
-% |\Declare|\-|Caption|\-|Justification| instead.
-% \begin{macrocode}
-% \renewcommand*\flrow@FBoAlign[1]{% l.1168
-% \caption@ifdecl{justification}{#1}%
-% {\expandafter\let\expandafter\floatobjectset
-% \csname caption@justification@#1\endcsname}%
-% {\flrow@error{Undefined object setting `#1'}}}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flrow@setFRsep}
-% This patch isn't working since |\flrow@setFRsep| will be used by
-% \package{floatrow} right after loading \package{caption3}.
-% For this reason we still define |\caption@lsep@|\meta{name} in
-% |\Declare|\-|Caption|\-|Label|\-|Separator| instead.
-% \begin{macrocode}
-% \renewcommand*\flrow@setFRsep[2]{% l.1187
-% \caption@ifdecl{labelseparator}{#2}%
-% {\@nameuse{caption@labelseparator@#2}% defines \caption@labelsep
-% \let#1\caption@labelsep}%
-% {\flrow@error{Undefined float separator `#2'}}}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
- \fi}
-% \end{macrocode}
-%
% \subsection{The newfloat package}
%
% \begin{macro}{\caption@newfloat}
@@ -3626,6 +3671,7 @@
\caption@InfoNoLine{subfig package v1.3 is loaded}%
% \end{macrocode}
% \begin{macrocode}
+ \def\caption@eh{\caption@@eh{subfig}}%
\let\caption@setfloattype\@gobble
\let\@dottedxxxline\sf@NEW@dottedxxxline
\let\sf@subfloat\sf@NEW@subfloat
@@ -3670,7 +3716,7 @@
\let\sf@oldlabel=\label
\let\label=\subfloat@label
\ifmaincaptiontop\else
- \advance\@nameuse{c@\@captype}\@ne
+ \advance\@nameuse{c@\@captype}\@ne\relax
\fi
\refstepcounter{sub\@captype}%
\setcounter{sub\@captype @save}{\value{sub\@captype}}%
@@ -3857,9 +3903,9 @@
\caption@calcmargin
\caption@tempdima\captionmargin
\ifdim\captionmargin@=\z@ \else
- \caption@ifoddpage{}{\advance\caption@tempdima\captionmargin@}%
+ \caption@ifoddpage{}{\advance\caption@tempdima\captionmargin@\relax}%
\fi
- \caption@ifhmode{\advance\caption@tempdima\caption@indent}%
+ \caption@ifhmode{\advance\caption@tempdima\caption@indent\relax}%
\hspace\caption@tempdima
% \end{macrocode}
% We actually use a |\vbox| of width |\captionwidth - \caption@indent|
@@ -3868,7 +3914,7 @@
% was defined with \cs{DeclareCaptionFormat*}.}
% \begin{macrocode}
\caption@tempdima\captionwidth
- \caption@ifhmode{\advance\caption@tempdima-\caption@indent}%
+ \caption@ifhmode{\advance\caption@tempdima-\caption@indent\relax}%
\caption@parbox\caption@tempdima{%
% \end{macrocode}
% Typeset the indention (option |indention=|)\\
@@ -3890,7 +3936,7 @@
% \begin{macrocode}
\caption@tempdima\captionmargin
\ifdim\captionmargin@=\z@ \else
- \caption@ifoddpage{\advance\caption@tempdima\captionmargin@}{}%
+ \caption@ifoddpage{\advance\caption@tempdima\captionmargin@\relax}{}%
\fi
\hspace\caption@tempdima
% \end{macrocode}
@@ -3935,14 +3981,14 @@
% \end{macrocode}
% \begin{macrocode}
\ifdim\captionwidth=\z@
- \captionwidth\hsize
- \advance\captionwidth by -2\captionmargin
- \advance\captionwidth by -\captionmargin@
+ \captionwidth\hsize\relax
+ \advance\captionwidth by -2\captionmargin\relax
+ \advance\captionwidth by -\captionmargin@\relax
\else
- \captionmargin\hsize
- \advance\captionmargin by -\captionwidth
- \divide\captionmargin by 2
- \captionmargin@\z@
+ \captionmargin\hsize\relax
+ \advance\captionmargin by -\captionwidth\relax
+ \divide\captionmargin by 2\relax
+ \captionmargin@\z@\relax
\fi
% \end{macrocode}
% \begin{macrocode}
@@ -3959,9 +4005,9 @@
%
% \begin{macro}{\caption@slc}
% \changes{v1.1}{2007/06/13}{\cs{let}\cs{caption@justification}\cs{relax} added}
-% \changes{v1.1}{2007/07/29}{\cs{caption@setup}\cs{\caption@sls} added after \cs{begingroup}}
+% \changes{v1.1}{2007/07/29}{\cs{caption@setup}\cs{caption@sls} added after \cs{begingroup}}
% \changes{v1.1}{2007/07/29}{\cs{caption@calcmargin} added}
-% \changes{v1.1c}{2007/10/14}{\cs{caption@setup}\cs{\caption@opt@SingleLine} outsourced to \cs{caption@SingleLine}}
+% \changes{v1.1c}{2007/10/14}{\cs{caption@setup}\cs{caption@opt@SingleLine} outsourced to \cs{caption@SingleLine}}
% \changes{v1.3}{2010/09/04}{Split into \cs{caption@slc} and \cs{caption@@slc}}
% \changes{v1.5}{2012/12/26}{Merged into a single macro again}
% \changes{v1.5}{2013/04/14}{Usage of \cs{ifsinglelinecaption} added}
@@ -4143,18 +4189,44 @@
% \changes{v1.3}{2010/11/01}{Bugfix: If the caption text is empty, the text format will be set to \opt{simple} now}
% \changes{v1.7}{2016/02/01}{Bugfix: \cs{relax} added before \cs{caption@lsep} so the label separator will not be gobbled if the label font command ignores spaces, e.g. by usage of \cs{color}}
% \changes{v1.8}{2018/09/12}{\cs{par} replaced by \cs{caption@textend}}
+% \changes{v2.2c}{2020/10/10}{Usage of the label separators \opt{gobble} and \opt{gobbletwo} added}
+% \changes{v2.2e}{2020/10/21}{Adaptions to \package{floatrow} package added}
% |\caption@@@make|\marg{caption label}\marg{caption text}\\
% This one finally typesets the caption paragraph, without margin and indention.
% \begin{macrocode}
\newcommand\caption@@@make[2]{%
% \end{macrocode}
-% If the label is empty, we use no caption label separator.
-% \begin{macrocode}
- \sbox\@tempboxa{#1}%
+% The \package{floatrow} package uses |\caption@@@make|, too,
+% but without using |\caption@single|\-|line| or |\caption@multi|\-|line|.
+% For this reason we must expand |\caption@format| if |\caption@fmt| isn't defined yet.
+% Furthermore it uses |\caption@lfmt| as argument which was renamed to
+% |\caption@label|\-|format| in \package{caption3}\version{2.0}.
+% \begin{macrocode}
+ \ifx\caption@fmt\@undefined\caption@format\fi
+ \let\caption@lfmt\caption@labelformat
+% \end{macrocode}
+% If the label is empty, we use the label separator `none'.
+% Futhermore we use this check to determine if |#1| ends with either
+% |\@gobble|, |\@gobble|\-|two|, and/or |\ignore|\-|spaces|.
+% If yes, we use the corresponding label separator.
+% \begin{macrocode}
+ \global\def\caption@tempa{gobbletwo}%
+ \global\def\caption@tempb{}%
+ \sbox\@tempboxa{%
+ \let\caption@ignorespaces\ignorespaces
+ \def\ignorespaces{%
+ \global\def\caption@tempb{two}% "gobble" -> "gobbletwo" if \ignorespaces is used addtionally
+ \caption@ignorespaces}%
+ #1%
+ {\global\let\caption@tempa\@undefined\aftergroup\@gobble}%
+ {\global\def\caption@tempa{gobble\caption@tempb}}}%
\ifdim\wd\@tempboxa=\z@
- \caption@set{labelseparator}{none}%
+ \gdef\caption@tempa{none}%
% \@capbreakfalse
\fi
+ \ifx\caption@tempa\@undefined \else
+ \@expandtwoargs\caption@set{labelseparator}{\caption@tempa}%
+ \fi
% \end{macrocode}
% If the text is empty, we use no caption label separator, too.
% (And no text format either.)
@@ -4181,7 +4253,7 @@
{\ifcaption@star\else
\begingroup
\captionlabelfont
- #1%
+ #1\relax\relax
\endgroup
\fi}%
{\ifcaption@star\else
@@ -4385,7 +4457,7 @@
% Check if the sub-type was already defined by |\Declare|\-|Sub|\-|Type|.
% If not, define the counter and list entry.
% \begin{macrocode}
- \caption@ifin@list\caption@subtypelist{#4}%
+ \caption@ifsubtype{#4}%
{\caption@Debug{Modify subtype `#4'}}%
{\caption@Debug{New subtype `#4'}%
\newcounter{#4}[{#3}]%
@@ -4519,50 +4591,23 @@
% \end{macrocode}
% \end{macro}
%
-% Unfortunately the \class{memoir} document class resets the
-% \texttt{subfigure} resp.~\texttt{subtable} counter at the begin
-% of floating environments, i.e.~at |\@float|.
-% As a side-effect |\continued|\-|float| does not work correctly.
-% For that reason we need to introduce macros to save and restore
-% all sub-caption counters here.
-%
-% \begin{macro}{\caption@savesubcounters}
-% \changes{v1.5}{2013/05/01}{This macro added}
+% \begin{macro}{\@memresetsubcounter}
+% \changes{v1.5}{2013/05/01}{The macro \cs{caption@savesubcounters} added}
% \changes{v1.13}{2020/07/28}{Uses \cs{caption@for@list} now for iterating the list}
-% |\caption@save|\-|sub|\-|counters|\\
-% saves all sub-caption counters,
-% so they can be restored with |\caption@restore|\-|counters| later on.
-% \begin{macrocode}
-\newcommand*\caption@savesubcounters{%
- \caption@for@list\caption@subtypelist{\caption@savecounter{##1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@savecounter}
-% \changes{v1.5}{2013/05/01}{This macro added}
-% |\caption@save|\-|counter|\marg{counter}\\
-% saves the given counter, so it can be restored with
-% |\caption@restore|\-|counters| later on.
-% \begin{macrocode}
-\newcommand*\caption@savecounter[1]{%
- \edef\caption@tempa{%
- \noexpand\l@addto@macro\noexpand\caption@restore@counters
- {\noexpand\setcounter{#1}{\number\value{#1}}}}%
- \caption@tempa}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@restorecounters}
-% \changes{v1.5}{2013/05/01}{This macro added}
-% |\caption@restore|\-|counters|
-% restores all counters saved with |\caption@save|\-|counter|.
-% \begin{macrocode}
-\newcommand*\caption@restorecounters{%
- \caption@restore@counters
- \global\let\caption@restore@counters\@empty}
-% \end{macrocode}
+% \changes{v2.2b}{2020/10/06}{This stuff replaced by a patch of \cs{@memresetsubcounter}}
+% The \class{memoir} document class resets the \texttt{subfigure}
+% resp.~\texttt{subtable} counter at the begin of floating environments using
+% |\@mem|\-|reset|\-|sub|\-|counter|.
+% As a side-effect |\continued|\-|float| does not work correctly.
+% For that reason we need to patch |\@mem|\-|reset|\-|sub|\-|counter| here,
+% suppressing the counter reset if the counter was defined with
+% |\Declare|\-|Caption|\-|Sub|\-|Type|.
% \begin{macrocode}
-\newcommand*\caption@restore@counters{}
+\caption@ifdefined\@memresetsubcounter
+ {\let\caption@memresetsubcounter\@memresetsubcounter
+ \renewcommand*\@memresetsubcounter[1]{%
+ \caption@ifsubtype{sub#1}\@gobble\caption@memresetsubcounter{#1}}}%
+ {}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/caption/ltcaption.dtx b/macros/latex/contrib/caption/ltcaption.dtx
index a4f75ae72a..fab8a4c05e 100644
--- a/macros/latex/contrib/caption/ltcaption.dtx
+++ b/macros/latex/contrib/caption/ltcaption.dtx
@@ -79,7 +79,7 @@
%
% \def\thispackage{the \package{ltcaption} package}
% \def\Thispackage{The \package{ltcaption} package}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{ltcaption.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/subcaption.dtx b/macros/latex/contrib/caption/subcaption.dtx
index 90586d10d9..3dc8cca22e 100644
--- a/macros/latex/contrib/caption/subcaption.dtx
+++ b/macros/latex/contrib/caption/subcaption.dtx
@@ -32,7 +32,7 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{228}
+% \CheckSum{221}
%
% \iffalse
%<*driver>
@@ -78,7 +78,7 @@
%
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
%
\usepackage{marvosym}
\makeatletter
@@ -935,16 +935,26 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{subcaption}[2020/08/23 v1.3g Sub-captions (AR)]
+\ProvidesPackage{subcaption}[2020/10/07 v1.3j Sub-captions (AR)]
% \end{macrocode}
%
% \subsection{Initial code}
%
% Since we base on the \package{caption} package we load it here.
% \begin{macrocode}
-\RequirePackage{caption}[2020/08/23] % needs v3.5 or newer
+\RequirePackage{caption}[2020/09/28] % needs v3.5c or newer
% \end{macrocode}
%
+% \begin{macro}{\subcaption@Error}
+% \changes{v1.3h}{2020/09/28}{This macro added}
+% |\subcaption@Error|\marg{message}\\
+% issues an error message (with code line indication).
+% \begin{macrocode}
+\newcommand*\subcaption@Error[1]{%
+ \PackageError{subcaption}{#1}{\caption@@eh{subcaption}}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\subcaption@CheckCompatibility}
% \changes{v1.1}{2011/09/01}{Compatibility error added}
% \changes{v1.1}{2016/05/22}{The presence of \package{subfigure} or \package{subfig} will be checked \cs{AtBeginDocument}, too}
@@ -956,38 +966,29 @@
% \end{macrocode}
% \begin{macrocode}
\caption@ifcompatibility{%
- \PackageError{subcaption}%
+ \subcaption@Error
{This package does not work with\MessageBreak
caption option `compatibility=v1'}%
- {\subcaption@eh}%
\endinput}{}%
% \end{macrocode}
% \begin{macrocode}
\@ifpackageloaded{subfigure}{%
- \PackageError{subcaption}%
+ \subcaption@Error
{This package can't be used in cooperation\MessageBreak
with the subfigure package}%
- {\subcaption@eh}%
\endinput}{}%
% \end{macrocode}
% \begin{macrocode}
\@ifpackageloaded{subfig}{%
- \PackageError{subcaption}%
+ \subcaption@Error
{This package can't be used in cooperation\MessageBreak
with the subfig package}%
- {\subcaption@eh}%
\endinput}{}%
% \end{macrocode}
% \begin{macrocode}
}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*\subcaption@eh{%
- If you do not understand this error, please take a closer look\MessageBreak
- at the documentation of the `subcaption' package, especially the\MessageBreak
- section about errors.\MessageBreak\@ehc}
-% \end{macrocode}
-% \begin{macrocode}
\subcaption@CheckCompatibility
\caption@AtBeginDocument{%
\subcaption@CheckCompatibility
@@ -997,29 +998,12 @@
%
% \subsection{Main code}
%
-% \changes{v1.1}{2011/10/30}{Adapted to the newfloat package}
-% We call |\Declare|\-|Caption|\-|Sub|\-|Type| for |figure|, |table|,
-% and each floating environment declared with |\Declare|\-|Floating|\-|Environment| here.
-% \begin{macrocode}
-\ForEachCaptionType{\DeclareCaptionSubType{#1}}
-% \end{macrocode}
-%
-% \begin{macro}{\newsubfloat}
-% \changes{v1.1}{2016/01/31}{Adapted to the memoir document class}
-% We re-define |\new|\-|sub|\-|float| (offered by the \package{memoir} document class),
-% so our stuff will be used instead.
-% \begin{macrocode}
-\caption@ifundefined\newsubfloat{}{%
- \renewcommand*\newsubfloat{\DeclareCaptionSubType}}
-% \end{macrocode}
-% \end{macro}
-%
% \pagebreak[3]
% \subsubsection{The \cs{subcaption} command}
%
% \begin{macro}{\subcaption}
-% \changes{v1.1}{2012/04/06}{\cs{newcommand} changed to \cs{def}
-% so it works with the \package{memoir} document class, too}
+% \changes{v1.1}{2012/04/06}{\cs{newcommand} changed to \cs{def} so it works with the \package{memoir} document class, too}
+% \changes{v1.3h}{2020/09/28}{Usage of \cs{caption@Error} replaced by \cs{subcaption@Error}}
% Without a prefacing |\set|\-|caption|\-|sub|\-|type|, |\sub|\-|caption| is some kind
% of |\caption|\-|of{sub|\-|\@cap|\-|type}|.
% \Note{Like \cs{captionof}, this command is designed to be used inside an
@@ -1028,7 +1012,7 @@
\def\subcaption{%
\caption@iftype
{\setcaptionsubtype*\caption}%
- {\caption@Error{\noexpand\subcaption outside float}%
+ {\subcaption@Error{\noexpand\subcaption outside float}%
\caption@gobble}}%
% \end{macrocode}
% But with a prefacing |\set|\-|caption|\-|sub|\-|type|, |\sub|\-|caption| is simply
@@ -1044,12 +1028,13 @@
%
% \begin{macro}{\phantomsubcaption}
% \changes{v1.1}{2011/08/17}{This macro added}
+% \changes{v1.3h}{2020/09/28}{Usage of \cs{caption@Error} replaced by \cs{subcaption@Error}}
% Same as |\phantom|\-|caption|, but for subfigures.
% \begin{macrocode}
\newcommand*\phantomsubcaption{%
\caption@iftype
{\setcaptionsubtype*\phantomcaption}%
- {\caption@Error{\noexpand\phantomsubcaption outside float}}}%
+ {\subcaption@Error{\noexpand\phantomsubcaption outside float}}}%
% \end{macrocode}
% \begin{macrocode}
\g@addto@macro\caption@subtypehook{%
@@ -1194,25 +1179,33 @@
%
% \begin{macro}{\subcaption@setrefformat}
% \changes{v1.3g}{2020/07/27}{Adapted to \package{caption3} v2.0}
+% \changes{v1.3h}{2020/09/28}{Usage of \cs{caption@Error} replaced by \cs{subcaption@Error}}
+% \changes{v1.3j}{2020/10/07}{Definition of the label formats \texttt{subsimple} and \texttt{subparens} added}
% |\subcaption@setrefformat|\marg{name}\par
% Selecting a subref format simply means saving the code (in |\subcaption@reffmt|).
% \begin{macrocode}
\newcommand*\subcaption@setrefformat[1]{%
\@ifundefined{caption@labelformat@#1}%
- {\caption@Error{Undefined label format `#1'}}%
+ {\subcaption@Error{Undefined label format `#1'}}%
{\expandafter\let\expandafter\subcaption@reffmt\csname caption@labelformat@#1\endcsname}}
% \end{macrocode}
% \begin{macrocode}
\subcaption@setrefformat{simple}
% \end{macrocode}
+% To offer a smooth transition from the \package{subfig} to the \package{subcaption} package
+% we offer the options |sub|\-|ref|\-|format=sub|\-|simple| and |sub|\-|ref|\-|format=sub|\-|parens|, too.
+% \begin{macrocode}
+\DeclareCaptionLabelFormat{subsimple}{#2}
+\DeclareCaptionLabelFormat{subparens}{(#2)}
+% \end{macrocode}
% \end{macro}
%
% \subsection{Execution of options}
%
-% We use |\caption@ExecuteOptions| and |\caption@ProcessOptions| here to add
-% the options to the `|sub|' option list instead of executing them immediately.
% \changes{v1.1}{2018/05/01}{Option \texttt{font+=smaller} changed to \texttt{size=smaller}}
% \changes{v1.3e}{2020/07/27}{Option \texttt{size=smaller} changed back to \texttt{font+=smaller}}
+% We use |\caption@Execute|\-|Options| and |\caption@Process|\-|Options| here to add
+% the options to the `|sub|' option list instead of executing them immediately.
% \begin{macrocode}
\caption@SetupOptions{subcaption}{\captionsetup[sub]{#2}}%
\caption@ExecuteOptions{subcaption}{%
@@ -1220,6 +1213,13 @@
\caption@ProcessOptions*{subcaption}
% \end{macrocode}
%
+% \changes{v1.1}{2011/10/30}{Adapted to the newfloat package}
+% We call |\Declare|\-|Caption|\-|Sub|\-|Type| for |figure|, |table|,
+% and each floating environment declared with |\Declare|\-|Floating|\-|Environment| here.
+% \begin{macrocode}
+\ForEachCaptionType{\DeclareCaptionSubType{#1}}
+% \end{macrocode}
+%
% \subsection{Bonus material}
%
% \subsubsection{The \cs{subfloat} command}
@@ -1231,32 +1231,37 @@
% \changes{v1.3a}{2019/09/01}{\cs{ignorespaces} copied from \cs{sf@@@subfloat}}
% \changes{v1.3b}{2020/01/03}{Previous definition of \cs{subfloat} will be overwritten}
% \changes{v1.3f}{2020/07/29}{Bugfix: Usage of \cs{caption@hj@default} replaced by \cs{captionbox@innerpos@default}}
+% \changes{v1.3i}{2020/09/28}{This macro will be defined with \cs{providecommand} now to preserve an original definition}
% |\subfloat|\oarg{list\_entry}\oarg{sub-caption}\marg{body}\par
% If \meta{sub-caption} is given, we map this to |\sub|\-|caption|\-|box|
% but transfer the |\label| from \meta{body} to \meta{sub-caption}.
% If not, we do the same as |\sub|\-|caption|\-|box| does, but use |\phantom|\-|caption| instead of |\caption|.
% In both cases we do a |\ignore|\-|spaces| at the end since the original implementation of |\sub|\-|float| does this, too.
% \begin{macrocode}
-\def\subfloat{%
- \@ifnextchar[\@subfloat\subfloat@}
+\caption@AtBeginDocument{\providecommand*\subfloat{%
+ \@ifnextchar[%]
+ \subcaption@subfloat
+ \subcaption@subfloat@}}
% \end{macrocode}
% \begin{macrocode}
-\long\def\@subfloat[#1]{%
- \@ifnextchar[{\@@subfloat{#1}}{\@@@subfloat\subcaptionbox{#1}}}
+\long\def\subcaption@subfloat[#1]{%
+ \@ifnextchar[%]
+ {\subcaption@@subfloat{#1}}%
+ {\subcaption@@@subfloat\subcaptionbox{#1}}}
% \end{macrocode}
% \begin{macrocode}
-\long\def\@@subfloat#1[#2]{%
- \@@@subfloat{\subcaptionbox[{#1}]}{#2}}
+\long\def\subcaption@@subfloat#1[#2]{%
+ \subcaption@@@subfloat{\subcaptionbox[{#1}]}{#2}}
% \end{macrocode}
% \begin{macrocode}
-\long\def\@@@subfloat#1#2#3{%
+\long\def\subcaption@@@subfloat#1#2#3{%
\caption@getlabel{#3}%
#1{#2\caption@thelabel}{\let\label\caption@gobble#3}%
\global\let\caption@thelabel\relax
\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\def\subfloat@#1{%
+\def\subcaption@subfloat@#1{%
\setbox\@tempboxa\hbox{#1}%
\caption@iiiibox
\setcaptionsubtype
diff --git a/macros/latex/contrib/fgruler/fgruler.dtx b/macros/latex/contrib/fgruler/fgruler.dtx
index dd7ec0ba06..385795b7a8 100644
--- a/macros/latex/contrib/fgruler/fgruler.dtx
+++ b/macros/latex/contrib/fgruler/fgruler.dtx
@@ -21,7 +21,7 @@
\ProvidesFile{fgruler.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-%<package>\ProvidesPackage{fgruler}[2020/10/22 v1.1 Package for drawing rulers on the foreground or in the text]
+%<package>\ProvidesPackage{fgruler}[2020/10/26 v1.2 Package for drawing rulers on the foreground or in the text]
%
%<*driver>
\documentclass{ltxdoc}
@@ -42,7 +42,11 @@ gobble=2,
belowskip=\bigskipamount,
basicstyle=\ttfamily,
backgroundcolor=\color{black!10},
+frame=trbl,
+framesep=3pt,
columns=fullflexible,
+xleftmargin=3.4pt,
+xrightmargin=3.4pt,
keepspaces}}{}
\newcommand{\commandinline}{\lstinline[
@@ -60,7 +64,7 @@ keepspaces]}
%
% \GetFileInfo{fgruler.sty}
%
-% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.1 (2020/10/22)}}
+% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.2 (2020/10/26)}}
% \author{Tibor T\'{o}m\'{a}cs\\{\normalsize\url{tomacs.tibor@uni-eszterhazy.hu}}}
% \date{}
% \maketitle
@@ -113,41 +117,42 @@ keepspaces]}
% \commandinline|upperright| Origin: upper right corner. Directions: down and left.\\
% \commandinline|lowerleft | Origin: lower left corner. Directions: up and right.\\
% \commandinline|lowerright| Origin: lower right corner. Directions: up and left.\\
-% \commandinline|none | Not drawing ruler.
+% \commandinline|none | Not drawing ruler.\\
+% \commandinline|user | Each \commandinline|!<unit>!|--\commandinline|!<type name>!| pair activates an \commandinline|\fgruler@!<unit>!@!<type name>!@fg| command. You can control the effect of this option by redefining the \commandinline|\fgruler@!<unit>!@user@fg| commands, which are empty in the default case. (See \ref{example:user1}, \ref{example:user2} and \ref{example:user3} examples.)
% \end{description}
%
% \item\commandinline|hshift=!<length>!|\\
% Horizontal shift.
-% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|, otherwise it is left.
-% Default: \verb|hshift=0cm|
+% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|, otherwise it is left.\\
+% Default: \verb|hshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@hshift|.
%
% \item\commandinline|vshift=!<length>!|\\
% Vertical shift.
-% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|, otherwise it is up.
-% Default: \verb|vshift=0cm|
+% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|, otherwise it is up.\\
+% Default: \verb|vshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@vshift|.
%
% \item\commandinline|color=!<color name>!|\\
-% Ruler color (see \texttt{xcolor} package).
-% Default: \verb|color=black|
+% Ruler color (see \texttt{xcolor} package).\\
+% Default: \verb|color=black|.\\ The \commandinline|!<color name>!| is saved in \commandinline|\fgruler@color|.
%
% \item\commandinline|numsep=!<length>!|\\
-% Separation between number and ruler.
-% Default: \verb|numsep=3pt|
+% Separation between number and ruler.\\
+% Default: \verb|numsep=3pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@numsep|.
%
% \item\commandinline|markthick=!<length>!|\\
-% Mark thickness.
-% Default: \verb|markthick=0.4pt|
+% Mark thickness.\\
+% Default: \verb|markthick=0.4pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@markthick|.
%
% \item\commandinline|marklength=!<length>!|\\
% Mark length at integer units:
-% {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}}\quad
-% Default: \verb|marklength=2mm|\\
+% {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}}\\
+% Default: \verb|marklength=2mm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@marklength|.\\
% See the length of the other marks in Section \ref{sec:additional}.
%
% \item\commandinline|numfont=!<font type>!|\\
-% Number font type.
+% Number font type.\\
% You can use this option only in \verb|\setfgruler| command.\\
-% Default: \verb|numfont=\scriptsize\sffamily|
+% Default: \verb|numfont=\scriptsize\sffamily|.\\ The \commandinline|!<font type>!| is saved in \commandinline|\fgruler@numfont|.
%
% \item\commandinline|showframe| or \commandinline|showframe=true|\\
% It draws visible frames for the text and margin area, and lines for the head and foot.
@@ -521,66 +526,166 @@ keepspaces]}
% \documentclass{article}
% \usepackage{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{The showframe option}
+% \subsection{The `showframe' option}
% \setfgruler{color=red,showframe}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[color=red,showframe]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting}
+% \subsection{Shifting in default case}
% \setfgruler{hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case type=upperright}
+% \subsection{Shifting in case `type=upperright' option}
% \setfgruler{type=upperright,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=upperright,hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case type=lowerleft}
+% \subsection{Shifting in case `type=lowerleft' option}
% \setfgruler{type=lowerleft,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=lowerleft,hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case type=lowerright}
+% \subsection{Shifting in case `type=lowerright' option}
% \setfgruler{type=lowerright,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=lowerright,hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
+% \end{document}
+% \end{examplelst}
+%
+% \newpage\fgrulerreset
+% \subsection{An example for the `type=user' option}\label{example:user1}
+% \setfgruler{type=none}
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user]{fgruler}
+% \makeatletter
+% \def\fgruler@cm@user@fg{%
+% \ifodd\value{page}\fgruler@cm@upperright@fg%
+% \else\fgruler@cm@upperleft@fg\fi}
+% \def\fgruler@in@user@fg{%
+% \ifodd\value{page}\fgruler@in@upperright@fg%
+% \else\fgruler@in@upperleft@fg\fi}
+% \makeatother
+% \begin{document}
+% ...
% \end{document}
% \end{examplelst}
+% In this case the \texttt{type=upperright} option will be activated, if the page number is odd. Otherwise \texttt{type=upperleft} will be activated.
%
% \newpage\fgrulerreset
+% \subsection{An other example for the `type=user' option}\label{example:user2}
+% \setfgruler{type=user,color=red}
+%\makeatletter
+%\newlength{\fgruler@tempdim}
+%\renewcommand{\fgruler@cm@user@fg}{\AtTextLowerLeft{\ignorespaces%
+%\settowidth{\fgruler@tempdim}{\ruler{downleft}{\textheight}}%
+%\rulerparams{}{}{\fgruler@color}{}{}%
+%\put(-\fgruler@tempdim,0){\ignorespaces%
+%\rulernorotatenum\fgrulercaptioncm{}\ruler{downleft}{\textheight}}%
+%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
+%\makeatother
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user,color=red]{fgruler}
+% \makeatletter
+% \newlength{\fgruler@tempdim}
+% \newcommand{\fgruler@user}[1]{%
+% \AtTextLowerLeft{% See eso-pic package!
+% \rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}%
+% {\fgruler@marklength}{\fgruler@numsep}%
+% \settowidth{\fgruler@tempdim}{\ruler[#1]{downleft}{\textheight}}%
+% \put(-\fgruler@tempdim,0){%
+% \rulernorotatenum%
+% \fgrulercaptioncm{}%
+% \fgrulercaptionin{}%
+% \ruler[#1]{downleft}{\textheight}%
+% }%
+% \put(0,\textheight){%
+% \ruler[#1]{rightup}{\textwidth}%
+% }%
+% }%
+% }
+% \renewcommand{\fgruler@cm@user@fg}{\fgruler@user{cm}}
+% \renewcommand{\fgruler@in@user@fg}{\fgruler@user{in}}
+% \makeatother
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+% This code places rulers at the left and the top border of the body. In this case the \texttt{hshift} and \texttt{vshift} options don't work.
+%
+% \newpage\fgrulerreset
+% \subsection{The third example for the `type=user' option}\label{example:user3}
+% \setfgruler{type=user,color=blue}
+%\makeatletter
+%\renewcommand{\fgruler@cm@user@fg}{\fgruler@cm@upperleft@fg\AtTextLowerLeft{\ignorespaces%
+%\rulerparams{}{}{\fgruler@color}{}{}%
+%\put(\textwidth,0){\ignorespaces%
+%\rulernorotatenum\fgrulercaptioncm{}\ruler{downright}{\textheight}}%
+%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
+%\makeatother
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user,color=blue]{fgruler}
+% \makeatletter
+% \newcommand{\fgruler@user}[1]{%
+% \AtTextLowerLeft{% See eso-pic package!
+% \rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}%
+% {\fgruler@marklength}{\fgruler@numsep}%
+% \put(\textwidth,0){%
+% \rulernorotatenum%
+% \fgrulercaptioncm{}%
+% \fgrulercaptionin{}%
+% \ruler[#1]{downright}{\textheight}%
+% }%
+% \put(0,\textheight){%
+% \ruler[#1]{rightup}{\textwidth}%
+% }%
+% }%
+% }
+% \renewcommand{\fgruler@cm@user@fg}{\fgruler@cm@upperleft@fg\fgruler@user{cm}}
+% \renewcommand{\fgruler@in@user@fg}{\fgruler@in@upperleft@fg\fgruler@user{in}}
+% \makeatother
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+% In this code the effect of \texttt{type=user} is similar to \texttt{type=upperleft}, but it places further rulers at the right and the top border of the body.
+%
+% \newpage\fgrulerreset
% \subsection{Rulers on the foreground of a given page, and in text}
% \setfgruler{color=blue}
% \fgruler{upperleft}{1cm}{1.5cm}
@@ -768,6 +873,37 @@ keepspaces]}
% \end{document}
% \end{examplelst}
%
+% \newpage\fgrulerreset
+% \subsection{A new square ruler}
+% \setfgruler{type=none}
+%
+% \makeatletter
+% \newcommand{\usersquareruler}[2]{
+% \begin{picture}(#1+1em+\fgruler@marklength,#2+1em+\fgruler@marklength)
+% {\fgrulercaptioncm{}
+% \ruler{downleft}{#2}}
+% \put(0,#2){\ruler{rightup}{#1}}
+% \end{picture}}
+% \makeatother
+% \usersquareruler{3cm}{5cm}
+%
+% \bigskip
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=none]{fgruler}
+% \makeatletter
+% \newcommand{\usersquareruler}[2]{%
+% \begin{picture}(#1+1em+\fgruler@marklength,#2+1em+\fgruler@marklength)%
+% {\fgrulercaptioncm{}%
+% \ruler{downleft}{#2}}%
+% \put(0,#2){\ruler{rightup}{#1}}%
+% \end{picture}}
+% \makeatother
+% \begin{document}
+% \usersquareruler{3cm}{5cm}
+% \end{document}
+% \end{examplelst}
+%
% \StopEventually
%
% \begin{macrocode}
@@ -833,7 +969,8 @@ keepspaces]}
\def\fgruler@check{lowerleft}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{lowerright}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{none}\ifx\fgruler@type\fgruler@check\else%
-\@latexerr{Undefined type: \fgruler@type\space(Defined types: upperleft, upperright, lowerleft, lowerright, none)}{}\fi\fi\fi\fi\fi%
+\def\fgruler@check{user}\ifx\fgruler@type\fgruler@check\else%
+\@latexerr{Undefined type: \fgruler@type\space(Defined types: upperleft, upperright, lowerleft, lowerright, user, none)}{}\fi\fi\fi\fi\fi\fi%
\def\fgruler@output{\csname fgruler@\fgruler@unit @\fgruler@type @fg\endcsname}}
\def\fgrulerratiocm#1#2{%
@@ -902,10 +1039,13 @@ keepspaces]}
\def\setfgruler#1{\setkeys{fgruler}{#1}\fgruler@activate@type\ignorespaces}
+\newdimen\fgruler@tempdima
+\newdimen\fgruler@tempdimb
+
\newcommand\fgruler@div[2]{%
-\@tempdima=#1\relax\@tempdimb=\unitlength\relax
-\@tempdimb=#2\@tempdimb\divide\@tempdima by \@tempdimb
-\@tempcnta\@tempdima\advance\@tempcnta\@ne}
+\fgruler@tempdima=#1\relax\fgruler@tempdimb=\unitlength\relax
+\fgruler@tempdimb=#2\fgruler@tempdimb\divide\fgruler@tempdima by \fgruler@tempdimb
+\@tempcnta\fgruler@tempdima\advance\@tempcnta\@ne}
\def\fgruler@check@param#1#2{%
\def\fgruler@param{#1}%
@@ -970,8 +1110,6 @@ keepspaces]}
\def\fgruler@ifodd#1{\ifodd\value{fgrulernum}#1\fi\stepcounter{fgrulernum}}
-\def\fgruler@lentounit#1{\strip@pt\dimexpr#1*\p@/\unitlength}
-
\def\fgrulerstartnum#1{\def\fgruler@startnum{#1}\ignorespaces}
\def\fgruler@startnum{0}
@@ -1048,8 +1186,7 @@ keepspaces]}
\iffgruler@nonefgrulers
-\renewcommand{\fgruler}[4][cm]{}
-\providecommand{\AtPageLowerLeft}[1]{#1}
+\renewcommand{\fgruler}[4][]{}
\else
@@ -1061,26 +1198,26 @@ keepspaces]}
\fgruler@rulercolor%
\fgruler@markthickness%
\AtPageLowerLeft{%
- \framebox(\fgruler@lentounit{\paperwidth},\fgruler@lentounit{\paperheight}){}}%
+ \framebox(\paperwidth,\paperheight){}}%
\AtTextLowerLeft{%
- \framebox(\fgruler@lentounit{\textwidth},\fgruler@lentounit{\textheight}){}}%
+ \framebox(\textwidth,\textheight){}}%
\AtTextUpperLeft{%
- \put(0,\fgruler@lentounit{\headsep}){%
- \framebox(\fgruler@lentounit{\textwidth},\fgruler@lentounit{\headheight}){}}}%
+ \put(0,\headsep){%
+ \framebox(\textwidth,\headheight){}}}%
\AtTextLowerLeft{%
- \put(0,\fgruler@lentounit{-\footskip}){%
- \line(1,0){\fgruler@lentounit{\textwidth}}}}%
+ \put(0,-\footskip){%
+ \line(1,0){\textwidth}}}%
\AtTextLowerLeft{%
- \@tempdima=\textwidth\advance\@tempdima\marginparsep%
+ \fgruler@tempdima=\textwidth\advance\fgruler@tempdima\marginparsep%
\if@twoside
\ifodd\c@page\else
\if@mparswitch
- \@tempdima=-\marginparsep\advance\@tempdima-\marginparwidth
+ \fgruler@tempdima=-\marginparsep\advance\fgruler@tempdima-\marginparwidth
\fi
\fi
\fi
- \put(\fgruler@lentounit{\@tempdima},0)%
- {\framebox(\fgruler@lentounit{\marginparwidth},\fgruler@lentounit{\textheight}){}}%
+ \put(\fgruler@tempdima,0)%
+ {\framebox(\marginparwidth,\textheight){}}%
}%
\endgroup
}
@@ -1092,8 +1229,7 @@ keepspaces]}
\ESO@MEMOIR@corr
\put(\ESO@tempdima,\ESO@tempdimb){%
\iffgruler@showframe\fgruler@frame\fi%
- \fgruler@output%
- \fgruler@output@%
+ \fgruler@output\fgruler@output@%
\global\let\fgruler@output@\@empty%
}%
}%
@@ -1101,8 +1237,7 @@ keepspaces]}
\AddToHook{shipout/foreground}{%
\put(0,\ESO@yoffsetI){%
\iffgruler@showframe\fgruler@frame\fi%
- \fgruler@output%
- \fgruler@output@%
+ \fgruler@output\fgruler@output@%
\global\let\fgruler@output@\@empty%
}%
}%
@@ -1119,23 +1254,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(10,-\fgruler@lentounit{\fgruler@sep})(10,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(10,-\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@rightdown@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(0,-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)%
\fgruler@cm@rightdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@rightdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@rightdown@{#1}}}
@@ -1146,29 +1281,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(16,-\fgruler@lentounit{\fgruler@sep})(16,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(16,-\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@rightdown@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(0,-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)%
\fgruler@in@rightdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@rightdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@rightdown@{#1}}}
@@ -1179,23 +1314,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(10,\fgruler@lentounit{\fgruler@sep})(10,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(10,\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@rightup@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)%
\fgruler@cm@rightup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@rightup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@rightup@{#1}}}
@@ -1206,29 +1341,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(16,\fgruler@lentounit{\fgruler@sep})(16,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(16,\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@rightup@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)%
\fgruler@in@rightup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@rightup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@rightup@{#1}}}
@@ -1239,23 +1374,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-10,-\fgruler@lentounit{\fgruler@sep})(-10,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-10,-\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@leftdown@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)%
\fgruler@cm@leftdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(-5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@leftdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@leftdown@{#1}}}
@@ -1266,29 +1401,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-16,-\fgruler@lentounit{\fgruler@sep})(-16,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-16,-\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@leftdown@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)%
\fgruler@in@leftdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(-8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@leftdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@leftdown@{#1}}}
@@ -1299,23 +1434,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-10,\fgruler@lentounit{\fgruler@sep})(-10,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-10,\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@leftup@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,\fgruler@width)(-#1,0)%
\fgruler@cm@leftup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(-5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@leftup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@leftup@{#1}}}
@@ -1326,29 +1461,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-16,\fgruler@lentounit{\fgruler@sep})(-16,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-16,\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@leftup@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,\fgruler@width)(-#1,0)%
\fgruler@in@leftup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(-8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@leftup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@leftup@{#1}}}
@@ -1359,23 +1494,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},-10)(0,-10){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@downright@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(0,-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(0,-#1)%
\fgruler@cm@downright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(\fgruler@lentounit{\fgruler@sep},-5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(\fgruler@sep,-5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@downright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@downright@{#1}}}
@@ -1386,29 +1521,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},-16)(0,-16){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@downright@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(0,-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(0,-#1)%
\fgruler@in@downright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(\fgruler@lentounit{\fgruler@sep},-8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(\fgruler@sep,-8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@downright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@downright@{#1}}}
@@ -1419,23 +1554,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},-10)(0,-10){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@downleft@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)%
\fgruler@cm@downleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(-\fgruler@lentounit{\fgruler@sep},-5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(-\fgruler@sep,-5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@downleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@downleft@{#1}}}
@@ -1446,29 +1581,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},-16)(0,-16){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@downleft@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)%
\fgruler@in@downleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(-\fgruler@lentounit{\fgruler@sep},-8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(-\fgruler@sep,-8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@downleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@downleft@{#1}}}
@@ -1479,23 +1614,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},10)(0,10){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@upright@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)%
\fgruler@cm@upright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(\fgruler@lentounit{\fgruler@sep},5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(\fgruler@sep,5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@upright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@upright@{#1}}}
@@ -1506,29 +1641,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},16)(0,16){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@upright@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)%
\fgruler@in@upright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(\fgruler@lentounit{\fgruler@sep},8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(\fgruler@sep,8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@upright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@upright@{#1}}}
@@ -1539,23 +1674,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},10)(0,10){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@upleft@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},0)%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)%
\fgruler@cm@upleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(-\fgruler@lentounit{\fgruler@sep},5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(-\fgruler@sep,5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@upleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@upleft@{#1}}}
@@ -1566,29 +1701,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},16)(0,16){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@upleft@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},0)%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)%
\fgruler@in@upleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(-\fgruler@lentounit{\fgruler@sep},8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(-\fgruler@sep,8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@upleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@upleft@{#1}}}
@@ -1596,10 +1731,10 @@ keepspaces]}
%% UPPERLEFT CM
\def\fgruler@cm@upperleft@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(0,-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(0,-#2)%
\fgruler@cm@rightdown{#1}%
\fgruler@cm@downright{#2}%
-\ifdim#1>.5cm\put(5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@upperleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@upperleft@{#1}{#2}}}
@@ -1611,7 +1746,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},0){%
+\AtPageLowerLeft{\put(#1,0){%
\fgruler@cm@upperleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1620,10 +1755,10 @@ keepspaces]}
%% UPPERLEFT IN
\def\fgruler@in@upperleft@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(0,-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(0,-#2)%
\fgruler@in@rightdown{#1}%
\fgruler@in@downright{#2}%
-\ifdim#1>.5in\put(8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@upperleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@upperleft@{#1}{#2}}}
@@ -1635,7 +1770,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},0){%
+\AtPageLowerLeft{\put(#1,0){%
\fgruler@in@upperleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1644,10 +1779,10 @@ keepspaces]}
%% UPPERRIGHT CM
\def\fgruler@cm@upperright@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(-#1,-#2)%
\fgruler@cm@leftdown{#1}%
\fgruler@cm@downleft{#2}%
-\ifdim#1>.5cm\put(-5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@upperright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@upperright@{#1}{#2}}}
@@ -1667,10 +1802,10 @@ keepspaces]}
%% UPPERRIGHT IN
\def\fgruler@in@upperright@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(-#1,-#2)%
\fgruler@in@leftdown{#1}%
\fgruler@in@downleft{#2}%
-\ifdim#1>.5in\put(-8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@upperright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@upperright@{#1}{#2}}}
@@ -1690,10 +1825,10 @@ keepspaces]}
%% LOWERLEFT CM
\def\fgruler@cm@lowerleft@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)%
\fgruler@cm@rightup{#1}%
\fgruler@cm@upright{#2}%
-\ifdim#1>.5cm\put(5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@lowerleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@lowerleft@{#1}{#2}}}
@@ -1705,7 +1840,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(#1,#2){%
\fgruler@cm@lowerleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1714,10 +1849,10 @@ keepspaces]}
%% LOWERLEFT IN
\def\fgruler@in@lowerleft@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)%
\fgruler@in@rightup{#1}%
\fgruler@in@upright{#2}%
-\ifdim#1>.5in\put(8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@lowerleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@lowerleft@{#1}{#2}}}
@@ -1729,7 +1864,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(#1,#2){%
\fgruler@in@lowerleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1738,10 +1873,10 @@ keepspaces]}
%% LOWERRIGHT CM
\def\fgruler@cm@lowerright@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,#2)(-#1,0)%
\fgruler@cm@leftup{#1}%
\fgruler@cm@upleft{#2}%
-\ifdim#1>.5cm\put(-5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@lowerright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@lowerright@{#1}{#2}}}
@@ -1753,7 +1888,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(0,\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(0,#2){%
\fgruler@cm@lowerright@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1762,10 +1897,10 @@ keepspaces]}
%% LOWERRIGHT IN
\def\fgruler@in@lowerright@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,#2)(-#1,0)%
\fgruler@in@leftup{#1}%
\fgruler@in@upleft{#2}%
-\ifdim#1>.5in\put(-8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@lowerright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@lowerright@{#1}{#2}}}
@@ -1777,11 +1912,15 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(0,\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(0,#2){%
\fgruler@in@lowerright@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
\def\fgruler@in@lowerright@fg{\fgruler@in@lowerright@fg@{\fgruler@hshift}{\fgruler@vshift}}
+
+%% USER
+\def\fgruler@cm@user@fg{}
+\def\fgruler@in@user@fg{}
% \end{macrocode}
% \Finale
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/fgruler/fgruler.pdf b/macros/latex/contrib/fgruler/fgruler.pdf
index eb3be627b8..cd1989fa8f 100644
--- a/macros/latex/contrib/fgruler/fgruler.pdf
+++ b/macros/latex/contrib/fgruler/fgruler.pdf
Binary files differ
diff --git a/macros/latex/contrib/principia/README b/macros/latex/contrib/principia/README
index ceed875d85..885761b586 100644
--- a/macros/latex/contrib/principia/README
+++ b/macros/latex/contrib/principia/README
@@ -2,7 +2,7 @@ principia.sty - a LaTeX2e package for typesetting the "Peanese" notation of Whit
The file principia.sty is the original work of Landon D. C. Elkind (Copyright (c) 2020). It is released under the LaTeX Project Public License 1.3c.
-This is principia package Version 1.0. It covers typesetting the notations through Volume I of "Principia Mathematica". See the file principia.pdf for information on how to typeset these symbols in LaTeX.
+This is principia package Version 1.1 (25/10/2020). Like Version 1.0, it covers typesetting the notations through Volume I of "Principia Mathematica". Version 1.1 has some minor updates. See the file principia.pdf for information on these changes and for further information on how to typeset Peanese symbols in LaTeX with the principia package.
Updates to include all notations throughout Volumes II and III are planned. Further information and updates can be found at https://logicalatomist.github.io/principia/
diff --git a/macros/latex/contrib/principia/principia.pdf b/macros/latex/contrib/principia/principia.pdf
index 6d4b543228..c57ba8eab5 100644
--- a/macros/latex/contrib/principia/principia.pdf
+++ b/macros/latex/contrib/principia/principia.pdf
Binary files differ
diff --git a/macros/latex/contrib/principia/principia.sty b/macros/latex/contrib/principia/principia.sty
index 3a1fd3b271..f965b0ff66 100644
--- a/macros/latex/contrib/principia/principia.sty
+++ b/macros/latex/contrib/principia/principia.sty
@@ -1,12 +1,14 @@
-%This is the principia package is for representing notations in Whitehead and Russell's ``Principia Mathematica" close to their appearance in the original.
-%Copyright (C) 2020 by Landon D. C. Elkind (https://landondcelkind.com/contact/).
-%This program is free software. It may be redistributed and/or modified under the terms of the GNU General Public License as published by the Free Software Foundation, Version 3 or any later version.
-
%Package Identification
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{principia}[2020/10/20 principia package version 1.0] %Covers typesetting of notation through Volume I
+\ProvidesPackage{principia}[2020/10/25 principia package version 1.1] %This is the principia package is for representing notations in Whitehead and Russell's ``Principia Mathematica" close to their appearance in the original.
+%Version 1.0 (superseded by Version 1.1): Covers typesetting of notation through Volume I. 2020/10/24
+%Version 1.1 (updates): fixed the spacing of scope dots around parentheses; fixed spacing of theorem sign; fixed spacing around primitive proposition and definition signs. 2020/10/25
+%Licensed under LaTeX Project Public License 1.3c.
+%Copyright Landon D. C. Elkind, 2020. (https://landondcelkind.com/contact/).
%Principia package requirements
+\RequirePackage{amssymb} %This loads the relation domain and converse domain limitation symbols.
+\RequirePackage{amsmath} %This loads the circumflex, substitution into theorems, \text{}, \mathbf{}, \boldsymbol{}, \overleftarrow{}, \overrightarrow{}, etc.
\RequirePackage{graphicx} %This loads commands that flip iota for definite descriptions, Lambda for the universal class, and so on. The (superseded) graphics package should also work here, but is not recommended.
\RequirePackage{marvosym} %This loads the male and female symbol.
\RequirePackage{pifont} %This loads the symbols such as the eight-pointed asterisk.
@@ -21,25 +23,26 @@
\newcommand{\pmSubbb}[7]{\bigg \lbrack \normalsize #1 \text{ } \small \begin{array}{c c c} #2, & #4, & #6 \\ \hline #3, & #5, & #7 \end{array} \bigg \rbrack} %This is the substitution command.
\newcommand{\pmsubbbb}[8]{\bigg \lbrack \small \begin{array}{c c c c} #1, & #3, & #5, & #7 \\ \hline #2, & #4, & #6, & #8 \end{array} \bigg \rbrack} %This is the substitution command.
\newcommand{\pmSubbbb}[9]{\bigg \lbrack \normalsize #1 \text{ } \small \begin{array}{c c c c} #1, & #3, & #5, & #7 \\ \hline #2, & #4, & #6, & #8 \end{array} \bigg \rbrack} %This is the substitution command.
-\newcommand{\pmthm}{\text{\scalebox{.5}[1]{$\boldsymbol\vdash$}}} %This is the theorem sign.
+\newcommand{\pmthm}{\mathpunct{\text{\scalebox{.5}[1]{$\boldsymbol\vdash$}}}} %This is the theorem sign.
\newcommand{\pmast}{\text{\resizebox{!}{.75\height}{\ding{107}}}} %This is the sign introducing a theorem number.
\newcommand{\pmcdot}{\text{\raisebox{.05cm}{$\boldsymbol\cdot$}}} %This is a sign introducing a theorem sub-number.
-\newcommand{\pmdf}{=_\text{Df}}
-\newcommand{\pmpp}{\text{Pp}}
+\newcommand{\pmiddf}{\mathbin{=}}
+\newcommand{\pmdf}{\quad \text{Df}}
+\newcommand{\pmpp}{\quad \text{Pp}}
%Square dots for scope, defined for up to six dots
-\newcommand{\pmdot}{\mathop{\hbox{\rule{.3ex}{.3ex}}}}
-\newcommand{\pmdott}{\mathop{\overset{\pmdot}{\pmdot}}}
-\newcommand{\pmdottt}{\pmdott \pmdot}
-\newcommand{\pmdotttt}{\pmdott\pmdott}
-\newcommand{\pmdottttt}{\pmdott\pmdott\pmdot}
-\newcommand{\pmdotttttt}{\pmdott\pmdott\pmdott}
+\newcommand{\pmdot}{\mathrel{\hbox{\rule{.3ex}{.3ex}}}}
+\newcommand{\pmdott}{\mathrel{\overset{\pmdot}{\pmdot}}}
+\newcommand{\pmdottt}{\pmdott\hspace{.1em}\pmdot}
+\newcommand{\pmdotttt}{\pmdott\hspace{.1em}\pmdott}
+\newcommand{\pmdottttt}{\pmdott\hspace{.1em}\pmdott\hspace{.1em}\pmdot}
+\newcommand{\pmdotttttt}{\pmdott\hspace{.1em}\pmdott\hspace{.1em}\pmdott}
%Logical connectives
\newcommand{\pmnot}{\mathord{\sim}}
-\newcommand{\pmimp}{\boldsymbol{\supset}}
-\newcommand{\pmiff}{\equiv}
-\newcommand{\pmor}{\boldsymbol{\vee}}
+\newcommand{\pmimp}{\mathbin{\boldsymbol{\supset}}}
+\newcommand{\pmiff}{\mathbin{\equiv}}
+\newcommand{\pmor}{\mathbin{\boldsymbol{\vee}}}
\newcommand{\pmall}[1]{(#1)}
\newcommand{\pmsome}[1]{(\text{\raisebox{.5em}{\rotatebox{180}{E}}}#1)}
\newcommand{\pmSome}{\text{\raisebox{.5em}{\rotatebox{180}{E}}}}
diff --git a/macros/latex/contrib/principia/principia.tex b/macros/latex/contrib/principia/principia.tex
index 47db611908..7e0bced115 100644
--- a/macros/latex/contrib/principia/principia.tex
+++ b/macros/latex/contrib/principia/principia.tex
@@ -1,11 +1,11 @@
\documentclass[12pt]{article}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{principia}[2020/10/20 principia package version 1.0] %Covers typesetting of notation through Volume I
+\ProvidesPackage{principia}[2020/10/25 principia package version 1.1] %This package supports typesetting the Peanese notation in Volume I of Whitehead and Russell’s 1910 ``Principia Mathematica".
+%Version 1.0 (superseded by Version 1.1): Covers typesetting of notation through Volume I. 2020/10/24
+%Version 1.1 (updates): fixed the spacing of scope dots around parentheses; fixed spacing of theorem sign; fixed spacing around primitive proposition and definition signs. 2020/10/25
%Licensed under LaTeX Project Public License 1.3c.
-%Copyright Landon D. C. Elkind, 2020.
+%Copyright Landon D. C. Elkind, 2020. (https://landondcelkind.com/contact/).
-\usepackage{amssymb}
-\usepackage{amsmath}
\usepackage{fullpage}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
@@ -13,11 +13,13 @@
%Principia package requirements
\usepackage{principia} %The package itself, and its dependencies:
+\usepackage{amssymb} %This loads the relation domain and converse domain limitation symbols.
+\usepackage{amsmath} %This loads the circumflex, substitution into theorems, \text{}, \mathbf{}, \boldsymbol{}, \overleftarrow{}, \overrightarrow{}, etc.
\usepackage{pifont} %This loads the eight-pointed asterisk.
\usepackage{marvosym} %This loads the male and female symbol.
\usepackage{graphicx} %This loads commands that flip iota for definite descriptions, Lambda for the universal class, and so on. The (superseded) graphics package should also work here, but is not recommended.
-\title{\texttt{principia.sty }\\ A \LaTeXe \space Package for Typesetting Whitehead and Russell's \textit{Principia Mathematica} (Version 1.0)}
+\title{\texttt{principia.sty }\\ A \LaTeXe \space Package for Typesetting Whitehead and Russell's \textit{Principia Mathematica} (Version 1.1)}
\author{Landon D. C. Elkind \texttt{elkind@ualberta.ca}}
\date{\today}
@@ -30,22 +32,21 @@ The \texttt{principia} package is designed for typesetting the Peanese notation
In \textit{Principia Mathematica} some symbols occur with an argument and sometimes that same symbol occurs without an argument. For example, `$\pmsome{x}$' occurs in some formulas, but sometimes `$\pmSome$' occurs in the text when they talk about the symbol itself. \texttt{principia} is designed to accommodate these different occurrences of symbols. When a symbol is to occur without an argument, capitalize the first letter following the `\texttt{$\backslash$pm}' part of the command. E.g. \verb|\pmsome{x}| produces $\pmsome{x}$ and \verb|\pmSome| produces `$\pmSome$'. Note the former command requires an argument and the latter command does not. Not all commands in the \texttt{principia} package admit of such dual use because some symbols in \textit{Principia Mathematica} never occur without an argument or do not take an argument in the usual sense. For example, the propositional connectives do not take an `argument' in the way singular or plural descriptions do.
-Version 1.0 of \texttt{principia} is adequate to typeset all notations throughout Volume I of \textit{Principia}. Updates to include all notations throughout Volumes II and III are planned.
+Version 1.1 of \texttt{principia}, like Version 1.0, is adequate to typeset all notations throughout Volume I of \textit{Principia} and includes some fixes to spacing, etc. See the package documentation for details. Updates to include all notations throughout Volumes II and III are planned.
-\texttt{principia}'s dependencies are \texttt{pifont} (for the eight-pointed asterisk), \texttt{marvosym} (for the `$\pmop$' symbol), and \texttt{graphicx} (for singular descriptions, universal classes, and existential quantifiers). Make sure to load these package by typing \texttt{$\backslash$usepackage\{graphicx\}}, etc.
-
-To load \texttt{principia}, type \texttt{$\backslash$usepackage\{principia\}} in the preamble to the document.
+\texttt{principia}'s dependencies are \texttt{amsmath}, \texttt{amssymb}, \texttt{pifont}, \texttt{marvosym}, and \texttt{graphicx}. Make sure to load these package by typing \texttt{$\backslash$usepackage\{graphicx\}}, etc., into the document preamble. To load \texttt{principia}, type \texttt{$\backslash$usepackage\{principia\}} in the document's preamble.
\noindent \begin{tabular}{@{}p{3cm} | p{5cm} | p{8.25cm}}
\textbf{Symbol} & \textbf{\LaTeX command} & \textbf{Notes} \\ \hline
$\pmthm$ & \verb|\pmthm| & Theorem. \\
$\pmast$ & \verb|\pmast| & As in $\pmast1$. \\
$\pmcdot$ & \verb|\pmcdot| & As in, $\pmast1\pmcdot1$. \\
- $\pmpp$ & \verb|\pmpp| & Primitive proposition. \\
- $\pmdf$ & \verb|\pmdf| & Definition. \\
- $\pmdem$ & \verb|\pmdem| & This begins a proof. \\
+ $\pmpp$ & \verb|\pmpp| & Primitive proposition. Note the indentation. \\
+ $\pmiddf$ & \verb|\pmiddf| & Identity for definitions (`$=$' differs in spacing). \\
+ $\pmdf$ & \verb|\pmdf| & Definition. Note the indentation. \\
+ $\pmdem$ & \verb|\pmdem| & This symbol begins a proof. \\
$\pmsub{p}{q}$, $\pmsubb{p}{q}{r}{s}$, $\pmsubbb{p}{q}{r}{s}{t}{u}$, ... $\pmSub{\text{Add}}{p}{q}$, ... & \verb|\pmsub{p}{q}|, \verb|\pmsubb{p}{q}{r}{s}|, \verb|\pmsubbb{p}{q}| \par \hfill \verb|{r}{s}{t}{u}|, ... \verb|\pmSub{\text{Add}{p}{q}| & Substitution into theorems. Add `b's to the end of \verb|\pmsub| to increase the number of substitutions (up to four `b's). Each extra `b' adds two arguments. To substitute and specify the theorem as well, capitalize the `s' in \verb|\pmsub|. \\
- $\pmdot$, $\pmdott$, $\pmdottt$, $\pmdotttt$, $\pmdottttt$, $\pmdotttttt$ & \verb|\pmdot|, \verb|\pmdott|, \verb|\pmdottt|, ... & Add `t's to the end of \verb|\pmdot| to increase the number of dots (up to six `t's). Note that the spacing of \verb|\pmand| and \verb|\pmdot| differ. \\
+ $\pmdot$, $\pmdott$, $\pmdottt$, $\pmdotttt$, $\pmdottttt$, $\pmdotttttt$ & \verb|\pmdot|, \verb|\pmdott|, \verb|\pmdottt|, ... & Add `t's to the end of \verb|\pmdot| to increase the number of dots (up to six `t's). \\
$\pmand$, $\pmandd$, $\pmanddd$, $\pmandddd$, $\pmanddddd$, $\pmandddddd$ & \verb|\pmand|, \verb|\pmandd|, \verb|\pmanddd|, ...& Add `d's to the end of \verb|\pmand| command to increase the number of dots (up to six `d's). \\
$\pmor$ & \verb|\pmor| & Disjunction. \\
$\pmnot$ & \verb|\pmnot| & Negation. Note its spacing differs from \verb|\sim|. \\
diff --git a/macros/latex/contrib/sttools/README.md b/macros/latex/contrib/sttools/README.md
index eea5d0d9fc..3c48f3a113 100644
--- a/macros/latex/contrib/sttools/README.md
+++ b/macros/latex/contrib/sttools/README.md
@@ -1,4 +1,4 @@
-README for sttools, v2.0 2017/03/27
+README for sttools, v2.1 2020/10/16
INTRODUCTION
============
@@ -17,7 +17,7 @@ PACKAGES
* floatpag.sty, v1.1 2012/05/29:
– sets pagestyle for floats page;
-* flushend.sty, v3.3 2017/03/27:
+* flushend.sty, v3.5 2017/10/16:
– balances page in twocolumn mode;
(2014/03/03): totally rewritten with new algorithm to support footnotes,
top floats and column break before one line section title;
@@ -28,6 +28,8 @@ PACKAGES
(2015/04/14): set debug option off by default; keeplastbox modified;
(2016/06/21): bugfix compatibility with luatexja package;
(2017/03/27): bugfix version with new options for some checks on/off;
+ (2020/10/14): bugfix development and test;
+ (2020/10/16): bugfix version: modern with noautobase;
* marginal.sty, v1.1 2012/05/29:
– enlarges room for marginal inserts;
diff --git a/macros/latex/contrib/sttools/flushend.dtx b/macros/latex/contrib/sttools/flushend.dtx
index 2634f02e80..20d20f396e 100644
--- a/macros/latex/contrib/sttools/flushend.dtx
+++ b/macros/latex/contrib/sttools/flushend.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment/*% \end{macrocode}*/
%
-% Copyright (C) 2017 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
+% Copyright (C) 2020 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -26,7 +26,16 @@
%<*batchfile>
\input docstrip.tex
\keepsilent\askforoverwritefalse
-\nopreamble\nopostamble
+\preamble
+%%
+%% This is file `flushend.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% flushend.dtx (with options: `package')
+%%
+\endpreamble
\generate{\file{flushend.sty}{\from{flushend.dtx}{package}}}
%</batchfile>
%<batchfile>\endbatchfile
@@ -38,9 +47,8 @@
\ProvidesFile{flushend.dtx}
%</driver>
%<*package>
-%% Copyright (C) 1997-2017 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
+%% Copyright (C) 1997-2020 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
%% VTeX Ltd., Mokslinink\k{u} 2a, Vilnius, Lithuania
-%% http://www.vtex.lt/tex/download/macros/
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -56,12 +64,12 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{flushend}
%<*package>
- [2017/03/27 v3.3 Balancing columns in twocolumn mode]
+ [2020/10/16 v3.5 Balancing columns in twocolumn mode]
%</package>
%
%<*driver>
\documentclass{ltxdoc}
-\usepackage{flushend}[2016/06/21]
+\usepackage{flushend}[2020/10/16]
\EnableCrossrefs
\CodelineIndex
%%\RecordChanges
@@ -74,7 +82,7 @@
%</driver>
% \fi
%
-% \CheckSum{1855}
+% \CheckSum{2020}
%
% \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
@@ -104,9 +112,11 @@
% ancient/modern,
% spread/nospread,
% removelastbox/keeplastbox}
-% \changes{v3.1}{2015/04/14}{set debug option off by default; keeplastbox modified;}
-% \changes{v3.2}{2016/06/21}{bugfix compatibility with luatexja}
-% \changes{v3.3}{2017/03/27}{bugfix for get@@footnoterule@@box; options for some checks on/off}
+% \changes{v3.1}{2015/04/14}{set debug option off by default; keeplastbox modified;}
+% \changes{v3.2}{2016/06/21}{bugfix compatibility with luatexja}
+% \changes{v3.3}{2017/03/27}{bugfix for get@@footnoterule@@box; options for some checks on/off}
+% \changes{v3.4}{2020/10/14}{bugfix development and test}
+% \changes{v3.5}{2020/10/16}{bugfix version: modern with noautobase}
%
% \DoNotIndex{\newcommand,\newenvironment}
%
@@ -121,16 +131,16 @@
% \section{Introduction}
%
% The package is used to balance columns on any page in twocolumn
-% mode. By default it is switched on at the end of document. It is
-% expected to work with footnotes, top floats and column break
+% mode. By default it is switched on at the end of document. It is
+% expected to work with footnotes, top floats and column break
% before one line section title.
%
% \section{Usage}
%
-% Just load the package to balance the last page: that's all.
+% Just load the package to balance the last page: that's all.
% To balance some page in middle of document use command
-% \cs{flushcolsend} at that page.
-%
+% \cs{flushcolsend} at that page.
+%
% \medskip
% \DescribeMacro{\flushend}
%
@@ -168,7 +178,7 @@
% Adds \meta{tokens} at the end of right column.
%
% \medskip
-% \textit{Example}: |\atColsEnd{\vfil}|.
+% \textit{Example}: |\atColsEnd{\vfil}|.
%
% \medskip
% \DescribeMacro{\showcolsendrule}
@@ -176,24 +186,24 @@
% It can be used just for debugging: adds rule to the bottom of columns.
%
% \subsection{Package options}
-%
+%
% \medskip
% \DescribeMacro{ancient}
% It is used to switch on old version of balancing algorithm.
% This version is not so accurate or "clever" but quite safe.
-%
+%
% \medskip
% \DescribeMacro{modern}
% [default] It is used to switch on new version of balancing algorithm.
% This version has some heuristic guesses for footnotes, floats
% and section like head skip. So it is more dangerous in the case
-% for text misplace or disappear.
+% for text misplace or disappear.
%
% \medskip
% \DescribeMacro{autobase}
% [default] It is used to guess |\baselineskip| value on original columns
% break. On failure just use |\atColsBreak{...}|.
-%
+%
% \medskip
% \DescribeMacro{noautobase}
% It is used to switch off the previous option behaviour.
@@ -201,7 +211,7 @@
% \medskip
% \DescribeMacro{spread}
% [default] It adds extra glue to the rightcolumn trying to balance.
-%
+%
% \medskip
% \DescribeMacro{nospread}
% It skips adding extra glue to the last column.
@@ -209,11 +219,11 @@
% \medskip
% \DescribeMacro{removelastbox}
% [default] It tries to remove an empty box (some more material) from the last column bottom.
-%
+%
% \medskip
% \DescribeMacro{keeplastbox}
-% It skips removing anything from the last column. As example it is usefull and can be used
-% then document ends by reference item and last line of text should be with indend.
+% It skips removing anything from the last column. As example it is usefull and can be used
+% then document ends by reference item and last line of text should be with indend.
%
% \medskip
% \DescribeMacro{checkfootnote}
@@ -241,7 +251,7 @@
% [default] Skips putting debuging lines.
%
% \StopEventually{}
-%
+%
% \section{Implementation}
%
% \iffalse
@@ -257,10 +267,10 @@
\newif\if@balance@debug \@balance@debugfalse
\DeclareOption{autobase}{\global\@auto@baselineskiptrue}
\DeclareOption{noautobase}{\global\@auto@baselineskipfalse}
-\DeclareOption{ancient}{\global\@ancient@balance@versiontrue}
-\DeclareOption{modern}{\global\@ancient@balance@versionfalse}
-\DeclareOption{spread}{\global\@right@column@spreadtrue}
-\DeclareOption{nospread}{\global\@right@column@spreadfalse}
+\DeclareOption{ancient}{\global\@ancient@balance@versiontrue}
+\DeclareOption{modern}{\global\@ancient@balance@versionfalse}
+\DeclareOption{spread}{\global\@right@column@spreadtrue}
+\DeclareOption{nospread}{\global\@right@column@spreadfalse}
\DeclareOption{removelastbox}{\global\@remove@lastbox@at@balancingtrue}
\DeclareOption{keeplastbox}{\global\@remove@lastbox@at@balancingfalse}
\DeclareOption{checkfootnote}{%
@@ -293,9 +303,11 @@
\newskip\flushend@@lastskip@b
\newskip\flushend@@lastskip@c
\newcount\flushend@@penalty@a
+\newcount\var@@loop@iter
\newdimen\flushend@@lastkern@a
\newdimen\var@@temp@spread
\newdimen\var@@temp@a
+\newdimen\var@@temp@loop
\def\top@@skip@@limit{.7\topskip}
\newdimen\flushend@@page@rule \flushend@@page@rule\z@
\def\showcolsendrule{\global\flushend@@page@rule=.4\p@}
@@ -353,7 +365,7 @@
}
\def\set@split@topskip@to#1{%
\splittopskip#1\relax \vfuzz\maxdimen \vbadness\maxdimen
- }
+ }
% \end{macrocode}
% \end{macro}
%
@@ -373,28 +385,28 @@
%
% To get more or less proper result we need to know about footnotes at
% the left column end, top floats at the right column top, skips and
-% so on. This part of the package is responsible for such analysis.
+% so on. This part of the package is responsible for such analysis.
%
% \begin{macrocode}
\gdef\analyze@lastbox@box#1{%
\setbox\flushend@@varbox@a\vbox{%
\unvbox#1%
- \global\flushend@@lastskip@a\lastskip
+ \global\flushend@@lastskip@a\lastskip
\unskip
- \global\var@@temp@a\lastkern
+ \global\var@@temp@a\lastkern
\unkern
- \global\flushend@@penalty@a\lastpenalty
+ \global\flushend@@penalty@a\lastpenalty
\unpenalty
\ifdim\lastskip>\z@
- \global\flushend@@lastskip@a\lastskip
- \fi
+ \global\flushend@@lastskip@a\lastskip
+ \fi
\unskip
\ifdim\lastkern>\z@
- \global\var@@temp@a\lastkern
- \fi
+ \global\var@@temp@a\lastkern
+ \fi
\unkern
\ifnum\lastpenalty>\z@
- \global\flushend@@penalty@a\lastpenalty
+ \global\flushend@@penalty@a\lastpenalty
\fi
\unpenalty
\global\setbox\flushend@@tempbox@a\lastbox
@@ -402,7 +414,7 @@
\wlog@balance@debug{^^J::analyze@lastbox@box::\log@box@info{#1}%
^^J ::unvbox: \log@box@info{\flushend@@varbox@a}%
^^J::lastbox: \log@box@info{\flushend@@tempbox@a}%
- ^^J::lastskip: \the\flushend@@lastskip@a;
+ ^^J::lastskip: \the\flushend@@lastskip@a;
lastkern: \the\var@@temp@a;
lastpenalty: \the\flushend@@penalty@a
}%
@@ -425,11 +437,11 @@
\wlog@balance@debug{^^Jmainbox: \log@box@info{#1}}%
\setbox\flushend@@varbox@a\vbox{%
\unvbox#1%
- \global\flushend@@lastskip@a\lastskip
+ \global\flushend@@lastskip@a\lastskip
\unskip
\global\flushend@@lastkern@a\lastkern
\unkern
- \global\flushend@@penalty@a\lastpenalty
+ \global\flushend@@penalty@a\lastpenalty
\unpenalty
\global\setbox\flushend@@tempbox@a\lastbox
}%
@@ -437,8 +449,8 @@
\advance\flushend@@lastskip@b -\ht\flushend@@tempbox@a
\wlog@balance@debug{.-box: \log@box@info{\flushend@@varbox@a}%
^^J.-lastbox: \log@box@info{\flushend@@tempbox@a}%
- ^^J.-lastskip: \the\flushend@@lastskip@a;
- lastkern: \the\flushend@@lastkern@a;
+ ^^J.-lastskip: \the\flushend@@lastskip@a;
+ lastkern: \the\flushend@@lastkern@a;
lastpenalty: \the\flushend@@penalty@a
^^J.-diff: \the\flushend@@lastskip@b
}%
@@ -486,6 +498,16 @@
\wlog@balance@debug{lastbox: \log@box@info{\flushend@@varbox@a}}%
\fi
\fi
+ \ifdim\var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \global\advance\var@@loop@iter\@ne
+ \fi
+ \var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \ifnum\var@@loop@iter<3\relax
+ \wlog@balance@debug{analyze left col: iteration \number\var@@loop@iter; ht \the\var@@temp@loop}%
+ \else
+ \wlog@balance@debug{analyze left col loop limit!}%
+ \ht\flushend@@varbox@a\z@
+ \fi
\ifdim\ht\flushend@@varbox@a>\topskip
\expandafter\analyze@leftcolumn@box\expandafter\flushend@@varbox@a
\fi
@@ -497,7 +519,7 @@
% \begin{macro}{\get@@footnoterule@@box}
%
% Gets dimensions of the box made by |footnoterule| and writes to:
-% |\footnoterule@@box@@ht|, |\footnoterule@@box@@dp|, |\footnoterule@@box@@wd|.
+% |\footnoterule@@box@@ht|, |\footnoterule@@box@@dp|, |\footnoterule@@box@@wd|.
%
% \begin{macrocode}
\def\get@@footnoterule@@box{%
@@ -522,8 +544,8 @@
%
% Checks if \marg{box1} dimensions equals to |footnoterule| box dimensions.
% If so and if \marg{skip} is not |\topskip| we guess it is footnote.
-% In that case we define |leftcolumn| height without |footnote| as
-% \marg{box2} height and save it as |\main@box@height|. Skip from text to
+% In that case we define |leftcolumn| height without |footnote| as
+% \marg{box2} height and save it as |\main@box@height|. Skip from text to
% footnote define as |\main@box@skip|.
%
% \begin{macrocode}
@@ -536,8 +558,8 @@
\else
\xdef\main@box@height{\the\ht#3}%
\xdef\main@box@skip{\the#2}%
- \wlog@balance@debug{^^J:footnoterule found:
- main@box <ht=\main@box@height,
+ \wlog@balance@debug{^^J:footnoterule found:
+ main@box <ht=\main@box@height,
skip=\main@box@skip>
}%
\global\let\check@@footnoterule@@box\@gobblethree
@@ -569,8 +591,8 @@
\let\initial@check@@baselineskip@@skip\check@@baselineskip@@skip
% \end{macrocode}
%
-% In the case we found footnote it is necessary to look for the last skip
-% between text lines again. For that we use
+% In the case we found footnote it is necessary to look for the last skip
+% between text lines again. For that we use
% |\reset@check@@baselineskip@@skip|. It activates |\check@@baselineskip@@skip|.
%
% \begin{macrocode}
@@ -693,7 +715,17 @@
\ifdim\flushend@@lastskip@b>\topskip
\xdef\top@@section@skip{\the\flushend@@lastskip@b}%
\fi
- \ifdim\ht\flushend@@varbox@a>2\topskip
+ \ifdim\var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \advance\var@@loop@iter\@ne
+ \fi
+ \var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \ifnum\var@@loop@iter<3\relax
+ \wlog@balance@debug{analyze right col: iteration \number\var@@loop@iter; ht \the\var@@temp@loop}%
+ \else
+ \wlog@balance@debug{analyze right col loop limit!}%
+ \ht\flushend@@varbox@a=\z@
+ \fi
+ \ifdim\ht\flushend@@varbox@a>2\topskip
\setbox\flushend@@tempbox@c\vbox{\unvbox\flushend@@varbox@a}%
\repeat
\fi
@@ -705,7 +737,7 @@
%
% \begin{macro}{\combine@columns@for@balance}
%
-% Collects both columns to one box removing left column footnotes
+% Collects both columns to one box removing left column footnotes
% and right column top float and adding right skip in between them.
%
% \begin{macrocode}
@@ -725,9 +757,11 @@
\setbox\@tempboxa\vbox{%
\unvbox\flushend@@varbox@a
\unskip\unkern\unpenalty
+ \hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\columnwidth
\vskip\flushend@@lastskip@c
\the\atColsBreak
- \hrule\@height\flushend@@page@rule width\columnwidth
\ifdim\top@@section@skip>\top@@skip@@limit
\vskip\top@@section@skip
\fi
@@ -741,11 +775,12 @@
\else
%% Ignore baselineskip value on column break
\setbox\@tempboxa\vbox{%
- \unvbox\@leftcolumn
- \setbox\z@\lastbox
+ \unvbox\flushend@@varbox@a
\unskip\unkern\unpenalty
- \the\atColsBreak
\hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\columnwidth
+ \the\atColsBreak
\unvbox\@outputbox
\remove@lastbox@at@balancing
\the\atColsEnd
@@ -758,11 +793,11 @@
% \begin{macro}{\set@outputbox@with@footnote}
%
% Calculates break position and formats balanced columns in the |\@outputbox|
-% with footnotes.
+% with footnotes.
%
% \begin{macrocode}
\def\set@outputbox@with@footnote{%
- %% footnote in left column
+ %% footnote in left column
\@tempdimb\ht\@tempboxa
\ifdim\top@@floatbox@skip>\z@
\advance\@tempdimb \top@@floatbox@skip
@@ -819,6 +854,8 @@
\vss
}%
\hrule\@height\flushend@@page@rule width\textwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\columnwidth
\vss
}%
\global\ht\@leftcolumn=\the\@tempdima
@@ -868,11 +905,11 @@
% \begin{macro}{\set@outputbox@without@footnote}
%
% Calculates break position and formats balanced columns in the |\@outputbox|
-% without footnotes.
+% without footnotes.
%
% \begin{macrocode}
\def\set@outputbox@without@footnote{%
- %% no footnote in left column
+ %% no footnote in left column
\@tempdimb \ht\@tempboxa
\ifdim\top@@floatbox@skip>\z@
\advance\@tempdimb \top@@floatbox@skip
@@ -919,6 +956,8 @@
\setbox\@leftcolumn\vbox to\@tempdima{%
\vbox to\@tempdimb{\unvbox\flushend@@varbox@c\vss}%
\hrule\@height\flushend@@page@rule width\textwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\vss
}%
\global\ht\@leftcolumn=\the\@tempdima
@@ -963,51 +1002,70 @@
% Columns balancing of the twocolumn mode page (modern algorithm).
% It is maybe not so safe for text moving or missing at all
% as it uses some heuristic technique to find footnotes, last skip between lines
-% at left column and floats or section like heads at right column top
-% for replacing them (except heads of course) to other places in text.
-%
+% at left column and floats or section like heads at right column top
+% for replacing them (except heads of course) to other places in text.
+%
% \begin{macrocode}
\def\last@outputdblcol@modern{%
\if@firstcolumn
\global \@firstcolumnfalse
- \global \setbox\@leftcolumn \box\@outputbox
+ \global\setbox\@leftcolumn\copy\@outputbox
+ \splitmaxdepth\maxdimen
+ \vbadness\maxdimen
+ \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%
+ \setbox\@outputbox\vsplit\@outputbox to\maxdimen
+ \toks@\expandafter{\topmark}%
+ \xdef\@firstcoltopmark{\the\toks@}%
+ \toks@\expandafter{\splitfirstmark}%
+ \xdef\@firstcolfirstmark{\the\toks@}%
+ \ifx\@firstcolfirstmark\@empty
+ \global\let\@setmarks\relax
+ \else
+ \gdef\@setmarks{%
+ \let\firstmark\@firstcolfirstmark
+ \let\topmark\@firstcoltopmark
+ }%
+ \fi
\else
\global \@firstcolumntrue
\@tempdima\ht\@leftcolumn
+ \advance\@tempdima by\dp\@leftcolumn
\set@split@topskip@to\topskip
\var@@temp@spread=\wd\@outputbox
\get@@footnoterule@@box
\xdef\main@box@height{\the\ht\@leftcolumn}%
\xdef\main@box@skip{\z@}%
- \global\flushend@@lastskip@c\z@
- \setbox\flushend@@varbox@a\vbox{\unvcopy\@leftcolumn}%
+ \reset@check@@baselineskip@@skip\relax\relax\flushend@@lastskip@c
+ \setbox\flushend@@varbox@a\vbox{\unvcopy\@leftcolumn}%
+ \var@@loop@iter\z@ \var@@temp@loop\z@
\analyze@leftcolumn@box\flushend@@varbox@a
- \setbox\flushend@@varbox@a\vbox{\unvcopy\@outputbox}%
+ \setbox\flushend@@varbox@a\vbox{\unvcopy\@outputbox}%
+ \var@@loop@iter\z@ \var@@temp@loop\z@
\analyze@rightcolumn@box\flushend@@varbox@a
- \ifdim\main@box@skip>\z@
- %% footnote in left column
+ \ifdim\main@box@skip>\z@
+ %% footnote in left column
\set@split@topskip@to\z@
\setbox\flushend@@varbox@a\vsplit\@leftcolumn to\main@box@height
- \else
- %% no footnote in left column
+ \else
+ %% no footnote in left column
\setbox\flushend@@varbox@a\box\@leftcolumn
\fi
- \ifdim\var@@temp@spread>\z@
+ \ifdim\var@@temp@spread>\z@
%% rightcolumn non empty
\combine@columns@for@balance
- \else
+ \else
%% rightcolumn empty
\setbox\@tempboxa\vbox{%
\unvbox\flushend@@varbox@a
\remove@lastbox@at@balancing
\the\atColsEnd
}%
- \fi
+ \fi
\ifdim\main@box@skip>\z@
- %% footnote in left column
+ %% footnote in left column
\set@outputbox@with@footnote
\else
- %% no footnote in left column
+ %% no footnote in left column
\set@outputbox@without@footnote
\fi
\setbox\@outputbox \vbox {%
@@ -1028,6 +1086,7 @@
\setbox\@outputbox\vbox{\box\hold@viper\box\@outputbox}%
\fi
\@combinedblfloats
+ \csname @setmarks\endcsname
\@outputpage
\begingroup
\@dblfloatplacement
@@ -1050,9 +1109,9 @@
% \begin{macro}{\last@outputdblcol@old}
%
% Columns balancing of the twocolumn mode page (ancient algorithm).
-% It is maybe not so good in some cases but maybe more safe for text
+% It is maybe not so good in some cases but maybe more safe for text
% moving or missing at all.
-%
+%
% \begin{macrocode}
\def\last@outputdblcol@ancient{%
\if@firstcolumn
@@ -1096,6 +1155,8 @@
\unskip\unpenalty
\vskip\flushend@@lastskip@c
\hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\the\atColsBreak
\unvbox\@outputbox
\remove@lastbox@at@balancing
@@ -1107,6 +1168,8 @@
\setbox\z@\lastbox
\unskip
\hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\the\atColsBreak
\unvbox\@outputbox
\remove@lastbox@at@balancing
@@ -1132,8 +1195,8 @@
\vsplit\flushend@@tempbox@a to\@tempdimb
\vss
}%
- \wlog{(2)Left:\the\ht\flushend@@tempbox@c\space
- Right:\the\ht\flushend@@tempbox@a\space
+ \wlog{(2)Left:\the\ht\flushend@@tempbox@c\space
+ Right:\the\ht\flushend@@tempbox@a\space
Output:\the\@tempdimb
}%
\ifdim\ht\flushend@@tempbox@c<\ht\flushend@@tempbox@a
@@ -1156,6 +1219,8 @@
}%
}%
\hrule\@height\flushend@@page@rule
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\vss
}%
\setbox\@outputbox\vbox to\@tempdima{%
@@ -1166,6 +1231,8 @@
}%
}%
\hrule\@height\flushend@@page@rule
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\vss
}%
\setbox\@outputbox\vbox{%
@@ -1235,7 +1302,7 @@
\def\raggedcolsend{\global\let\@outputdblcol\saved@orig@@outputdblcol}
% \end{macrocode}
%
-% \cs{flushend} is used to switch on column balancing on the last page.
+% \cs{flushend} is used to switch on column balancing on the last page.
% It is used by default.
%
% \begin{macrocode}
diff --git a/macros/latex/contrib/sttools/flushend.pdf b/macros/latex/contrib/sttools/flushend.pdf
index 00a66aa208..0be3cddabc 100644
--- a/macros/latex/contrib/sttools/flushend.pdf
+++ b/macros/latex/contrib/sttools/flushend.pdf
Binary files differ