summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-03-05 03:01:34 +0000
committerNorbert Preining <norbert@preining.info>2023-03-05 03:01:34 +0000
commita2d17a09f7ecd91acd8826216349bb14cc5602cd (patch)
treef5560fff94ed497200d93e8fa4a0c0f8f900e281
parent7761a2c2ae5e392243a4e09aefe8c69a97a1d0f6 (diff)
CTAN sync 202303050301
-rw-r--r--FILES.byname397
-rw-r--r--FILES.byname.gzbin2515474 -> 2515850 bytes
-rw-r--r--FILES.last07days941
-rw-r--r--biblio/ctan-bibdata/ctan.bib20
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3654349 -> 3655151 bytes
-rw-r--r--indexing/upmendex/COPYRIGHT2
-rw-r--r--indexing/upmendex/README.md35
-rw-r--r--indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx32
-rw-r--r--indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx32
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist3
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist3
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist1
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist3
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist3
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist3
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist3
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist1
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist3
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist4
-rw-r--r--indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist4
-rw-r--r--indexing/upmendex/doc/samples/latex/Makefile24
-rw-r--r--indexing/upmendex/doc/samples/latex/city0.tex203
-rw-r--r--indexing/upmendex/doc/samples/latex/city1.tex124
-rw-r--r--indexing/upmendex/doc/samples/latex/haranoaji-uptex.map40
-rw-r--r--indexing/upmendex/doc/samples/latex/mlg0.ist32
-rw-r--r--indexing/upmendex/doc/samples/latex/mlg1.ist19
-rw-r--r--indexing/upmendex/doc/samples/multi.idx1
-rw-r--r--indexing/upmendex/doc/samples/option/Makefile16
-rw-r--r--indexing/upmendex/doc/samples/option/mdxsty_attr_default.ist (renamed from indexing/upmendex/doc/samples/option/mdxsty_rule0.ist)2
-rw-r--r--indexing/upmendex/doc/samples/option/rule0.ist3
-rw-r--r--indexing/upmendex/doc/upmendex-slide-ctan.pdfbin0 -> 807494 bytes
-rw-r--r--indexing/upmendex/doc/upmendex.ja.txt6
-rw-r--r--indexing/upmendex/man/upmendex.16
-rw-r--r--indexing/upmendex/man/upmendex.man1.pdfbin253880 -> 324932 bytes
-rw-r--r--indexing/upmendex/source/ChangeLog90
-rw-r--r--indexing/upmendex/source/Makefile.am23
-rw-r--r--indexing/upmendex/source/Makefile.in23
-rwxr-xr-xindexing/upmendex/source/configure24
-rw-r--r--indexing/upmendex/source/configure.ac4
-rw-r--r--indexing/upmendex/source/convert.c12
-rw-r--r--indexing/upmendex/source/exhanzi.h1
-rw-r--r--indexing/upmendex/source/exkana.h1
-rw-r--r--indexing/upmendex/source/fread.c26
-rw-r--r--indexing/upmendex/source/fwrite.c203
-rw-r--r--indexing/upmendex/source/hanzi.h16
-rw-r--r--indexing/upmendex/source/kana.h4
-rw-r--r--indexing/upmendex/source/main.c31
-rw-r--r--indexing/upmendex/source/mendex.h1
-rw-r--r--indexing/upmendex/source/sort.c168
-rw-r--r--indexing/upmendex/source/tests/pprec5.ist3
-rw-r--r--indexing/upmendex/source/tests/pprec6.ist3
-rw-r--r--indexing/upmendex/source/tests/pprec7.ist3
-rw-r--r--indexing/upmendex/source/tests/romalpA-5.ind5
-rw-r--r--indexing/upmendex/source/tests/romalpA-6.ind5
-rw-r--r--indexing/upmendex/source/tests/romalpA.idx7
-rw-r--r--indexing/upmendex/source/tests/romalpB-5.ind14
-rw-r--r--indexing/upmendex/source/tests/romalpB-6.ind14
-rw-r--r--indexing/upmendex/source/tests/romalpB-7.ind14
-rw-r--r--indexing/upmendex/source/tests/romalpB.idx60
-rw-r--r--indexing/upmendex/source/tests/romalpC-5.ind14
-rw-r--r--indexing/upmendex/source/tests/romalpC.idx76
-rw-r--r--indexing/upmendex/source/tests/romalpD-5.ind9
-rw-r--r--indexing/upmendex/source/tests/romalpD-6.ind9
-rw-r--r--indexing/upmendex/source/tests/romalpD-7.ind9
-rw-r--r--indexing/upmendex/source/tests/romalpD.idx35
-rwxr-xr-xindexing/upmendex/source/tests/upmendex.test107
-rw-r--r--macros/latex/contrib/babel-contrib/greek/Makefile95
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README253
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README.html1136
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README.md35
-rw-r--r--macros/latex/contrib/babel-contrib/greek/athnum.dtx206
-rw-r--r--macros/latex/contrib/babel-contrib/greek/athnum.pdfbin176656 -> 176139 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html1387
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst414
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.dtx1600
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.ins10
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.pdfbin255669 -> 544962 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/grmath.dtx38
-rw-r--r--macros/latex/contrib/babel-contrib/greek/grmath.pdfbin120534 -> 120493 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdfbin188008 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex422
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-athnum.pdfbin0 -> 174634 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-athnum.tex70
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-case-changing.tex1048
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex37
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex60
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdfbin153395 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdfbin51599 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek.pdfbin0 -> 428667 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek.tex793
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greeknum.tex131
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdfbin44372 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex236
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex189
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdfbin43239 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex264
-rw-r--r--macros/latex/contrib/babel-contrib/greek/usage.pdfbin176463 -> 184955 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/usage.tex216
-rw-r--r--macros/latex/contrib/sillypage/sillypage-example.pdfbin103728 -> 104340 bytes
-rw-r--r--macros/latex/contrib/sillypage/sillypage.dtx6
-rw-r--r--macros/latex/contrib/sillypage/sillypage.ins4
-rw-r--r--macros/latex/contrib/sillypage/sillypage.pdfbin219736 -> 220111 bytes
-rw-r--r--macros/latex/contrib/sillypage/sillywalk-map.pdfbin18636 -> 28270 bytes
-rw-r--r--obsolete/macros/latex/contrib/tablestyles/README (renamed from macros/latex/contrib/tablestyles/README)0
-rw-r--r--obsolete/macros/latex/contrib/tablestyles/tablestyles.dtx (renamed from macros/latex/contrib/tablestyles/tablestyles.dtx)0
-rw-r--r--obsolete/macros/latex/contrib/tablestyles/tablestyles.ins (renamed from macros/latex/contrib/tablestyles/tablestyles.ins)0
-rw-r--r--obsolete/macros/latex/contrib/tablestyles/tablestyles.pdf (renamed from macros/latex/contrib/tablestyles/tablestyles.pdf)bin456191 -> 456191 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb120
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2450548 -> 2451152 bytes
-rw-r--r--timestamp2
113 files changed, 7150 insertions, 4620 deletions
diff --git a/FILES.byname b/FILES.byname
index c12f7c2edf..353362db86 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2048,12 +2048,12 @@
2022/12/25 | 1673 | biblio/citation-style-language/README.md
2022/12/25 | 11958 | biblio/citation-style-language/vancouver.csl
2022/12/25 | 604004 | biblio/citation-style-language.zip
-2023/03/03 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/03/04 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/03/03 | 2767424 | biblio/ctan-bibdata/ctan.bib
-2023/03/03 | 3656310 | biblio/ctan-bibdata/ctan.pdf
+2023/03/04 | 2767812 | biblio/ctan-bibdata/ctan.bib
+2023/03/04 | 3654349 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/03/03 | 4052068 | biblio/ctan-bibdata.zip
+2023/03/04 | 4051001 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5409,7 +5409,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2023/03/03 | 122978 | FILES.last07days
+2023/03/04 | 115677 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -165721,121 +165721,145 @@
2006/07/18 | 22933 | indexing/texindex/texindex.pdf
1991/07/08 | 1930 | indexing/texindex/texindex.tex
2006/07/18 | 21351 | indexing/texindex.zip
-2021/11/21 | 1464 | indexing/upmendex/COPYRIGHT
-2021/11/21 | 2034 | indexing/upmendex/doc/samples/alphabet/alpha_es.idx
-2021/11/21 | 4039 | indexing/upmendex/doc/samples/alphabet/alpha_zh.idx
-2021/11/21 | 1891 | indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx
-2021/11/21 | 4485 | indexing/upmendex/doc/samples/alphabet/alpha_zhr.idx
-2021/11/21 | 1200 | indexing/upmendex/doc/samples/alphabet/alpha_zhs.idx
-2021/11/21 | 2144 | indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx
-2021/11/21 | 1379 | indexing/upmendex/doc/samples/alphabet/Makefile
-2021/11/21 | 65 | indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist
-2021/11/21 | 60 | indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist
-2021/11/21 | 43 | indexing/upmendex/doc/samples/alphabet/mdxsty_es.ist
-2021/11/21 | 260 | indexing/upmendex/doc/samples/alphabet/mdxsty_head1.ist
-2021/11/21 | 261 | indexing/upmendex/doc/samples/alphabet/mdxsty_head2.ist
-2021/11/21 | 260 | indexing/upmendex/doc/samples/alphabet/mdxsty_head3.ist
-2021/11/21 | 295 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist
-2021/11/21 | 1807 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist
-2021/11/21 | 1807 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist
-2021/11/21 | 1807 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist
-2021/11/21 | 278 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist
-2021/11/21 | 295 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist
-2021/11/21 | 521 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist
-2021/11/21 | 279 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist
-2021/11/21 | 295 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist
-2021/11/21 | 435 | indexing/upmendex/doc/samples/french.idx
-2021/11/21 | 463 | indexing/upmendex/doc/samples/german.idx
-2021/11/21 | 340 | indexing/upmendex/doc/samples/greek.idx
-2021/11/21 | 1477 | indexing/upmendex/doc/samples/korean.idx
-2021/11/21 | 393 | indexing/upmendex/doc/samples/Makefile
-2021/11/21 | 260 | indexing/upmendex/doc/samples/mdxsty00.ist
-2021/11/21 | 293 | indexing/upmendex/doc/samples/mdxsty01.ist
-2021/11/21 | 841 | indexing/upmendex/doc/samples/mdxsty02.ist
-2021/11/21 | 1231 | indexing/upmendex/doc/samples/mdxsty03.ist
-2021/11/21 | 647 | indexing/upmendex/doc/samples/multi.idx
-2021/11/21 | 1240 | indexing/upmendex/doc/samples/option/attri1.idx
-2021/11/21 | 872 | indexing/upmendex/doc/samples/option/japanese.idx
-2021/11/21 | 749 | indexing/upmendex/doc/samples/option/Makefile
-2021/11/21 | 271 | indexing/upmendex/doc/samples/option/mdxsty_j00.ist
-2021/11/21 | 271 | indexing/upmendex/doc/samples/option/mdxsty_j01.ist
-2021/11/21 | 286 | indexing/upmendex/doc/samples/option/mdxsty_j02.ist
-2021/11/21 | 334 | indexing/upmendex/doc/samples/option/mdxsty_rule0.ist
-2021/11/21 | 614 | indexing/upmendex/doc/samples/russian.idx
-2021/11/21 | 19351 | indexing/upmendex/doc/upmendex.ja.txt
-2021/11/21 | 19390 | indexing/upmendex/man/upmendex.1
-2021/11/21 | 253880 | indexing/upmendex/man/upmendex.man1.pdf
-2021/11/21 | 4452 | indexing/upmendex/README.md
-2021/11/21 | 44397 | indexing/upmendex/source/aclocal.m4
-2021/11/21 | 337 | indexing/upmendex/source/ac/withenable.ac
-2021/11/21 | 4922 | indexing/upmendex/source/c-auto.in
-2021/11/21 | 10783 | indexing/upmendex/source/ChangeLog
-2021/11/21 | 714562 | indexing/upmendex/source/configure
-2021/11/21 | 2359 | indexing/upmendex/source/configure.ac
-2021/11/21 | 9227 | indexing/upmendex/source/convert.c
-2021/11/21 | 412 | indexing/upmendex/source/exhanzi.h
-2021/11/21 | 1349 | indexing/upmendex/source/exkana.h
-2021/11/21 | 1435 | indexing/upmendex/source/exvar.h
-2021/11/21 | 14790 | indexing/upmendex/source/fread.c
-2021/11/21 | 33080 | indexing/upmendex/source/fwrite.c
-2021/11/21 | 19515 | indexing/upmendex/source/hanzi.h
-2021/11/21 | 333 | indexing/upmendex/source/indexsty
-2021/11/21 | 5834 | indexing/upmendex/source/kana.h
-2021/11/21 | 1190 | indexing/upmendex/source/kp.c
-2021/11/21 | 406 | indexing/upmendex/source/kp.h
-2021/11/21 | 7869 | indexing/upmendex/source/main.c
-2021/11/21 | 1362 | indexing/upmendex/source/Makefile.am
-2021/11/21 | 46885 | indexing/upmendex/source/Makefile.in
-2021/11/21 | 2652 | indexing/upmendex/source/mendex.h
-2021/11/21 | 1054 | indexing/upmendex/source/pageread.c
-2021/11/21 | 5842 | indexing/upmendex/source/qsort.c
-2021/11/21 | 400 | indexing/upmendex/source/qsort.h
-2021/11/21 | 21189 | indexing/upmendex/source/sort.c
-2021/11/21 | 13105 | indexing/upmendex/source/styfile.c
-2021/11/21 | 1200 | indexing/upmendex/source/tests/attr1.ind
-2021/11/21 | 64 | indexing/upmendex/source/tests/attr1.ist
-2021/11/21 | 68 | indexing/upmendex/source/tests/foo.idx
-2021/11/21 | 58 | indexing/upmendex/source/tests/foo.ind
-2021/11/21 | 1348 | indexing/upmendex/source/tests/locale1.ind
-2021/11/21 | 16 | indexing/upmendex/source/tests/locale1.ist
-2021/11/21 | 38 | indexing/upmendex/source/tests/locale2.ist
-2021/11/21 | 1274 | indexing/upmendex/source/tests/locale2-rule.ind
-2021/11/21 | 182 | indexing/upmendex/source/tests/pprec0.ist
-2021/11/21 | 179 | indexing/upmendex/source/tests/pprec1.ist
-2021/11/21 | 179 | indexing/upmendex/source/tests/pprec2.ist
-2021/11/21 | 179 | indexing/upmendex/source/tests/pprec3.ist
-2021/11/21 | 179 | indexing/upmendex/source/tests/pprec4.ist
-2021/11/21 | 96 | indexing/upmendex/source/tests/pprecA-0.ind
-2021/11/21 | 96 | indexing/upmendex/source/tests/pprecA-1.ind
-2021/11/21 | 96 | indexing/upmendex/source/tests/pprecA-2.ind
-2021/11/21 | 213 | indexing/upmendex/source/tests/pprecA.idx
-2021/11/21 | 96 | indexing/upmendex/source/tests/pprecB-0.ind
-2021/11/21 | 96 | indexing/upmendex/source/tests/pprecB-3.ind
-2021/11/21 | 96 | indexing/upmendex/source/tests/pprecB-4.ind
-2021/11/21 | 207 | indexing/upmendex/source/tests/pprecB.idx
-2021/11/21 | 1077 | indexing/upmendex/source/tests/range1.ind
-2021/11/21 | 70 | indexing/upmendex/source/tests/range1.ist
-2021/11/21 | 1169 | indexing/upmendex/source/tests/range2.ind
-2021/11/21 | 92 | indexing/upmendex/source/tests/range2.ist
-2021/11/21 | 1077 | indexing/upmendex/source/tests/range3.ind
-2021/11/21 | 93 | indexing/upmendex/source/tests/range3.ist
-2021/11/21 | 3278 | indexing/upmendex/source/tests/range.idx
-2021/11/21 | 75 | indexing/upmendex/source/tests/rule1.ist
-2021/11/21 | 93 | indexing/upmendex/source/tests/rule2.ist
-2021/11/21 | 99 | indexing/upmendex/source/tests/rule3.ist
-2021/11/21 | 117 | indexing/upmendex/source/tests/rule4.ist
-2021/11/21 | 417 | indexing/upmendex/source/tests/rule.idx
-2021/11/21 | 1200 | indexing/upmendex/source/tests/rule.ind
-2021/11/21 | 158 | indexing/upmendex/source/tests/uni1.ist
-2021/11/21 | 139 | indexing/upmendex/source/tests/uni2.ist
-2021/11/21 | 64 | indexing/upmendex/source/tests/uni.dict
-2021/11/21 | 435 | indexing/upmendex/source/tests/uni.idx
-2021/11/21 | 766 | indexing/upmendex/source/tests/uni.ind
-2021/11/21 | 272 | indexing/upmendex/source/tests/uni.ist
-2021/11/21 | 4093 | indexing/upmendex/source/tests/upmendex.test
-2021/11/21 | 2311 | indexing/upmendex/source/var.h
-2021/11/21 | 98 | indexing/upmendex/source/version.h
-2021/11/21 | 473691 | indexing/upmendex.zip
+2023/03/04 | 1464 | indexing/upmendex/COPYRIGHT
+2023/03/04 | 2034 | indexing/upmendex/doc/samples/alphabet/alpha_es.idx
+2023/03/04 | 4039 | indexing/upmendex/doc/samples/alphabet/alpha_zh.idx
+2023/03/04 | 3358 | indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx
+2023/03/04 | 4485 | indexing/upmendex/doc/samples/alphabet/alpha_zhr.idx
+2023/03/04 | 1200 | indexing/upmendex/doc/samples/alphabet/alpha_zhs.idx
+2023/03/04 | 3611 | indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx
+2023/03/04 | 1379 | indexing/upmendex/doc/samples/alphabet/Makefile
+2023/03/04 | 93 | indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist
+2023/03/04 | 90 | indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist
+2023/03/04 | 43 | indexing/upmendex/doc/samples/alphabet/mdxsty_es.ist
+2023/03/04 | 260 | indexing/upmendex/doc/samples/alphabet/mdxsty_head1.ist
+2023/03/04 | 261 | indexing/upmendex/doc/samples/alphabet/mdxsty_head2.ist
+2023/03/04 | 260 | indexing/upmendex/doc/samples/alphabet/mdxsty_head3.ist
+2023/03/04 | 325 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist
+2023/03/04 | 1837 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist
+2023/03/04 | 1837 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist
+2023/03/04 | 1837 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist
+2023/03/04 | 366 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist
+2023/03/04 | 325 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist
+2023/03/04 | 552 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist
+2023/03/04 | 367 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist
+2023/03/04 | 413 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist
+2023/03/04 | 435 | indexing/upmendex/doc/samples/french.idx
+2023/03/04 | 463 | indexing/upmendex/doc/samples/german.idx
+2023/03/04 | 340 | indexing/upmendex/doc/samples/greek.idx
+2023/03/04 | 1477 | indexing/upmendex/doc/samples/korean.idx
+2023/03/04 | 6129 | indexing/upmendex/doc/samples/latex/city0.tex
+2023/03/04 | 4011 | indexing/upmendex/doc/samples/latex/city1.tex
+2023/03/04 | 1607 | indexing/upmendex/doc/samples/latex/haranoaji-uptex.map
+2023/03/04 | 385 | indexing/upmendex/doc/samples/latex/Makefile
+2023/03/04 | 2746 | indexing/upmendex/doc/samples/latex/mlg0.ist
+2023/03/04 | 2167 | indexing/upmendex/doc/samples/latex/mlg1.ist
+2023/03/04 | 393 | indexing/upmendex/doc/samples/Makefile
+2023/03/04 | 260 | indexing/upmendex/doc/samples/mdxsty00.ist
+2023/03/04 | 293 | indexing/upmendex/doc/samples/mdxsty01.ist
+2023/03/04 | 841 | indexing/upmendex/doc/samples/mdxsty02.ist
+2023/03/04 | 1231 | indexing/upmendex/doc/samples/mdxsty03.ist
+2023/03/04 | 686 | indexing/upmendex/doc/samples/multi.idx
+2023/03/04 | 1240 | indexing/upmendex/doc/samples/option/attri1.idx
+2023/03/04 | 872 | indexing/upmendex/doc/samples/option/japanese.idx
+2023/03/04 | 1029 | indexing/upmendex/doc/samples/option/Makefile
+2023/03/04 | 272 | indexing/upmendex/doc/samples/option/mdxsty_attr_default.ist
+2023/03/04 | 271 | indexing/upmendex/doc/samples/option/mdxsty_j00.ist
+2023/03/04 | 271 | indexing/upmendex/doc/samples/option/mdxsty_j01.ist
+2023/03/04 | 286 | indexing/upmendex/doc/samples/option/mdxsty_j02.ist
+2023/03/04 | 40 | indexing/upmendex/doc/samples/option/rule0.ist
+2023/03/04 | 614 | indexing/upmendex/doc/samples/russian.idx
+2023/03/04 | 19553 | indexing/upmendex/doc/upmendex.ja.txt
+2023/03/04 | 807494 | indexing/upmendex/doc/upmendex-slide-ctan.pdf
+2023/03/04 | 19507 | indexing/upmendex/man/upmendex.1
+2023/03/04 | 324932 | indexing/upmendex/man/upmendex.man1.pdf
+2023/03/04 | 4765 | indexing/upmendex/README.md
+2023/03/04 | 44397 | indexing/upmendex/source/aclocal.m4
+2023/03/04 | 337 | indexing/upmendex/source/ac/withenable.ac
+2023/03/04 | 4922 | indexing/upmendex/source/c-auto.in
+2023/03/04 | 13663 | indexing/upmendex/source/ChangeLog
+2023/03/04 | 714558 | indexing/upmendex/source/configure
+2023/03/04 | 2310 | indexing/upmendex/source/configure.ac
+2023/03/04 | 9484 | indexing/upmendex/source/convert.c
+2023/03/04 | 435 | indexing/upmendex/source/exhanzi.h
+2023/03/04 | 1376 | indexing/upmendex/source/exkana.h
+2023/03/04 | 1435 | indexing/upmendex/source/exvar.h
+2023/03/04 | 15081 | indexing/upmendex/source/fread.c
+2023/03/04 | 36033 | indexing/upmendex/source/fwrite.c
+2023/03/04 | 19620 | indexing/upmendex/source/hanzi.h
+2023/03/04 | 333 | indexing/upmendex/source/indexsty
+2023/03/04 | 6046 | indexing/upmendex/source/kana.h
+2023/03/04 | 1190 | indexing/upmendex/source/kp.c
+2023/03/04 | 406 | indexing/upmendex/source/kp.h
+2023/03/04 | 7892 | indexing/upmendex/source/main.c
+2023/03/04 | 2180 | indexing/upmendex/source/Makefile.am
+2023/03/04 | 47731 | indexing/upmendex/source/Makefile.in
+2023/03/04 | 2678 | indexing/upmendex/source/mendex.h
+2023/03/04 | 1054 | indexing/upmendex/source/pageread.c
+2023/03/04 | 5842 | indexing/upmendex/source/qsort.c
+2023/03/04 | 400 | indexing/upmendex/source/qsort.h
+2023/03/04 | 22975 | indexing/upmendex/source/sort.c
+2023/03/04 | 13105 | indexing/upmendex/source/styfile.c
+2023/03/04 | 1200 | indexing/upmendex/source/tests/attr1.ind
+2023/03/04 | 64 | indexing/upmendex/source/tests/attr1.ist
+2023/03/04 | 68 | indexing/upmendex/source/tests/foo.idx
+2023/03/04 | 58 | indexing/upmendex/source/tests/foo.ind
+2023/03/04 | 1348 | indexing/upmendex/source/tests/locale1.ind
+2023/03/04 | 16 | indexing/upmendex/source/tests/locale1.ist
+2023/03/04 | 38 | indexing/upmendex/source/tests/locale2.ist
+2023/03/04 | 1274 | indexing/upmendex/source/tests/locale2-rule.ind
+2023/03/04 | 182 | indexing/upmendex/source/tests/pprec0.ist
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec1.ist
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec2.ist
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec3.ist
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec4.ist
+2023/03/04 | 40 | indexing/upmendex/source/tests/pprec5.ist
+2023/03/04 | 36 | indexing/upmendex/source/tests/pprec6.ist
+2023/03/04 | 36 | indexing/upmendex/source/tests/pprec7.ist
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecA-0.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecA-1.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecA-2.ind
+2023/03/04 | 213 | indexing/upmendex/source/tests/pprecA.idx
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecB-0.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecB-3.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecB-4.ind
+2023/03/04 | 207 | indexing/upmendex/source/tests/pprecB.idx
+2023/03/04 | 1077 | indexing/upmendex/source/tests/range1.ind
+2023/03/04 | 70 | indexing/upmendex/source/tests/range1.ist
+2023/03/04 | 1169 | indexing/upmendex/source/tests/range2.ind
+2023/03/04 | 92 | indexing/upmendex/source/tests/range2.ist
+2023/03/04 | 1077 | indexing/upmendex/source/tests/range3.ind
+2023/03/04 | 93 | indexing/upmendex/source/tests/range3.ist
+2023/03/04 | 3278 | indexing/upmendex/source/tests/range.idx
+2023/03/04 | 85 | indexing/upmendex/source/tests/romalpA-5.ind
+2023/03/04 | 85 | indexing/upmendex/source/tests/romalpA-6.ind
+2023/03/04 | 164 | indexing/upmendex/source/tests/romalpA.idx
+2023/03/04 | 786 | indexing/upmendex/source/tests/romalpB-5.ind
+2023/03/04 | 786 | indexing/upmendex/source/tests/romalpB-6.ind
+2023/03/04 | 786 | indexing/upmendex/source/tests/romalpB-7.ind
+2023/03/04 | 1628 | indexing/upmendex/source/tests/romalpB.idx
+2023/03/04 | 942 | indexing/upmendex/source/tests/romalpC-5.ind
+2023/03/04 | 2104 | indexing/upmendex/source/tests/romalpC.idx
+2023/03/04 | 170 | indexing/upmendex/source/tests/romalpD-5.ind
+2023/03/04 | 170 | indexing/upmendex/source/tests/romalpD-6.ind
+2023/03/04 | 170 | indexing/upmendex/source/tests/romalpD-7.ind
+2023/03/04 | 681 | indexing/upmendex/source/tests/romalpD.idx
+2023/03/04 | 75 | indexing/upmendex/source/tests/rule1.ist
+2023/03/04 | 93 | indexing/upmendex/source/tests/rule2.ist
+2023/03/04 | 99 | indexing/upmendex/source/tests/rule3.ist
+2023/03/04 | 117 | indexing/upmendex/source/tests/rule4.ist
+2023/03/04 | 417 | indexing/upmendex/source/tests/rule.idx
+2023/03/04 | 1200 | indexing/upmendex/source/tests/rule.ind
+2023/03/04 | 158 | indexing/upmendex/source/tests/uni1.ist
+2023/03/04 | 139 | indexing/upmendex/source/tests/uni2.ist
+2023/03/04 | 64 | indexing/upmendex/source/tests/uni.dict
+2023/03/04 | 435 | indexing/upmendex/source/tests/uni.idx
+2023/03/04 | 766 | indexing/upmendex/source/tests/uni.ind
+2023/03/04 | 272 | indexing/upmendex/source/tests/uni.ist
+2023/03/04 | 4245 | indexing/upmendex/source/tests/upmendex.test
+2023/03/04 | 2311 | indexing/upmendex/source/var.h
+2023/03/04 | 98 | indexing/upmendex/source/version.h
+2023/03/04 | 1269440 | indexing/upmendex.zip
2023/01/20 | 3242 | indexing/xindex/CHANGELOG
2023/01/18 | 1231 | indexing/xindex/doc/Makefile
2023/01/18 | 32092 | indexing/xindex/doc/tests/buch.idx
@@ -211477,28 +211501,29 @@
2021/02/27 | 372481 | macros/latex/contrib/babel-contrib/german/ngermanb.pdf
2021/02/27 | 2387 | macros/latex/contrib/babel-contrib/german/README
2021/02/27 | 791513 | macros/latex/contrib/babel-contrib/german.zip
-2020/10/14 | 10316 | macros/latex/contrib/babel-contrib/greek/athnum.dtx
-2020/10/14 | 176656 | macros/latex/contrib/babel-contrib/greek/athnum.pdf
-2020/11/10 | 60489 | macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
-2020/10/14 | 3631 | macros/latex/contrib/babel-contrib/greek/babel-greek.ins
-2020/11/10 | 255669 | macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
-2020/10/14 | 6130 | macros/latex/contrib/babel-contrib/greek/grmath.dtx
-2020/10/14 | 120534 | macros/latex/contrib/babel-contrib/greek/grmath.pdf
-2020/11/10 | 2285 | macros/latex/contrib/babel-contrib/greek/Makefile
-2020/11/10 | 10915 | macros/latex/contrib/babel-contrib/greek/README
-2020/11/10 | 35388 | macros/latex/contrib/babel-contrib/greek/README.html
-2020/11/10 | 188008 | macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf
-2020/11/10 | 14838 | macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex
-2020/11/10 | 153395 | macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf
-2020/11/10 | 44372 | macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf
-2020/11/10 | 4999 | macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex
-2020/11/10 | 6186 | macros/latex/contrib/babel-contrib/greek/test-greek.tex
-2020/11/10 | 51599 | macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf
-2020/11/10 | 43239 | macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf
-2020/11/10 | 7648 | macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex
-2020/11/10 | 176463 | macros/latex/contrib/babel-contrib/greek/usage.pdf
-2020/10/14 | 9774 | macros/latex/contrib/babel-contrib/greek/usage.tex
-2020/11/10 | 1254395 | macros/latex/contrib/babel-contrib/greek.zip
+2023/02/11 | 11231 | macros/latex/contrib/babel-contrib/greek/athnum.dtx
+2023/02/11 | 176139 | macros/latex/contrib/babel-contrib/greek/athnum.pdf
+2023/03/04 | 53538 | macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html
+2023/03/04 | 16698 | macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst
+2023/03/04 | 74817 | macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
+2023/02/11 | 3716 | macros/latex/contrib/babel-contrib/greek/babel-greek.ins
+2023/03/04 | 544962 | macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
+2023/02/11 | 6105 | macros/latex/contrib/babel-contrib/greek/grmath.dtx
+2023/02/11 | 120493 | macros/latex/contrib/babel-contrib/greek/grmath.pdf
+2023/03/04 | 3643 | macros/latex/contrib/babel-contrib/greek/Makefile
+2023/03/04 | 1152 | macros/latex/contrib/babel-contrib/greek/README.md
+2023/03/04 | 174634 | macros/latex/contrib/babel-contrib/greek/test-athnum.pdf
+2023/02/11 | 2151 | macros/latex/contrib/babel-contrib/greek/test-athnum.tex
+2023/03/04 | 35274 | macros/latex/contrib/babel-contrib/greek/test-case-changing.tex
+2023/02/11 | 1250 | macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex
+2023/03/04 | 2122 | macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex
+2023/02/11 | 5473 | macros/latex/contrib/babel-contrib/greek/test-greeknum.tex
+2023/03/04 | 428667 | macros/latex/contrib/babel-contrib/greek/test-greek.pdf
+2023/03/04 | 25121 | macros/latex/contrib/babel-contrib/greek/test-greek.tex
+2023/02/11 | 6238 | macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex
+2023/03/04 | 184955 | macros/latex/contrib/babel-contrib/greek/usage.pdf
+2023/03/04 | 10067 | macros/latex/contrib/babel-contrib/greek/usage.tex
+2023/03/04 | 1697828 | macros/latex/contrib/babel-contrib/greek.zip
2013/05/20 | 24628 | macros/latex/contrib/babel-contrib/hebrew/00readme.heb
2013/05/20 | 5764 | macros/latex/contrib/babel-contrib/hebrew/heb209.dtx
2013/05/20 | 152604 | macros/latex/contrib/babel-contrib/hebrew/heb209.pdf
@@ -234868,14 +234893,14 @@
2012/07/02 | 1474 | macros/latex/contrib/silence/silence.ins
2012/07/02 | 17540 | macros/latex/contrib/silence/silence.sty
2012/07/04 | 487529 | macros/latex/contrib/silence.zip
-2022/08/02 | 1417 | macros/latex/contrib/sillypage/README.md
-2022/08/02 | 10848 | macros/latex/contrib/sillypage/sillypage.dtx
-2022/08/02 | 103728 | macros/latex/contrib/sillypage/sillypage-example.pdf
-2022/08/02 | 141 | macros/latex/contrib/sillypage/sillypage-example.tex
-2022/08/02 | 2780 | macros/latex/contrib/sillypage/sillypage.ins
-2022/08/02 | 219736 | macros/latex/contrib/sillypage/sillypage.pdf
-2022/08/02 | 18636 | macros/latex/contrib/sillypage/sillywalk-map.pdf
-2022/08/02 | 317481 | macros/latex/contrib/sillypage.zip
+2023/03/04 | 1417 | macros/latex/contrib/sillypage/README.md
+2023/03/04 | 10848 | macros/latex/contrib/sillypage/sillypage.dtx
+2023/03/04 | 104340 | macros/latex/contrib/sillypage/sillypage-example.pdf
+2023/03/04 | 141 | macros/latex/contrib/sillypage/sillypage-example.tex
+2023/03/04 | 2780 | macros/latex/contrib/sillypage/sillypage.ins
+2023/03/04 | 220111 | macros/latex/contrib/sillypage/sillypage.pdf
+2023/03/04 | 28270 | macros/latex/contrib/sillypage/sillywalk-map.pdf
+2023/03/04 | 320849 | macros/latex/contrib/sillypage.zip
2023/01/07 | 1100 | macros/latex/contrib/simplebnf/LICENSE
2022/05/08 | 510 | macros/latex/contrib/simplebnf/README.md
2023/01/07 | 156004 | macros/latex/contrib/simplebnf/simplebnf-doc.pdf
@@ -236474,11 +236499,6 @@
2021/07/05 | 37884 | macros/latex/contrib/tableof/tableof.dtx
2021/07/05 | 58824 | macros/latex/contrib/tableof/tableof.pdf
2021/07/05 | 70581 | macros/latex/contrib/tableof.zip
-2014/06/27 | 523 | macros/latex/contrib/tablestyles/README
-2014/06/27 | 43780 | macros/latex/contrib/tablestyles/tablestyles.dtx
-2014/06/27 | 1216 | macros/latex/contrib/tablestyles/tablestyles.ins
-2014/06/27 | 456191 | macros/latex/contrib/tablestyles/tablestyles.pdf
-2014/06/28 | 461244 | macros/latex/contrib/tablestyles.zip
2009/08/05 | 1103 | macros/latex/contrib/tablists/README
2009/08/05 | 29124 | macros/latex/contrib/tablists/tablists.dtx
2009/08/05 | 119207 | macros/latex/contrib/tablists/tablists.pdf
@@ -270500,6 +270520,11 @@
2004/02/10 | 241 | obsolete/macros/latex/contrib/switcheml/README
2004/02/10 | 2481 | obsolete/macros/latex/contrib/switcheml/switcheml.sty
2005/04/30 | 1637 | obsolete/macros/latex/contrib/switcheml.zip
+2014/06/27 | 523 | obsolete/macros/latex/contrib/tablestyles/README
+2014/06/27 | 43780 | obsolete/macros/latex/contrib/tablestyles/tablestyles.dtx
+2014/06/27 | 1216 | obsolete/macros/latex/contrib/tablestyles/tablestyles.ins
+2014/06/27 | 456191 | obsolete/macros/latex/contrib/tablestyles/tablestyles.pdf
+2014/06/28 | 461244 | obsolete/macros/latex/contrib/tablestyles.zip
2005/03/17 | 1305 | obsolete/macros/latex/contrib/texmate/README
2000/08/24 | 561 | obsolete/macros/latex/contrib/texmate/skak/skak.fd
2000/08/24 | 561 | obsolete/macros/latex/contrib/texmate/skak/uskak.fd
@@ -289923,7 +289948,7 @@
2023/02/10 | 1564 | systems/texlive/tlnet/archive/collection-pictures.r65768.tar.xz
2023/01/26 | 976 | systems/texlive/tlnet/archive/collection-plaingeneric.r65622.tar.xz
2022/12/27 | 816 | systems/texlive/tlnet/archive/collection-pstricks.r65367.tar.xz
-2023/02/12 | 1684 | systems/texlive/tlnet/archive/collection-publishers.r65789.tar.xz
+2023/03/04 | 1688 | systems/texlive/tlnet/archive/collection-publishers.r66335.tar.xz
2020/03/04 | 340 | systems/texlive/tlnet/archive/collection-texworks.r54074.tar.xz
2020/03/04 | 388 | systems/texlive/tlnet/archive/collection-wintools.r54074.tar.xz
2022/11/08 | 660 | systems/texlive/tlnet/archive/collection-xetex.r64951.tar.xz
@@ -296023,8 +296048,8 @@
2022/03/21 | 6560 | systems/texlive/tlnet/archive/newcastle-bst.r62856.tar.xz
2019/02/28 | 407624 | systems/texlive/tlnet/archive/newcommand.doc.r18704.tar.xz
2019/02/28 | 496 | systems/texlive/tlnet/archive/newcommand.r18704.tar.xz
-2023/02/27 | 14466136 | systems/texlive/tlnet/archive/newcomputermodern.doc.r66202.tar.xz
-2023/02/27 | 5705864 | systems/texlive/tlnet/archive/newcomputermodern.r66202.tar.xz
+2023/03/04 | 14308796 | systems/texlive/tlnet/archive/newcomputermodern.doc.r66338.tar.xz
+2023/03/04 | 5699532 | systems/texlive/tlnet/archive/newcomputermodern.r66338.tar.xz
2019/02/28 | 1632 | systems/texlive/tlnet/archive/newenviron.doc.r29331.tar.xz
2019/02/28 | 2488 | systems/texlive/tlnet/archive/newenviron.r29331.tar.xz
2019/02/28 | 147644 | systems/texlive/tlnet/archive/newfile.doc.r15878.tar.xz
@@ -296974,8 +296999,8 @@
2020/09/29 | 23380 | systems/texlive/tlnet/archive/phonetic.r56468.tar.xz
2019/02/28 | 44080 | systems/texlive/tlnet/archive/phonrule.doc.r43963.tar.xz
2019/02/28 | 1132 | systems/texlive/tlnet/archive/phonrule.r43963.tar.xz
-2023/03/02 | 144888 | systems/texlive/tlnet/archive/photobook.doc.r66282.tar.xz
-2023/03/02 | 30252 | systems/texlive/tlnet/archive/photobook.r66282.tar.xz
+2023/03/04 | 144884 | systems/texlive/tlnet/archive/photobook.doc.r66336.tar.xz
+2023/03/04 | 30280 | systems/texlive/tlnet/archive/photobook.r66336.tar.xz
2019/02/28 | 142148 | systems/texlive/tlnet/archive/photo.doc.r18739.tar.xz
2019/02/28 | 2756 | systems/texlive/tlnet/archive/photo.r18739.tar.xz
2019/02/28 | 8908 | systems/texlive/tlnet/archive/photo.source.r18739.tar.xz
@@ -298497,8 +298522,8 @@
2019/02/28 | 292656 | systems/texlive/tlnet/archive/simplecv.doc.r35537.tar.xz
2019/02/28 | 2112 | systems/texlive/tlnet/archive/simplecv.r35537.tar.xz
2019/02/28 | 5844 | systems/texlive/tlnet/archive/simplecv.source.r35537.tar.xz
-2023/02/18 | 2006600 | systems/texlive/tlnet/archive/simpleicons.doc.r65858.tar.xz
-2023/02/18 | 2733556 | systems/texlive/tlnet/archive/simpleicons.r65858.tar.xz
+2023/03/04 | 2006984 | systems/texlive/tlnet/archive/simpleicons.doc.r66337.tar.xz
+2023/03/04 | 2736668 | systems/texlive/tlnet/archive/simpleicons.r66337.tar.xz
2019/02/28 | 224844 | systems/texlive/tlnet/archive/simpleinvoice.doc.r45673.tar.xz
2019/02/28 | 2420 | systems/texlive/tlnet/archive/simpleinvoice.r45673.tar.xz
2022/10/03 | 130940 | systems/texlive/tlnet/archive/simplekv.doc.r64578.tar.xz
@@ -299165,13 +299190,13 @@
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.amd64-freebsd.r37771.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.amd64-netbsd.r37771.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.armhf-linux.r37771.tar.xz
-2023/01/24 | 95544 | systems/texlive/tlnet/archive/tex4ebook.doc.r65613.tar.xz
+2023/03/04 | 101160 | systems/texlive/tlnet/archive/tex4ebook.doc.r66333.tar.xz
2019/02/28 | 336 | systems/texlive/tlnet/archive/tex4ebook.i386-cygwin.r37771.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-freebsd.r37771.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-linux.r37771.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-netbsd.r37771.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.i386-solaris.r37771.tar.xz
-2023/01/24 | 17760 | systems/texlive/tlnet/archive/tex4ebook.r65613.tar.xz
+2023/03/04 | 17944 | systems/texlive/tlnet/archive/tex4ebook.r66333.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/tex4ebook.universal-darwin.r57908.tar.xz
2019/02/28 | 684 | systems/texlive/tlnet/archive/tex4ebook.win32.r37771.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/tex4ebook.x86_64-cygwin.r37771.tar.xz
@@ -299444,7 +299469,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2023/03/03 | 424636 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66293.tar.xz
+2023/03/04 | 424868 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66319.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -299468,7 +299493,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2023/03/03 | 113828 | systems/texlive/tlnet/archive/texlive-scripts.r66293.tar.xz
+2023/03/04 | 113828 | systems/texlive/tlnet/archive/texlive-scripts.r66319.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2022/11/29 | 36264 | systems/texlive/tlnet/archive/texlive-scripts.win32.r65128.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -300579,6 +300604,8 @@
2023/02/10 | 134036 | systems/texlive/tlnet/archive/ut-thesis.doc.r65767.tar.xz
2023/02/10 | 2632 | systems/texlive/tlnet/archive/ut-thesis.r65767.tar.xz
2023/02/10 | 6868 | systems/texlive/tlnet/archive/ut-thesis.source.r65767.tar.xz
+2023/03/04 | 122488 | systems/texlive/tlnet/archive/uvaletter.doc.r66335.tar.xz
+2023/03/04 | 1464 | systems/texlive/tlnet/archive/uvaletter.r66335.tar.xz
2021/09/07 | 127872 | systems/texlive/tlnet/archive/uwa-colours.doc.r60443.tar.xz
2021/09/07 | 1228 | systems/texlive/tlnet/archive/uwa-colours.r60443.tar.xz
2021/09/07 | 3016 | systems/texlive/tlnet/archive/uwa-colours.source.r60443.tar.xz
@@ -300913,9 +300940,9 @@
2022/04/24 | 693304 | systems/texlive/tlnet/archive/xduthesis.doc.r63116.tar.xz
2022/04/24 | 113392 | systems/texlive/tlnet/archive/xduthesis.r63116.tar.xz
2022/04/24 | 15976 | systems/texlive/tlnet/archive/xduthesis.source.r63116.tar.xz
-2023/03/03 | 328692 | systems/texlive/tlnet/archive/xduts.doc.r66303.tar.xz
-2023/03/03 | 524180 | systems/texlive/tlnet/archive/xduts.r66303.tar.xz
-2023/03/03 | 45112 | systems/texlive/tlnet/archive/xduts.source.r66303.tar.xz
+2023/03/04 | 328668 | systems/texlive/tlnet/archive/xduts.doc.r66334.tar.xz
+2023/03/04 | 524204 | systems/texlive/tlnet/archive/xduts.r66334.tar.xz
+2023/03/04 | 45164 | systems/texlive/tlnet/archive/xduts.source.r66334.tar.xz
2022/03/01 | 527308 | systems/texlive/tlnet/archive/xdvi.aarch64-linux.r62280.tar.xz
2022/02/27 | 566196 | systems/texlive/tlnet/archive/xdvi.amd64-freebsd.r62206.tar.xz
2022/02/27 | 488448 | systems/texlive/tlnet/archive/xdvi.amd64-netbsd.r62220.tar.xz
@@ -301337,16 +301364,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2022/07/17 | 124404 | systems/texlive/tlnet/install-tl
-2023/03/03 | 5828743 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/03/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/03/03 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/03/04 | 5829086 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/03/04 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/03/04 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2023/03/03 | 20434937 | systems/texlive/tlnet/install-tl-windows.exe
-2023/03/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/03/03 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/03/03 | 25513826 | systems/texlive/tlnet/install-tl.zip
-2023/03/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/03/03 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/03/04 | 20434974 | systems/texlive/tlnet/install-tl-windows.exe
+2023/03/04 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/03/04 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/03/04 | 25513826 | systems/texlive/tlnet/install-tl.zip
+2023/03/04 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/03/04 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2022/04/03 | 1229 | systems/texlive/tlnet/README.md
2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022
2023/01/17 | 8401 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -301399,12 +301426,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2023/03/03 | 18069567 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/03/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/03/04 | 18070842 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/03/04 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/03/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/03/03 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/03/03 | 2450548 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/03/04 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/03/04 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/03/04 | 2451152 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/09/14 | 58922 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2022/10/04 | 42404 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -304112,7 +304139,7 @@
2023/02/18 | 94454 | systems/texlive/tlnet/tlpkg/translations/fr.po
2023/02/18 | 88047 | systems/texlive/tlnet/tlpkg/translations/it.po
2023/02/18 | 62994 | systems/texlive/tlnet/tlpkg/translations/ja.po
-2023/03/03 | 47403 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2023/03/04 | 47403 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2023/02/18 | 58359 | systems/texlive/tlnet/tlpkg/translations/nl.po
2023/02/18 | 67459 | systems/texlive/tlnet/tlpkg/translations/pl.po
2023/02/18 | 82899 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
@@ -311727,7 +311754,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2023/03/04 | 186 | timestamp
+2023/03/05 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 4a4c045f09..f50bb80ca8 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index f82ef9123b..c7b2c1b99c 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,3 +1,199 @@
+2023/03/04 | 99 | indexing/upmendex/source/tests/rule3.ist
+2023/03/04 | 98 | indexing/upmendex/source/version.h
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecB-4.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecB-3.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecB-0.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecA-2.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecA-1.ind
+2023/03/04 | 96 | indexing/upmendex/source/tests/pprecA-0.ind
+2023/03/04 | 9484 | indexing/upmendex/source/convert.c
+2023/03/04 | 942 | indexing/upmendex/source/tests/romalpC-5.ind
+2023/03/04 | 93 | indexing/upmendex/source/tests/rule2.ist
+2023/03/04 | 93 | indexing/upmendex/source/tests/range3.ist
+2023/03/04 | 93 | indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist
+2023/03/04 | 92 | indexing/upmendex/source/tests/range2.ist
+2023/03/04 | 90 | indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist
+2023/03/04 | 872 | indexing/upmendex/doc/samples/option/japanese.idx
+2023/03/04 | 85 | indexing/upmendex/source/tests/romalpA-6.ind
+2023/03/04 | 85 | indexing/upmendex/source/tests/romalpA-5.ind
+2023/03/04 | 841 | indexing/upmendex/doc/samples/mdxsty02.ist
+2023/03/04 | 807494 | indexing/upmendex/doc/upmendex-slide-ctan.pdf
+2023/03/04 | 7892 | indexing/upmendex/source/main.c
+2023/03/04 | 786 | indexing/upmendex/source/tests/romalpB-7.ind
+2023/03/04 | 786 | indexing/upmendex/source/tests/romalpB-6.ind
+2023/03/04 | 786 | indexing/upmendex/source/tests/romalpB-5.ind
+2023/03/04 | 766 | indexing/upmendex/source/tests/uni.ind
+2023/03/04 | 75 | indexing/upmendex/source/tests/rule1.ist
+2023/03/04 | 74817 | macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
+2023/03/04 | 714558 | indexing/upmendex/source/configure
+2023/03/04 | 70 | indexing/upmendex/source/tests/range1.ist
+2023/03/04 | 68 | indexing/upmendex/source/tests/foo.idx
+2023/03/04 | 686 | indexing/upmendex/doc/samples/multi.idx
+2023/03/04 | 681 | indexing/upmendex/source/tests/romalpD.idx
+2023/03/04 | 64 | indexing/upmendex/source/tests/uni.dict
+2023/03/04 | 64 | indexing/upmendex/source/tests/attr1.ist
+2023/03/04 | 614 | indexing/upmendex/doc/samples/russian.idx
+2023/03/04 | 6129 | indexing/upmendex/doc/samples/latex/city0.tex
+2023/03/04 | 6046 | indexing/upmendex/source/kana.h
+2023/03/04 | 58 | indexing/upmendex/source/tests/foo.ind
+2023/03/04 | 5842 | indexing/upmendex/source/qsort.c
+2023/03/04 | 5829086 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/03/04 | 5699532 | systems/texlive/tlnet/archive/newcomputermodern.r66338.tar.xz
+2023/03/04 | 552 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist
+2023/03/04 | 544962 | macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
+2023/03/04 | 53538 | macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html
+2023/03/04 | 524204 | systems/texlive/tlnet/archive/xduts.r66334.tar.xz
+2023/03/04 | 4922 | indexing/upmendex/source/c-auto.in
+2023/03/04 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/03/04 | 47731 | indexing/upmendex/source/Makefile.in
+2023/03/04 | 4765 | indexing/upmendex/README.md
+2023/03/04 | 47403 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2023/03/04 | 463 | indexing/upmendex/doc/samples/german.idx
+2023/03/04 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/03/04 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/03/04 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/03/04 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/03/04 | 45164 | systems/texlive/tlnet/archive/xduts.source.r66334.tar.xz
+2023/03/04 | 4485 | indexing/upmendex/doc/samples/alphabet/alpha_zhr.idx
+2023/03/04 | 44397 | indexing/upmendex/source/aclocal.m4
+2023/03/04 | 43 | indexing/upmendex/doc/samples/alphabet/mdxsty_es.ist
+2023/03/04 | 435 | indexing/upmendex/source/tests/uni.idx
+2023/03/04 | 435 | indexing/upmendex/source/exhanzi.h
+2023/03/04 | 435 | indexing/upmendex/doc/samples/french.idx
+2023/03/04 | 428667 | macros/latex/contrib/babel-contrib/greek/test-greek.pdf
+2023/03/04 | 424868 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66319.tar.xz
+2023/03/04 | 4245 | indexing/upmendex/source/tests/upmendex.test
+2023/03/04 | 417 | indexing/upmendex/source/tests/rule.idx
+2023/03/04 | 413 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist
+2023/03/04 | 40 | indexing/upmendex/source/tests/pprec5.ist
+2023/03/04 | 40 | indexing/upmendex/doc/samples/option/rule0.ist
+2023/03/04 | 406 | indexing/upmendex/source/kp.h
+2023/03/04 | 4051001 | biblio/ctan-bibdata.zip
+2023/03/04 | 4039 | indexing/upmendex/doc/samples/alphabet/alpha_zh.idx
+2023/03/04 | 4011 | indexing/upmendex/doc/samples/latex/city1.tex
+2023/03/04 | 400 | indexing/upmendex/source/qsort.h
+2023/03/04 | 393 | indexing/upmendex/doc/samples/Makefile
+2023/03/04 | 38 | indexing/upmendex/source/tests/locale2.ist
+2023/03/04 | 385 | indexing/upmendex/doc/samples/latex/Makefile
+2023/03/04 | 36 | indexing/upmendex/source/tests/pprec7.ist
+2023/03/04 | 36 | indexing/upmendex/source/tests/pprec6.ist
+2023/03/04 | 367 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist
+2023/03/04 | 366 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist
+2023/03/04 | 3654349 | biblio/ctan-bibdata/ctan.pdf
+2023/03/04 | 3643 | macros/latex/contrib/babel-contrib/greek/Makefile
+2023/03/04 | 3611 | indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx
+2023/03/04 | 36033 | indexing/upmendex/source/fwrite.c
+2023/03/04 | 35274 | macros/latex/contrib/babel-contrib/greek/test-case-changing.tex
+2023/03/04 | 340 | indexing/upmendex/doc/samples/greek.idx
+2023/03/04 | 337 | indexing/upmendex/source/ac/withenable.ac
+2023/03/04 | 3358 | indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx
+2023/03/04 | 333 | indexing/upmendex/source/indexsty
+2023/03/04 | 328668 | systems/texlive/tlnet/archive/xduts.doc.r66334.tar.xz
+2023/03/04 | 3278 | indexing/upmendex/source/tests/range.idx
+2023/03/04 | 325 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist
+2023/03/04 | 325 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist
+2023/03/04 | 324932 | indexing/upmendex/man/upmendex.man1.pdf
+2023/03/04 | 320849 | macros/latex/contrib/sillypage.zip
+2023/03/04 | 30280 | systems/texlive/tlnet/archive/photobook.r66336.tar.xz
+2023/03/04 | 293 | indexing/upmendex/doc/samples/mdxsty01.ist
+2023/03/04 | 286 | indexing/upmendex/doc/samples/option/mdxsty_j02.ist
+2023/03/04 | 28270 | macros/latex/contrib/sillypage/sillywalk-map.pdf
+2023/03/04 | 2780 | macros/latex/contrib/sillypage/sillypage.ins
+2023/03/04 | 2767812 | biblio/ctan-bibdata/ctan.bib
+2023/03/04 | 2746 | indexing/upmendex/doc/samples/latex/mlg0.ist
+2023/03/04 | 2736668 | systems/texlive/tlnet/archive/simpleicons.r66337.tar.xz
+2023/03/04 | 272 | indexing/upmendex/source/tests/uni.ist
+2023/03/04 | 272 | indexing/upmendex/doc/samples/option/mdxsty_attr_default.ist
+2023/03/04 | 271 | indexing/upmendex/doc/samples/option/mdxsty_j01.ist
+2023/03/04 | 271 | indexing/upmendex/doc/samples/option/mdxsty_j00.ist
+2023/03/04 | 2678 | indexing/upmendex/source/mendex.h
+2023/03/04 | 261 | indexing/upmendex/doc/samples/alphabet/mdxsty_head2.ist
+2023/03/04 | 260 | indexing/upmendex/doc/samples/mdxsty00.ist
+2023/03/04 | 260 | indexing/upmendex/doc/samples/alphabet/mdxsty_head3.ist
+2023/03/04 | 260 | indexing/upmendex/doc/samples/alphabet/mdxsty_head1.ist
+2023/03/04 | 25513826 | systems/texlive/tlnet/install-tl.zip
+2023/03/04 | 25121 | macros/latex/contrib/babel-contrib/greek/test-greek.tex
+2023/03/04 | 2451152 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/03/04 | 2311 | indexing/upmendex/source/var.h
+2023/03/04 | 2310 | indexing/upmendex/source/configure.ac
+2023/03/04 | 22975 | indexing/upmendex/source/sort.c
+2023/03/04 | 220111 | macros/latex/contrib/sillypage/sillypage.pdf
+2023/03/04 | 2180 | indexing/upmendex/source/Makefile.am
+2023/03/04 | 2167 | indexing/upmendex/doc/samples/latex/mlg1.ist
+2023/03/04 | 213 | indexing/upmendex/source/tests/pprecA.idx
+2023/03/04 | 2122 | macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex
+2023/03/04 | 2104 | indexing/upmendex/source/tests/romalpC.idx
+2023/03/04 | 207 | indexing/upmendex/source/tests/pprecB.idx
+2023/03/04 | 20434974 | systems/texlive/tlnet/install-tl-windows.exe
+2023/03/04 | 2034 | indexing/upmendex/doc/samples/alphabet/alpha_es.idx
+2023/03/04 | 2006984 | systems/texlive/tlnet/archive/simpleicons.doc.r66337.tar.xz
+2023/03/04 | 19620 | indexing/upmendex/source/hanzi.h
+2023/03/04 | 19553 | indexing/upmendex/doc/upmendex.ja.txt
+2023/03/04 | 19507 | indexing/upmendex/man/upmendex.1
+2023/03/04 | 184955 | macros/latex/contrib/babel-contrib/greek/usage.pdf
+2023/03/04 | 1837 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist
+2023/03/04 | 1837 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist
+2023/03/04 | 1837 | indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist
+2023/03/04 | 182 | indexing/upmendex/source/tests/pprec0.ist
+2023/03/04 | 18070842 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec4.ist
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec3.ist
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec2.ist
+2023/03/04 | 179 | indexing/upmendex/source/tests/pprec1.ist
+2023/03/04 | 17944 | systems/texlive/tlnet/archive/tex4ebook.r66333.tar.xz
+2023/03/04 | 174634 | macros/latex/contrib/babel-contrib/greek/test-athnum.pdf
+2023/03/04 | 170 | indexing/upmendex/source/tests/romalpD-7.ind
+2023/03/04 | 170 | indexing/upmendex/source/tests/romalpD-6.ind
+2023/03/04 | 170 | indexing/upmendex/source/tests/romalpD-5.ind
+2023/03/04 | 16 | indexing/upmendex/source/tests/locale1.ist
+2023/03/04 | 1697828 | macros/latex/contrib/babel-contrib/greek.zip
+2023/03/04 | 1688 | systems/texlive/tlnet/archive/collection-publishers.r66335.tar.xz
+2023/03/04 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/03/04 | 16698 | macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst
+2023/03/04 | 164 | indexing/upmendex/source/tests/romalpA.idx
+2023/03/04 | 1628 | indexing/upmendex/source/tests/romalpB.idx
+2023/03/04 | 1607 | indexing/upmendex/doc/samples/latex/haranoaji-uptex.map
+2023/03/04 | 158 | indexing/upmendex/source/tests/uni1.ist
+2023/03/04 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/03/04 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/03/04 | 15081 | indexing/upmendex/source/fread.c
+2023/03/04 | 1477 | indexing/upmendex/doc/samples/korean.idx
+2023/03/04 | 1464 | systems/texlive/tlnet/archive/uvaletter.r66335.tar.xz
+2023/03/04 | 1464 | indexing/upmendex/COPYRIGHT
+2023/03/04 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/03/04 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/03/04 | 144884 | systems/texlive/tlnet/archive/photobook.doc.r66336.tar.xz
+2023/03/04 | 1435 | indexing/upmendex/source/exvar.h
+2023/03/04 | 14308796 | systems/texlive/tlnet/archive/newcomputermodern.doc.r66338.tar.xz
+2023/03/04 | 141 | macros/latex/contrib/sillypage/sillypage-example.tex
+2023/03/04 | 1417 | macros/latex/contrib/sillypage/README.md
+2023/03/04 | 139 | indexing/upmendex/source/tests/uni2.ist
+2023/03/04 | 1379 | indexing/upmendex/doc/samples/alphabet/Makefile
+2023/03/04 | 1376 | indexing/upmendex/source/exkana.h
+2023/03/04 | 13663 | indexing/upmendex/source/ChangeLog
+2023/03/04 | 1348 | indexing/upmendex/source/tests/locale1.ind
+2023/03/04 | 13105 | indexing/upmendex/source/styfile.c
+2023/03/04 | 1274 | indexing/upmendex/source/tests/locale2-rule.ind
+2023/03/04 | 1269440 | indexing/upmendex.zip
+2023/03/04 | 1240 | indexing/upmendex/doc/samples/option/attri1.idx
+2023/03/04 | 1231 | indexing/upmendex/doc/samples/mdxsty03.ist
+2023/03/04 | 122488 | systems/texlive/tlnet/archive/uvaletter.doc.r66335.tar.xz
+2023/03/04 | 1200 | indexing/upmendex/source/tests/rule.ind
+2023/03/04 | 1200 | indexing/upmendex/source/tests/attr1.ind
+2023/03/04 | 1200 | indexing/upmendex/doc/samples/alphabet/alpha_zhs.idx
+2023/03/04 | 1190 | indexing/upmendex/source/kp.c
+2023/03/04 | 117 | indexing/upmendex/source/tests/rule4.ist
+2023/03/04 | 1169 | indexing/upmendex/source/tests/range2.ind
+2023/03/04 | 1152 | macros/latex/contrib/babel-contrib/greek/README.md
+2023/03/04 | 113828 | systems/texlive/tlnet/archive/texlive-scripts.r66319.tar.xz
+2023/03/04 | 10848 | macros/latex/contrib/sillypage/sillypage.dtx
+2023/03/04 | 1077 | indexing/upmendex/source/tests/range3.ind
+2023/03/04 | 1077 | indexing/upmendex/source/tests/range1.ind
+2023/03/04 | 1054 | indexing/upmendex/source/pageread.c
+2023/03/04 | 104340 | macros/latex/contrib/sillypage/sillypage-example.pdf
+2023/03/04 | 1029 | indexing/upmendex/doc/samples/option/Makefile
+2023/03/04 | 101160 | systems/texlive/tlnet/archive/tex4ebook.doc.r66333.tar.xz
+2023/03/04 | 10067 | macros/latex/contrib/babel-contrib/greek/usage.tex
2023/03/03 | 881135 | macros/xetex/latex/xduts/xdulogo.pdf
2023/03/03 | 86356 | systems/texlive/tlnet/archive/qrbill.doc.r66304.tar.xz
2023/03/03 | 7397 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -6,31 +202,17 @@
2023/03/03 | 6832 | systems/texlive/tlnet/archive/greek-inputenc.r66309.tar.xz
2023/03/03 | 681048 | systems/texlive/tlnet/archive/greek-inputenc.doc.r66309.tar.xz
2023/03/03 | 665 | fonts/simpleicons/README.md
-2023/03/03 | 5828743 | systems/texlive/tlnet/install-tl-unx.tar.gz
2023/03/03 | 543616 | systems/texlive/tlnet/archive/kotex-oblivoir.doc.r66308.tar.xz
-2023/03/03 | 524180 | systems/texlive/tlnet/archive/xduts.r66303.tar.xz
2023/03/03 | 4988024 | fonts/simpleicons.zip
-2023/03/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2023/03/03 | 47403 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2023/03/03 | 4712 | systems/texlive/tlnet/archive/pangram.source.r66305.tar.xz
-2023/03/03 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/03/03 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/03/03 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/03/03 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2023/03/03 | 45112 | systems/texlive/tlnet/archive/xduts.source.r66303.tar.xz
2023/03/03 | 43808 | systems/texlive/tlnet/archive/kotex-oblivoir.r66308.tar.xz
-2023/03/03 | 424636 | systems/texlive/tlnet/archive/texlive-scripts.doc.r66293.tar.xz
-2023/03/03 | 4052068 | biblio/ctan-bibdata.zip
2023/03/03 | 38440 | systems/texlive/tlnet/archive/pxrubrica.source.r66307.tar.xz
2023/03/03 | 3720 | systems/texlive/tlnet/archive/mismath.r66306.tar.xz
2023/03/03 | 3668 | macros/xetex/latex/xduts/README.md
-2023/03/03 | 3656310 | biblio/ctan-bibdata/ctan.pdf
2023/03/03 | 33583 | fonts/newcomputermodern/doc/newcm-doc.tex
2023/03/03 | 331677 | macros/xetex/latex/xduts/xduts.pdf
-2023/03/03 | 328692 | systems/texlive/tlnet/archive/xduts.doc.r66303.tar.xz
2023/03/03 | 285143 | macros/xetex/latex/xduts/xduts.dtx
2023/03/03 | 2839 | fonts/simpleicons/enc/simpleiconsOne.enc
-2023/03/03 | 2767424 | biblio/ctan-bibdata/ctan.bib
2023/03/03 | 274 | fonts/simpleicons/tex/usimpleiconsOneZero.fd
2023/03/03 | 2738 | fonts/simpleicons/enc/simpleiconsFour.enc
2023/03/03 | 2719 | fonts/simpleicons/enc/simpleiconsEight.enc
@@ -43,37 +225,28 @@
2023/03/03 | 259 | fonts/simpleicons/tex/usimpleiconsFour.fd
2023/03/03 | 259 | fonts/simpleicons/tex/usimpleiconsFive.fd
2023/03/03 | 2591 | fonts/simpleicons/enc/simpleiconsSeven.enc
-2023/03/03 | 25513826 | systems/texlive/tlnet/install-tl.zip
2023/03/03 | 254 | fonts/simpleicons/tex/usimpleiconsTwo.fd
2023/03/03 | 254 | fonts/simpleicons/tex/usimpleiconsSix.fd
2023/03/03 | 254 | fonts/simpleicons/tex/usimpleiconsOne.fd
2023/03/03 | 2497 | fonts/simpleicons/enc/simpleiconsNine.enc
2023/03/03 | 2471 | fonts/simpleicons/enc/simpleiconsFive.enc
2023/03/03 | 2467 | fonts/simpleicons/enc/simpleiconsThree.enc
-2023/03/03 | 2450548 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/03/03 | 2413 | fonts/simpleicons/enc/simpleiconsOneZero.enc
2023/03/03 | 237044 | systems/texlive/tlnet/archive/mismath.doc.r66306.tar.xz
2023/03/03 | 23064 | systems/texlive/tlnet/archive/qrbill.r66304.tar.xz
2023/03/03 | 23000804 | fonts/newcomputermodern.zip
2023/03/03 | 218871 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex
2023/03/03 | 214703 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
-2023/03/03 | 20434937 | systems/texlive/tlnet/install-tl-windows.exe
2023/03/03 | 1997182 | fonts/simpleicons/doc/simpleicons.pdf
2023/03/03 | 19756 | systems/texlive/tlnet/archive/mismath.source.r66306.tar.xz
2023/03/03 | 1916 | systems/texlive/tlnet/archive/pangram.r66305.tar.xz
2023/03/03 | 1895444 | fonts/simpleicons/opentype/SimpleIcons.otf
2023/03/03 | 1844 | fonts/simpleicons/doc/simpleicons.tex
-2023/03/03 | 18069567 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2023/03/03 | 180368 | fonts/newcomputermodern/doc/newcm-doc.pdf
2023/03/03 | 179263 | macros/latex/contrib/photobook.zip
2023/03/03 | 1765835 | fonts/simpleicons/type1/SimpleIcons.pfb
-2023/03/03 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2023/03/03 | 1557 | fonts/simpleicons/tex/simpleicons.sty
2023/03/03 | 15424 | systems/texlive/tlnet/archive/qrbill.source.r66304.tar.xz
-2023/03/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/03/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/03/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/03/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2023/03/03 | 1448916 | systems/texlive/tlnet/archive/tex4ht.source.r66315.tar.xz
2023/03/03 | 13680 | systems/texlive/tlnet/archive/pxrubrica.r66307.tar.xz
2023/03/03 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r66315.tar.xz
@@ -90,7 +263,6 @@
2023/03/03 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsEight.tfm
2023/03/03 | 1228 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsOne.tfm
2023/03/03 | 1188 | macros/xetex/latex/xduts/xduts.ins
-2023/03/03 | 113828 | systems/texlive/tlnet/archive/texlive-scripts.r66293.tar.xz
2023/03/03 | 1119 | fonts/simpleicons/map/simpleicons.map
2023/03/03 | 1106388 | systems/texlive/tlnet/archive/tex4ht.r66315.tar.xz
2023/03/03 | 101268 | systems/texlive/tlnet/archive/pangram.doc.r66305.tar.xz
@@ -163,7 +335,6 @@
2023/03/02 | 32120 | systems/texlive/tlnet/archive/greek-fontenc.r66262.tar.xz
2023/03/02 | 3204 | macros/latex/contrib/pangram/pangram.ins
2023/03/02 | 318516 | fonts/newcomputermodern/otf/NewCMSans10-Regular.otf
-2023/03/02 | 30252 | systems/texlive/tlnet/archive/photobook.r66282.tar.xz
2023/03/02 | 30252 | fonts/newcomputermodern/otf/NewCMUncial10-Regular.otf
2023/03/02 | 297488 | fonts/newcomputermodern/otf/NewCMMono10-Bold.otf
2023/03/02 | 284504 | fonts/newcomputermodern/otf/NewCMSans10-Oblique.otf
@@ -206,7 +377,6 @@
2023/03/02 | 1527 | macros/latex/contrib/photobook/LICENSE
2023/03/02 | 14844 | support/tex4ebook/README
2023/03/02 | 14576 | systems/texlive/tlnet/archive/lyluatex.r66280.tar.xz
-2023/03/02 | 144888 | systems/texlive/tlnet/archive/photobook.doc.r66282.tar.xz
2023/03/02 | 141279 | fonts/newcomputermodern/doc/newcomputermodern-sample.pdf
2023/03/02 | 140491 | macros/latex/contrib/photobook/photobook.pdf
2023/03/02 | 13678 | macros/latex/contrib/pangram/pangram.dtx
@@ -461,7 +631,6 @@
2023/02/27 | 586502 | systems/doc/xetex.zip
2023/02/27 | 5832 | systems/texlive/tlnet/archive/tangramtikz.r66201.tar.xz
2023/02/27 | 576512 | systems/texlive/tlnet/archive/platex-tools.doc.r66200.tar.xz
-2023/02/27 | 5705864 | systems/texlive/tlnet/archive/newcomputermodern.r66202.tar.xz
2023/02/27 | 55631 | macros/latex/contrib/coolfn.zip
2023/02/27 | 5486 | systems/doc/metapost/source-manual/mpman-app-numbersystems.tex
2023/02/27 | 54690 | systems/doc/metapost/source-manual/mpman-app-refman.tex
@@ -508,7 +677,6 @@
2023/02/27 | 161096 | support/texdoc.zip
2023/02/27 | 1461644 | systems/texlive/tlnet/archive/fduthesis.doc.r66197.tar.xz
2023/02/27 | 1454263 | macros/latex/contrib/listings/listings-devel.pdf
-2023/02/27 | 14466136 | systems/texlive/tlnet/archive/newcomputermodern.doc.r66202.tar.xz
2023/02/27 | 140128 | systems/texlive/tlnet/archive/platex.source.r66199.tar.xz
2023/02/27 | 1382 | support/texdoc/script/texdoc.tlu
2023/02/27 | 1375 | macros/latex/contrib/unicode-alphabets/docs/unicode-alphabets.bib
@@ -624,7 +792,6 @@
2023/02/26 | 122040 | systems/texlive/tlnet/archive/nicematrix.source.r66154.tar.xz
2023/02/26 | 11920 | systems/texlive/tlnet/archive/ragged2e.source.r66153.tar.xz
2023/02/26 | 11568 | systems/texlive/tlnet/archive/footnoterange.source.r66156.tar.xz
-2023/02/26 | 1153503 | support/TeX4ht/source/tex4ht-4ht.tex
2023/02/26 | 11296361 | macros/latex/contrib/jeuxcartes.zip
2023/02/26 | 111762 | macros/latex/contrib/l3build/l3build.dtx
2023/02/26 | 111632 | macros/latex/contrib/hrefhide/hrefhide-example.pdf
@@ -636,719 +803,3 @@
2023/02/26 | 1032 | macros/latex/contrib/jeuxcartes/README.md
2023/02/26 | 10311 | systems/doc/aleph/ChangeLog
2023/02/26 | 1019 | macros/latex/contrib/l3build/README.md
-2023/02/25 | 9 | support/texlab/src/parser/test_data/latex/label/label_reference_simple.txt
-2023/02/25 | 9 | support/texlab/src/parser/test_data/latex/glossary/glossary_entry_reference_simple.txt
-2023/02/25 | 9 | support/texlab/src/parser/test_data/latex/citation/citation_missing_brace.txt
-2023/02/25 | 998 | support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_item.snap
-2023/02/25 | 995 | support/texlab/src/features/definition/string.rs
-2023/02/25 | 993 | support/texlab/src/parser/test_data/bibtex/samples/knuth_1984.txt
-2023/02/25 | 992 | support/texlab/src/features/definition/document.rs
-2023/02/25 | 988 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_rivest_1978.snap
-2023/02/25 | 979 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_simple.txt.snap
-2023/02/25 | 969 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__glossary_entry_definition_simple.txt.snap
-2023/02/25 | 967 | support/texlab/src/citation/snapshots/texlab__citation__tests__patent_almendro_1998.snap
-2023/02/25 | 961 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@004.txt.snap
-2023/02/25 | 960 | systems/texlive/tlnet/archive/biolett-bst.doc.r66119.tar.xz
-2023/02/25 | 9541 | support/texlab/src/util/cursor.rs
-2023/02/25 | 946 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_multiple_entries.snap
-2023/02/25 | 9465 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__knuth_1984.txt.snap
-2023/02/25 | 942 | biblio/pbibtex/pbibtex-manual/README.md
-2023/02/25 | 939 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@005.txt.snap
-2023/02/25 | 919 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_command.txt.snap
-2023/02/25 | 914 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__glossary_entry_reference_options.txt.snap
-2023/02/25 | 912 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_definition_optional_arg.txt.snap
-2023/02/25 | 90 | support/texlab/src/parser/test_data/latex/structure/structure_nested.txt
-2023/02/25 | 905 | support/texlab/src/citation.rs
-2023/02/25 | 898 | support/texlab/src/parser/test_data/bibtex/samples/kastenholz_2006.txt
-2023/02/25 | 89516 | systems/texlive/tlnet/archive/ctex.source.r66119.tar.xz
-2023/02/25 | 8854 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__kastenholz_2006.txt.snap
-2023/02/25 | 880 | systems/texlive/tlnet/archive/dvisvgm.r66119.tar.xz
-2023/02/25 | 877 | support/texlab/src/features/completion/user_command.rs
-2023/02/25 | 875 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__component_known_package.snap
-2023/02/25 | 872 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error1.txt.snap
-2023/02/25 | 869 | support/texlab/benches/bench_main.rs
-2023/02/25 | 861 | macros/jptex/latex/platex/pl209.ins
-2023/02/25 | 860 | support/texlab/src/parser/test_data/bibtex/samples/blom_2021.txt
-2023/02/25 | 8604 | systems/texlive/tlnet/archive/zhnumber.r66119.tar.xz
-2023/02/25 | 858 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__equation_missing_end.txt.snap
-2023/02/25 | 85804 | language/greek/greek-fontenc/textalpha-tu.pdf
-2023/02/25 | 856 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__biblatex_include_options.txt.snap
-2023/02/25 | 853 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_incomplete.txt.snap
-2023/02/25 | 852 | support/texlab/src/features/hover/component.rs
-2023/02/25 | 849 | support/texlab/src/features/completion/field.rs
-2023/02/25 | 844 | support/texlab/src/features/completion/acronym_ref.rs
-2023/02/25 | 841 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__folding_range__latex.snap
-2023/02/25 | 8386 | support/texlab/src/util/label.rs
-2023/02/25 | 8363 | macros/jptex/latex/platex/plnewsc14.tex
-2023/02/25 | 83256 | systems/texlive/tlnet/archive/belleek.r66119.tar.xz
-2023/02/25 | 82 | support/texlab/src/parser/test_data/bibtex/comment.txt
-2023/02/25 | 823 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@equation_missing_begin.txt.snap
-2023/02/25 | 820 | support/texlab/src/distro/texlive.rs
-2023/02/25 | 8171 | support/texlab/tests/lsp/text_document/document_symbol.rs
-2023/02/25 | 811 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_reference_options.txt.snap
-2023/02/25 | 80 | support/texlab/src/parser/test_data/latex/command_definition/command_definition_with_begin.txt
-2023/02/25 | 804 | language/japanese/BX/bxghost/bxghost.sty
-2023/02/25 | 800 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_betram_1996.snap
-2023/02/25 | 7 | support/texlab/src/parser/test_data/latex/citation/citation_empty.txt
-2023/02/25 | 797204 | systems/texlive/tlnet/archive/jsclasses.doc.r66100.tar.xz
-2023/02/25 | 7955 | support/texlab/src/syntax/bibtex.rs
-2023/02/25 | 79300 | macros/jptex/latex/platex-tools/plextarray.pdf
-2023/02/25 | 785 | support/texlab/src/features/hover/citation.rs
-2023/02/25 | 7818 | macros/jptex/latex/platex/plnewsc01.tex
-2023/02/25 | 776 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_figure.txt.snap
-2023/02/25 | 7763 | support/texlab/tests/lsp/fixture.rs
-2023/02/25 | 7762 | support/texlab/src/parser/test_data/build_log/007.txt
-2023/02/25 | 7700668 | support/texlab.zip
-2023/02/25 | 76 | support/texlab/src/parser/test_data/latex/glossary/acronym_definition_options.txt
-2023/02/25 | 768 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_full.txt.snap
-2023/02/25 | 767 | macros/latex/contrib/spacingtricks/README.md
-2023/02/25 | 766 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__ignored_patterns.snap
-2023/02/25 | 7666 | macros/jptex/latex/platex/pl209.dtx
-2023/02/25 | 766607 | macros/latex/contrib/nicematrix/nicematrix.dtx
-2023/02/25 | 765 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_complicated_options.txt.snap
-2023/02/25 | 765 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_optional.txt.snap
-2023/02/25 | 76376 | systems/texlive/tlnet/archive/bxbase.doc.r66119.tar.xz
-2023/02/25 | 7612 | systems/texlive/tlnet/archive/physics2.r66119.tar.xz
-2023/02/25 | 757 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_package.txt.snap
-2023/02/25 | 755 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_definition_simple.txt.snap
-2023/02/25 | 7517 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__aksin_2006.txt.snap
-2023/02/25 | 7514 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__jain_1999.txt.snap
-2023/02/25 | 746 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_simple.txt.snap
-2023/02/25 | 742 | support/texlab/src/features/inlay_hint/label.rs
-2023/02/25 | 7420 | systems/texlive/tlnet/archive/alpha-persian.r66119.tar.xz
-2023/02/25 | 7419 | support/texlab/src/features/formatting/bibtex_internal.rs
-2023/02/25 | 73233 | macros/jptex/latex/platex-tools/pxatbegshi.pdf
-2023/02/25 | 730 | support/texlab/src/features/completion/tikz_library.rs
-2023/02/25 | 7308 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__almendro_1998.txt.snap
-2023/02/25 | 729 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_definition_simple.txt.snap
-2023/02/25 | 72264 | macros/jptex/latex/platex/platex.dtx
-2023/02/25 | 7216 | systems/texlive/tlnet/archive/jpsj.r66119.tar.xz
-2023/02/25 | 720 | systems/texlive/tlnet/archive/belleek.doc.r66119.tar.xz
-2023/02/25 | 720 | support/texlab/src/citation/snapshots/texlab__citation__tests__collection_matuz_1990.snap
-2023/02/25 | 71 | support/texlab/src/tests.rs
-2023/02/25 | 719 | support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_math.snap
-2023/02/25 | 7143 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__combi_2004.txt.snap
-2023/02/25 | 7136 | systems/texlive/tlnet/archive/wrapfig2.r66119.tar.xz
-2023/02/25 | 712 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_options.txt.snap
-2023/02/25 | 711 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__project_resolution_texlabroot.snap
-2023/02/25 | 711 | support/texlab/src/features/completion/entry_type.rs
-2023/02/25 | 710 | support/texlab/src/distro/kpsewhich.rs
-2023/02/25 | 7089 | support/texlab/src/db/discovery.rs
-2023/02/25 | 706 | support/texlab/src/parser/test_data/bibtex/samples/almendro_1998.txt
-2023/02/25 | 7042 | macros/jptex/latex/platex/jltxdoc.dtx
-2023/02/25 | 702 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@001.txt.snap
-2023/02/25 | 700154 | macros/latex/contrib/ragged2e/ragged2e.pdf
-2023/02/25 | 6 | support/texlab/src/parser/test_data/latex/group/escaped_brackets.txt
-2023/02/25 | 699 | support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_bibtex.snap
-2023/02/25 | 699 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__project_resolution_import.snap
-2023/02/25 | 698926 | macros/latex/contrib/ragged2e.zip
-2023/02/25 | 697 | macros/jptex/latex/platex/platexrelease.ins
-2023/02/25 | 6970534 | support/texlab/data/components.json.gz
-2023/02/25 | 696078 | language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.pdf
-2023/02/25 | 693 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__inkscape_include_options.txt.snap
-2023/02/25 | 693 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@issue_809.txt.snap
-2023/02/25 | 693592 | systems/texlive/tlnet/archive/wrapfig2.doc.r66119.tar.xz
-2023/02/25 | 6933 | support/texlab/src/citation/field/text.rs
-2023/02/25 | 692 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_siblings.txt.snap
-2023/02/25 | 692 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__svg_include_options.txt.snap
-2023/02/25 | 692 | support/texlab/src/features/completion/component_command.rs
-2023/02/25 | 689 | support/texlab/src/syntax/latex.rs
-2023/02/25 | 6822 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__erwin_2007.txt.snap
-2023/02/25 | 679 | support/texlab/src/parser/test_data/bibtex/samples/aksin_2006.txt
-2023/02/25 | 6752 | systems/texlive/tlnet/archive/pixelart.r66119.tar.xz
-2023/02/25 | 674 | support/texlab/src/parser/test_data/bibtex/samples/jain_1999.txt
-2023/02/25 | 674 | support/texlab/src/parser/test_data/bibtex/samples/combi_2004.txt
-2023/02/25 | 674 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_simple.txt.snap
-2023/02/25 | 67444 | systems/texlive/tlnet/archive/japanese-otf.source.r66102.tar.xz
-2023/02/25 | 672 | support/texlab/src/features/hover/label.rs
-2023/02/25 | 6717 | macros/jptex/latex/platex/plnewsc06.tex
-2023/02/25 | 668 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@block_comments.txt.snap
-2023/02/25 | 666 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_description_and_counter.txt.snap
-2023/02/25 | 6630 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__blom_2021.txt.snap
-2023/02/25 | 6621 | support/texlab/src/db/workspace.rs
-2023/02/25 | 661 | support/texlab/src/features/completion/user_environment.rs
-2023/02/25 | 66140 | systems/texlive/tlnet/archive/jlreq-deluxe.doc.r66119.tar.xz
-2023/02/25 | 659 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__entry_type_known_type.snap
-2023/02/25 | 659 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@003.txt.snap
-2023/02/25 | 6520 | systems/texlive/tlnet/archive/tkz-tab.r66119.tar.xz
-2023/02/25 | 651 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@inline_double_dollar.txt.snap
-2023/02/25 | 650 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__folding_range__bibtex.snap
-2023/02/25 | 64 | support/texlab/src/parser/test_data/latex/glossary/acronym_declaration.txt
-2023/02/25 | 64927 | macros/jptex/latex/platex-tools/plextdelarray.pdf
-2023/02/25 | 6484 | support/texlab/src/util/line_index.rs
-2023/02/25 | 646 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_default_error.txt.snap
-2023/02/25 | 6458 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__rivest_1978.txt.snap
-2023/02/25 | 641 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_default.txt.snap
-2023/02/25 | 639 | support/texlab/src/features/link/include.rs
-2023/02/25 | 635 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_asymptote.txt.snap
-2023/02/25 | 635 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error2.txt.snap
-2023/02/25 | 634952 | systems/texlive/tlnet/archive/pmx.doc.r66119.tar.xz
-2023/02/25 | 6344 | systems/texlive/tlnet/archive/scsnowman.r66119.tar.xz
-2023/02/25 | 633 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@inline.txt.snap
-2023/02/25 | 627 | support/texlab/src/server/query.rs
-2023/02/25 | 618 | support/texlab/texlab.1
-2023/02/25 | 6172 | macros/jptex/latex/platex-tools/pxeverysel.sty
-2023/02/25 | 615 | support/texlab/src/parser/test_data/bibtex/samples/erwin_2007.txt
-2023/02/25 | 613 | support/texlab/src/features/hover/field.rs
-2023/02/25 | 61183 | macros/jptex/latex/platex-tools/pxeverysel.pdf
-2023/02/25 | 60 | support/texlab/src/parser/test_data/latex/structure/structure_enum_item.txt
-2023/02/25 | 60 | support/texlab/src/citation/field.rs
-2023/02/25 | 607 | macros/jptex/latex/platex-tools/pxmulticol.sty
-2023/02/25 | 6069 | macros/jptex/latex/platex/plnews06.tex
-2023/02/25 | 6018 | support/texlab/src/util/capabilities.rs
-2023/02/25 | 599516 | systems/texlive/tlnet/archive/l3kernel.source.r66099.tar.xz
-2023/02/25 | 596 | systems/texlive/tlnet/archive/belleek.source.r66119.tar.xz
-2023/02/25 | 595 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_prenote_postnote.txt.snap
-2023/02/25 | 594 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_bibtex.snap
-2023/02/25 | 5922 | macros/jptex/latex/platex-tools/plextarray.tex
-2023/02/25 | 585 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_aho_2006.snap
-2023/02/25 | 5856 | support/texlab/src/db/diagnostics.rs
-2023/02/25 | 5850 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__betram_1996.txt.snap
-2023/02/25 | 583 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_simple_package.snap
-2023/02/25 | 583 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation.snap
-2023/02/25 | 58396 | macros/jptex/latex/platex-tools/plarray.pdf
-2023/02/25 | 580 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path_command.txt.snap
-2023/02/25 | 5805 | support/texlab/src/db/analysis.rs
-2023/02/25 | 578 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_number.txt.snap
-2023/02/25 | 576 | support/texlab/src/features/completion/theorem.rs
-2023/02/25 | 57018 | support/texlab/data/lang_data.json
-2023/02/25 | 56992 | systems/texlive/tlnet/archive/jsclasses.source.r66100.tar.xz
-2023/02/25 | 5692 | support/texlab/src/parser/build_log.rs
-2023/02/25 | 565 | macros/jptex/latex/platex/pldocs.ins
-2023/02/25 | 5644 | systems/texlive/tlnet/archive/biolett-bst.r66119.tar.xz
-2023/02/25 | 557 | support/texlab/src/parser/test_data/bibtex/samples/rivest_1978.txt
-2023/02/25 | 556 | support/texlab/src/parser/test_data/bibtex/samples/betram_1996.txt
-2023/02/25 | 556 | support/texlab/src/features/hover/entry_type.rs
-2023/02/25 | 5565 | support/texlab/src/features/forward_search.rs
-2023/02/25 | 55388 | systems/texlive/tlnet/archive/make4ht.r66131.tar.xz
-2023/02/25 | 5534 | support/texlab/src/features/build.rs
-2023/02/25 | 551 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_invalid_nesting.txt.snap
-2023/02/25 | 550 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__begin_environment_without_snippet_support.snap
-2023/02/25 | 5492 | macros/jptex/latex/platex/Makefile
-2023/02/25 | 5482 | support/texlab/src/features/symbol/project_order.rs
-2023/02/25 | 547 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_counter.txt.snap
-2023/02/25 | 544 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_simple_end.snap
-2023/02/25 | 54423 | macros/jptex/latex/platex/plext.dtx
-2023/02/25 | 533 | support/texlab/src/features/completion/component_environment.rs
-2023/02/25 | 533310 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
-2023/02/25 | 52 | support/texlab/src/parser/test_data/latex/include/graphics_include_command.txt
-2023/02/25 | 52 | support/texlab/src/parser/test_data/latex/environment/environment_nested_missing_braces.txt
-2023/02/25 | 52975 | macros/jptex/latex/platex-tools/pxeveryshi.pdf
-2023/02/25 | 528 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error3.txt.snap
-2023/02/25 | 5270 | support/texlab/src/db/document.rs
-2023/02/25 | 52592 | macros/jptex/latex/platex-tools/pxftnright.pdf
-2023/02/25 | 523 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_description.txt.snap
-2023/02/25 | 520 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap
-2023/02/25 | 519 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_minimal_error.txt.snap
-2023/02/25 | 517 | support/texlab/src/parser/test_data/bibtex/samples/matuz_1990.txt
-2023/02/25 | 5163 | macros/jptex/latex/platex/plnewsc04.tex
-2023/02/25 | 514 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_minimal.txt.snap
-2023/02/25 | 50 | support/texlab/src/parser/test_data/latex/environment/environment_asymptote.txt
-2023/02/25 | 50 | support/texlab/src/parser/test_data/bibtex/issue_809.txt
-2023/02/25 | 509 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_no_argc.txt.snap
-2023/02/25 | 508 | systems/texlive/tlnet/archive/tkz-doc.r66119.tar.xz
-2023/02/25 | 507 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_range_simple.txt.snap
-2023/02/25 | 5079 | macros/jptex/latex/platex-tools/plextdelarray.tex
-2023/02/25 | 505 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_range_error.txt.snap
-2023/02/25 | 5046 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__matuz_1990.txt.snap
-2023/02/25 | 50382 | macros/latex/contrib/ragged2e/ragged2e.dtx
-2023/02/25 | 50341 | support/texlab/Cargo.lock
-2023/02/25 | 502 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__math_operator_simple.txt.snap
-2023/02/25 | 5029 | macros/latex/contrib/footnoterange/README
-2023/02/25 | 501188 | systems/texlive/tlnet/archive/scsnowman.doc.r66119.tar.xz
-2023/02/25 | 500 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path_options.txt.snap
-2023/02/25 | 4 | support/texlab/src/parser/test_data/latex/group/unmatched_brackets_with_group.txt
-2023/02/25 | 4 | support/texlab/src/parser/test_data/latex/generic_command_empty.txt
-2023/02/25 | 499 | support/texlab/src/features/completion/color.rs
-2023/02/25 | 494 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_simple.snap
-2023/02/25 | 48 | support/texlab/src/parser/test_data/latex/block_comments.txt
-2023/02/25 | 486 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_two_fields_name_closed.snap
-2023/02/25 | 485 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_two_fields_name_open.snap
-2023/02/25 | 485 | support/texlab/src/syntax.rs
-2023/02/25 | 47 | support/texlab/tests/lsp/main.rs
-2023/02/25 | 47 | support/texlab/src/parser/test_data/latex/label/label_reference_incomplete.txt
-2023/02/25 | 47 | support/texlab/src/parser/test_data/latex/environment/environment_definition.txt
-2023/02/25 | 477 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_multiple.txt.snap
-2023/02/25 | 477803 | install/macros/latex/contrib/footnoterange.tds.zip
-2023/02/25 | 473 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_definition_line_break.txt.snap
-2023/02/25 | 471881 | macros/latex/contrib/footnoterange.zip
-2023/02/25 | 469 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__latex_input_path_brackets.txt.snap
-2023/02/25 | 4685 | macros/jptex/latex/platex/plnews02.tex
-2023/02/25 | 464 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_class_open_brace.snap
-2023/02/25 | 4606 | macros/jptex/latex/platex/plnewsc15.tex
-2023/02/25 | 459 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_class_closed_brace.snap
-2023/02/25 | 459 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_prenote.txt.snap
-2023/02/25 | 4574 | language/greek/greek-fontenc/lgr2licr.lua
-2023/02/25 | 455 | support/texlab/src/util/regex_filter.rs
-2023/02/25 | 455 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__import_simple.txt.snap
-2023/02/25 | 454 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@generic_command_args.txt.snap
-2023/02/25 | 452 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__tikz_library_closed_brace.snap
-2023/02/25 | 451 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__tikz_library_open_brace.snap
-2023/02/25 | 4513 | support/texlab/src/syntax/latex/kind.rs
-2023/02/25 | 450 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_multiple.txt.snap
-2023/02/25 | 44 | support/texlab/src/parser/test_data/latex/include/class_include_options.txt
-2023/02/25 | 44 | support/texlab/src/parser/test_data/latex/glossary/acronym_definition_simple.txt
-2023/02/25 | 44 | support/texlab/src/parser/test_data/latex/environment/environment_definition_optional_arg.txt
-2023/02/25 | 44 | support/texlab/src/parser/test_data/latex/color/color_set_definition_simple.txt
-2023/02/25 | 449 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_package_closed_brace.snap
-2023/02/25 | 448 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_package_open_brace.snap
-2023/02/25 | 4484932 | systems/texlive/tlnet/archive/alpha-persian.doc.r66119.tar.xz
-2023/02/25 | 4445 | support/texlab/src/features/symbol/types.rs
-2023/02/25 | 441 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_field_name.snap
-2023/02/25 | 44150 | macros/jptex/latex/platex-tools/pxmulticol.pdf
-2023/02/25 | 440 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_multiple_keys.txt.snap
-2023/02/25 | 43 | support/texlab/src/parser/test_data/latex/environment/environment_nested.txt
-2023/02/25 | 43943 | macros/latex/contrib/footnoterange/footnoterange.dtx
-2023/02/25 | 434 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@002.txt.snap
-2023/02/25 | 42 | support/texlab/src/parser/test_data/latex/include/biblatex_include_options.txt
-2023/02/25 | 4276 | support/texlab/src/features/completion/include.rs
-2023/02/25 | 4229 | macros/jptex/latex/platex-tools/pxftnright.sty
-2023/02/25 | 421 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_empty_entry_closed.snap
-2023/02/25 | 421 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__latex_include_equality_sign.txt.snap
-2023/02/25 | 420 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_empty_entry_open.snap
-2023/02/25 | 41 | support/texlab/src/parser/test_data/latex/include/package_include_options.txt
-2023/02/25 | 4169 | support/texlab/tests/lsp/text_document/references.rs
-2023/02/25 | 4153 | macros/jptex/latex/platex/plnewsc08.tex
-2023/02/25 | 414 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_word.snap
-2023/02/25 | 4130 | support/texlab/src/parser/test_data/build_log/006.txt
-2023/02/25 | 4128 | language/japanese/BX/bxghost.zip
-2023/02/25 | 411 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_no_impl_error.txt.snap
-2023/02/25 | 409 | support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_figure.snap
-2023/02/25 | 4099 | macros/jptex/latex/platex/plexpl3.dtx
-2023/02/25 | 408 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_simple.snap
-2023/02/25 | 408 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_only_name.txt.snap
-2023/02/25 | 4088 | macros/jptex/latex/platex-tools/pxatbegshi.sty
-2023/02/25 | 407 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_open_brace.snap
-2023/02/25 | 406 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__label_theorem_child_file_mumber.snap
-2023/02/25 | 406 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_no_impl.txt.snap
-2023/02/25 | 405 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_simple.snap
-2023/02/25 | 404 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_open_brace.snap
-2023/02/25 | 404 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_set_simple.snap
-2023/02/25 | 404 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_open_brace.snap
-2023/02/25 | 404 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_range_incomplete.txt.snap
-2023/02/25 | 403 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_set_open_brace.snap
-2023/02/25 | 403 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path.txt.snap
-2023/02/25 | 40184 | systems/texlive/tlnet/archive/tkz-doc.doc.r66119.tar.xz
-2023/02/25 | 4015 | biblio/bibtex/bibtex-x/bibtexu.1
-2023/02/25 | 400 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__math_operator_no_impl.txt.snap
-2023/02/25 | 4008 | support/texlab/src/util/lsp_enums.rs
-2023/02/25 | 4006 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@issue_745.txt.snap
-2023/02/25 | 39 | support/texlab/src/parser/test_data/latex/include/graphics_include_options.txt
-2023/02/25 | 39 | support/texlab/src/parser/test_data/latex/include/graphics_include_complicated_options.txt
-2023/02/25 | 39 | support/texlab/src/parser/test_data/latex/glossary/glossary_entry_definition_simple.txt
-2023/02/25 | 39 | support/texlab/src/parser/test_data/latex/color/color_set_definition_error1.txt
-2023/02/25 | 39 | support/texlab/src/parser/test_data/latex/caption/caption_figure.txt
-2023/02/25 | 399 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_empty.snap
-2023/02/25 | 399 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@007.txt.snap
-2023/02/25 | 3984 | macros/jptex/latex/platex-tools/pxatbegshi.tex
-2023/02/25 | 394 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__escaped_brackets.txt.snap
-2023/02/25 | 3943 | support/texlab/tests/lsp/text_document/hover.rs
-2023/02/25 | 391 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_redundant_comma.txt.snap
-2023/02/25 | 3877 | macros/jptex/latex/platex/plnews08.tex
-2023/02/25 | 386912 | systems/texlive/tlnet/archive/pixelart.doc.r66119.tar.xz
-2023/02/25 | 3859 | language/japanese/BX/bxghost/bxghost-lib.sty
-2023/02/25 | 384 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_at_empty.snap
-2023/02/25 | 382 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__tikz_library_import_simple.txt.snap
-2023/02/25 | 382 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_simple.txt.snap
-2023/02/25 | 3824 | support/texlab/README.md
-2023/02/25 | 381 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__biblatex_include_simple.txt.snap
-2023/02/25 | 3811 | support/texlab/src/options.rs
-2023/02/25 | 380 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__verbatim_include_simple.txt.snap
-2023/02/25 | 380 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__pgf_library_import_simple.txt.snap
-2023/02/25 | 380190 | support/texlab/images/demo.gif
-2023/02/25 | 3796 | macros/jptex/latex/platex/plnewsc05.tex
-2023/02/25 | 377 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@equation.txt.snap
-2023/02/25 | 3778 | macros/jptex/latex/platex/plnews07.tex
-2023/02/25 | 37780 | systems/texlive/tlnet/archive/japanese-otf.doc.r66102.tar.xz
-2023/02/25 | 3754 | macros/jptex/latex/platex/plnewsc16.tex
-2023/02/25 | 37434 | support/texlab/src/parser/latex.rs
-2023/02/25 | 373140 | systems/texlive/tlnet/archive/tkz-base.doc.r66119.tar.xz
-2023/02/25 | 37311 | macros/jptex/latex/platex-tools/pxxspace.pdf
-2023/02/25 | 3714 | macros/jptex/latex/platex-tools/plextarray.sty
-2023/02/25 | 3713 | macros/jptex/latex/platex/plnewsc02.tex
-2023/02/25 | 370 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_simple.txt.snap
-2023/02/25 | 369 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__bibtex_include_simple.txt.snap
-2023/02/25 | 36974 | language/korean/pmhanguljamo/doc/pmhanguljamo-doc.tex
-2023/02/25 | 3694 | support/texlab/src/db/diagnostics/tex.rs
-2023/02/25 | 368 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__glossary_entry_reference_simple.txt.snap
-2023/02/25 | 368 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_reference_simple.txt.snap
-2023/02/25 | 367 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__class_include_simple.txt.snap
-2023/02/25 | 36655 | support/texlab/src/server.rs
-2023/02/25 | 3653 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__aho_2006.txt.snap
-2023/02/25 | 3643 | macros/jptex/latex/platex-tools/pxxspace.sty
-2023/02/25 | 364180 | systems/texlive/tlnet/archive/tkz-tab.doc.r66119.tar.xz
-2023/02/25 | 363 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__inkscape_include_simple.txt.snap
-2023/02/25 | 362 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__svg_include_simple.txt.snap
-2023/02/25 | 360712 | systems/texlive/tlnet/archive/asymptote.r66119.tar.xz
-2023/02/25 | 35 | support/texlab/src/parser/test_data/latex/structure/structure_siblings.txt
-2023/02/25 | 35 | support/texlab/src/parser/test_data/latex/glossary/acronym_package.txt
-2023/02/25 | 359 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@preamble.txt.snap
-2023/02/25 | 3590 | support/texlab/src/util/components.rs
-2023/02/25 | 355 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_equation.txt.snap
-2023/02/25 | 355 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__latex_include_simple.txt.snap
-2023/02/25 | 35463 | macros/jptex/latex/platex-tools/pldocverb.pdf
-2023/02/25 | 353772 | systems/texlive/tlnet/archive/musicography.doc.r66119.tar.xz
-2023/02/25 | 351 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_link__document_import.snap
-2023/02/25 | 351 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__user_environment.snap
-2023/02/25 | 351 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_definition_simple.txt.snap
-2023/02/25 | 351 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__import_incomplete.txt.snap
-2023/02/25 | 35149 | support/texlab/LICENSE
-2023/02/25 | 350 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_reference_simple.txt.snap
-2023/02/25 | 35074 | macros/jptex/latex/platex-tools/plextcolortbl.pdf
-2023/02/25 | 34 | support/texlab/src/parser/test_data/latex/include/svg_include_options.txt
-2023/02/25 | 3484 | macros/jptex/latex/platex/plnewsc11.tex
-2023/02/25 | 3443 | support/texlab/src/util/chktex.rs
-2023/02/25 | 343 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_simple.txt.snap
-2023/02/25 | 343 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error4.txt.snap
-2023/02/25 | 340 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__unmatched_brackets_with_group.txt.snap
-2023/02/25 | 33 | support/texlab/src/parser/test_data/latex/graphics_path_options.txt
-2023/02/25 | 33 | support/texlab/src/parser/test_data/latex/environment/environment_simple.txt
-2023/02/25 | 33 | support/texlab/src/parser/test_data/latex/color/color_definition_simple.txt
-2023/02/25 | 338 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_link__document_include.snap
-2023/02/25 | 3387 | support/texlab/tests/lsp/text_document/definition.rs
-2023/02/25 | 3358 | support/texlab/src/features/symbol.rs
-2023/02/25 | 335731 | macros/latex/contrib/footnoterange/footnoterange.pdf
-2023/02/25 | 332 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__label_theorem_child_file.snap
-2023/02/25 | 332 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_missing_brace.txt.snap
-2023/02/25 | 3321 | macros/jptex/latex/platex/plnewsc03.tex
-2023/02/25 | 331 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_simple.txt.snap
-2023/02/25 | 32 | support/texlab/src/parser/test_data/latex/graphics_path_command.txt
-2023/02/25 | 32 | support/texlab/src/parser/test_data/latex/glossary/acronym_reference_options.txt
-2023/02/25 | 329 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_star.txt.snap
-2023/02/25 | 3231 | support/texlab/src/citation/entry.rs
-2023/02/25 | 322 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__curly_group_missing_end.txt.snap
-2023/02/25 | 3223 | support/texlab/src/db/diagnostics/bib.rs
-2023/02/25 | 3204 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__enumerate_nested.snap
-2023/02/25 | 31 | support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_full.txt
-2023/02/25 | 31 | support/texlab/src/parser/test_data/latex/command_definition/math_operator_simple.txt
-2023/02/25 | 319 | support/texlab/src/util.rs
-2023/02/25 | 31980 | systems/texlive/tlnet/archive/epspdf.r66119.tar.xz
-2023/02/25 | 3197 | support/texlab/src/db/analysis/label.rs
-2023/02/25 | 3197 | macros/jptex/latex/platex/plnewsc13.tex
-2023/02/25 | 3194 | support/texlab/src/parser/test_data/build_log/001.txt
-2023/02/25 | 3194 | macros/jptex/latex/platex/plnews.cls
-2023/02/25 | 3194 | language/greek/greek-fontenc/test-utf8-input.tex
-2023/02/25 | 318 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_empty.txt.snap
-2023/02/25 | 318 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__curly_group_simple.txt.snap
-2023/02/25 | 3187 | language/korean/pmhanguljamo/tex/frkjamofull.data.tex
-2023/02/25 | 315 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__class_include_empty.txt.snap
-2023/02/25 | 314 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__citation_inside_entry.snap
-2023/02/25 | 314 | support/texlab/src/parser/test_data/bibtex/samples/aho_2006.txt
-2023/02/25 | 3146 | support/texlab/src/client.rs
-2023/02/25 | 313 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_acronym.snap
-2023/02/25 | 3116 | systems/texlive/tlnet/archive/musicography.r66119.tar.xz
-2023/02/25 | 30 | support/texlab/src/parser/test_data/latex/include/inkscape_include_options.txt
-2023/02/25 | 30 | support/texlab/src/parser/test_data/latex/color/color_set_definition_error2.txt
-2023/02/25 | 308 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__citation_inside_cite.snap
-2023/02/25 | 308 | support/texlab/src/features/highlight.rs
-2023/02/25 | 307 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@issue_789.txt.snap
-2023/02/25 | 3057 | support/texlab/src/parser/test_data/build_log/004.txt
-2023/02/25 | 3055 | support/texlab/src/features/completion/label.rs
-2023/02/25 | 3048 | systems/texlive/tlnet/archive/haranoaji-extra.doc.r66119.tar.xz
-2023/02/25 | 3036 | systems/texlive/tlnet/archive/haranoaji.doc.r66119.tar.xz
-2023/02/25 | 3004 | support/texlab/tests/lsp/text_document/formatting.rs
-2023/02/25 | 2 | support/texlab/src/parser/test_data/latex/parameter.txt
-2023/02/25 | 2 | support/texlab/src/parser/test_data/latex/group/unmatched_brackets.txt
-2023/02/25 | 2 | support/texlab/src/parser/test_data/latex/group/unmatched_braces.txt
-2023/02/25 | 2 | support/texlab/src/parser/test_data/latex/generic_command_escape.txt
-2023/02/25 | 29 | support/texlab/src/parser/test_data/latex/include/graphics_include_simple.txt
-2023/02/25 | 29 | support/texlab/src/parser/test_data/latex/command_definition/command_definition_optional.txt
-2023/02/25 | 2999 | macros/jptex/latex/platex/plnewsc09.tex
-2023/02/25 | 2990878 | info/ptex-manual.zip
-2023/02/25 | 2970 | support/texlab/tests/lsp/workspace/symbol.rs
-2023/02/25 | 2948 | macros/jptex/latex/platex/plnewsc10.tex
-2023/02/25 | 2942 | support/texlab/src/features/workspace_command.rs
-2023/02/25 | 293940 | systems/texlive/tlnet/archive/zhnumber.doc.r66119.tar.xz
-2023/02/25 | 2935 | macros/jptex/latex/platex-tools/plarray.tex
-2023/02/25 | 2931 | support/texlab/src/db/diagnostics/log.rs
-2023/02/25 | 2931 | macros/jptex/latex/platex/plnews04.tex
-2023/02/25 | 291 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_open_brace_multiple.snap
-2023/02/25 | 2917 | support/texlab/src/lib.rs
-2023/02/25 | 2914 | support/texlab/src/features/rename/label.rs
-2023/02/25 | 2910 | macros/jptex/latex/platex-tools/pxeverysel.tex
-2023/02/25 | 28 | support/texlab/src/parser/test_data/latex/include/package_include_multiple.txt
-2023/02/25 | 28 | support/texlab/src/parser/test_data/latex/include/biblatex_include_simple.txt
-2023/02/25 | 28 | support/texlab/src/parser/test_data/latex/group/equation_missing_end.txt
-2023/02/25 | 28 | support/texlab/src/parser/test_data/latex/graphics_path.txt
-2023/02/25 | 28 | support/texlab/src/parser/test_data/latex/equation_missing_begin.txt
-2023/02/25 | 283 | support/texlab/src/features/completion/begin_snippet.rs
-2023/02/25 | 282 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_empty.txt.snap
-2023/02/25 | 2804 | systems/texlive/tlnet/archive/pst-spinner.r66119.tar.xz
-2023/02/25 | 27 | support/texlab/src/parser/test_data/latex/structure/structure_invalid_nesting.txt
-2023/02/25 | 27 | support/texlab/src/parser/test_data/latex/include/verbatim_include_simple.txt
-2023/02/25 | 27 | support/texlab/src/parser/test_data/latex/caption/caption_default.txt
-2023/02/25 | 279 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_command_definition.snap
-2023/02/25 | 279 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_simple.snap
-2023/02/25 | 278 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_open_brace.snap
-2023/02/25 | 2766 | macros/jptex/latex/platex-tools/pxeveryshi.tex
-2023/02/25 | 2763 | macros/jptex/latex/platex/plnews03.tex
-2023/02/25 | 272 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__string_inside_reference.snap
-2023/02/25 | 271 | support/texlab/src/parser/test_data/latex/issue_745.txt
-2023/02/25 | 26 | support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_name_with_description_and_counter.txt
-2023/02/25 | 26 | support/texlab/src/parser/test_data/latex/command_definition/math_operator_no_impl.txt
-2023/02/25 | 26 | support/texlab/src/parser/test_data/latex/caption/caption_default_error.txt
-2023/02/25 | 269 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_open_brace.snap
-2023/02/25 | 26940 | systems/texlive/tlnet/archive/wrapfig2.source.r66119.tar.xz
-2023/02/25 | 265 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_empty.snap
-2023/02/25 | 26587 | support/texlab/texlab.pdf
-2023/02/25 | 264 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__glossary_ref_simple.snap
-2023/02/25 | 2641 | support/texlab/src/features/symbol/bibtex.rs
-2023/02/25 | 263 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__glossary_ref_open_brace.snap
-2023/02/25 | 2631 | macros/jptex/latex/platex-tools/pxxspace.tex
-2023/02/25 | 262 | support/texlab/src/features.rs
-2023/02/25 | 2628 | systems/texlive/tlnet/archive/unswcover.r66119.tar.xz
-2023/02/25 | 260304 | macros/jptex/latex/platex/platex.pdf
-2023/02/25 | 25 | support/texlab/src/parser/test_data/latex/glossary/glossary_entry_reference_options.txt
-2023/02/25 | 25 | support/texlab/src/parser/test_data/latex/color/color_set_definition_error3.txt
-2023/02/25 | 25 | support/texlab/src/parser/test_data/bibtex/preamble.txt
-2023/02/25 | 259 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__user_command.snap
-2023/02/25 | 25940208 | systems/texlive/tlnet/archive/haranoaji.r66119.tar.xz
-2023/02/25 | 2586 | support/texlab/texlab.tex
-2023/02/25 | 25852 | support/texlab/CHANGELOG.md
-2023/02/25 | 25805612 | systems/texlive/tlnet/archive/haranoaji-extra.r66119.tar.xz
-2023/02/25 | 257 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_class.snap
-2023/02/25 | 25793 | language/greek/greek-fontenc/lgr2licr.lua.html
-2023/02/25 | 256924 | systems/texlive/tlnet/archive/octave.doc.r66119.tar.xz
-2023/02/25 | 255 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__theorem_end.snap
-2023/02/25 | 253 | macros/jptex/latex/platex/platex.ini
-2023/02/25 | 252 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__unmatched_brackets.txt.snap
-2023/02/25 | 25260 | support/texlab/src/features/completion/builder.rs
-2023/02/25 | 2516 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__theorem_nested.snap
-2023/02/25 | 2515 | support/texlab/src/parser/test_data/build_log/003.txt
-2023/02/25 | 250 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__theorem_begin.snap
-2023/02/25 | 250 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__unmatched_braces.txt.snap
-2023/02/25 | 24 | support/texlab/src/parser/test_data/latex/include/svg_include_simple.txt
-2023/02/25 | 2490 | support/texlab/src/citation/field/date.rs
-2023/02/25 | 24809 | macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
-2023/02/25 | 24797 | macros/jptex/latex/platex/plvers.dtx
-2023/02/25 | 2467 | support/texlab/src/distro/miktex.rs
-2023/02/25 | 2455 | support/texlab/src/parser/test_data/build_log/002.txt
-2023/02/25 | 2421 | macros/jptex/latex/platex/plnewsc12.tex
-2023/02/25 | 242144 | systems/texlive/tlnet/archive/epspdf.doc.r66119.tar.xz
-2023/02/25 | 2416 | support/texlab/src/server/dispatch.rs
-2023/02/25 | 2412 | language/japanese/BX/bxghost/README.md
-2023/02/25 | 23 | support/texlab/src/parser/test_data/latex/include/class_include_simple.txt
-2023/02/25 | 23 | support/texlab/src/parser/test_data/latex/command_definition/command_definition_simple.txt
-2023/02/25 | 2383368 | systems/texlive/tlnet/archive/asymptote.doc.r66119.tar.xz
-2023/02/25 | 2368 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__float_nested.snap
-2023/02/25 | 2362 | macros/jptex/latex/platex-tools/pxftnright.tex
-2023/02/25 | 234 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__field_known.snap
-2023/02/25 | 232336 | systems/texlive/tlnet/archive/japanese-otf.r66102.tar.xz
-2023/02/25 | 2316 | systems/texlive/tlnet/archive/octave.r66119.tar.xz
-2023/02/25 | 2313 | macros/jptex/latex/platex/plnews05.tex
-2023/02/25 | 230 | support/texlab/src/db.rs
-2023/02/25 | 22 | support/texlab/src/parser/test_data/latex/include/bibtex_include_simple.txt
-2023/02/25 | 22 | support/texlab/src/parser/test_data/latex/command_definition/command_definition_no_argc.txt
-2023/02/25 | 22 | support/texlab/src/parser/test_data/latex/caption/caption_minimal.txt
-2023/02/25 | 228 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@hello_world.txt.snap
-2023/02/25 | 22856 | systems/texlive/tlnet/archive/bxbase.r66119.tar.xz
-2023/02/25 | 226 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_package_ref.snap
-2023/02/25 | 2263 | support/texlab/src/features/rename/entry.rs
-2023/02/25 | 223 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_simple.snap
-2023/02/25 | 22224 | support/texlab/src/citation/driver.rs
-2023/02/25 | 2213 | support/texlab/Cargo.toml
-2023/02/25 | 220 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@comment.txt.snap
-2023/02/25 | 21 | support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_name_with_description.txt
-2023/02/25 | 21 | support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_name_with_counter.txt
-2023/02/25 | 21 | support/texlab/src/parser/test_data/latex/label/label_number.txt
-2023/02/25 | 21 | support/texlab/src/parser/test_data/latex/inline_double_dollar.txt
-2023/02/25 | 21 | support/texlab/src/parser/test_data/latex/caption/caption_minimal_error.txt
-2023/02/25 | 21880 | systems/texlive/tlnet/archive/jlreq-deluxe.r66119.tar.xz
-2023/02/25 | 21780 | systems/texlive/tlnet/archive/jsclasses.r66100.tar.xz
-2023/02/25 | 2177 | support/texlab/src/features/folding.rs
-2023/02/25 | 2132 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__section_nested.snap
-2023/02/25 | 212 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__section.snap
-2023/02/25 | 211 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_word.snap
-2023/02/25 | 2115 | support/texlab/src/features/formatting/latexindent.rs
-2023/02/25 | 210 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@generic_command_empty.txt.snap
-2023/02/25 | 20 | support/texlab/src/parser/test_data/latex/label/label_reference_range_simple.txt
-2023/02/25 | 20 | support/texlab/src/parser/test_data/latex/include/tikz_library_import_simple.txt
-2023/02/25 | 20 | support/texlab/src/parser/test_data/latex/include/package_include_simple.txt
-2023/02/25 | 20 | support/texlab/src/parser/test_data/latex/include/latex_input_path_brackets.txt
-2023/02/25 | 20 | support/texlab/src/parser/test_data/latex/include/inkscape_include_simple.txt
-2023/02/25 | 20 | support/texlab/src/parser/test_data/latex/citation/citation_prenote_postnote.txt
-2023/02/25 | 209 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@generic_command_escape.txt.snap
-2023/02/25 | 208188 | macros/jptex/latex/platex/plfonts.dtx
-2023/02/25 | 206472 | systems/texlive/tlnet/archive/xpinyin.doc.r66119.tar.xz
-2023/02/25 | 205 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_complete_entry.snap
-2023/02/25 | 205307 | macros/latex/contrib/nicematrix/nicematrix-french.tex
-2023/02/25 | 2049 | support/texlab/src/util/lang_data.rs
-2023/02/25 | 2036023 | macros/latex/contrib/nicematrix.zip
-2023/02/25 | 20268 | biblio/bibtex/bibtex-x/ChangeLog
-2023/02/25 | 201040 | systems/texlive/tlnet/archive/xpinyin.r66119.tar.xz
-2023/02/25 | 1 | support/texlab/src/parser/test_data/latex/parameter_error.txt
-2023/02/25 | 19 | support/texlab/src/parser/test_data/latex/label/label_reference_range_error.txt
-2023/02/25 | 19 | support/texlab/src/parser/test_data/latex/label/label_definition_line_break.txt
-2023/02/25 | 19 | support/texlab/src/parser/test_data/latex/issue_789.txt
-2023/02/25 | 19 | support/texlab/src/parser/test_data/latex/inline.txt
-2023/02/25 | 19 | support/texlab/src/parser/test_data/latex/include/pgf_library_import_simple.txt
-2023/02/25 | 19 | support/texlab/src/parser/test_data/latex/glossary/acronym_reference_simple.txt
-2023/02/25 | 1980 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__enumerate_flat.snap
-2023/02/25 | 1955 | support/texlab/src/distro.rs
-2023/02/25 | 194 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_after_preamble.snap
-2023/02/25 | 1937 | macros/jptex/latex/platex-tools/pxmulticol.tex
-2023/02/25 | 1936 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__equation_nested.snap
-2023/02/25 | 1917 | support/texlab/src/features/definition.rs
-2023/02/25 | 191752 | systems/texlive/tlnet/archive/physics2.doc.r66119.tar.xz
-2023/02/25 | 1900 | support/texlab/src/features/reference/entry.rs
-2023/02/25 | 18711 | macros/latex/contrib/ragged2e/LICENSE.md
-2023/02/25 | 186 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_after_string.snap
-2023/02/25 | 186 | support/texlab/tests/lsp/text_document.rs
-2023/02/25 | 1865 | support/texlab/src/main.rs
-2023/02/25 | 185 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_preamble.snap
-2023/02/25 | 1844 | support/texlab/src/features/rename.rs
-2023/02/25 | 1841 | macros/jptex/latex/platex-tools/plarray.sty
-2023/02/25 | 182 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_article.snap
-2023/02/25 | 1821 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__theorem_flat.snap
-2023/02/25 | 181 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_join_strings.snap
-2023/02/25 | 181 | support/texlab/CONTRIBUTING.md
-2023/02/25 | 18178 | macros/jptex/latex/platex/platexrelease.dtx
-2023/02/25 | 1816 | support/texlab/src/distro/file_name_db.rs
-2023/02/25 | 1814 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__label.snap
-2023/02/25 | 1809 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__float_flat.snap
-2023/02/25 | 17 | support/texlab/src/parser/test_data/latex/include/latex_include_simple.txt
-2023/02/25 | 17 | support/texlab/src/parser/test_data/latex/include/latex_include_equality_sign.txt
-2023/02/25 | 17 | support/texlab/src/parser/test_data/latex/include/import_simple.txt
-2023/02/25 | 17 | support/texlab/src/parser/test_data/latex/command_definition/command_definition_no_impl.txt
-2023/02/25 | 179 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_string.snap
-2023/02/25 | 17987 | support/texlab/src/parser/latex/lexer.rs
-2023/02/25 | 179688 | systems/texlive/tlnet/archive/make4ht.doc.r66131.tar.xz
-2023/02/25 | 1771 | macros/jptex/latex/platex-tools/plextdelarray.sty
-2023/02/25 | 1769 | support/texlab/src/db/parse.rs
-2023/02/25 | 1760 | support/texlab/src/citation/output.rs
-2023/02/25 | 1752 | support/texlab/src/features/completion/argument.rs
-2023/02/25 | 17508 | language/greek/greek-fontenc/alphabeta-doc.tex
-2023/02/25 | 174676 | systems/texlive/tlnet/archive/l3kernel.r66099.tar.xz
-2023/02/25 | 1744 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_nested.txt.snap
-2023/02/25 | 1743 | support/texlab/tests/lsp/text_document/rename.rs
-2023/02/25 | 173 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@parameter_error.txt.snap
-2023/02/25 | 1737 | support/texlab/tests/lsp/text_document/inlay_hint.rs
-2023/02/25 | 1710 | support/texlab/src/features/completion/citation.rs
-2023/02/25 | 1708 | macros/jptex/latex/platex-tools/pxeveryshi.sty
-2023/02/25 | 1702 | support/texlab/src/features/completion.rs
-2023/02/25 | 16 | support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_only_name.txt
-2023/02/25 | 16 | support/texlab/src/parser/test_data/latex/include/class_include_empty.txt
-2023/02/25 | 16 | support/texlab/src/parser/test_data/latex/command_definition/command_definition_no_impl_error.txt
-2023/02/25 | 16999 | support/texlab/src/syntax/latex/cst.rs
-2023/02/25 | 168 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@parameter.txt.snap
-2023/02/25 | 167 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_command.snap
-2023/02/25 | 1668 | support/texlab/src/features/build/progress.rs
-2023/02/25 | 1667 | macros/jptex/latex/platex-tools/pldocverb.tex
-2023/02/25 | 1658 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@006.txt.snap
-2023/02/25 | 1656 | macros/jptex/latex/platex-tools/plextcolortbl.tex
-2023/02/25 | 1631 | support/texlab/src/citation/field/author.rs
-2023/02/25 | 16308 | systems/texlive/tlnet/archive/tkz-base.r66119.tar.xz
-2023/02/25 | 160 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_preamble.snap
-2023/02/25 | 1609 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__inlay_hint__label_definition.snap
-2023/02/25 | 15 | support/texlab/src/parser/test_data/latex/label/label_reference_range_incomplete.txt
-2023/02/25 | 15 | support/texlab/src/parser/test_data/latex/color/color_set_definition_error4.txt
-2023/02/25 | 15 | support/texlab/src/parser/test_data/latex/citation/citation_prenote.txt
-2023/02/25 | 15 | support/texlab/src/parser/test_data/latex/citation/citation_multiple_keys.txt
-2023/02/25 | 1596 | macros/latex/contrib/ragged2e/README.md
-2023/02/25 | 158377 | macros/jptex/latex/platex/jclasses.dtx
-2023/02/25 | 157 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_trailing_comma.snap
-2023/02/25 | 157 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_insert_braces.snap
-2023/02/25 | 1567 | support/texlab/src/features/completion/import.rs
-2023/02/25 | 155662 | macros/jptex/latex/platex/platex-en.pdf
-2023/02/25 | 1553 | macros/jptex/latex/platex/LICENSE
-2023/02/25 | 150368 | systems/texlive/tlnet/archive/jpsj.doc.r66119.tar.xz
-2023/02/25 | 1500 | macros/jptex/latex/platex-tools/LICENSE
-2023/02/25 | 14 | support/texlab/src/parser/test_data/latex/label/label_reference_multiple.txt
-2023/02/25 | 14 | support/texlab/src/parser/test_data/latex/generic_command_args.txt
-2023/02/25 | 1488 | macros/jptex/latex/platex/plcls.ins
-2023/02/25 | 1465 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__section_flat.snap
-2023/02/25 | 1462 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_declaration.txt.snap
-2023/02/25 | 14436 | systems/texlive/tlnet/archive/zhnumber.source.r66119.tar.xz
-2023/02/25 | 143 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_string.snap
-2023/02/25 | 1428 | support/texlab/src/citation/snapshots/texlab__citation__tests__mvbook_nietzsche_1988.snap
-2023/02/25 | 1411 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_averroes_1998.snap
-2023/02/25 | 140856 | macros/jptex/latex/platex/exppl2e.pdf
-2023/02/25 | 14005 | support/texlab/src/features/symbol/latex.rs
-2023/02/25 | 13 | support/texlab/src/parser/test_data/latex/include/package_include_empty.txt
-2023/02/25 | 13 | support/texlab/src/parser/test_data/latex/group/curly_group_simple.txt
-2023/02/25 | 13 | support/texlab/src/parser/test_data/latex/equation.txt
-2023/02/25 | 13 | support/texlab/src/parser/test_data/latex/color/color_reference_simple.txt
-2023/02/25 | 1385 | support/texlab/src/citation/field/number.rs
-2023/02/25 | 1383000 | systems/texlive/tlnet/archive/pst-spinner.doc.r66119.tar.xz
-2023/02/25 | 1381 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__equation_flat.snap
-2023/02/25 | 1376604 | macros/jptex/latex/platex/pldoc.pdf
-2023/02/25 | 13702 | macros/jptex/latex/platex/exppl2e.sty
-2023/02/25 | 1367 | support/texlab/src/features/reference/string.rs
-2023/02/25 | 136751 | macros/latex/contrib/footnoterange/footnoterange-example.pdf
-2023/02/25 | 1356 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_definition_options.txt.snap
-2023/02/25 | 1351 | macros/jptex/latex/platex-tools/pldocverb.sty
-2023/02/25 | 1341260 | macros/latex/contrib/nicematrix/nicematrix.pdf
-2023/02/25 | 13353 | support/texlab/src/parser/test_data/build_log/005.txt
-2023/02/25 | 1330 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_blom_2021.snap
-2023/02/25 | 132 | support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_parens.snap
-2023/02/25 | 1326 | support/texlab/src/features/definition/command.rs
-2023/02/25 | 1322 | support/texlab/tests/lsp/text_document/document_highlight.rs
-2023/02/25 | 1314 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_kastenholz_2006.snap
-2023/02/25 | 1313 | support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_section.snap
-2023/02/25 | 130980 | systems/texlive/tlnet/archive/ctex.r66119.tar.xz
-2023/02/25 | 12 | support/texlab/tests/lsp/workspace.rs
-2023/02/25 | 12 | support/texlab/src/parser/test_data/latex/hello_world.txt
-2023/02/25 | 12 | support/texlab/src/parser/test_data/latex/group/curly_group_missing_end.txt
-2023/02/25 | 12 | support/texlab/src/parser/test_data/latex/citation/citation_redundant_comma.txt
-2023/02/25 | 1299 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_nested_missing_braces.txt.snap
-2023/02/25 | 12999 | support/texlab/tests/lsp/text_document/completion.rs
-2023/02/25 | 1297 | macros/latex/contrib/ragged2e/ragged2e.ins
-2023/02/25 | 1296 | support/texlab/src/features/rename/command.rs
-2023/02/25 | 12825 | language/greek/greek-fontenc/hyperref-with-greek.tex
-2023/02/25 | 1280 | support/texlab/src/util/line_index_ext.rs
-2023/02/25 | 1270 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_enum_item.txt.snap
-2023/02/25 | 125 | support/texlab/src/parser.rs
-2023/02/25 | 1258 | support/texlab/src/features/definition/label.rs
-2023/02/25 | 124060 | macros/jptex/latex/platex/plcore.dtx
-2023/02/25 | 1236 | support/texlab/src/features/completion/color_model.rs
-2023/02/25 | 1223 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_knuth_1984.snap
-2023/02/25 | 1221 | support/texlab/src/features/completion/glossary_ref.rs
-2023/02/25 | 1215 | support/texlab/src/features/definition/entry.rs
-2023/02/25 | 1208 | support/texlab/tests/lsp/text_document/folding_range.rs
-2023/02/25 | 1206 | info/ptex-manual/README.md
-2023/02/25 | 11 | support/texlab/src/parser/test_data/latex/label/label_reference_equation.txt
-2023/02/25 | 11 | support/texlab/src/parser/test_data/latex/label/label_definition_simple.txt
-2023/02/25 | 11 | support/texlab/src/parser/test_data/latex/include/import_incomplete.txt
-2023/02/25 | 11984124 | systems/texlive/tlnet/archive/l3kernel.doc.r66099.tar.xz
-2023/02/25 | 1197 | support/texlab/src/features/hover.rs
-2023/02/25 | 119524 | systems/texlive/tlnet/archive/unswcover.doc.r66119.tar.xz
-2023/02/25 | 1192 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_with_begin.txt.snap
-2023/02/25 | 1191 | macros/jptex/latex/platex/plfmt.ins
-2023/02/25 | 11874 | support/texlab/src/citation/tests.rs
-2023/02/25 | 1186 | support/texlab/src/features/inlay_hint.rs
-2023/02/25 | 1176 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_combi_2004.snap
-2023/02/25 | 1158 | support/texlab/src/features/hover/string_ref.rs
-2023/02/25 | 1157 | support/texlab/tests/lsp/text_document/document_link.rs
-2023/02/25 | 1153 | support/texlab/src/features/reference.rs
-2023/02/25 | 11514 | language/korean/pmhanguljamo/tex/pmhanguljamo-frkim.code.tex
-2023/02/25 | 1146 | support/texlab/src/features/formatting.rs
-2023/02/25 | 11459 | support/texlab/src/parser/bibtex.rs
-2023/02/25 | 1143 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_nested.txt.snap
-2023/02/25 | 1143636 | systems/texlive/tlnet/archive/ctex.doc.r66119.tar.xz
-2023/02/25 | 1122 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_definition.txt.snap
-2023/02/25 | 111387 | macros/jptex/latex/platex/platexrelease.pdf
-2023/02/25 | 1112 | support/texlab/src/parser/test_data/bibtex/samples/nietzsche_1998.txt
-2023/02/25 | 11001 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__nietzsche_1998.txt.snap
-2023/02/25 | 10 | support/texlab/src/parser/test_data/latex/citation/citation_star.txt
-2023/02/25 | 10 | support/texlab/src/parser/test_data/latex/citation/citation_simple.txt
-2023/02/25 | 1095955 | language/korean/pmhanguljamo.zip
-2023/02/25 | 1091 | language/japanese/BX/bxghost/LICENSE
-2023/02/25 | 10852 | systems/texlive/tlnet/archive/xpinyin.source.r66119.tar.xz
-2023/02/25 | 1082 | support/texlab/src/features/highlight/label.rs
-2023/02/25 | 107332 | systems/texlive/tlnet/archive/dvisvgm.doc.r66119.tar.xz
-2023/02/25 | 1068 | macros/jptex/latex/platex-tools/plextcolortbl.sty
-2023/02/25 | 1064 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_aksin_2006.snap
-2023/02/25 | 1062 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_jain_1999.snap
-2023/02/25 | 1061 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_options.txt.snap
-2023/02/25 | 1058 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__class_include_options.txt.snap
-2023/02/25 | 1051 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_erwin_2007.snap
-2023/02/25 | 10430 | macros/jptex/latex/platex/plnewsc07.tex
-2023/02/25 | 10426 | macros/jptex/latex/platex/plnews01.tex
-2023/02/25 | 1038 | support/texlab/src/features/link.rs
-2023/02/25 | 10366 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__averroes_1998.txt.snap
-2023/02/25 | 1027 | support/texlab/src/features/reference/label.rs
-2023/02/25 | 10215 | macros/jptex/latex/platex/kinsoku.dtx
-2023/02/25 | 101668 | language/korean/pmhanguljamo/doc/pmhanguljamo-kdoc.tex
-2023/02/25 | 1008 | support/texlab/src/parser/test_data/bibtex/samples/averroes_1998.txt
-2023/02/25 | 10088 | systems/texlive/tlnet/archive/pmx.r66119.tar.xz
-2023/02/25 | 1004730 | biblio/pbibtex/pbibtex-manual.zip
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index a75d1712f6..c0dcc04c93 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 04-03-2023, 02:00:15
+%% created at 05-03-2023, 02:01:54
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -4572,8 +4572,8 @@
title = {The \texttt{babel-greek} package},
subtitle = {Babel support for documents written in Greek},
author = {Apostolos Syropoulos and Javier Bezos López and Johannes L. Braams and Günter Milde},
- date = {2020-11-10},
- version = {1.10},
+ date = {2023-03-04},
+ version = {1.12},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/babel-contrib/greek},
url = {https://ctan.org/pkg/babel-greek},
@@ -61632,8 +61632,8 @@
title = {The \texttt{sillypage} package},
subtitle = {John Cleese’s Silly Walk as page numbering style},
author = {Paulo Roberto Massa Cereda},
- date = {2022-08-02},
- version = {1.5},
+ date = {2023-03-04},
+ version = {1.6},
license = {cc-by-sa-4,lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/sillypage},
url = {https://ctan.org/pkg/sillypage},
@@ -65064,10 +65064,10 @@
title = {The \texttt{tablestyles} package},
subtitle = {Styles for tables with new commands},
author = {Matthias Pospiech},
- date = {2017-11-18},
+ date = {2023-03-04},
version = {0.1},
license = {lppl1.3},
- mirror = {https://mirror.ctan.org/macros/latex/contrib/tablestyles},
+ mirror = {https://mirror.ctan.org/obsolete/macros/latex/contrib/tablestyles},
url = {https://ctan.org/pkg/tablestyles},
}
@@ -72775,8 +72775,8 @@
title = {The \texttt{upmendex} package},
subtitle = {Multilingual index processor},
author = {Takuji Tanaka},
- date = {2021-11-21},
- version = {1.00},
+ date = {2023-03-04},
+ version = {1.07},
license = {bsd3},
mirror = {https://mirror.ctan.org/indexing/upmendex},
url = {https://ctan.org/pkg/upmendex},
@@ -73255,7 +73255,7 @@
title = {The \texttt{uvaletter} package},
subtitle = {Unofficial letterhead template for the University of Amsterdam},
author = {Michele Piazzai},
- date = {2023-03-03},
+ date = {2023-03-04},
version = {1.1.0},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/uvaletter},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index 0a662aaf50..49885dfea2 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/indexing/upmendex/COPYRIGHT b/indexing/upmendex/COPYRIGHT
index 9136a01632..c978845afc 100644
--- a/indexing/upmendex/COPYRIGHT
+++ b/indexing/upmendex/COPYRIGHT
@@ -1,5 +1,5 @@
Copyright (C) 1995 ASCII Corporation, 2009 ASCII MEDIA WORKS,
- 2015-2021 TANAKA Takuji
+ 2015-2023 TANAKA Takuji
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/indexing/upmendex/README.md b/indexing/upmendex/README.md
index 89d0c0e4de..f36923246b 100644
--- a/indexing/upmendex/README.md
+++ b/indexing/upmendex/README.md
@@ -1,7 +1,7 @@
upmendex --- Multilingual index processor
==========================================
-2021.11.20 Ver1.00
+2023.01.11 Ver1.07
TANAKA, Takuji
<ttk(at)t-lab.opal.ne.jp>
@@ -15,7 +15,7 @@ upmendex is a multilingual index processor with following features:
based on mendex version 2.6f by ASCII media works.
* Unicode for internal process and
support UTF-8 encoding for input/output.
- Will work with upLaTeX, XeLaTeX and luaLaTeX.
+ Work with upLaTeX, XeLaTeX and luaLaTeX.
* Support Latin (including non-English), Greek, Cyrillic,
Korean Hangul and Chinese Han (Hanzi ideographs) scripts
as well as Japanese Kana.
@@ -30,16 +30,17 @@ upmendex is a multilingual index processor with following features:
* source/ :: sources
* doc/ :: documents
* doc/samples/ :: samples for test.
- * doc/samples/alphabet :: samples for languages and collation options.
- * doc/samples/option :: samples for ICU attributes/rules options etc.
More samples are distributed at GitHub[2] than at CTAN[5].
+ * doc/samples/alphabet :: samples for languages and collation options.
+ * doc/samples/option :: samples for ICU attributes/rules options etc.
+ * doc/samples/latex :: samples for upLaTeX/pxbabel and XeLaTeX/polyglossia.
* man/ :: manuals
### Building upmendex
-The source files are distributed at GitHub[2] and work with TeX Live svn r61096.
+The source files are distributed at GitHub[2] and work with TeX Live svn r65484.
Ref. [TeX Live and Subversion](http://www.tug.org/texlive/svn/)
-Tested with ICU 68.2 .
+Tested with ICU 72.1 .
### Status
Stable version.
@@ -57,17 +58,20 @@ setting into "icu_locale" in style files.
Currently following locales are available:
#### Latin script
- "az", "az@collation=search" (Azerbaijani), "ca@collation=search" (Catalan),
- "cs", "cs@collation=search" (Czech), "da", "da@collation=search" (Danish),
+ "af" (Afrikaans), "az", "az@collation=search" (Azerbaijani),
+ "bs", "bs@collation=search" (Bosnian),
+ "ca@collation=search" (Catalan), "cs", "cs@collation=search" (Czech),
+ "cy" (Welsh), "da", "da@collation=search" (Danish),
"de@collation=phonebook", "de@collation=search", "de-AT@collation=phonebook" (German),
"eo" (Espelanto), "es", "es@collation=traditional", "es@collation=search" (Spanish),
- "fi", "fi@collation=search", "fi@collation=traditional" (Finnish),
+ "et" (Estonian), "fi", "fi@collation=search", "fi@collation=traditional" (Finnish),
"fr-CA" (French), "gl", "gl@collation=search" (Galician),
- "hr", "hr@collation=search" (Croatian), "hu" (Hungarian), "lt" (Lithuanian),
+ "hr", "hr@collation=search" (Croatian), "hu" (Hungarian),
+ "is", "is@collation=search" (Icelandic), "lt" (Lithuanian), "lv" (Latvian),
"nb", "nb@collation=search", "nn", "nn@collation=search", "no" (Norwegian),
"pl" (Polish), "ro" (Romanian), "sk", "sk@collation=search" (Slovak),
"sl" (Slovenian), "sq" (Albanian), "sr-Latn", "sr-Latn@collation=search" (Serbian),
- "sv", "sv@collation=search", "sv@collation=standard" (Swedish),
+ "sv", "sv@collation=search", "sv@collation=standard" (Swedish), "tk" (Turkmen),
"tr" (Turkish), "vi", "vi@collation=traditional" (Vietnamese)
##### Supported by default "root" collator. Do not need to set locale
@@ -75,7 +79,7 @@ Currently following locales are available:
"it" (Italian), "jv" (Javanese), "ms" (Malay), "nl" (Dutch), "pt" (Portuguese)
#### Cyrillic script
- "be" (Belarusian), "bg" (Bulgarian), "kk" (Kazakh), "ky" (Kyrgyz),
+ "be" (Belarusian), "bg" (Bulgarian), "bs-Cyrl" (Bosnian), "kk" (Kazakh), "ky" (Kyrgyz),
"mk" (Macedonian), "ru" (Russian), "sr" (Serbian), "uk" (Ukraine)
#### Greek script
@@ -93,10 +97,11 @@ Currently following locales are available:
#### Thai script (experimental)
"th" (Thai)
-#### Arabic (experimental)
- "ar", "ar@collation=compat" (Arabic), "fa" (Persian), "ps" (Pashto), "ur" (Urdu)
+#### Arabic script (experimental)
+ "ar", "ar@collation=compat" (Arabic), "fa" (Persian), "fa-AF" (Dari), "ps" (Pashto),
+ "ug" (Uyghur), "ur" (Urdu)
-#### Hebrew (experimental)
+#### Hebrew script (experimental)
"he", "he@collation=search" (Hebrew), "yi" (Yiddish)
### References
diff --git a/indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx b/indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx
index d7d537f96e..026ab4dd73 100644
--- a/indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx
+++ b/indexing/upmendex/doc/samples/alphabet/alpha_zhp.idx
@@ -84,3 +84,35 @@
\indexentry{善}{251}
\indexentry{懲}{252}
\indexentry{惡}{253}
+\indexentry{重新@重新 (chóng xīn, ㄔㄨㄥˊ ㄒㄧㄣ)}{6000}
+\indexentry{重要@重要 (zhòng yào, ㄓㄨㄥˋ ㄧㄠˋ)}{6001}
+\indexentry{長年@長年 (cháng nián, ㄔㄤˊ ㄋㄧㄢˊ)}{6010}
+\indexentry{長短@長短 (cháng duǎn, ㄔㄤˊ ㄉㄨㄢˇ)}{6011}
+\indexentry{長大@長大 (zhǎng dà, ㄓㄤˇ ㄉㄚˋ)}{6012}
+\indexentry{长年}{6013}
+\indexentry{长短}{6014}
+\indexentry{长大}{6015}
+\indexentry{常年@常年 (cháng nián, ㄔㄤˊ ㄋㄧㄢˊ)}{6016}
+\indexentry{調查@調查 (diào chá, ㄉㄧㄠˋ ㄓㄚ)}{6020}
+\indexentry{調整@調整 (tiáo zhěng, ㄊㄧㄠˊ ㄓㄥˇ)}{6021}
+\indexentry{调查}{6022}
+\indexentry{调整}{6023}
+\indexentry{重}{6100}
+\indexentry{長}{6101}
+\indexentry{长}{6102}
+\indexentry{調}{6103}
+\indexentry{调}{6104}
+\indexentry{常@常 (cháng, ㄔㄤˊ)}{6200}
+\indexentry{腸@腸 (cháng, ㄔㄤˊ)}{6201}
+\indexentry{崇@崇 (chóng, ㄔㄨㄥˊ)}{6202}
+\indexentry{蟲@蟲 (chóng, ㄔㄨㄥˊ)}{6203}
+\indexentry{虫@虫 (chóng, ㄔㄨㄥˊ)}{6204}
+\indexentry{條@條 (tiáo, ㄊㄧㄠˊ)}{6204}
+\indexentry{条@条 (tiáo, ㄊㄧㄠˊ)}{6205}
+\indexentry{仲@仲 (zhòng, ㄓㄨㄥˋ)}{6206}
+\indexentry{衆@衆 (zhòng, ㄓㄨㄥˋ)}{6207}
+\indexentry{众@众 (zhòng, ㄓㄨㄥˋ)}{6208}
+\indexentry{掉@掉 (diào, ㄉㄧㄠˋ)}{6209}
+\indexentry{吊@吊 (diào, ㄉㄧㄠˋ)}{6210}
+\indexentry{弔@弔 (diào, ㄉㄧㄠˋ)}{6211}
+\indexentry{掌@掌 (zhǎng, ㄓㄤˇ)}{6212}
diff --git a/indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx b/indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx
index 55ef3df56f..792eed7e57 100644
--- a/indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx
+++ b/indexing/upmendex/doc/samples/alphabet/alpha_zhz.idx
@@ -95,3 +95,35 @@
\indexentry{喔}{1010}
\indexentry{次}{1014}
\indexentry{促}{1015}
+\indexentry{重新@重新 (chóng xīn, ㄔㄨㄥˊ ㄒㄧㄣ)}{6000}
+\indexentry{重要@重要 (zhòng yào, ㄓㄨㄥˋ ㄧㄠˋ)}{6001}
+\indexentry{長年@長年 (cháng nián, ㄔㄤˊ ㄋㄧㄢˊ)}{6010}
+\indexentry{長短@長短 (cháng duǎn, ㄔㄤˊ ㄉㄨㄢˇ)}{6011}
+\indexentry{長大@長大 (zhǎng dà, ㄓㄤˇ ㄉㄚˋ)}{6012}
+\indexentry{长年}{6013}
+\indexentry{长短}{6014}
+\indexentry{长大}{6015}
+\indexentry{常年@常年 (cháng nián, ㄔㄤˊ ㄋㄧㄢˊ)}{6016}
+\indexentry{調查@調查 (diào chá, ㄉㄧㄠˋ ㄓㄚ)}{6020}
+\indexentry{調整@調整 (tiáo zhěng, ㄊㄧㄠˊ ㄓㄥˇ)}{6021}
+\indexentry{调查}{6022}
+\indexentry{调整}{6023}
+\indexentry{重}{6100}
+\indexentry{長}{6101}
+\indexentry{长}{6102}
+\indexentry{調}{6103}
+\indexentry{调}{6104}
+\indexentry{常@常 (cháng, ㄔㄤˊ)}{6200}
+\indexentry{腸@腸 (cháng, ㄔㄤˊ)}{6201}
+\indexentry{崇@崇 (chóng, ㄔㄨㄥˊ)}{6202}
+\indexentry{蟲@蟲 (chóng, ㄔㄨㄥˊ)}{6203}
+\indexentry{虫@虫 (chóng, ㄔㄨㄥˊ)}{6204}
+\indexentry{條@條 (tiáo, ㄊㄧㄠˊ)}{6204}
+\indexentry{条@条 (tiáo, ㄊㄧㄠˊ)}{6205}
+\indexentry{仲@仲 (zhòng, ㄓㄨㄥˋ)}{6206}
+\indexentry{衆@衆 (zhòng, ㄓㄨㄥˋ)}{6207}
+\indexentry{众@众 (zhòng, ㄓㄨㄥˋ)}{6208}
+\indexentry{掉@掉 (diào, ㄉㄧㄠˋ)}{6209}
+\indexentry{吊@吊 (diào, ㄉㄧㄠˋ)}{6210}
+\indexentry{弔@弔 (diào, ㄉㄧㄠˋ)}{6211}
+\indexentry{掌@掌 (zhǎng, ㄓㄤˇ)}{6212}
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist
index 9bd0d7ef14..3ff1f401ea 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_es1.ist
@@ -1,4 +1,5 @@
% -*- coding: utf-8 -*-
-icu_locale "es@collation=traditional"
+%icu_locale "es@collation=traditional"
+icu_locale "es-u-co-trad"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist
index c71fbd7a7b..6af031c914 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_es2.ist
@@ -1,4 +1,5 @@
% -*- coding: utf-8 -*-
-icu_locale "es@collation=search"
+%icu_locale "es@collation=search"
+icu_locale "es-u-co-search"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist
index e52cb7910c..8ebe0fd574 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh1.ist
@@ -9,4 +9,5 @@ lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
icu_locale "zh"
+icu_rules "&常年<<长年<<长短<<長年<<長短 &崇<<重新 &條<<调整<<調整"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist
index 4f4661ec8e..62ef4f2d29 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh11.ist
@@ -8,5 +8,6 @@ lethead_flag 1
lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
-icu_locale "zh@collation=unihan"
+%icu_locale "zh@collation=unihan"
+icu_locale "zh-u-co-unihan"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist
index f2e8c0aa87..57dc249c8c 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh12.ist
@@ -8,6 +8,7 @@ lethead_flag 1
lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
-icu_locale "zh@collation=unihan"
+%icu_locale "zh@collation=unihan"
+icu_locale "zh-u-co-unihan"
hanzi_head "一部;丨部;丶部;丿部;乙部;亅部;二部;亠部;人部;儿部;入部;八部;冂部;冖部;冫部;几部;凵部;刀部;力部;勹部;匕部;匚部;匸部;十部;卜部;卩部;厂部;厶部;又部;口部;囗部;土部;士部;夂部;夊部;夕部;大部;女部;子部;宀部;寸部;小部;尢部;尸部;屮部;山部;巛部;工部;己部;巾部;干部;幺部;广部;廴部;廾部;弋部;弓部;彐部;彡部;彳部;心部;戈部;戶部;手部;支部;攴部;文部;斗部;斤部;方部;无部;日部;曰部;月部;木部;欠部;止部;歹部;殳部;毋部;比部;毛部;氏部;气部;水部;火部;爪部;父部;爻部;爿部;片部;牙部;牛部;犬部;玄部;玉部;瓜部;瓦部;甘部;生部;用部;田部;疋部;疒部;癶部;白部;皮部;皿部;目部;矛部;矢部;石部;示部;禸部;禾部;穴部;立部;竹部;米部;糸部;缶部;网部;羊部;羽部;老部;而部;耒部;耳部;聿部;肉部;臣部;自部;至部;臼部;舌部;舛部;舟部;艮部;色部;艸部;虍部;虫部;血部;行部;衣部;襾部;見部;角部;言部;谷部;豆部;豕部;豸部;貝部;赤部;走部;足部;身部;車部;辛部;辰部;辵部;邑部;酉部;釆部;里部;金部;長部;門部;阜部;隶部;隹部;雨部;靑部;非部;面部;革部;韋部;韭部;音部;頁部;風部;飛部;食部;首部;香部;馬部;骨部;高部;髟部;鬥部;鬯部;鬲部;鬼部;魚部;鳥部;鹵部;鹿部;麥部;麻部;黃部;黍部;黑部;黹部;黽部;鼎部;鼓部;鼠部;鼻部;齊部;齒部;龍部;龜部;龠部"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist
index 6fce8ee43c..e0248d6390 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh13.ist
@@ -8,6 +8,7 @@ lethead_flag 1
lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
-icu_locale "ja@collation=unihan"
+%icu_locale "ja@collation=unihan"
+icu_locale "ja-u-co-unihan"
hanzi_head "一部;丨部;丶部;丿部;乙部;亅部;二部;亠部;人部;儿部;入部;八部;冂部;冖部;冫部;几部;凵部;刀部;力部;勹部;匕部;匚部;匸部;十部;卜部;卩部;厂部;厶部;又部;口部;囗部;土部;士部;夂部;夊部;夕部;大部;女部;子部;宀部;寸部;小部;尢部;尸部;屮部;山部;巛部;工部;己部;巾部;干部;幺部;广部;廴部;廾部;弋部;弓部;彐部;彡部;彳部;心部;戈部;戸部;手部;支部;攴部;文部;斗部;斤部;方部;无部;日部;曰部;月部;木部;欠部;止部;歹部;殳部;毋部;比部;毛部;氏部;气部;水部;火部;爪部;父部;爻部;爿部;片部;牙部;牛部;犬部;玄部;玉部;瓜部;瓦部;甘部;生部;用部;田部;疋部;疒部;癶部;白部;皮部;皿部;目部;矛部;矢部;石部;示部;禸部;禾部;穴部;立部;竹部;米部;糸部;缶部;网部;羊部;羽部;老部;而部;耒部;耳部;聿部;肉部;臣部;自部;至部;臼部;舌部;舛部;舟部;艮部;色部;艸部;虍部;虫部;血部;行部;衣部;襾部;見部;角部;言部;谷部;豆部;豕部;豸部;貝部;赤部;走部;足部;身部;車部;辛部;辰部;辵部;邑部;酉部;釆部;里部;金部;長部;門部;阜部;隶部;隹部;雨部;靑部;非部;面部;革部;韋部;韭部;音部;頁部;風部;飛部;食部;首部;香部;馬部;骨部;高部;髟部;鬥部;鬯部;鬲部;鬼部;魚部;鳥部;鹵部;鹿部;麥部;麻部;黃部;黍部;黑部;黹部;黽部;鼎部;鼓部;鼠部;鼻部;齊部;齒部;龍部;龜部;龠部"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist
index 7e92ed574f..f54483f7d2 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh14.ist
@@ -8,6 +8,7 @@ lethead_flag 1
lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
-icu_locale "ko@collation=unihan"
+%icu_locale "ko@collation=unihan"
+icu_locale "ko-u-co-unihan"
hanzi_head "一部;丨部;丶部;丿部;乙部;亅部;二部;亠部;人部;儿部;入部;八部;冂部;冖部;冫部;几部;凵部;刀部;力部;勹部;匕部;匚部;匸部;十部;卜部;卩部;厂部;厶部;又部;口部;囗部;土部;士部;夂部;夊部;夕部;大部;女部;子部;宀部;寸部;小部;尢部;尸部;屮部;山部;巛部;工部;己部;巾部;干部;幺部;广部;廴部;廾部;弋部;弓部;彐部;彡部;彳部;心部;戈部;戶部;手部;支部;攴部;文部;斗部;斤部;方部;无部;日部;曰部;月部;木部;欠部;止部;歹部;殳部;毋部;比部;毛部;氏部;气部;水部;火部;爪部;父部;爻部;爿部;片部;牙部;牛部;犬部;玄部;玉部;瓜部;瓦部;甘部;生部;用部;田部;疋部;疒部;癶部;白部;皮部;皿部;目部;矛部;矢部;石部;示部;禸部;禾部;穴部;立部;竹部;米部;糸部;缶部;网部;羊部;羽部;老部;而部;耒部;耳部;聿部;肉部;臣部;自部;至部;臼部;舌部;舛部;舟部;艮部;色部;艸部;虍部;虫部;血部;行部;衣部;襾部;見部;角部;言部;谷部;豆部;豕部;豸部;貝部;赤部;走部;足部;身部;車部;辛部;辰部;辵部;邑部;酉部;釆部;里部;金部;長部;門部;阜部;隶部;隹部;雨部;靑部;非部;面部;革部;韋部;韭部;音部;頁部;風部;飛部;食部;首部;香部;馬部;骨部;高部;髟部;鬥部;鬯部;鬲部;鬼部;魚部;鳥部;鹵部;鹿部;麥部;麻部;黃部;黍部;黑部;黹部;黽部;鼎部;鼓部;鼠部;鼻部;齊部;齒部;龍部;龜部;龠部"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist
index 359f3b97bd..45ad87e58c 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh2.ist
@@ -9,4 +9,5 @@ lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
icu_locale "zh"
+icu_rules "&常年<<长年<<长短<<長年<<長短 &崇<<重新 &條<<调整<<調整"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist
index 499dcf9eff..88ab446930 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh21.ist
@@ -8,5 +8,6 @@ lethead_flag 1
lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
-icu_locale "zh@collation=stroke"
+%icu_locale "zh@collation=stroke"
+icu_locale "zh-u-co-stroke"
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist
index 6cc7d3252c..933fe3d9df 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh22.ist
@@ -8,5 +8,7 @@ lethead_flag 1
lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
-icu_locale "zh@collation=stroke"
+%icu_locale "zh@collation=stroke"
+icu_locale "zh-u-co-stroke"
hanzi_head "1画;2画;3画;4画;5画;6画;7画;8画;9画;10画;11画;12画;13画;14画;15画;16画;17画;18画;19画;20画;21画;22画;23画;24画;25画;26画;27画;28画;29画;30画;31画;32画;33画;35画;36画;39画;48画"
+
diff --git a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist
index c3584031e7..77ad0e08ef 100644
--- a/indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist
+++ b/indexing/upmendex/doc/samples/alphabet/mdxsty_zh31.ist
@@ -8,5 +8,7 @@ lethead_flag 1
lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
-icu_locale "zh@collation=zhuyin"
+%icu_locale "zh@collation=zhuyin"
+icu_locale "zh-u-co-zhuyin"
+icu_rules "&常年<<长年<<长短<<長年<<長短 &崇<<重新 &條<<调整<<調整"
diff --git a/indexing/upmendex/doc/samples/latex/Makefile b/indexing/upmendex/doc/samples/latex/Makefile
new file mode 100644
index 0000000000..c10ffc0ca3
--- /dev/null
+++ b/indexing/upmendex/doc/samples/latex/Makefile
@@ -0,0 +1,24 @@
+UPMENDEX = upmendex
+DVIPDFMX = dvipdfmx -f haranoaji-uptex.map
+
+city0.ind:
+ $(UPMENDEX) city0 -s mlg0.ist
+
+city0.pdf:
+ xelatex city0.tex
+ xelatex city0.tex
+ $(UPMENDEX) city0 -s mlg0.ist
+ xelatex city0.tex
+
+city1.ind:
+ $(UPMENDEX) city1 -s mlg1.ist
+
+city1.dvi:
+ uplatex city1.tex
+ uplatex city1.tex
+ $(UPMENDEX) city1 -s mlg1.ist
+ uplatex city1.tex
+
+city1.pdf:
+ $(DVIPDFMX) city1.dvi
+
diff --git a/indexing/upmendex/doc/samples/latex/city0.tex b/indexing/upmendex/doc/samples/latex/city0.tex
new file mode 100644
index 0000000000..24ccd3dcc6
--- /dev/null
+++ b/indexing/upmendex/doc/samples/latex/city0.tex
@@ -0,0 +1,203 @@
+%
+% Example of XeLaTeX, polyglossia, Noto fonts and upmendex
+% in Latin, CJK (Chinese, Japanese, Korean), Cyrillic, Greek,
+% Devanagari, Thai, Arabic and Hebrew
+%
+%
+% Copyright (C) 2022 TANAKA Takuji
+% You may freely use, modify and/or distribute this file.
+%
+\documentclass[a4paper]{article}
+
+\usepackage{fontspec}
+\usepackage{polyglossia}
+\usepackage{makeidx}
+\makeindex
+
+\setdefaultlanguage{english}
+\setromanfont{Noto Serif}
+\setmainfont{Noto Serif}
+\newfontfamily\cyrillicfont{Noto Serif}
+\setotherlanguage{russian}
+\newfontfamily\greekfont{Noto Serif}
+\setotherlanguage{greek}
+\newfontfamily\japanesefont{Noto Serif CJK JP}[Language=Japanese,Script=CJK]
+\setotherlanguage{japanese}
+\newfontfamily\koreanfont{Noto Serif CJK KR}[Language=Korean,Script=Hangul]
+\setotherlanguage{korean}
+\newfontfamily\hindifont{Noto Serif Devanagari}[Language=Hindi,Script=Devanagari]
+\setotherlanguage{hindi}
+\newfontfamily\thaifont{Noto Serif Thai}[Language=Thai,Script=Thai]
+\setotherlanguage{thai}
+\newfontfamily\hebrewfont{Noto Serif Hebrew}[Script=Hebrew]
+\setotherlanguage{hebrew}
+\newfontfamily\arabicfont{Noto Naskh Arabic}[Script=Arabic]
+\setotherlanguage{arabic}
+%\newfontfamily\chinesefont{Noto Serif CJK TC}[Script=CJK]
+\newfontfamily\chinesefont{Noto Serif CJK SC}[Script=CJK]
+\setotherlanguage{chinese}
+
+\parindent1em
+\begin{document}
+\section{Latin}
+This is an English text.
+
+upmendex\index{upmendex}.
+Install of upmendex\index{upmendex!Install@Install of ---}.
+Usage of upmendex\index{upmendex!Usage@Usage of ---}.
+Usage of upmendex for beginners\index{upmendex!Usage@Usage of ---!for beginners@--- for beginners}.
+Usage of upmendex for experts\index{upmendex!Usage@Usage of ---!for experts@--- for experts}.
+
+Number: 3.14159265\index{3.14159265}, 2.71828182\index{2.71828182}.
+Symbol: \$\index{\$}, €\index{€}, ¥\index{¥}.
+
+São Paulo\index{São Paulo}.
+Ciudad de México\index{Ciudad de México}.
+New York\index{New York}.
+Buenos Aires\index{Buenos Aires}.
+İstanbul\index{İstanbul}.
+Rio de Janeiro\index{Rio de Janeiro}.
+London\index{London}.
+Manila\index{Manila}.
+Paris\index{Paris}.
+Berlin\index{Berlin}.
+
+\section{CJK}
+\subsection{Japanese (Kana, Kanji)}
+\begin{japanese}
+これは日本語のテキストです。
+
+upmendex\index{upmendex}。
+upmendexのインストール\index{upmendex!のインストール@---\textjapanese{のインストール}}。
+upmendexの使い方\index{upmendex!のつかいかた@---\textjapanese{の使い方}}。
+upmendexの使い方入門編\index{upmendex!のつかいかた@---\textjapanese{の使い方}!にゅうもんへん@---\textjapanese{入門編}}。
+upmendexの使い方応用編\index{upmendex!のつかいかた@---\textjapanese{の使い方}!おうようへん@---\textjapanese{応用編}}。
+
+東京\index{とうきょう@東京}。
+横浜\index{よこはま@横浜}。
+大阪\index{おおさか@大阪}。
+名古屋\index{なごや@名古屋}。
+札幌\index{さっぽろ@札幌}。
+福岡\index{ふくおか@福岡}。
+川崎\index{かわさき@川崎}。
+神戸\index{こうべ@神戸}。
+京都\index{きょうと@京都}。
+さいたま\index{さいたま}。
+\end{japanese}
+
+\subsection{Korean (Hangul, Hanja)}
+\begin{korean}
+이것은 한국어 텍스트입니다.
+
+서울\index{서울}.
+부산(釜山)\index{부산@부산(釜山)}.
+인천(仁川)\index{인천@인천(仁川)}.
+대구(大邱)\index{대구@대구(大邱)}.
+대전(大田)\index{대전@대전(大田)}.
+광주(光州)\index{광주@광주(光州)}.
+울산(蔚山)\index{울산@울산(蔚山)}.
+평양(平壤)\index{평양@평양(平壤)}.
+\end{korean}
+
+\subsection{Chinese (Hanzi)}
+\begin{chinese}
+這是中文文本。
+这是中文文本。
+
+北京\index{北京}。
+上海\index{上海}。
+天津\index{天津}。
+廈門(厦门)\index{廈門(厦门)}。
+深圳\index{深圳}。
+成都\index{成都}。
+杭州\index{杭州}。
+香港\index{香港}。
+臺北\index{臺北}。
+高雄\index{高雄}。
+桃園(桃园)\index{桃園(桃园)}。
+\end{chinese}
+
+\section{Cyrillic}
+\begin{russian}
+Здесь русский текст.
+
+Москва\index{Москва}.
+Санкт-Петербург\index{Санкт-Петербург}.
+Новосибирск\index{Новосибирск}.
+Київ\index{Київ}.
+Одеса\index{Одеса}.
+Харків\index{Харків}.
+София\index{София}.
+Београд\index{Београд}.
+Бишкек\index{Бишкек}.
+Скопје\index{Скопје}.
+Мінск\index{Мінск}.
+Нұр-Сұлтан\index{Нұр-Сұлтан}.
+\end{russian}
+
+\section{Greek}
+\begin{greek}
+Ελληνικό κείμενο εδώ.
+
+Αθήνα\index{Αθήνα}.
+Θεσσαλονίκη\index{Θεσσαλονίκη}.
+Πάτρα\index{Πάτρα}.
+Ηράκλειο\index{Ηράκλειο}.
+Λάρισα\index{Λάρισα}.
+\end{greek}
+
+\section{Devanagari}
+\begin{hindi}
+यह हिन्दी पाठ है।
+
+मुंबई\index{मुंबई}
+दिल्ली\index{दिल्ली}
+कोलकाता\index{कोलकाता}
+कानपुर\index{कानपुर}
+बंगलुरु\index{बंगलुरु}
+\end{hindi}
+
+\section{Thai}
+\begin{thai}
+นี่คือข้อความภาษาไทย
+
+กรุงเทพมหานคร\index{กรุงเทพมหานคร}
+นนทบุรี\index{นนทบุรี}
+นครราชสีมา\index{นครราชสีมา}
+เชียงใหม่\index{เชียงใหม่}
+หาดใหญ่\index{หาดใหญ่}
+\end{thai}
+
+\section{Arabic}
+\begin{Arabic}%% "Arabic", not "arabic"
+
+هذا نص عربي.
+
+دبي\index{دبي}
+أبو ظبي\index{أبو ظبي}
+الشارقة\index{الشارقة}
+تهران\index{تهران}
+مشهد\index{مشهد}
+اصفهان\index{اصفهان}
+
+\end{Arabic}
+
+\section{Hebrew}
+\begin{hebrew}
+
+
+
+זה טקסט בעברית
+
+ירושלים\index{ירושלים}
+תל אביב\index{תל אביב}
+חיפה\index{חיפה}
+ראשון לציון\index{ראשון לציון}
+אשדוד\index{אשדוד}
+
+\end{hebrew}
+
+
+\printindex
+
+\end{document}
diff --git a/indexing/upmendex/doc/samples/latex/city1.tex b/indexing/upmendex/doc/samples/latex/city1.tex
new file mode 100644
index 0000000000..075edaaacc
--- /dev/null
+++ b/indexing/upmendex/doc/samples/latex/city1.tex
@@ -0,0 +1,124 @@
+%
+% Example of upLaTeX, pxbabel, HaranoAji fonts and upmendex
+% in Latin, CJK (Chinese, Japanese, Korean) and Cyrillic
+%
+%
+% Copyright (C) 2022 TANAKA Takuji
+% You may freely use, modify and/or distribute this file.
+%
+\documentclass[a4paper]{ujarticle}
+
+\usepackage[T2A,T1]{fontenc}
+\usepackage{lmodern}
+%\usepackage{tgtermes,tgheros}
+\usepackage[japanese,korean,tchinese,schinese,english]{pxbabel}
+
+\kcatcode`¥=15% U+00:¥ (Latin-1 Supplement)
+\kcatcode`П=15% U+041F:П (Cyrillic)
+\kcatcode`’=15% U+2019:’ (General Punctuation)
+\kcatcode`€=15% U+20AC:€ (Currency Symbols)
+
+\usepackage{makeidx}
+\makeindex
+
+\parindent1em
+\begin{document}
+\section{Latin}
+This is an English text.
+
+upmendex\index{upmendex}.
+Install of upmendex\index{upmendex!Install@Install of ---}.
+Usage of upmendex\index{upmendex!Usage@Usage of ---}.
+Usage of upmendex for beginners\index{upmendex!Usage@Usage of ---!for beginners@--- for beginners}.
+Usage of upmendex for experts\index{upmendex!Usage@Usage of ---!for experts@--- for experts}.
+
+Number: 3.14159265\index{3.14159265}, 2.71828182\index{2.71828182}.
+Symbol: \$\index{\$}, €\index{€}, ¥\index{¥}.
+
+São Paulo\index{São Paulo}.
+Ciudad de México\index{Ciudad de México}.
+New York\index{New York}.
+Buenos Aires\index{Buenos Aires}.
+İstanbul\index{İstanbul}.
+Rio de Janeiro\index{Rio de Janeiro}.
+London\index{London}.
+Manila\index{Manila}.
+Paris\index{Paris}.
+Berlin\index{Berlin}.
+
+\section{CJK}
+\subsection{Japanese (Kana, Kanji)}
+これは日本語のテキストです。
+
+upmendex\index{upmendex}。
+upmendexのインストール\index{upmendex!のインストール@---のインストール}。
+upmendexの使い方\index{upmendex!のつかいかた@---の使い方}。
+upmendexの使い方入門編\index{upmendex!のつかいかた@---の使い方!にゅうもんへん@---入門編}。
+upmendexの使い方応用編\index{upmendex!のつかいかた@---の使い方!おうようへん@---応用編}。
+
+東京\index{とうきょう@東京}。
+横浜\index{よこはま@横浜}。
+大阪\index{おおさか@大阪}。
+名古屋\index{なごや@名古屋}。
+札幌\index{さっぽろ@札幌}。
+福岡\index{ふくおか@福岡}。
+川崎\index{かわさき@川崎}。
+神戸\index{こうべ@神戸}。
+京都\index{きょうと@京都}。
+さいたま\index{さいたま}。
+
+\subsection{Korean (Hangul, Hanja)}
+\begin{otherlanguage}{korean}
+이것은 한국어 텍스트입니다.
+
+서울\index{서울}.
+부산(釜山)\index{부산@부산(釜山)}.
+인천(仁川)\index{인천@인천(仁川)}.
+대구(大邱)\index{대구@대구(大邱)}.
+대전(大田)\index{대전@대전(大田)}.
+광주(光州)\index{광주@광주(光州)}.
+울산(蔚山)\index{울산@울산(蔚山)}.
+평양(平壤)\index{평양@평양(平壤)}.
+\end{otherlanguage}
+
+\subsection{Chinese (Hanzi)}
+\begin{otherlanguage}{tchinese}
+這是中文文本。
+\foreignlanguage{schinese}{这是中文文本。}
+
+北京\index{北京}。
+上海\index{上海}。
+天津\index{天津}。
+廈門\foreignlanguage{schinese}{(厦门)}\index{廈門@廈門\foreignlanguage{schinese}{(厦门)}}。
+深圳\index{深圳}。
+成都\index{成都}。
+杭州\index{杭州}。
+香港\index{香港}。
+臺北\index{臺北}。
+高雄\index{高雄}。
+桃園\foreignlanguage{schinese}{(桃园)}\index{桃園@桃園\foreignlanguage{schinese}{(桃园)}}。
+\end{otherlanguage}
+
+\section{Cyrillic}
+\fontencoding{T2A}\selectfont
+Здесь русский текст.
+
+Москва\index{Москва}.
+Санкт-Петербург\index{Санкт-Петербург}.
+Новосибирск\index{Новосибирск}.
+Київ\index{Київ}.
+Одеса\index{Одеса}.
+Харків\index{Харків}.
+София\index{София}.
+Београд\index{Београд}.
+Бишкек\index{Бишкек}.
+Скопје\index{Скопје}.
+Мінск\index{Мінск}.
+Нұр-Сұлтан\index{Нұр-Сұлтан}.
+
+\selectlanguage{english}
+\fontencoding{T1}\selectfont
+
+\printindex
+
+\end{document}
diff --git a/indexing/upmendex/doc/samples/latex/haranoaji-uptex.map b/indexing/upmendex/doc/samples/latex/haranoaji-uptex.map
new file mode 100644
index 0000000000..45a8efebf1
--- /dev/null
+++ b/indexing/upmendex/doc/samples/latex/haranoaji-uptex.map
@@ -0,0 +1,40 @@
+%
+% dvipdfmx map file for upTeX and HaranoAji fonts
+%
+% Ref.
+% https://github.com/trueroad/HaranoAjiFonts
+% https://github.com/trueroad/HaranoAjiFontsCN
+% https://github.com/trueroad/HaranoAjiFontsTW
+% https://github.com/trueroad/HaranoAjiFontsK1
+%
+% You may freely use, modify and/or distribute this file.
+%
+rml H HaranoAjiMincho-Regular.otf
+rmlv V HaranoAjiMincho-Regular.otf
+gbm H HaranoAjiGothic-Medium.otf
+gbmv V HaranoAjiGothic-Medium.otf
+
+urml UniJISup-UTF16-H HaranoAjiMincho-Regular.otf
+urmlv UniJISup-UTF16-V HaranoAjiMincho-Regular.otf
+ugbm UniJISup-UTF16-H HaranoAjiGothic-Medium.otf
+ugbmv UniJISup-UTF16-V HaranoAjiGothic-Medium.otf
+uprml-h UniJISup-UTF16-H HaranoAjiMincho-Regular.otf
+uprml-v UniJISup-UTF16-V HaranoAjiMincho-Regular.otf
+upgbm-h UniJISup-UTF16-H HaranoAjiGothic-Medium.otf
+upgbm-v UniJISup-UTF16-V HaranoAjiGothic-Medium.otf
+uprml-hq UniJIS-UCS2-H HaranoAjiMincho-Regular.otf
+upgbm-hq UniJIS-UCS2-H HaranoAjiGothic-Medium.otf
+
+uphysmjm-h UniKS-UTF16-H HaranoAjiMinchoK1-Regular.otf
+uphysmjm-v UniKS-UTF16-V HaranoAjiMinchoK1-Regular.otf
+uphygt-h UniKS-UTF16-H HaranoAjiGothicK1-Medium.otf
+uphygt-v UniKS-UTF16-V HaranoAjiGothicK1-Medium.otf
+upstsl-h UniGB-UTF16-H HaranoAjiMinchoCN-Regular.otf
+upstsl-v UniGB-UTF16-V HaranoAjiMinchoCN-Regular.otf
+upstht-h UniGB-UTF16-H HaranoAjiGothicCN-Medium.otf
+upstht-v UniGB-UTF16-V HaranoAjiGothicCN-Medium.otf
+upmsl-h UniCNS-UTF16-H HaranoAjiMinchoTW-Regular.otf
+upmsl-v UniCNS-UTF16-V HaranoAjiMinchoTW-Regular.otf
+upmhm-h UniCNS-UTF16-H HaranoAjiGothicTW-Medium.otf
+upmhm-v UniCNS-UTF16-V HaranoAjiGothicTW-Medium.otf
+
diff --git a/indexing/upmendex/doc/samples/latex/mlg0.ist b/indexing/upmendex/doc/samples/latex/mlg0.ist
new file mode 100644
index 0000000000..11e6ca4526
--- /dev/null
+++ b/indexing/upmendex/doc/samples/latex/mlg0.ist
@@ -0,0 +1,32 @@
+% -*- coding: utf-8 -*-
+
+delim_0 "\\leaders\\hbox{$\\cdot$}\\hfill \\textenglish{"
+delim_1 "\\leaders\\hbox{$\\cdot$}\\hfill \\textenglish{"
+delim_2 "\\leaders\\hbox{$\\cdot$}\\hfill \\textenglish{"
+delim_t "}"
+
+lethead_flag 1
+lethead_prefix "\n\\centerline{\\bfseries \\textenglish{---} "
+lethead_suffix " \\textenglish{---}}\\par\\nobreak"
+
+icu_locale "ja@collation=unihan"
+hanzi_head "一部;丨部;丶部;丿部;乙部;亅部;二部;亠部;人部;儿部;入部;八部;冂部;冖部;冫部;几部;凵部;刀部;力部;勹部;匕部;匚部;匸部;十部;卜部;卩部;厂部;厶部;又部;口部;囗部;土部;士部;夂部;夊部;夕部;大部;女部;子部;宀部;寸部;小部;尢部;尸部;屮部;山部;巛部;工部;己部;巾部;干部;幺部;广部;廴部;廾部;弋部;弓部;彐部;彡部;彳部;心部;戈部;戶部;手部;支部;攴部;文部;斗部;斤部;方部;无部;日部;曰部;月部;木部;欠部;止部;歹部;殳部;毋部;比部;毛部;氏部;气部;水部;火部;爪部;父部;爻部;爿部;片部;牙部;牛部;犬部;玄部;玉部;瓜部;瓦部;甘部;生部;用部;田部;疋部;疒部;癶部;白部;皮部;皿部;目部;矛部;矢部;石部;示部;禸部;禾部;穴部;立部;竹部;米部;糸部;缶部;网部;羊部;羽部;老部;而部;耒部;耳部;聿部;肉部;臣部;自部;至部;臼部;舌部;舛部;舟部;艮部;色部;艸部;虍部;虫部;血部;行部;衣部;襾部;見部;角部;言部;谷部;豆部;豕部;豸部;貝部;赤部;走部;足部;身部;車部;辛部;辰部;辵部;邑部;酉部;釆部;里部;金部;長部;門部;阜部;隶部;隹部;雨部;靑部;非部;面部;革部;韋部;韭部;音部;頁部;風部;飛部;食部;首部;香部;馬部;骨部;高部;髟部;鬥部;鬯部;鬲部;鬼部;魚部;鳥部;鹵部;鹿部;麥部;麻部;黃部;黍部;黑部;黹部;黽部;鼎部;鼓部;鼠部;鼻部;齊部;齒部;龍部;龜部;龠部"
+
+script_preamble hangul "\n\n\\begin{korean}"
+script_postamble hangul "\n\\end{korean}"
+script_preamble kana "\n\n\\begin{japanese}"
+script_postamble kana "\n\\end{japanese}"
+script_preamble hanzi "\n\n\\begin{chinese}"
+script_postamble hanzi "\n\\end{chinese}"
+script_preamble cyrillic "\n\n\\begin{russian}"
+script_postamble cyrillic "\n\\end{russian}"
+script_preamble greek "\n\n\\begin{greek}"
+script_postamble greek "\n\\end{greek}"
+script_preamble devanagari "\n\n\\begin{hindi}"
+script_postamble devanagari "\n\\end{hindi}"
+script_preamble thai "\n\n\\begin{thai}"
+script_postamble thai "\n\\end{thai}"
+script_preamble hebrew "\n\n\\begin{hebrew}"
+script_postamble hebrew "\n\\end{hebrew}"
+script_preamble arabic "\n\n\\begin{Arabic}"
+script_postamble arabic "\n\\end{Arabic}"
diff --git a/indexing/upmendex/doc/samples/latex/mlg1.ist b/indexing/upmendex/doc/samples/latex/mlg1.ist
new file mode 100644
index 0000000000..308bc88288
--- /dev/null
+++ b/indexing/upmendex/doc/samples/latex/mlg1.ist
@@ -0,0 +1,19 @@
+% -*- coding: utf-8 -*-
+
+delim_0 "\\leaders\\hbox{$\\cdot$}\\hfill "
+delim_1 "\\leaders\\hbox{$\\cdot$}\\hfill "
+delim_2 "\\leaders\\hbox{$\\cdot$}\\hfill "
+
+lethead_flag 1
+lethead_prefix "\n\\centerline{\\bfseries --- "
+lethead_suffix " ---}\\par\\nobreak"
+
+icu_locale "ja@collation=unihan"
+hanzi_head "一部;丨部;丶部;丿部;乙部;亅部;二部;亠部;人部;儿部;入部;八部;冂部;冖部;冫部;几部;凵部;刀部;力部;勹部;匕部;匚部;匸部;十部;卜部;卩部;厂部;厶部;又部;口部;囗部;土部;士部;夂部;夊部;夕部;大部;女部;子部;宀部;寸部;小部;尢部;尸部;屮部;山部;巛部;工部;己部;巾部;干部;幺部;广部;廴部;廾部;弋部;弓部;彐部;彡部;彳部;心部;戈部;戶部;手部;支部;攴部;文部;斗部;斤部;方部;无部;日部;曰部;月部;木部;欠部;止部;歹部;殳部;毋部;比部;毛部;氏部;气部;水部;火部;爪部;父部;爻部;爿部;片部;牙部;牛部;犬部;玄部;玉部;瓜部;瓦部;甘部;生部;用部;田部;疋部;疒部;癶部;白部;皮部;皿部;目部;矛部;矢部;石部;示部;禸部;禾部;穴部;立部;竹部;米部;糸部;缶部;网部;羊部;羽部;老部;而部;耒部;耳部;聿部;肉部;臣部;自部;至部;臼部;舌部;舛部;舟部;艮部;色部;艸部;虍部;虫部;血部;行部;衣部;襾部;見部;角部;言部;谷部;豆部;豕部;豸部;貝部;赤部;走部;足部;身部;車部;辛部;辰部;辵部;邑部;酉部;釆部;里部;金部;長部;門部;阜部;隶部;隹部;雨部;靑部;非部;面部;革部;韋部;韭部;音部;頁部;風部;飛部;食部;首部;香部;馬部;骨部;高部;髟部;鬥部;鬯部;鬲部;鬼部;魚部;鳥部;鹵部;鹿部;麥部;麻部;黃部;黍部;黑部;黹部;黽部;鼎部;鼓部;鼠部;鼻部;齊部;齒部;龍部;龜部;龠部"
+
+script_preamble hangul "\n\n\\begin{otherlanguage}{korean}"
+script_postamble hangul "\n\\end{otherlanguage}"
+script_preamble hanzi "\n\n\\begin{otherlanguage}{tchinese}"
+script_postamble hanzi "\n\\end{otherlanguage}"
+script_preamble cyrillic "\n\n\\fontencoding{T2A}\\selectfont"
+script_postamble cyrillic "\n\\fontencoding{T1}\\selectfont"
diff --git a/indexing/upmendex/doc/samples/multi.idx b/indexing/upmendex/doc/samples/multi.idx
index 5567532210..29753bed43 100644
--- a/indexing/upmendex/doc/samples/multi.idx
+++ b/indexing/upmendex/doc/samples/multi.idx
@@ -8,6 +8,7 @@
\indexentry{0120¹₂③❹➄➏🄈⑻⒐㉈🄋🄌}{8}
\indexentry{€$$¢¢££¥¥₩₩฿₹}{9}
\indexentry{☃☎♥⚽☺☝✈🀅🍣👻}{10}
+\indexentry{⁇⁈⁉¡¿†*§¶}{10}
\indexentry{พ่อขุนรามคำแหงมหาราช}{11}
\indexentry{गौतम सिद्धार्थ}{12}
\indexentry{محمد‎}{13}
diff --git a/indexing/upmendex/doc/samples/option/Makefile b/indexing/upmendex/doc/samples/option/Makefile
index f9157d609c..bb25080589 100644
--- a/indexing/upmendex/doc/samples/option/Makefile
+++ b/indexing/upmendex/doc/samples/option/Makefile
@@ -4,8 +4,8 @@ UPMENDEX = upmendex
# test for icu_rules
#
rules:
- for sty in rule0; do \
- $(UPMENDEX) -f attri1.idx -s mdxsty_$$sty.ist -o attri1_$$sty.ind ; \
+ for sty in 0; do \
+ $(UPMENDEX) -s mdxsty_attr_default.ist -s rule$$sty.ist -t rule0_$$sty.ilg -o rule0_$$sty.ind attri1.idx ; \
done
#
@@ -13,12 +13,12 @@ rules:
#
jp_u:
for sty in 00 01 02; do \
- $(UPMENDEX) japanese.idx -s mdxsty_j$$sty.ist -o japanese_$$sty-umdx.ind ; \
- $(UPMENDEX) japanese.idx -l -s mdxsty_j$$sty.ist -o japanese_l_$$sty-umdx.ind ; \
- $(UPMENDEX) japanese.idx -c -s mdxsty_j$$sty.ist -o japanese_c_$$sty-umdx.ind ; \
- $(UPMENDEX) japanese.idx -l -c -s mdxsty_j$$sty.ist -o japanese_lc_$$sty-umdx.ind ; \
- $(UPMENDEX) japanese.idx -r -s mdxsty_j$$sty.ist -o japanese_r_$$sty-umdx.ind ; \
- $(UPMENDEX) japanese.idx -g -s mdxsty_j$$sty.ist -o japanese_g_$$sty-umdx.ind ; \
+ $(UPMENDEX) japanese.idx -s mdxsty_j$$sty.ist -d kana.dic -t japanese_$$sty-umdx.ilg -o japanese_$$sty-umdx.ind ; \
+ $(UPMENDEX) japanese.idx -l -s mdxsty_j$$sty.ist -d kana.dic -t japanese_l_$$sty-umdx.ilg -o japanese_l_$$sty-umdx.ind ; \
+ $(UPMENDEX) japanese.idx -c -s mdxsty_j$$sty.ist -d kana.dic -t japanese_c_$$sty-umdx.ilg -o japanese_c_$$sty-umdx.ind ; \
+ $(UPMENDEX) japanese.idx -l -c -s mdxsty_j$$sty.ist -d kana.dic -t japanese_lc_$$sty-umdx.ilg -o japanese_lc_$$sty-umdx.ind ; \
+ $(UPMENDEX) japanese.idx -r -s mdxsty_j$$sty.ist -d kana.dic -t japanese_r_$$sty-umdx.ilg -o japanese_r_$$sty-umdx.ind ; \
+ $(UPMENDEX) japanese.idx -g -s mdxsty_j$$sty.ist -d kana.dic -t japanese_g_$$sty-umdx.ilg -o japanese_g_$$sty-umdx.ind ; \
done
clean:
diff --git a/indexing/upmendex/doc/samples/option/mdxsty_rule0.ist b/indexing/upmendex/doc/samples/option/mdxsty_attr_default.ist
index 451656ba59..f433563470 100644
--- a/indexing/upmendex/doc/samples/option/mdxsty_rule0.ist
+++ b/indexing/upmendex/doc/samples/option/mdxsty_attr_default.ist
@@ -9,4 +9,4 @@ lethead_prefix "\n\\centerline{\\bfseries --- "
lethead_suffix " ---}\\par\\nobreak"
priority 0
-icu_rules "&a<<<A<\u00EB<<<\xCB<Ä<<<\x{00E4}<b<<B &ア<<<あ"
+
diff --git a/indexing/upmendex/doc/samples/option/rule0.ist b/indexing/upmendex/doc/samples/option/rule0.ist
new file mode 100644
index 0000000000..4df5c21a46
--- /dev/null
+++ b/indexing/upmendex/doc/samples/option/rule0.ist
@@ -0,0 +1,3 @@
+% -*- coding: utf-8 -*-
+
+% icu_rules ""
diff --git a/indexing/upmendex/doc/upmendex-slide-ctan.pdf b/indexing/upmendex/doc/upmendex-slide-ctan.pdf
new file mode 100644
index 0000000000..f36cbf7015
--- /dev/null
+++ b/indexing/upmendex/doc/upmendex-slide-ctan.pdf
Binary files differ
diff --git a/indexing/upmendex/doc/upmendex.ja.txt b/indexing/upmendex/doc/upmendex.ja.txt
index 22b2ab6230..578e71fe29 100644
--- a/indexing/upmendex/doc/upmendex.ja.txt
+++ b/indexing/upmendex/doc/upmendex.ja.txt
@@ -331,10 +331,12 @@ upmendex - 索引整形ツール
character_order <文字列>
"SNLGCJKHDTah"
- 記号、英字、日本語の優先順位。'S'は記号、'N'は数字、'L'はラテン文字、
- 'G'はギリシャ文字、'C'はキリル文字、'J'は日本語(かな)、'K'はハングル、
+ 記号、ラテン文字、日本語(かな)などスクリプトの優先順位。'S'は記号、'N'は数字、
+ 'L'はラテン文字、'G'はギリシャ文字、'C'はキリル文字、'J'は日本語(かな)、'K'はハングル、
'H'は漢字、'D'はデーヴァナーガリー、'T'はタイ文字、
'a'はアラビア文字、'h'はヘブライ文字を表す。
+ '@'はこのパラメータで明示されていないスクリプトを表し
+ icu_rulesまたは icu_locale で設定された優先順位に従う。
symbol_flag=1のとき、索引項目の分類として「数字」は「記号」に含めるので、
'S'と'N'は必ず隣り合わせること(数字と数字以外の記号の順序入れ替えは可能)。
(upmendex専用)
diff --git a/indexing/upmendex/man/upmendex.1 b/indexing/upmendex/man/upmendex.1
index 21c89844fa..ebf379e4f1 100644
--- a/indexing/upmendex/man/upmendex.1
+++ b/indexing/upmendex/man/upmendex.1
@@ -512,7 +512,7 @@ If \'1\' and \'2\', Katakana and Hiragana is used, respectively.
.RS
Flag of sorting method for index words composed of
Japanese and non-Japanese (ex. Latin scripts).
-If non zero, one space (U+20) is inserted between
+If non zero, one space (U+0020) is inserted between
Japanese sequence and non-Japanese sequence in sorting procedure.
(Extended by (up)mendex)
.RE
@@ -522,8 +522,10 @@ Japanese sequence and non-Japanese sequence in sorting procedure.
.RS
Order of scripts and symbols.
\'S\', \'N\', \'L\', \'G\', \'C\', \'J\', \'K\', \'H\', \'D\', \'T\', \'a\' and \'h\'
-respectively denotes symbol, number, Latin, Greek, Cyrillic, Japanese Kana, Korean Hangul, Hanja,
+respectively denotes symbol, number, Latin, Greek, Cyrillic, Japanese Kana, Korean Hangul, Hanzi,
Devanagari, Thai, Arabic and Hebrew script.
+\'@\' denotes scripts which are not explicitly designated and the order are
+configured by icu_rules or icu_locale.
Please make sure that \'S\' and \'N\' are next to each other if symbol_flag=1,
since numbers are classified as a part of symbol.
(Extended by upmendex)
diff --git a/indexing/upmendex/man/upmendex.man1.pdf b/indexing/upmendex/man/upmendex.man1.pdf
index 195a8190ef..30b8aea333 100644
--- a/indexing/upmendex/man/upmendex.man1.pdf
+++ b/indexing/upmendex/man/upmendex.man1.pdf
Binary files differ
diff --git a/indexing/upmendex/source/ChangeLog b/indexing/upmendex/source/ChangeLog
index b2b3cd2f1e..ac5a331ffb 100644
--- a/indexing/upmendex/source/ChangeLog
+++ b/indexing/upmendex/source/ChangeLog
@@ -1,3 +1,93 @@
+2023-02-26 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * hanzi.h: Update references.
+
+2022-11-20 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * version 1.07 Stable version.
+ * configure.ac: Bump version.
+ * sort.c, fwrite.c, {,ex}hanzi.h:
+ Improve detection of hanzi header to support
+ Chinese polyphone (多音字).
+
+2022-11-16 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * version 1.06 Stable version.
+ * configure.ac: Bump version.
+ * sort.c: Add parameter option "@" to character_order,
+ which denotes character order is defined by icu_rules.
+ * fwrite.c: Better treatment for Marathi KSSA, JNYA.
+ * upmendex.ja.txt: Update document.
+
+2022-10-08 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * version 1.05 Stable version.
+ * configure.ac: Bump version.
+ * main.c, sort.c, convert.c, fwrite.c, {,ex}kana.h, mendex.h:
+ Support U+1B001 Hiragana Letter Archaic Ye.
+ * fwrite.c:
+ Strict check for dotted/dotless I/i in Turkish.
+ Strict check for Thai reordering.
+
+2022-09-17 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * fwrite.c:
+ Fix a bug on Thai words started with vowel followed by consonant.
+
+2022-09-11 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * version 1.03 Stable version.
+ * configure.ac: Bump version.
+ * main.c, sort.c, convert.c, fwrite.c, kana.h:
+ Support U+1B11F..1B122 Hiragana/Katakana Letter Archaic Wu, Yi, Ye.
+
+2022-09-04 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * version 1.02 Stable version.
+ * configure.ac: Bump version.
+ * fwrite.c:
+ Support U+1B132, U+1B155 Hiragana/Katakana Letter Small Ko.
+ They have not been supported yet but will be supported in ICU collator.
+ Support U+0626 Arabic Letter Yeh with Hamza Above for Uyghur.
+ Support U+0149 Latin Small Letter N Preceded By Apostrophe for Afrikaans.
+ Support digraphs dd, ff, ng, ph, rh for Welsh.
+ * sort.c: Add Latin Extended-F and -G.
+ Add CJK Unified Ideograph Extension H, Cyrillic Extended-D,
+ Devanagari Extended-A and Arabic Extended-C in Unicode 15.0.
+
+2022-09-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * main.c:
+ Moved calls of KP_entry_filetype() after checking options.
+ This change prevents unwanted looking for texmf.cnf.
+ https://github.com/texjporg/tex-jp-build/pull/144
+
+2022-05-22 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * version 1.01 Stable version.
+ * configure.ac: Bump version.
+ * fread.c:
+ Modify heuristic detection of page number types
+ for ambiguous ones between roman number and alphabet.
+ * tests/upmendex.test, tests/pprec[567].ist,
+ tests/romalp[ABCD].idx, tests/romalpA-[56].ind,
+ tests/romalp[BD]-[567].ind, tests/romalpC-5.ind, Makefile.am:
+ Update tests.
+
+2022-03-21 Karl Berry <karl@tug.org>
+
+ * TL'22 release.
+
+2022-03-07 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * fwrite.c: output to file instead of accumulating too much.
+ https://github.com/texjporg/tex-jp-build/issues/137
+
+2022-01-18 Karl Berry <karl@freefriends.org>
+
+ * COPYRIGHT,
+ * main.c: 2022.
+
2021-11-20 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
* version 1.00 Stable version.
diff --git a/indexing/upmendex/source/Makefile.am b/indexing/upmendex/source/Makefile.am
index 451f0df1eb..3dd956d530 100644
--- a/indexing/upmendex/source/Makefile.am
+++ b/indexing/upmendex/source/Makefile.am
@@ -1,4 +1,4 @@
-## $Id: Makefile.am 60856 2021-10-24 05:44:35Z takuji $
+## $Id$
## Makefile.am for the TeX Live subdirectory texk/upmendex/
##
## Copyright 2015-2019 Karl Berry <tex-live@tug.org>
@@ -57,7 +57,20 @@ EXTRA_DIST += $(TESTS)
## tests/upmendex.test
EXTRA_DIST += tests/foo.idx tests/foo.ind \
- tests/uni.idx tests/uni.dict tests/uni.ist tests/uni.ind \
- tests/pprec0.ist tests/pprec1.ist tests/pprec2.ist tests/pprecA.idx \
- tests/pprecA-0.ind tests/pprecA-1.ind tests/pprecA-2.ind
-DISTCLEANFILES = foo.* uni.* pprec*.*
+ tests/uni.idx tests/uni.dict tests/uni.ist \
+ tests/uni1.ist tests/uni2.ist tests/uni.ind \
+ tests/range.idx tests/range2.ist tests/range2.ist tests/range3.ist \
+ tests/range1.ind tests/range2.ind tests/range3.ind \
+ tests/pprec0.ist tests/pprec1.ist tests/pprec2.ist tests/pprec3.ist \
+ tests/pprec4.ist tests/pprec5.ist tests/pprec6.ist tests/pprec7.ist \
+ tests/pprecA.idx tests/pprecA-0.ind tests/pprecA-1.ind tests/pprecA-2.ind \
+ tests/pprecB.idx tests/pprecB-0.ind tests/pprecB-3.ind tests/pprecB-4.ind \
+ tests/romalpA.idx tests/romalpA-5.ind tests/romalpA-6.ind \
+ tests/romalpB.idx tests/romalpB-5.ind tests/romalpB-6.ind tests/romalpB-7.ind \
+ tests/romalpC.idx tests/romalpC-5.ind \
+ tests/romalpD.idx tests/romalpD-5.ind tests/romalpD-6.ind tests/romalpD-7.ind
+DISTCLEANFILES = foo.* uni.* range*.* pprec*.* romalp*.*
+EXTRA_DIST += tests/locale1.ist tests/locale2.ist tests/rule.idx \
+ tests/attr1.ist tests/attr1.ind tests/locale1.ind tests/locale2-rule.ind \
+ tests/rule1.ist tests/rule2.ist tests/rule3.ist tests/rule4.ist rule.ind
+DISTCLEANFILES += locale*.* attr*.* rule*.*
diff --git a/indexing/upmendex/source/Makefile.in b/indexing/upmendex/source/Makefile.in
index 4ecaadee97..2b18866de8 100644
--- a/indexing/upmendex/source/Makefile.in
+++ b/indexing/upmendex/source/Makefile.in
@@ -609,11 +609,26 @@ nodist_EXTRA_upmendex_SOURCES = dummy.cxx
LDADD = $(KPATHSEA_LIBS) $(ICU_LIBS) $(PTHREAD_LIB) $(ICU_LIBS_EXTRA)
EXTRA_DIST = COPYRIGHT indexsty upmendex.ja.txt $(TESTS) tests/foo.idx \
tests/foo.ind tests/uni.idx tests/uni.dict tests/uni.ist \
- tests/uni.ind tests/pprec0.ist tests/pprec1.ist \
- tests/pprec2.ist tests/pprecA.idx tests/pprecA-0.ind \
- tests/pprecA-1.ind tests/pprecA-2.ind
+ tests/uni1.ist tests/uni2.ist tests/uni.ind tests/range.idx \
+ tests/range2.ist tests/range2.ist tests/range3.ist \
+ tests/range1.ind tests/range2.ind tests/range3.ind \
+ tests/pprec0.ist tests/pprec1.ist tests/pprec2.ist \
+ tests/pprec3.ist tests/pprec4.ist tests/pprec5.ist \
+ tests/pprec6.ist tests/pprec7.ist tests/pprecA.idx \
+ tests/pprecA-0.ind tests/pprecA-1.ind tests/pprecA-2.ind \
+ tests/pprecB.idx tests/pprecB-0.ind tests/pprecB-3.ind \
+ tests/pprecB-4.ind tests/romalpA.idx tests/romalpA-5.ind \
+ tests/romalpA-6.ind tests/romalpB.idx tests/romalpB-5.ind \
+ tests/romalpB-6.ind tests/romalpB-7.ind tests/romalpC.idx \
+ tests/romalpC-5.ind tests/romalpD.idx tests/romalpD-5.ind \
+ tests/romalpD-6.ind tests/romalpD-7.ind tests/locale1.ist \
+ tests/locale2.ist tests/rule.idx tests/attr1.ist \
+ tests/attr1.ind tests/locale1.ind tests/locale2-rule.ind \
+ tests/rule1.ist tests/rule2.ist tests/rule3.ist \
+ tests/rule4.ist rule.ind
TESTS = tests/upmendex.test
-DISTCLEANFILES = foo.* uni.* pprec*.*
+DISTCLEANFILES = foo.* uni.* range*.* pprec*.* romalp*.* locale*.* \
+ attr*.* rule*.*
all: c-auto.h
$(MAKE) $(AM_MAKEFLAGS) all-am
diff --git a/indexing/upmendex/source/configure b/indexing/upmendex/source/configure
index e5aa682d08..834f962202 100755
--- a/indexing/upmendex/source/configure
+++ b/indexing/upmendex/source/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for upmendex (TeX Live) 1.00.
+# Generated by GNU Autoconf 2.71 for upmendex (TeX Live) 1.07.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -626,8 +626,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='upmendex (TeX Live)'
PACKAGE_TARNAME='upmendex--tex-live-'
-PACKAGE_VERSION='1.00'
-PACKAGE_STRING='upmendex (TeX Live) 1.00'
+PACKAGE_VERSION='1.07'
+PACKAGE_STRING='upmendex (TeX Live) 1.07'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1390,7 +1390,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures upmendex (TeX Live) 1.00 to adapt to many kinds of systems.
+\`configure' configures upmendex (TeX Live) 1.07 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1462,7 +1462,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of upmendex (TeX Live) 1.00:";;
+ short | recursive ) echo "Configuration of upmendex (TeX Live) 1.07:";;
esac
cat <<\_ACEOF
@@ -1587,7 +1587,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-upmendex (TeX Live) configure 1.00
+upmendex (TeX Live) configure 1.07
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2268,7 +2268,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by upmendex (TeX Live) $as_me 1.00, which was
+It was created by upmendex (TeX Live) $as_me 1.07, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -8806,7 +8806,7 @@ fi
# Define the identity of the package.
PACKAGE='upmendex--tex-live-'
- VERSION='1.00'
+ VERSION='1.07'
# Some tools Automake needs.
@@ -14509,7 +14509,7 @@ ac_config_headers="$ac_config_headers c-auto.h:c-auto.in"
-printf "%s\n" "#define TL_VERSION \"TeX Live 2022/dev\"" >>confdefs.h
+printf "%s\n" "#define TL_VERSION \"TeX Live 2023\"" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if C99 variadic macros are supported" >&5
@@ -18942,7 +18942,7 @@ Usage: $0 [OPTIONS]
Report bugs to <bug-libtool@gnu.org>."
lt_cl_version="\
-upmendex (TeX Live) config.lt 1.00
+upmendex (TeX Live) config.lt 1.07
configured by $0, generated by GNU Autoconf 2.71.
Copyright (C) 2011 Free Software Foundation, Inc.
@@ -21114,7 +21114,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by upmendex (TeX Live) $as_me 1.00, which was
+This file was extended by upmendex (TeX Live) $as_me 1.07, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21182,7 +21182,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-upmendex (TeX Live) config.status 1.00
+upmendex (TeX Live) config.status 1.07
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/indexing/upmendex/source/configure.ac b/indexing/upmendex/source/configure.ac
index b21873a1ed..9b5c1511b6 100644
--- a/indexing/upmendex/source/configure.ac
+++ b/indexing/upmendex/source/configure.ac
@@ -1,4 +1,4 @@
-dnl $Id: configure.ac 61096 2021-11-20 09:29:33Z takuji $
+dnl $Id$
dnl Process this file with autoconf to produce a configure script.
dnl
dnl Copyright 2015-2021 Karl Berry <tex-live@tug.org>
@@ -8,7 +8,7 @@ dnl This file is free software; the copyright holder
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
-AC_INIT([upmendex (TeX Live)],[1.00])
+AC_INIT([upmendex (TeX Live)],[1.07])
AC_PREREQ([2.71])
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_AUX_DIR([../../build-aux])
diff --git a/indexing/upmendex/source/convert.c b/indexing/upmendex/source/convert.c
index a7cae61038..2760059a06 100644
--- a/indexing/upmendex/source/convert.c
+++ b/indexing/upmendex/source/convert.c
@@ -43,7 +43,17 @@ void initkanatable(void)
aiueo=u_xstrdup(AIUEO);
for (i=0;;i++) {
if (aiueo[i]==0) break;
- aiueo[i]+=KATATOP-HIRATOP; /* hiragana -> katakana */
+ if (aiueo[i]==0xd82c) {
+ i++;
+ if (aiueo[i]==0xdd1f) aiueo[i]+=3; /* U+1B11F -> U+1B122 */
+ if (aiueo[i]==0xdd21) {
+ UChar ch[] = {0xd82c, 0xdc01, 0x0};
+ if (is_jpn_kana(ch))
+ AIUEO[i]=0xdc01; /* U+1B121 -> U+1B001 */
+ }
+ }
+ else
+ aiueo[i]+=KATATOP-HIRATOP; /* hiragana -> katakana */
}
u_strcpy(atama,akasatana);
diff --git a/indexing/upmendex/source/exhanzi.h b/indexing/upmendex/source/exhanzi.h
index 3f8f6ded84..c61ee2bfff 100644
--- a/indexing/upmendex/source/exhanzi.h
+++ b/indexing/upmendex/source/exhanzi.h
@@ -8,6 +8,7 @@
extern struct hanzi_index hz_index[];
extern int hz_index_len;
+extern int hanzi_mode;
extern struct hanzi_index HZ_RADICAL[];
extern struct hanzi_index HZ_STROKE[];
diff --git a/indexing/upmendex/source/exkana.h b/indexing/upmendex/source/exkana.h
index 9e4ba1d197..799c429540 100644
--- a/indexing/upmendex/source/exkana.h
+++ b/indexing/upmendex/source/exkana.h
@@ -4,6 +4,7 @@ extern UChar AIUEO[];
extern UChar *aiueo;
extern UChar kanatable[];
extern UChar extkanatable[];
+extern int kana_ye_mode;
#define SPACE 0x3000 /* 全角スペース */
#define ALPHATOP 0xff01 /* ! */
diff --git a/indexing/upmendex/source/fread.c b/indexing/upmendex/source/fread.c
index 66d3e0b144..ab3dd4c077 100644
--- a/indexing/upmendex/source/fread.c
+++ b/indexing/upmendex/source/fread.c
@@ -268,7 +268,7 @@ LOOP:
nest++;
else if (buff[j]==arg_close) {
if (nest==0) {
- table[k]='\0';
+ table[k]='\0';
ind[0].p[0].page=xstrdup(table);
break;
}
@@ -495,6 +495,7 @@ static void chkpageattr(struct page *p)
{
int i,j,cc=0,cnt,pplen,pclen;
char buff[16],*pcpos,*page0;
+ static char pattr_prev[PAGE_COMPOSIT_DEPTH] = {0};
pplen=strlen(page_precedence);
pclen=strlen(page_compositor);
@@ -538,23 +539,25 @@ ATTRLOOP:
switch(page_precedence[pattr[cc]]) {
case 'r':
if (strchr("ivxlcdm",*page0)==NULL ||
- (strchr("lcdm",*page0) && strchr(page_precedence,'a') && strlen(buff)==1 && pcpos)) {
+ (strchr("lcdm",*page0) && strchr(page_precedence,'a') && strlen(buff)==1 &&
+ pattr_prev[cc]!='r')) {
/* heuristic detection as alphabet since L=50, C=100, D=100, M=1000 are quite large */
if (pattr[cc]<pplen-1)
pattr[cc]++;
else pattr[cc]=0;
- for (j=cc+1;j<3;j++) pattr[j]=0;
+ for (j=cc+1;j<PAGE_COMPOSIT_DEPTH;j++) pattr[j]=0;
goto ATTRLOOP;
}
break;
case 'R':
if (strchr("IVXLCDM",*page0)==NULL ||
- (strchr("LCDM",*page0) && strchr(page_precedence,'A') && strlen(buff)==1 && pcpos)) {
+ (strchr("LCDM",*page0) && strchr(page_precedence,'A') && strlen(buff)==1 &&
+ pattr_prev[cc]!='R')) {
/* heuristic detection as alphabet since L=50, C=100, D=100, M=1000 are quite large */
if (pattr[cc]<pplen-1)
pattr[cc]++;
else pattr[cc]=0;
- for (j=cc+1;j<3;j++) pattr[j]=0;
+ for (j=cc+1;j<PAGE_COMPOSIT_DEPTH;j++) pattr[j]=0;
goto ATTRLOOP;
}
break;
@@ -563,29 +566,31 @@ ATTRLOOP:
if (pattr[cc]<pplen-1)
pattr[cc]++;
else pattr[cc]=0;
- for (j=cc+1;j<3;j++) pattr[j]=0;
+ for (j=cc+1;j<PAGE_COMPOSIT_DEPTH;j++) pattr[j]=0;
goto ATTRLOOP;
}
break;
case 'a':
if (*page0<'a' || *page0>'z' || strlen(buff)>1 ||
- (strchr("ivx",*page0) && strchr(page_precedence,'r') && !pcpos)) {
+ (strchr("ivx",*page0) && strchr(page_precedence,'r') &&
+ pattr_prev[cc]!='a')) {
/* heuristic detection as roman number since I=1, V=5, X=10 are quite small */
if (pattr[cc]<pplen-1)
pattr[cc]++;
else pattr[cc]=0;
- for (j=cc+1;j<3;j++) pattr[j]=0;
+ for (j=cc+1;j<PAGE_COMPOSIT_DEPTH;j++) pattr[j]=0;
goto ATTRLOOP;
}
break;
case 'A':
if (*page0<'A' || *page0>'Z' || strlen(buff)>1 ||
- (strchr("IVX",*page0) && strchr(page_precedence,'R') && !pcpos)) {
+ (strchr("IVX",*page0) && strchr(page_precedence,'R') &&
+ pattr_prev[cc]!='A')) {
/* heuristic detection as roman number since I=1, V=5, X=10 are quite small */
if (pattr[cc]<pplen-1)
pattr[cc]++;
else pattr[cc]=0;
- for (j=cc+1;j<3;j++) pattr[j]=0;
+ for (j=cc+1;j<PAGE_COMPOSIT_DEPTH;j++) pattr[j]=0;
goto ATTRLOOP;
}
break;
@@ -594,6 +599,7 @@ ATTRLOOP:
page_precedence[pattr[cc]], page_precedence);
exit(253);
}
+ pattr_prev[cc] = page_precedence[pattr[cc]];
}
}
p->attr[cc]=pattr[cc];
diff --git a/indexing/upmendex/source/fwrite.c b/indexing/upmendex/source/fwrite.c
index 9ce382589e..f33230df8e 100644
--- a/indexing/upmendex/source/fwrite.c
+++ b/indexing/upmendex/source/fwrite.c
@@ -12,11 +12,11 @@
int line_length=0;
static void printpage(struct index *ind, FILE *fp, int num, char *lbuff);
-static int range_check(struct index ind, int count, char *lbuff);
-static void linecheck(char *lbuff, char *tmpbuff, int force);
+static int range_check(struct index ind, int count, char *lbuff, FILE *fp);
+static void linecheck(char *lbuff, char *tmpbuff, FILE *fp, int force);
static void crcheck(char *lbuff, FILE *fp);
static void index_normalize(UChar *istr, UChar *ini, int *chset);
-static int initial_cmp_char(UChar *ini, UChar ch);
+static int initial_cmp_char(UChar *ini, UChar *ch);
static int init_hanzi_header(void);
static const UNormalizer2 *unormalizer_NFD, *unormalizer_NFKD;
static int turkish_i;
@@ -86,7 +86,7 @@ static void fprint_uchar(FILE *fp, const UChar *a, const int mode, const int len
olen=u_strToUpper(istr,INITIALLENGTH,istr,wclen,"",&perr);
} else if (mode==M_TO_LOWER) {
perr=U_ZERO_ERROR;
- olen=u_strToLower(istr,INITIALLENGTH,istr,wclen, istr[0]==0x130&&turkish_i?"tr":"", &perr);
+ olen=u_strToLower(istr,INITIALLENGTH,istr,wclen, istr[0]==0x130&&turkish_i==2?"tr":"", &perr);
} else if (mode==M_TO_TITLE) {
perr=U_ZERO_ERROR;
olen=u_strToTitle(istr,INITIALLENGTH,istr,wclen,NULL,"",&perr);
@@ -166,9 +166,9 @@ static int pnumconv2(struct page *p)
/* write ind file */
void indwrite(char *filename, struct index *ind, int pagenum)
{
- int i,j,hpoint=0,tpoint=0,ipoint=0,jpoint=0,block_open=0;
+ int i,j,k,hpoint=0,tpoint=0,ipoint=0,jpoint=0,block_open=0;
char lbuff[BUFFERLEN],obuff[BUFFERLEN];
- UChar datama[256],initial[INITIALLENGTH],initial_prev[INITIALLENGTH];
+ UChar initial[INITIALLENGTH],initial_prev[INITIALLENGTH];
int chset,chset_prev;
FILE *fp=NULL;
UErrorCode perr;
@@ -182,7 +182,6 @@ void indwrite(char *filename, struct index *ind, int pagenum)
#endif
}
- convert(atama,datama);
fputs(preamble,fp);
if (fpage>0) {
@@ -228,31 +227,35 @@ void indwrite(char *filename, struct index *ind, int pagenum)
else if (chset==CH_KANA) {
if (lethead_flag!=0) {
fputs(lethead_prefix,fp);
- for (j=hpoint;j<(u_strlen(datama));j++) {
- if (initial_cmp_char(initial,datama[j])) {
- fprint_uchar(fp,&atama[j-1],M_NONE,1);
+ for (j=hpoint;j<(u_strlen(kana_head));) {
+ if (initial_cmp_char(initial,&kana_head[j])) {
+ k=j; U16_BACK_1(kana_head, 0, k);
+ fprint_uchar(fp,&kana_head[k],M_NONE,1);
hpoint=j;
break;
}
+ U16_FWD_1(kana_head, j, -1);
}
- if (j==(u_strlen(datama))) {
- fprint_uchar(fp,&atama[j-1],M_NONE,1);
+ if (j==(u_strlen(kana_head))) {
+ k=j; U16_BACK_1(kana_head, 0, k);
+ fprint_uchar(fp,&kana_head[k],M_NONE,1);
}
fputs(lethead_suffix,fp);
}
widechar_to_multibyte(obuff,BUFFERLEN,ind[i].idx[0]);
SPRINTF(lbuff,"%s%s",item_0,obuff);
- for (hpoint=0;hpoint<(u_strlen(datama));hpoint++) {
- if (initial_cmp_char(initial,datama[hpoint])) {
+ for (hpoint=0;hpoint<(u_strlen(kana_head));) {
+ if (initial_cmp_char(initial,&kana_head[hpoint])) {
break;
}
+ U16_FWD_1(kana_head, hpoint, -1);
}
}
else if (chset==CH_HANGUL) {
if (lethead_flag!=0) {
fputs(lethead_prefix,fp);
for (j=tpoint;j<(u_strlen(hangul_head));j++) {
- if (initial_cmp_char(initial,hangul_head[j])) {
+ if (initial_cmp_char(initial,&hangul_head[j])) {
fprint_uchar(fp,&hangul_head[j-1],M_NONE,1);
tpoint=j;
break;
@@ -266,7 +269,7 @@ void indwrite(char *filename, struct index *ind, int pagenum)
widechar_to_multibyte(obuff,BUFFERLEN,ind[i].idx[0]);
SPRINTF(lbuff,"%s%s",item_0,obuff);
for (tpoint=0;tpoint<(u_strlen(hangul_head));tpoint++) {
- if (initial_cmp_char(initial,hangul_head[tpoint])) {
+ if (initial_cmp_char(initial,&hangul_head[tpoint])) {
break;
}
}
@@ -274,31 +277,35 @@ void indwrite(char *filename, struct index *ind, int pagenum)
else if (chset==CH_DEVANAGARI) {
if (lethead_flag!=0) {
fputs(lethead_prefix,fp);
- for (j=jpoint;j<(u_strlen(devanagari_head));j++) {
- if (initial_cmp_char(initial,devanagari_head[j])) {
- fprint_uchar(fp,&devanagari_head[j-1],M_NONE,1);
+ for (j=jpoint;j<(u_strlen(devanagari_head));) {
+ if (initial_cmp_char(initial,&devanagari_head[j])) {
+ k=j; U16_BACK_1(devanagari_head, 0, k);
+ fprint_uchar(fp,&devanagari_head[k],M_NONE,1);
jpoint=j;
break;
}
+ U16_FWD_1(devanagari_head, j, -1);
}
if (j==(u_strlen(devanagari_head))) {
- fprint_uchar(fp,&devanagari_head[j-1],M_NONE,1);
+ k=j; U16_BACK_1(devanagari_head, 0, k);
+ fprint_uchar(fp,&devanagari_head[k],M_NONE,1);
}
fputs(lethead_suffix,fp);
}
widechar_to_multibyte(obuff,BUFFERLEN,ind[i].idx[0]);
SPRINTF(lbuff,"%s%s",item_0,obuff);
- for (jpoint=0;jpoint<(u_strlen(devanagari_head));jpoint++) {
- if (initial_cmp_char(initial,devanagari_head[jpoint])) {
+ for (jpoint=0;jpoint<(u_strlen(devanagari_head));) {
+ if (initial_cmp_char(initial,&devanagari_head[jpoint])) {
break;
}
+ U16_FWD_1(devanagari_head, jpoint, -1);
}
}
else if (chset==CH_THAI) {
if (lethead_flag!=0) {
fputs(lethead_prefix,fp);
for (j=ipoint;j<(u_strlen(thai_head));j++) {
- if (initial_cmp_char(initial,thai_head[j])) {
+ if (initial_cmp_char(initial,&thai_head[j])) {
fprint_uchar(fp,&thai_head[j-1],M_NONE,1);
ipoint=j;
break;
@@ -312,7 +319,7 @@ void indwrite(char *filename, struct index *ind, int pagenum)
widechar_to_multibyte(obuff,BUFFERLEN,ind[i].idx[0]);
SPRINTF(lbuff,"%s%s",item_0,obuff);
for (ipoint=0;ipoint<(u_strlen(thai_head));ipoint++) {
- if (initial_cmp_char(initial,thai_head[ipoint])) {
+ if (initial_cmp_char(initial,&thai_head[ipoint])) {
break;
}
}
@@ -379,24 +386,26 @@ void indwrite(char *filename, struct index *ind, int pagenum)
}
}
else if (chset==CH_KANA) {
- for (j=hpoint;j<(u_strlen(datama));j++) {
- if (initial_cmp_char(initial,datama[j])) {
+ for (j=hpoint;j<(u_strlen(kana_head));) {
+ if (initial_cmp_char(initial,&kana_head[j])) {
break;
}
+ U16_FWD_1(kana_head, j, -1);
}
if ((j!=hpoint)||(j==0)) {
hpoint=j;
fputs(group_skip,fp);
if (lethead_flag!=0) {
+ k=j; U16_BACK_1(kana_head, 0, k);
fputs(lethead_prefix,fp);
- fprint_uchar(fp,&atama[j-1],M_NONE,1);
+ fprint_uchar(fp,&kana_head[k],M_NONE,1);
fputs(lethead_suffix,fp);
}
}
}
else if (chset==CH_HANGUL) {
for (j=tpoint;j<(u_strlen(hangul_head));j++) {
- if (initial_cmp_char(initial,hangul_head[j])) {
+ if (initial_cmp_char(initial,&hangul_head[j])) {
break;
}
}
@@ -411,24 +420,26 @@ void indwrite(char *filename, struct index *ind, int pagenum)
}
}
else if (chset==CH_DEVANAGARI) {
- for (j=jpoint;j<(u_strlen(devanagari_head));j++) {
- if (initial_cmp_char(initial,devanagari_head[j])) {
+ for (j=jpoint;j<(u_strlen(devanagari_head));) {
+ if (initial_cmp_char(initial,&devanagari_head[j])) {
break;
}
+ U16_FWD_1(devanagari_head, j, -1);
}
if ((j!=jpoint)||(j==0)) {
jpoint=j;
fputs(group_skip,fp);
if (lethead_flag!=0) {
+ k=j; U16_BACK_1(devanagari_head, 0, k);
fputs(lethead_prefix,fp);
- fprint_uchar(fp,&devanagari_head[j-1],M_NONE,1);
+ fprint_uchar(fp,&devanagari_head[k],M_NONE,1);
fputs(lethead_suffix,fp);
}
}
}
else if (chset==CH_THAI) {
for (j=ipoint;j<(u_strlen(thai_head));j++) {
- if (initial_cmp_char(initial,thai_head[j])) {
+ if (initial_cmp_char(initial,&thai_head[j])) {
break;
}
}
@@ -541,7 +552,7 @@ static void printpage(struct index *ind, FILE *fp, int num, char *lbuff)
line_length=strlen(lbuff);
for(j=0;j<ind[num].num;j++) {
- cc=range_check(ind[num],j,lbuff);
+ cc=range_check(ind[num],j,lbuff,fp);
if (cc>j) {
int epage = pnumconv2(&ind[num].p[cc]);
int bpage = pnumconv2(&ind[num].p[j]);
@@ -576,14 +587,14 @@ static void printpage(struct index *ind, FILE *fp, int num, char *lbuff)
if (strlen(ind[num].p[j].enc)>0) {
SAPPENDF(tmpbuff,"%s",encap_suffix);
}
- linecheck(lbuff,tmpbuff, FALSE);
+ linecheck(lbuff,tmpbuff,fp, FALSE);
j=cc;
if (j==ind[num].num) {
goto PRINT;
}
else {
SAPPENDF(tmpbuff,"%s",delim_n);
- linecheck(lbuff,tmpbuff, TRUE);
+ linecheck(lbuff,tmpbuff,fp, TRUE);
}
}
else if (strlen(ind[num].p[j].enc)>0) {
@@ -605,19 +616,19 @@ static void printpage(struct index *ind, FILE *fp, int num, char *lbuff)
SAPPENDF(tmpbuff,"%s",ind[num].p[j].page);
SAPPENDF(tmpbuff,"%s",encap_suffix);
SAPPENDF(tmpbuff,"%s",delim_n);
- linecheck(lbuff,tmpbuff, FALSE);
+ linecheck(lbuff,tmpbuff,fp, FALSE);
}
else {
SAPPENDF(tmpbuff,"%s",ind[num].p[j].page);
SAPPENDF(tmpbuff,"%s",delim_n);
- linecheck(lbuff,tmpbuff, FALSE);
+ linecheck(lbuff,tmpbuff,fp, FALSE);
}
}
else {
/* no encap */
SAPPENDF(tmpbuff,"%s",ind[num].p[j].page);
SAPPENDF(tmpbuff,"%s",delim_n);
- linecheck(lbuff,tmpbuff, FALSE);
+ linecheck(lbuff,tmpbuff,fp, FALSE);
}
}
@@ -651,7 +662,7 @@ static void printpage(struct index *ind, FILE *fp, int num, char *lbuff)
else {
SAPPENDF(tmpbuff,"%s",ind[num].p[j].page);
}
- linecheck(lbuff,tmpbuff, FALSE);
+ linecheck(lbuff,tmpbuff,fp, FALSE);
PRINT:
fputs(lbuff,fp);
@@ -659,7 +670,7 @@ PRINT:
lbuff[0]='\0';
}
-static int range_check(struct index ind, int count, char *lbuff)
+static int range_check(struct index ind, int count, char *lbuff, FILE *fp)
{
int i,j,k,cc1,cc2,start,force=0;
char tmpbuff[BUFFERLEN],errbuff[BUFFERLEN],obuff[BUFFERLEN];
@@ -697,7 +708,7 @@ static int range_check(struct index ind, int count, char *lbuff)
if (strlen(ind.p[j].enc)>0) {
SPRINTF(tmpbuff,"%s%s%s%s%s%s",encap_prefix,ind.p[j].enc,encap_infix
,ind.p[j].page,encap_suffix,delim_n);
- linecheck(lbuff,tmpbuff, FALSE);
+ linecheck(lbuff,tmpbuff,fp, FALSE);
}
}
}
@@ -736,10 +747,12 @@ static int range_check(struct index ind, int count, char *lbuff)
}
/* check line length */
-static void linecheck(char *lbuff, char *tmpbuff, int force)
+static void linecheck(char *lbuff, char *tmpbuff, FILE *fp, int force)
{
if (line_length+strlen(tmpbuff)>line_max && !force) {
SAPPENDF(lbuff,"\n");
+ fputs(lbuff,fp);
+ lbuff[0]='\0';
SAPPENDF(lbuff,"%s",indent_space);
SAPPENDF(lbuff,"%s",tmpbuff);
line_length=indent_length+strlen(tmpbuff);
@@ -771,13 +784,13 @@ static void crcheck(char *lbuff, FILE *fp)
static void index_normalize(UChar *istr, UChar *ini, int *chset)
{
- int k, len, hi, lo, mi;
+ int k, hi, lo, mi;
UChar ch,src[2],dest[8],strX[4],strY[4],strZ[4];
UChar32 c32;
UErrorCode perr;
UCollationResult order;
UCollationStrength strgth;
- static int hanzi_mode=0, i_y_mode=0;
+ static int i_y_mode=0;
ch=istr[0];
*chset=charset(istr);
@@ -810,6 +823,15 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
ini[0]=0x307B; break; /* ほ */
case 0x1B000: /* 𛀀 */
ini[0]=0x3048; break; /* え */
+ case 0x1B11F: case 0x1B122: /* Archaic WU 𛄟 𛄢 */
+ ini[0]=0xD82C; ini[1]=0xDD1F; ini[2]=L'\0';
+ break;
+ case 0x1B120: /* Archaic YI 𛄠 */
+ ini[0]=0xD82C; ini[1]=0xDD20; ini[2]=L'\0'; break;
+ case 0x1B121: case 0x1B001: /* Archaic YE 𛄡 𛀁 */
+ ini[0]=0xD82C; ini[1]=0xDD21; ini[2]=L'\0'; break;
+ case 0x1B132: case 0x1B155:
+ ini[0]=0x3053; break; /* こ */
case 0x1B150: case 0x1B164:
ini[0]=0x3090; break; /* ゐ */
case 0x1B151: case 0x1B165:
@@ -885,27 +907,58 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
ini[0]=ch;
return;
}
- else if ((len=is_hanzi(istr))>0) {
+ else if (is_hanzi(istr)) {
if (hanzi_mode==0) hanzi_mode=init_hanzi_header();
if (hanzi_mode==HANZI_UNKNOWN) {
u_strcpy(ini, hz_index[0].idx);
return;
}
- strX[0] =istr[0];
- if (len==2){ strX[1] =istr[1]; }
- strX[len]=L'\0';
lo=0; hi=hz_index_len;
while (lo<hi) {
mi = (lo+hi)/2;
u_strcpy(strZ,hz_index[mi].threshold);
- order = ucol_strcoll(icu_collator, strZ, -1, strX, -1);
+ order = ucol_strcoll(icu_collator, strZ, -1, istr, -1);
if (order!=UCOL_GREATER) lo=mi+1;
else hi=mi;
}
u_strcpy(ini,hz_index[lo-1].idx);
return;
}
- else if (is_devanagari(&ch)||is_thai(&ch)||is_arabic(&ch)||is_hebrew(&ch)) {
+ else if (is_thai(&ch)) {
+ if ((istr[0]>=0x0E40 && istr[0]<=0x0E44) && (istr[1]>=0x0E01 && istr[1]<=0x0E2E)) {
+ /* Thai reordering :: Vowel followed by Consonant */
+ /* https://unicode-org.github.io/icu/userguide/collation/concepts.html#thailao-reordering */
+ ini[0]=istr[1];
+ } else {
+ ini[0]=istr[0];
+ }
+ return;
+ }
+ else if (is_devanagari(istr)==2) {
+ ini[0]=istr[0]; ini[1]=istr[1]; ini[2]=L'\0';
+ return;
+ }
+ else if (is_devanagari(&ch)||is_arabic(&ch)||is_hebrew(&ch)) {
+ if (ch==0x626) { /* Arabic Letter Yeh with Hamza Above for Uyghur */
+ strY[0]=0x626; strY[1]=L'\0'; /* Yeh with Hamza Above */
+ strZ[0]=0x628; strZ[1]=L'\0'; /* Beh */
+ order = ucol_strcoll(icu_collator, strZ, -1, strY, -1);
+ if (order==UCOL_LESS) {
+ ini[0]=strY[0]; ini[1]=strY[1];
+ return;
+ }
+ }
+ /* Devanagary, Marathi */
+ if ( (istr[0]==0x915 && istr[1]==0x94D && istr[2]== 0x937) /* KSSA क्ष */
+ || (istr[0]==0x91C && istr[1]==0x94D && istr[2]== 0x91E)) { /* JNYA ज्ञ */
+ strY[0]=istr[0]; strY[1]=istr[1]; strY[2]=istr[2]; strY[3]=L'\0';
+ strZ[0]=0x939; strZ[1]=L'\0'; /* HA ह */
+ order = ucol_strcoll(icu_collator, strZ, -1, strY, -1);
+ if (order==UCOL_LESS) {
+ u_strcpy(ini,strY);
+ return;
+ }
+ }
if (ch==0x929||ch==0x931||ch==0x934||(0x958<=ch&&ch<=0x95F) /* Devanagary */
||(0x622<=ch&&ch<=0x626)||ch==0x6C0||ch==0x6C2||ch==0x6D3 /* Arabic */
||(0xFB50<=ch&&ch<=0xFDFF) /* Arabic Presentation Forms-A */
@@ -930,12 +983,17 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
}
if (ch==0x049||ch==0x069||ch==0x130||ch==0x131||ch==0x0CE||ch==0x0EE) {
/* check dotted/dotless İ,I,i,ı and Î,î for Turkish */
- strX[0] = 0x131; strX[1] = 0x5A; strX[2] = 0x00; /* ıZ */
- strZ[0] = 0x069; strZ[1] = 0x00; /* i */
- order = ucol_strcoll(icu_collator, strZ, -1, strX, -1);
- if (order==UCOL_GREATER) {
+ if (turkish_i==0) {
+ strgth = ucol_getStrength(icu_collator);
+ ucol_setStrength(icu_collator, UCOL_SECONDARY);
+ strX[0] = 0x131; strX[1] = 0x069; strX[2] = 0x00; /* ıi */
+ strZ[0] = 0x049; strZ[1] = 0x130; strZ[2] = 0x00; /* Iİ */
+ order = ucol_strcoll(icu_collator, strZ, -1, strX, -1);
+ turkish_i = (order==UCOL_EQUAL) ? 2 : 1;
+ ucol_setStrength(icu_collator, strgth);
+ }
+ if (turkish_i==2) {
ini[0] = (ch==0x049||ch==0x131) ? 0x131 : 0x130; /* ı or İ */
- turkish_i=1;
return;
}
}
@@ -947,7 +1005,7 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
strX[0] = 0x059; strX[1] = 0x00; /* Y */
strZ[0] = 0x049; strZ[1] = 0x00; /* I */
order = ucol_strcoll(icu_collator, strZ, -1, strX, -1);
- if (order==UCOL_EQUAL) i_y_mode=2; else i_y_mode=1;
+ i_y_mode = (order==UCOL_EQUAL) ? 2 : 1;
ucol_setStrength(icu_collator, strgth);
}
if (i_y_mode==2) {
@@ -956,7 +1014,7 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
}
}
if (ch==0x0C6||ch==0x0E6||ch==0x152||ch==0x153||ch==0x132||ch==0x133
- ||ch==0x0DF||ch==0x1E9E||ch==0x13F||ch==0x140||ch==0x490||ch==0x491) {
+ ||ch==0x0DF||ch==0x1E9E||ch==0x13F||ch==0x140||ch==0x149||ch==0x490||ch==0x491) {
strX[0] = u_toupper(ch); strX[1] = 0x00; /* ex. "Æ" "Œ" */
switch (ch) {
case 0x0C6: case 0x0E6: /* Æ æ */
@@ -972,6 +1030,8 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
strZ[0] = 0x49; break; /* I */
case 0x13F: case 0x140: /* Ŀ ŀ */
strZ[0] = 0x4C; break; /* L */
+ case 0x149: /* ʼn */
+ strZ[0] = 0x4E; break; /* N */
case 0x490: case 0x491: /* Ґ ґ */
strZ[0] = 0x413; break; /* Г */
}
@@ -1039,9 +1099,22 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
}
}
}
+ /* NG for Welsh */
+ if (strX[0]==0x4E && strX[1]==0x47) { /* NG */
+ strY[0]=0x4E; strY[1]=L'\0'; /* N */
+ strZ[0]=0x4E; strZ[1]=0x47; strZ[2]=0x5A; strZ[3]=L'\0'; /* NGZ */
+ order = ucol_strcoll(icu_collator, strZ, -1, strY, -1);
+ if (order==UCOL_LESS) {
+ ini[0]=strX[0]; ini[1]=strX[1]; /* NG */
+ ini[2]=L'\0';
+ return;
+ }
+ }
/* other digraphs */
- if(((strX[0]==0x43 || strX[0]==0x44 || strX[0]==0x53 || strX[0]==0x54 || strX[0]==0x58 || strX[0]==0x5A)
- && strX[1]==0x48) || /* CH DH SH TH XH ZH */
+ if(((strX[0]==0x43 || strX[0]==0x44 || strX[0]==0x50 || strX[0]==0x52 || strX[0]==0x53 || strX[0]==0x54 ||
+ strX[0]==0x58 || strX[0]==0x5A) && strX[1]==0x48) || /* CH DH PH RH SH TH XH ZH */
+ (strX[0]==0x44 && strX[1]==0x44) || /* DD */
+ (strX[0]==0x46 && strX[1]==0x46) || /* FF */
(strX[0]==0x4C && strX[1]==0x4C) || /* LL */
((strX[0]==0x47 || strX[0]==0x4C || strX[0]==0x4E) && strX[1]==0x4A) || /* GJ LJ NJ */
(strX[0]==0x52 && strX[1]==0x52) || /* RR */
@@ -1063,12 +1136,14 @@ static void index_normalize(UChar *istr, UChar *ini, int *chset)
return;
}
-static int initial_cmp_char(UChar *ini, UChar ch)
+static int initial_cmp_char(UChar *ini, UChar *ch)
{
- UChar initial_tmp[INITIALLENGTH],istr[2];
- int chset;
- istr[0]=ch;
- istr[1]=L'\0';
+ UChar initial_tmp[INITIALLENGTH],istr[3];
+ int chset, l;
+ l = is_surrogate_pair(ch) ? 2 : 1;
+ istr[0]=ch[0];
+ if (l==2) istr[1]=ch[1];
+ istr[l]=L'\0';
index_normalize(istr, initial_tmp, &chset);
return (ss_comp(ini, initial_tmp)<0);
diff --git a/indexing/upmendex/source/hanzi.h b/indexing/upmendex/source/hanzi.h
index e16cb79313..f1ec18fee5 100644
--- a/indexing/upmendex/source/hanzi.h
+++ b/indexing/upmendex/source/hanzi.h
@@ -2,6 +2,7 @@
struct hanzi_index hz_index[HZIDXSIZE];
int hz_index_len;
+int hanzi_mode=0;
/*
U+FDD0 (Noncharacter) is used.
@@ -226,8 +227,9 @@ struct hanzi_index HZ_RADICAL[]={
/*
Reference:
- cldr - Revision 12061: /trunk/common/collation
- http://unicode.org/repos/cldr/trunk/common/collation/zh.xml
+ CLDR 42
+ https://cldr.unicode.org/index/downloads/cldr-42
+ https://github.com/unicode-org/cldr/blob/release-42/common/collation/zh.xml
<collation type='stroke' alt='short'>
U+FDD0 (Noncharacter) is used.
*/
@@ -277,8 +279,9 @@ struct hanzi_index HZ_STROKE[]={
/*
Reference:
- cldr - Revision 12061: /trunk/common/collation
- http://unicode.org/repos/cldr/trunk/common/collation/zh.xml
+ CLDR 42
+ https://cldr.unicode.org/index/downloads/cldr-42
+ https://github.com/unicode-org/cldr/blob/release-42/common/collation/zh.xml
<collation type='pinyin'>
U+FDD0 (Noncharacter) is used.
*/
@@ -311,8 +314,9 @@ struct hanzi_index HZ_PINYIN[]={
/*
Reference:
- cldr - Revision 12061: /trunk/common/collation
- http://unicode.org/repos/cldr/trunk/common/collation/zh.xml
+ CLDR 42
+ https://cldr.unicode.org/index/downloads/cldr-42
+ https://github.com/unicode-org/cldr/blob/release-42/common/collation/zh.xml
<collation type='zhuyin'>
U+FDD0 (Noncharacter) is used.
*/
diff --git a/indexing/upmendex/source/kana.h b/indexing/upmendex/source/kana.h
index 41307f2cb4..2f8aa6ccd6 100644
--- a/indexing/upmendex/source/kana.h
+++ b/indexing/upmendex/source/kana.h
@@ -65,7 +65,9 @@ UChar AIUEO[]={
0x3081, /* め */
0x3082, /* も */
0x3084, /* や */
+ 0xd82c, 0xdd20, /* U+1B120 Katakana Letter Archaic YI 𛄠 */
0x3086, /* ゆ */
+ 0xd82c, 0xdd21, /* U+1B121 Katakana Letter Archaic YE 𛄡 */
0x3088, /* よ */
0x3089, /* ら */
0x308a, /* り */
@@ -74,6 +76,7 @@ UChar AIUEO[]={
0x308d, /* ろ */
0x308f, /* わ */
0x3090, /* ゐ */
+ 0xd82c, 0xdd1f, /* U+1B11F Hiragana Letter Archaic WU 𛄟 */
0x3091, /* ゑ */
0x3092, /* を */
0x3093, /* ん */
@@ -192,6 +195,7 @@ UChar extkanatable[]={
0x308d, /* ろ */
0
};
+int kana_ye_mode=0;
UChar GANADA[]={
diff --git a/indexing/upmendex/source/main.c b/indexing/upmendex/source/main.c
index 3bce9d1f3d..ed8b95d836 100644
--- a/indexing/upmendex/source/main.c
+++ b/indexing/upmendex/source/main.c
@@ -45,15 +45,6 @@ int main(int argc, char **argv)
}
#endif
- kp_ist.var_name = "INDEXSTYLE";
- kp_ist.path = DEFAULT_INDEXSTYLES; /* default path. */
- kp_ist.suffix = "ist";
- KP_entry_filetype(&kp_ist);
- kp_dict.var_name = "INDEXDICTIONARY";
- kp_dict.path = DEFAULT_INDEXDICTS; /* default path */
- kp_dict.suffix = "dict";
- KP_entry_filetype(&kp_dict);
-
/* check options */
for (i=1,j=k=0;i<argc && j<256;i++) {
@@ -160,7 +151,7 @@ int main(int argc, char **argv)
default:
fprintf(stderr,"upmendex - index processor, %s (%s).\n",VERSION, TL_VERSION);
- fprintf(stderr," Copyright 2009 ASCII MEDIA WORKS, 2015-2021 TANAKA Takuji\n");
+ fprintf(stderr," Copyright 2009 ASCII MEDIA WORKS, 2015-2023 TANAKA Takuji\n");
fprintf(stderr," using ICU version %s\n",icu_version);
fprintf(stderr,"usage:\n");
fprintf(stderr,"%% upmendex [-ilqrcgf] [-s sty] [-d dic] [-o ind] [-t log] [-p no] [--] [idx0 idx1 ...]\n");
@@ -191,6 +182,15 @@ int main(int argc, char **argv)
}
idxcount=j+fsti;
+ kp_ist.var_name = "INDEXSTYLE";
+ kp_ist.path = DEFAULT_INDEXSTYLES; /* default path. */
+ kp_ist.suffix = "ist";
+ KP_entry_filetype(&kp_ist);
+ kp_dict.var_name = "INDEXDICTIONARY";
+ kp_dict.path = DEFAULT_INDEXDICTS; /* default path */
+ kp_dict.suffix = "dict";
+ KP_entry_filetype(&kp_dict);
+
/* check option errors */
if (idxcount==0) idxcount=fsti=1;
@@ -241,10 +241,6 @@ int main(int argc, char **argv)
VERSION, icu_version, TL_VERSION);
}
-/* init kanatable */
-
- initkanatable();
-
/* init hangul,devanagari,thai *_head table */
u_strcpy(hangul_head,GANADA);
u_strcpy(devanagari_head,DVNG_HEAD);
@@ -255,6 +251,11 @@ int main(int argc, char **argv)
}
set_icu_attributes();
+ init_icu_collator();
+
+/* init kanatable */
+
+ initkanatable();
/* read dictionary */
@@ -283,7 +284,7 @@ int main(int argc, char **argv)
default:
break;
}
- if (u_strlen(kana_head)>0) u_strcpy(atama,kana_head);
+ if (u_strlen(kana_head)==0) u_strcpy(kana_head,atama);
/* read idx file */
diff --git a/indexing/upmendex/source/mendex.h b/indexing/upmendex/source/mendex.h
index 091862d61e..d4bad85e8c 100644
--- a/indexing/upmendex/source/mendex.h
+++ b/indexing/upmendex/source/mendex.h
@@ -47,6 +47,7 @@ int dicread(const char *filename);
int lastpage(const char *filename);
/* sort.c */
+void init_icu_collator();
void wsort(struct index *ind, int num);
void pagesort(struct index *ind, int num);
int is_latin(UChar *c);
diff --git a/indexing/upmendex/source/sort.c b/indexing/upmendex/source/sort.c
index bcecd765cf..6ba8818156 100644
--- a/indexing/upmendex/source/sort.c
+++ b/indexing/upmendex/source/sort.c
@@ -3,6 +3,7 @@
#include "exkana.h"
#include "exvar.h"
+#include "exhanzi.h"
#define RULEBUFSIZE 29210+STYBUFSIZE
/*
@@ -28,15 +29,65 @@ static int ordering(UChar *c);
static int get_charset_juncture(UChar *str);
static int unescape(const unsigned char *src, UChar *dist);
-/* sort index */
-void wsort(struct index *ind, int num)
+/* init ICU collator */
+void init_icu_collator()
{
- int i,order;
UErrorCode status;
UParseError parse_error;
UChar rules[RULEBUFSIZE] = {'\0'};
+ int i;
int32_t len;
+ status = U_ZERO_ERROR;
+ if (strlen(icu_rules)>0) {
+ if (strcmp(icu_locale,"root")!=0) {
+ icu_collator = ucol_open(icu_locale, &status);
+ if (U_FAILURE(status)) {
+ verb_printf(efp, "\n[ICU] Collator creation failed.: %s\n", u_errorName(status));
+ exit(254);
+ }
+ len = ucol_getRulesEx(icu_collator, UCOL_TAILORING_ONLY, rules, RULEBUFSIZE);
+ if (u_strlen(rules)<len) {
+ verb_printf(efp, "\n[ICU] Failed to extract collation rules by locale (%s). Need buffer size %d.\n",
+ icu_locale, len);
+ exit(254);
+ }
+ ucol_close(icu_collator);
+ }
+ unescape((unsigned char *)icu_rules, rules);
+ status = U_ZERO_ERROR;
+ icu_collator = ucol_openRules(rules, -1, UCOL_OFF, UCOL_TERTIARY, &parse_error, &status);
+ } else
+ icu_collator = ucol_open(icu_locale, &status);
+ if (U_FAILURE(status)) {
+ verb_printf(efp, "\n[ICU] Collator creation failed.: %s\n", u_errorName(status));
+ exit(254);
+ }
+ if (status == U_USING_DEFAULT_WARNING) {
+ warn_printf(efp, "\nWarning: [ICU] U_USING_DEFAULT_WARNING for locale %s\n",
+ icu_locale);
+ }
+ if (status == U_USING_FALLBACK_WARNING) {
+ warn_printf(efp, "\nWarning: [ICU] U_USING_FALLBACK_WARNING for locale %s\n",
+ icu_locale);
+ }
+ for (i=0;i<UCOL_ATTRIBUTE_COUNT;i++) {
+ if (icu_attributes[i]!=UCOL_DEFAULT) {
+ status = U_ZERO_ERROR;
+ ucol_setAttribute(icu_collator, i, icu_attributes[i], &status);
+ }
+ if (U_FAILURE(status)) {
+ warn_printf(efp, "\nWarning: [ICU] Failed to set attribute (%d): %s\n",
+ i, u_errorName(status));
+ }
+ }
+}
+
+/* sort index */
+void wsort(struct index *ind, int num)
+{
+ int i,order;
+
for (order=1,i=0;;i++) {
switch (character_order[i]) {
case '\0':
@@ -91,6 +142,10 @@ void wsort(struct index *ind, int num)
hbrw=order++;
break;
+ case '@':
+ sym=nmbr=ltn=kana=hngl=hnz=cyr=grk=dvng=thai=arab=hbrw=order++;
+ break;
+
default:
verb_printf(efp,"\nWarning: Illegal input for character_order (%c).",character_order[i]);
break;
@@ -112,49 +167,6 @@ BREAK:
if (arab==0) arab=order++;
if (hbrw==0) hbrw=order++;
- status = U_ZERO_ERROR;
- if (strlen(icu_rules)>0) {
- if (strcmp(icu_locale,"root")!=0) {
- icu_collator = ucol_open(icu_locale, &status);
- if (U_FAILURE(status)) {
- verb_printf(efp, "\n[ICU] Collator creation failed.: %s\n", u_errorName(status));
- exit(254);
- }
- len = ucol_getRulesEx(icu_collator, UCOL_TAILORING_ONLY, rules, RULEBUFSIZE);
- if (u_strlen(rules)<len) {
- verb_printf(efp, "\n[ICU] Failed to extract collation rules by locale (%s). Need buffer size %d.\n",
- icu_locale, len);
- exit(254);
- }
- ucol_close(icu_collator);
- }
- unescape((unsigned char *)icu_rules, rules);
- status = U_ZERO_ERROR;
- icu_collator = ucol_openRules(rules, -1, UCOL_OFF, UCOL_TERTIARY, &parse_error, &status);
- } else
- icu_collator = ucol_open(icu_locale, &status);
- if (U_FAILURE(status)) {
- verb_printf(efp, "\n[ICU] Collator creation failed.: %s\n", u_errorName(status));
- exit(254);
- }
- if (status == U_USING_DEFAULT_WARNING) {
- warn_printf(efp, "\nWarning: [ICU] U_USING_DEFAULT_WARNING for locale %s\n",
- icu_locale);
- }
- if (status == U_USING_FALLBACK_WARNING) {
- warn_printf(efp, "\nWarning: [ICU] U_USING_FALLBACK_WARNING for locale %s\n",
- icu_locale);
- }
- for (i=0;i<UCOL_ATTRIBUTE_COUNT;i++) {
- if (icu_attributes[i]!=UCOL_DEFAULT) {
- status = U_ZERO_ERROR;
- ucol_setAttribute(icu_collator, i, icu_attributes[i], &status);
- }
- if (U_FAILURE(status)) {
- warn_printf(efp, "\nWarning: [ICU] Failed to set attribute (%d): %s\n",
- i, u_errorName(status));
- }
- }
qsort(ind,num,sizeof(struct index),wcomp);
}
@@ -415,8 +427,6 @@ static int unescape(const unsigned char *src, UChar *dest)
int is_latin(UChar *c)
{
- UChar32 c32;
-
if (((*c>=L'A')&&(*c<=L'Z'))||((*c>=L'a')&&(*c<=L'z'))) return 1;
else if ((*c==0x00AA)||(*c==0x00BA)) return 1; /* Latin-1 Supplement */
else if ((*c>=0x00C0)&&(*c<=0x00D6)) return 1;
@@ -436,6 +446,7 @@ int is_latin(UChar *c)
&&(*c<=0x24E9)) return 1; /* CIRCLED LATIN SMALL LETTER */
if (is_surrogate_pair(c)) {
+ UChar32 c32;
c32=U16_GET_SUPPLEMENTARY(*c,*(c+1));
if ((c32>=0x10780) && (c32<=0x107BF)) return 2; /* Latin Extended-F */
else if ((c32>=0x1DF00) && (c32<=0x1DFFF)) return 2; /* Latin Extended-G */
@@ -471,8 +482,6 @@ int is_numeric(UChar *c)
int is_jpn_kana(UChar *c)
{
- UChar32 c32;
-
if (*c==0x30A0) return 0; /* KATAKANA-HIRAGANA DOUBLE HYPHEN */
else if (*c==0x30FB) return 0; /* KATAKANA MIDDLE DOT */
else if ((*c>=0x3040)&&(*c<=0x30FF)) return 1; /* Hiragana, Katakana */
@@ -482,14 +491,34 @@ int is_jpn_kana(UChar *c)
else if ((*c>=0x3300)&&(*c<=0x3357)) return 1; /* Squared Katakana words */
if (is_surrogate_pair(c)) {
+ UChar32 c32;
c32=U16_GET_SUPPLEMENTARY(*c,*(c+1));
if ((c32>=0x1B130) && (c32<=0x1B16F)) return 2; /* Small Kana Extensions */
else if ((c32==0x1B000)) return 2; /* KATAKANA LETTER ARCHAIC E */
+ else if ((c32>=0x1B11F) /* HIRAGANA LETTER ARCHAIC WU */
+ && (c32<=0x1B122)) return 2; /* KATAKANA LETTER ARCHAIC WU */
else if ((c32==0x1F200)) return 2; /* SQUARE HIRAGANA HOKA */
+ else if (c32==0x1B001) {
+ /* check whether U+1B001 is HIRAGANA LETTER ARCHAIC YE or not.
+ It may be HENTAIGANA LETTER E-1 */
+ if (kana_ye_mode==0) {
+ UCollationResult order;
+ UCollationStrength strgth;
+ UChar strX[4],strZ[4];
+ strgth = ucol_getStrength(icu_collator);
+ ucol_setStrength(icu_collator, UCOL_PRIMARY);
+ strX[0] = 0xD82C; strX[1] = 0xDC01; strX[2] = L'\0'; /* U+1B001 */
+ strZ[0] = 0xD82C; strZ[1] = 0xDD21; strZ[2] = L'\0'; /* U+1B121 */
+ order = ucol_strcoll(icu_collator, strZ, -1, strX, -1);
+ kana_ye_mode = (order==UCOL_EQUAL) ? 2 : 1;
+ ucol_setStrength(icu_collator, strgth);
+ }
+ if (kana_ye_mode==2) return 2;
+ }
}
return 0;
- /* ICU 65 does not seem to support
- "Kana Supplement" and "Kana Extended-A" yet. (2020/02/16) */
+ /* ICU 71.1 does not seem to support
+ most of "Kana Supplement" and "Kana Extended-A" yet. (2022/09/11) */
}
int is_kor_hngl(UChar *c)
@@ -507,8 +536,6 @@ int is_kor_hngl(UChar *c)
int is_hanzi(UChar *c)
{
- UChar32 c32;
-
if ((*c>=0x2E80) /* CJK Radicals Supplement */
&&(*c<=0x2FDF)) return 1; /* Kangxi Radicals */
else if ((*c>=0x31C0)&&(*c<=0x31EF)) return 1; /* CJK Strokes */
@@ -518,10 +545,17 @@ int is_hanzi(UChar *c)
else if ((*c>=0xF900)&&(*c<=0xFAFF)) return 1; /* CJK Compatibility Ideographs */
if (is_surrogate_pair(c)) {
+ UChar32 c32;
c32=U16_GET_SUPPLEMENTARY(*c,*(c+1));
if ((c32>=0x20000) && /* CJK Unified Ideographs Extension B,C,D,E,F */
/* CJK Compatibility Ideographs Supplement */
- (c32<=0x3134F)) return 2; /* CJK Unified Ideographs Extension G */
+ (c32<=0x323AF)) return 2; /* CJK Unified Ideographs Extension G,H */
+ }
+ if (*c==0xFDD0) { /* Noncharacter */
+ if (hanzi_mode==HANZI_PINYIN &&
+ *(c+1)>=L'A' && *(c+1)<=L'Z' ) return -1; /* Pinyin Index */
+ if (hanzi_mode==HANZI_ZHUYIN &&
+ *(c+1)>=0x3105 && *(c+1)<=0x3129) return -1; /* Zhuyin Index */
}
return 0;
}
@@ -541,7 +575,13 @@ int is_cyrillic(UChar *c)
else if ((*c>=0x1C80)&&(*c<=0x1C8F)) return 1; /* Cyrillic Extended-C */
else if ((*c>=0x2DE0)&&(*c<=0x2DFF)) return 1; /* Cyrillic Extended-A */
else if ((*c>=0xA640)&&(*c<=0xA69F)) return 1; /* Cyrillic Extended-B */
- else return 0;
+
+ if (is_surrogate_pair(c)) {
+ UChar32 c32;
+ c32=U16_GET_SUPPLEMENTARY(*c,*(c+1));
+ if ((c32>=0x1E030) && (c32<=0x1E08F)) return 2; /* Cyrillic Extended-D */
+ }
+ return 0;
}
int is_greek(UChar *c)
@@ -558,7 +598,13 @@ int is_devanagari(UChar *c)
&&(*c<=0x096F)) return 0; /* Devanagari Digit */
else if ((*c>=0x0900)&&(*c<=0x097F)) return 1; /* Devanagari */
else if ((*c>=0xA8E0)&&(*c<=0xA8FF)) return 1; /* Devanagari Extended */
- else return 0;
+
+ if (is_surrogate_pair(c)) {
+ UChar32 c32;
+ c32=U16_GET_SUPPLEMENTARY(*c,*(c+1));
+ if ((c32>=0x11B00) && (c32<=0x11B5F)) return 2; /* Devanagari Extended-A */
+ }
+ return 0;
}
int is_thai(UChar *c)
@@ -600,7 +646,13 @@ int is_arabic(UChar *c)
&&(*c<=0x08FF)) return 1; /* Arabic Extended-A */
else if ((*c>=0xFB50)&&(*c<=0xFDFF)) return 1; /* Arabic Presentation Forms-A */
else if ((*c>=0xFE70)&&(*c<=0xFEFF)) return 1; /* Arabic Presentation Forms-B */
- else return 0;
+
+ if (is_surrogate_pair(c)) {
+ UChar32 c32;
+ c32=U16_GET_SUPPLEMENTARY(*c,*(c+1));
+ if ((c32>=0x10EC0) && (c32<=0x10EFF)) return 2; /* Arabic Extended-C */
+ }
+ return 0;
}
int is_hebrew(UChar *c)
diff --git a/indexing/upmendex/source/tests/pprec5.ist b/indexing/upmendex/source/tests/pprec5.ist
new file mode 100644
index 0000000000..400d70c786
--- /dev/null
+++ b/indexing/upmendex/source/tests/pprec5.ist
@@ -0,0 +1,3 @@
+% page_precedence "rnaRA"
+
+line_max 299
diff --git a/indexing/upmendex/source/tests/pprec6.ist b/indexing/upmendex/source/tests/pprec6.ist
new file mode 100644
index 0000000000..5463ac25a4
--- /dev/null
+++ b/indexing/upmendex/source/tests/pprec6.ist
@@ -0,0 +1,3 @@
+page_precedence "rnR"
+
+line_max 299
diff --git a/indexing/upmendex/source/tests/pprec7.ist b/indexing/upmendex/source/tests/pprec7.ist
new file mode 100644
index 0000000000..f600c5b230
--- /dev/null
+++ b/indexing/upmendex/source/tests/pprec7.ist
@@ -0,0 +1,3 @@
+page_precedence "naA"
+
+line_max 299
diff --git a/indexing/upmendex/source/tests/romalpA-5.ind b/indexing/upmendex/source/tests/romalpA-5.ind
new file mode 100644
index 0000000000..fd0b0ec449
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpA-5.ind
@@ -0,0 +1,5 @@
+\begin{theindex}
+
+ \item foo, I-13, I-15--I-17, II-10, II-20, II-30
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpA-6.ind b/indexing/upmendex/source/tests/romalpA-6.ind
new file mode 100644
index 0000000000..fd0b0ec449
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpA-6.ind
@@ -0,0 +1,5 @@
+\begin{theindex}
+
+ \item foo, I-13, I-15--I-17, II-10, II-20, II-30
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpA.idx b/indexing/upmendex/source/tests/romalpA.idx
new file mode 100644
index 0000000000..03b0646678
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpA.idx
@@ -0,0 +1,7 @@
+\indexentry{foo}{I-13}
+\indexentry{foo}{I-15}
+\indexentry{foo}{I-16}
+\indexentry{foo}{I-17}
+\indexentry{foo}{II-10}
+\indexentry{foo}{II-20}
+\indexentry{foo}{II-30}
diff --git a/indexing/upmendex/source/tests/romalpB-5.ind b/indexing/upmendex/source/tests/romalpB-5.ind
new file mode 100644
index 0000000000..de3d9903bb
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpB-5.ind
@@ -0,0 +1,14 @@
+\begin{theindex}
+
+ \item bar, I-i-10-C-c, I-i-20-C-c, I-v-10-C-c, I-v-20-C-c, I-x-10-C-c, I-x-20-C-c, I-l-10-C-c, I-l-20-C-c, I-c-10-C-c, I-c-20-C-c, I-d-10-C-c, I-d-20-C-c, I-m-10-C-c, I-m-20-C-c
+ \item baz, I-i-10-C-c, I-i-10-D-c, I-i-10-I-c, I-i-10-L-c, I-i-10-M-c, I-i-10-V-c, I-i-10-X-c, I-i-20-C-c, I-i-20-D-c, I-i-20-I-c, I-i-20-L-c, I-i-20-M-c, I-i-20-V-c, I-i-20-X-c
+
+ \indexspace
+
+ \item foo, I-i-10-C-c, I-i-20-C-c, V-i-10-C-c, V-i-20-C-c, X-i-10-C-c, X-i-20-C-c, L-i-10-C-c, L-i-20-C-c, C-i-10-C-c, C-i-20-C-c, D-i-10-C-c, D-i-20-C-c, M-i-10-C-c, M-i-20-C-c
+
+ \indexspace
+
+ \item qux, I-i-10-C-c, I-i-10-C-d, I-i-10-C-i, I-i-10-C-l, I-i-10-C-m, I-i-10-C-v, I-i-10-C-x, I-i-20-C-c, I-i-20-C-d, I-i-20-C-i, I-i-20-C-l, I-i-20-C-m, I-i-20-C-v, I-i-20-C-x
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpB-6.ind b/indexing/upmendex/source/tests/romalpB-6.ind
new file mode 100644
index 0000000000..b5d7d040b5
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpB-6.ind
@@ -0,0 +1,14 @@
+\begin{theindex}
+
+ \item bar, I-i-10-C-c, I-i-20-C-c, I-v-10-C-c, I-v-20-C-c, I-x-10-C-c, I-x-20-C-c, I-l-10-C-c, I-l-20-C-c, I-c-10-C-c, I-c-20-C-c, I-d-10-C-c, I-d-20-C-c, I-m-10-C-c, I-m-20-C-c
+ \item baz, I-i-10-I-c, I-i-10-V-c, I-i-10-X-c, I-i-10-L-c, I-i-10-C-c, I-i-10-D-c, I-i-10-M-c, I-i-20-I-c, I-i-20-V-c, I-i-20-X-c, I-i-20-L-c, I-i-20-C-c, I-i-20-D-c, I-i-20-M-c
+
+ \indexspace
+
+ \item foo, I-i-10-C-c, I-i-20-C-c, V-i-10-C-c, V-i-20-C-c, X-i-10-C-c, X-i-20-C-c, L-i-10-C-c, L-i-20-C-c, C-i-10-C-c, C-i-20-C-c, D-i-10-C-c, D-i-20-C-c, M-i-10-C-c, M-i-20-C-c
+
+ \indexspace
+
+ \item qux, I-i-10-C-i, I-i-10-C-v, I-i-10-C-x, I-i-10-C-l, I-i-10-C-c, I-i-10-C-d, I-i-10-C-m, I-i-20-C-i, I-i-20-C-v, I-i-20-C-x, I-i-20-C-l, I-i-20-C-c, I-i-20-C-d, I-i-20-C-m
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpB-7.ind b/indexing/upmendex/source/tests/romalpB-7.ind
new file mode 100644
index 0000000000..f65c311dfe
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpB-7.ind
@@ -0,0 +1,14 @@
+\begin{theindex}
+
+ \item bar, I-c-10-C-c, I-c-20-C-c, I-d-10-C-c, I-d-20-C-c, I-i-10-C-c, I-i-20-C-c, I-l-10-C-c, I-l-20-C-c, I-m-10-C-c, I-m-20-C-c, I-v-10-C-c, I-v-20-C-c, I-x-10-C-c, I-x-20-C-c
+ \item baz, I-i-10-C-c, I-i-10-D-c, I-i-10-I-c, I-i-10-L-c, I-i-10-M-c, I-i-10-V-c, I-i-10-X-c, I-i-20-C-c, I-i-20-D-c, I-i-20-I-c, I-i-20-L-c, I-i-20-M-c, I-i-20-V-c, I-i-20-X-c
+
+ \indexspace
+
+ \item foo, C-i-10-C-c, C-i-20-C-c, D-i-10-C-c, D-i-20-C-c, I-i-10-C-c, I-i-20-C-c, L-i-10-C-c, L-i-20-C-c, M-i-10-C-c, M-i-20-C-c, V-i-10-C-c, V-i-20-C-c, X-i-10-C-c, X-i-20-C-c
+
+ \indexspace
+
+ \item qux, I-i-10-C-c, I-i-10-C-d, I-i-10-C-i, I-i-10-C-l, I-i-10-C-m, I-i-10-C-v, I-i-10-C-x, I-i-20-C-c, I-i-20-C-d, I-i-20-C-i, I-i-20-C-l, I-i-20-C-m, I-i-20-C-v, I-i-20-C-x
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpB.idx b/indexing/upmendex/source/tests/romalpB.idx
new file mode 100644
index 0000000000..a56460db3b
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpB.idx
@@ -0,0 +1,60 @@
+\indexentry{foo}{I-i-10-C-c}
+\indexentry{foo}{I-i-20-C-c}
+\indexentry{foo}{V-i-10-C-c}
+\indexentry{foo}{V-i-20-C-c}
+\indexentry{foo}{X-i-10-C-c}
+\indexentry{foo}{X-i-20-C-c}
+\indexentry{foo}{L-i-10-C-c}
+\indexentry{foo}{L-i-20-C-c}
+\indexentry{foo}{C-i-10-C-c}
+\indexentry{foo}{C-i-20-C-c}
+\indexentry{foo}{D-i-10-C-c}
+\indexentry{foo}{D-i-20-C-c}
+\indexentry{foo}{M-i-10-C-c}
+\indexentry{foo}{M-i-20-C-c}
+
+\indexentry{bar}{I-i-10-C-c}
+\indexentry{bar}{I-i-20-C-c}
+\indexentry{bar}{I-v-10-C-c}
+\indexentry{bar}{I-v-20-C-c}
+\indexentry{bar}{I-x-10-C-c}
+\indexentry{bar}{I-x-20-C-c}
+\indexentry{bar}{I-l-10-C-c}
+\indexentry{bar}{I-l-20-C-c}
+\indexentry{bar}{I-c-10-C-c}
+\indexentry{bar}{I-c-20-C-c}
+\indexentry{bar}{I-d-10-C-c}
+\indexentry{bar}{I-d-20-C-c}
+\indexentry{bar}{I-m-10-C-c}
+\indexentry{bar}{I-m-20-C-c}
+
+\indexentry{baz}{I-i-10-C-c}
+\indexentry{baz}{I-i-20-C-c}
+\indexentry{baz}{I-i-10-D-c}
+\indexentry{baz}{I-i-20-D-c}
+\indexentry{baz}{I-i-10-I-c}
+\indexentry{baz}{I-i-20-I-c}
+\indexentry{baz}{I-i-10-L-c}
+\indexentry{baz}{I-i-20-L-c}
+\indexentry{baz}{I-i-10-M-c}
+\indexentry{baz}{I-i-20-M-c}
+\indexentry{baz}{I-i-10-V-c}
+\indexentry{baz}{I-i-20-V-c}
+\indexentry{baz}{I-i-10-X-c}
+\indexentry{baz}{I-i-20-X-c}
+
+\indexentry{qux}{I-i-10-C-c}
+\indexentry{qux}{I-i-20-C-c}
+\indexentry{qux}{I-i-10-C-d}
+\indexentry{qux}{I-i-20-C-d}
+\indexentry{qux}{I-i-10-C-i}
+\indexentry{qux}{I-i-20-C-i}
+\indexentry{qux}{I-i-10-C-l}
+\indexentry{qux}{I-i-20-C-l}
+\indexentry{qux}{I-i-10-C-m}
+\indexentry{qux}{I-i-20-C-m}
+\indexentry{qux}{I-i-10-C-v}
+\indexentry{qux}{I-i-20-C-v}
+\indexentry{qux}{I-i-10-C-x}
+\indexentry{qux}{I-i-20-C-x}
+
diff --git a/indexing/upmendex/source/tests/romalpC-5.ind b/indexing/upmendex/source/tests/romalpC-5.ind
new file mode 100644
index 0000000000..2edc90d1ef
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpC-5.ind
@@ -0,0 +1,14 @@
+\begin{theindex}
+
+ \item bar, I-i-10-C-c, I-i-20-C-c, I-ii-10-C-c, I-ii-20-C-c, I-iii-10-C-c, I-iii-20-C-c, I-v-10-C-c, I-v-20-C-c, I-x-10-C-c, I-x-20-C-c, I-l-10-C-c, I-l-20-C-c, I-c-10-C-c, I-c-20-C-c, I-d-10-C-c, I-d-20-C-c, I-m-10-C-c, I-m-20-C-c
+ \item baz, I-i-10-A-c, I-i-10-B-c, I-i-10-C-c, I-i-10-D-c, I-i-10-I-c, I-i-10-L-c, I-i-10-M-c, I-i-10-V-c, I-i-10-X-c, I-i-20-A-c, I-i-20-B-c, I-i-20-C-c, I-i-20-D-c, I-i-20-I-c, I-i-20-L-c, I-i-20-M-c, I-i-20-V-c, I-i-20-X-c
+
+ \indexspace
+
+ \item foo, I-i-10-C-c, I-i-20-C-c, II-i-10-C-c, II-i-20-C-c, III-i-10-C-c, III-i-20-C-c, V-i-10-C-c, V-i-20-C-c, X-i-10-C-c, X-i-20-C-c, L-i-10-C-c, L-i-20-C-c, C-i-10-C-c, C-i-20-C-c, D-i-10-C-c, D-i-20-C-c, M-i-10-C-c, M-i-20-C-c
+
+ \indexspace
+
+ \item qux, I-i-10-C-a--I-i-10-C-d, I-i-10-C-i, I-i-10-C-l, I-i-10-C-m, I-i-10-C-v, I-i-10-C-x, I-i-20-C-a--I-i-20-C-d, I-i-20-C-i, I-i-20-C-l, I-i-20-C-m, I-i-20-C-v, I-i-20-C-x
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpC.idx b/indexing/upmendex/source/tests/romalpC.idx
new file mode 100644
index 0000000000..208686338a
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpC.idx
@@ -0,0 +1,76 @@
+\indexentry{foo}{I-i-10-C-c}
+\indexentry{foo}{I-i-20-C-c}
+\indexentry{foo}{II-i-10-C-c}
+\indexentry{foo}{II-i-20-C-c}
+\indexentry{foo}{III-i-10-C-c}
+\indexentry{foo}{III-i-20-C-c}
+\indexentry{foo}{V-i-10-C-c}
+\indexentry{foo}{V-i-20-C-c}
+\indexentry{foo}{X-i-10-C-c}
+\indexentry{foo}{X-i-20-C-c}
+\indexentry{foo}{L-i-10-C-c}
+\indexentry{foo}{L-i-20-C-c}
+\indexentry{foo}{C-i-10-C-c}
+\indexentry{foo}{C-i-20-C-c}
+\indexentry{foo}{D-i-10-C-c}
+\indexentry{foo}{D-i-20-C-c}
+\indexentry{foo}{M-i-10-C-c}
+\indexentry{foo}{M-i-20-C-c}
+
+\indexentry{bar}{I-i-10-C-c}
+\indexentry{bar}{I-i-20-C-c}
+\indexentry{bar}{I-ii-10-C-c}
+\indexentry{bar}{I-ii-20-C-c}
+\indexentry{bar}{I-iii-10-C-c}
+\indexentry{bar}{I-iii-20-C-c}
+\indexentry{bar}{I-v-10-C-c}
+\indexentry{bar}{I-v-20-C-c}
+\indexentry{bar}{I-x-10-C-c}
+\indexentry{bar}{I-x-20-C-c}
+\indexentry{bar}{I-l-10-C-c}
+\indexentry{bar}{I-l-20-C-c}
+\indexentry{bar}{I-c-10-C-c}
+\indexentry{bar}{I-c-20-C-c}
+\indexentry{bar}{I-d-10-C-c}
+\indexentry{bar}{I-d-20-C-c}
+\indexentry{bar}{I-m-10-C-c}
+\indexentry{bar}{I-m-20-C-c}
+
+\indexentry{baz}{I-i-10-A-c}
+\indexentry{baz}{I-i-20-A-c}
+\indexentry{baz}{I-i-10-B-c}
+\indexentry{baz}{I-i-20-B-c}
+\indexentry{baz}{I-i-10-C-c}
+\indexentry{baz}{I-i-20-C-c}
+\indexentry{baz}{I-i-10-D-c}
+\indexentry{baz}{I-i-20-D-c}
+\indexentry{baz}{I-i-10-I-c}
+\indexentry{baz}{I-i-20-I-c}
+\indexentry{baz}{I-i-10-L-c}
+\indexentry{baz}{I-i-20-L-c}
+\indexentry{baz}{I-i-10-M-c}
+\indexentry{baz}{I-i-20-M-c}
+\indexentry{baz}{I-i-10-V-c}
+\indexentry{baz}{I-i-20-V-c}
+\indexentry{baz}{I-i-10-X-c}
+\indexentry{baz}{I-i-20-X-c}
+
+\indexentry{qux}{I-i-10-C-a}
+\indexentry{qux}{I-i-20-C-a}
+\indexentry{qux}{I-i-10-C-b}
+\indexentry{qux}{I-i-20-C-b}
+\indexentry{qux}{I-i-10-C-c}
+\indexentry{qux}{I-i-20-C-c}
+\indexentry{qux}{I-i-10-C-d}
+\indexentry{qux}{I-i-20-C-d}
+\indexentry{qux}{I-i-10-C-i}
+\indexentry{qux}{I-i-20-C-i}
+\indexentry{qux}{I-i-10-C-l}
+\indexentry{qux}{I-i-20-C-l}
+\indexentry{qux}{I-i-10-C-m}
+\indexentry{qux}{I-i-20-C-m}
+\indexentry{qux}{I-i-10-C-v}
+\indexentry{qux}{I-i-20-C-v}
+\indexentry{qux}{I-i-10-C-x}
+\indexentry{qux}{I-i-20-C-x}
+
diff --git a/indexing/upmendex/source/tests/romalpD-5.ind b/indexing/upmendex/source/tests/romalpD-5.ind
new file mode 100644
index 0000000000..f85a08325d
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpD-5.ind
@@ -0,0 +1,9 @@
+\begin{theindex}
+
+ \item bar, 1--3, c, d, i, l, m, v, x, I, V, X, L, C, D, M
+
+ \indexspace
+
+ \item foo, i, v, x, l, c, d, m, 1--3, C, D, I, L, M, V, X
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpD-6.ind b/indexing/upmendex/source/tests/romalpD-6.ind
new file mode 100644
index 0000000000..7514b21947
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpD-6.ind
@@ -0,0 +1,9 @@
+\begin{theindex}
+
+ \item bar, i, v, x, l, c, d, m, 1--3, I, V, X, L, C, D, M
+
+ \indexspace
+
+ \item foo, i, v, x, l, c, d, m, 1--3, I, V, X, L, C, D, M
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpD-7.ind b/indexing/upmendex/source/tests/romalpD-7.ind
new file mode 100644
index 0000000000..779a39c4ff
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpD-7.ind
@@ -0,0 +1,9 @@
+\begin{theindex}
+
+ \item bar, 1--3, c, d, i, l, m, v, x, C, D, I, L, M, V, X
+
+ \indexspace
+
+ \item foo, 1--3, c, d, i, l, m, v, x, C, D, I, L, M, V, X
+
+\end{theindex}
diff --git a/indexing/upmendex/source/tests/romalpD.idx b/indexing/upmendex/source/tests/romalpD.idx
new file mode 100644
index 0000000000..3247aefbf7
--- /dev/null
+++ b/indexing/upmendex/source/tests/romalpD.idx
@@ -0,0 +1,35 @@
+\indexentry{foo}{1}
+\indexentry{foo}{2}
+\indexentry{foo}{3}
+\indexentry{foo}{C}
+\indexentry{foo}{D}
+\indexentry{foo}{I}
+\indexentry{foo}{L}
+\indexentry{foo}{M}
+\indexentry{foo}{V}
+\indexentry{foo}{X}
+\indexentry{foo}{i}
+\indexentry{foo}{v}
+\indexentry{foo}{x}
+\indexentry{foo}{l}
+\indexentry{foo}{c}
+\indexentry{foo}{d}
+\indexentry{foo}{m}
+
+\indexentry{bar}{1}
+\indexentry{bar}{2}
+\indexentry{bar}{3}
+\indexentry{bar}{I}
+\indexentry{bar}{V}
+\indexentry{bar}{X}
+\indexentry{bar}{L}
+\indexentry{bar}{C}
+\indexentry{bar}{D}
+\indexentry{bar}{M}
+\indexentry{bar}{c}
+\indexentry{bar}{d}
+\indexentry{bar}{i}
+\indexentry{bar}{l}
+\indexentry{bar}{m}
+\indexentry{bar}{v}
+\indexentry{bar}{x}
diff --git a/indexing/upmendex/source/tests/upmendex.test b/indexing/upmendex/source/tests/upmendex.test
index 84dfbd17be..0eef034cad 100755
--- a/indexing/upmendex/source/tests/upmendex.test
+++ b/indexing/upmendex/source/tests/upmendex.test
@@ -1,89 +1,103 @@
#! /bin/sh -vx
-# $Id: upmendex.test 60549 2021-09-19 08:57:18Z takuji $
-# Copyright 2017 Karl Berry <tex-live@tug.org>
+# $Id$
+# Copyright 2017-2022 Karl Berry <tex-live@tug.org>
# Copyright 2013 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
TEXMFCNF=$srcdir/../kpathsea
export TEXMFCNF
-rm -f foo.* uni.* range*.* pprec*.* locale*.* attr*.* rule*.*
+rm -f foo.* uni.* range*.* pprec*.* romalp*.* locale*.* attr*.* rule*.*
+rc=0
./upmendex $srcdir/tests/foo.idx -o foo.ind1 -t foo.ilg1 \
- && diff $srcdir/tests/foo.ind foo.ind1 || exit 1
+ && diff $srcdir/tests/foo.ind foo.ind1 || rc=1
cat $srcdir/tests/foo.idx | ./upmendex >foo.ind2 2>foo.ilg2 \
- && diff $srcdir/tests/foo.ind foo.ind2 || exit 1
+ && diff $srcdir/tests/foo.ind foo.ind2 || rc=2
./upmendex -d $srcdir/tests/uni.dict -s $srcdir/tests/uni.ist \
$srcdir/tests/uni.idx -o uni.ind1 -t uni.ilg1 \
- && diff $srcdir/tests/uni.ind uni.ind1 || exit 1
+ && diff $srcdir/tests/uni.ind uni.ind1 || rc=3
cat $srcdir/tests/uni.idx | \
./upmendex -d $srcdir/tests/uni.dict -s $srcdir/tests/uni.ist \
>uni.ind2 2>uni.ilg2 \
- && diff $srcdir/tests/uni.ind uni.ind2 || exit 1
+ && diff $srcdir/tests/uni.ind uni.ind2 || rc=4
./upmendex -d $srcdir/tests/uni.dict -s $srcdir/tests/uni1.ist -s $srcdir/tests/uni2.ist \
$srcdir/tests/uni.idx -o uni.ind3 -t uni.ilg3 \
- && diff $srcdir/tests/uni.ind uni.ind3 || exit 1
+ && diff $srcdir/tests/uni.ind uni.ind3 || rc=5
-# test for range suffix_2p, suffix_3p, suffix_mp
-./upmendex -s $srcdir/tests/range1.ist $srcdir/tests/range.idx \
- -o range1.ind1 -t range1.ilg \
- && diff $srcdir/tests/range1.ind range1.ind1 || exit 1
-./upmendex -s $srcdir/tests/range2.ist $srcdir/tests/range.idx \
- -o range2.ind1 -t range2.ilg \
- && diff $srcdir/tests/range2.ind range2.ind1 || exit 1
+# test for range suffix_2p, suffix_3p, suffix_mp
+for num in 1 2 3; do
+./upmendex -s $srcdir/tests/range$num.ist $srcdir/tests/range.idx \
+ -o range$num.ind1 -t range$num.ilg \
+ && diff $srcdir/tests/range$num.ind range$num.ind1 || rc=6
+done
-./upmendex -s $srcdir/tests/range3.ist $srcdir/tests/range.idx \
- -o range3.ind1 -t range3.ilg \
- && diff $srcdir/tests/range3.ind range3.ind1 || exit 1
# test for page_precedence and suffix_3p
-./upmendex -s $srcdir/tests/pprec0.ist $srcdir/tests/pprecA.idx \
- -o pprecA-0.ind1 -t pprecA-0.ilg \
- && diff $srcdir/tests/pprecA-0.ind pprecA-0.ind1 || exit 1
-
-./upmendex -s $srcdir/tests/pprec1.ist $srcdir/tests/pprecA.idx \
- -o pprecA-1.ind1 -t pprecA-1.ilg \
- && diff $srcdir/tests/pprecA-1.ind pprecA-1.ind1 || exit 1
-
-./upmendex -s $srcdir/tests/pprec2.ist $srcdir/tests/pprecA.idx \
- -o pprecA-2.ind1 -t pprecA-2.ilg \
- && diff $srcdir/tests/pprecA-2.ind pprecA-2.ind1 || exit 1
+sfx=A
+for num in 0 1 2; do
+./upmendex -s $srcdir/tests/pprec$num.ist $srcdir/tests/pprec$sfx.idx \
+ -o pprec$sfx-$num.ind1 -t pprec$sfx-$num.ilg \
+ && diff $srcdir/tests/pprec$sfx-$num.ind pprec$sfx-$num.ind1 || rc=7
+done
+sfx=B
+for num in 0 3 4; do
+./upmendex -s $srcdir/tests/pprec$num.ist $srcdir/tests/pprec$sfx.idx \
+ -o pprec$sfx-$num.ind1 -t pprec$sfx-$num.ilg \
+ && diff $srcdir/tests/pprec$sfx-$num.ind pprec$sfx-$num.ind1 || rc=8
+done
+
+
+# test for page_precedence, heuristic detection if a letter is Roman or Alpha
+sfx=A
+for num in 5 6; do
+./upmendex -s $srcdir/tests/pprec$num.ist $srcdir/tests/romalp$sfx.idx \
+ -o romalp$sfx-$num.ind1 -t romalp$sfx-$num.ilg \
+ && diff $srcdir/tests/romalp$sfx-$num.ind romalp$sfx-$num.ind1 || rc=9
+done
+sfx=B
+for num in 5 6 7; do
+./upmendex -s $srcdir/tests/pprec$num.ist $srcdir/tests/romalp$sfx.idx \
+ -o romalp$sfx-$num.ind1 -t romalp$sfx-$num.ilg \
+ && diff $srcdir/tests/romalp$sfx-$num.ind romalp$sfx-$num.ind1 || rc=10
+done
+sfx=C
+for num in 5; do
+./upmendex -s $srcdir/tests/pprec$num.ist $srcdir/tests/romalp$sfx.idx \
+ -o romalp$sfx-$num.ind1 -t romalp$sfx-$num.ilg \
+ && diff $srcdir/tests/romalp$sfx-$num.ind romalp$sfx-$num.ind1 || rc=11
+done
+sfx=D
+for num in 5 6 7; do
+./upmendex -s $srcdir/tests/pprec$num.ist $srcdir/tests/romalp$sfx.idx \
+ -o romalp$sfx-$num.ind1 -t romalp$sfx-$num.ilg \
+ && diff $srcdir/tests/romalp$sfx-$num.ind romalp$sfx-$num.ind1 || rc=12
+done
-./upmendex -s $srcdir/tests/pprec0.ist $srcdir/tests/pprecB.idx \
- -o pprecB-0.ind1 -t pprecB-0.ilg \
- && diff $srcdir/tests/pprecB-0.ind pprecB-0.ind1 || exit 1
-
-./upmendex -s $srcdir/tests/pprec3.ist $srcdir/tests/pprecB.idx \
- -o pprecB-3.ind1 -t pprecB-3.ilg \
- && diff $srcdir/tests/pprecB-3.ind pprecB-3.ind1 || exit 1
-
-./upmendex -s $srcdir/tests/pprec4.ist $srcdir/tests/pprecB.idx \
- -o pprecB-4.ind1 -t pprecB-4.ilg \
- && diff $srcdir/tests/pprecB-4.ind pprecB-4.ind1 || exit 1
# test for icu_locale
./upmendex -s $srcdir/tests/uni.ist -s $srcdir/tests/locale1.ist $srcdir/tests/rule.idx \
-o locale1.ind1 -t locale1.ilg \
- && diff $srcdir/tests/locale1.ind locale1.ind1 || exit 1
+ && diff $srcdir/tests/locale1.ind locale1.ind1 || rc=51
# test for icu_attributes
./upmendex -s $srcdir/tests/uni.ist -s $srcdir/tests/attr1.ist $srcdir/tests/rule.idx \
-o attr1.ind1 -t attr1.ilg \
- && diff $srcdir/tests/attr1.ind attr1.ind1 || exit 1
+ && diff $srcdir/tests/attr1.ind attr1.ind1 || rc=52
# test for icu_rules
./upmendex -s $srcdir/tests/uni.ist -s $srcdir/tests/rule1.ist $srcdir/tests/rule.idx \
-o rule1.ind1 -t rule1.ilg \
- && diff $srcdir/tests/rule.ind rule1.ind1 || exit 1
+ && diff $srcdir/tests/rule.ind rule1.ind1 || rc=53
./upmendex -s $srcdir/tests/uni.ist -s $srcdir/tests/rule2.ist $srcdir/tests/rule.idx \
-o rule2.ind1 -t rule2.ilg \
- && diff $srcdir/tests/rule.ind rule2.ind1 || exit 1
+ && diff $srcdir/tests/rule.ind rule2.ind1 || rc=54
# malformed input
./upmendex -s $srcdir/tests/uni.ist -s $srcdir/tests/rule3.ist $srcdir/tests/rule.idx \
@@ -107,4 +121,7 @@ fi
# test for icu_locale + icu_rules
./upmendex -s $srcdir/tests/uni.ist -s $srcdir/tests/locale2.ist -s $srcdir/tests/rule1.ist $srcdir/tests/rule.idx \
-o locale2-rule1.ind1 -t locale2-rule1.ilg \
- && diff $srcdir/tests/locale2-rule.ind locale2-rule1.ind1 || exit 1
+ && diff $srcdir/tests/locale2-rule.ind locale2-rule1.ind1 || rc=55
+
+
+exit $rc
diff --git a/macros/latex/contrib/babel-contrib/greek/Makefile b/macros/latex/contrib/babel-contrib/greek/Makefile
index 5cfd53df74..c88acae1ef 100644
--- a/macros/latex/contrib/babel-contrib/greek/Makefile
+++ b/macros/latex/contrib/babel-contrib/greek/Makefile
@@ -16,21 +16,26 @@ DESTDIR = ~/texmf/tex/latex/greek/babel-greek
DOCDIR = ~/texmf/doc/latex/greek/babel-greek
CHDIR = cd
-COPY = cp -u
+COPY = cp --update
SH = sh
# programs
-PYLIT = pylit # text <-> source converter for literal programming
-RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net
-RUBBER = rubber -f --pdf # wrapper around `latex`, run until references resolved
+PYLIT = pylit # text <-> source converter for literal programming
+RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net
+RUBBER = rubber --force --pdf # latex-wrapper running until refs are resolved
LATEX = pdflatex -interaction batchmode # suppress logging to terminal
+
+.PHONY: all
+
+all: packages doc test
+
# LaTeX source files
# ==================
-.PHONY: all
+.PHONY: packages
-all: greek.ldf athnum.sty grmath.sty
+packages: greek.ldf athnum.sty grmath.sty
greek.ldf: babel-greek.dtx
tex babel-greek.ins
@@ -44,22 +49,28 @@ grmath.sty: athnum.dtx
# Documentation
# =============
-.PHONY: doc html pdf
+.PHONY: doc html pdf test
doc: html pdf
-html: README.html
+html: babel-greek-doc.html
+
+babel-greek-doc.html: babel-greek-doc.rst
+ $(RST2HTML) babel-greek-doc.rst babel-greek-doc.html
-README.html: README
- $(RST2HTML) README README.html
+pdf: babel-greek.pdf athnum.pdf grmath.pdf usage.pdf
-pdf: babel-greek.pdf athnum.pdf grmath.pdf usage.pdf\
- test-greek-lgr.pdf test-greek-tu.pdf test-8bit-greek.pdf \
- test-tu-lgr.pdf
+test: test-greek.pdf test-greek-tu.pdf test-greek-8bitcompat.pdf \
+ test-greek-ini.pdf \
+ test-lgr-fixes.pdf test-case-changing.pdf\
+ test-greeknum.pdf test-greeknum-tu.pdf \
+ test-athnum.pdf test-athnum-tu.pdf
babel-greek.pdf: babel-greek.dtx
$(RUBBER) -m hyperref babel-greek.dtx
+ makeindex -s gglo.ist -o babel-greek.gls babel-greek.glo
+ $(RUBBER) -m hyperref babel-greek.dtx
athnum.pdf: athnum.dtx
$(RUBBER) athnum.dtx
@@ -70,39 +81,65 @@ grmath.pdf: grmath.dtx
usage.pdf: usage.tex greek.ldf
$(RUBBER) usage.tex
-test-greek-lgr.pdf: test-greek.tex greek.ldf
- $(RUBBER) --jobname=test-greek-lgr test-greek.tex
+test-greek.pdf: test-greek.tex greek.ldf
+ $(RUBBER) -m hyperref test-greek.tex
test-greek-tu.pdf: test-greek.tex greek.ldf
$(RUBBER) -m xelatex --jobname=test-greek-tu test-greek.tex
-test-8bit-greek.pdf: test-8bit-greek.tex greek.ldf
- $(RUBBER) -m hyperref test-8bit-greek.tex
+# requires rubber >= 1.6, otherwise `-m lualatex` is ignored.
+test-greek-8bitcompat.pdf: test-greek-8bitcompat.tex test-greek.tex greek.ldf
+ $(RUBBER) -m hyperref -m lualatex test-greek-8bitcompat.tex
-test-tu-lgr.pdf: test-tu-lgr.tex greek.ldf
- $(RUBBER) -m hyperref -m xelatex test-tu-lgr.tex
+test-greek-ini.pdf: test-greek-ini.tex test-greek.tex greek.ldf
+ $(RUBBER) -m hyperref -m xelatex test-greek-ini.tex
+test-case-changing.pdf: test-case-changing.tex greek.ldf
+ $(RUBBER) -m hyperref test-case-changing.tex
-# Installation
-# =============
+test-athnum.pdf: test-athnum.tex greek.ldf athnum.sty
+ $(RUBBER) test-athnum.tex
-install: all
- $(COPY) *.ldf $(DESTDIR)
- #$(COPY) *.sty $(DESTDIR)
+test-athnum-tu.pdf: test-athnum.tex greek.ldf athnum.sty
+ $(RUBBER) -m xelatex --jobname=test-athnum-tu test-athnum.tex
+
+test-greeknum.pdf: test-greeknum.tex greek.ldf
+ $(RUBBER) test-greeknum.tex
+
+test-greeknum-tu.pdf: test-greeknum.tex greek.ldf
+ $(RUBBER) -m xelatex --jobname=test-greeknum-tu test-greeknum.tex
+
+test-lgr-fixes.pdf: test-lgr-fixes.tex greek.ldf
+ $(RUBBER) -m hyperref -m index test-lgr-fixes.tex
-install-doc: doc
- $(COPY) README $(DOCDIR)
- $(COPY) *.html $(DOCDIR)
+
+# Installation/Update
+# ===================
+
+update: packages test
+ $(COPY) *.ldf $(DESTDIR)
+ $(COPY) *.sty $(DESTDIR)
+
+update-package: packages doc test
+ $(COPY) README.md $(DOCDIR)
+ $(COPY) babel-greek-doc.rst $(DOCDIR)
+ $(COPY) babel-greek-doc.html $(DOCDIR)
+ # selected PDFs
+ $(COPY) [!t]*.pdf $(DOCDIR)
+ $(COPY) test-greek.pdf $(DOCDIR)
+ $(COPY) test-athnum.pdf $(DOCDIR)
+ # also copy all sources
$(COPY) *.dtx $(DOCDIR)
$(COPY) *.ins $(DOCDIR)
$(COPY) *.tex $(DOCDIR)
- $(COPY) *.pdf $(DOCDIR)
$(COPY) Makefile $(DOCDIR)
+
# Cleanup
# =======
.PHONY: clean
clean:
- rm -f *.aux *.log *.toc *.out *~
+ rm -f *~ *.aux *.bbl *.bcf *.blg *.run.xml *.glo *.gls \
+ *.idx *.ilg *.ind *.log *.out *.rubbercache *.toc
diff --git a/macros/latex/contrib/babel-contrib/greek/README b/macros/latex/contrib/babel-contrib/greek/README
deleted file mode 100644
index 45ecf8f1d1..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/README
+++ /dev/null
@@ -1,253 +0,0 @@
-babel-greek
-***********
-Babel support for the Greek language and script
-===============================================
-
-:Copyright: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
- © 2013 -- 2020 Günter Milde.
-:Licence: This work may be distributed and/or modified under the
- conditions of the `LaTeX Project Public License`_, either
- version 1.3 of this license or any later version.
-
-:Abstract: Babel-greek is a contributed package providing support for the
- Greek language and script via the Babel_ system.
-
- The file ``greek.ldf`` provides options for the monotonic
- (single-diacritic), polytonic (multiple-diacritic) and ancient
- orthography of the Greek language.
-
- Since 2013-07-19, babel-greek supports also Unicode-aware TeX
- engines (XeTeX/LuaTeX).
-
-News
-----
-
-.. class:: borderless
-
-===== ============ ============================================================
-1.4 2013-05-17 New maintainer.
-.. The encoding definition file ``lgrenc.def`` moved to the
- greek-fontenc_ package.
-
-1.5 2013-06-21 bugfixes and cleanup,
-.. LICR macros in string definitions,
-.. LGR font encoding not used with XeTeX/LuaTeX,
-.. input "xgreek-fixes.def" from polyglossia_ with Xe/LuaTeX.
-1.5a 2013-07-02 Fix LaTeX bugs babel/3707, `babel/4303`_ and `babel/4305`_
-1.6 2013-07-19 Experimental support for XeTeX/LuaTeX.
-1.7 2013-09-09 CB-Fonts font definition files moved to CB-Fonts package.
-.. Do not auto-load euenc.def with XeTeX/LuaTeX.
-1.7a 2013-09-13 Fix bug `babel/4360`_: spurious ``\fi``.
-1.7b 2013-10-01 bugfix: correct upcasing of babel strings with Xe/LuaTeX.
-1.8 2013-12-02 Rename ``greek.dtx`` to ``babel-greek`` so that texdoc_
- shows the right documentation.
-.. Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.
-1.8a 2013-12-03 Set ``\encodingdefault`` in ``\greekscript`` to fix
- Greek in footnotes etc. with document language Greek.
-1.9 2014-07-20 Added attribute for ancient Greek, load correct hyphenation
- patterns: Patch by Claudio Beccari. Bugfix for Makeuppercase
-1.9a 2014-09-12 Remove duplicate code, documentation review.
-1.9b 2014-09-18 Remove spurious whitespace from "extrasgreek" definition.
-.. Use named macros instead of non-standard short macros
- for psili and dasia in the string definitions.
-1.9c 2014-10-21 Fix dummy hyphenation language names (patch Ulrike Fischer).
-1.9d 2015-09-04 Remove `grsymb` (macros for Greek symbols).
- This package is outdated and obsoleted by greek-fontenc_
- (reported by Claudio Beccari).
-.. Unicode uc/lc corrections now in greek-fontenc.
-1.9e 2015-11-27 Fix bug in lccode-setting loop (patch by Enrico Gregorio).
-1.9f 2016-02-04 Support for new standard Unicode text font encoding "TU".
-1.9g 2016-09-07 Babel 3.9i deprecated ``\textlatin``
- and fixed ``\latinencoding``.
-1.9h 2019-07-11 Move breathing composite commands to textalpha_.
-1.9i 2020-02-28 Update test for Unicode fonts.
- Fix accent in ``\seename`` and ``\alsoname``.
-1.9j 2020-03-17 Fix ampersand in math mode.
-1.10 2020-11-10 Use ``TU`` as ``\greekfontencoding`` for Xe/LuaTeX
- (set by LaTeX as `default font encoding for Unicode
- engines`_ since 2017/01/01).
-.. Use zig-zagy ``\textkoppa`` for ``\greeknumeral{90}``.
-.. PDF-string secure implementation of ``\greeknumeral``
- from hyperref_.
-.. Load ``puenc-greek.def`` (from greek-fontenc_)
- if used with hyperref (polytonic Greek in PDF-strings).
-===== ============ ============================================================
-
-
-.. _babel/4303: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303
-.. _babel/4305: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305
-.. _babel/4360: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360
-
-Files
------
-
-`<babel-greek.dtx>`_; `<babel-greek.pdf>`_
- Source of the language definition file ``greek.ldf`` for use with Babel_.
-`<athnum.dtx>`_; `<athnum.pdf>`_
- Athenian Numerals.
-`<grmath.dtx>`_; `<grmath.pdf>`_
- Greek log-like Operators.
-`<babel-greek.ins>`_
- DocStrip_ batch file.
-`<test-greek.tex>`_ `<test-greek-lgr.pdf>`_ `<test-greek-tu.pdf>`_
- Test Babel-Greek features.
-`<test-8bit-greek.tex>`_ `<test-8bit-greek.pdf>`_
- Additional tests and examples for 8-bit TeX.
-`<test-tu-lgr.tex>`_ `<test-tu-lgr.pdf>`_
- Tests and Examples for XeTeX/LuaTeX with LGR 8-bit fonts.
-`<usage.tex>`_ `<usage.pdf>`_
- Description of the `LGR Latin transliteration`_.
-
-
-Requirements
-------------
-
-The "babel-greek" package requires the babel_ base package and font
-definition files from the greek-fontenc_ package. The greek-inputenc_
-package is recommended when using 8-bit TeX engines.
-
-Typesetting Greek texts requires `Greek text fonts`_.
-
-Plain TeX is currently not supported. Patches are welcome.
-
-
-Installation
-------------
-
-If possible, get this package from your distribution using its installation
-manager.
-
-Otherwise, make sure LaTeX can find the required files:
-
-* Download and unpack `babel-greek.zip`.
-
-* Run ``tex`` or ``latex`` on the batch file ``babel-greek.ins``.
-
- This will generate the files ``greek.ldf``, ``athnum.sty``, and
- ``grmath.sty`` in the current directory. [#]_
-
-* Move all files ending in ``.ldf`` or ``.sty`` into a directory searched by
- TeX.
-
-* To produce the documentation, run the file ``usage.tex`` and all files
- ending in ``.dtx`` through LaTeX.
-
-.. [#] If these files already exist somewhere in the TeX-path, you will be
- warned that they might be overwritten. You can ignore this
- warning and answer `y` unless the *current directory* contains versions
- of these files you want to keep.
-
- This is done by docstrip_. Try ``texdoc docstrip`` for details.
-
-Usage
------
-
-Use the "greek" document option or pass the "greek" option to babel::
-
- \usepackage[greek]{babel}
-
-For polytonic Greek, set the language attribute "polutoniko"::
-
- \usepackage[greek]{babel}
- \languageattribute{greek}{polutoniko}
-
-or ::
-
- \usepackage[greek.polutoniko,english]{babel}
-
-Similarly, the attribute "ancient" selects the ancient Greek language
-variant.
-
-For details see `<babel-greek.pdf>`_ and the babel_ documentation.
-
-Input of Greek characters is possible as literal characters (with the
-greek-inputenc_ package or with XeTeX or LuaTeX) or the `LGR Latin
-transliteration`_. See `<usage.pdf>`_ and the example files provided with
-greek-fontenc_.
-
-Greek text fonts
-----------------
-
-A list of Greek text fonts for use with LaTeX is available at the CTAN
-http://www.ctan.org/topic/font-greek
-
-With the XeTeX or LuaTeX engines, the user should ensure that the chosen
-font contains the required glyphs: the default Latin Modern fonts miss
-them. Warnings about missing charcters are only written to the log
-file, not the console output! Select a suitable font with fontspec_.
-
-Examples for suitable fonts are the CM-unicode_ or the `Linux
-Libertine`_ OpenType fonts as well as any system-wide installed OTF fonts
-that support Greek (e.g. `Deja Vu`_).
-
-The LGR `font encoding`_ is the de-facto standard for typesetting Greek with
-8-bit LaTeX. Fonts in this encoding include the `CB fonts`_ (matching CM),
-grtimes_ (Greek Times), Kerkis_ (matching URW Bookman), and the `GFS font
-collection`_. Setup of these fonts as Greek variant to matching Latin fonts
-is facilitated by the substitutefont_ package.
-
-LGR Latin Transliteration
--------------------------
-
-The LGR font encoding allows input of Greek characters via an ASCII
-transliteration. This enables simple input with a Latin keyboard. Characters
-with diacritics may be selected with accent macros (cf. greek-fontenc_) or
-via the ligature definitions in the font (see `<usage.pdf>`_).
-
-The following ASCII characters are converted to Greek symbols:
-
-= = = = = = = = = = = = = = = = = = = = = = = = =
-A B G D E Z H J I K L M N X O P R S T U F Q Y W
-Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
-- - - - - - - - - - - - - - - - - - - - - - - - -
-- - - - - - - - - - - - - - - - - - - - - - - - -
-a b g d e z h j i k l m n x o p r s c t u f q y w
-α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω
-= = = = = = = = = = = = = = = = = = = = = = = = =
-
-Accent symbols and punctuation:
-
-================= ====== == ====================== ======== ====
-tonos ``'a`` ά semicolon ``;`` ·
-varia \`a ὰ question mark ``?`` ;
-perispomeni ``~a`` ᾶ left apostrophe \` \` ‘
-dasia ``<a`` ἁ right apostrophe ``''`` ’
-psili ``>a`` ἀ left quotation mark ``((`` «
-ypogegrammeni ``a|`` ᾳ right quotation mark ``))`` »
-dialytika ``"i`` ϊ zero width non-joiner v
-================= ====== == ====================== ======== ====
-
-A major drawback of the LGR transliteration is that you cannot access Latin
-letters and some symbols if LGR is the active font encoding (e.g. in
-documents or parts of documents given the `Babel` language ``greek``). This
-means that for every Latin-written word or acronym an explicit
-language-switch is required. This problem can only be solved via a
-font-encoding comprising both Latin and Greek like the hypothetical T7 or
-Unicode (with XeTeX or LuaTeX).
-
-.. References
- ----------
-
-.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
-.. _babel: http://www.ctan.org/pkg/babel
-.. _docstrip: http://www.ctan.org/pkg/docstrip
-.. _font encoding: http://mirror.ctan.org/macros/latex/base/encguide.pdf
-.. _fontspec: http://www.ctan.org/pkg/fontspec
-.. _fontenc: http://www.ctan.org/pkg/fontenc
-.. _CB Fonts: http://www.ctan.org/pkg/cbgreek-complete
-.. _CM-unicode: http://www.ctan.org/pkg/cm-unicode
-.. _Deja Vu: http://dejavu-fonts.org
-.. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex
-.. _grtimes: http://www.ctan.org/pkg/grtimes
-.. _hyperref: http://www.ctan.org/pkg/hyperref
-.. _textalpha:
-.. _greek-fontenc: http://www.ctan.org/pkg/greek-fontenc
-.. _greek-inputenc: http://www.ctan.org/pkg/greek-inputenc
-.. _GFS font collection: http://www.ctan.org/pkg/gfs
-.. _Kerkis: http://www.ctan.org/pkg/kerkis
-.. _Linux Libertine: http://www.ctan.org/pkg/libertine
-.. _polyglossia: http://www.ctan.org/pkg/polyglossia
-.. _substitutefont: http://www.ctan.org/pkg/substitutefont
-.. _texdoc: http://www.ctan.org/pkg/texdoc
-.. _default font encoding for Unicode engines:
- https://www.latex-project.org/news/latex2e-news/ltnews26.pdf
diff --git a/macros/latex/contrib/babel-contrib/greek/README.html b/macros/latex/contrib/babel-contrib/greek/README.html
deleted file mode 100644
index 5b098647b3..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/README.html
+++ /dev/null
@@ -1,1136 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta charset="utf-8"/>
-<meta name="generator" content="Docutils 0.17b.dev: http://docutils.sourceforge.net/" />
-<title>babel-greek</title>
-<meta name="dcterms.rights" content="© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 – 2020 Günter Milde." />
-<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>
-<style type="text/css">
-
-/* Minimal style sheet for the HTML output of Docutils. */
-/* */
-/* :Author: Günter Milde, based on html4css1.css by David Goodger */
-/* :Id: $Id$ */
-/* :Copyright: © 2015 Günter Milde. */
-/* :License: Released under the terms of the `2-Clause BSD license`_, */
-/* in short: */
-/* */
-/* Copying and distribution of this file, with or without modification, */
-/* are permitted in any medium without royalty provided the copyright */
-/* notice and this notice are preserved. */
-/* */
-/* This file is offered as-is, without any warranty. */
-/* */
-/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
-
-/* This CSS2.1_ stylesheet defines rules for Docutils elements without */
-/* HTML equivalent. It is required to make the document semantic visible. */
-/* */
-/* .. _CSS2.1: http://www.w3.org/TR/CSS2 */
-/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */
-
-/* alignment of text and inline objects inside block objects*/
-.align-left { text-align: left; }
-.align-right { text-align: right; }
-.align-center { clear: both; text-align: center; }
-.align-top { vertical-align: top; }
-.align-middle { vertical-align: middle; }
-.align-bottom { vertical-align: bottom; }
-
-/* titles */
-h1.title, p.subtitle {
- text-align: center;
-}
-p.topic-title,
-p.sidebar-title,
-p.rubric,
-p.admonition-title,
-p.system-message-title {
- font-weight: bold;
-}
-h1 + p.subtitle,
-h2 + p.section-subtitle {
- font-size: 1.6em;
-}
-h3 + p.section-subtitle {
- font-size: 1.28em;
-}
-p.subtitle,
-p.section-subtitle,
-p.sidebar-subtitle {
- font-weight: bold;
- margin-top: -0.5em;
-}
-p.sidebar-title {
- font-size: larger;
-}
-p.rubric {
- font-size: larger;
- color: maroon;
-}
-a.toc-backref {
- color: black;
- text-decoration: none; }
-
-/* Warnings, Errors */
-div.system-messages h2,
-span.problematic,
-p.system-message-title {
- color: red;
-}
-
-/* inline literals */
-span.docutils.literal {
- font-family: monospace;
- white-space: pre-wrap;
-}
-/* do not wraph at hyphens and similar: */
-.literal > span.pre { white-space: nowrap; }
-
-/* Lists */
-
-/* compact and simple lists: no margin between items */
-.simple li, .compact li,
-.simple ul, .compact ul,
-.simple ol, .compact ol,
-.simple > li p, .compact > li p,
-dl.simple > dd, dl.compact > dd {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-/* Table of Contents */
-div.topic.contents { margin: 0.5em 0; }
-div.topic.contents ul {
- list-style-type: none;
- padding-left: 1.5em;
-}
-
-/* Enumerated Lists */
-ol.arabic { list-style: decimal }
-ol.loweralpha { list-style: lower-alpha }
-ol.upperalpha { list-style: upper-alpha }
-ol.lowerroman { list-style: lower-roman }
-ol.upperroman { list-style: upper-roman }
-
-dt span.classifier { font-style: italic }
-dt span.classifier:before {
- font-style: normal;
- margin: 0.5em;
- content: ":";
-}
-
-/* Field Lists and drivatives */
-/* bold field name, content starts on the same line */
-dl.field-list > dt,
-dl.option-list > dt,
-dl.docinfo > dt,
-dl.footnote > dt,
-dl.citation > dt {
- font-weight: bold;
- clear: left;
- float: left;
- margin: 0;
- padding: 0;
- padding-right: 0.5em;
-}
-/* Offset for field content (corresponds to the --field-name-limit option) */
-dl.field-list > dd,
-dl.option-list > dd,
-dl.docinfo > dd {
- margin-left: 9em; /* ca. 14 chars in the test examples */
-}
-/* start field-body on a new line after long field names */
-dl.field-list > dd > *:first-child,
-dl.option-list > dd > *:first-child
-{
- display: inline-block;
- width: 100%;
- margin: 0;
-}
-/* field names followed by a colon */
-dl.field-list > dt:after,
-dl.docinfo > dt:after {
- content: ":";
-}
-
-/* Bibliographic Fields (docinfo) */
-pre.address { font: inherit; }
-dd.authors > p { margin: 0; }
-
-/* Option Lists */
-dl.option-list { margin-left: 1.5em; }
-dl.option-list > dt { font-weight: normal; }
-span.option { white-space: nowrap; }
-
-/* Footnotes and Citations */
-dl.footnote.superscript > dd {margin-left: 1em; }
-dl.footnote.brackets > dd {margin-left: 2em; }
-dl > dt.label { font-weight: normal; }
-a.footnote-reference.brackets:before,
-dt.label > span.brackets:before { content: "["; }
-a.footnote-reference.brackets:after,
-dt.label > span.brackets:after { content: "]"; }
-a.footnote-reference.superscript,
-dl.footnote.superscript > dt.label {
- vertical-align: super;
- font-size: smaller;
-}
-dt.label > span.fn-backref { margin-left: 0.2em; }
-dt.label > span.fn-backref > a { font-style: italic; }
-
-/* Line Blocks */
-div.line-block { display: block; }
-div.line-block div.line-block {
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 40px;
-}
-
-/* Figures, Images, and Tables */
-.figure.align-left,
-figure.align-left,
-img.align-left,
-object.align-left,
-table.align-left {
- margin-right: auto;
-}
-.figure.align-center,
-figure.align-center,
-img.align-center,
-object.align-center,
-table.align-center {
- margin-left: auto;
- margin-right: auto;
-}
-.figure.align-right,
-figure.align-right,
-img.align-right,
-object.align-right,
-table.align-right {
- margin-left: auto;
-}
-img.align-center, img.align-right,
-object.align-center, object.align-right {
- display: block;
-}
-/* reset inner alignment in figures and tables */
-.figure.align-left, .figure.align-right,
-figure.align-left, figure.align-right,
-table.align-left, table.align-center, table.align-right {
- text-align: inherit;
-}
-
-/* Sidebar */
-aside.sidebar {
- width: 30%;
- max-width: 26em;
- float: right;
- clear: right;
-}
-
-/* Text Blocks */
-blockquote,
-div.topic,
-div.admonition,
-div.system-message,
-pre.literal-block,
-pre.doctest-block,
-pre.math,
-pre.code {
- margin-left: 1.5em;
- margin-right: 1.5em;
-}
-pre.code .ln { color: gray; } /* line numbers */
-
-/* Tables */
-table { border-collapse: collapse; }
-td, th {
- border-style: solid;
- border-color: silver;
- padding: 0 1ex;
- border-width: thin;
-}
-td > p:first-child, th > p:first-child { margin-top: 0; }
-td > p, th > p { margin-bottom: 0; }
-
-table > caption {
- text-align: left;
- margin-bottom: 0.25em
-}
-
-table.borderless td, table.borderless th {
- border: 0;
- padding: 0;
- padding-right: 0.5em /* separate table cells */
-}
-
-/* Document Header and Footer */
-header { border-bottom: 1px solid black; }
-footer { border-top: 1px solid black; }
-
-/* new HTML5 block elements: set display for older browsers */
-header, section, footer, aside, nav, main, article, figure {
- display: block;
-}
-
-</style>
-<style type="text/css">
-
-/* CSS31_ style sheet for the output of Docutils HTML writers. */
-/* Rules for easy reading and pre-defined style variants. */
-/* */
-/* :Author: Günter Milde, based on html4css1.css by David Goodger */
-/* :Id: $Id$ */
-/* :Copyright: © 2015 Günter Milde. */
-/* :License: Released under the terms of the `2-Clause BSD license`_, */
-/* in short: */
-/* */
-/* Copying and distribution of this file, with or without modification, */
-/* are permitted in any medium without royalty provided the copyright */
-/* notice and this notice are preserved. */
-/* */
-/* This file is offered as-is, without any warranty. */
-/* */
-/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
-/* .. _CSS3: http://www.w3.org/TR/CSS3 */
-
-
-/* Document Structure */
-/* ****************** */
-
-/* "page layout" */
-body {
- margin: 0;
- background-color: #dbdbdb;
-}
-div.document,
-main {
- line-height:1.3;
- counter-reset: table figure;
- /* avoid long lines --> better reading */
- /* optimum is 45…75 characters/line <http://webtypography.net/2.1.2> */
- /* OTOH: lines should not be too short because of missing hyphenation, */
- max-width: 50em;
- padding: 1px 2%; /* 1px on top avoids grey bar above title (mozilla) */
- margin: auto;
- background-color: white;
-}
-
-/* Sections */
-
-/* Transitions */
-
-hr.docutils {
- width: 80%;
- margin-top: 1em;
- margin-bottom: 1em;
- clear: both;
-}
-
-/* Paragraphs */
-/* ========== */
-
-/* vertical space (parskip) */
-p, ol, ul, dl, li, dd,
-div.line-block,
-div.topic,
-table {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-p:first-child { margin-top: 0; }
-/* (:last-child is new in CSS 3) */
-p:last-child { margin-bottom: 0; }
-
-h1, h2, h3, h4, h5, h6,
-dl > dd {
- margin-bottom: 0.5em;
-}
-
-/* Lists */
-/* ===== */
-
-/* Separate list entries in compound lists */
-dl > dd, ol > li,
-
-/* Definition Lists */
-/* Indent lists nested in definition lists */
-/* (:only-child is new in CSS 3) */
-dd > ul:only-child, dd > ol:only-child { padding-left: 1em; }
-
-/* Description Lists */
-/* styled like in most dictionaries, encyclopedias etc. */
-dl.description > dt {
- font-weight: bold;
- clear: left;
- float: left;
- margin: 0;
- padding: 0;
- padding-right: 0.5em;
-}
-
-/* Field Lists */
-
-/* example for custom field-name width */
-dl.field-list.narrow > dd {
- margin-left: 5em;
-}
-/* run-in: start field-body on same line after long field names */
-dl.field-list.run-in > dd p {
- display: block;
-}
-
-/* Bibliographic Fields */
-
-/* generally, bibliographic fields use special definition list dl.docinfo */
-/* but dedication and abstract are placed into "topic" divs */
-div.abstract p.topic-title {
- text-align: center;
-}
-div.dedication {
- margin: 2em 5em;
- text-align: center;
- font-style: italic;
-}
-div.dedication p.topic-title {
- font-style: normal;
-}
-
-/* Citations */
-dl.citation dt.label {
- font-weight: bold;
-}
-span.fn-backref {
- font-weight: normal;
-}
-
-/* Text Blocks */
-/* =========== */
-
-/* Literal Blocks */
-
-pre.literal-block,
-pre.doctest-block,
-pre.math,
-pre.code {
- font-family: monospace;
-}
-
-/* Block Quotes */
-
-blockquote > table,
-div.topic > table {
- margin-top: 0;
- margin-bottom: 0;
-}
-blockquote p.attribution,
-div.topic p.attribution {
- text-align: right;
- margin-left: 20%;
-}
-
-/* Tables */
-/* ====== */
-
-/* th { vertical-align: bottom; } */
-
-table tr { text-align: left; }
-
-/* "booktabs" style (no vertical lines) */
-table.booktabs {
- border: 0;
- border-top: 2px solid;
- border-bottom: 2px solid;
- border-collapse: collapse;
-}
-table.booktabs * {
- border: 0;
-}
-table.booktabs th {
- border-bottom: thin solid;
-}
-
-/* numbered tables (counter defined in div.document) */
-table.numbered > caption:before {
- counter-increment: table;
- content: "Table " counter(table) ": ";
- font-weight: bold;
-}
-
-/* Explicit Markup Blocks */
-/* ====================== */
-
-/* Footnotes and Citations */
-/* ----------------------- */
-
-/* line on the left */
-dl.footnote {
- padding-left: 1ex;
- border-left: solid;
- border-left-width: thin;
-}
-
-/* Directives */
-/* ---------- */
-
-/* Body Elements */
-/* ~~~~~~~~~~~~~ */
-
-/* Images and Figures */
-
-/* let content flow to the side of aligned images and figures */
-.figure.align-left,
-figure.align-left,
-img.align-left,
-object.align-left {
- display: block;
- clear: left;
- float: left;
- margin-right: 1em;
-}
-.figure.align-right,
-figure.align-right,
-img.align-right,
-object.align-right {
- display: block;
- clear: right;
- float: right;
- margin-left: 1em;
-}
-/* Stop floating sidebars, images and figures at section level 1,2,3 */
-h1, h2, h3, h4 { clear: both; }
-
-/* Numbered figures */
-figure.numbered > figcaption > p:before {
- counter-increment: figure;
- content: "Figure " counter(figure) ": ";
- font-weight: bold;
-}
-
-
-/* Admonitions and System Messages */
-
-div.admonition,
-div.system-message,
-aside.sidebar {
- border: medium outset;
- margin: 1em 1.5em;
- padding: 0.5em 1em;
-}
-
-div.caution p.admonition-title,
-div.attention p.admonition-title,
-div.danger p.admonition-title,
-div.error p.admonition-title,
-div.warning p.admonition-title,
-div.error {
- color: red;
-}
-
-
-/* Sidebar */
-
-/* Move right. In a layout with fixed margins, */
-/* it can be moved into the margin. */
-div.sidebar,
-aside.sidebar {
- width: 30%;
- max-width: 26em;
- margin-left: 1em;
- margin-right: -2%;
- background-color: #ffffee;
-}
-
-/* Code */
-
-pre.code { padding: 0.7ex }
-pre.code, code { background-color: #eeeeee }
-pre.code .ln { color: gray; } /* line numbers */
-/* basic highlighting: for a complete scheme, see */
-/* http://docutils.sourceforge.net/sandbox/stylesheets/ */
-pre.code .comment, code .comment { color: #5C6576 }
-pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
-pre.code .literal.string, code .literal.string { color: #0C5404 }
-pre.code .name.builtin, code .name.builtin { color: #352B84 }
-pre.code .deleted, code .deleted { background-color: #DEB0A1}
-pre.code .inserted, code .inserted { background-color: #A3D289}
-
-/* Math */
-/* styled separately (see math.css for math-output=HTML) */
-
-/* Epigraph */
-/* Highlights */
-/* Pull-Quote */
-/* Compound Paragraph */
-/* Container */
-
-/* Document Header and Footer */
-
-footer, header {
- font-size: smaller;
- clear: both;
- padding: 0.5em 2%;
- background-color: #ebebee;
- border: none;
-}
-
-/* Inline Markup */
-/* ============= */
-
-/* Emphasis */
-/* em */
-/* Strong Emphasis */
-/* strong */
-/* Interpreted Text */
-/* span.interpreted */
-/* Title Reference */
-/* cite */
-
-/* Inline Literals */
-/* possible values: normal, nowrap, pre, pre-wrap, pre-line */
-/* span.docutils.literal { white-space: pre-wrap; } */
-
-/* Hyperlink References */
-a { text-decoration: none; }
-
-/* External Targets */
-/* span.target.external */
-/* Internal Targets */
-/* span.target.internal */
-/* Footnote References */
-/* a.footnote-reference */
-/* Citation References */
-/* a.citation-reference */
-
-</style>
-</head>
-<body>
-<main id="babel-greek">
-<h1 class="title">babel-greek</h1>
-<p class="subtitle" id="babel-support-for-the-greek-language-and-script">Babel support for the Greek language and script</p>
-<dl class="docinfo simple">
-<dt class="copyright">Copyright</dt>
-<dd class="copyright">© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
-© 2013 – 2020 Günter Milde.</dd>
-<dt class="licence">Licence</dt>
-<dd class="licence"><p>This work may be distributed and/or modified under the
-conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either
-version 1.3 of this license or any later version.</p>
-</dd>
-</dl>
-<div class="abstract topic">
-<p class="topic-title">Abstract</p>
-<p>Babel-greek is a contributed package providing support for the
-Greek language and script via the <a class="reference external" href="http://www.ctan.org/pkg/babel">Babel</a> system.</p>
-<p>The file <span class="docutils literal">greek.ldf</span> provides options for the monotonic
-(single-diacritic), polytonic (multiple-diacritic) and ancient
-orthography of the Greek language.</p>
-<p>Since 2013-07-19, babel-greek supports also Unicode-aware TeX
-engines (XeTeX/LuaTeX).</p>
-</div>
-<section id="news">
-<h2>News</h2>
-<table class="borderless">
-<colgroup>
-<col style="width: 6%" />
-<col style="width: 16%" />
-<col style="width: 78%" />
-</colgroup>
-<tbody>
-<tr><td><p>1.4</p></td>
-<td><p>2013-05-17</p></td>
-<td><p>New maintainer.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>The encoding definition file <span class="docutils literal">lgrenc.def</span> moved to the
-<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></td>
-</tr>
-<tr><td><p>1.5</p></td>
-<td><p>2013-06-21</p></td>
-<td><p>bugfixes and cleanup,</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>LICR macros in string definitions,</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>LGR font encoding not used with XeTeX/LuaTeX,</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>input “xgreek-fixes.def” from <a class="reference external" href="http://www.ctan.org/pkg/polyglossia">polyglossia</a> with Xe/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.5a</p></td>
-<td><p>2013-07-02</p></td>
-<td><p>Fix LaTeX bugs babel/3707, <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303">babel/4303</a> and <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305">babel/4305</a></p></td>
-</tr>
-<tr><td><p>1.6</p></td>
-<td><p>2013-07-19</p></td>
-<td><p>Experimental support for XeTeX/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.7</p></td>
-<td><p>2013-09-09</p></td>
-<td><p>CB-Fonts font definition files moved to CB-Fonts package.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Do not auto-load euenc.def with XeTeX/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.7a</p></td>
-<td><p>2013-09-13</p></td>
-<td><p>Fix bug <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360">babel/4360</a>: spurious <span class="docutils literal">\fi</span>.</p></td>
-</tr>
-<tr><td><p>1.7b</p></td>
-<td><p>2013-10-01</p></td>
-<td><p>bugfix: correct upcasing of babel strings with Xe/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.8</p></td>
-<td><p>2013-12-02</p></td>
-<td><p>Rename <span class="docutils literal">greek.dtx</span> to <span class="docutils literal"><span class="pre">babel-greek</span></span> so that <a class="reference external" href="http://www.ctan.org/pkg/texdoc">texdoc</a>
-shows the right documentation.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.</p></td>
-</tr>
-<tr><td><p>1.8a</p></td>
-<td><p>2013-12-03</p></td>
-<td><p>Set <span class="docutils literal">\encodingdefault</span> in <span class="docutils literal">\greekscript</span> to fix
-Greek in footnotes etc. with document language Greek.</p></td>
-</tr>
-<tr><td><p>1.9</p></td>
-<td><p>2014-07-20</p></td>
-<td><p>Added attribute for ancient Greek, load correct hyphenation
-patterns: Patch by Claudio Beccari. Bugfix for Makeuppercase</p></td>
-</tr>
-<tr><td><p>1.9a</p></td>
-<td><p>2014-09-12</p></td>
-<td><p>Remove duplicate code, documentation review.</p></td>
-</tr>
-<tr><td><p>1.9b</p></td>
-<td><p>2014-09-18</p></td>
-<td><p>Remove spurious whitespace from “extrasgreek” definition.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Use named macros instead of non-standard short macros
-for psili and dasia in the string definitions.</p></td>
-</tr>
-<tr><td><p>1.9c</p></td>
-<td><p>2014-10-21</p></td>
-<td><p>Fix dummy hyphenation language names (patch Ulrike Fischer).</p></td>
-</tr>
-<tr><td><p>1.9d</p></td>
-<td><p>2015-09-04</p></td>
-<td><p>Remove <cite>grsymb</cite> (macros for Greek symbols).
-This package is outdated and obsoleted by <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>
-(reported by Claudio Beccari).</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Unicode uc/lc corrections now in greek-fontenc.</p></td>
-</tr>
-<tr><td><p>1.9e</p></td>
-<td><p>2015-11-27</p></td>
-<td><p>Fix bug in lccode-setting loop (patch by Enrico Gregorio).</p></td>
-</tr>
-<tr><td><p>1.9f</p></td>
-<td><p>2016-02-04</p></td>
-<td><p>Support for new standard Unicode text font encoding “TU”.</p></td>
-</tr>
-<tr><td><p>1.9g</p></td>
-<td><p>2016-09-07</p></td>
-<td><p>Babel 3.9i deprecated <span class="docutils literal">\textlatin</span>
-and fixed <span class="docutils literal">\latinencoding</span>.</p></td>
-</tr>
-<tr><td><p>1.9h</p></td>
-<td><p>2019-07-11</p></td>
-<td><p>Move breathing composite commands to <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">textalpha</a>.</p></td>
-</tr>
-<tr><td><p>1.9i</p></td>
-<td><p>2020-02-28</p></td>
-<td><p>Update test for Unicode fonts.
-Fix accent in <span class="docutils literal">\seename</span> and <span class="docutils literal">\alsoname</span>.</p></td>
-</tr>
-<tr><td><p>1.9j</p></td>
-<td><p>2020-03-17</p></td>
-<td><p>Fix ampersand in math mode.</p></td>
-</tr>
-<tr><td><p>1.10</p></td>
-<td><p>2020-11-10</p></td>
-<td><p>Use <span class="docutils literal">TU</span> as <span class="docutils literal">\greekfontencoding</span> for Xe/LuaTeX
-(set by LaTeX as <a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews26.pdf">default font encoding for Unicode
-engines</a> since 2017/01/01).</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Use zig-zagy <span class="docutils literal">\textkoppa</span> for <span class="docutils literal">\greeknumeral{90}</span>.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>PDF-string secure implementation of <span class="docutils literal">\greeknumeral</span>
-from <a class="reference external" href="http://www.ctan.org/pkg/hyperref">hyperref</a>.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Load <span class="docutils literal"><span class="pre">puenc-greek.def</span></span> (from <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>)
-if used with hyperref (polytonic Greek in PDF-strings).</p></td>
-</tr>
-</tbody>
-</table>
-</section>
-<section id="files">
-<h2>Files</h2>
-<dl class="simple">
-<dt><a class="reference external" href="babel-greek.dtx">babel-greek.dtx</a>; <a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a></dt>
-<dd><p>Source of the language definition file <span class="docutils literal">greek.ldf</span> for use with <a class="reference external" href="http://www.ctan.org/pkg/babel">Babel</a>.</p>
-</dd>
-<dt><a class="reference external" href="athnum.dtx">athnum.dtx</a>; <a class="reference external" href="athnum.pdf">athnum.pdf</a></dt>
-<dd><p>Athenian Numerals.</p>
-</dd>
-<dt><a class="reference external" href="grmath.dtx">grmath.dtx</a>; <a class="reference external" href="grmath.pdf">grmath.pdf</a></dt>
-<dd><p>Greek log-like Operators.</p>
-</dd>
-<dt><a class="reference external" href="babel-greek.ins">babel-greek.ins</a></dt>
-<dd><p><a class="reference external" href="http://www.ctan.org/pkg/docstrip">DocStrip</a> batch file.</p>
-</dd>
-<dt><a class="reference external" href="test-greek.tex">test-greek.tex</a> <a class="reference external" href="test-greek-lgr.pdf">test-greek-lgr.pdf</a> <a class="reference external" href="test-greek-tu.pdf">test-greek-tu.pdf</a></dt>
-<dd><p>Test Babel-Greek features.</p>
-</dd>
-<dt><a class="reference external" href="test-8bit-greek.tex">test-8bit-greek.tex</a> <a class="reference external" href="test-8bit-greek.pdf">test-8bit-greek.pdf</a></dt>
-<dd><p>Additional tests and examples for 8-bit TeX.</p>
-</dd>
-<dt><a class="reference external" href="test-tu-lgr.tex">test-tu-lgr.tex</a> <a class="reference external" href="test-tu-lgr.pdf">test-tu-lgr.pdf</a></dt>
-<dd><p>Tests and Examples for XeTeX/LuaTeX with LGR 8-bit fonts.</p>
-</dd>
-<dt><a class="reference external" href="usage.tex">usage.tex</a> <a class="reference external" href="usage.pdf">usage.pdf</a></dt>
-<dd><p>Description of the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin transliteration</a>.</p>
-</dd>
-</dl>
-</section>
-<section id="requirements">
-<h2>Requirements</h2>
-<p>The “babel-greek” package requires the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> base package and font
-definition files from the <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package. The <a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a>
-package is recommended when using 8-bit TeX engines.</p>
-<p>Typesetting Greek texts requires <a class="reference internal" href="#greek-text-fonts">Greek text fonts</a>.</p>
-<p>Plain TeX is currently not supported. Patches are welcome.</p>
-</section>
-<section id="installation">
-<h2>Installation</h2>
-<p>If possible, get this package from your distribution using its installation
-manager.</p>
-<p>Otherwise, make sure LaTeX can find the required files:</p>
-<ul>
-<li><p>Download and unpack <cite>babel-greek.zip</cite>.</p></li>
-<li><p>Run <span class="docutils literal">tex</span> or <span class="docutils literal">latex</span> on the batch file <span class="docutils literal"><span class="pre">babel-greek.ins</span></span>.</p>
-<p>This will generate the files <span class="docutils literal">greek.ldf</span>, <span class="docutils literal">athnum.sty</span>, and
-<span class="docutils literal">grmath.sty</span> in the current directory.<a class="footnote-reference superscript" href="#id2" id="id1">1</a></p>
-</li>
-<li><p>Move all files ending in <span class="docutils literal">.ldf</span> or <span class="docutils literal">.sty</span> into a directory searched by
-TeX.</p></li>
-<li><p>To produce the documentation, run the file <span class="docutils literal">usage.tex</span> and all files
-ending in <span class="docutils literal">.dtx</span> through LaTeX.</p></li>
-</ul>
-<dl class="footnote superscript">
-<dt class="label" id="id2"><span class="superscript"><a class="fn-backref" href="#id1">1</a></span></dt>
-<dd><p>If these files already exist somewhere in the TeX-path, you will be
-warned that they might be overwritten. You can ignore this
-warning and answer <cite>y</cite> unless the <em>current directory</em> contains versions
-of these files you want to keep.</p>
-<p>This is done by <a class="reference external" href="http://www.ctan.org/pkg/docstrip">docstrip</a>. Try <span class="docutils literal">texdoc docstrip</span> for details.</p>
-</dd>
-</dl>
-</section>
-<section id="usage">
-<h2>Usage</h2>
-<p>Use the “greek” document option or pass the “greek” option to babel:</p>
-<pre class="literal-block">\usepackage[greek]{babel}</pre>
-<p>For polytonic Greek, set the language attribute “polutoniko”:</p>
-<pre class="literal-block">\usepackage[greek]{babel}
-\languageattribute{greek}{polutoniko}</pre>
-<p>or</p>
-<pre class="literal-block">\usepackage[greek.polutoniko,english]{babel}</pre>
-<p>Similarly, the attribute “ancient” selects the ancient Greek language
-variant.</p>
-<p>For details see <a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a> and the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> documentation.</p>
-<p>Input of Greek characters is possible as literal characters (with the
-<a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a> package or with XeTeX or LuaTeX) or the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin
-transliteration</a>. See <a class="reference external" href="usage.pdf">usage.pdf</a> and the example files provided with
-<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p>
-</section>
-<section id="greek-text-fonts">
-<h2>Greek text fonts</h2>
-<p>A list of Greek text fonts for use with LaTeX is available at the CTAN
-<a class="reference external" href="http://www.ctan.org/topic/font-greek">http://www.ctan.org/topic/font-greek</a></p>
-<p>With the XeTeX or LuaTeX engines, the user should ensure that the chosen
-font contains the required glyphs: the default Latin Modern fonts miss
-them. Warnings about missing charcters are only written to the log
-file, not the console output! Select a suitable font with <a class="reference external" href="http://www.ctan.org/pkg/fontspec">fontspec</a>.</p>
-<p>Examples for suitable fonts are the <a class="reference external" href="http://www.ctan.org/pkg/cm-unicode">CM-unicode</a> or the <a class="reference external" href="http://www.ctan.org/pkg/libertine">Linux
-Libertine</a> OpenType fonts as well as any system-wide installed OTF fonts
-that support Greek (e.g. <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>).</p>
-<p>The LGR <a class="reference external" href="http://mirror.ctan.org/macros/latex/base/encguide.pdf">font encoding</a> is the de-facto standard for typesetting Greek with
-8-bit LaTeX. Fonts in this encoding include the <a class="reference external" href="http://www.ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM),
-<a class="reference external" href="http://www.ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="http://www.ctan.org/pkg/kerkis">Kerkis</a> (matching URW Bookman), and the <a class="reference external" href="http://www.ctan.org/pkg/gfs">GFS font
-collection</a>. Setup of these fonts as Greek variant to matching Latin fonts
-is facilitated by the <a class="reference external" href="http://www.ctan.org/pkg/substitutefont">substitutefont</a> package.</p>
-</section>
-<section id="lgr-latin-transliteration">
-<h2>LGR Latin Transliteration</h2>
-<p>The LGR font encoding allows input of Greek characters via an ASCII
-transliteration. This enables simple input with a Latin keyboard. Characters
-with diacritics may be selected with accent macros (cf. <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>) or
-via the ligature definitions in the font (see <a class="reference external" href="usage.pdf">usage.pdf</a>).</p>
-<p>The following ASCII characters are converted to Greek symbols:</p>
-<table>
-<colgroup>
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-</colgroup>
-<tbody>
-<tr><td><p>A</p></td>
-<td><p>B</p></td>
-<td><p>G</p></td>
-<td><p>D</p></td>
-<td><p>E</p></td>
-<td><p>Z</p></td>
-<td><p>H</p></td>
-<td><p>J</p></td>
-<td><p>I</p></td>
-<td><p>K</p></td>
-<td><p>L</p></td>
-<td><p>M</p></td>
-<td><p>N</p></td>
-<td><p>X</p></td>
-<td><p>O</p></td>
-<td><p>P</p></td>
-<td><p>R</p></td>
-<td><p>S</p></td>
-<td></td>
-<td><p>T</p></td>
-<td><p>U</p></td>
-<td><p>F</p></td>
-<td><p>Q</p></td>
-<td><p>Y</p></td>
-<td><p>W</p></td>
-</tr>
-<tr><td><p>Α</p></td>
-<td><p>Β</p></td>
-<td><p>Γ</p></td>
-<td><p>Δ</p></td>
-<td><p>Ε</p></td>
-<td><p>Ζ</p></td>
-<td><p>Η</p></td>
-<td><p>Θ</p></td>
-<td><p>Ι</p></td>
-<td><p>Κ</p></td>
-<td><p>Λ</p></td>
-<td><p>Μ</p></td>
-<td><p>Ν</p></td>
-<td><p>Ξ</p></td>
-<td><p>Ο</p></td>
-<td><p>Π</p></td>
-<td><p>Ρ</p></td>
-<td><p>Σ</p></td>
-<td></td>
-<td><p>Τ</p></td>
-<td><p>Υ</p></td>
-<td><p>Φ</p></td>
-<td><p>Χ</p></td>
-<td><p>Ψ</p></td>
-<td><p>Ω</p></td>
-</tr>
-<tr><td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr><td><p>a</p></td>
-<td><p>b</p></td>
-<td><p>g</p></td>
-<td><p>d</p></td>
-<td><p>e</p></td>
-<td><p>z</p></td>
-<td><p>h</p></td>
-<td><p>j</p></td>
-<td><p>i</p></td>
-<td><p>k</p></td>
-<td><p>l</p></td>
-<td><p>m</p></td>
-<td><p>n</p></td>
-<td><p>x</p></td>
-<td><p>o</p></td>
-<td><p>p</p></td>
-<td><p>r</p></td>
-<td><p>s</p></td>
-<td><p>c</p></td>
-<td><p>t</p></td>
-<td><p>u</p></td>
-<td><p>f</p></td>
-<td><p>q</p></td>
-<td><p>y</p></td>
-<td><p>w</p></td>
-</tr>
-<tr><td><p>α</p></td>
-<td><p>β</p></td>
-<td><p>γ</p></td>
-<td><p>δ</p></td>
-<td><p>ε</p></td>
-<td><p>ζ</p></td>
-<td><p>η</p></td>
-<td><p>θ</p></td>
-<td><p>ι</p></td>
-<td><p>κ</p></td>
-<td><p>λ</p></td>
-<td><p>μ</p></td>
-<td><p>ν</p></td>
-<td><p>ξ</p></td>
-<td><p>ο</p></td>
-<td><p>π</p></td>
-<td><p>ρ</p></td>
-<td><p>σ</p></td>
-<td><p>ς</p></td>
-<td><p>τ</p></td>
-<td><p>υ</p></td>
-<td><p>φ</p></td>
-<td><p>χ</p></td>
-<td><p>ψ</p></td>
-<td><p>ω</p></td>
-</tr>
-</tbody>
-</table>
-<p>Accent symbols and punctuation:</p>
-<table>
-<colgroup>
-<col style="width: 29%" />
-<col style="width: 10%" />
-<col style="width: 3%" />
-<col style="width: 37%" />
-<col style="width: 14%" />
-<col style="width: 7%" />
-</colgroup>
-<tbody>
-<tr><td><p>tonos</p></td>
-<td><p><span class="docutils literal">'a</span></p></td>
-<td><p>ά</p></td>
-<td><p>semicolon</p></td>
-<td><p><span class="docutils literal">;</span></p></td>
-<td><p>·</p></td>
-</tr>
-<tr><td><p>varia</p></td>
-<td><p>`a</p></td>
-<td><p>ὰ</p></td>
-<td><p>question mark</p></td>
-<td><p><span class="docutils literal">?</span></p></td>
-<td><p>;</p></td>
-</tr>
-<tr><td><p>perispomeni</p></td>
-<td><p><span class="docutils literal">~a</span></p></td>
-<td><p>ᾶ</p></td>
-<td><p>left apostrophe</p></td>
-<td><p>` `</p></td>
-<td><p>‘</p></td>
-</tr>
-<tr><td><p>dasia</p></td>
-<td><p><span class="docutils literal">&lt;a</span></p></td>
-<td><p>ἁ</p></td>
-<td><p>right apostrophe</p></td>
-<td><p><span class="docutils literal">''</span></p></td>
-<td><p>’</p></td>
-</tr>
-<tr><td><p>psili</p></td>
-<td><p><span class="docutils literal">&gt;a</span></p></td>
-<td><p>ἀ</p></td>
-<td><p>left quotation mark</p></td>
-<td><p><span class="docutils literal">((</span></p></td>
-<td><p>«</p></td>
-</tr>
-<tr><td><p>ypogegrammeni</p></td>
-<td><p><span class="docutils literal">a|</span></p></td>
-<td><p>ᾳ</p></td>
-<td><p>right quotation mark</p></td>
-<td><p><span class="docutils literal">))</span></p></td>
-<td><p>»</p></td>
-</tr>
-<tr><td><p>dialytika</p></td>
-<td><p><span class="docutils literal">&quot;i</span></p></td>
-<td><p>ϊ</p></td>
-<td><p>zero width non-joiner</p></td>
-<td><p>v</p></td>
-<td></td>
-</tr>
-</tbody>
-</table>
-<p>A major drawback of the LGR transliteration is that you cannot access Latin
-letters and some symbols if LGR is the active font encoding (e.g. in
-documents or parts of documents given the <cite>Babel</cite> language <span class="docutils literal">greek</span>). This
-means that for every Latin-written word or acronym an explicit
-language-switch is required. This problem can only be solved via a
-font-encoding comprising both Latin and Greek like the hypothetical T7 or
-Unicode (with XeTeX or LuaTeX).</p>
-<!-- References
-- - - - - - - - - - -->
-</section>
-</main>
-</body>
-</html>
diff --git a/macros/latex/contrib/babel-contrib/greek/README.md b/macros/latex/contrib/babel-contrib/greek/README.md
new file mode 100644
index 0000000000..652a58975d
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/README.md
@@ -0,0 +1,35 @@
+babel-greek
+===========
+Babel support for the Greek language
+------------------------------------
+
+Comprehensive support for the Greek language and script with
+[Babel](https://ctan.org/pkg/babel).
+
+**Version**: 1.12 ([changelog][1])
+
+**Copyright**: © 1997 Apostles Syropoulos, Claudio Beccari, Johannes Brahms,
+ © 2013 - 2023 Günter Milde.
+
+**License**:
+ This work may be distributed and/or modified under the conditions of the
+ [LaTeX Project Public License](http://www.latex-project.org/lppl.txt),
+ either version 1.3 of this license or any later version.
+
+**Home**: <https://codeberg.org/milde/greek-tex>
+
+**Latest Release**: <https://ctan.org/pkg/babel-greek>
+
+**Requires**: [greek-fontenc](https://ctan.org/pkg/greek-fontenc),
+ [text fonts supporting the Greek script][2]
+
+**Recommends**: [greek-inputenc](https://ctan.org/pkg/greek-inputenc)
+ (when used with 8-bit TeX/pdfTeX)
+
+See [babel-greek-doc][3] ([babel-greek-doc.rst][4]) for a detailed overview.
+
+
+[1]: babel-greek-doc.html#changelog
+[2]: babel-greek-doc.html#greek-text-fonts
+[3]: babel-greek-doc.html
+[4]: babel-greek-doc.rst
diff --git a/macros/latex/contrib/babel-contrib/greek/athnum.dtx b/macros/latex/contrib/babel-contrib/greek/athnum.dtx
index 3ea1f5325a..3c1f3f4636 100644
--- a/macros/latex/contrib/babel-contrib/greek/athnum.dtx
+++ b/macros/latex/contrib/babel-contrib/greek/athnum.dtx
@@ -1,11 +1,8 @@
% \iffalse meta-comment
%
-% Copyright 1989-2008 Johannes L. Braams and any individual authors
-% listed elsewhere in this file. All rights reserved.
-%
-% This file is part of the Babel system.
-% --------------------------------------
-%
+% This file is part of the babel-greek package.
+% ---------------------------------------------
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,33 +10,19 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
-% The Current Maintainer of this work is Johannes Braams.
-%
-% The list of all files belonging to the Babel system is
-% given in the file `manifest.bbl. See also `legal.bbl' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
+%
+% The Current Maintainer of this work is Günter Milde <milde@users.sf.net>.
+%
% \fi
-%% \CheckSum{125}
+%% \CheckSum{150}
%\iffalse
%
%% This is file `athnum.dtx'
%% (c) 1997-2007 Apostolos Syropoulos.
+%% Changes in version 2.0 © 2022 Günter Milde
%% All rights reserved.
-%
-% Please report errors or suggestions for improvement to
-%
-% Apostolos Syropoulos
-% 366, 28th October Str.
-% GR-671 00 Xanthi, GREECE
-% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr
-%
%\fi
%
% \iffalse
@@ -62,26 +45,25 @@
%</driver>
% \end{macrocode}
% \fi
-%
-%\title{Athenian Numerals II\footnote{The documentation of this
-% package is essentially the same as that of the package `grnumalt'.
-% The `II' serves as a means to distinguish the two documents.}}
+%\title{Attic (or Athenian) Numerals}
% \author{Apostolos Syropoulos\\366, 28th October Str.\\
% GR-671 00 Xanthi, HELLAS\\ Email:\texttt{apostolo@platon.ee.duth.gr}}
% \date{2003/08/24}
%\maketitle
-%
+%
%\MakeShortVerb{\|}
%
%\section{Introduction}
-%
-% This \LaTeX\ package implements the macro
+%
+% This \LaTeX\ package implements the macro
% \DescribeMacro{\athnum}
% |\athnum|. The macro transforms an Arabic numeral, i.e., the kind
% of numerals we all use (e.g., 1, 5, 789 etc), to the corresponding
-% {\itshape Athenian} numeral. Athenian numerals were in use only in
-% ancient Athens. The package can be used only in conjunction with the
-% |greek| option of the |babel| package.
+% {\itshape Athenian} (or \emph{Attic} numeral. Athenian numerals were in
+% use mainly in ancient Athens. The package requires a Greek text font and
+% the |greek-fontenc| package.\footnote{%
+% Up to version 1.1, `athnum' required that Babel was loaded with the
+% |greek| option. Version 2.0 sets up Greek font support autonomously.}
%
%\section{The Numbering System}
%
@@ -95,57 +77,92 @@
% \item $\Pi$ denotes the number five (5)
% \item $\Delta$ denotes the number ten (10)
% \item H denotes the number one hundred (100)
-% \item X denotes the number one thousand (1000)
+% \item X denotes the number one thousand (1000)
% \item M denotes the number ten thousands (10000)
%\end{itemize}
-% Moreover, the letters $\Delta$, H, X, and M under the letter $\Pi$,
-% denote five times their original value, e.g., the symbol
-% \PiIt{X}, denotes the number 5000, and the symbol
+% Moreover, the letters $\Delta$, H, X, and M under the letter $\Pi$,
+% denote five times their original value, e.g., the symbol
+% \PiIt{X}, denotes the number 5000, and the symbol
% \PiIt{$\Delta$}, denotes the number 50. It must be noted that
% the numbering system does not provide negative numerals or a symbol for
-% zero.
+% zero.
%
% The Athenian numbering system is described, among others, in an article in
% Encyclopedia $\Delta o\mu\acute{\eta}$, Vol. 2, page 280, 7th edition,
% Athens, October 2, 1975.
%
-% \section{The Code}
+% \section{The Code}
+%
+% \changes{athnum-2.0}{2022/12/08}{%
+% Do not require Babel to be loaded with the |greek| option.\\
+% Use LICR macros instead of the Latin transliteration for Greek letters
+% to fix working with Unicode fonts.\\
+% Drop the backwards compatibility definitions for PiDelta, PiEta,
+% PiChi, and PiMu.}
+%
% Before we do anything further, we have to identify the package.
% \StopEventually
%
% \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}[1996/01/01]
-\ProvidesPackage{athnum}[2003/08/24\space v1.1]
-\typeout{Package: `athnum' v1.1\space <2003/08/24> (A. Syropoulos)}
-% \end{macrocode}
-% Next we check to see if the |babel| package is loaded with at least
-% the |greek| option. In case it isn't, we opt to produce an error message.
-% \begin{macrocode}
-\@ifpackagewith{babel}{greek}{}{%
- \@ifpackagewith{babel}{polutonikogreek}{}{%
- \PackageError{athnum}{%
- `greek' option of the `babel'\MessageBreak
- package hasn't been loaded}{%
- The commands provided by this package\MessageBreak
- are specially designed for greek language\MessageBreak
- typesetting with the `babel' package. Load\MessageBreak
- it with at least the `greek' option.}\relax
- }}
+\ProvidesPackage{athnum}[2022/12/08\space v2.0]
+\typeout{Package: `athnum' v2.0\space <2022/12/08> (A. Syropoulos)}
% \end{macrocode}
+% \section{Font setup}
+%
+% Typesetting Greek texts requires a font with Greek characters:
+%
+% For 8-bit LaTeX, this package uses fonts with the LGR font encoding.
+% With the XeTeX or LuaTeX engines and Unicode fonts, the user must ensure
+% that the selected font contains the required glyphs
+% (only few fonts support the "GREEK ACROPHONIC ..." characters).
+% LGR-encoded fonts can also be used alongside Unicode fonts with XeTeX/LuaTeX
+% to enable the input of Greek letters via the Latin transliteration provided by
+% this font encoding.
%
-% As it is mentioned in the introduction, the Athenian numerals employ
-% some special digits. These digits are included in the |cb| fonts of
-% Claudio Beccari, and so we must provide access commands.
+% \DescribeMacro\greekfontencoding
+% We test for available font encodings and set |\greekfontencoding|
+% and the internal macro |\athnum@greek@fontencdef| with the name of the
+% font definition file that defines the required Greek LICR macros.
+% The default is LGR for 8-bit TeX engines and TU for Xe/LuaTeX.
% \begin{macrocode}
-\DeclareTextCommand{\PiDelta}{LGR}{\char"02\relax}
-\DeclareTextCommand{\PiEta}{LGR}{\char"03\relax}
-\DeclareTextCommand{\PiChi}{LGR}{\char"04\relax}
-\DeclareTextCommand{\PiMu}{LGR}{\char"05\relax}
+\ifdefined \UnicodeEncodingName % set by LaTeX for XeTeX/LuaTeX
+ \providecommand*{\greekfontencoding}{\UnicodeEncodingName}
+ \providecommand*{\athnum@greek@fontencdef}{tuenc-greek}
+\else
+ \providecommand*{\greekfontencoding}{LGR}
+ \providecommand*{\athnum@greek@fontencdef}{lgrenc}
+\fi
% \end{macrocode}
-%\begin{macro}{\@@athnum}
-% Now, we turn our attention to the definition of the macro
-% |\@@athnum|. This macro uses one integer variable (or counter in
+% Ensure that the Greek LICR macros are available:
+% \begin{macrocode}
+\@ifl@aded{def}{\athnum@greek@fontencdef}{}
+{% else
+ \InputIfFileExists{\athnum@greek@fontencdef .def}{}{% else
+ \PackageError{athnum}{Font support for the Greek script missing.\\
+ can't typeset Greek symbols.\\
+ Install the "greek-fontenc" package\\
+ or use XeTeX/LuaTeX.}
+ {I can't find the \athnum@greek@fontencdef .def file
+ for the Greek fonts (encoding \greekfontencoding)}
+ \@@end
+ }
+}
+% \end{macrocode}
+% \begin{macro}{\ensuregreek}
+% The TextCommand |\ensuregreek| sets it argument in |\greekfontencoding|
+% if the current font encoding does not provide a (typically empty) local
+% variant.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\ensuregreek}[1]{%
+ \leavevmode{\fontencoding{\greekfontencoding}\selectfont #1}}
+% \end{macrocode}
+% \end{macro}
+%
+%\begin{macro}{\@@athnum}
+% Now, we turn our attention to the definition of the macro
+% |\@@athnum|. This macro uses one integer variable (or counter in
% \TeX's jargon.)
% \begin{macrocode}
\newcount\@ath@num
@@ -154,18 +171,18 @@
% \begin{macrocode}
\DeclareRobustCommand*{\@@athnum}[1]{%
% \end{macrocode}
-% After assigning to variable |\@ath@num| the value of the macro's argument,
+% After assigning to variable |\@ath@num| the value of the macro's argument,
%we make sure that the argument is in the expected range, i.e., it is greater
-% than zero, and less or equal to $249999$. In case it isn't, we simply
+% than zero, and less or equal to $249999$. In case it isn't, we simply
% produce a |\space|, warn the user about it and quit. Although, the
% |\athnum| macro is capable to produce an Athenian numeral for even greater
% intergers, the following argument by Claudio Beccari convised me to place
% this above upper limit:
-% \begin{quote}
+% \begin{quote}
% According to psychological perception studies (that ancient Athenians
% and Romans perfectly knew without needing to study Freud and Jung)
% living beings (which includes at least all vertebrates, not only
-% humans) can perceive up to four randomly set objects of the same kind
+% humans) can perceive up to four randomly set objects of the same kind
% without the need of counting, the latter activity being a specific
% acquired ability of human kind; the biquinary numbering notation
% used by the Athenians and the Romans exploits this natural
@@ -187,61 +204,64 @@
% computation. If the number is greater than $49999$, then it certainly
% has at least one \PiIt{M} ``digit''. We find all such digits by continuously
% subtracting $50000$ from |\@ath@num|, until |\@ath@num| becomes less than
-% $50000$.
+% $50000$.
% \begin{macrocode}
\@whilenum\@ath@num>49999\do{%
- \PiMu\advance\@ath@num-50000}%
+ \textpentemuria\advance\@ath@num-50000}%
% \end{macrocode}
% We now check for tens of thousands.
% \begin{macrocode}
\@whilenum\@ath@num>9999\do{%
- M\advance\@ath@num-\@M}%
+ \textMu\advance\@ath@num-\@M}%
% \end{macrocode}
-% Since a number can have only one \PiIt{X} ``digit'' (equivalent to 5000), it
+% Since a number can have only one \PiIt{X} ``digit'' (equivalent to 5000), it
% is easy to check it out and produce the corresponding numeral in case it does
% have one.
% \begin{macrocode}
\ifnum\@ath@num>4999%
- \PiChi\advance\@ath@num-5000%
+ \textpenteqilioi\advance\@ath@num-5000%
\fi\relax
% \end{macrocode}
% Next, we check for thousands, the same way we checked for tens of thousands.
% \begin{macrocode}
\@whilenum\@ath@num>999\do{%
- Q\advance\@ath@num-\@m}%
+ \textChi\advance\@ath@num-\@m}%
% \end{macrocode}
% Like the five thousands, a numeral can have at most one \PiIt{H} ``digit''
% (equivalent to 500).
% \begin{macrocode}
\ifnum\@ath@num>499%
- \PiEta\advance\@ath@num-500%
+ \textpentehekaton\advance\@ath@num-500%
\fi\relax
% \end{macrocode}
% It is time to check hundreds, which follow the same pattern as thousands
% \begin{macrocode}
\@whilenum\@ath@num>99\do{%
- H\advance\@ath@num-100}%
+ \textEta\advance\@ath@num-100}%
% \end{macrocode}
% A numeral can have only one \PiIt{$\Delta$} ``digit'' (equivalent to 50).
-% \begin{macrocode}
+% \begin{macrocode}
\ifnum\@ath@num>49%
- \PiDelta\advance\@ath@num-50%
+ \textpentedeka\advance\@ath@num-50%
\fi\relax
% \end{macrocode}
% Let's check now decades.
-% \begin{macrocode}
+% \begin{macrocode}
\@whilenum\@ath@num>9\do{%
- D\advance\@ath@num by-10}%
+ \textDelta\advance\@ath@num by-10}%
% \end{macrocode}
% We check for five and, finally, for the digits 1, 2, 3, and 4.
% \begin{macrocode}
\@whilenum\@ath@num>4\do{%
- P\advance\@ath@num-5}%
- \ifcase\@ath@num\or I\or II\or III\or IIII\fi%
+ \textPi\advance\@ath@num-5}%
+ \ifcase\@ath@num \or \textIota
+ \or \textIota\textIota
+ \or \textIota\textIota\textIota
+ \or \textIota\textIota\textIota\textIota\fi%
\fi\fi}
% \end{macrocode}
%\end{macro}
-%
+%
%\begin{macro}{\@athnum}
% The command |\@athnum| has one argument, which
% is a counter. It calls the command |\@@athnum| to process the value of
@@ -255,11 +275,13 @@
% The command |\athnum| is a wrapper that declares
% a new counter in a local scope, assigns to it the argument of the command
% and calls the macro |\@athnum|. This way the command can process correctly
-% either a number or a counter.
+% either a number or a counter.
% \begin{macrocode}
\def\athnum#1{%
- \@ath@num#1\relax
- \@athnum{\@ath@num}}
+ \ensuregreek{%
+ \@ath@num#1\relax
+ \@athnum{\@ath@num}}%
+ }
%</package>
% \end{macrocode}
%\end{macro}
@@ -268,9 +290,9 @@
% I would like to thank Claudio Beccari for reading the documentation
% and for his very helpful suggestions. In addition, Antonis Tsolomitis
% spotted a bug in the first version, which is corrected in the present
-% version.
+% version.
% \section*{Dedication}
-% I would like to dedicate this piece of work to my son
+% I would like to dedicate this piece of work to my son
% \begin{center}Demetrios-Georgios.\end{center}
% \Finale
%
diff --git a/macros/latex/contrib/babel-contrib/greek/athnum.pdf b/macros/latex/contrib/babel-contrib/greek/athnum.pdf
index 6301b00730..060d16210b 100644
--- a/macros/latex/contrib/babel-contrib/greek/athnum.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/athnum.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html
new file mode 100644
index 0000000000..0e108edc12
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html
@@ -0,0 +1,1387 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="generator" content="Docutils 0.20b.dev: https://docutils.sourceforge.io/" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<meta name="dcterms.rights" content="© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 – 2022 Günter Milde." />
+<title>babel-greek</title>
+<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>
+<style type="text/css">
+
+/* Minimal style sheet for the HTML output of Docutils. */
+/* */
+/* :Author: Günter Milde, based on html4css1.css by David Goodger */
+/* :Id: $Id$ */
+/* :Copyright: © 2015, 2021 Günter Milde. */
+/* :License: Released under the terms of the `2-Clause BSD license`_, */
+/* in short: */
+/* */
+/* Copying and distribution of this file, with or without modification, */
+/* are permitted in any medium without royalty provided the copyright */
+/* notice and this notice are preserved. */
+/* */
+/* This file is offered as-is, without any warranty. */
+/* */
+/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
+
+/* This CSS3 stylesheet defines rules for Docutils elements without */
+/* HTML equivalent. It is required to make the document semantics visible. */
+/* */
+/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */
+
+/* titles */
+p.topic-title,
+p.admonition-title,
+p.system-message-title {
+ font-weight: bold;
+}
+p.sidebar-title,
+p.rubric {
+ font-weight: bold;
+ font-size: larger;
+}
+p.rubric {
+ color: maroon;
+}
+p.subtitle,
+p.section-subtitle,
+p.sidebar-subtitle {
+ font-weight: bold;
+ margin-top: -0.5em;
+}
+h1 + p.subtitle {
+ font-size: 1.6em;
+}
+a.toc-backref {
+ color: inherit;
+ text-decoration: none;
+}
+
+/* Warnings, Errors */
+.system-messages h2,
+.system-message-title,
+span.problematic {
+ color: red;
+}
+
+/* Inline Literals */
+.docutils.literal {
+ font-family: monospace;
+ white-space: pre-wrap;
+}
+/* do not wrap at hyphens and similar: */
+.literal > span.pre { white-space: nowrap; }
+
+/* Lists */
+
+/* compact and simple lists: no margin between items */
+.simple li, .simple ul, .simple ol,
+.compact li, .compact ul, .compact ol,
+.simple > li p, dl.simple > dd,
+.compact > li p, dl.compact > dd {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+/* Nested Paragraphs */
+p:first-child { margin-top: 0; }
+p:last-child { margin-bottom: 0; }
+details > p:last-child { margin-bottom: 1em; }
+
+/* Table of Contents */
+.contents ul.auto-toc { /* section numbers present */
+ list-style-type: none;
+}
+
+/* Enumerated Lists */
+ol.arabic { list-style: decimal }
+ol.loweralpha { list-style: lower-alpha }
+ol.upperalpha { list-style: upper-alpha }
+ol.lowerroman { list-style: lower-roman }
+ol.upperroman { list-style: upper-roman }
+
+/* Definition Lists and Derivatives */
+dt .classifier { font-style: italic }
+dt .classifier:before {
+ font-style: normal;
+ margin: 0.5em;
+ content: ":";
+}
+/* Field Lists and similar */
+/* bold field name, content starts on the same line */
+dl.field-list,
+dl.option-list,
+dl.docinfo {
+ display: flow-root;
+}
+dl.field-list > dt,
+dl.option-list > dt,
+dl.docinfo > dt {
+ font-weight: bold;
+ clear: left;
+ float: left;
+ margin: 0;
+ padding: 0;
+ padding-right: 0.2em;
+}
+/* Offset for field content (corresponds to the --field-name-limit option) */
+dl.field-list > dd,
+dl.option-list > dd,
+dl.docinfo > dd {
+ margin-left: 9em; /* ca. 14 chars in the test examples, fit all Docinfo fields */
+}
+/* start nested lists on new line */
+dd > dl:first-child,
+dd > ul:first-child,
+dd > ol:first-child {
+ clear: left;
+}
+/* start field-body on a new line after long field names */
+dl.field-list > dd > *:first-child,
+dl.option-list > dd > *:first-child
+{
+ display: inline-block;
+ width: 100%;
+ margin: 0;
+}
+
+/* Bibliographic Fields (docinfo) */
+dl.docinfo pre.address {
+ font: inherit;
+ margin: 0.5em 0;
+}
+dl.docinfo > dd.authors > p { margin: 0; }
+
+/* Option Lists */
+dl.option-list > dt { font-weight: normal; }
+span.option { white-space: nowrap; }
+
+/* Footnotes and Citations */
+
+.footnote, .citation { margin: 1em 0; } /* default paragraph skip (Firefox) */
+/* hanging indent */
+.citation { padding-left: 2em; }
+.footnote { padding-left: 1.7em; }
+.footnote.superscript { padding-left: 1.0em; }
+.citation > .label { margin-left: -2em; }
+.footnote > .label { margin-left: -1.7em; }
+.footnote.superscript > .label { margin-left: -1.0em; }
+
+.footnote > .label + *,
+.citation > .label + * {
+ display: inline-block;
+ margin-top: 0;
+ vertical-align: top;
+}
+.footnote > .backrefs + *,
+.citation > .backrefs + * {
+ margin-top: 0;
+}
+.footnote > .label + p, .footnote > .backrefs + p,
+.citation > .label + p, .citation > .backrefs + p {
+ display: inline;
+ vertical-align: inherit;
+}
+
+.backrefs { user-select: none; }
+.backrefs > a { font-style: italic; }
+
+/* superscript footnotes */
+a[role="doc-noteref"].superscript,
+.footnote.superscript > .label,
+.footnote.superscript > .backrefs {
+ vertical-align: super;
+ font-size: smaller;
+ line-height: 1;
+}
+a[role="doc-noteref"].superscript > .fn-bracket,
+.footnote.superscript > .label > .fn-bracket {
+ /* hide brackets in display but leave for copy/paste */
+ display: inline-block;
+ width: 0;
+ overflow: hidden;
+}
+[role="doc-noteref"].superscript + [role="doc-noteref"].superscript {
+ padding-left: 0.15em; /* separate consecutive footnote references */
+ /* TODO: unfortunately, "+" also selects with text between the references. */
+}
+
+/* Alignment */
+.align-left {
+ text-align: left;
+ margin-right: auto;
+}
+.align-center {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+.align-right {
+ text-align: right;
+ margin-left: auto;
+}
+.align-top { vertical-align: top; }
+.align-middle { vertical-align: middle; }
+.align-bottom { vertical-align: bottom; }
+
+/* reset inner alignment in figures and tables */
+figure.align-left, figure.align-right,
+table.align-left, table.align-center, table.align-right {
+ text-align: inherit;
+}
+
+/* Text Blocks */
+.topic { margin: 1em 2em; }
+.sidebar,
+.admonition,
+.system-message {
+ margin: 1em 2em;
+ border: thin solid;
+ padding: 0.5em 1em;
+}
+div.line-block { display: block; }
+div.line-block div.line-block, pre { margin-left: 2em; }
+
+/* Code line numbers: dropped when copying text from the page */
+pre.code .ln { display: none; }
+pre.code code:before {
+ content: attr(data-lineno); /* …, none) fallback not supported by any browser */
+ color: gray;
+}
+
+/* Tables */
+table {
+ border-collapse: collapse;
+}
+td, th {
+ border: thin solid silver;
+ padding: 0 1ex;
+}
+.borderless td, .borderless th {
+ border: 0;
+ padding: 0;
+ padding-right: 0.5em /* separate table cells */
+}
+
+table > caption {
+ text-align: left;
+ margin-top: 0.2em;
+ margin-bottom: 0.2em;
+}
+table.captionbelow {
+ caption-side: bottom;
+}
+
+/* Document Header and Footer */
+header { border-bottom: 1px solid black; }
+footer { border-top: 1px solid black; }
+
+/* Images are block-level by default in Docutils */
+/* New HTML5 block elements: set display for older browsers */
+img, header, footer, main, aside, nav, section, figure, video, details {
+ display: block;
+}
+/* inline images */
+p img, p video, figure img, figure video {
+ display: inline;
+}
+
+</style>
+<style type="text/css">
+
+/* CSS3_ style sheet for the output of Docutils HTML5 writer. */
+/* Generic responsive design for all screen sizes. */
+/* */
+/* :Author: Günter Milde */
+/* */
+/* :Id: $Id$ */
+/* :Copyright: © 2021 Günter Milde. */
+/* :License: Released under the terms of the `2-Clause BSD license`_, */
+/* in short: */
+/* */
+/* Copying and distribution of this file, with or without modification, */
+/* are permitted in any medium without royalty provided the copyright */
+/* notice and this notice are preserved. */
+/* */
+/* This file is offered as-is, without any warranty. */
+/* */
+/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
+/* .. _CSS3: https://www.w3.org/Style/CSS/ */
+
+/* Note: */
+/* This style sheet is provisional: */
+/* the API is not settled and may change with any minor Docutils version. */
+
+
+
+/* General Settings */
+/* ================ */
+
+
+* { box-sizing: border-box; }
+
+body {
+ background-color: #fafaf6;
+ margin: auto;
+ --field-indent: 6.6em; /* indent of fields in field lists */
+ --sidebar-margin-right: 0; /* adapted in media queries below */
+}
+main {
+ counter-reset: figure table;
+}
+body > * {
+ background-color: white;
+ line-height: 1.6;
+ padding: 0.5rem calc(29% - 7.2rem); /* go from 5% to 15% (8.15em/54em) */
+ margin: auto;
+ max-width: 100rem;
+}
+sup, sub { /* avoid additional inter-line space for lines with sup/sub */
+ line-height: 1;
+}
+
+/* Vertical Space (Parskip) */
+p, ol, ul, dl, li,
+div.line-block,
+.topic,
+.footnote, .citation,
+div > math,
+table {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+h1, h2, h3, h4, h5, h6,
+dl > dd, details > p:last-child {
+ margin-bottom: 0.5em;
+}
+
+/* Indented Blocks */
+blockquote, figure, .topic {
+ margin: 1em 2%;
+ padding-left: 1em;
+}
+div.line-block div.line-block,
+pre, dd, dl.option-list {
+ margin-left: calc(2% + 1em);
+}
+
+/* Object styling */
+/* ============== */
+
+footer, header {
+ font-size: small;
+}
+
+/* Frontmatter */
+div.dedication {
+ padding: 0;
+ margin: 1.4em 0;
+ font-style: italic;
+ font-size: large;
+}
+.dedication p.topic-title {
+ display: none;
+}
+
+blockquote p.attribution,
+.topic p.attribution {
+ text-align: right;
+}
+
+/* Table of Contents */
+nav.contents ul {
+ padding-left: 1em;
+}
+ul.auto-toc > li > p { /* hanging indent */
+ padding-left: 1em;
+ text-indent: -1em;
+}
+main > nav.contents ul:not(.auto-toc) {
+ list-style-type: square;
+}
+main > nav.contents ul ul:not(.auto-toc) {
+ list-style-type: disc;
+}
+main > nav.contents ul ul ul:not(.auto-toc) {
+ list-style-type: '\2B29\ ';
+}
+main > nav.contents ul ul ul ul:not(.auto-toc) {
+ list-style-type: '\2B1D\ ';
+}
+main > nav.contents ul ul ul ul ul:not(.auto-toc) {
+ list-style-type: '\2B2A\ ';
+}
+nav.contents ul > li::marker {
+ color: grey;
+}
+
+/* Transitions */
+hr {
+ margin: 1em 10%;
+}
+
+/* Lists */
+
+ul, ol {
+ padding-left: 1.1em; /* indent by bullet width (Firefox, DejaVu fonts) */
+}
+dl.field-list > dd,
+dl.docinfo > dd {
+ margin-left: var(--field-indent); /* adapted in media queries or HTML */
+}
+dl.option-list > dd {
+ margin-left: 20%;
+}
+/* run-in: start field-body on same line after long field names */
+dl.field-list.run-in > dd p {
+ display: block;
+}
+/* "description style" like in most dictionaries, encyclopedias etc. */
+dl.description {
+ display: flow-root;
+}
+dl.description > dt {
+ clear: left;
+ float: left;
+ margin: 0;
+ padding: 0;
+ padding-right: 0.3em;
+ font-weight: bold;
+}
+dl.description > dd:after {
+ display: table;
+ content: "";
+ clear: left; /* clearfix for empty descriptions */
+}
+/* start lists nested in description/field lists on new line */
+dd > dl:first-child,
+dd > ul:first-child,
+dd > ol:first-child {
+ clear: left;
+}
+
+/* disclosures */
+details { padding-left: 1em; }
+summary { margin-left: -1em; }
+
+/* Footnotes and Citations */
+.footnote {
+ font-size: small;
+}
+
+/* Images, Figures, and Tables */
+img {
+ display: block;
+}
+p > img, p > a > img,
+figure > img, figure > a > img {
+ display: inline;
+}
+
+figcaption,
+table > caption {
+ /* font-size: small; */
+ font-style: italic;
+}
+figcaption > .legend {
+ font-size: small;
+ font-style: initial;
+}
+figure.numbered > figcaption > p:before {
+ counter-increment: figure;
+ content: "Figure " counter(figure) ": ";
+ font-weight: bold;
+ font-style: initial;
+}
+
+table tr {
+ text-align: left;
+ vertical-align: baseline;
+}
+table.booktabs { /* "booktabs" style (no vertical lines) */
+ border-top: 2px solid;
+ border-bottom: 2px solid;
+}
+table.booktabs * {
+ border: 0;
+}
+table.booktabs th {
+ border-bottom: thin solid;
+}
+table.numbered > caption:before {
+ counter-increment: table;
+ content: "Table " counter(table) ": ";
+ font-weight: bold;
+ font-style: initial;
+}
+
+/* Admonitions and System Messages */
+.admonition,
+div.system-message {
+ border: thin solid silver;
+ margin: 1em 2%;
+ padding: 0.5em 1em;
+}
+.caution p.admonition-title,
+.attention p.admonition-title,
+.danger p.admonition-title,
+.warning p.admonition-title,
+div.error {
+ color: maroon;
+}
+div.system-message > p > span.literal {
+ overflow-wrap: break-word;
+}
+
+/* Literal and Code */
+pre.literal-block, pre.doctest{
+ padding: 0.2em;
+ overflow-x: auto;
+}
+.literal-block, .doctest, span.literal {
+ background-color: #f6f9f8;
+}
+.system-message span.literal {
+ background-color: inherit;
+}
+
+/* basic highlighting: for a complete scheme, see */
+/* https://docutils.sourceforge.io/sandbox/stylesheets/ */
+pre.code .comment, code .comment { color: #5C6576 }
+pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
+pre.code .literal.string, code .literal.string { color: #0C5404 }
+pre.code .name.builtin, code .name.builtin { color: #352B84 }
+pre.code .deleted, code .deleted { background-color: #DEB0A1}
+pre.code .inserted, code .inserted { background-color: #A3D289}
+
+/* Hyperlink References */
+a {
+ text-decoration: none; /* for chromium */
+ /* Wrap links at any place, if this is the only way to prevent overflow */
+ overflow-wrap: break-word;
+}
+.contents a, a.toc-backref, a.citation-reference {
+ overflow-wrap: inherit;
+}
+/* Undecorated Links (see also minimal.css) */
+/* a.citation-reference, */
+.citation a.fn-backref {
+ color: inherit;
+}
+a:hover {
+ text-decoration: underline;
+}
+*:hover > a.toc-backref:after {
+ content: " \2191"; /* ↑ UPWARDS ARROW */
+ color: grey;
+}
+*:hover > a.self-link:after {
+ content: "\1F517"; /* LINK SYMBOL */
+ color: grey;
+ font-size: smaller;
+ margin-left: 0.2em;
+}
+/* highlight the target of the current URL */
+section:target > h2, section:target > h3, section:target > h4,
+section:target > h5, section:target > h6,
+.contents :target,
+.contents:target > .topic-title,
+[role="doc-biblioentry"]:target > .label,
+[role="doc-biblioref"]:target,
+[role="note"]:target, /* Docutils 0.18 ... 0.19 */
+[role="doc-footnote"]:target, /* Docutils >= 0.20 */
+[role="doc-noteref"]:target {
+ background-color: #d2e6ec;
+}
+
+/* Block Alignment */
+/* Let content flow to the side of aligned images and figures */
+
+/* no floats around this elements */
+footer, header, hr,
+h1, h2, h3 {
+ clear: both;
+}
+
+img.align-left,
+video.align-left,
+figure.align-left,
+table.align-left {
+ margin-left: 0;
+ padding-left: 0;
+ margin-right: 0.5em;
+ clear: left;
+ float: left;
+}
+img.align-right,
+video.align-right,
+figure.align-right,
+table.align-right {
+ margin-left: 0.5em;
+ margin-right: 0;
+ clear: right;
+ float: right;
+}
+
+/* Margin Elements */
+/* see below for screen size dependent rules */
+.sidebar,
+.marginal,
+.admonition.marginal {
+ max-width: 40%;
+ border: none;
+ background-color: #efefea;
+ margin: 0.5em var(--sidebar-margin-right) 0.5em 1em;
+ padding: 0.5em;
+ padding-left: 0.7em;
+ clear: right;
+ float: right;
+ font-size: small;
+}
+.sidebar {
+ width: 40%;
+}
+
+/* Math */
+/* for math-output=MathML (for math-output=HTML, see math.css) */
+math .boldsymbol {
+ font-weight: bold;
+}
+mstyle.mathscr, mi.mathscr {
+ font-family: STIX;
+}
+
+/* Adaptive page layout */
+/* ==================== */
+
+@media (max-width: 30em) {
+ /* Smaller margins and no floating elements for small screens */
+ /* (main text less than 40 characters/line) */
+ body > * {
+ padding: 0.5rem 5%;
+ line-height: 1.4
+ }
+ .sidebar,
+ .marginal,
+ .admonition.marginal {
+ width: auto;
+ max-width: 100%;
+ float: none;
+ }
+ dl.option-list,
+ pre {
+ margin-left: 0;
+ }
+ body {
+ --field-indent: 4em;
+ }
+ dl.field-list.narrow, dl.docinfo, dl.option-list {
+ --field-indent: 2.4em;
+ }
+ pre, pre * {
+ font-size: 0.9em;
+ /* overflow: auto; */
+ }
+}
+
+@media (min-width: 54em) {
+ /* Move ToC to the left */
+ /* Main text width before: 70% ≙ 35em ≙ 75…95 chrs (Dejavu/Times) */
+ /* after: ≳ 30em ≙ 54…70 chrs (Dejavu/Times) */
+ body.with-toc {
+ padding-left: 8%;
+ }
+ body.with-toc > * {
+ margin-left: 0;
+ padding-left: 22rem; /* fallback for webkit */
+ padding-left: min(22%, 22rem);
+ padding-right: 7%;
+ }
+ main > nav.contents { /* global ToC */
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: min(25%, 25em);
+ height: 100vh;
+ margin: 0;
+ background-color: #fafaf6;
+ padding: 1em 2% 0 2%;
+ overflow: auto;
+ }
+ main > nav.contents > * {
+ padding-left: 0;
+ line-height: 1.4;
+ }
+ main > nav.contents a {
+ color: inherit;
+ }
+}
+
+@media (min-width: 70em) {
+ body {
+ --field-indent: 9em;
+ }
+}
+
+@media (min-width: 77em) {
+ /* Move marginalia to 6rem from right border */
+ /* .sidebar, */
+ /* .marginal, */
+ /* .admonition.marginal { */
+ /* margin-right: calc(6rem - 15%); */
+ /* } */
+ /* BUG: margin is calculated for break point width */
+ /* workaround: variable + many breakpoints */
+ body > * {
+ padding-left: 18%;
+ padding-right: 28%; /* fallback for webkit */
+ padding-right: min(28%, 28rem);
+ --sidebar-margin-right: -20rem;
+ }
+ /* limit main text to ~ 50em ≙ 85…100 characters DejaVu rsp. …120 Times */
+ body.with-toc > * {
+ padding-left: min(22%, 22rem);
+ padding-right: calc(78% - 50rem); /* fallback for webkit */
+ padding-right: min(78% - 50rem, 28rem);
+ --sidebar-margin-right: 0;
+ }
+}
+
+@media (min-width: 85em) {
+ body.with-toc > * {
+ --sidebar-margin-right: -9rem;
+ }
+}
+
+@media (min-width: 90em) {
+ /* move marginalia into the margin */
+ body > * {
+ padding-left: min(22%, 22rem);
+ --sidebar-margin-right: -23rem;
+ }
+ body.with-toc > * {
+ --sidebar-margin-right: -14rem;
+ }
+}
+
+@media (min-width: 99em) {
+ /* move marginalia out of main text area */
+ body.with-toc > * {
+ --sidebar-margin-right: -20rem;
+ }
+ body > *, body.with-toc > * { /* for webkit */
+ padding-left: 22rem;
+ padding-right: 28rem;
+ }
+ .admonition.marginal,
+ .marginal {
+ width: 40%; /* make marginal figures, ... "full width" */
+ }
+}
+
+@media (min-width: 104em) {
+ body.with-toc > * {
+ --sidebar-margin-right: -23rem;
+ }
+}
+
+</style>
+</head>
+<body class="with-toc">
+<main id="babel-greek">
+<h1 class="title">babel-greek</h1>
+<p class="subtitle" id="babel-support-for-the-greek-language-and-script">Babel support for the Greek language and script</p>
+<dl class="docinfo simple">
+<dt class="copyright">Copyright<span class="colon">:</span></dt>
+<dd class="copyright">© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
+© 2013 – 2022 Günter Milde.</dd>
+<dt class="licence">Licence<span class="colon">:</span></dt>
+<dd class="licence"><p>This work may be distributed and/or modified under the
+conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either
+version 1.3 of this license or any later version.</p>
+</dd>
+<dt class="home">Home<span class="colon">:</span></dt>
+<dd class="home"><p><a class="reference external" href="https://codeberg.org/milde/greek-tex">https://codeberg.org/milde/greek-tex</a></p>
+</dd>
+<dt class="latest-release">Latest Release<span class="colon">:</span></dt>
+<dd class="latest-release"><p><a class="reference external" href="https://ctan.org/pkg/babel-greek">https://ctan.org/pkg/babel-greek</a></p>
+</dd>
+</dl>
+<div class="topic abstract" role="doc-abstract">
+<p class="topic-title">Abstract</p>
+<p><cite>babel-greek</cite> is a contributed package providing comprehensive
+support for the Greek language and script via the <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> system.
+Document authors can select between the <em>monotonic</em>
+(single-diacritic), <em>polytonic</em> (multiple-diacritic) and
+<em>ancient</em> orthography of the Greek language.</p>
+</div>
+<nav class="contents" id="contents" role="doc-toc">
+<p class="topic-title">Contents</p>
+<ul class="simple">
+<li><p><a class="reference internal" href="#files" id="toc-entry-1">Files</a></p></li>
+<li><p><a class="reference internal" href="#requirements" id="toc-entry-2">Requirements</a></p></li>
+<li><p><a class="reference internal" href="#download-and-installation" id="toc-entry-3">Download and Installation</a></p></li>
+<li><p><a class="reference internal" href="#usage" id="toc-entry-4">Usage</a></p></li>
+<li><p><a class="reference internal" href="#greek-text-fonts" id="toc-entry-5">Greek text fonts</a></p></li>
+<li><p><a class="reference internal" href="#lgr-latin-transliteration" id="toc-entry-6">LGR Latin Transliteration</a></p></li>
+<li><p><a class="reference internal" href="#greek-numerals" id="toc-entry-7">Greek Numerals</a></p></li>
+<li><p><a class="reference internal" href="#changelog" id="toc-entry-8">Changelog</a></p></li>
+<li><p><a class="reference internal" href="#references" id="toc-entry-9">References</a></p></li>
+</ul>
+</nav>
+<section id="files">
+<h2><a class="toc-backref" href="#toc-entry-1" role="doc-backlink">Files</a></h2>
+<dl class="simple">
+<dt><a class="reference external" href="babel-greek.dtx">babel-greek.dtx</a></dt>
+<dd><p>Source of the language definition file <span class="docutils literal">greek.ldf</span> for use with <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a>.
+[<a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a>]</p>
+</dd>
+<dt><a class="reference external" href="athnum.dtx">athnum.dtx</a></dt>
+<dd><p>Athenian (Attic, Herodianic, or acrophonic) Numerals. [<a class="reference external" href="athnum.pdf">athnum.pdf</a>]</p>
+</dd>
+<dt><a class="reference external" href="grmath.dtx">grmath.dtx</a></dt>
+<dd><p>Greek log-like Operators. [<a class="reference external" href="grmath.pdf">grmath.pdf</a>]</p>
+</dd>
+<dt><a class="reference external" href="babel-greek.ins">babel-greek.ins</a></dt>
+<dd><p><a class="reference external" href="https://ctan.org/pkg/docstrip">DocStrip</a> batch file.</p>
+</dd>
+<dt><a class="reference external" href="usage.tex">usage.tex</a></dt>
+<dd><p>Description of the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin transliteration</a> and the <a class="reference internal" href="#greek-numerals">Greek numerals</a>.
+[<a class="reference external" href="usage.pdf">usage.pdf</a>]</p>
+</dd>
+<dt>test-*</dt>
+<dd><p>Documented test sample documents.</p>
+</dd>
+</dl>
+</section>
+<section id="requirements">
+<h2><a class="toc-backref" href="#toc-entry-2" role="doc-backlink">Requirements</a></h2>
+<p>The <cite>babel-greek</cite> package requires the <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> package and font
+definition files from the <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a> package. The <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a>
+package is recommended when using 8-bit TeX engines.</p>
+<p>Typesetting Greek texts requires <a class="reference internal" href="#greek-text-fonts">Greek text fonts</a>.</p>
+<p>Plain TeX is currently not supported. Patches are welcome.</p>
+</section>
+<section id="download-and-installation">
+<h2><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Download and Installation</a></h2>
+<p>The simplest way is to get and install this package from your
+distribution using its installation manager.</p>
+<p>Alternatively:</p>
+<ul>
+<li><p>Download the latest <a class="reference external" href="https://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek.zip">release</a> from the package’s <a class="reference external" href="https://www.ctan.org/pkg/babel-greek">CTAN page</a> or a
+<a class="reference external" href="https://codeberg.org/milde/greek-tex/archive/master.zip">snapshot</a> of the <a class="reference external" href="https://codeberg.org/milde/greek-tex/">greek-tex</a> repository.</p></li>
+<li><p>Unpack the source archive to a temporary location.</p></li>
+<li><p>From the <span class="docutils literal"><span class="pre">babel-greek</span></span> directory,
+run <span class="docutils literal">tex</span> or <span class="docutils literal">latex</span> on the batch file <span class="docutils literal"><span class="pre">babel-greek.ins</span></span>.</p>
+<p>This will generate the files <span class="docutils literal">greek.ldf</span>, <span class="docutils literal">athnum.sty</span>, and
+<span class="docutils literal">grmath.sty</span> in the current directory.</p>
+</li>
+<li><p>Move all files ending in <span class="docutils literal">.ldf</span> or <span class="docutils literal">.sty</span> into a directory
+in the TeX search path.</p></li>
+<li><p>To produce the documentation, run the file <span class="docutils literal">usage.tex</span> and all files
+ending in <span class="docutils literal">.dtx</span> through LaTeX.</p></li>
+</ul>
+<p>The last steps can be automated using the Unix <a class="reference external" href="https://en.wikipedia.org/wiki/Make_(software)">make</a> tool.
+The provided <a class="reference external" href="Makefile">Makefile</a> defines the targets</p>
+<dl class="field-list simple">
+<dt><span class="docutils literal">all</span><span class="colon">:</span></dt>
+<dd><p>(re)build packages, documentation, and tests,</p>
+</dd>
+<dt><span class="docutils literal">packages</span><span class="colon">:</span></dt>
+<dd><p>(re)build the packages,</p>
+</dd>
+<dt><span class="docutils literal">doc</span><span class="colon">:</span></dt>
+<dd><p>(re)generate HTML and PDF documentation files,</p>
+</dd>
+<dt><span class="docutils literal">test</span><span class="colon">:</span></dt>
+<dd><p>run LaTeX on the test documents,</p>
+</dd>
+<dt><span class="docutils literal">update</span><span class="colon">:</span></dt>
+<dd><p>copy packages into a local TeX tree,<a class="footnote-reference superscript" href="#update" id="footnote-reference-1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p>
+</dd>
+<dt><span class="docutils literal"><span class="pre">update-package</span></span><span class="colon">:</span></dt>
+<dd><p>copy documentation and sources into a local
+TeX tree,<a class="footnote-reference superscript" href="#update" id="footnote-reference-2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p>
+</dd>
+<dt><span class="docutils literal">clean</span><span class="colon">:</span></dt>
+<dd><p>delete auxiliary files.</p>
+</dd>
+</dl>
+<aside class="footnote-list superscript">
+<aside class="footnote superscript" id="update" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></span>
+<span class="backrefs">(<a role="doc-backlink" href="#footnote-reference-1">1</a>,<a role="doc-backlink" href="#footnote-reference-2">2</a>)</span>
+<p>This is a simple <span class="docutils literal">cp <span class="pre">--update</span></span> to a pre-set path.
+The destination directory must exist. Files no longer present in the
+package are not removed.</p>
+</aside>
+</aside>
+</section>
+<section id="usage">
+<h2><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">Usage</a></h2>
+<p>Use the “greek” document option or pass the “greek” option to Babel,<a class="footnote-reference superscript" href="#footnote-1" id="footnote-reference-3" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a>
+e.g.:</p>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span></code></pre>
+<p>For polytonic Greek, set the language attribute “polutoniko”, either
+after loading Babel</p>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span>
+<span class="keyword">\languageattribute</span><span class="name builtin">{</span>greek<span class="name builtin">}{</span>polutoniko<span class="name builtin">}</span></code></pre>
+<p>or as modifier</p>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek.polutoniko,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span></code></pre>
+<p>Similarly, the attribute “ancient” selects the ancient Greek language
+variant.</p>
+<p>For details see <a class="citation-reference" href="#" id="citation-reference-1" role="doc-biblioref">[babel-greek.pdf]</a> and the <a class="reference external" href="https://ctan.org/pkg/babel">babel</a> documentation.</p>
+<p>Input of Greek characters is possible as literal characters (α … Ω)<a class="footnote-reference superscript" href="#footnote-2" id="footnote-reference-4" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a>, as LICR macro (<span class="docutils literal">\textalpha{} ... \textOmega</span>), or via the <a class="reference internal" href="#lgr-latin-transliteration">LGR
+Latin transliteration</a> (a … W)<a class="footnote-reference superscript" href="#footnote-3" id="footnote-reference-5" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a>. See
+<a class="citation-reference" href="#" id="citation-reference-2" role="doc-biblioref">[usage.pdf]</a> and the example files provided with <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p>
+<aside class="footnote-list superscript">
+<aside class="footnote superscript" id="footnote-1" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-3">2</a><span class="fn-bracket">]</span></span>
+<p>Alongside other languages that will be used in the document.
+The <em>last</em> language option sets the document’s main language.</p>
+</aside>
+<aside class="footnote superscript" id="footnote-2" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-4">3</a><span class="fn-bracket">]</span></span>
+<p>with the <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a> package or XeTeX/LuaTeX</p>
+</aside>
+<aside class="footnote superscript" id="footnote-3" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-5">4</a><span class="fn-bracket">]</span></span>
+<p>only with LGR fonts</p>
+</aside>
+</aside>
+</section>
+<section id="greek-text-fonts">
+<h2><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Greek text fonts</a></h2>
+<p>A list of <a class="reference external" href="https://ctan.org/topic/font-greek">Greek text fonts for use with LaTeX</a> is available at CTAN.</p>
+<p>The non-standard LGR <a class="reference external" href="https://mirrors.ctan.org/macros/latex/base/encguide.pdf">font encoding</a> is used for typesetting Greek with
+“traditional” 8-bit TeX engines (pdfTeX). Fonts in this encoding include
+the <a class="reference external" href="https://ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM), <a class="reference external" href="https://ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="https://ctan.org/pkg/kerkis">Kerkis</a> (matching
+URW Bookman), and the <a class="reference external" href="https://ctan.org/pkg/gfs">GFS font collection</a>.
+The package <a class="reference external" href="https://ctan.org/pkg/cbfonts-fd">cbfonts-fd</a> registers the CB fonts as Greek substitute for
+the Computer Modern and Latin Modern font families. For other font
+families, declaring Greek fonts as supplement for matching Latin font
+families can be done with the <code class="latex">\DeclareFontFamilySubstitution</code>
+macro (see section <cite>Providing font family substitutions</cite> in <a class="citation-reference" href="#fntguide" id="citation-reference-3" role="doc-biblioref">[fntguide]</a>).</p>
+<p>Unicode fonts used with XeTeX or LuaTeX provide slots for all Unicode
+characters in one font but commonly only a subset of the actual glyphs.</p>
+<aside class="admonition warning">
+<p class="admonition-title">Warning</p>
+<p>The default <strong>Latin Modern contains only a few Greek letters!</strong>
+Unsupported characters are silently dropped from the output.
+Warnings about missing glyphs are written to the log
+file only, not to the console.</p>
+</aside>
+<p>Select a suitable font with <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a>’s font selecting framework or
+directly with <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a>. Examples for suitable fonts are <a class="reference external" href="https://ctan.org/pkg/cm-unicode">CM-unicode</a>
+or <a class="reference external" href="https://ctan.org/pkg/libertine">Linux Libertine</a> as well as any system-wide installed OTF font
+that supports Greek (e.g. <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>). See, e.g., the list of free
+<a class="reference external" href="https://fontinfo.opensuse.org/scripts/script-Greek.html">fonts supporting Greek script</a> by openSUSE’s fontinfo.</p>
+</section>
+<section id="lgr-latin-transliteration">
+<h2><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">LGR Latin Transliteration</a></h2>
+<p>The LGR font encoding allows input of Greek characters via a Latin
+transliteration. This enables simple input with a Latin keyboard. Characters
+with diacritics may be selected with accent macros (cf. <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>) or
+via the ligature definitions in the font (see <a class="citation-reference" href="#" id="citation-reference-4" role="doc-biblioref">[usage.pdf]</a>).</p>
+<p>The following ASCII characters are converted to Greek symbols:</p>
+<table>
+<tbody>
+<tr><td><p>A</p></td>
+<td><p>B</p></td>
+<td><p>G</p></td>
+<td><p>D</p></td>
+<td><p>E</p></td>
+<td><p>Z</p></td>
+<td><p>H</p></td>
+<td><p>J</p></td>
+<td><p>I</p></td>
+<td><p>K</p></td>
+<td><p>L</p></td>
+<td><p>M</p></td>
+<td><p>N</p></td>
+<td><p>X</p></td>
+<td><p>O</p></td>
+<td><p>P</p></td>
+<td><p>R</p></td>
+<td><p>S</p></td>
+<td></td>
+<td><p>T</p></td>
+<td><p>U</p></td>
+<td><p>F</p></td>
+<td><p>Q</p></td>
+<td><p>Y</p></td>
+<td><p>W</p></td>
+</tr>
+<tr><td><p>Α</p></td>
+<td><p>Β</p></td>
+<td><p>Γ</p></td>
+<td><p>Δ</p></td>
+<td><p>Ε</p></td>
+<td><p>Ζ</p></td>
+<td><p>Η</p></td>
+<td><p>Θ</p></td>
+<td><p>Ι</p></td>
+<td><p>Κ</p></td>
+<td><p>Λ</p></td>
+<td><p>Μ</p></td>
+<td><p>Ν</p></td>
+<td><p>Ξ</p></td>
+<td><p>Ο</p></td>
+<td><p>Π</p></td>
+<td><p>Ρ</p></td>
+<td><p>Σ</p></td>
+<td></td>
+<td><p>Τ</p></td>
+<td><p>Υ</p></td>
+<td><p>Φ</p></td>
+<td><p>Χ</p></td>
+<td><p>Ψ</p></td>
+<td><p>Ω</p></td>
+</tr>
+<tr><td><p>a</p></td>
+<td><p>b</p></td>
+<td><p>g</p></td>
+<td><p>d</p></td>
+<td><p>e</p></td>
+<td><p>z</p></td>
+<td><p>h</p></td>
+<td><p>j</p></td>
+<td><p>i</p></td>
+<td><p>k</p></td>
+<td><p>l</p></td>
+<td><p>m</p></td>
+<td><p>n</p></td>
+<td><p>x</p></td>
+<td><p>o</p></td>
+<td><p>p</p></td>
+<td><p>r</p></td>
+<td><p>s</p></td>
+<td><p>c</p></td>
+<td><p>t</p></td>
+<td><p>u</p></td>
+<td><p>f</p></td>
+<td><p>q</p></td>
+<td><p>y</p></td>
+<td><p>w</p></td>
+</tr>
+<tr><td><p>α</p></td>
+<td><p>β</p></td>
+<td><p>γ</p></td>
+<td><p>δ</p></td>
+<td><p>ε</p></td>
+<td><p>ζ</p></td>
+<td><p>η</p></td>
+<td><p>θ</p></td>
+<td><p>ι</p></td>
+<td><p>κ</p></td>
+<td><p>λ</p></td>
+<td><p>μ</p></td>
+<td><p>ν</p></td>
+<td><p>ξ</p></td>
+<td><p>ο</p></td>
+<td><p>π</p></td>
+<td><p>ρ</p></td>
+<td><p>σ</p></td>
+<td><p>ς</p></td>
+<td><p>τ</p></td>
+<td><p>υ</p></td>
+<td><p>φ</p></td>
+<td><p>χ</p></td>
+<td><p>ψ</p></td>
+<td><p>ω</p></td>
+</tr>
+</tbody>
+</table>
+<p>Accent symbols and punctuation:</p>
+<table>
+<tbody>
+<tr><td><p>tonos</p></td>
+<td><p><span class="docutils literal">'a</span></p></td>
+<td><p>ά</p></td>
+<td><p>right apostrophe</p></td>
+<td><p><span class="docutils literal">''</span></p></td>
+<td><p>’</p></td>
+</tr>
+<tr><td><p>varia</p></td>
+<td><p><span class="docutils literal">`a</span></p></td>
+<td><p>ὰ</p></td>
+<td><p>left apostrophe</p></td>
+<td><p>``</p></td>
+<td><p>‘</p></td>
+</tr>
+<tr><td><p>dasia</p></td>
+<td><p><span class="docutils literal">&lt;a</span></p></td>
+<td><p>ἁ</p></td>
+<td><p>left quotation mark</p></td>
+<td><p><span class="docutils literal">((</span></p></td>
+<td><p>«</p></td>
+</tr>
+<tr><td><p>psili</p></td>
+<td><p><span class="docutils literal">&gt;a</span></p></td>
+<td><p>ἀ</p></td>
+<td><p>right quotation mark</p></td>
+<td><p><span class="docutils literal">))</span></p></td>
+<td><p>»</p></td>
+</tr>
+<tr><td><p>perispomeni</p></td>
+<td><p><span class="docutils literal">\~a</span></p></td>
+<td><p>ᾶ</p></td>
+<td><p>erotimatiko</p></td>
+<td><p><span class="docutils literal">?</span></p></td>
+<td><p>;</p></td>
+</tr>
+<tr><td><p>dialytika</p></td>
+<td><p><span class="docutils literal">&quot;i</span></p></td>
+<td><p>ϊ</p></td>
+<td><p>middle dot</p></td>
+<td><p><span class="docutils literal">;</span></p></td>
+<td><p>·</p></td>
+</tr>
+<tr><td><p>ypogegrammeni</p></td>
+<td><p><span class="docutils literal">a|</span></p></td>
+<td><p>ᾳ</p></td>
+<td><p>zero width non-joiner</p></td>
+<td><p><span class="docutils literal">av|</span></p></td>
+<td><p>αͺ</p></td>
+</tr>
+</tbody>
+</table>
+<p>The downside is, that you cannot print Latin letters and some symbols if
+LGR is the active font encoding. This means that for every Latin-written
+word or acronym in a Greek text part, an explicit font encoding switch is
+required.</p>
+</section>
+<section id="greek-numerals">
+<h2><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">Greek Numerals</a></h2>
+<p><cite>babel-greek</cite> provides the macros <code class="latex">\greeknumeral</code> and
+<code class="latex">\Greeknumeral</code> to transform a number into its corresponding
+<a class="reference external" href="https://en.wikipedia.org/wiki/Greek_numerals">Greek numeral</a>
+(see also section <a class="reference external" href="http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf#greek-numbering">Greek numbering</a> in the PDF documentation).</p>
+<p>The classic <cite>Greek numerals</cite>, also known as Ionic, Ionian, Milesian, or
+Alexandrian numerals were introduced to Athens along with the Ionic alphabet
+from the city of Miletus in Ionia replacing the <a class="reference external" href="https://en.wikipedia.org/wiki/Attic_numerals">Attic numerals</a>.
+They are still used in everyday life for ordinal numbers and
+more generally by the Orthodox church and certain scholars.</p>
+<p>Greek numerals use several now obsolete letters:
+<a class="reference external" href="https://en.wikipedia.org/wiki/Digamma">digamma</a> ϝ or <a class="reference external" href="https://en.wikipedia.org/wiki/Stigma_(ligature)">stigma</a> ϛ, <a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(letter)">koppa</a> ϟ or ϙ, and <a class="reference external" href="https://en.wikipedia.org/wiki/Sampi">sampi</a> ϡ <a class="citation-reference" href="#nicholas-05" id="citation-reference-5" role="doc-biblioref">[Nicholas-05]</a>.</p>
+<ul>
+<li><p>Standing for 6 is the <a class="reference external" href="https://en.wikipedia.org/wiki/Digamma">digamma</a> ϝ, the sixth letter of the Ionic
+alphabet (just as its Latin equivalent F is the sixth letter of the
+Latin alphabet). As Greek script turned to uncial and then lowercase,
+the numeral changed its shape and became conflated with another,
+similar sign: the ligature for sigma-tau <a class="reference external" href="https://en.wikipedia.org/wiki/Stigma_(ligature)">stigma</a> ϛ.
+The letters στ are frequently used as replacement.</p>
+<p>There is no significant tradition of ϝ being used as a numeral in
+editions of classical texts, even though the Ancients clearly used
+digamma rather than stigma as their numeral.</p>
+</li>
+<li><p>Three different signs are in use for the number 90: Classicists use the
+“archaic <a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(letter)">koppa</a>” ϙ, and more rarely its uncial form (resembling the
+“<a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(Cyrillic)">Cyrillic letter koppa</a>” ҁ or the “Gothic letter ninety” 𐍁).
+Modern Greeks use the “Greek letter koppa” ϟ exclusively and
+do not recognise ϙ at all, let alone as a glyph variant of ϟ.</p></li>
+<li><p>The sign for the number 900 is the <a class="reference external" href="https://en.wikipedia.org/wiki/Sampi">sampi</a> ϡ. Its shape, developed
+during its use in minuscule handwriting of the Byzantine era. Earlier
+variants similar to the “archaic sampi” ͳ and the “Gothic Letter Nine
+Hundred” 𐍊 are not used in Greek.</p></li>
+</ul>
+<p>Users can redefine the macros <code class="latex">\greeknumeralsix</code>,
+<code class="latex">\greeknumeralSix</code>, <code class="latex">\greeknumeralninety</code>, and
+<code class="latex">\greeknumeralNinety</code> to configure the used symbols,
+for example</p>
+<pre class="code latex literal-block"><code><span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralninety</span><span class="name builtin">}{</span><span class="keyword">\textkoppa</span><span class="name builtin">}</span>
+<span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralNinety</span><span class="name builtin">}{</span><span class="keyword">\textKoppa</span><span class="name builtin">}</span>
+<span class="keyword">\ifdefined</span> <span class="keyword">\textvarstigma</span>
+ <span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralSix</span><span class="name builtin">}{</span><span class="keyword">\textvarstigma</span><span class="name builtin">}</span>
+<span class="keyword">\fi</span></code></pre>
+<p>sets the symbol for 90 to the “modern” koppa ϟ also for ancient Greek
+and the “capital” 6 symbol to the variant stigma glyph (only defined in LGR).</p>
+</section>
+<section id="changelog">
+<h2><a class="toc-backref" href="#toc-entry-8" role="doc-backlink">Changelog</a></h2>
+<dl class="simple">
+<dt>1.4 (2013-05-17)</dt>
+<dd><ul class="simple">
+<li><p>New maintainer.</p></li>
+<li><p>The encoding definition file <span class="docutils literal">lgrenc.def</span> moved to the
+<a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></li>
+</ul>
+</dd>
+<dt>1.5 (2013-06-21)</dt>
+<dd><ul class="simple">
+<li><p>Bugfixes and cleanup.</p></li>
+<li><p>LICR macros in string definitions.</p></li>
+<li><p>LGR font encoding not used with XeTeX/LuaTeX.</p></li>
+<li><p>Input “xgreek-fixes.def” from <a class="reference external" href="https://ctan.org/pkg/polyglossia">polyglossia</a> with Xe/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.5a (2013-07-02)</dt>
+<dd><ul class="simple">
+<li><p>Fix LaTeX bugs babel/3707, <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303">babel/4303</a> and <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305">babel/4305</a></p></li>
+</ul>
+</dd>
+<dt>1.6 (2013-07-19)</dt>
+<dd><ul class="simple">
+<li><p>Experimental support for XeTeX/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.7 (2013-09-09)</dt>
+<dd><ul class="simple">
+<li><p>CB-Fonts font definition files moved to CB-Fonts package.</p></li>
+<li><p>Do not auto-load euenc.def with XeTeX/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.7a (2013-09-13)</dt>
+<dd><ul class="simple">
+<li><p>Fix bug <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360">babel/4360</a>: spurious <span class="docutils literal">\fi</span>.</p></li>
+</ul>
+</dd>
+<dt>1.7b (2013-10-01)</dt>
+<dd><ul class="simple">
+<li><p>Fix upcasing of babel strings with Xe/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.8 (2013-12-02)</dt>
+<dd><ul class="simple">
+<li><p>Rename <span class="docutils literal">greek.dtx</span> to <span class="docutils literal"><span class="pre">babel-greek</span></span> so that <a class="reference external" href="https://ctan.org/pkg/texdoc">texdoc</a>
+shows the right documentation.</p></li>
+<li><p>Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.</p></li>
+</ul>
+</dd>
+<dt>1.8a (2013-12-03)</dt>
+<dd><ul class="simple">
+<li><p>Set <span class="docutils literal">\encodingdefault</span> in <span class="docutils literal">\greekscript</span> to fix Greek
+in footnotes etc. with document language Greek.</p></li>
+</ul>
+</dd>
+<dt>1.9 (2014-07-20)</dt>
+<dd><ul class="simple">
+<li><p>New attribute for ancient Greek, load correct hyphenation
+patterns (patch by Claudio Beccari).</p></li>
+<li><p>Bugfix for <span class="docutils literal">\Makeuppercase</span></p></li>
+</ul>
+</dd>
+<dt>1.9a (2014-09-12)</dt>
+<dd><ul class="simple">
+<li><p>Remove duplicate code, documentation review.</p></li>
+</ul>
+</dd>
+<dt>1.9b (2014-09-18)</dt>
+<dd><ul class="simple">
+<li><p>Remove spurious whitespace from <span class="docutils literal">\extrasgreek</span> definition.</p></li>
+<li><p>Use named macros instead of non-standard short macros
+for <em>psili</em> and <em>dasia</em> in the string definitions.</p></li>
+</ul>
+</dd>
+<dt>1.9c (2014-10-21)</dt>
+<dd><ul class="simple">
+<li><p>Fix dummy hyphenation language names (patch by Ulrike Fischer).</p></li>
+</ul>
+</dd>
+<dt>1.9d (2015-09-04)</dt>
+<dd><ul class="simple">
+<li><p>Remove <cite>grsymb</cite> (macros for Greek symbols).
+This package is outdated and obsoleted by <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>
+(reported by Claudio Beccari).</p></li>
+<li><p>Unicode uc/lc corrections now in <cite>greek-fontenc</cite>.</p></li>
+</ul>
+</dd>
+<dt>1.9e (2015-11-27)</dt>
+<dd><ul class="simple">
+<li><p>Fix bug in lccode-setting loop (patch by Enrico Gregorio).</p></li>
+</ul>
+</dd>
+<dt>1.9f (2016-02-04)</dt>
+<dd><ul class="simple">
+<li><p>Support for new standard Unicode text font encoding “TU”.</p></li>
+</ul>
+</dd>
+<dt>1.9g (2016-09-07)</dt>
+<dd><ul class="simple">
+<li><p>Babel 3.9i deprecated <span class="docutils literal">\textlatin</span> and fixed <span class="docutils literal">\latinencoding</span>.
+1.9h (2019-07-11)</p></li>
+<li><p>Move breathing composite commands to <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">textalpha</a>.</p></li>
+</ul>
+</dd>
+<dt>1.9i (2020-02-28)</dt>
+<dd><ul class="simple">
+<li><p>Update test for Unicode fonts.</p></li>
+<li><p>Fix accent in <span class="docutils literal">\seename</span> and <span class="docutils literal">\alsoname</span>.</p></li>
+</ul>
+</dd>
+<dt>1.9j (2020-03-17)</dt>
+<dd><ul class="simple">
+<li><p>Fix ampersand in math mode.</p></li>
+</ul>
+</dd>
+<dt>1.10 (2020-11-10)</dt>
+<dd><ul class="simple">
+<li><p>Use <span class="docutils literal">TU</span> as <span class="docutils literal">\greekfontencoding</span> for Xe/LuaTeX (set by LaTeX as
+<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews26.pdf">default font encoding for Unicode engines</a> since 2017/01/01).</p></li>
+<li><p>Use zig-zaggy <span class="docutils literal">\textkoppa</span> for <span class="docutils literal">\greeknumeral{90}</span>.</p></li>
+<li><p>PDF-string secure implementation of <span class="docutils literal">\greeknumeral</span> from <a class="reference external" href="https://ctan.org/pkg/hyperref">hyperref</a>.</p></li>
+<li><p>Load <span class="docutils literal"><span class="pre">puenc-greek.def</span></span> (from <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>) if used with hyperref
+(polytonic Greek in PDF-strings).</p></li>
+</ul>
+</dd>
+<dt>1.11 (2020-11-20)</dt>
+<dd><ul class="simple">
+<li><p>Configurable <a class="reference internal" href="#greek-numerals">Greek numerals</a> 6 and 90.</p></li>
+<li><p>Save/restore previous font encoding instead of switching
+to hard-coded <span class="docutils literal">\latinencoding</span> when leaving Greek.</p></li>
+</ul>
+</dd>
+<dt>1.12 (2023-03-04)</dt>
+<dd><ul class="simple">
+<li><p>Do not change the uccode values if the LaTeX version is newer than
+2022/06. The new <span class="docutils literal">\MakeUppercase</span> definition ignores them and fails
+with the “dummy” character 0x9f (cf. <a class="citation-reference" href="#ltnews35" id="citation-reference-6" role="doc-biblioref">[ltnews35]</a>, <a class="reference external" href="https://github.com/latex3/latex2e/issues/987">LaTeX issue 987</a>).</p></li>
+<li><p>New modifiers <span class="docutils literal"><span class="pre">local-LGR-fixes</span></span> and <span class="docutils literal"><span class="pre">no-LGR-fixes</span></span> to address
+indexing problmes with Roman numerals (<a class="reference external" href="https://github.com/latex3/babel/issues/170">Babel issue 170</a>). Provisional.</p></li>
+<li><p>New TextCommand <span class="docutils literal">\EnsureStandardFontEncoding</span>.</p></li>
+<li><p>Rename <span class="docutils literal">\textgreek</span> to <span class="docutils literal">\lgrfont</span> to avoid confusion with a
+language changing command.</p></li>
+<li><p>Documentation update and refactoring.</p></li>
+<li><p>Drop LGR-local re-definition of <span class="docutils literal">\SS</span>.</p></li>
+<li><p><a class="reference external" href="athnum.dtx">athnum.dtx</a> 2.0:
+Don’t require Babel.
+Use LICR macros instead of the Latin transliteration.</p></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section id="references">
+<h2><a class="toc-backref" href="#toc-entry-9" role="doc-backlink">References</a></h2>
+<div role="list" class="citation-list">
+<div class="citation" id="fntguide" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-3">fntguide</a><span class="fn-bracket">]</span></span>
+<p>LaTeX Project Team <cite>LaTeX2e font selection</cite>, December 2021.
+<a class="reference external" href="https://www.latex-project.org/help/documentation/fntguide.pdf">https://www.latex-project.org/help/documentation/fntguide.pdf</a></p>
+</div>
+<div class="citation" id="ltnews35" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-6">ltnews35</a><span class="fn-bracket">]</span></span>
+<p>LaTeX Project Team <cite>LaTeX News 35</cite>, June 2022.
+<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews35.pdf">https://www.latex-project.org/news/latex2e-news/ltnews35.pdf</a></p>
+</div>
+<div class="citation" id="nicholas-05" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-5">Nicholas-05</a><span class="fn-bracket">]</span></span>
+<p>Nick Nicholas <cite>Numerals: Stigma, Koppa, Sampi</cite>, 2005.
+<a class="reference external" href="https://opoudjis.net/unicode/numerals.html">https://opoudjis.net/unicode/numerals.html</a></p>
+</div>
+<div class="citation" id="vlachou-22" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span>Vlachou-22<span class="fn-bracket">]</span></span>
+<p>Irene Vlachou
+<cite>Polytonic Greek: a guide for type designers</cite>, 2022.
+<a class="reference external" href="https://irenevl.github.io/Polytonic-tutorial/">https://irenevl.github.io/Polytonic-tutorial/</a></p>
+</div>
+<div class="citation" id="haralambous-98" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span>Haralambous-98<span class="fn-bracket">]</span></span>
+<p>Yannis Haralambous
+<cite>From Unicode to Typography, a Case Study: the Greek Script</cite>, 1998.
+<a class="reference external" href="https://hal.science/hal-02101618">https://hal.science/hal-02101618</a></p>
+</div>
+</div>
+</section>
+</main>
+</body>
+</html>
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst
new file mode 100644
index 0000000000..fe62a4ff66
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst
@@ -0,0 +1,414 @@
+babel-greek
+***********
+Babel support for the Greek language and script
+===============================================
+
+:Copyright: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
+ © 2013 -- 2022 Günter Milde.
+:Licence: This work may be distributed and/or modified under the
+ conditions of the `LaTeX Project Public License`_, either
+ version 1.3 of this license or any later version.
+
+:Home: https://codeberg.org/milde/greek-tex
+
+:Latest Release: https://ctan.org/pkg/babel-greek
+
+:Abstract: `babel-greek` is a contributed package providing comprehensive
+ support for the Greek language and script via the Babel_ system.
+ Document authors can select between the *monotonic*
+ (single-diacritic), *polytonic* (multiple-diacritic) and
+ *ancient* orthography of the Greek language.
+
+.. contents::
+
+Files
+-----
+
+`<babel-greek.dtx>`_
+ Source of the language definition file ``greek.ldf`` for use with Babel_.
+ [`<babel-greek.pdf>`_]
+`<athnum.dtx>`_
+ Athenian (Attic, Herodianic, or acrophonic) Numerals. [`<athnum.pdf>`_]
+`<grmath.dtx>`_
+ Greek log-like Operators. [`<grmath.pdf>`_]
+`<babel-greek.ins>`_
+ DocStrip_ batch file.
+`<usage.tex>`_
+ Description of the `LGR Latin transliteration`_ and the `Greek numerals`_.
+ [`<usage.pdf>`_]
+test-*
+ Documented test sample documents.
+
+
+Requirements
+------------
+
+The `babel-greek` package requires the Babel_ package and font
+definition files from the greek-fontenc_ package. The greek-inputenc_
+package is recommended when using 8-bit TeX engines.
+
+Typesetting Greek texts requires `Greek text fonts`_.
+
+Plain TeX is currently not supported. Patches are welcome.
+
+
+Download and Installation
+-------------------------
+
+The simplest way is to get and install this package from your
+distribution using its installation manager.
+
+Alternatively:
+
+* Download the latest `release`_ from the package's `CTAN page`_ or a
+ snapshot_ of the `greek-tex`_ repository.
+
+* Unpack the source archive to a temporary location.
+
+* From the ``babel-greek`` directory,
+ run ``tex`` or ``latex`` on the batch file ``babel-greek.ins``.
+
+ This will generate the files ``greek.ldf``, ``athnum.sty``, and
+ ``grmath.sty`` in the current directory.
+
+* Move all files ending in ``.ldf`` or ``.sty`` into a directory
+ in the TeX search path.
+
+* To produce the documentation, run the file ``usage.tex`` and all files
+ ending in ``.dtx`` through LaTeX.
+
+The last steps can be automated using the Unix `make`_ tool.
+The provided `<Makefile>`_ defines the targets
+
+:``all``: (re)build packages, documentation, and tests,
+:``packages``: (re)build the packages,
+:``doc``: (re)generate HTML and PDF documentation files,
+:``test``: run LaTeX on the test documents,
+:``update``: copy packages into a local TeX tree, [#update]_
+:``update-package``: copy documentation and sources into a local
+ TeX tree, [#update]_
+:``clean``: delete auxiliary files.
+
+.. [#update] This is a simple ``cp --update`` to a pre-set path.
+ The destination directory must exist. Files no longer present in the
+ package are not removed.
+
+.. _release:
+ https://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek.zip
+.. _CTAN page: https://www.ctan.org/pkg/babel-greek
+.. _greek-tex: https://codeberg.org/milde/greek-tex/
+.. _snapshot: https://codeberg.org/milde/greek-tex/archive/master.zip
+.. _make: https://en.wikipedia.org/wiki/Make_(software)
+
+
+Usage
+-----
+
+.. role:: latex(code)
+
+Use the "greek" document option or pass the "greek" option to Babel, [#]_
+e.g.:
+
+.. code:: latex
+
+ \usepackage[greek,english]{babel}
+
+For polytonic Greek, set the language attribute "polutoniko", either
+after loading Babel
+
+.. code:: latex
+
+ \usepackage[greek,english]{babel}
+ \languageattribute{greek}{polutoniko}
+
+or as modifier
+
+.. code:: latex
+
+ \usepackage[greek.polutoniko,english]{babel}
+
+Similarly, the attribute "ancient" selects the ancient Greek language
+variant.
+
+For details see [babel-greek.pdf]_ and the babel_ documentation.
+
+Input of Greek characters is possible as literal characters (α ... Ω)
+[#]_, as LICR macro (``\textalpha{} ... \textOmega``), or via the `LGR
+Latin transliteration`_ (a ... W) [#]_. See
+[usage.pdf]_ and the example files provided with greek-fontenc_.
+
+.. [#] Alongside other languages that will be used in the document.
+ The *last* language option sets the document's main language.
+.. [#] with the greek-inputenc_ package or XeTeX/LuaTeX
+.. [#] only with LGR fonts
+
+Greek text fonts
+----------------
+
+A list of `Greek text fonts for use with LaTeX`_ is available at CTAN.
+
+The non-standard LGR `font encoding`_ is used for typesetting Greek with
+"traditional" 8-bit TeX engines (pdfTeX). Fonts in this encoding include
+the `CB fonts`_ (matching CM), grtimes_ (Greek Times), Kerkis_ (matching
+URW Bookman), and the `GFS font collection`_.
+The package `cbfonts-fd`_ registers the CB fonts as Greek substitute for
+the Computer Modern and Latin Modern font families. For other font
+families, declaring Greek fonts as supplement for matching Latin font
+families can be done with the :latex:`\DeclareFontFamilySubstitution`
+macro (see section `Providing font family substitutions` in [fntguide]_).
+
+Unicode fonts used with XeTeX or LuaTeX provide slots for all Unicode
+characters in one font but commonly only a subset of the actual glyphs.
+
+.. Warning::
+ The default **Latin Modern contains only a few Greek letters!**
+ Unsupported characters are silently dropped from the output.
+ Warnings about missing glyphs are written to the log
+ file only, not to the console.
+
+Select a suitable font with Babel_'s font selecting framework or
+directly with fontspec_. Examples for suitable fonts are CM-unicode_
+or `Linux Libertine`_ as well as any system-wide installed OTF font
+that supports Greek (e.g. `Deja Vu`_). See, e.g., the list of free
+`fonts supporting Greek script`_ by openSUSE's fontinfo.
+
+.. _Greek text fonts for use with LaTeX: https://ctan.org/topic/font-greek
+.. _fonts supporting Greek script:
+ https://fontinfo.opensuse.org/scripts/script-Greek.html
+
+
+LGR Latin Transliteration
+-------------------------
+
+The LGR font encoding allows input of Greek characters via a Latin
+transliteration. This enables simple input with a Latin keyboard. Characters
+with diacritics may be selected with accent macros (cf. greek-fontenc_) or
+via the ligature definitions in the font (see [usage.pdf]_).
+
+The following ASCII characters are converted to Greek symbols:
+
+= = = = = = = = = = = = = = = = = = = = = = = = =
+A B G D E Z H J I K L M N X O P R S   T U F Q Y W
+Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ   Τ Υ Φ Χ Ψ Ω
+a b g d e z h j i k l m n x o p r s c t u f q y w
+α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω
+= = = = = = = = = = = = = = = = = = = = = = = = =
+
+Accent symbols and punctuation:
+
+============== ======= == ====================== ======= ==
+tonos ``'a`` ά right apostrophe ``''`` ’
+varia ```a`` ὰ left apostrophe \`\` ‘
+dasia ``<a`` ἁ left quotation mark ``((`` «
+psili ``>a`` ἀ right quotation mark ``))`` »
+perispomeni ``\~a`` ᾶ erotimatiko ``?`` ;
+dialytika ``"i`` ϊ middle dot ``;`` ·
+ypogegrammeni ``a|`` ᾳ zero width non-joiner ``av|`` αͺ
+============== ======= == ====================== ======= ==
+
+The downside is, that you cannot print Latin letters and some symbols if
+LGR is the active font encoding. This means that for every Latin-written
+word or acronym in a Greek text part, an explicit font encoding switch is
+required.
+
+
+Greek Numerals
+--------------
+
+`babel-greek` provides the macros :latex:`\greeknumeral` and
+:latex:`\Greeknumeral` to transform a number into its corresponding
+`Greek numeral <https://en.wikipedia.org/wiki/Greek_numerals>`__
+(see also section `Greek numbering`__ in the PDF documentation).
+
+__ http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/
+ greek/babel-greek.pdf#greek-numbering
+
+
+The classic `Greek numerals`, also known as Ionic, Ionian, Milesian, or
+Alexandrian numerals were introduced to Athens along with the Ionic alphabet
+from the city of Miletus in Ionia replacing the `Attic numerals`_.
+They are still used in everyday life for ordinal numbers and
+more generally by the Orthodox church and certain scholars.
+
+Greek numerals use several now obsolete letters:
+digamma_ ϝ or stigma_ ϛ, koppa_ ϟ or ϙ, and sampi_ ϡ [Nicholas-05]_.
+
+* Standing for 6 is the digamma_ ϝ, the sixth letter of the Ionic
+ alphabet (just as its Latin equivalent F is the sixth letter of the
+ Latin alphabet). As Greek script turned to uncial and then lowercase,
+ the numeral changed its shape and became conflated with another,
+ similar sign: the ligature for sigma-tau stigma_ ϛ.
+ The letters στ are frequently used as replacement.
+
+ There is no significant tradition of ϝ being used as a numeral in
+ editions of classical texts, even though the Ancients clearly used
+ digamma rather than stigma as their numeral.
+
+* Three different signs are in use for the number 90: Classicists use the
+ "archaic koppa_" ϙ, and more rarely its uncial form (resembling the
+ "`Cyrillic letter koppa`_" ҁ or the "Gothic letter ninety" 𐍁).
+ Modern Greeks use the "Greek letter koppa" ϟ exclusively and
+ do not recognise ϙ at all, let alone as a glyph variant of ϟ.
+
+* The sign for the number 900 is the sampi_ ϡ. Its shape, developed
+ during its use in minuscule handwriting of the Byzantine era. Earlier
+ variants similar to the "archaic sampi" ͳ and the "Gothic Letter Nine
+ Hundred" 𐍊 are not used in Greek.
+
+Users can redefine the macros :latex:`\greeknumeralsix`,
+:latex:`\greeknumeralSix`, :latex:`\greeknumeralninety`, and
+:latex:`\greeknumeralNinety` to configure the used symbols,
+for example
+
+.. code:: latex
+
+ \renewcommand{\greeknumeralninety}{\textkoppa}
+ \renewcommand{\greeknumeralNinety}{\textKoppa}
+ \ifdefined \textvarstigma
+ \renewcommand{\greeknumeralSix}{\textvarstigma}
+ \fi
+
+sets the symbol for 90 to the "modern" koppa ϟ also for ancient Greek
+and the "capital" 6 symbol to the variant stigma glyph (only defined in LGR).
+
+.. _digamma: https://en.wikipedia.org/wiki/Digamma
+.. _stigma: https://en.wikipedia.org/wiki/Stigma_(ligature)
+.. _koppa: https://en.wikipedia.org/wiki/Koppa_(letter)
+.. _Cyrillic letter koppa: https://en.wikipedia.org/wiki/Koppa_(Cyrillic)
+.. _sampi: https://en.wikipedia.org/wiki/Sampi
+.. _Attic numerals: https://en.wikipedia.org/wiki/Attic_numerals
+
+
+Changelog
+---------
+
+1.4 (2013-05-17)
+ - New maintainer.
+ - The encoding definition file ``lgrenc.def`` moved to the
+ greek-fontenc_ package.
+1.5 (2013-06-21)
+ - Bugfixes and cleanup.
+ - LICR macros in string definitions.
+ - LGR font encoding not used with XeTeX/LuaTeX.
+ - Input "xgreek-fixes.def" from polyglossia_ with Xe/LuaTeX.
+1.5a (2013-07-02)
+ - Fix LaTeX bugs babel/3707, `babel/4303`_ and `babel/4305`_
+1.6 (2013-07-19)
+ - Experimental support for XeTeX/LuaTeX.
+1.7 (2013-09-09)
+ - CB-Fonts font definition files moved to CB-Fonts package.
+ - Do not auto-load euenc.def with XeTeX/LuaTeX.
+1.7a (2013-09-13)
+ - Fix bug `babel/4360`_: spurious ``\fi``.
+1.7b (2013-10-01)
+ - Fix upcasing of babel strings with Xe/LuaTeX.
+1.8 (2013-12-02)
+ - Rename ``greek.dtx`` to ``babel-greek`` so that texdoc_
+ shows the right documentation.
+ - Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.
+1.8a (2013-12-03)
+ - Set ``\encodingdefault`` in ``\greekscript`` to fix Greek
+ in footnotes etc. with document language Greek.
+1.9 (2014-07-20)
+ - New attribute for ancient Greek, load correct hyphenation
+ patterns (patch by Claudio Beccari).
+ - Bugfix for ``\Makeuppercase``
+1.9a (2014-09-12)
+ - Remove duplicate code, documentation review.
+1.9b (2014-09-18)
+ - Remove spurious whitespace from ``\extrasgreek`` definition.
+ - Use named macros instead of non-standard short macros
+ for *psili* and *dasia* in the string definitions.
+1.9c (2014-10-21)
+ - Fix dummy hyphenation language names (patch by Ulrike Fischer).
+1.9d (2015-09-04)
+ - Remove `grsymb` (macros for Greek symbols).
+ This package is outdated and obsoleted by greek-fontenc_
+ (reported by Claudio Beccari).
+ - Unicode uc/lc corrections now in `greek-fontenc`.
+1.9e (2015-11-27)
+ - Fix bug in lccode-setting loop (patch by Enrico Gregorio).
+1.9f (2016-02-04)
+ - Support for new standard Unicode text font encoding "TU".
+1.9g (2016-09-07)
+ - Babel 3.9i deprecated ``\textlatin`` and fixed ``\latinencoding``.
+ 1.9h (2019-07-11)
+ - Move breathing composite commands to textalpha_.
+1.9i (2020-02-28)
+ - Update test for Unicode fonts.
+ - Fix accent in ``\seename`` and ``\alsoname``.
+1.9j (2020-03-17)
+ - Fix ampersand in math mode.
+1.10 (2020-11-10)
+ - Use ``TU`` as ``\greekfontencoding`` for Xe/LuaTeX (set by LaTeX as
+ `default font encoding for Unicode engines`_ since 2017/01/01).
+ - Use zig-zaggy ``\textkoppa`` for ``\greeknumeral{90}``.
+ - PDF-string secure implementation of ``\greeknumeral`` from hyperref_.
+ - Load ``puenc-greek.def`` (from greek-fontenc_) if used with hyperref
+ (polytonic Greek in PDF-strings).
+1.11 (2020-11-20)
+ - Configurable `Greek numerals`_ 6 and 90.
+ - Save/restore previous font encoding instead of switching
+ to hard-coded ``\latinencoding`` when leaving Greek.
+1.12 (2023-03-04)
+ - Do not change the uccode values if the LaTeX version is newer than
+ 2022/06. The new ``\MakeUppercase`` definition ignores them and fails
+ with the "dummy" character 0x9f (cf. [ltnews35]_, `LaTeX issue 987`_).
+ - New modifiers ``local-LGR-fixes`` and ``no-LGR-fixes`` to address
+ indexing problmes with Roman numerals (`Babel issue 170`_). Provisional.
+ - New TextCommand ``\EnsureStandardFontEncoding``.
+ - Rename ``\textgreek`` to ``\lgrfont`` to avoid confusion with a
+ language changing command.
+ - Documentation update and refactoring.
+ - Drop LGR-local re-definition of ``\SS``.
+ - `athnum.dtx`_ 2.0:
+ Don't require Babel.
+ Use LICR macros instead of the Latin transliteration.
+
+.. _babel/4303: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303
+.. _babel/4305: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305
+.. _babel/4360: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360
+.. _Babel issue 170: https://github.com/latex3/babel/issues/170
+.. _LaTeX issue 987: https://github.com/latex3/latex2e/issues/987
+.. _default font encoding for Unicode engines:
+ https://www.latex-project.org/news/latex2e-news/ltnews26.pdf
+
+
+References
+----------
+
+.. [fntguide] LaTeX Project Team `LaTeX2e font selection`, December 2021.
+ https://www.latex-project.org/help/documentation/fntguide.pdf
+.. [ltnews35] LaTeX Project Team `LaTeX News 35`, June 2022.
+ https://www.latex-project.org/news/latex2e-news/ltnews35.pdf
+.. [Nicholas-05] Nick Nicholas `Numerals: Stigma, Koppa, Sampi`, 2005.
+ https://opoudjis.net/unicode/numerals.html
+.. [Vlachou-22] Irene Vlachou
+ `Polytonic Greek: a guide for type designers`, 2022.
+ https://irenevl.github.io/Polytonic-tutorial/
+.. [Haralambous-98] Yannis Haralambous
+ `From Unicode to Typography, a Case Study: the Greek Script`, 1998.
+ https://hal.science/hal-02101618
+
+.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
+.. _babel: https://ctan.org/pkg/babel
+.. _docstrip: https://ctan.org/pkg/docstrip
+.. _font encoding: https://mirrors.ctan.org/macros/latex/base/encguide.pdf
+.. _fontspec: https://ctan.org/pkg/fontspec
+.. _fontenc: https://ctan.org/pkg/fontenc
+.. _CB Fonts: https://ctan.org/pkg/cbgreek-complete
+.. _cbfonts-fd: https://ctan.org/pkg/cbfonts-fd
+.. _CM-unicode: https://ctan.org/pkg/cm-unicode
+.. _Deja Vu: http://dejavu-fonts.org
+.. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex
+.. _grtimes: https://ctan.org/pkg/grtimes
+.. _hyperref: https://ctan.org/pkg/hyperref
+.. _textalpha:
+.. _greek-fontenc: https://ctan.org/pkg/greek-fontenc
+.. _greek-inputenc: https://ctan.org/pkg/greek-inputenc
+.. _GFS font collection: https://ctan.org/pkg/gfs
+.. _Kerkis: https://ctan.org/pkg/kerkis
+.. _Linux Libertine: https://ctan.org/pkg/libertine
+.. _polyglossia: https://ctan.org/pkg/polyglossia
+.. _substitutefont: https://ctan.org/pkg/substitutefont
+.. _texdoc: https://ctan.org/pkg/texdoc
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
index 9224df9769..328aee6de2 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
@@ -20,13 +20,13 @@
% The Current Maintainer of this work is Günter Milde <milde@users.sf.net>.
%
% Babel-greek is a contributed package providing support for the Greek
-% language and script via the Babel system (http://www.ctan.org/pkg/babel).
+% language and script via the Babel system (https://ctan.org/pkg/babel).
%
% The list of derived (unpacked) files belonging to this work
% and covered by LPPL is defined by the unpacking script (babel-greek.ins)
% which is part of the package.
% \fi
-% \CheckSum{1547}
+% \CheckSum{1651}
%
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
@@ -37,12 +37,12 @@
%<code>\ProvidesLanguage{greek}
%\fi
%\ProvidesFile{babel-greek.dtx}
- [2020/11/10 v1.10 Greek support for the babel system]
+ [2023/03/04 1.12 Greek support for the babel system]
%\iffalse
%% File `babel-greek.dtx'
%% Greek language Definition File
%% Copyright © 1997, 2005 Apostolos Syropoulos, Johannes Braams
-%% Copyright © 2013, 2019 Günter Milde
+%% Copyright © 2013 -- 2020 Günter Milde
%
%% Please report errors to: Günter Milde <milde@users.sf.net>
%
@@ -50,19 +50,17 @@
% code for the greek language definition file. The original
% version of this file was written by Apostolos Syropoulos.
% It was then enhanced by adding code from kdgreek.sty from David
-% Kastrup <dak@gnu.org> with his
-% consent.
+% Kastrup <dak@gnu.org> with his consent.
%<*filedriver>
\documentclass{ltxdoc}
-% \usepackage{lmodern}
-\usepackage[utf8]{inputenc}
+\usepackage{lmodern}
\usepackage{hyperref}
\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=black}
-\newcommand*{\babel}{\textsf{babel}}
-\newcommand*{\note}[1]{}
\newcommand*{\Lopt}[1]{\textsf{#1}}
\newcommand*{\file}[1]{\texttt{#1}}
-\newcommand*{\pkg}[1]{\texttt{#1}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\pkgref}[1]{\textsf{\href{https://ctan.org/pkg/#1}{#1}}}
+\RecordChanges % Write index file with \changes entries
\begin{document}
\DocInput{babel-greek.dtx}
\end{document}
@@ -98,56 +96,31 @@
% load LICR macro definitions for Xe/LuaTeX.}
% \changes{greek-1.7}{2013/09/09}{Do not load euenc.def with XeTeX/LuaTeX.
% Prevent re-loading lgrenc.def.}
-% \changes{greek-1.7a}{2013/09/13}{bugfix: remove spurious ``fi''.}
-% \changes{greek-1.7b}{2013/10/01}{bugfix: correct upcasing of babel strings
+% \changes{greek-1.7a}{2013/09/13}{Remove spurious ``fi''.}
+% \changes{greek-1.7b}{2013/10/01}{Correct upcasing of babel strings
% with Xe/LuaTeX.}
-% \changes{babel-greek-1.8}{2013/11/27}{Rename to ``babel-greek.dtx''.
-% Restore compatibility with Xe/LuaTeX in 8-bit and Unicode mode.
-% Load ``euenc.def'' if EU1 or EU2 font encoding is detected.
-% New TextCommands ``greekscript'' and ``ensuregreek''.}
-% \changes{babel-greek-1.8a}{2013/12/03}{Set `encodingdefault' in `greekscript'
-% to fix Greek in footnotes etc. with document language Greek.}
-% \changes{babel-greek-1.9}{2014/07/20}{Added attribute for ancient Greek.
-% Load correct hyphenation patterns. Patch by Claudio Beccari.}
-% \changes{babel-greek-1.9b}{2014/09/18}{Remove spurious whitespace from
-% `extrasgreek' definition (report Eike Schmidt).
-% Use named macros instead of non-standard short accent macros for
-% psili and dasia.}
-% \changes{babel-greek-1.9c}{2014/10/21}{Fix dummy hyphenation language names
-% (report/patch Ulrike Fischer).}
-% \changes{babel-greek-1.9d}{2015/07/06}{uc-/lccode corrections from xgreek are now
-% in greek-euenc.def (the polyglossia version has bugs).}
-% \changes{babel-greek-1.9e}{2015/11/27}{Fix bug in lccode-setting loop
-% (patch by Enrico Gregorio).}
-% \changes{babel-greek-1.9f}{2016/02/04}{Support for standard
-% Unicode text encoding ``TU'' (new in fontspec v2.5a).}
-% \changes{babel-greek-1.9g}{2016/09/07}{Babel 3.9i deprecated textlatin
-% and fixed latinencoding.}
-% \changes{babel-greek-1.9h}{2019/07/11}{Move breathing composite commands
-% to textalpha.}
-% \changes{babel-greek-1.9i}{2020/02/28}{Update test for Unicode fonts.
-% Fix accent in seename and alsoname.}
-% \changes{babel-greek-1.9j}{2020/03/17}{Fix ampersand in math mode.}
-% \changes{babel-greek-1.10}{2020/11/10}{Use TU as \cs{greekfontencoding}
-% for Xe/LuaTeX. TU is the default font encoding there since 2017/01/01.
-% PDF-string secure implementation of \cs{greeknumeral}
-% (taken from ``hyperref'').
-% Use zig-zagy \cs{textkoppa} for \cs{greeknumeral{90}}.
-% This is what it looked originally and what it looks
-% in current (not classical or medieval) Greek typography.
-% Load ``puenc-greek.def`` (from greek-fontenc_) if used with hyperref.}
+% \changes{greek-1.8}{2013/11/27}{Renamed to `babel-greek'.}
+% \changes{babel-greek-1.08}{2013/11/27}{\file{greek.dtx} renamed to
+% \file{babel-greek.dtx} (but still generates \file{greek.ldf}).}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Restore compatibility with Xe/LuaTeX in 8-bit and Unicode mode.}
+% \changes{babel-greek-1.09g}{2016/09/07}{Babel 3.9i deprecated
+% \cs{textlatin} and fixed \cs{latinencoding}.}
+% \changes{babel-greek-1.09i}{2020/02/28}{
+% Fix accent in \cs{seename} and \cs{alsoname}.}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Update and restructure documentation.}
%
% \title{Babel support for the Greek language}
% \author{Apostolos Syropoulos, Günter Milde}
% \maketitle
%
% Babel-greek is a contributed package providing support for the Greek
-% language and script via the \href{http://www.ctan.org/pkg/babel}{Babel}
-% system. See the \href{README.html}{README} file for an overwiew of the
+% language and script via the \pkgref{babel} system.
+% See the \href{README.html}{README} file for an overwiew of the
% \pkg{babel-greek} package and links to requirements and related packages.
%
-% The file \file{\filename}%
-% \footnote{
+% The file \file{\filename}\footnote{
% The file described in this section has version number \fileversion\
% and was last revised on \filedate.
% The original author is Apostolos Syropoulos, code from \file{kdgreek.sty}
@@ -155,212 +128,289 @@
% is the literate source for the Babel language definition file
% \file{greek.ldf}.
%
+% \tableofcontents
+%
% \section{Requirements}
%
-% Typesetting Greek with Babel requires (of course) the
-% \href{http://www.ctan.org/pkg/babel}{Babel core}, support for Greek font
-% encodings (\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc})
+% Typesetting Greek with Babel requires (of course) the \pkgref{babel}
+% package, support for Greek font encodings (\pkgref{greek-fontenc})
% and a \href{README.html#greek-text-fonts}{text font supporting the
% Greek script}.
%
-% The \href{http://www.ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
+% The \href{https://ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
% created by \textsc{Claudio Beccari}\footnote{Apostolos Syropoulos
% wishes to thank Claudio Beccari for his
% patience, collaboration, comments and suggestions.}
-% are a complete set of 8-bit TeX fonts matching \textsc{Knuth}'s
+% are a complete set of 8-bit \TeX{} fonts matching \textsc{Knuth}'s
% Computer Modern.
-% The package \pkg{\href{http://www.ctan.org/pkg/cbfonts-fd}{cbfonts-fd}}
-% sets them up as Greek substitute for the Computer Modern and Latin Modern
-% font families.
-% The \pkg{\href{http://www.ctan.org/pkg/substitutefont}{substitutefont}}
-% package can be used to set up Greek supplements for other
-% font families (like Times or Palatino).
-%
-% The \href{http://ctan.org/pkg/lm}{Latin Modern} OpenType font that is the
-% default font for XeTeX/LuaTeX does not support the Greek script. The user
-% needs to set up an alternative font like CM Unicode, Linux Libertine or
-% DejaVu with \pkg{\href{http://www.ctan.org/pkg/fontspec}{fontspec}}.
+% The package \pkgref{cbfonts-fd} sets them up as Greek substitute
+% for the Computer Modern and Latin Modern font families.
+% The standard |\DeclareFontFamilySubstitution| macro can be used to set up
+% Greek supplements for other \TeX{} font families (like Times or Palatino).
+%
+% Unicode fonts (used with XeTeX or LuaTeX) provide slots for all Unicode
+% characters in one font but commonly only a subset of the actual glyphs.
+% \textbf{Many Unicode fonts, including the default
+% \href{https://ctan.org/pkg/lm}{Latin Modern},
+% do not support the Greek script!}
+% Authors need to set up an alternative font like CM Unicode, Linux Libertine,
+% or DejaVu with \pkgref{fontspec} or the \pkgref{babel} font configuration
+% system.
+%
+% With 8-bit TeX and XeTeX, hyphenation patterns must be
+% pre-loaded in the format file.
+% This is a limitation by TeX, common to all languages.
+% The LuaTeX engine loads hyphenation patterns dynamically.
+%
%
% \section{Usage}
%
-% To activate Greek support with babel, specify the option
-% \Lopt{greek}, either as global option or as option to the
-% \pkg{babel} package. Remember, that the \emph{last} language
-% option determines the document language, e.g.
-% \begin{verbatim}
-% \usepackage[greek,english]{babel}\end{verbatim}
-% activates support for Greek in an English document.
-% The default is modern ``monotonic'' Greek, while
-% \begin{verbatim}
-% \usepackage[english,greek]{babel}
-% \languageattribute{greek}{polutoniko}
-% \end{verbatim}
-% sets the document language to modern Greek with ``polytonic''
-% spelling and
-% \begin{verbatim}
-% \usepackage[english,greek]{babel}
-% \languageattribute{greek}{ancient}
-% \end{verbatim}
-% sets the document language to ancient Greek.
+% To activate Greek language support with babel, specify the option
+% \Lopt{greek}, either as global option or as option to the
+% \pkg{babel} package. Remember, that the \emph{last} language
+% option determines the document language, e.g.
+% \begin{verbatim}
+% \usepackage[greek,english]{babel}\end{verbatim}
+% activates support for Greek text parts in an English document.
%
-% Both attributes may also be used as modifiers as in
-% \begin{verbatim}
-% \usepackage[greek.polutoniko,english]{babel}
-% \end{verbatim}
-% and similarly
-% \begin{verbatim}
-% \usepackage[greek.ancient,english]{babel}
-% \end{verbatim}
-%
-% By default,
-% \pkg{babel-greek} activates the modern Greek monotonic hyphenation;
-% the attribute/modifier |polutoniko| activates the modern Greek
-% polytonic hyphenation and the attribute/modifier |ancient| activates
-% the ancient Greek hyphenation. 8-bit TeX and XeTeX require the
-% hyphenation patterns to be pre-loaded in the format file.
-% This is a limitation by TeX, common to all languages.
-% The LuaTeX engine loads hyphenation patterns on demand.
-%
-% \DescribeMacro\selectlanguage
-% \DescribeMacro\foreignlanguage
+% \DescribeMacro\selectlanguage
% The Babel core provides two commands to switch the active language:
% The declaration |\selectlanguage{greek}| switches to the Greek language.
+% \DescribeMacro\foreignlanguage
% The macro \verb|\foreignlanguage{greek}{<some text>}| sets its second
% argument in the Greek language. This is intended for short text parts.
-% For details see the \href{http://www.ctan.org/pkg/babel}{Babel}
-% documentation.
+% For details see the \pkgref{babel} documentation.
+%
+%
+% \subsection{Language attributes}
+%
+% The attributes \Lopt{monotoniko}, \Lopt{polutoniko}^^A
+% \footnote{with the alias \Lopt{polytonic}},
+% and \Lopt{ancient} allow the specification of the used orthography.
+% The language variant affects automatic hyphenation, spelling of
+% auto-generated strings and support for multi-accented letters.
+%
+% The default is modern \emph{monotonic} Greek, while
+% \begin{verbatim}
+% \usepackage[english,greek]{babel}
+% \languageattribute{greek}{polutoniko}\end{verbatim}
+% sets the document language to modern Greek with
+% \emph{\href{https://en.wikipedia.org/wiki/Greek_diacritics}{polytonic}}
+% spelling and
+% \begin{verbatim}
+% \usepackage[english,greek]{babel}
+% \languageattribute{greek}{ancient}\end{verbatim}
+% sets the document language to \emph{ancient} Greek.
+%
+% Both attributes may also be used as modifiers as in
+% \begin{verbatim}
+% \usepackage[greek.polutoniko,english]{babel}\end{verbatim}
+% and similarly
+% \begin{verbatim}
+% \usepackage[greek.ancient,english]{babel}\end{verbatim}
+%
+%
+% \subsection{Modifiers \label{sec:modifiers}}
+%
+% \changes{babel-greek-1.12}{2023/03/04}{
+% New modifiers \Lopt{local-LGR-fixes} and \Lopt{no-LGR-fixes}.}
+%
+% The following modifiers cannot be set with |\languageattribute|.
+% Misspelled modifiers are ignored without warning!
+% \medskip
+%
+% Some workarounds for the non-standard LGR font encoding may have
+% serious side-effects.
+% The \texttt{local-LGR-fixes} \emph{modifier} restricts the re-definitions
+% in section~\ref{sec:lgr-redefinitions} to text parts using the Greek
+% language.
+% The \texttt{no-LGR-fixes} \emph{modifier} disables them completely.
+% You may try, e.g.,
+% \begin{verbatim}
+% \usepackage[greek.local-LGR-fixes,english]{babel}\end{verbatim}
+% as a last ressort if the workarounds make a document uncompilable
+% and using Xe/LuaTeX with Unicode fonts is not an option.
+% Check for problems with enumerations in Greek text parts and with
+% Roman and Greek numerals everywhere (especially in the ToC).
+%
+% These modifiers are provisional, naming and behaviour may change.
+%
+% \subsection{Language hooks \label{sec:language-hooks}}
+%
+% \DescribeMacro\extrasgreek
+% The macro |\extrasgreek| is called by \pkgref{babel} on every switch
+% of the active language to Greek.
+% \DescribeMacro\noextrasgreek
+% The macro |\noextrasgreek| is called when switching away from Greek.
+% Package and document authors can add setup and tear-down code
+% to the hooks with the help of the |\addto| command provided by \pkg{babel}.
+% The first call of |\addto\<hookname>{<code>}| initializes the hook,
+% subsequent calls append |<code>| to its definition.
+%
+% \pkg{Babel-greek} uses these hooks to, e.g, select correct hyphenation
+% patterns (cf.\ section~\ref{sec:hyphenation-patterns}) or ensure a font
+% encoding supporting the Greek script is used for Greek text parts
+% (cf.\ section~\ref{sec:font-setup}).
%
-% For backwards compatibility, ``polytonic'' spelling can also be
-% selected via the dummy language \Lopt{polutonikogreek}. In this
-% case, the language name \Lopt{polutonikogreek} must also be
-% used for language switches with |\selectlanguage| or
-% |\foreignlanguage|. However, it is not possible to use
-% both options, \Lopt{greek} and \Lopt{polutonikogreek} in one document.
%
% \subsection{Input of Greek text}
%
% There are several alternatives to write Greek text.
% \begin{itemize}
-% \item With the packages \pkg{inputenc} and
-% \pkg{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}},
-% literal Greek characters can be input using the utf-8, iso-8859-7,
-% or macgreek encoding.
+% \item Literal input using the UTF-8 encoding is the standard input
+% method. With 8-bit TeX, this requires the package
+% \pkgref{greek-inputenc}.
%
-% Literal input using the utf-8 encoding is also the standard input
-% method if compiling with the XeTeX and LuaTeX engines.
+% With the packages \pkgref{inputenc} and \pkgref{greek-inputenc},
+% literal Greek characters can also be input using the legacy encodings
+% \emph{iso-8859-7} and \emph{macgreek}.
%
% \item The Latin transliteration defined by the LGR font encoding
% is explained in the file \file{\href{usage.pdf}{usage.pdf}}.
%
-% \item The package
-% \pkg{\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}}
+% \item The package \pkgref{greek-fontenc}
% defines \emph{LaTeX internal character representation} (LICR) macros
-% for Greek letters and text symbols. It is required by \pkg{babel-greek},
-% so the |\textAlpha| \ldots |\textomega|
-% macros are a safe but cumbersome method to input Greek characters.
+% for Greek letters and text symbols. It is required by \pkg{babel-greek}.
+% The LICR macros |\textAlpha| \ldots |\textomega|
+% are a safe but cumbersome method to input Greek characters.
%
-% \item The \pkg{alphabeta} package bundled with
-% \href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc} makes the
-% short macro names |\Alpha| \ldots |\omega| available in text mode, too.
+% \item The \pkg{alphabeta} package, bundled with \pkgref{greek-fontenc},
+% makes the short macro names |\Alpha| \ldots |\omega| available
+% in both, text and math mode.
% \end{itemize}
-% The \href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc} bundle
-% has details and examples for all these input methods.
%
% \subsection{Greek vs. Latin script}
% When switching the language to Greek, \pkg{babel-greek} ensures that the
% Greek script is supported.
-% With 8-bit LaTeX, Greek text fonts use a non-standard
-% font encoding\footnote{LaTeX font encodings are described in
-% the \emph{LaTeX font guide} (fntguide.pdf).}
-% (LGR) that misses Latin letters. Latin characters in the source are
-% instead interpreted as a transcription for Greek characters.
-% The following macros allow the use of Greek vs. Latin script without
-% changing the active language.
+% The following macros allow the use of Greek vs.\ Latin script without
+% changing the active language:
+%
% \DescribeMacro\greekscript
-% \DescribeMacro\greektext
% The \emph{TextCommand}\footnote{For a discussion of TextCommands, see
-% the \emph{LaTeX font guide} (fntguide.pdf), too.}
+% the \emph{LaTeX font guide}, too.}
% |\greekscript| switches to a font encoding
% supporting the Greek script.
+% \DescribeMacro\greektext
% The declaration |\greektext| always switches the font encoding
% to LGR. Both declarations do not change the active language.
+%
% \DescribeMacro\latintext
-% |\latintext| (defined by the Babel
-% core) can be used to switch back to an encoding supporting the Latin
-% script (deprecated since Babel 3.9i from March 2014).
+% |\latintext| (defined by the Babel core, deprecated since March 2014)
+% can be used to switch back to an encoding supporting the Latin script.
%
% \DescribeMacro\ensuregreek
-% \DescribeMacro\textgreek
-% The macros |\ensuregreek| and |\textgreek| take one argument
-% which is typeset using a font encoding supporting the Greek
-% script. While |\ensuregreek| only switches the
-% font encoding if required, |\textgreek| always uses the LGR font
-% encoding.
-% \DescribeMacro\textlatin
-% The Babel core defines a corresponding |\textlatin| macro
-% (deprecated in favour of |\ensureascii| in Babel 3.9i from March 2014).
-%
-% \section{Greek numbering}
-%
-% The Greek alphabetical numbering system, like the Roman one, is
-% still used in everyday life for short enumerations. Unfortunately
-% most Greeks don't know how to write Greek numbers bigger than 20 or
-% 30. Nevertheless, in official editions of the last century and
-% beginning of this century this numbering system was also used for
-% dates and numbers in the range of several thousands. Nowadays
-% this numbering system is primary used by the Eastern Orthodox
-% Church and by certain scholars. It is hence necessary to be able
-% to typeset any Greek numeral up to \hbox{999\,999}. Here are the
-% conventions:
+% The function |\ensuregreek| takes one argument which
+% is typeset using a font encoding supporting the Greek script.
+% It only switches the font encoding if required (i.e. if the current
+% font encoding does not support Greek letters and symbols).
+%
+% \DescribeMacro\lgrfont
+% The function |\lgrfont|^^A
+% \footnote{The legacy name \cs{textgreek} is available as alias.}
+% switches to the non-standard Greek 8-bit font encoding LGR.
+% Hint: Use |\lgrfont|, if you want to use the
+% \emph{Latin transliteration} input method and |\ensuregreek| else.
+%
+% \DescribeMacro\ensureascii
+% The Babel core defines |\ensureascii| that typesets its
+% argument using an ASCII-compatible ``standard text font encoding''.
+% It is the recommended way for text parts requiring Latin letters
+% but no language switch.
+%
+%
+% \subsection{Greek numbering \label{sec:greek-numbering}}
+% The \href{https://en.wikipedia.org/wiki/Greek_numerals}
+% {Greek (Milesian) alphabetical numbering system}\footnote{
+% Attic numerals, which predate the Milesian numerals
+% are implemented in package |athnum|.}
+% is still used in everyday life for short enumerations.
+% It was used for dates and numbers in the range of several thousands
+% in official editions up to the beginning of the 20th century and
+% is still used by the Eastern Orthodox Church and certain scholars.
+% Unfortunately, most Greeks don't know how to write Greek numbers
+% bigger than 20 or 30.
+%
+% \DescribeMacro{\greeknumeral}
+% The command |\greeknumeral| makes it possible to typeset Greek
+% numerals for numbers up to \hbox{999\,999}.
+% \DescribeMacro{\Greeknumeral}
+% |\Greeknumeral| is the ``uppercase'' version of this macro.
+% Here are the conventions:
% \begin{itemize}
% \item There is no Greek numeral for any number less than or equal
% to $0$.
-% \item Numbers from $1$ to $9$ are denoted by letters alpha, beta,
-% gamma, delta, epsilon, stigma, zeta, eta, theta, followed by a
-% mark similar to the mathematical symbol ``prime''. (Nowadays
-% instead of letter stigma the digraph sigma tau is used for number
-% $6$. Mainly because the letter stigma is not always available, so
-% people opt to write down the first two letters of its name as an
-% alternative. In our implementation we produce the letter stigma,
-% not the digraph sigma tau.)
-% \item Decades from $10$ to $90$ are denoted by letters iota,
-% kappa, lambda, mu, nu, xi, omikron, pi, qoppa, again followed by
-% the numeric mark. The qoppa used for this purpose has a special
-% zig-zag form, which doesn't resemble at all the original
-% `q'-like qoppa.
-% \item Hundreds from $100$ to $900$ are denoted by letters rho,
-% sigma, tau, upsilon, phi, chi, psi, omega, sampi, followed by the
+% \item Numbers from $1$ to $9$ are denoted by letters
+% \emph{alpha}, \emph{beta}, \emph{gamma}, \emph{delta}, \emph{epsilon},
+% \emph{stigma}\footnote{
+% cf.\ \hyperref[greeknumeralsix]{\cs{greeknumeralsix}}},
+% \emph{zeta}, \emph{eta}, \emph{theta}, followed by a \emph{keraia},
+% a mark similar to the mathematical symbol ``prime''.
+% \item Decades from $10$ to $90$ are denoted by letters \emph{iota},
+% \emph{kappa}, \emph{lambda}, \emph{mu}, \emph{nu}, \emph{xi},
+% \emph{omikron}, \emph{pi}, \emph{koppa}\footnote{
+% cf.\ \hyperref[greeknumeralninety]{\cs{greeknumeralninety}}},
+% again followed by the numeric mark.
+% \item Hundreds from $100$ to $900$ are denoted by letters \emph{rho},
+% \emph{sigma}, \emph{tau}, \emph{upsilon}, \emph{phi}, \emph{chi},
+% \emph{psi}, \emph{omega}, \emph{sampi}, followed by the
% numeric mark.
% \item Any number between $1$ and $999$ is obtained by a group of
% letters denoting the hundreds decades and units, followed by a
% numeric mark.
% \item To denote thousands one uses the same method, but this time
-% the mark is placed in front of the letter, and under the baseline
-% (it is inverted by 180 degrees). When a group of letters denoting
-% thousands is followed by a group of letters denoting a number
-% under $1000$, then both marks are used.
+% the mark is an \emph{aristeri keraia}, a prime inverted by 180 degrees
+% and placed in front of the letter, under the baseline.
+% When a group of letters denoting thousands is followed by a group of
+% letters denoting a number under $1000$, both marks are used.
% \end{itemize}
-%
-% Using these conventions one obtains numbers up to \hbox{999\,999}.
-% \DescribeMacro{\greeknumeral}
-% The command |\greeknumeral| makes it possible to typeset Greek
-% numerals. There is also an
-% \DescribeMacro{\Greeknumeral}
-% ``uppercase'' version of this macro: |\Greeknumeral|.
-%
-% Another system which was in wide use only in Athens, could
-% express any positive number. This system is implemented in
-% package |athnum|.
+% The shape of the obsolete characters used for number 6
+% (\emph{digamma}/\emph{stigma}) and 90 (\emph{koppa}) evolved over time
+% and different characters are in use for them today.
+% The following four macros can be re-defined to configure
+% |\greeknumeral| and |\Greeknumeral| respectively:
+%
+% \DescribeMacro\greeknumeralsix
+% \phantomsection\label{greeknumeralsix}
+% Originally, the sixth letter of the alphabet, standing for 6, was the
+% \emph{digamma} -- just as its Latin equivalent F is the sixth letter of
+% the Latin alphabet.
+% As Greek script turned to uncial and then lowercase, digamma changed its
+% shape – it became similar to the ligature for sigma-tau (\emph{stigma}).
+% People started using the stigma or the digraph sigma tau\footnote{
+% Mainly because the letter stigma is not always available, so people
+% opted to write down the first two letters of its name instead.}.
+% The macro |\greeknumeralsix| allows configuring the symbol for the
+% number 6 in |\greeknumeral|,
+% \DescribeMacro\greeknumeralSix
+% the macro |\greeknumeralSix| does the same for |\Greeknumeral|.
+% The default values are |\textstigma| and |\textStigma|.
+%
+% \DescribeMacro\greeknumeralninety
+% \phantomsection\label{greeknumeralninety}
+% Three symbols are in use for the number 90:
+% Classicists prefer the q-like ``archaic'' \emph{koppa}
+% and, more rarely, its uncial form\footnote{
+% resembling CYRILLIC LETTER KOPPA or GOTHIC LETTER NINETY},
+% modern Greek uses the zig-zag shaped ``modern'' \emph{koppa}
+% exclusively. The macro |\greeknumeralninety| allows configuring
+% the symbol for the number 90 in |\greeknumeral|,
+% \DescribeMacro\greeknumeralNinety
+% the macro |\greeknumeralNinety| does the same for |\Greeknumeral|.
+% The default values are |\textkoppa| and |\textKoppa| for modern Greek
+% and |\textqoppa| and |\textqoppa| for ancient Greek.
+%
+% There is no such variation in the shape of the \emph{sampi}
+% used for the number 900.
%
% \StopEventually{}
%
-% \section{Implementation}
%
+% \section{Implementation}
% The macro |\LdfInit| takes care of preventing that this file is
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
-% \changes{greek-1.0b}{1996/11/02}{Now use \cs{LdfInit} to perform
-% initial checks}
+% \changes{greek-1.0b}{1996/11/02}{
+% Use \cs{LdfInit} to perform initial checks.}
% \begin{macrocode}
%<*code>
\LdfInit\CurrentOption{captions\CurrentOption}
@@ -371,134 +421,221 @@
\gdef\CurrentOption{greek}
% \end{macrocode}
%
-% Hyphenation patterns:
+%
+% \subsection{Hyphenation patterns \label{sec:hyphenation-patterns}}
+%
% When this file is read as an option, i.e. by the |\usepackage|
% command, \texttt{greek} could be an `unknown' language in
% which case we have to make it known. So we check for the
% existence of the three variants of the Greek language
-% |\l@greek|, |\l@monogreek|, and |l@ancientgreek| to see whether
-% we have to do something here.
-% \changes{greek-1.9}{2014/07/20}{Support all 3 language (hyphenation)
-% variants.}
+% |\l@greek|, |\l@monogreek|, and |l@ancientgreek|
+% and set the hyphenation to |\language0| for the missing ones.
+% \changes{babel-greek-1.09}{2014/07/20}{
+% Load correct hyphenation patterns (patch by Claudio Beccari).}
+% \changes{babel-greek-1.09c}{2014/10/21}{
+% Fix dummy hyphenation language names (patch Ulrike Fischer).}
% \begin{macrocode}
\ifx\l@greek\@undefined
\@nopatterns{greek}
- \adddialect\l@greek 0\fi
+ \adddialect\l@greek 0
+\fi
\ifx\l@monogreek\@undefined
- \adddialect\l@monogreek 0\fi
+ \@nopatterns{greek}
+ \adddialect\l@monogreek 0
+\fi
\ifx\l@ancientgreek\@undefined
- \adddialect\l@ancientgreek 0\fi
+ \@nopatterns{greek}
+ \adddialect\l@ancientgreek 0
+\fi
\newcount\bbl@monogreek \bbl@monogreek=\l@monogreek
\newcount\bbl@polygreek \bbl@polygreek=\l@greek
-\newcount\bbl@ancientgreek \bbl@ancientgreek=\l@ancientgreek
+\newcount\bbl@ancientgreek \bbl@ancientgreek=\l@ancientgreek
% \end{macrocode}
-% The |\extrasgreek| macro is called when switching the language to Greek.
-% We collect code for polytonic and ancient greek in the macros
-% |extraspolutonikogreek| and |extrasancientgreek| and add it later to
-% |extrasgreek|.
+% Use the \emph{language hooks} (cf.\ section~\ref{sec:language-hooks})
+% to set the correct hyphenation patterns.
+% (We collect setup code for the language variants \Lopt{polutoniko} and
+% \Lopt{ancient} in |\extraspolutonikogreek| and |\extrasancientgreek|;
+% \DescribeMacro\extraspolutonikogreek
+% their content is added to |\extrasgreek| by the respective language
+% attributes, cf.\ section~\ref{sec:language-variants}).
+% \DescribeMacro\extrasancientgreek
+% ^^A TODO: Move the |\let\l@greek=...| definitions to the language
+% ^^A attribute functions (as we only have one language variant per document)
+% ^^A or use the hooks to allow more than one language variant?
+% \changes{greek-1.5a}{2013/06/27}{provide ``extraspolutonikogreek'' also
+% for Xe/LuaTeX.}
% \begin{macrocode}
-\addto\extrasgreek{\let\l@greek\bbl@monogreek\relax}
+\addto\extrasgreek{\let\l@greek=\bbl@monogreek}
\addto\extraspolutonikogreek{\l@greek=\bbl@polygreek}
\addto\extrasancientgreek{\l@greek=\bbl@ancientgreek}
% \end{macrocode}
%
-% Now we declare the |polutoniko| language attribute.
+% \begin{macro}{\providehyphenmins}
+% \changes{greek-1.3h}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% The macro |\providehyphenmins| is used to set the correct values of
+% the hyphenation parameters |\lefthyphenmin| and |\righthyphenmin|.
+% Yannis Haralambous has suggested the value 1.
% \begin{macrocode}
-\bbl@declare@ttribute{greek}{polutoniko}{%
+\providehyphenmins{\CurrentOption}{\@ne\@ne}
% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Language variants \label{sec:language-variants}}
+%
+% The Babel core provides the command |\bbl@declare@ttribute| for the
+% declaration of language attributes in language definition files.
+% It takes three arguments:
+% the name of the language, the attribute to be defined,
+% and the code to be executed when the attribute is to be used.
+% If the language attribute is selected, the third argument is executed
+% after reading the *.ldf file.
+%
+% \subsubsection{\Lopt{polutoniko}}
+% The |polutoniko| language attribute selects the ``polytonic'' spelling.
% This code adds the expansion of |\extraspolutonikogreek| to
-% |\extrasgreek| and changes the definition of |\today| for Greek
-% to produce polytonic month names (by re-defining |\gr@month|).
+% |\extrasgreek| to set up support for multi-accented characters
+% and hyphenation patterns for the polytonic orthography.
% \begin{macrocode}
+\bbl@declare@ttribute{greek}{polutoniko}{%
\expandafter\addto\expandafter\extrasgreek
\expandafter{\extraspolutonikogreek}%
+% \end{macrocode}
+% It also uses polytonic spelling for auto-strings
+% (captions and month names).
+% \begin{macrocode}
\let\captionsgreek\captionspolutonikogreek
- \let\gr@month\gr@c@month
+ \let\gr@month\gr@polutoniko@month
% \end{macrocode}
-% We need to take some extra precautions in order not to break
-% older documents which still use the old \Lopt{polutonikogreek}
-% pseuso-language option: language switching commands like
-% |\selectlanguage{polutonikogreek}|, call the
-% |extraspolutonikogreek| macro, set the language to |\l@polutonikogreek|
-% and use |\datepolutonikogreek| for |\today|. We define aliases:
-% \changes{greek-1.3f}{1999/09/29}{Added some code to make older
-% documents work}
-% \changes{greek-1.3g}{2000/02/04}{\cs{noextraspolutonikogreek} was
-% missing}
+%
+% For backwards compatibility, ``polytonic'' spelling can also be
+% selected via the dummy language \Lopt{polutonikogreek}.
+% However, it is not possible to use both options,
+% \Lopt{greek} and \Lopt{polutonikogreek} in one document.
+% We also define aliases to allow language switching commands using
+% the language name |polutonikogreek|:
+% \changes{greek-1.3f}{1999/09/29}{
+% Added some code to make older documents work.}
+% \changes{greek-1.3g}{2000/02/04}{\cs{noextraspolutonikogreek} was missing.}
% \begin{macrocode}
\let\l@polutonikogreek\l@greek
\let\datepolutonikogreek\dategreek
\let\extraspolutonikogreek\extrasgreek
\let\noextraspolutonikogreek\noextrasgreek
- }
+}
% \end{macrocode}
-% The |ancient| language attribute is used for classical Greek.
-% \changes{greek-1.9}{2014/07/20}{Add support for ancient Greek.}
+%
+% \subsubsection{\Lopt{polytonic}}
+%
+% \changes{babel-greek-1.12}{2023/03/04}{
+% New language attribute \Lopt{polytonic} (alias for \Lopt{polutoniko}).}
+%
+% The |polytonic| language attribute is an alias for the
+% attribute |polutoniko| matching the spelling for this orthography
+% variant in \pkg{polyglossia} and Babel |*.ini| files.
% \begin{macrocode}
-\bbl@declare@ttribute{greek}{ancient}{%
+\bbl@declare@ttribute{greek}{polytonic}{%
+ \expandafter\addto\expandafter\extrasgreek
+ \expandafter{\extraspolutonikogreek}%
+ \let\captionsgreek\captionspolutonikogreek
+ \let\gr@month\gr@polutoniko@month
+}
% \end{macrocode}
-% This attribute adds the expansion of |\extraspolutonikogreek| and
-% |\extrasancientgreek| to |\extrasgreek| to set up support for
-% multi-accented characters and ancient hyphenation patterns.
-% Auto-strings (captions) are specific to ancient Greek while |\today|
-% uses modern polytonic month names (as there existed incompatible
-% sets of month names and no common calendar in ancient Greece.
+%
+% \subsubsection{\Lopt{ancient}}
+%
+% \changes{babel-greek-1.09}{2014/07/20}{Add support for ancient Greek.}
+%
+% The \Lopt{ancient} language attribute is used for classical Greek.
+% This attribute adds the expansion of |\extraspolutonikogreek| and
+% |\extrasancientgreek| to |\extrasgreek| to set up support for
+% multi-accented characters and ancient hyphenation patterns.
% \begin{macrocode}
+\bbl@declare@ttribute{greek}{ancient}{%
\expandafter\addto\expandafter\extrasgreek
\expandafter{\extraspolutonikogreek}% multi-accented letters
\expandafter\addto\expandafter\extrasgreek
\expandafter{\extrasancientgreek}%
+% \end{macrocode}
+% Auto-strings (captions) are specific to ancient Greek while |\today|
+% uses modern polytonic month names (as there existed incompatible
+% sets of month names and no common calendar in ancient Greece).
+% \begin{macrocode}
\let\captionsgreek\captionsancientgreek
- \let\gr@month\gr@c@month % (modern) polytonic month names
- }
+ \let\gr@month\gr@polutoniko@month % (modern) polytonic month names
+% \end{macrocode}
+% Classicists tend to use the Q-like ``archaic'' koppa for the number 90.
+% Thus, for classical Greek, we set the default to the ``archaic'' koppa
+% (cf.\ section~\ref{sec:greek-numbering}).
+% \begin{macrocode}
+ \renewcommand{\greeknumeralninety}{\textqoppa}%
+ \renewcommand{\greeknumeralNinety}{\textQoppa}%
+}
% \end{macrocode}
%
-% \section{Font setup}
%
-% Typesetting Greek texts requires a font with Greek characters:
+% \subsection{Font setup \label{sec:font-setup}}
%
-% For 8-bit LaTeX, this package uses fonts with the
-% \href{http://www.ctan.org/pkg/greek-fontenc}{LGR font encoding}.
-% With the XeTeX or LuaTeX engines and Unicode fonts, the user must ensure
-% that the selected font contains the required glyphs.
-% LGR-encoded fonts can also be used alongside Unicode fonts with XeTeX/LuaTeX
-% to enable the input of Greek letters via the Latin transcription provided by
-% this font encoding.
+% \subsubsection{Greek font encoding \label{sec:greekfontencoding}}
%
-% \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now
-% lowercase}
-% \changes{greek-1.4}{2013/05/17}{\file{lgrenc.def} moved to the
-% separate package `greek-fontenc'}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Load \file{euenc.def} if EU1 or EU2 font encoding is detected.}
+% \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now lowercase}
+% \changes{greek-1.4}{2013/05/17}{
+% \file{lgrenc.def} moved to the separate package `greek-fontenc'}
% \changes{greek-1.5}{2013/06/21}{LGR setup skipped with XeTeX/LuaTeX}
% \changes{greek-1.7}{2013/09/09}{Do not load euenc.def with XeTeX/LuaTeX
-% (too complicated to get it right).}
-% \changes{greek-1.8}{2013/11/30}{Check for EU1/EU2 font encoding
-% instead of engine}
-% \changes{babel-greek-1.9f}{2016/02/04}{Check also for TU font encoding.}
-% \changes{babel-greek-1.9i}{2020/02/27}{Update check for Unicode fonts.}
+% (too complicated to get it right).}
+% \changes{babel-greek-1.08}{2013/11/30}{
+% Check for EU1/EU2 font encoding instead of engine}
+% \changes{babel-greek-1.09f}{2016/02/04}{Check also for standard
+% Unicode text encoding ``TU'' (new in fontspec v2.5a).}
+% \changes{babel-greek-1.09i}{2020/02/27}{Update check for Unicode fonts.}
% \changes{babel-greek-1.10}{2020/11/10}{Use TU with Xe/LuaTeX.}
-%
-% \DescribeMacro\greekfontencoding
-% We test for available font encodings and set |\greekfontencoding|
-% and the internal macro |\bbl@greek@fontencdef| with the name of the
-% font definition file with Greek LICR macros.
-% The default is LGR for 8-bit TeX engines and TU for Xe/LuaTeX.
-% (TODO: The font encoding definition file was renamed to tuenc-greek.def
-% in \emph{greek-fontenc} 0.14 (2020-02-28).)
+% \begin{macro}{\greekfontencoding}
+% The macro |\greekfontencoding| holds the name of the font
+% encoding\footnote{cf.\
+% \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf}
+% {encguide.pdf}}
+% used to ensure support of the Greek script.
+% The default is LGR for 8-bit TeX and TU for Xe/LuaTeX.\footnote{
+% Document authors must ensure that the selected font actually contains
+% the required glyphs.
+%
+% LGR-encoded fonts can be used alongside Unicode fonts with
+% XeTeX/LuaTeX to enable the input of Greek letters via the Latin
+% transliteration (with some limitations, see \file{test-greek.tex}).}
+% It can be overridden defining |\greekfontencoding| with a custom value
+% before loading \pkg{babel}.
+%
+% Also store the name of the \emph{encoding definition file}\footnote{
+% see \href{https://www.latex-project.org/help/documentation/fntguide.pdf}
+% {fntguide.pdf}}
+% with the extended Greek setup for the Greek font encoding.
% \begin{macrocode}
-\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
+\ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
\providecommand*{\greekfontencoding}{\UnicodeEncodingName}
\providecommand*{\bbl@greek@fontencdef}{tuenc-greek}
\else
\providecommand*{\greekfontencoding}{LGR}
\providecommand*{\bbl@greek@fontencdef}{lgrenc}
+ % TODO the more generic version fails :(
+ % \edef\bbl@greek@fontencdef{\lowercase{\greekfontencoding}enc}
\fi
% \end{macrocode}
-% Ensure that the Greek LICR macros are available:
+% \end{macro}
+%
+% \subsubsection{Ensure loading of Greek font encoding definitions.
+% \label{load-greek-font-encoding-definitions}}
+%
+% If the \emph{encoding definition file} for |\greekfontencoding| is not yet
+% loaded, do this now:
% \begin{macrocode}
\@ifl@aded{def}{\bbl@greek@fontencdef}{}
{% else
- \InputIfFileExists{\bbl@greek@fontencdef .def}{}{% else
+ \InputIfFileExists{\bbl@greek@fontencdef .def}{}
+ {% else
\bbl@error{Font support for the Greek script missing.\\
babel-greek can't typeset Greek.\\
Install the "greek-fontenc" package\\
@@ -509,111 +646,117 @@
}
}
% \end{macrocode}
+% If the PU font encoding is defined (by \pkgref{hyperref}), load extended
+% Greek support for it. Do this in the |\AtBeginDocument| hook because
+% documents may load \pkg{hyperref} after \pkg{babel}.
+% We cannot rely on |@| being a letter when the hook is called and we must
+% not use |\makeatother| in the hook
+% (\href{https://tex.stackexchange.com/questions/62583/is-it-really-bad-to-use-makeatletter-and-makeatother-in-a-package-or-class-fil}
+% {explanation at stackexchange}).
+% We use a temporary function to save and restore the previous catcode.
+% \changes{babel-greek-1.10}{2020/11/10}{Load \file{puenc-greek.def}
+% from \pkg{greek-fontenc} if used with hyperref.}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Don't use \cs{makeatother} in \cs{AtBeginDocument}.}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifl@aded{def}{puenc}%
+ {\@ifl@aded{def}{puenc-greek}
+ {}%
+ {\edef\RestoreAtCatcode{\catcode`@=\the\catcode`@\relax}%
+ \makeatletter
+ \InputIfFileExists{puenc-greek.def}%
+ {}%
+ {\bbl@warning{I cannot find the "puenc" Greek fixes
+ from "greek-fontenc".}%
+ }%
+ \RestoreAtCatcode
+ }%
+ }% end "puenc.def loaded" branch
+ {}% empty "puenc.def not loaded" branch
+}
+% \end{macrocode}
+%
+% \subsubsection{Font encoding switches \label{sec:font-encoding-switches}}
% \begin{macro}{\greekscript}
-% The TextCommand |\greekscript| is a declaration that switches the font
-% encoding to |\greekfontencoding| if the current font encoding does not
-% provide a (typically empty) local variant.
-% \changes{greek-1.8.1}{2013/12/03}{Set `encodingdefault' in `greekscript'
-% to fix Greek in titles, footnotes, etc. with document language Greek.}
+% The TextCommand\footnote{See
+% \href{https://www.latex-project.org/help/documentation/fntguide.pdf}
+% {fntguide.pdf} for more info about \emph{TextCommands}.}
+% |\greekscript| is a declaration that switches the font
+% encoding to |\greekfontencoding|.
+% The extended Greek font encoding definitions from \pkgref{greek-fontenc}
+% define empty local variants for TU, LGR, and PU, so that the declaration
+% does nothing if the active font encoding supports the Greek script.
+% \changes{babel-greek-1.08}{2013/11/27}{
+% New TextCommands ``greekscript'' and ``ensuregreek''.}
+% \changes{babel-greek-1.08a}{2013/12/03}{Set `encodingdefault'
+% to fix Greek in footnotes etc. with document language Greek.}
% \begin{macrocode}
\ProvideTextCommandDefault{\greekscript}{%
\fontencoding{\greekfontencoding}\selectfont
- \def\encodingdefault{\greekfontencoding}}
+ \def\encodingdefault{\greekfontencoding}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\ensuregreek}
-% The TextCommand |\ensuregreek| sets it argument in |\greekfontencoding|
+% The TextCommand |\ensuregreek| sets its argument in |\greekfontencoding|
% if the current font encoding does not provide a (typically empty) local
% variant.
% \begin{macrocode}
\ProvideTextCommandDefault{\ensuregreek}[1]{%
- \leavevmode{\greekscript #1}}
+ \leavevmode {\greekscript #1}}
% \end{macrocode}
% \end{macro}
-%
-% The package hyperref defines the PU font encoding which supports
-% monotonic Greek. Load support for polytonic greek, archaic symbols,
-% and the |\greekscript| and |\ensuregreek| TextCommands:
-% \begin{macrocode}
-\AtBeginDocument{
- \@ifl@aded{def}{puenc}{
- \makeatletter % required inside \AtBeginDocument
- \InputIfFileExists{puenc-greek.def}{}{% else
- \bbl@warning{I can't find the file puenc-greek.def from "greek-fontenc".}
- }
- \makeatother
- }{}
+% \begin{macro}{\BabelGreekRestoreFontEncoding}
+% The declaration |\BabelGreekRestoreFontEncoding| changes the font encoding
+% to the value it had before the switch to the Greek language. It does
+% nothing, if the language switch did not trigger a font encoding switch.
+% \changes{babel-greek-1.12}{2023/03/04}{New macro.}
+% \begin{macrocode}
+\def\BabelGreekRestoreFontEncoding{%
+ \ifx\cf@encoding\BabelGreekPreviousFontEncoding
+ \else
+ \let\encodingdefault\BabelGreekPreviousFontEncoding
+ \fontencoding{\encodingdefault}\selectfont
+ \fi
}
-% \end{macrocode}
-%
-% \subsection{Fixes for the LGR font encoding}
-%
+% \end{macrocode}
+% \end{macro}
+% Add font encoding switches to the language hooks
+% (cf.\ section~\ref{sec:language-hooks}) to ensure a font encoding
+% supporting the Greek script is used in Greek text parts:
+% \changes{greek-1.5}{2013/06/21}{LGR not used with XeTeX/LuaTeX.}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Use EU1 or EU2 for Latin script if available}
+% \changes{babel-greek-1.11}{2020/11/20}{Save/restore previous font encoding
+% instead of switching to \cs{latinencoding} when leaving Greek.}
+% \changes{babel-greek-1.12}{2023/03/04}{Save previous font encoding
+% in \cs{BabelGreekPreviousFontEncoding}.}
% \begin{macrocode}
-\@ifl@aded{def}{lgrenc}{%
+\addto\extrasgreek{%
+ \let\BabelGreekPreviousFontEncoding\cf@encoding
+ \greekscript}
+\addto\noextrasgreek{\BabelGreekRestoreFontEncoding}
% \end{macrocode}
%
-% We redefine a few commands in the LGR encoding to work around problems
-% because LGR is no \emph{standard text encoding} but has Greek letters in
-% the places of Latin ones.
-% The ampersand must work in text and math mode. We provide the text
-% command |\textampersand| and re-define |\&| to use it in text mode.
-% \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark}
-% misses a `t', \cs{copyright} should be \cs{textcopyright}}
-% \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}}
-% \changes{greek-1.4}{2013/05/17}{moved here from \file{lgrenc.def} because
-% the definitions require the \texttt{\textbackslash latintext} macro
-% defined by Babel.}
-% \changes{greek-1.5}{2013/05/27}{enable use of "textcomp" characters
-% for "textcopyright" and "textregistered" macros}
-% \changes{greek-1.5}{2013/06/15}{\textbackslash & made TextCommand}
-% \changes{babel-greek-1.9j}{2020/03/17}{Fix ampersand in math.}
+% \subsubsection{Additional commands for the LGR font encoding}
%
-% \begin{macrocode}
- \ProvideTextCommand{\textcopyright}{LGR}{\ensureascii{\textcopyright}}
- \ProvideTextCommand{\textregistered}{LGR}{\ensureascii{\textregistered}}
- \ProvideTextCommand{\texttrademark}{LGR}{\ensureascii{\texttrademark}}
- \let\ltx@amp\&
- \ProvideTextCommandDefault{\textampersand}{\ltx@amp}
- \ProvideTextCommand{\textampersand}{LGR}{\ensureascii{\ltx@amp}}
- \DeclareRobustCommand{\&}{\ifmmode\ltx@amp\else\textampersand\fi}
- \ProvideTextCommand{\SS}{LGR}{\ensureascii{\SS}}
-% \end{macrocode}
+% The actions in this section add ``harmless'' setup steps for the LGR
+% font encoding that cannot be done in the \file{lgrenc.def}
+% encoding definition file.
%
-% \begin{macro}{\greek@roman}
-% \begin{macro}{\greek@Roman}
-% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman}
-% back to the language specific file}
-% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to
-% be added to \cs{extraspolutonikogreek}}
-% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need
-% \emph{not} be in \cs{extraspolutonikogreek} when they are already
-% in \cs{extrasgreek}}
-% \changes{greek-1.5}{2013/06/15}{\cs{@roman} and \cs{@Roman} as TextCommands
-% (BUG: this extended the expansion problem to all languages!)}
-% \changes{greek-1.6}{2013/07/19}{apply a patch by Enrico Gregorio.
-% Thanks to Claudio Beccari for testing and reporting.}
-%
-% To prevent roman numerals being typeset in greek letters we need
-% to adopt the internal \LaTeX\ commands |\@roman| and
-% |\@Roman|. \emph{Up to version 1.5, the definition caused errors where
-% |\@roman| ends up in a situation where the argument needs to be expanded
-% (e.g. Roman page numbers in the ToC).}
+% We do this only, if the LGR font encoding is defined (either by \pkg{fontenc}
+% or \pkg{babel-greek}), but also if it is not the |\greekfontencoding|:
% \begin{macrocode}
- \def\@roman#1{\expandafter\ensureascii\expandafter{\romannumeral#1}}
- \def\@Roman#1{\expandafter\ensureascii\expandafter{%
- \expandafter\@slowromancap\romannumeral#1@}}
+\@ifl@aded{def}{lgrenc}{%
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% Now we define two commands that switch
-% to the LGR font encoding. The Babel core defines corresponding commands
-% to switch to a Latin font encoding.
%
% \begin{macro}{\greektext}
-% The declaration |\greektext| switches to LGR.
-% For shorter pieces of text the |\textgreek| macro should be
-% used.
+% The declaration |\greektext| switches to LGR. Use this if you explicitly
+% require LGR (e.g. to use the Latin transliteration or special fonts).
+% Use |\greekscript| instead, if you want to avoid a font encoding change
+% if the current font encoding already supports the Greek script (e.g. TU).
+% For shorter pieces of text, the |\lgrfont| (see below) or |\ensuregreek|
+% commands should be used. Cf.\ section~\ref{sec:font-encoding-switches}.
% \begin{macrocode}
\DeclareRobustCommand{\greektext}{%
\fontencoding{LGR}\selectfont
@@ -621,59 +764,190 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\textgreek}
-% This command takes an argument which is then typeset using the
-% LGR font encoding. In order to avoid many encoding switches
-% it operates in a local scope.
+% \begin{macro}{\lgrfont}
+% This command takes an argument which is typeset using the
+% LGR font encoding.
+%
+% The original name |\textgreek| is deprecated because of its ambiguitiy:
+% The command does not change the text \emph{language} but only the
+% font encoding, which allows the use of the Greek \emph{script}
+% but does not activate Greek hyphenation and case-changing rules.
% \changes{greek-1.0b}{1996/09/23}{Added a level of braces to keep
-% encoding change local}
+% encoding change local}
% \changes{greek-1.3k}{2003/03/19}{Added \cs{leavevmode} as was done
-% with \cs{latintext}}
+% with \cs{latintext}}
+% \changes{babel-greek-1.12}{2023/03/04}{^^A
+% Simplified implementation using \cs{\DeclareTextFontCommand}.
+% Name changed from \cs{textgreek} to \cs{lgrfont}.}
% \begin{macrocode}
- \DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}}
+ \DeclareTextFontCommand{\lgrfont}{\greektext}
+ \let\textgreek\lgrfont
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\textol}
-% The \href{http://www.ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
+% The \href{https://ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
% contain an outline family. In order to make it available,
% we define the command |\textol|. (This font-specific macro does not
-% fit in a language defintion file is and only kept for backwards
+% fit in a language definition file and is only kept for backwards
% compatibility.)
% \begin{macrocode}
\def\outlfamily{\usefont{LGR}{cmro}{m}{n}}
\DeclareTextFontCommand{\textol}{\outlfamily}
-}{} % End of LGR fixes.
% \end{macrocode}
% \end{macro}
+% Add LGR-specific variants to some \emph{TextCommands}
+% that use Latin characters in their default definition.
+% These definitions cannot be done in \file{lgrenc.def} because they rely
+% on |\ensureascii| (defined by \pkg{babel}).
+% \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark}
+% misses a `t', \cs{copyright} should be \cs{textcopyright}}
+% \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}}
+% \changes{greek-1.4}{2013/05/17}{moved here from \file{lgrenc.def} because
+% the definitions require the \cs{latintext} macro defined by Babel.}
+% \changes{greek-1.5}{2013/05/27}{enable use of "textcomp" characters
+% for "textcopyright" and "textregistered" macros}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Use font-encoding specific TextCommands.}
+% \changes{babel-greek-1.12}{2023/03/04}{Drop definition for \cs{\SS}.}
+% \begin{macrocode}
+ \ProvideTextCommand{\textcopyright}{LGR}{\ensureascii{\textcopyright}}
+ \ProvideTextCommand{\textregistered}{LGR}{\ensureascii{%
+ \textregistered}}
+ \ProvideTextCommand{\texttrademark}{LGR}{\ensureascii{\texttrademark}}
+% \end{macrocode}
%
-% \section{Definitions for the Greek language}
-%
-% The next step consists in defining commands to switch to (and
-% from) the Greek language.
-%
-% \begin{macro}{\greekhyphenmins}
-% This macro is used to store the correct values of the hyphenation
-% parameters |\lefthyphenmin| and |\righthyphenmin|.
-% \changes{greek-1.3h}{2000/09/22}{Now use \cs{providehyphenmins} to
-% provide a default value}
+% \begin{macro}{\textampersand}
+% LGR has a ``middle dot'' glyph at the place of the ampersand.
+% Provide the \emph{TextCommand} |\textampersand| and an LGR-specific
+% version. It is used in the next section to define a version of |\&|
+% that also works in LGR.
+% \changes{greek-1.5}{2013/06/15}{Make \cs{\&} a TextCommand}
+% \changes{babel-greek-1.09j}{2020/03/17}{Fix ampersand in math.}
% \begin{macrocode}
-% Yannis Haralambous has suggested this value
-\providehyphenmins{\CurrentOption}{\@ne\@ne}
+ \let\bbl@greek@original@amp\&
+ \ProvideTextCommandDefault{\textampersand}{\bbl@greek@original@amp}
+ \ProvideTextCommand{\textampersand}{LGR}{%
+ \ensureascii{\bbl@greek@original@amp}}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\EnsureStandardFontEncoding}
+% The TextCommand |\EnsureStandardFontEncoding| can be used to make
+% existing commands ``LGR-proof''. It makes sure its argument is typeset
+% using a \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf}
+% {standard text font encoding}.
+% The default is an empty command: almost all commonly used font encodings
+% are standard text encodings -- LGR is the notable exception.
+% The local LGR variant uses |\ensureascii| from the Babel core that comes
+% with elaborate heuristics to select a suitable standard font encoding.
+% A special clause for \pkg{hyperref} avoids warnings from this package.
+% \changes{babel-greek-1.12}{2023/03/04}{New TextCommand.}
+% \begin{macrocode}
+ \ProvideTextCommandDefault{\EnsureStandardFontEncoding}{\@firstofone}
+ \ProvideTextCommand{\EnsureStandardFontEncoding}{LGR}[1]{%
+ \ensureascii{#1}}
+ \AtBeginDocument{\@ifpackageloaded{hyperref}
+ {\pdfstringdefDisableCommands{%
+ \let\EnsureStandardFontEncoding\@firstofone}}
+ {}}
+% \end{macrocode}
+% \end{macro}
+% End the LGR additions block:
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+
+% \subsubsection{LGR workarounds \label{sec:lgr-redefinitions}}
+%
+% The following redefinitions work around problems with the
+% non-standard LGR font encoding.
+% As they may have serious side-effects, they are only done if LGR is the
+% default Greek font encoding (cf.\ section~\ref{sec:greekfontencoding}).
+%
+% As an emergency measure, the \Lopt{local-LGR-fixes} or \Lopt{no-LGR-fixes}
+% modifiers (cf.\ section \ref{sec:modifiers}) can be used to restrict
+% the ``roman'' redefinitions to text parts using the Greek language or skip
+% them completely.
+%
+% To prevent Roman numerals being typeset with Greek letters in text parts
+% using the LGR font encoding, they must be wrapped in |\ensureascii|.
+% However, Roman numerals are also auto generated by LaTeX and
+% used in moving arguments.\footnote{
+% For example, Roman page numbers are generated at ``unpredictable''
+% positions and can move to the ToC, (hyper)references, or an index.}
+% These ``moving'' Roman numbers must be LGR-proofed also if they originate
+% from a text part using a standard font encoding. This can only be ensured by
+% a global re-definition of the generating functions |\@roman| and |\@Roman|.
+% On the other hand, the re-definition breaks the assumption by
+% MakeIndex, that page numbers are plain character sequences.
+% \pkg{Hyperref} assumes that |\thepage| is expandable and doesn't
+% contain formatting instructions (cf.\
+% \href{https://github.com/latex3/babel/issues/170}{Babel issue \#170}).
+% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman}
+% back to the language specific file}
+% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to
+% be added to \cs{extraspolutonikogreek}}
+% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need
+% \emph{not} be in \cs{extraspolutonikogreek} when they are
+% already in \cs{extrasgreek}}
+% \changes{greek-1.5}{2013/06/15}{\cs{@roman} and \cs{@Roman} as TextCommands
+% (BUG: this extended the expansion problem to all languages!)}
+% \changes{greek-1.6}{2013/07/19}{Apply a patch by Enrico Gregorio.
+% Thanks to Claudio Beccari for testing and reporting.}
+%
+% The ampersand macro |\&| is used in both, text and math mode.
+% Let it use the new defined \emph{TextCommand} |\textampersand|
+% in text mode.
+% \begin{macrocode}
+\def\bbl@tempa{LGR}
+\ifx\greekfontencoding\bbl@tempa
+ \def\bbl@greek@roman#1{\expandafter\EnsureStandardFontEncoding%
+ \expandafter{\romannumeral#1}}
+ \def\bbl@greek@Roman#1{\expandafter\EnsureStandardFontEncoding%
+ \expandafter{\expandafter\@slowromancap\romannumeral#1@}}
+ \DeclareRobustCommand{\bbl@greek@ampersand}{%
+ \ifmmode\bbl@greek@original@amp\else\textampersand\fi}
+ \bbl@xin@{,no-LGR-fixes,}{,\BabelModifiers,}%
+ \ifin@
+ % skip re-definitions
+ \else
+ \bbl@xin@{,local-LGR-fixes,}{,\BabelModifiers,}%
+ \ifin@
+ \addto\extrasgreek{%
+ \babel@save\@roman
+ \babel@save\@Roman
+ \let\@roman\bbl@greek@roman
+ \let\@Roman\bbl@greek@Roman
+ \babel@save\&%
+ \let\&\bbl@greek@ampersand%
+ }
+ \else
+ \let\@roman\bbl@greek@roman
+ \let\@Roman\bbl@greek@Roman
+ \let\&\bbl@greek@ampersand
+ \fi
+ \fi
+\fi
+% \end{macrocode}
%
+%
+% \subsection{Definitions for the Greek language}
+%
+% The next step consists in defining macros for the requirements of Greek
+% typesetting which will later be added to the language switch hooks.
+%
+% \subsubsection{Auto-strings for Greek}
% \changes{greek-1.1e}{1997/10/12}{Added caption name for proof}
% \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe ep'ishc}
-% instead of \texttt{bl'pe ep'ishc}}
+% instead of \texttt{bl'pe ep'ishc}}
%
% \begin{macro}{\captionsgreek}
% The macro |\captionsgreek| defines all strings used in the
% four standard document classes provided with \LaTeX.
% \changes{greek-1.3h}{2000/09/20}{Added \cs{glossaryname}}
% \changes{greek-1.3i}{2000/10/02}{The final sigma in all names appears
-% as `s' instead of `c'.}
-% \changes{babel-greek-1.9i}{2020/02/27}{Fix accent in seename and alsoname.}
+% as `s' instead of `c'.}
+% \changes{babel-greek-1.09i}{2020/02/27}{Fix accent in seename and alsoname.}
% \begin{macrocode}
\addto\captionsgreek{%
\def\prefacename{\textPi\textrho\acctonos\textomicron\textlambda
@@ -682,8 +956,9 @@
\textphi\textomicron\textrho\acctonos\textepsilon\textfinalsigma}%
\def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota
\textlambda\texteta\textpsi\texteta}%
- \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron
- \textgamma\textrho\textalpha\textphi\acctonos\textiota\textalpha}%
+ \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota
+ \textomicron\textgamma\textrho\textalpha\textphi\acctonos
+ \textiota\textalpha}%
\def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha
\textlambda\textalpha\textiota\textomicron}%
\def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha\textrho
@@ -697,7 +972,8 @@
\textomega\textnu}%
\def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha
\textlambda\textomicron\textgamma\textomicron\textfinalsigma{}
- \textPi\textiota\textnu\acctonos\textalpha\textkappa\textomega\textnu}%
+ \textPi\textiota\textnu\acctonos\textalpha\textkappa\textomega
+ \textnu}%
\def\indexname{\textEpsilon\textupsilon\textrho\textepsilon
\texttau\acctonos\texteta\textrho\textiota\textomicron}%
\def\figurename{\textSigma\textchi\acctonos\texteta\textmu\textalpha}%
@@ -712,27 +988,31 @@
\def\headtoname{\textPi\textrho\textomicron\textfinalsigma}%
\def\pagename{\textSigma\textepsilon\textlambda\acctonos\textiota
\textdelta\textalpha}%
- \def\seename{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon}%
- \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon{}
- \textepsilon\textpi\acctonos\textiota\textsigma\texteta\textfinalsigma}%
+ \def\seename{\textbeta\textlambda\acctonos\textepsilon\textpi
+ \textepsilon}%
+ \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi
+ \textepsilon{} \textepsilon\textpi\acctonos\textiota\textsigma
+ \texteta\textfinalsigma}%
\def\proofname{\textAlpha\textpi\acctonos\textomicron
\textdelta\textepsilon\textiota\textxi\texteta}%
\def\glossaryname{\textGamma\textlambda\textomega\textsigma
\textsigma\acctonos\textalpha\textrho\textiota}%
- }
+}
% \end{macrocode}
% \end{macro}
+%
+% \subsubsection{Auto-strings for polytonic Greek}
% \changes{greek-1.2}{1997/10/28}{Added caption names for
-% \cs{polutonikogreek}}
+% \cs{polutonikogreek}}
% \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe >ep'ishc}
-% instead of \texttt{bl'pe >ep'ishc}}
-%
+% instead of \texttt{bl'pe >ep'ishc}}
% \begin{macro}{\captionspolutonikogreek}
-% For texts written in the $\pi o\lambda\upsilon\tau
-% o\nu\kappa\acute{o}$ (polytonic greek) the translations are
+% For texts written in polytonic greek, the translations are
% the same as above, but some words are spelled differently. For
% now we just add extra definitions to |\captionsgreek| in order to
% override the earlier definitions.
+% \changes{babel-greek-1.09b}{2014/09/18}{Use named macros instead of
+% non-standard short accent macros for psili and dasia.}
% \begin{macrocode}
\let\captionspolutonikogreek\captionsgreek
\addto\captionspolutonikogreek{%
@@ -740,82 +1020,85 @@
\textphi\textomicron\textrho\accvaria\textepsilon\textfinalsigma}%
\def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon
\texttau\acctonos\texteta\textrho\textiota\textomicron}%
- \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu\textalpha}%
+ \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu
+ \textalpha}%
\def\headtoname{\textPi\textrho\accvaria\textomicron\textfinalsigma}%
- \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon{}
- \accpsili\textepsilon\textpi\acctonos\textiota\textsigma\texteta\textfinalsigma}%
+ \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi
+ \textepsilon{} \accpsili\textepsilon\textpi\acctonos\textiota
+ \textsigma\texteta\textfinalsigma}%
\def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron
\textdelta\textepsilon\textiota\textxi\texteta}%
}
% \end{macrocode}
% \end{macro}
%
-% \changes{babel-greek-1.9}{2014/07/20}{Added caption names for
-% \cs{ancientgreek}}
-%
+% \subsubsection{Auto-strings for ancient Greek}
+% \changes{babel-greek-1.09}{2014/07/20}{Added caption names for
+% \cs{ancientgreek}}
% \begin{macro}{\captionsancientgreek}
-% For texts written in ancient Greek, we took
-% the translations from Apostolos Syropoulos' |xgreek| package. For
-% now we just add extra definitions to |\captionsgreek| in order to
-% override the earlier definitions.
+% For texts written in ancient Greek, we took the translations
+% from Apostolos Syropoulos' \pkgref{xgreek} package.
+% For now we just add extra definitions to |\captionsgreek|
+% in order to override the earlier definitions.
% \begin{macrocode}
\let\captionsancientgreek\captionsgreek
\addto\captionsancientgreek{%
- \def\prefacename{\textPi\textrho\textomicron\textomicron\acctonos\textiota\textmu
- \textiota\textomicron\textnu}%
- \def\refname{\accpsili\textAlpha\textnu\textalpha\textphi\textomicron\textrho
- \textalpha\accvaria\textiota}%
- \def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota\textlambda\texteta
- \textpsi\textiota\textvarsigma}%
- \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron
- \textgamma\textrho\textalpha\textphi\acctonos\textiota\textalpha}%
- \def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha\textlambda
- \textalpha\textiota\textomicron\textnu}%
- \def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha\textrho\texttau
- \texteta\textmu\textalpha}%
- \def\contentsname{\textPi\textepsilon\textrho\textiota\textepsilon\textchi
- \acctonos\textomicron\textmu\textepsilon\textnu\textalpha}%
- \def\listfigurename{\textKappa\textalpha\texttau\acctonos\textalpha\textlambda
- \textomicron\textgamma\textomicron\textvarsigma{}
- \textsigma\textchi\texteta\textmu\acctonos\textalpha\texttau\textomega\textnu}%
- \def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha\textlambda
- \textomicron\textgamma\textomicron\textvarsigma{}
- \textpi\textiota\textnu\acctonos\textalpha\textkappa\textomega\textnu}%
- \def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon\texttau
- \acctonos\texteta\textrho\textiota\textomicron\textnu}%
- \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu\textalpha}%
+ \def\prefacename{\textPi\textrho\textomicron\textomicron
+ \acctonos\textiota\textmu\textiota\textomicron\textnu}%
+ \def\refname{\accpsili\textAlpha\textnu\textalpha\textphi\textomicron
+ \textrho\textalpha\accvaria\textiota}%
+ \def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota
+ \textlambda\texteta\textpsi\textiota\textvarsigma}%
+ \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota
+ \textomicron\textgamma\textrho\textalpha\textphi
+ \acctonos\textiota\textalpha}%
+ \def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha
+ \textlambda\textalpha\textiota\textomicron\textnu}%
+ \def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha
+ \textrho\texttau\texteta\textmu\textalpha}%
+ \def\contentsname{\textPi\textepsilon\textrho\textiota\textepsilon
+ \textchi\acctonos\textomicron\textmu\textepsilon\textnu\textalpha}%
+ \def\listfigurename{\textKappa\textalpha\texttau\acctonos\textalpha
+ \textlambda\textomicron\textgamma\textomicron\textvarsigma{}
+ \textsigma\textchi\texteta\textmu\acctonos\textalpha\texttau
+ \textomega\textnu}%
+ \def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha
+ \textlambda\textomicron\textgamma\textomicron\textvarsigma{}
+ \textpi\textiota\textnu\acctonos\textalpha\textkappa
+ \textomega\textnu}%
+ \def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon
+ \texttau\acctonos\texteta\textrho\textiota\textomicron\textnu}%
+ \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu
+ \textalpha}%
\def\tablename{\textPi\acctonos\textiota\textnu\textalpha\textxi}%
- \def\partname{\textMu\acctonos\textepsilon\textrho\textomicron\textvarsigma}%
+ \def\partname{\textMu\acctonos\textepsilon\textrho\textomicron
+ \textvarsigma}%
\def\enclname{\textSigma\textupsilon\textnu\texteta\textmu\textmu
\acctonos\textepsilon\textnu\textomega\textvarsigma}%
\def\ccname{\textKappa\textomicron\textiota\textnu\textomicron\textpi
- \textomicron\acctonos\textiota\texteta\textsigma\textiota\textvarsigma}%
+ \textomicron\acctonos\textiota\texteta\textsigma\textiota
+ \textvarsigma}%
\def\headtoname{\textPi\textrho\accvaria\textomicron\textvarsigma}%
- \def\pagename{\textSigma\textepsilon\textlambda\accvaria\textiota\textvarsigma}%
+ \def\pagename{\textSigma\textepsilon\textlambda\accvaria\textiota
+ \textvarsigma}%
\def\seename{\accdasiaoxia\textomicron\textrho\textalpha}%
- \def\alsoname{\accdasiaoxia\textomicron\textrho\textalpha{} \accdasia\textomega\textsigma
- \textalpha\acctonos\textupsilon\texttau\textomega\textvarsigma}%
- \def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron\textdelta\textepsilon
- \textiota\textxi\textiota\textvarsigma}%
+ \def\alsoname{\accdasiaoxia\textomicron\textrho\textalpha{}
+ \accdasia\textomega\textsigma\textalpha\acctonos\textupsilon
+ \texttau\textomega\textvarsigma}%
+ \def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron
+ \textdelta\textepsilon\textiota\textxi\textiota\textvarsigma}%
\def\glossaryname{\textGamma\textlambda\textomega\textsigma\textsigma
\acctonos\textalpha\textrho\textiota\textomicron\textnu}%
- }
+}
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{Date specification}
+%
% \begin{macro}{\gr@month}
+% The auxiliary macro |\gr@month| returns Greek month names in
+% monotonic spelling.
% \changes{greek-1.1e}{1997/10/12}{Macro added}
-% \begin{macro}{\dategreek}
-% The macro |\dategreek| redefines the command |\today| to
-% produce greek dates. The name of the month is now produced
-% by the macro |\gr@month| since it is needed in the definition
-% of the macro |\Grtoday|.
-% \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou}
-% instead of \texttt{Oktobr'iou}}
-% \changes{greek-1.1d}{1997/10/12}{Macro \cs{gr@month} now produces
-% the name of the month}
-% \changes{greek-1.2a}{1997/10/31}{Use \cs{edef} to define \cs{today}}
-% \changes{greek-1.2b}{1998/03/28}{use \cs{def} instead of \cs{edef}}
% \begin{macrocode}
\def\gr@month{%
\ifcase\month\or
@@ -823,8 +1106,9 @@
\textrho\acctonos\textiota\textomicron\textupsilon \or
\textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon
\textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or
- \textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron\textupsilon
- \or \textAlpha\textpi\textrho\textiota\textlambda\acctonos\textiota
+ \textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron
+ \textupsilon \or
+ \textAlpha\textpi\textrho\textiota\textlambda\acctonos\textiota
\textomicron\textupsilon \or
\textMu\textalpha\'"\textiota\textomicron\textupsilon \or
\textIota\textomicron\textupsilon\textnu\acctonos\textiota
@@ -843,30 +1127,28 @@
\textrho\acctonos\textiota\textomicron\textupsilon
\fi
}
-\def\dategreek{%
- \def\today{\number\day \space \gr@month\space \number\year}}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\gr@c@greek}
+% \begin{macro}{\gr@polutoniko@month}
+% The auxiliary macro |\gr@polutoniko@month| returns Greek month names in
+% polytonic spelling. It is activated by the |polutoniko| language option.
% \changes{greek-1.2}{1997/10/28}{Added macro \cs{gr@cl@month}}
-% \changes{greek-1.2}{1997/10/28}{Added macro
-% \cs{datepolutonikogreek}}
-% \changes{greek-1.3a}{1997/10/28}{removed macro
-% \cs{datepolutonikogreek}}
+% \changes{greek-1.2}{1997/10/28}{Added macro \cs{datepolutonikogreek}}
+% \changes{greek-1.3a}{1997/10/28}{removed macro \cs{datepolutonikogreek}}
% \begin{macrocode}
-\def\gr@c@month{%
+\def\gr@polutoniko@month{%
\ifcase\month\or
- \accpsili\textIota\textalpha\textnu\textomicron\textupsilon\textalpha
- \textrho\acctonos\textiota\textomicron\textupsilon \or
+ \accpsili\textIota\textalpha\textnu\textomicron\textupsilon
+ \textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or
\textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon
\textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or
\textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron
\textupsilon \or
\accpsili\textAlpha\textpi\textrho\textiota\textlambda
\acctonos\textiota\textomicron\textupsilon \or
- \textMu\textalpha\"'\textiota\textomicron\textupsilon \or
+ \textMu\textalpha\accdialytikatonos\textiota\textomicron
+ \textupsilon \or
\accpsili\textIota\textomicron\textupsilon\textnu
\acctonos\textiota\textomicron\textupsilon \or
\accpsili\textIota\textomicron\textupsilon\textlambda
@@ -886,49 +1168,79 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\dategreek}
+% The macro |\dategreek| redefines the command |\today| to
+% produce greek dates. The name of the month is produced
+% by the macro |\gr@month| since it is also needed in the definition
+% of the macro |\Grtoday|.
+% \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou}
+% instead of \texttt{Oktobr'iou}}
+% \changes{greek-1.1d}{1997/10/12}{Macro \cs{gr@month} now produces
+% the name of the month}
+% \changes{greek-1.2a}{1997/10/31}{Use \cs{edef} to define \cs{today}}
+% \changes{greek-1.2b}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\dategreek{%
+ \def\today{\number\day \space \gr@month\space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\Grtoday}
% \changes{greek-1.1}{1996/10/28}{Added macro \cs{Grtoday}}
-% The macro |\Grtoday| produces the current date, only that the
-% month and the day are shown as greek numerals instead of arabic
-% as it is usually the case.
+% The macro |\Grtoday| produces the current date, only that the
+% month and the day are shown as greek numerals instead of arabic
+% as it is usually the case.
% \begin{macrocode}
\def\Grtoday{%
\expandafter\Greeknumeral\expandafter{\the\day}\space
- \gr@c@month \space
+ \gr@polutoniko@month \space
\expandafter\Greeknumeral\expandafter{\the\year}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\extrasgreek}
-% \begin{macro}{\noextrasgreek}
-% The macro |\extrasgreek| will perform all the extra definitions
-% needed for the Greek language. The macro |\noextrasgreek| is used
-% to cancel the actions of |\extrasgreek|. For the moment these
-% macros switch the fontencoding (with 8-bit TeX) and the definition of
-% the internal macros |\@alph| and |\@Alph| because in Greek we do use
-% the Greek numerals.
-% \changes{greek-1.5}{2013/06/21}{LGR not used with XeTeX/LuaTeX.}
-% \changes{greek-1.8}{2013/11/27}{use font-encoding specific TextCommands.
-% Use EU1 or EU2 for Latin script if available}
+% \subsubsection{Greek numerals \label{sec:Greek numerals}}
+%
+% \begin{macro}{\greeknumeralsix}
+% \begin{macro}{\greeknumeralSix}
+% \begin{macro}{\greeknumeralninety}
+% \begin{macro}{\greeknumeralNinety}
+% The shape of the obsolete characters used for number 6 (digamma/stigma)
+% and 90 (koppa) evolved over time and different characters are in use
+% for them today. We define placeholders that allow configuration by
+% the user or a package.
+% \changes{babel-greek-1.10}{2020/11/10}{
+% Use zig-zagy \cs{textkoppa}.
+% This is what it looks in current Greek typography.}
% \begin{macrocode}
-\addto\extrasgreek{\greekscript}
-\addto\noextrasgreek{\latintext}
+\providecommand*{\greeknumeralsix}{\textstigma}
+\providecommand*{\greeknumeralSix}{\textStigma}
+\providecommand*{\greeknumeralninety}{\textkoppa}
+\providecommand*{\greeknumeralNinety}{\textKoppa}
% \end{macrocode}
-% TODO restore previous font encoding.
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\greeknumeral}
+% The commands |\greeknumeral| and |\Greeknumeral| produce the lowercase
+% and uppercase \href{https://en.wikipedia.org/wiki/Greek_numerals}{Greek
+% numerals} respectively.
+%
% The command |\greeknumeral| needs to be \emph{fully} expandable
% in order to get the right information in auxiliary
% files. It should also be usable in PDF-strings.
% Therefore we use the implementation from the \cs{HyPsd@GreekPatch}
-% in \href{https://ctan.org/pkg/hyperref}{hyperref}
-% (version 7.00e 2020-05-15).
+% in \pkgref{hyperref} (version 7.00e 2020-05-15).
+%
% \changes{babel-greek-1.10}{2020/11/10}{PDF-string secure implementation
-% taken from ``hyperref'' (collaboration with Ulrike Fischer).}
+% taken from ``hyperref'' (thanks to Ulrike Fischer).}
+% \changes{babel-greek-1.11}{2020/11/20}{Configurable shapes for 6 and 90.
+% 90 defaults to \cs{textqoppa} for ancient Greek.}
% \begin{macrocode}
\def\greeknumeral#1{%
{\greekscript
- \bbl@greek@GreekNum\@firstoftwo{#1}}%
+ \bbl@greek@GreekNum\@firstoftwo{#1}}%
}
% \end{macrocode}
% \end{macro}
@@ -937,7 +1249,7 @@
% \begin{macrocode}
\def\Greeknumeral#1{%
{\greekscript
- \bbl@greek@GreekNum\@secondoftwo{#1}}%
+ \bbl@greek@GreekNum\@secondoftwo{#1}}%
}
% \end{macrocode}
% \end{macro}
@@ -1018,7 +1330,7 @@
\or\textgamma\textGamma
\or\textdelta\textDelta
\or\textepsilon\textEpsilon
- \or\textstigmagreek\textStigmagreek
+ \or\greeknumeralsix\greeknumeralSix % stigma or digamma
\or\textzeta\textZeta
\or\texteta\textEta
\or\texttheta\textTheta
@@ -1043,7 +1355,7 @@
\or\textxi\textXi
\or\textomicron\textOmicron
\or\textpi\textPi
- \or\textkoppa\textKoppa
+ \or\greeknumeralninety\greeknumeralNinety % koppa or qoppa
\else
{}{}%
\fi
@@ -1096,19 +1408,13 @@
%
% \begin{macro}{\greek@alph}
% \begin{macro}{\greek@Alph}
-% In the previous release of this language definition the
+% In the previous release of this language definition file the
% commands |\greek@aplh| and |\greek@Alph| were kept just for
% reasons of compatibility. Here again they become meaningful macros.
-% They are definited in a way that even page numbering with greek
-% numerals is possible. Since the macros |\@alph| and |\@Alph| will
-% lose their original meaning while the Greek option is active, we
-% must save their original value.
-% macros |\@alph|
-% \begin{macrocode}
-\let\latin@alph\@alph
-\let\latin@Alph\@Alph
-% \end{macrocode}
-% Then we define the Greek versions; the additional |\expandafter|s
+% They are defined in a way that even page numbering with greek
+% numerals is possible.
+%
+% We define the Greek versions; the additional |\expandafter|s
% are needed in order to make sure the table of contents will be
% correct, e.g., when we have appendixes.
% \begin{macrocode}
@@ -1116,100 +1422,103 @@
\def\greek@Alph#1{\expandafter\Greeknumeral\expandafter{\the#1}}
% \end{macrocode}
%
-% Now we can set up the switching.
-% \changes{greek-1.1a}{1997/03/03}{removed two superfluous @'s which
-% made \cs{@alph} undefined}
+% Redefine the internal macros |\@alph| and |\@Alph| in the
+% language hook, so that we use Greek numerals\footnote{
+% cf.\ section \ref{sec:Greek numerals}}
+% instead of the Latin alphabet\footnote{
+% Eventually interpreted as Latin transliteration and converted
+% to Greek letters in a ``strange'' order.}
+% in Greek text parts.
+% \changes{greek-1.1a}{1997/03/03}{
+% removed two superfluous @'s which made \cs{@alph} undefined}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Save/restore previous expansion of \cs{\@alph} and \cs{\@Alph}
+% with every switch to/from Greek.}
% \begin{macrocode}
\addto\extrasgreek{%
+ \babel@save\@alph
+ \babel@save\@Alph
\let\@alph\greek@alph
- \let\@Alph\greek@Alph}
-\addto\noextrasgreek{%
- \let\@alph\latin@alph
- \let\@Alph\latin@Alph}
+ \let\@Alph\greek@Alph
+}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
%
-% \section{Character codes}
+% \subsection{Character codes}
+%
+% Greek letters drop diacritics (eccept dialytika and sub-iota) in
+% UPPERCASE. This is not cared for by the Unicode standard.
+% The file \file{greek-euenc.def} from \pkg{greek-fontenc}
+% contains the required |\lccode| and |\uccode| corrections from the
+% \pkgref{xgreek} package by Apostolos Syropoulos. It is loaded if the
+% Greek font encoding is TU (i.e. with XeTeX/LuaTeX),
+% see section~\ref{load-greek-font-encoding-definitions}.
%
-% Greek letters drop diacritics (eccept dialytika and sub-iota) in
-% UPPERCASE. This is not cared for by the Unicode standard.
-% The file \file{greek-euenc.def} from \pkg{greek-fontenc}
-% contains the required |\lccode| and |\uccode| corrections from the
-% \pkg{xgreek} package by Apostolos Syropoulos.
+% If the Greek font encoding is LGR, character code changes are done here
+% because they must be restricted to text parts using the LGR encoding.
% \changes{greek-1.5}{2013/06/21}{Support XeTeX/LuaTeX.}
-% \changes{greek-1.9d}{2015/07/06}{uclc fixes not included in greek-euenc.def}
-%
-% The LGR encoded fonts that are used to typeset Greek with 8-bit TeX
-% define ligatures for characters with diacritics. In order for this to
-% work, some characters need to be considered as letters. These
-% characters are |<|, |>|, |~|, |`|, |'|, |"| and
-% \verb=|=. Therefore, their |\lccode| is changed when Greek is in
-% effect. In order to let |\uppercase| give correct results, the
-% |\uccode| of these characters is set to a non-existing character
-% to make them disappear. Of course not all characters are needed
-% when typesetting ``modern'' $\mu o\nu o\tau o\nu
-% \iota\kappa\acute{o}$. In that case we only need the |'| and |"|
-% symbols which are treated in the proper way.
-%
-% \begin{macro}{\greek@tilde}
-% \changes{greek-1.0c}{1997/02/19}{Added command}
-% The Greek script uses a number of characters with more
-% than one accent. In LGR encoded fonts combined diacritics can be
-% obtained using Knuth's ligature mechanism (see usage.pdf).
-% Characters we need to have ligatures with are the tilde, the
-% acute and grave accent characters, the rough and smooth breathings,
-% the subscript, and the double quote character.
-% In text input the |~| is normally used to produce an
-% unbreakable space.
-% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not
-% active during the definition of \cs{greek@tilde}}
-% \changes{greek-1.4}{2013/05/17}{do not re-define the tilde accent macro:
-% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.}
+% \changes{babel-greek-1.09d}{2015/07/06}{uc-/lccode corrections from xgreek
+% are now in greek-euenc.def (the polyglossia version has bugs).}
+% \changes{babel-greek-1.12}{2023/03/04}{%
+% Only change uc/lccodes if LGR is the \cs{greekfontencoding}.}
% \begin{macrocode}
-\@ifl@aded{def}{lgrenc}{%
- \begingroup
- \@ifundefined{active@char\string!}{}{\catcode`!=12\relax}
- \catcode`\~=12%
- \lccode`\!=`\~%
- \lowercase{\def\x{\endgroup
- \def\greek@tilde{!}}\x}
+\def\bbl@tempa{LGR}
+\ifx\greekfontencoding\bbl@tempa
% \end{macrocode}
-% \end{macro}
-% In order to get correct hyphenation we need to set the lower case
-% code of a number of characters. The `v' character has a special
-% usage for the |cb| fonts: in fact this ligature mechanism detects
-% the end of a word and assures that a final sigma is typeset with
-% the proper sign wich is different from that of an initial or
-% medial sigma; the `v 'after an \textit{isolated} sigma fools
-% the ligature mechanism in order to typeset $\sigma$ in place of
-% $\varsigma$. Because of this we make sure its lowercase code is
-% not changed. For ``modern'' greek we have to deal only with |'|
-% and |"| and so things are easy.
+% In order to get correct hyphenation we need to set the lower case
+% code of a number of characters.
+%
+% In LGR encoded fonts, diacritics can be obtained using Knuth's
+% ligature mechanism (see usage.pdf). This means that the characters
+% |<|, |>|, |~|, |`|, |'|, |"|, and \verb=|= may be part of a word.
+% Therefore, their |\lccode| is changed when polytonic Greek is in
+% effect. For monotonic Greek, we only need |'| and |"|.
+%
+% The `v' character has a special usage in LGR-encoded fonts:
+% The LGR ligature mechanism detects the end of a word and assures that
+% a final sigma ($\varsigma$) is used. The `v' after an `s' overrides this
+% ligature mechanism so that it is possible to typeset an isolated $\sigma$
+% without it becoming a $\varsigma$.
+% Because of this we make sure its lowercase code is not changed.
% \changes{greek-1.1c}{1997/04/30}{fixed two typos}
% \changes{greek-1.1e}{1997/10/12}{Added lowercase code for v}
% \changes{greek-1.2}{1997/10/28}{Definitions for ``modern'' Greek are
-% now the definitions of ``Polutoniko'' Greek}
+% now the definitions of ``polutoniko'' Greek}
% \changes{greek-1.2}{1997/10/28}{Added lowercase codes for ``modern''
% greek}
% \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and
% \cs{extraspolutonikogreek} should be complementary}
-% \changes{babel-greek-1.9}{2014/07/20}{Added lc codes for chars 128 to 255}
+% \changes{babel-greek-1.09}{2014/07/20}{Added lc codes for chars 128 to 255}
+% \changes{babel-greek-1.09b}{2014/09/18}{Remove spurious whitespace from
+% `extrasgreek' definition (report Eike Schmidt).}
+% \begin{macrocode}
+ \addto\extrasgreek{%
+ \babel@savevariable{\lccode`v}\lccode`v=`v%
+ \babel@savevariable{\lccode`\'}\lccode`\'=`\'%
+ \babel@savevariable{\lccode`\"}\lccode`\"=`\"%
+ }
+ \addto\extraspolutonikogreek{%
+ % \l@greek=\bbl@polygreek
+ \babel@savevariable{\lccode`\<}\lccode`\<=`\<%
+ \babel@savevariable{\lccode`\>}\lccode`\>=`\>%
+ \babel@savevariable{\lccode`\~}\lccode`\~=`\~%
+ \babel@savevariable{\lccode`\|}\lccode`\|=`\|%
+ \babel@savevariable{\lccode`\`}\lccode`\`=`\`%
+ }
+% \end{macrocode}
% In order to process the suitable characters and in such a way that
% hyphenation patterns work also with precomposed characters, it is
-% necessary to declare the lc code for all characters, that can be part
+% necessary to declare the lc code for all characters that can be part
% of a word. We do this in |\extrasgreek| because this is a feature of
-% the LGR font encoding (which is the same in all language variants).
+% the LGR font encoding (used in all language variants).
% This means that multi-accented characters are regarded parts of a word
% (and not non-word characters) also in monotonic spelling.
-% \changes{babel-greek-1.9e}{2015/11/27}{Fix bug in lccode-setting loop
+% \changes{babel-greek-1.09e}{2015/11/27}{Fix bug in lccode-setting loop
% (patch by Enrico Gregorio).}
% \begin{macrocode}
\addto\extrasgreek{%
- \babel@savevariable{\lccode`v}\lccode`v=`v%
- \babel@savevariable{\lccode`\'}\lccode`\'=`\'%
- \babel@savevariable{\lccode`\"}\lccode`\"=`\"%
% ``high bit characters'': set in a loop and correct exceptions
\@tempcnta=128%
\@whilenum\@tempcnta<253\do{%
@@ -1228,19 +1537,14 @@
\lccode219=240% GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
\lccode223=244% GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
}
-
- \addto\extraspolutonikogreek{%
- % \l@greek=\bbl@polygreek
- \babel@savevariable{\lccode`\<}\lccode`\<=`\<%
- \babel@savevariable{\lccode`\>}\lccode`\>=`\>%
- \babel@savevariable{\lccode`\~}\lccode`\~=`\~%
- \babel@savevariable{\lccode`\|}\lccode`\|=`\|%
- \babel@savevariable{\lccode`\`}\lccode`\`=`\`%
- }
% \end{macrocode}
-% And in order to get rid of all accents and breathings when a
-% string is |\uppercase|d we also change a number of uppercase
-% codes.
+%
+% In order to drop diacritics (eccept dialytika and sub-iota) in
+% UPPERCASE also with the ``input ligatures'' the |\uccode| of the
+% relevant characters is set to a dummy character.
+% This is only done, if LaTeX is older than 2022/06/01 because
+% the |\MakeUppercase| implementation introduced in this version ignores
+% uccodes and fails with the ``dummy'' character 0x9f.
% \changes{greek-1.1b}{1997/03/06}{Added setting of \cs{uccode}s
% (after \file{kdgreek.sty})}
% \changes{greek-1.1e}{1997/10/12}{Added uppercase code for special
@@ -1255,76 +1559,115 @@
% \indexbar{} to reflect recent changes in the cb fonts}
% \changes{greek-1.3i}{2000/10/02}{uc code of `v' is switched to V
% so that mixed text appears correctly in headers.}
-% \changes{greek-1.3j}{2001/02/03}{Because other languages might
-% make the caret active, we can't use the double caret notation
-% here}
+% \changes{greek-1.3j}{2001/02/03}{Don't use the double caret notation here,
+% because other languages might make the caret active.}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Don't change uccodes if LaTeX is from 2022/06/01 or newer.}
% \begin{macrocode}
- \addto\extrasgreek{%
- \babel@savevariable{\uccode`\"}\uccode`\"=`\"%
- \babel@savevariable{\uccode`\'}\uccode`\'=159% 159 == ^^9f
- }
- \addto\extraspolutonikogreek{%
- \babel@savevariable{\uccode`\~}\uccode`\~=159%
- \babel@savevariable{\uccode`\>}\uccode`\>=159%
- \babel@savevariable{\uccode`\<}\uccode`\<=159%
- \babel@savevariable{\uccode`\|}\uccode`\|=`\|%
- \babel@savevariable{\uccode`\`}\uccode`\`=159%
- }
+ % fallback for for LaTeX versions older than 2020-10-01
+ \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+ \IfFormatAtLeastTF{2022/06/01}%
+ {}
+ {% else
+ \addto\extrasgreek{%
+ \babel@savevariable{\uccode`\"}\uccode`\"=`\"%
+ \babel@savevariable{\uccode`\'}\uccode`\'=159% 159 == ^^9f
+ }
+ \addto\extraspolutonikogreek{%
+ \babel@savevariable{\uccode`\~}\uccode`\~=159%
+ \babel@savevariable{\uccode`\>}\uccode`\>=159%
+ \babel@savevariable{\uccode`\<}\uccode`\<=159%
+ \babel@savevariable{\uccode`\|}\uccode`\|=`\|%
+ \babel@savevariable{\uccode`\`}\uccode`\`=159%
+ }
% \end{macrocode}
-% For this to work we make the character |^^9f| a shorthand that
-% expands to nothing. In order for this to work we need to make a
-% character look like |^^9f| in \TeX's eyes. The trick is to have
-% another character and assign it a different lowercase code. The
-% execute the macros needed in a |\lowercase| environment. Usually
-% the tilde |~| character is used for such purposes. Before we do
-% this we save it's original lowercase code to restore it once
-% we're done.
-% \changes{greek-1.1b}{1997/03/06}{Added shorthand for \cs{char255}}
-% \changes{greek-1.1e}{1997/10/12}{Shorthand is changed. Active
-% character is now \cs{char159}}
-% \changes{greek-1.2a}{1997/10/31}{Need shorthand to exist for
-% ``monotoniko'' Greek, not ``polutoniko'' Greek}
-% \changes{greek-1.3j}{2001/02/03}{Use the tilde as an alias for
-% character 159}
+% To avoid \pkg{inputenc} errors if the tilde is used as perispomeni
+% (in polytonic or ancient Greek), we need to declare an expansion for
+% the ``dummy'' character~0x9f = 159.\footnote{
+% Since UTF-8 became the default encoding (cf.\
+% \href{https://www.latex-project.org/news/latex2e-news/ltnews28.pdf}
+% {LaTeX News~28}), an ``inputenc'' error is also thrown
+% if the \pkg{inputenc} package is not loaded.}
+% To be independent of \pkg{inputenc}, we do not use |\DeclareInputText|
+% but code modelled after its definition to declare an empty expansion.
+% \changes{greek-1.1b}{1997/03/06}{
+% Added shorthand for \cs{char255}}
+% \changes{greek-1.1e}{1997/10/12}{
+% Shorthand is changed. Active character is now \cs{char159}}
+% \changes{greek-1.2a}{1997/10/31}{
+% Need shorthand to exist for monotonic Greek, not polytonik Greek}
+% \changes{greek-1.3j}{2001/02/03}{
+% Use the tilde as an alias for character 159}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Declare char 159 expansion similar to the way it is done
+% in \pkg{inputenc} to avoid ``inputenc error''.}
% \begin{macrocode}
- \@tempcnta=\lccode`\~
- \lccode`\~=159
- \lowercase{%
- \initiate@active@char{~}%
- \declare@shorthand{greek}{~}{}}
- \lccode`\~=\@tempcnta
+ \bgroup
+ \uccode`\~159%
+ \uppercase{%
+ \egroup
+ \def~{}%
+ }
% \end{macrocode}
% Add composite commands, so that the dialytika is kept or put on the
% following character of a diphthong with |\MakeUppercase|
% (see lgrdef.enc from the the greek-fontenc package for details).
% \changes{greek-1.4}{2013/05/17}{Add TextCompositeCommands for
-% ``uppercase diacritics''.}
+% ``uppercase diacritics''.}
% \changes{greek-1.5}{2013/05/27}{Bugfix: @hiatus->LGR@hiatus}
% \changes{greek-1.5a}{2013/07/02}{Replaced non-printable literal character
-% with ^^-notation (thanks to Heiko Oberdiek for the hint).}
-% \changes{greek-1.9}{2014/07/20}{The |^^|-notation seems to require lower case
-% letters. |^^9F| failed.}
+% with ^^-notation (thanks to Heiko Oberdiek for the hint).}
+% \changes{babel-greek-1.09}{2014/07/20}{The |^^|-notation seems to require
+% lower case letters. |^^9F| failed.}
+% \changes{babel-greek-1.09h}{2019/07/11}{Move breathing composite commands
+% to textalpha.}
+% \begin{macrocode}
+ \DeclareTextCompositeCommand{\"}{LGR}{^^9f}{\accdialytika}
+ \DeclareTextCompositeCommand{\'}{LGR}{^^9f}{\LGR@hiatus}
+ \DeclareTextCompositeCommand{\`}{LGR}{^^9f}{\LGR@accdropped}
+% \end{macrocode}
+% If Unicode fonts are loaded together with LGR, we must also care for
+% |\"'| and |\"`| in TU, because the \" is kept when upcasing.
% \begin{macrocode}
- \DeclareTextCompositeCommand{\"}{LGR}{^^9f}{\accdialytika}
- \DeclareTextCompositeCommand{\'}{LGR}{^^9f}{\LGR@hiatus}
- \DeclareTextCompositeCommand{\`}{LGR}{^^9f}{\LGR@hiatus}
+ \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
+ \DeclareTextCompositeCommand{\"}{TU}{^^9f}{\accdialytika}
+ \fi
+ }% end of the \IfFormatAtLeastTF else block
% \end{macrocode}
%
-% We can also make the tilde character itself expand to a tilde with
-% category code 12 to make the typing of texts easier.
+% \begin{macro}{\greek@tilde}
+% By default, the tilde produces an unbreakable space in text mode.
+% In polytonic and ancient Greek, we change its meaning to allow
+% using |~| in the Latin transliteration of characters with perispomeni.
+% As the perispomeni is not required with monotonic Greek, this is
+% only done for the variants ``polutoniko'' and ``ancient''
+% (in |\extraspolutonikogreek|).
+%
+% Let the tilde character expand to a tilde with category code 12.
+% \changes{greek-1.0c}{1997/02/19}{Added command}
% \changes{greek-1.1b}{1997/03/06}{Made tilde expand to a tilde with
% \cs{catcode 12}.}
-% \changes{greek-1.5a}{2013/06/27}{provide ``extraspolutonikogreek'' also
-% for Xe/LuaTeX.}
+% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not
+% active during the definition of \cs{greek@tilde}}
+% \changes{greek-1.4}{2013/05/17}{Do not re-define the tilde accent macro:
+% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.}
% \begin{macrocode}
- \addto\extraspolutonikogreek{\languageshorthands{greek}}%
+ \begingroup
+ \@ifundefined{active@char\string!}{}{\catcode`!=12\relax}
+ \catcode`\~=12%
+ \lccode`\!=`\~%
+ \lowercase{\def\x{\endgroup
+ \def\greek@tilde{!}}\x}
+ \addto\extraspolutonikogreek{\languageshorthands{greek}}
\declare@shorthand{greek}{~}{\greek@tilde}
-}{} % End of LGR-specific code.
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \begin{macrocode}
+\fi % End of LGR-specific code.
+% \end{macrocode}
%
-% \section{symbol name aliases}
+%
+% \subsection{Symbol name aliases}
% For backwards compatibility, we keep aliases for a few symbols.
% \changes{greek-1.1c}{1997/03/10}{Added a couple of symbols, needed
% for \cs{greeknumeral}}
@@ -1335,9 +1678,9 @@
% the remaining symbol definitions have been moved here}
% \changes{greek-1.5}{2013/06/11}{change symbol macros to aliases}
% \changes{greek-1.10}{2020/11/10}{Fix: \cs{qoppa} is the legacy name of
-% \cs{textkoppa} not \cs{textqoppa}!
-% Provide fallbacks for makros required for greek numerals
-% (added in greek-fontenc 1.0 2020-09-25).}
+% \cs{textkoppa} not \cs{textqoppa}!}
+% \changes{babel-greek-1.12}{2023/03/04}{Remove \cs{textKoppa} and
+% \cs{textmu} (in greek-fontenc since version 1.0).}
% \begin{macrocode}
\providecommand*{\anwtonos}{\textdexiakeraia}
\providecommand*{\katwtonos}{\textaristerikeraia}
@@ -1350,20 +1693,11 @@
\providecommand*{\vardigamma}{\textvardigamma}
\providecommand*{\euro}{\texteuro}
\providecommand*{\permill}{\textperthousand}
-% \end{macrocode}
-% TODO remove the following lines once greek-fontenc 1.0 is in common use.
-% \begin{macrocode}
-\@ifl@aded{def}{lgrenc}{%
- \ProvideTextCommand{\textKoppa}{LGR}{\textkoppa}
- \ProvideTextCommand{\textmugreek}{LGR}{\textmu}
-}{}
\ProvideTextCommand{\textmugreek}{\greekfontencoding}{\textmu}
% \end{macrocode}
%
-% \changes{greek-1.3l}{2004/02/19}{Commented these lines out as this
-% change has made it into \LaTeX{} itself.}
-% \changes{greek-1.8}{2013/11/27}{Remove the redefintion of fnum@figure
-% and fnum@table.}
+% \changes{babel-greek-1.08}{2013/11/27}{Remove redefinition of
+% \cs{fnum@figure} and \cs{fnum@table}.}
%
% The macro |\ldf@finish| takes care of looking for a
% configuration file, setting the main language to be switched on
@@ -1375,6 +1709,8 @@
%</code>
% \end{macrocode}
%
+% \PrintChanges
+%
% \Finale
%\endinput
%% \CharacterTable
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.ins b/macros/latex/contrib/babel-contrib/greek/babel-greek.ins
index 15e136d3ad..cb34837c8a 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.ins
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.ins
@@ -10,7 +10,7 @@
%% ---------------------------------------------
%%
%% Babel-greek is a contributed package providing support for the Greek
-%% language and script via the Babel system (http://www.ctan.org/pkg/babel)
+%% language and script via the Babel system (https://ctan.org/pkg/babel)
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -30,7 +30,7 @@
%%
%% --------------- start of docstrip commands ------------------
%%
-\def\filedate{2015/07/06}
+\def\filedate{2022/12/21}
\def\batchfile{babel-greek.ins}
\input docstrip.tex
@@ -52,7 +52,7 @@
\declarepreamble\mainpreamble
This is a generated file.
-Copyright 1989-2008 Apostolos Syropoulos, Johannes L. Braams, Guenter Milde,
+Copyright 1989-2008 Apostolos Syropoulos, Johannes L. Braams, Günter Milde,
and the authors listed elsewhere in this file. All rights reserved.
This file was generated from file(s) of the babel-greek package.
@@ -71,7 +71,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Günter Milde <milde@users.sf.net>.
Babel-greek is a contributed package providing support for the Greek
-language and script via the Babel system (http://www.ctan.org/pkg/babel).
+language and script via the Babel system (https://ctan.org/pkg/babel).
The list of derived (unpacked) files belonging to this work
and covered by LPPL is defined by the unpacking script (babel-greek.ins)
@@ -80,6 +80,8 @@ which is part of the package.
\keepsilent
+% don't ask if generated files already exist somewhere on the system:
+\askforoverwritefalse
\usedir{macros/latex/contrib/babel-contrib/greek}
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
index be0ffa0243..067c3d11b1 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/grmath.dtx b/macros/latex/contrib/babel-contrib/greek/grmath.dtx
index 000daadcd8..69168f4063 100644
--- a/macros/latex/contrib/babel-contrib/greek/grmath.dtx
+++ b/macros/latex/contrib/babel-contrib/greek/grmath.dtx
@@ -2,10 +2,10 @@
%
% Copyright 1989-2008 Johannes L. Braams and any individual authors
% listed elsewhere in this file. All rights reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,15 +13,15 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Johannes Braams.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
@@ -37,11 +37,11 @@
% appears in the modified file.
%
% Please report errors or suggestions for improvement to
-%
+%
% Apostolos Syropoulos
% 366, 28th October Str.
% GR-671 00 Xanthi, GREECE
-%
+%
% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr
%
%\fi
@@ -57,9 +57,9 @@
% \end{macrocode}
%\fi
%
-% \changes{grmath-1.2}{2001/02/12}{Package provides options ``grlog''
+% \changes{grmath-1.2}{2001/02/12}{Package provides options ``grlog''
% (default) and ``enlog'' that create Greek and Latin names
-% log functions}
+% log functions}
%
% \title{Greek log-like Operators}
% \author{Apostolos Syropoulos\\
@@ -71,10 +71,10 @@
%
% \MakeShortVerb{|}
% \section{What is this all about?}
-%
+%
% In Greece, until recently, it was common practice to write down most
-% log-like functions as abbreviations of their Greek names. Consequently,
-% high school students and even university freshmen were not familiar with
+% log-like functions as abbreviations of their Greek names. Consequently,
+% high school students and even university freshmen were not familiar with
% the Latin names employed in international literature. However, this practice
% is fading away in universities but it is still in wide use in books for
% high schools, mainly because the Latin names would produce nothing but
@@ -82,7 +82,7 @@
% so that they produce the Greek name, instead of the Latin one. The package
% can be used only in conjunction with the |greek| option of the |babel|
% package. The new option |enlog| allows one to keep the Latin names for
-% the log functions.
+% the log functions.
% \StopEventually
%
% \section{The Implementation}
@@ -98,7 +98,7 @@
% The next thing we do is to process the options. The default option
% ``grlog'' generates Greek names for log functions and the ``enlog''
% option generates Latin names for log functions.
-% \begin{macrocode}
+% \begin{macrocode}
\DeclareOption{grlog}{%
\def\log{\mathop{\mathgroup\symgroperators log_{10}}\nolimits}
\def\ln{\mathop{\mathgroup\symgroperators log_%
@@ -111,10 +111,10 @@
\ExecuteOptions{grlog}
\ProcessOptions
% \end{macrocode}
-%
+%
% Now we check to see if the |babel| package is loaded with at least
% the |greek| option. In case it isn't, we opt to produce an error message.
-% \begin{macrocode}
+% \begin{macrocode}
\@ifpackagewith{babel}{greek}{}{%
\@ifpackagewith{babel}{polutonikogreek}{}{%
\PackageError{grmath}{%
@@ -135,7 +135,7 @@
% \end{macrocode}
%
% We are now ready to proceed with the redefinitions of the log-like
-% operator names.
+% operator names.
% \begin{macrocode}
\def\sin{\mathop{\mathgroup\symgroperators hm}\nolimits}
\def\cos{\mathop{\mathgroup\symgroperators sun}\nolimits}
@@ -162,7 +162,7 @@
% \end{macrocode}
%
% \section*{Dedication}
-% I would like to dedicate this piece of work to my son
+% I would like to dedicate this piece of work to my son
% \begin{center}Demetrios-Georgios.\end{center}
% \Finale
\endinput
diff --git a/macros/latex/contrib/babel-contrib/greek/grmath.pdf b/macros/latex/contrib/babel-contrib/greek/grmath.pdf
index b97893d195..aff6edf036 100644
--- a/macros/latex/contrib/babel-contrib/greek/grmath.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/grmath.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf
deleted file mode 100644
index 7fcbc9a0f5..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex
deleted file mode 100644
index ea8812b5b3..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex
+++ /dev/null
@@ -1,422 +0,0 @@
-\documentclass[a4paper]{article}
-
-\usepackage[LGR,T1]{fontenc}
-\usepackage[utf8]{luainputenc}
-% XeTeX in 8-bit compatibility mode fails :(
-% LuaTeX in 8-bit compatibility mode:
-% hyphenation in Greek text parts fails!
-% (would require the 8-bit, a loader fix for luatex).
-
-% \usepackage{textalpha}
-\usepackage{textcomp}
-\usepackage[unicode]{hyperref}
-% \usepackage{bookmark}
-\usepackage{parskip}
-\usepackage{booktabs}
-
-\usepackage{lmodern}
-% \usepackage{kerkis}
-% \usepackage{gfsdidot}
-% \usepackage{dejavu}
-
-% Load the Babel package with Greek and English language definitions:
-%
-% Uncomment the desired language variant
-
-% Default: modern monotonic Greek
-\usepackage[greek,english]{babel}
-% Obsolete: used instead of `greek', kept for backwards compatibility:
-% \usepackage[polutonikogreek,english]{babel}
-
-% For backwards compatibility, you can also use
-% \selectlanguage{polutonikogreek} instead of \selectlanguage{greek} etc.
-% if the (modern) polytonic Greek language variant is selected.
-
-% uncomment for modern polytonic Greek
-% \languageattribute{greek}{polutoniko}
-
-% uncomment for ancient Greek
-\languageattribute{greek}{ancient}
-
-% \message{Latin encoding is \latinencoding}
-
-\begin{document}
-
-\title{Test the Greek support for Babel}
-\author{Günter Milde}
-\date{2020/11/10}
-\maketitle
-
-The babel option ``greek'' activates the support for the Greek language
-defined in the file \texttt{greek.ldf} (source \texttt{greek.dtx}).
-
-\section{Language Switch}
-
-The declaration \verb|\selectlanguage| switches between languages.
-
-\begin{quote}
- \selectlanguage{greek}
- Τί φήις; Ἱδὼν ἐνθέδε παῖδ’ ἐλευθέραν
- τὰς πλησίον Νύμφας στεφανοῦσαν, Σώστρατε,
- ἐρῶν άπῆλθες εὐθύς;
-\end{quote}
-
-The macro \verb|\foreignlanguage| sets its second argument in the specified
-language. This is intended for short text parts or single words like
-\foreignlanguage{greek}{Βιβλιοθήκη}.
-
-There should be no inserted space before or after the language switch (may
-happen if there are unescaped linebreaks in the font or language definitions):
-
-\begin{quote}
- Change script with \verb|ensuregreek|: |\ensuregreek{do\~ulos}|. Change
- language with \verb|\foreignlanguage|: |\foreignlanguage{greek}{do\~ulos}|.
-\end{quote}
-
-\section{Font Encoding}
-
-In Greek text parts, the font encoding is automatically set to LGR if an
-8-bit TeX engine is used. (See \url{test-unicode-greek.tex} for usage of
-babel-greek with XeTeX or LuaTeX.)
-
-LGR has Greek characters in the slots reserved in a TeX \emph{standard text
-font encoding}. This means you need an explicit font encoding change for
-every Latin letter and some other symbols if the current font encoding is
-LGR.
-
-Babel defines the declaration \verb|\latintext| and the command
-\verb|\textlatin| to switch to the T1 or OT1 font encoding or typeset the
-argument using this encoding.
-
-Switching to a font encoding supporting the Greek script is possible without
-switching the Babel language using the declarations \verb|\greekscript| (no
-switch if the current encoding supports Greek script (e.g. the Unicode font
-encoding TU)) or \verb|\greektext| (always switch to LGR) and the
-corresponding macros \verb|\ensuregreek| or \verb|\textgreek|. These
-commands do not start a new paragraph:
-
-\greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
-\latintext Friends (\ensuregreek{F\'ilwn}) of TeX.
-
-\texttt{greek.ldf} has some workarounds, so that macros relying on Latin
-characters in standard positions keep working. We test, that these
-definitions do not overwrite the selection of pre-composed characters for
-``copyright'' and ``registered trade mark'' by \emph{textcomp} (try copy and
-paste from the PDF output):
-
-Latin: A \& O, © ® ™ \\
-Greek (LGR): \ensuregreek{Α \& Ω, © ® ™}
-or input as macro \ensuregreek{\textAlpha{} \textampersand{} \textOmega{},
-\textcopyright{} \textregistered{} \texttrademark{}}.
-
-The ampersand should also work in mathematical mode: $ 1 \& 2 $
-
-To prevent Roman numerals being typeset in Greek letters we need to adopt
-the internal LaTeX commands. Note that this may cause errors when roman
-numerals are used in a situation where the macros need to be expanded:
-
-\makeatletter
-Latin:
-\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975}
-\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975}
-
-Greek: \ensuregreek{
-\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975}
-\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975}
-}
-\makeatother
-
-\section{MakeUppercase, MakeLowercase}
-
-Capital Greek letters have diacritics (except the dialytika and sub-iota) to
-the left (instead of above) and drop them in uppercase, e.g.
-\ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}.
-
-Upcased letters with diacritics keep the dialytika. This is implemented for
-all input variants of diacritics with dialytika. (\texttt{greek.ldf} has
-\emph{composite command} definitions to ensure this also works for accent
-characters "upcased" to the charcter No 159.)
-
-\foreignlanguage{greek}{\"i \"'i \"`i \"~i \'"i \`"i \~"i
- \"u \"\'u \"\`u \"\~u
- ϊ ΐ ῒ ῗ ΐ ῒ ῗ ϋ ΰ ῢ ῧ
- $\mapsto$ \MakeUppercase{\"i \"'i \"`i \"~i \'"i \`"i \~"i
- \"u \"\'u \"\`u \"\~u
- ϊ ΐ ῒ ῗ ΐ ῒ ῗ ϋ ΰ ῢ ῧ
- }
-}
-
-
-Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if
-placed on the first vowel of a diphthong
-(\ensuregreek{\'ai, \'au, \'ei, \'>ai, \'>au, \'>ei}).
-A dialytika must be placed on the second vowel if they are dropped:
-(\ensuregreek{\MakeUppercase{\'ai, \'au, \'ei, \'>ai, \'>au, \'>ei}}).
-
-\selectlanguage{greek}
-% from teubner: άυλος/ΑΫΛΟΣ
-\'aulos $\mapsto$ \MakeUppercase{\'aulos},
-\'>aulos $\mapsto$ \MakeUppercase{\'>aulos},
-% from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ
-m\'aina $\mapsto$ \MakeUppercase{m\'aina},
-% from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema
-% κέικ, ἀυπνία/αϋπνία
-k\'eik, $\mapsto$ \MakeUppercase{k\'eik}
-\accpsili{a}upn\'ia $\mapsto$ \MakeUppercase{\accpsili{a}upn\'ia}
-\selectlanguage{english}
-
-There are several alternative styles for the capitalized sub-iota.
-
-In order to let the Up/Downcasing work also with the Latin transcription
-defined by the LGR font encoding, ``babel-greek'' also defines lc/uccodes
-for non-standard assignments:
-
-\selectlanguage{greek}
-', ", `, >, <, | $\mapsto$ \MakeUppercase{', ", `, >, <, |}
-\selectlanguage{english}
-
-The uppercase of the zero-width space at the place of ``v'' is kept to point
-to the glyph at the position of ``V'', the Dasia-Oxia accent
-(\ensuregreek{\MakeUppercase{v}}):
-
-\begin{quotation}
- greek-1.3i 2000/10/02: uc code of `v' is switched to V
- so that mixed text appears correctly in headers.
-\end{quotation}
-
-Use \verb+\textcompwordmark+:
-not \foreignlanguage{greek}{avu $\mapsto$ \MakeUppercase{avu}} but
-\foreignlanguage{greek}{a\textcompwordmark u
-$\mapsto$ \MakeUppercase{a\textcompwordmark u}}
-
-The following subsections test MakeUppercase and MakeLowercase with all
-characters defined in lgrenc.dfu:
-
-\subsection{Greek and Coptic}
-
-\newcommand{\GreekAndCoptic}{\ensuregreek{
-ʹ͵ͺ; ΄ ΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ}}
-\newcommand{\greekandcoptic}{\ensuregreek{
-άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϙϛϝϟϡ}}
-
-Characters of the Greek and Coptic Unicode Block:
-
-\begin{quote}
- \GreekAndCoptic\\
- \greekandcoptic
-\end{quote}
-
-MakeUppercase:
-
-\begin{quote}
- \MakeUppercase{\GreekAndCoptic}\\
- \MakeUppercase{\greekandcoptic}
-\end{quote}
-\end{document}
-
-Letters and sub-iota upcased, other diacritics except dialytika dropped.
-
-There is no capital Koppa in LGR, therefore \ensuregreek{ϟ} is left
-unchanged with MakeUppercase.
-
-
-MakeLowercase:
-
-\begin{quote}
- \MakeLowercase{\GreekAndCoptic}\\
- \MakeLowercase{\greekandcoptic}
-\end{quote}
-
-The lowercase of \ensuregreek{Σ} is the «auto-sigma» (\verb+\textautosigma+):
-\ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. Add a ZWNJ or use the
-\verb+\noboundary+ macro to prevent conversion to final sigma:
-\ensuregreek{\MakeLowercase{ΣΣ‌}}. The lowercase of GREEK LETTER STIGMA
-\ensuregreek{Ϛ} is \ensuregreek{\MakeLowercase{Ϛ}} not \verb|\textvarstigma|
-(\ensuregreek\textvarstigma).
-
-% \newpage
-
-\subsection{Greek extended}
-
-Characters of the Greek extended Unicode block:
-
-\selectlanguage{greek}
-ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
-ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
-ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
-ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
-ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
-ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ \\
-ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
-ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
-ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
-ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
-ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
-ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
-῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
-ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ \\
-ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\
- ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾
-\selectlanguage{english}
-
-MakeUppercase:
-
-\selectlanguage{greek}
-
-\MakeUppercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\
-\MakeUppercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\
-\MakeUppercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\
-\MakeUppercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\
-\MakeUppercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\
-\MakeUppercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\
-\MakeUppercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\
-\MakeUppercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\
-\MakeUppercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\
-\MakeUppercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\
-\MakeUppercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\
-\MakeUppercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\
-\MakeUppercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\
-\MakeUppercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\
-\MakeUppercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\
-\MakeUppercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ }
-\selectlanguage{english}
-
-MakeLowercase:
-
-\selectlanguage{greek}
-\MakeLowercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\
-\MakeLowercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\
-\MakeLowercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\
-\MakeLowercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\
-\MakeLowercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\
-\MakeLowercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\
-\MakeLowercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\
-\MakeLowercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\
-\MakeLowercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\
-\MakeLowercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\
-\MakeLowercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\
-\MakeLowercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\
-\MakeLowercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\
-\MakeLowercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\
-\MakeLowercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\
-\MakeLowercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ }
-\selectlanguage{english}
-
-\section{Babel Strings}
-
-Babel defines macros for several autogenerated strings so that they may
-appear in the choosen language. babel-greek uses LICRs in order to let the
-string macros work independent of the font encoding, in both 8-bit and
-Unicode-aware TeX.
-
-\subsection{Captions}
-
-\selectlanguage{greek}
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename ,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname,
-\selectlanguage{english}
-
-
-\subsection{Months}
-
-\selectlanguage{greek}
-\newcounter{foo}
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\selectlanguage{english}
-
-\section{Greek Numerals}
-
-See greek.pdf for the formation rules of Greek numerals.
-Some examples:
-
-\selectlanguage{greek}
-
-\greeknumeral{1},
-\greeknumeral{2},
-\greeknumeral{3},
-\greeknumeral{4},
-\greeknumeral{5},
-\greeknumeral{6},
-\greeknumeral{7},
-\greeknumeral{8},
-\greeknumeral{9},
-\greeknumeral{10},
-\greeknumeral{11},
-\greeknumeral{12},
-\greeknumeral{20},
-\greeknumeral{345},
-\greeknumeral{500},
-\greeknumeral{1997},
-\greeknumeral{2013},
-
-\Greeknumeral{1},
-\Greeknumeral{2},
-\Greeknumeral{3},
-\Greeknumeral{4},
-\Greeknumeral{5},
-\Greeknumeral{6},
-\Greeknumeral{7},
-\Greeknumeral{8},
-\Greeknumeral{9},
-\Greeknumeral{10},
-\Greeknumeral{11},
-\Greeknumeral{12},
-\Greeknumeral{20},
-\Greeknumeral{345},
-\Greeknumeral{500},
-\Greeknumeral{1997},
-\Greeknumeral{2013},
-
-\selectlanguage{english}
-
-Enumerated lists use Greek numerals in the second and fourth level:
-
-\selectlanguage{greek}
-\begin{enumerate}
- \item \textlatin{Item} 1
- \begin{enumerate}
- \item \textlatin{Item} 1.1
- \begin{enumerate}
- \item \textlatin{Item} 1.1.1
- \begin{enumerate}
- \item \textlatin{Item} 1.1.1.1
- \item \textlatin{Item} 1.1.1.2
- \end{enumerate}
- \item \textlatin{Item} 1.1.2
- \end{enumerate}
- \end{enumerate}
-\end{enumerate}
-\selectlanguage{english}
-
-
-\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf
new file mode 100644
index 0000000000..fa56892ffa
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-athnum.tex b/macros/latex/contrib/babel-contrib/greek/test-athnum.tex
new file mode 100644
index 0000000000..0d8a6bfb6b
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-athnum.tex
@@ -0,0 +1,70 @@
+\documentclass[a4paper]{article}
+\usepackage{ifthen}
+\usepackage[LGR,T1]{fontenc}
+\usepackage{booktabs}
+\usepackage{longtable,ltcaption,array}
+\usepackage[textwidth=14cm]{geometry} % to fit the number table
+\setlength{\extrarowheight}{2pt}
+\usepackage{parskip}
+
+\ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ % \setmainfont{Linux Libertine O} % no GREEK ACROPHONIC ATTIC numbers
+ % \setmainfont{Liberation Serif} % no GREEK ACROPHONIC ATTIC numbers
+ \setmainfont{FreeSerif}
+\else
+ \usepackage{lmodern}
+\fi
+
+
+\usepackage{textalpha}
+\usepackage{athnum}
+
+\begin{document}
+\title{Test Attic numerals}
+\author{Günter Milde}
+\date{2022/12/08}
+\maketitle
+
+The Greek font encoding is \greekfontencoding.\footnote{
+ Since version 2.0 you can use \emph{athnum} also without
+ \emph{babel-greek} and with Unicode fonts (if they support the
+ ``Greek acrophonic attic'' number symbols for 50, 500, and 5000).}
+
+\begin{tabular}{rrrrrrrrr}
+\toprule
+1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
+\athnum{1} & \athnum{2} & \athnum{3} & \athnum{4} &
+\athnum{5} & \athnum{6} & \athnum{7} & \athnum{8} & \athnum{9} \\
+
+10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\
+\athnum{10} & \athnum{20} & \athnum{30} & \athnum{40} &
+\athnum{50} & \athnum{60} & \athnum{70} & \athnum{80} & \athnum{90} \\
+
+100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
+\athnum{100} & \athnum{200} & \athnum{300} & \athnum{400} &
+\athnum{500} & \athnum{600} & \athnum{700} & \athnum{800} & \athnum{900} \\
+
+1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\
+\athnum{1000}& \athnum{2000}& \athnum{3000}& \athnum{4000}&
+\athnum{5000}& \athnum{6000}& \athnum{7000}& \athnum{8000}& \athnum{9000} \\
+
+10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\
+\athnum{10000}&\athnum{20000}&\athnum{30000}&\athnum{40000}&
+\athnum{50000}&\athnum{60000}&\athnum{70000}&\athnum{80000}&\athnum{90000} \\
+
+\bottomrule
+\end{tabular}
+
+Some examples:
+
+
+678 = \athnum{678}, 2022 = \athnum{2022}
+
+Largest ``canonical'' number: 9999 = \athnum{9999}
+
+Largest allowed number: 249999 = \athnum{249999}
+
+Hexadecimal input works, too: \texttt{"10} = \athnum{"10}
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex b/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex
new file mode 100644
index 0000000000..c2b61596ad
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex
@@ -0,0 +1,1048 @@
+% Backrolling does not work for \MakeUppercase (cf. LaTeX News 35)
+% \RequirePackage{latexbug}
+%\RequirePackage[2022-05-01]{latexrelease}
+
+\documentclass[a4paper]{article}
+
+\usepackage[LGR,T1]{fontenc}
+\usepackage{lmodern}
+
+\ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ \setmainfont[Scale=0.92]{DejaVu Serif}
+ \newcommand*{\texengine}{Xe/LuaLaTeX}
+\else
+ \usepackage{lmodern}
+ \newcommand*{\texengine}{pdfLaTeX}
+\fi
+
+% Load encoding definitions
+\usepackage[normalize-symbols]{textalpha} % "Greek script everywhere"
+
+% With TL22, the special handling of Greek UPPERCASE is only triggered
+% if the text language is set to "greek" with Babel:
+%
+\usepackage[greek,english]{babel} % babel-greek
+% \usepackage[greek,english,provide=*]{babel} % Babel's Greek "ini"
+\languageattribute{greek}{polutoniko} % "modern" polytonic Greek
+
+
+\usepackage[unicode,colorlinks,linkcolor=blue]{hyperref}
+\usepackage{bookmark}
+
+% Auxiliary commands
+
+\newcommand{\langGreek}{\foreignlanguage{greek}}
+
+% print the selected language variant
+\newcommand{\GreekLanguageVariant}{%
+ \ifx\captionsgreek\captionspolutonikogreek
+ \ifx\captionsgreek\captionsancientgreek
+ ancient%
+ \else
+ polutoniko%
+ \fi
+ \else
+ monotoniko%
+ \fi
+}
+
+% -----------------------------------------------------------------------
+
+\begin{document}
+
+\tableofcontents
+
+\section{Test case conversions of Greek letters}
+
+This document tests the combination of \verb|MakeUppercase| and Greek.
+
+\makeatletter
+It is compiled with \texengine, format version \fmtversion{} patch-level
+\patch@level{} and the L3 programming layer from \ExplFileDate{}.
+\makeatother
+The \verb|\greekfontencoding| is \greekfontencoding.
+
+\section{Unicode literals}
+
+\subsection{Greek and Coptic}
+
+Characters from the Greek and Coptic Unicode block that are supported by
+\emph{greek-fontenc} and \emph{greek-inputenc}:
+
+\newcommand{\GreekAndCoptic}{
+ \raggedright
+ ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\
+ ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\
+ Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣
+}
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+
+The lowercase of \langGreek{Σ} is the «auto-sigma»
+(\verb|\textautosigma|): \langGreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}.
+Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to
+final sigma: \langGreek{\MakeLowercase{ΣΣ‌}}.
+
+
+\subsection{Greek extended}
+
+Characters of the Greek Extended Unicode block:
+
+\newcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+ ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣
+}
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+% With TeXLive 2020 (old \verb|\Makeuppercase|),
+% all accents except dialytika and prosgegrammeni are dropped in UPPERCASE
+% and kept in lowercase.
+% No errors.
+%
+% With current TeXLive:
+% pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022)
+% LaTeX2e <2022-11-01> patch level 1
+% L3 programming layer <2023-02-22>
+%
+% Upcasing ``Unicode errors'' are resolved.
+%
+% Uppercase of character ';' 0x37E GREEK QUESTION MARK is a semicolon
+% which is mapped to '·' 0x387 GREEK ANO TELEIA by LGR. :(
+%
+% Accents dropped with MakeUppercase (not for single letter ή) :)
+% TODO: how to treat MakeUppercase of a single captial «΄Η»?
+%
+% The "Latin" accents macron and breve should be kept. (minor)
+%
+% Spacing prosgegrammeni (ι) turned to capital Iota. (minor)
+%
+% Spacing single diacritics are kept. (irrelevant, OK)
+% Spacing combining diacritics are mapped to single diacritics. (irrelevant)
+%
+% Auto-Hiatus: ἀυπνία → ΑΥΠΝΙΑ (missing dialytika on the Upsilon).
+
+% With pdfLaTeX and LGR, a ZWNJ or the ``\noboundary`` macro can be used to
+% prevent conversion of trailing Σ to a final sigma ς by ``\MakeLowercase``.
+% This does not work with Unicode fonts (XeTeX/LuaTeX).
+
+% With XeTeX and Unicode fonts,
+\subsubsection{hiatus}
+
+Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on
+the first of two consecutive vowels (άι, άυ, έι, ἀυ, ἄι, ἄυ, ἔι).
+A dialytika must be placed on the second vowel if they are dropped.
+
+Since the 2022/06 LaTeX release, it works with monotonic Unicode literals
+(since 2023/02/10] also some polytonic but fails with psili):
+\begin{quote}
+ \selectlanguage{greek}
+ \newcommand*{\hiatest}{άι, άυ, έι, ἄι, ἄυ, ἔι, ἀυ}
+ \hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
+\end{quote}
+
+Example \foreignlanguage{greek}{ἀυπνία $\mapsto$ \MakeUppercase{ἀυπνία}}
+(missing dialytika on the Upsilon).
+
+\section{LICR macros}
+
+This section compares literal Unicode Greek characters to characters input
+as LICR macros
+
+\subsection{Greek and Coptic}
+
+\subsubsection{short accent macros}
+
+\renewcommand{\GreekAndCoptic}{% only characters supported by LGR
+ \raggedright
+ ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\
+ ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{}
+ ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\
+
+ ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+
+ ␣ ␣ ␣ ␣ \'{ } \"'{ } \'\textAlpha{} \textanoteleia{}
+ \'\textEpsilon{} \'\textEta{} \'\textIota{}
+ ␣ \'\textOmicron{} ␣ \'\textUpsilon{} \'\textOmega{} \\
+
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ \'"\textiota{} \textAlpha{} \textBeta{} \textGamma{} \textDelta{}
+ \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{}
+ \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\
+
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{}
+ \textPhi{} \textChi{} \textPsi{} \textOmega{} \"\textIota{}
+ \"\textUpsilon{} \'\textalpha{} \'\textepsilon{} \'\texteta{}
+ \'\textiota{} \\
+
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ \"'\textupsilon{} \textalpha{} \textbeta{} \textgamma{} \textdelta{}
+ \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{}
+ \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\
+
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ \textpi{} \textrho{} \textfinalsigma{} \textsigma{} \texttau{}
+ \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{} \"\textiota{}
+ \"\textupsilon{} \'\textomicron{} \'\textupsilon{} \'\textomega{} \\
+
+ ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\
+ \textbetasymbol{} \textthetasymbol{} ␣ ␣ ␣ \textphisymbol{}
+ \textpisymbol{} ␣ \textQoppa{} \textqoppa{} \textStigma{} \textstigma{}
+ \textDigamma{} \textdigamma{} \textKoppa{} \textkoppa{} \\
+
+ Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ \\
+ \textSampi{} \textsampi{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣
+ \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol
+}
+
+No case change:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+
+\subsubsection{named accent macros}
+
+\renewcommand{\GreekAndCoptic}{% only characters supported by LGR
+ \raggedright
+ ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\
+ ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{}
+ ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\
+
+ ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+ ␣ ␣ ␣ ␣ \acctonos{ } \accdialytikatonos{ } \acctonos\textAlpha{}
+ \textanoteleia{} \acctonos\textEpsilon{} \acctonos\textEta{}
+ \acctonos\textIota{} ␣ \acctonos\textOmicron{} ␣ \acctonos\textUpsilon{}
+ \acctonos\textOmega{} \\
+
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ \accdialytikatonos\textiota{} \textAlpha{} \textBeta{} \textGamma{}
+ \textDelta{} \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{}
+ \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\
+
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{}
+ \textPhi{} \textChi{} \textPsi{} \textOmega{} \accdialytika\textIota{}
+ \accdialytika\textUpsilon{} \acctonos\textalpha{} \acctonos\textepsilon{}
+ \acctonos\texteta{} \acctonos\textiota{} \\
+
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ \accdialytikatonos\textupsilon{} \textalpha{} \textbeta{} \textgamma{}
+ \textdelta{} \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{}
+ \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\
+
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ \textpi{} \textrho{} \textfinalsigma{} \textsigma{} \texttau{}
+ \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{}
+ \accdialytika\textiota{} \accdialytika\textupsilon{}
+ \acctonos\textomicron{} \acctonos\textupsilon{} \acctonos\textomega{} \\
+
+ ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\
+ \textbetasymbol{} \textthetasymbol{} ␣ ␣ ␣ \textphisymbol{}
+ \textpisymbol{} ␣ \textQoppa{} \textqoppa{} \textStigma{} \textstigma{}
+ \textDigamma{} \textdigamma{} \textKoppa{} \textkoppa{} \\
+
+ Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ \\
+ \textSampi{} \textsampi{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣
+ \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol
+}
+No case change:
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+
+
+\subsection{Greek extended}
+
+\subsubsection{short accent macros}
+
+\renewcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ \>\textalpha{}
+ \<\textalpha{}
+ \>`\textalpha{}
+ \<`\textalpha{}
+ \>'\textalpha{}
+ \<'\textalpha{}
+ \~>\textalpha{}
+ \~<\textalpha{}
+ \>\textAlpha{}
+ \<\textAlpha{}
+ \>`\textAlpha{}
+ \<`\textAlpha{}
+ \>'\textAlpha{}
+ \<'\textAlpha{}
+ \~>\textAlpha{}
+ \~<\textAlpha{} \\
+
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ \>\textepsilon{}
+ \<\textepsilon{}
+ \>`\textepsilon{}
+ \<`\textepsilon{}
+ \>'\textepsilon{}
+ \<'\textepsilon{}
+ ␣ ␣ \>\textEpsilon{}
+ \<\textEpsilon{}
+ \>`\textEpsilon{}
+ \<`\textEpsilon{}
+ \>'\textEpsilon{}
+ \<'\textEpsilon{}\\
+
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ \>\texteta{}
+ \<\texteta{}
+ \>`\texteta{}
+ \<`\texteta{}
+ \>'\texteta{}
+ \<'\texteta{}
+ \~>\texteta{}
+ \~<\texteta{}
+ \>\textEta{}
+ \<\textEta{}
+ \>`\textEta{}
+ \<`\textEta{}
+ \>'\textEta{}
+ \<'\textEta{}
+ \~>\textEta{}
+ \~<\textEta{} \\
+
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ \>\textiota{}
+ \<\textiota{}
+ \>`\textiota{}
+ \<`\textiota{}
+ \>'\textiota{}
+ \<'\textiota{}
+ \~>\textiota{}
+ \~<\textiota{}
+ \>\textIota{}
+ \<\textIota{}
+ \>`\textIota{}
+ \<`\textIota{}
+ \>'\textIota{}
+ \<'\textIota{}
+ \~>\textIota{}
+ \~<\textIota{} \\
+
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ \>\textomicron{}
+ \<\textomicron{}
+ \>`\textomicron{}
+ \<`\textomicron{}
+ \>'\textomicron{}
+ \<'\textomicron{}
+ ␣ ␣ \>\textOmicron{}
+ \<\textOmicron{}
+ \>`\textOmicron{}
+ \<`\textOmicron{}
+ \>'\textOmicron{}
+ \<'\textOmicron{} \\
+
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ \>\textupsilon{}
+ \<\textupsilon{}
+ \>`\textupsilon{}
+ \<`\textupsilon{}
+ \>'\textupsilon{}
+ \<'\textupsilon{}
+ \~>\textupsilon{}
+ \~<\textupsilon{}
+ ␣ \<\textUpsilon{}
+ ␣ \<`\textUpsilon{}
+ ␣ \<'\textUpsilon{}
+ ␣ \~<\textUpsilon{} \\
+
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ \>\textomega{}
+ \<\textomega{}
+ \>`\textomega{}
+ \<`\textomega{}
+ \>'\textomega{}
+ \<'\textomega{}
+ \~>\textomega{}
+ \~<\textomega{}
+ \>\textOmega{}
+ \<\textOmega{}
+ \>`\textOmega{}
+ \<`\textOmega{}
+ \>'\textOmega{}
+ \<'\textOmega{}
+ \~>\textOmega{}
+ \~<\textOmega{} \\
+
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ \`\textalpha{}
+ \'\textalpha{}
+ \`\textepsilon{}
+ \'\textepsilon{}
+ \`\texteta{}
+ \'\texteta{}
+ \`\textiota{}
+ \'\textiota{}
+ \`\textomicron{}
+ \'\textomicron{}
+ \`\textupsilon{}
+ \'\textupsilon{}
+ \`\textomega{}
+ \'\textomega{} \\
+
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ \>\textalpha\ypogegrammeni{}
+ \<\textalpha\ypogegrammeni{}
+ \>`\textalpha\ypogegrammeni{}
+ \<`\textalpha\ypogegrammeni{}
+ \>'\textalpha\ypogegrammeni{}
+ \<'\textalpha\ypogegrammeni{}
+ \~>\textalpha\ypogegrammeni{}
+ \~<\textalpha\ypogegrammeni{}
+ \>\textAlpha\ypogegrammeni{}
+ \<\textAlpha\ypogegrammeni{}
+ \>`\textAlpha\ypogegrammeni{}
+ \<`\textAlpha\ypogegrammeni{}
+ \>'\textAlpha\ypogegrammeni{}
+ \<'\textAlpha\ypogegrammeni{}
+ \~>\textAlpha\ypogegrammeni{}
+ \~<\textAlpha\ypogegrammeni{} \\
+
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ \>\texteta\ypogegrammeni{}
+ \<\texteta\ypogegrammeni{}
+ \>`\texteta\ypogegrammeni{}
+ \<`\texteta\ypogegrammeni{}
+ \>'\texteta\ypogegrammeni{}
+ \<'\texteta\ypogegrammeni{}
+ \~>\texteta\ypogegrammeni{}
+ \~<\texteta\ypogegrammeni{}
+ \>\textEta\ypogegrammeni{}
+ \<\textEta\ypogegrammeni{}
+ \>`\textEta\ypogegrammeni{}
+ \<`\textEta\ypogegrammeni{}
+ \>'\textEta\ypogegrammeni{}
+ \<'\textEta\ypogegrammeni{}
+ \~>\textEta\ypogegrammeni{}
+ \~<\textEta\ypogegrammeni{} \\
+
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ \>\textomega\ypogegrammeni{}
+ \<\textomega\ypogegrammeni{}
+ \>`\textomega\ypogegrammeni{}
+ \<`\textomega\ypogegrammeni{}
+ \>'\textomega\ypogegrammeni{}
+ \<'\textomega\ypogegrammeni{}
+ \~>\textomega\ypogegrammeni{}
+ \~<\textomega\ypogegrammeni{}
+ \>\textOmega\ypogegrammeni{}
+ \<\textOmega\ypogegrammeni{}
+ \>`\textOmega\ypogegrammeni{}
+ \<`\textOmega\ypogegrammeni{}
+ \>'\textOmega\ypogegrammeni{}
+ \<'\textOmega\ypogegrammeni{}
+ \~>\textOmega\ypogegrammeni{}
+ \~<\textOmega\ypogegrammeni{} \\
+
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+ \u\textalpha{}
+ \=\textalpha{}
+ \`\textalpha\ypogegrammeni{}
+ \textalpha\ypogegrammeni{}
+ \'\textalpha\ypogegrammeni{}
+ ␣ \~\textalpha{}
+ \~\textalpha\ypogegrammeni{}
+ \u\textAlpha{}
+ \=\textAlpha{}
+ \`\textAlpha{}
+ \'\textAlpha{}
+ \textAlpha\ypogegrammeni{}
+ \>{}
+ \prosgegrammeni{}
+ \>{} \\
+
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ \~{}
+ \"\~{}
+ \`\texteta\ypogegrammeni{}
+ \texteta\ypogegrammeni{}
+ \'\texteta\ypogegrammeni{}
+ ␣ \~\texteta{}
+ \~\texteta\ypogegrammeni{}
+ \`\textEpsilon{}
+ \'\textEpsilon{}
+ \`\textEta{}
+ \'\textEta{}
+ \textEta\ypogegrammeni{}
+ \>`{}
+ \>'{}
+ \~>{} \\
+
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+ \u\textiota{}
+ \=\textiota{}
+ \`"\textiota{}
+ \'"\textiota{}
+ ␣ ␣ \~\textiota{}
+ \~"\textiota{}
+ \u\textIota{}
+ \=\textIota{}
+ \`\textIota{}
+ \'\textIota{}
+ ␣
+ \<`{}
+ \<'{}
+ \~<{} \\
+
+ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\
+ \u\textupsilon{}
+ \=\textupsilon{}
+ \`"\textupsilon{}
+ \'"\textupsilon{}
+ \>\textrho{}
+ \<\textrho{}
+ \~\textupsilon{}
+ \~"\textupsilon{}
+ \u\textUpsilon{}
+ \=\textUpsilon{}
+ \`\textUpsilon{}
+ \'\textUpsilon{}
+ \<\textRho{}
+ \`"{}
+ \'"{}
+ \`{} \\
+
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\
+
+ ␣ ␣ \`\textomega\ypogegrammeni{}
+ \textomega\ypogegrammeni{}
+ \'\textomega\ypogegrammeni{}
+ ␣ \~\textomega{}
+ \~\textomega\ypogegrammeni{}
+ \`\textOmicron{}
+ \'\textOmicron{}
+ \`\textOmega{}
+ \'\textOmega{}
+ \textOmega\ypogegrammeni{}
+ \'{}
+ \<{} ␣
+}
+
+No case change:
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+
+\subsubsection{named accent macros}
+
+\renewcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ \accpsili\textalpha{}
+ \accdasia\textalpha{}
+ \accpsilivaria\textalpha{}
+ \accdasiavaria\textalpha{}
+ \accpsilioxia\textalpha{}
+ \accdasiaoxia\textalpha{}
+ \accpsiliperispomeni\textalpha{}
+ \accdasiaperispomeni\textalpha{}
+ \accpsili\textAlpha{}
+ \accdasia\textAlpha{}
+ \accpsilivaria\textAlpha{}
+ \accdasiavaria\textAlpha{}
+ \accpsilioxia\textAlpha{}
+ \accdasiaoxia\textAlpha{}
+ \accpsiliperispomeni\textAlpha{}
+ \accdasiaperispomeni\textAlpha{} \\
+
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ \accpsili\textepsilon{}
+ \accdasia\textepsilon{}
+ \accpsilivaria\textepsilon{}
+ \accdasiavaria\textepsilon{}
+ \accpsilioxia\textepsilon{}
+ \accdasiaoxia\textepsilon{}
+ ␣ ␣ \accpsili\textEpsilon{}
+ \accdasia\textEpsilon{}
+ \accpsilivaria\textEpsilon{}
+ \accdasiavaria\textEpsilon{}
+ \accpsilioxia\textEpsilon{}
+ \accdasiaoxia\textEpsilon{}\\
+
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ \accpsili\texteta{}
+ \accdasia\texteta{}
+ \accpsilivaria\texteta{}
+ \accdasiavaria\texteta{}
+ \accpsilioxia\texteta{}
+ \accdasiaoxia\texteta{}
+ \accpsiliperispomeni\texteta{}
+ \accdasiaperispomeni\texteta{}
+ \accpsili\textEta{}
+ \accdasia\textEta{}
+ \accpsilivaria\textEta{}
+ \accdasiavaria\textEta{}
+ \accpsilioxia\textEta{}
+ \accdasiaoxia\textEta{}
+ \accpsiliperispomeni\textEta{}
+ \accdasiaperispomeni\textEta{} \\
+
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ \accpsili\textiota{}
+ \accdasia\textiota{}
+ \accpsilivaria\textiota{}
+ \accdasiavaria\textiota{}
+ \accpsilioxia\textiota{}
+ \accdasiaoxia\textiota{}
+ \accpsiliperispomeni\textiota{}
+ \accdasiaperispomeni\textiota{}
+ \accpsili\textIota{}
+ \accdasia\textIota{}
+ \accpsilivaria\textIota{}
+ \accdasiavaria\textIota{}
+ \accpsilioxia\textIota{}
+ \accdasiaoxia\textIota{}
+ \accpsiliperispomeni\textIota{}
+ \accdasiaperispomeni\textIota{} \\
+
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ \accpsili\textomicron{}
+ \accdasia\textomicron{}
+ \accpsilivaria\textomicron{}
+ \accdasiavaria\textomicron{}
+ \accpsilioxia\textomicron{}
+ \accdasiaoxia\textomicron{}
+ ␣ ␣ \accpsili\textOmicron{}
+ \accdasia\textOmicron{}
+ \accpsilivaria\textOmicron{}
+ \accdasiavaria\textOmicron{}
+ \accpsilioxia\textOmicron{}
+ \accdasiaoxia\textOmicron{} \\
+
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ \accpsili\textupsilon{}
+ \accdasia\textupsilon{}
+ \accpsilivaria\textupsilon{}
+ \accdasiavaria\textupsilon{}
+ \accpsilioxia\textupsilon{}
+ \accdasiaoxia\textupsilon{}
+ \accpsiliperispomeni\textupsilon{}
+ \accdasiaperispomeni\textupsilon{}
+ ␣ \accdasia\textUpsilon{}
+ ␣ \accdasiavaria\textUpsilon{}
+ ␣ \accdasiaoxia\textUpsilon{}
+ ␣ \accdasiaperispomeni\textUpsilon{} \\
+
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ \accpsili\textomega{}
+ \accdasia\textomega{}
+ \accpsilivaria\textomega{}
+ \accdasiavaria\textomega{}
+ \accpsilioxia\textomega{}
+ \accdasiaoxia\textomega{}
+ \accpsiliperispomeni\textomega{}
+ \accdasiaperispomeni\textomega{}
+ \accpsili\textOmega{}
+ \accdasia\textOmega{}
+ \accpsilivaria\textOmega{}
+ \accdasiavaria\textOmega{}
+ \accpsilioxia\textOmega{}
+ \accdasiaoxia\textOmega{}
+ \accpsiliperispomeni\textOmega{}
+ \accdasiaperispomeni\textOmega{} \\
+
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ \accvaria\textalpha{}
+ \accoxia\textalpha{}
+ \accvaria\textepsilon{}
+ \accoxia\textepsilon{}
+ \accvaria\texteta{}
+ \accoxia\texteta{}
+ \accvaria\textiota{}
+ \accoxia\textiota{}
+ \accvaria\textomicron{}
+ \accoxia\textomicron{}
+ \accvaria\textupsilon{}
+ \accoxia\textupsilon{}
+ \accvaria\textomega{}
+ \accoxia\textomega{} \\
+
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ \accpsili\textalpha\ypogegrammeni{}
+ \accdasia\textalpha\ypogegrammeni{}
+ \accpsilivaria\textalpha\ypogegrammeni{}
+ \accdasiavaria\textalpha\ypogegrammeni{}
+ \accpsilioxia\textalpha\ypogegrammeni{}
+ \accdasiaoxia\textalpha\ypogegrammeni{}
+ \accpsiliperispomeni\textalpha\ypogegrammeni{}
+ \accdasiaperispomeni\textalpha\ypogegrammeni{}
+ \accpsili\textAlpha\ypogegrammeni{}
+ \accdasia\textAlpha\ypogegrammeni{}
+ \accpsilivaria\textAlpha\ypogegrammeni{}
+ \accdasiavaria\textAlpha\ypogegrammeni{}
+ \accpsilioxia\textAlpha\ypogegrammeni{}
+ \accdasiaoxia\textAlpha\ypogegrammeni{}
+ \accpsiliperispomeni\textAlpha\ypogegrammeni{}
+ \accdasiaperispomeni\textAlpha\ypogegrammeni{} \\
+
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ \accpsili\texteta\ypogegrammeni{}
+ \accdasia\texteta\ypogegrammeni{}
+ \accpsilivaria\texteta\ypogegrammeni{}
+ \accdasiavaria\texteta\ypogegrammeni{}
+ \accpsilioxia\texteta\ypogegrammeni{}
+ \accdasiaoxia\texteta\ypogegrammeni{}
+ \accpsiliperispomeni\texteta\ypogegrammeni{}
+ \accdasiaperispomeni\texteta\ypogegrammeni{}
+ \accpsili\textEta\ypogegrammeni{}
+ \accdasia\textEta\ypogegrammeni{}
+ \accpsilivaria\textEta\ypogegrammeni{}
+ \accdasiavaria\textEta\ypogegrammeni{}
+ \accpsilioxia\textEta\ypogegrammeni{}
+ \accdasiaoxia\textEta\ypogegrammeni{}
+ \accpsiliperispomeni\textEta\ypogegrammeni{}
+ \accdasiaperispomeni\textEta\ypogegrammeni{} \\
+
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ \accpsili\textomega\ypogegrammeni{}
+ \accdasia\textomega\ypogegrammeni{}
+ \accpsilivaria\textomega\ypogegrammeni{}
+ \accdasiavaria\textomega\ypogegrammeni{}
+ \accpsilioxia\textomega\ypogegrammeni{}
+ \accdasiaoxia\textomega\ypogegrammeni{}
+ \accpsiliperispomeni\textomega\ypogegrammeni{}
+ \accdasiaperispomeni\textomega\ypogegrammeni{}
+ \accpsili\textOmega\ypogegrammeni{}
+ \accdasia\textOmega\ypogegrammeni{}
+ \accpsilivaria\textOmega\ypogegrammeni{}
+ \accdasiavaria\textOmega\ypogegrammeni{}
+ \accpsilioxia\textOmega\ypogegrammeni{}
+ \accdasiaoxia\textOmega\ypogegrammeni{}
+ \accpsiliperispomeni\textOmega\ypogegrammeni{}
+ \accdasiaperispomeni\textOmega\ypogegrammeni{} \\
+
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+ \u\textalpha{}
+ \=\textalpha{}
+ \accvaria\textalpha\ypogegrammeni{}
+ \textalpha\ypogegrammeni{}
+ \accoxia\textalpha\ypogegrammeni{}
+ ␣ \accperispomeni\textalpha{}
+ \accperispomeni\textalpha\ypogegrammeni{}
+ \u\textAlpha{}
+ \=\textAlpha{}
+ \accvaria\textAlpha{}
+ \accoxia\textAlpha{}
+ \textAlpha\ypogegrammeni{}
+ \accpsili{}
+ \prosgegrammeni{}
+ \accpsili{} \\
+
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ \accperispomeni{}
+ \accdialytikaperispomeni{}
+ \accvaria\texteta\ypogegrammeni{}
+ \texteta\ypogegrammeni{}
+ \accoxia\texteta\ypogegrammeni{}
+ ␣ \accperispomeni\texteta{}
+ \accperispomeni\texteta\ypogegrammeni{}
+ \accvaria\textEpsilon{}
+ \accoxia\textEpsilon{}
+ \accvaria\textEta{}
+ \accoxia\textEta{}
+ \textEta\ypogegrammeni{}
+ \accpsilivaria{}
+ \accpsilioxia{}
+ \accpsiliperispomeni{} \\
+
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+ \u\textiota{}
+ \=\textiota{}
+ \accdialytikavaria\textiota{}
+ \accdialytikatonos\textiota{}
+ ␣ ␣ \accperispomeni\textiota{}
+ \accperispomeni"\textiota{}
+ \u\textIota{}
+ \=\textIota{}
+ \accvaria\textIota{}
+ \accoxia\textIota{}
+ ␣
+ \accdasiavaria{}
+ \accdasiaoxia{}
+ \accdasiaperispomeni{} \\
+
+ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\
+ \u\textupsilon{}
+ \=\textupsilon{}
+ \accdialytikavaria\textupsilon{}
+ \accdialytikatonos\textupsilon{}
+ \accpsili\textrho{}
+ \accdasia\textrho{}
+ \accperispomeni\textupsilon{}
+ \accdialytikaperispomeni\textupsilon{}
+ \u\textUpsilon{}
+ \=\textUpsilon{}
+ \accvaria\textUpsilon{}
+ \accoxia\textUpsilon{}
+ \accdasia\textRho{}
+ \accdialytikavaria{}
+ \accdialytikatonos{}
+ \accvaria{} \\
+
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\
+
+ ␣ ␣ \accvaria\textomega\ypogegrammeni{}
+ \textomega\ypogegrammeni{}
+ \accoxia\textomega\ypogegrammeni{}
+ ␣ \accperispomeni\textomega{}
+ \accperispomeni\textomega\ypogegrammeni{}
+ \accvaria\textOmicron{}
+ \accoxia\textOmicron{}
+ \accvaria\textOmega{}
+ \accoxia\textOmega{}
+ \textOmega\ypogegrammeni{}
+ \accoxia{}
+ \accdasia{} ␣
+}
+
+No case change:
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+
+\section{Latin transliteration}
+
+\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
+ \textbf{Warning:}
+ As the uc/lccode re-definitions are not performed when Unicode fonts are
+ used, the accents are not dropped from upcased Latin transliterations.
+ Accent macros work fine also in Latin transliterations with Xe/LuaTeX.
+\fi
+
+\subsection{Greek and Coptic}
+
+Every second line is input as Latin transliteration:
+
+\renewcommand{\GreekAndCoptic}{%
+ ͺ ; ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+ \lgrfont{ | ? ␣ ␣ ' "' 'A ; 'E 'H 'I ␣ 'O ␣ 'U 'W} \\
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ \lgrfont{'"i A B G D E Z H J I K L M N X O} \\
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ \lgrfont{ P R ␣ S T U F Q Y W "I "U 'a 'e 'h 'i} \\
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ \lgrfont{'"u a b g d e z h j i k l m n x o} \\
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ \lgrfont{ p r s s\textcompwordmark{}
+ t u f q y w "i "u 'o 'u 'w ␣}
+}
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+Letters upcased, dialytika and sub-iota unchanged, other diacritics dropped
+(if \verb|\greekfontencoding| is LGR).
+
+
+MakeLowercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+%
+With LGR, the lowercase of \ensuregreek{Σ} is the «auto-sigma»
+(\verb|\textautosigma|): \ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}.
+Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to
+final sigma: \ensuregreek{\MakeLowercase{ΣΣ‌}}.
+The lowercase of GREEK LETTER STIGMA \ensuregreek{Ϛ} is
+\ensuregreek{\MakeLowercase{Ϛ}}, not \verb|\textvarstigma|%
+\ifdefined \UnicodeEncodingName \else
+ (\ensuregreek\textvarstigma)%
+\fi .
+
+\subsection{Greek extended}
+
+Every second line is input as Latin transliteration. The current language
+variant is \emph\GreekLanguageVariant.
+
+\renewcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ \lgrfont{>a <a >`a <`a >'a <'a >~a <~a >A <A >`A <`A >'A <'A >~A <~A } \\
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ \lgrfont{>e <e >`e <`e >'e <'e ␣ ␣ >E <E >`E <`E >'E <'E } \\
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ \lgrfont{>h <h >`h <`h >'h <'h >~h <~h >H <H >`H <`H >'H <'H >~H <~H } \\
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ \lgrfont{>i <i >`i <`i >'i <'i >~i <~i >I <I >`I <`I >'I <'I >~I <~I } \\
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ \lgrfont{>o <o >`o <`o >'o <'o ␣ ␣ >O <O >`O <`O >'O <'O } \\
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ \lgrfont{>u <u >`u <`u >'u <'u >~u <~u ␣ <U ␣ <`U ␣ <'U ␣ <~U } \\
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ \lgrfont{>w <w >`w <`w >'w <'w >~w <~w >W <W >`W <`W >'W <'W >~W <~W } \\
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ \lgrfont{`a 'a `e 'e `h 'h `i 'i `o 'o `u 'u `w 'w } \\
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ \lgrfont{>a| <a| >`a| <`a| >'a| <'a| >~a| <~a| >A| <A| >`A| <`A| >'A| <'A| >~A| <~A|} \\
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ \lgrfont{>h| <h| >`h| <`h| >'h| <'h| >~h| <~h| >H| <H| >`H| <`H| >'H| <'H| >~H| <~H|} \\
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ \lgrfont{>w| <w| >`w| <`w| >'w| <'w| >~w| <~w| >W| <W| >`W| <`W| >'W| <'W| >~W| <~W|} \\
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+\lgrfont{\u{a} \=a `a| a| 'a| ␣ ~a ~a| \u{A} \=A `A 'A A| > | > } \\
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ \lgrfont{~ "~ `h| h| 'h| ␣ ~h ~h| `E 'E `H 'H H| >` >' ~> } \\
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+\lgrfont{\u{i} \=i `"i '"i ␣ ␣ ~i ~"i \u{I} \=I `I 'I ␣ <` <' ~< } \\
+ ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\
+\lgrfont{\u{u} \=u `"u '"u ␣ ␣ >r <r ~u ~"u `U 'U <R `" '" ` } \\
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ \\
+ \lgrfont{ ␣ ␣ `w| w| 'w| ␣ ~w ~w| `O 'O `W 'W W| ' < } \\
+}
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+
+With monotonic Greek or if the Greek font encoding is not LGR, the tilde
+keeps its default expansion as NBSP and transliterations involving \verb|~|
+fail. (The tilde accent \verb|\~| as well as combined accents involving the
+tilde work in all language variants.)
+
+MakeUppercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+
+Breathings, combined accents and varia are re-mapped to the "empty" char
+only with the language variants \emph{polutoniko} or \emph{ancient}
+(currently \GreekLanguageVariant) as they are not required with monotonic
+Greek and only if \verb|\greekfontencoding| is LGR.
+
+In literal input, the uppercase of spacing combining accents including a
+dialytika \verb|"~ "` "'| appears as apostrophe, as a single \verb|"| stands
+for an apostrophe in the LGR transliteration if followed by a space or empty
+character.
+
+MakeLowercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex b/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex
new file mode 100644
index 0000000000..5fba328dc6
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex
@@ -0,0 +1,37 @@
+% Test Babel-Greek with LuaTeX and 8-bit fonts
+% © 2022 Günter Milde
+
+% Setup for LuaTeX with 8-bit fonts
+\newcommand{\SETUP}{
+ % LGR must be defined before loading "luainputenc" (bug in luainputenc?)
+ \usepackage[LGR,T1]{fontenc}
+ \usepackage{lmodern}
+ \usepackage[utf8]{luainputenc}
+ \newcommand*{\greekfontencoding}{LGR} % force LGR setup¹
+
+ \usepackage[greek,
+ % greek.local-LGR-fixes,
+ english]{babel}
+ % Uncomment the desired language variant
+ % \languageattribute{greek}{polutoniko} % "modern" polytonic Greek
+ \languageattribute{greek}{ancient} % ancient Greek
+}
+
+\newcommand{\SETUPDOC}{%
+This test is
+\ifdefined\luatexversion compiled
+\else intended for but \textbf{not} compiled
+\fi
+with LuaTeX in 8-bit compatibility mode.
+It loads the \pkgref{luainputenc} package for UTF-8 decoding
+and sets \texttt{\textbackslash greekfontencoding} to LGR.
+
+Hyphenation in Greek text parts fails (would require the
+8-bit hyphenation patterns, i.a., a loader fix for LuaTeX).
+}
+
+\input{test-greek.tex}
+
+% ¹TODO: Currently, defining \greekfontencoding must be done with
+% \def or \newcommand* and fails with \newcommand because
+% of the fragile string comparison using \ifx in greek.ldf!
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex
new file mode 100644
index 0000000000..f6fe1e15be
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex
@@ -0,0 +1,60 @@
+% Test Babel's "ini" file for Greek
+% © 2023 Günter Milde
+
+% Setup for Greek with localisation from the "ini" files.
+\newcommand{\SETUP}{
+
+ \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
+ \else % 8-bit TeX
+ \usepackage{lmodern}
+ \usepackage[LGR,T1]{fontenc}
+ % \usepackage{textalpha}
+ \ProvideTextCommandDefault{\greekscript}{\fontencoding{LGR}\selectfont
+ \def\encodingdefault{\greekfontencoding}}
+ \ProvideTextCommandDefault{\ensuregreek}[1]{\leavevmode{\greekscript ##1}}
+ % Babel <= (3.84) misses the automatic font encoding switch to LGR
+ % \addto\extrasgreek{\greekscript}
+ % \addto\noextrasgreek{\latintext}
+ \fi
+
+ \usepackage[greek, english, provide*=*]{babel}
+
+ \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
+ \babelfont{rm}[Scale=0.92]{DejaVu Serif}
+ % The "ini" Greek setup does not load extended Greek definitions for TU.
+ % Load textalpha or provide dummy definitions:
+ % \usepackage{textalpha}
+ \ProvideTextCommand{\ensuregreek}{TU}[1]{##1}
+ \ProvideTextCommand{\greekscript}{TU}{}
+ \ProvideTextCommand{\textalpha}{TU}{\cs{textalpha}}
+ \ProvideTextCommand{\textOmega}{TU}{\cs{textOmega}}
+ \fi
+
+ \usepackage{hyperref}
+ \hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue}
+
+ % fallbacks for commands defined in babel-greek:
+ \providecommand*\greekfontencoding{None}
+ % \providecommand*\lgrfont[1]{\cs{lgrfont} \emph{missing}}
+ \ProvideTextCommandDefault{\textampersand}{\&}
+ \providecommand*\greeknumeral[1]{\{##1\}}
+}
+
+\newcommand{\SETUPDOC}{%
+This test uses Babel's built-in Greek support (``ini'' file,
+cf. \href{https://latex3.github.io/babel/guides/locale-greek.html}
+{Babel guides ``Greek''}).
+
+The following problems can be easily fixed by loading the \emph{textalpha}
+package.
+\begin{itemize}
+ \item Accents not dropped with old (pre 2022/06) \cs{MakeUppercase}.
+ \item Greek LICR macros unknown in TU.
+\end{itemize}
+
+The new 2023/02/10 \cs{MakeUppercase} code fixes the UPPERCASE of Greek
+Unicode literals (including a fix for the ``hiatus'' problem).
+
+}
+
+\input{test-greek.tex}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf
deleted file mode 100644
index c1e973315c..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf
deleted file mode 100644
index c022976fbe..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf
new file mode 100644
index 0000000000..2abc4e024d
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-greek.tex
index 03dd9db4e3..8c72c355a6 100644
--- a/macros/latex/contrib/babel-contrib/greek/test-greek.tex
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek.tex
@@ -1,30 +1,127 @@
+% Test document for Babel-Greek
+% © 2013, 2022 Günter Milde
+
+% Configuration constants (see test-greek-8bit-luatex.tex for a use case)
+
+\providecommand{\SETUP}{
+ \usepackage[LGR,T1]{fontenc}
+ \usepackage{lmodern}
+ % \usepackage{kerkis}
+ % \usepackage{gfsdidot}
+ % \usepackage{dejavu}
+ % \usepackage{textalpha} % support Greek literal chars and LICR "everywhere"
+ \ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ % \setmainfont[%
+ % ItalicFont=NewCM10-Italic.otf,%
+ % BoldFont=NewCM10-Bold.otf,%
+ % BoldItalicFont=NewCM10-BoldItalic.otf,%
+ % SmallCapsFeatures={Numbers=OldStyle}]{NewCM10-Regular.otf}
+ % \setsansfont[%
+ % ItalicFont=NewCMSans10-Oblique.otf,%
+ % BoldFont=NewCMSans10-Bold.otf,%
+ % BoldItalicFont=NewCMSans10-BoldOblique.otf,%
+ % SmallCapsFeatures={Numbers=OldStyle}]{NewCMSans10-Regular.otf}
+ % \setmonofont[%
+ % ItalicFont=NewCMMono10-Italic.otf,%
+ % BoldFont=NewCMMono10-Bold.otf,%
+ % BoldItalicFont=NewCMMono10-BoldOblique.otf,%
+ % SmallCapsFeatures={Numbers=OldStyle}]{NewCMMono10-Regular.otf}
+ %
+ \setmainfont[Scale=0.92]{DejaVu Serif}
+ \fi
+
+ % Load and configure Babel:
+
+ % Default: modern monotonic Greek
+ \usepackage[greek,% comment out "greek" to test the "basic support"
+ % greek.local-LGR-fixes,
+ english]{babel}
+ % Uncomment the desired language variant
+ \languageattribute{greek}{polutoniko} % "modern" polytonic Greek
+ % \languageattribute{greek}{ancient} % ancient Greek
+
+ % The "polytonic" language attribute is an alias for "polutoniko" matching
+ % the spelling in polyglossia and Babel *.ini files.
+ % \languageattribute{greek}{polytonic}
+
+ % Support for the pseudo-language "polutonikogreek", used instead of "greek",
+ % is kept for backwards compatibility:
+ % \usepackage[polutonikogreek,english]{babel}
+
+ % For backwards compatibility, you can also use
+ % \selectlanguage{polutonikogreek} instead of \selectlanguage{greek} etc.
+ % if the "polutoniko" Greek language variant is selected.
+}
+
+\providecommand{\SETUPDOC}{}
+
+
\documentclass[a4paper]{article}
-\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
+
+\SETUP
+
+\usepackage{hyperref}
+\hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue}
+% \usepackage{bookmark}
+
\usepackage{parskip}
-\usepackage[greek,english]{babel}
-% \languageattribute{greek}{polutoniko}
-% \languageattribute{greek}{ancient}
+% Semantic styling:
-\ifdefined \UnicodeEncodingName
- \usepackage{fontspec}
- \setmainfont{DejaVu Serif}
-\fi
+\newcommand{\file}{\texttt}
+\newcommand{\cs}[1]{\texttt{\textbackslash#1}}
+\newcommand{\pkgref}[1]{\emph{\href{https://ctan.org/pkg/#1}{#1}}}
+
+
+% Auxiliary commands:
+
+% print the selected language variant
+\newcommand{\GreekLanguageVariant}{%
+ \ifx\captionsgreek\captionspolutonikogreek
+ \ifx\captionsgreek\captionsancientgreek
+ ancient%
+ \else
+ polutoniko%
+ \fi
+ \else
+ monotoniko%
+ \fi
+}
+
+% The paragraph after \showhyphenpar is printed with all words
+% shown as hy-phen-ated.
+% from https://tex.stackexchange.com/questions/55282/display-hyphenation-options-for-a-specific-word/55283#55283
+\def\showhyphenpar{\bgroup
+ \def\par{\setparams\endgraf\composelines}
+ \setbox0=\vbox\bgroup \noindent\hskip0pt\relax}
+\def\setparams{\rightskip=0pt plus1fil
+ \linepenalty=1000 \pretolerance=-1 \hyphenpenalty=-10000}
+\def\composelines{\setbox2=\hbox{}%
+ \loop \setbox0=\lastbox \unskip \unpenalty
+ \ifhbox0 % je už \vbox vyprázdněn?
+ \global\setbox2=\hbox{\unhbox0\unskip\unhbox2}
+ \repeat
+ \egroup % vyprázdněný \vbox ukončím
+ \exhyphenpenalty=10000 % \box2 vyšoupnu do vnějšího seznamu
+ \emergencystretch=4em \leavevmode\unhbox2 \endgraf\egroup}
+
+% --------------------------------------------------------------------------
\begin{document}
-\title{Greek support for Babel}
+\title{Test the Greek support for Babel}
\author{Günter Milde}
-\date{2020/11/10}
+\date{\today}
\maketitle
-The babel option «greek» activates the support for the Greek language
-defined in the file «greek.ldf» (source «greek.dtx»).
+Test support for the Greek language as defined in the file
+\file{greek.ldf} (source \file{greek.dtx}).
+
+\SETUPDOC % print additional setup information.
+
+\tableofcontents
-Typesetting Greek texts requires a font containing Greek letters. With the
-XeTeX or LuaTeX engines, the user must ensure that the selected font
-contains the required glyphs (the default Latin Modern fonts miss most of
-them).
\section{Language Switch}
@@ -38,172 +135,376 @@ The declaration \verb|\selectlanguage| switches between languages.
\end{quote}
The command \verb|\foreignlanguage| sets its second argument in the language
-specified as first argument. This is intended for short text parts like
-\foreignlanguage{greek}{Βιβλιοθήκη}.
+specified as first argument. This is intended for short text parts or
+single words like \foreignlanguage{greek}{Βιβλιοθήκη}.
-\section{Font Encoding}
+Input may use literal Greek characters (\foreignlanguage{greek}{α \ldots Ω}),
+LICR macros (\foreignlanguage{greek}{\textalpha{} \ldots{} \textOmega}),
+or the Latin transliteration (\foreignlanguage{greek}{a \ldots{} W}) defined
+by the LGR font encoding (if LGR is used).
-Every language switch to \texttt{greek} calls the \verb|\extrasgreek|
-command which in turn calls \verb|\greekscript| to ensure a Greek-supporting
-font encoding (LGR or TU). At this point, the «greekfontencoding»
-is \texttt{\greekfontencoding}.
+There should be no inserted space before or after the language switch (this
+may happen if there are unescaped linebreaks in the font or language
+definitions):
+\begin{quotation}
+ Change script with \verb|ensuregreek|: |\ensuregreek{δοῦλος}|.
+ Change
+ language with \verb|\foreignlanguage|: |\foreignlanguage{greek}{δοῦλος}|.
-LGR has Greek characters in the slots reserved in a TeX \emph{standard text
-font encoding}. Therefore, the Babel core defines the declaration
-\verb|\latintext| and the command \verb|\textlatin| to switch to the TU, T1
-or OT1 font encoding or typeset the argument using this encoding. At this
-point, the «latinencoding» is \texttt{\latinencoding}.
+ Change language with \verb|\selectlanguage|:
+ |\selectlanguage{greek}δοῦλος\selectlanguage{english}|.
+\end{quotation}
-With the Unicode font encoding \texttt{TU},
-Latin characters can be used in Greek text parts and
-input via the «LGR Latin transcription» is not possible.
-The following quote mixes Latin transcription and Greek literal characters:
+\section{Auto-strings}
-\begin{quote}
- \greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
- \latintext Friends (\ensuregreek{F\'ilwn}) of TeX.%
-\end{quote}
-
-\section{LICR Macros}
-
-Babel defines macros for several autogenerated strings so that they may
-appear in the choosen language. \emph{babel-greek} uses LICR%
+\emph{Babel} defines macros for several autogenerated strings so that they
+may appear in the choosen language. \emph{Babel-greek} uses LICR%
\footnote{LaTeX internal character representation} macros in
order to let the string macros work independent of the font encoding.
-If \verb|\greekfontencoding| is TU, \emph{babel-greek} loads Greek LICR
-definitions from the file \texttt{tuenc-greek.def} provided by
-\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}
-since version~0.14 (2020-02-28).
+\selectlanguage{greek}
+\begin{abstract}
+ \ensureascii{Look for the abstract name. Today is} \today.
+\end{abstract}
+\selectlanguage{english}
-With this setup, it is also possible to use accent macros instead of
-pre-composed Unicode characters for letters with diacritics%
-\ifdefined \UnicodeEncodingName
- : Τ\'ι φ\'ηις;, \`<ορα = \accdasiavaria{ο}ρα
-\fi
-.
+Show the auto-strings for language variant ``\GreekLanguageVariant''.
\subsection{Captions}
+\newcommand{\AutoStrings}{%
+ \abstractname,
+ \alsoname,
+ \appendixname,
+ \bibname,\\
+ \ccname,
+ \chaptername,
+ \contentsname,
+ \enclname,\\
+ \figurename,
+ \glossaryname,
+ \headtoname,
+ \indexname,\\
+ \listfigurename ,
+ \listtablename,\\
+ \pagename,
+ \partname,
+ \prefacename,
+ \proofname,\\
+ \refname,
+ \seename,
+ \tablename
+}
\selectlanguage{greek}
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename ,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
+\AutoStrings
\selectlanguage{english}
Test correct upcasing (dropping of accents):
\selectlanguage{greek}
-\MakeUppercase{
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
-}
+\MakeUppercase{\AutoStrings}
\selectlanguage{english}
-
\subsection{Months}
-\selectlanguage{greek}
-\newcounter{foo}
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\selectlanguage{english}
-\section{Greek Numerals (\greeknumeral{1} to \Greeknumeral{999999})}
+\begin{quotation}
+ \selectlanguage{greek}
+ \newcounter{origmonth}
+ \setcounter{origmonth}{\the\month}
+ \newcounter{foo}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-See greek.pdf for the formation rules of Greek numerals.
-Some examples:
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-\selectlanguage{greek}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-\greeknumeral{1},
-\greeknumeral{2},
-\greeknumeral{3},
-\greeknumeral{4},
-\greeknumeral{5},
-\greeknumeral{6},
-\greeknumeral{7},
-\greeknumeral{8},
-\greeknumeral{9},
-\greeknumeral{10},
-\greeknumeral{11},
-\greeknumeral{12},
-\greeknumeral{20},
-\greeknumeral{345},
-\greeknumeral{500},
-\greeknumeral{1997},
-\greeknumeral{2013}
-
-\Greeknumeral{1},
-\Greeknumeral{2},
-\Greeknumeral{3},
-\Greeknumeral{4},
-\Greeknumeral{5},
-\Greeknumeral{6},
-\Greeknumeral{7},
-\Greeknumeral{8},
-\Greeknumeral{9},
-\Greeknumeral{10},
-\Greeknumeral{11},
-\Greeknumeral{12},
-\Greeknumeral{20},
-\Greeknumeral{345},
-\Greeknumeral{500},
-\Greeknumeral{1997},
-\Greeknumeral{2013}
-\selectlanguage{english}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-Enumerated lists use Greek characters/numerals in the second and fourth level:
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+ \month=\value{origmonth}
+\end{quotation}
+
+
+\section{Hyphenation}
+
+Patterns for the Greek language variants:
+
+\makeatletter
+monotonic: \verb|\l@monogreek| = \the\l@monogreek \\
+polytonic: \verb|\l@polygreek| = \the\l@polygreek \\
+ancient: \verb|\l@ancientgreek| = \the\l@ancientgreek
+
+current: \verb|\l@greek| = \the\l@greek
+\makeatletter
+
+Greek paragraph:
+\begin{quote}
+ \selectlanguage{greek}
+ \showhyphenpar
+ \ensureascii{monotonic:} Ευρετήριο, επίσης, Απόδειξη \\
+ \ensureascii{polytonic:} Εὑρετήριο, ἐπίσης, Ἀπόδειξη \\
+ \ensureascii{ancient:} Εὑρετήριον, ὡσαύτως, Ἀπόδειξις
+\end{quote}
+
+English paragraph with Greek text (\verb|\foreignlanguage{greek}|):
+\begin{quote}
+ \showhyphenpar
+ monotonic: \foreignlanguage{greek}{Ευρετήριο, επίσης, Απόδειξη } \\
+ polytonic: \foreignlanguage{greek}{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\
+ ancient: \foreignlanguage{greek}{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις}
+\end{quote}
+
+English paragraph with Greek script (\verb|\ensuregreek|): no hypenation
+\begin{quote}
+ \showhyphenpar
+ monotonic: \ensuregreek{Ευρετήριο, επίσης, Απόδειξη } \\
+ polytonic: \ensuregreek{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\
+ ancient: \ensuregreek{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις}
+\end{quote}
+
+\section{Greek Numerals (\greeknumeral{1} \ldots{} \greeknumeral{999999})%
+ \label{sec:greek-numerals}}
+
+\emph{Babel-Greek} provides the macros \verb|\greeknumeral| and
+\verb|\Greeknumeral| for the conversion of Arabic numbers from 1 to 999\,999
+into their Greek counterparts (\greeknumeral{1}, \greeknumeral{2},
+\greeknumeral{3}, \ldots, \greeknumeral{999999}).
+See \file{babel-greek.pdf} for the formation rules and configuration
+options and \file{test-greeknum.pdf} for samples.
+
+Examples:
+
+\newcommand*{\shownumeral}[2]{\mbox{#2 = \csname #1\endcsname{#2}}}
+\newcommand*{\numeralsample}[1]{%
+ \shownumeral{#1}{36}\quad
+ \shownumeral{#1}{94}\quad
+ \shownumeral{#1}{678}\quad
+ \shownumeral{#1}{2002}\quad
+ \shownumeral{#1}{923090}}
+
+\numeralsample{greeknumeral}
+
+\numeralsample{Greeknumeral}
+
+Users can redefine the macros \verb`\greeknumeralsix` and
+\verb`\greeknumeralSix` as well as \verb`\greeknumeralninety`
+\verb`\greeknumeralNinety` to configure the used symbols.
+
+If a font misses glyphs for the Greek numeral signs, subsitute characters
+may be defined with the macros
+\cs{textdexiakeraia} and \cs{textaristerikeraia}.
+
+\ifdefined \greeknumeralsix
+ Example (use ``archaic kappa'', ``varstigma'' with pdftex and substitute
+ chars for the numeral signs with Xe/LuaTeX):
+ \renewcommand*{\greeknumeralninety}{\textqoppa}
+ \renewcommand*{\greeknumeralNinety}{\textQoppa}
+ \ifdefined\UnicodeEncodingName
+ \renewcommand*{\textdexiakeraia}{\textquoteright}
+ \renewcommand*{\textaristerikeraia}{\quotesinglbase}
+ \else
+ \renewcommand*{\greeknumeralSix}{\textvarstigma}
+ \fi
+
+ \numeralsample{greeknumeral}
+
+ \numeralsample{Greeknumeral}
+
+ The macro \verb|\Grtoday| produces the current date with the month
+ and the day as greek numerals. Today is \ensuregreek{\Grtoday}.
+
+ \subsection{Alphabetical counters}
+
+ In line with Greek typographical tradition (and to avoid messed up
+ alphabetical counters with LGR fonts), \emph{babel-greek} changes
+ the internal LaTeX commands \cs{@alph} and \cs{@Alph}
+ to use Greek numerals inside Greek text parts
+ (see section~\ref{sec:LGR-redefinitions} for an example).
+
+\fi
+
+\section{Font Encoding}
+
+TeX's standard 8-bit text fonts don't provide for Greek characters.
+Every language switch to \texttt{greek} calls the \verb|\extrasgreek|
+language hook which in turn calls \verb|\greekscript| to ensure a
+Greek-supporting font encoding (LGR or TU).
+With the current setup, this document uses
+\begin{itemize}
+ \item \greekfontencoding{} as \verb|\greekfontencoding|,
+ \item \latinencoding{} as \verb|\latinencoding|, and
+ \makeatletter \ensureascii{\cf@encoding} \makeatother
+ inside \verb|\ensureascii|.
+\end{itemize}
+
+If \verb|\greekfontencoding| is LGR, \emph{babel-greek} performs additional
+setup steps to fix issues with the Latin transliteration (see below).
+If it is TU, \emph{babel-greek} loads Greek LICR definitions from the file
+\file{tuenc-greek.def}\footnote{%
+ Provided by \pkgref{greek-fontenc} since version~0.14 (2020-02-28)}.
+\ifdefined\UnicodeEncodingName
+ %
+ % Attention: \meaning\greekfontencoding\ != \meaning\UnicodeEncodingName
+ \expandafter\ifx\greekfontencoding\UnicodeEncodingName
+ With this setup, it is also possible to use accent macros instead of
+ pre-composed Unicode characters for letters with diacritics,
+ ὃρα = \`<ορα = \accdasiavaria{ο}ρα.
+ \fi
+\fi
+
+\ifdefined\greekscript
+ Switching to a font encoding supporting the Greek script is possible without
+ switching the Babel language using the declarations \verb|\greekscript| (no
+ switch if the current encoding supports the Greek script (e.g. the Unicode
+ font encodings TU and PU) or \verb|\greektext| (always switch to LGR) and the
+ corresponding functions \verb|\ensuregreek| and \verb|\lgrfont|.%
+ \footnote{Hyphenation patterns are not changed,
+ check for wrong hyphenations.}
+ These commands also work in the middle of a paragraph or word:
+ \greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
+ \latintext Friends (\ensuregreek{F\'ilwn}) of TeX.
+\fi
+
+
+\subsection{LGR's \emph{Latin transliteration}}
+
+LGR has Greek characters in the slots reserved for Latin characters and
+other symbols in a TeX \emph{standard text font encoding}.
+This allows the use of a \emph{Latin transliteration} for the input of Greek
+characters\footnote{see \file{usage.pdf}}, however, characters that should
+be printed as Latin characters must be protected from conversion by a font
+encoding switch, either selecting a different language or wrapping them with
+\verb|\ensureascii| (provided by the Babel core), that sets its argument
+using an ASCII-compatible font encoding. The legacy declaration
+\verb|\latintext| switches the font encoding to \verb|\latinencoding|.
+
+With the Unicode font encoding TU, Latin characters can be used in Greek
+text parts and the Latin transliteration does not work (but see the
+last example below).
+
+The following quote (with the Babel language set to Greek) illustrates the
+problem:
+
+Literal characters, words in the ``foreign'' script protected:
+\begin{quote}
+ \selectlanguage{greek}
+ Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
+ \selectlanguage{english}
+ Friends (\ensuregreek{Φίλων}) of TeX.
+\end{quote}
+
+Unprotected ASCII characters come out as Greek characters with LGR:
+\begin{quote}
+ \selectlanguage{greek}
+ Φίλων τοῦ TeX (ΕΦΤ) -- Friends (Φίλων) of TeX.
+\end{quote}
+
+The Latin transliteration works in LGR but not TU:
+\begin{quote}
+ \selectlanguage{greek}
+ F'ilwn to\~u \ensureascii{TeX} (EFT) --
+ \selectlanguage{english}
+ \latintext Friends (\ensuregreek{F\'ilwn}) of TeX.
+\end{quote}
+
+\ifdefined\lgrfont
+ The Latin transliteration can be used with also with
+ Xe/LuaTeX, if the input text is wrapped in \cs{lgrfont}
+ \footnote{available, if the LGR encoding is loaded
+ with the \pkgref{fontenc} package}
+ but may result in non-matching fonts and wrong hyphenation:
+ \begin{quote}
+ \selectlanguage{greek}
+ \lgrfont{F'ilwn to\~u \ensureascii{TeX} (EFT)} --
+ \selectlanguage{english}
+ \latintext Friends (\lgrfont{F\'ilwn}) of TeX.
+ \end{quote}
+\fi
+
+\subsubsection{LGR-proofed macros}
+
+\emph{Babel-greek} provides LGR-local variants for some
+\emph{TextCommand}s that rely on a standard text encoding.\footnote{%
+ These workarounds cannot be done in \file{lgrenc.def} from the
+ \pkgref{greek-fontenc} package because they are not allowed in a
+ ``font encoding definition file'' [\file{fntguide.pdf}].}
+The fallback definitions for some \emph{textcomp} symbols compose the
+symbols out of Latin letters.
+The fixes must not overwrite the selection of pre-composed symbols
+from \pkgref{textcomp} or TU (try copy and paste from the PDF output).
+
+LGR fonts have a middle dot glyph at the place of the ampersand. The new
+\emph{TextCommand} \verb|\textampersand| always prints an ampersand.
+\makeatletter \newcommand{\AsciiSymbolTest}{(\f@encoding) ©®™
+ A\textampersand W}
+\makeatother
+\begin{quote}
+ English: \AsciiSymbolTest\\
+ English: \ensuregreek{\AsciiSymbolTest}\\
+ Greek: \foreignlanguage{greek}{\AsciiSymbolTest}
+\end{quote}
+% English (LGR), input as macro:
+% \lgrfont{|\textcopyright|\textregistered|\texttrademark|
+% A\textampersand W.}
+
+\ifdefined\lgrfont% babel-greek and LGR font encoding loaded
+
+ \subsection{LGR re-definitions \label{sec:LGR-redefinitions}}
+
+ The generic macro \verb|\&| is re-defined inside Greek text parts to use
+ the original definition in math mode and \cs{textampersand} in text
+ mode.
+
+ \subsubsection{Roman numerals \label{sec:roman-numerals}}
+
+ Without fixes, Roman numerals are printed according to the Latin
+ transliteration (including the conversion of ``v'' to a
+ ZERO WIDTH NON-JOINER) if the font encoding is LGR:
+
+ \makeatletter
+ \newcommand{\RomanNumeralTest}{\f@encoding:
+ \romannumeral 1, \romannumeral 2, \romannumeral 3,
+ \romannumeral 4, \ldots, \romannumeral 1975}
+ \makeatother
+ \begin{quote}
+ \RomanNumeralTest\\
+ \lgrfont{\RomanNumeralTest}
+ \end{quote}
+
+ Roman numerals are used by the default document classes, e.g., in the third
+ level of enumerations or as page numbers in the frontmatter of a book.
+ They may move to auto-generated document parts like the ToC,
+ (hyper)references, or an index.
+
+ As document authors cannot wrap page numbers in a ToC in \verb|\ensureascii|,
+ \emph{Babel-greek} redefines the internal LaTeX commands \verb|\@roman| and
+ \verb|\@Roman| to make Roman numberals LGR-proof.
+ Unfortunately, this breaks Makeindex (cf. \file{test-lgr-fixes.tex}).
+
+\fi
+
+
+\subsubsection{Example}
+
+In Greek text parts, enumerated lists use Greek numerals in the second and
+fourth level and ASCII-proofed Roman numerals in the third level.
\selectlanguage{greek}
\begin{enumerate}
@@ -215,6 +516,7 @@ Enumerated lists use Greek characters/numerals in the second and fourth level:
\begin{enumerate}
\item item 1.1.1.1
\item item 1.1.1.2
+ \item item 1.1.1.3 \label{item 1.1.1.3}
\end{enumerate}
\item item 1.1.2
\end{enumerate}
@@ -222,20 +524,183 @@ Enumerated lists use Greek characters/numerals in the second and fourth level:
\end{enumerate}
\selectlanguage{english}
+\selectlanguage{english}
+Setting the language back to English should restore the alphabetic numbering:
+\begin{enumerate}
+ \item item 1
+ \begin{enumerate}
+ \item item 1.1
+ \begin{enumerate}
+ \item item 1.1.1
+ \begin{enumerate}
+ \item item 1.1.1.1
+ \item item 1.1.1.2
+ \item item 1.1.1.3
+ \end{enumerate}
+ \item item 1.1.2
+ \end{enumerate}
+ \end{enumerate}
+\end{enumerate}
-This may be problematic with fonts that only partially support Greek and
-miss the numeral signs (dexiakeraia and aristerikeraia).
+More test of the LGR-redefinitions are in \file{test-lgr-fixes.tex}.
-You may redefine the commands \verb+\textdexiakeraia+ and
-\verb+\textaristerikeraia+ to some substitute characters.
-Or, if you prefer the ``normal'' enumeration, write in the preamble after
-loading babel:
+\ifdefined\lgrfont
+\else
+ \end{document}
+\fi
-\begin{verbatim}
- \makeatletter
- \addto\extrasgreek{\let\@alph\latin@alph
- \let\@Alph\latin@Alph}
- \makeatother
-\end{verbatim}
+\section{Up- and downcasing in Greek}
+
+Capital Greek letters have diacritics (except the dialytika and sub-iota) to
+the left (instead of above) and drop them in uppercase (except the
+dialytika), e.g., \ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}.
+For literal Greek characters and accent macros, these rules are implemented
+and tested in the required package \pkgref{greek-fontenc}.
+
+Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if
+placed on the first vowel of a diphthong.
+A dialytika must be placed on the second vowel if they are dropped, e.g.
+%
+\newcommand{\HiatusLICR}{\acctonos\textalpha\textiota,
+ \acctonos\textalpha\textupsilon,
+ \acctonos\textepsilon\textiota,
+ \'>\textalpha\textiota,
+ \'>\textalpha\textupsilon,
+ \accpsili\textalpha\textupsilon,
+ \accdasiaoxia\textepsilon\textiota}%
+\ensuregreek{\HiatusLICR\ $\mapsto$ \MakeUppercase{\HiatusLICR}}.
+
+Some affected words:
+\begin{quotation}
+ \selectlanguage{greek}
+ \newcommand*{\aylos}{% from teubner.sty: άυλος → ΑΫΛΟΣ
+ \acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma}
+ \aylos{} $\mapsto$ \MakeUppercase{\aylos},
+ \renewcommand*{\aylos}{% polytonic: ἄυλος → ΑΫΛΟΣ
+ \'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma}
+ \aylos{} $\mapsto$ \MakeUppercase{\aylos},
+
+ % from http://diacritics.typo.cz/index.php?id=69
+ \newcommand*{\maina}{%μάινα → ΜΑΪΝΑ
+ \textmu\acctonos\textalpha\textiota\textnu\textalpha}
+ \maina{} $\mapsto$ \MakeUppercase{\maina},
+
+ % from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema
+ \newcommand*{\keik}{% κέικ → ΚΕΪΚ
+ \textkappa\acctonos\textepsilon\textiota\textkappa}
+ \keik{} $\mapsto$ \MakeUppercase{\keik},
+
+ \newcommand*{\ahypnia}{% ἀυπνία → ΑΫΠΝΙΑ
+ \accpsili\textalpha\textupsilon\textpi\textnu\acctonos\textiota\textalpha}
+ \ahypnia{} $\mapsto$ \MakeUppercase{\ahypnia},
+
+ % from http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
+ \newcommand*{\romeika}{\textrho\textomega\textmu
+ \acctonos\textepsilon\textiota\textkappa\textalpha}
+ \romeika{} $\mapsto$ \MakeUppercase{\romeika}.
+\end{quotation}
+
+With the pre-2022/06 \cs{MakeUppercase}, automatic upcasing of words with
+\emph{hiatus} works correctly only if the accents are input as macro and the
+letters as macro or via the Latin transliteration.
+
+With the current (2023/02/10) \cs{MakeUppercase}, it works for literal
+Unicode input and named accents. The definitions in \texttt{*enc.def} files,
+\texttt{uccode}s and the \texttt{@uclclist} are ignored.
+
+\subsection{Changed uccode/lccode values for LGR}
+
+LGR encoded fonts define ligatures for characters with diacritics. To enable
+correct upcasing, \emph{babel-greek} changes the uc/lccodes of some
+characters. Characters used to input diacritics are mapped to the ``empty''
+character 0x9f = 159.
+
+To minimise side-effects (see below), uc/lccodes are only changed:
+\begin{itemize}
+ \item if \cs{greekfontencoding} is a ``short macro'' expanding to LGR,%
+ \footnote{i.e. not in documents using Unicode fonts unless
+ \cs{greekfontencoding} is explicitly set to \texttt{LGR} before
+ loading \emph{babel-greek}}
+ \item if the LaTeX version is older than 2022/06, as uccodes are ignored
+ by the \cs{MakeUppercase} implementation introduced in this version
+ \item for accents that are actually required in the selcected language
+ variant (i.e. only for the \emph{tonos}, if the language variant
+ is the default ``monotonic''.
+\end{itemize}
+
+With \cs{greekfontencoding} \greekfontencoding, LaTeX version \fmtversion,
+and language variant ``\GreekLanguageVariant'' we get for
+dialytika\footnote{%
+ Unless followed by a to-be accented vowel, the quotation mark \texttt{"}
+ is converted to an upper right apostrophe by LGR.},
+sub-iota, tonos/oxia, varia, psili, and dasia:
+
+\newcommand{\AccentCharacters}{" | ' ` > <}
+\begin{quote}
+ \selectlanguage{greek}
+ \AccentCharacters{} $\mapsto$ \MakeUppercase{\AccentCharacters}
+\end{quote}
+
+\emph{Composite command} definitions ensure that combined accents
+also work for accent characters ``upcased'' to the charcter
+No 159 = 0x9f):
+
+\newcommand{\CombinedAccentSample}{
+ \ifdefined \UnicodeEncodingName
+ % TODO: combined accents swallow whitespace after base char
+ % unless protected
+ \"'υ{} \"`υ{} \`"υ{} \'"υ{} \`<α{} \'<α{}
+ \else
+ \"'u \"`u \`"u \'"u \`<a \'<a \'<ai
+ \fi
+ \'<\textalpha\textiota
+}
+\begin{quote}
+ \selectlanguage{greek}
+ \CombinedAccentSample{} $\mapsto$ \MakeUppercase{\CombinedAccentSample}
+\end{quote}
+
+With babel-greek versions up to 1.11, using the tilde for the
+\emph{perispomeni} accent inside \verb|\MakeUppercase| led to a
+\begin{quote}
+ \texttt{Package inputenc Error: Invalid UTF-8 byte "9F}
+\end{quote}
+(even without loading \emph{inputenc} and with \verb|\UseRawInputEncoding|).%
+\footnote{cf.
+ \href{https://www.latex-project.org/news/latex2e-news/ltnews28.pdf}%
+ {LaTeX News 28}}
+Version 1.12 fixes the issue so that all three input variants work again
+(with LaTeX versions up to 2022/06)%
+\footnote{There are new issues with the implementation of \cs{MakeUppercase}
+ introduced in the 2022/06 LaTeX release, cf.\
+ \href{https://www.latex-project.org/news/latex2e-news/ltnews35.pdf}%
+ {LaTeX News 35}}
+\begin{quote}
+ \selectlanguage{greek}
+ \greektext
+ ~u \~u \accperispomeni{u} $\mapsto$ \MakeUppercase{~u \~u \accperispomeni{u}}
+\end{quote}
+
+
+The changed uc/lccodes have strange effects on Latin text parts
+in Greek paragraphs if only the encoding is switched:
+\begin{quote}
+ \selectlanguage{greek}
+ \foreignlanguage{english}{English:
+ Let's see: \AccentCharacters{} $\mapsto$
+ \MakeUppercase{Let's see: \AccentCharacters}}\\
+ \ensureascii{\cs{ensureascii}:
+ Let's see: \AccentCharacters{} $\mapsto$
+ \MakeUppercase{Let's see: \AccentCharacters}}
+\end{quote}
+%
+To limit the effect on, e.g., section headings (which are printed
+capitalised with the ``headings'' style), uccodes for ``v''
+(zero-width space) and ``c'' (final sigma) are not changed.
+Use \verb|\textcompwordmark| instead of \texttt{v} and autosigma
+(\texttt{s}) instead of \texttt{c} in text parts that could/should
+become upcased, e.g., \lgrfont{a\textcompwordmark us $\mapsto$
+\MakeUppercase{a\textcompwordmark us}}
+not \lgrfont{avuc $\mapsto$ \MakeUppercase{avuc}}.
\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex b/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex
new file mode 100644
index 0000000000..c04699d905
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex
@@ -0,0 +1,131 @@
+\documentclass[a4paper]{article}
+\usepackage{ifthen}
+\usepackage[LGR,T1]{fontenc}
+\usepackage{booktabs}
+\usepackage{longtable,ltcaption,array}
+\usepackage[textwidth=14cm]{geometry} % to fit the number table
+\setlength{\extrarowheight}{2pt}
+\usepackage{parskip}
+\pagestyle{empty}
+
+\ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ \setmainfont{Linux Libertine O} % no GREEK ACROPHONIC ATTIC numbers
+ % \setmainfont{Liberation Serif} % no GREEK ACROPHONIC ATTIC numbers
+ % \setmainfont{FreeSerif}
+\else
+ \usepackage{lmodern}
+ % \usepackage{kerkis} % !! Data loss: \textStigma and \textSampi
+ % characters missing!
+ % \usepackage{gfsdidot} % !! Data loss: \textsampi, \textSampi,
+ % and \textStigma characters missing!
+ % \usepackage{dejavu} % !! Data loss: \textSampi character missing!
+ % Prevent dataloss with re-definitions, e.g:
+ % \renewcommand*{\greeknumeralSix}{\textSigma\textTau} % default \textStigma
+ % \renewcommand*{\greeknumeralNinety}{\textsampi} % default \textSampi
+\fi
+
+
+\usepackage[greek,english]{babel}
+
+\begin{document}
+\section*{Test Greek (Milesian) numerals}
+\author{Günter Milde}
+\date{2023/01/06}
+
+Babel-greek defines the functions \verb|\greeknumeral| and
+\verb|\Greeknumeral| that work similar to the TeX primitive
+\verb|\romannumeral|. For details and configuration options, see
+\texttt{babel-greek.pdf}.
+
+Examples:
+
+\newcommand*{\greeknumeralsample}[1]{\mbox{#1 = \greeknumeral{#1}}}
+\newcommand*{\Greeknumeralsample}[1]{\mbox{#1 = \Greeknumeral{#1}}}
+
+\greeknumeralsample{16}\quad
+\greeknumeralsample{32}\quad
+\greeknumeralsample{64}\quad
+\greeknumeralsample{678}\quad
+\greeknumeralsample{2022}\quad
+\greeknumeralsample{123456}
+
+\Greeknumeralsample{16}\quad
+\Greeknumeralsample{32}\quad
+\Greeknumeralsample{64}\quad
+\Greeknumeralsample{678}\quad
+\Greeknumeralsample{2022}\quad
+\Greeknumeralsample{123456}
+
+Hexadecimal input works, too: \greeknumeralsample{"10}
+
+Largest supported number: \greeknumeralsample{999999}
+
+Values outside the supported range are printed as arabic decimal numbers
+(a warning is issued):
+\greeknumeralsample{-1}\quad
+\greeknumeralsample{0}\quad
+\greeknumeralsample{"1000000}
+
+All Ionic number symbols.
+The Greek font encoding is \greekfontencoding.
+
+\begin{tabular}{rrrrrrrrr}
+\toprule
+1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
+\greeknumeral{1} & \greeknumeral{2} & \greeknumeral{3} & \greeknumeral{4} &
+\greeknumeral{5} & \greeknumeral{6} & \greeknumeral{7} & \greeknumeral{8} & \greeknumeral{9} \\[0.3em]
+
+10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\
+\greeknumeral{10} & \greeknumeral{20} & \greeknumeral{30} & \greeknumeral{40} &
+\greeknumeral{50} & \greeknumeral{60} & \greeknumeral{70} & \greeknumeral{80} & \greeknumeral{90} \\[0.3em]
+
+100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
+\greeknumeral{100} & \greeknumeral{200} & \greeknumeral{300} & \greeknumeral{400} &
+\greeknumeral{500} & \greeknumeral{600} & \greeknumeral{700} & \greeknumeral{800} & \greeknumeral{900} \\[0.3em]
+
+1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\
+\greeknumeral{1000}& \greeknumeral{2000}& \greeknumeral{3000}& \greeknumeral{4000}&
+\greeknumeral{5000}& \greeknumeral{6000}& \greeknumeral{7000}& \greeknumeral{8000}& \greeknumeral{9000} \\[0.3em]
+
+10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\
+\greeknumeral{10000}&\greeknumeral{20000}&\greeknumeral{30000}&\greeknumeral{40000}&
+\greeknumeral{50000}&\greeknumeral{60000}&\greeknumeral{70000}&\greeknumeral{80000}&\greeknumeral{90000} \\[0.3em]
+
+100000 & 200000 & 300000 & 400000 & 500000 & 600000 & 700000 & 800000 & 900000 \\
+\greeknumeral{100000}&\greeknumeral{200000}&\greeknumeral{300000}&\greeknumeral{400000}&
+\greeknumeral{500000}&\greeknumeral{600000}&\greeknumeral{700000}&\greeknumeral{800000}&\greeknumeral{900000} \\[0.3em]
+
+\bottomrule
+\end{tabular}
+
+\begin{tabular}{rrrrrrrrr}
+\toprule
+1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
+\Greeknumeral{1} & \Greeknumeral{2} & \Greeknumeral{3} & \Greeknumeral{4} &
+\Greeknumeral{5} & \Greeknumeral{6} & \Greeknumeral{7} & \Greeknumeral{8} & \Greeknumeral{9} \\[0.3em]
+
+10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\
+\Greeknumeral{10} & \Greeknumeral{20} & \Greeknumeral{30} & \Greeknumeral{40} &
+\Greeknumeral{50} & \Greeknumeral{60} & \Greeknumeral{70} & \Greeknumeral{80} & \Greeknumeral{90} \\[0.3em]
+
+100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
+\Greeknumeral{100} & \Greeknumeral{200} & \Greeknumeral{300} & \Greeknumeral{400} &
+\Greeknumeral{500} & \Greeknumeral{600} & \Greeknumeral{700} & \Greeknumeral{800} & \Greeknumeral{900} \\[0.3em]
+
+1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\
+\Greeknumeral{1000}& \Greeknumeral{2000}& \Greeknumeral{3000}& \Greeknumeral{4000}&
+\Greeknumeral{5000}& \Greeknumeral{6000}& \Greeknumeral{7000}& \Greeknumeral{8000}& \Greeknumeral{9000} \\[0.3em]
+
+10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\
+\Greeknumeral{10000}&\Greeknumeral{20000}&\Greeknumeral{30000}&\Greeknumeral{40000}&
+\Greeknumeral{50000}&\Greeknumeral{60000}&\Greeknumeral{70000}&\Greeknumeral{80000}&\Greeknumeral{90000} \\[0.3em]
+
+100000 & 200000 & 300000 & 400000 & 500000 & 600000 & 700000 & 800000 & 900000 \\
+\Greeknumeral{100000}&\Greeknumeral{200000}&\Greeknumeral{300000}&\Greeknumeral{400000}&
+\Greeknumeral{500000}&\Greeknumeral{600000}&\Greeknumeral{700000}&\Greeknumeral{800000}&\Greeknumeral{900000} \\
+
+\bottomrule
+\end{tabular}
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf b/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf
deleted file mode 100644
index fafe3a1a08..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex b/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex
deleted file mode 100644
index f60bcaff75..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex
+++ /dev/null
@@ -1,236 +0,0 @@
-\documentclass[a4paper]{scrartcl}
-
-% Load font packages depending on engine:
-\ifdefined\luatexversion
- \usepackage{fontspec}
-\fi
-\ifdefined\XeTeXrevision
- \usepackage{fontspec}
-\fi
-\ifdefined \UTFencname % set by "fontspec.sty"
- % Latin Modern misses most Greek characters.
- \setmainfont{DejaVu Serif}
- \setsansfont{DejaVu Sans}
-\else
- \usepackage[LGR,T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage{lmodern}
- % \usepackage{kerkis} % missing glyphs (Qoppa, in sans serif also koppa, Koppa)
- % \usepackage{dejavu} missing glyphs (qoppa, Qoppa, Sampi)
- % \usepackage{epigrafica} # many missing glyphs
- % \usepackage{gentium} % missing glyphs (Qoppa, Sampi)
- % \usepackage{gfsdidot} % sampi in place of qoppa, missing sampi Sampi
- % \usepackage{gfsartemisia} % sampi in place of qoppa, missing sampi Sampi
- % \usepackage{libertinegc}
- % \usepackage{noto}
- % \usepackage{OldStandard}
- % \usepackage{roboto}
-\fi
-
-
-% Greek script support with textalpha (greek-fontec) or babel-greek:
-
-% \usepackage{textalpha}
-\usepackage[greek,english]{babel}
-
-% Save the unpatched version
-\let\origgreeknumeral\greeknumeral
-\let\origGreeknumeral\Greeknumeral
-
-% uncomment, if you prefer Qoppa for Koppa
-% \let\textKoppa\textQoppa
-% \let\textkoppa\textqoppa
-
-
-% Hyperref
-% default PDFstring encoding is PD1 without Greek support:
-% \usepackage[unicode]{hyperref}
-% With option unicode, there is partial Greek support (no polytonic)
-\usepackage[unicode]{hyperref}
-
-
-\DeclareTextCommand{\greekscript}{PU}{}
-\DeclareTextCommand{\ensuregreek}{PU}[1]{#1}
-% Greek LICR names from "greek-fontenc"
-\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164}% U+0374
-\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165}% U+0375
-\DeclareTextCommand{\textQoppa}{PU}{\83\330}% U+03D8
-\DeclareTextCommand{\textqoppa}{PU}{\83\331}% U+03D9
-\DeclareTextCommand{\textStigma}{PU}{\83\332}% U+03DA
-\DeclareTextCommand{\textstigma}{PU}{\83\333}% U+03DB
-\DeclareTextCommand{\textDigamma}{PU}{\83\334}% U+03DC
-\DeclareTextCommand{\textdigamma}{PU}{\83\335}% U+03DD
-\DeclareTextCommand{\textKoppa}{PU}{\83\336}% U+03DE
-\DeclareTextCommand{\textkoppa}{PU}{\83\337}% U+03DF
-\DeclareTextCommand{\textSampi}{PU}{\83\340}% U+03E0
-\DeclareTextCommand{\textsampi}{PU}{\83\341}% U+03E1
-% TODO: support polytonic Greek (Greek Extended Unicode block)
-
-
-
-\begin{document}
-
-% \textuppercase{Grüße}
-
-% \selectlanguage{greek}
-% \selectlanguage{english}
-
-
-\section{Test Hyperref-safe implementation of Greek numerals}
-
-Every number is set in 4 versions:
-
-1: lowercase Babel,
-2: lowercase Hyperref-patched,
-
-3: uppercase Babel,
-4: uppercase Hyperref-patched,
-
-
-\DeclareRobustCommand{\numeraltest}[1]{
- \origgreeknumeral{#1}
- \ensuregreek{\greeknumeral{#1}}\
- \origGreeknumeral{#1}
- \ensuregreek{\Greeknumeral{#1}}
-}
-
-
-\noindent single numerals
-
-1-5
-\numeraltest{1}
-\numeraltest{2}
-\numeraltest{3}
-\numeraltest{4}
-\numeraltest{5}
-
-6-9
-\numeraltest{6}
-\numeraltest{7}
-\numeraltest{8}
-\numeraltest{9}
-
-10-50
-\numeraltest{10}
-\numeraltest{20}
-\numeraltest{30}
-\numeraltest{40}
-\numeraltest{50}
-
-60-90
-\numeraltest{60}
-\numeraltest{70}
-\numeraltest{80}
-\numeraltest{90}
-
-100-500
-\numeraltest{100}
-\numeraltest{200}
-\numeraltest{300}
-\numeraltest{400}
-\numeraltest{500}
-
-600-900
-\numeraltest{600}
-\numeraltest{700}
-\numeraltest{800}
-\numeraltest{900}
-
-1000-5000
-\numeraltest{1000}
-\numeraltest{2000}
-\numeraltest{3000}
-\numeraltest{4000}
-\numeraltest{5000}
-
-6000-9000
-\numeraltest{6000}
-\numeraltest{7000}
-\numeraltest{8000}
-\numeraltest{9000}
-
-10 000 - 900 000
-\numeraltest{10000}
-\numeraltest{20000}
-\numeraltest{800000}
-\numeraltest{900000}
-
-\noindent compound numbers
-
-123-323
-\numeraltest{123}
-\numeraltest{223}
-\numeraltest{323}
-
-445-645
-\numeraltest{445}
-\numeraltest{545}
-\numeraltest{645}
-
-767-967
-\numeraltest{767}
-\numeraltest{867}
-\numeraltest{967}
-
-967021 \numeraltest{967021}
-
-\noindent outside of bounds
-
-Negative and zero
-\greeknumeral{-1}
-% \Greeknumeral{-1}
-\greeknumeral{0}
-%\Greeknumeral{0}
-
-Too large:
-\greeknumeral{1000000}
-% \Greeknumeral{1000000}
-
-\paragraph{Discussion}
-
-The new implementation gives identical results.
-
-\section{Greek numerals in PDF bookmarks}
-
-\section{
- \numeraltest{1}
- \numeraltest{90}
- \numeraltest{200}
-}
-
-\section{
- \numeraltest{1000}
- \numeraltest{90000}
- \numeraltest{200000}
-}
-\section{
- \numeraltest{24}
- \numeraltest{96}
-}
-
-\section{
- \numeraltest{96}
- \numeraltest{263}
-}
-
-\section{
- \numeraltest{4695}
-}
-
-\section{Original numeral:
- \greekscript{\origgreeknumeral{1293}}
- % \greekscript{\origGreeknumeral{1293}}
-}
-
-Babels original lower case version works fine in text. However, use in a
-section heading results in spurious numeral marks (dexia keraia) in the
-PDF bookmark. and the warning
-\begin{verbatim}
- Package hyperref Warning: Token not allowed in a PDF string (Unicode):
- (hyperref) removing `\@ifnextchar' on input line 353.
-\end{verbatim}
-
-The upper case version fails because MakeUpercase is not defined for
-PDFstrings.
-
-\end{document},
diff --git a/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex b/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex
new file mode 100644
index 0000000000..88c628cbca
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex
@@ -0,0 +1,189 @@
+% Test fixes for the LGR font encoding
+\documentclass[a4paper,oneside]{book}
+
+\pagestyle{headings}
+
+\usepackage[LGR,T1]{fontenc}
+\usepackage{lmodern}
+
+% Play with the modifiers and watch the effects:
+\newcommand*{\greeklanguagespecifier}{%
+ % greek%
+ greek.local-LGR-fixes%
+ % greek.no-LGR-fixes%
+}
+
+\usepackage[\greeklanguagespecifier,english]{babel}
+
+% hyperref and makeindex both have special requirements for \@roman & \@Roman
+\usepackage{hyperref}
+\hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue}
+\usepackage{makeidx}
+\makeindex
+
+
+\begin{document}
+
+% Pagenumbering uses Roman numerals in the front matter for "book" class
+\frontmatter
+
+\tableofcontents
+% Check Roman page numbers!
+
+\chapter{Preface \label{ch:preface}}
+
+This document tests workarounds for the non-standard LGR Greek text font
+encoding for \emph{necessity}, \emph{effects}, and \emph{side-effects}.
+
+The ideal result would be that all Roman numerals came out as expeced
+and the Index would contain two entries.
+
+The new language attributes \texttt{local-LGR-fixes} and
+\texttt{no-LGR-fixes} provide a tradeoff: limiting the work-arounds to local
+scope or skipping them completely helps with the index but breaks some of
+the Roman numbers. This can help in documents using only small Greek text
+parts. In the current compilation, Babel is called with the
+\texttt{\greeklanguagespecifier} and \texttt{english} options.
+
+In this document, English text in Greek text parts is not protected against
+the Greek transliteration (deliberately, to show clearly where Greek is the
+active language). See the source \texttt{*.tex} file for the English
+original.
+
+\begin{enumerate}
+ \item Problem
+ \begin{enumerate}
+ \item Roman numerals require Latin characters.
+ \item Alphabetic counters use Latin characters, too.
+ \item
+ In document parts using the LGR font encoding, this leads to errors.
+ \begin{enumerate}
+ \item While an ``i'' is still recognizable after conversion to a
+ small Iota, a ``v'', say, becomes an invisible no-break space.
+ \item The transliteration of ``a) b) c) d) e) f) g)''
+ leads to strange results, too.%
+ \label{item with roman number}
+ \end{enumerate}
+ \end{enumerate}
+ \item Solution for (a): wrapping roman numbers in \verb|\ensureascii|.
+ \begin{enumerate}
+ \item However, some numbers, e.g. page numbers are auto-generated
+ at ``unpredictible'' places.
+ Other are used at places ``inaccessible'' to the author (e.g. the
+ page number of a Greek chapter in the ToC).
+
+ → Re-define counter-formatting functions to make them LGR-proof.
+
+ \item Moving arguments complicate the matter.
+ \begin{enumerate}
+ \item The proofing must be robust (to some degree) to fix, e.g.,
+ a Roman page number of a Greek chapter in the ToC.
+ \item The proofing must be global to work reliably.
+ \end{enumerate}
+ \end{enumerate}
+ \item Side-effect: the proofing makes Makeindex fail if there are
+ index entries on pages with Roman numbering.
+
+ \index{makeindex-problem}
+ Makeindex expects ``pagenumbers'' to be simple text strings, without
+ font encoding change or similar. Cf.
+ \href{https://github.com/latex3/babel/issues/170}{Babel issue~\#170}.
+
+\end{enumerate}
+
+
+\selectlanguage{greek}
+\chapter{Προλογος \label{ch:prologos}}
+
+\begin{enumerate}
+ \item Problem
+ \begin{enumerate}
+ \item Roman numerals require Latin characters.
+ \item Alphabetic counters use Latin characters, too.
+ \item
+ In document parts using the LGR font encoding, this leads to errors.
+ \begin{enumerate}
+ \item While an ``i'' is still recognizable after conversion to a
+ small Iota, a ``v'', say, becomes an invisible no-break space.
+ \index{invisible-v-problem}
+ \item A transliteration of ``a) b) c) d) e) f) g)''
+ leads to strange results, too.%
+ \label{item with roman number greek}
+ \end{enumerate}
+ \end{enumerate}
+\end{enumerate}
+
+% \newpage
+% Second page of the Greek preface.
+
+\selectlanguage{english}
+
+
+\mainmatter
+
+\chapter{First Chapter \label{ch:1}}
+
+\section{Page references}
+
+The ``preface'' is at page \pageref{ch:preface}.
+The ``\ensuregreek{prologos}'' is at page \pageref{ch:prologos}.
+
+\section{Page references from a Greek text part}
+
+\selectlanguage{greek}
+
+Ο ''\ensureascii{preface}'' βρίσκεται στη σελίδα
+ \pageref{ch:preface}.
+Ο ``πρόλογος'' βρίσκεται στη σελίδα \pageref{ch:prologos}.
+
+\selectlanguage{english}
+
+\begin{itemize}
+\item With ``local-LGR-fixes'', the page number of the \ensuregreek{Προλογος}
+ comes out wrong.
+\item Authors can fix it by wrapping the \verb|\pageref| function.
+ However, a change of the the default ``LGR fix scope'' to ``local''
+ may break existing documents.
+\end{itemize}
+
+
+\section{References to items in an enumeration}
+
+See item \ref{item with roman number} in an English list.
+See item \ref{item with roman number greek} in a Greek list.
+
+\section{References to items in an enumeration from a Greek text part}
+
+\selectlanguage{greek}
+
+See item \ref{item with roman number} in an English list.
+See item \ref{item with roman number greek} in a Greek list.
+
+\selectlanguage{english}
+
+\begin{itemize}
+\item The ``alph'' counter in the ``English'' list comes out wrong.
+ (This is also the behaviour in previous versions of babel-greek.)
+\item Authors must treat references to non-Greek text parts similar to
+ non-Greek words and abbreviations (wrap in \verb|\ensureascii|).
+\end{itemize}
+
+\section{The Index}
+
+The next page should show an Index with 2 entries
+(see \texttt{test-lgr-fixes.idx}).
+
+\begin{itemize}
+\item With global LGR fixes, no index entry is printed (both are rejected by
+ \texttt{makeindex} because of the font encoding change command
+ preceding the page number.
+\item With ``local-LGR-fixes'', only ``makeindex-problem'' is rejected.
+ (The pagenumber is generated when the \verb|\chapter| command starts
+ the \ensuregreek{Prologos} on a new page. At this point, the active
+ language is Greek and the font encoding LGR.)
+\end{itemize}
+
+\backmatter
+\printindex
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf b/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf
deleted file mode 100644
index c1ddae2a47..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex b/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex
deleted file mode 100644
index e1994f3136..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex
+++ /dev/null
@@ -1,264 +0,0 @@
-\documentclass[a4paper]{article}
-% \usepackage{textcomp}
-\usepackage{hyperref}
-% \usepackage{bookmark}
-\usepackage{parskip}
-
-% Declare the font encoding and Greek LICR definitions:
-\usepackage[LGR]{fontenc}
-
-% Set up Latin Modern OpenType unicode font
-\usepackage{fontspec}
-
-\usepackage[greek,english]{babel}
-% \languageattribute{greek}{polutoniko}
-% \languageattribute{greek}{ancient}
-
-% use LGR (8-bit CB-fonts) instead of Unicode fonts for Greek:
-\addto{\extrasgreek}{\greektext}
-% Alternative:
-% \renewcommand*{\greekscript}{\fontencoding{LGR}\selectfont}
-
-\begin{document}
-
-\title{XeTeX/LuaTeX with LGR fonts}
-\author{Günter Milde}
-\date{2020/11/10}
-\maketitle
-
-The babel option «greek» activates the support for the Greek language
-defined in «greek.ldf» (source «greek.dtx»).
-
-Typesetting Greek texts requires a font containing Greek letters. With the
-XeTeX or LuaTeX engines, the user must ensure that the selected font
-contains the required glyphs (the default Latin Modern fonts miss them).
-
-Latin Modern can be combined with the matching CB-Greek 8-bit font. For the
-setup, see the preamble of this document \texttt{test-unicode-lgr.tex}
-
-Caveat: Currently, hyphenation does not work with this setup. Use it only
-for short Greek quotes or as a last ressort.
-
-\section{Language Switch}
-
-The declaration \verb|\selectlanguage| switches between languages. With
-XeTeX or LuaTeX and LGR as \verb|\greekfontencoding|, Unicode input is not
-possible. Instead, use the Latin transliteration or LICR macros:
-
-\begin{quote}
- \selectlanguage{greek}
- T'i f'hic? <Id`wn >enj'ede pa~id'' >eleuj'eran\\
- t`ac plhs'ion N'umfac stefano~usan, S'wstrate,\\
- >er~wn 'ap~hljec e>uj'uc?
-\end{quote}
-
-The macro \verb|\foreignlanguage| sets its second argument in the specified
-language. This is intended for short text parts like
-\foreignlanguage{greek}{Biblioj'hkh}.
-
-\section{Font Encoding}
-
-Switching to a font encoding supporting the Greek script is possible without
-switching the text language using the declarations \verb|\greekscript| or
-\verb|\greektext| (always LGR) and the macros \verb|\ensuregreek| or
-\verb|\textgreek|. These commands do not start a new paragraph.
-
-The Babel core defines the declaration \verb|\latintext| and the command
-\verb|\textlatin| to switch to the T1 or OT1 font encoding or typeset the
-argument using this encoding. \texttt{greek.ldf} adds a test for the Unicode
-font encodings TU, EU1, and EU2. Here, \verb|\latinencoding| is
-\latinencoding.
-
-With Unicode fonts, the macros \verb|\greektext| and \verb|\textgreek| are
-only defined, if the LGR font encoding is loaded via the \texttt{fontenc}
-package (see test-unicode-lgr.tex).
-
-% don't change the font encoding.
-With LGR, Latin characters in Greek text parts are typeset as Greek characters
-according to the Latin transcription defined in LGR.%
-
-\begin{quote}
- \greektext F\'ilwn to\~u \textlatin{TeX} (EFT) --
- \latintext{Friends (\textgreek{F\'ilwn}) of TeX.}%
-\end{quote}
-
-\section{MakeUppercase, MakeLowercase}
-
-Capital Greek letters have diacritics (except the dialytika and sub-iota) to
-the left (instead of above) and drop them in uppercase.
-
-Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on
-the first vowel of a diphthong (\textgreek{\'ai, \'au, \'ei, \'>ai, \'>au,
-\'>ei}). A dialytika must be placed on the second vowel if they are dropped.
-(\foreignlanguage{greek}{\MakeUppercase{\'ai, \'au, \'ei, \'>ai, \'>au,
-\'>ei}}).
-
-\section{LICR Macros}
-
-Babel defines macros for several autogenerated strings so that they may
-appear in the choosen language. \emph{babel-greek} uses LICR macros in
-order to let the string macros work independent of the font encoding.
-
-If \texttt{fontspec} is loaded before babel, babel-greek loads Greek LICR
-for TU from the file \texttt{tuenc-greek.def} provided with
-\emph{greek-fontenc} since version~0.14 (2020-02-28).
-
-\subsection{Hiatus}
-
-The «hiatus» feature works with macro input:
-
-\selectlanguage{greek}
-% from teubner: άυλος/ΑΫΛΟΣ
-\acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma{}
-$\mapsto$
-\MakeUppercase{\acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma},
-\'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma{} $\mapsto$
-\MakeUppercase{\'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma},
-% from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ
-\textmu\acctonos\textalpha\textiota\textnu\textalpha{} $\mapsto$
-\MakeUppercase{\textmu\acctonos\textalpha\textiota\textnu\textalpha},
-% from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema
-% κέικ, ἀυπνία/αϋπνία
-\textkappa\acctonos\textepsilon\textiota\textkappa $\mapsto$
-\MakeUppercase{\textkappa\acctonos\textepsilon\textiota\textkappa},
-\accpsili\textalpha\textupsilon\textpi\textnu\'\textiota\textalpha{} $\mapsto$
-\MakeUppercase{\accpsili\textalpha\textupsilon\textpi\textnu\'\textiota\textalpha}.
-\selectlanguage{english}
-
-\subsection{Captions}
-
-\selectlanguage{greek}
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename ,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
-\selectlanguage{english}
-
-Test correct upcasing (dropping of accents):
-
-\selectlanguage{greek}
-\MakeUppercase{
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
-}
-\selectlanguage{english}
-
-\subsection{Months}
-
-\selectlanguage{greek}
-\newcounter{foo}
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\selectlanguage{english}
-
-\section{Greek Numerals}
-
-See greek.pdf for the formation rules of Greek numerals.
-Some examples:
-
-\selectlanguage{greek}
-
-\greeknumeral{1},
-\greeknumeral{2},
-\greeknumeral{3},
-\greeknumeral{4},
-\greeknumeral{5},
-\greeknumeral{6},
-\greeknumeral{7},
-\greeknumeral{8},
-\greeknumeral{9},
-\greeknumeral{10},
-\greeknumeral{11},
-\greeknumeral{12},
-\greeknumeral{20},
-\greeknumeral{345},
-\greeknumeral{500},
-\greeknumeral{1997},
-\greeknumeral{2013},
-
-\Greeknumeral{1},
-\Greeknumeral{2},
-\Greeknumeral{3},
-\Greeknumeral{4},
-\Greeknumeral{5},
-\Greeknumeral{6},
-\Greeknumeral{7},
-\Greeknumeral{8},
-\Greeknumeral{9},
-\Greeknumeral{10},
-\Greeknumeral{11},
-\Greeknumeral{12},
-\Greeknumeral{20},
-\Greeknumeral{345},
-\Greeknumeral{500},
-\Greeknumeral{1997},
-\Greeknumeral{2013},
-
-
-\selectlanguage{english}
-Enumerated lists use Greek characters/numerals in the second and fourth level:
-
-\selectlanguage{greek}
-\begin{enumerate}
- \item \textlatin{item} 1
- \begin{enumerate}
- \item \textlatin{item} 1.1
- \begin{enumerate}
- \item \textlatin{item} 1.1.1
- \begin{enumerate}
- \item \textlatin{item} 1.1.1.1
- \item \textlatin{item} 1.1.1.2
- \end{enumerate}
- \item \textlatin{item} 1.1.2
- \end{enumerate}
- \end{enumerate}
-\end{enumerate}
-\selectlanguage{english}
-
-\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/usage.pdf b/macros/latex/contrib/babel-contrib/greek/usage.pdf
index 43a51a2053..884321bacf 100644
--- a/macros/latex/contrib/babel-contrib/greek/usage.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/usage.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/usage.tex b/macros/latex/contrib/babel-contrib/greek/usage.tex
index 519b721e5f..167bcca38c 100644
--- a/macros/latex/contrib/babel-contrib/greek/usage.tex
+++ b/macros/latex/contrib/babel-contrib/greek/usage.tex
@@ -1,11 +1,8 @@
-% \iffalse meta-comment
+% Copyright 1997 Apostolos Syropoulos
+%
+% This file is part of the babel-greek package.
+% ---------------------------------------------
%
-% Copyright 1989-2008 Johannes L. Braams and any individual authors
-% listed elsewhere in this file. All rights reserved.
-%
-% This file is part of the Babel system.
-% --------------------------------------
-%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,22 +10,17 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Günter Milde.
-%
-% The list of all files belonging to the Babel system is
-% given in the file `manifest.bbl. See also `legal.bbl' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
-% \fi
+
\documentclass[11pt]{article}
\usepackage[american,greek]{babel}
\languageattribute{greek}{polutoniko}
+% \languageattribute{greek}{ancient}
+\newcommand{\langGreek}{\foreignlanguage{greek}}
+
\usepackage{athnum,grmath}
\newcommand{\sg}{\selectlanguage{greek}}
\newcommand{\sa}{\selectlanguage{american}}
@@ -49,8 +41,8 @@
\abstract{\noindent
This document describes the use of the Latin transliteration for Greek that
is defined by the LGR font encoding. Today, all modern LaTeX distributions
-support literal input of Greek, which is the preferred method for new
-documents. [G. Milde 2013/12/02]}
+support literal input of Greek characters, which is the preferred method for
+new documents. [G. Milde 2013/12/02]}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,11 +51,11 @@ documents. [G. Milde 2013/12/02]}
The \texttt{greek} option of the \texttt{babel} package is an attempt to
make it possible for someone to write Greek text with \LaTeX. The current
version of the \texttt{greek} option supports the
-\textgreek{monotonik'o} and \textgreek{polutonik'o}
+\langGreek{monotonik'o} and \langGreek{polutonik'o}
accentual systems of the Greek language.
-Moreover, there is now support for Greek numerals. One can produce easily
+Moreover, there is now support for Greek numerals. One can produce easily
valid Greek numerals both in uppercase and lowercase forms, e.g,
-\textgreek{\greeknumeral{1997}}\ and \textgreek{\Greeknumeral{1997}}. The
+\langGreek{\greeknumeral{1997}}\ and \langGreek{\Greeknumeral{1997}}. The
labels in second and fourth level enumerations are lowercase
and uppercase Greek numerals correspondingly.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -78,60 +70,60 @@ which are mapped to their Greek ``counterparts'' by \TeX. The following
table shows the transliteration employed:
\begin{center}
\begin{tabular}{|lllllllllllll|}\hline
-\textgreek{a}&
-\textgreek{b}&
-\textgreek{g}&
-\textgreek{d}&
-\textgreek{e}&
-\textgreek{z}&
-\textgreek{h}&
-\textgreek{j}&
-\textgreek{i}&
-\textgreek{k}&
-\textgreek{l}&
-\textgreek{m}&
-\textgreek{n}\\
+\langGreek{a}&
+\langGreek{b}&
+\langGreek{g}&
+\langGreek{d}&
+\langGreek{e}&
+\langGreek{z}&
+\langGreek{h}&
+\langGreek{j}&
+\langGreek{i}&
+\langGreek{k}&
+\langGreek{l}&
+\langGreek{m}&
+\langGreek{n}\\
a& b& g& d& e& z& h& j& i& k& l& m& n\\
-\hline
-\textgreek{x}&
-\textgreek{o}&
-\textgreek{p}&
-\textgreek{r}&
-\textgreek{sv}&
-\textgreek{t}&
-\textgreek{u}&
-\textgreek{f}&
-\textgreek{q}&
-\textgreek{y}&
-\textgreek{w}&
-\textgreek{c}& \hbox{ } \\
-x& o& p& r& s&
+\hline
+\langGreek{x}&
+\langGreek{o}&
+\langGreek{p}&
+\langGreek{r}&
+\langGreek{sv}&
+\langGreek{t}&
+\langGreek{u}&
+\langGreek{f}&
+\langGreek{q}&
+\langGreek{y}&
+\langGreek{w}&
+\langGreek{c}& \hbox{ } \\
+x& o& p& r& s&
t& u& f& q& y& w& c& \hbox{ }\\ \hline
\end{tabular}
\end{center}
-Please, note that in order to produce the letter \textgreek{sv} in isolation
-on has to type \texttt{sv}. This feature is due to the strong ligature
-that \TeX\ employs.
-In the ``modern'' \textgreek{monotonik'o} accentual system only one accent is
-used---\textgreek{oxe'ia} (acute). In the traditional \textgreek{polutonik'o}
-accentual system we
+Please, note that in order to produce the letter \langGreek{sv} in isolation
+one has to type \texttt{sv}. This feature is due to the strong ligature
+that \TeX\ employs.
+In the ``modern'' \langGreek{monotonik'o} accentual system only one accent is
+used---\langGreek{oxe'ia} (acute). In the traditional \langGreek{polutonik'o}
+accentual system we
need more accents and breathing signs. We can produce an accented letter by
prefixing the letter with he symbol that denotes the accent, e.g.,
-\texttt{>a'erac} produces the word \sg >a'erac.\sa\footnote{For the
+\texttt{>a'erac} produces the word \sg >a'erac.\sa\footnote{For the
technically inclined reader, we must say that \TeX\ uses the ligature table of
the font in order to determine the character that corresponds to the
-input character sequence.} Here are the symbols that are recognized:
+input character sequence.} Here are the symbols that are recognized:
\begin{center}
\begin{tabular}{cccc}\hline
Accent & Symbol & Example & Output\\ \hline
-acute & \texttt{'} & \texttt{g'ata} & \textgreek{g'ata}\\
-grave & \texttt{`} & \texttt{dad`i} & \textgreek{dad`i}\\
-circumflex & \verb+~+ & \verb+ful~hc+ & \sg\textgreek{ful~hc}\sa\\
-rough breathing & \verb+<+ & \verb+<'otan+ & \sg\textgreek{<'otan}\sa\\
-smooth breathing & \verb+>+ & \verb+>'aneu+ & \sg\textgreek{>'aneu}\sa\\
-subscript & \texttt{|} & \verb+>anate'ilh|+ & \sg\textgreek{>anate'ilh|}\\
-dieresis & \texttt{"}& \texttt{qa"ide'uh|c} & \sg\textgreek{qa"ide'uh|c}\\
+acute & \texttt{'} & \texttt{g'ata} & \langGreek{g'ata}\\
+grave & \texttt{`} & \texttt{dad`i} & \langGreek{dad`i}\\
+circumflex & \verb+~+ & \verb+ful~hc+ & \sg\langGreek{ful~hc}\sa\\
+rough breathing & \verb+<+ & \verb+<'otan+ & \sg\langGreek{<'otan}\sa\\
+smooth breathing & \verb+>+ & \verb+>'aneu+ & \sg\langGreek{>'aneu}\sa\\
+subscript & \texttt{|} & \verb+>anate'ilh|+ & \sg\langGreek{>anate'ilh|}\\
+dieresis & \texttt{"}& \texttt{qa"ide'uh|c} & \sg\langGreek{qa"ide'uh|c}\\
\hline
\end{tabular}
\end{center}
@@ -141,21 +133,22 @@ text is the punctuation marks used in the language:
\begin{center}
\begin{tabular}{ccc}\hline
Punctuation Sign & Symbol & Output\\ \hline
-period & \texttt{.} & \sg\textgreek{.}\sa\\
-semicolon & \texttt{;} & \sg\textgreek{;}\sa\\
-exclamation mark & \texttt{!} & \sg\textgreek{!}\sa\\
-comma & \texttt{,} & \sg\textgreek{,}\sa\\
-colon & \texttt{:} & \sg\textgreek{:}\sa\\
-question mark & \texttt{?} & \sg\textgreek{?}\sa\\
-left apostrophe & \texttt{``} & \sg\textgreek{``}\sa\\
-right apostrophe & \texttt{''} & \sg\textgreek{''}\sa\\
-left quotation mark & \texttt{((} & \sg\textgreek{))}\sa\\
-right quotation mark & \texttt{))} & \sg\textgreek{))}\sa\\ \hline
+period & \texttt{.} & \sg\langGreek{.}\sa\\
+semicolon & \texttt{;} & \sg\langGreek{;}\sa\\
+exclamation mark & \texttt{!} & \sg\langGreek{!}\sa\\
+comma & \texttt{,} & \sg\langGreek{,}\sa\\
+colon & \texttt{:} & \sg\langGreek{:}\sa\\
+question mark & \texttt{?} & \sg\langGreek{?}\sa\\
+left apostrophe & \texttt{``} & \sg\langGreek{``}\sa\\
+right apostrophe & \texttt{''} & \sg\langGreek{''}\sa\\
+right apostrophe (alias) & \texttt{"} & \sg\langGreek{"}\sa\\
+left quotation mark & \texttt{((} & \sg\langGreek{((}\sa\\
+right quotation mark & \texttt{))} & \sg\langGreek{))}\sa\\ \hline
\end{tabular}
\end{center}
Using these conventions it is a straightforward exercise to write Greek
-\textgreek{polutoniko} text. For example the following excerpt from
-\textgreek{D'uskoloc} of \textgreek{M'enandroc}
+\langGreek{polutoniko} text. For example the following excerpt from
+\langGreek{D'uskoloc} of \langGreek{M'enandroc}
\sg
\begin{quote}
T'i f'hic? <Id`wn >enj'ede pa~id'' >eleuj'eran\\
@@ -177,69 +170,76 @@ Once the Greek language is selected with the command
\verb+\selectlanguage{greek}+
\end{center}
whatever we type will be typeset with the Greek fonts. The command
-\verb+\textlatin+ can be used for short passages in some language that
-uses the Latin alphabet, while the the command \verb+\latintext+ changes
-the base fonts to the ones used by languages that use the Latin alphabet.
+\verb+\ensureascii+ can be used for short passages in some language that
+uses the Latin alphabet.
However, all words will be hyphenated by following the Greek hyphenation
-rules! Similar commands are available once someone has selected some
-other language. The commands \verb+\textgreek+ and \verb+\greektext+
-behave exactly like their ``latin'' counterparts. For example, the
-word \textgreek{M'imhc} has been produced with the command
-\verb+\textgreek{M'imhc}+. Please note that certain symbols cannot have
-their expected result for Greek text, unless someone has selected the Greek
+rules! Therefore it is better to switch to the other language
+with \verb+\foreignlanguage+. The commands \verb+\lgrfont+ and
+\verb+\greektext+ switch to the Greek LGR font encoding.
+For example, the word \lgrfont{M'imhc} has been produced with the command
+\verb+\lgrfont{M'imhc}+. Please note that Greek hyphenation and upcasing rules
+are not applied and certain symbols cannot have
+their expected result for Greek text, unless someone has selected the Greek
language, e.g., \verb+~+ is such a symbol.
As we have mentioned above this version of the \texttt{greek} option of the
\texttt{babel} package supports the use of Greek numerals. The commands
-\verb+\greeknumeral+ and \verb+\Greeknumeral+ produce the lowercase and
-the uppercase Greek numeral, e.g.,
+\verb+\greeknumeral+ and \verb+\Greeknumeral+ produce the lowercase and
+the uppercase Greek numeral, e.g.,
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb+\Greeknumeral{9999}+ & \sg\textgreek{\Greeknumeral{9999}}\\
-\verb+\greeknumeral{9999}+ & \sg\textgreek{\greeknumeral{9999}}\\
+\verb+\Greeknumeral{9999}+ & \sg\langGreek{\Greeknumeral{9999}}\\
+\verb+\greeknumeral{9999}+ & \sg\langGreek{\greeknumeral{9999}}\\
\hline
\end{tabular}
\end{center}
In order to correctly typeset the greek numerals the greek option file
-provides the following commands:
+uses the following commands:
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb+\textkoppa+ & \textgreek{\textkoppa}\\
-\verb+\textsampi+ & \textgreek{\textsampi}\\
-\verb+\textstigma+ & \textgreek{\textstigma}\\
-\verb+\textKoppa+ & \textgreek{\textKoppa}\\
-\verb+\textSampi+ & \textgreek{\textSampi}\\
-\verb+\textStigma+ & \textgreek{\textStigma}\\
+% symbol names updated to current defaults [GM]
+% name used by package "greek-fontenc" % obsolete name
+\verb+\textdexiakeraia+ & \langGreek{\textdexiakeraia}\\ % \anwtonos
+\verb+\textaristerikeraia+ & \langGreek{\textaristerikeraia}\\ % \katwtonos
+\verb+\textkoppa+ & \langGreek{\textkoppa}\\ % \qoppa
+\verb+\textsampi+ & \langGreek{\textsampi}\\ % \sampi
+\verb+\textstigma+ & \langGreek{\textstigma}\\ % \stigma
+\verb+\textKoppa+ & \langGreek{\textKoppa}\\ % n.a. (\qoppa)
+\verb+\textSampi+ & \langGreek{\textSampi}\\
+\verb+\textStigma+ & \langGreek{\textStigma}\\
\hline
\end{tabular}
\end{center}
-In traditional Greek typography the first paragraph after a header is
-always indented, contrary to the habit of, say, American typography. This
-effect can be achieved by using the package \verb+indentfirst+.
-
Additional symbols are available:
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb+\textDigamma+ & \textgreek{\textDigamma}\\
-\verb+\textdigamma+ & \textgreek{\textdigamma}\\
-\verb+\VarQoppa+ & \textgreek{\textQoppa}\\
-\verb+\textqoppa+ & \textgreek{\textqoppa}\\
-\verb+\texteuro+ & \textgreek{\euro}\\
-\verb+\textperthousand+ & \textgreek{\permill}\\
+% symbol names updated to current defaults [GM]
+% name used by package "greek-fontenc" % obsolete name
+\verb+\textDigamma+ & \langGreek{\textDigamma}\\ % \Digamma
+\verb+\textdigamma+ & \langGreek{\textdigamma}\\ % \ddigamma
+\verb+\textQoppa+ & \langGreek{\textQoppa}\\ % \varqoppa
+\verb+\textqoppa+ & \langGreek{\textqoppa}\\ % \VarQoppa
+\verb+\textvarstigma+ & \langGreek{\textvarstigma}\\ % \varstigma
+\verb+\texteuro+ & \langGreek{\texteuro}\\ % \texteuro
+\verb+\textperthousand+ & \langGreek{\textperthousand}\\ % \permill
\hline
\end{tabular}
\end{center}
+In traditional Greek typography the first paragraph after a header is
+always indented, contrary to the habit of, say, American typography. This
+effect can be achieved by using the package \verb+indentfirst+.
+
The package \verb|athnum| provides the command \verb|\athnum|, with which
one can produce the so called \textit{Athenian numerals}:
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb|\athnum{1997}| & \textgreek{\athnum{1997}}\\
+\verb|\athnum{1997}| & \langGreek{\athnum{1997}}\\
\hline
\end{tabular}
\end{center}
diff --git a/macros/latex/contrib/sillypage/sillypage-example.pdf b/macros/latex/contrib/sillypage/sillypage-example.pdf
index faee1580b7..3d8180932b 100644
--- a/macros/latex/contrib/sillypage/sillypage-example.pdf
+++ b/macros/latex/contrib/sillypage/sillypage-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/sillypage/sillypage.dtx b/macros/latex/contrib/sillypage/sillypage.dtx
index 6a3b7dbcd3..86982db30d 100644
--- a/macros/latex/contrib/sillypage/sillypage.dtx
+++ b/macros/latex/contrib/sillypage/sillypage.dtx
@@ -1,5 +1,5 @@
% \iffalse meta-comment
-% Copyright (C) 2022
+% Copyright (C) 2023
% by Phelype Oleinik <phelype.oleinik@latex-project.org>
% Paulo Cereda <cereda.paulo@gmail.com>
% samcarter <sam.carter8@aol.com>
@@ -19,8 +19,8 @@
% by Phelype Oleinik, Paulo Cereda, samcarter and Ulrike Fischer.
%
%<*package>
-\def\sillypageDate{2022-08-02}
-\def\sillypageVersion{1.5}
+\def\sillypageDate{2023-03-04}
+\def\sillypageVersion{1.6}
%</package>
%<*driver>
\documentclass[a4paper,full]{l3doc}
diff --git a/macros/latex/contrib/sillypage/sillypage.ins b/macros/latex/contrib/sillypage/sillypage.ins
index 8c3f6c6a2d..a17b063726 100644
--- a/macros/latex/contrib/sillypage/sillypage.ins
+++ b/macros/latex/contrib/sillypage/sillypage.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2022
+%% Copyright (C) 2023
%% by Phelype Oleinik <phelype.oleinik@latex-project.org>
%% Paulo Cereda <cereda.paulo@gmail.com>
%% samcarter <sam.carter8@aol.com>
@@ -33,7 +33,7 @@
This is a generated file.
-Copyright 2022 Phelype Oleinik /phelype.oleinik@latex-project.org/
+Copyright 2023 Phelype Oleinik /phelype.oleinik@latex-project.org/
Paulo Cereda /cereda.paulo@gmail.com/
samcarter /sam.carter8@aol.com/
Ulrike Fischer /fischer@troubleshooting-tex.de/
diff --git a/macros/latex/contrib/sillypage/sillypage.pdf b/macros/latex/contrib/sillypage/sillypage.pdf
index 3b1dcfa8fe..3efa13e7d7 100644
--- a/macros/latex/contrib/sillypage/sillypage.pdf
+++ b/macros/latex/contrib/sillypage/sillypage.pdf
Binary files differ
diff --git a/macros/latex/contrib/sillypage/sillywalk-map.pdf b/macros/latex/contrib/sillypage/sillywalk-map.pdf
index 1ef96bfca1..b9dc8a8ccf 100644
--- a/macros/latex/contrib/sillypage/sillywalk-map.pdf
+++ b/macros/latex/contrib/sillypage/sillywalk-map.pdf
Binary files differ
diff --git a/macros/latex/contrib/tablestyles/README b/obsolete/macros/latex/contrib/tablestyles/README
index bc54d34775..bc54d34775 100644
--- a/macros/latex/contrib/tablestyles/README
+++ b/obsolete/macros/latex/contrib/tablestyles/README
diff --git a/macros/latex/contrib/tablestyles/tablestyles.dtx b/obsolete/macros/latex/contrib/tablestyles/tablestyles.dtx
index e3366c9f52..e3366c9f52 100644
--- a/macros/latex/contrib/tablestyles/tablestyles.dtx
+++ b/obsolete/macros/latex/contrib/tablestyles/tablestyles.dtx
diff --git a/macros/latex/contrib/tablestyles/tablestyles.ins b/obsolete/macros/latex/contrib/tablestyles/tablestyles.ins
index b63aad4077..b63aad4077 100644
--- a/macros/latex/contrib/tablestyles/tablestyles.ins
+++ b/obsolete/macros/latex/contrib/tablestyles/tablestyles.ins
diff --git a/macros/latex/contrib/tablestyles/tablestyles.pdf b/obsolete/macros/latex/contrib/tablestyles/tablestyles.pdf
index db636e7684..db636e7684 100644
--- a/macros/latex/contrib/tablestyles/tablestyles.pdf
+++ b/obsolete/macros/latex/contrib/tablestyles/tablestyles.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 1d4236db99..4f370a6db4 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2022
-depend revision/66317
+depend revision/66342
name 00texlive.image
category TLCore
-revision 66287
+revision 66335
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4442,6 +4442,7 @@ runfiles size=12964
tlpkg/tlpsrc/utf8mex.tlpsrc
tlpkg/tlpsrc/utfsym.tlpsrc
tlpkg/tlpsrc/utopia.tlpsrc
+ tlpkg/tlpsrc/uvaletter.tlpsrc
tlpkg/tlpsrc/uwa-colours.tlpsrc
tlpkg/tlpsrc/uwa-letterhead.tlpsrc
tlpkg/tlpsrc/uwa-pcf.tlpsrc
@@ -4708,7 +4709,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 66293
+revision 66319
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -73004,7 +73005,7 @@ containerchecksum 508276fe37018f3d9773fc7cda0cb37edcdd28e9cf8ab54ed5be16b07c2066
name collection-publishers
category Collection
-revision 65789
+revision 66335
shortdesc Publisher styles, theses, etc.
relocated 1
depend aastex
@@ -73269,6 +73270,7 @@ depend urcls
depend uspatent
depend ut-thesis
depend utexasthesis
+depend uvaletter
depend uwa-colours
depend uwa-letterhead
depend uwa-pcf
@@ -73283,8 +73285,8 @@ depend yathesis
depend yazd-thesis
depend yb-book
depend york-thesis
-containersize 1684
-containerchecksum d8ef1544adbbb1daeccb885c7dfe3464517266e7d7326fdc84bd0e74ee9f6955c7547cda2aeb3a1bb9483423357d12db1f933256a7cc98f25ca4cfbb0aa53d32
+containersize 1688
+containerchecksum 1d14f37712edc04d5000091f2d8fc04bc4929e057bfaffafc2002df21cdf1e1d8c4a9d25ca9e0d3a295416f06a8b59ae8554dc5c01272d3d066dcd5ad899d0b2
name collection-texworks
category Collection
@@ -223446,7 +223448,7 @@ catalogue-version 2.0
name newcomputermodern
category Package
-revision 66202
+revision 66338
shortdesc Computer Modern fonts including matching non-latin alphabets
relocated 1
longdesc This is a new assembly of Computer Modern fonts including
@@ -223455,11 +223457,11 @@ longdesc non-Latin based languages and Mathematics, all compatible in
longdesc style to CM fonts. In addition to the Regular weight of
longdesc Computer Modern, it provides a Book weight for heavier
longdesc printing.
-containersize 5705864
-containerchecksum a51c746e6bf4f2040e84d2ec3eefce9658eea07b19ce0a99d2998b5ed35a7642ef2f35c360e1533739b39cba95b15d039750b7fb6acf6462fa88420f9701280c
-doccontainersize 14466136
-doccontainerchecksum 8077e95cfa568f6b00ada109fd25512d09778d8b9a2840aee7443a2bf43197b1ee764892f6c3b0f7a183f877e3e7a93020481fe4850b7555992e0e9c808b8fa3
-docfiles size=3555
+containersize 5699532
+containerchecksum e5e31361c266052bf765ee41371b548f6c85a857e0cd10f2cac2ea00e90c1e47da745f3dd2efdaa8614dbc4e09b65e4b174e82141eb27385c166ee67d1e52aab
+doccontainersize 14308796
+doccontainerchecksum 065b5d4344015754875b31b55b3ed2b1c6c891a38a5db40390a2136af390285d0b422c9843959501d7e1c68b9d76ae21792ebba11edebee4c2b69b2cc209c5b6
+docfiles size=3517
RELOC/doc/fonts/newcomputermodern/README details="Readme"
RELOC/doc/fonts/newcomputermodern/integral.pdf
RELOC/doc/fonts/newcomputermodern/integral.tex
@@ -223519,7 +223521,7 @@ catalogue-alias newcm
catalogue-ctan /fonts/newcomputermodern
catalogue-license gfl
catalogue-topics font font-archaic font-cm font-coptic font-body font-proportional font-mono font-serif font-sans font-multilingual font-greek font-cyrillic font-hebrew font-maths font-medieval font-otf cherokee font-supp linguistic phonetic
-catalogue-version 4.3
+catalogue-version 4.4
name newenviron
category Package
@@ -249102,17 +249104,17 @@ catalogue-topics float
name photobook
category Package
-revision 66282
+revision 66336
shortdesc A document class for typesetting photo books
relocated 1
longdesc The photobook LaTeX document class extends the book class
longdesc defining a set of parameters, meta-macros, macros and
longdesc environments with reasonable defaults to help typeset, build
longdesc and print books mainly based on visual/image content.
-containersize 30252
-containerchecksum 2078531b114f04368ff8d26b3a7ec6f2c75c06e934bdfb993e6e50a0c9512663000722058879eeccb2c598bfdc26f884372f8658915dc70df16c1660ff54b27f
-doccontainersize 144888
-doccontainerchecksum 4c51526881260e16cc03675ce237685c53fa25e14a68c0c02fa26666258bb0b9a0ac4766069dc925ef294ef583939308d13fb9e4249c2ef0361d3020b1e61aaa
+containersize 30280
+containerchecksum 3f9bc5e0f50eb1aca1cc736582353122ba15137998e643a9edb5096d9d61c931b2c0d76824c87d6a83eb5d4f13c2f36598719fcdab801ac954aecd8fb6e2e750
+doccontainersize 144884
+doccontainerchecksum ea6dd6c5f274d2638358009266f9d2d82dc8b10876861fa79e5cec8282d8780f2980aa149bd41eaa4010c2b0ce8836f422ad0af1c11e073329a67a3362e959bf
docfiles size=45
RELOC/doc/latex/photobook/LICENSE
RELOC/doc/latex/photobook/Makefile
@@ -249122,12 +249124,11 @@ docfiles size=45
RELOC/doc/latex/photobook/scripts/make-images.sh
runfiles size=39
RELOC/tex/latex/photobook/photobook.cls
-catalogue-contact-home https://github.com/flynx/photobook
catalogue-contact-repository https://github.com/flynx/photobook
catalogue-ctan /macros/latex/contrib/photobook
catalogue-license bsd3
catalogue-topics class
-catalogue-version 0.1.8
+catalogue-version 0.1.9
name physconst
category Package
@@ -283911,7 +283912,7 @@ catalogue-version 1.6a
name simpleicons
category Package
-revision 65858
+revision 66337
shortdesc Simple Icons for LaTeX
relocated 1
longdesc Similar to FontAwesome icons being provided on LaTeX by the
@@ -283919,16 +283920,16 @@ longdesc fontawesome package, this package aims to do the same with
longdesc Simple Icons. For reference, visit their website:
longdesc https://simpleicons.org/.
execute addMap simpleicons.map
-containersize 2733556
-containerchecksum 118ff53dcbfc1e90f68555fb88c88ec8040224d3ee363fe99f815d35148967ebc88d58c3e263987d2afbb6c669cfe908039559571cf53a3c16c3cf35aa1ae52c
-doccontainersize 2006600
-doccontainerchecksum 697d4add567f0300edc0292782b992868725be221480061e6b45824af48e591a09765649369a8893ded35145a4802c04bb4e21775068e507128a8938b947078f
+containersize 2736668
+containerchecksum 70ebcd312faac3b2c9294300012ce27da51b9059ad8802179ef5b9553bcc9d6a1ef3274efb38eb6c4e07830dfad4ac923e88ad513bf4d00c5dc402aba4ee8d81
+doccontainersize 2006984
+doccontainerchecksum b66f59fa80dfbf4c938d17de290172d9fbd9d1baaf2f02ab193564ecf7010499439ce6f0c844d95c989d6ab887e2ef07a175cfd1c187def7860ebaaec01c078e
docfiles size=522
RELOC/doc/fonts/simpleicons/README.md details="Readme"
RELOC/doc/fonts/simpleicons/bindings.tex
RELOC/doc/fonts/simpleicons/simpleicons.pdf details="Package documentation"
RELOC/doc/fonts/simpleicons/simpleicons.tex
-runfiles size=1033
+runfiles size=1034
RELOC/fonts/enc/dvips/simpleicons/simpleiconsEight.enc
RELOC/fonts/enc/dvips/simpleicons/simpleiconsFive.enc
RELOC/fonts/enc/dvips/simpleicons/simpleiconsFour.enc
@@ -283970,7 +283971,7 @@ catalogue-contact-repository https://github.com/ineshbose/simple-icons-latex
catalogue-ctan /fonts/simpleicons
catalogue-license cc-by-1
catalogue-topics font font-symbol font-supp-symbol font-otf font-type1
-catalogue-version 8.5.0
+catalogue-version 8.6.0
name simpleinvoice
category Package
@@ -301134,7 +301135,7 @@ binfiles arch=x86_64-solaris size=107
name tex4ebook
category Package
-revision 65613
+revision 66333
shortdesc Converter from LaTeX to ebook formats
longdesc This is a bundle of Lua scripts and LaTeX packages for
longdesc conversion of LaTeX files to ebook formats such as epub, mobi
@@ -301142,11 +301143,11 @@ longdesc and epub3. tex4ht is used as the conversion engine.
depend make4ht
depend tex4ebook.ARCH
depend tex4ht
-containersize 17760
-containerchecksum 87627daa382e1a560ee32ebe6d7f43d7a64e5f02cf8701b37b32380e226342a1b7809e59a148bac51194bd5a9f9c4d57a2a60f0cf245db361a2a5a61367b4918
-doccontainersize 95544
-doccontainerchecksum ce4f4f50a3348ebb891a547e68eeb50400f59681ebf146d104aeec566cafa7a5752c3ebbe8163ab822f774617961a91fa497880456058934c5ba00589f5d9850
-docfiles size=36
+containersize 17944
+containerchecksum 5ed55a074d557cc433780b838fa0a53a3bd8428a192ddc1bfd71c306a110041663ceb0d6931b580e150ebd7f5f07145796ebd12bfd7d1c986e7feb74803dc104
+doccontainersize 101160
+doccontainerchecksum 964824dc432799c57af3d69dae35b35e1f327dd57d245a6c392d434033bc627d8c93682c1bbbb1b099f71acde25c10f7cca2d3b72cca02e3f9c8d94de0dff807
+docfiles size=39
texmf-dist/doc/support/tex4ebook/README details="Readme"
texmf-dist/doc/support/tex4ebook/changelog.tex
texmf-dist/doc/support/tex4ebook/readme.tex
@@ -301169,7 +301170,7 @@ catalogue-contact-repository https://github.com/michal-h21/tex4ebook
catalogue-ctan /support/tex4ebook
catalogue-license lppl1.3
catalogue-topics ebook
-catalogue-version 0.3h
+catalogue-version 0.3i
name tex4ebook.aarch64-linux
category Package
@@ -312819,7 +312820,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 66293
+revision 66319
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -312828,9 +312829,9 @@ depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
containersize 113828
-containerchecksum 30597594f5551c491694aec5ba322d02182cd8b70ec410315208660dc97b478745ee4c5f460475eeaf5ec9e73859e90c2bc6cd11b5c06f17420db6e8879eecc7
-doccontainersize 424636
-doccontainerchecksum f41f7fb3e527be588fe1bccf0e862f1197fc3a39f4ad15cc94cdaa9a810ca854caac66eaec9d0a4f72be0b24280ef014ca3bf04e0dcbfb3f07fcf6e7f3082905
+containerchecksum de660ca9195adc40caacfb90d84661dd5816eea60ba5dc00cb0b77b6b0f9569f86e41d0e09a5c50c84f16e3cca38e524b92883ecf0e137c397758363abf5fbc3
+doccontainersize 424868
+doccontainerchecksum 60bdf51d70e54f4e05e39744b303755050f35e1aad209e6769bfced6b6b9f4afd720dfc0432b7b52d1732ccf83a2b0d2022d294bbb84c88572dedb9882074222
docfiles size=534
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -342324,6 +342325,33 @@ catalogue-ctan /fonts/utopia
catalogue-license other-free
catalogue-topics font font-type1
+name uvaletter
+category Package
+revision 66335
+shortdesc Unofficial letterhead template for the University of Amsterdam
+relocated 1
+longdesc This is an unofficial LaTeX package that provides a letterhead
+longdesc template for the University of Amsterdam. The design mimics the
+longdesc official Word template of the University and complies with the
+longdesc University's house style.
+containersize 1464
+containerchecksum 81cdfd20ebfca553098a9b7cee7fe726bd3bc77ee61624d199a094e7876155a9ef9e9284e543c1adffd092e9618babab5ae896b2f56d8e2864808b5dca0776fe
+doccontainersize 122488
+doccontainerchecksum c07988a7466c3dc96c51412ffca508bbacf392824ae87002e618a9b1de0a79497e11bb6c604a9e73762bcf5be8ffafafeb49c09655c4ae9f35a58deb0db6669a
+docfiles size=36
+ RELOC/doc/latex/uvaletter/LICENSE
+ RELOC/doc/latex/uvaletter/README.md details="Readme"
+ RELOC/doc/latex/uvaletter/demo/uvaletter-demo.pdf details="Package documentation"
+ RELOC/doc/latex/uvaletter/demo/uvaletter-demo.tex
+runfiles size=1
+ RELOC/tex/latex/uvaletter/uvaletter.sty
+catalogue-contact-bugs https://github.com/piazzai/uvaletter/issues
+catalogue-contact-repository https://github.com/piazzai/uvaletter
+catalogue-ctan /macros/latex/contrib/uvaletter
+catalogue-license mit
+catalogue-topics titlepage headings
+catalogue-version 1.1.0
+
name uwa-colours
category Package
revision 60443
@@ -351979,7 +352007,7 @@ catalogue-version 1.00
name xduts
category Package
-revision 66303
+revision 66334
shortdesc Xidian University TeX Suite
relocated 1
longdesc XDUTS is designed to help Xidian University students use LaTeX
@@ -351988,15 +352016,15 @@ longdesc package that meets the school's requirements and can be applied
longdesc to any document class. In addition, there are thesis and thesis
longdesc proposal templates for both undergraduate and postgraduate that
longdesc meet the school's requirements.
-containersize 524180
-containerchecksum c97f58ef2844ab460afbec7594baf0e8041c0f53faa25ca3417c76ecf828a16c59c6ccb523ba597d9b9b74dcf494b5b54d0ad7776b56e1e3695b1bcfb0abed49
-doccontainersize 328692
-doccontainerchecksum a465e9915cdd73fdbf7ed696056171359ebbbeb48f815bae7ab1939d302e8613f259aa8635d5ca8aecc51aaf98675d91f5446c0733c827b5708d8c7e087f1d56
+containersize 524204
+containerchecksum 531817a634a72aa055104123319f17ee8b4d8d23e6417656c1259d87702673169aede8b13bfff5908e5696ae0ab519e2c1fb08aa93a7a475553b54c200631ba4
+doccontainersize 328668
+doccontainerchecksum 2f808b7c527c139edb886b123070f66cae62496d2061707a8c149bc5097b642d66fa46bd2cd0efab07786baae935e6c6837bb9adcc7ae4904b34a064e25968ea
docfiles size=82
RELOC/doc/xelatex/xduts/README.md details="Readme"
RELOC/doc/xelatex/xduts/xduts.pdf details="Package documentation" language="zh"
-srccontainersize 45112
-srccontainerchecksum 2e760e2f66e68bfca11650b44955acac71f8e2a4bff7e72e76d199a502fe757adb8d32f8f517d54dfd8b10fa6150523911edb23ae78d40e7a06f3cd88fa38a42
+srccontainersize 45164
+srccontainerchecksum c0b483d6cf27edd906debe2647e56b551a5afc8ced52c3e72bca0f5e44692b26eac71b6b4a290b7084db85df9026098ed7a702232f33de8ff1a718e5d3c2e9c5
srcfiles size=71
RELOC/source/xelatex/xduts/xduts.dtx
RELOC/source/xelatex/xduts/xduts.ins
@@ -352014,7 +352042,7 @@ catalogue-contact-support https://github.com/note286/xduts/discussions
catalogue-ctan /macros/xetex/latex/xduts
catalogue-license lppl1.3c
catalogue-topics dissertation proposal class expl3 xetex
-catalogue-version 6.0.0.0
+catalogue-version 6.0.1.0
name xdvi
category TLCore
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index daf4101461..9f4fac1a94 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-8bf4b9ecff5617f0bd0f8cfde52c47a7 texlive.tlpdb
+e348228a8a786f5272e48ab52518613a texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 533b5d639a..0aa8c4f61e 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-a3e066dba67e07f8c2d16eb7b7939e026e4b08f8bb4e45ae6d5069b104b787aeae1cdfb1948065628ab134162066f912c771b8c7541d5f807520a6500653ea47 texlive.tlpdb
+d415d541588211c86688714fec4dc0b7447c18029a3b1244417fbb10f242730c131709a32e51a2d5c5749c4ed8ee8308e1f6eccdd9000143b92a665cdabd39fb texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 222da70205..c5eaaa4731 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJkAVxHAAoJEEzhh34ZQ4xw+lIH/R/D3EfT2UE2EM8j4+ZKI3oP
-eTm+UvOQGD+hYoqrjQwDQiu2k7UoBwH4yVn5goS+w7gzrlC+VdB8Vz5jKh4rTklN
-/exZ+8rmqp2trn+ka/hk3/Rj7XAf4fWSy+DC1pdmyx2UZiALTU8CQfxkH1e6XwOk
-w/bxAHmMw5JHpGEzVZGC8T4GLNiZxo0Tp9fsBse27YY7lwxsypY+2mzNO1h3VwAg
-QJC0qw0TYAzUDzNSySiVFz57HxMO9sLQL3rDDS1FipIvk8qgywATZoQhpS3toIKv
-XzpfUt5cp/MYGk9xSOJ1iIfdAdYdzR8A+PJ/xyzoXxCoG957HlVFj62y7SRQhwk=
-=qSaK
+iQEcBAEBCgAGBQJkAq3AAAoJEEzhh34ZQ4xw4LAH/jdq6v/PH42CFCdNQZuElmzf
+9hi5zUBSFDDgBh3ebr8oBaDpZSThPjHRE1+O6DOv5PDNc7Hvmqr85oQ/bJIxyFUA
+U7y+oiGwuEpKtT1GMudQI3ut6FcHv5prSnT/FBDLxhXOhkB2L50DXlqA5C9WeAwu
+79K7m0wHyYaTq3CGSelwXbrvy/Oim13J6csFXUI/lbmAcPQII1QCrMYq1r4iMP4p
+lRYz0JDI3P9Kep0yssTQrcfIh5sm+5PSsjrrVBbK27l3SOrafhPPkuA2l0uC/aI9
+XcRX2JNSieCtIQnbVkiH8LONLr5htVQE9+mUWPAnKvG/MoeDKd1ylNiw2sAcKE8=
+=Ox9R
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 89f7678b9c..beb3810d00 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index 18107ea5ed..749def9f90 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2023-03-04-02-02
+2023-03-05-02-02